2. GOP结构和适用场景

2.1. GOP模式列表

模式

说明

NormalP

P帧只向前参考前一张参考帧

SmartP

P帧只向前参考前一张参考帧,VI帧向前参考IDR帧

2.2. NormalP模式结构说明

2.2.1. NormalP模式结构说明

NormalP为最通常的一种GOP结构,固定向前参考前一帧,亦称作IPPP编码
在一般无特殊需求场景下,建议使用NormalP模式
NormalP模式GOP结构,如下图所示。
_images/normal01.png
_images/normal02.png

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结构,如下图所示。
_images/smart01.png
_images/smart02.png

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