Ferdaouss Mattoussi
email: mattoussi.ferdaouss@gmail.com

Vincent Roca

Bessam Sayadi

GLDPC-Staircase AL-FEC codes: A Fundamental study and New results

Keywords: AL-FEC codes, GLDPC codes, LDPC-Staircase codes, ML decoding, DE and EXIT tools, Erasure channels

This paper provides fundamentals in the design and analysis of Generalized Low Density Parity Check (GLDPC)-Staircase codes over the erasure channel. These codes are constructed by extending an LDPC-Staircase code (base code) using Reed Solomon (RS) codes (outer codes) in order to benefit from more powerful decoders. The GLDPC-Staircase coding scheme adds, in addition to the LDPC-Staircase repair symbols, extra-repair 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 LDPC-Staircase 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 matrix-based 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 GLDPC-Staircase 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 LDPC-Staircase and Raptor codes, and achieve correction capabilities close to those of RaptorQ codes. Therefore all these results make GLDPC-Staircase codes a universal Application-Layer FEC (AL-FEC) solution for many situations that require erasure protection such as media streaming or file multicast transmission.

Introduction

Low Density Parity Check (LDPC) codes have been intensively studied during the last decade due to their near-Shannon limit performance under iterative Belief-Propagation (BP) decoding [START_REF] Gallager | Low Density Parity Check Codes[END_REF][START_REF] Mackay | Near Shannon limit performance of low density parity check codes[END_REF][START_REF] Tanner | A recursive approach to low complexity codes[END_REF]. 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)

Full list of author information is available at the end of the article 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 [START_REF] Tanner | A recursive approach to low complexity codes[END_REF], 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 sub-codes 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. [START_REF] Boutros | Generalized Low Density (Tanner) Codes[END_REF] and Lentmaier and Zigangirov [START_REF] Lentmaier | On Generalized Low-Density Parity-Check Codes Based on Hamming Component Codes[END_REF] 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 (components codes) on the check nodes [START_REF] Yue | Generalized low-density parity-check codes based on hadamard constraints[END_REF][START_REF] Chen | A hybrid coding scheme for the gilbert-elliott channel[END_REF][START_REF] Miladinovic | Generalized LDPC Codes with Reed-Solomon and BCH Codes as Component Codes for Binary Channels[END_REF][START_REF] Chen | A hybrid coding scheme for the gilbert-elliott channel[END_REF][START_REF] Djordjevic | Generalized Low-Density Parity-Check Codes for Optical Communication Systems[END_REF][START_REF] Wang | Doubly Generalized LDPC Codes[END_REF][START_REF] Paolini | Analysis of Doubly-Generalized LDPC Codes with Random Component Codes for the Binary Erasure Channel[END_REF], or/and the distribution of the structure of GLDPC codes [START_REF] Yue | Generalized low-density parity-check codes based on hadamard constraints[END_REF] to offer a good compromise between waterfall performance and error floor under iterative decoding. A GLDPC-Staircase code is an LDPC-Staircase code [START_REF] Roca | Low density parity check (ldpc) staircase and triangle forward error correction (fec) schemes[END_REF] in which the constraint nodes of the code graph are Reed-Solomon (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 [START_REF] Cunche | Low-rate coding using incremental redundancy for GLDPCcodes[END_REF]. Therefore in [START_REF] Mattoussi | Design of small rate, close to ideal, gldpc-staircase al-fec codes for the erasure channel[END_REF] we introduce RS codes based Hankel matrices to that purpose. GLDPC-Staircase codes differ from the GLDPC codes proposed by Tanner and their successive variants. In particular, the GLDPC-Staircase coding scheme allows each check node to produce a potentially large number of repair symbols in terms of RS codes, called extra-repair symbols, on demand. These extra-repair symbols extend the base LDPC-Staircase 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 fountain like content distribution applications. More generally, these codes can easily be tuned to behave either like predefined rate LDPC-Staircase 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 [START_REF] Mattoussi | Design of small rate, close to ideal, gldpc-staircase al-fec codes for the erasure channel[END_REF]. Finally, in order to analyze their performance, we detail in [START_REF] Mattoussi | Good coupling between ldpc-staircase and reed-solomon for the design of gldpc codes for the erasure channel[END_REF] 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 use-case (like low bit-rate streaming applications or at the opposite large file multicast transmission). The purpose of this paper is to give the reader a detailed overview of GLDPC-Staircase codes and to provide new results.

This paper is organized as follows. Section 2 focuses on the design of GLDPC-Staircase codes based on RS codes. Then in section 3, we explain the proposed asymptotic analysis method. Section 4 presents several analyses and optimizations of GLDPC-Staircase 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.

GLDPC-Staircase codes design

Code description

As mentioned in introduction, GLDPC-Staircase codes are constructed from:

• LDPC-Staircase 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 LDPC-Staircase viewpoint, each row of H L defines the connections between the source and LDPC repair symbols. From the GLDPC-Staircase viewpoint, each row of H L defines the connections between the RS repair symbols and the source and LDPC repair symbols. Consequently, each LDPC-Staircase CN is represented as a powerful CN, called generalized check node, with GLDPC-Staircase codes. • RS codes: they are the outer codes (or components codes). A generalized check node of index m can generate e(m) extra-repair 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 GF (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 extra-repair symbols per generalized check node, the RS code dimension and length for the generalized check node m. Figure 1 illustrates the bipartite graph of a GLDPC-Staircase (N G , K) code of length N G and dimension K. It is composed of two sets of nodes:

• the generalized check nodes that correspond to RS codes; • the variable nodes (VN) further divided into three categories:

source symbols; [1] This matrix is divided into two parts and has the form (H1 H2). The M L × K left-hand side part, H1, 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 H1 is of degree N 1, which is an input parameter during the LDPC-Staircase code creation [START_REF] Roca | Low density parity check (ldpc) staircase and triangle forward error correction (fec) schemes[END_REF]. The -LDPC repair symbols; extra-repair symbols.

Generalized check nodes

Schemes A and B

Let us now define two variants, schemes A and B, depending on the definition of n m and k m :

• 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) extra-repair 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) 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) = ⎧ ⎪ ⎪ ⎨ ⎪ ⎪ ⎩ dr H 1 + 1 if m = 1; (dr H 1 = N 1 1 r L -1
)

dr H 1 + 2 if m > 1; (dr H 1 = N 1 1 r L -1
).

(

) 2
In order to fulfill the duality property of the LDPC repair symbols, we propose in [START_REF] Mattoussi | Complexity comparison of the use of vandermonde versus hankel matrices to build systematic mds reed solomon codes[END_REF] a specific construction of RS codes based on "quasi" Hankel matrix. The generator matrix G of these codes has the following form:

G = ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ 1 0 . . . . . . 0 1 1 . . . . . . 1 0 1 ⋱ ⋱ ⋮ 1 b 1 b 2 . . . b nm-km 0 0 ⋱ ⋱ ⋮ 1 b 2 ⋰ ⋰ b nm-km+1 ⋮ ⋮ ⋱ ⋱ 0 ⋮ ⋮ ⋰ ⋰ ⋮ 0 0 . . . 0 1 1 b km ⋰ ⋰ b nm-1 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ (3)
where b i = 1 1-y i , for 1 ≤ i ≤ q -1, y is an arbitrary primitive element of GF (q) and y i is computed over GF (q). Thanks to the column full of "1" in G for the first RS repair symbol, this latter can also be considered as an LDPC-Staircase symbol (it 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) and k m = d r (m). (4)
Here any RS code (e.g. based on Hankel, Cauchy or Vandermonde matrices) can be used.

Extra-repair symbol regular/irregular distributions

For a fixed code rate r L of LDPC-Staircase code (N L , K), the code rate of the GLDPC-Staircase code is given by:

r G = K N L +M L f = r L 1+(1-r L ) f . ( 5
)
where f is the average number of extra-repair symbols per generalized check node:

f = E e=0 (f e .e), (6)
and f e denotes the fraction of generalized check nodes with e extra-repair symbols:

f e = card{m = 1 . . . M L e(m) = e} M L (7)
We can consider the following two distributions of extra-repair symbols on the various generalized check nodes:

• Regular distribution: f e = 0 for e ∈ {0, 1, . . . , E-1} 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 (GLDPC-Staircase code) is:

r G = r L 1 + (1 -r L ) * E (8)
Figure 1 shows such a regular variant. 2 shows such an irregular variant. [START_REF] Cunche | Low-rate coding using incremental redundancy for GLDPCcodes[END_REF] shows that there exists an irregular uniform distribution of extra-repair symbols which achieves performance close to the optimal irregular distribution. This irregular uniform distribution allows to allocate the extra-repair symbols with f = E 2 and f e = 1 E+1 for e ∈ {0, 1, . . . , E}. Throughout this paper we only consider the regular distribution and the irregular uniform distribution, and we asses in section 4.4.1 their impacts on performance.

Encoding method

Encoding generates two types of repair symbols: Let S = (S 1 , S 2 , ...S K ) be the K source symbols. The (p 1 , ...p M L ) 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

• M L LDPC-
"1" coefficient in row m, plus p m-1 if m > 1.
Then the e(m) extra-repair symbols for row m are computed by multiplying the k m LDPC symbols by the systematic generator matrix G m of RS (n m , k m ) associated to this row [2] . [2] As explained previously, with scheme A, the km symbols consist of x plus pm-1 (if m > 1). With scheme B, they consist of x plus pm-1 (if m > 1) and pm.

follows:

H L = S 1 S 2 S 3 S 4 P 1 P 2 P 3 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ 1 1 0 1 1 0 0 RS 1 = RS(6, 3) 0 1 1 0 1 1 0 RS 2 = RS(6, 3) 1 0 0 1 0 1 1 RS 3 = RS(6, 3) (9)
We note that here (regular distribution and scheme A), the same RS code can be used for all the rows. Its generator matrix G rs has the form:

G rs = G 4 rs G 5 rs G 6 rs ↓ ↓ ↓ ⎡ ⎢ ⎢ ⎢ ⎢ ⎣ ⎤ ⎥ ⎥ ⎥ ⎥ ⎦ 1 0 0 1 1 1 0 1 0 1 b1 b2 0 0 1 1 b2 b2 (10)
To summarize, encoding is as follows:

• First row, using x = (S 1 , S 2 , S 4 ), produces:

P 1 = G 4 rs × (S 1 , S 2 , S 4 ) e 1,1 = G 5 rs × (S 1 , S 2 , S 4 ) e 1,2 = G 6
rs × (S 1 , S 2 , S 4 ) • Second row, using x = (S 2 , S 3 ), produces:

P 2 = G 4
rs × (S 2 , S 3 , P 1 ) e 2,1 = G 5 rs × (S 2 , S 3 , P 1 ) e 2,2 = G 6 rs × (S 2 , S 3 , S 1 ) • Third row, using x = (S 1 , S 4 ), produces:

P 3 = G 4 rs × (S 1 , S 4 , P 2 ) e 3,1 = G 5 rs × (S 1 , S 4 , P 2 ) e 3,2 = G 6 rs × (S 1 , S 4 , P 2 )
A key advantage is the fact that extra-repair symbols can be produced incrementally, on demand, rather than all at once (unlike LDPC-Staircase 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 GLDPC-Staircase codes can easily and dynamically be turned into small rate codes.

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 GLDPC-Staircase(N G , K) code, built from an LDPC-Staircase(N L , K) base code.

(IT+RS) decoding

The (IT+RS) decoding, for both Schemes A and B, consists of a joint use of:

• the IT decoder over the LDPC-Staircase graph. Extra-repair symbols are ignored at this step. This decoder features a linear complexity but also sub-optimal 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 Figure 3 shows a simple example for GLDPC-Staircase code, scheme A, with N G =12, K=4, N1=3, and r L = 1 2 . Here we assume that only symbols {S 1 , P 1 , P 2 , P 3 , e 1 , e 2 } have been received. The receiving order for these symbols is {S 1 , P 1 , P 2 , e 2 , e 1 , P 3 } (i.e., symbol transmission order is random). After receiving the first four symbols, the RS decoder triggers on the second generalized check node. This node is associated with RS(6, 4) code which recovers the (S 2 , S 3 ) erased symbols in step 2. Then these recovered symbols trigger the SPC decoding on the first generalized check node which recovers S 4 in step 3. Decoding is successful.

Finally, algorithm 1 details the (IT+RS) decoding that works symbol per symbol, in a recursive manner. This algorithm does not necessarilly use all the received symbols: IT decoding is always preferred to RS decoding if both are possible, in order to reduce decoding complexity.

Algorithm 1 (IT+RS) decoding algorithm

λ i .x i-1 , R(x) = ∑ dcmax i=1 ρ i .x i-1
). Given a GLDPC-Staircase code, DD pair (λ, ρ) are defined by the underlying LDPC-Staircase code, defined by the bottom graph of Figure 1

Density Evolution

Introduction

Over erasure channels, DE becomes one-dimensional, and it allows to analyze and even to construct capacity-achieving codes [START_REF] Luby | Practical loss-resilient codes[END_REF]. 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 [START_REF] Richardson | The capacity of low-density parity-check codes under message-passing decoding[END_REF].

Let us determine the DE equations of GLDPC-Staircase codes.

DE equations of GLDPC-Staircase codes

Assume that an arbitrary GLDPC-Staircase code from E(λ, ρ, f e ), with length N G goes to infinity. We are interested in the erasure probability of messages exchanges by the (IT+RS) decoding along the messages of the LDPC-Staircase code using extra-repair variable nodes. We denote by:

• 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 symbol-node) at iteration . The calculus of these probabilities depends on the coding scheme used to design the GLDPC-Staircase code (scheme A or B). Next, we give more details for each case. At iteration , the LDPC symbols are erased with probability P , while extra-repair 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 LDPC-Staircase code. Consider a generalized check node c connected to symbol-nodes (v 1 , . . . , v d , e 1,c , . . . , e e(c),c ) where v i denotes an LDPC (source or repair) symbol node and e i,c denotes the i th extra-repair 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 symbol-nodes (v 2 , . . . , e e(c),c ) is less than or equal to e(c). It follows that the probability of a generalized check node c recovering the value of an LDPC symbol at iteration + 1, denoted by Q +1,A (d, e(c)), is given by:

Q +1,A (d, e(c)) = 0≤i<d,0≤j≤e(c) i+j≤e(c) d-1 i P i ,A (1 -P ,A ) d-1-i e(c) j ε j (1 -ε) e(c)-j (11)
Hence, the probability of a generalized check node c sending an erasure to an LDPC symbol at iteration

+1 is (1-Q +1,A (d, e(c)))
. Averaging over all possible values of d and e(c), we get:

Q +1,A = 1 - dcmax d=1 ρ d E e=0 f e Q +1,A (d, e) (12
Q +1,B (d, e(c)) = (1 -P ,B ) d-1 + min(d-1,e(c)-1) i=1 e(c)-1-i j=0 d-1 i P i ,B (1 -P ,B ) d-1-i e(c) j ε j (1 -ε) e(c)-j . (13)
Averaging over all possible values of d and e(c), we get:

Q +1,B = 1 - dcmax d=1 ρ d E e=0 f e Q +1,B (d, e) (14)
Remark 3.1 For both schemes with regular distribution of extra-repair symbols, all the generalized check nodes have E extra-repair symbols, the equations ( 12) and ( 14) are reduced to:

Q +1 = 1 - dcmax d=1 ρ d Q +1 (d) (15)
Conversely, for both schemes, an LDPC symbol node v of degree d, connected to generalized check nodes c 1 , . . . , c d , sends an erasure to c 1 iff it was erased by the channel, and it received erased messages from all generalized check nodes c 2 , . . . , c d . Since this happens with probability ε⋅Q d-1 +1 , and averaging over all possible degrees d, we get:

P +1 = ε d vmax d=1 λ d Q d-1 +1 = ελ(Q +1 ) (16)
For both schemes, using equations (11 or 13), (12 or 14), and ( 16) we can determine a recursive relation between P and P +1 , with P 0 = ε.

The decoder can recover from a fraction of ε erased symbols iff lim →+∞ P l = 0. This means that, when l → +∞, the (IT+RS) decoding succeeds if the DE recursion converges to zero. Then, the (IT+RS) decoding threshold of an GLDPC-Staircase code over an erasure channel is defined as the supremum value of ε such that the DE recursion converges to zero. Therefore, the (IT+RS) decoding threshold can be computed by:

ε (IT+RS) (E) = max{ε lim →+∞ P l = 0}. ( 17
)
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 GLDPC-Staircase code for an erasure channel probability ε by tracing P +1 = f (P ) with l → +∞ as shown in the following example.

Example 3.1 Let us consider a GLDPC-Staircase (scheme A) code with the following parameters:

• Rate: r G = 1 • Base code: r L = 0.8, N1=5 DD ∶ λ(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 (18)
• E=3 (regular distribution of extra-repair symbols). Figure 4 provides the evolution of erasure probability during the (IT+RS) decoding of GLDPC-Staircase at ε = 0.3. The initial fraction of erasure messages emitted by the LDPC variable nodes is P 0 = 1. After an iteration (at the next output of the LDPC variable nodes) this fraction has evolved to P 1 = 0.3. After second full iteration, i.e., at the output of the LDPC variable nodes, we see an erasure fraction of P 2 = 0.2555. This process continues in the same fashion for each subsequent iteration, corresponding graphically to a staircase function which is bounded above by P +1 = P and below by P out .

EXIT functions of GLDPC-Staircase codes 3.3.1 Introduction

EXIT technique is a tool for predicting the convergence behavior of iterative processors for a variety of communication problems [START_REF] Brink | Convergence of iterative decoding[END_REF]. 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 GLDPC-Staircase codes under (IT+RS) and ML decoding. Therefore, we extended the method presented in [START_REF] Mésson | Maxwell's construction: The hidden bridge between maximum-likelihood and iterative decoding[END_REF]. 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 E(λ, ρ, f e ) under the decoding.

(IT+RS) EXIT function:

h (IT +RS) (ε)
The (IT+RS) EXIT function of GLDPC-Staircase code is denoted by h (IT +RS) (ε). It corresponds to running an (IT+RS) decoder on a very large LDPC-Staircase graph that is connected to the extra-repair variable nodes at ε until the decoder reaches a fixed point. This fixed point defines the stability of erasure probability improvement during decoding iterations. The extrinsic erasure probability of the LDPC-Staircase symbols at this fixed point gives the (IT+RS) EXIT function. Therefore, consider an E(λ, ρ, f e ), the EXIT function of the GLDPC-Staircase codes under (IT+RS) decoding, over erasure channel (ε), is equal to the following equation:

h (IT +RS) (ε) = 1 N L N L i=1 h (IT +RS) i (ε) (19)
where, h

(IT +RS) i
is the extrinsic (IT+RS) erasure probability of LDPC-Staircase symbol "i" as shown in Figure 5. h (IT +RS) ( ) is the asymptotic (average on all the LDPC variable nodes, N L → +∞) extrinsic erasure probability at the output of an (IT+RS) decoding. This function value can be easily computed using the DE equations of GLDPC-Staircase codes. After an infinite number of iterations of the DE recursion (equation ( 16)), the (IT+RS) decoder reaches a fixed point (i.e, P +1 = P , → +∞). Hence we can also write:

h (IT +RS) (ε) = L(Q +∞ ) (20)
where Q +∞ is Q , derived from the DE equations of GLDPC-Staircase 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.

(IT+RS) EXIT curve

The (IT+RS) EXIT curve of the GLDPC-Staircase 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, ε). Therefore, the asymptotic (IT+RS) EXIT curve, denoted by h (IT +RS) , is given in a parametric form by,

h (IT +RS) (ε) = 0 if ε ∈ [0 ε (IT +RS) ] L(Q +∞ ) if ε ∈]ε (IT +RS) 1] (21)
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 Given a GLDPC-Staircase code with rate r G = 1 3 , 2 extra-repair symbols per generalized check nodes (regular distribution) and base code with the following parameters:

• r L =0.6, N1=5

• DD:

λ(x) = 0.2105x 1 + 0.7895x 4 , ρ(x) = x 9 , L(x) = 0.4x 2 + 0.6x 5 , R(x) = x 10 (22)
The (IT+RS) EXIT function h (IT +RS) (ε) is depicted in Figure 6. The (IT+RS) decoding threshold, ε (IT +RS) , is given by the point where h (IT +RS) (ε) drops down to zero. This gives ε (IT +RS) =0.5376. It can be seen that h (IT +RS) (ε) = 0 for values ε ≤ ε (IT +RS) , then it jumps to a non-zero value and continues to increase until it reaches a value of 1 for ε = 1.

Upper bound on the ML decoding threshold

As for the (IT+RS) decoding, the EXIT curve of the ML decoding is also defined in terms of extrinsic erasure probability based on entropy. Precisely, in the limit of infinite code length, for a given channel erasure probability ε, h M L (ε) is the probability of a symbol node being erased after ML decoding, assuming that the received value (if any) of this particular symbol has not been submitted to the decoder. The asymptotic, average on all the LDPC variable nodes, extrinsic erasure probability at the output of an ML decoding (ML EXIT function) is obtained by,

h M L (ε) = 1 N L N L i=1 h M L i (ε) (23)
where, h M L i (ε) is the extrinsic erasure probability of LDPC symbol "i" after ML decoding as shown in Figure 5. Just like LDPC codes [START_REF] Mésson | Maxwell's construction: The hidden bridge between maximum-likelihood and iterative decoding[END_REF], the exact computation of the EXIT function for the ML decoding is difficult. However, using the area theorem [START_REF] Mésson | Maxwell's construction: The hidden bridge between maximum-likelihood and iterative decoding[END_REF][START_REF] Messon | Conservation laws for coding[END_REF], we have:

1 M L h M L (ε) = r G , (24)
where r G is the designed coding rate of the given ensemble of GLDPC-Staircase codes. Moreover, since the (IT+RS) decoding is sub-optimal with respect to the ML decoding, we have

h IT +RS (ε) ≥ h M L (ε). Hence, if for some ¯ M L 1 ¯ M L h (IT +RS) (ε) = r G , (25)
we necessarily have ¯ M L ≥ M L . This gives an upper bound on the ML threshold, which is easily computed using h (IT +RS) . The ML EXIT curve of the GLDPC-Staircase codes, h M L (ε), can be constructed in the following manner:

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

• Step 2: Determine the ¯ M L by integrate backwards from the right end of the curve where ε = 1. The integration process stops at εML where it assure equation ( 25). This gives the upper bound εML of the GLDPC-Staircase 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 εML ). (h (IT +RS) (ε)) and the integral bound on ε M L for GLDPC-Staircase code with the same distributions of the Figure 6. The (IT+RS) decoding threshold value is ε (IT +RS) = 0.5376. The ML decoding threshold upper-bound is the unique point εML ∈ [ε (IT +RS) 1] such that the red area below the (IT+RS) EXIT curve, delimited by ε = ε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 εML = 0.6664.

Optimization of GLDPC-Staircase codes

4.1 Description GLDPC-Staircase codes can be viewed as an extension of LDPC-Staircase code (base code) into general-ized LDPC-Staircase code using RS codes. Moreover, GLDPC-Staircase codes can be constructed using two structures which differ in the type of the generated LDPC repair symbols that are either RS repair symbols or not, as follows:

• 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. In addition, the configuration of GLDPC-Staircase codes depends on the important internal parameters, namely:

• the extra-repair symbols distribution across the H L rows: regular distribution or irregular uniform distribution, • the N 1 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.

Experimental conditions

For the finite length analysis, we have developed a GLDPC-Staircase 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 memory-less 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 LDPC-Staircase 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 LDPC-Staircase matrix, show the average behavior of GLDPC-Staircase codes. [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 packets loss.

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

For the asymptotic analysis, we use commonly the following DD of LDPC-Staircase codes as presented in Table 1 andTable 2

Best coding scheme for GLDPC-Staircase codes

Throughout this section we investigate the impacts of the property given by scheme A on decoding performance in different configurations of GLDPC-Staircase 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.

Asymptotic results

Let's consider a base code with distribution defined in Table 1 for r L = 0.8 and N1=5. We use the DE equations proposed in section 3.2 to plot in Figure 8 the evolution of the erasure probability transfer on the graph of GLDPC-Staircase code with r G = 1 2 and E=3 (regular distribution) for scheme A (P +1,A = f (P ,A )) and scheme B (P +1,B = f (P ,B )). These curves represent the value of the erasure probability on all the LDPC symbols during the propagation of the erasure probability between generalized check nodes and variable nodes of the GLDPC-Staircase tanner graph where ε) equals to 0.32. 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 [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 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 GLDPC-Staircase 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 (ε ML ). We note that DE also allows to determine the decoding threshold, but it requires several calculations. Table 3 provides the comparison in terms of ε (IT +RS) and εML between scheme A and scheme B (with regular distribution and r L = 2

3 ) for two global code rates ( 1 2 and 2 5 ) and different values of N1. This table reveals that for different values of N1, scheme A outperforms scheme B under (IT+RS) decoding. Therefore, the property that the generated LDPC repair symbols are RS repair symbols helps to get closer to channel capacity limit. Whereas under ML decoding, below of N1=5, scheme B is preferable and beyond this value, this property has no a great significant impact. This is explained as follows. In practice the efficiency of the ML decoder over BEC is related to the densification of its linear system. Therefore, low value of N1 implies a r L edge DD (λ(x), ρ(x)) node DD (L(x), R(x))

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 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
sparse binary linear system of LDPC-Staircase codes which causes degradation on the ML decoding results [START_REF] Cunche | Codes al-fec hautes performances pour les canaux défacements : variations autour des codes ldpc[END_REF]. Whereas, as mentioned in section 2.5.2, the linear system of GLDPC-Staircase codes is composed of a binary sub-system (composed from LDPC-Staircase equations) and a non binary sub-system (composed from extra-repair equations) which is somewhat more dense with scheme B than scheme A. Therefore, this difference has an impact on performance of global system when the binary sub-system is sparse; otherwise it is vanished. We will see next, that N1=5 is the best value for the hybrid decoding type, therefore we prefer scheme A in this case.

In the previous analysis, we fixed the base code rate and the distribution type of extra-repair 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 extra-repair symbols with N1 fixed to 5. Table 4 provides the comparison in terms of ε (IT +RS) and εML between scheme A and scheme B (with r G = 1 2 ) for different values of r L (i.e vary E) using a regular distribution of extra-repair symbols. This table proves that, for different values of E > 0, the (IT+RS) decoding threshold of scheme A is higher than that of scheme B. On the opposite, the ML decoding thresholds of the two schemes, for different values of E, are almost equivalent. Additionally, for an irregular uniform distribution of extra-repair symbols, Table 5 also shows that, for different values of f (distribution of extra-repair repair symbols), scheme A is better than scheme B for (IT+RS) decoding and both achieve the same ML decoding thresholds. Let us move to see the results when varying the rate of GLDPC-Staircase code. Table 6 provides the comparison in terms of ε (IT +RS) and εML between scheme A and scheme B for different values of r G with r L = 2 3 , N 1 = 5 and regular distribution. This table reveals that for different rates of GLDPC-Staircase code, scheme A outperforms scheme B under (IT+RS) decoding and both have the same behavior under ML decoding. For an irregular uniform distribution, in Table 7, we provide a comparison between decoding thresholds of the two schemes with r L = 2 3 for different values of f (distribution of extra-repair symbols). This table also shows the same results for regular distribution. Therefore, for all configurations of GLDPC-Staircase 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.

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 extra-repair symbols. Figures 9(b) and 10(b) provide the average (over 1, 000 different codes) decoding inefficiency ratio of both schemes under ML decoding for two different code rates ( 1 2 and 1 3 ). They show that no matter the dimension, K, both schemes perform the same, with results quite close to that of MDS codes (characterized by an decoding inefficiency ratio always equals to 1). This means that for small and large object size, the property of scheme A has no impact on the ML decoding inefficiency ratio. These results hold for the two considered code rates. 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 order to go further to see the error floor and overhead achieved by each scheme under ML decoding, we analyze the ML decoding failure probability. In Figure 11, we plot the ML decoding failure probability versus channel loss percentage (in Figure 11(a)) and versus number of received symbols (in Figure 11(b)).

To that purpose we choose r G = 1 2 (E=1), K=1000, and 10 6 tested codes. In Figure 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 = 1 2 . This figure confirms that for two schemes, the GLDPC-Staircase 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.

Conclusion of the analysis

The asymptotic analysis and finite length analysis confirms 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 a GLDPC-Staircase codes, with hybrid (IT/RS/ML) decoding, we must choose scheme A. Therefore, the rest of this document will only consider scheme A.

Tuning internal parameters of GLDPC-Staircase codes

In this section, we analyze the impact of three configuration parameters of GLDPC-Staircase codes on the erasure recovery performance in order to obtain the best configuration over hybrid (IT/RS/ML) decoding.

The extra-repair symbols 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 [START_REF] Cunche | Low-rate coding using incremental redundancy for GLDPCcodes[END_REF], 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.

Figure 12 provides the average decoding inefficiency ratio (i.e, average of 1000 GLDPC codes with r G = 1 2 ) of GLDPC-Staircase codes, for different object sizes. It shows that the regular distribution performs significantly better under ML decoding, both with small and large objects. Based on asymptotic results, we give the gaps to capacity of GLDPC-Staircase codes with irregular uniform distribution and regular distribution of extra-repair symbols for different code rates r G with N1=5 and r L = 2 3 in Table 8. In addition, we provide in Table 9 the gaps to capacity of the two distributions for different values of r L with fixed global code rate r G = 1 2 and N1=5. The gap to capacity (∆) is computed using the following equation:

∆ = 1 -r G -ε th , (26)
(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 GLDPC-Staircase 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 GLDPC-Staircase codes very close to the channel capacity more than the irregular uniform distribution. This confirms the finite length analysis.

Let us see the case where N1 vary. Table 10 provides the decoding thresholds of the two decoding types for r L = 2 3 for the two distributions into different values of global code rates. This table also shows that ML decoding favors the regular distribution for different values of N1 (more advantage with low value of N1). Therefore, for different values of N1, r L and r G the regular distribution is accorded to the ML decoding whereas irregular uniform distribution is suitable for (IT+RS) decoding.

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 extra-repair symbols per generalized check node c.

N1 parameter

Let us now adjust the second internal parameter of the GLDPC-Staircase 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 sets 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 is limited by the size of smallest stopping sets. Since, in our case we have IT and RS decoding working together, let's see if the RS decoding helps IT decoding to prevent the negative impact of the densification of the graph on the decoding (i.e., to see if the Decoding type densification also causes the degradation of (IT+RS) decoding performance). Therefore, in Table 11 we provide the average decoding inefficiency ratio (i.e, average of 1000 GLDPC-Staircase codes for each r G ) for different r G versus N1 under (IT+RS) decoding with K = 1000 and r L = 2 3 . This table shows that, for different r G and under (IT+RS) decoding, increasing N1 induces an increase in the average decoding inefficiency ratio. This means that, the extra-repair symbols which are used to cope with the problem of small stopping sets in the base code graph doesn't succeed. Moreover, increasing E (i.e, reducing the GLDPC code rate) does not solve the problem. Therefore, the increase of N1 leads to the deterioration of the ability to correct with (IT+RS) decoding. This table also shows that, for different GLDPC code rates, the behavior of ML decoding is totally different than the one observed for (IT+RS) decoding. We give the same remarks using the Table 12 where we compute the threshold of (IT+RS) decoding and ML decoding for different value of N 1. 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 [START_REF] Cunche | Codes al-fec hautes performances pour les canaux défacements : variations autour des codes ldpc[END_REF]. 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 N 1 = 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 N 1 > 5. N1 = 5 is the best value that can be used by the hybrid (IT/RS/ML) decoding. 8)). However choosing a value impacts the achieved performance.

r G E ∆1 f (%) ∆2 (IT+RS) 2 3 E=0 0.06243 [0] 0.06243 1
In Figure 13, we plot the average ML decoding inefficiency ratio (i.e, average of 1000 GLDPC codes with r G = 1 3 ) for different object size. This figure shows that increasing r L rate (i.e, increasing the number E), the average decoding inefficiency ratio quickly approaches 1 (i.e., ideal code) as E = 3 (i.e, r L = 2

3 ), even for very small code dimensions. We also apply the techniques developed in section 3 to adjust E, by computing the upper bound on the ML decoding threshold for several values of E. These results are summarized in Table 13 and compared to the Shannon capacity limit (δ sh ). We notice that increasing E (or equivalently increasing the LDPC code rate) quickly increases the upper bound on the ML decoding threshold, until it reaches a stable value very close to the Shannon limit δ sh . Depending on r G this stable value is obtained with E = 1, 2 or 3. Therefore, a small number of extra-repair symbols per generalized check node is sufficient to get extremely close to the channel capacity. These results are identical to the finite length performance results. Since r G ={ 1 2 , 1 3 } are commonly in our use-cases, therefore we choose to set the base code rate to r L = 2 3.

Performance evaluation

In section 4 we concluded that scheme A, N1=5, and small number of extra-repair 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 AL-FEC codes. Finally, we discuss the decoding complexity of GLDPC-Staircase codes and give preliminary decoding throughput results.

Achieved performance

(IT+RS) versus Hybrid (IT/RS/ML) decoding

Let us first quantify the gains made possible by the use of ML decoding. Figure 14 shows the average (over 1000 different codes) decoding inefficiency ratio for various object sizes or equivalently code dimensions K (both are equal here as the object is encoded in a single pass), when r G = 1 2 . It confirms the major performance gains for all object sizes (e.g, equal to 22% for K=1000). More remarkable, the performance remains excellent for very small values of K.

Detailed hybrid (IT/RS/ML) decoding inefficiency ratio results

In Figure 15(a), we plot the average (over 1000 different codes) hybrid (IT/RS/ML) decoding inefficiency ratio as a function of the object size for various code rates: r G = 1 3 (E = 3), r G = 1 2 (E = 1) and r G = 2 3 (E = 0). In Figure 15(b) we do the opposite, as a function of the code rate (equivalently E value) for a various object sizes (from K = 100 up to K = 1000).

We see in both figures that the GLDPC-Staircase 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., LDPC-Staircase as there is no extra-repair symbol) exhibit poor performance. Therefore the addition of extra-repair symbols, even in small number, makes the correction capabilities of GLDPC-Staircase codes under hybrid decoding close to that of ideal MDS codes, both for tiny and large objects. These tests also show that GLDPC-Staircase codes perform extremely well even for very small code rates.

Hybrid (IT/RS/ML) decoding failure probability results

Let us now focus on the decoding failure probability as a function of the number of received symbols or, equivalently, channel loss percentage. Figure 16 shows the average results over 10 7 GLDPC-Staircase codes with r G = 1 2 when K = 32, K = 256 and K = 1000. 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%. This figure confirms that GLDPC-Staircase codes are close to ideal MDS codes with no visible error floor above 10 -5 . This is obvious with objects of size K = 1000 and K = 256 and it remains almost true with K = 32 (i.e, error floor start at 8 × 10 -6 with 42% of loss for K=32, below 5.33 × 10 -6 with 49.45% of loss for K=1000).

Table 14 shows the average decoding failure probability as a function of the overhead (i.e., the number of received symbols above K), under the same conditions. We see that, for large or small object sizes, a few symbols in addition to K are sufficient for decoding to succeed with a high probability. With K = 32, 2 symbols are sufficient to reach a decoding failure below 10 -5 , and with K = 1000, 6 symbols are sufficient to be below 10 -5 . This confirms that GLDPC-Staircase codes have correction capabilities close to that of MDS codes.

Comparison with other erasures correcting codes

Let us now compare with other AL-FEC codes, such as LDPC-Staircase codes (RFC 5170 [START_REF] Roca | Low density parity check (ldpc) staircase and triangle forward error correction (fec) schemes[END_REF]), Raptor codes (RFC 5053 [25]) and another construction of GLDPC codes [START_REF] Paolini | Iterative decoding methods based on low-density graphs[END_REF].

Comparison with LDPC-Staircase codes

Let us start by comparing the correction capabilities with those of LDPC-Staircase codes, using the decoding failure probability metric. We plot ML decoding failure probability versus loss channel percentage in Figure 17(b) and versus the number of received symbols in Figure 17(a), when the code rate is 1 2 . Figure 17(b) shows that the GLDPC-Staircase codes are close to ideal with a very steep slope in the "waterfall" area. In addition, no error floor appears above 10 -6 decoding failure probability, which is a very good performance, whereas LDPC-Staircase codes exhibit an error floor at 2.10 -5 decoding failure probability. Figure 17(a) shows that with GLDPC-Staircase codes, the reception of a few symbols in addition to K allows to quickly reach a decoding failure probability below 10 -6 . Besides, in order to ob-

Comparison with another GLDPC codes

Let us now compare the correction capabilities with the GLDPC code construction defined by Tanner [START_REF] Tanner | A recursive approach to low complexity codes[END_REF]. This GLDPC code is characterized by an optimal distribution (capacity-approaching) based on hybrid check nodes structure, which is composed of SPC and (31,21) linear block codes (BCH codes with d min = 5) [START_REF] Paolini | Iterative decoding methods based on low-density graphs[END_REF]. For our codes we use a regular distribution of extra-repair symbols and a base code with N 1 = 5, r L = 2 3 and DD as shown in Table 1). Table 15 provides a comparison in terms of decoding threshold for rate 1 2 . It shows that our construction method performs the best. • Case 3: K = 1024, N = 3072.

Comparison with Raptor and RaptorQ codes

In Figure 18, we plot the ML decoding failure probability versus decoding overhead for those three cases. For Raptor codes, we used the results provided by Qualcomm for 3GPP in [START_REF]Selection of the FEC[END_REF]. This figure shows that GLDPC-Staircase codes outperform Raptor codes, no matter the object size. In fact, in case 3, with 2 symbols in addition to K GLDPC-Staircase achieves a decoding failure probability equal to 1.2 * 10 -4 compared to 0.41562 for Raptor codes.

Finally, using the results given in [START_REF]Selection of the FEC[END_REF], 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 2 additional symbols for RaptorQ codes and 4 symbols in our case.

Hybrid (IT/RS/ML) decoding complexity 5.3.1 Experimental conditions

In order to evaluate the complexity of GLDPC-Staircase codes, we implemented a functional C language codec integrated in the OpenFEC.org environment, reusing its binary LDPC-Staircase and Hankel-RS over GF (2 8 ) software codecs. Then we conducted throughput tests on a Linux desktop, using kernel 2.6.27.41/64bits, and an Intel Xeon CPU E5410@2.33GHz processor (a single CPU core was used during experiments). Here also we use N 1 = 5, r L = 2 3 and a regular distribution of extra-repair symbols.

Results

Hybrid decoding always starts with the (IT+RS) decoder and triggers the ML (binary and/or non-binary) 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 extra-repair symbols add finite field operations: multiplying symbols with associated coefficients over GF (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 GF (2 8 ), a common optimization with software codecs consists in pre-calculating multiplications and storing the result in a 255 × 255 table. With this optimization, multiplying two elements of GF (2 8 ) consists in accessing the right element of this pre-calculated table, and multiplying a symbol by a coefficient over GF (2 8 ) consists in doing this for all the bytes of the symbol.

In Figure 19 we plot the decoding throughput in Mb/s as a function of the channel loss percentage. We set r G = 1 2 , E = 1, and consider an object of size K = 1000 symbols, each of them of size 1024 bytes. 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 700M b s. Then, as the channel loss percentage approaches the theoretical limit (i.e., 50%), the throughput decreases until it stabilizes around 50M b 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 [START_REF] Roca | Rs + ldpc-staircase codes for the erasure channel: Standards, usage and performance[END_REF], the Structured Gaussian Elimination (SGE) method has been successfully applied to LDPC-Staircase codes. An extension of this approach to GLDPC-Staircase codes should reduce the hybrid decoding complexity.

Conclusions

This paper provides the fundamentals for the design and analysis of GLDPC-Staircase AL-FEC codes, a class of codes well suited to reliable transmissions and large scale 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 LDPC-Staircase 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 non-binary RS codes that are ideal codes for small objects (where LDPC codes behave poorly). The coupling is as follows: each SPC check node of LDPC-Staircase (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 extra-repair 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" Hankel-RS codes, a forgotten type of RS codes, as a practical way to design GLDPC-Staircase codes (both variants). We show that this class of RS codes features very low construction times, which means that GLDPC-Staircase codes can be generated on the fly, with the exact code dimension and length values. In addition to the basic (IT+RS) decoder of GLDPC-Staircase codes, we introduce a new hybrid (IT/RS/ML) decoder, and thanks to a joint use of IT, RS, binary and non binary 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 GLDPC-Staircase 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 Density Evolution (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 GLDPC-Staircase 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 improves 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 extra-repair 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 memory-less 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 AL-FEC codes (e.g., LDPC-Staircase, RS and

Figure 1

 1 Figure 1 Bipartite graph.Figure showing the case of GLDPC-Staircase(13, 4) code, e(m) = 2 extra-repair symbols per generalized check node (i.e, regular distribution).

  Staircase repair symbols, (p1, ... p M L ), and • M L f extra-repair symbols, ((e1,1, ... e 1,e(1) ), ... (e M L ,1 , ... e M L ,e(M L ) )).

Figure 3 (

 3 Figure 3 (IT+RS) decoding.Figure showing an example of (IT+RS) decoding on the graph of GLDPC-Staircase code, Scheme A.

)

  Scheme B: All the LDPC-Staircase repair symbols are source symbols for the RS codes. Consider a constraint node c connected to symbolnodes (v 1 , . . . , v d , e 1,c , . . . , e e(c),c ) where v i denotes an LDPC (source or repair) symbol node and e i,c denotes the i th extra-repair symbol node. The node c corresponds both to a parity check constraint between LDPC symbol nodes (v 1 , . . . , v d ) and to an RS linear constraint between all the symbol-nodes (v 1 , . . . , v d , e 1,c , . . . , e e(c),c ). Thus, c can recover the value of an LDPC symbol node, say v 1 , if and only if one of the following (disjoint conditions) holds:(1) there are no erased symbols among v 2 , . . . , v d (i.e, LDPC decoding); (2) there is at least one erased symbol among v 2 , . . . , v d , but the number of erasures among all the symbolnodes (v 1 , . . . , v d , e 1,c , . . . , e e(c),c ) is less than or equal to e(c) -1. The second condition is also equivalent to the following one:(2 ′ ) the number of erased symbols among v 2 , . . . , v d is equal to i and the number of erased symbols among e 1,c , . . . , e e(c),c is equal to j, with 1 ≤ i ≤ min(d -1, e(c) -1) and 0 ≤ j ≤ e(c) -1 -i. It follows that the probability of a generalized check node c recovering the value of an LDPC symbol at iteration + 1, denoted by Q +1,B (d, e(c)), is given by:

Figure 4

 4 Scheme A p(l+1)=p(l)

  Figure 4 DE of GLDPC-Staircase codes.Figure showing the evolution, for scheme A, of the (IT+RS) decoding process for LDPC-Staircase with r L = 0.8 and N 1 = 5. r G = 1 2 , E = 3 and = 0.3. Shannon limit=0.5, threshold (IT +RS) =0.3443

Figure 5

 5 Figure 5 EXIT function of GLDPC-Staircase codes.Figure showing the computation of EXIT function based on entropy of a GLDPC-Staircase code.

  Figure 5 EXIT function of GLDPC-Staircase codes.Figure showing the computation of EXIT function based on entropy of a GLDPC-Staircase code.

Remark 3 . 2 Figure 7

 327 Figure 7 Compute of the ML-threshold upper bound for GLDPC-Staircase codes. Figure showing ML-threshold upper-bound computation using the (IT+RS) EXIT function h (IT +RS) (ε) for an ensemble of GLDPC-Staircase code with rate = 1 3 , r L =0.6 and N1=5.

  . The calculus of these degree distributions is based on the parameters N1, d r H 1 , and the structure of LDPC-Staircase codes. For an irregular uniform distribution of extra-repair symbols, we use the notationf (%) = [f 0 f 1 f 2 . . . f e ] to definethe fractions of generalized check nodes with e extra-repair symbols. For example, f (%) = [25 50 25] means that we have 25% of generalized check nodes have 0 extra-repair symbols, 50% of generalized check nodes have 1 extra-repair symbols, and 25% of generalized check nodes have 2 extra-repair symbols.

Figure 8

 8 Scheme A Scheme B p(l+1)=p(l)

2 E=1

 2

4. 4 . 3

 43 The base code rate r L Let us consider a GLDPC-Staircase code rate r G . Several values of the base code rate r L , or equivalently

2 (E = 1 )Figure 9

 219 Figure 9 Inefficiency ratio (IT+RS) and ML decodings.Figure showing the average performance under (IT+RS) decoding (a) and ML decoding (b), with rate 1 2 , as a function of K.

  Figure 9 Inefficiency ratio (IT+RS) and ML decodings.Figure showing the average performance under (IT+RS) decoding (a) and ML decoding (b), with rate 1 2 , as a function of K.

3 (E = 3 )Figure 10

 3310 Figure 10 Inefficiency ratio (IT+RS) and ML decodings.Figure showing the average performance under (IT+RS) decoding (a) and ML decoding (b), with rate 1 3 , as a function of K.

  Figure 10 Inefficiency ratio (IT+RS) and ML decodings.Figure showing the average performance under (IT+RS) decoding (a) and ML decoding (b), with rate 1 3 , as a function of K.

Figure 11

 11 Figure 11 Decoding failure probability under ML decoding.Figure showing the decoding failure probability, with rate 1

  Figure 11 Decoding failure probability under ML decoding.Figure showing the decoding failure probability, with rate 1 2 and K = 1000, versus the channel loss percentage in (a) and as a function of the number of received symbols in (b).

Figure 12 Figure 13

 1213 Figure 12 Irregular uniform distribution vs regular distribution. Figure showing performance comparison between irregular uniform and regular distributions of extra-repair symbols, with N1= 5, r L = 2 3 , and r G = 1 2

Figure 14

 14 Figure 14 Comparison of (IT+RS) and (IT/RS/ML) decodings. Average decoding inefficiency ratio as a function of the object size.

Figure 15

 15 Figure 15 Impacts of the E parameter on decoding performance. Average decoding inefficiency ratio as a function of the object sizes (a) and code rates (b).

Figure 16

 16 Figure 16 Hybrid (IT/RS/ML) decoding failure probability of GLDPC-Staircase codes. Performance as a function of the channel loss percentage when r G = 1 2 and K = 32, K = 256, or K = 1000.

Figure 17 LDPC

 17 Figure 17 LDPC Staircase vs GLDPC-Staircase. ML decoding failure probability comparison for K = 1024 and rate 1 2 .

Figure 18

 18 Figure18GLDPC-Staircase vs Raptor. ML decoding failure probability versus overhead in three cases.

Figure 19

 19 Figure 19 Throughput of hybrid (IT/RS/ML) decoding. GLDPC-Staircase codes with r G = 1 2 , E = 1.

1: for symb ← each of the N b symbols received do 2:

				2.5.2 Hybrid (IT/RS/ML) decoding
				We propose an hybrid (IT/RS/ML) decoding, general-
				ization of the decoding approach proposed for LDPC
				codes in [17, 18]. Hybrid (IT/RS/ML) decoding con-
				sists of a joint use of IT, RS and (binary/Non binary)
				ML decoding to achieve the performance of ML de-
				coding 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.
				During ML decoding we use the following decoders:
				• Binary ML decoder: extra-repair symbols are ig-
					nored at this step and instead it only considers
					binary equations, made of simple XOR sums, in
					order to reduce complexity. ML decoding can con-
					sist of simple Gaussian Elimination (GE) on this
					sub-system.
				• Non binary ML decoder: the full linear system is
					considered here and GE is performed on GF (2 b ).
					As in binary ML decoding, this step also features
					a quadratic complexity but operations are now
					significantly more complex (performed on GF (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 pre-
				sented in Algorithm 2.
				Algorithm 2 (IT/RS/ML) decoding algorithm
				1: Perform (IT+RS) decoding
				2: if all erased source symbols are recovered then	▷ Check the end of decoding
				3: 4: else return status OK	▷ Trigger ML decoding
				5: 6:	Do binary ML decoding if all erased source symbols are recovered then	▷ Using the simplified H L sub-system ▷ Check the end of decoding
				7: 8: 9: 10:	return status OK else Do non binary ML decoding if all erased source symbols are recovered then ▷ Using the simplified H L and the extra-repair equations ▷ Check the end of decoding
	3: 4: 7: 6: 5:	Function: Decode with new symbol "symb" if all erased source symbols are recovered then end if Select IT decoding if 1 ≤ symbol index ≤ N L then return status OK	▷ No need to go any further if finished ▷ LDPC symbol so try IT decoding	11: 12: 13: 14: 15: 16: end if end if else return status OK return status Failed end if
	8: 9: 10: 11:	if IT decoding possible then Recover symbols for New symb ← each recovered symbol do Decode with new symbol "New symb"	▷ recover source or LDPC repair symbols	3 Asymptotic analysis method 3.1 Preliminaries
	12: 13: 14: 15:	end for end if end if Select RS decoding ▷ Continue, no matter whether symb is an LDPC or extra repair symbol	In the sequel, we denote by d vmax and d cmax re-spectively the maximum variable and check node de-
	16: 17: 18: 19: 20: 21: 22: 23: 24: 27: 26: 25:	if RS decoding possible then Recover symbols for New symb ← each recovered symbol do Decode with new symbol "New symb" end for end if if all erased source symbols are recovered then return status OK return status Failed end if End function else	▷ recover source or LDPC repair symbols	grees in the bipartite (Tanner) graph associated with LDPC-Staircase. Following [19], we define the edge-perspective DD polynomials by (λ(x), ρ(x)) and the node perspective DD polynomials by (L(x) = λ(x) = dvmax ∑ i=1
	28: end for

erasure probability) h IT+RS (ε) EXIT function of GLDPC staircase codes with rate=0.33333

	1
	0.9
	0.8
	0.7
	0.6
	0.5
	0.4
	0.3
	0.2	ε IT+RS =
		0.5376
	0.1
	0
	0.5	0.55	0.6	0.65	0.7	0.75	0.8	0.85	0.9	0.95	1
	Figure 6 (IT+RS) EXIT function of GLDPC-Staircase
	codes. Figure showing the (IT+RS) EXIT function
	h (IT +RS) (ε) for an ensemble of GLDPC-Staircase code with
	rate = 1 3 , r L =0.6 and N1=5.

ε (

Table 1

 1 Used Degree Distribution.Table showing LDPC-Staircase DD for different values of N1 where r L = 2 3 .

	N 1	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

Table 2

 2 Used Degree Distribution.Table showing LDPC-Staircase DD for different values of r L where N1=5.

Table 3

 3 Decoding threshold comparison between scheme A and B for different values of N1 for (IT+RS) decoding and ML decoding. GLDPC-Staircase codes with r L =2 3 and regular distribution of extra-repair symbols.

	r G	Decoding threshold	N1	scheme A	scheme B
			3	0.4571	0.2905
		ε (IT +RS)	4 5	0.4269 0.3943	0.2867 0.2709
	1 2 (E=1)		6 3	0.3646 0.4900	0.2536 0.4985
			4	0.4976	0.4996
		εML	5	0.4993	0.4997
			6	0.4998	0.4999
			3	0.5532	0.4041
		ε (IT +RS)	4 5	0.5136 0.4744	0.3878 0.3639
	2 5 (E=2)		6 3	0.4392 0.5946	0.3401 0.5994
			4	0.5990	0.5998
		εML	5	0.5998	0.5999
			6	0.5999	0.5999

Table 4

 4 Decoding threshold comparison between (IT+RS) decoding and ML decoding, for r G = 1 2 (Shannon limit =0.5) and regular distribution of extra-repair symbols.

	Decoding threshold	E	r L	scheme A	scheme B
	ε (IT +RS)	0 1 2	1 2 2 3 0.75	0.4380 0.3943 0.3647	0.4380 0.2709 0.2773
		3	0.8	0.3443	0.2819
	εML	0 1 2	1 2 2 3 0.75	0.4946 0.4993 0.4999	0.4946 0.4997 0.4999
		3	0.8	0.4999	0.4999

Table 5

 5 Decoding threshold comparison between (IT+RS) decoding and ML decoding, for r G = 1 2 (Shannon limit=0.5) and irregular uniform distribution of extra-repair symbols.

	Decoding threshold	f (%)	r L	scheme A	scheme B
	ε (IT +RS)	[0] [25 50 25] [0 50 25 0 25]	1 2 2 3 0.75	0.4380 0.4064 0.3874	0.4380 0.3029 0.3089
		[5 10 15 20 50]	0.8	0.3589	0.3007
	εML	[0] [25 50 25] [0 50 25 0 25]	1 2 2 3 0.75	0.4946 0.4993 0.4998	0.4946 0.4997 0.4998
		[5 10 15 20 50]	0.8	0.4998	0.4998

Table 6

 6 Decoding threshold comparison between (IT+RS) decoding and ML decoding for different values of r G with r L = 2 3 and regular distribution of extra-repair symbols.

	Decoding threshold	r G	E	scheme A	scheme B	Shannon limit
	ε (IT +RS) εML	2 3 1 2 2 5 1 3 2 3 1 2 2 5 1 3	E=0 E=1 E=2 E=3 E=0 E=1 E=2 E=3	0.2709 0.3943 0.4744 0.5332 0.3301 0.4993 0.5998 0.6666	0.2709 0.2709 0.3639 0.4394 0.3301 0.4997 0.5999 0.6666	0.3333 0.5 0.6 0.6667 0.3333 0.5 0.6 0.6667

Table 7

 7 Decoding threshold comparison between (IT+RS) decoding and ML decoding for different values of r G with r L = 2 3 and irregular uniform distribution of extra-repair symbols.

	Decoding threshold	r G	f (%)	scheme A	scheme B	Shannon limit
	ε (IT +RS) εML	2 3 1 2 2 5 1 3 2 3 1 2 2 5 1 3	[0] [25 50 25] [0 25 50 25] [0 25 25 10 15 15 10] [0] [25 50 25] [0 25 50 25] [0 25 25 10 15 15 10]	0.2709 0.4064 0.4819 0.5598 0.3301 0.4993 0.5997 0.6665	0.2709 0.3029 0.3765 0.4768 0.3301 0.4997 0.5999 0.6666	0.3333 0.5 0.6 0.6667 0.3333 0.5 0.6 0.6667

Table 8 (

 8 IT+RS) decoding and ML decoding gaps to capacity for irregular uniform distribution (∆ 2 ) versus regular distribution (∆ 1 ) of extra-repair symbols for GLDPC-Staircase codes with N 1 = 5, and r L = 2 3 .

Table 11

 11 Average decoding inefficiency ratio us a function of N1 and the decoding scheme (IT+RS versus ML), for K = 1000 and r L = 2 3 .

	r G	N1 (IT+RS) decoding ML decoding
		3	1.06669	1.04225
		5	1.09682	1.00636
	2 3 (E=0)	6	1.12217	1.00396
		7	1.14624	1.00250
		3	1.10487	1.01627
		5	1.22160	1.00097
	1 2 (E=1)	6	1.27825	1.00040
		7	1.32857	1.00009
		3	1.17963	1.00668
		5	1.42080	1.00019
	1 3 (E=3)	6	1.53045	1.00007
		7	1.62660	1.00001

Table 9 (

 9 IT+RS) decoding and ML decoding gaps to capacity for irregular uniform distribution (∆ 2 ) versus regular distribution (∆ 1 ) of extra-repair symbols for GLDPC-Staircase codes with N 1 = 5, and r G = 1 2 .

	Decoding type	r L	E	∆ 1	f (%)	∆ 2
	(IT+RS)	1 2 2 3 0.75	0 1 2	0.062 0.1057 0.1353	[0] [25 50 25] [0 50 25 0 25]	0.062 0.0936 0.1126
		0.8	3	0.1557	[5 10 15 20 50]	0.1411
	M L	1 2 2 3 0.75	0 1 2	0.0054 0.0007 0.0001	[0] [25 50 25] [0 50 25 0 25]	0.0054 0.0007 0.0002
		0.8	3	0.0001	[5 10 15 20 50]	0.0002

Table 10

 10 Threshold decoding comparison between the two distributions of extra-repair symbols for different values of N1 and r G with r

	L = 2 3 .
	Distribution type	Decoding threshold	N 1	r G = 1 2	r G = 2 5	r G = 1 3
			3	0.4571	0.5532	0.6184
		ε (IT +RS)	4 5	0.4269 0.3943	0.5136 0.4744	0.5753 0.5332
	regular distribution		6 3	0.3646 0.49	0.4392 0.5946	0.4955 0.6633
			4	0.4976	0.5990	0.6661
		εML	5	0.4993	0.5998	0.6666
			6	0.4998	0.5999	0.6666
			3	0.4605	0.5563	0.6287
		ε (IT +RS)	4 5	0.4365 0.4064	0.5196 0.4819	0.5959 0.5598
	irregular uniform distribution		6 3	0.3779 0.4863	0.4476 0.5935	0.5257 0.6600
			4	0.4966	0.5987	0.6654
		εML	5	0.4993	0.5997	0.6666
			6	0.4997	0.5998	0.6666

Table 12

 12 Decoding threshold comparison between (IT+RS) decoding and ML decoding versus N 1 for different values of r L and r G .

	r L	Decoding threshold	N 1	E=2	E=3
			3	0.5532	0.6184
		ε (IT +RS)	4 5	0.5136 0.4744	0.5753 0.5332
	r L = 2 3		6 3	0.4392 0.5946	0.4955 0.6633
			4	0.5990	0.6661
		εML	5	0.5998	0.6666
			6	0.5999	0.6666
			3	0.7236	0.7769
		ε (IT +RS)	4 5	0.7002 0.66698	0.7530 0.7232
	r L = 1 2		6 3	0.6387 0.7403	0.6927 0.7933
			4	0.7476	0.7985
		εML	5	0.7493	0.7996
			6	0.7498	0.7999
	of E, enable to achieve the global code rate r G (see
	equation (

Table 13 εML

 13 of GLDPC-Staircase codes as a function of r G

						r G		E = 0	E= 1	E= 2	E= 3	E= 4	E=5	δ sh
					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
		2					GLDPC with scheme B
							GLDPC with scheme A
	Avereage inefficiency ratio decoding	1.2 1.4 1.6 1.8
		1
		100	200	300	400	500	600	700	800	900 1000
					object size (in symbols)

Table 14

 14 ML decoding failure probability of GLDPC-Staircase codes as a function of the overhead when r G = 1 2 and K = 32, K = 256, or K = 1000.

	K	reception overhead	average decoding failure prob.
	32	0 1 2 3 4 5 6	0.0305 4.2 × 10 -3 1.1 × 10 -4 4 × 10 -5 8 × 10 -6 7 × 10 -6 2 × 10 -6
		0	0.22
	256	1 2 3 4 5 6	0.0351 1.18 × 10 -3 7.39 × 10 -4 4.97 × 10 -4 3.35 × 10 -4 1.37 × 10 -4
		0	0.6967
		1	0.2725
		2	0.0494
	1000	3 4 5 6	0.0262 2.68 × 10 -4 6.96 × 10 -5 9 × 10 -6

Table 15

 15

	Decoding threshold of GLDPC-Staircase and another
	GLDPC construction for rate 1 2 .
	Code type	Decoding threshold
	GLDPC-Staircase, Hankel-RS	0.4993
	GLDPC, BCH	0.4967

Acknowledgements

This work was supported by the ANR-09-VERS-019-02 grant (ARSSO project) and by the INRIA -Alcatel Lucent Bell Labs joint laboratory.

Raptor codes). From this point of view, GLDPC-Staircase codes outperform the LDPC-Staircase, Raptor and another construction of GLDPC codes [START_REF] Miladinovic | Generalized LDPC Codes with Reed-Solomon and BCH Codes as Component Codes for Binary Channels[END_REF][START_REF] Paolini | Iterative decoding methods based on low-density graphs[END_REF]. Their correction capabilities are close to that of Rap-torQ codes.

All these results make GLDPC-Staircase codes an ubiquitous class of AL-FEC 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 real-time 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).

Competing interests

The authors declare that they have no competing interests.

Author details 1 Inria, PRIVATICS research Team, Grenoble, France. 2 Alcatel-Lucent Bell labs, Paris, France.