* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Forward Error Correction
Survey
Document related concepts
Transcript
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