PCS2021:VVC基于神经网络改进SAO
本文來自PCS2021論文《Revisiting the Sample Adaptive Offset post-filter of VVC with Neural-Networks》
在HEVC中就已經(jīng)引入SAO來解決振鈴效應(yīng),VVC中的SAO和HEVC中的基本相同。論文通過神經(jīng)網(wǎng)絡(luò)(NN)來改進SAO的性能,其中SAO的基本原理保持不變,但是原先SAO對重建像素的分類方法被替換為NN。通過NN的改進VVC上SAO在RA配置下BD-Rate增益為2.3%,并且和其他基于NN的方法相比復(fù)雜度很低。
SAO
SAO的基本思想是將CTU內(nèi)的像素劃分為不同類別,然后對每個類別內(nèi)的像素加一個補償值。根據(jù)類別劃分方式的不同有兩種補償方式:邊界補償(EO)和邊帶補償(BO)。
EO是依據(jù)和旁邊兩個像素的關(guān)系將重建像素分為NC=5類,共有4個補償值(類別0補償值為0),如Fig.1所示。碼流中需要傳輸這4個補償值。
BO是將像素按照取值范圍(8bit為0...255)分為32個條帶。然后選擇連續(xù)的(NC-1)=4個條帶給予補償值off(n),如Fig.2所示。碼流中需要傳輸這4個補償值,和選擇的第一條邊帶的位置。
論文方法
算法框架
論文的整體框架SAO-CNN如Fig.3所示。它保留了SAO的主要原理,但是對于像素的分類選擇使用K個CNN。分類器將重建像素分為NC個類別,其中每個CNN為每個像素s輸出權(quán)重w(s)。這將產(chǎn)生比SAO更多的類別,因為CNN的不同輸出可能會被認為是不同類別。
和SAO類似,有一個補償值off_i和當前CTU使用的CNN(i)相關(guān),
由于CNN的輸出包含隱式的分類結(jié)果,所以不同的corr數(shù)量可能會遠多于SAO的4個補償值。需要將CNN的M個輸出聚合,
語法元素
typeIdx用于編碼CNN的索引。absOff和signOff用于編碼補償值off。由于低碼率時corr的數(shù)量會增加且和區(qū)域的相關(guān)性有關(guān),off_i的值可以從相鄰CTU預(yù)測。
網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)結(jié)構(gòu)通過最小化每個像素的操作數(shù)(MAC)和參數(shù)數(shù)量來降低整體復(fù)雜度。CNN只包含6層,每層通道數(shù)16到32或64。有兩個版本,其中v2比v1計算復(fù)雜度稍低,如表2。
網(wǎng)絡(luò)架構(gòu)如Fig.4,
假設(shè)CTU尺寸為SxS,對于尺寸為cxc的卷積核,每個像素的MAC為,
實驗結(jié)果
訓練
實驗使用BVI-DVC數(shù)據(jù)集中的800個序列構(gòu)建訓練集,每個序列包含64幀,10bit,YCbCr420格式,從270p到2160p四種分辨率。這些序列使用VTM編碼,使用RA和AI配置,QP={22,27,32,37}。在編碼和解碼過程中,啟動傳統(tǒng)的環(huán)路濾波。對每個QP,隨機選擇在SAO處理前的壓縮視頻幀和對應(yīng)的原始視頻幀,分成128x128的塊并轉(zhuǎn)換成YCbCr444格式。
CNN的訓練使用Tensorflow框架,訓練參數(shù)為:l2損失函數(shù),Adam優(yōu)化器,batch size=20,訓練130輪。共訓練了16個模型,如表3。
VTM中實現(xiàn)
本文使用SAO-CNN框架替換VTM10.0中的SAO。CNN推理模型使用C++實現(xiàn),使用32位浮點或16位量化權(quán)重。對于后者,會將32位的NN的權(quán)重量化為16位以使所有計算都可以使用整數(shù)完成。還可以使用SIMD加速,編碼器和解碼器相比32位浮點模型的加速比分別為1.4和2.1,而BD-Rate幾乎不變,如表4。除了加速,整數(shù)計算還可以保證編碼器和解碼器的計算精度相同,不會在重建幀中出現(xiàn)漂移誤差。
結(jié)果
表5和表6是實驗結(jié)果,對應(yīng)v1模型在亮度分量上RA和AI配置的BD-Rate分別為-2.86%和-2.42%,色度分別為-7%和-5%。
編碼和解碼時間比是在沒有GPU的單核處理器上測的,相比于VTM10,對于v2模型編碼器復(fù)雜度低于1.3x,解碼時間在6x到32x間。
感興趣的請關(guān)注微信公眾號Video Coding
?
總結(jié)
以上是生活随笔為你收集整理的PCS2021:VVC基于神经网络改进SAO的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JBOSS的下载安装、环境变量配置以及部
- 下一篇: lenovo微型计算机如何拆t410,联