Error correction for network delivery of video streams using packet resequencing
AssigneeIntel Corporation
InventorMichael H. Anderson
Life of this patent
Estimating the term…
Abstract
A host computer connected over a wide area network system to a client computer interleaves N groups of parity protected packets in order to recover from single or multiple error events of length T. Each of the N groups of data are comprised of M data packets plus one parity packer generated by the modulo-2 sum of data in like positions of the data packets within the group. An error event of length T affects only one packer in each of the N groups, allowing recovery of the lost data, assuming that N or less packets in succession are lost.
Claims40
A method for delivering a stream of digital data packets from a data source to a data destination, the method comprising:
- obtaining the stream of data packets from the data source;
- segregating the stream of data packets into a pre-determined number N of pre-reorganized groups, each pre-reorganized group containing a predetermined number M of data packets;
- including a parity packet with each pre-reorganized group, each parity packet containing information sufficient to enable recreation of a damaged data packet within the group;
- reorganizing the packets in the pre-determined number N of pre-reorganized groups into M+1 post-reorganized groups, each post-reorganized group containing N packets, no two of which are contained in any single pre-reorganized group;
- and
- delivering the post-reorganized groups to the data destination.
An apparatus for delivering a stream of digital data packets into a computer network which allows network transmission errors in successive data packets to be corrected during reception without re-transmitting the damaged packets over the network comprising:
- a. a device for generating the stream of digital data packets;
- b. a controller connected to said device for causing said device to output a stream of data packets, and
- c. a re-sequencer connected to said device for
- i. segregating the stream of data packets into a pre-determined number N of pre-reorganized groups, each pre-reorganized group containing a pre-determined number M of data packets;
- ii. including a parity packet with each pre-reorganized group, each parity packet containing information sufficient to enable recreation of a damaged data packet within the group;
- iii. reorganizing the packets in the pre-determined number N of pre-reorganized groups into M+1 post-reorganized groups, each post-reorganized group containing N packets, no two of which are contained in any single pre-reorganized group;
- and
- iv. delivering the post-reorganized groups into the computer network.
A method for delivering a stream of digital data packets from a data source to a data destination, the method comprising the steps of:
- a. obtaining the stream of data packets from the data source;
- b. segregating the stream of data packets into a pre-determined number N of pre-reorganized groups, each pre-reorganized group containing a pre-determined number M of data packets;
- c. including a parity packet with each pre-reorganized group, each parity packet containing information sufficient to enable recreation of damaged data packet within the group;
- and
- d. reorganizing the packets in the pre-determined number N of pre-reorganized groups into M+1 post-reorganized groups, each post-reorganized group containing N packets, no two of which are contained in any single pre-reorganized group.
A method of transmitting a sequence of digital data units, having an in-order sequence, from a data source to a data destination, the method including the steps of:
- dividing the sequence of digital data into a plurality of groups of data units, each group of data units maintaining the in-order sequence;
- including a respective error correction indication for each group within the in-order sequence of digital data units;
- reorganizing the in-order sequence including the error correction indication into digital data units in an out-of-order sequence;
- and
- transmitting the digital data units in the out-of order sequence from the data source.
A method of detecting an error in a sequence of digital data units, having an in-order sequence, the method including the steps of:
- receiving the digital data units in an out-of-order sequence, each data unit including an error correction indication;
- restoring the in-order sequence to the received data units;
- grouping the in-order sequence of data units into N groups;
- and
- performing an error check operation utilizing the respective error correction indication associated with each of the N groups of data units.
Apparatus for transmitting a sequence of digital data units, having an in-order sequence, from a data source to a data destination, the apparatus comprising:
- a parity generator to divide the sequence of digital data into a plurality of groups of data units, each group of data units maintaining the in-order sequence, and to include a respective error correction indication for each group within the in-order sequence of digital data units;
- and
- a re-sequencer to transmit the digital data units from the data source so that the digital data units including the error correction indication are arranged in an out-of-order sequence.
Apparatus for detecting an error in a sequence of digital data units, having an in-order sequence, the apparatus comprising:
- a re-sequencer to receive the digital data units, each including an error correction indication, in an out-of-order sequence, and to restore the in-order sequence to the received data units;
- and
- an error corrector to group the in-order sequence of data units into N groups, and to perform an error check operation utilizing the respective error correction indication associated with each of the N groups of data units.
A machine-readable medium storing a sequence of instructions that, when executed by a machine, cause the machine to perform the steps of:
- dividing a sequence of digital data, having an in-order sequence, into a plurality of groups of data units, each group of data units maintaining the in-order sequence;
- including a respective error correction indication of each group within the in-order sequence of digital data units;
- reorganizing the in-order sequence including the error correction indication into digital data units in an out-of-order sequence;
- and
- transmitting the digital data units in the out-of-order sequence from a data source to a data destination.
A machine-readable medium storing a sequence of instructions stored therein that, when executed by a machine, cause the machine to perform the steps of:
- receiving the digital data units, having an in-order sequence in which each digital data unit includes an error correction indicator, in an out-of-order sequence;
- restoring the in-order sequence to the received data units;
- grouping the in-order sequence of data units into N groups;
- and
- performing an error check operation utilizing the respective error correction indication associated with each of the N groups of data units.
Dependencies are inferred from the claim text.