1 / 21

Raptor codes for reliable multicast object delivery

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)

Download Presentation

Raptor codes for reliable multicast object delivery

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation 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 ES ES ES ES ES ES ES ES

  6. 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

  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: 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 Intermediate Precoding block Raptor encoder Raptor decoder Source block Repair symbols K symbols K systematic triples R symbols R triples

  17. 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

  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

More Related