หน้านี้อธิบายโหมด 3A และสถานะการทำงานของอุปกรณ์ Android อินเทอร์เฟซ HAL ของกล้องซึ่งกำหนดสถานะการทำงานของเครื่องในระดับสูงช่วยให้การใช้งาน HAL และเฟรมเวิร์ก Android สื่อสารสถานะ 3A ปัจจุบันและเรียกเหตุการณ์ 3A การใช้งาน HAL จะรับผิดชอบอัลกอริทึม 3A ที่ควบคุมการตั้งค่าโหมด 3A และการเปลี่ยนสถานะ
เมื่อเปิดอุปกรณ์ สถานะ 3A แต่ละรายการต้องมีค่าเป็น STATE_INACTIVE
การกําหนดค่าสตรีมจะไม่รีเซ็ต 3A ตัวอย่างเช่น โฟกัสที่ล็อกไว้ต้องคงอยู่ตลอดการโทร configure()
การเปิดใช้งานการดำเนินการ 3A นั้นเกี่ยวข้องกับการตั้งค่ารายการทริกเกอร์ที่เกี่ยวข้องในการตั้งค่าสําหรับคําขอถัดไปเพื่อระบุการเริ่มต้นทริกเกอร์ เช่น เงื่อนไขเริ่มต้นการสแกนออโต้โฟกัสคือการตั้งค่ารายการ ANDROID_CONTROL_AF_TRIGGER เป็น ANDROID_CONTROL_AF_TRIGGER_START สําหรับคําขอ 1 รายการ และการยกเลิกการสแกนออโต้โฟกัสจะทริกเกอร์โดยการตั้งค่า ANDROID_CONTROL_AF_TRIGGER เป็น ANDROID_CONTRL_AF_TRIGGER_CANCEL ไม่เช่นนั้น รายการดังกล่าวจะไม่อยู่หรือตั้งค่าเป็น ANDROID_CONTROL_AF_TRIGGER_IDLE ระบบจะถือว่าคําขอแต่ละรายการที่มีรายการทริกเกอร์ตั้งค่าเป็นค่าที่ไม่ใช่ "ว่าง" เป็นเหตุการณ์เรียกให้แสดงอิสระ
ที่ระดับบนสุด 3A จะควบคุมโดยการตั้งค่า ANDROID_CONTROL_MODE โดยระบบจะเลือกระหว่างไม่มี 3A (ANDROID_CONTROL_MODE_OFF), โหมด AUTO ปกติ (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_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 | ไม่มีการโฟกัสหรือมีการรีเซ็ตอัลกอริทึม เลนส์ไม่ขยับ สถานะสำหรับ 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 | การเพิ่มแสงในสภาวะแสงน้อยจะปรับความสว่างของสตรีมตัวอย่างโดยอัตโนมัติในสภาวะแสงน้อย ซึ่งอาจส่งผลให้ภาพเบลอและสัญญาณรบกวนเพิ่มขึ้นในสภาพแสงน้อย ผู้ผลิตอุปกรณ์ต้องตรวจสอบว่าอัตราเฟรมไม่ต่ำกว่า 10 เฟรมต่อวินาที |
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_OFF | ปิดใช้การปรับสมดุลแสงสีขาวอัตโนมัติ ผู้ใช้ควบคุมเมตริกซ์สี |
AWB_MODE_AUTO | การเปิดใช้การปรับสมดุลแสงสีขาวอัตโนมัติ 3A จะควบคุมการเปลี่ยนรูปแบบสี โดยอาจใช้การเปลี่ยนรูปแบบที่ซับซ้อนกว่าเมทริกซ์ธรรมดา |
AWB_MODE_INCANDESCENT | การตั้งค่าไวท์บาลานซ์แบบคงที่เหมาะสำหรับแสงอินแคนเดนซ์ (ทังสเตน) ในอาคาร ซึ่งมีค่าประมาณ 2700K |
AWB_MODE_FLUORESCENT | การตั้งค่าไวท์บาลานซ์แบบคงที่เหมาะสำหรับแสงฟลูออเรสเซนต์ โดยประมาณ 5000K |
AWB_MODE_WARM_FLUORESCENT | การตั้งค่าไวท์บาลานซ์แบบคงที่เหมาะสำหรับแสงฟลูออเรสเซนต์โดยประมาณ 3000K |
AWB_MODE_DAYLIGHT | การตั้งค่าไวท์บาลานซ์แบบคงที่เหมาะสำหรับแสงแดดโดยประมาณ 5500K |
AWB_MODE_CLOUDY_DAYLIGHT | การตั้งค่าไวท์บาลานซ์แบบคงที่เหมาะสำหรับแสงแดดที่มีเมฆมาก โดยประมาณ 6500K |
AWB_MODE_TWILIGHT | การตั้งค่าไวท์บาลานซ์แบบคงที่เหมาะสำหรับช่วงใกล้พระอาทิตย์ตก/พระอาทิตย์ขึ้น โดยประมาณ 15000K |
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 ที่ใช้เพื่อกำหนดสมดุลสีที่ดี ตัวเลือกนี้ใช้ได้กับโหมดปรับสมดุลแสงสีขาวอัตโนมัติเท่านั้น |
หมายเหตุทั่วไปเกี่ยวกับการเปลี่ยนสถานะของ State Machine
การสลับระหว่างโหมด AF, AE หรือ AWB จะรีเซ็ตสถานะของอัลกอริทึมเป็น "ไม่ทำงาน" เสมอ ในทํานองเดียวกัน การสลับระหว่าง CONTROL_MODE หรือ CONTROL_SCENE_MODE หาก CONTROL_MODE == USE_SCENE_MODE จะรีเซ็ตสถานะอัลกอริทึมทั้งหมดเป็น "ไม่ทำงาน"
ตารางด้านล่างแสดงข้อมูลต่อโหมด
สถานะการทำงานของ AF
mode = AF_MODE_OFF หรือ AF_MODE_EDOF | |||
---|---|---|---|
รัฐ | สาเหตุของการเปลี่ยนรูปแบบ | สถานะใหม่ | หมายเหตุ |
ไม่ทำงาน | AF ปิดใช้อยู่ |
mode = AF_MODE_AUTO or AF_MODE_MACRO | |||
---|---|---|---|
รัฐ | สาเหตุของการเปลี่ยนรูปแบบ | สถานะใหม่ | หมายเหตุ |
ไม่ทำงาน | AF_TRIGGER | ACTIVE_SCAN | เริ่มการกวาด AF เลนส์กำลังเคลื่อนไหว |
ACTIVE_SCAN | การสแกน AF เสร็จแล้ว | FOCUSED_LOCKED | หาก AF สําเร็จ เลนส์ล็อกแล้ว |
ACTIVE_SCAN | การสแกน AF เสร็จแล้ว | NOT_FOCUSED_LOCKED | หาก AF สําเร็จ เลนส์ล็อกแล้ว |
ACTIVE_SCAN | AF_CANCEL | ไม่ทำงาน | ยกเลิก/รีเซ็ต AF เลนส์ล็อกแล้ว |
FOCUSED_LOCKED | AF_CANCEL | ไม่ทำงาน | ยกเลิก/รีเซ็ต AF |
FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | เริ่มการสแกนใหม่ เลนส์กำลังเคลื่อนไหว |
NOT_FOCUSED_LOCKED | AF_CANCEL | ไม่ทำงาน | ยกเลิก/รีเซ็ต AF |
NOT_FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | เริ่มการสแกนใหม่ เลนส์กำลังเคลื่อนไหว |
ทุกรัฐ | เปลี่ยนโหมด | ไม่ทำงาน |
mode = AF_MODE_CONTINUOUS_VIDEO | |||
---|---|---|---|
รัฐ | สาเหตุของการเปลี่ยนรูปแบบ | สถานะใหม่ | หมายเหตุ |
ไม่ทำงาน | HAL เริ่มการสแกนใหม่ | PASSIVE_SCAN | เริ่มการกวาด AF เลนส์กำลังเคลื่อนไหว |
ไม่ทำงาน | AF_TRIGGER | NOT_FOCUSED_LOCKED | การค้นหาสถานะ AF เลนส์ล็อกแล้ว |
PASSIVE_SCAN | HAL สแกนปัจจุบันเสร็จสมบูรณ์ | PASSIVE_FOCUSED | สิ้นสุดการสแกน AF เลนส์ล็อกแล้ว |
PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | การเปลี่ยนรูปแบบทันทีหากโฟกัสดี เลนส์ล็อกแล้ว |
PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | การเปลี่ยนรูปแบบทันทีหากโฟกัสไม่ดี เลนส์ล็อกแล้ว |
PASSIVE_SCAN | AF_CANCEL | ไม่ทำงาน | รีเซ็ตตำแหน่งเลนส์ เลนส์ล็อกแล้ว |
PASSIVE_FOCUSED | HAL เริ่มการสแกนใหม่ | PASSIVE_SCAN | เริ่มการสแกน AF เลนส์กำลังเคลื่อนไหว |
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 อีกครั้ง |
mode = AF_MODE_CONTINUOUS_PICTURE | |||
---|---|---|---|
รัฐ | สาเหตุของการเปลี่ยนรูปแบบ | สถานะใหม่ | หมายเหตุ |
ไม่ทำงาน | HAL เริ่มการสแกนใหม่ | PASSIVE_SCAN | เริ่มการสแกน AF เลนส์กำลังเคลื่อนไหว |
ไม่ทำงาน | AF_TRIGGER | NOT_FOCUSED_LOCKED | การค้นหาสถานะ AF เลนส์ล็อกแล้ว |
PASSIVE_SCAN | HAL สแกนปัจจุบันเสร็จสมบูรณ์ | PASSIVE_FOCUSED | สิ้นสุดการสแกน AF
เลนส์ล็อกแล้ว |
PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | การเปลี่ยนรูปแบบเมื่อโฟกัสดี เลนส์ล็อกแล้ว |
PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | การเปลี่ยนรูปแบบขั้นสุดท้ายหากโฟกัสไม่ได้ เลนส์ล็อกแล้ว |
PASSIVE_SCAN | AF_CANCEL | ไม่ทำงาน | รีเซ็ตตำแหน่งเลนส์ เลนส์ล็อกแล้ว |
PASSIVE_FOCUSED | HAL เริ่มการสแกนใหม่ | PASSIVE_SCAN | เริ่มการสแกน AF เลนส์กำลังเคลื่อนไหว |
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 มีสถานะเพิ่มเติมอีก 2 สถานะ ได้แก่ FLASH_REQUIRED และ PRECAPTURE ดังนั้น ระบบควรละเว้นแถวด้านล่างที่อ้างอิงถึงสถานะ 2 สถานะดังกล่าวสำหรับสถานะการทำงานของ AWB
mode = AE_MODE_OFF / AWB mode not AUTO | |||
---|---|---|---|
รัฐ | สาเหตุของการเปลี่ยนรูปแบบ | สถานะใหม่ | หมายเหตุ |
ไม่ทำงาน | AE/AWB ปิดอยู่ |
mode = AE_MODE_ON_* / AWB_MODE_AUTO | |||
---|---|---|---|
รัฐ | สาเหตุของการเปลี่ยนรูปแบบ | สถานะใหม่ | หมายเหตุ |
ไม่ทำงาน | HAL เริ่มการสแกน AE/AWB | กำลังค้นหา | |
ไม่ทำงาน | AE/AWB_LOCK เปิดอยู่ | ล็อกอยู่ | ค่าที่ล็อก |
กำลังค้นหา | HAL สแกน AE/AWB เสร็จแล้ว | CONVERGED | ค่าที่ดีและไม่เปลี่ยนแปลง |
กำลังค้นหา | HAL สแกน AE เสร็จแล้ว | FLASH_REQUIRED | แสงเข้าไม่ถึง แต่มืดเกินไปเมื่อไม่มีแฟลช |
กำลังค้นหา | AE/AWB_LOCK เปิดอยู่ | ล็อกอยู่ | ค่าที่ล็อก |
CONVERGED | HAL เริ่มการสแกน AE/AWB | กำลังค้นหา | ค่าที่ล็อก |
CONVERGED | AE/AWB_LOCK เปิดอยู่ | ล็อกอยู่ | ค่าที่ล็อก |
FLASH_REQUIRED | HAL เริ่มการสแกน AE/AWB | กำลังค้นหา | ค่าที่ล็อก |
FLASH_REQUIRED | AE/AWB_LOCK เปิดอยู่ | ล็อกอยู่ | ค่าที่ล็อก |
ล็อกอยู่ | AE/AWB_LOCK off | กำลังค้นหา | ค่าไม่ถูกต้องหลังจากปลดล็อก |
ล็อกอยู่ | AE/AWB_LOCK off | CONVERGED | ค่าที่ถูกต้องหลังจากปลดล็อก |
ล็อกอยู่ | AE_LOCK ปิด | FLASH_REQUIRED | การเปิดรับแสงดี แต่มืดเกินไป |
ทุกรัฐในสหรัฐอาหรับเอมิเรตส์ | PRECAPTURE_START | PRECAPTURE | เริ่มลำดับก่อนการจับภาพ |
PRECAPTURE | ลำดับเสร็จแล้ว AE_LOCK ปิดอยู่ | CONVERGED | พร้อมสำหรับการจับภาพคุณภาพสูง |
PRECAPTURE | ลำดับเสร็จแล้ว AE_LOCK เปิดอยู่ | ล็อกอยู่ | พร้อมสำหรับการจับภาพคุณภาพสูง |
เปิดใช้การควบคุมด้วยตนเอง
นอกจากนี้ยังมีการควบคุมหลายอย่างในการกำหนดค่าบล็อก 3A ของอุปกรณ์เพื่ออนุญาตให้ควบคุมแอปได้โดยตรง
รูปแบบ HAL สำหรับการควบคุม 3A คือ HAL จะตรวจสอบสถานะของช่องควบคุม 3A สำหรับคำขอแต่ละรายการ หากเปิดใช้กิจวัตร 3A ใดก็ตาม กิจวัตรนั้นจะลบล้างตัวแปรควบคุมที่เกี่ยวข้องกับกิจวัตรนั้น และค่าการลบล้างเหล่านี้จะแสดงอยู่ในข้อมูลเมตาของผลลัพธ์สำหรับการบันทึกนั้น ตัวอย่างเช่น หากเปิดใช้การเปิดรับแสงอัตโนมัติในคำขอ HAL ควรเขียนทับช่องการเปิดรับแสง อัตราขยาย และระยะเวลาเฟรม (และอาจเขียนทับช่องแฟลชด้วย ทั้งนี้ขึ้นอยู่กับโหมด AE) ของคำขอ รายการการควบคุมที่เกี่ยวข้องมีดังนี้
ชื่อการควบคุม | หน่วย | หมายเหตุ |
---|---|---|
android.control.mode | enum: OFF, AUTO, USE_SCENE_MODE | การควบคุมระดับ 3A ระดับสูง เมื่อตั้งค่าเป็น "ปิด" ระบบจะปิดใช้การควบคุม 3A ทั้งหมดโดย HAL แอปต้องตั้งค่าช่องสําหรับพารามิเตอร์การบันทึกด้วยตนเอง เมื่อตั้งค่าเป็น AUTO การควบคุมอัลกอริทึมแต่ละรายการใน android.control.* จะมีผล เช่น android.control.afMode เมื่อตั้งค่าเป็น USE_SCENE_MODE การควบคุมแต่ละรายการใน android.control.* จะถูกปิดใช้ส่วนใหญ่ และ HAL จะใช้การตั้งค่าโหมดฉากอย่างใดอย่างหนึ่ง (เช่น การเคลื่อนไหว พระอาทิตย์ตก หรือปาร์ตี้) ตามที่ตนต้องการ |
android.control.afMode | enum | OFF หมายถึงการควบคุมการโฟกัสเลนส์ด้วยตนเองผ่าน android.lens.focusDistance |
android.control.aeMode | enum | OFF หมายถึงการควบคุมการเปิดรับแสง/การรับแสง/ระยะเวลาเฟรมด้วยตนเองผ่านตัวแปร android.sensor.exposureTime / .sensitivity / .frameDuration |
android.control.awbMode | enum | "ปิด" หมายถึงการควบคุมไวท์บาลานซ์ด้วยตนเอง |