深度學習圖像視頻壓縮算法——TNG

NO IMAGE

互聯網時代,社交媒體分享、自動駕駛、增強顯示、衛星通信、高清電視或視頻監控等應用場景對圖片和視頻有很強的需求,壓縮算法也因此備受關注,但是不同的應用場景對壓縮算法的性能要求也不一樣,有的需求是保持高清的畫質是第一位,有的需求是體積小是第一位,可以損害一些畫質。

那麼如何用深度學習技術來設計壓縮算法呢?這篇文章將簡單的來和大家說一說。

深度學習圖片壓縮框架和基本概念介紹

深度學習圖像視頻壓縮算法——TNG

圖1. 基於自編碼網絡的圖像壓縮

如圖1 所示,一個典型的自編碼圖片壓縮框架包括編碼器、量化、反量化、解碼器、碼字估計、熵編碼和率-失真優化等幾個模塊。

以圖1的例子來解釋自編碼圖像壓縮網絡中各個模塊的作用:假定輸入圖片大小為,通過編碼器和量化處理後得到的編碼特徵的維度為,假定熵編碼後平均每個編碼特徵單元所佔據的比特數為R,則編碼碼率的計算公式為:

深度學習圖像視頻壓縮算法——TNG深度學習圖像視頻壓縮算法——TNG   (1)

對公式(1)進行分析,其中與輸入圖片有關,由網絡結構來決定,而R是由量化、編碼特徵分佈和熵編碼決定。

壓縮特徵經過反熵編碼、反量化和解碼器後就能得到解碼圖片。在解碼圖片質量不變的條件下,如果R越低則表示壓縮效率越高。

編碼和解碼結構是自編碼網絡的基礎,目的是對非線性變換進行學習。

量化的作用是將浮點數轉換為整數或二進制,反量化作用與之相反。

量化是降低碼字的重要途徑,但也是導致信息損失的首要原因。理論上講量化越精細信息損失越小,但可能導致碼字增加和增加訓練的難度,因此設計高效的量化算法非常重要。

為了達到提升壓縮效率的目的,需要用碼字估計模塊在訓練中對R進行約束。

碼字估計首先要利用先驗概率模型對編碼特徵分佈進行準確估計,保證估計的編碼特徵分佈與實際分佈儘可能接近,然後通過計算熵對熵編碼後碼字進行估算。

一般可以用帶參數概率模型對先驗進行建模,如用高斯混合模型對數據分佈進行擬合:

深度學習圖像視頻壓縮算法——TNG (2)

以特徵分佈估計為基礎,熵編碼模塊首先計算特徵的上下文概率,並對編碼特徵進行進一步的壓縮,這樣可進一步降低R值。碼字估計是估算經過算術編碼後,消耗比特數是多少在算術編碼高效執行前提下,碼字大小的下限,可表示為熵:

深度學習圖像視頻壓縮算法——TNG(3)

碼字估計主要用於訓練,在實際使用中先驗模型可用於自適應的算術編碼,生成碼流。

從信息論的角度來說,當編碼特徵越集中時熵會進一步降低,從而熵編碼後碼字會降低,但網絡的表示能力會受影響,並會降低重建圖像的質量而導致失真。

所以在熵編碼碼字與圖像重建質量之間需要做權衡,這種權衡稱率-失真優化。率對應編碼碼率,失真對應重建質量。

一般通過率-失真優化構建的損失函數對自編碼壓縮網絡進行訓練。

實現壓縮算法的要素

我們現在的思路:從優化自編碼網絡結構、設計新的量化方式、設計新的壓縮特徵先驗建模方法和率-失真優化等幾個方面進行研發,提升現在圖像壓縮算法的性能,特別是低碼率下的壓縮性能。

技術難點與壁壘:在於如何以變分自編碼網絡為基礎,解決如何優化自編碼網絡結構、如何對量化和先驗建模進行聯合優化的問題,提高圖像壓縮的性能和降低複雜度,提升實用性是難點。

一些經驗分享:準確先驗概率估計利於自適應算術編碼,準確先驗概率估計利於訓練中對碼字分佈進行約束,在實踐中用帶參數的概率模型,如高斯混合模型等對先驗進行建模。

準確估計先驗的基礎上,會存在一個權衡:編碼特徵越集中熵越小,但網絡的表示能力受影響,降低重建質量。要做好兩個問題:

1)準確先驗估計;

2)碼率和重建質量權衡。

為什麼選擇深度學習

現階段壓縮算法在諸如社交媒體分享、增強現實、自動駕駛、醫學影像、高清電視等應用場景下均有很強的需求。

現有的算法如要根據不同的應用需求對現有壓縮算法進行優化並不容易,並且現在圖像和視頻壓縮算法性能的提升已遇到瓶頸。

從圖片壓縮角度來講,基於深度學習的技術最大的優點是可以根據不同的應用進行針對性的設計和訓練,可針對性的對主觀或客觀指標進行訓練。

從視頻壓縮角度來講,深度學習壓縮採用與H.264、H.265和H.266不同的架構,使用卷積神經網絡為主題進行設計,可更靈活地將現階段機器視覺領域中的光流估計等算法應用幀間關係建模中,設計高效視頻壓縮算法。

此外,我們會結合超分辨等技術,對傳統算法進行進一步優化,降低通信帶寬。

深度學習圖像視頻壓縮算法——TNG

圖2 TNG 主觀和客觀訓練模型與其他算法對比示意圖

自編碼的壓縮算法,現階段最大的優勢能針對特定的指標進行優化,可對重建圖的主觀效果有顯著提升。

GAN(對抗生成)網絡對主觀性能、視覺效果提升有好處,但客觀質量並不好,一般用GAN網絡設計的算法,會生成些與原始數據不一致的細節。現階段我們將客觀質量(PSNR)的提升放在首位,同時主觀質量也取得不錯的效果。

未來我們會根據不同應用需求,考慮是否採用GAN網絡。雖然我們現階段的重點在客觀性能的提升上,實驗中也發現客觀質量越好,與原始圖片差異越小,主觀質量也會有相應的提升,同時發現結合MSE和MS-SSIM能獲取非常好的MS-SSIM性能。

如圖2所示,使用MS-SSIM為損失函數訓練出的模型(TNG subjective),得到的MS-SSIM指標明顯優於使用MSE作為損失函數訓練的模型(TNG objective)。

TNG subjective 在相同的主觀MS-SSIM指標下,所消耗的碼字是BPG的一半,流量節省了50%;相比JPEG,TNG僅消耗原來流量的25%-30%。

總結

壓縮算法目前的市場需求量很大,加速了新一代壓縮算法的研究步伐;但是因為市場需求各不相同,導致新一代的壓縮算法推行難度大!目前TNG採用的是變分自編碼網絡的方法,且並沒有將GAN網絡加進來。這是因為,我們的首要需求是客觀質量。前文提到了我們在這種設計下達到的效果是:TNG壓縮效果是BPG的壓縮效果的2倍,是JPEG的壓縮效果的3.5—4倍。大家在日常的實踐中,可以根據自己具體的壓縮需求,進行設計合適的圖像壓縮算法。

相關文章

最近在ubunt下搞android遇到的一些坑,持續更新

Android完全退出當前應用程序新公司學習到的細節

Android優化(三)_延遲電池續航時間

CVPR2018|圖鴨科技榮獲圖像壓縮挑戰賽冠軍