(57)【特許請求の範囲】
【請求項１】
冗長度が低減された冗長度低減積符号配列を利用する誤り訂正システムであって、
ｎ1、ｎ2、ｋ1、ｋ2、ｒ1、ｒ2が関係式ｎ1＝ｋ1＋ｒ1及びｎ2＝ｋ2＋ｒ2を満たす正の整数であるとき、行１〜（ｋ2−ｒ2）の列１〜ｎ1及び（ｋ2−ｒ2＋１）〜ｋ2の列１〜ｋ1に原始データ記号を記憶するためのｎ1列とｎ2行を有する配列バッファと、
前記配列バッファの列１〜ｋ1の原始データ記号を列符号で符号化して記号長ｒ2の列検査記号を形成する列符号器であって、該列検査記号は前記配列バッファの列と１対１に関連し、前記配列バッファのそれぞれ関連した列の行（ｋ2＋１）〜ｎ2に記憶される、列符号器と、
前記配列バッファの行１〜（ｋ2−ｒ2）の原始データ記号を行符号で符号化して記号長ｒ1の第１の行検査記号を形成するとともに、前記配列バッファの行（ｋ2−ｒ2＋１）〜ｎ2の原始データ記号及び列検査記号を行符号で符号化して記号長ｒ1の第２の行検査記号を形成する行符号器と、
前記第１の行検査記号の列を中間符号で符号化して記号長２ｒ2の中間検査記号を形成する列符号器と、
前記第２の行検査記号と前記中間検査記号との排他的論理和を求めて、行１〜（ｋ2−ｒ2）の列１〜ｎ1における原始データ記号と、行（ｋ2−ｒ2＋１）〜ｋ2の列１〜ｋ1における原始データ記号と、行（ｋ2＋１）〜ｎ2における列検査記号とから導かれたｒ1×２ｒ2の大きさの検査記号配列を形成する加算器であって、該検査記号配列は、前記配列バッファの行（ｋ2−ｒ2＋１）〜ｎ2の列（ｋ1＋１）〜ｎ1に記憶され、これによって、ｎ1ｒ2＋ｒ1ｒ2の冗長記号を持つ積符号配列を形成する一方、冗長記号ｎ1ｒ2＋ｎ2ｒ1−ｒ1ｒ2を持つ低減されていない冗長積符号列の誤り訂正能力と略同等の能力を維持する、加算器と、
を含む誤り訂正システム。
【請求項２】
前記積符号配列の行を前記行符号で復号化して、前記積符号配列の行と１対１に関連し記号長ｒ1のシンドロームを形成する行復号器と、
各シンドロームをその１つの行に記憶することで、前記シンドロームをシンドローム配列をなすように記憶する、ｎ2行とｒ1列を持つシンドローム配列バッファと、
前記中間符号で前記シンドローム配列の列を復号化して、前記積符号配列の任意の汚染された行の位置を突き止めるシンドローム復号器と、
前記積符号配列の列を前記列符号で復号化して、前記積符号配列の汚染された行の消失を訂正する列復号器と、
を含む請求項１に記載の誤り訂正システム。
【請求項３】
前記シンドローム復号器は、前記シンドローム配列の列を前記中間符号で復号化して、前記シンドローム配列における任意の誤りを訂正するよう動作することができ、
前記行復号器は、訂正されたシンドローム配列を用いて前記積符号配列の行を復号化して、前記積符号配列における任意のランダム誤りを訂正するよう動作することができる、請求項２に記載の誤り訂正システム。
【請求項４】
原始データ記号の積符号配列を利用する誤り訂正システムであって、
積符号配列の列を列符号Ｃ２で符号化して、該列符号Ｃ２の検査記号を形成する列符号器と、
前記積符号配列の行と前記列符号Ｃ２の検査記号の行とを行符号Ｃ１で符号化して、行符号Ｃ１の検査記号を形成する行符号器であって、前記行符号Ｃ１の検査記号の行は、前記積符号配列の行及び前記列符号Ｃ２の検査記号の行と１対１に関連する、行符号器と、
前記行符号Ｃ１の検査記号の行の第１の部分の列を符号化して符号Ｃ１.５の中間検査記号にする中間列符号器と、
前記符号Ｃ１.５の中間検査符号と行符号Ｃ１の検査記号の残りの第２の部分との排他的論理和を求め、行検査記号のセットよりも小さい冗長度を有する行検査記号の低減されたセットにするが、前記積符号配列の誤り訂正能力と略同等の能力を維持する、冗長圧縮器と、
を含む誤り訂正システム。
【請求項５】
前記積符号配列の行を前記行符号Ｃ１で処理して、シンドロームを形成するシンドローム生成器と、
各行が前記積符号配列の行と１対１に関連しているシンドローム配列内のシンドロームを記憶するシンドローム配列バッファと、
前記シンドローム配列の列を前記中間符号Ｃ１.５で復号化して、前記積符号配列についての汚染された行のリストを生成するシンドローム復号器と、
前記汚染された行のリスト及び前記列符号Ｃ２によって、前記積符号配列の汚染された行について消失の訂正を実行する列復号器と、
を含む請求項４に記載の誤り訂正システム。
【請求項６】
ｎ1、ｎ2、ｒ1、ｒ2を整数とするとき、
前記積符号配列の行を行符号で復号化して、前記積符号配列の行と１対１に関連し記号長ｒ1のシンドロームを形成する行復号器と、
各シンドロームをその１つの行に記憶することで、シンドロームをシンドローム配列をなすように記憶する、ｎ2行とｒ1列を持つシンドローム配列バッファと、
前記シンドローム配列の列を冗長度２ｒ2の中間符号で復号化して、前記積符号配列の任意の汚染された行の位置を突き止めるシンドローム復号器と、
前記積符号配列の列を冗長度ｒ2の列符号で復号化して、前記積符号配列の汚染された行の消失を訂正する列復号器と、
を含む請求項５に記載の誤り訂正システム。
【請求項７】
前記シンドローム復号器は、前記シンドローム配列の列を前記中間符号で復号化して、前記シンドローム配列における任意の誤りを訂正するように動作することができ、
前記行復号器は、訂正されたシンドローム配列を用いて前記積符号配列の行を復号化して、前記積符号配列における任意のランダム誤りを訂正するように動作することができる、請求項６に記載の誤り訂正システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般に、冗長情報と共に、データを符号化して送信または記憶することによって、データの受信または検索時に誤りの検出及び訂正を可能にすることに関するものであり、とりわけ、通信及び記憶チャネルにおける誤り訂正に用いられる２次元符号配列に関するものである。
【０００２】
【従来の技術】
誤り訂正符号は、一般に、チャネル・ノイズ、媒体の欠陥、または、他の妨害によって生じるデータの汚染に対抗するため、通信チャネルと記憶チャネルの両方において用いられる。図１には、誤り訂正を利用する典型的な通信及び／または記憶システムが示されている。誤り訂正符号が利用される適用例のいくつかには、通信分野におけるデータ伝送、放送、及び、衛星通信と、情報記憶分野におけるデジタル音声及び映像記録、磁気テープ、半導体メモリ、及び、コンパクト・ディスクがある。
【０００３】
「ブロック符号」として知られる誤り訂正符号の場合、誤りに対する防護は、それぞれ、整数ｋの「記号」を備えた固定サイズのブロック（「原始データ・ブロック」と呼ばれる）にデータを分割することによって行われる。（記号は、アルファベットまたは１組の値における要素である。デジタル情報の場合、記号は、一般に、固定ビット長のマルチ・ビット値である。例えば、２５６の記号によるＡＳＣＩＩのアルファベットのように、デジタル情報に関して一般に用いられるアルファベットは、８ビット・バイトの記号から構成されるのが普通である）。符号器は、各原始データ・ブロック毎に整数ｒの冗長記号（「検査記号」または「チェック記号」あるいは単に「チェック」と呼ばれる）を追加して、ｎの記号からなる「符号ブロック」を形成する（ここで、ｎ＝ｋ＋ｒ）。この符号ブロックは、次に、通信または記憶チャネルを介して送られる。（例えば、符号ブロックは、磁気テープまたはコンパクト・ディスクのような記録媒体に記憶されるか、あるいは、電話線、コンピュータ・ネット・ワーク、または、無線チャネルのような通信媒体によって伝送されるが、ここで、符号ブロックの汚染が生じる可能性がある）。受信側において、復号器は、汚染が所定のあらかじめ設計されたレベルを超えなければ、冗長情報を利用して、汚染の可能性のある符号ブロック部分からもとの原始データを検索する。
【０００４】
「積符号」は、ランダム誤りとバースト誤りの両方に対する良好な防護が得られるので、これら両タイプの誤りの可能性がある磁気記録等の用途において誤り訂正符号の一般的な選択である。（ランダム誤りは、通信または記憶チャネルを介して送られるデータの分離した記号位置に独立して生じる誤りである。バースト誤りは、通信または記憶チャネルを介して送られるデータの記号の連続した集合に影響を及ぼす。例えば、通信チャネルにおける電気的外乱または記憶チャネルにおける媒体欠陥は、これらのチャネルを介して送られるいくつかの隣接記号に誤りを生じる可能性がある。）図４に示すような典型的な積符号符号器の場合、８ビット記号で操作する２つのリード・ソロモン符号を利用して、２次元配列が形成される。長さがｎ1の記号からなり、ｒ1の冗長記号を備えた第１の符号Ｃ1が、配列の行に適用される。長さがｎ2の記号からなり、ｒ2の冗長記号を備えた第２の符号Ｃ2が、その列に適用される。この結果、ｎ1×ｎ2の記号からなる配列の大きさが生じる。こうした場合、配列の全冗長度は、ｎ1ｎ2の記号からなるブロック毎にｎ1ｒ2＋ｎ2ｒ1−ｒ1ｒ2の記号である。図５に示すように、Ｃ1による誤り検出、及び、Ｃ2による消去（erasures）の訂正に基づく復号化方法を利用すれば、この方式によって、おそらく、パラメータｒ1を適切に選択することによって、その確率を任意に低くすることが可能なわずかなバースト誤りパターン集合を除いて、ｒ2以下の行に影響を及ぼす全ての誤りバーストを訂正することが可能になる。（この基本的手法には多くの変更を加えることが可能であり、ランダム誤り訂正とバースト誤り訂正の間でトレード・オフが行われる。ファレルによる「配列誤り制御符号概観」（P. Farrell, A Survey of Array Error Control Codes, 3 ETT 441-454(1992）には、積符号符号器及び復号器に関する従来のさまざまな実施例が解説されている。）
【０００５】
リード・ソロモン符号は、そのために、有限体上の代数計算に基づいて、効率のよい符号器及び復号器が開発された周知のブロック符号である。リード・ソロモン符号用の典型的な符号器及び復号器が、それぞれ、図２及び図３に示されている。ｑ＋１未満のｎの記号（即ちｎ個の記号）からなる任意の符号ブロック長について、リード・ソロモン符号が存在するが、ここで、データのアルファベットには、ｑの記号が含まれている。典型的な応用例の場合、記号はｍの２進ビットから構成されるが、ここで、ｍは整数であり、ｑ＝２m（例えば、ｍ＝８、ｑ＝２５６）である。リード・ソロモン符号は、下記の表１に示すように、誤り検出及び訂正操作における理論的冗長コストが最小になるので、誤り訂正符号にとりわけ有効である。
【０００６】
【表１】
0003737204.tif 000002
【０００７】
誤り検出操作において、復号器は、ブロック内に汚染記号があるか否かを判定するが、その位置は確認しない。リード・ソロモン符号は、ｒまでの誤りの任意のパターンを検出することができる（ここで、ｒは、符号の冗長である）。積符号応用例の場合、リード・ソロモン符号は、さらに、１−εの確率でバースト誤りを検出することが可能であり、ここで、εは、１−ｑrのようなｒに関して指数関数的に減少する数である（バースト誤りによって影響を受ける領域内の各ビットが０．５の確率で汚染を生じるものと仮定して）。消去訂正操作の場合、復号器は、符号ブロック内に場所を与えられた、汚染された全ての記号の値を回復する。全誤り訂正操作の場合、復号器は、符号ブロック内における汚染された全ての記号の場所とその値の両方を回復する。リード・ソロモン符号は、ｒ／２までの完全な誤り、または、ｒまでの消去の任意のパターン、または、２×（誤り）＋（消去）＜ｒの任意の組み合わせを訂正することが可能であり、ここで、（誤り）は誤り数、（消去）は消去数である。
【０００８】
さらに、決定論的（または最悪状態）復号化方式と確率的復号化方式には明確な差が存在する。決定論的復号化方式の場合、復号器は、あらかじめ設計された数までの誤りの全てのパターン（例えば、ある整数Ｎの場合、２次元配列におけるＮまでの汚染行の全ての誤り）を訂正することが保証される。確率的復号化方式の場合、復号器は、誤りパターンの分布に関するある仮定の下に、任意に１に近づけることが可能な確率で、こうしたパターンを訂正する。これらの仮定は、実際には、チャネルを介した伝送の前にスクランブラを用いることによって、十分に近似できる。誤り訂正要件を「必ず」から「高い確率で」に緩和することによって、符号化方式における冗長量を大幅に減少させることが可能である。笠原等の「連接符号及び積符号を基礎にして構成される２進符号の新しいクラス」（M. Kasahara, S. Hirasawa, Y. Sugiyama and T. Namekawa, New Classes of Binary Codes Constructed on the Basis of Concatenated Codes and Product Codes, IEEE Transaction on Information Theory, 462-467(1976)）［以後は「笠原」と称する］には、２進積符号の冗長度を低減し、同時に、符号のハミング距離を最小限に保つ（従って、最悪状態の訂正能力）方式についての記載がある。最悪状態の訂正能力を保つ目的のため、笠原は、制限付き符号冗長度低減を実現している。
【０００９】
典型的な先行技術の積符号の場合、配列の行に適用される符号Ｃ1を用いて、それぞれの行について、それぞれ、汚染の有無が検出される。配列の列に適用される符号Ｃ2を用いて、符号Ｃ1の適用によって汚染が生じていると識別された行の消去を訂正する消去訂正が実施される。換言すれば、符号Ｃ1の検出操作を利用して、符号Ｃ2の消去訂正操作に対しどの行に汚染が生じたかについての情報を提供することにより、消去訂正操作において、配列の各列毎に汚染が生じていると識別された行に対応する場所を訂正することが可能になる。こうした積符号を設計する場合、符号Ｃ1の冗長ｒ1は、一般に、Ｃ1によって汚染された行が検出されない、ｑ＊＊（ーｒ1 ）にほぼ等しい確率が、許容可能なほどに低くなるように選択される。符号Ｃ2の冗長ｒ2は、一般に、ｒ2を超える汚染行を有する確率が許容可能なほどに低くなるように選択される。ここに、ｑ＊＊（ーｒ1 ）はｑの（ーｒ1 ）乗をあらわす。
【００１０】
これら先行技術による積符号の欠点の１つは、符号Ｃ1は、積配列のｎ2までの全ての行に汚染が生じたか否かの検出を行うことはできるが（符号Ｃ1は、配列の各行毎に適用され、従って、各行毎に汚染の有無を検出することができる）、符号Ｃ2は、各列毎にｒ2までの場所（こうした識別される汚染行に対応する）だけしか訂正することができない。符号Ｃ2はｒ2までの汚染行だけしか訂正することができないので、符号Ｃ1から導き出されるｒ2を超える汚染行の組み合わせに関する情報は、符号Ｃ2による消去訂正操作には無用である。符号Ｃ1のこれら余分な行（とにかく、全てを訂正することはできない）を検出する能力は、冗長度を増すという犠牲を払うことになる。結果として、これら典型的な先行技術による積符号配列における冗長の大部分は、有効な目的には役立たないということになる。
【００１１】
【発明が解決しようとする課題】
本発明の目的は、確率的復号化に基づく典型的な先行技術の積符号配列における符号Ｃ1の利用されない誤り検出能力に関連した過剰な冗長度を解消する装置及び方法を提供することにある。
【００１２】
【課題を解決するための手段】
本発明の装置及び方法は、配列の行及び列に適用される符号（本書では、それぞれ、Ｃ1及びＣ2と称する）以外に、第３の中間符号（本書では、Ｃ1.5と称する）を利用する２次元符号配列に基づくものである。本発明の望ましい実施例に基づく２次元符号配列において結果生じる冗長は、典型的な先行技術による積符号配列における冗長よりもｒ1（ｎ2−２ｒ2）だけ少ないｎ1ｒ2＋ｒ1ｒ2に等しい。従って、本発明によれば、典型的な先行技術による積符号に基づく前述の通信及び記憶装置及び方法と同じ誤り訂正能力で、冗長度の低減が可能になる（通信及び記憶チャネルにおいて、原始データのスループットが増すことを意味する）。
【００１３】
本発明の望ましい実施例のもう１つの特徴によれば、行符号Ｃ1及び列符号Ｃ2、並びに、中間符号Ｃ1.5は、それぞれ、リード・ソロモン符号である。望ましい実施例の装置は、従って、低減冗長度を実現する本発明の２次元符号配列を符号化及び復号化する新規かつ独自のやり方で構成された、従来のリード・ソロモン符号器及び復号器を用いて構成することが可能である。
【００１４】
本発明は、確率的復号化に基づくものであるため、「笠原」に開示のような決定論的方式に比べると、符号冗長度が大幅に改善される。また、最悪の場合の訂正能力を保つという「笠原」の別の目的は、異なる復号化方法及び装置を指示している。
【００１５】
本発明のこれ以外の特徴及び利点については、添付の図面に関連して進められる望ましい実施例に関する以下の詳細な説明から明らかになるであろう。
【００１６】
【実施例】
図１には、符号器２２及び誤り訂正のための復号器２４から構成される通信及び／または情報記憶システム２０が示されている。デジタル・データが、データ発信側装置２８（「データ送信装置」）によってシステム２０の一方の端部から入力され、もう一方の端部からデータ消費側装置３０（「データ受信装置」）に対して出力される。データは、データにランダム誤り及び／またはバースト誤りを生じさせる可能性のある通信及び／または記憶チャネル３４によって、データ発信側装置２８とデータ消費側装置３０の間で転送される。通信用途の場合、チャネル３４は、送信器、受信器、チューナ、伝送媒体（ワイヤ、ケーブル、または、アンテナ）、変調器、復調器等のような２つのサイト間におけるデジタル・データの伝送装置から構成することが可能である。情報記憶用途の場合、チャネル３４は、磁気テープ・ドライブ、コンパクト・ディスク・ドライブ、及び、コンピュータ・メモリ・チップを含む、磁気記録媒体、光学記録媒体、半導体メモリ等を利用する記録装置といった、デジタル・データの記憶装置から構成することが可能である。場合によっては、とりわけ、記憶用途においては、同じ装置をデータ発信側装置２８及びデータ消費側装置３０の両方に利用することが可能なこともある。さらに、個々のワークステーションが、ローカル・エリア・ネットワークを介してアクセスされる共用ファイル・サーバにデジタル情報を記憶しているコンピュータ・ネットワークの場合、チャネル３４には、通信及び情報記憶装置の両方を含むことが可能である。
【００１７】
チャネル３４による転送中に、デジタル・データは、ノイズ、干渉、媒体の欠陥、または、その他の原因のために汚染を生じる可能性がある。データ消費側装置３０において受信されるデータに、汚染が生じないように、符号器２２は、データがチャネル３４に入る前に、誤り訂正符号化を利用してデータに符号化を施す。データがチャネル３４を出ると、復号器２４は、符号器２２によって用いられた１つまたは複数の誤り訂正符号に基づく誤り訂正操作を用いて、汚染データを回復する。
【００１８】
本発明によれば、システム２０の符号器２２及び復号器２４は、図７に示す、後述のような、冗長度が低減された２次元符号配列に基づくものが望ましい。本発明の望ましい実施例の場合、図６、図８及び図９に示された、さらに詳細に後述する冗長度低減積符号符号器３６及び復号器３８、３９が、それぞれ、符号器２２及び復号器２４として用いられる。
【００１９】
図２には、ｒ段帰還シフト・レジスタ符号器４０として、リード・ソロモン符号器の従来の実施例が示されている。このｒ段帰還シフト・レジスタ符号器４０は、ブロック符号によって動作するが、この符号の冗長は、ｒ＝ｎ−ｋである。符号器４０は、一度に１つの入力記号を受け入れる入力４２と、それぞれ、記号を記憶する、Ｓ0、Ｓ1、Ｓ2、．．．、Ｓr-1と表示された複数のシフト・レジスタ段４４から構成される。符号器４０は、さらに、ｇ0、ｇ1、ｇ2、．．．、ｇr-1と表示された複数の生成多項式係数乗算器４６と、段４０に１対１に対応する加算器４８から構成される。乗算器４６において用いられる生成多項式係数の量は、下記の式（１）に示すリード・ソロモン符号に関する生成多項式の係数から導き出される。
g(x)=Σi=0rgixi------(1)
（ｇｉは１に等しいと仮定される）。生成多項式が求められる方法は、当該技術において周知のところである（例えば、ウィッカー等の「リード・ソロモン符号とその応用」（S. Wicker and V. Bhargava, Reed-Solomon Codes and Their Application, IEEE Press, New York, Chapter 1,5,10 (1994)参照）。
【００２０】
帰還経路５０は、入力４２からの記号と段Ｓr-1における記号の和である帰還記号を伝送する。帰還記号と、乗算器４６のそれぞれの生成多項式係数を掛け合わせ、さらに、加算器４８において先行段の記号との和を求めることによって、各段４４に対する入力記号が形成される。レジスタ４０の段４４は、同期して刻時され、各クロック・サイクル毎に、入力記号がそれぞれの段にシフト・インされることになる。
【００２１】
符号化操作において、ｋのデータ記号からなるブロックが、各クロックサイクル毎に１つずつ、入力４６から符号器４０にシフト・インされる。ｋのデータ記号が符号器４０にシフト・インされた後、結果として得られる段４４の内容は、整数ｒの検査記号から構成される。ｒの検査記号とｋのデータ記号を組み合わせることによって、ｎの記号からなるリード・ソロモン符号ブロックが形成される。
【００２２】
図３には、汚染の生じる可能性のあるリード・ソロモン符号ブロック６１に誤り訂正を施す先行技術のリード・ソロモン復号器６０が示されている。復号器６０は、シンドローム発生器６２、キー方程式ソルバ６４、及び、誤り探索及び訂正回路要素６６から構成される。シンドローム発生器６２は、ｎの記号からなるリード・ソロモン符号ブロックから誤り検出及び訂正操作に用いられるｒの記号からなるシンドローム６８を形成する。ｒ段帰還シフト・レジスタ符号器４０（図２）のようなリード・ソロモン符号器は、シンドローム発生器６２として利用することも可能である。シンドローム発生器６２として利用される場合、ｎの記号からなるリード・ソロモン符号ブロック（ノイズのあるチャネル３４（図１）を介して送られたｋのデータ記号とｒの検査記号から構成される）が、入力４６（図２）から符号器４０にシフト・インされる。符号ブロックのｎの記号のシフト・インが全て済むと、段４４（図２）に含まれるｒの記号によって、「シンドローム」が形成される。非ゼロのシンドロームは、ｎの記号からなる符号ブロックにおいて汚染を検出をしたということになる。全てがゼロのシンドロームは、１−εの確率で、符号ブロックに汚染が生じなかったことを表している（ここで、εは、ｒ1に関して指数関数的に減少する数である）。一般に、εは、ｑ＊＊（ーｒ1 ）に比例する。確率は、従って、一般に１−ｑ＊＊（ーｒ1 ）に比例する。
【００２３】
また、シンドロームにさらに処理を加えることによって、消失及び完全な誤り訂正を実施することも可能である。例示の復号器６０は、完全な誤り訂正を実施する。キー方程式ソルバ６４は、周知の方法でシンドローム６８に処理を加えることにより、誤り位置探査多項式７０及び誤り評価多項式７１を作成する。誤り位置探査及び誤り評価多項式７０〜７１は、汚染入力符号ブロック６１と共に、誤り探索及び訂正回路要素６６に入力される。誤り探索及び訂正回路要素６６は、再び、従来の技法を利用し、誤り位置探査及び誤り評価多項式７０〜７１を用いて、任意の汚染記号（図３にシェーディングによって示す）を回復し、訂正された符号ブロック７４を出力する。次に、符号ブロック７４からｒの検査記号を削除することによって、出力符号ブロック７４からもとのｋのデータ記号を抽出することが可能である。
【００２４】
図２に示すｒ段帰還シフト・レジスタ４０は、リード・ソロモン符号器に関する多くの既知の実施例の１つである。リード・ソロモン符号器及び復号器の他の実施例については、次（１）、（２）の参考書に解説されている。
（１） ウィッカー等の「リード・ソロモン符号とその応用」（S. Wicker and V. Bhargava, Reed-Solomon Codes and Their Application, IEEE Press, New York, Chapter 1,5,10 (1994))［以後は「ウィッカー等」と称する］、
（２） セローシの「シストリック・リード・ソロモン符号器」（G. Seroussi, A Systolic Reed-Solomon Encoders, 37 IEEE Transaction on Information Theory 1217-1220(1991))［以後は「セローシ」と称する］.
これらのさまざまな従来のリード・ソロモン符号器及び復号器は、図４及び図５に示す従来の積符号符号器及び復号器、及び、本発明の望ましい実施例に基づく冗長度低減積符号符号器３６及び復号器３８〜３９（図６、図８及び図９）のような２次元符号配列を基礎にした符号器及び復号器の部品として利用することが可能である。
【００２５】
図４及び図５には、典型的な先行技術による積符号符号器８０（図４）及び復号器８２（図５）が示されている。積符号符号器８０及び復号器８２は、積符号と称する２次元符号配列に基づくものである。積符号は、一般に、２つのリード・ソロモン符号、すなわち、その行に適用される第１の符号Ｃ1及びその列に適用される第２の符号Ｃ2を利用する。
【００２６】
図４を参照すると、積符号符号器８０は、ｋ1×ｋ2の記号からなる原始データ・ブロックの行にＣ1符号を適用し、次に、第１の符号Ｃ1の適用結果として生じる符号の列にＣ2符号を適用することによって、積符号配列を形成する。符号化すべき原始データ８７は、入力配列バッファ８６の、それぞれ、ｋ1の記号を備えたｋ2の行に記憶される。行符号器９０及び行シーケンサ９２から構成される行処理回路要素８８は、入力配列バッファ８６における原始データ行Ｃ1符号を適用する。行符号器９０は、冗長がｒ1になるように符号化するリード・ソロモン符号器４０（図２）のようなリード・ソロモン符号器である。行シーケンサ９２は、入力配列バッファ８６から行符号器９０に原始データを１行ずつ入力する。行符号器９０は、ｋ1の原始データ記号８７の各行毎に処理を加えて、上述のようにその行に関するｒ1の検査記号９３を作成する。各行におけるｋ1の原始データ記号８７及びｒ1の検査記号９３は、行処理回路要素８０によって中間配列バッファ９４に記憶される、長さがｎ1の記号からなるＣ1符号を形成する。
【００２７】
列符号器１００及び列シーケンサ１０２から構成される列処理回路要素９８は、中間配列バッファ９４におけるＣ1符号（原始データ８７とＣ1検査記号９３から構成される）の列にＣ2符号を適用する。列符号器１００は、冗長がｒ２になるように符号化するリード・ソロモン符号器４０（図２）のようなリード・ソロモン符号器である。列シーケンサ１０２は、列符号器１００にＣ1符号を１列ずつ入力する。列符号器１００は、ｋ2の記号から構成される各列に処理を加えて、ｒ2の検査記号１０３を形成し、該記号は、列と共に、出力配列バッファ１０４に記憶される。全ての列の符号化が済んだ後の出力配列バッファ１０４の内容は、積符号配列ということになる。
【００２８】
積符号符号器８０の実施例によっては、入力配列バッファ８６、中間配列バッファ９４、及び、出力配列バッファ１０４のそれぞれに、単一配列バッファを用いるものもある。こうした場合、行及び列処理回路要素８８、９８は、データが符号化されると、バッファ間におけるデータ転送を行うのではなく、適切な位置においてデータに操作を加える。さらに、積符号符号器８０の代替実施例の場合、行及び列処理回路要素８８、９８の順序が逆になるが、それでも、同じ積符号配列を得ることが可能である。
【００２９】
次に、図５を参照すると、積符号復号器８２は、積符号符号器８０によって形成される積符号配列に対する誤り訂正を実施する。符号Ｃ1を利用して、積符号配列の汚染行を検出し、符号Ｃ2を利用して、汚染行の消失を訂正する。チャネル３４（図１）から受信すると、汚染行１０９を有する可能性のある積符号配列が、最初に入力配列バッファ１１０に記憶される。行処理回路要素１１２は、積符号復号器８２によって、入力配列バッファ１１０における積符号配列の汚染行１０９を検出するために用いられる。行処理回路要素１１２は、行復号器１１４及び行シーケンサ１１６から構成される。行復号器１１４は、図３に示すものと同様のリード・ソロモン復号器であり、Ｃ1符号に基づく誤り検出に適している。行シーケンサ１１６は、入力配列バッファ１１０から行復号器１１４に積符号配列を１行ずつ入力する。各行毎に、行復号器１１４は、ｒ1の記号シンドロームを形成し、シンドロームが非ゼロであれば、その行を汚染されたものとして識別する。行復号器１１４は、どの行が汚染されたものとして検出されたかを識別するリスト（「汚染行リスト」）１１７を形成する。行処理回路要素１１２による処理が済むと、積符号配列は、そのまま、中間配列バッファ１１８に記憶される。
【００３０】
積符号復号器８２は、さらに、行処理回路要素１１２によって検出された汚染行の消失を訂正するために用いる、列処理回路要素１２０から構成される。列処理回路要素１２０は、列復号器１２２と、列シーケンサ１２４から構成される。列復号器１２２は、図３に示すものと同様のリード・ソロモン復号器であり、Ｃ2符号に基づく消失訂正操作に適している。列シーケンサ１２４は、中間配列バッファ１１８から列復号器１２２に積符号配列を１列ずつ入力する。汚染行リスト１１７は、行復号器１１４から列復号器１２２にも入力される。列復号器１２２は、汚染行リスト１１７を用いて、リスト１１７において識別される汚染行１０９のそれぞれが消失していることを宣言する。列復号器１２２は、積符号配列の各列毎に、その列に関する長さがｒ2の記号からなるシンドロームを形成し、該シンドロームに処理を加えて、その列における消失した行からの各記号に訂正を施すことによって、前記列における消失を訂正する。列復号器１２２は、訂正した列を出力配列バッファ１２６に記憶する。行及び列処理回路要素１１２、１２０による処理結果として、出力配列バッファ１２６には、汚染行１０９のそれぞれに訂正を施した、積符号配列が納められていることになる。積配列復号器８２は、入力配列バッファ１１０、中間配列バッファ１１８、及び、出力配列バッファ１２６のそれぞれに用いられる単一配列によって実施することが可能であり、積符号配列には、適切な位置において処理が加えられる。
【００３１】
従来の技術においては既述のように、先行技術による積配列符号器８０によって形成されるｎ1×ｎ2の積符号配列は、ｎ1ｒ2＋ｎ2ｒ1−ｒ1ｒ2の冗長記号を有している。この冗長に関して、先行技術による積配列復号器８２は、積符号配列のｎ２の行のどれかに汚染が生じたか否かを検出することが可能である。（行復号器９０は、各行毎に独立したシンドロームを形成し、これによって、シンドロームが非ゼロの場合、その行は汚染されたものと識別される。）しかし、積配列復号器８２は、汚染されたものとして識別されたｒ2までの汚染行だけしか訂正することができない。（列復号器１００による消失訂正は、積符号配列の各列毎にｒ2の記号の訂正に制限されている。）汚染されたものとしてｒ2を超える行を識別するための冗長コストが、浪費されることになる。
【００３２】
図６、図８及び図９には、本発明の望ましい実施例に基づく冗長度を低減した積符号符号器３６（図６）及び復号器３８、３９（図８及び図９）が示されている。符号器３６及び復号器３８、３９は、図７に示す２次元積符号配列１３０に基づき、追加中間符号Ｃ1.5を利用して、典型的な先行技術による積符号配列コーデック（すなわち、符号器／復号器）と比較して低減された冗長度（すなわち、望ましい実施例の場合、（ｎ1ｒ2＋ｒ1ｒ2））を実現し、同時に、バースト誤り及びランダム誤り訂正には同等の能力を発揮する。
【００３３】
符号Ｃ1.5は、ブロック長がｎ2で、冗長は２ｒ2である。さらに、望ましい実施例の場合、符号Ｃ1.5は、Ｃ2のサブ符号になるように設計される、すなわち、Ｃ1.5の符号ブロックに、Ｃ2に関して計算されるｒ2の冗長検査記号に加え、追加集合をなすｒ2の検査記号が含まれる。従って、符号Ｃ2によって符号化された符号ブロックは、既に、Ｃ1.5において有効な符号ブロックであることが必要な冗長制約条件の半分を満たしている。これは、Ｃ1.5とＣ2の間でオーバラップし、冗長度低減に寄与し、さらに、Ｃ2に用いられる回路要素の一部は、Ｃ1.5にも用いることが可能であるため、符号化及び復号化回路要素の設計を単純化することも可能である。図６、図８及び図９の符号器／復号器の場合、上記関係がＣ1.5とＣ2の間に存在するものと仮定されている。
【００３４】
次に、図６及び図７を参照すると、冗長度低減積符号符号器３６（図６）が、原始データ・ブロック１３２、１３４（図７）を符号化して、冗長度を低減した符号配列１３０（図７）を形成する。符号器３６は、ｒ2の冗長記号を備えたリード・ソロモン符号Ｃ2を積符号配列１３０の列に適用する列処理回路要素１４０、ｒ1の冗長記号を備えたリード・ソロモン符号Ｃ1を積符号配列１３０の行に適用する行処理回路要素１４２、ｒ1.5の冗長記号を備えた中間リード・ソロモン符号Ｃ1.5を行処理回路要素１４２によって形成される行検査記号に適用する列処理回路要素１４４、及び、ＸＯＲ加算器１４６から構成される。符号器３６は、さらに、入力配列バッファ１５０、中間配列バッファ１５１、出力配列バッファ１５２、及び、積符号配列１３０及び検査記号が記憶される検査記号配列バッファ１５４〜１５５から構成される。入力、中間、及び、出力配列バッファ１５０〜１５２は、積符号配列１３０が適切な位置において符号化される単一バッファ・メモリとして物理的に実施することが可能である。
【００３５】
符号器３６による積符号配列１３０の符号化は、入力配列バッファ１５０が、最初に、符号化すべき原始データ記号を記憶することによって開始される。望ましい実施例の場合、原始データは、原始データ・ブロック１３２、１３４として入力配列バッファ５０に記憶される。原始データ・ブロック１３２は、積符号配列１３０のｋ1×ｋ2の記号部分を充填し、原始データ・ブロック１３４は、全部で（ｋ1ｋ2＋ｒ1（ｎ2−２ｒ2））の原始データ記号についてｒ1×（ｎ2−２ｒ2）の記号部分を充填する。原始データ記号は、例えば、順次、それぞれ、ｎ1の記号からなるｎ2−２ｒ2に、それぞれ、ｋ1の記号からなるｒ2の行を加えることを含めて、さまざまな方法で、原始データ・ブロック１３２、１３４に記憶することが可能である。
【００３６】
次に、列処理回路要素１４０は、Ｃ2列符号を用いて原始データ・ブロック１３２の列を符号化することによって、ｋ1×ｒ2の記号からなる大きさを備えた、Ｃ2列符号検査記号配列１６０（図７）の配列を形成する。Ｃ2符号を用いた符号化の場合、列処理回路要素１４０は、列符号器１６２と列シーケンサ１６４から構成される。列符号器１６２は、図２に示すようなｒ2段を備えた帰還シフト・レジスタ符号器として、あるいは、代替方式として、「ウィッカー等」及び「セローシ」に解説のシストリック配列または他のアーキテクチャとして適合するように実施可能なリード・ソロモン符号器である。列シーケンサ１６４は、原始データ・ブロック１３２を１列ずつ列符号器１６２に入力する。列符号器１６２は、データ・ブロック１３２のｋ1の列のそれぞれ（それぞれ、ｋ2の記号からなる長さを有する）に処理を加えて、Ｃ2列符号検査記号配列１６０を形成する。列処理回路要素１４０は、Ｃ2列符号検査記号配列１６０を出力して、中間配列バッファ１５１のｋ1×ｒ2の記号部分を充填する。中間配列バッファ１５１の残りのｒ1×２ｒ2の記号部分１６８がクリアされる（すなわち、ゼロが充填される）。（記号部分１６８をクリアする代わりに、すぐ後に説明するようにＣ1符号によって符号化する際に、行処理回路要素１４２が、積符号配列１３０の最後の２ｒ2の行の最初のｋ1の記号だけに処理を施すことも可能である）。
【００３７】
行処理回路要素１４２は、中間配列バッファ１５１における原始データ・ブロック１３２、１３４、及び、Ｃ2列符号検査記号配列１６０の行を符号化して、ｒ1×ｎ2の記号からなる大きさを備えたＣ１行符号検査記号（部分１７０〜１７１から構成される）を形成する。Ｃ1符号による符号化の場合、行処理回路要素１４２は、行符号器１７２及び行シーケンサ１７４から構成される。行符号器１７２は、図２に示すようなｒ1段を備えた帰還シフト・レジスタ符号器として、あるいは、代わりに、「ウィッカー等」及び「セローシ」に解説のシストリック配列または他のアーキテクチャとして適合するように実施可能なリード・ソロモン符号器である。行シーケンサ１７４は、中間配列バッファ１５１からの記号を１行ずつ行符号器１７２に入力する。行符号器１７２は、ｎ2行（それぞれ、ｎ1の記号から構成される）のそれぞれに処理を加えて、Ｃ1検査記号配列バッファ１５４に記憶されるＣ1行符号検査記号を形成する。
【００３８】
Ｃ１検査記号配列バッファ１５４は、積符号配列１３０の最初のｎ2−２ｒ2行（すなわち、ｎ1の行データ記号から成る全行のそれぞれ）に対応するＣ1行符号検査記号配列の一部１７０（ｒ1×ｎ1−２ｒ2の記号からなる大きさを有する）を列処理回路要素１４４に入力する。積符号配列１３０の最後の２ｒ2行に対応するＣ1符号検査記号配列の残りの部分１７１（ｒ1×２ｒ2の記号からなる大きさを有する）が、バッファ１５４の最後の２ｒ2行に保存される。
【００３９】
列処理回路要素１４４は、バッファ１５４におけるＣ1行符号検査記号配列の一部１７０の列を符号化して、ｒ1×２ｒ2の記号からなる大きさを有するＣ1.5列符号検査記号の配列１５５を形成する。Ｃ1.5符号で符号化する場合、列処理回路要素１４４は、列符号器１９２と列シーケンサ１９４から構成される。列符号器１９２は、図２に示すようなｒ1.5段を備えた帰還シフト・レジスタ符号器として、あるいは、代わりに、「ウィッカー等」及び「セローシ」に解説のシストリック配列または他のアーキテクチャとして適合するように実施可能なリード・ソロモン符号器である。列シーケンサ１９４は、バッファ１５４におけるＣ1検査記号配列部分１７０からの記号を１列ずつ列符号器１９２に入力する。列符号器１９２は、ｒ1列のそれぞれ（それぞれ、ｎ2−２Ｒ2の記号から構成される）に処理を加えて、Ｃ1.5列符号検査記号配列を形成する。列処理回路要素１４４は、Ｃ1.5列符号検査記号配列をＣ1.5検査記号配列バッファ１５５に送り込む。
【００４０】
ＸＯＲ加算器１４６は、ビット排他的ＯＲ演算によって、バッファ１５５におけるＣ1.5列符号検査記号配列と、バッファ１５４におけるＣ1行符号検査記号配列の部分１７１との和を１記号ずつ求めて、ｒ1×２ｒ2の記号からなる大きさを備えた、行符号検査記号配列１９８を形成する。行符号検査記号配列１９８は、原始データ・ブロック１３２、１３４、及び、Ｃ２列符号検査記号配列１６０と共に、出力配列バッファ１５２に記憶される。出力配列バッファ１５２の結果得られる内容によって、冗長度低減積符号配列１３０が形成される（図７）。
【００４１】
積符号配列１３０の冗長部分は、全部でｎ1ｒ2＋ｒ1ｒ2の記号からなるＣ2列符号検査記号配列１６０及び行符号検査記号配列１９８だけしか構成しない。これは、先行技術による積配列符号器８０によって形成される積符号配列（ｎ1ｒ2＋ｎ2ｒ1−ｒ1ｒ2の記号からなる冗長を有している）の冗長部分よりｒ1（ｎ2−２ｒ2）の記号だけ少ない。従って、冗長度低減積符号符号器３６は、大きさの等しい積符号について、先行技術による積符号符号器８０（図５）に比べると冗長度の大幅な節減を実現する。例えば、ｎ1＝１２８、ｒ1＝１２、ｎ2＝９８、及び、ｒ2＝８という典型的な積符号の大きさについて、下記の表１には、上長と低減積符号符号器３６によって実現する冗長度の節減が示されている。
【００４２】
【表２】
0003737204.tif 000003
【００４３】
次に、図８を参照すると、冗長度低減積符号復号器３８は、冗長度低減積符号符号器３６（図６）によって形成される積符号配列１３０（図７）を復号化して、チャネル３４（図１）を介した積符号配列１３０の転送時に導入されるバースト誤りを訂正する。復号器３８はＣ1行符号及びＣ1.5中間符号を利用して、チャネル３４を介した転送時に誤りを生じた積符号配列１３０のｒ2までの行（「汚染行」）２０５を突き止める。復号器３８は、次に、汚染行２０５の消失訂正のためにＣ2列符号を利用する。従って、冗長度低減積符号復号器３８によれば、積符号配列１３０の冗長度を低減して、先行技術による積配列復号器８２（図５）と同等の誤り訂正能力が得られる。
【００４４】
Ｃ1、Ｃ1.5、及び、Ｃ2積符号配列１３０に処理を施すため、復号器３８は、行処理回路要素２１０、中間処理回路要素２１２、及び、列処理回路要素２１４から構成される。復号器３８は、さらに、入力配列バッファ２２０、出力配列バッファ２２１、及び、シンドローム配列バッファ２２２から構成される。適切な位置で積符号配列に処理を加えることによって、入力配列バッファ及び出力配列バッファ２２０〜２２１の両方として、単一の物理的バッファを用いることが可能である。チャネル３４を介して転送した後、積符号配列１３０（図７参照）は、まず、入力配列バッファ２２０に記憶される。
【００４５】
行処理回路要素２１０は、Ｃ1符号によって入力配列バッファ２２０における積符号配列の行に処理を加えて、シンドローム配列を形成する。シンドローム配列を形成するため、行処理回路要素２１０は、行復号器２３０及び行シーケンサ２３２から構成される。行復号器２３０は、図２に示すようなｒ1段を備えた帰還シフト・レジスタ符号器として、あるいは、代わりに、「ウィッカー等」及び「セローシ」に解説のシストリック配列または他のアーキテクチャとして適合するように実施可能な、シンドローム発生器として用いられる（図３に関連して上述のように）リード・ソロモン符号器である。列シーケンサ２３２は、入力配列バッファ２２０からの記号を１行ずつ行復号器２３０に入力する。行復号器２３０は、積配列のｎ2の行のそれぞれ（それぞれ、ｎ1の記号から構成される）に処理を加えて、ｒ1の記号を備えた対応するシンドロームを生じさせる。行処理回路要素２１０は、入力配列バッファ２２０の行に対応するシンドローム配列バッファ２２２の行にシンドロームを送り込んで、シンドローム配列を形成する。
【００４６】
中間処理回路要素２１２は、Ｃ1.5符号に基づいてシンドローム配列の列に処理を加え、積配列の汚染行２０５を突き止める。中間処理回路要素２１２は、シンドローム配列復号器２４０及び列シーケンサ２４２から構成される。シンドローム配列復号器２４０は、図３の復号器６０と同様に、シンドローム発生器及びキー方程式ソルバによって実施可能なリード・ソロモン復号器である。列シーケンサ２４２は、シンドローム配列バッファ２２２からの記号を一度に１行ずつシンドローム配列復号器２４０に入力する。シンドローム配列復号器２４０は、次に、シンドローム配列の各列毎にｒ1.5の記号シンドロームを形成し、ｒ1.5の記号シンドロームに処理を加えて、誤り位置を判定する。誤りが突き止められるシンドローム配列の行は、入力配列バッファ２２０における積配列の汚染行２０５に対応する。
【００４７】
バースト誤りの場合、シンドローム配列の各列は、シンドローム配列の同じ行に誤りを有している可能性がある。従って、汚染行２０５の大部分は、シンドローム配列のたった１列に処理を加えるだけで突き止められる。さらに、ほんの数列に処理を加えるだけで、全ての汚染行２０５が突き止められる確率が高い。従って、本発明の実施例の中には、中間処理回路要素２１２による処理をシンドローム配列のｒ1列の一部（例えば２〜３列）に限定して、汚染行２０５の一部の検出に失敗するかもしれないという極めて可能性の低い犠牲を払うことにより、復号化プロセスをスピード・アップすることが可能なものもある。代わりに、最初の数列だけを利用して汚染行２０５を突き止め、残りの列を利用して、その位置を確認することも可能である。不具合が見つかると、追加列の処理が十分に実施される。シンドローム配列列の処理結果として、シンドローム配列復号器２４０は、汚染行リスト２４９を作成し、これが、列処理回路要素２１４に対して出力される。
【００４８】
列処理回路要素２１４は、汚染行リスト２４９に基づいて、積配列における汚染行２０５の消失訂正を実施する。列処理回路要素２１４は、列復号器２５０及び列シーケンサ２５２から構成される。列復号器２５０は、図３に示す復号器６０と同様に、シンドローム発生器、キー方程式ソルバ、及び、誤り探索及び訂正回路要素によって実施可能なリード・ソロモン復号器である。列シーケンサ２５２は、入力配列バッファ２２０から列復号器２５０に積符号配列を１列ずつ入力する。汚染行リスト２４９は、列復号器２５０にも入力される。列復号器２５０は、汚染行リスト２４９を用いて、リスト２４９において識別される汚染行２０５のそれぞれが消失していることを宣言する。列復号器２５０は、積符号配列の各列毎に、その列に関する長さがｒ2の記号からなるシンドロームを形成し、該シンドロームに処理を加えて、その列における消失した行からの各記号に訂正を施すことによって、前記列における消失を訂正する。列復号器２５０は、訂正した列を出力配列バッファ２２１に記憶する。行、中間、及び列処理回路要素２１０、２１２、及び、２１４による処理結果として、出力配列バッファ２２１には、汚染行２０５のそれぞれに（極めて高い確率で）訂正を施した、積符号配列が納められていることになる。
【００４９】
次に、図９を参照すると、冗長度低減積符号復号器３９の場合、復号器３８に修正を加えて、積符号配列１３０（図７）を復号化することによって、チャネル３４（図１）を介した積符号配列１３０の転送時に導入されるバースト誤りとランダム誤りの両方が訂正されるようになっている。復号器３８と同様、復号器３９は、Ｃ1行符号とＣ1.5中間符号を利用して、積符号配列１３０のｒ2までの汚染行２０５を突き止め、さらに、Ｃ２列符号を利用して、汚染行２０５の消去訂正を行う。復号器３９は、さらに、Ｃ1.5中間符号及びＣ1行符号を利用して、積符号配列１３０におけるランダム誤り２５８を訂正する。従って、冗長度の低減された積符号配列１３０を利用して、ランダム誤りとバースト誤りの両方を防護することが可能になる。
【００５０】
行、中間、及び、列処理回路要素２１０、２１２、２１４、及び、バッファ２２０〜２２２以外に、冗長度低減積符号復号器３９は、中間配列バッファ２６０及び訂正シンドローム配列バッファ２６２から構成される。本発明の実施例の中には、シンドローム配列バッファ２２２及び訂正シンドローム配列バッファ２６２を単一の物理的バッファとして実施可能なものもあるし、入力配列バッファ２２０、出力配列バッファ２２１、及び、中間配列バッファ２６０の全てをもう１つの単一の物理的バッファとして実施可能なものもある。
【００５１】
復号器３９の場合、行処理回路要素２１０は、Ｃ1行符号によって入力配列バッファ２２０における積符号配列１３０の行を符号化し、シンドローム配列を形成する。行処理回路要素２１０は、シンドローム配列をシンドローム配列バッファ２２２に対して出力する。中間処理回路要素２１２は、Ｃ1.5中間符号によってシンドローム配列バッファ２２２におけるシンドローム配列の列に処理を加えて、汚染行リスト２４９を生じさせ、シンドローム配列における誤りを訂正する。中間処理回路要素２１２は、汚染行リスト２４９を列処理回路要素２１４に対して出力し、訂正シンドローム配列を訂正シンドローム配列バッファ２６２に対して出力する。
【００５２】
行処理回路要素２１０は、訂正シンドローム配列を利用して、入力配列バッファ２２０における積符号配列の行のランダム誤り２５８を訂正する。行処理回路要素の行復号器２３０は、図３の復号器６０と同様、キー方程式ソルバ及び誤り探索及び訂正回路要素によって実施される。行処理回路要素２１０は、行復号器２３０のこれらのコンポーネントによって、ランダム誤り２５８を突き止めて、訂正し、結果得られる積符号配列を中間配列バッファ２６０に対して出力する。
【００５３】
列処理回路要素２１４は、次に、Ｃ2列符号によって、中間配列バッファ２６０における積符号配列の列に処理を加え、汚染行リスト２４９において識別される汚染行の消失訂正を実施する。ランダム誤り２０５とバースト誤り２５８の両方を訂正された積符号配列が、出力配列バッファ２２１に対して出力される。
【００５４】
望ましい実施例に関連して本発明の原理について解説し、例示してきたが、こうした原理を逸脱することなく、望ましい実施例の構成及び細部について修正を加えることができるのは明らかである。本発明の原理を適用することが可能な多くの見込みのある実施例を考慮することによって明らかになるように、詳細な実施例は単なる例示でしかなく、本発明の範囲を制限するものと解釈してはならない。以下に本発明の実施態様のいくつかを列記して本発明の理解の助けとする。
【００５５】
（実施態様１）
データ送信装置（２８）、データ受信装置（３０）、及び、データ送信装置からデータ受信装置にデータを転送するチャネル（３４）を備えた誤り訂正システム（２０）における冗長度を低減する方法において、
ｎ1ｒ2＋ｒ1ｒ2の冗長記号（１６０、１９８）を有するｎ1×ｎ2の記号からなる積符号配列（１３０）をなすように、データ送信装置において原始データ記号を符号化し（２２）、これによって、配列のｒ2までの汚染行（２０５）を検出し、各列毎にｒ2までの消去箇所を訂正することができるようにするするステップ（ここで、ｎ1、ｎ2、ｒ1、及び、ｒ2は正の整数であり、各記号は、整数ｑの記号を備えたアルファベットから選択される）と、
通信チャネルで宛先に積符号配列を送信するステップと、
原始データ記号を回復するため、宛先において積符号配列を復号化するステップとを備えた、
誤り訂正方法。
【００５６】
（実施態様２）
前記復号化するステップが、
積符号配列（１３０）及び冗長記号（１６０、１９８）に処理を施して、積符号配列の汚染行を識別し、これによって、１−εの確率でｒ2までの汚染行を識別することができるようにするステップ（ここで、εはｒ1に対して指数関数的に減少する数である）と、
積符号配列及び冗長記号に処理を施して、汚染があると識別された積符号配列の行を訂正し、これによって、ｒ2までの行を訂正することができるようにするステップとを備えたことを特徴とする、
実施態様１に記載の誤り訂正方法。
【００５７】
（実施態様３）
前記符号化が、
それぞれ、ｋ1×ｋ2（ここで、ｋ1及びｋ2は整数である）の記号とｒ1 ×（ｋ2ーｒ2 ）の記号からなる大きさを備えた積符号配列の第１の部分（１３２）及び第２の部分（１３４）に原始データ記号を充填するステップと、
第１の符号化に基づいて積符号配列の第１の部分の列に処理を加えることによって、第１の部分の列に１対１に関連した長さがｒ2の記号からなる第１の符号化検査記号を形成するステップと、
ｋ1×ｒ2の記号からなる大きさを備えた積符号配列の第３の部分（１６０）に第１の符号化検査記号を充填するステップと、
第２の符号化に基づいて、ｋ1×２ｒ2の記号からなる大きさを備え、積符号配列の第３の部分と積符号配列の第１の部分の第１の小部分から構成され、この第１の小部分がｋ1×ｒ2の記号からなる大きさを備えている、積符号配列の第４の部分（１３２、１６０）の行に処理を加えることによって、積符号配列の第４の部分の処理済み行に１対１に関連した長さがｒ1の記号からなる第２の符号化検査記号を形成し、この第２の符号化検査記号によって、ｒ1×２ｒ2の記号からなる大きさを備えた第２の検査記号配列（１７１）が形成されるようにするステップと、
第２の符号化に基づいて、ｎ1×（ｎ2−２ｒ2）の記号からなる大きさを備え、積符号配列の第２の部分と積符号配列の第１の部分の第２の小部分から構成され、この第２の小部分がｋ1×（ｎ2−２ｒ2 ）の記号からなる大きさを備えている、積符号配列の第５の部分（１３２、１３４）の行に処理を加えることによって、積符号配列の第５の部分の行に１対１に関連した長さがｒ1の記号からなる第３の符号化検査記号を形成し、この第３の符号化検査記号によって、ｒ1×（ｎ2−２ｒ2 ）記号からなる大きさを備えた第３の検査記号配列（１７０）が形成されるようにするステップと、
第３の符号化に基づいて、第３の検査記号配列の列に処理を加えることによって、第３の検査記号配列の列に１対１に関連した長さが２ｒ2の第４の符号化検査記号を形成し、この第４の符号化検査記号によって、ｒ1×２ｒ2の記号からなる大きさを備えた第４の検査記号配列（１５５）が形成されるようにするステップと、
第４の検査記号配列と第２の検査記号配列の和を求めるステップと、
積符号配列の第６の部分（１９８）に第４の検査記号配列と第２の検査記号配列の部分との和を充填するステップとを備えたことを特徴とする、
実施態様１に記載の誤り訂正方法。
【００５８】
（実施態様４）
復号化のステップが、
第２の符号化に基づいて積符号配列（１３０）の行に処理を加えることによって、ｒ1×ｎ2の記号からなる大きさを備えたシンドローム配列（２２２）が形成されるようにするステップと、
第３の符号化に基づいてシンドローム配列の少なくとも１つの列に処理を加えることによって、積符号配列のｒ2までの汚染行（２０５）を消去するために識別するステップと、
第１の符号化に基づいて積符号配列の列に処理を加えることによって、消去のために識別された行を訂正するステップとを備えたことを特徴とする、
実施態様３に記載の誤り訂正方法。
【００５９】
（実施態様５）
符号化が、
積符号配列（１３０）において、行１〜ｎ2−２ｒ2の列１〜ｎ1（１３２）及び行ｎ2−２ｒ2＋１〜ｎ2−ｒ2の列１〜ｋ1（１３４）に原始データ記号を充填するステップと、
積符号配列の列１〜ｋ1の行１〜ｋ2における原始データ記号について、列と１対１に関連し、それぞれ、長さがｒ2の第１の列符号化検査記号を形成するステップと、
積符号配列において、行ｎ2−ｒ2＋１〜ｎ2（１６０）の列１〜ｋ1に第１の列符号化検査記号を充填するステップと、
積符号配列の行ｎ2−２ｒ2＋１〜ｎ2の列１〜ｋ1における原始データ記号及び第１の列符号化検査記号について、行に１対１に関連し、それぞれ、長さがｒ1の部分行符号化検査記号（１７１）を形成するステップと、
積符号配列の行ｎ2−２ｒ2＋１〜ｎ2に関連した部分行符号化検査記号を保存するステップと、
積符号配列の行１〜ｎ2−２ｒ2の列１〜ｎ1における原始データ記号について、行と１対１に関連し、それぞれ、長さがｒ1の完全な行符号化検査記号（１７０）を形成するステップと、
完全な行符号化配列について、列と１対１に関連し、それぞれ、長さが２ｒ2の第２の列符号化検査記号（１５５）を形成するステップと、
保存された部分行符号化検査記号と第２の列符号化検査記号の和を求めるステップと、
積符号配列において、行ｎ2−２ｒ2＋１〜ｎ2の列ｋ1＋１〜ｎ1に部分行符号化検査記号と第２の列符号化検査記号の和を充填するステップとを備えたことを特徴とする、
実施態様１に記載の誤り訂正方法。
【００６０】
（実施態様６）
復号化ステップが、
積符号配列（１３０）の行１〜ｎ2の列１〜ｎ1について、積符号配列の行と１対１に関連し、それぞれ、長さがｒ1の行シンドロームを形成し、該行シンドロームによって、ｒ1×ｎ2の大きさの行シンドローム配列（２２２）が形成されるようにするステップと、
行シンドローム配列の少なくとも１つの列について、行シンドローム配列の少なくとも１つの列に１対１に関連し、それぞれ、長さが２ｒ2の少なくとも１つの第１の列シンドロームを形成するステップと、
少なくとも１つの第１の列シンドロームを用いて、積符号配列の汚染行（２０５）を識別するステップと、
積符号配列の列１〜ｎ1の行１〜ｎ2における原始データ記号及び検査記号について、積符号配列の列に１対１に関連し、それぞれ、長さがｒ2の第２の列シンドロームを形成するステップと、
第２の列シンドロームを利用して、積符号配列の汚染行の消去を訂正するステップとを備えたことを特徴とする、
実施態様１に記載の誤り訂正方法。
【００６１】
（実施態様７）
冗長度を低減した積符号配列（１３０）を利用する誤り訂正システム（２０）において、
行１〜（ｋ1−ｒ2）の列１〜ｎ1（１３２）、及び、（ｋ1−ｒ2＋１）〜ｋ2の列１〜ｋ1（１３４）に原始データ記号を記憶するためのｎ1の列とｎ2の行からなる配列バッファ（１５０〜１５２）（ここで、ｎ1、ｎ2、ｋ1、ｋ2、ｒ1、及び、ｒ2は、関係式ｎ1＝ｋ1＋ｒ1及びｎ2＝ｋ2＋ｒ2を満たす正の整数である）と、
配列バッファの列１〜ｋ1の原始データ記号を列符号で符号化することによって、列に１対１に関連し、配列バッファのそれぞれの関連した列の行（ｋ2＋１）〜ｎ2に記憶される、長さがｒ2の記号からなる列検査記号（１６０）を形成する列符号器（１６２）と、
配列バッファの行１〜（ｋ2−ｒ2）の原始データを行符号で符号化することによって、長さがｒ1の記号からなる第１の行検査記号（１７０）を形成し、配列バッファの行（ｋ2−ｒ2＋１）〜ｎ2の原始データ記号及び列検査記号を行符号で符号化することによって、長さがｒ１の記号からなる第２の行検査記号（１７１）を形成する行符号器（１７２）と、
第１の行検査記号の列を中間符号で符号化することによって、長さが２ｒ2の記号からなる中間検査記号（１５５）を形成する列符号器（１９２）と、
第２の行検査記号と中間検査記号の和を求めることによって、ｒ1の記号×２ｒ2記号からなる大きさの検査記号配列を形成する加算器から構成され、検査記号配列が、配列バッファの行（ｋ2−ｒ2＋１）〜ｎ2の列（ｋ1＋１）〜ｎ1（１９８）に記憶され、これによって、ｎ1ｒ2＋ｒ1ｒ2の冗長記号を有する積符号配列が形成されることを特徴とする、
誤り訂正システム。
【００６２】
（実施態様８）
積符号配列（１３０）の行を行符号で復号化することによって、積符号配列の行と１対１に関連した、長さがｒ1の記号からなるシンドロームを形成する行復号器（２３０）と、
各シンドロームをその１つの行に記憶して、シンドローム配列をなすようにシンドロームを記憶する、ｎ2の行とｒ1の列を備えたシンドローム配列バッファ（２２２）と、
中間符号でシンドローム配列の列を復号化することによって、積符号配列の汚染行（２０５）を突き止めるシンドローム復号器（２４０）と、
積符号配列の列を列符号で復号化することによって、積符号配列の汚染行の消去を訂正する列復号器（２５０）から構成されることを特徴とする、
実施態様７に記載の誤り訂正システム。
（実施態様９）
ｎ1ｒ2＋ｒ1ｒ2の冗長記号を有する積符号配列（１３０）を利用する誤り訂正システム（２０）において（ここで、ｎ1、ｎ2、ｒ1、及び、ｒ2は整数である）、
積符号配列の行を行符号で復号化することによって、積符号配列の行と１対１に関連する、長さがｒ1の記号からなるシンドロームを形成する行復号器（２３０）と、
各シンドロームをその１つの行に記憶して、シンドローム配列をなすようにシンドロームを記憶する、ｎ2の行とｒ1の列を備えたシンドローム配列バッファ（２２２）と、
中間符号でシンドローム配列の列を復号化することによって、積符号配列の汚染行（２０５）を突き止めるシンドローム復号器（２４０）と、
積符号配列の列を列符号で復号化することによって、積符号配列の汚染行の消去を訂正する列復号器（２５０）から構成される、
誤り訂正システム。
【００６３】
（実施態様１０）
シンドローム復号器（２４０）が、さらに、シンドローム配列の列を中間符号で復号化することによって、シンドローム配列の誤りを訂正する働きをすることと、
行復号器（２３０）が、さらに、訂正されたシンドローム配列を利用して、積符号配列の行を復号化することによって、積符号配列のランダム誤りを訂正する働きをすることを特徴とする、
実施態様９に記載の誤り訂正システム。
【００６４】
【発明の効果】
以上詳述したように、誤り検出、訂正能力を従来と同等に保ちつつ冗長度を減らすことができるので実用に供して益がある。
【図面の簡単な説明】
【図１】符号化及び復号化を利用して、誤り訂正を行う通信及び／または記憶システムの略ブロック図である。
【図２】図１のシステムにおける誤り訂正符号化に利用可能な、先行技術における典型的なリード・ソロモン符号器のブロック図である。
【図３】図１のシステムにおける誤り訂正復号化に利用可能な、先行技術における典型的なリード・ソロモン復号器のブロック図である。
【図４】２次元積符号配列に基づいて、図１のシステムにおける誤り訂正符号化に利用可能な、先行技術における典型的な符号器のブロック図である。
【図５】２次元積符号配列に基づいて、図１のシステムにおける誤り訂正復号化に利用可能な、先行技術における典型的な復号器のブロック図である。
【図６】冗長度を低減した２次元符号配列に基づいて、誤り訂正符号化を行う、本発明の望ましい実施例による図１のシステムに利用可能な符号器のブロック図である。
【図７】図６の符号器によって本発明に基づいて符号化された、冗長度を低減した２次元符号配列を示すブロック図である。
【図８】冗長度を低減した２次元符号配列に基づいて、バースト誤り訂正を行う、本発明の望ましい実施例による図１のシステムに利用可能な復号器のブロック図である。
【図９】冗長度を低減した２次元符号配列に基づいて、バースト誤り及びランダム誤り訂正を行う、本発明の望ましい実施例による図１のシステムに利用可能な復号器のブロック図である。
【符号の説明】
２０    通信及び／または情報記憶システム
２２    符号器
２４    復号器
２８    データ発信側装置
３０    データ消費側装置
３４    通信及び／または記憶チャネル
３６    符号器
３８    復号器
３９    復号器
１４０  列処理回路要素
１４２  行処理回路要素
１４４  列処理回路要素
１４６  ＸＯＲ加算器
１５０  入力配列バッファ
１５２  出力配列バッファ
１５４  検査記号配列バッファ
１５５  検査記号配列バッファ
１６２  列符号器
１６４  列シーケンサ
１７２  行符号器
１７４  行シーケンサ
１９２  列符号器
１９４  列シーケンサ
２１０  行処理回路要素
２１２  中間処理回路要素
２１４  列処理回路要素
２２０  入力配列バッファ
２２１  出力配列バッファ
２２２  シンドローム配列バッファ
２３０  行復号器
２３２  行シーケンサ
２４０  シンドローム配列復号器
２４２  列シーケンサ
２５０  列復号器
２５２  列シーケンサ
２６０  中間配列バッファ
２６２  訂正シンドローム配列バッファ
【図１】
0003737204.tif 000004
【図２】
0003737204.tif 000005
【図３】
0003737204.tif 000006
【図４】
0003737204.tif 000007
【図５】
0003737204.tif 000008
【図６】
0003737204.tif 000009
【図７】
0003737204.tif 000010
【図８】
0003737204.tif 000011
【図９】
0003737204.tif 000012