搜尋
首頁常見問題常用的無損壓縮演算法有哪些

常用的無損壓縮演算法有:1、LZ77演算法,該演算法是許多其他無損壓縮演算法的基礎;2、LZR演算法,是旨在提升LZ77的演算法;3、LZSS演算法,該演算法目標是成為LZ77的線性時間替換演算法;4、DEFLATE演算法;5、LZMA演算法等等。

常用的無損壓縮演算法有哪些

資料壓縮是保留相同或絕大部分資料前提下減少檔案大小的過程。它的原理是消除不必要的數據或以更有效率的格式重新組織數據。在進行資料壓縮時,你可以選擇使用有損方法或無損方法。有損方法會永久性地擦除一些數據,而無損方法則能保證持有全部的數據。使用哪一類方法取決於你要讓你的文件保持多大的精確度。

本文會為你介紹6種不同的無損資料壓縮演算法,以及4種基於深度學習的影像/視訊壓縮演算法。

6款無損資料壓縮演算法

無損壓縮演算法通常被用於歸檔或其他高保真目的。這些演算法能夠讓你在確保檔案可被完整恢復的同時減少檔案大小。有很多種無損壓縮演算法供你選擇。以下介紹6種常用的演算法:

1. LZ77

LZ77演算法發佈於1977年。作為許多其他無損壓縮演算法的基礎,它使用了「滑動視窗」的概念。在這個概念中,LZ77管理了一個字典。這個字典使用三元組的方式:

偏移(Offset):短語起始處於檔案開頭之間的距離

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

偏離字元:表示新短語的標記符,匹配結束後,前向緩衝區中的第一個符號

當檔案被解析時,字典會被即時更新以反映最新的壓縮資料和大小。舉個例子,如果一個檔案包含字串"abbadabba",那麼被壓縮到字典中的項就是"abb(0,1,'d')(0,3,'a')"。你可以看下表的拆解過程:

常用的無損壓縮演算法有哪些

這個例子中,被壓縮後的資料並不比初始資料小多少。但一般情況下,當檔案很長時,這種壓縮效果就會顯現出來。

2. LZR

LZR由Michael Rodeh於1981年提出,它是在LZ77的基礎上發展而來。這個演算法目標是成為LZ77的一個線性時間替換演算法,但編碼後Udell指標可能指向檔案的任意偏移量,意味著需要耗費可觀的內存,因此表現不如LZ77。

3. LZSS

LZSS,全名為Lempel-Ziv-Storer-Szymanski,於1982年提出。它也是旨在提升LZ77的演算法。它引入了一個方法能夠檢測是否真的減少了檔案大小。如果未能起到壓縮效果,就保持原來的輸入格式。 LZSS也移除了偏離字元的使用,只使用對。這個壓縮演算法廣泛用於歸檔格式,如RAR以及網路資料的壓縮。

4. DEFLATE

DEFLATE演算法於1993年提出。作者是Phil Katz。該演算法結合了LZ77或LZSS預處理器與霍夫曼編碼。霍夫曼編碼是1952年提出的訴法。它是一種熵編碼,主要基於字元出現頻度分配編碼。

5. LZMA

LZMA演算法,全名為Lempel-Ziv Markov chain Algorithm(LZMA),於1998年提出,是LZ77的改良版,旨在實現.7z格式的7- ZIp檔案歸檔。它使用鍊式壓縮方法,在位元而非位元組層級上應用修改後的LZ77演算法。此壓縮演算法的輸出稍後會被算數編碼處理以便後續進一步壓縮。根據具體的實現不同,可能會引入其他的壓縮步驟。

6. LZMA2

LZMA2演算法於2009年提出,是LZMA的改良版。它提升了LZMA在多執行緒能力上的效能以及提升了處理不可壓縮型別資料的表現。

4種基於深度學習的圖像/視訊壓縮演算法

除了上面介紹的靜態壓縮演算法,還有基於深度學習的壓縮演算法可供選擇。

1. 基於多層感知機的壓縮演算法

多層感知機(Multi-Layer Perceptron,MLP)技術使用多層神經元來獲取、處理以及輸出資料。它能夠被應用到資料降維任務和資料壓縮。首個基於MLP的演算法於1988年被提出,目前已被應用到:

二進位編碼-標準的雙符號編碼

量化-限制從連續集到離散集的輸入

特定領域內的轉換-像素級的資料變更

MLP演算法利用分解神經網路上一步的輸出來確定最佳的二進位碼組合。後面,使用預測技術來優化這個方法。預測技術能夠透過反向傳播基於相鄰數據來提升數據準確度。

2. DeepCoder -- 基於視訊壓縮的深度神經網路

DeepCoder是一個基於卷積神經網路(CNN)的框架,它是傳統視訊壓縮技術的替代品。此模型為預測訊號和殘留訊號使用單獨的CNN。它使用標量量化技術和一個傳統的文件壓縮演算法——霍夫曼編碼——將編碼特徵映射到一個二進位流。一般認為,此模型的性能要優於著名的H.264/AVC視訊編碼規格。

3. 基於CNN的壓縮演算法

CNN是分層的神經網絡,通常用於影像辨識和特徵檢測。當應用到壓縮時,這些神經網路使用卷積操作來計算相鄰像素點之間的相關性。 CNN展示出了比基於MLP演算法更好的壓縮結果,提升了超解析度下的效能以及減少了偽影。另外,基於CNN的壓縮也提升了JPEG影像的品質,因為它減少了峰值訊號雜訊比(PSNR)和結構相似性(SSIM)。基於CNN的壓縮透過使用熵估計法也實現了HEVC的性能。

4. 基於生成式對抗網路(GAN)的壓縮演算法

GAN屬於神經網路的一種,它使用兩個神經網路彼此競爭的方式來產生更精確的分析和預測。最早基於GAN的壓縮演算法於2017年被提出。這些演算法的檔案壓縮比例是其他常見方法(如JPEG、WebP等)的2.5倍。你可以使用基於GAN的方法透過並行化處理來實現即時壓縮。主要的原理是基於最相關的特徵來壓縮圖片。當解碼的時候,演算法基於這些特徵來重建影像。和基於CNN演算法相比,基於GAN的壓縮演算法透過消除對抗損失能夠產生更高品質的影像。

總結

壓縮演算法能夠幫助你最佳化檔案大小。不同的演算法有不同的結果。本文簡述了6種靜態的無損壓縮演算法以及4種基於深度學習的壓縮演算法。當然,如果這些演算法都不適用於你的場景,你可以查看這篇文章來尋找適合你場景的演算法。演算法很多,總有一款適合你!

以上是常用的無損壓縮演算法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用