0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學(xué)習(xí)為圖片壓縮算法,可以節(jié)省55%帶寬

LiveVideoStack ? 作者:李建兵 ? 2018-03-14 13:31 ? 次閱讀

隨著互聯(lián)網(wǎng)的發(fā)展,人們對高清圖片的需求也在不斷增加,在保證圖像畫質(zhì)的情況下最大程度降低圖像體積已成為行業(yè)發(fā)展趨勢。

目前比較出名的圖像壓縮格式是:WebP與HEIF。

WebP:谷歌旗下的一款可以同時提供有損壓縮和無損壓縮的圖片文件格式,其以VP8編碼為內(nèi)核,在2011年11月開始可以支持無損和透明色功能。目前facebook等網(wǎng)站都已采用這種圖片格式。

BPG:知名程序員、ffmpeg和QEMU等項目作者Fabrice Bellard推出的圖像格式,它以HEVC編碼為內(nèi)核,在相同體積下,BPG文件大小只有JPEG的一半。另外BPG還支持8位和16位通道等等。盡管BPG有很好的壓縮效果,但是HEVC的專利費很高,所以目前的市場使用比較少。

這兩大技術(shù)都各有優(yōu)劣,為了最大程度的應(yīng)對市場需求采用深度學(xué)習(xí)技術(shù)做圖片壓縮算法已受到業(yè)界越來越多的關(guān)注。

深度學(xué)習(xí)技術(shù)設(shè)計圖片壓縮算法

通過深度學(xué)習(xí)技術(shù)設(shè)計壓縮算法不僅能在不借助HEVC的情況下設(shè)計出更適合商用的更高壓縮比的圖片壓縮算法,還可以在保持圖片畫質(zhì)同時,盡可能降低圖片體積。

在圖片壓縮領(lǐng)域主要用到的深度學(xué)習(xí)技術(shù)是卷積神經(jīng)網(wǎng)絡(luò)(CNN)。卷積神經(jīng)網(wǎng)絡(luò)就像搭積木一樣,一個卷積神經(jīng)網(wǎng)絡(luò)由卷積、池化、非線性函數(shù)、歸一化層等模塊組成,最終的輸出根據(jù)應(yīng)用而定;如在人臉識別領(lǐng)域,我們可以用它來提取一串特征表示一幅人臉圖片,然后通過比較特征的異同進行人臉識別。

圖1:卷積神經(jīng)網(wǎng)絡(luò)示意圖(來源http://blog.csdn.net/hjimce/article/details/47323463)

如何利用卷積神經(jīng)網(wǎng)絡(luò)做壓縮?

如圖2所示,完整的框架包括CNN編碼器、量化、反量化、CNN解碼器、熵編碼、碼字估計和碼率-失真優(yōu)化等幾個模塊。編碼器的作用是將圖片轉(zhuǎn)換為壓縮特征,解碼器就是從壓縮特征恢復(fù)出原始圖片。其中編碼網(wǎng)絡(luò)和解碼器,可以用卷積、池化、非線性等模塊進行設(shè)計和搭建。

圖2:用深度學(xué)習(xí)進行圖片壓縮示意圖

如何評判壓縮算法?

目前評判一個壓縮算法的重要指標(biāo)有三個:PSNR(Peak Signal to Noise Ratio)、BPP(bit per pixel)和MS-SSIM(multi-scaleSSIM index)。我們知道,任何數(shù)據(jù)在計算機內(nèi)都是以比特形式存儲,所需比特數(shù)越多則占據(jù)的存儲空間越大。PSNR用來評估解碼后圖像恢復(fù)質(zhì)量,BPP用于表示圖像中每個像素所占據(jù)的比特數(shù),MS-SSIM值用來衡量圖片的主觀質(zhì)量,簡單來說在同等的Rate/BPP下PSNR更高,壓縮效果更好,MSSIM更高,主觀感受更好。

下圖為圖鴨圖片格式Tiny Network Graphics (TNG) 與其他圖片格式在同一壓縮比下的PSNR值與MS-SSIM值對比:

圖3:圖鴨TNG圖片格式與其他圖片格式在同一壓縮比下的PSNR值與MS-SSIM值對比

從上圖對比中可以看到,圖鴨的TNG在MS-SSIM值上一直處于領(lǐng)先狀態(tài),其PSNR值也已超過WebP、JPEG2000等商用算法。

如何用深度學(xué)習(xí)做壓縮?

談到如何用深度學(xué)習(xí)做壓縮,我們以圖片來舉例。將一張大小 768 * 512 的三通道圖片送入編碼網(wǎng)絡(luò),進行前向處理后,會得到占據(jù) 96 * 64 * 192 個數(shù)據(jù)單元的壓縮特征。有計算機基礎(chǔ)的讀者可能會想到,這個數(shù)據(jù)單元中可放一個浮點數(shù),整形數(shù),或者是二進制數(shù)。那到底應(yīng)該放入什么類型的數(shù)據(jù)呢?

從圖像恢復(fù)角度和神經(jīng)網(wǎng)絡(luò)原理來講,如果壓縮特征數(shù)據(jù)都是浮點數(shù),恢復(fù)圖像質(zhì)量是最高的。但一個浮點數(shù)占據(jù)32個比特位,圖片的計算公式為( 96 * 64 * 192 * 32)/(768*512)=96,壓縮后反而每個像素占據(jù)比特從24變到96!圖片大小非但沒有壓縮,反而增加了,這是一個糟糕的結(jié)果,很顯然浮點數(shù)不是好的選擇。

所以為了設(shè)計靠譜的算法,可以使用一種稱為量化的技術(shù),它的目的是將浮點數(shù)轉(zhuǎn)換為整數(shù)或二進制數(shù),最簡單的操作是去掉浮點數(shù)后面的小數(shù),浮點數(shù)變成整數(shù)后只占據(jù)8比特,則表示每個像素要占據(jù)24個比特位。與之對應(yīng),在解碼端,可以使用反量化技術(shù)將變換后的特征數(shù)據(jù)恢復(fù)成浮點數(shù),如給整數(shù)加上一個隨機小數(shù),這樣可以一定程度上降低量化對神經(jīng)網(wǎng)絡(luò)精度的影響,從而提高恢復(fù)圖像的質(zhì)量。

即使壓縮特征中每個數(shù)據(jù)占據(jù)1個比特位,可是壓縮還是有可進步的空間。那如何進一步優(yōu)化算法?再看下BPP的計算公式。

假設(shè)每個壓縮特征數(shù)據(jù)單元占據(jù)1個比特,則公式可寫成:(96*64*192*1)/(768*512)=3,計算結(jié)果是3 bit/pixel,從壓縮的目的來看,BPP越小越好。在這個公式中,分母由圖像決定,我們進行調(diào)整的只有分子:96、64、192,這三個數(shù)字與網(wǎng)絡(luò)結(jié)構(gòu)相關(guān)。所以,如果我們設(shè)計出更優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),這三個數(shù)字也會變小。

那1與哪些模塊相關(guān)?1表示每個壓縮特征數(shù)據(jù)單元平均占據(jù)1個比特位,量化會影響這個數(shù)字,但它不是唯一的影響因素,它還與碼率控制和熵編碼有關(guān)。碼率控制的目的是在保證圖像恢復(fù)質(zhì)量的前提下,讓壓縮特征數(shù)據(jù)單元中的數(shù)據(jù)分布盡可能集中、出現(xiàn)數(shù)值范圍盡可能小,這樣我們就可以通過熵編碼技術(shù)來進一步降低1這個數(shù)值,圖像壓縮率會進一步提升。

總結(jié)

總體而言,借助于深度學(xué)習(xí)設(shè)計視頻和圖像壓縮算法是一項非常具有前景,但同時也非常有挑戰(zhàn)性的技術(shù)。

最后,大家可以點擊閱讀原文獲取TNG測試鏈接(建議在PC端測試)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 帶寬
    +關(guān)注

    關(guān)注

    3

    文章

    897

    瀏覽量

    40795
  • 圖片壓縮
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    5525

原文標(biāo)題:深度學(xué)習(xí)為圖片壓縮算法賦能:節(jié)省55%帶寬

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

      華為云深度學(xué)習(xí)服務(wù),讓企業(yè)智能從此不求人

    ,分布式訓(xùn)練線性加速比能達到0.8。這就意味著在億級圖片規(guī)模下的模型訓(xùn)練,華為深度學(xué)習(xí)的分布式模型訓(xùn)練時間可以從30天縮短至小時級?!   〔煌珿PU數(shù)量下模型訓(xùn)練收斂時間    神機
    發(fā)表于 08-02 20:44

    深度學(xué)習(xí)中的圖片如何增強

    深度學(xué)習(xí)中的圖片增強
    發(fā)表于 05-28 07:03

    啃論文俱樂部 | 壓縮算法團隊:我們是如何開展對壓縮算法學(xué)習(xí)

    了啃論文俱樂部與在校學(xué)習(xí)的區(qū)別,大家可以參考下圖,了解下 OpenHarmony 成長計劃啃論文俱樂部的獨特魅力。根據(jù)興趣選擇技術(shù)方向團隊啃論文俱樂部細分了 12 類方向:JSON、壓縮算法
    發(fā)表于 06-21 11:05

    電腦上的圖片怎么批量壓縮

    :在頁面上點擊選擇壓縮圖片可以壓縮圖片格式,或者是PNG格式,再或者是JPG格式的文件,點擊到相應(yīng)的選項即可。4:然后點擊這里頁面左下角
    發(fā)表于 09-21 17:59 ?615次閱讀

    深度學(xué)習(xí)模型壓縮與加速綜述

    目前在深度學(xué)習(xí)領(lǐng)域分類兩個派別,一派學(xué)院派,研究強大、復(fù)雜的模型網(wǎng)絡(luò)和實驗方法,為了追求更高的性能;另一派工程派,旨在將算法更穩(wěn)定、高效
    的頭像 發(fā)表于 06-08 17:26 ?5171次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>模型<b class='flag-5'>壓縮</b>與加速綜述

    深度學(xué)習(xí)算法和應(yīng)用涌現(xiàn)的背后,是各種各樣的深度學(xué)習(xí)工具和框架

    回顧深度學(xué)習(xí)框架的演變,我們可以清楚地看到深度學(xué)習(xí)框架和深度
    的頭像 發(fā)表于 01-21 13:46 ?2720次閱讀

    基于MobileNet的多目標(biāo)跟蹤深度學(xué)習(xí)算法

    針對深度學(xué)習(xí)算法在多目標(biāo)跟蹤中的實時性問題, 提出一種基于MobileNet的多目標(biāo)跟蹤算法. 借助于MobileNet深度可分離卷積能夠?qū)?/div>
    的頭像 發(fā)表于 11-09 10:23 ?1029次閱讀
    基于MobileNet的多目標(biāo)跟蹤<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>算法</b>

    基于深度學(xué)習(xí)的圖像/視頻壓縮算法

    無損壓縮算法通常被用于歸檔或其他高保真目的。這些算法能夠讓你在確保文件可被完整恢復(fù)的同時減少文件大小。
    發(fā)表于 03-03 11:16 ?1977次閱讀

    深度學(xué)習(xí)算法簡介 深度學(xué)習(xí)算法是什么 深度學(xué)習(xí)算法有哪些

    。深度學(xué)習(xí)算法作為其中的重要組成部分,不僅可以為諸如人工智能、圖像識別以及自然語言處理等領(lǐng)域提供支持,同時也受到了越來越多的關(guān)注和研究。在本文中,我們將著重介紹
    的頭像 發(fā)表于 08-17 16:02 ?8690次閱讀

    深度學(xué)習(xí)算法工程師是做什么

    深度學(xué)習(xí)算法工程師是做什么 深度學(xué)習(xí)算法工程師是一種高級技術(shù)人才,是數(shù)據(jù)科學(xué)中創(chuàng)新的推動者,也是
    的頭像 發(fā)表于 08-17 16:03 ?1184次閱讀

    什么是深度學(xué)習(xí)算法深度學(xué)習(xí)算法的應(yīng)用

    什么是深度學(xué)習(xí)算法?深度學(xué)習(xí)算法的應(yīng)用 深度
    的頭像 發(fā)表于 08-17 16:03 ?2065次閱讀

    深度學(xué)習(xí)算法的選擇建議

    深度學(xué)習(xí)算法的選擇建議 隨著深度學(xué)習(xí)技術(shù)的普及,越來越多的開發(fā)者將它應(yīng)用于各種領(lǐng)域,包括圖像識別、自然語言處理、聲音識別等等。對于剛開始
    的頭像 發(fā)表于 08-17 16:11 ?626次閱讀

    深度學(xué)習(xí)算法庫框架學(xué)習(xí)

    深度學(xué)習(xí)算法庫框架學(xué)習(xí) 深度學(xué)習(xí)是一種非常強大的機器學(xué)習(xí)
    的頭像 發(fā)表于 08-17 16:11 ?647次閱讀

    深度學(xué)習(xí)框架和深度學(xué)習(xí)算法教程

    基于神經(jīng)網(wǎng)絡(luò)的機器學(xué)習(xí)方法。 深度學(xué)習(xí)算法可以分為兩大類:監(jiān)督學(xué)習(xí)和無監(jiān)督
    的頭像 發(fā)表于 08-17 16:11 ?1031次閱讀

    壓縮算法的類型和應(yīng)用

    壓縮算法是一種通過減少數(shù)據(jù)量來節(jié)省存儲空間或傳輸數(shù)據(jù)的技術(shù)。壓縮算法可以分為兩種類型:有損
    的頭像 發(fā)表于 10-21 13:50 ?155次閱讀