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

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

يتوافق الإصدار 10 من نظام التشغيل Android مع فيديوهات HDR التالية.

  • HDR10
  • VP9
  • +HDR10

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

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

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

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

الاكتشاف

يتطلّب تشغيل المحتوى بتقنية 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()
    بيانات الحد الأقصى للاستضواء المطلوب للمحتوى بوحدة قنديلة/متر مربّع (cd/m2) لشاشة العرض هذه.
  • 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.

التشغيل

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

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

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

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

تغييرات المنصّة في Android 7.0 لتوفير محتوى HDR

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

الشاشة

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

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

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

حملات "اكتساب العملاء المحتملين" على الشبكة

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

  • توفير الدعم لنوع 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 PQ في ملفات MP4. يجب نشر البيانات الوصفية الثابتة ذات النطاق العالي الديناميكية (HDR) في حزمة بيانات 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 لاستخراج الطبقة الأساسية وطبقة التحسين وطبقة البيانات الوصفية بشكل مستقل، ولكن هذا لا يتوافق مع نموذج MediaExtractor/MediaCodec الحالي في Android.

  • DolbyExtractor:
    • يتعرّف DolbyExtractor على حزم بيانات Dolby، ويعرض الطبقات المختلفة على شكل مقطع صوتي واحد أو مقطعَين صوتيَّين لكل مقطع فيديو Dolby (مجموعة):
      • مسار HDR من النوع "video/dolby-vision" لتدفق Dolby المدمج ذي الطبقتين أو الثلاث طبقات يجب أن تحدّد شركة Dolby تنسيق وحدة الوصول لمسار HDR، والذي يحدّد كيفية تجميع وحدات الوصول من طبقات البيانات الأساسية أو المحسّنة أو الوصفية في مخزن مؤقت واحد ليتم فك ترميزه في إطار HDR واحد.
      • (اختياري، فقط إذا كانت طبقة BL متوافقة مع الإصدارات السابقة) يحتوي مسار 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