RDO率失真優化

原帖地址:http://blog.sina.com.cn/s/blog_4de7908201000aqf.html

          http://blog.csdn.net/smells2/article/details/7699987

          http://blog.sina.com.cn/s/blog_4de5e1e201000arb.html

Rate Distortion Optimation (率失真優化)

       在H.264編碼過程中有許多的模式可以選擇,有些模式的圖像失真較小,但是碼率卻很大;有些模式的圖像失真較大,但是碼率卻很小。人們就想了,有沒有一種方法使得在不超過某最大碼率的情況下,失真達到最小。即 min{D} s.t. R<=Rmax ,s.t.表示“在以下條件”。

實現過程可以描述爲:

1.以特定的編碼參數將視頻編碼,計算編碼後的碼率和失真。得到一個碼率R和失真D組成的R-D點

2.重複上述第一步,得到其他R-D點

從圖像上可以看出,對於給定的特定的Rmax,D最小的點出現在曲線上。

現在的目標是找到一個編碼參數,使得在這樣的情況下R-D點能夠儘可能的逼近這條曲線。

J是一個包含D和R的函數,lamda是Lagrange係數,對應到R-D圖上那麼lamda就是斜率

對於每個可能的係數lamda,上述式子應該有對應的解。這個解就是凸曲線的切線。

我們找到最小的J就是對應一定的碼率情況下失真最小的模式,一次模式編碼會達到我們一開始所要設想的結果。

缺點是:模式如果過多的話這個過程的計算式相當的耗時的,所以在H.264研究中在改善算法效率和提出一些替代方法就成了非常可行的方案。

/*****************************************************************************************/

//Lambda 確定

lambda_mode=0.85 *2^((qp-12)/3.00)   幀內模式預測

lambda_motion=lambda_mode^0.5          幀間運動估計

/*****************************************************************************************/


/*****************************************************************************************/

//幾種描述失真的函數和使用場合

SAD(Sum of Absolute Difference)=SAE(Sum of Absolute Error)即絕對誤差和
SATD(Sum of Absolute Transformed Difference)即hadamard變換後再絕對值求和
SSD(Sum of Squared Difference)=SSE(Sum of Squared Error)即差值的平方和
MAD(Mean Absolute Difference)=MAE(Mean Absolute Error)即平均絕對差值
MSD(Mean Squared Difference)=MSE(Mean Squared Error)即平均平方誤差

SAD    在整數像素ME的時候使用
SATD   在1/2和1/4像素ME的時候使用
SSD    在幀內模式選擇的時候使用

/*****************************************************************************************/

Rate-Distortion Optimization 是視頻編碼中最優選擇mode的一種方法。比如h.264裏好多mode 8x8 16x16 I4x4 I16 在給定的條件下,哪個是最好的?Distortion 是指選用candidate mode產生的失真,rate是用這個mode需要的rate.他們換算成RDCost = Distortion + lamda * rate.    兩個mode誰的rdcost 低就選誰其中的數學原理是條件極值轉非條件極值。

JM 裏用的RDO是比較經典的方法。最早是Gary J.Sullivan做的 參見 IEEE Signal Processing Magazine 1998 Nov.  "Rate-Distortion Optimization for video compression" rdo的經典。 h264裏的rdo還可參考CSVT H.264 special issue

/*****************************************************************************************/

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