(57)【特許請求の範囲】
【請求項１】
任意の符号語をpシンボル巡回シフトしたものがまた符号語となる準巡回符号の符号化装置であって、
qビット単位で入力される情報ビットを、pの倍数であるが、qの倍数ではない数のビットであるmpビットの情報ビットに変換するパラレル変換回路と、
前記パラレル変換回路により変換されることによって得られた情報ビットをmpビットずつ処理してパリティビットを生成し、qビット単位で出力するパリティ生成回路と、
前記パリティ生成回路により生成されたqビット単位のパリティビットを、パリティビットの生成の元になったqビット単位の情報ビットに付加して符号ビットとして出力する符号化回路と
を備える符号化装置。
【請求項２】
前記パリティ生成回路はレジスタを有し、パリティビットを生成した後、生成したパリティビットを、１クロックサイクル毎にqビット単位で出力する
請求項１に記載の符号化装置。
【請求項３】
前記パラレル変換回路は、１クロックサイクル毎にqビット単位で入力される情報ビットを蓄積するバッファを有し、バッファに蓄積された情報ビットの量がmpビットを超えたタイミングで、蓄積された情報ビットのうち、先に入力された情報ビットから順に、mpビットの情報ビットを１クロックサイクル毎に出力する
請求項１に記載の符号化装置。
【請求項４】
任意の符号語をpシンボル巡回シフトしたものがまた符号語となる準巡回符号の符号化装置の符号化方法であって、
qビット単位で入力される情報ビットを、pの倍数であるが、qの倍数ではない数のビットであるmpビットの情報ビットに変換し、
変換することによって得られた情報ビットをmpビットずつ処理してパリティビットを生成し、qビット単位で出力し、
生成したqビット単位のパリティビットを、パリティビットの生成の元になったqビット単位の情報ビットに付加して符号ビットとして出力する
ステップを含む符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、および符号化方法に関し、特に、必要なパラレル度を確保しつつ、符号化回路の構成を簡略化することができるようにした符号化装置、および符号化方法に関する。
【背景技術】
【０００２】
近年、誤り訂正符号として、Low-Density Parity-Check(LDPC)符号が注目されている（非特許文献１）。
【０００３】
LDPC符号のパリティ検査行列に特定の規則性をもたせると符号設計が容易になり、さらにその規則性を用いることで符号化回路や復号回路を構成しやすくなるという利点がある。特に、準巡回構造の規則性を用いたLDPC符号が多く研究されている（非特許文献２，３）。
【０００４】
任意の符号語をpシンボル巡回シフトしたものがまた符号語となる、符号長N=pL，情報語長Kの線形ブロック符号は、(N,K)準巡回符号(quasi-cyclic)と呼ばれている（非特許文献４）。
【０００５】
図１は、p=2の2元(12,7)準巡回符号のパリティ検査行列の例を示す図である。図１において、破線で区切った6行2列の各部分行列は、それぞれ、左隣の部分行列を下方向に1行だけ巡回シフトした構造になっている。
【０００６】
非特許文献４には、K段巡回シフトレジスタとそれに接続した複数のXOR回路からパリティビットを逐次出力する符号化回路が開示されている。また、特許文献１には、準巡回符号の別の符号化方法として、p個の生成多項式を繰り返し用いて組織符号に符号化する方法が開示されている。
【０００７】
特許文献１に記載された符号化方法は、全ての符号語が、次数の異なるp個の生成多項式の線形加算で表されるという性質を元にしている。つまり、任意の符号多項式c(x)は、次式（１）で表される。
【数１】
0005500357.tif 000002
【０００８】
式（１）において、qj(xp)はxpの多項式であり、gj(x)は、生成多項式と呼ばれる、次数がdeg(gi(x)) mod p = jを満たす最小次数の符号多項式である。
【０００９】
情報シンボル列を[a0 a1 ... aK-1]、パリティシンボル列を[-r0 -r1 ... -rN-K-1]とすると、情報多項式a(x)は次式（２）、パリティ多項式r(x)は次式（３）でそれぞれ表される。
【数２】
0005500357.tif 000003
【数３】
0005500357.tif 000004
【００１０】
このとき、組織符号化されたシンボル列[a0 a1 ... aK-1 -r0 -r1 ... -rN-K-1]は、符号多項式c(x) = a(x)xN-K - r(x)と表される。従って、組織符号化は、次式（４）を満たすパリティ多項式を求めることで行うことができる。
【数４】
0005500357.tif 000005
【００１１】
特許文献１および２には、情報シンボルをpビット単位で、またはpの倍数のビット単位で入力することにより、クロックサイクル毎の生成多項式の選択を必要とせず、簡易な回路によってパリティビットの生成が可能であることが記載されている。
【００１２】
図２は、情報ビットをmpビット単位で入力し、組織符号に符号化する符号化回路の構成例を示すブロック図である。
【００１３】
符号化回路１は、遅延回路１１、パリティ生成回路１２、およびマルチプレクサ１３から構成される。１クロックサイクル毎にmp（pの倍数）ビット単位で入力された情報ビットは、遅延回路１１とパリティ生成回路１２に入力される。また、図示せぬ制御回路から入力された制御信号は、パリティ生成回路１２とマルチプレクサ１３に入力される。
【００１４】
遅延回路１１は、mpビット単位で入力された情報ビットを、パリティ生成回路１２によるパリティビットの生成にかかる時間だけ遅延させ、マルチプレクサ１３に出力する。
【００１５】
パリティ生成回路１２は、入力された情報ビットに基づいてパリティビットを生成し、mpビット単位でマルチプレクサ１３に出力する。
【００１６】
マルチプレクサ１３は、遅延回路１１から供給された情報ビットに、パリティ生成回路１２により生成されたパリティビットを付加して符号ビットを生成し、mpビット単位で出力する。
【００１７】
図３は、図２のパリティ生成回路１２の構成例を示すブロック図である。
【００１８】
図３に示すように、パリティ生成回路１２は、組み合わせ回路２１とN-K段レジスタ２２から構成される。mpビットの情報ビットは組み合わせ回路２１に入力される。組み合わせ回路２１には制御信号も入力される。
【００１９】
N-K段レジスタ２２に記憶されている値（レジスタ値）は、mpビット単位で組み合わせ回路２１に入力される情報ビットと、前時刻のレジスタ値により更新される。K個の情報ビットとN-K個の0の入力が終了したとき、N-K段レジスタ２２内においてはパリティビットが求められている。
【００２０】
パリティビットが求められた後、N-K段レジスタ２２は、制御信号により、mpビット単位のシフトレジスタとして動作する。N-K段レジスタ２２において求められたパリティビットが、mpビット単位で出力される。
【００２１】
例えば、パリティ検査行列が図１のp=2の準巡回符号であり、特許文献２に記載されているようなパラレル度mp=4の符号化回路を構成する場合を考える。この場合、4つの生成多項式は次のようになる。
g0(x) = x8+x4+1
g1(x) = x5+x4+x3+1
g2(x) = x6+x3+x
g3(x) = x7+x4+x2+x+1
【００２２】
図４は、4ビット単位（パラレル度mp=4）でパラレル処理を行い、パリティビットを生成するパリティ生成回路１２の回路構成の例を示す図である。
【００２３】
図４に示すように、情報ビットは、パリティビットの数（N-K個）だけ0を追加した形で、入力端子Ｉ1乃至Ｉ4のそれぞれに１ビットずつ入力される。入力端子Ｉ1に入力された情報ビットはXOR回路Ｓ0-0に供給され、入力端子Ｉ2に入力された情報ビットはXOR回路Ｓ2-3に供給される。入力端子Ｉ3に入力された情報ビットはXOR回路Ｓ3-2に供給され、入力端子Ｉ4に入力された情報ビットはXOR回路Ｓ3-1に供給される。
【００２４】
入力端子Ｉ5には制御信号が入力される。情報ビットと0の入力が行われている間、制御信号として値1の信号が入力され、情報ビットと0の入力が終了したとき、制御信号として値0の信号が入力される。入力端子Ｉ5に入力された制御信号は、AND回路Ａ1乃至Ａ4に供給される。
【００２５】
レジスタＲ0は、XOR回路Ｓ1-0による演算結果の値を記憶する。レジスタＲ0に記憶された値を表す信号はXOR回路Ｓ0-4に供給される。
【００２６】
レジスタＲ1は、XOR回路Ｓ2-1による演算結果の値を記憶する。レジスタＲ1に記憶された値を表す信号は、AND回路Ａ1に供給されるとともに、パリティビットとして出力端子Ｏ4から出力される。
【００２７】
レジスタＲ2は、XOR回路Ｓ3-2による演算結果の値を記憶する。レジスタＲ2に記憶された値を表す信号は、AND回路Ａ2に供給されるとともに、パリティビットとして出力端子Ｏ3から出力される。
【００２８】
レジスタＲ3は、XOR回路Ｓ1-3による演算結果の値を記憶する。レジスタＲ3に記憶された値を表す信号は、AND回路Ａ3に供給されるとともに、パリティビットとして出力端子Ｏ2から出力される。
【００２９】
レジスタＲ4は、XOR回路Ｓ1-4による演算結果の値を記憶する。レジスタＲ4に記憶された値を表す信号は、AND回路Ａ4に供給されるとともに、パリティビットとして出力端子Ｏ1から出力される。
【００３０】
レジスタＲ0乃至Ｒ4により、図３のN-K段レジスタ２２が構成される。
【００３１】
XOR回路Ｓ0-0は、入力端子Ｉ1に入力された情報ビットと、AND回路Ａ4による演算結果の値に基づいて排他的論理和演算を行う。XOR回路Ｓ0-4は、レジスタＲ0に記憶された値と、AND回路Ａ4による演算結果の値に基づいて排他的論理和演算を行う。
【００３２】
破線＃０で囲んで示すように、XOR回路Ｓ0-0とＳ0-4を含む構成が、生成多項式g0(x)の演算を行う構成になる。XOR回路Ｓ0-0の場所は生成多項式g0(x)の次数が０の項（１）に対応し、XOR回路Ｓ0-4の場所は生成多項式g0(x)の次数が４の項に対応する。
【００３３】
XOR回路Ｓ3-0は、XOR回路Ｓ0-0による演算結果の値と、AND回路Ａ3による演算結果の値に基づいて排他的論理和演算を行う。XOR回路Ｓ3-1は、入力端子Ｉ4に入力された情報ビットと、AND回路Ａ3による演算結果の値に基づいて排他的論理和演算を行う。
【００３４】
XOR回路Ｓ3-2は、入力端子Ｉ3に入力された情報ビットと、AND回路Ａ3による演算結果の値に基づいて排他的論理和演算を行う。XOR回路Ｓ3-2による演算結果はレジスタＲ2に記憶される。XOR回路Ｓ3-4は、XOR回路Ｓ0-4による演算結果の値と、AND回路Ａ3による演算結果の値に基づいて排他的論理和演算を行う。
【００３５】
破線＃３で囲んで示すように、XOR回路Ｓ3-0，Ｓ3-1，Ｓ3-2，Ｓ3-4を含む構成が、生成多項式g3(x)の演算を行う構成になる。XOR回路Ｓ3-0の場所は生成多項式g３(x)の次数が０の項に対応し、XOR回路Ｓ3-1の場所は生成多項式g３(x)の次数が１の項に対応する。XOR回路Ｓ3-2の場所は生成多項式g３(x)の次数が２の項に対応し、XOR回路Ｓ3-4の場所は生成多項式g３(x)の次数が４の項に対応する。
【００３６】
XOR回路Ｓ2-1は、XOR回路Ｓ3-1による演算結果の値と、AND回路Ａ2による演算結果の値に基づいて排他的論理和演算を行う。XOR回路Ｓ2-1による演算結果はレジスタＲ1に記憶される。XOR回路Ｓ2-3は、入力端子Ｉ2に入力された情報ビットと、AND回路Ａ2による演算結果の値に基づいて排他的論理和演算を行う。
【００３７】
破線＃２で囲んで示すように、XOR回路Ｓ2-1とXOR回路Ｓ2-3を含む構成が、生成多項式g2(x)の演算を行う構成になる。XOR回路Ｓ2-1の場所は生成多項式g２(x)の次数が１の項に対応し、XOR回路Ｓ2-3の場所は生成多項式g２(x)の次数が３の項に対応する。
【００３８】
XOR回路Ｓ1-0は、XOR回路Ｓ3-0による演算結果の値と、AND回路Ａ1による演算結果の値に基づいて排他的論理和演算を行う。XOR回路Ｓ1-0による演算結果はレジスタＲ0に記憶される。XOR回路Ｓ1-3は、XOR回路Ｓ2-3による演算結果の値と、AND回路Ａ1による演算結果の値に基づいて排他的論理和演算を行う。XOR回路Ｓ1-3による演算結果はレジスタＲ3に記憶される。XOR回路Ｓ1-4は、XOR回路Ｓ3-4による演算結果の値と、AND回路Ａ1による演算結果の値に基づいて排他的論理和演算を行う。XOR回路Ｓ1-4による演算結果はレジスタＲ4に記憶される。
【００３９】
破線＃１で囲んで示すように、XOR回路Ｓ1-0，Ｓ1-3，Ｓ1-4を含む構成が、生成多項式g1(x)の演算を行う構成になる。XOR回路Ｓ1-0の場所は生成多項式g１(x)の次数が０の項に対応し、XOR回路Ｓ1-3の場所は生成多項式g１(x)の次数が３の項に対応する。XOR回路Ｓ1-4の場所は生成多項式g１(x)の次数が４の項に対応する。
【００４０】
図４のAND回路およびXOR回路により、図３の組み合わせ回路２１が構成される。
【００４１】
このような構成を有するパリティ生成回路１２においては、符号化を行う前に、全てのレジスタ（レジスタＲ0乃至Ｒ4）が0に初期化される。情報ビットは、パリティビットの数だけ0を追加した形で、１クロックサイクル毎に4ビット単位で入力される。情報ビットが入力されている間の制御信号の値は1になる。
【００４２】
全ての情報ビットと0の入力が終了したとき、レジスタＲ0乃至Ｒ4においては、それぞれパリティビットが求められている。レジスタＲ0乃至Ｒ4において求められた5ビットのパリティビットは、値0の制御信号が入力されることに応じて、出力端子Ｏ1乃至Ｏ4から4ビット単位で順次出力される。
【００４３】
このような構成を有するパリティ生成回路１２においては、パリティビットの生成に必要なクロックサイクル数はN/(mp)で表され、N-K段レジスタ２２からパリティビットを出力するのにかかるクロックサイクル数はceil((N-K)/(mp))で表される。このとき、符号化回路の出力の最大スループットTは、T=fN/(N/(mp)+ceil((N-K)/(mp)))となる。ceil(x)は、xを下回らない最小の整数を表す。
【００４４】
パリティ生成回路１２の必要パラレル度は、動作周波数と要求スループットから決定される。この場合において、パリティ生成回路１２に対する情報ビットの入力パラレル数は、パラレル度mpに等しい数である必要がある。また、パリティ出力のパラレル数に関しても、N-K段レジスタ２２のシフト動作を利用するため、パリティ生成回路１２の出力のパラレル度に等しい数である必要がある。
【先行技術文献】
【特許文献】
【００４５】
【特許文献１】特開２００４−０７２１３０号公報
【特許文献２】特開２０１０−０５６６６０号公報
【非特許文献】
【００４６】
【非特許文献１】R. G. Gallager, "Low-density parity-check codes," IRE Trans. Inform. Theory, vol. IT-8, pp. 21-28, Jan. 1962.
【非特許文献２】Y. Kou, S. Lin, M. P. C. Fossorier, "Low-density parity-check codes based on finite geometries: a rediscovery and new results," IEEE Trans. Inform. Theory, vol. 47, no. 7, pp. 2711-2736, Nov. 2001.
【非特許文献３】M. Noda, "Designing a self-orthogonal quasi-cyclic code with extended minimum Hamming distance," Proc. 4th Int. Sympo. Turbo Codes and Related Topics, Apr. 2006.
【非特許文献４】R. L. Townsend and E. J. Weldon, Jr., "Self-orthogonal quasi-cyclic codes," IEEE Trans. Inform. Theory, vol. IT-13, no. 2, pp. 183-195, Apr. 1967.
【発明の概要】
【発明が解決しようとする課題】
【００４７】
符号化回路の入出力シンボルのパラレル数は、符号化回路とともに装置内に設けられるメモリやその他の演算回路のインターフェースに合わせると、必ずしもpの倍数が望ましいとは限らない。ここでは、他の要因で決まる、符号化回路の入出力シンボルのパラレル数をqとする。
【００４８】
符号化回路の入出力シンボルのパラレル数を、メモリやその他の演算回路のインターフェースに合わせつつ、図４に示すようなパリティ生成回路を利用する方法としては、演算のパラレル度をpとqの最小公倍数mLpとし、符号化回路の前段に入力パラレル変換バッファを設け、符号化回路の後段に出力パラレル変換バッファを設ける方法が考えられる。
【００４９】
図５は、mLpビットパラレル符号化回路を用いて、入出力シンボルのパラレル数をqビットに合わせた符号化回路３１の構成を示すブロック図である。
【００５０】
図５に示すように、符号化回路３１には、mLpビットパラレル符号化回路４２の前段に入力パラレル変換バッファ４１が設けられ、mLpビットパラレル符号化回路４２の後段に出力パラレル変換バッファ４３が設けられる。
【００５１】
mLpビットパラレル符号化回路４２は、mLpビット単位で入力される情報ビットを組織符号化し、組織符号をmLpビット単位で出力する符号化回路である。mLpビットパラレル符号化回路４２は、入出力のパラレル数が異なる点を除いて、図２の構成と同じ構成を有する。
【００５２】
入力パラレル変換バッファ４１は、入力される情報ビットをmLp/qクロックサイクル分蓄積し、mLpビット単位で、mLpビットパラレル符号化回路４２に供給する。
【００５３】
出力パラレル変換バッファ４３は、mLpビットパラレル符号化回路４２からmLpビット単位で出力される符号ビットを、qビット単位で、mLp/qクロックサイクルに分割して出力する。
【００５４】
これにより、生成多項式を用いたパリティ生成回路を利用しつつ、符号化回路（符号化回路３１）の入出力シンボルのパラレル数をメモリやその他の演算回路のインターフェースに合わせることができる。
【００５５】
しかしながら、図５の構成を採用した場合、演算パラレル度mLpが、回路動作周波数と要求スループットから決まる、必要なパラレル度を大きく上回ることがある。演算パラレル度mLpが必要パラレル度を大きく上回る場合、符号化回路の回路規模が必要以上に大きくなってしまう。
【００５６】
例えば、p=15の(1440,1344)準巡回符号を考える。この場合において、動作周波数f=216MHz、符号化回路に要求される出力スループットを3456Mbpsとしたとき、符号化回路の出力の最大スループットTが3456Mbps以上となるためには、m≧2、つまり、演算パラレル度がmp≧30であれば十分である。
【００５７】
一方、他の要因で決まる符号化回路への入出力パラレル数qが16である場合、図５を参照して説明したようにして図４のパリティ生成回路を用いて符号化回路を実現するためには、演算のパラレル度をp=15とq=16の最小公倍数mLp=240とする必要がある。
【００５８】
図６は、q=16ビット入力を240ビットパラレルに変換する入力パラレル変換バッファ４１におけるバッファ蓄積量の遷移を示す図である。
【００５９】
図６の横軸はクロックサイクル数を表し、縦軸は入力パラレル変換バッファ４１のバッファ蓄積量を表す。図６に示すように、16ビット単位で入力された情報ビットが15クロックサイクル時間分蓄積される毎に、それまでに蓄積された240ビットが後段のmLpビットパラレル符号化回路４２に出力される。
【００６０】
従って、240ビットの情報ビットが出力されたタイミングの次のクロックサイクル（16クロックサイクル目）のタイミングでは、新たに入力された16ビットだけが蓄積されることになる。また、mLpビットパラレル符号化回路４２内のパリティ生成回路においては、15クロックサイクルに一度のタイミングで、規則的に、レジスタの値が更新されることになる。
【００６１】
しかし、演算のパラレル度を240とした場合、回路動作周波数と要求スループットから決まる必要パラレル度の30を大きく上回り、回路が複雑になってしまう。
【００６２】
本発明はこのような状況に鑑みてなされたものであり、必要なパラレル度を確保しつつ、符号化回路の構成を簡略化することができるようにするものである。
【課題を解決するための手段】
【００６３】
本発明の一側面の符号化装置は、任意の符号語をpシンボル巡回シフトしたものがまた符号語となる準巡回符号の符号化装置であって、qビット単位で入力される情報ビットを、pの倍数であるが、qの倍数ではない数のビットであるmpビットの情報ビットに変換するパラレル変換回路と、前記パラレル変換回路により変換されることによって得られた情報ビットをmpビットずつ処理してパリティビットを生成し、qビット単位で出力するパリティ生成回路と、前記パリティ生成回路により生成されたqビット単位のパリティビットを、パリティビットの生成の元になったqビット単位の情報ビットに付加して符号ビットとして出力する符号化回路とを備える。
【００６４】
前記パリティ生成回路にはレジスタを設けることができる。この場合、前記パリティ生成回路には、パリティビットを生成した後、生成したパリティビットを、１クロックサイクル毎にqビット単位で出力させる。
【００６６】
前記パラレル変換回路には、１クロックサイクル毎にqビット単位で入力される情報ビットを蓄積するバッファを設けることができる。この場合、前記パラレル変換回路には、バッファに蓄積された情報ビットの量がmpビットを超えたタイミングで、蓄積された情報ビットのうち、先に入力された情報ビットから順に、mpビットの情報ビットを１クロックサイクル毎に出力させることができる。
【００６７】
本発明の一側面の符号化方法は、任意の符号語をpシンボル巡回シフトしたものがまた符号語となる準巡回符号の符号化装置の符号化方法であって、qビット単位で入力される情報ビットを、pの倍数であるが、qの倍数ではない数のビットであるmpビットの情報ビットに変換し、変換することによって得られた情報ビットをmpビットずつ処理してパリティビットを生成し、qビット単位で出力し、生成したqビット単位のパリティビットを、パリティビットの生成の元になったqビット単位の情報ビットに付加して符号ビットとして出力するステップを含む。
【００６８】
本発明の一側面においては、qビット単位で入力される情報ビットが、pの倍数であるが、qの倍数ではない数のビットであるmpビットの情報ビットに変換され、変換されることによって得られた情報ビットがmpビットずつ処理されてパリティビットが生成され、qビット単位で出力される。また、生成されたqビット単位のパリティビットが、パリティビットの生成の元になったqビット単位の情報ビットに付加されて符号ビットとして出力される。
【発明の効果】
【００６９】
本発明によれば、必要なパラレル度を確保しつつ、符号化回路の構成を簡略化することができる。
【図面の簡単な説明】
【００７０】
【図１】パリティ検査行列の例を示す図である。
【図２】従来の符号化回路の構成例を示すブロック図である。
【図３】図２のパリティ生成回路の構成例を示すブロック図である。
【図４】図２のパリティ生成回路の回路構成の例を示す図である。
【図５】従来の符号化回路の他の構成例を示すブロック図である。
【図６】図５の入力パラレル変換バッファのバッファ蓄積量の遷移を示す図である。
【図７】本発明の一実施形態に係る符号化回路の構成例を示すブロック図である。
【図８】図７の入力パラレル変換回路の構成例を示すブロック図である。
【図９】図７の入力パラレル変換回路のバッファ蓄積量の遷移を示す図である。
【図１０】図７のパリティ生成回路の構成例を示すブロック図である。
【図１１】図７のパリティ生成回路の回路構成の例を示す図である。
【図１２】図１１の構成の一部を示す図である。
【図１３】図４の構成の一部を示す図である。
【図１４】図７の符号化回路の処理について説明するフローチャートである。
【図１５】符号化回路の他の構成例を示すブロック図である。
【図１６】図１５のパリティ生成回路の構成例を示すブロック図である。
【図１７】図１５のパリティ生成回路の回路構成の例を示す図である。
【図１８】図１５の符号化回路の処理について説明するフローチャートである。
【図１９】通信システムの構成を示す図である。
【図２０】記録システムの構成を示す図である。
【発明を実施するための形態】
【００７１】
［符号化回路の構成］
図７は、本発明の一実施形態に係る符号化回路の構成例を示すブロック図である。
【００７２】
図７に示すように、情報ビットの入力と符号ビットの出力がともにqビットパラレルである準巡回符号の符号化回路５１は、入力のパラレル度がqの倍数ではないパラレル度mpのパリティ生成回路６３を有している。qは、上述したような他の要因で決まる入出力シンボルのパラレル数である。
【００７３】
また、符号化回路５１は、遅延回路６１、入力パラレル変換回路６２、およびマルチプレクサ６４を有している。入力パラレル変換回路６２は、パリティ生成回路６３の前段に設けられる。１クロックサイクル毎にqビット単位で入力される情報ビットは、遅延回路６１と入力パラレル変換回路６２に供給される。また、図示せぬ制御回路から入力された制御信号はパリティ生成回路６３とマルチプレクサ６４に入力される。
【００７４】
遅延回路６１は、qビット単位で入力された情報ビットを、入力パラレル変換回路６２による変換と、パリティ生成回路６３によるパリティビットの生成にかかる時間だけ遅延させ、マルチプレクサ６４に出力する。
【００７５】
入力パラレル変換回路６２は、パラレル数qの情報ビットをパラレル数mpの情報ビットに変換し、パリティ生成回路６３に出力する。入力パラレル変換回路６２を設けることにより、パリティ生成回路６３の入力のパラレル度をqの倍数とする必要がなくなる。
【００７６】
具体的には、入力パラレル変換回路６２は、１クロックサイクル毎にqビット単位で入力される情報ビットを内部のバッファに蓄積（記憶）し、蓄積した情報ビットがmpビット以上になったタイミングで、蓄積した情報ビットのうち、蓄積した順にmpビット分の情報ビットをパリティ生成回路６３に出力し、残りの情報ビットを蓄積し続ける。
【００７７】
図８は、入力パラレル変換回路６２の構成例を示すブロック図である。
【００７８】
図８に示すように、入力パラレル変換回路６２は、バッファ７１とバッファ制御回路７２から構成される。
【００７９】
バッファ７１は、１クロックサイクル毎にqビット単位で入力される情報ビットを蓄積する。
【００８０】
バッファ制御回路７２は、バッファ７１の情報ビットの蓄積量を監視し、蓄積された情報ビットがmpビット以上になったタイミングで、先に蓄積した情報ビットから順に、mpビット単位でパリティ生成回路６３に出力させる。また、バッファ制御回路７２は、イネーブル信号をパリティ生成回路６３に出力する。イネーブル信号の値は、バッファ７１からmpビット単位の情報ビットを出力するタイミングでは１であり、それ以外のタイミングでは０である。
【００８１】
図７の説明に戻り、パリティ生成回路６３は、mpビット単位で入力された情報ビットに基づいてパリティビットを生成し、qビット単位でマルチプレクサ６４に出力する。パリティ生成回路６３においては、入力パラレル変換回路６２のバッファ７１の情報ビットの蓄積量がmpビット以上になったタイミングで、レジスタの更新が行われることになる。
【００８２】
マルチプレクサ６４は、遅延回路６１から供給された情報ビットに、パリティ生成回路６３により生成されたパリティビットを付加して符号ビットを生成し、qビット単位で出力する。パリティ生成回路６３により生成されたパリティビットは、遅延回路６１において遅延された、パリティビットの生成に用いられた情報ビットと同じ情報ビットに付加されることになる。
【００８３】
このように、pとqの最小公倍数mLpよりも小さなパラレル度を持つパリティ生成回路６３を用いて、情報ビットの入力と符号ビットの出力がともにqビットパラレルである準巡回符号の符号化回路を実現することが可能になる。すなわち、図５のmLpビットパラレル符号化回路４２を用いた符号化回路３１と較べて、回路構成を簡略化することが可能になる。
【００８４】
図９は、q=16，mp=30とし、16ビットパラレルの情報ビットを30ビットパラレルの情報ビットに変換する入力パラレル変換回路６２のバッファ蓄積量の遷移を示す図である。
【００８５】
図９の横軸はクロックサイクル数を表し、縦軸はバッファ７１のバッファ蓄積量を表す。
【００８６】
符号化回路５１には、１クロックサイクル毎に16ビットの情報ビットが入力される。図９に示すように、最初のクロックサイクル（１クロックサイクル目）のタイミングでは、バッファ７１には16ビットの情報ビットが蓄積される。
【００８７】
次のクロックサイクル（２クロックサイクル目）のタイミングでは、１クロックサイクル目に蓄積された16ビットの情報ビットと、2クロックサイクル目に新たに入力された16ビットの情報ビットの、あわせて32ビットが蓄積される。
【００８８】
このとき、バッファ７１に蓄積された情報ビットが、パリティ生成回路６３のパラレル度以上（mp=30以上）になるため、最初のクロックサイクルで入力された16ビットの情報ビットと、2クロックサイクル目に入力された16ビットのうちの14ビットの情報ビットの、あわせて30ビットがパリティ生成回路６３に出力される。また、2クロックサイクル目に入力された16ビットのうちの、出力された14ビットを除く残りの2ビットがバッファ７１に蓄積され続ける。
【００８９】
次のクロックサイクル（3クロックサイクル目）のタイミングでは、2クロックサイクル目に出力されずに残った2ビットの情報ビットと、新たに入力された16ビットの情報ビットの、あわせて18ビットが蓄積される。
【００９０】
入力パラレル変換回路６２においては、以上の処理が繰り返される。
【００９１】
例えば15クロックサイクル目までに注目すると、１クロックサイクル目から15クロックサイクル目までのうち、図９に示すように2,4,6,8,10,12,14,15クロックサイクル目において、バッファ７１に蓄積された情報ビットが30ビット以上になる。このタイミングで、入力パラレル変換回路６２は30ビットの情報ビットをパリティ生成回路６３に出力する。パリティ生成回路６３は、入力パラレル変換回路６２から供給された30ビットの情報ビットに基づいてレジスタ値を更新する。
【００９２】
図６を参照して説明したように、16ビット入力を240ビットパラレルに変換する図５の入力パラレル変換バッファ４１から情報ビットが出力されるタイミングは、15クロックサイクルに1回の規則的なタイミングである。これに対して、図７の入力パラレル変換回路６２から情報ビットが出力されるタイミングは、1クロックサイクルおき、あるいは、連続したクロックサイクルのタイミングになる。14クロックサイクル目と15クロックサイクル目においては情報ビットが連続して出力される。
【００９３】
パリティ生成回路６３のレジスタ更新の間隔が不規則になるため、レジスタ更新のタイミング（30ビットの出力タイミング）を指示するイネーブル信号が、入力パラレル変換回路６２からパリティ生成回路６３に供給される。パリティ生成回路６３においては、入力パラレル変換回路６２から値１のイネーブル信号が供給されたとき、レジスタの値を更新する動作が行われる。
【００９４】
図１０は、図７のパリティ生成回路６３の構成例を示すブロック図である。
【００９５】
図１０に示すように、パリティ生成回路６３は、組み合わせ回路８１とN-K段レジスタ８２から構成される。入力パラレル変換回路６２からmpビット単位で出力された情報ビットと、符号化回路５１の外部から供給された制御信号は組み合わせ回路８１に入力される。また、入力パラレル変換回路６２から出力されたイネーブル信号はN-K段レジスタ８２に入力される。
【００９６】
0で初期化されたN-K段レジスタ８２に保持されている値は、mpビット単位で組み合わせ回路８１に入力される情報ビットと、前時刻のレジスタ値により更新される。最後にN-K個の0が入力された後、N-K段レジスタ８２内にパリティビットが求められている。
【００９７】
パリティビットが求められた後、N-K段レジスタ８２は、制御信号により、qビット単位のシフトレジスタとして動作する。N-K段レジスタ８２により求められたパリティビットが、qビット単位でマルチプレクサ６４に出力される。
【００９８】
図１１は、4ビット単位（パラレル度mp=4）で入力される情報ビットに基づいてパリティビットを生成し、3ビット単位（q=3）でパリティビットを出力するパリティ生成回路６３の回路構成の例を示す図である。
【００９９】
上述したように、パリティ検査行列が図１に示すp=2の準巡回符号である場合、パラレル度mp=4の符号化回路における4つの生成多項式は次のようになる。
g0(x) = x8+x4+1
g1(x) = x5+x4+x3+1
g2(x) = x6+x3+x
g3(x) = x7+x4+x2+x+1
【０１００】
図１１において、図４に示す構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【０１０１】
図１１に示すように、入力パラレル変換回路６２から出力された情報ビットは、パリティビットの数だけ0を追加した形で、１クロックサイクル毎に入力端子Ｉ1乃至Ｉ4のそれぞれに１ビットずつ入力される。
【０１０２】
入力端子Ｉ5には制御信号が入力される。パリティ生成回路６３に対してK=7個の情報ビットとN-K=5個の0の入力が行われている間、制御信号の値は1であり、情報ビットと0の入力が終了したとき、制御信号の値は0になる。入力端子Ｉ5に入力された制御信号は、選択回路ｓ１とｓ２に供給される。
【０１０３】
入力端子Ｉ6には、入力パラレル変換回路６２から出力されたイネーブル信号が入力される。イネーブル信号の値は、入力パラレル変換回路６２からパリティ生成回路６３に情報ビットが供給されるタイミングでは1であり、それ以外のタイミングでは0である。
【０１０４】
レジスタＲ0は、イネーブル信号の値が１であるとき値の更新動作を行い、XOR回路Ｓ1-0による演算結果の値を記憶する。レジスタＲ0に記憶された値を表す信号はXOR回路Ｓ0-4に供給されるとともに、選択回路ｓ１に供給される。
【０１０５】
レジスタＲ1は、イネーブル信号の値が１であるとき値の更新動作を行い、XOR回路Ｓ2-1による演算結果の値を記憶する。レジスタＲ1に記憶された値を表す信号は、選択回路ｓ２に供給されるとともに、XOR回路Ｓ1-0，Ｓ1-3，Ｓ1-4に供給される。
【０１０６】
レジスタＲ2は、イネーブル信号の値が１であるとき値の更新動作を行い、XOR回路Ｓ3-2による演算結果の値を記憶する。レジスタＲ2に記憶された値を表す信号は、レジスタＲ5に供給されるとともに、XOR回路Ｓ2-1とＳ2-3に供給される。
【０１０７】
レジスタＲ3は、イネーブル信号の値が１であるとき値の更新動作を行い、選択回路ｓ１により選択された信号により表される値を記憶する。レジスタＲ3に記憶された値を表す信号は、XOR回路Ｓ3-0，Ｓ3-1，Ｓ3-2，Ｓ3-4に供給されるとともに、パリティビットとして出力端子Ｏ2から出力される。
【０１０８】
レジスタＲ4は、イネーブル信号の値が１であるとき値の更新動作を行い、選択回路ｓ２により選択された信号により表される値を記憶する。レジスタＲ4に記憶された値を表す信号は、XOR回路Ｓ0-0とＳ0-4に供給されるとともに、パリティビットとして出力端子Ｏ1から出力される。
【０１０９】
レジスタＲ5は、レジスタＲ2から出力された信号により表される値を記憶する。レジスタＲ5に記憶された値を表す信号は、パリティビットとして出力端子Ｏ3から出力される。
【０１１０】
選択回路ｓ１は、値1の制御信号が供給されている場合、XOR回路Ｓ1-3による演算結果を表す信号を選択し、レジスタＲ3に出力する。また、選択回路ｓ１は、値0の制御信号が供給されている場合、レジスタＲ0に記憶された値を表す信号を選択し、レジスタＲ3に出力する。
【０１１１】
選択回路ｓ２は、値1の制御信号が供給されている場合、XOR回路Ｓ1-4による演算結果を表す信号を選択し、レジスタＲ4に出力する。また、選択回路ｓ２は、値0の制御信号が供給されている場合、レジスタＲ1に記憶された値を表す信号を選択し、レジスタＲ4に出力する。
【０１１２】
レジスタＲ0乃至Ｒ5、および選択回路ｓ１，ｓ2が、図１０のN-K段レジスタ８２に対応する。
【０１１３】
XOR回路Ｓ0-0は、入力端子Ｉ1に入力された情報ビットと、レジスタＲ4に記憶された値に基づいて排他的論理和演算を行う。XOR回路Ｓ0-4は、レジスタＲ0に記憶された値と、レジスタＲ4に記憶された値に基づいて排他的論理和演算を行う。
【０１１４】
XOR回路Ｓ3-0は、XOR回路Ｓ0-0による演算結果の値と、レジスタＲ3に記憶された値に基づいて排他的論理和演算を行う。XOR回路Ｓ3-1は、入力端子Ｉ4に入力された情報ビットと、レジスタＲ3に記憶された値に基づいて排他的論理和演算を行う。
【０１１５】
XOR回路Ｓ3-2は、入力端子Ｉ3に入力された情報ビットと、レジスタＲ3に記憶された値に基づいて排他的論理和演算を行う。XOR回路Ｓ3-2による演算結果はレジスタＲ2に記憶される。XOR回路Ｓ3-4は、XOR回路Ｓ0-4による演算結果の値と、レジスタＲ3に記憶された値に基づいて排他的論理和演算を行う。
【０１１６】
XOR回路Ｓ2-1は、XOR回路Ｓ3-1による演算結果の値と、レジスタＲ2に記憶された値に基づいて排他的論理和演算を行う。XOR回路Ｓ2-1による演算結果はレジスタＲ1に記憶される。XOR回路Ｓ2-3は、入力端子Ｉ2に入力された情報ビットと、レジスタＲ2に記憶された値に基づいて排他的論理和演算を行う。
【０１１７】
XOR回路Ｓ1-0は、XOR回路Ｓ3-0による演算結果の値と、レジスタＲ1に記憶された値に基づいて排他的論理和演算を行う。XOR回路Ｓ1-0による演算結果はレジスタＲ0に記憶される。XOR回路Ｓ1-3は、XOR回路Ｓ2-3による演算結果の値と、レジスタＲ1に記憶された値に基づいて排他的論理和演算を行う。XOR回路Ｓ1-3による演算結果を表す信号は選択回路ｓ１に供給される。XOR回路Ｓ1-4は、XOR回路Ｓ3-4による演算結果の値と、レジスタＲ1に記憶された値に基づいて排他的論理和演算を行う。XOR回路Ｓ1-4による演算結果を表す信号は選択回路ｓ２に供給される。
【０１１８】
図１１のXOR回路が、図１０の組み合わせ回路８１に対応する。
【０１１９】
図１２は、図１１の構成の一部を示す図である。
【０１２０】
図１２Ａはk≧mpである部分の構成を示し、図１２Ｂはq≦k<mpである部分の構成を示す。時刻iのN-K段レジスタ８２の値（N-K段レジスタ８２のレジスタの値）をRk[i]とする。kは、0からN-K-1までの整数である。
【０１２１】
k=4とすると、図１２ＡのRk[i]は、時刻iにおける図１１のレジスタＲ4の値に対応する。また、図１１の例においてはmp=4，q=3であるから、図１２ＡのRk-q[i]は、時刻iにおける図１１のレジスタＲ1の値に対応し、Rk-mp[i]は、時刻iにおける図１１のレジスタＲ0の値に対応する。
【０１２２】
k=3とすると、図１２ＢのRk[i]は、時刻iにおける図１１のレジスタＲ3の値に対応する。また、図１２ＢのRk-q[i]は、時刻iにおける図１１のレジスタＲ0の値に対応する。
【０１２３】
このとき、レジスタＲ4には、図１２Ａに示すように、レジスタＲ0の値から、選択信号の値が1となる場所に対応した、生成多項式のx4の係数のそれぞれが減算された値が入力される。イネーブル信号の値が1であるときにレジスタＲ4の値が更新される。
【０１２４】
また、レジスタＲ3には、図１２Ｂに示すように、入力端子Ｉ2に入力された情報ビットa0, a4または0から、選択信号の値が1となる場所に対応した、生成多項式のx3の係数のそれぞれが減算された値が入力される。イネーブル信号の値が1であるときにレジスタＲ3の値が更新される。
【０１２５】
K=7個の情報ビットおよびN-K=5個の0の入力が終了した場合、制御信号の値は0になる。このとき、レジスタＲ4には、図１２Ａに示すようにレジスタＲ1の値を表す信号が入力され、レジスタＲ4の値が更新される。また、レジスタＲ3には、図１２Ｂに示すようにレジスタＲ0の値を表す信号が入力され、レジスタＲ3の値が更新される。
【０１２６】
これにより、K個の情報ビットおよびN-K個の0の入力が終了したタイミングでは、レジスタＲ4からパリティビットr0が出力され、レジスタＲ3からパリティビットr1が出力される。
【０１２７】
次の時刻には、レジスタＲ2に記憶されている値を1時刻だけ遅延させたレジスタＲ5からパリティビットr2が出力される。また、レジスタＲ4からパリティビットr3が出力され、レジスタＲ3からパリティビットr4が出力される。
【０１２８】
このように、N-K段レジスタ８２のパリティビット出力時の動作は、q=3ビット単位のシフトレジスタの動作となり、その出力は3ビットのパラレル出力になる。
【０１２９】
図１１の例においては、パリティビットの生成に必要なクロックサイクル数はN/(mp)、N-K段レジスタ８２からパリティビットを出力するのにかかるクロックサイクル数はceil((N-K)/q)で求められる。このとき、符号化回路５１の出力の最大スループットTは、T=fN/(N/(mp)+ceil((N-K)/q))となる。
【０１３０】
図１３は、図４に示すパリティ生成回路１２の構成の一部を示す図である。
【０１３１】
図１３Ａはk≧mpである部分の構成を示し、図１３Ｂはk<mpである部分の構成を示す。
【０１３２】
k=4とすると、図１３ＡのRk[i]は、時刻iにおける図４のレジスタＲ4の値に対応する。また、図４の例においてはmp=4であるから、図１３ＡのRk-mp[i]は、時刻iにおける図４のレジスタＲ0の値に対応する。k=3とすると、図１３ＢのRk[i]は、時刻iにおける図４のレジスタＲ3の値に対応する。
【０１３３】
時刻i+1のレジスタ値Rk[i+1]は、時刻iのレジスタ値Rk-mp[i]または情報ビット、選択信号、および制御信号から決定される。図１３Ａにおいては、レジスタ値Rk[i+1]が、時刻iのレジスタ値Rk-mp[i]、選択信号、および制御信号から決定される。一方、図１３Ｂにおいては、レジスタ値Rk[i+1]が、時刻iの情報ビット、選択信号、および制御信号から決定される。制御信号の値は、情報ビットが入力される区間は１とされる。選択信号の値が１のとき、生成多項式の係数の減算が実施される。
【０１３４】
情報ビットの入力が終了し、制御信号の値が0になったとき、時刻i+1のレジスタ値Rk[i+1]は、単に、時刻iのレジスタ値Rk-mp[i]、または情報ビットがシフトして置き換わる。つまり、N-K段レジスタ２２は、mpビット単位のシフト動作を行う回路になる。そのため、図３のパリティ生成回路１２は、パリティビット出力のパラレル度がmpになっている。
【０１３５】
いま、符号化回路の入出力を、図７の符号化回路５１のようにqビットパラレルとする場合を考える。この場合、図４の構成を用いたときには、mpビットからqビットへの変換を行う回路をパリティ生成回路１２の後段に設ける必要がある。しかし、パリティ生成回路１２に対する情報ビットの入力が終了したとき、N-K段レジスタ２２においてはパリティビットが求められているため、一旦、パリティビットをパリティ生成回路１２からmpビットパラレルで出力し、その変換回路においてqビットパラレルに変換するのは無駄である。図１１の構成を採用することにより、このような無駄を省くことが可能になる。
【０１３６】
［符号化処理］
ここで、図１４のフローチャートを参照して、図７の符号化回路５１の処理について説明する。図１４の処理は、Kビットの情報ビットを符号化する毎に行われる。
【０１３７】
ステップＳ１において、符号化回路５１の遅延回路６１は、qビット単位で入力された情報ビットを遅延させ、マルチプレクサ６４は遅延したqビットの情報ビットを出力する。
【０１３８】
ステップＳ２において、入力パラレル変換回路６２は、qビット単位で入力される情報ビットをバッファ７１（図８）に蓄積する。
【０１３９】
ステップＳ３において、バッファ制御回路７２は、バッファ７１の情報ビットの蓄積量がmpビットを超えたか否かを判定し、超えていないと判定した場合、ステップＳ１に戻り、それ以降の処理を繰り返す。
【０１４０】
バッファ７１の情報ビットの蓄積量がmpビットを超えたとステップＳ３において判定した場合、ステップＳ４において、バッファ制御回路７２は、バッファ７１に蓄積された情報ビットのうち、mpビット分の情報ビットをパリティ生成回路６３に出力する。
【０１４１】
ステップＳ５において、パリティ生成回路６３は、mpビット単位で入力された情報ビットに基づいてパリティビットを生成するための演算を行う。
【０１４２】
ステップＳ６において、制御信号が0かどうかを判定し、0でないと判定した場合、ステップ１に戻り、それ以降の処理を繰り返す。
【０１４３】
制御信号が0であるとステップＳ６において判定した場合、ステップＳ７において、パリティ生成回路６３は、生成したパリティビットをqビット単位でマルチプレクサ６４に出力し、マルチプレクサ６４は、生成したパリティビットをqビット単位で出力する。
【０１４４】
［符号化回路の他の構成］
図１５は、本発明の一実施形態に係る符号化回路の他の構成例を示すブロック図である。
【０１４５】
図１５に示す構成のうち、図７に示す構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【０１４６】
図１５の例においては、図７のパリティ生成回路６３に代えてパリティ生成回路９１が設けられ、パリティ生成回路９１の後段にパリティパラレル変換バッファ９２が設けられている。１クロックサイクル毎にqビット単位で入力される情報ビットは、遅延回路６１と入力パラレル変換回路６２に供給される。また、図示せぬ制御回路から入力された制御信号は、パリティパラレル変換バッファ９２とマルチプレクサ６４に入力される。
【０１４７】
パリティ生成回路９１は、入力パラレル変換回路６２からmpビット単位で入力された情報ビットに基づいてパリティビットを生成し、N-Kビット同時にパリティパラレル変換バッファ９２に出力する。パリティ生成回路９１においても、入力パラレル変換回路６２のバッファ７１の情報ビットの蓄積量がmpビット以上になったタイミングで、レジスタの更新が行われる。
【０１４８】
パリティパラレル変換バッファ９２は、制御信号の値が0であるとき、パリティ生成回路９１からN-Kビット同時に出力されたパリティビットを一時的に記憶し、qビット単位で出力する。パリティ生成回路９１に対してK個の情報ビットとN-K個の0の入力が行われている間、制御信号の値は1であり、情報ビットと0の入力が終了したとき、制御信号の値は0になる。
【０１４９】
図１５の構成においては、演算により求められたパリティビットをN-K段レジスタを用いてqビット単位でパリティ生成回路９１から出力するのではなく、N-Kビットのパリティビットをパリティパラレル変換バッファ９２に一時的に記憶させ、パリティパラレル変換バッファ９２をqビット単位のシフトレジスタとして機能させることで、パリティビットのqビットパラレル出力を実現するようになされている。すなわち、パリティ生成回路９１内のN-K段レジスタは、図１０のN-K段レジスタ８２とは異なりシフトレジスタとしては動作しない。
【０１５０】
マルチプレクサ６４は、遅延回路６１から供給された情報ビットに、パリティパラレル変換バッファ９２からqビット単位で供給されたパリティビットを付加することによって符号ビットを生成し、qビット単位で出力する。パリティ生成回路９１により生成されたパリティビットは、遅延回路６１において遅延された、パリティビットの生成に用いられた情報ビットと同じ情報ビットに付加される。
【０１５１】
図１６は、図１５のパリティ生成回路９１の構成例を示すブロック図である。
【０１５２】
図１６に示すように、パリティ生成回路９１は、組み合わせ回路１０１とN-K段レジスタ１０２から構成される。入力パラレル変換回路６２から出力されたmpビットの情報ビットは組み合わせ回路１０１に入力される。また、入力パラレル変換回路６２から出力されたイネーブル信号はN-K段レジスタ１０２に入力される。シフトレジスタとしての動作を行わないから、外部から符号化回路５１に入力された制御信号はパリティ生成回路９１には入力されない。
【０１５３】
0で初期化されたN-K段レジスタ１０２に保持されている値は、mpビット単位で組み合わせ回路１０１に入力される情報ビットと、前時刻のレジスタ値により更新される。最後にN-K個の0が入力された後、N-K段レジスタ１０２内にパリティビットが求められている。求められたN-Kビットのパリティビットは、パリティパラレル変換バッファ９２に一度に出力される。
【０１５４】
図１７は、4ビット単位（パラレル度mp=4）で入力される情報ビットに基づいてパリティビットを生成し、5ビット（N-K=5）同時に出力するパリティ生成回路９１の回路構成の例を示す図である。
【０１５５】
図１７に示すように、パリティ生成回路９１は、選択回路が設けられていない点と制御信号が入力されない点を除いて、図１１のパリティ生成回路６３の構成と同様の構成を有する。重複する説明については適宜省略する。
【０１５６】
入力パラレル変換回路６２から出力された情報ビットは、パリティビットの数だけ0を追加した形で、１クロックサイクル毎に入力端子Ｉ1乃至Ｉ4のそれぞれに１ビットずつ入力される。
【０１５７】
入力端子Ｉ6には、入力パラレル変換回路６２から出力されたイネーブル信号が入力される。イネーブル信号の値は、入力パラレル変換回路６２（バッファ７１）からパリティ生成回路９１に情報ビットが供給されるタイミングでは1であり、それ以外のタイミングでは0である。
【０１５８】
レジスタＲ0は、イネーブル信号の値が１であるとき値の更新動作を行い、XOR回路Ｓ1-0による演算結果の値を記憶する。レジスタＲ0に記憶された値を表す信号はXOR回路Ｓ0-4に供給されるとともに、パリティビットとして出力端子Ｏ5から出力される。
【０１５９】
レジスタＲ1は、イネーブル信号の値が１であるとき値の更新動作を行い、XOR回路Ｓ2-1による演算結果の値を記憶する。レジスタＲ1に記憶された値を表す信号は、XOR回路Ｓ1-0，Ｓ1-3，Ｓ1-4に供給されるとともに、パリティビットとして出力端子Ｏ4から出力される。
【０１６０】
レジスタＲ2は、イネーブル信号の値が１であるとき値の更新動作を行い、XOR回路Ｓ3-2による演算結果の値を記憶する。レジスタＲ2に記憶された値を表す信号は、XOR回路Ｓ2-1とＳ2-3に供給されるとともに、パリティビットとして出力端子Ｏ3から出力される。
【０１６１】
レジスタＲ3は、イネーブル信号の値が１であるとき値の更新動作を行い、XOR回路Ｓ1-3による演算結果の値を記憶する。レジスタＲ3に記憶された値を表す信号は、XOR回路Ｓ3-0，Ｓ3-1，Ｓ3-2，Ｓ3-4に供給されるとともに、パリティビットとして出力端子Ｏ2から出力される。
【０１６２】
レジスタＲ4は、イネーブル信号の値が１であるとき値の更新動作を行い、XOR回路Ｓ1-4による演算結果の値を記憶する。レジスタＲ4に記憶された値を表す信号は、XOR回路Ｓ0-0とＳ0-4に供給されるとともに、パリティビットとして出力端子Ｏ1から出力される。
【０１６３】
レジスタＲ0乃至Ｒ4が、図１６のN-K段レジスタ１０２に対応する。また、図１７に示すXOR回路が、図１６の組み合わせ回路１０１に対応する。
【０１６４】
図１７に示すように、例えばK=7個の情報ビットとN-K=5個の0の入力が終了したとき、レジスタＲ0乃至Ｒ4にはパリティビットが求められている。求められた5ビット全てのパリティビットは同時に出力され、後段のパリティパラレル変換バッファ９２に記憶される。パリティパラレル変換バッファ９２がq=3ビット単位のシフトレジスタとして動作することによって、パリティビットの3ビットパラレル出力（マルチプレクサ６４に対する入力）が実現される。
【０１６５】
これにより、シフトレジスタ動作を行うための制御を、パリティ生成回路（パリティ生成回路９１）を対象として行う必要がなくなる。
【０１６６】
図１５の構成は、図７の構成と比べて、パリティパラレル変換バッファ９２のメモリであるN-Kビット分のメモリを多く用意する必要がある。しかし、パリティビットをパリティ生成回路９１から出力している間はN-K段レジスタ１０２が利用されないため、次の符号語の符号化を連続して行わせることができ、これにより、より高いスループットを実現することが可能になる。図１７の構成の場合、符号化回路５１の出力の最大スループットTはT=fmpにより表される。
【０１６７】
［符号化処理］
ここで、図１８のフローチャートを参照して、図１５の符号化回路５１の処理について説明する。図１８の処理は、Kビットの情報ビットを符号化する毎に行われる。
【０１６８】
図１８のステップＳ１１乃至Ｓ１５の処理は、図１４のステップＳ１乃至Ｓ５の処理と同じ処理である。すなわち、ステップＳ１１において、符号化回路５１の遅延回路６１は、qビット単位で入力された情報ビットを遅延させ、マルチプレクサ６４は遅延したqビットの情報ビットを出力する。
【０１６９】
ステップＳ１２において、入力パラレル変換回路６２は、qビット単位で入力される情報ビットをバッファ７１に蓄積する。
【０１７０】
ステップＳ１３において、バッファ制御回路７２は、バッファ７１の情報ビットの蓄積量がmpビットを超えたか否かを判定する。
【０１７１】
バッファ７１の情報ビットの蓄積量がmpビットを超えたとステップＳ１３において判定した場合、ステップＳ１４において、バッファ制御回路７２は、バッファ７１に蓄積された情報ビットのうち、mpビット分の情報ビットをパリティ生成回路９１に出力する。
【０１７２】
ステップＳ１５において、パリティ生成回路９１は、mpビット単位で入力された情報ビットに基づいてパリティビットを生成するための演算を行う。
【０１７３】
ステップＳ１６において、制御信号が0かどうかを判定し、0でないと判定した場合、ステップ１１に戻り、それ以降の処理を繰り返す。
【０１７４】
制御信号が0であるとステップＳ１６において判定した場合、ステップＳ１７において、パリティ生成回路９１は、生成したN-Kビットの全てのパリティビットを出力する。
【０１７５】
ステップＳ１８において、パリティパラレル変換バッファ９２は、パリティ生成回路９１からN-Kビット同時に出力されたパリティビットを一時的に記憶し、qビット単位でマルチプレクサ６４に出力し、マルチプレクサ６４は、生成したパリティビットをqビット単位で出力する。
【０１７６】
［適用例］
図１９は、通信システムの構成を示す図である。
【０１７７】
図１９の通信システムは送信装置１１１と受信装置１１２から構成される。送信装置１１１は、準巡回符号符号化回路１２１、変調回路１２２、および信号送出回路１２３を含み、受信装置１１２は、信号受信回路１３１、復調回路１３２、および誤り訂正復号回路１３３を含む。
【０１７８】
送信装置１１１の準巡回符号符号化回路１２１は図７または図１５の構成を有する。準巡回符号符号化回路１２１は、外部から入力された送信対象のデータを上述したようにして組織符号化し、符号化して得られた符号ビットからなる送信データを変調回路１２２に出力する。
【０１７９】
変調回路１２２は、準巡回符号符号化回路１２１から供給された送信データを所定の変調方式で変調し、変調後の送信データを信号送出回路１２３に出力する。
【０１８０】
信号送出回路１２３は、変調後の送信データを送信する。信号送出回路１２３から出力された送信データは、ケーブルを介して、または電波を介して受信装置１１２により受信される。
【０１８１】
受信装置１１２の信号受信回路１３１は、送信装置１１１から送信されてきたデータを受信し、復調回路１３２に出力する。
【０１８２】
復調回路１３２は、信号受信回路１３１において受信されたデータに対して復調処理を施し、復調後のデータを誤り訂正復号回路１３３に出力する。
【０１８３】
誤り訂正復号回路１３３は、復調回路１３２から供給されたデータに付加されているパリティビットを用いて、適宜、情報ビットの誤り訂正を行い、誤り訂正後のデータを受信データとして出力する。
【０１８４】
図２０は、記録システムの構成を示す図である。
【０１８５】
図２０の記録システムは記録装置１４１と再生装置１４２から構成される。記録装置１４１は、準巡回符号符号化回路１５１、チャネル符号化回路１５２、および信号記録回路１５３を含み、再生装置１４２は、信号再生回路１６１、チャネル復号回路１６２、および誤り訂正復号回路１６３を含む。
【０１８６】
記録装置１４１の準巡回符号符号化回路１５１は、図７または図１５の構成を有する。準巡回符号符号化回路１５１は、外部から入力された記録対象のデータを上述したようにして組織符号化し、符号化して得られた符号ビットからなる記録データをチャネル符号化回路１５２に出力する。
【０１８７】
チャネル符号化回路１５２は、準巡回符号符号化回路１５１から供給された記録データに対してチャネル符号化を施し、記録データを信号記録回路１５３に出力する。
【０１８８】
信号記録回路１５３は、チャネル符号化回路１５２から供給された記録データをハードディスク、フラッシュメモリ、光ディスクなどの記録媒体１４３に記録する。信号記録回路１５３によりデータが記録された記録媒体１４３は再生装置１４２に提供される。
【０１８９】
再生装置１４２の信号再生回路１６１は、記録媒体１４３に記録されたデータを読み出す。信号再生回路１６１は、読み出したデータを再生し、再生して得られたデータをチャネル復号回路１６２に出力する。
【０１９０】
チャネル復号回路１６２は、信号再生回路１６１により再生されたデータに対してチャネル復号処理を施し、復号して得られたデータを誤り訂正復号回路１６３に出力する。
【０１９１】
誤り訂正復号回路１６３は、チャネル復号回路１６２から供給されたデータに付加されているパリティビットを用いて、適宜、情報ビットの誤り訂正を行い、誤り訂正後のデータを再生データとして出力する。
【０１９２】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１９３】
５１  符号化回路，  ６１  遅延回路，  ６２  入力パラレル変換回路，  ６３  パリティ生成回路，  ６４  マルチプレクサ，  ７１  バッファ，  ７２  バッファ制御回路，  ８１  組み合わせ回路，  ８２  N-K段レジスタ，  ９１  パリティ生成回路，  ９２  パリティパラレル変換バッファ，  １０１  組み合わせ回路，  １０２  N-K段レジスタ
【図１】
0005500357.tif 000006
【図２】
0005500357.tif 000007
【図３】
0005500357.tif 000008
【図４】
0005500357.tif 000009
【図５】
0005500357.tif 000010
【図６】
0005500357.tif 000011
【図７】
0005500357.tif 000012
【図８】
0005500357.tif 000013
【図９】
0005500357.tif 000014
【図１０】
0005500357.tif 000015
【図１１】
0005500357.tif 000016
【図１２】
0005500357.tif 000017
【図１３】
0005500357.tif 000018
【図１４】
0005500357.tif 000019
【図１５】
0005500357.tif 000020
【図１６】
0005500357.tif 000021
【図１７】
0005500357.tif 000022
【図１８】
0005500357.tif 000023
【図１９】
0005500357.tif 000024
【図２０】
0005500357.tif 000025