[libcamera-devel] [PATCH 0/1] HDR controls

David Plowman david.plowman at raspberrypi.com
Fri Jul 28 14:27:57 CEST 2023

Hi everyone

Here is an initial patch for controls to allow applications to do HDR
imaging. The aim here is to keep things reasonably simple and to avoid
things that might get complicated or platform dependent. We have:


A control to request HDR images. Besides the "off" setting we have:

* HdrModeMultiExposure - multiple exposures will be used to create HDR
  images, and

* HdrModeSingleExposure - multiple frames at a single exposure will be
  used to create HDR images.


This is metadata attached to the returned images to say which of the
exposure "channels" (that is, long, short or medium) this image is
from. (On the Pi we expect to want to drive the multiple exposures but
not combine the images, as there is no hardware for that.)

Mostly this is all for use with ISPs that are dealing with cameras
without special HDR features, but I think it's worth considering how
it would apply there too.

1. Some cameras might deliver long/medium/short frames
automatically. If they're travelling through the pipeline
independently then I think we label them correctly and expect the
implementation of the HdrModeMultiExposure to handle them. There are
clearly implementation dependent issues here, such as how those
exposure values are determined and applied, and so forth.

2. A camera might deliver an HDR but un-tonemapped image. This might
simply fall under the HdrModeSingleExposure category, but if not maybe
there's an argument for an HdrModeTonemapOnly variant. If there aren't
multiple exposures going throught the pipeline, then it doesn't really
matter what the HdrChannel says. I'd probably go with "short" because
it kind of does have that exposure, but minus all the noise. Or we
could invent a new category, don't really mind.

3. If the camera delivers a ready-tonemapped HDR image... to the ISP,
this will simply be ToneMapOff.

Hopefully that makes some sense. Interested to hear what folks think!



David Plowman (1):
  libcamera: controls: Add controls for HDR

 src/libcamera/control_ids.yaml | 47 ++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)


More information about the libcamera-devel mailing list