基於深度學習的環路濾波技術

語言: CN / TW / HK

1. 什麼是深度學習

深度學習(Deep Learning)是機器學習的分支,是一種以人工神經網路為架構,對資料進行表徵學習的演算法 [1]。一般先學習簡單表徵(如影象邊緣),然後以簡單表徵為基礎進一步學習抽象層次更高的表徵(如影象角點,進而到物體的一部分),最終獲得適合於特定任務的高階表徵。由於學習的表徵層數一般較深,所以得名深度學習。

卷積神經網路(Convolutional Neural Network, CNN)是深度學習中常用的一種神經網路型別,因其獨特的架構非常適合於各種影象處理任務,因此CNN在影象分類、物體識別、超分辨等很多領域取得了巨大成功。

2. 什麼是環路濾波?

有損影象/視訊壓縮過程中引入了不可逆的量化操作,使得重建影象和原始影象之間存在失真。環路濾波技術通過對重建影象進行濾波,以減少失真,從而提升壓縮效率和重建質量。視訊編碼標準中常見的濾波器包括去塊效應濾波(Deblocking Filter, [2]),畫素自適應偏移(Sample Adaptive Offset, [3]),和自適應環路濾波(Adaptive Loop Filter, [4])。注意,由於失真後的影象對應的原圖可能有無窮多種,因此這裡的影象質量增強屬於病態問題,幾乎沒有任何濾波器可以完美恢復出原圖。

3. 為什麼深度學習可以做環路濾波?

解決病態問題最常見的方式是將對訊號的先驗知識轉化成正則化約束,從而縮小求解空間。卷積神經網路架構本身已經被證實可以很好地捕獲自然影象的先驗知識[5],用其對影象進行濾波相當於使用了隱式正則化。此外,CNN可以進一步從海量訓練資料中學習到對特定任務(如這裡的去壓縮失真)有用的先驗知識,建立起從失真影象到原圖的對映,從而完成影象質量增強。

4. 怎麼做?

文獻[6]是一項較早的嘗試,其用CNN取代HEVC (High Efficiency Video Coding)中的環路濾波器 (Deblocking和SAO), 對壓縮視訊進行質量增強並取得較好效果。

為了完成這個任務,首先需要準備訓練資料,即有失真圖和對應的原圖,這樣CNN可以在訓練過程中捕獲失真影象到原圖的對映。為此作者用HEVC對訓練集影象進行壓縮,以得到有失真的重建影象。將這些失真影象和對應原圖組合在一起,便可以獲得很多類似於{失真影象,原始影象}這樣的訓練樣本.

接下來需要確定網路結構,這裡CNN接受MxM大小的失真影象作為輸入,然後輸出MxM大小的濾波影象。因此,環路濾波任務屬於影象質量增強的範疇,可以參考去噪, 超分辨等底層計算機視覺任務使用的網路架構。在這篇論文中,作者設計瞭如圖1所示的4層CNN,其具體配置可見表1。由於此類任務輸入和輸出解析度一致,為了保持高精度空間位置資訊,網路結構中一般不包含下采樣操作(注意是一般,部分網路會採用下采樣操作增大空間感受野,同時通過增加捲積通道數,維持高精度重建)。該網路中間兩層均使用了兩種尺寸的卷積核、,以獲得多尺度特徵。此外,網路包含一個跳層連線,即將輸入影象和CNN最後一層的輸出相加。這樣一來,網路的實際輸出變成了重建影象和原始影象之間的差異影象,體現了殘差學習的思想[7]。殘差學習的好處是可以在加快收斂速度的同時,提升收斂後的效能。

圖1. 文獻[6]中的網路結構,一個4層的全卷積網路

表1. 文獻[6]中的網路配置

為了驅動CNN訓練,還需要損失函式,作者採用瞭如下式的MSE損失函式。這裡N是訓練樣本個數,X和Y分表表示失真影象和對應的原始影象,𝜃表示卷積網路的所有引數(權重以及偏置)。

到此,便可以通過隨機梯度下降法更新網路權重,這通常由深度學習框架(如PyTorch)自動完成,訓練結束以後獲得的引數是對於整個訓練集平均意義最好的引數。讀者可能會問: 得到的引數是相對訓練集最優,在未見過的資料集表現如何?通常我們假設:訓練集和測試集從相同分佈取樣而來,這保證了CNN在測試集有相似表現。為了提升泛化效能,通常要求訓練集包含足夠多的樣本,以反映資料的真實分佈,此外,還有一些其他方法來避免網路過擬合,如對CNN引數(即上式中的𝜃)施加1-範數或者2-範數的約束,這類方法統稱為正則化,是深度學習中很重要的一個研究領域。

作者為每個QP點,即QP{22,27,32,37},分別訓練了一個模型,然後將模型整合進參考軟體進行測試,最終效能見下表2。這裡對比的anchor是HM-16.0,配置為All-Intra。由於只是在All-Intra配置下進行了測試,所以也可以將CNN濾波當成後處理操作。如果濾波後的幀作為後續幀編碼時的參考,則成為環路濾波器。

表2. 文獻[6]中演算法相比於HEVC的BD-rate節省

5. JVET-U0068

接下來我們關注今年JVET一項提案中的環路濾波器設計[8],該演算法名為DAM(Deep-filters with Adaptive Model-selection),是針對最新一代視訊編碼標準的參考軟體VTM-9.0進行設計,幷包含了模式選擇等新特性。

圖2. (a) DAM使用的CNN架構,M表示特徵圖的數量,N代表特徵圖的空間解析度;(b) 殘差單元的結構。

網路架構: DAM濾波方法的主幹如上圖2所示,為了增加感受野,降低複雜度,此網路包含一個步幅為2的卷積層,該層將特徵圖的空間解析度在水平方向和垂直方向都降低到輸入大小的一半,這一層輸出的特徵圖會經過若干順序堆疊的殘差單元。最後一個卷積層以最後一個殘差單元的特徵圖作為輸入,輸出4個子特徵圖。最後,shuffle層會生成空間解析度與輸入相同的濾波影象。與此架構相關的其他細節如下:

  1. 對於所有卷積層,使用3x3的卷積核。對於內部卷積層,特徵圖數量設定為128。對於啟用函式,使用PReLU。

  2. 針對不同slice型別訓練不同的模型。

  3. 當為intra slice訓練卷積神經網路濾波器時,預測和分塊資訊也被饋入網路。

自適應模型選擇: 首先,每個slice或CTU單元可以決定是否使用基於卷積神經網路的濾波器; 其次,當某個slice或者CTU單元確定使用基於卷積神經網路的濾波器時,可以進一步確定使用三個候選模型中的哪個模型。為此目的,使用{17, 22, 27, 32, 37, 42}中的QP數值訓練不同模型。將編碼當前sequence的QP記作q,那麼候選模型由針對{q, q-5, q-10}訓練的三個模型構成。選擇過程基於率失真代價函式,然後將相關模式表徵資訊寫進碼流。

推斷: 使用PyTorch在VTM中執行CNN線上推斷,下表3給出了推斷階段的相關網路資訊。

無法複製載入中的內容

表3. 推斷時的網路資訊

訓練:以PyTorch為訓練平臺,分別訓練針對intra slice和inter slice的卷積神經網路濾波器,並且訓練不同的模型以適應不同QP點,訓練階段的網路資訊列於表4中。

無法複製載入中的內容

表4. 訓練時的網路資訊

實驗結果: 作者將DAM在VTM-9.0上進行了整合測試,現有濾波器中的去塊濾波和SAO被關掉,而ALF(和CCALF)則被置於基於卷積神經網路濾波器的後面。測試結果如表5~表7所示,在AI,RA,和LDB配置下, Y、Cb、和Cr三個通道的BD-rate節省分別為:{8.33%, 23.11%, 23.55%}, {10.28%, 28.22%, 27.97%}, 和{9.46%, 23.74%, 23.09%}。此外,圖3給出了使用DAM演算法前後的主觀對比。

| | RA | | | | | | ----------- | -------- | -------- | -------- | ---- | ------ | | | Y | U | V | EncT | DecT | | Class A1 | -9.25% | -22.08% | -22.88% | 248% | 21338% | | Class A2 | -11.20% | -29.17% | -28.76% | 238% | 19116% | | Class B | -9.79% | -31.05% | -29.57% | 248% | 23968% | | Class C | -10.97% | -28.59% | -29.18% | 196% | 21502% | | Class E | | | | | | | Overall | -10.28% | -28.22% | -27.97% | 231% | 21743% | | Class D | -12.17% | -28.99% | -30.27% | 187% | 20512% | | Class F | -5.27% | -16.93% | -16.58% | 337% | 9883% |

表5. DAM在VTM9.0(RA)上的效能表現

| | LDB | | | | | | ----------- | -------- | -------- | -------- | ------- | ------ | | | Y | U | V | EncT | DecT | | Class A1 | | | | | | | Class A2 | | | | | | | Class B | -8.69% | -24.51% | -25.26% | 235% | 10572% | | Class C | -10.21% | -24.50% | -24.60% | 189% | 11145% | | Class E | -9.75% | -21.46% | -17.47% | 455% | 8730% | | Overall | -9.46% | -23.74% | -23.09% | 258% | 10257% | | Class D | -11.56% | -26.59% | -27.98% | 182% | 12071% | | Class F | -5.05% | -15.83% | -15.41% | 331.70% | 5723% |

表6:DAM在VTM9.0(LDB)上的效能表現

| | AI | | | | | | ----------- | -------- | -------- | -------- | ---- | ------ | | | Y | U | V | EncT | DecT | | Class A1 | -7.04% | -19.72% | -20.94% | 423% | 14896% | | Class A2 | -7.32% | -24.01% | -22.73% | 268% | 13380% | | Class B | -7.48% | -24.24% | -24.06% | 240% | 13606% | | Class C | -8.90% | -22.61% | -25.08% | 176% | 10061% | | Class E | -11.30% | -24.37% | -24.11% | 274% | 14814% | | Overall | -8.33% | -23.11% | -23.55% | 257% | 13065% | | Class D | -8.75% | -22.68% | -24.96% | 158% | 10571% | | Class F | -5.03% | -15.94% | -15.38% | 170% | 9364% |

表7:AVG提案在VTM9.0(AI)上的效能表現

圖3. 左:原圖 (來自JVET通測序列BlowingBubbles);中:VTM-11.0壓縮,QP42,重建質量27.78dB;右:VTM-11.0+DAM,QP42, 重建質量28.02dB.

6. 總結和展望

近年,環路濾波(包括後處理)的研究工作主要分佈在以下若干方面(但不限於):

  1. 使用更多輸入資訊,如除了重建幀還可以將預測和劃分等資訊作為CNN的輸入[9];
  2. 使用更為複雜的網路結構[9, 10, 11];
  3. 如何利用視訊影象幀之間的相關性提升效能[12, 13];
  4. 如何為不同的質量等級設計統一的模型[14]。

總體來說,基於深度學習的編碼工具方興未艾,其展現誘人效能的同時,亦引起較高的複雜度,未來為了將這些深度編碼工具落地,複雜度-效能折衷優化將是一個很重要的研究方向。

7. 參考文獻

[1] Wikipedia contributors. "深度學習." 維基百科, 自由的百科全書. 維基百科, 自由的百科全書, 10 Mar. 2021. Web. 10 Mar. 2021.‹https://zh.wikipedia.org/w/index.php?title=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0&oldid=64709501›.

[2] Norkin, Andrey, et al. "HEVC deblocking filter," IEEE Transactions on Circuits and Systems for Video Technology 22.12 (2012): 1746-1754.

[3] Fu, Chih-Ming, et al. "Sample adaptive offset in the HEVC standard," IEEE Transactions on Circuits and Systems for Video technology 22.12 (2012): 1755-1764.

[4] Tsai, Chia-Yang, et al. "Adaptive loop filtering for video coding," IEEE Journal of Selected Topics in Signal Processing 7.6 (2013): 934-945.

[5] Ulyanov, Dmitry, et al. "Deep image prior," Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

[6] Dai, Yuanying, et al. "A convolutional neural network approach for post-processing in HEVC intra coding," International Conference on Multimedia Modeling. Springer, Cham, 2017.

[7] He, Kaiming, et al. "Deep residual learning for image recognition," Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[8] Li, Yue, et al. “Convolutional neural network-based in-loop filter with adaptive model selection,” JVET-U0068. Teleconference, 2021.

[9] Lin, Weiyao, et al. "Partition-aware adaptive switching neural networks for post-processing in HEVC," IEEE Transactions on Multimedia 22.11 (2019): 2749-2763.

[10] Ma, Di, et al. "MFRNet: a new CNN architecture for post-processing and in-loop filtering," IEEE Journal of Selected Topics in Signal Processing (2020).

[11] Zhang, Yongbing, et al. "Residual highway convolutional neural networks for in-loop filtering in HEVC," IEEE Transactions on image processing 27.8 (2018): 3827-3841.

[12] Yang, Ren, et al. "Multi-frame quality enhancement for compressed video," Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.

[13] Li, Tianyi, et al. "A deep learning approach for multi-frame in-loop filter of HEVC," IEEE Transactions on Image Processing 28.11 (2019): 5663-5678.

[14] Zhou, Lulu, et al. “Convolutional neural network filter (CNNF) for intra frame,” JVET-I0022. Gwangju, 2018.