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 DSS0_VID_ROW_INC and
DSS0_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 DSS0_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
DSS0_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-467). 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.