تشغيل فيديوهات بتنسيق HDR

تُعدّ فيديوهات النطاق العالي الديناميكية (HDR) أحدث التقنيات في مجال فك ترميز الفيديوهات العالية الجودة، وهي توفّر جودة لا مثيل لها في عرض المشاهد. ويتم ذلك من خلال زيادة النطاق الديناميكي لمكوّن الإضاءة بشكل كبير (من 100 شمعة/م2 الحالية إلى آلاف الشموع/م2) وباستخدام مساحة ألوان أوسع بكثير (BT 2020). أصبح هذا الآن عنصرًا أساسيًا في تطوّر دقة 4K الفائقة في مجال التلفزيون.

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

  • HDR10
  • VP9
  • +HDR10

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

منذ الإصدار 7.0 من نظام التشغيل Android، تتضمّن إمكانية استخدام تقنية HDR الأولية إنشاء ثوابت مناسبة لاكتشاف خطوط نقل بيانات الفيديو المتوافقة مع تقنية HDR وإعدادها. ويعني ذلك تحديد أنواع برامج الترميز وأوضاع العرض وتحديد كيفية تمرير بيانات 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 ديناميكي ثابت بدون ثابت

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

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

Discovery

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

الشاشة

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

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

الثوابت:

  • int HDR_TYPE_DOLBY_VISION
    إتاحة تقنية Dolby Vision
  • int HDR_TYPE_HDR10
    متوافق مع HDR10 / PQ
  • int HDR_TYPE_HDR10_PLUS
    متوافقة مع تقنية HDR10+.
  • int HDR_TYPE_HLG
    توفير توافق مع Hybrid Log-Gamma
  • float INVALID_LUMINANCE
    قيمة الإضاءة غير صالحة.

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

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

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

يجب أن تستخدم التطبيقات واجهة برمجة التطبيقات الحالية 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 وتسطيح المحتوى إلى مستوى SDR.

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

تتوفّر الحاويات التالية لتكنولوجيات HDR المختلفة على نظام التشغيل Android 7.0:

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

لا يتيح النظام الأساسي معرفة ما إذا كانت مقطوعة (في ملف) تتطلّب توافقًا مع النطاق العالي الديناميكية. قد تحلّل التطبيقات البيانات الخاصة ببرنامج الترميز لتحديد ما إذا كان المقطع الصوتي أو المرئي يتطلّب ملف تعريف 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.

التشغيل

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

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

تفعيل التوافق مع منصة HDR

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

التغييرات التي طرأت على النظام الأساسي في Android 7.0 لتوفير محتوى HDR

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

الشاشة

تركيب الأجهزة

يجب أن تتيح المنصات المتوافقة مع تقنية HDR دمج المحتوى المعروض بتقنية HDR مع المحتوى المعروض بتقنية SDR. لا يحدّد نظام التشغيل 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 كما هو محدّد في القسم 4.2 من معيار CTA-861.3.
  • يجب استخدام عملية ربط EOTF التالية:
    • ET_0 Traditional gamma - SDR Luminance Range: not mapped to any HDR type
    • ET_1 Traditional gamma - HDR Luminance Range: not mapped to any HDR type
    • ‫ET_2 SMPTE ST 2084 - mapped to HDR type HDR10
  • يتم إرسال إشارات بشأن توافق Dolby Vision أو HLG عبر HDMI وفقًا لما تحدده الجهات المعنية.
  • يُرجى العِلم أنّ واجهة برمجة التطبيقات HWC2 تستخدم قيم الإضاءة المطلوبة من النوع float، لذا يجب ترجمة قيم EDID ذات 8 بت بطريقة مناسبة.

أجهزة فك الترميز

على المنصات إضافة برامج ترميز نفقية متوافقة مع HDR والإعلان عن توافقها مع HDR. بشكل عام، يجب أن تستوفي برامج فك الترميز المتوافقة مع HDR ما يلي:

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

التوافق مع أجهزة فك ترميز Dolby Vision

لإتاحة تقنية Dolby Vision، يجب أن تضيف المنصات برنامج ترميز HDR OMX متوافقًا مع Dolby Vision. وبالنظر إلى التفاصيل المحددة في 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، يجب أن تضيف المنصات برنامج ترميز HDR OMX متوافقًا مع VP9 Profile2. وهو عادةً برنامج ترميز VP9 نفقي يتيح أيضًا معالجة البيانات الوصفية المرتبطة بواجهة HDMI. يجب أن تتضمّن برامج الترميز هذه (بالإضافة إلى إمكانية استخدام برنامج ترميز عام للمحتوى العالي الدقة) ما يلي:

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

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

توافق أداة استخراج Dolby Vision

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

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

التوافق مع أداة استخراج HDR10 وVP9 HDR

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

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

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

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

تفاصيل التنفيذ الخاصة بالتكنولوجيا

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

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

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

  • MPEG4 Extractor
    يتعرّف برنامج MPEG4Extractor على عمليات نقل البيانات بتنسيق HDR10 على أنّها مجرد عملية نقل بيانات عادية بتنسيق 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 لاستخراج الطبقة الأساسية وطبقة التحسين وطبقة البيانات الوصفية بشكل مستقل، ولكن هذا لا يتوافق مع نموذج Android MediaExtractor/MediaCodec الحالي.

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

إجراءات Dolby

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

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

  1. تنفيذ أداة استخراج Dolby يمكن أن تنفّذ شركة Dolby ذلك أيضًا.
  2. ادمج DolbyExtractor في إطار العمل. نقطة الدخول هي frameworks/av/media/libstagefright/MediaExtractor.cpp.
  3. الإعلان عن ملف تعريف وبرنامج ترميز HDR ومستوى OMX type مثال: 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 قادرًا على نقل البيانات الوصفية الثابتة أو الديناميكية الخاصة بتنسيق HDR إلى شاشة العرض.

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

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