Bokeh máy ảnh

Hiệu ứng nhòe máy ảnh là hiệu ứng độ sâu trường ảnh nông được tạo ra bằng cách làm mờ các phần của cảnh để chúng không được lấy nét. Trên máy ảnh trên thiết bị di động, hiệu ứng xóa phông đạt được bằng cách sử dụng thông tin độ sâu thu được từ tầm nhìn âm thanh nổi từ hai máy ảnh hoặc từ điốt quang kép (PD) của một máy ảnh.

Bắt đầu từ Android 11, nền tảng Android hỗ trợ triển khai hiệu ứng Bo mạch và cung cấp API để cung cấp tính năng này cho các ứng dụng của bên thứ ba.

Thực hiện

Để cung cấp tính năng hiệu ứng nhòe của máy ảnh trên thiết bị của bạn, hãy làm như sau:

  • Quảng cáo ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    Thẻ này có định dạng mảng bộ dữ liệu ba số nguyên, với mỗi bộ dữ liệu có định dạng {mode, maxWidth, maxHeight} . Ngoài {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} , HAL của máy ảnh cũng phải liệt kê một hoặc cả hai chế độ ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTUREANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS với kích thước phát trực tuyến tối đa tương ứng của chúng.

  • Quảng cáo ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES :

    Thẻ này có định dạng mảng {minZoomRatio, maxZoomRatio} , chứa tất cả phạm vi tỷ lệ thu phóng cho chế độ cảnh mở rộng được bật, theo cùng thứ tự như trong ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES . Phạm vi thu phóng [1.0, 1.0] có nghĩa là tính năng thu phóng không được hỗ trợ.

  • Điền ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE vào ANDROID_CONTROL_AVAILABLE_MODES .

Để ứng dụng kích hoạt tính năng hiệu ứng mờ, ứng dụng phải đặt ANDROID_CONTROL_MODE thành ANDROID_CONTROL_USE_EXTENDED_SCENE_MODEANDROID_CONTROL_EXTENDED_SCENE_MODE thành một trong các chế độ cảnh mở rộng được hỗ trợ. Lưu ý rằng việc triển khai hiệu ứng Bo mạch có thể dẫn đến tiêu thụ thêm bộ nhớ do tính toán âm thanh nổi.

Nếu không thể áp dụng chế độ cảnh mở rộng được hỗ trợ cho mỗi khung hình và dẫn đến độ trễ không mong muốn khi bật/tắt, hãy đưa ANDROID_CONTROL_EXTENDED_SCENE_MODE vào ANDROID_REQUEST_AVAILABLE_SESSION_KEYS . Đồng thời, triển khai phương pháp ICameraDeviceSession::isReconfigurationRequired() để tránh cấu hình lại cho các chế độ cảnh mở rộng không yêu cầu cấu hình lại.

Thẩm định

Để xác thực tính năng hiệu ứng mờ ảo trên thiết bị của bạn, hãy chạy các bài kiểm tra Trình xác minh CTS, VTS và CTS sau:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest trong Trình xác minh CTS
,

Hiệu ứng nhòe máy ảnh là hiệu ứng độ sâu trường ảnh nông được tạo ra bằng cách làm mờ các phần của cảnh để chúng không được lấy nét. Trên máy ảnh trên thiết bị di động, hiệu ứng xóa phông đạt được bằng cách sử dụng thông tin độ sâu thu được từ tầm nhìn âm thanh nổi từ hai máy ảnh hoặc từ điốt quang kép (PD) của một máy ảnh.

Bắt đầu từ Android 11, nền tảng Android hỗ trợ triển khai hiệu ứng Bo mạch và cung cấp API để cung cấp tính năng này cho các ứng dụng của bên thứ ba.

Thực hiện

Để cung cấp tính năng hiệu ứng nhòe của máy ảnh trên thiết bị của bạn, hãy làm như sau:

  • Quảng cáo ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES :

    Thẻ này có định dạng mảng bộ dữ liệu ba số nguyên, với mỗi bộ dữ liệu có định dạng {mode, maxWidth, maxHeight} . Ngoài {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0} , HAL của máy ảnh cũng phải liệt kê một hoặc cả hai chế độ ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTUREANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS với kích thước phát trực tuyến tối đa tương ứng của chúng.

  • Quảng cáo ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES :

    Thẻ này có định dạng mảng {minZoomRatio, maxZoomRatio} , chứa tất cả phạm vi tỷ lệ thu phóng cho chế độ cảnh mở rộng được bật, theo cùng thứ tự như trong ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES . Phạm vi thu phóng [1.0, 1.0] có nghĩa là tính năng thu phóng không được hỗ trợ.

  • Điền ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE vào ANDROID_CONTROL_AVAILABLE_MODES .

Để ứng dụng kích hoạt tính năng hiệu ứng mờ, ứng dụng phải đặt ANDROID_CONTROL_MODE thành ANDROID_CONTROL_USE_EXTENDED_SCENE_MODEANDROID_CONTROL_EXTENDED_SCENE_MODE thành một trong các chế độ cảnh mở rộng được hỗ trợ. Lưu ý rằng việc triển khai hiệu ứng Bo mạch có thể dẫn đến tiêu thụ thêm bộ nhớ do tính toán âm thanh nổi.

Nếu không thể áp dụng chế độ cảnh mở rộng được hỗ trợ cho mỗi khung hình và dẫn đến độ trễ không mong muốn khi bật/tắt, hãy đưa ANDROID_CONTROL_EXTENDED_SCENE_MODE vào ANDROID_REQUEST_AVAILABLE_SESSION_KEYS . Đồng thời, triển khai phương pháp ICameraDeviceSession::isReconfigurationRequired() để tránh cấu hình lại cho các chế độ cảnh mở rộng không yêu cầu cấu hình lại.

Thẩm định

Để xác thực tính năng hiệu ứng mờ ảo trên thiết bị của bạn, hãy chạy các bài kiểm tra Trình xác minh CTS, VTS và CTS sau:

  • CtsCameraTestCases
  • VtsHalCameraProviderV2_4TargetTest
  • CameraBokehTest trong Trình xác minh CTS