(57)【要約】【課題】より精度良くエラー訂正を行えるようにする。【解決手段】  Ｃ１復号部２２から出力されたパリティは、遅延部４１により遅延された後、組み合わせ部４２に供給される。組み合わせ部４２は、設定できる最大のエラーポインタ数より、Ｃ２復号部２４から出力される２８シンボルデータに設定されているエラーポインタ数が少ない場合、最大数から設定されている数を減算した数のエラーポインタをパリティに設定する。エラーポインタを設定するパリティの組み合わせが換えられ、組み合わせ毎に、Ｃ１復号部４３によりＣ１復号が行われる。判定部４４は、入力された組み合わせ毎の復号結果からエラー成分として０を含む組み合わせを抽出し、その組み合わせによるＣ１復号を復号結果として後段の処理に出力する。本発明は、ＣＩＲＣ復号を行う装置に適用することが可能である。【選択図】図３
2006004030.tif 000002
【特許請求の範囲】
【請求項１】
パリティを除くデータ列に設定されているエラーポインタの第１の数を判定する判定手段と、
前記パリティと前記データ列に設定できる前記エラーポインタの第２の数より、前記判定手段により判定された前記エラーポインタの第１の数が少ない場合、前記第２の数から前記第１の数を減算した第３の数の範囲で、前記パリティにエラーポインタを設定する設定手段と、
前記設定手段によりエラーポインタが設定されたパリティを用いて復号を行う復号手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記設定手段は、前記パリティの数が、前記第３の数より大きい場合、前記エラーポインタを設定するパリティの組み合わせを変化させ、
前記復号手段は、前記組み合わせ毎に前記データ列を復号し、その復号結果のうちの、エラー成分に０を含む組を復号結果とする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記復号手段は、ＣＩＲＣ(Circular Interleave Reed-solomon Code）に基づき前記データ列を復号する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
パリティを除くデータ列に設定されているエラーポインタの第１の数を判定する判定ステップと、
前記パリティと前記データ列に設定できる前記エラーポインタの第２の数より、前記判定ステップの処理により判定された前記エラーポインタの第１の数が少ない場合、前記第２の数から前記第１の数を減算した第３の数の範囲で、前記パリティにエラーポインタを設定する設定ステップと、
前記設定ステップの処理によりエラーポインタが設定されたパリティを用いて復号を行う復号ステップと
を含むことを特徴とする情報処理方法。
【請求項５】
パリティを除くデータ列に設定されているエラーポインタの第１の数を判定する判定ステップと、
前記パリティと前記データ列に設定できる前記エラーポインタの第２の数より、前記判定ステップの処理により判定された前記エラーポインタの第１の数が少ない場合、前記第２の数から前記第１の数を減算した第３の数の範囲で、前記パリティにエラーポインタを設定する設定ステップと、
前記設定ステップの処理によりエラーポインタが設定されたパリティを用いて復号を行う復号ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、ＣＩＲＣ(Circular Interleave Reed-solomon Code）などの符号化方式を適用したときの復号時におけるエラー訂正に用いて好適な情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
例えばＣＤ（Compact Disc）プレーヤなどの所定の情報を処理する情報処理装置等では、取り扱う記録媒体の製造過程または使用中に生ずる許容範囲を越える傷等によるエラーを訂正するためのエラー訂正方法としてＣＩＲＣを使っている。例えば、ＣＤ方式に関するＣＩＲＣは、高いランダムエラーの訂正能力を有するエラー訂正符号であるリードソロモン（Reed-solomon）符号と、バーストエラーをインタリーブによりランダムエラーに変換する循環インタリーブ方式を組み合わせたものが用いられている。
【０００３】
図１は、ＣＤ方式のＣＩＲＣでエラー訂正するエンコーダ１０の構成の一例を示す図である。ＣＤ方式のＣＩＲＣにおいては、Ｌ・Ｒチャンネルのそれぞれ６サンプル、いわゆる１６ビットで表示されるオーディオ信号１２サンプル分が一つの単位として形成される。各１６ビットデータは、上位８ビットと下位８ビットに分けられ、各８ビットのデータが１つのシンボルとして取り扱かわれる。
【０００４】
図１に示すように、１２サンプル分は２４シンボルで形成される。このような２４シンボルのデータのうち先頭から偶数であるサンプル時間のデータは、インタリーブ部１１により２ワード遅延された後、２４シンボルデータが交差され、隣接したデータが互いに一定間隔で離れるように配置される。このように交差され配置された２４シンボルデータから、Ｃ２符号部１２により、第１エラー訂正符号Ｃ２が構成される。
【０００５】
このＣ２は、ｎ＝２８、ｋ＝２４で冗長度が４であるリードソロモン符号であり、最小距離は５である。Ｃ２のパリティをＱと表示する。第１チェックワード列、即ち４シンボルデータであるＱパリティは、２４シンボルデータの中央に配置される。次いで、Ｐパリティ４シンボルと、２４シンボルデータの総２８シンボルデータが、遅延部１３により、シンボル毎にそれぞれ異なる量の差等遅延されインタリーブされる。
【０００６】
差等遅延は４ワードの一定遅延量Ｄを基本単位で１番目シンボルデータを除いた２番目シンボルデータから順次に１Ｄ、２Ｄ、３Ｄ、４Ｄ・・・・・２６Ｄおよび２７Ｄの遅延量で差等遅延させる。このように差等遅延された２８シンボルデータから第２エラー訂正符号Ｃ１が、Ｃ１符号部１４により構成される。このＣ１は、ｎ＝３２、ｋ＝２８で冗長度が４であるリードソロモン符号とされ、最小距離は５とされる。
【０００７】
Ｃ１のパリティをＰとする。第２チェックワード列、即ち４シンボルデータであるＰパリティは、２８シンボルデータの最終シンボルデータの次に配置される。次いで、出力部１５により、偶数番目のシンボルデータが１ワードずつ遅延され、総３２シンボルデータが発生されることにより符号化が完了される。
【０００８】
このようにして符号化されたデータは、図２に示すようなデコーダにより復号される。図２は、ＣＤ方式のＣＩＲＣでエラー訂正するデコーダ２０の構成の一例を示す図である。
【０００９】
エンコーダ１０で符号化された３２シンボルデータは、基本的に、エンコーダで行われた処理の逆の処理が行われることによりデコードされる。図２に示したデコーダ２０において、Ｗ、ＰおよびＱと表示される３２シンボルデータ、即ちデータ列は、光ディスクからピックアップされ復調された信号である。Ｗと表示された２４シンボルデータ、即ちデータワード列はオーディオデータであり、ＰおよびＱはエラー検出および訂正のためのパリティーデータ、即ち第１および第２チェックワード列である。
【００１０】
３２シンボルデータは、デコーダ２０に供給される。デコーダ２０は、入力部２１（デスクランブル部２１ａとインバータ部２１ｂから構成される）、第１のデコーダとしてのＣ１復号部２２、第１の遅延部としてのデインタリービング部２３、第２のデコーダとしてのＣ２デコーダ２４、出力部としての逆交差遅延部２５より構成される。
【００１１】
デスクランブル部２１ａは、１６個の１ワード遅延線で構成され、スクランブルされた３２シンボルデータのスクランブルを解除するために、先頭から偶数番目のシンボルデータを、１ワードずつ遅延させる。即ち、ＣＤ方式において光ディスク上に形成されたピット(pit)の大きさは８ビット以内なので、信号処理単位を８ビット＝１シンボルデータにすれば、光ディスクのスクラッチによるエラーは、殆ど１シンボル単位となる。
【００１２】
シンボルとシンボルの間にスクラッチがあったとすれば２シンボルのエラーになる。したがって、このような連続エラーを分散するためには、シンボル単位の遅延を行うが、これをスクランブル処理とし、再生時にはスクランブル処理を解除するためにデスクランブル処理が行われる。
【００１３】
インバータ部２１ｂは、Ｑパリティの４シンボルデータとＰパリティの４シンボルデータの０と１を反転させる。これは符号化時に固定パターンとバーストエラーに対する対策の一環として、Ｐ・Ｑの８シンボルデータの０と１を反転させたものを復元するためのものである。
【００１４】
Ｃ１復号部２２は、３２シンボルデータのうちＰパリティの４シンボルデータを用いて残りの２８シンボルデータのバーストエラーを検出すると共にランダムエラーも訂正する。この際のエラー訂正は、パリティーチェック行列、即ちリードソロモンコードにより４個のシンドロームが発生されることにより行われる。２つ以上のシンボルエラーが生じているときのデータブロックは、エラー訂正不能と判断され、２８シンボルデータは訂正されないまま次段に伝送される。ここでデータ列の総てのワードに標識（最小減１ビット）が誤差の有無を表示するように加算される。
【００１５】
デインタリービング部２３は、Ｃ１復号部２２から伝送された２８シンボルデータを、差等遅延させインタリービングを解除する。即ち、光ディスクの再生中に生ずる殆どのエラーは、スクラッチ、埃などが原因であると見られるが一度欠陥が生ずると近接した多数のシンボルが一遍に損傷される。同一のデータブロック内で多くのシンボルが損傷された場合、エラー検出や訂正が不可能になる。
【００１６】
記録（エンコード）時に同一のデータブロック内のシンボルを他のデータブロックに分散させ記録し、再生時には分散されたシンボルを本来のデータブロック位置に復元させる。この復元過程をデインタリーブと称する。
【００１７】
デインタリービング部２３は、２８シンボルデータを差等遅延させるための２７Ｄ、２６Ｄ、２５Ｄ・・・・２Ｄ、１Ｄ（Ｄは４ワードの一定遅延量の基本単位）の他の遅延時間を有する遅延線で第１乃至第２７伝送チャンネルより構成される。
【００１８】
Ｃ２復号部２４は、インタリービングが解除され、即ち２８データワードの総てが同一に２７Ｄの遅延時間に遅延され、本来のデータブロック位置に復元された２８シンボルデータのうちＱパリティの４シンボルデータを用いてリードソロモン符号と入力２８ワードから４個のシンドロームを発生して最大４シンボルエラーまで訂正する。ここで誤差の矯正されたワードに関する標識は消されるが、矯正できない誤差ワードに対する標識は消されない。
【００１９】
逆交差遅延部２５は、Ｃ２復号部２４から供給される２４シンボルデータブロック内で本来の位置に復元させるために互いに交差させ、符号化の時間軸上に隣接したシンボルデータを２ワード遅延処理により分散させたものを本来の位置に復元させるために２ワード遅延処理がなされないシンボルデータを２ワード遅延処理する。このような遅延処理は、訂正不能のエラーデータを再生時に連続に出力させないためである。
【００２０】
このようにデコードが行われることにより、エラーが訂正されたデータが生成され、そのデータに基づく音声が、ユーザに提供されることになる。
【００２１】
しかしながら、光ディスク上に多くのエラーデータが存する場合など、前記のＣ１及びＣ２エラー訂正能力では訂正できないエラーデータが存することがある。そのような場合、訂正されないエラーデータにより本来のデータとは異なるデータが生成され、生成されたデータから再生されたオーディオ信号には雑音が含まれてしまう。
【００２２】
そのようなエラーを訂正しきれない状況が発生しないようにするために、Ｃ１やＣ２のエラー訂正（ＣＩＲＣによるエラー訂正）を１回だけでなく２回（もしくは、複数回）行うことが提案されている。（例えば、特許文献１参照）
【特許文献１】特開平５−２９９６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、特許文献１に記載のようにＣＤ方式のＣＩＲＣによるエラー訂正を繰り返して行う場合、２回目のＣ１訂正でＣ１のパリティ部分のエラーポインタが存在しな状態で、２回目のＣ１訂正が行われることになる。
【００２４】
１回目のＣ１で訂正不能時にエラーポインタを全てのシンボルに適応すると、Ｃ１パリティ以外のシンボルは、Ｃ２訂正で、違うブロックとの組み合わせで訂正が行われてしまうことになる。そのため、エラーでない箇所や、エラー訂正された箇所のエラーポインタはリセットされてしまうことがある。しかしながら、Ｃ１パリティは、Ｃ２訂正に含まれていないのでリセットされることはなく、エラーが潜んでいる可能性のある１回目と同じものが、そのまま２回目に入力されてしまうといった課題があった。
【００２５】
そのため、Ｃ１パリティは、４シンボルあるので４シンボルほど不確定状態の上に、パリティ以外のデータ部分にＣ２訂正ができないものがあった場合、４シンボル以上が不確定なので、それ以上訂正することができないという課題があった。
【００２６】
エラーポインタを使用せずに訂正を行うと、２箇所のエラー訂正しか実行できず、繰り返しによるエラー訂正は、訂正できる範囲が狭められてしまうという課題があった。
【００２７】
本発明はこのような状況に鑑みてなされたものであり、パリティ以外の部分に存在するエラーポインタの残りのエラーポインタを利用することにより、エラーポインタが存在しないパリティのどの部分が正しい値であるかを探し出し、確認することで、正しくエラーを訂正できるようにし、より精度良くエラー訂正できるようにすることを目的とする。
【課題を解決するための手段】
【００２８】
本発明の情報処理装置は、パリティを除くデータ列に設定されているエラーポインタの第１の数を判定する判定手段と、パリティとデータ列に設定できるエラーポインタの第２の数より、判定手段により判定されたエラーポインタの第１の数が少ない場合、第２の数から第１の数を減算した第３の数の範囲で、パリティにエラーポインタを設定する設定手段と、設定手段によりエラーポインタが設定されたパリティを用いて復号を行う復号手段とを備えることを特徴とする。
【００２９】
前記設定手段は、パリティの数が、第３の数より大きい場合、エラーポインタを設定するパリティの組み合わせを変化させ、復号手段は、データ列を組み合わせ毎に復号し、その復号結果のうちの、エラー成分に０を含む組を復号結果とするようにすることができる。
【００３０】
前記復号手段は、ＣＩＲＣ(Circular Interleave Reed-solomon Code）に基づきデータ列を復号するようにすることができる。
【００３１】
本発明の情報処理方法は、パリティを除くデータ列に設定されているエラーポインタの第１の数を判定する判定ステップと、パリティとデータ列に設定できるエラーポインタの第２の数より、判定ステップの処理により判定されたエラーポインタの第１の数が少ない場合、第２の数から第１の数を減算した第３の数の範囲で、パリティにエラーポインタを設定する設定ステップと、設定ステップの処理によりエラーポインタが設定されたパリティを用いて復号を行う復号ステップとを含むことを特徴とする。
【００３２】
本発明のプログラムは、パリティを除くデータ列に設定されているエラーポインタの第１の数を判定する判定ステップと、パリティとデータ列に設定できるエラーポインタの第２の数より、判定ステップの処理により判定されたエラーポインタの第１の数が少ない場合、第２の数から第１の数を減算した第３の数の範囲で、パリティにエラーポインタを設定する設定ステップと、設定ステップの処理によりエラーポインタが設定されたパリティを用いて復号を行う復号ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００３３】
本発明の情報処理装置および方法、並びにプログラムにおいては、符号化されているデータ列に、設定できるエラーポインタの数より少ない数のエラーポインタが設定されている場合、残りの設定できる範囲内で、エラーポインタが存在しないパリティに対して組み合わせて設定され、その設定された組毎に復号が行われる。
【発明の効果】
【００３４】
本発明によれば、精度良くエラー訂正を行うことが可能となる。
【００３５】
本発明によれば、複数回のエラー訂正を行う際、パリティ自体にエラーがないか否かを確認してエラー訂正を行うことができる。このことにより、より精度良くエラー訂正することが可能となる。
【発明を実施するための最良の形態】
【００３６】
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００３７】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加されたりする発明の存在を否定するものではない。
【００３８】
本発明の情報処理装置は、例えば、図３または図４に示したデコーダ４０である。本発明の情報処理装置は、パリティを除くデータ列に設定されているエラーポインタの第１の数を判定する判定手段（例えば、図６のステップＳ３１乃至Ｓ３３の処理を実行する図３の組み合わせ部４２）と、パリティとデータ列に設定できるエラーポインタの第２の数より、判定手段により判定されたエラーポインタの第１の数が少ない場合、第２の数から第１の数を減算した第３の数の範囲で、パリティにエラーポインタを設定する設定手段（例えば、図６のステップＳ３５乃至Ｓ３７の処理を実行する図３の組み合わせ部４１とＣ１復号部４３）と、設定手段によりエラーポインタが設定されたパリティを用いて復号を行う復号手段（例えば、図６のステップＳ３５乃至Ｓ３７の処理を実行する図３の組み合わせ部４１とＣ１復号部４３）とを備える。
【００３９】
以下に、本発明の実施の形態について図面を参照して説明する。
【００４０】
図３は、本発明を適用したデコーダ（decoder）の一実施の形態の構成を示す図である。また、図４は、図３に示したデコーダ４０を機能ブロック図として表した図である。図３および図４は、同一のデコーダの構成を示している。図３および図４において、同一の箇所には同一の符号を付し、対応関係を示すこととする。
【００４１】
図３（図４）に示したデコーダ４０は、ＣＤ（Compact Disc）方式のＣＩＲＣ(Circular Interleave Reed-solomon Code）でエンコードされたデータ（情報）を処理する情報処理装置としての機能を有し、例えば、ＣＤプレーヤに備えられる。デコーダ４０に供給されるデータは、図１に示したような構成を有するエンコーダ（encoder）１０によりエンコードされ、所定の記録媒体（例えば、ＣＤ）に記録されたデータである。
【００４２】
デコーダ４０は、ＣＩＲＣのＣ１およびＣ２系列のエラー訂正を、それぞれ２回行う構成とされている。即ち、まず、Ｃ１およびＣ２系列の１番目エラー訂正を行う。その後、Ｃ２系列のエラー訂正結果の２８シンボルデータが再びインタリービング（interleaving）され、そのインタリービングされた２８シンボルデータが遅延された後、Ｐパリティの４シンボルデータで２番目のＣ１系列のエラー訂正が行われる。
【００４３】
そしてさらに２番目のＣ１系列のエラー訂正結果の２８シンボルデータがデインタリービング（deinterleaving）された後、Ｑパリティの４シンボルデータで２番目のＣ２系列のエラー訂正が行われる。したがって、１番目のＣ１系列で２シンボル、１番目のＣ２系列で４シンボルの２番目のＣ１系列で４シンボル、２番目のＣ２系列で４シンボルのエラーが訂正できるようになる。
【００４４】
このような構成にすることにより、エラー訂正能力を向上させることができる。
【００４５】
そのような処理を行うデコーダ４０の構成について、図３および図４を参照して説明する。図３および図４に示したデコーダ４０は、入力部２１（デスクランブル（descramble）部２１ａとインバータ（inverter）部２１ｂから構成される）、Ｃ１復号部２２、デインタリービング部２３、Ｃ２復号部２４、インタリービング部４１、組み合わせ部４２、Ｃ１復号部４３、判定部４４、デインタリービング部４５、Ｃ２復号部４６、および交差遅延処理部２５から構成される。
【００４６】
図３に示した構成のうち、図２と同一の部分は同一符号を付し、適宜、その説明は省略する。また、図３では図示を省略しているが、図２中の左側に示したデータ（デコーダ２０に入力されるデータ）と基本的に同様なデータが図３に示したデコーダ４０に入力される。
【００４７】
デスクランブル部２１ａは、１６個の１ワード遅延線を含む構成とされている。デスクランブル部２１ａは、記録時にスクランブル（scramble）された３２シンボルデータのスクランブルを解除するために、先頭から偶数番目のシンボルデータを、１ワードずつ遅延させる。
【００４８】
ＣＤ方式において光ディスク上に形成されたピット（pit）の示す大きさは８ビット以内であり、信号処理単位を８ビット＝１シンボルデータにすると、光ディスクのスクラッチによるエラーは、殆ど１シンボル単位となる。
【００４９】
シンボルとシンボルの間にスクラッチがあったとすれば２シンボルのエラーになってしまう。このような連続エラーを分散するためにシンボル単位の遅延が、データの記録時（符号時）に行なわれる。そしてこの記録時における処理（図１の出力部１５において行われる処理）をスクランブル処理とし、再生時にはスクランブル処理を解除するためにデスクランブル処理が行われる。そのデスクランブル処理を、デスクランブル部２１ａは行う。
【００５０】
インバータ部２１ｂは、Ｑパリティの４シンボルデータとＰパリティの４シンボルデータの０と１を反転させる。これは符号時に、固定パターンとバーストエラーに対する対策として、Ｐ・Ｑの８シンボルデータの０と１が反転されるため、その復元を行うために行われる。
【００５１】
Ｃ１復号部２２は、３２シンボルデータのうちＰパリティの４シンボルデータを用いて残りの２８シンボルデータのバーストエラーを検出すると共に、ランダムエラーも訂正する。このエラー訂正は、パリティーチェック行列、即ちリードソロモンコードにより４個のシンドロームを発生することにより行われる。
【００５２】
仮に、この段階で２つ以上のシンボルエラーが生ずると、そのデータブロックは、エラー訂正不能と判断され、２８シンボルデータは訂正されないまま次段に伝送される。ここでデータ列の総てのワードに標識（最小減１ビット）が誤差の有無を表示するように加算される。
【００５３】
デインタリービング部２３は、Ｃ１復号部２２から伝送された２８シンボルデータを、差等遅延させインタリービングを解除する。光ディスクなどの記録媒体の再生中に生ずるエラーは、スクラッチや埃などが原因である場合が多く、一度欠陥が生ずると近接した多数のシンボルが一遍に損傷される傾向にある。同一のデータブロック内で多くのシンボルが損傷された場合、エラー検出や訂正が不可能になる。
【００５４】
このようなことを防ぐために、記録時（符号時）に同一のデータブロック内のシンボルが他のデータブロックに分散された状態で記録され（図１の遅延部１３による処理）、再生時（復号時）には分散されたシンボルが、本来のデータブロック位置に復元される。この復元過程をデインタリーブと称し、この処理を、デインタリービング部２３は行う。
【００５５】
デインタリービング部２３は、２８シンボルデータを差等遅延させるための２７Ｄ、２６Ｄ、２５Ｄ・・・・２Ｄ、１Ｄ（Ｄは４ワードの一定遅延量の基本単位）の他の遅延時間を有する遅延線で第１乃至第２７伝送チャンネルより構成される。
【００５６】
Ｃ２復号部２４は、インタリービングが解除され、即ち２８データワードの総てが同一に２７Ｄの遅延時間に遅延され、本来のデータブロック位置に復元された２８シンボルデータのうちＱパリティの４シンボルデータを用いてリードソロモン符号と入力２８ワードから４個のシンドロームを発生して最大４シンボルエラーまで訂正する。ここで誤差の矯正されたワードに関する標識は消されるが、矯正できない誤差ワードに対する標識は消されない。
【００５７】
図３に示したデコーダ４０では、再度ＣＩＲＣによるエラー訂正が行われる。そこで、１段目のエラー訂正がＣ１復号部２２とＣ２復号部２４により行われた後、Ｃ２復号部２４から出力される２４シンボルデータと第１および第２のチェックワード列が、遅延部２３に入力されたデータ列の配列状態と同じ配列状態に復元させるための処理が実行される。
【００５８】
遅延部４１は、入力された２８シンボルデータを再度インタリービングさせるために、１番目伝送チャンネルを除いた２番目伝送チャンネルから１Ｄ、２Ｄ、３Ｄ・・・・・２６Ｄおよび２７Ｄの遅延量を有する遅延線を含む構成される。また遅延部４１は、Ｃ１復号部２２から供給される４個のチェックワードを遅延させるために、２７Ｄの遅延量を有する遅延線を、２９番目乃至３２番目チャンネルとして有する構成とされている。
【００５９】
第２の遅延部としての遅延部４１により再度インタリービングされた３２シンボルデータは、Ｃ１復号部４３に供給される。詳細は後述するが、Ｃ１復号部４３に供給される３２シンボルデータのうち、Ｃ１復号部２２から供給される４個のチェックワードは、組み合わせ部４２を介して入力される。なお、ここでは、４個のチェックワードは、組み合わせ部４２を介して入力されるとしたが、４個のチェックワードも、直接的にＣ１復号部４３に供給され、組み合わせ部４２にも供給される構成としても良い。
【００６０】
組み合わせ部４２は、エラー訂正の精度をより高めるために設けられているが、その詳細は、後述する。また、組み合わせ部４２を設けることにより、Ｃ１復号部４３は、同一の復号処理を実行する複数のＣ１復号部から構成されている。
【００６１】
Ｃ１復号部４３は、上述したＣ１復号部２２において行われる同一の処理を行う。すなわち、Ｃ１復号部４３は、エラー訂正し、総てのワードに対して誤差有無の標識を行う。Ｃ１復号部４３からの出力データ列は、判定部４４を介して遅延部４５に供給される。判定部４４は、Ｃ１復号部４３から供給される複数の復号結果から、後述する判定方式に基づいて１つの結果（データ列）を抽出し、遅延部４５に供給する。
【００６２】
遅延部４５は、遅延部２３と同様の構成を有し、入力された２８シンボルデータを、再びデインタリービングする。遅延部４５によりデインタリービングされたデータ列は、Ｃ２復号部４６に供給される。Ｃ２復号部４６は、上述したＣ２復号部２４と同一の過程で入力されたデータ列に対してエラー訂正し、出力する。Ｃ２復号部４６から出力されたデータ列は、逆交差遅延部２５に供給される。
【００６３】
逆交差遅延部２５は、Ｃ２復号部４６から供給される２４シンボルデータ内で本来の位置に復元されるために互いに交差させ、符号化時に時間軸上に隣接したシンボルデータを２ワード遅延処理により分散させたものを、本来の位置に復元させるために、２ワード遅延処理がなされないシンボルデータを２ワード遅延処理する。このような遅延処理は、訂正不能のエラーデータを再生時に連続に出力させないために行われる。
【００６４】
このようにデコードが行われることにより、エラーが訂正されたデータが生成され、そのデータに基づく音声が、ユーザに提供されることになる。
【００６５】
次に図３または図４に示したデコーダ４０の動作について、図５乃至図９のフローチャートを参照して説明する。ステップＳ１１において、デコーダ４０は、データを入力する。入力されるデータは、図示されていないピックアップなどが制御されることにより、所定の記録媒体（例えば、ＣＤ）から読み出されたデータである。
【００６６】
デコーダ４０は、入力部２１においてデータを入力する。入力部２１は、デスクランブル部２１ａとインバータ部２１ｂから構成されているが、このデスクランブル部２１ａとインバータ部２１ｂにより、偶数シンボルが１フレーム分遅延される。この処理が実行されることにより、記録時に奇数シンボルのみ１フレーム遅延された分が相殺され、Ｑパリティの４シンボルデータとＰパリティの４シンボルデータの０と１が反転される。
【００６７】
入力部２１による処理が施されたデータ列は、Ｃ１復号部２２に供給される。Ｃ１復号部２２は、ステップＳ１２において、供給された３２シンボルデータのうちＰパリティの４シンボルデータを用いて残りの２８シンボルデータのバーストエラーを検出すると共にランダムエラーを訂正する。
【００６８】
Ｃ１復号部２２により復号されたデータ列は、デインタリービング部２３に供給される。デインタリービング部２３は、ステップＳ１３において、供給された２８シンボルデータを差等遅延させインタリービングを解除する。インタリービングが解除された２８シンボルデータは、Ｃ２復号部２４に供給される。
【００６９】
Ｃ２復号部２４は、ステップＳ１４において、本来のデータブロック位置に復元された２８シンボルデータのうち、Ｑパリティの４シンボルデータを用いてリードソロモン符号と入力２８ワードから４個のシンドロームを発生して最大４シンボルエラーまで訂正する。ここで誤差の矯正されたワードに関する標識は消されるが、矯正できない誤差ワードに対する標識は消されない。
【００７０】
ここまでの処理で、１段目の復号およびエラー訂正が行われる。続けて、２段目の復号およびエラー訂正を行うために、以下の処理が実行される。
【００７１】
Ｃ２復号部２４から出力された２８シンボルデータは、遅延部４１に供給される。遅延部４１は、ステップＳ１５において、入力された２８シンボルデータを再度インタリービングする。この処理を実行するのは、再度ＣＩＲＣによるエラー訂正を行うためである。また遅延部４１は、Ｃ１復号部２２から供給される４個のチェックワード列を遅延させて出力する。このＣ１復号部２２から供給されるチェックワード列は、１段目のＣ１復号を行うＣ１復号部２２に供給されたチェックワードと同一のものとされる。
【００７２】
遅延部４１により再度インタリービングされた３２データ列は、Ｃ１復号部４３に供給される。また、Ｃ１復号部４３に供給される３２データ列のうち、Ｃ１復号部２２から供給される４個のチェックワードは、組み合わせ部４２にも供給される。
【００７３】
組み合わせ部４２、Ｃ１復号部４３、および判定部４４は、ステップＳ１６において、判定処理を実行する。この処理については、図６乃至図９のフローチャートを参照して後述する。ステップＳ１６における処理が実行されることにより、エラー訂正の精度はより高められることになる。
【００７４】
ステップＳ１６の処理が実行され、判定部４４から２８シンボルデータが出力されると、そのデータ列は、遅延部４５に供給される。遅延部４５は、ステップＳ１７において、入力された２８シンボルデータを、再びデインタリービングする。この処理は、ステップＳ１３において、遅延部２３が行う処理と同様に行われる。遅延部４５によりデインタリービングされたデータ列は、Ｃ２復号部４６に供給される。Ｃ２復号部４６は、ステップＳ１８において、ステップＳ１４においてＣ２復号部２４が行った同一の過程で、入力されたデータ列をエラー訂正し、逆交差遅延部２５に出力する。Ｃ２復号部４６からの出力データ列は、逆交差遅延部２５に供給される。
【００７５】
逆交差遅延部２５は、ステップＳ１９において、Ｃ２復号部４６から供給される２４シンボルデータ内で本来の位置に復元されるために互いに交差させ、符号化の時間軸上に隣接したシンボルデータを２ワード遅延処理により分散させたものを本来の位置に復元させるために２ワード遅延処理がなされないシンボルデータを２ワード遅延処理する。
【００７６】
このようにして復号されたデータ列は、図示されていないスピーカなどに供給される。
【００７７】
次に、ステップＳ１６において実行される判定処理について説明する。この判定処理は、以下のことを考慮し、より精度良くエラー訂正を行えるようにするために実行される。すなわち、Ｃ１復号部４３に供給される４個のチェックワード（Ｐパリティ）は、２８シンボルデータ列に含まれているエラーを訂正するために設けられているわけだが、この供給されるパリティ自体にエラーが含まれている可能性がある。パリティ自体にエラーが含まれていた場合には、２８ビットのデータ列に含まれるエラーを正しく訂正できない可能性がある。
【００７８】
仮に、パリティ自体にエラーが含まれた状態で、２８シンボルデータに含まれるエラーの訂正が行われてしまうと、エラーが訂正できないだけでなく、さらにエラーを増大させてしまう可能性がある。また、結果的に誤訂正されたデータが、正しいデータとして扱われてしまう可能性がある。このようなことを防ぐために、ステップＳ１６における判定処理が実行される。
【００７９】
Ｃ１復号部４３に供給される３２シンボルデータのうち、パリティである４シンボルデータを除いた２８シンボルデータに、エラーが含まれている場合、そのエラーの箇所を示すエラーポインタが付けられた状態でＣ１復号部４３にはデータ列が供給される。このエラーポインタは、Ｃ１復号部４３に供給されるパリティには付けられていない。
【００８０】
また、ＣＤ方式のＣＩＲＣにおいては、最大４箇所にエラーポインタの訂正ができる。そこで、パリティ以外の部分（すなわち２８シンボルデータ列の部分）に存在するエラーポインタの残りのエラーポインタをパリティのエラーポインタとして利用することにより、パリティ自体のエラーをチェックするようにする。換言すれば、２８シンボルデータ列に、ｍ個のエラーポインタが付けられていた場合、（４−ｍ）個のエラーポインタが、パリティのエラーをチェックするためのエラーポインタとして利用される。このチェックを含む処理を、ここでは判定処理としている。
【００８１】
図６に示したフローチャートを参照し、ステップＳ１６において行われる判定処理について説明する。まず、組み合わせ部４２（図３、図４）は、ステップＳ３１において、２８シンボルデータ列に付けられているエラーポインタは１つであるか否かを判断する。ステップＳ３１において、エラーポインタは１つではないと判断された場合、ステップＳ３２に処理が進められ、エラーポインタは２つであるか否かが判断される。
【００８２】
ステップＳ３２において、エラーポインタは２つではないと判断された場合、ステップＳ３３に処理が進められ、エラーポインタは３つであるか否かが判断される。ステップＳ３３において、エラーポインタは３つではないと判断された場合、ステップＳ３４に処理が進めらる。エラーポインタは３つではないと判断されるときは、２８シンボルデータ列に付けられているエラーポインタは、４つ、または、それ以上であるときである。
【００８３】
４つ以上のエラーポインタが付けられている場合には、パリティに付けることができる余分なエラーポインタは存在していないため、パリティ自体のエラーを訂正するといった処理は実行されないようにする。また、４つ以上のエラーポインタが付けられている場合には、エラー訂正自体が誤訂正になる可能性があるので、パリティ以外の部分に関してもエラー訂正が行われないように制御される。
【００８４】
このようなことを考慮し、ステップＳ３３において、エラーポインタは３つではないと判断された場合、ステップＳ３４に処理が進められ、パリティ自体の訂正処理は実行されないように制御される。
【００８５】
一方、ステップＳ３１において、２８シンボルデータ列に付けられているエラーポインタは１つであると判断された場合、ステップＳ３５に処理が進められる。ステップＳ３５において実行される判定処理１について、図７のフローチャートを参照して説明する。
【００８６】
ステップＳ５１において、組み合わせ部４２は、シンボルＰ１、パリティＡ、パリティＢ、パリティＣにエラーポインタを設定し、その設定した条件で、Ｃ１復号するように、Ｃ１復号部４３に指示を出す。そのような指示に基づき、Ｃ１復号部４３は、４箇所訂正を行う。
【００８７】
ここで、シンボルＰ１は、２８シンボルデータ列のうち、エラーポインタが存在するシンボルを示す。パリティＡ、パリティＢ、パリティＣは、４シンボルデータのパリティのうちの３つのパリティをそれぞれ示す。以下の説明において、シンボルＰ２、シンボルＰ３、パリティＤなども用いるが、その意味は、上記したシンボルＰ１、パリティＡ、パリティＢ、パリティＣと同様の意味を示すとする。また、パリティＡ、パリティＢ、パリティＣ、パリティＤは、“ＡＢＣＤ”の順で並んでいるとする。
【００８８】
ステップＳ５１において、シンボルＰ１、パリティＡ、パリティＢ、パリティＣにエラーポインタが設定され、その設定に基づいて、Ｃ１復号部４３において、Ｃ１復号が行われる。
【００８９】
ステップＳ５２において、シンボルＰ１、パリティＡ、パリティＢ、パリティＤにエラーポインタが設定され、その設定に基づいて、Ｃ１復号部４３において、Ｃ１復号が行われる。
【００９０】
ステップＳ５３において、シンボルＰ１、パリティＡ、パリティＣ、パリティＤにエラーポインタが設定され、その設定に基づいて、Ｃ１復号部４３において、Ｃ１復号が行われる。
【００９１】
ステップＳ５４において、シンボルＰ１、パリティＢ、パリティＣ、パリティＤにエラーポインタが設定され、その設定に基づいて、Ｃ１復号部４３において、Ｃ１復号が行われる。
【００９２】
ステップＳ５１乃至Ｓ５４の処理を並列的に行う場合、換言すれば、４回のＣ１復号を同時に行う場合、Ｃ１復号部４３は、Ｃ１復号を行う部分を４つ必要とする。よって、図３に示したように、本実施の形態においては、Ｃ１復号部４３は複数備えた構成とされている。複数備えるようにした場合、その数は、組み合わせ部４２において設定される組み合わせの数に依存するわけだが、この場合、その数の最大値は、６となる。６となる理由は、図８のフローチャートを参照して後述する。よって、この場合、Ｃ１復号部４３は、６個のＣ１復号部から構成されるようにすればよい。
【００９３】
並列的に処理が行えるように構成することにより、処理（デコードの処理）自体を高速化することが可能となる。
【００９４】
ステップＳ５５において、ステップＳ５１乃至Ｓ５４の各処理が実行されることにより得られた結果が用いられてエラー成分として０を含む組み合わせがあるか否かが判断される。ステップＳ５５における処理は、判定部４４において行われる。判定部４４には、Ｃ１復号部４３から、この場合、４個の演算結果が供給される。
【００９５】
エラー成分が０となるのは、そのデータがエラーでない場合である。よって、そのようなエラー成分として０を含む組み合わせが存在するか否かが、ステップＳ５５の処理として判断される。図１０を参照し、パリティ自体にエラーが存在しているか否かの判断の仕方について説明を加える。
【００９６】
図中左側の、例えば“Ａ、Ｂ、Ｃ、Ｐ１”との表記は、パリティＡ、パリティＢ、およびパリティＣのそれぞれにエラーポインタが設定されたことを意味し、シンボルＰ１にエラーポインタが付けられていたことを意味する。そして、図中上側の表記は、エラーポインタが設定されたパリティの、どのパリティにエラーが存在しているかを示し、例えば“一箇所エラー（Ｐ１）”との表記はパリティ自体にはエラーが存在していない場合を示し、“２箇所エラー（Ｐ１、Ａ）”との表記は、パリティ中の１箇所にエラーが存在し、そのエラーは、パリティＡであることを示す。
【００９７】
なお、図１０に示した例では、２箇所だけエラーがある場合として、パリティＡがエラーであるときに出力されるエラー成分のみを図示してある。また、図１０に示した例では、３箇所だけエラーがある場合として、パリティＡとパリティＢがエラーであるときに出力されるエラー成分のみを示している。さらに、図１０に示した例では、４箇所にエラーがある場合（すなわち、エラーポインタを設定した全てのパリティがエラーである場合）として、パリティＡ、パリティＣ、および、パリティＣがエラーであるときに出力されるエラー成分のみを示している。
【００９８】
図１０乃至図１２においては、２８シンボルデータ内に設定されているエラーポインタを含めて図示しているが、以下の説明においては、主に、パリティに対して設定されるエラーポインタについて説明を加える。
【００９９】
パリティＡ、パリティＢ、および、パリティＣにエラーポインタを設定したときに、それらのエラーポインタを設定したそれぞれのパリティがエラーでなければ、エラー成分として“Ａ＝０、Ｂ＝０、Ｃ＝０、Ｐ１＝Ｅｐ１”と出力されることになる。
【０１００】
このような場合、結果的には、パリティを含む３２シンボルデータ内には、１つのエラーのみ（上記例の場合、Ｐ１＝Ｅｐ１）が存在していることになる。よって、そのエラーを訂正することは可能である（シンボルＰ１のエラーを、Ｅｐ１というエラー成分を用いて訂正することは可能である）。
【０１０１】
パリティＡ、パリティＢ、および、パリティＣにエラーポインタを設定したときに、それらのエラーポインタを設定したパリティのうちのパリティＡだけがエラーであった場合、エラー成分として“Ａ＝Ｅａ、Ｂ＝０、Ｃ＝０、Ｐ１＝Ｅｐ１”と出力されることになる。この場合のＥａとは、０以外の値であり、０以外の値であることは、そのデータはエラーであることを示している。また、その値は、そのデータを訂正する際に用いられる。
【０１０２】
このような場合、結果的には、パリティを含む３２シンボルデータ内には、２つのエラー（上記例の場合、Ａ＝ＥａとＰ１＝Ｅｐ１）が存在していることになる。エラーポインタを設定したパリティ内に、１つのエラーが存在している場合には、３２シンボルデータ内に存在する２つのエラーを訂正することが可能である。
【０１０３】
しかしながら、エラーポインタを設定したパリティ以外のパリティにエラーが存在していたような場合、すなわち、エラーポインタが設定されている３つのパリティ以外のパリティにエラーが存在しているような場合、結果的には、３２シンボルデータ内には、５つのエラーが存在するとして取り扱われたことになる。このような場合には、エラーの存在するシンボルの特定や訂正を正確に行うことはできない。
【０１０４】
例えば、図１０を参照するに、パリティＢ、パリティＣ、および、パリティＤにエラーポインタが設定され、処理された場合、それらのエラーポインタが設定されたパリティにはエラーがなくても、エラーポインタが設定されてないパリティＡにエラーであった場合、そのエラーであるパリティＡの影響をうけ、エラー成分として“Ｂ＝Ｅｂ’、Ｃ＝Ｅｃ’、Ｄ＝Ｅｄ’、Ｐ１＝Ｅｐ１’”が出力されることになる。
【０１０５】
図１０においてダッシュ（’）を付けて表記したのは、不確定なエラー成分（そのパリティを、そのエラー成分を用いて訂正することはできない値）が出力されることを示している。
【０１０６】
別の例とし、パリティＡ、パリティＢ、および、パリティＣにエラーポインタが設定されたときに、それらのエラーポインタが設定されたパリティのうちのパリティＡとパリティＢがエラーであった場合、エラー成分として“Ａ＝Ｅａ、Ｂ＝Ｅｂ、Ｃ＝０、Ｐ１＝Ｅｐ１”と出力されることになる。この場合のＥａやＥｂは、０以外の値であり、０以外の値であるということは、そのデータにエラーがあることが示されている。また、その値は、そのデータを訂正する際に用いられる。
【０１０７】
このような場合、結果的には、パリティを含む３２シンボルデータ内には、３つのエラーが存在していることになる。上記した例のようにエラーポインタを設定したパリティ内に、２つのエラーが存在している場合には、３２シンボルデータ内に存在する３つのエラーを特定することが可能である。
【０１０８】
しかしながら、エラーポインタを設定したパリティ以外のパリティにエラーが存在していたような場合、すなわち、エラーポインタが設定されている３つのパリティ以外の１つのパリティにエラーが存在しているような場合、結果的には、３２シンボルデータ内には、５つのエラーが存在するとして取り扱われたことになる。このような場合には、エラーの存在するシンボルの特定や訂正を正確に行うことはできない。
【０１０９】
例えば、図１０を参照するに、パリティＢ、パリティＣ、および、パリティＤにエラーポインタが設定されたときに、それらのエラーポインタが設定されたパリティのうちのパリティＢだけにエラーが存在しているようなときであっても、エラーポインタを設定してないパリティＡにエラーがあった場合（すなわち、パリティＡとパリティＢに実際にエラーがあった場合）、そのエラーであるパリティＡの影響をうけ、エラー成分として“Ｂ＝Ｅｂ’、Ｃ＝Ｅｃ’、Ｄ＝Ｅｄ’、Ｐ１＝Ｅｐ１’”が出力されることになる。このような場合には、エラーの存在するシンボルの特定や訂正を正確に行うことはできない。
【０１１０】
さらに別の例とし、パリティＡ、パリティＢ、および、パリティＣにエラーポインタが設定されたときに、それらのエラーポインタが設定されたパリティの全てがエラーであった場合、エラー成分として“Ａ＝Ｅａ、Ｂ＝Ｅｂ、Ｃ＝Ｅｃ、Ｐ１＝Ｅｐ１”が出力されることになる。この場合のＥａ、Ｅｂ、Ｅｃは、０以外の値であり、０以外の値であることは、そのデータにエラーがあることを示している。また、その値は、そのデータを訂正する際に用いられる。
【０１１１】
このような場合、結果的には、パリティを含む３２シンボルデータ内には、４つのエラーが存在していることになる。上記した例のようにエラーポインタを設定したパリティ内に、３つのエラーが存在している場合には、パリティを含む３２シンボルデータ内に存在する４つのエラーを特定することは可能である。
【０１１２】
しかしながら、エラーポインタを設定したパリティ以外のパリティにエラーが存在していたような場合、すなわち、エラーポインタが設定されている３つのパリティ以外の１つのパリティにエラーが存在しているような場合、結果的には、３２シンボルデータ内には、５つのエラーが存在するとして取り扱われたことになる。このような場合には、エラーの存在するシンボルの特定や訂正を正確に行うことはできない。
【０１１３】
例えば、図１０を参照するに、パリティＢ、パリティＣ、および、パリティＤにエラーポインタが設定されたときに、それらのエラーポインタが設定されたパリティの全てのパリティにエラーが存在しているようなとき、エラーポインタが設定されていないパリティＡにもエラーがあった場合（すなわち、パリティＡ，Ｂ，Ｃ，Ｄの全てに実際にエラーがあった場合）、そのエラーであるパリティＡの影響をうけ、エラー成分として“Ｂ＝Ｅｂ’、Ｃ＝Ｅｃ’、Ｄ＝Ｅｄ’、Ｐ１＝Ｅｐ１’”が出力されることになる。このような場合には、エラーの存在するシンボルの特定や訂正を正確に行うことはできない。
【０１１４】
このようなことを考慮すると、エラーポインタを設定したパリティ内に、エラー成分が０のパリティが１つでも含まれていれば、パリティを含む３２シンボルデータ内に含まれるエラーの数は、４以下になることがわかる。よって、エラーポインタを設定したパリティ内に、エラー成分が０のパリティが１つでも含まれていれば、パリティ自体にエラーが含まれていても、そのエラーを検出することができる。このことを利用し、ステップＳ５５（図７）において、エラー成分に０を含む組み合わせが存在するか否かの判断が行われるようにする。
【０１１５】
図７に示したフローチャートの説明に戻り、ステップＳ５５において、エラー成分に０を含む組み合わせがあるか否かが判断される。図１０を再度参照するに、エラー成分に０を含む組み合わせには、斜線を引いて図示してある。すなわち、判定部４４（図３、４）は、入力されたデータ列のうち、図１０に示した斜線が引いてあるような組み合わせ（図１０には図示していない組み合わせも、上述したように存在はしている）のデータ列が入力された場合、ステップＳ５５において、ＹＥＳと判断し、ステップＳ５６に処理が進められる。
【０１１６】
ステップＳ５６において、エラー成分に０を含む組み合わせが、複数存在した場合、１つの組み合わせを特定し、その特定した組み合わせによる訂正が正しいか否かを確認する。例えば、全てのパリティにエラーが存在しない場合、エラーポインタが設定されたパリティのエラー成分は、０となるため、図１０を再度参照するに、“１箇所エラー（P1）”という欄に記載されている４つの組み合わせが、判定部４４に入力されることになる。
【０１１７】
このように、複数の組み合わせが候補として存在する場合、判定部４４は、１つの組み合わせを選択する。そして、その選択した組み合わせで正しい訂正が行われるか否かを確認する。基本的には、エラー成分に０を含む組み合わせが存在する時点で、その組み合わせにおける訂正は正しく行われている可能性が高いので、また、複数の組み合わせのうち、どの組み合わせを選択しても結果としては同じ結果になる可能性が高いので、ステップＳ５６の処理は、単に、１つの組み合わせを抽出し、その結果としてのデータ列を出力するという処理でも良い。
【０１１８】
また、訂正が正しいか否かを確認する場合、複数の組み合わせが候補として存在するときには、その候補毎の訂正結果を比較し、全て同じであれば、その訂正は正しいとして判断するようにすることにより、ステップＳ５６における、正しい訂正であったか否かの判断を行うようにしても良い。
【０１１９】
また、訂正が正しいか否かを確認する場合、エラー成分が０のエラーポインタの場所（パリティでも良いし、パリティ以外のデータ列内のシンボルでも良い）のエラーポインタの設定をはずし、エラーのないとされているシンボルに、そのはずしたエラーポインタを設定し、再度４箇所訂正を実行し、エラーの値を比較するようにする。
【０１２０】
換言すれば、エラーポインタを設定した部分のエラー成分が０である場合、そのエラー成分が０のシンボルは、実際にはエラーでなかったので、エラーポインタを設定する必要はなかったことを示している。そこで、その設定する必要がなかったエラーポインタを他のシンボルに再設定し、４箇所訂正することにより、他のシンボルにもエラーが存在していなかったことを確認するようにする。
【０１２１】
このような検算も行うようにしても良い。
【０１２２】
いずれにしても、ステップＳ５６において、正しい訂正であったか否かが判断され、正しい訂正であったと判断された場合、ステップＳ１７（図５）に処理が進められ、その訂正が施されたデータ列が、判定部４４からデインタリービング部４５に供給される。ステップS１７以降の処理については、既に説明したので、ここではその説明を省略する。
【０１２３】
一方、ステップＳ５６において、正しい訂正ではないと判断された場合、または、ステップＳ５５において、エラー成分に０を含む組み合わせは存在しないと判断された場合、ステップＳ５７に処理が進められる。ステップＳ５７に処理が進められた場合、エラーとされる箇所が５箇所以上あるときであるか、または、何らかの理由でエラー訂正が正確にできなかったことを示しているので、判定部４５は、エラー訂正の処理が行われないデータ列を、デインタリービング部４５に出力する。
【０１２４】
デインタリービング部４５にデータ列が供給された後の処理、すなわち、ステップＳ１７（図５）以降の処理について既に説明したので、ここではその説明を省略する。
【０１２５】
このようにして、Ｃ１復号部４３に供給される３２シンボルデータのうちの２８シンボルデータに、１つのエラーポインタが設定されている場合には、設定できる残りの３つのエラーポインタを、４ワードのパリティのうちの３つのパリティに設定し、パリティ自体にエラーがないか否かを判断する。そして合わせてデータ列のエラー訂正も行うようにすることにより、より精度良くエラー訂正を行うことが可能となる。
【０１２６】
図６のフローチャートの説明に戻り、ステップＳ３１において２８シンボルデータに付けられているエラーポインタは１箇所ではないと判断され、ステップＳ３２において、２箇所であると判断された場合、ステップＳ３６に処理が進められる。ステップＳ３６において、判定処理２が実行される。ステップＳ３６において実行される判定処理２について、図８のフローチャートを参照して説明する。
【０１２７】
この場合、３２シンボルデータ内の、パリティを除く２８シンボルデータには、２つのエラーポインタが存在するため、パリティに設定できるエラーポインタの数は２つである。よって、４つのパリティＡ，Ｂ，Ｃ，Ｄのうちの２つにエラーポインタを設定し、Ｃ１復号部４３による復号を行う。４つのパリティから２つのパリティを選択し、エラーポインタを設定するため、その組み合わせは、６組ある。図１１に、その組み合わせ、および、それらの組み合わせによるエラー成分を示す。
【０１２８】
図１１に示した表の見方は、図１０に示した表の見方と基本的に同様であるので、その説明は省略する。
【０１２９】
ステップＳ７１において、シンボルＰ１、シンボルＰ２、パリティＡ、および、パリティＢにエラーポインタが設定された状態で、４箇所訂正が行われる。ステップＳ７２において、シンボルＰ１、シンボルＰ２、パリティＡ、および、パリティＣにエラーポインタが設定された状態で、４箇所訂正が行われる。ステップＳ７３において、シンボルＰ１、シンボルＰ２、パリティＡ、および、パリティＤにエラーポインタが設定された状態で、４箇所訂正が行われる。
【０１３０】
ステップＳ７４において、シンボルＰ１、シンボルＰ２、パリティＢ、および、パリティＣにエラーポインタが設定された状態で、４箇所訂正が行われる。ステップＳ７５において、シンボルＰ１、シンボルＰ２、パリティＢ、および、パリティＤにエラーポインタが設定された状態で、４箇所訂正が行われる。ステップＳ７６において、シンボルＰ１、シンボルＰ２、パリティＣ、および、パリティＤにエラーポインタが設定された状態で、４箇所訂正が行われる。
【０１３１】
このように、４つのパリティから２つのパリティが選択され、エラーポインタが設定されるため、その組み合わせは、６組ある。よって、ステップＳ７１乃至Ｓ７６において、異なるパリティにエラーポインタが設定されたときの４箇所訂正が、それぞれのステップにおいて行われる。よって、ステップＳ７１乃至Ｓ７６の処理を並列的に処理する場合には、Ｃ１復号部４５（図３）は、６個のＣ１復号部から構成される必要がある。
【０１３２】
ステップＳ７７において、判定部４４に６個の復号結果が入力されるので、判定部４４は、その入力された復号結果を参照し、エラー成分に０を含む組み合わせがあるか否かを判断する。このステップＳ７７以降の処理は、図６のステップＳ５５以下の処理と基本的に同様であるので、その説明は省略する。
【０１３３】
図６のフローチャートの説明に戻り、ステップＳ３３において、２８シンボルデータに付けられているエラーポインタは３箇所であると判断された場合、ステップＳ３７に処理が進められる。ステップＳ３７において、判定処理３が実行される。ステップＳ３７において実行される判定処理３について、図９のフローチャートを参照して説明する。
【０１３４】
この場合、３２シンボルデータ内の、パリティを除く２８シンボルデータには、３つのエラーポインタが存在するため、パリティに設定できるエラーポインタの数は１つである。よって、４つのパリティＡ，Ｂ，Ｃ，Ｄのうちの１つにエラーポインタを設定し、Ｃ１復号部４３による復号を行う。４つのパリティから１つのパリティを選択し、エラーポインタを設定するため、その組み合わせは、４組ある。図１２に、その組み合わせ、および、それらの組み合わせによるエラー成分を示す。
【０１３５】
図１２に示した表の見方は、図１０に示した表の見方と基本的に同様であるので、その説明は省略する。
【０１３６】
ステップＳ９１において、シンボルＰ１、シンボルＰ２、シンボルＰ３、および、パリティＡにエラーポインタが設定された状態で、４箇所訂正が行われる。ステップＳ９２において、シンボルＰ１、シンボルＰ２、シンボル３、および、パリティＢにエラーポインタが設定された状態で、４箇所訂正が行われる。ステップＳ９３において、シンボルＰ１、シンボルＰ２、シンボル３、および、パリティＣにエラーポインタが設定された状態で、４箇所訂正が行われる。ステップＳ９４において、シンボルＰ１、シンボルＰ２、シンボル３、および、パリティＤにエラーポインタが設定された状態で、４箇所訂正が行われる。
【０１３７】
このように、４つのパリティから１つのパリティが選択され、エラーポインタが設定されるため、その組み合わせは、４組ある。よって、ステップＳ９１乃至Ｓ９４において、異なるパリティにエラーポインタが設定されたときの４箇所訂正が、それぞれのステップにおいて行われる。よって、ステップＳ９１乃至Ｓ９４の処理を並列的に処理する場合には、Ｃ１復号部４５（図３）は、４個のＣ１復号部から構成される必要がある。
【０１３８】
このようなことを考慮すると、Ｃ１復号部４３は、６個のＣ１復号部から構成されるようにすれば、上述したように３２シンボルデータに総計４個のエラーポインタが設定されるときには、並列処理を実行することが可能となる。
【０１３９】
ステップＳ９７において、４個の復号結果が、判定部４４に入力されるので、判定部４４は、その入力された復号結果を参照し、エラー成分に０を含む組み合わせがあるか否かを判断する。このステップＳ９５以降の処理は、図６のステップＳ５５以下の処理と基本的に同様であるので、その説明は省略する。
【０１４０】
このように、本実施の形態においては、パリティを除くデータ列に設定されているエラーポインタの第１の数を判定し、パリティとデータ列に設定できるエラーポインタの第２の数より、判定ステップの処理により判定されたエラーポインタの第１の数が少ない場合、すなわち、パリティに割り当てることができるエラーポインタが存在する場合、第２の数から第１の数を減算した第３の数の範囲で、パリティにエラーポインタを設定し、そのエラーポインタが設定されたパリティを用いて復号が行われる。
【０１４１】
このように、本発明を適用すれば、エラー訂正をより精度良く行うことが可能となる。
【０１４２】
なお、図１０乃至図１２を再度参照するに、斜線を引いて図示した部分（エラー成分として０を含む組）のみが、判定部４４から出力されるデータ列の対象とされる。エラー成分として０を含む組の数は、パリティ以外の２８シンボルデータに設定されているエラーポインタの数に依存している。
【０１４３】
そこで、組み合わせ部４２は、パリティ以外の２８シンボルデータに設定されているエラーポインタの数が判定された時点で、エラーポインタを設定するパリティの組み合わせを限定し、処理するようにしても良い。
【０１４４】
また、上述した実施の形態においては、エラーポインタを設定できる数は４箇所であり、パリティの数が４個という場合の例を挙げて説明したが、エラーポインタを設定できる数の方が、パリティの数よりも大きい場合、全てのパリティに対してエラーポインタを設定できるときがある。そのようなときには、基本的に１つの組み合わせしか存在しないことになる。そのようなときには、判定部４４で、１つの組み合わせを選択するといったような処理を行う必要がない。
【０１４５】
このようなことを考慮し、エラーポインタの数とパリティ数により、判定部４４で行われる処理を簡潔にすることが可能であり、また、設計の仕方により、判定部４４自体を削除した構成とすることも可能である。
【０１４６】
上述した実施の形態においては、ＣＩＲＣを用いた復号を２回行う（２段）例を挙げて説明したが、さらに３段など、複数回、復号を行うようにした場合にも、本発明を適用することは可能である。
【０１４７】
また、上述した実施の形態においては、ＣＤ方式を例に挙げて説明したが、ＣＤ方式以外の方式にも、本発明を適用することは可能である。
【０１４８】
上述した一連の処理（例えば、復号処理）は、それぞれの機能を有するハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１４９】
図１３は、汎用のパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのＣＰＵ（Central Processing Unit）１０１は、ＲＯＭ（Read Only Memory）１０２に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）１０３には、ＣＰＵ１０１が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース１０５は、キーボードやマウスから構成される入力部１０６が接続され、入力部１０６に入力された信号をＣＰＵ１０１に出力する。また、入出力インタフェース１０５には、ディスプレイやスピーカなどから構成される出力部１０７も接続されている。
【０１５０】
さらに、入出力インタフェース１０５には、ハードディスクなどから構成される記憶部１０８、および、インターネットなどのネットワークを介して他の装置とデータの授受を行う通信部１０９も接続されている。ドライブ１１０は、磁気ディスク１２１、光ディスク１２２、光磁気ディスク１２３、半導体メモリ１２４などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【０１５１】
記録媒体は、図１３に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク１２１（フレキシブルディスクを含む）、光ディスク１２２（CD-ROM（Compact Disc-Read Only Memory），DVD（Digital Versatile Disc）を含む）、光磁気ディスク１２３（MD（Mini-Disc）（登録商標）を含む）、若しくは半導体メモリ１２４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているＲＯＭ１０２や記憶部１０８が含まれるハードディスクなどで構成される。
【０１５２】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１５３】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０１５４】
【図１】従来のＣＩＲＣエンコーダの一例の系統図である。
【図２】従来のＣＩＲＣデコーダの一例の系統図である。
【図３】本発明のＣＩＲＣデコーダの一実施の形態の系統図である。
【図４】本発明のＣＩＲＣデコーダの一実施の形態の機能ブロック図である。
【図５】復号処理について説明するためのフローチャートである。
【図６】判定処理について説明するためのフローチャートである。
【図７】判定処理１について説明するためのフローチャートである。
【図８】判定処理２について説明するためのフローチャートである。
【図９】判定処理３について説明するためのフローチャートである。
【図１０】エラー成分について説明するための図である。
【図１１】エラー成分について説明するための図である。
【図１２】エラー成分について説明するための図である。
【図１３】媒体を説明する図である。
【符号の説明】
【０１５５】
２１  入力部，  ２１ａ  デスクランブル部，  ２１ｂ  インバータ部，  ２２  Ｃ１復号部，  ２３  デインタリービング部，  ２４  Ｃ２復号部，  ２５  交差遅延処理部，  ４０  デコーダ，  ４１  インタリービング部，  ４２  組み合わせ部，  ４３  Ｃ１復号部，  ４４  判定部，  ４５  デインタリービング部，  ４６  Ｃ２復号部
【図１】
2006004030.tif 000003
【図２】
2006004030.tif 000004
【図３】
2006004030.tif 000005
【図４】
2006004030.tif 000006
【図５】
2006004030.tif 000007
【図６】
2006004030.tif 000008
【図７】
2006004030.tif 000009
【図８】
2006004030.tif 000010
【図９】
2006004030.tif 000011
【図１０】
2006004030.tif 000012
【図１１】
2006004030.tif 000013
【図１２】
2006004030.tif 000014
【図１３】
2006004030.tif 000015