下载
中文
注册

VideoDecodeConfig

功能

用于保存视频解码的参数。

结构定义

struct VideoDecodeConfig {
    uint32_t width = 1920;
    uint32_t height = 1080;
    StreamFormat inputVideoFormat = StreamFormat::H264_MAIN_LEVEL;
    ImageFormat outputImageFormat = ImageFormat::YUV_SP_420;
    VideoDecodeCallBack callbackFunc = nullptr;
    uint32_t skipInterval = 0;
    uint32_t cscMatrix = 0;
};

参数说明

参数名

说明

width

视频解码缓冲区的宽,取值范围:[128, 4096],默认值:1920,必须为偶数并自动对齐到16的倍数。

请用户根据实际的视频帧数据进行适当设置,需大于或等于实际的视频帧数据宽,否则会无解码输出,设置过大将会产生多余的内存资源。

height

视频解码缓冲区的高,取值范围:[128, 4096],默认值:1080,必须为偶数。

请用户根据实际的视频帧数据进行设置,需大于或等于实际的视频帧数据高,否则会无解码输出,设置过大将会产生多余的内存资源。

inputVideoFormat

输入的视频格式。

  • H.264格式视频支持h264_baseline_level、h264_main_level、h264_high_level三种格式。
  • H.265格式视频只支持h265_main_level格式,默认值:StreamFormat::H264_MAIN_LEVEL。

outputImageFormat

解码后输出的图像格式,默认值:ImageFormat::YUV_SP_420。

  • Atlas 200/500 A2 推理产品支持 YUV_SP_420、YVU_SP_420 格式。

callbackFunc

解码完成后的回调函数,不能为空指针。

skipInterval

视频解码的跳帧参数,取值范围:[0, 250],默认值:0。

cscMatrix

色域转换选项,默认值为“0”,(即HI_CSC_MATRIX_BT601_WIDE)。

  • HI_CSC_MATRIX_BT601_WIDE = 0,基于BT601 wide标准的色域转换矩阵,各参数值参考如下。
    # YUV转RGB:
    # | R |   | 1.000  0.000   1.402 |   | Y - 0 |
    # | G | = | 1.000 -0.344  -0.714 | * | U - 128 | 
    # | B |   | 1.000  1.772   0.000 |   | V - 128 |
    # RGB转YUV:
    # | Y |   |-0.5  |   |  0.299  0.587  0.114  |   | R |        
    # | U | = |127.5 | + | -0.168 -0.331  0.500  | * | G | 
    # | V |   |127.5 |   |  0.500 -0.419  -0.081 |   | B | 
  • HI_CSC_MATRIX_BT601_NARROW =1,基于BT601 narrow标准的色域转换矩阵,各参数值参考如下。
    # YUV转RGB:
    # | R |   | 1.16438  0.00000   1.59602 |   | Y - 16 |
    # | G | = | 1.16438 -0.39176  -0.81297 | * | U - 128 | 
    # | B |   | 1.16438  2.01723   0.00000 |   | V - 128 |
    # RGB转YUV:
    # | Y |   |16 |   |  0.25679  0.51564  0.10014 |   | R |        
    # | U | = |128| + | -0.14491 -0.29099  0.43922 | * | G | 
    # | V |   |128|   |  0.42941 -0.36779 -0.07143 |   | B | 
  • HI_CSC_MATRIX_BT709_WIDE =2,基于BT709 wide标准的色域转换矩阵,各参数值参考如下。
    # YUV转RGB:
    # | R |   | 1.00000  0.00000   1.57480 |   | Y - 0 |
    # | G | = | 1.00000 -0.18732  -0.46812 | * | U - 128 | 
    # | B |   | 1.00000  1.85560   0.00000 |   | V - 128 |
    # RGB转YUV:
    # | Y |   |0  |   |  0.21260  0.71520  0.07220 |   | R |        
    # | U | = |128| + | -0.11457 -0.38543  0.50000 | * | G | 
    # | V |   |128|   |  0.50000 -0.45415 -0.04585 |   | B | 
  • HI_CSC_MATRIX_BT709_NARROW =3,基于BT709 narrow标准的色域转换矩阵,各参数值参考如下。
    # YUV转RGB:
    # | R |   | 1.16438  0.00000   1.79274 |   | Y - 16 |
    # | G | = | 1.16438 -0.21325  -0.53291 | * | U - 128 | 
    # | B |   | 1.16438  2.11240   0.00000 |   | V - 128 |
    # RGB转YUV:
    # | Y |   |16 |   |  0.18259  0.62825  0.06342 |   | R |        
    # | U | = |128| + | -0.09840 -0.33857  0.43922 | * | G | 
    # | V |   |128|   |  0.42941 -0.39894 -0.04027 |   | B | 
  • HI_CSC_MATRIX_BT2020_WIDE =4,基于BT2020 wide标准的色域转换矩阵,各参数值参考如下。
    # YUV转RGB:
    # | R |   | 1.00000  0.00000   1.47460 |   | Y - 0 |
    # | G | = | 1.00000 -0.16455  -0.57135 | * | U - 128 | 
    # | B |   | 1.00000  1.88140   0.00000 |   | V - 128 |
    # RGB转YUV:
    # | Y |   |0  |   |  0.26270  0.67800  0.05930 |   | R |        
    # | U | = |128| + | -0.13963 -0.36037  0.50000 | * | G | 
    # | V |   |128|   |  0.50000 -0.45979 -0.04021 |   | B | 
  • HI_CSC_MATRIX_BT2020_NARROW =5,基于BT2020 narrow标准的色域转换矩阵,各参数值参考如下。
    # YUV转RGB:
    # | R |   | 1.16438  0.00000   1.67868 |   | Y - 16 |
    # | G | = | 1.16438 -0.18733  -0.65042 | * | U - 128 | 
    # | B |   | 1.16438  2.14177   0.00000 |   | V - 128 |
    # RGB转YUV:
    # | Y |   |16 |   |  0.22564  0.59558  0.05209 |   | R |        
    # | U | = |128| + | -0.11992 -0.31656  0.43922 | * | G | 
    # | V |   |128|   |  0.42941 -0.40389 -0.03533 |   | B |