本文來自ICASSP2020論文《INTRA FRAME RATE CONTROL FOR VERSATILE VIDEO CODING WITH QUADRATIC RATE-DISTORTION MODELLING》
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yNiVWYlN2N5UmZ0gjY4Y2N1gTY1QDMlFTZzMGZmF2N28CX3AzLcdDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
本文在VVC中提出了新的二次R-D模型,在VTM2.0平台幀内編碼模式下相對于預設碼率控制算法在相似控制精度下可達到0.77% BD-BR。
R-D模型
VVC中傳統的RD模型
VVC中RD模型是雙曲線模型,
其中失真D用MSE度量,碼率R用bpp(bit per pixel)度量。C和K是模型參數,與視訊内容有關。
根據拉格朗日優化求導後可得到lambda。
本文RD模型
由于VVC添加了很多新的編碼工具,原來的RD關系已經不能适用了,本文提出了新的RD模型:
這是關于lnR的二次模型,a,b,c是模型參數,與視訊内容有關。
為了驗證模型的準确性,文中在All intra配置下編碼了11個序列,使用4個QP(22,27,32,37),并設定TemporalSubsampling=1。對每個序列取前20幀的亮度失真和碼率。每條序列可以擷取到80個資料點用最小二乘法拟合原始雙曲線模型和文中提出的二次模型的參數,拟合結果如Fig.1,
使用相關系數R方來衡量哪個模型更能反映真正的RD關系。R方越接近1表示相關性越強。結果如表1所示,
BasketballPass序列運動目标很多内容變化快,BlowingBubbles序列紋理複雜,在整兩條序列上文中算法都優于原始算法。
對于二次函數,當a>0時,對稱軸-b/2a左邊單調遞減,對稱軸右邊單調遞增。為了避免随着碼率R增加,失真D也單調遞增的情況,需要滿足下面的條件,
此外,碼率和失真都是正值,是以最小的失真也要大于0,
最終提出的RD模型為,
二次RD模型在VVC幀内編碼中的應用
新的拉格朗日因子可由下式求得,
由公式(4)可推出lambda大于0。
幀級幀内編碼的碼率控制
下面所有SATD的計算都隻考慮Y分量。
1、初始化lambda
C_satd是将幀中所有8x8塊的SATD相加除以像素數得到,反映了幀的複雜度。p參數用于補償幀複雜度C_satd。
2、GOP級碼率配置設定
SW是滑動視窗,設為40。GOP_size是GOP中的幀數,設為16。R_unused是編碼目前GOP前未使用的比特數。R_total是整個序列的目标比特數。N_total是整個序列的幀數。N_left是待編碼的幀數。
3、幀級碼率配置設定
t表示第t個GOP,i表示GOP中的第i幀。對于序列的第一個GOP,均勻為每幀配置設定比特。
4、幀級lambda計算
根據公式(7)和(10)可以計算lambda,N_pixel是幀中像素數。
5、QP計算
6、使用上面計算的QP編碼目前幀
7、更新幀級模型參數
8、對目前GOP的所有幀重複步驟3到7
9、對目前序列的所有GOP重複步驟2到8
參數更新
1、計算目前模型的對稱軸k
2、更新參數a
R_comp是配置設定的碼率,R_real是實際使用的碼率。
3、更新對稱軸
4、更新參數b
實驗結果
實驗在VTM2.0上進行,碼率控制準确率BRE按下式計算,
實驗結果如表2所示,