230 likes | 418 Views
LT codes. Michael Luby Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science (FOCS’02). Outline. Introduction Encoding and Decoding Advantages Degree distributions Applications. Introduction.
E N D
LT codes Michael Luby Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science (FOCS’02)
Outline • Introduction • Encoding and Decoding • Advantages • Degree distributions • Applications
Introduction • The first rateless erasure codes that are very efficient as the data length grows.
LT codes: Encoding 0 1 0 0 1 0 Degree d = 2value = 0 XOR 0 1.Choose d from a good degree distribution. 2.Choose d neighbors uniformly at random. 3.XOR
LT codes: Decoding 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1.Select encoding symbol with degree one. 2.Recover the corresponding input symbol. 3.Update value of the neighbor of this input symbol.
LT codes: Decoding 1 0 1 Decoding fails ! 0 1 1 0 1 1 0 0 1 0 1 1 0 4.Remove edges. 5.Repeat 1~4 until all input symbol recovered, otherwise this process fails.
LT codes: Advantages • Encoding symbols can be generated on the fly. Rateless! • Efficiency as the data grows. • Encoding symbols can arrive at any order. • Reliable for a variety of data delivery application. • Near optimal with respect to any erasure channel.
LT degree distributions • Design good degree distribution to meet the following 2 design goals: • 1. few encoding symbols required for recovering data • 2. few operations = small sum of degrees • LT process succeeds input symbols are covered by the end. decoder successfully recovers data.
All-At-Once distribution • P(1) = 1 p(d): the probability of encoding symbol with degree d • Balls-and-Bins: n balls thrown into k bins • Input symbols = bins • Encoding symbols = balls • Pr(decoding fails) , guaranteed succeed if • Modify the above result to must need sum of degrees of the encoding symbols to recover data. • To meet the 2 design goals of degree distribution
LT process c1 a1 c2 a2 c3 a3 c4 a4 c5 a5 c6 covered = { } processed = { } ripple = { } released = { } STATE: ACTION: Init: Release c2, c4, c6
LT process c1 a1 c2 a2 c3 a3 c4 a4 c5 a5 c6 released = {c2,c4,c6} covered = {a1,a3,a5} processed = { } ripple = {a1,a3,a5} STATE: ACTION: Process a1
LT process c1 a1 c2 a2 c3 a3 c4 a4 c5 a5 c6 released = {c2,c4,c6,c1} covered = {a1,a3,a5} processed = {a1} ripple = {a3,a5} STATE: ACTION: Process a3
LT process c1 a1 c2 a2 c3 a3 c4 a4 c5 a5 c6 released = {c2,c4,c6,c1} covered = {a1,a3,a5} processed = {a1,a3} ripple = {a5} STATE: ACTION: Process a5
LT process c1 a1 c2 a2 c3 a3 c4 a4 c5 a5 c6 released = {c2,c4,c6,c1,c5} covered = {a1,a3,a5,a4} processed = {a1,a3,a5} ripple = {a4} STATE: ACTION: Process a4
LT process c1 a1 c2 a2 c3 a3 c4 a4 c5 a5 c6 released = {c2,c4,c6,c1,c5,c3} covered = {a1,a3,a5,a4,a2} processed = {a1,a3,a5,a4} ripple = {a2} STATE: ACTION: Process a2
LT process c1 a1 c2 a2 c3 a3 c4 a4 c5 a5 c6 released = {c2,c4,c6,c1,c5,c3} covered = {a1,a3,a5,a4,a2} processed = {a1,a3,a5,a4,a2} ripple = { } STATE: ACTION: Success!
Ideal Soliton distribution • Expected degree = lnk • r(L) = 1/k This distribution is quite fragile in practice because there is always exactly one input symbol in the ripple .
Ripple size • Desired properties of ripple • Not too small : process might die prematurely • Not too large : redundant released encoding symbols • Robust Soliton distribution • Higher ripple size • The number of encoding symbol = • The average degree of an encoding symbols =
Applications • Robust distributed storage • Delivery of streaming content • Delivery of content to mobile client in wireless networks • Peer-to-peer applications • Delivery of content along multiple paths to ensure resiliency to network disruptions