(57)【要約】【課題】高線密度で記録再生ができるようにする。【解決手段】DSV制御ビット決定・挿入部１１は、入力されたデータ列にDSV制御のためのDSV制御ビットを挿入し、変調部１２に出力する。変調部１２は、変換テーブルに従って、基本データ長が２ビットのデータを、基本符号長が３ビットの可変長符号に変換して、NRZI化部１３に出力する。変調部１２が有する変換テーブルは、最小ランの連続を所定の回数以下に制限する置き換えコード、ラン長制限を守るための置き換えコードを有し、前記置き換えコードは、置き換え制限が付け加えられており、さらに、データ列の要素内の「１」の個数を２で割ったときの余りと、符号語列の要素内の「１」の個数を２で割ったときの余りが、どちらも１あるいは０で一致するような変換規則を有する。【選択図】図１
2010192098.tif 000002
【特許請求の範囲】
【請求項１】
２対３の比率で、ｍビットのデータ列を、ｎビットの符号語列に変換する変調装置において、
入力データ列をｍビット毎のデータ列に区分する区分手段と、
最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｍビットのデータ列をｎビットの符号語列に変換する際に、複数の前記符号語列において、最小ランｄが所定回数連続するとき、前記複数の符号語列のうち１の符号語列の直前の符号語列に応じた第２のテーブルに基づき、前記複数の前記符号語列を、最小ランｄが連続する回数を制限する制限コードに変換する変換手段と
を備える変調装置。
【請求項２】
前記第２のテーブルは、前記直前の符号語列のうちの最後のビットが、０もしくは１に応じたテーブルである
請求項１に記載の変調装置。
【請求項３】
前記制限コードは、制限コード以外のコード、またはその一部の複数個の組み合わせにより生成されている
請求項１に記載の変調装置。
【請求項４】
２対３の比率で、ｍビットのデータ列を、ｎビットの符号語列に変換する変調装置の変調方法において、
入力データ列をｍビット毎のデータ列に区分し、
最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｍビットのデータ列をｎビットの符号語列に変換する際に、複数の前記符号語列において、最小ランｄが所定回数連続するとき、前記複数の符号語列のうち１の符号語列の直前の符号語列に応じた第２のテーブルに基づき、前記複数の符号語列を、最小ランｄが連続する回数を制限する制限コードに変換する
ステップを含む変調方法。
【請求項５】
２対３の比率で、ｍビットのデータ列を、ｎビットの符号語列に変換する変調方法により作成されたデータ列であって、
入力データ列がｍビット毎のデータ列に区分され、
最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｍビットのデータ列がｎビットの符号語列に変換される際に、複数の前記符号語列において、最小ランｄが所定回数連続するとき、前記複数の符号語列のうち１の符号語列の直前の符号語列に応じた第２のテーブルに基づき、前記複数の符号語列が、最小ランｄが連続する回数を制限する制限コードに変換された
データ構造を有するデータ列を記録した記録媒体。
【請求項６】
３対２の比率で、ｎビットの符号語列を、ｍビットのデータ列に変換する復調装置において、
入力符号語列をｎビット毎の符号語列に区分する区分手段と、
最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｎビットの符号語列をｍビットのデータ列に変換する際に、複数の前記データ列において、最小ランｄが所定回数連続するのを制限する制限コードを、前記複数のデータ列のうち１のデータ列の直前のデータ列に応じた第２のテーブルに基づき、前記複数の前記データ列に変換する変換手段と
を備える復調装置。
【請求項７】
３対２の比率で、ｎビットの符号語列を、ｍビットのデータ列に変換する復調装置の復調方法において、
入力符号語列をｎビット毎の符号語列に区分し、
最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｎビットの符号語列をｍビットのデータ列に変換する際に、複数の前記データ列において、最小ランｄが所定回数連続するのを制限する制限コードを、前記複数のデータ列のうち１のデータ列の直前のデータ列に応じた第２のテーブルに基づき、前記複数の前記データ列に変換する
ステップを含む復調方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は変調装置、変調方法、復調装置、復調方法、および記録媒体に関し、特に、記録媒体にデータを高密度に記録する、あるいは高密度にデータが記録された記録媒体から再生する場合に用いて好適な変調装置、変調方法、復調装置、復調方法、および記録媒体に関する。
【背景技術】
【０００２】
データを所定の伝送路に伝送したり、または、例えば磁気ディスク、光ディスク、光磁気ディスク等の記録媒体に記録したりする際、伝送路や記録媒体に適するように、データの変調が行われる。このような変調方法の１つとして、ブロック符号が知られている。ブロック符号とは、データ列をｍ×ｉビットからなる単位（以下データ語という）にブロック化し、このデータ語を適当な符号則に従って、ｎ×ｉビットからなる符号語に変換するものである。そしてこの符号は、ｉ＝１のときには固定長符号となり、またｉが複数個選べるとき、すなわち、１乃至ｉmax（最大のｉ）の範囲の所定のｉを選択して変換したときには可変長符号となる。このブロック符号化された符号は可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）と表される。
【０００３】
ここでｉは拘束長と称され、ｉmaxはｒ（最大拘束長）となる。また最小ランｄは、符号系列内の連続する”１”の間に入る”０”の最小連続個数を示し、最大ランｋは符号系列内の連続する”１”の間に入る”０”の最大連続個数を示している。
【０００４】
ところで上述のようにして得られる可変長符号を、光ディスクや光磁気ディスク、例えばコンパクトディスク(ＣＤ)やミニディスク(ＭＤ)（商標）に記録する場合、上述のようにして得られた可変長符号に対して、"１"で反転、"０"で無反転とするNRZI(NonReturn to Zero Inverted)変調を行い、NRZI変調された可変長符号(以下、記録波形列と称する)を記録するようにしている。これをマークエッジ記録ともいう。これに対して、ISO規格の3.5inch・230MB容量の光磁気ディスク等では、記録変調された符号列が、NRZI変調されずに、そのまま記録される。これをマークポジション記録と言う。現在のように高記録密度化された記録メディアでは、マークエッジ記録が用いられる場合が多い。
【０００５】
記録波形列の最小反転間隔をＴminとし、最大反転間隔をＴmaxとするとき、線速方向に高密度記録を行うためには、最小反転間隔Ｔminは長い方が良く、換言すると、最小ランｄは大きい方が良い。またクロックの再生の面からは、最大反転間隔Ｔmaxは短い方が良く、換言すれば、最大ランｋは小さい方が良い。オーバーライト特性を考慮する場合、Ｔmax/Ｔminが小さい方が望ましい。さらに、JitterやS/Nの点から、検出窓幅Ｔw=m/nが大きいことが重要になるなど、メディア（記録媒体）の条件と照らし合わせながら種々の変調方法が提案され、実用化されている。
【０００６】
ここで具体的に、光ディスク、磁気ディスク、または光磁気ディスク等において、提案されたり、あるいは実際に使用されている変調方式について説明する。ＣＤやＭＤで用いられるEFM（Eight to Fourteen Modulation）符号((2,10;8,17;1)とも表記される)、DVD（Digital Video Disc）で用いられる8-16符号((2,10;1,2;1)とも表記される)、またはＰＤ(Phase Change Optical Disk;120mm、650MB容量)で用いられるRLL（Run Length Limited code）(2,7)((2,7;m,n;r)とも表記される)は、最小ランd=2のRLL符号である。
【０００７】
また、ISO規格の3.5inchＭＯ(Magneto Optical;640MB容量)で用いられるRLL(1,7)((1,7;2,3;r)とも表記される）は最小ランd=1のRLL符号であり、この他にも、記録密度の高い光ディスクや光磁気ディスク等の記録再生ディスク装置では、最小マークの大きさや、変換効率のバランスの取れた、最小ランd=1のRLL符号が用いられている。
【０００８】
可変長RLL（１−７）符号の変換テーブルは、例えば以下のようなテーブルである。
＜表１＞RLL(1,7;2,3;2)
データ    符号
ｉ＝１  １１      ００ｘ
１０      ０１０
０１      １０ｘ
ｉ＝２  ００１１  ０００ ００ｘ
００１０  ０００ ０１０
０００１  １００ ００ｘ
００００  １００ ０１０
【０００９】
ここで変換テーブル内の記号ｘは、次に続くチャネルビットが”０”であるときに”１”とされ、次に続くチャネルビットが”１”であるときに”０”とされる（以下、同様）。最大拘束長ｒは２である。
【００１０】
可変長RLL(1,7)のパラメータは(1,7;2,3,2)であり、記録波形列のビット間隔をＴとすると、(ｄ＋１)Ｔで表される最小反転間隔Ｔminは２(=1+1)Ｔとなる。データ列のビット間隔をＴdataとすると、（ｍ／ｎ）×２で表される最小反転間隔Ｔminは、1.33(=(2/3)×2)Ｔdataとなる。また、(ｋ＋１)Ｔで表される最大反転間隔Ｔmaxは、８(=7+1)Ｔ(=(m/n)×８Ｔdata=(2/3)×８Ｔdata=5.33Ｔdata)である。さらに検出窓幅Ｔwは(m/n)×Ｔdataで表され、その値は0.67(=2/3)Ｔdataとなる。
【００１１】
ところで、表１のRLL(1,7)による変調を行ったチャネルビット列においては、発生頻度としてはＴminである２Ｔが一番多く、以下３Ｔ，４Ｔと続く。２Ｔや３Ｔのようなエッジ情報が早い周期で多く発生するのは、クロック再生には有利となる場合が多い。
【００１２】
ところが、さらに線記録密度を高くしていくと、今度は逆に、短いマークが問題となる。すなわち、最小ランである２Ｔが連続して発生し続けると、記録波形に歪みが生じやすくなる。なぜならば、２Ｔの波形出力は他の波形出力よりも小さく、例えばデフォーカスやタンジェンシャル・チルト等による影響を受け易いからである。また高記録密度において、最小マーク（２Ｔ）の連続した記録はノイズ等の外乱の影響も受け易くなる。従って、このようなパターン列は、データ再生時に誤りを起こり易くなる。この場合におけるデータ再生誤りのパターンとしては、連続する最小マークの先頭と最後が、シフトして誤るケースが多く、エラー伝搬長が長くなってしまうことになる。  
【００１３】
一方、記録媒体へのデータの記録、あるいはデータの伝送の際には、その記録媒体あるいは伝送路に適した符号化変調が行われるが、これらの変調符号に低域成分が含まれていると、例えば、ディスク装置のサーボ制御におけるトラッキングエラーなど、各種のエラー信号に変動が生じ易くなったり、あるいはジッタが発生し易くなったりする。従って、変調符号は、低域成分がなるべく抑制されている方が望ましい。
【００１４】
低域成分を抑制する方法として、DSV(Digital Sum Value)制御がある。DSVとは、チャネルビット列をNRZI化（レベル符号化）して記録符号列とし、そのビット列（データのシンボル）の”１”を「＋１」、”０”を「−１」として、符号を加算していったときの総和を意味する。DSVは記録符号列の低域成分の目安となり、DSVの正負のゆれの絶対値を小さくすること、すなわち、DSV制御を行うことは、記録符号列の直流成分を除き、低域成分を抑制することになる。
【００１５】
表１に示した、可変長RLL(1,7)テーブルによる変調符号は、DSV制御が行われていない。このような場合のDSV制御は、変調後の符号化列（チャネルビット列）において、所定の間隔でDSV計算を行い、所定のDSV制御ビットを符号化列（チャネルビット列）内に挿入することで実現される。
【００１６】
しかしながら、DSV制御ビットは冗長ビットであるから、符号変換の効率から考えれば、DSV制御ビットはなるべく少ない方が良く、また、挿入されるDSV制御ビットによって、最小ランｄおよび最大ランｋは、変化しない方が良い。これは、（ｄ，ｋ）が変化すると、記録再生特性に影響を及ぼしてしまうからである。
【００１７】
そこで本出願人は、例えば、先に出願した特願平１０−１５０２８０号において、(d,k)=(1,7)で、さらに高記録密度に対応した変調方式として、表２の1,7PP符号を提案している。
＜表２＞  1,7PP(1,7;2,3;4)
データ      符号
11          *0*
10          001
01          010
0011        010 100
0010        010 000
0001        000 100
000011      000 100 100
000010      000 100 000
000001      010 100 100
000000      010 100 000
"110111      001 000 000(next 010)
00001000    000 100 100 100
00000000    010 100 100 100
if xx1 then *0* = 000
xx0 then *0* = 101
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
Sync & Termination
#01 000 000 001  (12 channtl bits)
or
#01 001 000 000 001 000 000 001  (24 channel bits)
# = 0  not terminate case
# = 1  terminate case
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
Termination table
00    000
0000  010 100
"110111    001 000 000(next010):  
When next channel bits are '010', 
convert '11 01 11' to '001 000 000' after 
using main table and termination table.
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
【００１８】
表２の変換テーブルは、変換コードとして、それがないと変換処理ができない基礎コード（データ列（１１）から（００００００）までのコード）、それがなくても変換処理は可能であるが、それがあると、より効果的な変換処理が可能となる置き換えコード（データ列（１１０１１１），（００００１０００），（００００００００）のコード）、および、符号を任意の位置で終端させるための終端コード（データ列（００），（００００）のコード）を含んでいる。
【００１９】
また、表２は、最小ランｄ＝１、最大ランｋ＝７で、基礎コードの要素に不確定符号（＊を含む符号）を含んでいる。不確定符号は、直前および直後の符号語列の如何によらず、最小ランｄと最大ランｋを守るように、”０”か”１”に決定される。すなわち、表２において、変換する２ビットのデータ列が（１１）であったとき、その直前の符号語列によって、”０００”または”１０１”が選択され、そのいずれかに変換される。例えば、直前の符号語列の１チャネルビットが”１”である場合、最小ランｄを守るために、２ビットのデータ（１１）は、符号語”０００”に変換され、直前の符号語列の１チャネルビットが”０”である場合、最大ランｋが守られるように、符号語”１０１”に変換される。 
【００２０】
表２の変換テーブルの基礎コードは可変長構造を有している。すなわち、拘束長ｉ＝１における基礎コードは、必要数の４つ（2^m = 2^2 = 4）よりも少ない３つ（＊０＊，００１，０１０）で構成されている。その結果、データ列を変換する際に、拘束長ｉ＝１だけでは変換出来ないデータ列が存在することになる。結局、表２において、全てのデータ列を変換するには（変換テーブルとして成り立つためには）、拘束長ｉ＝３までの基礎コードを参照する必要がある。
【００２１】
また、表２の変換テーブルは、最小ランｄの連続を制限する置き換えコードを持っているため、データ列が（１１０１１１）である場合、さらに後ろに続く符号語列が参照され、それが”０１０”であるとき、このデータ列は符号語”００１ ０００ ０００”に置き換えられる。また、このデータ列は、後ろに続く符号語列が”０１０”以外である場合、２ビット単位（（１１），（０１），（１１））で符号語に変換されるので、符号語”＊０＊ ０１０ ＊０＊”に変換される。これによって、データを変換した符号語列は、最小ランの連続が制限され、最大でも６回までの最小ラン繰り返しとなる。
【００２２】
さらに表２の変換テーブルは、最大拘束長ｒ＝４である。拘束長ｉ＝４のコードは、最大ランｋ＝７を実現するための、置き換えコード（最大ラン補償コード）で構成されている。すなわち、データ（００００１０００）は、符号語”０００１００１００１００”に変換され、データ（００００００００）は、符号語”０１０１００１００１００”に変換されるようになされている。そして、この場合においても、最小ランｄ＝１は守られている。
【００２３】
ところで、表２の変換コードは、データ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一（対応するいずれの要素も、”１”の個数が奇数または偶数）となるような変換規則を持っている。例えば、変換コードのうちのデータ列の要素（０００００１）は、”０１０ １００ １００”の符号語列の要素に対応しているが、それぞれの要素の”１”の個数は、データ列では１個、対応する符号語列では３個であり、どちらも２で割ったときの余りが１（奇数）で一致している。同様に、変換コードのうちのデータ列の要素（００００００）は、”０１０ １００ ０００”の符号語列の要素に対応しているが、それぞれ”１”の個数は、データ列では０個、対応する符号語列では２個であり、どちらも２で割ったときの余りが０（偶数）で一致している。
【００２４】
次に、DSV制御を行う方法について述べる。表１のRLL(1,7)符号のような、変換テーブルにDSV制御が行われていない場合における、従来のDSV制御の方法の一例としては、データ列を変調した後、変調後のチャネルビット列に、所定の間隔で、DSV制御ビットを少なくとも（ｄ＋１）ビットだけ付加することで行われた。
【００２５】
表２のような変換テーブルにおいては、データ列と、変換される符号語列の関係を生かし、効率良くDSV制御を行うことができる。 即ち、変換テーブルが、データ列の要素内の”１”の個数と、変換される符号語列の要素内の”１”の個数を、２で割った時の余りが、どちらも１あるいは０で同一となるような変換規則を持っている時、上記のようにチャネルビット列内に、「反転」を表す”１”、あるいは「非反転」を表す”０”のDSV制御ビットを挿入することは、データビット列内に、「反転」するならば（１）の、「非反転」ならば（０）の、それぞれDSV制御ビットを挿入することと等価となる。 
【００２６】
例えば、表２において、データ変換する３ビットが（００１）と続いたときに、その後ろにおいてDSV制御ビットを挾むものとすると、データは、（００１−ｘ）（ｘは１ビットで、「０」又は「１」）となる。ここでｘに「０」を与えれば、表２の変換テーブルで、
データ列   符号語列
0010       010 000
の変換が行われ、また、「１」を与えれば、
データ列   符号語列
0011       010 100
の変換が行われる。符号語列をNRZI化して、レベル符号化したとき、これらは
データ列   符号語列   レベル符号列
0010       010 000    011111
0011       010 100    011000
となり、レベル符号列の最後の３ビットが相互に反転している。このことは、DSV制御ビットｘの（１）と（０）を選択することによって、データ列内においても、DSV制御が行えることを意味する。
【００２７】
DSV制御による冗長度を考えると、データ列内の１ビットでDSV制御を行うということは、チャネルビット列で表現すれば、表２の変換率(m/n=2/3)より、1.5チャネルビットでDSV制御を行っていることに相当する。一方、表１のようなRLL(1,7)テーブルにおいてDSV制御を行うためには、チャネルビット列においてDSV制御を行う必要があるが、この時、最小ランを守るためには、少なくとも２チャネルビットが必要であり、表２のDSV制御と比較すると、冗長度がより大きくなってしまう。換言すれば、表２のテーブル構造を持つ時、データ列内でDSV制御を行うことで、効率よくDSV制御を行うことができる。  
【００２８】
ところで一般的に、最大拘束長ｒが大きいほど、ビットシフト時の復調エラー（エッジビットの位置が１ビット分だけ、正規の位置よりも前方または後方にシフトすることによるエラー）の伝搬特性が悪くなる。
【００２９】
表１と表２を比較すると、表１のRLL(1,7)符号では最大拘束長ｒは２であるのに対して、表２の1,7PP符号では最大拘束長ｒは４と大きく、ビットシフトに対する復調エラー伝搬の最悪伝搬長は、表１では２バイトであるが、表２では３バイトである。1,7PP符号は、高記録密度に対応した(d,k)=(1,7)符号であり、コンパクトな構成であるが、それでもエラー伝搬特性については従来のRLL(1,7)符号より不利であった。
【先行技術文献】
【特許文献】
【００３０】
【特許文献１】特開平１１−３４６１５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００３１】
以上のように、RLL符号を高線密度にディスクに記録再生する場合、最小ランｄの連続したパターンがあると、長いエラーが発生し易かった。また、(1,7;2,3)符号においてDSV制御を行うには冗長ビットを挟む必要があったが、なるべくこの冗長ビットを少なくする必要性があった。このような状況を元に、上述したように最小ランｄ＝１であるRLL符号(d,k;m,n)=(1,7;2,3)において、最小ランの連続する回数を制限し、さらに最小ラン及び最大ランを守りながら、効率の良い制御ビットで、DSV制御を行うことができる1,7PP符号が開発されが、その1,7PP符号は簡単な構造の変換テーブルを持つにもかかわらず、従来RLL(1,7)符号よりも長いエラー伝搬特性を持っていた。
【００３２】
本発明はこのような状況に鑑みてなされたものであり、長いエラー伝搬を発生しやすい変換コードの発生回数を制限するテーブルを用い、さらに長いエラー伝搬を発生しやすいようなパターンの発生する回数を制限するテーブルを用いることにより、長いエラー伝搬を発生させないようにするものである。
【課題を解決するための手段】
【００３３】
本発明の一側面の変調装置は、２対３の比率で、ｍビットのデータ列を、ｎビットの符号語列に変換する変調装置において、入力データ列をｍビット毎のデータ列に区分する区分手段と、最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｍビットのデータ列をｎビットの符号語列に変換する際に、複数の前記符号語列において、最小ランｄが所定回数連続するとき、前記複数の符号語列のうち１の符号語列の直前の符号語列に応じた第２のテーブルに基づき、前記複数の前記符号語列を、最小ランｄが連続する回数を制限する制限コードに変換する変換手段とを備える。
【００３４】
前記第２のテーブルは、前記直前の符号語列のうちの最後のビットが、０もしくは１に応じたテーブルであるようにすることができる。
【００３５】
前記制限コードは、制限コード以外のコード、またはその一部の複数個の組み合わせにより生成されているようにすることができる。
【００３６】
本発明の一側面の変調方法は、２対３の比率で、ｍビットのデータ列を、ｎビットの符号語列に変換する変調装置の変調方法において、入力データ列をｍビット毎のデータ列に区分し、最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｍビットのデータ列をｎビットの符号語列に変換する際に、複数の前記符号語列において、最小ランｄが所定回数連続するとき、前記複数の符号語列のうち１の符号語列の直前の符号語列に応じた第２のテーブルに基づき、前記複数の符号語列を、最小ランｄが連続する回数を制限する制限コードに変換するステップを含む。
【００３７】
本発明の一側面の変調装置および方法においては、２対３の比率で、ｍビットのデータ列が、ｎビットの符号語列に変換され、入力データ列がｍビット毎のデータ列に区分され、最小ランｄを１以上として、第１のテーブルに基づき、区分されたｍビットのデータ列をｎビットの符号語列に変換する際に、複数の符号語列において、最小ランｄが所定回数連続するとき、複数の符号語列のうち１の符号語列の直前の符号語列に応じた第２のテーブルに基づき、複数の符号語列が、最小ランｄが連続する回数を制限する制限コードに変換される。
【００３８】
本発明の一側面の記録媒体は、２対３の比率で、ｍビットのデータ列を、ｎビットの符号語列に変換する変調方法により作成されたデータ列であって、入力データ列がｍビット毎のデータ列に区分され、最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｍビットのデータ列がｎビットの符号語列に変換される際に、複数の前記符号語列において、最小ランｄが所定回数連続するとき、前記複数の符号語列のうち１の符号語列の直前の符号語列に応じた第２のテーブルに基づき、前記複数の符号語列が、最小ランｄが連続する回数を制限する制限コードに変換されたデータ構造を有するデータ列を記録している。
【００３９】
本発明の一側面の記録媒体においては、２対３の比率で、ｍビットのデータ列を、ｎビットの符号語列に変換する変調方法により作成されたデータ列であって、入力データ列がｍビット毎のデータ列に区分され、最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｍビットのデータ列がｎビットの符号語列に変換される際に、複数の前記符号語列において、最小ランｄが所定回数連続するとき、前記複数の符号語列のうち１の符号語列の直前の符号語列に応じた第２のテーブルに基づき、前記複数の符号語列が、最小ランｄが連続する回数を制限する制限コードに変換されたデータ構造を有するデータ列が記録されている。
【００４０】
本発明の一側面の復調装置は、３対２の比率で、ｎビットの符号語列を、ｍビットのデータ列に変換する復調装置において、入力符号語列をｎビット毎の符号語列に区分する区分手段と、最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｎビットの符号語列をｍビットのデータ列に変換する際に、複数の前記データ列において、最小ランｄが所定回数連続するのを制限する制限コードを、前記複数のデータ列のうち１のデータ列の直前のデータ列に応じた第２のテーブルに基づき、前記複数の前記データ列に変換する変換手段とを備える。
【００４１】
本発明の一側面の復調方法は、３対２の比率で、ｎビットの符号語列を、ｍビットのデータ列に変換する復調装置の復調方法において、入力符号語列をｎビット毎の符号語列に区分し、最小ランｄを１以上として、第１のテーブルに基づき、前記区分されたｎビットの符号語列をｍビットのデータ列に変換する際に、複数の前記データ列において、最小ランｄが所定回数連続するのを制限する制限コードを、前記複数のデータ列のうち１のデータ列の直前のデータ列に応じた第２のテーブルに基づき、前記複数の前記データ列に変換するステップを含む。
【００４２】
本発明の一側面の復調装置および方法においては、３対２の比率で、ｎビットの符号語列が、ｍビットのデータ列に変換され、入力符号語列がｎビット毎の符号語列に区分され、最小ランｄを１以上として、第１のテーブルに基づき、区分されたｎビットの符号語列をｍビットのデータ列に変換する際に、複数のデータ列において、最小ランｄが所定回数連続するのを制限する制限コードが、複数のデータ列のうち１のデータ列の直前のデータ列に応じた第２のテーブルに基づき、複数のデータ列に変換される。
【発明の効果】
【００４３】
本発明によれば、高線密度でエラーの少ない符号語列を記録再生することが可能となる。
【図面の簡単な説明】
【００４４】
【図１】本発明を適用した変調装置の一実施の形態の構成を示すブロック図である。
【図２】変調装置の他の構成を示すブロック図である。
【図３】変調部の構成を示すブロック図である。
【図４】変調部の他の構成を示すブロック図である。
【図５】変調について説明する図である。
【図６】復調装置の構成を示すブロック図である。
【図７】復調部の構成を示すブロック図である。
【図８】復調について説明する図である。
【図９】DSV制御ビットの除去処理を説明するフローチャートである。
【図１０】変調装置の他の構成を示すブロック図である。
【図１１】変調装置のさらに他の構成を示すブロック図である。
【図１２】復調装置の他の構成を示すブロック図である。
【発明を実施するための形態】
【００４５】
本発明の実施の形態について説明するが、以下においては、説明の便宜上、変換される前のデータの「０」と「１」の並び（変換前のデータ列）を、（００００１１）のように、（  ）で区切って表し、変換された後の「０」と「１」の並び（符号語列）を、”０００１００１００”のように、”  ”で区切って表す。
【００４６】
以下の表は、本発明のデータを符号に変換する変換テーブルの例を表している。
＜表３＞  1,7PP-32 (plus pre0)
データ列      符号列
11            *0*
10            001
01            010
0011          010 100
0010          010 000
0001          000 100
000011        000 100 100
000010        000 100 000
000001        010 100 100
000000        010 100 000
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
#110111  (pre0)001 000 000(next010)
#00001000      000 100 100 100
#00000000      010 100 100 100
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
if xx1 then *0* = 000
xx0 then *0* = 101
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
*1. # "0"+110111 + 01/001/00000 → 001 000 000
# "0" + 110111  + "010" → 001 000 000
# "101-010-101" + "010" → 001 000 000
【００４７】
表３の変換テーブルは、1,7PP符号であり、さらに、表２と比較すると最小ランの連続を制限する変換コードの発生回数を抑制するように、直前及び直後の符号語列を参照することで、置き換え制限を行うものである。
【００４８】
表３は、最小ランｄ＝１、最大ランｋ＝７で、基礎コードの要素に不確定符号(＊を含む符号)を持つ。不確定符号は、直前および直後の符号語列の如何によらず、最小ランｄと最大ランｋを守るように、”０”か”１”に決定される。すなわち、表３において、変換する２ビットのデータ列が（１１）であったとき、その直前の符号語列によって、”０００”または”１０１”が選択され、そのどちらかに変換される。例えば、直前の符号語列の１チャネルビットが”１”である場合、最小ランｄを守るために、２ビットのデータ（１１）は、符号語”０００”に変換され、直前の符号語列の１チャネルビットが”０”である場合、最大ランｋが守られるように、符号語”１０１”に変換される。 
【００４９】
表３の変換テーブルは、可変長構造を有しており、その基礎コードはｉ＝１乃至３まで持つ。また、表３の変換テーブルは、最小ランｄの連続を制限する置き換えコードを持っているため、データ列が（１１０１１１）である場合、さらに直前と直後の符号語が参照される。直前の符号語が、”０”であり、かつ、後ろに続く符号語列が”０１０”であった時、このデータ列は、符号語”００１ ０００ ０００”に置き換えられる。またこのデータ列は、直前と直後の符号語列が上記で示した場合でないとき、２ビット単位（（１１），（０１），（１１））で符号語に変換され、符号語”＊０＊ ０１０ ＊０＊”に変換される。これにより、データを変換した符号語列は、最小ランの連続が制限され、最大でも６回までの最小ランの繰り返しとなる。 
【００５０】
表３の最小ランｄの連続を制限する置き換えコードは、直前の符号語列と、直後の符号語列の両方を参照して決定される。このうち、直前の符号語列は、変換の際に参照されなくても最小ランｄの連続は６回までに制限されるが、表３のようにされることにより、置き換えコードの発生回数を減らすことができる。
【００５１】
そして、表３に示した変換コードでは、最大拘束長ｒ＝４である。拘束長ｉ＝４のコードは、最大ランｋ＝７を実現するための置き換えコード（最大ラン補償コード）で構成されている。すなわち、データ（００００１０００）は符号語”０００１００１００１００”に変換され、データ（００００００００）は符号語”０１０１００１００１００”に変換される。なお、この場合にも最小ランｄ＝１は守られている。
【００５２】
また、表３の変換コードは、データ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一（対応するいずれの要素も、”１”の個数が奇数または偶数）となるような変換規則を持っている。例えば、変換コードのうちのデータ列の要素（０００００１）は、”０１０ １００ １００”の符号語列の要素に対応しているが、それぞれの要素の”１”の個数は、データ列では１個、対応する符号語列では３個であり、どちらも２で割ったときの余りが１（奇数）で一致している。同様にして、変換コードのうちのデータ列の要素（００００００）は、”０１０ １００ ０００”の符号語列の要素に対応しているが、それぞれ”１”の個数は、データ列では０個、対応する符号語列では２個であり、どちらも２で割ったときの余りが０（偶数）で一致している。
【００５３】
＜表４＞  1,7PP-32 (plus i=4)
データ列      符号列
11            *0*
10            001
01            010
0011          010 100
0010          010 000
0001          000 100
000011        000 100 100
000010        000 100 000
000001        010 100 100
000000        010 100 000
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
#110111        001 000 000(next010)
#00001000-x    000 100 100 100
#00000000-x    010 100 100 100
# x = 01, 001
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
if xx1 then *0* = 000
xx0 then *0* = 101
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
*1. # 110111 + 01/001/00000 →001 000 000
# 110111 + "010" → 001 000 000
# "*0*-010-101" + "010" → 001 000 000
*2. # 000010 + 0001/00001   → 000 100 100 100
# "000-100-000" + "000" → 000 100 100 100
# 000000 + 0001/00001   → 010 100 100 100
# "010-100-000" + "000" → 010 100 100 100
【００５４】
表４に示した変換テーブルは、1,7PP符号であり、さらに、表２と比較すると最大ランを補償する変換コードの発生回数を抑制するように、直後の符号語列（データ列）を参照することで、置き換え制限を行ている。
【００５５】
表４は、最小ランｄ＝１、最大ランｋ＝７で、基礎コードの要素に不確定符号（＊を含む符号）を持つ。また、表４の変換テーブルは可変長構造を有しているので、基礎コードはｉ＝１乃至３までを持つ。また、表４の変換テーブルは、最小ランｄの連続を制限する置き換えコードを持っているため、データ列が（１１０１１１）である場合、後ろに続く符号語列を参照し、それが”０１０”であった時、このデータ列は符号語”００１ ０００ ０００”に置き換えられる。またこのデータ列は、直後の符号語列が上記でない場合、２ビット単位（（１１），（０１），（１１））で符号語に変換されるので、符号語”＊０＊ ０１０ ＊０＊”に変換される。これによって、データを変換した符号語列は、最小ランの連続が制限され、最大でも６回までの最小ランの繰り返しとなる。    
【００５６】
そして、表４の変換テーブルにおいては、最大拘束長ｒ＝４である。拘束長ｉ＝４のコードは、最大ランｋ＝７を実現するための、置き換えコード（最大ラン補償コード）で構成されている。すなわち、データ（００００１０００）であったとき、さらに、後ろに続くデータ列を参照し、それが（０１）又は（００１）であった時、このデータ列は、符号語”０００１００１００１００”に変換される。またデータ（００００００００）は、さらに、後ろに続くデータ列が（０１）又は（００１）であった時、符号語”０１０１００１００１００”に変換される。なお、この場合にも、最小ランｄ＝１は守られている。 
【００５７】
このことを換言すると、拘束長ｉ＝４のコードは、最大ランｋ＝７を実現するための、置き換えコード（最大ラン補償コード）は、データの６ビットが（００００１０）であり、さらに、後ろに続く符号語列が、”０００”であった場合、このデータ列は、符号語”０００１００１００１００”に変換される。また、データの６ビットが（００００００）であり、さらに、後ろに続く符号語列が”０００”であった場合、符号語”０１０１００１００１００”に変換される。
【００５８】
表４の、最大ランｋ＝７を実現する置き換えコードは、データ列８ビットに加え、最大で３ビット多く見て、合計データ列１１ビットが参照されて決定される。変換の際に、データ列８ビットまで参照するだけでも、最大ランｋ＝７は実現するが、表４に示したようにすることにより、置き換えコードの発生回数を減らすことが可能となる。
【００５９】
また、表４の変換コードは、表３と同様に、データ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一となるような変換規則を持っている。
【００６０】
＜表５＞  1,7PP-32 (plus *0*)
データ列      符号列
11            *0*
10            001
01            010
0011          010 100
0010          010 000
0001          000 100
000011        000 100 100
000010        000 100 000
000001        010 100 100
000000        010 100 000
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
#110111        001 000 000(next010/*0*)
#00001000      000 100 100 100
#00000000      010 100 100 100
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
if xx1 then *0* = 000
xx0 then *0* = 101
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
*1. # 110111 + 01/001/00000 → 001 000 000
# 110111 + "010" → 001 000 000
# "*0*-010-101" + "010" → 001 000 000
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
*2. # 110111 + 11/not(110111-01/00/11) → 001 000 000
# 110111 + "*0*"   → 001 000 000
# "*0*-010-101" + "*0*"   → 001 000 000
【００６１】
表５の変換テーブルは、1,7PP符号でありさらに、表２と比較すると最小ランの最も繰り返される、６回連続の発生する回数を抑制するように、２種類の直後の符号語列を参照することで、置き換え制限が行われている。
【００６２】
表５は、最小ランｄ＝１、最大ランｋ＝７で、基礎コードの要素に不確定符号(＊を含む符号)をもち、可変長構造を有しているので、基礎コードはｉ＝１乃至３までを持つ。また、表５の変換テーブルは、表３や表４と同様に、最小ランｄの連続を制限する置き換えコードを持っているため、データ列が（１１０１１１）である場合、後ろに続く符号語列を参照し、それが”０１０”又は”＊０＊”であった時、このデータ列は符号語”００１ ０００ ０００”に置き換えられる。また、このデータ列は、上の２つの条件以外である場合、２ビット単位（（１１），（０１），（１１））で符号語に変換されるので、符号語”＊０＊ ０１０ ＊０＊”に変換される。これによって、データを変換した符号語列は、最小ランの連続が制限され、最大でも６回までの最小ランの繰り返しとなる。
【００６３】
表５の最小ランｄの連続を制限する置き換えコードは、２種類の直後の符号語列を参照して決定される。参照される２つの直後の符号語列のうち、片方は、変換の際に参照しなくても最小ランｄの連続は６回までに制限されるが、表５のような変換テーブルとすることにより、最小ランの６回連続する発生回数を減らすことが可能となる。  
【００６４】
そして、表５の変化コードは、表３や表４と同様に、最大拘束長ｒ＝４である。拘束長ｉ＝４のコードは、最大ランｋ＝７を実現するための置き換えコード（最大ラン補償コード）で構成されている。また、表５の変換コードは、表３や表４と同様にデータ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一となるような変換規則を持っている。
【００６５】
一般的に、最大拘束長ｒが大きいほど、ビットシフト（再生時にエッジビットの位置が１ビット分だけ、正規の位置よりも前方または後方にシフトする）時の復調エラーの伝搬特性が悪くなる。これにより、拘束長の大きいデータ変換の部分が、長い復調エラー伝搬を発生させている場合が考えられる。すなわち、拘束長の大きい変換の発生回数を少なくすることは、エラーの伝搬特性が向上することになる。従って、表２にある1,7PP符号は、表３や表４にあるような構造とすることにより、エラー伝搬特性の向上が可能となる。また表５のように、最小ランの最も多く連続する、６回の発生回数を減らすことによっても、長いエラー伝搬を減らすことになり、もって、エラー伝搬特性の向上が可能となる。
【００６６】
表３乃至表５はそれぞれ独立であるから、これらを複合させたテーブルを構成させることが出来る。例えば、以下に示す表６は、表３と表４を組み合わせたものであり、拘束長の大きい変換である置き換えコードの発生回数を、さらに減らすことが出来るような変換コードを２つ持ったテーブルである。  
【００６７】
＜表６＞  1,7PP-32 (plus i=4, pre0)
データ列      符号列
11            *0*
10            001
01            010
0011          010 100
0010          010 000
0001          000 100
000011        000 100 100
000010        000 100 000
000001        010 100 100
000000        010 100 000
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
#110111  (pre0)001 000 000(next010)
#00001000-x    000 100 100 100
#00000000-x    010 100 100 100
# x = 01, 001
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
if xx1 then *0* = 000
xx0 then *0* = 101
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
*1. # "0"+110111 + 01/001/00000 → 001 000 000
# "0" + 110111  + "010" → 001 000 000
# "101-010-101" + "010" → 001 000 000
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
*2. # 000010 + 0001/00001   → 000 100 100 100
# "000-100-000" + "000" → 000 100 100 100
# 000000 + 0001/00001   → 010 100 100 100
# "010-100-000" + "000" → 010 100 100 100
【００６８】
ところで、上記表３乃至表６の変換テーブルによって発生された符号語列（チャネルビット列）中の、任意の位置に同期信号を挿入する場合、この変換テーブルは可変長構造を有しているため、任意の位置で符号を終端させるために終端用テーブルが規定され、必要に応じて用いられるようになされている。
【００６９】
以下の表７は、本発明の表３乃至表６における、同期信号及び終端テーブルの一例を示している。
＜表７＞   Sync & Termination for 表３乃至表６
#01 000 000 001  (12 channtl bits)
# = 0  not terminate case
# = 1  terminate case
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
Termination table
00    000
0000  010 100
【００７０】
例えば、任意の位置で同期信号を挿入する際、まず直前と直後の符号語列との接続において、最小ランｄ及び最大ランｋが守られるように接続ビットが設定され、接続ビットの間に同期信号用のユニークなパターンが設定される。同期信号パターンとして、最大ランｋ＝７を破るパターンを与えたとすると、例えば、 ”＃０１ ０００ ０００ ００１”となる。この同期信号パターンの先頭の”＃”は接続用ビットで、”０”か”１”のどちらかに設定される。”＃”の次の第２チャネルビット目は、最小ランを守るために”０”に設定される。第３チャネルビット目から、同期信号パターンとして、ｋ＝８となる９Ｔのユニークなパターンが与えられる。すなわち、”１”と”１”の間に、”０”が８個連続して並ぶ。
【００７１】
そして表３乃至表６に適用できる終端用テーブルは、表２と同様に実現出来き、その終端用テーブルは表７のように、
00    000
0000  010 100
となる。終端用テーブルが必要になるのは、データ列と符号語列の対の数が４つ（2^m = 2^2 = 4）よりも少ない拘束長ｉの基礎コードに対してである。
【００７２】
この終端用テーブルにより、データ（００）は符号”０００”に変換され、データ（００００）は符号”０１０１００”に変換される。これにより、同期信号を挿入する際、その直前のデータを符号に変換することができなくなる（同期信号の直前までの符号を終端させることができなくなる）ことを防ぐことが可能となる。
【００７３】
同期信号パターンの接続用ビット”＃”は、終端用のテーブルを用いる場合と、用いない場合とを区別するためのものである。すなわち、同期信号として与えられた、先頭の第１チャネルビット目の”＃”は、終端コードを用いたときは「１」とされ、そうでないときは「０」とされる。このようにすることにより、テーブルの違い（終端コードを用いたか否か）を、間違いなく識別することができる。
【００７４】
以上のように終端用テーブルを与えれば、同期信号パターンと合わせ、任意の位置で同期信号を挿入した際も、終端させることができる。
【００７５】
図１は、上述した変換テーブルを用いて変調処理を行う変調装置の構成を示すブロック図である。ここでは、データ列が表６に従って、可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）＝（１，７；２，３；４）に変換される場合を例に挙げて説明する。
【００７６】
変調装置１に入力されたデータ列は、DSV制御ビットである「１」あるいは「０」を決定し、任意の間隔で挿入するDSV制御ビット決定・挿入部１１に入力される。ＤＳＶビット決定・挿入部１１から出力されたデータは、変調部１２に入力され、変調処理が施されて、NRZI化部１３に出力される。NRZI化部１３は、入力されたデータを、記録符号列に変換する。タイミング管理部１４は、タイミング信号を生成し、各部に供給してタイミングを管理する。
【００７７】
図２は、変調装置１の他の構成例を示すブロック図である。変調装置１に入力されたデータ列は、DSV制御ビットである「１」あるいは「０」を、所定の位置に挿入するコントロールビット挿入部２１に入力される。コントロールビット挿入部２１から出力されたデータは、変調部１２に入力され、変調処理が施されて、NRZI化してレベル符号化する、NRZI化部１３に出力される。NRZI化部１３から出力されたデータは、入力された２通りのレベル符号列から、DSV制御された方を選択してこれを記録符号列とする、DSVビット決定部２２に入力される。また、タイミング管理部１４は、タイミング信号を生成し、各部に供給してタイミングを管理する。
【００７８】
図３は、変調部１２の構成例を示すブロック図である。シフトレジスタ３１は、データを２ビットずつシフトさせながら、拘束長判定部３２、置き換え制限を含む最小ラン連続制限コード検出部３３、置き換え制限を含むラン長制限補償コード検出部３４、および変換部３５−１乃至３５−４に出力するようになされている。このときシフトレジスタ３１は、各部が、その処理を行うのに必要なビット数を各部に供給する。
【００７９】
拘束長判定部３２は、データの拘束長ｉを判定し、マルチプレクサ３６に出力するようになされている。置き換え制限を含む最小ラン連続制限コード検出部３３は、最小ランの連続を制限する専用のコードを検出したとき、その拘束長を表す検出信号を拘束長判定部３２に出力する。また、置き換え制限を含むラン長制限補償コード検出部３４は、表６で示した最大ランを補償する専用のコードを検出したとき、その拘束長を表す検出信号を拘束長判定部３２に出力する。  
【００８０】
置き換え制限を含む最小ラン連続制限コード検出部３３により専用のコードが検出されたとき、あるいは置き換え制限を含むラン長制限補償コード検出部３４により専用のコードが検出されたとき、拘束長判定部３２は、対応する拘束長をマルチプレクサ３６に出力する。このとき、拘束長判定部３２は、別の拘束長を判定している場合があるが、置き換え制限を含む最小ラン連続制限コード検出部３３、または置き換え制限を含むラン長制限補償コード検出部３４からの専用コードによる検出出力があれば、拘束長判定部３２は、そちらの出力を優先させて拘束長を決定する。換言すれば、拘束長判定部３２は、より大きい拘束長を選択する。
【００８１】
変換部３５−１乃至３５−４は、内蔵されている変換テーブルを参照し、供給されたデータに対応する変換コードが登録されているか否かを判断し、登録されている場合は、そのデータを対応する符号語に変換した後、変換後の符号語をマルチプレクサ３６に出力するようになされている。また、対応するデータが変換テーブルに変換コードとして登録されていない場合、変換部３５−１乃至３５−４は、入力されたデータを破棄するようになされている。 
【００８２】
マルチプレクサ３６は、拘束長判定部３２より供給される拘束長ｉに対応する変換部３５−ｉ（ｉ＝１乃至４）が変換した符号を選択し、その符号を、シリアルデータとして、バッファ３７を介して出力するようになされている。
【００８３】
また各部の動作のタイミングは、タイミング管理部１４から供給されるタイミング信号に同期して管理されている。
【００８４】
次に、変調部１２の動作について説明する。シフトレジスタ３１より、拘束長判定部３２、置き換え制限を含む最小ラン連続制限コード検出部３３、置き換え制限を含むラン長制限補償コード検出部３４、および各変換部３５−１乃至３５−４に、変調部１２に入力されたデータが３ビット単位で、それぞれの部が判定等に必要なビット数だけ供給される。
【００８５】
拘束長判定部３２は、例えば表６に示す変換テーブルの基礎コード部分を内蔵しており、この変換テーブルを参照して、データの拘束長ｉを判定し、判定結果（拘束長ｉ）をマルチプレクサ３６に出力する。
【００８６】
置き換え制限を含む最小ラン連続制限コード検出部３３は、表６に示す変換テーブルのうちの、最小ランの連続を制限する置き換えコード（表６の場合、データ（１１０１１１）と、直前の符号語”０”及び後ろに続く符号語”０１０”を参照して、変換する部分）を内蔵しており、この変換テーブルを参照して、最小ランの連続を制限するコードを検出したとき、拘束長ｉ＝３の検出信号を拘束長判定部３２に出力する。
【００８７】
また、置き換え制限を含むラン長制限補償コード検出部３４は、表６に示す変換テーブル中の、最大ランを守る置き換えコード（表６の場合、データ（００００１０００−ｘ）および（００００００００−ｘ）、ｘ：（０１）又は（００１））を内蔵しており、この変換テーブルを参照して、最大ランを守る置き換えコードを検出したとき、拘束長ｉ＝４の検出信号を拘束長判定部３２に出力する。
【００８８】
拘束長判定部３２は、置き換え制限を含む最小ラン連続制限コード検出部３３から拘束長ｉ＝３の検出信号が入力された場合、その時、別の拘束長を判定していたとしても、その拘束長を選択せず、置き換え制限を含む最小ラン連続制限コード検出部３３の検出に対応する拘束長ｉ（表６の例の場合ｉ＝３）を選択し、マルチプレクサ３６に出力する。同様に拘束長判定部３２は、置き換え制限を含むラン長制限補償コード検出部３４から拘束長ｉ＝４の検出信号が入力された場合、その時、別の拘束長を判定していたとしても、その拘束長を選択せず、置き換え制限を含むラン長制限補償コード検出部３４の検出に対応する拘束長ｉ（表６の例の場合ｉ＝４）を選択し、マルチプレクサ３６に出力する。  
【００８９】
このようにすることは、結局、置き換え制限を含む最小ラン連続制限コード検出部３３、または置き換え制限を含むラン長制限補償コード検出部３４における拘束長の判定結果と、拘束長判定部３２における拘束長の判定結果が、それぞれ異なった場合には、大きい方の拘束長を最終的な拘束長として選択すればよいことを意味している。
【００９０】
図４は、変調部１２の他の構成例を示すブロック図である。シフトレジスタ３１は、データを２ビットずつシフトさせながら、拘束長判定部３２、最小ラン・最大ラン補償コード検出部４１、最小ラン連続制限コード検出部４２、直前・直後ビット参照部４３、および、変換部３５−１乃至３５−４に出力するようになされている。このときシフトレジスタ３１は、各部が、その処理を行うのに必要なビット数を供給する。
【００９１】
最小ラン連続制限コード検出部４２、最小ラン・最大ラン補償コード検出部４１は、置き換え制限の付加されていない第１と第２の置き換えコード検出をする。そして、直前・直後ビット参照部４３は、表６で示した置き換え制限を付加する規則を与えており、直前・直後ビット参照部４３から出力され、拘束長判定部３２へ入力された信号は、図３で示した拘束長判定部３２への信号と、同様の信号である。他の部分は、図３と同様なので、その説明は省略する。
【００９２】
次に、図５を参照し、図３に示した拘束長判定部３２、置き換え制限を含む最小ラン連続制限コード検出部３３、及び置き換え制限を含むラン長制限補償コード検出部３４の動作を、具体例を上げて説明する。
【００９３】
置き換え制限を含むラン長制限補償コード検出部３４は、表６に示す変換テーブルの、（００００１０００−ｘ）および（００００００００−ｘ）の変換部分を持ち、入力された８ビットのデータが、これと一致した場合、さらに、次のデータを参照して、続くデータが（０１）又は（００１）であったとき、拘束長ｉ＝４の検出信号を拘束長判定部３２に出力する。換言すると、入力された６ビットのデータが（００００１０）と（００００００）に一致した場合、その直後に続く符号語列が”０００”であったときに、拘束長ｉ＝４の検出信号を拘束長判定部３２に出力することになる。
【００９４】
置き換え制限を含む最小ラン連続制限コード検出部３３は、表６に示す変換テーブルの、データ（１１０１１１）と直前の符号”０”と直後の符号”０１０”の変換部分を持ち、入力された６ビットのデータが、（１１０１１１）であり、その直前の符号語が”０”であり、かつ、直後の３符号語が、”０１０”である場合、拘束長ｉ＝３の検出信号を拘束長判定部３２に出力する。そして、３符号語”０１０”の部分を、データ変換前のデータ列で表せば、（０１），（００１）、又は（０００００）となる。従って、置き換え制限を含む最小ラン連続制限コード検出部３３は、直前符号”０”＋（１１０１１１）＋（０１／００１／０００００）の変換部分を持ち、入力された６ビットのデータに加えて、直前の１符号の他に、直後の５ビットのデータまでを、さらに参照し、それらが、これらのいずれかと一致する場合、拘束長ｉ＝３の検出信号を拘束長判定部３２に出力する。
【００９５】
また拘束長判定部３２は、表６に示すテーブルの基礎コード部分を内蔵しており、入力された６ビットのデータが、（００００１１），（００００１０），（０００００１），あるいは（００００００）のいずれかに一致する場合、拘束長ｉ＝３と判定する。また、入力された４ビットのデータが（００１１），（００１０），（０００１）のいずれかに一致する場合、拘束長判定部３２は、拘束長ｉ＝２と判定する。さらに、入力された２ビットのデータが（１１），（１０），（０１）のいずれかに一致する場合、拘束長判定部３２は、拘束長ｉ＝１と判定する。
【００９６】
ところで、入力されたデータが、例えば（００００１０）であったとき、拘束長判定部３２は、拘束長ｉ＝３と判定する。しかしながら、上記の６ビットに加え、さらに続くデータが、（０００１）又は（００００１）であったとき、置き換え制限を含むラン長制限補償コード検出部３４により、拘束長ｉ＝４と判定される。このような場合、置き換え制限を含むラン長制限補償コード検出部３４からの出力信号が優先され、拘束長ｉ＝４と決定される。
【００９７】
このようにして、表６のテーブルに従って、最大拘束長である８ビットと、必要な場合は、直前あるいは直後の符号語列が参照されて、全ての（１）と（０）からなるデータ列より拘束長が決定される。
【００９８】
拘束長判定部３２は、このようにして判定した拘束長ｉを、マルチプレクサ３６に出力する。
【００９９】
なお、拘束長判定部３２は、図５に示す順序とは逆に、拘束長の小さい方から、ｉ＝１、ｉ＝２、ｉ＝３、ｉ＝４の順番で拘束長を判定するようにしてもよい。
【０１００】
変換部３５−１乃至３５−４は、それぞれ、各拘束長ｉに対応するテーブル（変換部３５−１は、ｉ＝１のテーブル、変換部３５−２は、ｉ＝２のテーブル、変換部３５−３は、ｉ＝３のテーブル、変換部３５−４は、ｉ＝４のテーブル）を有しており、供給されたデータに対応する変換則が、そのテーブルに登録されている場合、その変換則を利用して、供給された２×ｉビットのデータを３×ｉビットの符号に変換し、その符号をマルチプレクサ３６に出力する。
【０１０１】
マルチプレクサ３６は、拘束長判定部３３より供給された拘束長ｉに対応する変換部３５−ｉより符号を選択し、その符号をシリアルデータとして、バッファ３７を介して出力する。
【０１０２】
ここで例えば、表６において、拘束長ｉ＝３の最小ランの繰り返しを制限する置き換えコード（１１ ０１ １１）が存在しないと仮定する。このときデータとして、（０１ １１ ０１ １１ ０１ １１ ０１ １１ ０１）が入力されると、その変換処理は、データ（０１）（１１）（０１）（１１）（０１）…の順に行われ、”０１０ １０１ ０１０ １０１ ０１０ １０１ ０１０ １０１ ０１０ ”という符号語列（チャネルビット列）が生成される。
【０１０３】
このようにして生成された符号を、例えばNRZI化して、レベル符号に変換すると、符号語列の”１”において、その論理が反転するので、「０１１ ００１ １００ １１０ ０１１ ００１ １００…」となり、２Ｔの最小反転間隔がずっと連続することになる。このような記録符号列は、高線密度での記録再生時には、エラーが発生し易いパターンである。
【０１０４】
そこで表６に示すように、最小ランの繰り返しを制限する置き換えコードを、（１１ ０１ １１）と規定すると、（０１ １１ ０１ １１ ０１ １１ ０１ １１ ０１）というデータ列のうち、最初のデータ（０１）＋（１１ ０１ １１）＋（０１）が、「”０”＋（１１ ０１ １１）＋”０１０”」に該当し、置き換え変換され、（１１ ０１ １１）は、”００１ ０００ ０００ ”となる。さらに、次のデータ（１１ ０１ １１）＋（０１）と直前の符号語列”０”より、「”０”＋（１１ ０１ １１）＋”０１０”」に該当し、置き換え変換され、（１１ ０１ １１）は、”００１ ０００ ０００ ”となる。結局、符号語列は、”０１０ ００１ ０００ ０００ ０１０ ００１ ０００ ０００ ０１０ ...”となり、最小ランの繰り返しが連続されるのが防止される。従って、高線密度での記録再生時に、エラーが発生し易いパターンが取り除かれることになり、かつ上述した置き換え変換をした場合でも、最小ランおよび最大ランは守られることになる。
【０１０５】
上述した説明においては、変調部１２で表６を用いた場合について説明したが、表３乃至表５を用いて行うことも可能である。このような場合、図３で示した変調部１２内の、置き換え制限を含む最小ラン連続制限コード検出部３３と、置き換え制限を含むラン長制限補償コード検出部３４の詳細を、それぞれ表３乃至表５のいずれかに対応させればよい。
【０１０６】
ところで、表３乃至表６におけるデータ列と符号語列の各拘束長内では、配列の順序は異なってもよい。例えば、表６の拘束長ｉ＝１部分の、
データ            符号  
ｉ＝１  １１            ＊０＊
１０            ００１
０１            ０１０
は、次のような配列となっても良い。
データ             符号  
ｉ＝１  １１            ＊０＊
１０            ０１０
０１            ００１
この場合でも、データ列の要素の「１」の個数と、符号語列の要素の「１」の個数は、それぞれ２で割った時の余りが、どちらも１あるいは０で一致するようにする。
【０１０７】
この他にも、表３乃至表６の、データ列の各要素の（１）と（０）を反転させても良い。すなわち、
データ列      符号列
11            *0*
10            001
01            010
0011          010 100
0010          010 000
0001          000 100
が、次のようになっても良く、この場合でも、データ列の要素の「１」の個数と、符号語列の要素の「１」の個数は、それぞれ２で割った時の余りが、どちらも１あるいは０で一致している。
データ列      符号列
00            *0*
01            001
10            010
1100          010 100
1101          010 000
1110          000 100
【０１０８】
図６は、上述した処理により変調されたデータを復調する復調装置５１の構成を示すブロック図である。復調装置５１は、可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）＝（１，７；２，３；４）を、表６の逆変換テーブルを用いてデータ列に復調する。 
【０１０９】
復調装置５１は、伝送路より伝送されてきた信号、または、記録媒体より再生された信号は、コンパレートし、逆ＮＲＺＩ化して記録符号列から符号語列に変換する、コンパレート・逆ＮＲＺＩ化部５２に入力される。コンパレート・逆NRZI化部５２から出力された信号は、復調テーブル（逆変換テーブル）に基づいて復調する復調部５３に入力される。復調部５３により復調されたデータ列は、任意の間隔で挿入されているデータ列内のDSV制御ビットを除去し、元のデータ列を復元するDSV制御ビット除去部５４に入力される。DSV制御ビット除去部５４から出力されたデータ列は、バッファ４４に入力され、そのシリアルデータを一旦記憶し、所定の転送レートで読み出し、出力する。タイミング管理部５６は、タイミング信号を生成し、 各部に供給してタイミングを管理する。
【０１１０】
図７は、復調部５３の構成例を示すブロック図である。拘束長判定部６１は、コンパレート・逆ＮＲＺＩ化部５２により、デジタル化された信号の入力を受け、拘束長ｉを判定する。また最小ラン連続制限コード検出部６２は、デジタル化された信号から、最小ランの連続を制限するために与えられた専用のコードを検出し、それに対応する検出信号を拘束長判定部６１に送る。さらに、ラン長制限補償コード検出部６３は、入力された信号から、最大ランを補償するために与えられた専用のコードを検出し、それに対応する検出信号を拘束長判定部６１に送る。
【０１１１】
逆変換部６４−１乃至６４−４は、ｎ×ｉビットの可変長符号を、ｍ×ｉビットのデータに逆変換するテーブルを有している。マルチプレクサ６５は、逆変換部６４−１乃至６４−４からの出力のいずれかを、拘束長判定部６１の判定結果に対応して選択し、シリアルデータとして出力する。
【０１１２】
次に図７に示した復調部５３の動作について説明する。伝送路より伝送されてきた信号、あるいは記録媒体より再生された信号は、コンパレート・逆ＮＲＺＩ化部５２に入力され、コンパレートされる。さらに、逆NRZI符号（”１”がエッジを示す符号）のデジタル信号とされて、拘束長判定部６１に入力され、表６に示す変換テーブル（逆変換テーブル）の基礎コード部分に従って、拘束長の判定処理が行われる。拘束長判定部６１の判定結果（拘束長）はマルチプレクサ６５に出力される。
【０１１３】
復調部５３に入力されたデジタル信号は、最小ラン連続制限コード検出部６２にも入力される。最小ラン連続制限コード検出部６２は、表６に示す、変換テーブルのうちの、最小ランの連続を制限する置き換えコード（表６の場合、符号語”００１ ０００ ０００”を変換する部分）を内蔵しており、この逆変換テーブルを参照して、最小ランの連続を制限するコード”００１ ０００ ０００  not１００”を検出したとき、拘束長ｉ＝３の検出信号を拘束長判定部６１に出力する。ここで”not１００”とは、”１００”以外の符号語を意味する。
【０１１４】
さらに、入力されたデジタル信号は、ラン長制限補償コード検出部６３にも入力される。ラン長制限補償コード検出部６３は、表６に示す変換テーブルの中の、最大ランを守る置き換えコード（表６の場合、符号語列”０００ １００ １００ １００”及び”０１０ １００ １００ １００”）を内蔵しており、この逆変換テーブルを参照して、最大ランを守る置き換えコードを検出したとき、拘束長ｉ＝４の検出信号を拘束長判定部６１に出力する。
【０１１５】
図８は、拘束長判定部６１、最小ラン連続制限コード検出部６２、およびラン長制限補償コード検出部６３の判定処理について説明する図である。すなわち、ラン長制限補償コード検出部６３は、表６に示すテーブルの、”０００ １００ １００ １００”あるいは”０１０ １００ １００ １００”の逆変換部分を持ち、入力された１２ビットの符号語列が、これと一致する場合、拘束長ｉ＝４の検出信号を拘束長判定部６１に出力する。 
【０１１６】
最小ラン連続制限コード検出部６２は、表６に示すテーブルの”００１ ０００ ０００”の逆変換部分を持ち、入力された１２ビットの符号語列が、”００１  ０００  ０００  not１００”と一致する場合、拘束長ｉ＝３の検出信号を拘束長判定部６１に出力する。
【０１１７】
また拘束長判定部６１は、表６に示す逆変換テーブルを内蔵しており、入力された９ビット又は１２ビットの符号語列が、”０００ １００ １００”，”０００ １００ ０００  not１００”，”０１０ １００ １００”，あるいは”０１０ １００ ０００  not１００”のいずれかに一致する場合、拘束長ｉ＝３と判定する。これに当てはまらない場合、入力された６ビット又は９ビットの符号語列が、”０１０ １００”，”０１０ ０００  not１００”，あるいは”０００ １００”のいずれかに一致する場合、拘束長ｉ＝２と判定する。さらに、これに当てはまらない場合、入力された３ビットの符号語列が、”０００”，”１０１”，”００１”，あるいは”０１０”のいずれかに一致するときに、拘束長判定部６１は、拘束長ｉ＝１と判定する。 
【０１１８】
なお、拘束長判定部６１、最小ラン連続制限コード検出部６２、及びラン長制限補償コード検出部６３の拘束長判定の処理は、拘束長の小さい方から、ｉ＝１，ｉ＝２，ｉ＝３，ｉ＝４の順番で行うようにしてもよい。
【０１１９】
拘束長を、その小さい方から、ｉ＝１，ｉ＝２，ｉ＝３，ｉ＝４の順番で判定する場合に、入力された符号語列が例えば、”０００ １００ １００ １００”であるとき、拘束長判定部６１において、拘束長の小さいほうから順に、一致または不一致を判定していくと、拘束長ｉ＝１、拘束長ｉ＝２、拘束長ｉ＝３、または拘束長ｉ＝４と、全ての拘束長ｉにあてはまることになる。このような場合、それぞれ判定された拘束長ｉから最大のものを選択し、決定するようにすればよい。
【０１２０】
逆変換部６４−１乃至６４−４のうち、例えば、逆変換部６４−１には、アドレス”１０１”および”０００”にデータ（１１）が、アドレス”００１”にデータ（１０）が、そしてアドレス”０１０”にデータ（０１）が、それぞれ書き込まれている。以下、逆変換部６４−２乃至６４−４の各逆変換テーブルも、同様に、それぞれ対応するデータが書き込まれており、供給された３×ｉビットの符号語列を、２×ｉビットのデータ列に変換し、そのデータ語をマルチプレクサ６５に出力する。
【０１２１】
マルチプレクサ６５は、逆変換部６４−１乃至６４−４より供給されたデータのいずれかを、拘束長判定部６１の拘束長判定結果に対応して選択し、シリアルデータとして出力する。 
【０１２２】
表６の逆変換テーブルを示すと、次の表８のようになる。
＜表８＞ 逆変換テーブル（１，７；２，３；４）
符号語列              復調データ列
i=4 : limits k to 7
000 100 100 100       00001000
010 100 100 100       00000000
i=3 : Prohibit Repeated Minimum Transition Runlength
001 000 000(not 100)  110111
＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿
i=3 000 100 100           000011
000 100 000(not 100)  000010
010 100 100           000001
010 100 000(not 100)  000000
i=2 010 100               0011
010 000(not 100)      0010
000 100               0001
i=1 101                   11
000                   11
001                   10
010                   01
【０１２３】
次に、図９のフローチャートを参照して、DSV制御ビット除去部５４の動作について説明する。DSV制御ビット除去部５４は、内部にカウンタを有しており、ステップＳ１において、復調部５３よりデータ列のビットが入力されると、その数をカウントする。ステップＳ２において、カウント値がDSV制御ビットを挿入する所定のデータ間隔に達したか否かが判定され、任意のデータ間隔ではないと判定された場合、ステップＳ３に進み、復調部５３より入力されたデータが、そのままバッファ５５に出力される。これに対して、ステップＳ２において、所定のデータ間隔であると判定された場合、そのビットはDSV制御ビットであるから、ステップＳ３の処理はスキップされ、ステップＳ４に進む。すなわち、このような場合には、そのビットはバッファ５５に出力されず、廃棄される。
【０１２４】
次に、ステップＳ４において、次のデータを入力する処理が実行される。そして、ステップＳ５において、全てのデータに対する処理が終了したか否かが判定され、まだ処理していないデータが存在する場合には、ステップＳ１に戻り、それ以降の処理が繰り返し実行される。ステップＳ５において、全てのデータが処理されたと判定された場合、このフローチャートの処理は終了される。
【０１２５】
以上のようにして、DSV制御ビット除去部５４より出力されるデータは、DSV制御ビットが除去されたデータである。このデータは、バッファ５５を介して出力される。
【０１２６】
ところで、データ変調時に同期信号（Ｓｙｎｃ）を挿入する場合の変調装置の構成例を図１０と図１１に、復調装置の構成例を図１２に、それぞれ示す。これらの実施の形態においても、データ列が表６に従って、可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）＝（１，７；２，３；４）に変調され、また復調されるものとする。 
【０１２７】
所定の間隔で同期信号を挿入する変調装置７１においては、図１０に示すように、DSV制御ビット決定・挿入部７２の出力は、変調部７３とSYNC決定部７４に供給される。SYNC決定部７４には、変調部７３からの出力も供給される。SYNC決定部７４は、これらの入力された信号から同期信号を決定し、その出力をSYNC挿入部７５に出力している。SYNC挿入部７５は、変調部７３より入力される変調信号に、SYNC決定部７４より入力される同期信号を挿入し、NRZI化部７６に出力している。その他の構成は、図１に示した変調装置１と同様であるので、その説明は省略する。
【０１２８】
SYNC決定部７４は、同期信号パターンを１２符号語とするとき、同期信号を、”＃０１ ０００ ０００ ００１”と決定する。”＃”は、同期信号の挿入により区切られた、直前のデータ列（DSV制御ビットは含んで良い）に依存しており、区切られたデータ列を変換テーブルに従って変調した際に、終端テーブルを用いて終端させた場合、”＃”＝”１”とされ、また終端テーブルを用いずに、表２のテーブルにより終端した場合、”＃”＝”０”とされる。
【０１２９】
変調部７３は、終端テーブルを用いた場合、”＃”＝”１”を、用いない場合、”＃”＝”０”を、SYNC決定部７４に出力する。SYNC決定部７４は、変調部７３から、”＃”の値の入力を受けると、これを同期信号の先頭ビットに挿入する。そして、その同期信号をSYNC挿入部７５に出力する。 
【０１３０】
SYNC挿入部７５は、SYNC決定部７４から出力された同期信号を、変調部７３からの出力に挿入し、NRZI化部７６に出力する。その他の動作は、図１に示した変調装置１と同様である。 
【０１３１】
同期信号が挿入された後の最初のデータは、その先頭から（同期信号の直前のデータを考慮することなく）変換処理される。変調部７３とSYNC決定部７４は、同期信号が挿入される所定の間隔をカウントするためのカウンタを備え、そのカウント値に対応して、同期信号の位置を決定する。 
【０１３２】
図１１は、他の変調装置７１の構成を示すブロック図である。変調装置７１に入力された信号は、DSV制御ビットである「１」あるいは「０」をデータ列の所定の位置に挿入するコントロールビット挿入部８１に入力され、さらに２通りのデータ列を変調する変調部７３に入力される。変調部７３からの出力は、所定の間隔で同期信号を挿入する同期信号挿入部７５に入力され、さらに、NRZI化してレベル符号化する、NRZI化部７６に入力される。そして、NRZI化部７６から出力された信号は、２通りのレベル符号列から、DSV制御された方を選択してこれを記録符号列とする、DSVビット・SYNC決定部８２に入力される。また、変調装置７１は、タイミング信号を生成し、各部に供給してタイミングを管理するタイミング管理部７７を備える。 
【０１３３】
そして、図１０または図１１に示した変調装置７１の変調部７３は、例えば、表６によるデータ変換の詳細を示した、図３または図４で示した変調部１２と同様の構成で実現することが可能である。
【０１３４】
図１２は、図１０または図１１の変調装置７１により変調され、出力された符号を復調する復調装置の構成例を示すブロック図である。所定の伝送経路を介して、復調装置９１に入力された符号は、コンパレート・逆ＮＲＺＩ化部９２に入力され、符号語列にされる。コンパレート・逆NRZI化部９２から出力された符号語列は、復調部９３とSYNC識別部９４に入力される。SYNC識別部９４は、入力された符号を用いて、同期信号を識別し、識別信号を復調部９３とSYNC除去部９５に出力する。SYNC除去部９５は、復調部９３から入力された復調信号から、SYNC識別部９４の出力に対応して同期信号を除去し、同期信号を除去した信号をDSV制御ビット除去部９６に出力する。
【０１３５】
SYNC識別部９４は、内蔵するカウンタで符号語をカウントし、そのカウント値から所定の間隔で挿入されている同期信号の位置を決定する。同期信号パターンの位置が判明したとき、SYNC識別部９４は、次に変調時に定めた”＃”の部分を読み取る。即ち同期信号ビット部分の先頭ビットを読み取り、それを復調部９３に出力する。復調部９３は、先頭ビットが”１”であれば、その直前の符号の復調には、表６の終端テーブルを用いる。また先頭ビットが”０”であれば、復調部９３は、その直前の符号の復調には、表６の変換コードのテーブルを用いる。これ以外の同期信号ビットは、情報を持たないビットであるから不要となる。 
【０１３６】
SYNC識別部９４は、同期信号を構成するビットを識別する識別信号をSYNC除去部９５に出力する。SYNC除去部９５は、復調部９３から出力されたデータから、SYNC識別部９４から出力された識別信号によって指定された同期信号ビットだけを除去し、DSV制御ビット除去部９６に出力する。  
【０１３７】
そして、図１２における復調装置９１の復調部９３は、例えば、表６によるデータ変換の逆変換詳細を示した、図７に示した復調部５３と同様の構成で実現することが可能である。
【０１３８】
ここで、実施の形態で説明した変換テーブルを用いた変調結果を検証した結果を示す。Ｔminの連続を制限し、かつ、データ列内においてDSV制御ビットを挿入したデータ列を変調した表６は、さらに、置き換えコードの変換条件を付加し、復調エラー伝搬を低減させる変換コードとなっている。シミュレーションは、従来の表２に従った1,7PP符号と、本実施の形態を用いた表６に従った1,7PP符号の比較を行った。
【０１３９】
任意に作成したランダムデータ13,107,200bitを、56data-bitおきにDSV制御ビットを1bitを挿入することでDSV制御した後、表２または表６の変調コードテーブルを用いて、符号語列（チャネルビット列）に変換した場合の結果は以下の通りである。
【０１４０】
各結果の数値は以下のようにして計算した。
Ren_cnt[1 to 10]: 最小ランの繰り返し１回乃至１０回の各発生数。
T_size[2 to 10]: ２Ｔ乃至１０Ｔの各ランの発生数。
Sum      : Number of bits. ビット総数。
Total     : Number of runlengths. 各ラン（２Ｔ，３Ｔ，…）の発生総数
Average Run  : (Sum/Total)
run分布の数値 : (T_size[i] * (i) ) / (Sum) ,   i=2,3,4,,,10
【０１４１】
以下に示す表９の２Ｔ乃至１０Ｔの欄に示す数値が、このラン分布の数値を表す。
【０１４２】
Tminの連続する分布の数値： (Ren_cnt[i] * (i) ) / T_size[2T], i=1,2,3,4...10
【０１４３】
表９のRMTR(1)乃至RMTR(7)の欄に示す値が、この最小ランの連続する分布の数値を表す。
max-RMTR : 最小ランの繰り返す、最大回数。
peak DSV : 符号語列のDSV制御を行う過程において、DSV値を計算したときのDSV値のプラス側のピーク及びマイナス側のピークをいう。DSV制御ビットとして５６データ列おきにDSV制御ビットを挿入した場合の冗長率は、５６データ列に対してDSV制御ビット１bitであるから、冗長度は、1.75%( 1/(1+56))である。 
【０１４４】
＜表９＞      *** 1,7PP comparison ***
<表２>       <表６>
従来1,7PP     新1,7PP
Average Run     3.3665       3.3723
Sum           20011947     20011947
Total          5944349      5934288
2T             0.2256       0.2293
3T             0.2217       0.2111
4T             0.1948       0.1949
5T             0.1499       0.1515
6T             0.1109       0.1111
7T             0.0579       0.0672
8T             0.0392       0.0349
9T             ------       ------
RMTR(1)         0.3837       0.3803
RMTR(2)         0.3107       0.3032
RMTR(3)         0.1738       0.1799
RMTR(4)         0.0938       0.0968
RMTR(5)         0.0299       0.0319
RMTR(6)         0.0081       0.0079
RMTR(7)         ------       ------
max-RMTR          6            6   
====================================
peak DSV      # -36to36    # -36to37
("#":56data-bit+1dc-bit, 1.75%)
【０１４５】
上述した結果より、従来の表２に従った1,7PP符号と、本実施の形態の表６に従った1,7PP符号は、それぞれ最小ランｄ＝１と最大ランｋ＝７、及び最小ランの連続は６回までに制限されていることが確認されるとともに、peak DSVの結果より、データ列内でDSV制御を行うことができる（peak DSVの値が所定の範囲内に納められている）ことが示された。また、表９より、表２と表６のテーブルの違いによるラン分布及び、最小ラン連続回数分布に特性の差がないことがわかった。
【０１４６】
次に、復調のシミュレーション結果について述べる。復調は、比較が可能なように表２と表６ともに、同様な復調方法により行った。正常に復調が行われるのを確認するとともに、符号語列において任意にビットシフトエラーを発生させ、この時の復調エラー伝搬特性を調べた。復調エラー伝搬とは、符号語列内の一箇所のビットシフトエラーに対し、復調時に何ビットだけエラーを伝搬したかであり、これを８ビット単位とすることでバイトエラーとした。
【０１４７】
＜表１０＞      ***  Shift error response ***
<表２>     <表６>  
従来1,7PP   新1,7PP  
worst case           3 Bytes    3 Bytes 
(dc bit)             exclude.   exclude
Byte error(0)        0.177      0.183
Byte error(1)        0.673      0.672
Byte error(2)        0.150      0.144
Byte error(3)        0.000      0.000
Average - 
Byte error rate      0.973Byte  0.961Byte
【０１４８】
表１０の結果より、表２と表６ともに1,7PPの最悪エラー伝搬は３バイトであるが、実際の発生頻度はほとんどないことが確認された。また、表６による、置き換えコードの変換条件を付加し、復調エラー伝搬を低減させる変換コードを与えたことによって、長いエラー伝搬の発生率が15.0%から14.4%に減り、また平均バイトエラー伝搬長も減少させることができた。
【０１４９】
本実施の形態における、他の効果として、表５の場合を考える。このテーブルを用いた場合は、平均エラー伝搬長が減少すると同時に、RMTR特性を変化させることができる。
【０１５０】
＜表１１＞            *** 1,7PP comparison ***
<表２>         <表６>         <表５>        
従来1,7PP     新1,7PP       新1,7PP
RMTR(1)         0.3837         0.3803       0.3886
RMTR(2)         0.3107         0.3032       0.3099
RMTR(3)         0.1738         0.1799       0.1839
RMTR(4)         0.0938         0.0968       0.0866
RMTR(5)         0.0299         0.0319       0.0261
RMTR(6)         0.0081         0.0079       0.0049
RMTR(7)         ------         ------       ------
max-RMTR          6              6            6
【０１５１】
表５は、長いRMTRの発生回数を少なくすることが出来るので、表９と同様なシミュレーションを行うと、RMTRは最大６回までで同様でありながらさらに、RMTR(4),RMTR(5),RMTR(6)といった大きい回数の発生頻度が減少する。特に表１１より、最大のRMTR(6)の出現確率が、0.008前後から0.005程度になり、約2/3に減少させることが示された。
【０１５２】
このように、大きなRMTRをさらに低下させることによって、エラーが発生した時の長いエラー伝搬を未然に防ぐことが出来ることになり、従ってエラー伝搬値も向上することが期待できる。
【０１５３】
1,7PP符号は、最小ランｄ＝１、最大ランｋ＝７、変換率 ｍ／ｎ＝２／３の変換テーブルにおいて、最小ラン長の繰り返し回数を制限する置き換えコードを設けるようにしたので、
（１）  高線密度での記録再生、及び、タンジェンシャル・チルトに対する許容度を向上させることができる。
（２）  信号レベルが小さい部分が減少し、ＡＧＣやＰＬＬ等の波形処理の精度が向上し、総合特性を高めることができる。
（３）  従来と比較して、ビタビ復号等の際のパスメモリ長を短く設計することができ、回路規模を小さくすることができる。
【０１５４】
また、変換テーブルの要素内の「１」の個数と、変換される符号語列の要素内の「１」の個数を、２で割った時の余りが、どちらも１あるいは０で一致するようにしたので、
（４）  DSVの制御のための冗長ビットを少なくすることができる。
（５）  最小ランｄ＝１かつ(m,n)=(2,3)においては、1.5符号語でDSV制御を行うことができる。
（６）  冗長度が少ない上に、最小ランと最大ランを守ることができる。
【０１５５】
さらに本テーブルは特に、ラン長制限を守る置き換えコードを設けるようにしたので、
（７）  テーブルをコンパクトにできる。
【０１５６】
そして、本実施の形態において、復調時のエラー伝搬長が長くなるという点を、エラー伝搬が大きくなる変換コードの発生回数を減らすテーブル構造とすることにより、
（８）  ビットシフト時の復調エラー伝搬を、表２の従来の1,7PPよりも少なくできる。
【０１５７】
なお、本明細書中において、上記処理を実行するコンピュータプログラムをユーザに提供する提供媒体には、磁気ディスク、CD-ROMなどの情報記録媒体の他、インターネット、デジタル衛星などのネットワークによる伝送媒体も含まれる。
【符号の説明】
【０１５８】
１１  DSVビット決定・挿入部，  １２  変調部，  １３  NRZI化部，  １４  タイミング管理部，  ２１  コントロールビット挿入部，  ２２  DSVビット決定部，  ３２  拘束長判定部，  ３３  置き換え制限を含む最小ラン連続制限コード検出部，  ３４  置き換え制限を含むラン長制限補償コード検出部，  ４１  最小ラン・最大ラン補償コード検出部，  ４２  最小ラン連続制限コード検出部，  ４３  直前・直後ビット参照部，  ５２  コンパレート・逆NRZI化部，  ５３  復調部，  ５４  DSV制御ビット除去部，  ６１  拘束長判定部，  ６２  最小ラン連続制限コード検出部，  ６３  ラン長制限補償コード検出部
【図１】
2010192098.tif 000003
【図２】
2010192098.tif 000004
【図３】
2010192098.tif 000005
【図４】
2010192098.tif 000006
【図５】
2010192098.tif 000007
【図６】
2010192098.tif 000008
【図７】
2010192098.tif 000009
【図８】
2010192098.tif 000010
【図９】
2010192098.tif 000011
【図１０】
2010192098.tif 000012
【図１１】
2010192098.tif 000013
【図１２】
2010192098.tif 000014