ArticlePDF Available

High-Rate Maximum Runlength Constrained Coding Schemes Using Nibble Replacement


Abstract and Figures

In this paper, we will present coding techniques for the character-constrained channel, where information is conveyed using q-bit characters (nibbles), and where w prescribed 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.
Content may be subject to copyright.
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 con-
veyed using -bit characters (nibbles), and where prescribed
characters are disallowed. Using codes for the character-con-
strained 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 en-
coding 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
WE will present coding techniques for the character-con-
strained channel, where ,, specic-bit
characters are removed from the repertoire of possible char-
acters. 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 char-
acter-constrained channel.
Denissen and Tolhuizen presented a coding method, where
the disallowed nibbles are removed from a codeword com-
prising -bit nibbles using Galois eld 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 tran-
sitions 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 max-
imum (zero) runlength of the cascaded sequence of -bit nib-
bles 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 Nether-
lands, and also with the Nanyang Technological University, Nanyang Avenue,
Singapore 639798 (e-mail:
Communicated by A. Ashikhmin, Associate Editor for Coding Techniques.
Color versions of one or more of the gures in this paper are available online
Digital Object Identier 10.1109/TIT.2012.2204034
most consecutive 1s, and are, therefore, related to conven-
tional -constrained codes that have a maximum run of con-
secutive 0s. MTR and -constrained codes are usually used in
conjunction with and precoding [3],re-
Low-rate -constrained or MTR codes of rate less than 16/17
are straightforwardly constructed in practice using a lookup
table. The rst difculty 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 difculty is
error propagation,whereasingleer
ror 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 thersttopresentasimpleal-
gorithmic 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 sym-
bols are obtained from alow-rate -constrained base code. An
advantage of the interleaving scheme is that error propagation
is connedtothe“cod
ed” part of the codewords. For example,
constrained words generated by a rate 8/9, , code can be
interleaved with uncoded (user) symbols. A rate 24/25, ,
based on interleaving of the aforementioned rate 8/9, code, has
been presented by FisherandFitspatrick[6]andSonntag[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 di-
vided into four nibbles of lengths 3, 3, 3, and 2. The four nib-
bles 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 re-
dundancy of around 1%. In this paper, we will study an alter-
native to the aforementioned coding methods, where the redun-
dancy 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 codeword is partitioned into -bit nibbles, , ,
that is. The “nibble replacement” algorithm on which
we base the new coding method guarantees that predened
inadmissible nibbles are excluded from the repertoire of all, ,
possible nibbles. We will apply the new character-constrained
0018-9448/$31.00 © 2012 IEEE
code to the construction of -constrained and MTR-constrained
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” algo-
rithm, 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.
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 in-
tegers ,,insuchawaythat
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
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 re-
cursively removed from the input sequence and replaced by al-
lowed nibbles in such a way that the source word
can be uniquely reconstructed.
It is assumed that binary user symbols
are translated into a codeword of length bits. The integer
is a multiple of the integer ,thatis, ,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 predened 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, ,
.Therst 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 dened by , .
A. Encoding Algorithm
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 rep-
resentation 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 in-
teger 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 ex-
cept prepending the extra “1.” However, in case there is an
inadmissible nibble in the codeword at position ,thatis
, the pivot nibble and the disallowed nibble are
modied as follows.
1) The encoder replaces the rst 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 modied).
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
rst 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 rst replacement in a similar
manner as done in the rst pass, and a found disallowed nibble
is replaced by the current pivot nibble and so on, until all disal-
lowed 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
so that the maximum number of nibbles that can be accom-
Two remarks regarding the code redundancy are in order at this
point. First, the new construction is possible if . Then,
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 re-
dundancy of the nibble replacement technique is about a factor
of 2ln (2) higher than that of the base-conversion coding
The next algorithm provides a formal description of the
nibble replacement routine.
Replacement algorithm/encoding routine
Input: The integers , , ,andthebinary -bit
data word .
Dene the -bit nibbles and
, .
Output: List of encoded nibbles ,where ,
Initialize the pivot bit and the integer .
if then
begin , , end,
where , denotes the -bit binary representation of
the nonnegative integer .
At the conclusion of the aforementioned recursive replace-
ment routine, all inadmissible nibbles will be removed, and re-
placed by admissible nibbles. Note that the pivot bit equals “1”
in case the user data are sent unmodied 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 modied nibbles contain either position pointer
information or the data of the pivot nibble. The modied 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 ;lettheuser
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 rst (and only) occurrence of an
“all-zero” nibble is at position . We replace that nibble
with the content of the rst nibble, “111,” that is =“111,
and the rst 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 .Wend the rst inadmissible
nibble at position .Then,weset , =
“1000,” ,and
= “0011,” where the integer function equals the -bit
binary representation of the integer , so that we obtain after
the rst replacement the intermediate result “0011 1000 0000
1111.” The second inadmissible nibble is found at position
.Wehave = “1000,” ,
= “0100,” so that we obtain as nal result
“0011 0100 1000 1111.”
Remark: The aforementioned algorithm is written to remove
the lowest ranking inadmissible nibbles. The coding algo-
rithm is, however, more general, and can be employed to remove
any set of inadmissible nibbles. We can do so by a straightfor-
ward translation of the set of allowed nibbles in the afore-
mentioned algorithm into a second predened set of
nibbles allowed in a different scheme. Alternatively, we may
rewrite the aforementioned algorithm by implementing an ad-
justment of the presetting of the pivot bit and the other pointer
The following decoding routine will retrieve the original data
word .
Decoding routine
Input: The integers , , ,andthe encoded -bit
nibbles .
Output: decoded -bit nibbles .
Initialize the integer andcopythe -bit nibbles
,all .
repeat ; ; div ;
until ;
The aforementioned routine recursively replaces the nibbles
that were replaced by the encoder. The routine halts when the
most signicant bit (msb) of a replaced nibble equals “1.” By
invoking a straightforward reshufing 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 replace-
ment (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 afore-
mentioned decoding routine in case bit errors have been intro-
duced during transmission or storage of the nibbles .Then
the halting condition becomes until (or ).
Alternatively, a decoder may detect these malformations and re-
port an undecodable codeword or/and may halt the recursion
after steps.
B. Simplied Alternative Construction
The simplied 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
rate. We choose (all-zero word is removed) and ,
so that ,andthecoderateis . In similar
vein as in the general procedure, let denote
the binary user data, which are partitioned into nibbles, ,
Encoding routine
Input: The integer , and the binary -bit data
word .Dene the -bit nibbles
and ,
Output:Listof encoded nibbles ,where ,
Dene 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 specic
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.”
Example 4: We have worked out the encoding table; see
Table I, for a rate 8/9, code with and .Forex-
ample, let the user data be “11 000 110.” We nd ,
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].
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 perfor-
mance of the newly constructed -constrained codes with that
of prior art codes.
A. Codes Using Constrained Sequences
Prior art -constrained codes are usually constructed using
asetof constrained sequences, where a constrained se-
quence is a -constrained sequence that starts with at most and
ends with at most 0s. Clearly, if such sequences can
be cascaded without violating the imposed constraint. Sim-
ilarly, 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 gen-
erating functions [3, p. 108], from which we may derive that
is maximized by symmetry in and ,thatisbyset-
ting and .Let denote the number
of -constrained sequences of length ,where
and .Wesimplynd that the minimum redundancy
of -constrained codes using nibble replacement equals ,
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 satised.
We will use generating functions for enumerating the number
of -constrained sequences and we will derive a simple esti-
mate of versus and . To that end, let the generating
function be dened by the formal power series
where is a dummy variable and integer-type coefcients.
The operator denotes the extraction of the coefcient
of in power series , that is, dene
The number of sequences of length ,, can be found
as the coefcient of the series expansion of
(see [3, page 108])
Using (3) and (4), we can straightforwardly compute the redun-
dancy of -constrained codes for a given choice of and .Ex-
amples of such codes will we be presented in the next section.
We will rst proceed with a computation of an estimate of the
redundancy. For , we may drop the term ,and
write down
so that
We can easily derive that for
Over a wide range of parameters and ,even, we can ap-
proximate by
which is, as we may notice, independent of . The code redun-
dancy can be approximated by
The aforementioned relationship offers a good insight into the
trading of the various design parameters. The code designer may
chooseanibblelength, .Thelargerthe , the smaller the re-
dundancy, 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 exible way of trading the
nibble length , the maximum runlength , and the overall re-
dundancy. Examples of worked codes will be shown in the next
In the next section, we will demonstrate the design of -con-
strained 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 nd for , , ,that
,sothat .Wealsond , , ,
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 ,andthe
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 tech-
nique, we have worked out a comparison with the interleaving
method. As discussed in Section I, a straightforward way of con-
structing 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. Un-
fortunately, these benets come at a price of higher redundancy
Assume a rate ,base code whose output is inter-
leaved 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 .Thecoderate of the interleaved scheme is
where the interleaved sequence is -constrained. An ad-
vantage of the interleaving scheme is that error propagation is
conned to the “coded” part of the codewords. Fig. 1 shows re-
sults 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, ,usingasetof -constrained sequences. As
a comparison, we have plotted the capacity of the -constrained
D. Worked Example of a Long Code
In this section, we will present some worked examples that
will show the efcacy 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 con-
catenation to be equal to the ones presented by Han and Ryan
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 se-
quence, which relaxes the constraint to .Insum-
mary, in the prior art scheme, are
Fig. 1. Plots of (a) redundancy of nibble replacement method, , (b) interleaving of a ,base code, and (c) channel capacity versus .
needed to convert the input data into a -constrained
LDPC codeword.
2) New Design: From the aforementioned teachings, we take
and ,sothatwend , ,
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, re-
laxing the constraint to .Thus,ve extra bits are
needed to convert a 4096-bit input sequence into a -con-
strained sequence. In a similar way as in the prior art [13], the
5001-bit constrained sequence is forwarded to the LDPC en-
coder 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 sufcient 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.
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 specied coding
algorithm. Assume that during transmission of asingleerror
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)
where and . Note that
, which can be approximated by as
and . So we conclude that 61% of the transmitted
codewords will not be modied. Assume that nibbles are re-
placed during encoding; then a single decoding error will result,
unless the pivot bit or the modied nibbles are received in error.
Thus, in case nibbles are replaced, the probability of a single
error equals
Averaging, using (9), yields the probability, ,thatthereis
a single decoding error, i.e.,
We conclude from the above that in the nibble replacement tech-
nique the probability of single errors in the decoded codeword
grows to unity with growing codeword length, and that, as a re-
sult, error propagation is diminishing with increasing codeword
length, and we conclude that massive error propagation is essen-
tially 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 re-
places 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 conjunc-
tion 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.
Fig. 2. Histogram of error propagation of the nibble replacement technique for , , , ,and versus the number of decoded bit
errors in case the pivot bit is inverted.
Fig. 3. Histograms (log scales) of error propagation of Kautz-type enumerative coding for the parameters ,,and
A. Error Propagation of Prior Art Schemes
In this section, we will compare the average error propaga-
tion of the nibble replacement method with that of two prior art
schemes, namely Kautz-type enumeration [4] and base-conver-
sion [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
method where the binary codeword is represented in a posi-
tional numeral system where the weight coefcients do not
equal the usual powers of 2. Let the weight coefcients be
denoted by ,. The encoder translates the binary
-bit input word into an -bit codeword
Fig. 4. Histogram (log scales) of error propagation of base-conversion coding for , and 10, , , .
The weight coefcients are equal to the number of -con-
strained sequences of length , and each coefcient 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 com-
puter 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 .Bothdia-
grams show very “typical” results, that is, for large , the enu-
merative coding schemes show massive error propagation. The
specic values of the maximum runlength , etc., do not play a
signicant role in the error propagation.
We have presented a new scheme, called the nibble replace-
ment technique, for generating sequences of -bit nibbles,
where ,predened 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
exible way of trading the nibble length , the maximum run-
length , 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.
[1] A.J.M.DenissenandL.M.G.M.Tolhuizen, “Conversion arrange-
ment 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 c orrection coding utilizing nu-
merical 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.deLindvanWijngaardenandK.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 5757 294, May 1998.
[7] J. L. Sonntag, “Apparatus and method for increasing density of run-
length 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, M ar. 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.
[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.
[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 correc-
tion,” 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 assess-
ment 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. de-
gree from the Eindhoven University of Technology. He was with Philips Re-
search 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 dig-
ital 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.
... II. DESIGN OF HIGH-RATE K CONSTRAINED CODES Among many works available in the literature on the design of k constrained codes [9], [10], [11], [12], [13], the nibble replacement method recently proposed in [14] achieves code rates higher than most of the literature, with simple encoders and decoders and limited error propagation. However, the nibble replacement method designs codes in the NRZI format whereas a change in the state of the recording medium corresponds to a channel bit '1', and no change corresponds to a '0'. ...
... For the second step of decoding, following the decoding of the nibble replacement method, if the pivot bit of 1 X is a '1', the (n-1)-bit information word can be recovered by simply removing the pivot bit of 1 X . However, if the pivot bit is a '0', the decoder recovers the nibbles that were replaced by the encoder by recursively undoing the replacements [14]. Example 1. ...
This paper proposes systematic code design methods for constructing efficient spectrum shaping codes with the maximum runlength limited constraint k, which are widely used in data storage systems for digital consumer electronics products. Through shaping the spectrum of the input user data sequence, the codes can effectively circumvent the interaction between the data signal and servo signal in high-density data storage systems. In particular, we first propose novel methods to design high-rate k constrained codes in the non-return-to-zero (NRZ) format, which can not only facilitate timing recovery of the storage system, but also avoid error propagation during decoding and reduce the system complexity. We further propose to combine the Guided Scrambling (GS) technique with the k constrained code design methods to construct highly efficient spectrum shaping k constrained codes. Simulation results demonstrate that the designed codes can achieve significant spectrum shaping effect with only around 1% code rate loss and reasonable computational complexity.
... For the design of k constrained codes, the nibble replace- ment method recently proposed in [4] achieves code rates higher than most other works in the literature with simple en- coders and decoders. However, the nibble replacement method designs codes in the non-return-to-zero-inverse (NRZI) format whereas a change in the state of the recording medium corresponds to a channel bit '1', and no change corresponds to a '0'. ...
Conference Paper
We propose a systematic code design method for constructing efficient spectrum shaping constrained codes for high-density data storage systems. Simulation results demonstrate that the designed codes can achieve significant spectrum shaping effect with only around 1% code rate loss and reasonable computational complexity.
... (both the all-'1' and all-'0' words are deleted). Very efficient implementations of high-rate T -constrained codes can be constructed with the nibble replacement method described in [9]. The code is based on an algorithm that recursively removes w > 0 disallowed n-symbol q-ary words in a string of L n-symbol codewords while only one q-ary redundant symbol is added. ...
Full-text available
The performance of certain transmission and storage channels, such as optical data storage and nonvolatile memory (flash), is seriously hampered by the phenomena of unknown offset (drift) or gain. We will show that minimum Pearson distance (MPD) detection, unlike conventional minimum Euclidean distance detection, is immune to offset and/or gain mismatch. MPD detection is used in conjunction with (T) -constrained codes that consist of (q) -ary codewords, where in each codeword (T) reference symbols appear at least once. We will analyze the redundancy of the new (q) -ary coding technique and compute the error performance of MPD detection in the presence of additive noise. Implementation issues of MPD detection will be discussed, and results of simulations will be given.
Coding schemes for storage channels, such as optical recording and non-volatile memory (Flash), with unknown gain and offset are presented. In its simplest case, the coding schemes guarantee that a symbol with a minimum value (floor) and a symbol with a maximum (ceiling) value are always present in a codeword so that the detection system can estimate the momentary gain and the offset. The results of the computer simulations show the performance of the new coding and detection methods in the presence of additive noise.
Full-text available
Preface to the Second Edition About five years after the publication of the first edition, it was felt that an update of this text would be inescapable as so many relevant publications, including patents and survey papers, have been published. The author's principal aim in writing the second edition is to add the newly published coding methods, and discuss them in the context of the prior art. As a result about 150 new references, including many patents and patent applications, most of them younger than five years old, have been added to the former list of references. Fortunately, the US Patent Office now follows the European Patent Office in publishing a patent application after eighteen months of its first application, and this policy clearly adds to the rapid access to this important part of the technical literature. I am grateful to many readers who have helped me to correct (clerical) errors in the first edition and also to those who brought new and exciting material to my attention. I have tried to correct every error that I found or was brought to my attention by attentive readers, and seriously tried to avoid introducing new errors in the Second Edition. China is becoming a major player in the art of constructing, designing, and basic research of electronic storage systems. A Chinese translation of the first edition has been published early 2004. The author is indebted to prof. Xu, Tsinghua University, Beijing, for taking the initiative for this Chinese version, and also to Mr. Zhijun Lei, Tsinghua University, for undertaking the arduous task of translating this book from English to Chinese. Clearly, this translation makes it possible that a billion more people will now have access to it. Kees A. Schouhamer Immink Rotterdam, November 2004
Conference Paper
Full-text available
General construction methods of prefix synchronized codes and runlength limited codes are presented, which make use of so-called sequence replacement techniques. These techniques provide a simple and efficient conversion of data words into codewords of a constrained block-code, where subsequences violating the imposed constraints are replaced by encoded information to indicate their relative positions in the data word. Several constructions are proposed for constrained codes with low error propagation, and for variable length constrained codes. The coding algorithms have a low computational and hardware complexity. The rate of the constructed codes approaches the theoretical maximum. It is feasible to apply these high rate constrained block codes in communication and recording systems
A method of encoding data includes representing the data as number(s) in a first base. The method further includes converting the number(s) into a number(s) in a second base. The resultant number in the second base can be viewed as data suitable for encoding using an ECC algorithm. After being ECC encoded, the data may be further modulation encoded. Modulation encoding may include transforming each symbol to a value that constrains run lengths of a binary value (e.g., zero). A decoding method and system checks a received data block for erroneous symbols, maps each received, encoded symbol to an associated ECC-encoded transform pair. The ECC encoded data may be decoded and corrected using the ECC and the locations of identified erroneous symbols. Finally, the corrected data sequence is converted from the second base back to the first base, from which the original data is retrieved.
Conference Paper
We will study simple and systematic constructions of high-rate binary maximum runlength constrained codes, which are based on base conversion, where specific subsequences are disallowed. We will compare the error propagation performance of base-change codes with that of prior art codes.
The sequence replacement technique converts an input sequence into a constrained sequence in which a prescribed subsequence is forbidden to occur. Several coding algorithms are presented that use this technique for the construction of maximum run-length limited sequences. The proposed algorithms show how all forbidden subsequences can be successively or iteratively removed to obtain a constrained sequence and how special subsequences can be inserted at predefined positions in the constrained sequence to represent the indices of the positions where the forbidden subsequences were removed. Several modifications are presented to reduce the impact of transmission errors on the decoding operation, and schemes to provide error control are discussed as well. The proposed algorithms can be implemented efficiently, and the rates of the constructed codes are close to their theoretical maximum. As such, the proposed algorithms are of interest for storage systems and data networks.
A new coding technique is proposed that translates binary user information into a constrained sequence having the virtue that at most k `zeros' between logical `ones' will occur. The new construction offers a high rate while both the complexity for encoding and decoding are still very low. Single channel bit errors will result in at most one decoded byte error. A worked example is described with rate 16/17, k=6 code
In this paper, we propose a simple method to concatenate a structured low-density parity-check (LDPC) code and a high rate constrained code such that three goals are achieved simultaneously: 1) soft information is available to the LDPC decoder; 2) the structure of the LDPC code is retained after concatenation to facilitate hardware implementation; and 3) the system has the ability to correct long erasure bursts. We consider both a runlength-limited code and a dc-free runlength-limited code. For the RLL case, we use a technique we call parity insertion. For the dc-free case, we apply polarity flipping to a subset of the LDPC code parity bits
We introduce a new method for analyzing and constructing combined modulation and error-correcting codes (ECCs), in particular codes that utilize some form of reverse concatenation and whose ECC decoding scheme requires easy access to soft information. We expand the work of Immink and Wijngaarden and also of Campello, Marcus, New, and Wilson, in which certain bit positions in the modulation code are deliberately left unconstrained for the ECC parity bits, in the sense that such positions can take on either bit value without violating the constraint. Our method of analysis involves creating a single graph that incorporates information on these unconstrained positions directly into the constraint graph without any assumptions of periodicity or sets of unconstrained positions, and is thus completely general. We establish several properties of the tradeoff function that relates the density of unconstrained positions to the maximum code rate. In particular, the tradeoff function is shown to be concave and continuous. Algorithms for computing lower and upper bounds for this function are presented. We also show how to compute the maximum possible density of unconstrained positions and give explicit values for the runlength-limited (RLL(d,k)) and maximum-transition-run (MTR(j,k)) constraints.
A new family of codes is described for representing serial binary data, subject to constraints on the maximum separation between successive changes in value (0 rightarrow 1, 1 rightarrow , or both), or between successive like digits ( 0 's, 1 's, or both). These codes have application to the recording or transmission of digital data without an accompanying clock. In such cases, the clock must be regenerated during reading (receiving, decoding), and its accuracy controlled directly from the data itself. The codes developed for this type of synchronization are shown to be optimal, and to require a very small amount of redundancy. Their encoders and decoders are not unreasonably complex, and they can be easily extended to include simple error detection or correction for almost the same additional cost as is required for arbitrary data.