基於學習的編碼(六):DRNLF
本文算法來自JVET-L0242,dense residual convolutional network based in-loop filter (DRNLF)用於VTM的環路濾波中,用在DBF之後,SAO和ALF之前,如下圖所示。
由RDO決定是否使用DRNLF。
網絡結構
DRNLF的結構如下圖:
N代表DRU(dense residual unit)數量,M代表卷積核數量。
本文算法是JVET-K0391的改進,K0391中DRU的結構如下圖所示:
主要有5個方面改進:
-
刪除了外部(global identity skip connection)3x3卷積層,加快了訓練。
-
歸一化的QP map和重建圖像一起輸入DRN,僅用一個模型就可以適應不同QP情況。
-
在YUV空間訓練。
-
爲了減少計算複雜度,DRU數量從8減少到4,卷積核從64減爲32。
-
3x3的卷積層替換爲3x3的DSC(depth-wise separable convolutional)層。
以上5個改進使模型參數由810k減少爲22k。
訓練
使用DIV2K生成訓練集和驗證集,訓練集包含800幅圖像,驗證集包含100幅。網絡在YUV空間訓練,所以需要將DIV2K的圖像由RGB空間轉換到YUV空間。使用VTM2.0.1在AI(All Intra)配置下使用不同QP壓縮圖像。壓縮後的圖像和對應的QP作爲網絡輸入。壓縮前的圖像作爲ground truth。假設壓縮圖像集爲{X},對應的ground truth集爲{Y},則損失函數如下:
實驗
在VTM2.0.1內,AI配置,QP取{22,27,32,37},僅使用CPU環境的實驗結果如下:
感興趣的請關注微信公衆號Video Coding