กล้องโบเก้

โบเก้จากกล้องเป็นเอฟเฟ็กต์ระยะชัดตื้นที่สร้างขึ้นโดยการเบลอบางส่วนของฉากเพื่อไม่ให้อยู่ในโฟกัส ในกล้องบนอุปกรณ์เคลื่อนที่ การสร้างโบเก้ทำได้โดยใช้ข้อมูลเชิงลึกที่ได้รับจากการมองเห็นแบบสเตอริโอจากกล้องสองตัว หรือจากโฟโตไดโอดคู่ (PD) ของกล้องตัวเดียว

นับตั้งแต่ Android 11 เป็นต้นไป แพลตฟอร์ม Android รองรับการใช้งานโบเก้และจัดเตรียม API เพื่อให้ฟีเจอร์นี้พร้อมใช้งานสำหรับแอปของบุคคลที่สาม

การนำไปปฏิบัติ

หากต้องการทำให้คุณสมบัติโบเก้ของกล้องใช้งานได้บนอุปกรณ์ของคุณ ให้ทำดังต่อไปนี้:

  • โฆษณา ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    แท็กนี้อยู่ในรูปแบบของอาร์เรย์ทูเพิลจำนวนเต็มสาม โดยแต่ละทูเพิลอยู่ในรูปแบบ {mode, maxWidth, maxHeight} นอกจาก {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} แล้ว กล้อง HAL ยังต้องแสดงรายการโหมด ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE และ ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS หนึ่งหรือทั้งสองโหมดด้วยขนาดการสตรีมสูงสุดที่สอดคล้องกัน

  • โฆษณา ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES :

    แท็กนี้อยู่ในรูปแบบของอาร์เรย์ {minZoomRatio, maxZoomRatio} ซึ่งมีช่วงอัตราการซูมทั้งหมดสำหรับโหมดฉากขยายที่เปิดใช้งาน ในลำดับเดียวกับใน ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES ช่วงการซูม [1.0, 1.0] หมายความว่าไม่รองรับการซูม

  • เติม ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE ใน ANDROID_CONTROL_AVAILABLE_MODES

เพื่อให้แอปเรียกใช้คุณลักษณะโบเก้ แอปจะต้องตั้งค่า ANDROID_CONTROL_MODE เป็น ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE และ ANDROID_CONTROL_EXTENDED_SCENE_MODE เป็นหนึ่งในโหมดฉากขยายที่รองรับ โปรดทราบว่าการใช้โบเก้อาจทำให้ใช้หน่วยความจำเพิ่มขึ้นเนื่องจากการคำนวณแบบสเตอริโอ

หากไม่สามารถใช้โหมดฉากขยายที่รองรับต่อเฟรม และส่งผลให้เกิดความล่าช้าที่ไม่คาดคิดเมื่อเปิด/ปิดใช้งาน ให้รวม ANDROID_CONTROL_EXTENDED_SCENE_MODE ใน ANDROID_REQUEST_AVAILABLE_SESSION_KEYS ในเวลาเดียวกัน ให้ใช้เมธอด ICameraDeviceSession::isReconfigurationRequired() เพื่อหลีกเลี่ยงการกำหนดค่าใหม่สำหรับโหมดฉากแบบขยายที่ไม่จำเป็นต้องกำหนดค่าใหม่

การตรวจสอบ

หากต้องการตรวจสอบคุณสมบัติโบเก้บนอุปกรณ์ของคุณ ให้รันการทดสอบ CTS, VTS และ CTS Verifier ต่อไปนี้:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest ใน CTS Verifier
,

โบเก้จากกล้องเป็นเอฟเฟ็กต์ระยะชัดตื้นที่สร้างขึ้นโดยการเบลอบางส่วนของฉากเพื่อไม่ให้อยู่ในโฟกัส ในกล้องบนอุปกรณ์เคลื่อนที่ การสร้างโบเก้ทำได้โดยใช้ข้อมูลเชิงลึกที่ได้รับจากการมองเห็นแบบสเตอริโอจากกล้องสองตัว หรือจากโฟโตไดโอดคู่ (PD) ของกล้องตัวเดียว

นับตั้งแต่ Android 11 เป็นต้นไป แพลตฟอร์ม Android รองรับการใช้งานโบเก้และจัดเตรียม API เพื่อให้ฟีเจอร์นี้พร้อมใช้งานสำหรับแอปของบุคคลที่สาม

การนำไปปฏิบัติ

หากต้องการทำให้คุณสมบัติโบเก้ของกล้องใช้งานได้บนอุปกรณ์ของคุณ ให้ทำดังต่อไปนี้:

  • โฆษณา ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    แท็กนี้อยู่ในรูปแบบของอาร์เรย์ทูเพิลจำนวนเต็มสาม โดยแต่ละทูเพิลอยู่ในรูปแบบ {mode, maxWidth, maxHeight} นอกจาก {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} แล้ว กล้อง HAL ยังต้องแสดงรายการโหมด ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE และ ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS หนึ่งหรือทั้งสองโหมดด้วยขนาดการสตรีมสูงสุดที่สอดคล้องกัน

  • โฆษณา ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES :

    แท็กนี้อยู่ในรูปแบบของอาร์เรย์ {minZoomRatio, maxZoomRatio} ซึ่งมีช่วงอัตราการซูมทั้งหมดสำหรับโหมดฉากขยายที่เปิดใช้งาน ในลำดับเดียวกับใน ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES ช่วงการซูม [1.0, 1.0] หมายความว่าไม่รองรับการซูม

  • เติม ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE ใน ANDROID_CONTROL_AVAILABLE_MODES

เพื่อให้แอปเรียกใช้คุณลักษณะโบเก้ แอปจะต้องตั้งค่า ANDROID_CONTROL_MODE เป็น ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE และ ANDROID_CONTROL_EXTENDED_SCENE_MODE เป็นหนึ่งในโหมดฉากขยายที่รองรับ โปรดทราบว่าการใช้โบเก้อาจทำให้ใช้หน่วยความจำเพิ่มขึ้นเนื่องจากการคำนวณแบบสเตอริโอ

หากไม่สามารถใช้โหมดฉากขยายที่รองรับต่อเฟรม และส่งผลให้เกิดความล่าช้าที่ไม่คาดคิดเมื่อเปิด/ปิดใช้งาน ให้รวม ANDROID_CONTROL_EXTENDED_SCENE_MODE ใน ANDROID_REQUEST_AVAILABLE_SESSION_KEYS ในเวลาเดียวกัน ให้ใช้เมธอด ICameraDeviceSession::isReconfigurationRequired() เพื่อหลีกเลี่ยงการกำหนดค่าใหม่สำหรับโหมดฉากแบบขยายที่ไม่จำเป็นต้องกำหนดค่าใหม่

การตรวจสอบ

หากต้องการตรวจสอบคุณสมบัติโบเก้บนอุปกรณ์ของคุณ ให้รันการทดสอบ CTS, VTS และ CTS Verifier ต่อไปนี้:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest ใน CTS Verifier