本页使用了标题或全文手工转换

无损数据压缩

维基百科,自由的百科全书
跳转至: 导航搜索

无损数据壓縮(Lossless Compression)指数据经过压缩后,信息不受损失,还能完全恢复到压缩前的原样。「無損」一詞是相對於有損數據壓縮,有損數據壓縮只允許一個近似原始數據進行重建,以換取更好的壓縮率。

無損壓縮通常用於嚴格要求「經過壓縮、解壓縮的資料必須與原始資料一致」的場合。典型的例子包括文字文件、程式執行檔、程式原始碼。有些圖片檔案格式,例如PNGGIF,使用的是無損壓縮。其他例如TIFFMNG則可以採用無損或有損壓縮。無損音訊格式最常用於歸檔或製作用途。有損音訊格式則常用於攜帶型播放器或儲存空間受限制的裝置,或不要求音訊完全還原的情況。

無損壓縮技術[编辑]

多數的無損壓縮程式會依序進行這兩個步驟:

  1. 產生輸入資料的統計模型
  2. 利用這個統計模型將較常出現的資料用較短的位元序列表示,較不常出現的資料用較長的位元序列表示

生成位元序列的編碼演算法主要有霍夫曼編碼(也用於DEFLATE)和算術編碼。算術編碼能使壓縮率接近資訊熵所給出的最佳可能壓縮率。而霍夫曼編碼較簡單快速,但在符號的出現機率接近1的時候效果不彰。

有兩種建構統計模型的主要方法:

  • 靜態 模型中,會分析資料並建立一個模型,然後將這個模型儲存在壓縮資料中。這個方法較簡單且模組化,但缺點是模型本身可能耗費龐大的空間來儲存。而且這個方法對單次的全部壓縮資料都使用同一個統計模型,所以如果各個檔案之間差異甚大,壓縮效果並不好。
  • 自適應 模型中,壓縮資料的同時模型會不斷的更新。雖然會導致壓縮初期的壓縮率不理想,但隨著讀取的資料增加,壓縮效果也會提升。目前最熱門的壓縮方法都採用自適應編碼方法。

常见的无损压缩格式[编辑]

通用格式[编辑]

图片格式[编辑]

3D圖片格式[编辑]

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

音频格式[编辑]

视频格式[编辑]

常見的无损压缩演算法[编辑]