2018年6月14日,圖鴨與論智聯合舉辦了一場線上公開課深度學習之視頻圖像壓縮。講師為周雷博士,圖鴨科技深度學習算法研究員。以下為論智整理的聽課筆記。因水平有限,難免有錯漏不當之處,僅供參考。
傳統圖像與視頻壓縮技術
首先,我們簡單回顧下傳統圖像與視頻壓縮技術。
JPEG
以下為JPEG編解碼流程示意圖。
從上圖我們可以看到,圖像數據編碼過程如下:
離散余弦變換。簡單來說,離散余弦變換是一種矩陣運算。
經過離散余弦變換后,高頻數據和低頻數據分流了,矩陣左上方是高頻數據(較大的數值),右下方是低頻數據(較小的數值)。這樣我們就可以對其進行量化了,在JPEG中是除以量化步長再取整。
量化之后對其進行熵編碼,得到壓縮表示。
解碼的過程與編碼過程相逆,經過反熵編碼、反量化、反離散余弦變換重建圖像。
JPEG2000
JPEG2000和JPEG的最大差別是使用了離散小波變換。此外還加上了一些預處理步驟。
JPEG2000編碼流程示意圖
WebP
WebP是來源于VP8的圖片壓縮格式。主要特色是基于塊預測。
BPG
和WebP類似,BPG同樣源于視頻編碼技術(HEVC)。BGP的主要特點如下:
HEVC
HEVC的編碼示意圖如下:
上圖中,Ref.表示參考樣本。T & Q表示轉換、量化過程,Q-1& T-1為其逆過程。Deblk.為Deblocking(去區塊)的縮寫。HEVC會將影像分為區塊再進行編碼,因此重建時會在區塊邊緣出現不連續的現象,稱為區塊效應。去區塊過程可以減輕區塊效應。SAO為Sample Adaptive Offset(樣本自適應偏移量)的縮寫,通過分析去區塊后的數據與原始數據的差異,補償量化過程造成的損失,使其盡可能接近原始數據。
CABAC為自適應二進制算術編碼。算術編碼利用符號出現的概率將符號序列編碼為一個數字。
相應的解碼過程:
從以上的編解碼過程中,我們可以看到,先驗概率估計的精確程度對編碼的效率影響很大。HEVC使用動態更新的概率模型實現自適應二進制算術編碼。
除了幀內估計、預測(參見前面提到的BPG)之外,HEVC視頻編碼還需考慮運動估計等幀間的關系。
深度學習圖像視頻壓縮框架
深度學習圖像壓縮框架
下為深度學習圖片壓縮的典型框架示意圖:
上圖中每個模塊的具體作用,可以參考如何設計基于深度學習的圖像壓縮算法中的解釋。
圖像壓縮數據集
設計好網絡模型后,需要使用圖像進行訓練。由于圖像壓縮屬于無監督學習,無需人工標注,因此數據集是比較容易搜集的。無論是從網上爬取,還是自行使用相機拍攝,都不難得到大量高清圖片。
常用的測試集有:
Kodak PhotoCD數據集,圖像分辨率768x512,約40萬像素;
Tecnick數據集,約一百四十萬像素。
CVPR 2818 CLIC數據集,圖像類別廣泛,分辨率不等(512至2048),文件尺寸不等(幾百K到幾M)。
深度學習視頻壓縮框架
深度學習視頻壓縮與圖像壓縮的主要差別在于增加了幀間預測/差值。
基于卷積網絡進行幀間預測
幀間預測能極大得減少幀間冗余。以1個參考幀,預測N-1幀為例,幀間預測的約束為參考幀和預測碼字遠小于每幀單獨壓縮的碼字:
深度學習圖像視頻壓縮進展介紹
深度學習圖像壓縮的主要發展方向:
RNN
CNN
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的后處理過程。
深度學習視頻壓縮的優勢和劣勢
使用深度學習進行單純的圖像壓縮,應用場景有一定局限性。深度學習在視頻壓縮領域潛力更大。深度學習在視頻壓縮領域的主要優勢在于:
能夠實現更好的變換學習,從而取得更好的效果。
端到端的深度學習模型能夠自行學習,而傳統的視頻壓縮工作需要手工設計很多東西。
傳統的視頻壓縮方法通常通過一些啟發式的方法進行幀間預測,從而減少幀間冗余。而深度學習能夠基于光流等進行預測。
另一方面,基于深度學習進行視頻壓縮也會遇到很多挑戰。比如控制實現幀間預測占用的比特。
圖鴨科技技術介紹
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、專用深度學習芯片的算力提升,壓縮時間不會成為應用深度學習壓縮算法的最大障礙。
-
圖像壓縮
+關注
關注
1文章
60瀏覽量
22818 -
數據集
+關注
關注
4文章
1222瀏覽量
25260 -
深度學習
+關注
關注
73文章
5554瀏覽量
122431
原文標題:深度學習之視頻圖像壓縮
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論