21
1 Raptor codes for reliable multicast object delivery Michael Luby Digital Fountain

Raptor codes for reliable multicast object delivery

  • Upload
    clovis

  • View
    36

  • Download
    0

Embed Size (px)

DESCRIPTION

Raptor codes for reliable multicast object delivery. Michael Luby Digital Fountain. Raptor codec overview. Can generate as many encoding symbols as desired from a source block, on the fly – rateless (called a fountain code in the Information Theory community) - PowerPoint PPT Presentation

Citation preview

Page 1: Raptor codes for reliable multicast object delivery

1

Raptor codes for reliable multicast object delivery

Michael Luby

Digital Fountain

Page 2: Raptor codes for reliable multicast object delivery

2

Raptor codec overview

Can generate as many encoding symbols as desired from a source block, on the fly – rateless (called a fountain code in the Information Theory community)

Can decode after the length of received encoding symbols is a very small amount above the source block length with very high probability, independent of loss patterns

Linear time encoding and decoding, independent of loss patterns

Page 3: Raptor codes for reliable multicast object delivery

3

Overview of draft

Raptor codec description Fully-Specified FEC scheme for object

delivery using Raptor codec

Systematic Raptor codec description Fully-Specified FEC scheme for object

delivery using systematic Raptor codec

Page 4: Raptor codes for reliable multicast object delivery

4

Raptor codec

Inputs• T is symbol size• K is the number of symbols in source block

Raptor encoder• Generate encoding symbols from source block

Raptor decoder• Generate source block from encoding symbols

Page 5: Raptor codes for reliable multicast object delivery

5

Raptor encoder

Generate precoding block from source block

Generate encoding symbols from precoding block

Source block

Precoding block

ES ES ESES ES ES ES ES ES ES

Page 6: Raptor codes for reliable multicast object delivery

6

Precoding

S ~ sqrt{2K} + 0.01*K H ~ 2log{K} L = K + S + H = number of precoding syms.

3*K XORS of symbols to generate LDPC 3*K XORS of symbols to generate Half 6*K XORS of symbols to generate precoding

block

Source block HalfLDPC

Precoding block

K S H

Page 7: Raptor codes for reliable multicast object delivery

7

Generators

RAND(X,i,M) – random number generator• The seed X is a two byte integer• The integer i selects a random generator• The integer M is the range of possible outputs• The result is a random integer in the range 0,

…,M-1

Page 8: Raptor codes for reliable multicast object delivery

8

Generators

DEG(v) – degree distribution generator• v is a random number in the range 0,…,220-1• The result is d(j), where j is the smallest index such that

f(j-1) ≤ v < f(j) in the following table:

j f(j) d(j)

0 0 --

1 10,241 1

2 491,582 2

3 712,794 3

4 831,695 4

5 948,446 10

6 1,032,189 11

7 220 40

Average degree = 4.63

Page 9: Raptor codes for reliable multicast object delivery

9

Generators

ENC(d,a,b) – encoding symbol generator• d is the number of src symbols XORed• a,b is used to choose the src symbols to XOR• Let L’ be the smallest prime ≥ L• Let C[0], C[1], …, C[L] be the precoding symbols• Let E be the resulting encoding symbol

• While (b ≥ L) b = b + a mod L’• E = C[b]• For i = 1,…,d-1:

– b = b + a mod L’; while (b ≥ L) b = b + a mod L’– E = E XOR C[b]

Page 10: Raptor codes for reliable multicast object delivery

10

Generating Encoding Symbols

Exact details FEC scheme specific Example

• X is a two byte ESI• E is resulting encoding symbol value

• d = DEG(RAND(X,0,220))• a = RAND(X,1,L’-1) + 1• b = RAND(X,2,L’)• E = ENC(d,a,b)

Page 11: Raptor codes for reliable multicast object delivery

11

Raptor decoder

Known symbol values• LDPC symbol and XOR of src symbols used to generate it = 0• Half symbol and XOR of src+LDPC symbols used to generate

it = 0• XOR of precoding symbols used to generate each encoding

symbol = enc symbol value Unknown symbol values

• Precoding symbol values Matrix relating unknowns to knowns is known Can solve for precoding symbol values iff matrix is

full rank Efficiency of decoding depends on the order of

Gaussian elimination A good order leads to very small decoding

complexity

Page 12: Raptor codes for reliable multicast object delivery

12

Raptor summary

Precoding complexity• XORS of bytes = 6∙source block length

Encoding symbol complexity• XORS of bytes = 4.63∙encoding length on average

Decoding complexity• XORS of bytes ~ 10 ∙source block length

Decoding reception overhead/failure probability• With 1% reception overhead ~ 10-3 failure probability• With 2% reception overhead ~ 10-6 failure probability

Page 13: Raptor codes for reliable multicast object delivery

13

Raptor object delivery – FEC scheme

OTI• The FEC Encoding ID• F is the object size in bytes• B is the maximum source block size in bytes• W is the maximum block size that fits into working memory

in bytes• P is the packet payload size in bytes

FEC Payload ID• SBN – two byte source block number• ESI – two byte encoding symbol identifier

Page 14: Raptor codes for reliable multicast object delivery

14

Raptor object delivery sender Based on F, B, W, P, describes the following

• The source block structure (based on FLUTE), i.e., the number of source blocks and the size of each source block

• N – the number of subblocks each source block is partitioned into

• T – the subsymbol size• N∙T is the source symbol size• G – the number of encoding symbols to place into each packet• G, N, T must satisfy P = G∙N∙T

Describes how to generate FEC Payload IDs (SBN, ESI pairs) for packets

Describes how to generate encoding symbols in packets based on FEC Payload IDs

• Exact description• Uses RAND, DEG, ENC functions

Page 15: Raptor codes for reliable multicast object delivery

15

Raptor object delivery sender

Small objects (F ≤ W)• Treated as one source block and no partitioning into

subblocks

Larger objects (W < F ≤ B)• Treated as one source block partitioned into more than

one subblock• Each subblock can be decoded at receiver separately• Protection is provided over entire source block (same

logical subsymbol from each subblock is in each packet)

Large objects (B < F)• Object is first partitioned into source blocks of size at

most B based on FLUTE partitioning algorithm• Each source block is treated independently (each packet

contains symbols from only one source block)

Page 16: Raptor codes for reliable multicast object delivery

16

Systematic Raptor encoder

Source block

Intermediate Precoding block

Repair symbols

K symbolsK systematic triples

R symbolsR triples

Raptor decoder Raptor encoder

Page 17: Raptor codes for reliable multicast object delivery

17

Systematic Raptor decoder

Intermediate Precoding block

Source block Repair symbols

• Use Raptor decoder to recover Intermediate Precoding blockFrom received source and repair symbols• Use Raptor encoder to recover missing source symbols fromIntermediate Precoding block

Page 18: Raptor codes for reliable multicast object delivery

18

Systematic Raptor summary

Encoding and Decoding complexities somewhat higher Decoding reception overhead/failure probability the

same as for Raptor

Page 19: Raptor codes for reliable multicast object delivery

19

Systematic Raptor object delivery FEC scheme

Similar to the Raptor object delivery scheme Uses systematic Raptor instead of Raptor Many small details different Two different types of packets

• Source packets containing source symbols• Repair packets containing repair symbols• May want to demultiplex based on higher level signaling

Page 20: Raptor codes for reliable multicast object delivery

20

IPR

Digital Fountain does have IPR rights to all that is described in this draft

Licensing on RAND terms

Page 21: Raptor codes for reliable multicast object delivery

21

Proposal

Accept this as a RMT working group item