JP2004348824A - Eccエンコード方法、eccエンコード装置 - Google Patents
Eccエンコード方法、eccエンコード装置 Download PDFInfo
- Publication number
- JP2004348824A JP2004348824A JP2003143157A JP2003143157A JP2004348824A JP 2004348824 A JP2004348824 A JP 2004348824A JP 2003143157 A JP2003143157 A JP 2003143157A JP 2003143157 A JP2003143157 A JP 2003143157A JP 2004348824 A JP2004348824 A JP 2004348824A
- Authority
- JP
- Japan
- Prior art keywords
- parity
- data
- syndrome
- circuit
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Abstract
【課題】ディジタルデータのエラーを訂正するためのECCを記録ディジタルデータに付加するECCエンコード方法および装置において、ECC生成・付加を高速に行なうこと。
【解決手段】横縦のブロック構造のデータについて横方向1行の第1のパリティを第1の計算回路で計算して横方向に付加し、これを各行についてそれぞれ行なう第1のステップと、第1のステップがなされる間に、第1のパリティが付加されたデータについて縦方向1列の第2のパリティを第2の計算回路で計算し、これを各列についてそれぞれ行なう第2のステップとを具備する。
【選択図】 図1
【解決手段】横縦のブロック構造のデータについて横方向1行の第1のパリティを第1の計算回路で計算して横方向に付加し、これを各行についてそれぞれ行なう第1のステップと、第1のステップがなされる間に、第1のパリティが付加されたデータについて縦方向1列の第2のパリティを第2の計算回路で計算し、これを各列についてそれぞれ行なう第2のステップとを具備する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ディジタルデータのエラーを訂正するためのエラー訂正符号(ECC:error correction code)を記録ディジタルデータに付加するECCエンコード方法および装置に係り、特に、ECC付加を高速に行なうのに適するECCエンコード方法および装置に関する。
【0002】
【従来の技術】
通信、コンピュータ、放送、映像メディアなどのディジタル化された各分野においては、データの信頼性の向上、さらには記録システムにおける高記録密度化のために一般にエラー訂正符号が用いられている。特に最近では、データ処理能力の向上に伴い高度な訂正能力を有するエラー訂正符号が用いられるようになってきている。
【0003】
高画質な映像を提供するDVD(digital versatile disc)再生装置においても、訂正能力の高いリードソロモン(RS)積符号と呼ばれるエラー訂正符号が用いられ、伝送系で発生したエラーが訂正できるようになっている。積符号は、縦横の異なる方向のエラー訂正符号を組み合わせたもので、情報データのブロックの横方向に対して付加された内符号のPI(parity inner)パリティと、情報データおよびPIパリティからなるブロックの縦方向に対して付加された外符号のPO(parity outer)パリティとからなる。このように構成された情報データ、PIパリティ、POパリティからなるブロックがECCブロックである。
【0004】
このようなECCブロックを利用して行われるDVD再生時のエラー訂正処理の構成および手順例としては、下記特許文献1に記載の方法がある。また、最近普及の目覚しい記録型DVD装置で必要となるECCエンコード処理、つまり情報データに対してPIおよびPOパリティを生成し付加するパリティ生成処理方法の例としては、下記特許文献2に記載のものがある。
【0005】
【特許文献1】
特開2002−74861号公報
【特許文献2】
特開2001−319431号公報
【0006】
【発明が解決しようとする課題】
上記のような記録型DVD装置は、AV(audio visual)用途を中心に普及し始めている。特に最近ではアクセス性に富み大容量なHDD(hard disc drive)と、保存・リムーバブル用途に特化した記録型DVDとの組み合わせによるハイブリッド型DVDレコーダーが人気を集めている。
【0007】
DVDはCD(compact disc)と比較して記憶容量が大きいことが特長の一つであるが、一方で、大容量であるためデータを等倍速(例えば映像でいえば通常の再生での速度)で記録する場合には、その書き込み処理に膨大な時間が必要となる。つまり、上記DVDレコーダーにおいて、HDDに記録された映像データのDVDへのダビングに、ユーザは長時間待たされることになる。
【0008】
このため、記録型DVD装置においても、現在主流の記録型CD装置のように、高速にディスク上へのデータ記録を行う「高倍速記録」対応が望まれている。こうした「高倍速記録」を装置側で対応するためには、書き込み処理時に行われるECCエンコード処理を高速処理化させる必要があり、例えば、特に高速化のボトルネックとなっているECC用データバッファ(一般的にはD−RAM(dynamic − random access memory )が用いられている)へのアクセス回数をいかに低減させるかが問題となる。
【0009】
本発明は、上記の状況を考慮してなされたもので、ディジタルデータのエラーを訂正するためのECCを記録ディジタルデータに付加するECCエンコード方法および装置において、ECC生成・付加を高速に行なうことが可能なECCエンコード方法および装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記の課題を解決するため、本発明に係るECCエンコード方法は、横縦のブロック構造のデータについて横方向1行の第1のパリティを第1の計算回路で計算して横方向に付加し、これを各行についてそれぞれ行なう第1のステップと、前記第1のステップがなされる間に、前記第1のパリティが付加されたデータについて縦方向1列の第2のパリティを第2の計算回路で計算し、これを各列についてそれぞれ行なう第2のステップとを具備することを特徴とする。
【0011】
また、本発明に係る別のECCエンコード方法は、横縦のブロック構造のデータについて横方向1行の第1のパリティを第1の計算回路で計算して横方向に付加し、これを各行についてそれぞれ行なう第1のステップと、前記第1のステップがなされる間に、前記第1のパリティが付加されたデータについて縦方向1列のシンドロームを第2の計算回路で計算し、これを各列についてそれぞれ行なう第2のステップと、前記計算されたシンドロームから縦方向の第2のパリティを生成する第3のステップとを具備することを特徴とする。
【0012】
すなわち、いずれの方法も、横方向の第1のパリティの発生・付加と、縦方向の第2のパリティの発生・付加のための処理とが並行的になされる。よって、第1のパリティを付加してデータを一旦メモリに格納する、格納されたデータにアクセスして第2のパリティの発生・付加を行なう、という時間的に縦続の2段階の処理が必要ない。時間的に縦続の処理に要するメモリアクセスは処理速度を低下させる大きな原因になる。したがって、本発明によれば、ECC生成・付加を高速に行なうことが可能になる。
【0013】
なお、後者の方法では、第2のパリティを計算するのにシンドロームを計算し計算で得られたシンドロームからこれを生成するようにしている。シンドローム計算は再生回路(ECCデコード回路)で必須であり、記録再生を要する装置では回路の兼用化によりその規模を削減する効果が得られ整合性がよい。
【0014】
また、本発明に係るECCエンコード装置は、横縦のブロック構造のデータについて横方向1行の第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なう第1のパリティ生成回路と、前記第1のパリティの計算を前記各行についてそれぞれ行なう間に、前記第1のパリティが付加されたデータについて縦方向1列の第2のパリティを計算し、これを各列についてそれぞれ行なう第2のパリティ生成回路とを具備することを特徴とする。
【0015】
また、本発明に係る別のECCエンコード装置は、横縦のブロック構造のデータについて横方向1行の第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうパリティ生成回路と、前記第1のパリティの計算を前記各行についてそれぞれ行なう間に、前記第1のパリティが付加されたデータについて縦方向1列のシンドロームを計算し、これを各列についてそれぞれ行なうシンドローム生成回路と、前記計算されたシンドロームから縦方向の第2のパリティを生成する回路とを具備することを特徴とする。
【0016】
これらの装置は、上記の各方法を実行するためのハードウエア構成を備えたものである。
【0017】
【発明の実施の形態】
本発明に係るECCエンコード方法の実施態様として、前記第2のステップは、前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをバッファとして用い該バッファと前記第2の計算回路との間で途中結果を往復しながら行なうようにすると都合がよい。これは、第2の計算回路では縦方向のデータでパリティ計算(またはシンドローム計算)を行なうためである。すなわち、縦方向のデータは飛び飛びにしか得られないので、横方向のアドレスで管理されたメモリをバッファとして用いそれとのデータ出し入れで所定の計算を行なう。
【0018】
また、実施態様として、前記第1のパリティが付加された前記データをメモリに順次格納するステップをさらに具備するようにしてもよい。メモリに一時格納するものである。
【0019】
また、ここで、実施態様として、前記第2のステップで計算された第2のパリティを、前記メモリに格納された前記データに対してインターリーブするように前記メモリに格納するステップをさらに具備するようにしてもよい。一時格納のメモリを第2のパリティのインターリーブ処理に利用するものである。
【0020】
または、実施態様として、前記メモリに格納された前記第1のパリティが付加された前記データを該メモリから読み出しながら前記計算された第2のパリティをインターリーブするステップをさらに具備するようにしてもよい。一時格納のメモリからデータを順次出力するのと並行して第2のパリティのインターリーブを行なうものである。これによれば、メモリへのアクセスが増加せず高速化に一層都合がよい。
【0021】
また、実施態様として、前記第1のステップは、前記横縦のブロック構造のデータについて横方向1行のシンドロームを生成し、該生成されたシンドロームから横方向の前記第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうようにしてもよい。これは、第1のパリティの生成に、シンドロームの計算を利用するものである。
【0022】
また、本発明に係るECCエンコード装置の実施態様として、前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをさらに具備し、前記第2のパリティ生成回路は、前記メモリをバッファとして用い該バッファとの間で途中結果を往復しながら前記第2のパリティの計算を行なうようにすると都合がよい。
【0023】
また、実施態様として、前記第1のパリティが付加されたデータを格納するメモリをさらに具備するようにしてもよい。
【0024】
また、ここで、実施態様として、前記メモリに格納された前記データを該メモリから読み出しながら前記計算された第2のパリティをインターリーブするためのセレクタをさらに具備するようにしてもよい。
【0025】
また、実施態様として、前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをさらに具備し、前記シンドローム生成回路は、前記メモリをバッファとして用い該バッファとの間で途中結果を往復しながら前記シンドロームの計算を行なうようにすると都合がよい。
【0026】
また、実施態様として、前記パリティ生成回路は、前記横縦のブロック構造のデータについて横方向1行のシンドロームを生成し、該生成されたシンドロームから横方向の前記第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうようにしてもよい。
【0027】
以上のECCエンコード装置としての実施態様は、上記ECCエンコード方法としての実施態様を実現するためのハードウエアを備えたものである。
【0028】
以上を踏まえ、以下では本発明の実施形態を図面を参照しながら説明する。図1は、本発明の一実施形態に係るECCエンコード装置を記録型DVD装置に適用した場合の記録系構成を示すブロック図である。図1に示すように、この記録型DVD装置は、記録系構成として、ホスト201、(ID+IED+RSV)付加回路・スクランブル回路・EDC付加回路202、PIパリティ生成回路203、POパリティ生成回路204、POパリティ用バッファ205、RAM制御部206、RAM207、変調回路208、記録補償回路209、ピックアップヘッド(PUH)210、POパリティインターリーブ用セレクタ211、記録対応ディスク212を有する。
【0029】
ホスト201は、記録すべきユーザデータをバイト幅(8ビット幅)で(ID+IED+RSV)付加回路・スクランブル回路・EDC付加回路202に供給するものである。ここで、IDはidentification data、IEDはID error detection code、RSVはreserved、EDCはerror detection codeである。
【0030】
(ID+IED+RSV)付加回路・スクランブル回路・EDC付加回路202は、供給されたユーザデータのあるまとまりの先頭にID、IED、RSVを付加し、そのまとまりのユーザデータに対してはスクランブル処理を行ない、さらにその後尾にEDCを付加するものである。この一連の処理がされたデータは、IDからEDCまでで2064バイト(172バイト×12行 :セクタと呼ばれる。後述する図4参照)になり、行に沿って順にPIパリティ生成回路203に供給される。
【0031】
PIパリティ生成回路203は、供給されるデータの172バイトごとに10バイトの第1のパリティとしてのPIパリティを所定の手順により生成し付加するものである。10バイトのPIパリティの付加されたデータ(182バイト)はRAM制御部206を介してRAM207に格納される。RAM207へのこのような格納が192回(12行×16回)繰り返されると、ひとつの単位(POパリティなしのECCブロック)となる。RAM207は、したがって、少なくとも34944バイト(182バイト(182列)×192行)の容量がある(後述する図6参照)。
【0032】
10バイトのPIパリティの付加されたデータは、POパリティ生成回路204にも供給される。POパリティ生成回路204は、PIパリティ生成回路203の出力のRAM207への格納と並行して、所定の手順により第2のパリティとしてのPOパリティを生成するものである。並行してPOパリティを生成するので、RAM207に34944バイトのデータ格納が完了した時点で、これらのデータに付加すべきPOパリティも生成される。POパリティは、34944バイト(182×192)の縦方向192バイトに対して16バイトずつ生成され、上記ひとつの単位に対応して16行×182=2912バイトのデータサイズとなる。
【0033】
POパリティ用バッファ205は、POパリティ生成回路204がPOパリティを生成するために必要なバッファとして機能するメモリである。その容量はちょうど上記の16行×182=2912バイトである。すなわち、POパリティ生成回路204は、POパリティ用バッファ205をワークエリアとして用い、PIパリティ生成回路203の出力のRAM207への34944バイトのデータ格納が完了した時点で格納されたデータが、POパリティとなるようにデータを出し入れしながら計算を行なう。生成されたPOパリティは、その後POパリティ用バッファ205からPOパリティインターリーブ用セレクタ211に導かれる。
【0034】
RAM制御部206は、RAM207へのデータ書き込み、読み出しのアドレス制御を行ない、所定のアドレスに所定のデータを書き込み、所定のデータを所定のアドレスから読み出すものである。書き込みは、PIパリティ生成回路203からメモリとしてのRAM207へなされ、読み出しは、RAM207からPOパリティインターリーブ用セレクタ211に対してなされる。RAM207は、上記のように基本的に34944バイト(182バイト×192行)のデータを格納するものである。
【0035】
POパリティインターリーブ用セレクタ211は、POパリティ用バッファ205からおよびRAM制御部206を介してRAM207から接続され、RAM207に格納された横方向182バイトの12行ごとにPOパリティの1行分を付加して(インターリーブして)出力するものである。POパリティのこのようなインターリーブは規格として定められている。POパリティの付加されたデータは変調回路208に供給される。
【0036】
変調回路208は、供給されたデータに対して、DVD記録の規格として定められている8/16変換(8ビットから16ビットへの変換)を行ないさらにバイナリデータ(1ビット幅)として出力するものである。出力されたデータは記録補償回路209に供給される。記録補償回路209は、記録対応ディスク212への記録再生で生じる物理的な伝送特性を補償するため、供給されたバイナリデータ信号に記録補償処理を行なう。記録補償されたバイナリデータ信号はPUH210に供給される。
【0037】
PUH210は、供給されたバイナリデータ信号に従ってレーザドライバを駆動し、レーザ光により記録対応ディスク212にその信号を記録する。記録対応ディスク212は、PUH210によりバイナリデータが書き込まれるリムーバブルなメディアである。
【0038】
図2は、図1に示す記録系構成によりなされる処理手順を機能的に説明する機能ブロック図である。図3は、ひとつのECCブロックの構成を示す図である。図4は、図3に示すECCブロックにおけるPIおよびPOパリティを除いた部分(横縦のブロック構造の情報データ部分)を構成する単位であるセクタ(16セクタで図3に示す情報データになる)の内部構成を示す図である。
【0039】
また、図5は、図1中に示すPIパリティ生成回路203の具体的な構成例を示す図である。図6は、図1中に示すRAM207に格納されるデータの構成を示す図である。図7は、図1中に示すPOパリティ生成回路204の構成および動作をやや詳細に説明するブロック図である。図8は、図7に示すPOパリティ生成回路などの動作フローを示す流れ図である。
【0040】
以下、図1とともに、図2ないし図8をも必要に応じて参照し、本実施形態に係るECCエンコード装置の動作説明を行なう。
【0041】
図1において、ホスト201から転送されてきたユーザデータは、まず(ID+IED+RSV)付加回路・スクランブル回路・EDC付加回路202に入力される。上記回路202は、ユーザデータ2048バイト単位で動作し、図4に示される2064バイトのデータであるセクタデータ構成に、ユーザデータを変換して出力する。ただし、スクランブル処理だけはユーザデータに相当する図示のメインデータのみに施される。上記回路202では、図2に示す処理手順300から304まで処理されることになる。
【0042】
一方、上記回路202の出力データ単位は、動作データ単位2064バイトではなくその1/12であり、図4に示すセクタの1行分に相当する172バイト単位である。この172バイトのデータがPIパリティ生成回路203に順次転送される。PIパリティ生成回路203では、この172バイトのデータからPI方向のパリティデータ10バイトを計算して末尾に付加し、182バイトの符号語を生成する。
【0043】
ここでPIパリティの生成方法について説明する。DVD規格におけるガロア体による原始多項式は以下の式で定義されている。
P(x)=x8+x4+x3+x2+1
また、PIパリティの生成多項式は以下のような式となる。
これはα0〜α9までの連続する10個の成分が根となる符号系列を生成するための式である。PIパリティを付加するには、この生成多項式で172バイトからなる情報多項式を割り、その余りを情報多項式に付加すればよい。
【0044】
このような付加処理を回路的に行なうには、図5に示すような構成を有するPIパリティ生成回路(第1の計算回路)を用いることができる。このPIパリティ生成回路は、シフトレジスタによる除算回路を表しており、図中のDがシフトレジスタ54、…57を、×αnがガロア体の乗算回路51、…53(ガロア乗算器)を、それぞれを示している。符号58、59、60等は排他的論理和を求める演算回路(排他的論理和ゲート)である。なお、図5に示す構成による各部の演算やレジスト操作は、8ビット(1バイト)をひとつのデータ単位として行なう。
【0045】
動作としては、まず、SWaを閉じてSWbを1側に倒し、入力端子から情報データHx(x=0〜171)を順にシフトレジスタ54、…57に入力していく。また、同時に出力端子(SWbの共通端側)から入力データをそのまま出力させていく。172バイト全てのデータを入力および出力し終えたら、SWaを開放してSWbを2側に倒し、シフトレジスタ54、…57内に生成されたパリティデータ10バイトをさらに出力端子より順次出力していく。これによりパリティ付データIx(0〜181)が生成される。
【0046】
182バイトの出力データは、RAM制御部206を通過してRAM207に順次格納されていき、この動作を192回繰り返すことによって図6に示すようなPOパリティなしのECCブロック(182バイト×192行)が生成される。なお、メモリとしてのRAM207には大容量で安価なD−RAMを用いるのが通常は得策である。
【0047】
また一方、この182バイト×192行の出力データはRAM207への格納と並行してPOパリティ生成回路204にも転送されており、POパリティ生成回路204では、PO系列の182列におけるパリティ計算をリアルタイムで行なっている。ここでPOパリティの生成方法について説明する。
【0048】
POパリティの生成多項式はPIと同様に以下のような式で表すことができる。
【0049】
これは、α0〜α15までの連続する16個の成分が根となる符号系列を生成するための式であることを表している。POパリティ計算の原理自体はPIパリティの場合とほぼ同様であるが、POパリティ生成回路204の構成は、PIパリティ生成回路203と同様とするわけにはいかない。これは、PI系列がECCブロックの行方向、つまりデータストリーム方向の系列であり、10バイトのPIパリティ生成のために必要な情報データ172バイトが連続で転送されるのに対し、PO系列はECCブロックの列方向の系列であるので必要な情報データが連続では転送されないためである。
【0050】
すなわち、PIパリティ生成回路203は連続する172バイトからPIパリティを計算すればよいのに対し、POパリティ16バイトを生成するために必要な情報データ192バイトは、受信データ182バイトごとに1バイトしか得られない。さらに、他の181バイトは各々異なったPO列の情報データである。そこで、POパリティ生成回路204は、入力データJx(182バイト×192行)を用いて182列分のPOパリティ計算を、入力1バイトごとに随時切り替えながら計算するように構成する。
【0051】
ここで、POパリティ生成回路204の構成および動作について図7、図8を参照して説明する。図7は、図1中に示すPOパリティ生成回路204の構成および動作をやや詳細に説明するブロック図である。図8は、図7に示すPOパリティ生成回路などの動作フローを示す流れ図である。図7において、図1中に示した構成要素と同一のものには同一符号を付してある。
【0052】
入力データJx(182バイト×192行)は、1バイト単位でPOパリティ生成コントローラ701とPOパリティ計算回路702(第2の計算回路)に転送される。POパリティ生成コントローラ701は、182バイトカウンタを有し、入力された情報データがどのPO列であるか認識してPOパリティ計算回路702とPOパリティ用バッファ205の入出力とをコントロールしている。ここでPOパリティ用バッファ205の入出力のコントロールは、インターフェース703を介してなされる。
【0053】
POパリティ計算回路702は、内部にD0〜D15の16個のレジスタとガロア乗算器とを有し、図7中のPOパリティ計算回路702下に示した表のように除算計算を行なっている(図8のステップ801)。この除算計算は、図5に示したPIパリティ回路と同様の構成原理によるものである。図7中の表において、Dnaが計算後のDnの値である(n=0〜15)。
【0054】
計算すべきPO列は1バイトごとに切り替わるため、上記16個のレジスタの内部データも1バイトごとにPOパリティ用バッファ205に退避させる必要がある(ステップ804)。そして、182バイト後に同一PO列の情報データが転送されてきたら、上記バッファ205より途中結果を読み出し(ステップ802)、内部のレジスタD0〜D15へデータを移行させ、再度POパリティ計算を行う(ステップ803)。この動作を192回繰り返すことで(ステップ805のY)、PO系列の1列のPOパリティ計算が完成する。
【0055】
さらに同様の計算を残り181のPO列に対しても連続で行なっており、入力データJx(182バイト×192行)が全て入力された時点で、全てのPO列におけるPOパリティ計算が終了し、パリティデータはPOパリティ用バッファ205に格納された状態となる。これと同時にJxのRAM207への格納も終了している。すなわち、この時点で、図3に示すECCブロックのうち情報データおよびPIパリティの部分がRAM207に格納され、POパリティの部分がPOパリティ用バッファ205に格納された状態となる。
【0056】
なお、図3に示すECCブロックはDVD規格であり、そのPO方向の誤り訂正符号は、符号長208バイト、情報長192バイト、最小距離17であり、PI方向の誤り訂正符号は、符号長182バイト、情報長172バイト、最小距離11である。
【0057】
続いて、ECCエンコード処理が終了したECCブロックデータに対してPOパリティインターリーブ用セレクタ211によりインターリーブ処理を施し、これを変調回路208に転送する。インターリーブ処理は、PIパリティ付セクタデータ2184バイト(182バイト×12行)ごとにPOパリティ部のPI方向データ182バイトを付加していく処理で、16セクタ分行なう。この実施形態においては、RAM制御部206からの出力であるPIパリティ付セクタデータ2184バイトと、POパリティ用バッファ205からの出力182バイトをインターリーブ用セレクタ211で16セクタごとに切り替えて行なう。
【0058】
以上の処理で、図2における処理手順306までが終了する。すなわち、上記16セクタに対応して16の記録フレームが生成される。
【0059】
なお、インターリーブ処理の別の形態として、POパリティ用バッファ205内に完成されたPOパリティデータを一度RAM制御部206を介してRAM207内へインターリーブ処理を施すように格納してもよい。この場合には、RAM207の容量は、POパリティデータをも格納できるような大きさにしておく。これにより、RAM207に格納されたデータは、POパリティインターリーブ用セレクタ211を介することなく変調回路208へ出力することができる。ただし、上記セレクタ211を用いる場合よりもRAM207へのアクセス回数は増える。
【0060】
インターリーブの後、図2における処理手順307までの処理として、変調回路208において、転送されたデータに対して同期コード(ECCブロックひとつを26の同期フレームにする)を付加し、DVDの変調規則である8/16変調処理を行い、記録補償回路209へ転送する。記録補償回路209では、変調回路208からのバイナリ変調データ信号に記録補償を施す。PUH210では、記録補償されたバイナリ変調データ信号に基づきレーザードライバを駆動させ、記録対応ディスク212上に記録マークを形成していく。
【0061】
以上のように、本実施形態におけるECCエンコード装置では、PIパリティ生成計算およびPOパリティ生成計算を、ECC用データのRAM207へのデータ格納処理と並行して行なうことで、パリティ計算のためのRAM207からの情報データ読み出し/書き込み処理が全く省かれる。これにより、高倍速化を容易に可能とするECCエンコード処理が実現できる。
【0062】
次に、本発明の別の実施形態に係るECCエンコード装置について図9を参照して説明する。図9は、本発明の別の実施形態に係るECCエンコード装置を記録型DVD装置に適用した場合の記録系構成を示すブロック図である。図9において、すでに説明した構成要素と同一のものには同一符号を付してある。以下ではその部分の重複を避けて説明する。
【0063】
この実施形態では、PIパリティの生成と並行するPOパリティの生成に少なくとも「POシンドローム生成回路」および「ECCデコード回路」を用いる。これらの回路自体は、入出力される信号という観点では、DVD装置の再生回路で一般的に用いられているものと同一の機能である。さらに、「POシンドローム生成回路」を「POシンドローム用バッファ」と組み合わせることにより、RAM207へのデータ格納と並行して「POシンドローム生成回路」を動作させ、パリティ計算のためのRAM207へアクセスを省略できるようにしたものである。
【0064】
図9に示すように、この記録型DVD装置は、すでに説明した構成要素のほか、POシンドローム生成回路904、POシンドローム用バッファ905、ECCデコード回路906を有し、これらが図1に示した実施形態のPOパリティ生成回路204およびPOパリティ用バッファ205の代わりに設けられる。
【0065】
POシンドローム生成回路904は、PIパリティ生成回路203の出力のRAM207への格納と並行して、所定の手順によりPOシンドロームを生成するものである。並行してPOシンドロームを生成するので、RAM207に34944バイト(182バイト×192行)のデータ格納が完了した時点で、POシンドロームが生成される。POシンドロームは、34944バイトの縦方向192バイト(仮想的に加えた適当な16バイトを含めて208バイト)に対して16バイトずつ生成され、ひとつのECCブロックについて16行×182=2912バイトのデータサイズになる。
【0066】
POシンドローム用バッファ905は、RAM207へのデータ格納と並行して、POシンドローム生成回路904がPOシンドロームを上記のように生成するために必要なバッファとして機能するメモリである。そのサイズはちょうど上記の16行×182=2912バイトである。すなわち、POシンドローム生成回路204は、POシンドローム用バッファ905をワークエリアとして用い、PIパリティ生成回路203の出力のRAM207への34944バイトのデータ格納が完了した時点で格納されたデータが、POシンドロームとなるようにデータを出し入れしながら計算を行なう。
【0067】
ECCデコード回路906は、POシンドローム用バッファ905に格納されたPOシンドロームに基づきイレージャ訂正を行なうものである。このイレージャ訂正により、POシンドロームの生成時に適当に加えたデータの領域にPOパリティ(16行×182=2912バイト)が生成される。生成されたPOパリティは、POシンドローム用バッファ905に上書き格納される。上書き格納されたPOパリティは、その後POシンドローム用バッファ905からPOパリティインターリーブ用セレクタ211に導かれる。
【0068】
図10は、図9中に示すPOシンドローム生成回路904の構成および動作をやや詳細に説明するブロック図である。図11は、図10中に示すPOシンドローム計算回路1002の具体的な構成例を示す図である。図12は、図10に示すPOシンドローム生成回路などの動作フローを示す流れ図である。
【0069】
以下、図9とともに、図10ないし図12をも必要に応じて参照し、本実施形態に係るECCエンコード装置の動作説明を行なう。
【0070】
図9において、PIパリティ生成回路203の182バイト×192行の出力データはRAM207への格納と並行してPOシンドローム生成回路904にも転送されており、POシンドローム生成回路904では、PO系列の182列におけるシンドローム計算を1バイトごとに切り替えてリアルタイムで行なっている。PO系列の1データ列におけるシンドロームS0〜S15は以下に示す式で計算することができる。ただし、Ix(x=0〜207)はここではPO系列の符号データ列208バイトを表す。
S0=I0+I1+…+I206+I207
S2=I0α207+I1α206+…+I206α+I207
・
・
・
S15=I0α15×207+I1α15×206+…+I206α15+I207
【0071】
また、これらの計算式でもわかるようにシンドロームを計算するためには208バイトの符号データ列が必要であり、入力されてくる192バイトでは16バイト分足りない。不足分の16バイトのデータは後のECCデコード処理によって訂正されると結果としてPOパリティになるので当初は任意のデータで構わない。ここでは、これを0データで埋めることにより計算処理の効率的を図る。
【0072】
不足分の16バイトを0データとして処理するためのPOシンドローム計算回路1002(第2の計算回路:図10を参照)を図11を用いて説明する。図11において、破線で囲まれた部分は、シンドロームを生成するため再生回路で通常用いられている周知の部分である。
【0073】
すなわち、フリップフロップ(レジスタDx 、x=0〜15)112〜118それぞれの出力をガロア乗算器115〜119に導き(ただしフリップフロップ112についてはガロア乗算器は「1」に相当)、ガロア乗算器115〜119等の出力を排他的論理和ゲート111〜117の一方の入力とする。排他的論理和ゲート111〜117の他方の入力側には入力データIxが共通に入力され、排他的論理和ゲート111〜117の出力がフリップフロップ(レジスタDx)112〜118それぞれの入力とされる。なお、図11に示す構成による各部の演算や動作は、8ビット(1バイト)をデータ単位として行なう。
【0074】
図11中、破線で囲まれた、フリップフロップ(レジスタDx)112〜118とガロア乗算器115〜119と排他的論理和ゲート111〜117とからそれぞれがなる各回路に192バイトの入力データを順次入力すると、フリップフロップ(レジスタDx)112〜118にはこの192バイトによるシンドローム計算途中結果が以下の式S0a〜S15aのように生成される。
S0a=I0+I1+…+I190+I191
S2a=I0α191+I1α190+…+I190α+I191
・
・
・
S15a=I0α15×191+I1α15×190+…+I190α15+I191
【0075】
この式と上述のシンドローム計算式とを比較し、さらにI192〜I207が0とすると、シンドローム計算を成立させるためには各々のシンドローム計算途中結果に対してα16×m(m=0〜15:シンドローム番号)を乗じればよいことがわかる。このため、図11に示す回路(POシンドローム計算回路1002)においては、192クロック経過後にSW0〜SW15を閉じることで、シンドローム計算を完了させるようガロア乗算器116、…、120が置かれる仕組みとなっている。
【0076】
このような演算を行うPOシンドローム計算回路1002であるが、先に説明した実施形態と同じようにPOシンドローム生成回路904全体としてはPO182列のシンドローム計算を1バイトごとに切り替えて演算していかなければならない。このため、レジスタD0〜D15の内容をPOシンドローム用バッファ905に退避させながら実施する。
【0077】
図10は、図9中に示すPOシンドローム生成回路904の構成および動作をやや詳細に説明するブロック図である。図10中には、POシンドローム生成回路904に対応する部分のほかに、POシンドローム用バッファ905、ECCデコード回路906も示している。
【0078】
入力データJx(182バイト×192行)が1バイト単位でPOシンドローム生成コントローラ1001とPOシンドローム計算回路1002に転送される(図12のステップ1201)。POシンドローム生成コントローラ1001は182バイトカウンタを有し、入力された情報データがどのPO列であるか認識してPOシンドローム計算回路1002とPOシンドローム用バッファ905の入出力をコントロールしている。ここでPOシンドローム用バッファ905の入出力のコントロールは、インターフェース1003を介してなされる。
【0079】
また、計算すべきPO列は1バイトごとに切り替わるため、16個のレジスタDx(x=0〜15)の内部データも1バイトごとにPOシンドローム用バッファ905に退避させる必要がある(ステップ1204)。そして、182バイト後に同一PO列の情報データが転送されてきたら、上記バッファ905より途中結果を読み出し(ステップ1202)、内部のレジスタDx(x=0〜15)へデータを移行させ、再度POシンドローム計算を行う(ステップ1203)。この動作を192回繰り返し、最後に前述した図11のSW0〜SW15を閉じることにより、PO系列の1列のPOシンドローム計算が完成する(ステップ1205のY)。
【0080】
さらに、同様の計算を残りの181のPO列に対しても連続で行なっており、入力データJx(182バイト×192行)が全て入力された時点で、全てのPO列におけるPOシンドローム計算が終了し、シンドロームデータはPOシンドローム用バッファ905に格納された状態となる。これと同時にJxのRAM207への格納も終了している。
【0081】
続いて、作成されたPOシンドロームをバッファ905から読み出してECCデコード回路906に転送し(ステップ1206)、ECCデコード回路906によるエラー訂正処理を行なう(ステップ1207)。言い換えると上記処理(POシンドローム計算回路1002での処理)では0データとして埋めた16バイトを、生成すべきPOパリティ16バイトに変換する。なお、ECCデコード回路906は、周知のようにシンドローム修正回路、ユークリッド計算回路、チェーンサーチ回路などを有するものである。
【0082】
上記エラー訂正処理については、通常、PO系列の訂正能力が8バイトまでであり、8バイトを超えるエラーは訂正することはできないが、エラーの位置情報(イレージャポインタ)を用いれば16バイトまでのエラー訂正処理が可能である。これを消失訂正(イレージャ訂正)と一般的にはいう。この実施形態においては、生成すべきPOパリティの位置が符号列の末尾16バイトと確定しているため、エラー位置からイレージャポインタを生成しておけば訂正処理、つまりPOパリティ生成が可能である。
【0083】
より具体的には、POシンドローム用バッファ905より、所望のシンドロームデータをECCデコードコントローラ1004によって選択して、ECCデコード回路906へ送る。そして、ECCデコード回路906ではイレージャポインタによりシンドローム修正処理を行った後、チェーンサーチ処理によりエラー位置におけるエラーパターン(つまりはPOパリティ)を算出する。
【0084】
次に、ECCデコードコントローラ1004は、算出したPOパリティを、エラー位置に基づいてPOシンドローム用バッファ905上の呼び出してきたシンドローム領域に上書きしていく(ステップ1208)。この処理を全PO系列において実行することによりPOシンドローム用バッファ905には全PO系列のパリティデータが完成する。POシンドローム用バッファ905内に完成されたPOパリティデータは、先の実施形態におけるPOパリティ用バッファ205内に完成されるPOパリティデータと同様にその後の処理に用いられる。
【0085】
なお、ここでの説明では、生成されたPOパリティをシンドローム用バッファ905に書き込む場合について述べたが、RAM制御部206を介してRAM207を書き込んでも構わない。この場合には、RAM207の容量は、POパリティデータをも格納できるような大きさにしておく。RAMへの書き込みの際、POパリティのインターリーブ処理を施すように格納してもよい。
【0086】
以上説明のようにこの実施形態におけるECCエンコード装置では、PIパリティ生成計算とPOシンドローム計算を、ECC用データRAM207へのデータ格納処理と並行して行い、さらにPOパリティ生成のためのECCデコード処理に関してもRAM207へのアクセスが省かれる。これにより、高倍速化を容易に可能とするECCエンコード処理が実現できる。
【0087】
また、POシンドローム回路904やECCデコード回路906、POシンドローム用バッファ905は、再生系の回路として用いることもできる。したがって、記録再生系全体として回路規模を削減するのにも効果がある。
【0088】
また、上記実施形態では、POパリティの方を、シンドローム生成回路を用いてECCデコード回路により生成したが、PIパリティに関しても同様にシンドローム生成回路およびECCデコード回路を用いて生成することができる。この場合には別途PIシンドローム用バッファを設け、また、PIパリティ部のシンドローム計算およびECCデコード回路によるPIパリティ計算の処理手順が追加される。このため処理速度では上記各実施形態に劣るものの、再生系回路との更なる兼用を行なうことで回路規模の削減を図ることができる。
【0089】
【発明の効果】
以上詳述したように、本発明によれば、横方向の第1のパリティの発生・付加と、縦方向の第2のパリティの発生・付加のための処理とが並行的になされる。よって、第1のパリティを付加してデータを一旦メモリに格納する、格納されたデータにアクセスして第2のパリティの発生・付加を行なう、という2段階の処理の必要がないので、ECC生成・付加を高速に行なうことが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るECCエンコード装置を記録型DVD装置に適用した場合の記録系構成を示すブロック図。
【図2】図1に示す記録系構成によりなされる処理手順を機能的に説明する機能ブロック図。
【図3】ひとつのECCブロックの構成を示す図。
【図4】図3に示すECCブロックにおけるPIおよびPOパリティを除いた部分(情報データ部分)を構成する単位であるセクタ(16セクタで図3に示す情報データになる)の内部構成を示す図。
【図5】図1中に示すPIパリティ生成回路203の具体的な構成例を示す図。
【図6】図1中に示すRAM207に格納されるデータの構成を示す図。
【図7】図1中に示すPOパリティ生成回路204の構成および動作をやや詳細に説明するブロック図。
【図8】図7に示すPOパリティ生成回路などの動作フローを示す流れ図。
【図9】本発明の別の実施形態に係るECCエンコード装置を記録型DVD装置に適用した場合の記録系構成を示すブロック図。
【図10】図9中に示すPOシンドローム生成回路904の構成および動作をやや詳細に説明するブロック図。
【図11】図10中に示すPOシンドローム計算回路1002の具体的な構成例を示す図。
【図12】図10に示すPOシンドローム生成回路などの動作フローを示す流れ図。
【符号の説明】
51、52、53…ガロア乗算器 54、55、56、57…シフトレジスタ58、59、60…排他的論理和ゲート 111、113、117…排他的論理和ゲート 112、114、118…レジスタ 115、119…ガロア乗算器 116、120…ガロア乗算器 201…ホスト 202…(IE+IED+RSV)付加回路・スクランブル回路・EDC付加回路 203…PIパリティ生成回路 204…POパリティ生成回路 205…POパリティ用バッファ206…RAM制御部 207…RAM 208…変調回路 209…記録補償回路 210…ピックアップヘッド 211…POパリティインターリーブ用セレクタ 212…記録対応ディスク 701…POパリティ生成コントローラ702…POパリティ計算回路 703…インターフェース 904…POシンドローム生成回路 905…POシンドローム用バッファ 906…ECCデコード回路 1001…POシンドローム生成コントローラ 1002…POシンドローム計算回路 1003…インターフェース 1004…ECCデコードコントローラ
【発明の属する技術分野】
本発明は、ディジタルデータのエラーを訂正するためのエラー訂正符号(ECC:error correction code)を記録ディジタルデータに付加するECCエンコード方法および装置に係り、特に、ECC付加を高速に行なうのに適するECCエンコード方法および装置に関する。
【0002】
【従来の技術】
通信、コンピュータ、放送、映像メディアなどのディジタル化された各分野においては、データの信頼性の向上、さらには記録システムにおける高記録密度化のために一般にエラー訂正符号が用いられている。特に最近では、データ処理能力の向上に伴い高度な訂正能力を有するエラー訂正符号が用いられるようになってきている。
【0003】
高画質な映像を提供するDVD(digital versatile disc)再生装置においても、訂正能力の高いリードソロモン(RS)積符号と呼ばれるエラー訂正符号が用いられ、伝送系で発生したエラーが訂正できるようになっている。積符号は、縦横の異なる方向のエラー訂正符号を組み合わせたもので、情報データのブロックの横方向に対して付加された内符号のPI(parity inner)パリティと、情報データおよびPIパリティからなるブロックの縦方向に対して付加された外符号のPO(parity outer)パリティとからなる。このように構成された情報データ、PIパリティ、POパリティからなるブロックがECCブロックである。
【0004】
このようなECCブロックを利用して行われるDVD再生時のエラー訂正処理の構成および手順例としては、下記特許文献1に記載の方法がある。また、最近普及の目覚しい記録型DVD装置で必要となるECCエンコード処理、つまり情報データに対してPIおよびPOパリティを生成し付加するパリティ生成処理方法の例としては、下記特許文献2に記載のものがある。
【0005】
【特許文献1】
特開2002−74861号公報
【特許文献2】
特開2001−319431号公報
【0006】
【発明が解決しようとする課題】
上記のような記録型DVD装置は、AV(audio visual)用途を中心に普及し始めている。特に最近ではアクセス性に富み大容量なHDD(hard disc drive)と、保存・リムーバブル用途に特化した記録型DVDとの組み合わせによるハイブリッド型DVDレコーダーが人気を集めている。
【0007】
DVDはCD(compact disc)と比較して記憶容量が大きいことが特長の一つであるが、一方で、大容量であるためデータを等倍速(例えば映像でいえば通常の再生での速度)で記録する場合には、その書き込み処理に膨大な時間が必要となる。つまり、上記DVDレコーダーにおいて、HDDに記録された映像データのDVDへのダビングに、ユーザは長時間待たされることになる。
【0008】
このため、記録型DVD装置においても、現在主流の記録型CD装置のように、高速にディスク上へのデータ記録を行う「高倍速記録」対応が望まれている。こうした「高倍速記録」を装置側で対応するためには、書き込み処理時に行われるECCエンコード処理を高速処理化させる必要があり、例えば、特に高速化のボトルネックとなっているECC用データバッファ(一般的にはD−RAM(dynamic − random access memory )が用いられている)へのアクセス回数をいかに低減させるかが問題となる。
【0009】
本発明は、上記の状況を考慮してなされたもので、ディジタルデータのエラーを訂正するためのECCを記録ディジタルデータに付加するECCエンコード方法および装置において、ECC生成・付加を高速に行なうことが可能なECCエンコード方法および装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記の課題を解決するため、本発明に係るECCエンコード方法は、横縦のブロック構造のデータについて横方向1行の第1のパリティを第1の計算回路で計算して横方向に付加し、これを各行についてそれぞれ行なう第1のステップと、前記第1のステップがなされる間に、前記第1のパリティが付加されたデータについて縦方向1列の第2のパリティを第2の計算回路で計算し、これを各列についてそれぞれ行なう第2のステップとを具備することを特徴とする。
【0011】
また、本発明に係る別のECCエンコード方法は、横縦のブロック構造のデータについて横方向1行の第1のパリティを第1の計算回路で計算して横方向に付加し、これを各行についてそれぞれ行なう第1のステップと、前記第1のステップがなされる間に、前記第1のパリティが付加されたデータについて縦方向1列のシンドロームを第2の計算回路で計算し、これを各列についてそれぞれ行なう第2のステップと、前記計算されたシンドロームから縦方向の第2のパリティを生成する第3のステップとを具備することを特徴とする。
【0012】
すなわち、いずれの方法も、横方向の第1のパリティの発生・付加と、縦方向の第2のパリティの発生・付加のための処理とが並行的になされる。よって、第1のパリティを付加してデータを一旦メモリに格納する、格納されたデータにアクセスして第2のパリティの発生・付加を行なう、という時間的に縦続の2段階の処理が必要ない。時間的に縦続の処理に要するメモリアクセスは処理速度を低下させる大きな原因になる。したがって、本発明によれば、ECC生成・付加を高速に行なうことが可能になる。
【0013】
なお、後者の方法では、第2のパリティを計算するのにシンドロームを計算し計算で得られたシンドロームからこれを生成するようにしている。シンドローム計算は再生回路(ECCデコード回路)で必須であり、記録再生を要する装置では回路の兼用化によりその規模を削減する効果が得られ整合性がよい。
【0014】
また、本発明に係るECCエンコード装置は、横縦のブロック構造のデータについて横方向1行の第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なう第1のパリティ生成回路と、前記第1のパリティの計算を前記各行についてそれぞれ行なう間に、前記第1のパリティが付加されたデータについて縦方向1列の第2のパリティを計算し、これを各列についてそれぞれ行なう第2のパリティ生成回路とを具備することを特徴とする。
【0015】
また、本発明に係る別のECCエンコード装置は、横縦のブロック構造のデータについて横方向1行の第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうパリティ生成回路と、前記第1のパリティの計算を前記各行についてそれぞれ行なう間に、前記第1のパリティが付加されたデータについて縦方向1列のシンドロームを計算し、これを各列についてそれぞれ行なうシンドローム生成回路と、前記計算されたシンドロームから縦方向の第2のパリティを生成する回路とを具備することを特徴とする。
【0016】
これらの装置は、上記の各方法を実行するためのハードウエア構成を備えたものである。
【0017】
【発明の実施の形態】
本発明に係るECCエンコード方法の実施態様として、前記第2のステップは、前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをバッファとして用い該バッファと前記第2の計算回路との間で途中結果を往復しながら行なうようにすると都合がよい。これは、第2の計算回路では縦方向のデータでパリティ計算(またはシンドローム計算)を行なうためである。すなわち、縦方向のデータは飛び飛びにしか得られないので、横方向のアドレスで管理されたメモリをバッファとして用いそれとのデータ出し入れで所定の計算を行なう。
【0018】
また、実施態様として、前記第1のパリティが付加された前記データをメモリに順次格納するステップをさらに具備するようにしてもよい。メモリに一時格納するものである。
【0019】
また、ここで、実施態様として、前記第2のステップで計算された第2のパリティを、前記メモリに格納された前記データに対してインターリーブするように前記メモリに格納するステップをさらに具備するようにしてもよい。一時格納のメモリを第2のパリティのインターリーブ処理に利用するものである。
【0020】
または、実施態様として、前記メモリに格納された前記第1のパリティが付加された前記データを該メモリから読み出しながら前記計算された第2のパリティをインターリーブするステップをさらに具備するようにしてもよい。一時格納のメモリからデータを順次出力するのと並行して第2のパリティのインターリーブを行なうものである。これによれば、メモリへのアクセスが増加せず高速化に一層都合がよい。
【0021】
また、実施態様として、前記第1のステップは、前記横縦のブロック構造のデータについて横方向1行のシンドロームを生成し、該生成されたシンドロームから横方向の前記第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうようにしてもよい。これは、第1のパリティの生成に、シンドロームの計算を利用するものである。
【0022】
また、本発明に係るECCエンコード装置の実施態様として、前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをさらに具備し、前記第2のパリティ生成回路は、前記メモリをバッファとして用い該バッファとの間で途中結果を往復しながら前記第2のパリティの計算を行なうようにすると都合がよい。
【0023】
また、実施態様として、前記第1のパリティが付加されたデータを格納するメモリをさらに具備するようにしてもよい。
【0024】
また、ここで、実施態様として、前記メモリに格納された前記データを該メモリから読み出しながら前記計算された第2のパリティをインターリーブするためのセレクタをさらに具備するようにしてもよい。
【0025】
また、実施態様として、前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをさらに具備し、前記シンドローム生成回路は、前記メモリをバッファとして用い該バッファとの間で途中結果を往復しながら前記シンドロームの計算を行なうようにすると都合がよい。
【0026】
また、実施態様として、前記パリティ生成回路は、前記横縦のブロック構造のデータについて横方向1行のシンドロームを生成し、該生成されたシンドロームから横方向の前記第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうようにしてもよい。
【0027】
以上のECCエンコード装置としての実施態様は、上記ECCエンコード方法としての実施態様を実現するためのハードウエアを備えたものである。
【0028】
以上を踏まえ、以下では本発明の実施形態を図面を参照しながら説明する。図1は、本発明の一実施形態に係るECCエンコード装置を記録型DVD装置に適用した場合の記録系構成を示すブロック図である。図1に示すように、この記録型DVD装置は、記録系構成として、ホスト201、(ID+IED+RSV)付加回路・スクランブル回路・EDC付加回路202、PIパリティ生成回路203、POパリティ生成回路204、POパリティ用バッファ205、RAM制御部206、RAM207、変調回路208、記録補償回路209、ピックアップヘッド(PUH)210、POパリティインターリーブ用セレクタ211、記録対応ディスク212を有する。
【0029】
ホスト201は、記録すべきユーザデータをバイト幅(8ビット幅)で(ID+IED+RSV)付加回路・スクランブル回路・EDC付加回路202に供給するものである。ここで、IDはidentification data、IEDはID error detection code、RSVはreserved、EDCはerror detection codeである。
【0030】
(ID+IED+RSV)付加回路・スクランブル回路・EDC付加回路202は、供給されたユーザデータのあるまとまりの先頭にID、IED、RSVを付加し、そのまとまりのユーザデータに対してはスクランブル処理を行ない、さらにその後尾にEDCを付加するものである。この一連の処理がされたデータは、IDからEDCまでで2064バイト(172バイト×12行 :セクタと呼ばれる。後述する図4参照)になり、行に沿って順にPIパリティ生成回路203に供給される。
【0031】
PIパリティ生成回路203は、供給されるデータの172バイトごとに10バイトの第1のパリティとしてのPIパリティを所定の手順により生成し付加するものである。10バイトのPIパリティの付加されたデータ(182バイト)はRAM制御部206を介してRAM207に格納される。RAM207へのこのような格納が192回(12行×16回)繰り返されると、ひとつの単位(POパリティなしのECCブロック)となる。RAM207は、したがって、少なくとも34944バイト(182バイト(182列)×192行)の容量がある(後述する図6参照)。
【0032】
10バイトのPIパリティの付加されたデータは、POパリティ生成回路204にも供給される。POパリティ生成回路204は、PIパリティ生成回路203の出力のRAM207への格納と並行して、所定の手順により第2のパリティとしてのPOパリティを生成するものである。並行してPOパリティを生成するので、RAM207に34944バイトのデータ格納が完了した時点で、これらのデータに付加すべきPOパリティも生成される。POパリティは、34944バイト(182×192)の縦方向192バイトに対して16バイトずつ生成され、上記ひとつの単位に対応して16行×182=2912バイトのデータサイズとなる。
【0033】
POパリティ用バッファ205は、POパリティ生成回路204がPOパリティを生成するために必要なバッファとして機能するメモリである。その容量はちょうど上記の16行×182=2912バイトである。すなわち、POパリティ生成回路204は、POパリティ用バッファ205をワークエリアとして用い、PIパリティ生成回路203の出力のRAM207への34944バイトのデータ格納が完了した時点で格納されたデータが、POパリティとなるようにデータを出し入れしながら計算を行なう。生成されたPOパリティは、その後POパリティ用バッファ205からPOパリティインターリーブ用セレクタ211に導かれる。
【0034】
RAM制御部206は、RAM207へのデータ書き込み、読み出しのアドレス制御を行ない、所定のアドレスに所定のデータを書き込み、所定のデータを所定のアドレスから読み出すものである。書き込みは、PIパリティ生成回路203からメモリとしてのRAM207へなされ、読み出しは、RAM207からPOパリティインターリーブ用セレクタ211に対してなされる。RAM207は、上記のように基本的に34944バイト(182バイト×192行)のデータを格納するものである。
【0035】
POパリティインターリーブ用セレクタ211は、POパリティ用バッファ205からおよびRAM制御部206を介してRAM207から接続され、RAM207に格納された横方向182バイトの12行ごとにPOパリティの1行分を付加して(インターリーブして)出力するものである。POパリティのこのようなインターリーブは規格として定められている。POパリティの付加されたデータは変調回路208に供給される。
【0036】
変調回路208は、供給されたデータに対して、DVD記録の規格として定められている8/16変換(8ビットから16ビットへの変換)を行ないさらにバイナリデータ(1ビット幅)として出力するものである。出力されたデータは記録補償回路209に供給される。記録補償回路209は、記録対応ディスク212への記録再生で生じる物理的な伝送特性を補償するため、供給されたバイナリデータ信号に記録補償処理を行なう。記録補償されたバイナリデータ信号はPUH210に供給される。
【0037】
PUH210は、供給されたバイナリデータ信号に従ってレーザドライバを駆動し、レーザ光により記録対応ディスク212にその信号を記録する。記録対応ディスク212は、PUH210によりバイナリデータが書き込まれるリムーバブルなメディアである。
【0038】
図2は、図1に示す記録系構成によりなされる処理手順を機能的に説明する機能ブロック図である。図3は、ひとつのECCブロックの構成を示す図である。図4は、図3に示すECCブロックにおけるPIおよびPOパリティを除いた部分(横縦のブロック構造の情報データ部分)を構成する単位であるセクタ(16セクタで図3に示す情報データになる)の内部構成を示す図である。
【0039】
また、図5は、図1中に示すPIパリティ生成回路203の具体的な構成例を示す図である。図6は、図1中に示すRAM207に格納されるデータの構成を示す図である。図7は、図1中に示すPOパリティ生成回路204の構成および動作をやや詳細に説明するブロック図である。図8は、図7に示すPOパリティ生成回路などの動作フローを示す流れ図である。
【0040】
以下、図1とともに、図2ないし図8をも必要に応じて参照し、本実施形態に係るECCエンコード装置の動作説明を行なう。
【0041】
図1において、ホスト201から転送されてきたユーザデータは、まず(ID+IED+RSV)付加回路・スクランブル回路・EDC付加回路202に入力される。上記回路202は、ユーザデータ2048バイト単位で動作し、図4に示される2064バイトのデータであるセクタデータ構成に、ユーザデータを変換して出力する。ただし、スクランブル処理だけはユーザデータに相当する図示のメインデータのみに施される。上記回路202では、図2に示す処理手順300から304まで処理されることになる。
【0042】
一方、上記回路202の出力データ単位は、動作データ単位2064バイトではなくその1/12であり、図4に示すセクタの1行分に相当する172バイト単位である。この172バイトのデータがPIパリティ生成回路203に順次転送される。PIパリティ生成回路203では、この172バイトのデータからPI方向のパリティデータ10バイトを計算して末尾に付加し、182バイトの符号語を生成する。
【0043】
ここでPIパリティの生成方法について説明する。DVD規格におけるガロア体による原始多項式は以下の式で定義されている。
P(x)=x8+x4+x3+x2+1
また、PIパリティの生成多項式は以下のような式となる。
これはα0〜α9までの連続する10個の成分が根となる符号系列を生成するための式である。PIパリティを付加するには、この生成多項式で172バイトからなる情報多項式を割り、その余りを情報多項式に付加すればよい。
【0044】
このような付加処理を回路的に行なうには、図5に示すような構成を有するPIパリティ生成回路(第1の計算回路)を用いることができる。このPIパリティ生成回路は、シフトレジスタによる除算回路を表しており、図中のDがシフトレジスタ54、…57を、×αnがガロア体の乗算回路51、…53(ガロア乗算器)を、それぞれを示している。符号58、59、60等は排他的論理和を求める演算回路(排他的論理和ゲート)である。なお、図5に示す構成による各部の演算やレジスト操作は、8ビット(1バイト)をひとつのデータ単位として行なう。
【0045】
動作としては、まず、SWaを閉じてSWbを1側に倒し、入力端子から情報データHx(x=0〜171)を順にシフトレジスタ54、…57に入力していく。また、同時に出力端子(SWbの共通端側)から入力データをそのまま出力させていく。172バイト全てのデータを入力および出力し終えたら、SWaを開放してSWbを2側に倒し、シフトレジスタ54、…57内に生成されたパリティデータ10バイトをさらに出力端子より順次出力していく。これによりパリティ付データIx(0〜181)が生成される。
【0046】
182バイトの出力データは、RAM制御部206を通過してRAM207に順次格納されていき、この動作を192回繰り返すことによって図6に示すようなPOパリティなしのECCブロック(182バイト×192行)が生成される。なお、メモリとしてのRAM207には大容量で安価なD−RAMを用いるのが通常は得策である。
【0047】
また一方、この182バイト×192行の出力データはRAM207への格納と並行してPOパリティ生成回路204にも転送されており、POパリティ生成回路204では、PO系列の182列におけるパリティ計算をリアルタイムで行なっている。ここでPOパリティの生成方法について説明する。
【0048】
POパリティの生成多項式はPIと同様に以下のような式で表すことができる。
【0049】
これは、α0〜α15までの連続する16個の成分が根となる符号系列を生成するための式であることを表している。POパリティ計算の原理自体はPIパリティの場合とほぼ同様であるが、POパリティ生成回路204の構成は、PIパリティ生成回路203と同様とするわけにはいかない。これは、PI系列がECCブロックの行方向、つまりデータストリーム方向の系列であり、10バイトのPIパリティ生成のために必要な情報データ172バイトが連続で転送されるのに対し、PO系列はECCブロックの列方向の系列であるので必要な情報データが連続では転送されないためである。
【0050】
すなわち、PIパリティ生成回路203は連続する172バイトからPIパリティを計算すればよいのに対し、POパリティ16バイトを生成するために必要な情報データ192バイトは、受信データ182バイトごとに1バイトしか得られない。さらに、他の181バイトは各々異なったPO列の情報データである。そこで、POパリティ生成回路204は、入力データJx(182バイト×192行)を用いて182列分のPOパリティ計算を、入力1バイトごとに随時切り替えながら計算するように構成する。
【0051】
ここで、POパリティ生成回路204の構成および動作について図7、図8を参照して説明する。図7は、図1中に示すPOパリティ生成回路204の構成および動作をやや詳細に説明するブロック図である。図8は、図7に示すPOパリティ生成回路などの動作フローを示す流れ図である。図7において、図1中に示した構成要素と同一のものには同一符号を付してある。
【0052】
入力データJx(182バイト×192行)は、1バイト単位でPOパリティ生成コントローラ701とPOパリティ計算回路702(第2の計算回路)に転送される。POパリティ生成コントローラ701は、182バイトカウンタを有し、入力された情報データがどのPO列であるか認識してPOパリティ計算回路702とPOパリティ用バッファ205の入出力とをコントロールしている。ここでPOパリティ用バッファ205の入出力のコントロールは、インターフェース703を介してなされる。
【0053】
POパリティ計算回路702は、内部にD0〜D15の16個のレジスタとガロア乗算器とを有し、図7中のPOパリティ計算回路702下に示した表のように除算計算を行なっている(図8のステップ801)。この除算計算は、図5に示したPIパリティ回路と同様の構成原理によるものである。図7中の表において、Dnaが計算後のDnの値である(n=0〜15)。
【0054】
計算すべきPO列は1バイトごとに切り替わるため、上記16個のレジスタの内部データも1バイトごとにPOパリティ用バッファ205に退避させる必要がある(ステップ804)。そして、182バイト後に同一PO列の情報データが転送されてきたら、上記バッファ205より途中結果を読み出し(ステップ802)、内部のレジスタD0〜D15へデータを移行させ、再度POパリティ計算を行う(ステップ803)。この動作を192回繰り返すことで(ステップ805のY)、PO系列の1列のPOパリティ計算が完成する。
【0055】
さらに同様の計算を残り181のPO列に対しても連続で行なっており、入力データJx(182バイト×192行)が全て入力された時点で、全てのPO列におけるPOパリティ計算が終了し、パリティデータはPOパリティ用バッファ205に格納された状態となる。これと同時にJxのRAM207への格納も終了している。すなわち、この時点で、図3に示すECCブロックのうち情報データおよびPIパリティの部分がRAM207に格納され、POパリティの部分がPOパリティ用バッファ205に格納された状態となる。
【0056】
なお、図3に示すECCブロックはDVD規格であり、そのPO方向の誤り訂正符号は、符号長208バイト、情報長192バイト、最小距離17であり、PI方向の誤り訂正符号は、符号長182バイト、情報長172バイト、最小距離11である。
【0057】
続いて、ECCエンコード処理が終了したECCブロックデータに対してPOパリティインターリーブ用セレクタ211によりインターリーブ処理を施し、これを変調回路208に転送する。インターリーブ処理は、PIパリティ付セクタデータ2184バイト(182バイト×12行)ごとにPOパリティ部のPI方向データ182バイトを付加していく処理で、16セクタ分行なう。この実施形態においては、RAM制御部206からの出力であるPIパリティ付セクタデータ2184バイトと、POパリティ用バッファ205からの出力182バイトをインターリーブ用セレクタ211で16セクタごとに切り替えて行なう。
【0058】
以上の処理で、図2における処理手順306までが終了する。すなわち、上記16セクタに対応して16の記録フレームが生成される。
【0059】
なお、インターリーブ処理の別の形態として、POパリティ用バッファ205内に完成されたPOパリティデータを一度RAM制御部206を介してRAM207内へインターリーブ処理を施すように格納してもよい。この場合には、RAM207の容量は、POパリティデータをも格納できるような大きさにしておく。これにより、RAM207に格納されたデータは、POパリティインターリーブ用セレクタ211を介することなく変調回路208へ出力することができる。ただし、上記セレクタ211を用いる場合よりもRAM207へのアクセス回数は増える。
【0060】
インターリーブの後、図2における処理手順307までの処理として、変調回路208において、転送されたデータに対して同期コード(ECCブロックひとつを26の同期フレームにする)を付加し、DVDの変調規則である8/16変調処理を行い、記録補償回路209へ転送する。記録補償回路209では、変調回路208からのバイナリ変調データ信号に記録補償を施す。PUH210では、記録補償されたバイナリ変調データ信号に基づきレーザードライバを駆動させ、記録対応ディスク212上に記録マークを形成していく。
【0061】
以上のように、本実施形態におけるECCエンコード装置では、PIパリティ生成計算およびPOパリティ生成計算を、ECC用データのRAM207へのデータ格納処理と並行して行なうことで、パリティ計算のためのRAM207からの情報データ読み出し/書き込み処理が全く省かれる。これにより、高倍速化を容易に可能とするECCエンコード処理が実現できる。
【0062】
次に、本発明の別の実施形態に係るECCエンコード装置について図9を参照して説明する。図9は、本発明の別の実施形態に係るECCエンコード装置を記録型DVD装置に適用した場合の記録系構成を示すブロック図である。図9において、すでに説明した構成要素と同一のものには同一符号を付してある。以下ではその部分の重複を避けて説明する。
【0063】
この実施形態では、PIパリティの生成と並行するPOパリティの生成に少なくとも「POシンドローム生成回路」および「ECCデコード回路」を用いる。これらの回路自体は、入出力される信号という観点では、DVD装置の再生回路で一般的に用いられているものと同一の機能である。さらに、「POシンドローム生成回路」を「POシンドローム用バッファ」と組み合わせることにより、RAM207へのデータ格納と並行して「POシンドローム生成回路」を動作させ、パリティ計算のためのRAM207へアクセスを省略できるようにしたものである。
【0064】
図9に示すように、この記録型DVD装置は、すでに説明した構成要素のほか、POシンドローム生成回路904、POシンドローム用バッファ905、ECCデコード回路906を有し、これらが図1に示した実施形態のPOパリティ生成回路204およびPOパリティ用バッファ205の代わりに設けられる。
【0065】
POシンドローム生成回路904は、PIパリティ生成回路203の出力のRAM207への格納と並行して、所定の手順によりPOシンドロームを生成するものである。並行してPOシンドロームを生成するので、RAM207に34944バイト(182バイト×192行)のデータ格納が完了した時点で、POシンドロームが生成される。POシンドロームは、34944バイトの縦方向192バイト(仮想的に加えた適当な16バイトを含めて208バイト)に対して16バイトずつ生成され、ひとつのECCブロックについて16行×182=2912バイトのデータサイズになる。
【0066】
POシンドローム用バッファ905は、RAM207へのデータ格納と並行して、POシンドローム生成回路904がPOシンドロームを上記のように生成するために必要なバッファとして機能するメモリである。そのサイズはちょうど上記の16行×182=2912バイトである。すなわち、POシンドローム生成回路204は、POシンドローム用バッファ905をワークエリアとして用い、PIパリティ生成回路203の出力のRAM207への34944バイトのデータ格納が完了した時点で格納されたデータが、POシンドロームとなるようにデータを出し入れしながら計算を行なう。
【0067】
ECCデコード回路906は、POシンドローム用バッファ905に格納されたPOシンドロームに基づきイレージャ訂正を行なうものである。このイレージャ訂正により、POシンドロームの生成時に適当に加えたデータの領域にPOパリティ(16行×182=2912バイト)が生成される。生成されたPOパリティは、POシンドローム用バッファ905に上書き格納される。上書き格納されたPOパリティは、その後POシンドローム用バッファ905からPOパリティインターリーブ用セレクタ211に導かれる。
【0068】
図10は、図9中に示すPOシンドローム生成回路904の構成および動作をやや詳細に説明するブロック図である。図11は、図10中に示すPOシンドローム計算回路1002の具体的な構成例を示す図である。図12は、図10に示すPOシンドローム生成回路などの動作フローを示す流れ図である。
【0069】
以下、図9とともに、図10ないし図12をも必要に応じて参照し、本実施形態に係るECCエンコード装置の動作説明を行なう。
【0070】
図9において、PIパリティ生成回路203の182バイト×192行の出力データはRAM207への格納と並行してPOシンドローム生成回路904にも転送されており、POシンドローム生成回路904では、PO系列の182列におけるシンドローム計算を1バイトごとに切り替えてリアルタイムで行なっている。PO系列の1データ列におけるシンドロームS0〜S15は以下に示す式で計算することができる。ただし、Ix(x=0〜207)はここではPO系列の符号データ列208バイトを表す。
S0=I0+I1+…+I206+I207
S2=I0α207+I1α206+…+I206α+I207
・
・
・
S15=I0α15×207+I1α15×206+…+I206α15+I207
【0071】
また、これらの計算式でもわかるようにシンドロームを計算するためには208バイトの符号データ列が必要であり、入力されてくる192バイトでは16バイト分足りない。不足分の16バイトのデータは後のECCデコード処理によって訂正されると結果としてPOパリティになるので当初は任意のデータで構わない。ここでは、これを0データで埋めることにより計算処理の効率的を図る。
【0072】
不足分の16バイトを0データとして処理するためのPOシンドローム計算回路1002(第2の計算回路:図10を参照)を図11を用いて説明する。図11において、破線で囲まれた部分は、シンドロームを生成するため再生回路で通常用いられている周知の部分である。
【0073】
すなわち、フリップフロップ(レジスタDx 、x=0〜15)112〜118それぞれの出力をガロア乗算器115〜119に導き(ただしフリップフロップ112についてはガロア乗算器は「1」に相当)、ガロア乗算器115〜119等の出力を排他的論理和ゲート111〜117の一方の入力とする。排他的論理和ゲート111〜117の他方の入力側には入力データIxが共通に入力され、排他的論理和ゲート111〜117の出力がフリップフロップ(レジスタDx)112〜118それぞれの入力とされる。なお、図11に示す構成による各部の演算や動作は、8ビット(1バイト)をデータ単位として行なう。
【0074】
図11中、破線で囲まれた、フリップフロップ(レジスタDx)112〜118とガロア乗算器115〜119と排他的論理和ゲート111〜117とからそれぞれがなる各回路に192バイトの入力データを順次入力すると、フリップフロップ(レジスタDx)112〜118にはこの192バイトによるシンドローム計算途中結果が以下の式S0a〜S15aのように生成される。
S0a=I0+I1+…+I190+I191
S2a=I0α191+I1α190+…+I190α+I191
・
・
・
S15a=I0α15×191+I1α15×190+…+I190α15+I191
【0075】
この式と上述のシンドローム計算式とを比較し、さらにI192〜I207が0とすると、シンドローム計算を成立させるためには各々のシンドローム計算途中結果に対してα16×m(m=0〜15:シンドローム番号)を乗じればよいことがわかる。このため、図11に示す回路(POシンドローム計算回路1002)においては、192クロック経過後にSW0〜SW15を閉じることで、シンドローム計算を完了させるようガロア乗算器116、…、120が置かれる仕組みとなっている。
【0076】
このような演算を行うPOシンドローム計算回路1002であるが、先に説明した実施形態と同じようにPOシンドローム生成回路904全体としてはPO182列のシンドローム計算を1バイトごとに切り替えて演算していかなければならない。このため、レジスタD0〜D15の内容をPOシンドローム用バッファ905に退避させながら実施する。
【0077】
図10は、図9中に示すPOシンドローム生成回路904の構成および動作をやや詳細に説明するブロック図である。図10中には、POシンドローム生成回路904に対応する部分のほかに、POシンドローム用バッファ905、ECCデコード回路906も示している。
【0078】
入力データJx(182バイト×192行)が1バイト単位でPOシンドローム生成コントローラ1001とPOシンドローム計算回路1002に転送される(図12のステップ1201)。POシンドローム生成コントローラ1001は182バイトカウンタを有し、入力された情報データがどのPO列であるか認識してPOシンドローム計算回路1002とPOシンドローム用バッファ905の入出力をコントロールしている。ここでPOシンドローム用バッファ905の入出力のコントロールは、インターフェース1003を介してなされる。
【0079】
また、計算すべきPO列は1バイトごとに切り替わるため、16個のレジスタDx(x=0〜15)の内部データも1バイトごとにPOシンドローム用バッファ905に退避させる必要がある(ステップ1204)。そして、182バイト後に同一PO列の情報データが転送されてきたら、上記バッファ905より途中結果を読み出し(ステップ1202)、内部のレジスタDx(x=0〜15)へデータを移行させ、再度POシンドローム計算を行う(ステップ1203)。この動作を192回繰り返し、最後に前述した図11のSW0〜SW15を閉じることにより、PO系列の1列のPOシンドローム計算が完成する(ステップ1205のY)。
【0080】
さらに、同様の計算を残りの181のPO列に対しても連続で行なっており、入力データJx(182バイト×192行)が全て入力された時点で、全てのPO列におけるPOシンドローム計算が終了し、シンドロームデータはPOシンドローム用バッファ905に格納された状態となる。これと同時にJxのRAM207への格納も終了している。
【0081】
続いて、作成されたPOシンドロームをバッファ905から読み出してECCデコード回路906に転送し(ステップ1206)、ECCデコード回路906によるエラー訂正処理を行なう(ステップ1207)。言い換えると上記処理(POシンドローム計算回路1002での処理)では0データとして埋めた16バイトを、生成すべきPOパリティ16バイトに変換する。なお、ECCデコード回路906は、周知のようにシンドローム修正回路、ユークリッド計算回路、チェーンサーチ回路などを有するものである。
【0082】
上記エラー訂正処理については、通常、PO系列の訂正能力が8バイトまでであり、8バイトを超えるエラーは訂正することはできないが、エラーの位置情報(イレージャポインタ)を用いれば16バイトまでのエラー訂正処理が可能である。これを消失訂正(イレージャ訂正)と一般的にはいう。この実施形態においては、生成すべきPOパリティの位置が符号列の末尾16バイトと確定しているため、エラー位置からイレージャポインタを生成しておけば訂正処理、つまりPOパリティ生成が可能である。
【0083】
より具体的には、POシンドローム用バッファ905より、所望のシンドロームデータをECCデコードコントローラ1004によって選択して、ECCデコード回路906へ送る。そして、ECCデコード回路906ではイレージャポインタによりシンドローム修正処理を行った後、チェーンサーチ処理によりエラー位置におけるエラーパターン(つまりはPOパリティ)を算出する。
【0084】
次に、ECCデコードコントローラ1004は、算出したPOパリティを、エラー位置に基づいてPOシンドローム用バッファ905上の呼び出してきたシンドローム領域に上書きしていく(ステップ1208)。この処理を全PO系列において実行することによりPOシンドローム用バッファ905には全PO系列のパリティデータが完成する。POシンドローム用バッファ905内に完成されたPOパリティデータは、先の実施形態におけるPOパリティ用バッファ205内に完成されるPOパリティデータと同様にその後の処理に用いられる。
【0085】
なお、ここでの説明では、生成されたPOパリティをシンドローム用バッファ905に書き込む場合について述べたが、RAM制御部206を介してRAM207を書き込んでも構わない。この場合には、RAM207の容量は、POパリティデータをも格納できるような大きさにしておく。RAMへの書き込みの際、POパリティのインターリーブ処理を施すように格納してもよい。
【0086】
以上説明のようにこの実施形態におけるECCエンコード装置では、PIパリティ生成計算とPOシンドローム計算を、ECC用データRAM207へのデータ格納処理と並行して行い、さらにPOパリティ生成のためのECCデコード処理に関してもRAM207へのアクセスが省かれる。これにより、高倍速化を容易に可能とするECCエンコード処理が実現できる。
【0087】
また、POシンドローム回路904やECCデコード回路906、POシンドローム用バッファ905は、再生系の回路として用いることもできる。したがって、記録再生系全体として回路規模を削減するのにも効果がある。
【0088】
また、上記実施形態では、POパリティの方を、シンドローム生成回路を用いてECCデコード回路により生成したが、PIパリティに関しても同様にシンドローム生成回路およびECCデコード回路を用いて生成することができる。この場合には別途PIシンドローム用バッファを設け、また、PIパリティ部のシンドローム計算およびECCデコード回路によるPIパリティ計算の処理手順が追加される。このため処理速度では上記各実施形態に劣るものの、再生系回路との更なる兼用を行なうことで回路規模の削減を図ることができる。
【0089】
【発明の効果】
以上詳述したように、本発明によれば、横方向の第1のパリティの発生・付加と、縦方向の第2のパリティの発生・付加のための処理とが並行的になされる。よって、第1のパリティを付加してデータを一旦メモリに格納する、格納されたデータにアクセスして第2のパリティの発生・付加を行なう、という2段階の処理の必要がないので、ECC生成・付加を高速に行なうことが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るECCエンコード装置を記録型DVD装置に適用した場合の記録系構成を示すブロック図。
【図2】図1に示す記録系構成によりなされる処理手順を機能的に説明する機能ブロック図。
【図3】ひとつのECCブロックの構成を示す図。
【図4】図3に示すECCブロックにおけるPIおよびPOパリティを除いた部分(情報データ部分)を構成する単位であるセクタ(16セクタで図3に示す情報データになる)の内部構成を示す図。
【図5】図1中に示すPIパリティ生成回路203の具体的な構成例を示す図。
【図6】図1中に示すRAM207に格納されるデータの構成を示す図。
【図7】図1中に示すPOパリティ生成回路204の構成および動作をやや詳細に説明するブロック図。
【図8】図7に示すPOパリティ生成回路などの動作フローを示す流れ図。
【図9】本発明の別の実施形態に係るECCエンコード装置を記録型DVD装置に適用した場合の記録系構成を示すブロック図。
【図10】図9中に示すPOシンドローム生成回路904の構成および動作をやや詳細に説明するブロック図。
【図11】図10中に示すPOシンドローム計算回路1002の具体的な構成例を示す図。
【図12】図10に示すPOシンドローム生成回路などの動作フローを示す流れ図。
【符号の説明】
51、52、53…ガロア乗算器 54、55、56、57…シフトレジスタ58、59、60…排他的論理和ゲート 111、113、117…排他的論理和ゲート 112、114、118…レジスタ 115、119…ガロア乗算器 116、120…ガロア乗算器 201…ホスト 202…(IE+IED+RSV)付加回路・スクランブル回路・EDC付加回路 203…PIパリティ生成回路 204…POパリティ生成回路 205…POパリティ用バッファ206…RAM制御部 207…RAM 208…変調回路 209…記録補償回路 210…ピックアップヘッド 211…POパリティインターリーブ用セレクタ 212…記録対応ディスク 701…POパリティ生成コントローラ702…POパリティ計算回路 703…インターフェース 904…POシンドローム生成回路 905…POシンドローム用バッファ 906…ECCデコード回路 1001…POシンドローム生成コントローラ 1002…POシンドローム計算回路 1003…インターフェース 1004…ECCデコードコントローラ
Claims (15)
- 横縦のブロック構造のデータについて横方向1行の第1のパリティを第1の計算回路で計算して横方向に付加し、これを各行についてそれぞれ行なう第1のステップと、
前記第1のステップがなされる間に、前記第1のパリティが付加されたデータについて縦方向1列の第2のパリティを第2の計算回路で計算し、これを各列についてそれぞれ行なう第2のステップと
を具備することを特徴とするECCエンコード方法。 - 前記第2のステップは、前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをバッファとして用い該バッファと前記第2の計算回路との間で途中結果を往復しながら行なうことを特徴とする請求項1記載のECCエンコード方法。
- 前記第1のパリティが付加された前記データをメモリに順次格納するステップをさらに具備することを特徴とする請求項1記載のECCエンコード方法。
- 前記第2のステップで計算された第2のパリティを、前記メモリに格納された前記データに対してインターリーブするように前記メモリに格納するステップをさらに具備することを特徴とする請求項3記載のECCエンコード方法。
- 前記メモリに格納された前記第1のパリティが付加された前記データを該メモリから読み出しながら前記計算された第2のパリティをインターリーブするステップをさらに具備することを特徴とする請求項3記載のECCエンコード方法。
- 横縦のブロック構造のデータについて横方向1行の第1のパリティを第1の計算回路で計算して横方向に付加し、これを各行についてそれぞれ行なう第1のステップと、
前記第1のステップがなされる間に、前記第1のパリティが付加されたデータについて縦方向1列のシンドロームを第2の計算回路で計算し、これを各列についてそれぞれ行なう第2のステップと、
前記計算されたシンドロームから縦方向の第2のパリティを生成する第3のステップと
を具備することを特徴とするECCエンコード方法。 - 前記第2のステップは、前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをバッファとして用い該バッファと前記第2の計算回路との間で途中結果を往復しながら行なうことを特徴とする請求項6記載のECCエンコード方法。
- 前記第1のステップは、前記横縦のブロック構造のデータについて横方向1行のシンドロームを生成し、該生成されたシンドロームから横方向の前記第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうことを特徴とする請求項1または6記載のECCエンコード方法。
- 横縦のブロック構造のデータについて横方向1行の第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なう第1のパリティ生成回路と、
前記第1のパリティの計算を前記各行についてそれぞれ行なう間に、前記第1のパリティが付加されたデータについて縦方向1列の第2のパリティを計算し、これを各列についてそれぞれ行なう第2のパリティ生成回路と
を具備することを特徴とするECCエンコード装置。 - 前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをさらに具備し、
前記第2のパリティ生成回路は、前記メモリをバッファとして用い該バッファとの間で途中結果を往復しながら前記第2のパリティの計算を行なう
ことを特徴とする請求項9記載のECCエンコード装置。 - 前記第1のパリティが付加されたデータを格納するメモリをさらに具備することを特徴とする請求項9記載のECCエンコード装置。
- 前記メモリに格納された前記データを該メモリから読み出しながら前記計算された第2のパリティをインターリーブするためのセレクタをさらに具備することを特徴とする請求項11記載のECCエンコード装置。
- 横縦のブロック構造のデータについて横方向1行の第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうパリティ生成回路と、
前記第1のパリティの計算を前記各行についてそれぞれ行なう間に、前記第1のパリティが付加されたデータについて縦方向1列のシンドロームを計算し、これを各列についてそれぞれ行なうシンドローム生成回路と、
前記計算されたシンドロームから縦方向の第2のパリティを生成する回路と
を具備することを特徴とするECCエンコード装置。 - 前記第1のパリティが付加された前記データの横方向のアドレスごとに対応を有するメモリをさらに具備し、
前記シンドローム生成回路は、前記メモリをバッファとして用い該バッファとの間で途中結果を往復しながら前記シンドロームの計算を行なう
ことを特徴とする請求項13記載のECCエンコード装置。 - 前記パリティ生成回路は、前記横縦のブロック構造のデータについて横方向1行のシンドロームを生成し、該生成されたシンドロームから横方向の前記第1のパリティを計算して横方向に付加し、これを各行についてそれぞれ行なうことを特徴とする請求項9または13記載のECCエンコード装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003143157A JP2004348824A (ja) | 2003-05-21 | 2003-05-21 | Eccエンコード方法、eccエンコード装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003143157A JP2004348824A (ja) | 2003-05-21 | 2003-05-21 | Eccエンコード方法、eccエンコード装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004348824A true JP2004348824A (ja) | 2004-12-09 |
JP2004348824A5 JP2004348824A5 (ja) | 2006-02-16 |
Family
ID=33531021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003143157A Abandoned JP2004348824A (ja) | 2003-05-21 | 2003-05-21 | Eccエンコード方法、eccエンコード装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004348824A (ja) |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008084116A (ja) * | 2006-09-28 | 2008-04-10 | Aisin Seiki Co Ltd | データ記憶装置及びデータ記憶装置からのデータ読み出し方法 |
CN1779833B (zh) * | 2005-09-27 | 2011-05-18 | 威盛电子股份有限公司 | 计算错误检测码的方法 |
US8438457B2 (en) | 2009-09-11 | 2013-05-07 | Sony Corporation | Nonvolatile memory apparatus, memory controller, and memory system |
JP2014505450A (ja) * | 2011-02-11 | 2014-02-27 | クアルコム,インコーポレイテッド | フレキシブルなソースブロックのマッピングを伴う伸縮性符号を使用した符号化および復号 |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US9136983B2 (en) | 2006-02-13 | 2015-09-15 | Digital Fountain, Inc. | Streaming and buffering using variable FEC overhead and protection periods |
US9136878B2 (en) | 2004-05-07 | 2015-09-15 | Digital Fountain, Inc. | File download and streaming system |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
US9191151B2 (en) | 2006-06-09 | 2015-11-17 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9236976B2 (en) | 2001-12-21 | 2016-01-12 | Digital Fountain, Inc. | Multi stage code generator and decoder for communication systems |
US9237101B2 (en) | 2007-09-12 | 2016-01-12 | Digital Fountain, Inc. | Generating and communicating source identification information to enable reliable communications |
US9236885B2 (en) | 2002-10-05 | 2016-01-12 | Digital Fountain, Inc. | Systematic encoding and decoding of chain reaction codes |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
US9246633B2 (en) | 1998-09-23 | 2016-01-26 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9264069B2 (en) | 2006-05-10 | 2016-02-16 | Digital Fountain, Inc. | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
US9312885B2 (en) | 2012-08-15 | 2016-04-12 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory system error correction capability of which is improved |
US9319448B2 (en) | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9485546B2 (en) | 2010-06-29 | 2016-11-01 | Qualcomm Incorporated | Signaling video samples for trick mode video representations |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
JP2017107390A (ja) * | 2015-12-09 | 2017-06-15 | 株式会社東芝 | ビデオサーバ装置およびデータ書き込み/読み出し方法 |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US10090860B2 (en) | 2016-01-22 | 2018-10-02 | Toshiba Memory Corporation | Memory system using integrated parallel interleaved concatenation |
-
2003
- 2003-05-21 JP JP2003143157A patent/JP2004348824A/ja not_active Abandoned
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9246633B2 (en) | 1998-09-23 | 2016-01-26 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US9236976B2 (en) | 2001-12-21 | 2016-01-12 | Digital Fountain, Inc. | Multi stage code generator and decoder for communication systems |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
US9236885B2 (en) | 2002-10-05 | 2016-01-12 | Digital Fountain, Inc. | Systematic encoding and decoding of chain reaction codes |
US9236887B2 (en) | 2004-05-07 | 2016-01-12 | Digital Fountain, Inc. | File download and streaming system |
US9136878B2 (en) | 2004-05-07 | 2015-09-15 | Digital Fountain, Inc. | File download and streaming system |
CN1779833B (zh) * | 2005-09-27 | 2011-05-18 | 威盛电子股份有限公司 | 计算错误检测码的方法 |
US9136983B2 (en) | 2006-02-13 | 2015-09-15 | Digital Fountain, Inc. | Streaming and buffering using variable FEC overhead and protection periods |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
US9264069B2 (en) | 2006-05-10 | 2016-02-16 | Digital Fountain, Inc. | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9628536B2 (en) | 2006-06-09 | 2017-04-18 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US11477253B2 (en) | 2006-06-09 | 2022-10-18 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9191151B2 (en) | 2006-06-09 | 2015-11-17 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
JP2008084116A (ja) * | 2006-09-28 | 2008-04-10 | Aisin Seiki Co Ltd | データ記憶装置及びデータ記憶装置からのデータ読み出し方法 |
US9237101B2 (en) | 2007-09-12 | 2016-01-12 | Digital Fountain, Inc. | Generating and communicating source identification information to enable reliable communications |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
US9660763B2 (en) | 2009-08-19 | 2017-05-23 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9876607B2 (en) | 2009-08-19 | 2018-01-23 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US8438457B2 (en) | 2009-09-11 | 2013-05-07 | Sony Corporation | Nonvolatile memory apparatus, memory controller, and memory system |
US11770432B2 (en) | 2009-09-22 | 2023-09-26 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US11743317B2 (en) | 2009-09-22 | 2023-08-29 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US10855736B2 (en) | 2009-09-22 | 2020-12-01 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US9992555B2 (en) | 2010-06-29 | 2018-06-05 | Qualcomm Incorporated | Signaling random access points for streaming video data |
US9485546B2 (en) | 2010-06-29 | 2016-11-01 | Qualcomm Incorporated | Signaling video samples for trick mode video representations |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US9602802B2 (en) | 2010-07-21 | 2017-03-21 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US9319448B2 (en) | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
US9456015B2 (en) | 2010-08-10 | 2016-09-27 | Qualcomm Incorporated | Representation groups for network streaming of coded multimedia data |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
JP2014505450A (ja) * | 2011-02-11 | 2014-02-27 | クアルコム,インコーポレイテッド | フレキシブルなソースブロックのマッピングを伴う伸縮性符号を使用した符号化および復号 |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
US9312885B2 (en) | 2012-08-15 | 2016-04-12 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory system error correction capability of which is improved |
JP2017107390A (ja) * | 2015-12-09 | 2017-06-15 | 株式会社東芝 | ビデオサーバ装置およびデータ書き込み/読み出し方法 |
US10090860B2 (en) | 2016-01-22 | 2018-10-02 | Toshiba Memory Corporation | Memory system using integrated parallel interleaved concatenation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004348824A (ja) | Eccエンコード方法、eccエンコード装置 | |
JP3896206B2 (ja) | Eccブロック構造を使用する記憶装置のための符号化方法及びシステム | |
US8001447B2 (en) | Error correction method and apparatus for data storage device | |
US8171373B2 (en) | Coding circuit for recording data on DVD disk | |
EP1750264B1 (en) | Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus | |
US7836375B2 (en) | Scrambler circuit, encoding device, encoding method and recording apparatus | |
JP5115914B2 (ja) | デジタルデータの符号化装置とdvdへの記録装置及びその方法 | |
US7225385B2 (en) | Optical recording method | |
KR100412766B1 (ko) | 라이트 캐시 회로, 라이트 캐시 회로를 구비한 기록 장치 및 라이트 캐시 방법 | |
TWI384463B (zh) | 光儲存媒體之寫入方法及裝置 | |
JP2001156649A (ja) | デジタルデータ符号化処理回路、符号化処理方法、及び符号化処理回路を備えるデジタルデータ記録装置 | |
JP3774423B2 (ja) | メモリ | |
US7334180B2 (en) | Optical encoding method | |
JP3302896B2 (ja) | 誤り訂正回路及びこれを用いたディスク再生装置及びcd−romドライブ | |
JP4071789B2 (ja) | メモリアドレス発生装置及び方法 | |
JPH0737334A (ja) | 情報記録方法 | |
JPH087496A (ja) | ディスク記録・再生方法および装置 | |
JPH10154941A (ja) | 誤り訂正回路 | |
JP3384402B2 (ja) | 情報再生方法及び情報再生装置 | |
JPS62275356A (ja) | 識別信号形成方法 | |
JPS63298776A (ja) | エラ−訂正処理方式 | |
JP2002222524A (ja) | 光ディスク装置および光ディスク装置用データランダム化方法 | |
JPH08273307A (ja) | 符号装置及び復号装置 | |
JP2008010064A (ja) | データ符号化回路、データ記録装置およびpi/po演算処理方法 | |
JPH03278371A (ja) | デジタルオーディオテープレコーダ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051227 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051227 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20070312 |