2. GOP结构和适用场景¶
2.1. GOP模式列表¶
模式 |
说明 |
---|---|
NormalP |
P帧只向前参考前一张参考帧 |
SmartP |
P帧只向前参考前一张参考帧,VI帧向前参考IDR帧 |
2.2. NormalP模式结构说明¶
2.2.1. NormalP模式结构说明¶
NormalP为最通常的一种GOP结构,固定向前参考前一帧,亦称作IPPP编码
在一般无特殊需求场景下,建议使用NormalP模式
NormalP模式GOP结构,如下图所示。
2.2.2. Normal模式使用方法¶
相关接口
CVI_MPI_VENC_CreateChn
相关参数
VENC_CHN_ATTR_S::stGopAttr.enGopMode = VENC_GOPMODE_NORMALP
VENC_CHN_ATTR_S::stRcAttr.u32Gop = 60
VENC_CHN_ATTR_S::stGopAttr.stNormalP.s32IPQpDelta推荐设为3,数值越大I帧码率越大,图像质量越好
2.3. SmartP模式GOP结构说明及使用方法¶
2.3.1. SmartP模式结构说明¶
SmartP模式包含一般向前参考帧与virtual-I帧两种P帧。virtual-I帧使用长期参考帧向前参考IDR帧
SmartP主要应用在监控场景。因固定的摄像头安装,场景中大多为静止背景,仅人和物体有运动。使用virtual-I替代I帧来拉长IDR帧编码周期,进而降低码率以及减少呼吸效应
对于摄像头运动的场景因无固定背景而编码效能提升有限
SmartP模式GOP结构,如下图所示。
2.3.2. SmartP模式使用方法¶
相关接口
CVI_VENC_CreateChn
相关参数
VENC_CHN_ATTR_S::stGopAttr.enGopMode = VENC_GOPMODE_SMARTP
VENC_CHN_ATTR_S::stGopAttr.stSmartP.u32BgInterval = 300 // 10secs for fps=30
VENC_CHN_ATTR_S::stRcAttr.u32Gop = 60 // virtual I interval,2secs for fps=30
VENC_CHN_ATTR_S::stRcAttr.u32StatTime = 10 // secs
VENC_CHN_ATTR_S:: stGopAttr.stSmartP.s32BgQpDelta = 2
VENC_CHN_ATTR_S:: stGopAttr.stSmartP.s32ViQpDelta = 0
2.4. GOP结构内存占用、延时、适用场景及兼容性¶
模式 |
DDR占用 |
Delay |
适用场景 |
H.264 / H.265 Enc |
H.264 / H.265 Enc |
||
NormalP |
2*PicSize |
N/A |
一般场景 |
SmartP |
2*PicSize |
N/A |
监控场景 |
PicSize的计算方式
编码帧存(参考帧和重构帧)每块VB大小计算方式如下:
H.264
PicSize= FrameBufSize
H.265
PicSize= FrameBufSize + mvColSize + fbcYTblSize + fbcCTblSize + subSampledSize
帧存大小各子项计算方法请参考文档《CV180x媒体软件开发参考》的“视频编码”章节
兼容性
Cvitek后端产品兼容性,如下表所示
CV180x |
||
H.264 |
H.265 |
|
NormalP |
Yes |
Yes |
SmartP |
Yes |
Yes |