เกิดอะไรขึ้นกับ bzip1


40

bzip2 เป็นมาตรฐานอย่างแท้จริงสำหรับการบีบอัดที่ค่อนข้างแข็งแกร่งตลอดหลายปีที่ผ่านมา ฉันพิมพ์bzip2คำสั่งหลายพันครั้งแล้วซึ่งทำให้ฉันสงสัย - เกิดอะไรขึ้นกับ bzip หรือ bzip1 Google ดูเหมือนจะไม่บอกอะไรมากมายเกี่ยวกับเรื่องนี้และดูเหมือนว่าอาจเป็นบทเรียนประวัติศาสตร์ที่น่าสนใจ

คำตอบ:


32

ดูเหมือนว่าต้นฉบับbzipถูกดึงมาประมาณปี 1998 เนื่องจากปัญหาสิทธิบัตรด้วยการบีบอัดเลขคณิตที่ใช้ในการขุดเล็กน้อย (จริงๆอ่านวิกิพีเดียเท่านั้น) เปิดลิงค์ที่เก็บถาวรไปยังbzip2เว็บไซต์จากรอบเวลานี้

นี่คือส่วนรายละเอียดที่เกี่ยวข้องนี้และความแตกต่างอื่น ๆ :

เกี่ยวข้องกับข้อเสนอก่อนหน้าของคุณอย่างไร (bzip-0.21)

bzip2 เป็นเวอร์ชั่น 0.21 ที่เขียนใหม่และปรับโครงสร้างใหม่ มันดูคล้ายกันค่อนข้างเผินๆ แต่เขียนใหม่เกือบทั้งหมด (หลายครั้ง :-) ความแตกต่างที่สำคัญคือ:

  • สิทธิบัตรฟรี! (ฉันหวังว่าดูคำสั่งด้านบน) bzip-0.21 ใช้การเข้ารหัสทางเลขคณิต bzip2 ใช้การเข้ารหัส Huffman ซึ่งโดยทั่วไปถือว่าไม่เป็นปัญหาจากจุดยืนสิทธิบัตร ทั้งสองโปรแกรมขึ้นอยู่กับการแปลง Burrows-Wheeler แต่เพื่อความรู้ที่ดีที่สุดของฉันนั่นไม่ใช่การจดสิทธิบัตร

  • เร็วขึ้นโดยเฉพาะอย่างยิ่งเมื่อคลายการบีบอัด bzip2 คลายการบีบอัดมากกว่า 50% เร็วกว่า 0.21 ส่วนใหญ่เป็นเพราะการใช้รหัส Huffman ฉันได้ปรับปรุงความเร็วการบีบอัดด้วยแม้ว่าจะไม่มากก็ตาม - บางทีมันอาจบีบอัดเร็วกว่า 0.21 ถึง 30%

  • การกู้คืนจากข้อผิดพลาดของสื่อ โปรแกรมทั้งสองบีบอัดข้อมูลในบล็อกตามค่าเริ่มต้นความยาว 900k ด้วย bzip2 แต่ละบล็อกจะถูกจัดการอย่างอิสระแยกกันดำเนินการตรวจสอบของตัวเองและคั่นด้วยลำดับ 48 บิต ดังนั้นหากคุณมีไฟล์บีบอัดที่เสียหาย bzip2 สามารถแยกบล็อกที่ถูกบีบอัดตรวจสอบว่าไฟล์ใดที่ไม่เสียหายและแตกไฟล์เหล่านั้น

  • โหมดทดสอบ คุณสามารถทดสอบความสมบูรณ์ของไฟล์บีบอัดได้โดยไม่ต้องแตกไฟล์ ฉันควรจะใส่มันใน 0.21 จริง ๆ แต่ขี้เกียจเกินไป (+ เผาไหม้ด้วยการแฮ็คเมื่อฉันเปิดตัว)

  • จัดการไฟล์ซ้ำ ๆ ได้ดีกว่ามาก ไฟล์ดังกล่าวเป็นกรณีที่เลวร้ายที่สุดสำหรับคอมเพรสเซอร์การเรียงลำดับบล็อกใด ๆ bzip2 ทำงานเร็วกว่า 0.21 เท่าสำหรับไฟล์ดังกล่าว

  • รองรับเครื่องจักรขนาดเล็ก bzip2 สามารถคลายการบีบอัดไฟล์ใด ๆ ที่สร้างขึ้นใน 2300k ซึ่งหมายความว่าคุณสามารถคลายการบีบอัดไฟล์บนเครื่องขนาด 4 เมกะไบต์ หน่วยความจำสูงสุดที่ใช้ระหว่างการบีบอัดจะลดลงประมาณ 900k เมื่อเทียบกับ 0.21 เป็นประมาณ 6400k

  • การจัดการธงที่ดีขึ้น โดยเฉพาะอย่างยิ่งสนับสนุนการตั้งค่าสถานะแบบยาว (- like --this) ซึ่งทำให้ใช้งานง่ายขึ้น

  • ข้อความเริ่มต้นหนึ่งบรรทัดที่พิมพ์ 0.21 หายไป นี่เป็นฟีเจอร์ที่เกี่ยวกับการร้องเรียนมากที่สุดของ 0.21 มันยังบักฉันทุกวันนี้

ฉันไม่ได้แจกจ่าย 0.21 อีกต่อไปเพราะการทำเช่นนั้นจะเป็นการตอกย้ำปัญหาที่เกิดขึ้นกับสิทธิบัตรซึ่งทำให้มั่นใจได้ว่าโปรแกรมจะไม่ถูกใช้อย่างกว้างขวาง มันเป็นความอัปยศเพราะเป็นโปรแกรมที่มีประโยชน์และผู้คนจำนวนมากดูเหมือนจะชอบ หากคุณใช้ 0.21 แล้วโปรดอัปเกรดเป็น bzip2 ฉันไม่สามารถทำให้ bzip2 สามารถขยายไฟล์. bz 0.21 ได้เนื่องจากจะทำให้การออกกำลังกายแบบหลีกเลี่ยงสิทธิบัตรนั้นไร้ประโยชน์ ฉันรู้ว่าการเปลี่ยนรูปแบบไฟล์นั้นเจ็บปวด จากนี้ไปฉันจะลองและทำการเปลี่ยนแปลงเพิ่มเติมในวิธีที่เข้ากันได้ย้อนหลัง

นี่เป็นลิงก์ไปยังbzipซอร์สโค้ดสำหรับคลายการบีบอัดสำหรับทุกคนที่ต้องการเล่นด้วย


5
ฉันอาจมี bzip ดั้งเดิมในคลังข้อมูลสำรองบางแห่ง ฉันเคยใช้มันอย่างกว้างขวางและพบว่าสวิตช์เป็น bzip2 น่ารำคาญ สำหรับไฟล์ส่วนใหญ่ bzip ได้อัตราส่วนการอัดที่ดีกว่า
จูลส์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.