⚫️速率控制(RATE control, RC)是H265中用于控制传输速率的一种技术,简单来说,就是通过对量化参数QP和拉格朗日因子lambda的控制,使得视频的每秒压缩后的大小尽可能的恒等于传输通道的传输容量。就像高速公路上的汽车一样,车多了堵,车少了公路闲置,浪费资源。理想状态就是车流量刚好等于公路容量,既不堵,也不浪费。
⚪️简单来说,就是量化后的数据,都等于QP的整数倍;
假如一组数据为 【2, 3, 4, 8, 7】
由此可知,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,使得整个视频压缩后每分每秒的大小,都尽可能的维持在一个恒定信息量(信道容量),既不至于失真太多,又不会压缩后数据量太大造成“堵车”。