[0001] The present invention relates to conversion of an m-bit information word into a modulation
signal and restoration of the modulation signal, and more particularly, to a modulation
and demodulation method by which the direct current (DC) component of a codeword stream
is effectively suppressed in a run length limited (RLL) code to be used in an optical
recording/reproduction apparatus which requires high-density recording/reproduction.
[0002] The quality of an RLL code, which is expressed as (d,k,m,n), is estimated from the
recording density and the amount of suppression of its DC component, which are factors
for expressing the performance of the code. Here,
m denotes the number of data bits (which can also be referred to as the number of source
bits or the number of information word bits),
n denotes the number of bits of a modulated codeword (which can be referred to as the
number of bits of a channel),
d denotes the minimum number of 0s capable of consecutively existing between 1 and
1 within a codeword, and
k denotes the maximum number of 0s capable of consecutively existing between 1 and
1 within a codeword. The interval between bits within a codeword is designated by
T.
[0003] In a modulation method, the recording density can be enhanced by reducing the number
(
n) of bits of a codeword while fixing
d and
m. However, an RLL code must satisfy the minimum number (
d) and maximum number (
k) of 0s capable of consecutively existing between 1 and 1 within a codeword. When
the number of data bits is
m while satisfying this (
d,k) condition, it is preferable that the number of codewords which satisfy an RLL(
d,k) condition is 2
m or greater. However, a portion where two codewords are connected must also satisfy
the RLL(
d,k) condition in order to actually use the RLL code. When the DC component of a code
affects the performance of a system, as in optical disc recording/reproduction apparatuses,
a code intended to be used must have a DC suppression capability.
[0004] The most important reason why a RLL-modulated code stream must suppress DC is to
minimize the influence that a reproduction signal has on a servo bandwidth. Hereinafter,
a DC suppressing method is referred to as a digital sum value (DSV) adjustment method.
[0005] Two DSV adjustment methods which are commonly used are a method by which a code itself
has a DSV control code and a method of inserting a merge bit whenever a DSV is adjusted.
An eight to fourteen modulation plus (EFM+) code performs DSV control using a separate
code table, and an EFM code or (1,7) code performs DSV control by inserting a merge
bit.
[0006] A conventional modulation code group, in which a code has a DSV control code capable
of DC suppression control while satisfying the above-described condition, includes
a predetermined number of main conversion code groups and DC suppression control code
groups for performing DC suppression control by pairing with the main conversion code
groups. In this case, the codewords within the main conversion code groups are distinguished
from each other by several characteristics, that is, the facts that main conversion
code groups A and B do not share any codewords which are the same, and that if a redundant
code is used, there are code groups such as conversion code groups C and D for demodulating
the redundant code. Here, the conversion code groups C and D for demodulating a redundant
code do not share any codewords which are the same, but the codewords within the main
conversion code group A or B can exist in the conversion code group C or D for demodulating
a redundant code. The number of codewords in each of the main conversion code groups
A and B and the redundant code demodulation conversion code groups C and D is 2
m if the number of bits of a non-converted source word is m.
[0007] If code groups E through H are DC suppression control code groups capable of controlling
DC together with code groups A through D, the codewords within the code groups E through
H have the same condition as that of the codewords within the code groups A through
D which respectively form pairs with the code groups E through H. That is, in terms
of a redundant codeword generation condition or a condition for the number of lead
zeros, LZ, of a codeword, the same codeword generation method is applied to the DC
suppression control code groups E through H and the code groups A through D that can
control DC with the aid of the code groups E through H.
[0008] For example, Figure 2 shows the characteristics of an EFM+ code having a run length
condition of RLL(2,10) and a codeword length (n) of 16 bits, which is used in current
DVDs. There are main conversion code groups MCG1 and MCG2 (groups A and B in Figure
1, respectively), redundant code demodulation conversion code groups DCG1 and DCG2
(groups C and D, respectively, in Figure 1), and four DSV code groups (groups E through
H in Figure 1) capable of controlling DC suppression by forming pairs with the conversion
code groups. The four conversion code groups and the four DSV code groups for DC control
have no identical codewords.
[0009] Also, all of the code groups have the same condition for generating a redundant codeword,
and the codewords in code group pairs capable of DC control (that is, a pair of MCG1
and a first DSV code group, a pair of MCG2 and a second DSV code group, a pair of
DCG1 and a third DSV code group, and a pair of DCG2 and a fourth DSV code group) have
the same characteristics.
[0010] That is, codewords in each of which the number of 0s continuing from the least significant
bit (LSB) of a codeword (which is referred to as the number of end zeros) is 2 to
5 are duplicated. This rule is equally applied to all of the code groups. In each
of the codewords within the first DSV code group for controlling DC suppression with
the aid of the main conversion code group MCG1, the number of 0s continuing from the
most significant bit (MSB) (which is referred to as the number of lead zeros) is 2
to 9. In each of the codewords within the second DSV code group for controlling DC
suppression with the aid of the main conversion code group MCG2, the number of lead
zeros is 0 to 1. In the codewords within the third DSV code group for controlling
DC suppression with the aid of the redundant code demodulation conversion code group
DCG1, some bits (here, b15 (MSB) and b3) are "0b". In the codewords within the fourth
DSV code group for controlling DC suppression with the aid of the redundant code demodulation
conversion code group DCG2, some bits (here, b15 (MSB) or b3) are "1b".
[0011] In a conventional modulation method using the modulation code group shown in Figures
1 and 2, when the number of codewords to be used to control DC suppression is insufficient,
DC suppression control cannot be sufficiently accomplished due to a small number of
codewords included within the code groups for controlling DC suppression.
[0012] With a view to solve or reduce the above problem, an aim of embodiments of the present
invention is to provide a run length limited (RLL) code modulating method which is
suitable for high-density disc systems, by which the direct current (DC) component
of a codeword stream is effectively suppressed.
[0013] Another aim is to provide a modulation method by which the DC component of a codeword
stream is effectively suppressed using DC suppression control code groups having codewords
having the same properties as the codewords in data modulation code groups which make
the most of the sign of parameter CSV representing the DC value of a codeword and
of the characteristics of parameter INV predicting the DSV transit direction of the
next codeword.
[0014] Still another aim is to provide a modulation method by which the probability of controlling
DC suppression is increased by relaxing the redundant codeword generation condition
and the condition of usable codewords with respect to the codewords in a DC suppression
control code group which makes a pair with a data modulation code group.
[0015] Yet another aim is to provide a method of demodulating an RLL code, by which the
DC component of a codeword stream is effectively suppressed.
[0016] According to a first aspect, the present invention provides a method of modulating
input data into a run length limited (RLL) code which is expressed as (
d,k,m,n), where
d denotes a minimum run length,
k denotes the maximum run length,
m denotes the bit length of data, and
n denotes the bit length of a codeword. In this method, m-bit input data is modulated
into a codeword, which is favorable for DC suppression, from a predetermined number
of first code groups for data modulation and a predetermined number of second code
groups for DC suppression control, the first and second code groups having redundant
codewords and being produced so that the codewords within the first code group have
a first parameter CSV (codeword sum value) which represents the direct current (DC)
value of a codeword, the sign of which is opposite to that of corresponding codewords
within the second code group, and a second parameter INV which predicts the digital
sum value (DSV) transition direction of the next codeword, the characteristic of which
is opposite to that of corresponding codewords within the second code group, wherein
the first and second code groups have different redundant codeword generation conditions.
[0017] Preferably, the number of codewords in the second code group is increased by relaxing
the redundant codeword generation condition for the second code group compared to
the first code group, so that the probability of suppressing the DC component of a
code stream during modulation is improved.
[0018] Preferably, codewords having an end zero number of 1 to 3 within the first code group
have duplicates, and codewords having an end zero number of 0 to 7 within the second
code group have duplicates.
[0019] Preferably, the first code group is made up of main code groups MCG1 and MCG2 and
redundant code demodulation conversion code groups DCG1 and DCG2, and the second code
group is made up of first, second and third DSV code groups.
[0020] Preferably, MCG1 includes codewords each having lead zeros, the number of which,
LZ, is smaller than or equal to a MCG classification parameter
x, the MCG2 includes codewords each of which LZ is greater than or equal to the MCG
classification parameter
x, MCG1 and MCG2 have no identical codewords, DCG1 and DCG2 include codewords each of
which LZ is equal to or smaller than the difference between the maximum run length
k and the codeword duplication parameter
y, the codewords are disposed in DCG1 or DCG2 depending on the values of specific bits
of the codewords, the first DSV code group is made up of codewords having a first
parameter whose sign is opposite to that of corresponding codewords in MCG2 and a
second parameter whose characteristic is opposite to that of corresponding codewords
in MCG2, the second DSV code group is made up of codewords having a first parameter
whose sign is opposite to that of corresponding codewords in DCG1 and a second parameter
whose characteristic is opposite to that of corresponding codewords in DCG1, and the
third DSV code group is made up of codewords having a first parameter whose sign is
opposite to that of corresponding codewords in DCG2 and a second parameter whose characteristic
is opposite to that of corresponding codewords in DCG2.
[0021] Preferably,
d is 1,
k is 8,
m is 8,
n is 12, parameter
x for classifying MCG1 and MCG2 is 1, and code duplication parameter
y is 3.
[0022] Preferably, the DC suppression control is achieved by selecting a codeword which
is favorable for DC suppression from a code group pair capable of DC control, that
is, main code groups MCG1 and MCG2, MCG2 and the first DSV code group for DC suppression
control, the redundant code demodulation conversion code group DCG1 and the second
DSV code group for DC suppression control, or the redundant code demodulation conversion
code group DCG2 and the third DSV code group for DC suppression control.
[0023] Preferably, each codeword in each of the code groups has a third parameter (NCG)
designating a code group having a codeword coming next to the above codeword, and
the third parameter set for the first code group is different from that set for the
second code group.
[0024] Preferably, n the DC suppression control code group capable of controlling DC suppression
together with the redundant code demodulation conversion code group is made up of
codewords which violate the LZ condition among all of the codewords in the redundant
code demodulation conversion code group.
[0025] Preferably, the lead zero number of all of the codewords within the redundant code
demodulation conversion code group is less than or equal to 5, and the lead zero number
of each of the codewords within the DC suppression control code group capable of controlling
DC suppression together with the redundant code demodulation conversion code group
is less than or equal to the maximum run length
k.
[0026] According to a second aspect of the invention, there is provided a method of modulating
input data into a run length limited (RLL) code which is expressed as (
d,k,m,n), where
d denotes a minimum run length,
k denotes the maximum run length,
m denotes the bit length of data, and
n denotes the bit length of a codeword, the method comprising: (a) receiving m-bit
input data; (b) searching for a codeword for the received data in a data modulation
code group designated as a code group having a codeword to come next to a previously
modulated codeword, and determining whether the run length condition between the found
codeword and the previous codeword/next codeword is violated; and (c) modulating the
received data into the found codeword and determining a code group having a codeword
to come next to the modulated codeword, if the run length condition is violated, and
otherwise, modulating the received data into a codeword searched in a code group,
which is favorable for DC suppression, among a data modulation code group designated
as a code group having a codeword to come next to the previous codeword and a corresponding
DC suppression control code group, and determining a code group having a codeword
to come next to the modulated codeword.
[0027] Preferably, codewords having an end zero number of 1 to 3 within the data modulation
code group have duplicates, and codewords having an end zero number of 0 to 7 within
the DC suppression control code group have duplicates.
[0028] Preferably, a third parameter NCG (next code group) designating a code group having
a codeword coming next to a codeword is set on each of the codewords within each of
the code groups, and the third parameter for the data modulation code group is different
from that for the DC suppression control code group.
[0029] Preferably, the minimum run length is 1, and the maximum run length is 8.
[0030] Preferably, the data modulation code group is made up of main code groups MCG1 and
MCG2 and redundant code demodulation conversion code groups DCG1 and DCG2, and the
DC suppression control code group is made up of first, second and third DSV code groups.
[0031] Preferably, the MCG1 includes codewords each of which LZ is smaller than or equal
to a MCG classification parameter
x, the MCG2 includes codewords each of which LZ is greater than or equal to the MCG
classification parameter
x, the codewords within the MCG1 have a first parameter CSV (codeword sum value) which
represents the direct current (DC) value of a codeword, the sign of which is opposite
to that of corresponding codewords within the MCG2, and a second parameter INV which
predicts the digital sum value (DSV) transition direction of the next codeword, the
characteristic of which is opposite to that of corresponding codewords within MCG2,
so that MCG1 and MCG2 have no identical codewords, DCG1 and DCG2 include codewords
each of which LZ is equal to or smaller than the difference between the maximum run
length
k and the codeword duplication parameter
y while the sign of the first parameter and the characteristic of the second parameter
for the DCG1 are opposite to those for the DCG2, the codewords are disposed in DCG1
or DCG2 depending on the values of specific bits of the codewords, the first DSV code
group is made up of codewords having a first parameter whose sign is opposite to that
of corresponding codewords in MCG2 and a second parameter whose characteristic is
opposite to that of corresponding codewords in MCG2, the second DSV code group is
made up of codewords having a first parameter whose sign is opposite to that of corresponding
codewords in DCG1 and a second parameter whose characteristic is opposite to that
of corresponding codewords in DCG1, and the third DSV code group is made up of codewords
having a first parameter whose sign is opposite to that of corresponding codewords
in DCG2 and a second parameter whose characteristic is opposite to that of corresponding
codewords in DCG2.
[0032] Preferably, in step (c), if the run length condition is satisfied, the received data
is modulated into a codeword selected from a code group, which is favorable for DC
suppression, among a code group pair capable of DC control, that is, main code groups
MCG1 and MCG2, the main code group MCG2 and the first DSV code group for DC suppression
control, the redundant code demodulation conversion code group DCG1 and the second
DSV code group for DC suppression control, or the redundant code demodulation conversion
code group DCG2 and the third DSV code group for DC suppression control.
[0033] Preferably, the DC suppression control code group capable of controlling DC suppression
together with the redundant code demodulation conversion code group is made up of
codewords which violate the LZ condition among all of the codewords in the redundant
code demodulation conversion code group.
[0034] Preferably, the number of lead zeros of all of the codewords within the redundant
code demodulation conversion code group is less than or equal to 5, and the number
of lead zeros of each of the codewords within the DC suppression control code group
capable of controlling DC suppression together with the redundant code demodulation
conversion code group is less than or equal to the maximum run length
k.
[0035] Preferably, in step (c), if it is determined in step (b) that the run length condition
between a codeword to be currently modulated and the previous codeword/next codeword
is satisfied and also that the previous codeword has been modulated in one among the
conversion code groups MCG1, MCG2, DCG1 and DCG2, a code group designated by the current
modulated codeword as a code group having a codeword to come next to the current codeword
is determined depending on the number of end zeros, EZ, of the previous codeword modulated
in one among the conversion code groups, wherein, if EZ is smaller than the minimum
run length
d, the main code group MCG1 is determined, if EZ is equal to or greater than
d and smaller than or equal to a codeword duplication parameter
y, the redundant code demodulation conversion code group DCG1 or DCG2 is determined
depending on the values of specific bits of the current codeword, and if EZ is greater
than
y, the MCG1 is determined.
[0036] Preferably, although the previous codeword has been modulated in the main code group
MCG1, when the previous codeword is 1000xxxxxx10 or 1001xxxxxx10, the main code group
MCG1 is determined as a code group designated by the current codeword, from which
a codeword to come next to the current codeword is to be selected.
[0037] Preferably, in step (c), if it is determined in step (b) that the run length condition
between a codeword to be currently modulated and the previous codeword/next codeword
is satisfied and also the previous codeword has been modulated in one among the DSV
code groups, a code group designated by the current modulated codeword as a code group
having a codeword to come next to the current codeword is determined depending on
the EZ of the previous codeword modulated in one among the DSV code groups, wherein,
if EZ is equal to or greater than 0 and smaller than the maximum run length
k, the redundant code demodulation conversion code group DCG1 or DCG2 is determined
depending on the values of specific bits of the current modulated codeword, and if
EZ is the maximum run length
k, the main code group MCG1 is determined.
[0038] According to a third aspect of the invention, there is provided a method of demodulating
a codeword stream received by an optical recording/reproduction apparatus using a
run length limited (RLL) code in which input data has been modulated into a codeword
in a code group, which is favorable for DC suppression, from a predetermined number
of first code groups for data modulation and a predetermined number of second code
groups for DC suppression control, the first and second code groups having duplicate
codewords and being produced so that the codewords within the first code group have
a first parameter CSV (codeword sum value) which represents the direct current (DC)
value of a codeword, the sign of which is opposite to that of corresponding codewords
within the second code group, and a second parameter INV which predicts the digital
sum value (DSV) transition direction of the next codeword, the characteristic of which
is opposite to that of corresponding codewords within the second code group, and the
first and second code groups have different duplicate codeword generation conditions,
the method comprising: (a) receiving a codeword stream, and updating a third parameter
NCG (next code group) designating a code group having a current codeword to be currently
demodulated, depending on the characteristics of the previous codeword; (b) determining
whether there are two identical current codewords in a code group designated by the
third updated parameter NCG; and (c) demodulating the current codeword into the original
data for a codeword in a code group designated by the third updated parameter NCG,
if the current codeword does not have a duplicate, and demodulating the current codeword
into the original data for one of the two identical codewords selected depending on
the LZ of the next codeword, if the current codeword has a duplicate.
[0039] Preferably, the codeword stream is made up of codewords selected from a code group,
which is favorable for DC suppression, of a code group pair capable of DC control,
that is, main code groups MCG1 and MCG2, the main code group MCG2 and the first DSV
code group for DC suppression control, the redundant code demodulation conversion
code group DCG1 and the second DSV code group for DC suppression control, or the redundant
code demodulation conversion code group DCG2 and the third DSV code group for DC suppression
control.
[0040] Preferably, the step (a) comprises: (a1) determining whether the previous codeword
is included in the data modulation code group; (a2) checking the EZ of the previous
codeword if it is determined in step (a1) that the previous codeword is included in
the data modulation code group; (a3) updating the third parameter NCG to a first value
that represents the main code group MCG2 or the first DSV code group, if the EZ of
the previous codeword is smaller than the minimum run length
d; (a4) determining whether a code group designated by the third parameter NCG of the
previous codeword has two identical previous codewords, if the EZ of the previous
codeword is equal to or greater than the minimum run length
d and smaller than or equal to the codeword duplication parameter
y;(a5) updating the third parameter NCG to a second value that represents the DCG1
or the second DSV code group or a third value that represents the DCG2 or the third
DSV code group, depending on the values of specific bits of a current codeword, if
it is determined in step (a4) that there are two identical previous codewords; (a6)
updating the third parameter NCG to a fourth value that represents the MCG1 or MCG2,
if the EZ of the previous codeword is greater than the codeword duplication parameter
y or if it is determined in step (a4) that the previous codeword does not have a duplicate;
and (a7) determining whether the EZ of the previous codeword is
k, if it is determined in step (a1) that the previous codeword is not included in the
data modulation code group, and, if EZ is
k, returning to the step (a6), and otherwise, returning to the step (a4).
[0041] Preferably, in the step (a5), when
d is 1,
k is 8,
m is 8,
n is 12, parameter
x for classifying MCG1 and MCG2 is 1, codeword duplication parameter
y is 3, and the specific bits are the 4 upper bits of the current codeword, if the
MSB of the current codeword is "1" or the 4 upper bits thereof are all "0", the third
parameter NCG is updated to the second value, and, otherwise, the third parameter
(NCG) is updated to the third value.
[0042] For a better understanding of the invention, and to show how embodiments of the same
may be carried into effect, reference will now be made, by way of example, to the
accompanying diagrammatic drawings in which:
Figure 1 shows an example of the configuration of a conventional modulation code group;
Figure 2 is a table illustrating the properties of a conventional code group and the
codewords included in the code group;
Figures 3A and 3B are flowcharts illustrating a method of producing a run length limited
(RLL) code group, which is applied to the present invention;
Figures 4A through 4E are tables tabulating main conversion code groups MCG1 and MCG2
and redundant code demodulation conversion code groups DCG1 and DCG2 which are produced
by the method shown in Figures 3A and 3B;
Figure 5 is a table showing a first digital sum value (DSV) code group for controlling
direct current (DC) suppression by forming a pair with a main conversion code group
MCG2;
Figure 6 is a table showing a second DSV code group for controlling DC suppression
by forming a pair with a redundant code demodulation conversion code group DCG1;
Figure 7 is a table showing a third DSV code group for controlling DC suppression
by forming a pair with a redundant code demodulation conversion code group DCG2;
Figure 8 is a table showing the properties of code groups used in the present invention
and the codewords included in the code groups produced by the method shown in Figures
3A and 3B;
Figure 9 is a graph showing the effect of DC suppression improvement when the codewords
in code groups proposed by the present invention are used;
Figures 10A and 10B are flowcharts illustrating a modulation method according to an
embodiment of the present invention;
Figure 11 is a table showing a definition of ncgdet (mc[n-1]) shown in Figure 10B;
Figure 12 is a table showing a definition of ncgdet* (mc[n-1]) shown in Figure 10B;
Figure 13 is a table showing a definition of ncgdet** (mc[n-1]) shown in Figure 10B;
and
Figures 14A and 14B are flowcharts illustrating a demodulation method according to
an embodiment of the present invention.
[0043] A method of producing run length limited (RLL) code groups, which is applied to the
present invention, is shown in Figures 3A and 3B. First, a desired minimum run length
d, a maximum run length
k, a data bit length
m, a codeword bit length
n, a main conversion code group distinction parameter
x, a codeword duplication parameter
y, and particular bits bit(i), bit(j) and bit(k) are input, in step S101. Here, the
desired minimum run length
d is 1, the maximum run length
k is 8, the data bit length
m is 8, the codeword bit length
n is 12, the main conversion code group distinction parameter
x is 1, and the codeword duplication parameter
y is 3.
[0044] 2
n codewords (here, 2
12) of 0 to 2
n-1 satisfying the conditions input in step S101 are produced in step S102. It is determined
whether the produced codewords meet the run length conditions (
d,k) in step S103. In step S104, codewords which do not meet the run length conditions
(
d,k) among the produced codewords are discarded, since only the codewords satisfying
the run length conditions (
d,k) can be used. In step S105, parameters indicating the characteristics of codewords,
such as the number of lead zeros, LZ, and the number of end zeros, EZ, within each
codeword and a codeword sum value (CSV), are extracted from the codewords that satisfy
the run length conditions (
d,k).
[0045] In order to help one understand the present invention, parameters required to extract
the characteristics of codewords will now be defined.

[0046] Here, LZ(p) and LZ(c) denote the number of lead zeros of a previous codeword and
the number of lead zeros of a current codeword, respectively. EZ(p) and EZ(c) denote
the number of end zeros of a previous codeword and the number of end zeros of a current
codeword, respectively. DSV denotes a digital sum value in a codeword stream. That
is, in a codeword stream, 0 is calculated as "-1" and 1 is calculated as "+1". CSV
denotes a digital sum value in a codeword. That is, a codeword is inverted every time
"1" appears, and then 0 in the inverted codeword pattern is calculated as "-1" and
1 is calculated as "+1". INV is a parameter indicating the transition of the next
codeword. When an even number of 1s are included within a codeword, the value of parameter
INV is 0. When an odd number of is are included within a codeword, the value of parameter
INV is 1. Parameter
x is used to classify main conversion code groups and is referred to as a main conversion
code group classification parameter. Parameter
y is used to duplicate a codeword and is referred to as a codeword duplication parameter.
Bit(i), bit(j) and bit(k) denote i-th, j-th and k-th bits within a codeword, respectively.
When the accumulated INV for a codeword stream is 0, the DSV is updated by adding
the value CSV of the next codeword to the accumulated DSV of a codeword stream preceding
the next codeword. When the accumulated INV for a codeword stream is 1, the DSV is
updated by inverting the sign of the CSV of the next codeword and adding the sign-inverted
CSV of the codeword to the accumulated DSV of a codeword stream preceding the next
codeword.
[0047] The following parameters INV, CSV and DSV are given for the following stream.

[0048] In step S106, some codes are duplicated to increase the number of usable codes, and
the parameter EZ of a codeword is checked in order to determine how to satisfy the
run length condition (d,k) of a portion where codewords are connected. The following
operations are performed depending on the EZ value.
[0049] In step S107, if 0 ≤ EZ < d, parameter NCG (next code group) designates a second
main code group MCG2 so that the next codeword comes from the MCG2.
[0050] In step S108, if d ≤ EZ ≤ y, a determination is made as to whether a codeword is
redundant. If it is determined in step S108 that the codeword is redundant and that
it is the original codeword of the two identical codewords, the parameter NCG designates
a first decision code group (DCG1) so that the next codeword comes from the DCG1,
in step S109. In this case, if the redundant codeword is a duplicated codeword, the
parameter NCG designates a second decision code group (DCG2) so that the next codeword
comes from the DCG2, in step S109.
[0051] If it is determined in step S106 that y < EZ ≤ k, or if it is determined in step
S108 that the codeword is not redundant while d < EZ ≤ y, the parameter NCG designates
a first main code group (MCG1) so that the next codeword comes from the MCG1, in step
S110.
[0052] In this way, the NCG of codewords satisfying the condition (d,k) is determined, a
code group of a codeword to be attached next to the codeword is determined depending
on the NCG, and a portion where the codewords are connected satisfies the (d,k) conditions.
Here, the reason for duplicating the codewords satisfying d ≤ EZ ≤ y is to suppress
the DC component of codewords having EZ of 0 to d-1 by DSV controlling a codeword
stream using the DSV code groups.
[0053] Accordingly, the parameter NCG, which designates a code group of a codeword to come
next to a codeword in each code group, designates the MCG2 when the number of end
zeros, EZ, of the codeword is equal to or smaller than
d-1, designates the DCG1 or DCG2 when the EZ of the codeword is equal to or greater
than
d and equal to or smaller than
y and the codeword is redundant, and designates the MCG1 when the EZ of the codeword
is greater than
y and equal to or smaller than
k or when the EZ of a codeword is equal to or greater than
d and equal to or smaller than
y and the codeword is not redundant. Therefore, the NCG can contribute to improve the
DC suppression capability by broadening the width for selection of codes.
[0054] A method of grouping codewords and the characteristics of each of the code groups
will now be described. The number of lead zeros, LZ, of a codeword is used to group
codewords so the LZ of a codeword is detected, in step S111.
[0055] Referring to Figure 3B, when the LZ of a codeword is equal to or smaller than
x, the codeword is stored in the MCG1 in step S112. In step S113, a codeword having
LZ greater than
x is stored in the MCG2 so that the characteristics of the parameter INV and the sign
of the parameter CSV of the codeword are as close as possible to being opposite to
those of a corresponding codeword in the MCG1 having the same decoding value as the
codeword to be stored in the MCG2. If there are no codewords which completely satisfy
the condition that the characteristics of INV and the sign of CSV are opposite to
those of corresponding codewords stored in the MCG1, a codeword having a parameter
CSV whose sign is opposite to a corresponding codeword in the MCG1 is preferentially
selected, and a codeword having parameter INV whose characteristics is opposite to
a corresponding codeword in the MCG1 is secondarily selected. The reason why codeword
bits are arranged in this way is that, when the NCG of a codeword is the MCG1 or MCG2,
if codewords having the same decoding value in the above two code groups simultaneously
satisfy the condition (
d,k), a codeword with which the DC of a codeword stream is favorably suppressed can be
selected from the two codewords because they have a parameter INV of opposite characteristics
and a parameter CSV of opposite signs.
[0056] When LZ ≤ k-y, bit (i), bit (j) and bit (k) are detected, in step S114. If any one
bit among the three bits is "1", a corresponding codeword is stored in the DCG1 in
step S115. If all of the tree bits are identified as "0" in the step S114, a corresponding
codeword is stored in the DCG2, in step S116. Codewords are arranged in DCG1 or DCG2
so that the codewords that also exist in MCG1 or MCG2 are as close as possible at
the same locations as those in MCG1 or MCG2 in order to minimize error propagation
when errors are generated during decoding. To describe steps S114 through S116 in
detail, if the most significant bit bit11 is "1" (that is, 10xxb: LZ=0) or the upper
four bits bit8 through bit11 are all "0" (that is, 0000b: LZ ≥ 4), a corresponding
codeword is stored in the DCG1. Otherwise, that is, if LZ = 1 like 010xb, if LZ =
2 like 0010b, or if LZ = 3 like 0001b, a corresponding codeword is stored in the DCG2.
[0057] The reason why codes having a value LZ that is equal to or smaller than k-y are stored
in DCG is that codewords having d≤ EZ≤y have been duplicated. When a redundant codeword
is decoded, the next codeword is referred to in order to properly decode corresponding
data. To be more specific, if the next codeword comes from the DCG1, a redundant code
to be decoded is demodulated into the decoding data for the original codeword of the
two same codewords. If the next codeword comes from the DCG2, a redundant code to
be decoded is demodulated into the decoding data for the duplicated codeword of the
two same codewords.
[0058] Here, the main conversion code groups MCG1 and MCG2 are defined as code groups having
codewords to follow a non-redundant codeword, and the redundant code demodulation
conversion code groups DCG1 and DCG2 are defined as code groups having codewords to
follow a redundant codeword. These conversion code groups can be referred to as data
modulation code groups, and first through third DSV code groups can be referred to
as DC suppression control code groups. Accordingly, even if these code groups are
differently indicated according to the purposes of use, it can be considered that
the meaning does not change if not departing from the above-described meaning.
[0059] In order that codes having d≤Ez≤y are connected to the codewords within the DCG1
and DCG2 while satisfying (d,k) conditions, the sum of the number of end zeros of
a previous codeword, EZ(p), and the number of lead zeros of a current codeword, LZ(c),
must satisfy d ≤ EZ(p)+LZ(c) ≤ k, where the LZ(c) of the DCG1 or DCG2 must satisfy
LZ ≤ k-y.
[0060] If two codewords "010101000010" exist within the MCG1, as shown in Figure 4C, that
is, if the decoding value for the original codeword "010101000010" of the two same
codewords is 129, and the NCG for the original codeword is DCG1, and the decoding
value for the duplicated codeword "010101000010" is 130, and the NCG for the duplicated
codeword is DCG2, the codewords "010101000010" are demodulated to 129 or 130 depending
on whether the next codewords come from the DCG1 or DCG2.
[0061] Figures 4A through 4E show the code conversion tables of the main conversion code
groups MCG1 and MCG2 and redundant code demodulation conversion code groups DCG1 and
DCG2 produced by the method illustrated in Figures 3A and 3B.
[0062] Production and arrangement of DSV code groups will now be described. In the present
invention, the DSV code groups are provided to suppress the DC component of a codeword
stream.
[0063] In step S117, codewords having an LZ of 1 to 8 are stored in the first DSV code group
so that the sign of CSV and the characteristics of INV of each of the codewords are
opposite to those of a corresponding codeword in MCG2. In step S118, codewords having
an LZ of 0, 6 or 7 are stored in the second DSV code group so that the sign of CSV
and the characteristics of INV of each of the codewords are opposite to those of corresponding
codewords in DCG1. Likewise, codewords having LZ of 1-3 are stored in the third DSV
code group so that the sign of CSV and the characteristics of INV of each of the codewords
are opposite to those of a corresponding codeword in DCG2, in step S119.
[0064] Hence, in a DSV code group selection method, when the EZ(p) of a codeword is 0 while
d≤EZ(p)+LZ(c)≤k, a current codeword can be selected from the first DSV code group
in which codewords having LZ(c) of 1 to 8 are included. When a previous code is the
original codeword among the two identical codewords while having an EZ(p) of 1 to
3, a current codeword is selected from the second DSV code group in which codewords
having LZ(c) of 0, 6 or 7 are included. Likewise, when a previous code is the duplicated
codeword among the two identical codewords while having an EZ(p) of 1 to 3, a current
codeword is selected from the third DSV code group in which codewords having an LZ(c)
of 1-3 are included.
[0065] Here, the code conversion table of the main conversion code group MCG2 and the first
DSV code group for controlling DC suppression is shown in Figure 5, the first DSV
code group is made up of 102 codewords having an LZ of 1 to 8, and codewords having
an EZ of 0 to 7 among the 102 codewords are duplicated. The code conversion table
of the redundant code demodulation conversion code group DCG1 and the second DSV code
group for controlling DC suppression is shown in Figure 6, the second DSV code group
is made up of 27 codewords having an LZ of 0, 6 or 7, and codewords having an EZ of
0 to 7 among the 27 codewords are all duplicated. The code conversion table of the
redundant code demodulation conversion code group DCG2 and the third DSV code group
for controlling DC suppression is shown in Figure 7, the third DSV code group is made
up of 4 codewords having an LZ of 1 to 3, and codewords having an EZ of 0 to 7 among
the 4 codewords are all duplicated.
[0066] Codewords produced in this way are stored in corresponding code groups, and a determination
is made in step 120 as to whether an input codeword is the last codeword. If it is
determined that the input codeword is the last codeword, this RLL code group producing
method is concluded. Otherwise, i (where i is 0, 1, ..., 2
n-1) is increased in step S121 of Figure 3A, and the process returns to the step S102
of producing codewords.
[0067] The characteristics of demodulation codewords which are produced by the code producing
method shown in Figures 3A and 3B and applied to the present invention are shown in
Figure 8. The two main conversion code groups MCG1 and MCG2 include no identical codewords,
and the two redundant code demodulation conversion code groups DCG1 and DCG2 include
no identical codewords.
[0068] Codewords are arranged within a pair of code groups capable of DC control (for example,
the MCG1 and the MCG2, the MCG2 and the first DSV code group, the DCG1 and the second
DSV code group, and the DCG2 and the third DSV code group) so that a codeword in one
code group has parameters INV and CSV opposite to those of a corresponding codeword
in the other code group. In order to increase the probability of controlling DC suppression,
the DSV code groups have a redundant codeword producing condition which is different
from that of the main conversion code groups MCG1 and MCG2 or the redundant code demodulation
conversion code groups DCG1 and DCG2. That is, the main conversion code groups or
redundant code demodulation conversion code groups have a redundant codeword producing
condition in which the number of end zeros is 1 to 3 (1000xxxxxx10 or 1001xxxxxx10
in MCG1 are exceptions). On the other hand, the DSV code groups has a redundant codeword
producing condition in which the number of end zeros is 0 to 7, in order to produce
as many redundant codewords as possible, resulting in an increase in the number of
codewords. In order to achieve DC suppression control together with the redundant
code demodulation conversion code groups DCG1 and DCG2, the DSV code groups remove
a conventional code production precondition in which the codewords within a pair of
code groups capable of DC control (for example, a pair of the DCG1 and second DSV
code group and a pair of the DCG2 and third DSV code group) must have the same characteristics
(for example, the same LZ condition).
[0069] In order to produce code groups capable of controlling DC suppression together with
the redundant code demodulation conversion code groups, codewords which violate the
LZ condition for all of the codewords within the redundant code demodulation conversion
code groups are classified into the second and third DSV code groups. Here, the LZ
condition of all of the codewords within the redundant code demodulation conversion
code groups is that the LZ of codewords must be 5 or less, and the LZ condition of
the codewords within the second and third DSV code groups must be no greater than
k, which corresponds to the maximum run length.
[0070] Accordingly, as shown in Figure 9, the DC component of a code stream can be more
effectively suppressed due to an increase in the probability of DC suppression control
in the case of modulation using the codewords in modulation code groups according
to the present invention than in the case of modulation using the codewords within
the conventional modulation groups shown in Figure 1 or 2.
[0071] A method of modulating and demodulating RLL codes will now be described with reference
to the code conversion tables of Figures 4 through 7 which are produced by the method
shown in Figures 3A and 3B.
[0072] Referring to Figures 10A and 10B, which is a flowchart illustrating a modulation
method according to an embodiment of the present invention, parameter NCG representing
the next code group is initialized to 1 and a variable
n is initialized to 0 in step S201. The variable
n increases by 1 in step S202. It is determined whether this is a time to insert a
synchronous code in step S203. If this is a time to insert a synchronous code, a routine
for inserting a synchronous pattern which is favorable for suppressing DC is executed
in step S204, and the step S202 for increasing the variable
n by 1 is again performed. A rule that the codeword next to the synchronous pattern
must come from a specific codeword group is needed. Therefore, in an embodiment of
the present invention, an NCG for designating the codeword next to the synchronous
pattern is 2, and the codeword for the next data is searched for in the MCG2.
[0073] If it is determined in step S203 that this is not a time to insert a synchronous
pattern, 1-byte data dt[n] is read and temporarily stored in a storage means such
as a register in step S205. Here, it is assumed that a time to modulate is n-1, a
time after modulation has already been completed is n-2, and a time to perform another
modulation is n.
[0074] When data of 2 bytes or more (n≥2) are read in step S206, NCG[n-2], which is the
NCG of the modulated codeword for previously-input data, is checked in step S207.
If it is determined in step S207 that NCG[n-2] is 1, the codeword for data to be currently
modulated is searched for in MCG2, the found codeword is represented as cod2(dt[n-1]),
and it is determined whether a portion where a previously modulated codeword mc[n-2]
is connected to a currently modulated codeword cod2(dt[n-1]) violates the run length
condition (d,k) in step S208, which is expressed as rll_check((mc[n-2],cod2(dt[n-1]))
= (d,k) ? in Figure 10A. In the condition (d,k) used in the present invention, d is
equal to 1, and k is equal to 8. In Figures 10A and 10B, cod1(dt[n-1]) denotes searching
for a modulation codeword for input data in MCG1, cod2(dt[n-1]) denotes searching
for a modulation codeword for input data in MCG2, cod3(dt[n-1]) denotes searching
for a modulation codeword for input data in DCG1, cod4(dt[n-1]) denotes searching
for a modulation codeword for input data in DCG2, cod5(dt[n-1]) denotes searching
for a modulation codeword for input data in the first DSV code group, cod6(dt[n-1])
denotes searching for a modulation codeword for input data in the second DSV code
group, and cod7 (dt [n-1]) denotes searching for a modulation codeword for input data
in the third DSV code group.
[0075] If it is determined in step S208 that the run length condition is violated, data
dt[n-1] to be currently modulated is modulated only into a codeword which is within
MCG1, and NCG[n-1] is obtained as defined in Figure 12 in step S209.
[0076] Figure 11 shows a table which defines NCG[n-1] representing a code group having a
codeword next to the currently modulated codeword mc[n-1] when the bit portion where
the previously modulated codeword mc[n-2] is connected to the currently codeword cod2(dt[n-1])
to be modulated does not violate the run length condition (d,k). In Figure 10A, the
NCG[n-1] of Figure 11 is defined as ncgdet(mc[n-1]).
[0077] The value of NCG[n-1] varies with the EZ of the previously modulated codeword in
one among the conversion code groups MCG1, MCG2, DCG1 and DCG2. That is, when EZ is
0, NCG[n-1] is 2 (which denotes the main code group MCG2). When EZ is 1 to 3, NCG[n-1]
is 3 (which denotes the redundant code demodulation decision code group DCG1) or 4
(which denotes the redundant code demodulation decision code group DCG2) depending
on the values of specific bits of a current codeword SR1. When EZ exceeds 3, NCG[n-1]
is 1 (which denotes the main code group MCG1).
[0078] Figure 12 shows an exception table which defines NCG[n-1] as representing a code
group having a codeword next to the currently modulated codeword mc[n-1]. As shown
in Figure 12, when a previous codeword exists in the MCG1, and the previous codeword
is 1000xxxxxx10 or 1001xxxxxx10, NCG[n-1] is not 3 or 4 but 1, even though EZ is 1.
In Figure 10A, the NCG[n-1] of Figure 12 is defined as ncgdet*(mc[n-1]).
[0079] The value of NCG[n-1] varies with the EZ of the previously modulated codeword in
one among the conversion code groups MCG1, MCG2, DCG1 and DCG2. That is, when EZ is
0, NCG[n-1] is 2 (which denotes the main code group MCG2). When EZ is 1 to 3, NCG[n-1]
is 3 (which denotes the redundant code demodulation decision code group DCG1) or 4
(which denotes the redundant code demodulation decision code group DCG2) depending
on the values of specific bits of a current codeword SR1. However, the NCG[n-1] of
a codeword 1000xxxxxx10 or 1001xxxxxx10 among the codewords within the MCG1 is 1.
When EZ exceeds 3, NCG[n-1] is 1 (which denotes the main code group MCG1).
[0080] Figure 13 shows a table which defines NCG[n-1] representing a code group having the
codeword next to the current modulated codeword mc[n-1] when the previous codeword
is modulated in one among the DSV code groups. In Figure 10A, the NCG[n-1] of Figure
13 is defined as ncgdet**(mc[n-1]).
[0081] The value of NCG[n-1] varies with the EZ of the previous codeword SR0 modulated in
a DSV code group. That is, when EZ is 0 to 7, NCG[n-1] is 3 (which denotes the redundant
code demodulation decision code group DCG1) or 4 (which denotes the redundant code
demodulation decision code group DCG2) depending on the values of specific bits of
a current codeword SR1. When EZ exceeds 8, NCG[n-1] is 1 (which denotes the main code
group MCG1).
[0082] That is, if the previous codeword SR0 is found in one among the conversion code groups
MCG1, MCG2, DCG1 and DCG2, the NCG is obtained as defined in Figure 11 or 12. If the
previous codeword SR0 is found in one among the first, second and third DSV code groups
for DC suppression control, the NCG is obtained as defined in Figure 13. However,
when the previous codeword SR0 is found in one among the first, second and third DSV
code groups for DC suppression control, if the EZ of the previous codeword SRO is
8, NCG is 1 (which denotes the MCG1). If the EZ of the previous codeword SRO is 0
to 7, NCG is 3 (which denotes the DCG1) or 4 (which denotes the DCG2) depending on
the values of specific bits of the current codeword SR1.
[0083] If it is determined in step S208 of Figure 10A that the run length condition is satisfied,
a codeword, which is current data dt[n-1] to be demodulated, is searched for in the
MCG2 capable of DC suppression together with the MCG1, and the NCG[n-1] representing
a code group having the codeword next to the current codeword to be modulated is temporarily
obtained as defined in Figure 11, in step S210. In step S211, it is determined whether
the run length between a current codeword cod2(dt[n-1]) to be modulated and the next
codeword cod
NCG[N-1] (dt[n]) to be modulated the next time in a code group designated by the NCG[n-1]
is violated.
[0084] If it is determined in step S211 that the run length condition is violated, dt[n-1]
can be modulated only into a codeword within MCG1 and the NCG[n-1] is obtained as
defined in Figure 12 in step S209. In step S212, if the run length condition is not
violated, dt[n-1] can be modulated into a codeword within MCG1 or MCG2, and selection
of one of the two groups is made so that a codeword in the selected code group preferably
suppresses DC. In Figure 10A, the selection of a codeword favorable for DC suppression
is expressed as DCC(cod1(dt[n-1], cod2(dt[n-1]))). NCG[n-1] is determined depending
on the type of a code group and a codeword determined in step S212. That is, when
dt[n-1] is selected from the MCG1, NCG[n-1] is determined by Figure 12. When dt[n-1]
is selected from the MCG2, NCG[n-1] is determined by Figure 11.
[0085] If it is determined in step S207 that NCG[n-2] is 2, it is determined whether current
data dt[n-1] to be currently modulated is smaller than 102, in step S213. If it is
determined in step S213 that data dt[n-1] is greater than 101, a codeword for the
data is searched for in the MCG2, the found codeword is expressed as cod2(dt[n-1]),
and NCG[n-1] is obtained as defined in Figure 11, in step S214. If it is determined
in step S213 that dt[n-1] is smaller than or equal to 101, it is determined whether
the run length condition (d,k) between the previously modulated codeword mc[n-2] and
the codeword for dt[n-1], cod5(dt[n-1]), in the first DSV code group is violated,
in step S215, which is expressed as rll_check((mc[n-2], cod5(dt[n-1]))=(d/k)? in Figure
10A.
[0086] If it is determined in step S215 that the run length condition is violated, the step
S214, in which dt[n-1] is modulated only into a codeword which is within MCG2 and
the NCG[n-1] is obtained as defined in Figure 11, is performed. If it is determined
in step S215 that the run length condition is satisfied, a codeword for data dt[n-1]
is searched for in the first DSV code group capable of DC suppression together with
the MCG2, and the NCG[n-1] is temporarily obtained as defined in Figure 13, in step
S216. In step S217, it is determined whether the run length condition between cod5(dt[n-1])
and the next codeword cod
NCG[N-1](dt[n]) to be modulated the next time in a code group designated by the NCG[n-1] is
violated.
[0087] If it is determined in step S217 that the run length condition is violated, the step
S214, in which dt[n-1] is modulated only into a codeword which is within MCG2 and
the NCG[n-1] is obtained as defined in Figure 11, is performed. If the run length
condition is not violated, dt[n-1] can be modulated into a codeword which is within
MCG2 or within the first DSV code group, and a codeword into which data is to be modulated
is selected from a code group having a codeword which is favorable for DC suppression,
in step S218. In Figure 10A, the selection of a codeword favorable for DC suppression
is expressed as DCG(cod2(dt[n-1]), cod5(dt[n-1])). NCG[n-1] is determined depending
on the type of code group and codeword determined in step S218. That is, when dt[n-1]
is selected from the MCG2, NCG[n-1] is determined as defined in Figure 11. When dt[n-1]
is selected from the first DSV code group, NCG[n-1] is determined as defined in Figure
13.
[0088] If it is determined in step S207 that NCG[n-2] is 3, it is determined whether current
data dt[n-1] to be currently modulated is smaller than 27, in step S219 of Figure
10B. If it is determined in step S219 that data dt[n-1] is greater than 26, a codeword
for the data is searched for in the DCG1, the found codeword is expressed as cod3(dt(n-1]),
and NCG[n-1] is obtained as defined in Figure 11, in step S220. If it is determined
in step S219 that dt[n-1] is smaller than or equal to 26, it is determined in step
S221 whether the run length condition (d,k) between the previously modulated codeword
mc[n-2] and a codeword for dt[n-1], cod6(dt[n-1]), in the second DSV code group is
violated, which is expressed as rll_check((mc[n-2], cod6(dt[n-1]))=(d,k)? in Figure
10B.
[0089] If it is determined in step S221 that the run length condition is violated, the step
S220, in which dt[n-1] is modulated only into a codeword which is within DCG1 and
the NCG[n-1] is obtained as defined in Figure 11, is performed. If it is determined
in step S221 that the run length condition is satisfied, a codeword for data dt[n-1]
is searched for in the second DSV code group capable of DC suppression together with
the DCG1, and the NCG[n-1] is temporarily obtained as defined in Figure 13, in step
S222. In step S223, it is determined whether the run length condition between cod6(dt[n-1])
and the next codeword cod
NCG[N-1] (dt[n]) to be modulated the next time in a code group designated by the NCG[n-1]
is violated. If it is determined in step S223 that the run length condition is violated,
the step S220, in which dt [n-1] is modulated only into a codeword which is within
DCG1 and the NCG[n-1] is obtained as defined in Figure 11, is performed. If the run
length condition is not violated, dt[n-1] can be modulated into a codeword which is
within DCG1 or within the second DSV code group, and a codeword into which data is
to be modulated is selected from a code group having a codeword which is favorable
for DC suppression, in step S224. In Figure 10B, the selection of a codeword favorable
for DC suppression is expressed as DCC(cod3(dt[n-1]), cod6(dt[n-1])). NCG[n-1] is
determined depending on the type of a code group and a codeword determined in step
S224. That is, when dt[n-1] is selected from the DCG1, NCG[n-1] is determined as defined
in Figure 11. When dt[n-1] is selected from the second DSV code group, NCG[n-1] is
determined as defined in Figure 13.
[0090] If it is determined in step S207 that NCG[n-2] is 4, it is determined in step S225
whether current data dt[n-1] to be modulated is smaller than 4. If it is determined
in step S225 that data dt[n-1] is greater than 3, a codeword for the data is searched
for in the DCG2, the found codeword is expressed as cod4(dt[n-1]), and NCG[n-1] is
obtained as defined in Figure 11, in step S226.
[0091] If it is determined in step S225 that dt[n-1] is smaller than or equal to 3, it is
determined in step S227 whether the run length condition (d,k) between the previous
modulated codeword mc[n-2] and a codeword for dt[n-1], cod7(dt[n-1]), in the third
DSV code group is violated. This determination is expressed as rll_check((mc[n-2],
cod7(dt[n-1]))=(d,k)?, in Figure 10B.
[0092] If it is determined in step S227 that the run length condition is violated, the step
S226, in which dt [n-1] is modulated only into a codeword which is within DCG2 and
the NCG[n-1] is obtained as defined in Figure 11, is performed. If it is determined
in step S227 that the run length condition is satisfied, a codeword for data dt[n-1]
is searched for in the third DSV code group capable of DC suppression together with
the DCG2, and the NCG[n-1] is temporarily obtained as defined in Figure 13, in step
S228. In step S229, it is determined whether the run length condition between cod7(dt[n-1])
and the next codeword cod
NCG[N-1](dt [n]) to be modulated the next time in a code group designated by the NCG[n-1]
is violated.
[0093] If it is determined in step S229 that the run length condition is violated, the step
S226, in which dt[n-1] is modulated only into a codeword which is within DCG2 and
the NCG[n-1] is obtained as defined in Figure 11, is performed. If the run length
condition is not violated, dt[n-1] can be modulated into a codeword within DCG2 or
the third DSV code group, and a codeword into which data is to be modulated is selected
from a code group having a codeword which is favorable for DC suppression, in step
S230. In Figure 10B, the selection of a codeword favorable for DC suppression is expressed
as DCC(cod4(dt[n-1]), cod7(dt[n-1])). NCG[n-1] is determined depending on the type
of a code group and a codeword determined in step S230. That is, when dt[n-1] is selected
from the DCG2, NCG[n-1] is determined as defined in Figure 11. When dt[n-1] is selected
from the third DSV code group, NCG[n-1] is determined as defined in Figure 13.
[0094] After current input data is modulated, it is determined whether the modulated data
is the last, in step S231. If the modulated data is the last, this process is concluded.
Otherwise, the step S202 is again performed.
[0095] In Figures 14A and 14B which are flowcharts illustrating a demodulation method according
to an embodiment of the present invention, an NCG value is set to be an initial value
(here, 1), and a variable
n is set to be 0, in step S301. In step S302, the variable
n increases by 1. In step S303, a new codeword is input and stored in a shift register
(not shown). Here, a shift register in which a current codeword to be currently demodulated
is stored is referred to as SR1, a shift register in which a previous demodulated
codeword is stored is referred to as SR0, and a shift register in which a next codeword
to be demodulated the next time is stored is referred to as SR2.
[0096] In step S304, it is determined whether variable n is equal to or greater than 2.
If variable
n is equal to or smaller than 1, only a new codeword is received, and the step S302
for increasing variable
n by 1 is again performed. If it is determined in step S304 that variable
n is equal to or greater than 2, a determination is made as to whether the previous
codeword SR0 is a synchronous signal SYNC, in step S305. If the previous codeword
SR0 is a synchronous signal SYNC, a synchronous restoring routine for synchronous
protection and interleaving is performed in step S306. Then, the step S302 is again
performed.
[0097] If it is determined in step S305 that the previous codeword SR0 is not a synchronous
signal, a determination is made as to whether variable
n is greater than or equal to 3, in step S307. If variable
n is greater than or equal to 3, an NCG determination process (steps S308 through S316)
for searching for a code group having the current codeword SR1 is performed. Otherwise,
a demodulation process (steps S317 through S322 in Figure 14B) is performed.
[0098] That is, if variable
n is greater than or equal to 3, a determination is made as to whether the previous
codeword SR0 belongs to a conversion code group MCG1, MCG2, DCG1 or DCG2, in step
S308. If it is determined that the previous codeword SR0 belongs to a conversion code
group MCG1, MCG2, DCG1 or DCG2, its EZ value is checked in step S309.
[0099] If it is determined in step S309 that the EZ value of the previous codeword SR0 is
smaller than the minimum run length
d, that is, if EZ is 0, NCG representing a code group having a current codeword being
demodulated is updated to 2, which represents the MCG2 or the first DSV code group,
in step S310. If the EZ is equal to or greater than the minimum run length
d and equal to or smaller than a codeword duplication parameter
y, that is, if 1≤EZ≤3, it is determined in step S311 whether the 4 upper bits of the
previous codeword SR0 represent 8 (1000b) or 9 (1001b) when NCG is 1 and the EZ is
1. If the four upper bits of the previous codeword SR0 do not represent 8 (1000b)
or 9 (1001b), all bits of the current codeword SR1 being demodulated are checked,
in step S312. If the LZ of the current codeword SR1 is 0 or greater than or equal
to 4, NCG representing a code group including the current codeword SR1 is updated
to 3, which represents the DCG1 or second DSV code group, in step S313. If the LZ
of the current codeword SR1 is 1, 2 or 3, NCG representing a code group including
the current codeword SR1 is updated to 4, which represents the DCG2 or third DSV code
group, in step S314. If it is determined in step S311 that the previous codeword SR0
is included in MCG1, the EZ value thereof is 1, and the four upper bits thereof represent
8 (1000b) or 9 (1001b), or if it is determined in step S309 that the EZ value of the
previous codeword SR0 is greater than duplication parameter
y, NCG designating a code group having a current codeword to be currently modulated
is updated to 1, which represents MCG1 or MCG2, in step S315.
[0100] If it is determined in step S308 that the previous codeword SR0 belongs to none of
the MCG1, MCG2, DCG1 and DCG2, it is determined in step S316 whether the EZ of the
previous codeword SR0 is 8. If the EZ of the previous codeword SR0 is 8, step S315
is performed, in which NCG designating a code group having a current codeword to be
currently modulated is updated to 1. Otherwise, the step S312 for checking the bits
of the current codeword to be currently demodulated, SR1, is performed.
[0101] In step S317 of Figure 14B, a determination is made as to whether a code group designated
by each of the updated NCGs has two identical codewords. If it is determined in step
S317 that two identical codewords exist in the designated code group, the bits of
the next codeword SR2 are checked in step S318. If the LZ value of the next codeword
is 0 or greater than or equal to 4, the code to be currently demodulated is identified
as the first codeword of the two identical codewords and is demodulated into the original
data for the first codeword in step S319. If the LZ value of the next codeword is
1, 2 or 3, the code to be currently demodulated is identified as the second codeword
of the two identical codewords and is demodulated into the original data for the second
codeword in step S320.
[0102] If it is determined in step S317 that a code group designated by the updated NCG
has only a single codeword SR1 to be currently demodulated, the single codeword SR1
is selected from the code group designated by the updated NCG and demodulated into
the original data in step S321.
[0103] After the current codeword SR1 is demodulated, a determination is made as to whether
the demodulated codeword is the last in step S322. If the demodulated codeword is
the last, this demodulation process is concluded. Otherwise, the step S302 of Figure
14A for increasing variable
n by 1 is again performed.
[0104] According to the present invention as described above, the DC suppression capability
is improved by producing DC suppression control DSV code groups by making the most
of the characteristics (for example, parameters CSV and INV) of codewords in data
modulation conversion code groups.
[0105] In the present invention, the DC suppression control DSV code groups are produced
by making the most of the characteristics of codewords in conversion code groups,
such as, the sign of parameter CSV representing the DC value within a codeword and
the characteristics of parameter INV predicting the DSV transition direction of the
next codeword, although they have separate codewords from data modulation conversion
code groups, and yet relaxing the duplicate codeword generation condition or the condition
of usable codewords compared to the data modulation conversion code groups. Therefore,
the probability of DC suppression control further increases, so that the DC component
of a code stream can be further suppressed.
[0106] The reader's attention is directed to all papers and documents which are filed concurrently
with or previous to this specification in connection with this application and which
are open to public inspection with this specification, and the contents of all such
papers and documents are incorporated herein by reference.
[0107] All of the features disclosed in this specification (including any accompanying claims,
abstract and drawings), and/or all of the steps of any method or process so disclosed,
may be combined in any combination, except combinations where at least some of such
features and/or steps are mutually exclusive.
[0108] Each feature disclosed in this specification (including any accompanying claims,
abstract and drawings), may be replaced by alternative features serving the same,
equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly
stated otherwise, each feature disclosed is one example only of a generic series of
equivalent or similar features.
[0109] The invention is not restricted to the details of the foregoing embodiment(s). The
invention extend to any novel one, or any novel combination, of the features disclosed
in this specification (including any accompanying claims, abstract and drawings),
or to any novel one, or any novel combination, of the steps of any method or process
so disclosed.
1. A method of modulating input data into a run length limited (RLL) code which is expressed
as (d,k,m,n), where d denotes a minimum run length, k denotes the maximum run length, m denotes the bit length of data, and n denotes the bit length of a codeword, the method comprising (a) modulating m-bit
input data into a codeword, which is favorable for DC suppression, from a predetermined
number of first code groups for data modulation and a predetermined number of second
code groups for DC suppression control, the first and second code groups having redundant
codewords and being produced so that the codewords within the first code group have
a first parameter CSV (codeword sum value) which represents the direct current (DC)
value of a codeword, the sign of which is opposite to that of corresponding codewords
within the second code group, and a second parameter INV which predicts the digital
sum value (DSV) transition direction of the next codeword, the characteristic of which
is opposite to that of corresponding codewords within the second code group, wherein
the first and second code groups have different redundant codeword generation conditions.
2. The method of claim 1, wherein the number of codewords in the second code group is
increased by relaxing the redundant codeword generation condition for the second code
group compared to the first code group, so that the probability of suppressing the
DC component of a code stream during modulation is improved.
3. The method of claim 1 or 2, wherein codewords having an end zero number of 1 to 3
within the first code group have duplicates, and codewords having an end zero number
of 0 to 7 within the second code group have duplicates.
4. The method of claim 1, 2 or 3 wherein the first code group is made up of main code
groups MCG1 and MCG2 and redundant code demodulation conversion code groups DCG1 and
DCG2, and the second code group is made up of first, second and third DSV code groups.
5. The method of claim 4, wherein MCG1 includes codewords each having lead zeros, the
number of which, LZ, is smaller than or equal to a MCG classification parameter x, the MCG2 includes codewords each of which LZ is greater than or equal to the MCG
classification parameter x, MCG1 and MCG2 have no identical codewords, DCG1 and DCG2 include codewords each of
which LZ is equal to or smaller than the difference between the maximum run length
k and the codeword duplication parameter y, the codewords are disposed in DCG1 or DCG2 depending on the values of specific bits
of the codewords, the first DSV code group is made up of codewords having a first
parameter whose sign is opposite to that of corresponding codewords in MCG2 and a
second parameter whose characteristic is opposite to that of corresponding codewords
in MCG2, the second DSV code group is made up of codewords having a first parameter
whose sign is opposite to that of corresponding codewords in DCG1 and a second parameter
whose characteristic is opposite to that of corresponding codewords in DCG1, and the
third DSV code group is made up of codewords having a first parameter whose sign is
opposite to that of corresponding codewords in DCG2 and a second parameter whose characteristic
is opposite to that of corresponding codewords in DCG2.
6. The method of claim 5, wherein d is 1, k is 8, m is 8, n is 12, parameter x for classifying MCG1 and MCG2 is 1, and code duplication parameter y is 3.
7. The method of claim 4, wherein the DC suppression control is achieved by selecting
a codeword which is favorable for DC suppression from a code group pair capable of
DC control, that is, main code groups MCG1 and MCG2, MCG2 and the first DSV code group
for DC suppression control, the redundant code demodulation conversion code group
DCG1 and the second DSV code group for DC suppression control, or the redundant code
demodulation conversion code group DCG2 and the third DSV code group for DC suppression
control.
8. The method of claim 4, wherein each codeword in each of the code groups has a third
parameter (NCG) designating a code group having a codeword coming next to the above
codeword, and the third parameter set for the first code group is different from that
set for the second code group.
9. The method of claim 4, wherein the DC suppression control code group capable of controlling
DC suppression together with the redundant code demodulation conversion code group
is made up of codewords which violate the LZ condition among all of the codewords
in the redundant code demodulation conversion code group.
10. The method of claim 9, wherein the lead zero number of all of the codewords within
the redundant code demodulation conversion code group is less than or equal to 5,
and the lead zero number of each of the codewords within the DC suppression control
code group capable of controlling DC suppression together with the redundant code
demodulation conversion code group is less than or equal to the maximum run length
k.
11. A method of modulating input data into a run length limited (RLL) code which is expressed
as (
d,k,m,n), where
d denotes a minimum run length,
k denotes the maximum run length,
m denotes the bit length of data, and
n denotes the bit length of a codeword, the method comprising:
(a) receiving m-bit input data;
(b) searching for a codeword for the received data in a data modulation code group
designated as a code group having a codeword to come next to a previously modulated
codeword, and determining whether the run length condition between the found codeword
and the previous codeword/next codeword is violated; and
(c) modulating the received data into the found codeword and determining a code group
having a codeword to come next to the modulated codeword, if the run length condition
is violated, and otherwise, modulating the received data into a codeword searched
in a code group, which is favorable for DC suppression, among a data modulation code
group designated as a code group having a codeword to come next to the previous codeword
and a corresponding DC suppression control code group, and determining a code group
having a codeword to come next to the modulated codeword.
12. The method of claim 11, wherein codewords having an end zero number of 1 to 3 within
the data modulation code group have duplicates, and codewords having an end zero number
of 0 to 7 within the DC suppression control code group have duplicates.
13. The method of claim 12, wherein a third parameter NCG (next code group) designating
a code group having a codeword coming next to a codeword is set on each of the codewords
within each of the code groups, and the third parameter for the data modulation code
group is different from that for the DC suppression control code group.
14. The method of claim 11, 12 or 13 wherein the minimum run length is 1, and the maximum
run length is 8.
15. The method of claim 11, 12, 13 or 14 wherein the data modulation code group is made
up of main code groups MCG1 and MCG2 and redundant code demodulation conversion code
groups DCG1 and DCG2, and the DC suppression control code group is made up of first,
second and third DSV code groups.
16. The method of claim 15, wherein the MCG1 includes codewords each of which LZ is smaller
than or equal to a MCG classification parameter x, the MCG2 includes codewords each of which LZ is greater than or equal to the MCG
classification parameter x, the codewords within the MCG1 have a first parameter CSV (codeword sum value) which
represents the direct current (DC) value of a codeword, the sign of which is opposite
to that of corresponding codewords within the MCG2, and a second parameter INV which
predicts the digital sum value (DSV) transition direction of the next codeword, the
characteristic of which is opposite to that of corresponding codewords within MCG2,
so that MCG1 and MCG2 have no identical codewords, DCG1 and DCG2 include codewords
each of which LZ is equal to or smaller than the difference between the maximum run
length k and the codeword duplication parameter y while the sign of the first parameter and the characteristic of the second parameter
for the DCG1 are opposite to those for the DCG2, the codewords are disposed in DCG1
or DCG2 depending on the values of specific bits of the codewords, the first DSV code
group is made up of codewords having a first parameter whose sign is opposite to that
of corresponding codewords in MCG2 and a second parameter whose characteristic is
opposite to that of corresponding codewords in MCG2, the second DSV code group is
made up of codewords having a first parameter whose sign is opposite to that of corresponding
codewords in DCG1 and a second parameter whose characteristic is opposite to that
of corresponding codewords in DCG1, and the third DSV code group is made up of codewords
having a first parameter whose sign is opposite to that of corresponding codewords
in DCG2 and a second parameter whose characteristic is opposite to that of corresponding
codewords in DCG2.
17. The method of claim 15, wherein in step (c), if the run length condition is satisfied,
the received data is modulated into a codeword selected from a code group, which is
favorable for DC suppression, among a code group pair capable of DC control, that
is, main code groups MCG1 and MCG2, the main code group MCG2 and the first DSV code
group for DC suppression control, the redundant code demodulation conversion code
group DCG1 and the second DSV code group for DC suppression control, or the redundant
code demodulation conversion code group DCG2 and the third DSV code group for DC suppression
control.
18. The method of claim 15, wherein the DC suppression control code group capable of controlling
DC suppression together with the redundant code demodulation conversion code group
is made up of codewords which violate the LZ condition among all of the codewords
in the redundant code demodulation conversion code group.
19. The method of claim 18, wherein the number of lead zeros of all of the codewords within
the redundant code demodulation conversion code group is less than or equal to 5,
and the number of lead zeros of each of the codewords within the DC suppression control
code group capable of controlling DC suppression together with the redundant code
demodulation conversion code group is less than or equal to the maximum run length
k.
20. The method of claim 15, wherein in step (c), if it is determined in step (b) that
the run length condition between a codeword to be currently modulated and the previous
codeword/next codeword is satisfied and also that the previous codeword has been modulated
in one among the conversion code groups MCG1, MCG2, DCG1 and DCG2, a code group designated
by the current modulated codeword as a code group having a codeword to come next to
the current codeword is determined depending on the number of end zeros, EZ, of the
previous codeword modulated in one among the conversion code groups, wherein, if EZ
is smaller than the minimum run length d, the main code group MCG1 is determined, if EZ is equal to or greater than d and smaller than or equal to a codeword duplication parameter y, the redundant code demodulation conversion code group DCG1 or DCG2 is determined
depending on the values of specific bits of the current codeword, and if EZ is greater
than y, the MCG1 is determined.
21. The method of claim 20, wherein, although the previous codeword has been modulated
in the main code group MCG1, when the previous codeword is 1000xxxxxx10 or 1001xxxxxx10,
the main code group MCG1 is determined as a code group designated by the current codeword,
from which a codeword to come next to the current codeword is to be selected.
22. The method of claim 15, wherein in step (c), if it is determined in step (b) that
the run length condition between a codeword to be currently modulated and the previous
codeword/next codeword is satisfied and also the previous codeword has been modulated
in one among the DSV code groups, a code group designated by the current modulated
codeword as a code group having a codeword to come next to the current codeword is
determined depending on the EZ of the previous codeword modulated in one among the
DSV code groups, wherein, if EZ is equal to or greater than 0 and smaller than the
maximum run length k, the redundant code demodulation conversion code group DCG1 or DCG2 is determined
depending on the values of specific bits of the current modulated codeword, and if
EZ is the maximum run length k, the main code group MCG1 is determined.
23. A method of demodulating a codeword stream received by an optical recording/reproduction
apparatus using a run length limited (RLL) code in which input data has been modulated
into a codeword in a code group, which is favorable for DC suppression, from a predetermined
number of first code groups for data modulation and a predetermined number of second
code groups for DC suppression control, the first and second code groups having duplicate
codewords and being produced so that the codewords within the first code group have
a first parameter CSV (codeword sum value) which represents the direct current (DC)
value of a codeword, the sign of which is opposite to that of corresponding codewords
within the second code group, and a second parameter INV which predicts the digital
sum value (DSV) transition direction of the next codeword, the characteristic of which
is opposite to that of corresponding codewords within the second code group, and the
first and second code groups have different duplicate codeword generation conditions,
the method comprising:
(a) receiving a codeword stream, and updating a third parameter NCG (next code group)
designating a code group having a current codeword to be currently demodulated, depending
on the characteristics of the previous codeword;
(b) determining whether there are two identical current codewords in a code group
designated by the third updated parameter NCG; and
(c) demodulating the current codeword into the original data for a codeword in a code
group designated by the third updated parameter NCG, if the current codeword does
not have a duplicate, and demodulating the current codeword into the original data
for one of the two identical codewords selected depending on the LZ of the next codeword,
if the current codeword has a duplicate.
24. The method of claim 23, wherein the codeword stream is made up of codewords selected
from a code group, which is favorable for DC suppression, of a code group pair capable
of DC control, that is, main code groups MCG1 and MCG2, the main code group MCG2 and
the first DSV code group for DC suppression control, the redundant code demodulation
conversion code group DCG1 and the second DSV code group for DC suppression control,
or the redundant code demodulation conversion code group DCG2 and the third DSV code
group for DC suppression control.
25. The method of claim 23 or 24, wherein the step (a) comprises:
(a1) determining whether the previous codeword is included in the data modulation
code group;
(a2) checking the EZ of the previous codeword if it is determined in step (a1) that
the previous codeword is included in the data modulation code group;
(a3) updating the third parameter NCG to a first value that represents the main code
group MCG2 or the first DSV code group, if the EZ of the previous codeword is smaller
than the minimum run length d;
(a4) determining whether a code group designated by the third parameter NCG of the
previous codeword has two identical previous codewords, if the EZ of the previous
codeword is equal to or greater than the minimum run length d and smaller than or equal to the codeword duplication parameter y;
(a5) updating the third parameter NCG to a second value that represents the DCG1 or
the second DSV code group or a third value that represents the DCG2 or the third DSV
code group, depending on the values of specific bits of a current codeword, if it
is determined in step (a4) that there are two identical previous codewords;
(a6) updating the third parameter NCG to a fourth value that represents the MCG1 or
MCG2, if the EZ of the previous codeword is greater than the codeword duplication
parameter y or if it is determined in step (a4) that the previous codeword does not have a duplicate;
and
(a7) determining whether the EZ of the previous codeword is k, if it is determined in step (a1) that the previous codeword is not included in the
data modulation code group, and, if EZ is k, returning to the step (a6), and otherwise, returning to the step (a4).
26. The method of claim 25, wherein, in the step (a5), when d is 1, k is 8, m is 8, n is 12, parameter x for classifying MCG1 and MCG2 is 1, codeword duplication parameter y is 3, and the specific bits are the 4 upper bits of the current codeword, if the
MSB of the current codeword is "1" or the 4 upper bits thereof are all "0", the third
parameter NCG is updated to the second value, and, otherwise, the third parameter
(NCG) is updated to the third value.