summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc5053.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc5053.txt')
-rw-r--r--doc/rfc/rfc5053.txt2579
1 files changed, 2579 insertions, 0 deletions
diff --git a/doc/rfc/rfc5053.txt b/doc/rfc/rfc5053.txt
new file mode 100644
index 0000000..737e64b
--- /dev/null
+++ b/doc/rfc/rfc5053.txt
@@ -0,0 +1,2579 @@
+
+
+
+
+
+
+Network Working Group M. Luby
+Request for Comments: 5053 Digital Fountain
+Category: Standards Track A. Shokrollahi
+ EPFL
+ M. Watson
+ Digital Fountain
+ T. Stockhammer
+ Nomor Research
+ October 2007
+
+
+ Raptor Forward Error Correction Scheme for Object Delivery
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Abstract
+
+ This document describes a Fully-Specified Forward Error Correction
+ (FEC) scheme, corresponding to FEC Encoding ID 1, for the Raptor
+ forward error correction code and its application to reliable
+ delivery of data objects.
+
+ Raptor is a fountain code, i.e., as many encoding symbols as needed
+ can be generated by the encoder on-the-fly from the source symbols of
+ a source block of data. The decoder is able to recover the source
+ block from any set of encoding symbols only slightly more in number
+ than the number of source symbols.
+
+ The Raptor code described here is a systematic code, meaning that all
+ the source symbols are among the encoding symbols that can be
+ generated.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 1]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 3
+ 3. Formats and Codes . . . . . . . . . . . . . . . . . . . . . . 3
+ 3.1. FEC Payload IDs . . . . . . . . . . . . . . . . . . . . . 3
+ 3.2. FEC Object Transmission Information (OTI) . . . . . . . . 4
+ 3.2.1. Mandatory . . . . . . . . . . . . . . . . . . . . . . 4
+ 3.2.2. Common . . . . . . . . . . . . . . . . . . . . . . . . 4
+ 3.2.3. Scheme-Specific . . . . . . . . . . . . . . . . . . . 5
+ 4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 5
+ 4.1. Content Delivery Protocol Requirements . . . . . . . . . . 5
+ 4.2. Example Parameter Derivation Algorithm . . . . . . . . . . 6
+ 5. Raptor FEC Code Specification . . . . . . . . . . . . . . . . 8
+ 5.1. Definitions, Symbols, and Abbreviations . . . . . . . . . 8
+ 5.1.1. Definitions . . . . . . . . . . . . . . . . . . . . . 8
+ 5.1.2. Symbols . . . . . . . . . . . . . . . . . . . . . . . 9
+ 5.1.3. Abbreviations . . . . . . . . . . . . . . . . . . . . 11
+ 5.2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 11
+ 5.3. Object Delivery . . . . . . . . . . . . . . . . . . . . . 12
+ 5.3.1. Source Block Construction . . . . . . . . . . . . . . 12
+ 5.3.2. Encoding Packet Construction . . . . . . . . . . . . . 14
+ 5.4. Systematic Raptor Encoder . . . . . . . . . . . . . . . . 15
+ 5.4.1. Encoding Overview . . . . . . . . . . . . . . . . . . 15
+ 5.4.2. First Encoding Step: Intermediate Symbol Generation . 16
+ 5.4.3. Second Encoding Step: LT Encoding . . . . . . . . . . 20
+ 5.4.4. Generators . . . . . . . . . . . . . . . . . . . . . . 21
+ 5.5. Example FEC Decoder . . . . . . . . . . . . . . . . . . . 23
+ 5.5.1. General . . . . . . . . . . . . . . . . . . . . . . . 23
+ 5.5.2. Decoding a Source Block . . . . . . . . . . . . . . . 23
+ 5.6. Random Numbers . . . . . . . . . . . . . . . . . . . . . . 28
+ 5.6.1. The Table V0 . . . . . . . . . . . . . . . . . . . . . 28
+ 5.6.2. The Table V1 . . . . . . . . . . . . . . . . . . . . . 29
+ 5.7. Systematic Indices J(K) . . . . . . . . . . . . . . . . . 30
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . 43
+ 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43
+ 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 44
+ 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 44
+ 9.1. Normative References . . . . . . . . . . . . . . . . . . . 44
+ 9.2. Informative References . . . . . . . . . . . . . . . . . . 44
+
+
+
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 2]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+1. Introduction
+
+ This document specifies an FEC Scheme for the Raptor forward error
+ correction code for object delivery applications. The concept of an
+ FEC Scheme is defined in [RFC5052] and this document follows the
+ format prescribed there and uses the terminology of that document.
+ Raptor Codes were introduced in [Raptor]. For an overview, see, for
+ example, [CCNC].
+
+ The Raptor FEC Scheme is a Fully-Specified FEC Scheme corresponding
+ to FEC Encoding ID 1.
+
+ Raptor is a fountain code, i.e., as many encoding symbols as needed
+ can be generated by the encoder on-the-fly from the source symbols of
+ a block. The decoder is able to recover the source block from any
+ set of encoding symbols only slightly more in number than the number
+ of source symbols.
+
+ The code described in this document is a systematic code, that is,
+ the original source symbols can be sent unmodified from sender to
+ receiver, as well as a number of repair symbols. For more background
+ on the use of Forward Error Correction codes in reliable multicast,
+ see [RFC3453].
+
+ The code described here is identical to that described in [MBMS].
+
+2. Requirements Notation
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in [RFC2119].
+
+3. Formats and Codes
+
+3.1. FEC Payload IDs
+
+ The FEC Payload ID MUST be a 4 octet field defined as follows:
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Source Block Number | Encoding Symbol ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 1: FEC Payload ID format
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 3]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ Source Block Number (SBN), (16 bits): An integer identifier for
+ the source block that the encoding symbols within the packet
+ relate to.
+
+ Encoding Symbol ID (ESI), (16 bits): An integer identifier for the
+ encoding symbols within the packet.
+
+ The interpretation of the Source Block Number and Encoding Symbol
+ Identifier is defined in Section 5.
+
+3.2. FEC Object Transmission Information (OTI)
+
+3.2.1. Mandatory
+
+ The value of the FEC Encoding ID MUST be 1 (one), as assigned by IANA
+ (see Section 7).
+
+3.2.2. Common
+
+ The Common FEC Object Transmission Information elements used by this
+ FEC Scheme are:
+
+ - Transfer Length (F)
+
+ - Encoding Symbol Length (T)
+
+ The Transfer Length is a non-negative integer less than 2^^45. The
+ Encoding Symbol Length is a non-negative integer less than 2^^16.
+
+ The encoded Common FEC Object Transmission Information format is
+ shown in Figure 2.
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Transfer Length |
+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Encoding Symbol Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 2: Encoded Common FEC OTI for Raptor FEC Scheme
+
+ NOTE 1: The limit of 2^^45 on the transfer length is a consequence
+ of the limitation on the symbol size to 2^^16-1, the limitation on
+ the number of symbols in a source block to 2^^13, and the
+
+
+
+
+Luby, et al. Standards Track [Page 4]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ limitation on the number of source blocks to 2^^16. However, the
+ Transfer Length is encoded as a 48-bit field for simplicity.
+
+3.2.3. Scheme-Specific
+
+ The following parameters are carried in the Scheme-Specific FEC
+ Object Transmission Information element for this FEC Scheme:
+
+ - The number of source blocks (Z)
+
+ - The number of sub-blocks (N)
+
+ - A symbol alignment parameter (Al)
+
+ These parameters are all non-negative integers. The encoded Scheme-
+ specific Object Transmission Information is a 4-octet field
+ consisting of the parameters Z (2 octets), N (1 octet), and Al (1
+ octet) as shown in Figure 3.
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Z | N | Al |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 3: Encoded Scheme-Specific FEC Object Transmission Information
+
+ The encoded FEC Object Transmission Information is a 14-octet field
+ consisting of the concatenation of the encoded Common FEC Object
+ Transmission Information and the encoded Scheme-Specific FEC Object
+ Transmission Information.
+
+ These three parameters define the source block partitioning as
+ described in Section 5.3.1.2.
+
+4. Procedures
+
+4.1. Content Delivery Protocol Requirements
+
+ This section describes the information exchange between the Raptor
+ FEC Scheme and any Content Delivery Protocol (CDP) that makes use of
+ the Raptor FEC Scheme for object delivery.
+
+ The Raptor encoder and decoder for object delivery require the
+ following information from the CDP:
+
+ - The transfer length of the object, F, in bytes
+
+
+
+
+Luby, et al. Standards Track [Page 5]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ - A symbol alignment parameter, Al
+
+ - The symbol size, T, in bytes, which MUST be a multiple of Al
+
+ - The number of source blocks, Z
+
+ - The number of sub-blocks in each source block, N
+
+ The Raptor encoder for object delivery additionally requires:
+
+ - the object to be encoded, F bytes
+
+ The Raptor encoder supplies the CDP with the following information
+ for each packet to be sent:
+
+ - Source Block Number (SBN)
+
+ - Encoding Symbol ID (ESI)
+
+ - Encoding symbol(s)
+
+ The CDP MUST communicate this information to the receiver.
+
+4.2. Example Parameter Derivation Algorithm
+
+ This section provides recommendations for the derivation of the three
+ transport parameters, T, Z, and N. This recommendation is based on
+ the following input parameters:
+
+ - F the transfer length of the object, in bytes
+
+ - W a target on the sub-block size, in bytes
+
+ - P the maximum packet payload size, in bytes, which is assumed to
+ be a multiple of Al
+
+ - Al the symbol alignment parameter, in bytes
+
+ - Kmax the maximum number of source symbols per source block.
+
+ Note: Section 5.1.2 defines Kmax to be 8192.
+
+ - Kmin a minimum target on the number of symbols per source block
+
+ - Gmax a maximum target number of symbols per packet
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 6]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ Based on the above inputs, the transport parameters T, Z, and N are
+ calculated as follows:
+
+ Let
+
+ G = min{ceil(P*Kmin/F), P/Al, Gmax}
+
+ T = floor(P/(Al*G))*Al
+
+ Kt = ceil(F/T)
+
+ Z = ceil(Kt/Kmax)
+
+ N = min{ceil(ceil(Kt/Z)*T/W), T/Al}
+
+ The value G represents the maximum number of symbols to be
+ transported in a single packet. The value Kt is the total number of
+ symbols required to represent the source data of the object. The
+ values of G and N derived above should be considered as lower bounds.
+ It may be advantageous to increase these values, for example, to the
+ nearest power of two. In particular, the above algorithm does not
+ guarantee that the symbol size, T, divides the maximum packet size,
+ P, and so it may not be possible to use the packets of size exactly
+ P. If, instead, G is chosen to be a value that divides P/Al, then
+ the symbol size, T, will be a divisor of P and packets of size P can
+ be used.
+
+ The algorithm above and that defined in Section 5.3.1.2 ensure that
+ the sub-symbol sizes are a multiple of the symbol alignment
+ parameter, Al. This is useful because the XOR operations used for
+ encoding and decoding are generally performed several bytes at a
+ time, for example, at least 4 bytes at a time on a 32-bit processor.
+ Thus, the encoding and decoding can be performed faster if the sub-
+ symbol sizes are a multiple of this number of bytes.
+
+ Recommended settings for the input parameters, Al, Kmin, and Gmax are
+ as follows: Al = 4, Kmin = 1024, Gmax = 10.
+
+ The parameter W can be used to generate encoded data that can be
+ decoded efficiently with limited working memory at the decoder. Note
+ that the actual maximum decoder memory requirement for a given value
+ of W depends on the implementation, but it is possible to implement
+ decoding using working memory only slightly larger than W.
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 7]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+5. Raptor FEC Code Specification
+
+5.1. Definitions, Symbols, and Abbreviations
+
+5.1.1. Definitions
+
+ For the purposes of this specification, the following terms and
+ definitions apply.
+
+ Source block: a block of K source symbols that are considered
+ together for Raptor encoding purposes.
+
+ Source symbol: the smallest unit of data used during the encoding
+ process. All source symbols within a source block have the same
+ size.
+
+ Encoding symbol: a symbol that is included in a data packet. The
+ encoding symbols consist of the source symbols and the repair
+ symbols. Repair symbols generated from a source block have the
+ same size as the source symbols of that source block.
+
+ Systematic code: a code in which all the source symbols may be
+ included as part of the encoding symbols sent for a source block.
+
+ Repair symbol: the encoding symbols sent for a source block that
+ are not the source symbols. The repair symbols are generated
+ based on the source symbols.
+
+ Intermediate symbols: symbols generated from the source symbols
+ using an inverse encoding process . The repair symbols are then
+ generated directly from the intermediate symbols. The encoding
+ symbols do not include the intermediate symbols, i.e.,
+ intermediate symbols are not included in data packets.
+
+ Symbol: a unit of data. The size, in bytes, of a symbol is known
+ as the symbol size.
+
+ Encoding symbol group: a group of encoding symbols that are sent
+ together, i.e., within the same packet whose relationship to the
+ source symbols can be derived from a single Encoding Symbol ID.
+
+ Encoding Symbol ID: information that defines the relationship
+ between the symbols of an encoding symbol group and the source
+ symbols.
+
+ Encoding packet: data packets that contain encoding symbols
+
+
+
+
+
+Luby, et al. Standards Track [Page 8]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ Sub-block: a source block is sometimes broken into sub-blocks,
+ each of which is sufficiently small to be decoded in working
+ memory. For a source block consisting of K source symbols, each
+ sub-block consists of K sub-symbols, each symbol of the source
+ block being composed of one sub-symbol from each sub-block.
+
+ Sub-symbol: part of a symbol. Each source symbol is composed of
+ as many sub-symbols as there are sub-blocks in the source block.
+
+ Source packet: data packets that contain source symbols.
+
+ Repair packet: data packets that contain repair symbols.
+
+5.1.2. Symbols
+
+ i, j, x, h, a, b, d, v, m represent positive integers.
+
+ ceil(x) denotes the smallest positive integer that is greater than
+ or equal to x.
+
+ choose(i,j) denotes the number of ways j objects can be chosen from
+ among i objects without repetition.
+
+ floor(x) denotes the largest positive integer that is less than or
+ equal to x.
+
+ i % j denotes i modulo j.
+
+ X ^ Y denotes, for equal-length bit strings X and Y, the bitwise
+ exclusive-or of X and Y.
+
+ Al denotes a symbol alignment parameter. Symbol and sub-symbol
+ sizes are restricted to be multiples of Al.
+
+ A denotes a matrix over GF(2).
+
+ Transpose[A] denotes the transposed matrix of matrix A.
+
+ A^^-1 denotes the inverse matrix of matrix A.
+
+ K denotes the number of symbols in a single source block.
+
+ Kmax denotes the maximum number of source symbols that can be in a
+ single source block. Set to 8192.
+
+ L denotes the number of pre-coding symbols for a single source
+ block.
+
+
+
+
+Luby, et al. Standards Track [Page 9]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ S denotes the number of LDPC symbols for a single source block.
+
+ H denotes the number of Half symbols for a single source block.
+
+ C denotes an array of intermediate symbols, C[0], C[1], C[2],...,
+ C[L-1].
+
+ C' denotes an array of source symbols, C'[0], C'[1], C'[2],...,
+ C'[K-1].
+
+ X a non-negative integer value
+
+ V0, V1 two arrays of 4-byte integers, V0[0], V0[1],..., V0[255] and
+ V1[0], V1[1],..., V1[255]
+
+ Rand[X, i, m] a pseudo-random number generator
+
+ Deg[v] a degree generator
+
+ LTEnc[K, C ,(d, a, b)] a LT encoding symbol generator
+
+ Trip[K, X] a triple generator function
+
+ G the number of symbols within an encoding symbol group
+
+ GF(n) the Galois field with n elements.
+
+ N the number of sub-blocks within a source block
+
+ T the symbol size in bytes. If the source block is partitioned
+ into sub-blocks, then T = T'*N.
+
+ T' the sub-symbol size, in bytes. If the source block is not
+ partitioned into sub-blocks, then T' is not relevant.
+
+ F the transfer length of an object, in bytes
+
+ I the sub-block size in bytes
+
+ P for object delivery, the payload size of each packet, in bytes,
+ that is used in the recommended derivation of the object
+ delivery transport parameters.
+
+ Q Q = 65521, i.e., Q is the largest prime smaller than 2^^16
+
+ Z the number of source blocks, for object delivery
+
+ J(K) the systematic index associated with K
+
+
+
+Luby, et al. Standards Track [Page 10]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ I_S denotes the SxS identity matrix.
+
+ 0_SxH denotes the SxH zero matrix.
+
+ a ^^ b a raised to the power b
+
+5.1.3. Abbreviations
+
+ For the purposes of the present document, the following abbreviations
+ apply:
+
+ ESI Encoding Symbol ID
+
+ LDPC Low Density Parity Check
+
+ LT Luby Transform
+
+ SBN Source Block Number
+
+ SBL Source Block Length (in units of symbols)
+
+5.2. Overview
+
+ The principal component of the systematic Raptor code is the basic
+ encoder described in Section 5.4. First, it is described how to
+ derive values for a set of intermediate symbols from the original
+ source symbols such that knowledge of the intermediate symbols is
+ sufficient to reconstruct the source symbols. Secondly, the encoder
+ produces repair symbols, which are each the exclusive OR of a number
+ of the intermediate symbols. The encoding symbols are the
+ combination of the source and repair symbols. The repair symbols are
+ produced in such a way that the intermediate symbols, and therefore
+ also the source symbols, can be recovered from any sufficiently large
+ set of encoding symbols.
+
+ This document specifies the systematic Raptor code encoder. A number
+ of possible decoding algorithms are possible. An efficient decoding
+ algorithm is provided in Section 5.5.
+
+ The construction of the intermediate and repair symbols is based in
+ part on a pseudo-random number generator described in
+ Section 5.4.4.1. This generator is based on a fixed set of 512
+ random numbers that MUST be available to both sender and receiver.
+ These are provided in Section 5.6.
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 11]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ Finally, the construction of the intermediate symbols from the source
+ symbols is governed by a 'systematic index', values of which are
+ provided in Section 5.7 for source block sizes from 4 source symbols
+ to Kmax = 8192 source symbols.
+
+5.3. Object Delivery
+
+5.3.1. Source Block Construction
+
+5.3.1.1. General
+
+ In order to apply the Raptor encoder to a source object, the object
+ may be broken into Z >= 1 blocks, known as source blocks. The Raptor
+ encoder is applied independently to each source block. Each source
+ block is identified by a unique integer Source Block Number (SBN),
+ where the first source block has SBN zero, the second has SBN one,
+ etc. Each source block is divided into a number, K, of source
+ symbols of size T bytes each. Each source symbol is identified by a
+ unique integer Encoding Symbol Identifier (ESI), where the first
+ source symbol of a source block has ESI zero, the second has ESI one,
+ etc.
+
+ Each source block with K source symbols is divided into N >= 1 sub-
+ blocks, which are small enough to be decoded in the working memory.
+ Each sub-block is divided into K sub-symbols of size T'.
+
+ Note that the value of K is not necessarily the same for each source
+ block of an object and the value of T' may not necessarily be the
+ same for each sub-block of a source block. However, the symbol size
+ T is the same for all source blocks of an object and the number of
+ symbols, K, is the same for every sub-block of a source block. Exact
+ partitioning of the object into source blocks and sub-blocks is
+ described in Section 5.3.1.2 below.
+
+5.3.1.2. Source Block and Sub-Block Partitioning
+
+ The construction of source blocks and sub-blocks is determined based
+ on five input parameters, F, Al, T, Z, and N, and a function
+ Partition[]. The five input parameters are defined as follows:
+
+ - F the transfer length of the object, in bytes
+
+ - Al a symbol alignment parameter, in bytes
+
+ - T the symbol size, in bytes, which MUST be a multiple of Al
+
+ - Z the number of source blocks
+
+
+
+
+Luby, et al. Standards Track [Page 12]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ - N the number of sub-blocks in each source block
+
+ These parameters MUST be set so that ceil(ceil(F/T)/Z) <= Kmax.
+ Recommendations for derivation of these parameters are provided in
+ Section 4.2.
+
+ The function Partition[] takes a pair of integers (I, J) as input and
+ derives four integers (IL, IS, JL, JS) as output. Specifically, the
+ value of Partition[I, J] is a sequence of four integers (IL, IS, JL,
+ JS), where IL = ceil(I/J), IS = floor(I/J), JL = I - IS * J, and JS =
+ J - JL. Partition[] derives parameters for partitioning a block of
+ size I into J approximately equal-sized blocks. Specifically, JL
+ blocks of length IL and JS blocks of length IS.
+
+ The source object MUST be partitioned into source blocks and sub-
+ blocks as follows:
+
+ Let
+
+ Kt = ceil(F/T)
+
+ (KL, KS, ZL, ZS) = Partition[Kt, Z]
+
+ (TL, TS, NL, NS) = Partition[T/Al, N]
+
+ Then, the object MUST be partitioned into Z = ZL + ZS contiguous
+ source blocks, the first ZL source blocks each having length KL*T
+ bytes, and the remaining ZS source blocks each having KS*T bytes.
+
+ If Kt*T > F, then for encoding purposes, the last symbol MUST be
+ padded at the end with Kt*T - F zero bytes.
+
+ Next, each source block MUST be divided into N = NL + NS contiguous
+ sub-blocks, the first NL sub-blocks each consisting of K contiguous
+ sub-symbols of size of TL*Al and the remaining NS sub-blocks each
+ consisting of K contiguous sub-symbols of size of TS*Al. The symbol
+ alignment parameter Al ensures that sub-symbols are always a multiple
+ of Al bytes.
+
+ Finally, the m-th symbol of a source block consists of the
+ concatenation of the m-th sub-symbol from each of the N sub-blocks.
+ Note that this implies that when N > 1, then a symbol is NOT a
+ contiguous portion of the object.
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 13]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+5.3.2. Encoding Packet Construction
+
+ Each encoding packet contains the following information:
+
+ - Source Block Number (SBN)
+
+ - Encoding Symbol ID (ESI)
+
+ - encoding symbol(s)
+
+ Each source block is encoded independently of the others. Source
+ blocks are numbered consecutively from zero.
+
+ Encoding Symbol ID values from 0 to K-1 identify the source symbols
+ of a source block in sequential order, where K is the number of
+ symbols in the source block. Encoding Symbol IDs from K onwards
+ identify repair symbols.
+
+ Each encoding packet either consists entirely of source symbols
+ (source packet) or entirely of repair symbols (repair packet). A
+ packet may contain any number of symbols from the same source block.
+ In the case that the last source symbol in a source packet includes
+ padding bytes added for FEC encoding purposes, then these bytes need
+ not be included in the packet. Otherwise, only whole symbols MUST be
+ included.
+
+ The Encoding Symbol ID, X, carried in each source packet is the
+ Encoding Symbol ID of the first source symbol carried in that packet.
+ The subsequent source symbols in the packet have Encoding Symbol IDs,
+ X+1 to X+G-1, in sequential order, where G is the number of symbols
+ in the packet.
+
+ Similarly, the Encoding Symbol ID, X, placed into a repair packet is
+ the Encoding Symbol ID of the first repair symbol in the repair
+ packet and the subsequent repair symbols in the packet have Encoding
+ Symbol IDs X+1 to X+G-1 in sequential order, where G is the number of
+ symbols in the packet.
+
+ Note that it is not necessary for the receiver to know the total
+ number of repair packets.
+
+ Associated with each symbol is a triple of integers (d, a, b).
+
+ The G repair symbol triples (d[0], a[0], b[0]),..., (d[G-1], a[G-1],
+ b[G-1]) for the repair symbols placed into a repair packet with ESI X
+ are computed using the Triple generator defined in Section 5.4.4.4 as
+ follows:
+
+
+
+
+Luby, et al. Standards Track [Page 14]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ For each i = 0, ..., G-1, (d[i], a[i], b[i]) = Trip[K,X+i]
+
+ The G repair symbols to be placed in repair packet with ESI X are
+ calculated based on the repair symbol triples, as described in
+ Section 5.4, using the intermediate symbols C and the LT encoder
+ LTEnc[K, C, (d[i], a[i], b[i])].
+
+5.4. Systematic Raptor Encoder
+
+5.4.1. Encoding Overview
+
+ The systematic Raptor encoder is used to generate repair symbols from
+ a source block that consists of K source symbols.
+
+ Symbols are the fundamental data units of the encoding and decoding
+ process. For each source block (sub-block), all symbols (sub-
+ symbols) are the same size. The atomic operation performed on
+ symbols (sub-symbols) for both encoding and decoding is the
+ exclusive-or operation.
+
+ Let C'[0],..., C'[K-1] denote the K source symbols.
+
+ Let C[0],..., C[L-1] denote L intermediate symbols.
+
+ The first step of encoding is to generate a number, L > K, of
+ intermediate symbols from the K source symbols. In this step, K
+ source symbol triples (d[0], a[0], b[0]), ..., (d[K-1], a[K-1],
+ b[K-1]) are generated using the Trip[] generator as described in
+ Section 5.4.2.2. The K source symbol triples are associated with the
+ K source symbols and are then used to determine the L intermediate
+ symbols C[0],..., C[L-1] from the source symbols using an inverse
+ encoding process. This process can be realized by a Raptor decoding
+ process.
+
+ Certain "pre-coding relationships" MUST hold within the L
+ intermediate symbols. Section 5.4.2.3 describes these relationships
+ and how the intermediate symbols are generated from the source
+ symbols.
+
+ Once the intermediate symbols have been generated, repair symbols are
+ produced and one or more repair symbols are placed as a group into a
+ single data packet. Each repair symbol group is associated with an
+ Encoding Symbol ID (ESI) and a number, G, of repair symbols. The ESI
+ is used to generate a triple of three integers, (d, a, b) for each
+ repair symbol, again using the Trip[] generator as described in
+ Section 5.4.4.4. Then, each (d,a,b)-triple is used to generate the
+
+
+
+
+
+Luby, et al. Standards Track [Page 15]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ corresponding repair symbol from the intermediate symbols using the
+ LTEnc[K, C[0],..., C[L-1], (d,a,b)] generator described in
+ Section 5.4.4.3.
+
+5.4.2. First Encoding Step: Intermediate Symbol Generation
+
+5.4.2.1. General
+
+ The first encoding step is a pre-coding step to generate the L
+ intermediate symbols C[0], ..., C[L-1] from the source symbols C'[0],
+ ..., C'[K-1]. The intermediate symbols are uniquely defined by two
+ sets of constraints:
+
+ 1. The intermediate symbols are related to the source symbols by
+ a set of source symbol triples. The generation of the source
+ symbol triples is defined in Section 5.4.2.2 using the Trip[]
+ generator described in Section 5.4.4.4.
+
+ 2. A set of pre-coding relationships hold within the intermediate
+ symbols themselves. These are defined in Section 5.4.2.3.
+
+ The generation of the L intermediate symbols is then defined in
+ Section 5.4.2.4
+
+5.4.2.2. Source Symbol Triples
+
+ Each of the K source symbols is associated with a triple (d[i], a[i],
+ b[i]) for 0 <= i < K. The source symbol triples are determined using
+ the Triple generator defined in Section 5.4.4.4 as:
+
+ For each i, 0 <= i < K
+
+ (d[i], a[i], b[i]) = Trip[K, i]
+
+5.4.2.3. Pre-Coding Relationships
+
+ The pre-coding relationships amongst the L intermediate symbols are
+ defined by expressing the last L-K intermediate symbols in terms of
+ the first K intermediate symbols.
+
+ The last L-K intermediate symbols C[K],...,C[L-1] consist of S LDPC
+ symbols and H Half symbols The values of S and H are determined from
+ K as described below. Then L = K+S+H.
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 16]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ Let
+
+ X be the smallest positive integer such that X*(X-1) >= 2*K.
+
+ S be the smallest prime integer such that S >= ceil(0.01*K) + X
+
+ H be the smallest integer such that choose(H,ceil(H/2)) >= K + S
+
+ H' = ceil(H/2)
+
+ L = K+S+H
+
+ C[0],...,C[K-1] denote the first K intermediate symbols
+
+ C[K],...,C[K+S-1] denote the S LDPC symbols, initialised to zero
+
+ C[K+S],...,C[L-1] denote the H Half symbols, initialised to zero
+
+ The S LDPC symbols are defined to be the values of C[K],...,C[K+S-1]
+ at the end of the following process:
+
+ For i = 0,...,K-1 do
+
+ a = 1 + (floor(i/S) % (S-1))
+
+ b = i % S
+
+ C[K + b] = C[K + b] ^ C[i]
+
+ b = (b + a) % S
+
+ C[K + b] = C[K + b] ^ C[i]
+
+ b = (b + a) % S
+
+ C[K + b] = C[K + b] ^ C[i]
+
+ The H Half symbols are defined as follows:
+
+ Let
+
+ g[i] = i ^ (floor(i/2)) for all positive integers i
+
+ Note: g[i] is the Gray sequence, in which each element differs
+ from the previous one in a single bit position
+
+ m[k] denote the subsequence of g[.] whose elements have exactly k
+ non-zero bits in their binary representation.
+
+
+
+Luby, et al. Standards Track [Page 17]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ m[j,k] denote the jth element of the sequence m[k], where j=0, 1,
+ 2, ...
+
+ Then, the Half symbols are defined as the values of C[K+S],...,C[L-1]
+ after the following process:
+
+ For h = 0,...,H-1 do
+
+ For j = 0,...,K+S-1 do
+
+ If bit h of m[j,H'] is equal to 1 then C[h+K+S] = C[h+K+S] ^
+ C[j].
+
+5.4.2.4. Intermediate Symbols
+
+5.4.2.4.1. Definition
+
+ Given the K source symbols C'[0], C'[1],..., C'[K-1] the L
+ intermediate symbols C[0], C[1],..., C[L-1] are the uniquely defined
+ symbol values that satisfy the following conditions:
+
+ 1. The K source symbols C'[0], C'[1],..., C'[K-1] satisfy the K
+ constraints
+
+ C'[i] = LTEnc[K, (C[0],..., C[L-1]), (d[i], a[i], b[i])], for
+ all i, 0 <= i < K.
+
+ 2. The L intermediate symbols C[0], C[1],..., C[L-1] satisfy the
+ pre-coding relationships defined in Section 5.4.2.3.
+
+5.4.2.4.2. Example Method for Calculation of Intermediate Symbols
+
+ This subsection describes a possible method for calculation of the L
+ intermediate symbols C[0], C[1],..., C[L-1] satisfying the
+ constraints in Section 5.4.2.4.1.
+
+ The 'generator matrix' for a code that generates N output symbols
+ from K input symbols is an NxK matrix over GF(2), where each row
+ corresponds to one of the output symbols and each column to one of
+ the input symbols and where the ith output symbol is equal to the sum
+ of those input symbols whose column contains a non-zero entry in row
+ i.
+
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 18]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ Then, the L intermediate symbols can be calculated as follows:
+
+ Let
+
+ C denote the column vector of the L intermediate symbols, C[0],
+ C[1],..., C[L-1].
+
+ D denote the column vector consisting of S+H zero symbols followed
+ by the K source symbols C'[0], C'[1], ..., C'[K-1]
+
+ Then the above constraints define an LxL matrix over GF(2), A, such
+ that:
+
+ A*C = D
+
+ The matrix A can be constructed as follows:
+
+ Let:
+
+ G_LDPC be the S x K generator matrix of the LDPC symbols. So,
+
+ G_LDPC * Transpose[(C[0],...., C[K-1])] = Transpose[(C[K], ...,
+ C[K+S-1])]
+
+ G_Half be the H x (K+S) generator matrix of the Half symbols, So,
+
+ G_Half * Transpose[(C[0], ..., C[S+K-1])] = Transpose[(C[K+S],
+ ..., C[K+S+H-1])]
+
+ I_S be the S x S identity matrix
+
+ I_H be the H x H identity matrix
+
+ 0_SxH be the S x H zero matrix
+
+ G_LT be the KxL generator matrix of the encoding symbols generated
+ by the LT Encoder. So,
+
+ G_LT * Transpose[(C[0], ..., C[L-1])] =
+ Transpose[(C'[0],C'[1],...,C'[K-1])]
+
+ i.e., G_LT(i,j) = 1 if and only if C[j] is included in the
+ symbols that are XORed to produce LTEnc[K, (C[0], ..., C[L-1]),
+ (d[i], a[i], b[i])].
+
+ Then:
+
+ The first S rows of A are equal to G_LDPC | I_S | 0_SxH.
+
+
+
+Luby, et al. Standards Track [Page 19]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ The next H rows of A are equal to G_Half | I_H.
+
+ The remaining K rows of A are equal to G_LT.
+
+ The matrix A is depicted in Figure 4 below:
+
+ K S H
+ +-----------------------+-------+-------+
+ | | | |
+ S | G_LDPC | I_S | 0_SxH |
+ | | | |
+ +-----------------------+-------+-------+
+ | | |
+ H | G_Half | I_H |
+ | | |
+ +-------------------------------+-------+
+ | |
+ | |
+ K | G_LT |
+ | |
+ | |
+ +---------------------------------------+
+
+ Figure 4: The matrix A
+
+ The intermediate symbols can then be calculated as:
+
+ C = (A^^-1)*D
+
+ The source symbol triples are generated such that for any K matrix, A
+ has full rank and is therefore invertible. This calculation can be
+ realized by applying a Raptor decoding process to the K source
+ symbols C'[0], C'[1],..., C'[K-1] to produce the L intermediate
+ symbols C[0], C[1],..., C[L-1].
+
+ To efficiently generate the intermediate symbols from the source
+ symbols, it is recommended that an efficient decoder implementation
+ such as that described in Section 5.5 be used. The source symbol
+ triples are designed to facilitate efficient decoding of the source
+ symbols using that algorithm.
+
+5.4.3. Second Encoding Step: LT Encoding
+
+ In the second encoding step, the repair symbol with ESI X is
+ generated by applying the generator LTEnc[K, (C[0], C[1],...,
+ C[L-1]), (d, a, b)] defined in Section 5.4.4.3 to the L intermediate
+ symbols C[0], C[1],..., C[L-1] using the triple (d, a, b)=Trip[K,X]
+ generated according to Section 5.3.2
+
+
+
+Luby, et al. Standards Track [Page 20]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+5.4.4. Generators
+
+5.4.4.1. Random Generator
+
+ The random number generator Rand[X, i, m] is defined as follows,
+ where X is a non-negative integer, i is a non-negative integer, and m
+ is a positive integer and the value produced is an integer between 0
+ and m-1. Let V0 and V1 be arrays of 256 entries each, where each
+ entry is a 4-byte unsigned integer. These arrays are provided in
+ Section 5.6.
+
+ Then,
+
+ Rand[X, i, m] = (V0[(X + i) % 256] ^ V1[(floor(X/256)+ i) % 256])
+ % m
+
+5.4.4.2. Degree Generator
+
+ The degree generator Deg[v] is defined as follows, where v is an
+ integer that is at least 0 and less than 2^^20 = 1048576.
+
+ In Table 1, find the index j such that f[j-1] <= v < f[j]
+
+ Then, Deg[v] = d[j]
+
+ +---------+---------+------+
+ | Index j | f[j] | d[j] |
+ +---------+---------+------+
+ | 0 | 0 | -- |
+ | 1 | 10241 | 1 |
+ | 2 | 491582 | 2 |
+ | 3 | 712794 | 3 |
+ | 4 | 831695 | 4 |
+ | 5 | 948446 | 10 |
+ | 6 | 1032189 | 11 |
+ | 7 | 1048576 | 40 |
+ +---------+---------+------+
+
+ Table 1: Defines the degree distribution for encoding symbols
+
+5.4.4.3. LT Encoding Symbol Generator
+
+ The encoding symbol generator LTEnc[K, (C[0], C[1],..., C[L-1]), (d,
+ a, b)] takes the following inputs:
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 21]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ K is the number of source symbols (or sub-symbols) for the source
+ block (sub-block). Let L be derived from K as described in
+ Section 5.4.2.3, and let L' be the smallest prime integer greater
+ than or equal to L.
+
+ (C[0], C[1],..., C[L-1]) is the array of L intermediate symbols
+ (sub-symbols) generated as described in Section 5.4.2.4.
+
+ (d, a, b) is a source triple determined using the Triple generator
+ defined in Section 5.4.4.4, whereby
+
+ d is an integer denoting an encoding symbol degree
+
+ a is an integer between 1 and L'-1 inclusive
+
+ b is an integer between 0 and L'-1 inclusive
+
+ The encoding symbol generator produces a single encoding symbol as
+ output, according to the following algorithm:
+
+ While (b >= L) do b = (b + a) % L'
+
+ Let result = C[b].
+
+ For j = 1,...,min(d-1,L-1) do
+
+ b = (b + a) % L'
+
+ While (b >= L) do b = (b + a) % L'
+
+ result = result ^ C[b]
+
+ Return result
+
+5.4.4.4. Triple Generator
+
+ The triple generator Trip[K,X] takes the following inputs:
+
+ K - The number of source symbols
+
+ X - An encoding symbol ID
+
+ Let
+
+ L be determined from K as described in Section 5.4.2.3
+
+ L' be the smallest prime that is greater than or equal to L
+
+
+
+
+Luby, et al. Standards Track [Page 22]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ Q = 65521, the largest prime smaller than 2^^16.
+
+ J(K) be the systematic index associated with K, as defined in
+ Section 5.7.
+
+ The output of the triple generator is a triple, (d, a, b) determined
+ as follows:
+
+ A = (53591 + J(K)*997) % Q
+
+ B = 10267*(J(K)+1) % Q
+
+ Y = (B + X*A) % Q
+
+ v = Rand[Y, 0, 2^^20]
+
+ d = Deg[v]
+
+ a = 1 + Rand[Y, 1, L'-1]
+
+ b = Rand[Y, 2, L']
+
+5.5. Example FEC Decoder
+
+5.5.1. General
+
+ This section describes an efficient decoding algorithm for the Raptor
+ codes described in this specification. Note that each received
+ encoding symbol can be considered as the value of an equation amongst
+ the intermediate symbols. From these simultaneous equations, and the
+ known pre-coding relationships amongst the intermediate symbols, any
+ algorithm for solving simultaneous equations can successfully decode
+ the intermediate symbols and hence the source symbols. However, the
+ algorithm chosen has a major effect on the computational efficiency
+ of the decoding.
+
+5.5.2. Decoding a Source Block
+
+5.5.2.1. General
+
+ It is assumed that the decoder knows the structure of the source
+ block it is to decode, including the symbol size, T, and the number K
+ of symbols in the source block.
+
+ From the algorithms described in Section 5.4, the Raptor decoder can
+ calculate the total number L = K+S+H of pre-coding symbols and
+ determine how they were generated from the source block to be
+ decoded. In this description, it is assumed that the received
+
+
+
+Luby, et al. Standards Track [Page 23]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ encoding symbols for the source block to be decoded are passed to the
+ decoder. Note that, as described in Section 5.3.2, the last source
+ symbol of a source packet may have included padding bytes added for
+ FEC encoding purposes. These padding bytes may not be actually
+ included in the packet sent and so must be reinserted at the received
+ before passing the symbol to the decoder.
+
+ For each such encoding symbol, it is assumed that the number and set
+ of intermediate symbols whose exclusive-or is equal to the encoding
+ symbol is also passed to the decoder. In the case of source symbols,
+ the source symbol triples described in Section 5.4.2.2 indicate the
+ number and set of intermediate symbols that sum to give each source
+ symbol.
+
+ Let N >= K be the number of received encoding symbols for a source
+ block and let M = S+H+N. The following M by L bit matrix A can be
+ derived from the information passed to the decoder for the source
+ block to be decoded. Let C be the column vector of the L
+ intermediate symbols, and let D be the column vector of M symbols
+ with values known to the receiver, where the first S+H of the M
+ symbols are zero-valued symbols that correspond to LDPC and Half
+ symbols (these are check symbols for the LDPC and Half symbols, and
+ not the LDPC and Half symbols themselves), and the remaining N of the
+ M symbols are the received encoding symbols for the source block.
+ Then, A is the bit matrix that satisfies A*C = D, where here *
+ denotes matrix multiplication over GF[2]. In particular, A[i,j] = 1
+ if the intermediate symbol corresponding to index j is exclusive-ORed
+ into the LDPC, Half, or encoding symbol corresponding to index i in
+ the encoding, or if index i corresponds to a LDPC or Half symbol and
+ index j corresponds to the same LDPC or Half symbol. For all other i
+ and j, A[i,j] = 0.
+
+ Decoding a source block is equivalent to decoding C from known A and
+ D. It is clear that C can be decoded if and only if the rank of A
+ over GF[2] is L. Once C has been decoded, missing source symbols can
+ be obtained by using the source symbol triples to determine the
+ number and set of intermediate symbols that MUST be exclusive-ORed to
+ obtain each missing source symbol.
+
+ The first step in decoding C is to form a decoding schedule. In this
+ step A is converted, using Gaussian elimination (using row operations
+ and row and column reorderings) and after discarding M - L rows, into
+ the L by L identity matrix. The decoding schedule consists of the
+ sequence of row operations and row and column reorderings during the
+ Gaussian elimination process, and only depends on A and not on D.
+ The decoding of C from D can take place concurrently with the
+ forming of the decoding schedule, or the decoding can take place
+ afterwards based on the decoding schedule.
+
+
+
+Luby, et al. Standards Track [Page 24]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ The correspondence between the decoding schedule and the decoding of
+ C is as follows. Let c[0] = 0, c[1] = 1,...,c[L-1] = L-1 and d[0] =
+ 0, d[1] = 1,...,d[M-1] = M-1 initially.
+
+ - Each time row i of A is exclusive-ORed into row i' in the decoding
+ schedule, then in the decoding process, symbol D[d[i]] is
+ exclusive-ORed into symbol D[d[i']].
+
+ - Each time row i is exchanged with row i' in the decoding schedule,
+ then in the decoding process, the value of d[i] is exchanged with
+ the value of d[i'].
+
+ - Each time column j is exchanged with column j' in the decoding
+ schedule, then in the decoding process, the value of c[j] is
+ exchanged with the value of c[j'].
+
+ From this correspondence, it is clear that the total number of
+ exclusive-ORs of symbols in the decoding of the source block is the
+ number of row operations (not exchanges) in the Gaussian elimination.
+ Since A is the L by L identity matrix after the Gaussian elimination
+ and after discarding the last M - L rows, it is clear at the end of
+ successful decoding that the L symbols D[d[0]], D[d[1]],...,
+ D[d[L-1]] are the values of the L symbols C[c[0]], C[c[1]],...,
+ C[c[L-1]].
+
+ The order in which Gaussian elimination is performed to form the
+ decoding schedule has no bearing on whether or not the decoding is
+ successful. However, the speed of the decoding depends heavily on
+ the order in which Gaussian elimination is performed. (Furthermore,
+ maintaining a sparse representation of A is crucial, although this is
+ not described here). The remainder of this section describes an
+ order in which Gaussian elimination could be performed that is
+ relatively efficient.
+
+5.5.2.2. First Phase
+
+ The first phase of the Gaussian elimination, the matrix A, is
+ conceptually partitioned into submatrices. The submatrix sizes are
+ parameterized by non-negative integers i and u, which are initialized
+ to 0. The submatrices of A are:
+
+ (1) The submatrix I defined by the intersection of the first i
+ rows and first i columns. This is the identity matrix at the
+ end of each step in the phase.
+
+ (2) The submatrix defined by the intersection of the first i rows
+ and all but the first i columns and last u columns. All
+ entries of this submatrix are zero.
+
+
+
+Luby, et al. Standards Track [Page 25]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ (3) The submatrix defined by the intersection of the first i
+ columns and all but the first i rows. All entries of this
+ submatrix are zero.
+
+ (4) The submatrix U defined by the intersection of all the rows
+ and the last u columns.
+
+ (5) The submatrix V formed by the intersection of all but the
+ first i columns and the last u columns and all but the first i
+ rows.
+
+ Figure 5 illustrates the submatrices of A. At the beginning of the
+ first phase, V = A. In each step, a row of A is chosen.
+
+ +-----------+-----------------+---------+
+ | | | |
+ | I | All Zeros | |
+ | | | |
+ +-----------+-----------------+ U |
+ | | | |
+ | | | |
+ | All Zeros | V | |
+ | | | |
+ | | | |
+ +-----------+-----------------+---------+
+
+ Figure 5: Submatrices of A in the first phase
+
+ The following graph defined by the structure of V is used in
+ determining which row of A is chosen. The columns that intersect V
+ are the nodes in the graph, and the rows that have exactly 2 ones in
+ V are the edges of the graph that connect the two columns (nodes) in
+ the positions of the two ones. A component in this graph is a
+ maximal set of nodes (columns) and edges (rows) such that there is a
+ path between each pair of nodes/edges in the graph. The size of a
+ component is the number of nodes (columns) in the component.
+
+ There are at most L steps in the first phase. The phase ends
+ successfully when i + u = L, i.e., when V and the all-zeroes
+ submatrix above V have disappeared and A consists of I, the all
+ zeroes submatrix below I, and U. The phase ends unsuccessfully in
+ decoding failure if, at some step before V disappears, there is no
+ non-zero row in V to choose in that step. Whenever there are non-
+ zero rows in V, then the next step starts by choosing a row of A as
+ follows:
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 26]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ o Let r be the minimum integer such that at least one row of A has
+ exactly r ones in V.
+
+ * If r != 2, then choose a row with exactly r ones in V with
+ minimum original degree among all such rows.
+
+ * If r = 2, then choose any row with exactly 2 ones in V that is
+ part of a maximum size component in the graph defined by V.
+
+ After the row is chosen in this step the first row of A that
+ intersects V is exchanged with the chosen row so that the chosen row
+ is the first row that intersects V. The columns of A among those
+ that intersect V are reordered so that one of the r ones in the
+ chosen row appears in the first column of V and so that the remaining
+ r-1 ones appear in the last columns of V. Then, the chosen row is
+ exclusive-ORed into all the other rows of A below the chosen row that
+ have a one in the first column of V. Finally, i is incremented by 1
+ and u is incremented by r-1, which completes the step.
+
+5.5.2.3. Second Phase
+
+ The submatrix U is further partitioned into the first i rows,
+ U_upper, and the remaining M - i rows, U_lower. Gaussian elimination
+ is performed in the second phase on U_lower to either determine that
+ its rank is less than u (decoding failure) or to convert it into a
+ matrix where the first u rows is the identity matrix (success of the
+ second phase). Call this u by u identity matrix I_u. The M - L rows
+ of A that intersect U_lower - I_u are discarded. After this phase, A
+ has L rows and L columns.
+
+5.5.2.4. Third Phase
+
+ After the second phase, the only portion of A that needs to be zeroed
+ out to finish converting A into the L by L identity matrix is
+ U_upper. The number of rows i of the submatrix U_upper is generally
+ much larger than the number of columns u of U_upper. To zero out
+ U_upper efficiently, the following precomputation matrix U' is
+ computed based on I_u in the third phase and then U' is used in the
+ fourth phase to zero out U_upper. The u rows of Iu are partitioned
+ into ceil(u/8) groups of 8 rows each. Then, for each group of 8
+ rows, all non-zero combinations of the 8 rows are computed, resulting
+ in 2^^8 - 1 = 255 rows (this can be done with 2^^8-8-1 = 247
+ exclusive-ors of rows per group, since the combinations of Hamming
+ weight one that appear in I_u do not need to be recomputed). Thus,
+ the resulting precomputation matrix U' has ceil(u/8)*255 rows and u
+ columns. Note that U' is not formally a part of matrix A, but will
+ be used in the fourth phase to zero out U_upper.
+
+
+
+
+Luby, et al. Standards Track [Page 27]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+5.5.2.5. Fourth Phase
+
+ For each of the first i rows of A, for each group of 8 columns in the
+ U_upper submatrix of this row, if the set of 8 column entries in
+ U_upper are not all zero, then the row of the precomputation matrix
+ U' that matches the pattern in the 8 columns is exclusive-ORed into
+ the row, thus zeroing out those 8 columns in the row at the cost of
+ exclusive-ORing one row of U' into the row.
+
+ After this phase, A is the L by L identity matrix and a complete
+ decoding schedule has been successfully formed. Then, as explained
+ in Section 5.5.2.1, the corresponding decoding consisting of
+ exclusive-ORing known encoding symbols can be executed to recover the
+ intermediate symbols based on the decoding schedule. The triples
+ associated with all source symbols are computed according to
+ Section 5.4.2.2. The triples for received source symbols are used in
+ the decoding. The triples for missing source symbols are used to
+ determine which intermediate symbols need to be exclusive-ORed to
+ recover the missing source symbols.
+
+5.6. Random Numbers
+
+ The two tables V0 and V1 described in Section 5.4.4.1 are given
+ below. Each entry is a 32-bit integer in decimal representation.
+
+5.6.1. The Table V0
+
+ 251291136, 3952231631, 3370958628, 4070167936, 123631495, 3351110283,
+ 3218676425, 2011642291, 774603218, 2402805061, 1004366930,
+ 1843948209, 428891132, 3746331984, 1591258008, 3067016507,
+ 1433388735, 504005498, 2032657933, 3419319784, 2805686246,
+ 3102436986, 3808671154, 2501582075, 3978944421, 246043949,
+ 4016898363, 649743608, 1974987508, 2651273766, 2357956801, 689605112,
+ 715807172, 2722736134, 191939188, 3535520147, 3277019569, 1470435941,
+ 3763101702, 3232409631, 122701163, 3920852693, 782246947, 372121310,
+ 2995604341, 2045698575, 2332962102, 4005368743, 218596347,
+ 3415381967, 4207612806, 861117671, 3676575285, 2581671944,
+ 3312220480, 681232419, 307306866, 4112503940, 1158111502, 709227802,
+ 2724140433, 4201101115, 4215970289, 4048876515, 3031661061,
+ 1909085522, 510985033, 1361682810, 129243379, 3142379587, 2569842483,
+ 3033268270, 1658118006, 932109358, 1982290045, 2983082771,
+ 3007670818, 3448104768, 683749698, 778296777, 1399125101, 1939403708,
+ 1692176003, 3868299200, 1422476658, 593093658, 1878973865,
+ 2526292949, 1591602827, 3986158854, 3964389521, 2695031039,
+ 1942050155, 424618399, 1347204291, 2669179716, 2434425874,
+ 2540801947, 1384069776, 4123580443, 1523670218, 2708475297,
+ 1046771089, 2229796016, 1255426612, 4213663089, 1521339547,
+ 3041843489, 420130494, 10677091, 515623176, 3457502702, 2115821274,
+
+
+
+Luby, et al. Standards Track [Page 28]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 2720124766, 3242576090, 854310108, 425973987, 325832382, 1796851292,
+ 2462744411, 1976681690, 1408671665, 1228817808, 3917210003,
+ 263976645, 2593736473, 2471651269, 4291353919, 650792940, 1191583883,
+ 3046561335, 2466530435, 2545983082, 969168436, 2019348792,
+ 2268075521, 1169345068, 3250240009, 3963499681, 2560755113,
+ 911182396, 760842409, 3569308693, 2687243553, 381854665, 2613828404,
+ 2761078866, 1456668111, 883760091, 3294951678, 1604598575,
+ 1985308198, 1014570543, 2724959607, 3062518035, 3115293053,
+ 138853680, 4160398285, 3322241130, 2068983570, 2247491078,
+ 3669524410, 1575146607, 828029864, 3732001371, 3422026452,
+ 3370954177, 4006626915, 543812220, 1243116171, 3928372514,
+ 2791443445, 4081325272, 2280435605, 885616073, 616452097, 3188863436,
+ 2780382310, 2340014831, 1208439576, 258356309, 3837963200,
+ 2075009450, 3214181212, 3303882142, 880813252, 1355575717, 207231484,
+ 2420803184, 358923368, 1617557768, 3272161958, 1771154147,
+ 2842106362, 1751209208, 1421030790, 658316681, 194065839, 3241510581,
+ 38625260, 301875395, 4176141739, 297312930, 2137802113, 1502984205,
+ 3669376622, 3728477036, 234652930, 2213589897, 2734638932,
+ 1129721478, 3187422815, 2859178611, 3284308411, 3819792700,
+ 3557526733, 451874476, 1740576081, 3592838701, 1709429513,
+ 3702918379, 3533351328, 1641660745, 179350258, 2380520112,
+ 3936163904, 3685256204, 3156252216, 1854258901, 2861641019,
+ 3176611298, 834787554, 331353807, 517858103, 3010168884, 4012642001,
+ 2217188075, 3756943137, 3077882590, 2054995199, 3081443129,
+ 3895398812, 1141097543, 2376261053, 2626898255, 2554703076,
+ 401233789, 1460049922, 678083952, 1064990737, 940909784, 1673396780,
+ 528881783, 1712547446, 3629685652, 1358307511
+
+5.6.2. The Table V1
+
+ 807385413, 2043073223, 3336749796, 1302105833, 2278607931, 541015020,
+ 1684564270, 372709334, 3508252125, 1768346005, 1270451292,
+ 2603029534, 2049387273, 3891424859, 2152948345, 4114760273,
+ 915180310, 3754787998, 700503826, 2131559305, 1308908630, 224437350,
+ 4065424007, 3638665944, 1679385496, 3431345226, 1779595665,
+ 3068494238, 1424062773, 1033448464, 4050396853, 3302235057,
+ 420600373, 2868446243, 311689386, 259047959, 4057180909, 1575367248,
+ 4151214153, 110249784, 3006865921, 4293710613, 3501256572, 998007483,
+ 499288295, 1205710710, 2997199489, 640417429, 3044194711, 486690751,
+ 2686640734, 2394526209, 2521660077, 49993987, 3843885867, 4201106668,
+ 415906198, 19296841, 2402488407, 2137119134, 1744097284, 579965637,
+ 2037662632, 852173610, 2681403713, 1047144830, 2982173936, 910285038,
+ 4187576520, 2589870048, 989448887, 3292758024, 506322719, 176010738,
+ 1865471968, 2619324712, 564829442, 1996870325, 339697593, 4071072948,
+ 3618966336, 2111320126, 1093955153, 957978696, 892010560, 1854601078,
+ 1873407527, 2498544695, 2694156259, 1927339682, 1650555729,
+ 183933047, 3061444337, 2067387204, 228962564, 3904109414, 1595995433,
+ 1780701372, 2463145963, 307281463, 3237929991, 3852995239,
+
+
+
+Luby, et al. Standards Track [Page 29]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 2398693510, 3754138664, 522074127, 146352474, 4104915256, 3029415884,
+ 3545667983, 332038910, 976628269, 3123492423, 3041418372, 2258059298,
+ 2139377204, 3243642973, 3226247917, 3674004636, 2698992189,
+ 3453843574, 1963216666, 3509855005, 2358481858, 747331248,
+ 1957348676, 1097574450, 2435697214, 3870972145, 1888833893,
+ 2914085525, 4161315584, 1273113343, 3269644828, 3681293816,
+ 412536684, 1156034077, 3823026442, 1066971017, 3598330293,
+ 1979273937, 2079029895, 1195045909, 1071986421, 2712821515,
+ 3377754595, 2184151095, 750918864, 2585729879, 4249895712,
+ 1832579367, 1192240192, 946734366, 31230688, 3174399083, 3549375728,
+ 1642430184, 1904857554, 861877404, 3277825584, 4267074718,
+ 3122860549, 666423581, 644189126, 226475395, 307789415, 1196105631,
+ 3191691839, 782852669, 1608507813, 1847685900, 4069766876,
+ 3931548641, 2526471011, 766865139, 2115084288, 4259411376,
+ 3323683436, 568512177, 3736601419, 1800276898, 4012458395, 1823982,
+ 27980198, 2023839966, 869505096, 431161506, 1024804023, 1853869307,
+ 3393537983, 1500703614, 3019471560, 1351086955, 3096933631,
+ 3034634988, 2544598006, 1230942551, 3362230798, 159984793, 491590373,
+ 3993872886, 3681855622, 903593547, 3535062472, 1799803217, 772984149,
+ 895863112, 1899036275, 4187322100, 101856048, 234650315, 3183125617,
+ 3190039692, 525584357, 1286834489, 455810374, 1869181575, 922673938,
+ 3877430102, 3422391938, 1414347295, 1971054608, 3061798054,
+ 830555096, 2822905141, 167033190, 1079139428, 4210126723, 3593797804,
+ 429192890, 372093950, 1779187770, 3312189287, 204349348, 452421568,
+ 2800540462, 3733109044, 1235082423, 1765319556, 3174729780,
+ 3762994475, 3171962488, 442160826, 198349622, 45942637, 1324086311,
+ 2901868599, 678860040, 3812229107, 19936821, 1119590141, 3640121682,
+ 3545931032, 2102949142, 2828208598, 3603378023, 4135048896
+
+5.7. Systematic Indices J(K)
+
+ For each value of K, the systematic index J(K) is designed to have
+ the property that the set of source symbol triples (d[0], a[0],
+ b[0]), ..., (d[L-1], a[L-1], b[L-1]) are such that the L intermediate
+ symbols are uniquely defined, i.e., the matrix A in Section 5.4.2.4.2
+ has full rank and is therefore invertible.
+
+ The following is the list of the systematic indices for values of K
+ between 4 and 8192 inclusive.
+
+ 18, 14, 61, 46, 14, 22, 20, 40, 48, 1, 29, 40, 43, 46, 18, 8, 20, 2,
+ 61, 26, 13, 29, 36, 19, 58, 5, 58, 0, 54, 56, 24, 14, 5, 67, 39, 31,
+ 25, 29, 24, 19, 14, 56, 49, 49, 63, 30, 4, 39, 2, 1, 20, 19, 61, 4,
+ 54, 70, 25, 52, 9, 26, 55, 69, 27, 68, 75, 19, 64, 57, 45, 3, 37, 31,
+ 100, 41, 25, 41, 53, 23, 9, 31, 26, 30, 30, 46, 90, 50, 13, 90, 77,
+ 61, 31, 54, 54, 3, 21, 66, 21, 11, 23, 11, 29, 21, 7, 1, 27, 4, 34,
+ 17, 85, 69, 17, 75, 93, 57, 0, 53, 71, 88, 119, 88, 90, 22, 0, 58,
+ 41, 22, 96, 26, 79, 118, 19, 3, 81, 72, 50, 0, 32, 79, 28, 25, 12,
+
+
+
+Luby, et al. Standards Track [Page 30]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 25, 29, 3, 37, 30, 30, 41, 84, 32, 31, 61, 32, 61, 7, 56, 54, 39, 33,
+ 66, 29, 3, 14, 75, 75, 78, 84, 75, 84, 25, 54, 25, 25, 107, 78, 27,
+ 73, 0, 49, 96, 53, 50, 21, 10, 73, 58, 65, 27, 3, 27, 18, 54, 45, 69,
+ 29, 3, 65, 31, 71, 76, 56, 54, 76, 54, 13, 5, 18, 142, 17, 3, 37,
+ 114, 41, 25, 56, 0, 23, 3, 41, 22, 22, 31, 18, 48, 31, 58, 37, 75,
+ 88, 3, 56, 1, 95, 19, 73, 52, 52, 4, 75, 26, 1, 25, 10, 1, 70, 31,
+ 31, 12, 10, 54, 46, 11, 74, 84, 74, 8, 58, 23, 74, 8, 36, 11, 16, 94,
+ 76, 14, 57, 65, 8, 22, 10, 36, 36, 96, 62, 103, 6, 75, 103, 58, 10,
+ 15, 41, 75, 125, 58, 15, 10, 34, 29, 34, 4, 16, 29, 18, 18, 28, 71,
+ 28, 43, 77, 18, 41, 41, 41, 62, 29, 96, 15, 106, 43, 15, 3, 43, 61,
+ 3, 18, 103, 77, 29, 103, 19, 58, 84, 58, 1, 146, 32, 3, 70, 52, 54,
+ 29, 70, 69, 124, 62, 1, 26, 38, 26, 3, 16, 26, 5, 51, 120, 41, 16, 1,
+ 43, 34, 34, 29, 37, 56, 29, 96, 86, 54, 25, 84, 50, 34, 34, 93, 84,
+ 96, 29, 29, 50, 50, 6, 1, 105, 78, 15, 37, 19, 50, 71, 36, 6, 54, 8,
+ 28, 54, 75, 75, 16, 75, 131, 5, 25, 16, 69, 17, 69, 6, 96, 53, 96,
+ 41, 119, 6, 6, 88, 50, 88, 52, 37, 0, 124, 73, 73, 7, 14, 36, 69, 79,
+ 6, 114, 40, 79, 17, 77, 24, 44, 37, 69, 27, 37, 29, 33, 37, 50, 31,
+ 69, 29, 101, 7, 61, 45, 17, 73, 37, 34, 18, 94, 22, 22, 63, 3, 25,
+ 25, 17, 3, 90, 34, 34, 41, 34, 41, 54, 41, 54, 41, 41, 41, 163, 143,
+ 96, 18, 32, 39, 86, 104, 11, 17, 17, 11, 86, 104, 78, 70, 52, 78, 17,
+ 73, 91, 62, 7, 128, 50, 124, 18, 101, 46, 10, 75, 104, 73, 58, 132,
+ 34, 13, 4, 95, 88, 33, 76, 74, 54, 62, 113, 114, 103, 32, 103, 69,
+ 54, 53, 3, 11, 72, 31, 53, 102, 37, 53, 11, 81, 41, 10, 164, 10, 41,
+ 31, 36, 113, 82, 3, 125, 62, 16, 4, 41, 41, 4, 128, 49, 138, 128, 74,
+ 103, 0, 6, 101, 41, 142, 171, 39, 105, 121, 81, 62, 41, 81, 37, 3,
+ 81, 69, 62, 3, 69, 70, 21, 29, 4, 91, 87, 37, 79, 36, 21, 71, 37, 41,
+ 75, 128, 128, 15, 25, 3, 108, 73, 91, 62, 114, 62, 62, 36, 36, 15,
+ 58, 114, 61, 114, 58, 105, 114, 41, 61, 176, 145, 46, 37, 30, 220,
+ 77, 138, 15, 1, 128, 53, 50, 50, 58, 8, 91, 114, 105, 63, 91, 37, 37,
+ 13, 169, 51, 102, 6, 102, 23, 105, 23, 58, 6, 29, 29, 19, 82, 29, 13,
+ 36, 27, 29, 61, 12, 18, 127, 127, 12, 44, 102, 18, 4, 15, 206, 53,
+ 127, 53, 17, 69, 69, 69, 29, 29, 109, 25, 102, 25, 53, 62, 99, 62,
+ 62, 29, 62, 62, 45, 91, 125, 29, 29, 29, 4, 117, 72, 4, 30, 71, 71,
+ 95, 79, 179, 71, 30, 53, 32, 32, 49, 25, 91, 25, 26, 26, 103, 123,
+ 26, 41, 162, 78, 52, 103, 25, 6, 142, 94, 45, 45, 94, 127, 94, 94,
+ 94, 47, 209, 138, 39, 39, 19, 154, 73, 67, 91, 27, 91, 84, 4, 84, 91,
+ 12, 14, 165, 142, 54, 69, 192, 157, 185, 8, 95, 25, 62, 103, 103, 95,
+ 71, 97, 62, 128, 0, 29, 51, 16, 94, 16, 16, 51, 0, 29, 85, 10, 105,
+ 16, 29, 29, 13, 29, 4, 4, 132, 23, 95, 25, 54, 41, 29, 50, 70, 58,
+ 142, 72, 70, 15, 72, 54, 29, 22, 145, 29, 127, 29, 85, 58, 101, 34,
+ 165, 91, 46, 46, 25, 185, 25, 77, 128, 46, 128, 46, 188, 114, 46, 25,
+ 45, 45, 114, 145, 114, 15, 102, 142, 8, 73, 31, 139, 157, 13, 79, 13,
+ 114, 150, 8, 90, 91, 123, 69, 82, 132, 8, 18, 10, 102, 103, 114, 103,
+ 8, 103, 13, 115, 55, 62, 3, 8, 154, 114, 99, 19, 8, 31, 73, 19, 99,
+ 10, 6, 121, 32, 13, 32, 119, 32, 29, 145, 30, 13, 13, 114, 145, 32,
+ 1, 123, 39, 29, 31, 69, 31, 140, 72, 72, 25, 25, 123, 25, 123, 8, 4,
+ 85, 8, 25, 39, 25, 39, 85, 138, 25, 138, 25, 33, 102, 70, 25, 25, 31,
+ 25, 25, 192, 69, 69, 114, 145, 120, 120, 8, 33, 98, 15, 212, 155, 8,
+
+
+
+Luby, et al. Standards Track [Page 31]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 101, 8, 8, 98, 68, 155, 102, 132, 120, 30, 25, 123, 123, 101, 25,
+ 123, 32, 24, 94, 145, 32, 24, 94, 118, 145, 101, 53, 53, 25, 128,
+ 173, 142, 81, 81, 69, 33, 33, 125, 4, 1, 17, 27, 4, 17, 102, 27, 13,
+ 25, 128, 71, 13, 39, 53, 13, 53, 47, 39, 23, 128, 53, 39, 47, 39,
+ 135, 158, 136, 36, 36, 27, 157, 47, 76, 213, 47, 156, 25, 25, 53, 25,
+ 53, 25, 86, 27, 159, 25, 62, 79, 39, 79, 25, 145, 49, 25, 143, 13,
+ 114, 150, 130, 94, 102, 39, 4, 39, 61, 77, 228, 22, 25, 47, 119, 205,
+ 122, 119, 205, 119, 22, 119, 258, 143, 22, 81, 179, 22, 22, 143, 25,
+ 65, 53, 168, 36, 79, 175, 37, 79, 70, 79, 103, 70, 25, 175, 4, 96,
+ 96, 49, 128, 138, 96, 22, 62, 47, 95, 105, 95, 62, 95, 62, 142, 103,
+ 69, 103, 30, 103, 34, 173, 127, 70, 127, 132, 18, 85, 22, 71, 18,
+ 206, 206, 18, 128, 145, 70, 193, 188, 8, 125, 114, 70, 128, 114, 145,
+ 102, 25, 12, 108, 102, 94, 10, 102, 1, 102, 124, 22, 22, 118, 132,
+ 22, 116, 75, 41, 63, 41, 189, 208, 55, 85, 69, 8, 71, 53, 71, 69,
+ 102, 165, 41, 99, 69, 33, 33, 29, 156, 102, 13, 251, 102, 25, 13,
+ 109, 102, 164, 102, 164, 102, 25, 29, 228, 29, 259, 179, 222, 95, 94,
+ 30, 30, 30, 142, 55, 142, 72, 55, 102, 128, 17, 69, 164, 165, 3, 164,
+ 36, 165, 27, 27, 45, 21, 21, 237, 113, 83, 231, 106, 13, 154, 13,
+ 154, 128, 154, 148, 258, 25, 154, 128, 3, 27, 10, 145, 145, 21, 146,
+ 25, 1, 185, 121, 0, 1, 95, 55, 95, 95, 30, 0, 27, 95, 0, 95, 8, 222,
+ 27, 121, 30, 95, 121, 0, 98, 94, 131, 55, 95, 95, 30, 98, 30, 0, 91,
+ 145, 66, 179, 66, 58, 175, 29, 0, 31, 173, 146, 160, 39, 53, 28, 123,
+ 199, 123, 175, 146, 156, 54, 54, 149, 25, 70, 178, 128, 25, 70, 70,
+ 94, 224, 54, 4, 54, 54, 25, 228, 160, 206, 165, 143, 206, 108, 220,
+ 234, 160, 13, 169, 103, 103, 103, 91, 213, 222, 91, 103, 91, 103, 31,
+ 30, 123, 13, 62, 103, 50, 106, 42, 13, 145, 114, 220, 65, 8, 8, 175,
+ 11, 104, 94, 118, 132, 27, 118, 193, 27, 128, 127, 127, 183, 33, 30,
+ 29, 103, 128, 61, 234, 165, 41, 29, 193, 33, 207, 41, 165, 165, 55,
+ 81, 157, 157, 8, 81, 11, 27, 8, 8, 98, 96, 142, 145, 41, 179, 112,
+ 62, 180, 206, 206, 165, 39, 241, 45, 151, 26, 197, 102, 192, 125,
+ 128, 67, 128, 69, 128, 197, 33, 125, 102, 13, 103, 25, 30, 12, 30,
+ 12, 30, 25, 77, 12, 25, 180, 27, 10, 69, 235, 228, 343, 118, 69, 41,
+ 8, 69, 175, 25, 69, 25, 125, 41, 25, 41, 8, 155, 146, 155, 146, 155,
+ 206, 168, 128, 157, 27, 273, 211, 211, 168, 11, 173, 154, 77, 173,
+ 77, 102, 102, 102, 8, 85, 95, 102, 157, 28, 122, 234, 122, 157, 235,
+ 222, 241, 10, 91, 179, 25, 13, 25, 41, 25, 206, 41, 6, 41, 158, 206,
+ 206, 33, 296, 296, 33, 228, 69, 8, 114, 148, 33, 29, 66, 27, 27, 30,
+ 233, 54, 173, 108, 106, 108, 108, 53, 103, 33, 33, 33, 176, 27, 27,
+ 205, 164, 105, 237, 41, 27, 72, 165, 29, 29, 259, 132, 132, 132, 364,
+ 71, 71, 27, 94, 160, 127, 51, 234, 55, 27, 95, 94, 165, 55, 55, 41,
+ 0, 41, 128, 4, 123, 173, 6, 164, 157, 121, 121, 154, 86, 164, 164,
+ 25, 93, 164, 25, 164, 210, 284, 62, 93, 30, 25, 25, 30, 30, 260, 130,
+ 25, 125, 57, 53, 166, 166, 166, 185, 166, 158, 94, 113, 215, 159, 62,
+ 99, 21, 172, 99, 184, 62, 259, 4, 21, 21, 77, 62, 173, 41, 146, 6,
+ 41, 128, 121, 41, 11, 121, 103, 159, 164, 175, 206, 91, 103, 164, 72,
+ 25, 129, 72, 206, 129, 33, 103, 102, 102, 29, 13, 11, 251, 234, 135,
+ 31, 8, 123, 65, 91, 121, 129, 65, 243, 10, 91, 8, 65, 70, 228, 220,
+ 243, 91, 10, 10, 30, 178, 91, 178, 33, 21, 25, 235, 165, 11, 161,
+
+
+
+Luby, et al. Standards Track [Page 32]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 158, 27, 27, 30, 128, 75, 36, 30, 36, 36, 173, 25, 33, 178, 112, 162,
+ 112, 112, 112, 162, 33, 33, 178, 123, 123, 39, 106, 91, 106, 106,
+ 158, 106, 106, 284, 39, 230, 21, 228, 11, 21, 228, 159, 241, 62, 10,
+ 62, 10, 68, 234, 39, 39, 138, 62, 22, 27, 183, 22, 215, 10, 175, 175,
+ 353, 228, 42, 193, 175, 175, 27, 98, 27, 193, 150, 27, 173, 17, 233,
+ 233, 25, 102, 123, 152, 242, 108, 4, 94, 176, 13, 41, 219, 17, 151,
+ 22, 103, 103, 53, 128, 233, 284, 25, 265, 128, 39, 39, 138, 42, 39,
+ 21, 86, 95, 127, 29, 91, 46, 103, 103, 215, 25, 123, 123, 230, 25,
+ 193, 180, 30, 60, 30, 242, 136, 180, 193, 30, 206, 180, 60, 165, 206,
+ 193, 165, 123, 164, 103, 68, 25, 70, 91, 25, 82, 53, 82, 186, 53, 82,
+ 53, 25, 30, 282, 91, 13, 234, 160, 160, 126, 149, 36, 36, 160, 149,
+ 178, 160, 39, 294, 149, 149, 160, 39, 95, 221, 186, 106, 178, 316,
+ 267, 53, 53, 164, 159, 164, 165, 94, 228, 53, 52, 178, 183, 53, 294,
+ 128, 55, 140, 294, 25, 95, 366, 15, 304, 13, 183, 77, 230, 6, 136,
+ 235, 121, 311, 273, 36, 158, 235, 230, 98, 201, 165, 165, 165, 91,
+ 175, 248, 39, 185, 128, 39, 39, 128, 313, 91, 36, 219, 130, 25, 130,
+ 234, 234, 130, 234, 121, 205, 304, 94, 77, 64, 259, 60, 60, 60, 77,
+ 242, 60, 145, 95, 270, 18, 91, 199, 159, 91, 235, 58, 249, 26, 123,
+ 114, 29, 15, 191, 15, 30, 55, 55, 347, 4, 29, 15, 4, 341, 93, 7, 30,
+ 23, 7, 121, 266, 178, 261, 70, 169, 25, 25, 158, 169, 25, 169, 270,
+ 270, 13, 128, 327, 103, 55, 128, 103, 136, 159, 103, 327, 41, 32,
+ 111, 111, 114, 173, 215, 173, 25, 173, 180, 114, 173, 173, 98, 93,
+ 25, 160, 157, 159, 160, 159, 159, 160, 320, 35, 193, 221, 33, 36,
+ 136, 248, 91, 215, 125, 215, 156, 68, 125, 125, 1, 287, 123, 94, 30,
+ 184, 13, 30, 94, 123, 206, 12, 206, 289, 128, 122, 184, 128, 289,
+ 178, 29, 26, 206, 178, 65, 206, 128, 192, 102, 197, 36, 94, 94, 155,
+ 10, 36, 121, 280, 121, 368, 192, 121, 121, 179, 121, 36, 54, 192,
+ 121, 192, 197, 118, 123, 224, 118, 10, 192, 10, 91, 269, 91, 49, 206,
+ 184, 185, 62, 8, 49, 289, 30, 5, 55, 30, 42, 39, 220, 298, 42, 347,
+ 42, 234, 42, 70, 42, 55, 321, 129, 172, 173, 172, 13, 98, 129, 325,
+ 235, 284, 362, 129, 233, 345, 175, 261, 175, 60, 261, 58, 289, 99,
+ 99, 99, 206, 99, 36, 175, 29, 25, 432, 125, 264, 168, 173, 69, 158,
+ 273, 179, 164, 69, 158, 69, 8, 95, 192, 30, 164, 101, 44, 53, 273,
+ 335, 273, 53, 45, 128, 45, 234, 123, 105, 103, 103, 224, 36, 90, 211,
+ 282, 264, 91, 228, 91, 166, 264, 228, 398, 50, 101, 91, 264, 73, 36,
+ 25, 73, 50, 50, 242, 36, 36, 58, 165, 204, 353, 165, 125, 320, 128,
+ 298, 298, 180, 128, 60, 102, 30, 30, 53, 179, 234, 325, 234, 175, 21,
+ 250, 215, 103, 21, 21, 250, 91, 211, 91, 313, 301, 323, 215, 228,
+ 160, 29, 29, 81, 53, 180, 146, 248, 66, 159, 39, 98, 323, 98, 36, 95,
+ 218, 234, 39, 82, 82, 230, 62, 13, 62, 230, 13, 30, 98, 0, 8, 98, 8,
+ 98, 91, 267, 121, 197, 30, 78, 27, 78, 102, 27, 298, 160, 103, 264,
+ 264, 264, 175, 17, 273, 273, 165, 31, 160, 17, 99, 17, 99, 234, 31,
+ 17, 99, 36, 26, 128, 29, 214, 353, 264, 102, 36, 102, 264, 264, 273,
+ 273, 4, 16, 138, 138, 264, 128, 313, 25, 420, 60, 10, 280, 264, 60,
+ 60, 103, 178, 125, 178, 29, 327, 29, 36, 30, 36, 4, 52, 183, 183,
+ 173, 52, 31, 173, 31, 158, 31, 158, 31, 9, 31, 31, 353, 31, 353, 173,
+ 415, 9, 17, 222, 31, 103, 31, 165, 27, 31, 31, 165, 27, 27, 206, 31,
+ 31, 4, 4, 30, 4, 4, 264, 185, 159, 310, 273, 310, 173, 40, 4, 173, 4,
+
+
+
+Luby, et al. Standards Track [Page 33]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 173, 4, 250, 250, 62, 188, 119, 250, 233, 62, 121, 105, 105, 54, 103,
+ 111, 291, 236, 236, 103, 297, 36, 26, 316, 69, 183, 158, 206, 129,
+ 160, 129, 184, 55, 179, 279, 11, 179, 347, 160, 184, 129, 179, 351,
+ 179, 353, 179, 129, 129, 351, 11, 111, 93, 93, 235, 103, 173, 53, 93,
+ 50, 111, 86, 123, 94, 36, 183, 60, 55, 55, 178, 219, 253, 321, 178,
+ 235, 235, 183, 183, 204, 321, 219, 160, 193, 335, 121, 70, 69, 295,
+ 159, 297, 231, 121, 231, 136, 353, 136, 121, 279, 215, 366, 215, 353,
+ 159, 353, 353, 103, 31, 31, 298, 298, 30, 30, 165, 273, 25, 219, 35,
+ 165, 259, 54, 36, 54, 54, 165, 71, 250, 327, 13, 289, 165, 196, 165,
+ 165, 94, 233, 165, 94, 60, 165, 96, 220, 166, 271, 158, 397, 122, 53,
+ 53, 137, 280, 272, 62, 30, 30, 30, 105, 102, 67, 140, 8, 67, 21, 270,
+ 298, 69, 173, 298, 91, 179, 327, 86, 179, 88, 179, 179, 55, 123, 220,
+ 233, 94, 94, 175, 13, 53, 13, 154, 191, 74, 83, 83, 325, 207, 83, 74,
+ 83, 325, 74, 316, 388, 55, 55, 364, 55, 183, 434, 273, 273, 273, 164,
+ 213, 11, 213, 327, 321, 21, 352, 185, 103, 13, 13, 55, 30, 323, 123,
+ 178, 435, 178, 30, 175, 175, 30, 481, 527, 175, 125, 232, 306, 232,
+ 206, 306, 364, 206, 270, 206, 232, 10, 30, 130, 160, 130, 347, 240,
+ 30, 136, 130, 347, 136, 279, 298, 206, 30, 103, 273, 241, 70, 206,
+ 306, 434, 206, 94, 94, 156, 161, 321, 321, 64, 161, 13, 183, 183, 83,
+ 161, 13, 169, 13, 159, 36, 173, 159, 36, 36, 230, 235, 235, 159, 159,
+ 335, 312, 42, 342, 264, 39, 39, 39, 34, 298, 36, 36, 252, 164, 29,
+ 493, 29, 387, 387, 435, 493, 132, 273, 105, 132, 74, 73, 206, 234,
+ 273, 206, 95, 15, 280, 280, 280, 280, 397, 273, 273, 242, 397, 280,
+ 397, 397, 397, 273, 397, 280, 230, 137, 353, 67, 81, 137, 137, 353,
+ 259, 312, 114, 164, 164, 25, 77, 21, 77, 165, 30, 30, 231, 234, 121,
+ 234, 312, 121, 364, 136, 123, 123, 136, 123, 136, 150, 264, 285, 30,
+ 166, 93, 30, 39, 224, 136, 39, 355, 355, 397, 67, 67, 25, 67, 25,
+ 298, 11, 67, 264, 374, 99, 150, 321, 67, 70, 67, 295, 150, 29, 321,
+ 150, 70, 29, 142, 355, 311, 173, 13, 253, 103, 114, 114, 70, 192, 22,
+ 128, 128, 183, 184, 70, 77, 215, 102, 292, 30, 123, 279, 292, 142,
+ 33, 215, 102, 468, 123, 468, 473, 30, 292, 215, 30, 213, 443, 473,
+ 215, 234, 279, 279, 279, 279, 265, 443, 206, 66, 313, 34, 30, 206,
+ 30, 51, 15, 206, 41, 434, 41, 398, 67, 30, 301, 67, 36, 3, 285, 437,
+ 136, 136, 22, 136, 145, 365, 323, 323, 145, 136, 22, 453, 99, 323,
+ 353, 9, 258, 323, 231, 128, 231, 382, 150, 420, 39, 94, 29, 29, 353,
+ 22, 22, 347, 353, 39, 29, 22, 183, 8, 284, 355, 388, 284, 60, 64, 99,
+ 60, 64, 150, 95, 150, 364, 150, 95, 150, 6, 236, 383, 544, 81, 206,
+ 388, 206, 58, 159, 99, 231, 228, 363, 363, 121, 99, 121, 121, 99,
+ 422, 544, 273, 173, 121, 427, 102, 121, 235, 284, 179, 25, 197, 25,
+ 179, 511, 70, 368, 70, 25, 388, 123, 368, 159, 213, 410, 159, 236,
+ 127, 159, 21, 373, 184, 424, 327, 250, 176, 176, 175, 284, 316, 176,
+ 284, 327, 111, 250, 284, 175, 175, 264, 111, 176, 219, 111, 427, 427,
+ 176, 284, 427, 353, 428, 55, 184, 493, 158, 136, 99, 287, 264, 334,
+ 264, 213, 213, 292, 481, 93, 264, 292, 295, 295, 6, 367, 279, 173,
+ 308, 285, 158, 308, 335, 299, 137, 137, 572, 41, 137, 137, 41, 94,
+ 335, 220, 36, 224, 420, 36, 265, 265, 91, 91, 71, 123, 264, 91, 91,
+ 123, 107, 30, 22, 292, 35, 241, 356, 298, 14, 298, 441, 35, 121, 71,
+ 63, 130, 63, 488, 363, 71, 63, 307, 194, 71, 71, 220, 121, 125, 71,
+
+
+
+Luby, et al. Standards Track [Page 34]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 220, 71, 71, 71, 71, 235, 265, 353, 128, 155, 128, 420, 400, 130,
+ 173, 183, 183, 184, 130, 173, 183, 13, 183, 130, 130, 183, 183, 353,
+ 353, 183, 242, 183, 183, 306, 324, 324, 321, 306, 321, 6, 6, 128,
+ 306, 242, 242, 306, 183, 183, 6, 183, 321, 486, 183, 164, 30, 78,
+ 138, 158, 138, 34, 206, 362, 55, 70, 67, 21, 375, 136, 298, 81, 298,
+ 298, 298, 230, 121, 30, 230, 311, 240, 311, 311, 158, 204, 136, 136,
+ 184, 136, 264, 311, 311, 312, 312, 72, 311, 175, 264, 91, 175, 264,
+ 121, 461, 312, 312, 238, 475, 350, 512, 350, 312, 313, 350, 312, 366,
+ 294, 30, 253, 253, 253, 388, 158, 388, 22, 388, 22, 388, 103, 321,
+ 321, 253, 7, 437, 103, 114, 242, 114, 114, 242, 114, 114, 242, 242,
+ 242, 306, 242, 114, 7, 353, 335, 27, 241, 299, 312, 364, 506, 409,
+ 94, 462, 230, 462, 243, 230, 175, 175, 462, 461, 230, 428, 426, 175,
+ 175, 165, 175, 175, 372, 183, 572, 102, 85, 102, 538, 206, 376, 85,
+ 85, 284, 85, 85, 284, 398, 83, 160, 265, 308, 398, 310, 583, 289,
+ 279, 273, 285, 490, 490, 211, 292, 292, 158, 398, 30, 220, 169, 368,
+ 368, 368, 169, 159, 368, 93, 368, 368, 93, 169, 368, 368, 443, 368,
+ 298, 443, 368, 298, 538, 345, 345, 311, 178, 54, 311, 215, 178, 175,
+ 222, 264, 475, 264, 264, 475, 478, 289, 63, 236, 63, 299, 231, 296,
+ 397, 299, 158, 36, 164, 164, 21, 492, 21, 164, 21, 164, 403, 26, 26,
+ 588, 179, 234, 169, 465, 295, 67, 41, 353, 295, 538, 161, 185, 306,
+ 323, 68, 420, 323, 82, 241, 241, 36, 53, 493, 301, 292, 241, 250, 63,
+ 63, 103, 442, 353, 185, 353, 321, 353, 185, 353, 353, 185, 409, 353,
+ 589, 34, 271, 271, 34, 86, 34, 34, 353, 353, 39, 414, 4, 95, 95, 4,
+ 225, 95, 4, 121, 30, 552, 136, 159, 159, 514, 159, 159, 54, 514, 206,
+ 136, 206, 159, 74, 235, 235, 312, 54, 312, 42, 156, 422, 629, 54,
+ 465, 265, 165, 250, 35, 165, 175, 659, 175, 175, 8, 8, 8, 8, 206,
+ 206, 206, 50, 435, 206, 432, 230, 230, 234, 230, 94, 299, 299, 285,
+ 184, 41, 93, 299, 299, 285, 41, 285, 158, 285, 206, 299, 41, 36, 396,
+ 364, 364, 120, 396, 514, 91, 382, 538, 807, 717, 22, 93, 412, 54,
+ 215, 54, 298, 308, 148, 298, 148, 298, 308, 102, 656, 6, 148, 745,
+ 128, 298, 64, 407, 273, 41, 172, 64, 234, 250, 398, 181, 445, 95,
+ 236, 441, 477, 504, 102, 196, 137, 364, 60, 453, 137, 364, 367, 334,
+ 364, 299, 196, 397, 630, 589, 589, 196, 646, 337, 235, 128, 128, 343,
+ 289, 235, 324, 427, 324, 58, 215, 215, 461, 425, 461, 387, 440, 285,
+ 440, 440, 285, 387, 632, 325, 325, 440, 461, 425, 425, 387, 627, 191,
+ 285, 440, 308, 55, 219, 280, 308, 265, 538, 183, 121, 30, 236, 206,
+ 30, 455, 236, 30, 30, 705, 83, 228, 280, 468, 132, 8, 132, 132, 128,
+ 409, 173, 353, 132, 409, 35, 128, 450, 137, 398, 67, 432, 423, 235,
+ 235, 388, 306, 93, 93, 452, 300, 190, 13, 452, 388, 30, 452, 13, 30,
+ 13, 30, 306, 362, 234, 721, 635, 809, 784, 67, 498, 498, 67, 353,
+ 635, 67, 183, 159, 445, 285, 183, 53, 183, 445, 265, 432, 57, 420,
+ 432, 420, 477, 327, 55, 60, 105, 183, 218, 104, 104, 475, 239, 582,
+ 151, 239, 104, 732, 41, 26, 784, 86, 300, 215, 36, 64, 86, 86, 675,
+ 294, 64, 86, 528, 550, 493, 565, 298, 230, 312, 295, 538, 298, 295,
+ 230, 54, 374, 516, 441, 54, 54, 323, 401, 401, 382, 159, 837, 159,
+ 54, 401, 592, 159, 401, 417, 610, 264, 150, 323, 452, 185, 323, 323,
+ 185, 403, 185, 423, 165, 425, 219, 407, 270, 231, 99, 93, 231, 631,
+ 756, 71, 364, 434, 213, 86, 102, 434, 102, 86, 23, 71, 335, 164, 323,
+
+
+
+Luby, et al. Standards Track [Page 35]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 409, 381, 4, 124, 41, 424, 206, 41, 124, 41, 41, 703, 635, 124, 493,
+ 41, 41, 487, 492, 124, 175, 124, 261, 600, 488, 261, 488, 261, 206,
+ 677, 261, 308, 723, 908, 704, 691, 723, 488, 488, 441, 136, 476, 312,
+ 136, 550, 572, 728, 550, 22, 312, 312, 22, 55, 413, 183, 280, 593,
+ 191, 36, 36, 427, 36, 695, 592, 19, 544, 13, 468, 13, 544, 72, 437,
+ 321, 266, 461, 266, 441, 230, 409, 93, 521, 521, 345, 235, 22, 142,
+ 150, 102, 569, 235, 264, 91, 521, 264, 7, 102, 7, 498, 521, 235, 537,
+ 235, 6, 241, 420, 420, 631, 41, 527, 103, 67, 337, 62, 264, 527, 131,
+ 67, 174, 263, 264, 36, 36, 263, 581, 253, 465, 160, 286, 91, 160, 55,
+ 4, 4, 631, 631, 608, 365, 465, 294, 427, 427, 335, 669, 669, 129, 93,
+ 93, 93, 93, 74, 66, 758, 504, 347, 130, 505, 504, 143, 505, 550, 222,
+ 13, 352, 529, 291, 538, 50, 68, 269, 130, 295, 130, 511, 295, 295,
+ 130, 486, 132, 61, 206, 185, 368, 669, 22, 175, 492, 207, 373, 452,
+ 432, 327, 89, 550, 496, 611, 527, 89, 527, 496, 550, 516, 516, 91,
+ 136, 538, 264, 264, 124, 264, 264, 264, 264, 264, 535, 264, 150, 285,
+ 398, 285, 582, 398, 475, 81, 694, 694, 64, 81, 694, 234, 607, 723,
+ 513, 234, 64, 581, 64, 124, 64, 607, 234, 723, 717, 367, 64, 513,
+ 607, 488, 183, 488, 450, 183, 550, 286, 183, 363, 286, 414, 67, 449,
+ 449, 366, 215, 235, 95, 295, 295, 41, 335, 21, 445, 225, 21, 295,
+ 372, 749, 461, 53, 481, 397, 427, 427, 427, 714, 481, 714, 427, 717,
+ 165, 245, 486, 415, 245, 415, 486, 274, 415, 441, 456, 300, 548, 300,
+ 422, 422, 757, 11, 74, 430, 430, 136, 409, 430, 749, 191, 819, 592,
+ 136, 364, 465, 231, 231, 918, 160, 589, 160, 160, 465, 465, 231, 157,
+ 538, 538, 259, 538, 326, 22, 22, 22, 179, 22, 22, 550, 179, 287, 287,
+ 417, 327, 498, 498, 287, 488, 327, 538, 488, 583, 488, 287, 335, 287,
+ 335, 287, 41, 287, 335, 287, 327, 441, 335, 287, 488, 538, 327, 498,
+ 8, 8, 374, 8, 64, 427, 8, 374, 417, 760, 409, 373, 160, 423, 206,
+ 160, 106, 499, 160, 271, 235, 160, 590, 353, 695, 478, 619, 590, 353,
+ 13, 63, 189, 420, 605, 427, 643, 121, 280, 415, 121, 415, 595, 417,
+ 121, 398, 55, 330, 463, 463, 123, 353, 330, 582, 309, 582, 582, 405,
+ 330, 550, 405, 582, 353, 309, 308, 60, 353, 7, 60, 71, 353, 189, 183,
+ 183, 183, 582, 755, 189, 437, 287, 189, 183, 668, 481, 384, 384, 481,
+ 481, 481, 477, 582, 582, 499, 650, 481, 121, 461, 231, 36, 235, 36,
+ 413, 235, 209, 36, 689, 114, 353, 353, 235, 592, 36, 353, 413, 209,
+ 70, 308, 70, 699, 308, 70, 213, 292, 86, 689, 465, 55, 508, 128, 452,
+ 29, 41, 681, 573, 352, 21, 21, 648, 648, 69, 509, 409, 21, 264, 21,
+ 509, 514, 514, 409, 21, 264, 443, 443, 427, 160, 433, 663, 433, 231,
+ 646, 185, 482, 646, 433, 13, 398, 172, 234, 42, 491, 172, 234, 234,
+ 832, 775, 172, 196, 335, 822, 461, 298, 461, 364, 1120, 537, 169,
+ 169, 364, 694, 219, 612, 231, 740, 42, 235, 321, 279, 960, 279, 353,
+ 492, 159, 572, 321, 159, 287, 353, 287, 287, 206, 206, 321, 287, 159,
+ 321, 492, 159, 55, 572, 600, 270, 492, 784, 173, 91, 91, 443, 443,
+ 582, 261, 497, 572, 91, 555, 352, 206, 261, 555, 285, 91, 555, 497,
+ 83, 91, 619, 353, 488, 112, 4, 592, 295, 295, 488, 235, 231, 769,
+ 568, 581, 671, 451, 451, 483, 299, 1011, 432, 422, 207, 106, 701,
+ 508, 555, 508, 555, 125, 870, 555, 589, 508, 125, 749, 482, 125, 125,
+ 130, 544, 643, 643, 544, 488, 22, 643, 130, 335, 544, 22, 130, 544,
+ 544, 488, 426, 426, 4, 180, 4, 695, 35, 54, 433, 500, 592, 433, 262,
+
+
+
+Luby, et al. Standards Track [Page 36]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 94, 401, 401, 106, 216, 216, 106, 521, 102, 462, 518, 271, 475, 365,
+ 193, 648, 206, 424, 206, 193, 206, 206, 424, 299, 590, 590, 364, 621,
+ 67, 538, 488, 567, 51, 51, 513, 194, 81, 488, 486, 289, 567, 563,
+ 749, 563, 338, 338, 502, 563, 822, 338, 563, 338, 502, 201, 230, 201,
+ 533, 445, 175, 201, 175, 13, 85, 960, 103, 85, 175, 30, 445, 445,
+ 175, 573, 196, 877, 287, 356, 678, 235, 489, 312, 572, 264, 717, 138,
+ 295, 6, 295, 523, 55, 165, 165, 295, 138, 663, 6, 295, 6, 353, 138,
+ 6, 138, 169, 129, 784, 12, 129, 194, 605, 784, 445, 234, 627, 563,
+ 689, 627, 647, 570, 627, 570, 647, 206, 234, 215, 234, 816, 627, 816,
+ 234, 627, 215, 234, 627, 264, 427, 427, 30, 424, 161, 161, 916, 740,
+ 180, 616, 481, 514, 383, 265, 481, 164, 650, 121, 582, 689, 420, 669,
+ 589, 420, 788, 549, 165, 734, 280, 224, 146, 681, 788, 184, 398, 784,
+ 4, 398, 417, 417, 398, 636, 784, 417, 81, 398, 417, 81, 185, 827,
+ 420, 241, 420, 41, 185, 185, 718, 241, 101, 185, 185, 241, 241, 241,
+ 241, 241, 185, 324, 420, 420, 1011, 420, 827, 241, 184, 563, 241,
+ 183, 285, 529, 285, 808, 822, 891, 822, 488, 285, 486, 619, 55, 869,
+ 39, 567, 39, 289, 203, 158, 289, 710, 818, 158, 818, 355, 29, 409,
+ 203, 308, 648, 792, 308, 308, 91, 308, 6, 592, 792, 106, 106, 308,
+ 41, 178, 91, 751, 91, 259, 734, 166, 36, 327, 166, 230, 205, 205,
+ 172, 128, 230, 432, 623, 838, 623, 432, 278, 432, 42, 916, 432, 694,
+ 623, 352, 452, 93, 314, 93, 93, 641, 88, 970, 914, 230, 61, 159, 270,
+ 159, 493, 159, 755, 159, 409, 30, 30, 836, 128, 241, 99, 102, 984,
+ 538, 102, 102, 273, 639, 838, 102, 102, 136, 637, 508, 627, 285, 465,
+ 327, 327, 21, 749, 327, 749, 21, 845, 21, 21, 409, 749, 1367, 806,
+ 616, 714, 253, 616, 714, 714, 112, 375, 21, 112, 375, 375, 51, 51,
+ 51, 51, 393, 206, 870, 713, 193, 802, 21, 1061, 42, 382, 42, 543,
+ 876, 42, 876, 382, 696, 543, 635, 490, 353, 353, 417, 64, 1257, 271,
+ 64, 377, 127, 127, 537, 417, 905, 353, 538, 465, 605, 876, 427, 324,
+ 514, 852, 427, 53, 427, 557, 173, 173, 7, 1274, 563, 31, 31, 31, 745,
+ 392, 289, 230, 230, 230, 91, 218, 327, 420, 420, 128, 901, 552, 420,
+ 230, 608, 552, 476, 347, 476, 231, 159, 137, 716, 648, 716, 627, 740,
+ 718, 679, 679, 6, 718, 740, 6, 189, 679, 125, 159, 757, 1191, 409,
+ 175, 250, 409, 67, 324, 681, 605, 550, 398, 550, 931, 478, 174, 21,
+ 316, 91, 316, 654, 409, 425, 425, 699, 61, 699, 321, 698, 321, 698,
+ 61, 425, 699, 321, 409, 699, 299, 335, 321, 335, 61, 698, 699, 654,
+ 698, 299, 425, 231, 14, 121, 515, 121, 14, 165, 81, 409, 189, 81,
+ 373, 465, 463, 1055, 507, 81, 81, 189, 1246, 321, 409, 886, 104, 842,
+ 689, 300, 740, 380, 656, 656, 832, 656, 380, 300, 300, 206, 187, 175,
+ 142, 465, 206, 271, 468, 215, 560, 83, 215, 83, 215, 215, 83, 175,
+ 215, 83, 83, 111, 206, 756, 559, 756, 1367, 206, 559, 1015, 559, 559,
+ 946, 1015, 548, 559, 756, 1043, 756, 698, 159, 414, 308, 458, 997,
+ 663, 663, 347, 39, 755, 838, 323, 755, 323, 159, 159, 717, 159, 21,
+ 41, 128, 516, 159, 717, 71, 870, 755, 159, 740, 717, 374, 516, 740,
+ 51, 148, 335, 148, 335, 791, 120, 364, 335, 335, 51, 120, 251, 538,
+ 251, 971, 1395, 538, 78, 178, 538, 538, 918, 129, 918, 129, 538, 538,
+ 656, 129, 538, 538, 129, 538, 1051, 538, 128, 838, 931, 998, 823,
+ 1095, 334, 870, 334, 367, 550, 1061, 498, 745, 832, 498, 745, 716,
+ 498, 498, 128, 997, 832, 716, 832, 130, 642, 616, 497, 432, 432, 432,
+
+
+
+Luby, et al. Standards Track [Page 37]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 432, 642, 159, 432, 46, 230, 788, 160, 230, 478, 46, 693, 103, 920,
+ 230, 589, 643, 160, 616, 432, 165, 165, 583, 592, 838, 784, 583, 710,
+ 6, 583, 583, 6, 35, 230, 838, 592, 710, 6, 589, 230, 838, 30, 592,
+ 583, 6, 583, 6, 6, 583, 30, 30, 6, 375, 375, 99, 36, 1158, 425, 662,
+ 417, 681, 364, 375, 1025, 538, 822, 669, 893, 538, 538, 450, 409,
+ 632, 527, 632, 563, 632, 527, 550, 71, 698, 550, 39, 550, 514, 537,
+ 514, 537, 111, 41, 173, 592, 173, 648, 173, 173, 173, 1011, 514, 173,
+ 173, 514, 166, 648, 355, 161, 166, 648, 497, 327, 327, 550, 650, 21,
+ 425, 605, 555, 103, 425, 605, 842, 836, 1011, 636, 138, 756, 836,
+ 756, 756, 353, 1011, 636, 636, 1158, 741, 741, 842, 756, 741, 1011,
+ 677, 1011, 770, 366, 306, 488, 920, 920, 665, 775, 502, 500, 775,
+ 775, 648, 364, 833, 207, 13, 93, 500, 364, 500, 665, 500, 93, 295,
+ 183, 1293, 313, 272, 313, 279, 303, 93, 516, 93, 1013, 381, 6, 93,
+ 93, 303, 259, 643, 168, 673, 230, 1261, 230, 230, 673, 1060, 1079,
+ 1079, 550, 741, 741, 590, 527, 741, 741, 442, 741, 442, 848, 741,
+ 590, 925, 219, 527, 925, 335, 442, 590, 239, 590, 590, 590, 239, 527,
+ 239, 1033, 230, 734, 241, 741, 230, 549, 548, 1015, 1015, 32, 36,
+ 433, 465, 724, 465, 73, 73, 73, 465, 808, 73, 592, 1430, 250, 154,
+ 154, 250, 538, 353, 353, 353, 353, 353, 175, 194, 206, 538, 632,
+ 1163, 960, 175, 175, 538, 452, 632, 1163, 175, 538, 960, 194, 175,
+ 194, 632, 960, 632, 94, 632, 461, 960, 1163, 1163, 461, 632, 960,
+ 755, 707, 105, 382, 625, 382, 382, 784, 707, 871, 559, 387, 387, 871,
+ 784, 559, 784, 88, 36, 570, 314, 1028, 975, 335, 335, 398, 573, 573,
+ 573, 21, 215, 562, 738, 612, 424, 21, 103, 788, 870, 912, 23, 186,
+ 757, 73, 818, 23, 73, 563, 952, 262, 563, 137, 262, 1022, 952, 137,
+ 1273, 442, 952, 604, 137, 308, 384, 913, 235, 325, 695, 398, 95, 668,
+ 776, 713, 309, 691, 22, 10, 364, 682, 682, 578, 481, 1252, 1072,
+ 1252, 825, 578, 825, 1072, 1149, 592, 273, 387, 273, 427, 155, 1204,
+ 50, 452, 50, 1142, 50, 367, 452, 1142, 611, 367, 50, 50, 367, 50,
+ 1675, 99, 367, 50, 1501, 1099, 830, 681, 689, 917, 1089, 453, 425,
+ 235, 918, 538, 550, 335, 161, 387, 859, 324, 21, 838, 859, 1123, 21,
+ 723, 21, 335, 335, 206, 21, 364, 1426, 21, 838, 838, 335, 364, 21,
+ 21, 859, 920, 838, 838, 397, 81, 639, 397, 397, 588, 933, 933, 784,
+ 222, 830, 36, 36, 222, 1251, 266, 36, 146, 266, 366, 581, 605, 366,
+ 22, 966, 681, 681, 433, 730, 1013, 550, 21, 21, 938, 488, 516, 21,
+ 21, 656, 420, 323, 323, 323, 327, 323, 918, 581, 581, 830, 361, 830,
+ 364, 259, 364, 496, 496, 364, 691, 705, 691, 475, 427, 1145, 600,
+ 179, 427, 527, 749, 869, 689, 335, 347, 220, 298, 689, 1426, 183,
+ 554, 55, 832, 550, 550, 165, 770, 957, 67, 1386, 219, 683, 683, 355,
+ 683, 355, 355, 738, 355, 842, 931, 266, 325, 349, 256, 1113, 256,
+ 423, 960, 554, 554, 325, 554, 508, 22, 142, 22, 508, 916, 767, 55,
+ 1529, 767, 55, 1286, 93, 972, 550, 931, 1286, 1286, 972, 93, 1286,
+ 1392, 890, 93, 1286, 93, 1286, 972, 374, 931, 890, 808, 779, 975,
+ 975, 175, 173, 4, 681, 383, 1367, 173, 383, 1367, 383, 173, 175, 69,
+ 238, 146, 238, 36, 148, 888, 238, 173, 238, 148, 238, 888, 185, 925,
+ 925, 797, 925, 815, 925, 469, 784, 289, 784, 925, 797, 925, 925,
+ 1093, 925, 925, 925, 1163, 797, 797, 815, 925, 1093, 784, 636, 663,
+ 925, 187, 922, 316, 1380, 709, 916, 916, 187, 355, 948, 916, 187,
+
+
+
+Luby, et al. Standards Track [Page 38]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 916, 916, 948, 948, 916, 355, 316, 316, 334, 300, 1461, 36, 583,
+ 1179, 699, 235, 858, 583, 699, 858, 699, 1189, 1256, 1189, 699, 797,
+ 699, 699, 699, 699, 427, 488, 427, 488, 175, 815, 656, 656, 150, 322,
+ 465, 322, 870, 465, 1099, 582, 665, 767, 749, 635, 749, 600, 1448,
+ 36, 502, 235, 502, 355, 502, 355, 355, 355, 172, 355, 355, 95, 866,
+ 425, 393, 1165, 42, 42, 42, 393, 939, 909, 909, 836, 552, 424, 1333,
+ 852, 897, 1426, 1333, 1446, 1426, 997, 1011, 852, 1198, 55, 32, 239,
+ 588, 681, 681, 239, 1401, 32, 588, 239, 462, 286, 1260, 984, 1160,
+ 960, 960, 486, 828, 462, 960, 1199, 581, 850, 663, 581, 751, 581,
+ 581, 1571, 252, 252, 1283, 264, 430, 264, 430, 430, 842, 252, 745,
+ 21, 307, 681, 1592, 488, 857, 857, 1161, 857, 857, 857, 138, 374,
+ 374, 1196, 374, 1903, 1782, 1626, 414, 112, 1477, 1040, 356, 775,
+ 414, 414, 112, 356, 775, 435, 338, 1066, 689, 689, 1501, 689, 1249,
+ 205, 689, 765, 220, 308, 917, 308, 308, 220, 327, 387, 838, 917, 917,
+ 917, 220, 662, 308, 220, 387, 387, 220, 220, 308, 308, 308, 387,
+ 1009, 1745, 822, 279, 554, 1129, 543, 383, 870, 1425, 241, 870, 241,
+ 383, 716, 592, 21, 21, 592, 425, 550, 550, 550, 427, 230, 57, 483,
+ 784, 860, 57, 308, 57, 486, 870, 447, 486, 433, 433, 870, 433, 997,
+ 486, 443, 433, 433, 997, 486, 1292, 47, 708, 81, 895, 394, 81, 935,
+ 81, 81, 81, 374, 986, 916, 1103, 1095, 465, 495, 916, 667, 1745, 518,
+ 220, 1338, 220, 734, 1294, 741, 166, 828, 741, 741, 1165, 1371, 1371,
+ 471, 1371, 647, 1142, 1878, 1878, 1371, 1371, 822, 66, 327, 158, 427,
+ 427, 465, 465, 676, 676, 30, 30, 676, 676, 893, 1592, 93, 455, 308,
+ 582, 695, 582, 629, 582, 85, 1179, 85, 85, 1592, 1179, 280, 1027,
+ 681, 398, 1027, 398, 295, 784, 740, 509, 425, 968, 509, 46, 833, 842,
+ 401, 184, 401, 464, 6, 1501, 1501, 550, 538, 883, 538, 883, 883, 883,
+ 1129, 550, 550, 333, 689, 948, 21, 21, 241, 2557, 2094, 273, 308, 58,
+ 863, 893, 1086, 409, 136, 1086, 592, 592, 830, 830, 883, 830, 277,
+ 68, 689, 902, 277, 453, 507, 129, 689, 630, 664, 550, 128, 1626,
+ 1626, 128, 902, 312, 589, 755, 755, 589, 755, 407, 1782, 589, 784,
+ 1516, 1118, 407, 407, 1447, 589, 235, 755, 1191, 235, 235, 407, 128,
+ 589, 1118, 21, 383, 1331, 691, 481, 383, 1129, 1129, 1261, 1104,
+ 1378, 1129, 784, 1129, 1261, 1129, 947, 1129, 784, 784, 1129, 1129,
+ 35, 1104, 35, 866, 1129, 1129, 64, 481, 730, 1260, 481, 970, 481,
+ 481, 481, 481, 863, 481, 681, 699, 863, 486, 681, 481, 481, 55, 55,
+ 235, 1364, 944, 632, 822, 401, 822, 952, 822, 822, 99, 550, 2240,
+ 550, 70, 891, 860, 860, 550, 550, 916, 1176, 1530, 425, 1530, 916,
+ 628, 1583, 916, 628, 916, 916, 628, 628, 425, 916, 1062, 1265, 916,
+ 916, 916, 280, 461, 916, 916, 1583, 628, 1062, 916, 916, 677, 1297,
+ 924, 1260, 83, 1260, 482, 433, 234, 462, 323, 1656, 997, 323, 323,
+ 931, 838, 931, 1933, 1391, 367, 323, 931, 1391, 1391, 103, 1116,
+ 1116, 1116, 769, 1195, 1218, 312, 791, 312, 741, 791, 997, 312, 334,
+ 334, 312, 287, 287, 633, 1397, 1426, 605, 1431, 327, 592, 705, 1194,
+ 592, 1097, 1118, 1503, 1267, 1267, 1267, 618, 1229, 734, 1089, 785,
+ 1089, 1129, 1148, 1148, 1089, 915, 1148, 1129, 1148, 1011, 1011,
+ 1229, 871, 1560, 1560, 1560, 563, 1537, 1009, 1560, 632, 985, 592,
+ 1308, 592, 882, 145, 145, 397, 837, 383, 592, 592, 832, 36, 2714,
+ 2107, 1588, 1347, 36, 36, 1443, 1453, 334, 2230, 1588, 1169, 650,
+
+
+
+Luby, et al. Standards Track [Page 39]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 1169, 2107, 425, 425, 891, 891, 425, 2532, 679, 274, 274, 274, 325,
+ 274, 1297, 194, 1297, 627, 314, 917, 314, 314, 1501, 414, 1490, 1036,
+ 592, 1036, 1025, 901, 1218, 1025, 901, 280, 592, 592, 901, 1461, 159,
+ 159, 159, 2076, 1066, 1176, 1176, 516, 327, 516, 1179, 1176, 899,
+ 1176, 1176, 323, 1187, 1229, 663, 1229, 504, 1229, 916, 1229, 916,
+ 1661, 41, 36, 278, 1027, 648, 648, 648, 1626, 648, 646, 1179, 1580,
+ 1061, 1514, 1008, 1741, 2076, 1514, 1008, 952, 1089, 427, 952, 427,
+ 1083, 425, 427, 1089, 1083, 425, 427, 425, 230, 920, 1678, 920, 1678,
+ 189, 189, 953, 189, 133, 189, 1075, 189, 189, 133, 1264, 725, 189,
+ 1629, 189, 808, 230, 230, 2179, 770, 230, 770, 230, 21, 21, 784,
+ 1118, 230, 230, 230, 770, 1118, 986, 808, 916, 30, 327, 918, 679,
+ 414, 916, 1165, 1355, 916, 755, 733, 433, 1490, 433, 433, 433, 605,
+ 433, 433, 433, 1446, 679, 206, 433, 21, 2452, 206, 206, 433, 1894,
+ 206, 822, 206, 2073, 206, 206, 21, 822, 21, 206, 206, 21, 383, 1513,
+ 375, 1347, 432, 1589, 172, 954, 242, 1256, 1256, 1248, 1256, 1256,
+ 1248, 1248, 1256, 842, 13, 592, 13, 842, 1291, 592, 21, 175, 13, 592,
+ 13, 13, 1426, 13, 1541, 445, 808, 808, 863, 647, 219, 1592, 1029,
+ 1225, 917, 1963, 1129, 555, 1313, 550, 660, 550, 220, 660, 552, 663,
+ 220, 533, 220, 383, 550, 1278, 1495, 636, 842, 1036, 425, 842, 425,
+ 1537, 1278, 842, 554, 1508, 636, 554, 301, 842, 792, 1392, 1021, 284,
+ 1172, 997, 1021, 103, 1316, 308, 1210, 848, 848, 1089, 1089, 848,
+ 848, 67, 1029, 827, 1029, 2078, 827, 1312, 1029, 827, 590, 872, 1312,
+ 427, 67, 67, 67, 67, 872, 827, 872, 2126, 1436, 26, 2126, 67, 1072,
+ 2126, 1610, 872, 1620, 883, 883, 1397, 1189, 555, 555, 563, 1189,
+ 555, 640, 555, 640, 1089, 1089, 610, 610, 1585, 610, 1355, 610, 1015,
+ 616, 925, 1015, 482, 230, 707, 231, 888, 1355, 589, 1379, 151, 931,
+ 1486, 1486, 393, 235, 960, 590, 235, 960, 422, 142, 285, 285, 327,
+ 327, 442, 2009, 822, 445, 822, 567, 888, 2611, 1537, 323, 55, 1537,
+ 323, 888, 2611, 323, 1537, 323, 58, 445, 593, 2045, 593, 58, 47, 770,
+ 842, 47, 47, 842, 842, 648, 2557, 173, 689, 2291, 1446, 2085, 2557,
+ 2557, 2291, 1780, 1535, 2291, 2391, 808, 691, 1295, 1165, 983, 948,
+ 2000, 948, 983, 983, 2225, 2000, 983, 983, 705, 948, 2000, 1795,
+ 1592, 478, 592, 1795, 1795, 663, 478, 1790, 478, 592, 1592, 173, 901,
+ 312, 4, 1606, 173, 838, 754, 754, 128, 550, 1166, 551, 1480, 550,
+ 550, 1875, 1957, 1166, 902, 1875, 550, 550, 551, 2632, 551, 1875,
+ 1875, 551, 2891, 2159, 2632, 3231, 551, 815, 150, 1654, 1059, 1059,
+ 734, 770, 555, 1592, 555, 2059, 770, 770, 1803, 627, 627, 627, 2059,
+ 931, 1272, 427, 1606, 1272, 1606, 1187, 1204, 397, 822, 21, 1645,
+ 263, 263, 822, 263, 1645, 280, 263, 605, 1645, 2014, 21, 21, 1029,
+ 263, 1916, 2291, 397, 397, 496, 270, 270, 1319, 264, 1638, 264, 986,
+ 1278, 1397, 1278, 1191, 409, 1191, 740, 1191, 754, 754, 387, 63, 948,
+ 666, 666, 1198, 548, 63, 1248, 285, 1248, 169, 1248, 1248, 285, 918,
+ 224, 285, 1426, 1671, 514, 514, 717, 514, 51, 1521, 1745, 51, 605,
+ 1191, 51, 128, 1191, 51, 51, 1521, 267, 513, 952, 966, 1671, 897, 51,
+ 71, 592, 986, 986, 1121, 592, 280, 2000, 2000, 1165, 1165, 1165,
+ 1818, 222, 1818, 1165, 1252, 506, 327, 443, 432, 1291, 1291, 2755,
+ 1413, 520, 1318, 227, 1047, 828, 520, 347, 1364, 136, 136, 452, 457,
+ 457, 132, 457, 488, 1087, 1013, 2225, 32, 1571, 2009, 483, 67, 483,
+
+
+
+Luby, et al. Standards Track [Page 40]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 740, 740, 1013, 2854, 866, 32, 2861, 866, 887, 32, 2444, 740, 32, 32,
+ 866, 2225, 866, 32, 1571, 2627, 32, 850, 1675, 569, 1158, 32, 1158,
+ 1797, 2641, 1565, 1158, 569, 1797, 1158, 1797, 55, 1703, 42, 55,
+ 2562, 675, 1703, 42, 55, 749, 488, 488, 347, 1206, 1286, 1286, 488,
+ 488, 1206, 1286, 1206, 1286, 550, 550, 1790, 860, 550, 2452, 550,
+ 550, 2765, 1089, 1633, 797, 2244, 1313, 194, 2129, 194, 194, 194,
+ 818, 32, 194, 450, 1313, 2387, 194, 1227, 2387, 308, 2232, 526, 476,
+ 278, 830, 830, 194, 830, 194, 278, 194, 714, 476, 830, 714, 830, 278,
+ 830, 2532, 1218, 1759, 1446, 960, 1747, 187, 1446, 1759, 960, 105,
+ 1446, 1446, 1271, 1446, 960, 960, 1218, 1446, 1446, 105, 1446, 960,
+ 488, 1446, 427, 534, 842, 1969, 2460, 1969, 842, 842, 1969, 427, 941,
+ 2160, 427, 230, 938, 2075, 1675, 1675, 895, 1675, 34, 129, 1811, 239,
+ 749, 1957, 2271, 749, 1908, 129, 239, 239, 129, 129, 2271, 2426,
+ 1355, 1756, 194, 1583, 194, 194, 1583, 194, 1355, 194, 1628, 2221,
+ 1269, 2425, 1756, 1355, 1355, 1583, 1033, 427, 582, 30, 582, 582,
+ 935, 1444, 1962, 915, 733, 915, 938, 1962, 767, 353, 1630, 1962,
+ 1962, 563, 733, 563, 733, 353, 822, 1630, 740, 2076, 2076, 2076, 589,
+ 589, 2636, 866, 589, 947, 1528, 125, 273, 1058, 1058, 1161, 1635,
+ 1355, 1161, 1161, 1355, 1355, 650, 1206, 1206, 784, 784, 784, 784,
+ 784, 412, 461, 412, 2240, 412, 679, 891, 461, 679, 679, 189, 189,
+ 1933, 1651, 2515, 189, 1386, 538, 1386, 1386, 1187, 1386, 2423, 2601,
+ 2285, 175, 175, 2331, 194, 3079, 384, 538, 2365, 2294, 538, 2166,
+ 1841, 3326, 1256, 3923, 976, 85, 550, 550, 1295, 863, 863, 550, 1249,
+ 550, 1759, 146, 1069, 920, 2633, 885, 885, 1514, 1489, 166, 1514,
+ 2041, 885, 2456, 885, 2041, 1081, 1948, 362, 550, 94, 324, 2308, 94,
+ 2386, 94, 550, 874, 1329, 1759, 2280, 1487, 493, 493, 2099, 2599,
+ 1431, 1086, 1514, 1086, 2099, 1858, 368, 1330, 2599, 1858, 2846,
+ 2846, 2907, 2846, 713, 713, 1854, 1123, 713, 713, 3010, 1123, 3010,
+ 538, 713, 1123, 447, 822, 555, 2011, 493, 508, 2292, 555, 1736, 2135,
+ 2704, 555, 2814, 555, 2000, 555, 555, 822, 914, 327, 679, 327, 648,
+ 537, 2263, 931, 1496, 537, 1296, 1745, 1592, 1658, 1795, 650, 1592,
+ 1745, 1745, 1658, 1592, 1745, 1592, 1745, 1658, 1338, 2124, 1592,
+ 1745, 1745, 1745, 837, 1726, 2897, 1118, 1118, 230, 1118, 1118, 1118,
+ 1388, 1748, 514, 128, 1165, 931, 514, 2974, 2041, 2387, 2041, 979,
+ 185, 36, 1269, 550, 173, 812, 36, 1165, 2676, 2562, 1473, 2885, 1982,
+ 1578, 1578, 383, 383, 2360, 383, 1578, 2360, 1584, 1982, 1578, 1578,
+ 1578, 2019, 1036, 355, 724, 2023, 205, 303, 355, 1036, 1966, 355,
+ 1036, 401, 401, 401, 830, 401, 849, 578, 401, 849, 849, 578, 1776,
+ 1123, 552, 2632, 808, 1446, 1120, 373, 1529, 1483, 1057, 893, 1284,
+ 1430, 1529, 1529, 2632, 1352, 2063, 1606, 1352, 1606, 2291, 3079,
+ 2291, 1529, 506, 838, 1606, 1606, 1352, 1529, 1529, 1483, 1529, 1606,
+ 1529, 259, 902, 259, 902, 612, 612, 284, 398, 2991, 1534, 1118, 1118,
+ 1118, 1118, 1118, 734, 284, 2224, 398, 734, 284, 734, 398, 3031, 398,
+ 734, 1707, 2643, 1344, 1477, 475, 1818, 194, 1894, 691, 1528, 1184,
+ 1207, 1501, 6, 2069, 871, 2069, 3548, 1443, 2069, 2685, 3265, 1350,
+ 3265, 2069, 2069, 128, 1313, 128, 663, 414, 1313, 414, 2000, 128,
+ 2000, 663, 1313, 699, 1797, 550, 327, 550, 1526, 699, 327, 1797,
+ 1526, 550, 550, 327, 550, 1426, 1426, 1426, 2285, 1123, 890, 728,
+
+
+
+Luby, et al. Standards Track [Page 41]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+ 1707, 728, 728, 327, 253, 1187, 1281, 1364, 1571, 2170, 755, 3232,
+ 925, 1496, 2170, 2170, 1125, 443, 902, 902, 925, 755, 2078, 2457,
+ 902, 2059, 2170, 1643, 1129, 902, 902, 1643, 1129, 606, 36, 103, 338,
+ 338, 1089, 338, 338, 338, 1089, 338, 36, 340, 1206, 1176, 2041, 833,
+ 1854, 1916, 1916, 1501, 2132, 1736, 3065, 367, 1934, 833, 833, 833,
+ 2041, 3017, 2147, 818, 1397, 828, 2147, 398, 828, 818, 1158, 818,
+ 689, 327, 36, 1745, 2132, 582, 1475, 189, 582, 2132, 1191, 582, 2132,
+ 1176, 1176, 516, 2610, 2230, 2230, 64, 1501, 537, 1501, 173, 2230,
+ 2988, 1501, 2694, 2694, 537, 537, 173, 173, 1501, 537, 64, 173, 173,
+ 64, 2230, 537, 2230, 537, 2230, 2230, 2069, 3142, 1645, 689, 1165,
+ 1165, 1963, 514, 488, 1963, 1145, 235, 1145, 1078, 1145, 231, 2405,
+ 552, 21, 57, 57, 57, 1297, 1455, 1988, 2310, 1885, 2854, 2014, 734,
+ 1705, 734, 2854, 734, 677, 1988, 1660, 734, 677, 734, 677, 677, 734,
+ 2854, 1355, 677, 1397, 2947, 2386, 1698, 128, 1698, 3028, 2386, 2437,
+ 2947, 2386, 2643, 2386, 2804, 1188, 335, 746, 1187, 1187, 861, 2519,
+ 1917, 2842, 1917, 675, 1308, 234, 1917, 314, 314, 2339, 2339, 2592,
+ 2576, 902, 916, 2339, 916, 2339, 916, 2339, 916, 1089, 1089, 2644,
+ 1221, 1221, 2446, 308, 308, 2225, 2225, 3192, 2225, 555, 1592, 1592,
+ 555, 893, 555, 550, 770, 3622, 2291, 2291, 3419, 465, 250, 2842,
+ 2291, 2291, 2291, 935, 160, 1271, 308, 325, 935, 1799, 1799, 1891,
+ 2227, 1799, 1598, 112, 1415, 1840, 2014, 1822, 2014, 677, 1822, 1415,
+ 1415, 1822, 2014, 2386, 2159, 1822, 1415, 1822, 179, 1976, 1033, 179,
+ 1840, 2014, 1415, 1970, 1970, 1501, 563, 563, 563, 462, 563, 1970,
+ 1158, 563, 563, 1541, 1238, 383, 235, 1158, 383, 1278, 383, 1898,
+ 2938, 21, 2938, 1313, 2201, 2059, 423, 2059, 1313, 872, 1313, 2044,
+ 89, 173, 3327, 1660, 2044, 1623, 173, 1114, 1114, 1592, 1868, 1651,
+ 1811, 383, 3469, 1811, 1651, 869, 383, 383, 1651, 1651, 3223, 2166,
+ 3469, 767, 383, 1811, 767, 2323, 3355, 1457, 3341, 2640, 2976, 2323,
+ 3341, 2323, 2640, 103, 103, 1161, 1080, 2429, 370, 2018, 2854, 2429,
+ 2166, 2429, 2094, 2207, 871, 1963, 1963, 2023, 2023, 2336, 663, 2893,
+ 1580, 691, 663, 705, 2046, 2599, 409, 2295, 1118, 2494, 1118, 1950,
+ 549, 2494, 2453, 2046, 2494, 2453, 2046, 2453, 2046, 409, 1118, 4952,
+ 2291, 2225, 1894, 1423, 2498, 567, 4129, 1475, 1501, 795, 463, 2084,
+ 828, 828, 232, 828, 232, 232, 1818, 1818, 666, 463, 232, 220, 220,
+ 2162, 2162, 833, 4336, 913, 35, 913, 21, 2927, 886, 3037, 383, 886,
+ 876, 1747, 383, 916, 916, 916, 2927, 916, 1747, 837, 1894, 717, 423,
+ 481, 1894, 1059, 2262, 3206, 4700, 1059, 3304, 2262, 871, 1831, 871,
+ 3304, 1059, 1158, 1934, 1158, 756, 1511, 41, 978, 1934, 2603, 720,
+ 41, 756, 41, 325, 2611, 1158, 173, 1123, 1934, 1934, 1511, 2045,
+ 2045, 2045, 1423, 3206, 3691, 2512, 3206, 2512, 2000, 1811, 2504,
+ 2504, 2611, 2437, 2437, 2437, 1455, 893, 150, 2665, 1966, 605, 398,
+ 2331, 1177, 516, 1962, 4241, 94, 1252, 760, 1292, 1962, 1373, 2000,
+ 1990, 3684, 42, 1868, 3779, 1811, 1811, 2041, 3010, 5436, 1780, 2041,
+ 1868, 1811, 1780, 1811, 1868, 1811, 2041, 1868, 1811, 5627, 4274,
+ 1811, 1868, 4602, 1811, 1811, 1474, 2665, 235, 1474, 2665
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 42]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+6. Security Considerations
+
+ Data delivery can be subject to denial-of-service attacks by
+ attackers that send corrupted packets that are accepted as legitimate
+ by receivers. This is particularly a concern for multicast delivery
+ because a corrupted packet may be injected into the session close to
+ the root of the multicast tree, in which case, the corrupted packet
+ will arrive at many receivers. This is particularly a concern when
+ the code described in this document is used because the use of even
+ one corrupted packet containing encoding data may result in the
+ decoding of an object that is completely corrupted and unusable. It
+ is thus RECOMMENDED that source authentication and integrity checking
+ are applied to decoded objects before delivering objects to an
+ application. For example, a SHA-1 hash [SHA1] of an object may be
+ appended before transmission, and the SHA-1 hash is computed and
+ checked after the object is decoded but before it is delivered to an
+ application. Source authentication SHOULD be provided, for example,
+ by including a digital signature verifiable by the receiver computed
+ on top of the hash value. It is also RECOMMENDED that a packet
+ authentication protocol, such as TESLA [RFC4082], be used to detect
+ and discard corrupted packets upon arrival. This method may also be
+ used to provide source authentication. Furthermore, it is
+ RECOMMENDED that Reverse Path Forwarding checks be enabled in all
+ network routers and switches along the path from the sender to
+ receivers to limit the possibility of a bad agent successfully
+ injecting a corrupted packet into the multicast tree data path.
+
+ Another security concern is that some FEC information may be obtained
+ by receivers out-of-band in a session description, and if the session
+ description is forged or corrupted, then the receivers will not use
+ the correct protocol for decoding content from received packets. To
+ avoid these problems, it is RECOMMENDED that measures be taken to
+ prevent receivers from accepting incorrect session descriptions,
+ e.g., by using source authentication to ensure that receivers only
+ accept legitimate session descriptions from authorized senders.
+
+7. IANA Considerations
+
+ Values of FEC Encoding IDs and FEC Instance IDs are subject to IANA
+ registration. For general guidelines on IANA considerations as they
+ apply to this document, see [RFC5052]. This document assigns the
+ Fully-Specified FEC Encoding ID 1 under the ietf:rmt:fec:encoding
+ name-space to "Raptor Code".
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 43]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+8. Acknowledgements
+
+ Numerous editorial improvements and clarifications were made to this
+ specification during the review process within 3GPP. Thanks are due
+ to the members of 3GPP Technical Specification Group SA, Working
+ Group 4, for these.
+
+9. References
+
+9.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC4082] Perrig, A., Song, D., Canetti, R., Tygar, J., and B.
+ Briscoe, "Timed Efficient Stream Loss-Tolerant
+ Authentication (TESLA): Multicast Source Authentication
+ Transform Introduction", RFC 4082, June 2005.
+
+ [RFC5052] Watson, M., Luby, M., and L. Vicisano, "Forward Error
+ Correction (FEC) Building Block", RFC 5052, August 2007.
+
+9.2. Informative References
+
+ [CCNC] Luby, M., Watson, M., Gasiba, T., Stockhammer, T., and W.
+ Xu, "Raptor Codes for Reliable Download Delivery in
+ Wireless Broadcast Systems", CCNC 2006, Las Vegas, NV ,
+ Jan 2006.
+
+ [MBMS] 3GPP, "Multimedia Broadcast/Multicast Service (MBMS);
+ Protocols and codecs", 3GPP TS 26.346 6.1.0, June 2005.
+
+ [RFC3453] Luby, M., Vicisano, L., Gemmell, J., Rizzo, L., Handley,
+ M., and J. Crowcroft, "The Use of Forward Error Correction
+ (FEC) in Reliable Multicast", RFC 3453, December 2002.
+
+ [Raptor] Shokrollahi, A., "Raptor Codes", IEEE Transactions on
+ Information Theory no. 6, June 2006.
+
+ [SHA1] "Secure Hash Standard", Federal Information Processing
+ Standards Publication (FIPS PUB) 180-1, April 2005.
+
+
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 44]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+Authors' Addresses
+
+ Michael Luby
+ Digital Fountain
+ 39141 Civic Center Drive
+ Suite 300
+ Fremont, CA 94538
+ U.S.A.
+
+ EMail: luby@digitalfountain.com
+
+
+ Amin Shokrollahi
+ EPFL
+ Laboratory of Algorithmic Mathematics
+ IC-IIF-ALGO
+ PSE-A
+ Lausanne 1015
+ Switzerland
+
+ EMail: amin.shokrollahi@epfl.ch
+
+
+ Mark Watson
+ Digital Fountain
+ 39141 Civic Center Drive
+ Suite 300
+ Fremont, CA 94538
+ U.S.A.
+
+ EMail: mark@digitalfountain.com
+
+
+ Thomas Stockhammer
+ Nomor Research
+ Brecherspitzstrasse 8
+ Munich 81541
+ Germany
+
+ EMail: stockhammer@nomor.de
+
+
+
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 45]
+
+RFC 5053 Raptor FEC Scheme October 2007
+
+
+Full Copyright Statement
+
+ Copyright (C) The IETF Trust (2007).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
+ THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+ THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+
+
+
+
+
+
+
+
+
+
+
+Luby, et al. Standards Track [Page 46]
+