कैमरा एचएएल

Android का कैमरा हार्डवेयर ऐब्स्ट्रक्शन लेयर (HAL), हाई लेवल पर कनेक्ट होता है में Camera फ़्रेमवर्क एपीआई android.hardware.camera2 डिवाइस के कैमरा ड्राइवर और हार्डवेयर को भी जोड़ दिया जाता है. Android 13 और इसके बाद के वर्शन वाला कैमरा एचएएल इंटरफ़ेस डेवलपमेंट, एआईडीएल का इस्तेमाल करता है. Android 8.0 पेश किया गया ट्रेबल, कैमरा एचएएल एपीआई को स्विच किया जा रहा है एक ऐसे स्थिर इंटरफ़ेस पर रीडायरेक्ट किया जा सकता है जिसे HAL इंटरफ़ेस डीटेल की भाषा (HIDL) में तय किया गया हो. अगर आपने पहले Android 7.0 के लिए कैमरा एचएएल मॉड्यूल और ड्राइवर डेवलप किया है, तो लेकिन 10 सेकंड से कम समय के लिए, में बदलाव आता है.

एआईडीएल कैमरा एचएएल

Android 13 या उसके बाद के वर्शन वाले डिवाइसों में, कैमरा फ़्रेमवर्क में एआईडीएल कैमरा एचएएल सपोर्ट शामिल है. कैमरे का फ़्रेमवर्क भी HIDL कैमरा एचएएल के साथ काम करता है, हालांकि इसमें कैमरे की सुविधाएं जोड़ी गई हैं Android 13 या उसके बाद के वर्शन, सिर्फ़ AIDL कैमरा HAL इंटरफ़ेस. इस तरह की सुविधाओं को उन डिवाइसों पर लागू करने के लिए जिन पर अपग्रेड किया जा रहा है Android 13 या इसके बाद के वर्शन के लिए, डिवाइस बनाने वाली कंपनियों को ज़रूरी शर्तें पूरी करनी होंगी एचएएल प्रोसेस को HIDL कैमरा इंटरफ़ेस से बदलकर एआईडीएल कैमरे पर माइग्रेट करना इंटरफ़ेस.

एआईडीएल के फ़ायदे जानने के लिए, यहां जाएं एचएएल के लिए एआईडीएल.

एआईडीएल कैमरा एचएएल लागू करें

एआईडीएल कैमरा एचएएल को लागू करने के रेफ़रंस के लिए, यहां देखें hardware/google/camera/common/hal/aidl_service/.

एआईडीएल कैमरा एचएएल की खास जानकारी इन जगहों पर दिखाई जाती है:

एआईडीएल पर माइग्रेट करने के लिए, डिवाइस मैन्युफ़ैक्चरर को कोड के हिसाब से, Android SELinux नीति (sepolicy) और RC फ़ाइलें स्ट्रक्चर.

एआईडीएल कैमरा एचएएल की पुष्टि करें

एआईडीएल कैमरा एचएएल लागू करने की जांच करने के लिए, पक्का करें कि डिवाइस सीटीएस और वीटीएस टेस्ट. Android 13 में पेश है एआईडीएल वीटीएस टेस्ट, VtsAidlHalCameraProvider_TargetTest.cpp.

कैमरे HAL3 की सुविधाएं

Android Camera API को फिर से डिज़ाइन किए जाने का मकसद, कॉन्टेंट में तेज़ी से बढ़ोतरी करना है ऐप्लिकेशन की, Android डिवाइसों पर कैमरा सबसिस्टम को कंट्रोल करने की क्षमता एपीआई को फिर से व्यवस्थित करना, ताकि उसे बेहतर तरीके से मैनेज किया जा सके और उसका रखरखाव किया जा सके. अतिरिक्त कंट्रोल की मदद से, Android पर अच्छी क्वालिटी वाले कैमरा ऐप्लिकेशन आसानी से बनाए जा सकते हैं ऐसे डिवाइस जो अब भी इस्तेमाल करते हुए कई प्रॉडक्ट पर बेहतर तरीके से काम कर सकते हैं खास तौर पर किसी डिवाइस के लिए तय किए गए एल्गोरिदम की मदद से, जब भी मुमकिन हो परफ़ॉर्मेंस.

कैमरा सबसिस्टम के वर्शन 3 में ऑपरेशन मोड को सिंगल यूनिफ़ाइड व्यू का इस्तेमाल किया जा सकता है. इसका इस्तेमाल, पिछले किसी भी मोड को लागू करने के लिए किया जा सकता है जैसे कि बर्स्ट मोड. इससे उपयोगकर्ताओं को, फ़ोकस और एक्सपोज़र के साथ-साथ पोस्ट-प्रोसेसिंग से जुड़ी ज़्यादा जानकारी, जैसे कि शोर कम करने की सुविधा, कंट्रास्ट और शार्प करना. इसके अलावा, यह आसान व्यू, ऐप्लिकेशन के इस्तेमाल को आसान बनाता है डेवलपर, कैमरे के अलग-अलग फ़ंक्शन का इस्तेमाल कर सकते हैं.

एपीआई, कैमरा सबसिस्टम को पाइपलाइन के तौर पर मॉडल करता है, जिससे इनकमिंग कन्वर्ज़न को कन्वर्ट किया जाता है फ़्रेम में कैप्चर करने के अनुरोधों को 1:1 के आधार पर अनुमति दी जाती है. अनुरोध इसकी कैप्चर और प्रोसेसिंग की सारी कॉन्फ़िगरेशन जानकारी इनकैप्सुलेट करता है फ़्रेम. इसमें रिज़ॉल्यूशन और पिक्सल फ़ॉर्मैट शामिल हैं; मैन्युअल सेंसर, लेंस, और फ़्लैश नियंत्रण; 3A ऑपरेटिंग मोड; RAW->YUV प्रोसेसिंग कंट्रोल; आंकड़े जनरेट करना; वगैरह.

आसान शब्दों में कहें, तो ऐप्लिकेशन फ़्रेमवर्क कैमरे से फ़्रेम का अनुरोध करता है सबसिस्टम और कैमरा सबसिस्टम, आउटपुट स्ट्रीम में नतीजे दिखाता है. तय सीमा में साथ ही, ऐसा मेटाडेटा जिसमें रंग के स्पेस और लेंस जैसी जानकारी शामिल हो नतीजों के हर सेट के लिए शेडिंग जनरेट किया जाता है. आपके पास कैमरा वर्शन 3 के बारे में बताने का विकल्प है को कैमरा वर्शन 1 की एकतरफ़ा स्ट्रीम के लिए पाइपलाइन के रूप में यह हर कैप्चर को कन्वर्ट करता है सेंसर से कैप्चर की गई एक इमेज में अनुरोध को शामिल करें. इस इमेज को इनमें प्रोसेस किया जाता है:

  • कैप्चर के बारे में मेटाडेटा के साथ नतीजा ऑब्जेक्ट.
  • इमेज डेटा के एक से लेकर N बफ़र, उनकी अपनी डेस्टिनेशन सतह में.

संभावित आउटपुट प्लैटफ़ॉर्म का सेट पहले से कॉन्फ़िगर किया गया है:

  • हर सरफ़ेस, तय किए गए इमेज बफ़र के स्ट्रीम के लिए एक डेस्टिनेशन होता है का रिज़ॉल्यूशन.
  • एक बार में सिर्फ़ कुछ प्लैटफ़ॉर्म को आउटपुट के तौर पर कॉन्फ़िगर किया जा सकता है (~3).

किसी अनुरोध में, कैप्चर की गई सभी सेटिंग और आउटपुट की सूची शामिल होती है इस अनुरोध के लिए इमेज बफ़र को पुश करने के लिए सतहें (कुल डेटा में से कॉन्फ़िगर किया गया सेट). अनुरोध को एक बार में (capture() से) किया जा सकता है या अनिश्चित समय तक (setRepeatingRequest() के साथ) दोहराया जा सकता है. कैप्चर किए गए फ़ोटो और वीडियो को बार-बार होने वाले अनुरोधों पर प्राथमिकता दी जाती है.

कैमरे का डेटा मॉडल

पहला डायग्राम. कैमरा कोर ऑपरेशन मॉडल

Camera HAL1 की खास जानकारी

कैमरा सबसिस्टम के वर्शन 1 को हाई-लेवल वाले ब्लैक बॉक्स के तौर पर डिज़ाइन किया गया है और नीचे दिए गए तीन ऑपरेटिंग मोड जैसा है:

  • झलक
  • वीडियो रिकॉर्ड
  • स्टिल कैप्चर करें

हर मोड में थोड़ा अलग और ओवरलैप होने वाली क्षमताएं होती हैं. यह हो गया बर्स्ट मोड जैसी नई सुविधाओं को लागू करना मुश्किल है, जो ऑपरेटिंग मोड पर निर्भर करता है.

कैमरा ब्लॉक डायग्राम

दूसरा डायग्राम. कैमरे के कॉम्पोनेंट

Android 7.0, कैमरे के HAL1 के साथ काम कर रहा है, क्योंकि कई डिवाइस अब भी इसे. इसके अलावा, Android कैमरा सेवा, दोनों एचएएल (1 और 3), यह तब काम आता है, जब आपको फ़्रंट-फ़ेसिंग की सुविधा देने वाली कम सुविधाओं का इस्तेमाल करना हो कैमरा HAL1 के साथ कैमरा और ज़्यादा बेहतर बैक-फ़ेसिंग कैमरा के साथ HAL3.

इसमें एक कैमरा एचएएल मॉड्यूल है (जिसमें सिर्फ़ एक मॉड्यूल है) वर्शन नंबर), जिसमें एक से ज़्यादा अलग-अलग कैमरा डिवाइस की सूची होती है. अपनी सदस्यता का इस्तेमाल करता है. इस सुविधा को इस्तेमाल करने के लिए, कैमरा मॉड्यूल 2 या उसके बाद के वर्शन की ज़रूरत होती है डिवाइस 2 या उसके बाद के वर्शन में उपलब्ध हैं और ऐसे कैमरा मॉड्यूल में कैमरा डिवाइस का एक साथ इस्तेमाल किया जा सकता है (इसका मतलब यह तब है जब हम कहते हैं कि Android दोनों वर्शन लागू करने में मदद करता है HAL).