Libargus is an API for acquiring images and associated metadata from cameras. The fundamental libargus operation is a capture: acquiring an image from a sensor and processing it into a final output image.
Currently, libargus is supported on Android and all Jetson Linux platforms.
Libargus is designed to address a number of fundamental requirements:
- Support for a wide variety of use cases (traditional photography, computational photography, video, computer vision, and other application areas.) To this end, libargus is a frame-based API; every capture is triggered by an explicit request that specifies exactly how the capture is to be performed.
- Support for multiple platforms, including L4T and Android.
- Efficient and simple integration into applications and larger frameworks. In support of this, libargus delivers images with EGLStreams, which are directly supported by other system components such as OpenGL and Cuda, and which require no buffer copies during delivery to the consumer.
- Expansive metadata along with each output image.
- Support for multiple sensors, including both separate control over independent sensors and access to synchronized multi-sensor configurations. (The latter are unsupported in the current release. When support is added, it will be available on only some NVIDIA platforms.)
- Version stability and extensibility, which are provided by unchanging virtual interfaces and the ability for vendors to add specialized extension interfaces.
Libargus provides functionality in a number of different areas:
- Captures with a wide variety of settings.
- Optional autocontrol (such as auto-exposure and auto-white-balance.)
- Libraries that consume the EGLStream outputs in different ways; for example, jpeg encoding or direct application access to the images.
- Metadata delivery via both libargus events and EGLStream metadata.
- Image post-processing such as noise reduction and edge sharpening.
- Notification of errors, image acquisition start, and other events via synchronous event queues.
Functionality not provided by libargus:
- Auto-focus. (Planned to be added in a later release.)
- Reprocessing of YUV images (such as that required by Android’s Zero Shutter Lag feature.)
- Reprocessing of Bayer (raw) images. (Planned to be added in a later release.)
|
| Extensions |
| This module provides a list of extensions currently available for libargus.
|
|
| Objects and Interfaces |
| This module provides a list of libargus objects and the interfaces that they support. Children of objects in this list describe either child InterfaceProviders provided by the object or specialized types of the object (ie. Event types).
|
|