VIDEO·CODEC
الفيديو · العقدة 05
↩ البوابة

قلب كل قرارRD optimization

الترميز الحسابي ومعدّل البِت

المرمّز يتّخذ ملايين القرارات (أي وضع تنبّؤ؟ أي حجم بلوك؟ أي MV؟). ما المعيار؟ ومعادلةٌ واحدة — J = D + λR — تحكمها كلّها. ثم نرى كيف يبلغ الترميز الحسابي حدّ شانون ويتكيّف مع السياق.

بلوك واحد، خياران لترميزه: (أ) متّجه حركة دقيق + باقٍ صغير = جودة عالية لكن بِتّات أكثر. (ب) متّجه تقريبيّ + باقٍ أكبر = بِتّات أقل لكن جودة أدنى.

أيّهما "أفضل"؟ السؤال بلا معنى وحده — يعتمد على ميزانيتك. لو كان النطاق وفيراً، اختر (أ)؛ ولو ضيّقاً، (ب). تحتاج رقماً واحداً يوازن بين "الخطأ البصري" و"عدد البِتّات" بحيث تقارن أي خيارين. كيف توحّد كمّيتين بوحدتين مختلفتين (تشويه مقابل بِتّات) في معيار قرار واحد؟

معيار لاجرانج — حلّ اللغز

الحلّ هو دالّة التكلفة rate-distortion:

RD cost
J = D + λ · R D = التشويه (خطأ بصري، مثلاً SSE) R = عدد البِتّات λ = "سعر البِت" — يربط الوحدتين

لكل خيار، احسب J واختر الأصغر. λ هو المفتاح: كبير = البِتّات غالية → اختر خيارات أصغر (جودة أقل، حجم أقل). صغير = البِتّات رخيصة → اختر جودة أعلى. ضبط λ يضبط نقطة التشغيل على المنحنى — وهو مرتبط بمعامل التكميم.

FIG 1 منحنى RD ونقطة التشغيل — λ ميل الخطّ المماسّ
R (بِتّات) → D (تشويه) → نقطة التشغيل المثلى ميل المماسّ = −λ جودة عالية، حجم كبير حجم صغير، جودة أدنى
كل خيارات الترميز تقع على/فوق منحنى RD. اختيار λ = اختيار ميل المماسّ = نقطة التشغيل. تثبيت λ عبر كل القرارات يعطي ترميزاً متّسقاً (الجودة موزّعة بعدالة على البِتّات).

التحكّم بمعدّل البِت — CRF/CBR/VBR

الوضعيثبّتالاستعمال
CRF (جودة ثابتة)الجودة (λ تقريباً) — الحجم يتغيّرالتخزين/الأرشفة (أبسط وأكفأ)
CBR (معدّل ثابت)البِتّات/الثانية — الجودة تتغيّرالبثّ بنطاق محدود
VBR / مرورينمتوسّط الحجم، يوزّع البِتّات حسب الصعوبةأفضل جودة لحجم مستهدف

المرور الثاني (two-pass): المرور الأول يحلّل صعوبة كل مشهد، والثاني يوزّع البِتّات — يعطي المشاهد المعقّدة (انفجار، ماء) أكثر، والثابتة أقل. هذا "تخصيص بِتّات إدراكي" على مستوى الفيلم — نظير تخصيص البِتّات في ضغط الصوت (مسار الصوت، العقدة ٦).

CABAC — الترميز الحسابي المتكيّف

ليش CABAC لا Huffman — حصاد مسار الصور

CABAC (Context-Adaptive Binary Arithmetic Coding) يبلغ حدّ شانون (مثل الترميز الحسابي، مسار الصور العقدة ٢) زائداً ميزتين: يحوّل كل رمز لبِتّات ثنائية (binarization)، ويحدّث الاحتمالات حسب السياق أثناء الترميز (احتمال "معامل غير صفري" يعتمد على جيرانه). هذا "الإنتروبي المشروط بالسياق" الذي وعد به مسار الصور — مطبَّقاً ديناميكياً. يكسب ~10-15% فوق Huffman/ CAVLC.

  1. لبلوك واحد، ولّد عدّة خيارات ترميز (معاملات تكميم مختلفة، أوضاع تنبّؤ مختلفة). لكلٍّ احسب D (SSE عن الأصل) وR (بِتّات بعد ترميزك).
  2. لقيمة λ معطاة، احسب J=D+λR واختر الأصغر. غيّر λ وراقب القرار يتحوّل من "جودة عالية" إلى "حجم صغير". ارسم نقاط (R,D) ومماسّاتها.
  3. طبّق λ ثابتاً على كل بلوكات إطار، ثم λ عشوائياً لكل بلوك. قارن الجودة البصرية عند نفس الحجم — لماذا الثابت أفضل (توزيع عادل)؟
  4. تحدٍّ: نفّذ ترميزاً حسابياً ثنائياً متكيّف السياق بسيطاً (سياق = قيمة الجار)، وقارنه بـHuffman ثابت على نفس المعاملات.
الخلاصة

كل قرارات المرمّز تُحسَم بـJ=D+λR؛ λ يضبط نقطة التشغيل. التحكّم بالمعدّل (CRF/CBR/VBR/two-pass) يوزّع البِتّات حسب الصعوبة. CABAC يبلغ H ويتكيّف مع السياق. الآن نملك كوديكاً كاملاً ومُحكَماً. لكن التكميم يترك آثاراً (مربّعات، رنين)، والمحتوى القديم interlaced. ندخل عالم الفلاتر.