แม้ว่าอัลกอริธึม 3A จริงจะขึ้นอยู่กับการนำ HAL ไปใช้ คำอธิบายเครื่องสถานะระดับสูงจะถูกกำหนดโดยอินเทอร์เฟซ HAL เพื่อให้อุปกรณ์ HAL และเฟรมเวิร์กสามารถสื่อสารเกี่ยวกับสถานะปัจจุบันของ 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 ทั้งหมดจะใช้อัลกอริธึมอิสระของตัวเอง และมีโหมด สถานะ และรายการเมตาดาต้าทริกเกอร์ของตัวเอง ดังที่แสดงไว้ในส่วนถัดไป
- ใน USE_SCENE_MODE ต้องใช้ค่าของรายการ ANDROID_CONTROL_SCENE_MODE เพื่อกำหนดพฤติกรรมของรูทีน 3A ใน SCENE_MODE นอกเหนือจาก FACE_PRIORITY นั้น HAL จะต้องแทนที่ค่าของ ANDROID_CONTROL_AE/AWB/AF_MODE เพื่อให้เป็นโหมดที่ต้องการสำหรับ SCENE_MODE ที่เลือก ตัวอย่างเช่น HAL อาจต้องการให้ SCENE_MODE_NIGHT ใช้โหมด AF ต่อเนื่อง CONTINUOUS_FOCUS ผู้ใช้จะต้องละเว้นการเลือก AE/AWB/AF_MODE เมื่อฉากสำหรับโหมดฉากเหล่านี้
- สำหรับ SCENE_MODE_FACE_PRIORITY การควบคุม AE/AWB/AFMODE จะทำงานเหมือนกับใน ANDROID_CONTROL_MODE_AUTO แต่กิจวัตร 3A จะต้องมีอคติต่อการวัดแสงและการโฟกัสไปที่ใบหน้าใดๆ ที่ตรวจพบในฉาก
การตั้งค่าโฟกัสอัตโนมัติและรายการผลลัพธ์
รายการข้อมูลเมตาหลัก | |
---|---|
ANDROID_CONTROL_AF_MODE | ควบคุมการเลือกโหมดโฟกัสอัตโนมัติปัจจุบัน กำหนดโดยกรอบในการตั้งค่าคำขอ |
AF_MODE_ปิด | AF ถูกปิดใช้งาน; เฟรมเวิร์ก/แอปจะควบคุมตำแหน่งเลนส์โดยตรง |
AF_MODE_AUTO | ออโต้โฟกัสแบบกวาดครั้งเดียว ไม่มีการเคลื่อนไหวของเลนส์เว้นแต่ AF จะถูกกระตุ้น |
AF_MODE_มาโคร | ออโต้โฟกัสแบบกวาดครั้งเดียว ไม่มีการเคลื่อนไหวของเลนส์เว้นแต่ AF จะถูกกระตุ้น |
AF_MODE_CONTINUOUS_VIDEO | การโฟกัสต่อเนื่องที่ราบรื่นสำหรับการบันทึกวิดีโอ การทริกเกอร์จะล็อคโฟกัสในตำแหน่งปัจจุบันทันที การยกเลิกจะกลับสู่การโฟกัสแบบต่อเนื่อง |
AF_MODE_CONTINUOUS_PICTURE | การโฟกัสต่อเนื่องที่รวดเร็ว เพื่อการถ่ายภาพนิ่งที่หน่วงชัตเตอร์เป็นศูนย์ การทริกเกอร์การล็อคจะโฟกัสเมื่อการกวาดที่ใช้งานอยู่สิ้นสุดลง การยกเลิกจะกลับสู่การโฟกัสแบบต่อเนื่อง |
AF_MODE_EDOF | การโฟกัสระยะชัดลึกที่ขยายขั้นสูง ไม่มีการสแกนโฟกัสอัตโนมัติ ดังนั้นการเปิดใช้งานหรือการยกเลิกการสแกนจึงไม่มีผลใดๆ ภาพจะถูกโฟกัสอัตโนมัติโดย HAL |
ANDROID_CONTROL_AF_STATE | ข้อมูลเมตาแบบไดนามิกที่อธิบายสถานะอัลกอริทึม AF ปัจจุบัน ซึ่งรายงานโดย HAL ในข้อมูลเมตาของผลลัพธ์ |
AF_STATE_INACTIVE | ไม่มีการโฟกัส หรืออัลกอริธึมถูกรีเซ็ต เลนส์ไม่เคลื่อนไหว สถานะสำหรับ MODE_OFF หรือ MODE_EDOF เสมอ เมื่อเปิดเครื่องแล้วจะต้องเริ่มทำงานในสถานะนี้ |
AF_STATE_PASSIVE_SCAN | อัลกอริธึมโฟกัสต่อเนื่องกำลังสแกนหาโฟกัสที่ดี เลนส์กำลังเคลื่อนที่ |
AF_STATE_PASSIVE_โฟกัส | อัลกอริธึมการโฟกัสต่อเนื่องเชื่อว่ามีการโฟกัสที่ดี เลนส์ไม่เคลื่อนไหว 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_ปิด | การเปิดรับแสงอัตโนมัติถูกปิดใช้งาน ผู้ใช้ควบคุมการรับแสง อัตราขยาย ระยะเวลาเฟรม และแฟลช |
AE_MODE_ON | ค่าแสงอัตโนมัติมาตรฐาน โดยปิดใช้งานการควบคุมแฟลช ผู้ใช้สามารถตั้งค่าแฟลชเป็นไฟหรือโหมดคบเพลิง |
AE_MODE_ON_AUTO_FLASH | ค่าแสงอัตโนมัติมาตรฐาน โดยเปิดแฟลชตามดุลยพินิจของ HAL เพื่อจับภาพล่วงหน้าและภาพนิ่ง การควบคุมแฟลชของผู้ใช้ถูกปิดใช้งาน |
AE_MODE_ON_ALWAYS_แฟลช | ค่าแสงอัตโนมัติมาตรฐาน โดยจะยิงแฟลชเสมอเพื่อถ่ายภาพ และขึ้นอยู่กับดุลยพินิจของ HAL ในการถ่ายภาพล่วงหน้า การควบคุมแฟลชของผู้ใช้ถูกปิดใช้งาน |
AE_MODE_ON_AUTO_FLASH_REDEYE | ค่าแสงอัตโนมัติมาตรฐาน โดยเปิดแฟลชตามดุลยพินิจของ HAL เพื่อจับภาพล่วงหน้าและภาพนิ่ง ใช้แฟลชต่อเนื่องเมื่อสิ้นสุดลำดับการถ่ายภาพล่วงหน้าเพื่อลดตาแดงในภาพสุดท้าย การควบคุมแฟลชของผู้ใช้ถูกปิดใช้งาน |
ANDROID_CONTROL_AE_STATE | ข้อมูลเมตาแบบไดนามิกที่อธิบายสถานะอัลกอริทึม AE ปัจจุบัน ซึ่งรายงานโดย HAL ในข้อมูลเมตาของผลลัพธ์ |
AE_STATE_INACTIVE | สถานะ AE เริ่มต้นหลังจากสวิตช์โหมด เมื่อเปิดเครื่องแล้วจะต้องเริ่มทำงานในสถานะนี้ |
AE_STATE_SEARCHING | AE ไม่ได้ถูกรวมเข้ากับค่าที่ดี และกำลังปรับพารามิเตอร์การรับแสง |
AE_STATE_CONVERGED | AE พบค่าการรับแสงที่ดีสำหรับฉากปัจจุบัน และพารามิเตอร์การรับแสงไม่มีการเปลี่ยนแปลง HAL อาจออกจากสถานะนี้ไปเองเพื่อค้นหาวิธีแก้ปัญหาที่ดีกว่า |
AE_STATE_LOCKED | AE ถูกล็อคด้วยการควบคุม AE_LOCK ค่าแสงไม่เปลี่ยนแปลง |
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_ปิด | ไวท์บาลานซ์อัตโนมัติถูกปิดใช้งาน ผู้ใช้ควบคุมเมทริกซ์สี |
AWB_MODE_AUTO | เปิดใช้งานสมดุลแสงสีขาวอัตโนมัติ 3A ควบคุมการแปลงสี โดยอาจใช้การแปลงที่ซับซ้อนมากกว่าเมทริกซ์ธรรมดา |
AWB_MODE_INCANDESCENT | แก้ไขการตั้งค่าสมดุลแสงขาวที่ดีสำหรับแสงหลอดไส้ (ทังสเตน) ในอาคาร ประมาณ 2,700K |
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 ปัจจุบัน ซึ่งรายงานโดย HAL ในข้อมูลเมตาของผลลัพธ์ |
AWB_STATE_INACTIVE | สถานะ AWB เริ่มต้นหลังจากการสลับโหมด เมื่อเปิดเครื่องแล้วจะต้องเริ่มทำงานในสถานะนี้ |
AWB_STATE_SEARCHING | AWB ไม่ได้ถูกรวมเข้ากับค่าที่ดี และกำลังเปลี่ยนพารามิเตอร์การปรับสี |
AWB_STATE_CONVERGED | AWB พบค่าการปรับสีที่ดีสำหรับฉากปัจจุบัน และพารามิเตอร์ไม่เปลี่ยนแปลง HAL อาจออกจากสถานะนี้ไปเองเพื่อค้นหาวิธีแก้ปัญหาที่ดีกว่า |
AWB_STATE_LOCKED | AWB ถูกล็อคด้วยการควบคุม AWB_LOCK ค่าการปรับสีไม่เปลี่ยนแปลง |
รายการข้อมูลเมตาเพิ่มเติม | |
---|---|
ANDROID_CONTROL_AWB_LOCK | ควบคุมการล็อคการปรับสี AWB ให้เป็นค่าปัจจุบัน |
ANDROID_CONTROL_AWB_REGIONS | ควบคุมการเลือกขอบเขตของ FOV ที่ควรใช้เพื่อกำหนดสมดุลสีที่ดี สิ่งนี้ใช้ได้กับโหมดไวต์บาลานซ์อัตโนมัติเท่านั้น |
บันทึกการเปลี่ยนแปลงเครื่องสถานะทั่วไป
การสลับระหว่างโหมด AF, AE หรือ AWB จะรีเซ็ตสถานะของอัลกอริทึมเป็น INACTIVE เสมอ ในทำนองเดียวกัน การสลับระหว่าง CONTROL_MODE หรือ CONTROL_SCENE_MODE หาก CONTROL_MODE == USE_SCENE_MODE รีเซ็ตสถานะอัลกอริทึมทั้งหมดเป็น INACTIVE
ตารางด้านล่างเป็นตารางต่อโหมด
เครื่องสถานะ AF
โหมด = AF_MODE_OFF หรือ AF_MODE_EDOF | |||
---|---|---|---|
สถานะ | สาเหตุของการเปลี่ยนแปลง | รัฐใหม่ | หมายเหตุ |
ไม่ได้ใช้งาน | AF ถูกปิดใช้งาน |
โหมด = AF_MODE_AUTO หรือ AF_MODE_MACRO | |||
---|---|---|---|
สถานะ | สาเหตุของการเปลี่ยนแปลง | รัฐใหม่ | หมายเหตุ |
ไม่ได้ใช้งาน | AF_TRIGGER | แอคทีฟ_สแกน | เริ่มการกวาด AF ตอนนี้เลนส์เคลื่อนไหวแล้ว |
แอคทีฟ_สแกน | กวาด AF เสร็จแล้ว | โฟกัส_ล็อคแล้ว | หาก AF สำเร็จ ตอนนี้เลนส์ล็อคแล้ว |
แอคทีฟ_สแกน | กวาด AF เสร็จแล้ว | NOT_FOCUSED_LOCKED | หาก AF สำเร็จ ตอนนี้เลนส์ล็อคแล้ว |
แอคทีฟ_สแกน | AF_ยกเลิก | ไม่ได้ใช้งาน | ยกเลิก/รีเซ็ต AF ตอนนี้เลนส์ล็อคแล้ว |
โฟกัส_ล็อคแล้ว | AF_ยกเลิก | ไม่ได้ใช้งาน | ยกเลิก/รีเซ็ต AF |
โฟกัส_ล็อคแล้ว | AF_TRIGGER | แอคทีฟ_สแกน | เริ่มการกวาดล้างใหม่ ตอนนี้เลนส์เคลื่อนไหวแล้ว |
NOT_FOCUSED_LOCKED | AF_ยกเลิก | ไม่ได้ใช้งาน | ยกเลิก/รีเซ็ต AF |
NOT_FOCUSED_LOCKED | AF_TRIGGER | แอคทีฟ_สแกน | เริ่มการกวาดล้างใหม่ ตอนนี้เลนส์เคลื่อนไหวแล้ว |
ทุกรัฐ | การเปลี่ยนแปลงโหมด | ไม่ได้ใช้งาน |
โหมด = AF_MODE_CONTINUOUS_VIDEO | |||
---|---|---|---|
สถานะ | สาเหตุของการเปลี่ยนแปลง | รัฐใหม่ | หมายเหตุ |
ไม่ได้ใช้งาน | HAL เริ่มการสแกนใหม่ | PASSIVE_SCAN | เริ่มการกวาด AF ตอนนี้เลนส์เคลื่อนไหวแล้ว |
ไม่ได้ใช้งาน | AF_TRIGGER | NOT_FOCUSED_LOCKED | แบบสอบถามสถานะ AF ตอนนี้เลนส์ล็อคแล้ว |
PASSIVE_SCAN | HAL เสร็จสิ้นการสแกนปัจจุบัน | พาสซีฟ_โฟกัส | สิ้นสุดการสแกน AF ตอนนี้เลนส์ล็อคแล้ว |
PASSIVE_SCAN | AF_TRIGGER | โฟกัส_ล็อคแล้ว | การเปลี่ยนแปลงทันทีหากโฟกัสได้ดี ตอนนี้เลนส์ล็อคแล้ว |
PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | การเปลี่ยนแปลงทันทีหากโฟกัสไม่ดี ตอนนี้เลนส์ล็อคแล้ว |
PASSIVE_SCAN | AF_ยกเลิก | ไม่ได้ใช้งาน | รีเซ็ตตำแหน่งเลนส์ ตอนนี้เลนส์ล็อคแล้ว |
พาสซีฟ_โฟกัส | HAL เริ่มการสแกนใหม่ | PASSIVE_SCAN | เริ่มการสแกน AF ตอนนี้เลนส์เคลื่อนไหวแล้ว |
พาสซีฟ_โฟกัส | AF_TRIGGER | โฟกัส_ล็อคแล้ว | การเปลี่ยนแปลงทันทีหากโฟกัสได้ดี ตอนนี้เลนส์ล็อคแล้ว |
พาสซีฟ_โฟกัส | AF_TRIGGER | NOT_FOCUSED_LOCKED | การเปลี่ยนแปลงทันทีหากโฟกัสไม่ดี ตอนนี้เลนส์ล็อคแล้ว |
โฟกัส_ล็อคแล้ว | AF_TRIGGER | โฟกัส_ล็อคแล้ว | ไม่มีผลกระทบ |
โฟกัส_ล็อคแล้ว | AF_ยกเลิก | ไม่ได้ใช้งาน | เริ่มการสแกน AF ใหม่ |
NOT_FOCUSED_LOCKED | AF_TRIGGER | NOT_FOCUSED_LOCKED | ไม่มีผลกระทบ |
NOT_FOCUSED_LOCKED | AF_ยกเลิก | ไม่ได้ใช้งาน | เริ่มการสแกน AF ใหม่ |
โหมด = AF_MODE_CONTINUOUS_PICTURE | |||
---|---|---|---|
สถานะ | สาเหตุของการเปลี่ยนแปลง | รัฐใหม่ | หมายเหตุ |
ไม่ได้ใช้งาน | HAL เริ่มการสแกนใหม่ | PASSIVE_SCAN | เริ่มการสแกน AF ตอนนี้เลนส์เคลื่อนไหวแล้ว |
ไม่ได้ใช้งาน | AF_TRIGGER | NOT_FOCUSED_LOCKED | แบบสอบถามสถานะ AF ตอนนี้เลนส์ล็อคแล้ว |
PASSIVE_SCAN | HAL เสร็จสิ้นการสแกนปัจจุบัน | พาสซีฟ_โฟกัส | สิ้นสุดการสแกน AF ตอนนี้เลนส์ล็อคแล้ว |
PASSIVE_SCAN | AF_TRIGGER | โฟกัส_ล็อคแล้ว | การเปลี่ยนแปลงในที่สุดเมื่อโฟกัสได้ดี ตอนนี้เลนส์ล็อคแล้ว |
PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | การเปลี่ยนแปลงในที่สุดหากไม่สามารถโฟกัสได้ ตอนนี้เลนส์ล็อคแล้ว |
PASSIVE_SCAN | AF_ยกเลิก | ไม่ได้ใช้งาน | รีเซ็ตตำแหน่งเลนส์ ตอนนี้เลนส์ล็อคแล้ว |
พาสซีฟ_โฟกัส | HAL เริ่มการสแกนใหม่ | PASSIVE_SCAN | เริ่มการสแกน AF ตอนนี้เลนส์เคลื่อนไหวแล้ว |
พาสซีฟ_โฟกัส | AF_TRIGGER | โฟกัส_ล็อคแล้ว | การเปลี่ยนแปลงทันทีหากโฟกัสได้ดี ตอนนี้เลนส์ล็อคแล้ว |
พาสซีฟ_โฟกัส | AF_TRIGGER | NOT_FOCUSED_LOCKED | การเปลี่ยนแปลงทันทีหากโฟกัสไม่ดี ตอนนี้เลนส์ล็อคแล้ว |
โฟกัส_ล็อคแล้ว | AF_TRIGGER | โฟกัส_ล็อคแล้ว | ไม่มีผลกระทบ |
โฟกัส_ล็อคแล้ว | AF_ยกเลิก | ไม่ได้ใช้งาน | เริ่มการสแกน AF ใหม่ |
NOT_FOCUSED_LOCKED | AF_TRIGGER | NOT_FOCUSED_LOCKED | ไม่มีผลกระทบ |
NOT_FOCUSED_LOCKED | AF_ยกเลิก | ไม่ได้ใช้งาน | เริ่มการสแกน AF ใหม่ |
เครื่องสถานะ AE และ AWB
เครื่องสถานะ AE และ AWB ส่วนใหญ่จะเหมือนกัน AE มีสถานะ FLASH_REQUIRED และ PRECAPTURE เพิ่มเติม ดังนั้นแถวด้านล่างที่อ้างถึงทั้งสองสถานะนั้นจึงควรละเว้นสำหรับเครื่องสถานะ AWB
mode = AE_MODE_OFF / AWB ไม่ใช่โหมดอัตโนมัติ | |||
---|---|---|---|
สถานะ | สาเหตุของการเปลี่ยนแปลง | รัฐใหม่ | หมายเหตุ |
ไม่ได้ใช้งาน | ปิดใช้งาน AE/AWB แล้ว |
โหมด = AE_MODE_ON_* / AWB_MODE_AUTO | |||
---|---|---|---|
สถานะ | สาเหตุของการเปลี่ยนแปลง | รัฐใหม่ | หมายเหตุ |
ไม่ได้ใช้งาน | HAL เริ่มต้นการสแกน AE/AWB | กำลังค้นหา | |
ไม่ได้ใช้งาน | เปิด AE/AWB_LOCK | ล็อคแล้ว | ล็อคค่าแล้ว |
กำลังค้นหา | HAL เสร็จสิ้นการสแกน AE/AWB | มาบรรจบกัน | คุณค่าที่ดีไม่เปลี่ยนแปลง |
กำลังค้นหา | HAL เสร็จสิ้นการสแกน AE | แฟลช_จำเป็น | บรรจบกันแต่มืดเกินไปโดยไม่ใช้แฟลช |
กำลังค้นหา | เปิด AE/AWB_LOCK | ล็อคแล้ว | ล็อคค่าแล้ว |
มาบรรจบกัน | HAL เริ่มต้นการสแกน AE/AWB | กำลังค้นหา | ล็อคค่าแล้ว |
มาบรรจบกัน | เปิด AE/AWB_LOCK | ล็อคแล้ว | ล็อคค่าแล้ว |
แฟลช_จำเป็น | HAL เริ่มต้นการสแกน AE/AWB | กำลังค้นหา | ล็อคค่าแล้ว |
แฟลช_จำเป็น | เปิด AE/AWB_LOCK | ล็อคแล้ว | ล็อคค่าแล้ว |
ล็อคแล้ว | ปิด AE/AWB_LOCK | กำลังค้นหา | ค่าไม่ดีหลังจากปลดล็อค |
ล็อคแล้ว | ปิด AE/AWB_LOCK | มาบรรจบกัน | ค่าที่ดีหลังจากปลดล็อค |
ล็อคแล้ว | ปิด AE_LOCK | แฟลช_จำเป็น | การเปิดรับแสงดีแต่มืดเกินไป |
รัฐ AE ทั้งหมด | PRECAPTURE_START | พรีแคปเจอร์ | เริ่มลำดับการจับล่วงหน้า |
พรีแคปเจอร์ | ลำดับเสร็จสิ้น ปิด AE_LOCK | มาบรรจบกัน | พร้อมสำหรับการจับภาพคุณภาพสูง |
พรีแคปเจอร์ | ลำดับเสร็จสิ้น เปิด AE_LOCK | ล็อคแล้ว | พร้อมสำหรับการจับภาพคุณภาพสูง |
เปิดใช้งานการควบคุมด้วยตนเอง
การควบคุมหลายอย่างยังเกี่ยวข้องกับการกำหนดค่าบล็อก 3A ของอุปกรณ์เพื่อให้สามารถควบคุมแอปพลิเคชันได้โดยตรง
โมเดล HAL สำหรับการควบคุม 3A คือสำหรับแต่ละคำขอ HAL จะตรวจสอบสถานะของฟิลด์ควบคุม 3A หากเปิดใช้งานรูทีน 3A รูทีนนั้นจะแทนที่ตัวแปรควบคุมที่เกี่ยวข้องกับรูทีนนั้น และค่าแทนที่เหล่านี้จะพร้อมใช้งานในข้อมูลเมตาผลลัพธ์สำหรับการบันทึกนั้น ตัวอย่างเช่น หากเปิดใช้งานการรับแสงอัตโนมัติในคำขอ HAL ควรเขียนทับฟิลด์การรับแสง อัตราขยาย และระยะเวลาเฟรม (และอาจเป็นฟิลด์แฟลช ขึ้นอยู่กับโหมด AE) ของคำขอ รายการการควบคุมที่เกี่ยวข้องคือ:
ชื่อการควบคุม | หน่วย | หมายเหตุ |
---|---|---|
android.control.mode | แจงนับ: ปิด, อัตโนมัติ, USE_SCENE_MODE | การควบคุม 3A ระดับสูง เมื่อตั้งค่าเป็น OFF การควบคุม 3A ทั้งหมดโดย HAL จะถูกปิดใช้งาน แอปพลิเคชันจะต้องตั้งค่าฟิลด์สำหรับพารามิเตอร์การจับด้วยตัวเอง เมื่อตั้งค่าเป็นอัตโนมัติ การควบคุมอัลกอริธึมแต่ละตัวใน android.control.* จะมีผล เช่น android.control.afMode เมื่อตั้งค่าเป็น USE_SCENE_MODE การควบคุมแต่ละรายการใน android.control.* ส่วนใหญ่จะปิดใช้งาน และ HAL จะใช้การตั้งค่าโหมดฉากอย่างใดอย่างหนึ่ง (เช่น ACTION, SUNSET หรือ PARTY) ตามที่คุณต้องการ |
android.control.afMode | แจกแจง | OFF หมายถึงการควบคุมการโฟกัสเลนส์ด้วยตนเองผ่าน android.lens.focusDistance |
android.control.aeMode | แจกแจง | ปิด หมายถึงการควบคุมการรับแสง/เกน/ระยะเวลาเฟรมด้วยตนเองผ่าน android.sensor.exposureTime / .sensitivity / .frameDuration |
android.control.awbMode | แจกแจง | ปิด หมายถึงการควบคุมสมดุลสีขาวด้วยตนเอง |