码率控制(四):TM5
TM5是MPEG-2中的码率控制算法,整个算法分为三步:
-
目标比特分配:这一步为当前待编码的帧分配目标比特。
-
码率控制:为每个MB设置参考QP。
-
自适应量化:根据每个MB的空域活动性调整上面的参考QP以生成最终QP用于量化MB。
1、目标比特分配
复杂度估计
当某个特定类型帧(I、P、B)编码完后,其对应的”全局复杂度“(Xi,Xp或Xb)按下面方式更新:
Si、Sp、Sb是编码该帧实际使用的比特数。Qi、Qp、Qb是编码该帧后所有MB(包括skipped MB)的实际QP的平均值。
图像目标比特分配
待编码帧(Ti、Tp、Tb)目标比特计算方式如下:
码率控制
在编码第j个MB前需要计算缓冲区充盈度:
当该帧分别为I、P、B帧时缓冲区充盈度计算方法如上。
Bj是编码j个MB所使用的比特数。MB_cnt是当前帧包含的MB数。
然后,第j个MB的参考QP计算方法如下:
自适应量化
第j个MB的空域活动性计算方法如下:
对actj进行归一化:
然后利用归一化后的actj对第2步得到其QP进行调整得到最终QP:
参考
http://www.mpeg.org/MPEG/MSSG/tm5/Ch10/Ch10.html
感兴趣的请关注微信公众号Video Coding