Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 1l 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