JP2008258774A - 符号化装置および符号化プログラム - Google Patents
符号化装置および符号化プログラム Download PDFInfo
- Publication number
- JP2008258774A JP2008258774A JP2007096691A JP2007096691A JP2008258774A JP 2008258774 A JP2008258774 A JP 2008258774A JP 2007096691 A JP2007096691 A JP 2007096691A JP 2007096691 A JP2007096691 A JP 2007096691A JP 2008258774 A JP2008258774 A JP 2008258774A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- storage unit
- data representing
- intermediate result
- parity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
【解決手段】行列記憶部18は、行列Ui、Li(i=1〜m)、Aのデータを記憶する。行列積計算部は、要素数kの情報ベクトルXから式(Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する。パリティ検査行列Hは、H(X,Y)T=0を満たし、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、行列Li(i=1〜m)は、行列BをLU分解した下三角行列Lの基本下三角行列であり、行列Ui(i=1〜m)は、行列BをLU分解した上三角行列Uの基本上三角行列である。
【選択図】図2
Description
S. Y. Chung et al.,"On the Design of Low-Density Parity-Check Codes within 0.0045dB of the Shannon Limit", IEEE COMUNICATIONS LETTERS, VOL.5, No.2, Feb. 2001, pp.58-60 Thomas J. Richardson et al.,"Efficient Encoding of Low-Density Parity-Check Codes", IEEE TRANSACTIONS ON INFORMATION THEORY, VOL.47, No.2, Feb. 2001, pp.638-656 楫勇一、「三角分解を用いたLDPC符号化法の計算量について」、The 27th Symposium on Information Theory and Its Applications (SITA2004) Gero, Gifu, Japan, Dec 14-17, 2004
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(A1)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li(i=1〜m)は、行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui(i=1〜m)は、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
Y=−U1 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX ・・・(A2)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li -1(i=1〜m)は行列Liの逆行列であり、行列Liは行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui -1(i=1〜m)は行列Uiの逆行列であり、行列Uiは、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A3−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A3−2)
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(A3−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、u≧1かつv≧1の場合には、行列B′は、行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、u≧1かつv=0の場合には、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、u=0かつv≧1の場合には、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(A4−1)
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(V)X ・・・(A4−2)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(A4−3)
ただし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、u≧1かつv≧1の場合には、行列B′は、行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、u≧1かつv=0の場合には、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、u=0かつv≧1の場合には、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、行列L′i -1(i=1〜m)は行列L′iの逆行列であり、行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列U′i -1(i=1〜m)は行列U′iの逆行列であり、行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する。
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(A5)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li(i=1〜m)は、行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui(i=1〜m)は、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
Y=−U1 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX ・・・(A6)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li -1(i=1〜m)は行列Liの逆行列であり、行列Liは行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui -1(i=1〜m)は行列Uiの逆行列であり、行列Uiは、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A7−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A7−2)
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(A7−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、u≧1かつv≧1の場合には、行列B′は、行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、u≧1かつv=0の場合には、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、u=0かつv≧1の場合には、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(A8−1)
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(V)X ・・・(A8−2)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(A8−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、u≧1かつv≧1の場合には、行列B′は、行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、u≧1かつv=0の場合には、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、u=0かつv≧1の場合には、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、行列L′i -1(i=1〜m)は行列L′iの逆行列であり、行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列U′i -1(i=1〜m)は行列U′iの逆行列であり、行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化装置は、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルを符号反転部に出力する。
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(A9)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、行列Li(i=1〜m)は、行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、行列Ui(i=1〜m)は、行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、符号化プログラムは、コンピュータを、パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、パリティベクトルYを算出するために、パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部として機能させ、行列積計算部は、情報ベクトルX、行列記憶部内の行列を表わすデータ、または中間結果記憶部内の中間結果を表わすデータを用いて、パリティ生成式に含まれる各行列乗算を実行して、パリティ生成式に含まれる複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして中間結果記憶部内に記憶させ、パリティ生成式に含まれる複数回の行列乗算が終了したら、パリティ生成式に含まれる複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する。
以下、本発明に係る実施の形態について図面を参照して説明する。
図1の通信システムにおいて、送信装置1は、符号化器2と変調器3とを備え、受信装置4は、復調器6と誤り訂正復号化器7とを備える。
第1の実施形態の符号化器は、2を法とする演算を行なう。
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、2を法とする演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T≡0 ・・・(B1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
BY≡AX ・・・(B2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
LUY≡AX ・・・(B3)
ここで、Lは下三角行列であり、Uは上三角行列である。
式(B3)より、列ベクトルYは、以下の式で表わされる。
Y≡U-1L-1AX ・・・(B4)
U≡UmUm-1・・・U2U1 ・・・(B5)
式(B5)より、逆行列U-1は、以下の式で表わされる。
U-1≡U1 -1U2 -1・・・Um-1 -1Um -1 ・・・(B6)
L≡L1L2・・・Lm-1Lm ・・・(B7)
式(B7)より、逆行列L-1は、以下の式で表わされる。
L-1≡Lm -1Lm-1 -1・・・L2 -1L1 -1 ・・・(B8)
Y≡(U1 -1U2 -1・・・Um-1 -1Um -1)(Lm -1Lm-1 -1・・・L2 -1L1 -1)AX ・・・(B9)
Ui≡(Ui)-1 ・・・(B10)
Li≡(Li)-1 ・・・(B11)
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(B12)
Z≡(X,Y) ・・・(B13)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
図2は、第1の実施形態の符号化器の構成を表わす図である。
たとえば、上三角行列Uが式(1)で表わされる場合には、基本上三角行列U1、U2、U3は、それぞれ、式(2)、式(3)、式(4)で表わされる。
たとえば、下三角行列Lが式(5)で表わされる場合には、基本下三角行列L1、L2、L3は、それぞれ、式(6)、式(7)、式(8)で表わされる。
図3は、第1の実施形態の行列分解処理のフローチャートである。
図4は、第1の実施形態の符号化ベクトル生成処理のフローチャートである。
行列積計算制御部121は、行列積計算部11を指示して、行列記憶部18から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部11は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部12に記憶させる(ステップS203)。
以上のように、第1の実施形態によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(B12)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列Ui(i=1〜m)および基本下三角行列Li(i=1〜m)は非零要素数が少ない行列のため、式(B12)の演算の計算量が少ない。また、式(B12)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
第1の実施形態の変形例1の符号化器は、実数演算を行なう。
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、実数演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(C1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
BY=−AX ・・・(C2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
LUY=−AX ・・・(C3)
ここで、Lは下三角行列であり、Uは上三角行列である。
式(C3)より、列ベクトルYは、以下の式で表わされる。
Y=−U-1L-1AX ・・・(C4)
U=UmUm-1・・・U2U1 ・・・(C5)
式(C5)より、逆行列U-1は、以下の式で表わされる。
U-1=U1 -1U2 -1・・・Um-1 -1Um -1 ・・・(C6)
ここで、Ui -1は、対角項の要素が1であり、かつ非対角項の要素はUiの要素の符号を反転したものである。
L=L1L2・・・Lm-1Lm ・・・(C7)
式(C7)より、逆行列L-1は、以下の式で表わされる。
L-1=Lm -1Lm-1 -1・・・L2 -1L1 -1 ・・・(C8)
ここで、Li -1は、対角項の要素が1であり、かつ非対角項の要素はLiの要素の符号を反転したものである。
Y=−U1 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX ・・・(C9)
Z=(X,Y) ・・・(C10)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
図5は、第1の実施形態の変形例1の符号化器の構成を表わす図である。
図6は、第1の実施形態の変形例1の行列分解処理のフローチャートである。
図7は、第1の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
行列積計算制御部122は、行列積計算部21を指示して、行列記憶部28から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。行列積計算部21は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部22に記憶させる(ステップS403)。
以上のように、第1の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(C9)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列の逆行列Ui -1(i=1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)は非零要素数が少ない行列のため、式(C9)の演算の計算量が少ない。また、式(C9)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
第2の実施形態の符号化器は、2を法とする演算を行なう。
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、2を法とする演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T≡0 ・・・(D1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
BY≡AX ・・・(D2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
まず、行列Bの2つの行を交換するとすると、式(D2)は以下のように変形される。
P1BY≡P1AX ・・・(D3)
ここで、P1は、第1回目の行の入れ替えを表わす変換行列である。i行とj行を変換する場合には、P1は、単位行列Eのi行とj行を入れ替えた行列となる。
P1BQ1Q1 -1Y≡P1AX ・・・(D4)
ここで、Q1は、第1回目の列の入れ替えを表わす変換行列である。i列とj列を変換する場合には、Q1は、単位行列Eのi列とj列を入れ替えた行列となる。
B(1)≡P1BQ1 ・・・(D5)
A(1)≡P1A ・・・(D6)
式(D5)および式(D6)により、式(D4)は以下の式で表わされる。
B(1)Q1 -1Y≡A(1)X ・・・(D7)
P2B(1)Q1 -1Y≡P2A(1)X ・・・(D8)
ここで、P2は、第2回目の行の入れ替えを表わす変換行列である。
P2B(1)Q2Q2 -1Q1 -1Y≡P2A(1)X ・・・(D9)
ここで、Q2は、第2回目の列の入れ替えを表わす変換行列である。
B(2)≡P2B(1)Q2 ・・・(D10)
A(2)≡P2A(1) ・・・(D11)
式(D10)および式(D11)により、式(D9)は以下の式で表わされる。
B(2)Q2 -1Q1 -1Y≡A(2)X ・・・(D12)
B′≡Pu・・・P2P1BQ1Q2・・・Qv ・・・(D13)
A(u)≡Pu・・・P2P1A ・・・(D14)
E(v)≡Q1Q2・・・Qv ・・・(D15)
式(D13)、式(D14)および式(D15)により、以下の式が成り立つ。
B′E(v)-1Y≡A(u)X ・・・(D16)
L′U′E(v)-1Y≡A(u)X ・・・(D17)
ここで、L′は下三角行列であり、U′は上三角行列である。
Y≡E(v)U′-1L′-1A(u)X ・・・(D18)
U′≡U′mU′m-1・・・U′2U′1 ・・・(D19)
式(D19)より、逆行列U′-1は、以下の式で表わされる。
U′-1≡U′1 -1U′2 -1・・・U′m-1 -1U′m -1 ・・・(D20)
L′≡L′1L′2・・・L′m-1L′m ・・・(D21)
式(D21)より、逆行列L′-1は、以下の式で表わされる。
L′-1≡L′m -1L′m-1 -1・・・L′2 -1L′1 -1 ・・・(D22)
Y≡E(v)(U′1 -1U′2 -1・・・U′m-1 -1U′m -1)(L′m -1L′m-1 -1・・・L′2 -1L′1 -1)A(u)X ・・・(D23)
U′i≡(U′i)-1 ・・・(D24)
L′i≡(L′i)-1 ・・・(D25)
式(D24)および式(D25)によって、式(D23)は以下の式に変形される。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(D26)
Z≡(X,Y) ・・・(D27)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
図8は、第2の実施形態の符号化器の構成を表わす図である。
図9は、第2の実施形態の行列分解処理のフローチャートである。
B′≡Pu・・・P2P1BQ1Q2・・・Qv ・・・(D13)
A(u)≡Pu・・・P2P1A ・・・(D14)
E(v)≡Q1Q2・・・Qv ・・・(D15)
つまり、行列B′は、行列Bに対して、u回(u≧1)の行の入れ替え、およびv回(v≧1)の列の入れ替えを行なったものである。行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものである。行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものである。オーダリング部40は、行列A(u)、E(v)を表わすデータを行列記憶部38に記憶させ、行列B′を表わすデータを中間結果記憶部32に記憶させる(ステップS502)。
図10は、第2の実施形態の符号化ベクトル生成処理のフローチャートである。
行列積計算制御部123は、行列積計算部31を指示して、行列記憶部38から第i(=1)順位の行列A(u)を表わすデータを読み出させて、行列A(u)と、入力された情報ベクトルXとの積A(u)Xを計算させる。行列積計算部31は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部32に記憶させる(ステップS603)。
以上のように、第2の実施形態によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(D26)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、行列Bがオーダリングされるため、基本上三角行列U′i(i=1〜m)および基本下三角行列L′i(i=1〜m)は、第1の実施形態の基本上三角行列Ui(i=1〜m)および基本下三角行列Li(i=1〜m)よりもさらに非零要素数が少ない行列となり、式(D26)の演算の計算量を式(B12)よりもさらに少なくできる。また、式(D26)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
第2の実施形態の変形例1の符号化器は、実数演算を行なう。
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、実数演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(E1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
BY=−AX ・・・(E2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
まず、行列Bの2つの行を交換するとすると、式(E2)は以下のように変形される。
P1BY=P1AX ・・・(E3)
ここで、P1は、第1回目の行の入れ替えを表わす変換行列である。i行とj行を変換する場合には、P1は、単位行列Eのi行とj行を入れ替えた行列となる。
P1BQ1Q1 -1Y=−P1AX ・・・(E4)
ここで、Q1は、第1回目の列の入れ替えを表わす変換行列である。i列とj列を変換する場合には、Q1は、単位行列Eのi列とj列を入れ替えた行列となる。
B(1)=P1BQ1 ・・・(E5)
A(1)=P1A ・・・(E6)
式(E5)および式(E6)により、式(E4)は以下の式で表わされる。
B(1)Q1 -1Y=−A(1)X ・・・(E7)
P2B(1)Q1 -1Y=−P2A(1)X ・・・(E8)
ここで、P2は、第2回目の行の入れ替えを表わす変換行列である。
P2B(1)Q2Q2 -1Q1 -1Y=−P2A(1)X ・・・(E9)
ここで、Q2は、第2回目の列の入れ替えを表わす変換行列である。
B(2)=P2B(1)Q2 ・・・(E10)
A(2)=P2A(1) ・・・(E11)
式(E10)および式(E11)により、式(E9)は以下の式で表わされる。
B(2)Q2 -1Q1 -1Y=−A(2)X ・・・(E12)
B′=Pu・・・P2P1BQ1Q2・・・Qv ・・・(E13)
A(u)=Pu・・・P2P1A ・・・(E14)
E(v)=Q1Q2・・・Qv ・・・(E15)
式(E13)、式(E14)および式(E15)により、以下の式が成り立つ。
B′E(v)-1Y=−A(u)X ・・・(E16)
L′U′QV -1・・・Q2 -1Q1 -1Y=A(u)X ・・・(E17)
ここで、L′は下三角行列であり、U′は上三角行列である。
Y=−E(v)U′-1L′-1A(u)X ・・・(E18)
U′=U′mU′m-1・・・U′2U′1 ・・・(E19)
ここで、逆行列U′i -1は、対角項の要素が1であり、かつ非対角項の要素はU′iの要素の符号を反転したものである。
式(E19)より、U′-1は、以下の式で表わされる。
U′-1=U′1 -1U′2 -1・・・U′m-1 -1U′m -1 ・・・(E20)
L′=L′1L′2・・・L′m-1L′m ・・・(E21)
ここで、逆行列L′i -1は、対角項の要素が1であり、かつ非対角項の要素はL′iの要素の符号を反転したものである。
式(E21)より、L′-1は、以下の式で表わされる。
L′-1=L′m -1L′m-1 -1・・・L′2 -1L′1 -1 ・・・(E22)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(E23)
Z=(X,Y) ・・・(E24)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
図11は、第2の実施形態の変形例1の符号化器の構成を表わす図である。
図12は、第2の実施形態の変形例1の行列分解処理のフローチャートである。
B′=Pu・・・P2P1BQ1Q2・・・Qv ・・・(D13)
A(u)=Pu・・・P2P1A ・・・(D14)
E(v)=Q1Q2・・・Qv ・・・(D15)
つまり、行列B′は、行列Bに対して、u回(u≧1)の行の入れ替え、およびv回(v≧1)の列の入れ替えを行なったものである。行列A(u)は、行列Aに対して、行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものである。行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものである。オーダリング部40は、行列A(u)、E(v)を表わすデータを行列記憶部48に記憶させ、行列B′を表わすデータを中間結果記憶部42に記憶させる(ステップS702)。
図13は、第2の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
行列積計算制御部124は、行列積計算部41を指示して、行列記憶部48から第i(=1)順位の行列A(u)を表わすデータを読み出させて、行列A(u)と、入力された情報ベクトルXとの積A(u)Xを計算させる。行列積計算部41は、乗算結果であるベクトルを中間結果Rとし、中間結果Rを表わすデータを中間結果記憶部42に記憶させる(ステップS803)。
以上のように、第2の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(E23)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、行列Bがオーダリングされるため、基本上三角行列の逆行列U′i -1(i=1〜m)および基本下三角行列の逆行列L′i -1(i=1〜m)は、第1の実施形態の変形例1の基本上三角行列の逆行列Ui -1(i=1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)よりもさらに非零要素数が少ない行列となり、式(E23)の演算の計算量を式(C9)よりもさらに少なくできる。また、式(E23)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
第3の実施形態の符号化器は、2を法とする演算を行なう。
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、2を法とする演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(F1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
BY≡AX ・・・(F2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
LUY≡AX ・・・(F3)
ここで、Lは下三角行列であり、Uは上三角行列である。
Y≡U-1L-1AX ・・・(F4)
U≡UmUm-1・・・U2U1 ・・・(F5)
式(F5)より、逆行列U-1は、以下の式で表わされる。
L≡L1L2・・・Lm-1Lm ・・・(F7)
式(F7)より、逆行列L-1は、以下の式で表わされる。
L-1≡Lm -1Lm-1 -1・・・L2 -1L1 -1 ・・・(F8)
Y≡(U1 -1U2 -1・・・Um-1 -1Um -1)(Lm -1Lm-1 -1・・・L2 -1L1 -1)AX ・・・(F9)
Ui≡(Ui)-1 ・・・(F10)
Li≡(Li)-1 ・・・(F11)
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(F12)
(U1U2・・・Ut)≡C ・・・(F13)
この場合、一定の条件とは、行列U1、U2、・・・、Utの非対角項の非零要素の個数の和が行列Cの非対角項の非零要素の個数以上であるものとする。
Y≡CUt+1・・・Um-1UmLmLm-1・・・L2L1AX ・・・(F14)
Z≡(X,Y) ・・・(F15)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
図14は、第3の実施形態の符号化器の構成を表わす図である。
図15は、第3の実施形態の行列分解処理のフローチャートである。
次に、行列乗算数削減部55は、行列記憶部58から第t(=1)順位の行列U1を表わすデータを読み出して、行列U1を行列Cとして、行列Cを表わすデータを中間結果記憶部52に記憶する(ステップS904)。
図16は、第3の実施形態の符号化ベクトル生成処理のフローチャートである。
以上のように、第3の実施形態によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(F14)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列Ui(i=t+1〜m)および基本下三角行列Li(i=1〜m)は非零要素数が少ない行列のため、式(F14)の計算量は少ない。式(F14)では、第1の実施形態の式(B12)のU1〜Utが1つの行列Cで表わされ、しかも行列Cの非対角項の非零要素数が行列U1〜Utの非対角項の非零要素数の和以下であるため、式(F14)の演算は、第1の実施形態の式(B12)の演算よりもさらに計算量が少ない。また、式(F14)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
第3の実施形態の変形例1の符号化器は、実数演算を行なう。
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、実数演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(G1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
BY=−AX ・・・(G2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
LUY=−AX ・・・(G3)
ここで、Lは下三角行列であり、Uは上三角行列である。
式(G3)より、列ベクトルYは、以下の式で表わされる。
Y=−U-1L-1AX ・・・(G4)
U=UmUm-1・・・U2U1 ・・・(G5)
式(G5)より、U-1は、以下の式で表わされる。
U-1=U1 -1U2 -1・・・Um-1 -1Um -1 ・・・(G6)
ここで、Ui -1は、対角項の要素が1であり、かつ非対角項の要素はUiの要素の符号を反転したものである。
L=L1L2・・・Lm-1Lm ・・・(G7)
式(G7)より、L-1は、以下の式で表わされる。
L-1=Lm -1Lm-1 -1・・・L2 -1L1 -1 ・・・(G8)
ここで、Li -1は、対角項の要素が1であり、かつ非対角項の要素はLiの要素の符号を反転したものである。
Y=−U1 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX ・・・(G9)
式(G9)は、(2×m+2)個の行列の乗算であるが、一定の条件を満足する場合には、いくつかの行列の積を1つの行列で表わすことができるとする。以下の式のように、U1 -1〜Ut -1のt個の行列の積を1つの行列Cで表わすことができるとする。
(U1 -1U2 -1・・・Ut -1)≡C ・・・(G10)
この場合、一定の条件とは、行列U1 -1、U2 -1、・・・、Ut -1の非対角項の非零要素の個数の和が行列Cの非対角項の非零要素の個数以上であるものとする。
Y=−CUt+1 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX ・・・(G11)
Z=(X,Y) ・・・(G12)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
図17は、第3の実施形態の変形例1の符号化器の構成を表わす図である。
図18は、第3の実施形態の変形例1の行列分解処理のフローチャートである。
次に、行列乗算数削減部65は、行列記憶部68から第t(=1)順位の行列U1 -1を表わすデータを読み出して、行列U1 -1を行列Cとして、行列Cを表わすデータを中間結果記憶部62に記憶する(ステップS1104)。
図19は、第3の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
以上のように、第3の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(G11)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、基本上三角行列の逆行列Ui -1(i=t+1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)は非零要素数が少ない行列のため、式(G11)の計算量は少ない。式(G11)では、第1の実施形態の変形例1の式(C9)のU1 -1〜Ut -1が1つの行列Cで表わされ、しかも行列Cの非対角項の非零要素数が行列U1 -1〜Ut -1の非対角項の非零要素数の和以下であるため、式(G11)の演算は、第1の実施形態の変形例1の式(C9)の演算よりもさらに計算量が少ない。また、式(G11)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
第4の実施形態の符号化器は、2を法とする演算を行なう。
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、2を法とする演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T≡0 ・・・(H1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
BY≡AX ・・・(H2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
まず、行列Bの2つの行を交換するとすると、式(H2)は以下のように変形される。
P1BY≡P1AX ・・・(H3)
ここで、P1は、第1回目の行の入れ替えを表わす変換行列である。i行とj行を変換する場合には、P1は、単位行列Eのi行とj行を入れ替えた行列となる。
P1BQ1Q1 -1Y≡P1AX ・・・(H4)
ここで、Q1は、第1回目の列の入れ替えを表わす変換行列である。i列とj列を変換する場合には、Q1は、単位行列Eのi列とj列を入れ替えた行列となる。
B(1)≡P1BQ1 ・・・(H5)
A(1)≡P1A ・・・(H6)
式(H5)および式(H6)により、式(H4)は以下の式で表わされる。
B(1)Q1 -1Y≡A(1)X) ・・・(H7)
P2B(1)Q1 -1Y≡P2A(1)X ・・・(H8)
ここで、P2は、第2回目の行の入れ替えを表わす変換行列である。
P2B(1)Q2Q2 -1Q1 -1Y≡P2A(1)X ・・・(H9)
ここで、Q2は、第2回目の列の入れ替えを表わす変換行列である。
B(2)≡P2B(1)Q2 ・・・(H10)
A(2)≡P2A(1) ・・・(H11)
式(H10)および式(H11)により、式(H9)は以下の式で表わされる。
B(2)Q2 -1Q1 -1Y≡A(2)X ・・・(H12)
B′≡Pu・・・P2P1BQ1Q2・・・Qv ・・・(H13)
A(u)≡Pu・・・P2P1A ・・・(H14)
E(v)≡Q1Q2・・・Qv ・・・(H15)
式(H13)、式(H14)および式(H15)により、以下の式が成り立つ。
B′E(v)-1Y≡A(u)X ・・・(H16)
L′U′E(v)-1Y≡A(u)X ・・・(H17)
ここで、L′は下三角行列であり、U′は上三角行列である。
Y≡E(v)U′-1L′-1A(u))X ・・・(H18)
U′≡U′mU′m-1・・・U′2U′1 ・・・(H19)
式(H19)より、U′-1は、以下の式で表わされる。
L′≡L′1L′2・・・L′m-1L′m ・・・(H21)
式(H21)より、L′-1は、以下の式で表わされる。
L′-1≡L′m -1L′m-1 -1・・・L′2 -1L′1 -1 ・・・(H22)
Y≡E(v)(U′1 -1U′2 -1・・・U′m-1 -1U′m -1)(L′m -1L′m-1 -1・・・L′2 -1L′1 -1)A(u)X ・・・(H23)
U′i≡(U′i)-1 ・・・(H24)
L′i≡(L′i)-1 ・・・(H25)
式(H24)および式(H25)によって、式(H23)は以下の式に変形される。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(H26)
E(v)(U′1U′2・・・U′t-1)≡C ・・・(H27)
この場合、一定の条件とは、行列E(v)、U′1、U′2、・・・、U′t-1の非対角項の非零要素の個数の和が行列Cの非対角項の非零要素の個数以上であるものとする。
Y≡CU′t・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(H28)
Z≡(X,Y) ・・・(H29)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
図20は、第4の実施形態の符号化器の構成を表わす図である。
図21、第4の実施形態の行列分解処理のフローチャートである。
次に、行列乗算数削減部75は、行列記憶部78から第t(=1)順位の行列E(v)を表わすデータを読み出して、行列E(v)を行列Cとして、行列Cを表わすデータを中間結果記憶部72に記憶する(ステップS1304)。
図22は、第4の実施形態の符号化ベクトル生成処理のフローチャートである。
以上のように、第4の実施形態によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(H28)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、行列Bがオーダリングされるため、基本上三角行列U′i(i=t〜m)および基本下三角行列L′i(i=1〜m)は、第3の実施形態の基本上三角行列Ui(i=t+1〜m)および基本下三角行列Li(i=1〜m)よりもさらに非零要素数が少ない行列となり、式(H28)の演算の計算量を式(F14)よりもさらに少なくできる。式(H28)では、第2の実施形態の式(D26)のE(v)、U′1〜U′t-1が1つの行列Cで表わされ、しかも行列Cの非対角項の非零要素数が行列E(v)、U′1〜U′t-1の非対角項の非零要素数の和以下であるため、式(H28)の演算は、第2の実施形態の式(D26)の演算よりもさらに計算量が少ない。また、式(H28)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
第4の実施形態の変形例1の符号化器は、実数演算を行なう。
符号化器は、k個の情報ビットx1、x2、・・・、xkからなる情報ベクトルXを受けて、実数演算を行なうことによって、以下の式を満たすようなm個のパリティビットy1、y2、・・・、ymからなるパリティベクトルYを生成する。
H(X,Y)T=0 ・・・(I1)
ここで、Hはパリティ検査行列(以下、検査行列とも言う)であり、m行n列(=k+m)の行列である。
(X,Y)Tは、情報ベクトルとパリティベクトルからなるベクトルの転置を表わす。
BY=−AX ・・・(I2)
ここで、行列Aは、検査行列Hの第1列目〜第k列目からなるm行k列の行列である。行列Bは、検査行列Hの第(k+1)列目〜第n列目からなるm行m列の行列である。
まず、行列Bの2つの行を交換するとすると、式(I2)は以下のように変形される。
P1BY=P1AX ・・・(I3)
ここで、P1は、第1回目の行の入れ替えを表わす変換行列である。i行とj行を変換する場合には、P1は、単位行列Eのi行とj行を入れ替えた行列となる。
P1BQ1Q1 -1Y=−P1AX ・・・(I4)
ここで、Q1は、第1回目の列の入れ替えを表わす変換行列である。i列とj列を変換する場合には、Q1は、単位行列Eのi列とj列を入れ替えた行列となる。
B(1)=P1BQ1 ・・・(I5)
A(1)=P1A ・・・(I6)
式(I5)および式(I6)により、式(I4)は以下の式で表わされる。
B(1)Q1 -1Y=−A(1)X ・・・(I7)
P2B(1)Q1 -1Y=−P2A(1)X ・・・(I8)
ここで、P2は、第2回目の行の入れ替えを表わす変換行列である。
P2B(1)Q2Q2 -1Q1 -1Y=−P2A(1)X ・・・(I9)
ここで、Q2は、第2回目の列の入れ替えを表わす変換行列である。
B(2)=P2B(1)Q2 ・・・(I10)
A(2)=P2A(1) ・・・(I11)
式(I10)および式(I11)により、式(I9)は以下の式で表わされる。
B(2)Q2 -1Q1 -1Y=−A(2)X ・・・(I12)
B′=Pu・・・P2P1BQ1Q2・・・Qv ・・・(I13)
A(u)=Pu・・・P2P1A ・・・(I14)
E(v)=Q1Q2・・・Qv ・・・(I15)
式(I13)、式(I14)および式(I15)により、以下の式が成り立つ。
B′E(v)-1Y=−A(u)X ・・・(I16)
L′U′QV -1・・・Q2 -1Q1 -1Y=A(u)X ・・・(I17)
ここで、L′は下三角行列であり、U′は上三角行列である。
式(I17)より、列ベクトルYは、以下の式で表わされる。
Y=−E(v)U′-1L′-1A(u)X ・・・(I18)
U′=U′mU′m-1・・・U′2U′1 ・・・(I19)
ここで、逆行列U′i -1は、対角項の要素が1であり、かつ非対角項の要素はU′iの要素の符号を反転したものである。
式(I19)より、U′-1は、以下の式で表わされる。
U′-1=U′1 -1U′2 -1・・・U′m-1 -1U′m -1 ・・・(I20)
L′=L′1L′2・・・L′m-1L′m ・・・(I21)
ここで、逆行列L′i -1は、対角項の要素が1であり、かつ非対角項の要素はL′iの要素の符号を反転したものである。
式(I21)より、L′-1は、以下の式で表わされる。
L′-1=L′m -1L′m-1 -1・・・L′2 -1L′1 -1 ・・・(I22)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(I23)
E(v)(U′1 -1U′2 -1・・・U′t-1 -1)≡C ・・・(I24)
この場合、一定の条件とは、行列E(v)、U′1 -1、U′2 -1、・・・、U′t-1 -1の非対角項の非零要素の個数の和が行列Cの非対角項の非零要素の個数以上であるものとする。
Y=−CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(I25)
Z=(X,Y) ・・・(I26)
ここで、符号化ベクトルZの第1ビット〜第kビットは、情報ベクトルXのビットであり、符号化ベクトルZの第(k+1)ビット〜第nビットは、パリティベクトルYのビットである。
図23は、第4の実施形態の変形例1の符号化器の構成を表わす図である。
図24は、第4の実施形態の変形例1の行列分解処理のフローチャートである。
次に、行列乗算数削減部85は、行列記憶部88から第t(=1)順位の行列E(v)を表わすデータを読み出して、行列E(v)を行列Cとして、行列Cを表わすデータを中間結果記憶部82に記憶する(ステップS1504)。
図25は、第4の実施形態の変形例1の符号化ベクトル生成処理のフローチャートである。
以上のように、第4の実施形態の変形例1によれば、符号化ベクトル生成処理時において、後退代入を行わずに、式(I25)に従ってパリティベクトルYを算出するので、少ない計算量で情報ベクトルXの符号化を行なうことができる。特に、行列Bがオーダリングされるため、基本上三角行列の逆行列U′i -1(i=t〜m)および基本下三角行列の逆行列L′i -1(i=1〜m)は、第3の実施形態の変形例1の基本上三角行列の逆行列Ui -1(i=t+1〜m)および基本下三角行列の逆行列Li -1(i=1〜m)よりもさらに非零要素数が少ない行列となり、式(I25)の演算の計算量を式(G11)よりもさらに少なくできる。式(I25)では、第2の実施形態の変形例1の式(E23)のE(v)、U′1 -1〜U′t-1 -1が1つの行列Cで表わされ、しかも行列Cの非対角項の非零要素数が行列E(v)、U′1 -1〜U′t-1 -1の非対角項の非零要素数の和以下であるため、式(I25)の演算は、第2の実施形態の変形例1の式(E23)の演算よりもさらに計算量が少ない。また、式(I25)の右側にある行列乗算から順次実行してパリティベクトルYを算出するので、各行列乗算の結果はベクトルとなり、中間結果を記憶するための容量を小さくすることができる。
第5の実施形態の符号化器は、2を法とする演算を行なう。この符号化器は、符号化ベクトル処理を複数の行列積計算部で並列実行するものである。
第5の実施形態の符号化アルゴリズムは、第1の実施形態と同様である。
図26は、第5の実施形態の符号化器の構成を表わす図である。
第5の実施形態の行列分解処理の手順は、第1の実施形態と同様であるので、ここでは説明を繰返さない。
図27は、第5の実施形態の符号化ベクトル生成処理のフローチャートである。
行列積計算制御部129は、第1の行列積計算部97を指示して、行列記憶部18から第i(=1)順位の行列Aを表わすデータを読み出させて、行列Aと、入力された情報ベクトルXとの積AXを計算させる。第1の行列積計算部97は、乗算結果であるベクトルを中間結果R1とし、中間結果R1を表わすデータを中間結果記憶部92に記憶させる(ステップS1703)。
以上のように、第5の実施形態は、第1の実施形態と同様の効果を有する。さらに、第5の実施形態によれば、非特許文献2および非特許文献3での逐次計算による後退代入と異なり、式(B12)の演算が並列実行が可能なことを利用して、第1の行列積計算部による列ベクトルR1(=LmLm-1・・・L2L1AX)の算出処理と、第2の行列積計算部による行列R2(=U1U2・・・Um-1Um)の算出処理が同時に並列して実行されるので、非特許文献2および非特許文献3よりも短時間にパリティベクトルRを算出することができる。
第1の実施形態以外の実施形態においても、2つの行列積計算部によって、パリティベクトル生成処理を並列実行するものとしてもよい。
第5の実施形態および第5の実施形態の変形例1では、2個の行列積計算部を備えるものとしたが、3個以上の行列積計算部によって、パリティベクトル生成処理を並列実行するものとしてもよい。
本発明は、上記の実施の形態に限定されるものではなく、たとえば以下のような変形例も含まれる。
本発明の実施形態では、符号化器が、パリティベクトル生成処理と、行列分解処理の両方の機能を備えるものとしたが、一方だけの機能を備えるものとしてもよい。符号化器がパリティベクトル生成処理の機能のみを備える場合には、パリティベクトルYを生成するための式(B12)、(C9)、(D26)、(E23)、(F14)、(G11)、(H28)、(I25)に含まれる行列のデータは、外部で予め計算されたものが記憶されている。たとえば、第1の実施形態では、行列U1、U2、・・・、Um、Lm、Lm-1、・・・、L1、Aの各要素の値が予め外部で計算され、計算結果が行列記憶部に記憶されている。
本発明の第1〜第5の実施形態において、行列記憶部および中間結果記憶部に記憶される行列またはベクトルを表わすデータは、各要素の値である必要はなく、たとえば、非対角項の非零要素数(つまり、「1」)の位置を表わすものであってもよい。
本発明の実施形態では、パリティベクトルYを生成する式に含まれる行列乗算のうち、右側にある行列乗算(ここでは、ベクトルと行列の乗算も行列乗算と呼ぶ)から順次実行するものとしたが、これに限定するものではなく、任意の順序で行列乗算を実行するものとしてもよいが、左側にある行列乗算から順次実行しない方がよい場合もある。なぜなら、左側にある行列乗算から順次実行した場合には、行列Bの逆行列が生成されることになり、行列Bを分解した意味がなくなる場合が考えられる。しかしながら、このような順序で計算する場合でも、行列Bの逆行列を計算するよりも、少ない計算量で行列分解処理を行なうことができたり、または分解された行列の非零要素数の和が、Bの逆行列の非零要素数の和よりも少ないときには、行列を記憶するための容量を少なくすることができる場合がある。
本発明の第3、第4の実施形態では、行列乗算数の削減処理時に、パリティベクトルYを生成する式に含まれる行列乗算のうち、左側にある行列乗算から順次実行するものとしたが、これに限定するものではなく、任意の順序で行列乗算を実行するものとしてもよい。
Y≡U1・・・Um-1UmLmLm-1・・・L9CX ・・・(F14−1)
ここで、Cは、L8Lt7・・・L1Aである。
Y≡U1U2CU9・・・Um-1UmLmLm-1・・・L2L1AX ・・・(F14−2)
ここで、Cは、U3U4・・・U8である。
Y≡C1U6U7U8C2U20・・・Um-1UmLmLm-1・・・L6C3X ・・・(F14−3)
ここで、C1は、U1U2・・・U5であり、C2は、U9U10・・・U19であり、C3は、L5L4・・・L1Aである。
(5) オーダリング
本発明の実施形態では、行列Bに対して、u回(u≧1)の行の入れ替えと、v回(v≧1)の列の入れ替えを行なうオーダリングを行なったが、これに限定するものではない。たとえば、u回の行の入れ替えだけを行なうものとしてもよい(つまり、v=0)。この場合には、たとえば、式(D26)、(E23)、(H26)、(H28)、(I23)、(I25)は、E(v)が含まれない式に変形される。また、v回の列の入れ替えだけを行なうものとしてもよい(つまり、u=0)。この場合には、たとえば、式(D26)、(E23)、(H26)、(H28)、(I23)、(I25)は、A(u)が含まれない式に変形される。
(5−1−A) u≧1かつv≧1
第2の実施形態では、u≧1かつv≧1のときには、式(D26)が用いられた。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(D26)
u≧1かつv=0のときには、式(D26)に代えて、次の式が用いられる。
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(D26)′
ここで、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものである。行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列である。
また、u=0かつv≧1のときには、式(D26)に代えて、次の式が用いられる。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(D26)"
ここで、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものである。行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列である。
(5−2−A) u≧1かつv≧1
第2の実施形態の変形例1では、u≧1かつv≧1のときには、式(E23)が用いられた。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(E23)
u≧1かつv=0のときには、式(E23)に代えて、次の式が用いられる。
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(V)X ・・・(E23)′
ここで、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものである。行列L′i -1(i=1〜m)は行列L′iの逆行列である。行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i -1(i=1〜m)は行列U′iの逆行列である。行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列である。
行列記憶部は、基本上三角行列の逆行列U′1 -1、U′2 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列A(u)を表わすデータを記憶する。
また、u=0かつv≧1のときには、式(E23)に代えて、次の式が用いられる。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(E23)"
ここで、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものである。行列L′i -1(i=1〜m)は行列L′iの逆行列である。行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i -1(i=1〜m)は行列U′iの逆行列である。行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列である。
行列記憶部は、基本上三角行列の逆行列U′1 -1、U′2 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列A、E(v)を表わすデータを記憶する。
(5−3−A) u≧1かつv≧1
第4の実施形態では、u≧1かつv≧1のときには、式(H26)が用いられ、E(v)、U′1〜U′t-1のt個の行列の積を1つの行列Cで表わした場合に、式(H28)が得られた。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(H26)
Y≡CU′t・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(H28)
u≧1かつv=0のときには、式(H26)に代えて、式(H26)′が用いられ、U′1〜U′tのt個の行列の積を1つの行列Cで表わした場合に、式(H28)"が得られる。
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(H26)′
Y≡CU′t+1・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(H28)′
ここで、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものである。行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列である。
行列記憶部は、基本上三角行列U′t+1、U′t+2、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列C、A(u)を表わすデータを記憶する。
また、u=0かつv≧1のときには、式(H26)に代えて、式(H26)"が用いられ、E(v)、U′1〜U′t-1のt個の行列の積を1つの行列Cで表わした場合に、式(H28)"が得られる。
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(H26)"
Y≡CU′t・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(H28)"
ここで、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものである。行列L′i(i=1〜m)は、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i(i=1〜m)は、行列B′をLU分解した上三角行列U′の基本上三角行列である。
行列記憶部は、基本上三角行列U′t、U′t+1、・・・、U′mを表わすデータ、基本下三角行列L′m、L′m-1、・・・、L′1を表わすデータ、および行列C、Aを表わすデータを記憶する。
(5−4−A) u≧1かつv≧1
第4の実施形態の変形例1では、u≧1かつv≧1のときには、式(I23)が用いられ、E(v)、U′1 -1〜U′t-1 -1のt個の行列の積を1つの行列Cで表わした場合に、式(I25)が得られた。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(I23)
Y=−CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(I25)
u≧1かつv=0のときには、式(I23)に代えて、式(I23)′が用いられ、U′1 -1〜U′t -1のt個の行列の積を1つの行列Cで表わした場合に、式(I25)′が得られる。
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(V)X ・・・(I23)′
Y=−CU′t+1 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(I25)′
ここで、行列B′は、行列Bに対して、u回の行の入れ替えを行なったものである。行列L′i -1(i=1〜m)は行列L′iの逆行列である。行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i -1(i=1〜m)は行列U′iの逆行列である。行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列である。
行列記憶部は、基本上三角行列の逆行列U′t+1 -1、U′t+2 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列C、A(u)を表わすデータを記憶する。
また、u=0かつv≧1のときには、式(I23)に代えて、式(I23)"が用いられ、E(v)、U′1 -1〜U′t-1 -1のt個の行列の積を1つの行列Cで表わした場合に、式(I25)"が得られる。
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(I23)"
Y=−CU′t -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(I25)"
ここで、行列B′は、行列Bに対して、v回の列の入れ替えを行なったものである。行列L′i -1(i=1〜m)は行列L′iの逆行列である。行列L′iは、行列B′をLU分解した下三角行列L′の基本下三角行列である。行列U′i -1(i=1〜m)は行列U′iの逆行列である。行列U′iは、行列B′をLU分解した上三角行列U′の基本上三角行列である。
行列記憶部は、基本上三角行列の逆行列U′t -1、U′t+1 -1、・・・、U′m -1を表わすデータ、基本下三角行列の逆行列L′m -1、L′m-1 -1、・・・、L′1 -1を表わすデータ、および行列C、Aを表わすデータを記憶する。
たとえば、行列U3、行列U4がそれぞれ式(13)、式(14)で表わされる場合には、これらの積U4×U3は、式(15)で表わされる。
本発明の実施形態で説明した符号化器は、専用のハードウエア装置で実現されるものに限られない。外部から符号化プログラムをメモリにインストールし、コンピュータがこの符号化プログラムをメモリから読出して実行することによって、符号化器の機能を実現することとしてもよい。この場合、第1の実施形態の機能を実行する符号化プログラムは図3と図4のフローチャートの各ステップを備え、第1の実施形態と同様の効果を有する。第1の実施形態の変形例1の機能を実行する符号化プログラムは図6と図7のフローチャートの各ステップを備え、第1の実施形態の変形例と同様の効果を有する。第2の実施形態の機能を実行する符号化プログラムは図9と図10のフローチャートの各ステップを備え、第2の実施形態と同様の効果を有する。第2の実施形態の変形例1の機能を実行する符号化プログラムは図12と図13のフローチャートの各ステップを備え、第2の実施形態の変形例1と同様の効果を有する。第3の実施形態の機能を実行する符号化プログラムは図15と図16のフローチャートの各ステップを備え、第3の実施形態と同様の効果を有する。第3の実施形態の変形例1の機能を実行する符号化プログラムは図18と図19のフローチャートの各ステップを備え、第3の実施形態の変形例1と同様の効果を有する。第4の実施形態の機能を実行する符号化プログラムは図21と図22のフローチャートの各ステップを備え、第4の実施形態と同様の効果を有する。第4の実施形態の変形例1の機能を実行する符号化プログラムは図24と図25のフローチャートの各ステップを備え、第4の実施形態の変形例1と同様の効果を有する。第5の実施形態の機能を実行する符号化プログラムは図3と図27のフローチャートの各ステップを備え、第5の実施形態と同様の効果を有する。
本発明の実施形態では、誤り訂正符号の例としてLDPCについて説明したが、これに限定するものではなく、ビタビやターボ符号などへの応用も可能である。
本発明の第3の実施形態およびその変形例1では、説明の便宜上(t+1)<mとしたが、これには限定されない。また、同様に、本発明の第4の実施形態およびその変形例1では、説明の便宜上t<mとしたが、これには限定されない。
Claims (24)
- 要素数kの情報ベクトルXから式(A1)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(A1)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li(i=1〜m)は、前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui(i=1〜m)は、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化装置。 - 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bとに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の前記基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記行列記憶部に記憶させる基本行列分解部とを備えた、請求項1記載の符号化装置。 - 要素数kの情報ベクトルXから式(A2)で表わされるパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−U1 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX ・・・(A2)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li -1(i=1〜m)は行列Liの逆行列であり、前記行列Liは前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui -1(i=1〜m)は行列Uiの逆行列であり、前記行列Uiは、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、
前記行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルを前記符号反転部に出力する、符号化装置。 - 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bとに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の前記基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記中間結果記憶部から前記行列Ui(i=1〜m)および前記行列Li(i=1〜m)を表わすデータを読み出して、前記行列Ui(i=1〜m)および前記行列Li(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列Ui -1(i=1〜m)および逆行列Li -1(i=1〜m)を算出し、前記逆行列Ui -1(i=1〜m)および前記逆行列Li -1(i=1〜m)を表わすデータを前記行列記憶部に記憶させる逆行列計算部とを備えた、請求項3記載の符号化装置。 - 要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A3−1)、u≧1かつv=0のときには式(A3−2)、u=0かつv≧1のときには式(A3−3)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A3−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A3−2)
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(A3−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
u≧1かつv≧1の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
u≧1かつv=0の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、
u=0かつv≧1の場合には、行列B′は、前記行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
行列L′i(i=1〜m)は、前記行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が前記下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列U′i(i=1〜m)は、前記行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が前記上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化装置。 - 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、u=0かつv≧1のときには、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
u≧1かつv≧1の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記行列記憶部に記憶させ、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記行列記憶部に記憶させ、u≧1かつv=0の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記行列記憶部に記憶させ、u=0かつv≧1の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してv回の列の入れ替えを行なった前記行列B′を生成し、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記行列記憶部に記憶させるオーダリング部と、
前記行列B′を前記下三角行列L′と前記上三角行列U′の積にLU分解して、前記下三角行列L′を表わすデータおよび前記上三角行列U′を表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列U′および前記下三角行列L′を表わすデータを読み出して、前記上三角行列U′をm個の前記基本上三角行列U′i(i=1〜m)の積に分解し、前記下三角行列L′をm個の前記基本下三角行列L′i(i=1〜m)の積に分解し、前記分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを前記行列記憶部に記憶させる基本行列分解部とを備えた、請求項5記載の符号化装置。 - 要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A4−1)、u≧1かつv=0のときには式(A4−2)、u=0かつv≧1のときには式(A4−3)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(A4−1)
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(V)X ・・・(A4−2)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(A4−3)
ただし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
u≧1かつv≧1の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
u≧1かつv=0の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、
u=0かつv≧1の場合には、行列B′は、前記行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
行列L′i -1(i=1〜m)は行列L′iの逆行列であり、前記行列L′iは、前記行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が前記下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列U′i -1(i=1〜m)は行列U′iの逆行列であり、前記行列U′iは、前記行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が前記上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、
前記行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルを前記符号反転部に出力する、符号化装置。 - 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、u=0かつv≧1のときには、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
u≧1かつv≧1の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記行列記憶部に記憶させ、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記行列記憶部に記憶させ、u≧1かつv=0の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記行列記憶部に記憶させ、u=0かつv≧1の場合、前記行列Bのオーダリングを行ない、前記行列Bに対してv回の列の入れ替えを行なった前記行列B′を生成し、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記行列記憶部に記憶させるオーダリング部と、
前記行列B′を前記下三角行列L′と前記上三角行列U′の積にLU分解して、前記下三角行列L′を表わすデータおよび前記上三角行列U′を表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列U′および前記下三角行列L′を表わすデータを読み出して、前記上三角行列U′をm個の前記基本上三角行列U′i(i=1〜m)の積に分解し、前記下三角行列L′をm個の前記基本下三角行列L′i(i=1〜m)の積に分解し、前記分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記中間結果記憶部から前記行列U′i(i=1〜m)および前記行列L′i(i=1〜m)を表わすデータを読み出して、前記行列U′i(i=1〜m)および前記行列L′i(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列U′i -1(i=1〜m)および逆行列L′i -1(i=1〜m)を算出し、前記逆行列U′i -1(i=1〜m)および前記逆行列L′i -1(i=1〜m)を表わすデータを前記行列記憶部に記憶させる逆行列計算部とを備えた、請求項7記載の符号化装置。 - 要素数kの情報ベクトルXから、式(A5)に含まれる少なくとも1セットの隣接する2個以上の行列が、前記2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(A5)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li(i=1〜m)は、前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui(i=1〜m)は、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化装置。 - 前記パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、前記式(A5)に含まれるすべての行列の非対角項の非零要素数の和以下である、請求項9記載の符号化装置。
- 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記行列積計算部は、さらに、式(A5)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の前記基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記乗算結果である行列Cの非零要素数と前記式(A5)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、前記式(A5)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、前記中間結果記憶部に記憶されている前記式(A5)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列を表わすデータと、前記行列Cを表わすデータとを前記行列記憶部に記憶する行列乗算数削減部とを備えた、請求項10記載の符号化装置。 - 要素数kの情報ベクトルXから、式(A6)に含まれる少なくとも1セットの隣接する2個以上の行列が、前記2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−U1 -1U2 -1・・・Um-1 -1Um -1Lm -1Lm-1 -1・・・L2 -1L1 -1AX ・・・(A6)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li -1(i=1〜m)は行列Liの逆行列であり、前記行列Liは前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui -1(i=1〜m)は行列Uiの逆行列であり、前記行列Uiは、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、
前記行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルを前記符号反転部に出力する、符号化装置。 - 前記パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、前記式(A6)に含まれるすべての行列の非対角項の非零要素数の和以下である、請求項12記載の符号化装置。
- 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記行列積計算部は、さらに、式(A6)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記中間結果記憶部から前記行列Ui(i=1〜m)および前記行列Li(i=1〜m)を表わすデータを読み出して、前記行列Ui(i=1〜m)および前記行列Li(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列Ui -1(i=1〜m)および逆行列Li -1(i=1〜m)を算出し、前記逆行列Ui -1(i=1〜m)および前記逆行列Li -1(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる逆行列計算部と、
前記乗算結果である行列Cの非零要素数と前記式(A6)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、前記式(A6)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、前記中間結果記憶部に記憶されている前記式(A6)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列を表わすデータと、前記行列Cを表わすデータとを前記行列記憶部に記憶する行列乗算数削減部とを備えた、請求項13記載の符号化装置。 - 要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A7−1)、u≧1かつv=0のときには式(A7−2)、u=0かつv≧1のときには式(A7−3)に含まれる少なくとも1セットの隣接する2個以上の行列が、前記2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A7−1)
Y≡U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1A(u)X ・・・(A7−2)
Y≡E(v)U′1U′2・・・U′m-1U′mL′mL′m-1・・・L′2L′1AX ・・・(A7−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
u≧1かつv≧1の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
u≧1かつv=0の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、
u=0かつv≧1の場合には、行列B′は、前記行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
行列L′i(i=1〜m)は、前記行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が前記下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列U′i(i=1〜m)は、前記行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が前記上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化装置。 - 前記パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、前記式(A7−1)、(A7−2)、または(A7−3)に含まれるすべての行列の非対角項の非零要素数の和以下である、請求項15記載の符号化装置。
- 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記行列積計算部は、さらに、式(A7−1)、(A7−2)、または(A7−3)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aおよび前記行列Bを表わすデータを前記中間結果記憶部に記憶させる検査行列分解部と、
u≧1かつv≧1の場合、前記中間結果記憶部から前記行列Aおよび前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記中間結果記憶部に記憶させ、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記中間結果記憶部に記憶させ、u≧1かつv=0の場合、前記中間結果記憶部から前記行列Aおよび前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記中間結果記憶部に記憶させ、u=0かつv≧1の場合、前記中間結果記憶部から前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してv回の列の入れ替えを行なった前記行列B′を生成し、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記中間結果記憶部に記憶させるオーダリング部と、
前記行列B′を前記下三角行列L′と前記上三角行列U′の積にLU分解して、前記下三角行列L′を表わすデータおよび前記上三角行列U′を表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列U′および前記下三角行列L′を表わすデータを読み出して、前記上三角行列U′をm個の前記基本上三角行列U′i(i=1〜m)の積に分解し、前記下三角行列L′をm個の基本下三角行列L′i(i=1〜m)の積に分解し、前記分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記乗算結果である行列Cの非零要素数と前記式(A7−1)、(A7−2)、または(A7−3)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、前記式(A7−1)、(A7−2)、または(A7−3)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、前記中間結果記憶部に記憶されている前記式(A7−1)、(A7−2)、または(A7−3)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列を表わすデータと、前記行列Cを表わすデータとを前記行列記憶部に記憶する行列乗算数削減部とを備えた、請求項16記載の符号化装置。 - 要素数kの情報ベクトルXから、u≧1かつv≧1のときには式(A8−1)、u≧1かつv=0のときには式(A8−2)、u=0かつv≧1のときには式(A8−3)に含まれる少なくとも1セットの隣接する2個以上の行列が、前記2個以上の行列の乗算結果である行列Cで置換されたパリティ生成式にしたがって実数演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化装置であって、
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(u)X ・・・(A8−1)
Y=−U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1A(V)X ・・・(A8−2)
Y=−E(v)U′1 -1U′2 -1・・・U′m-1 -1U′m -1L′m -1L′m-1 -1・・・L′2 -1L′1 -1AX ・・・(A8−3)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T=0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
u≧1かつv≧1の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替え、およびv回の列の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
u≧1かつv=0の場合には、行列B′は、前記行列Bに対して、u回の行の入れ替えを行なったものであり、行列A(u)は、前記行列Aに対して、前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なったものであり、
u=0かつv≧1の場合には、行列B′は、前記行列Bに対して、v回の列の入れ替えを行なったものであり、行列E(v)は、単位行列Eに対して、行列Bに対するv回の列の入れ替えと同様の入れ替えを行なったものであり、
行列L′i -1(i=1〜m)は行列L′iの逆行列であり、前記行列L′iは、前記行列B′をLU分解した下三角行列L′の基本下三角行列であって、第i列目が前記下三角行列L′の第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列U′i -1(i=1〜m)は行列U′iの逆行列であり、前記行列U′iは、前記行列B′をLU分解した上三角行列U′の基本上三角行列であって、第i行目が前記上三角行列U′の第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化装置は、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部と、
前記行列積計算部から出力されるベクトルの符号を反転してパリティベクトルYとして出力する符号反転部とを備え、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルを前記符号反転部に出力する、符号化装置。 - 前記パリティ生成式に含まれるすべての行列の非対角項の非零要素数の和は、前記式(A8−1)、(A8−2)、または(A8−3)に含まれるすべての行列の非対角項の非零要素数の和以下である、請求項18記載の符号化装置。
- 前記符号化装置は、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化装置であって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記行列積計算部は、さらに、式(A8−1)、(A8−2)、または(A8−3)に含まれる隣接する2個以上の行列の乗算を実行して、乗算結果である行列Cを表わすデータを出力し、
前記符号化装置は、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aおよび前記行列Bを表わすデータを前記中間結果記憶部に記憶させる検査行列分解部と、
u≧1かつv≧1の場合、前記中間結果記憶部から前記行列Aおよび前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えおよびv回の列の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記中間結果記憶部に記憶させ、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記中間結果記憶部に記憶させ、u≧1かつv=0の場合、前記中間結果記憶部から前記行列Aおよび前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してu回の行の入れ替えを行なった前記行列B′を生成し、前記行列Aに対して前記行列Bに対するu回の行の入れ替えと同様の入れ替えを行なった前記行列A(u)を生成して前記中間結果記憶部に記憶させ、u=0かつv≧1の場合、前記中間結果記憶部から前記行列Bを表わすデータを読み出して、前記行列Bのオーダリングを行ない、前記行列Bに対してv回の列の入れ替えを行なった前記行列B′を生成し、前記単位行列Eに対して前記行列Bに対するv回の列の入れ替えと同様の入れ替えを行なった前記行列E(v)を生成して前記中間結果記憶部に記憶させるオーダリング部と、
前記行列B′を前記下三角行列L′と前記上三角行列U′の積にLU分解して、前記下三角行列L′を表わすデータおよび前記上三角行列U′を表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列U′および前記下三角行列L′を表わすデータを読み出して、前記上三角行列U′をm個の前記基本上三角行列U′i(i=1〜m)の積に分解し、前記下三角行列L′をm個の前記基本下三角行列L′i(i=1〜m)の積に分解し、前記分解された行列U′i(i=1〜m)および行列′Li(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる基本行列分解部と、
前記中間結果記憶部から前記行列U′i(i=1〜m)および前記行列L′i(i=1〜m)を表わすデータを読み出して、前記行列U′i(i=1〜m)および前記行列L′i(i=1〜m)の非対角項の要素の符号を反転することによって、逆行列U′i -1(i=1〜m)および逆行列L′i -1(i=1〜m)を算出し、前記逆行列U′i -1(i=1〜m)および前記逆行列L′i -1(i=1〜m)を表わすデータを前記中間結果記憶部に記憶させる逆行列計算部と、
前記乗算結果である行列Cの非零要素数と前記式(A8−1)、(A8−2)、または(A8−3)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列の非対角項の非零要素数の和が、前記式(A8−1)、(A8−2)、または(A8−3)に含まれるすべての行列の非対角項の非零要素数の和以下である場合に、前記中間結果記憶部に記憶されている前記式(A8−1)、(A8−2)、または(A8−3)に含まれる行列のうち前記隣接する2個以上の行列を除いた行列を表わすデータと、前記行列Cを表わすデータとを前記行列記憶部に記憶する行列乗算数削減部とを備えた、請求項19記載の符号化装置。 - 前記行列積計算部は、前記パリティ生成式に含まれる複数回の行列乗算のうち、前記パリティ生成式の右側にある行列乗算から順次実行する、請求項1、3、5、7、9、12、15および18のいずれか1項に記載の符号化装置。
- 前記行列積計算部は、前記パリティ生成式に含まれる複数回の行列乗算のうち2個以上の行列乗算を並行して実行する、請求項1、3、5、7、9、12、15および18のいずれか1項に記載の符号化装置。
- 要素数kの情報ベクトルXから式(A9)で表わされるパリティ生成式にしたがって2を法とする演算を行なうことによって、要素数mのパリティベクトルYを生成する符号化プログラムであって、
Y≡U1U2・・・Um-1UmLmLm-1・・・L2L1AX ・・・(A9)
ただし、(X,Y)Tは、ベクトル(X,Y)の転置を表わし、パリティ検査行列Hは、H(X,Y)T≡0を満たすm行n列の行列であり、行列Aは、パリティ検査行列Hの第1列目〜第k列目からなり、行列Bは、パリティ検査行列Hの第(k+1)列目〜第n列目からなり、n=k+mであり、
行列Li(i=1〜m)は、前記行列BをLU分解した下三角行列Lの基本下三角行列であって、第i列目が前記下三角行列Lの第i列目と一致し、その他の列は非対角項が0、対角項が1である行列であり、
行列Ui(i=1〜m)は、前記行列BをLU分解した上三角行列Uの基本上三角行列であって、第i行目が前記上三角行列Uの第i行目と一致し、その他の行は非対角項が0、対角項が1である行列であり、
前記符号化プログラムは、コンピュータを、
前記パリティ生成式に含まれる複数個の行列を表わすデータを記憶する行列記憶部と、
前記パリティ生成式に含まれる複数回の行列乗算の中間結果を表わすデータを記憶する中間結果記憶部と、
前記パリティベクトルYを算出するために、前記パリティ生成式に含まれる複数回の行列乗算を実行する行列積計算部として機能させ、
前記行列積計算部は、前記情報ベクトルX、前記行列記憶部内の行列を表わすデータ、または前記中間結果記憶部内の中間結果を表わすデータを用いて、前記パリティ生成式に含まれる各行列乗算を実行して、前記パリティ生成式に含まれる前記複数回の行列乗算が終了するまでの間は、該計算結果を表わすデータを中間結果を表わすデータとして前記中間結果記憶部内に記憶させ、前記パリティ生成式に含まれる前記複数回の行列乗算が終了したら、前記パリティ生成式に含まれる前記複数回の行列乗算の終了後に得られるベクトルをパリティベクトルYとして出力する、符号化プログラム。 - 前記符号化プログラムは、前記パリティベクトルYを生成する前に、前記パリティ生成式に含まれる行列を生成する符号化プログラムであって、
前記中間結果記憶部は、さらに、前記パリティ生成式に含まれる行列を生成する処理の中間結果を表わすデータを記憶し、
前記符号化プログラムは、前記コンピュータを、さらに、
前記パリティ検査行列Hを前記行列Aと前記行列Bに分解して、前記行列Aを表わすデータを前記行列記憶部に記憶させる検査行列分解部と、
前記行列Bを前記下三角行列Lと前記上三角行列Uの積にLU分解して、前記下三角行列Lを表わすデータおよび前記上三角行列Uを表わすデータを前記中間結果記憶部に記憶させるLU分解部と、
前記中間結果記憶部から前記上三角行列Uおよび前記下三角行列Lを表わすデータを読み出して、前記上三角行列Uをm個の前記基本上三角行列Ui(i=1〜m)の積に分解し、前記下三角行列Lをm個の前記基本下三角行列Li(i=1〜m)の積に分解し、前記分解された行列Ui(i=1〜m)および行列Li(i=1〜m)を表わすデータを前記行列記憶部に記憶させる基本行列分解部として機能させる、請求項23記載の符号化プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007096691A JP4821684B2 (ja) | 2007-04-02 | 2007-04-02 | 符号化装置および符号化プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007096691A JP4821684B2 (ja) | 2007-04-02 | 2007-04-02 | 符号化装置および符号化プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011192750A Division JP2011244500A (ja) | 2011-09-05 | 2011-09-05 | 符号化装置および符号化プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008258774A true JP2008258774A (ja) | 2008-10-23 |
JP4821684B2 JP4821684B2 (ja) | 2011-11-24 |
Family
ID=39981936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007096691A Expired - Fee Related JP4821684B2 (ja) | 2007-04-02 | 2007-04-02 | 符号化装置および符号化プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4821684B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014021558A1 (ko) * | 2012-07-31 | 2014-02-06 | Choi Sujeong | 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 |
WO2014021559A1 (ko) * | 2012-07-31 | 2014-02-06 | Choi Sujeong | 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 |
KR101425506B1 (ko) | 2012-09-22 | 2014-08-05 | 최수정 | 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 |
CN114342266A (zh) * | 2019-06-26 | 2022-04-12 | 波拉兰哈伯雷斯姆技术公司 | 用生成矩阵的三角分解进行纠错编码的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006507731A (ja) * | 2002-11-21 | 2006-03-02 | 韓國電子通信研究院 | 低密度パリティ検査符号を用いる符号化器と、その符号化方法 |
-
2007
- 2007-04-02 JP JP2007096691A patent/JP4821684B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006507731A (ja) * | 2002-11-21 | 2006-03-02 | 韓國電子通信研究院 | 低密度パリティ検査符号を用いる符号化器と、その符号化方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014021558A1 (ko) * | 2012-07-31 | 2014-02-06 | Choi Sujeong | 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 |
WO2014021559A1 (ko) * | 2012-07-31 | 2014-02-06 | Choi Sujeong | 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 |
KR101425506B1 (ko) | 2012-09-22 | 2014-08-05 | 최수정 | 보완적인 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치 |
CN114342266A (zh) * | 2019-06-26 | 2022-04-12 | 波拉兰哈伯雷斯姆技术公司 | 用生成矩阵的三角分解进行纠错编码的方法和装置 |
CN114342266B (zh) * | 2019-06-26 | 2022-12-20 | 波拉兰哈伯雷斯姆技术公司 | 用生成矩阵的三角分解进行纠错编码的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4821684B2 (ja) | 2011-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107820096B (zh) | 图像处理装置及方法、图像处理系统及训练方法 | |
KR100808664B1 (ko) | 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치 | |
Yarlagadda et al. | Hadamard matrix analysis and synthesis: with applications to communications and signal/image processing | |
JP6242074B2 (ja) | 信号データの圧縮および圧縮解除のための方法および装置(信号データの圧縮および圧縮解除) | |
US20200097802A1 (en) | Execution method, execution device, learning method, learning device, and recording medium for deep neural network | |
JP4821684B2 (ja) | 符号化装置および符号化プログラム | |
JP5700041B2 (ja) | 符号化装置、誤り訂正符号構成方法およびそのプログラム | |
JP5774237B2 (ja) | 誤り訂正符号化方法および誤り訂正符号化装置 | |
Stapledon | Additive number theory and inequalities in Ehrhart theory | |
CN109451308A (zh) | 视频压缩处理方法及装置、电子设备及存储介质 | |
US10049683B2 (en) | Audio encoder and decoder | |
WO2012106416A1 (en) | Method and apparatus for compressive sensing of sparse signals with reduced compression complexity | |
Anselmi | Background field method, Batalin-Vilkovisky formalism and parametric completeness of renormalization | |
Lai et al. | A construction of quantum stabilizer codes based on syndrome assignment by classical parity-check matrices | |
Kim et al. | A quantization of moduli spaces of 3-dimensional gravity | |
Besnard | Extensions of the noncommutative Standard Model and the weak order one condition | |
JP2011244500A (ja) | 符号化装置および符号化プログラム | |
Horvathy et al. | Supersymmetry of the planar Dirac–Deser–Jackiw–Templeton system and of its nonrelativistic limit | |
Chang et al. | Quantum: the q= 1 limit of Galois field quantum mechanics, projective geometry and the field with one element | |
La Guardia | Nonbinary convolutional codes derived from group character codes | |
Muthiah et al. | The equations defining affine Grassmannians in type A and a conjecture of Kreiman, Lakshmibai, Magyar, and Weyman | |
Ben David et al. | Isotropy in group cohomology | |
WO2021209469A1 (en) | Improved concept for a representation of neural network parameters | |
US20240039698A1 (en) | Encryption processing device and encryption processing method | |
JP7504533B2 (ja) | ビデオ符号化および復号化の方法、装置およびコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110218 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110809 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110822 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4821684 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140916 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |