Android 13 और इसके बाद के वर्शन वाले डिवाइसों के लिए, Android 10-बिट कैमरा आउटपुट की सुविधा देता है. इसके लिए, डाइनैमिक रेंज प्रोफ़ाइल का इस्तेमाल किया जाता है. इन्हें स्ट्रीम कॉन्फ़िगरेशन के तहत, कैमरा क्लाइंट कॉन्फ़िगर कर सकता है. डिवाइस बनाने वाली कंपनियां, 10-बिट डाइनैमिक रेंज प्रोफ़ाइल के लिए सहायता जोड़ सकती हैं. जैसे, HLG10, HDR 10, HDR 10+, और Dolby Vision.
10-बिट कैमरा आउटपुट की सुविधा से, कैमरा क्लाइंट 10-बिट
डाइनैमिक रेंज प्रोफ़ाइल के बारे में जान सकते हैं. इसके लिए, वे
getSupportedProfiles को कॉल कर सकते हैं.
इसके बाद, फ़्रेमवर्क
DynamicRangeProfiles का एक इंस्टेंस दिखाता है. इसमें, काम करने वाली डाइनैमिक रेंज प्रोफ़ाइल और अगर
उपलब्ध हो, तो कैप्चर करने के अनुरोध की सीमाओं के बारे में जानकारी शामिल होती है.
HLG10
प्रोफ़ाइल के लिए सहायता उपलब्ध होनी चाहिए. सुझाई गई डाइनैमिक रेंज प्रोफ़ाइल,
REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
फ़ील्ड में दिखती है.
कैमरा क्लाइंट, स्ट्रीम के कॉम्बिनेशन कॉन्फ़िगर कर सकते हैं
setDynamicRangeProfile.
ज़रूरी आउटपुट स्ट्रीम के कॉम्बिनेशन के बारे में ज़्यादा जानने के लिए, सामान्य कैप्चर में
10-बिट आउटपुट के लिए, गारंटी के साथ उपलब्ध अतिरिक्त कॉन्फ़िगरेशन टेबल देखें.
ज़रूरी शर्तें
10-बिट कैमरा आउटपुट की सुविधा के लिए, डिवाइस में 10-बिट या इससे ज़्यादा क्षमता वाला कैमरा सेंसर होना चाहिए. साथ ही, इसमें आईएसपी की सुविधा भी उपलब्ध होनी चाहिए. 10-बिट की सुविधा के लिए, काम करने से जुड़ी ज़रूरी शर्तों के बारे में जानने के लिए, सेक्शन 7.5 देखें. सीडीडी में कैमरे.
लागू करना
डिवाइस बनाने वाली कंपनियों को, 10-बिट कैमरा आउटपुट की सुविधा देने के लिए, Camera AIDL HAL इंटिग्रेशन करने होंगे. जैसे:
- कैमरे की सुविधाओं में
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_BITavailableDynamicRangeProfilesMapके लिए, HAL की जानकारीrecommendedTenBitDynamicRangeProfile10BIT_OUTPUT
10-बिट कैमरा आउटपुट की सुविधा देने वाले, Camera HAL के रेफ़रंस के तौर पर लागू करने के बारे में जानने के लिए, देखें
/hardware/google/camera/devices/EmulatedCamera/hwl.
सत्यापन
10-बिट कैमरा आउटपुट के अपने लागू करने की पुष्टि करने और यह पक्का करने के लिए कि तीसरे पक्ष के ऐप्लिकेशन इस सुविधा को चालू कर सकते हैं, हमारा सुझाव है कि आप पुष्टि करने के ये तीन चरण पूरे करें.
- एपीआई की फ़ंक्शनल करेक्टनेस की जांच करना
- डिवाइस के डिफ़ॉल्ट कैमरा ऐप्लिकेशन और तीसरे पक्ष के ऐप्लिकेशन की तुलना करना
- स्टैंडर्ड डाइनैमिक रेंज और हाई डाइनैमिक रेंज की तुलना करना
10-बिट कैमरा आउटपुट की विज़ुअल पुष्टि के लिए, यह माना जाता है कि डिवाइस पर एचडीआर (1000+ निट डिसप्ले) दिखाने की सुविधा है. साथ ही, वीडियो देखने वाले ऐप्लिकेशन (उदाहरण के लिए, Google Photos) में एचडीआर वीडियो चलाने की सुविधा है.
एपीआई की फ़ंक्शनल करेक्टनेस की जांच करना
10-बिट कैमरा आउटपुट के एपीआई की फ़ंक्शनल करेक्टनेस की जांच करने के लिए, CTS, कैमरा ITS, और VTS के ये टेस्ट चलाएं:
hardware/interfaces/camera/provider/aidl/vts/: इसमें, बुनियादी तौर पर खोज, कॉन्फ़िगरेशन, और स्ट्रीमिंग की जांच की जाती है. साथ ही, यह भी देखा जाता है कि जहां ज़रूरी हो वहां एचडीआर मेटाडेटा मौजूद है या नहीं.tests/camera/src/android/hardware/camera2/cts/: इससे यह पक्का होता है कि कैमरा, AOSP एपीआई की जानकारी के मुताबिक काम कर रहा है.cts/apps/CameraITS: इससे पुष्टि होती है कि एचडीआर प्रोफ़ाइल का इस्तेमाल करने पर, वीडियो का सामान्य व्यवहार एक जैसा रहता है. खास टेस्ट,tests/scene4/test_video_aspect_ratio_and_crop.pyहै.
डिवाइस के डिफ़ॉल्ट कैमरा ऐप्लिकेशन और तीसरे पक्ष के ऐप्लिकेशन की तुलना करना
हमारा सुझाव है कि आप यह पक्का करें कि तीसरे पक्ष के ऐप्लिकेशन से 10-बिट वीडियो कैप्चर करने के नतीजे, खास कैमरा ऐप्लिकेशन से कैप्चर किए गए वीडियो के नतीजों से मिलते-जुलते हों. इसका मतलब है कि ट्यूनिंग के विकल्प, जैसे कि एक्सपोज़र, डाइनैमिक रेंज, और रंग, खास ऐप्लिकेशन से तीसरे पक्ष के ऐप्लिकेशन में भी मौजूद होने चाहिए. अपने डिवाइस पर, तीसरे पक्ष के ऐसे ऐप्लिकेशन से वीडियो रिकॉर्ड करने के तरीके की पुष्टि करने के लिए, जिसमें 10-बिट कैमरा आउटपुट की सुविधा उपलब्ध है, GitHub पर मौजूद Camera2Video सैंपल ऐप्लिकेशन का इस्तेमाल करें. यहां दी गई जानकारी से, एचडीआर के दिखने वाले पहलुओं के बारे में पता चलता है. इसमें, ऑब्जेक्टिव नंबर शामिल नहीं किए गए हैं. इसकी वजह यह है कि सेंसर, पैनल, देखने की स्थितियों, और वेंडर की प्राथमिकताओं में अंतर हो सकता है.
तुलना के लिए सुझाए गए सीन
डिवाइस के डिफ़ॉल्ट कैमरा ऐप्लिकेशन और तीसरे पक्ष के ऐप्लिकेशन की तुलना करने के लिए, डिफ़ॉल्ट कैमरा ऐप्लिकेशन और Camera2Video सैंपल के तौर पर मिला ऐप्लिकेशन, दोनों का इस्तेमाल करके अलग-अलग सीन में वीडियो कैप्चर करें. तुलना के लिए, यहां कुछ सीन सुझाए गए हैं:
- कम रोशनी से लेकर मध्यम रोशनी वाला सीन. इसमें, मोमबत्ती या छोटी चमकदार लाइट जैसी कोई चमकीली चीज़ शामिल हो, जिससे रोशनी की एक बड़ी रेंज बनती हो. इससे, ऑटो एक्सपोज़र के तरीके और डाइनैमिक रेंज की पुष्टि होती है.
- तेज़ रोशनी वाला आउटडोर सीन. इसमें, चमकीले रंग और रिफ़्लेक्शन वाली चीज़ें शामिल हों. जैसे, कार के क्रोम बंपर, जिनसे चमकदार हाइलाइट बनती हैं. इससे, तेज़ रोशनी वाले सीन के रेंडरिंग की पुष्टि होती है. इसमें, और भी ज़्यादा चमकदार हाइलाइट शामिल होती हैं.
- मध्यम रेंज वाला, कम डाइनैमिक रेंज वाला सीन. जैसे, घर या ऑफ़िस में, रोशनी वाला कोई सीन. इससे पुष्टि होती है कि कम रोशनी वाली स्थितियों में, उम्मीद के मुताबिक काम होता है.
हमारा सुझाव है कि सभी सीन में लोगों और चेहरों को शामिल करें, ताकि एक्सपोज़र, रंग, और स्किन टोन को हैंडल करने की पुष्टि की जा सके. शॉट-टू-शॉट वेरिएशन कम करने से, एक के बाद एक तुलना करना आसान हो जाता है.
स्टैंडर्ड डाइनैमिक रेंज और हाई डाइनैमिक रेंज की तुलना करना
यह पक्का करने के लिए कि स्टैंडर्ड डाइनैमिक रेंज प्रोफ़ाइल के मुकाबले, 10-बिट डाइनैमिक रेंज प्रोफ़ाइल का इस्तेमाल करने से फ़ायदा मिलता है, एसडीआर (एचडीआर प्रोफ़ाइल नहीं) का इस्तेमाल करके कैप्चर किए गए वीडियो की तुलना, एचडीआर वीडियो से करें. इससे यह पुष्टि होगी कि कैप्चर किए गए वीडियो में, एचडीआर के मुख्य पहलू दिखते हैं. एसडीआर और एचडीआर की तुलना करने के लिए, Camera2Video सैंपल के तौर पर मिला ऐप्लिकेशन और सुझाए गए सीन का इस्तेमाल करें. डिफ़ॉल्ट कैमरा ऐप्लिकेशन और तीसरे पक्ष के ऐप्लिकेशन की तुलना करने के लिए.
सुझाए गए सीन में, पुष्टि करने के लिए यहां कुछ मुख्य पहलू दिए गए हैं. एचडीआर की सुविधा देने वाले डिसप्ले पैनल, चमक के लेवल (निट या ल्यूमेन में मेज़र किए जाते हैं) के हिसाब से अलग-अलग होते हैं. इसलिए, यहां दिए गए नंबर सिर्फ़ उदाहरण के तौर पर दिए गए हैं:
- कम रोशनी से लेकर मध्यम रोशनी वाले सीन में, मोमबत्ती या छोटी लाइट की चमकदार हाइलाइट, एचडीआर क्लिप में डिसप्ले की ज़्यादा से ज़्यादा चमक (शायद 1,000 निट तक) पर रेंडर होती हैं. वहीं, एसडीआर क्लिप में एसडीआर की ज़्यादा से ज़्यादा चमक (करीब 100 निट) पर रेंडर होती हैं. एचडीआर क्लिप में, चमकदार हाइलाइट डिसप्ले से बाहर चमकनी चाहिए. इससे, यूज़र को यह पता चलता है कि सीन की असली डाइनैमिक रेंज क्या थी. एसडीआर क्लिप, एचडीआर क्लिप के मुकाबले कम चमकदार और धुंधली दिखनी चाहिए.
- तेज़ रोशनी वाले आउटपुट सीन में, डिवाइस की ट्यूनिंग के हिसाब से, एचडीआर क्लिप में स्क्रीन की चमक, एसडीआर क्लिप के मुकाबले अलग दिखती है. एचडीआर क्लिप के लिए, पूरे सीन की स्क्रीन की चमक (हेडरूम के हिसाब से) ज़्यादा होनी चाहिए. उदाहरण के लिए, 800 निट तक. साथ ही, क्रोम बंपर जैसी चमकदार हाइलाइट के लिए, यह चमक और भी ज़्यादा होनी चाहिए.
- मध्यम रेंज वाले, कम डाइनैमिक रेंज वाले इंडोर कैप्चर में, एचडीआर और एसडीआर क्लिप के रंग और टोन एक जैसे होते हैं. हालांकि, एचडीआर कैप्चर, एसडीआर के मुकाबले ज़्यादा चमकदार हो सकता है. एचडीआर, एसडीआर से ज़्यादा धुंधला नहीं होना चाहिए. अगर ट्यूनिंग के विकल्पों की वजह से ऐसा नहीं हो पाता है, तो पक्का करें कि तीसरे पक्ष के ऐप्लिकेशन का व्यवहार, डिफ़ॉल्ट कैमरा ऐप्लिकेशन के व्यवहार से मेल खाता हो.