Claims
- 1. A method of correcting errors in a packet based communications system, wherein a source station transmits data packets to a destination station via network media, comprising:
compiling a serial data stream into a sequence of data packets for transmission to the destination station via the network media; generating m parity packets from each group of k data packets from the sequence of data packets so as to form a code word of k data packets and m parity packets, wherein each of the m parity packets is a combination of two or more of the k data packets, and associating a sequence number with each packet representative of a relative position of the packet in the code word; transmitting the m+k packet code word to the destination station via the network media; receiving the m+k packet code word at the destination station, and examining the sequence number associated with each packet to determine if one or more packets from the m+k packet code word is missing, and identifying the one or more missing packets if any are missing; processing the data packets and the parity packets within the associated code word at the destination station, according to the combinations of data packets used to generate the parity packets, so as to recover one or more missing packets.
- 2. A method according to claim 1, further including generating each of the m parity packets by performing a bit-wise exclusive-or of a pair of data packets.
- 3. A method according to claim 1, further including generating m parity packets from each group of k consecutive data packets from the sequence of data packets.
- 4. A method according to claim 1, further including processing the data packets and the parity packets by analyzing each parity group consisting of a particular parity packet and the particular data packets that were combined to generate that parity packet, determining which ones, if any, of the parity group is a missing packet, and combining the remaining packets from the parity group to recover the missing packet.
- 5. A method according to claim 1, further including generating each of the m parity packets by performing a bit-wise exclusive-or of a pair of data packets, wherein each data packet is used to generate two different data packets.
- 6. A method according to claim 1, further including generating four parity packets from each group of four consecutive data packets.
- 7. A method according to claim 6, further including generating:
a first parity packet as a bit-wise exclusive-or of a first data packet and a second data packet; a second parity packet as a bit-wise exclusive-or of a third data packet and a fourth data packet; a third parity packet as a bit-wise exclusive-or of the first data packet and the third data packet; and, a fourth parity packet as a bit-wise exclusive-or of the second data packet and the fourth data packet.
- 8. A method according to claim 7, further including processing the data packets and the parity packets at the destination station by
first, correcting a single error, if it exists, in a parity group consisting of the first parity packet, the first data packet and the second data packet, and correcting a single error, if it exists, in a parity group consisting of the second parity packet, the third data packet and the fourth data packet; second, correcting a single error, if it exists, in a parity group consisting of the third parity packet, the first data packet and the third data packet, and correcting a single error, if it exists, in a parity group consisting of the fourth parity packet, the second data packet and the fourth data packet.
- 9. A method according to claim 8, further including determining if errors exist after completing the second step, and if so, repeating the first step and the second step.
- 10. A method according to claim 1, further including replacing unrecoverable missing packets with an immediately preceding packet.
- 11. A method according to claim 1, further including replacing one or more unrecoverable missing packets with a predetermined substitute packet.
- 12. A method according to claim 1, further including replacing one or more unrecoverable missing packets with an average packet calculated by determining an average of a predetermined number of adjacent packets about the missing packet.
- 13. A system for correcting errors in a packet based communications system, wherein a source station transmits data packets to a destination station via network media, comprising:
a packet assembler in the source station for compiling a serial data stream into a sequence of data packets for transmission to the destination station via the network media; an encoder in the source station (i) for receiving the data packets from the packet assembler, (ii) for generating m parity packets from each group of k data packets from the sequence of data packets so as to form a code word of k data packets and m parity packets, wherein each of the m parity packets is a combination of two or more of the k data packets, and (iii) for associating a sequence number with each packet representative of a relative position of the packet in the code word; a decoder for receiving the m+k packet code word at the destination station, and examining the sequence number associated with each packet to determine if one or more packets from the m+k packet code word is missing, and identifying the one or more missing packets if any are missing, and for processing the data packets and the parity packets within the associated code word at the destination station, according to the combinations of data packets used to generate the parity packets, so as to recover one or more missing packets.
- 14. A system according to claim 13, wherein the encoder generates m parity packets from each group of k data packets from the sequence of data packets.
- 15. A system according to claim 13, wherein the encoder generates each of the m parity packets by performing a bit-wise exclusive-or of a pair of data packets.
- 16. A system according to claim 13, wherein the decoder processes the data packets and the parity packets by analyzing each parity group consisting of a particular parity packet and the particular data packets that were combined to generate that parity packet, determining which ones, if any, of the parity group is a missing packet, and combining the remaining packets from the parity group to recover the missing packet.
- 17. A system according to claim 13, wherein the encoder generates each of the m parity packets by performing a bit-wise exclusive-or of a pair of data packets, wherein each data packet is used to generate two different data packets.
- 18. A system according to claim 13, wherein the encoder generates four parity packets from each group of four consecutive data packets.
- 19. A system according to claim 18, wherein the encoder generates:
a first parity packet as a bit-wise exclusive-or of a first data packet and a second data packet; a second parity packet as a bit-wise exclusive-or of a third data packet and a fourth data packet; a third parity packet as a bit-wise exclusive-or of the first data packet and the third data packet; and, a fourth parity packet as a bit-wise exclusive-or of the second data packet and the fourth data packet.
- 20. A system according to claim 19, wherein the decoder processes the data packets and the parity packets at the destination station by
first, correcting a single error, if it exists, in a parity group consisting of the first parity packet, the first data packet and the second data packet, and correcting a single error, if it exists, in a parity group consisting of the second parity packet, the third data packet and the fourth data packet; second, correcting a single error, if it exists, in a parity group consisting of the third parity packet, the first data packet and the third data packet, and correcting a single error, if it exists, in a parity group consisting of the fourth parity packet, the second data packet and the fourth data packet.
- 21. A system according to claim 20, wherein the decoder determines if errors exist after completing the second step, and if so, repeating the first step and the second step.
- 22. A system according to claim 13, wherein the decoder replaces unrecoverable missing packets with an immediately preceding packet.
- 23. A system according to claim 13, wherein the decoder replaces one or more unrecoverable missing packets with a predetermined substitute packet.
- 24. A system according to claim 13, wherein the decoder replaces one or more unrecoverable missing packets with an average packet calculated by determining an average of a predetermined number of adjacent packets about the missing packet.
- 25. A system for correcting errors in a packet based communications system, wherein a source station transmits data packets to a destination station via network media, comprising:
encoding means for compiling a serial data stream into a sequence of data packets for transmission to the destination station via the network media; encoding means (i) for receiving the data packets from the packet assembler, (ii) for generating m parity packets from each group of k data packets from the sequence of data packets so as to form a code word of k data packets and m parity packets, wherein each of the m parity packets is a combination of two or more of the k data packets, and (iii) for associating a sequence number with each packet representative of a relative position of the packet in the code word; decoding means for receiving the m+k packet code word at the destination station, and examining the sequence number associated with each packet to determine if one or more packets from the m+k packet code word is missing, and identifying the one or more missing packets if any are missing, and for processing the data packets and the parity packets within the associated code word at the destination station, according to the combinations of data packets used to generate the parity packets, so as to recover one or more missing packets.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to the following U.S. applications, of common assignee, from which priority is claimed, and the contents of which are incorporated herein in their entirety by reference: “Forward Error Correction Method And System For Reliable Transmission Of Real Time Data Over A Packet Based Network,” U.S. Provisional Patent Application Serial No. 60/387,343, filed Jun. 10, 2002
Provisional Applications (1)
|
Number |
Date |
Country |
|
60387343 |
Jun 2002 |
US |