ضغط البيانات
المعلوماتية >>>> عام
ضغط البيانات أو ما تسمى بـCompaction، هي عملية هدفها التقليل من كمية البيانات التي نحتاج إلى تخزينها في إحدى وسائط التخزين، أو التي تحتاج إلى نقل عبر الشبكة، وذلك من أجل تسريع عملية الإرسال ويتم ذلك عادة باستخدام تقنية الترميز. والجدير بالذكر بأن تقنية الترميز تسبق عصر التكنولوجيا، حيث أن أول من استخدمها المخترع الأمريكي «صاموئيل مورس» عام 1836 وسميت باسمه "Morse Code".
لماذا نحتاج إلى ضغط البيانات؟
لعدة أسباب منها توفير المساحة التخزينية التي تحتلها الملفات كبيرة الحجم، مما يسمح لنا بتخزين بيانات أكثر على المساحة التخزينية نفسها، وبالنسبة لعالم الشبكات فالموضوع حيوي وهام للغاية، حيث أننا اليوم نتعامل مع ملفات كبيرة الحجم كملفات الصوت والصورة وغيرها. كل هذه لو أرسلناها بصيغتها الأصلية بدون أي عملية ضغط بيانات ستحتاج إلى وقت طويل في عملية الإرسال والاستقبال، بالإضافة إلى حدوث اختناق في حركة المرور عبر الشبكة، في حين لو تم ضغط نفس البيانات ونقلها ستنتقل أسرع بكثير، وبالتالي نكون قد قلصنا من زمن الإرسال لنفس البيانات.
ما هي أنواع ضغط البيانات؟
هنالك نوعان لإجراء عملية الضغط:
Lossy: في هذا النوع عند فك ضغط الملف سنحصل على نسخة مشابهة للملف الأصلي (ليست مطابقة تماماً للملف الأصلي) حيث يتم فقدان بعض التفاصيل، وبالتالي هذا النوع مقبول لضغط الصور والفيديو (حيث تكون الصورة بعد فك الضغط مشابهة للصورة الأصلية مع فقدان بعض الجودة)، ولكن ليست مقبولة أبداً بالنسبة للملفات الأصلية وذلك لأن كل محرف في النص مهم ويؤثر على المحتوى بشكل مباشر (مضمون النص).
Lossless: في هذا النوع إن الملف الناتج عن عملية فك الضغط مطابق تماماً للملف الأصلي، أي لايوجد أي فقدان للتفاصيل ومن هنا جاءت سبب التسمية، وبالتالي فهو مناسب لضغط الملفات النصية حيث من المهم الحصول على نسخة مطابقة للملف الأصلي.
وأشهر ثلاث برامج لضغط البيانات العامة (كلهم من نوع Lossless):
Zip: للأجهزة التي تعمل بنظام windows.
Stufflt: للأجهزة التي تعمل بنظام Apple.
Gzip: للأجهزة التي تعمل بنظام UNIX.
ويوجد صيغٌ مشتركة لضغط الصور الثابتة وخاصة تلك التي تعرض عبر الشبكة مثل GIF(Graphics Interchange Format)، وهو من النمط Lossless إلا أن صورها تقتصر على 256 لون، وهناك مجموعة أكبر من الألوان يمكن أن تستخدم مع JPEG(Joint Photographic Experts Group)، وهو معيار عالمي والذي يستخدم كل من (Lossless، Lossy) كما يفعل المعيار العالمي MPEG(Moving Picture Expert Group) الخاص بضغط الفيديو.
ما هي أشهر الخوارزميات المستخدمة في ضغط البيانات؟
RLE(Run-Length Encoding): وهي خوارزمية تستغل التكرار الإحصائي لتمثيل البيانات بصورة دقيقة دون فقدان المعلومات بحيث أن العملية قابلة للعكس، وفي مثل هذا النوع يمكن تطبيقه على معظم بيانات العالم الحقيقي التي تمتلك تكراراً إحصائياً. على سبيل المثال قد تكون الصورة في بعض الأحيان قلما يتغير اللون على عدة بكسلات فبدلاً من الترميز (بكسل أحمر، بكسل أحمر… إلخ)، يصبح الترميز (250 بكسل أحمر)، وبالتالي استعضنا عن ترميز 250 بكسل بجملة تتألف من عدد قليل من المحارف.
LZ(Lempel-Ziv): وهي خوارزمية اخترعها عالمي الحاسوب الإسرائيليان «إبراهام ليمبل» و«يعقوب زيف» في عام 1978 والتي تعتمد على ما يعرف بالاستبدال النصي (Textual Substitution)، وبعدها قام العالم «ويلش» بنشر خوارزمية LZW(Lempel-Ziv-Welch) التي صُممت هذه الخوارزمية لتكون سريعة وذلك لأنها تقوم بتحليل محدود للبيانات.
Huffman: وهي خوارزمية لضغط البيانات تعمل على مستوى البت بحيث تقلل عدد البايتات التي من الممكن أن تمثل النص نفسه، بحيث أنه في النص العادي (غير المضغوط) ىُمثل كل محرف ببايت واحد دوماً، بغض النظر عن أية عوامل أخرى فمثلاً إذا كان النص فيه تكرارت كثيرة ولم تستعمل إلا جزء صغير من أحرف الأبجدية هل من الضروري تمثيل كل محرف ببايت كامل؟ حيث تقوم الخوارزمية بتمثيل جديد لكل محرف (ممكن أن يأخذ كل محرف بتين فقط) وتطبيقه على النص.
المصادر هنا و هنا و هنا
هنا