mirror of
https://github.com/RPi-Distro/firmware.git
synced 2026-01-19 04:43:30 +00:00
See: https://forum.libreelec.tv/thread/22097-libreelec-leia-9-2-3 firmware: ISP raw14 and mono input, 16bpc YUV output. Camera subsystem not messing with GPIO0 firmware: isp: fix assert from initial setting of ISP denoise parameters
164 lines
9.0 KiB
HTML
164 lines
9.0 KiB
HTML
<html>
|
|
<head>
|
|
<title>isp</title>
|
|
<body>
|
|
<table border="0" cellpadding="10"><tr valign="top"><td>
|
|
<table border="0" cellspacing="0" cellpadding="1"><tr>
|
|
<td bgcolor="#e0c0c0"><a href="index.html">Top</a><br>
|
|
<tr><td bgcolor="#c0e0e0">
|
|
<a href="audio_capture.html">audio_capture</a><br>
|
|
<a href="audio_decode.html">audio_decode</a><br>
|
|
<a href="audio_encode.html">audio_encode</a><br>
|
|
<a href="audio_lowpower.html">audio_lowpower</a><br>
|
|
<a href="audio_mixer.html">audio_mixer</a><br>
|
|
<a href="audio_processor.html">audio_processor</a><br>
|
|
<a href="audio_render.html">audio_render</a><br>
|
|
<a href="audio_splitter.html">audio_splitter</a><br>
|
|
<tr><td bgcolor="#e0c0c0">
|
|
<a href="image_decode.html">image_decode</a><br>
|
|
<a href="image_encode.html">image_encode</a><br>
|
|
<a href="image_fx.html">image_fx</a><br>
|
|
<a href="resize.html">resize</a><br>
|
|
<a href="source.html">source</a><br>
|
|
<a href="transition.html">transition</a><br>
|
|
<tr><td bgcolor="#c0e0e0">
|
|
<a href="clock.html">clock</a><br>
|
|
<a href="null_sink.html">null_sink</a><br>
|
|
<a href="text_scheduler.html">text_scheduler</a><br>
|
|
<a href="visualisation.html">visualisation</a><br>
|
|
<tr><td bgcolor="#e0c0c0">
|
|
<a href="camera.html">camera</a><br>
|
|
<a href="egl_render.html">egl_render</a><br>
|
|
<a href="hvs.html">hvs</a><br>
|
|
<a href="isp.html">isp</a><br>
|
|
<a href="rawcam.html">rawcam</a><br>
|
|
<a href="video_decode.html">video_decode</a><br>
|
|
<a href="video_encode.html">video_encode</a><br>
|
|
<a href="video_render.html">video_render</a><br>
|
|
<a href="video_scheduler.html">video_scheduler</a><br>
|
|
<a href="video_splitter.html">video_splitter</a><br>
|
|
<tr><td bgcolor="#c0e0e0">
|
|
<a href="prop.html">Custom Index</a><br>
|
|
<a href="metadata.html">Metadata</a><br>
|
|
</table><td>
|
|
|
|
<h1>OMX.broadcom.isp</h1>
|
|
<p>
|
|
<p>
|
|
This component wraps the ISP (Image Sensor Processor) hardware block to
|
|
offer hardware accelerated format conversion and resizing.
|
|
It has one input port taking Bayer, YUV or RGB images in numerous different formats.
|
|
Monochrome sensors using the normal CSI-2 pixel format packings are also supported,
|
|
however what is normally the Bayer part of the processing is still in Bayer mode,
|
|
therefore the same parameters need to be applied to all 4 channels to avoid strange
|
|
colour effects.
|
|
<p>
|
|
It has three output ports:
|
|
Port 361 supports various RGB and YUV formats.
|
|
Port 362 is off the low res resizer which can only downscale. Due to this
|
|
port 362 must be at a lower resolution to port 361. If set to a higher resolution
|
|
then the port will effectively be disabled and no ouput produced. It also doesn't have
|
|
the colour conversion block, and so only supports YUV formats.
|
|
Port 363 provides the image statistics available when a Bayer input format is used.
|
|
<p>
|
|
Port 361 is treated as the main output - the pipeline will stall until an output
|
|
buffer is available on that port. That includes if port 361 is disabled then no
|
|
processing will occur.
|
|
If no output buffer is available on port 362 when both an input buffer and
|
|
port 361 output buffer are available, the frame will be processed with the low
|
|
resolution output disabled.
|
|
<p>
|
|
Please note that this component has been developed for use under MMAL. It has
|
|
not been tested at all under IL, so there may be unexpected behaviour under IL.
|
|
It is also not considered to be production quality code yet - please use with caution.
|
|
<p>
|
|
<p>
|
|
<table border="1" cellspacing="0" cellpadding="2"><tr><td>Port<td>Index<td>Notes
|
|
<tr valign="top"><td rowspan="11">360<td><tt>OMX_IndexParamPortDefinition</tt>
|
|
<td> Set this to control the input size of the image. Typically this is
|
|
called by the component itself when this port is tunnelled with an
|
|
appropriate output port. The stripe height a multiple of 16, and
|
|
>= <tt>nFrameHeight</tt>.
|
|
<tr valign="top"><td><tt>OMX_IndexConfigCommonInputCrop</tt>
|
|
<td> Allows cropping at the input. Cropping can be changed at any time.
|
|
Cropping dimensions can not exceed the image size set via
|
|
the image will result in the crop width/height being initially clipped,
|
|
but if the clipped width/height is <= 0, then the whole crop region
|
|
will be ignored.
|
|
A region with x, y, width, and height all of 0 is interpreted as no
|
|
cropping (ie width and height set to image width/height).
|
|
Please note that this is applied BEFORE any mirror operations have
|
|
been performed via OMX_IndexConfigCommonMirror.
|
|
<tr valign="top"><td><tt>OMX_IndexConfigCommonMirror</tt>
|
|
<td> Query / set the mirroring requirements for images.
|
|
Please note that this is currently restricted to being set before
|
|
both input and high res ports are active.
|
|
Also note that this is applied AFTER any cropping has been performed
|
|
via OMX_IndexConfigCommonInputCrop.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmBayerOrder">OMX_IndexParamBrcmBayerOrder</a></tt>
|
|
<td> Set / query the Bayer order for the incoming data.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamCameraPoolToEncoderFunction">OMX_IndexParamCameraPoolToEncoderFunction</a></tt>
|
|
<td> Used to set up proprietary communication with the previous component.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmUseProprietaryCallback">OMX_IndexConfigBrcmUseProprietaryCallback</a></tt>
|
|
<td> Forces use of proprietary tunnelling between ports.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmSupportsUnalignedSliceheight">OMX_IndexParamBrcmSupportsUnalignedSliceheight</a></tt>
|
|
<td> Retrieves the capabilites of this component to allow any
|
|
nSliceHeight value >= nHeight.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamCcmShift">OMX_IndexParamCcmShift</a></tt>
|
|
<td> Set/retrieve a shift value to be applied to the input colour correction matrix.
|
|
This allows the use of data packed into the least significant bits of
|
|
a 16 bit word. Value is the number of positions to shift left. Max shift of 5.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamCustomCcm">OMX_IndexParamCustomCcm</a></tt>
|
|
<td> Set/retrieve a custom colour conversion matrix for the input data.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigCameraDigitalGain">OMX_IndexConfigCameraDigitalGain</a></tt>
|
|
<td> Manual pipe digital gain.
|
|
bAutoGain is not applicable to this component and will be ignored.
|
|
xGain will always be used to set the digital gain within the pipe.
|
|
This parameter only applies to Bayer input formats.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmIspBlockOverride">OMX_IndexParamBrcmIspBlockOverride</a></tt>
|
|
<td> Disables ISP blocks.
|
|
Query / set a bitmask that can disable ISP processing blocks.
|
|
Blocks can NOT be enabled if they haven't been configured in the tuning.
|
|
<tr valign="top"><td rowspan="1">361<td><tt>OMX_IndexParamPortDefinition</tt>
|
|
<td> Query this to show what the output size will be. Set to alter the
|
|
number of buffers to be used, or change the size of the output image
|
|
if the custom resize setting is not being used. YUV image dimensions
|
|
must be even. <tt>nSliceHeight</tt> must be a multiple of 16 >=
|
|
<tt>nFrameHeight</tt>, or 0 which indicates no preference.
|
|
<tt>nStride</tt> must be a multiple of 32, or a
|
|
multiple of 64 for RGBA32 format.
|
|
FIXME: Correct the list of supported formats
|
|
<tr valign="top"><td rowspan="1">362<td><tt>OMX_IndexParamPortDefinition</tt>
|
|
<td> Query this to show what the output size will be. This port
|
|
must be at a lower resolution than 361, and only supports YUV
|
|
formats, not the RGB formats that port 361 does.
|
|
<tr valign="top"><td rowspan="3">360 361 362<td><tt><a href="prop.html#OMX_IndexParamMinimumAlignment">OMX_IndexParamMinimumAlignment</a></tt>
|
|
<td> Query the minimum alignment that the component requries on the port.
|
|
<tr valign="top"><td><tt>OMX_IndexParamImagePortFormat</tt>
|
|
<td> Set / query the image port format used. These ports support RGB565,
|
|
RGBA32 or YUV420 raw bitmap formats.
|
|
FIXME: Correct the list of supported formats
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamColorSpace">OMX_IndexParamColorSpace</a></tt>
|
|
<td> Set/retrieve the image colour space that buffers on the port should be
|
|
processed with.
|
|
FIXME: Implement me.
|
|
<tr valign="top"><td rowspan="1">361 362<td><tt><a href="prop.html#OMX_IndexParamOutputShift">OMX_IndexParamOutputShift</a></tt>
|
|
<td> Set/retrieve an additional shift parameter applied at the output of the ISP.
|
|
This is to allow packing of values into fewer bits (eg 10 bit packed in
|
|
the LSBs of a 16 bit word). Value is the number of bits to shift left.
|
|
The range will vary based on output format.
|
|
<tr valign="top"><td rowspan="3"> <td><tt><a href="prop.html#OMX_IndexConfigCustomAwbGains">OMX_IndexConfigCustomAwbGains</a></tt>
|
|
<td> Custom AWB Gains.
|
|
Allows client to set AWB gains.
|
|
This parameter only applies to Bayer input formats.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmLensShadingOverride">OMX_IndexParamBrcmLensShadingOverride</a></tt>
|
|
<td> Set the lens shading table.
|
|
Allows the client to provide a lens shading grid.
|
|
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmBlackLevel">OMX_IndexParamBrcmBlackLevel</a></tt>
|
|
<td> Specify the level to be treated as black.
|
|
</table>
|
|
|
|
</table>
|
|
</body>
|
|
</html>
|