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.5 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-2022, 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 7
    47 
    56 #define NVMEDIA_LDC_VERSION_MINOR 0
    57 
    67 #define NVMEDIA_LDC_VERSION_PATCH 1
    68 
    77 typedef struct NvMediaLdc NvMediaLdc;
    78 
    101 typedef uint32_t NvMediaLdcParameters;
    102 
    114 typedef struct
    115 {
    123  uint32_t maxParameters;
    124 
    130 
    136 
    138  uint32_t flags;
    140 
    146 typedef struct
    147 {
    152  uint32_t maxWarpMapWidth;
    153 
    159 
    162  bool enableTnr;
    163 
    166 
    172  uint32_t maxDstWidth;
    173 
    179  uint32_t maxDstHeight;
    181 
    192 typedef struct
    193 {
    200  uint64_t operationId;
    202 
    207 typedef enum
    208 {
    211 
    214 
    218 
    220 #define NVMEDIA_LDC_MAX_REGIONS_X 4u
    221 
    223 #define NVMEDIA_LDC_MAX_REGIONS_Y 4u
    224 
    301 typedef struct
    302 {
    305  uint32_t numRegionsX;
    306 
    309  uint32_t numRegionsY;
    310 
    312  uint32_t regionWidth[NVMEDIA_LDC_MAX_REGIONS_X];
    313 
    315  uint32_t regionHeight[NVMEDIA_LDC_MAX_REGIONS_Y];
    316 
    319  uint32_t controlPointXSpacingLog2[NVMEDIA_LDC_MAX_REGIONS_X];
    320 
    323  uint32_t controlPointYSpacingLog2[NVMEDIA_LDC_MAX_REGIONS_Y];
    325 
    330 typedef struct
    331 {
    334 
    340  float matrixCoeffs[3][3];
    342 
    344 typedef struct
    345 {
    347  float x;
    348 
    350  float y;
    352 
    402 typedef struct
    403 {
    406 
    409 
    414 
    424 typedef struct
    425 {
    428  uint32_t width;
    429 
    432  uint32_t height;
    433 
    437 
    439  float maskColorY;
    440 
    442  float maskColorU;
    443 
    445  float maskColorV;
    446 
    453  bool const *pixelMasks;
    455 
    460 typedef struct
    461 {
    464 
    467 
    469  uint32_t rangeSigmaLuma;
    470 
    473 
    476 
    479 
    482 
    485 
    488 
    491 
    494 
    497 
    500 
    502  float betaX1;
    503 
    505  float betaX2;
    506 
    508  float maxBeta;
    510  float minBeta;
    512 
    552 NvMediaLdcGetVersion(NvMediaVersion *const version);
    553 
    604 NvMediaLdcCreate(NvMediaLdc **const handle, NvMediaLdcAttributes const *const attr);
    605 
    650 NvMediaLdcDestroy(NvMediaLdc *const handle);
    651 
    717  NvMediaLdcParametersAttributes const *const attr,
    718  NvMediaLdcParameters *const params);
    719 
    764 NvMediaLdcDestroyParameters(NvMediaLdc *const handle, NvMediaLdcParameters const params);
    765 
    800 NvMediaLdcSetFilter(NvMediaLdc *const handle,
    801  NvMediaLdcParameters const params,
    802  NvMediaLdcFilter const filter);
    803 
    841 NvMediaLdcSetGeometry(NvMediaLdc *const handle,
    842  NvMediaLdcParameters const params,
    843  NvMediaRect const *const srcRect,
    844  NvMediaRect const *const dstRect);
    845 
    884  NvMediaLdcParameters const params,
    885  NvMediaLdcIptParameters const *const iptParams);
    886 
    924  NvMediaLdcParameters const params,
    925  NvMediaLdcWarpMapParameters const *const warpMapParams);
    926 
    965  NvMediaLdcParameters const params,
    966  NvMediaLdcMaskMapParameters const *const maskMapParams);
    967 
    1006  NvMediaLdcParameters const params,
    1007  NvMediaLdcTnrParameters const *const tnrParams);
    1008 
    1125 NvMediaLdcProcess(NvMediaLdc *const handle,
    1126  NvMediaLdcParameters const params,
    1127  NvMediaLdcResult *const result);
    1128 
    1132 
    1133 //
    1134 // Version History
    1135 //
    1136 // Version 1.0 May 1, 2017
    1137 // - Initial release.
    1138 //
    1139 // Version 1.1 March 16, 2018
    1140 // - Add support of TNR2
    1141 //
    1142 // Version 1.2 September 4, 2018
    1143 // - New member variable srcSurfaceType is added to NvMediaLDCInitParams.
    1144 //
    1145 // Version 1.3 December 26, 2018
    1146 // - Adding unsigned tag to macro constants to fix MISRA 10.4 violation.
    1147 // - Fixing MISRA 21.1 violations
    1148 //
    1149 // Version 1.4 January 2, 2019
    1150 // - Added deprecated warning message for NvMediaLDCCreate.
    1151 // - Added API NvMediaLDCCreateNew
    1152 //
    1153 // Version 1.5 March 6, 2019
    1154 // - Fixing MISRA 8.13 violations.
    1155 //
    1156 // Version 1.6 March 12, 2019
    1157 // - Added required header includes nvmedia_core.h and nvmedia_surface.h
    1158 //
    1159 // Version 2.0 March 29, 2019
    1160 // - Deprecated NvMediaLDCCreate API.
    1161 //
    1162 // Version 2.1 January 23, 2020
    1163 // - Limited destination surface rectangle's top, left corner to (0, 0).
    1164 //
    1165 // Version 3.0 December 26, 2021
    1166 // - Major rework of API, NvMediaImage support was deprecated and
    1167 // all functionality related to NvMediaImage has been updated
    1168 // in order to support NvSciBuf instead of NvMediaImage.
    1169 // - The workflow was changed from setting the parameters
    1170 // at the Init stage to using a subset of API that set parameters
    1171 // prior to NvMediaLdcProcess() call.
    1172 //
    1173 // Version 4.0.0 March 28, 2022
    1174 // - Add support for NvSciSync task statuses
    1175 // - Max pre-fence count changed from 32 to 16
    1176 //
    1177 // Version 5.0.0 May 10, 2022
    1178 // - Re-added the destination rectangle top-left (0, 0) limitation.
    1179 //
    1180 // Version 6.0.0 June 7, 2022
    1181 // - Forbid registering same buffer multiple times
    1182 // - Error codes changed for multiple APIs
    1183 //
    1184 // Version 7.0.0 July 8, 2022
    1185 // - New error NVMEDIA_STATUS_INVALID_STATE added for multiple APIs
    1186 //
    1187 // Version 7.0.1 August 25, 2022
    1188 // - Allow NULL context handle in NvMediaLdcFillNvSciBufAttrList
    1189 //
    1190 
    1191 #ifdef __cplusplus
    1192 }
    1193 #endif
    1194 
    1195 #endif
    NvMediaLdcTnrParameters::alphaMaxLuma
    float alphaMaxLuma
    Holds the max luma value in Alpha Clip Calculation.
    Definition: nvmedia_ldc.h:490
    NVMEDIA_LDC_FILTER_OFF
    @ NVMEDIA_LDC_FILTER_OFF
    Filtering is disabled.
    Definition: nvmedia_ldc.h:210
    NvMediaLdcTnrParameters::alphaScaleIIR
    float alphaScaleIIR
    Holds the alpha scale IIR for strength.
    Definition: nvmedia_ldc.h:487
    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:432
    NvMediaLdcParametersAttributes::maxWarpMapHeight
    uint32_t maxWarpMapHeight
    Maximum allowed number of control points vertically in a warp map.
    Definition: nvmedia_ldc.h:158
    NvMediaLdcMaskMapParameters
    Holds the Mask Map information.
    Definition: nvmedia_ldc.h:424
    NvMediaLdcTnrParameters::rangeSigmaChroma
    uint32_t rangeSigmaChroma
    Holds the sigma of the chroma for range filter.
    Definition: nvmedia_ldc.h:472
    NvMediaLdcRegionParameters::numRegionsX
    uint32_t numRegionsX
    Holds the number of horizontal regions.
    Definition: nvmedia_ldc.h:305
    NvMediaLdcTnrParameters::alphaSmoothEnable
    bool alphaSmoothEnable
    Holds a flag which enables or disables the spatial alpha smooth.
    Definition: nvmedia_ldc.h:481
    NvMediaLdcMaskMapParameters::pixelMasks
    const bool * pixelMasks
    Holds the value for the Mask Map surface.
    Definition: nvmedia_ldc.h:453
    NvMediaLdcTnrParameters::sadMultiplier
    float sadMultiplier
    Holds the SAD multiplier parameter.
    Definition: nvmedia_ldc.h:475
    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:439
    NvMediaStatus
    NvMediaStatus
    Defines all possible error codes.
    Definition: nvmedia_core.h:104
    NvMediaLdcAttributes::maxRegisteredSyncs
    uint32_t maxRegisteredSyncs
    Maximum number of sync objects that can be registered.
    Definition: nvmedia_ldc.h:135
    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:463
    NvMediaLdcParametersAttributes::enableTnr
    bool enableTnr
    Whether to allocate memory for data structures required for TNR processing.
    Definition: nvmedia_ldc.h:162
    NvMediaLdcAttributes::flags
    uint32_t flags
    Internal use only.
    Definition: nvmedia_ldc.h:138
    NvMediaLdcAttributes::maxRegisteredBuffers
    uint32_t maxRegisteredBuffers
    Maximum number of buffers that can be registered.
    Definition: nvmedia_ldc.h:129
    NvMediaLdcTnrParameters::betaX2
    float betaX2
    Holds parameter BetaX2 in Beta Calculation.
    Definition: nvmedia_ldc.h:505
    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:101
    NvMediaVersion
    Holds NvMedia version information.
    Definition: nvmedia_core.h:164
    NvMediaLdcTnrParameters::alphaMinLuma
    float alphaMinLuma
    Holds the min luma value in Alpha Clip Calculation.
    Definition: nvmedia_ldc.h:493
    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:330
    NvMediaLdcFilter
    NvMediaLdcFilter
    VIC filter mode.
    Definition: nvmedia_ldc.h:207
    NvMediaLdcParametersAttributes::enableMaskMap
    bool enableMaskMap
    Whether to allocate memory for Mask Map.
    Definition: nvmedia_ldc.h:165
    NvMediaLdcParametersAttributes::maxDstHeight
    uint32_t maxDstHeight
    Maximum allowed destination rectangle height.
    Definition: nvmedia_ldc.h:179
    NvMediaLdcSetFilter
    NvMediaStatus NvMediaLdcSetFilter(NvMediaLdc *const handle, NvMediaLdcParameters const params, NvMediaLdcFilter const filter)
    Sets the filter mode to use for LDC pixel interpolation.
    NvMediaLdcTnrParameters::betaX1
    float betaX1
    Holds parameter BetaX1 in Beta Calculation.
    Definition: nvmedia_ldc.h:502
    NvMediaLdcAttributes
    Attributes structure for NvMediaLdcCreate().
    Definition: nvmedia_ldc.h:114
    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:405
    NvMediaLdcTnrParameters
    Holds the TNR3 initialization parameters.
    Definition: nvmedia_ldc.h:460
    NvMediaLdcTnrParameters::maxBeta
    float maxBeta
    Holds parameter MaxBeta threshold in Beta Calculation.
    Definition: nvmedia_ldc.h:508
    NvMediaLdcMaskMapParameters::useMaskColor
    bool useMaskColor
    Indicates whether to fill the masked pixel with the mask color.
    Definition: nvmedia_ldc.h:436
    NvMediaRect
    Holds a rectangular region of a surface.
    Definition: nvmedia_core.h:89
    nvmedia_core.h
    NVIDIA Media Interface: Core
    NvMediaLdcAttributes::maxParameters
    uint32_t maxParameters
    Number of parameters objects to allocate.
    Definition: nvmedia_ldc.h:123
    NvMediaLdcRegionParameters
    Holds the NvMedia LDC region configuration.
    Definition: nvmedia_ldc.h:301
    NvMediaLdcMaskMapParameters::maskColorV
    float maskColorV
    Holds the V channel value of the mask color.
    Definition: nvmedia_ldc.h:445
    NvMediaLdcTnrParameters::minBeta
    float minBeta
    Holds parameter BetaX2 in Beta Calculation.
    Definition: nvmedia_ldc.h:510
    NvMediaLdcTnrParameters::alphaIncreaseCap
    float alphaIncreaseCap
    Holds the temporal alpha restrict increase capablility.
    Definition: nvmedia_ldc.h:484
    NvMediaLdcParametersAttributes::maxWarpMapWidth
    uint32_t maxWarpMapWidth
    Maximum allowed number of control points horizontally in a warp map.
    Definition: nvmedia_ldc.h:152
    NvMediaLdcWarpMapParameters::controlPoints
    const NvMediaLdcControlPoint * controlPoints
    Array of control points across all the regions stored in a row-major order.
    Definition: nvmedia_ldc.h:412
    NvMediaLdcTnrParameters::alphaMinChroma
    float alphaMinChroma
    Holds the min chroma value in Alpha Clip Calculation.
    Definition: nvmedia_ldc.h:499
    NvMediaLdcParametersAttributes::maxDstWidth
    uint32_t maxDstWidth
    Maximum allowed destination rectangle width.
    Definition: nvmedia_ldc.h:172
    NvMediaLdcTnrParameters::spatialSigmaChroma
    uint32_t spatialSigmaChroma
    Holds the sigma of the chroma for spatial filter.
    Definition: nvmedia_ldc.h:466
    NvMediaLdcTnrParameters::alphaMaxChroma
    float alphaMaxChroma
    Holds the max chroma value in Alpha Clip Calculation.
    Definition: nvmedia_ldc.h:496
    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:220
    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:344
    NvMediaLdcControlPoint::x
    float x
    Horizontal coordinate.
    Definition: nvmedia_ldc.h:347
    NvMediaLdcMaskMapParameters::maskColorU
    float maskColorU
    Holds the U channel value of the mask color.
    Definition: nvmedia_ldc.h:442
    NvMediaLdcResult::operationId
    uint64_t operationId
    ID number for operation that was submitted to NvMediaLdcProcess().
    Definition: nvmedia_ldc.h:200
    NvMediaLdcParametersAttributes
    Attributes that specify resources needed for NvMediaLdcParameters instance.
    Definition: nvmedia_ldc.h:146
    NvMediaLdcWarpMapParameters
    Holds the NvMedia LDC definition of a Warp Map.
    Definition: nvmedia_ldc.h:402
    NvMediaLdcCreate
    NvMediaStatus NvMediaLdcCreate(NvMediaLdc **const handle, NvMediaLdcAttributes const *const attr)
    Creates a new NvMediaLdc context.
    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:478
    NvMediaLdc
    struct NvMediaLdc NvMediaLdc
    NvMediaLdc context.
    Definition: nvmedia_ldc.h:77
    NvMediaLdcWarpMapParameters::numControlPoints
    uint32_t numControlPoints
    Number of control points.
    Definition: nvmedia_ldc.h:408
    NvMediaLdcTnrParameters::rangeSigmaLuma
    uint32_t rangeSigmaLuma
    Holds the sigma of the luma for range filter.
    Definition: nvmedia_ldc.h:469
    NvMediaLdcIptParameters::regionParams
    NvMediaLdcRegionParameters regionParams
    Specifies the regions parameters.
    Definition: nvmedia_ldc.h:333
    NVMEDIA_LDC_FILTER_LOW
    @ NVMEDIA_LDC_FILTER_LOW
    Low quality filtering.
    Definition: nvmedia_ldc.h:213
    NVMEDIA_LDC_FILTER_MEDIUM
    @ NVMEDIA_LDC_FILTER_MEDIUM
    Medium quality filtering.
    Definition: nvmedia_ldc.h:216
    NvMediaLdcResult
    Stores information returned from NvMediaLdcProcess().
    Definition: nvmedia_ldc.h:192
    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:350
    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:428
    NvMediaLdcRegionParameters::numRegionsY
    uint32_t numRegionsY
    Holds the number of vertical regions.
    Definition: nvmedia_ldc.h:309
    NVMEDIA_LDC_MAX_REGIONS_Y
    #define NVMEDIA_LDC_MAX_REGIONS_Y
    Maximum number of vertical regions.
    Definition: nvmedia_ldc.h:223
    人人超碰97caoporen国产