كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

الجزء الأول: أساسيات العمل مع الفيديو والصور

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

ماذا؟ برنامج ترميز الفيديو هو جزء من البرامج/الأجهزة التي تقوم بضغط و/أو فك ضغط الفيديو الرقمي.

لماذا؟ على الرغم من بعض القيود سواء من حيث عرض النطاق الترددي أو
وفيما يتعلق بمساحة تخزين البيانات، يتطلب السوق بشكل متزايد مقاطع فيديو ذات جودة أعلى. هل تتذكر كيف قمنا في المنشور الأخير بحساب الحد الأدنى المطلوب لـ 30 إطارًا في الثانية، 24 بت لكل بكسل، بدقة 480 × 240؟ لقد حصلنا على 82,944 ميجابت/ثانية بدون ضغط. يعد الضغط حاليًا الطريقة الوحيدة لنقل HD/FullHD/4K بشكل عام إلى شاشات التلفزيون والإنترنت. كيف يتم تحقيق ذلك؟ الآن دعونا نلقي نظرة سريعة على الطرق الرئيسية.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

تمت الترجمة بدعم من برنامج EDISON.

نحن منخرطون في التكامل بين أنظمة المراقبة بالفيديوو نحن نعمل على تطوير ميكروتوموغراف.

برنامج الترميز مقابل الحاوية

من الأخطاء الشائعة التي يرتكبها المبتدئون الخلط بين برنامج ترميز الفيديو الرقمي وحاوية الفيديو الرقمي. الحاوية هي تنسيق معين. غلاف يحتوي على بيانات تعريف الفيديو (وربما الصوت). يمكن اعتبار الفيديو المضغوط بمثابة حمولة حاوية.

عادةً ما يشير امتداد ملف الفيديو إلى نوع الحاوية الخاصة به. على سبيل المثال، من المحتمل أن يكون الملف video.mp4 عبارة عن حاوية MPEG-4 الجزء 14، ومن المرجح أن يكون الملف المسمى video.mkv ماتريوشكا. للتأكد تمامًا من برنامج الترميز وتنسيق الحاوية، يمكنك استخدام FFMPEG أو معلومات الوسائط.

القليل من التاريخ

قبل أن نصل إلى كيف؟، دعنا نتعمق قليلًا في التاريخ لنفهم بشكل أفضل بعض برامج الترميز القديمة.

ترميز الفيديو H.261 ظهر عام 1990 (تقنيًا - عام 1988) وتم إنشاؤه ليعمل بمعدل نقل بيانات يبلغ 64 كيلوبت في الثانية. لقد استخدم بالفعل أفكارًا مثل أخذ عينات فرعية من الألوان، والكتل الكبيرة، وما إلى ذلك. تم نشر معيار ترميز الفيديو في عام 1995 H.263والتي تطورت حتى عام 2001.

تم الانتهاء من النسخة الأولى في عام 2003 H.264 / AVC. في نفس العام، أصدرت TrueMotion برنامج ترميز الفيديو المجاني الذي يُسمى ضياع VP3. اشترت جوجل الشركة في عام 2008، وأطلقت VP8 نفس السنة. في ديسمبر 2012، أصدرت جوجل VP9وهو مدعوم في حوالي ¾ سوق المتصفحات (بما في ذلك الأجهزة المحمولة).

AV1 هو برنامج ترميز فيديو مجاني ومفتوح المصدر جديد تم تطويره بواسطة التحالف من أجل الإعلام المفتوح (اوميديا)، والتي تضم أشهر الشركات، مثل: Google، وMozilla، وMicrosoft، وAmazon، وNetflix، وAMD، وARM، وNVidia، وIntel، وCisco. تم نشر الإصدار الأول من برنامج الترميز، 0.1.0، في 7 أبريل 2016.

ولادة AV1

في أوائل عام 2015، كانت جوجل تعمل على VP10Xiph (المملوكة لشركة Mozilla) كان يعمل عليها Daala، وقامت شركة Cisco بإنشاء برنامج ترميز فيديو مجاني خاص بها يسمى ثور.

ثم مبيغ لا تم الإعلان لأول مرة عن الحدود السنوية لـ شفت (H.265) ورسوم أعلى بـ 8 مرات من H.264، لكن سرعان ما غيروا القواعد مرة أخرى:

لا يوجد حد سنوي
رسوم المحتوى (0,5% من الإيرادات) و
رسوم الوحدة أعلى بحوالي 10 مرات من H.264.

التحالف من أجل الإعلام المفتوح تم إنشاؤه من قبل شركات من مجالات مختلفة: الشركات المصنعة للمعدات (Intel، AMD، ARM، Nvidia، Cisco)، موفري المحتوى (Google، Netflix، Amazon)، منشئو المتصفحات (Google، Mozilla) وغيرهم.

كان لدى الشركات هدف مشترك - برنامج ترميز فيديو بدون حقوق ملكية. ثم يظهر AV1 مع ترخيص براءة اختراع أبسط بكثير. قدم تيموثي بي تيريبيري عرضًا تقديميًا مذهلاً أصبح أصل مفهوم AV1 الحالي ونموذج الترخيص الخاص به.

سوف تتفاجأ بمعرفة أنه يمكنك تحليل برنامج الترميز AV1 من خلال المتصفح (يمكن للمهتمين الذهاب إلى aomanalyzer.org).

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

الترميز العالمي

دعونا نلقي نظرة على الآليات الرئيسية التي يقوم عليها برنامج ترميز الفيديو العالمي. معظم هذه المفاهيم مفيدة وتستخدم في برامج الترميز الحديثة مثل VP9, AV1 и شفت. أحذرك من أنه سيتم تبسيط العديد من الأمور الموضحة. في بعض الأحيان سيتم استخدام أمثلة من العالم الحقيقي (كما هو الحال مع H.264) لتوضيح التقنيات.

الخطوة الأولى - تقسيم الصورة

الخطوة الأولى هي تقسيم الإطار إلى عدة أقسام وأقسام فرعية وما بعدها.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

لماذا؟ هناك العديد من الأسباب. عندما نقوم بتقسيم صورة ما، يمكننا التنبؤ بشكل أكثر دقة بمتجه الحركة باستخدام أقسام صغيرة للأجزاء المتحركة الصغيرة. بينما بالنسبة للخلفية الثابتة، يمكنك قصر نفسك على أقسام أكبر.

عادةً ما تنظم برامج الترميز هذه الأقسام إلى أقسام (أو أجزاء)، وكتل كبيرة (أو كتل شجرة الترميز)، وأقسام فرعية متعددة. يختلف الحد الأقصى لحجم هذه الأقسام، حيث يقوم HEVC بتعيينه على 64x64 بينما يستخدم AVC 16x16، ويمكن تقسيم الأقسام الفرعية إلى أحجام 4x4.

هل تتذكر أنواع الإطارات من المقالة الأخيرة؟! يمكن تطبيق الشيء نفسه على الكتل، حتى نتمكن من الحصول على جزء I، وكتلة B، وكتلة P-macroblock، وما إلى ذلك.

بالنسبة لأولئك الذين يرغبون في التدرب، شاهدوا كيفية تقسيم الصورة إلى أقسام وأقسام فرعية. للقيام بذلك، يمكنك استخدام ما سبق ذكره في المقالة السابقة. إنتل فيديو برو محلل (النسخة المدفوعة، ولكن مع نسخة تجريبية مجانية تقتصر على الإطارات العشرة الأولى). الأقسام التي تم تحليلها هنا VP9:

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

الخطوة الثانية - التنبؤ

بمجرد أن يكون لدينا أقسام، يمكننا عمل تنبؤات فلكية لها. ل توقعات الانتر يجب أن يتم نقلها ناقلات الحركة والباقي، وللتنبؤ INTRA يتم إرساله اتجاه التنبؤ والباقي.

الخطوة الثالثة - التحول

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

على الرغم من وجود طرق أخرى، دعونا ننظر إليها بمزيد من التفصيل. تحويل جيب التمام منفصلة (DCT - من تحويل جيب التمام منفصلة). الوظائف الرئيسية لـ DCT:

  • يحول كتل البكسل إلى كتل متساوية الحجم من معاملات التردد.
  • يكثف القوة للمساعدة في القضاء على التكرار المكاني.
  • يوفر إمكانية الرجوع.

2 فبراير 2017 سينترا ر.ج. (سينترا، RJ) وباير إف إم. نشرت (Bayer FM) مقالًا حول تحويل يشبه DCT لضغط الصور والذي يتطلب 14 إضافة فقط.

لا تقلق إذا لم تفهم فوائد كل نقطة. والآن دعونا نستخدم أمثلة محددة لمعرفة قيمتها الحقيقية.

لنأخذ هذه المجموعة من البكسل مقاس 8 × 8:

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

يتم تقديم هذه الكتلة إلى الصورة التالية مقاس 8 × 8 بكسل:

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

قم بتطبيق DCT على كتلة البكسل هذه واحصل على كتلة 8 × 8 من المعاملات:

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

وإذا قمنا بتمثيل كتلة المعاملات هذه، فسنحصل على الصورة التالية:

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

كما ترون، لا تبدو الصورة الأصلية. يمكنك أن ترى أن المعامل الأول يختلف تمامًا عن جميع المعاملات الأخرى. يُعرف هذا المعامل الأول بمعامل DC، والذي يمثل جميع العينات الموجودة في مصفوفة الإدخال، وهو ما يشبه المتوسط.

تتمتع كتلة المعاملات هذه بخاصية مثيرة للاهتمام: فهي تفصل المكونات عالية التردد عن المكونات منخفضة التردد.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

في الصورة، تتركز معظم الطاقة في الترددات المنخفضة، لذلك إذا قمت بتحويل الصورة إلى مكونات التردد الخاصة بها وتجاهلت معاملات التردد الأعلى، فيمكنك تقليل كمية البيانات اللازمة لوصف الصورة دون التضحية بالكثير من جودة الصورة.

يشير التردد إلى مدى سرعة تغير الإشارة.

دعونا نحاول تطبيق المعرفة المكتسبة في حالة الاختبار عن طريق تحويل الصورة الأصلية إلى ترددها (كتلة المعاملات) باستخدام DCT ثم التخلص من جزء من المعاملات الأقل أهمية.

أولا نقوم بتحويله إلى مجال التردد.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

بعد ذلك، نتخلص من جزء (67%) من المعاملات، وخاصة الجزء السفلي الأيمن.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

وأخيرًا، نعيد بناء الصورة من كتلة المعاملات المهملة هذه (تذكر أنها يجب أن تكون قابلة للعكس) ونقارنها مع الصورة الأصلية.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

ونحن نرى أنها تشبه الصورة الأصلية، ولكن هناك اختلافات كثيرة عن الصورة الأصلية. لقد تخلصنا من 67,1875% وما زلنا نحصل على شيء يشبه الأصل. كان من الممكن تجاهل المعاملات بشكل أكثر تفكيرًا للحصول على صورة ذات جودة أفضل، ولكن هذا هو الموضوع التالي.

يتم إنشاء كل معامل باستخدام جميع وحدات البكسل

هام: لا يتم تعيين كل معامل مباشرةً إلى بكسل واحد، ولكنه عبارة عن مجموع مرجح لكل وحدات البكسل. يوضح هذا الرسم البياني المذهل كيفية حساب المعاملين الأول والثاني باستخدام الأوزان الفريدة لكل مؤشر.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

يمكنك أيضًا محاولة تصور DCT من خلال النظر إلى تكوين صورة بسيط يعتمد عليه. على سبيل المثال، هذا هو الرمز A الذي تم إنشاؤه باستخدام كل معامل وزن:

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

الخطوة الرابعة - التكميم

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

كيف يمكنك تحديد كتلة من المعاملات؟ واحدة من أبسط الطرق هي التكميم الموحد، عندما نأخذ كتلة، نقسمها على قيمة واحدة (على 10) ونقرب النتيجة.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

هل يمكننا عكس هذه المجموعة من المعاملات؟ نعم نستطيع ذلك بضرب نفس القيمة التي قسمنا عليها.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

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

الخطوة 5 - ترميز الإنتروبيا

بمجرد الانتهاء من تحديد كمية البيانات (كتل الصور، والأجزاء، والإطارات)، لا يزال بإمكاننا ضغطها دون فقدان البيانات. هناك العديد من الطرق الخوارزمية لضغط البيانات. سنلقي نظرة سريعة على بعضها، لفهم أعمق يمكنك قراءة كتاب فهم الضغط: ضغط البيانات للمطورين المعاصرين ("فهم الضغط: ضغط البيانات للمطورين المعاصرين").

تشفير الفيديو باستخدام VLC

لنفترض أن لدينا مجموعة من الشخصيات: a, e, r и t. يتم عرض الاحتمالية (التي تتراوح من 0 إلى 1) لعدد مرات ظهور كل حرف في الدفق في هذا الجدول.

a e r t
احتمال 0,3 0,3 0,2 0,2

يمكننا تعيين رموز ثنائية فريدة (ويفضل أن تكون صغيرة) للرموز الأكثر احتمالاً، ورموز أكبر للرموز الأقل احتمالاً.

a e r t
احتمال 0,3 0,3 0,2 0,2
الرمز الثنائي 0 10 110 1110

نقوم بضغط الدفق، على افتراض أننا سننتهي بإنفاق 8 بتات لكل حرف. وبدون الضغط، ستكون هناك حاجة إلى 24 بت لكل حرف. إذا قمت باستبدال كل حرف بالرمز الخاص به، فستحصل على التوفير!

الخطوة الأولى هي تشفير الحرف e، وهو ما يساوي 10، والحرف الثاني هو a، وهو مضاف (ليس بطريقة رياضية): [10] [0]، وأخيرا الحرف الثالث t، مما يجعل تدفق البت المضغوط النهائي يساوي [10] [0] [1110] أو 1001110، والذي يتطلب 7 بتات فقط (مساحة أقل بمقدار 3,4 مرة من المساحة الأصلية).

يرجى ملاحظة أن كل رمز يجب أن يكون رمزًا فريدًا ببادئة. خوارزمية هوفمان سوف تساعدك على العثور على هذه الأرقام. على الرغم من أن هذه الطريقة لا تخلو من العيوب، إلا أن هناك برامج ترميز فيديو لا تزال تقدم هذه الطريقة الخوارزمية للضغط.

يجب أن يتمتع كل من جهاز التشفير ووحدة فك التشفير بإمكانية الوصول إلى جدول الرموز الذي يحتوي على الرموز الثنائية الخاصة بهما. لذلك، من الضروري أيضًا إرسال جدول كمدخل.

الترميز الحسابي

لنفترض أن لدينا مجموعة من الشخصيات: a, e, r, s и t، واحتمالها معروض في هذا الجدول.

a e r s t
احتمال 0,3 0,3 0,15 0,05 0,2

باستخدام هذا الجدول، سنقوم ببناء نطاقات تحتوي على جميع الأحرف الممكنة، مرتبة حسب أكبر رقم.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

الآن دعونا نقوم بتشفير دفق من ثلاثة أحرف: أكل.

أولا حدد الحرف الأول e، والذي يقع في النطاق الفرعي من 0,3 إلى 0,6 (غير متضمن). نأخذ هذا المدى الفرعي ونقسمه مرة أخرى بنفس النسب السابقة، ولكن لهذا المدى الجديد.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

دعونا نواصل ترميز تيارنا أكل. الآن خذ الشخصية الثانية a، والذي يقع في النطاق الفرعي الجديد من 0,3 إلى 0,39، ثم اتخذ الحرف الأخير t وبتكرار نفس العملية مرة أخرى، نحصل على النطاق الفرعي النهائي من 0,354 إلى 0,372.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

نحتاج فقط إلى تحديد رقم في النطاق الفرعي الأخير من 0,354 إلى 0,372. لنختار 0,36 (ولكن يمكنك اختيار أي رقم آخر في هذا النطاق الفرعي). فقط بهذا الرقم سنتمكن من استعادة البث الأصلي. يبدو الأمر كما لو كنا نرسم خطًا ضمن النطاقات لتشفير دفقنا.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

العملية العكسية (أي، فك التشفير) بنفس البساطة: باستخدام رقمنا 0,36 ونطاقنا الأولي، يمكننا تنفيذ نفس العملية. لكن الآن، باستخدام هذا الرقم، نحدد الدفق المشفر باستخدام هذا الرقم.

مع النطاق الأول، نلاحظ أن رقمنا يتوافق مع الشريحة، وبالتالي هذا هو الحرف الأول لدينا. الآن نقوم بتقسيم هذا النطاق الفرعي مرة أخرى باتباع نفس العملية كما كان من قبل. هنا يمكنك أن ترى أن 0,36 يتوافق مع الرمز aوبعد تكرار العملية وصلنا إلى الحرف الأخير t (يشكل دفقنا المشفر الأصلي أكل).

يجب أن يحتوي كل من جهاز التشفير ووحدة فك التشفير على جدول لاحتمالات الرموز، لذلك من الضروري إرساله في بيانات الإدخال أيضًا.

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

والفكرة هي ضغط تدفق البتات الكمي دون فقدان البيانات. من المؤكد أن هذه المقالة تفتقد الكثير من التفاصيل والأسباب والمقايضات وما إلى ذلك. ولكن إذا كنت مطورًا، فيجب أن تعرف المزيد. تحاول برامج الترميز الجديدة استخدام خوارزميات تشفير الإنتروبيا المختلفة مثل ANS.

الخطوة 6 - تنسيق دفق البت

بعد القيام بكل هذا، يبقى فك الإطارات المضغوطة في سياق الخطوات المنجزة. يجب أن يتم إبلاغ وحدة فك التشفير بشكل صريح بالقرارات التي يتخذها جهاز التشفير. يجب تزويد وحدة فك التشفير بجميع المعلومات الضرورية: عمق البت، ومساحة اللون، والدقة، ومعلومات التنبؤ (متجهات الحركة، والتنبؤ الاتجاهي للتداخل الداخلي)، والملف الشخصي، والمستوى، ومعدل الإطارات، ونوع الإطار، ورقم الإطار، وغير ذلك الكثير.

سنلقي نظرة سريعة على تدفق البتات H.264. خطوتنا الأولى هي إنشاء الحد الأدنى من تدفق البت H.264 (يضيف FFmpeg افتراضيًا جميع خيارات التشفير مثل سي نال - سنكتشف ما هو أبعد قليلاً). يمكننا القيام بذلك باستخدام مستودعنا الخاص وFFmpeg.

./s/ffmpeg -i /files/i/minimal.png -pix_fmt yuv420p /files/v/minimal_yuv420.h264

سيقوم هذا الأمر بإنشاء تدفق بت خام H.264 بإطار واحد بدقة 64×64 مع مساحة الألوان يوف 420. في هذه الحالة، يتم استخدام الصورة التالية كإطار.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

H.264 دفق البت

معيار AVC (H.264) يحدد أنه سيتم إرسال المعلومات في إطارات كبيرة (بمعنى الشبكة)، تسمى في (هذا هو مستوى تجريد الشبكة). الهدف الرئيسي لـ NAL هو تقديم عرض فيديو "متوافق مع الويب". يجب أن يعمل هذا المعيار على أجهزة التلفاز (المعتمدة على الدفق)، والإنترنت (المعتمدة على الحزم).

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

توجد علامة مزامنة لتحديد حدود عناصر NAL. يحتوي كل رمز مزامنة على قيمة 0x00 0x00 0x01, باستثناء الأول، وهو يساوي 0x00 0x00 0x00 0x01. إذا أطلقنا عرافة بالنسبة لتدفق البتات H.264 الذي تم إنشاؤه، نحدد ثلاثة أنماط NAL على الأقل في بداية الملف.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

كما هو مذكور، يجب أن يعرف جهاز فك التشفير ليس فقط بيانات الصورة، ولكن أيضًا تفاصيل الفيديو والإطار والألوان والمعلمات المستخدمة وغير ذلك الكثير. يحدد البايت الأول من كل NAL فئته ونوعه.

معرف نوع NAL وصف
0 نوع غير معروف
1 جزء من الصورة المشفرة بدون IDR
2 قسم بيانات الشريحة المشفرة A
3 قسم بيانات الشريحة المشفرة B
4 قسم بيانات الشريحة المشفرة C
5 جزء IDR مشفر من صورة IDR
6 مزيد من المعلومات حول ملحق SEI
7 مجموعة معلمات تسلسل SPS
8 مجموعة من معلمات الصورة PPS
9 فاصل الوصول
10 نهاية التسلسل
11 نهاية الخيط
... ...

عادةً ما يكون NAL الأول لدفق البت هو الصحة والصحة النباتية. هذا النوع من NAL مسؤول عن الإبلاغ عن متغيرات التشفير الشائعة مثل الملف الشخصي والمستوى والدقة وما إلى ذلك.

إذا تخطينا علامة المزامنة الأولى، فيمكننا فك تشفير البايت الأول لمعرفة نوع NAL الأول.

على سبيل المثال، البايت الأول بعد رمز المزامنة هو 01100111حيث الجزء الأول (0) في الحقل forbidden_zero_bit. البتتان التاليتان (11) يخبرنا بالمجال نال_ref_idc, مما يشير إلى ما إذا كان NAL هذا حقل مرجعي أم لا. والخمس بتات الباقية (00111) يخبرنا بالمجال نال_وحدة_نوع، في هذه الحالة هي كتلة SPS (7) نال.

البايت الثاني (ثنائي=01100100, عرافة=0x64, ديسمبر=100) في SPS NAL هو الحقل الملف الشخصي_idc, الذي يوضح الملف الشخصي الذي استخدمه برنامج التشفير. في هذه الحالة، تم استخدام ملف تعريف عالي محدود (أي ملف تعريف عالي بدون دعم مقطع B ثنائي الاتجاه).

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

إذا نظرت إلى مواصفات bitstream H.264 بالنسبة لـ SPS NAL، سنجد العديد من القيم لاسم المعلمة وفئتها ووصفها. على سبيل المثال، دعونا ننظر إلى الحقول pic_width_in_mbs_minus_1 и pic_height_in_map_units_minus_1.

اسم المعلمة فئة وصف
pic_width_in_mbs_minus_1 0 إي (ت)
pic_height_in_map_units_minus_1 0 إي (ت)

إذا قمنا ببعض العمليات الحسابية مع قيم هذه الحقول، فسنحصل على الدقة. يمكن للمرء أن يمثل 1920 × 1080 باستخدام pic_width_in_mbs_minus_1 بقيمة 119 ((119 + 1) * حجم الماكرو بلوك = 120 * 16 = 1920). مرة أخرى، لتوفير المساحة، بدلًا من ترميز 1920، قمنا بذلك باستخدام 119.

إذا واصلنا التحقق من الفيديو الذي تم إنشاؤه في شكل ثنائي (على سبيل المثال: xxd -b -c 11 v/minimal_yuv420.h264)، ثم يمكنك الانتقال إلى NAL الأخير، وهو الإطار نفسه.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

هنا نرى قيم 6 بايت الأولى: 01100101 10001000 10000100 00000000 00100001 11111111. نظرًا لأن البايت الأول معروف بأنه يشير إلى نوع NAL، ففي هذه الحالة (00101) هو جزء IDR (5)، ومن ثم يمكنك استكشافه بشكل أكبر:

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

باستخدام معلومات المواصفات، سيكون من الممكن فك تشفير نوع الجزء (Slice_type) ورقم الإطار (إطار_رقم) من بين المجالات الهامة الأخرى.

للحصول على قيم بعض الحقول (ue(v), me(v), se(v) أو te(v)))، نحتاج إلى فك تشفير الجزء باستخدام وحدة فك ترميز خاصة تعتمد على رمز جولوم الأسي. هذه الطريقة فعالة جدًا لترميز القيم المتغيرة، خاصة عندما يكون هناك العديد من القيم الافتراضية.

معنى Slice_type и إطار_رقم من هذا الفيديو 7 (جزء I) و0 (الإطار الأول).

يمكن اعتبار دفق البت بمثابة بروتوكول. إذا كنت تريد معرفة المزيد عن تدفق البتات، فيجب عليك الرجوع إلى المواصفات الاتحاد الدولي للاتصالات H.264. فيما يلي مخطط ماكرو يوضح مكان وجود بيانات الصورة (YUV في شكل مضغوط).

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

يمكن فحص تدفقات البت الأخرى، مثل VP9, H.265 (شفت) أو حتى أفضل تدفق بت جديد لدينا AV1. هل جميعهم متشابهون؟ لا، ولكن بمجرد أن تفهم واحدًا على الأقل، يصبح من الأسهل بكثير فهم الباقي.

تريد ممارسة؟ استكشف تدفق البتات H.264

يمكنك إنشاء فيديو بإطار واحد واستخدام MediaInfo لفحص تدفق البتات H.264. في الواقع، لا شيء يمنعك حتى من النظر إلى الكود المصدري الذي يحلل تدفق البتات H.264 (AVC).

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

للتدريب العملي، يمكنك استخدام Intel Video Pro Analyzer (هل قلت بالفعل أن البرنامج مدفوع، ولكن هناك نسخة تجريبية مجانية بحد أقصى 10 إطارات؟).

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

مراجعة

لاحظ أن العديد من برامج الترميز الحديثة تستخدم نفس النموذج الذي درسناه للتو. هنا، دعونا نلقي نظرة على المخطط التفصيلي لبرنامج ترميز الفيديو ثور. أنه يحتوي على جميع الخطوات التي مررنا بها. الهدف الأساسي من هذا المنشور هو على الأقل إعطاؤك فهمًا أفضل للابتكارات والوثائق في هذا المجال.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

في السابق، تم حساب أنه ستكون هناك حاجة إلى 139 جيجابايت من مساحة القرص لتخزين ملف فيديو مدته ساعة واحدة بجودة 720 بكسل و30 إطارًا في الثانية. إذا كنت تستخدم الأساليب التي تمت مناقشتها في هذه المقالة (التنبؤات الداخلية والتنبؤات الداخلية، والتحويل، والتكميم، وترميز الإنتروبيا، وما إلى ذلك)، فيمكنك تحقيق (استنادًا إلى حقيقة أننا ننفق 0,031 بت لكل بكسل)، مقطع فيديو تمامًا جودة مرضية، حيث تشغل 367,82 ميجابايت فقط، وليس 139 جيجابايت من الذاكرة.

كيف يحقق H.265 نسبة ضغط أفضل من H.264؟

الآن بعد أن عرفنا المزيد عن كيفية عمل برامج الترميز، أصبح من الأسهل فهم كيف يمكن لبرامج الترميز الأحدث تقديم دقة أعلى مع عدد أقل من البتات.

إذا قارنت AVC и شفت، تجدر الإشارة إلى أن هذا يكون دائمًا تقريبًا اختيارًا بين حمل أكبر لوحدة المعالجة المركزية ونسبة الضغط.

شفت يحتوي على خيارات قسم (وقسم فرعي) أكثر من AVCوالمزيد من اتجاهات التنبؤ الداخلي وتحسين ترميز الإنتروبيا والمزيد. تم إجراء كل هذه التحسينات H.265 قادرة على ضغط 50٪ أكثر من H.264.

كيف يعمل برنامج ترميز الفيديو؟ الجزء 2. ماذا ولماذا وكيف

الجزء الأول: أساسيات العمل مع الفيديو والصور

المصدر: www.habr.com

إضافة تعليق