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.
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.
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.
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.
Port | Index | Notes
|
360 | OMX_IndexParamPortDefinition
| 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
>= nFrameHeight.
|
OMX_IndexConfigCommonInputCrop
| 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.
|
OMX_IndexConfigCommonMirror
| 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.
|
OMX_IndexParamBrcmBayerOrder
| Set / query the Bayer order for the incoming data.
|
OMX_IndexParamCameraPoolToEncoderFunction
| Used to set up proprietary communication with the previous component.
|
OMX_IndexConfigBrcmUseProprietaryCallback
| Forces use of proprietary tunnelling between ports.
|
OMX_IndexParamBrcmSupportsUnalignedSliceheight
| Retrieves the capabilites of this component to allow any
nSliceHeight value >= nHeight.
|
OMX_IndexParamCcmShift
| 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.
|
OMX_IndexParamCustomCcm
| Set/retrieve a custom colour conversion matrix for the input data.
|
OMX_IndexConfigCameraDigitalGain
| 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.
|
OMX_IndexParamBrcmIspBlockOverride
| 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.
|
361 | OMX_IndexParamPortDefinition
| 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. nSliceHeight must be a multiple of 16 >=
nFrameHeight, or 0 which indicates no preference.
nStride must be a multiple of 32, or a
multiple of 64 for RGBA32 format.
FIXME: Correct the list of supported formats
|
362 | OMX_IndexParamPortDefinition
| 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.
|
360 361 362 | OMX_IndexParamMinimumAlignment
| Query the minimum alignment that the component requries on the port.
|
OMX_IndexParamImagePortFormat
| Set / query the image port format used. These ports support RGB565,
RGBA32 or YUV420 raw bitmap formats.
FIXME: Correct the list of supported formats
|
OMX_IndexParamColorSpace
| Set/retrieve the image colour space that buffers on the port should be
processed with.
FIXME: Implement me.
|
361 362 | OMX_IndexParamOutputShift
| 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.
|
| OMX_IndexConfigCustomAwbGains
| Custom AWB Gains.
Allows client to set AWB gains.
This parameter only applies to Bayer input formats.
|
OMX_IndexParamBrcmLensShadingOverride
| Set the lens shading table.
Allows the client to provide a lens shading grid.
|
OMX_IndexParamBrcmBlackLevel
| Specify the level to be treated as black.
|