3A মোড ও স্টেট ট্রানজিশন

এই পৃষ্ঠায় 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 বন্ধ করা থাকলে, হোয়াইট ব্যালেন্স ম্যানুয়ালি কন্ট্রোল করতে হবে।