Commit e46279f0 authored by Philipp Zabel's avatar Philipp Zabel

gpu: ipu-v3: image-convert: add some ASCII art to the exposition

Visualize the scaling and rotation pipeline with some ASCII art
diagrams. Remove the FIXME comment about missing seam prevention.
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Acked-by: default avatarSteve Longerbeam <slongerbeam@gmail.com>
parent d966e23d
...@@ -37,17 +37,36 @@ ...@@ -37,17 +37,36 @@
* when double_buffering boolean is set). * when double_buffering boolean is set).
* *
* Note that the input frame must be split up into the same number * Note that the input frame must be split up into the same number
* of tiles as the output frame. * of tiles as the output frame:
* *
* FIXME: at this point there is no attempt to deal with visible seams * +---------+-----+
* at the tile boundaries when upscaling. The seams are caused by a reset * +-----+---+ | A | B |
* of the bilinear upscale interpolation when starting a new tile. The * | A | B | | | |
* seams are barely visible for small upscale factors, but become * +-----+---+ --> +---------+-----+
* increasingly visible as the upscale factor gets larger, since more * | C | D | | C | D |
* interpolated pixels get thrown out at the tile boundaries. A possilble * +-----+---+ | | |
* fix might be to overlap tiles of different sizes, but this must be done * +---------+-----+
* while also maintaining the IDMAC dma buffer address alignment and 8x8 IRT *
* alignment restrictions of each tile. * Clockwise 90° rotations are handled by first rescaling into a
* reusable temporary tile buffer and then rotating with the 8x8
* block rotator, writing to the correct destination:
*
* +-----+-----+
* | | |
* +-----+---+ +---------+ | C | A |
* | A | B | | A,B, | | | | |
* +-----+---+ --> | C,D | | --> | | |
* | C | D | +---------+ +-----+-----+
* +-----+---+ | D | B |
* | | |
* +-----+-----+
*
* If the 8x8 block rotator is used, horizontal or vertical flipping
* is done during the rotation step, otherwise flipping is done
* during the scaling step.
* With rotation or flipping, tile order changes between input and
* output image. Tiles are numbered row major from top left to bottom
* right for both input and output image.
*/ */
#define MAX_STRIPES_W 4 #define MAX_STRIPES_W 4
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment