IMG·ARCH
العقدة 01الأساس
SIGNAL

القفص الذي يحكم كل الصيغالمبادئ الأولى

نظرية المعلومات: حدود الممكن

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

ملفّان، كلٌّ ١٠٠٠٠ بايت: أ كلّها 0x00، ب ضوضاء عشوائية نقية.

أيّهما يُضغط أكثر؟ (سهل.) الآن الصعب: عرّف "يمكن ضغطه" برقم يُقاس. ما الكمية التي تختلف بين الملفّين وتحدّد بالضبط كم بايتاً لا بد أن يبقى بعد أفضل ضغط في الكون؟ فكّر في "المفاجأة": قيمة 0x00 بعد ٩٩٩٩ صفراً — هل تفاجئك؟

اشتقاق "المفاجأة" من الصفر

شانون (1948) قلب السؤال: المعلومة هي إزالة عدم اليقين. المتوقَّع لا يحمل معلومة؛ المفاجئ يحملها. إذن المعلومة دالّة على الاحتمال. لنشتقّ مقياس المفاجأة I(p) بدل حفظه — ما الشروط التي يجب أن يحقّقها بالضرورة؟

FIG 1 اشتقاق I(p) = log(1/p) من ثلاثة شروط
١) المؤكّد لا يفاجئ: I(1)=0 ٢) الأندر أكثر مفاجأة (متناقصة) ٣) الجمعية (الحاسم): I(p₁·p₂)=I(p₁)+I(p₂) الضرب → جمع: اللوغاريتم وحده يفعلها ⇒ I(p) = −log₂(p) = log₂(1/p) الأساس 2 ⇒ الوحدة: بِت p (الاحتمال) → I(p) bit → p=1→0 p→0 ⇒ ∞ ½1bit
الشرط ٣ يفرض دالّة تحوّل الضرب إلى جمع = اللوغاريتم. حدثٌ احتماله ½ مفاجأته بِت واحد؛ احتماله 1/256 مفاجأته 8 بِت.
ليش — هذا الاشتقاق ليس ترفاً

حين تصل للعقدة ٠٢ وترى Huffman يعطي الرموز النادرة أكواداً أطول، ستدرك أنه ليس حيلة — إنه محاولة عملية لمطابقة log(1/p). الاشتقاق أعلاه هو "ليش" خوارزميات الترميز كلها.

الإنتروبي: متوسّط المفاجأة = القفص

المفاجأة خاصّية حدث واحد. الصورة آلاف الأحداث. نريد متوسّط المفاجأة المتوقَّع = الإنتروبي:

entropy
H = Σ pᵢ · log₂(1/pᵢ) bit / رمز

نظرية شانون لترميز المصدر: لا توجد طريقة لترميز رموز مصدرٍ بمتوسّط أقلّ من H دون فقدان معلومة. تقترب منه بقدر ما تشاء، لكن لا تنزل تحته أبداً.

الملفالتوزيعHالنتيجة
أ — كله أصفارp(0x00)=10إنتروبي صفر → يُختزل لبضعة بايتات
ب — عشوائيكلٌّ 1/2568إنتروبي أقصى → لا يُضغط ولا بِتّاً
جذر خطأ شائع

"أي ملف يمكن ضغطه أكثر بخوارزمية أذكى" — خطأ. الجذر: الخلط بين تكرار سطحي وإنتروبي. لو صحّ لضغطنا أي ملف حتى بِتٍّ واحد (حجّة العدّ تُثبت الاستحالة: لا دالّة عكسية تطابق ٢ⁿ ملفاً بأقل من ٢ⁿ مخرَجاً). كل ضغط هو استغلال انحراف عن العشوائية.

النقطة التي تغيّر كل شيء: الإنتروبي يعتمد على النموذج

حسبنا الإنتروبي بافتراض أن البِكسلات مستقلّة. لكن البِكسل يشبه جاره (العقدة ٠٠)! فإذا غيّرنا النموذج — نمذجنا "الفرق عن الجار" بدل القيمة المطلقة — يتغيّر التوزيع، وقد ينهار الإنتروبي:

FIG 2 نفس البيانات، نموذجان، إنتروبيان
القيم المطلقة (سماء متدرّجة) منتشر ⇒ H عالٍ model swap → فروقات الجيران مركّز عند 0 ⇒ H منخفض
نفس الصورة: نمذجة القيم تعطي توزيعاً منتشراً (إنتروبي عالٍ)، ونمذجة الفروقات تعطي توزيعاً مركّزاً عند الصفر (إنتروبي منهار).
أعمق فكرة في المنهج كله

الإنتروبي ليس خاصّية للبيانات وحدها — بل خاصّية للبيانات بالنسبة إلى نموذج يتنبّأ بها. الضغط = إيجاد نموذج يجعل المفاجأة أقلّ. كل صيغة صور = نموذج تنبّؤ + مرمّز إنتروبي. هذا الانقسام (Model ↔ Coder) هو المحور الذي تدور حوله كل العقد القادمة.

  1. اقرأ ملفاً، احسب تكرار كل بايت، ثم احسب H بالمعادلة. الناتج bit/byte.
  2. اضرب H × عدد البايتات ÷ 8 → الحجم النظري الأدنى. اطبع نسبة الضغط الممكنة.
  3. اللغز: أنشئ تيّاراً جديداً (byte[i] − byte[i-1]) mod 256، واحسب إنتروبيه. على صورة متدرّجة يجب أن ينهار. ثم جرّبه على ضوضاء عشوائية — لماذا لا ينخفض هنا؟

الهدف: أن ترى بعينيك أن "تغيير النموذج" خفض الإنتروبي على البيانات الحقيقية ولم يخفضه على الضوضاء — فتشتقّ بنفسك لماذا توجد مرشّحات PNG أصلاً.

الخلاصة

المعلومة = log(1/p). الإنتروبي H = Σ pᵢ log₂(1/pᵢ) = الحدّ الأدنى المطلق. الضوضاء النقية غير قابلة للضغط. والأهم: الإنتروبي يعتمد على النموذج → الضغط = نموذج + مرمّز. من هنا تنبت شجرتان: المرمّز (العقدة ٠٢) والنموذج (العقدة ٠٣ و ٠٤–٠٥).