複製鏈接
請複製以下鏈接發送給好友

無損

鎖定
無損,即無損數據壓縮(Lossless Compression)指數據經過壓縮後,信息不受損失,還能完全恢復到壓縮前的原樣。“無損”一詞是相對於有損數據壓縮,有損數據壓縮只允許一個近似原始數據進行重建,以換取更好的壓縮率。
中文名
無損
外文名
Lossless Compression
別    名
無損數據壓縮
釋    義
數據經過壓縮後,信息不受損失

無損簡介

無損數據壓縮(Lossless Compression)指數據經過壓縮後,信息不受損失,還能完全恢復到壓縮前的原樣。“無損”一詞是相對於有損數據壓縮,有損數據壓縮只允許一個近似原始數據進行重建,以換取更好的壓縮率。
無損壓縮通常用於嚴格要求“經過壓縮、解壓縮的數據必須與原始數據一致”的場合。典型的例子包括文字文件、程序可執行文件、程序源代碼。有些圖片文件格式,例如PNGGIF,使用的是無損壓縮。其他例如TIFF、MNG則可以採用無損或有損壓縮。無損音頻格式最常用於歸檔或製作用途。有損音頻格式則常用於便攜式播放器或存儲空間受限制的設備,或不要求音頻完全還原的情況。 [1] 

無損無損壓縮技術

多數的無損壓縮程序會依序進行這兩個步驟:
  1. 產生輸入數據的統計模型
  2. 利用這個統計模型將較常出現的數據用較短的比特序列表示,較不常出現的數據用較長的比特序列表示
生成比特序列的編碼算法主要有霍夫曼編碼(也用於DEFLATE)和算術編碼。算術編碼能使壓縮率接近信息熵所給出的最佳可能壓縮率。而霍夫曼編碼較簡單快速,但在符號的出現機率接近1的時候效果不彰。
有兩種建構統計模型的主要方法:
  • 靜態模型中,會分析數據並創建一個模型,然後將這個模型存儲在壓縮數據中。這個方法較簡單且模塊化,但缺點是模型本身可能耗費龐大的空間來存儲。而且這個方法對單次的全部壓縮數據都使用同一個統計模型,所以如果各個文件之間差異甚大,壓縮效果並不好。
  • 自適應模型中,壓縮數據的同時模型會不斷的更新。雖然會導致壓縮初期的壓縮率不理想,但隨着讀取的數據增加,壓縮效果也會提升。目前最熱門的壓縮方法都採用自適應編碼方法。 [2] 

無損常見的無損壓縮格式

參見:無損壓縮算法

無損通用格式

  • 變動長度編碼法(RLE) – 一個非常簡單的方法,在數據連續重複的情況下有不錯的壓縮率
  • LZ77與LZ78、LZW– 用於GIF和多種應用
  • LZF– 基本的LZ壓縮法(deflate),對於快速壓縮有做最優化(Lempel-Ziv Fast)
  • DEFLATE– 用於gzipZIP(從2.0版開始),也是PNG點對點協議(PPP)、HTTPSSH的一部分
  • bzip2– 使用Burrows-Wheeler變換,速度較DEFLATE慢但壓縮率更高
  • LZMA– 用於7zip、xz等程序,相較於bzip2有更好的壓縮率和更快的速度
  • LZO– 專為高速壓縮/解壓縮設計的方法,代價是壓縮率較差
  • Statistical Lempel Ziv– 結合統計方法和字典方法,相較於只採用單一方法有更好的壓縮率
  • Brotli– 一個現代的基於LZ的壓縮方法,速度大約與DEFLATE一樣快,但擁有與LZMA相近的壓縮率

無損圖片格式

無損3D圖片格式

  • OpenCTM– 用於3D三角網格的無損壓縮

無損音頻格式

無損視頻格式

無損常見的無損壓縮算法

參考資料
  • 1.    David Salomon, Giovanni Motta, (with contributions by David Bryant), Handbook of Data Compression, 5th edition, Springer, 2009, ISBN 1-84882-902-7, pp. 16–18.
  • 2.    Pratas, D.; Pinho, A. J.; Ferreira, P. J. S. G. (2016). "Efficient compression of genomic sequences". Data Compression Conference. Snowbird, Utah.