ไฟล์ LZ4 คืออะไร??
ไฟล์ที่มีนามสกุล .lz4 คือไฟล์เก็บถาวรแบบบีบอัดที่สร้างขึ้นด้วยแอปพลิเคชัน/ยูทิลิตี้ที่รองรับการบีบอัด LZ4 อัลกอริทึม LZ4 มุ่งเน้นไปที่การแลกเปลี่ยนระหว่างความเร็วและอัตราส่วนการบีบอัด ไฟล์เก็บถาวร LZ4 ที่ถูกบีบอัดสามารถสร้างขึ้นได้โดยใช้ยูทิลิตีบรรทัดคำสั่ง LZ4 และสามารถคลายการบีบอัดได้โดยใช้ยูทิลิตีบรรทัดคำสั่งเดียวกัน
รูปแบบไฟล์ LZ4
รูปแบบไฟล์ LZ4 ซึ่งใช้อัลกอริธึมการบีบอัด LZ4 นั้นไม่ขึ้นอยู่กับประเภทของ CPU ระบบปฏิบัติการ ระบบไฟล์ และชุดอักขระ เหมาะสำหรับการบีบอัดไฟล์และการบีบอัดแบบสตรีมมิ่งโดยใช้อัลกอริธึม LZ4 การนำรูปแบบ LZ4 ไปใช้ครั้งแรกนั้นดำเนินการในภาษา C โดย Yann Collet ในปี 2011 และพร้อมใช้งานสำหรับการอ้างอิงของนักพัฒนาบน Github .
รูปแบบเฟรม LZ4
โครงสร้างทั่วไปของรูปแบบไฟล์ LZ4 แสดงไว้ด้านล่าง
MagicNb | ฉ. คำอธิบาย | บล็อก | (…) | EndMark | ค. เช็คซัม |
---|---|---|---|---|---|
4 ไบต์ | 3-15 ไบต์ | 4 ไบต์ | 0-4 ไบต์ |
เลขมหัศจรรย์
4 ไบต์ รูปแบบลิตเติ้ลเอนเดียน ค่า : 0x184D2204
คำอธิบายเฟรม
คำอธิบายเฟรมประกอบด้วย 3 t0 15 ไบต์และเป็นส่วนที่สำคัญที่สุดของข้อมูลจำเพาะ เมื่อรวมกันแล้ว ฟิลด์ Magic_Number และ Frame_Descriptor จะเรียกว่า LZ4 Frame Header และขนาดของฟิลด์จะแตกต่างกันไประหว่าง 7 ถึง 19 ไบต์ ดังที่แสดงด้านล่าง
FLG | บีดี | (ขนาดเนื้อหา) | (รหัสพจนานุกรม) | HC |
---|---|---|---|---|
1 ไบต์ | 1 ไบต์ | 0 - 8 ไบต์ | 0 - 4 ไบต์ | 1 ไบต์ |
บล็อกข้อมูล
แต่ละบล็อกข้อมูลเป็นไปตามลำดับต่อไปนี้
ขนาดบล็อก | ข้อมูล | (บล็อกเช็คซัม) |
---|---|---|
4 ไบต์ | 0 - 4 ไบต์ |
EndMark
การไหลของบล็อกจะสิ้นสุดลงเมื่อบล็อกข้อมูลสุดท้ายตามด้วยค่า 32 บิต 0x00000000
การตรวจสอบเนื้อหา
Content_Checksum ตรวจสอบความถูกต้องของเนื้อหาที่ถูกถอดรหัสอย่างถูกต้อง และดำเนินการโดยใช้ผลลัพธ์ของอัลกอริทึม xxHash-32 ตรวจสอบผลลัพธ์ของการส่งบล็อคทั้งหมดสำเร็จตามลำดับที่ถูกต้องและไม่มีข้อผิดพลาดใดๆ