(57)【要約】【課題】巡回符号を使用した誤り訂正により得られる誤りビット位置から補正値を効率よく演算する誤り検出装置および誤り検出方法を提供すること。【解決手段】レジスタ５１から順次選択される誤りビット位置情報ＥｂＰが誤りビット位置である場合に、誤りバイト位置のＬＳＢが誤りビット位置であるシンドロームがシンドローム格納部５２から加算器５４に出力され加算されてレジスタ５５に格納される。更に１シフト演算器（β１）５７でＬＦＳＲの１シフト動作と等価な演算が行われる。加算器５４では、シンドロームが入力されれば１シフト演算器（β１）５７の出力に加算した結果を入力されなければ１シフト演算器（β１）５７の出力を、レジスタ５５に送る。これを誤りバイト位置における誤りビット位置からＬＳＢまで繰り返して補正シンドロームＳＣを得る。処理時間の短縮および処理回路の簡略化を図ることができる。【選択図】図４
2008112522.tif 000002
【特許請求の範囲】
【請求項１】
所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第１のシンドロームの補正を行なう誤り検出装置であって、
前記データユニットごとに、前記ビット列の指定ビット位置に誤りがある場合に演算される第２のシンドロームを予め格納しておく格納部と、
前記誤り訂正情報により誤りを含むとして特定される前記データユニットにおける前記第２のシンドロームを初期符号として前記格納部より読み出し、該データユニットにおける誤りビット位置から前記指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する演算部と、
前記誤りビット位置ごとに前記演算部から出力される演算結果を加算（ＥＸＯＲ）して第３のシンドロームとして出力する第１加算部と、
前記第１のシンドロームに前記第３のシンドロームを加算（ＥＸＯＲ）する第２加算部とを備えることを特徴とする誤り検出装置。
【請求項２】
前記演算部は、
前記データユニットにおける前記ビット列のＭＳＢからＬＳＢに至るビット差分以下のシフト動作であって、相異なるシフト数の前記シフト動作に等価な演算結果を出力する複数の第１シフト演算部と、
前記誤りビット位置から前記指定ビット位置に至るビット差分に応じて、前記複数の第１シフト演算部を少なくとも一つ選択する第１選択部とを備えることを特徴とする請求項１に記載の誤り検出装置。
【請求項３】
前記複数の第１シフト演算部は、前記データユニットにおける前記ビット列のＭＳＢから前記指定ビット位置の１ビット上位のビット位置に至る各ビット位置に、前記各ビット位置から前記指定ビット位置に至るビット差分の前記シフト動作に等価な演算結果を出力する第１個別シフト演算部を備え、
前記第１選択部は、前記誤りビット位置に対応する前記第１個別シフト演算部に、前記第２のシンドロームを入力し、
前記第１加算部は、前記第１個別シフト演算部から出力される演算結果を加算（ＥＸＯＲ）することを特徴とする請求項２に記載の誤り検出装置。
【請求項４】
前記演算部は、
前記第２のシンドロームに初期化されるレジスタ部と、
前記レジスタ部に保持されている符号に対して、１ビットの前記シフト動作に等価な演算結果を出力して前記レジスタ部に戻す１シフト演算部とを備え、
前記ビット差分の回数、前記１シフト演算部での処理を繰り返すことを特徴とする請求項１に記載の誤り検出装置。
【請求項５】
前記誤り訂正情報により特定される前記データユニットの前記ビット列を、ＭＳＢからビット単位で順次選択するビット選択部を備え、
前記第１加算部は、前記ビット選択部により選択されるビット位置が誤りビット位置である場合に、前記誤り訂正情報により特定される前記データユニットの前記第２のシンドロームと、前記１シフト演算部から出力される演算結果とを加算（ＥＸＯＲ）し、
前記ビット選択部による選択ごとに、前記レジスタ部の内容が、前記１シフト演算部から出力される演算結果または前記第１加算部による加算（ＥＸＯＲ）結果で更新されることを特徴とする請求項４に記載の誤り検出装置。
【請求項６】
所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第１のシンドロームの補正を行なう誤り検出装置であって、
前記受信データを構成する総ビット数から前記データユニットを構成する前記所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する複数の第２シフト演算部と、
前記受信データのうち前記誤り訂正情報により誤りを含むとして特定される前記データユニットより下位にあるビット数の前記シフト動作に等価な演算結果を取得するために、前記複数の第２シフト演算部を少なくとも一つ選択する第２選択部と、
前記第２選択部により選択される前記複数の第２シフト演算部に対する初期符号として、前記線形帰還シフトレジスタを構成するビット列の下位に、前記誤り訂正情報により特定される前記データユニットの誤りビット位置を示すビット列を割り当てる初期設定部とを備えることを特徴とする誤り検出装置。
【請求項７】
前記第２選択部は、前記複数の第２シフト演算部を順次選択することを特徴とする請求項６に記載の誤り検出装置。
【請求項８】
最初に前記初期設定部を選択し、以後、前記第２選択部により選択された前記複数の第２シフト演算部のうちの何れか１つの演算部を選択する第３選択部と、
前記第３選択部から出力される符号を格納し、前記第２選択部により次に選択される前記複数の第２シフト演算部のうちの何れか他の１つの演算部に出力するレジスタ部とを備えることを特徴とする請求項７に記載の誤り検出装置。
【請求項９】
所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第１のシンドロームの補正を行なう誤り検出方法であって、
前記データユニットごとに、前記ビット列の指定ビット位置に誤りがある場合に演算される第２のシンドロームを予め格納しておくステップと、
前記誤り訂正情報により誤りを含むとして特定される前記データユニットにおける前記第２のシンドロームを読み出すステップと、
読み出された前記第２のシンドロームを初期符号として、前記データユニットにおける誤りビット位置から前記指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力するステップと、
前記誤りビット位置ごとに出力される前記演算結果を加算（ＥＸＯＲ）して第３のシンドロームとして出力するステップと、
前記第１のシンドロームに前記第３のシンドロームを加算（ＥＸＯＲ）するステップとを有することを特徴とする誤り検出方法。
【請求項１０】
所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第１のシンドロームの補正を行なう誤り検出方法であって、
前記受信データを構成する総ビット数から前記データユニットを構成する前記所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する第２の複数のステップと、
前記受信データのうち前記誤り訂正情報により誤りを含むとして特定される前記データユニットより下位にあるビット数の前記シフト動作に等価な演算結果を取得するために、前記第２の複数のステップを少なくとも一つ選択するステップと、
前記第２の複数のステップに対する初期符号として、前記線形帰還シフトレジスタを構成するビット列の下位に、前記誤り訂正情報により特定される前記データユニットの誤りビット位置を示すビット列を割り当てるステップとを有することを特徴とする誤り検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータに含まれる符号誤りの検出に関するものであり、特に、巡回符号を使用した誤り検出に関するものである。
【背景技術】
【０００２】
従来より、伝送されたデジタルデータに対しては、誤り訂正処理を行うと共に、誤り訂正が正しく行われたか否かを判断する誤り検出においてＣＲＣ符号等の巡回符号が使用される。これは、原データに誤り検出符号（以下、ＥＤＣと称する）を付加することにより行われる。この場合、誤り訂正と誤り検出とに応じて行われるＤＲＡＭ等のメモリ装置へのデータの書込みや読出し等のアクセス回数を減らすために、誤り訂正前の段階で誤り検出を行い、誤り訂正から得られた誤りデータのビット位置により、誤り検出の結果が補正されることが行なわれる場合がある。
【０００３】
特許文献１のデータ復号処理装置では、ＤＶＤ−ＲＯＭデータの再生装置について開示されている。誤り訂正部により、符号系列内のビット毎に区切った位置ｉに誤り“１”があったということが判明すると、誤りデータ列に対する誤り検出の有無が計算される。最初に“１”のデータがくるまでは“０”のデータがＥＤＣ回路（線形帰還シフトレジスタ）を巡回しているだけで値の変化はない。“１”のデータが入力された後、ｉ回ＥＤＣ回路（線形帰還シフトレジスタ）をシフトさせることによって補正値が求められる。誤りが複数あれば、各々に対する補正値を加算（ＥＸＯＲ）する。
【０００４】
特許文献２のＣＲＣチェック結果の補正方法では、ＥＣＣによるシンドローム計算結果によりエラーの訂正が行なわれた場合、計算結果から導かれるエラー位置と訂正パターンを基に補正値をテーブル化しておく。訂正されたエラー位置と訂正パターンからマイクロプログラムにより補正値を算出する。
【０００５】
【特許文献１】特開２０００−１６５２５９号公報
【特許文献２】特開昭６３−２８１２７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の背景技術により誤り検出結果の補正値を求める場合には、多大な演算時間を要するおそれがあり、回路規模も大規模となってしまうおそれがあり、問題である。
【０００７】
具体的には、特許文献１に開示されているデータ復号処理装置では、符号系列内の誤り“１”のビット位置によらず符号系列を構成するビット列の全てをＥＤＣ回路（線形帰還シフトレジスタ）に入力して巡回させねばならない。補正値を得るまでには、誤り訂正されるビット位置やビット数によらず、少なくとも符号系列を構成するビット列のビット数分のサイクル数の演算時間を必要とする。例えば、ＤＶＤ−ＲＯＭにおいては、符号系列のビット数は１６５１２ビットであり、１６５１２サイクルの演算時間が必要である。多大な演算時間を必要とするおそれがあり問題である。
【０００８】
また、特許文献２に開示されているＣＲＣチェック結果の補正方法では、ＥＣＣにより訂正される誤りビットのビット位置毎に補正値を備えることが必要となる。誤り訂正および誤り検出の対象となるデジタルデータを構成するビット列のビット数によっては、備えるべき補正値の組み合わせが膨大な数に達する場合も考えられる。全ての補正値を備えるテーブルは多大なデータ量となり、各テーブル値を格納する格納領域およびその制御回路の回路規模が大きくなってしまうおそれがあり問題である。
【０００９】
本発明は前記背景技術に鑑みなされたものであり、巡回符号を使用して誤り訂正および誤り検出を行なう場合、誤り訂正処理によって得られる誤りビット位置から補正値を効率よく演算することにより、補正に要する処理時間の短縮、および誤り検出処理に必要となる回路の簡略化を図ることが可能な誤り検出装置および誤り検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
前記目的を達成するために、第１の発明に係る誤り検出装置は、所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる受信データの誤り訂正情報に基づき、第１のシンドロームの補正を行なう際、データユニットごとに、ビット列の指定ビット位置に誤りがある場合に演算される第２のシンドロームを予め格納しておく格納部と、誤り訂正情報により誤りを含むとして特定されるデータユニットにおける第２のシンドロームを初期符号として格納部より読み出し、データユニットにおける誤りビット位置から指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する演算部と、誤りビット位置ごとに演算部から出力される演算結果を加算（ＥＸＯＲ）して第３のシンドロームとして出力する第１加算部と、第１のシンドロームに第３のシンドロームを加算（ＥＸＯＲ）する第２加算部とを備えることを特徴とする。
【００１１】
また、第１の発明に係る誤り検出方法は、所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、第１のシンドロームの補正を行なう際、データユニットごとに、ビット列の指定ビット位置に誤りがある場合に演算される第２のシンドロームを予め格納しておくステップと、誤り訂正情報により誤りを含むとして特定されるデータユニットにおける第２のシンドロームを読み出すステップと、読み出された第２のシンドロームを初期符号として、データユニットにおける誤りビット位置から指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力するステップと、誤りビット位置ごとに出力される演算結果を加算（ＥＸＯＲ）して第３のシンドロームとして出力するステップと、第１のシンドロームに第３のシンドロームを加算（ＥＸＯＲ）するステップとを有することを特徴とする。
【００１２】
第１の発明の誤り検出装置および誤り検出方法では、データユニットの指定ビット位置に誤りがある場合の受信データに対する第２のシンドロームが、データユニットごとに予め格納されている。受信データが誤りを含む場合に、誤りビット位置ごとに、誤り訂正情報により誤りが存在するデータユニットに応じた第２のシンドロームを読み出して初期符号とし、データユニットの誤りビット位置から指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する。出力された演算結果は加算（ＥＸＯＲ）され、第３のシンドロームとして出力される。第３のシンドロームは、受信データに対して誤り訂正前に生成された第１のシンドロームに加算（ＥＸＯＲ）される。
【００１３】
線形帰還シフトレジスタには、受信データのＭＳＢからＬＳＢに向かって順次ビットデータが入力される。特定のビット位置にのみ誤りがある場合のシンドロームを求める場合、誤りビット位置以外のビット位置のビットデータは誤りのないことを示す“０”値で埋められる。したがって、線形帰還シフトレジスタにおいて、指定ビット位置に誤りがある場合の第２のシンドロームに対して、誤りビット位置から指定ビット位置に至るビット差分のシフト動作において“０”値が入力されれば、誤りビット位置に誤りがある場合のシンドロームが得られることとなる。誤りが複数のビット位置に存在する場合は、上記のシンドロームを加算（ＥＸＯＲ）すれば全ての誤りビット位置に対応する第３のシンドロームを求めることができる。
【００１４】
これにより、データユニットの指定ビット位置に誤りがある場合に演算される第２のシンドロームに対して、データユニットにおける誤りビット位置から指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算を行った上で、誤りビット位置ごとに演算結果を加算（ＥＸＯＲ）してやれば、第１のシンドロームに対する補正値である第３のシンドロームを得ることができる。第３のシンドロームを、誤り訂正情報に基づき受信データの総ビット数分のシフト動作を行って線形帰還シフトレジスタにより求める必要はなく、短時間の演算時間で第１のシンドロームを補正することができる。
【００１５】
また、格納されている第２のシンドロームは、受信データを構成する各データユニットにおける指定ビット位置に誤りがある場合のシンドロームであり、データユニットごとに１つのシンドロームが格納されているに留まる。受信データを構成する全てのデータユニットのビット位置ごとに誤りがある場合のシンドロームを格納する場合に比して、格納されるデータ量を低減することができる。格納領域を小さな領域に限定することができ、その制御回路も含め回路規模を圧縮することができる。
【００１６】
また、第２の発明に係る誤り検出装置は、所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる受信データの誤り訂正情報に基づき、第１のシンドロームの補正を行なう際、受信データを構成する総ビット数からデータユニットを構成する所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する複数の第２シフト演算部と、受信データのうち誤り訂正情報により誤りを含むとして特定されるデータユニットより下位にあるビット数のシフト動作に等価な演算結果を取得するために、複数の第２シフト演算部を少なくとも一つ選択する第２選択部と、第２選択部により選択される複数の第２シフト演算部に対する初期符号として、線形帰還シフトレジスタを構成するビット列の下位に、誤り訂正情報により特定されるデータユニットの誤りビット位置を示すビット列を割り当てる初期設定部とを備えることを特徴とする。
【００１７】
また、第２の発明に係る誤り検出方法は、所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる受信データの誤り訂正情報に基づき、第１のシンドロームの補正を行なう際、受信データを構成する総ビット数からデータユニットを構成する所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるソフト動作に等価な演算結果を出力する第２の複数のステップと、受信データのうち誤り訂正情報により誤りを含むとして特定されるデータユニットより下位にあるビット数のシフト動作に等価な演算結果を取得するために、第２の複数のステップを少なくとも一つ選択するステップと、第２の複数のステップに対する初期符号として、線形帰還シフトレジスタを構成するビット列の下位に、誤り訂正情報により特定されるデータユニットの誤りビット位置を示すビット列を割り当てるステップとを有することを特徴とする。
【００１８】
第２の発明の誤り検出装置および誤り検出方法では、受信データを構成する総ビット数からデータユニットを構成する所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算から少なくとも一つを選択して、誤りを含むデータユニットより下位にあるビット数のシフト動作に等価な演算結果を取得する。このとき、演算の初期符号として、線形帰還シフトレジスタを構成するビット列の下位に、誤りの存在するデータユニットの誤りビット位置を示すビット列を割り当てる。
【００１９】
誤り訂正情報により誤りがあるとされるデータユニット以外のデータユニットでは、誤りが存在していない。このため、線形帰還シフトレジスタにおいて、誤りのあるデータユニット以外のデータユニットのビットデータは全て“０”値であるとして、シフト動作が行われることとなる。
【００２０】
これにより、線形帰還シフトレジスタを構成するビット列の下位に、誤りの存在するデータユニットの誤りビット位置を示すビット列を割り当てて初期符号とし、総ビット数からデータユニットを構成する所定ビット数を減じたビット数以下の線形帰還シフトレジスタによるシフト動作に等価な演算を組み合わせれば、誤りの存在するデータユニットより下位のビット数のシフト動作と等価な演算結果を取得して第３のシンドロームを得ることができる。第３のシンドロームを、誤り訂正情報に基づき受信データの総ビット数分のシフト動作を経て線形帰還シフトレジスタにより求める必要はなく、短時間の演算時間で第１のシンドロームを補正することができる。
【００２１】
また、特定のビット位置に誤りがある場合のシンドロームを格納しておく必要はない。格納領域およびその制御回路は不要であり、回路規模を圧縮することができる。
【発明の効果】
【００２２】
本発明によれば、巡回符号を使用する誤り検出において、誤り訂正処理によって得られる誤り訂正情報からシンドロームの補正値を効率よく演算することができ、補正に要する処理時間の短縮、および補正処理に必要な回路の簡略化を図ることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の誤り検出装置および誤り検出方法について具体化した実施形態を図１乃至図１３に基づき図面を参照しつつ詳細に説明する。
【００２４】
本発明の誤り検出装置および誤り検出方法は、巡回符号の性質を奏するＥＤＣが付与された受信データを復調する際、誤り訂正を行う前段階で演算される誤り検出結果に、誤り訂正情報に対して演算される誤り検出結果を補正値として加算（ＥＸＯＲ）することにより、受信データに対する誤り検出を行うものである。ここで、誤り訂正情報とは受信データにおける誤り位置を示す情報である。受信データがバイト単位で区画されてデータユニットを構成すると考えると、誤り訂正情報は、受信データにおけるバイト位置、および当該バイト位置での誤りビット位置で構成される情報である。
【００２５】
本発明の誤り検出装置および誤り検出方法は、巡回符号を使用する誤り検出であれば有効に適用することができる。巡回符号の例としてはＣＲＣ符号が考えられる。以下に示す第１乃至第４実施形態では、巡回符号としてＣＲＣ符号が使用される場合を説明する。
【００２６】
ＣＲＣ符号を使用する場合の例として、図１にＤＶＤにおける１セクタのデータフォーマットを示す。４バイトのＩＤデータにＩＤデータに対するエラー検出用のＩＥＤデータが２バイトの長さで付加され、合わせて６バイトのＩＤ関連データが配置される。ＩＤ関連データに引き続くＲＳＶデータは６バイトである。以上の１２バイトで制御データを構成する。その後、メインデータとしてユーザデータが２０４８バイト配置される。最後に、全てのデータに対するＥＤＣ符号が４バイトで配置される。２０６４バイトで１セクタが構成される。ここで、４バイトのＥＤＣ符号の最終ビットが１セクタにおけるＬＳＢ、すなわち第０バイト０（Ｂ０）の第０ビット（ｂ０）であり、４バイトのＩＤデータの先頭ビットが１セクタにおけるＭＳＢ、すなわち第２０６３バイト０（Ｂ２０６３）の第１６５１１ビット（ｂ１６５１１）である。以下に説明する第１乃至第４実施形態の誤り検出装置および誤り検出方法では、ＤＶＤの１セクタ（２０６４バイト）に対して誤り検出を行う場合を例示する。
【００２７】
図２に示す線形帰還シフトレジスタ（以下、ＬＦＳＲと略記する。）は、ＤＶＤの１セクタデータに対する誤り検出結果として、Ｘ０〜Ｘ３１の３２ビットのビット列が得られる。このビット列がシンドロームであり、またはパリティ符号に対する結果である。
【００２８】
ＤＶＤのセクタデータは、ＭＳＢである第１６５１１ビット（ｂ１６５１１）から順次入力される。入力されるビットデータは、ビット位置（Ｘ３１）のビットデータと共に加算（ＥＸＯＲ）されて、ビット位置（Ｘ０）に入力される。線形帰還シフトレジスタでは、順次高位ビット位置に向かってビットデータがシフトされていく。この間、ビット位置（Ｘ３）とビット位置（Ｘ３１）が加算（ＥＸＯＲ）されてビット位置（Ｘ４）に入力され、ビット位置（Ｘ３０）とビット位置（Ｘ３１）が加算（ＥＸＯＲ）されてビット位置（Ｘ３１）に入力される。ＤＶＤの１セクタのＬＢＳである第０ビット（ｂ０）が、ビット位置（Ｘ３１）と加算（ＥＸＯＲ）されてビット位置（Ｘ０）に入力された時点で、シンドロームの演算が完了する。このときのＸ０〜Ｘ３１のビット列のビットデータが所定値を有していれば、１セクタデータに誤りは存在しないこととなる。このときのＸ０〜Ｘ３１のビット列のビットデータがシンドロームである。また、Ｘ０〜Ｘ３１のビット列のビットデータが“０”値を有していれば、１セクタデータに誤りは存在しないとする設定も考えられる。これが誤り検出である。以下の説明では、Ｘ０〜Ｘ３１のビット列のビットデータをシンドロームとして説明する。また、パリティを生成する場合もシンドローム同様の計算を行うので、本稿がパリティの生成にも適用することができることは言うまでもない。
【００２９】
ここで、ＬＦＳＲのビット位置Ｘ１〜Ｘ３１までに０をセットし、ビット位置Ｘ０に１をセットする。この状態をβ０と定義する。β０から入力は０で１クロックシフト(×β1)したときのＬＦＳＲの状態をβ1と定義し、βnから０入力でｍクロックシフト(×βｍ)したときのＬＦＳＲの状態をβｎ＋ｍと定義する。
【００３０】
図３は、本発明の誤り検出装置を備える受信システムの原理を示す原理説明図である。ＤＶＤから出力されたデータは復調器１により受信され受信データＤＯに変換される。変換された受信データＤＯは、ＬＦＳＲ４に入力され初期シンドロームＳＯが演算される。同時にメモリ２に格納される。その後、受信データＤＯはメモリ２から読み出され、誤り訂正回路３において誤りの訂正が行われる。訂正された受信データＤＣはメモリ２に格納される。また、ＬＦＳＲ４において演算された初期シンドロームＳＯもメモリ２に格納される。
【００３１】
誤り訂正回路３により誤りが訂正された場合、受信データＤＯにおいて誤りが存在するバイト位置を示す誤りバイト位置情報ＥＢＰと、誤りバイト位置情報ＥＢＰにより特定される誤りバイト位置内での誤りビット位置情報ＥｂＰとが、補正シンドローム演算器５に向けて出力される。ＤＶＤの１セクタデータの場合には、２０６４バイトを識別するために誤りバイト位置情報ＥＢＰは１２ビット長の情報である。誤りビット位置情報ＥｂＰは、バイト内のビット位置を識別するので、８ビット長の情報である。
【００３２】
補正シンドローム演算器５では、誤りバイト位置情報ＥＢＰおよび誤りビット位置情報ＥｂＰに基づいてＬＦＳＲ４と等価な演算をおこない、補正シンドロームＳＣを出力する。メモリ２から読み出された初期シンドロームＳＯと補正シンドロームＳＣとが加算器（ＥＸＯＲ）６により加算（ＥＸＯＲ）されて、シンドロームＳが出力される。
【００３３】
誤りバイト位置情報ＥＢＰおよび誤りビット位置情報ＥｂＰから、補正シンドロームＳＣを演算することができる。このとき、ＬＦＳＲ４に訂正された受信データＤＣを入力して、総ビット数である１６５１２回のシフト動作を行う必要はない。短時間で補正シンドロームＳＣの演算を行うことができる。このとき、誤りバイト位置情報ＥＢＰおよび誤りビット位置情報ＥｂＰから、必要最小限のデータにより補正シンドロームＳＣを演算するので、演算に必要となる制御回路や演算に必要となるデータテーブルを小規模の回路構成にすることができる。
【００３４】
また、メモリ２へのアクセスは、復調器１から出力される受信データＤＯの格納と、受信データＤＯの読み出しと、訂正された受信データＤＣの格納とである。誤り訂正された受信データＤＣに対する誤り検出を行う際に、メモリ２から訂正された受信データＤＣを読み出す必要はなく、メモリ２へのデータのアクセス回数を減らすことができる。
【００３５】
ここで、補正シンドローム演算器５および加算器（ＥＸＯＲ）６を備えて本願の誤り検出装置が構成されている。
【００３６】
図４乃至図７には、第１実施形態の誤り検出装置および誤り検出方法を示す。図４は、誤り検出装置の回路図である。誤りビット位置情報ＥｂＰが格納されるレジスタ５１を備え、シフト信号ＳＦＴ１に応じてＭＳＢ（ＥｂＰ（７））からＬＳＢ（ＥｂＰ（０））に至るビットデータが順次、論理積ゲート５３に入力される。
【００３７】
また、シンドローム格納部５２を備え、受信データＤＯの各バイト位置（Ｂ０〜Ｂ２０６３）において指定ビット位置が誤りビット位置である場合のシンドロームが予め格納されている。シンドロームは図２のＬＦＳＲで示されるＸ０〜Ｘ３１の３２ビット構成である。ここで、受信データを構成するバイト数は２０６４バイトあるので、２０６４種類のシンドロームが格納されている。シンドローム格納部５２には、全体で３２ビット×２０６４のビット数のビットデータが格納されている。
【００３８】
シンドローム格納部５２には、誤りバイト位置情報ＥＢＰが入力される。誤りバイト位置情報ＥＢＰは、受信データＤＯにおいて誤りが存在するバイト位置を示す１２ビットのビットデータである。１２ビットのビットデータにより２０６４バイトのうちの一つが選択される。入力される誤りバイト位置情報ＥＢＰに応じて、シンドローム格納部５２から該当するシンドロームが３２ビット幅で出力される。出力されるシンドロームは論理積ゲート５３に入力される。
【００３９】
尚、以下の説明では指定ビット位置は各バイト位置のＬＳＢ（ＥｂＰ（０））である場合を例とする。
【００４０】
論理積ゲート５３では、レジスタ５１から出力されるビットデータが誤りビット位置を示す“１”値である場合に、シンドロームを出力する。出力されるシンドロームは、加算器（ＥＸＯＲ）５４に入力される。加算器（ＥＸＯＲ）５４には、図５において後述する１シフト演算器（β１）５７から出力される３２ビット幅のビットデータが入力され、加算結果がレジスタ５５に入力される。加算器（ＥＸＯＲ）５４では、論理積ゲート５３から出力されるシンドロームと１シフト演算器（β１）５７からの出力される３２ビットのビットデータとの排他的論理和演算が行われる。
【００４１】
レジスタ５５からの出力は、セレクタ５６に入力される。セレクタ５６はシフト信号ＳＦＴ１で制御される。シフト信号ＳＦＴ１の、誤りビット位置からＬＳＢ（ＥｂＰ（０））に至るビット差分の回数、レジスタ５５を１シフト演算器（β１）５７の入力端子に接続する。ここでは最大７回である。シフト信号ＳＦＴ１により順次１シフト演算器（β１）５７による演算が繰り返されて、レジスタ５５には補正シンドロームＳＣが格納される。次のシフト信号ＳＦＴ１に応じてセレクタ５６は加算器（ＥＸＯＲ）６の入力端子に接続される。加算器（ＥＸＯＲ）６では、ＬＦＳＲ４（図３）から出力される初期シンドロームＳＯと補正シンドロームＳＣとの排他的論理和演算が行われる。演算結果が誤り訂正後の受信データＤＣのシンドロームＳである。
【００４２】
第１実施形態の誤り検出回路では、シフト信号ＳＦＴ１に応じて、レジスタ５１に格納されている誤りビット位置情報ＥｂＰが上位ビットから順次選択される。選択されたビット位置のビットデータが“１”値であり誤りのあるビット位置である場合に、誤りバイト位置情報ＥＢＰにより、受信データＤＯ中の誤りの存在するバイト位置においてＬＳＢ（ＥｂＰ（０））が誤りビット位置である場合のシンドロームが、シンドローム格納部５２から加算器（ＥＸＯＲ）５４に出力される。加算器（ＥＸＯＲ）５４から出力される３２ビットのビットデータは、一旦、レジスタ５５に格納された後、シフト信号ＳＦＴ１に応じて１シフト演算器（β１）５７でＬＦＳＲ４での１シフト動作と等価な演算が行われ、加算器（ＥＸＯＲ）５４に送られる。加算器（ＥＸＯＲ）５４では、論理積ゲート５３からシンドロームが出力されれば１シフト演算器（β１）５７から出力される３２ビットのビットデータにシンドロームを加算（ＥＸＯＲ）して、またシンドロームが出力されなければ、３２ビットのビットデータをそのままに、レジスタ５５に送る。
【００４３】
図５には、１シフト演算器（β１）５７の演算動作を示している。ビット位置（Ｘ３）に対応するビットデータとビット位置（Ｘ３１）に対応するビットデータが加算（ＥＸＯＲ）されてビット位置（Ｘ４）に対応するビットデータとされる。ビット位置（Ｘ３０）に対応するビットデータとビット位置（Ｘ３１）に対応するビットデータとが加算（ＥＸＯＲ）されてビット位置（Ｘ３１）に対応するビットデータとされる。その他のビット位置（Ｘ０）〜（Ｘ２）、（Ｘ４）〜（Ｘ２９）に対応するビットデータは、ビット位置が１ビット繰り上がったビット位置（Ｘ１）〜（Ｘ３）、（Ｘ５）〜（Ｘ３０）に対応するビットデータとされる。図５に示す１シフト演算器（β１）５７では、ＬＦＳＲ（図２）における１ビットのシフト動作と等価な演算結果を、加算器（ＥＸＯＲ）を備えた組み合わせ論理回路により実現できることを示している。
【００４４】
図６を参照して、第１実施形態において補正シンドロームＳＯが演算される際の原理について説明する。図６に示すビット列は、誤り訂正回路３（図３）において受信データＤＯに対して誤り訂正が行われた際の誤り訂正情報である。図６では、第１０３０バイト（Ｂ１０３０）のバイト位置のビットデータについて誤り訂正が行われたものとする（誤りバイト位置情報ＥＢＰ＝Ｂ１０３０）。第１０３０バイトにおいて、第７ビット（ＥｂＰ（７））および第３ビット（ＥｂＰ（３））のビット位置が誤りビット位置であるとする（誤りビット位置情報ＥｂＰ＝“１０００１０００”）。
【００４５】
第１実施形態では、シンドローム格納部５２に、受信データＤＯにおける各バイト位置のＬＳＢ（ＥｂＰ（０））が誤りビット位置である場合のシンドロームが格納されている。今、第７ビット（ＥｂＰ（７））の誤りビット位置に着目し、受信データＤＯのそれ以外のビット位置には誤りはないものとする。これにより第７ビット（ＥｂＰ（７））以外のビット位置には“０”値のビットデータが格納されていることとなる。ここで、第７ビット（ＥｂＰ（７））からＬＳＢ（ＥｂＰ（０））に至るまでのビット差分はΔｂ＝７である。
【００４６】
シンドロームを演算するＬＦＳＲ（図２）では、受信データＤＯはＭＳＢ（ｂ１６５１１）から順次入力されるので、第７ビット（ＥｂＰ（７））のビット位置において、ＬＳＢ（ＥｂＰ（０））に誤りがある場合のシンドロームが設定される場合、このシンドロームに対してビット差分のΔｂ＝７のシフト動作を行えば、第７ビット（ＥｂＰ（７））を誤りビット位置とするシンドロームが得られる。
【００４７】
誤りビット位置である１ビットについてのみビットデータが“１”値に設定され、その他のビット位置のビットデータは“０”値であることにより、ＬＳＢ（ＥｂＰ（０））を誤りビット位置とするシンドロームに対して、ＬＳＢ（ＥｂＰ（０））に対して上位ビット側に存在する誤りビット位置を誤りビット位置とするシンドロームは、ＬＳＢ（ＥｂＰ（０））を誤りビット位置とするシンドロームに対してビット差分のシフト動作を行えば得られるからである。
【００４８】
第３ビット（ＥｂＰ（３））を誤りビット位置とする場合も同様に、それ以外のビット位置には誤りはなく、ビットデータとして“０”値が格納されていることより、ＬＳＢ（ＥｂＰ（０））を誤りビット位置とするシンドロームに対してビット差分（Δｂ＝３）のシフト動作を行えば、第３ビット（ＥｂＰ（３））を誤りビット位置とするシンドロームが得られる。
【００４９】
巡回符号を使用した誤り検出においては、誤りビット位置ごとにシンドロームを加算（ＥＸＯＲ）することができるので、上記のように個々の誤りビット位置に対して、ＬＳＢ（ＥｂＰ（０））とのビット差分のシフト動作を行った演算結果を加算（ＥＸＯＲ）してやれば、全ての誤りビットに対するシンドロームを求めることができる。求められるシンドロームが補正シンドロームＳＣである。
【００５０】
図７は、第１実施形態での誤り検出方法を示す処理フローである。図６に示した誤りビット位置に対する処理フローである。図７の処理フローでは、ステップが移動するごとに、レジスタに格納されている３２ビットのビットデータ（Ｘ０〜Ｘ３１）に対して、ＬＳＦＲでの１シフト動作と等価な演算が行われる。この処理はβ１の乗算として表記されている。図７では、誤り訂正情報が誤りバイト位置情報ＥＢＰ＝Ｂ１０３０および誤りビット位置情報ＥｂＰ＝“１０００１０００”の場合を例示したものである。
【００５１】
先ず、誤りバイト位置情報ＥＢＰ＝Ｂ１０３０に応じてテーブルからテーブル値として、第１０３０バイト（Ｂ１０３０）のＬＳＢ（ＥｂＰ（０））を誤りビット位置とするシンドロームＳ（ｂ８２４０）を出力する（Ｓ１１）。誤りバイト位置情報ＥＢＰ＝Ｂ１０３０に対応するシンドロームＳ（ｂ８２４０）がレジスタに格納される。ここで、ｂ８２４０とは、第１０３０バイト（Ｂ１０３０）のＬＳＢ（ＥｂＰ（０））のビット位置である。
【００５２】
次に、ビットデータとして“０”値が加算（ＥＸＯＲ）される。加算（ＥＸＯＲ）回数は３回である（Ｓ１２〜Ｓ１４）。加算（ＥＸＯＲ）された結果がレジスタに格納される。各ステップによりレジスタ値は、Ｓ（ｂ８２４０）×β１、Ｓ（ｂ８２４０）×β２、Ｓ（ｂ８２４０）×β３と順次変化する。この間は、加算（ＥＸＯＲ）されるビットデータが“０”値であるため、レジスタ値に対して、ＬＳＦＲでの１シフト動作が順次行われるのに等価な演算となる。
【００５３】
ステップ（Ｓ１５）では、再度、テーブルからテーブル値としてシンドロームＳ（ｂ８２４０）が出力され、既にレジスタに格納されているビットデータに１シフト動作に等価な演算が施されたビットデータに加算（ＥＸＯＲ）され、レジスタに格納される。レジスタ値は、Ｓ（ｂ８２４０）×β４＋Ｓ（ｂ８２４０）＝Ｓ（ｂ８２４０）×（β４＋１）となる。
【００５４】
次に再度、ビットデータとして“０”値が加算（ＥＸＯＲ）される。加算（ＥＸＯＲ）回数は２回である（Ｓ１６〜Ｓ１８）。加算（ＥＸＯＲ）された結果がレジスタに格納される。各ステップによりレジスタ値は、Ｓ（ｂ８２４０）×（β５＋β１）、Ｓ（ｂ８２４０）×（β６＋β２）、Ｓ（ｂ８２４０）×（β７＋β３）と順次変化する。この間は、加算（ＥＸＯＲ）されるビットデータが“０”値であるため、レジスタ値に対して、ＬＳＦＲでの１シフト動作が順次行われるのに等価な演算となる。ステップ（Ｓ１８）によりレジスタに格納されるビットデータが、補正シンドロームＳＣである。
【００５５】
レジスタ値である補正シンドロームＳＣを、誤り訂正前に演算された初期シンドロームＳＯに加算（ＥＸＯＲ）することにより（Ｓ１９）、シンドロームＳが演算され、誤り検出を行うことができる。
【００５６】
ここで、上記の処理フローを図４の誤り処理装置での処理に対応付けて説明する。ステップ（Ｓ１１）におけるテーブルは、シンドローム格納部５２に格納されているシンドロームのテーブルに相当する。ステップ（Ｓ１１）は、レジスタ５１に格納されたＭＳＢ（（ＥｂＰ（７））が読み出され、誤りビットであることにより論理積ゲート５３を介してシンドローム格納部５２から対応するシンドロームＳ（ｂ８２４０）が出力されることを示す。
【００５７】
ステップ（Ｓ１２）〜ステップ（Ｓ１４）、ステップ（Ｓ１６）〜ステップ（Ｓ１８）は、レジスタ５１から出力されるビットデータが“０”値であり論理積ゲート５３から“０”値が出力されることに相当する。この間は、レジスタ５５に格納されているビットデータが、セレクタ５６を介して１シフト演算器（β１）５７で１シフト動作に等価な演算が施された後、加算器５４を通過してレジスタ５５に戻される処理に相当する。
【００５８】
ステップ（Ｓ１５）は、レジスタ５１に格納された第３ビット（ＥｂＰ（３））が読み出され、誤りビットであることにより論理積ゲート５３を介してシンドローム格納部５２から再度シンドロームＳ（ｂ８２４０）が出力されることを示す。
【００５９】
ステップ（Ｓ１９）は、加算器（ＥＸＯＲ）６に相当する。
【００６０】
図８は、第２実施形態の誤り検出回路である。レジスタ５１、シンドローム格納部５２、および加算器（ＥＸＯＲ）６は第１実施形態（図４）と同様である。第２実施形態では、第１実施形態の論理積ゲート５３に代えて、レジスタ５１に格納されている誤りビット位置情報ＥｂＰの各ビット位置のビットデータごとに、論理積ゲートが備えられている。各論理積ゲートは、レジスタ５１の各ビットデータと、誤りバイト位置情報ＥＢＰに応じてシンドローム格納部５２から出力されるシンドロームとの論理積を求め、誤りビット位置でありビットデータとして“１”値が格納されている場合にシンドロームを出力する。
【００６１】
出力されるシンドロームは、レジスタ５１のＬＳＢ（ＥｂＰ（０））に接続される論理積ゲートから出力されるものを除いて、それぞれＬＦＳＲでの所定回数のシフト動作と等価な演算結果を出力するシフト演算器（β１）〜（β７）５８（１）〜（７）に入力される。シフト演算器（β１）〜（β７）５８（１）〜（７）は、レジスタ５１の第１ビット（ＥｂＰ（１））〜第７ビット（ＥｂＰ（７））の各々に対する個別シフト演算器として備えられている。シフト演算器（β１）〜（β７）５８（１）〜（７）の各々は、レジスタ５１の各ビット位置からＬＳＢ（ＥｂＰ（０））に至るビット差分を所定数としてシフト動作するのと等価な演算が行われる。
【００６２】
シフト演算器（β１）〜（β７）５８（１）〜（７）からの出力は、レジスタ５１のＬＳＢ（ＥｂＰ（０））に対応する論理積ゲートの出力と共に、加算器（ＥＸＯＲ）５９に入力され、排他的論理和演算が行われる。加算器（ＥＸＯＲ）５９から出力される排他的論理和演算の結果が補正シンドロームＳＣである。
【００６３】
加算器（ＥＸＯＲ）６では、ＬＦＳＲ４（図３）から出力される初期シンドロームＳＯと補正シンドロームＳＣとの排他的論理和演算が行われる。演算結果が誤り訂正後の受信データＤＣのシンドロームＳである。
【００６４】
第２実施形態の誤り検出回路では、レジスタ５１に格納されている誤りビット位置情報ＥｂＰについて、ビットデータが“１”値であり誤りビット位置である場合に、誤りバイト位置情報ＥＢＰにより特定される誤りの存在するバイト位置においてＬＳＢ（ＥｂＰ（０））が誤りビット位置である場合のシンドロームが、（β１）〜（β７）５８（１）〜（７）に入力される。シフト演算器（β１）〜（β７）５８（１）〜（７）では、誤りビット位置からＬＳＢ（ＥｂＰ（０））に至るビット差分のシフト動作に等価な演算が行われ、演算結果が加算器（ＥＸＯＲ）５９で加算（ＥＸＯＲ）される。更に加算器（ＥＸＯＲ）６で初期シンドロームＳＯと加算（ＥＸＯＲ）され、シンドロームＳを得ることができる。
【００６５】
第１実施形態の誤り検出回路（図４）において、シンドローム格納部５２から出力されるシンドロームに対して、誤りビット位置からＬＳＢ（ＥｂＰ（０））に至るビット差分の回数のシフト動作に等価な演算を、シフト信号ＳＦＴ１で制御される回数分、１シフト演算器（β１）５７で繰り返し行うことに代えて、第２実施形態の誤り検出回路では、誤りビット位置ごとにシフト演算器（β１）〜（β７）５８（１）〜（７）を備えて、誤りビット位置ごとに、誤りビット位置からＬＳＢ（ＥｂＰ（０））に至るビット差分のシフト動作に等価な演算を並列処理する構成である。
【００６６】
ここで、シフト演算器（β１）〜（β７）５８（１）〜（７）の回路構成の概念図を図９に示す。図５において説明した１シフト演算器をＮ段に直列接続すれば、Ｎ回のシフト動作に等価な演算結果を出力するシフト演算器（β１）〜（β７）５８（１）〜（７）を得ることができる。
【００６７】
図１０乃至図１２には、第３実施形態の誤り検出装置および誤り検出方法を示す。図１０は、誤り検出装置の回路図である。誤りビット位置情報ＥｂＰが下位８ビット（Ｘ０〜Ｘ７）に格納される３２ビット長のレジスタ６１を備えている。レジスタ６１の上位２４ビット（Ｘ８〜Ｘ３１）は“０”値のビットデータが格納されている。
【００６８】
セレクタ６２は、レジスタ６１からの出力されるデータと、セレクタ６６を介して入力されるシフト演算器６５（Ｎ）（Ｎ＝０〜１１）（後述）によりＬＦＳＲのシフト動作と等価な演算結果との、いずれかを選択してレジス６３に出力する。レジスタ６３は、シフト信号ＳＦＴ２により、格納されているビットデータをセレクタ６４に出力する。
【００６９】
セレクタ６４は、シフト演算器６５（Ｎ）（Ｎ＝０〜１１）、または加算器（ＥＸＯＲ）６のうち何れか一つを選択し、レジスタ６３に格納されているビットデータを送出する。セレクタ６６は、シフト演算器６５（Ｎ）（Ｎ＝０〜１１）のうち何れか一つを選択し、選択されたシフト演算器６５（Ｎ）による演算結果をセレクタ６２に送出する。セレクタ６４、６６は、選択回路６７により制御される。選択回路６７は、同時にシフト信号ＳＦＴ２を出力する。選択回路６７には、誤りバイト位置情報ＥＢＰが入力されており、誤りバイト位置に応じて、セレクタ６４、６６を選択する信号、およびシフト信号ＳＦＴ２が出力される。加算器（ＥＸＯＲ）６は、図３に示した加算器（ＥＸＯＲ）６である。
【００７０】
第３実施形態の誤り検出回路では、先ず、セレクタ６２がレジスタ６１を選択し、レジスタ６３の内容をレジスタ６１の内容で初期化する。その後、選択回路６７により、シフト信号ＳＦＴ２に応じてレジスタ６３に格納されているデータが出力され、セレクタ６４、６６により選択されるシフト演算器６５（Ｎ）での演算が行われ、演算結果がセレクタ６６を介してレジスタ６３に格納される。選択回路６７では、補正シンドロームＳＣの演算に必要なシフト演算器６５（Ｎ）の組み合わせが選択されるので、選択回路６７により、セレクタ６４、６６が、選択されるシフト演算器６５（Ｎ）を順次選択し、演算結果はセレクタ６６、６２を介してレジスタ６３に順次格納される。誤りバイト位置情報ＥＢＰにより選択される全てのシフト演算器６５（Ｎ）が選択されたところで、レジスタ６３に格納されているビットデータは補正シンドロームＳＣとなる。その後、セレクタ６４はレジスタ６３を加算器（ＥＸＯＲ）６に接続する。加算器（ＥＸＯＲ）６では、初期シンドロームＳＯに補正シンドロームＳＣが加算（ＥＸＯＲ）され、シンドロームＳが得られる。
【００７１】
図１１を参照して、第３実施形態において補正シンドロームＳＣが演算される際の原理について説明する。図１１に示すビット列は、図６に示したビット列と同じである。図４に示すとおり、ＬＦＳＲには受信データＤＯの上位ビットから降べきにビットデータが入力される。誤りビットを有する第１０３０バイト（Ｂ１０３０）より上位のバイト位置（Ｂ１０３１〜Ｂ２０６３）では誤りビットは存在しないので、第２０６３バイト（Ｂ２０６３）から第１０３１バイト（Ｂ１０３１）までのビットデータがＬＦＳＲに入力された時点では、ＬＦＳＲを構成するビット列（Ｘ０〜Ｘ３１）のビットデータは、全て“０”値に維持されている。
【００７２】
その後、ＬＦＳＲには、第１０３０バイト（Ｂ１０３０）が入力され、更に第１０２９バイト（Ｂ１０２９）から第０バイト（Ｂ０）までが入力されて、シンドロームが演算される。第３実施形態では、第１０３０バイト（Ｂ１０３０）が入力され、更に第１０２９バイト（Ｂ１０２９）から第０バイト（Ｂ０）までが入力されてシフト動作が行われるＬＦＳＲの動作に等価な演算を行うものである。
【００７３】
先ず、第１０３０バイト（Ｂ１０３０）がＬＦＳＲに入力された状態を考える。これに先立つＬＦＳＲのビット列（Ｘ０〜Ｘ３１）のビットデータは全て“０”値であるので、第１０３０バイト（Ｂ１０３０）の誤りビット位置情報ＥｂＰ（“１０００１０００”）は、ＬＦＳＲの下位８ビットのビット列（Ｘ０〜Ｘ７）に格納される。この場合、ＬＦＳＲの上位２４ビットのビット列（Ｘ８〜Ｘ３１）は、“０”値が格納されている。この状態がレジスタ６１に格納される。
【００７４】
次に、第１０３０バイト（Ｂ１０３０）より下位の第１０２９バイト〜第０バイト（Ｂ１０２９〜Ｂ０）が入力される。これらを構成するビット位置には誤りはないのでビットデータは“０”値となる。ＬＦＳＲにおいて“０”値が入力されることとなり、図２に示すように、ビット位置（Ｘ０）には、ビット位置（Ｘ３１）のビットデータがそのまま入力されることとなる。したがって、第１０２９バイト〜第０バイト（Ｂ１０２９〜Ｂ０）を構成するビット数である８２４０（＝８×１０３０）ビットのシフト動作に等価な演算を行えばよい。これが、選択回路６７によるセレクタ６４、６６の制御である。この制御により、シフト演算器（β８１９２）６５（１０）、（β３２）６５（２）、（β１６）６５（１）を選択する。これらのシフト演算器を順次選択して演算を行えば、８１９２＋３２＋１６＝８２４０のシフト動作を行ったのと等価な演算結果を得られる。この演算を、β８１９２×β３２×β１６と表記する。
【００７５】
図１２は、第３実施形態での誤り検出方法を示す処理フローである。図１１に示した誤りビット位置に対する処理フローである。誤り訂正情報が誤りバイト位置情報ＥＢＰ＝Ｂ１０３０および誤りビット位置情報ＥｂＰ＝“１０００１０００”の場合を例示したものである。
【００７６】
先ず、レジスタの内容を、誤りビット位置情報ＥｂＰ＝“１０００１０００”を下位の８ビットのビットデータとし、上位の２４ビットのビットデータを“０”値に初期化する（Ｓ２１）。これにより、レジスタ値は、下位８ビットを誤りビット位置情報ＥｂＰとする初期値Ｉに初期化される。
【００７７】
次に、ＬＦＳＲにおける８１９２回のシフト動作に等価な演算（β８１９２）を行う（Ｓ２２）。続けて、３２回のシフト動作に等価な演算（β３２）（Ｓ２３）、および１６回のシフト動作に等価な演算（β１６）（Ｓ２４）を行う。これにより、レジスタ値は、Ｉ×β８１９２、Ｉ×β８１９２×β３２＝Ｉ×β８２２４、およびＩ×β８２２４×β１６＝Ｉ×β８２４０となる。これにより得られるレジスタ値（Ｉ×β８２４０）が補正シンドロームＳＣである。
【００７８】
レジスタ値である補正シンドロームＳＣを、誤り訂正前に演算された初期シンドロームＳＯに加算（ＥＸＯＲ）することにより（Ｓ２５）、シンドロームＳが演算され、誤り検出を行うことができる。
【００７９】
ここで、上記の処理フローを図１０の誤り処理装置での処理に対応付けて説明する。ステップ（Ｓ２１）におけるレジスタは、レジスタ６１に相当する。レジスタ６１は、３２ビット長であり、ＬＦＳＲにおいて構成されるビット列（Ｘ０〜Ｘ３１）において、誤りを有する第１０３０バイト（Ｂ１０３０）のビットデータが入力された状態に設定する。この状態を初期値として、下位のサイクルで所定回数のシフト動作を行う。
【００８０】
ステップ（Ｓ２２）〜ステップ（Ｓ２４）は、レジスタ６３から出力されるビットデータが、セレクタ６４により順次選択されるシフト演算器（β８１９２、β３２、β１６）６５（１０）、６５（２）、６５（１）に入力され、セレクタ６６を介してレジスタ６３に戻される処理に相当する。
【００８１】
ステップ（Ｓ２５）は、加算器（ＥＸＯＲ）６に相当する。
【００８２】
図１３は、第４実施形態の誤り検出回路である。レジスタ６１、シフト演算器６５（Ｎ）は、および加算器（ＥＸＯＲ）６は第３実施形態（図１０）と同様である。第４実施形態では、第３実施形態においてシフト演算器６５（Ｎ）を順次選択することに代えて、必要となるシフト演算器６５（Ｎ）を同時に選択する。
【００８３】
シフト演算器６５（１１）〜６５（０）ごとに、セレクタ６７（１１）〜６７（０）が備えられている。セレクタ６７（１１）〜６７（０）は、各々、誤りバイト位置情報ＥＢＰの各ビットデータＥＢＰ（１１）〜ＥＢＰ（０）により制御される。レジスタ６１から出力される初期化データに対して、更に必要となるＬＦＳＲでのシフト動作に等価となるように、シフト演算器６５（Ｎ）が選択され直列に接続されて、補正シンドロームＳＣが演算される。
【００８４】
以上詳細に説明したとおり、第１および第２実施形態に係る誤り検出装置および誤り検出方法によれば、受信データＤＯにおいて誤りを有するバイト位置のＬＳＢ（ＥｂＰ（０））に誤りがある場合に演算されるシンドロームに対して、誤りを有するバイト位置における誤りビット位置からＬＳＢ（ＥｂＰ（０））に至るビット差分のＬＦＳＲによるシフト動作に等価な演算を行った上で、誤りビット位置ごとに演算結果を加算（ＥＸＯＲ）してやれば、初期シンドロームＳＯに対する補正値である補正シンドロームＳＣを得ることができる。補正シンドロームＳＣを、誤りバイト位置情報ＥＢＰおよび誤りビット位置情報ＥｂＰに基づき、受信データＤＯの総ビット数分のシフト動作を行ってＬＦＳＲにより求める必要はなく、短時間の演算時間で初期シンドロームＳＯを補正することができる。
【００８５】
また、格納されているシンドロームは、受信データＤＯを構成する各バイト位置におけるＬＳＢ（ＥｂＰ（０））に誤りがある場合のシンドロームであり、バイト位置ごとに１つのシンドロームが格納されているに留まる。受信データＤＯを構成する全てのバイト位置の全てのビット位置に誤りがある場合のシンドロームを格納する場合に比して、格納されるデータ量を低減することができる。格納領域を小さな領域に限定することができ、その制御回路も含め回路規模を圧縮することができる。
【００８６】
また、第１実施形態に係る誤り検出装置および誤り検出方法によれば、誤りビット位置情報ＥｂＰの上位ビットから順次ビットデータが取り出され、取り出されたビット位置ごとにシンドローム格納部５２から対応するシンドロームが取り出され、以後、ＬＳＢ（ＥｂＰ（０））に至るビット差分のシフト動作が順次行われる。複数のビット位置に誤りがある場合には、加算器（ＥＸＯＲ）５４により順次加算（ＥＸＯＲ）がされながら、シフト動作に等価な演算を順次行うことができる。シフト動作に等価な演算器として１シフト演算器（β１）５７を備えていればよく、小規模な回路構成で演算を行うことができる。
【００８７】
また、第２実施形態に係る誤り検出装置および誤り検出方法によれば、誤りビット位置情報ＥｂＰにおいて誤りを有するビット位置が複数ビットである場合に、各々の誤りビット位置に対する演算を並列に行うことができる。演算時間の短縮を図ることができる。
【００８８】
ここで、受信データＤＯにおけるバイトがデータユニットの一例であり、この場合、所定ビット数は８ビットに相当する。また、バイト内のＬＳＢ（ＥｂＰ（０））が指定ビット位置の一例である。また、初期シンドロームＳＯ、補正シンドロームＳＣ、および補正されたシンドロームＳが、それぞれ、第１、第２、および第３のシンドロームの一例である。また、誤りバイト位置情報ＥＢＰおよび誤りビット位置情報ＥｂＰが誤り訂正情報の一例である。
【００８９】
また、第１および第２実施形態において、シンドローム格納部５２が格納部の一例である。また、第１実施形態おいて論理積ゲート５３、レジスタ５５、セレクタ５６、および１シフト演算器（β１）５７が、第２実施形態において論理積ゲート、およびシフト演算器（β１）〜（β７）５８（１）〜（７）が、演算部の一例である。また、加算器（ＥＸＯＲ）５４、５９が第１加算部の一例であり、加算器（ＥＸＯＲ）６が第２加算部の一例である。
【００９０】
また、第１実施形態おいて、レジスタ５５がレジスタ部の一例であり、１シフト演算器（β１）５７が１シフト演算部の一例であり、レジスタ５１がビット選択部の一例である。また、第２実施形態において、シフト演算器（β１）〜（β７）５８（１）〜（７）が複数の第１シフト演算部および第１個別シフト演算部の一例であり、レジスタ５１および論理積ゲートが第１選択部の一例である。
【００９１】
また、第３および第４実施形態に係る誤り検出装置および誤り検出方法によれば、ＬＦＳＲを構成する３２ビットのビット列（Ｘ０〜Ｘ３１）の下位８ビットに、誤りの存在するバイト位置の誤りビット位置情報ＥｂＰのビット列を割り当てて初期符号とし、総ビット数である１６５１２ビットからバイトを構成する８ビットを減じたビット数以下のＬＦＳＲによるシフト動作に等価な演算を組み合わせれば、誤りバイト位置情報ＥＢＰにより特定されるバイト位置より下位バイト位置を構成するビット数のシフト動作と等価な演算結果を取得して補正シンドロームＳＣを得ることができる。補正シンドロームＳＣを、誤りビット位置情報ＥｂＰおよび誤りバイト位置情報ＥＢＰに基づき受信データＤＯの総ビット数分のシフト動作を経てＬＦＳＲにより求める必要はなく、短時間の演算時間で初期シンドロームＳＯを補正することができる。
【００９２】
この場合、各バイトのＬＳＢ（ＥｂＰ（０））に誤りがある場合のシンドロームを格納しておく必要はない。格納領域およびその制御回路は不要であり、回路規模を圧縮することができる。
【００９３】
また、第３実施形態に係る誤り検出装置および誤り検出方法によれば、誤りビット位置情報ＥｂＰを、ＬＦＳＲを構成する３２ビットのビット列（Ｘ０〜Ｘ３１）の下位８ビットに割り当てて初期符号とする。この初期符号に対して、誤りバイト位置情報ＥＢＰにより特定されるバイト位置より下位にあるバイト位置に含まれるビット数のシフト動作をＬＦＳＲで行う必要がある。このシフト動作と等価な演算を、誤りバイト位置情報ＥＢＰよりシフト演算器６５（Ｎ）（Ｎ＝０〜１１）を順次選択して行うことができる。この場合、誤りビット位置情報ＥｂＰは初期符号として取り込まれるので、誤りの存在するビット位置の数に関わらず同じ演算により補正シンドロームＳＣを演算することができる。小規模な回路構成で演算を行うことができる。
【００９４】
また、第４実施形態に係る誤り検出装置および誤り検出方法によれば、誤りビット位置情報ＥｂＰに対して更に必要とされるシフト動作と等価な演算は、セレクタ６５（Ｎ）により同時に選択され、必要とされるシフト演算器６５（Ｎ）が直列に接続される。シフト演算器６５（Ｎ）を順次選択する必要はなく簡単な制御で演算を行うことができる。
【００９５】
ここで第３および第４実施形態において、シフト演算器６５（Ｎ）（Ｎ＝０〜１１）が複数の第２シフト演算部の一例であり、第２個別シフト演算部の一例である。第３実施形態においてセレクタ６４、６６が、また第４実施形態においてセレクタ６７（Ｎ）（Ｎ＝０〜１１）が、第２選択部の一例である。また、レジスタ６１が初期設定部の一例である。
【００９６】
また、第３実施形態において、セレクタ６２が第３選択部の一例であり、レジスタ６３がレジスタ部の一例である。また、加算器（ＥＸＯＲ）６が第２加算部の一例である。
【００９７】
尚、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良、変形が可能であることは言うまでもない。
例えば、本実施形態において、補正シンドロームＳＣを演算する場合、線形帰還シフトレジスタ（ＬＦＳＲ）（図２）を使用することもできる。
【００９８】
また、第１実施形態では、１シフト演算部（β１）５７に繰り返しビットデータを入力して所定回数のシフト動作と等価な演算結果を得る手段を説明したが、本発明はこれに限定されるものではなく、相異なるあるいは互いに同じシフト動作に等価な演算結果を得ることができる複数のシフト演算器を備える構成とすることもできる。
【００９９】
また、上記とは逆に、第２実施形態において、シフト演算部５８（１）〜５８（７）に代えて、１シフト演算部（β１）を備えて、所定回数繰り返して演算する構成とすることもできる。
【０１００】
また、第３、第４実施形態においても同様に、シフト演算器６５（Ｎ）の構成は、第１、第２実施形態の場合と同様に変形された構成とすることもできる。
【０１０１】
ここで、本発明の技術思想により、背景技術における課題を解決するための手段を以下に列記する。
（付記１）  所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第１のシンドロームの補正を行なう誤り検出装置であって、
前記データユニットごとに、前記ビット列の指定ビット位置に誤りがある場合に演算される第２のシンドロームを予め格納しておく格納部と、
前記誤り訂正情報により誤りを含むとして特定される前記データユニットにおける前記第２のシンドロームを初期符号として前記格納部より読み出し、該データユニットにおける誤りビット位置から前記指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する演算部と、
前記誤りビット位置ごとに前記演算部から出力される演算結果を加算（ＥＸＯＲ）して第３のシンドロームとして出力する第１加算部と、
前記第１のシンドロームに前記第３のシンドロームを加算（ＥＸＯＲ）する第２加算部とを備えることを特徴とする誤り検出装置。
（付記２）  前記演算部は、シンドローム演算を行う前記線形帰還シフトレジスタを備えることを特徴とする付記１に記載の誤り検出装置。
（付記３）  前記演算部は、
前記データユニットにおける前記ビット列のＭＳＢからＬＳＢに至るビット差分以下のシフト動作であって、相異なるシフト数の前記シフト動作に等価な演算結果を出力する複数の第１シフト演算部と、
前記誤りビット位置から前記指定ビット位置に至るビット差分に応じて、前記複数の第１シフト演算部を少なくとも一つ選択する第１選択部とを備えることを特徴とする付記１に記載の誤り検出装置。
（付記４）  前記第１選択部により選択される前記複数の第１シフト演算部は、直列接続されることを特徴とする付記３に記載の誤り検出装置。
（付記５）  前記複数の第１シフト演算部は、前記データユニットにおける前記ビット列のＭＳＢから前記指定ビット位置の１ビット上位のビット位置に至る各ビット位置に、前記各ビット位置から前記指定ビット位置に至るビット差分の前記シフト動作に等価な演算結果を出力する第１個別シフト演算部を備え、
前記第１選択部は、前記誤りビット位置に対応する前記第１個別シフト演算部に、前記第２のシンドロームを入力し、
前記第１加算部は、前記第１個別シフト演算部から出力される演算結果を加算（ＥＸＯＲ）することを特徴とする付記３に記載の誤り検出装置。
（付記６）  前記演算部は、
前記第２のシンドロームに初期化されるレジスタ部と、
前記レジスタ部に保持されている符号に対して、１ビットの前記シフト動作に等価な演算結果を出力して前記レジスタ部に戻す１シフト演算部とを備え、
前記ビット差分の回数、前記１シフト演算部での処理を繰り返すことを特徴とする付記１に記載の誤り検出装置。
（付記７）  前記誤り訂正情報により特定される前記データユニットの前記ビット列を、ＭＳＢからビット単位で順次選択するビット選択部を備え、
前記第１加算部は、前記ビット選択部により選択されるビット位置が誤りビット位置である場合に、前記誤り訂正情報により特定される前記データユニットの前記第２のシンドロームと、前記１シフト演算部から出力される演算結果とを加算（ＥＸＯＲ）し、
前記ビット選択部による選択ごとに、前記レジスタ部の内容が、前記１シフト演算部から出力される演算結果または前記第１加算部による加算（ＥＸＯＲ）結果で更新されることを特徴とする付記６に記載の誤り検出装置。
（付記８）  所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第１のシンドロームの補正を行なう誤り検出装置であって、
前記受信データを構成する総ビット数から前記データユニットを構成する前記所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する複数の第２シフト演算部と、
前記受信データのうち前記誤り訂正情報により誤りを含むとして特定される前記データユニットより下位にあるビット数の前記シフト動作に等価な演算結果を取得するために、前記複数の第２シフト演算部を少なくとも一つ選択する第２選択部と、
前記第２選択部により選択される前記複数の第２シフト演算部に対する初期符号として、前記線形帰還シフトレジスタを構成するビット列の下位に、前記誤り訂正情報により特定される前記データユニットの誤りビット位置を示すビット列を割り当てる初期設定部とを備えることを特徴とする誤り検出装置。
（付記９）  前記複数の第２シフト演算部の各々は、前記所定ビット数に２のべき乗数を乗じた数のシフト数の前記シフト動作に等価な演算結果を出力する第２個別シフト演算部を備えることを特徴とする付記８に記載の誤り検出装置。
（付記１０）  前記第２選択部により選択される前記複数の第２シフト演算部は、直列接続されることを特徴とする付記８に記載の誤り検出装置。
（付記１１）  前記第２選択部は、前記複数の第２シフト演算部を順次選択することを特徴とする付記８に記載の誤り検出装置。
（付記１２）  最初に前記初期設定部を選択し、以後、前記第２選択部により選択された前記複数の第２シフト演算部のうちの何れか１つの演算部を選択する第３選択部と、
前記第３選択部から出力される符号を格納し、前記第２選択部により次に選択される前記複数の第２シフト演算部のうちの何れか他の１つの演算部に出力するレジスタ部とを備えることを特徴とする付記１１に記載の誤り検出装置。
（付記１３）  前記指定ビット位置は、前記データユニットにおける前記ビット列のＬＳＢであることを特徴とする付記１または付記８に記載の誤り検出装置。
（付記１４）  所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第１のシンドロームの補正を行なう誤り検出方法であって、
前記データユニットごとに、前記ビット列の指定ビット位置に誤りがある場合に演算される第２のシンドロームを予め格納しておくステップと、
前記誤り訂正情報により誤りを含むとして特定される前記データユニットにおける前記第２のシンドロームを読み出すステップと、
読み出された前記第２のシンドロームを初期符号として、前記データユニットにおける誤りビット位置から前記指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力するステップと、
前記誤りビット位置ごとに出力される前記演算結果を加算（ＥＸＯＲ）して第３のシンドロームとして出力するステップと、
前記第１のシンドロームに前記第３のシンドロームを加算（ＥＸＯＲ）するステップとを有することを特徴とする誤り検出方法。
（付記１５）  前記演算結果の出力のステップは、
前記データユニットにおける前記ビット列のＭＳＢからＬＳＢに至るビット差分以下のシフト動作であって、相異なるシフト数の前記シフト動作に等価な演算結果を出力する第１の複数のステップと、
前記誤りビット位置から前記指定ビット位置に至るビット差分に応じて、前記第１の複数のステップを少なくとも一つ選択するステップとを有することを特徴とする付記１４に記載の誤り検出方法。
（付記１６）  前記演算結果の出力のステップは、
前記第２のシンドロームを初期符号として初期化するステップと、
１ビットの前記シフト動作に等価な演算結果を出力するステップとを有し、
前記ビット差分の回数、前記１ビットのシフト数に等価な演算結果を出力するステップが繰り返されることを特徴とする付記１４に記載の誤り検出方法。
（付記１７）  所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第１のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第１のシンドロームの補正を行なう誤り検出方法であって、
前記受信データを構成する総ビット数から前記データユニットを構成する前記所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する第２の複数のステップと、
前記受信データのうち前記誤り訂正情報により誤りを含むとして特定される前記データユニットより下位にあるビット数の前記シフト動作に等価な演算結果を取得するために、前記第２の複数のステップを少なくとも一つ選択するステップと、
前記第２の複数のステップに対する初期符号として、前記線形帰還シフトレジスタを構成するビット列の下位に、前記誤り訂正情報により特定される前記データユニットの誤りビット位置を示すビット列を割り当てるステップとを有することを特徴とする誤り検出方法。
（付記１８）  前記第２の複数のステップの各々は、前記所定ビット数に２のべき乗数を乗じた数のシフト数の前記シフト動作に等価な演算結果を出力することを特徴とする付記１７に記載の誤り検出方法。
（付記１９）  前記選択のステップは、前記第２の複数のステップを順次選択することを特徴とする付記１７に記載の誤り検出方法。
【図面の簡単な説明】
【０１０２】
【図１】ＤＶＤ１セクタのデータフォーマットを示す図である。
【図２】線形帰還シフトレジスタ（ＬＦＳＲ）の回路図である。
【図３】実施形態の誤り検出回路を備えるデータ受信システムの回路ブロック図である。
【図４】第１実施形態の誤り検出回路を示す回路図である。
【図５】１シフト演算器（β１）の構成を示す図である。
【図６】誤り情報の例と第１実施形態での補正シンドロームの導出の原理を示す図である。
【図７】第１実施形態での処理フローを示すフロー図である。
【図８】第２実施形態の誤り検出回路を示す回路図である。
【図９】シフト演算器（βＮ）の構成を示す図である。
【図１０】第３実施形態の誤り検出回路を示す回路図である。
【図１１】誤り情報の例と第３実施形態での補正シンドロームの導出の原理を示す図である。
【図１２】第３実施形態での処理フローを示すフロー図である。
【図１３】第４実施形態の誤り検出回路を示す回路図である。
【符号の説明】
【０１０３】
１      復調器
２      メモリ
３      誤り訂正回路
４      ＬＦＳＲ
５      補正シンドローム演算器
６      加算器（ＥＸＯＲ）
５１、６１、６３      レジスタ
５２      シンドローム格納部
５３      論理積ゲート
５４      加算器（ＥＸＯＲ）
５６、６２、６４、６６、６７（０）〜６７（１１）      セレクタ
５７      １シフト演算器（β１）
５８（１）〜（７）      シフト演算器（β１）〜（β７）
５９      加算器（ＥＸＯＲ）５９
６５（Ｎ）（Ｎ＝０〜１１）      シフト演算器
６７      選択回路
ＤＯ      受信データ
ＤＣ      訂正された受信データ
ＥｂＰ      誤りビット位置情報
ＥＢＰ      誤りバイト位置情報
Ｓ      シンドローム
ＳＯ      初期シンドローム
ＳＣ      補正シンドローム
ＳＦＴ１、ＳＦＴ２      シフト信号
【図１】
2008112522.tif 000003
【図２】
2008112522.tif 000004
【図３】
2008112522.tif 000005
【図４】
2008112522.tif 000006
【図５】
2008112522.tif 000007
【図６】
2008112522.tif 000008
【図７】
2008112522.tif 000009
【図８】
2008112522.tif 000010
【図９】
2008112522.tif 000011
【図１０】
2008112522.tif 000012
【図１１】
2008112522.tif 000013
【図１２】
2008112522.tif 000014
【図１３】
2008112522.tif 000015