Skip to content

Commit

Permalink
media: doc-rst: add more info for resolution change blocks in ipu3
Browse files Browse the repository at this point in the history
This patch add more details for the resolution change blocks
It can help the developer to understand the main resolution
change blocks in ImgU.

[sakari.ailus@linux.intel.com: Add new files to MAINTAINERS]

Signed-off-by: Bingbu Cao <bingbu.cao@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
  • Loading branch information
Bingbu Cao authored and Mauro Carvalho Chehab committed Nov 5, 2019
1 parent a4260ea commit 4147dca
Show file tree
Hide file tree
Showing 4 changed files with 377 additions and 9 deletions.
53 changes: 45 additions & 8 deletions Documentation/media/v4l-drivers/ipu3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -265,19 +265,56 @@ below.

yavta -w "0x009819A1 1" /dev/v4l-subdev7

RAW Bayer frames go through the following ImgU pipeline HW blocks to have the
Certain hardware blocks in ImgU pipeline can change the frame resolution by
cropping or scaling, these hardware blocks include Input Feeder(IF), Bayer Down
Scaler (BDS) and Geometric Distortion Correction (GDC).
There is also a block which can change the frame resolution - YUV Scaler, it is
only applicable to the secondary output.

RAW Bayer frames go through these ImgU pipeline hardware blocks and the final
processed image output to the DDR memory.

RAW Bayer frame -> Input Feeder -> Bayer Down Scaling (BDS) -> Geometric
Distortion Correction (GDC) -> DDR
.. kernel-figure:: ipu3_rcb.svg
:alt: ipu3 resolution blocks image

The ImgU V4L2 subdev has to be configured with the supported resolutions in all
the above HW blocks, for a given input resolution.
IPU3 resolution change hardware blocks

**Input Feeder**

Input Feeder gets the Bayer frame data from the sensor, it can enable cropping
of lines and columns from the frame and then store pixels into device's internal
pixel buffer which are ready to readout by following blocks.

**Bayer Down Scaler**

Bayer Down Scaler is capable of performing image scaling in Bayer domain, the
downscale factor can be configured from 1X to 1/4X in each axis with
configuration steps of 0.03125 (1/32).

**Geometric Distortion Correction**

Geometric Distortion Correction is used to performe correction of distortions
and image filtering. It needs some extra filter and envelop padding pixels to
work, so the input resolution of GDC should be larger than the output
resolution.

**YUV Scaler**

YUV Scaler which similar with BDS, but it is mainly do image down scaling in
YUV domain, it can support up to 1/12X down scaling, but it can not be applied
to the main output.

The ImgU V4L2 subdev has to be configured with the supported resolutions in all
the above hardware blocks, for a given input resolution.
For a given supported resolution for an input frame, the Input Feeder, Bayer
Down Scaling and GDC blocks should be configured with the supported resolutions.
This information can be obtained by looking at the following IPU3 ImgU
configuration table.
Down Scaler and GDC blocks should be configured with the supported resolutions
as each hardware block has its own alignment requirement.

You must configure the output resolution of the hardware blocks smartly to meet
the hardware requirement along with keeping the maximum field of view.
The intermediate resolutions can be generated by specific tool and this
information can be obtained by looking at the following IPU3 ImgU configuration
table.

https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/master

Expand Down
Loading

0 comments on commit 4147dca

Please sign in to comment.