الفيديو بنطاق عالي الديناميكية (HDR) هو الخطوة التالية في مجال فك ترميز الفيديوهات العالية الجودة، ما يقدّم جودة لا مثيل لها في إعادة إنتاج المشهد. ويتم ذلك من خلال زيادة النطاق الديناميكي لمكوّن الإضاءة بشكل كبير (من 100 cd/m2 الحالي إلى 1000 من cd/m2) واستخدام مساحة ألوان أوسع بكثير (BT 2020). وأصبح هذا العنصر الآن أساسيًا في تطوير تقنية 4K UHD في مجال التلفزيون.
يتيح نظام التشغيل Android 10 الفيديوهات التالية بنطاق عالي الديناميكية.
- 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 | ديناميكي | ثابت | ما مِن قيود مفروضة | ثابت |
في الإصدار 7.0 من نظام التشغيل Android، يتم تحديد تشغيل الفيديوهات بنطاق عالي الديناميكية فقط من خلال وضع النفق، ولكن قد تضيف الأجهزة إمكانية تشغيل الفيديوهات بنطاق عالي الديناميكية على SurfaceViews باستخدام ملفّات تخزين مؤقتة غير شفافة للفيديو. بعبارة أخرى:
- لا تتوفّر واجهة برمجة تطبيقات Android عادية للتحقّق مما إذا كان تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) متاحًا باستخدام برامج الترميز غير المُشفَّرة.
- يجب أن توفّر برامج ترميز الفيديوهات التي يتم بثها عبر قناة مشفّرة وتعلن عن إمكانية تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) ميزة تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) عند توصيلها بشاشات متوافقة مع هذه الميزة.
- لا يتوافق إصدار AOSP Android 7.0 مع تركيبة GL لمحتوى HDR.
الاكتشاف
يتطلّب تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) وحدة فك ترميز متوافقة مع هذه التقنية وشاشة متوافقة معها. تتطلّب بعض التكنولوجيات استخدام معالج محدّد اختياريًا.
الشاشة
على التطبيقات استخدام واجهة برمجة التطبيقات Display.getHdrCapabilities
الجديدة للاستعلام عن تكنولوجيات HDR المتوافقة مع الشاشة المحدّدة. هذه هي
في الأساس المعلومات الواردة في كتلة بيانات البيانات الوصفية الثابتة في EDID كما هو محدّد
في CTA-861.3:
public Display.HdrCapabilities getHdrCapabilities()
يعرض إمكانيات شاشة العرض في ما يتعلّق بتقنية النطاق العالي الديناميكية (HDR).Display.HdrCapabilities
يحتوي على إمكانات تقنية النطاق العالي الديناميكية (HDR) لشاشة معيّنة. على سبيل المثال، أنواع HDR المتوافقة معه وتفاصيل حول بيانات الإضاءة المطلوبة
الثوابت:
int HDR_TYPE_DOLBY_VISION
إتاحة تقنية Dolby Visionint HDR_TYPE_HDR10
إتاحة HDR10 / PQint HDR_TYPE_HDR10_PLUS
التوافق مع تقنية HDR10+int HDR_TYPE_HLG
إتاحة تنسيق Hybrid Log-Gammafloat INVALID_LUMINANCE
قيمة الإضاءة غير صالحة.
الطرق العامة:
float getDesiredMaxAverageLuminance()
يعرض الحد الأقصى لبيانات متوسط الإضاءة في اللقطة للمحتوى المطلوب بوحدة cd/cd/m2 لهذا العرض.float getDesiredMaxLuminance()
تعرض بيانات الحد الأقصى للاستضاءة المطلوبة للمحتوى بوحدة قنديلة/متر2 لهذه الشاشة.float getDesiredMinLuminance()
تعرض بيانات الحد الأدنى للاستضاءة المطلوبة للمحتوى بوحدة قنديلة/متر2 لهذه الشاشة.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) وتحويل المحتوى إلى نطاق عادي من الألوان (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، مع مراعاة التحذيرات التالية:
- بالنسبة إلى تقنية Dolby Vision، لا يتوفّر على الفور ما إذا كان ملف وسائط/مسار صوت معيّن يتطلّب أداة فك ترميز متوافقة مع HDR أم لا. يجب أن يمتلك التطبيق هذه المعلومات مسبقًا أو أن يكون قادرًا على الحصول عليها من خلال تحليل قسم البيانات الخاص ببرنامج الترميز في MediaFormat.
- لا تأخذ
CodecCapabilities.isFormatSupported
في الاعتبار ما إذا كانت ميزة وحدة الترميز المُشفَّرة مطلوبة لتفعيل هذا الملف الشخصي.
تفعيل التوافق مع منصة ميزة "النطاق العالي الديناميكية"
على مورّدي شرائح المعالجة المتقدّمة والمصنّعين الأصليين للأجهزة بذل جهد إضافي لتفعيل ميزة "النطاق العالي الديناميكية" على منصة الجهاز.
التغييرات في المنصة في Android 7.0 لميزة HDR
في ما يلي بعض التغييرات الرئيسية في المنصة (التطبيق/الطبقة الأصلية) التي يجب أن تكون شركات المصنّعين الأصليّين للأجهزة وشركات تطوير البرامج المخصّصة للأجهزة الجوّالة على دراية بها.
الشاشة
تكوين الأجهزة
يجب أن تتيح المنصات المتوافقة مع تقنية HDR دمج المحتوى بتقنية HDR مع محتوى غير مزوّد بهذه التقنية. لا يحدِّد نظام التشغيل Android خصائص عمليات الدمج وعملياتها الدقيقة اعتبارًا من الإصدار 7.0، ولكن تتّبع العملية بشكل عام الخطوات التالية:
- حدِّد مساحة لونية/حجمًا خطيًا يحتوي على جميع الطبقات التي سيتم دمجها، استنادًا إلى لون الطبقات وعمليات التحكّم فيها والبيانات الوصفية الديناميكية المحتملة.
في حال التركيب على شاشة مباشرةً، يمكن أن تكون هذه المساحة الخطية التي تتطابق مع حجم الألوان في الشاشة. - حوِّل جميع الطبقات إلى مساحة الألوان الشائعة.
- نفِّذ عملية الدمج.
- في حال عرض المحتوى من خلال منفذ HDMI:
- حدِّد اللون والمعالجة الصوتية والبيانات الوصفية الديناميكية المحتمَلة لل المشهد المدمج.
- حوِّل المشهد المدمج الناتج إلى المساحة/الحجم المستمَدَين للألوان.
- في حال العرض على الشاشة مباشرةً، عليك تحويل المشهد الممزوج المنتج إلى إشارات العرض المطلوبة لإنشاء هذا المشهد.
عرض الإعلانات
لا يمكن اكتشاف شاشات 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 التقليدية جاما - نطاق الإضاءة HDR: لم يتم ربطه بأي نوع HDR
- ET_2 SMPTE ST 2084 - تم ربطه بنوع HDR HDR10
- يتم إرسال إشارات دعم Dolby Vision أو HLG عبر HDMI على النحو المحدَّد من قِبل الهيئات المعنية.
- يُرجى العِلم أنّ واجهة برمجة التطبيقات HWC2 API تستخدِم قيم الإضاءة المطلوبة التي يتم تمثيلها بأرقام عائمة، لذا يجب ترجمة قيم ملف تعريف EDID المكوّنة من 8 بت بطريقة مناسبة.
برامج فك الترميز
على المنصات إضافة برامج ترميز قنوات مشفّرة متوافقة مع HDR والترويج لدعم HDR. بشكل عام، يجب أن تستوفي برامج الترميز المتوافقة مع HDR الشروط التالية:
- أن تتيح فك التشفير عبر النفق (
FEATURE_TunneledPlayback
) - أن تتيح البيانات الوصفية الثابتة لميزة HDR
(
OMX.google.android.index.describeHDRColorInfo
) ونقلها إلى تركيبة الشاشة/الأجهزة بالنسبة إلى HLG، يجب إرسال البيانات الوصفية المناسبة إلى الشاشة. - أن تتيح وصف اللون
(
OMX.google.android.index.describeColorAspects
) ونقله إلى تركيبة الشاشة/الأجهزة - أن تتيح البيانات الوصفية المضمّنة لتقنية HDR كما هو محدّد في المعيار ذي الصلة
إتاحة وحدة فك ترميز Dolby Vision
لتتوافق المنصات مع تقنية Dolby Vision، يجب أن تضيف تطبيقات المنصات وحدة فك ترميز OMX متوافقة مع تقنية HDR وتقنية 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 Vision.
إتاحة وحدة فك ترميز HDR10
لتتوافق الأنظمة الأساسية مع تقنية HDR10، يجب أن تضيف هذه الأنظمة وحدة فك ترميز OMX متوافقة مع تقنية HDR10. وعادةً ما يكون هذا هو وحدة فك ترميز HEVC ذات النفق التي تتيح أيضًا تحليل البيانات الوصفية المتعلّقة بHDMI ومعالجتها. يجب أن يستوفي هذا المُشفِّر (بالإضافة إلى ميزة معالجة محتوى HDR بشكل عام) الشروط التالية:
- أن تتيح استخدام نوع mime "video/hevc"
- عرض HEVCMain10HDR10 المتوافق يتطلّب استخدام الملف الشخصي HEVCMain10HRD10 أيضًا استخدام الملف الشخصي HEVCMain10، ما يتطلّب بدوره استخدام الملف الشخصي HEVCMain بالمستويات نفسها.
- إتاحة تحليل كتل SEI للبيانات الوصفية الأصلية، بالإضافة إلى المعلومات الأخرى المتعلّقة بتقنية HDR المضمّنة في SPS
إتاحة برنامج ترميز VP9
لتفعيل تقنية VP9 HDR، يجب أن تضيف المنصات وحدة فك ترميز OMX 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
(المجموعة):
- مقطع صوتي بتقنية النطاق العالي الديناميكية (HDR) من Dolby بنوع "video/dolby-vision" لبث ملف Dolby المكوّن من طبقتَين أو ثلاث تحدّد شركة Dolby تنسيق وحدات الوصول في مسار HDR، والذي يحدد كيفية تجميع وحدات الوصول من الطبقات الأساسية/التحسينية/الوصفية في ذاكرة تخزين مؤقت واحدة ليتم فك ترميزها إلى إطار HDR واحد.
- إذا كان مقطع فيديو Dolby Vision يتضمّن ملفًا منفصلاً (متوافقًا مع الإصدارات القديمة) للطبقة الأساسية (BL)، يجب أن يعرض المستخرج هذا الملف أيضًا كمسار منفصل "video/avc" أو "video/hevc". يجب أن يوفّر أداة الاستخراج وحدات وصول قياسية لملف AVC/HEVC في المقطع الصوتي.
- يجب أن يتضمّن مقطع BL رقم تعريف المسار الفريد نفسه ("رقم تعريف المسار") الذي يتضمّنه مقطع 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
تفاصيل التنفيذ الخاصة بالتكنولوجيا
مسار فك ترميز HDR10
الشكل 1: مسار HDR10
يتم تجميع تيارات HDR10 في حاويات MP4. تستخدم التطبيقات أداة استخراج ملف MP4 العادية لاستخراج بيانات اللقطات وإرسالها إلى أداة فك التشفير.
- أداة استخراج MPEG4
تُعرَف أداة MPEG4Extractor على أنّها بث HEVC عادي فقط، ويتم استخراج مقطع HDR بنوع "video/HEVC". يختار إطار العمل برنامج فك ترميز فيديو HEVC متوافقًا مع ملف التعريف Main10HDR10 لفك ترميز المقطع الصوتي. - برنامج ترميز HEVC
تتوفر معلومات HDR في ملف SEI أو SPS. يتلقّى برنامج ترميز HEVC أولاً اللقطات التي تحتوي على معلومات HDR. بعد ذلك، يستخرج برنامج الترميز معلومات HDR ويُعلم التطبيق بأنّه بصدد فك ترميز فيديو HDR. يتم تجميع معلومات HDR في تنسيق إخراج وحدة الترميز، ويتم نشرها في سطح العرض لاحقًا.
إجراءات المورّدين
- يجب الإعلان عن ملف تعريف وحدة ترميز HDR المتوافق ونوع OMX للمستوى. مثال:
OMX_VIDEO_HEVCProfileMain10HDR10
(وMain10
) - توفير إمكانية استخدام الفهرس:
OMX.google.android.index.describeHDRColorInfo
- توفير إمكانية استخدام الفهرس:
OMX.google.android.index.describeColorAspects
- توفير إمكانية تحليل SEI للبيانات الوصفية الخاصة بالملف الرئيسي
مسار معالجة وحدة ترميز Dolby Vision
الشكل 2: مسار معالجة Dolby Vision
يتم تجميع مجموعات بيانات Dolby في حاويات MP4 وفقًا لما تحدّده شركة Dolby. من الناحية النظرية، يمكن للتطبيقات استخدام أداة استخراج عادية لتنسيق MP4 لاستخراج الطبقة الأساسية وطبقة التحسين وطبقة البيانات الوصفية بشكل مستقل، ولكن لا يناسب ذلك نموذج MediaExtractor/MediaCodec الحالي في Android.
- DolbyExtractor:
- يتم التعرّف على مجموعات بتات Dolby بواسطة أداة DolbyExtractor التي تعرض
الطبقات المختلفة كمقطع صوتي واحد أو مقطعَين لكل مقطع فيديو (مجموعة) من مقاطع Dolby:
- مقطع صوتي بتقنية HDR من النوع "video/dolby-vision" لبثّ ملف dolby المكوّن من طبقتَين أو 3 طبقات تحدِّد شركة Dolby تنسيق وحدات الوصول في المقطع الصوتي بتقنية HDR، والذي يحدِّد كيفية تجميع وحدات الوصول من طبقات البيانات الأساسية/الإضافية/الوصفية في ذاكرة تخزين مؤقت واحدة ليتم فك ترميزها إلى إطار HDR واحد.
- (اختياري، فقط إذا كان BL متوافقًا مع الإصدارات القديمة) يحتوي مقطع BL على الطبقة الأساسية فقط، والتي يجب أن تكون قابلة لفك الترميز باستخدام برنامج فك ترميز MediaCodec العادي، مثل برنامج فك ترميز AVC/HEVC. يجب أن يقدّم المستخرج وحدات وصول AVC/HEVC العادية لهذا المقطع الصوتي. يجب أن يتضمّن مقطع BL هذا معرّفًا فريدًا للمسار ("معرّف المسار") نفسه المستخدَم في مقطع Dolby ليتمكّن التطبيق من معرفة أنّه يتم استخدام ترميزَين للفيديو نفسه.
- يمكن للتطبيق اختيار المسار الذي سيتم استخدامه استنادًا إلى إمكانات المنصة.
- بما أنّ المقطع الصوتي بتقنية HDR يحتوي على نوع HDR محدّد، سيختار إطار العمل برنامج ترميز فيديو Dolby لفك ترميز هذا المقطع الصوتي. سيتم فك ترميز المقطع الصوتي BL باستخدام أداة فك ترميز فيديو AVC/HEVC العادية.
- يتم التعرّف على مجموعات بتات Dolby بواسطة أداة DolbyExtractor التي تعرض
الطبقات المختلفة كمقطع صوتي واحد أو مقطعَين لكل مقطع فيديو (مجموعة) من مقاطع Dolby:
- DolbyDecoder:
- يتلقّى DolbyDecoder وحدات وصول تحتوي على وحدات الوصول المطلوبة لجميع الطبقات (EL+BL+MD أو BL+MD).
- يمكن تجميع معلومات CSD (البيانات الخاصة بترميز الفيديو، مثل SPS+PPS+VPS) الخاصة بالطبقات الفردية في إطار CSD واحد تحدّده شركة Dolby. يجب توفُّر إطار CSD واحد.
إجراءات Dolby
- حدِّد طريقة تجميع وحدات الوصول لمختلف مخططات الحاوية في Dolby (مثل BL+EL+MD) لبرنامج ترميز Dolby المجرد (أي تنسيق ملف التخزين المؤقت الذي يتوقعه برنامج ترميز HDR).
- حدِّد حزمة CSD لبرنامج ترميز Dolby المجرد.
إجراءات المورّدين
- تنفيذ أداة استخراج Dolby يمكن أيضًا إجراء ذلك من خلال Dolby.
- دمج DolbyExtractor في إطار العمل نقطة الدخول هي
frameworks/av/media/libstagefright/MediaExtractor.cpp
. - يجب تحديد ملف تعريف وحدة ترميز HDR ومستوى OMX
type. مثال:
OMX_VIDEO_DOLBYPROFILETYPE
وOMX_VIDEO_DOLBYLEVELTYP
. - توفير إمكانية استخدام الفهرس:
'OMX.google.android.index.describeColorAspects
- نشر البيانات الوصفية الديناميكية لميزة النطاق العالي الديناميكية (HDR) في التطبيق وسطح العرض في كل إطار وعادةً ما يجب تجميع هذه المعلومات في الإطار الذي تم فك ترميزه على النحو الذي حدّدته شركة Dolby، لأنّ معيار HDMI لا يوفّر طريقة ل نقل هذه المعلومات إلى الشاشة.
مسار ترميز VP9
الشكل 3: مسار VP9-PQ
يتم تجميع تيارات بت VP9 في حاويات WebM بطريقة يحدّدها فريق WebM. يجب أن تستخدم التطبيقات أداة استخراج WebM لاستخراج البيانات الوصفية لتنسيق HDR من البثّ قبل إرسال اللقطات إلى أداة فك التشفير.
- WebM Extractor:
- يستخرج WebM Extractor البيانات الوصفية واللقطات ذات تنسيق HDR من الحاوية.
- برنامج ترميز VP9:
- يتلقّى برنامج الترميز سلاسل بث Profile2 ويفكّ تشفيرها كسلسة بث VP9 عادية.
- يتلقّى برنامج الترميز أي بيانات وصفية ثابتة لميزة HDR من إطار العمل.
- يتلقّى برنامج الترميز البيانات الوصفية الثابتة من خلال وحدات الوصول إلى بث البتات لملفات VP9 PQ.
- يجب أن يكون برنامج ترميز VP9 قادرًا على نشر البيانات الوصفية الثابتة/الديناميكية لتقنية HDR على الشاشة.
إجراءات المورّدين
- تنفيذ ميزة الفهرسة:
OMX.google.android.index.describeHDRColorInfo
- تنفيذ ميزة الفهرسة:
OMX.google.android.index.describeColorAspects
- نشر البيانات الوصفية الثابتة ذات تنسيق HDR