基於學習的編碼(二):使用CNN對intra frame進行環路濾波

基於學習的編碼(二):使用CNN對intra frame進行環路濾波

本文算法來自JVET-O0157

介紹

爲了取代VVC環路濾波中的去方塊濾波(DBF)提出來一種下采樣的CNN濾波器。該CNN濾波器在降低神經網絡複雜度的同時能保持編碼效率。它是一個輕量級CNN網絡,能夠高效的控制CNN濾波強度以應對不同量化參數。只用於intra frame

濾波過程

下圖展示了針對intra frame加入CNN後的環路濾波過程,DBF被CNN替換了。對於inter frame環路濾波和VTM中一樣。

 

網絡結構

下圖展示了該CNN的網絡結構。其中N表示下采樣步長,M表示卷積核通道數。核心思想是通過下采樣減少計算量,通過控制強度使單個網絡可以用於不同QP。

 

 

CNN過程:

  1. (N,N,M)卷積層(N倍下采樣)用於提取特徵。

  2. 將特徵傳給多個residual block來加強濾波。

  3. (3,3,NxN)卷積層輸出NxN的特徵圖,DepthToSpace 函數將特徵圖映射爲和輸入圖像尺寸一致。

濾波強度

網絡中除以和乘以Qstep 的目的是控制濾波強度。

 

對不同Qstep 進行round操作會造成不同水平的失真。所以重建圖像在傳給CNN之前除以正則化的Qstep 來控制失真水平,CNN處理後乘以正則化的Qstep

正則化的Qstep求解過程如下:

 

訓練

使用DIV2K數據集(含800幅圖像)生成訓練數據。首先將每幅圖像由RGB轉爲YUV。然後禁用VTM5.0的環路濾波在All Intra(AI)配置下生成重建圖像。然後在Y分量隨機裁剪800000塊,UV分量隨機裁剪800000塊,訓練兩組參數。

 

實驗結果

下面是N=4,M=32下的測試結果:

 

下面是一個主觀比較,可以看到脖子處的塊效應被消除了。

 

該方法在VTM5.0中用預訓練的CNN模型取代DBF,在AI配置下Y、U、V的BD-Rate分別-1.44%,-2.51%,-3.39%。解碼時間爲1040%。

感興趣的請關注微信公衆號Video Coding

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章