এই পৃষ্ঠায় Android ডিভাইসের জন্য 3A মোড ও স্টেট মেশিনের বিবরণ দেওয়া হয়েছে। ক্যামেরা HAL ইন্টারফেস, যা হাই লেভেলে স্টেট মেশিনকে সংজ্ঞায়িত করে, HAL ইমপ্লিমেন্টেশন এবং Android ফ্রেমওয়ার্ককে বর্তমান 3A স্টেট কমিউনিকেট করতে এবং 3A ইভেন্ট ট্রিগার করতে দেয়। HAL ইমপ্লিমেন্টেশন 3A অ্যালগরিদমের জন্য দায়ী যা 3A মোড সেটিংস এবং স্টেট ট্রানজিশন নিয়ন্ত্রণ করে।
ডিভাইস খোলা হলে, প্রতিটি স্বতন্ত্র 3A স্টেট অবশ্যই
STATE_INACTIVE হতে হবে।
স্ট্রিম কনফিগারেশন ৩এ রিসেট করে না। যেমন, 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 নয় এমন ভ্যালুতে সেট করা আছে এমন প্রতিটি অনুরোধকে একটি স্বতন্ত্র ট্রিগারিং ইভেন্ট হিসেবে বিবেচনা করা হবে।
টপ লেভেলে, ANDROID_CONTROL_MODE সেটিংয়ের মাধ্যমে 3A কন্ট্রোল করা হয়। এটি কোনও 3A (ANDROID_CONTROL_MODE_OFF), সাধারণ অটোমেটিক মোড (ANDROID_CONTROL_MODE_AUTO) এবং সিন মোড সেটিং ব্যবহার করার মধ্যে থেকে বেছে নেয় (ANDROID_CONTROL_USE_SCENE_MODE):
- বন্ধ মোডে, প্রতিটি স্বতন্ত্র অটোফোকাস (AF), অটোএক্সপোজার (AE), এবং অটোহোয়াইটব্যালেন্স (AWB) মোড কার্যকরভাবে বন্ধ থাকে এবং কোনও ক্যাপচার কন্ট্রোলই 3A রুটিন দ্বারা ওভাররাইড করা যাবে না।
- AUTO মোডে, AF, AE এবং AWB মোডগুলি সব তাদের নিজস্ব স্বাধীন অ্যালগরিদম রান করে এবং তাদের নিজস্ব মোড, স্টেট এবং ট্রিগার মেটাডেটা এন্ট্রি থাকে, যেমন পরবর্তী বিভাগে তালিকাভুক্ত করা হয়েছে।
- USE_SCENE_MODE-এ, ANDROID_CONTROL_SCENE_MODE এন্ট্রির ভ্যালু অবশ্যই 3A রুটিনের আচরণ নির্ধারণ করতে ব্যবহার করতে হবে। FACE_PRIORITY ছাড়া অন্যান্য SCENE_MODE-এ, HAL-কে অবশ্যই ANDROID_CONTROL_AE/AWB/AF_MODE-এর ভ্যালু ওভাররাইড করতে হবে, যাতে এটি বেছে নেওয়া SCENE_MODE-এর জন্য পছন্দের মোড হতে পারে। যেমন, HAL, 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 বন্ধ করা আছে; ফ্রেমওয়ার্ক/অ্যাপ সরাসরি লেন্সের পজিশন কন্ট্রোল করে। |
| AF_MODE_AUTO | সিঙ্গেল-সুইপ অটোফোকাস। AF ট্রিগার না করা পর্যন্ত লেন্সের কোনও মুভমেন্ট হয় না। |
| AF_MODE_MACRO | সিঙ্গেল-সুইপ আপ-ক্লোজ অটোফোকাস। AF ট্রিগার না হলে লেন্স নড়াচড়া করবে না |
| AF_MODE_CONTINUOUS_VIDEO | ভিডিও রেকর্ড করার জন্য মসৃণ অবিচ্ছিন্ন ফোকাস করা। অবিলম্বে ট্রিগার করলে বর্তমান পজিশনে ফোকাস লক হয়ে যায়। বাতিল করলে একটানা ফোকাস করা আবার শুরু হয়। |
| AF_MODE_CONTINUOUS_PICTURE | জিরো-শাটার-ল্যাগ স্টিল ক্যাপচারের জন্য, দ্রুত একটানা ফোকাস করা। ট্রিগার করা বর্তমানে অ্যাক্টিভ সুইপ শেষ হলে ফোকাস লক করে। বাতিল করলে একটানা ফোকাস করা আবার শুরু হয়। |
| AF_MODE_EDOF | উন্নত এক্সটেন্ডেড ডেপ্থ অফ ফিল্ড ফোকাস করা। কোনও অটোফোকাস স্ক্যান নেই, তাই একটি ট্রিগার বা বাতিল করলে কোনও প্রভাব পড়ে না। HAL-এর মাধ্যমে ছবি অটোমেটিক ফোকাস করা হয়। |
| ANDROID_CONTROL_AF_STATE | বর্তমান AF অ্যালগরিদম স্টেট বর্ণনা করে এমন ডায়নামিক মেটাডেটা, যা HAL-এর মাধ্যমে ফলাফল মেটাডেটায় রিপোর্ট করা হয়। |
| AF_STATE_INACTIVE | কোনও ফোকাস করা হয়নি অথবা অ্যালগরিদম রিসেট করা হয়েছে। Lens সরছে না। MODE_OFF বা MODE_EDOF-এর জন্য সবসময় স্ট্যাটাস। ডিভাইসটি খোলা হলে, সেটি এই অবস্থায় শুরু হতে হবে। |
| AF_STATE_PASSIVE_SCAN | একটি কন্টিনিউয়াস ফোকাস অ্যালগরিদম বর্তমানে ভাল ফোকাসের জন্য স্ক্যান করছে। লেন্সটি নড়ছে। |
| AF_STATE_PASSIVE_FOCUSED | কন্টিনিউয়াস ফোকাস অ্যালগরিদম মনে করে যে এটি ভালভাবে ফোকাস করা হয়েছে। লেন্স সরছে না। HAL নিজে থেকেই এই স্টেট থেকে বেরিয়ে আসতে পারে। |
| AF_STATE_PASSIVE_UNFOCUSED | কন্টিনিউয়াস ফোকাস অ্যালগরিদম মনে করে যে এটি ভালভাবে ফোকাস করা হয়নি। লেন্স সরছে না। HAL নিজে থেকেই এই স্টেট থেকে বেরিয়ে আসতে পারে। |
| AF_STATE_ACTIVE_SCAN | ব্যবহারকারীর ট্রিগার করা স্ক্যান চলছে। |
| AF_STATE_FOCUSED_LOCKED | AF অ্যালগরিদম মনে করে যে এটি ফোকাস করা হয়েছে। লেন্স নড়ছে না। |
| AF_STATE_NOT_FOCUSED_LOCKED | AF অ্যালগরিদম ফোকাস করতে পারেনি। লেন্স নড়াচড়া করছে না। |
| ANDROID_CONTROL_AF_TRIGGER | অটোফোকাস স্ক্যান শুরু করার কন্ট্রোল, যার অর্থ মোড ও অবস্থার উপর নির্ভর করে। অনুরোধ সেটিংসে ফ্রেমওয়ার্কের মাধ্যমে সেট করা হয়। |
| AF_TRIGGER_IDLE | বর্তমানে কোনও ট্রিগার নেই। |
| AF_TRIGGER_START | AF স্ক্যান শুরু করার ট্রিগার। এফেক্ট মোড ও স্টেটের উপর নির্ভর করে। |
| AF_TRIGGER_CANCEL | কোনও AF স্ক্যান চালু থাকলে তা বাতিল করুন এবং অ্যালগরিদম ডিফল্টে রিসেট করুন। |
| অতিরিক্ত মেটাডেটা এন্ট্রি | |
|---|---|
| ANDROID_CONTROL_AF_REGIONS | ভাল ফোকাস নির্ধারণ করতে ভিউ ফিল্ডের (FOV) যে অঞ্চলগুলি ব্যবহার করা উচিত তা বেছে নেওয়ার কন্ট্রোল। এটি ফোকাসের জন্য স্ক্যান করে এমন সব AF মোডের ক্ষেত্রে প্রযোজ্য। অনুরোধ সেটিংসে ফ্রেমওয়ার্কের মাধ্যমে সেট করা হয়। |
অটোএক্সপোজার সেটিংস ও ফলাফল এন্ট্রি
| প্রধান মেটাডেটা এন্ট্রি | |
|---|---|
| ANDROID_CONTROL_AE_MODE | বর্তমান অটোএক্সপোজার মোড বেছে নেওয়ার কন্ট্রোল। অনুরোধ সেটিংসে ফ্রেমওয়ার্কের মাধ্যমে সেট করা হয়। |
| AE_MODE_OFF | অটোএক্সপোজার বন্ধ করা আছে; ব্যবহারকারী এক্সপোজার, গেন, ফ্রেম ডিউরেশন ও ফ্ল্যাশ কন্ট্রোল করেন। |
| AE_MODE_ON | ফ্ল্যাশ কন্ট্রোল বন্ধ রেখে স্ট্যান্ডার্ড অটোএক্সপোজার। ব্যবহারকারী ফ্ল্যাশ ফায়ার করতে বা টর্চ মোডে সেট করতে পারেন। |
| AE_MODE_ON_AUTO_FLASH | স্ট্যান্ডার্ড অটোএক্সপোজার, প্রি-ক্যাপচার ও স্টিল ক্যাপচারের জন্য HAL-এর বিবেচনার ভিত্তিতে ফ্ল্যাশ চালু করা সহ। ফ্ল্যাশ কন্ট্রোল করার সুবিধা ব্যবহারকারী বন্ধ করে দিয়েছেন। |
| AE_MODE_ON_ALWAYS_FLASH | ক্যাপচার করার জন্য ফ্ল্যাশ সবসময় ফায়ার করা সহ স্ট্যান্ডার্ড অটোএক্সপোজার এবং প্রিক্যাপচারের জন্য HAL-এর বিবেচনা। ফ্ল্যাশের ব্যবহারকারী কন্ট্রোল বন্ধ করা আছে। |
| AE_MODE_ON_AUTO_FLASH_REDEYE | প্রিক্যাপচার ও স্টিল ক্যাপচারের জন্য HAL-এর বিবেচনার ভিত্তিতে ফ্ল্যাশ চালু রেখে স্ট্যান্ডার্ড অটোএক্সপোজার। ফাইনাল ছবিতে লাল চোখের সমস্যা কমাতে প্রি-ক্যাপচার সিকোয়েন্সের শেষে ফ্ল্যাশ বার্স্ট ব্যবহার করুন। ফ্ল্যাশের ব্যবহারকারী কন্ট্রোল বন্ধ করা আছে। |
| AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY | কম আলোতে লো লাইট বুস্ট অটোমেটিক প্রিভিউ স্ট্রিমের উজ্জ্বলতা অ্যাডজাস্ট করে । এর ফলে কম আলোতে মোশন ব্লার ও নয়েজ বেড়ে যেতে পারে। ডিভাইস প্রস্তুতকারকদের অবশ্যই নিশ্চিত করতে হবে যে ফ্রেম রেট যেন ১০ fps-এর নিচে না যায়। |
| ANDROID_CONTROL_AE_STATE | বর্তমান AE অ্যালগরিদম স্টেট বর্ণনা করে এমন ডায়নামিক মেটাডেটা, যা ফলাফলের মেটাডেটায় HAL দ্বারা রিপোর্ট করা হয়। |
| AE_STATE_INACTIVE | মোড পাল্টানোর পরে প্রাথমিক AE স্ট্যাটাস। ডিভাইসটি খোলা হলে, এটি অবশ্যই এই অবস্থায় শুরু হতে হবে। |
| AE_STATE_SEARCHING | AE ভাল ভ্যালুতে কনভার্জ করছে না এবং এক্সপোজার প্যারামিটার অ্যাডজাস্ট করছে। |
| AE_STATE_CONVERGED | AE বর্তমান দৃশ্যের জন্য ভাল এক্সপোজার ভ্যালু খুঁজে পেয়েছে এবং এক্সপোজার প্যারামিটার পরিবর্তন হচ্ছে না। আরও ভালো সমাধান খুঁজতে HAL নিজে থেকেই এই স্টেট ছেড়ে বেরিয়ে আসতে পারে। |
| AE_STATE_LOCKED | AE_LOCK কন্ট্রোলের মাধ্যমে AE লক করা হয়েছে। এক্সপোজার ভ্যালু পরিবর্তন হচ্ছে না। |
| AE_STATE_FLASH_REQUIRED | HAL-এর এক্সপোজার কনভার্জ করেছে, কিন্তু সেটি মনে করে যে যথেষ্ট উজ্জ্বল ছবি তোলার জন্য ফ্ল্যাশ প্রয়োজন। জিরো-শাটার-ল্যাগ ফ্রেম ব্যবহার করা যাবে কিনা তা নির্ধারণ করতে ব্যবহার করা হয়। |
| AE_STATE_PRECAPTURE | HAL হল একটি প্রিক্যাপচার সিকোয়েন্সের মাঝে। AE মোডের উপর নির্ভর করে, এই মোডে মিটারিংয়ের জন্য ফ্ল্যাশ ফায়ার করা বা রেড আই কমানোর জন্য ফ্ল্যাশ পালস ব্যবহার করা হতে পারে। |
| ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER | খুব ভালো কোয়ালিটির ছবি তোলার আগে মিটারিং সিকোয়েন্স শুরু করার কন্ট্রোল। অনুরোধ সেটিংসে ফ্রেমওয়ার্কের মাধ্যমে সেট করা হয়। |
| PRECAPTURE_TRIGGER_IDLE | বর্তমানে কোনও ট্রিগার নেই। |
| PRECAPTURE_TRIGGER_START | প্রি-ক্যাপচার সিকোয়েন্স শুরু করুন। আসন্ন হাই-রেজোলিউশন ক্যাপচারের জন্য ভালো এক্সপোজার/হোয়াইট ব্যালেন্স পরিমাপ করতে HAL-এর পরবর্তী অনুরোধ ব্যবহার করা উচিত। |
| অতিরিক্ত মেটাডেটা এন্ট্রি | |
|---|---|
| ANDROID_CONTROL_AE_LOCK | AE কন্ট্রোল লক করে সেটির বর্তমান ভ্যালু সেট করার কন্ট্রোল। |
| ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION | AE অ্যালগরিদম টার্গেট ব্রাইটনেস পয়েন্ট অ্যাডজাস্ট করার কন্ট্রোল। |
| ANDROID_CONTROL_AE_TARGET_FPS_RANGE | AE অ্যালগরিদমের জন্য টার্গেট ফ্রেম রেট রেঞ্জ বেছে নেওয়ার কন্ট্রোল। AE রুটিন ফ্রেম রেট পরিবর্তন করে এই সীমার বাইরে নিয়ে যেতে পারবে না। |
| ANDROID_CONTROL_AE_REGIONS | FOV-এর অঞ্চল বেছে নেওয়ার কন্ট্রোল যা ভালো এক্সপোজার লেভেল নির্ধারণ করতে ব্যবহার করা উচিত। এটি বন্ধ করা ছাড়া সব AE মোডের ক্ষেত্রে প্রযোজ্য। |
অটোহোয়াইটব্যালেন্স সেটিংস এবং ফলাফল এন্ট্রি
| প্রধান মেটাডেটা এন্ট্রি | |
|---|---|
| ANDROID_CONTROL_AWB_MODE | বর্তমান হোয়াইট-ব্যালেন্স মোড বেছে নেওয়ার কন্ট্রোল। |
| AWB_MODE_OFF | অটোমেটিক হোয়াইট ব্যালেন্স বন্ধ করা আছে। ব্যবহারকারী কালার ম্যাট্রিক্স নিয়ন্ত্রণ করেন। |
| AWB_MODE_AUTO | অটোমেটিক হোয়াইট ব্যালেন্স চালু করা আছে; 3A কালার ট্রান্সফর্ম নিয়ন্ত্রণ করে, সম্ভবত সাধারণ ম্যাট্রিক্সের চেয়ে আরও জটিল ট্রান্সফর্ম ব্যবহার করে। |
| AWB_MODE_INCANDESCENT | ইনডোর ইনক্যান্ডেসেন্ট (টংস্টেন) লাইটিংয়ের জন্য ফিক্সড হোয়াইট ব্যালেন্স সেটিং ভালো, মোটামুটি ২৭০০K. |
| AWB_MODE_FLUORESCENT | ফ্লুরোসেন্ট আলোর জন্য উপযুক্ত ফিক্সড হোয়াইট ব্যালেন্স সেটিংস, মোটামুটি ৫০০০K. |
| AWB_MODE_WARM_FLUORESCENT | ফ্লুরোসেন্ট লাইটিংয়ের জন্য উপযুক্ত ফিক্সড হোয়াইট ব্যালেন্স সেটিংস, মোটামুটি ৩০০০K. |
| AWB_MODE_DAYLIGHT | দিনের আলোর জন্য উপযুক্ত ফিক্সড হোয়াইট ব্যালেন্স সেটিংস, মোটামুটি 5500K. |
| AWB_MODE_CLOUDY_DAYLIGHT | ক্লাউডড ডেলাইটের জন্য ফিক্সড হোয়াইট ব্যালেন্স সেটিংস ভালো, মোটামুটি ৬৫০০K। |
| AWB_MODE_TWILIGHT | সূর্যাস্ত/সূর্যোদয়ের কাছাকাছি সময়ের জন্য ফিক্সড হোয়াইট ব্যালেন্স সেটিংস ভালো, মোটামুটি ১৫০০০K। |
| AWB_MODE_SHADE | সরাসরি সূর্যের আলো পড়ে না এমন জায়গার জন্য ফিক্সড হোয়াইট ব্যালেন্স সেটিংস ভাল, মোটামুটি ৭,৫০০K. |
| ANDROID_CONTROL_AWB_STATE | বর্তমান AWB অ্যালগরিদম স্টেট বর্ণনা করে এমন ডায়নামিক মেটাডেটা, যা ফলাফল মেটাডেটায় HAL-এর দ্বারা রিপোর্ট করা হয়। |
| AWB_STATE_INACTIVE | মোড পরিবর্তন করার পরে প্রাথমিক AWB স্ট্যাটাস। ডিভাইসটি খোলা হলে, এটি অবশ্যই এই অবস্থায় শুরু হতে হবে। |
| AWB_STATE_SEARCHING | AWB ভাল ভ্যালুতে কনভার্জ করছে না এবং কালার অ্যাডজাস্টমেন্ট প্যারামিটার পরিবর্তন করছে। |
| AWB_STATE_CONVERGED | AWB বর্তমান দৃশ্যের জন্য ভালো কালার অ্যাডজাস্টমেন্ট ভ্যালু খুঁজে পেয়েছে এবং প্যারামিটার পরিবর্তন হচ্ছে না। আরও ভালো সমাধান খোঁজার জন্য HAL নিজে থেকেই এই স্টেট থেকে বেরিয়ে আসতে পারে। |
| AWB_STATE_LOCKED | AWB_LOCK কন্ট্রোল ব্যবহার করে AWB লক করা হয়েছে। রঙ অ্যাডজাস্টমেন্ট ভ্যালু পরিবর্তন হচ্ছে না। |
| অতিরিক্ত মেটাডেটা এন্ট্রি | |
|---|---|
| ANDROID_CONTROL_AWB_LOCK | AWB কালার অ্যাডজাস্টমেন্টকে বর্তমান ভ্যালুতে লক করার কন্ট্রোল। |
| ANDROID_CONTROL_AWB_REGIONS | FOV-এর সেইসব অঞ্চল বেছে নেওয়ার কন্ট্রোল যা ভালো কালার ব্যালেন্স নির্ধারণ করতে ব্যবহার করা উচিত। এটি শুধুমাত্র অটো-হোয়াইট ব্যালেন্স মোডের ক্ষেত্রে প্রযোজ্য। |
সাধারণ স্টেট মেশিন ট্রানজিশন নোট
AF, AE বা AWB মোডের মধ্যে পরিবর্তন করলে, অ্যালগরিদমের স্টেট সবসময় রিসেট হয়ে INACTIVE হয়ে যায়। একইভাবে, CONTROL_MODE == USE_SCENE_MODE হলে, CONTROL_MODE বা CONTROL_SCENE_MODE-এর মধ্যে পরিবর্তন করলে, সব অ্যালগরিদম স্টেট INACTIVE-এ রিসেট হয়ে যায়।
নিচে দেওয়া টেবিলগুলি মোড-ভিত্তিক।
AF স্টেট মেশিন
| mode = AF_MODE_OFF অথবা AF_MODE_EDOF | |||
|---|---|---|---|
| রাজ্য | ট্রান্সফর্মেশনের কারণ | নতুন স্ট্যাটাস | নোট |
| অ্যাক্টিভ নেই | AF বন্ধ করা আছে | ||
| mode = AF_MODE_AUTO অথবা AF_MODE_MACRO | |||
|---|---|---|---|
| রাজ্য | ট্রান্সফর্মেশনের কারণ | নতুন স্ট্যাটাস | নোট |
| অ্যাক্টিভ নেই | AF_TRIGGER | ACTIVE_SCAN | AF সুইপ শুরু করুন Lens এখন সরছে |
| ACTIVE_SCAN | AF সুইপ করা হয়ে গেছে | FOCUSED_LOCKED | AF সফল হলে Lens এখন লক করা হয়েছে |
| ACTIVE_SCAN | AF সুইপ করা হয়ে গেছে | NOT_FOCUSED_LOCKED | AF সফল হলে Lens এখন লক করা হয়েছে |
| ACTIVE_SCAN | AF_CANCEL | অ্যাক্টিভ নেই | AF বাতিল/রিসেট করা Lens এখন লক করা হয়েছে |
| FOCUSED_LOCKED | AF_CANCEL | অ্যাক্টিভ নেই | AF বাতিল/রিসেট করা |
| FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | নতুন সুইপ শুরু করা Lens এখন সরছে |
| NOT_FOCUSED_LOCKED | AF_CANCEL | অ্যাক্টিভ নেই | AF বাতিল/রিসেট করুন |
| NOT_FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | নতুন সুইপ শুরু করা Lens এখন সরছে |
| সব প্রদেশ | মোড পরিবর্তন করুন | অ্যাক্টিভ নেই | |
| mode = AF_MODE_CONTINUOUS_VIDEO | |||
|---|---|---|---|
| রাজ্য | ট্রান্সফর্মেশনের কারণ | নতুন স্ট্যাটাস | নোট |
| অ্যাক্টিভ নেই | HAL নতুন স্ক্যান শুরু করে | PASSIVE_SCAN | AF সুইপ শুরু করুন Lens এখন সরানো হচ্ছে |
| অ্যাক্টিভ নেই | AF_TRIGGER | NOT_FOCUSED_LOCKED | AF স্টেট কোয়েরি Lens এখন লক করা হয়েছে |
| PASSIVE_SCAN | HAL বর্তমান স্ক্যান সম্পূর্ণ করে | PASSIVE_FOCUSED | AF স্ক্যান শেষ করুন Lens এখন লক করা আছে |
| PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | ফোকাস ভালো হলে অবিলম্বে ট্রান্সফর্মেশন Lens এখন লক করা হয়েছে |
| PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | ফোকাস খারাপ হলে অবিলম্বে ট্রান্সফর্মেশন Lens এখন লক করা আছে |
| PASSIVE_SCAN | AF_CANCEL | অ্যাক্টিভ নেই | লেন্সের পজিশন রিসেট করুন Lens এখন লক করা আছে |
| PASSIVE_FOCUSED | HAL নতুন স্ক্যান শুরু করে | PASSIVE_SCAN | AF স্ক্যান শুরু করুন Lens এখন সরছে |
| PASSIVE_FOCUSED | AF_TRIGGER | FOCUSED_LOCKED | ফোকাস ভালো হলে অবিলম্বে ট্রান্সফর্মেশন Lens এখন লক করা আছে |
| PASSIVE_FOCUSED | AF_TRIGGER | NOT_FOCUSED_LOCKED | ফোকাস খারাপ হলে
অবিলম্বে ট্রান্সফর্মেশন
Lens এখন লক করা আছে |
| 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 স্ক্যান রিস্টার্ট করা |
| mode = AF_MODE_CONTINUOUS_PICTURE | |||
|---|---|---|---|
| রাজ্য | ট্রান্সফর্মেশনের কারণ | নতুন স্ট্যাটাস | নোট |
| অ্যাক্টিভ নেই | HAL নতুন স্ক্যান শুরু করে | PASSIVE_SCAN | AF স্ক্যান শুরু করুন Lens এখন সরানো হচ্ছে |
| অ্যাক্টিভ নেই | AF_TRIGGER | NOT_FOCUSED_LOCKED | AF স্টেট কোয়েরি Lens এখন লক করা হয়েছে |
| PASSIVE_SCAN | HAL বর্তমান স্ক্যান সম্পূর্ণ করে | PASSIVE_FOCUSED | AF স্ক্যান শেষ করুন
Lens এখন লক করা আছে |
| PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | ফোকাস ভাল হলে চূড়ান্ত ট্রান্সফর্মেশন Lens এখন লক করা হয়েছে |
| PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | ফোকাস করতে না পারলে সম্ভাব্য ট্রান্সফর্মেশন Lens এখন লক করা হয়েছে |
| PASSIVE_SCAN | AF_CANCEL | অ্যাক্টিভ নেই | লেন্সের পজিশন রিসেট করুন Lens এখন লক করা আছে |
| PASSIVE_FOCUSED | HAL নতুন স্ক্যান শুরু করে | PASSIVE_SCAN | AF স্ক্যান শুরু করুন Lens এখন সরছে |
| PASSIVE_FOCUSED | AF_TRIGGER | FOCUSED_LOCKED | ফোকাস ভালো হলে সঙ্গে সঙ্গে ট্রান্সফর্ম করা Lens এখন লক করা আছে |
| PASSIVE_FOCUSED | AF_TRIGGER | NOT_FOCUSED_LOCKED | ফোকাস খারাপ হলে সঙ্গে সঙ্গে ট্রান্সফর্ম করা Lens এখন লক করা হয়েছে |
| 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 স্টেট মেশিনের জন্য সেই দুটি স্টেটকে উল্লেখ করে এমন নিচের সারিতে উপেক্ষা করা উচিত।
| মোড = AE_MODE_OFF / AWB মোড অটো নয় | |||
|---|---|---|---|
| রাজ্য | ট্রান্সফর্মেশনের কারণ | নতুন স্ট্যাটাস | নোট |
| অ্যাক্টিভ নেই | AE/AWB বন্ধ করা আছে | ||
| mode = AE_MODE_ON_* / AWB_MODE_AUTO | |||
|---|---|---|---|
| রাজ্য | ট্রান্সফর্মেশনের কারণ | নতুন স্ট্যাটাস | নোট |
| অ্যাক্টিভ নেই | HAL, AE/AWB স্ক্যান শুরু করে | সার্চ করা হচ্ছে | |
| অ্যাক্টিভ নেই | AE/AWB_LOCK চালু আছে | লক করা আছে | ভ্যালু লক করা আছে |
| সার্চ করা হচ্ছে | HAL, AE/AWB স্ক্যান সম্পূর্ণ করে | কনভার্জ করা হয়েছে | ভাল ভ্যালু, পরিবর্তন হচ্ছে না |
| সার্চ করা হচ্ছে | HAL, AE স্ক্যান সম্পূর্ণ করে | FLASH_REQUIRED | কনভার্জ করেছে কিন্তু ফ্ল্যাশ না থাকার জন্য খুব অন্ধকার |
| সার্চ করা হচ্ছে | AE/AWB_LOCK চালু আছে | লক করা আছে | ভ্যালু লক করা আছে |
| কনভার্জ করা হয়েছে | HAL, AE/AWB স্ক্যান শুরু করে | সার্চ করা হচ্ছে | ভ্যালু লক করা আছে |
| কনভার্জ করা হয়েছে | AE/AWB_LOCK চালু আছে | লক করা আছে | ভ্যালু লক করা আছে |
| FLASH_REQUIRED | HAL, AE/AWB স্ক্যান শুরু করে | সার্চ করা হচ্ছে | ভ্যালু লক করা আছে |
| FLASH_REQUIRED | AE/AWB_LOCK চালু আছে | লক করা আছে | ভ্যালু লক করা আছে |
| লক করা আছে | AE/AWB_LOCK বন্ধ আছে | সার্চ করা হচ্ছে | আনলক করার পরে ভ্যালু ভাল নয় |
| লক করা আছে | AE/AWB_LOCK বন্ধ | কনভার্জ করা হয়েছে | আনলক করার পরে ভ্যালু ভালো আছে |
| লক করা আছে | AE_LOCK বন্ধ করা আছে | FLASH_REQUIRED | এক্সপোজার ভাল, তবে খুব অন্ধকার |
| AE-এর সব রাজ্য | PRECAPTURE_START | প্রিক্যাপচার | প্রিক্যাপচার সিকোয়েন্স শুরু করা |
| প্রি-ক্যাপচার | সিকোয়েন্স সম্পূর্ণ হয়েছে, AE_LOCK বন্ধ আছে | কনভার্জ করা হয়েছে | হাই-কোয়ালিটি ক্যাপচারের জন্য রেডি |
| প্রি-ক্যাপচার | সিকোয়েন্স সম্পূর্ণ, AE_LOCK চালু আছে | লক করা আছে | খুব ভালো কোয়ালিটির ক্যাপচার করার জন্য রেডি |
ম্যানুয়াল কন্ট্রোল চালু করুন
সরাসরি অ্যাপ কন্ট্রোলের অনুমতি দেওয়ার জন্য ডিভাইস 3A ব্লক কনফিগার করার সময় বিভিন্ন কন্ট্রোলও ব্যবহার করা হয়।
3A কন্ট্রোলের জন্য HAL মডেল হল প্রতিটি অনুরোধের জন্য, HAL 3A কন্ট্রোল ফিল্ডের স্ট্যাটাস পরীক্ষা করে। কোনও 3A রুটিন চালু করা থাকলে, সেই রুটিন সেই রুটিনের সাথে সম্পর্কিত কন্ট্রোল ভেরিয়েবলকে ওভাররাইড করে এবং এই ওভাররাইড করা ভ্যালুগুলি সেই ক্যাপচারের ফলাফল মেটাডেটায় উপলভ্য থাকে। যেমন, কোনও অনুরোধে অটোএক্সপোজার চালু করা থাকলে, HAL-এর উচিত অনুরোধের এক্সপোজার, গেইন ও ফ্রেমের সময়সীমা ফিল্ড (এবং সম্ভবত ফ্ল্যাশ ফিল্ড, AE মোডের উপর নির্ভর করে) ওভাররাইট করা। প্রাসঙ্গিক কন্ট্রোলগুলির তালিকা হল:
| কন্ট্রোলের নাম | ইউনিট | নোট |
|---|---|---|
| android.control.mode | enum: OFF, AUTO, USE_SCENE_MODE | হাই-লেভেল 3A কন্ট্রোল। বন্ধ করা থাকলে, HAL-এর মাধ্যমে সব 3A কন্ট্রোল বন্ধ করা থাকে। অ্যাপটিকে অবশ্যই ক্যাপচার প্যারামিটারের ফিল্ড সেট করতে হবে নিজেই। 'অটোমেটিক' মোডে সেট করা থাকলে, android.control.afMode-এর মতো android.control.*-এ থাকা স্বতন্ত্র অ্যালগরিদম কন্ট্রোল কার্যকর হয়। USE_SCENE_MODE হিসেবে সেট করা থাকলে, android.control.*-এর মধ্যে থাকা স্বতন্ত্র কন্ট্রোল সাধারণত বন্ধ থাকে এবং HAL নিজের ইচ্ছামতো কোনও একটি সিন মোড সেটিংস (যেমন, অ্যাকশন, সানসেট বা পার্টি) প্রয়োগ করে। |
| android.control.afMode | enum | বন্ধ থাকার অর্থ হল android.lens.focusDistance-এর মাধ্যমে লেন্সের ফোকাস ম্যানুয়ালি কন্ট্রোল করা। |
| android.control.aeMode | enum | বন্ধ থাকার অর্থ হল android.sensor.exposureTime / .sensitivity / .frameDuration-এর মাধ্যমে এক্সপোজার/গেন/ফ্রেমের সময়সীমা ম্যানুয়ালি নিয়ন্ত্রণ করা |
| android.control.awbMode | enum | বন্ধ করা থাকলে, হোয়াইট ব্যালেন্স ম্যানুয়ালি কন্ট্রোল করতে হবে। |