(57)【特許請求の範囲】
【請求項１】
基本データ長がｍビットのデータを、基本符号長がｎビットの可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）に変換する変調装置において、
入力されたデータを、変換テーブルに従って、符号に変換する変換手段を備え、
前記変換テーブルの変換コードは、
基礎コードと、
データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、
最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、
ラン長制限を守るための第２の置き換えコードと
を有することを特徴とする変調装置。
【請求項２】
拘束長ｉ＝１における前記基礎コードを構成するデータ列と符号語列の対の数は、2^m = 2^2 = 4よりも少ない
ことを特徴とする請求項１に記載の変調装置。
【請求項３】
前記変換テーブルの基礎コードは、可変長構造を有する
ことを特徴とする請求項１に記載の変調装置。
【請求項４】
前記変換テーブルの基礎コードは、不確定符号を含み、前記不確定符号は、直前または直後の符号語が「１」のとき「０」となり、「０」のとき「１」となる記号を＊とするとき、「０００」または「１０１」となる符号「＊０＊」を含む
ことを特徴とする請求項１に記載の変調装置。
【請求項５】
前記変換テーブルの変換コードは、直後の符号語列、または、直後に続くデータ列を参照して決定するコードを含む
ことを特徴とする請求項１に記載の変調装置。
【請求項６】
前記参照する直後の符号語列は、特定の１種類の符号語列とする
ことを特徴とする請求項５に記載の変調装置。
【請求項７】
前記直後の符号語列、または、直後に続くデータ列を参照して決定する変換コードは、前記第１または第２の置き換えコードである
ことを特徴とする請求項５に記載の変調装置。
【請求項８】
拘束長ｉが１である場合における前記基礎コードを構成するデータ列と符号語列の対の数は、2^m = 2^2 = 4に等しい
ことを特徴とする請求項１に記載の変調装置。
【請求項９】
拘束長ｉが２以上の場合の前記変換コードは、すべて前記第１または第２の置き換えコードである
ことを特徴とする請求項１に記載の変調装置。
【請求項１０】
前記置き換えコードは、拘束長ｉが２の場合の変換コードは、最小ランｄ＝１を守るコードである
ことを特徴とする請求項１に記載の変調装置。
【請求項１１】
前記変換テーブルの変換コードは、直前の符号語列を参照して決定するコードを含む
ことを特徴とする請求項１０に記載の変調装置。
【請求項１２】
前記変換テーブルの変換コードとして存在しないユニークなパターンを含む同期信号を、前記符号語列の任意の位置に挿入する挿入手段をさらに備える
ことを特徴とする請求項１に記載の変調装置。
【請求項１３】
前記同期信号に用いられるユニークなパターンは、最大ランｋを破るパターンである
ことを特徴とする請求項１２に記載の変調装置。
【請求項１４】
前記同期信号に用いられるユニークなパターンは、最小ランｄを守るパターンである
ことを特徴とする請求項１２に記載の変調装置。
【請求項１５】
前記同期信号は、先頭の１符号語が、直前までのデータを変換した符号語との接続ビットであり、２番目の符号語が、最小ランｄを守るためのビットであり、３番目の符号語から、前記同期信号としてユニークなパターンを構成する
ことを特徴とする請求項１２に記載の変調装置。
【請求項１６】
前記同期信号の大きさは、少なくとも１２符号語である
ことを特徴とする請求項１２に記載の変調装置。
【請求項１７】
前記同期信号は、その大きさが、２１符号語以上のとき、最大ランｋ＝８のパターンを少なくとも２個含む
ことを特徴とする請求項１２に記載の変調装置。
【請求項１８】
前記変換テーブルの変換コードは、符号を任意の位置において終端させるための終端コードをさらに有する
ことを特徴とする請求項１２に記載の変調装置。
【請求項１９】
前記終端コードは、前記データ列と符号語列の対の数が、2^m = 2^2 = 4 よりも少ない前記拘束長ｉの前記基礎コードに対応して規定され、かつ、データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則を有する
ことを特徴とする請求項１８に記載の変調装置。
【請求項２０】
前記終端コードを識別するために、前記同期信号パターンにおいて接続ビットとされた、先頭の１符号語ビットを、前記終端コードを用いたときには「１」とし、そうでないときは「０」とする
ことを特徴とする請求項１８に記載の変調装置。
【請求項２１】
前記同期信号は、その先頭の３ビット、及び、最後の３ビットが、データ列及び接続用の混合した接続ビットとされ、その間が、前記ユニークなパターンとされる
ことを特徴とする請求項１２に記載の変調装置。
【請求項２２】
前記同期信号の先頭の３ビットは、変換前のデータ語において、ｍビット単位で見て、先頭の１ビット目をデータ語に対応する値とし、次の２ビット目を前記同期信号を規定するために「１」とし、前記同期信号の最後の３ビットは、変換前のデータ語において、ｍビット単位で見て、先頭の１ビット目は同期信号を規定するために「０」とし、次の２ビット目をデータ語に対応する値とする
ことを特徴とする請求項１２に記載の変調装置。
【請求項２３】
入力されたデータのDSVを制御して、前記変換手段に供給
するDSV制御手段をさらに備える
ことを特徴とする請求項１に記載の変調装置。
【請求項２４】
前記変換手段は、
前記最小ランｄの連続を制限する前記第１の置き換えコードを検出する第１の検出手段と、
前記ラン長制限を守る前記第２の置き換えコードを検出する第２の検出手段と  を備えることを特徴とする請求項１に記載の変調装置。
【請求項２５】
基本データ長がｍビットのデータを、基本符号長がｎビットの可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）に変換する変調装置の変調方法において、
入力されたデータを、変換テーブルに従って、符号に変換する変換ステップを含み、
前記変換テーブルの変換コードは、
基礎コードと、
データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、
最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、
ラン長制限を守るための第２の置き換えコードと
を有することを特徴とする変調方法。
【請求項２６】
基本データ長がｍビットのデータを、変換テーブルに基づいて、基本符号長がｎビットの可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）に変換する変調方式により作成されたデータ列であって、
前記変調方式の変換テーブルの変換コードは、
基礎コードと、
データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、
最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、
ラン長制限を守るための第２の置き換えコードと
を有することを特徴とするデータ構造を有するデータ列を格納したデータ格納媒体。
【請求項２７】
基本符号長がｎビットの可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）を、基本データ長がｍビットのデータに変換する復調装置において、
入力された符号を、変換テーブルに従って、データに変換する変換手段を備え、
前記変換テーブルの変換コードは、
基礎コードと、
データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、
最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、
ラン長制限を守るための第２の置き換えコードと
を有することを特徴とする復調装置。
【請求項２８】
所定の間隔で挿入された冗長ビットを除去する除去手段をさらに備える
ことを特徴とする請求項２７に記載の復調装置。
【請求項２９】
前記冗長ビットは、DSV制御ビット、または同期信号であ
る
ことを特徴とする請求項２８に記載の復調装置。
【請求項３０】
基本符号長がｎビットの可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）を、基本データ長がｍビットのデータに変換する復調装置の復調方法において、
入力された符号を、変換テーブルに従って、データに変換する変換ステップを含み、
前記変換テーブルの変換コードは、
基礎コードと、
データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、
最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、
ラン長制限を守るための第２の置き換えコードと
を有することを特徴とする復調方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、変調装置および方法、復調装置および方法、並びにデータ格納媒体に関し、特に、データを、記録媒体に、高密度に記録または再生する場合に用いて好適な変調装置および方法、復調装置および方法、並びにデータ格納媒体に関する。
【０００２】
【従来の技術】
データを所定の伝送路に伝送したり、または例えば磁気ディスク、光ディスク、光磁気ディスク等の記録媒体に記録する際、伝送路や記録媒体に適するように、データの変調が行われる。このような変調方法の１つとして、ブロック符号が知られている。このブロック符号は、データ列をｍ×ｉビットからなる単位（以下データ語という）にブロック化し、このデータ語を適当な符号則に従って、ｎ×ｉビットからなる符号語に変換するものである。そしてこの符号は、ｉ＝１のときには固定長符号となり、またｉが複数個選べるとき、すなわち、１乃至ｉmax（最大のｉ）の範囲の所定のｉを選択して変換したときには可変長符号となる。このブロック符号化された符号は可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）と表される。
【０００３】
ここでｉは拘束長と称され、ｉmaxはｒ（最大拘束長）となる。またｄは、連続する”１”の間に入る、”０”の最小連続個数、例えば”０”の最小ランを示し、ｋは連続する”１”の間に入る、”０”の最大連続個数、例えば”０”の最大ランを示している。
【０００４】
ところで上述のようにして得られる可変長符号を、光ディスクや光磁気ディスク等に記録する場合、例えばコンパクトディスク（ＣＤ）やミニディスク（ＭＤ）では、可変長符号を、”１”を反転とし、”０”を無反転として、NRZI(Non Return to Zero Inverted)変調し、NRZI変調された可変長符号（以下、記録波形列とも称する）に基づき記録が行なわれている。また、記録密度があまり高くなかった初期のＩＳＯ規格の光磁気ディスクでは、記録変調されたビット列が、NRZI変調されず、そのまま記録されていた。
【０００５】
記録波形列の最小反転間隔をＴminとし、最大反転間隔をＴmaxとするとき、線速方向に高密度に記録を行うためには、最小反転間隔Ｔminは長い方が、すなわち最小ランｄは大きい方が良く、またクロックの再生の面からは、最大反転間隔Ｔmaxは短い方が、すなわち最大ランｋは小さい方が望ましく、この条件を満足するために、種々の変調方法が提案されている。
【０００６】
具体的には、例えば光ディスク、磁気ディスク、又は光磁気ディスク等において、提案あるいは実際に使用されている変調方式として、可変長符号であるRLL（１−７）（（１，７；ｍ，ｎ；ｒ）とも表記される）やRLL（２−７）（（２，７；ｍ，ｎ；ｒ）とも表記される）、そしてＩＳＯ規格ＭＯに用いられている固定長RLL（１−７）（（１，７；ｍ，ｎ；１）とも表記される）などがある。現在開発研究されている、記録密度の高い光ディスクや光磁気ディスク等のディスク装置では、最小ランｄ＝１のRLL符号（Run Length Limited Code）がよく用いられている。
【０００７】
可変長RLL（１−７）符号の変換テーブルは、例えば以下のようなテーブルである。
0003985173.tif 000002
【０００８】
ここで変換テーブル内の記号ｘは、次に続くチャネルビットが”０”であるときに”１”とされ、また次に続くチャネルビットが”１”であるときに”０”とされる。最大拘束長ｒは２である。
【０００９】
可変長RLL（１−７）のパラメータは（１，７；２，３；２）であり、記録波形列のビット間隔をＴとすると、（ｄ＋１）Ｔで表される最小反転間隔Ｔminは２（＝１＋１）Ｔとなる。データ列のビット間隔をＴdataとすると、この（ｍ／ｎ）×２で表される最小反転間隔Ｔminは１．３３（＝（２／３）×２）Ｔdataとなる。また（ｋ＋１）Ｔで表される最大反転間隔Ｔmaxは８（＝７＋１）Ｔ（（＝（ｍ／ｎ）×８Ｔｄａｔａ＝（２／３）×８Ｔｄａｔａ＝５．３３Ｔdata）である。さらに検出窓幅Ｔwは（ｍ／ｎ）×Ｔdataで表され、その値は０．６７（＝２／３）Ｔdataとなる。
【００１０】
ところで、表１のRLL（１−７）による変調を行ったチャネルビット列においては、発生頻度としてはＴminである２Ｔが一番多く、以下３Ｔ、４Ｔと続く。２Ｔや３Ｔのようなエッジ情報が早い周期で多く発生するのは、クロック再生には有利となる場合が多い。
【００１１】
ところが、さらに記録線密度を高くしていくと、今度は逆に、最小ランが問題となってくる。すなわち最小ランである２Ｔが連続して発生し続けると、記録波形に歪みが生じやすくなってくる。なぜなら、２Ｔの波形出力は、他の波形出力よりも小さく、例えばデフォーカスやタンジェンシャル・チルト等による影響を受け易いからである。またさらに、高線密度記録の際には、最小マーク（２Ｔ）の連続した記録はノイズ等の外乱の影響も受け易くなり、従ってデータ再生時に誤りが起こり易くなる。この場合におけるデータ再生誤りのパターンとしては、連続する最小マークの先頭と最後がシフトして誤るケースが多く、その結果、発生するビットエラー長が長くなってしまうことになる。
【００１２】
ところで、記録媒体へのデータの記録、あるいは、データの伝送の際には、記録媒体あるいは伝送路に適した符号化変調が行われるが、これら変調符号に直流成分が含まれていると、例えば、ディスク装置のサーボの制御におけるトラッキングエラーなどの、各種のエラー信号に変動が生じ易くなったり、あるいはジッターが発生し易くなったりする。従って、変調符号には、直流成分を取り除く方が良い。
【００１３】
そこで、直流成分を持つ変調符号は、DSV(Digital Sum Value)を制御することが提案されている。DSVとは、チャネルビット列をNRZI化し（すなわちレベル符号化し）、そのビット列（データのシンボル）の”１”を「＋１」、”０”を「−１」として、符号を加算していったときのその総和を意味する。DSVは符号列の低域成分の目安となる。DSVの絶対値を小さくすること、すなわち、DSV制御を行うことは、符号列の直流成分をカットし、低域成分を抑制することになる。
【００１４】
上記表１に示した、可変長RLL（１−７）テーブルによる変調符号は直流成分を含むため、DSV制御を行う必要がある。このような場合のDSV制御は、変調後の符号化列（チャネルビット列）において、所定の間隔でDSV計算を行い、所定のDSV制御ビットを符号化列（チャネルビット列）内に挿入することで、実現する。
【００１５】
しかしながら、DSV制御ビットは、基本的には冗長ビットである。従って符号変換の効率から考えれば、DSV制御ビットはなるべく少ない方が良い。
【００１６】
またさらに、挿入されるDSV制御ビットによって、最小ランｄおよび最大ランｋは、変化しない方が良い。（ｄ，ｋ）が変化すると、記録再生特性に影響を及ぼしてしまうからである。
【００１７】
【発明が解決しようとする課題】
以上のように、RLL符号を高線密度にディスクに記録再生する場合、最小ランｄの連続したパターンがあると、長いエラーが発生し易いという課題があった。
【００１８】
また、RLL（１−７）符号のようなRLL符号において、DSV制御を行う場合には、符号語列（チャネルビット列）内に、任意の間隔で、DSV制御ビットを入れる必要があった。DSV制御ビットは冗長であるから、なるべく少ない方が望ましいが、最小ランあるいは最大ランを守るためには、DSV制御ビットが少なくとも２ビット以上必要であり、DSV制御ビットをより短くすることが望まれている。
【００１９】
本発明は、このような状況に鑑みてなされたものであり、最小ランｄ＝１であるRLL符号（ｄ，ｋ；ｍ，ｎ）＝（１，７；２，３）において、最小ランの連続する回数を制限し、さらに最小ラン及び最大ランを守りながら、効率の良い制御ビットで、DSV制御を行うことができるようにすることを目的とする。
【００２０】
また本発明は、なるべく単純な構造の変換テーブルを用いて、復調エラー伝搬が増大するのを抑制するようにすることを目的とする。
【００２１】
【課題を解決するための手段】
請求項１に記載の変調装置は、入力されたデータを、変換テーブルに従って、符号に変換する変換手段を備え、変換テーブルの変換コードは、基礎コードと、データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、ラン長制限を守るための第２の置き換えコードとを有することを特徴とする。
【００２２】
請求項２５に記載の変調方法は、入力されたデータを、変換テーブルに従って、符号に変換する変換ステップを含み、変換テーブルの変換コードは、基礎コードと、データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、ラン長制限を守るための第２の置き換えコードとを有することを特徴とする。
【００２３】
請求項２６に記載のデータ格納媒体は、基本データ長がｍビットのデータを、変換テーブルに基づいて、基本符号長がｎビットの可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）に変換する変調方式により作成されたデータ列であって、変調方式の変換テーブルの変換コードは、基礎コードと、データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、ラン長制限を守るための第２の置き換えコードとを有することを特徴とする。
【００２４】
請求項２７に記載の復調装置は、入力された符号を、変換テーブルに従って、データに変換する変換手段を備え、変換テーブルの変換コードは、基礎コードと、データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、ラン長制限を守るための第２の置き換えコードとを有することを特徴とする。
【００２５】
請求項３０に記載の復調方法は、入力された符号を、変換テーブルに従って、データに変換する変換ステップを含み、変換テーブルの変換コードは、基礎コードと、データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、ラン長制限を守るための第２の置き換えコードとを有することを特徴とする。
【００２７】
請求項１に記載の変調装置、請求項２５に記載の変調方法、および請求項２６に記載のデータ格納媒体、並びに、請求項２７に記載の復調装置、および請求項３０に記載の復調方法においては、データ列の要素内の「１」の個数と、符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則の変換コード、最小ランｄの連続を所定の回数以下に制限する第１の置き換えコード、および、ラン長制限を守るための第２の置き換えコードに基づいて、変換処理が行われる。
【００２８】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００２９】
請求項１に記載の変調装置は、入力されたデータを、変換テーブル（例えば、表２）に従って、符号に変換する変換手段（例えば、図１の変調部１２）を備え、変換テーブルの変換コードは、ｄ＝１、ｋ＝７、ｍ＝２、ｎ＝３の基礎コードと、データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、ラン長制限を守るための第２の置き換えコードとを有することを特徴とする。
【００３０】
請求項１２に記載の変調装置は、変換テーブルの変換コードとして存在しないユニークなパターンを含む同期信号を、符号語列の任意の位置に挿入する挿入手段（例えば、図９の同期信号挿入部２１２）をさらに備えることを特徴とする。
【００３１】
請求項２３に記載の変調装置は、入力されたデータのDSVを制御して、変換手段に供給するDSV制御手段（例えば、図１のDSV制御ビット決定・挿入部１１）をさらに備えることを特徴とする。
【００３２】
請求項２４に記載の変調装置は、変換手段は、最小ランｄの連続を制限する第１の置き換えコードを検出する第１の検出手段（例えば、図３の最小ラン連続制限コード検出部３３）と、ラン長制限を守る第２の置き換えコードを検出する第２の検出手段（例えば、図３の最大ラン補償コード検出部３４）とを備えることを特徴とする。
【００３３】
請求項２７に記載の復調装置は、入力された符号を、変換テーブル（例えば、表２）に従って、データに変換する変換手段（例えば、図５の復調部１１１）を備え、変換テーブルの変換コードは、ｄ＝１、ｋ＝７、ｍ＝２、ｎ＝３の基礎コードと、データ列の要素内の「１」の個数を２で割った時の余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも１あるいは０で一致するような変換規則と、最小ランｄの連続を所定の回数以下に制限する第１の置き換えコードと、ラン長制限を守るための第２の置き換えコードとを有することを特徴とする。
【００３４】
請求項２８に記載の復調装置は、所定の間隔で挿入された冗長ビットを除去する除去手段（例えば、図５のDSV制御ビット除去部１１２）をさらに備えることを特徴とする。
【００３５】
次に、本発明の実施の形態について説明するが、以下においては、説明の便宜上、変換される前のデータの「０」と「１」の並び（変換前のデータ列）を、（００００１１）のように、（  ）で区切って表し、変換された後の符号の「０」と「１」の並び（符号語列）を、”０００１００１００”のように、”  ”で区切って表すことにする。以下に示す表２及び表３は、本発明のデータを符号に変換する変換テーブルの例を表している。
【００３６】
＜表２＞
(d,k;m,n;r)＝（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 channel 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）よりも少ない３つ（＊０＊，００１，０１０の３つ）で構成されている。その結果、データ列を変換する際に、拘束長ｉ＝１だけでは変換出来ないデータ列が存在することになる。結局、表２において、全てのデータ列を変換するには（変換テーブルとして成り立つためには）、拘束長ｉ＝３までの基礎コードを参照する必要がある。
【００４０】
また、表２の変換テーブルは、最小ランｄの連続を制限する置き換えコードを持っているため、データ列が（１１０１１１）である場合、さらに後ろに続く符号語列が参照され、それが”０１０”であるとき、このデータ列は、符号語”００１ ０００ ０００”に置き換えられる。また、このデータ列は、後ろに続く符号語列が”０１０”以外である場合、２ビット単位（（１１），（０１），（１１））で符号語に変換されるので、符号語”＊０＊ ０１０ ＊０＊”に変換される。これによって、データを変換した符号語列は、最小ランの連続が制限され、最大でも６回までの最小ラン繰り返しとなる。
【００４１】
さらに、表２の変換コードは、データ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一（対応するいずれの要素も、”１”の個数が奇数または偶数）となるような変換規則を持っている。例えば、変換コードのうちのデータ列の要素（０００００１）は、”０１０ １００ １００”の符号語列の要素に対応しているが、それぞれの要素の”１”の個数は、データ列では１個、対応する符号語列では３個であり、どちらも２で割ったときの余りが１（奇数）で一致している。同様にして、変換コードのうちのデータ列の要素（００００００）は、”０１０ １００ ０００”の符号語列の要素に対応しているが、それぞれ”１”の個数は、データ列では０個、対応する符号語列では２個であり、どちらも２で割ったときの余りが０（偶数）で一致している。
【００４２】
そして、表２では、最大拘束長ｒ＝４である。拘束長ｉ＝４のコードは、最大ランｋ＝７を実現するための、置き換えコード（最大ラン補償コード）で構成されている。すなわち、データ（００００１０００）は、符号語”０００１００１００１００”に変換され、データ（００００００００）は、符号語”０１０１００１００１００”に変換されるようになされている。なお、この場合にも、最小ランｄ＝１は守られている。
【００４３】
この拘束長ｉ＝４の置き換えコードを設けない時、表２は最大拘束長ｒ＝３となり、最大ランｋが８の符号を作ることができる。しかし、この拘束長ｉ＝４のコードを設けることで、最大ランｋを７にすることができる。一般的に、最大ランｋが大きいほど、クロックの再生には不利となり、システムの安定性が悪くなる。従って、最大ランｋを８から７にすることで、この特性がそれだけ改善されることになる。
【００４４】
以上より表２のテーブルにおいて、基礎コードのみによってテーブルを構成する場合は、最大拘束長ｒ＝３となり、最小ランｄ＝１で最大ランｋ＝８、かつデータ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一となるような、符号を発生することができる。
【００４５】
また基礎コードに加えて、最小ランｄの連続を制限する置き換えコードを持って構成する場合は、最大拘束長ｒ＝３となり、最小ランｄ＝１で最大ランｋ＝８、かつ最小ランｄの連続が有限回までに制限され、さらにデータ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一となるような、符号を発生することができる。
【００４６】
そして、表２のように、基礎コードに加えて、最小ランｄの連続を制限する置き換えコードを持ち、さらに最大ランｋを７に補償する置き換えコードを持って構成する場合は、最大拘束長ｒ＝４となり、最小ランｄ＝１で最大ランｋ＝７、かつ最小ランｄの連続が有限回までに制限され、さらにデータ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一となるような、符号を発生することができる。
【００４７】
また、一般的に、最大拘束長ｒが大きいほど、ビットシフト時の復調エラー（エッジビットの位置が１ビット分だけ、正規の位置よりも前方または後方にシフトすることによるエラー）の伝搬特性が悪くなる。
【００４８】
但し、表１と表２を比較すると、表１の最大拘束長ｒは２であるのに対して、表２の最大拘束長ｒは４である。従って、表１より表２の方がこの特性が悪いはずである。しかしながら、表７を参照して、シミュレーション結果として後述するように、表２の場合のこの特性は、表１のそれに較べてそれ程、劣るものではなかった（表７に示すように、平均バイトエラーレートが、表１の場合、１．０１４バイトであるのに対して、表２の場合、１．１６７バイトとなっており、それ程大きくなっていない）。これは、変換コードの対の数が２個と少ないためと考えられる。
【００４９】
ところで上記表２の変換テーブルによって発生された符号語列（チャネルビット列）中の、任意の位置に同期信号を挿入する場合、この変換テーブルは可変長構造を有しているために、任意の位置で符号を終端させるために終端用テーブルが規定され、必要に応じて用いられるようになされている。
【００５０】
例えば、任意の位置で同期信号を挿入する際、まず直前直後の符号語列との接続において、最小ランｄ及び最大ランｋが守られるように接続ビットが設定され、接続ビットの間に同期信号用のユニークなパターンが設定される。同期信号パターンとして、最大ランｋ＝７を破るパターンを与えたとき、最も短い長さで実現できる同期信号パターンは、次に示すように、１２符号語（１２チャネルビット）である。
”＃０１ ０００ ０００ ００１”
この同期信号パターンの先頭の”＃”は接続用ビットで、”０”か”１”のどちらかに設定される。”＃”の次の第２チャネルビット目は、最小ランを守るために”０”に設定される。第３チャネルビット目から、同期信号パターンとして、ｋ＝８となる９Ｔのユニークなパターン（表２には規定されていないコードのパターン）が設定される。すなわち”１”と”１”の間に、”０”が８個連続して並ぶ。なおこの同期信号パターンの最後のチャネルビットは”１”とされているが、表２の変換テーブルを用いた時は、このようにしても、最小ランｄを守ることができる。
【００５１】
次に終端用テーブルと、この同期信号パターンの接続用ビット”＃”について説明する。終端用テーブルは、表２に示すように、
00    000
0000  010 100
となる。終端用テーブルが必要になるのは、データ列と符号語列の対の数が４つ（2^m = 2^2 = 4）よりも少ない拘束長ｉの基礎コードに対してである。
【００５２】
すなわち、表２では、拘束長ｉ＝１における基礎コードのデータ列と符号語列の対の数は３つであるから終端用テーブルが必要となる。また拘束長ｉ＝２における基礎コードのデータ列と符号語列の対の数も３つであるから終端用テーブルが必要となる。拘束長ｉ＝３における変換コードのデータ列と符号語列の対の数は５つあり、そのうち１つが置き換えコードで、４つが基礎コードであり、必要数（４個）を持っているので、この場合、終端用テーブルは不要となる。拘束長ｉ＝４におけるコードは、いずれも置き換えコードであるため、符号の終端を考慮しなくてよい。従って、終端用テーブルは、ｉ＝１の（００）のときと、ｉ＝２のときの（００００）のときに必要になる。この終端用テーブルにより、データ（００）は、符号”０００”に変換され、データ（００００）は、符号”０１０１００”に変換される。これにより、同期信号を挿入するに際し、その直前のデータを符号に変換することができなくなる（同期信号の直前までの符号を終端させることができなくなる）ことが防止される。
【００５３】
同期信号パターンの接続用ビット”＃”は、終端用のテーブルを用いる場合と、用いない場合を区別するためのものである。すなわち、同期信号として与えられた、先頭の第１チャネルビット目の”＃”は、終端コードを用いたときは「１」とされ、そうでないときは「０」とされる。こうすることによって、テーブルの違い（終端コードを用いたか否か）を、間違いなく識別することができる。
【００５４】
以上においては、同期信号パターンを最短である１２符号語（１２チャネルビット）として説明したが、同期信号パターンとしては、最大ランｋ＝７を破る、ｋ＝８（９Ｔ）が作成できれば良いので、１２符号語以上であれば同期信号パターンがこの他にも作れることになる。例えば１５符号語ならば
”＃０１ ０００ ０００ ００１ ０１０”
”＃０１ ０００ ０００ ００１ ００１”
のように、２通りの同期信号を作ることができる。また、２１符号語ならば、
”＃０１ ０００ ０００ ００１ ０００ ０００ ００１”
のように、ｋ＝８（９Ｔ）のパターンを２回繰り返すことができ、このようにすると、同期信号をより確実に検出することが可能となる。そして、２４符号語の場合、
”＃０１ ００１ ０００ ０００ ００１ ０００ ０００ ００１”
のように、”３Ｔ−９Ｔ−９Ｔ”を同期信号パターンとし、２回連続するｋ＝８（９Ｔ）のパターンの前後に、大きなラン（Ｔ）が来る確率を減らし、さらに検出能力を高くすることができる。どの程度の検出能力の同期信号を採用するかは、システムの要求によって、選択することが出来る。
【００５５】
表３は、本発明の他の変換テーブルの例を示している。
【００５６】
＜表３＞
(d,k;m,n;r)＝（1,7;2,3;4）
i=1 Main table:
データ    符号
00        101
01        100
10        001
11        000
i=2 substitution table A. (limits d to 1)
0000      100 010
0001      101 010
1000      000 010
1001      001 010
i=3 substitution table B. (limits k to 8)
111111    000 010 010
111110    001 010 010
011110    101 010 010
011111    100 010 010
i=4 substitution table C. (limits RMTR to 6)
00010001  100 010 010 010
chan --0 10010001  100 000 010 010
chan --1 10010001  000 010 010 010
r=4 substitution table D. (limits k to 7)
chan 010 11100000  000 001 010 010
chan 010 11100010  100 001 010 010
chan 010 11100001  001 010 010 010
chan 010 11100011  101 010 010 010
-----------------------------
Sync
data: x1........0x
ch. : xx0 100 000 000 10x  (12channel bits)
data: x1...............0x
ch. : xx0 100 000 000 100 000 000 10x (24channel bits)
Termination :
add data bits '01' or '11' at begin,
and '00' or '01' at the ent
-----------------------------
【００５７】
表３は、最小ランｄ＝１、最大ランｋ＝７で、拘束長ｉ＝１において基礎コードを４つ（2^m = 2^2 = 4)持つ構造をしている。すなわち、表３では、拘束長ｉ＝１の場合がメインテーブルとされ、拘束長ｉが、２以上の場合は、ｄ，ｋ等を制限するための置き換えコードのテーブルとなっている。すなわち、ｉ＝２のテーブルＡでは、最小ランｄを１に制限する置き換えコードが規定されており、ｉ＝３のテーブルＢでは、最大ランｋを８までに制限する置き換えコードが規定されており、さらに、ｉ＝４のテーブルＣ及びテーブルＤでは、最小ランｄ＝１の連続を制限する置き換えコード（テーブルＣ）と、最大ランｋを７までに制限する置き換えコード（テーブルＤ）とが規定されている。表３では、最大拘束長ｒ＝４である。
【００５８】
このように、表３は、変換テーブル内に、最小ランの連続を制限する置き換えコードを持っているので、例えば、データ列（０００１０００１）は、符号語列”１０００１００１００１０”に置き換えられる。また、データ列（１００１０００１）は、その直前の符号語列を参照して、それが”０”か”１”かによって置き換えコードが選択され、”０”ならば、”１００００００１００１０”に、”１”ならば、”００００１００１００１０”に、それぞれ変換される。これによって、データ変換後の符号語列は、最小ランの連続が制限され、最大でも６回までの最小ラン繰り返しの符号語列となる。
【００５９】
また、表３は、データ列の要素内の「１」の個数を２で割ったときの余りと、変換される符号語列の要素内の「１」の個数を２で割った時の余りが、どちらも、１あるいは０で、同一となるような変換規則を持っている。例えば、データ列の要素（１０００）は、”００００１０”の符号語列に対応しているが、それぞれの「１」の個数は、データ列では１個（奇数）、対応する符号語列では１個（奇数）であり、どちらも２で割ったときの余りが１（奇数）で一致している。同様に、データ列の要素（１１１１１１）は”００００１００１０”の符号語列に対応しているが、それぞれの”１”の個数は、データ列では６個（偶数）、対応する符号語列では２個（偶数）であり、どちらも２で割ったときの余りが０（偶数）で一致している。
【００６０】
さらに、表３は、最大拘束長であるｒ＝４のコードにおいて、最大ランｋ＝７を実現するための置き換えコードを持つ。このとき、その直前の符号語列が参照され、それが、”０１０”であるとき置き換えが実行される。例えば、データ（１１１０００００）は、直前の符号語が”０１０”であれば、符号語”０００００１０１００１０”に変換され、データ（１１１０００１０）は、直前の符号語が”０１０”であれば、符号語”１００００１０１００１０”に変換される。
【００６１】
以上より表３のテーブルにおいて、RLL符号を実現するためには、基礎コードのみによってテーブルを構成することはできない。
【００６２】
最小ランおよび最大ランを補償するために、基礎コードおよび、テーブルＡ（拘束長ｉ＝２）、テーブルＢ（ｉ＝３）を用いることで、RLL符号を作成することができる。この場合は、最大拘束長ｒ＝３となり、最小ランｄ＝１で最大ランｋ＝８、かつデータ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一となるような、符号を発生することができる。
【００６３】
また基礎コード、テーブルＡ及びテーブルＢに加えて、最小ランｄの連続を制限する置き換えコード（テーブルＣ）を持って構成する場合は、最大拘束長ｒ＝４となり、最小ランｄ＝１で最大ランｋ＝８、かつ最小ランｄの連続が有限回までに制限され、さらにデータ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一となるような、符号を発生することができる。なおこの場合では、表３内のテーブルＣのような、直前の符号語列を参照することは、必ずしも必要ではない。
【００６４】
そして、表３のように、基礎コード、テーブルＡ、Ｂに加えて、最小ランｄの連続を制限する置き換えコード（テーブルＣ）を持ち、さらに最大ランｋを７に補償する置き換えコード（テーブルＤ）を持って構成する場合は、最大拘束長ｒ＝４となり、最小ランｄ＝１で最大ランｋ＝７、かつ最小ランｄの連続が有限回までに制限され、さらにデータ列の要素内の”１”の個数を２で割った時の余りと、変換される符号語列の要素内の”１”の個数を２で割った時の余りが、どちらも１あるいは０で同一となるような、符号を発生することができる。
【００６５】
上記表３の変換テーブルを利用して発生させた符号語列（チャネルビット列）中の任意の位置に同期信号を挿入する場合、この変換テーブルは拘束長ｉ＝１において終端が可能であるから、表２で述べたような終端用テーブルは不要である。
【００６６】
そして、同期信号パターンをなるべく効率良く挿入するために、以下のように同期信号パターンを決定する。すなわち同期信号としてのユニークなパターン（符号語列）の前後の３符号語を、表３に従って変換された符号語で構成されるようにする。直前直後の３ビットは、以下に示すように、データビットと接続ビットが混合した形式となっている。
【００６７】
すなわち、直前の３ビット（符号語）は、変換前のデータ語において、ｍビット（２ビット）単位で見て、先頭の１ビット目を情報データ語とし、次の２ビット目を同期信号を規定するために「１」とし、これを変換テーブル表３において符号語（チャネルビット）に変換したものとする。このとき変換前のｍビット（２ビット）のデータ語（ｘ１）は、ｎビット（３ビット）の符号語”ｘｘ０”に変換される。
【００６８】
また直後の３ビット（符号語）は、変換前のデータ語において、ｍビット（２ビット）単位で見て、先頭の１ビット目を同期信号を規定するために「０」とし、次の２ビット目を情報データ語とする。そして、この２ビットのデータ語を変換テーブル表３により符号語（チャネルビット）に変換する。このとき、ｍビット（２ビット）のデータ語（０ｘ）は、ｎビット（３ビット）のデータ語”１０ｘ”に変換される。
【００６９】
同期信号のユニークパターンを、最大ランｋ＝７を破るパターンとしたとき、最も短い長さで実現できる同期信号パターンは、次に示すような１２符号語（１２チャネルビット）である。
”ｘｘ０ １００ ０００ ０００ １０x  ”
”ｘ”の値は変換テーブルに依存する。上の１５符号語の中には、２（＝先頭の１ビット＋最後の１ビット）データ語すなわち３符号語相当を含んでいるので、実際には１２符号語が同期信号パターンのための冗長な部分である。第３チャネルビット目は、最小ランを守るために”０”が設定される。第４チャネルビット目から、同期信号パターンとして、ｋ＝８となる９Ｔが設定される。すなわち”１”と”１”の間に、”０”が８個連続して並ぶ。
【００７０】
以上においては、同期信号パターンを最短である１２符号語（１２チャネルビット）として説明したが、同期信号パターンとしては、最大ランｋ＝７を破る、ｋ＝８（９Ｔ）が作成できれば良いので、１２符号語以上であれば、この他にも、同期信号パターンが作ることが可能である。例えば１５符号語ならば、
”ｘｘ０ １００ ０００ ０００ １００ １０ｘ”
のような同期信号を作ることができる。また、２１符号語ならば、
”ｘｘ０ １００ ０００ ０００ １００ ０００ ０００ １０ｘ”
のように、ｋ＝８（９Ｔ）のパターンを２回繰り返すパターンを同期信号パターンとすることができる。このような同期信号パターンにすれば、同期信号検出能力を強めることができる。どの程度の検出能力のパターンを同期信号パターンとするかは、システムの要求によって、選択することが出来る。
【００７１】
表２及び表３のような変換テーブルを用いた時、従来の場合と同様に、データ列を変調した後、変調後のチャネルビット列に、所定の間隔で、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制御を行うということは、チャネルビット列で表現すれば、表２及び表３の変換率（ｍ／ｎ＝２／３）より、１．５チャネルビットでDSV制御を行っていることに相当する。例えば、表１のようなRLL（１−７）テーブルにおいてDSV制御を行うためには、チャネルビット列においてDSV制御を行う必要があるが、この場合、最小ランを守るためには、少なくとも２チャネルビットが必要であり、表２と表３においてデータ語でDSV制御するのに比較して、冗長度がより大きくなってしまう。換言すれば、本方式のように、データ列内でDSV制御を行うことで、効率よくDSV制御を行うことができる。
【００７５】
次に、図１を参照して、本発明に係る変調装置の実施の形態を図面を参照しながら説明する。この実施の形態では、データ列が、表２に従って、可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）＝（１，７；２，３；４）に変換される。
【００７６】
図１に示すように、変調装置１は、DSV制御ビットである「１」あるいは「０」を決定し、入力されたデータ列に、任意の間隔で挿入するDSV制御ビット決定・挿入部１１、DSV制御ビットが挿入されたデータ列を変調する変調部１２、並びに、変調部１２の出力を記録波形列に変換するNRZI化部１３を備える。また、変調装置１は、タイミング信号を生成し、各部に供給してタイミングを管理するタイミング管理部１４を備える。
【００７７】
図２は、DSV制御ビット決定・挿入部１１の処理を説明する図である。DSV制御ビットの決定及び挿入は、データ列内の任意の間隔おきに行われる。図２に示すように、入力されたデータ語のうち、まずDATA1とDATA2の間にDSV制御ビットを挿入するために、DSVビット・決定挿入部１１は、DATA1までの積算DSVを計算する。DSV値は、DATA1を、チャネルビット列に変換し、さらにレベル符号化（NRZI化）した各レベルを、レベルＨ（１）を「＋１」、レベルＬ（０）を「−１」として、それらの値を積算することによって得られる。同様に、次の区間DATA2における区間DSVが計算される。次に、DATA1とDATA2の間に挿入されるDSV制御ビットｘ１として、DATA1、DSV制御ビットｘ１、およびDATA2によるDSVの絶対値が「ゼロ」に近づくような値を決定する。
【００７８】
DSV制御ビットｘ１を（１）に設定すると、DATA1の後の区間DATA2の変調・NRZI化後のレベル符号は反転され、また、（０）に設定すると、DATA1の後の区間DATA2の変調・NRZI化後のレベル符号は非反転となる。なぜならば、上記表２及び表３の各テーブル内の要素は、データ列の要素内の「１」の個数と、変換される符号語列の要素内の「１」の個数を、２で割った時の余りが、どちらも１あるいは０で一致するようになっているので、データ列内において、（１）を挿入することは、すなわち、変換される符号語列に”１”を挿入することになる（すなわち「反転」されることになる）からである。
【００７９】
このようにして、図２のDSV制御ビットｘ１が決定したら、次に所定のデータ間隔をおいて、DATA2とDATA3の間に、DSV制御ビットｘ２を挿入し、同様にDSV制御を行う。なおそのときの積算DSV値は、DATA1，ｘ１，そしてDATA2までの全てのDSV値とする。
【００８０】
このように、あらかじめデータ列内に、DSV制御ビットが挿入された後、変調部１２で変調が行なわれ、チャネルビット列が発生される。
【００８１】
図３は、変調部１２の構成例を示すブロック図である。図３において、シフトレジスタ３１は、データを２ビットずつシフトさせながら、拘束長判定部３２、最小ラン連続制限コード検出部３３、ラン長制限補償コード検出部３４、および全ての変換部３５−１乃至３５−４に出力するようになされている。このときシフトレジスタ３１は、各部がその処理を行うのに必要なビット数を各部に供給する。
【００８２】
拘束長判定部３２は、データの拘束長ｉを判定し、マルチプレクサ３６に出力するようになされている。最小ラン連続制限コード検出部３３は、最小ランの連続を制限する専用のコード（表２の場合、（１１０１１１））を検出したとき、その拘束長を表す検出信号（ｉ＝３）を拘束長判定部３２に出力する。またラン長制限補償コード検出部３４は、表２では最大ランを補償する専用のコード（表２の場合、（００００１０００）、または、（００００００００））を検出したとき、その拘束長を表す検出信号（ｉ＝４）を拘束長判定部３２に出力する。
【００８３】
最小ラン連続制限コード検出部３３により専用のコードが検出されたとき、あるいはラン長制限補償コード検出部３４により、専用のコードが検出されたとき、拘束長判定部３２は、対応する拘束長をマルチプレクサ３６に出力する。このとき、拘束長判定部３２では、別の拘束長を判定している場合があるが、最小ラン連続制限コード検出部３３またはラン長制限補償コード検出部３４から専用コードによる検出出力があれば、拘束長判定部３２は、そちらを優先させて拘束長を決定する。言い換えれば、より大きい拘束長が選択される。
【００８４】
変換部３５−１乃至３５−４は、内蔵されている変換テーブルを参照し、供給されたデータに対応する変換コードが登録されているか否かを判断し、登録されている場合は、そのデータを対応する符号語に変換した後、変換後の符号語をマルチプレクサ３６に出力するようになされている。また、対応するデータが変換テーブルに変換コードとして登録されていない場合、変換部３５−１乃至３５−４は、入力されたデータを破棄するようになされている。
【００８５】
なお、この変調装置１２は、表２に対応するものなので、変換部３５−ｉとしては、拘束長ｉ＝４までのものが用意されている。すなわち、変換部としては、最大拘束長ｒまでの分が用意されることになる。
【００８６】
マルチプレクサ３６は、拘束長判定部３２より供給される拘束長ｉに対応する変換部３５−ｉが変換した符号を選択し、その符号を、シリアルデータとして、バッファ３７を介して出力するようになされている。
【００８７】
また各部の動作のタイミングは、タイミング管理部１４から供給されるタイミング信号に同期して管理されている。
【００８８】
次に、この実施の形態の動作について説明する。
【００８９】
最初に、シフトレジスタ３１より、各変換部３５−１乃至３５−４、拘束長判定部３２、最小ラン連続制限コード検出部３３、およびラン長制限補償コード検出部３４に、データが、２ビット単位で、それぞれが判定等に必要なビット数だけ供給される。
【００９０】
拘束長判定部３２は、例えば表２に示す変換テーブルの基礎コード部分を内蔵しており、この変換テーブルを参照して、データの拘束長ｉを判定し、判定結果（拘束長ｉ）をマルチプレクサ３６に出力する。
【００９１】
最小ラン連続制限コード検出部３３は、表２に示す変換テーブルのうちの、最小ランの連続を制限する置き換えコード（表２の場合、データ（１１０１１１）と、後ろに続く符号語”０１０”を変換する部分）を内蔵しており、この変換テーブルを参照して、最小ランの連続を制限するコードを検出したとき、拘束長ｉ＝３の検出信号を拘束長判定部３２に出力する。
【００９２】
またラン長制限補償コード検出部３４は、表２に示す変換テーブルの中の、最大ランを守る置き換えコード（表２の場合、データ（００００１０００）および（００００００００））を内蔵しており、この変換テーブルを参照して、最大ランを守る置き換えコードを検出したとき、拘束長ｉ＝４の検出信号を拘束長判定部３２に出力する。
【００９３】
拘束長判定部３２は、最小ラン連続制限コード検出部３３から拘束長ｉ＝３の検出信号が入力された場合には、そのとき別の拘束長を判定していたとしても、それを選択せず、最小ラン連続制限コード検出部３３の検出に対応する拘束長ｉ（表２の例の場合、ｉ＝３）をマルチプレクサ３６に出力する。同様に拘束長判定部３２は、ラン長制限補償コード検出部３４から拘束長ｉ＝４の検出信号が入力された場合には、そのとき別の拘束長を判定していたとしても、それを選択せず、ラン長制限補償コード検出部３４の検出に対応する拘束長ｉ（表２の例の場合、ｉ＝４）をマルチプレクサ３６に出力する。
【００９４】
このことは、結局、各検出部３３，３４における拘束長の判定結果と、判定部３２における拘束長の判定結果が、異なった場合には、大きい方の拘束長を最終的な拘束長として選択すればよいことを意味する。
【００９５】
図４は、拘束長判定部３２、最小ラン連続制限コード検出部３３、及びラン長制限補償コード検出部３４の動作の具体例を説明している。
【００９６】
ラン長制限補償コード検出部３４は、表２に示すテーブルの、（００００１０００）および（００００００００）の変換部分を持ち、入力された８ビットのデータが、これと一致する場合、拘束長ｉ＝４の検出信号を拘束長判定部３２に出力する。
【００９７】
最小ラン連続制限コード検出部３３は、表２に示すテーブルの、データ（１１０１１１）と符号”０１０”の変換部分を持ち、入力された６ビットのデータが、（１１０１１１）であり、その後の３符号語が、”０１０”である場合、拘束長ｉ＝３の検出信号を拘束長判定部３２に出力する。なお、３符号語”０１０”の部分を、データ変換前のデータ列で表せば、（０１），（００１）又は（０００００）となる。従って最小ラン連続制限コード検出部３３は、言い換えれば、（１１０１１１）＋（０１／００１／０００００）の変換部分を持ち、入力された６ビットのデータに加えて、その後の５ビットのデータまでをさらに参照し、それらがこれらのいずれかと一致する場合（（１１０１１１０１），（１１０１１１００１）または（１１０１１１０００００）のいずれかである場合）、拘束長ｉ＝３の検出信号を拘束長判定部３２に出力する。
【００９８】
また拘束長判定部３２は、表２に示すテーブルの基礎コード部分を内蔵しており、入力された６ビットのデータが、（００００１１），（００００１０），（０００００１），あるいは（００００００）のいずれかに一致する場合、拘束長ｉ＝３と判定する。また、入力された４ビットのデータが（００１１），（００１０），（０００１）のいずれかに一致する場合、拘束長判定部３２は、拘束長ｉ＝２と判定する。さらに入力された２ビットのデータが（１１），（１０），（０１）のいずれかに一致する場合、拘束長判定部３２は、拘束長ｉ＝１と判定する。
【００９９】
ところで、入力されたデータが例えば（００００１０）であったとき、拘束長判定部３２は、拘束長ｉ＝３と判定する。しかしながら、始めの６ビットに加えて、さらに先の２ビットが（００）であったとき、ラン長制限補償コード検出部３４によって（００００１０００）が検出され、拘束長ｉ＝４と判定される。このような時、ラン長制限補償コード検出部３４からの出力信号が優先され、拘束長ｉ＝４と決定される。
【０１００】
このようにして、表２のテーブルに従って、最大拘束長である８ビットと、必要な部分の符号語列３ビットを参照して、全ての（１）と（０）からなるデータ列の拘束長が決定される。あるいは、符号語列を用いずに、データ列のみで拘束長を決定する場合は、最大で１１ビットのデータを参照して、全ての（１）と（０）からなるデータ列の拘束長が決定される。
【０１０１】
拘束長判定部３２は、このようにして判定した拘束長ｉを、マルチプレクサ３６に出力する。
【０１０２】
なお、拘束長判定部３２では、図４に示す順序とは逆に、拘束長の小さい方から、ｉ＝１，ｉ＝２，ｉ＝３，ｉ＝４の順番で拘束長を判定するようにしてもよい。
【０１０３】
変換部３５−１乃至３５−４は、それぞれ、各拘束長ｉに対応するテーブル（変換部３５−１は、ｉ＝１のテーブル、変換部３５−２は、ｉ＝２のテーブル、変換部３５−３は、ｉ＝３のテーブル、変換部３５−４は、ｉ＝４のテーブル）を有しており、供給されたデータに対応する変換則が、そのテーブルに登録されている場合、その変換則を利用して、供給された２×ｉビットのデータを３×ｉビットの符号に変換し、その符号をマルチプレクサ３６に出力する。
【０１０４】
マルチプレクサ３６は、拘束長判定部３２より供給された拘束長ｉに対応する変換部３５−ｉより符号を選択し、その符号をシリアルデータとして、バッファ３７を介して出力する。
【０１０５】
ここで例えば、表２において、拘束長ｉ＝３の最小ランの繰り返しを制限する置き換えコード（１１０１１１）が存在しないと仮定する。このときデータとして
（１１０１１１０１１１０１１１０１）
が入力されると、その変換処理は、データ（１１）（０１）（１１）（０１）…の順に行われ、
”１０１ ０１０ １０１ ０１０ １０１ ０１０ １０１ ０１０ ”
という符号語列（チャネルビット列）が生成される。
【０１０６】
このようにして生成された符号を、例えばNRZI化して、レベル符号に変換すると、「１」のタイミングにおいて、その論理が反転する信号となるので、この符号語列は、
「１１０ ０１１ ００１ １００ １１０ ０１１」
となり、２Ｔの最小反転間隔がずっと連続する。このような記録符号列は、高線密度での記録再生時には、エラーが発生し易いパターンとなる。
【０１０７】
そこで表２に示すように、最小ランの繰り返しを制限する置き換えコード（１１０１１１）を規定すると、
（１１０１１１０１１１０１１１０１）
というデータ列のうち、最初のデータ（１１０１１１０１）が、「（１１０１１１）＋”０１０”」に該当するので置き換え変換され、
”００１ ０００ ０００ ０１０ ”
となる。さらに次のデータ（１１０１１１０１）が、「（１１０１１１）＋”０１０”」に該当するので置き換え変換され、
”００１ ０００ ０００ ０１０ ”
となる。結局、符号語列は、
”００１ ０００ ０００ ０１０ ００１ ０００ ０００ ０１０ ...”
となり、最小ランの繰り返しが連続するのが防止される。すなわち、高線密度での記録再生時に、エラーが発生し易いパターンが取り除かれることになる。なお、この置き換え変換をした場合でも、最小ランおよび最大ランは守られている。
【０１０８】
以上においては、変調装置１で表２を用いた場合について説明したが、表３を用いることも可能である。この場合、図３の変調部１２の最小ラン連続制限コード検出部３３には、表３における拘束長ｉ＝４のテーブルＣを与えれば良い。また、ラン長制限補償コード検出部３４には、表３における拘束長ｉ＝２のテーブルＡ、拘束長ｉ＝３のテーブルＢ、及び拘束長ｉ＝４のテーブルＤを与えれば良い。
【０１０９】
ところで、表２及び表３における、データ列と符号語列の各拘束長内では、配列の順序は異なってもよい。たとえば表２の拘束長ｉ＝１の部分の、
0003985173.tif 000003
は、次のような配列となっても良い。
0003985173.tif 000004
この場合でもデータ列の要素の「１」の個数と、符号語列の要素の「１」の個数は、それぞれ２で割った時の余りがどちらも１あるいは０で一致するようにする。
【０１１０】
次に、本発明に係る復調装置の実施の形態を図５を参照しながら説明する。この実施の形態では、可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）＝（１，７；２，３；４）が、表２を用いてデータ列に復調される。
【０１１１】
復調装置１００は、図５に示すように、伝送路より伝送されてきた信号、または、記録媒体より再生された信号を、復調テーブル（逆変換テーブル）に基づいて復調する復調部１１１、並びに、復調されたデータ列より、任意の間隔で挿入されているデータ列内のDSV制御ビットを除去し、元のデータ列を復元するDSV制御ビット除去部１１２を備える。バッファ１１３は、DSV制御ビット除去部１１２から入力されたシリアルデータを一旦記憶し、所定の転送レートで読み出し、出力する。タイミング管理部１１４は、タイミング信号を生成し、各部に供給してタイミングを管理する。
【０１１２】
復調部１１１は、図６に示すように、伝送路より伝送されてきた信号、または、記録媒体より再生された信号を２値化するコンパレート部１２１を備える。コンパレート部１２１はまた、入力された信号がNRZI変調されている時（レベル符号である時）、これを逆NRZI符号化（エッジ符号化）する。拘束長判定部１２２は、コンパレート部１２１によりデジタル化された信号の入力を受け、拘束長ｉを判定する。また最小ラン連続制限コード検出部１２３は、コンパレート部１２１より入力されたデジタル化された信号から、最小ランの連続を制限するために与えられた専用のコード（表２の”００１００００００”）を検出し、それに対応する拘束長ｉ＝３の検出信号を拘束長判定部１２２に送る。さらにラン長制限補償コード検出部１２４は、コンパレート部１２１より入力された信号から、最大ランを補償するために与えられた専用のコード（表２の”０００１００１００１００”，”０１０１００１００１００”）を検出し、それに対応する拘束長ｉ＝４の検出信号を拘束長判定部１２２に送る。
【０１１３】
逆変換部１２５−１乃至１２５−４は、ｎ×ｉビットの可変長符号を、ｍ×ｉビットのデータに逆変換するテーブル（表２の場合、ｉ＝１乃至４のテーブルで、変換部３５−１乃至３５−４の変換テーブルと実質的に同一の変換テーブル）を有している。マルチプレクサ１２６は、逆変換部１２５−１乃至１２５−４の出力のいずれかを、拘束長判定部１２２の判定結果に対応して選択し、シリアルデータとして出力する。
【０１１４】
次に図６の復調部１１１の動作について説明する。伝送路より伝送されてきた信号、あるいは記録媒体より再生された信号は、コンパレート部１２１に入力され、コンパレートされる。コンパレート部１２１より出力された信号は、逆NRZI符号（”１”がエッジを示す符号）のデジタル信号となって、拘束長判定部１２２に入力され、表２に示す変換テーブル（逆変換テーブル）の基礎コード部分に従って、拘束長の判定処理が行われる。拘束長判定部１２２の判定結果（拘束長）はマルチプレクサ１２６に出力される。
【０１１５】
コンパレート部１２１から出力されたデジタル信号は最小ラン連続制限コード検出部１２３にも入力される。最小ラン連続制限コード検出部１２３は、表２に示す、変換テーブルのうちの、最小ランの連続を制限する置き換えコード（表２の場合、符号語”００１ ０００ ０００”を変換する部分）を内蔵しており、この逆変換テーブルを参照して、最小ランの連続を制限するコード”００１ ０００ ０００  ｎｏｔ１００”を検出したとき、拘束長ｉ＝３の検出信号を拘束長判定部１２２に出力する。
【０１１６】
さらに、コンパレート部１２１から出力されたデジタル信号はラン長制限補償コード検出部１２４にも入力される。ラン長制限補償コード検出部１２４は、表２に示す、変換テーブルの中の、最大ランを守る置き換えコード（表２の場合、符号語列”０００ １００ １００ １００”、および”０１０ １００ １００ １００”）を内蔵しており、この逆変換テーブルを参照して、最大ランを守る置き換えコードを検出したとき、拘束長ｉ＝４の検出信号を拘束長判定部１２２に出力する。
【０１１７】
入力されたデジタル信号の判定処理についてまとめると、図７に示すようになる。すなわち、ラン長制限補償コード検出部１２４は、表２に示すテーブルの、”０００ １００ １００ １００”、あるいは”０１０ １００ １００ １００”の逆変換部分を持ち、入力された１２ビットの符号語列が、これと一致する場合、拘束長ｉ＝４の検出信号を拘束長判定部１２２に出力する。
【０１１８】
最小ラン連続制限コード検出部１２３は、表２に示すテーブルの、”００１ ０００ ０００”の逆変換部分を持ち、入力された１２ビットの符号語列が、”００１  ０００  ０００  ｎｏｔ１００”と一致する場合、拘束長ｉ＝３の検出信号を拘束長判定部１２２に出力する。なお、拘束長の判定には特に必要ないが、入力された符号語列を１２ビット分見ると、このときの符号語は、”００１ ０００ ０００ ０１０”となっている。
【０１１９】
また拘束長判定部１２２は、表２に示す逆変換テーブルを内蔵しており、入力された９ビット又は１２ビットの符号語列が、”０００ １００ １００”，”０００ １００ ０００  ｎｏｔ１００”，”０１０ １００ １００”，あるいは”０１０ １００ ０００  ｎｏｔ１００”のいずれかに一致する場合、拘束長ｉ＝３と判定する。これに当てはまらない場合、入力された６ビット又は９ビットの符号語列が、”０１０ １００”，”０１０ ０００  ｎｏｔ１００”，あるいは”０００ １００”のいずれかに一致するとき、拘束長判定部１２２は、拘束長ｉ＝２と判定する。さらにこれに当てはまらない場合、入力された３ビットの符号語列が、”０００”，”１０１”，”００１”，あるいは”０１０”のいずれかに一致するときに、拘束長判定部１２２は、拘束長ｉ＝１と判定する。
【０１２０】
なお、拘束長判定部１２２、最小ラン連続制限コード検出部１２３、及びラン長制限補償コード検出部１２４の拘束長判定の処理は、拘束長の小さい方から、ｉ＝１，ｉ＝２，ｉ＝３，ｉ＝４の順番で行うようにしてもよい。
【０１２１】
拘束長を、その小さい方から、ｉ＝１，ｉ＝２，ｉ＝３，ｉ＝４の順番で判定していった場合、入力された符号語列が例えば、”０００ １００ １００ １００”であったとき、拘束長判定部１２２において、拘束長の小さいほうから順に、一致または不一致を判定していくと、拘束長ｉ＝１あるいは、拘束長ｉ＝２、拘束長ｉ＝３、そして拘束長ｉ＝４と、全ての拘束長にあてはまることになる。このような場合は、決定規則として、それぞれ判定された拘束長から最大のものを選択し、決定すればよい。
【０１２２】
逆変換部１２５−１乃至１２５−４のうち、例えば逆変換部１２５−１には、アドレス”１０１”および”０００”にデータ（１１）が、アドレス”００１”にデータ（１０）が、そしてアドレス”０１０”にデータ（０１）が、それぞれ書き込まれている。以下、逆変換部１２５−２乃至１２５−４の各逆変換テーブルも、同様に、それぞれ対応するデータが書き込まれており、供給された３×ｉビットの符号語列を、２×ｉビットのデータ列に変換し、そのデータ語をマルチプレクサ１２６に出力する。
【０１２３】
マルチプレクサ１２６は、逆変換部１２５−１乃至１２５−４より供給されたデータのいずれかを、拘束長判定部１２２の拘束長判定結果に対応して選択し、シリアルデータとして出力する。
【０１２４】
表２の逆変換テーブルを示すと、次の表４のようになる。
【０１２５】
0003985173.tif 000005
【０１２６】
次に、図８のフローチャートを参照して、DSV制御ビット除去部１１２の動作について説明する。DSV制御ビット除去部１１２は、内部にカウンタを有しており、ステップＳ１において、復調部１１１よりデータ列のビットが入力されると、その数をカウントする。ステップＳ２において、カウント値がDSV制御ビットを挿入する所定のデータ間隔に達したか否かが判定され、任意のデータ間隔ではないと判定された場合、ステップＳ３において、復調部１１１より入力されたデータがそのままバッファ１１３に出力される。これに対して、ステップＳ２において、所定のデータ間隔であると判定された場合、そのビットはDSV制御ビットであるから、ステップＳ３の処理はスキップされる。すなわち、この場合には、そのビットはバッファ１１３に出力されず、廃棄される。
【０１２７】
次に、ステップＳ４に進み、次のデータを入力する処理が実行される。そして、ステップＳ５において、全てのデータに対する処理が終了したか否かが判定され、まだ処理していないデータが存在する場合には、ステップＳ１に戻り、それ以降の処理が繰り返し実行される。ステップＳ５において、全てのデータを処理したと判定された場合、処理は終了される。
【０１２８】
以上のようにして、DSV制御ビット除去部１１２より出力されるデータからは、DSV制御ビットが除去されることになる。このデータは、バッファ１１３を介して出力される。
【０１２９】
以上においては、復調装置１００に表２の変換テーブル（表４の逆変換テーブル）を用いた場合について説明したが、表３の変換テーブル（表５に示す表３に対応する逆変換テーブル）を用いた場合にも、同様の処理を実行することができる。この場合、図６の最小ラン連続制限コード検出部１２３には、表３における拘束長ｉ＝４のテーブルＣを与えれば良い。また、ラン長制限補償コード検出部１２４には、表３における拘束長ｉ＝２のテーブルＡ、拘束長ｉ＝３のテーブルＢ、及び拘束長ｉ＝４のテーブルＤを与えれば良い。
【０１３０】
0003985173.tif 000006
【０１３１】
ところで、データに同期信号（Ｓｙｎｃ）を挿入する必要がある場合がある。次に、この場合の変調装置１と復調装置１００について、図９と図１０を参照して説明する。これらの実施の形態でも、データ列が、表２に従って、可変長符号（ｄ，ｋ；ｍ，ｎ；ｒ）＝（１，７；２，３；４）に変調され、また復調されるものとする。
【０１３２】
所定の間隔で同期信号を挿入する変調装置１においては、図９に示すように、DSV制御ビット決定・挿入部１１の出力が、同期信号決定部２１１に供給される。同期信号決定部２１１にはまた、変調部１２の出力も供給されている。同期信号決定部２１１は、入力されたこれらの信号から同期信号を決定し、その出力を同期信号挿入部２１２に出力している。同期信号挿入部２１２は、変調部１２より入力される変調信号に、同期信号決定部２１１より入力される同期信号を挿入し、NRZI化部１３に出力している。その他の構成は、図１における場合と同様である。
【０１３３】
同期信号決定部２１１は、同期信号パターンを２４符号語とするとき、表２に従って、同期信号を、
”＃０１ ００１ ０００ ０００ ００１ ０００ ０００ ００１”
と決定する。”＃”は、同期信号の挿入により区切られた、直前のデータ列（DSV制御ビットは含んで良い）に依存しており、区切られたデータ列を変換テーブルに従って変調した際に、終端テーブルを用いて終端させた場合には
”＃”＝”１”
とされ、また終端テーブルを用いずに、表２のテーブルにより終端した場合には”＃”＝”０”
とされる。変調部１２は、終端テーブルを用いた場合には、”＃”＝”１”を、用いない場合には、”＃”＝”０”を、同期信号決定部２１１に出力する。同期信号決定部２１１は、変調部１２から、この”＃”の値の入力を受けると、これを同期信号の先頭ビットに挿入する。そして、その同期信号を同期信号挿入部２１２に出力する。
【０１３４】
同期信号挿入部２１２は、同期信号決定部２１１から入力される同期信号を、変調部１２の出力に挿入し、NRZI化部１３に出力する。その他の動作は、図１における場合と同様である。
【０１３５】
同期信号が挿入された後の最初のデータは、その先頭から（同期信号の直前のデータを考慮することなく）変換処理される。変調部１２、および同期信号決定部２１１は、同期信号が挿入される所定の間隔をカウントするためのカウンタを備え、そのカウント値に対応して、同期信号の位置を決定する。
【０１３６】
なお、図９の例では表２の変換テーブルを用いるようにしたが、表３の変換テーブルを用いることも可能である。この場合、例えば図９における同期信号決定部２１１は、表３の同期信号パターンとして、１２符号語の同期信号を採用するとき、
”ｘｘ０ １００ ０００ ０００ １０ｘ”
を同期信号とする。”ｘ”は、同期信号挿入により区切られた、直前及び直後のデータ列（DSV制御ビットは含んで良い）に依存しており、先頭の３符号語と最後の３符号語は、表３により決定される。すなわち同期信号の挿入により区切られた最後のデータ列を（ｐ）、また、その直後の先頭のデータ列を（ｑ）とすると、（ｐ１）として、表３を用いて変換し、その後に”１００ ０００ ０００”を挾み、最後に（０ｑ）として、表３を用いて変換する。こうすることで、同期信号として必要な最大ランｋを破る、ｋ＝８（９Ｔ）を必ず発生することができる。
【０１３７】
図１０は、図９の変調装置１により変調された符号を復調する復調装置１００の構成例を表している。この例においては、所定の伝送経路を介して入力された符号が、復調部１１１と同期信号識別部２２１に入力されている。同期信号識別部２２１は、入力された符号を用いて、同期信号を識別し、識別信号を同期信号除去部２２２及び復調部１１１に出力している。同期信号除去部２２２は、復調部１１１から入力された復調信号から、同期信号識別部２２１の出力に対応して同期信号を除去し、同期信号を除去した信号をDSV制御ビット除去部１１２に出力している。その他の構成は、図５における場合と同様である。
【０１３８】
同期信号識別部２２１は、内蔵するカウンタで符号語をカウントし、そのカウント値から所定の間隔で挿入されている同期信号の位置を決定する。同期信号パターンの位置が判明したとき、同期信号識別部２２１は、次に変調時に定めた”＃”の部分を読み取る。即ち同期信号ビット部分の先頭ビットを読み取り、それを復調部１１１に出力する。復調部１１１は、先頭ビットが”１”であれば、その直前の符号の復調には、表２の終端テーブルを用いる。また先頭ビットが”０”であれば、復調部１１１は、その直前の符号の復調には、表２の変換コードのテーブルを用いる。これ以外の同期信号ビットは、情報を持たないビットであるから不要となる。
【０１３９】
同期信号識別部２２１は、同期信号を構成するビットを識別する識別信号を同期信号除去部２２２に出力する。同期信号除去部２２２は、復調部１１１より入力されたデータから、この識別信号によって指定された同期信号ビットだけを除去し、DSV制御ビット除去部１１２に出力する。
【０１４０】
なお、図１０では表２の変換テーブルを用いるようにしたが、表３の変換テーブルを用いることもできる。この場合、例えば図１０における同期信号識別部２２１は、所定の間隔で挿入されている同期信号の位置をカウンタの値から決定する。同期信号パターンの位置が判明したとき、同期信号識別部２２は、同期信号パターンの先頭の３符号語、及び、最後の３符号語を指定する信号を復調部１１１に出力する。これらの符号語には、データ列が含まれているので、これを含めるように復調部１１１で復調が行われる。
【０１４１】
同期信号識別部２２１は、同期信号のデータ部分を除くユニークパターンの部分のビットを指定する信号を同期信号除去部２２２に出力する。同期信号除去部２２２は、この信号に対応して同期信号ビット（ユニークパターンのビット）だけを除去する。
【０１４２】
図１１に同期信号とDSV制御ビットを挿入した記録符号列の例を示す。この例では、同期信号として２４符号語が用いられ、DSV制御は５６データビット置きに行なわれ、５回のDSV制御ごとに同期信号が挿入されている。このとき、同期信号ごとの符号語数（チャネルビット数）は、
２４＋（１＋５６＋１＋５６＋１＋５６＋１＋５６＋１＋５６＋１）×１．５
＝ ４５３ 符号語（チャネルビット）
となる。このときのデータ語の冗長度は、次のように、約７．３％となる。
0003985173.tif 000007
【０１４３】
発明者等は、以上の変換テーブルを用いた変調結果をシミュレーションしてみた。Ｔminの連続を制限し、かつデータ列内においてDSV制御ビットを挿入したデータ列を変調した結果について以下に示す。シミュレーションには、表２及び表３が用いられた。さらに比較のために、従来のRLL（１−７）変調である表１についてもシミュレーションが行われた。
【０１４４】
任意に作成したランダムデータ１３１０７２００ビットを、５６データビットおきにDSV制御ビットを１ビットを挿入することでDSV制御した後、表２または表３の変調コードテーブルを用いて、符号語列（チャネルビット列）に変換した場合の結果は以下の通りである。また同様に、任意に作成したランダムデータ１３１０７２００ビットを、表１の変調コードテーブルを用いて、符号語列（チャネルビット列）に変換し、さらに１１２符号語（チャネルビット）おきに、DSV制御ビットとして２チャネルビットを挿入することでDSV制御を行った時の結果は以下の通りである。
【０１４５】
ここで、表２、表３では５６データビットおき、また、表１では１１２符号語おきとしたのは、DSV制御ビットの冗長度を同一にするためである。このように、DSV制御の必要ビット数に差がある場合には、冗長度をそろえて考えた時、効率良くDSV制御が行える表２や表３の方が、表１に較べて低域特性が良好となる。
【０１４６】
また、各結果の数値は以下のようにして計算した。
Ren_cnt[1 to 10]: 最小ランの繰り返し１回乃至１０回の各発生数。
T_size[2 to 10]: ２Ｔ乃至１０Ｔの各ランの発生数。
Sum : Number of bits. ビット総数。
Total: Number of runlengths. 各ラン（２Ｔ，３Ｔ，…）の発生総数
Average Run : (Sum/Total)
ラン分布の数値： (T_size[i] * (i) ) / (Sum) ,   i=2,3,4,,,10
表６の２Ｔ乃至１０Ｔの欄に示す数値が、このラン分布の数値を表す。
最小ランの連続する分布の数値： (Ren_cnt[i] * (i) ) / T_size[2T],
i=1,2,3,4,,,10
表６のRMTR(1)乃至RMTR(9)の欄に示す値が、この最小ランの連続する分布の数値を表す。
max-RMTR: 最小ランの繰り返す、最大回数。
peak DSV: チャネルビット列のDSV制御を行う過程において、DSV値を計算したときのDSV値のプラス側のピーク及びマイナス側のピークを言う。
DSV制御ビットとして５６データ列おきにDSV制御ビットを挿入した場合の冗長率は、５６データ列に対してDSV制御ビット１ビットであるから、次のようになる。
１／（１＋５６）＝ １．７５％
また、DSV制御ビットとして１１２符号語列おきに２ビットのDSV制御ビットを挿入した場合の冗長率は、１１２符号語列に対してDSV制御ビット２ビットであるから、次のようになる。
２／（２＋１１２）＝ １．７５％
すなわち同じ冗長率である。
【０１４７】
＜表６＞

<表２>       <表３>                   <表１>
+2bit-DCC (Without-DCC)
(DSV制御)  (DSV制御なし)
Average Run     3.3665       3.4048              3.3016        3.2868
Sum           20011947     20011947            20011788      19660782
Total          5944349      5877654             6061150       5981807
2T             0.2256       0.2246              0.2417        0.2419
3T             0.2217       0.2069              0.2234        0.2281
4T             0.1948       0.1935              0.1902        0.1915
5T             0.1499       0.1491              0.1502        0.1511
6T             0.1109       0.1094              0.1135        0.1141
7T             0.0579       0.0814              0.0561        0.0544
8T             0.0392       0.0351              0.0218        0.0188
9T             ------       ------              0.0023        ------
10T             ------       ------              0.0009        ------
RMTR(1)         0.3837       0.3890              0.3628        0.3641
RMTR(2)         0.3107       0.3137              0.2884        0.2883
RMTR(3)         0.1738       0.1906              0.1717        0.1716
RMTR(4)         0.0938       0.0806              0.0909        0.0907
RMTR(5)         0.0299       0.0228              0.0456        0.0452
RMTR(6)         0.0081       0.0033              0.0219        0.0217
RMTR(7)         ------       ------              0.0100        0.0099
RMTR(8)         ------       ------              0.0047        0.0046
RMTR(9)         ------       ------              0.0022        0.0022
max-RMTR          6            6                   18            18
======================================================================
peak DSV      # -36to36    # -35to40         * -46to43   * -1783to3433
("#":56data-bit+1dc-bit, 1.75%)  ("*":112cbit+2dc-cbit, 1.75%)
======================================================================
【０１４８】
上の結果より、表２及び表３を用いると、RLL（１，７）方式となっていること、最小ランと最大ランが守られ、かつ最小ランの連続が最大で６回までに制限されていることが確認された。また、peak DSVの結果より、データ列内でDSV制御を行うことができる（peak DSVの値が所定の範囲内に納められている）こと、この場合、DSV制御ビットの効率がよいので、従来の符号語列（チャネルビット列）にDSV制御ビットを挾む方法よりも良好な低域成分を得ることができる（peak DSVの振れ幅が、表１の場合、８９（＝４６＋４３）であるのに対して、表２の場合、７２（＝３６＋３６）、表３の場合、７５（＝３５＋４０）と、表１の場合の値より小さくなっている）ことが確認された。
【０１４９】
以上より、従来のRLL（１−７）方式（表１の方式）と比較すると、表２または表３を用いる方式は、最小ランの繰り返しが多くても６回までに制限することが出来るので、高線密度におけるエラー特性の改善を見込むことが出来る。
【０１５０】
また、DSV制御の効率が良いので、同じ冗長度 1.75% でDSV制御を行うと、表２又は表３の方式の方がピークDSV値の差が小さく出来、したがって、より低域成分を抑制することが可能となるので、安定したデータ記録再生を行うことが出来る。
【０１５１】
さらに、シミュレーションにおいて、上述した場合と同一のランダムデータを使って発生させたチャネルビット列における、ビットシフト時の復調エラー伝搬特性を調べたところ、表２及び表３のの最悪エラー伝搬は、３バイトであるが、実際の発生頻度はほとんどないことが確認され、従来のRLL（１−７）に較べての悪化はそれほどではない（平均バイトエラーレートは、表１の場合、１．０１４バイトであるのに対して、表２の場合、１．１６７バイトであり、表３の場合、１．１７４バイトである）ことが確認された。なお、このエラーレートの結果の数値は、本発明によるテーブルではDSV制御ビットを含み、また従来RLL（１−７）では含んでいない。すなわち必ずしも同じ条件での測定とは言えず、これらが数値に影響を及ぼすことが考えられ、比較にあたってはその点を考慮する必要がある。
【０１５２】
＜表７＞
Shift error response
<表２>     <表３>           <表１>
+2bit-DCC
worst case           3 Bytes    3 Bytes         2 Bytes
(dc bit)              in.        in.            without
Byte error(0)        0.028      0.096            0.080
Byte error(1)        0.777      0.635            0.826
Byte error(2)        0.195      0.268            0.094
Byte error(3)        0.000      0.001            -----
Average -
Byte error rate      1.167Byte  1.174Byte        1.014Byte
【０１５３】
以上のように、この実施の形態は、最小ランｄ＝１、最大ランｋ＝７、変換率ｍ／ｎ＝２／３の変換テーブルにおいて、最小ラン長の繰り返し回数を制限する置き換えコードを設けるようにしたので、
（１）高線密度での記録再生、及び、タンジェンシャル・チルトに対する許容度が向上する。
（２）信号レベルが小さい部分が減少し、ＡＧＣやＰＬＬ等の波形処理の精度が向上し、総合特性を高めることができる。
（３）従来と比較して、ビタビ復号等の際のパスメモリ長を短く設計することができ、回路規模を小さくすることができる。
【０１５４】
また、変換テーブルの要素内の「１」の個数と、変換される符号語列の要素内の「１」の個数を、２で割った時の余りが、どちらも１あるいは０で一致するようにしたので、
（４）DSVの制御のための冗長ビットを少なくすることができる。
（５）最小ランｄ＝１かつ(m,n)=(2,3)においては、1.5符号語でDSV制御を行うことができる。
（６）冗長度が少ない上に、最小ランと最大ランを守ることができる。
【０１５５】
さらに本テーブルは特に、ラン長制限を守る置き換えコードを設けるようにしたので、
（７）テーブルがコンパクトになる。
（８）ビットシフト時の復調エラー伝搬を、表１の場合と殆ど同じ状態にすることができる。
【０１５６】
なお、上記したような処理を行うコンピュータプログラムをユーザに提供する提供媒体としては、磁気ディスク、CD-ROM、固体メモリなどの記録媒体の他、ネットワーク、衛星などの通信媒体を利用することができる。
【０１５７】
【発明の効果】
以上の如く、請求項１に記載の変調装置、請求項２５に記載の変調方法、請求項２６に記載のデータ格納媒体、請求項２７に記載の復調装置、および請求項３０に記載の復調方法によれば、データ列の要素内の「１」の個数と、変換される符号語列の要素内の「１」の個数を、２で割った時の余りが、どちらも１あるいは０で一致するような変換規則、最小ランｄの連続を有限回以下に制限する第１の置き換えコード、およびラン長制限を守るための第２の置き換えコードを有する変換テーブルで変換処理を行うようにしたので、少ない冗長度でDSV制御を行うことができるとともに、高線密度でエラーの少ない符号語列を記録再生することが可能となり、さらに、ビットシフト時の復調エラー伝搬の増加を抑制することができる。
【図面の簡単な説明】
【図１】本発明の変調装置の構成例を示すブロック図である。
【図２】図１のDSV制御ビット決定・挿入部１１の動作を説明する図である。
【図３】図１の変調部１２の構成例を示すブロック図である。
【図４】図３の変調部１２の動作を説明する図である。
【図５】本発明の復調装置の構成例を示すブロック図である。
【図６】図５の復調部１１１の構成例を示すブロック図である。
【図７】図６の復調部１１１の動作を説明する図である。
【図８】図５のDSV制御ビット除去部１１２の処理を説明するフローチャートである。
【図９】本発明の変調装置の他の構成例を示すブロック図である。
【図１０】本発明の復調装置の他の構成例を示すブロック図である。
【図１１】同期信号とDSV制御ビットを挿入した記録符号列の例を示す図である。
【符号の説明】
１１  DSV制御ビット決定・挿入部，  １２  変調部，  １３  NRZI化部，  ３１  シフトレジスタ，  ３２  拘束長判定部，  ３３  最小ラン連続制限コード検出部，  ３４  ラン長制限補償コード検出部，  ３５−１乃至３５−４  変換部，  ３６  マルチプレクサ，  ３７  バッファ，  １１１  復調部，  １１２  DSV制御ビット除去部，  １２１  コンパレート部，  １２２  拘束長判定部，  １２３  最小ラン連続制限コード検出部，  １２４  ラン長制限補償コード検出部，  １２５−１乃至１２５−４  逆変換部，  １２６  マルチプレクサ
【図１】
0003985173.tif 000008
【図２】
0003985173.tif 000009
【図３】
0003985173.tif 000010
【図４】
0003985173.tif 000011
【図５】
0003985173.tif 000012
【図６】
0003985173.tif 000013
【図７】
0003985173.tif 000014
【図８】
0003985173.tif 000015
【図９】
0003985173.tif 000016
【図１０】
0003985173.tif 000017
【図１１】
0003985173.tif 000018