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