Android 13 और इसके बाद के वर्शन वाले डिवाइसों पर, Android, डाइनैमिक रेंज प्रोफ़ाइल की मदद से 10-बिट कैमरा आउटपुट के साथ काम करता है. इन प्रोफ़ाइलों को स्ट्रीम कॉन्फ़िगरेशन के हिस्से के तौर पर, कैमरा क्लाइंट से कॉन्फ़िगर किया जा सकता है. डिवाइस बनाने वाली कंपनियां, 10-बिट डाइनैमिक रेंज प्रोफ़ाइलों, जैसे कि HLG10, HDR 10, HDR 10+, और Dolby Vision के लिए सहायता जोड़ सकती हैं.
10-बिट कैमरा आउटपुट की सुविधा की मदद से, कैमरा क्लाइंट getSupportedProfiles
को कॉल करके, किसी डिवाइस पर काम करने वाली 10-बिट डाइनैमिक रेंज प्रोफ़ाइलों को खोज सकते हैं.
इसके बाद, फ़्रेमवर्क DynamicRangeProfiles
का एक इंस्टेंस दिखाता है. इसमें, काम करने वाली डाइनैमिक रेंज प्रोफ़ाइलों के बारे में जानकारी होती है. साथ ही, अगर उपलब्ध हो, तो कैप्चर के अनुरोध से जुड़ी पाबंदियां भी होती हैं. यह ज़रूरी है कि
HLG10
प्रोफ़ाइल काम करती हो. सुझाई गई डाइनैमिक रेंज प्रोफ़ाइल, REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
फ़ील्ड में दी गई है.
कैमरा क्लाइंट, setDynamicRangeProfile
को कॉल करके स्ट्रीम कॉम्बिनेशन कॉन्फ़िगर कर सकते हैं.
ज़रूरी आउटपुट स्ट्रीम कॉम्बिनेशन के बारे में ज़्यादा जानने के लिए, सामान्य कैप्चर में 10-बिट आउटपुट के लिए अतिरिक्त कॉन्फ़िगरेशन टेबल देखें.
ज़रूरी शर्तें
10-बिट कैमरा आउटपुट के साथ काम करने के लिए, डिवाइस में 10-बिट या उससे ज़्यादा रिज़ॉल्यूशन वाला कैमरा सेंसर होना चाहिए. साथ ही, उसमें संबंधित आईएसपी (इमेज प्रोसेसिंग) की सुविधा भी होनी चाहिए. 10-बिट वीडियो के साथ काम करने के लिए, डिवाइस की ज़रूरी शर्तों के बारे में जानने के लिए, सेक्शन 7.5 देखें. कैमरे की जानकारी शामिल है.
लागू करना
10-बिट कैमरा आउटपुट की सुविधा देने के लिए, डिवाइस बनाने वाली कंपनियों को ये कैमरा एआईडीएल एचएएल इंटिग्रेशन करने होंगे:
- कैमरे की सुविधाओं में
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
शामिल करें. ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP
को, काम करने वाली सभी डायनैमिक रेंज प्रोफ़ाइलों और उनकी सीमाओं के बिटमैप से पॉप्युलेट करें.HLG10
प्रोफ़ाइल का इस्तेमाल किया जा सकता हो. आपको सुझाई गई डाइनैमिक रेंज प्रोफ़ाइल भी शामिल करनी होगी, ताकि कैमरा क्लाइंट को काम करने वाले सबसे सही फ़ॉर्मैट के बारे में जानकारी दी जा सके.- पक्का करें कि P010 फ़ॉर्मैट का इस्तेमाल करने वाली स्ट्रीम के लिए, स्ट्रीम कॉन्फ़िगरेशन के दौरान डाइनैमिक रेंज प्रोफ़ाइल वैल्यू काम करती हो या लागू करने के लिए तय किए गए फ़ॉर्मैट (
ImageFormat.PRIVATE
) के लिए काम करती हो. - डाइनैमिक रेंज प्रोफ़ाइल के आधार पर, कैमरा सर्विस को सूचना देने से पहले, प्रोसेस किए गए Gralloc 4 बफ़र का स्टैटिक या डाइनैमिक मेटाडेटा बफ़र सेट करें.
Camera HAL में 10-बिट कैमरा आउटपुट के बारे में ज़्यादा जानकारी के लिए, metadata_definitions.xml
में ये देखें:
DYNAMIC_RANGE_TEN_BIT
availableDynamicRangeProfilesMap
के लिए एचएएल की जानकारीrecommendedTenBitDynamicRangeProfile
10BIT_OUTPUT
10-बिट कैमरा आउटपुट के साथ काम करने वाले कैमरा एचएएल की जानकारी के लिए, /hardware/google/camera/devices/EmulatedCamera/hwl
देखें.
पुष्टि करें
10-बिट कैमरा आउटपुट को लागू करने की पुष्टि करने और यह पक्का करने के लिए कि तीसरे पक्ष के ऐप्लिकेशन इस सुविधा को चालू कर सकते हैं, हमारा सुझाव है कि पुष्टि के लिए यहां दिए गए तीन चरणों को पूरा करें.
- एपीआई के काम करने के तरीके के सटीक होने की जांच करना
- खास कैमरे और तीसरे पक्ष के ऐप्लिकेशन की तुलना करना
- स्टैंडर्ड डाइनैमिक रेंज और हाई डाइनैमिक रेंज की तुलना करना
कैमरे के 10-बिट आउटपुट की पुष्टि करने के लिए, यह माना जाता है कि डिवाइस पर एचडीआर (1,000 से ज़्यादा निट डिसप्ले) दिखने की सुविधा काम करती है. साथ ही, वीडियो देखने वाले ऐप्लिकेशन (उदाहरण के लिए, Google Photos) पर एचडीआर वीडियो चलाने की सुविधा काम करती है.
एपीआई के फ़ंक्शन की जांच करना
एपीआई के 10-बिट कैमरा आउटपुट के सही होने की जांच करने के लिए, नीचे दिए गए सीटीएस, कैमरा आईटीएस, और वीटीएस टेस्ट करें:
hardware/interfaces/camera/provider/aidl/vts/
: खोज के नतीजों, कॉन्फ़िगरेशन, और स्ट्रीमिंग की बुनियादी जांच की जाती है. साथ ही, ज़रूरत पड़ने पर एचडीआर मेटाडेटा के मौजूद होने की जांच की जाती है.tests/camera/src/android/hardware/camera2/cts/
: यह पक्का करता है कि कैमरा, AOSP API की खास जानकारी के मुताबिक काम करता है.cts/apps/CameraITS
: इससे यह पुष्टि की जाती है कि एचडीआर प्रोफ़ाइलों का इस्तेमाल करते समय, वीडियो सामान्य तरीके से दिखता है. यह टेस्टtests/scene4/test_video_aspect_ratio_and_crop.py
है.
डिवाइस के कैमरे और तीसरे पक्ष के ऐप्लिकेशन की तुलना करना
हमारा सुझाव है कि आप यह पक्का करें कि तीसरे पक्ष के ऐप्लिकेशन से 10-बिट वीडियो कैप्चर करने के नतीजे, डिफ़ॉल्ट कैमरा ऐप्लिकेशन से मिलते-जुलते हों. अगर नतीजे एक जैसे नहीं हैं, तो भी वे काफ़ी हद तक मिलते-जुलते होने चाहिए. इसका मतलब है कि एक्सपोज़र, डाइनैमिक रेंज, और रंग जैसे ट्यूनिंग विकल्प, डिफ़ॉल्ट ऐप्लिकेशन से तीसरे पक्ष के ऐप्लिकेशन में काम करने चाहिए. अगर आपको यह पुष्टि करनी है कि आपके डिवाइस पर 10-बिट कैमरा आउटपुट के साथ काम करने वाले तीसरे पक्ष के ऐप्लिकेशन से वीडियो रिकॉर्ड करने की सुविधा ठीक से काम कर रही है या नहीं, तो GitHub पर Camera2Video सैंपल ऐप्लिकेशन का इस्तेमाल करें. नीचे दिए गए दिशा-निर्देश, सेंसर, पैनल, देखने की स्थिति, और वेंडर की प्राथमिकताओं में फ़र्क़ की वजह से, एचडीआर के साफ़ तौर पर दिखने वाले पहलुओं को साफ़ तौर पर दिखाने में मदद करते हैं.
तुलना के लिए सुझाए गए सीन
नेटिव कैमरा ऐप्लिकेशन और तीसरे पक्ष के ऐप्लिकेशन की तुलना करने के लिए, नेटिव कैमरा ऐप्लिकेशन और Camera2Video सैंपल ऐप्लिकेशन, दोनों के साथ कई अलग-अलग सीन का इस्तेमाल करके वीडियो रिकॉर्ड करें. तुलना करने के लिए, यहां दिए गए सीन का इस्तेमाल करें:
- ऐसा सीन जिसमें रोशनी का लेवल मीडियम से कम हो और चमकदार ऑब्जेक्ट मौजूद हो. जैसे, मोमबत्ती या छोटी चमकदार लाइट, जो रोशनी की एक खास रेंज बनाती हो. इससे, ऑटो एक्सपोज़र के काम करने के तरीके और डाइनैमिक रेंज की पुष्टि होती है.
- बाहर की रोशनी में लिया गया ऐसा फ़ोटो जिसमें चमकीले रंग और चमकने वाले ऑब्जेक्ट हों. जैसे, कार के क्रोम बंपर. इससे हाइलाइट ज़्यादा चमकदार दिखती हैं. इससे यह पुष्टि होती है कि ज़्यादा रोशनी वाले सीन के लिए, ज़्यादा रोशन हाइलाइट के साथ रेंडरिंग की गई है.
- ऐसा सीन जिसमें डायनैमिक रेंज कम हो और सीन का लैंडस्केप सामान्य हो. जैसे, घर या ऑफ़िस में मौजूद नैचुरल सीन. इससे यह पुष्टि होती है कि कम रोशनी में भी कैमरा ठीक से काम करता है.
हमारा सुझाव है कि सभी सीन में लोगों और चेहरों को शामिल करें, ताकि एक्सपोज़र, रंग, और स्किन टोन को सही तरीके से दिखाने की पुष्टि की जा सके. शॉट-टू-शॉट वैरिएशन को कम करने से, एक के बाद एक तुलना करना आसान हो जाता है.
स्टैंडर्ड डाइनैमिक रेंज और हाई डाइनैमिक रेंज की तुलना करना
यह पक्का करने के लिए कि स्टैंडर्ड डाइनैमिक रेंज प्रोफ़ाइल के मुकाबले, 10-बिट डाइनैमिक रेंज प्रोफ़ाइल का इस्तेमाल करने से फ़ायदा मिलता है या नहीं, एसडीआर (कोई एचडीआर प्रोफ़ाइल नहीं) का इस्तेमाल करके कैप्चर किए गए वीडियो की तुलना एचडीआर वीडियो से करें. इससे यह पक्का किया जा सकेगा कि कैप्चर किए गए वीडियो में एचडीआर के मुख्य पहलू दिख रहे हैं या नहीं. एसडीआर और एचडीआर की तुलना करने के लिए, Camera2Video सैंपल ऐप्लिकेशन और सुझाए गए सीन का इस्तेमाल करें. इससे, डिवाइस में पहले से मौजूद कैमरा ऐप्लिकेशन और तीसरे पक्ष के ऐप्लिकेशन की तुलना की जा सकती है.
सुझाए गए सीन की पुष्टि करने के लिए, इन अहम बातों का ध्यान रखें. एचडीआर की सुविधा वाले डिसप्ले पैनल की चमक के लेवल अलग-अलग होते हैं. इन्हें निट या ल्यूमेन में मेज़र किया जाता है. इसलिए, यहां दिए गए नंबर सिर्फ़ उदाहरण के तौर पर दिए गए हैं:
- कम से मध्यम रोशनी वाले सीन में, मोमबत्ती या छोटी रोशनी की चमकदार हाइलाइट, एचडीआर क्लिप में डिसप्ले के लिए सबसे ज़्यादा चमक (संभवतः 1,000 निट तक) पर रेंडर की जाती हैं. वहीं, एसडीआर क्लिप में एसडीआर के लिए सबसे ज़्यादा चमक (लगभग 100 निट) पर रेंडर की जाती हैं. एचडीआर क्लिप में, चमकदार हाइलाइट डिसप्ले पर साफ़ तौर पर दिखनी चाहिए. इससे उपयोगकर्ता को यह पता चलता है कि सीन की असल डाइनैमिक रेंज क्या थी. एचडीआर क्लिप के मुकाबले, एसडीआर क्लिप ज़्यादा चमकदार और बेहतर नहीं दिखनी चाहिए.
- ज़्यादा रोशनी वाले आउटपुट सीन में, डिवाइस की ट्यूनिंग के आधार पर, एचडीआर क्लिप में स्क्रीन की चमक, एसडीआर क्लिप की तुलना में ज़्यादा होती है. एचडीआर क्लिप के लिए, पूरे सीन की स्क्रीन की चमक (हेडरूम के हिसाब से) ज़्यादा होनी चाहिए. उदाहरण के लिए, 800 निट तक. साथ ही, चमकदार हाइलाइट के लिए, स्क्रीन की चमक ज़्यादा होनी चाहिए. जैसे, क्रोम बंपर के लिए, स्क्रीन की चमक ज़्यादा होनी चाहिए.
- मिड-रेंज, लो डाइनैमिक रेंज इनडोर कैप्चर में, एचडीआर और एसडीआर क्लिप का रंग और टोन एक जैसी होती है. इसलिए, एचडीआर कैप्चर की सुविधा, एसडीआर के मुकाबले बेहतर होती है. एचडीआर, एसडीआर से ज़्यादा गहरे रंग का नहीं होना चाहिए. अगर कैमरे की सेटिंग में बदलाव करने के विकल्पों की वजह से ऐसा करना मुमकिन नहीं है, तो पक्का करें कि तीसरे पक्ष के ऐप्लिकेशन का काम करने का तरीका, डिफ़ॉल्ट कैमरा ऐप्लिकेशन के काम करने के तरीके से मेल खाता हो.