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_CAPTURE
vàANDROID_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ư 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
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
vàoANDROID_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_MODE
và ANDROID_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_CAPTURE
vàANDROID_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ư 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
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
vàoANDROID_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_MODE
và ANDROID_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