20
CprE 545 project proposal Long Long

Fountain Codes and implementation

  • Upload
    tavita

  • View
    19

  • Download
    0

Embed Size (px)

DESCRIPTION

Fountain Codes and implementation. CprE 545 project proposal Long Long. Outline. Introduction Random linear code LT-code Application Future work. TCP/IP network. A file is divided into equal length pieces and placed into packets - PowerPoint PPT Presentation

Citation preview

Page 1: Fountain Codes and implementation

CprE 545 project proposal

Long Long

Page 2: Fountain Codes and implementation

Introduction Random linear code LT-code Application Future work

Page 3: Fountain Codes and implementation

A file is divided into equal length pieces and placed into packets

Receivers acknowledge each received packet and senders retransmit the packets lost

Low efficiency over networks with high latencies and high loss rates

Capacity is wasted by feedback messages according to the Shannon Theory

Wastefulness is terrible in the case of a multicast channel

Page 4: Fountain Codes and implementation

An ideal/paradigm for data transmission, without need for receivers to send any feedback message and for senders to resend any packet.

k packets of a file can potentially generate limitless encoded packets; once you receive any k(1+α) packets regardless of the order (α is a small fraction < 1, especially when k is large), you can quickly reconstruct the original file.

Page 5: Fountain Codes and implementation

It doesn’t matter what is received or lost It only matters that enough is received

Page 6: Fountain Codes and implementation

One to One transport Design the flow and congestion control

mechanisms independently of reliability of transmission links.

One-to-many transport Reliability without feedback High/unknown/variable loss Massive scalability

Many-to-one transport Minimize delivery of redundant packets

Page 7: Fountain Codes and implementation

Digital fountains can be constructed by using fountain codes

Fountain Codes Rateless Delivery and recovery regardless of the network

reliability Small encoding and decoding complexities

Several types of fountain codes: Random linear fountain LT-code(Luby, 98) Raptor-code(Shokrollahi, 01)

Page 8: Fountain Codes and implementation

A file is divided into K packets s1, s2, … sk, each packet is composed of a whole number of bits

At each clock cycle, labelled by n, the encoder generates K random bits {Gkn}

The encoded packet En is set to the bitwise sum (modulo 2) of the source packets for which Gkn is 1, which is:

K

kknkn GsE

1

Page 9: Fountain Codes and implementation

Let K=3, n=1k sk Gkn skGkn

1 1011 1 1011

2 1110 0 0000

3 0001 1 0001

1010000110111

K

kknkn GsE

Page 10: Fountain Codes and implementation

The generator matrix of a random linearcode and packetstransmission[Mack 05]

Page 11: Fountain Codes and implementation

A receiver collects N packets. Let us assume that he knows the generator

matrix Gkn by some means If N<K, the receiver has not got enough

information to recover the file If N=K, the receiver has 0.289 probability to

recover the file If N>K, the receiver can recover the file if

and only if a k-by-K invertible matrix exists in G, so that the receiver can compute G-1 and recover

K

knknk GEs

1

1

Page 12: Fountain Codes and implementation

Let N=K+L and the probability that a receiver can recover the original file is 1-δ, then for any K, the probability of failure of recovery is bounded by

The number of packets required to have probability 1-δ of success is

Pros: get arbitrarily close to the Shannon limit

Cons: Encoding complexity: Decoding complexity:

( ) 2 LL

/1log2K

)( 2k)( 3k

Is there any better solution with lower computational cost?

Page 13: Fountain Codes and implementation

Encoder Randomly choose the degree dn of the packet from a

degree distribution p(d); the appropriate choice of p depends on the source file size K

Choose uniformly at random d distinct input packets and set En equal to the bitwise sum (modulo 2) of those dn packets

The encoding process can be demonstrated by a graph in which each encoded packet is connected to the corresponding original packets {sn}, and the graph is sparse if the mean degree E(d) is greatly smaller than K.

Page 14: Fountain Codes and implementation

Decoder Recover s from E=sG, where G is the matrix

associated with graph, supposing that the receiver somehow knows G

G is much simpler than the generator matrix in random linear fountain and is determined by degree distribution p(d) and uniform distribution such that a simple way can be used to decoding by message passing.

Page 15: Fountain Codes and implementation

1) Find an encoded packet En that is connected to only one source packet sk (if there is no such encoded packet, this decoding algorithm halts at this point, and fails to recover all the source packets). Set sk = En

Substract sk from all encoded packets that are connected to sk so that En’ = En – sk

Remove all the edges connected to the source packet sk

2) Repeat (1) until all sk are determined.

Page 16: Fountain Codes and implementation

0

00

1

1

1

Take an example in which there are K=3 original packets s1,s2,s3 where each packet is just one bit for brevity. The receiver received four encoded packets E1,E2,E3,E4 = 1011 at the start of the algorithm.

s1 s2 s3

1 0 1 1

S1 = 1

S2 = 1

S3 = 0

Page 17: Fountain Codes and implementation

A small portion of encoded packets must have high degree

Majority packets must have low degree Thus, an appropriate degree distribution

should be chosen:

The cost of encoding and decoding:

Ideal Solition Distribution: for d = 2, 3, … k

)1(

1)(

/1)1(

dddp

Kp

)ln(kk

Page 18: Fountain Codes and implementation

Reliable Multicast Downloading in Parallel Point-to-Point Data Transmission One-to-Many TCP Distribution on Overlay Networks Video Streaming Other applications out of network: Storage

systems etc…

Page 19: Fountain Codes and implementation

Implementation of LT-code Encoding and decoding C/C++ Testify the computation complexity

Network application (If time permits) One to one transmission One to many transmission Test the recovery success ratio with different

number of packets loss during the transmission

Page 20: Fountain Codes and implementation

[1] D.J.C. MacKay, “Fountain Codes”, IEE Proceedings – Commun. Vol. 152, No 6, Dec 2005.

[2] Michael Luby, “LT Codes”, Proceedings of the 43rd Annual IEEE symposium on Foundations of Computer Science (FOCS’02)

[3] Michael Mitzenmacher, “Digital Fountains: A Survey and Look Forward”.