Libargus 是一个用于从摄像头采集图像和相关元数据的 API。libargus 的基本操作是捕获:从传感器采集图像并将其处理成最终输出图像。
目前,libargus 在 Android 和所有 Jetson Linux 平台上均受支持。
Libargus 的设计旨在满足一些基本要求
- 支持广泛的用例(传统摄影、计算摄影、视频、计算机视觉和其他应用领域)。为此,libargus 是一个基于帧的 API;每次捕获都由显式请求触发,该请求精确地指定了如何执行捕获。
- 支持多个平台,包括 L4T 和 Android。
- 高效且简单地集成到应用程序和更大的框架中。为了支持这一点,libargus 使用 EGLStream 交付图像,EGLStream 由其他系统组件(如 OpenGL 和 Cuda)直接支持,并且在交付给消费者期间无需缓冲区复制。
- 随每个输出图像提供丰富的元数据。
- 支持多个传感器,包括对独立传感器的单独控制以及对同步多传感器配置的访问。(后者在当前版本中不受支持。添加支持后,它将仅在某些 NVIDIA 平台上可用。)
- 版本稳定性和可扩展性,这通过不变的虚拟接口以及供应商添加专用扩展接口的能力来提供。
Libargus 在许多不同领域提供功能
- 具有各种设置的捕获。
- 可选的自动控制(例如自动曝光和自动白平衡)。
- 以不同方式使用 EGLStream 输出的库;例如,jpeg 编码或直接应用程序访问图像。
- 通过 libargus 事件和 EGLStream 元数据传递元数据。
- 图像后处理,例如降噪和边缘锐化。
- 通过同步事件队列通知错误、图像采集开始和其他事件。
libargus 未提供的功能
- 自动对焦。(计划在以后的版本中添加。)
- YUV 图像的重新处理(例如 Android 的零快门延迟功能所需的那种)。
- Bayer(原始)图像的重新处理。(计划在以后的版本中添加。)
- Bayer(原始)图像的输出。(计划在以后的版本中添加。)
|
| 扩展 |
| 此模块提供了当前可用于 libargus 的扩展列表。
|
|
| 对象和接口 |
| 此模块提供了 libargus 对象及其支持的接口的列表。此列表中的对象的子项描述了对象提供的子 InterfaceProvider 或对象的专用类型(即事件类型)。
|
|