 Review
 Open Access
GLDPCStaircase ALFEC codes: a fundamental study and new results
 Ferdaouss Mattoussi^{1}Email author,
 Vincent Roca^{1} and
 Bessem Sayadi^{2}
https://doi.org/10.1186/s136380160660y
© Mattoussi et al. 2016
 Received: 7 October 2015
 Accepted: 18 June 2016
 Published: 5 September 2016
Abstract
This paper provides fundamentals in the design and analysis of Generalized LowDensity Parity Check (GLDPC)Staircase codes over the erasure channel. These codes are constructed by extending an LDPCStaircase code (base code) using ReedSolomon (RS) codes (outer codes) in order to benefit from more powerful decoders. The GLDPCStaircase coding scheme adds, in addition to the LDPCStaircase repair symbols, extrarepair symbols that can be produced on demand and in large quantities, which provides small rate capabilities. Therefore, these codes are extremely flexible as they can be tuned to behave either like predefined rate LDPCStaircase codes at one extreme, or like a single RS code at another extreme, or like small rate codes. Concerning the code design, we show that RS codes with “quasi” Hankel matrixbased construction fulfill the desired structure properties, and that a hybrid (IT/RS/ML) decoding is feasible that achieves maximum likelihood (ML) correction capabilities at a lower complexity. Concerning performance analysis, we detail an asymptotic analysis method based on density evolution (DE), extrinsic information transfer (EXIT), and the area theorem. Based on several asymptotic and finite length results, after selecting the optimal internal parameters, we demonstrate that GLDPCStaircase codes feature excellent erasure recovery capabilities, close to that of ideal codes, both with large and very small objects. From this point of view, they outperform LDPCStaircase and Raptor codes and achieve correction capabilities close to those of RaptorQ codes. Therefore, all these results make GLDPCStaircase codes a universal ApplicationLayer FEC (ALFEC) solution for many situations that require erasure protection such as media streaming or file multicast transmission.
Keywords
 ALFEC codes
 GLDPC codes
 LDPCStaircase codes
 ML decoding
 DE and EXIT tools
 Erasure channels
1 Review
LowDensity Parity Check (LDPC) codes have been intensively studied during the last decade due to their nearShannon limit performance under iterative beliefpropagation (BP) decoding [1–3]. A (N,K) LDPC code, where N is the code length and K is its dimension, can be graphically represented as a bipartite graph with N “variable nodes” (VNs) and M=N−K “check nodes” (CNs). Equivalently, LDPC codes can be represented through their H _{ L } parity check matrix translating the connection between VNs and CNs. The degree of a VN or a CN is defined as the number of edges connected to it. A VN of degree n can be interpreted as a “length repetition code” (n,1), i.e., as a linear block code repeating n times its single information bit towards the CN set. Similarly, a CN of degree n can be interpreted as a Single Parity Check (SPC) code (n,n−1), i.e., as a linear block code associated with one parity equation. To improve error floor, minimal distance, and decoding complexity performances, a generalization of these codes was suggested by Tanner in [3], for which subsets of the variable nodes obey a more complex constraint than an SPC constraint. The SPC check nodes in a GLDPC structure are replaced with a generic linear block codes (n,k) referred to as subcodes or component codes while the sparse graph representation is kept unchanged. More powerful decoders at the check nodes have been investigated by several researchers in recent years after the work of Boutros et al. [4] and Lentmaier and Zigangirov [5] where BCH codes and Hamming codes were proposed as component codes, respectively. Later several works, on several channels, have been carried out in order to afford very large minimum distance and exhibit performance approaching Shannon’s limit. Each construction differs from others by modifying the linear block codes (component codes) on the check nodes [6, 7, 7–11] or/and the distribution of the structure of GLDPC codes [6] to offer a good compromise between waterfall performance and error floor under iterative decoding.
A GLDPCStaircase code is an LDPCStaircase code [12] in which the constraint nodes of the code graph are ReedSolomon (RS) codes (rather than SPCs) in order to benefit from more powerful decoders. The construction of these RS codes, with the desired properties, is omitted from the initial work [13]. Therefore in [14], we introduce RS codebased Hankel matrices to that purpose. GLDPCStaircase codes differ from the GLDPC codes proposed by Tanner and their successive variants. In particular, the GLDPCStaircase coding scheme allows each check node to produce a potentially large number of repair symbols in terms of RS codes, called extrarepair symbols, on demand. These extrarepair symbols extend the base LDPCStaircase code and very small rates are easily achievable. This feature is well suited to situations where channel conditions can be worse than expected and to fountainlike content distribution applications. More generally, these codes can easily be tuned to behave either like predefined rate LDPCStaircase codes at one extreme, or like a single RS code at another extreme, or like a small rate code.
From a decoding perspective, we propose a new hybrid (IT/RS/ML) decoding approach that achieves the optimal correction capabilities of ML decoding at a lower complexity [14]. Finally, in order to analyze their performance, we detail in [15] an asymptotic analysis method based on the density evolution (DE) and extrinsic information transfer (EXIT) tools and the area theorem. Then, using this theoretical analysis combined with a finite length analysis, we discuss the impacts of the code structure and its internal parameters on performance.
Asymptotic and finite length analyses show that these codes achieve excellent decoding performance (i.e., good average decoding overhead, good waterfall region, small error floor, and channel capacity approaching performance), close to that of ideal codes, both with very large and very small objects. This independence with respect to the code dimension is a key practical benefit (e.g., LDPC codes are known to be asymptotically good only). We show in this work that our codes outperform the Raptor codes as well as some GLDPC codes, while being close to RaptorQ codes. Their extreme flexibility makes it possible to tune them to perfectly match each usecase (like low bitrate streaming applications or at the opposite large file multicast transmission). The purpose of this paper is to give the reader a detailed overview of GLDPCStaircase codes and to provide new results.
This paper is organized as follows. Section 2 focuses on the design of GLDPCStaircase codes based on RS codes. Then in Section 3, we explain the proposed asymptotic analysis method. Section 4 presents several analyses and optimizations of GLDPCStaircase codes. Then, we analyze the achieved performance, compare these codes with other erasure codes, and provide preliminary decoding complexity results in Section 5. Finally, we conclude.
2 GLDPCStaircase code design
2.1 Code description

LDPCStaircase code: this is the base code with length N _{ L } and dimension K. Let M _{ L }=N _{ L }−K and let H _{ L }=(H _{1}H _{2}) be the associated parity check matrix^{1}. From the LDPCStaircase viewpoint, each row of H _{ L } defines the connections between the source and LDPC repair symbols. From the GLDPCStaircase viewpoint, each row of H _{ L } defines the connections between the RS repair symbols and the source and LDPC repair symbols. Consequently, each LDPCStaircase CN is represented as a powerful CN, called generalized check node, with GLDPCStaircase codes.

RS codes: they are the outer codes (or components codes). A generalized check node of index m can generate e(m) extrarepair symbols from the RS point of view (plus one LDPC repair symbol if we use scheme A as we will see below). This is done with an RS (n _{ m },k _{ m }) encoding over G F(2^{ b }) with 0≤e(m)≤E and m=1,...,M _{ L }. Here, E, k _{ m }, and n _{ m } are respectively the maximum number of extrarepair symbols per generalized check node, the RS code dimension and length for the generalized check node m.

the generalized check node that corresponds to RS codes;

the variable nodes (VN) further divided into three categories:

source symbols;

LDPC repair symbols;

extrarepair symbols.

2.2 Schemes A and B

Scheme A
For row m>1, the source symbols (from the user viewpoint) involved in this row plus the LDPC repair symbol of row m−1 are considered as source symbols from the RS viewpoint. The new LDPC repair symbol plus the e(m) extrarepair symbols are considered as repair symbols from the RS viewpoint. Therefore, the LDPC repair symbol is also an RS repair symbol. For m=1, the only difference is that there is no previous repair symbol (beginning of the staircase).
No matter the row, we have$$ n_{m} = k_{m} + 1 + e(m) ~ \text{and} ~ k_{m} = d_{r}(m)  1, $$(1)where d _{ r }(m) is the degree of row m of H _{ L }. Due to the staircase structure of H _{2}, it follows$$ { d_{r}(m) = \left\lbrace \begin{array}{ccc} d_{r_{H_{1}}}+ 1 & \text{if} & m=1 \text{;} \left(d_{r_{H_{1}}} = \frac{N_{1}}{\frac{1}{r_{L}}1}\right)\\ d_{r_{H_{1}}} + 2 & \text{if} & m>1 \text{;} \left(d_{r_{H_{1}}} = \frac{N_{1}}{\frac{1}{r_{L}}1}\right). \end{array}\right. } $$(2)In order to fulfill the duality property of the LDPC repair symbols, we propose in [16] a specific construction of RS codes based on “quasi” Hankel matrix. The generator matrix G of these codes has the following form:$$ G =\left[ \begin{array}{cccccccccc} 1&0&\ldots&\ldots&0&\boldsymbol{1}&1&\ldots&\ldots&1 \\ 0&1&\ddots&\ddots&\vdots&\boldsymbol{1}&b_{1}&b_{2}&\ldots&b_{n_{m}k_{m}} \\ 0&0&\ddots&\ddots&\vdots&\boldsymbol{1}&b_{2} &{{\cdot}{\raisebox{3pt}{$\cdot$}}{\raisebox{6pt}{$\cdot$}}}& {{\cdot}{\raisebox{3pt}{$\cdot$}}{\raisebox{6pt}{$\cdot$}}} &b_{n_{m}k_{m}+1}\\ \vdots&\vdots&\ddots&\ddots&0&\vdots&\vdots&{{\cdot}{\raisebox{3pt}{$\cdot$}}{\raisebox{6pt}{$\cdot$}}}&{{\cdot}{\raisebox{3pt}{$\cdot$}}{\raisebox{6pt}{$\cdot$}}}&\vdots \\ 0&0&\ldots&0&1&\boldsymbol{1}&b_{k_{m}}&{{\cdot}{\raisebox{3pt}{$\cdot$}}{\raisebox{6pt}{$\cdot$}}}&{{\cdot}{\raisebox{3pt}{$\cdot$}}{\raisebox{6pt}{$\cdot$}}}&b_{n_{m}1} \\ \end{array} \right] $$(3)where \(b_{i} = \frac {1} {1 {y}^{i}}\), for 1≤i≤q−1, y is an arbitrary primitive element of G F(q) and y ^{ i } is computed over G F(q).
Thanks to the column full of “1” in G for the first RS repair symbol, this latter can also be considered as an LDPCStaircase symbol (it is the XOR sum of source symbols from the RS viewpoint).

Scheme B
For each row m, the various source symbols (from the user viewpoint) involved in this row plus the LDPC repair symbol(s) are considered as source symbols from the RS viewpoint. The e(m) extrarepair symbols are the only repair symbols from the RS viewpoint. No matter the row, we have$$ n_{m} = k_{m} + e(m)~\text{and}~k_{m} = d_{r}(m). $$(4)Here, any RS code (e.g., based on Hankel, Cauchy, or Vandermonde matrices) can be used.
2.3 Extrarepair symbol regular/irregular distributions

Regular distribution: f _{ e }=0 for \(e \in \{0,1,\dots,E1\}\) and f _{ E }=1. Thus, each generalized check node m has the same number e(m)=E of extrarepair symbols and the rate of the extended code (GLDPCStaircase code) is$$ r_{G} =\frac{r_{L}}{1+ (1  r_{L})*E} $$(8)
Figure 1 shows such a regular variant.

Irregular distribution: the generalized check nodes can have a different number of extrarepair symbols.
Figure 2 shows such an irregular variant.Cunche et al. [13] shows that there exists an irregular uniform distribution of extrarepair symbols which achieves performance close to the optimal irregular distribution. This irregular uniform distribution allows to allocate the extrarepair symbols with \(\bar {f} =\frac {E}{2}\) and \(f_{e}=\frac {1}{E+1}\) for \(e \in \{0,1,\dots,E\}\).
Throughout this paper, we only consider the regular distribution and the irregular uniform distribution, and we assess in Section 4.4.1 their impacts on performance.
2.4 Encoding method

M _{ L } LDPCStaircase repair symbols, (p _{1}, …\(p_{M_{L}}\)), and

\(M_{L}\bar {f}\) extrarepair symbols, ((e _{1,1}, … e _{1,e(1)}), …(\(e_{M_{L},1}\), …\(e_{M_{L},e(M_{L})}\))).
Let S=(S _{1},S _{2},…S _{ K }) be the K source symbols. The \((p_{1}, \ldots p_{M_{L}})\phantom {\dot {i}\!}\) repair symbols are computed following the “stairs” of H _{ L }: p _{ m } is the XOR sum of the subset x of S of source symbols that have a “1” coefficient in row m, plus p _{ m−1} if m>1.
Then, the e(m) extrarepair symbols for row m are computed by multiplying the k _{ m } LDPC symbols by the systematic generator matrix G _{ m } of RS \(\left (n_{m}, k_{m} \right)\) associated to this row^{2}.
Example 2.1.
Consider the GLDPCStaircase code, scheme A, defined by the bipartite graph of Fig. 1. We have N _{ G }=13, K=4 and exactly e(m)=2 extrarepair symbols per generalized check node (regular distribution). H _{ L } and the various RS codes are as follows:

First row, using x=(S _{1},S _{2},S _{4}), produces$$ P_{1} = G^{4}_{rs}\times (S_{1}, S_{2}, S_{4}) $$$$ e_{1,1} = G^{5}_{rs} \times (S_{1}, S_{2}, S_{4}) $$$$ e_{1,2} = G^{6}_{rs} \times (S_{1}, S_{2}, S_{4}) $$

Second row, using x=(S _{2},S _{3}), produces$$ P_{2} = G^{4}_{rs}\times (S_{2}, S_{3}, P_{1}) $$$$ e_{2,1} = G^{5}_{rs} \times (S_{2}, S_{3}, P_{1}) $$$$ e_{2,2} = G^{6}_{rs} \times (S_{2}, S_{3}, S_{1}) $$

Third row, using x=(S _{1},S _{4}), produces$$ P_{3} = G^{4}_{rs}\times (S_{1}, S_{4}, P_{2}) $$$$ e_{3,1} = G^{5}_{rs} \times (S_{1}, S_{4}, P_{2}) $$$$ e_{3,2} = G^{6}_{rs} \times (S_{1}, S_{4}, P_{2}) $$
A key advantage is the fact that extrarepair symbols can be produced incrementally, on demand, rather than all at once (unlike LDPCStaircase repair symbols for instance). Their number can also be rather high since it is only limited by the finite field size, usually GF(2^{8}). Said differently, GLDPCStaircase codes can easily and dynamically be turned into small rate codes.
2.5 Decoding method
To recover erased source symbols, in addition to the (IT + RS) decoding method, we proposed a new decoding approach called hybrid (IT/RS/ML) decoding.
Let us consider a GLDPCStaircase (N _{ G },K) code, built from an LDPCStaircase (N _{ L },K) base code.
2.5.1 (IT + RS) decoding

the IT decoder over the LDPCStaircase graph. Extrarepair symbols are ignored at this step. This decoder features a linear complexity but also suboptimal erasure recovery capabilities;

the RS decoder over a given generalized check node. This is a classic RS decoding that takes into account the three types of symbols. This decoder features a higher complexity but is MDS;
Example 2.2.
Finally, Algorithm 1 details the (IT + RS) decoding that works symbol per symbol, in a recursive manner. This algorithm does not necessarily use all the received symbols: IT decoding is always preferred to RS decoding if both are possible, in order to reduce decoding complexity.
2.5.2 Hybrid (IT/RS/ML) decoding
We propose an hybrid (IT/RS/ML) decoding, generalization of the decoding approach proposed for LDPC codes in [17, 18]. Hybrid (IT/RS/ML) decoding consists of a joint use of IT, RS, and (binary/Non binary) ML decoding to achieve the performance of ML decoding at a lower complexity. It works as follows. It starts with (IT + RS) decoding. If (IT + RS) decoding succeeds, the hybrid decoding succeeds. Otherwise, the receiver switches to ML decoding, using the simplified linear system that results from the (IT + RS) decoding.

Binary ML decoder: extrarepair symbols are ignored at this step and instead it only considers binary equations, made of simple XOR sums, in order to reduce complexity. ML decoding can consist of simple Gaussian elimination (GE) on this subsystem.

Nonbinary ML decoder: the full linear system is considered here and GE is performed on G F(2^{ b }). As in binary ML decoding, this step also features a quadratic complexity but operations are now significantly more complex (performed on G F(2^{ b }) instead of simple XOR). However, it allows reaching the maximum correction capabilities of the code.
The hybrid (IT/RS/ML) decoding algorithm is presented in Algorithm 2.
3 Asymptotic analysis method
3.1 Preliminaries
In the sequel, we denote by d _{ vmax } and d _{ cmax } respectively the maximum variable and check node degrees in the bipartite (Tanner) graph associated with LDPCStaircase. Following [19], we define the edgeperspective DD polynomials by (λ(x), ρ(x)) and the node perspective DD polynomials by (\(L(x)=\lambda (x) = \sum _{i=1}^{dvmax} \lambda _{i}.x^{i1}\), \(R(x)=\sum _{i=1}^{dcmax} \rho _{i}.x^{i1}\)).
Given a GLDPCStaircase code, DD pair (λ, ρ) are defined by the underlying LDPCStaircase code, defined by the bottom graph of Fig. 1 (that is, not containing the extrarepair nodes). Assume that transmission takes place over an erasure channel with parameter ε. We denote by \({\mathcal {E}}(\lambda, \rho, {f_{e}})\) the ensemble of GLDPCStaircase with DD pair (λ, ρ) and with f _{ e } the fraction of generalized check nodes with e extrarepair symbols as presented in Eq. (7).
3.2 Density evolution
3.2.1 Introduction
Over erasure channels, DE becomes onedimensional, and it allows to analyze and even to construct capacityachieving codes [20]. It works by recursively tracking the erasure probability messages passed around the edges of the graph during IT decoding. Roughly speaking, this means that it recursively computes the fraction of erased messages passed during the IT decoding. Using this technique, the decoding threshold of codes is defined as the supremum value of ε (that is, the worst channel condition) that allows transmission with an arbitrary small error probability assuming N goes to infinity [19].
Let us determine the DE equations of GLDPCStaircase codes.
3.2.2 DE equations of GLDPCStaircase codes
Assume that an arbitrary GLDPCStaircase code from \({\mathcal {E}}(\lambda, \rho, {f_{e}})\), with length N _{ G } goes to infinity.

P _{ ℓ }, the probability of an LDPC symbol (source or repair) node sending an erasure at iteration ℓ to the connected generalized check nodes. Clearly, P _{0} is equal to the channel erasure probability ε.

Q _{ ℓ }, the probability of a generalized check node sending an erasure (to an LDPC symbolnode) at iteration ℓ.
The calculus of these probabilities depends on the coding scheme used to design the GLDPCStaircase code (scheme A or B). Next, we give more details for each case. At iteration ℓ, the LDPC symbols are erased with probability P _{ ℓ }, while extrarepair symbols are always erased with probability ε (the channel erasure probability).
Scheme A: The first repair symbol generated by any RS code is one of the repair symbols of the LDPCStaircase code.
Consider a generalized check node c connected to symbolnodes \((v_{1},\dots,v_{d},e_{1,c},\dots,e_{e(c),c})\) where v _{ i } denotes an LDPC (source or repair) symbol node and e _{ i,c } denotes the ith extrarepair symbol node. Since c corresponds to an RS code, it can recover the value of an LDPC symbol node, say v _{1}, if and only if the number of erasures among the other symbolnodes \((v_{2},\dots,e_{e(c),c})\) is less than or equal to e(c).
Scheme B: All the LDPCStaircase repair symbols are source symbols for the RS codes.
Consider a constraint node c connected to symbolnodes \((v_{1},\dots,v_{d},e_{1,c},\dots,e_{e(c),c})\) where v _{ i } denotes an LDPC (source or repair) symbol node and e _{ i,c } denotes the ith extrarepair symbol node. The node c corresponds both to a parity check constraint between LDPC symbol nodes \((v_{1},\dots,v_{d})\) and to an RS linear constraint between all the symbolnodes \((v_{1},\dots,v_{d},e_{1,c},\dots,e_{e(c),c})\).

there are no erased symbols among \(v_{2},\dots,v_{d}\) (i.e., LDPC decoding);

there is at least one erased symbol among \(v_{2},\dots,v_{d}\), but the number of erasures among all the symbolnodes \((v_{1},\dots,v_{d},e_{1,c},\dots,e_{e(c),c})\) is less than or equal to e(c)−1.

the number of erased symbols among \(v_{2},\dots,v_{d}\) is equal to i and the number of erased symbols among \(e_{1,c},\dots,e_{e(c),c}\) is equal to j, with \(1 \leq i \leq \min (d1,e(c)1)\) and 0≤j≤e(c)−1−i.
Remark 3.1.
For both schemes, using Eqs. (11) or (13), (12) or (14), and (16), we can determine a recursive relation between P _{ ℓ } and P _{ ℓ+1}, with P _{0}=ε.
If we transmit at ε≤ε ^{(IT+RS)}, then all the erased LDPC symbols can be recovered. But if we transmit at ε>ε ^{(IT+RS)}, then some or all the erased LDPC symbols remain erased after the decoding ends.
Additionally, using the DE recursion equation, we can plot the evolution of the (IT + RS) decoding process of an GLDPCStaircase code for an erasure channel probability ε by tracing P _{ ℓ+1}=f(P _{ ℓ }) with \(l \to +\infty \) as shown in the following example.
Example 3.1.

Rate: \(r_{G}=\frac {1}{2}\)

Base code: r _{ L }=0.8, N1=5
$$ DD: \left\lbrace \begin{array}{l} \lambda(x) = 0.0909.x^{1}+0.9091.x^{4}, \rho(x) = x^{21}\\ L(x) = 0.2.x^{2}+0.8.x^{5}, R(x) =x^{22} \\ \end{array}\right. $$(18) 
E=3 (regular distribution of extrarepair symbols).
3.3 EXIT functions of GLDPCStaircase codes
3.3.1 Introduction
EXIT technique is a tool for predicting the convergence behavior of iterative processors for a variety of communication problems [21]. Over erasure channel, to visualize the convergence of iterative systems, rather than mutual information, the entropy information can be used (i.e., one minus mutual information). It is natural to use entropy in the setting of the erasure channel since the parameter ε itself represents the channel entropy. We focused in our work on EXIT based on entropy to evaluate the performance of GLDPCStaircase codes under (IT + RS) and ML decoding. Therefore, we extended the method presented in [22]. These EXIT functions are based on DE equations derived in Section 3.2. The EXIT technique defined in this section relates to the asymptotic performance of the ensemble \({\mathcal {E}}(\lambda, \rho, {f_{e}})\) under the decoding.
3.3.2 (IT + RS) EXIT function: h ^{ (IT+RS) } (ε)
where \({Q}_{+\infty }\) is Q _{ ℓ }, derived from the DE equations of GLDPCStaircase codes in Section 3.2, when the number of iterations goes to infinity.
Next, we present how can visualize the evolution of extrinsic erasure probability during (IT + RS) decoding in a graph called EXIT curve.
3.3.3 (IT + RS) EXIT curve
The (IT + RS) EXIT curve of the GLDPCStaircase code under (IT + RS) decoding can be derived, in terms of extrinsic erasure probability (at the output of the decoder) as a function of the a prior erasure probability (input of the decoder, ε).
Summarizing, the (IT + RS) EXIT curve is the trace of h ^{(IT+RS)}(ε) equation for ε starting from ε=ε ^{(IT+RS)} until ε=1. In other hand, it is zero up to the (IT + RS) decoding threshold ε ^{(IT+RS)}. It then jumps to a nonzero value and also continues smoothly until it reaches one at ε=1. Therefore, by using this curve, ε ^{(IT+RS)} is given by the value of ε where h ^{(IT+RS)}(ε) drops down to zero.
Example 3.2.

r _{ L }=0.6, N1=5

DD:$$ \left\lbrace \begin{array}{l} \lambda(x) = 0.2105x^{1} + 0.7895x^{4}, \rho(x) = x^{9}, \\ L(x) = 0.4x^{2} + 0.6x^{5}, R(x) = x^{10} \\ \end{array}\right. $$(22)
3.3.4 Upper bound on the ML decoding threshold
where, \(h^{ML}_{i}(\varepsilon)\) is the extrinsic erasure probability of LDPC symbol “i” after ML decoding as shown in Fig. 5.
we necessarily have \(\bar {\epsilon }^{ML} \geq \epsilon ^{ML}\). This gives an upper bound on the ML threshold, which is easily computed using h ^{(IT+RS)}.

Step 1: Plot the (IT + RS) EXIT curve as parametrized in Eq. (21).

Step 2: Determine the \(\bar {\epsilon }^{ML}\) by integrate backwards from the right end of the curve where ε=1. The integration process stops at \(\bar {\varepsilon }^{ML}\) where it assures Eq. (25). This gives the upper bound \(\bar {\varepsilon }^{ML}\) of the GLDPCStaircase codes.

Step 3: The ML EXIT curve is now the curve which is zero at the left of the upper bound on the ML decoding threshold and equals to the (IT + RS) EXIT curve to the right of this decoding threshold (i.e., the (IT + RS) EXIT and the ML EXIT curves coincide above \(\bar {\varepsilon }^{ML}\)).
Remark 3.2.
This upper bound is conjectured to be tight because the GLDPCStaircase codes are based on LDPCStaircase codes, which are binary codes and defined by quasiregular graphs.
Example 3.3.
Consider the same code of Example 3.2.
The (IT + RS) decoding threshold value is ε ^{(IT+RS)}=0.5376.
The ML decoding threshold upperbound is the unique point \(\bar {\varepsilon }^{ML} \in \left [\varepsilon ^{(\text {IT+RS})} \ 1\right ]\) such that the red area below the (IT + RS) EXIT curve, delimited by \(\varepsilon =\bar {\varepsilon }^{ML}\) at the left and by ε=1 at the right, is equal to the GLDPC code rate, r _{ G }=1/3. In this case, we obtain \(\bar {\varepsilon }^{ML} = 0.6664\).
4 Optimization of GLDPCStaircase codes
4.1 Description

Scheme A has the property that on each generalized check node, the repair symbol generated by the LDPC code is also an RS repair symbol.

On the opposite, with scheme B the generated LDPC repair symbol, on each generalized check node, is an RS source symbol.

the extrarepair symbols distribution across the H _{ L } rows: regular distribution or irregular uniform distribution,

the N1 parameter of the base code: degree of source variable nodes in H _{ L },

the base code rate r _{ L }.
Therefore, in this section, we start by showing the impacts of the property that the generated LDPC repair symbols are at the same time RS repair symbols, on the decoding behavior (i.e., compare scheme A and scheme B). Then, the best configuration of these parameters for hybrid (IT/RS/ML) decoding^{3} will be discussed. To gauge the correction capabilities of decoding, we use the asymptotic analysis based on DE and EXIT techniques presented in Section 3, as well as the finite length analysis.
4.2 Experimental conditions
For the finite length analysis, we have developed a GLDPCStaircase codec based on RS codes under (IT + RS) and ML decoding methods, in C language, using the OpenFEC.org project (http://openfec.org). All experiments are carried out by considering a memoryless erasure channel along with a transmission scheme where all the source and repair symbols are sent in a fully random order.
This has the benefit to make the performance results independent of the loss model^{4} and the target channel loss rate is the only parameter that needs to be considered.
Different LDPCStaircase matrices are used (more precisely we change the PRNG seed used to create the matrix). Then, the results, averaged over the tests obtained by varying LDPCStaircase matrix, show the average behavior of GLDPCStaircase codes.
In the sequel, we evaluate the finite length performance based on the decoding overhead^{5}, the decoding inefficiency ratio^{6} and the failure decoding probability^{7}.
Used degree distribution. Table showing LDPCStaircase DD for different values of N1 where \(r_{L}=\frac {2}{3}\)
N1  edge DD (λ(x), ρ(x))  node DD (L(x),R(x)) 

3  λ(x)=0.25.x ^{1}+0.75.x ^{2}, ρ(x)=x ^{7}  L(x)=0.3333.x ^{2}+0.6667.x ^{3}, R(x)=x ^{8} 
4  λ(x)=0.2.x ^{1}+0.8.x ^{3}, ρ(x)=x ^{9}  L(x)=0.3333.x ^{2}+0.6667.x ^{4}, R(x)=x ^{10} 
5  λ(x)=0.1666.x ^{1}+0.8333.x ^{4}, ρ(x)=x ^{11}  L(x)=0.3333.x ^{2}+0.6667.x ^{5}, R(x)=x ^{12} 
6  λ(x)=0.1429.x ^{1}+0.8571.x ^{5}, ρ(x)=x ^{13}  L(x)=0.3333.x ^{2}+0.6667.x ^{6}, R(x)=x ^{14} 
Used degree distribution. Table showing LDPCStaircase DD for different values of r _{ L } where N1=5
r _{ L }  edge DD (λ(x), ρ(x))  node DD (L(x),R(x)) 

\(\frac {1}{2}\)  λ(x)=0.2857.x ^{1}+0.7143.x ^{4}, ρ(x)=x ^{6}  L(x)=0.5000.x ^{2}+0.5000.x ^{5}, R(x)=x ^{7} 
\(\frac {2}{3}\)  λ(x)=0.1666.x ^{1}+0.8333.x ^{4}, ρ(x)=x ^{11}  L(x)=0.3333.x ^{2}+0.6667.x ^{5}, R(x) = x ^{12} 
0.75  λ(x)=0.1176.x ^{1}+0.8824.x ^{4}, ρ(x)=x ^{16}  L(x)=0.2500.x ^{2}+0.75.x ^{5}, R(x)=x ^{17} 
0.8  λ(x)=0.0909.x ^{1}+0.9091.x ^{4}, ρ(x)=x ^{21}  L(x)=0.2.x ^{2}+0.8.x ^{5}, R(x)=x ^{22} 
The calculus of these degree distributions is based on the parameter N1, \(d_{r_{H_{1}}}\), and the structure of LDPCStaircase codes.
For an irregular uniform distribution of extrarepair symbols, we use the notation \(f(\%)=[f_{0}\ f_{1}\ f_{2}\ \dots f_{e}]\) to define the fractions of generalized check nodes with e extrarepair symbols. For example, f(%)=[25 50 25] means that we have 25 % of generalized check nodes have 0 extrarepair symbols, 50 % of generalized check nodes have 1 extrarepair symbols, and 25 % of generalized check nodes have 2 extrarepair symbols.
4.3 Best coding scheme for GLDPCStaircase codes
Throughout this section, we investigate the impacts of the property given by scheme A on decoding performance in different configurations of GLDPCStaircase codes. For this reason, the study allows to determine the best for the hybrid (IT/RS/ML) decoding through a comparison between scheme A and scheme B.
4.3.1 Asymptotic results
This figure shows that the initial fraction of erasure messages emitted by the LDPC variable nodes is P _{ l } = 1 in schemes A and B. After an iteration (at the next output of the LDPC variable nodes) this fraction has evolved to P _{ l+1}=0.32 for the two schemes.
After second full iteration, i.e., at the output of the LDPC variable nodes, we see that an erasure fraction of scheme A is equal to P=0.2889 whereas it is equal to P=0.3117 for scheme B. This difference explains that the erasure probability in scheme A decreases more quickly than scheme B (i.e., the correction of the erasure in scheme A is better than scheme B). After that the process of the transfer continues in the same fashion for each subsequent iteration.
The figure also shows that the process of DE for scheme B is stuck at value >0 (P=0.3094) while for scheme A the process finishes with P=0. This means that under (IT + RS) decoding and at ε=0.32, the GLDPCStaircase codes converge (i.e., can recover all the erased LDPC symbols) only with scheme A. We continue the comparison between the two schemes in terms of decoding threshold using the EXIT analysis presented in Section 3.3. This analysis allows us to compute the (IT + RS) decoding threshold (ε ^{(IT+RS)}) and the upper bound on the ML decoding threshold (\(\bar {\varepsilon }^{\text {\scriptsize ML}}\)). We note that DE also allows to determine the decoding threshold, but it requires several calculations.
Decoding threshold comparison between schemes A and B for different values of N1 for (IT + RS) decoding and ML decoding. GLDPCStaircase codes with \(r_{L}=\frac {2}{3}\) and regular distribution of extrarepair symbols
r _{ G }  Decoding threshold  N1  Scheme A  Scheme B  

\(\frac {1}{2}\) (E=1)  ε ^{(IT+RS)}  3  0.4571  0.2905  
4  0.4269  0.2867  
5  0.3943  0.2709  
6  0.3646  0.2536  
\(\bar {\varepsilon }^{\text {ML}}\)  3  0.4900  0.4985  
4  0.4976  0.4996  
5  0.4993  0.4997  
6  0.4998  0.4999  
\(\frac {2}{5}\) (E=2)  ε ^{(IT+RS)}  3  0.5532  0.4041  
4  0.5136  0.3878  
5  0.4744  0.3639  
6  0.4392  0.3401  
\(\bar {\varepsilon }^{\text {ML}}\)  3  0.5946  0.5994  
4  0.5990  0.5998  
5  0.5998  0.5999  
6  0.5999  0.5999 
In the previous analysis, we fixed the base code rate and the distribution type of extrarepair symbols to study only the impact of the property of scheme A when varying N1. Let us now see the impact of this property when we vary r _{ L } (i.e., vary E) and the distribution of extrarepair symbols with N1 fixed to 5.
Decoding threshold comparison between (IT + RS) decoding and ML decoding, for \(r_{G}=\frac {1}{2}\) (Shannon limit =0.5) and regular distribution of extrarepair symbols
Decoding threshold  E  r _{ L }  Scheme A  Scheme B 

ε ^{(IT+RS)}  0  \(\frac {1}{2}\)  0.4380  0.4380 
1  \(\frac {2}{3}\)  0.3943  0.2709  
2  0.75  0.3647  0.2773  
3  0.8  0.3443  0.2819  
\(\bar {\varepsilon }^{\text {\scriptsize ML}}\)  0  \(\frac {1}{2}\)  0.4946  0.4946 
1  \(\frac {2}{3}\)  0.4993  0.4997  
2  0.75  0.4999  0.4999  
3  0.8  0.4999  0.4999 
Decoding threshold comparison between (IT + RS) decoding and ML decoding, for \(r_{G}=\frac {1}{2}\) (Shannon limit =0.5) and irregular uniform distribution of extrarepair symbols
Decoding threshold  f(%)  r _{ L }  Scheme A  Scheme B 

ε ^{(IT+RS)}  [0]  \(\frac {1}{2}\)  0.4380  0.4380 
[25 50 25]  \(\frac {2}{3}\)  0.4064  0.3029  
[0 50 25 0 25]  0.75  0.3874  0.3089  
[5 10 15 20 50]  0.8  0.3589  0.3007  
\(\bar {\varepsilon }^{\text {\scriptsize ML}}\)  [0]  \(\frac {1}{2}\)  0.4946  0.4946 
[25 50 25]  \(\frac {2}{3}\)  0.4993  0.4997  
[0 50 25 0 25]  0.75  0.4998  0.4998  
[5 10 15 20 50]  0.8  0.4998  0.4998 
Decoding threshold comparison between (IT + RS) decoding and ML decoding for different values of r _{ G } with \(r_{L}=\frac {2}{3}\) and regular distribution of extrarepair symbols
Decoding threshold  r _{ G }  E  Scheme A  Scheme B  Shannon limit 

ε ^{(IT+RS)}  \(\frac {2}{3}\)  E=0  0.2709  0.2709  0.3333 
\(\frac {1}{2}\)  E=1  0.3943  0.2709  0.5  
\(\frac {2}{5}\)  E=2  0.4744  0.3639  0.6  
\(\frac {1}{3}\)  E=3  0.5332  0.4394  0.6667  
\(\bar {\varepsilon }^{\text {\scriptsize ML}}\)  \(\frac {2}{3}\)  E=0  0.3301  0.3301  0.3333 
\(\frac {1}{2}\)  E=1  0.4993  0.4997  0.5  
\(\frac {2}{5}\)  E=2  0.5998  0.5999  0.6  
\(\frac {1}{3}\)  E=3  0.6666  0.6666  0.6667 
Decoding threshold comparison between (IT + RS) decoding and ML decoding for different values of r _{ G } with \(r_{L}=\frac {2}{3}\) and irregular uniform distribution of extrarepair symbols
Decoding threshold  r _{ G }  f(%)  Scheme A  Scheme B  Shannon limit 

ε ^{(IT+RS)}  \(\frac {2}{3}\)  [0]  0.2709  0.2709  0.3333 
\(\frac {1}{2}\)  [25 50 25]  0.4064  0.3029  0.5  
\(\frac {2}{5}\)  [0 25 50 25]  0.4819  0.3765  0.6  
\(\frac {1}{3}\)  [0 25 25 10 15 15 10]  0.5598  0.4768  0.6667  
\(\bar {\varepsilon }^{\text {ML}}\)  \(\frac {2}{3}\)  [0]  0.3301  0.3301  0.3333 
\(\frac {1}{2}\)  [25 50 25]  0.4993  0.4997  0.5  
\(\frac {2}{5}\)  [0 25 50 25]  0.5997  0.5999  0.6  
\(\frac {1}{3}\)  [0 25 25 10 15 15 10]  0.6665  0.6666  0.6667 
Therefore, for all configurations of GLDPCStaircase codes, the structure of scheme A resists to the channel loss more than scheme B under (IT + RS) and both have the same behavior under ML decoding with dense system.
4.3.2 Finite length results
This section aims to give additional claims on the impact of the property of scheme A in terms of decoding inefficiency ratio, decoding overhead, decoding failure probability, and error floor. All results are determined using N1=5 and a regular distribution of extrarepair symbols.
Figures 9 a and 10 a do the same in case of (IT + RS) decoding only. They show that scheme A exhibits the lowest average decoding inefficiency ratio in all cases. This is made possible by a higher number of RS repair symbols (i.e., increase of the minimum distance) for scheme A, which mechanically increases the success probability of decoding an erased symbol on each generalized check nodes. The increase of the RS repair symbols also avoids stopping sets associated to short cycles that stuck (IT + RS) decoding. This means that scheme A is more efficient on (IT + RS) decoding than scheme B.
In Fig. 11 a, the black vertical line corresponds to ideal, MDS code, for which the decoding failure is equal to 0 as long as the experienced loss rate is strictly inferior to 50 % for \(r_{G}=\frac {1}{2}\). This figure confirms that for two schemes, the GLDPCStaircase codes have a very small decoding failure probability, with no visible error floor above 10^{−5}. The little difference between the two curves is readable at the foot where we test several codes (i.e., at 49.45 % scheme A has 4.16.10^{−6} as decoding failure probability whereas scheme B has 5.45.10^{−6}). Figure 11 b gives additional details of the behavior of the two schemes using ML decoding. This figure confirms that scheme B has almost same decoding overhead as scheme A (i.e., with 6 symbols added to K, scheme A has 6.93.10^{−6} decoding failure probability while 7.27.10^{−6} with scheme B for channel erasure probability equals to 49.6 %). Also, the two schemes achieve ≃5.10^{−2} decoding failure probability with overhead equals to 2. Therefore, both schemes have a very small decoding overhead, close to that of MDS codes.
4.3.3 Conclusion of the analysis
The asymptotic analysis and finite length analysis confirm that all results prove that scheme A is globally the best solution: it significantly performs better than scheme B with an (IT + RS) decoding and leads similar performance to scheme B with an ML decoding with dense system. Thus, to design GLDPCStaircase codes, with hybrid (IT/RS/ML) decoding, we must choose scheme A. Therefore, the rest of this document will only consider scheme A.
4.4 Tuning internal parameters of GLDPCStaircase codes
In this section, we analyze the impact of three configuration parameters of GLDPCStaircase codes on the erasure recovery performance in order to obtain the best configuration over hybrid (IT/RS/ML) decoding.
4.4.1 The extrarepair symbol distribution
As shown in Section 2.1, we can distribute the extrarepair symbols on the generalized check nodes in two ways: regular, or irregular uniform distribution. In [13], based on asymptotic results, it is shown that these codes with (IT + RS) decoding perform the best under an irregular uniform distribution rule. However, in our work, we consider also the ML decoding scheme and the situation is completely different. Therefore, we test these two distributions to determine the best on each decoding type.
(IT + RS) decoding and ML decoding gaps to capacity for irregular uniform distribution (Δ _{2}) versus regular distribution (Δ _{1}) of extrarepair symbols for GLDPCStaircase codes with N1=5 and \(r_{L} = \frac {2}{3}\)
Decoding type  r _{ G }  E  Δ _{1}  f(%)  Δ _{2} 

(IT + RS)  \(\frac {2}{3}\)  E=0  0.06243  [0]  0.06243 
\(\frac {1}{2}\)  E=1  0.1057  [25 50 25]  0.0936  
\(\frac {2}{5}\)  E=2  0.1256  [0 25 50 25]  0.1181  
\(\frac {1}{3}\)  E=3  0.13346  [0 25 25 10 15 15 10]  0.1068  
\(\frac {1}{3.5}\)  E=4  0.1350  [0 25 0 0 0 75]  0.1167  
\(\frac {1}{5}\)  E=7  0.1268  [0 0 0 0 0 0 10 80 10]  0.1262  
ML  \(\frac {2}{3}\)  E=0  0.00323  [0]  0.00323 
\(\frac {1}{2}\)  E=1  0.0007  [25 50 25]  0.0007  
\(\frac {2}{5}\)  E=2  0.0002  [0 25 50 25]  0.0003  
\(\frac {1}{3}\)  E=3  0.0001  [0 25 25 10 15 15 10]  0.0002  
\(\frac {1}{3.5}\)  E=4  0.000081  [0 25 0 0 0 75]  0.0000857  
\(\frac {1}{5}\)  E=7  0.00007  [0 0 0 0 0 0 10 80 10]  0.00008 
(IT + RS) decoding and ML decoding gaps to capacity for irregular uniform distribution (Δ _{2}) versus regular distribution (Δ _{1}) of extrarepair symbols for GLDPCStaircase codes with N1=5 and \(r_{G} = \frac {1}{2}\)
Decoding type  r _{ L }  E  Δ _{1}  f(%)  Δ _{2} 

(IT+RS)  \(\frac {1}{2}\)  0  0.062  [0]  0.062 
\(\frac {2}{3}\)  1  0.1057  [25 50 25]  0.0936  
0.75  2  0.1353  [0 50 25 0 25]  0.1126  
0.8  3  0.1557  [5 10 15 20 50]  0.1411  
ML  \(\frac {1}{2}\)  0  0.0054  [0]  0.0054 
\(\frac {2}{3}\)  1  0.0007  [25 50 25]  0.0007  
0.75  2  0.0001  [0 50 25 0 25]  0.0002  
0.8  3  0.0001  [5 10 15 20 50]  0.0002 
(with ε _{ th } is the decoding threshold).
These tables show that, for different values of global code rate and base code rate, under (IT + RS) decoding, the GLDPCStaircase codes produce higher gap to capacity with a regular distribution rather than with an irregular uniform distribution. While, under ML decoding, the regular distribution allows to have GLDPCStaircase codes very close to the channel capacity more than the irregular uniform distribution. This confirms the finite length analysis.
Threshold decoding comparison between the two distributions of extrarepair symbols for different values of N1 and r _{ G } with \(r_{L}=\frac {2}{3}\)
Distribution type  Decoding  N1  \(r_{G}=\frac {1}{2}\)  \(r_{G}=\frac {2}{5}\)  \(r_{G}=\frac {1}{3}\)  

threshold  
Regular distribution  ε ^{(IT+RS)}  3  0.4571  0.5532  0.6184  
4  0.4269  0.5136  0.5753  
5  0.3943  0.4744  0.5332  
6  0.3646  0.4392  0.4955  
\(\bar {\varepsilon }^{\text {ML}}\)  3  0.49  0.5946  0.6633  
4  0.4976  0.5990  0.6661  
5  0.4993  0.5998  0.6666  
6  0.4998  0.5999  0.6666  
Irregular uniform  
distribution  ε ^{(IT+RS)}  3  0.4605  0.5563  0.6287  
4  0.4365  0.5196  0.5959  
5  0.4064  0.4819  0.5598  
6  0.3779  0.4476  0.5257  
\(\bar {\varepsilon }^{\text {ML}}\)  3  0.4863  0.5935  0.6600  
4  0.4966  0.5987  0.6654  
5  0.4993  0.5997  0.6666  
6  0.4997  0.5998  0.6666 
As our objective is to focus on the hybrid decoding and ML performance, in the remaining of this work we only focus on the regular distribution where there are exactly e(c)=E extrarepair symbols per generalized check node c.
4.4.2 N1 parameter
Let us now adjust the second internal parameter of the GLDPCStaircase codes, N1, which represents the degree of the source variable nodes of the base code matrix H _{ L }.
The increase of N1 parameter causes the “densification” of H _{ L } and maybe the decrease of the smallest stopping set size. It is well known that the effectiveness of IT decoding over erasure channel is related to the sparseness of the LDPC graph. In addition, the correction capabilities of LDPC codes are limited by the size of smallest stopping sets.
Average decoding inefficiency ratio us a function of N1 and the decoding scheme (IT + RS versus ML), for K=1000 and \(r_{L}=\frac {2}{3}\)
r _{ G }  N1  (IT + RS) decoding  ML decoding 

\(\frac {2}{3}\) (E=0)  3  1.06669  1.04225 
5  1.09682  1.00636  
6  1.12217  1.00396  
7  1.14624  1.00250  
\(\frac {1}{2}\) (E=1)  3  1.10487  1.01627 
5  1.22160  1.00097  
6  1.27825  1.00040  
7  1.32857  1.00009  
\(\frac {1}{3}\) (E=3)  3  1.17963  1.00668 
5  1.42080  1.00019  
6  1.53045  1.00007  
7  1.62660  1.00001 
Decoding threshold comparison between (IT + RS) decoding and ML decoding versus N1 for different values of r _{ L } and r _{ G }
r _{ L }  Decoding threshold  N1  E=2  E=3  

\(r_{L}=\frac {2}{3}\)  ε ^{(IT+RS)}  3  0.5532  0.6184  
4  0.5136  0.5753  
5  0.4744  0.5332  
6  0.4392  0.4955  
\(\bar {\varepsilon }^{\text {ML}}\)  3  0.5946  0.6633  
4  0.5990  0.6661  
5  0.5998  0.6666  
6  0.5999  0.6666  
\(r_{L}=\frac {1}{2}\)  ε ^{(IT+RS)}  3  0.7236  0.7769  
4  0.7002  0.7530  
5  0.66698  0.7232  
6  0.6387  0.6927  
\(\bar {\varepsilon }^{\text {ML}}\)  3  0.7403  0.7933  
4  0.7476  0.7985  
5  0.7493  0.7996  
6  0.7498  0.7999 
Additionally, the decoding complexity depends on the number of XOR operations on the graph of IT decoding, whereas it depends on the size and the density of the linear system to be solved of ML decoding [24]. Then, the increase of N1 has a negative impact on the IT and ML decoding complexity.
Therefore, with ML decoding, with respect to the low decoding complexity, the most significant performance gains are obtained by switching from N1=3 to 5. Above this value, the performance only improves slightly. This value N1=5 also limits the performance degradation of (IT+RS) decoding compared to values N1>5. N1 = 5 is the best value that can be used by the hybrid (IT/RS/ML) decoding.
4.4.3 The base code rate r _{ L }
Let us consider a GLDPCStaircase code rate r _{ G }. Several values of the base code rate r _{ L }, or equivalently of E, enable to achieve the global code rate r _{ G } (see Eq. (8)). However, choosing a value impacts the achieved performance.
\(\bar \varepsilon _{ML}\) of GLDPCStaircase codes as a function of r _{ G }
r _{ G }  E=0  E=1  E=2  E=3  E=4  E=5  δ _{ s h } 

1/3.5  0.7054  0.7124  0.7138  0.7141  0.7142  0.7142  0.7142 
1/3  0.6634  0.6652  0.6664  0.6665  0.6666  0.6666  0.6667 
1/2  0.4946  0.4993  0.4999  0.4999  0.4999  0.4999  0.5000 
2/3  0.3301  0.3330  0.3333  0.3333  0.3333  0.3333  0.3333 
3/4  0.2484  0.2498  0.2499  0.2499  0.2499  0.2499  0.2500 
9/10  0.0991  0.0999  0.0999  0.0999  0.0999  0.0999  0.1000 
These results are identical to the finite length performance results.
Since r _{ G }= {\(\frac {1}{2},\frac {1}{3}\)} are commonly in our usecases, therefore we choose to set the base code rate to r _{ L }=2/3.
5 Performance evaluation
In Section 4, we concluded that scheme A, N1=5, and small number of extrarepair symbols distributed regularly on generalized check nodes are the most appropriate values for hybrid (IT/RS/ML) decoding. Based on this optimal configuration, we now investigate more in details the performance achieved in various situations, for different performance metrics. Then, we compare with the performance achieved with other ALFEC codes. Finally, we discuss the decoding complexity of GLDPCStaircase codes and give preliminary decoding throughput results.
5.1 Achieved performance
5.1.1 (IT + RS) versus hybrid (IT/RS/ML) decoding
5.1.2 Detailed hybrid (IT/RS/ML) decoding inefficiency ratio results
We see in both figures that the GLDPCStaircase codes with E=1 or E=3 exhibit exceptional erasure recovery capabilities, even for tiny objects. On the opposite, codes with E=0 (i.e., LDPCStaircase as there is no extrarepair symbol) exhibit poor performance. Therefore, the addition of extrarepair symbols, even in small number, makes the correction capabilities of GLDPCStaircase codes under hybrid decoding close to that of ideal MDS codes, both for tiny and large objects. These tests also show that GLDPCStaircase codes perform extremely well even for very small code rates.
5.1.3 Hybrid (IT/RS/ML) decoding failure probability results
ML decoding failure probability of GLDPCStaircase codes as a function of the overhead when \(r_{G}=\frac {1}{2}\) and K=32, K=256, or K=1000
K  Reception overhead  Average decoding failure prob. 

32  0  0.0305 
1  4.2×10^{−3}  
2  1.1×10^{−4}  
3  4×10^{−5}  
4  8×10^{−6}  
5  7×10^{−6}  
6  2×10^{−6}  
256  0  0.22 
1  0.0351  
2  1.18×10^{−3}  
3  7.39×10^{−4}  
4  4.97×10^{−4}  
5  3.35×10^{−4}  
6  1.37×10^{−4}  
1000  0  0.6967 
1  0.2725  
2  0.0494  
3  0.0262  
4  2.68×10^{−4}  
5  6.96×10^{−5}  
6  9×10^{−6} 
5.2 Comparison with other erasure correcting codes
Let us now compare with other ALFEC codes, such as LDPCStaircase codes (RFC 5170 [12]), Raptor codes (RFC 5053 [25]), and another construction of GLDPC codes [26].
5.2.1 Comparison with LDPCStaircase codes
5.2.2 Comparison with another GLDPC code [26]
Let us now compare the correction capabilities with the GLDPC code construction defined by Tanner [3]. This GLDPC code is characterized by an optimal distribution (capacityapproaching) based on hybrid check node structure, which is composed of SPC and (31,21) linear block codes (BCH codes with d _{min}=5) [26]. For our codes, we use a regular distribution of extrarepair symbols and a base code with N1=5, \(r_{L}=\frac {2}{3}\) and DD as shown in Table 1).
Decoding threshold of GLDPCStaircase and another GLDPC construction for rate \(\frac {1}{2}\)
Code type  Decoding threshold 

GLDPCStaircase, HankelRS  0.4993 
GLDPC, BCH  0.4967 
5.2.3 Comparison with Raptor and RaptorQ codes

Case 1: K=32, N=128;

Case 2: K=256, N=1024;

Case 3: K=1024, N=3072.
Finally, using the results given in [27], the correction capabilities of our codes are close to those of RaptorQ codes. For instance, in case 3, the 10^{−7} decoding failure probability is achieved with two additional symbols for RaptorQ codes and four symbols in our case.
5.3 Hybrid (IT/RS/ML) decoding complexity
5.3.1 Experimental conditions
In order to evaluate the complexity of GLDPCStaircase codes, we implemented a functional C language codec integrated in the http://openfec.org environment, reusing its binary LDPCStaircase and HankelRS over G F(2^{8}) software codecs. Then, we conducted throughput tests on a Linux desktop, using kernel 2.6.27.41/64 bits, and an Intel Xeon CPU E5410@2.33GHz processor (a single CPU core was used during experiments). Here, we also use N1=5, r _{ L }=2/3, and a regular distribution of extrarepair symbols.
5.3.2 Results
Hybrid decoding always starts with the (IT + RS) decoder and triggers the ML (binary and/or nonbinary) decoder if needed. This typically happens when the channel loss rate is too high for the (IT + RS) decoder to recover all the erased symbols. During ML decoding, recovering source and repair LDPC symbols using binary ML decoding requires only simple XOR operations. However, extrarepair symbols add finite field operations: multiplying symbols with associated coefficients over G F(2^{8}) and adding symbols. If finite field addition consists in XORing the two values, finite field multiplications are more complex, requiring in general a log table lookup, an addition operation, and an exponentiation table lookup to determine the result. With G F(2^{8}), a common optimization with software codecs consists in precalculating multiplications and storing the result in a 255×255 table. With this optimization, multiplying two elements of G F(2^{8}) consists in accessing the right element of this precalculated table, and multiplying a symbol by a coefficient over G F(2^{8}) consists in doing this for all the bytes of the symbol.
This figure illustrates what we said above: when the channel loss percentage is low (until 35 %), the (IT + RS) decoding is usually sufficient to recover the erased source symbols with speeds around 700 Mb/s. Then, as the channel loss percentage approaches the theoretical limit (i.e., 50 %), the throughput decreases until it stabilizes around 50 Mb/s. This is due to the frequent use of ML decoding. If (IT + RS) decoding is fast, ML decoding remains costly and needs further optimizations. In [28], the structured Gaussian elimination (SGE) method has been successfuly applied to LDPCStaircase codes. An extension of this approach to GLDPCStaircase codes should reduce the hybrid decoding complexity.
6 Conclusions
This paper provides the fundamentals for the design and analysis of GLDPCStaircase ALFEC codes, a class of codes well suited to reliable transmissions and largescale content distribution, in particular when retransmissions are not possible. They can be viewed as an intelligent way of coupling two complementary codes: on the one hand, the structured binary LDPCStaircase codes, characterized by low encoding/decoding complexities yet good performance for medium to large objects (where RS codes behave poorly); on the other hand, the nonbinary RS codes that are ideal codes for small objects (where LDPC codes behave poorly). The coupling is as follows: each SPC check node of LDPCStaircase (base code) is replaced by an RS code (component code), nodes that are now called “generalized check nodes.” We also define and analyze two variants, schemes A and B, that differ by the nature of the first repair symbol of each generalized check node. Thanks to the generalized check nodes, a large number of RS repair symbols (called extrarepair symbols) can be produced on demand, a nice feature for situations where the channel conditions can be worse than expected or to fountainlike content distribution applications. Very small rates are therefore easily achievable.
First of all, we introduce the use of systematic “quasi” HankelRS codes, a forgotten type of RS codes, as a practical way to design GLDPCStaircase codes (both variants). We show that this class of RS codes features very low construction times, which means that GLDPCStaircase codes can be generated on the fly, with the exact code dimension and length values. In addition to the basic (IT + RS) decoder of GLDPCStaircase codes, we introduce a new hybrid (IT/RS/ML) decoder, and thanks to a joint use of IT, RS, and binary and nonbinary ML decoding, it achieves ML decoding performance at a lower complexity. This is confirmed by preliminary decoding throughput tests, even if further optimizations are needed for the ML decoder.
Then, we detail the asymptotic analysis method for GLDPCStaircase codes under both (IT + RS) and ML decoding, using the EXIT and DE tools. It allows us to investigate their decoding convergence and gap to the theoretical limit. First, we derive DE equations under (IT + RS) decoding for the two variants, schemes A and B. This technique is then combined with EXIT functions by generalizing the area theorem (initially proposed for LDPC codes) to our codes, and we determine the upper bound on the ML decoding threshold. This analysis shows that GLDPCStaircase codes under ML decoding are quite close to the theoretical limit. Moreover, using this method along with a finite length analysis, we discuss the impacts of the code structure. We show that the “dual identity” repair symbols of scheme A improve the decoding correction power of each generalized check node (the impact of stopping sets to (IT + RS) decoding vanishes) which accelerates the (IT + RS) decoding convergence. Since this is done without negatively impacting ML decoding performance, we conclude that scheme A is the most appropriate code construction approach. Our analyses also lead us to conclude that N1=5 and a small number of extrarepair symbols distributed regularly over the generalized check nodes represent the best configuration for hybrid (IT/RS/ML) decoding.
Finally, using finite length analyses and the above optimal configuration, we show that these codes exhibit exceptional erasure recovery capabilities with a memoryless channel. More precisely, they show very small decoding overheads, close to that of ideal codes, low decoding failure probabilities, low error floors, and steep waterfall regions. These results are achieved no matter the object size, which is the main problem of most ALFEC codes (e.g., LDPCStaircase, RS, and Raptor codes). From this point of view, GLDPCStaircase codes outperform the LDPCStaircase, Raptor, and another construction of GLDPC codes [8, 26]. Their correction capabilities are close to that of RaptorQ codes.
All these results make GLDPCStaircase codes a ubiquitous class of ALFEC codes for the erasure channel. They are very well suited to streaming applications where encoding is performed on small amounts of data in order to satisfy realtime constraints. But they are also appropriate for bulk data transfer applications where the encoding is performed on large amounts of data (ideally a single block encompassing the whole file) where it is only limited by the practical aspects (available memory and CPU during decoding).
7 Endnotes
^{1} This matrix is divided into two parts and has the form \(\left (H_{1}H_{2}\right)\). The M _{ L }×K lefthand side part, H _{1}, defines the emplacements of source symbols in equations (rows). It is created in a regular way in order to have constant column and row degrees. More precisely, each column of H _{1} is of degree N1, which is an input parameter during the LDPCStaircase code creation [12]. The M _{ L }×M _{ L } righthand side part, H _{2}, defines in which equations the repair symbols are involved and features a staircase (i.e. double diagonal) structure.
^{2} As explained previously, with scheme A, the k _{ m } symbols consist of x plus p _{ m−1} (if m>1). With scheme B, they consist of x plus p _{ m−1} (if m>1) and p _{ m }.
^{3} We note that hybrid (IT/RS/ML) decoding and ML decoding have the same correction capabilities but they are different at decoding complexity level. Thus, we mention “ML decoding” to refer the correction capabilities obtained by hybrid decoding.
^{4} It is equivalent to the order of packet loss.
^{5} It is the number of required symbols over K to succeed the decoding
^{6} It is the ratio between the number of symbols needed for decoding to succeed over the number of source symbols.
^{7} It is the probability that at least one erased source symbol is not recovered
Declarations
Acknowledgements
This work was supported by the ANR09VERS01902 grant (ARSSO project) and by the INRIA—Alcatel Lucent Bell Labs joint laboratory.
Competing interests
The authors declare that they have no competing interests.
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
Authors’ Affiliations
References
 R Gallager, Low Density Parity Check codes. IRE Trans. Inform. Theory. 8:, 21–28 (1962).MathSciNetView ArticleMATHGoogle Scholar
 D MacKay, R Neal, Near Shannon limit performance of low density parity check codes. IET Electron. Lett.33(6), 457–458 (1997).View ArticleGoogle Scholar
 R Tanner, A recursive approach to low complexity codes. IEEE Trans. Inform. Theory. 27(5), 533–547 (1981).MathSciNetView ArticleMATHGoogle Scholar
 J Boutros, O Pothier, G Zéor, Generalized Low Density (Tanner) Codes. IEEE Int. Conf. Commun. (ICC), 441–445 (1999).Google Scholar
 M Lentmaier, K Zigangirov, On Generalized LowDensity ParityCheck codes based on Hamming component codes. IEEE Trans. Commun.3(8), 248–250 (1999).Google Scholar
 G Yue, L Ping, X Wang, Generalized lowdensity paritycheck codes based on Hadamard constraints. IEEE Trans. Inform. Theory. 53(3), 1058–1079 (2007).MathSciNetView ArticleMATHGoogle Scholar
 J Chen, R Tanner, A hybrid coding scheme for the GilbertElliott channel. IEEE Trans. Commun.54(10), 1787–1796 (2006).View ArticleGoogle Scholar
 N Miladinovic, M Fossorier, Generalized LDPC codes with ReedSolomon and BCH codes as component codes for binary channels. IEEE Global Telecommun. Conf. (GLOBECOM), 1239–1244 (2005).Google Scholar
 I Djordjevic, O Milenkovic, B Vasic, Generalized LowDensity ParityCheck codes for optical communication systems. Lightwave Technol.23(5), 1939–1946 (2005).View ArticleGoogle Scholar
 Y Wang, M Fossorier, Doubly Generalized LDPC codes. IEEE Int. Symp. Inform. Theory, 669–673 (2006).Google Scholar
 E Paolini, D Wilab, M Fossorier, M Chiani, in Proceedings of Allerton Conference on Communications, Control and Computing. Analysis of doublygeneralized ldpc codes with random component codes for the binary erasure channel, (2006).Google Scholar
 V Roca, C Neumann, D Furodet, Low Density Parity Check (LDPC) staircase and triangle forward error correction (FEC) schemes (2008). IETF Request for Comments, RFC 5170.Google Scholar
 M Cunche, V Savin, V Roca, G Kraidy, A Soro, J Lacan, Lowrate coding using incremental redundancy for GLDPC codes. In: IEEE Int. Workshop on Satellite and Space Communications (2008).Google Scholar
 F Mattoussi, V Roca, B Sayadi, Design of small rate, close to ideal, GLDPCStaircase ALFEC codes for the erasure channel. IEEE Global Commun. Conf. (GLOBECOM), 2143–2149 (2012).Google Scholar
 F Mattoussi, V Roca, B Sayadi, Good coupling between LDPCstaircase and ReedSolomon for the design of GLDPC codes for the erasure channel. IEEE Wireless Commun. Netw. Conf. (WCNC), 1528–1533 (2013).Google Scholar
 F Mattoussi, V Roca, B Sayadi, Complexity comparison of the use of Vandermonde versus Hankel matrices to build systematic MDS Reed Solomon codes. IEEE Int. Workshop Signal Process. Adv. Wireless Commun. (SPAWC), 344–348 (2012).Google Scholar
 E Paolini, G Liva, B Matuz, M Chiani, Generalized IRA erasure correcting codes for hybrid iterative/maximum likelihood decoding. IEEE Commun. Lett.12(6), 450–452 (2008).View ArticleGoogle Scholar
 M Cunche, V Roca, Optimizing the error recovery capabilities of LDPCStaircase codes featuring a Gaussian elimination decoding scheme. In 10th IEEE International Workshop on Signal Processing for Space Communications (SPSC 2008) (2008).Google Scholar
 TJ Richardson, RL Urbanke, The capacity of LowDensity ParityCheck codes under messagepassing decoding. IEEE Trans. Inform. Theory. 47(2), 599–618 (2001).MathSciNetView ArticleMATHGoogle Scholar
 M Luby, M Mitzenmacher, M Shokrollahi, D Spielman, V Stemann, Practical lossresilient codes. 29th Annual ACM Symposium on the Theory of Computing (1997).Google Scholar
 S ten Brink, Convergence of iterative decoding. IEEE Electron. Lett.35(10), 806–808 (1999).View ArticleGoogle Scholar
 C Mésson, A Montanari, R Urbanke, in IEEE Int. Symposium on Information Theory (ISIT). Maxwell’s construction: The hidden bridge between maximumlikelihood and iterative decoding, (2004).Google Scholar
 C Messon, Conservation laws for coding. PhD thesis, Ecole Polytechnique Federale de Lausanne (EPFL) (2006).Google Scholar
 M Cunche, Codes alfec hautes performances pour les canaux défacements : variations autour des codes ldpc (2010). PhD thesis, Université Joseph Fourrier, Grenoble.Google Scholar
 M Luby, A Shokrollahi, M Watson, T Stockhammer, Raptor forward error correction scheme for object delivery. IETF Request for Comments, RFC 5053 (2007).Google Scholar
 E Paolini, Iterative decoding methods based on lowdensity graphs. PhD thesis, Universitádegli Studi di Bologna (2007).Google Scholar
 EMMEFEC, Selection of the FEC. Document S4121367, 3GPP TSGSA4 meeting 71, Bratislava, Slovakia (2012). http://www.3gpp.org/ftp/tsg_sa/WG4_CODEC/TSGS4_71/Docs/S4121367.zip.
 V Roca, M Cunche, C Thienot, J Detchart, J Lacan, in 9th IEEE International Conference on Wireless and Mobile Computing, Networking and Communications (WiMob). Rs + ldpcstaircase codes for the erasure channel: Standards, usage and performance, (2013).Google Scholar