本文來自提案JVET-Y0105 《An improved VVC rate control scheme》,提案對VVC的碼率控制做了一些改進,主要包括三部分,第一,CTU級的skip和非skip塊碼率配置設定。第二,基于GOP size和IntraPeriod設定滑動視窗。第三,将QDF擴充到低幀率情況。
簡介
CTU級碼率配置設定
目前的CTU級碼率配置設定方式中,每個CTU的初始權重由幀級lambda和内容相關的因子alpha和beta決定,
預設的RD模型無法精準描述skip塊的特征,是以提案對skip和非skip塊單獨處理,首先,skip CTU的碼率計算如下,
其中scale是經驗因子,設為0.4,P_skip是skip CTU的像素數量。則非skip CTU的碼率配置設定問題就變為以下限制優化問題,
轉換為非限制優化問題,
其中
可以使用牛頓法求 參數以使non-skip CTU配置設定的碼率最優,
牛頓法最大疊代次數設為20,可以根據下面條件提前終止,
滑動視窗設定
在GOP級碼率配置設定中,滑動視窗SW用于使碼率變化更平滑。SW會影響GOP級和幀級碼率,
由于intra幀的影響,
經常會算出負數導緻GOP級碼率被截斷為200比特。在HM中當SW設為40時,LD和RA配置的GOP size分别為4和8。在VTM中,LD和RA配置的GOP size分别為32和8,固定SW不适合目前配置和将來擴充,因為提案根據GOP size和IntraPeriod(IP)計算SW,
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,
提案的CTU級碼率配置設定方法的結果如表2,
提案的SW設定方法結果如表3,
提案的CTU級碼率配置設定方法和SW設定同時開啟的結果如表4,
表5是将QDF擴充到低幀率的結果,