NVIDIA DRIVE OS Linux SDK API Reference

6.0.5 Release
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