天天看點

VVC碼率控制改進

  本文來自提案JVET-Y0105 《An improved VVC rate control scheme》,提案對VVC的碼率控制做了一些改進,主要包括三部分,第一,CTU級的skip和非skip塊碼率配置設定。第二,基于GOP size和IntraPeriod設定滑動視窗。第三,将​​QDF​​擴充到低幀率情況。

簡介

CTU級碼率配置設定

目前的CTU級碼率配置設定方式中,每個CTU的初始權重由幀級lambda和内容相關的因子alpha和beta決定,

VVC碼率控制改進
VVC碼率控制改進

預設的RD模型無法精準描述skip塊的特征,是以提案對skip和非skip塊單獨處理,首先,skip CTU的碼率計算如下,

VVC碼率控制改進

其中scale是經驗因子,設為0.4,P_skip是skip CTU的像素數量。則非skip CTU的碼率配置設定問題就變為以下限制優化問題,

VVC碼率控制改進

轉換為非限制優化問題,

VVC碼率控制改進

 其中

VVC碼率控制改進

可以使用牛頓法求  參數以使non-skip CTU配置設定的碼率最優,  

VVC碼率控制改進
VVC碼率控制改進

牛頓法最大疊代次數設為20,可以根據下面條件提前終止,

VVC碼率控制改進

滑動視窗設定 

在GOP級碼率配置設定中,滑動視窗SW用于使碼率變化更平滑。SW會影響GOP級和幀級碼率,

VVC碼率控制改進
VVC碼率控制改進

由于intra幀的影響, 

VVC碼率控制改進

 經常會算出負數導緻GOP級碼率被截斷為200比特。在HM中當SW設為40時,LD和RA配置的GOP size分别為4和8。在VTM中,LD和RA配置的GOP size分别為32和8,固定SW不适合目前配置和将來擴充,因為提案根據GOP size和IntraPeriod(IP)計算SW,  

VVC碼率控制改進

alpha和beta分别設為20和60。

QDF擴充到低幀率配置

在VTM中根據下列條件判斷是否使用基于QDF的碼控,

if (encRCSeq->getAdaptiveBits() > 0 && encRCSeq->getLastLambda() > 0.1)m_lastLambda = encRCSeq->getLastLambda()      

m_lastLambda在GOP Size=IntraPeriod配置(低幀率)下不會更新。

為了将QDF擴充到低幀率,上述條件修改為,

m_encRCSeq->getAdaptiveBits() > 0 && m_listRCPictures.size() >= m_encRCSeq->getGOPSize()      

實驗結果

實驗平台為VTM14.0,提案方法在LDB和RA配置下YUV的BD-Rate分别為-0.65%/-0.65%/-0.51%和 -1.38%/-1.59%/-1.63%,如表1,

VVC碼率控制改進

提案的CTU級碼率配置設定方法的結果如表2,

VVC碼率控制改進

提案的SW設定方法結果如表3,

VVC碼率控制改進

提案的CTU級碼率配置設定方法和SW設定同時開啟的結果如表4,

VVC碼率控制改進

表5是将QDF擴充到低幀率的結果,

VVC碼率控制改進