IP video broadcasting
Oct 1, 2008 12:00 PM, By Wes Simpson
Flawless IP video over imperfect networks
Forward error correction
Row-column FEC operates by arranging groups of packets in rows and columns and then adding a FEC packet to each row and each column. For example, a 10-row, five-column FEC scheme would add 10-row FEC packets and five-column FEC packets to every 50 data packets. In the new SMPTE 2022 standard, these FEC packets are calculated by using the exclusive or (XOR) function. Interestingly, if any one packet in a row is lost, then its value can be calculated by performing an XOR of all the other packets in the row, including the FEC packet. This also applies to columns.
With this extra data, it becomes possible to correct burst errors of up to five packets in length and even replace packets that are completely missing. However, there are limits to what can be corrected.
Of course, the added row/column FEC data is fairly costly in terms of bandwidth, adding 15 extra packets for every 50 transmitted, for 30 percent overhead. End-to-end delay of the system is also increased, because the receiver needs to buffer the block of 65 incoming packets in order to check the FECs and correct any errors in the data block. (See Figure 1.)
Packet doubling
Packet doubling is a simple error correction scheme that transmits each packet twice from the signal source. These packets do not necessarily have to be transmitted one immediately after the other. The duplicate packets can be sent after a specified amount of delay that depends on the implementation. At the receiver, each incoming packet is examined, and any duplicate packets are discarded. In this way, the signal can get through even in a fairly high loss environment.
While this method does seem wasteful, with an overhead of 100 percent, it has a big advantage over other methods in terms of delay for low bit-rate signals, such as live, compressed audio feeds.
Automatic packet resending and TCP
Automatic packet resending uses a higher level protocol to retransmit packets that were lost during transmission. This is extremely beneficial for data transport and is required when no errors can be tolerated, as in the case of a banking transaction or for a downloaded software program, where even a single bit error causes major problems.
Packet resending is part of the Transmission Control Protocol (TCP), which is a standard, highly reliable method to transfer data files across a network that doesn't have service assurance guarantees. Unfortunately, TCP leaves much to be desired for transferring video streams, because the throughput of TCP goes down as the round-trip packet delay increases and as the packet loss rate increases. This is caused by two mechanisms used by TCP.
Figure 2. TCP uses a sequence number to request retransmission of missing packets. R-S stands for Reed-Solomon.
Click to enlarge
The first mechanism ensures that TCP can handle transmission errors, particularly lost packets. TCP counts and keeps track of each byte of data that flows across a connection, using a field in the header of each packet called the sequence number. As shown in Figure 2, the receiver sends an acknowledgement that indicates the sequence number of the next byte that it is ready to receive. If a packet is lost or arrives out of order, the sequence number in the next packet to arrive will not match the count that the receiver has made of all the previously received bytes. When this happens, the receiver sends an acknowledgement to the sender that indicates the last correct byte received, which obligates the sender to retransmit the missing data.
The second mechanism allows TCP to control the flow of data across a connection. This feature operates by way of a mechanism where the receiver tells the sender how big a buffer it is using, and the sender must not send more data than will fit into the buffer. Whenever the sender determines that the receiver's buffer is full, it will delay transmission of new data until the receiver acknowledges that it has processed the data that has already been sent. Whenever the receiver quickly acknowledges the receipt of new data, the sender can gradually increase the flow of data.
| Want to use this article? Click here for options! |

















