Facebook เปิดตัว Zstandard อัลกอริทึมบีบอัดข้อมูลที่เร็วกว่า Gzip 3-5 เท่า

by mk
12 September 2016 - 06:01

อัลกอริทึมการบีบอัดข้อมูลที่ได้รับความนิยมในปัจจุบันคือ Deflate ซึ่งใช้กับฟอร์แมตตระกูล zip, gzip, zlib กันมาช้านาน จุดเด่นของอัลกอริทึมนี้คือมีจุดสมดุลระหว่างความเร็วกับประสิทธิภาพในการบีบอัด อย่างไรก็ตาม อัลกอริทึมนี้อาจเริ่มล้าสมัยไปแล้วเมื่อเทียบกับยุคปัจจุบันที่ประสิทธิภาพของซีพียูดีขึ้นมาก

ที่ผ่านมา มีคนพยายามสร้างอัลกอริทึมบีบอัดข้อมูลแบบใหม่ๆ แต่อัลกอริทึมเหล่านี้มีข้อจำกัดที่แตกต่างกัน เช่น lz4 เน้นความเร็วแต่บีบอัดได้น้อย ในขณะที่ xz มีอัตราส่วนการบีบอัดมากแต่ทำงานช้า

ล่าสุด Facebook พัฒนาอัลกอริทึมตัวใหม่ชื่อ Zstandard 1.0 (ตัวย่อ zstd) ที่ตอบโจทย์ทั้งสองทาง

จุดเด่นของ Zstandard คือเหนือกว่าทั้งเรื่องอัตราการบีบอัดและความเร็ว

  • ถ้าเลือกอัตราส่วนการบีบอัดของ zstd ให้ใกล้เคียงกับ zlib/gzip จะมีความเร็วในการบีบอัด (ทั้งฝั่งบีบอัด compress และฝั่งคลาย decompress) ดีกว่ากันมาก เฉลี่ยแล้วประมาณ 3-5 เท่าตามแต่ละกรณี
  • ถ้าเลือกความเร็วการบีบอัดเท่ากัน zstd จะได้ขนาดไฟล์เล็กกว่า 10-15%
  • ความเร็วฝั่งการขยายไฟล์ (decompress) เพิ่มขึ้นจาก zlib ถึง 2 เท่า ที่ทุกระดับการบีบอัด และบางครั้งอาจทำได้สูงถึง 3 เท่า

จุดเด่นอีกอย่างของ zstd คือระดับ (level) ของการบีบอัด เพื่อให้ผู้ใช้งานเลือกได้ว่าจะเน้นความเร็วหรือเน้นขนาด อัลกอริทึมตัวเก่าอย่าง zlib มีให้เลือก 9 ระดับ ในขณะที่ zstd มีให้เลือกถึง 22 ระดับ รองรับงานได้หลากหลายกว่า

zstd เป็น "อัลกอริทึม" ที่สามารถนำไปใช้ได้หลากหลาย ตอนนี้ Facebook เปิดซอร์สโค้ดตัวไลบรารีในภาษา C ไว้บน GitHub ใครสนใจก็ลองไปดาวน์โหลดมาเล่นกันได้ ถ้า zstd ไปได้สวย อนาคตเราคงเริ่มเห็นการใช้งานในรูปแบบอื่นๆ กันต่อไป ตอนนี้เริ่มมีคนดัดแปลง 7-zip ให้ทำงานกับ Zstandard ได้แล้ว

ที่มา - Zstandard, Facebook Code

Blognone Jobs Premium