速率控制(RATE control, RC)
⚫️速率控制(RATE control, RC)是H265中用于控制传输速率的一种技术,简单来说,就是通过对量化参数QP和拉格朗日因子lambda的控制,使得视频的每秒压缩后的大小尽可能的恒等于传输通道的传输容量。就像高速公路上的汽车一样,车多了堵,车少了公路闲置,浪费资源。理想状态就是车流量刚好等于公路容量,既不堵,也不浪费。
量化参数QP对压缩的影响;
⚪️简单来说,就是量化后的数据,都等于QP的整数倍;
🔴假如一组数据为 【2, 3, 4, 8, 7】
- QP为1时,压缩后为【2, 3, 4, 8, 7】
- QP为2时,压缩后为【1, 1, 2, 4, 3】
- QP为4时,压缩后【0,0,1,2,1】
- QP为8时,压缩后为【0,0,0,1,0】
由此可知,QP参数越大,数据量越小,但同样的,失真也更严重;
🔵而λ,则用于代价函数的计算;H265提供了很多种压缩方式(其他模块内容,这里不做详细介绍),在选择的压缩方式时,选取代价函数最小的压缩方式,而代价函数的表达式为:
Δ J = Δ D + λ R ΔJ = ΔD + λR ΔJ=ΔD+λR
其中, ΔD为这种方式压缩时,图像的失真;R为这种方式压缩时,压缩后的大小;
🔷由表达式可知,lambda越大,R对选取压缩方式的影响越大。也就是说,当我们倾向于压缩后数据更小时,就需要增大lambda,我们倾向于压缩后图像失真更小,就需要减少lambda。
由此可推断出, QP和λ正相关;通过大量实验数据可得
Q
P
=
4.2005
l
n
λ
+
13.7122
QP = 4.2005lnλ + 13.7122
QP=4.2005lnλ+13.7122
🔶速率控制的表达式比较复杂,这里不做介绍。简化处理后,可以理解为,前面的图像如果压缩编码后数据量的太多了,我们就增大lambda和QP,使得后面压缩后的图像较小。如果压缩编码后数据量的太少了,我们就减小lambda和QP,使得后面压缩后的图像较大(失真较小)。从而使整个视频压缩后每分每秒的大小,都尽可能的维持在一个恒定信息量(信道容量)。
总结:
🔺压缩的多了,图像失真大。压缩的少了,图像数据量大。因此速率控制就是通过调节lambda和QP,使得整个视频压缩后每分每秒的大小,都尽可能的维持在一个恒定信息量(信道容量),既不至于失真太多,又不会压缩后数据量太大造成“堵车”。