6572
IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 58, NO. 10, OCTOBER 2012
High-Rate Maximum Runlength Constrained Coding Schemes Using Nibble Replacement Kees A. Schouhamer Immink, Fellow, IEEE
Abstract—In this paper, we will present coding techniques for the character-constrained channel, where information is conprescribed veyed using -bit characters (nibbles), and where characters are disallowed. Using codes for the character-constrained channel, we present simple and systematic constructions of high-rate binary maximum runlength constrained codes. The new constructions have the virtue that large lookup tables for encoding and decoding are not required. We will compare the error propagation performance of codes based on the new construction with that of prior art codes. Index Terms—Constrained code, recording, runlength limited code.
I. INTRODUCTION
W
E will present coding techniques for the character-constrained channel, where , , specific -bit characters are removed from the repertoire of possible characters. Such channels have been proposed to be able to use the inadmissible nibble(s) as synchronization markers. Various code constructions have been proposed to implement the character-constrained channel. Denissen and Tolhuizen presented a coding method, where the disallowed nibbles are removed from a codeword comprising -bit nibbles using Galois field arithmetic [1]. The code requires one additional (redundant) -bit nibble. The maximum number of user nibbles that can be accommodated in this code is . An alternative method was presented by Silvus and Anderson [2], where a binary input word is converted into an -digit integer in a base . The base- integers, in turn, are uniquely translated into the set of allowed -bit nibbles using a lookup table. In this paper, we will show that a character-constrained code can be used to generate a runlength-limited (RLL) sequence or systems that impose a constraint on the maximum run of transitions in the encoded sequence, i.e., MTR-constrained codes [3]. For example, in case we forbid the “all-zero” nibble, each -bit nibble generated has at least one “1,” so that the maximum (zero) runlength of the cascaded sequence of -bit nibbles equals . MTR-constrained codes have at Manuscript received June 23, 2011; revised October 11, 2011; accepted June 01, 2012. Date of publication June 08, 2012; date of current version September 11, 2012. This work was supported by the grant Theory and Practice of Coding and Cryptography under Award NRF-CRP2-2007-03. The author is with Turing Machines Inc., 3016 DK Rotterdam, The Netherlands, and also with the Nanyang Technological University, Nanyang Avenue, Singapore 639798 (e-mail:
[email protected]). Communicated by A. Ashikhmin, Associate Editor for Coding Techniques. Color versions of one or more of the figures in this paper are available online at http://ieeexplore.ieee.org. Digital Object Identifier 10.1109/TIT.2012.2204034
most consecutive 1s, and are, therefore, related to conventional -constrained codes that have a maximum run of consecutive 0s. MTR and -constrained codes are usually used in conjunction with and precoding [3], respectively. Low-rate -constrained or MTR codes of rate less than 16/17 are straightforwardly constructed in practice using a lookup table. The first difficulty arising from the construction of a modulation code with a much higher rate is the considerable complexity usually required to realize the implementations of the encoding and decoding processes. The second difficulty is error propagation, where a single error in the received word may result in massive amounts of decoded errors. Various methods for systematically designing high-rate -constrained codes have been published in the art; see [3, Chapter 5], for a survey. Kautz [4] was probably the first to present a simple algorithmic method, called enumerative encoding, for translating user words into -constrained codewords and vice versa. Wijn, gaarden and Immink presented various codes of rate where subsequences that violate the maximum runlength are iteratively removed to obtain a -constrained sequence [5]. A straightforward way of constructing high-rate codes is by interleaving coded and uncoded symbols, where the coded symbols are obtained from a low-rate -constrained base code. An advantage of the interleaving scheme is that error propagation is confined to the “coded” part of the codewords. For example, , code can be constrained words generated by a rate 8/9, , interleaved with uncoded (user) symbols. A rate 24/25, based on interleaving of the aforementioned rate 8/9, code, has been presented by Fisher and Fitspatrick [6] and Sonntag [7]. McEwen et al. [8], [9] and McClellan [10] presented interleaved codes of rates including 32/33, 48/49, 56/57, 72/73, 50/51. For example, in the rate 50/51 code, the base code has rate 10/11, and the 11-bit word produced by the base code encoder is divided into four nibbles of lengths 3, 3, 3, and 2. The four nibbles are interleaved with four 10-bit user data. Then, the new codeword consists of the four 10-bit symbols interleaved with the 11-bit base code nibbles, for a total of 51 bits. The best of the high-rate codes using interleaving have a redundancy of around 1%. In this paper, we will study an alternative to the aforementioned coding methods, where the redundancy is around a tenth of a percent. The usage of large lookup tables is avoided, and average error propagation is less than that in prior art high-rate enumerative schemes. Basically, a given -bit nibbles, , , -bit codeword is partitioned into . The “nibble replacement” algorithm on which that is we base the new coding method guarantees that predefined inadmissible nibbles are excluded from the repertoire of all, , possible nibbles. We will apply the new character-constrained
0018-9448/$31.00 © 2012 IEEE
IMMINK: HIGH-RATE MAXIMUM RUNLENGTH CONSTRAINED CODING SCHEMES USING NIBBLE REPLACEMENT
code to the construction of -constrained and MTR-constrained codes. The structure of this paper is as follows. We start, in Section II, with a description of a simple base-conversion method for generating character-constrained sequences. In Section III, we will describe the “nibble replacement” algorithm, where a single redundant bit is added to a block of user (source) bits; disallowed nibbles are removed by the algorithm. In Section IV, we will work out constructions of -constrained codes so that the performance of the new code may be compared with that of prior art constructions. In Section V, we will present results of error propagation simulations showing the performance difference between the new codes and prior art codes. Section VI concludes this paper.
6573
is a multiple of the integer , that is, , where is the nibble size and the number of -bit nibbles in a codeword. The aim of the encoding procedure is to guarantee that each -bit nibble generated is a member of a predefined set of nibbles. The user bits are partitioned into blocks of bits and one block of bits. Let denote the binary user data word, which is partitioned, as said, into nibbles, , . The first nibble, , called pivot nibble, contains user bits plus a bit called pivot bit . The value of the pivot bit will be determined by the encoder as we will explain in the next section. The remaining -bit nibbles are defined by , .
A. Encoding Algorithm II. BASE-CONVERSION METHOD A simple scheme for generating a series of -bit nibbles, where the occurrence of -bit nibbles is forbidden, is the base-conversion method [2]. In the base-conversion method, a binary -bit input word , , , is translated into an -tuple of -ary integers , where . The base convertor computes the integers , , in such a way that
In the second step, the -ary integers , , are translated into the allowed -bit nibbles using a lookup table. The rate of the aforementioned code is . Let ; then for a rate , block code, the parameters must satisfy the inequality
or
(1) The implementation of the encoding and decoding algorithms using a base-conversion algorithm is quite straightforward, and will not be discussed. In Section V, we will present results of computer simulations for assessing the error propagation of the base-conversion method. In the next section, we will present an alternative coding method, where disallowed nibbles are recursively removed from the input sequence and replaced by allowed nibbles in such a way that the source word can be uniquely reconstructed.
III. NIBBLE REPLACEMENT TECHNIQUE It is assumed that binary user symbols are translated into a codeword of length bits. The integer
Without loss of generality, we assume that the disallowed nibbles have a decimal representation in the range . The encoder will remove all nibbles whose decimal representation is less than , and will replace them with nibbles whose decimal representation is larger than or equal to . The encoder proceeds as follows. Set the pivot bit equal to “1.” The encoder successively scans the sequence of nibbles , . If all nibbles in the address range are admissible, that is , where the integer function equals the decimal representation of the binary integer , then we transmit the codeword . In other words, no changes are effected to the input word except prepending the extra “1.” However, in case there is an inadmissible nibble in the codeword at position , that is , the pivot nibble and the disallowed nibble are modified as follows. 1) The encoder replaces the first found inadmissible nibble at address by the pivot nibble . 2) The pivot bit is set to “0” (to signal the receiver that the word has been modified). 3) The remaining bits of the pivot nibble will be replaced by data indicative of the address and the value of the disallowed nibble. After the aforementioned changes in the pivot nibble and the first found disallowed nibble have been effected, the encoder then iterates till the end of the codeword, treating a replaced nibble as a pivot nibble in the first replacement in a similar manner as done in the first pass, and a found disallowed nibble is replaced by the current pivot nibble and so on, until all disallowed nibbles will be replaced. Clearly, the information on both the position and the value of a replaced nibble must be uniquely restored by the decoder. Said information, that is the position and the value of a nibble replaced, will be packed into bits of the pivot nibble. There are admissible pivot nibbles that start with a “0,” while the number of “position and value” combinations needed equals . Thus, we conclude that a nibble replacement code can be constructed if
6574
IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 58, NO. 10, OCTOBER 2012
so that the maximum number of nibbles modated in a codeword is
that can be accom-
(2) Two remarks regarding the code redundancy are in order at this . Then, point. First, the new construction is possible if the rate of a base (block) code using the allowed nibbles is . As the rate of the nibble replacement technique is , we conclude that the new technique reduces the redundancy by a factor of . Second, see (1), the redundancy of the nibble replacement technique is about a factor of 2ln (2) higher than that of the base-conversion coding scheme. The next algorithm provides a formal description of the nibble replacement routine. Replacement algorithm/encoding routine Input: The integers , , , and the binary -bit data word . Define the -bit nibbles and , . Output: List of encoded nibbles , where , . Initialize the pivot bit and the integer . For if then begin , , end, where , denotes the -bit binary representation of the nonnegative integer . At the conclusion of the aforementioned recursive replacement routine, all inadmissible nibbles will be removed, and replaced by admissible nibbles. Note that the pivot bit equals “1” in case the user data are sent unmodified or it equals “0” in case one or more nibble replacements have been made. As a result, the receiver can easily detect that a nibble replacement has been effected. The modified nibbles contain either position pointer information or the data of the pivot nibble. The modified nibble with the highest index contains the data of the pivot nibble . Decoding of the received codeword can be accomplished in a straightforward way by recursively undoing the replacements. Two worked coding examples will be helpful. Example 1: Let , , and ; let the user data be “11 000 110 111” (the spaces between the groups of bits are written for clerical convenience). We append “1,” and obtain “111 000 110 111.” The first (and only) occurrence of an “all-zero” nibble is at position . We replace that nibble with the content of the first nibble, “111,” that is = “111,” and the first nibble is set to = “001.” Then we obtain, as there are no other “all-zero” nibbles to be replaced, the codeword “001 111 110 111.” Example 2: Let , , and ; let the user data be “000 0001 0000 1111.” We append “1,” and obtain “1000 0001 0000 1111.” Set . We find the first inadmissible
nibble at position . Then, we set , = “1000,” , and = “0011,” where the integer function equals the -bit binary representation of the integer , so that we obtain after the first replacement the intermediate result “0011 1000 0000 1111.” The second inadmissible nibble is found at position . We have = “1000,” , = “0100,” so that we obtain as final result “0011 0100 1000 1111.” Remark: The aforementioned algorithm is written to remove the lowest ranking inadmissible nibbles. The coding algorithm is, however, more general, and can be employed to remove any set of inadmissible nibbles. We can do so by a straightforward translation of the set of allowed nibbles in the aforementioned algorithm into a second predefined set of nibbles allowed in a different scheme. Alternatively, we may rewrite the aforementioned algorithm by implementing an adjustment of the presetting of the pivot bit and the other pointer data. The following decoding routine will retrieve the original data word . Decoding routine Input: The integers , , , and the encoded -bit nibbles . Output: decoded -bit nibbles . Initialize the integer and copy the -bit nibbles , all . repeat ; ; div ; until ; . The aforementioned routine recursively replaces the nibbles that were replaced by the encoder. The routine halts when the equals “1.” By most significant bit (msb) of a replaced nibble invoking a straightforward reshuffling routine, the original data word can be retrieved from the decoded -bit nibbles . The sequence of integers , that is, the sequence of positions where nibbles are replaced during the various replacement (decoding) steps, is increasing in magnitude as they refer to higher indices. This is a useful property that can be optionally exploited to signal the decoding circuitry and/or halt the aforementioned decoding routine in case bit errors have been introduced during transmission or storage of the nibbles . Then the halting condition becomes until ( or ). Alternatively, a decoder may detect these malformations and report an undecodable codeword or/and may halt the recursion after steps. B. Simplified Alternative Construction The simplified encoder procedure to be presented here is slightly less complex than the general procedure discussed in the previous section, though at a cost of a slightly reduced code (all-zero word is removed) and , rate. We choose so that , and the code rate is . In similar vein as in the general procedure, let denote
IMMINK: HIGH-RATE MAXIMUM RUNLENGTH CONSTRAINED CODING SCHEMES USING NIBBLE REPLACEMENT
TABLE I ENCODING TABLE FOR A RATE 8/9 CODE,
AND
the binary user data, which are partitioned into .
nibbles,
,
Encoding routine Input: The integer , and the binary -bit data word . Define the -bit nibbles and , . Output: List of encoded nibbles , where , . Define the -bit nibble , where if or if , , and let . If then transmit the codeword . If and then transmit the codeword , where is substituted for the “all-zero” nibble . If then the encoder substitutes for the “all-zero” nibble with the least index. The remaining “all-zero” nibbles are set to “all-one” (or any other allowed value). Substituting the “all-zero” words with the “all-one” word is an arbitrary choice, and depends on the specific application.
6575
be cascaded without violating the imposed constraint. Similarly, such a set of -constrained sequences can be used in conjunction with the nibble replacement technique. Let denote the number of -constrained sequence of length . The quantity can be straightforwardly computed using generating functions [3, p. 108], from which we may derive that is maximized by symmetry in and , that is by setting and . Let denote the number of -constrained sequences of length , where and . We simply find that the minimum redundancy of -constrained codes using nibble replacement equals , where (3) For given , the code designer has the freedom to vary between 1 and by choosing between and , where denotes the minimal for which the condition is satisfied. We will use generating functions for enumerating the number of -constrained sequences and we will derive a simple estimate of versus and . To that end, let the generating function be defined by the formal power series
where is a dummy variable and integer-type coefficients. The operator denotes the extraction of the coefficient of in power series , that is, define
Example 3: Let , and let the user data be “000 0001 0000 0000.” Append “1,” so that we obtain the intermediate word “1000 0001 0000 0000.” The nibbles at positions 3 and 4 are inadmissible, so that we obtain . Let = “0011,” = “1000,” and = “1111.” Transmit “0011 0001 1000 1111.”
The number of sequences of length , , can be found as the coefficient of the series expansion of (see [3, page 108])
Example 4: We have worked out the encoding table; see Table I, for a rate 8/9, code with and . For example, let the user data be “11 000 110.” We find , and transmit “010 111 110.” The aforementioned code can be turned into a rate 16/17 code by interleaving with eight uncoded data bits as presented by Immink and Wijngaarden [11].
Using (3) and (4), we can straightforwardly compute the redundancy of -constrained codes for a given choice of and . Examples of such codes will we be presented in the next section. We will first proceed with a computation of an estimate of the redundancy. For , we may drop the term , and write down
(4)
IV. RESULTS AND COMPARISONS WITH PRIOR ART CODES In this section, we will discuss some practicalities, and we will show how we can construct -constrained codes using the nibble replacement technique. We will compare the performance of the newly constructed -constrained codes with that of prior art codes. A. Codes Using
so that
Constrained Sequences
Prior art -constrained codes are usually constructed using a set of constrained sequences, where a constrained sequence is a -constrained sequence that starts with at most and ends with at most 0s. Clearly, if such sequences can
We can easily derive that for (5)
6576
Over a wide range of parameters proximate by
IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 58, NO. 10, OCTOBER 2012
and ,
even, we can ap-
TABLE II SELECTED VALUES OF
AND , AND MINIMUM VALUE OF AND -10 USER SYSTEMS
FOR
BASE-8
(6) which is, as we may notice, independent of . The code redundancy can be approximated by (7) The aforementioned relationship offers a good insight into the trading of the various design parameters. The code designer may choose a nibble length, . The larger the , the smaller the redundancy, but an increase of the nibble size comes at the price of (exponentially) increasing size of the lookup tables. Equation (7) shows the trading between maximum runlength and code redundancy. For example, let us choose some practical values, say, and ; then we conclude that we can design a code with a redundancy of around 0.1%. The above shows that the new coding method offers a flexible way of trading the nibble length , the maximum runlength , and the overall redundancy. Examples of worked codes will be shown in the next section. In the next section, we will demonstrate the design of -constrained codes. B. Application to Code Design The majority of maximum runlength block codes presented in the (patent) literature is characterized by a rate , where is the codeword length. Virtually all known channel coding schemes for data storage or telecommunications are based on 8-bit (byte) ECC symbols, as they are historically the de facto standard. It has been anticipated that the use of 10-bit ECC symbols and thus new methods are required to achieve improved density and error propagation performance in the context of 10-bit ECC symbols. It would be useful if the new coding system could support a base of 8-bit and/or 10-bit systems. In this context, for a nibble replacement technique, the choice is not attractive as then the codeword can support user bits, which is neither a multiple of 8 nor 10. Also, a combination of eight codewords that each support bits does not lead to an attractive system. We, therefore, take a closer look at systems where . Let . Then, a very attractive parameter choice is , since , which leads to a byte-oriented system of 64-byte input data. We simply find for , , , that , so that . We also find , , , and , so that we conclude that is the smallest for which we can construct an -bit nibble replacement system. Table II shows the selected values of and , and the minimum value of possible with this parameter choice for user systems with a base-8 and -10. C. Interleaving As a further illustration of the performance of the new technique, we have worked out a comparison with the interleaving method. As discussed in Section I, a straightforward way of constructing high-rate codes is by interleaving coded and uncoded
symbols, where the coded symbols are obtained from a low-rate -constrained base code. Advantages of the interleaving scheme are 1) reduced complexity and 2) reduced error propagation. Unfortunately, these benefits come at a price of higher redundancy [12]. Assume a rate , base code whose output is interleaved with unconstrained (uncoded) user symbols. We chop the coded output sequence into subsequences of length ; then each subsequence will have at least one “1.” We interleave the -bit subsequences with unconstrained sequences of length . The code rate of the interleaved scheme is (8) where the interleaved sequence is -constrained. An advantage of the interleaving scheme is that error propagation is confined to the “coded” part of the codewords. Fig. 1 shows results of computations. The diagram shows the redundancy of interleaved schemes using a base rate 8/9, code. Second, the diagram shows the redundancy of the nibble replacement technique, , using a set of -constrained sequences. As a comparison, we have plotted the capacity of the -constrained channel. D. Worked Example of a Long Code In this section, we will present some worked examples that will show the efficacy of the new coding method. First, we will show the concatenation of a code designed in accordance with the teachings of the aforementioned rules, and a structured error correcting low-density parity-check (LDPC) code. In order to compare our results with prior art methods, we will assume the basic components of our design including the reverse code concatenation to be equal to the ones presented by Han and Ryan [13]. 1) Prior Art: In the prior art design, a 4096-bit user word is translated into a -constrained LDPC codeword. It is assumed that the rate-50/51 constrained code taken from [9] is used to translate the 4096 user bits plus 4 dummy bits (so that the input word length is a multiple of 50) into a ( ) sequence of length . The constrained sequence of length 4182 bits is forwarded to a rate-0.911 LDPC code, which in turn produces a LDPC codeword. The 410 parity bits generated by the LDPC code are inserted (stuffed) uniformly among the 4182 bits of the constrained sequence, which relaxes the constraint to . In summary, in the prior art scheme, are
IMMINK: HIGH-RATE MAXIMUM RUNLENGTH CONSTRAINED CODING SCHEMES USING NIBBLE REPLACEMENT
Fig. 1. Plots of (a) redundancy of nibble replacement method,
, (b) interleaving of a
needed to convert the input data into a -constrained LDPC codeword. 2) New Design: From the aforementioned teachings, we take and , so that we find , , and . Four full 1019-bit plus a 19-bit input blocks are required to accommodate 4095 bits of the input word. The remaining input bit is added to a 10-bit nibble, relaxing the constraint to . Thus, five extra bits are needed to convert a 4096-bit input sequence into a -constrained sequence. In a similar way as in the prior art [13], the 5001-bit constrained sequence is forwarded to the LDPC encoder of rate-0.911, which produces 401 parity bits. The 401 parity bits are padded between the nibbles (note that there are 410 10-bit nibbles, which is sufficient to accommodate the parities). In total, extra bits are required to convert a 4096-bit input word into a -constrained LDPC codeword, resulting in a saving of 90 channel bits with respect to the prior art. Alternatively, for the same overhead we may construct a -code with , which is padded with two parity bits per 17-bit nibble, relaxing the constraint to 14. V. EFFECTS OF ERROR PROPAGATION In this section, we will report on simulations of experiments with error propagation. It is assumed that a binary source word is translated into a binary codeword using a specified coding algorithm. Assume that during transmission of a single error is made, i.e., we receive , , where denotes Hamming distance between and . Decoding of will result in the word . In particular, we will investigate the error propagation, i.e., . The computation of a major part of the error propagation of the nibble replacement technique is amenable to analysis. The probability that of the nibbles are replaced during encoding equals (binomial distribution) (9)
,
6577
base code, and (c) channel capacity versus .
where
and . Note that , which can be approximated by as and . So we conclude that 61% of the transmitted codewords will not be modified. Assume that nibbles are replaced during encoding; then a single decoding error will result, unless the pivot bit or the modified nibbles are received in error. Thus, in case nibbles are replaced, the probability of a single error equals
Averaging, using (9), yields the probability, a single decoding error, i.e.,
, that there is
(10) We conclude from the above that in the nibble replacement technique the probability of single errors in the decoded codeword grows to unity with growing codeword length, and that, as a result, error propagation is diminishing with increasing codeword length, and we conclude that massive error propagation is essentially absent in the nibble replacement technique. Fig. 2 shows simulation results of the error propagation in case the pivot bit is inverted. We observe that the propagation histograms are bell shaped showing a peak at approximately errors. For -constrained codes, it is possible to reduce the error propagation even furthermore by observing that the encoder is “overactive.” The encoder as described previously always replaces the disallowed nibbles, while, clearly it only needs to replace a nibble if that nibble, in conjunction with the previous and/or next nibble, violates the constraint. That is, if the sum of the “zero”-runlengths of the tail and nose of two consecutive is greater than . Computer simulations have shown that, on the average, in case the encoder replaces nibbles only if a conjunction of two consecutive nibbles violates the -constraint, single errors are in the majority, and that for multiple errors are only made if the pivot bit is received in error.
6578
IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 58, NO. 10, OCTOBER 2012
Fig. 2. Histogram of error propagation of the nibble replacement technique for errors in case the pivot bit is inverted.
,
,
,
Fig. 3. Histograms (log scales) of error propagation of Kautz-type enumerative coding for the parameters .
A. Error Propagation of Prior Art Schemes In this section, we will compare the average error propagation of the nibble replacement method with that of two prior art schemes, namely Kautz-type enumeration [4] and base-conversion [2]. The Kautz-type enumeration scheme translates an -bit source word into a -constrained -bit codeword, . The Kautz-type enumeration scheme is a base conversion
, and
versus the number of decoded bit
,
, and
method where the binary codeword is represented in a positional numeral system where the weight coefficients do not equal the usual powers of 2. Let the weight coefficients be denoted by , . The encoder translates the binary -bit input word into an -bit codeword , in such a way that
IMMINK: HIGH-RATE MAXIMUM RUNLENGTH CONSTRAINED CODING SCHEMES USING NIBBLE REPLACEMENT
Fig. 4. Histogram (log scales) of error propagation of base-conversion coding for
The weight coefficients are equal to the number of -constrained sequences of length , and each coefficient requires approximately bits for its representation [14]. The decoder forms the binary representation of the inner product , where , , denote the received channel bits. In case the th bit is received in error, that is, it will result in an error burst ranging from position to . Fig. 3 (log–log scales) displays histograms of the number of decoded bit errors of a -constrained code using Kautz-type enumeration [4], [15] with parameters , , and in case a randomly chosen channel bit is inverted. The histograms show a typical behavior of enumerative-type systems: up to around the histogram is constant, and rapidly decays for larger values. The average number of decoded errors increases with growing codeword length, and equals around . A similar propagation behavior can be observed in the next diagram, Fig. 4 (log–log scales), which shows results of computer simulations of error propagation in the base-conversion coding scheme as described in Section II. Up to around decoded errors the histogram is constant, and rapidly decays for larger values. The average error propagation increases with growing codeword length, and equals around . Both diagrams show very “typical” results, that is, for large , the enumerative coding schemes show massive error propagation. The specific values of the maximum runlength , etc., do not play a significant role in the error propagation. VI. CONCLUSION We have presented a new scheme, called the nibble replacement technique, for generating sequences of -bit nibbles,
, and 10,
,
6579
,
.
where , predefined disallowed -bit nibbles are avoided. The nibble replacement technique at the encoder’s site removes all disallowed nibbles and replaces them by allowed nibbles. The position and original value of the replaced nibbles can be uniquely decoded by the receiver, and the replacements made can be undone. We have shown that the nibble replacement technique can be used for generating maximum runlength -constrained sequences. The new coding method offers a flexible way of trading the nibble length , the maximum runlength , and the overall redundancy. We have given examples of code constructions, where is around 12 to 14, and the code redundancy is less than half a percent. We have presented results of error propagation based on computer simulations. REFERENCES [1] A. J. M. Denissen and L. M. G. M. Tolhuizen, “Conversion arrangement for a magnetic recording/reproducing apparatus of the D-type,” U.S. Patent 5 644 582, Jul. 1997. [2] G. L. Silvus and K. D. Anderson, “Error correction coding utilizing numerical base conversion for modulation coding,” US Patent 6 959 412, Oct. 2005. [3] K. A. S. Immink, Codes for Mass Data Storage Systems, Second ed. Eindhoven, The Netherlands: Shannon Foundation Publishers, 2004. [4] W. H. Kautz, “Fibonacci codes for synchronization control,” IEEE Trans. Inform. Theory, vol. IT-11, no. 2, pp. 284–292, Apr. 1965. [5] A. J. de Lind van Wijngaarden and K. A. S. Immink, “Construction of constrained codes using sequence replacement techniques,” IEEE J. Sel. Areas Commun., 2010. [6] K. D. Fisher and J. Fitzpatrick, “Rate 24/25 modulation code for PRML recording Channels,” U.S. Patent 5 757 294, May 1998. [7] J. L. Sonntag, “Apparatus and method for increasing density of runlength limited codes without increasing error propagation,” U.S. Patent 5 604 497, Feb. 1997. [8] P. McEwen, B. Zafar, and K. Fitzpatrick, “High rate runlength limited codes for 8-bit ECC symbols,” U.S. Patent 6 201 485, Mar. 2001. [9] P. McEwen, K. Fitzpatrick, and B. Zafar, “High rate runlength limited codes for 10-bit ECC symbols,” U.S. Patent 6 259 384, Jul. 2001.
6580
IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 58, NO. 10, OCTOBER 2012
[10] M. A. McClellan, “Runlength-limited code and method,” U.S. Patent 6 285 302, Sep. 2001. [11] K. A. S. Immink and A. J. de Lind van Wijngaarden, “Simple high-rate constrained codes,” Electron. Lett., vol. 32, no. 20, pp. 1877–1877, Sep. 1996. [12] T. Lei Poo, P. Chaichanavong, and B. H. Marcus, “Tradeoff functions for constrained systems with unconstrained positions,” IEEE Trans. Inform. Theory, vol. 52, no. 4, pp. 1425–1449, Apr. 2006. [13] Y. Han and W. E. Ryan, “Concatenating a structured LDPC code and a constrained code to preserve soft-decoding, structure, and burst correction,” IEEE Trans. Magn., vol. 42, no. 10, pp. 2558–2560, Oct. 2006. [14] K. A. S. Immink and A. J. E. M. Janssen, “Error propagation assessment of enumerative coding schemes,” IEEE Trans. Inform. Theory, vol. 45, no. 7, pp. 2591–2594, Nov. 1999. [15] K. A. S. Immink, “A practical method for approaching the channel capacity of constrained channels,” IEEE Trans. Inform. Theory, vol. 43, no. 5, pp. 1389–1399, Sep. 1997.
Kees A. Schouhamer Immink (M’81–SM’86–F’90) received the Ph.D. degree from the Eindhoven University of Technology. He was with Philips Research Labs in Eindhoven from 1968 till 1998. After leaving Philips, in 1998, he founded Turing Machines Inc., which has been successful in applying the tenets of information theory to digital data storage and transmission. He is, since 1994, an adjunct professor at the Institute for Experimental Mathematics, Essen University, Germany. Immink designed coding techniques of virtually all consumer-type digital audio and video recording products, such as Compact Disc, CD-ROM, CD-Video, Digital Audio Tape recorder, Digital Compact Cassette system, DCC, Digital Versatile Disc, DVD, Video Disc Recorder, and Blu-ray Disc. He received widespread recognition for his many contributions to the technologies of video, audio, and data recording. He received a Knighthood in 2000, a personal “Emmy” award in 2004, the 1998 IEEE Edison Medal, the 1996 IEEE Masaru Ibuka Consumer Electronics Award, the 1999 AES Gold Medal, and the 2004 SMPTE Progress Medal. He received the Golden Jubilee Award for Technological Innovation by the IEEE Information Theory Society in 1998. He was named a fellow of the AES, IEE, and SMPTE, and was inducted into the Consumer Electronics Hall of Fame, elected into the Royal Netherlands Academy of Sciences and the US National Academy of Engineering. He served the profession as a President of the Audio Engineering Society Inc., New York, in 2003.