IMG·ARCH
العقدة 06الانقلاب الكبير
SIGNAL

WebP · HEIF · AVIFأطفال صيغ الفيديو

من الفيديو إلى الصورة

أغرب وأهمّ نقلة في تاريخ صيغ الصور: أحدث الصيغ لم تُصمَّم كصيغ صور أصلاً. هي إطار واحد مقتطع من ضاغط فيديو. كل "تحسين" هنا هو تعميمٌ لقيدٍ كسرناه في JPEG.

صمّم خَلَفاً لـJPEG. قرّر قبل أن تقرأ:

  1. حجم البلوك: سماء مسطّحة لا تحتاج تقسيماً دقيقاً، وعين تحتاج بلوكات صغيرة. كيف تجعله متكيّفاً؟ ومن يدفع ثمن وصف التقسيم للفكّاك؟
  2. العلاقة بين البلوكات: تذكّر Paeth — كيف تتنبّأ ببلوك كامل من البلوكات المجاورة المُفكوكة؟ وكم اتجاهاً تحتاج؟
  3. تأثير البلوكات: متى تنعّم الحدود — قبل التخزين، بعد الفكّ، أم داخل حلقة الترميز؟
  4. المرمّز: بِمَ تستبدل Huffman وقد صار ANS متاحاً؟

أجب بحدسك. ستجد أنك أعدت اختراع HEVC/AV1.

ليش الفيديو؟ والإدراك المحوري

ضغط الفيديو مشكلة أصعب وأهمّ تجارياً، استثمرت فيها صناعة ضخمة عقوداً (H.264, HEVC, AV1). الإطار intra (keyframe) يُضغط وحده بلا مرجع زمني — بالضبط مثل صورة ثابتة، وطوّرته الصناعة حتى صار أرقى من JPEG.

الإدراك المحوري (أواخر 2000s)

إطار intra مضغوط = صيغة صورة جاهزة، متفوّقة، ومدعومة عتادياً في كل جهاز. بدل تصميم صيغة من الصفر، اقتطع intra frame من أحدث ضاغط فيديو وغلّفه. هذا كل سرّ WebP و HEIF و AVIF. المقايضة: ترميز بطيء جداً مقابل حجم أصغر وفكّ سريع مسرَّع عتادياً.

القرار ١: تقسيم متكيّف (Quadtree)

FIG 1 شبكة 8×8 صلبة (JPEG) مقابل تقسيم هرمي (الحديثة)
JPEG: 8×8 ثابت نفس الحجم للسماء والعين Quadtree متكيّف كبير=رخيص صغير حيث المحتوى يستحق
ابدأ ببلوك كبير (CTU في HEVC، superblock حتى 128×128 في AV1) وقسّمه لأرباع فقط حيث المحتوى يستحق. الثمن: تخزين شجرة التقسيم — لكن مكسب التكيّف يفوقه. يكسر قيد "8×8 ثابت".

القرار ٢: intra prediction — Paeth على منشّطات

قبل التحويل، تنبّأ بمحتوى البلوك من بِكسلات البلوكات المجاورة المُفكوكة (أعلى ويسار)، ثم حوّل وكمّم الخطأ فقط. الخطأ بعد تنبّؤ جيّد إنتروبيه أقل بكثير → التحويل يعمل على إشارة أنظف.

FIG 2 اتجاهات التنبّؤ — من 3 مرشّحين (Paeth) إلى عشرات الاتجاهات
بلوك يُملأ من حافة الجيران رأسي / أفقي + DC + planar HEVC: 33 اتجاهاً زاوياً AV1: 56 اتجاهاً + أوضاع ذكية AV1: Paeth-mode (بالاسم!) + CfL المقابل: Paeth كان اتجاهاً تكيّفياً واحداً بثلاثة مرشّحين. الجذر الذي زرعته العقدة ٠٣ ينفجر هنا.
تنبّؤ اتّجاهي يفترض أن البلوك امتداد لحافة بزاوية ما، فيملؤه بنسخ بِكسلات الحافة. CfL في AV1 يتنبّأ باللون من السطوع — استغلال ارتباطهما. يكسر قيد "البلوكات المستقلّة".

القرارات ٣–٥: تحويلات، مرمّز، وترشيح الحلقة

جواب لغز التنعيم — درس معماري عميق

التنعيم ليس بعد الفكّ ولا قبل التخزين، بل داخل الحلقة: المرمّز والفكّاك يجب أن يبقيا متطابقين في كل خطوة، وإلا انجرف الخطأ.

الصيغ الثلاث — كلٌّ غلافٌ لإطار فيديو

الصيغةأصلهاالسنةملاحظة فلسفية
WebPVP8 intra2010أول اختراق "فيديو→صورة"؛ lossy+lossless+alpha+anim
HEIF/HEICHEVC intra2015أقوى من JPEG بكثير، لكن مثقل ببراءات HEVC
AVIFAV1 intra2019royalty-free عمداً — ردّ AOMedia على براءات HEVC
نمط البراءات — للمرّة الثالثة

HEVC المثقل بالرسوم ولّد AV1 الحرّ، تماماً كما ولّدت LZW المثقلة (GIF) صيغةً حرّة (PNG)، وكما تجنّب JPEG الترميز الحسابي المُبرَّأ. تحالف AOMedia (Google, Netflix, Mozilla, Amazon…) صُنع خصّيصاً لبديل حرّ. القانون يصمّم الصيغ — للمرّة الثالثة.

أ — أعِد اختراع intra prediction بيدك (تبنيه فعلاً):

  1. قسّم صورة رمادية لبلوكات 8×8 وعالجها بترتيب raster. لكل بلوك نفّذ DC/رأسي/أفقي من بِكسلات الحافة المجاورة، واختر الأقلّ خطأً، واحسب residual.
  2. احسب إنتروبي residual مقابل البلوكات الخام — كم انخفض؟ هذا، بعينيك، لماذا تتفوّق الصيغ الحديثة. ثم طبّق DCT على residual ولاحظ تركيزاً أشدّ.

ب — حلّل بِكسلات حقيقية: حوّل صورة إلى JPEG و WebP و AVIF بجودة بصرية متماثلة، قارن الأحجام، وكبّر منطقة حادّة عند ضغط عنيف. اربط كل artifact بجذره المعماري.

الخلاصة

أحدث الصيغ = إطار intra من ضاغط فيديو. كل تحسين = كسر قيد من JPEG: تقسيم متكيّف، intra-prediction (Paeth معمّماً)، تحويلات متعدّدة، مرمّز متكيّف، ترشيح داخل الحلقة. مقايضة جديدة: ترميز بطيء مقابل فكّ سريع عتادياً = صيغة "غير متماثلة". بقي: كيف تُحزَم كل هذه في ملف؟