تشغيل فيديو بنطاق عالي الديناميكية (HDR)

إنّ الفيديو بنطاق عالي الديناميكية (HDR) هو المرحلة التالية في مجال فك ترميز الفيديوهات العالية الجودة، ما يقدّم خصائص لا مثيل لها لإعادة إنتاج المشهد. ويحدث ذلك عن طريق زيادة النطاق الديناميكي لمكون الإضاءة بشكل ملحوظ (من 100 قرص مضغوط/م2 إلى 1,000 ثانية من cd/m2) واستخدام مسافة أعرض بكثير 20 لون (BT020). وهو الآن عنصر مركزي لتطوُّر الدقة الفائقة بدقة 4K في مجال التلفزيون.

يتيح نظام التشغيل Android 10 فيديوهات HDR التالية.

  • تقنية HDR10
  • نموذج الفيديو 9 (VP9)
  • +HDR10

بدءًا من Android 9 والإصدارات الأحدث، يُبلغ MediaCodec عن البيانات الوصفية لتنسيق HDR بغض النظر عن الوضع المُعدَّل. يمكنك الحصول على بيانات تم فك ترميزها مع البيانات الوصفية الثابتة/الديناميكية في الوضع غير المُشفَّر. وبالنسبة إلى HDR10 وVP9Profile2 اللذين يستخدمان بيانات وصفية ثابتة، يتم عرض هذه البيانات بتنسيق الإخراج بالمفتاح KEY_HDR_STATIC_INFO. بالنسبة إلى تقنية HDR10+ التي تستخدم البيانات الوصفية الديناميكية، يتم الإبلاغ عن ذلك مع المفتاح KEY_HDR10_PLUS_INFO في تنسيق الإخراج وقد يتغيّر مع كل إطار نتائج. يُرجى الاطّلاع على نفقات الوسائط المتعددة للحصول على مزيد من المعلومات.

بدءًا من الإصدار Android 7.0، يتضمّن التوافق الأولي للنطاق العالي الديناميكية إنشاء ثوابت مناسبة لاكتشاف مسارات فيديو بنطاق عالي الديناميكية وإعدادها. ويعني ذلك تحديد أنواع برامج الترميز وأوضاع العرض وتحديد كيفية تمرير بيانات تقنية HDR إلى MediaCodec وتقديمها إلى برامج فك ترميز المحتوى بتقنية HDR.

يهدف هذا المستند إلى مساعدة مطوّري التطبيقات في إتاحة بث محتوى HDR وتشغيله، ومساعدة المصنّعين الأصليّين للأجهزة وشرائح المعالجة المتقدّمة في تفعيل ميزات HDR.

تكنولوجيات النطاق العالي الديناميكية (HDR) المتوافقة

اعتبارًا من الإصدار 7.0 من نظام التشغيل Android والإصدارات الأحدث، أصبحت تقنيات HDR التالية متاحة.

تكنولوجيا ‫Dolby-Vision HDR10 VP9-HLG ‫VP9-PQ
برنامج الترميز AVC/HEVC HEVC ‫VP9 ‫VP9
دالة النقل ‫ST-2084 ST-2084 HLG ‫ST-2084
نوع البيانات الوصفية ذات تنسيق HDR ديناميكي ثابت بدون تحديد نمط ثابت

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

  • لا تتوفّر واجهة برمجة تطبيقات Android عادية للتحقّق مما إذا كان تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) متاحًا باستخدام برامج الترميز غير المُشفَّرة.
  • يجب أن توفّر برامج ترميز الفيديوهات التي يتم تشفيرها وفك تشفيرها والتي تعلن عن إمكانية تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) إمكانية تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) عند توصيلها بشاشات متوافقة مع هذا التنسيق.
  • لا يتوافق إصدار GL لمحتوى النطاق العالي الديناميكية مع إصدار Android 7.0 من AOSP.

الاكتشاف

يتطلّب "التشغيل باستخدام النطاق العالي الديناميكية" برنامج فك ترميز متوافقًا مع تقنية HDR والاتصال بجهاز عرض مزوّد بتقنية النطاق العالي الديناميكية. تتطلّب بعض التكنولوجيات استخدام معالج محدد بشكل اختياري.

الشاشة

ستستخدم التطبيقات واجهة برمجة تطبيقات Display.getHdrCapabilities الجديدة للاستعلام عن تقنيات النطاق العالي الديناميكية المتوافقة مع الشاشة المحدّدة. هذه هي المعلومات في الأساس في كتلة بيانات البيانات الوصفية الثابتة لـ EDID كما هو محدد في CTA-861.3:

  • public Display.HdrCapabilities getHdrCapabilities()
    يعرض إمكانيات شاشة العرض في ما يتعلّق بتقنية النطاق العالي الديناميكية (HDR).
  • Display.HdrCapabilities
    يحتوي على إمكانات تقنية النطاق العالي الديناميكية (HDR) لشاشة معيّنة. على سبيل المثال، نتعرّف على ما يتوافق مع تقنية HDR وتفاصيل حول بيانات الإضاءة المطلوبة

الثابت:

  • int HDR_TYPE_DOLBY_VISION
    فريق دعم Doolby Vision
  • int HDR_TYPE_HDR10
    التوافق مع HDR10 / PQ
  • int HDR_TYPE_HDR10_PLUS
    التوافق مع تقنية HDR10+
  • int HDR_TYPE_HLG
    التوافق مع Gamma المختلط
  • float INVALID_LUMINANCE
    قيمة السطوع غير صالحة.

الطرق العامة:

  • float getDesiredMaxAverageLuminance()
    عرض بيانات الحد الأقصى لضوء متوسط الإطار للمحتوى المطلوب بالأقراص المضغوطة/القرص المضغوط/المتر2 لهذه الشاشة.
  • float getDesiredMaxLuminance()
    عرض بيانات الحد الأقصى للإضاءة المطلوبة في القرص المضغوط/القرص المضغوط/متر 2 لهذه الشاشة.
  • float getDesiredMinLuminance()
    عرض بيانات الحد الأدنى للإضاءة للمحتوى المطلوب بالقرص المضغوط/القرص المضغوط/m2 لهذه الشاشة.
  • int[] getSupportedHdrTypes()
    تستخرج أنواع HDR المتوافقة مع هذه الشاشة (راجِع الثوابت). تعرِض صفيفًا فارغًا إذا لم تكن الشاشة متوافقة مع تقنية النطاق العالي الديناميكية.

أداة فك الترميز

يجب أن تستخدم التطبيقات واجهة برمجة التطبيقات الحالية CodecCapabilities.profileLevels للتحقّق من توفّر ملفّات تعريف جديدة متوافقة مع تقنية HDR:

Dolby-Vision

MediaFormat ثابت mime:

String MIMETYPE_VIDEO_DOLBY_VISION

MediaCodecInfo.CodecProfileLevel ثابتًا للملف الشخصي:

int DolbyVisionProfileDvavPen
int DolbyVisionProfileDvavPer
int DolbyVisionProfileDvheDen
int DolbyVisionProfileDvheDer
int DolbyVisionProfileDvheDtb
int DolbyVisionProfileDvheDth
int DolbyVisionProfileDvheDtr
int DolbyVisionProfileDvheStn

يجب دمج طبقات الفيديو وبياناته الوصفية Dolby Vision في مخزن مؤقت واحد لكل لقطة بواسطة تطبيقات الفيديو. ويتم ذلك تلقائيًا من خلال MediaExtractor المتوافق مع Dolby-Vision.

HEVC HDR 10

MediaCodecInfo.CodecProfileLevel ثابتًا للملف الشخصي:

int HEVCProfileMain10HDR10
int HEVCProfileMain10HDR10Plus

VP9 HLG وPQ

MediaCodecInfo.CodecProfileLevel ملف شخصي الثوابت:

int VP9Profile2HDR
int VP9Profile2HDR10Plus
int VP9Profile3HDR
int VP9Profile3HDR10Plus

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

تضمن برامج فك الترميز النفقية فقط تشغيل محتوى بنطاق عالي الديناميكية (HDR). قد يؤدي تشغيل المحتوى باستخدام برامج الترميز غير المُشفَّرة إلى فقدان معلومات HDR وتحويل المحتوى إلى نطاق عادي من الألوان.

أداة الاستخراج

الحاويات التالية متوافقة مع تقنيات النطاق العالي الديناميكية المختلفة على نظام التشغيل Android 7.0:

تكنولوجيا ‫Dolby-Vision HDR10 VP9-HLG ‫VP9-PQ
الحاوية MP4 MP4 WebM WebM

لا يدعم النظام الأساسي اكتشاف ما إذا كان المسار (من ملف) يتطلب دعم النطاق العالي الديناميكية (HDR). يمكن للتطبيقات تحليل البيانات الخاصة ببرنامج الترميز لتحديد ما إذا كان المقطع الصوتي يتطلب ملفًا شخصيًا معيّنًا لميزة HDR.

ملخّص

يتم عرض متطلبات المكونات لكل تقنية من تقنيات HDR في الجدول التالي:

تكنولوجيا ‫Dolby-Vision HDR10 VP9-HLG ‫VP9-PQ
نوع HDR المتوافق (شاشة العرض) نوع HDR_TYPE_DOLBY_VISION HDR_TYPE_HDR10 نوع HDR_TYPE_HLG HDR_TYPE_HDR10
الحاوية (أداة الاستخراج) MP4 MP4 WebM WebM
جهاز فك الترميز MIMETYPE_VIDEO_DOLBY_VISION MIMETYPE_VIDEO_HEVC MIMETYPE_VIDEO_VP9 MIMETYPE_VIDEO_VP9
الملف الشخصي (أداة فك الترميز) أحد الملفات الشخصية لنظام Dolby HEVCProfileMain10HDR10 ‫VP9Profile2HDR أو VP9Profile3HDR ‫VP9Profile2HDR أو VP9Profile3HDR

ملاحظات:

  • يتم تجميع البث المباشر بتقنية Dolby-Vision في حاوية ملفّات MP4 بالطريقة التي تحدّدها Dolby. يمكن للتطبيقات استخدام برامج استخراج متوافقة مع Dolby ما دامت تحزِّم وحدات الوصول من الطبقات المقابلة في ملف واحد لوحدة الوصول إلى وحدة الترميز كما حدّدت شركة Dolby.
  • قد تتيح المنصة أداة استخراج متوافقة مع تقنية HDR، ولكن لا تتيح أداة فك ترميز متوافقة معها.

التشغيل

بعد أن يتأكد التطبيق من توافقه مع ميزة "التشغيل باستخدام النطاق العالي الديناميكية"، يمكنه تشغيل المحتوى بنطاق عالي الديناميكية بالطريقة نفسها تقريبًا التي يشغّل بها المحتوى غير المزوّد بتقنية HDR، مع مراعاة التحذيرات التالية:

  • بالنسبة إلى تقنية Dolby-Vision، لن تتوفر على الفور ما إذا كان هناك ملف/مسار وسائط معين يتطلب برنامج فك ترميز متوافقًا مع تقنية HDR. يجب أن يحصل التطبيق على هذه المعلومات مسبقًا أو أن يتمكن من الحصول على هذه المعلومات من خلال تحليل قسم البيانات الخاص ببرنامج الترميز في MediaFormat.
  • لا يأخذ CodecCapabilities.isFormatSupported في الاعتبار ما إذا كانت ميزة فك الترميز النفقي مطلوبة لإتاحة هذا الملف الشخصي.

تفعيل التوافق مع منصة ميزة "النطاق العالي الديناميكية"

على مورّدي منظومة على رقاقة (SoC) والمصنّعين الأصليين للأجهزة بذل جهد إضافي لتفعيل دعم النظام الأساسي HDR للجهاز.

التغييرات في المنصة في Android 7.0 لميزة HDR

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

الشاشة

تكوين الأجهزة

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

  1. حدِّد مساحة/حجم لون خطيًا يحتوي على جميع الطبقات التي سيتم دمجها، استنادًا إلى لون الطبقات وعمليات التحكّم فيها والبيانات الوصفية الديناميكية المحتملة.
    في حال التركيب على شاشة مباشرةً، يمكن أن تكون هذه المساحة الخطية التي تتطابق مع حجم الألوان في الشاشة.
  2. تحويل جميع الطبقات إلى مساحة اللون المشتركة.
  3. أجرِ المزج.
  4. في حال عرض المحتوى من خلال منفذ HDMI:
    1. حدد اللون والإتقان والبيانات الوصفية الديناميكية المحتملة للمشهد الممزوج.
    2. قم بتحويل المشهد المدمَج الناتج إلى مساحة/حجم اللون المشتق.
  5. إذا كانت الشاشة معروضة مباشرةً على الشاشة، يمكنك تحويل المشهد المدمَج الناتج إلى إشارات العرض المطلوبة لإنتاج المشهد.

عرض الإعلانات

لا يمكن اكتشاف شاشات HDR إلا من خلال HWC2. لكي تعمل هذه الميزة، يجب أن يفعّل مسؤولو تنفيذ الأجهزة بشكل انتقائي محوّل HWC2 الذي تم إصداره مع الإصدار 7.0 من نظام التشغيل Android. لذلك، يجب أن تتيح الأنظمة الأساسية استخدام HWC2 أو تمديد إطار عمل AOSP لإتاحة طريقة لتوفير هذه المعلومات. توفّر حزمة HWC2 واجهة برمجة تطبيقات جديدة لنشر "البيانات الثابتة ذات تنسيق HDR" في إطار العمل والتطبيق.

HDMI

  • تعرض شاشة HDMI المتصلة إمكانية النطاق العالي الديناميكية (HDR) من خلال HDMI EDID كما هو موضّح في CTA-861.3 القسم 4.2.
  • يجب استخدام تعيين EOTF التالي:
    • ET_0 gamma التقليدي - نطاق إضاءة SDR: لم يتم تعيينه لأي نوع من أنواع HDR
    • ET_1 "غاما HDR" التقليدي: "نطاق إضاءة HDR" غير مرتبط بأي نوع من أنواع "النطاق العالي الديناميكية"
    • ET_2 SMPTE ST 2084 - تم تعيينها إلى نوع HDR10
  • في الحالات التي يتم فيها إرسال إشارات دعم Dolby Vision أو HLG عبر HDMI، وذلك وفقًا لما تحدّده الجهات المعنيّة.
  • يُرجى العِلم أنّ واجهة برمجة التطبيقات HWC2 API تستخدم قيم الإضاءة المطلوبة التي يتم تمثيلها بأرقام عائمة، لذا يجب ترجمة قيم ملف تعريف EDID المكوّنة من 8 بت بطريقة مناسبة.

برامج فك الترميز

يجب أن تضيف الأنظمة الأساسية برامج فك ترميز نفقية متوافقة مع تقنية HDR وأن تُعلن عن أنّها متوافقة مع النطاق العالي الديناميكية. بشكل عام، يجب أن تستوفي برامج الترميز المتوافقة مع HDR الشروط التالية:

  • أن تتيح فك التشفير عبر النفق (FEATURE_TunneledPlayback)
  • أن تتيح البيانات الوصفية الثابتة لتقنية HDR (OMX.google.android.index.describeHDRColorInfo) ونقلها إلى تركيبة الشاشة/الأجهزة بالنسبة إلى HLG، يجب إرسال البيانات الوصفية المناسبة إلى الشاشة.
  • أن تتيح وصف اللون (OMX.google.android.index.describeColorAspects) ونقله إلى تركيبة الشاشة/الأجهزة
  • أن تتيح إضافة البيانات الوصفية المضمّنة لتقنية HDR وفقًا للمعيار ذي الصلة

إتاحة وحدة فك ترميز Dolby Vision

لإتاحة تقنية Dolby Vision، يجب أن تضيف الأنظمة الأساسية أداة فك ترميز الفيديوهات المتوافقة مع تقنية Dolby-Vision مع تقنية HDR OMX. ونظرًا لتفاصيل Dolby Vision، يتم استخدام هذه الطريقة عادةً لفك ترميز المحتوى وفك ترميز AVC و/أو HEVC، بالإضافة إلى المكون. يجب أن تستوفي برامج فك الترميز هذه الشروط التالية:

  • أن تتيح استخدام نوع mime "video/dolby-vision"
  • الإعلان عن الملفات أو المستويات المتوافقة من تقنية Dolby Vision
  • قبول وحدات الوصول التي تحتوي على وحدات الوصول الفرعية لجميع الطبقات على النحو الذي تحدّده شركة Dolby
  • قبول البيانات الخاصة ببرنامج الترميز التي تحدّدها شركة Dolby على سبيل المثال، البيانات التي تحتوي على ملف تعريف/مستوى Dolby Vision وربما البيانات الخاصة بترميز/فك ترميز البرامج الداخلية
  • يمكنك إتاحة التبديل بشكل تكيُّفي بين ملفات/مستويات Dolby Vision على النحو الذي تطلبه تقنية Dolby.

عند ضبط برنامج الترميز، لا يتم إرسال ملف تعريف Dolby الفعلي إلى برنامج الترميز. ولا يتم ذلك إلا من خلال البيانات الخاصة ببرنامج الترميز بعد بدء برنامج الترميز. يمكن أن تختار المنصة إتاحة عدة تطبيقات فك ترميز Dolby Vision: أحدها لملفات AVC الشخصية والآخر لملفات HEVC الشخصية حتى تتمكّن من بدء برامج الترميز الأساسية أثناء عملية الضبط. إذا كان فك ترميز واحد من Dolby Vision يتوافق مع كلا النوعَين من الملفات الشخصية، يجب أن يتيح أيضًا التبديل بينهما بشكل ديناميكي بطريقة تكيفية.

إذا كان النظام الأساسي يقدّم برنامج فك ترميز متوافقًا مع تقنية Dolby Vision بالإضافة إلى دعم برنامج فك ترميز HDR العام، يجب أن يستوفي ما يلي:

  • وفّر مستخرجًا يعمل بتقنية Dolby-Vision حتى إذا لم يكن متوافقًا مع التشغيل بتقنية HDR.
  • توفير برنامج فك ترميز يدعم الملف الشخصي للرؤية على النحو المحدّد في Dolby

إتاحة وحدة فك ترميز HDR10

لتتوافق الأنظمة الأساسية مع تقنية HDR10، يجب أن تضيف هذه الأنظمة وحدة فك ترميز OMX متوافقة مع تقنية HDR10. يكون هذا عادةً برنامج فك ترميز HEVC نفقي ويتيح أيضًا تحليل البيانات الوصفية ذات الصلة بمنفذ HDMI والتعامل معها. يجب أن يستوفي هذا المُشفِّر (بالإضافة إلى ميزة معالجة محتوى HDR بشكل عام) الشروط التالية:

  • دعم نوع MIME "video/hevc"
  • اعلِن عن HEVCMain10HDR10 المتوافق. يتطلّب استخدام الملف الشخصي HEVCMain10HRD10 أيضًا استخدام الملف الشخصي HEVCMain10، ما يتطلّب بدوره استخدام الملف الشخصي HEVCMain بالمستويات نفسها.
  • أن تتيح تحليل مجموعات SEI للبيانات الوصفية الأصلية، بالإضافة إلى المعلومات الأخرى المتعلّقة بتقنية HDR المضمّنة في SPS

إتاحة أداة فك ترميز VP9

لإتاحة استخدام VP9 HDR، يجب أن تضيف الأنظمة الأساسية برنامج فك ترميز الفيديوهات المتوافقة مع معيار VP9 Profile2. يكون هذا عادةً وحدة فك ترميز VP9 ذات نفق يمكنها أيضًا معالجة البيانات الوصفية ذات الصلة بتنسيق HDMI. يجب أن تستوفي برامج الترميز هذه (بالإضافة إلى متطلبات الترميز العام لبرامج الترميز المتوافقة مع HDR) الشروط التالية:

  • إتاحة نوع MIME "video/x-vnd.on2.vp9"
  • يمكنك الإعلان عن VP9Profile2HDR الذي يمكن استخدامه. يجب أيضًا دعم ملف VP9Profile2HDR الخاص بملف VP9Profile2 على المستوى نفسه.

أدوات الاستخراج

دعم أداة استخراج Dolby Vision

يجب أن تضيف الأنظمة الأساسية التي تتيح استخدام برامج فك ترميز Dolby Vision ميزة استخدام أداة استخراج Dolby (المعروفة باسم Dolby Extractor) لمحتوى Dolby Video.

  • لا يمكن لأداة استخراج MP4 العادية استخراج سوى الطبقة الأساسية من الملف، وليس الطبقات المحسّنة أو الطبقات الوصفية. لذا، عليك استخدام أداة استخراج Dolby خاصة لاستخراج البيانات من الملف
  • يجب أن يعرض أداة استخراج Dolby مقطعًا صوتيًا واحدًا أو مقطعَين لكل مقطع صوتي في الفيديو بتقنية Dolby (المجموعة):
    • مسار Dolby Vision HDR بنوع "video/dolby-vision" للبثّ بتقنية Dolby المجمّعة بطبقتين/ثلاث طبقات. أما تنسيق وحدة الوصول لمسار النطاق العالي الديناميكية، فيحدّد كيفية تجميع وحدات الوصول من طبقات البيانات الأساسية أو طبقات التحسين أو البيانات الوصفية في وحدة تخزين مؤقتة واحدة من أجل فك ترميزها ووضعها في إطار واحد بتقنية HDR، وذلك من خلال Dolby.
    • إذا كان مقطع فيديو Dolby Vision يتضمّن ملفًا منفصلاً (متوافقًا مع الإصدارات القديمة) لطبقة أساسية (BL)، يجب أن يعرض المستخرج هذا الملف أيضًا كمسار منفصل من النوع "video/avc" أو "video/hevc". يجب أن يوفّر أداة الاستخراج وحدات وصول قياسية لملف AVC/HEVC في المقطع الصوتي.
    • يجب أن يكون للمقطع الصوتي ضمن العلامة التجارية القيمة نفسها للمسار الفريد ("track-ID") الخاص بمسار HDR حتى يفهم التطبيق أنّ هذين الترميزَين للفيديو نفسه.
    • يمكن للتطبيق أن يقرر أي مسار يختاره المستخدم بناءً على قدرة النظام الأساسي.
  • يجب عرض الملف الشخصي أو مستوى Dolby Vision بتنسيق المسار الخاص بمسار HDR.
  • إذا كان النظام الأساسي يقدّم وحدة فك ترميز متوافقة مع تقنية Dolby Vision، يجب أن يقدّم أيضًا أداة استخراج متوافقة مع تقنية Dolby Vision، حتى إذا لم يكن متوافقًا مع تشغيل محتوى HDR.

إمكانية استخراج ملفات HDR10 وVP9 بتقنية HDR

ما مِن متطلبات إضافية لمحوِّل الترميز لتتوافق مع HDR10 أو VP9 HLG. على المنصات توسيع نطاق أداة استخراج MP4 لتتيح استخدام VP9 PQ في MP4. يجب نشر البيانات الوصفية الثابتة ذات تنسيق HDR في البث البتي الخاص بـ VP9 PQ، كي يتم تمرير هذه البيانات الوصفية إلى برنامج فك ترميز VP9 PQ وإلى العرض عبر مسار Mediaاستخراج الوسائط => MediaCodec العادي.

إضافات Stagefright لإتاحة تقنية Dolby Vision

يجب أن تضيف المنصات تنسيق Dolby Vision إلى Stagefright:

  • إتاحة طلب البحث عن تعريف المنفذ للمنفذ المضغوط.
  • إتاحة ترقيم الملف الشخصي/المستوى لبرنامج ترميز DV
  • إتاحة عرض الملف الشخصي/المستوى لمقاطع DV HDR

تفاصيل التنفيذ المتعلّقة بالتكنولوجيا

مسار فك ترميز HDR10

الشكل 1: مسار HDR10

يتم تجميع فيديوهات البث بتقنية HDR10 في حاويات بتنسيق MP4. تستخدم التطبيقات أداة استخراج ملفات MP4 العادية لاستخراج بيانات الإطار وإرسالها إلى برنامج فك الترميز.

  • أداة استخراج MPEG4
    تُعرَف أداة MPEG4Extractor على أنّها بث HEVC عادي فقط، ويتم استخراج مقطع HDR بنوع "video/HEVC". يختار إطار العمل برنامج فك ترميز فيديو HEVC متوافقًا مع ملف التعريف Main10HDR10 لفك ترميز المقطع الصوتي.
  • برنامج ترميز HEVC
    تتوفر معلومات HDR في ملف SEI أو SPS. يتلقّى برنامج ترميز HEVC أولاً اللقطات التي تحتوي على معلومات HDR. بعد ذلك، يستخلص برنامج فك الترميز معلومات تقنية HDR ويرسل إشعارًا إلى التطبيق لإعلامه بأنّه يقوم بفك ترميز فيديو HDR. يتم تجميع معلومات HDR في تنسيق إخراج وحدة فك الترميز، ويتم نشرها في السطح لاحقًا.

إجراءات المورّدين

  1. يجب الإعلان عن ملف تعريف وحدة ترميز HDR المتوافق ونوع OMX على مستوى الجهاز. مثال:
    OMX_VIDEO_HEVCProfileMain10HDR10Main10)
  2. توفير إمكانية استخدام الفهرس: OMX.google.android.index.describeHDRColorInfo
  3. توفير إمكانية استخدام الفهرس: OMX.google.android.index.describeColorAspects
  4. توفير إمكانية تحليل SEI للبيانات الوصفية الخاصة بالملف الرئيسي

مسار فك ترميز Dolby Vision

الشكل 2: مسار Dolby Vision

يتم تجميع مجموعات بتات Dolby في حاويات MP4 وفقًا لما تحدّده شركة Dolby. من الناحية النظرية، يمكن للتطبيقات استخدام أداة استخراج عادية لملفات MP4 لاستخراج الطبقة الأساسية وطبقة التحسين وطبقة البيانات الوصفية بشكل مستقل، ومع ذلك، لا يتوافق ذلك مع نموذج MediaExtractor/MediaCodec الحالي في Android.

  • DolbyExtractor:
    • يتم التعرّف على مجموعات بتات Dolby بواسطة أداة DolbyExtractor التي تعرض الطبقات المختلفة كمقطع صوتي واحد أو مقطعَين لكل مقطع فيديو (مجموعة) من مقاطع Dolby:
      • مسار بنطاق عالي الديناميكية (HDR) بنوع "video/dolby-vision" للبثّ بتقنية Dolby المكوّنة من طبقتَين أو ثلاث طبقات تحدّد شركة Dolby تنسيق وحدات الوصول في المقطع الصوتي بتقنية HDR، والذي يحدّد كيفية تجميع وحدات الوصول من طبقات البيانات الأساسية/الإضافية/الوصفية في ذاكرة تخزين مؤقت واحدة ليتم فك ترميزها إلى إطار HDR واحد.
      • (اختياري، فقط إذا كان BL متوافقًا مع الإصدارات القديمة) يحتوي مقطع BL على الطبقة الأساسية فقط، والتي يجب أن تكون قابلة لفك الترميز باستخدام برنامج فك ترميز MediaCodec العادي، مثل برنامج فك ترميز AVC/HEVC. يجب أن يقدّم المستخرج وحدات وصول AVC/HEVC العادية لهذا المقطع الصوتي. يجب أن يكون للمقطع الصوتي ضمن العلامة التجارية نفس معرّف المسار الفريد ("track-ID") الخاص بمسار Dolby حتى يفهم التطبيق أنّ هذين النوعين من الترميزين للفيديو نفسه.
    • يمكن للتطبيق اختيار قناة الإصدار بناءً على قدرات المنصة.
    • سيختار إطار العمل برنامج فك ترميز الفيديوهات Dolby لفك ترميز هذا المسار لأنّ مسار HDR يحتوي على نوع معيّن من هذه التقنية. سيتم فك ترميز مسار BL بواسطة برنامج فك ترميز فيديو AVC/HEVC العادي.
  • DolbyDecoder:
    • يتلقى DolbyDecoder وحدات الوصول التي تشتمل على وحدات الوصول المطلوبة لجميع الطبقات (EL+BL+MD أو BL+MD)
    • يمكن تجميع معلومات CSD (البيانات الخاصة ببرنامج الترميز مثل SPS+PPS+VPS) للطبقات الفردية في إطار CSD واحد يتم تحديده بواسطة Doolby. يجب توفُّر إطار CSD واحد.

إجراءات Dolby

  1. حدِّد طريقة تجميع وحدات الوصول لمختلف مخططات الحاوية في Dolby (مثل BL+EL+MD) لبرنامج ترميز Dolby المجرد (أي تنسيق ملف التخزين المؤقت الذي يتوقعه برنامج ترميز HDR).
  2. حدد عبوة CSD لبرنامج فك ترميز Dolby التجريدي.

إجراءات المورّدين

  1. تنفيذ أداة استخراج Dolby يمكن إجراء ذلك أيضًا باستخدام Dolby.
  2. دمج DolbyExtractor في إطار العمل نقطة الدخول هي frameworks/av/media/libstagefright/MediaExtractor.cpp.
  3. يُرجى تعريف الملف الشخصي لبرنامج فك ترميز الفيديوهات بنطاق عالي الديناميكية ونوع المستوى OMX. مثال: OMX_VIDEO_DOLBYPROFILETYPE وOMX_VIDEO_DOLBYLEVELTYP.
  4. توفير إمكانية استخدام الفهرس: 'OMX.google.android.index.describeColorAspects
  5. نشر البيانات الوصفية الديناميكية لصور HDR في التطبيق وسطح العرض في كل إطار ويجب عادةً تضمين هذه المعلومات في الإطار الذي تم فك ترميزه كما هو محدَّد في Dolby، لأن معيار HDMI لا يوفر طريقة لتمرير هذه البيانات إلى الشاشة.

مسار ترميز VP9

الشكل 3: مسار VP9-PQ

يتم تجميع تيارات بت VP9 في حاويات WebM بطريقة يحدّدها فريق WebM. تحتاج التطبيقات إلى استخدام أداة استخراج WebM لاستخراج البيانات الوصفية ذات تنسيق HDR من مصدر البيانات قبل إرسال الإطارات إلى برنامج فك الترميز.

  • WebM Extractor:
  • برنامج ترميز VP9:
    • يتلقى برنامج فك الترميز مجموعات بث بت Profile2 ويفك ترميزها كأحداث بث VP9 عادية.
    • يتلقى برنامج فك الترميز أي بيانات وصفية ثابتة بتقنية HDR من إطار العمل.
    • يتلقّى برنامج الترميز البيانات الوصفية الثابتة من خلال وحدات الوصول إلى بث البتات لملفات VP9 PQ.
    • يجب أن يكون برنامج فك ترميز VP9 قادرًا على نشر البيانات الوصفية الثابتة أو الديناميكية ذات النطاق العالي الديناميكية على الشاشة.

إجراءات المورّدين

  1. تنفيذ ميزة الفهرسة: OMX.google.android.index.describeHDRColorInfo
  2. تنفيذ التوافق مع الفهرس: OMX.google.android.index.describeColorAspects
  3. نشر البيانات الوصفية الثابتة ذات تنسيق HDR