Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.8 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    nvmedia_ldc.h
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2017-2023, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * NVIDIA CORPORATION and its licensors retain all intellectual property
    5  * and proprietary rights in and to this software, related documentation
    6  * and any modifications thereto. Any use, reproduction, disclosure or
    7  * distribution of this software and related documentation without an express
    8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
    9  */
    10 
    17 
    18 #ifndef NVMEDIA_LDC_H
    19 #define NVMEDIA_LDC_H
    20 
    21 #include "nvmedia_core.h"
    22 #include <stdbool.h>
    23 #include <stdint.h>
    24 
    25 #ifdef __cplusplus
    26 extern "C" {
    27 #endif
    28 
    37 
    46 #define NVMEDIA_LDC_VERSION_MAJOR 8
    47 
    56 #define NVMEDIA_LDC_VERSION_MINOR 1
    57 
    67 #define NVMEDIA_LDC_VERSION_PATCH 0
    68 
    77 typedef struct NvMediaLdc NvMediaLdc;
    78 
    104 typedef uint32_t NvMediaLdcParameters;
    105 
    117 typedef struct
    118 {
    126  uint32_t maxParameters;
    127 
    133 
    139 
    141  uint32_t flags;
    143 
    149 typedef struct
    150 {
    155  uint32_t maxWarpMapWidth;
    156 
    162 
    165  bool enableTnr;
    166 
    169 
    175  uint32_t maxDstWidth;
    176 
    182  uint32_t maxDstHeight;
    184 
    195 typedef struct
    196 {
    203  uint64_t operationId;
    205 
    210 typedef enum
    211 {
    214 
    217 
    221 
    223 #define NVMEDIA_LDC_MAX_REGIONS_X 4u
    224 
    226 #define NVMEDIA_LDC_MAX_REGIONS_Y 4u
    227 
    304 typedef struct
    305 {
    308  uint32_t numRegionsX;
    309 
    312  uint32_t numRegionsY;
    313 
    315  uint32_t regionWidth[NVMEDIA_LDC_MAX_REGIONS_X];
    316 
    318  uint32_t regionHeight[NVMEDIA_LDC_MAX_REGIONS_Y];
    319 
    322  uint32_t controlPointXSpacingLog2[NVMEDIA_LDC_MAX_REGIONS_X];
    323 
    326  uint32_t controlPointYSpacingLog2[NVMEDIA_LDC_MAX_REGIONS_Y];
    328 
    333 typedef struct
    334 {
    337 
    343  float matrixCoeffs[3][3];
    345 
    347 typedef struct
    348 {
    350  float x;
    351 
    353  float y;
    355 
    405 typedef struct
    406 {
    409 
    412 
    417 
    427 typedef struct
    428 {
    431  uint32_t width;
    432 
    435  uint32_t height;
    436 
    440 
    442  float maskColorY;
    443 
    445  float maskColorU;
    446 
    448  float maskColorV;
    449 
    456  bool const *pixelMasks;
    458 
    463 typedef struct
    464 {
    467 
    470 
    472  uint32_t rangeSigmaLuma;
    473 
    476 
    479 
    482 
    485 
    488 
    491 
    494 
    497 
    500 
    503 
    505  float betaX1;
    506 
    508  float betaX2;
    509 
    511  float maxBeta;
    513  float minBeta;
    515 
    517 #define NVMEDIA_LDC_CHECKSUM_NUM_BYTES 24u
    518 
    520 typedef struct
    521 {
    525 
    531 typedef enum
    532 {
    535 
    539 
    581 NvMediaLdcGetVersion(NvMediaVersion *const version);
    582 
    635 NvMediaLdcCreate(NvMediaLdc **const handle, NvMediaLdcAttributes const *const attr);
    636 
    684 NvMediaLdcDestroy(NvMediaLdc *const handle);
    685 
    754  NvMediaLdcParametersAttributes const *const attr,
    755  NvMediaLdcParameters *const params);
    756 
    806 NvMediaLdcDestroyParameters(NvMediaLdc *const handle, NvMediaLdcParameters const params);
    807 
    847 NvMediaLdcSetFilter(NvMediaLdc *const handle,
    848  NvMediaLdcParameters const params,
    849  NvMediaLdcFilter const filter);
    850 
    891 NvMediaLdcSetGeometry(NvMediaLdc *const handle,
    892  NvMediaLdcParameters const params,
    893  NvMediaRect const *const srcRect,
    894  NvMediaRect const *const dstRect);
    895 
    939  NvMediaLdcParameters const params,
    940  NvMediaLdcIptParameters const *const iptParams);
    941 
    984  NvMediaLdcParameters const params,
    985  NvMediaLdcWarpMapParameters const *const warpMapParams);
    986 
    1030  NvMediaLdcParameters const params,
    1031  NvMediaLdcMaskMapParameters const *const maskMapParams);
    1032 
    1075  NvMediaLdcParameters const params,
    1076  NvMediaLdcTnrParameters const *const tnrParams);
    1077 
    1116 NvMediaLdcResetTnr(NvMediaLdc *const handle, NvMediaLdcParameters const params);
    1117 
    1165  NvMediaLdcParameters const params,
    1166  NvMediaLdcChecksumMode const checksumMode);
    1167 
    1221 NvMediaLdcGetChecksum(NvMediaLdc *const handle,
    1222  NvMediaLdcResult const *const result,
    1223  NvMediaLdcChecksum *const checksum);
    1224 
    1363 NvMediaLdcProcess(NvMediaLdc *const handle,
    1364  NvMediaLdcParameters const params,
    1365  NvMediaLdcResult *const result);
    1366 
    1370 
    1371 //
    1372 // Version History
    1373 //
    1374 // Version 1.0 May 1, 2017
    1375 // - Initial release.
    1376 //
    1377 // Version 1.1 March 16, 2018
    1378 // - Add support of TNR2
    1379 //
    1380 // Version 1.2 September 4, 2018
    1381 // - New member variable srcSurfaceType is added to NvMediaLDCInitParams.
    1382 //
    1383 // Version 1.3 December 26, 2018
    1384 // - Adding unsigned tag to macro constants to fix MISRA 10.4 violation.
    1385 // - Fixing MISRA 21.1 violations
    1386 //
    1387 // Version 1.4 January 2, 2019
    1388 // - Added deprecated warning message for NvMediaLDCCreate.
    1389 // - Added API NvMediaLDCCreateNew
    1390 //
    1391 // Version 1.5 March 6, 2019
    1392 // - Fixing MISRA 8.13 violations.
    1393 //
    1394 // Version 1.6 March 12, 2019
    1395 // - Added required header includes nvmedia_core.h and nvmedia_surface.h
    1396 //
    1397 // Version 2.0 March 29, 2019
    1398 // - Deprecated NvMediaLDCCreate API.
    1399 //
    1400 // Version 2.1 January 23, 2020
    1401 // - Limited destination surface rectangle's top, left corner to (0, 0).
    1402 //
    1403 // Version 3.0 December 26, 2021
    1404 // - Major rework of API, NvMediaImage support was deprecated and
    1405 // all functionality related to NvMediaImage has been updated
    1406 // in order to support NvSciBuf instead of NvMediaImage.
    1407 // - The workflow was changed from setting the parameters
    1408 // at the Init stage to using a subset of API that set parameters
    1409 // prior to NvMediaLdcProcess() call.
    1410 //
    1411 // Version 4.0.0 March 28, 2022
    1412 // - Add support for NvSciSync task statuses
    1413 // - Max pre-fence count changed from 32 to 16
    1414 //
    1415 // Version 5.0.0 May 10, 2022
    1416 // - Re-added the destination rectangle top-left (0, 0) limitation.
    1417 //
    1418 // Version 6.0.0 June 7, 2022
    1419 // - Forbid registering same buffer multiple times
    1420 // - Error codes changed for multiple APIs
    1421 //
    1422 // Version 7.0.0 July 8, 2022
    1423 // - New error NVMEDIA_STATUS_INVALID_STATE added for multiple APIs
    1424 //
    1425 // Version 7.0.1 August 25, 2022
    1426 // - Allow NULL context handle in NvMediaLdcFillNvSciBufAttrList
    1427 //
    1428 // Version 7.0.2 September 2, 2022
    1429 // - Always treat parameters handle value 0 as invalid
    1430 //
    1431 // Version 8.0.0 March 10, 2023
    1432 // - NvMediaLdcSetGeometry() and NvMediaLdcSetTnrParameters() no longer reset
    1433 // TNR algorithm state
    1434 // - New API NvMediaLdcResetTnr() added for explicitly resetting the state
    1435 //
    1436 // Version 8.1.0 June 2, 2023
    1437 // - New checksum API added
    1438 //
    1439 
    1440 #ifdef __cplusplus
    1441 }
    1442 #endif
    1443 
    1444 #endif
    NvMediaLdcTnrParameters::alphaMaxLuma
    float alphaMaxLuma
    Holds the max luma value in Alpha Clip Calculation.
    Definition: nvmedia_ldc.h:493
    NVMEDIA_LDC_FILTER_OFF
    @ NVMEDIA_LDC_FILTER_OFF
    Filtering is disabled.
    Definition: nvmedia_ldc.h:213
    NvMediaLdcTnrParameters::alphaScaleIIR
    float alphaScaleIIR
    Holds the alpha scale IIR for strength.
    Definition: nvmedia_ldc.h:490
    NvMediaLdcMaskMapParameters::height
    uint32_t height
    Holds the height in pixels of the mask map surface, which must be equal to the height of the destinat...
    Definition: nvmedia_ldc.h:435
    NvMediaLdcParametersAttributes::maxWarpMapHeight
    uint32_t maxWarpMapHeight
    Maximum allowed number of control points vertically in a warp map.
    Definition: nvmedia_ldc.h:161
    NvMediaLdcMaskMapParameters
    Holds the Mask Map information.
    Definition: nvmedia_ldc.h:427
    NvMediaLdcTnrParameters::rangeSigmaChroma
    uint32_t rangeSigmaChroma
    Holds the sigma of the chroma for range filter.
    Definition: nvmedia_ldc.h:475
    NvMediaLdcRegionParameters::numRegionsX
    uint32_t numRegionsX
    Holds the number of horizontal regions.
    Definition: nvmedia_ldc.h:308
    NvMediaLdcTnrParameters::alphaSmoothEnable
    bool alphaSmoothEnable
    Holds a flag which enables or disables the spatial alpha smooth.
    Definition: nvmedia_ldc.h:484
    NvMediaLdcChecksum
    Represents a checksum.
    Definition: nvmedia_ldc.h:520
    NvMediaLdcMaskMapParameters::pixelMasks
    const bool * pixelMasks
    Holds the value for the Mask Map surface.
    Definition: nvmedia_ldc.h:456
    NvMediaLdcTnrParameters::sadMultiplier
    float sadMultiplier
    Holds the SAD multiplier parameter.
    Definition: nvmedia_ldc.h:478
    NvMediaLdcDestroy
    NvMediaStatus NvMediaLdcDestroy(NvMediaLdc *const handle)
    Destroys the NvMediaLdc context.
    NvMediaLdcMaskMapParameters::maskColorY
    float maskColorY
    Holds the Y channel value of the mask color.
    Definition: nvmedia_ldc.h:442
    NvMediaStatus
    NvMediaStatus
    Defines all possible error codes.
    Definition: nvmedia_core.h:104
    NVMEDIA_LDC_CHECKSUM_MODE_DISABLED
    @ NVMEDIA_LDC_CHECKSUM_MODE_DISABLED
    No checksum calculated. This is the default behavior.
    Definition: nvmedia_ldc.h:534
    NvMediaLdcAttributes::maxRegisteredSyncs
    uint32_t maxRegisteredSyncs
    Maximum number of sync objects that can be registered.
    Definition: nvmedia_ldc.h:138
    NvMediaLdcProcess
    NvMediaStatus NvMediaLdcProcess(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaLdcResult *const result)
    Performs LDC operation.
    NvMediaLdcTnrParameters::spatialSigmaLuma
    uint32_t spatialSigmaLuma
    Holds the sigma of the luma for spatial filter.
    Definition: nvmedia_ldc.h:466
    NvMediaLdcParametersAttributes::enableTnr
    bool enableTnr
    Whether to allocate memory for data structures required for TNR processing.
    Definition: nvmedia_ldc.h:165
    NvMediaLdcAttributes::flags
    uint32_t flags
    Internal use only.
    Definition: nvmedia_ldc.h:141
    NvMediaLdcAttributes::maxRegisteredBuffers
    uint32_t maxRegisteredBuffers
    Maximum number of buffers that can be registered.
    Definition: nvmedia_ldc.h:132
    NvMediaLdcTnrParameters::betaX2
    float betaX2
    Holds parameter BetaX2 in Beta Calculation.
    Definition: nvmedia_ldc.h:508
    NvMediaLdcDestroyParameters
    NvMediaStatus NvMediaLdcDestroyParameters(NvMediaLdc *const handle, NvMediaLdcParameters const params)
    Destroys an NvMediaLdcParameters instance.
    NvMediaLdcParameters
    uint32_t NvMediaLdcParameters
    Stores configuration for the NvMediaLdcProcess() operation.
    Definition: nvmedia_ldc.h:104
    NvMediaVersion
    Holds NvMedia version information.
    Definition: nvmedia_core.h:164
    NvMediaLdcChecksumMode
    NvMediaLdcChecksumMode
    NvMedia LDC checksum mode.
    Definition: nvmedia_ldc.h:531
    NvMediaLdcTnrParameters::alphaMinLuma
    float alphaMinLuma
    Holds the min luma value in Alpha Clip Calculation.
    Definition: nvmedia_ldc.h:496
    NvMediaLdcSetGeometry
    NvMediaStatus NvMediaLdcSetGeometry(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaRect const *const srcRect, NvMediaRect const *const dstRect)
    Sets source and destination rectangles for LDC operation.
    NvMediaLdcIptParameters
    Holds inverse perspective transformation configuration.
    Definition: nvmedia_ldc.h:333
    NvMediaLdcFilter
    NvMediaLdcFilter
    VIC filter mode.
    Definition: nvmedia_ldc.h:210
    NvMediaLdcParametersAttributes::enableMaskMap
    bool enableMaskMap
    Whether to allocate memory for Mask Map.
    Definition: nvmedia_ldc.h:168
    NvMediaLdcParametersAttributes::maxDstHeight
    uint32_t maxDstHeight
    Maximum allowed destination rectangle height.
    Definition: nvmedia_ldc.h:182
    NvMediaLdcSetFilter
    NvMediaStatus NvMediaLdcSetFilter(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaLdcFilter const filter)
    Sets the filter mode to use for LDC pixel interpolation.
    NvMediaLdcResetTnr
    NvMediaStatus NvMediaLdcResetTnr(NvMediaLdc *const handle, NvMediaLdcParameters const params)
    Resets TNR algorithm state.
    NvMediaLdcTnrParameters::betaX1
    float betaX1
    Holds parameter BetaX1 in Beta Calculation.
    Definition: nvmedia_ldc.h:505
    NvMediaLdcAttributes
    Attributes structure for NvMediaLdcCreate().
    Definition: nvmedia_ldc.h:117
    NvMediaLdcSetTnrParameters
    NvMediaStatus NvMediaLdcSetTnrParameters(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaLdcTnrParameters const *const tnrParams)
    Sets Temporal Noise Reduction (TNR) parameters.
    NvMediaLdcSetIptParameters
    NvMediaStatus NvMediaLdcSetIptParameters(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaLdcIptParameters const *const iptParams)
    Sets parameters for LDC Inverse Perspective Transform (IPT) operation.
    NvMediaLdcWarpMapParameters::regionParams
    NvMediaLdcRegionParameters regionParams
    Specifies the regions paramters.
    Definition: nvmedia_ldc.h:408
    NvMediaLdcTnrParameters
    Holds the TNR3 initialization parameters.
    Definition: nvmedia_ldc.h:463
    NvMediaLdcTnrParameters::maxBeta
    float maxBeta
    Holds parameter MaxBeta threshold in Beta Calculation.
    Definition: nvmedia_ldc.h:511
    NvMediaLdcMaskMapParameters::useMaskColor
    bool useMaskColor
    Indicates whether to fill the masked pixel with the mask color.
    Definition: nvmedia_ldc.h:439
    NvMediaRect
    Holds a rectangular region of a surface.
    Definition: nvmedia_core.h:89
    nvmedia_core.h
    NVIDIA Media Interface: Core
    NvMediaLdcSetChecksumMode
    NvMediaStatus NvMediaLdcSetChecksumMode(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaLdcChecksumMode const checksumMode)
    Sets checksum calculation mode.
    NvMediaLdcAttributes::maxParameters
    uint32_t maxParameters
    Number of parameters objects to allocate.
    Definition: nvmedia_ldc.h:126
    NvMediaLdcRegionParameters
    Holds the NvMedia LDC region configuration.
    Definition: nvmedia_ldc.h:304
    NvMediaLdcMaskMapParameters::maskColorV
    float maskColorV
    Holds the V channel value of the mask color.
    Definition: nvmedia_ldc.h:448
    NvMediaLdcTnrParameters::minBeta
    float minBeta
    Holds parameter BetaX2 in Beta Calculation.
    Definition: nvmedia_ldc.h:513
    NvMediaLdcTnrParameters::alphaIncreaseCap
    float alphaIncreaseCap
    Holds the temporal alpha restrict increase capablility.
    Definition: nvmedia_ldc.h:487
    NvMediaLdcGetChecksum
    NvMediaStatus NvMediaLdcGetChecksum(NvMediaLdc *const handle, NvMediaLdcResult const *const result, NvMediaLdcChecksum *const checksum)
    Gets a checksum calculated for an NvMediaLdcProcess() operation.
    NvMediaLdcParametersAttributes::maxWarpMapWidth
    uint32_t maxWarpMapWidth
    Maximum allowed number of control points horizontally in a warp map.
    Definition: nvmedia_ldc.h:155
    NvMediaLdcWarpMapParameters::controlPoints
    const NvMediaLdcControlPoint * controlPoints
    Array of control points across all the regions stored in a row-major order.
    Definition: nvmedia_ldc.h:415
    NvMediaLdcTnrParameters::alphaMinChroma
    float alphaMinChroma
    Holds the min chroma value in Alpha Clip Calculation.
    Definition: nvmedia_ldc.h:502
    NvMediaLdcParametersAttributes::maxDstWidth
    uint32_t maxDstWidth
    Maximum allowed destination rectangle width.
    Definition: nvmedia_ldc.h:175
    NvMediaLdcTnrParameters::spatialSigmaChroma
    uint32_t spatialSigmaChroma
    Holds the sigma of the chroma for spatial filter.
    Definition: nvmedia_ldc.h:469
    NvMediaLdcTnrParameters::alphaMaxChroma
    float alphaMaxChroma
    Holds the max chroma value in Alpha Clip Calculation.
    Definition: nvmedia_ldc.h:499
    NvMediaLdcCreateParameters
    NvMediaStatus NvMediaLdcCreateParameters(NvMediaLdc *const handle, NvMediaLdcParametersAttributes const *const attr, NvMediaLdcParameters *const params)
    Creates and returns an NvMediaLdcParameters instance.
    NVMEDIA_LDC_MAX_REGIONS_X
    #define NVMEDIA_LDC_MAX_REGIONS_X
    Maximum number of horizontal regions.
    Definition: nvmedia_ldc.h:223
    NvMediaLdcSetWarpMapParameters
    NvMediaStatus NvMediaLdcSetWarpMapParameters(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaLdcWarpMapParameters const *const warpMapParams)
    Sets parameters for LDC Warp Map.
    NvMediaLdcControlPoint
    Represents a control point.
    Definition: nvmedia_ldc.h:347
    NvMediaLdcControlPoint::x
    float x
    Horizontal coordinate.
    Definition: nvmedia_ldc.h:350
    NvMediaLdcMaskMapParameters::maskColorU
    float maskColorU
    Holds the U channel value of the mask color.
    Definition: nvmedia_ldc.h:445
    NvMediaLdcResult::operationId
    uint64_t operationId
    ID number for operation that was submitted to NvMediaLdcProcess().
    Definition: nvmedia_ldc.h:203
    NvMediaLdcParametersAttributes
    Attributes that specify resources needed for NvMediaLdcParameters instance.
    Definition: nvmedia_ldc.h:149
    NvMediaLdcWarpMapParameters
    Holds the NvMedia LDC definition of a Warp Map.
    Definition: nvmedia_ldc.h:405
    NvMediaLdcCreate
    NvMediaStatus NvMediaLdcCreate(NvMediaLdc **const handle, NvMediaLdcAttributes const *const attr)
    Creates a new NvMediaLdc context.
    NVMEDIA_LDC_CHECKSUM_NUM_BYTES
    #define NVMEDIA_LDC_CHECKSUM_NUM_BYTES
    Number of bytes in NvMedia LDC checksums.
    Definition: nvmedia_ldc.h:517
    NvMediaLdcSetMaskMapParameters
    NvMediaStatus NvMediaLdcSetMaskMapParameters(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaLdcMaskMapParameters const *const maskMapParams)
    Sets parameters for LDC Mask Map.
    NvMediaLdcTnrParameters::sadWeightLuma
    float sadWeightLuma
    Holds the weight of luma when calculating SAD.
    Definition: nvmedia_ldc.h:481
    NvMediaLdc
    struct NvMediaLdc NvMediaLdc
    NvMediaLdc context.
    Definition: nvmedia_ldc.h:77
    NvMediaLdcWarpMapParameters::numControlPoints
    uint32_t numControlPoints
    Number of control points.
    Definition: nvmedia_ldc.h:411
    NvMediaLdcTnrParameters::rangeSigmaLuma
    uint32_t rangeSigmaLuma
    Holds the sigma of the luma for range filter.
    Definition: nvmedia_ldc.h:472
    NvMediaLdcIptParameters::regionParams
    NvMediaLdcRegionParameters regionParams
    Specifies the regions parameters.
    Definition: nvmedia_ldc.h:336
    NVMEDIA_LDC_FILTER_LOW
    @ NVMEDIA_LDC_FILTER_LOW
    Low quality filtering.
    Definition: nvmedia_ldc.h:216
    NVMEDIA_LDC_FILTER_MEDIUM
    @ NVMEDIA_LDC_FILTER_MEDIUM
    Medium quality filtering.
    Definition: nvmedia_ldc.h:219
    NvMediaLdcResult
    Stores information returned from NvMediaLdcProcess().
    Definition: nvmedia_ldc.h:195
    NvMediaLdcGetVersion
    NvMediaStatus NvMediaLdcGetVersion(NvMediaVersion *const version)
    Returns the version number of the NvMedia LDC library.
    NvMediaLdcControlPoint::y
    float y
    Vertical coordinate.
    Definition: nvmedia_ldc.h:353
    NvMediaLdcMaskMapParameters::width
    uint32_t width
    Holds the width in pixels of the mask map surface, which must be equal to the width of the destinatio...
    Definition: nvmedia_ldc.h:431
    NvMediaLdcRegionParameters::numRegionsY
    uint32_t numRegionsY
    Holds the number of vertical regions.
    Definition: nvmedia_ldc.h:312
    NVMEDIA_LDC_CHECKSUM_MODE_SRC_SURFACE
    @ NVMEDIA_LDC_CHECKSUM_MODE_SRC_SURFACE
    Checksum calculated from source surface pixel data.
    Definition: nvmedia_ldc.h:537
    NVMEDIA_LDC_MAX_REGIONS_Y
    #define NVMEDIA_LDC_MAX_REGIONS_Y
    Maximum number of vertical regions.
    Definition: nvmedia_ldc.h:226
    人人超碰97caoporen国产