(57)【特許請求の範囲】
【請求項１】
送信データを予め定められたビット数毎に区切って前記区切りにおけるビット位置毎に計算されたパリティデータを前記送信データに付与し、第１の符号の出現頻度と第２の符号の出現頻度との比率が予め定められた比率となるように前記送信データに対してビット数変換符号化を行って得られたデータを受信する受信手段と、
前記受信手段によって受信された前記データに対するビット数変換復号化で発生する復号エラーと、前記データに対する復号化により得られた受信データから前記パリティデータに応じて検出されたパリティエラーとに基づいて、前記受信データの１ビット誤りを訂正する訂正手段と、
前記復号エラーが２箇所以上のシンボルで発生した場合、又は前記復号エラーが発生せずかつパリティエラーが検出された場合に、前記受信データの２ビット以上の誤りを検出するエラー検出手と、
を備えた復号化装置。
【請求項２】
送信データを予め定められたビット数毎に区切って前記区切りにおけるビット位置毎に計算されたパリティデータを前記送信データに付与し、第１の符号の出現頻度と第２の符号の出現頻度との比率が予め定められた比率となるように前記送信データに対してビット数変換符号化を行って得られたデータを受信する受信手段と、
前記受信手段によって受信された前記データに対するビット数変換復号化で発生する復号エラーと、前記データに対する復号化により得られた受信データから前記パリティデータに応じて検出されたパリティエラーとに基づいて、前記受信データの１ビット誤りを訂正する訂正手段と、
を備えた復号化装置であって、
前記受信手段は、予め定められた数だけ特定のシンボルが連続した後に予め定められた符号が挿入された前記データを受信し、
前記訂正手段は、前記データにおける前記予め定められた符号が挿入された位置と前記パリティエラーと前記復号エラーとに基づいて、１ビット誤りを訂正する、
復号化装置。
【請求項３】
送信データを予め定められたビット数毎に区切って前記区切りにおけるビット位置毎に計算されたパリティデータを前記送信データに付与し、かつ第１の符号の出現頻度と第２の符号の出現頻度との比率が予め定められた比率となるように保たれるように前記送信データに対してビット数変換符号化を行ったデータを得る変換手段、及び
前記変換手段によって得られた前記データを送信する送信手段を備えた符号化装置と、
請求項１に記載の復号化装置と、
を備えた情報伝送システム。
【請求項４】
送信データを予め定められたビット数毎に区切って前記区切りにおけるビット位置毎に計算されたパリティデータを前記送信データに付与し、第１の符号の出現頻度と第２の符号の出現頻度との比率が予め定められた比率となるように保たれるように前記送信データに対して、予め定められた数だけ特定のシンボルが連続した後に予め定められた符号を挿入し、かつ、ビット数変換符号化を行ったデータを得る変換手段、及び
前記変換手段によって得られた前記データを送信する送信手段を備えた符号化装置と、
請求項２に記載の復号化装置と、
を備えた情報伝送システム。
【請求項５】
コンピュータを、請求項１又は請求項２に記載の復号化装置を構成する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号化装置、プログラム、及び情報伝送システムに関する。
【背景技術】
【０００２】
特許文献１には、要求に応じたパケットを生成するパケット生成部と、生成された前記パケットを分割またはダミーデータの付加により所定の長さのフレームを形成し、これに誤り訂正符号を付加して誤り訂正符号付きフレームを生成するフレームエンコード部と、生成された前記誤り訂正符号付きフレームを伝送路を介して送信する送信部と、前記伝送路を介して前記誤り訂正符号付きフレームを受信する受信部と、受信された前記誤り訂正符号付きフレームについて誤り検出および訂正を行うフレームデコード部と、誤り検出および訂正された前記誤り訂正符号付きフレームから前記誤り訂正符号を除去して前記パケットを抽出するパケット抽出部とを備えたことを特徴とするデータ伝送装置が開示されている。
【０００３】
特許文献２には、Ｎ行（Ｎは整数）のそれぞれがＸバイト（Ｘは整数）を含むＮ行Ｘ列により構成されるデータブロックであって、各バイトが所定のビットセットを有する複数のバイトを有する前記データブロックにおける誤り訂正方法であって、前記データブロックの前記Ｎ行における前記バイトの各バイトに対し、パリティビットチェックを行うステップと、前記データブロックの前記Ｘ列における前記バイトの各バイトに対し、パリティビットチェックを行うステップであって、前記Ｎ行と前記Ｘ列とのそれぞれに対するパリティビットチェックは、前記データブロックにおけるバイトの各行と各列とに対してビットレベルエラーを検出するためのものである、前記ステップと、（ａ）前記データブロックにおける各バイトに対するバイトレベルエラー検出プロセスであって、前記データブロックの各バイトの個々のビットのバイトベース符号化に基づく前記バイトレベルエラー検出プロセスを用いて、前記データブロックに対して少なくとも１つの不良バイトを特定するステップと、（ｂ）前記データブロックのバイトの前記Ｎ行の各行に対するパリティビットチェック、前記データブロックのバイトの前記Ｘ列の各列に対するパリティビットチェック、及び前記データブロックに対し特定された前記少なくとも１つの不良バイトから、前記データブロックにおけるビットに対して少なくとも１つのエラーを特定するステップと、（ｃ）前記データブロックにおけるビットに対して特定された少なくとも１つのエラーと、前記ビットに対して特定された少なくとも１つのエラーに対応する前記特定された少なくとも１つの不良バイトとを訂正するステップと、繰り返し数が所定回数に到達するまで、又は前記データブロックにおいて特定された不良ブロックの総数が各繰り返しについて不変となるまで、ステップ（ａ）からステップ（ｃ）までを繰り返すステップと、から構成されることを特徴とする方法が開示されている。
【０００４】
特許文献３には、少なくとも１つのデータワードの形式で符号化されたデータを通信システムを介して伝送する際にエラー処理する方法であって、その場合に予め設定可能な符号化規則に従って前記少なくとも１つのデータワードに符号データワードが選択され、その場合に２ つの異なる値、“１”および“０”を伴いうるビットとしてデータが表される、前記方法において、少なくとも１つのランニングデジタルサムが、少なくとも前記符号データワードに関する“１”の合計と“０”の合計との加算された差となるように形成されて、前記ランニングデジタルサムが伝送され、前記ランニングデジタルサムが前記データワードの前記符号化規則に影響を及ぼし、その場合に前記ランニングデジタルサムが全ての後続の前記符号データワードを考慮して定められ、それによって各個々の前記符号データワードの前記符号化規則が検査され、その場合に偏差があればエラーが認識されることを特徴とする、符号化データを伝送する際にエラー処理する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８-２９４７５７号公報
【特許文献２】特許第４９２０１８９号公報
【特許文献３】特表２００７-５３３１８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、データ内において、ビット誤りが発生した箇所よりも後に復号エラーが検出された場合であっても、１ビットの誤りが訂正される復号化装置、プログラム、及び情報伝送システムを提供することにある。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、送信データを予め定められたビット数毎に区切って前記区切りにおけるビット位置毎に計算されたパリティデータを前記送信データに付与し、第１の符号の出現頻度と第２の符号の出現頻度との比率が予め定められた比率となるように前記送信データに対してビット数変換符号化を行って得られたデータを受信する受信手段と、前記受信手段によって受信された前記データに対するビット数変換復号化で発生する復号エラーと、前記データに対する復号化により得られた受信データから前記パリティデータに応じて検出されたパリティエラーとに基づいて、前記受信データの１ビット誤りを訂正する訂正手段と、を備えた復号化装置である。
【０００８】
請求項２に係る発明は、前記復号エラーが２箇所以上のシンボルで発生した場合、又は前記復号エラーが発生せずかつパリティエラーが検出された場合に、前記受信データの２ビット以上の誤りを検出するエラー検出手段を更に備える請求項１に記載の復号化装置である。
【０００９】
請求項３に係る発明は、前記受信手段は、予め定められた数だけ特定のシンボルが連続した後に予め定められた符号が挿入された前記データを受信し、前記訂正手段は、前記データにおける前記予め定められた符号が挿入された位置と前記パリティエラーと前記復号エラーとに基づいて、１ビット誤りを訂正する請求項１又は請求項２に記載の復号化装置である。
【００１０】
請求項４に係る発明は、送信データを予め定められたビット数毎に区切って前記区切りにおけるビット位置毎に計算されたパリティデータを前記送信データに付与し、かつ第１の符号の出現頻度と第２の符号の出現頻度との比率が予め定められた比率となるように保たれるように前記送信データに対してビット数変換符号化を行ったデータを得る変換手段、及び前記変換手段によって得られた前記データを送信する送信手段を備えた符号化装置と、請求項１〜請求項２の何れか１項に記載の復号化装置と、を備えた情報伝送システムである。
【００１１】
請求項５に係る発明は、送信データを予め定められたビット数毎に区切って前記区切りにおけるビット位置毎に計算されたパリティデータを前記送信データに付与し、第１の符号の出現頻度と第２の符号の出現頻度との比率が予め定められた比率となるように保たれるように前記送信データに対して、予め定められた数だけ特定のシンボルが連続した後に予め定められた符号を挿入し、かつ、ビット数変換符号化を行ったデータを得る変換手段、及び前記変換手段によって得られた前記データを送信する送信手段を備えた符号化装置と、請求項３に記載の復号化装置と、を備えた情報伝送システムである。
【００１２】
請求項６に係る発明は、コンピュータを、請求項１〜請求項３の何れか１項に記載の復号化装置を構成する各手段として機能させるためのプログラムである。
【発明の効果】
【００１３】
請求項１に係る発明によれば、データ内において、ビット誤りが発生した箇所よりも後に復号エラーが検出された場合であっても、１ビットの誤りが訂正される。
【００１４】
請求項２に係る発明によれば、２ビット以上の誤りが検出される。
【００１５】
請求項３に係る発明によれば、復号エラーが発生しないシンボルが連続した場合であっても、１ビットの誤りが訂正される。
【００１６】
請求項４に係る発明によれば、データ内において、ビット誤りが発生した箇所よりも後に復号エラーが検出された場合であっても、１ビットの誤りが訂正される。
【００１７】
請求項５に係る発明によれば、復号エラーが発生しないシンボルが連続した場合であっても、１ビットの誤りが訂正される。
【００１８】
請求項６に係る発明によれば、データ内において、ビット誤りが発生した箇所よりも後に復号エラーが検出された場合であっても、１ビットの誤りが訂正される。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施の形態に係る情報伝送システムの構成の一例を示す概略図である。
【図２】第１の実施の形態に係る符号化装置の構成の一例を示すブロック図である。
【図３】パリティデータの計算を説明するための説明図である。
【図４】パケットを説明するための説明図である。
【図５】１ビット誤りが発生した場合のシンボルの変化を説明するための図である。
【図６】第１の実施の形態に係る復号化装置の構成の一例を示すブロック図である。
【図７】１ビット誤りが発生した場合のシンボルの変化と、１ビット誤りが発生した場合のエラーの検出例を示す図である。
【図８】ビット誤りが発生した場合の一例を示す図である。
【図９】ビット誤りが発生した場合の一例を示す図である。
【図１０】ビット誤りが発生した場合の一例を示す図である。
【図１１】ビット誤りの訂正を説明するための図である。
【図１２】ビット誤り訂正の具体例を説明するための図である。
【図１３】第１の実施の形態に係る符号化装置によって実行される符号化処理ルーチンの内容を表す図である。
【図１４】第１の実施の形態に係る復号化装置によって実行される復号化処理ルーチンの内容を表す図である。
【図１５】「Ｃ」のシンボルが連続した場合の１ビット誤りの訂正を説明するための図である。
【図１６】第２の実施の形態に係る符号化装置の構成の一例を示すブロック図である。
【図１７】Ｋ符号の挿入と抜去とを説明するための図である。
【図１８】第２の実施の形態に係る復号化装置の構成の一例を示すブロック図である。
【図１９】「Ａ−」のシンボルでエラーが発生した場合の例を示す図である。
【図２０】Ｋ符号でエラーが発生した場合の例を示す図である。
【図２１】ビット誤りが発生し、「Ｃ」のシンボルが３つ連続した場合の例を示す図である。
【図２２】「Ｃ」のシンボルが４つ連続した場合の例を示す図である。
【図２３】第２の実施の形態に係る符号化装置によって実行される符号化処理ルーチンの内容を表す図である。
【図２４】第２の実施の形態に係る復号化装置によって実行される復号化処理ルーチンの内容を表す図である。
【図２５】第２の実施の形態に係る復号化装置によって実行される復号化処理ルーチンの内容を表す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施の形態について説明する。なお、以下では、２つの装置間でシリアル伝送にて情報の送受信を行う情報伝送システムに本発明を適用した場合について説明する。
【００２１】
＜情報伝送システム＞
まず、本発明の実施の形態に係る情報伝送システムの概略構成について説明する。図１は本発明の実施の形態に係る情報伝送システムの構成の一例を示す概略図である。図１に示すように、情報伝送システム１０は、情報を送信する符号化装置１２と情報を受信する復号化装置１４とを備えている。
【００２２】
符号化装置１２と復号化装置１４とは、伝送路１６で接続されている。伝送路１６は、符号化装置１２から復号化装置１４へ情報をシリアル伝送するための伝送路である。
【００２３】
（符号化装置）
次に、符号化装置１２の構成について説明する。図２は符号化装置の構成の一例を示すブロック図である。図２に示すように、符号化装置１２は、データ受付部１２０、変換部１２２、及び送信部１３２を備えている。符号化装置１２は、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）、ゲートアレイなどの回路（ＩＣ：Integrated Circuit）により実装される。また、符号化装置１２が備える上記各機能部は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、及びＲＯＭ（Read  Only  Memory）等を備えたコンピュータにより実現し、ＣＰＵが、ＲＯＭに記憶されているプログラムを実行することにより、各機能部における各機能が実行されるように構成してもよい。
【００２４】
データ受付部１２０は、パラレル形式の送信データを受け付ける。本実施の形態では、８ビットのパラレル形式の送信データを用いる場合を例に説明する。
【００２５】
変換部１２２は、データ受付部１２０によって受け付けたパラレル形式の送信データを取得する。そして、変換部１２２は、取得した送信データにパリティデータを付与し、ＤＣ（Direct Current）バランスが保たれるように当該送信データを符号化する。変換部１２２は、ＢＩＰ演算部１２４、パケット生成部１２６、８Ｂ１０Ｂ符号化部１２８、及びパラレルシリアル（Ｐ／Ｓ）変換部１３０を備えている。
【００２６】
ＢＩＰ演算部１２４は、データ受付部１２０によって受け付けられた送信データを取得し、ＢＩＰ（Bit Interleaved Parity）方式に従って、取得した送信データを予め定められたビット数毎に区切って、当該区切りにおけるビット位置毎にパリティデータを計算する。
【００２７】
図３（Ａ）及び（Ｂ）に、パリティデータの計算を説明するための説明図を示す。図３（Ａ）は送信データの一例を表す。また、図３（Ｂ）は、３２ビット毎に区切られた送信データと、当該区切りにおけるビット位置毎に計算されたパリティデータの一例を示す。なお、図３（Ａ）及び（Ｂ）に示す、Ａ，Ｂ，Ｃ，及びＤは８ビットのシンボルのパターンを表す。シンボルＡ，Ｂ，Ｃ，及びＤについては、後に詳述する。
【００２８】
図３（Ａ）に示されるような送信データが取得された場合、ＢＩＰ演算部１２４は、図３（Ｂ）に示されるように、例えば送信データを４×Ｎシンボルに分けて２次元に配置し、１列・２列・３列・４列のように、１ビット目から８ビット目までの１列目のパリティをＰ１、９ビット目から１６ビット目までの２列目のパリティをＰ２、１７ビット目から２４ビット目までの３列目のパリティをＰ３、２５ビット目から３２ビット目までの４列目のパリティをＰ４として計算する。そして、ＢＩＰ演算部１２４は、計算されたパリティデータを出力する。
【００２９】
パケット生成部１２６は、データ受付部１２０によって受け付けられた送信データと、ＢＩＰ演算部１２４によって出力されたパリティデータとから、パケットを生成する。
具体的には、パケット生成部１２６は、図４に示すように、データ受付部１２０によって受け付けられた送信データに、ＢＩＰ演算部１２４によって出力されたパリティデータパリティデータと、ヘッダー及びフッターとを付与してパケットを生成する。
【００３０】
８Ｂ１０Ｂ符号化部１２８は、パケット生成部１２６によって生成されたパケットを、予め定められた符号化方式に従って符号化し、ビット数を変換する。
【００３１】
具体的には、８Ｂ１０Ｂ符号化部１２８は、第１の符号の出現頻度と第２の符号の出現頻度との比率が予め定められた比率となるように、パケットに対してビット数変換符号化を行う。
【００３２】
本実施の形態では、第１の符号として「０」を用い、予め定められた第２の符号として「１」を用い、８Ｂ１０Ｂ符号化方式によってビット数を変換する場合を例に説明する。
【００３３】
具体的は、８Ｂ１０Ｂ符号化部１２８は、８Ｂ１０Ｂ符号化方式に従って、８ビットの情報を１０ビットの情報へ変換する。８Ｂ１０Ｂ符号化方式では、予め定められた変換テーブルを用いて、８ビットのシンボルを１０ビットのシンボルへ変換する。また、８Ｂ１０Ｂ符号化方式では、変換後のデータ上で１または０の均等なバランスとなるように変換するシンボルが選択される。
【００３４】
８Ｂ１０Ｂ符号化方式では、ＤＣ（Direct Current）バランスが保たれるように、８ビットのシンボルが１０ビットのシンボルへ変換される。ＤＣバランスとは、１と０の数の比率をいう。また、ＤＣバランスを保つとは、１の出現頻度と０の出現頻度との比率が、予め定められた比率となるようにすることをいい、例えば均一化することをいう。例えば、データを伝送方向に沿ってみたときに、１と０とが決められた数以上連続しないようにビットを配列することにより、ＤＣバランスの保たれたデータが生成される。
【００３５】
図５に、８Ｂ１０Ｂ符号化方式を説明するための図を示す。８Ｂ１０Ｂ符号化では、ＤＣバランスを保証するために、８ビットのシンボルを、マーク率が０．４〜０．６となるような１０ビットに割付け、かつ、反転符号を用いてマーク率が０．６の符号が連続しないように制御される。さらに、８Ｂ１０Ｂ符号化では、ランレングスが５以下になるような符号が選択される。ここでランレングスは、同一符号が連続するビット数のことである。
【００３６】
例えば、８Ｂ１０Ｂ符号化によって符号化された１０ビットのシンボルは、図５に示されるように分類される。
【００３７】
８Ｂ１０Ｂ符号化においては、図５に示されるように、マーク率が０．６の「Ｂ＋」、マーク率が０．４の「Ｂ−」、又はマーク率が０．５の、「Ａ＋」、「Ｃ」、若しくは「Ａ−」を含んで構成される。
【００３８】
ここで、「Ｃ」は、マーク率が０．５であって、「＋」又は「−」が同一の符号として割り付けられている。「Ｂ＋」は「Ｂ−」のビットを一部または全部反転させた符号であり、「Ａ＋」は「Ａ−」のビットを一部または全部反転させた符号である。「Ｂ＋」及び「Ｂ−」は連続して送信されないように制御される。
【００３９】
具体的に８Ｂ１０Ｂ符号化では、ランニングディスパリティ（ＲＤ：Running disparity）に関し「＋１」と「−１」とで制御され、ランニングディスパリティＲＤが「＋１」の場合は「Ａ＋」、「Ｂ＋」、又は「Ｃ」のシンボルが送信され、ランニングディスパリティＲＤが「−１」の場合には「Ａ−」、「Ｂ−」、又は「Ｃ」のシンボルが送信される。
【００４０】
「Ａ＋」、「Ｃ」、又は「Ａ−」はマーク率が０．５であるので、「Ａ＋」、「Ｃ」、又は「Ａ−」を送信した場合には、次のデータでは、ＲＤを変化させずそのままとする。一方、「Ｂ＋」又は「Ｂ−」はマーク率が０．４又は０．６であるので、「Ｂ＋」又は「Ｂ−」を送信した場合には、次のデータでは、ＲＤ’＝−ＲＤとする。ここで、ＲＤは現在のランニングディスパリティを表し、ＲＤ’は次のデータのランニングディスパリティを表す。
【００４１】
このように、８Ｂ１０Ｂ符号化方式では、直前のＲＤ値に応じて、出力ビットをマイナスに対応するものとするかプラスに対応するものとするかを選択する符号化規則を用いることで、出力ビット列の「０」と「１」の数が等しく、又はほぼ等しくなるように制御する。
【００４２】
パラレルシリアル（Ｐ／Ｓ）変換部１３０は、８Ｂ１０Ｂ符号化部１２８によって変換された１０ビットのパラレル形式のデータを、Ｐ／Ｓ（Parallel to Serial）変換により、シリアルのビット列に変換する。本実施の形態では、８×ｎビットのデータに、パリティデータ、ヘッダー及びフッターを付加したパケットを順次８Ｂ１０Ｂ変換した後、パラレル-シリアル変換して、後述する送信部１３２によってデータとして送信する。
【００４３】
送信部１３２は、パラレルシリアル（Ｐ／Ｓ）変換部１３０によって変換されたシリアル形式のデータを伝送路１６へ出力する。
【００４４】
（復号化装置）
次に、復号化装置１４の構成について説明する。図６は復号化装置の構成の一例を示すブロック図である。図６に示すように、復号化装置１４は、受信部１４０、シリアルパラレル（Ｓ／Ｐ）変換部１４２、８Ｂ１０Ｂ復号化部１４４、復号エラー検出部１４６、エラー訂正部１４８、エラー出力部１５８、及びデータ出力部１６０を備えている。復号化装置１４は、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specific Integrated Circuit）、ゲートアレイなどの回路（ＩＣ：Integrated Circuit）により実装される。また、復号化装置１４が備える上記各機能部は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、及びＲＯＭ（Read  Only  Memory）等を備えたコンピュータにより実現し、ＣＰＵが、ＲＯＭに記憶されているプログラムを実行することにより、各機能部における各機能が実行されるように構成してもよい。
【００４５】
受信部１４０は、符号化装置１２によって伝送路１６を介して送信されたシリアル形式のデータを受信する。受信部１４０が受信するシリアル形式のデータは、ＤＣバランスが保たれるように符号化されたデータであり、パリティデータが付与されているデータである。
【００４６】
シリアルパラレル（Ｓ／Ｐ）変換部１４２は、受信部１４０によって受信したシリアル形式のデータをパラレル形式のデータに変換する。
【００４７】
８Ｂ１０Ｂ復号化部１４４は、シリアルパラレル（Ｓ／Ｐ）変換部１４２によって得られたパラレル形式のデータを、８Ｂ１０Ｂの符号化方式に従って予め定められた変換テーブルを用いて復号化し、受信データ及びパリティデータとして出力する。また、８Ｂ１０Ｂ復号化部１４４は、復号された受信データとパリティデータとを、後述するバッファ１５０に格納する。
【００４８】
また、８Ｂ１０Ｂ復号化部１４４は、シリアルパラレル（Ｓ／Ｐ）変換部１４２から出力されたデータに対する復号化で復号エラーが発生した場合に、復号エラーに関する情報を、後述するバッファ１５０へ格納する。復号エラーに関する情報は、復号エラーの位置と復号エラーの種類とを含む。
【００４９】
復号エラーには、８Ｂ１０Ｂ復号化部１４４によって復号される復号対象のデータが予め定められた変換テーブルに存在しないエラーを表すＮＩＴエラー（NIT：Not In Table）と、８Ｂ１０Ｂ復号化部１４４によって復号される復号対象のデータのランニングディスパリティが規則に従っていないことを表すランニングディスパリティエラー（以下、ＲＤエラーと称する。）とが含まれる。
【００５０】
例えば、現在のＲＤが＋１の場合、「Ａ−」又は「Ｂ−」のシンボルが受信されると、ＲＤエラーとして検出される。
【００５１】
図７（Ａ）に、１ビット誤りが発生した場合のシンボルの変化を示す。１ビット誤りが発生した場合、図７（Ａ）に示されるように、「Ａ＋」、「Ｃ」、又は「Ａ−」のマーク率０．５のシンボルは、マーク率０．４又はマーク率０．６のシンボルになる。すなわち、「Ａ＋」、「Ｃ」、又は「Ａ−」に１ビット誤りが発生した場合、「Ｂ＋」、「Ｂ−」、及び「ＮＩＴ」の何れかとなる。
【００５２】
また、「Ｂ＋」又は「Ｂ−」のマーク率０．６又はマーク率０．４のシンボルが送信され、１ビット誤りが発生した場合、図７（Ａ）に示されるように、マーク率が「０．３」、「０．５」、及び「０．７」の何れかのシンボルになる。すなわち、「Ｂ＋」又は「Ｂ−」に１ビット誤りが発生した場合、「Ａ＋」、「Ｃ」、「Ａ−」、及び「ＮＩＴ」の何れかとなる。
【００５３】
図７（Ｂ）に、上述した１ビット誤りが発生した場合のビットの変化を示す表を示す。
【００５４】
図７（Ｂ）に示す表の「Ｔａｂｌｅ」の列はＮＩＴエラーの有無を表し、０が「エラー無し」を示し、１が「ＮＩＴエラー有り」を示す。また、「ＲＤ」の列はＲＤエラーの有無を表し、０が「エラー無し」を示し、１が「ＲＤエラー有り」を示す。「Ｔａｂｌｅ」の列と「ＲＤ」の列との論理和を取るとエラーの有無がわかる。図７（Ｂ）に示されるように、８つの組み合わせで「エラー無し」となるが、次のデータの受信でＲＤが異なるので、ＲＤエラーとなる。ただし、次のデータの受信で「Ｃ」のシンボルを受信すると、ＲＤエラーとならない。
【００５５】
次に、各送信パターンにおいて１ビット誤りが発生する場合を詳細に説明する。
【００５６】
図８に、「Ａ＋」のシンボルにおいて１ビット誤りが発生した場合を説明するための図を示す。
【００５７】
図８に示されるように、「Ａ＋」のシンボルが送信され、１ビット誤りが発生した場合、受信データの誤りのパターンは、受信パターン１の「Ｂ−」のシンボル、受信パターン２の「Ｂ＋」のシンボル、及び「ＮＩＴ」の何れかとなる。
【００５８】
受信パターン２の「Ｂ＋」のシンボルを受信した場合はＲＤエラーとならないが、次のデータの受信でＲＤエラーとなる。送信側は「Ａ＋」のシンボルでＲＤを変化させないが、受信側では「Ｂ＋」のシンボルでＲＤを変化させる。そこで次のデータの送受信で、送信側のＲＤと受信側で期待するＲＤにずれが生じ伝送上でエラーがなければ、ＲＤエラーとなる。
【００５９】
すなわち、１ビット誤りが１回発生した場合は、エラーが発生したシンボルまたは次に受信したシンボルでＲＤエラーが発生する。従って、パケット毎に奇数シンボルと偶数シンボルのパリティビットを付加して送信すれば、１ビット誤りが訂正される。
【００６０】
図９に、「Ｂ＋」のシンボルにおいて１ビット誤りが発生した場合を説明するための図を示す。
【００６１】
図９に示されるように、「Ｂ＋」のシンボルが送信され、１ビット誤りが発生した場合、誤りのパターンは、「Ａ−」のシンボルとなる受信パターン１と、「Ａ＋」のシンボルとなる受信パターン２、「Ｃ」のシンボルとなる受信パターン３、及び「ＮＩＴ」が検出される受信パターンの何れかとなる。
【００６２】
図９に示されるように、受信パターン２の「Ａ＋」のシンボルを受信した場合又は受信パターン３の「Ｃ」のシンボルを受信した場合はＲＤエラーとならないが、以下に説明するように、次のデータの受信でＲＤエラーとなる。
送信側は「Ｂ＋」のシンボルでＲＤを変化させるが、受信側は「Ａ＋」のシンボル又は「Ｃ」のシンボルでＲＤを変化させない。そこで次のデータの送受信で、送信側のＲＤと受信側で期待するＲＤにずれが生じ、伝送上でエラーがなければ、次のデータの受信でＲＤエラーとなる。従って、パケット毎に奇数シンボルと偶数シンボルのパリティビットを付加して送信すれば、１ビット誤りが訂正可能となる。
【００６３】
図１０に、従来の技術では誤り訂正がされない場合を説明するための図を示す。
【００６４】
図１０に示されるように、送信パターンの「Ｂ−」のシンボルを送信すると、受信データの誤りのパターンは受信パターン１の「Ａ＋」のシンボル、受信パターン２の「Ａ−」のシンボル、及び「ＮＩＴ」の何れかとなる。
【００６５】
図１０に示されるように、受信パターン２の「Ａ−」のシンボルが受信された場合はＲＤエラーとならず、次に「Ｃ」のシンボルを受信した場合、ＲＤエラーとならない。その次のデータである「Ａ＋」のシンボルの受信で、ＲＤエラーとなる。
【００６６】
受信パターン２においては、図１０に示されるように、３シンボル目にエラーが発生したにも関わらず５シンボル目でエラーを検出している。すなわち、１ビット誤りが発生したにも関わらずＲＤエラーが発生せず、かつ、次に「Ｃ」のシンボルを受信した場合は、奇数シンボルと偶数シンボルとのパリティビットだけではエラー箇所は特定されない。
【００６７】
そこで、本実施の形態では、データに対する復号化で発生する復号エラーと、パリティデータに応じて検出されたパリティエラーとに基づいて、図１０の受信パターン２に示すような誤りが訂正される。
【００６８】
エラー訂正部１４８は、バッファ１５０と、ＢＩＰ演算部１５２と、エラー検出部１５４と、訂正部１５６とを備えている。
【００６９】
バッファ１５０には、８Ｂ１０Ｂ復号化部１４４によって復号された、受信データ及びパリティデータと、復号エラーに関する情報とが格納される。
【００７０】
ＢＩＰ演算部１５２は、バッファ１５０に格納された送信データを取得し、取得した送信データを予め定められたビット数毎に区切って、当該区切りにおけるビット位置毎にパリティデータを計算する。また、ＢＩＰ演算部１５２は、計算されたパリティデータをエラー検出部１５４に出力する。
【００７１】
エラー検出部１５４は、バッファ１５０に格納された受信データのパリティデータと、ＢＩＰ演算部１５２によって出力されたパリティデータとに応じて、パリティエラーを検出する。また、エラー検出部１５４は、検出されたパリティエラーを訂正部１５６へ出力する。
【００７２】
また、エラー検出部１５４は、バッファ１５０に格納された復号エラーに関する情報と、検出されたパリティエラーとに基づいて、復号エラーが２箇所以上で発生した場合、又は復号エラーが発生せずかつパリティエラーが検出された場合に、受信データの２ビット以上の誤りを検出し、受信データで２ビット以上の誤りを表す情報をエラー出力部１５８へ出力する。
【００７３】
訂正部１５６は、バッファ１５０に格納された復号エラーに関する情報及びエラー検出部１５４によって出力されたパリティエラーに基づいて、復号化で発生した復号エラーの位置とパリティエラーの位置との組み合わせから、バッファ１５０に格納された受信データのうちの１ビット誤りを有するシンボルを特定する。
そして、訂正部１５６は、ＢＩＰ演算部１５２によって出力されたパリティデータとバッファ１５０に格納された受信データのパリティデータとのＸＯＲ演算によって訂正データを算出し、１ビット誤りを有するシンボルと訂正データとのＸＯＲ演算によって、１ビット誤りを訂正する。
【００７４】
図１１に、受信データにおける１ビット誤りの訂正を説明するための図を示す。
【００７５】
図１１（Ａ）に示されるような送信パターンが符号化装置１２によって符号化され、図１１（Ｂ）に示されるような受信パターンが復号化装置１４により受信された場合について説明する。
【００７６】
図１１（Ｂ）に示されるように、１行３列目の「Ｂ−」のシンボルでエラーが発生した場合、上記図１０の受信パターン２に示されるように、２行１列目の「Ａ＋」のシンボルにおいてＲＤエラーが検出される。この場合、エラー検出部１５４によってパリティデータのチェックを行うと、図１１（Ｃ）に示されるようにＰ３’がパリティエラーとなり、Ｐ１はパリティエラーとはならない。従って、この場合、訂正部１５６は、１行３列目のシンボルでエラーが発生したと判断され、Ｐ３’のパリティデータに基づいて、１行３列目のシンボルの１ビット誤りが訂正される。
【００７７】
図１２に、受信データにおける１ビット誤りの訂正の具体例を示す。図１２に示されるように、８Ｂ１０Ｂ復号化部１４４による復号エラーのチェックにおいて、「Ａ＋」のシンボルの受信でＲＤエラーが発生した場合、復号エラーの位置として開始アドレス０ｘ０３及び終了アドレス０ｘ０６をバッファ１５０に記憶させる。図１２に示す例では、ＢＩＰ演算部１５２によるパリティエラーのチェックにおいて、Ｐ１ブロックがエラーとなる。エラー箇所は１箇所であり、訂正部１５６は、０ｘ０３から０ｘ０６のうち、Ｐ１ブロックに対応する０ｘ０４のデータである「Ｃ」のシンボルの１ビット誤りを、Ｐ１’のパリティデータに基づいて訂正する。
【００７８】
エラー出力部１５８は、エラー検出部１５４によって受信データで２ビット以上の誤りを表す情報が出力された場合に、受信データで２ビット以上の誤りを表す情報を出力する。
【００７９】
データ出力部１６０は、エラー無しの場合も含めてエラー訂正終了後に、バッファ１５０に格納された受信データを順次出力する。
【００８０】
＜情報伝送システムの動作＞
次に、情報伝送システム１０の動作について説明する。上記の通り、情報伝送システム１０の動作は、符号化装置１２側の処理と復号化装置１４側の処理とを含む。
【００８１】
＜符号化装置側の処理＞
まず、符号化装置１２側で実行される処理について説明する。
図１３は符号化装置１２によって実行される符号化処理ルーチンの手順の一例を示すフローチャートである。符号化装置１２は、符号化対象のパラレル形式のデータが入力されると、図１３に示す符号化処理ルーチンを実行する。
【００８２】
ステップＳ１００において、データ受付部１２０はパラレル形式の送信データを受け付ける。
【００８３】
ステップＳ１０２において、ＢＩＰ演算部１２４は、上記ステップＳ１００で受け付けられた送信データを取得し、取得した送信データを予め定められたビット数毎に区切って、当該区切りにおけるビット位置毎にパリティデータを計算する。
【００８４】
ステップＳ１０４において、パケット生成部１２６は、上記ステップＳ１００で受け付けられた送信データと、上記ステップＳ１０２で計算されたパリティデータとから、パケットを生成する。
【００８５】
ステップＳ１０６において、８Ｂ１０Ｂ符号化部１２８は、上記ステップＳ１０４で生成されたパケットを、８Ｂ１０Ｂ符号化方式に従って符号化し、ビット数を変換する。
【００８６】
ステップＳ１０８において、パラレルシリアル変換部（Ｐ／Ｓ）１３０は、上記ステップＳ１０６で変換されたパラレル形式のデータを、シリアルのビット列に変換する。
【００８７】
ステップＳ１１０において、送信部１３２は、上記ステップＳ１０８で変換されたシリアル形式のデータを伝送路１６へ出力して、符号化処理ルーチンを終了する。
【００８８】
＜復号化装置側の処理＞
次に、復号化装置１４側で実行される処理について説明する。
図１４は復号化装置１４によって実行される復号化処理ルーチンの手順の一例を示すフローチャートである。復号化装置１４は、復号化対象のデータを受信すると、図１４に示す復号化処理ルーチンを実行する。
【００８９】
ステップＳ２００において、受信部１４０は、符号化装置１２によって伝送路１６を介して送信されたシリアル形式のデータを受信する。
【００９０】
ステップＳ２０２において、シリアルパラレル（Ｓ／Ｐ）変換部１４２は、上記ステップＳ２００で受信したシリアル形式のデータをパラレル形式のデータに変換する。
【００９１】
ステップＳ２０３において、８Ｂ１０Ｂ復号化部１４４は、上記ステップＳ２０２で得られたパラレル形式のデータから、シンボルの列を設定する。
【００９２】
ステップＳ２０４において、８Ｂ１０Ｂ復号化部１４４は、上記ステップＳ２０３で設定されたパケットを、８Ｂ１０Ｂの符号化方式に従って復号化し、受信データ及びパリティデータを出力する。また、８Ｂ１０Ｂ復号化部１４４は、復号された受信データとパリティデータとを、バッファ１５０に格納する。
【００９３】
ステップＳ２０６において、８Ｂ１０Ｂ復号化部１４４は、上記ステップＳ２０４の復号化で復号エラーが発生したか否かを判定する。復号エラーが発生した場合には、ステップＳ２０８へ進む。一方、復号エラーが発生していない場合には、ステップＳ２１０へ進む。
【００９４】
ステップＳ２０８において、８Ｂ１０Ｂ復号化部１４４は、上記ステップＳ２０４の複合化で発生した復号エラーに関する情報を、バッファ１５０に格納する。
【００９５】
ステップＳ２１０において、ＢＩＰ演算部１５２は、上記ステップＳ２０４でバッファ１５０に格納された送信データを取得し、取得した送信データを予め定められたビット数毎に区切って、当該区切りにおけるビット位置毎にパリティデータを計算する。
【００９６】
ステップＳ２１２において、受信したデータの全てのシンボルについて上記ステップＳ２０３〜ステップＳ２１０の処理を実行したか否かを判定する。受信したデータの全てのシンボルについて上記ステップＳ２０３〜ステップＳ２１０の処理を実行した場合には、ステップＳ２１４へ進む。一方、上記ステップＳ２０３〜ステップＳ２１０の処理を実行していないシンボルが存在する場合には、ステップＳ２０３へ戻る。
【００９７】
ステップＳ２１４において、エラー検出部１５４は、バッファ１５０に格納された受信データのパリティデータと、上記ステップＳ２１０で計算されたパリティデータとに応じて、パリティエラーが発生したか否かを検出する。そして、パリティエラーが１箇所のシンボルに発生した場合には、ステップＳ２１６へ進む。一方、パリティエラーが２箇所以上のシンボルに発生した場合には、ステップＳ２１８へ進む。パリティエラーが発生していない場合には、ステップＳ２２２へ進む。
【００９８】
ステップＳ２１６において、エラー検出部１５４は、上記ステップＳ２０８でバッファ１５０に格納された復号エラーに関する情報に応じて、復号エラーが何箇所であるかを判定する。復号エラーが２箇所以上である場合には、ステップＳ２１８へ進む。
一方、復号エラーが１箇所である場合には、上記ステップＳ２１４で検出されたパリティエラーを訂正部１５６へ出力し、ステップＳ２２０へ進む。
【００９９】
ステップＳ２１８において、エラー検出部１５４は、バッファ１５０に格納された受信データについて、訂正が不能であることを表す訂正不能エラーを検出する。
【０１００】
ステップＳ２２０において、バッファ１５０に格納された復号エラーに関する情報及び上記ステップＳ２１６で出力されたパリティエラーに基づいて、復号化で発生した復号エラーの位置とパリティエラーの位置との組み合わせに基づいて、バッファ１５０に格納された受信データの１ビット誤りを訂正する。
【０１０１】
ステップＳ２２２において、データ出力部１６０は、バッファ１５０に格納された受信データを出力して、復号化処理ルーチンを終了する。
【０１０２】
ステップＳ２２４において、エラー出力部１５８は、上記ステップＳ２１８で検出された訂正不能エラーを出力して、復号化処理ルーチンを終了する。
【０１０３】
＜第２の実施の形態＞
第１の実施の形態では、復号化装置１４が訂正部１５６を備え、訂正部１５６は、復号化で発生した復号エラーの位置とパリティエラーの位置との組み合わせに基づいて、バッファ１５０に格納された受信データの１ビット誤りを訂正する場合を例に説明した。これに対し、第２の実施の形態では、「Ｃ」のシンボルが連続して受信された場合であっても、１ビットの誤り訂正を行う場合を例に説明する。なお、前述した第１の実施の形態の符号化装置１２及び復号化装置１４と同様の構成については、第１の実施の形態と同一の符号を付与してその説明を省略する。
【０１０４】
図１５に、「Ｃ」のシンボルが連続して受信された場合の例を説明するための図を示す。
【０１０５】
図１５（Ａ）に示されるような送信パターン１が符号化装置１２によって送信され、図１５（Ｂ）に示されるような受信パターン２が復号化装置１４により受信された場合について説明する。また、図１５（Ｃ）に、特定のシンボルの一例である「Ｃ」のシンボルのコードの一覧を示す。
【０１０６】
上記第１の実施の形態では、「Ｃ」のシンボルが連続して受信された場合、エラーの位置が特定されない可能性がある。例えば、図１５（Ａ）に示されるように、送信データを４×Ｎシンボルに分けた場合は、「Ｃ」のシンボルが連続して３つ受信された後、ＲＤエラーが検出されると、Ｐ３以外がパリティエラーの場合は、「Ｃ」のシンボルでエラーが発生したと判断されるが、Ｐ３がパリティエラーの場合は、１行目でエラーが発生したか２行目でエラーが発生したかが判断されない。
【０１０７】
（符号化装置２１２）
図１６は第２の実施の形態に係る符号化装置２１２の構成の一例を示すブロック図である。図１６に示すように、符号化装置２１２は、データ受付部１２０、変換部２２２、及び送信部１３２を備えている。
【０１０８】
変換部２２２は、データ受付部１２０によって受け付けたパラレル形式の送信データを取得する。そして、変換部２２２は、取得した送信データにパリティデータを付与し、ＤＣバランスが保たれるように当該送信データを符号化する。変換部２２２は、コードチェック部２２３、ＢＩＰ演算部１２４、パケット生成部１２６、８Ｂ１０Ｂ符号化部１２８、符号挿入部２２９、及びパラレルシリアル（Ｐ／Ｓ）変換部１３０を備えている。
【０１０９】
コードチェック部２２３は、データ受付部１２０によって受け付けられたパラレル形式の送信データについて、予め定められた数だけ「Ｃ」のシンボルが連続した箇所を検出する。本実施の形態では、予め定められた数が「３」である場合を例に説明する。
【０１１０】
符号挿入部２２９は、コードチェック部２２３による検出結果に基づいて、「Ｃ」のシンボルが３個連続した箇所の後に、予め定められた符号の一例としてＫ符号を挿入する。
【０１１１】
図１７に、Ｋ符号が挿入される例を示す。図１７の送信パターンに示されるように、「Ｃ」のシンボルが３個連続した箇所の後に、Ｋ符号を表す「Ｋ23.7＋」のシンボルが挿入される。また、図１７の受信パターンに示されるように、後述する復号化装置においてＫ符号は抜去される。
【０１１２】
（復号化装置２１４）
図１８は第２の実施の形態に係る復号化装置２１４の構成の一例を示すブロック図である。図１８に示すように、復号化装置２１４は、受信部１４０、シリアルパラレル（Ｓ／Ｐ）変換部１４２、８Ｂ１０Ｂ復号化部２４４、コードチェック部２４５、符号抜去部２４６、エラー情報設定部２４７、エラー訂正部２４８、エラー出力部１５８、及びデータ出力部１６０を備えている。
【０１１３】
８Ｂ１０Ｂ復号化部２４４は、シリアルパラレル（Ｓ／Ｐ）変換部１４２によって得られたパラレル形式のデータを、８Ｂ１０Ｂの符号化方式に従って予め定められた変換テーブルを用いて復号化し、受信データ及びパリティデータとして出力する。
【０１１４】
また、８Ｂ１０Ｂ復号化部２４４は、シリアルパラレル（Ｓ／Ｐ）変換部１４２から出力されたデータに対する復号化で復号エラーが発生した場合に、復号エラーに関する情報を出力する。
【０１１５】
コードチェック部２４５は、８Ｂ１０Ｂ復号化部２４４によって出力された受信データについて、「Ｃ」のシンボルの一覧に基づいて、「Ｃ」のシンボルが連続した箇所を検出する。
【０１１６】
符号抜去部２４６は、８Ｂ１０Ｂ復号化部２４４によって出力された受信データから、コードチェック部２４５によって検出された「Ｃ」のシンボルが３個連続した箇所に基づいて、Ｋ符号を抜去し、Ｋ符号が抜去された受信データを出力する。また、符号抜去部２４６は、Ｋ符号が抜去された受信データをバッファ１５０に格納する。
【０１１７】
エラー情報設定部２４７は、８Ｂ１０Ｂ復号化部２４４によって出力された復号エラーに関する情報と、コードチェック部２４５によって検出された「Ｃ」のシンボルが連続した箇所における「Ｃ」のシンボルの連続数と、符号抜去部２４６によってＫ符号が抜去された受信データとに基づいて、予め定められた規則に従って、エラー情報を設定する。
【０１１８】
図１９〜図２２に、エラー情報設定部２４７によるエラー情報の設定の例を示す。
【０１１９】
図１９に、「Ｃ」のシンボルが３つ連続した後、Ｋ符号の「K23.7+」のシンボルでＲＤエラーが発生した場合について示す。
【０１２０】
図１９の例に示されるように、送信パターンにおいて「Ｂ−」のシンボルが送信され、１ビット誤りが発生し、受信側で「Ａ−」のシンボルが受信され、「Ａ−」のシンボルの後に「Ｃ」のシンボルが３つ連続した場合、Ｋ符号の「K23.7+」のシンボルでＲＤエラーが発生する。
【０１２１】
エラー情報設定部２４７は、上記図１９に示されるように、「Ｃ」のシンボルが３つ連続し、Ｋ符号において復号エラーとしてＲＤエラーが発生した場合に、Ｋ符号の「Ｋ２３．７」のシンボルの１つ手前の「Ｃ」のシンボルにエラー情報を設定する。
【０１２２】
次に、図２０に、「Ｃ」のシンボルが３つ連続した後のシンボルでＮＩＴエラーが発生した場合について示す。
【０１２３】
図２０の例に示されるように、Ｋ符号の「K23.7+」のシンボルで１ビットエラーが発生した場合、「Ｃ」のシンボルが３つ連続した後のシンボルにおいてＮＩＴエラーが発生する。
【０１２４】
エラー情報設定部２４７は、上記図２０に示されるように、「Ｃ」のシンボルが３つ連続した後のシンボルにおいて復号エラーとしてＮＩＴエラーが発生した場合に、ＮＩＴエラーが発生したシンボルの１つ手前の「Ｃ」のシンボルにエラー情報を設定する。
【０１２５】
次に、図２１に、「Ｃ」のシンボルが３つ連続した後に、「Ａ」のシンボル又は「Ｂ」のシンボルが出現する場合について示す。
【０１２６】
図２１（Ａ）の例に示されるように、送信側で「Ｃ」のシンボル、「Ｂ」のシンボル、「Ｃ」のシンボルのパターンが送信され、受信側で「Ｃ」のシンボル、「Ｃ」のシンボル、「Ｃ」のシンボルが受信された場合には、「Ｃ」のシンボルが３つ連続した後の「Ａ−」のシンボルの受信でＲＤエラーが発生する。
【０１２７】
エラー情報設定部２４７は、上記図２１（Ａ）に示されるように、「Ｃ」のシンボルが３つ連続した後の「Ａ−」のシンボルでＲＤエラーが発生した場合には、「Ａ」のシンボルにエラー情報を設定する。
【０１２８】
また、図２１（Ｂ）の例に示されるように、送信側で「Ｃ」のシンボル、「Ｂ」のシンボル、「Ｃ」のシンボルのパターンが送信され、受信側で「Ｃ」のシンボル、「Ｃ」のシンボル、「Ｃ」のシンボルが受信された場合には、「Ｃ」のシンボルが３つ連続した後の「Ｂ−」のシンボルでＲＤエラーが発生する。
【０１２９】
エラー情報設定部２４７は、上記図２１（Ａ）に示されるように、「Ｃ」のシンボルが３つ連続した後の「Ｂ−」のシンボルでＲＤエラーが発生した場合には、「Ｂ」のシンボルにエラー情報を設定する。
【０１３０】
次に、図２２に、「Ｃ」のシンボル、「Ｃ」のシンボル、「Ｂ」のシンボル、「Ｃ」のシンボルを含む受信パターンが送信され、３つ目の「Ｃ」のシンボルに１ビット誤りが発生し、「Ｃ」のシンボル、「Ｃ」のシンボル、「Ｃ」のシンボル、「Ｃ」のシンボルを含むパターンが受信された場合の例を示す。
【０１３１】
図２２の例に示されるように、送信側において「Ｃ」のシンボルが３つ連続した場合には、Ｋ符号が挿入されるため、受信側で「Ｃ」のシンボルが４つ連続することは無く、４つの「Ｃ」のシンボルの何れかでエラーが発生したと考えられる。
【０１３２】
エラー情報設定部２４７は、上記図２２に示されるように、「Ｃ」のシンボルが４つ連続した場合に、４つ目の「Ｃ」のシンボルにエラー情報を設定する。
【０１３３】
そして、エラー情報設定部２４７は、設定されたエラー情報をバッファ１５０に格納する。
【０１３４】
エラー検出部２５４は、バッファ１５０に格納された受信データのパリティデータと、ＢＩＰ演算部１５２によって出力されたパリティデータとに応じて、パリティエラーを検出する。また、エラー検出部１５４は、検出されたパリティエラーを訂正部１５６へ出力する。
【０１３５】
また、エラー検出部２５４は、バッファ１５０に格納されたエラー情報と、検出されたパリティエラーとに基づいて、エラーの位置を検出する。
【０１３６】
例えば、上記図１９に示されるように、エラー検出部２５４は、「Ｃ」のシンボルが３つ連続した後、Ｋ符号の「K23.7+」のシンボルでＲＤエラーが発生した場合に、受信パターンに示されるように、Ｋ符号の「K23.7」のシンボルの１つ手前の「Ｃ」のシンボルの３つ手前の「Ａ」のシンボルでエラーが発生したことを検出する。
【０１３７】
また、上記図２０に示されるように、エラー検出部２５４は、バッファ１５０に格納されたエラー情報と、検出されたパリティエラーとに基づいて、「Ｃ」のシンボルが３つ連続した後のシンボルでＮＩＴエラーが発生し、パリティエラーが検出されていない場合に、上記図２０の受信パターンに示されるように、エラー無しと判定する。
【０１３８】
また、上記図２１（Ａ）及び（Ｂ）に示されるように、エラー検出部２５４は、バッファ１５０に格納されたエラー情報と、検出されたパリティエラーとに基づいて、「Ｃ」のシンボルが３つ連続した後、「Ａ」のシンボル又は「Ｂ」のシンボルが出現し、パリティエラーが検出された場合に、上記図２１（Ａ）及び（Ｂ）の受信パターンに示されるように、「Ａ」のシンボル又は「Ｂ」のシンボルの２つ手前の「Ｃ」でエラーが発生したことを検出する。
【０１３９】
また、上記図２２に示されるように、エラー検出部２５４は、バッファ１５０に格納されたエラー情報と、検出されたパリティエラーとに基づいて、「Ｃ」のシンボルが４つ連続し、パリティエラーが検出された場合に、上記図２１（Ａ）及び（Ｂ）の受信パターンに示されるように、３つ目の「Ｃ」でエラーが発生したことを検出する。
【０１４０】
また、エラー検出部１５４は、バッファ１５０に格納されたエラー情報と、検出されたパリティエラーとに基づいて、復号エラーが２箇所以上で発生した場合、又は復号エラーが発生せずかつパリティエラーが検出された場合に、受信データの２ビット以上の誤りを検出し、受信データで２ビット以上の誤りを表す情報をエラー出力部１５８へ出力する。
【０１４１】
訂正部２５６は、バッファ１５０に格納されたエラー情報及びエラー検出部１５４によって出力されたパリティエラーに基づいて、復号化で発生した復号エラーの位置とパリティエラーの位置との組み合わせに基づいて、バッファ１５０に格納された受信データの１ビット誤りを訂正する。
【０１４２】
＜情報伝送システムの動作＞
次に、第２の実施の形態に係る情報伝送システムの動作について説明する。上記の通り、第２の実施の形態に係る情報伝送システムの動作は、符号化装置２１２側と復号化装置２１４側とで実行される。
【０１４３】
＜符号化装置側の処理＞
まず、符号化装置２１２側で実行される処理について説明する。
図２３は符号化装置２１２によって実行される符号化処理ルーチンの手順の一例を示すフローチャートである。符号化装置２１２は、符号化対象のパラレル形式の送信データが入力されると、図２３に示す符号化処理ルーチンを実行する。
【０１４４】
ステップＳ１００において、データ受付部１２０はパラレル形式の送信データを受け付ける。
【０１４５】
ステップＳ３０１において、コードチェック部２２３は、上記ステップＳ１００で受け付けられた送信データについて、「Ｃ」のシンボルが３つ連続した箇所を検出する。
【０１４６】
ステップＳ１０２において、ＢＩＰ演算部１２４は、上記ステップＳ１００で受け付けられた送信データを取得し、取得した送信データを予め定められたビット数毎に区切って、当該区切りにおけるビット位置毎にパリティデータを計算する。
【０１４７】
ステップＳ３０３において、符号挿入部２２９は、上記ステップＳ３０１での検出結果に基づいて、「Ｃ」のシンボルが３個連続した箇所の後に、Ｋ符号に相当するシンボルを挿入する。
【０１４８】
ステップＳ３０４において、パケット生成部１２６は、上記ステップＳ３０３で得られた送信データと、上記ステップＳ１０２で計算されたパリティデータとから、パケットを生成する。
【０１４９】
ステップＳ１０６において、８Ｂ１０Ｂ符号化部１２８は、上記ステップＳ３０４で生成されたパケットを、８Ｂ１０Ｂ符号化方式に従って符号化し、ビット数を変換する。
【０１５０】
ステップＳ１０８において、パラレルシリアル（Ｐ／Ｓ）変換部１３０は、上記ステップＳ１０６で変換されたパラレル形式のデータを、シリアルのビット列に変換する。
【０１５１】
ステップＳ１１０において、送信部１３２は、上記ステップＳ１０８で変換されたシリアル形式のデータを伝送路１６へ出力して、符号化処理ルーチンを終了する。
【０１５２】
＜復号化装置側の処理＞
次に、復号化装置２１４側で実行される処理について説明する。
図２４及び図２５は、復号化装置２１４によって実行される復号化処理ルーチンの手順の一例を示すフローチャートである。復号化装置２１４は、復号化対象のデータを受信すると、図２４及び図２５に示す復号化処理ルーチンを実行する。
【０１５３】
ステップＳ２００において、受信部１４０は、符号化装置１２によって伝送路１６を介して送信されたシリアル形式のデータを受信する。
【０１５４】
ステップＳ２０２において、シリアルパラレル（Ｓ／Ｐ）変換部１４２は、上記ステップＳ２００で受信したシリアル形式のデータをパラレル形式のデータに変換する。
【０１５５】
ステップＳ２０３において、８Ｂ１０Ｂ復号化部２４４は、上記ステップＳ２０２で得られたパラレル形式のデータから、シンボルの列を設定する。
【０１５６】
ステップＳ２０４において、８Ｂ１０Ｂ復号化部２４４は、上記ステップＳ２０３で設定されたパケットを、８Ｂ１０Ｂの符号化方式に従って復号化し、受信データ及びパリティデータを出力する。
【０１５７】
ステップＳ４０６において、コードチェック部２４５は、上記ステップＳ２０４で出力された受信データに基づいて、「Ｃ」のシンボルが連続して出現した箇所を検出する。「Ｃ」のシンボルが３つ未満で連続して出現した箇所が検出された場合には、ステップＳ４０８へ進む。一方、「Ｃ」のシンボルが３つ連続して出現した箇所が検出された場合には、ステップＳ４１０へ進む。また、「Ｃ」のシンボルが４つ連続して出現した箇所が検出された場合には、ステップＳ４１８へ進む。
【０１５８】
ステップＳ４０８において、８Ｂ１０Ｂ復号化部２４４は、上記ステップＳ２０４での復号化処理において復号エラーが発生したか否かを判定する。復号エラーが発生した場合には、ステップＳ４１８へ進む。一方、復号エラーが発生していない場合には、ステップＳ４２０へ進む。
【０１５９】
ステップＳ４１０において、符号抜去部２４６は、「Ｃ」のシンボルが３つ連続して出現した後のシンボルが、Ｋ符号を表す「Ｋ23.7」のシンボルであるか否かを判定する。Ｋ符号を表す「Ｋ23.7」のシンボルである場合には、ステップＳ４１２へ進む。一方、「Ｃ」のシンボルが３つ連続して出現した後のシンボルが、変換テーブルに存在しない符号を表すＮＩＴ符号である場合には、ステップＳ４１４へ進む。また、「Ｃ」のシンボルが３つ連続して出現した後のシンボルが、「Ａ」のシンボル又は「Ｂ」のシンボルである場合には、ステップＳ４１６へ進む。
【０１６０】
ステップＳ４１２において、符号抜去部２４６は、上記ステップＳ２０４で出力された受信データから、Ｋ符号を抜去し、Ｋ符号が抜去された受信データを出力する。
【０１６１】
ステップＳ４１４において、符号抜去部２４６は、上記ステップＳ２０４で出力された受信データから、ＮＩＴシンボルを抜去し、ＮＩＴシンボルが抜去された受信データを出力する。
【０１６２】
ステップＳ４１６において、８Ｂ１０Ｂ復号化部２４４は、上記ステップＳ２０４での復号化処理においてＲＤエラーが発生したか否かを判定する。ＲＤエラーが発生した場合にはステップＳ４１８へ進む。一方ＲＤエラーが発生していない場合には、ステップＳ４２０へ進む。
【０１６３】
ステップＳ４１８において、エラー情報設定部２４７は、上記ステップＳ４０６で検出された「Ｃ」のシンボルが連続して出現した箇所に関する情報、「Ｃ」のシンボルが連続して出現した後の符号に関する情報、及び上記ステップＳ４０８又は上記ステップＳ４１６で出力された復号エラーに関する情報に応じて、予め定められた規則に従って、エラー情報を記憶させる。
具体的には、エラー情報設定部２４７は、上記ステップＳ４０６で「Ｃ」のシンボルが３つ未満で連続して出現し、かつ上記ステップＳ４０８で復号エラーが検出された場合には、上記ステップＳ４０８で検出された復号エラーの位置を、エラー情報としてバッファ１５０に記憶させる。
また、エラー情報設定部２４７は、上記ステップＳ４０６で「Ｃ」のシンボルが３つ連続して出現し、かつ上記ステップＳ４１０において「Ｃ」のシンボルが３つ連続して出現した後のシンボルが、Ｋ符号を表す「Ｋ23.7」のシンボルであり、Ｋ符号を表す「Ｋ23.7」のシンボルでＲＤエラーが発生した場合には、３つ目の「Ｃ」のシンボルでＲＤエラーが発生したと設定し、エラー情報としてバッファ１５０に記憶させる。
また、エラー情報設定部２４７は、上記ステップＳ４０６で「Ｃ」のシンボルが３つ連続して出現し、かつ上記ステップＳ４１０において「Ｃ」のシンボルが３つ連続して出現した後のシンボルが、変換テーブルに存在しない符号である場合には、３つ目の「Ｃ」のシンボルでＲＤエラーが発生したと設定し、エラー情報としてバッファ１５０に記憶させる。
また、エラー情報設定部２４７は、上記ステップＳ４０６で「Ｃ」のシンボルが３つ連続して出現し、かつ上記ステップＳ４１０において「Ｃ」のシンボルが３つ連続して出現した後のシンボルが、「Ａ」のシンボル又は「Ｂ」のシンボルであり、当該「Ａ」のシンボル又は「Ｂ」のシンボルでＲＤエラーが発生した場合には、「Ｃ」のシンボルが３つ連続して出現した後の符号である、「Ａ」のシンボル又は「Ｂ」のシンボルでＲＤエラーが発生したと設定し、エラー情報としてバッファ１５０に記憶させる。
また、エラー情報設定部２４７は、上記ステップＳ４０６で「Ｃ」のシンボルが４つ連続して出現した場合には、４つ目の「Ｃ」のシンボルでＲＤエラーが発生したと設定し、エラー情報としてバッファ１５０に記憶させる。
【０１６４】
ステップＳ４２０において、ＢＩＰ演算部１５２は、上記ステップＳ２０４でバッファ１５０に格納された送信データを取得し、取得した送信データを予め定められたビット数毎に区切って、当該区切りにおけるビット位置毎にパリティデータを計算する。
【０１６５】
ステップＳ４２２において、受信したデータの全てのシンボルについて上記ステップＳ２０３〜ステップＳ４２０の処理を実行したか否かを判定する。受信したデータの全てのシンボルについて上記ステップＳ２０３〜ステップＳ４２０の処理を実行した場合には、ステップＳ４２４へ進む。一方、上記ステップＳ２０３〜ステップＳ４２０の処理を実行していないシンボルが存在する場合には、ステップＳ２０３へ戻る。
【０１６６】
ステップＳ４２４において、受信データのパケット長は正しいか否かを判定する。パケット長が正しい場合には、ステップＳ４２６へ進む。一方、パケット長が誤っている場合には、ステップＳ４３２へ進む。
【０１６７】
ステップＳ４２６において、エラー検出部１５４は、バッファ１５０に格納された受信データのパリティデータと、上記ステップＳ４２０で計算されたパリティデータとに応じて、パリティエラーが発生したか否かを検出する。そして、パリティエラーが１箇所のシンボルで発生した場合には、ステップＳ４２８へ進む。一方、パリティエラーが２箇所以上のシンボルで発生した場合には、ステップＳ４３２へ進む。パリティエラーが発生していない場合には、ステップＳ４３４へ進む。
【０１６８】
ステップＳ４２８において、エラー検出部１５４は、上記ステップＳ４１８でバッファ１５０に格納されたエラー情報に応じて、復号エラーが何箇所であるかを判定する。復号エラーが２箇所以上のシンボルである場合には、ステップＳ４３２へ進む。
一方、復号エラーが１箇所のシンボルである場合には、上記ステップＳ４２６で検出されたパリティエラーを訂正部１５６へ出力し、ステップＳ４３０へ進む。
【０１６９】
ステップＳ４３２において、エラー検出部１５４は、バッファ１５０に格納された受信データについて、訂正が不能であることを表す訂正不能エラーを検出する。
【０１７０】
ステップＳ４３０において、訂正部２５６は、バッファ１５０に格納されたエラー情報及び上記ステップＳ４２６で出力されたパリティエラーに応じて、復号化で発生した復号エラーの位置とパリティエラーの位置との組み合わせに基づいて、バッファ１５０に格納された受信データの１ビット誤りを訂正する。
【０１７１】
ステップＳ４３４において、データ出力部１６０は、バッファ１５０に格納された受信データを出力して、復号化処理ルーチンを終了する。
【０１７２】
ステップＳ４３６において、エラー出力部１５８は、上記ステップＳ４３２で検出された訂正不能エラーを出力して、復号化処理ルーチンを終了する。
【０１７３】
なお、上記の実施の形態で説明した情報伝送システムの構成は一例であり、本発明の主旨を逸脱しない範囲内においてその構成を変更してもよいことは言うまでもない。例えば、符号化装置と復号化装置とを有する情報伝送システムとして説明したが、符号化手段と復号化手段とを兼ね備える装置とし、装置間でシリアル伝送を行う情報伝送システムとしてもよい。また、ビット数変換も８Ｂ１０Ｂのみでなく、”１“と”０“の個数の差が＋２／０／−２となるような変換が出来て、ＲＤがプラスの場合は”１“と”０“の個数の差が−２の符号を、ＲＤがマイナスの場合は”１“と”０“の個数の差が＋２の符号を送出し、ＲＤの極性を変化させ、”１“と”０“の個数の差が０の符号を送出した場合は、ＲＤを変化させないような制御をすることで、１０Ｂ１２Ｂのようなビット数変換も可能である。
【０１７４】
また、上記実施の形態では、ＢＩＰ（Bit Interleaved Parity）方式に従って、取得した送信データを８ビットの倍数に区切って、当該区切りにおけるビット位置毎にパリティデータを計算する場合を例に説明したが、これに限定されるものではなく、他の方法によって送信データを予め定められたビット数毎に区切って、当該区切りにおけるビット位置毎にパリティデータを計算してもよい。例えば、１０Ｂ１２Ｂのようなビット数変換の場合は１０ビットの倍数に区切って、当該区切りにおけるビット位置毎にパリティデータを計算すると良い。
【０１７５】
また、上記第１の実施の形態では、送信データを４×Ｎシンボルに分割する場合を例に説明したが、各行に含まれるシンボルの数である分割数を増やしてもよい。分割数を増やした場合、「Ｃ」のシンボルの連続が（分割数−１）であれば１ビット誤りが訂正される。上記図１５（Ｃ）に示されるように、「Ｃ」のシンボルのコードは様々であるため、分割数を増やし、「Ｃ」のシンボルの連続が（分割数−１）であれば１ビット誤りが訂正される。
【０１７６】
本発明を通信手段により提供することはもちろん、ＣＤＲＯＭ等の記録媒体に格納して提供することも可能である。
【符号の説明】
【０１７７】
１２，２１２  符号化装置
１４，２１４  復号化装置
１０   情報伝送システム
１６   伝送路
１２０ データ受付部
１２２ 変換部
１２４ ＢＩＰ演算部
１２６ パケット生成部
１２８ ８Ｂ１０Ｂ符号化部
１３２ 送信部
１３０ パラレルシリアル（Ｐ／Ｓ）変換部
１４０ 受信部
１４２ シリアルパラレル（Ｓ／Ｐ）変換部
１４４，２４４  ８Ｂ１０Ｂ復号化部
１４６ 復号エラー検出部
１４８，２４８  エラー訂正部
１５０ バッファ
１５２ ＢＩＰ演算部
１５４，２５４  エラー検出部
１５６，２５６  訂正部
１５８ エラー出力部
１６０ データ出力部
２２２ 変換部
２２３ コードチェック部
２２９ 符号挿入部
２４５ コードチェック部
２４６ 符号抜去部
２４７ エラー情報設定部
【図１】
0006657690.tif 000002
【図２】
0006657690.tif 000003
【図３】
0006657690.tif 000004
【図４】
0006657690.tif 000005
【図５】
0006657690.tif 000006
【図６】
0006657690.tif 000007
【図７】
0006657690.tif 000008
【図８】
0006657690.tif 000009
【図９】
0006657690.tif 000010
【図１０】
0006657690.tif 000011
【図１１】
0006657690.tif 000012
【図１２】
0006657690.tif 000013
【図１３】
0006657690.tif 000014
【図１４】
0006657690.tif 000015
【図１５】
0006657690.tif 000016
【図１６】
0006657690.tif 000017
【図１７】
0006657690.tif 000018
【図１８】
0006657690.tif 000019
【図１９】
0006657690.tif 000020
【図２０】
0006657690.tif 000021
【図２１】
0006657690.tif 000022
【図２２】
0006657690.tif 000023
【図２３】
0006657690.tif 000024
【図２４】
0006657690.tif 000025
【図２５】
0006657690.tif 000026