210 likes | 369 Views
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)
E N D
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) • 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
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
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
Raptor encoder • Generate precoding block from source block • Generate encoding symbols from precoding block Source block Precoding block ES ES ES ES ES ES ES ES ES ES
Source block LDPC Half Precoding Precoding block • 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 K S H
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
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: Average degree = 4.63
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]
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)
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
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
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
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
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)
Systematic Raptor encoder Intermediate Precoding block Raptor encoder Raptor decoder Source block Repair symbols K symbols K systematic triples R symbols R triples
Systematic Raptor decoder Intermediate Precoding block Source block Repair symbols • Use Raptor decoder to recover Intermediate Precoding block • From received source and repair symbols • Use Raptor encoder to recover missing source symbols from • Intermediate Precoding block
Systematic Raptor summary • Encoding and Decoding complexities somewhat higher • Decoding reception overhead/failure probability the same as for Raptor
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
IPR • Digital Fountain does have IPR rights to all that is described in this draft • Licensing on RAND terms
Proposal • Accept this as a RMT working group item