AXI4-Stream Video Input Stream Interface - 3.2 English

HDMI 1.4/2.0 Transmitter Subsystem Product Guide (PG235)

Document ID
PG235
Release Date
2023-10-18
Version
3.2 English

The AXI4-Stream video interface supports dual or quad pixels per clock with 8 bits, 10 bits, 12 bits, and 16 bits per component for RGB, YCbCr444, and YCbCr420 color spaces. The color depth in YCbCr422 color space is always 12-bits per pixel.

When the parameter, Max Bits Per Component, is set to 16, the following figure shows the data format for quad pixels per clock to be fully compliant with the AXI4-Stream video protocol.

Figure 1. Quad Pixels Data Format (Max Bits Per Component = 16)

A data format for a fully compliant AXI4-Stream video protocol dual pixels per clock is illustrated in the following figure.

Figure 2. Dual Pixels Data Format (Max Bits Per Component = 16)

When the parameter, Max Bits Per Component, is set to 12, video formats with actual bits per component larger than 12 are truncated to the Max Bits Per Component. The remaining least significant bits are discarded. If the actual bits per component are smaller than Max Bits Per Component set in the Vivado IDE, all bits are transported with the MSB aligned, and the remaining LSB bits are padded with 0. This applies to all Max Bits Per Component settings.

Table 1. Max Bits Per Component Support
Max Bits Per Component Actual Bits Per Component Bits Transported by Hardware
16 8 [7:0]
10 [9:0]
12 [11:0]
16 [15:0]
12 8 [7:0]
10 [9:0]
12 [11:0]
16 [15:4]
10 8 [7:0]
10 [9:0]
12 [11:2]
16 [15:6]
8 8 [7:0]
10 [9:2]
12 [11:4]
16 [15:8]

As an illustration, when Max Bits Per Component is set to 12, the following figure shows the data format for quad pixels per clock to be fully compliant with the AXI4-Stream video protocol.

Figure 3. Quad Pixels Data Format (Max Bits Per Component = 12)

A data format for a fully compliant AXI4-Stream video protocol with dual pixels per clock is illustrated in the following figure.

Figure 4. Dual Pixels Data Format (Max Bits Per Component = 12)

The video interface can also transport quad and dual pixels in the YCbCr420 color space. The following figure shows the AXI4-Stream data format for YCbCr420.

Figure 5. YCbCr 4:2:0 AXI4-Stream Video Data (Dual Pixel per Clock)
Figure 6. YCbCr 4:2:0 AXI4-Stream Video Data (Four Pixels per Clock)

The AXI4-Stream YCbCr 420 data format is not compliant with the Native HDMI video protocol. Therefore, a remapping feature is added to the HDMI Transmitter Subsystem to convert AXI4-Stream into HDMI native video. This feature can be enabled from the HDMI Transmitter Subsystem GUI. To illustrate how the data remapping feature works for YCbCr 4:2:0 video from AXI4-Stream into Native Video, the previous figure is extended and represented in the following figure to show native video data associated with the clock and control signals.

Figure 7. YCbCr 4:2:0 Native HDMI Video Interface for YCbCr420 (Dual Pixel per Clock)
Figure 8. YCbCr 4:2:0 Native HDMI Video Interface (Quad Pixels per Clock)
Figure 9. YCbCr420 Color Space Dual Pixels Data Format (Native)
Figure 10. YCbCr420 Color Space Quad Pixels Data Format (Native)

Similarly, for YCbCr 4:2:0 deep color (10, 12, or 16 bits), the data representation is the same as shown in the previous two figures. The only difference is that each component carries more bits (10, 12, and 16).

When transporting using AXI4-Stream, the data representation must be compliant with the protocol defined in the AXI4-Stream Video IP and System Design Guide (UG934). With the remapping feature, the AXI4-Stream format data is converted into native video data. As stated in AXI4-Stream Video IP and System Design Guide (UG934), the 4:2:0 format adds vertical sub-sampling to the 4:2:2 format, which is implemented in Video over AXI4-Stream by omitting the chroma data on every other line.

Note: For RGB/YCbCr444/YCbCr422 formats, video data is directly mapped from AXI4-Stream to the native video interface without any line buffer. Therefore,the quad and dual pixels data format graphics shown previously, represent the data interface for both AXI4-Stream and native video. The control signals are omitted in the figures.

The subsystem provides full flexibility to construct a system using the configuration parameters, maximum bits per component and number of pixels per clock. Set these parameters so that the video clock and link clock are supported by the targeted device. For example, when dual pixels per clock is selected, the AXI4-Stream video need to run at higher clock rate comparing with quad pixels per clock design. In this case, it is more difficult for the system to meet timing requirements. Therefore the quad pixels per clock data mapping is recommended for designs intended to send higher video resolutions, for example, 4kp60 video.

Some video resolutions (for example, 720p60) have horizontal timing parameters (1650) which are not a multiple of 4. In this case, the dual pixels per clock data mapping must be chosen. For more information on supported video timing for different PPC, see Native Video (Vectored DE) Interface.

For more information on the video AXI4-Stream interface and video data format, see the AXI4-Stream Video IP and System Design Guide (UG934).