الوحدة الرابعة: ضغط البيانات

مقرر الوسائط المتعددة (1265) — جامعة القدس المفتوحة

مقدمة الوحدة

تتميز ملفات الوسائط المتعددة بأحجامها الضخمة: فصورة بحجم 640×480 وعمق لون 24 بت تحتاج نحو 1 ميغابايت، وفيلم بمعدل 25 صورة/ثانية يحتاج أكثر من 1 غيغابايت لكل دقيقة! شكّلت هذه الأحجام أهم عقبة أمام تطور أنظمة الوسائط المتعددة، سواء من ناحية التخزين أو النقل عبر الشبكات، ما دفع العلماء لتطوير أساليب ضغط متعددة.

يتوقع منك بعد دراسة هذه الوحدة أن تعرف التصنيفات المختلفة لأساليب ضغط البيانات، وتحدد طرقاً مشهورة للضغط اللامصدري (بغض النظر عن نوع البيانات)، وطرقاً أخرى مخصصة لضغط الصورة والصوت والفيديو.

تصنيفات ضغط البيانات

يقوم "الكوديك" (Codec = Compressor + Decompressor) ببرنامج أو قطعة إلكترونية تضغط البيانات وتفكها. تُصنَّف طرق الضغط وفق معيارين مستقلّين:

المعيارالأصناف
حسب فقدان المعلوماتغير الفاقد (Lossless): يحافظ على كل المعلومات عند الاسترجاع، مناسب للبيانات الحساسة كصور الأشعة الطبية. الفاقد (Lossy): يضحي ببعض المعلومات الثانوية للوصول إلى نسبة ضغط أعلى (1 إلى 30 من الحجم الأصلي)، مقبول في الصوت والفيديو حيث لا يلاحظ المشاهد الفرق.
حسب اعتماده على المصدراللامصدري (Source-Independent): يتعامل مع البيانات كسلسلة بتّات دون فهم معناها (نص، صورة، صوت). المصدري (Source-Dependent): يفهم طبيعة البيانات (ألوان متقاربة في صورة، ترددات لا تسمعها الأذن في صوت) ليضغطها بكفاءة أعلى.

مقياس مقارنة أساسي لطرق الضغط غير الفاقد هو نسبة الضغط (Compression Ratio) = حجم البيانات الأصلية ÷ حجم البيانات بعد الضغط. أما في الضغط الفاقد فالمعيار الأهم هو "الجودة" — أي درجة التشابه بين البيانات الأصلية والمسترجعة، وهي غير قابلة لقياس موحّد.

طرق الضغط اللامصدري: RLE وهافمان

من أبسط طرق الضغط غير الفاقدة، تعتمد على استبدال سلسلة من الرموز المتكررة برمز واحد + عدد التكرار. مثال: السلسلة AAAAABAAAA تصبح A*5B A*4 (حيث * إشارة تحكم). فعّالة فقط عندما يتكرر الرمز أكثر من 3 مرات متتالية، وتُستخدم بكثرة في الصور ذات المساحات الفارغة الكبيرة، وملفات BMP وTIFF.
سُمّيت تيمناً بمخترعها ديفيد هافمان. تعطي أحجاماً مختلفة (بعدد بتّات متفاوت) لكل رمز حسب تكراره: الرموز الأكثر تكراراً تأخذ تمثيلاً أقصر، والنادرة تمثيلاً أطول — بعكس الترميز التقليدي ثابت الطول الذي يعطي كل رمز نفس عدد البتّات. تُبنى "شجرة هافمان" بتجميع الرمزين الأقل تكراراً تكرارياً في نقطة واحدة حتى الوصول لنقطة جذر واحدة، ثم تُرمَّز الأفرع (0 للفرع الأصغر، 1 للأكبر). تُستخدم بكثرة في ضغط النصوص والبرامج (كأداة WinZip وRAR)، وكمرحلة مساعدة داخل JPEG وMPEG.

مثال محلول (هافمان): ملف من 20 رمزاً: A مكرر 8 مرات، B مكرر 6، C مكرر 2، D مكرر 4. بالترميز ثابت الطول (يلزمنا 3 بت لتمثيل 5 رموز مختلفة كحد أقصى نظرياً هنا نحتاج فعلياً bit كافٍ لعدد الرموز الفعلي) نحتاج 20×3 = 60 بت. أما بشجرة هافمان (بعد بناء الشجرة حسب التكرار) قد نحصل مثلاً على: A=1 بت، B=2 بت، C=3 بت، D=2 بت، فيكون الحجم الكلي = 8×1 + 6×2 + 2×3 + 4×2 = 8+12+6+8 = 34 بت فقط — توفير واضح مقارنة بالترميز ثابت الطول.

ضغط الصورة: JPEG وGIF

اعتُمدت رسمياً سنة 1992 (اختصار Joint Photographic Experts Group). تستغل حقيقتين حول إدراك العين البشرية: (1) العين أقل حساسية للترددات العالية (التغيرات المفاجئة الصغيرة) من التغيرات الكبيرة التدريجية، و(2) العين أكثر حساسية لتغيرات الإضاءة من تغيرات اللون. مناسبة للصور الفوتوغرافية كاملة الألوان (حتى 24 بت)، وتمتد أسماء ملفاتها بـ ‎.jpg.
أُطلقت في بداية الثمانينات (اختصار Graphics Interchange Format) بواسطة شركة CompuServe. تعتمد خوارزمية LZW (نسبة لمخترعيها Lempel-Ziv-Welch) على استبدال السلاسل المتكررة برقم يشير إلى سطر في "جدول سلاسل" مرفق بالملف. مثالية للرسوم ذات الألوان القليلة والمتناسقة (كالرسوم الكرتونية والشعارات)، لكنها غير فعالة مع الصور الفوتوغرافية ذات الألوان المتداخلة. محدودة قانونياً وتقنياً بـ256 لوناً كحد أقصى، وتمتد أسماء ملفاتها بـ ‎.gif.

خطوات ضغط JPEG بالتفصيل:

مراحل ضغط JPEG
المراحل الخمس لضغط الصورة بطريقة JPEG
  1. تقسيم لوحدات 8×8 بيكسل وتحويل الصورة من RGB إلى فضاء YUV (أو YCbCr)، حيث Y تمثّل الإضاءة (Luminance) وCb وCr تمثّلان معلومات اللون (Chrominance) — إذ يمكن تصغير طبقتي اللون إلى ربع الحجم الأصلي (2×2 بيكسل تمثَّل بقيمة واحدة) دون أن تلاحظ العين فرقاً.
  2. DCT (Discrete Cosine Transform): تحويل كل وحدة إلى المجال الترددي — البيكسل (0,0) يمثّل المكوّن الثابت (غير المتردد)، بينما البيكسل (8,8) يمثّل أعلى تردد.
  3. التقريب (Quantization): هذه هي المرحلة "الفاقدة" فعلياً — تقليل عدد البتّات المستخدمة خصوصاً للقيم عالية التردد (التي تصبح غالباً أصفاراً)، مع الحفاظ على القيم منخفضة التردد الأهم بصرياً.
  4. المسح الزيغزاغي (Zigzag Scan): تحويل مصفوفة الوحدة ثنائية الأبعاد إلى سلسلة أحادية البعد، بترتيب يجمع الأصفار (الترددات العالية) في نهاية السلسلة لتسهيل ضغطها لاحقاً.
  5. الضغط اللامصدري: تطبيق RLE ثم هافمان على السلسلة الناتجة، للاستفادة القصوى من تكرار الأصفار.

مثال محلول على التحويل اللوني: بيكسل RGB = (180, 200, 60) → Y = 0.30×180 + 0.60×200 + 0.10×60 = 180، Cb وCr يُحسبان بمعادلات مشابهة تعتمد الفرق بين القناة والإضاءة.

توجد ثلاثة أنماط عرض لـ JPEG: التسلسلي (ترتيب طبيعي من أعلى اليسار)، التدريجي (تظهر الصورة كاملة فوراً بجودة منخفضة ثم تتضح تدريجياً)، والهرمي (تُضغط نسخة مصغرة أولاً، ثم يُضغط الفرق بينها وبين الأصلية).

ضغط الصوت: MP3 وRealAudio

القرص الصوتي المدمج (CD) يخزّن الصوت غير مضغوط: 44,100 عيّنة/ثانية × 16 بت × قناتين (ستيريو) = 1,411,200 بت/ثانية ≈ 176 كيلوبايت/ثانية — أي نحو 32 ميغابايت لأغنية من 3 دقائق فقط!

جزء من نظام ضغط الفيديو MPEG، لكنه خُصِّص لضغط الصوت. يضغط أغنية القرص المدمج بنسبة 10-14 مرة دون تأثير ملحوظ على الجودة (فتصبح أغنية 32 ميغابايت نحو 3 ميغابايت فقط). يعتمد على "تشكيل الضوضاء الإدراكي" (Perceptual Noise Shaping) المبني على ثلاث ملاحظات: (1) بعض الترددات لا تسمعها الأذن أصلاً، (2) الأذن أكثر حساسية لبعض الترددات من أخرى، و(3) الصوت الأعلى يُخفي الصوت الأخفض الذي يُصدر في نفس اللحظة (auditory masking). كما يستفيد من التكرار بين القناتين (اليمنى واليسرى) عبر أسلوبي "الثنائي المكثف" (دمج القناتين في واحدة مع معلومات اتجاه) أو "الثنائي المشترك" (حذف التكرار عند تطابق القناتين لفترة).
أول نظام رائد للصوت المتدفق (Streaming) عبر الإنترنت، ظهر عام 1995 من شركة RealNetworks (امتداد ‎.ra). يحذف المعلومات غير المهمة حسب نوع المحتوى: التشفير الصوتي (كلام بشري) يزيل الترددات خارج نطاق الكلام الطبيعي، بينما التشفير الموسيقي يحتفظ بنطاق أوسع. يتميز بتقنية SureStream التي تُضمِّن عدة معدلات ضغط داخل ملف واحد ليختار المشغّل المعدل الأنسب حسب سرعة اتصال المستمع الفعلية.

ضغط الفيديو: MPEG وH.261

تشترك الصور المتتابعة في الفيديو غالباً في معظم محتواها؛ فبدل تخزين كل صورة كاملة، تبحث طريقة MPEG (Moving Picture Experts Group) عن الأجزاء المتحركة فقط وترسل معلومات حركتها، مقسِّمة الصورة إلى وحدات أكبر من JPEG بحجم 16×16 بيكسل. ينتج عن هذا الفيديو سلسلة من ثلاثة أنواع من الصور المضغوطة:

مجموعة من الصور GOP في MPEG
مجموعة من الصور (Group of Pictures - GOP): تبدأ دائماً بصورة I
نوع الصورةالوصف
I-Frame (Intra-coded)تُضغط مستقلة تماماً عن الصور الأخرى، تماماً كصورة JPEG عادية. تبدأ بها كل مجموعة صور (GOP) دائماً.
P-Frame (Predictive-coded)تعتمد على معلومات الحركة مقارنة بصورة I أو P سابقة: يُبحث عن كل وحدة 16×16 في الصورة السابقة، ويُخزَّن الفرق (خطأ التنبؤ) بدل الوحدة كاملة — وغالباً ما تكون قيمة هذا الفرق أصفاراً أو قريبة منها.
B-Frame (Bidirectionally predictive)تبحث عن الوحدة الشبيهة في الاتجاهين الزمنيين معاً (صورة سابقة ولاحقة من نوع I أو P)، وتحسب الفرق من متوسط الاثنتين، ما يمنحها أعلى نسبة ضغط بين الأنواع الثلاثة.

ملاحظة تقنية مهمة: بما أن صور B تعتمد على صورة لاحقة لم تُعرض بعد، فترتيب الإرسال يختلف عن ترتيب العرض — يجب استقبال الصورة I أو P التالية أولاً قبل إمكانية فك تشفير صور B التي تسبقها في ترتيب العرض.

طريقة H.261 سبقت MPEG واعتمدتها هيئة CCITT عام 1990، وتشترك معها في المبدأ العام، لكنها لا تحتوي على نوع B-Frame على الإطلاق — فقط I وP، ما يجعل نسبة ضغطها أقل من MPEG لكنها أبسط حساباً.

الخلاصة

استعرضت هذه الوحدة أساليب ضغط البيانات المختلفة، بدءاً من التصنيفين الأساسيين (فاقد/غير فاقد، ولامصدري/مصدري)، مروراً بطريقتي RLE وهافمان اللامصدريتين، ثم طرقاً متخصصة لكل وسيط: JPEG وGIF للصورة، MP3 وRealAudio للصوت، وMPEG وH.261 للفيديو. الفكرة المشتركة بينها جميعاً هي استغلال إما التكرار في البيانات، أو حدود إدراك الحواس البشرية (العين والأذن)، للوصول إلى أحجام ملفات عملية للتخزين والنقل.

مسرد المصطلحات

اضغط على كل بطاقة لعرض تعريفها.

كوديك (Codec)
برنامج أو قطعة إلكترونية تضغط البيانات وتفكها (Compressor + Decompressor).
نسبة الضغط (Compression Ratio)
حجم البيانات الأصلية مقسوماً على حجمها بعد الضغط.
غير الفاقد (Lossless)
صنف ضغط يحافظ على كل البيانات الأصلية دون فقدان عند الاسترجاع.
الفاقد (Lossy)
صنف ضغط يضحي ببعض البيانات الثانوية للوصول إلى نسبة ضغط أعلى.
RLE
ترميز طول التعداد؛ استبدال سلسلة رموز متكررة برمز واحد وعدد تكراره.
هافمان (Huffman)
طريقة ترميز تعطي أحجاماً أقصر للرموز الأكثر تكراراً.
DCT
تحويل جيب التمام المتقطع؛ يحوّل الصورة من المجال المكاني إلى المجال الترددي.
التقريب (Quantization)
تقليل عدد البتّات المستخدمة لتمثيل قيمة، مصدر الفقدان الرئيسي في JPEG.
LZW
خوارزمية ضغط غير فاقدة (Lempel-Ziv-Welch) تستبدل السلاسل المتكررة بمؤشرات لجدول.
I-Frame / P-Frame / B-Frame
أنواع الصور الثلاثة في MPEG: مستقلة، متنبَّأة أمامياً، ومتنبَّأة ثنائية الاتجاه.
مجموعة من الصور (GOP)
سلسلة صور MPEG تبدأ دائماً بصورة I تليها صور P وB.
تشكيل الضوضاء الإدراكي
أسلوب ضغط صوتي (كما في MP3) يعتمد على حدود قدرة الأذن البشرية على السمع والتمييز.

12 مصطلحاً أساسياً لهذه الوحدة.

اختبار الوحدة

يتكوّن الاختبار من 5 أسئلة صح/خطأ، و5 أسئلة اختيار من متعدد، و3 أسئلة إنشائية. تُصحَّح الأسئلة الموضوعية تلقائياً، بينما تعرض الأسئلة الإنشائية إجابة نموذجية لتقييم إجابتك بنفسك.

أولاً: صح أم خطأ

1. تكون طريقة RLE فعالة حتى مع سلاسل قصيرة من رمزين أو ثلاثة متكررة فقط.

2. طريقة هافمان تعطي الرموز الأكثر تكراراً تمثيلاً أقصر من الرموز النادرة.

3. طريقة JPEG من طرق الضغط الفاقدة والمصدرية معاً.

4. صور B-Frame في MPEG تُرسَل عبر الشبكة بنفس ترتيب عرضها على الشاشة.

5. طريقة H.261 لا تحتوي على نوع B-Frame، بعكس MPEG.

ثانياً: اختيار من متعدد

6. طريقة الضغط الأنسب لصورة أشعة طبية دقيقة يجب أن تكون:

7. المرحلة التي تُحدث فعلياً فقدان المعلومات في خوارزمية JPEG هي:

8. طريقة GIF مناسبة أكثر لـ:

9. نوع صورة MPEG الذي يعتمد على البحث في الاتجاهين الزمنيين (سابق ولاحق) هو:

10. خوارزمية ضغط MP3 تستفيد من حقيقة أن:

ثالثاً: أسئلة إنشائية

11. وضّح الفرق بين الضغط اللامصدري والمصدري، مع مثال على كل منهما.

الضغط اللامصدري يتعامل مع البيانات كسلسلة بتّات دون فهم معناها أو مصدرها، مثل RLE وهافمان، ويمكن تطبيقه على أي نوع بيانات. أما الضغط المصدري فيعتمد على فهم طبيعة المصدر (صورة، صوت، فيديو) لإيجاد ما يمكن الاستغناء عنه، مثل JPEG الذي يستغل حدود إدراك العين للألوان، وMP3 الذي يستغل حدود سمع الأذن للترددات.

12. اشرح لماذا تحقق طريقة MPEG نسبة ضغط أعلى بكثير من ضغط كل صورة في الفيديو بشكل منفصل بطريقة JPEG.

لأن الصور المتتابعة في الفيديو تتشابه غالباً في معظم محتواها، فبدل تخزين كل صورة كاملة (كما تفعل JPEG لكل صورة منفردة)، تخزّن MPEG صورة كاملة واحدة بشكل دوري (I-Frame) ثم تكتفي بتخزين الفرق (خطأ التنبؤ) بين الصور اللاحقة وسابقاتها فقط، وهو غالباً فرق بسيط جداً أو صفري في المناطق غير المتحركة من المشهد، ما يقلل حجم البيانات المطلوبة بشكل كبير مقارنة بتكرار ضغط كل صورة بالكامل.

13. صورة ذات وحدة 8×8 بيكسل، بعد إعادة ترتيبها بالمسح الزيغزاغي وجدنا أن آخر 50 قيمة من أصل 64 كلها أصفار. لماذا يحدث هذا عادة بعد مرحلتي DCT والتقريب؟ وكيف يستفيد الضغط اللامصدري (RLE/هافمان) من هذا؟

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