NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvmedia_ldc.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2017-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
22 
23 #ifndef NVMEDIA_LDC_H
24 #define NVMEDIA_LDC_H
25 
26 #include "nvmedia_core.h"
27 #include <stdbool.h>
28 #include <stdint.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
42 
51 #define NVMEDIA_LDC_VERSION_MAJOR 11
52 
61 #define NVMEDIA_LDC_VERSION_MINOR 0
62 
72 #define NVMEDIA_LDC_VERSION_PATCH 0
73 
82 typedef struct NvMediaLdc NvMediaLdc;
83 
109 typedef uint32_t NvMediaLdcParameters;
110 
122 typedef struct
123 {
133  uint32_t maxParameters;
134 
142 
150 
152  uint32_t flags;
154 
160 typedef struct
161 {
169  uint32_t maxWarpMapWidth;
170 
179 
182  bool enableTnr;
183 
186 
195  uint32_t maxDstWidth;
196 
205  uint32_t maxDstHeight;
207 
218 typedef struct
219 {
226  uint64_t operationId;
228 
233 typedef enum
234 {
237 
240 
244 
246 #define NVMEDIA_LDC_MAX_REGIONS_X 4u
247 
249 #define NVMEDIA_LDC_MAX_REGIONS_Y 4u
250 
334 typedef struct
335 {
338  uint32_t numRegionsX;
339 
342  uint32_t numRegionsY;
343 
345  uint32_t regionWidth[NVMEDIA_LDC_MAX_REGIONS_X];
346 
348  uint32_t regionHeight[NVMEDIA_LDC_MAX_REGIONS_Y];
349 
352  uint32_t controlPointXSpacingLog2[NVMEDIA_LDC_MAX_REGIONS_X];
353 
356  uint32_t controlPointYSpacingLog2[NVMEDIA_LDC_MAX_REGIONS_Y];
358 
363 typedef struct
364 {
367 
373  float matrixCoeffs[3][3];
375 
377 typedef struct
378 {
383  float x;
384 
389  float y;
391 
441 typedef struct
442 {
445 
451 
456 
466 typedef struct
467 {
470  uint32_t width;
471 
474  uint32_t height;
475 
479 
484  float maskColorY;
485 
490  float maskColorU;
491 
496  float maskColorV;
497 
504  bool const *pixelMasks;
506 
511 typedef struct
512 {
518 
524 
529  uint32_t rangeSigmaLuma;
530 
536 
542 
548 
551 
557 
563 
569 
575 
581 
587 
592  float betaX1;
593 
598  float betaX2;
599 
604  float maxBeta;
605 
610  float minBeta;
612 
614 #define NVMEDIA_LDC_CHECKSUM_NUM_BYTES 24u
615 
617 typedef struct
618 {
622 
628 typedef enum
629 {
632 
636 
678 NvMediaLdcGetVersion(NvMediaVersion *const version);
679 
731 NVM_DEPRECATED_MSG("Use NvMedia2D API instead")
733 NvMediaLdcCreate(NvMediaLdc **const handle, NvMediaLdcAttributes const *const attr);
734 
782 NvMediaLdcDestroy(NvMediaLdc const * const handle);
783 
856  NvMediaLdcParametersAttributes const *const attr,
858 
909 
951  NvMediaLdcFilter const filter);
952 
995  NvMediaRect const *const srcRect,
996  NvMediaRect const *const dstRect);
997 
1042  NvMediaLdcIptParameters const *const iptParams);
1043 
1089  NvMediaLdcWarpMapParameters const *const warpMapParams);
1090 
1137  NvMediaLdcMaskMapParameters const *const maskMapParams);
1138 
1182  NvMediaLdcTnrParameters const *const tnrParams);
1183 
1223 
1272  NvMediaLdcChecksumMode const checksumMode);
1273 
1328  NvMediaLdcResult const *const result,
1329  NvMediaLdcChecksum *const checksum);
1330 
1486 NVM_DEPRECATED_MSG("Use NvMedia2D API instead")
1488 NvMediaLdcProcess(NvMediaLdc const * const handle,
1490  NvMediaLdcResult *const result);
1491 
1495 
1496 //
1497 // Version History
1498 //
1499 // Version 1.0 May 1, 2017
1500 // - Initial release.
1501 //
1502 // Version 1.1 March 16, 2018
1503 // - Add support of TNR2
1504 //
1505 // Version 1.2 September 4, 2018
1506 // - New member variable srcSurfaceType is added to NvMediaLDCInitParams.
1507 //
1508 // Version 1.3 December 26, 2018
1509 // - Adding unsigned tag to macro constants to fix MISRA 10.4 violation.
1510 // - Fixing MISRA 21.1 violations
1511 //
1512 // Version 1.4 January 2, 2019
1513 // - Added deprecated warning message for NvMediaLDCCreate.
1514 // - Added API NvMediaLDCCreateNew
1515 //
1516 // Version 1.5 March 6, 2019
1517 // - Fixing MISRA 8.13 violations.
1518 //
1519 // Version 1.6 March 12, 2019
1520 // - Added required header includes nvmedia_core.h and nvmedia_surface.h
1521 //
1522 // Version 2.0 March 29, 2019
1523 // - Deprecated NvMediaLDCCreate API.
1524 //
1525 // Version 2.1 January 23, 2020
1526 // - Limited destination surface rectangle's top, left corner to (0, 0).
1527 //
1528 // Version 3.0 December 26, 2021
1529 // - Major rework of API, NvMediaImage support was deprecated and
1530 // all functionality related to NvMediaImage has been updated
1531 // in order to support NvSciBuf instead of NvMediaImage.
1532 // - The workflow was changed from setting the parameters
1533 // at the Init stage to using a subset of API that set parameters
1534 // prior to NvMediaLdcProcess() call.
1535 //
1536 // Version 4.0.0 March 28, 2022
1537 // - Add support for NvSciSync task statuses
1538 // - Max pre-fence count changed from 32 to 16
1539 //
1540 // Version 5.0.0 May 10, 2022
1541 // - Re-added the destination rectangle top-left (0, 0) limitation.
1542 //
1543 // Version 6.0.0 June 7, 2022
1544 // - Forbid registering same buffer multiple times
1545 // - Error codes changed for multiple APIs
1546 //
1547 // Version 7.0.0 July 8, 2022
1548 // - New error NVMEDIA_STATUS_INVALID_STATE added for multiple APIs
1549 //
1550 // Version 7.0.1 August 25, 2022
1551 // - Allow NULL context handle in NvMediaLdcFillNvSciBufAttrList
1552 //
1553 // Version 7.0.2 September 2, 2022
1554 // - Always treat parameters handle value 0 as invalid
1555 //
1556 // Version 8.0.0 March 10, 2023
1557 // - NvMediaLdcSetGeometry() and NvMediaLdcSetTnrParameters() no longer reset
1558 // TNR algorithm state
1559 // - New API NvMediaLdcResetTnr() added for explicitly resetting the state
1560 //
1561 // Version 8.1.0 June 2, 2023
1562 // - New checksum API added
1563 //
1564 // Version 9.0.0 September 8, 2023
1565 // - Reject odd rectangle coordinates regardless of surface format
1566 // - Reject destination rectangles smaller than 64x16 pixels
1567 //
1568 // Version 10.0.0 October 11, 2023
1569 // - Add restrictions on xSobel output surfaces
1570 //
1571 // Version 11.0.0 December 1, 2023
1572 // - Add restrictions on source and destination rectangles when IPT and warp map
1573 // processing are both disabled
1574 //
1575 
1576 #ifdef __cplusplus
1577 }
1578 #endif
1579 
1580 #endif
NvMediaLdcTnrParameters::alphaMaxLuma
float alphaMaxLuma
Holds the max luma value in Alpha Clip Calculation.
Definition: nvmedia_ldc.h:568
NVMEDIA_LDC_FILTER_OFF
@ NVMEDIA_LDC_FILTER_OFF
Filtering is disabled.
Definition: nvmedia_ldc.h:236
NvMediaLdcTnrParameters::alphaScaleIIR
float alphaScaleIIR
Holds the alpha scale IIR for strength.
Definition: nvmedia_ldc.h:562
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:474
NvMediaLdcParametersAttributes::maxWarpMapHeight
uint32_t maxWarpMapHeight
Maximum allowed number of control points vertically in a warp map.
Definition: nvmedia_ldc.h:178
NvMediaLdcProcess
NvMediaStatus NvMediaLdcProcess(NvMediaLdc const *const handle, NvMediaLdcParameters const params, NvMediaLdcResult *const result)
Performs LDC operation.
NvMediaLdcMaskMapParameters
Holds the Mask Map information.
Definition: nvmedia_ldc.h:466
NvMediaLdcTnrParameters::rangeSigmaChroma
uint32_t rangeSigmaChroma
Holds the sigma of the chroma for range filter.
Definition: nvmedia_ldc.h:535
NvMedia2D
struct NvMedia2D NvMedia2D
NvMedia2D Context.
Definition: nvmedia_2d.h:1035
NvMediaLdcRegionParameters::numRegionsX
uint32_t numRegionsX
Holds the number of horizontal regions.
Definition: nvmedia_ldc.h:338
NvMediaLdcTnrParameters::alphaSmoothEnable
bool alphaSmoothEnable
Holds a flag which enables or disables the spatial alpha smooth.
Definition: nvmedia_ldc.h:550
NvMediaLdcChecksum
Represents a checksum.
Definition: nvmedia_ldc.h:617
NvMediaLdcMaskMapParameters::pixelMasks
const bool * pixelMasks
Holds the value for the Mask Map surface.
Definition: nvmedia_ldc.h:504
NvMediaLdcTnrParameters::sadMultiplier
float sadMultiplier
Holds the SAD multiplier parameter.
Definition: nvmedia_ldc.h:541
NvMediaLdcDestroy
NvMediaStatus NvMediaLdcDestroy(NvMediaLdc const *const handle)
Destroys the NvMediaLdc context.
NvMediaLdcSetTnrParameters
NvMediaStatus NvMediaLdcSetTnrParameters(NvMediaLdc const *const handle, NvMediaLdcParameters const params, NvMediaLdcTnrParameters const *const tnrParams)
Sets Temporal Noise Reduction (TNR) parameters.
NvMediaLdcMaskMapParameters::maskColorY
float maskColorY
Holds the Y channel value of the mask color.
Definition: nvmedia_ldc.h:484
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:108
NVMEDIA_LDC_CHECKSUM_MODE_DISABLED
@ NVMEDIA_LDC_CHECKSUM_MODE_DISABLED
No checksum calculated. This is the default behavior.
Definition: nvmedia_ldc.h:631
NvMediaLdcAttributes::maxRegisteredSyncs
uint32_t maxRegisteredSyncs
Maximum number of sync objects that can be registered.
Definition: nvmedia_ldc.h:149
NvMediaLdcTnrParameters::spatialSigmaLuma
uint32_t spatialSigmaLuma
Holds the sigma of the luma for spatial filter.
Definition: nvmedia_ldc.h:517
NvMediaLdcParametersAttributes::enableTnr
bool enableTnr
Whether to allocate memory for data structures required for TNR processing.
Definition: nvmedia_ldc.h:182
NvMediaLdcAttributes::flags
uint32_t flags
Internal use only.
Definition: nvmedia_ldc.h:152
NvMediaLdcAttributes::maxRegisteredBuffers
uint32_t maxRegisteredBuffers
Maximum number of buffers that can be registered.
Definition: nvmedia_ldc.h:141
NvMediaLdcTnrParameters::betaX2
float betaX2
Holds parameter BetaX2 in Beta Calculation.
Definition: nvmedia_ldc.h:598
NvMediaLdcParameters
uint32_t NvMediaLdcParameters
Stores configuration for the NvMediaLdcProcess() operation.
Definition: nvmedia_ldc.h:109
handle
const WFDCommitType const WFDHandle handle
Definition: wfdext.h:124
NvMediaVersion
Holds NvMedia version information.
Definition: nvmedia_core.h:168
NvMediaLdcChecksumMode
NvMediaLdcChecksumMode
NvMedia LDC checksum mode.
Definition: nvmedia_ldc.h:628
NvMediaLdcTnrParameters::alphaMinLuma
float alphaMinLuma
Holds the min luma value in Alpha Clip Calculation.
Definition: nvmedia_ldc.h:574
NvMediaLdcIptParameters
Holds inverse perspective transformation configuration.
Definition: nvmedia_ldc.h:363
NvMediaLdcFilter
NvMediaLdcFilter
VIC filter mode.
Definition: nvmedia_ldc.h:233
NvMediaLdcParametersAttributes::enableMaskMap
bool enableMaskMap
Whether to allocate memory for Mask Map.
Definition: nvmedia_ldc.h:185
NvMediaLdcParametersAttributes::maxDstHeight
uint32_t maxDstHeight
Maximum allowed destination rectangle height.
Definition: nvmedia_ldc.h:205
NvMediaLdcTnrParameters::betaX1
float betaX1
Holds parameter BetaX1 in Beta Calculation.
Definition: nvmedia_ldc.h:592
NvMediaLdcAttributes
Attributes structure for NvMediaLdcCreate().
Definition: nvmedia_ldc.h:122
NVM_DEPRECATED_MSG
#define NVM_DEPRECATED_MSG(fmt)
Definition: nvmedia_core.h:43
NvMediaLdcResetTnr
NvMediaStatus NvMediaLdcResetTnr(NvMediaLdc const *const handle, NvMediaLdcParameters const params)
Resets TNR algorithm state.
NvMediaLdcWarpMapParameters::regionParams
NvMediaLdcRegionParameters regionParams
Specifies the regions paramters.
Definition: nvmedia_ldc.h:444
NvMediaLdcTnrParameters
Holds the TNR3 initialization parameters.
Definition: nvmedia_ldc.h:511
NvMediaLdcTnrParameters::maxBeta
float maxBeta
Holds parameter MaxBeta threshold in Beta Calculation.
Definition: nvmedia_ldc.h:604
NvMediaLdcMaskMapParameters::useMaskColor
bool useMaskColor
Indicates whether to fill the masked pixel with the mask color.
Definition: nvmedia_ldc.h:478
NvMediaRect
Holds a rectangular region of a surface.
Definition: nvmedia_core.h:93
nvmedia_core.h
NVIDIA Media Interface: Core
NvMediaLdcAttributes::maxParameters
uint32_t maxParameters
Number of parameters objects to allocate.
Definition: nvmedia_ldc.h:133
NvMediaLdcRegionParameters
Holds the NvMedia LDC region configuration.
Definition: nvmedia_ldc.h:334
NvMediaLdcMaskMapParameters::maskColorV
float maskColorV
Holds the V channel value of the mask color.
Definition: nvmedia_ldc.h:496
NvMediaLdcSetGeometry
NvMediaStatus NvMediaLdcSetGeometry(NvMediaLdc const *const handle, NvMediaLdcParameters const params, NvMediaRect const *const srcRect, NvMediaRect const *const dstRect)
Sets source and destination rectangles for LDC operation.
NvMediaLdcTnrParameters::minBeta
float minBeta
Holds parameter BetaX2 in Beta Calculation.
Definition: nvmedia_ldc.h:610
NvMediaLdcTnrParameters::alphaIncreaseCap
float alphaIncreaseCap
Holds the temporal alpha restrict increase capablility.
Definition: nvmedia_ldc.h:556
NvMediaLdcParametersAttributes::maxWarpMapWidth
uint32_t maxWarpMapWidth
Maximum allowed number of control points horizontally in a warp map.
Definition: nvmedia_ldc.h:169
NvMediaLdcWarpMapParameters::controlPoints
const NvMediaLdcControlPoint * controlPoints
Array of control points across all the regions stored in a row-major order.
Definition: nvmedia_ldc.h:454
NvMediaLdcTnrParameters::alphaMinChroma
float alphaMinChroma
Holds the min chroma value in Alpha Clip Calculation.
Definition: nvmedia_ldc.h:586
NvMediaLdcParametersAttributes::maxDstWidth
uint32_t maxDstWidth
Maximum allowed destination rectangle width.
Definition: nvmedia_ldc.h:195
NvMediaLdcTnrParameters::spatialSigmaChroma
uint32_t spatialSigmaChroma
Holds the sigma of the chroma for spatial filter.
Definition: nvmedia_ldc.h:523
NvMediaLdcTnrParameters::alphaMaxChroma
float alphaMaxChroma
Holds the max chroma value in Alpha Clip Calculation.
Definition: nvmedia_ldc.h:580
NVMEDIA_LDC_MAX_REGIONS_X
#define NVMEDIA_LDC_MAX_REGIONS_X
Maximum number of horizontal regions.
Definition: nvmedia_ldc.h:246
NvMediaLdcControlPoint
Represents a control point.
Definition: nvmedia_ldc.h:377
NvMediaLdcGetChecksum
NvMediaStatus NvMediaLdcGetChecksum(NvMediaLdc const *const handle, NvMediaLdcResult const *const result, NvMediaLdcChecksum *const checksum)
Gets a checksum calculated for an NvMediaLdcProcess() operation.
NvMediaLdcControlPoint::x
float x
Horizontal coordinate.
Definition: nvmedia_ldc.h:383
NvMediaLdcSetChecksumMode
NvMediaStatus NvMediaLdcSetChecksumMode(NvMediaLdc const *const handle, NvMediaLdcParameters const params, NvMediaLdcChecksumMode const checksumMode)
Sets checksum calculation mode.
NvMediaLdcMaskMapParameters::maskColorU
float maskColorU
Holds the U channel value of the mask color.
Definition: nvmedia_ldc.h:490
NvMediaLdcResult::operationId
uint64_t operationId
ID number for operation that was submitted to NvMediaLdcProcess().
Definition: nvmedia_ldc.h:226
NvMediaLdcParametersAttributes
Attributes that specify resources needed for NvMediaLdcParameters instance.
Definition: nvmedia_ldc.h:160
NvMediaLdcSetFilter
NvMediaStatus NvMediaLdcSetFilter(NvMediaLdc const *const handle, NvMediaLdcParameters const params, NvMediaLdcFilter const filter)
Sets the filter mode to use for LDC pixel interpolation.
NvMediaLdcWarpMapParameters
Holds the NvMedia LDC definition of a Warp Map.
Definition: nvmedia_ldc.h:441
NvMediaLdcCreateParameters
NvMediaStatus NvMediaLdcCreateParameters(NvMediaLdc const *const handle, NvMediaLdcParametersAttributes const *const attr, NvMediaLdcParameters *const params)
Creates and returns an NvMediaLdcParameters instance.
NvMediaLdcCreate
NvMediaStatus NvMediaLdcCreate(NvMediaLdc **const handle, NvMediaLdcAttributes const *const attr)
Creates a new NvMediaLdc context.
params
DW_API_PUBLIC dwPointCloudRangeImageCreatorParams const *const params
Definition: PointCloudRangeImageCreator.h:292
NVMEDIA_LDC_CHECKSUM_NUM_BYTES
#define NVMEDIA_LDC_CHECKSUM_NUM_BYTES
Number of bytes in NvMedia LDC checksums.
Definition: nvmedia_ldc.h:614
NvMediaLdcSetMaskMapParameters
NvMediaStatus NvMediaLdcSetMaskMapParameters(NvMediaLdc const *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:547
NvMediaLdc
struct NvMediaLdc NvMediaLdc
NvMediaLdc context.
Definition: nvmedia_ldc.h:82
NvMediaLdcSetWarpMapParameters
NvMediaStatus NvMediaLdcSetWarpMapParameters(NvMediaLdc const *const handle, NvMediaLdcParameters const params, NvMediaLdcWarpMapParameters const *const warpMapParams)
Sets parameters for LDC Warp Map.
NvMediaLdcWarpMapParameters::numControlPoints
uint32_t numControlPoints
Number of control points in the controlPoints array.
Definition: nvmedia_ldc.h:450
NvMediaLdcTnrParameters::rangeSigmaLuma
uint32_t rangeSigmaLuma
Holds the sigma of the luma for range filter.
Definition: nvmedia_ldc.h:529
NvMediaLdcIptParameters::regionParams
NvMediaLdcRegionParameters regionParams
Specifies the regions parameters.
Definition: nvmedia_ldc.h:366
NvMediaLdcSetIptParameters
NvMediaStatus NvMediaLdcSetIptParameters(NvMediaLdc const *const handle, NvMediaLdcParameters const params, NvMediaLdcIptParameters const *const iptParams)
Sets parameters for LDC Inverse Perspective Transform (IPT) operation.
NVMEDIA_LDC_FILTER_LOW
@ NVMEDIA_LDC_FILTER_LOW
Low quality filtering.
Definition: nvmedia_ldc.h:239
NVMEDIA_LDC_FILTER_MEDIUM
@ NVMEDIA_LDC_FILTER_MEDIUM
Medium quality filtering.
Definition: nvmedia_ldc.h:242
NvMediaLdcResult
Stores information returned from NvMediaLdcProcess().
Definition: nvmedia_ldc.h:218
NvMediaLdcGetVersion
NvMediaStatus NvMediaLdcGetVersion(NvMediaVersion *const version)
Returns the version number of the NvMedia LDC library.
NvMediaLdcDestroyParameters
NvMediaStatus NvMediaLdcDestroyParameters(NvMediaLdc const *const handle, NvMediaLdcParameters const params)
Destroys an NvMediaLdcParameters instance.
NvMediaLdcControlPoint::y
float y
Vertical coordinate.
Definition: nvmedia_ldc.h:389
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:470
NvMediaLdcRegionParameters::numRegionsY
uint32_t numRegionsY
Holds the number of vertical regions.
Definition: nvmedia_ldc.h:342
NVMEDIA_LDC_CHECKSUM_MODE_SRC_SURFACE
@ NVMEDIA_LDC_CHECKSUM_MODE_SRC_SURFACE
Checksum calculated from source surface pixel data.
Definition: nvmedia_ldc.h:634
NVMEDIA_LDC_MAX_REGIONS_Y
#define NVMEDIA_LDC_MAX_REGIONS_Y
Maximum number of vertical regions.
Definition: nvmedia_ldc.h:249