天天看點

基于神經網絡的運動補償增強

本文來自阿裡巴巴在JVET Z次會議上的提案JVET-Z0074《NeuralNetwork Based Motion Compensation Enhancement for Video Coding》

該提案提出使用神經網絡在CU級對運動補償塊進行增強進而提高編碼效率。具體來說,當CU完成運動補償過程後使用神經網絡對預測塊進行處理。

簡介

基于神經網絡的運動補償增強作用于inter塊,該塊既可以正方形的也可以是矩形的。當對矩形塊使用神經網絡時,wxh的塊和hxw塊使用相同的網絡模型。

可以通過CU級flag辨別目前塊是否使用神經網絡處理。在熵編碼中将flag寫入碼流時共提供了6個上下文,其中3個是AMVP的另外3個是merge的,對于AMVP和merge各自的3個上下文,1個是當上方和左側相鄰塊flag都為false時啟用,1個是當上方和左側相鄰塊flag有一個為true時啟用,1個是當上方和左側相鄰塊flag都為true時啟用。

考慮到塊劃分的越細消耗的碼率越高,是以該方法根據分辨率僅支援對部分尺寸的CU使用,對于Class A1、A2僅當CU的寬和高都超過16時才開啟,對于Class B、C僅當CU的寬和高都超過8時才開啟,對于Class D當CU的寬和高都超過4時才開啟。

當将該方法內建到VTM-11.0-nnvc-1.0時,為了減少編碼複雜度,隻對AMVP和merge經過RDO選擇的最終候選CU上使用神經網絡增強預測資訊。

該方法既對亮度進行處理也對色度進行處理,但是亮度和色度使用不同的模型。處理亮度時模型輸入為亮度預測塊,處理色度時模型輸入包括亮度和色度預測塊。

網絡結構

基于神經網絡的運動補償增強

(a)

基于神經網絡的運動補償增強

(b)

基于神經網絡的運動補償增強

(c)

圖1 網絡結構

圖1是網絡結構,(a)是亮度分量的網絡結構,(b)是色度分量的網絡結構,(c)是殘差單元的結構。其中色度模型的輸入既包括色度預測資訊還包括亮度預測資訊,對于4:2:0格式亮度下采樣為4個和色度同樣尺寸的塊。

模型輸入首先進入1個卷積層提取特征,然後再經過10個卷積單元和1個卷積層,最後學習到的殘差資訊和網絡輸入的預測資訊疊加起來作為網絡輸出。

網絡中卷積層的kernel size都是3x3,激活函數是ReLU,第一個卷積層有64個通道,亮度模型最後一個卷積層有1個通道,色度模型最後一個卷積層有2個通道。

網絡推導

基于神經網絡的運動補償增強

網絡參數如上表所示,使用的架構是PyTorch 1.7.1。

網絡訓練

對不同尺寸的塊(128x128, 64x64, 32x32, 16x16, 8x8, 64x128/128x64, 32x64/64x32,16x64/64x16, 16x32/32x16, 8x64/64x8, 8x32/32x8, 8x16/16x8),不同的QPs (QP22, QP27, QP32,QP37, QP42) 和不同分量 (Y, UV)分别訓練不同模型。訓練集使用BVI-DVC,編碼配置為RA。具體訓練資訊如下,

基于神經網絡的運動補償增強

實驗結果

YUV的BD-Rate分别為-1.31%,-6.96%,-6.39%。

基于神經網絡的運動補償增強

繼續閱讀