ترميز | فك ترميز | ضغط

> mtf | move | front <

// Move-to-Front - إعادة ترتيب ديناميكي للقائمة لتحسين الضغط

[ADAPTIVE]

ذاتية التكيّف

تتكيف تلقائيًا مع الأنماط المحلية في البيانات.

[LOCALITY]

استغلال المحلية

تحصل الرموز المستخدمة حديثًا على فهارس أصغر لتحسين الضغط.

[BZIP2]

جزء من bzip2

تُستخدم بعد BWT ضمن سلسلة ضغط bzip2.

>> معلومات تقنية

كيف يعمل MTF:

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

مثال على الترميز:

النص: "banana" القائمة الأولية: [a,b,c,d,...] 'b': الفهرس 1، انقل b→المقدمة [b,a,c,d,...] 'a': الفهرس 1، انقل a→المقدمة [a,b,c,d,...] 'n': الفهرس 13، انقل n→المقدمة [n,a,b,c,...] 'a': الفهرس 1، انقل a→المقدمة [a,n,b,c,...] 'n': الفهرس 1، انقل n→المقدمة [n,a,b,c,...] 'a': الفهرس 1، انقل a→المقدمة [a,n,b,c,...] الناتج: [1,1,13,1,1,1]

لماذا نستخدم MTF:

  • >يحسّن التكرار المحلي
  • >يعمل مع BWT
  • >تنفيذ بسيط
  • >تحويل قابل للعكس
  • >متكيف مع الأنماط

>> الأسئلة الشائعة

ما هو ترميز Move-to-Front؟

MTF هو خوارزمية لتحويل البيانات ترمز كل رمز بفهرسه في قائمة يتم تحديثها ديناميكيًا. بعد ترميز كل رمز يُنقل إلى مقدمة القائمة، بحيث تحصل الرموز المستخدمة كثيرًا على فهارس أصغر.

لماذا يُستخدم MTF مع BWT؟

يقوم BWT بتجميع السياقات المتشابهة معًا، فيُنشئ تكرارات محلية. يحوّل MTF هذه التكرارات إلى أعداد صغيرة (الكثير من الأصفار والواحدات)، ما يضغط جيدًا باستخدام ترميز طول التشغيل أو ترميز هوفمان.

كيف تعمل القائمة في MTF؟

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

كيف يقارن MTF بالتحويلات الأخرى؟

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

لغات أخرى