Perpustakaan ini mengusulkan dua pembuat kode entropi berkecepatan tinggi:
Huff0 , codec Huffman yang dirancang untuk CPU modern, menampilkan operasi OoO (Out of Order) pada beberapa ALU (Arithmetic Logic Unit), mencapai kecepatan kompresi dan dekompresi yang sangat cepat.
FSE adalah encoder Entropi jenis baru, berdasarkan teori ANS, dari Jarek Duda, yang mencapai akurasi kompresi yang tepat (seperti pengkodean Aritmatika) pada kecepatan yang jauh lebih tinggi.
Cabang | Status |
---|---|
menguasai | |
dev |
Tolok ukur dijalankan pada Intel Core i7-5600U, dengan Linux Mint 64-bit. Kode sumber dikompilasi menggunakan GCC 4.8.4, mode 64-bit. File pengujian dihasilkan menggunakan program probagen
yang disediakan. Benchmark memecah file sampel menjadi blok berukuran 32 KB. Huff0
dan FSE
dibandingkan dengan zlibh
, encoder huffman dalam zlib, yang disediakan oleh Frederic Kayser.
Mengajukan | Kodek | Perbandingan | Kompresi | Dekompresi |
---|---|---|---|---|
Mungkin80 | ||||
Huff0 | 6.38 | 600 MB/dtk | 1350 MB/dtk | |
FSE | 8.84 | 325 MB/dtk | 440 MB/dtk | |
zlibh | 6.38 | 265 MB/dtk | 300 MB/dtk | |
Mungkin14 | ||||
Huff0 | 1,90 | 595 MB/dtk | 860 MB/dtk | |
FSE | 1.91 | 330 MB/dtk | 460 MB/dtk | |
zlibh | 1,90 | 255 MB/dtk | 250 MB/dtk | |
Mungkin02 | ||||
Huff0 | 1.13 | 525 MB/dtk | 555 MB/dtk | |
FSE | 1.13 | 325 MB/dtk | 445 MB/dtk | |
zlibh | 1.13 | 180 MB/dtk | 210 MB/dtk |
Secara desain, Huffman tidak dapat melanggar batas "1 bit per simbol", sehingga kehilangan efisiensi pada distribusi yang diperas, seperti Proba80
. FSE bebas dari batasan tersebut, dan efisiensi kompresinya tetap mendekati batas Shannon dalam segala kondisi. Namun, akurasi ini tidak selalu diperlukan, dan distribusi yang kurang dapat dikompresi tidak menunjukkan banyak perbedaan dengan Huffman. Di sisi lain, Huff0 memberikan keunggulan kecepatan yang sangat besar.
Kontribusi eksternal disambut baik dan didorong. Cabang "master" hanya dimaksudkan untuk menampung rilis stabil. Cabang "dev" adalah cabang tempat semua kontribusi digabungkan. Jika Anda ingin mengusulkan tambalan, harap komit ke cabang "dev" atau cabang fitur khusus. Komit langsung ke "master" tidak diizinkan.