LZFSE
LZFSE ( إنتروبيا الحالة المحدودة لـ Lempel-Ziv ) هي خوارزمية ضغط بيانات مفتوحة المصدر بدون فقدان البيانات تم إنشاؤها بواسطة شركة Apple Inc. وقد تم إصدارها مع خوارزمية أبسط تسمى LZVN . [ 2 ]
ملخص
الاسم هو اختصار لـ Lempel–Ziv و finite-state entropy [ 3 ] (تطبيق الأنظمة العددية غير المتناظرة ). تم تقديم LZFSE من قبل شركة Apple في مؤتمرها العالمي للمطورين عام 2015. وقد تم تضمينه مع إصدارات iOS 9 و OS X 10.11 في ذلك العام .
تدّعي آبل أن خوارزمية LZFSE تضغط الملفات بنسبة مماثلة لخوارزمية zlib ( DEFLATE )، وتفك ضغطها أسرع بمرتين إلى ثلاث مرات مع استهلاك موارد أقل، ما يوفر كفاءة طاقة أعلى من zlib. وقد صُممت هذه الخوارزمية خصيصًا للحالات التي تتطلب إعطاء الأولوية لسرعة فك الضغط ومعدله على حد سواء. [ 3 ] وقد تحقق جزء من هذه الكفاءة في استهلاك الطاقة من خلال تحسين الخوارزمية للبنى الدقيقة الحديثة، مع التركيز بشكل خاص على معمارية arm64 . [ 4 ] وتؤكد اختبارات الأداء التي أجرتها جهات خارجية أن LZFSE تفك ضغط الملفات أسرع من zlib، ولكنها تشير أيضًا إلى أن العديد من خوارزميات الضغط الحديثة الأخرى قد تتمتع بخصائص أداء أفضل بكثير، مثل الكثافة وسرعة الضغط وسرعة فك الضغط. [ 5 ]
بحسب معيار Squash، فإنّ LZFSE تُشابه zstd (المستوى 6) في السرعة، ولكن بنسبة أداء أقل قليلاً. أما LZVN، فتُشابه LZ4 (المستوى 4) في السرعة، بنسبة أداء أقل قليلاً أيضاً. [ 6 ] لا يُمكن ضبط أيٍّ من LZFSE أو LZVN أثناء التشغيل، مع إمكانية تعديل بعض الثوابت أثناء الترجمة لتحقيق التوازن المعتاد بين السرعة ونسبة الأداء. [ 7 ]
تطبيق
تم توفير مكتبة مرجعية بلغة C، من تأليف إريك بينفيل، بموجب ترخيص BSD ثلاثي البنود بعد مؤتمر WWDC 2016. وتتضمن المكتبة برنامجًا تنفيذيًا لضغط وفك ضغط تدفقات LZFSE. ولا توجد خطط حاليًا لتوفير واجهة برمجة تطبيقات LZVN. [ 1 ]
يستخدم تطبيق LZFSE من Apple خوارزمية أبسط تُسمى LZVN عندما يكون حجم المدخلات أقل من LZFSE_ENCODE_LZVN_THRESHOLD4096 بايت. هذه خوارزمية من نوع LZSS بدون ترميز إنتروبي، ولكنها تستخدم ثلاثة أحجام لحزم REP (صغير، متوسط، كبير). في تطبيق المصدر المفتوح المرجعي، توضح Apple أن أداء LZFSE ليس جيدًا مع الأحجام الصغيرة، لذا يتم استخدام LZVN بدلاً منها. [ 7 ] تم اكتشاف هذه الخوارزمية في libfastCompression.a سابقًا كطريقة ضغط ذاكرة التخزين المؤقت للنواة الافتراضية في Mac OS X Yosemite Developer Preview 1 (2014)، لتحل محل طريقة الضغط القديمة lzssمن Haruhiko Okumura . [ 8 ]
الاستخدام
يدعم إطار عمل AppleFSCompression.framework (AFSC)، وهو آلية الضغط شبه الشفاف في HFS Plus ونظام ملفات Apple ، كلاً من LZFSE وLZVN منذ نظام التشغيل OS X 10.9.
لقد قدم إطار عمل صور القرص من Apple ترميزًا قائمًا على LZFSE يسمى ULFOمنذ نظام التشغيل Mac OS X 10.11 ، [ 9 ] ويمكن الوصول إليه عبر hdiutil(1)[ 10 ] وبعض أدوات الصور التابعة لجهات خارجية.
أطلقت آبل تنسيق Apple Archive وواجهة برمجة التطبيقات (API) الخاصة به في نظام macOS High Sierra عام 2017. [ 11 ] اسم الامتداد هو .aar ( وكان .yaa منذ macOS Big Sur ). أُضيفت خاصية التشفير في macOS Monterey ، عندما أصبح تنسيق AA هو التنسيق الافتراضي لأداة الأرشفة . تتوفر ثلاث أدوات سطر أوامر في macOS للتعامل مع ملفات AA. [ 12 ] [ 13 ] من بين برامج الطرف الثالث، يستطيع برنامج Keka استخدام واجهات برمجة تطبيقات النظام للتعامل مع ملفات AA، ولكن لا توجد تطبيقات مستقلة له على أنظمة أخرى. [ 14 ]
انظر أيضاً
- Zstandard – مزيج آخر من LZ77 و FSE، من تأليف يان كوليت، مؤلف FSE
- خوارزمية ضغط LZ4 - عضو سريع من عائلة LZ77، وهي متاحة أيضًا على منصات Apple [ 15 ]
مراجع
- 1 2 باينفيل، إريك (2016-06-07). "مكتبة ضغط LZFSE وأداة سطر الأوامر" . جيت هاب . تم الاسترجاع في 2016-07-04 .
- ↑ شركة آبل. "ضغط البيانات - الضغط | وثائق مطوري آبل" . developer.apple.com . تم الاطلاع عليه بتاريخ 7 أبريل 2017 .
- 1 2 دي سيمون، سيرجيو. "أبل تُتيح خوارزمية الضغط الجديدة LZFSE كمصدر مفتوح" . infoq . تم الاطلاع عليه بتاريخ 7 يوليو 2016 .
- ↑ شركة آبل (12 يونيو 2015). "استهلاك منخفض للطاقة، أداء عالٍ: الضغط والتسريع - مؤتمر مطوري آبل العالمي 2015 - فيديوهات مطوري آبل" . developer.apple.com . تاريخ الاسترجاع: 5 مارس 2017 .ملف PDF مؤرشف بتاريخ 18 أبريل 2016 على موقع Wayback Machine
- ↑ "معيار الضغط" . تم الاطلاع عليه بتاريخ 10-08-2018 .
- ↑ "معيار ضغط Squash" . GitHub . Squash . تم الاطلاع عليه بتاريخ 25 ديسمبر 2019 .
- 1 2 "lzfse_tunables.h" . GitHub . 18 ديسمبر 2019. تم الاطلاع عليه في 22 ديسمبر 2019 .
- ^ بيكر ألفا (4 يونيو 2014). "OS X 10.10 Yosemite DP1 kernel (ذاكرة التخزين المؤقت)" . بايك يونيفيرسوم . تم الاسترجاع في 22 ديسمبر 2019 .
- ↑ تساي، مايكل (2015-10-07). "صور أقراص LZFSE في نظام El Capitan" . مؤرشف من الأصل بتاريخ 2017-04-09 . تم الاطلاع عليه بتاريخ 2022-04-15 .
- ↑ "صفحة دليل hdiutil(1) لنظام Mojave" . تم الاطلاع عليها بتاريخ 15-04-2022 .
- ↑ "أرشيف أبل" . وثائق مطوري أبل .
- ↑ "داخل أرشيف أبل: أكثر من مجرد تنسيق ضغط" . شركة إكليكتيك لايت . 10 مايو 2022.
- ↑ "AA(1): التلاعب بأرشيفات أبل" . keith.github.io .
- ↑ "دعم AppleArchive · المشكلة رقم 829 · aonez/Keka" . GitHub .
- ↑ "خوارزمية الضغط" . وثائق مطوري Apple . شركة Apple . تم الاطلاع بتاريخ 11 أغسطس 2019 .
روابط خارجية
- lzfse على GitHub
- إنتروبيا الحالة المحدودة من تأليف يان كوليت (Cyan4973) ، مصدر تطبيق إنتروبيا الحالة المحدودة في LZFSE
- نقاش على موقع Encode.su ، والذي استقى منه المسؤول عن الصيانة إريك بينفيل اقتراحاته
- خوارزميات الضغط بدون فقدان البيانات
- مكتبات حاسوب مجانية
- ضغط البيانات
