كيف تعمل برامج ضغط الملفات وماهي خوارزميات الضغط واقسامها

- الإعلانات -

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

لابد أنك قد صادفت ولو لمرة واحدة على الأقل ملفات تحمل إمتداد zip أو rar أو 7z أو غيرها وسمعت عبارة ضغط وفك ضغط الملفات وتعرف تلك الأيقونات على حاسوبك التي تدل على أن الملف مضغوط، ومع ذلك فربما لا تكون واثقاً كلياً من إستيعابك لعملية ضغط الملفات وهذا يفسر وجودك هنا فتابع القراءة لمعرفة تفاصيل هذه العملية.

تُعرف أصغر وحدة تخزينية في الحاسوب بالبت bit وثمان وحدات منه تكون بايت byte و1024 بايت يكافئ الكيلوا بايت، و1024 كيلوا بايت يكافئ الميجا بايت … وهكذا تتابع الوحدات

- الإعلانات -

كيف تعمل برامج ضغط الملفات وماهي خوارزميات ضغط الملفات واقسامها
كيف تعمل برامج ضغط الملفات وماهي خوارزميات ضغط الملفات واقسامها

فعندما تستخدم برنامج لضغط ملف حجمه 5 ميجا بايت ليصبح 4 ميجا بايت على سبيل المثال فهذا يعني أن هناك أكثر من ثمانية مليون بت (1 ميجا بايت) لم تعد مستخدمة في تخزين الملف، ومع ذلك لايزال الملف يحتوى على البيانات ذاتها دون أن يتلف, ألا يبدوا هذا جنونياً ونحن نعلم أن البت الواحد لا يحمل إلا إحدى قيمتين ولا يمكن “ضغطه” فيزيائياً ليمثل أكثر من ذلك! كما بينا في آلية تخزين البيانات على الحاسوب إذا فكيف يتم هذا الأمر؟

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

ويسمى الأسلوب المتبع في تصغير حجم الملفات بخوارزمية الضغط، راجع ما هي الخوارزميات للإيضاح.

وتنقسم خوارزميات الضغط إلى نوعان:

أ‌.       خوارزميات الضغط الغير فاقدة للبيانات lossless compression algorithm

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

أمثلة خوارزميات الضغط الغير فاقدة للبيانات:

–  Huffman coding

Lempel–Ziv–Welch –

والصيغ التالية Zip, RAR, NCW, FLAC, ALAC, HD-AAC, WMA كلها عبارة عن ملفات مضغوطة بخوارزميات الضغط الغير فاقدة للبيانات والتي تتطلب برمجية لتقوم بعكس الخوارزمية المستخدمة في الضغط لإسترجاع البيانات والتي قد تكون مدمجة مع نظام التشغيل مثل صيغة zip المدمجة مع نظام ويندوز.

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

ب‌.    خوارزميات الضغط الفاقدة للبيانات Lossy compression algorithm

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

وسط المقالة

جرب بنفسك، هل تلاحظ الفرق بين هاتين الصورتين؟

   vs 

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

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

الصيغ التالية MP3, MP4, AAC, WMA, Ogg تمثل ملفات تم تطبيق إحدى خوارزميات الضغط الفاقد للبيانات عليها وهي التي تستخدمها يومياً ولم تدرك لحظة أن ثمة شيئ ينقصها!

أما الصيغة jpeg الخاصة بالصور فقد تكون مضغوطة بهذا النوع أو بالنوع الغير فاقد للبيانات.

من جانب آخر تُستخدم عملية ضغط الملفات أيضاً  في الأرشفة عبر ضم مجموعة من المجلدات والملفات في ملف واحد مضغوط لسهولة النقل والتنسيق وهنا لا يهتم المستخدم سوى بسرعة عملية الضغط وفك الضغط ولا يلقي بالاً لتوفير المساحة، ولهذا يتم تطوير خوارزميات ذات خصائص مختلفة تناسب كل غرض فمثلاً خوارزمية Deflate والمعروفة بـ gzip تتسم بالسرعة ولكنها الأسوء في ضغط الحجم، وخوارزمية bzip2 بطيئة وتعطي نتيجة ضغط متوسطة، أما خوارزمية lzma فهي شديدة البطئ ولكنا الأفضل في الضغط وسريعة في عملية فك الضغط (ولكن ليست أسرع من deflate).

إذا في المرة القادمة قبل أن تقوم بضغط ملفاتك بنقرات سريعة فكر قليلاً في الإختيار الأنسب لك، هل تقوم بتجميع بعض الملفات الكبيرة وحسب؟ deflate قد تكون خيارك الأنسب، هل أنت مدير موقع وتشارك ملفات كبيرة الحجم مع متابعيك؟ ربما الحجم هنا أهم من السرعه إستخدم lzma.

كيف يمكن إستخدام هذه الخوارزميات؟

توجد كثير من البرامج التي تمكنك من إستخدام خوارزميات ضغط مختلفة أشهرها:

winrar الذي يمكنه ضغط الملفات بخوارزمية rar الخاصة به وكذلك zip ويمكنه فك ضغط كل هذه الصيغARJ, BZIP2, CAB, GZ, ISO, JAR, LHA, RAR, TAR, UUE, XZ, Z, ZIP, ZIPX, 7z.

winzip ويمكنه ضغط الملفات بخوارزمية zip أو zipx وفك ضغط الصيغ BZ2, LHA, LZH, RAR, ZIP, Zipx, 7Z.

و7z يدعم كلا من ضغط وفك ضغط بخوارزميات ZIP, Gzip, bzip2, xz, tar , WIM

ويدعم فك ضغط APM, ARJ, CHM, cpio, DEB, FLV, JAR, LHA/LZH, LZMA, MSLZ, Office Open XML, onepkg, RAR, RPM, smzip, SWF, XAR, Z archives and CramFS, DMG, FAT, HFS, ISO, MBR, NTFS, SquashFS, UDF, and VHD disk images.

وبين تلك البرامج وغيرها فروقات من جوانب أخرى معتبرة كدعم التشفير وتجزئة الملفات والحماية من الثغرات الأمنية التي عادة ما تصيب هذه البرامج مثل dll hijacking وغيرها.

ساهم في نشر هذا المقال من خلال أزرار المشاركة بالأسفل، وإبق متابعاً لموقع قاعة التقنية ليصلك المزيد من المواضيع المفيدة.

التعليقات متوقفه

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More