溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

計(jì)算機(jī)中常用的無損壓縮算法有哪些

發(fā)布時(shí)間:2021-03-02 14:23:55 來源:億速云 閱讀:987 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹了計(jì)算機(jī)中常用的無損壓縮算法有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

常用的無損壓縮算法有:1、LZ77算法,該算法是很多其他無損壓縮算法的基礎(chǔ);2、LZR算法,是旨在提升LZ77的一個(gè)算法;3、LZSS算法,該算法目標(biāo)是成為LZ77的一個(gè)線性時(shí)間替換算法;4、DEFLATE算法;5、LZMA算法等等。

數(shù)據(jù)壓縮是保留相同或絕大部分?jǐn)?shù)據(jù)前提下減小文件大小的過程。 它的原理是消除不必要的數(shù)據(jù)或以更高效的格式重新組織數(shù)據(jù)。在進(jìn)行數(shù)據(jù)壓縮時(shí),你可以選擇使用有損方法或無損方法。有損方法會(huì)永久性地擦除掉一些數(shù)據(jù),而無損方法則能保證持有全部的數(shù)據(jù)。使用哪類方法取決于你要讓你的文件保持多大的精準(zhǔn)度。

本文會(huì)為你介紹6種不同的無損數(shù)據(jù)壓縮算法,以及4種基于深度學(xué)習(xí)的圖像/視頻壓縮算法。

6款無損數(shù)據(jù)壓縮算法

無損壓縮算法通常被用于歸檔或其他高保真目的。這些算法能夠讓你在確保文件可被完整恢復(fù)的同時(shí)減少文件大小。有很多種無損壓縮算法供你選擇。下面介紹6種常用的算法:

1. LZ77

LZ77算法發(fā)布于1977年。作為很多其他無損壓縮算法的基礎(chǔ),它使用了“滑動(dòng)窗口”的概念。在這個(gè)概念中,LZ77管理了一個(gè)字典。該字典使用三元組的方式:

偏移量(Offset):短語起始處于文件開頭之間的距離

行程長度(Run length):組成短語的字符數(shù)

偏離字符:表明新短語的標(biāo)記符,匹配結(jié)束后,前向緩沖區(qū)中的第一個(gè)符號(hào)

當(dāng)文件被解析時(shí),字典會(huì)被實(shí)時(shí)更新以反映最新的壓縮數(shù)據(jù)和大小。舉個(gè)例子,如果一個(gè)文件包含字符串"abbadabba",那么被壓縮到字典中的項(xiàng)就是"abb(0,1,'d')(0,3,'a')"。你可以看下下表的拆解過程:

計(jì)算機(jī)中常用的無損壓縮算法有哪些

這個(gè)例子中,被壓縮后的數(shù)據(jù)并不比初始數(shù)據(jù)小多少。但一般情況下,當(dāng)文件很長時(shí),這種壓縮效果就會(huì)顯現(xiàn)出來。

2. LZR

LZR由Michael Rodeh于1981年提出,它是在LZ77的基礎(chǔ)上發(fā)展而來。這個(gè)算法目標(biāo)是成為LZ77的一個(gè)線性時(shí)間替換算法,但編碼后Udell指針可能指向文件的任意偏移量,意味著需要耗費(fèi)可觀的內(nèi)存,因此表現(xiàn)不如LZ77。

3. LZSS

LZSS,全稱Lempel-Ziv-Storer-Szymanski,于1982年提出。它也是旨在提升LZ77的一個(gè)算法。它引入了一個(gè)方法能夠檢測(cè)是否真的減少了文件大小。如果未能起到壓縮效果,就保持原來的輸入格式。LZSS還移除了對(duì)偏離字符的使用,只使用<偏移量,長度>對(duì)。這個(gè)壓縮算法廣泛用于歸檔格式,如RAR以及網(wǎng)絡(luò)數(shù)據(jù)的壓縮。

4. DEFLATE

DEFLATE算法于1993年提出。作者是Phil Katz。該算法結(jié)合了LZ77或LZSS預(yù)處理器與霍夫曼編碼。霍夫曼編碼是1952年提出的訴法。它是一種熵編碼,主要基于字符出現(xiàn)頻度分配編碼。

5. LZMA

LZMA算法,全稱是Lempel-Ziv Markov chain Algorithm(LZMA),于1998年提出,是LZ77的改進(jìn)版,旨在實(shí)現(xiàn).7z格式的7-ZIp文件歸檔。它使用鏈?zhǔn)綁嚎s方法,在比特而非字節(jié)級(jí)別上應(yīng)用修改后的LZ77算法。該壓縮算法的輸出稍后被算數(shù)編碼進(jìn)行處理以便后續(xù)進(jìn)一步壓縮。根據(jù)具體的實(shí)現(xiàn)不同,可能會(huì)引入其他的壓縮步驟。

6. LZMA2

LZMA2算法于2009年提出,是LZMA的改良版。它提升了LZMA在多線程能力上的性能以及提升了處理不可壓縮類型數(shù)據(jù)的表現(xiàn)。

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

除了上面介紹的靜態(tài)壓縮算法,還有基于深度學(xué)習(xí)的壓縮算法可供選擇。

1. 基于多層感知機(jī)的壓縮算法

多層感知機(jī)(Multi-Layer Perceptron,MLP)技術(shù)使用多層神經(jīng)元來獲取、處理以及輸出數(shù)據(jù)。它能夠被應(yīng)用到數(shù)據(jù)降維任務(wù)和數(shù)據(jù)壓縮。首個(gè)基于MLP的算法于1988年被提出,目前已經(jīng)被應(yīng)用到:

二進(jìn)制編碼——標(biāo)準(zhǔn)的雙符號(hào)編碼

量化——限制從連續(xù)集到離散集的輸入

特定領(lǐng)域內(nèi)的轉(zhuǎn)換——像素級(jí)的數(shù)據(jù)變更

MLP算法利用分解神經(jīng)網(wǎng)絡(luò)上一步的輸出來確定最佳的二進(jìn)制碼組合。后面,使用預(yù)測(cè)技術(shù)優(yōu)化這個(gè)方法。預(yù)測(cè)技術(shù)能夠通過反向傳播基于相鄰數(shù)據(jù)來提升數(shù)據(jù)準(zhǔn)確度。

2. DeepCoder -- 基于視頻壓縮的深度神經(jīng)網(wǎng)絡(luò)

DeepCoder是一個(gè)基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的框架,它是傳統(tǒng)視頻壓縮技術(shù)的替代。該模型為預(yù)測(cè)信號(hào)和殘留信號(hào)使用單獨(dú)的CNN。它使用標(biāo)量量化技術(shù)和一個(gè)傳統(tǒng)的文件壓縮算法——霍夫曼編碼——將編碼特征映射到一個(gè)二進(jìn)制流中。一般認(rèn)為,該模型的性能要優(yōu)于著名的H.264/AVC視頻編碼規(guī)范。

3. 基于CNN的壓縮算法

CNN是分層的神經(jīng)網(wǎng)絡(luò),通常用于圖像識(shí)別和特征檢測(cè)。當(dāng)應(yīng)用到壓縮時(shí),這些神經(jīng)網(wǎng)絡(luò)使用卷積操作來計(jì)算相鄰像素點(diǎn)之間的相關(guān)性。CNN展示出了比基于MLP算法更好的壓縮結(jié)果,提升了超分辨率下的性能以及減少了偽影。另外,基于CNN的壓縮還提升了JPEG圖像的品質(zhì),因?yàn)樗鼫p少了峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)?;贑NN的壓縮通過使用熵估計(jì)法還實(shí)現(xiàn)了HEVC的性能。

4. 基于生成式對(duì)抗網(wǎng)絡(luò)(GAN)的壓縮算法

GAN屬于神經(jīng)網(wǎng)絡(luò)的一種,它使用兩個(gè)神經(jīng)網(wǎng)絡(luò)彼此競爭的方式來產(chǎn)生更精確的分析和預(yù)測(cè)。最早基于GAN的壓縮算法于2017年被提出。這些算法的文件壓縮比例是其他常見方法(如JPEG、WebP等)的2.5倍。你可以使用基于GAN的方法通過并行化處理來實(shí)現(xiàn)實(shí)時(shí)壓縮。主要的原理是基于最相關(guān)的特征來壓縮圖片。當(dāng)解碼的時(shí)候,算法基于這些特征來重建圖像。和基于CNN算法相比,基于GAN的壓縮算法通過消除對(duì)抗損失能夠產(chǎn)生更高品質(zhì)的圖像。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“計(jì)算機(jī)中常用的無損壓縮算法有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI