(57)【特許請求の範囲】
【請求項１】
８／１６変調において入力コードに対応する複数の変換コードが４パターン有り、該入力コードに対応する複数の変換コードの中から重複しているコードを重複しないように省いた変換コードが記憶された変換用テーブルと、
前記複数の変換コードの中から省かれた変換コードとこの省かれた変換コードと重複している変換用テーブル内の変換コードとの対応関係を示す重複情報が記憶された前処理テーブルと、
前記入力コードに対応する複数の変換コードの中から使用する変換コードを指定するコード指定手段と、
コード指定手段の指定と前処理テーブルの前記重複情報に基づいて、変換用テーブルから入力コードに対応する変換コードを読み出すコード変換手段と
を含むコード変調装置。
【請求項２】
前記コード変換手段が、
コード指定手段が前記複数の変換コードから省かれた変換コードを指定した場合でも、前処理テーブルの前記重複情報に基づいて、その省かれた変換コードと重複している変換用テーブル内の変換コードを特定する手段
を含む請求項１のコード変調装置。
【請求項３】
前記複数の変換コードの中に、コード指定手段に指定された変換コードの代わりに使用することのできる変換コード（以下、代用可能変換コードという）が存在し、
前記前処理テーブルが、前記指定された変換コードと前記代用可能変換コードとの選択に用いるコード選択情報を含み、
前記コード変換手段が、前記コード選択情報に基づいて、前記指定された変換コードと前記代用可能変換コードのどちらかを選択するコード選択手段を含む請求項１又は請求項２のコード変調装置。
【請求項４】
前記コード選択情報が、前記指定された変換コードのデジタル・サム・バリューと前記代用可能変換コードのデジタル・サム・バリューとの中心値を含み、
前記コード選択手段が、前記デジタル・サム・バリューの中心値の極性を反転させた値と現在までコード変換に使用した変換コードのデジタル・サム・バリューの累積値との比較を行う比較手段を含む請求項３のコード変調装置。
【請求項５】
前記コード選択情報が、前記指定された変換コードと前記代用可能変換コードのどちらかを指定する優先情報を含む請求項３又は請求項４のコード変調装置。
【請求項６】
前記入力コードが８ビットのコードであり、
前記変換コードが１６ビットのコードであり、
変換後のコードを変換順につないだコード内の“１”と“１”の間の“０”の数が２個以上１０個以下である請求項１乃至請求項５のいずれかのコード変調装置。
【請求項７】
前記前処理テーブルが、前記代用可能変換コードの先頭の“０”の数を含み、
前記コード選択手段が、直前のコード変換に使用した変換コードと前記代用可能変換コードの先頭の“０”の数に基づいて、前記直前のコード変換に使用した変換コードに前記代用可能変換コードをつないだ場合の“１”と“１”の間の“０” の数が２個以上１０個以下であることを確認する手段を含む請求項３のコード変調装置。
【請求項８】
前記コード指定手段が、直前のコード変換に使用した変換コードに基づいて、次のコード変換に使用する変換コードを求める手段を含む請求項１のコード変調装置。
【請求項９】
前記変換用テーブルが、各変換コードに付加された、その変換コードを使用したコード変換の次のコード変換に使用する変換コードを指定する情報を含み、
前記コード指定手段が、入力コードの変換に使用した変換コードに付加されている前記次のコード変換に使用する変換コードを指定する情報を記憶する手段を含む請求項１のコード変調装置。
【請求項１０】
８／１６変調において入力コードに対応する複数の変換コードが４パターン有り、該入力コードに対応する複数の変換コードの中から使用する変換コードを指定するコード指定ステップと、
前記複数の変換コード内の重複している変換コードを示す重複情報が記憶された前処理テーブルから、入力コードに対応する複数の変換コードの重複情報を読み出すステップと、
前記複数の変換コードの中から重複しているコードを重複しないように省いた変換コードが記憶された変換用テーブルから、コード指定ステップの指定と前処理テーブルから読み出した重複情報に基づいて、入力コードに対応する変換コードを読み出すコード変換ステップと
を含むコード変調方法。
【請求項１１】
前記コード変換ステップが、
コード指定ステップの指定が前記複数の変換コードから省かれた変換コードを指定した場合でも、前処理テーブルから読み出した重複情報に基づいて、その省かれた変換コードと重複している変換用テーブル内の変換コードを特定するステップを含む請求項１０のコード変調方法。
【請求項１２】
前記コード変換ステップが、
前記複数の変換コードの中に、前記コード指定ステップで指定された変換コードの代わりに使用することのできる変換コード（以下、代用可能変換コードという）が存在することを確認するステップと、
前記指定された変換コードと前記代用可能変換コードとの選択に用いるコード選択情報が記憶された前処理テーブルから、前記存在が確認された代用可能変換コードのコード選択情報を読み出すステップと、
読み出したコード選択情報に基づいて、前記指定された変換コードと前記代用可能変換コードのどちらかを選択するコード選択ステップと
を含む請求項１０又は請求項１１のコード変調方法。
【請求項１３】
前記コード選択情報に、前記指定された変換コードのデジタル・サム・バリューと前記代用可能変換コードのデジタル・サム・バリューとの中心値が含まれ、
前記コード選択ステップが、
前記デジタル・サム・バリューの中心値の極性を反転させた値を求めるステップと、
現在までコード変換に使用した変換コードのデジタル・サム・バリューの累積値を求めるステップと、
前記デジタル・サム・バリューの中心値の極性を反転させた値と前記デジタル・サム・バリューの累積値との比較を行う比較ステップと
を含む請求項１２のコード変調方法。
【請求項１４】
前記コード選択情報に、前記指定された変換コードと前記代用可能変換コードのどちらかを指定する優先情報が含まれ、
前記コード選択ステップが、前記デジタル・サム・バリューの中心値の極性を反転させた値と前記デジタル・サム・バリューの累積値とが等しい場合に、前記優先情報に基づいて、前記指定された変換コードと前記代用可能変換コードのどちらかを選択するステップを含む請求項１３のコード変調方法。
【請求項１５】
前記コード選択情報に、前記指定された変換コードの代わりに使用することのできる変換コードの先頭の“０”の数が含まれ、
前記コード選択ステップが、
直前のコード変換に使用した変換コードと前記代用可能変換コードの先頭の“０”の数に基づいて、前記直前のコード変換に使用した変換コードに前記代用可能変換コードをつないだ場合の“１”と“１”の間の“０”の数を求めるステップと、
求めた“１”と“１”の間の“０”の数が２個以上１０個以下であることを確認するステップと
を含む請求項１２乃至請求項１４のいずれかのコード変調方法。
【請求項１６】
前記コード指定ステップが、直前のコード変換に使用した変換コードに基づいて、次のコード変換に使用する変換コードを求めるステップを含む請求項１０乃至請求項１５のいずれかのコード変調方法。
【請求項１７】
前記コード指定ステップが、
入力コードの変換に使用した変換コードに付加されている、その変換コードを使用したコード変換の次のコード変換に使用する変換コードを指定する情報を記憶するステップと、
次の入力コードの変換時に、この記憶した次のコード変換に使用する変換コードを指定する情報を読み出すステップと
を含む請求項１０乃至請求項１６のいずれかのコード変調方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コード（符号）変調装置及び変調方法に関し、より詳しくは、入力コードに対応する変換コードが記憶されたテーブルに基づいて入力コードの変換を行う変調装置及び変調方法に関し、さらに詳しくは、ＤＶＤ（Digital VideoDisk）等の光ディスクに書き込むコードの変調装置及び変調方法に関する。
【０００２】
【従来の技術】
ＤＶＤのコード変調には、８／１６変調と呼ばれる変調方式が用いられている。８／１６変調は、８ビットの入力コードを１６ビットのコードに変換し、変換した１６ビットのコードを直前の入力コードを変換した１６ビットのコードに続けて記録する。ディスクに記録されるコードには、“１”と“１”の間の“０”の数が２個以上１０個以下という条件（以下、ＲＬＬ（２．１０）の条件ともいう）が定められている。８ビットから１６ビットへの変換は、入力コードに対応する変換コードが記憶された変換テーブルに基づいて行われる。
【０００３】
図１０に、８／１６変調を行うコード変調装置８０の一構成例を示す。この変調装置８０は、８ビット（０〜２５５）の入力コードを１６ビットのコードに変換する。変調装置８０は、変換テーブル８４とコード変換部８２を含んだ構成になっている。
【０００４】
変換テーブル８４は、メイン・テーブルとサブ・テーブルを含む。メイン・テーブルには、図１１に示すように、０〜２５５の各入力コードに対応する複数（ＳＴＡＴＥ１，２，３，４）の変換コードが記憶されている。サブ・テーブルには、図１２に示すように、０〜８７の各入力コードに対応する複数（ＳＴＡＴＥ１，２，３，４）の変換コードが記憶されている。変換用テーブル８４には、通常ＲＯＭ（Read Only Memory）を用いる。
【０００５】
各変換コードには、その変換コードを入力コードの変換に使用した場合に、次の入力コードの変換に使用する変換コードのＳＴＡＴＥを指示する値ＮＳ（ＮＳ＝１，２，３又は４）が付加されている。例えば、入力が２５５でＳＴＡＴＥが「３」の変換コードを使用した場合、その変換コードのＮＳの値は「２」なので、次の入力（例えば８９）のコード変換には、入力が８９でＳＴＡＴＥが「２」の変換コードを使用する。
【０００６】
次のＳＴＡＴＥ（ＮＳ）及び各変換コードについて説明すると、入力コードの変換に使用した変換コードが“１”又は“１  ０”で終わった場合、本例では次のコード変換に使用する変換コードに、ＳＴＡＴＥ１の変換コードを指定する。この場合、ＲＬＬ（２．１０）の条件を必ず満たすように、ＳＴＡＴＥ１の変換コードは２個以上９個以下の連続した“０”で始まる。
【０００７】
入力コードの変換に使用した変換コードが２個以上５個以下の連続した“０”で終わった場合、本例では次のコード変換に使用する変換コードに、ＳＴＡＴＥ２又はＳＴＡＴＥ３の変換コードを指定する。このとき、ＲＬＬ（２．１０）の条件を必ず満たすように、ＳＴＡＴＥ２及びＳＴＡＴＥ３の変換コードは“１”で始まるか、１個以上５個以下の連続した“０”で始まる。ただし、ＳＴＡＴＥ２の変換コードは、最初のビット及び１３番目のビットが共に“０”であり、ＳＴＡＴＥ３の変換コードは、最初のビット又は／及び１３番目のビットが“１”である。
【０００８】
入力コードの変換に使用した変換コードが６個以上９個以下の連続した“０”で終わった場合、本例では次のコード変換に使用する変換コードに、ＳＴＡＴＥ４の変換コードを指定する。このとき、ＲＬＬ（２．１０）の条件を必ず満たすように、ＳＴＡＴＥ４の変換コードは最初が“１”又は“０  １”で始まる。
【０００９】
このように、各変換コードに付加されたＮＳ（次のＳＴＡＴＥ）で指定されるＳＴＡＴＥの変換コードを、次の入力コードの変換に使用することにより、常にＲＬＬ（２．１０）の条件が満たされる。
【００１０】
コード変換部８２は、後述するＤＳＶ（デジタル・サム・バリュー）の演算を行う演算器２２と、ＤＳＶの比較を行う比較器２４と、後述する現在までのＤＳＶや上述した次のコード変換に使用する変換コードのＳＴＡＴＥ（ＮＳ）が記憶されるメモリ（記憶装置）２８と、メモリ２８のＮＳ値に基づいて次に使用する変換コードのＳＴＡＴＥを指示したり、演算器２２や比較器２４を制御して入力コードの変換を行う制御部２６とを含む。
【００１１】
入力コードが変換される度に、その変換コードに付加されているＮＳの値（１，２，３又は４）がメモリ２８に記憶される。メモリ２８に記憶されたＮＳの値によって、次の入力コードの変換時に、ＳＴＡＴＥ１〜ＳＴＡＴＥ４の中からどの変換コードを使用するか指示することができる。
【００１２】
このように、メモリ２８に記憶されたＮＳの値により、入力コードに対応する複数（ＳＴＡＴＥ１〜４）の変換コードの中から、使用する変換コードを特定することができる。しかし、図１１及び図１２に示すように、０〜８７の入力コードに対しては、メイン・テーブルとサブ・テーブルの２種類の変換コードが存在する。そのため、どちらかの変換コードを選択する必要がある。コードの変換手順は、入力コードが０〜８７の場合と８８〜２５５の場合とで異なる。
【００１３】
入力コードが０〜８７の場合は、メイン・テーブルとサブ・テーブルのどちらかの変換コードを選択する。この変換コードの選択は、ＤＳＶを用いて行う。ＤＳＶは、図１３に示すように、コード中に“１”が現れる度に極性を反転させたビット出力の積分値である。実際の選択には、現在までのコード変換に使用した変換コードのＤＳＶの累積値（以下、現在までのＤＳＶともいう）を用いる。この現在までのＤＳＶは、入力コードの変換が行われる度に演算器２２で算出し、メモリ２８に記憶する。この現在までのＤＳＶがゼロに近づくように変換コードの選択を行う。
【００１４】
具体的には、メモリ２８からＮＳ（次のＳＴＡＴＥ）の値を読み出せば、入力コードとＳＴＡＴＥに基づいて変換コードが特定できる。そこで、メイン・テーブル側で特定された変換コードを読み出し、この変換コードを用いた場合のＤＳＶを求める。このＤＳＶは、メモリ２８に記憶されている現在までのＤＳＶに、この変換コード自身のＤＳＶを加算して求める。同様に、サブ・テーブル側で特定された変換コードを読み出し、この変換コードを使用した場合のＤＳＶを求める。その後、この求めた両者のＤＳＶを比較して、ゼロに近い方の変換コードを選択する。
【００１５】
両者の絶対値が等しく、ゼロに近い方が定まらない場合は、変換コードの極性の反転回数の多い方を選択する。もし、極性の反転回数が等しい場合は、メイン・テーブルの方を選択する。この両者の絶対値が等しい場合の選択は、極性の反転回数を考慮せずに、常にメイン・テーブルの変換コードを選択する等、処理を簡略化することもできる。
【００１６】
入力コードが８８〜２５５の場合は、メイン・テーブルの変換コードを使用する。ただし、メモリ２８のＮＳ値によってＳＴＡＴＥ１が指定された場合は、ＳＴＡＴＥ１の代わりにＳＴＡＴＥ４の変換コードを使用することもできる。同様に、ＳＴＡＴＥ４が指定された場合は、ＳＴＡＴＥ４の代わりにＳＴＡＴＥ１の変換コードを使用することもできる。
【００１７】
このＳＴＡＴＥ１とＳＴＡＴＥ４との選択では、元々指定された変換コードとは異なる変換コードを用いるので、変換後のコードがＲＬＬ（２．１０）の条件を満たさない場合がある。そのため、代わりに使用する変換コードに対して、その変換コードを用いた場合に、“１”と“１”の間の“０”の数が２個以上１０個以下となっているか確認する必要がある。ＲＬＬ（２．１０）の条件を満たしていない場合は、元々指定されていたＳＴＡＴＥの変換コードを使用する。ＲＬＬ（２．１０）の条件を満たしていれば、上述した入力コードが０〜８７の場合のメイン・テーブルとサブ・テーブルの選択と同様に、ＤＳＶを用いてＳＴＡＴＥ１とＳＴＡＴＥ４の選択を行う。
【００１８】
このように、入力コードの変換は、入力コードとメモリ２８のＮＳ値に基づいて、メイン・テーブルから変換コードを読み出し、この変換コードを用いた場合のＤＳＶの計算を行う。続いて、入力が０〜８７の場合は、サブ・テーブルの選択候補となる変換コードを読み出し、この変換コードを用いた場合のＤＳＶの計算を行う。入力が８８〜２５５の場合は、メイン・テーブル内に他の選択可能な変換コードが存在するか否かを調べ、他の選択可能な変換コードが存在すれば、その変換コードを用いた場合のＲＬＬ（２．１０）のチェックを行う。ＲＬＬ（２．１０）の条件を満たしていれば、その変換コードを用いた場合のＤＳＶの計算を行う。その後、両者のＤＳＶを比較して変換コードを選択する。
【００１９】
現在、ＤＶＤの転送速度は年々上昇しており、コードの変調速度も転送速度に合わせて向上させる必要がある。しかし、上述したコード変調装置及び変調方法では、コードの選択を行う際に、変換テーブルから２度に渡ってコードを読み出す必要がある。また、読み出された変換コードに対して、ＤＳＶの演算やＲＬＬ（２．１０）のチェック等を行う必要がある。さらに、変換テーブルのサイズが大きく、記憶素子の占有面積が大きくなるという問題や、素子数が多いために消費電力が大きくなるという問題がある。図１１及び図１２の変換テーブル８４では、
２５６×４  ＋  ８８×４  ＝  １３７６個
の変換コードが記憶されている。
【００２０】
【発明が解決しようとする課題】
本発明の目的は、変換テーブルのサイズを小さくすること、さらには、コードの変換速度を向上させることにある。
【００２１】
【課題を解決するための手段】
本発明のコード変調装置は、入力コードに対応する複数の変換コードの中から重複しているコードが省かれた変換コードが記憶された変換用テーブルと、前記複数の変換コードの中から省かれた変換コードとこの省かれた変換コードと重複している変換用テーブル内の変換コードとの対応関係を示す重複情報が記憶された前処理テーブルと、前記複数の変換コードの中から使用する変換コードを指定するコード指定手段と、コード指定手段の指定と前処理テーブルの前記重複情報に基づいて、変換用テーブルから入力コードに対応する変換コードを読み出すコード変換手段とを含む。
【００２２】
このコード変調装置では、変換用テーブルには、前記複数の変換コードの中から重複しているコードを省いた変換コードが記憶されている。コード指定手段が変換用テーブルに記憶されている変換コードを指定した場合は、コード変換手段でその指定された変換コードを読み出す。コード指定手段が変換用テーブルから省かれた変換コードを指定した場合は、前処理テーブルに記憶されている重複情報に基づいて、その省かれた変換コードと重複する変換用テーブル内の変換コードをコード変換手段で読み出す。
【００２３】
本発明のコード変調方法は、入力コードに対応する複数の変換コードの中から使用する変換コードを指定するコード指定ステップと、前記複数の変換コード内の重複している変換コードを示す重複情報が記憶された前処理テーブルから、入力コードに対応する複数の変換コードの重複情報を読み出すステップと、前記複数の変換コードの中から重複しているコードを省いた変換コードが記憶された変換用テーブルから、コード指定ステップの指定と前処理テーブルから読み出した重複情報に基づいて、入力コードに対応する変換コードを読み出すコード変換ステップとを含む。
【００２４】
【発明の実施の形態】
次に、本発明に係るコード変調装置及び変調方法の実施の形態について、図面に基づいて詳しく説明する。入力コードと変換コードの対応は、従来（図１１及び図１２）と同様である。図１に本発明に係るコード変調装置１０の一構成例を示す。コード変調装置１０は、従来（図１１及び図１２）の変換コードの中から重複しているコードを省いた変換コードが記憶された変換用テーブル１４と、従来の変換コードの中から省かれた変換コードとこの省かれた変換コードと重複している変換用テーブル１４内の変換コードとの対応関係を示す重複パターンが記憶された前処理テーブル１８と、従来の変換コードの中から使用する変換コードを指定すると共に、この指定と前処理テーブルの重複パターンに基づいて、変換用テーブル１４から入力コードに対応する変換コードを読み出すコード変換部１２とを含んだ構成になっている。
【００２５】
さらに、前処理テーブル１８には、コード変換部１２で指定された変換コードとこの指定された変換コードの代わりに使用することのできる変換コード（以下、この変換コードを代用可能変換コードともいう）との選択に用いるコード選択情報が含まれる。本実施形態では、ＳＴＡＴＥ１の変換コードとＳＴＡＴＥ４の変換コードとを、互いに代用可能変換コードとして使用することができる。この指定された変換コードと代用可能変換コードとの選択は、コード選択情報に基づいてコード変換部１２で行う。
【００２６】
変換用テーブル１４には、図１１及び図１２に示した各入力に対応する複数（ＳＴＡＴＥ１〜４）の変換コードの中から重複しているコードを省いた変換コードが記憶されている。
【００２７】
重複しているコードについて説明すると、図１１及び図１２に示した変換テーブルでは、入力に対応する複数（ＳＴＡＴＥ１〜４）の変換コードの中に、重複している変換コードが存在している。重複している変換コードのＳＴＡＴＥに応じて、この入力コードに対応する複数の変換コードを４つのパターン（パターンＡ，Ｂ，Ｃ，Ｄ）に分けることができる（以下、このパターンを重複パターンともいう）。
【００２８】
パターンの分け方の一例を図５（ａ）に示す。パターンＡには、ＳＴＡＴＥ１とＳＴＡＴＥ２とが等しく且つＳＴＡＴＥ３とＳＴＡＴＥ４とが等しい変換コードが含まれる。パターンＢには、ＳＴＡＴＥ１とＳＴＡＴＥ３とが等しく且つＳＴＡＴＥ２とＳＴＡＴＥ４とが等しい変換コードが含まれる。パターンＣには、ＳＴＡＴＥ１とＳＴＡＴＥ２とが等しく且つＳＴＡＴＥ３とＳＴＡＴＥ４とが異なる変換コードが含まれる。パターンＤには、ＳＴＡＴＥ１とＳＴＡＴＥ３とが異なり且つＳＴＡＴＥ２とＳＴＡＴＥ４とが等しい変換コードが含まれる。
【００２９】
各パターンに対応する入力コードの個数を図５（ｂ）に示す。メイン・テーブルには、例えばパターンＡに対応する入力コードが１７１個、パターンＢに対応する入力コードが６２個、パターンＣに対応する入力コードが１個、パターンＤに対応する入力コードが２２個含まれる。サブ・テーブルには、例えばパターンＡに対応する入力コードが４６個、パターンＢに対応する入力コードが４個、パターンＤに対応する入力コードが３８個含まれる。これらの個数は、変換テーブルの種類によって若干異なるが、個数の分布はほとんどこの例と同様な傾向になる。
【００３０】
さらに、この重複パターン（パターンＡ〜Ｄ）とＳＴＡＴＥ（ＳＴＡＴＥ１〜４）に基づいて、図６に示すように、変換コードを３つのグループ（グループ１，２，３）に分けることができる。グループ１は、パターンＡのＳＴＡＴＥ１（＝ＳＴＡＴＥ２）と、パターンＢのＳＴＡＴＥ１（＝ＳＴＡＴＥ３）と、パターンＣのＳＴＡＴＥ１（＝ＳＴＡＴＥ２）と、パターンＤのＳＴＡＴＥ１の変換コードを含む。グループ２は、パターンＡのＳＴＡＴＥ４（＝ＳＴＡＴＥ３）と、パターンＢのＳＴＡＴＥ４（＝ＳＴＡＴＥ２）と、パターンＣのＳＴＡＴＥ４と、パターンＤのＳＴＡＴＥ４（＝ＳＴＡＴＥ２）の変換コードを含む。グループ３は、パターンＣのＳＴＡＴＥ３と、パターンＤのＳＴＡＴＥ３の変換コードを含む。
【００３１】
変換用テーブル１４には、重複しているコードを省いた変換コードが、図２（ａ）に示すように、このグループ（グループ１，２，３）ごとに記憶されている。グループ１には全パターンのＳＴＡＴＥ１の変換コードが含まれ、グループ２には全パターンのＳＴＡＴＥ４の変換コードが含まれ、グループ３にはパターンＣ及びパターンＤのＳＴＡＴＥ３の変換コードが含まれる。メイン・テーブルのグループ１の変換コードを図２（ｂ）に、サブ・テーブルのグループ１の変換コードを図２（ｃ）に示す。
【００３２】
図５及び図６より、メイン・テーブルに記憶されている変換コードの数は、
１７１×２  ＋  ６２×２  ＋  １×３  ＋  ２２×３  ＝  ５３５個
で、サブ・テーブルに記憶されている変換コードの数は、
４６×２  ＋  ４×２  ＋  ０×３  ＋  ３８×３  ＝  ２１４個
である。よって、変換用テーブル１４に記憶されている変換コード数は、
５３５  ＋  ２１４  ＝  ７４９個
である。
【００３３】
図１１及び図１２に示した従来の変換テーブル８４に記憶されている変換コードは１３７６個なので、本発明の変換用テーブル１４との比率は
７４９  ÷  １３７６  ≒  ０．５４４
となる。本発明の変換用テーブル１４は、記憶されている変換コードを従来の約半分（５４．４％）に減らしている。
【００３４】
グループの特定は、重複パターンとＮＳで指定されるＳＴＡＴＥを用いて行う。ここで、重複パターンをパターン・コード“PT1   PT0 ”で表す。ただし、パターンＡは“PT1   PT0 ”＝“０  ０”、パターンＢは“PT1   PT0 ”＝“０１”、パターンＣは“PT1   PT0 ”＝“１  ０”、パターンＤは“PT1   PT0 ”＝“１  １”と定義する。さらに、ＮＳで指定されるＳＴＡＴＥをステート・コード“ST1   ST0 ”で表す。ただし、ＳＴＡＴＥ１は“ST1 ST0 ”＝“０  ０”、ＳＴＡＴＥ２は“ST1   ST0 ”＝“０  １”、ＳＴＡＴＥ３は“ST1   ST0 ”＝“１  ０”、ＳＴＡＴＥ４は“ST1   ST0 ”＝“１  １”と定義する。このパターン・コード（“PT1   PT0 ”）とステート・コード（“ST1   ST0 ”）を用いて、グループ（グループ１，２又は３）を特定することができる。
【００３５】
例えば、
“GP1"＝｛(NOT“ST1") AND (NOT“ST0") ｝  OR
｛(NOT“ST1") AND “ST0" AND (NOT “PT0") ｝  OR
｛“ST1" AND  (NOT“ST0") AND (NOT“PT1") AND “PT0"｝
・・・・・（式１）
が“１”となれば、グループ１が特定される。
同様に、
“GP3"＝“ST1"  AND   (NOT“ST0")   AND   “PT1"
・・・・・（式２）
が“１”となれば、グループ３が特定される。
最後に、
“GP2"＝ (NOT “GP1")   AND   (NOT“GP3")
・・・・・（式３）
が“１”となれば、グループ２が特定される。
【００３６】
グループが特定されれば、そのグループから入力に対応する変換コードを読み出す。従来の変換テーブル８４から重複のため省かれた変換コードがＮＳによって指定されたとしても、これら式１，式２，式３を用いてグループを特定し、省かれた変換コードと重複している変換コードを変換用テーブル１４から読み出すことができる。変換テーブル８４から省かれた変換コードと省かれていない変換コードとの区別を特に行わずに、式１，式２，式３よりグループを特定することができる。
【００３７】
入力コードに対応する複数（ＳＴＡＴＥ１〜４）の変換コードの中からどのＳＴＡＴＥを選択するかは、例えば、メモリ２８に記憶されたＮＳ（次のＳＴＡＴＥ）で指定される。ただし、入力コードの変換に使用した変換コードが“１”又は“１  ０”で終わった場合、本例では次に使用する変換コードにＳＴＡＴＥ１を指定する。同様に、入力コードの変換に使用した変換コードが６個以上９個以下の“０”で終わった場合、本例では次に使用する変換コードにＳＴＡＴＥ４を指定する。このことから、ＮＳに「１」又は「４」が記憶されている場合は、メモリ２８のＮＳを参照せずに、直前のコード変換に使用した変換コードを参照することで次のＳＴＡＴＥ（ＳＴＡＴＥ１又はＳＴＡＴＥ４）を求めることもできる。
【００３８】
よって、変換用テーブル１４に記憶するＮＳの値は、図２（ｂ）、（ｃ）に示すように、「２」又は「３」だけでよい。直前のコード変換に使用した変換コードが“１”又は“１  ０”で終わった場合と６個以上９個以下の“０”で終わった場合は、次のＳＴＡＴＥ（ＳＴＡＴＥ１又はＳＴＡＴＥ４）をこの変換コードから求めることができる。この直前のコード変換に使用した変換コードが２個以上５個以下の“０”で終わった場合は、この変換コードから次のＳＴＡＴＥを求めることができないので、メモリ２８のＮＳ値を参照して次のＳＴＡＴＥ（ＳＴＡＴＥ２又はＳＴＡＴＥ３）を求める。
【００３９】
入力コードに対応する複数の変換コード内の重複パターンは、図１に示す前処理テーブル１８から求めることができる。前処理テーブル１８には、図３及び図４に示すように、各入力コードに対応する変換コードの重複パターン（パターンＡ，Ｂ，Ｃ又はＤ）が記憶されている。重複パターン（Ａ，Ｂ，Ｃ又はＤ）の記憶には２ビット必要である。０〜８７の入力コードに対しては、メイン・テーブルとサブ・テーブルの２つの重複パターンが記憶されている。さらに、前処理テーブル１８には、後述する変換コードの選択に用いるＤＳＶの中心値（ＤＳＶｃ）及び優先ビット（ＰＢ）と、後述するＲＬＬ（２．１０）の確認に用いる“０”数情報が記憶されている。変換用テーブル１４及び前処理テーブル１８には、通常、ＲＯＭ（Read Only Memory）を用いる。
【００４０】
コード変換部１２は、図１に示すように、重複パターン及びＮＳで指定されるＳＴＡＴＥを用いて式１，式２，式３を演算してグループ等を求める演算器２２と、後述する前処理テーブルから読み出したＤＳＶの中心値ＤＳＶｃの極性を反転させた値と現在までのＤＳＶとの比較等を行う比較器２４と、現在までのＤＳＶや次の変換コードを指定する情報（ＮＳ）が記憶されるメモリ（記憶装置）２８と、直前のコード変換に使用した変換コードに基づいて次の変換コードを指定する又はメモリ２８に記憶されたＮＳの値に基づいて次の変換コードを指定すると共に、演算器２２や比較器２４を制御して入力コードを変換する制御部２６を含む。
【００４１】
前処理テーブル１８の重複パターンを参照することで、従来の変換テーブル８４（図１１及び図１２）から省かれた変換コードと重複している変換用テーブル１４内の変換コードとの対応関係がわかる。本実施形態では、上述した式１，式２，式３を用いて、重複パターンとＳＴＡＴＥからグループを求めて、変換用テーブル１４内の変換コードを特定している。
【００４２】
変換コードの選択について説明すると、０〜８７の入力コードに対しては、メイン・テーブルとサブ・テーブルのどちらかの変換コードを選択する。この選択は、現在までのＤＳＶと、メイン・テーブル及びサブ・テーブルの変換コードのＤＳＶに基づいて行う。メイン・テーブル側の変換コードのＤＳＶをＤＳＶｍ、サブ・テーブル側の変換コードのＤＳＶをＤＳＶｓ、現在までのＤＳＶをＤＳＶｔで表すと、（ＤＳＶｔ＋ＤＳＶｍ）と（ＤＳＶｔ＋ＤＳＶｓ）のうち、ゼロに近いほうを選択する。ただし、図１１及び図１２の変換テーブルでは、変換コードのＤＳＶは、メイン・テーブルよりもサブ・テーブルの方が大きく（ＤＳＶｍ＜ＤＳＶｓ）、さらにＳＴＡＴＥ４よりもＳＴＡＴＥ１の方が大きい。
【００４３】
本実施形態では、選択候補の変換コードのＤＳＶの中心値
ＤＳＶｃ＝（ＤＳＶｓ＋ＤＳＶｍ）÷２    ・・・・（式４）
と、現在までのＤＳＶ（ＤＳＶｔ）とを用いる。具体的には、ＤＳＶｃの極性を反転させた値（−ＤＳＶｃ）と現在までのＤＳＶ（ＤＳＶｔ）との比較を行う。
【００４４】
0004384772.tif 000002
となる。これより、Ｎの値に関係なく、（ＤＳＶｔ＋ＤＳＶｍ）の方がゼロに近いことがわかる。よって、ＤＳＶｔが（−ＤＳＶｃ）よりも大きい場合は、メイン・テーブルの変換コードを選択すればよい。
【００４５】
0004384772.tif 000003
となる。これより、Ｎの値に関係なく、（ＤＳＶｔ＋ＤＳＶｓ）の方がゼロに近いことがわかる。よって、ＤＳＶｔが（−ＤＳＶｃ）よりも小さい場合は、サブ・テーブルの変換コードを選択すればよい。
【００４６】
ＤＳＶｔと（−ＤＳＶｃ）とが等しい場合は、前処理テーブル１８の優先ビットＰＢ（ＰＢ＝「Ｍ」又は「Ｓ」）に基づいて、メイン・テーブル（ＰＢ＝「Ｍ」）又はサブ・テーブル（ＰＢ＝「Ｓ」）を選択する。優先ビットＰＢは、変換コードの反転回数の大きい方が記憶される。反転回数が同じ場合は、メイン・テーブルの方が記憶される（ＰＢ＝「Ｍ」）。これらＤＳＶｃと優先ビットＰＢは、図３に示すように、入力コード及びＳＴＡＴＥごとに前処理テーブル１８に記憶されている。優先ビットＰＢ（Ｍ又はＳ）の記憶には１ビット必要であり、ＤＳＶｃの記憶には、本実施例の場合は４ビット必要である。
【００４７】
８８〜２５５の入力コードに対しては、メイン・テーブルから変換コードを読み出す。ただし、次のＳＴＡＴＥにＳＴＡＴＥ１が指定された場合は、ＳＴＡＴＥ１の代わりにＳＴＡＴＥ４の変換コードを用いることもできる。また、次のＳＴＡＴＥにＳＴＡＴＥ４が指定された場合は、ＳＴＡＴＥ４の代わりにＳＴＡＴＥ１の変換コードを用いることもできる。
【００４８】
ＳＴＡＴＥ１とＳＴＡＴＥ４との選択は、ＳＴＡＴＥ１の変換コードのＤＳＶとＳＡＴＥ４の変換コードのＤＳＶとの中心値ＤＳＶｃと、優先ビットＰＢ（ＰＢ＝「１」又は「４」）と、現在までのＤＳＶを用いて行う。選択方法は、上述したメイン・テーブルとサブ・テーブルの選択と同様である。これらＤＳＶｃと優先ビットＰＢは、図４に示すように、入力コードごとに前処理テーブル１８に記憶されている。優先ビットＰＢ（１又は４）の記憶には１ビット必要であり、ＤＳＶｃの記憶には、本実施例の場合は４ビット必要である。
【００４９】
ただし、ＳＴＡＴＥ１とＳＴＡＴＥ４との選択では、元々指定された変換コードの代わりに用いる変換コードに対し、ＲＬＬ（２．１０）の条件をチェックする必要がある。このチェックは前処理テーブル１８の“０”数情報を用いて行う。
【００５０】
“０”数情報について説明すると、入力コードの変換に使用した変換コードが“１”又は“１  ０”で終わった場合、本例では次に使用する変換コードにＳＴＡＴＥ１のコードを指定する。さらに、ＳＴＡＴＥ４のコードは、最初が“１”又は“０  １”で始まる。以上のことから、ＳＴＡＴＥ１の代わりにＳＴＡＴＥ４のコードを用いる場合、ＲＬＬ（２．１０）の条件を満たすために、このＳＴＡＴＥ４の変換コードは少なくとも最初が“０”で始まらなければならない。具体的には、直前のコード変換に使用された変換コードが“１  ０”で終わり、次に使用するＳＴＡＴＥ４の変換コードが“０  １”で始まる場合のみＲＬＬ（２．１０）の条件を満たす。よって、代わりに使用するＳＴＡＴＥ４の変換コードの最初のビット（“０”又は“１”）が分かれば、その変換コードを読み出さずにＲＬＬ（２．１０）のチェックを行うことができる。
【００５１】
同様に、入力コードの変換に使用した変換コードが６個以上９個以下の“０”で終わった場合、本例では次に使用する変換コードにＳＴＡＴＥ４の変換コードを指定する。さらに、ＳＴＡＴＥ１の変換コードは、２個以上９個以下の“０”で始まる。以上のことから、ＳＴＡＴＥ４の代わりにＳＴＡＴＥ１の変換コードを用いる場合、ＲＬＬ（２．１０）の条件を満たすために、このＳＴＡＴＥ１の変換コードは少なくとも最初が２個以上４個以下の“０”で始まらなければならない。具体的には、直前に使用された変換コードが６個の“０”で終わり、次に使用するＳＴＡＴＥ１の変換コードが２個〜４個の“０”で始まる場合と、直前に使用された変換コードが７個の“０”で終わり、次に使用するＳＴＡＴＥ１の変換コードが２個又は３個の“０”で始まる場合と、直前に使用された変換コードが８個の“０”で終わり、次に使用するＳＴＡＴＥ１の変換コードが２個の“０”で始まる場合のみＲＬＬ（２．１０）の条件を満たす。よって、代わりに使用するＳＴＡＴＥ１の変換コードの最初の“０”の数（２個，３個，４個又は５個以上）が分かれば、その変換コードを読み出さずにＲＬＬ（２．１０）のチェックを行うことができる。
【００５２】
“０”数情報は、図４に示すように、入力コードごとにＳＴＡＴＥ１及びＳＴＡＴＥ４の変換コードの先頭の“０”の数が記憶されている。ただし、図中のＳＴＡＴＥ１の「５」は、“０”の数が５個以上であることを表している。ＳＴＡＴＥ４の“０”数情報には、先頭のビット（“０”又は“１”）が記憶されている。ＳＴＡＴＥ１の“０”数情報（２，３，４又は５）の記憶には２ビット必要であり、ＳＴＡＴＥ４の“０”数情報（０又は１）の記憶には１ビット必要である。
【００５３】
次に、このようなコード変調装置及び変調方法を用いた８／１６変調について、その作用を説明する。ただし、メモリ２８に記憶されるＮＳの初期値は「１」であり、最初のコード変換時は、ＳＴＡＴＥ１の変換コードが使用される。
【００５４】
入力が０〜８７であった場合は、直前のコード変換に使用した変換コードに基づいて、次のＳＴＡＴＥがＳＴＡＴＥ１であるかＳＴＡＴＥ４であるか求める。直前のコード変換に使用した変換コードが２個以上５個以下の“０”で終わっている場合は、この変換コードから次のＳＴＡＴＥを求めることができないので、メモリ２８に記憶されているＮＳ値を参照して、次のＳＴＡＴＥがＳＴＡＴＥ２であるかＳＴＡＴＥ３であるか調べる。
【００５５】
次のＳＴＡＴＥが分かれば、前処理テーブル１８（図３）を参照して、入力コード及びこのＳＴＡＴＥに対応するＤＳＶｃを読み出す。その後、メモリ２８に記憶されている現在までのＤＳＶとこのＤＳＶｃを反転させた値（−ＤＳＶｃ）とを比較する。現在までのＤＳＶの方が大きければメイン・テーブルを選択する。現在までのＤＳＶの方が小さければサブ・テーブルを選択する。両者が等しい場合は、前処理テーブルの優先ビットＰＢを参照して、メイン・テーブルかサブ・テーブルを選択する。
【００５６】
メイン・テーブルまたはサブ・テーブルが選択されると、前処理テーブルから入力コードに対応する重複パターンを読み出す。これにより、使用する変換コードのテーブル（メイン又はサブ），ＳＴＡＴＥ，重複パターンが分かる。ＳＴＡＴＥと重複パターンが分かれば、上述した式１，式２，式３よりグループを特定できる。テーブル（メイン又はサブ）とグループが特定できれば、変換用テーブル１４からその特定されたグループの変換コードを読み出すことができる。
【００５７】
このように、本発明のコード変調装置及び変調方法では、次のＳＴＡＴＥがＳＴＡＴＥ１又はＳＴＡＴＥ４となることを、直前に使用した変換コードから求めている。そのため、変換テーブルに記憶するＮＳ値は、「２」又は「３」だけでよい。さらに、メイン・テーブルとサブ・テーブルの選択が、メモリ２８に記憶されている現在までのＤＳＶと前処理テーブルのＤＳＶｃ（４ビット）の反転値との比較だけで済む。しかも、現在のＤＳＶとＤＳＶｃの反転値とが等しい場合は、前処理テーブルの優先ビットＰＢ（１ビット）を参照するだけで、選択を行うことができる。これにより、変換コードの読み出しは一度だけで済み、処理速度も高速になる。
【００５８】
入力が８８〜２５５であった場合は、まず、上述した入力が０〜８７の場合と同様に、次のＳＴＡＴＥを求める。次のＳＴＡＴＥにＳＴＡＴＥ１又はＳＴＡＴＥ４が指定された場合は、ＳＴＡＴＥ１とＳＴＡＴＥ４との選択を行う。次のＳＴＡＴＥにＳＴＡＴＥ２又はＳＴＡＴＥ３が指定された場合は、そのＳＴＡＴＥ２又はＳＴＡＴＥ３の変換コードを使用する。
【００５９】
ＳＡＴＡＥ１とＳＴＡＴＥ４の選択では、まず、前処理テーブル（図４）から“０”数情報を読み出し、ＲＬＬ（２．１０）の条件を満たすかどうか確認する。具体的には、ＳＴＡＴＥ１が次のＳＴＡＴＥに指定された場合は、ＳＴＡＴＥ４も選択候補になるので、ＳＴＡＴＥ４の“０”情報を読み出して、直前のコード変換に使用した変換コードとこの“０”数情報を用いてＲＬＬ（２．１０）のチェックを行う。ＳＴＡＴＥ４が次のＳＴＡＴＥに指定された場合は、ＳＴＡＴＥ１も選択候補になるので、ＳＴＡＴＥ１の“０”情報を読み出して、直前のコード変換に使用した変換コードとこの“０”数情報を用いてＲＬＬ（２．１０）のチェックを行う。
【００６０】
ＲＬＬ（２．１０）の条件を満足していない場合は、元々指定されたＳＴＡＴＥの変換コードを使用する。ＲＬＬ（２．１０）の条件を満足している場合は、前処理テーブルよりＤＳＶｃを読み出して、上述したメイン・テーブルとサブ・テーブルの選択と同様に、ＳＴＡＴＥ１とＳＴＡＴＥ４の選択を行う。
【００６１】
このようにＳＴＡＴＥが選択され、さらに前処理テーブル１８（図４）から入力コードに対応する重複パターンを読み出すと、ＳＴＡＴＥと重複パターンが分かるため、上述した式１，式２，式３より、グループを特定できる。グループが特定できれば、変換用テーブル１４からその特定されたグループの変換コードを読み出すことができる。
【００６２】
このように、本発明のコード変調装置及び変調方法では、ＲＬＬ（２．１０）のチェックを直前の変換コードと前処理テーブルの“０”数情報（１ビット又は２ビット）を用いて行うことができる。ＳＴＡＴＥ１とＳＴＡＴＥ４の選択を、メモリ２８に記憶された現在までのＤＳＶと前処理テーブルのＤＳＶｃ（４ビット）の反転値とを比較するだけで求めることができる。これにより、変換コードの読み出しは一度だけで済み、ＲＬＬ（２．１０）のチェックを含めた処理速度も高速になる。
【００６３】
以上、本発明の一実施例について説明したが、本発明に係るコード変調装置及び変調方法はその他の態様でも実施し得るものである。例えば、前処理テーブルに記憶される選択候補のＤＳＶの中心値ＤＳＶｃは、最初からこの中心値ＤＳＶｃを反転させた値（−ＤＳＶｃ）を記憶しておくこともできる。
【００６４】
図７及び図８（ａ）に示すように、優先ビットＰＢを前処理テーブルから取り除くこともできる。ただし、現在までのＤＳＶとＤＳＶｃとが等しい場合は、入力が０〜８７のときはメイン・テーブルを、入力が８８〜２５５のときはＳＴＡＴＥ１を常に選択する等のように予め決めておく。優先ビットＰＢを取り除くと、前処理テーブルのサイズがさらに小さくなる。変換コードの反転回数に基づいたこの優先ビットは、使用する方が好ましいが、必ず使用する必要はない。
【００６５】
図８（ｂ）に示すように、“０”数情報を前処理テーブルから取り除くこともできる。“０”数情報を取り除くと、ＲＬＬ（２．１０）のチェックを従来と同様な方法で行うために処理時間は長くなるが、前処理テーブルのサイズはさらに小さくなる。図示していないが、優先ビットＰＢと“０”数情報の両方を前処理テーブルから取り除くことも勿論可能である。
【００６６】
図９に示すように、前処理テーブルに重複パターンのみを記憶させることもできる。この場合は、ＤＳＶの中心値（ＤＳＶｃ）と優先ビット（ＰＢ）と“０”数情報が無いので、変換コードの選択やＲＬＬ（２．１０）のチェック速度は従来と変わらないが、前処理テーブル１８のサイズをさらに小さくすることができる。
【００６７】
図３，図４，図７及び図８（ａ），（ｂ）に示す前処理テーブルから重複パターンを取り除くこともできる。重複パターンを取り除くと、変換用テーブル１４のサイズは従来と変わらないが、変換コードの選択やＲＬＬ（２．１０）のチェック速度は従来よりも向上する。
【００６８】
以上、８／１６変調を例にして説明してきたが、本発明のコード変調装置及び変調方法は、８／１６変調に特に限定はされない。入力コードに対応する複数の変換コードの中に重複しているコードが存在するコード変換や、指定された変換コードの代わりに使用可能な別の変換コードが存在するコード変換等に、本発明のコード変調装置及び変調方法を用いることができる。
【００６９】
以上、本発明に係るコード変調装置及び変調方法の実施例について、図面に基づいて種々説明したが、本発明は図示したコード変調装置及び変調方法に限定されるものではない。その他、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良，修正，変形を加えた態様で実施できるものである。
【００７０】
【発明の効果】
本発明のコード変調装置及び変調方法によれば、変換テーブルのサイズを小さくすることができる。また、次のコード変換に使用するように指定された変換コードとこの指定された変換コードの代わりに使用可能な変換コードの選択や、代わりに使用可能な変換コードを用いた場合のＲＬＬ（２．１０）の確認の処理速度を高速化することができる。
【図面の簡単な説明】
【図１】本発明に係るコード変調装置の一構成例を示すブロック図である。
【図２】図１に示すコード変調装置の変換用テーブルの構成概要を示す図であり、同図（ａ）は変換用テーブルの構成概要を示す図であり、同図（ｂ）は同図（ａ）のメイン・テーブルのグループ１の構成概要を示す図であり、同図（ｃ）は同図（ａ）のサブ・テーブルのグループ１の構成概要を示す図である。
【図３】図１に示すコード変調装置の前処理テーブルの構成概要を示す図であり、０〜８７の入力に対応する部分を示している。
【図４】図１に示すコード変調装置の前処理テーブルの構成概要を示す図であり、８８〜２５５の入力に対応する部分を示している。
【図５】図１１及び図１２に示す変換コードの分類を示す図であり、同図（ａ）は分類するパターンの種類を示す図であり、同図（ｂ）は各パターンに対応する入力コード数を示す図である。
【図６】図１１及び図１２に示す変換コードの分類を示す図であり、図５（ａ）に示すパターンとＳＴＡＴＥに基づいたグループ分類を示す図である。
【図７】図１に示すコード変調装置の前処理テーブルの他の例を示す図であり、０〜８７の入力に対応する部分を示している。
【図８】図１に示すコード変調装置の前処理テーブルの他の例を示す図であり、８８〜２５５の入力に対応する部分を示している。
【図９】図１に示すコード変調装置の前処理テーブルの更に他の例を示す図であり、同図（ａ）はメイン・テーブル部分の概要を示す図であり、同図（ｂ）は、サブ・テーブル部分の概要を示す図である。
【図１０】従来のコード変調装置の一構成例を示すブロック図である。
【図１１】図１０に示すコード変調装置の変換テーブルの構成概要を示す図であり、メイン・テーブル部分を示している。
【図１２】図１０に示すコード変調装置の変換テーブルの構成概要を示す図であり、サブ・テーブル部分を示している。
【図１３】ＤＳＶ(Digital Sum Value) の説明図である。
【符号の説明】
１０：コード変調装置
１２：コード変換部
１４：変換用テーブル
１８：前処理テーブル
２２：演算器
２４：比較器
２６：制御部
２８：メモリ（記憶装置）
８０：コード変調装置（従来）
８２：コード変換部（従来）
８４：変換テーブル（従来）
【図１】
0004384772.tif 000004
【図２】
0004384772.tif 000005
【図３】
0004384772.tif 000006
【図４】
0004384772.tif 000007
【図５】
0004384772.tif 000008
【図６】
0004384772.tif 000009
【図７】
0004384772.tif 000010
【図８】
0004384772.tif 000011
【図９】
0004384772.tif 000012
【図１０】
0004384772.tif 000013
【図１１】
0004384772.tif 000014
【図１２】
0004384772.tif 000015
【図１３】
0004384772.tif 000016