Fountain Codes
description
Transcript of Fountain Codes
![Page 1: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/1.jpg)
Fountain Codes
Amin Shokrollahi
EPFLand
Digital Fountain, Inc.
![Page 2: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/2.jpg)
BEC
![Page 3: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/3.jpg)
BEC(p1)
BEC(p2)
BEC(p3)
BEC(p4)
BEC(p5)
BEC(p6)
Communication on Multiple Unknown Channels
![Page 4: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/4.jpg)
Example: Popular Download
![Page 5: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/5.jpg)
Example: Peer-to-Peer
![Page 6: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/6.jpg)
Example: Satellite
![Page 7: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/7.jpg)
The erasure probabilities are unknown.
Want to come arbitrarily close to capacity on each of the erasure channels, with minimum amount of feedback.
Traditional codes don’t work in this setting since their rate is fixed.
Need codes that can adapt automatically to the erasure rate of the channel.
![Page 8: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/8.jpg)
Original Content
Blocks
Orig
inal
Orig
inal
Orig
inal
Red
unda
n t
Red
unda
n t
Red
u nda
n t
Traditional FEC
![Page 9: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/9.jpg)
• Fraction of losses must be less than K/(N+K)
• Worst user dictates amount of redundancy
• Loss provisioning is complicated and leads to overhead
Problems with FEC
![Page 10: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/10.jpg)
Originalcontent
Encoded packetsUsers reconstruct Original content as soon as they receive enough packets
Encoding
Engine
Transmission
Reconstruction time should depend only on size of content
What we Really Want
![Page 11: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/11.jpg)
Content
Enc
Digital buckets
![Page 12: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/12.jpg)
Fountain Codes
Sender sends a potentially limitless stream of encoded bits.
Receivers collect bits until they are reasonably sure that they can recover the content from the received bits, and send STOP feedback to sender.
Automatic adaptation: Receivers with larger loss rate need longer to receive the required information.
Want that each receiver is able to recover from the minimum possible amount of received data, and do this efficiently.
![Page 13: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/13.jpg)
Distribution on
Fountain Codes
![Page 14: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/14.jpg)
Universality and Efficiency
[Universality] Want sequences of Fountain Codes for which the overhead is arbitrarily small
[Efficiency] Want per-symbol-encoding to run in close to constant time, and decoding to run in time linear in number of output symbols.
![Page 15: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/15.jpg)
2
Insert header, and send
XOR Choose weight
Choose 2Random originalsymbols
Input symbols
Weight Prob
1 0.055
0.0004
0.32
0.13
0.084
100000
Weight table
The Fountain Coding Process
![Page 16: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/16.jpg)
Decoding
![Page 17: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/17.jpg)
Decoding
![Page 18: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/18.jpg)
Decoding
![Page 19: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/19.jpg)
Decoding
![Page 20: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/20.jpg)
Decoding
![Page 21: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/21.jpg)
Decoding
![Page 22: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/22.jpg)
Decoding
![Page 23: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/23.jpg)
Decoding
![Page 24: Fountain Codes](https://reader035.fdocuments.net/reader035/viewer/2022081505/56815fb3550346895dceafb5/html5/thumbnails/24.jpg)
Decoding