This invention relates generally to a packet
recovery algorithm for real-time (live) multi-media communication over packet-switched networks, such as
the Internet. Such multi-media communication includes video, audio, data or any combination thereof. More specifically, the invention comprises a
forward error correction (FEC)
algorithm that addresses both random and burst
packet loss and errors, and that can be adjusted to tradeoff the recoverability of missing packets and the latency incurred. The
transmitter calculates parity packets for the rows, columns and diagonals of a block of multi-media data packets using the
exclusive or (XOR) operation and communicates the parity packets along with the multi-media data packets to the
receiver. The
receiver uses the parity packets to recover missing multi-media data packets in the block. The FEC
algorithm is designed to be able to recover long bursts of consecutive
missing data packets. If some parity packets are missing, they too can be recovered using an extra single parity packet, so that they can be used to recover other
missing data packets. The invention applies to both one-way real-time streaming applications and two-way real-time interactive applications, and to both wired and
wireless networks. The invention retains backwards compatibility with existing standards governing FEC for professional video over IP networks.