एचडीआर वीडियो चलाना

हाई डाइनैमिक रेंज (एचडीआर) वीडियो, अच्छी क्वालिटी का अगला कदम है इसकी मदद से, वीडियो डिकोड करने की सुविधा मिलती है. इससे सीन को दोबारा बनाने की क्वालिटी बेहतरीन होती हैं. यह काम करता है इसलिए, ल्यूमिनेंस कॉम्पोनेंट की डाइनैमिक रेंज को काफ़ी बढ़ाकर (मौजूदा 100 cd/m2 से लेकर 1000s cd/m2 तक) और ज़्यादा वाइड लेंस का इस्तेमाल करके कलर स्पेस (BT 2020). यह अब 4K यूएचडी एवलूशन का मुख्य एलिमेंट है टीवी की जगह पर.

Android 10 पर, ये एचडीआर वीडियो काम करते हैं.

  • एचडीआर10
  • वीपी9
  • HDR10+

Android 9 और उसके बाद वाले वर्शन से, MediaCodec एचडीआर मेटाडेटा की रिपोर्ट भेजता है. भले ही, टनल किया गया मोड कोई भी हो. बिना ट्यून किए गए मोड में, स्टैटिक/डाइनैमिक मेटाडेटा के साथ डिकोड किया जा सकता है. HDR10 के लिए और VP9Profile2 हैं जो स्थैतिक मेटाडेटा का उपयोग करते हैं, ये कुंजी के साथ आउटपुट प्रारूप में रिपोर्ट किए जाते हैं KEY_HDR_STATIC_INFO. डाइनैमिक मेटाडेटा का इस्तेमाल करने वाले HDR10+ के लिए, इसकी रिपोर्ट कुंजी KEY_HDR10_PLUS_INFO है और हर आउटपुट फ़्रेम के लिए बदल सकती है. ज़्यादा जानकारी के लिए मल्टीमीडिया टनलिंग देखें.

Android 7.0 के बाद वाले वर्शन में, एचडीआर की सुविधा में एचडीआर वीडियो को खोजने और सेटअप करने के लिए सही कॉन्सटेंट बनाना पाइपलाइन. इसका मतलब है कि कोडेक के टाइप और डिसप्ले मोड तय करना और एचडीआर डेटा को MediaCodec को कैसे पास किया जाना चाहिए और एचडीआर डिकोडर को कैसे दिया जाना चाहिए.

इस दस्तावेज़ का मकसद ऐप्लिकेशन डेवलपर की मदद करना है, ताकि वे एचडीआर स्ट्रीम के साथ काम कर सकें साथ ही, एचडीआर की सुविधाएं चालू करने में OEM और एसओसी की मदद करेगा.

काम करने वाली एचडीआर टेक्नोलॉजी

Android 7.0 और उसके बाद वाले वर्शन में, एचडीआर की ये टेक्नोलॉजी काम करती हैं.

टेक्नोलॉजी Dolby-विज़न एचडीआर10 वीपी9-एचएलजी VP9-PQ
कोडेक एवीसी/एचईवीसी एचईवीसी वीपी9 वीपी9
ट्रांसफ़र फ़ंक्शन ST-2084 ST-2084 एचएलजी ST-2084
एचडीआर मेटाडेटा का टाइप डाइनैमिक स्थिर कोई नहीं स्थिर

Android 7.0 में, टनल किए गए मोड से सिर्फ़ एचडीआर में वीडियो चलाने का तरीका बताया गया है, लेकिन डिवाइस ओपेक का इस्तेमाल करके SurfaceViews पर एचडीआर प्लेबैक की सुविधा जोड़ सकते हैं वीडियो बफ़र. दूसरे शब्दों में:

  • एचडीआर प्लेबैक की सुविधा है या नहीं, यह पता करने के लिए कोई स्टैंडर्ड Android एपीआई मौजूद नहीं है बिना ट्यून किए जाने वाले डिकोडर का इस्तेमाल करते हैं.
  • एचडीआर प्लेबैक की सुविधा का विज्ञापन देने वाले टनल किए गए वीडियो डिकोडर को एचडीआर टेक्नोलॉजी वाले डिसप्ले से कनेक्ट होने पर, एचडीआर में वीडियो चलाने की सुविधा उपलब्ध है.
  • एचडीआर कॉन्टेंट की जीएलएल कंपोज़िशन, एओएसपी Android पर काम नहीं करती 7.0 रिलीज़.

डिस्कवरी

एचडीआर प्लेबैक की सुविधा चालू करने के लिए, एचडीआर क्वालिटी के डीकोडर का इस्तेमाल करना ज़रूरी है. साथ ही, एचडीआर क्वालिटी में वीडियो देखने की सुविधा वाला डिसप्ले. इसके अलावा, कुछ टेक्नोलॉजी को एक्सट्रैक्टर.

डिसप्ले

ऐप्लिकेशन को नए Display.getHdrCapabilities का इस्तेमाल करना होगा एपीआई की मदद से, डिसप्ले पर काम करने वाली एचडीआर टेक्नोलॉजी से जुड़ी क्वेरी की जा सकती है. यह है मूल रूप से EDID के स्टैटिक मेटाडेटा डेटा ब्लॉक में दी गई जानकारी CTA-861.3 में:


  • public Display.HdrCapabilities getHdrCapabilities() इससे डिसप्ले की एचडीआर क्वालिटी मिलती है.

  • Display.HdrCapabilities किसी दिए गए डिसप्ले की एचडीआर क्वालिटी को कैप्चर करता है. उदाहरण के लिए, एचडीआर क्वालिटी के साथ ही, चमक से जुड़े ज़रूरी डेटा के बारे में जानकारी देती है.

कॉन्सटेंट:


  • int HDR_TYPE_DOLBY_VISION Dolby Vision की सुविधा उपलब्ध है.

  • int HDR_TYPE_HDR10 HDR10 / PQ.

  • int HDR_TYPE_HDR10_PLUS HDR10+ की सुविधा.

  • int HDR_TYPE_HLG हाइब्रिड लॉग-गामा सहायता.

  • float INVALID_LUMINANCE ल्यूमिनेंस की अमान्य वैल्यू दी गई है.

सार्वजनिक तरीके:


  • float getDesiredMaxAverageLuminance() यह फ़ंक्शन इस फ़ंक्शन के लिए, cd/cd/m2 में पसंद के हिसाब से कॉन्टेंट के ज़्यादा से ज़्यादा फ़्रेम-औसत ल्यूमिनेंस डेटा को दिखाता है यह डिसप्ले.

  • float getDesiredMaxLuminance() इस डिसप्ले के लिए, cd/cd/m2 में अपने हिसाब से कॉन्टेंट की ज़्यादा से ज़्यादा चमक का डेटा दिखाता है.

  • float getDesiredMinLuminance() इस डिसप्ले के लिए, cd/cd/m2 में अपने हिसाब से कॉन्टेंट की रोशनी का कम से कम डेटा दिखाता है.

  • int[] getSupportedHdrTypes() इस डिसप्ले के साथ काम करने वाले एचडीआर टाइप उपलब्ध कराता है (कॉन्सटेंट देखें). कोई वैल्यू नहीं दिखती है अरे.

डिकोडर

ऐप्लिकेशन को मौजूदा CodecCapabilities.profileLevels एपीआई, ताकि एचडीआर की सुविधा देने वाली नई प्रोफ़ाइलें:

Dolby-विज़न

MediaFormat माइम कॉन्सटेंट:

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 की वीडियो लेयर और मेटाडेटा को एक ही फ़ॉर्मैट में रखा जाना चाहिए वीडियो ऐप्लिकेशन के हिसाब से हर फ़्रेम के लिए बफ़र. यह काम अपने-आप करने के लिए, Dolby-Vision सक्षम MediaExtractor.

एचईवीसी एचडीआर 10

MediaCodecInfo.CodecProfileLevel प्रोफ़ाइल कॉन्सटेंट:

int HEVCProfileMain10HDR10
int HEVCProfileMain10HDR10Plus

VP9 HLG और पीक्यू

MediaCodecInfo.CodecProfileLevel की प्रोफ़ाइल कॉन्सटेंट:

int VP9Profile2HDR
int VP9Profile2HDR10Plus
int VP9Profile3HDR
int VP9Profile3HDR10Plus

अगर कोई प्लैटफ़ॉर्म एचडीआर की सुविधा देने वाले डिकोडर की सुविधा देता है, तो वह एचडीआर क्वालिटी के वीडियो इकट्ठा करने वाला टूल.

सिर्फ़ टनल किए गए डिकोडर से ही एचडीआर क्वालिटी का कॉन्टेंट चलाया जा सकता है. प्लेबैक जो डिकोडर बंद हैं, उनकी वजह से एचडीआर क्वालिटी में जानकारी मिट सकती है और वीडियो को एसडीआर वॉल्यूम में फ़्लैट किया जा रहा है.

एक्सट्रैक्टर

नीचे दिए गए कंटेनर अलग-अलग एचडीआर टेक्नोलॉजी के साथ काम करते हैं Android 7.0 पर इंस्टॉल करने के लिए:

टेक्नोलॉजी Dolby-विज़न एचडीआर10 वीपी9-एचएलजी VP9-PQ
कंटेनर MP4 MP4 WebM WebM

किसी ट्रैक (किसी फ़ाइल के) के लिए एचडीआर क्वालिटी की सुविधा की ज़रूरत है या नहीं, इसका पता लगाने के लिए की सुविधा देने वाले संगठनों के लिए उपलब्ध है. ऐप्लिकेशन, कोडेक से जुड़े डेटा को पार्स कर सकते हैं ताकि यह तय किया जा सके कि ट्रैक के लिए एक खास एचडीआर प्रोफ़ाइल की ज़रूरत है या नहीं.

खास जानकारी

हर एचडीआर टेक्नोलॉजी के कॉम्पोनेंट से जुड़ी ज़रूरी शर्तों के बारे में नीचे दी गई टेबल में बताया गया है:

टेक्नोलॉजी Dolby-विज़न एचडीआर10 वीपी9-एचएलजी VP9-PQ
इस पर काम करने वाले एचडीआर टाइप (डिसप्ले) एचडीआर_TYPE_DOLBY_VISION एचडीआर_TYPE_HDR10 एचडीआर_TYPE_एचएलजी एचडीआर_TYPE_HDR10
कंटेनर (एक्सट्रैकर) MP4 MP4 WebM WebM
डिकोडर MIMETYPE_VIDEO_DOLBY_VISION MIMETYPE_VIDEO_HEVC MIMETYPE_VIDEO_VP9 MIMETYPE_VIDEO_VP9
प्रोफ़ाइल (डीकोडर) Dolby प्रोफ़ाइल में से एक HEVCProfileMain10एचडीआर10 VP9Profile2HDR या VP9Profile3एचडीआर VP9Profile2HDR या VP9Profile3एचडीआर

ध्यान दें:

  • Dolby-Vision बिटस्ट्रीम को MP4 कंटेनर में इस तरह से पैकेज किया जाता है Dolby से. ऐप्लिकेशन, Dolby-बेहतर डेटा इकट्ठा करने वाले टूल इस तरीके से लागू कर सकते हैं: जब तक वे संगत लेयर से ऐक्सेस इकाइयों को डीकोडर के लिए सिंगल ऐक्सेस यूनिट है, जैसा कि Dolby से तय किया गया है.
  • प्लैटफ़ॉर्म पर एचडीआर क्वालिटी के वीडियो बनाने वाले टूल की सुविधा मौजूद हो सकती है, लेकिन इसके लिए किसी एचडीआर-चालू डिकोडर.

वीडियो चलाएं

जब कोई ऐप्लिकेशन एचडीआर प्लेबैक के लिए सहायता की पुष्टि कर लेता है, तब वह वीडियो चला सकता है एचडीआर कॉन्टेंट को बिना एचडीआर वाले कॉन्टेंट की तरह ही बैक अप करता है, इन चेतावनियों को ध्यान में रखते हुए कार्रवाई की जाती है:

  • Dolby-Vision के लिए, चाहे किसी खास मीडिया फ़ाइल/ट्रैक की ज़रूरत हो या नहीं एचडीआर की सुविधा वाला डिकोडर तुरंत उपलब्ध नहीं होता. ऐप्लिकेशन को यह जानकारी पहले से मौजूद है या इस जानकारी को Mediaफ़ॉर्मैट के कोडेक के हिसाब से बनाए गए डेटा सेक्शन को पार्स करना.
  • CodecCapabilities.isFormatSupported इस बात पर विचार नहीं करता कि इस तरह की प्रोफ़ाइल के लिए टनल किए गए डिकोडर की सुविधा की ज़रूरत होगी.

एचडीआर प्लैटफ़ॉर्म की सुविधा चालू करें

एचडीआर प्लैटफ़ॉर्म का इस्तेमाल चालू करने के लिए, SoC वेंडर और OEM को कुछ और काम करना होगा किसी डिवाइस पर कैसे काम करता है.

एचडीआर के लिए, Android 7.0 में प्लैटफ़ॉर्म में बदलाव

यहां प्लैटफ़ॉर्म (ऐप्लिकेशन/नेटिव लेयर) में हुए कुछ अहम बदलावों के बारे में बताया गया है जिसे ओईएम और एसओसी के बारे में पता होना चाहिए.

डिसप्ले

हार्डवेयर कंपोज़िशन

जिन प्लैटफ़ॉर्म पर एचडीआर क्वालिटी के वीडियो देखे जा सकते हैं उन पर बिना एचडीआर वाले कॉन्टेंट को मिलाने की सुविधा होनी चाहिए कॉन्टेंट. ब्लेंड करने की सटीक विशेषताओं और ऑपरेशन के बारे में नहीं बताया गया है वर्शन 7.0 में Android की ओर से रिलीज़ हुए थे, लेकिन यह प्रोसेस आम तौर पर इन चरणों के मुताबिक होती है:

  1. एक रैखिक रंग स्थान/आयतन ज्ञात करना जिसमें सभी परतें शामिल हों मिश्रित, लेयर के आधार पर' कलर, मास्टरिंग, और पोटेंशियल डाइनैमिक मेटाडेटा.
    अगर सीधे किसी डिसप्ले में कंपोज़िट किया जा रहा है, तो यह लीनियर स्पेस हो सकता है जो डिसप्ले के कलर वॉल्यूम से मेल खाता हो.
  2. सभी लेयर को सामान्य कलर स्पेस में बदलें.
  3. डेटा मिलाने का काम करें.
  4. अगर इसे एचडीएमआई की मदद से दिखाया जा रहा है, तो:
    1. इसके लिए रंग, मास्टरिंग, और संभावित डाइनैमिक मेटाडेटा तय करें मिक्स्ड सीन.
    2. मिलाए गए सीन को डिराइव्ड कलर में बदलें स्पेस/वॉल्यूम.
  5. अगर सीधे डिसप्ले पर दिखाया जा रहा है, तो इससे मिले नतीजे को ब्लेंड में बदलें सीन को दिखाने के लिए, ज़रूरी डिसप्ले सिग्नल का इस्तेमाल करना होगा.

डिसप्ले डिस्कवरी

एचडीआर डिसप्ले डिस्कवरी की सुविधा सिर्फ़ HW2 पर काम करती है. डिवाइस लागू करने वालों को यह ज़रूर करना चाहिए इसके लिए, Android 7.0 के साथ रिलीज़ किए गए HWT2 अडैप्टर को चुनिंदा तौर पर चालू करें सुविधा मिलती है. इसलिए, प्लैटफ़ॉर्म को HW2 के साथ काम करना चाहिए या AOSP फ़्रेमवर्क का इस्तेमाल करें, ताकि यह जानकारी दी जा सके. HFC2 चैनल पर एक नया गेम आ गया है एचडीआर स्टैटिक डेटा को फ़्रेमवर्क और ऐप्लिकेशन में लागू करने के लिए एपीआई का इस्तेमाल करता है.

HDMI

  • कनेक्ट किया गया एचडीएमआई डिसप्ले विज्ञापन दिखा रहा है एचडीएमआई ईडीआईडी फ़ंक्शन के ज़रिए इसकी एचडीआर क्वालिटी, जैसा कि इसमें बताया गया है सीटीए-861.3 सेक्शन 4.2 में बताया गया है.
  • इस ईओटीएफ़ मैपिंग का इस्तेमाल किया जाएगा:
    • ET_0 ट्रेडिशनल गामा - एसडीआर ल्यूमिनेंस रेंज: किसी भी एचडीआर से मैप नहीं की गई टाइप
    • ET_1 ट्रेडिशनल गामा - एचडीआर ल्यूमिनेंस रेंज: किसी भी एचडीआर से मैप नहीं की गई टाइप
    • ET_2 SMPTE ST 2084 - एचडीआर टाइप HDR10 में मैप किया गया है
  • एचडीएमआई की मदद से Dolby Vision या HLG टेक्नोलॉजी का सिग्नल, एचडीएमआई की मदद से दिया जाता है करने की अनुमति नहीं है.
  • ध्यान दें कि HW2 API, फ़्लोट मनचाहे ल्यूमिनेंस वैल्यू का इस्तेमाल करता है, इसलिए 8-बिट ईडीआईडी वैल्यू का अनुवाद, सही तरीके से किया जाना चाहिए.

डिकोडर

प्लैटफ़ॉर्म को एचडीआर की सुविधा वाले टनल डिकोडर जोड़ने होंगे. साथ ही, उन्हें एचडीआर क्वालिटी में विज्ञापन दिखाना होगा सहायता. आम तौर पर, एचडीआर क्वालिटी वाले डिकोडर को:

  • टनल डीकोडिंग के लिए सहायता (FEATURE_TunneledPlayback).
  • एचडीआर स्टैटिक मेटाडेटा के साथ काम करता है (OMX.google.android.index.describeHDRColorInfo) और इसके डिसप्ले/हार्डवेयर कंपोज़िशन पर लागू होता है. HLG के लिए सही मेटाडेटा डिसप्ले पर सबमिट करना ज़रूरी है.
  • सपोर्ट कलर की जानकारी (OMX.google.android.index.describeColorAspects) और इसके डिसप्ले/हार्डवेयर कंपोज़िशन पर लागू होता है.
  • एचडीआर एम्बेड किए गए मेटाडेटा के साथ काम करता हो, जैसा कि इसके मानक के हिसाब से बनाया गया है.

Dolby Vision डिकोडर सुविधा

Dolby Vision के साथ काम करने के लिए, प्लैटफ़ॉर्म पर 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 की सुविधा वाला डिकोडर उपलब्ध कराता है, तो सामान्य एचडीआर डिकोडर काम करता है, इसलिए ज़रूरी है कि:

  • Dolby-Vision की जानकारी हासिल करने वाला टूल उपलब्ध कराएं, भले ही वह इसके साथ काम न करता हो एचडीआर प्लेबैक.
  • ऐसा डिकोडर उपलब्ध कराएं जो Dolby से तय की गई विज़न प्रोफ़ाइल के साथ काम करता हो.

HDR10 डिकोडर की सुविधा

HDR10 के साथ काम करने के लिए, प्लैटफ़ॉर्म को HDR10 की सुविधा वाला OMX डिकोडर जोड़ना होगा. यह आम तौर पर, टनल किया गया एचईवीसी डिकोडर होता है जो पार्स और हैंडल करने में भी मदद करता है एचडीएमआई से जुड़ा मेटाडेटा. ऐसा डिकोडर (सामान्य एचडीआर डिकोडर के अलावा सहायता टीम से मिली हैं) को:

  • "video/hevc" MIME टाइप के साथ काम करता हो.
  • विज्ञापन देने वाले HEVCMain10HDR10. HEVCMain10HRD10 प्रोफ़ाइल से जुड़ी सहायता को HEVCMain10 प्रोफ़ाइल का समर्थन भी करना होगा, जिसके लिए HEVCMain प्रोफ़ाइल को एक ही लेवल पर सेट किया जा सकता है.
  • मास्टरिंग मेटाडेटा एसईआई ब्लॉक को पार्स करने की सुविधा और अन्य एचडीआर एसपीएस में शामिल जानकारी.

VP9 डिकोडर की सुविधा

VP9 HDR के साथ काम करने के लिए, प्लैटफ़ॉर्म को VP9 Profile2 की सुविधा वाला एचडीआर OMX जोड़ना होगा डिकोडर. आम तौर पर, यह टनल किया गया VP9 डिकोडर होता है. इससे हैंडलिंग की सुविधा भी मिलती है एचडीएमआई से जुड़ा मेटाडेटा. ऐसे डिकोडर (सामान्य एचडीआर डिकोडर के अलावा सहायता टीम से मिली हैं) को:

  • MIME टाइप "video/x-vnd.on2.vp9" का इस्तेमाल करें.
  • विज्ञापन समर्थित VP9Profile2HDR. VP9Profile2HDR प्रोफ़ाइल से भी काम करता है को उसी लेवल पर VP9Profile2 प्रोफ़ाइल का समर्थन करना ज़रूरी है.

एक्सट्रैक्टर

Dolby Vision एक्सट्रैक्टर सपोर्ट

जिन प्लैटफ़ॉर्म पर Dolby Vision डिकोडर काम करता है उन्हें Dolby एक्सट्रैक्टर जोड़ना होगा (इसे Dolby Extractor कहा जाता है) Dolby Video कॉन्टेंट के साथ काम करते हैं.

  • सामान्य MP4 एक्सट्रैक्टर, किसी फ़ाइल से सिर्फ़ बेस लेयर को एक्सट्रैक्ट कर सकता है, न कि एन्हैंसमेंट या मेटाडेटा लेयर पर. तो एक विशेष Dolby एक्सट्रैक्टर फ़ाइल से डेटा एक्सट्रैक्ट करने के लिए ज़रूरी है.
  • Dolby एक्सट्रैक्टर से हर Dolby वीडियो ट्रैक के लिए 1 से 2 ट्रैक दिखने चाहिए (समूह):
    • "video/dolby-vision" टाइप वाला Dolby Vision एचडीआर ट्रैक के लिए 2/3 लेयर वाली Dolby स्ट्रीम. एचडीआर ट्रैक का ऐक्सेस-यूनिट फ़ॉर्मैट, जिसमें यह तय करता है कि बेस/बेहतर बनाने की सुविधा/मेटाडेटा से जुड़ी ऐक्सेस यूनिट को पैकेज कैसे किया जाता है लेयर को किसी एक बफ़र में डिकोड करने के लिए, लेयर को Dolby से तय किया गया एक शब्द होना चाहिए.
    • अगर Dolby Vision वीडियो ट्रैक में एक अलग (पुराने सिस्टम के साथ काम करने वाला) वीडियो ट्रैक है बेस-लेयर (बीएल), एक्सट्रैक्टर को इसे एक अलग "वीडियो/एवीसी" के रूप में भी दिखाना चाहिए या "वीडियो/hevc" ट्रैक करने के लिए. डेटा इकट्ठा करने वाले टूल को सामान्य एवीसी/एचईवीसी ऐक्सेस देना चाहिए इस ट्रैक की इकाइयां.
    • बीएल ट्रैक के लिए, ट्रैक का यूनीक आईडी ("ट्रैक आईडी") वही होना चाहिए जो एचडीआर ट्रैक, ताकि ऐप्लिकेशन समझ सके कि ये एक ही कोड के दो एन्कोडिंग हैं वीडियो.
    • ऐप्लिकेशन, अपने प्लैटफ़ॉर्म के हिसाब से यह तय कर सकता है कि कौनसा ट्रैक चुनना है क्षमता.
  • Dolby Vision प्रोफ़ाइल/लेवल इस तरह के ट्रैक फ़ॉर्मैट में दिखना चाहिए एचडीआर ट्रैक को समझ लिया है.
  • अगर कोई प्लैटफ़ॉर्म Dolby-Vision की सुविधा वाला डिकोडर उपलब्ध कराता है, तो उसे भी Dolby-Vision की जानकारी इकट्ठा करने वाला टूल हो, भले ही उसमें एचडीआर प्लेबैक की सुविधा न हो.

HDR10 और VP9 एचडीआर डेटा एक्सट्रैक्ट करने की सुविधा

HDR10 या VP9 के साथ काम करने के लिए, डेटा इकट्ठा करने वाले टूल की कोई और ज़रूरत नहीं है एचएलजी. MP4 में VP9 PQ के साथ काम करने के लिए, प्लैटफ़ॉर्म को MP4 एक्सट्रैक्टर इस्तेमाल करना होगा. एचडीआर स्टैटिक मेटाडेटा को VP9 PQ बिटस्ट्रीम में इस तरह से लागू किया जाना चाहिए कि यह मेटाडेटा को VP9 PQ डिकोडर को पास किया जाता है और सामान्य के ज़रिए डिसप्ले पर भेजा जाता है मीडिया एक्सट्रैक्टर => MediaCodec पाइपलाइन.

Dolby Vision के साथ काम करने वाले स्टेजफ़्राइट एक्सटेंशन

प्लैटफ़ॉर्म को Platformfright के साथ Dolby Vision फ़ॉर्मैट की सुविधा जोड़नी होगी:

  • कंप्रेस किए गए पोर्ट के पोर्ट डेफ़िनिशन क्वेरी के लिए सहायता.
  • DV डिकोडर के लिए, सहायता प्रोफ़ाइल/लेवल की गिनती.
  • DV एचडीआर ट्रैक के लिए DV प्रोफ़ाइल/लेवल को सार्वजनिक करने में मदद करता है.

टेक्नोलॉजी के हिसाब से लागू करने की जानकारी

HDR10 डिकोडर पाइपलाइन

पहला डायग्राम. HDR10 पाइपलाइन

HDR10 बिट स्ट्रीम को MP4 कंटेनर में पैकेज किया जाता है. ऐप्लिकेशन फ़्रेम का डेटा निकालने और उसे डिकोडर को भेजने के लिए, MP4 एक्सट्रैक्टर.

  • MPEG4 एक्सट्रैक्टर
    HDR10 बिट स्ट्रीम को "video/HEVC" टाइप वाला MPEG4एक्सट्रैकर और एचडीआर ट्रैक होगा एक्सट्रैक्ट किया गया. यह फ़्रेमवर्क, ऐसे HEVC वीडियो डिकोडर को चुनता है जो उस ट्रैक को डिकोड करने के लिए, Main10HDR10 प्रोफ़ाइल.
  • HEVC डिकोडर
    एचडीआर की जानकारी एसईआई या एसपीएस में हो. सबसे पहले HEVC डिकोडर को जिनमें एचडीआर की जानकारी होती है. इसके बाद डिकोडर एचडीआर को एक्सट्रैक्ट करता है ऐप्लिकेशन को सूचना देती है और बताती है कि वह एचडीआर वीडियो को डिकोड कर रहा है. एचडीआर जानकारी को डिकोडर आउटपुट फ़ॉर्मैट में बंडल किया जाता है, जिसे उसे फिर से पब्लिश कर सकते हैं.

वेंडर की कार्रवाइयां

  1. इस डिवाइस पर काम करने वाले एचडीआर डिकोडर प्रोफ़ाइल और लेवल के OMX टाइप का विज्ञापन किया जा सकता है. उदाहरण:
    OMX_VIDEO_HEVCProfileMain10HDR10 (और Main10)
  2. इंडेक्स के लिए सहायता लागू करें: 'OMX.google.android.index.describeHDRColorInfo'
  3. इंडेक्स के लिए सहायता लागू करें: 'OMX.google.android.index.describeColorAspects'
  4. मास्टरिंग मेटाडेटा को एसईआई से पार्स करने की सुविधा लागू करें.

Dolby Vision डिकोडर पाइपलाइन

दूसरा डायग्राम. Dolby Vision पाइपलाइन

Dolby-बिट स्ट्रीम, MP4 कंटेनर में पैकेज की जाती हैं. इनके बारे में यहां बताया गया है: Dolby. ऐप्लिकेशन, आम तौर पर MP4 एक्सट्रैक्ट करने वाले टूल का इस्तेमाल करके बेस लेयर, एन्हैंसमेंट लेयर, और मेटाडेटा लेयर को अलग से; हालांकि, यह मौजूदा Android MediaExtractor/MediaCodec मॉडल के लिए सही नहीं है.

  • Dolby एक्सट्रैक्टर:
    • Dolby-बिट स्ट्रीम की पहचान DolbyExtractor से की जाती है, जो हर डॉल्बी वीडियो ट्रैक (ग्रुप) के लिए एक से दो ट्रैक के तौर पर अलग-अलग लेयर:
      • "वीडियो/डॉल्बी-विज़न" वाला एचडीआर ट्रैक कुल मिलाकर डॉल्बी स्ट्रीम की 2/3 लेयर वाली. एचडीआर ट्रैक का ऐक्सेस-यूनिट फ़ॉर्मैट, जो बेस/बेहतर बनाने की सुविधा/मेटाडेटा लेयर से ऐक्सेस यूनिट को पैकेज करने का तरीका एक बफ़र को एक एचडीआर फ़्रेम में डिकोड करने के लिए, Dolby से.
      • (ज़रूरी नहीं, सिर्फ़ तब जब BL पुराने सिस्टम के साथ काम करता हो) A BL ट्रैक में यह शामिल है सिर्फ़ बेस लेयर, जिसे MediaCodec डिकोडर की मदद से डिकोड किया जा सकता है, उदाहरण के लिए, एवीसी/एचईवीसी डिकोडर. डेटा इकट्ठा करने वाले टूल को सामान्य एवीसी/एचईवीसी देना चाहिए इस ट्रैक के लिए ऐक्सेस यूनिट. इस बीएल ट्रैक का ट्रैक का यूनीक आईडी एक ही होना चाहिए ("track-ID") को Dolby ट्रैक के तौर पर शामिल करना, ताकि ऐप्लिकेशन यह समझ सके कि एक ही वीडियो की दो एन्कोडिंग हैं.
    • ऐप्लिकेशन, अपने प्लैटफ़ॉर्म के हिसाब से यह तय कर सकता है कि कौनसा ट्रैक चुनना है क्षमता.
    • एचडीआर ट्रैक का खास टाइप एचडीआर होता है. इसलिए, फ़्रेमवर्क इस ट्रैक को डिकोड करने के लिए, Dolby वीडियो डिकोडर इस्तेमाल किया गया है. बीएल ट्रैक को इससे डिकोड किया जाएगा एक सामान्य एवीसी/एचईवीसी वीडियो डिकोडर होता है.
  • DolbyDecoder:
    • DolbyDecoder को ऐसी ऐक्सेस यूनिट मिलती हैं जिनमें ज़रूरी ऐक्सेस होता है सभी लेयर के लिए इकाइयां (EL+BL+MD या BL+MD)
    • CSD (कोडेक विशिष्ट डेटा, जैसे SPS+PPS+VPS) अलग-अलग लेयर को 1 CSD फ़्रेम में पैकेज किया जा सकता है. Dolby. एक CSD फ़्रेम होना ज़रूरी है.

Dolby कार्रवाइयां

  1. अलग-अलग Dolby कंटेनर के लिए, ऐक्सेस यूनिट की पैकेजिंग तय करें ऐब्स्ट्रैक्ट Dolby डिकोडर (जैसे, बफ़र) के लिए स्कीम (जैसे, BL+EL+MD) एचडीआर डिकोडर से मिलने वाला फ़ॉर्मैट).
  2. ऐब्स्ट्रैक्ट Dolby डिकोडर के लिए, CSD की पैकेजिंग बताएं.

वेंडर की कार्रवाइयां

  1. Dolby एक्सट्रैक्टर लागू करें. ऐसा Dolby से भी किया जा सकता है.
  2. DolbyExtractor को फ़्रेमवर्क में इंटिग्रेट करें. एंट्री पॉइंट यह है frameworks/av/media/libstagefright/MediaExtractor.cpp.
  3. एचडीआर डिकोडर प्रोफ़ाइल और लेवल ओएमएक्स बताएं टाइप करें. उदाहरण: OMX_VIDEO_DOLBYPROFILETYPE और OMX_VIDEO_DOLBYLEVELTYP.
  4. इंडेक्स के लिए सहायता लागू करें: 'OMX.google.android.index.describeColorAspects'
  5. डाइनैमिक एचडीआर मेटाडेटा को ऐप्लिकेशन में लागू करें और हर मेटाडेटा में दिखाएं फ़्रेम. आम तौर पर, यह जानकारी डिकोड किए गए फ़्रेम में दी जानी चाहिए जैसा कि Dolby से लिया गया है, क्योंकि एचडीएमआई स्टैंडर्ड में आपको इसे डिसप्ले पर भेज दो.

VP9 डिकोडर पाइपलाइन

तीसरी इमेज. VP9-PQ पाइपलाइन

VP9 बिट स्ट्रीम, WebM कंटेनर में WebM के हिसाब से तय किए गए तरीके से पैकेज किए जाते हैं टीम. ऐप्लिकेशन से एचडीआर मेटाडेटा एक्सट्रैक्ट करने के लिए, WebM डेटा इकट्ठा करने वाले टूल का इस्तेमाल करना होगा डिकोडर को फ़्रेम भेजने से पहले.

  • WebM एक्सट्रैक्टर:
  • VP9 डिकोडर:
    • डिकोडर को Profile2 बिट स्ट्रीम मिलती है और वह उन्हें सामान्य VP9 की तरह डीकोड करता है स्ट्रीम.
    • डिकोडर को फ़्रेमवर्क से हर तरह का एचडीआर स्टैटिक मेटाडेटा मिलता है.
    • VP9 के लिए बिटस्ट्रीम ऐक्सेस यूनिट के ज़रिए डिकोडर को स्टैटिक मेटाडेटा मिलता है PQ स्ट्रीम.
    • VP9 डिकोडर एचडीआर के स्टैटिक/डाइनैमिक मेटाडेटा का इस्तेमाल कर सकता होना चाहिए से ज़्यादा बार नहीं दिखाना है.

वेंडर की कार्रवाइयां

  1. इंडेक्स के लिए सहायता लागू करें: OMX.google.android.index.describeHDRColorInfo अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  2. इंडेक्स के लिए सहायता लागू करें: OMX.google.android.index.describeColorAspects अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  3. एचडीआर स्टैटिक मेटाडेटा को लागू करना