(57)【特許請求の範囲】
【請求項１】
媒体から時系列で入力されるデータ列を少ないデータ量だけ蓄積した時点で訂正処理を開始できる第１の誤り訂正符号と、上記データ量よりも多いデータ量を蓄積した時点で訂正処理を開始できる第２の誤り訂正符号とで構成された信号を再生するデータ処理装置において、
上記媒体から時系列で入力されるデータ列に前処理を施す入力回路と、前処理が終了したデータ列を記憶するＤＲＡＭと、該ＤＲＡＭに記憶されたデータに対して誤り訂正を行なうデータ処理回路と、処理の完了したデータを出力する出力回路と、該入力回路から該ＤＲＡＭへの書き込みと、第２の訂正処理のための該ＤＲＡＭからの読み出しと、該出力回路へデータを出力するための該ＤＲＡＭからの読み出しとで、それぞれアクセスされるデータが、予め定められたワード数の単位で該ＤＡＲＭ上のそれぞれ同一ＲＯＷアドレス内に割り付けられ、上記の各アクセスで該ＲＯＷアドレスと該ＲＯＷ内のカラムアドレスを該ワード数分連続して発行するＤＲＡＭのアクセス制御回路と、処理の完了したデータを出力する前記出力回路とが共通のデータバスを介して相互接続されており、前記それぞれの回路からの要求信号を元に優先判定をして、判定結果ＤＲＡＭアクセスのスケジューリングに反映する手段を具備したデータ処理装置であって、
前記ＤＲＡＭにデータを書き込む前に、第１の訂正処理の一部を実行する他のデータ処理回路を前記入力回路に備えたことを特徴とするデータ処理装置。
【請求項２】
前記媒体がＣＤ−ＲＯＭであって、前記第１の誤り訂正符号をＣ１訂正符号、前記第２の誤り訂正符号をＣ２訂正符号とし、該ＤＲＡＭへのアクセスのワード数を、該入力回路から該ＤＲＡＭへの書き込みのとき３２バイト分、Ｃ２訂正処理のための該ＤＲＡＭからの読み出しのとき２８バイト乃至３２バイト分、該出力回路へデータを出力するための該ＤＲＡＭからの読み出しのとき１２バイト乃至１６バイト分を、それぞれ同一のＲＯＷアドレスに割り付け、それぞれのアクセスにおいて該ＲＯＷアドレスと該ＲＯＷ内のカラムアドレスを該ワード数分連続して発行するＤＲＡＭのアクセス制御回路を備えることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記媒体から時系列で入力されるデータ列をＣ１訂正に適する順序に並べ替える回路と、該回路で並べ替えられたデータからＣ１訂正のシンドローム演算を行なう回路とを備えたことを特徴とする請求項２記載のデータ処理装置。
【請求項４】
前記ＤＲＡＭのアクセス制御回路は、ＣＤ−ＲＯＭとＤＶＤの双方の媒体を再生するためのアドレスを発行するものであって、
ＤＶＤの再生時には、前記第１の誤り訂正符号を内符号、前記第２の誤り訂正符号を外符号とし、該ＤＲＡＭへのアクセスのワード数を、該入力回路から該ＤＲＡＭへの書き込みのとき３２バイト分、外符号訂正処理のための該ＤＲＡＭからの読み出しのとき３２バイト分、該出力回路へデータを出力するための該ＤＲＡＭからの読み出しのとき３２バイト分を、それぞれ同一のＲＯＷアドレスに割り付け、それぞれのアクセスにおいて該ＲＯＷアドレスと該ＲＯＷ内のカラムアドレスを該ワード数分連続して発行することを特徴とする請求項２記載のデータ処理装置。
【請求項５】
前記媒体から時系列で入力されるデータ列を入力して内符号訂正のシンドローム演算を行なう回路を備えたことを特徴とする請求項４記載のデータ処理装置。
【請求項６】
前記誤り訂正を行なうデータ処理回路は、ｎ個のプロセッサエレメントからなる並列プロセッサで構成され、ｎ行ｎ列のレジスタで構成するバッファレジスタを介してｎバイトのデータを並列にｎ個のプロセッサエレメントに転送できる機構を備えたことを特徴とする請求項１乃至５のいずれかに記載のデータ処理装置。
【請求項７】
前記ｎ行ｎ列のレジスタで構成するバッファレジスタは、行方向のｎバイトと列方向のｎバイトのいずれでも選択的にアクセス可能であることを特徴とする請求項６記載のデータ処理装置。
【請求項８】
ディスクを回転させるスピンドルモータと、該ディスクに光を照射して反射光を検出する光学系機構と、該光学系機構を移動させる機械系機構と、該スピンドルモータと該光学系機構と該機械系機構とを駆動する電気回路素子と該光学系機構から得られる反射光の情報を電気信号に変換してアナログ信号処理を行なう機構と、全体を制御するマイクロコントローラとを備え、該マイクロコントローラのプログラムに媒体の種類を判別するプログラムが搭載されていることを特徴とする請求項１乃至７のいずれかに記載のデータ処理装置。
【請求項９】
媒体から時系列で入力されるデータ列を少ないデータ量だけ蓄積した時点で訂正処理を開始できる第１の誤り訂正符号と、上記データ列よりも多いデータ量を蓄積した時点で訂正処理を開始できる第２の誤り訂正符号とで構成された信号を再生する方法において、
媒体から時系列で入力されるデータ列に前処理を施すステップと、
ＤＲＡＭに対するアクセス要因別にアクセスを要求するレジスタを監視し、要求の優先度に応じて、リフレッシュ処理、復調回路からのＤＲＡＭへの書き込み処理、Ｃ１訂正のための該ＤＲＡＭからの読み出し処理、Ｃ２訂正のための該ＤＲＡＭからの読み出し処理、外部への出力のための該ＤＲＡＭからの読み出し処理、訂正のための該ＤＲＡＭからの読み出しおよび書き込み処理を実行するマイクロコントローラの処理ステップと、
該ＤＲＡＭに記憶されたデータに対して誤り訂正を行うステップと、
処理の完了したデータを出力するステップとを含み、
入力回路から該ＤＲＡＭへの書き込みと、第２の訂正処理のための該ＤＲＡＭからの読み出しと、出力回路へデータを出力するための該ＤＲＡＭからの読み出しとで、それぞれアクセスされるデータが、予め定められたワード数の単位で該ＤＲＡＭ上のそれぞれ同一ＲＯＷアドレス内に割り付けられ、上記の各アクセスで該ＲＯＷアドレスと該ＲＯＷ内のカラムアドレスを該ワード数分連続して発行するものであり、
該ＤＲＡＭにデータを書き込む前に、第１の訂正処理の一部を実行するデータ処理ステップを前記前処理を施すステップ中に含むことを特徴とするデータ処理方法。
【請求項１０】
前記マイクロコントローラは、ＤＶＤまたはＣＤ−ＲＯＭの復調データの書き込み処理において、回路カウンタの出力が偶数の場合には１フレーム遅延を与え、奇数の場合には遅延なしでそれぞれＤＲＡＭに書き込むためのデータを保持しておき、該カウンタの値が特定値のときのデータを全ビット反転し、該カウンタの値が最終値になるまで該ＤＲＡＭにアクセスすることなく次の入力を待ち、最終値になった時点で保持されているデータを該ＤＲＡＭに書き込むためにアドレスを発行して書き込み動作を行なうことを特徴とする請求項９に記載のデータ処理方法。
【発明の詳細な説明】
技術分野
本発明は、ダイナミック・ランダム・アクセス・メモリ（以下ＤＲＡＭと称す）をデータバッファに用いたＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）およびＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に、もしくは両者に対応できる誤り訂正のための読み出し装置を含むデータ処理装置および処理方法に関する。
背景技術
次世代のパーソナル・コンピュータ周辺装置として、ＤＶＤドライブ装置が注目されてきている。現在搭載されているＣＤ−ＲＯＭを置き換える形のＤＶＤドライブ装置は、従来から多用されてきているＣＤ−ＲＯＭディスクに対応できることが、事実上の必須要件となっている。ＣＤ−ＲＯＭとＤＶＤドライブ装置それぞれのディスクから読み出された信号を再生する装置を構成する場合に、両者に対応できる構成手段を開発することは重要な課題である。このとき、ＤＶＤとＣＤ−ＲＯＭの記録フォーマットが著しく異なることが、両者に対応できる構成手段を開発する場合の隘路となっている。
先ず、ＣＤ−ＲＯＭのデータフォーマットの規格を、図１９を用いて簡単に説明する。図１９（ａ）は、ＣＤ−ＲＯＭ復調後の時系列データの配列図であり、図１９（ｂ）は、ＣＤ−ＲＯＭデータの誤り訂正符号のフォーマット図である。ディスクから読み出された信号は、復調回路を経て、図１９（ａ）に示すような８ビット（１バイト）の時系列信号になる。サブコード１バイトとそれに続く３２バイトのデータ列をフレームと呼び、９８フレームで１セクションとなる。１セクションはその開始を示す特殊なサブコードＳ０，Ｓ１から始まる９８フレームで構成され、サブコードは１セクション単位に意味のあるデータ群が書き込まれている。時系列で入力されたデータを、１フレームを１行にして並べ直したものが図１９（ｂ）である。図中、１シンボルのデータは（ｓ，ｆ，ｂ）で示されており、このときｓはセクション番号、ｆはフレーム番号、ｂはバイト番号である。
図２０は、規格で定められたＣＤ，ＣＤ−ＲＯＭの誤り訂正符号のフォーマット図である。
Ｃ１，Ｃ２は、２重に保護するための訂正部であって、ともに１バイトを１シンボルとするリードソロモンの誤り訂正符号である。Ｃ１は、符号長３２シンボル＝データ２８シンボル＋パリティ４シンボルで構成されている。また、Ｃ２は、符号長２８シンボル＝データ２４シンボル＋パリティ４シンボルで構成されている。図２０では訂正に掛かる時間を仮にゼロとして供給されるデータとＣ１，Ｃ２の誤り訂正に入力されるデータ、訂正されて出力されるデータの遅延関係を示している。数字の記入された長方形はその数値のフレーム遅延を施す遅延回路である。インバータは全ビット反転を表す。
図２０に示されているように、仮に訂正に掛かる時間を無視したとしても、最初のデータ（１、１０、０）が入力されたとき、はじめてデータ（０、０、０）がＣ２訂正ブロックに入力される。すなわち、図１９（ｂ）のフレーム列（０，１０，０）の位置から明らかなように、最低１０８フレーム分のデータが貯まった後でなければ、Ｃ２訂正を開始することはできない。
ＣＤ−ＲＯＭの規格に従って誤り訂正を行う場合、図１９（ｂ）に薄線枠付きで示した（０，１，０），（０，０，１），（０，１，２）・・・（０，１，３０），（０，０，３１）が、符号長３２シンボルのＣ１符号であり、太線枠付きで示した（０，０，０），（０，３，１），（０，８，２），・・・・（１，９，２７）が符号長２８シンボルのＣ２符号である。
次に、規格で定められたＤＶＤの誤り訂正符号のフォーマットを、図２１を用いて簡単に説明する。図２１（ａ）はＤＶＤ符号の復調後の時系列データを示す図であり、図２１（ｂ）はＤＶＤデータの誤り訂正符号のフォーマット図である。
ディスクから読み出された信号は、復調回路を経て、図２１（ａ）に示すような８ビット（１バイト）の時系列信号になる。ＣＤ−ＲＯＭのサブコードに相当するデータは存在せず、訂正に必要なデータの区切りを表す信号は復調回路で除去される。訂正の単位は１８２列２０８行のマトリクスで、これをＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）ブロックと呼ぶ。ＥＣＣブロックは８ビット（１バイト）を１シンボルとするリードソロモンの誤り訂正符号で、行方向（内符号パリティ）と列方向（外符号パリティ）に独立にパリティを付加した積符号である。図中、１シンボルのデータは（ｂ，ｒ，ｃ）で示されており、このときｂはブロック番号、ｒは行番号、ｃは列番号である。時系列出入力される１８２シンボルのデータ（ｂ，ｒ，０），（ｂ，ｒ，１），（ｂ，ｒ，２）・・・・（ｂ，ｒ，１８１）を１行とし、それぞれの行は１７２シンボルの本体データと１０シンボルの内符号パリティで構成されている。また、列方向の２０８シンボル（ｂ，０，ｃ），（ｂ，１，ｃ），（ｂ，２，ｃ），・・・・（ｂ，２０７，ｃ）は１９２シンボルの本体データと１６シンボルの外符号パリティで構成されている。ただし、外符号パリティの行は、時系列的には１２行の本体データに対して１行挿入されている。誤り訂正は、内符号訂正を行単位で２０８行、外符号訂正を列単位で１８２列実行し、必要に応じて消失訂正などを実行して完了する。
以上述べてきたように、ＣＤ−ＲＯＭ，ＤＶＤの誤り訂正処理は、時系列で入力されたデータをその順序を大きく変更することなく実行できる第１の誤り訂正処理と、ある程度の期間データを蓄積してからはじめて実行できる第２の訂正処理の組合せであると言うことができる。第１の訂正処理は、ＣＤ−ＲＯＭではＣ１訂正処理を、ＤＶＤでは内符号訂正処理を差し、第２の訂正処理は、ＣＤ−ＲＯＭではＣ２訂正処理を、ＤＶＤでは外符号訂正処理を差す。このような誤り訂正フォーマットはその他の記録系媒体に留まらず、ディジタル・テレビ受像機などの放送系媒体にも広く適用されているものである。
上記の誤り訂正符号の規格から明らかなように、ＣＤ−ＲＯＭもＤＶＤもある程度の量のデータが蓄積されないと誤り訂正を実行できない。すなわち、ＣＤ−ＲＯＭにおいては、（０，０，０），（０，３，１），（０，８，２），・・・・（１，９，２７）の符号長２８シンボルのＣ２符号を訂正しようとすれば、（０，０，０）から（１，９，２７）までの１０８フレーム分のデータを保持しておく必要がある。ＤＶＤにおいても、外符号の訂正を行うためには、列方向の２０８シンボル（ｂ，０，ｃ），（ｂ，１，ｃ），（ｂ，２，ｃ），・・・・（ｂ，２０７，ｃ）のデータが必要となるから、最低限１ＥＣＣブロック分のデータは保持しておく必要がある。
従来、データを保持する手段（データバッファ）として、ＣＤ−ＲＯＭには２ｋＢｙｔｅから４ｋＢｙｔｅのＳＲＡＭが、ＤＶＤには２５６ｋＢｙｔｅから５１２ｋＢｙｔｅのＤＲＡＭが用いられてきた。ＣＤ−ＲＯＭ，ＤＶＤのどちらも再生できる装置を開発しようとする場合、ＤＶＤの誤り訂正のために必要な２５６ｋＢｙｔｅから５１２ｋＢｙｔｅものＤＲＡＭを備えながら、さらにＣＤ−ＲＯＭの誤り訂正のために２ｋＢｙｔｅのＳＲＡＭを備えることは、同時に両方の媒体の再生をすることはないのであるから無駄であって、コスト上昇を招くという課題がある。また、ＤＶＤ再生装置にＳＲＡＭではなくＤＲＡＭが用いられているのも、コストを抑えるという経済的な理由からである。
ＣＤ−ＲＯＭとＤＶＤの両方に対応する再生装置を開発する場合、ＤＶＤの誤り訂正のために必要な２５６ｋＢｙｔｅから５１２ｋＢｙｔｅのＤＲＡＭを、ＣＤ−ＲＯＭのデータバッファとしても動作できるようにすることが可能であれば、コストの上昇を抑えることができる。ところが、ＤＲＡＭは、一旦ＲＯＷアドレスを発行した後の同一ＲＯＷアドレス内のデータアクセスは高速であるが、異なるＲＯＷをアクセスには別のＲＯＷアドレス発行などのアクセスサイクルが余分に必要となって、アクセスが遅くなる。特にＣＤ−ＲＯＭのＣ２訂正および出力のための読み出しは、アドレスが不規則となって異なるＲＯＷアドレスにまたがるアクセスが多くなり、アクセスに時間が掛かり過ぎて実時間処理に間に合わないという問題がある。
このように、ＣＤ−ＲＯＭ、ＤＶＤの誤り訂正の規格に準拠するためには、ある程度のデータ量が入力されないと誤り訂正処理が開始できないため、バッファメモリが必要であり、また価格の制約上、バッファメモリはＤＲＡＭで構成することが望ましい。そして、バッファメモリは、ＤＶＤとＣＤ−ＲＯＭの共用として、ＤＶＤドライブ装置でＣＤ−ＲＯＭも読み出すことができるようにしたい。さらに、ＤＲＡＭは同一ＲＯＷアドレス内のアクセスは高速であるが、異なるＲＯＷアドレスにまたがるランダムアクセスは極端に低速となる。
そこで、本発明の目的は、これら従来の課題を解決し、ＤＲＡＭの同一ＲＯＷアドレス内の高速アクセスを利用でき、また特に高速で高価なメモリを用いることなく、安価な構成で、媒体から読み出されたデータのバッファメモリへの書き込み、ＤＶＤ、ＣＤ−ＲＯＭの第１の訂正処理と第２の訂正処理のための読み出しと書き込みに好適なデータ処理装置および処理方法を提供することにある。
発明の開示
本発明のデータ処理装置では、媒体から読み出した信号の前処理を行う手段と、前処理した結果をＤＲＡＭに書き込む（第１のＤＲＡＭアクセス）手段と、前記ＤＲＡＭから第２の訂正のためのデータを読み出す（第２のＤＲＡＭアクセス）手段と、訂正したデータを後段に出力するためのデータを読み出す（第３のＤＲＡＭアクセス）手段と、前記第１、第２及び第３のＤＲＡＭアクセスが数ワードに渡ってそれぞれ同一ＲＯＷアドレス内に収納されるように構成されたアクセス制御回路を備えることを特徴としている。
また、本発明のデータ処理方法では、入力回路からＤＲＡＭへの書き込みと、第２の訂正処理のためのＤＲＡＭからの読み出しで、アクセスされるデータが適当なワード数の単位でＤＲＡＭ上のそれぞれ同一ＲＯＷアドレス内に割り付けられており、それぞれのアクセスにおいてＲＯＷアドレスと該ＲＯＷ内のカラムアドレスを該ワード数分連続して発行するＤＲＡＭアクセス制御を行うことを特徴としている。
これにより、ＤＲＡＭの同一ＲＯＷアドレス内の高速なアクセスを利用することができ、異なる媒体からの信号の誤り訂正に共通に対応することができるので、高速で高価なメモリを用いる必要がなく、ＣＤ−ＲＯＭとＤＶＤの誤り訂正を並列処理することができる。また、内部バスに接続する入力回路、出力回路をシステムに適応するように設計することにより、ＤＲＡＭアクセスを含めて訂正処理の回路を若干の変更により異なるシステムに転用できるので、開発コストも削減することができる。
発明を実施するための最良の形態
本発明をより詳細に説明するために、添付の図面に従ってこれを説明する。
図１は、本発明の第１の実施例を示すデータ処理装置のブロック図である。
データのバッファに用いられるＤＲＡＭ１８と入力回路１１、出力回路１２、データ処理のためのバッファレジスタ１４が内部バス１３を介して相互に接続されている。それぞれからのデータ転送要求信号が優先順位判定回路１６に入力されており、その判定結果にしたがったデータが内部バス１３に出力され、また、アドレス発生アクセス制御回路１７では優先順位の判定結果にしたがったアドレス発生を行なって、ＤＲＡＭ１８のアクセス制御を行なう。
媒体から入力された信号に対して、入力回路１１では媒体に適した前処理を施し、ＤＲＡＭ１８に書き込むまとまったワード数になるまで蓄積する。ここで「まとまったワード数」とは、シンクロナスＤＲＡＭや通常のＤＲＡＭのページモードアクセスで同一のＲＯＷアドレス内に連続して書き込まれるデータのワード数を指す。入力回路１１に必要なワード数のデータが蓄えられたときに、優先判定回路１６に書き込み要求信号を送る。要求が受け付けられたとき、アドレス発生アクセス制御回路１７では入力データ書き込みのためのアドレス生成を行ない、入力回路１１から内部バス１３に出力されたデータをＤＲＡＭに書き込む。
訂正に必要な量のデータがＤＲＡＭ１８に格納されたとき、データ処理回路１５からデータ要求信号を制御回路１７に出力する。制御回路１７により訂正のためのデータ要求信号が受け付けられると、訂正のための読み出しのアドレス生成が行なわれ、必要なデータが内部バス１３を介してバッファレジスタ１４に蓄えられる。データ処理回路１５は必要なデータをバッファレジスタ１４から逐次読み出して誤り訂正などの必要な処理を行なう。
発見された誤りの位置と値はシンボル単位でＤＲＡＭ１８をアクセスして訂正される。訂正されたデータは、出力回路１２をとおして定められたプロトコルで後段に送出される。出力回路１２も、必要に応じてデータ要求信号を優先判定回路１６に送る。
優先判定回路１６は、上記のメモリアクセス要求の優先順位を判定して、優先度の高いものから順にアクセスを許可することによって、効率良く、またリアルタイム処理の制約を守りながら、システムを動作させる。たとえば、入力回路１１からの要求は通常最優先に処理される。入力されたデータが処理される前に失われることがあってはならないためである。図示した以外に、ＤＲＡＭ１８のリフレッシュも優先度の高い要求である。
図２は、図１における入力回路の詳細ブロック図である。
ＣＤ−ＲＯＭとＤＶＤの信号の誤り訂正をする装置を構成する場合、入力回路１１の好適な実施例としては、図２に示すように構成される。ＣＤ−ＲＯＭから復調回路を経て入力されるデータは１シンボル（８ビット）刻みで、それに同期したクロックとフレームの先頭を示す信号とが入力されている。復調データは第１のデータ並べ替え回路１１１を経て、Ｃ１訂正に適した順序に並べ替えられ、Ｃ１訂正回路１１４と第２のデータ並べ替え回路１１２に送られる。Ｃ１訂正回路１１４では訂正処理全てを行なってもよいが、最低限シンドローム生成だけ行なって、そのシンドロームを訂正演算回路（図示省略）に転送してもよい。このとき、通常のＣＤ−ＲＯＭディスクでは、誤り発生頻度は１，０００シンボル中１シンボル程度と高くない。誤りのないデータ列のシンドロームはゼロになるので、誤りがあったシンドロームのみを訂正処理回路に転送することにすれば、訂正処理回路をより効率よく使用することができる。
一方、ＤＶＤの誤り訂正のためには、復調されたデータとそれに同期した復調クロック、ＥＣＣブロックの先頭を表す信号が入力されている。さらに、行アドレス信号が入力されていれば、何らかの原因で行アドレスがＥＣＣブロック内で不規則になった場合の救済措置に利用することができる。ＤＶＤの誤り訂正は、復調回路から時系列に入力された信号の順序のまま、内符号訂正回路１１５に入力することにより、訂正処理を実行できる。従って、ＣＤ−ＲＯＭの場合とは異なり、第１のデータ並べ替え回路１１１の必要はない。また、ＤＲＡＭのアドレッシングを工夫することによって、第２のデータ並べ替え回路１１２も不要になる場合がある。
図３は、図２におけるＣＤ−ＲＯＭ復調信号の第１のデータ並べ替え回路とカウンタの構成例を示す図であり、図４は、そのタイミングチャートである。
復調されたデータは、復調クロックに同期して入力されている。３３進カウンタ１１９がＣＤ−ＲＯＭの復調クロックを計数して計数値ｉを出力する。計数値ｉはフレーム先頭信号が入力される度にリセットされて、０から３２の値を出力する。ｉ＝０のときＣＤ−ＲＯＭの復調データはサブコードであるのでそのまま出力する。ｉ＝１，３，５，・・・１１，１７，１９，・・・２７のときは、図２０に示したように１フレーム遅延の必要ないデータであるので、選択回路１２２によって端子ａが選ばれて出力される。ｉ＝１３，１５，２９，３１のときは、選択回路１２２によって端子ｂが選ばれ反転されたデータが出力される。ｉ＝２，４，６，・・・３２のとき、１フレーム遅延回路１２１を経由して出力する。ｉ＝２，４，・・・１２，１８，２０，・・・２８のときは、図２０に示したように１フレーム遅延の必要なデータであるので、選択回路１２２によって端子ｃが選ばれて出力される。ｉ＝１４，１６，３０，３２は、選択回路１２２によって端子ｄが選ばれ反転されたデータが出力される。１フレーム遅延回路１２１はｉ＝２，４，６，・・・３２のときのみクロックを入力される１６段のシフトレジスタで構成されている。図３に示した回路を通過させることによって、Ｃ１訂正に必要なデータが適切な順序で供給される。
図３における端子ａ，ｂ，ｃ，ｄに出力されている信号を、図４の端子ａ，ｂ，ｃ，ｄに示してある。選択回路１２２の出力は、Ｃ１被訂正データとして示してあり、Ｃ１訂正に適した順序のデータとなっている。Ｃ１被訂正データに同期したクロックも出力される。また、サブコードは通常の誤り訂正の処理とは別系統で用いられるため、別の端子から出力される。
第２のデータ並べ替え回路１１２は、バッファとして用いるＤＲＡＭの構成に適応できるように工夫して構成する必要がある。ＤＲＡＭには、８ビット／１ワード、１６ビット／１ワード、３２ビット／１ワードなどの構成がある。ＣＤ−ＲＯＭもＤＶＤも訂正単位は１シンボルすなわち８ビットであるので、ＤＲＡＭのワード長に合わせて１、２、４シンボルのアクセスになる。
８ビット／１ワードのＤＲＡＭを用いる場合は、第２のデータ並べ替え回路１１２は不要で、Ｃ１被訂正データをそのままＤＲＡＭのアドレシングを工夫して書き込むだけでよい。
図５は、ＣＤ−ＲＯＭデータの８ビット／ワードＤＲＡＭ上のデータ割り付け方法を示す図である。
Ｃ１被訂正データとして出力された（０，０，０），（−１，９７，１），（０，０，２），・・・，（−１，９７，３１）は、ＤＲＡＭの第１ＲＯＷ内のアドレスＨ’０００，Ｈ’０２１，Ｈ’０４２，・・・，Ｈ’３ＦＦに書き込まれる。ここで、データ（ｓ，ｆ，ｂ）は、（ｓ：セクション番号、ｆ：フレーム番号、ｂ：バイト番号）のバイト番号＝１２，１３，１４，１５，２８，２９，３０，３１のデータは全ビット反転されているが、特に反転データであることが重要ではないので、表記上これを区別しない。また、アドレスの表記で用いたＨ’ＸはＸが１６進表示あることを表す。次のフレームのＣ１被訂正データ（０，１，０），（０，０，１），（０，１，２），・・・，（０，０，３４１）は、ＤＲＡＭの第２ＲＯＷ内のアドレスＨ’４００，Ｈ’４２１，Ｈ’４４２，・・・，Ｈ’７ＦＦに書き込まれる。同様に第３、第４ＲＯＷに書き込むと、次は第１ＲＯＷに戻り、Ｃ１被訂正データ（０，４，０），（０，３，１），（０，４，２），・・・，（０，３，３１）を、ＤＲＡＭの第１ＲＯＷ内のアドレスＨ’３Ｅ０，Ｈ’００１，Ｈ’０２２，・・，Ｈ’３ＤＦに書き込む。一見、アドレスが不連続になってアドレス発生回路が複雑になるように思われるが、ＤＲＡＭのカラムアドレスはオーバーフローを無視した１０ビット加算器を用いてＨ’０２１（１０進で３３）を順次前の値に加え合わせていくことで容易に実現できる。
以上説明してきた方法によりデータを書き込むと、図５に示すように連続するアドレスＨ’０００，Ｈ’００１，Ｈ’００２，・・・，Ｈ’０１ＦにＣ２訂正に必要な一連のデータが配列される。以下順次、アドレスＨ’４００，Ｈ’４０１，Ｈ’４０２，・・・，Ｈ’４１Ｆ，アドレスＨ’８００，Ｈ’８０１，Ｈ’８０２，・・・，Ｈ’８１Ｆ，アドレスＨ’Ｃ００，Ｈ’Ｃ０１，Ｈ’Ｃ０２，・・・，Ｈ’Ｃ１Ｆにつづいて、アドレスＨ’３Ｅ０，Ｈ’３Ｅ１，Ｈ’３Ｅ２，・・・，Ｈ’３ＦＦに、Ｃ２訂正用の一連のデータが書き込まれている。連続アドレスであるため、アドレス生成回路の構成は容易である。この実施例では、バイト番号２８，２９，３０，３１もＤＲＡＭに書き込むとして説明しているが、これらはＣ１訂正用のパリティであるので、Ｃ２訂正の後に再度Ｃ１訂正を行なうなどの理由がないかぎり、特に書込みの必要はない。
訂正の終了したデータの読み出しは、図２０に示したように規格で定められたディインターリーブを施す必要がある。
本実施例のＤＲＡＭ上のデータ割付では、ディインターリーブをＤＲＡＭ読み出しのアドレッシングで実現することができる。
図２０のディインターリーブには、２バイト遅延が随所に含まれている。
これは、ＤＲＡＭ上では第１と第３ＲＯＷあるいは第２と第４ＲＯＷの差に相当する。したがって、図２０における（０，０，０），（０，３，１），（０，２４，６），（０，２７，７），（０，６２，１６），（０，６５，１７），（０，８６，２２），（０，８９，２３），（０，８，２），（０，１１，３），（０，３２，８），（０，３５，９），（０，７０，１８），（０，７３，１９），（０，９４，２４），（０，９７，２５），（０，１６，４），（０，１９，５），（０，４０，１０），（０，４３，１１），（０，７８，２０），（０，８１，２１），（１，４，２６），（１，７，２７）を出力する場合、ＲＯＷアドレス更新と４バイトのＲＯＷアドレス内読み出しを以下のように６回繰り返すことによって達成される。
１：第１ＲＯＷ  アドレスＨ’０００，Ｈ’００１，Ｈ’００６，Ｈ’００７
２：第３ＲＯＷ  アドレスＨ’８１０，Ｈ’８１１，Ｈ’８１６，Ｈ’８１７
３：第１ＲＯＷ  アドレスＨ’００２，Ｈ’００３，Ｈ’００８，Ｈ’００９
４：第３ＲＯＷ  アドレスＨ’８１２，Ｈ’８１３，Ｈ’８１８，Ｈ’８１９
５：第１ＲＯＷ  アドレスＨ’００４，Ｈ’００５，Ｈ’００Ａ，Ｈ’００Ｂ
６：第３ＲＯＷ  アドレスＨ’８１４，Ｈ’８１５，Ｈ’８１Ａ，Ｈ’８１Ｂ
上記のアクセスは第１ＲＯＷと第３ＲＯＷを交互にアクセスするので、必ずしも効率が良いとは言い難いが、出力に必要なディインンターリーブの処理（図２０参照）を特別なハードウエアをもたず、ＤＲＡＭのアドレッシングだけで実現している点で、簡略構成およびコスト削減に効果がある。
図１３は、図１における出力回路の第１の実施例（８ビット／ワードＤＲＡＭ用）を示す構成図である。
アドレッシングを、第１ＲＯＷと第３ＲＯＷの２組に分けて、図１３に示すような出力回路を付加して、ディインターリーブを実現することもできる。
すなわち、以下に示すように、図５に示す第１ＲＯＷと第３ＲＯＷからそれぞれ１２ワードずつ読み出す。
１：第１ＲＯＷ  アドレスＨ’０００からＨ’００Ｂ
２：第３ＲＯＷ  アドレスＨ’８１０からＨ’８１Ｂ
読み出されたデータは、内部バスを通して図１３に示した出力回路に転送される。データの転送は読み出しクロックに同期して行なわれ、出力回路内の入力側の２４進カウンタ１３１で書き込むべきレジスタのアドレスを指定する。最初のデータが入力されたときに、２４進カウンタ１３１は０で、読み出しクロックが入力される毎に１ずつ加算される。デコーダ１３２の出力はカウンタ値に対応して０から２３までの２４本あり、２４個の出力ラッチ１３４にデータが出力順に格納されるようにライトイネーブルを発行する。出力ラッチ１３４にデータがすべて格納された後、出力要求クロックが入力される毎に１シンボルのデータが出力される。
図１３では、出力側のデコーダ１３６の出力の接続先を明示していないが、出力側の２４進カウンタ１３７のカウント値に対応して上から順に出力されるように設計されている。本実施例では、入力側を工夫して、データがラッチ回路１３４に出力順に格納されるように設計してある。そのため、出力はシーケンシャルアクセスであるから、シフトレジスタの形式を採用してもよい。また、入力側をＤＲＡＭから読み出された順に格納しておいて、適切な順序で出力する設計にすることも可能である。
以上述べてきたＣＤ−ＲＯＭの入力データ書き込み、Ｃ２訂正のための読み出し、訂正済みデータの出力の、３種のＤＲＡＭアクセスのアドレッシングは比較的規則性を見い出しやすいので、簡単なレジスタと加算器で構成することができる。
図６は、本発明におけるＤＶＤデータのビット／ワードＤＲＡＭ上のデータ割り付けの例を示す図である。
図６では、同じＤＲＡＭをＤＶＤから読み出された信号の誤り訂正に使う場合のデータの割付け方法が示されている。復調回路から時系列的に入力されるＥＣＣブロック１行目のデータ（０，０，０），（０，０，１），・・・（０，０，１８１）をＤＲＡＭの第１ＲＯＷから第６ＲＯＷに順次書き込む。第１ＲＯＷにはアドレスＨ’００００からＨ’００１Ｆまでにデータ（０，０，０）から（０，０，３１）が格納される。次のデータ（０，０，３２）から（０，０，６３）は第２ＲＯＷのアドレスＨ’０４００からＨ’０４１Ｆまでに格納され、同様に第３、第４、第５、第６ＲＯＷの先頭から順次データを書き込む。
ＥＣＣブロック１行分のデータは１８２バイトで３２では割り切れないので、第６ＲＯＷのアドレスＨ’１４１６からＨ’１４１Ｆは未使用領域となる。復調回路から続いて時系列的に入力されるＥＣＣブロック２行目のデータ（０，１，０），（０，１，１），・・・（０，１，１８１）は、ＤＲＡＭの第１ＲＯＷに戻って、１行目のデータの続きのアドレスＨ’００２０からＨ’００３Ｆまでに書き込まれる。同様にＥＣＣブロック３行目から３２行目のデータは、ＤＲＡＭの第１ＲＯＷから第６ＲＯＷに順次書き込まれる。さらに、ＥＣＣブロック３３行目から６４行目のデータはＤＲＡＭの第７ＲＯＷから第１２ＲＯＷに、６５行目から９６行目のデータはＤＲＡＭの第１３ＲＯＷから第１８ＲＯＷに、９７行目から１２８行目のデータはＤＲＡＭの第１９ＲＯＷから第２４ＲＯＷに、１２９行目から１６０行目のデータはＤＲＡＭの第２５ＲＯＷから第３０ＲＯＷに、１６１行目から１９２行目のデータはＤＲＡＭの第３１ＲＯＷから第３６ＲＯＷに、残りの１９３行目から２０８行目のデータはＤＲＡＭの第３７ＲＯＷから第４２ＲＯＷに、それぞれ、ＥＣＣブロック１行目から３２行目のデータをＤＲＡＭの第１ＲＯＷから第６ＲＯＷに書き込んだのと同様に、順次書き込む。
ただし、最後の第３７ＲＯＷから第４２ＲＯＷには、アドレスの規則性を保つ意味から本来存在しないＥＣＣブロック２０９行目から２２８行目のデータの領域を仮想的に割り付けてある。実際には、そのようなデータは入力されないので、この領域も未使用となる。
図２に示した実施例では、内符号訂正の全部もしくは一部の実行を、ＤＲＡＭにデータを格納する前に行なう例を示したが、図６に示したデータの割り付けによれば、内符号訂正に必要な一連の１８２シンボルが３２シンボルずつＤＲＡＭの同一ＲＯＷアドレスに格納されていて、ＲＯＷアドレスの再発行なしに最大３２シンボルまで連続して読み出すことができるので、データをＤＲＡＭに格納した後に内符号訂正を行なってもよい。
外符号訂正に必要な一連のデータは（ｂ，０，ｃ），（ｂ，１，ｃ），・・・（ｂ，２０７，ｃ）である。図６に示したように（０，０，０），（０，１，０），・・・（０，３１，０）はＤＲＡＭの第１ＲＯＷに格納されていて、ＲＯＷアドレスの再発行なしに、最大３２シンボルまで連続して読み出すことができる。したがって、外符号訂正に必要な一連のデータ（０，０，０），（０，１，０），・・・（０，２０７，０）を読み出すには、以下のステップを行なえばよい。
１：第１ＲＯＷ  Ｈ’００００，００２０，００４０，・・・，０３Ｅ０
２：第７ＲＯＷ  Ｈ’１８００，１８２０，１８４０，・・・，１ＢＥ０
３：第１３ＲＯＷ  Ｈ’２０００，２０２０，２０４０，・・・，２３Ｅ０
４：第１９ＲＯＷ  Ｈ’２８００，２８２０，２８４０，・・・，２ＢＥ０
５：第２５ＲＯＷ  Ｈ’３０００，３０２０，３０４０，・・・，３３Ｅ０
６：第３１ＲＯＷ  Ｈ’３８００，３８２０，３８４０，・・・，３ＢＥ０
７：第３７ＲＯＷ  Ｈ’４０００，４０２０，４０４０，・・・，４１Ｅ０
１から６のステップは、ＲＯＷアドレスを発行した後、３２バイト連続が可能であるが、最後の第７ステップはＲＯＷアドレスを発行した後、１６バイト以上の読み出しは未使用領域のアクセスになって好ましくない。
ＥＣＣブロックの２列目以降の読み出しも同様の手順で行なうことができる。
訂正後のデータの読み出しは、最初の書込みと全く同じ順序で行なえばよい。
図６には、１ＥＣＣブロック分のみのデータ割り付けを示したが、通常の装置では、最低限３ＥＣＣブロックのデータをＤＲＡＭ上に蓄積して処理するのが一般的である。すなわち、第１のＥＣＣブロックはデータの書き込みに、第２のＥＣＣブロックは訂正のためのアクセスに、第３のＥＣＣブロックは出力のための読み出しに、それぞれ区分し、第１、第２、第３のＥＣＣブロックを処理が完了する毎にパイプライン的に使い回しをするものである。誤り訂正時間の余裕を取るために、４ＥＣＣブロック以上のデータを蓄積して順次処理する場合もまれではない。
図７は、１６ビット／１ワードのＤＲＡＭを用いる場合の、第２のデータ並べ替え回路の一実施例を示す図である。
バイト番号が偶数（ｉ＝１，３，５，・・・３１）のデータは４フレーム遅延を与えて上位バイト側へ、バイト番号が奇数（ｉ＝２，４，６，・・・３２）のデータは遅延なしで下位バイト側へ出力する。図４のタイミングチャートに示したように、データ（０，０，０）はデータ（０，３，１）と組み合わされて出力される。第２のデータ並べ替え回路で遅延を受け、組合せて出力された２バイト（１６ビット）は、ＤＲＡＭの１ワードに書き込まれる。
図８は、ＣＤ−ＲＯＭデータの１６ビット／ワードＤＲＡＭ上のデータの割り付け方法を示す図である。
データ（０，０，０）と（０，３，１）の組合せでできる２バイトのデータを｛（０，０，０），（０，３，１）｝と表記すると、時系列で出力される１６ワード｛（０，０，０），（０，３，１）｝，｛（０，０，２），（０，３，３）｝，｛（０，０，４），（０，３，５）｝，・・・，｛（０，０，３０），（０，３，３１）｝をＤＲＡＭの第１ＲＯＷ内のアドレスＨ’０００，Ｈ’０１１，Ｈ’０２２，・・・Ｈ’０ＦＦに書き込む。その後、データ｛（０，１，０），（０，４，１）｝，｛（０，１，２），（０，４，３）｝，｛（０，１，４），（０，４，５）｝，・・・，｛（０，１，３０），（０，４，３１）｝をＤＲＡＭの第２ＲＯＷ内のアドレスＨ’１００，Ｈ’１１１，Ｈ’１２２，・・・Ｈ’１ＦＦに書き込む。これを順次ＤＲＡＭの第８ＲＯＷまで書き込んだ後、データ｛（０，８，０），（０，１１，１）｝，｛（０，８，２），（０，１１，３）｝，｛（０，８，４），（０，１１，５）｝，・・・，｛（０，８，３０），（０，１１，３１）｝を再びＤＲＡＭの第１ＲＯＷ内のアドレスＨ’０Ｆ０，Ｈ’００１，Ｈ’０１２，・・・Ｈ’１ＥＦに書き込む。ＲＯＷアドレスは第１から第８までを繰り返せばよく、ＣＯＬＵＭＮアドレスはＲＯＷアドレスが変わる度に適当な初期値を与え、その後、オーバーフローを無視してＨ’１１（１０進で１７）づつ加算していけばよい。この結果、図８からも明らかなように、アドレスの下位４ビットＨ’０から連続する１６ワードはＣ２訂正に必要な一連の３２シンボルになっている。
訂正の終了したデータの読み出しは、図２０に示したように規格で定められたディインターリーブを施す必要がある。本実施例のＤＲＡＭ上のデータ割付ではディインターリーブをＤＲＡＭ読み出しのアドレッシングで実現することができる。図２０のディインターリーブには、２バイト遅延が随所に含まれている。
これは、ＤＲＡＭ上では、第１と第３、第２と第４、第３と第５、第４と第６、第５と第７、第６と第８、第７と第１、あるいは第８と第２ＲＯＷの差に相当する。したがって、図２０にある（０，０，０），（０，３，１），（０，２４，６），（０，２７，７），（０，６２，１６），（０，６５，１７），（０，８６，２２），（０，８９，２３），（０，８，２），（０，１１，３），（０，３２，８），（０，３５，９），（０，７０，１８），（０，７３，１９），（０，９４，２４），（０，９７，２５），（０，１６，４），（０，１９，５），（０，４０，１０），（０，４３，１１），（０，７８，２０），（０，８１，２１），（１，４，２６），（１，７，２７）を出力する場合、ＲＯＷアドレス更新と４バイトのＲＯＷアドレス内読み出しを、以下のように６回繰り返すことによって達成される。
１：第１ＲＯＷ  アドレスＨ’０００，Ｈ’００３
２：第３ＲＯＷ  アドレスＨ’１０８，Ｈ’１０Ｂ
３：第１ＲＯＷ  アドレスＨ’００１，Ｈ’００４
４：第３ＲＯＷ  アドレスＨ’１０９，Ｈ’１０Ｃ
５：第１ＲＯＷ  アドレスＨ’００２，Ｈ’００５
６：第３ＲＯＷ  アドレスＨ’１０Ａ，Ｈ’１０Ｄ
上記のアクセスは、第１ＲＯＷと第３ＲＯＷを交互にアクセスするので、必ずしも効率が良いとは言い難いが、出力に必要なディインンターリーブの処理（図２０参照）を特別なハードウエアをもたず、ＤＲＡＭのアドレッシングだけで実現している点が有効である。
一方、アドレッシングを、第１ＲＯＷと第３ＲＯＷの２組に分けて、図１４に示すような出力回路を付加してディインターリーブを実現することもできる。以下に示すように、第１ＲＯＷと第３ＲＯＷそれぞれ６ワードずつ読み出す。
１：第１ＲＯＷ  アドレスＨ’０００からＨ’００５
２：第３ＲＯＷ  アドレスＨ’１０８からＨ’１０Ｄ
読み出されたデータは、内部バスを通して図１４に示した出力回路に転送される。データの転送は読み出しクロックに同期して行なわれ、出力回路内の入力側の１２進カウンタ１４１で書き込むべきレジスタのアドレスを指定する。最初のデータが入力されたときに１２進カウンタ１４１は０で、読み出しクロックが入力される毎に１ずつ加算される。デコーダ１４２の出力は、カウンタ１４１の値に対応して０から１１までの１２本あり、２４個の出力ラッチ１４４にデータが出力順に格納されるようにライトイネーブルを発行する。ラッチ１４４にデータがすべて格納された後、出力要求クロックが入力される毎に、１シンボルのデータが出力される。図１４では、出力側のデコーダ１４６の出力の接続先を明示していないが、出力側の２４進カウンタ１４７のカウント値に対応して上から順に出力されるように設計されている。本実施例では、入力側を工夫して、データがラッチ回路１４４に出力順に格納されるように設計してある。そのため、出力はシーケンシャルアクセスであるから、シフトレジスタの形式を採用してもよい。また、入力側をＤＲＡＭから読み出された順に格納しておいて、適切な順序で出力する設計も可能である。
以上述べてきたＣＤ−ＲＯＭの入力データ書き込み、Ｃ２訂正のための読み出し、訂正済みデータの出力の、３種のＤＲＡＭアクセスのアドレッシングは比較的規則性を見い出しやすいので、簡単なレジスタと加算器で構成できる。
図９は、同じ１６ビット／ワードのＤＲＡＭをＤＶＤから読み出された信号の誤り訂正に使う場合のデータの割付け方法を示す図である。
復調回路から時系列的に入力されるＥＣＣブロック１行目のデータ（０，０，０），（０，０，１），・・・（０，０，１８１）を、ＤＲＡＭの第１ＲＯＷから第６ＲＯＷに順次書き込む。ただし、連続する２シンボルをまとめて１６ビット＝１ワードのデータにする。第１ＲＯＷにはアドレスＨ’００００からＨ’０００Ｆまでにデータ｛（０，０，０），（０，０，１）｝から｛（０，０，３０），（０，０，３１）｝が格納される。次のデータ｛（０，０，３２），（０，０，３３）｝から｛（０，０，６２），（０，０，６３）｝は、第２ＲＯＷのアドレスＨ’０１００からＨ’０１０Ｆまでに格納され、同様に第３、第４、第５、第６ＲＯＷの先頭から順次データを書き込む。
ＥＣＣブロック１行分のデータは、１８２バイトを３２では割り切れないので第６ＲＯＷのアドレスＨ’０５０ＢからＨ’０５０Ｆは未使用領域となる。復調回路から続いて時系列的に入力されるＥＣＣブロック２行目のデータ｛（０，１，０），（０，１，１）｝，・・・｛（０，１，１８０），（０，１，１８１）｝は、ＤＲＡＭの第１ＲＯＷに戻って１行目のデータの続きのアドレスＨ’００１０からＨ’００１Ｆまで第２ＲＯＷアドレスＨ’０１１０から順次第６ＲＯＷアドレスＨ’０５１Ａに書き込まれる。同様に、ＥＣＣブロック３行目から１６行目のデータは、ＤＲＡＭの第１ＲＯＷから第６ＲＯＷに順次書き込まれる。さらに、ＥＣＣブロック１７行目から３２行目のデータはＤＲＡＭの第７ＲＯＷから第１２ＲＯＷに、３３行目から４８行目のデータはＤＲＡＭの第１３ＲＯＷから第１８ＲＯＷに、最後の１９３行目から２０８行目のデータはＤＲＡＭの第７３ＲＯＷから第７８ＲＯＷに、それぞれ、ＥＣＣブロック１行目から３２行目のデータをＤＲＡＭの第１ＲＯＷから第６ＲＯＷに書き込んだのと同様に、順次書き込む。
図２に示した実施例では、内符号訂正の全部もしくは一部をＤＲＡＭにデータを格納する前に実行する例を示したが、図９に示したデータの割り付けによれば、内符号訂正に必要な一連の１８２シンボルが３２シンボルずつＤＲＡＭの同一ＲＯＷアドレスに格納されていて、ＲＯＷアドレスの再発行なしに最大３２シンボルまで連続して読み出すことができるので、データをＤＲＡＭに格納した後に内符号訂正を行なってもよい。
外符号訂正に必要な一連のデータは（ｂ，０，ｃ），（ｂ，１，ｃ），・・・（ｂ，２０７，ｃ）である。図９に示したように（０，０，０），（０，１，０），・・・（０，１５，０）はＤＲＡＭの第１ＲＯＷに格納されていて、ＲＯＷアドレスの再発行なしに最大１６シンボルまで連続して読み出すことができる。ＤＲＡＭは２バイト／ワードであるから、このとき（０，０，１），（０，１，１），・・・（０，１５，１）も同時に読み出すことができるので、第０列と第１列の外符号訂正を並列に処理すると効率的である。ＤＲＡＭのアドレスの発生方法は、８ビット／ワードのＤＲＡＭの場合と同様に容易に構成できる。
訂正後のデータの読み出しは、最初の書込と全く同じ順序で行なえばよい。
図９にも、図６と同様１ＥＣＣブロック分のみのデータ割り付けを示したが、通常の装置では、前述のとおり最低限３ＥＣＣブロックのデータをＤＲＡＭ上に蓄積して処理するのが一般的である。
図１０は、本発明の第２の実施例を示す第２のデータ並べ替え回路の構成図であって、３２ビット／１ワードのＤＲＡＭを用いる場合を示す。
バイト番号が４の倍数（ｉ＝１，５，９，・・・２９）のデータは１２フレーム遅延を与えて最上位バイト側、バイト番号が４で割って１余る数（ｉ＝２，６，１０，・・・３０）のデータは１２フレーム遅延を与えて第２上位バイトへ、バイト番号が４で割って２余る数（ｉ＝３，７，１１，・・・３１）のデータは８フレーム遅延を与えて第３上位バイトへ、バイト番号が４で割って３余る数（ｉ＝４，８，１２，・・・３２）のデータは遅延なしで最下位バイトへ、合計４バイトにして出力する。図４のタイミングチャートに示したように、データ（０，０，０）（０，３，１）（０，８，２）（０，１１，３）が組み合わされて出力される。第２のデータ並べ替え回路で遅延を受け組合せて出力され４バイト（３２ビット）をＤＲＡＭの１ワードに書き込む。
図１１は、ＣＤ−ＲＯＭデータの３２ビット／ワードＤＲＡＭ上のデータの割り付け方法を示す図である。
データ（０，０，０）、（０，３，１）、（０，８，２）、（０，１１，３）の組合せでできる４バイトのデータを｛（０，０，０），（０，３，１），（０，８，２），（０，１１，３）｝と表記すると、時系列で出力される１６ワード｛（０，０，０），（０，３，１），（０，８，２），（０，１１，３）｝，｛（０，０，４），（０，３，５），（０，８，６），（０，１１，７）｝，・・・，｛（０，０，２８），（０，３，２９），（０，８，３０），（０，１１，３１）｝をＤＲＡＭの第１ＲＯＷ内のアドレスＨ’０００，Ｈ’００９，Ｈ’０１２，・・・Ｈ’０３Ｆに書き込む。その後、データ｛（０，１，０），（０，４，１），（０，９，２），（０，１２，３）｝，｛（０，１，４），（０，４，５）｝，（０，９，６），（０，１２，７）｝，・・・，｛（０，１，２８），（０，４，２９），（０，９，３０），（０，１２，３１）｝をＤＲＡＭの第２ＲＯＷ内のアドレスＨ’０４０，Ｈ’０４９，・・・Ｈ’０７Ｆに書き込む。これを順次ＤＲＡＭの第１６ＲＯＷまで書き込んだ後、データ｛（０，１６，０），（０，１９，１），（０，２４，２），（０，２７，３）｝，・・・，｛（０，１６，２８），（０，１９，２９），（０，２４，３０），（０，２７，３１）｝を再びＤＲＡＭの第１ＲＯＷ内のアドレスＨ’０３８，Ｈ’００１，Ｈ’０１２，・・・Ｈ’０３６に書き込む。ＲＯＷアドレスは第１から第１６までを繰り返せばよく、ＣＯＬＵＭＮアドレスはＲＯＷアドレスが変わる度に適当な初期値を与え、その後、オーバーフローを無視してＨ’１１（１０進で１７）づつ加算していけばよい。この結果、図１１からも明らかなように、アドレスの下位３ビットＨ’０から連続する４ワードはＣ２訂正に必要な一連の３２シンボルになっている。
訂正の終了したデータの読み出しは、図２０に示したように規格で定められたディインターリーブを施す必要がある。本実施例のＤＲＡＭ上のデータ割付けでは、ディインターリーブをＤＲＡＭ読み出しのアドレッシングで実現することができる。図２０のディインターリーブには、２バイト遅延が随所に含まれている。これは、ＤＲＡＭ上では、第１と第３、第２と第４、第３と第５、第４と第６、第５と第７、第６と第８、・・・第１５と第１、あるいは第１６と第２ＲＯＷの差に相当する。したがって、図２０にある（０，０，０），（０，３，１），（０，２４，６），（０，２７，７），（０，６２，１６），（０，６５，１７），（０，８６，２２），（０，８９，２３），（０，８，２），（０，１１，３），（０，３２，８），（０，３５，９），（０，７０，１８），（０，７３，１９），（０，９４，２４），（０，９７，２５），（０，１６，４），（０，１９，５），（０，４０，１０），（０，４３，１１），（０，７８，２０），（０，８１，２１），（１，４，２６），（１，７，２７）を出力する場合、ＲＯＷアドレス更新と３ワードのＲＯＷアドレス内読み出しを以下のように２回繰り返すことによって達成される。
１：第１ＲＯＷ  アドレスＨ’０００，Ｈ’００１，Ｈ’００２
２：第３ＲＯＷ  アドレスＨ’０８４，Ｈ’０８５，Ｈ’０８６
３２ビット／ワードであるのでアクセス回数は少なくてすむ反面、バイト単位のデータ（シンボル）の入れ替えまではアドレッシングだけではできない。
図１５は、本発明の第３の実施例を示す出力回路の構成図（３２ビット／ワードＤＲＡＭ用）である。
規格どおりの出力順序を実現するには、図１５に示したようなディインターリーブ回路が必要となる。読み出されたデータは、内部バスを通して図１５に示した出力回路に転送される。データの転送は読み出しクロックに同期して行なわれ、出力回路内の入力側の６進カウンタ１５２で書き込むべきレジスタのアドレスを指定する。１ワードあたり４シンボルであるので、書き込まれるラッチ１５３は４個同時に指定される。最初のデータが入力されたときに６進カウンタ１５２は０で、読み出しクロックが入力される毎に１ずつ加算される。デコーダ１５１の出力はカウンタ１５２の値に対応して０から５までの６本あり、２４個の出力ラッチ１５３にデータが出力順に格納されるようにライトイネーブルを発行する。ラッチ１５３にデータがすべて格納された後、出力要求クロックが入力される毎に、１シンボルのデータが出力される。
図１５では出力側のデコーダ１５５の出力の接続先を明示していないが、出力側の２４進カウンタ１５６のカウント値に対応して上から順に出力されるように設計されている。本実施例では入力側を工夫して、データがラッチ回路に出力順に格納されるように設計してある。そのため出力はシーケンシャルアクセスであるから、シフトレジスタの形式を採用してもよい。
以上述べてきたＣＤ−ＲＯＭの入力データ書き込み、Ｃ２訂正のための読み出し、訂正済みデータの出力の、３種のＤＲＡＭアクセスのアドレッシングは比較的規則性を見い出しやすいので、簡単なレジスタと加算器で構成できる。
図１２は、同じ３２ビット／ワードのＤＲＡＭをＤＶＤから読み出された信号の誤り訂正に使う場合のデータの割付け方法を示す図である。
復調回路から時系列的に入力されるＥＣＣブロック１行目のデータ（０，０，０），（０，０，１），・・・（０，０，１８１）を、ＤＲＡＭの第１ＲＯＷから第６ＲＯＷに順次書き込む。ただし、連続する４シンボルをまとめて３２ビット＝１ワードのデータにする。
第１ＲＯＷにはアドレスＨ’００００からＨ’０００７までにデータ｛（０，０，０），（０，０，１），（０，０，２），（０，０，３）｝から｛（０，０，２８），（０，０，２９），（０，０，３０），（０，０，３１）｝が格納される。次のデータ｛（０，０，３２），（０，０，３３），（０，０，３４），（０，０，３５）｝から｛（０，０，６０），（０，０，６１），（０，０，６２），（０，０，６３）｝は第２ＲＯＷのアドレスＨ’００４０からＨ’００４７までに格納され、同様に第３、第４、第５、第６ＲＯＷの先頭から順次データを書き込む。
ＥＣＣブロック１行分のデータは、１８２バイトを３２では割り切れないので、第６ＲＯＷのアドレスＨ’０１４５の下位２バイトからＨ’０１４Ｆは未使用領域となる。復調回路から続いて時系列的に入力されるＥＣＣブロック２行目のデータ｛（０，１，０），（０，１，１），（０，１，２），（０，１，３）｝，・・・｛（０，１，１７８），（０，１，１７９），（０，１，１８０），（０，１，１８１）｝は、ＤＲＡＭの第１ＲＯＷに戻って１行目のデータの続きのアドレスＨ’０００８からＨ’０００Ｆまで第２ＲＯＷアドレスＨ’００４８から順次第６ＲＯＷアドレスＨ’００４Ｆに書き込まれる。同様にＥＣＣブロック３行目から１６行目のデータは、ＤＲＡＭの第１ＲＯＷから第６ＲＯＷに順次書き込まれる。さらに、ＥＣＣブロック１７行目から３２行目のデータはＤＲＡＭの第７ＲＯＷから第１２ＲＯＷに、３３行目から４８行目のデータはＤＲＡＭの第１３ＲＯＷから第１８ＲＯＷに、最後の１９３行目から２０８行目のデータはＤＲＡＭの第１５１ＲＯＷから第１５６ＲＯＷに、それぞれ、ＥＣＣブロック１行目から３２行目のデータをＤＲＡＭの第１ＲＯＷから第６ＲＯＷに書き込んだのと同様に、順次書き込む。
図２に示した実施例では、内符号訂正の全部もしくは一部をＤＲＡＭにデータを格納する前に実行する例を示したが、図１２に示したデータの割り付けによれば、内符号訂正に必要な一連の１８２シンボルが３２シンボルずつＤＲＡＭの同一ＲＯＷアドレスに格納されていて、ＲＯＷアドレスの再発行なしに最大３２シンボルまで連続して読み出すことができるので、データをＤＲＡＭに格納した後に内符号訂正を行なってもよい。
外符号訂正に必要な一連のデータは（ｂ，０，ｃ），（ｂ，１，ｃ），・・・（ｂ，２０７，ｃ）である。図１２に示したように（０，０，０），（０，１，０），・・・（０，７，０）はＤＲＡＭの第１ＲＯＷに格納されていて、ＲＯＷアドレスの再発行なしに最大８シンボルまで連続して読み出すことができる。
ＤＲＡＭは４バイト／ワードであるから、このとき、第１列（０，０，１），（０，１，１），・・・（０，７，１）、第２列（０，０，２），（０，１，２），・・・（０，７，２）、第３列（０，０，３），（０，１，３），・・・（０，７，３）も同時に読み出すことができるので、第０列から第３列の外符号訂正を並列に処理すると効率的である。ＤＲＡＭのアドレスの発生方法は、８ビット／ワードのＤＲＡＭの場合と同様に容易に構成できる。訂正後のデータの読み出しは、最初の書込と全く同じ順序で行なえばよい。
図１２にも、図６と同様に１ＥＣＣブロック分のみのデータ割り付けを示したが、通常の装置では、前述のとおり最低限３ＥＣＣブロックのデータをＤＲＡＭ上に蓄積して処理するのが一般的である。
図１６は、本発明の各実施例に適用するアドレス発生回路の構成図である。
加算回路１６５と加算回路１６５の第１及び第２の入力バス、出力バス、複数のレジスタとして、ＲＯＷアドレスレジスタ１６３、ＣＯＬアドレスレジスタ１６３ａ、レジスタ０からレジスタｎ（１６４）で構成されている。ＲＯＷアドレスレジスタ１６３とＣＯＬアドレスレジスタ１６３ａの値は、それぞれマスク／オフセット回路１６７をとおして、マルチプレクサ１６８で選択されてＤＲＡＭのアドレス端子に入力されている。マスク／オフセット回路１６６は、汎用のＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ）とレジスタを用いて構成する。ＡＬＵはビット毎の論理演算（論理和、論理積、排他的論理和など）と数値加減算を行なうので、アドレス値の一部を０または１に固定するマスク、定数値を加算するオフセットを容易に実現できる。加算回路１６５の第１の入力バスは、ＲＯＷアドレスレジスタ１６３、ＣＯＬアドレスレジスタ１６３ａ、レジスタ０からレジスタｎ（１６４）のうちの１個を選択して、加算回路１６５の一方に入力し、第２の入力バスは、レジスタ０からレジスタｎ（１６４）のうちの１個を選択して加算回路１６５の他方に入力する。
加算結果は、出力バスを通して複数のレジスタ１６４，１６３のうちの１個に書き込まれる。また、出力バスを通して直接値をレジスタ１６４，１６３に格納することもできる。図には示されていないが、アドレス生成回路は、優先判定回路の結果を受けたシーケンス制御回路によって、演算手順を与えられる。
以上述べてきたように、ＤＲＡＭのワードのビット数に応じて適当な入力回路、特にＣＤ−ＲＯＭにおける第２のデータ並べ替え回路、と適当な出力回路、特にＣＤ−ＲＯＭにおけるディインターリーブ回路を備えることによって、ＤＲＡＭへのアクセスが同一ＲＯＷアドレスへの連続したワードアクセスにまとめることができる。このためページモードアクセスを利用した高い転送レートを得ることができて、動作速度の低い、すなわち低価格のＤＲＡＭも有効に用いることができる。ＤＲＡＭの１ワード当りのビット数は多い程アクセスサイクル数を減らすことができる反面、ピン数が増える、入力出力回路の規模が大きくなるなどの欠点が発生してくる。この点がトレードオフになる。
同一ＬＳＩ上にＤＲＡＭを構成する場合にも、以上述べてきたＤＲＡＭ外付けの場合とほぼ同様であるが、１ワード当り８ビットとするのが最も好適である。オンチップＤＲＡＭの場合、アドレスマルチプレックスの必要がない、すなわちローアドレスとカラムアドレスを同時に発行できる。また、同一ローアドレスのデータは一旦一括して読み出されるので、カラムアドレスを変化しながら同一ローアドレス内のデータを読み出す速度は十分早いので、複数のシンボルをまとめる第２のデータ並べ替え回路は必要ない場合が多い。
図１７は、本発明を実施したＣＤ−ＲＯＭ，ＤＶＤを再生することのできる光ディスク再生装置の一例を示す図である。
ディスクを回転させるスピンドルモータ１７４、ディスクに光を照射するレーザダイオード１７２、反射した光を検出するフォトディテクタ１７３、２個のレーザダイオード１７２を切り替えるアクチュエータ１７１、レーザーダイオード１７２、フォトディテクタ１７３の設置されたステージを移動させるアクチュエータ１７１などの、光学系機械系の装置と、電気系の装置を組合せて構成されている。ＣＤ−ＲＯＭとＤＶＤでは、波長の異なる別のレーザダイオード１７２をそれぞれ備えることになる。
電気系は、マイクロコントローラ１７４が全体を制御している。マイクロコントローラ１７４の指示によって、レーザ制御回路１７８が動作してレーザードライバ１７６を通してレーザダイオード１７２の出力を制御し、サーボ信号処理回路１７９がアクチュエータドライバ１７５、モータドライバ１８０を通して機械系の制御を行なう。フォトディテクタ１７３で検出された信号はアナログ信号処理回路１７７を通してサーボ処理回路１７９と標本化２値化回路１８２に入力される。サーボ信号処理回路１７９に入力されている信号は、トラッキングやフォーカスのエラー情報で、ステージの位置やレンズの微調整、スピンドルモータの回転数の調整の源信号として用いられる。標本化２値化された情報は、再生したいディスク情報である。
フォトディテクタ１７３の信号からデータに同期したクロックを再生し、そのクロックを使って標本化２値化を行ない、ディジタル信号を得る。得られたディジタル信号から規格に定められた同期パターンを検出して、ＣＤ−ＲＯＭやＤＶＤのフレームの開始タイミングを同定する。再生クロックの同期状態、同期パターン検出の状態及び同期状態をマイクロコントローラ１８４が監視して、アクチュエータ１７１、サーボ、レーザの制御、およびＣＤ−ＲＯＭ／ＤＶＤのモード設定に用いる。２値化されたシリアルのディジタル信号は、ＣＤ−ＲＯＭ／ＤＶＤのモード設定に応じてそれぞれ１７ビットまたは１６ビットのパラレル信号に変換され、１４／８復調、１６／８復調されて、前述の実施例で示した入力回路に入力される。ＣＤ−ＲＯＭの場合は、ＥＦＭ（Ｅｉｇｈｔ  ｔｏ  Ｆｏｕｒｔｅｅｎ  Ｍｏｄｕｌａｔｉｏｎ）変調の１４ビットに接続のため３ビットが追加されているので、Ｓ／Ｐ変換回路１８５，１８６の出力は１７ビットである。
入力回路、出力回路、アドレス生成回路、優先判定回路、誤り訂正処理回路、ＤＲＡＭなどの動作は、既に示した実施例のとおりである。出力回路を通して送出される訂正済みのデータは、プロトコル制御回路１８７によって、定められたプロトコルでパーソナルコンピュータ、映像／音声再生機器など１８８に転送される。
マイクロコントローラ１８４は、ディスクが装填されるとＣＤ−ＲＯＭもしくはＤＶＤと仮定して、レーザダイオード１７２を選択し、サーボ処理、誤り訂正処理回路１９２などを動作させる。仮定が装填されたディスクとは異なる場合は、クロックが再生されない、同期パターンが検出できない、誤りが訂正できないなど、マイクロコントローラ１８４が監視している情報から判定して、他方のディスクの再生モードに切り替える。このようにして、媒体は自動判別される。
訂正処理・能力を向上するために、図１に示したデータ処理回路１５を並列プロセッサで構成する場合がある。並列プロセッサを構成するプロセッサエレメントをｎ個とすると、ｎ組のＣＤ−ＲＯＭのＣ１符号、Ｃ２符号、ＤＶＤの内符号、外符号の受信符号を並列に入力すると効率が良い。すなわち、ＤＶＤの内符号の場合ｎ行、外符号の場合ｎ列のデータをｎ個のプロセッサエレメントにそれぞれ入力して並列処理を行なう。
図１８は、本発明の一実施例を示すデータ処理回路の構成図であって、プロセッサエレメントＰＥの数が８個の場合のバッファレジスタとデータ処理回路の構成を示す。
ＤＲＡＭは１６ビット／ワード、したがって内部バスも１６ビット幅を想定している。また、ＤＲＡＭ上のデータ割り付けは、ＣＤ−ＲＯＭの再生の場合、図８に示したとおりであり、ＤＶＤの再生の場合、図９に示したとおりである。
図１８において、バッファレジスタは８行８列の１入力２出力の１バイトレジスタで構成されている。データ入力端子ＤＢ［１５：０］は前述の内部バスに接続されており、行のライトイネーブル信号ＷＡＲ０からＷＡＲ７で選択される行、列のライトイネーブル信号ＷＡＣ０からＷＡＣ３で選択される列の１バイトレジスタ２個にデータを格納する。一方、読み出しは、行方向もしくは列方向に並んだ８個のレジスタから並列に出力される。制御端子Ｒ／Ｃで行または列の方向を指定し、行方向の場合はＲＲ０からＲＲ７のうち選択された１行、８バイトのデータが読みだされて１バイトづつデータ処理回路のプロセッサエレメントＰＥ０からＰＥ７に供給される。列方向の場合は、ＲＣ０からＲＣ７のうち選択された１列、８バイトのデータが読みだされて、１バイトづつデータ処理回路のプロセッサエレメントＰＥ０からＰＥ７に供給される。
ＣＤ−ＲＯＭのＣ２訂正を、図１８の並列プロセッサＰＥ０〜ＰＥ７で行なう場合のデータの転送手順を説明する。前述のとおり、図８においてＣ２訂正に必要な２８バイトは、下位アドレスＨ’０からＨ’Ｄまでの連続するアドレスに格納されている。ＤＲＡＭの第１ＲＯＷのアドレスＨ’０００からＨ’００３のデータ８バイトをバッファレジスタの１行目に転送する。続けて第２ＲＯＷのアドレスＨ’１００からＨ’１０３のデータ８バイトをバッファレジスタの２行目に、と繰り返し、第８ＲＯＷのアドレスＨ’７００からＨ’７０３のデータ８バイトをバッファレジスタの８行目に転送する。これでバッファレジスタが満杯の状態になる。
Ｒ／Ｃ端子でＣ側、すなわち列側を選択してＲＣ０から順次ＲＣ７まで８バイトずつのデータをプロセッサエレメントＰＥ０からＰＥ７に転送する。この操作により、バッファレジスタの１行目から８行目データがそれぞれプロセッサエレメントＰＥ０からＰＥ７に順次転送される。これでバッファレジスタが空になるので、再度ＤＲＡＭの第１ＲＯＷから第８ＲＯＷの次の４ワード、計６４バイトをバッファレジスタを通してプロセッサエレメントＰＥ０からＰＥ７に転送する。これを繰り返すことによって、必要なデータがすべてプロセッサエレメントＰＥ０からＰＥ７に転送される。データ処理回路では、Ｃ２訂正を８個のプロセッサエレメントで並列の訂正処理を実行することができる。Ｃ２訂正に必要なデータは２８バイトで、転送単位は８バイトであるから、４回目の転送では最後の４バイトが不要のデータとなる。この４バイトはＣ１パリティであるから、Ｃ２の訂正には必要がない。そこで、この４バイトを利用して、Ｃ１訂正の状態フラグとして利用することもできる。
次に、ＤＶＤの内符号訂正を、図１８の並列プロセッサＰＥ０〜ＰＥ７で行なう場合のデータの転送手順を説明する。
前述のとおり、図９において内符号訂正に必要な１８２バイトは３２バイトごとにＤＲＡＭの第１ＲＯＷから第６ＲＯＷの下位アドレスＨ’０からＨ’Ｆまでの連続するアドレスに格納されている。ＤＲＡＭの第１ＲＯＷの、アドレスＨ’００００からＨ’０００３のデータ８バイトをバッファレジスタの１行目に、アドレスＨ’００１０からＨ’００１３のデータ８バイトをバッファレジスタの２行目に、これを繰り返して、アドレスＨ’００７０からＨ’００７３のデータ８バイトをバッファレジスタの８行目に転送する。これにより、ＥＣＣブロックの１行目から８行目までの最初の８バイトがバッファレジスタの１行目から８行目までに転送された。Ｒ／Ｃ端子でＣ側、すなわち列側を選択してＲＣ０から順次ＲＣ７まで８バイトずつのデータをプロセッサエレメントＰＥ０からＰＥ７に転送する。この操作により、バッファレジスタの１行目から８行目までのデータがそれぞれプロセッサエレメントＰＥ０からＰＥ７に順次転送される。これでバッファレジスタが空になるので、再度ＤＲＡＭの第１ＲＯＷの次のアドレスＨ’０００４からＨ’０００７、Ｈ’００１４からＨ’００１７、・・・Ｈ’００７４からＨ’００７７、の計６４バイトをバッファレジスタを通してプロセッサエレメントＰＥ０からＰＥ７に転送する。これを繰り返すことによって、必要なデータがすべてプロセッサエレメントＰＥ０からＰＥ７に転送される。データ処理回路では、内符号訂正を８個のプロセッサエレメントＰＥ０〜ＰＥ７で並列に訂正処理を実行することができる。
次に、ＤＶＤの外符号訂正を、図１８の並列プロセッサＰＥ０〜ＰＥ７で行なう場合のデータの転送手順を説明する。
前述のとおり、図９において外符号訂正に必要な２０８バイトは１６バイトごとにＤＲＡＭの第１ＲＯＷから第７８ＲＯＷまで６ＲＯＷおきの同一下位アドレスに格納されている。ＤＲＡＭの第１ＲＯＷの、アドレスＨ’００００からＨ’０００３のデータ８バイトをバッファレジスタの１行目に、アドレスＨ’００１０からＨ’００１３のデータ８バイトをバッファレジスタの２行目に、これを繰り返して、アドレスＨ’００７０からＨ’００７３のデータ８バイトをバッファレジスタの８行目に転送する。これにより、ＥＣＣブロックの１行目から８行目までの最初の８バイトがバッファレジスタの１行目から８行目までに転送された。これは、ＥＣＣブロックの１列目から８列目までの最初の８バイトにも相当する。
内符号訂正では、Ｒ／Ｃ端子でＣ側、すなわち列側を選択したが、外符号訂正では、Ｒ側すなわち行側を選択してＲＲ０から順次ＲＲ７まで８バイトずつのデータをプロセッサエレメントＰＥ０からＰＥ７に転送する。この操作により、バッファレジスタの１列目から８列目までのデータがそれぞれプロセッサエレメントＰＥ０からＰＥ７に順次転送される。これでバッファレジスタが空になるので、次はＤＲＡＭの第７ＲＯＷの次のアドレスＨ’０６００からＨ’０６０３、Ｈ’０７００からＨ’０７０３、・・・Ｈ’０ＢＦ０からＨ’０ＢＦ３、の計６４バイトをバッファレジスタを通してプロセッサエレメントＰＥ０からＰＥ７に転送する。これを繰り返すことによって、必要なデータがすべてプロセッサエレメントＰＥ０からＰＥ７に転送される。
データ処理回路では、外符号訂正を８個のプロセッサエレメントＰＥ０〜ＰＥ７で並列に訂正処理を実行することができる。
図１８では、ＣＤ−ＲＯＭとＤＶＤの誤り訂正を並列処理することについて説明したが、特にＤＶＤのための動作は一般のリードソロモンの積符号の誤り訂正に広く応用できる。
入力回路までの信号処理を入力媒体に応じて変更し、出力回路以降を出力先に応じて変更すれば、本発明はその他の媒体にも容易に対応できる。蓄積系メディアであっても、放送系メディアであっても、誤り訂正のデータフォーマットは、上記実施例で説明したＣＤ−ＲＯＭもしくはＤＶＤのデータフォーマットと類似しているため、アドレス生成回路、優先判定回路などはシーケンス制御を多少変更するだけで、容易に異なるフォーマットへの適用が可能になっている。
このため、設計データの有効活用という点で極めて有利である。
図２２は、本発明の他の実施例を示すデータ処理装置の構成図であって、本発明の処理方法をソフトウェアで実現する場合である。
図１に示した実施例は本発明のデータ処理装置をハードウェアで構成したものであるが、図１におけるアドレス発生、アクセス制御回路１７、優先判定回路１６、データ処理回路１５、バッファレジスタ１４は、マイクロコントローラなどのプロセッサのソフトウェアで実現することもできる。
図２２では、マイクロコントローラ２２３上のソフトウェアで実現する場合を前提とするハードウェア構成を示している。メインメモリ２２４とＤＲＡＭインターフェース回路２２５が共通バスを介して、また入力回路２２１と出力回路２２２が周辺バスを介して、それぞれマイクロコントローラ２２３に接続されている。マイクロコントローラ２２３は、ＤＲＡＭ２２６に対するアクセス要因別にアクセスを要求するレジスタ（ＤＲＡＭアクセス要求ステータスレジスタＲｅｇ  ｓｔ）を監視しており、要求の優先度に応じて適切な処理を行なう。ＤＲＡＭアクセス要求ステータスレジスタは、アクセス要因に要求の有無を示すレジスタであって、ハードウェアで実現しても、またソフトウェアで仮想的に実現してもよい。入力回路２２１には、１シンボル以上のレジスタがあって、データが準備されるとＤＲＡＭアクセス要求ステータスレジスタに要求を出する。マイクロコントローラ２２３では、誤り訂正ルーチン、出力処理ルーチン、ＤＲＡＭリフレッシュ制御ルーチンが動作しており、必要に応じてＤＲＡＭアクセス要求ステータスレジスタに要求を出す。
図２３は、マイクロプロセッサの優先判定ルーチンのフローチャートであって、ＤＲＡＭアクセス要求ステータスを監視して、適宜必要な処理サブルーチンを起動するソフトウェアのフローを示している。
先ず最初にＤＲＡＭアクセス要求ステータスレジスタの内容を読み込み（ステップ２３０，２３１）、優先順位に従ってアクセス要求の有無を調べて、要求があればその要求に応じるサブルーチンを起動し、要求をリセットしてステータスレジスタの読み込みに戻る。ここで示した優先順位はあくまでも一例であって、順位はシステムを構成する上で変更されることも十分に考えられる。また、プログラムの動作中にも変更される場合がある。
ｒｅｆｒｅｓｈ処理サブルーチン２３２，２４０，２４８は、マイクロコントローラ２２３の周辺機能であるタイマで時間管理を行ない、一定周期でＤＲＡＭのリフレッシュを行なうサブルーチンである。復調回路からのｗｒｉｔｅ  ａｃｃｅｓｓを行なうサブルーチン２３３，２４１，２４９は、媒体の種類やＤＲＡＭ上のデータの位置や方法により構成が異なる。
Ｃ１訂正のための読み出しアクセス処理サブルーチン（ステップ２３４，２４２，２５０）、Ｃ２訂正のための読み出しアクセス処理ルーチン（ステップ２３５，２４３，２５１）、出力のための読み出し処理サブルーチン（ステップ２３６，２４４，２５２）、訂正のための読み出しと書き込み処理サブルーチン（ステップ２３７，２４５，２５３）、およびその他の読み出しおよび書き込み処理サブルーチン（ステップ２３８，２３９，２４６，２４７，２５４，２５５）が優先順位に従って起動される。
図２４は、復調回路からのｗｒｉｔｅ  ａｃｃｅｓｓ処理ルーチンの一例を示すフローチャートである。
ここでは、ＣＤ−ＲＯＭの復調を行なうシステムにおいて、８ビットのデータ幅のＤＲＡＭを用いて、図５に示したデータの配置になるようにデータを書き込むサブルーチンを示す。復調回路からの入力データを“ＤＡＴＡ”とし、このときのデータの位置を図３に示した３３進カウンタ１１９の出力“ｉ”として、この２個のデータが与えられるものとする。ただし、この３３進カウンタ１１９はハードウェアでもソフトウェアでも容易に実現できる。ｉ＝０のとき（ステップ２６１）、ＤＡＴＡはサブコードであるので、サブコード処理サブルーチンを起動する（ステップ２６７）。サブコード処理自体は本発明とは本質的に関係がないので説明を省略する。ｉが偶数の場合には１フレーム遅延を与え（ステップ２６２，２６３）、奇数の場合には遅延なしでＤＲＡＭに書き込む（ステップ２６２，２６８）。フロー中のｏｕｔ  ｂｕｆは配列変数で、次にＤＲＡＭに書き込まれる３２バイトのデータを格納する。ｄｌｙ  ｂｕｆは１フレーム遅延のための配列変数で、１フレーム前のデータを保持している（ステップ２６５）。
データが奇数の場合（ステップ２６２）、１フレーム前のｄｌｙ  ｂｕｔ〔ｉ〕を次に出力するｏｕｔ  ｂｕｆ〔ｉ〕に格納しておく（ステップ２７０）。また、ｉ＝１３，１４，１５，１６，２９，３０，３１，３２のＤＡＴＡはパリティで図２０のＣＤの規格に示されているように、パリティは全ビット反転して以降の処理に用いられる（ステップ２６４，２６９）。
３２バイト連続して書き込むので、ｉ＝３２すなわちフレームの最後尾になるまではＤＲＡＭにアクセスせずに次の入力を待つ。ｉ＝３２になると（ステップ２６６）、ｏｕｔ  ｂｕｆには、ＤＲＡＭに書き込むべき３２バイトのデータが格納された状態になるので、実際にＤＲＡＭにアドレスを発行して書き込み動作を行なう。フロー中、変数ｒｏｗ，ｃｏｌ０，ｃｏｌはそれぞれＤＲＡＭのロウ、初期カラム、カラムアドレス計算のための変数であり、変数ＤＲＡＭ  ＲＯＷ，ＤＲＡＭ  ＣＯＬ，ＤＲＡＭ  ＤＡＴＡは、それぞれ実際にＤＲＡＭに発行されるロウ、カラムアドレスとデータである。
ＤＲＡＭのロウアドレスはＣＤの１フレーム毎に１ずつ増加して、適当な値で０に戻る（２７１参照）。また、初期カラムアドレスｃｏｌ０は１フレーム毎に３２ずつ（２４進表示でＨ’２０ずつ）増加して、同一ロウ内の最大値まで進むと次に０に戻る（２７２参照）。初期カラムアドレスが求められた時点で、実際にカラムアドレスをＤＲＡＭに発行し、同時にデータをＤＲＡＭに出力して書き込みを行なう（ステップ２７１，２７２）。その後、同一ロウアドレス内でカラムアドレスを３３（Ｈ’２１）ずつ増加して、順次残り３１バイトの書き込みを行なう（ステップ２７４）。
カラムアドレスが最大値Ｈ’４００を超えようとした場合、Ｈ’４００を差し引いて同一ロウアドレス内の若いカラムアドレスに折り返すことにより、ロウアドレスの再発行による書き込みサイクルの増加を防いでいる（２７４参照）。
以上説明した図２４のフローチャートを実現するソフトウェアにより、図３に示したハードウェアで実現していたデータの並べ替え回路はソフトウェアで実現することができる。
以下、Ｃ１，Ｃ２訂正のためのデータの読み出し、出力のためのデータの読み出し、訂正のためのデータの読み出し訂正書き込み、などのサブルーチンが必要であるが、これらは既に適切に並べ替えられたデータに対するアクセスであって、容易に実現できるので説明は省略する。
ＤＲＡＭの制御をソフトウェアで実現した場合、ＤＲＡＭの余分な空間を別の目的のデータのワークエリアとして使用することができるという効果もある。
産業上の利用可能性
以上に述べたように、本発明のデータ処理装置は、ＤＲＡＭの同一ＲＯＷアドレス内の高速なアクセスを利用することができ、異なる媒体からの信号の誤り訂正に共通に対応することができるので、特に高速で高価なメモリを用いる必要がなくなり、廉価なデータ処理装置を実現できる。さらに、内部バスに接続する入力回路、出力回路をシステムに適応するように設計すれば、ＤＲＡＭアクセスを含めて訂正処理回路を若干の変更だけで、異なるシステムに転用できるので、開発コストを削減できるという効果もある。
【図面の簡単な説明】
図１は、本発明の第１の実施例を示すデータ処理装置のブロック図である。
図２は、図１における入力回路の詳細なブロック図である。
図３は、図１における第１のデータ並べ替え回路及びカウンタの詳細なブロック図である。
図４は、ＣＤ−ＲＯＭ信号の入力回路の動作を説明するタイミングチャートである。
図５は、ＣＤ−ＲＯＭデータの８ビット／ワードＤＲＡＭ上のデータ割り付け例を示す図である。
図６は、ＤＶＤデータの８ビット／ワードＤＲＡＭ上のデータ割り付け例を示す図である。
図７は、本発明の第２のデータ並べ替え回路の一実施例を示す構成図である。
図８は、ＣＤ−ＲＯＭデータの１６ビット／ワードＤＲＡＭ上のデータ割り付け例を示す図である。
図９は、ＤＶＤデータの１６ビット／ワードＤＲＡＭ上のデータ割り付け例を示す図である。
図１０は、本発明の第２のデータ並べ替え回路の他の実施例を示す構成図である。
図１１は、ＣＤ−ＲＯＭデータの３２ビット／ワードＤＲＡＭ上のデータ割り付け例を示す図である。
図１２は、ＤＶＤデータの３２ビット／ワードＤＲＡＭ上のデータ割り付け例を示す図である。
図１３は、図１における出力回路の第１の実施例（８ビット／ワードＤＲＡＭ用）を示す構成図である。
図１４は、図１における出力回路の第２の実施例（１６ビット／ワードＤＲＡＭ用）を示す構成図である。
図１５は、図１における出力回路の第３の実施例（３２ビット／ワードＤＲＡＭ用）を示す構成図である。
図１６は、図１におけるアドレス生成回路の実施例を示す構成図である。
図１７は、本発明を適用したＣＤ−ＲＯＭ／ＤＶＤ再生装置の実施例のブロック図である。
図１８は、本発明のデータ処理回路の実施例を示す構成図である。
図１９は、ＣＤ−ＲＯＭ復調後の時系列データおよびＣＤ−ＲＯＭデータの誤り訂正符号のフォーマット図である。
図２０は、ＣＤ−ＲＯＭの誤り訂正、ディインターリーブの規格を示す図である。
図２１は、ＣＤ−ＲＯＭ復調後の時系列データおよびＣＤ−ＲＯＭデータの誤り訂正符号のフォーマット図である。
図２２は、本発明の第２の実施例を示すデータ処理装置のブロック図である。
図２３は、図２２におけるマイクロプロセッサの優先判定ルーチンのフローチャートである。
図２４は、図２２における復調回路からのｗｒｉｔｅ  ａｃｃｅｓｓ処理ルーチンのフローチャートである。
【図１】
0003904138.tif 000002
【図２】
0003904138.tif 000003
【図３】
0003904138.tif 000004
【図４】
0003904138.tif 000005
【図５】
0003904138.tif 000006
【図６】
0003904138.tif 000007
【図７】
0003904138.tif 000008
【図１０】
0003904138.tif 000009
【図８】
0003904138.tif 000010
【図９】
0003904138.tif 000011
【図１１】
0003904138.tif 000012
【図１２】
0003904138.tif 000013
【図１３】
0003904138.tif 000014
【図１４】
0003904138.tif 000015
【図１５】
0003904138.tif 000016
【図１６】
0003904138.tif 000017
【図１７】
0003904138.tif 000018
【図１８】
0003904138.tif 000019
【図１９】
0003904138.tif 000020
【図２０】
0003904138.tif 000021
【図２１】
0003904138.tif 000022
【図２２】
0003904138.tif 000023
【図２３】
0003904138.tif 000024
【図２４】
0003904138.tif 000025