Title: Forward Error Correction
1Forward Error Correction
- Steven Marx
- CSC457
- 12/04/2001
2Outline
- What is FEC?
- Why do we need it?
- How does it work?
- Where is it used?
3What is FEC?
- Send k packets
- Reconstruct n packets
- Such that we can tolerate k-n losses
- Called an (n, k) FEC code
4What is FEC? (2)
5Why FEC?
- Alternatives
- ARQ (Automatic Repeat reQuest)
- requires feedback
- bad for multicast
- tolerance
- only suitable for some applications
6Why FEC? (2)
- Advantages
- sometimes no feedback channel necessary
- long delay path
- one-way transmission
- avoids multicast problems
- Disadvantages
- computationally expensive
- requires over-transmission
7How 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
8How is this possible? (2)
Could be represented as matrix multiplication To
encode
To decode, use subset of rows.
9How 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.
10A Problem
- a and b are 8-bit numbers
- a b may require more bits
- loss of precision means loss of data
11A Solution
- Finite fields
- field
- we can add, subtract, multiply, and divide as
with integers - closed over these operations
- finite finite number of elements
12A 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)?gt log(p)
bits required - requires modulo operations
13Extension Fields
- q pr elements with p prime, r gt 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
14Multiplication and Division
- Exists an a whose powers generate all non-zero
elements. - In GF(5), a 2, whose powers are (1,2,4,3,1,).
- Powers of a repeat with period q - 1, so aq-1
a0 1
15Multiplication and Division (2)
- for all x, x al
- l is xs logarithm
16Multiplication and Division (3)
An example GF(5) -gt a 2 3 23 mod 5 4 22
mod 5 3 4 232 mod 5 32 mod 5
2 mod 5 3 4 12 mod 5 2 mod 5
17Vandermonde Matrices
- gi,j xij-1
- xis are elements of GF(pr)
- called Vandermonde Matrices
- invertible if all xis different
- y Gx
- G-1y G-1Gx x
- can be extended with the identity matrix for
systematic codes
18Swarmcast - 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
19Swarmcast (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
20Other useful applications
- multicast
- streaming media less I frames in MPEGS
- one-way communication
- high delay pathways
- storage
21Conclusion
- 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