Forward Error Correction

Download Report

Transcript Forward Error Correction

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?
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:  y1  1 0
  
a

 y2   0 1 
 y  1 1 b 
 3 

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 arithmetic
Problem:
•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 nonzero 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”
l x  l y mod q 1
xy  
1
q 1l x

x
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)
300Mb/s
100Mb/s
Star Wars:
Episode Two
Trailer
100Mb/s
100Mb/s 100Mb/s
50Mb/s
100Mb/s
100Mb/s
50Mb/s
50Mb/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