30.3. Stream Cleaner IP Functional Description
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.
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.
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.
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 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.