Content uploaded by Kees Schouhamer Immink

Author content

All content in this area was uploaded by Kees Schouhamer Immink on Aug 09, 2020

Content may be subject to copyright.

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

code.

I. INTRODUCTION

WE will present coding techniques for the character-con-

strained channel, where ,, speciﬁc-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: immink@turing-machines.com).

Communicated by A. Ashikhmin, Associate Editor for Coding Techniques.

Color versions of one or more of the ﬁgures in this paper are available online

at http://ieeexplore.ieee.org.

Digital Object Identiﬁer 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-

spectively.

Low-rate -constrained or MTR codes of rate less than 16/17

are straightforwardly constructed in practice using a lookup

table. The ﬁrst difﬁculty 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 difﬁculty 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 theﬁrsttopresentasimpleal-

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 conﬁnedtothe“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 predeﬁned

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 6573

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

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

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

III. NIBBLE REPLACEMENT TECHNIQUE

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 predeﬁned 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ﬁrst 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 deﬁned 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

modiﬁed 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 modiﬁed).

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

6574 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 58, NO. 10, OCTOBER 2012

so that the maximum number of nibbles that can be accom-

modatedinacodewordis

(2)

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

scheme.

The next algorithm provides a formal description of the

nibble replacement routine.

Replacement algorithm/encoding routine

Input: The integers , , ,andthebinary -bit

data word .

Deﬁne 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 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 unmodiﬁed 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 modiﬁed nibbles contain either position pointer

information or the data of the pivot nibble. The modiﬁed 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 .Weﬁnd 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 predeﬁned 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

data.

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 signiﬁcant bit (msb) of a replaced nibble equals “1.” By

invoking a straightforward reshufﬂing 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. Simpliﬁed Alternative Construction

The simpliﬁed 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

IMMINK: HIGH-RATE MAXIMUM RUNLENGTH CONSTRAINED CODING SCHEMES USING NIBBLE REPLACEMENT 6575

TAB L E I

ENCODING TABLE FOR A RAT E 8/9 CODE,AND

the binary user data, which are partitioned into nibbles, ,

.

Encoding routine

Input: The integer , and the binary -bit data

word .Deﬁne the -bit nibbles

and ,

.

Output:Listof encoded nibbles ,where ,

.

Deﬁne 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 speciﬁc

application.

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

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 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 .Wesimplyﬁnd 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 satisﬁed.

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 deﬁned by the formal power series

where is a dummy variable and integer-type coefﬁcients.

The operator denotes the extraction of the coefﬁcient

of in power series , that is, deﬁne

The number of sequences of length ,, can be found

as the coefﬁcient of the series expansion of

(see [3, page 108])

(4)

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

(5)

6576 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 58, NO. 10, OCTOBER 2012

Over a wide range of parameters and ,even, we can ap-

proximate by

(6)

which is, as we may notice, independent of . The code redun-

dancy can be approximated by

(7)

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

section.

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 .Wealsoﬁnd , , ,

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

TAB L E I I

SELECTED VALUES OF AND ,AND MINIMUM VALUE OF FOR BASE-8

AND -10 USER SYSTEMS

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 beneﬁts come at a price of higher redundancy

[12].

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

(8)

where the interleaved sequence is -constrained. An ad-

vantage of the interleaving scheme is that error propagation is

conﬁned 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

channel.

D. Worked Example of a Long Code

In this section, we will present some worked examples that

will show the efﬁcacy 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

[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 se-

quence, which relaxes the constraint to .Insum-

mary, in the prior art scheme, are

IMMINK: HIGH-RATE MAXIMUM RUNLENGTH CONSTRAINED CODING SCHEMES USING NIBBLE REPLACEMENT 6577

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 ,sothatweﬁnd , ,

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 sufﬁcient 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. E FFECTS 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 speciﬁed 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)

(9)

where and . Note that

, which can be approximated by as

and . So we conclude that 61% of the transmitted

codewords will not be modiﬁed. Assume that nibbles are re-

placed during encoding; then a single decoding error will result,

unless the pivot bit or the modiﬁed 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.,

(10)

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.

6578 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 58, NO. 10, OCTOBER 2012

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 coefﬁcients do not

equal the usual powers of 2. Let the weight coefﬁcients be

denoted by ,. The encoder translates the binary

-bit input word into an -bit codeword

,insuchawaythat

IMMINK: HIGH-RATE MAXIMUM RUNLENGTH CONSTRAINED CODING SCHEMES USING NIBBLE REPLACEMENT 6579

Fig. 4. Histogram (log scales) of error propagation of base-conversion coding for , and 10, , , .

The weight coefﬁcients are equal to the number of -con-

strained sequences of length , and each coefﬁcient 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

speciﬁc values of the maximum runlength , etc., do not play a

signiﬁcant role in the error propagation.

VI. CONCLUSION

We have presented a new scheme, called the nibble replace-

ment technique, for generating sequences of -bit nibbles,

where ,predeﬁned 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.

REFERENCES

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

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