Hiệu ứng bokeh của camera là hiệu ứng có độ sâu trường ảnh nông, được tạo bằng cách làm mờ các phần của cảnh để chúng không nằm trong tiêu điểm. Trên camera của thiết bị di động, hiệu ứng bokeh được tạo ra bằng cách sử dụng thông tin về độ sâu thu được từ chế độ xem nổi của 2 camera hoặc từ 2 điốt quang (PD) của một camera.
Kể từ Android 11, nền tảng Android hỗ trợ các chế độ triển khai hiệu ứng xoá phông và cung cấp các API để cung cấp tính năng này cho các ứng dụng bên thứ ba.
Triển khai
Để sử dụng tính năng hiệu ứng xoá phông của camera trên thiết bị, 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 là một mảng bộ ba số nguyên, trong đó mỗi bộ ba có định dạng
{mode, maxWidth, maxHeight}
. Ngoài{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
, HAL máy ảnh cũng phải liệt kê một hoặc cả hai chế độANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
vàANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
cùng với kích thước truyền phát trực tiếp tối đa tương ứng.Quảng cáo
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
:Thẻ này có dạng một mảng
{minZoomRatio, maxZoomRatio}
, chứa tất cả các dải tỷ lệ thu phóng cho một chế độ cảnh mở rộng đã bật, theo cùng thứ tự như trongANDROID_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 vào
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
trongANDROID_CONTROL_AVAILABLE_MODES
.
Để một ứng dụng kích hoạt tính năng xoá phông, ứng dụng đó phải đặt ANDROID_CONTROL_MODE
thành ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
và ANDROID_CONTROL_EXTENDED_SCENE_MODE
thành một trong các chế độ cảnh mở rộng được hỗ trợ.
Xin lưu ý rằng việc triển khai hiệu ứng xoá phông có thể dẫn đến mức tiêu thụ bộ nhớ tăng thêm do quá trình tính toán âm thanh nổi.
Nếu một chế độ cảnh mở rộng được hỗ trợ không thể áp dụng cho mỗi khung hình và dẫn đến sự chậm trễ không mong muốn khi bật/tắt, hãy thêm ANDROID_CONTROL_EXTENDED_SCENE_MODE
vào ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
. Đồng thời, hãy triển khai phương thức ICameraDeviceSession::isReconfigurationRequired()
để tránh việc định cấu hình lại cho các chế độ cảnh mở rộng không yêu cầu định cấu hình lại.
Xác nhận kết quả
Để xác thực tính năng hiệu ứng xoá phông trên thiết bị, hãy chạy các kiểm thử CTS, VTS và CTS Verifier sau:
CtsCameraTestCases
VtsHalCameraProviderV2_4TargetTest
CameraBokehTest
trong Trình xác minh CTS