The FBDC supports a source cropping of the compressed frame buffer. The source cropping is achieved as a two-step process.
- Cropping at a tile boundary is achieved by the DMA controller.
- Cropping within a tile (to a pixel or a line) is achieved by the VID/VIDL pipeline. That is a regular crop feature in the VID/VIDL pipeline which is useful for non-compressed frames as well.
The necessary programming for cropping at a tile boundary within the DMA Controller (based on Figure 12-318) is as follows:
- BA must be programmed to the top of the compressed frame buffer in DDR.
- TILEINDEX must be programmed to the start tile of the cropped window in the
DSS0_VID_TILE[22-0] TILEINDEX register field. In this example, TILEINDEX =
v*t + h.
- MEMSIZEX is the SIZEX in pixels for the cropped window at a "Tile boundary".
- MEMSIZEY is the SIZEY in lines for the cropped window at a "Tile boundary".
- ROW_INC is the number of bytes from the last byte of the last tile of the line
to the first byte of the first tile to be fetched on the next line. In this
example, ROW_INC = (t-(MEMSIZEX/TILE_HSIZE))*256 + 1, where TILE_HSIZE = 16
or 32 depending on whether 16x4 tile-type is used or a 32x2 tile-type is
used. The tile type must be programmed in the DSS0_VID_FBDC_ATTRIBUTES[9-8]
TILETYPE register field.
For details on the register programming for the crop feature in the VID/VIDL pipeline, see Section 12.6.3.8.9, DISPC VID Cropping Support.