Quantization Parameter
:
QP
值对应量化步长的序号,值越小,量化步长越小,量化的精度就越高,画质也就越好,
编码出来的
size
也越大。
GOP
Group Of Pictures
:指的是两个
I
帧的间隔。视频图像序列由一个或多个图像组
GOP
组成,
GOP
之间是独立的。
MB
Macroblock
:编码宏块,
H.264
编码的基本单元。
CU
Coding Unit
:编码单元,
H.265
编码的基本单元。
SPS
Sequence Parameter Set
:序列参数集,包含了一个
GOP
中所有图像的公有信息。
PPS
Picture Parameter Set
:图像参数集,包含了一张图像编码所用的参数
SEI
Supplemental Enhancement information:
辅助增强信息。
ECS
Entropy-coded segment:JPEG
熵编码后的压缩图像条带。
MCU
Minimum code unit:JPEG
编码的基本单元。
码率控制
图像压缩比与质量成反比:压缩比越高,质量越低;压缩比越低,质量越高。以
H.264
为例,
一般图像
Qp
越低,图像质量越高,码率越高;图像
Qp
越高,图像质量越低,码率越低。
FIXQP
FIXQP(Fix Quantization Parameter)
固定
Qp
,在任意时间点,编码图像的所有基本单元
Qp
都直接采用用户设定值,
H.264/H.265 I
帧和
P
帧的
Qp
可以分别设置,但有些
Chip
无法设置
P
帧
Qp
CBR
CBR(Constant Bit Rate)
为固定比特率,在码率统计时间内保证编码码率稳定。
编码中
I
帧与
P
帧因为预测方式的不同会造成编码后
Size
的明显差异,底层的统计时间以
Gop
为基本单位,在
Gop 之间会实现比特的累积与补偿。
主要步骤如下
:
1.
将用户设定的
Fps/Gop/Bitrate
转换成每个
Gop
的
Bits
;
2.I/P
区分处理,按照
Gop Bits
以及分辨率计算
Bpp(BitPerPixel)
;
3.
通过码率控制模型,将
Bpp
映射到
Frame Qp
;
4.HW
在
Frame Qp
基础上通过画面纹理复杂度等信息进一步调整
MB/CU Qp
;
5.
编码结束后更新码率控制模型,以达到整个序列的不断稳定,同时累积
Bit
误差,用于后续帧
Bit
分配的微调;
6.
整个
Gop
结束后累积整个
Gop
的
Bit
误差,用于下一个
Gop Bit
分配的微调。
控制流程图如下
参考帧结构
H.264/H.265
单帧只支持参考
1
个参考帧,但是整个码流支持多个参考帧缓存。例如:
LTR/TSVC3
模式,每张
P 帧都只可以参考一个,但是最多会保存 2
个参考帧供不同
p
帧参考。
参考帧共支持
5
种模式:
NormalP
,
LTR(VI Ref IDR)
,
LTR(VI Ref VI)
,
TSVC-2
和
TSVC-3
。
所有参考帧结构由三个参数控制:u32Base
,
u32Enhance
和
bEnablePred
u32Enhance
设置
为 0
将转换为
NormalP
参考帧结构,其余结构开启请参考对应结构图,系统默认为
NormalP 参考帧结构。