Android [Camera 源码] 元数据和控件(Metadata and Controls) Google官方文档(四)

本文详细解析了Android相机API的元数据支持、控件设置及原始传感器数据支持,旨在帮助开发者掌握高级相机功能,如3A模式、多摄像头支持及运动追踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Google源码网地址链接:https://source.android.com/devices/camera

该Google Camera的文档为系列文章,文章列表:

overview

Camera3

HAL Subsystem

Metadata and Controls

3A Modes and State

Output and Cropping

Errors and Streams

Request Creation

External USB Cameras

Multi-Camera Support

Motion Tracking

Session Parameters

Single Producer,Multiple Consumer

Version Support

元数据和控件

 

元数据支持


要支持通过 Android 框架保存原始图片文件,需要具有大量有关传感器特性的元数据,包括色彩空间和镜头遮蔽功能等信息。

其中大多数信息是相机子系统的静态属性,因此可以在配置任何输出管道或提交任何请求之前进行查询。新的相机 API 极大地扩展了 getCameraInfo() 方法提供的信息,以便将此类信息提供给应用。

此外,手动控制相机子系统需要各种设备提供的有关其当前状态的反馈,以及在捕获指定帧时使用的实际参数。必须在输出元数据中包含硬件实际使用的控件(曝光时间、帧时长和感光度)的实际值。这一点至关重要,这样应用就知道限制或舍入何时发生,并且可以补偿用于图片捕获的实际设置。

例如,如果应用在请求中将帧时长设置为 0,则 HAL 必须将帧时长限制到该请求的实际最小帧时长,并在输出结果元数据中报告这一钳位最小持续时间。

因此,如果应用需要实现一个自定义 3A 例程(例如,为了适当地测量 HDR 连拍),则需要知道用于捕获其收到的最新一组结果的设置,以便更新下一个请求的设置。因此,新的相机 API 会向每个捕获的帧添加大量动态元数据。这包括用于捕获的已请求参数和实际参数,以及时间戳和统计信息生成器输出等其他每帧元数据。

 

每个设置的控件


对于大多数设置而言,它们应该能够随着每一帧发生变化,而不会给输出帧流带来明显的卡顿或延迟。理想情况下,输出帧速率应该仅由捕获请求的帧时长字段控制,且不受处理块配置发生的任何变化影响。实际上,我们已经知道一些特定控件发生变化的速度非常缓慢;这些控件包括相机管道的输出分辨率和输出格式,以及镜头焦距等影响物理设备的控件。稍后会详细说明每个控件集的确切要求。

 

原始传感器数据支持


除了旧 API 支持的像素格式之外,新 API 还添加了对原始传感器数据 (Bayer RAW) 的支持要求,这既适合高级相机应用,又是为了支持原始图片文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值