Android 14 में, JPEG_R
इमेज फ़ॉर्मैट का इस्तेमाल करके, कंप्रेस की गई अल्ट्रा एचडीआर इमेज कैप्चर करने की सुविधा मिलती है. यह फ़ॉर्मैट, एसडीआर JPEG इमेज के साथ काम करता है. साथ ही, इसमें कॉन्टेंट को एचडीआर में रेंडर करने की सुविधा भी मिलती है.
अल्ट्रा एचडीआर फ़ॉर्मैट स्पेसिफ़िकेशन के बारे में ज़्यादा जानने के लिए, अल्ट्रा एचडीआर इमेज फ़ॉर्मैट v1.0 देखें.
लागू करना
इस सेक्शन में, अल्ट्रा एचडीआर सुविधा को लागू करने का तरीका बताया गया है.
रेफ़रंस के तौर पर लागू करना
AOSP कैमरा फ़्रेमवर्क और कैमरा सेवा में, अल्ट्रा एचडीआर के रेफ़रंस के तौर पर लागू करने की सुविधा शामिल है.
कैमरा फ़्रेमवर्क में रेफ़रंस फ़ंक्शन के अलावा, कैमरा एचएएल में अल्ट्रा एचडीआर लागू किया जा सकता है. साथ ही, JPEG_R
आउटपुट के लिए सहायता का विज्ञापन उसी तरह किया जा सकता है जिस तरह कैमरा एचएएल की अन्य आउटपुट स्ट्रीम के लिए किया जाता है. इस स्थिति में, कैमरा HAL को ज़रूरी रिकवरी मैप और फ़ाइनल JPEG_R
इमेज जनरेट करनी होगी. यह इमेज, अल्ट्रा एचडीआर स्पेसिफ़िकेशन के मुताबिक होनी चाहिए.
डिवाइस के हार्डवेयर और सॉफ़्टवेयर की क्षमताओं के हिसाब से, फ़ाइनल आउटपुट को ऑप्टिमाइज़ और ट्यून किया जा सकता है.
लागू करने के विकल्प
डिवाइस बनाने वाली कंपनियां, अपने डिवाइसों के लिए अल्ट्रा एचडीआर की सुविधा के ये लेवल तय कर सकती हैं:
- कम से कम: इस कॉन्फ़िगरेशन में, कैमरा सेवा की कंपोज़िट स्ट्रीम की सुविधा के ज़रिए अल्ट्रा एचडीआर आउटपुट देने की सुविधा डिफ़ॉल्ट रूप से बंद होती है.
JpegRCompositeStream
के रेफ़रंस इंप्लीमेंटेशन को चालू करने के लिए,ro.camera.enableCompositeAPI0JpegR
सिस्टम प्रॉपर्टी कोtrue
पर सेट करें. सभी प्रोसेस और एन्कोडिंग सॉफ़्टवेयर में की जाती है. इसलिए, इस विकल्प को चुनने पर लेटेन्सी बढ़ सकती है और परफ़ॉर्मेंस कम हो सकती है. - मीडियम: इस विकल्प में,
JpegRCompositeStream
को लागू करने के लिए, HAL से मिली एसडीआर JPEG फ़ाइल को बेस इमेज के तौर पर इस्तेमाल किया जाता है. साथ ही, रिकवरी मैप का हिसाब लगाने के लिए P010 फ़्रेम का इस्तेमाल किया जाता है. इस विकल्प में, डेटा पाथ के अंदर सॉफ़्टवेयर प्रोसेसिंग शामिल होती है. हालांकि, यह कम से कम विकल्प की तुलना में अपेक्षाकृत कम होती है. - ज़्यादा: कैमरा एचएएल, सीधे तौर पर
JPEG_R
आउटपुट स्ट्रीम का विज्ञापन करता है और उसे सपोर्ट करता है. इस विकल्प की मदद से, डिवाइस बनाने वाली कंपनियां डिवाइस के हिसाब से ऑप्टिमाइज़ेशन लागू कर सकती हैं. साथ ही, इससे इमेज की क्वालिटी में काफ़ी सुधार हो सकता है.
JpegRCompositeStream
को बंद करने के लिए, ro.camera.disableJpegR
build प्रॉपर्टी को true
पर सेट करें. अगर यह बिल्ड प्रॉपर्टी सेट नहीं है या false
पर सेट है, तो JpegRCompositeStream
के ज़रिए Ultra HDR डिफ़ॉल्ट रूप से चालू हो जाता है. यह उन डिवाइसों पर चालू होता है जो 10-बिट आउटपुट की सुविधा और एक साथ 10 और 8-बिट कैप्चर करने की सुविधा के साथ काम करते हैं.
Validation
अपने डिवाइस पर Ultra HDR सुविधा की पुष्टि करने के लिए, ये टेस्ट चलाएं.
सीटीएस टेस्ट
ImageReaderTest.java#testImageReaderBuilderWithBLOBAndJpegR
ImageReaderTest.java#testJpegR
ImageReaderTest.java#testJpegRDisplayP3
PerformanceTest.java#testSingleCapture
StillCaptureTest.java# testJpegRCapture
आईटीएस टेस्ट
मैन्युअल तरीके से जांच करने की सुविधा
मैन्युअल टेस्ट करने के लिए, अल्ट्रा एचडीआर इमेज कैप्चर करने के लिए सैंपल के तौर पर उपलब्ध कोड का इस्तेमाल करें. इसमें JPEG_R
इमेज फ़ॉर्मैट का इस्तेमाल करके, अल्ट्रा एचडीआर को कॉन्फ़िगर और कैप्चर करने की सुविधा शामिल है.