碼率控制(四):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