ไลบรารีนี้เสนอโปรแกรมเข้ารหัสเอนโทรปีความเร็วสูงสองตัว:
Huff0 เป็นตัวแปลงสัญญาณ Huffman ที่ออกแบบมาสำหรับ CPU สมัยใหม่ โดยมีการดำเนินการ OoO (ไม่อยู่ในลำดับ) บน ALU (Arithmetic Logic Unit) หลายตัว ทำให้ได้รับความเร็วการบีบอัดและคลายการบีบอัดที่รวดเร็วมาก
FSE คือตัวเข้ารหัสเอนโทรปีรูปแบบใหม่ซึ่งอิงตามทฤษฎี ANS จาก Jarek Duda ซึ่งได้รับความแม่นยำในการบีบอัดที่แม่นยำ (เช่น การเข้ารหัสทางคณิตศาสตร์) ที่ความเร็วที่สูงกว่ามาก
สาขา | สถานะ |
---|---|
ผู้เชี่ยวชาญ | |
ผู้พัฒนา |
การวัดประสิทธิภาพทำงานบน Intel Core i7-5600U พร้อมด้วย Linux Mint 64 บิต ซอร์สโค้ดถูกคอมไพล์โดยใช้โหมด GCC 4.8.4, 64 บิต ไฟล์ทดสอบถูกสร้างขึ้นโดยใช้โปรแกรม probagen
ที่ให้มา เกณฑ์มาตรฐานแบ่งไฟล์ตัวอย่างออกเป็นบล็อกขนาด 32 KB Huff0
และ FSE
ถูกเปรียบเทียบกับ zlibh
ซึ่งเป็นตัวเข้ารหัส huffman ภายใน zlib จัดทำโดย Frederic Kayser
ไฟล์ | ตัวแปลงสัญญาณ | อัตราส่วน | การบีบอัด | การบีบอัด |
---|---|---|---|---|
โพรบา80 | ||||
ฮัฟ0 | 6.38 | 600 เมกะไบต์/วินาที | 1350 เมกะไบต์/วินาที | |
เอฟเอสอี | 8.84 | 325 เมกะไบต์/วินาที | 440 เมกะไบต์/วินาที | |
ซลิบ | 6.38 | 265 เมกะไบต์/วินาที | 300 เมกะไบต์/วินาที | |
โพรบา14 | ||||
ฮัฟ0 | 1.90 | 595 เมกะไบต์/วินาที | 860 เมกะไบต์/วินาที | |
เอฟเอสอี | 1.91 | 330 เมกะไบต์/วินาที | 460 เมกะไบต์/วินาที | |
ซลิบ | 1.90 | 255 เมกะไบต์/วินาที | 250 เมกะไบต์/วินาที | |
โพรบา02 | ||||
ฮัฟ0 | 1.13 | 525 เมกะไบต์/วินาที | 555 เมกะไบต์/วินาที | |
เอฟเอสอี | 1.13 | 325 เมกะไบต์/วินาที | 445 เมกะไบต์/วินาที | |
ซลิบ | 1.13 | 180 เมกะไบต์/วินาที | 210 เมกะไบต์/วินาที |
จากการออกแบบ Huffman ไม่สามารถทำลายขีดจำกัด "1 บิตต่อสัญลักษณ์" ได้ ดังนั้นจึงสูญเสียประสิทธิภาพในการแจกแจงแบบบีบ เช่น Proba80
FSE ไม่มีข้อจำกัดดังกล่าว และประสิทธิภาพการบีบอัดยังคงใกล้เคียงกับขีดจำกัดของ Shannon ในทุกสถานการณ์ อย่างไรก็ตาม ความแม่นยำนี้ไม่จำเป็นเสมอไป และการแจกแจงแบบบีบอัดน้อยกว่าแสดงความแตกต่างเพียงเล็กน้อยกับ Huffman ในทางกลับกัน Huff0 มอบความได้เปรียบด้านความเร็วมหาศาล
ยินดีและสนับสนุนการมีส่วนร่วมภายนอก สาขา "หลัก" มีไว้เพื่อโฮสต์การเผยแพร่ที่เสถียรเท่านั้น สาขา "dev" เป็นสาขาที่รวมการสนับสนุนทั้งหมดเข้าด้วยกัน หากคุณต้องการเสนอแพตช์ โปรดส่งไปที่สาขา "dev" หรือสาขาฟีเจอร์เฉพาะ ไม่อนุญาตให้กระทำการโดยตรงกับ "ต้นแบบ"