รูปแบบไฟล์เก็บถาวร LZ
LZ เป็นรูปแบบไฟล์เก็บถาวรที่ออกแบบมาเพื่อการบีบอัดข้อมูลอย่างมีประสิทธิภาพ โดยส่วนใหญ่จะใช้ในสภาพแวดล้อมที่การลดพื้นที่จัดเก็บข้อมูลและการเพิ่มประสิทธิภาพการถ่ายโอนข้อมูลเป็นสิ่งสำคัญ รูปแบบนี้ใช้ประโยชน์จากอัลกอริธึมการบีบอัด Lempel-Ziv (LZ) โดยขึ้นชื่อในด้านความสามารถในการบีบอัดข้อมูลปริมาณมากโดยมุ่งเน้นที่ความเร็วและประสิทธิภาพของทรัพยากร ไฟล์เก็บถาวร LZ ได้รับความนิยมเป็นพิเศษในสถานการณ์ที่ต้องใช้รอบการบีบอัดและคลายการบีบอัดที่รวดเร็ว ทำให้เหมาะสำหรับทั้งการกระจายซอฟต์แวร์และการประมวลผลข้อมูลแบบเรียลไทม์
ข้อมูลเอกสารเก็บถาวร LZ ทั่วไป
ไฟล์เก็บถาวร LZ คือรูปแบบไฟล์บีบอัดที่ใช้อัลกอริทึม Lempel-Ziv เป็นวิธีการบีบอัดหลัก ไฟล์เก็บถาวร LZ เป็นที่รู้จักในเรื่องความเร็วและความเรียบง่าย จัดลำดับความสำคัญของการบีบอัดที่มีประสิทธิภาพมากกว่าอัตราส่วนการบีบอัดสูงสุด ทำให้เหมาะสำหรับการใช้งานที่ต้องการการบีบอัดและคลายการบีบอัดอย่างรวดเร็ว เช่น การประมวลผลข้อมูลแบบเรียลไทม์หรือระบบฝังตัว นามสกุล .lz เป็นนามสกุลที่พบบ่อยที่สุดสำหรับไฟล์บีบอัด LZ ไฟล์เก็บถาวร Hile LZ ให้การบีบอัดที่รวดเร็ว ข้อจำกัดในแง่ของอัตราส่วนการบีบอัดและข้อมูลเมตาทำให้ไม่เหมาะสมสำหรับการเก็บถาวรชุดข้อมูลขนาดใหญ่หรือการรักษาคุณลักษณะของไฟล์ รูปแบบการบีบอัดข้อมูลสมัยใหม่ เช่น ZIP, gzip และ XZ ได้เข้ามาแทนที่ LZ ในหลายแอปพลิเคชันเนื่องจากคุณสมบัติและประสิทธิภาพที่ได้รับการปรับปรุง
ประวัติหอจดหมายเหตุ LZ
- พ.ศ. 2520: รากฐานสำหรับการบีบอัด LZ ถูกวางโดยนักวิทยาศาสตร์คอมพิวเตอร์ชาวอิสราเอล Abraham Lempel และ Jacob Ziv ซึ่งเป็นผู้แนะนำอัลกอริทึม LZ77 นี่เป็นอัลกอริธึมแรกที่นำมาใช้กันอย่างแพร่หลายสำหรับการบีบอัดข้อมูลแบบไม่สูญเสียข้อมูล โดยใช้หน้าต่างเลื่อนเพื่อบีบอัดรูปแบบข้อมูลที่ซ้ำกัน
- พ.ศ. 2521: Lempel และ Ziv เปิดตัวอัลกอริธึม LZ78 ซึ่งเป็นการปรับปรุงจาก LZ77 ซึ่งใช้วิธีการที่ใช้พจนานุกรม อัลกอริธึมนี้เพิ่มประสิทธิภาพการบีบอัดเพิ่มเติมและเป็นแรงบันดาลใจให้กับเทคนิคการบีบอัดที่ตามมามากมาย 1984: Terry Welch สร้างขึ้นจากอัลกอริธึม LZ78 เพื่อพัฒนา LZW (Lempel-Ziv-Welch) ซึ่งได้รับความนิยมจากการใช้งานในคำสั่ง Unix compress และรูปแบบภาพ GIF LZW เป็นหนึ่งในอัลกอริธึมการบีบอัดที่ใช้กันอย่างแพร่หลายในการใช้งานเชิงพาณิชย์
- ทศวรรษ 1990: อัลกอริธึม LZ ที่หลากหลายยังคงมีการพัฒนาอย่างต่อเนื่อง ซึ่งนำไปสู่การพัฒนาวิธีการบีบอัดขั้นสูงมากขึ้น เช่น LZMA (อัลกอริธึมลูกโซ่ Lempel-Ziv-Markov) ที่ใช้ในรูปแบบ เช่น 7z และ XZ ซึ่งมีอัตราส่วนกำลังอัดที่สูงกว่า ยุค 2000: เทคนิคการบีบอัดที่ใช้ LZ โดยเฉพาะ LZW ได้ถูกฝังอยู่ในรูปแบบไฟล์และโปรโตคอลมากมาย แม้ว่าบางรูปแบบ เช่น GIF จะประสบปัญหาที่เกี่ยวข้องกับสิทธิบัตรที่มีอิทธิพลต่อการใช้งาน ยุค 2010: อัลกอริธึมที่ใช้ LZ โดยเฉพาะ LZMA และเวอร์ชันต่างๆ ยังคงเป็นรากฐานในซอฟต์แวร์บีบอัดสมัยใหม่ โดยรักษาสมดุลระหว่างประสิทธิภาพการบีบอัดสูงกับประสิทธิภาพที่เหมาะสม ยังคงใช้กันอย่างแพร่หลายในการจำหน่ายซอฟต์แวร์ การเก็บถาวร และการจัดเก็บข้อมูล
- 2020: รูปแบบ LZ ยังคงเป็นตัวเลือกที่เชื่อถือได้และมีประสิทธิภาพสำหรับการบีบอัด โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมที่ให้ความสำคัญกับความเร็วและความเรียบง่าย
ลักษณะของไฟล์เก็บถาวร LZ
รูปแบบไฟล์เก็บถาวร LZ ยึดตามโครงสร้างที่ไม่ซับซ้อน โดยให้ความสำคัญกับความเร็วมากกว่าฟีเจอร์ที่กว้างขวาง ในที่นี้ โครงสร้างพื้นฐานของไฟล์เก็บถาวร LZ มีความสำคัญสำหรับการทำงานกับไฟล์บีบอัดเก่า และการประเมินวิวัฒนาการของเทคโนโลยีการบีบอัด
- การบีบอัดไฟล์เดียว: โดยทั่วไปจะบีบอัดไฟล์เดียวลงในไฟล์เก็บถาวร .lz
- อัลกอริทึม LZW: ใช้วิธีการบีบอัด Lempel-Ziv-Welch
- ขาดข้อมูลเมตา: มีข้อมูลเมตาที่จำกัดหรือไม่มีเลยเกี่ยวกับไฟล์ต้นฉบับที่ถูกจัดเก็บไว้ในไฟล์เก็บถาวร
- ความเรียบง่าย: โครงสร้างที่ตรงไปตรงมาของรูปแบบช่วยให้เกิดการบีบอัดและคลายการบีบอัดที่รวดเร็ว
วิธีการบีบอัดไฟล์เก็บถาวร LZ
รูปแบบไฟล์เก็บถาวร LZ ใช้อัลกอริทึม Lempel-Ziv (LZ) ซึ่งมีชื่อเสียงในด้านความเรียบง่ายและรวดเร็ว ทำให้เป็นตัวเลือกที่ต้องการในสถานการณ์ที่การบีบอัดและคลายการบีบอัดอย่างรวดเร็วมีความสำคัญ ด้านล่างนี้เป็นภาพรวมของวิธีการบีบอัดที่เกี่ยวข้องกับ LZ:
- อัลกอริธึม Lempel-Ziv: แกนหลักของรูปแบบไฟล์เก็บถาวร LZ ขึ้นอยู่กับอัลกอริธึม LZ ซึ่งเป็นวิธีการบีบอัดแบบไม่สูญเสียข้อมูลที่ระบุและขจัดความซ้ำซ้อนในข้อมูลโดยการแทนที่ลำดับที่ซ้ำกันด้วยโค้ดที่สั้นกว่า อัลกอริธึม LZ ทำงานโดยการสร้างพจนานุกรมลำดับในขณะที่ประมวลผลข้อมูล ช่วยให้สามารถบีบอัดชุดข้อมูลขนาดใหญ่และซ้ำกันได้อย่างมีประสิทธิภาพ วิธีการนี้มีประสิทธิภาพโดยเฉพาะอย่างยิ่งในสถานการณ์ที่รูปแบบข้อมูลมีความสอดคล้องและสามารถคาดการณ์ได้
- เทคนิคหน้าต่างบานเลื่อน: โดยทั่วไปแล้ว อัลกอริธึม LZ จะใช้กลไกหน้าต่างบานเลื่อน โดยที่หน้าต่างขนาดคงที่จะเลื่อนไปเหนือสตรีมข้อมูลอินพุตเพื่อค้นหาลำดับที่ซ้ำกัน วิธีการนี้ช่วยให้อัลกอริธึมสามารถรักษาขนาดพจนานุกรมที่สามารถจัดการได้ในขณะที่ยังคงได้รับการบีบอัดที่สำคัญ หน้าต่างบานเลื่อนเป็นเครื่องมือในการสร้างสมดุลระหว่างประสิทธิภาพการบีบอัดกับการใช้หน่วยความจำ ทำให้วิธี LZ เหมาะสำหรับระบบที่มีทรัพยากรจำกัด
- การตรวจสอบผลรวมและการตรวจจับข้อผิดพลาด: แม้ว่ารูปแบบ LZ จะเน้นที่การบีบอัด แต่ก็ยังอาจรวมกลไกการตรวจสอบผลรวมขั้นพื้นฐาน เช่น CRC32 เข้าไปด้วย เพื่อให้มั่นใจถึงความสมบูรณ์ของข้อมูลที่บีบอัด การตรวจสอบเหล่านี้ช่วยตรวจจับข้อผิดพลาดที่อาจเกิดขึ้นระหว่างการจัดเก็บหรือการส่งผ่าน ทำให้มั่นใจได้ว่าข้อมูลที่คลายการบีบอัดยังคงถูกต้องและไม่เสียหาย
- การปรับปรุงเพิ่มเติม: ในการใช้งานบางอย่าง วิธีการบีบอัด LZ สามารถปรับปรุงได้ด้วยเทคนิคเพิ่มเติม เช่น การเข้ารหัสความยาวรัน (RLE) หรือการเข้ารหัสเดลต้า ซึ่งสามารถลดขนาดของข้อมูลที่บีบอัดเพิ่มเติมได้ การปรับปรุงเสริมเหล่านี้นำไปใช้กับข้อมูลบางประเภทภายในอาร์ไคฟ์ ซึ่งช่วยให้การบีบอัดเนื้อหาบางประเภทมีประสิทธิภาพมากขึ้น เช่น รูปภาพหรือโค้ดที่ปฏิบัติการได้
.lz การดำเนินการที่รองรับ
Aspose.Zip ให้การสนับสนุนที่ครอบคลุมสำหรับการทำงานกับไฟล์เก็บถาวร .lz ทำให้ง่ายต่อการจัดการไฟล์บีบอัด นี่คือสิ่งที่คุณสามารถทำได้:
- การแตกไฟล์แบบเต็ม: แยกไฟล์ทั้งหมดจากไฟล์เก็บถาวร .lz ได้อย่างง่ายดาย โดยคงความสมบูรณ์และโครงสร้างของเนื้อหาต้นฉบับ
- การแยกแบบเลือก: กำหนดเป้าหมายไฟล์เฉพาะภายในไฟล์เก็บถาวร .lz ช่วยให้สามารถกู้คืนข้อมูลได้อย่างแม่นยำหรือขยายการบีบอัดแบบเลือกตามชื่อไฟล์หรือเกณฑ์อื่น ๆ
- การบีบอัดข้อมูล: สร้างไฟล์เก็บถาวร .lz จากไฟล์และไดเร็กทอรี โดยใช้วิธีการบีบอัด LZMA2 ที่มีประสิทธิภาพเพื่อลดขนาดไฟล์ลงอย่างมาก
- การตั้งค่าการบีบอัดแบบกำหนดเอง: ปรับระดับการบีบอัดและพารามิเตอร์อื่นๆ เพื่อให้สมดุลระหว่างความเร็วการบีบอัดและขนาดไฟล์ โดยปรับแต่งกระบวนการให้ตรงกับความต้องการเฉพาะของคุณ
โครงสร้างของไฟล์ .LZ
รูปแบบไฟล์เก็บถาวร Lzip ได้รับการออกแบบโดยเน้นไปที่ประสิทธิภาพและความเร็ว โดยใช้โครงสร้างแบบเลเยอร์ที่อำนวยความสะดวกในการบีบอัดและคลายการบีบอัดอย่างรวดเร็ว ไฟล์เก็บถาวร Lzip ประกอบด้วยสมาชิกหนึ่งหรือหลายตัวที่จัดเก็บไว้ในไฟล์เก็บถาวรทีละรายการ โครงสร้างของสมาชิก Lzip ประกอบด้วยส่วนประกอบดังต่อไปนี้:
ส่วนหัวของบล็อก:
- Magic Number: ตัวระบุเฉพาะที่ส่งสัญญาณการเริ่มต้นของไฟล์เก็บถาวร Lzip เพื่อให้แน่ใจว่าไฟล์นั้นได้รับการยอมรับว่าเป็นรูปแบบ Lzip ที่ถูกต้อง
- ข้อมูลเวอร์ชัน: ระบุเวอร์ชันของ Lzip ที่ใช้ ซึ่งช่วยในการรับประกันความเข้ากันได้เพิ่มเติมกับเครื่องมือคลายการบีบอัดต่างๆ ตอนนี้มีค่าเป็น “1”
- ขนาดพจนานุกรม: ฟิลด์นี้ให้ข้อมูลเกี่ยวกับรายละเอียดของการบีบอัด LZMA ที่ใช้สำหรับบล็อกข้อมูลที่จะเกิดขึ้น
บล็อกข้อมูลที่บีบอัด:
- เพย์โหลดที่บีบอัด: แกนหลักของไฟล์เก็บถาวร LZ ส่วนนี้ประกอบด้วยสตรีมข้อมูลที่บีบอัด อัลกอริธึมลูกโซ่ Lempel-Ziv-Markov ประมวลผลข้อมูลต้นฉบับเป็นชุดรหัสที่แสดงลำดับที่ซ้ำกัน ช่วยลดขนาดไฟล์ลงอย่างมาก อัลกอริธึมการบีบอัดเดียวกันได้รับการสนับสนุนในรูปแบบ xz และ 7z
ส่วนท้ายของบล็อก:
- เช็คซัม/แฮช: มีการรวมเช็คซัม (เช่น CRC32) หรือแฮชการเข้ารหัส (เช่น SHA-256) เพื่อตรวจสอบความสมบูรณ์ของข้อมูลที่บีบอัด เพื่อให้แน่ใจว่าไฟล์เก็บถาวรจะไม่ถูกดัดแปลงหรือเสียหายระหว่างการส่งหรือการจัดเก็บ
- ขนาดข้อมูล: ขนาดของชิ้นส่วนของไฟล์ต้นฉบับที่ถูกบีบอัดในบล็อกนี้
- Memder Size: ส่วนหนึ่งของดัชนีแบบกระจายที่มีขนาดบีบอัดและออฟเซ็ต ซึ่งช่วยให้แยกบล็อกได้อย่างอิสระ
เนื่องจากรูปแบบ Lzip ไม่บีบอัดหลายไฟล์และไม่เก็บข้อมูลเมตา จึงมักใช้ร่วมกับยูทิลิตี้ tar รวมกัน
ความนิยมของรูปแบบ LZ
รูปแบบไฟล์เก็บถาวร LZ ซึ่งใช้อัลกอริธึมการบีบอัด Lempel-Ziv เป็นเทคโนโลยีพื้นฐานในโลกแห่งการบีบอัดข้อมูล การนำไปใช้อย่างแพร่หลายนั้นเป็นผลมาจากความเรียบง่าย ประสิทธิภาพ และความสามารถในการบรรลุอัตราส่วนการบีบอัดที่มีนัยสำคัญ โดยเฉพาะอย่างยิ่งสำหรับข้อมูลที่มีรูปแบบที่ซ้ำกัน วิธีการบีบอัดแบบ LZ ได้รวมอยู่ในรูปแบบไฟล์และเครื่องมือบีบอัดต่างๆ ทำให้รูปแบบ LZ เป็นองค์ประกอบที่หลากหลายและจำเป็นในการจัดเก็บข้อมูล การส่งผ่าน และกระบวนการเก็บถาวรข้อมูล แม้ว่าอัลกอริธึมการบีบอัดรุ่นใหม่อย่าง LZMA และ Brotli จะเกิดขึ้น แต่รูปแบบ LZ ยังคงมีความเกี่ยวข้องเนื่องจากความสมดุลของความเร็วและประสิทธิผลในการบีบอัด
ในสภาพแวดล้อม UNIX และ Linux การบีบอัด LZ มักจะใช้ร่วมกับเครื่องมืออื่นๆ เช่น tar เพื่อสร้างไฟล์เก็บถาวรที่บีบอัดสำหรับการแจกจ่ายซอฟต์แวร์และการสำรองข้อมูล การบูรณาการเข้ากับยูทิลิตี้การบีบอัดข้อมูลจำนวนมากทำให้มั่นใจได้ถึงการใช้งานอย่างต่อเนื่องบนแพลตฟอร์มที่หลากหลาย รวมถึง Windows และ macOS แม้ว่ารูปแบบ LZ อาจไม่ได้รับการยอมรับอย่างกว้างขวางเท่ากับรูปแบบการบีบอัดอื่นๆ เช่น ZIP หรือ GZIP แต่อิทธิพลของรูปแบบดังกล่าวที่มีต่อเทคโนโลยีการบีบอัดข้อมูลนั้นไม่อาจปฏิเสธได้ และยังคงใช้ในสถานการณ์ต่างๆ ที่จำเป็นต้องมีการบีบอัดที่รวดเร็วและเชื่อถือได้
ตัวอย่างการใช้คลังเก็บ LZ
ส่วนนี้ให้ตัวอย่างโค้ดที่สาธิตวิธีการบีบอัดและเปิดไฟล์เก็บถาวร LZ โดยใช้ C#, Java และ Python.NET ตัวอย่างเหล่านี้ใช้ไลบรารีและคลาส เช่น LzipArchive เพื่อจัดการไฟล์ LZ ซึ่งแสดงให้เห็นการใช้งานจริงของการบีบอัด LZ ในสภาพแวดล้อมการเขียนโปรแกรมสมัยใหม่
Compresses a file into .LZ archive using the LzipArchive class in C#.
using (LzipArchive archive = new LzipArchive())
{
archive.SetSource("data.bin");
archive.Save("data.bin.lz");
}
Extract LZip Archive using C#
using (FileStream sourceLzipFile = File.Open("data.bin.lz", FileMode.Open))
{
using (FileStream extractedFile = File.Open("data.bin", FileMode.Create))
{
using (LzipArchive archive = new LzipArchive(sourceLzipFile))
{
archive.Extract(extractedFile);
}
}
}
Compresses a file into .LZ archive using the LzipArchive class in Java.
try (LzipArchive archive = new LzipArchive()) {
archive.setSource("data.bin");
archive.save("data.bin.lz");
}
Extract LZip Archive using Java
try (FileInputStream sourceLzipFile = new FileInputStream("data.bin.lz")) {
try (FileOutputStream extractedFile = new FileOutputStream("data.bin")) {
try (LzipArchive archive = new LzipArchive(sourceLzipFile)) {
archive.extract(extractedFile);
}
}
} catch (IOException ex) {
}
Compresses a file into .LZ archive using the LzipArchive class using Python.Net
with aspose.zip.lzip.LzipArchive() as archive:
archive.set_source("data.bin")
archive.save("data.bin.lz")
Extract Lzip Archive using Python.Net
with io.FileIO("data.bin.lz", "rb") as source_lzip_file:
with io.FileIO("data.bin", "x") as extracted_file:
with aspose.zip.lzip.LzipArchive(source_lzip_file) as archive:
archive.extract(extracted_file)
ข้อมูลเพิ่มเติม
มีคนถาม
1. รูปแบบไฟล์เก็บถาวร LZ รองรับทุกระบบปฏิบัติการหรือไม่
รูปแบบไฟล์เก็บถาวร LZ รองรับหลายแพลตฟอร์ม รวมถึง UNIX, Linux, Windows และ macOS แม้ว่าโดยทั่วไปจะเกี่ยวข้องกับสภาพแวดล้อมที่คล้ายกับ UNIX แต่เครื่องมือและไลบรารีที่จัดการไฟล์เก็บถาวร LZ นั้นพร้อมใช้งานสำหรับระบบปฏิบัติการหลักทั้งหมด
2. ข้อดีของการใช้ไฟล์เก็บถาวร LZ คืออะไร
ไฟล์เก็บถาวร LZ ขึ้นชื่อในด้านประสิทธิภาพในการบีบอัดข้อมูลด้วยรูปแบบซ้ำ ๆ ซึ่งให้ความสมดุลที่ดีระหว่างความเร็วการบีบอัดและการลดขนาดไฟล์ ใช้งานง่าย ทำให้เป็นตัวเลือกที่เชื่อถือได้สำหรับความต้องการบีบอัดข้อมูลที่รวดเร็ว โดยเฉพาะอย่างยิ่งในการเผยแพร่ซอฟต์แวร์ การสำรองข้อมูล และการส่งผ่านเครือข่าย
3. ฉันสามารถบีบอัดไฟล์หลายไฟล์ให้เป็นไฟล์เก็บถาวร LZ ไฟล์เดียวได้หรือไม่
โดยทั่วไปรูปแบบ LZ ใช้สำหรับการบีบอัดไฟล์เดียว หากต้องการบีบอัดหลายไฟล์ คุณจะต้องรวมไฟล์เหล่านั้นไว้ในไฟล์เก็บถาวรก่อน (เช่น tarball โดยใช้ tar) จากนั้นจึงบีบอัดไฟล์เก็บถาวรผลลัพธ์ด้วยการบีบอัด LZ กระบวนการนี้เป็นเรื่องปกติในสภาพแวดล้อม UNIX และ Linux