ترميز متغير الطول متكيف مع السياق
يُعدّ ترميز الطول المتغير التكيفي مع السياق ( CAVLC ) أحد أشكال ترميز الإنتروبيا المستخدم في ترميز الفيديو H.264/MPEG-4 AVC . وهو تقنية ضغط غير ضائعة بطبيعتها ، كغيرها من تقنيات ترميز الإنتروبيا. في H.264/MPEG-4 AVC، يُستخدم لترميز كتل معاملات التحويل المتبقية ذات الترتيب المتعرج. وهو بديل لترميز الحساب الثنائي التكيفي مع السياق (CABAC). يتطلب CAVLC معالجة أقل بكثير لفك التشفير مقارنةً بـ CABAC، على الرغم من أنه لا يضغط البيانات بنفس الكفاءة. يدعم CAVLC جميع ملفات تعريف H.264، على عكس CABAC غير المدعوم في ملفي التعريف الأساسي والموسع.
تُستخدم خوارزمية CAVLC لترميز كتل معاملات التحويل المتبقية والمرتبة بشكل متعرج بحجم 4×4 (و2×2). صُممت CAVLC للاستفادة من عدة خصائص للكتل الكمية بحجم 4×4:
- بعد التنبؤ والتحويل والتكميم، تكون الكتل عادةً متفرقة (تحتوي في الغالب على أصفار).
- غالباً ما تكون أعلى المعاملات غير الصفرية بعد المسح المتعرج عبارة عن سلاسل من +/− 1. يشير CAVLC إلى عدد معاملات +/−1 عالية التردد بطريقة مختصرة.
- يرتبط عدد المعاملات غير الصفرية في الكتل المتجاورة. ويتم ترميز عدد المعاملات باستخدام جدول بحث؛ ويعتمد اختيار جدول البحث على عدد المعاملات غير الصفرية في الكتل المتجاورة.
- يميل مستوى (قيمة) المعاملات غير الصفرية إلى أن يكون أعلى في بداية المصفوفة المعاد ترتيبها (بالقرب من معامل التيار المستمر) وأقل باتجاه الترددات الأعلى. يستفيد برنامج CAVLC من ذلك عن طريق تعديل اختيار جدول البحث الخاص بتقنية VLC لمعامل "المستوى" بناءً على قيم المستويات المشفرة حديثًا.
العناصر المشفرة
تتضمن المعلمات التي يجب ترميزها وإرسالها الجدول التالي:
| حدود | وصف |
|---|---|
| نوع الكتلة الكبيرة | طريقة التنبؤ لكل كتلة ماكرو مشفرة |
| نمط الكتلة المشفرة | يشير إلى الكتل التي تحتوي على معاملات مشفرة داخل كتلة ماكرو |
| إطار مرجعي لمعاملات المُكمِّم | يتم إرسالها كقيمة دلتا من القيمة السابقة لـ QP |
| فهرس الإطار المرجعي | تحديد الإطار (الأطر) المرجعي للتنبؤ المتبادل |
| متجه الحركة | يتم إرسالها كفرق (mvd) من متجه الحركة المتوقع |
| البيانات المتبقية | بيانات المعاملات لكل كتلة 4×4 أو 2×2 |
أمثلة CAVLC
| عنصر | قيمة | شفرة |
|---|---|---|
| رمز المعامل | إجمالي المعاملات = 5، T1s = 3 | 0000100 |
| إشارة T1 (4) | + | 0 |
| إشارة T1 (3) | - | 1 |
| إشارة T1 (2) | - | 1 |
| المستوى (1) | +1 (استخدم Level_VLC0) | 1 |
| المستوى (0) | +3 (استخدم Level_VLC1) | ٠٠١٠ |
| توتال زيروس | 3 | 111 |
| تشغيل_قبل(4) | ZerosLeft=3; run_before=1 | 10 |
| run_before(3) | ZerosLeft=2; run_before=0 | 1 |
| تشغيل_قبل(2) | ZerosLeft=2; run_before=0 | 1 |
| تشغيل_قبل(1) | ZerosLeft=2; run_before=1 | 01 |
| تشغيل_قبل(0) | ZerosLeft=1; run_before=1 | لا حاجة إلى رمز؛ المعامل الأخير. |
| شفرة | عنصر | قيمة | مصفوفة الإخراج |
|---|---|---|---|
| 0000100 | رمز المعامل | إجمالي المعاملات = 5، T1s = 3 | فارغ |
| 0 | علامة T1 | + | 1 |
| 1 | علامة T1 | - | -1 ، 1 |
| 1 | علامة T1 | - | -1 ، -1، 1 |
| 1 | مستوى | +1 | 1 ، -1، -1، 1 |
| ٠٠١٠ | مستوى | +3 | 3 ، 1، -1، -1، 1 |
| 111 | توتال زيروس | 3 | 3، 1، -1، -1، 1 |
| 10 | تشغيل قبل | 1 | 3، 1، -1، -1، 0 ، 1 |
| 1 | تشغيل قبل | 0 | 3، 1، -1، -1، 0، 1 |
| 1 | تشغيل قبل | 0 | 3، 1، -1، -1، 0، 1 |
| 01 | تشغيل قبل | 1 | 3، 0 ، 1، -1، -1، 0، 1 |
في جميع الأمثلة التالية، نفترض أن الجدول Num-VLC0 يستخدم لترميز coeff_token.

0، 3، 0، 1، -1، -1، 0، 1، 0… إجمالي المعاملات = 5 (مفهرسة من أعلى تردد [4] إلى أدنى تردد [0])
إجمالي الأصفار = 3
T1s = 3 (في الواقع هناك 4 أرقام لاحقة ولكن يمكن ترميز 3 منها فقط كـ "حالة خاصة").
التشفير:
سلسلة البتات المرسلة لهذه الكتلة هي 000010001110010111101101.
فك التشفير: يتم "بناء" مصفوفة الإخراج من القيم التي تم فك تشفيرها كما هو موضح أدناه. القيم المضافة إلى مصفوفة الإخراج في كل مرحلة مسطرة.
أدخل جهاز فك التشفير صفرين؛ ومع ذلك، فإن إجمالي الأصفار يساوي 3، لذا يتم إدخال صفر آخر قبل أصغر معامل، مما يجعل مصفوفة الإخراج النهائية: 0، 3، 0، 1، -1، -1، 0، 1
انظر أيضاً
مراجع
- ريتشاردسون، إيان (28 أغسطس 2011). "ترميز الطول المتغير التكيفي السياقي H.264 / AVC" (ملف PDF) . Vcodex . تم الاطلاع عليه في 17 نوفمبر 2024 .
- ترميز الإنتروبيا
- MPEG
- ضغط الفيديو
- مقالات قصيرة في علوم الحاسوب
