Patent ID: 6996097

Claim:
A computer-implemented error correction process for use in a receiver-driven layered multicast of real-time media over a heterogeneous packet network to a plurality of receivers, wherein the real-time media is transmitted over the network in multiple streams of packetized source data forming hierarchical layers of information, said error correction process comprising using a computer to perform the following steps: producing multiple streams of packetized error correction information for each of the streams of packetized source data, wherein each error correction stream comprises parity packets encoded from packets of the source data which have been subjected to a linear transform, said linear transform producing a series of parity packets which can be employed by a receiver to assist in the recovery of lost source data packets using a reverse transform; multicasting each stream of packetized error correction information to said receivers to allow each receiver to recover packets of source data lost during transmission, said multicasting comprising, associating each stream of packetized error correction information with one of the multiple streams of packetized source data, incorporating in each error correction stream information necessary to assist a receiver in recovering said packets of lost source data belonging to the particular stream of packetized source data associated with the error correction stream, wherein said information incorporated in each error correction stream associated with the same source data stream makes the streams redundant thereby making it possible for a receiver to employ more than one error correction stream and obtain a desired amount of the error correction information needed to replace packets in an associated source data stream that were lost during the transmission even if some of the error correction stream packets themselves are lost in transmission, and incorporating an identifier into each packet in each of the streams of packetized error correction information wherein a different identifier is employed for each of the error correction information streams, thereby allowing each receiver to select the number of error correction information streams to be received by specifying that only packets having particular identifiers be routed over the network to the receiver.