struct _VAProcFilterParameterBuffer3DLUT

Defined at line 1403 of file ../../third_party/intel/libva/va/va_vpp.h

3DLUT filter parametrization.

3DLUT (Three Dimensional Look Up Table) is often used when converting an image or a video frame

from one color representation to another, for example, when converting log and gamma encodings,

changing the color space, applying a color correction, changing the dynamic range, gamut mapping etc.

This buffer defines 3DLUT attributes and memory layout. The typical 3DLUT has fixed number(lut_size)

per dimension and memory layout is 3 dimensional array as 3dlut[stride_0][stride_1][stride_2] (lut_size

shall be smaller than stride_0/1/2).

API user should query hardware capability by using the VAProcFilterCap3DLUT to get the 3DLUT attributes

which hardware supports, and use these attributes. For example, if the user queries hardware, the API user

could get caps with 3dlut[33][33][64] (lut_size = 33, lut_stride[0/1/2] = 33/33/64). API user shall not

use the attributes which hardware can not support.

3DLUT is usually used to transform input RGB/YUV values in one color space to output RGB values in another

color space. Based on 1) the format and color space of VPP input and output and 2) 3DLUT memory layout and

channel mapping, driver will enable some color space conversion implicitly if needed. For example, the input of

VPP is P010 format in BT2020 color space, the output of VPP is NV12 in BT709 color space and the 3DLUT channel

mapping is VA_3DLUT_CHANNEL_RGB_RGB, driver could build the data pipeline as P010(BT2020)->RGB(BT2020)

->3DULT(BT709)->NV12(BT709). Please note, the limitation of 3DLUT filter color space is that the color space of

3DLUT filter input data needs to be same as the input data of VPP; the color space of 3DLUT filter output data

needs to be same as the output data of VPP; format does not have such limitation.

Public Members

_VAProcFilterType type
VASurfaceID lut_surface
uint16_t lut_size
uint16_t[3] lut_stride
uint16_t bit_depth
uint16_t num_channel
uint32_t channel_mapping
uint32_t[16] va_reserved