下载
中文
注册

VdecConfig

功能

定义视频流解码使用的结构体。

结构定义

struct VdecConfig {
    uint32_t width = 0;
    uint32_t height = 0;
    MxbaseStreamFormat inputVideoFormat = MXBASE_STREAM_FORMAT_H264_MAIN_LEVEL;
    MxbasePixelFormat outputImageFormat = MXBASE_PIXEL_FORMAT_YUV_SEMIPLANAR_420;
    uint32_t channelId = 0;
    uint32_t deviceId  = 0;
    pthread_t threadId  = 0; 
    DecodeCallBackFunction callbackFunc = nullptr; 
    uint32_t outMode = 0;
    uint32_t videoChannel = 0;
    uint32_t skipInterval = 0;
    uint32_t cscMatrix = 0;
    void* userData = nullptr;
};

参数说明

参数名

输入/输出

说明

width

输入

图像的宽度。

height

输入

图像的高度。

inputVideoFormat

输入

输入图像的格式。

outputImageFormat

输入

输出图像的格式。

channelId

输入

解码的通道编号。

deviceId

输入

设备编号。

threadId

输入

回调线程编号。

callbackFunc

输入

回调函数。

结构为:

APP_ERROR (*DecodeCallBackFunction)(std::shared_ptr<void> buffer, DvppDataInfo& dvppDataInfo, void* userData)
  • buffer:解码后输出的数据。
  • dvppDataInfo:解码后输出的数据信息。
  • userData:用户定义获取数据指针。

outMode

输入

选择出帧模式。默认值为“0”,可取值为“0”“1”

  • 0:由于解码过程中存在缓存帧,无法实时输出,因此VDEC需要在收到码流中的多帧数据后,才开始输出解码结果。
  • 1:快速出帧模式,VDEC获取码流中的一帧数据后,就开始实时输出解码结果,只支持简单参考关系的H.264/H.265标准码流(无长期参考帧,无B帧)。

videoChannel

输入

预留参数。

skipInterval

输入

跳帧参数。

cscMatrix

输入

色域转换选项。当前仅支持Atlas 推理系列产品

  • 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 | 

userData

输入

用户自定义数据。