Embedded specialist Bootlin has announced the launch of initial support for the Allwinner V3 Image Signal Processor (ISP), originally designed for use in action cameras — bringing blob-free advanced camera support to embedded platforms.
"Allwinner SoCs that support MIPI CSI-2 also include an Image Signal Processor hardware unit," explains Bootlin's Paul Kocialkowski of the work, "a dedicated accelerator for enhancing and transforming raw data received from sensors. Since support for this ISP was implemented using a non-free blob in Allwinner SDKs, this area remained unsupported in mainline Linux... until now!"
The code, written by Bootlin in partnership with Allwinner, implements an open source functional Video4Linux 2 (V4L2) driver for the Allwinner V3's ISP — making it available to systems without the need to load a closed source binary blob.
The driver is functional, however, but not feature-complete. "Our currently proposed driver for the Allwinner ISP only supports a limited set of features: debayering with coefficients and 2D noise filtering," Kocialkowski explains. "These features were sufficient for our use case, and allowed to offload the computationally intensive debayering process to a dedicated hardware accelerator."
"The Allwinner ISP supports a lot more features beyond just debayering and noise filtering. For example, it supports statistics to implement 3A algorithms (auto-focus, auto-exposition and auto-white-balance) which are necessary to avoid manual configuration of scene-specific parameters. These could typically be implemented in
libcamera, the community free software project that supports complex image capture pipelines and ISPs."
Full details of the work along with links to the upstream code submission can be found on the Bootlin blog.