A
system and method for correcting errors and losses occurring during a
receiver-driven layered
multicast (RLM) of real-time media over a heterogeneous packet network such as
the Internet. This is accomplished by augmenting RLM with one or more
layers of error correction information. This allows each
receiver to separately optimize the quality of received audio and video information by subscribing to at least one error correction layer. Ideally, each source layer in a RLM would have one or more multicasted error correction data streams (i.e.,
layers) associated therewith. Each of the error correction
layers would contain information that can be used to replace lost packets from the associated source layer. More than one error correction layer is proposed as some of the error correction packets contained in the
data stream needed to replace the packets lost in the associated source
stream may themselves be lost in transmission. A preferred process for generating the error correction streams involves the use of a unique
adaptation of the
Forward Error Correction (FEC) techniques. This process encodes the transmission data using a
linear transform which adds redundant elements. The redundancy permits losses to be corrected because any of the
original data elements can be derived from any of the encoded elements. Thus, as long as enough of the encoded data elements are received so as to equal the number of the
original data elements, it is possible to derive all the original elements.