跳到主要内容

Rect

VideoEncodeConfig

功能

用于保存视频编码的相关参数。

结构定义

struct VideoEncodeConfig {
uint32_t maxPicWidth = 4096;
uint32_t maxPicHeight = 4096;
uint32_t width = 1920;
uint32_t height = 1080;
// stream format renference acldvppStreamFormat
StreamFormat outputVideoFormat = StreamFormat::H264_MAIN_LEVEL;
// output format renference acldvppPixelFormat
ImageFormat inputImageFormat = ImageFormat::YUV_SP_420;
VideoEncodeCallBack callbackFunc = nullptr;
uint32_t keyFrameInterval = 30;
uint32_t srcRate = 30;
uint32_t rcMode = 0;
uint32_t maxBitRate = 300;
uint32_t ipProp = 70;
};

参数说明

参数名说明
width编码后视频帧数据的宽,默认值:1920,必须与待编码图片的宽(originalSize)一致。
- Atlas 200I/500 A2 推理产品,取值范围:[128, 1920],输入的视频宽需要对齐16。
height编码后视频帧数据的高,默认值:1080,必须与待编码图片的高(originalSize)一致。
- Atlas 200I/500 A2 推理产品,取值范围:[128, 1920],输入的视频高需要对齐2。
outputVideoFormat编码后输出的视频格式, 默认值:StreamFormat::H264_MAIN_LEVEL。
inputImageFormat输入的图像格式,默认值:ImageFormat::YUV_SP_420。
- Atlas 200I/500 A2 推理产品支持 YUV_SP_420、YVU_SP_420 格式。
callbackFunc编码完成后的回调函数,不能为空指针。
keyFrameInterval视频I帧间隔大小,默认为30,取值范围[1, 2000]。
srcRate输入码流帧率,单位fps,默认为30。
- Atlas 200I/500 A2 推理产品,取值范围:[1, 120]。
rcMode指定码率控制模式,默认值为 0,取值如下:
- 0:默认模式。Atlas 200I/500 A2 推理产品默认为CBR模式。。
- 1:变码率VBR模式。
- 2:定码率CBR模式。
maxBitRate输出码率,单位kbps,默认值为300。
- Atlas 200I/500 A2 推理产品,取值范围:[10, 30000]。
ipProp一个GOP内单个I帧bit数和单个P帧bit数的比例,默认值为70,取值范围[1, 100]。

推荐配置

以下为视频采集场景下推荐的参数配置,可以保证较好的视频编码质量,其他场景下请根据实际应用对应调整。

画质/分辨率srcRatekeyFrameIntervalmaxBitRate
4K 3840 * 2160/4096 * 216025或3050或60- H.264: 8000 ~ 12000
- H.265: 8000 ~ 12000
2K 2560 * 144025或3050或60- H.264: 6000 ~ 10000
- H.265: 6000 ~ 10000
1080P(蓝光) 1920 * 108025或3050或60- H.264: 20006000
- H.265: 1000
4000
720P(高清) 1280 * 72025或3050或60- H.264: 10003000
- H.265: 800
2000
480P/D1_N(标清) 854 * 480/720 * 48025或3050或60- H.264: 6001400
- H.265: 300
700
576P/D1 (标清) 720 * 57625或3050或60- H.264: 6001400
- H.265: 300
700
270P(流畅) 480 * 27025或3050或60-
CIF P/N 352 * 288/320 * 24025或3050或60- H.264: 250
- H.265: 250

父主题: 通用数据结构

VideoEncodeCallBack

功能

用于定义视频编码输入的回调函数。

请勿在回调函数内实现过于复杂的操作,而是单纯用用户自定义“userData”来接收视频编码回调结果,否则回调线程会发生卡住的现象,导致视频编码速度变慢。

结构定义

typedef APP_ERROR (*VideoEncodeCallBack)(std::shared_ptr<uint8_t>& outDataPtr, uint32_t& outDataSize,
uint32_t& channelId, uint32_t& frameId, void* userData);

参数说明

参数名说明
outDataPtr编码后输出视频帧数据的内存地址。
outDataSize编码后输出视频帧数据的内存大小。
channelId视频流索引,由VideoEncoder类的构造函数来设置。
frameId视频帧索引,由VideoEncoder类的Encode函数来设置。
userData用户自定义回调输入的数据类型(主要用来获取编码数据)。

父主题: 通用数据结构

Rect

功能

矩形框结构体(抠图贴图),用来保存一个矩形框的左上角坐标和右下角坐标(图像的左上角坐标和右下角坐标)。

结构定义

struct Rect &#123;
Rect()
: x0(0), y0(0), x1(0), y1(0) &#123;&#125;;
Rect(const uint32_t leftTopX, const uint32_t leftTopY,
const uint32_t rightBottomX, const uint32_t rightBottomY)
: x0(leftTopX), y0(leftTopY), x1(rightBottomX), y1(rightBottomY) &#123;&#125;;
Rect(const Point leftTop, const Point rightBottom)
: x0(leftTop.x), y0(leftTop.y), x1(rightBottom.x), y1(rightBottom.y) &#123;&#125;;

uint32_t x0 = 0;
uint32_t y0 = 0;
uint32_t x1 = 0;
uint32_t y1 = 0;
&#125;;

参数说明

参数名说明
x0,leftTopX矩形框左上角坐标的横坐标(以图像左上角为原点)。
y0,leftTopY矩形框左上角坐标的纵坐标(以图像左上角为原点)。
x1,rightBottomX矩形框右下角坐标的横坐标(以图像左上角为原点)。
y1,rightBottomY矩形框右下角坐标的纵坐标(以图像左上角为原点)。
leftTop矩形框左上角坐标点(Point 结构体)。
rightBottom矩形框右下角坐标点(Point 结构体)。

父主题: 通用数据结构

Size

功能

图像大小结构体(缩放),用来保存一个图像的高和宽。

结构定义

struct Size &#123;
Size()
: width(0), height(0) &#123;&#125;;
Size(const uint32_t inputWidth, const uint32_t inputHeight)
: width(inputWidth), height(inputHeight) &#123;&#125;;

uint32_t width = 0;
uint32_t height = 0;
&#125;;

参数说明

参数名说明
width,inputWidth图像宽。
height,inputHeight图像高。

父主题: 通用数据结构

Point

功能

坐标点,用于保存图像像素点位置的结构体。

结构定义

struct Point &#123;
Point()
: x(0), y(0) &#123;&#125;;
Point(const uint32_t inputX, const uint32_t inputY)
: x(inputX), y(inputY) &#123;&#125;;

uint32_t x = 0;
uint32_t y = 0;
&#125;;

参数说明

参数名说明
x,inputX横坐标(以图像左上角为原点)。
y,inputY纵坐标(以图像左上角为原点)。

父主题: 通用数据结构

Color

功能

色彩值,用于图像处理补边功能,描述三通道色彩的结构体。

结构定义

struct Color &#123;
Color()
: channel_zero(0), channel_one(0), channel_two(0) &#123;&#125;;
Color(const uint32_t inputRed, const uint32_t inputGreen, const uint32_t inputBlue)
: channel_zero(inputRed), channel_one(inputGreen), channel_two(inputBlue) &#123;&#125;;

uint32_t channel_zero;
uint32_t channel_one;
uint32_t channel_two;
&#125;;

参数说明

参数名说明
channel_zero,inputRed0号通道取值,范围[0, 255]。 例如:对于RGB_888格式图像,该通道为R;对于YUV格式图像,该通道为Y。
channel_one,inputGreen1号通道取值,范围[0, 255]。 例如:对于RGB_888格式图像,该通道为G;对于YUV格式图像,该通道为U。
channel_two,inputBlue2号通道取值,范围[0, 255]。 例如:对于RGB_888格式图像,该通道为B;对于YUV格式图像,该通道为V。

父主题: 通用数据结构

在线提单