LT codes
230 likes | 455 Vues
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.
LT codes
E N D
Presentation Transcript
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