230 likes | 550 Views
Forward Error Correction. Steven Marx CSC457 12/04/2001. Outline. What is FEC? Why do we need it? How does it work? Where is it used?. What is FEC?. Send k packets Reconstruct n packets Such that we can tolerate k-n losses Called an (n, k) FEC code. What is FEC? (2). Why FEC?.
E N D
Forward Error Correction Steven Marx CSC457 12/04/2001
Outline • What is FEC? • Why do we need it? • How does it work? • Where is it used?
What is FEC? • Send k packets • Reconstruct n packets • Such that we can tolerate k-n losses • Called an (n, k) FEC code
Why FEC? • Alternatives: • ARQ (Automatic Repeat reQuest) • requires feedback • bad for multicast • tolerance • only suitable for some applications
Why FEC? (2) • Advantages: • sometimes no feedback channel necessary • long delay path • one-way transmission • avoids multicast problems • Disadvantages: • computationally expensive • requires over-transmission
How is this possible? An easy example: (n, k) = (2, 3) FEC code transmitting two numbers: a and b Send three packets: 1. a 2. b 3. a + b
How is this possible? (2) Could be represented as matrix multiplication To encode: To decode, use subset of rows.
How is this possible? (3) More generally: y = Gx, where G is a “generator matrix” G is constructed in such a way that any subset of rows is linearly independent. A “systematic” generator matrix includes the identity matrix.
A Problem • a and b are 8-bit numbers • a + b may require more bits • loss of precision means loss of data
A Solution • Finite fields: • field: • we can add, subtract, multiply, and divide as with integers • closed over these operations • finite: finite number of elements
A Solution (2) • Specific example: • “prime field” or “Galois Field” - GF(p) • elements 0 to p-1 • modulo p arithmeticProblem: • with the exception of p = 2,log(p)> log(p) bits required • requires modulo operations
Extension Fields • q = pr elements with p prime, r > 1 • “extension field”, or GF(pr) • elements can be considered polynomials of degree r - 1 • sum just sum modulo p • extra simple with p = 2: • exactly r bits needed • sums and differences just XORs
Multiplication and Division • Exists an α whose powers generate all non-zero elements. • In GF(5), α = 2, whose powers are (1,2,4,3,1,…). • Powers of α repeat with period q - 1, so αq-1 = α0 = 1
Multiplication and Division (2) • for all x, x = αl • l is x’s “logarithm”
Multiplication and Division (3) An example: GF(5) -> α = 2 3 = 23 mod 5 4 = 22 mod 5 3 * 4 = 23+2 mod 5 = 32 mod 5 = 2 mod 5 3 * 4 = 12 mod 5 = 2 mod 5
Vandermonde Matrices • gi,j = xij-1 • xi’s are elements of GF(pr) • called “Vandermonde Matrices” • invertible if all xi’s different • y = Gx • G-1y = G-1Gx = x • can be extended with the identity matrix for systematic codes
Swarmcast - a real example • for media distribution • reduces bandwidth requirements of the server • server transmits to a small number of clients • while downloading, those clients also transmit packets to other clients • FEC used to maximize chances of getting useful packets
Swarmcast (2) Star Wars: Episode Two Trailer 300Mb/s 100Mb/s 100Mb/s 50Mb/s 100Mb/s 100Mb/s 50Mb/s 50Mb/s 100Mb/s 100Mb/s
Other useful applications • multicast • streaming media: less “I” frames in MPEGS • one-way communication • high delay pathways • storage
Conclusion • FEC: • allows error correction without retransmission • requires redundancy in transmission • useful for multicast • not extensively used at the packet level • more important with high bandwidth, high latency, as is the trend