تنسيق ملف أرشيف LZMA

LZMA (خوارزمية سلسلة Lempel-Ziv-Markov) هي خوارزمية حديثة لضغط البيانات تشتهر بكفاءتها العالية ونسبة الضغط الاستثنائية. يستخدم LZMA على نطاق واسع في تنسيقات الأرشيف مثل 7z ، ويقلل بشكل فعال حجم الملف دون التضحية بشكل كبير بسرعة إلغاء الضغط. تضمن أرشيفات LZMA الحفاظ على جودة البيانات وسلامتها، مما يجعلها حلاً مثاليًا لتخزين مجموعات البيانات الكبيرة وإدارتها بكفاءة.
الميزة الرئيسية لـ LZMA هي قدرتها على التعامل مع الملفات الكبيرة وهياكل البيانات المعقدة بأقل قدر من الخسارة. يتيح لك استخدام LZMA تحسين مساحة القرص وتسهيل نقل الملفات عبر الإنترنت نظرًا لصغر حجم الأرشيف. وهذا يجعل LZMA خيارًا شائعًا بين المطورين ومسؤولي النظام لإدارة البيانات بكفاءة.

حول معلومات أرشيف LZMA

تدعم أرشيفات LZMA التوازي، مما يسمح بالاستخدام الفعال للمعالجات متعددة النواة لضغط الملفات وإلغاء الضغط بشكل أسرع. بالإضافة إلى ذلك، تتميز LZMA بمقاومتها العالية للتلف، مما يجعلها خيارًا موثوقًا به لتخزين البيانات المهمة على المدى الطويل. تحتوي الخوارزمية أيضًا على كود مفتوح المصدر، مما يسهل تنفيذها على نطاق واسع وتكييفها في الحلول البرمجية المختلفة. نظرًا لمزاياها، تظل LZMA واحدة من أكثر تنسيقات الضغط كفاءة، مما يوفر إدارة مثالية للبيانات للمستخدمين في جميع أنحاء العالم.

تطور LZMA

تهدف خوارزمية LZMA، التي طورها إيجور بافلوف في عام 1998 كجزء من مشروع 7-Zip، إلى إنشاء طريقة عالية الكفاءة لضغط البيانات. في البداية، اعتمد على خوارزميات LZ77 الكلاسيكية، متضمنًا تقنيات عززت بشكل كبير كفاءة الضغط. تدريجيًا، اكتسبت LZMA الاعتراف بقدرتها على معالجة مجموعات البيانات الكبيرة بأقل استهلاك للموارد. في عام 2001، أصبحت LZMA خوارزمية الضغط الأساسية لتنسيق 7z، والتي اكتسبت شعبية بسرعة بسبب أدائها المتميز. علاوة على ذلك، تم دمج الخوارزمية في العديد من أنظمة الأرشيف وتخزين البيانات، وخاصة منتجات البرمجيات مفتوحة المصدر. واليوم، تواصل LZMA التطور، وتحافظ على أهميتها من خلال التحديثات والتحسينات المستمرة، مما يعزز مكانتها كأداة لا غنى عنها في العالم الرقمي.

مبادئ خوارزمية LZMA

تعتمد خوارزمية LZMA على استخدام التكرار المتسلسل في البيانات لتحقيق درجة عالية من الضغط. الفكرة الرئيسية للخوارزمية هي بناء وتخزين قاموس يحتوي على سلاسل فرعية تمت مواجهتها مسبقًا، ثم يتم استبدالها بمراجع في هذا القاموس. يتيح لك ذلك تقليل كمية البيانات التي سيتم تخزينها أو نقلها بشكل كبير. إحدى الميزات الرئيسية لـ LZMA هي استخدامها لتشفير النطاق بدلاً من تشفير هوفمان. يوفر تشفير النطاق ضغطًا أفضل أقرب إلى إنتروبيا البيانات ويستخدم تنسيقًا ثنائيًا، مما يتجنب عمليات تقسيم الأعداد الصحيحة البطيئة.

يستخدم LZMA خوارزمية LZ77 للعثور على أطول التطابقات في المخزن المؤقت للبحث والمخزن المؤقت للتنبؤ، وكتابتها في ملف مضغوط على شكل ثلاثي (المسافة، الطول، الحرف التالي). إذا لم يتم العثور على تطابق، فسيتم إلحاق بايت في النطاق (0,255) بالملف. إذا تم العثور على تطابق، يتم تسجيل زوج من القيم (المسافة والطول) المشفرة بواسطة طريقة تشفير النطاق.

لتحسين الكفاءة باستخدام مخزن مؤقت كبير للبحث، تقوم الخوارزمية بتخزين المسافات الأربعة الأكثر شيوعًا في مصفوفة مخصصة لسجل المسافة. إذا ظهرت أي من هذه المسافات مرة أخرى، فسيتم استبدالها برمز 2 بت يشير إلى مصفوفة سجل المسافة، مما يقلل من المعلومات اللازمة لتخزين المطابقة.

يستخدم LZMA تجزئة مكونة من 2 بايت (البايت الحالي والبايت التالي) للعثور على التطابقات في المخزن المؤقت للبحث. يرتبط حجم مصفوفة التجزئة مباشرة بحجم القاموس. على سبيل المثال، يستخدم قاموس سعة 1 جيجابايت مصفوفة تجزئة بسعة 512 ميجابايت، مما يقلل من التصادمات في وظيفة التجزئة.

يوفر هذا النهج متعدد المستويات ضغطًا وتخزينًا فعالين للبيانات دون استهلاك كبير للموارد، مما يجعل LZMA واحدة من أكثر خوارزميات ضغط البيانات كفاءة.

فوائد تنسيق الملف .lzma

فيما يلي المزايا الرئيسية لـ LZMA، مما يجعلها خيارًا جذابًا للعديد من تطبيقات ضغط البيانات. <ر>

  • نسبة ضغط عالية: يوفر LZMA واحدة من أعلى نسب الضغط بين الخوارزميات الموجودة، مما يسمح لك بتقليل أحجام الملفات بشكل كبير. يتجاوز متوسط ​​نسب الضغط 70% مقارنة بتنسيقات الأرشيف الأخرى.
  • إلغاء الضغط السريع: تم تحسين الخوارزمية لإلغاء ضغط البيانات بسرعة، مما يجعل LZMA مناسبًا تمامًا للاستخدام في تطبيقات البرامج وأنظمة التخزين حيث يكون الاسترداد السريع للبيانات أمرًا ضروريًا.
  • إدارة فعالة للملفات الكبيرة: نظرًا للحجم الكبير لمخزن البحث المؤقت، يمكن لـ LZMA معالجة كميات كبيرة من البيانات بكفاءة مع الحفاظ على معدل ضغط مرتفع.
  • الموثوقية وتحمل الضرر: يوفر LZMA مقاومة عالية لتلف البيانات. حتى في حالة حدوث أخطاء أثناء التخزين أو النقل، فإن تصميمه يسمح ببعض تصحيح الأخطاء، ويقلل من فقدان البيانات ويضمن سلامة معلوماتك أثناء التخزين طويل المدى.
  • كود مفتوح المصدر: تسهل طبيعة خوارزمية LZMA مفتوحة المصدر تنفيذها على نطاق واسع وتكييفها ودمجها في حلول برمجية متنوعة، مما يعزز اعتمادها وتطويرها المستمر.

العمليات المدعومة لأرشيف LZMA

يتيح Aspose.ZIP للمستخدمين استخراج الملفات الفردية والأرشيف بأكمله. بالنسبة إلى .NET، يمكنك استخدام LzmaArchiveClass لفتح ملف .lzma، ثم يمكنك التنقل خلال سجلاته واستخراجها إلى الموقع المطلوب. يتم استخدام أسلوب مماثل في Java، حيث تستخدم LzmaArchive لفتح ملف .lzma واستخراج السجلات. بفضل Aspose.ZIP، أصبحت هذه العمليات بسيطة ومريحة للمستخدمين من أي مستوى.

هيكل LZMA

في حين أنه من الدقة القول بأن LZMA متأثر بشكل كبير بـ LZ77 (Lempel-Ziv 1977) وLZ78 (Lempel-Ziv 1978)، إلا أنه من الأكثر دقة وصف LZMA كتطور لهذه الخوارزميات، مع دمج تحسينات كبيرة.
- ترميز النطاق: يستبدل LZMA ترميز Huffman بتشفير النطاق، وهي طريقة أكثر كفاءة لتمثيل البيانات.
- سجل المسافات: تحتفظ LZMA بسجل للمسافات المستخدمة بشكل متكرر، مما يؤدي إلى تسريع اكتشاف المطابقة.
- جدول التجزئة: تستخدم LZMA جدول التجزئة لتسريع عملية البحث عن التسلسلات المطابقة.
- النمذجة التنبؤية: تتضمن LZMA تقنيات النمذجة التنبؤية لتوقع أنماط البيانات القادمة، مما يعزز الضغط بشكل أكبر.

هيكل LZMA

هيكل أرشيف LZMA الداخلي

  • بيانات تعريف الملف - على غرار أرشيف tar، يقوم كل ملف بتخزين المعلومات الأساسية مثل وقت التعديل والأذونات. ومع ذلك، فإن هذا القسم مرن ويسمح بحذف أو تضمين تفاصيل إضافية مثل قوائم التحكم في الوصول (ACLs) أو السمات الموسعة (EAs) بناءً على احتياجاتك. يوصى بتضمين وظيفة تجزئة قوية (مثل SHA1) للملفات العادية لضمان سلامة البيانات.
  • تدفقات محتوى متعددة - على عكس الأرشيفات التقليدية، يمكن أن تحتوي الملفات على أكثر من تدفق بيانات واحد داخل ملف البيانات الداخلي. يعد هذا مفيدًا لتخزين السمات الموسعة أو تشعبات الموارد المرتبطة بالملف.
  • الرؤوس - يحتوي ملف الفهرس الداخلي على رؤوس الملفات، مما يعكس تلك المنتشرة في ملف البيانات الداخلي. ولكن، عند تخزينها بشكل منفصل، يجب أن تشير رؤوس الفهرس إلى موضع البداية للبيانات المقابلة لها داخل ملف البيانات. بالإضافة إلى ذلك، تسرد إدخالات الدليل في الفهرس ملفاتها المضمنة والإزاحات المقابلة لها داخل فهرس الملفات الداخلي.
  • الأساس المنطقي لتكرار البيانات الوصفية - يضمن اختيار التصميم هذا تدفق/فك تشفير البيانات بشكل فعال والوصول العشوائي إلى الملفات. بالإضافة إلى ذلك، يتم ضغط بيانات التعريف بشكل جيد، مما يؤدي إلى الحد الأدنى من الحمل الزائد للتخزين. تظهر الاختبارات أن البيانات الوصفية تشغل عادة أقل من 0.3% من مساحة التخزين، مما يجعل المقايضة جديرة بالاهتمام.
  • رؤوس الكتل - تحتوي رؤوس الكتل، المشابهة للملف الخارجي، على معلومات حجم الكتلة وتسلسل معرف فريد.

أمثلة على استخدام LZMA بايثون

باستخدام واجهة برمجة التطبيقات Aspose.ZIP via Python ، يمكنك بسهولة إدارة أرشيفات LZMA في تطبيقاتك، مما يلغي الحاجة إلى برامج خارجية أخرى. تشتمل واجهة برمجة التطبيقات على فئة LzmaArchive ، والتي تعمل على تبسيط العمل مع أرشيفات LZMA، و فئة LzmaCompressionSettings ، والذي يسمح لك بتخصيص إعدادات الضغط للحصول على الأداء الأمثل وتقليل حجم الملف.

LZMA Python .Net Compression

This example demonstrates how to create a 7z archive using the data.bin file. We use LZMA2 compression algorithm with four streams to efficiently compress data more examples here

    compression_settings = zp.saving.SevenZipLZMA2CompressionSettings()
    compression_settings.compression_threads = 4
    entry_settings = zp.saving.SevenZipEntrySettings(compression_settings)
    with zp.sevenzip.SevenZipArchive(entry_settings) as archive:
        archive.create_entry("data.bin", "data.bin")
        archive.save("result.7z")

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

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

معلومات إضافية حول أرشيفات LZMA

لقد كان الناس يسألون

1. ما تنسيقات الملفات التي تستخدم ضغط LZMA؟

LZMA ليس تنسيق ملف في حد ذاته ولكنه خوارزمية ضغط تستخدم في تنسيقات الأرشيف المختلفة. تتضمن بعض الأمثلة الشائعة 7z وXZ وأحيانًا ZIP. عندما تواجه ملفًا بهذه الامتدادات، فقد يكون مضغوطًا باستخدام LZM

2. هل LZMA مفتوح المصدر؟

نعم، LZMA عبارة عن خوارزمية مفتوحة المصدر، مما يجعلها متاحة للاستخدام والتكامل مجانًا في العديد من الحلول البرمجية. وقد ساهمت طبيعة المصدر المفتوح هذه في اعتمادها على نطاق واسع وتطويرها المستمر.

3. ما هي بعض البدائل لLZMA؟

تقدم العديد من خوارزميات الضغط مقايضات مختلفة. يوازن ZIP بين الضغط والسرعة بشكل جيد، ويوفر BZIP2 ضغطًا عاليًا على حساب السرعة مقارنة بـ LZMA، بينما يوفر XZ، المستند إلى LZMA، ضغطًا قويًا ويشيع استخدامه في بيئات Linux.