इस पेज पर, Android डिवाइस के लिए 3A मोड और स्टेट मशीनों के बारे में बताया गया है. कैमरे का एचएएल इंटरफ़ेस, एचएएल लागू करने और Android फ़्रेमवर्क को मौजूदा 3A स्टेटस की जानकारी देता है. साथ ही, 3A इवेंट को ट्रिगर करता है. यह इंटरफ़ेस, स्टेट मशीन को हाई लेवल पर तय करता है. एचएएल लागू करने की सुविधा, 3A मोड की सेटिंग और स्टेटस ट्रांज़िशन को कंट्रोल करने वाले 3A एल्गोरिदम के लिए ज़िम्मेदार है.
डिवाइस खुलने पर, सभी 3A स्टेटस के लिए,
STATE_INACTIVE होना चाहिए.
स्ट्रीम कॉन्फ़िगरेशन से 3A रीसेट नहीं होता. उदाहरण के लिए, configure()
कॉल के दौरान, फ़ोकस को लॉक किया जाना चाहिए.
3A ऐक्शन को ट्रिगर करने के लिए, अगले अनुरोध की सेटिंग में ट्रिगर की शुरुआत का संकेत देने के लिए, ट्रिगर की सही एंट्री को सेट करना होता है. उदाहरण के लिए, ऑटोफ़ोकस स्कैन शुरू करने के लिए, एक अनुरोध के लिए ANDROID_CONTROL_AF_TRIGGER को ANDROID_CONTROL_AF_TRIGGER_START पर सेट किया जाता है. साथ ही, ऑटोफ़ोकस स्कैन रद्द करने के लिए, ANDROID_CONTROL_AF_TRIGGER को ANDROID_CONTRL_AF_TRIGGER_CANCEL पर सेट किया जाता है. ऐसा न करने पर, एंट्री मौजूद नहीं होगी या ANDROID_CONTROL_AF_TRIGGER_IDLE पर सेट हो जाएगी. ट्रिगर एंट्री को IDLE वैल्यू के बजाय किसी दूसरी वैल्यू पर सेट किए गए हर अनुरोध को, अलग से ट्रिगर करने वाले इवेंट के तौर पर माना जाएगा.
सबसे ऊपर के लेवल पर, 3A को ANDROID_CONTROL_MODE सेटिंग से कंट्रोल किया जाता है. यह 3A (ANDROID_CONTROL_MODE_OFF), सामान्य ऑटो मोड (ANDROID_CONTROL_MODE_AUTO), और सीन मोड सेटिंग (ANDROID_CONTROL_USE_SCENE_MODE) में से किसी एक को चुनता है:
- बंद मोड में, ऑटोफ़ोकस (AF), ऑटोएक्सपोज़र (AE), और ऑटोव्हाइटबैलेंस (AWB) मोड के सभी कंट्रोल बंद रहते हैं. साथ ही, कैप्चर कंट्रोल में से किसी भी कंट्रोल को 3A रूटीन से बदला नहीं जा सकता.
- ऑटो मोड, AF, AE, और AWB मोड में, सभी अपने अलग-अलग एल्गोरिदम चलाते हैं. साथ ही, इनमें अपने मोड, स्टेटस, और ट्रिगर मेटाडेटा एंट्री होती हैं, जैसा कि अगले सेक्शन में बताया गया है.
- 3A रूटीन के व्यवहार का पता लगाने के लिए, USE_SCENE_MODE में ANDROID_CONTROL_SCENE_MODE एंट्री की वैल्यू का इस्तेमाल करना ज़रूरी है. FACE_PRIORITY के अलावा, SCENE_MODE में, चुने गए SCENE_MODE के लिए, HAL को ANDROID_CONTROL_AE/AWB/AF_MODE की वैल्यू को बदलना होगा. उदाहरण के लिए, एचएएल, CONTINUOUS_FOCUS AF मोड का इस्तेमाल करने के लिए, SCENE_MODE_NIGHT को प्राथमिकता दे सकता है. जब कोई उपयोगकर्ता किसी सीन मोड का इस्तेमाल करता है, तो AE/AWB/AF_MODE के लिए चुना गया उसका कोई भी विकल्प,
- SCENE_MODE_FACE_PRIORITY के लिए, AE/AWB/AFMODE कंट्रोल, ANDROID_CONTROL_MODE_AUTO की तरह काम करते हैं. हालांकि, 3A रूटीन को सीन में मौजूद किसी भी चेहरे का पता लगाने के लिए, मेज़रमेंट और फ़ोकस करने पर ज़्यादा ध्यान देना चाहिए.
ऑटोफ़ोकस की सेटिंग और नतीजों की एंट्री
मुख्य मेटाडेटा एंट्री | |
---|---|
ANDROID_CONTROL_AF_MODE | ऑटोफ़ोकस के मौजूदा मोड को चुनने के लिए कंट्रोल. अनुरोध की सेटिंग में, फ़्रेमवर्क के हिसाब से सेट किया जाता है. |
AF_MODE_OFF | एएफ़ बंद है; फ़्रेमवर्क/ऐप्लिकेशन सीधे तौर पर लेंस की पोज़िशन को कंट्रोल करता है. |
AF_MODE_AUTO | एक बार स्वीप करने पर ऑटोफ़ोकस. ऑटो फ़ोकस ट्रिगर होने तक, लेंस में कोई बदलाव नहीं होता. |
AF_MODE_MACRO | एक बार स्वीप करने पर, ऑब्जेक्ट के करीब ऑटोफ़ोकस करने की सुविधा. ऑटो फ़ोकस ट्रिगर होने तक, लेंस में कोई बदलाव नहीं होता |
AF_MODE_CONTINUOUS_VIDEO | वीडियो रिकॉर्ड करने के लिए, ऑब्जेक्ट पर लगातार फ़ोकस करने की सुविधा. तुरंत ट्रिगर करने पर, फ़ोकस मौजूदा पोज़िशन पर लॉक हो जाता है. रद्द करने पर, लगातार फ़ोकस करने की सुविधा फिर से चालू हो जाती है. |
AF_MODE_CONTINUOUS_PICTURE | शटर लैग के बिना स्टिल कैप्चर करने के लिए, तेज़ी से लगातार फ़ोकस करने की सुविधा. ट्रिगर करने पर, फ़िलहाल चल रही स्वीप खत्म होने के बाद फ़ोकस लॉक हो जाता है. रद्द करने पर, लगातार फ़ोकस करने की सुविधा फिर से शुरू हो जाती है. |
AF_MODE_EDOF | बेहतर और ज़्यादा डेप्थ ऑफ़ फ़ील्ड फ़ोकसिंग. ऑटोफ़ोकस स्कैन नहीं होता, इसलिए किसी स्कैन को ट्रिगर करने या रद्द करने का कोई असर नहीं पड़ता. एचएएल की मदद से, इमेज अपने-आप फ़ोकस हो जाती हैं. |
ANDROID_CONTROL_AF_STATE | डाइनैमिक मेटाडेटा, जिसमें एएफ़ एल्गोरिदम की मौजूदा स्थिति के बारे में बताया गया हो. इसकी जानकारी, नतीजे के मेटाडेटा में एचएएल देता है. |
AF_STATE_INACTIVE | फ़ोकस नहीं किया गया है या एल्गोरिदम रीसेट हो गया है. Lens इनपुट काम नहीं कर रहा है. हमेशा MODE_OFF या MODE_EDOF के लिए स्टेटस. डिवाइस खोलने पर, यह इस स्थिति में शुरू होना चाहिए. |
AF_STATE_PASSIVE_SCAN | फ़िलहाल, ऑब्जेक्ट पर फ़ोकस बनाए रखने वाला एल्गोरिदम, ऑब्जेक्ट को बेहतर तरीके से फ़ोकस करने के लिए स्कैन कर रहा है. लेंस हिल रहा हो. |
AF_STATE_PASSIVE_FOCUSED | लगातार फ़ोकस करने वाले एल्गोरिदम को लगता है कि वह अच्छी तरह फ़ोकस कर रहा है. लेंस हिल नहीं रहा है. एचएएल अपने-आप इस स्थिति से बाहर आ सकता है. |
AF_STATE_PASSIVE_UNFOCUSED | लगातार फ़ोकस करने वाले एल्गोरिदम को लगता है कि फ़ोकस ठीक से नहीं है. लेंस हिल नहीं रहा है. एचएएल अपने-आप इस स्थिति से बाहर आ सकता है. |
AF_STATE_ACTIVE_SCAN | उपयोगकर्ता की ओर से ट्रिगर किया गया स्कैन चल रहा है. |
AF_STATE_FOCUSED_LOCKED | एएफ़ एल्गोरिदम को लगता है कि फ़ोकस किया गया है. लेंस हिल नहीं रहा है. |
AF_STATE_NOT_FOCUSED_LOCKED | ऑटो फ़ोकस (एएफ़) एल्गोरिदम फ़ोकस नहीं कर पा रहा है. लेंस हिल नहीं रहा है. |
ANDROID_CONTROL_AF_TRIGGER | ऑटोफ़ोकस स्कैन शुरू करने के लिए कंट्रोल. इसका मतलब, मोड और स्थिति पर निर्भर करता है. अनुरोध की सेटिंग में फ़्रेमवर्क से सेट किया जाता है. |
AF_TRIGGER_IDLE | कोई मौजूदा ट्रिगर नहीं है. |
AF_TRIGGER_START | ऑटो फ़ोकस (एएफ़) स्कैन शुरू करने के लिए ट्रिगर करें. इसका असर मोड और स्टेटस पर निर्भर करता है. |
AF_TRIGGER_CANCEL | अगर एएफ़ स्कैन चल रहा है, तो उसे रद्द करें और एल्गोरिदम को डिफ़ॉल्ट पर रीसेट करें. |
अन्य मेटाडेटा एंट्री | |
---|---|
ANDROID_CONTROL_AF_REGIONS | फ़ील्ड ऑफ़ व्यू (एफ़ओवी) के उन इलाकों को चुनने के लिए कंट्रोल जिनका इस्तेमाल, बेहतर फ़ोकस तय करने के लिए किया जाना चाहिए. यह उन सभी AF मोड पर लागू होता है जो फ़ोकस के लिए स्कैन करते हैं. अनुरोध की सेटिंग में फ़्रेमवर्क से सेट किया जाता है. |
ऑटो एक्सपोज़र सेटिंग और नतीजों की एंट्री
मुख्य मेटाडेटा एंट्री | |
---|---|
ANDROID_CONTROL_AE_MODE | ऑटो एक्सपोज़र के मौजूदा मोड को चुनने के लिए कंट्रोल. अनुरोध की सेटिंग में, फ़्रेमवर्क से सेट किया जाता है. |
AE_MODE_OFF | ऑटो एक्सपोज़र बंद है. उपयोगकर्ता एक्सपोज़र, गेन, फ़्रेम की अवधि, और फ़्लैश को कंट्रोल करता है. |
AE_MODE_ON | स्टैंडर्ड ऑटो एक्सपोज़र, जिसमें फ़्लैश कंट्रोल बंद है. उपयोगकर्ता, फ़्लैश को फ़ायर या टॉर्च मोड पर सेट कर सकता है. |
AE_MODE_ON_AUTO_FLASH | स्टैंडर्ड ऑटो एक्सपोज़र, जिसमें फ़्लैश को पहले से कैप्चर करने और स्टिल कैप्चर के लिए, एचएएल के विवेक के आधार पर चालू किया जाता है. फ़्लैश के लिए उपयोगकर्ता कंट्रोल की सुविधा बंद है. |
AE_MODE_ON_ALWAYS_FLASH | स्टैंडर्ड ऑटो एक्सपोज़र, जिसमें फ़्लैश हमेशा कैप्चर के लिए चालू रहता है और HAL के हिसाब से, पहले से कैप्चर करने के लिए भी चालू रहता है. उपयोगकर्ता के पास फ़्लैश को कंट्रोल करने की सुविधा बंद है. |
AE_MODE_ON_AUTO_FLASH_REDEYE | स्टैंडर्ड ऑटो एक्सपोज़र, जिसमें फ़्लैश को पहले से कैप्चर करने और स्टिल कैप्चर के लिए, एचएएल के विवेक के हिसाब से चालू किया जाता है. फ़ोटो खींचने से पहले की जाने वाली तैयारी के आखिर में फ़्लैश बर्स्ट का इस्तेमाल करें, ताकि फ़ोटो में लाल आंखों की समस्या कम हो. फ़्लैश के लिए उपयोगकर्ता कंट्रोल की सुविधा बंद है. |
AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY | कम रोशनी वाला मोड, कम रोशनी में झलक वाली स्ट्रीम की चमक को अपने-आप अडजस्ट कर देता है. इससे कम रोशनी में, मोशन ब्लर और नॉइज़ बढ़ सकता है. डिवाइस बनाने वाली कंपनियों को यह पक्का करना होगा कि फ़्रेम रेट 10 fps से कम न हो. |
ANDROID_CONTROL_AE_STATE | एई एल्गोरिदम की मौजूदा स्थिति के बारे में बताने वाला डाइनैमिक मेटाडेटा. इसकी जानकारी, नतीजे के मेटाडेटा में एचएएल से मिलती है. |
AE_STATE_INACTIVE | मोड स्विच करने के बाद, एई की शुरुआती स्थिति. डिवाइस खोलने पर, यह इस स्थिति में शुरू होना चाहिए. |
AE_STATE_SEARCHING | एई, अच्छी वैल्यू पर नहीं पहुंच रहा है और एक्सपोज़र पैरामीटर में बदलाव कर रहा है. |
AE_STATE_CONVERGED | एई को मौजूदा सीन के लिए अच्छी एक्सपोज़र वैल्यू मिली हैं और एक्सपोज़र पैरामीटर में बदलाव नहीं हो रहा है. बेहतर समाधान खोजने के लिए, एचएएल अपने-आप इस स्थिति से बाहर निकल सकता है. |
AE_STATE_LOCKED | AE_LOCK कंट्रोल की मदद से, AE लॉक किया गया है. एक्सपोज़र वैल्यू में बदलाव नहीं हो रहा है. |
AE_STATE_FLASH_REQUIRED | एचएएल ने एक्सपोज़र को कंवर्ज कर दिया है, लेकिन उसका मानना है कि ज़रूरत के मुताबिक चमकदार फ़ोटो लेने के लिए, फ़्लैश की ज़रूरत है. इसका इस्तेमाल यह तय करने के लिए किया जाता है कि शटर-लैग वाला फ़्रेम इस्तेमाल किया जा सकता है या नहीं. |
AE_STATE_PRECAPTURE | एचएएल, कैप्चर से पहले के क्रम में है. एई मोड के आधार पर, इस मोड में मेज़र करने के लिए फ़्लैश चालू किया जा सकता है या लाल आंखों को कम करने के लिए फ़्लैश के कई पल्से भेजे जा सकते हैं. |
ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER | अच्छी क्वालिटी की इमेज कैप्चर करने से पहले, मीटरिंग सीक्वेंस शुरू करने के लिए कंट्रोल. अनुरोध की सेटिंग में फ़्रेमवर्क से सेट किया जाता है. |
PRECAPTURE_TRIGGER_IDLE | कोई मौजूदा ट्रिगर नहीं है. |
PRECAPTURE_TRIGGER_START | रिकॉर्डिंग से पहले की जाने वाली गतिविधियां शुरू करना. आने वाले समय में हाई रिज़ॉल्यूशन में कैप्चर करने के लिए, एचएएल को एक्सपोज़र/व्हाइट बैलेंस को बेहतर बनाने के लिए, बाद के अनुरोधों का इस्तेमाल करना चाहिए. |
अन्य मेटाडेटा एंट्री | |
---|---|
ANDROID_CONTROL_AE_LOCK | एई कंट्रोल को उनकी मौजूदा वैल्यू पर लॉक करने के लिए कंट्रोल. |
ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION | एई एल्गोरिदम के टारगेट ब्राइटनेस पॉइंट में बदलाव करने के लिए कंट्रोल. |
ANDROID_CONTROL_AE_TARGET_FPS_RANGE | एई एल्गोरिदम के लिए, टारगेट फ़्रेम रेट की सीमा चुनने का कंट्रोल. AE रूटीन, फ़्रेम रेट को इन सीमाओं के बाहर नहीं बदल सकता. |
ANDROID_CONTROL_AE_REGIONS | फ़ील्ड ऑफ़ व्यू (एफ़ओवी) के उन इलाकों को चुनने के लिए कंट्रोल जिनका इस्तेमाल, एक्सपोज़र के अच्छे लेवल का पता लगाने के लिए किया जाना चाहिए. यह 'बंद' के अलावा, एई के सभी मोड पर लागू होता है. |
ऑटो व्हाइट बैलेंस की सेटिंग और नतीजे की एंट्री
मुख्य मेटाडेटा एंट्री | |
---|---|
ANDROID_CONTROL_AWB_MODE | मौजूदा व्हाइट-बैलेंस मोड चुनने के लिए कंट्रोल. |
AWB_MODE_OFF | अपने-आप सफ़ेद बैलेंस होने की सुविधा बंद है. उपयोगकर्ता, कलर मैट्रिक्स को कंट्रोल करता है. |
AWB_MODE_AUTO | ऑटोमैटिक व्हाइट बैलेंस चालू है; 3A कलर ट्रांसफ़ॉर्म को कंट्रोल करता है, हो सकता है कि वह किसी सामान्य मैट्रिक्स के बजाय ज़्यादा जटिल ट्रांसफ़ॉर्म का इस्तेमाल करे. |
AWB_MODE_INCANDESCENT | व्हाइट बैलेंस की सेटिंग को तय किया गया है. यह सेटिंग, घर के अंदर टंगस्टन (इंकन्सेंडेसेंट) लाइट के लिए अच्छी है. यह लाइट, करीब 2700K की होती है. |
AWB_MODE_FLUORESCENT | फ़्लोरोसेंट लाइटिंग के लिए, व्हाइट बैलेंस की सेटिंग तय की गई है. यह सेटिंग, करीब-करीब 5,000K के लिए सही है. |
AWB_MODE_WARM_FLUORESCENT | फ़्लोरोसेंट लाइटिंग के लिए, व्हाइट बैलेंस की सेटिंग को तय किया गया है. यह सेटिंग, करीब-करीब 3000K के लिए सही है. |
AWB_MODE_DAYLIGHT | व्हाइट बैलेंस की सेटिंग को तय किया गया है, जो दिन की रोशनी के लिए अच्छी है. यह सेटिंग करीब 5500K की होती है. |
AWB_MODE_CLOUDY_DAYLIGHT | व्हाइट बैलेंस की सेटिंग, 6500K के आस-पास होती है. यह सेटिंग, बादल छाए होने पर दिन के उजाले में वीडियो रिकॉर्ड करने के लिए अच्छी होती है. |
AWB_MODE_TWILIGHT | व्हाइट बैलेंस की सेटिंग को तय किया गया है. यह सेटिंग, सूर्यास्त/सूरज निकलने के समय के लिए अच्छी है. यह सेटिंग, करीब 15,000K की होती है. |
AWB_MODE_SHADE | व्हाइट बैलेंस की सेटिंग को तय किया गया है. यह सेटिंग, उन जगहों के लिए अच्छी है जहां सीधे तौर पर सूरज की रोशनी नहीं पड़ती. यह सेटिंग करीब 7500K होती है. |
ANDROID_CONTROL_AWB_STATE | डाइनैमिक मेटाडेटा, जिसमें AWB एल्गोरिदम की मौजूदा स्थिति के बारे में जानकारी होती है. इसे नतीजे के मेटाडेटा में, एचएएल की ओर से रिपोर्ट किया जाता है. |
AWB_STATE_INACTIVE | मोड स्विच करने के बाद, AWB की शुरुआती स्थिति. डिवाइस खोलने पर, यह इस स्थिति में शुरू होना चाहिए. |
AWB_STATE_SEARCHING | AWB सही वैल्यू पर नहीं पहुंच रहा है और रंग अडजस्टमेंट पैरामीटर बदल रहा है. |
AWB_STATE_CONVERGED | एडवांस वाइट बैलेंस (एडब्ल्यूबी) को मौजूदा सीन के लिए, रंग अडजस्टमेंट की अच्छी वैल्यू मिली हैं और पैरामीटर में बदलाव नहीं हो रहा है. बेहतर समाधान खोजने के लिए, एचएएल अपने-आप इस स्थिति से बाहर आ सकता है. |
AWB_STATE_LOCKED | AWB को AWB_LOCK कंट्रोल से लॉक किया गया है. रंग में बदलाव करने की वैल्यू नहीं बदल रही हैं. |
अन्य मेटाडेटा एंट्री | |
---|---|
ANDROID_CONTROL_AWB_LOCK | AWB के रंग में बदलाव करने की सुविधा को उसकी मौजूदा वैल्यू पर लॉक करने के लिए कंट्रोल. |
ANDROID_CONTROL_AWB_REGIONS | फ़ील्ड ऑफ़ व्यू (एफ़ओवी) के उन हिस्सों को चुनने के लिए कंट्रोल जिनका इस्तेमाल, बेहतर कलर बैलेंस तय करने के लिए किया जाना चाहिए. यह सिर्फ़ ऑटो व्हाइट बैलेंस मोड पर लागू होता है. |
स्टेट मशीन के ट्रांज़िशन के बारे में सामान्य जानकारी
AF, AE या AWB मोड के बीच स्विच करने पर, एल्गोरिदम की स्थिति हमेशा 'चालू नहीं है' पर रीसेट हो जाती है. इसी तरह, अगर CONTROL_MODE == USE_SCENE_MODE है, तो CONTROL_MODE या CONTROL_SCENE_MODE के बीच स्विच करने पर, एल्गोरिदम की सभी स्थितियों को INACTIVE पर रीसेट कर दिया जाता है.
यहां दी गई टेबल, हर मोड के हिसाब से हैं.
AF स्टेट मशीन
mode = AF_MODE_OFF या AF_MODE_EDOF | |||
---|---|---|---|
राज्य | ट्रांसफ़ॉर्मेशन की वजह | नई स्थिति | अहम जानकारी |
इस्तेमाल में नहीं है | एएफ़ बंद है |
mode = AF_MODE_AUTO या AF_MODE_MACRO | |||
---|---|---|---|
राज्य | ट्रांसफ़ॉर्मेशन की वजह | नई स्थिति | अहम जानकारी |
इस्तेमाल में नहीं है | AF_TRIGGER | ACTIVE_SCAN | ऑटो-फ़ोकस (एएफ़) स्वीप शुरू करना अब लेंस हिल रहा है |
ACTIVE_SCAN | ऑटो-फ़ोकस (एएफ़) स्वीप हो गया | FOCUSED_LOCKED | अगर AF सफल होता है लेंस अब लॉक हो गया है |
ACTIVE_SCAN | ऑटो-फ़ोकस (एएफ़) स्वीप हो गया | NOT_FOCUSED_LOCKED | अगर AF सफल होता है लेंस अब लॉक हो गया है |
ACTIVE_SCAN | AF_CANCEL | इस्तेमाल में नहीं है | ऑटो फ़ोकस (एएफ़) को रद्द करना/रीसेट करना लेंस अब लॉक हो गया है |
FOCUSED_LOCKED | AF_CANCEL | इस्तेमाल में नहीं है | ऑटो फ़ोकस (एएफ़) को रद्द करना/रीसेट करना |
FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | नई स्वीप शुरू करना अब लेंस हिल रहा है |
NOT_FOCUSED_LOCKED | AF_CANCEL | इस्तेमाल में नहीं है | ऑटो फ़ोकस (एएफ़) को रद्द करना/रीसेट करना |
NOT_FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | नई स्वीप शुरू करना अब लेंस हिल रहा है |
सभी राज्य | Mode change | इस्तेमाल में नहीं है |
mode = AF_MODE_CONTINUOUS_VIDEO | |||
---|---|---|---|
राज्य | ट्रांसफ़ॉर्मेशन की वजह | नई स्थिति | अहम जानकारी |
इस्तेमाल में नहीं है | एचएएल नया स्कैन शुरू करता है | PASSIVE_SCAN | ऑटो-फ़ोकस (एएफ़) स्वीप शुरू करना अब लेंस हिल रहा है |
इस्तेमाल में नहीं है | AF_TRIGGER | NOT_FOCUSED_LOCKED | AF स्टेटस क्वेरी लेंस अब लॉक हो गया है |
PASSIVE_SCAN | एचएएल, मौजूदा स्कैन पूरा करता है | PASSIVE_FOCUSED | ऑटो-फ़ोकस (एएफ़) स्कैन की सुविधा बंद करना लेंस अब लॉक हो गया है |
PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | फ़ोकस सही होने पर, तुरंत बदलाव करना लेंस अब लॉक हो गया है |
PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | फ़ोकस खराब होने पर, तुरंत ट्रांसफ़ॉर्मेशन लेंस अब लॉक हो गया है |
PASSIVE_SCAN | AF_CANCEL | इस्तेमाल में नहीं है | लेंस की पोज़िशन रीसेट करना लेंस अब लॉक हो गया है |
PASSIVE_FOCUSED | एचएएल नया स्कैन शुरू करता है | PASSIVE_SCAN | ऑटो फ़ोकस स्कैन शुरू करना अब लेंस हिल रहा है |
PASSIVE_FOCUSED | AF_TRIGGER | FOCUSED_LOCKED | फ़ोकस सही होने पर, तुरंत बदलाव करना लेंस अब लॉक हो गया है |
PASSIVE_FOCUSED | AF_TRIGGER | NOT_FOCUSED_LOCKED | फ़ोकस खराब होने पर, तुरंत ट्रांसफ़ॉर्मेशन
लेंस अब लॉक हो गया है |
FOCUSED_LOCKED | AF_TRIGGER | FOCUSED_LOCKED | कोई इफ़ेक्ट नहीं |
FOCUSED_LOCKED | AF_CANCEL | इस्तेमाल में नहीं है | AF स्कैन को फिर से शुरू करना |
NOT_FOCUSED_LOCKED | AF_TRIGGER | NOT_FOCUSED_LOCKED | कोई इफ़ेक्ट नहीं |
NOT_FOCUSED_LOCKED | AF_CANCEL | इस्तेमाल में नहीं है | ऑटो फ़ोकस (एएफ़) स्कैन को फिर से शुरू करना |
mode = AF_MODE_CONTINUOUS_PICTURE | |||
---|---|---|---|
राज्य | ट्रांसफ़ॉर्मेशन की वजह | नई स्थिति | अहम जानकारी |
इस्तेमाल में नहीं है | एचएएल नया स्कैन शुरू करता है | PASSIVE_SCAN | ऑटो फ़ोकस स्कैन शुरू करना अब लेंस हिल रहा है |
इस्तेमाल में नहीं है | AF_TRIGGER | NOT_FOCUSED_LOCKED | AF स्टेटस क्वेरी लेंस अब लॉक हो गया है |
PASSIVE_SCAN | एचएएल, मौजूदा स्कैन पूरा करता है | PASSIVE_FOCUSED | ऑटो-फ़ोकस (एएफ़) स्कैन की सुविधा बंद करना
लेंस अब लॉक हो गया है |
PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | फ़ोकस सही होने के बाद, ट्रांसफ़ॉर्मेशन लेंस अब लॉक हो गया है |
PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | फ़ोकस न कर पाने पर होने वाला बदलाव लेंस अब लॉक हो गया है |
PASSIVE_SCAN | AF_CANCEL | इस्तेमाल में नहीं है | लेंस की पोज़िशन रीसेट करना लेंस अब लॉक हो गया है |
PASSIVE_FOCUSED | एचएएल नया स्कैन शुरू करता है | PASSIVE_SCAN | ऑटो फ़ोकस स्कैन शुरू करना अब लेंस हिल रहा है |
PASSIVE_FOCUSED | AF_TRIGGER | FOCUSED_LOCKED | फ़ोकस सही होने पर तुरंत बदलाव लेंस अब लॉक हो गया है |
PASSIVE_FOCUSED | AF_TRIGGER | NOT_FOCUSED_LOCKED | फ़ोकस खराब होने पर तुरंत ट्रांसफ़ॉर्मेशन लेंस अब लॉक हो गया है |
FOCUSED_LOCKED | AF_TRIGGER | FOCUSED_LOCKED | कोई इफ़ेक्ट नहीं |
FOCUSED_LOCKED | AF_CANCEL | इस्तेमाल में नहीं है | AF स्कैन को फिर से शुरू करना |
NOT_FOCUSED_LOCKED | AF_TRIGGER | NOT_FOCUSED_LOCKED | कोई इफ़ेक्ट नहीं |
NOT_FOCUSED_LOCKED | AF_CANCEL | इस्तेमाल में नहीं है | AF स्कैन को फिर से शुरू करना |
AE और AWB स्टेट मशीन
AE और AWB स्टेट मशीन ज़्यादातर एक जैसी होती हैं. AE में, ज़्यादा FLASH_REQUIRED और PRECAPTURE स्थितियां होती हैं. इसलिए, AWB स्टेटस मशीन के लिए, उन दो स्थितियों के बारे में बताने वाली नीचे दी गई पंक्तियों को अनदेखा किया जाना चाहिए.
mode = AE_MODE_OFF / AWB mode not AUTO | |||
---|---|---|---|
राज्य | ट्रांसफ़ॉर्मेशन की वजह | नई स्थिति | अहम जानकारी |
इस्तेमाल में नहीं है | एई/एडब्ल्यूबी बंद है |
mode = AE_MODE_ON_* / AWB_MODE_AUTO | |||
---|---|---|---|
राज्य | ट्रांसफ़ॉर्मेशन की वजह | नई स्थिति | अहम जानकारी |
इस्तेमाल में नहीं है | एचएएल, एई/एडब्ल्यूबी स्कैन शुरू करता है | खोज रहा है | |
इस्तेमाल में नहीं है | AE/AWB_LOCK चालू है | लॉक किया गया | वैल्यू लॉक की गईं |
खोज रहा है | एचएएल, एई/एडब्ल्यूबी स्कैन पूरा करता है | CONVERGED | अच्छी वैल्यू, जो नहीं बदल रही हैं |
खोज रहा है | एचएएल, एई स्कैन पूरा करता है | FLASH_REQUIRED | फ़्लैश के बिना बहुत गहरे रंग की फ़ोटो |
खोज रहा है | AE/AWB_LOCK चालू है | लॉक किया गया | वैल्यू लॉक की गईं |
CONVERGED | एचएएल, एई/एडब्ल्यूबी स्कैन शुरू करता है | खोज रहा है | वैल्यू लॉक की गईं |
CONVERGED | AE/AWB_LOCK चालू है | लॉक किया गया | वैल्यू लॉक की गईं |
FLASH_REQUIRED | एचएएल, एई/एडब्ल्यूबी स्कैन शुरू करता है | खोज रहा है | वैल्यू लॉक की गईं |
FLASH_REQUIRED | AE/AWB_LOCK चालू है | लॉक किया गया | वैल्यू लॉक की गईं |
लॉक किया गया | AE/AWB_LOCK बंद है | खोज रहा है | अनलॉक करने के बाद वैल्यू अच्छी नहीं हैं |
लॉक किया गया | AE/AWB_LOCK बंद है | CONVERGED | अनलॉक करने के बाद वैल्यू अच्छी हैं |
लॉक किया गया | AE_LOCK बंद है | FLASH_REQUIRED | एक्सपोज़र अच्छा है, लेकिन बहुत गहरे रंग का |
संयुक्त अरब अमीरात के सभी राज्य | PRECAPTURE_START | PRECAPTURE | रिकॉर्डिंग से पहले की प्रोसेस शुरू करना |
PRECAPTURE | सीक्वेंस पूरा हो गया है, AE_LOCK बंद है | CONVERGED | अच्छी क्वालिटी में कैप्चर करने के लिए तैयार |
PRECAPTURE | सीक्वेंस पूरा हो गया है, AE_LOCK चालू है | लॉक किया गया | अच्छी क्वालिटी में कैप्चर करने के लिए तैयार |
मैन्युअल कंट्रोल चालू करना
डिवाइस के 3A ब्लॉक को कॉन्फ़िगर करने में भी कई कंट्रोल शामिल होते हैं, ताकि ऐप्लिकेशन को सीधे तौर पर कंट्रोल किया जा सके.
3A कंट्रोल के लिए HAL मॉडल यह है कि हर अनुरोध के लिए, HAL 3A कंट्रोल फ़ील्ड की स्थिति की जांच करता है. अगर कोई 3A रूटीन चालू है, तो वह रूटीन, उससे जुड़े कंट्रोल वैरिएबल को बदल देता है. इसके बाद, ये बदली गई वैल्यू उस कैप्चर के नतीजे के मेटाडेटा में उपलब्ध होती हैं. उदाहरण के लिए, अगर किसी अनुरोध में ऑटोएक्सपोज़र चालू है, तो एचएएल को अनुरोध के एक्सपोज़र, गेन, और फ़्रेम की अवधि वाले फ़ील्ड को बदलना चाहिए. साथ ही, एई मोड के आधार पर फ़्लैश फ़ील्ड को भी बदला जा सकता है. काम के कंट्रोल की सूची यहां दी गई है:
कंट्रोल का नाम | इकाई | अहम जानकारी |
---|---|---|
android.control.mode | enum: OFF, AUTO, USE_SCENE_MODE | 3A लेवल का बेहतर कंट्रोल. बंद होने पर, एचएएल के ज़रिए 3A कंट्रोल की सभी सुविधाएं बंद हो जाती हैं. ऐप्लिकेशन को कैप्चर पैरामीटर के लिए फ़ील्ड खुद से सेट करने चाहिए. AUTO पर सेट होने पर, android.control.* में मौजूद अलग-अलग एल्गोरिदम कंट्रोल चालू होते हैं. जैसे, android.control.afMode. USE_SCENE_MODE पर सेट होने पर, android.control में मौजूद अलग-अलग कंट्रोल.* ज़्यादातर बंद रहते हैं. साथ ही, एचएएल अपनी पसंद के हिसाब से सीन मोड की किसी एक सेटिंग (जैसे, ऐक्शन, सनसेट या पार्टी) को लागू करता है. |
android.control.afMode | enum | बंद होने का मतलब है कि android.lens.focusDistance की मदद से, लेंस के फ़ोकस को मैन्युअल तरीके से कंट्रोल किया जा सकता है. |
android.control.aeMode | enum | 'बंद है' का मतलब है कि एक्सपोज़र/गेन/फ़्रेम की अवधि को मैन्युअल तरीके से कंट्रोल किया जा सकता है. इसके लिए, android.sensor.exposureTime / .sensitivity / .frameDuration का इस्तेमाल करें |
android.control.awbMode | enum | बंद होने का मतलब है कि वाइट बैलेंस को मैन्युअल तरीके से कंट्रोल किया जा सकता है. |