2024年10月24日 第8讲 AVAILABLE CAPABILITIES详解 极客笔记
本讲是Android Camera专题系列的第8讲,我们介绍Android Camera2 API专题的REQUEST_AVAILABLE_CAPABILITIES详解部分。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
Camera支持的功能,可以通过如下代码获取当前Camera设备支持的功能列表
int [] capabilities = characteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES);
截止Android S,包括如下Capability:
Camera HAL1具备的能力,几乎所有设备都支持这种能力(拥有DEPTH_OUTPUT的设备可以是例外)
Depth output camera可以不支持该Capability
具备旧有API:android.hardware.Camera 的所有能力
在Sensor图像获取阶段的相关模块,要求支持手动控制
在Sensor图像后处理(ISP)阶段的相关模块,要求支持手动控制
表示当前设备支持在CaptureResult中能精确地回报Camera Sensor实际生效的参数
拥有 MANUAL_SENSOR Capability的Camera,必须包含 READ_SENSOR_SETTINGS
可以将RAW图和相关Metadata打包成DNG文件保存,或者App通过算法直接出图RAW图
ImageFormat.RAW_SENSOR (RAW16) 必须支持
DNG是什么 https://lmcjl.com/camera-terms/camera-what-is-dng-image.html
该Feature主要用于应用层的ZSL(Zero Shutter Lag)功能
支持ImageFormat.PRIVATE
这种Capability对高分辨率拍照有如下要求
<=8MP, >=20fps, 且支持YUV Output
<=24MP, >=10fps
适用场景:连拍
表示当前设备支持输出深度图像
必须支持ImageFormat.DEPTH16,且支持同宽高比的Jpeg图像输出
如果支持ImageFormat.DEPTH_JPEG(JPEG压缩主图像和XMP格式嵌入深度图)
DEPTH_IS_EXCLUSIVE必须为False,表示主图像和深度图可以同时输出
如果不支持ImageFormat.DEPTH_JPEG
DEPTH_IS_EXCLUSIVE必须为True,表示主图像和深度图可以不能同时输出
深度图像解释:https://lmcjl.com/camera-terms/what-is-depth-image.html
表面当前设备支持高帧率录像( frame rate >=120fps )
这种模式下AE、AWB强制设置为ON,AF强制设置为CONTINUOUS_VIDEO
POST-PROCESSING的模块强制设置为FAST模式
Session最多支持配置2个Surface(Preview + Recording)
表示该设备支持跟踪运动物体
为了减少运动模糊,在这种Capability下AE会将曝光时间限制在<=20ms
表示这颗Camera对应多颗物理Camera
Hardware Level至少是LIMITED
当输入YUV_420_888时,U和V的值均为128
单色摄像头可以用作Logical MultiCamera设备的某个Physical Camera,以获取更出色的低光噪音特性。
表示该Camera设备可以产生只能TEE能访问的图像数据
Android 用户空间和Kernel都无法访问这块图像数据
可用于人脸解锁等场景
表示这颗Camera设备只能被System App使用,对其他App不可见
只有安装在系统分区上且具有与系统相同的证书或使用该证书进行签名的应用才能获得此权限
App需要申请 android.permission.SYSTEM_CAMERA 和android.permission.CAMERA权限
如果设备制造商希望实现需要访问相机的功能,但这些功能仅限于特权应用或系统应用,该功能会非常有用
表示该Camera设备支持离线处理功能
在离线模式处理的过程中,App可以打开相机重新创建Session与Offline Session并发工作
适用场景:快拍
表示该设备支持输出Sensor最大size的图像
Sensor工作在SENSOR_PIXEL_MODE_DEFAULT模式
该Capability需要ULTRA_HIGH_RESOLUTION_SENSOR同时支持才行
App完成SW Remosaic算法,将结果送给HAL再处理
Remosaic介绍
所有Camera设备必须包含BACKWARD_COMPATIBLE或DEPTH_OUTPUT能力
Feature | 如何判断是否支持 |
---|---|
FD | 读取CameraCharacteristics.STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES,是否包含SIMPLE或FULL模式 |
OIS | 读取android.lens.info.availableOpticalStabilization,是否包含ON |
EIS | 读取android.control.availableVideoStabilizationModes,是否包含ON |
AF | 读取android.control.afAvailableModes,是否包含AUTO / MACRO / CONTINUOUS_VIDEO / CONTINUOUS_PICTURE / EDOF |
本文链接:http://so.lmcjl.com/news/16084/