Digital Fountain with Tornado Codes and LT Codes

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
Download on demand?
Pause-resume download?
Packet loss?
Server load?
Network load?
Scalability?
Broadcast
Digital Fountain
• The receiver can reconstruct the
original data after receiving a
sufficient number of packets –
regardless of order or sequence.
server
encoded 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
Download on demand?
Yes
Resume download?
Yes
Packet loss?
Good
Server load?
Low
Network load?
Low
Scalability?
High
Concept
x1
y1
x2
y2
 y1   a11 x1  a12 x2    a1k xk 
  

 y2   a21 x1  a22 x2    a2 k xk 
  


  

 y  a x  a x  a x 
nk k 
 n   n1 1 n 2 2
xk
yn
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=6
k=5
n = 12
k=5
Bipartite Graph Encoding
(Tornado Codes)
• k source packets  n encoding packets
• n=
ik.
• fixed n.
i = 0 to m
• Coding time  Number of edges
k
k
 2k
 3k
 mk
0<  <1
x1
x2

y1 = x1  x2  x3
x3
Poisson
distribution
Soliton
distribution
Sparse:
Avg. # of variables per equation is small
Bipartite Graph Encoding (LT
Codes)
• Each packet is independently generated.
x1x2x3x4x5…xk
• Encoding process (Infinite iterations)
d
yi
• Randomly choose the degree d of encoding
d
symbol by a degree distribution.
xi2
yi = xi1
• 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.
xid
Bipartite Graph Encoding
• Decoding process
x3
x3 x2
x3 x2 x1
x3 x2 x1 x4
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 the graph constructed degree and set of each
must know
at encoder
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
Cornell
Carnegie Mellon
Experimental Results
• Decoding inefficiency (c)
c 
number of distinct packets received before reconstruc tion
number of source data packets
• Distinctness inefficiency (d)
d 
total number of packets received
number of distinct packets received
• Reception inefficiency ( = cd)

number of packets received before reconstruc tion
number of source data packets