digital fountain with tornado codes and lt codes k. c. yang
Post on 22-Dec-2015
231 views
TRANSCRIPT
Digital Fountain with Tornado Codes and LT Codes
K. C. Yang
References
• Gavin B. Horn, Per Knudsgaard, Soren B. Lassen, Michael Luby, Jens E. Rasmussen, “A Scalable and Reliable Paradigm for Media on Demand,” IEEE Computer, vol. 34, no. 9, pp. 40-45, Sep 2001.
• Michael Luby,Michael Mitzenmacher, M. Shokrollahi,Daniel Spielman, “Efficient Erasure Correcting Codes,” IEEE Transactions on Information Theory, vol. 47, no. 2, Feb 2001.
• John W. Byers, Michael Luby, Michael Mitzenmacher, “A Digital Fountain Approach to Asynchronous Reliable Multicast,” IEEE Journal on Selected Areas in Communications, vol. 20, no. 8, pp. 1528-1540, Oct 2002.
• Michael Luby, “LT Codes.”
• http://www.digitalfountain.com
Outline
• Current Delivery Solutions• Digital Fountain• Reed-Solomon Codes• Bipartite Graph Encoding
• Tornado Codes• Luby Transform Codes
• Experimental Results
Current Delivery Solutions
• Point-to-Point vs. Broadcast
P2P Broadcast
Download on demand?
Packet loss?
Server load?
Network load?
Scalability?
Pause-resume download?
Digital Fountain
• The receiver can reconstruct the original data after receiving a sufficient number of packets – regardless of order or sequence.
serverencoded packet
file
Digital Fountain
• Take a file of k packets. Encode it into ck encoded packets.
• Given any set of k encoded packets, the original file can be recovered.• Don’t care which packets the client
receives.
source
Digital Fountain
Digital fountain
Yes
Yes
Good
Low
Low
High
Download on demand?
Resume download?
Packet loss?
Server load?
Network load?
Scalability?
Concept
x1 x2 xk
y1 y2 yn
knknn
kk
kk
n xaxaxa
xaxaxa
xaxaxa
y
y
y
2211
2222121
1212111
2
1
Receive any k encoding packets to reconstruct the source packets
Reed-Solomon Codes
• k source packets n encoding packets• n = 2A - 1, where A is the length of a
symbol.• k(n-k)A/2 exclusive-ORs of source packets.
• e.g. k = 10000, n = 20000, A = 16.• 80000 exclusive-ORs of source packets per
source packet.
• Finite stretch factor (n/k).• Receive many useless duplicate transmissions
when packet loss and parallel download.n = 6k = 5
n = 12k = 5
Bipartite Graph Encoding (Tornado Codes)
• k source packets n encoding packets• n = i = 0 to m ik.• fixed n.
• Coding time Number of edgesk
k 2k 3k mkk1
/2
x1
x2
x3
y1 = x1 x2 x3
0< <1
Poisson distribution
Soliton distribution
Sparse:Avg. # of variables per equation is small
Bipartite Graph Encoding (LT Codes)
• Each packet is independently generated.• Encoding process (Infinite iterations)
• Randomly choose the degree d of encoding symbol by a degree distribution.
• Uniformly choose d input symbols.• Exclusive-or these d symbols.
• Decoder needs to know the degree and set of neighbors of each encoding symbol.
• Sparse codes, too.
xi1 xi2 xid
d
x1x2x3x4x5…xk
yi =
yid
Bipartite Graph Encoding
x3
x3 x2
x3 x2 x1
x3 x2 x1 x4
x3
x3 x2
x3 x2 x1
• Decoding process
Bipartite Graph Encoding
• Decoding process (Iteration)1. Find any equation with exactly one
variable, recover the value.
2. Combine the recovered variable in all equations with exclusive-ORs.
• y1 = x3, y2 = x2 x3, y3 = x3 x1, y4 = x1 x2 x4
• y1 = x3 y’2 = y2 x3 = x2, y’3 = y3 x3 = x1.
• y’2 = x2, y’3 = x1 y’’4 = y4 x1 x2 = x4.
• y’’4 = x4.
Tornado Codes And LT Codes
Tornado LT
n/k Pre-determine infinite
structure pre-construct dynamically construct
decoder must know
the graph constructed at encoder
degree and set of each encoding symbol
Tornado Codes And LT Codes
LT Tornado Reed-Solomon
Decoding inefficiency
Asymptotically 1 1 + 1
Encoding time
O(lnk) O(nln(1/))
O(k(n-k)A)
Decoding time
O(klnk) O(nln(1/))
O(k(n-k)A)
• Decoding inefficiency• Use of sparse codes• Reception of duplicate packets
Experimental Results
• 4132 source packets 8264 encoding packets
• 512 B packet size with 500 B of data and 12 B of information
Berkeley
Carnegie Mellon
Cornell
Experimental Results
• Decoding inefficiency (c)
• Distinctness inefficiency (d)
• Reception inefficiency ( = cd)
packets data source ofnumber
tionreconstruc before received packetsdistinct ofnumber c
received packetsdistinct ofnumber
received packets ofnumber totald
packets data source ofnumber
tionreconstruc before received packets ofnumber