Forward error correction system for packet based real time media
First Claim
1. A method for communicating payload in a digital transmission system, said payload being divided into a sequence of payload packets, PL k-w!, . . . , PL k-1!, PL k-2!, PL k!, PL k+1!, . . . , PL k+u!, said method comprising, in combination:
- to each payload packet PL k!, appending a forward error correction code FEC k! comprising the XOR sum of a predetermined number of preceding payload packets, said predetermined number being greater than 1, said payload packet PL k! and said forward error correction code FEC k! defining, in combination, a packet P k!; and
transmitting a sequence of said packets P k!, P k+1!, . . . , P k+u! from a first device in said digital transmission system for receipt by a second device in said digital transmission system.
6 Assignments
0 Petitions
Accused Products
Abstract
A computationally simple yet powerful forward error correction code scheme for transmission of real-time media signals, such as digitized voice, video or audio, in a packet switched network, such as the Internet. The invention appends to each of a series of payload packets a single forward error correction code that is defined by taking the XOR sum of a preceding specified number of payload packets. The invention thereby enables correction from the loss of multiple packets in a row, without significantly increasing the data rate or otherwise delaying transmission.
187 Citations
24 Claims
-
1. A method for communicating payload in a digital transmission system, said payload being divided into a sequence of payload packets, PL k-w!, . . . , PL k-1!, PL k-2!, PL k!, PL k+1!, . . . , PL k+u!, said method comprising, in combination:
-
to each payload packet PL k!, appending a forward error correction code FEC k! comprising the XOR sum of a predetermined number of preceding payload packets, said predetermined number being greater than 1, said payload packet PL k! and said forward error correction code FEC k! defining, in combination, a packet P k!; and transmitting a sequence of said packets P k!, P k+1!, . . . , P k+u! from a first device in said digital transmission system for receipt by a second device in said digital transmission system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for communicating payload in a digital transmission system, said payload being divided into a sequence of payload packets, PL k-w!, . . . , PL k-1!, PL k-2!, PL k!, PL k+1!, . . . , PL k+u!, said method comprising, in combination:
-
to each payload packet PL k!, appending a forward error correction code FEC k!=PL k-1! XOR PL k-2! XOR, . . . , XOR PL k-w!, said payload packet and forward error correction code defining, in combination, a packet P k!; and transmitting a sequence of said packets P k!, P k+1!, . . . , P k+u!, from a first location in said digital transmission system for receipt at a second location in said digital transmission system.
-
-
11. A method of encoding a sequence of packets in a transmission system to enable recovery of lost packets, each of said packets comprising a payload block, said method comprising, in combination,
for each sequential group of w packets, computing an XOR sum of said payload blocks in said group of w packets and combining said XOR sum with a packet sequentially following said w packets, whereby, if up to w sequential payload blocks are thereafter lost in transmission, said up to w sequential payload blocks may be recovered through extraction from said XOR sum in combination with other payload blocks in said sequence.
-
12. A method of recovering a lost packet in a sequence of packets transmitted in a telecommunications system, each packet in said sequence defining a sequence number and carrying a payload block and a redundancy block, said redundancy block in a given packet being defined by an XOR sum of a predetermined number of preceding payload blocks in said sequence, said method comprising, in combination:
-
(a) receiving an incoming packet of said sequence; (b) establishing a window of analysis beginning with said incoming packet and extending for said predetermined number of packets of said sequence following said incoming packet; and (c) if only one payload block in said window of analysis has not yet been received, recovering said one payload block by taking an XOR sum of a plurality of payload blocks within said window of analysis. - View Dependent Claims (13)
-
-
14. An apparatus for communicating payload in a digital transmission system, said payload being divided into a sequence of payload packets, PL k-w!, . . . , PL k-1!, PL k-2!, PL k!, PL k+1!, . . . , PL k+u!, said apparatus comprising, in combination:
-
a computer processor; a memory; a first segment for appending to each payload packet PL k! a forward error correction code FEC k! equal to the XOR sum of a predetermined number of preceding payload packets, said predetermined number being greater than 1, said payload packet PL k! and said forward error correction code FEC k! defining, in combination, a data packet P k!; and a second segment for transmitting a sequence of said data packets from a first device in said digital transmission system to a second device in said digital transmission system. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. An apparatus for transmitting payload in a digital communications system, said payload being divided into a sequence of payload packets, PL k-w!, . . . , PL k-1!, PL k-2!, PL k!, PL k+1!, . . . , PL k+u!, said apparatus comprising, in combination:
-
a first segment for generating, for each payload packet PL k!, a forward error correction code FEC k!=PL k-1! XOR PL k-2! XOR . . . , XOR PL k-w!; a second segment for appending said forward error correction code FEC k! to said payload packet PL k!, said payload packet PL k! and forward error correction code FEC k! defining, in combination, a packet P k!; and a third segment for transmitting a sequence of said packets from a first location in said digital transmission system to a second location in said digital transmission system, whereby, when said sequence of packets is transmitted from said first location in said digital communications system to said second location in said digital communications system, if a packet P i! is lost in said transmission, payload packet PL i! may be recreated by extracting PL i! from one or more other packets. - View Dependent Claims (22, 23, 24)
-
Specification