The predecimation process consists of
downscaling an image by fetching only the necessary pixels out of the memory.
Vertical and horizontal predecimation are possible:
- Vertical predecimation: The
picture stored in memory can be predecimated vertically by skipping lines.
Burst mode is used to fetch the data when skipping lines. Only the lines
that will be used by the DISPC are fetched from memory; the other lines are
skipped. The DMA engine sends requests only for the useful lines using 1D
burst. The base address indicates the first valid pixel to fetch from
memory. The number of lines to skip is set in the DSS_VID_ROW_INC
and DSS_VID_ROW_INC_UV registers.
- Horizontal predecimation:
When fetching data from memory, it is possible to skip 1 out of 2 pixels, up
to 1 of 2047 pixels, by setting the DSS_VID_PIXEL_INC register to the number of pixels to skip (n),
multiplied by the size of a pixel (in bytes), +1. The condition to generate
a burst is that there is at least one useful pixel per 128-bit OCP request.
Therefore, when the pixels are 16/32-bit, the maximum number of pixels that
can be skipped is 8/4. If PixelWidthInBytes+BytesToSkip is greater than 16,
the programmed burst is changed into single request.
No decimation is
supported when the input format is 1, 2, 4, or 8-bit BITMAP.
For RGB and YUV420 data formats, each
pixel data container in memory holds 1 pixel. Thus, when configuring the DSS_VID_PIXEL_INC
register, the value of n equals the number of pixels to skip:
- For RGB format, one pixel
data container = 32 bits = 1 pixel
- For YUV format:
- One Y pixel data
container = 8 bits = 1 pixel
- One UV pixel data
container = 16 bits = 1 pixel
For YUV422 format, each
32-bit pixel data container holds the Luma components for 2 pixels, and the
Chrominance component of 1 pixel (see Figure 12-514). Therefore, for the valid values of the PIXELINC bit field in the case of the
following YUV422 format, caution must be taken because n equals the number of pixel
data containers to skip, and not the number of pixels:
- For n = 1, PIXELINC = 5
- For n = 2, PIXELINC = 9
- For n = 3, PIXELINC = 13
- For n = 4, PIXELINC = 17,
etc.