ไฟล์ LZMA คืออะไร??
ไฟล์ที่มีนามสกุล .lzma เป็นไฟล์เก็บถาวรแบบบีบอัดที่สร้างขึ้นโดยใช้วิธีการบีบอัด LZMA (Lempel-Ziv-Markov chain Algorithm) ส่วนใหญ่พบ/ใช้งานบนระบบปฏิบัติการ Unix และคล้ายกับอัลกอริธึมการบีบอัดอื่นๆ เช่น ZIP สำหรับย่อขนาดไฟล์ LZMA เป็นรูปแบบไฟล์ดั้งเดิม ซึ่งกำลังถูกแทนที่ด้วยรูปแบบ .xz ประเภท MIME ของรูปแบบ .lzma คือ `application/x-lzma’ รูปแบบไฟล์นี้ออกแบบโดย Igor Pavlov สำหรับใช้ใน LZMA SDK
รูปแบบไฟล์ LZMA
ไฟล์ LZMA ประกอบด้วยสองส่วนหลัก:
- ส่วนหัว
- ข้อมูลที่บีบอัด
ส่วนหัว LZMA
ไฟล์ LZMA มีส่วนหัว 13 ไบต์ที่ตามด้วยข้อมูลที่บีบอัด LZMA ส่วนหัวของ LZMA ประกอบด้วย:
- คุณสมบัติ
- ขนาดพจนานุกรม
- ขนาดที่ไม่บีบอัด
คุณสมบัติส่วนหัวของ LZMA
เขตข้อมูลคุณสมบัติประกอบด้วยสามคุณสมบัติ ตัวย่อจะอยู่ในวงเล็บ ตามด้วยช่วงค่าของคุณสมบัติ สนามประกอบด้วย
- จำนวนบิตบริบทตามตัวอักษร (lc, [0, 8]);
- จำนวนบิตตำแหน่งตามตัวอักษร (lp, [0, 4]); และ
- จำนวนตำแหน่งบิต (pb, [0, 4])
ขนาดพจนานุกรม LZMA
ค่านี้ถูกจัดเก็บเป็นจำนวนเต็มเอนเดียนเล็กน้อยแบบ 32 บิตที่ไม่ได้ลงนาม โดยมีค่าตั้งแต่ 2^n และ 2^n + 2^(n-1) LZMA Utils สามารถคลายไฟล์ที่มีขนาดพจนานุกรมใดก็ได้
ขนาดที่ไม่บีบอัด
ขนาดที่ไม่บีบอัดจะถูกจัดเก็บเป็นจำนวนเต็ม endian น้อยแบบ 64 บิตที่ไม่ได้ลงนาม ค่าพิเศษ 0xFFFF_FFFF_FFFF_FFFF บ่งชี้ว่าไม่รู้จักขนาดที่ไม่บีบอัด ค่าจะแสดงด้วย End of Payload Marker (*) หากไม่ทราบขนาดที่ไม่บีบอัด