HEVC:碼率控制K0103提案學習(一)

本文轉載自http://blog.csdn.net/nonmarking/article/details/47357597?locationNum=11

下面簡單回顧一下H.264中的碼率控制算法,並說明爲什麼不能直接將之前的碼率控制算法用於HEVC,同時介紹一下一種很有意思的新的R-λ模型。

在H.264以及之前的碼率控制算法中,R-Q模型得到了廣泛的使用,這一模型認爲Q是決定碼率的主要因素。但研究發現,只有當所有除了Q以外其他的編碼參數均固定的情況下,這一假設纔是成立的。在實際應用中,如果其他的編碼參數並不是十分靈活,這一假設還是基本成立的。但隨着視頻編碼技術的發展,這一假設對於越來越靈活的編碼框架來說,並不成立。例如,HEVC通過CU的四叉樹分割和TU的四叉樹分割,比先前其他的視頻編碼標準支持更爲靈活的模式組合,此時再認爲Q是決定R的主要因素,並不十分恰當。

研究認爲利用R-Q模型進行碼率控制存在諸多問題。

(1)R是由編碼器通過選擇編碼參數組合決定的,編碼參數包括QP和許多其他如模式和運動信息等參數。事實上,在R和Q之間並不存在一一對應的關係。如下圖中的B和C都是最優點,並且兩個點使用了相同的QP,但是用了不同的編碼模式,這說明R和QP之間並沒有一一對應的關係。


(2)在R-Q模型中反覆出現的蛋雞悖論問題:爲了達到某一預定的碼率,必須要先獲得殘差信息纔可以決定合適的QP值。但是,殘差信息只有在模式選擇和運動估計等過程完成後才能夠確定,這樣在模式選擇過程中需要使用一個預先決定的QP值。而HEVC中有更多更靈活的模式,使得應用R-Q模型更加困難,應該研究另一種思路擺脫蛋雞悖論的問題。
(3)QP是應當由RDO過程進行優化的參數之一,並不應當在RDO過程之前由碼率控制算法決定。只有在包括QP的所有參數均由RDO過程進行選擇的情況下,纔可以達到最優的R-D性能。
(4)QP僅能選擇整數,並且對於H.264/MPEG-4 AVC和HEVC來說,QP每增加6時量化步長增加一倍。QP僅能選取一些離散值,這也制約了通過調整QP來達到目標碼率的精確度。

爲了得出R-λ模型,首先就R-D關係的指數模型


和雙曲模型



進行對比。對比實驗中使用僅使用一幅參考圖片IBBB編碼結構,並且所有的B幀都是用相同的QP值,然後對若干序列使用HM7(不打開碼率控制功能)進行測試,然後分別使用兩種模型擬合R-D(bpp-MSE)曲線,最後的結論是雙曲模型比指數模型可以更精確的刻畫HEVC的R-D模型。

接下來就以雙曲模型爲基礎進行推導,我們知道λ是R-D曲線的斜率,於是得到下式



可以再變換爲下式,可以看出R與λ有着密切的關係



α和β是和序列特性有關的參數。實驗也證明了該模型的準確性,於是後面的碼率控制框架都基於這個R-λ模型展開。


從幾何意義上來說,率失真優化問題就是在R-D曲線上選擇最優工作點,而λ即爲曲線切線的斜率,所以它纔是與最優工作點一一對應的值。此外,可以證明
(1) 決定λ的值和RDO過程並沒有任何相互依賴性,可以依據目標比特在RDO之前決定。
(2) λ值同樣會影響非殘差比特。當λ值較大時,編碼器傾向於選擇大粒度的模式(比如大的分塊方式),這樣,消耗在表示非殘差信息上的比特也會相對較少:反之,亦然。而QP值只會影響殘差信息的比特數。
(3) λ並不像QP值那樣,所以它的調整可以更精細

與之前的分析類似,在碼率控制的每一層我們有不同的關注點,但是在每一層都要關注前一單元與後面剩餘單元的率失真性能的依賴關係。


本文介紹了HEVC中全新的R-λ模型,下一篇文章將介紹基於這一模型的碼率控制算法,並對HM中對應的代碼進行分析。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章