1 raptor codes for reliable multicast object delivery michael luby digital fountain
TRANSCRIPT
1
Raptor codes for reliable multicast object delivery
Michael Luby
Digital Fountain
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
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
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
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
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
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
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
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]
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)
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
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
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
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
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)
16
Systematic Raptor encoder
Source block
Intermediate Precoding block
Repair symbols
K symbolsK systematic triples
R symbolsR triples
Raptor decoder Raptor encoder
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
18
Systematic Raptor summary
Encoding and Decoding complexities somewhat higher Decoding reception overhead/failure probability the
same as for Raptor
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
20
IPR
Digital Fountain does have IPR rights to all that is described in this draft
Licensing on RAND terms
21
Proposal
Accept this as a RMT working group item