(57)【要約】【課題】より少ない回路規模で、ランレングス制限を満たしつつ、ＤＣフリー特性を向上すること。【解決手段】ＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３は、ＲＬＬ／ＤＣフリー符号化部４０と、ＲＳ符号化部４２と、冗長系列付加部４４とを含む。ＲＬＬ／ＤＣフリー符号化部４０は、所定の信号系列をランレングス制限符号化およびＤＣフリー符号化することによって、ＤＣフリー性を有するランレングス制限符号化系列（以下、「ＲＬＬ系列」と略称する）を生成する。ＲＳ符号化部４２は、ＲＬＬ／ＤＣフリー符号化部４０によって生成されたＲＬＬ系列をＲＳ符号化することによって、冗長系列を生成する。冗長系列付加部４４は、ＲＳ符号化部４２によって生成された冗長系列をＲＬＬ／ＤＣフリー符号化部４０によって生成されたＲＬＬ符号化系列に付加する。【選択図】図４
2007200440.tif 000002
【特許請求の範囲】
【請求項１】
所定の信号系列をランレングス制限符号化することによって、ランレングス符号化系列を生成するランレングス制限符号化部と、
前記ランレングス制限符号化部によって生成されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、
前記リードソロモン符号化部によって生成された冗長系列を前記ランレングス制限符号化部によって生成されたランレングス符号化系列に付加する冗長系列付加部と、
を備えることを特徴とする信号符号化装置。
【請求項２】
デジタル信号系列をランレングス制限符号化することによって、第１ランレングス符号化系列を生成する第１ランレングス制限符号化部と、
前記デジタル信号系列に含まれる複数のビットの個数を変えずに、前記デジタル信号系列に対し、所定の信号処理を実行する信号処理部と、
前記信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２ランレングス符号化系列を生成する第２ランレングス制限符号化部と、
前記第１ランレングス制限符号化部によって生成された第１ランレングス符号化系列と、前記第２ランレングス制限符号化部によって生成された第２ランレングス符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、
前記直流成分除去符号化部によって出力されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、
前記リードソロモン符号化部によって生成された冗長系列を前記直流成分除去符号化部によって出力されたランレングス符号化系列に付加する冗長系列付加部と、
を備えることを特徴とする信号符号化装置。
【請求項３】
前記冗長系列付加部は、
前記リードソロモン符号化部によって生成された冗長系列を複数の組に分割する分割部を有し、
前記分割部によって分割された組を、前記ランレングス符号化系列のいずれかの個所であって、組ごとにそれぞれ異なる個所に付加することを特徴とする請求項１または２に記載の信号符号化装置。
【請求項４】
前記冗長系列付加部は、前記分割部によって分割された組ごとに、等間隔で、前記ランレングス符号化系列に付加することを特徴とする請求項３に記載の信号符号化装置。
【請求項５】
前記分割部は、前記リードソロモン符号化部によって生成された冗長系列に含まれる複数のビットのうち、いずれか２以上のビットを１組として、分割することを特徴とする請求項３または４に記載の信号符号化装置。
【請求項６】
前記分割部は、前記リードソロモン符号化部によって生成された冗長系列に含まれる複数のビットのうち、２Ｎ（Ｎは１以上の整数）個のビットを１組として、分割することを特徴とする請求項３または４に記載の信号符号化装置。
【請求項７】
所定の冗長系列が挿入された第１信号系列を入力する入力部と、
前記入力部によって入力された第１信号系列のうち、前記冗長系列の挿入個所を検出する冗長系列検出部と、
前記冗長系列検出部によって検出された挿入個所にしたがって、前記入力部によって入力された第１信号系列から冗長系列を切り離して、第２信号系列を取得する冗長系列取得部と、
前記冗長系列取得部によって切り離された冗長ビットを用いて、前記冗長系列取得部によって取得された第２信号系列の誤りを訂正するリードソロモン復号部と、
前記リードソロモン復号部によって誤りが検査された第２信号系列に対し、ランレングス制限復号を実行するランレングス制限復号部と、
を備えることを特徴とする信号復号装置。
【請求項８】
請求項１または請求項２に記載の信号符号化装置と、請求項７に記載の信号復号装置とを備えることを特徴とする信号処理装置。
【請求項９】
データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、
前記ライトチャネルは、
データに対し、ランレングス制限符号化を実行し、さらに、ランレングス制限符号化されたデータに対し、リードソロモン符号化を実行する第１の符号化部と、
前記第１の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第２の符号化部と、
前記第２の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、
を備え、
前記リードチャネルは、
前記記憶装置から出力されたアナログ信号を入力する入力部と、
前記入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、
前記アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、
前記ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応した、第１の復号部と、
前記第１の復号部で復号されたデータを復号する、前記第１の符号化部に対応した、第２の復号部と、
を備え、
前記第１の符号化部は、
前記データをランレングス制限符号化することによって、ランレングス符号化系列を生成するランレングス制限符号化部と、
前記ランレングス制限符号化部によって生成されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、
前記リードソロモン符号化部によって生成された冗長系列を前記ランレングス制限符号化部によって生成されたランレングス符号化系列に付加する冗長系列付加部と、
を有し、
前記第２の復号部は、
前記第１の復号部によって復号されたデータを入力する入力部と、
前記入力部によって入力された第１信号系列のうち、前記冗長系列の挿入個所を検出する冗長系列検出部と、
前記冗長系列検出部によって検出された挿入個所にしたがって、前記入力部によって入力された第１信号系列から冗長系列を切り離して、第２信号系列を取得する冗長系列取得部と、
前記冗長系列取得部によって切り離された冗長ビットを用いて、前記冗長系列取得部によって取得された第２信号系列の誤りを訂正するリードソロモン復号部と、
前記リードソロモン復号部によって誤りが検査された第２信号系列に対し、ランレングス制限復号を実行するランレングス制限復号部と、
を有することを特徴とする記憶システム。
【請求項１０】
請求項９に記載の記憶システムにおいて、当該記憶システムは、さらに、
データを記憶する記憶装置と、
記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、
を有し、
前記リードチャネルは、前記制御部の指示に従って、前記記憶装置に記憶されているデータを読み出し、
前記ライトチャネルは、前記制御部の指示に従って、符号化されたデータを前記記憶装置に書き込むことを特徴とする記憶システム。
【請求項１１】
請求項１に記載の符号化装置おいて、当該装置は、１つの半導体基板上に一体集積化されたことを特徴とする信号符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正符号化／復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤り訂正符号化もしくは誤りを訂正する信号符号化装置、信号復号装置、信号処理装置、および記憶システムに関する。
【背景技術】
【０００２】
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、高い誤り訂正能力を有する訂正方式を用いない限り、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
【０００３】
一般的に、誤り訂正符号化の対象となる信号系列として、直流成分が低減もしくは除去された（以下、「ＤＣフリー」、もしくは、「ＤＣフリー性」と表記する）信号系列が望まれている。ＤＣフリーとは、周波数が０、すなわち直流成分におけるスペクトルが０であることを意味する。いいかえると、変調前の信号系列に含まれる複数のビットにおいて、０と１の比率が等しいことなどを意味する。ＤＣフリー性を信号系列に備えるさせることによって、記憶媒体に記憶された変調データの記録パターンから得られる再生信号の平均レベルが、変調前の信号系列のパターンによらずに、所定の信号系列長の範囲内で常に一定となる性質をもち、ノイズ耐性が向上する。すなわち、ＤＣフリー性の低い信号系列においては、ビタビアルゴリズムを用いたデータ検出において、検出確率が低下することとなる。これにより、低密度パリティチェック復号やリードソロモン復号における訂正能力も低減されることとなる。また、一般的に、サンプリングタイミングとデータとの同期を確保するために、ランレングス制限符号が用いられている。ランレングス制限符号とは、０の最大連続長や１の最大連続長を制限する符号化である。
【０００４】
従来、信号系列のＤＣフリー性を満たしつつ、ランレングス制限符号化する方法として、それぞれ異なる冗長ビットが付加された信号系列に対し、ランレングス制限符号化を実行し、符号化された複数の系列のうち、ＤＣフリーに近い特性を有する系列を選択する方法が提案されていた（たとえば、特許文献１参照。）。また、複数の異なる性質を有するランレングス制限符号化を実行し、符号化された複数の系列のうち、ＤＣフリーに近い特性を有する系列を選択する方法が提案されていた（たとえば、特許文献２参照。）。
【特許文献１】特開２００２−１００１２５号公報
【特許文献２】特開２００４−２１３８６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、符号化側において、複数の符号化系列の中からＤＣフリー特性の良い系列を選択することによってＤＣフリー符号化を実現する場合、選択の対象となる複数の符号化系列においてＤＣフリー特性の良い符号化系列が存在しない場合がある。また、復号側において、符号化側で選択された符号化系列を判定する際に、その判定が誤ることによって、誤りが増大するといった課題である。
【０００６】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より少ない回路規模で、ランレングス制限を満たしつつ、ＤＣフリー特性を向上できる信号符号化装置、信号復号装置、信号処理装置、および記憶システムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の信号符号化装置は、所定の信号系列をランレングス制限符号化することによって、ランレングス符号化系列を生成するランレングス制限符号化部と、ランレングス制限符号化部によって生成されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、リードソロモン符号化部によって生成された冗長系列をランレングス制限符号化部によって生成されたランレングス符号化系列に付加する冗長系列付加部と、を備える。
【０００８】
ここで、「付加」とは、加算、乗算、挿入などを含む。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。
【０００９】
本発明の別の態様もまた、信号符号化装置である。この装置は、デジタル信号系列をランレングス制限符号化することによって、第１ランレングス符号化系列を生成する第１ランレングス制限符号化部と、デジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する信号処理部と、信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２ランレングス符号化系列を生成する第２ランレングス制限符号化部と、第１ランレングス制限符号化部によって生成された第１ランレングス符号化系列と、第２ランレングス制限符号化部によって生成された第２ランレングス符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、直流成分除去符号化部によって出力されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、リードソロモン符号化部によって生成された冗長系列を直流成分除去符号化部によって出力されたランレングス符号化系列に付加する冗長系列付加部と、を備える。
【００１０】
ここで、「直流成分除去符号化部」とは、入力された系列の直流成分を除去するもしくは低減する回路などを含み、また、ＤＣフリー性の高い系列を出力する回路などを含む。また、「第１ランレングス制限符号化部」と「第２ランレングス制限符号化部」とは、同一の性質を有するランレングス制限符号化回路であってもよい。また、同一の性質を有するランレングス制限符号化回路である場合、「第１ランレングス制限符号化部」と「第２ランレングス制限符号化部」は、１つのランレングス制限符号化回路を時分割で実行することにより実現されてもよい。
【００１１】
この態様によると、異なる２つの系列に対して、ランレングス制限符号化を実行するので、全く異なる２つの符号化系列を得ることができる。ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加しないように所定の信号処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。２つの符号化系列は全く異なるため、ＤＣフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からＤＣフリー性の高い符号化系列を選択することによって、よりＤＣフリー性の高い符号化系列を選択できる可能性が向上できる。また、同一のランレングス制限符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。また、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになる。いいかえると、リードソロモン復号によって誤り訂正された系列に対して、ランレングス制限復号が実行される。そうすると、符号化側において選択された符号化系列を正確に判別でき、全体としての誤り訂正能力を向上できる。
【００１２】
信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行してもよい。また、信号処理部は、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理をした後に、ビットの順序を並び替え処理を実行してもよい。この態様によると、ビット反転処理、および／または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および／または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。
【００１３】
直流成分除去符号化部は、第１符号化系列と第２符号化系列のうち、いずれか一方の符号化系列を選択する符号化系列選択部と、符号化系列選択部によって選択された符号化系列を示す選択識別情報を生成する選択識別情報生成部と、符号化系列選択部によって選択された符号化系列のいずれかの個所に、選択識別情報生成部によって生成された選択識別情報を付加する識別情報付加部と、を有してもよい。また、符号化系列選択部は、当該符号化系列選択部によってすでに選択された符号化系列と前記第１符号化系列とを連結させる第１連結部と、当該符号化系列選択部によってすでに選択された符号化系列と前記第２符号化系列とを連結させる第２連結部と、を有してもよい。符号化系列選択部は、第１連結部によって連結された系列を新たな第１符号化系列とし、第２連結部によって連結された系列を新たな第２符号化系列とし、いずれか一方の符号化系列を選択してもよい。第１ランレングス制限符号化部から出力された第１符号化系列のいずれかの個所に第１判定ビットを付加する第１付加部と、第２ランレングス制限符号化部から出力された第２符号化系列のいずれかの個所に第１判定ビットがビット反転された第２判定ビットを付加する第２付加部と、をさらに備えてもよい。
【００１４】
ここで、「すでに選択された符号化系列と前記第１符号化系列とを連結させる」とは、過去において選択された符号化系列と、現在選択の候補となっている系列とを連結させることなどを含む。この態様によると、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
【００１５】
符号化系列選択部は、第１比率計算部と、第２比率計算部と、選択出力部と、を有してもよい。第１比率計算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。第２比率計算部は、第２ランレングス制限符号化部によって生成された、もしくは第２連結部によって連結された第２符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。選択出力部は、第１比率計算部で計算された比率と、第２比率計算部で計算された比率とのうち、５０％に近いほうの比率に対応する符号化系列を選択して出力する。この態様によると、０を示すビットと１を示すビットとの比率が５０％に近いほうを選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【００１６】
符号化系列選択部は、第１合算部と、第２合算部と、符号化系列検出部と、選択出力部と、を有してもよい。第１合算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットを合算して第１合算値を生成する。第２合算部は、第２ランレングス制限符号化部によって生成された、もしくは、第２連結部によって連結された第２符号化系列に含まれる複数のビットを合算して第２合算値を生成する。符号化系列検出部は、第１合算部によって生成された第１合算値の絶対値と、第２合算部によって生成された第２合算値の絶対値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【００１７】
ここで、「合算値」とは、系列に含まれるビットを加算することなどを含む。また、「系列に含まれる複数のビット」とは、０もしくは１を示すビットなどを含み、また、０を示すビットを＋１と置換え、１を示すビットを−１と置換えた場合におけるビットなども含む。この態様によると、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【００１８】
符号化系列選択部は、第１移動加算部と、第１最大値検出部と、第２移動加算部と、第２最大値検出部と、符号化系列検出部と、選択出力部と、を有してもよい。第１移動加算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第１移動加算値を生成する。第１最大値検出部は、第１移動加算部によって生成された複数の第１移動加算値のうち、最大値を検出する。第２移動加算部は、第２ランレングス制限符号化部によって生成された、もしくは、第２連結部によって連結された第２符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第２移動加算値を生成する。第２最大値検出部は、第２移動加算部によって生成された複数の第２移動加算値のうち、最大値を検出する。符号化系列検出部は、第１最大値検出部によって検出された最大値と、第２最大値検出部によって検出された最大値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部は、第１符号化系列と第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【００１９】
ここで、「移動加算する」とは、移動加算し、さらに、絶対値を計算することなどを含む。この態様によると、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【００２０】
冗長系列付加部は、リードソロモン符号化部によって生成された冗長系列を複数の組に分割する分割部を有してもよい。分割部によって分割された組を、ランレングス符号化系列のいずれかの個所であって、組ごとにそれぞれ異なる個所に付加してもよい。冗長系列付加部は、分割部によって分割された組ごとに、等間隔で、ランレングス符号化系列に付加してもよい。この態様によると、ランレングス符号化系列のいずれかの個所に、複数の組に分割された冗長系列をそれぞれ異なる個所に分散して付加することによって、冗長系列が付加された後の系列のＲＬＬ性、および、ＤＣフリー特性を向上できる。また、組ごとに等間隔で付加することによって、冗長系列が付加された後の系列のＲＬＬ性、および、ＤＣフリー特性をより向上できる。
【００２１】
分割部は、リードソロモン符号化部によって生成された冗長系列に含まれる複数のビットのうち、いずれか２以上のビットを１組として、分割してもよい。分割部は、リードソロモン符号化部によって生成された冗長系列に含まれる複数のビットのうち、２Ｎ（Ｎは１以上の整数）個のビットを１組として、分割してもよい。この態様によると、ランレングス符号化系列に偶数個ずつ冗長系列を付加することによって、冗長系列が付加された後の系列のＲＬＬ性をより向上できる。
【００２２】
本発明のさらに別の態様は、信号復号装置である。この装置は、所定の冗長系列が挿入された第１信号系列を入力する入力部と、入力部によって入力された第１信号系列のうち、冗長系列の挿入個所を検出する冗長系列検出部と、冗長系列検出部によって検出された挿入個所にしたがって、入力部によって入力された第１信号系列から冗長系列を切り離して、第２信号系列を取得する冗長系列取得部と、冗長系列取得部によって切り離された冗長ビットを用いて、冗長系列取得部によって取得された第２信号系列の誤りを訂正するリードソロモン復号部と、リードソロモン復号部によって誤りが検査された第２信号系列に対し、ランレングス制限復号を実行するランレングス制限復号部と、を備える。この態様によると、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことによって、誤り訂正能力を向上できる。
【００２３】
本発明の別の態様もまた、信号復号装置である。この装置は、入力部と、判定ビット取得部と、ランレングス制限復号部と、信号処理部と、を備える。入力部は、所定の判定ビットが付加された符号化系列を入力する。判定ビット取得部は、入力部によって入力された符号化系列に付加されている所定の判定ビットを取得する。ランレングス制限復号部は、入力部によって入力された符号化系列をランレングス制限復号することによってデジタル信号系列を生成する。信号処理部は、ランレングス制限復号部によって生成されたデジタル信号系列に対し、判定ビット取得部によって取得された判定ビットに応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理、もしくは、デジタル信号系列に含まれる複数のビットをそのまま出力する処理のいずれかの処理を実行する。また、信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理に代えて、デジタル信号系列に含まれる複数のビットの順序を入れ替える処理を実行してもよい。この態様によると、符号化側において実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
【００２４】
本発明のさらに別の態様は、信号処理装置である。この装置は、信号符号化装置と信号復号装置とを備える。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。
【００２５】
本発明のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、ライトチャネルは、データに対し、ランレングス制限符号化を実行し、さらに、ランレングス制限符号化されたデータに対し、リードソロモン符号化を実行する第１の符号化部と、第１の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第２の符号化部と、第２の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備え、リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応した、第１の復号部と、第１の復号部で復号されたデータを復号する、第１の符号化部に対応した、第２の復号部と、を備える。第１の符号化部は、データをランレングス制限符号化することによって、ランレングス符号化系列を生成するランレングス制限符号化部と、ランレングス制限符号化部によって生成されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、リードソロモン符号化部によって生成された冗長系列をランレングス制限符号化部によって生成されたランレングス符号化系列に付加する冗長系列付加部と、を有する。第２の復号部は、第１の復号部によって復号されたデータを入力する入力部と、入力部によって入力された第１信号系列のうち、冗長系列の挿入個所を検出する冗長系列検出部と、冗長系列検出部によって検出された挿入個所にしたがって、入力部によって入力された第１信号系列から冗長系列を切り離して、第２信号系列を取得する冗長系列取得部と、冗長系列取得部によって切り離された冗長ビットを用いて、冗長系列取得部によって取得された第２信号系列の誤りを訂正するリードソロモン復号部と、リードソロモン復号部によって誤りが訂正された第２信号系列に対し、ランレングス制限復号を実行するランレングス制限復号部と、を有する。
【００２６】
この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。また、誤り訂正能力を向上できるので、より高速に記憶システムにアクセスすることができる。
【００２７】
本発明のさらに別の態様もまた、記憶システムである。この記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。また、誤り訂正能力を向上できるので、より高速に記憶システムにアクセスすることができる。
【００２８】
本発明のさらに別の態様は、信号符号化装置である。この装置は、符号化装置おいて、当該装置は、１つの半導体基板上に一体集積化されてもよい。この態様によると、ＤＣフリー性およびランレングス特性の高い符号化処理が効率良く実行でき、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【００２９】
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００３０】
本発明によれば、より少ない回路規模で、ランレングス制限を満たしつつ、ＤＣフリー特性を向上できる。
【発明を実施するための最良の形態】
【００３１】
本発明の実施形態を具体的に説明する前に、まず本実施形態にかかる記憶システム１００について概要を述べる。本実施形態にかかる記憶システム１００は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。ライトチャネルにおいては、誤り訂正符号化として、リードソロモン符号化と、ランレングス制限符号化と、ＤＣフリー符号化と、ＬＤＰＣ符号化とを行う。このリードソロモン符号化（以下、「ＲＳ符号化」と略称する。）は、リードチャネルを搭載する半導体と一体的に搭載してもよく、また、他の半導体に搭載されていてもよい。また、リードチャネルにおいては、ビタビアルゴリズムなどを用いたデータ検出と、ＬＤＰＣ復号を行なう。このデータ検出は、ＤＣ成分が存在することによって検出精度が劣化することが知られている。さらに、検出精度が劣化することによりＬＤＰＣ復号の訂正能力が低減する。したがって、本発明の実施形態においては、ＬＤＰＣ符号化を行なう前の段階において、ＤＣ成分を低減させるＤＣフリー符号化を行なう構成とした。なお、本実施形態にかかる記憶システム１００は、ＬＤＰＣ符号化に限定されず、他の誤り訂正符号化方式、たとえば、ターボ符号化や畳込み符号化が実行される構成であってもよい。
【００３２】
ＤＣフリー符号化は、異なる２つの系列のうち、よりＤＣフリー性の高い系列を選択することによって実現される。異なる２つの系列を生成するために、異なる２つの性質を有するＲＬＬ符号化を実行すると、２つ目のＲＬＬ符号化の回路が必要となる分、回路規模が増大する。また、回路規模の問題としないアプリケーションの場合であっても、異なる２つの性質を有するＲＬＬ符号化を実行した結果、双方の系列ともにＤＣフリー性が良いとは限らない。したがって、本発明の実施形態においては、同一のＲＬＬ符号化を実行することとした。
【００３３】
ここで、同一のＲＬＬ符号化を実行する場合、選択の対象となる系列が同一になるのを回避する必要がある。また、ＤＣフリー特性の良い制限符号化系列が存在しない場合を避ける必要もある。そこで、本発明の実施形態においては、ＲＬＬ符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の２つの系列とを対象とすることとした。これにより、生成される系列は全く異なることとなるため、統計的にＤＣフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避している。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりＤＣフリー特性の良い系列を生成できる可能性が向上する。したがって、本発明の実施形態は、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。
【００３４】
複数のＲＬＬ符号化された系列のいずれかを選択する場合、復号側において、誤って、符号化側において選択された系列とは異なる系列を対象とする可能性がある。この場合、誤りが増大することとなる。一般的に、リードソロモン符号化は、ＲＬＬ符号化の前に実行されていた。この場合、復号側においては、ＲＬＬ復号は、リードソロモン復号（以下、「ＲＳ復号」と略称する）の前に実行されるとなり、選択された系列の判定が誤る可能性が低くなかった。したがって、本発明の実施形態においては、符号化側においては、ＲＬＬ符号化および／またはＤＣフリー符号化、ＲＳ符号化の順で誤り訂正符号化を行なうこととした。また、復号側においては、ＲＳ復号、ＲＬＬ復号の順で誤り訂正復号を行なうこととした。
【００３５】
しかしながら、符号化側において、ＲＬＬ符号化および／またはＤＣフリー符号化、ＲＳ符号化の順で誤り訂正符号化を行なった場合、ＲＳ符号化において付加される冗長ビットは、ＲＬＬ性および／またはＤＣフリー特性を満たさないこととなる。一般的に、ＲＳ符号化において生成され、ＲＬＬ符号化系列に付加される冗長ビットの個数は、付加される系列に比べ１／１０程度であるため、ＲＬＬ性および／またはＤＣフリー特性を満たさないことによる弊害は大きい。したがって、本発明の実施形態においては、ＲＳ符号化において生成された冗長系列を分割し、ＲＬＬ符号化系列に分散して付加することとした。これにより、冗長系列が付加された後の符号化系列は、ＲＬＬ性、ＤＣフリー特性を満足することとなる。詳細は後述する。
【００３６】
以下、図面を用いて、本発明の実施形態について詳細に説明する。
【００３７】
図１は、本発明の実施形態に係る記憶システム１００の構成を示す図である。図１の記憶システム１００は、大きく分けて、ハードディスクコントローラ１（以下、「ＨＤＣ１」と略記する。）、中央処理演算装置２（以下、「ＣＰＵ２」と略記する。）、リードライトチャネル３（以下、「Ｒ／Ｗチャネル３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部４（以下、「ＶＣＭ／ＳＰＭ制御部４」と略記する。）、及びディスクエンクロージャ５（以下、「ＤＥ５」と略記する。）とから構成される。一般に、ＨＤＣ１、ＣＰＵ２、Ｒ／Ｗチャネル３、及びＶＣＭ／ＳＰＭ制御部４は同一の基板上に構成される。
【００３８】
ＨＤＣ１は、ＨＤＣ１全体を制御する主制御部１１、データフォーマット制御部１２、及びバッファＲＡＭ１４を含む。ＨＤＣ１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル３を介して、ＤＥ５と接続されており、主制御部１１の制御により、ホストとＤＥ５の間のデータ転送を行う。このＨＤＣ１には、Ｒ／Ｗチャネル３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部１２は、ホストから転送されたデータをディスク媒体５０上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体５０は、たとえば、磁気ディスクを含む。バッファＲＡＭ１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル３に転送する。逆に、Ｒ／Ｗチャネル３から転送されたリードデータを一時的に保存し、適切なタイミングでホストに転送する。
【００３９】
ＣＰＵ２は、フラッシュＲＯＭ２１（以下、「ＦＲＯＭ２１」と略記する。）、及びＲＡＭ２２を含み、ＨＤＣ１、Ｒ／Ｗチャネル３、ＶＣＭ／ＳＰＭ制御部４、及びＤＥ５と接続される。ＦＲＯＭ２１には、ＣＰＵ２の動作プログラムが保存されている。
【００４０】
Ｒ／Ｗチャネル３は、ライトチャネル３１とリードチャネル３２とに大別され、ＨＤＣ１との間で記録するデータ及び再生されたデータの転送を行う。また、Ｒ／Ｗチャネル３は、ＤＥ５と接続され、記録信号の送信、再生信号の受信を行う。詳細は後述する。
【００４１】
ＶＣＭ／ＳＰＭ制御部４は、ＤＥ５中のボイスコイルモータ５２（以下、「ＶＣＭ５２」と略記する。）とスピンドルモータ５３（以下、「ＳＰＭ５３」と略記する。）を制御する。
【００４２】
ＤＥ５は、Ｒ／Ｗチャネル３と接続され、記録信号の受信、再生信号の送信を行う。またＤＥ５は、ＶＣＭ／ＳＰＭ制御部４と接続されている。ＤＥ５は、ディスク媒体５０、ヘッド５１、ＶＣＭ５２、ＳＰＭ５３、及びプリアンプ５４等を有している。図１の記憶システム１００においては、ディスク媒体５０が１枚であり、且つヘッド５１がディスク媒体５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体５０が積層配置された構成であってもよい。また、ヘッド５１は、ディスク媒体５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル３により送信された記録信号は、ＤＥ５内のプリアンプ５４を経由してヘッド５１に供給され、ヘッド５１によりディスク媒体５０に記録される。逆に、ヘッド５１によりディスク媒体５０から再生された信号は、プリアンプ５４を経由してＲ／Ｗチャネル３に送信される。ＤＥ５内のＶＣＭ５２は、ヘッド５１をディスク媒体５０上の目標位置に位置決めするために、ヘッド５１をディスク媒体５０の半径方向に移動させる。また、ＳＰＭ５３は、ディスク媒体５０を回転させる。
【００４３】
ここで、図２を用いて、Ｒ／Ｗチャネル３について説明する。図２は、図１のＲ／Ｗチャネル３の構成を示す図である。Ｒ／Ｗチャネル３は、大きく分けて、ライトチャネル３１とリードチャネル３２から構成される。
【００４４】
ライトチャネル３１は、バイトインターフェース部３０１、スクランブラ３０２、ランレングス制限／ＤＣフリー／ＲＳ符号化部３０３（以下、「ＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３」と略記する。）、低密度パリティチェック符号化部３０４（以下、「ＬＤＰＣ符号化部３０４」と略記する。）、書き込み補償部３０５（以下、「ライトプリコン部３０５」と略記する。）、ドライバ３０６を含む。
【００４５】
バイトインターフェース部３０１では、ＨＤＣ１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ１から入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部３０１により入力データとして処理される。スクランブラ３０２はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
【００４６】
ＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３は、ディスク媒体５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。ＲＳ符号は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてＲＳ符号を利用して誤り訂正を行う場合、（冗長シンボル数／２）個までの誤りを訂正できる。また、ＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３は、０の最大連続長を制限する。０の最大連続長を制限することにより、自動利得制御部３１７（以下、「ＡＧＣ３１７」と略記する。）などに適したデータ系列にする。さらに、直流成分を低減し、誤り訂正能力の向上を図る。詳細は後述する。
【００４７】
ＬＤＰＣ符号化部３０４は、データ系列をＬＤＰＣ符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。ＬＤＰＣ符号化は、生成行列と呼ばれるｋ×ｎの行列に、長さｋのデータ系列を左から掛け合わせることで行う。この生成行列に対応する検査行列Ｈに含まれる各要素は、０もしくは１であり、１の数が０の数に比べて少ないことから、低密度パリティ検査符号（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅｓ）と呼ばれている。この１と０の配置を利用することによって、ＬＤＰＣ繰返復号部にて、効率的にエラーの訂正を行うことができる。
【００４８】
ライトプリコン部３０５は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ３０６からの出力は図示しないＤＥ５に送られ、プリアンプ５４を通してヘッド５１に送られ、ライトデータがディスク媒体５０上に記録される。
【００４９】
リードチャネル３２は、可変利得増幅器３１１（以下、「ＶＧＡ３１１」と略記する。）、ローパスフィルタ３１２（以下、「ＬＰＦ３１２」と略記する。）、ＡＧＣ３１７、アナログ／デジタル変換器３１３（以下、「ＡＤＣ３１３」と略記する。）、周波数シンセサイザ３１４、フィルタ３１５、ソフト出力検出部３２０、ＬＤＰＣ繰返復号部３２２、同期信号検出部３２１、ランレングス制限／ＤＣフリー／ＲＳ復号部３２３（以下、「ＲＬＬ／ＤＣフリー／ＲＳ復号部３２３」と略記する。）、デスクランブラ３２４とから構成されている。
【００５０】
ＶＧＡ３１１及びＡＧＣ３１７は、図示しないプリアンプ５４から送られたデータのリード波形の振幅の調整を行う。ＡＧＣ３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ３１１に設定すべきゲインを決定する。ＬＰＦ３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する。）波形への等化の一部を担う。ＬＰＦ３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ３１５を用いて、再度ＰＲ波形への等化を行う。フィルタ３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ３１４は、ＡＤＣ３１３のサンプリング用クロックを生成する。
【００５１】
ＡＤＣ３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにＡＤＣ３１３の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
【００５２】
ソフト出力検出部３２０は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム（Ｓｏｆｔ−Ｏｕｔｐｕｔ Ｖｉｔｅｒｂｉ Ａｌｇｏｒｉｔｈｍ。以下、「ＳＯＶＡ」と略記する。）が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ ＭａｘｉｍｕｍＬｉｋｅｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する。）方式を用いる。ＰＲＭＬは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
【００５３】
ソフト出力検出部３２０としてＳＯＶＡ方式が用いられている場合、軟判定値を出力する。例えば、ＳＯＶＡの出力として、（−０．７１、＋０．１８、＋０．４５、−０．４５、−０．９）という軟判定値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の「−０．７１」は１である可能性が大きいことを示しており、２番目の「＋０．１８」は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。上記の例の場合、（１、０、０、１、１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部３２２に軟判定値を入力する方が復号性能が向上する。
【００５４】
ＬＤＰＣ繰返復号部３２２は、ＬＤＰＣ符号化されているデータ系列から、ＬＤＰＣ符号化前の系列に復元する役割を有する。復号化の方法としては、主に、ｓｕｍ−ｐｒｏｄｕｃｔ復号法とｍｉｎ−ｓｕｍ復号法があり、復号性能の面ではｓｕｍ−ｐｒｏｄｕｃｔ復号法が有利であるが、ｍｉｎ−ｓｕｍ復号法はハードウェアによる実現が容易である特徴を持つ。ＬＤＰＣ符号を用いる実際の復号操作では、ソフト出力検出部３２０とＬＤＰＣ繰返復号部３２２の間で繰り返し復号を行うことにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部３２０とＬＤＰＣ繰返復号部３２２を複数段配列した構成が必要になる。同期信号検出部３２１は、データの先頭に付加された同期信号（Ｓｙｎｃ Ｍａｒｋ）を検出し、データの先頭位置を認識する役割を有する。
【００５５】
ＲＬＬ／ＤＣフリー／ＲＳ復号部３２３は、ＬＤＰＣ繰返復号部３２２から出力されたデータに対して、ライトチャネル３１のＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３の逆操作を行い、元のデータ系列に戻す。詳細は後述する。
【００５６】
デスクランブラ３２４は、ライトチャネル３１のスクランブラ３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ１に転送される。
【００５７】
ここで、「ＤＣフリー」について説明する。図３（ａ）〜（ｂ）は、本発明の実施形態にかかるＤＣフリー特性の例を示す図である。図３（ａ）は、ＤＣフリーである場合とそうでない場合における軟判定値の分布例を示す図である。横軸は個数、縦軸は軟判定値を示す。また、縦軸は、中心を±０として、プラス側、マイナス側の双方の軟判定値を含む軸である。実線で示す第１特性２００は、ＤＣフリーの場合の分布を示す。また、破線で示す第２特性３００は、ＤＣフリーでない場合の分布例を示す。ＤＣフリーとは、前述したように、系列に含まれる０と１のビットの個数の比率が５０％であることを示す。いいかえると、図３（ａ）の第１特性２００に図示するように、図２のＬＤＰＣ繰返復号部３２２における軟判定値の分布において、±１／２が中心値となり、±０付近の分布量が少ないことなどをいう。一方、ＤＣフリーでない場合、たとえば、図３（ａ）の第２特性３００に図示するように、軟判定値の分布において、±０付近の分布量が増加したものとなる。
【００５８】
図３（ｂ）は、ＤＣフリーである場合とそうでない場合におけるビット誤り率特性の例を示す図である。横軸は信号対雑音比（Ｓｉｇｎａｌ  ｔｏ  Ｎｏｉｓｅ  Ｒａｔｉｏ）、縦軸はビット誤り率（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）を示す。実線で示す第３特性２１０は、ＤＣフリーの場合のビット誤り率特性を示す。また、破線で示す第４特性３１０は、ＤＣフリーでない場合のビット誤り率特性を示す。図示するように、ＤＣフリーでない場合は、ＤＣフリーである場合と比べて、ビット誤り率が悪化することとなる。
【００５９】
図４は、図２のＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３の構成例を示す図である。ＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３は、ＲＬＬ／ＤＣフリー符号化部４０と、ＲＳ符号化部４２と、冗長系列付加部４４とを含む。ＲＬＬ／ＤＣフリー符号化部４０は、所定の信号系列をランレングス制限符号化およびＤＣフリー符号化することによって、ＤＣフリー性を有するランレングス制限符号化系列（以下、「ＲＬＬ系列」と略称する）を生成する。ＲＳ符号化部４２は、ＲＬＬ／ＤＣフリー符号化部４０によって生成されたＲＬＬ系列をＲＳ符号化することによって、冗長系列を生成する。冗長系列付加部４４は、ＲＳ符号化部４２によって生成された冗長系列をＲＬＬ／ＤＣフリー符号化部４０によって生成されたＲＬＬ符号化系列に分散して付加する。
【００６０】
図５は、図４のＲＬＬ／ＤＣフリー符号化部４０の構成例を示す図である。ＲＬＬ／ＤＣフリー符号化部４０３は、第１ＲＬＬ符号化部６０と、第１信号処理部６２と、第２ＲＬＬ符号化部６４と、直流成分除去符号化部６６とを含む。
【００６１】
第１ＲＬＬ符号化部６０は、スクランブラ３０２から出力されたデジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する。第１信号処理部６２は、スクランブラ３０２から出力されたデジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する。所定の信号処理は、デジタル信号系列に含まれる複数のビットの個数を変えなければ、任意の処理でよい。たとえば、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行する処理であってもよい。また、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、ビット反転処理、ビットの順序を並び替えの双方の処理を行なってもよい。第２ＲＬＬ符号化部６４は、第１信号処理部６２から出力された信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２符号化系列を生成する。直流成分除去符号化部６６は、第１ＲＬＬ符号化部６０によって生成された第１符号化系列と、第２ＲＬＬ符号化部６４によって生成された第２符号化系列とのうち、ＤＣフリー性の高い、いずれか一方を選択して出力する。
【００６２】
具体例を用いて説明する。処理すべきデジタル信号系列が３００ビットから構成されている場合、ＲＬＬ／ＤＣフリー符号化部４０は、３０ビットを１組として、１０回に分けて処理する。ここで、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４の符号化率が３０／３１である場合、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４からそれぞれ出力される１回あたりの系列のビット数は、３１ビットとなる。
【００６３】
図６は、図５の直流成分除去符号化部６６の構成例を示す図である。直流成分除去符号化部６６は、符号化系列選択部７４と、選択識別情報生成部７６と、識別情報付加部７８とを含む。符号化系列選択部７４は、第１ＲＬＬ符号化部６０によって生成された第１符号化系列と、第２ＲＬＬ符号化部６４によって生成された第２符号化系列のうち、いずれか一方の符号化系列を選択する。選択識別情報生成部７６は、符号化系列選択部７４によって選択された符号化系列を示す選択識別情報を生成する。識別情報付加部７８は、符号化系列選択部７４によって選択された符号化系列のいずれかの個所に、選択識別情報生成部７６によって生成された選択識別情報を付加する。
【００６４】
具体的に説明する。符号化系列選択部７４によって第１符号化系列が選択された場合、識別情報付加部７８において第１符号化系列に付加される選択識別情報は「０」となる。一方、符号化系列選択部７４によって第２符号化系列が選択された場合、識別情報付加部７８において第１符号化系列に付加される選択識別情報は「１」となる。いいかえると、選択識別情報「０」が付加された第１符号化系列、もしくは、選択識別情報「１」が付加された第２符号化系列がＬＤＰＣ符号化部３０４に出力される。なお、識別情報付加部７８によって選択識別情報が付加される個所は、符号化系列中の任意の一定の個所でよく、たとえば、符号化系列の最後尾に付加してもよい。詳細は後述するが、ここで付加される選択識別情報は判定ビットであり、復号側において判定ビットが付加された位置、および、判定ビットの内容を解析することにより、適切な復号処理が実現されることとなる。前述の具体例においては、１回あたり３１ビットの符号化系列に１ビットの選択識別情報が付加され合計３２ビットの系列が出力されることとなる。すなわち、ＲＬＬ／ＤＣフリー符号化部４０における符号化率は、３０／３２となる。
【００６５】
また、符号化系列選択部７４は、図示しない第１連結部と第２連結部とを含んでも良い。第１連結部は、当該符号化系列選択部７４によってすでに選択された符号化系列と前記第１符号化系列とを連結させる。また、第２連結部は、当該符号化系列選択部７４によってすでに選択された符号化系列と前記第２符号化系列とを連結させる。この場合、符号化系列選択部７４は、第１連結部によって連結された系列を新たな第１符号化系列とし、第２連結部によって連結された系列を新たな第２符号化系列とし、いずれか一方の符号化系列を選択してもよい。すなわち、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部７４が選択判定を行なうことによって、長区間におけるＤＣフリー特性を向上できる。
【００６６】
図７（ａ）〜（ｃ）は、図６の符号化系列選択部７４の第１〜第３の構成例を示す図である。図７（ａ）は、図６の符号化系列選択部７４の第１の構成例を示す図である。第１の構成における符号化系列選択部７４は、第１比率計算部８０と、第２比率計算部８２と、選択出力部８４とを含む。
【００６７】
第１比率計算部８０は、第１符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。第２比率計算部８２は、第２符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。選択出力部８４は、第１比率計算部８０で計算された比率と、第２比率計算部８２で計算された比率とのうち、５０％に近いほうの比率に対応する符号化系列を選択して出力する。
【００６８】
具体例を用いて説明する。まず、時刻ｔ＝１において、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４から、それぞれ３１ビットの符号化系列が出力されたと仮定する。この場合、第１比率計算部８０、第２比率計算部８２は、それぞれの符号化系列に含まれるビットを解析して、比率を計算する。ここで、第１比率計算部８０に入力される符号化系列に含まれるビットのうち、０を示すビットが１４ビット、１を示すビットが１７ビットである場合、比率は、第１比率計算部８０によって以下のように計算される。
比率ｔ＝１  ＝  （０を示すビット数＋１）／（符号化系列のビット数＋１）
＝  （１４＋１）／（３１＋１）
≒  ４６．９％  ・・・式（１）
【００６９】
また、第２比率計算部８２に入力される符号化系列に含まれるビットのうち、０を示すビットが１２ビット、１を示すビットが１９ビットである場合、比率は、第２比率計算部８２によって、以下のように計算される。この場合、第１符号化系列のほうが比率が５０％に近いため、ｔ＝１においては、選択出力部８４によって第１符号化系列が選択される。また、選択された第１符号化系列にかかる０を示すビット数「１４」が記憶される。なお、式（１）、式（２）の右辺の分子において、それぞれ「１」、「０」を加算しているのは、それぞれの選択識別情報を「０」、「１」と仮定しているためである。また、式（１）、式（２）の右辺の分母において、「１」を加算しているのは、選択識別情報を含めた系列の０の個数の割合を計算するためである。
比率ｔ＝１  ＝  （０を示すビット数＋０）／（符号化系列のビット数＋１）
＝  １２／（３１＋１）
＝  ３７．５％  ・・・式（２）
【００７０】
つぎに、ｔ＝２においてもｔ＝１の場合と同様に、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４から、それぞれ３１ビットの符号化系列が出力されたとする。ここで、第１比率計算部８０に入力される符号化系列に含まれるビットのうち、０を示すビットが１１ビット、１を示すビットが２０ビットである場合、比率は、以下のように計算される。
比率ｔ＝２  ＝  （０を示すビット数＋１）／（（符号化系列のビット数＋１）×ｔ）
＝  （１４＋１＋１１＋１）／（（３１＋１）×２）
≒  ４２．２％  ・・・式（３）
【００７１】
上記は、ｔ＝１の場合と異なり、第１比率計算部８０は、ｔ＝１において選択された符号化系列とｔ＝２における第１符号化系列とが第１連結部によって連結された系列について、比率を計算する。すなわち、ｔ＝１で選択された第１符号化系列のうち０を示すビットの個数「１４＋１」と、ｔ＝２における第１符号化系列のうちの０を示すビットの個数「１１＋１」とが式（３）の分子において加算されることとなる。また、式（３）における分母は、２組の符号化系列にかかるビット数となる。
【００７２】
また、第２比率計算部８２に入力される符号化系列に含まれるビットのうち、０を示すビットが１７ビット、１を示すビットが１４ビットである場合、第２比率計算部８２によって、以下のように比率が計算される。この場合、第２符号化系列のほうが比率が５０％に近いため、ｔ＝２においては、選択出力部８４によって第２符号化系列が選択される。
比率ｔ＝２  ＝  （０を示すビット数＋０）／（（符号化系列のビット数＋１）×ｔ）
＝  （１４＋１＋１７＋０）／（（３１＋１）×２）
＝  ５０．０％  ・・・式（４）
【００７３】
以下、同様にｔ＝３以降においても比率が計算される。ここで、ｔ＝ｋにおける比率は、以下のように表される。ただし、ｋは１以上の整数とする。また、Ｎｂｉｔ（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列に含まれるビットのうち、０を示すビットの個数を示す。ただし、Ｎｂｉｔ（ｋ）は、比率を計算する対象となる符号化系列に含まれるビットのうち、０を示すビットの個数を示す。なお、比率を計算する対象となる符号化系列には、選択識別情報も含まれるものとする。
【数１】
2007200440.tif 000003
【００７４】
図７（ｂ）は、図６の符号化系列選択部７４の第２の構成例を示す図である。第２の構成における符号化系列選択部７４は、第１合算部８６と、第２合算部８８と、選択出力部８４とを含む。第１合算部８６は、第１符号化系列に含まれる複数のビットを合算して第１合算値を生成する。第２合算部８８は、第２符号化系列に含まれる複数のビットを合算して第２合算値を生成する。符号化系列検出部は、第１合算部８６によって生成された第１合算値と、第２合算部８８によって生成された第２合算値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部８４は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【００７５】
具体例を用いて説明する。まず、ｔ＝１において、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４から、それぞれ３１ビットの符号化系列が出力されたと仮定する。この場合、第１合算部８６、第２合算部８８は、それぞれの符号化系列に含まれるビットを合算する。合算においては、０を「＋１」に置換えると共に、１を「−１」に置換えて合計してもよい。このように合算することによって、０と１を示すビットの個数が等しい場合、合算値は０となる。したがって、選択出力部８４においては、合算値が０に近い符号化系列を選べばよく、たとえば、合算値の絶対値が小さい符号化系列を選べばよい。なお、この手法は、連続デジタル加算（Ｒｕｎｎｉｎｇ  Ｄｉｇｉｔａｌ  Ｓｕｍｍａｔｉｏｎ。以下、「ＲＤＳ」と略称する。）とも呼ばれる。
【００７６】
ここで、ｔ＝１において、第１合算部８６に入力される符号化系列に含まれる３１個のビットのうち、０を示すビットが１４ビット、１を示すビットが１７ビットである場合、比率は、以下のように計算される。なお、右辺の第１項において「１」を加算しているのは、選択識別情報を０と仮定しているためである。
ＲＤＳabs  ＝  ｜（１４＋１）×（＋１）＋１７×（−１）｜
＝  ２  ・・・式（６）
【００７７】
また、第２合算部８８に入力される符号化系列に含まれるビットのうち、０を示すビットが１２ビット、１を示すビットが１９ビットである場合、比率は、以下のように計算される。この場合、第１符号化系列のＲＤＳのほうが小さいため、ｔ＝１においては、選択出力部８４によって第１符号化系列が選択される。また、ここでは、絶対値を計算する前の第１符号化系列についてのＲＤＳが「ＲＤＳ１＝−２」として記憶される。なお、右辺の第２項において「１」を加算しているのは、選択識別情報を１と仮定しているためである。
ＲＤＳabs  ＝  ｜１２×（＋１）＋（１９＋１）×（−１）｜
＝  ６  ・・・式（７）
【００７８】
つぎに、ｔ＝２において、ｔ＝１の場合と同様に、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４から、それぞれ３１ビットの符号化系列が出力されたとする。ここで、第１合算部８６に入力される符号化系列に含まれるビットのうち、０を示すビットが１１ビット、１を示すビットが２０ビットである場合、ＲＤＳは、以下のように計算される。ｔ＝１の場合と異なり、ｔ＝２においては、ｔ＝１において選択された符号化系列にかかるビット数も考慮にいれて計算されることとなる。
ＲＤＳabs  ＝  ｜ＲＤＳ１＋（１１＋１）×（＋１）＋２０×（−１）｜
＝  ｜−２＋（−８）｜
＝  １０  ・・・式（８）
【００７９】
また、第２合算部８８に入力される符号化系列に含まれるビットのうち、０を示すビットが１７ビット、１を示すビットが１４ビットである場合、比率は、以下のように計算される。この場合、第２符号化系列のＲＤＳのほうが小さいため、ｔ＝２においては、選択出力部８４によって第１符号化系列が選択される。また、ＲＤＳ2＝０が記憶される。
ＲＤＳabs  ＝  ｜ＲＤＳ１＋１７×（＋１）＋（１４＋１）×（−１）｜
＝  ｜−２＋（＋２）｜
＝  ０  ・・・式（９）
【００８０】
以下、同様にｔ＝３以降においてもＲＤＳabsが計算される。ここで、ｔ＝ｋにおけるＲＤＳabs（ｋ）は、以下のように表される。ただし、ｔは１以上の整数とする。また、Ｎｂｉｔ０（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、０を示すビットの個数を示す。また、Ｎｂｉｔ１（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、１を示すビットの個数を示す。ただし、Ｎｂｉｔ０（ｋ）、Ｎｂｉｔ１（ｋ）は、合算値を計算する対象となる符号化系列に含まれるビットのうち、それぞれ、０を示すビットの個数、１を示すビットの個数を示す。
【数２】
2007200440.tif 000004
【００８１】
上記における符号化系列選択部７４の動作は、ある時刻においては区間演算処理を行ないつつ、過去の連続する時刻間において移動演算処理を行なっている点が特徴となる。このように、区間処理と移動処理を組み合わせることによって、長区間、たとえば、３００ビットの系列全体において、ＤＣフリー性が向上されることとなる。
【００８２】
なお、第１合算部８６、第２合算部８８における合算処理は、符号化系列に含まれる０もしくは１を示すビットをそのまま合計してもよい。この場合、選択出力部８４においては、合算値が符号化系列の個数の半分の値に近いほうに対応する符号化系列が選択されることとなる。
【００８３】
図７（ｃ）は、図６の符号化系列選択部７４の第３の構成例を示す図である。第３の構成における符号化系列選択部７４は、第１移動加算部９０と、第１最大値検出部９２と、第２移動加算部９４と、第２最大値検出部９６と、選択出力部８４とを含む。第１移動加算部９０は、第１符号化系列に含まれる複数のビットを移動加算を計算することによって、複数のビットと同数の第１移動加算値を生成する。第１最大値検出部９２は、第１移動加算部９０によって生成された複数の第１移動加算値のうち、最大値を検出する。第２移動加算部９４は、第２符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第２移動加算値を生成する。第２最大値検出部９６は、第２移動加算部９４によって生成された複数の第２移動加算値のうち、最大値を検出する。符号化系列検出部は、第１最大値検出部９２によって検出された最大値と、第２最大値検出部９６によって検出された最大値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部８４は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【００８４】
符号化系列選択部７４の第３の構成例は、第２の構成例と同様に、第１移動加算部９０、第２移動加算部９４において、それぞれの符号化系列のＲＤＳを計算することによって、選択出力部８４が符号化系列を選択する。第３の構成例においては、３２ビットのＲＤＳの計算途中における最大値が小さいほうの符号化系列を選択する点で、３２ビットのＲＤＳ計算の最終計算値のみ考慮して０に近い符号化系列を選択する第２の構成例と異なる。言い換えると、第３の構成例は、所定の区間においても、複数の区間においても、移動演算によって選択処理を行なっている。このような態様をとることによって、区間途中においてもＤＣフリー性の良い系列を選択できる。
【００８５】
ここで、「ＲＤＳの計算途中における最大値」は、時刻ｔごとに、以下で導出される。ただし、Ｍｉｎ｛ｙ（０）、ｙ（１）｝とは、小さいほうの値を選択し、選択したほうの系列の番号を出力する関数を示す。たとえば、ｙ（０）＞ｙ（１）の場合、Ｓ（ｔ）は、１となる。また、ｍａｘ｛ｘ｝とは、ｘのうち、最大値を検出する関数を示す。また、ｋは、３２×（ｔ−１）＋１〜３２×ｔの範囲の値を示す。また、Ｂｉｔ（ｍ、ｊ）は、第ｊ符号化系列のうち、ｍ番目のビットが０である場合は＋１を示し、また、１である場合は−１を示す。
Ｓ（ｔ）＝Ｍｉｎ｛ＭａｘＲＤＳ（１）、ＭａｘＲＤＳ（２）｝  ・・・式（１１）
ＭａｘＲＤＳ（１）  ＝  ｍａｘ｛ＲＤＳ（ｋ、１）｝  ・・・式（１２−１）
ＭａｘＲＤＳ（２）  ＝  ｍａｘ｛ＲＤＳ（ｋ、２）｝  ・・・式（１２−２）
【数３】
2007200440.tif 000005
【００８６】
また、Ｂｉｔ（ｍ、１）、Ｂｉｔ（ｍ、２）は、ｔが増加するごとに、式（１１）で選択された系列に係るビットを下記のように書き換えた後に、上述の式（１３−１）、式（１３−２）等が計算されることとなる。
Ｂｉｔ（ｍ、１）＝Ｂｉｔ（ｍ、２）＝Ｂｉｔ（ｍ、Ｓ（ｔ−１））
：ｍ＝（ｔ−１）×３２＋１〜ｔ×３２、ｔ≠１  ・・・式（１４）
【００８７】
ここで、図７（ｃ）に示す符号化系列選択部７４の第３の構成例の動作について、図７（ｂ）に示す符号化系列選択部７４の第２の構成例の動作と比較する。図８は、図７（ｂ）と図７（ｃ）にそれぞれ示す符号化系列選択部７４の動作の相違を示す図である。横軸は時間、縦軸はＲＤＳを示す。ここで、４００Ａは、第１符号化系列におけるＲＤＳの推移を示す。また、４００Ｂは、第２符号化系列におけるＲＤＳの推移を示す。図７（ｂ）に示す符号化系列選択部７４の第２の構成例においては、ＲＤＳの区間演算の最終値であるＲＤＳＡとＲＤＳＢとを比較して小さいほうの符号化系列を選択する。図８においては、ＲＤＳＡ＜ＲＤＳＢであるので、選択出力部８４は、第１符号化系列を選択することとなる。一方、図７（ｃ）に示す符号化系列選択部７４の第３の構成例においては、それぞれのビットにおけるＲＤＳ、すなわち、３２個のビットを順次移動演算処理した後の絶対値のうち、最大値を比較して、小さいほうの符号化系列を選択する。図８においては、第１符号化系列については、ＭａｘＡが最大値であり、また、第２符号化系列については、ＭａｘＢが最大値となる。ここでは、ＭａｘＡ＞ＭａｘＢであるので、選択出力部８４は、第２符号化系列を選択することとなる。いずれの構成例を符号化系列選択部７４に適用した場合においても、ＤＣフリー性の高い符号化系列を選択することができる。
【００８８】
図４に戻る。冗長系列付加部４４は、図示しない分割部を含む。分割部は、ＲＳ符号化部４２によって生成された冗長系列を複数の組に分割する。分割部によって分割された組を、ＲＬＬ／ＤＣフリー符号化系列のいずれかの個所であって、組ごとにそれぞれ異なる個所に付加する。冗長系列付加部４４は、分割部によって分割された組ごとに、等間隔で、たとえば、Ｌ個おきに、ＲＬＬ／ＤＣフリー符号化系列に付加する。分割部は、ＲＳ符号化部４２によって生成された冗長系列に含まれる複数のビットのうち、いずれか２以上のビットを１組として、分割する。分割部は、ＲＳ符号化部４２によって生成された冗長系列に含まれる複数のビットのうち、２Ｎ（Ｎは正の整数）個のビットを１組として、分割する。
【００８９】
図４に図示したＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３の動作について、具体的に説明する。図９は、図４のＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３の動作例を示す図である。まず、ＲＬＬ／ＤＣフリー符号化部４０は、ＲＬＬ／ＤＣフリー符号化系列４００を生成する。つぎに、ＲＳ符号化部４２は、ＲＬＬ／ＤＣフリー符号化系列４００に対してＲＳ符号化を実行して、冗長系列５００を生成する。つぎに、冗長系列付加部４４の分割部は、冗長系列５００をＭ個の部分冗長系列５１０に分割する。部分冗長系列５１０は、第１部分情報系列５１０ａと、第２部分情報系列５１０ｂと、・・・、第Ｍ部分情報系列５１０ｃとを代表する。それぞれの部分冗長系列５１０は、２Ｎ個のビットを含む。冗長系列付加部４４は、ＲＬＬ／ＤＣフリー符号化系列４００に部分冗長系列５１０ごとに、それぞれ異なる位置に分散して付加する。また、冗長系列付加部４４は、部分冗長系列５１０を等間隔でＲＬＬ／ＤＣフリー符号化系列４００に付加する。これにより、冗長系列５００に含まれるすべてのビットがＲＬＬ／ＤＣフリー符号化系列４００に付加され、ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６００が生成される。
【００９０】
ここで、ＲＬＬ／ＤＣフリー符号化系列４００、冗長系列５００、ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６００の長さは、以下のように表される。ここで、Ｌは、部分冗長系列５１０が付加される間隔を示す。また、Ｎ、ｓ、α、βは、正の整数とする。
ＲＬＬ／ＤＣフリー符号化系列４００の長さ  ＝  ｓＬ＋α  ・・式（１５）
冗長系列５００の長さ  ＝  ２ＮＭ＋β  ・・式（１６）
ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６００の長さ  ＝
ＲＬＬ／ＤＣフリー符号化系列４００の長さ＋冗長系列５００の長さ  ・・式（１７）
【００９１】
つぎに、ＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３の具体的な動作過程について説明する。図１０は、図４のＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３の動作例を示すフローチャートである。まず、ＲＬＬ／ＤＣフリー符号化部４０は、ＲＬＬ／ＤＣフリー符号化系列４００を生成する（Ｓ１０）。つぎに、ＲＳ符号化部４２は、ＲＬＬ／ＤＣフリー符号化系列４００に対してＲＳ符号化を実行して、冗長系列５００を生成する（Ｓ１２）。つぎに、冗長系列付加部４４の分割部は、冗長系列５００をＭ個の部分冗長系列５１０に分割し、部分冗長系列５１０ごとに、それぞれ異なる位置に等間隔で付加する（Ｓ１４〜Ｓ２０）。
【００９２】
Ｓ１４〜Ｓ２０においては、まず、ＲＬＬ／ＤＣフリー符号化系列４００に関するカウンタｉをＬ、冗長系列５００に関するカウンタｊを１に設定する（Ｓ１４）。つぎに、ＲＬＬ／ＤＣフリー符号化系列４００の先頭からｉ番目のビットの後ろに、冗長系列５００のｊ番目から（ｊ＋２Ｎ）番目までのビットを付加する（Ｓ１６）。ただし、冗長系列５００に、（ｊ＋１）番目〜（ｊ＋２Ｎ）番目のいずれかのビットが存在しない場合、存在するビットをすべて付加した後、Ｓ１８のステップに進む。つぎに、カウンタｉをＬ個進めるとともに、カウンタｊを２Ｎ個進める（Ｓ１８）。ここで、ｊが２ＮＭ以下である場合（Ｓ２０のＮ）、付加すべきＲＬＬ／ＤＣフリー符号化系列４００が残存していると判断して、Ｓ１６〜Ｓ２０の処理を繰り返す。一方、ｊが２ＮＭより大きい値であった場合（Ｓ２０のＹ）、すなわち、すべての冗長系列５００が付加されたと判断して、処理を終了する。
【００９３】
具体例を用いて説明する。ＲＬＬ／ＤＣフリー符号化部４０は、ＲＬＬ／ＤＣフリー符号化系列４００を示すｘ（ｎ）において偶数番目に存在する複数のビットを示すビット系列ｙ０（ｍ）において、０を示すビットの連続性を制限されるように符号化する。また、ＲＬＬ／ＤＣフリー符号化部４０は、ｘ（ｎ）において奇数番目に存在する複数のビットを示すビット系列ｙ１（ｍ）のそれぞれにおいて、０を示すビットの連続性を制限されるように符号化する。たとえば、ｘ（ｎ）、ｙ０（ｍ）、ｙ１（ｍ）は、以下のように示される。ここで、０の最大連続長を３と仮定した。
ｘ（ｎ）  ＝  ｛０１１１００１０１００１１００１０００１｝  ・・・式（１８）
ｙ０（ｍ）＝  ｘ（２ｎ）  ＝｛０１０１１０１０００｝  ・・・式（１９）
ｙ１（ｍ）＝  ｘ（２ｎ＋１）＝｛１１０００１０１０１｝  ・・・式（２０）
【００９４】
また、ＤＣフリー符号化は、一般的に、ＲＬＬ／ＤＣフリー符号化系列４００の所定の区間において、０もしくは１を示すビットの比率が５０％に近くなるように符号化することなどをいう。いいかえると、所定の区間より短い区間においては、ＤＣフリーとはならなくともよい。上述のｘ（ｎ）においては、０を示すビットの個数が１１個なのに対し、１を示すビットの個数が９個となっているため、ほぼＤＣフリー性を満たしているといえる。
【００９５】
ここで、冗長系列付加部４４において、式（１８）に示すＲＬＬ／ＤＣフリー符号化系列４００に冗長系列５００を付加するにあたり、式（１８）の後ろに直列的に付加した第１ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６１０を示すｘ’（ｎ）と、分散して付加した第２ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６２０を示すｘ’’（ｎ）のＲＬＬ性、ＤＣフリー性について比較する。なお、付加される冗長系列５００は、４ビットとし、それぞれ、Ａ、Ｂ、Ｃ、Ｄとした。また、ｙ０’（ｍ）、ｙ１’（ｍ）は、それぞれ第１ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６１０を示すｘ’（ｎ）における偶数番目、奇数番目に存在する複数のビットを示すビット系列を示す。また、ｙ０’’（ｍ）、ｙ１’’（ｍ）は、それぞれ第２ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６２０を示すｘ’’（ｎ）における偶数番目、奇数番目に存在するビットの系列を示す。
【００９６】
冗長系列５００  ＝  ｛Ａ、Ｂ、Ｃ、Ｄ｝  ・・・式（２１）
ｘ’（ｎ）  ＝  ｛０１１１００１０１００１１００１０００１ＡＢＣＤ｝
・・・式（２２）
ｙ０’（ｍ）  ＝  ｛０１０１１０１０００ＡＣ｝  ・・・式（２３）
ｙ１’（ｍ）  ＝  ｛１１０００１０１０１ＢＤ｝  ・・・式（２４）
【００９７】
ｘ’’（ｎ）  ＝  ｛０１１１０ＡＢ０１０１００１１００ＣＤ１０００１｝
・・・式（２５）
ｙ０’’（ｍ）  ＝  ｛０１０Ｂ１１０１０Ｄ００｝  ・・・式（２６）
ｙ１’’（ｍ）  ＝  ｛１１Ａ０００１０Ｃ１０１｝  ・・・式（２７）
【００９８】
式（２２）〜（２４）によると、式（１８）の後ろに直列的に付加した場合のｙ０’（ｍ）、ｙ１’（ｍ）においては、Ａが０を示すビットであれば、０の最大連続長は４となる。また、ＡとＣの双方が０を示すビットであれば、０の最大連続長は５となる。式（１８）の後ろに直列的に付加された冗長系列は、ＲＬＬ符号化が施されていないため、このような結果となる。一方、式（２５）〜（２７）によると、分散して付加した場合のｙ０’’（ｍ）、ｙ１’’（ｍ）においては、ＡもしくはＤが０である場合を除き、０の最大連続長は３のままとなる。また、Ａ、Ｄが０を示すビットであったとしても、０の最大連続長は、たかだか４にしかならない。いいかえると、偶数個のビットを１組として、ＲＬＬ／ＤＣフリー符号化系列に付加したとしても、ＲＬＬ性は大きく劣化することがないといえる。さらにいいかえると、冗長系列をＲＬＬ／ＤＣフリー符号化系列に分散して付加することによって、冗長系列をＲＬＬ符号化することと等価な効果が得られるといえる。
【００９９】
また、ＤＣフリー性について検討すると、Ａ、Ｂ、Ｃ、Ｄのすべてが０を示すビットである場合、ｘ’’（ｎ）には、０を示すビットが１５個、１を示すビットが９個となり、ややＤＣフリー性が劣化する。また、Ａ、Ｂ、Ｃ、Ｄのすべてが１を示すビットである場合、ｘ’’（ｎ）には、０を示すビットが１１個、１を示すビットが１３個となり、ややＤＣフリー性が劣化する。しかしながら、すべての冗長ビットが同一のビットを示すことは希である。また、冗長ビットの長さは、ランレングス符号化系列の長さに比べ１／１０程度であり、このような場合、ＤＣフリー性は局所的に崩れる場合があるものの、ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６００全体としてはほとんど劣化しない。
【０１００】
したがって、２Ｎ個の冗長ビットを１組として、ＲＬＬ系列に等間隔で付加することによって、冗長系列が付加された後のＲＬＬ系列、すなわち、ＲＬＬ／ＤＣフリー／ＲＳ符号化系列６００はＲＬＬ性、ＤＣフリー特性を満足することができる。なお、必ずしも等間隔で付加する必要はないが、等間隔としたほうが処理が簡易になる効果がある。また、分散して付加しない場合と比べて、冗長系列部分のＲＬＬ性を極めて向上できる。
【０１０１】
図１１は、図２のＲＬＬ／ＤＣフリー／ＲＳ復号部３２３の構成例を示す図である。ＲＬＬ／ＤＣフリー／ＲＳ復号部３２３は、冗長系列検出部３４と、冗長系列取得部３６と、ＲＳ復号部３８と、ＲＬＬ／ＤＣフリー復号部４６とを含む。冗長系列検出部３４は、ＬＤＰＣ繰返復号部３２２によって入力された第１信号系列のうち、冗長系列の挿入個所を検出する。具体的には、冗長系列の挿入間隔、１組あたりのビット数を考慮して、挿入個所を検出する。
【０１０２】
冗長系列取得部３６は、冗長系列検出部３４によって検出された挿入個所にしたがって、ＬＤＰＣ繰返復号部３２２によって入力された第１信号系列から冗長系列を切り離して、第２信号系列を取得する。ＲＳ復号部３８は、冗長系列取得部３６によって切り離された冗長ビットを用いて、冗長系列取得部３６によって取得された第２信号系列の誤りを訂正する。ＲＬＬ／ＤＣフリー復号部４６は、ＲＳ復号部３８によって誤りが訂正された第２信号系列に対し、ランレングス制限復号を実行する。具体的には、図４に図示したＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３の動作と逆の順序で処理が行なわれる。
【０１０３】
図１２は、図１１のＲＬＬ／ＤＣフリー復号部４６の構成例を示す図である。ＲＬＬ／ＤＣフリー復号部４６は、判定ビット取得部６８と、ＲＬＬ復号部７０と、第２信号処理部７２とを含む。判定ビット取得部６８は、ＲＳ復号部３８によって誤りが訂正された第２信号系列に付加されている所定の判定ビットを取得する。ＲＬＬ復号部７０は、ＲＳ復号部３８によって誤りが訂正された第２信号系列（判定ビットを除く）をランレングス制限復号することによってデジタル信号系列を生成する。第２信号処理部７２は、ＲＬＬ復号部７０によって生成されたデジタル信号系列に対し、判定ビット取得部６８によって取得された判定ビットに応じて、第１信号処理部６２で実行された所定の信号処理と逆の信号処理を実行して出力する処理を実行する。たとえば、図５の第１信号処理部６２において、ビット反転処理、および／または、ビットの順序を入れ替える処理を行なっていた場合、ビットの反転処理および／またはその入れ替えられた系列を元に戻す入れ替える処理とを実行する。もしくは、判定ビット取得部６８によって取得された判定ビットに応じて、第２信号処理部７２は、デジタル信号系列に含まれる複数のビットをそのまま出力する処理を実行する。
【０１０４】
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【０１０５】
本実施形態によれば、ランレングス制限符号化を行なった後にＲＳ符号化を行なうことによって、復号側においては、ＲＳ復号を行なった後の信号系列に対してランレングス制限復号を行なうことになる。いいかえると、ＲＳ復号によって誤り訂正された系列に対してランレングス制限復号が実行される。そうすると、符号化側において選択された符号化系列を正確に判別でき、全体としての誤り訂正能力を向上できる。また、ランレングス制限符号化系列のいずれかの個所に、複数の組に分割された冗長系列をそれぞれ異なる個所に付加することによって、冗長系列が付加された後の系列のＲＬＬ性、および、ＤＣフリー特性を向上できる。また、組ごとに等間隔で付加することによって、冗長系列が付加された後の系列のＲＬＬ性、および、ＤＣフリー特性をより向上できる。ランレングス制限符号化系列に偶数個ずつ冗長系列を付加することによって、冗長系列が付加された後の系列のＲＬＬ性をより向上できる。偶数個のビットを１組として、ＲＬＬ／ＤＣフリー符号化系列に付加したとしても、ＲＬＬ性は大きく劣化することがないといえる。さらにいいかえると、冗長系列をＲＬＬ／ＤＣフリー符号化系列に分散して負荷することによって、冗長系列をＲＬＬ符号化することと等価な効果が得られる。冗長ビットの長さは、ランレングス制限符号化系列の長さに比べ１／１０程度であるので、ＤＣフリー性はほとんど劣化せず、また、分散して付加しない場合と比べて、冗長系列部分のＲＬＬ性を極めて向上できる。
【０１０６】
また、同一のＲＬＬ符号化を実行することによって、回路規模の増大を伴うことなく、ＤＣフリー性が良い系列を生成できる。ＲＬＬ符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の２つの系列とを対象とすることによって、生成される系列は全く異なるため、統計的にＤＣフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避できる。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりＤＣフリー特性の良い系列を生成することができる。したがって、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。また、同一のＲＬＬ符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。
【０１０７】
また、ビット反転処理、および／または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および／または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。また、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
【０１０８】
また、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部７４が選択判定を行なうことによって、長区間におけるＤＣフリー特性を向上できる。符号化系列選択部７４において、区間処理と移動処理を組み合わせてＲＤＳを計算することによって、長区間、たとえば、３００ビットの系列全体において、ＤＣフリー性が向上できる。また、０を示すビットと１を示すビットとの比率が５０％に近いほうを選択することによって、ＤＣフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。符号化側において実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。ＤＣフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０１０９】
本実施形態において、Ｒ／Ｗチャネル３は、１つの半導体基板上に一体集積化されてもよい。また、本実施形態の符号化系列選択部７４において、区間演算処理、もしくは、移動演算処理として説明した。しかしながらこれにかぎらず、区間平均処理、もしくは、移動平均処理を行なうことによって、ＤＣフリー性の高い符号化系列の選別を行なってもよい。この場合であっても、同様の効果を得ることができる。また、ＲＬＬ／ＤＣフリー／ＲＳ符号化部３０３の構成において、所定の信号処理を実行する第１信号処理部６２を用いて、異なる２つの信号系列を生成するとして説明した。しかしながらこれにかぎらず、複数の信号処理部を用いて複数の信号系列を生成してもよい。たとえば、ビット反転処理、ビットの順序を入れ替える処理、ビット反転処理及びビットの順序を入れ替える処理をそれぞれ実行する信号処理装置を備えていてもよい。この場合、４つのうちいずれの系列が選択されたことを示す判定ビットを２ビットとすることによって、復号側において適切な復号処理が実現できる。また、信号処理を行なわない系列も含め、４つの異なる系列を生成することができる。また、選択肢を増やせるので、ＤＣフリー性の高い系列が生成される可能性を向上できる。
【０１１０】
また、誤り訂正方式としてＲＳ符号を用いた場合について説明したがこれにかぎらず、他の組織符号、たとえば、ＬＤＰＣ符号やターボ符号であってもよい。これらの場合であっても、上述と同様の効果を得られることは言うまでもない。
【０１１１】
また、図９、図１０において、最初にＬ個の間隔を置いた後、ＲＬＬ／ＤＣフリー符号化系列４００に部分冗長系列５１０を付加するとして説明した。しかしながらこれにかぎらず、任意の値、たとえばαや０に置換えて、これらの処理が実行されてもよい。また、Ｓ２０において、ｊが２ＮＭより大きいか否かによって終了判定を行なうとして説明した。しかしながらこれにかぎらず、ｉがｓＬより大きいか否かを条件として終了判定を行なってもよい。これらの場合であっても、上述と同様の効果を得られることは言うまでもない。
【０１１２】
以上、本発明を実施形態をもとに説明した。この実施形態は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【０１１３】
【図１】本発明の実施形態に係る記憶システムの構成を示す図である。
【図２】図１のＲ／Ｗチャネルの構成を示す図である。
【図３】図３（ａ）〜（ｂ）は、本発明の実施形態にかかるＤＣフリー特性の例を示す図である。
【図４】図２のＲＬＬ／ＤＣフリー／ＲＳ符号化部の構成例を示す図である。
【図５】図４のＲＬＬ／ＤＣフリー符号化部の構成例を示す図である。
【図６】図５の直流成分除去符号化部の構成例を示す図である。
【図７】図７（ａ）〜（ｃ）は、図６の符号化系列選択部７４の第１〜第３の構成例を示す図である。
【図８】図７（ｂ）と図７（ｃ）にそれぞれ示す符号化系列選択部の動作の相違を示す図である。
【図９】図４のＲＬＬ／ＤＣフリー／ＲＳ符号化部の動作例を示す図である。
【図１０】図４のＲＬＬ／ＤＣフリー／ＲＳ符号化部の動作例を示すフローチャートである。
【図１１】図２のＲＬＬ／ＤＣフリー／ＲＳ復号部の構成例を示す図である。
【図１２】図１１のＲＬＬ／ＤＣフリー復号部の構成例を示す図である。
【符号の説明】
【０１１４】
１  ＨＤＣ、  ２  ＣＰＵ、  ３  Ｒ／Ｗチャネル、  ４  ＶＣＭ／ＳＰＭ制御部、  ５  ＤＥ、  １１  主制御部、  １２  データフォーマット制御部、  １４  バッファＲＡＭ、  ２１  ＦＲＯＭ、  ２２  ＲＡＭ、  ３１  ライトチャネル、  ３２  リードチャネル、  ３４  冗長系列検出部、  ３６  冗長系列取得部、  ３８  ＲＳ復号部、  ４０  ＲＬＬ／ＤＣフリー符号化部、  ４２  ＲＳ符号化部、  ４４  冗長系列付加部、  ４６  ＲＬＬ／ＤＣフリー復号部、  ５０  ディスク媒体、  ５１  ヘッド、  ５２  ＶＣＭ、  ５３  ＳＰＭ、  ５４  プリアンプ、  ６０  第１ＲＬＬ符号化部、  ６２  第１信号処理部、  ６４  第２ＲＬＬ符号化部、  ６６  直流成分除去符号化部、  ６８  判定ビット取得部、  ７０  ＲＬＬ復号部、  ７２  第２信号処理部、  ７４  符号化系列選択部、  ７６  選択識別情報生成部、  ７８  識別情報付加部、  ８０  第１比率計算部、  ８２  第２比率計算部、  ８４  選択出力部、  ８６  第１合算部、  ８８  第２合算部、  ９０  第１移動加算部、  ９２  第１最大値検出部、  ９４  第２移動加算部、  ９６  第２最大値検出部、  １００  記憶システム、  ２００  第１特性、  ２１０  第３特性、  ３００  第２特性、  ３０１  バイトインターフェース部、  ３０２  スクランブラ、  ３０３  ＲＬＬ／ＤＣフリー／ＲＳ符号化部、  ３０４  ＬＤＰＣ符号化部、  ３０５  ライトプリコン部、  ３０６  ドライバ、  ３１０  第４特性、  ３１１  ＶＧＡ、  ３１２  ＬＰＦ、  ３１３  ＡＤＣ、  ３１４  周波数シンセサイザ、  ３１５  フィルタ、  ３１６  補間フィルタ、  ３１７  ＡＧＣ、  ３１８  ゼロ相リスタート部、  ３１９  タイミング制御部、  ３２０  ソフト出力検出部、  ３２１  同期信号検出部、  ３２２  ＬＤＰＣ繰返復号部、  ３２３  ＲＬＬ／ＤＣフリー／ＲＳ復号部、  ３２４  デスクランブラ、  ４００  ＲＬＬ／ＤＣフリー符号化系列、  ５００  冗長系列、  ５１０  部分冗長系列、  ５１０ａ  第１部分情報系列、  ５１０ｂ  第２部分情報系列、  ５１０ｃ  第Ｍ部分情報系列、  ６００  ＲＬＬ／ＤＣフリー／ＲＳ符号化系列、  ６１０  第１ＲＬＬ／ＤＣフリー／ＲＳ符号化系列、  ６２０  第２ＲＬＬ／ＤＣフリー／ＲＳ符号化系列。
【図１】
2007200440.tif 000006
【図２】
2007200440.tif 000007
【図３】
2007200440.tif 000008
【図４】
2007200440.tif 000009
【図５】
2007200440.tif 000010
【図６】
2007200440.tif 000011
【図７】
2007200440.tif 000012
【図８】
2007200440.tif 000013
【図９】
2007200440.tif 000014
【図１０】
2007200440.tif 000015
【図１１】
2007200440.tif 000016
【図１２】
2007200440.tif 000017