Video and Vision Processing Suite Intel® FPGA IP User Guide

ID 683329
Date 12/12/2022

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents
1. About the Video and Vision Processing Suite 2. Getting Started with the Video and Vision Processing IPs 3. Video and Vision Processing IPs Functional Description 4. Video and Vision Processing IP Interfaces 5. Video and Vision Processing IP Registers 6. Video and Vision Processing IPs Software Programming Model 7. Protocol Converter Intel® FPGA IP 8. 3D LUT Intel® FPGA IP 9. AXI-Stream Broadcaster Intel® FPGA IP 10. Chroma Key Intel® FPGA IP 11. Chroma Resampler Intel® FPGA IP 12. Clipper Intel® FPGA IP 13. Clocked Video Input Intel® FPGA IP 14. Clocked Video to Full-Raster Converter Intel® FPGA IP 15. Clocked Video Output Intel® FPGA IP 16. Color Space Converter Intel® FPGA IP 17. Deinterlacer Intel® FPGA IP 18. FIR Filter Intel® FPGA IP 19. Frame Cleaner Intel® FPGA IP 20. Full-Raster to Clocked Video Converter Intel® FPGA IP 21. Full-Raster to Streaming Converter Intel® FPGA IP 22. Genlock Controller Intel® FPGA IP 23. Generic Crosspoint Intel® FPGA IP 24. Genlock Signal Router Intel® FPGA IP 25. Guard Bands Intel® FPGA IP 26. Interlacer Intel® FPGA IP 27. Mixer Intel® FPGA IP 28. Pixels in Parallel Converter Intel® FPGA IP 29. Scaler Intel® FPGA IP 30. Stream Cleaner Intel® FPGA IP 31. Switch Intel® FPGA IP 32. Tone Mapping Operator Intel® FPGA IP 33. Test Pattern Generator Intel® FPGA IP 34. Video Frame Buffer Intel® FPGA IP 35. Video Streaming FIFO Intel® FPGA IP 36. Video Timing Generator Intel® FPGA IP 37. Warp Intel® FPGA IP 38. Design Security 39. Document Revision History for Video and Vision Processing Suite User Guide

30.3. Stream Cleaner IP Functional Description

Intel Video and Vision IPs follow the Intel Video and Vision Protocol. In full mode, this protocol consists of metapackets of a specific length and data packets of variable length. For example, an image information packet is four beats in length; end-of-field packets and timestamp packets are two and three beats in length, respectively. For legal packet ordering, refer to the Intel FPGA Video and Vision Protocol Specification
Figure 64. Packet ordering rulesThe figure summarizes the control packet ordering rules

A field must start with an image information packet, followed by 0 to n video data packets and then 0 to m auxiliary and timestamp packets. The field is then terminated by an end-of-field packet. After the end-of-field packet and before the image information packet, the protocol allows any number of auxiliary packets. If in any way this protocol is not adhered to, the video and vision IPs do not work correctly.

All IPs receive and transmit according to the protocol. It is difficult to produce a stream that does not comply with the protocol. In most cases, you do not require a Stream Cleaner IP in the video processing pipeline. However, in situations such as when switching may occur midpacket (crash switching), the output stream may produce broken control packets that do not match their required length, or packet orders which are not permitted by the protocol.

Figure 65. Stream Cleaner fixing broken packet example

In the figure, the Intel FPGA streaming video input receives the first beat of an end-of-field packet followed by the first beat of an image information packet. The end-of-field is therefore missing its second beat. Detecting this fault, the Stream Cleaner pauses the input stream by dropping axi_vid_in_tready low and inserts the second beat of the end-of-field before continuing the input stream by raising axi_vid_in_tready. The packet is now legal, although the data in the second beat is incorrect.

Figure 66. An example of a packet order that violates the Intel FPGA Streaming Video Protocol SpecificationThe figure shows the IP detecting a protocol error.

An end-of-field packet is followed by another end-of-field packet, which is an erroneous sequence. The Intel FPGA Streaming Video Protocol Specification states that an end-of-field packet must be followed by either an image information packet or an auxiliary control packet. The IP drops output axi_vid_in_tvalid low to prevent it from passing the data on to the next component. axi_vid_in_tvalid goes high again when a valid packet is on the output of the Stream Cleaner.

Figure 67. An example of a broken packet and a packet order that violates the Intel FPGA Streaming Video Protocol Specification.The figure shows a protocol error and a packet error.

A broken image information packet (shaded red) is followed by a complete image information packet. The first image information packet is broken due to missing its final beat. The Stream Cleaner produces a fixed packet (shaded green) by recreating the missing beat using the data from the previous beat. It then ensures the axi_vid_out_tlast signal goes high.

The Intel FPGA Streaming Video Protocol Specification states that an image information packet is followed by

  • A data packet (with the tuser[0] start-of-field signal high)
  • A timestamp packet
  • A custom auxiliary packet
  • An end-of-field packet.

The Stream Cleaner discards the second image information packet by lowering the axi_vid_out_tvalid signal. The axi_vid_out_tvalid signal raises again when a packet adhering to the specification passes through.

The Stream Cleaner only supports user auxiliary Packets of ID range 16-31 and requires them to be 4 beats in length.