公開課總結:深度學習之視頻圖像壓縮

公開課總結:深度學習之視頻圖像壓縮

來自專欄論智19 人贊了文章

2018年6月14日,圖鴨與論智聯合舉辦了一場線上公開課深度學習之視頻圖像壓縮。講師為周雷博士,圖鴨科技深度學習演算法研究員。以下為論智整理的聽課筆記。因水平有限,難免有錯漏不當之處,僅供參考。

傳統圖像與視頻壓縮技術

首先,我們簡單回顧下傳統圖像與視頻壓縮技術。

JPEG

以下為JPEG編解碼流程示意圖。

從上圖我們可以看到,圖像數據編碼過程如下:

  1. 離散餘弦變換。簡單來說,離散餘弦變換是一種矩陣運算。
  2. 經過離散餘弦變換後,高頻數據和低頻數據分流了,矩陣左上方是高頻數據(較大的數值),右下方是低頻數據(較小的數值)。這樣我們就可以對其進行量化了,在JPEG中是除以量化步長再取整。
  3. 量化之後對其進行熵編碼,得到壓縮表示。

解碼的過程與編碼過程相逆,經過反熵編碼、反量化、反離散餘弦變換重建圖像。

JPEG2000

JPEG2000和JPEG的最大差別是使用了離散小波變換。此外還加上了一些預處理步驟。

JPEG2000編碼流程示意圖

WebP

WebP是來源於VP8的圖片壓縮格式。主要特色是基於塊預測。

BPG

和WebP類似,BPG同樣源於視頻編碼技術(HEVC)。BGP的主要特點如下:

HEVC

HEVC的編碼示意圖如下:

上圖中,Ref.表示參考樣本。T & Q表示轉換、量化過程,Q-1 & T-1為其逆過程。Deblk.Deblocking(去區塊)的縮寫。HEVC會將影像分為區塊再進行編碼,因此重建時會在區塊邊緣出現不連續的現象,稱為區塊效應。去區塊過程可以減輕區塊效應。SAOSample Adaptive Offset(樣本自適應偏移量)的縮寫,通過分析去區塊後的數據與原始數據的差異,補償量化過程造成的損失,使其儘可能接近原始數據。

CABAC為自適應二進位算術編碼。算術編碼利用符號出現的概率將符號序列編碼為一個數字。

相應的解碼過程:

從以上的編解碼過程中,我們可以看到,先驗概率估計的精確程度對編碼的效率影響很大。HEVC使用動態更新的概率模型實現自適應二進位算術編碼。

除了幀內估計、預測(參見前面提到的BPG)之外,HEVC視頻編碼還需考慮運動估計等幀間的關係。

深度學習圖像視頻壓縮框架

深度學習圖像壓縮框架

下為深度學習圖片壓縮的典型框架示意圖:

上圖中每個模塊的具體作用,可以參考如何設計基於深度學習的圖像壓縮演算法中的解釋。

圖像壓縮數據集

設計好網路模型後,需要使用圖像進行訓練。由於圖像壓縮屬於無監督學習,無需人工標註,因此數據集是比較容易搜集的。無論是從網上爬取,還是自行使用相機拍攝,都不難得到大量高清圖片。

常用的測試集有:

  • Kodak PhotoCD數據集,圖像解析度768x512,約40萬像素;
  • Tecnick數據集,約一百四十萬像素。
  • CVPR 2818 CLIC數據集,圖像類別廣泛,解析度不等(512至2048),文件尺寸不等(幾百K到幾M)。

深度學習視頻壓縮框架

深度學習視頻壓縮與圖像壓縮的主要差別在於增加了幀間預測/差值。

基於卷積網路進行幀間預測

幀間預測能極大得減少幀間冗餘。以1個參考幀,預測N-1幀為例,幀間預測的約束為參考幀和預測碼字遠小於每幀單獨壓縮的碼字:

深度學習圖像視頻壓縮進展介紹

深度學習圖像壓縮的主要發展方向:

  1. RNN
  2. CNN
  3. GAN

這部分內容可以參考公開課ppt以及概覽CVPR 2018神經網路圖像壓縮領域進展一文。

視頻壓縮方面,近年來的研究熱點是將CNN與現有的視頻編碼器相結合。

編碼單元選擇

Liu Z、Yu X、Chen S等在2016年發表了CNN oriented fast HEVC intra CU mode decision,使用CNN學習預測編碼單元模式的分類(2N x 2N或N x N)。

O2N、ON輸出為碼率失真代價

下採樣編碼

Jiahao Li等在2018年發表的Fully Connected Network-Based Intra Prediction for Image Coding對視頻幀進行了分塊處理,對適合進行下採樣的塊執行下採樣操作,而對不適合進行下採樣的塊不執行下採樣操作。之後,對下採樣的塊根據情況分別使用CNN或DCTIF進行上採樣,以重建圖像。為了達到更好的效果,亮度通道和色度通道使用了不同的網路架構。

視頻幀環路濾波和後處理

Park W S和Kim M在2016年發表的CNN-based in-loop filtering for coding efficiency improvement中,使用CNN提升了HEVC的環路濾波(包括去區塊濾波和SAO濾波)的效果。

類似地,Yuanying Dai等在2016年發表的A Convolutional Neural Network Approach for Post-Processing in HEVC Intra Coding,使用CNN網路改進了HEVC的後處理過程。

深度學習視頻壓縮的優勢和劣勢

使用深度學習進行單純的圖像壓縮,應用場景有一定局限性。深度學習在視頻壓縮領域潛力更大。深度學習在視頻壓縮領域的主要優勢在於:

  1. 能夠實現更好的變換學習,從而取得更好的效果。
  2. 端到端的深度學習模型能夠自行學習,而傳統的視頻壓縮工作需要手工設計很多東西。
  3. 傳統的視頻壓縮方法通常通過一些啟發式的方法進行幀間預測,從而減少幀間冗餘。而深度學習能夠基於光流等進行預測。

另一方面,基於深度學習進行視頻壓縮也會遇到很多挑戰。比如控制實現幀間預測佔用的比特。

圖鴨科技技術介紹

CVPR 2018 CLIC

在CVPR 2018學習圖像壓縮挑戰上,圖鴨團隊為三個贏家之一,MOS、MS-SSIM兩項指標均為第一。

TucodecTNGcnn4p基於端到端的深度學習演算法,其中使用了層次特徵融合的網路結構,以及新的量化方式、碼字估計技術。網路使用了卷積模塊和殘差模塊,損失函數納入了MS-SSIM。

基於深度學習超解析度重建圖像

在這一領域,圖鴨科技重點關注低碼率下的超解析度重建。因為低碼率下圖像難免有比較多的失真,應用超解析度重建技術能緩解這些圖像上的瑕疵,取得更好的顯示效果。而高碼率圖像保留了原圖更多的細節,相對而言不是非常適合應用超解析度技術。

基於深度學習的視頻壓縮

如前所述,圖鴨科技認為相對圖像壓縮,深度學習在視頻壓縮領域潛力更大。目前圖鴨科技在基於深度學習的視頻壓縮方面,已經能夠取得與x265媲美的效果。

基於深度學習的結構化存儲

相比傳統方法,深度學習編碼圖像的算力負擔較重。然而,另一方面,圖像的壓縮特徵不僅可以用於重建圖像,還可以為語義分割、圖像分類提供幫助。

問答環節

基於GAN進行圖像壓縮

GAN主要用於圖像生成領域。但在進行圖像壓縮時,GAN會遇到一個問題,就是它會改變一些細節(生成一些新的細節)。因此,GAN這一的技術方向的選擇常常取決於項目需求。例如,對於人臉圖像來說,如果感興趣區域是人臉,那麼對感興趣區域以外的區域可以使用非常低的碼率壓縮,重建圖像時利用GAN生成細節。

量化方法的選擇

建議大家參考相關論文自行選擇。因為量化方法的選擇往往還和網路中的其他模塊相關。例如,如果編碼器部分選用的激活輸出的是二值(0、1),那麼量化其實就不是那麼重要了。

壓縮時間

一般而言,基於深度學習的壓縮演算法,和傳統演算法相比,在CPU上壓縮時間處於劣勢。不過也有例外。比如,在圖鴨科技的測試中,在CPU上,基於CNN的演算法實際上比H266要快。H266雖然屬於傳統演算法,但是複雜度其實很高。

未來隨著GPU、專用深度學習晶元的算力提升,壓縮時間不會成為應用深度學習壓縮演算法的最大障礙。

參考資料

可以在網易雲課堂上參加本次公開課:

study.163.com/course/in

參加課程後,點擊課時可以觀看回放。回放頁面的參考資料中包含公開課ppt與相關鏈接。也可以在論智公眾號(ID: jqr_AI)後台留言180614獲取ppt下載地址。

推薦閱讀:

TAG:網易公開課 | 計算機視覺 | 深度學習DeepLearning |