(57)【要約】【課題】３２ビットのヘッダパケットと６４ビットのボディパケットに対する誤り検査を効率よく実行する。【解決手段】誤り検査装置５００において、ヘッダ検査部１２０およびボディ検査部２００は、同じ３２クロックにてヘッダパケットおよびボディパケットのシンドロームを求める。ヘッダ訂正部１３０および偶数ビット訂正部３５０は、同じ３２クロックにてヘッダパケットおよびボディパケットに対して誤り訂正を実行する。すなわち、ヘッダ処理部１００およびボディ処理部３００は、ヘッダパケットおよびボディパケットの誤り検査を時間を合わせて終了する。【選択図】図３
2007110258.tif 000002
【特許請求の範囲】
【請求項１】
検査ビットを含む符号列を受け、その符号列に含まれる各ビットに対する所定の演算の結果をクロックにより順次シフトする複数のレジスタと、
前記複数のレジスタに保持される値を仮定したうえで、複数クロック後に前記複数のレジスタが保持すべき値を予め記録した変換テーブルと、
を有し、所定クロックにわたる演算の終了時点において、前記複数のレジスタに前記符号列のビット誤りに関する情報を残留せしめることを特徴とする誤り検査装置。
【請求項２】
前記複数のレジスタに実際に保持されている値が前記の仮定と相違する場合、前記複数のレジスタに保持すべき値を補正する補正回路をさらに備えることを特徴とする請求項1に記載の誤り検査装置。
【請求項３】
単一の符号列を分解して得られ、それぞれが検査ビットを含む第１符号列および第２符号列に対し、ビット誤りの検査を実行する誤り検査装置であって、
前記第１符号列に含まれる各ビットに対する所定の演算の結果をクロックにより順次シフトする複数のレジスタを有し、それら複数のレジスタに前記第１符号列のビット誤りに関する情報を残留せしめる第１検査部と、
前記第２符号列に含まれる各ビットに対する所定の演算の結果をクロックにより順次シフトする複数のレジスタと、複数クロック後にそれら複数のレジスタが保持すべき値を予め記録した変換テーブルとを有し、所定クロックにわたる演算の終了時点において、それら複数のレジスタに前記第２符号列のビット誤りに関する情報を残留せしめる第２検査部と、
を備えることを特徴とする誤り検査装置。
【請求項４】
前記第１符号列のビット数をＮ１、前記第２符号列のビット数をＮ２としたとき、Ｎ１＜Ｎ２であることを特徴とする請求項３に記載の誤り検査装置。
【請求項５】
前記第１検査部による処理の時間をＴ１、前記第２検査部による処理の時間をＴ２とし、Ｒ１＝Ｎ１／Ｔ１、Ｒ２＝Ｎ２／Ｔ２としたとき、Ｒ１＜Ｒ２であることを特徴とする請求項４に記載の誤り検査装置。
【請求項６】
前記複数クロックの数は、第２検査部による１クロックあたりの処理ビット数と等しいことを特徴とする請求項３から５のいずれかに記載の誤り検査装置。
【請求項７】
前記第１検査部によって検出された、第１符号列におけるビット誤りに関する情報をもとに、そのビット誤りを訂正する第１訂正部と、
前記第２検査部によって検出された、第２符号列におけるビット誤りに関する情報をもとに、そのビット誤りを訂正する第２訂正部と、
をさらに備えることを特徴とする請求項３から６のいずれかに記載の誤り検査装置。
【請求項８】
前記第２訂正部は、前記複数クロックに対応した数の部分訂正部を備え、それら部分訂正部はクロックごとに処理をインタリーブして受け持つことを特徴とする請求項７に記載の誤り検査装置。
【請求項９】
前記部分訂正部のそれぞれは、ビット誤りを起こした位置に対応するシンドロームを生成する生成部と、
前記第２検査部によって検出された、第２符号列におけるビット誤りに関する情報と、前記生成部によって生成されたシンドロームとを比較する比較部と、
を含み、前記生成部は、
所定の初期値をクロックにより順次シフトする複数のレジスタと、
前記複数のレジスタに保持される値を仮定したうえで、複数クロック後に前記複数のレジスタが保持すべき値を予め記録した生成テーブルと、
を有し、クロックごとに、前記複数のレジスタにビット誤りを起こした位置に対応するシンドロームを残留せしめることを特徴とする請求項８に記載の誤り検査装置。
【請求項１０】
前記第１検査部と、前記第２検査部とが、１つの半導体基板上に一体集積化されたことを特徴とする請求項３から９のいずれかに記載の誤り検査装置。
【請求項１１】
単一の音声符号列を対象とする請求項３から１０のいずれかに記載の誤り検査装置と、
前記誤り検査装置にて誤り検査を実行した音声符号列をもとに、音声データを再生する再生部と、
を備えることを特徴とする再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号列に対する誤り検査を実行する誤り検査装置およびそれを用いた再生装置に関する。
【背景技術】
【０００２】
ＨＤＭＩ（High-Definition Multimedia Interface）は、ＤＶＩ（Digital Visual Interface）をベースに音声やコンテンツプロテクション機能を追加したデジタル・インターフェース規格である。ＨＤＭＩ規格によれば、ベースバンドの映像データに加えて音声データおよび機器間のコントロール信号を一緒に伝送できる。ＨＤＭＩ規格は、映像信号のデジタル伝送方式として、ＴＭＤＳ（Transition Minimized Differential Signaling）方式を採用する。
【０００３】
ＴＭＤＳ方式は、Ｒ（Red）、Ｇ（Green）、Ｂ（Blue）の３種類の映像信号とクロック信号の伝送にそれぞれ１チャネルずつ、合計４チャネル（以下、「１リンク」という）の伝送路を用いる。ＨＤＭＩ規格は、ＴＭＤＳのＲ、Ｇ、Ｂそれぞれのチャネルにおける水平、垂直同期間（以下、「ブランキング区間」という）のデータアイランドに対し、音声符号列を割り当てる。
【０００４】
音声符号列の１パケットは、ヘッダパケットとボディパケットとを含んで構成される。ヘッダパケットは３２ビットのＢＣＨ符号（Bose Chaudhuri Hocquenghem）であり、Ｒチャネル（以下、「ＣＨ０」という）に割り当てられる。ボディパケットは６４ビットのＢＣＨ符号であり、その偶数ビットはＧチャネル（以下、「ＣＨ１」という）に、奇数ビットはＢチャネル（以下、「ＣＨ２」という）にそれぞれ割り当てられる。ボディパケットは偶数ビットおよび奇数ビットがＣＨ１およびＣＨ２に分割されて並列に伝送されるので、ヘッダパケットが１ビット伝送される間に、ボディパケットは２ビット伝送される。すなわち、互いにビット数の異なるヘッダパケットとボディパケットは、同じ３２クロックで伝送される。
【０００５】
ＢＣＨ符号は、巡回符号の一種であり、所定の割り算処理に対する剰余が０となる。したがって、伝送されたヘッダパケットおよびボディパケットのそれぞれに対して所定の割り算処理を実行した剰余（以下、「シンドローム」という）を求めることにより、ヘッダパケットおよびボディパケットが正しく伝送されたか否かを判断する誤り検査を実行できる。割り算処理を実行する一般的な回路は、たとえば下記特許文献１に記載されている。
【特許文献１】特開昭６３−１９９２２号公報（第５図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般的な回路を用いる場合、３２ビットのＢＣＨ符号のシンドロームを求めるには３２クロックを要し、６４ビットのＢＣＨ符号のシンドロームを求めるには６４クロックを要する。すなわち、ヘッダパケットのシンドロームは３２クロックで求められるのに対し、ボディパケットのシンドロームを求めるには６４クロックが必要となる。一方、上述のように、ＨＤＭＩ規格ではヘッダパケットとボディパケットはそれぞれ３２クロックで伝送される。
【０００７】
パケットが連続して伝送される場合、ヘッダパケットのシンドロームは３２クロックで求められるので検査待ちの符号が渋滞することはない。しかし、ボディパケットについては、シンドロームを求めるには６４クロックが必要なため、検査待ちの符号が渋滞してしまう。また、ヘッダパケットのシンドロームが求められた後、ボディパケットのシンドロームが求められるまでにはさらに３２クロックあるため、この間ヘッダパケットは待機状態となってしまい効率が悪い。
【０００８】
本発明者はこうした状況に鑑みて本発明をなしたものであり、その目的は、符号列をスムーズに検査できる誤り検査装置およびそれを用いた再生装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある態様の誤り検査装置は、検査ビットを含む符号列を受け、その符号列に含まれる各ビットに対する所定の演算の結果をクロックにより順次シフトする複数のレジスタと、複数のレジスタに保持される値を仮定したうえで、複数クロック後に複数のレジスタが保持すべき値を予め記録した変換テーブルと、を有し、所定クロックにわたる演算の終了時点において、複数のレジスタに符号列のビット誤りに関する情報を残留せしめる。
【００１０】
複数のレジスタは、検査ビットを含み、ｎ列に分割されて並列に入力された符号列に対する所定の変換の結果をクロックにより順次シフトしてもよい。所定の演算の結果は、符号列を生成するもとになった生成多項式による変換の結果であってもよい。変換テーブルは、符号列の入力と、複数のレジスタの少なくとも２つからのフィードバック入力とを受け、複数のレジスタに保持される値を仮定した場合に複数クロック後に複数のレジスタが保持すべき値を出力してもよい。複数のレジスタに実際に保持されている値が上記の仮定と相違する場合、複数のレジスタに保持すべき値を補正する補正回路をさらに備えてもよい。
【００１１】
この態様によると、変換テーブルは、複数のレジスタに保持される値を仮定したうえで、複数クロック後に複数のレジスタが保持すべき値を予め記録しているので、その記録した値を用いることで、符号列のビット誤りに関する情報をスムーズに特定できる。
【００１２】
本発明の別の態様もまた、誤り検査装置である。この装置は、単一の符号列を分解して得られ、それぞれが検査ビットを含む第１符号列および第２符号列に対し、ビット誤りの検査を実行する誤り検査装置であって、第１符号列に含まれる各ビットに対する所定の演算の結果をクロックにより順次シフトする複数のレジスタを有し、それら複数のレジスタに第１符号列のビット誤りに関する情報を残留せしめる第１検査部と、第２符号列に含まれる各ビットに対する所定の演算の結果をクロックにより順次シフトする複数のレジスタと、複数クロック後にそれら複数のレジスタが保持すべき値を予め記録した変換テーブルとを有し、所定クロックにわたる演算の終了時点において、それら複数のレジスタに第２符号列のビット誤りに関する情報を残留せしめる第２検査部と、を備える。
【００１３】
第１符号列のビット数をＮ１（Ｎ１は自然数）、第２符号列のビット数をＮ２（Ｎ２は自然数）としたとき、Ｎ１＜Ｎ２であってもよい。第１検査部による処理の時間をＴ１、第２検査部による処理の時間をＴ２とし、Ｒ１＝Ｎ１／Ｔ１、Ｒ２＝Ｎ２／Ｔ２としたとき、Ｒ１＜Ｒ２であってもよい。複数クロックの数は、第２検査部による１クロックあたりの処理ビット数と等しくてもよい。
【００１４】
この態様によると、変換テーブルは、複数クロック後にそれら複数のレジスタが保持すべき値を予め記録しているので、その記録した値を用いることで、第２符号列のビット誤りに関する情報をスムーズに特定できる。すなわち、第２符号列の検査を高速化しうる。
【００１５】
第１検査部によって検出された、第１符号列におけるビット誤りに関する情報をもとに、そのビット誤りを訂正する第１訂正部と、第２検査部によって検出された、第２符号列におけるビット誤りに関する情報をもとに、そのビット誤りを訂正する第２訂正部と、をさらに備えてもよい。第２訂正部は、複数クロックに対応した数の部分訂正部を備え、それら部分訂正部はクロックごとに処理をインタリーブして受け持ってもよい。この場合、第２符号列のビット誤りの訂正を高速化しうる。
【００１６】
部分訂正部のそれぞれは、ビット誤りを起こした位置に対応するシンドロームを生成する生成部と、第２検査部によって検出された、第２符号列におけるビット誤りに関する情報と、生成部によって生成されたシンドロームとを比較する比較部と、を含み、生成部は、所定の初期値をクロックにより順次シフトする複数のレジスタと、複数のレジスタに保持される値を仮定したうえで、複数クロック後に複数のレジスタが保持すべき値を予め記録した生成テーブルと、を有し、クロックごとに、複数のレジスタにビット誤りを起こした位置に対応するシンドロームを残留せしめてもよい。この場合、部分訂正部のそれぞれにおける生成部は、複数のレジスタに保持される値を仮定したうえで、複数クロック後に複数のレジスタが保持すべき値を予め記録した生成テーブルを有するので、生成テーブルを参照することにより、複数クロックに対応したビット位置に誤りがあった場合に対応するシンドロームを生成できる。
【００１７】
第１検査部と、第２検査部とが、１つの半導体基板上に一体集積化されてもよい。さらに、第１訂正部と第２訂正部も併せて１つの半導体基板上に一体集積化されてもよい。この場合、誤り検査装置を再生装置などに搭載しやすい。
【００１８】
本発明のさらに別の態様は、再生装置である。この装置は、単一の音声符号列を対象とする上記の誤り検査装置と、誤り検査装置にて誤り検査を実行した音声符号列をもとに、音声データを再生する再生部と、を備える。この態様によれば、単一の音声符号列がスムーズに検査されるので、音声データの再生がスムーズに行える。
【００１９】
なお、以上の構成要素の任意の組合せ、本発明の表現を、方法、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２０】
本発明によれば、符号列をスムーズに検査できる。
【発明を実施するための最良の形態】
【００２１】
実施の形態は、ＨＤＭＩ規格に準拠した受信装置に含まれる再生装置に関する。図１は、実施の形態において再生の対象とするＢＣＨ音声符号のストリームの構成を示す。ただし、説明を明確にするために、プリアンブルおよびガードバンドは省略している。横軸ｔは、時間を示す。ＣＨ０、ＣＨ１およびＣＨ２は、それぞれＴＭＤＳのＲ、Ｇ、Ｂのチャネルに相当する。音声符号列は、各チャネルにおけるブランキング区間Ｔのデータアイランドに割り当てられる。ＨＤＭＩ規格では、１つのブランキング区間Ｔにおいて最大１８パケットを伝送できる。図１は１つのブランキング区間Ｔにおいて１８パケットを伝送する場合を示している。
【００２２】
音声符号列は、ヘッダの符号列とボディの符号列を含んで構成される。ヘッダの符号列はＣＨ０に、ボディの符号列の偶数ビットはＣＨ１に、ボディの符号列の奇数ビットはＣＨ２に、それぞれ割り当てられ、タイミングを合わせて伝送される。ヘッダの符号列が１クロックあたり１ビット伝送される。一方、ボディの符号列は偶数ビットおよび奇数ビットに分割されてＣＨ１およびＣＨ２にて並列に伝送されるので、１クロックあたり２ビット伝送される。ヘッダパケットは３２ビット、ボディパケットは６４ビットであるから、ヘッダパケットおよびボディパケットの伝送は、同時に開始され、３２クロックを経て同時に終了される。
【００２３】
図２（ａ）−（ｂ）は、図１におけるヘッダパケットおよびボディパケットのビット配列を示す。  
図２（ａ）において、ヘッダパケットは、第０ビット〜第３１ビットの３２ビットで構成される。Ｈ１は情報ビットを示し、Ｈ２は検査ビットを示す。すなわち、ヘッダパケットのうち、最初の２４ビットは情報ビットであり、最後の８ビットは検査ビットである。
図２（ｂ）において、ボディパケットは、第０ビット〜第６３ビットの６４ビットで構成される。Ｂ１は情報ビットを示し、Ｂ２は検査ビットを示す。すなわち、ボディパケットのうち、最初の５６ビットは情報ビットであり、最後の８ビットは検査ビットである。ヘッダパケットおよびボディパケットは、送信側にてＨＤＭＩで規定されたＢＣＨ符号器によりＢＣＨ検査符号を連結した符号語として生成されるものである。
【００２４】
ＨＤＭＩのＢＣＨ符号は、１ビットの誤りの場合、その誤りの位置により特定の８ビットのシンドロームを示す。誤りがない場合、シンドロームは０である。２ビット以上の誤りの場合、シンドロームは０以外の値を示すが、誤りの位置を特定できない。したがって、所定の割り算処理により得られたシンドロームをもとに、ヘッダパケットおよびボディパケットのそれぞれに対し、１ビットの誤りは訂正でき、２ビット以上の誤りは検出できるが訂正できない。
【００２５】
図３は、実施の形態にかかる再生装置７００の構成を示す。  
再生装置７００は、伝送路ＣＨ０〜ＣＨ２と、誤り検査装置５００と、再生部６００とを備える。
【００２６】
誤り検査装置５００は、ヘッダ処理部１００と、ボディ処理部３００とを備える。
ヘッダ処理部１００は、ヘッダ遅延部１１０と、ヘッダ検査部１２０と、ヘッダ訂正部１３０とを備える。ヘッダ訂正部１３０は、第１生成部１４０と、第１比較部１６０と、第１加算器１８０とを含む。  
【００２７】
ボディ処理部３００は、偶数ビット遅延部３２０と、奇数ビット遅延部３４０と、ボディ検査部２００と、偶数ビット訂正部３５０と、奇数ビット訂正部３７０と、結合部４８０とを備える。偶数ビット訂正部３５０は、第２生成部２５０と、第２比較部３６０と、第２加算器４２０とを含む。奇数ビット訂正部３７０は、第３生成部２７０と、第３比較部３８０と、第３加算器４４０とを含む。
【００２８】
伝送路ＣＨ０〜ＣＨ２は、図示しないＨＤＭＩ送信デバイスにて生成した信号から分離した音声符号列を伝送する。ＣＨ０はヘッダの符号列を伝送する。ＣＨ１はボディの符号列の偶数ビットを伝送し、ＣＨ２はボディの符号列の奇数ビットを伝送する。誤り検査装置５００は、伝送路ＣＨ０〜ＣＨ２にて伝送した音声符号列に対して誤り検査を実行する。再生部６００は、誤り検査装置５００にて誤り検査を実行した音声符号列をもとに、音声データを再生する。
【００２９】
ヘッダ処理部１００は、ＣＨ０から入力されたヘッダの符号列に所定の演算を施すことによりビット誤りの検査を実行する。誤り検査の結果、ヘッダの符号列の各パケットに１ビットの誤りがあればその誤りを訂正し、２ビット以上の誤りがあった場合は、ＥＣＣ（Error Cheak and Correct）不可能のエラーとして処理する。
【００３０】
ボディ処理部３００は、ＣＨ１およびＣＨ２から入力されたボディの符号列に対し、所定の演算を施すことによりビット誤りの検査を実行したうえで、偶数ビットと奇数ビットとを結合する。誤り検査の結果、ボディの符号列の各パケットに１ビットの誤りがあればその誤りを訂正し、２ビット以上の誤りがあった場合は、ＥＣＣ不可能のエラーとして処理する。
【００３１】
ＣＨ０から入力されたヘッダの符号列は、ヘッダ遅延部１１０とヘッダ検査部１２０とに分配される。ヘッダ遅延部１１０は、入力されたヘッダの符号列を所定のクロック遅延させ、第１加算器１８０に出力する。所定のクロックは、ヘッダ検査部１２０にてヘッダ符号列の１パケットに対してビット誤りの検査をするのに要するクロックに対応して決まる。この遅延により、ＣＨ０から入力されたヘッダパケットの各ビットの値は、第１比較部１６０がその各ビットの値の正否を第１加算器１８０に出力するタイミングに合わせて第１加算器１８０に出力される。ヘッダ検査部１２０は、ＣＨ０から入力されたヘッダの符号列に対し、生成多項式ｘ８＋ｘ７＋ｘ６＋１による割り算処理を実行してヘッダパケットのシンドロームを求め、第１比較部１６０にパラレル出力する。ただし、ヘッダ検査部１２０と第１比較部１６０とを結ぶ経路は１本にまとめて示している。
【００３２】
図４は、図３におけるヘッダ検査部１２０の構成を示す。ヘッダ検査部１２０は、ＨＤＭＩで規定されたＢＣＨ符号器と同様の構成であり、その構成は周知であるので、概略のみにとどめる。
【００３３】
ヘッダ検査部１２０は、レジスタＲ１０〜Ｒ１７と、排他的論理和回路ＸＯＲ１８〜ＸＯＲ２０とを含む。レジスタＲ１０〜Ｒ１７の初期値は０である。ＣＨ０から３２ビットのヘッダパケットが入力され終わった時点で、レジスタＲ１０〜Ｒ１７にはそのヘッダパケットのシンドロームが保持される。すなわち、３２ビットのヘッダパケットのシンドロームは３２クロックで求められる。保持されたシンドロームは次のクロックにて第１比較部１６０にパラレル出力される。図３にもどる。
【００３４】
第１生成部１４０は、ＣＨ０から入力されたヘッダパケットに１ビットの誤りがあった場合における、誤りがあった位置に対応するシンドロームをクロックごとに順次生成し、第１比較部１６０に順次パラレル出力する。すなわち、第１生成部１４０は、最初のクロックにてヘッダパケットの第０ビットの位置に誤りが発生した場合に対応するシンドロームを生成し、第１比較部１６０に出力する。次のクロックにて第１ビットの位置に誤りが発生した場合に対応するシンドロームを生成して出力する。以降のクロックにおいても同様にシンドロームを生成して出力する。したがって、第１生成部１４０は、３２クロックの間にヘッダパケットの第０ビットから第３１ビットまでの位置に誤りが発生した場合に対応するシンドロームを順次生成し、第１比較部１６０に順次パラレル出力する。ただし、第１生成部１４０と第１比較部１６０とを結ぶ経路は１本にまとめて示している。
【００３５】
図５は、図３の第１生成部１４０の構成を示す。
第１生成部１４０は、レジスタＲ０〜Ｒ７と、排他的論理和回路ＸＯＲ８〜ＸＯＲ１０とを含む。第１生成部１４０の構成は、レジスタのデータシフトの方向が逆である点を除き、図４のヘッダ検査部１２０の構成、すなわち、ＨＤＭＩで規定されたＢＣＨ符号器の構成と同様である。これは、ＢＣＨ符号語に１ビットの誤りがあった場合のシンドロームが、所定の初期値からＢＣＨ符号器による連続的な演算により、誤りがあった位置順に求められるという原理を用いたことによる。ただし、誤りがあった位置順を第０ビットの位置から第３１ビットの位置に向かう順にするために、レジスタのデータシフトの方向が逆となっている。
【００３６】
第１生成部１４０のレジスタＲ０〜Ｒ７には、設定された初期値として［０１０１１１０１］が保持されている。この初期値は、ヘッダパケットの１ビットの誤りが第０ビットの位置にあった場合に対応するシンドロームである。ＸＯＲ８の一方の入力端子には、レジスタＲ７からのフィードバックが入力され他方の入力端子には常に０が入力される。設定された初期値を各クロックにてシフトすることで、レジスタＲ０〜Ｒ７にはヘッダパケットの１ビットの誤りがあった位置に対応したシンドロームがクロックごとに位置順に保持される。レジスタＲ０〜Ｒ７に保持された値は、クロックごとにシフトされるとともに図３の第１比較部１６０にパラレル出力される。図３にもどる。
【００３７】
第１比較部１６０は、ヘッダ検査部１２０からパラレルに出力されたシンドロームを記憶し、記憶したシンドロームと第１生成部１４０から入力されたシンドロームとをクロックごとに順次パラレルに比較する。第１比較部１６０は、論理回路を用いるなどして容易に構成できる。比較の結果、記憶したシンドロームと第１生成部１４０から出力されたシンドロームとが一致した場合は「１」を、一致しなかった場合は「０」を第１加算器１８０に出力する。
【００３８】
上述のように第１生成部１４０は、クロックごとにヘッダパケットの第０ビットから第３１ビットまでの位置に誤りが発生した場合に対応するシンドロームを順次生成するから、第１比較部１６０から「１」が出力されたクロックにより、誤りがあった位置が特定できる。たとえば、比較の開始から１２番目のクロックで「１」が出力された場合、第１１ビットの位置に誤りがあったと特定できる。３２個目のクロックで「１」出力された場合、第３１ビットの位置に誤りがあったと特定できる。こうして特定された位置におけるヘッダパケットのＢＣＨ符号の「０」「１」を反転させれば正しいパケットが得られる。
【００３９】
第１加算器１８０は、排他的論理和演算により、特定された位置におけるヘッダパケットの「０」「１」を反転させる。ここでは、第１１ビットの位置に誤りがあった場合を例に反転処理について説明する。
【００４０】
第１１ビットの位置に誤りがあった場合、第１加算器１８０の一方の入力端子には、第１比較部１６０から１２個目のクロックにおいて「１」が入力される。それ以外のクロックでは「０」が入力される。第１加算器１８０の他方の入力端子には、ヘッダ遅延部１１０からヘッダパケットの各ビットが順次入力される。
【００４１】
上述のように、ヘッダ遅延部１１０は、第１比較部１６０の出力とタイミングを合わせてヘッダを出力する。したがって、第１加算器１８０の一方の入力端子に１２個目のクロックにおいて「１」が入力される際、第１加算器１８０の他方の入力端子には第１１ビットの位置のヘッダが入力される。よって、第１１ビットの位置のヘッダのＢＣＨ符号は、第１加算器１８０により「０」「１」が反転されて出力される。１２個目のクロック以外では、第１比較部１６０からの出力は「０」であるから、ヘッダのＢＣＨ符号は「０」「１」が反転されることなくそのまま出力される。
【００４２】
ＣＨ１から入力されたボディの偶数ビットは、偶数ビット遅延部３２０とボディ検査部２００とに分配される。ＣＨ２から入力されたボディの奇数ビットは、奇数ビット遅延部３４０とボディ検査部２００に分配される。偶数ビット遅延部３２０および奇数ビット遅延部３４０は、ヘッダ遅延部１１０と同様に、入力されたボディの符号列を偶数ビットおよび奇数ビットを所定のクロック遅延させ、第２加算器４２０および第３加算器４４０に出力する。
【００４３】
ボディ検査部２００は、ＣＨ１およびＣＨ２から入力されたボディの符号列に対し、生成多項式ｘ８＋ｘ７＋ｘ６＋１による割り算処理を実行し、シンドロームを第２比較部３６０および第３比較部３８０にパラレル出力する。ただし、ボディ検査部２００と第２比較部３６０および第３比較部３８０とを結ぶ経路は１本にまとめて示している。
ボディは６４ビットであるが、ボディ検査部２００は、後述する工夫により１クロックあたり２ビットの割り算処理を実行することで、３２クロックにてその処理を終了する。
【００４４】
図６は、図３のボディ検査部２００の構成を示す。ボディ検査部２００は、変換テーブル２１０と、レジスタＲ３０〜Ｒ３７と、補正回路２１２とを備える。補正回路２１２は、排他的論理和回路ＸＯＲ３８〜ＸＯＲ４３を含む。
【００４５】
レジスタＲ３０〜Ｒ３７の初期値は０である。変換テーブル２１０には、ＣＨ１およびＣＨ２からボディの符号列の偶数ビットおよび奇数ビットが入力されるとともに、レジスタＲ３１およびＲ３２に保持された値もフィードバック入力される。変換テーブル２１０はこれら４つの入力値の組み合わせをもとに特定される８ビットの値を予め記憶しており、４つの入力を受けた際、その入力を、対応する８ビットの値に変換して出力する。
【００４６】
図７は、図６の変換テーブル２１０に対する入力と出力の対応を示す。入力はＣＨ１、ＣＨ２、Ｒ３１、およびＲ３０の４つの値である。出力は、ｂ７〜ｂ０の８つの値である。このｂ７〜ｂ０の８つの値は、図４のヘッダ検査部１２０のレジスタＲ３７〜Ｒ３２に保持された値をすべて「０」と仮定し、その後に入力されるＣＨ１とＲ３０の値およびＣＨ２とＲ３１の値を順次生成多項式ｘ８＋ｘ７＋ｘ６＋１により処理した場合に、レジスタＲ３７〜Ｒ３０に保持されるべき値である。
【００４７】
以下、変換テーブル２１０における変換の原理を詳述する。
一般に、入力された符号列のシンドロームを求める回路は、たとえば図４に示したように、生成多項式に応じた数のレジスタを備える。各レジスタは、入力された符号列に対してクロックごとに生成多項式に応じた演算を施した結果を保持する。
【００４８】
図４において、レジスタＲ１７〜Ｒ１０に保持された値がｒ１７"〜ｒ１０"である状態を仮定する。この状態から１クロック後にレジスタＲ１７〜Ｒ１０に保持された値をｒ１７'〜ｒ１０'とする。２クロック後にレジスタＲ１７〜Ｒ１０に保持された値をｒ１７〜ｒ１０とする。また、その２クロックの間にＣＨ０から入力された値をクロック順にＩ１、Ｉ２とする。ただし、ｒ１７"〜ｒ１０"、ｒ１７'〜ｒ１０'、ｒ１７〜ｒ１０、Ｉ１、Ｉ２は、いずれも「０」または「１」である。
【００４９】
ｒ１７〜ｒ１０は、以下に示すように、ｒ１７'〜ｒ１０'に関係なく、ｒ１７"〜ｒ１０"、Ｉ１、Ｉ２により表せる。ただし、＋は、排他的論理和の演算を示す。
ｒ１７＝ｒ１０'＋Ｉ２
＝Ｉ１＋ｒ１０"＋ｒ１１"＋Ｉ２    式（１）
ｒ１６＝ｒ１７'
＝ｒ１０"＋Ｉ１    式（２）
ｒ１５＝ｒ１７"    式（３）
ｒ１４＝ｒ１６"    式（４）
ｒ１３＝ｒ１５"    式（５）
ｒ１２＝ｒ１４"    式（６）
ｒ１１＝ｒ１０'＋Ｉ２＋ｒ１２'
＝ｒ１１"＋Ｉ１＋Ｉ２＋ｒ１３"    式（７）
ｒ１０＝ｒ１０'＋Ｉ２＋ｒ１１'
＝ｒ１０"＋Ｉ１＋ｒ１１"＋Ｉ２＋Ｉ１＋ｒ１０"＋ｒ１２"
＝ｒ１１"＋Ｉ２＋ｒ１２"    式（８）
【００５０】
式（１）〜（８）より、レジスタＲ１７〜Ｒ１０に保持された値を仮定し、その後の２クロックの間に入力された値を決めれば、その２クロックが経過した後にレジスタＲ１７〜Ｒ１０に保持されるべき値が決まる。たとえば、ｒ１７"〜ｒ１０"がすべて「０」である状態を仮定する。この状態からＩ１＝「０」、Ｉ２＝「１」が順番に入力された場合、ｒ１７〜ｒ１０は、式（１）〜（８）より［１０００００１１］である。同様に、２クロックの間にＣＨ０からたとえばＩ１＝「１」、Ｉ２＝「１」が順番に入力された場合、ｒ１７〜ｒ１０は［０１０００００１］である。
【００５１】
仮定した状態が間違っていた場合を考える。
上記のように、ｒ１７"〜ｒ１０"がすべて「０」である状態を仮定し、Ｉ１＝「０」、Ｉ２＝「１」が順番に入力された場合、ｒ１７〜ｒ１０は［１０００００１１］である。ここで、ｒ１７"〜ｒ１０"がすべて「０」とした仮定が間違っていて、ｒ１７とｒ１５が「１」であったとする。このとき、式（３）および式（５）より、ｒ１５およびｒ１３の値を反転させてやればよいとが分かる。すなわち、仮定した状態から求められた、レジスタＲ１７〜Ｒ１０に保持されるべき値［１０００００１１］を補正して［１０１０１０１１］とすれば真に保持されるべき値となる。
【００５２】
仮定された状態から求められた、レジスタＲ１７〜Ｒ１０に保持されるべき値を補正する原理についてさらに説明する。
式（３）〜（８）より、ｒ１７"は式（３）、ｒ１６"は式（４）、ｒ１５"は式（５）、ｒ１４"は式（６）、ｒ１３"は式（７）、ｒ１２"は式（８）にのみ現れることが分かる。これは、仮定した状態から２クロックの間、ｒ１７"〜ｒ１２"はシフトされるのみでフィードバックされないからである。このことは、割り算する生成多項式によらない。
したがって、ｒ１７"〜ｒ１２"を仮定した値が間違っていても、式（３）〜式（８）の値、すなわち、ｒ１５〜ｒ１０の値を反転させる補正をするだけで、レジスタＲ１７〜Ｒ１０に真に保持されるべき値が求まる。
【００５３】
上記のことを要約すれば、次のことがいえる。
まず、ｒ１７"〜ｒ１２"を仮定し、その後に入力される２ビットの値と、ｒ１１"、ｒ１０"を式（１）〜式（８）によりｒ１７〜ｒ１０に変換する。仮定したｒ１７"〜ｒ１２"が間違っていれば、ｒ１５〜ｒ１０を反転する補正をする。これにより、レジスタＲ１７〜Ｒ１０に保持される値を、ｒ１７"〜ｒ１０"から１クロックにてｒ１７〜ｒ１０に変換できる。つまり、１クロックにて２ステップの処理が可能である。
【００５４】
図６のボディ検査部２００は、このことを利用して１クロックあたり２ステップの割り算処理を実行する。すなわち、変換テーブル２１０は、ＣＨ１およびＣＨ２から入力される２ビットの値と、レジスタＲ３１、Ｒ３２に保持された値の入力を受け、それらを式（１）〜式（８）と同様の式によりｂ７〜ｂ０に変換して出力する。ここで、ｂ７〜ｂ０は、レジスタＲ３７〜Ｒ３２に保持された値をすべて「０」と仮定し、その後に入力されるＣＨ１、ＣＨ２、Ｒ３１、Ｒ３０の値を式（１）〜式（８）と同様の式により変換した値であり、ＣＨ１、ＣＨ２、Ｒ３１、Ｒ３０の値の組み合わせごとに変換テーブル２１０に予め記録されている。
【００５５】
補正回路２１２は、仮定したレジスタＲ３７〜Ｒ３２に保持された値が間違っていた場合に変換テーブル２１０の出力を補正する。たとえば、変換テーブル２１０は、レジスタＲ３７〜Ｒ３２に保持された値を「０」と仮定し、ＣＨ１、ＣＨ２、Ｒ３１、Ｒ３０の値を変換したが、Ｒ３７に実際に保持されていた値が「１」であった場合、補正回路２１２のＸＯＲ４３は、変換テーブル２１０からの出力ｂ５の値を反転してレジスタ３４に入力する。なお、仮定が正しかったＲ３６〜Ｒ３２には「０」が記憶されていたのであるから、補正回路２１２のＸＯＲ４２〜３８は、変換テーブル２１０の出力ｂ４〜ｂ０を反転させることなくレジスタＲ３４〜Ｒ３０に入力する。
これにより、ボディ検査部２００のレジスタＲ３７〜Ｒ３０には、１クロック経過するごとに２ステップの割り算処理を実行した結果が保持される。
【００５６】
上記のように、ボディ検査部２００は、１クロックあたり２ビットの入力に対して、１クロックあたり２ステップの割り算処理を実行するから、ＣＨ１およびＣＨ２よりボディパケットの偶数ビットおよび奇数ビットが入力され終わった時点で、レジスタＲ３７〜Ｒ３０内にはボディのシンドロームが保持される。すなわち、６４ビットのボディのシンドロームは３２クロックで求められる。
保持されたシンドロームは次のクロックで第２比較部３６０および第３比較部３８０にそれぞれパラレル出力される。図３にもどる。
【００５７】
第２生成部２５０は、ボディ検査部２００と同様の原理により１クロック２ステップの処理を実行することで、ＣＨ１およびＣＨ２から入力されたボディパケットの１ビットの誤りが偶数ビットの位置にあった場合における、誤りがあった位置に対応したシンドロームをクロックごとに順次生成する。生成したシンドロームは第２比較部３６０に順次パラレル出力される。
【００５８】
すなわち、第２生成部２５０は、最初のクロックにてボディパケットの第０ビットの位置に誤りが発生した場合に対応するシンドロームを生成し、出力する。次のクロックにて第２ビットの位置に誤りが発生した場合に対応するシンドロームを生成し、出力する。その次のクロックにて第４ビットの位置に誤りが発生した場合に対応するシンドロームを生成し、出力する。以降のクロックにおいても同様にシンドロームを生成し、出力する。
【００５９】
したがって、第２生成部２５０は、３２クロックの間にボディの第０ビットから第６３ビットまでのうちの、偶数ビットの位置に誤りが発生した場合に対応するシンドロームを順次生成し、第２比較部３６０に順次パラレル出力する。ただし、第２生成部２５０と第２比較部３６０とを結ぶ経路は１本にまとめて示している。
【００６０】
第３生成部２７０は、ボディ検査部２００と同様の原理により１クロック２ステップの処理を実行することで、ＣＨ１およびＣＨ２から入力されたボディパケットの１ビットの誤りが奇数ビットの位置に誤りがあった場合における、誤りがあった位置に対応したシンドロームをクロックごとに順次生成する。生成したシンドロームは第３比較部３８０に順次パラレル出力される。
【００６１】
すなわち、第３生成部２７０は、最初のクロックにてボディパケットの第１ビットの位置に誤りが発生した場合に対応するシンドロームを生成し、出力する。次のクロックにて第３ビットの位置に誤りが発生した場合に対応するシンドロームを生成し、出力する。その次のクロックにて第５ビットの位置に誤りが発生した場合に対応するシンドロームを生成し、出力する。以降のクロックにおいても同様にシンドロームを生成し、出力する。
【００６２】
したがって、第３生成部２７０は、３２クロックの間にボディの第０ビットから第６３ビットまでのうちの、奇数ビットの位置に誤りが発生した場合に対応するシンドロームを順次生成し、第３比較部３８０に順次パラレル出力する。ただし、ボディ検査部２００と第２比較部３６０および第３比較部３８０とを結ぶ経路は１本にまとめて示している。
【００６３】
図８は、図３の第２生成部２５０の構成を示す。第２生成部２５０は、生成テーブル２６０と、レジスタＲ５０〜Ｒ５７と、補正回路２６２とを備える。補正回路２６２は、排他的論理和回路ＸＯＲ５８〜ＸＯＲ６３を含む。
【００６４】
レジスタＲ５０〜Ｒ５７には、設定された初期値として［１０００１０１０］が記憶されている。この初期値は、ボディパケットの１ビットの誤りが第０ビットの位置にあった場合に対応するシンドロームである。生成テーブル２６０には、レジスタＲ５０、Ｒ５１の値がフィードバック入力される。生成テーブル２６０は、これら２つの入力値の組み合わせをもとに特定される８ビットの値を予め記憶しており、２つの入力を受けた際、その入力を、対応する８ビットの値に変換して出力する。
【００６５】
図９は、図８の生成テーブル２６０に対する入力と出力の対応を示す。入力は、レジスタＲ５０およびＲ５１に記憶された２つの値である。出力は、ｂ１０〜ｂ１７の８つの値である。ｂ１０〜ｂ１７は、図５の第１生成部１４０においてレジスタＲ７〜Ｒ２に保持された値をすべて「０」と仮定した場合に、Ｒ０およびＲ１に保持された値の組み合わせにより定まる８つの値であって２クロック後にレジスタＲ７〜Ｒ０に保持されるべき値に対応する。
【００６６】
たとえば、図９より、Ｒ５０が「０」、Ｒ５１が「１」である場合、出力ｂ１０〜ｂ１７は、［０００００１１１］であるが、これは、図５において、レジスタＲ０〜Ｒ７に［０１００００００］が保持されていると仮定した場合に２クロック後にレジスタＲ０〜Ｒ７に保持されるべき値である。
【００６７】
つまり、生成テーブル２６０は、レジスタＲ５７〜Ｒ５２に保持された値をすべて「０」と仮定し、その後の１クロックで入力されるＲ５１、Ｒ５０の値をもとに、図５の第１生成部１４０を２クロック動作させた場合に対応する、レジスタＲ５７〜Ｒ５０に保持されるべき値を出力する。Ｒ５０、Ｒ５１の値の組み合わせごとに定まるｂ１０〜ｂ１７の８つの値は、生成テーブル２６０に予め記録されている。
【００６８】
図８にもどる。生成テーブル２６０から出力されるｂ１６およびｂ１７はそのままレジスタＲ５６およびＲ５７に記憶される。ｂ１０〜ｂ１５は、補正回路２６２を介して、すなわち、ＸＯＲ５８〜ＸＯＲ６３によりレジスタＲ５２〜Ｒ５７に記憶されていた値と排他的論理和演算され、レジスタＲ５０〜Ｒ５５に記憶される。この排他的論理和演算により、レジスタＲ５７〜Ｒ５２に保持された値をすべて「０」とした仮定が間違っていた場合の補正がなされる。これにより、第２生成部２５０のレジスタＲ５７〜Ｒ５０には、１クロック経過するごとに２ステップの処理を実行した結果が保持される。
【００６９】
このため、各クロックにてレジスタＲ５０〜Ｒ５７に記憶された値は、図３のＣＨ１およびＣＨ２から入力されたボディパケットの偶数ビットの位置に誤りがあった場合における、誤りがあった位置に対応したシンドロームを示す。レジスタＲ５０〜Ｒ５７に記憶された値は、初期値から順にクロックごとに図３の第２比較部３６０にパラレル出力される。
【００７０】
図１０は、図３の第２生成部２５０の各クロックにおける出力を示す。各クロックの出力は、レジスタＲ５０〜Ｒ５７に記憶された値である。図１０のクロック１における出力は、ボディの第０ビットの位置に誤りがあった場合に得られるシンドロームに対応し、クロック２における出力は、第２ビットの位置に誤りがあった場合に得られるシンドロームに対応する。クロック３からクロック３２までにおける出力についても同様である。
【００７１】
図１１は、図３の第３生成部２７０の各クロックにおける出力を示す。なお、第３生成部２７０は、図８の第２生成部２５０と同様に構成できるが、レジスタに設定された初期値はボディパケットの１ビットの誤りが第１ビットの位置にあった場合に対応するシンドロームとする。クロック１における出力は、ボディの第１ビットの位置に誤りがあった場合に得られるシンドロームに対応し、クロック２における出力は、第３ビットの位置に誤りがあった場合に得られるシンドロームに対応する。クロック３からクロック３２までにおける出力についても同様である。図３にもどる。
【００７２】
第２比較部３６０は、ボディ検査部２００から出力されたシンドロームを記憶し、記憶したシンドロームと第２生成部２５０から入力されたシンドロームとをクロックごとに順次パラレルに比較する。第２比較部３６０は、論理回路を用いるなどして容易に構成できる。比較の結果、記憶したシンドロームと第２生成部２５０から出力されたシンドロームとが一致した場合は「１」を、一致しなかった場合は「０」を第２加算器４２０に出力する。
【００７３】
上述のように第２生成部２５０は、ボディパケットの１ビットの誤りが偶数ビットの位置に誤りが発生した場合に対応するシンドロームを、クロックごとに位置順に生成するから、第２比較部３６０から「１」が出力されたクロックにより、誤りがあった位置が特定できる。たとえば、比較の開始から１２個目のクロックで「１」が出力された場合、第２２ビットの位置に誤りがあったと特定できる。こうして特定された位置における符号の「０」「１」を反転させれば正しい符号が得られる。
【００７４】
第２加算器４２０は、排他的論理和演算により、特定された位置におけるボディの「０」「１」を反転させる。ここでは、第２２ビットの位置に誤りがあった場合を例に反転処理について説明する。第２２ビットの位置に誤りがあった場合、第２加算器４２０の一方の入力端子には、第２比較部３６０から１２個目のクロックにおいて「１」が入力される。それ以外のクロックでは「０」が入力される。第２加算器４２０の他方の入力端子には、偶数ビット遅延部３２０からボディの偶数ビットが順次入力される。
【００７５】
偶数ビット遅延部３２０は、第２比較部３６０の出力とタイミングを合わせてボディパケットの偶数ビットを出力するから、第２加算器４２０の一方の入力端子に１２個目のクロックにおいて「１」が入力される際、第２加算器４２０の他方の入力端子には第２２ビットの位置のボディパケットが入力される。よって、第２２ビットの位置のボディパケットは、第２加算器４２０により「０」「１」が反転されて出力される。１２個目のクロック以外では、第２比較部３６０からの出力は「０」であるから、ボディパケットの偶数ビットは「０」「１」が反転されることなくそのまま出力される。
【００７６】
第３比較部３８０は、ボディ検査部２００から出力されたシンドロームを記憶し、記憶したシンドロームと第３生成部２７０から入力されたシンドロームとをクロックごとに順次パラレルに比較する。第３比較部３８０は、論理回路を用いるなどして容易に構成できる。比較の結果、記憶したシンドロームと第３生成部２７０から出力されたシンドロームとが一致した場合は「１」を、一致しなかった場合は「０」を第３加算器４４０に出力する。
【００７７】
上述のように第３生成部２７０は、ボディパケットの１ビットの誤りが奇数ビットの位置に誤りが発生した場合に対応するシンドロームを、クロックごとに位置順に生成するから、第３比較部３８０から「１」が出力されたクロックにより、誤りがあった位置が特定できる。たとえば、比較の開始から１４個目のクロックで「１」が出力された場合、第２７ビットの位置に誤りがあったと特定できる。こうして特定された位置における符号の「０」「１」を反転させれば正しい符号が得られる。
【００７８】
第３加算器４４０は、排他的論理和演算により、特定された位置におけるボディの「０」「１」を反転させる。ここでは、第２７ビットの位置に誤りがあった場合を例に反転処理について説明する。第２７ビットの位置に誤りがあった場合、第３加算器４４０の一方の入力端子には、第３比較部３８０から１４個目のクロックにおいて「１」が入力される。それ以外のクロックでは「０」が入力される。第３加算器４４０の他方の入力端子には、奇数ビット遅延部３４０からボディの偶数ビットが順次入力される。
【００７９】
奇数ビット遅延部３４０は、第３比較部３８０の出力とタイミングを合わせてボディパケットの奇数ビットを出力するから、第３加算器４４０の一方の入力端子に１４個目のクロックにおいて「１」が入力される際、第３加算器４４０の他方の入力端子には第２７ビットの位置のボディパケットが入力される。よって、第２７ビットの位置のボディパケットは、第３加算器４４０により「０」「１」が反転されて出力される。１４個目のクロック以外では、第２比較部３６０からの出力は「０」であるから、ボディパケットの奇数ビットは「０」「１」が反転されることなくそのまま出力される。
【００８０】
以上の構成による誤り検査装置５００の動作を説明する。  
ヘッダ遅延部１１０およびヘッダ検査部１２０は、ＣＨ０から図２（ａ）に示されるビット配列のヘッダパケットの入力を受ける。ヘッダ検査部１２０は、ＣＨ１から入力されたヘッダパケットのシンドロームを求め、第１比較部１６０にパラレル出力する。ここで、シンドロームが０であった場合、入力されたヘッダに誤りがなかったとして処理される。第１生成部１４０は、１ビットの誤りがあった場合における、誤りがあった位置に対応するシンドロームをクロックごとに順次生成し、第１比較部１６０に順次出力する。
【００８１】
第１比較部１６０は、ヘッダ検査部１２０から入力されたシンドロームを記憶し、記憶したシンドロームと第１生成部１４０からクロックごとに順次入力されるシンドロームとを比較し、一致した場合は「１」を、不一致の場合は「０」を第１加算器１８０の一方の入力端子に出力する。
【００８２】
ヘッダ遅延部１１０は、第１比較部１６０からの出力とタイミングを合わせて、ＣＨ０から入力されたヘッダを第１加算器１８０の他方の入力端子に出力する。すなわち、ヘッダ遅延部１１０は、ヘッダの第０ビットの位置に誤りがあったか否かを示す「１」「０」が第１比較部１６０から第１加算器１８０の一方の入力端子に出力されるタイミングに合わせて、ヘッダの第０ビットを第１加算器１８０の他方の入力端子に出力する。
【００８３】
第１加算器１８０は、第１比較部１６０からの入力とヘッダ遅延部１１０からの入力とを排他的論理和演算する。これにより、ＣＨ０から入力されたヘッダに１ビットの誤りがあった場合の誤り訂正が実行される。ここで、ヘッダ検査部１２０にて求めたシンドロームが０以外の値を持つにもかかわらず、そのシンドロームが第１生成部１４０にて生成したシンドロームのいずれとも一致しない場合、ＥＣＣ不可能のエラーとして処理される。これは、入力されたヘッダに２ビット以上の誤りがあったことを示す。
【００８４】
偶数ビット遅延部３２０は、ＣＨ１から図２（ｂ）に示されるビット配列のボディパケットの偶数ビットの入力を受ける。奇数ビット遅延部３４０は、ＣＨ２からボディパケットの奇数ビットの入力を受ける。ボディ検査部２００は、ＣＨ１およびＣＨ２から、ボディの偶数ビットおよび奇数ビットの並列入力を受ける。ボディ検査部２００は、図３の変換テーブル２１０による変換と、レジスタＲ３２〜Ｒ３７の２ビットシフト操作により１クロックにて２ステップの割り算処理を実行し、６４ビットのボディパケットのシンドロームを３２クロックにて求める。求めたシンドロームは第２比較部３６０および第３比較部３８０にパラレル出力される。
【００８５】
第２生成部２５０は、ＣＨ１およびＣＨ２から入力されたボディに１ビットの誤りがあった場合であってその誤りが偶数ビットの位置にあった場合における、誤りがあった位置に対応するシンドロームをクロックごとに順次生成し、第２比較部３６０に順次パラレル出力する。第３生成部２７０は、第２生成部２５０と同様に、１ビットの誤りが奇数ビットの位置にあった場合における、誤りがあった位置に対応するシンドロームをクロックごとに順次生成し、第３比較部３８０に順次パラレル出力する。
【００８６】
第２比較部３６０は、ボディ検査部２００から入力されたシンドロームを記憶し、記憶したシンドロームと第２生成部２５０からクロックごとに順次入力されるシンドロームとを比較し、一致した場合は「１」を、不一致の場合は「０」を第２加算器４２０の一方の入力端子に出力する。第３比較部３８０は、第２比較部３６０と同様に、ボディ検査部２００から入力されたシンドロームと第３生成部２７０から順次入力されるシンドロームとが一致した場合は「１」を、不一致の場合は「０」を第３加算器４４０の一方の入力端子に出力する。
【００８７】
偶数ビット遅延部３２０および奇数ビット遅延部３４０は、ヘッダ遅延部１１０と同様に、第２比較部３６０および第３比較部３８０からの出力とタイミングを合わせて、ＣＨ１およびＣＨ２から入力されたボディの偶数ビットおよび奇数ビットを第２加算器４２０および第３加算器４４０の他方の入力端子に出力する。
【００８８】
第２加算器４２０および第３加算器４４０は、第２比較部３６０および第３比較部３８０からの入力と偶数ビット遅延部３２０および奇数ビット遅延部３４０からの入力とを排他的論理和演算し、結果を結合部４８０に出力する。これにより、ＣＨ１およびＣＨ２から入力されたボディに１ビットの誤りがあった場合の誤り訂正が実行される。ここで、ボディ検査部２００にて求めたシンドロームが０以外の値を持つにもかかわらず、そのシンドロームが第２生成部２５０および第３生成部２７０にて生成したシンドロームのいずれとも一致しない場合、ＥＣＣ不可能のエラーとして処理される。これは、入力されたボディに２ビット以上の誤りがあったことを示す。
【００８９】
結合部４８０は、第２加算器４２０および第３加算器４４０から入力された排他的論理和演算の結果、すなわち誤り訂正がなされたボディの符号列の偶数ビットおよび奇数ビットを結合する。
【００９０】
再生部６００は、第１加算器１８０による排他的論理和演算の結果、すなわち誤り訂正がなされたヘッダの符号列と、結合部４８０にて結合したボディの符号列とを受け、音声データを再生する。
【００９１】
本実施の形態の受信装置は、以下の効果を奏する。
ヘッダ検査部１２０とボディ検査部２００は、ＣＨ０から入力されるヘッダパケットと、ＣＨ１およびＣＨ２に分割されて並列に入力されるボディパケットとのそれぞれに対して同じ３２クロックにてシンドロームを求めるので、ヘッダパケットのみならずボディパケットも検査待ちの符号を渋滞させることなく処理でき、効率がよい。
【００９２】
すなわち、ボディ検査部２００における偶数ビットと奇数ビットの２ビットを単位にした処理により、ヘッダのみならずボディの処理も伝送速度と一致するため、入力信号を検査部に直結でき、回路を単純化できる。また、ボディの処理を伝送速度と一致させるために、処理部を並列化してパイプライン制御回路を導入したり速度調整用の処理待機バッファを入れる場合と比較して回路規模を小さくできる。
【００９３】
また、ヘッダ訂正部１３０および偶数ビット訂正部３５０は、ヘッダおよびボディのビット誤りの訂正を同じ３２クロックにて実行するので、検査のみならず訂正もスムーズに実行できる。
また、ヘッダ処理部１００およびボディ処理部３００は、ヘッダパケットおよびボディパケットの誤り検査・訂正を時間を合わせて終了するので、ヘッダパケットおよびボディパケットは互いに待機する必要がなくなるので、スムーズに後段の再生処理などができる。
【００９４】
また、第１生成部１４０、第２生成部２５０および第３生成部２７０のそれぞれにてクロックごとに誤りがあった位置に対応するシンドロームを順次生成するので、シンドロームを記憶したＲＯＭ（Read Only Memory）テーブルを用いる場合のアドレスカウンタや、ＲＯＭアドレスデコーダ回路、多入力ゲートＰＬＡ（Programmable Logic Array）などが不要となり、処理速度が速く回路規模も抑えうる。
【００９５】
上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００９６】
実施の形態において、ＨＤＭＩ規格に準拠した受信装置に用いられる再生装置７００を例に説明したが、本発明はこれに限定されない。ボディ検査部２００の構成だけを抜き出したとしても本発明として有効であるし、ヘッダ処理部１００およびボディ処理部３００を抜き出したとしても本発明として有効である。
【００９７】
実施の形態において、ヘッダおよびボディがＢＣＨ符号として構成された場合を例に説明したが、これには限定されない。ヘッダおよびボディはＢＣＨ符号以外の巡回符号にて構成されてもよく、要は、誤り検査を実行しうる符号列として構成されていればよい。この場合、再生装置７００の適用範囲が広がる。
【００９８】
また、実施の形態において、２ビット以上の誤りを訂正できないＢＣＨ符号を例に説明したが、これには限定されない。符号語間距離は任意でよい。符号語間距離を大きくし、２ビット以上の誤りを訂正する場合は、そのために別の回路を設ける必要があり回路規模が大きくなるが、誤り訂正能力が増す。
【００９９】
また、ＣＨ１およびＣＨ２にはボディパケットが複数並列に割り当てられてもよい。このとき、ＣＨ１およびＣＨ２においてはボディパケットの数に応じた並列伝送がなされる。この場合、ボディ処理部３００を構成する各要素は割り当てられたボディパケットの数と同じだけ必要になるが、第２生成部２５０および第３生成部２７０は、共用できる。
【０１００】
また、実施の形態において特に説明しなかったが、ヘッダ処理部１００およびボディ処理部３００は、１つの半導体基板上に一体集積化されてもよい。再生装置７００を構成する各要素が１つの半導体基板上に一体集積化されてもよく、その一部または全部がディスクリート部品で構成されてもよい。どの部分を集積化するかは、コストや占有面積などによって決めればよい。
【０１０１】
また、実施の形態において、誤り検査装置５００は、音声符号列に含まれるヘッダの符号列とボディの符号列に対する誤り検査をしたが、誤り検査の対象がこれに限定されることはない。誤り検査装置５００は、単一の符号列を分解して得られる２以上の符号列の検査全般に利用できる。
【０１０２】
また、実施の形態において、ヘッダパケットが３２ビット、ボディパケットが６４ビットである場合を説明したが、誤り検査装置５００が検査する符号列の各パケットのビット数がこれに限定されることはない。たとえば、ボディパケットは１２８ビットであってもよい。この場合、ボディ検査部２００にてボディパケットの検査をするのに６４クロック要するが、これでも本発明として有効である。
【０１０３】
また、実施の形態において、ボディ検査部２００は１クロックあたり２ステップの割り算処理を実行したが、ボディ検査部２００の処理スピードはこれに限定されない。実施の形態において説明した原理を用いることで、１クロックあたり３ステップ、４ステップあるいはそれより多い数のステップの処理を実行可能である。
【０１０４】
また、ヘッダ遅延部１１０は、１クロックあたり１ステップの割り算処理を実行したが、これに限定されない。ヘッダ遅延部１１０にボディ検査部２００と同様の構成を適用して、１クロックあたり複数ステップの処理を実行してもよい。たとえば、ヘッダパケットが６４ビット、ボディパケットが９６ビットである場合、ヘッダ遅延部１１０にて１クロックあたり２ステップの割り算処理を実行し、ボディ検査部２００にて１クロックあたり３ステップの割り算処理を実行すれば、ヘッダパケットおよびボディパケットの検査は同じ３２クロックにて終了できる。
【図面の簡単な説明】
【０１０５】
【図１】実施の形態において再生の対象とするＢＣＨ音声符号のストリームの構成を示す図である。
【図２】図２（ａ）−（ｂ）は、図１におけるヘッダパケットおよびボディパケットのビット配列を示す図である。
【図３】実施の形態にかかる再生装置の構成を示すブロック図である。
【図４】図３におけるヘッダ検査部の構成を示す回路図である。
【図５】図３の第１生成部の構成を示す回路図である。
【図６】図３のボディ検査部の構成を示す回路図である。
【図７】図６の変換テーブルに対する入力と出力の対応を示す図である。
【図８】図３の第２生成部の構成を示す回路図である。
【図９】図８の生成テーブルに対する入力と出力の対応を示す図である。
【図１０】図３の第２生成部の各クロックにおける出力を示す図である。
【図１１】図３の第３生成部の各クロックにおける出力を示す図である。
【符号の説明】
【０１０６】
１００  ヘッダ処理部、  １１０  ヘッダ遅延部、  １２０  ヘッダ検査部、  １３０  ヘッダ訂正部、  １４０  第１生成部、  １６０  第１比較部、  １８０  第１加算器、  ２００  ボディ検査部、  ２５０  第２生成部、  ２７０  第３生成部、  ３００  ボディ処理部、  ３２０  偶数ビット遅延部、  ３４０  奇数ビット遅延部、  ３５０  偶数ビット訂正部、  ３６０  第２比較部、  ３７０  奇数ビット訂正部、  ３８０  第３比較部、  ４２０  第２加算器、  ４４０  第３加算器、  ４８０  結合部、  ５００  誤り検査装置、  ６００  再生部、  ７００  再生装置。
【図１】
2007110258.tif 000003
【図２】
2007110258.tif 000004
【図３】
2007110258.tif 000005
【図４】
2007110258.tif 000006
【図５】
2007110258.tif 000007
【図６】
2007110258.tif 000008
【図７】
2007110258.tif 000009
【図８】
2007110258.tif 000010
【図９】
2007110258.tif 000011
【図１０】
2007110258.tif 000012
【図１１】
2007110258.tif 000013