幾個常用快速無失真壓縮演算法效能比較

2021-09-08 17:35:05 字數 1470 閱讀 3029

fastlz

fastlz是乙個高效的輕量級壓縮解壓庫,其官方測試資料如下表:

1gb文字資料測試:

官方**:

lzo/minilzo

lzo是乙個開源的無失真壓縮c語言庫,其優點是壓縮和解壓縮比較迅速占用記憶體小等特點(網路傳輸希望的是壓縮和解壓縮速度比較快,壓縮率不用很高),其提供了比較全的lzo庫和乙個精簡版的minilzo庫,網上測試資料如下:

測試的時候使用bmp和文字檔案,在x86的linux虛擬機器(單核256m記憶體,debian 6.0 os)上測試。

測試檔案

原始大小

壓縮後大小

壓縮率

壓縮時間

解壓時間

1.bmp     

5292054 

3.01%

9.174ms

23.037ms

2.bmp     

6912056 

33806     

0.489%

8.33ms

36.17ms

3.bmp     

6220856 

5101891 

82%25.78ms

28.43ms

lzo.tar

6645760 

2457890 

36.98%

34.68ms

38.62ms

kdoc.tar

41.93%

102.86ms

108.2ms

kinc.tar

5684927 

31.13%   

106.87ms

113.86ms

官方**:

來自《hbase: the definitive guide》中的乙個對比: 

algorithm

% remaining

encoding

decoding

gzip

13.4%

21 mb/s

118 mb/s

lzo20.5%

135 mb/s

410 mb/s

22.2%

172 mb/s

409 mb/s

01 霍夫曼編碼 無失真壓縮

在計算機中,霍夫曼編碼使用變長編碼表對源符號 如檔案中的乙個字母 進行編碼,其中變長編碼表是通過一種評估 符號出現機率的方法得到的,出現機率高的字母使用較短的編碼,反之出現機率低的則使用較長的編碼,這便使編碼之後的字串的平均長度 期望值降低,從而達到無失真壓縮資料的目的。初始化,將符號概率按大到小進...

2020編碼大賽(3)無失真壓縮演算法

無失真壓縮演算法,按照我的理解,可以分為三大塊知識 直接編碼 轉換 上下文編碼。一,直接編碼 1,哈夫曼編碼 哈夫曼編碼就是把各個字元轉換成不同長度的01串,按照固定的替換規則全文替換即可。當然,哈夫曼編碼的依據,可以是硬編碼的,也可以是根據文字內容統計計算出來的。2,算術編碼 區間編碼 這2個編碼...

基於實現霍夫曼編碼的無失真壓縮 C 實現

1 把任務十中的文字字元轉為國標碼,計算共需要多少位元。2 用你所學的方法 霍夫曼編碼 遊長編碼或算數編碼 壓縮這些字元,得到的壓縮碼流共計多少位元。說明資料的冗餘度在 3 手動編碼也可以。最好程式設計實現壓縮。1 漢字機內碼 區位碼 國標碼簡介 漢字的機內碼是漢字在計算機漢字系統內部的表示方法,是...