นามสกุลไฟล์ .BZ2

ไฟล์ที่มีนามสกุล .BZ2 จะถูกบีบอัดโดยใช้อัลกอริธึม BZIP2 เครื่องมือโอเพ่นซอร์สฟรีนี้พัฒนาโดย Julian Seward มีอัตราส่วนการบีบอัดที่น่าประทับใจ ทำให้เหมาะสำหรับการย่อขนาดไฟล์หรือชุดข้อมูลขนาดใหญ่ ต่างจากรูปแบบไฟล์เก็บถาวรเช่น ZIP BZIP2 จะบีบอัดไฟล์เดียวเท่านั้น โชคดีที่การสร้างและแตกไฟล์ BZ2 นั้นทำได้ง่ายด้วยโปรแกรมเก็บไฟล์ส่วนใหญ่ที่รองรับรูปแบบนี้ ประสิทธิภาพของ BZIP2 ทั้งในด้านการบีบอัดและคลายการบีบอัดทำให้เป็นตัวเลือกยอดนิยมสำหรับการเผยแพร่ซอฟต์แวร์ การสำรองข้อมูล และการส่งข้อมูลทางอินเทอร์เน็ต

เกี่ยวกับเอกสารเก่า BZIP2

เช่นเดียวกับ GZIP BZ2 ทำหน้าที่เป็นตัวบีบอัดข้อมูล แต่ไม่มีความสามารถรอบด้านของโปรแกรมเก็บถาวร เช่น TAR หรือ ZIP ต่างจากรูปแบบเหล่านี้ BZIP2 ไม่รองรับการบีบอัดไฟล์หลายไฟล์ให้เป็นไฟล์เก็บถาวรเดียว และไม่มีคุณสมบัติการเข้ารหัสหรือการแยกไฟล์เก็บถาวร ตามธรรมเนียมของ UNIX โดยทั่วไปแล้ว การเก็บถาวรจะได้รับการจัดการแยกกัน โดยที่ BZIP2 ใช้สำหรับการบีบอัดเท่านั้น อย่างไรก็ตาม การบีบอัดข้อมูลด้วย BZIP2 มีประสิทธิภาพที่โดดเด่น โดยเฉพาะอย่างยิ่งเมื่อเทียบกับความเร็วการบีบอัดที่ช้ากว่า เพื่อแก้ไขความไม่สมดุลนี้ เวอร์ชันแก้ไขที่เรียกว่า PBZIP2 จึงถือกำเนิดขึ้นในปี 2546 โดยใช้ประโยชน์จากมัลติเธรดเพื่อปรับปรุงเวลาการบีบอัดบนระบบมัลติคอร์และซีพียูสมัยใหม่อย่างมาก

.BZ2 ข้อมูลประวัติรูปแบบไฟล์เก็บถาวร

รูปแบบไฟล์ .BZ2 ที่เกี่ยวข้องกับการบีบอัด BZIP2 มีต้นกำเนิดย้อนกลับไปถึงความพยายามในการพัฒนาของ Julian Seward ในช่วงปลายทศวรรษ 1990 ภายในชุมชน UNIX ในช่วงหลายปีที่ผ่านมา อัลกอริธึมได้ผ่านการเปลี่ยนแปลงในการบำรุงรักษาหลายครั้ง โดย Micah Snyder เข้ามาเป็นผู้ดูแลในเดือนมิถุนายน 2021 นอกเหนือจากวิวัฒนาการนี้แล้ว ยังมีการปรับเปลี่ยน เช่น PBZIP2 เกิดขึ้น โดยใช้ประโยชน์จากความสามารถแบบมัลติเธรดเพื่อเพิ่มความเร็วการบีบอัดบน CPU แบบหลายตัวที่ทันสมัย และระบบมัลติคอร์ แม้จะมีความก้าวหน้าเหล่านี้ แต่หลักการสำคัญของรูปแบบ .BZ2 ยังคงมีพื้นฐานมาจากการใช้การแปลง Burrows-Wheeler การแปลงแบบย้ายไปข้างหน้า และเทคนิคการเขียนโค้ดของ Huffman อย่างมีประสิทธิภาพ

โครงสร้างของไฟล์เก็บถาวร BZIP2

BZIP2 ใช้การบีบอัดแบบบล็อก โดยทั่วไปจะบีบอัดข้อมูลเป็นบล็อกขนาดตั้งแต่ 100 ถึง 900 kB ใช้การแปลง Burrows–Wheeler เพื่อแปลงลำดับอักขระที่ซ้ำกันให้เป็นสตริงที่มีตัวอักษรเหมือนกัน ตามด้วยการแปลงแบบเลื่อนไปด้านหน้าและการเข้ารหัสของ Huffman โดยเฉพาะอย่างยิ่ง bzip รุ่นก่อนใช้การเข้ารหัสทางคณิตศาสตร์แทน Huffman สำหรับการบีบอัด

วิธีการบีบอัด BZIP2

น่าเสียดายที่ BZIP2 ขาดเทคนิคการบีบอัดข้อมูลที่หลากหลายซึ่งพบได้ในซอฟต์แวร์บางรุ่น แต่กลับอาศัยวิธีการบีบอัดข้อมูลที่สร้างขึ้นอย่างพิถีพิถันเพียงอย่างเดียว เทคนิคนี้มีลักษณะโดย:

  • การเรียงลำดับบล็อก: BZIP2 แบ่งข้อมูลออกเป็นบล็อกเล็กๆ สำหรับการบีบอัดแต่ละรายการ
  • การแปลง Burrows-Wheeler: ขั้นตอนนี้จะจัดเรียงข้อมูลภายในแต่ละบล็อกใหม่เพื่อปรับปรุงประสิทธิภาพการบีบอัดโดยการระบุรูปแบบที่ซ้ำกัน
  • การย้อนกลับ: จากนั้นอัลกอริทึมจะวนซ้ำข้อมูลที่แปลงแล้วไปข้างหลัง โดยใช้การเข้ารหัสของ Huffman เพื่อการบีบอัดเพิ่มเติม
  • การเข้ารหัสความยาวรัน: เทคนิคนี้จะระบุและเข้ารหัสอักขระที่ซ้ำกันภายในบล็อกข้อมูลเพื่อประหยัดพื้นที่เพิ่มเติม

การดำเนินการที่รองรับการเก็บถาวร BZIP2

Aspose.ZIP อำนวยความสะดวกในการดำเนินการต่างๆ กับไฟล์เก็บถาวร .BZ2 รวมถึงการแตกไฟล์ การบีบอัด การบรรจุไฟล์ การผสาน และการแปลงไฟล์เก็บถาวร ผู้ใช้สามารถดึงข้อมูลจากไฟล์เก็บถาวร .BZ2, บีบอัดไฟล์, รวมไฟล์เก็บถาวร และแปลงระหว่างรูปแบบไฟล์เก็บถาวรต่างๆ ได้อย่างราบรื่น นอกจากนี้ Aspose.ZIP ยังรองรับการแยกไฟล์เก็บถาวร .BZ2 ขนาดใหญ่ออกเป็นหลายวอลุ่มเพื่อการจัดการที่ดีขึ้นและประสิทธิภาพการจัดเก็บข้อมูล

BZIP2 - โครงสร้างภายใน

แม้ว่าจะไม่มีข้อกำหนดอย่างเป็นทางการสำหรับ bzip2 แต่ข้อกำหนดที่ไม่เป็นทางการได้มาจากวิศวกรรมย้อนกลับของการดำเนินการอ้างอิง โดยพื้นฐานแล้ว สตรีม .bz2 เริ่มต้นด้วยส่วนหัวที่กระชับขนาด 4 ไบต์ ตามด้วยบล็อกที่บีบอัดจำนวนเท่าใดก็ได้ และสรุปได้อย่างราบรื่นด้วยเครื่องหมายจุดสิ้นสุดสตรีมที่มีการตรวจสอบ CRC 32 บิตสำหรับสตรีมข้อความธรรมดาที่ประมวลผลทั้งหมด โดยเฉพาะอย่างยิ่ง บล็อกที่บีบอัดนั้นถูกจัดแนวให้อยู่ในระดับบิต โดยไม่จำเป็นต้องมีการเสริมเพิ่มเติม โครงสร้างที่ได้รับการปรับปรุงนี้เน้นย้ำถึงประสิทธิภาพและความเรียบง่ายของรูปแบบการบีบอัด bzip2
หลังจากผ่านการบีบอัด RLE ในระยะเริ่มต้น (ดูด้านบน) ความยาวสูงสุดของข้อความที่ไม่มีการบีบอัดที่สามารถใส่ลงในบล็อกขนาด 900 KB เดียวใน bzip2 ได้เท่ากับ ประมาณ 46 MB (45,899,236 ไบต์) สถานการณ์นี้เกิดขึ้นเมื่อข้อความที่ไม่มีการบีบอัดทั้งหมดประกอบด้วยค่าที่ซ้ำกันทั้งหมด (ส่งผลให้ไฟล์ .bz2 มีขนาดเพียง 46 ไบต์) แม้แต่ไฟล์ที่มีขนาดเล็กเพียง 40 ไบต์ ก็สามารถทำได้โดยการใช้ข้อมูลอินพุตที่ประกอบด้วยค่าทั้งหมด 251 ส่งผลให้มีอัตราการบีบอัดที่น่าประหลาดใจที่ 1,147,480.9:1 ความสำเร็จอันน่าทึ่งนี้แสดงให้เห็นถึงประสิทธิภาพอันน่าทึ่งและความอเนกประสงค์ของอัลกอริธึมการบีบอัด bzip2

BZIP2 - โครงสร้างภายใน

ความนิยมของการเก็บถาวรและการสนับสนุน BZIP2

ไฟล์เก็บถาวร .BZ2 แม้ว่าจะไม่แพร่หลายเท่ารูปแบบ .ZIP หรือ .7z แต่ยังคงพบยูทิลิตี้ได้ในแอปพลิเคชันเฉพาะ โดยเฉพาะในสภาพแวดล้อม Unix และ Linux พวกเขามีความสามารถในการบีบอัดที่แข็งแกร่งและได้รับการสนับสนุนอย่างดีในระบบปฏิบัติการและเครื่องมือซอฟต์แวร์ต่างๆ แม้จะมีสถานะเฉพาะ แต่ไฟล์เก็บถาวร BZIP2 ยังคงเป็นตัวเลือกที่เชื่อถือได้สำหรับการแจกจ่ายซอฟต์แวร์บรรจุภัณฑ์และการสำรองข้อมูล มีการรองรับไฟล์ .BZ2 อย่างแพร่หลาย โดยมีเครื่องมือเก็บถาวรและภาษาสคริปต์มากมายที่มีฟังก์ชันในตัวสำหรับการสร้างและแตกไฟล์ อย่างไรก็ตาม เมื่ออัลกอริธึมการบีบอัดรุ่นใหม่เกิดขึ้น ความนิยมและการใช้งานไฟล์เก็บถาวร BZIP2 อาจยังคงมีการพัฒนาต่อไป

ตัวอย่างการใช้ BZIP2

Aspose.ZIP ยกระดับการบีบอัด Bzip2 ขึ้นไปอีกระดับ ด้วยการใช้ประโยชน์จากพลังการประมวลผลแบบขนานของ CPU ของคุณ Aspose.ZIP สามารถแบ่งปริมาณงานการบีบอัดออกเป็นหลายคอร์ได้ ส่งผลให้เวลาในการบีบอัดเร็วขึ้นอย่างเห็นได้ชัด โดยเฉพาะชุดข้อมูลขนาดใหญ่ การเปิดใช้งานการบีบอัดแบบขนานด้วย Aspose.ZIP นั้นง่ายดายพอๆ กับการตั้งค่าคุณสมบัติ CompressionThreads ให้เป็นค่าที่มากกว่า 1

Parallel Compression for BZ2 Files

This simple configuration unlocks the full potential of your multi-core processor, dramatically accelerating your Bzip2 compression tasks.

using (Bzip2Archive archive = new Bzip2Archive())
{
    archive.SetSource("data.bin");
    archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads =  Environment.ProcessorCount });
}

Bzip2SaveOptions.CompressionThreads property

This setting controls the number of compression threads. When set to a value greater than 1, multithreading compression is activated. Read more .

    public int CompressionThreads { get; set; }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

ข้อมูลเพิ่มเติมเกี่ยวกับไฟล์เก็บถาวร BZIP2

มีคนถาม

1. BZIP2 ปลอดภัยหรือไม่? มันสามารถเข้ารหัสไฟล์ได้หรือไม่?

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

2. ข้อดีและข้อจำกัดของการใช้การบีบอัด BZIP2 คืออะไร

ข้อได้เปรียบหลักของ BZIP2 คือความสามารถในการบรรลุอัตราส่วนการบีบอัดสูง แต่อาจต้องใช้ทรัพยากรและเวลาในการคำนวณมากกว่าเมื่อเปรียบเทียบกับอัลกอริธึมอื่นๆ นอกจากนี้ ไฟล์เก็บถาวร BZIP2 ไม่รองรับการจัดเก็บหลายไฟล์ใน ไฟล์บีบอัดไฟล์เดียว

3. BZIP2 และรูปแบบไฟล์เก็บถาวรเช่น ZIP หรือ TAR แตกต่างกันอย่างไร

นี่เป็นสิ่งสำคัญเนื่องจาก BZIP2 บีบอัดไฟล์เดียวเท่านั้น ซึ่งแตกต่างจาก ZIP และ TAR ที่สามารถเก็บถาวรหลายไฟล์ไว้ในแพ็คเกจเดียว เพื่อแก้ไขข้อจำกัดนี้ คุณสามารถใช้ Aspose.ZIP API เพื่อ เพิ่มไฟล์ลงในไฟล์ ZIP โดยไม่มีการบีบอัด