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.6 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 2
    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 
    557 NvMediaLdcGetVersion(NvMediaVersion *const version);
    558 
    611 NvMediaLdcCreate(NvMediaLdc **const handle, NvMediaLdcAttributes const *const attr);
    612 
    660 NvMediaLdcDestroy(NvMediaLdc *const handle);
    661 
    730  NvMediaLdcParametersAttributes const *const attr,
    731  NvMediaLdcParameters *const params);
    732 
    782 NvMediaLdcDestroyParameters(NvMediaLdc *const handle, NvMediaLdcParameters const params);
    783 
    823 NvMediaLdcSetFilter(NvMediaLdc *const handle,
    824  NvMediaLdcParameters const params,
    825  NvMediaLdcFilter const filter);
    826 
    869 NvMediaLdcSetGeometry(NvMediaLdc *const handle,
    870  NvMediaLdcParameters const params,
    871  NvMediaRect const *const srcRect,
    872  NvMediaRect const *const dstRect);
    873 
    917  NvMediaLdcParameters const params,
    918  NvMediaLdcIptParameters const *const iptParams);
    919 
    962  NvMediaLdcParameters const params,
    963  NvMediaLdcWarpMapParameters const *const warpMapParams);
    964 
    1008  NvMediaLdcParameters const params,
    1009  NvMediaLdcMaskMapParameters const *const maskMapParams);
    1010 
    1054  NvMediaLdcParameters const params,
    1055  NvMediaLdcTnrParameters const *const tnrParams);
    1056 
    1195 NvMediaLdcProcess(NvMediaLdc *const handle,
    1196  NvMediaLdcParameters const params,
    1197  NvMediaLdcResult *const result);
    1198 
    1202 
    1203 //
    1204 // Version History
    1205 //
    1206 // Version 1.0 May 1, 2017
    1207 // - Initial release.
    1208 //
    1209 // Version 1.1 March 16, 2018
    1210 // - Add support of TNR2
    1211 //
    1212 // Version 1.2 September 4, 2018
    1213 // - New member variable srcSurfaceType is added to NvMediaLDCInitParams.
    1214 //
    1215 // Version 1.3 December 26, 2018
    1216 // - Adding unsigned tag to macro constants to fix MISRA 10.4 violation.
    1217 // - Fixing MISRA 21.1 violations
    1218 //
    1219 // Version 1.4 January 2, 2019
    1220 // - Added deprecated warning message for NvMediaLDCCreate.
    1221 // - Added API NvMediaLDCCreateNew
    1222 //
    1223 // Version 1.5 March 6, 2019
    1224 // - Fixing MISRA 8.13 violations.
    1225 //
    1226 // Version 1.6 March 12, 2019
    1227 // - Added required header includes nvmedia_core.h and nvmedia_surface.h
    1228 //
    1229 // Version 2.0 March 29, 2019
    1230 // - Deprecated NvMediaLDCCreate API.
    1231 //
    1232 // Version 2.1 January 23, 2020
    1233 // - Limited destination surface rectangle's top, left corner to (0, 0).
    1234 //
    1235 // Version 3.0 December 26, 2021
    1236 // - Major rework of API, NvMediaImage support was deprecated and
    1237 // all functionality related to NvMediaImage has been updated
    1238 // in order to support NvSciBuf instead of NvMediaImage.
    1239 // - The workflow was changed from setting the parameters
    1240 // at the Init stage to using a subset of API that set parameters
    1241 // prior to NvMediaLdcProcess() call.
    1242 //
    1243 // Version 4.0.0 March 28, 2022
    1244 // - Add support for NvSciSync task statuses
    1245 // - Max pre-fence count changed from 32 to 16
    1246 //
    1247 // Version 5.0.0 May 10, 2022
    1248 // - Re-added the destination rectangle top-left (0, 0) limitation.
    1249 //
    1250 // Version 6.0.0 June 7, 2022
    1251 // - Forbid registering same buffer multiple times
    1252 // - Error codes changed for multiple APIs
    1253 //
    1254 // Version 7.0.0 July 8, 2022
    1255 // - New error NVMEDIA_STATUS_INVALID_STATE added for multiple APIs
    1256 //
    1257 // Version 7.0.1 August 25, 2022
    1258 // - Allow NULL context handle in NvMediaLdcFillNvSciBufAttrList
    1259 //
    1260 // Version 7.0.2 September 2, 2022
    1261 // - Always treat parameters handle value 0 as invalid
    1262 //
    1263 
    1264 #ifdef __cplusplus
    1265 }
    1266 #endif
    1267 
    1268 #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
    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
    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
    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.
    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
    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
    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.
    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_MAX_REGIONS_Y
    #define NVMEDIA_LDC_MAX_REGIONS_Y
    Maximum number of vertical regions.
    Definition: nvmedia_ldc.h:226
    人人超碰97caoporen国产