> lz77 | sliding | window <
// LZ77 - ضغط بنافذة منزلقة مع مراجع قاموسية
>> المزايا
ترميز قائم على القاموس
يستخدم مراجع (إزاحة وطول) لإعادة استخدام الأنماط المتكررة.
نافذة منزلقة
يحافظ على نافذة متحركة للبحث عن أطول تطابق.
أساس الخوارزميات الحديثة
يمثل الأساس لـ ZIP و GZIP و DEFLATE و PNG.
>> معلومات تقنية
كيف يعمل LZ77
يحافظ LZ77 على نافذة منزلقة من البيانات التي تمت رؤيتها مؤخراً. عند كل موضع يبحث عن أطول سلسلة مطابقة داخل النافذة. عند العثور على تطابق، يخرج مرجعاً (إزاحة، طول، الحرف التالي). إذا لم يوجد تطابق، يخرج حرفاً مباشراً (0،0،الحرف). بهذه الطريقة تُستبدل الأنماط المتكررة بمراجع قصيرة مما يحقق الضغط دون فقدان.
مثال LZ77
Text: "ABCABCABC" Window=4, Lookahead=4 Position 0: 'A' - no match → (0,0,A) Position 1: 'B' - no match → (0,0,B) Position 2: 'C' - no match → (0,0,C) Position 3: 'ABC' - matches at offset 3 → (3,3,A) Position 7: 'BC' - matches at offset 3 → (3,2,) Output: (0,0,A)(0,0,B)(0,0,C)(3,3,A)(3,2,)
لماذا نستخدم LZ77؟
- ضغط بيانات بدون فقدان
- لا يحتاج إلى معرفة مسبقة بنوع البيانات
- يتكيف مع خصائص البيانات
- تنفيذ بسيط نسبياً
- أساس لخوارزميات الضغط الحديثة
>> أسئلة شائعة
ما هو LZ77؟
LZ77 خوارزمية ضغط بيانات دون فقدان نُشرت عام 1977 بواسطة أبراهام ليمبل ويعقوب زيف. تستبدل الخوارزمية التكرارات في الدفق بمراجع إلى نسخة واحدة ظهرت سابقاً في البيانات غير المضغوطة.
كيف تعمل النافذة المنزلقة؟
تنقسم النافذة المنزلقة إلى مخزن بحث يحتوي على البيانات المعالجة حديثاً، ومخزن مسبق يحتوي على البيانات التي سيتم ضغطها. يبحث LZ77 في مخزن البحث عن أطول تطابق مع بداية المخزن المسبق ثم يخرج مرجعاً أو حرفاً مباشراً.
ما الفرق بين LZ77 والضغط الحديث؟
يُعد LZ77 أساس العديد من خوارزميات الضغط الحديثة. يجمع DEFLATE المستخدم في ZIP و GZIP بين LZ77 وترميز هوفمان. تحسن LZSS كفاءة LZ77، بينما تبني LZ78 و LZW القاموس بطريقة مختلفة مع الحفاظ على نفس الفكرة العامة.
ما هي أحجام النوافذ المثلى؟
تتراوح أحجام النوافذ النموذجية بين 32 كيلوبايت و 64 كيلوبايت للبيانات العامة. النوافذ الأكبر تجد مزيداً من التطابقات لكنها تستهلك ذاكرة ووقتاً أكثر. يستخدم DEFLATE نافذة بحجم 32 كيلوبايت، ويكون حجم المخزن المسبق عادة 256–512 بايت. يعتمد الحجم الأفضل على نمط التكرار في بياناتك.