一文讀懂影象壓縮演算法

七月線上實驗室發表於2018-05-02

來源:頂級程式設計師

作者:圖鴨科技

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

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

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

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1圖1. 基於自編碼網路的影象壓縮

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

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

640?wx_fmt=png&wxfrom=5&wx_lazy=1
(1)

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

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

編碼和解碼結構是自編碼網路的基礎,目的是對非線性變換進行學習。量化的作用是將浮點數轉換為整數或二進位制,反量化作用與之相反。

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

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

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

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

640?wx_fmt=png
(2)

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

640?wx_fmt=png
(3)

碼字估計主要用於訓練,在實際使用中先驗模型可用於自適應的算術編碼,生成碼流。從資訊理論的角度來說,當編碼特徵越集中時熵會進一步降低,從而熵編碼後碼字會降低,但網路的表示能力會受影響,並會降低重建影象的質量而導致失真。

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

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


02 為什麼選擇深度學習

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

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

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

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

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

640?wx_fmt=jpeg

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

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

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

壓縮演算法目前的市場需求量很大,加速了新一代壓縮演算法的研究步伐;但是因為市場需求各不相同,導致新一代的壓縮演算法推行難度大!

目前TNG採用的是變分自編碼網路的方法,且並沒有將GAN網路加進來。


03 最後

這是因為,我們的首要需求是客觀質量。前文提到了我們在這種設計下達到的效果是:TNG壓縮效果是BPG的壓縮效果的2倍,是JPEG的壓縮效果的3.5—4倍。大家在日常的實踐中,可以根據自己具體的壓縮需求,進行設計合適的影象壓縮演算法。

640?wx_fmt=gif

640?wx_fmt=png

640?wx_fmt=png

相關文章