Generalized Punctured Convolutional Codes with Unequal Error Protection

We conduct a code search restricted to the recently introduced class of generalized punctured convolutional codes (GPCCs) to ﬁnd good unequal error protection (UEP) convolutional codes for a prescribed minimal trellis complexity. The trellis complexity is taken to be the number of symbols per information bit in the “minimal” trellis module for the code. The GPCC class has been shown to possess codes with good distance properties under this decoding complexity measure. New good UEP convolutional codes and their respective e ﬀ ective free distances are tabulated for a variety of code rates and “minimal” trellis complexities. These codes can be used in several applications that require di ﬀ erent levels of protection for their bits, such as the hierarchical digital transmission of video or images.


INTRODUCTION
In several applications of digital transmission (e.g., video [1], images [2], voice [3], and data [4]), the importance of different bits in the input sequence of the channel encoder often varies and certain blocks of this sequence need higher protection level than other blocks, when this sequence is transmitted through a noisy channel. An errorcorrecting code which provides a selective level of protection to the information bits possesses a property called unequal error protection (UEP). UEP can be obtained either by using separate coding schemes with distinct error-correction capability for each level of protection or by using a single code with UEP capability. The latter case can be achieved by block [5][6][7], convolutional [8][9][10][11], coded modulation schemes [12,13], turbo [14], or LDPC [15] codes.
The convolutional codes of rate R = k/n with UEP capabilities considered in the literature [8][9][10][11] are represented by their conventional trellis module, denoted by M conv . This module consists of one trellis section with 2 ν initial states and 2 ν final states; each initial state is connected by 2 k directed edges to final states, and each edge is labeled with n bits. In general, a trellis module M for an (n, k) convolutional code C consists of n trellis sections, 2 νt states at depth t, 2 bt edges emanating from each state at depth t, and l t bits labeling each edge from depth t to depth t + 1, for 0 ≤ t ≤ n − 1. The semi-infinite trellis used by the Viterbi algorithm to decode C consists of a concatenation of infinitely many copies of the trellis modules M. The trellis complexity of the module M for the code C, denoted by TC(M), is defined as [16] TC(M) = 1 k n −1 t=0 l t 2 νt+bt (1) symbols per bit. In particular, TC(M conv ) = (n/k)2 ν+k symbols per bit. The "minimal" trellis module, M, for convolutional codes was developed in [16,17]. This "minimal" structure has n sections and l t = 1 bit per branch for all t. The state complexity ν t and the branch complexity b t at depth t will be denoted by ν t and b t , respectively. The state and the branch complexity profiles of the "minimal" trellis module are denoted by ν = ( ν 0 , . . . , ν n−1 ) and b = ( b 0 , . . . , b n−1 ), 2 EURASIP Journal on Advances in Signal Processing respectively. It has been shown in those references that for many convolutional codes the trellis complexity TC( M) of the "minimal" trellis module is considerably smaller than the trellis complexity TC(M conv ) of the conventional trellis module.
Recently, there has been a noticeable interest in the search of convolutional codes with fixed TC( M) [18][19][20][21], as opposed to specifying a complexity measure usually associated to the conventional trellis module (e.g., the encoder memory). Such interest is motivated by the reduced trellis complexity of the "minimal" trellis module. For this purpose, a class of convolutional codes called generalized punctured convolutional codes (GPCCs) has been proposed in [19], and further code search results have been tabulated in [21]. The way GPCCs are described by a "matrix module" facilitates the code search procedure under the "minimal" trellis complexity. It should be mentioned that none of the codes in [19,21] has been designed to have the UEP property.
In this work, we are interested in the behavior of the UEP capability of convolutional codes under a "minimal" trellis complexity measure. For that sake, we carry out a code search to obtain good GPCCs with the UEP property for a given "minimal" trellis complexity TC( M). The standard methodology, as, for example, in [9], consists of listing good codes with the UEP property for a given memory order. The general idea is to have convolutional codes, of different code rates, with different "minimal" (decoding) trellis complexities and different dispositions of error protection levels among the information bits to serve a wide range of applications.
The remainder of this paper is organized as follows. In Section 2, we present some notations and give some definitions towards the UEP property of convolutional codes. Also, the class of GPCCs is briefly described. In Section 3, we describe the search procedure for good GPCCs with the UEP property and having TC( M) as the decoding trellis complexity. Tables containing good GPCCs with different code rates, trellis complexities, and UEP profiles are given. Finally, Section 4 concludes the paper.

PRELIMINARIES
Consider a binary (n, k) convolutional code represented by a trellis module M (or by a trellis constructed from M), with k ≥ 2. At time instant t, exactly k information bits x t = x 0 t · · · x k−1 t are absorbed by the encoder and the output sequence y t = y 0 t · · · y n−1 t with n bits is generated. The transmitted codeword is y = y 0 y 1 y 2 , . . . when the information sequence x = x 0 x 1 x 2 , . . . is fed into the convolutional encoder. Given an initial state in the trellis obtained from a trellis module M, each possible input sequence gives rise to a unique path (sequence of states) in the trellis which is associated to a codeword.
Let S be the set of all paths in the trellis that diverge from the all-zero path (leave the state 0), at a fixed time instant t, say t = 0, and remerge into the all-zero path exactly once at some time later. Each path in S constitutes an error event. Given a path σ in S, we denote by w H (σ) the Hamming weight of the codeword corresponding to this path. Let . be a sequence of information symbols at the ith position of x t , for t = 0, 1, 2, . . . . The UEP capability of a convolutional encoder is measured by the effective free distance vector [8,9] of length k (the number of possible UEP protection levels). Definition 1. Let S (i) be a subset of S formed by paths induced by information sequences such that x i is a nonzero sequence. The effective free distance vector, denoted by d eff , of a convolutional encoder with trellis module M is where the ith effective free distance d i is Clearly, the free Hamming distance of the convolutional code, namely d free , is equal to the least entry of the vector d eff . This vector depends on the mapping between the information sequences and the codewords and, therefore, is related to the encoder. An encoder is said to possess an equal error protection (EEP) capability if all entries of d eff are equal.
An (n, k) GPCC [19] is a periodically time-varying convolutional code of period n defined by the "matrix module" (defined in [16, equation (2.4)]) (only the nonzero rows are shown): where g t i are the binary generator scalars of the GPCC, for the phase index t = 0, 1, . . . , n − 1 and for i = 0, 1, . . . , ν t , with ν t being the memory order at phase t. Shown in (4) is a phase p which carries no information (g p 0 = 0). There are exactly n − k such phases in the "matrix module" of a GPCC. This, and some other restrictions, which apply to ν t , must be imposed in order for the convolutional code to be a GPCC [19]. As shown in [19], we can easily fix the value of certain generator scalars in (4) in such a way that the positions of the leading and trailing 1's in each row of the so-called scalar generator matrix [16], denoted by G scalar , yield naturally to the minimal-span form [16]. This allows the predetermination of the value of TC( M) for an ensemble of GPCCs. For further details on the GPCC class refer to [19].

CODE SEARCH RESULTS
We conduct a refined code search within the class of GPCCs to obtain good convolutional codes with the UEP property for a prescribed "minimal" trellis complexity TC( M). The state complexity ν t and branch complexity b t of the "minimal" trellis module are calculated from the "matrix module" (or actually the scalar generator matrix) of the code in the minimal-span form, following the procedure described in [16]. Then TC( M) is obtained from (1), with l t = 1 for all t. For a given code rate and TC( M), we provide distinct configurations of d eff satisfying the UEP property. As an example, to illustrate the code search conducted in this work, consider the (4, 3) GPCC with matrix module defined by where only the nonzero rows are shown. The underlined (leading) and the overlined (trailing) 1's in (5) are, respectively, the first nonzero entry and last nonzero entry in each row of G scalar , which for this code is given by Notice that no column in (6) contains more than one leading 1's or more than one underlined 1's, thus this matrix has the LR property, which is equivalent to being in the minimal span-form [22, Theorem 6.11]. According to the positions of the leading and trailing 1's, the "minimal" trellis module of this GPCC has state and branch complexity profiles given by ν = (2, 2, 3, 3) and b = (1, 1, 1, 0), respectively, and trellis complexity TC( M) = 13.33 symbols per bit. The trellis module for this GPCC, constructed according to the rules introduced in [22], is shown in Figure 2. The effective free distance vector of this code is d eff = (2, 3, 4), therefore presenting the UEP property. In order to measure the bit-error rate (BER) corresponding to a particular encoder input, we simulated this code over the AWGN channel with one-sided noise power spectral density N 0 , considering BPSK modulation with transmitted energy per information bit E b and soft decision decoding using 4 EURASIP Journal on Advances in Signal Processing  the Viterbi algorithm. Figure 1 shows the BER versus E b /N 0 associated with each one of the three encoder inputs as well as the average BER. From the figure, we can see that the three inputs present quite different error protection levels.
The input with effective free distance d 2 = 4 requires an E b /N 0 of around 6 dB to achieve a BER of 10 −5 , which is almost 1 dB better than the performance of the input with effective free distance d 1 = 3. By its turn, this input with d 1 = 3 performs around 1.5 dB better than the input with effective free distance d 0 = 2, at the same BER level. By keeping fixed the underlined and overlined 1's in (5) or (6) we maintain the same TC( M), even if we vary the other row elements between these underlined and overlined 1's. By doing so, then we can search through this template (which is defined by the fixed positions of the underlined and overlined 1's) for new GPCCs with the same TC( M). Now consider the best (4, 3) GPCC in terms of d free for the template in (6) or (5) with TC( M) = 13.33 symbols per bit. This code has d eff = (3, 3, 3). For such an EEP code, the error performances for the three inputs are very similar, requiring an E b /N 0 of around 7 dB for achieving a BER of 10 −5 . Therefore, the proposed GPCC with the UEP property can be directly applied to hierarchical sources not only with the same complexity cost but also without requiring any modifications in the topology of the "minimal" trellis used for decoding, increasing the implementation flexibility.
Similar results can be obtained for different code rates and trellis complexities. In Tables 1, 2 The codes are specified by the polynomial generator matrix G(D), which is given in octal form, where the highest power in D is in the most significant bit of the representation (e.g., 6 ≡ D + D 2 ). Note that some of the codes in the tables are EEP codes, since in our search procedure we did not restrict ourselves to UEP codes. So, when an EEP code is listed in a table, it means that no GPCC with the UEP property could be found for that d free and that TC( M). From the analysis of the results listed in the tables we can make some remarks. First, consider the two codes with TC( M) = 10 symbols per bit listed in Table 1. The second code in the table is an EEP code with d eff = (3,3), while the first one has d eff = (2,4). Therefore, in going from the second code to the first code, the effective free distance d 0 is decreased while d 1 is improved. In other words, the overall d free had to be reduced in this case to produce an UEP code with the same TC( M). We can find many of these examples in the tables. However, doubling the "minimal" trellis complexity to TC( M) = 20 symbols per bit in this case may either increase further the protection of the second input bit or increase the overall d free with an EEP code. As far as the protection of the second bit is concerned, in going from the code with d eff = (2, 4) to the code with d eff = (2, 5), thus doubling TC( M), yields an E b /N 0 improvement of 0.7 dB at a BER of 10 −5 (simulation not shown).
The comparison of a code with the UEP property with another one having the EEP property with the same TC( M) can be done for other rates as well. There are cases where the adoption of the UEP code yields a significant reduction of some of the effective free distances. For example, the case of TC( M) = 56 symbols per bit in Table 5. The first code has d eff = (2, 2, 2, 5), while the second code has d eff = (4, 4, 4, 4).     Table 4. It is also possible to improve the error protection of one input bit without sacrificing the error protection of the other input bit by increasing TC( M). This is the case in going from the code with d eff = (4,5) to the code with d eff = (4,6) in Table 1. Anyhow, the UEP requirements of the particular application will tell which code is more appropriate. For example, the two codes with TC( M) = 14 symbols per bit and the same d free in Table 5 have quite different error protection profiles.
When considering the minimal trellis complexity TC( M) in the search criterion several codes which are not listed in the literature can be found. That is because when considering the typical encoder memory order criterion the leaps between available decoding complexity values are very large (the complexity doubles for each additional memory in the encoder). The TC( M)-based criterion allows for an increased granularity in the list of decoding complexity values, as can be seen in Tables 1-5 in the manuscript. Therefore, the proposed criterion and the resultant UEP codes give a much larger flexibility for the system designer.
Finally, it is important to mention that d eff in this paper has been obtained from the conventional, time-invariant trellis of the convolutional codes. It is easy to see that if the conventional trellis is obtained from the same "matrix module" in (4) (in the minimal-span form) used to obtain the "minimal" trellis, then the mapping from information bits to coded bits inferred from the edge labeling in the "minimal" trellis module (see [16]) is the same as the one in the conventional trellis of the convolutional code. Therefore, d eff can be obtained from the conventional trellis, avoiding the explicit construction of the "minimal" trellis module.

CONCLUSIONS
This paper has considered the problem of providing unequal error protection to a binary data stream transmitted over a noisy channel via a single error-correcting code with low decoding complexity. It thus embraces a number of important applications that require different levels of protection for their bits. For this purpose, we have proposed the recently introduced class of generalized punctured convolutional codes and we have taken McEliece and Lin's [16] decoding complexity measure, namely, the number of symbols per information bit in the "minimal" trellis module for the code. A code search has been conducted and new good convolutional codes endowed with unequal error protection have been tabulated for a variety of code rates and "minimal" trellis complexities. It is seen through computer simulations that the E b /N 0 required to achive a bit-error rate of 10 −5 with a simple rate 3/4 convolutional code can differ in as much as 2 dB, depending on which of the three encoder inputs we are referring to, and the most protected encoder input requires about 1.5 dB lesser E b /N 0 than what is required to achieve the same bit-error rate averaging over all encoder inputs. This example gives an idea of the unequal error protection capability of the new codes. The low decoding complexity, 6 EURASIP Journal on Advances in Signal Processing resulting from the adoption of the "minimal" trellis for the code, makes these codes attractive for practical applications.