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