The VIP module provides video capture functions for the device. VIP incorporates a multi-channel raw video parser, various video processing blocks, and a flexible Video Port Direct Memory Access (VPDMA) engine to store incoming video in various formats. The device integrates three instantiations of the VIP module giving the ability of capturing up to ten video streams.
Figure 9-1 shows
a block diagram with the VIP modules within the device.
A VIP module includes the following main features:
- Two independently configurable external video input capture slices (Slice 0 and Slice 1) each providing up to two video input ports, Port A and Port B:
- Port A can be configured as a 24/16/8-bit port. Port A of VIP3 slices provides only 16-bit interface.
- Port B is a fixed 8-bit port. Port B of VIP3 slices is not used.
- At device level, the same device pads may be shared between Port A and Port B of each slice. For more information, see the multiplexing characteristics in device Data Manual.
- Each video Port A can be operated as a port with clock independent input channels (with interleaved or separated Y/C data input). Embedded sync and external sync modes are supported for all input configurations.
- Support for a single external asynchronous pixel clock, up to 165MHz per port.
- Pixel Clock Input Domain Port A supports up to one 24-bit input data bus, including BT.1120 style embedded sync for 16-bit and 24-bit data.
- Embedded Sync data interface mode supports single or multiplexed sources
- Discrete Sync data interface mode supports only single source input
- 24-bit data input plus discrete syncs can be configured to include:
- 8-bit YUV422 (Y and U/V time interleaved)
- 16-bit YUV422 (CbY and CrY time interleaved)
- 24-bit YUV444
- 16-bit RGB565
- 24-bit RGB888
- 12/16-bit RAW Capture
- 24-bit RAW capture
- Discrete sync modes include:
- VSYNC + HSYNC (FID determined by FID signal pin or HSYNC/VSYNC skew)
- VSYNC + ACTVID + FID
- VBLANK + ACTVID (ACTVID toggles in VBLANK) + FID
- VBLANK + ACTVID (no ACTVID toggles in VBLANK) + FID
- Multichannel parser (embedded syncs only):
- Embedded syncs only
- Pixel (2x or 4x) or Line multiplexed modes supported
- Performs demultiplexing and basic error checking
- Supports maximum of 9 channels in Line Mux (8 normal + 1 split line)
- Ancillary data capture support:
- For 16-bit or 24-bit input, ancillary data may be extracted from any single channel
- For 8-bit time interleaved input, ancillary data can be chosen from the Luma channel, the Chroma channel, or both channels
- Horizontal blanking interval data capture only supported when using discrete syncs (VSYNC + HSYNC or VSYNC + HBLANK)
- Ancillary data extraction supported on multichannel capture as well as single source streams
- Format conversion and scaling:
- Programmable color space conversion
- YUV422 to YUV444 conversion
- YUV444 to YUV422 conversion
- YUV422 to YUV420 conversion
- YUV444 Source: YUV444 to YUV444, YUV444 to RGB888, YUV444 to YUV422, YUV444 to YUV420
- RGB888 Source: RGB888 to RGB888, RGB888 to YUV444, RGB888 to YUV422, RGB888 to YUV420
- YUV422 Source: YUV422 to YUV422, YUV422 to YUV420, YUV422 to YUV444, YUV422 to RGB888
- Supports RAW to RAW (no processing)
- Scaling and format conversions do not work for multiplexed input
- Supports up to 2047 pixels wide input - when scaling is engaged
- Supports up to 3840 pixels wide input - when only chroma up/down sampling is engaged, without scaling
- Supports up to 4095 pixels wide input - without scaling and chroma up/down sampling
- The maximum supported input resolution is further limited by:
- Pixel clock and feature-dependent constraints
- For RGB24-bit format (RAW data), the maximum frame width is limited to 2730 pixels
A VPDMA module includes the following main features:
- VPDMA output buffer size restriction feature, which ensures that writes do not exceed allocated memory buffer size
- Support for Tiled (2D) and raster addressing without bandwidth penalty
- Dual clients per channel allows for capture of scaled and nonscaled versions of the data stream (non-multiplexed mode only)
- Start on new frame capability
- Interrupt every X number of frames
- Interrupt every X lines (synced to frame start)
- Dynamic MFLAG generation