Upcoming hardware support: Mali-C55 ISP

../_images/mali-c55-logo.png

The libcamera team is working to bring up open-source support for Arm’s Mali-C55 Image Signal Processor. This ISP is a new offering from Arm building on the C52 ISP and offering up to 48 MP image resolution, multi-camera support and a range of processing blocks to deliver high-quality image output. The Mali-C55 should appear in production silicon soon and will be usable with an entirely open-source software stack.

The work so far

For the past year we have been working simultaneously on a kernel driver for the ISP and a new pipeline handler within libcamera to manage it. The initial kernel driver has been submitted to the linux-media mailing list. It supports both of the ISP’s output pipelines, drawing data from a single sensor input or the ISP’s internal test pattern generator, with cropping, scaling and a range of output image formats, as well as passthrough of raw data from the sensor.

The work still to come

There’s much more work to be done to support all of the features of the ISP. We decided to begin the upstreaming process at a relatively early stage to provide an opportunity for early feedback, but further work will be done with the kernel driver to take configuration buffers containing ISP parameters and produce buffers containing statistics. A new Image Processing Algorithms module will be added to libcamera which will process the statistics to provide auto exposure, auto white balance and auto focus functionality. We hope in the long term to also be able to support the ISP’s memory-input functionality, which would allow multi-camera streaming as well as HDR processing.