NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
NvMedia2DLdcWarpMapParameters Struct Reference

Detailed Description

Holds the NvMedia definition of an LDC Warp Map.

Warp Map stores the mappings of each control point from destination image to input image. The coordinates of control points in a destination image are defined by regionParams.

If warp map region N has controlPointXSpacingLog2[N] = 0 it is considered to have "full columns", and with controlPointYSpacingLog2[N] = 0 "full rows". Otherwise, the region has "sparse columns/rows".

The warp map processing always operates on "tiles" of size NvMedia2DCapabilities::tileWidth x NvMedia2DCapabilities::tileHeight pixels. When determining the number of control points in warp map region N, regionWidth[N] is rounded up to the next multiple of tile width and regionHeight[N] to the next multiple of tile height.

In a warp map region with full columns/rows, the number of columns/rows of control points equals the tile size rounded up width/height of the region.

In a warp map region with sparse columns/rows,

  • First control point column/row is at position 0 within the region.
  • There's always an odd number of columns/rows of control points.
  • The position of the last control point column/row is always outside the tile size rounded up width/height of the region.

For example, if region width is 192 and control point interval is 64, it will result in 5 columns of control points with X-coordinates 0, 64, 128, 192 and 256.

The code below shows how to calculate the exact number of control points for a single region:

...
w = RoundUp(regionInfo.regionWidth[i], caps.tileWidth);
dx = 1 << regionInfo.controlPointXSpacingLog2[i];
numColumns = RoundUp(w, 2 * dx) / dx + (dx == 1 ? 0 : 1);
h = RoundUp(regionInfo.regionHeight[i], caps.tileHeight);
dy = 1 << regionInfo.controlPointYSpacingLog2[i];
numRows = RoundUp(h, 2 * dy) / dy + (dy == 1 ? 0 : 1);

Where RoundUp() rounds the first argument up to the nearest multiple of the second argument.

See also
NvMedia2DCapabilities
NvMedia2DLdcRegionParameters
NvMedia2DFillLdcWarpMap()
NvMedia2DSetSrcLdcTransformMatrix()

Definition at line 829 of file nvmedia_2d.h.

Collaboration diagram for NvMedia2DLdcWarpMapParameters:

Data Fields

NvMedia2DLdcRegionParameters regionParams
 Specifies the regions paramters. More...
 
uint32_t numControlPoints
 Number of control points in the controlPoints array. More...
 
const NvMedia2DLdcControlPointcontrolPoints
 Array of control points across all the regions stored in a row-major order. More...
 

Field Documentation

◆ controlPoints

const NvMedia2DLdcControlPoint* NvMedia2DLdcWarpMapParameters::controlPoints

Array of control points across all the regions stored in a row-major order.

Definition at line 842 of file nvmedia_2d.h.

◆ numControlPoints

uint32_t NvMedia2DLdcWarpMapParameters::numControlPoints

Number of control points in the controlPoints array.

Must equal the number of control points specified by regionParams.

Definition at line 838 of file nvmedia_2d.h.

◆ regionParams

NvMedia2DLdcRegionParameters NvMedia2DLdcWarpMapParameters::regionParams

Specifies the regions paramters.

Definition at line 832 of file nvmedia_2d.h.


The documentation for this struct was generated from the following file:
NvMedia2DCapabilities
Capabilities of the NvMedia2D context.
Definition: nvmedia_2d.h:400
NvMedia2DLdcRegionParameters::regionWidth
uint32_t regionWidth[NVMEDIA_2D_MAX_LDC_REGIONS_X]
Holds the width of regions.
Definition: nvmedia_2d.h:723
NvMedia2DCapabilities::tileWidth
uint32_t tileWidth
Width of the tiles the HW processes the surfaces in.
Definition: nvmedia_2d.h:424
NvMedia2DLdcRegionParameters::regionHeight
uint32_t regionHeight[NVMEDIA_2D_MAX_LDC_REGIONS_Y]
Holds the height of regions.
Definition: nvmedia_2d.h:726
NvMedia2DLdcRegionParameters::controlPointYSpacingLog2
uint32_t controlPointYSpacingLog2[NVMEDIA_2D_MAX_LDC_REGIONS_Y]
Holds the vertical interval between the control points in each region in log2 space.
Definition: nvmedia_2d.h:734
NvMedia2DLdcRegionParameters::controlPointXSpacingLog2
uint32_t controlPointXSpacingLog2[NVMEDIA_2D_MAX_LDC_REGIONS_X]
Holds the horizontal interval between the control points in each region in log2 space.
Definition: nvmedia_2d.h:730
NvMedia2DCapabilities::tileHeight
uint32_t tileHeight
Height of the tiles the HW processes the surfaces in.
Definition: nvmedia_2d.h:427
NvMedia2DLdcRegionParameters
Holds the NvMedia LDC region configuration.
Definition: nvmedia_2d.h:712