(57)【要約】  構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択する符号化装置を提供する。符号化装置は、入力された情報語のＰビットを順に生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成部と、検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入して、パリティ検査符号生成部に出力する情報語マスク部と、情報語にＱＣ−ＬＤＰＣ符号を付加して符号語として出力する符号語出力部と、を備える。
2015133095.tif 000002
【特許請求の範囲】
【請求項１】
入力された情報語のＰビットを順に生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成手段と、
前記検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入して、前記パリティ検査符号生成手段に出力する情報語マスク手段と、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する符号語出力手段と、
を備える符号化装置。
【請求項２】
前記情報語マスク手段は、前記Ｐビットの並列演算の｛（［ｒ／Ｐ］＋１）×ｉ｝（ｉ＝１…ｓ）サイクル目に、（ｒ mod Ｐ）ビットの情報語と｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロとを含むＰビットとを、前記パリティ検査符号生成手段に出力する請求項１に記載の符号化装置。
【請求項３】
前記パリティ検査符号生成手段は、
１つの検査符号生成行列を記憶する検査符号生成行列記憶手段と、
前記１つの検査符号生成行列を前記情報語のビット位置ｍに対応して右巡回置換する第１生成行列巡回置換手段と、
前記情報語マスク手段から出力されたＰビットと、前記巡回置換された検査符号生成行列および前のＰビットの演算結果との演算を行なうパリティ演算手段と、
前記パリティ演算手段の次のＰビットの演算に使うために、前記パリティ演算手段の演算結果を記憶する検査符号記憶手段と、
を有する請求項１または２に記載の符号化装置。
【請求項４】
前記パリティ検査符号生成手段は、
１つの検査符号生成行列を記憶する検査符号生成行列記憶手段と、
前記１つの検査符号生成行列を前記情報語のビット位置をｍとした場合に、（ｍ mod Ｐ）に対応して右巡回置換する第２生成行列巡回置換手段と、
前記情報語マスク手段から出力されたＰビットと、前記巡回置換された検査符号生成行列および前のＰビットの演算結果との演算を行なうパリティ演算手段と、
前記パリティ演算手段の演算結果をＰビットだけ左巡回置換する検査符号巡回置換手段と、
前記パリティ演算手段の次のＰビットの演算に使うために、前記検査符号巡回置換手段による巡回置換の結果を記憶する検査符号記憶手段と、
を有する請求項１または２に記載の符号化装置。
【請求項５】
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
前記生成行列中の単位行列および巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列と並列演算して、前記情報語にＱＣ−ＬＤＰＣ符号が付加された符号語を生成する、
符号化方法。
【請求項６】
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムを格納した記録媒体であって、
前記生成行列中の単位行列および巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列と並列演算して、前記情報語にＱＣ−ＬＤＰＣ符号が付加された符号語を生成する、
ことをコンピュータに実行させる符号化装置の制御プログラムを格納した記録媒体。
【請求項７】
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
前記生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成し、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する、
符号化方法。
【請求項８】
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムを格納した記録媒体であって、
前記生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成し、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する、
ことをコンピュータに実行させる符号化装置の制御プログラムを格納した記録媒体。
【請求項９】
ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成装置であって、
情報語のＰビットを生成行列中の検査符号生成行列と並列演算してＱＣ−ＬＤＰＣ符号を生成するパリティ演算手段と、
前記検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入する情報語マスク手段と、
を備え、
前記パリティ演算手段は、１つの検査符号生成行列を用いて前記ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正符号を生成するためのパリティ検査符号生成装置、符号化方法、符号化装置および記録媒体に関する。特に、擬似巡回低密度パリティ検査符号の生成に関する。
【背景技術】
【０００２】
近年、半導体集積回路へ実装可能な回路規模の増加に伴い、擬似巡回低密度パリティ検査（Quasi-Cyclic Low-Density Parity-Check、以下、ＱＣ−ＬＤＰＣと示す）符号を用いる誤り訂正が通信システムへ適用されている。ＱＣ−ＬＤＰＣ符号を用いる誤り訂正の符号化処理は、情報語の１ビットごとに、生成行列による演算を行うことで符号語の生成が可能であるが、適用する通信システムに必要なスループットを実現するため、処理の並列化が必要となる。【０００３】
特許文献１においては、６ビットの情報語と検査行列Ｈの情報部との積を６行単位で行ごとに乗算して、６ビットの情報語から並列処理数６として符号語のパリティビットを生成している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３０４１３２号公報
【特許文献２】国際公開第２００９／０６０６２７号
【特許文献３】特開２０１２−２３１４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記文献に記載の技術のように、並列処理数がＱＣ−ＬＤＰＣ符号の生成行列を構成する単位行列または巡回行列の行列サイズの約数となっている場合には、１種類の生成行列によりパリティ検査符号を生成できる。しかしながら、並列処理数が単位行列または巡回行列の行列サイズの約数となっていない場合には、２つの種類の生成行列を用いなければパリティ検査符号を生成できないので、構成および動作が複雑となってしまう。逆に、１種類の生成行列によって符号化を行なうためには並列処理数が約数となるように制限されるので、実現したい処理性能に対して適切な並列処理数を選択することができない。【０００６】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係る符号化装置は、
入力された情報語のＰビットを順に生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成部と、
前記検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入して、前記パリティ検査符号生成部に出力する情報語マスク部と、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する符号語出力部と、
を備える。【０００８】
上記目的を達成するため、本発明に係る符号化方法は、
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
前記生成行列中の単位行列および巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列と並列演算して、前記情報語にＱＣ−ＬＤＰＣ符号が付加された符号語を生成する。【０００９】
上記目的を達成するため、本発明に係る符号化装置の制御プログラムを格納する記録媒体は、
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムを格納する記録媒体であって、
前記生成行列中の単位行列および巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列と並列演算して、前記情報語にＱＣ−ＬＤＰＣ符号が付加された符号語を生成する
ことをコンピュータに実行させる。【００１０】
上記目的を達成するため、本発明に係る符号化方法は、
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
前記生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成し、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する。【００１１】
上記目的を達成するため、本発明に係る符号化装置の制御プログラムを格納する記録媒体は、
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムを格納する記録媒体であって、
前記生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成し、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する、
ことをコンピュータに実行させる。【００１２】
上記目的を達成するため、本発明に係るパリティ検査符号生成装置は、
ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成装置であって、
情報語のＰビットを生成行列中の検査符号生成行列と並列演算してＱＣ−ＬＤＰＣ符号を生成するパリティ演算部と、
前記検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入する情報語マスク部と、
を備え、
前記パリティ演算部は、１つの検査符号生成行列を用いて前記ＱＣ−ＬＤＰＣ符号を生成する。
【発明の効果】
【００１３】
本発明によれば、構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係る符号化装置の構成を示すブロック図である。
【図２】本発明の第２実施形態に係る符号化装置の構成を示すブロック図である。
【図３】背景技術におけるＱＣ−ＬＤＰＣ符号の生成行列例を示す図である。
【図４Ａ】背景技術におけるパリティ検査符号生成処理の手順を示すフローチャートである。
【図４Ｂ】背景技術における符号化装置の構成を示すブロック図である。
【図５】第２実施形態に係る情報語マスク部の構成を示すブロック図である。
【図６】第２実施形態に係るパリティ演算部の構成を示すブロック図である。
【図７】第２実施形態に係る検査符号記憶部の構成を示すブロック図である。
【図８】第２実施形態に係る符号化装置のハードウェア構成を示すブロック図である。
【図９】第２実施形態に係る符号化装置の処理手順を示すフローチャートである。
【図１０】第２実施形態に係るパリティ検査符号生成処理の手順を示すフローチャートである。
【図１１】第２実施形態に係る情報語マスク処理の手順を示すフローチャートである。
【図１２】第２実施形態に係るＱＣ−ＬＤＰＣ符号の生成処理を説明する図である。
【図１３】第２実施形態に係る生成行列の具体例を示す図である。
【図１４】第２実施形態に係るＱＣ−ＬＤＰＣ符号の生成処理の具体例を説明する図である。
【図１５】本発明の第３実施形態に係る符号化装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１６】
［第１実施形態］
本発明の第１実施形態としての符号化装置１００について、図１を用いて説明する。符号化装置１００は、誤り訂正符号を生成するための装置である。
【００１７】
図１に示すように、符号化装置１００は、パリティ検査符号生成部１２０と、情報語マスク部１１０と、符号語出力部１３０と、を含む。パリティ検査符号生成部１２０は、入力された情報語１０１のＰビットを順に生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号１２１を生成する。情報語マスク部１１０は、検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、情報語１０１のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入して（１１１）、パリティ検査符号生成部１２０に出力する。符号語出力部１３０は、情報語１０１にＱＣ−ＬＤＰＣ符号１２１を付加して符号語１３１として出力する。
【００１８】
本実施形態によれば、情報語にゼロを挿入してビット数を並列演算数の倍数とすることにより、構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択することができる。
【００１９】
［第２実施形態］
次に、本発明の第２実施形態に係る符号化装置について説明する。本実施形態に係る符号化装置は、Ｐビットを順に生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成する。そして、検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、情報語１０１のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入して、Ｐビットを約数とするｒ’ビットによりパリティ演算をする。
【００２０】
＜前提技術＞
本実施形態に係る符号化装置の構成および動作を説明する前に、その特徴点の理解を助けるために、ＱＣ−ＬＤＰＣ符号を生成する符号化装置の前提技術を説明する。
【００２１】
（ＱＣ−ＬＤＰＣ符号）
符号化における情報語と符号語の関係は、ｋビットの情報語ＸがＸ＝｛x0,x1,x2,x3,…xk-1｝であり、それに対応するｎビットの符号語ＹがＹ＝｛y0,y1,y2,y3,…,yn-1｝であった場合、生成行列Ｇ（k行、n列）によって、
【００２２】
【数１】
2015133095.tif 000003
と表せる。
【００２３】
生成行列Ｇが図３の様に(r×r)単位行列Ｉ、(r×r)巡回行列Ｂで構成されているとき、ＱＣ−ＬＤＰＣ符号は組織符号となり、図４Ａの様なフローチャートや図４Ｂのような回路構成により符号化が可能となる。ただし、
【００２４】
【数２】
2015133095.tif 000004
【００２５】
【数３】
2015133095.tif 000005
の関係を満たす。また、組織符号であるため、情報語Ｘの｛x0〜xk-1｝と符号語Ｙの｛y0〜yk-1｝までは同じ値となり、符号化処理によって符号語Ｙの｛yk〜yn-1｝まで計算される。
【００２６】
以下、情報語Ｘは、ｒビットごとにブロック化し、
【００２７】
【数４】
2015133095.tif 000006
と表す。
【００２８】
また、符号語Ｙも同様に、ｒビットごとにブロック化し、
【００２９】
【数５】
2015133095.tif 000007
【００３０】
以下、符号語Ｙの｛yk,…,yn-1｝（＝｛Ys+1,…,Ys+t｝）をパリティ検査符号と呼び、パリティ検査符号を生成するための(r×r)巡回行列Ｂの部分を検査符号生成行列と呼ぶ。
【００３１】
（符号化手順）
ここで、ＱＣ−ＬＤＰＣ符号を用いる誤り訂正符号化装置において、前提技術として並列処理を行う符号化方法の例を図４Ａのフローチャートに従って説明する。
なお、図４Ａにおいては、情報語に付加するパリティ検査符号を検査符号生成行列により生成する手順を示すが、情報語から単位行列Ｉを含む生成行列Ｇにより符号語を直接生成する手順と同じ符号語を生成する、同様の処理である。
【００３２】
図４Ａに示した前提技術による符号化方法は、情報語読み出し処理（Ｓ４０１）と、検査符号生成行列の更新判定処理（Ｓ４０３）と、生成行列Ｇの巡回行列Ｂの部分を読みだす検査符号生成行列の読み出し処理（Ｓ４０５）と、読みだした検査符号生成行列の巡回行列Ｂを巡回置換する検査符号生成行列の巡回置換処理（Ｓ４０７）と、を含む。また、前提技術による符号化方法は、情報語と検査符号生成行列とのパリティ演算を行うパリティ演算処理（Ｓ４０９）と、パリティ演算結果をパリティ検査符号として記憶する検査符号記憶処理（Ｓ４１１）と、検査符号演算完了の判定処理（Ｓ４１３）と、を含む。なお、情報語から単位行列Ｉを含む生成行列Ｇにより符号語を直接生成する場合は、「検査符号生成行列」を、単位行列を含む「生成行列Ｇ」に置き換えることで、直接に符号語が生成される。
【００３３】
はじめに、情報語を１ビットずつ演算する場合の動作について説明し、その後、Ｐビットずつ並列処理する場合を説明する（Ｐは生成行列Ｇの単位行列Ｉや巡回行列Ｂの行列サイズｒの約数とする）。ここで、巡回置換を行う行列をサイズは（ｒ×ｒ）の行列Ｃmとする。Ｃ0は単位行列と同一、Ｃ1は１ビット右巡回置換を行う行列、Ｃr-1は(r-1)ビット右巡回置換を行う行列とする。なお、ＣrはＣ0と同一である。
【００３４】
情報語読み出し処理（Ｓ４０１）において、１ビット目の情報語Ｘ1,0を読み出す。次に検査符号生成行列の更新判定処理（Ｓ４０３）において、情報語の読み出しビット数から検査符号生成行列の更新が必要であるかを判定する。ここでは、１ビット目の処理であるため、検査符号生成行列の更新が必要と判定する。検査符号生成行列の読み出し処理（Ｓ４０５）においては、情報語の先頭ビットＸ1,0に対応する検査符号生成行列｛Ｂ1,1，…，Ｂ1,t｝を読みだす。検査符号生成行列の１行目の演算であるため、検査符号生成行列｛Ｂ1,1，…，Ｂ1,t｝は、巡回置換を行わない｛Ｃ0Ｂ1,1，…，Ｃ0Ｂ1,t｝をパリティ演算に用いる。
【００３５】
パリティ演算処理（Ｓ４０９）において、Ｘ1,0と｛Ｃ0Ｂ1,1，…，Ｃ0Ｂ1,t｝を乗算し、１ビット目の情報語Ｘ1,0によるパリティ検査符号｛Ys+1,…,Ys+t｝を生成する。生成したパリティ検査符号｛Ys+1,…,Ys+t}は、検査符号記憶処理（Ｓ４１１）において、記憶部（図視せず）に記憶する。検査符号演算完了の判定処理（Ｓ４１３）においては、情報語読み出しビット数を確認し、情報語の読み出しが完了している場合は、検査符号演算処理を完了する。ここでは、情報語の読み出しは完了していないため、情報語読み出し処理（Ｓ４０１）に戻る。なお、パリティ演算処理（Ｓ４０９）によるパリティ検査符号の演算は、情報語の先頭からｄビット分まで演算したパリティ検査符号｛Ys+1,…,Ys+t｝をＺdとすると、１ビット目のパリティ演算結果Ｚ1は、
【００３６】
【数６】
2015133095.tif 000008
と表せる。
【００３７】
次に、情報語読み出し処理（Ｓ４０１）において、２ビット目の情報語Ｘ1,1を読み出し、検査符号生成行列の更新判定処理（Ｓ４０３）において、情報語の読み出しビット数から検査符号生成行列の更新について判定する。ここで、情報語の読み出しビットは２ビット目であるため、検査符号生成行列の巡回置換処理（Ｓ４０７）において右巡回置換を行い、｛Ｃ1Ｂ1,1，…，Ｃ1Ｂ1,t｝を生成する。パリティ演算処理（Ｓ４０９）において、情報語Ｘ1,1と１ビット分右巡回置換を行なった検査符号生成行列｛Ｃ1Ｂ1,1，…，Ｃ1Ｂ1,t｝と演算済みのパリティ演算結果Ｚ1とのパリティを演算する。そして、検査符号記憶処理（Ｓ４１１）で２ビット目の情報語Ｘ1,1までのパリティ演算結果Ｚ2を記憶する。パリティ演算処理（Ｓ４０９）による２ビット目のパリティ演算結果Ｚ2は、
【００３８】
【数７】
2015133095.tif 000009
と表せる。
【００３９】
その後、情報語をｒビット読み出すごとに、検査符号生成行列の読み出し処理（Ｓ４０５）により、検査符号生成行列を更新する。
【００４０】
一般に、パリティ演算処理（Ｓ４０９）による（ｄ＋１）ビット目の情報語によるパリティ演算結果Ｚd+1は、
【００４１】
【数８】
2015133095.tif 000010
と表せる。
【００４２】
式（８）をｄ＝０から（ｋ−１）まで繰り返すことで、情報語Ｘに対するパリティ検査符号Ｚkを生成することができ、検査符号演算完了の判定処理（Ｓ４１３）により検査符号演算処理を完了する。本例においては、生成したパリティ検査符号Ｚkを情報語Ｘの後に付加することにより、符号語Ｙが出力される。一方、「検査符号生成行列」ではなく、単位行列を含む「生成行列」によれば、（情報語Ｘ＋パリティ検査符号Ｚk）である符号語が直接に演算出力されることになる。
【００４３】
次に、情報語をＰビット分並列に処理する場合の動作について説明する。ただし、Ｐビットは、生成行列Ｇの単位行列Ｉや巡回行列Ｂの行列サイズｒの約数の場合とする。Ｐビット分並列に処理する場合、式（８）をＰビット分同時に処理するため、パリティ演算処理（Ｓ４０９）によるパリティ演算結果Ｚd+Pは、
【００４４】
【数９】
2015133095.tif 000011
と表せる。
【００４５】
なお、並列処理数Ｐは生成行列Ｇの単位行列Ｉや巡回行列Ｂの行列サイズｒの約数であるため、式(９)を処理する際、検査符号生成行列は｛Ｂi,1，…，Ｂi,t}の１種類である。
【００４６】
しかしながら、並列処理数Ｐが生成行列Ｇの単位行列Ｉや巡回行列Ｂの行列サイズｒの約数でない場合、以下の式（１０）を並列に処理する必要がある。
【００４７】
【数１０】
2015133095.tif 000012
【００４８】
このため、パリティ演算処理（Ｓ４０９）において演算に用いる検査符号生成行列は、｛Ｂi,1，…，Ｂi,t}と｛Ｂi+1,1，…，Ｂi+1,t}の２種類必要となる。式（１０）を処理するためには、異なる検査符号生成行列に対して情報語Ｘのビット数に応じた異なる巡回置換を行ったうえでパリティの演算を行う必要があり、１種類の巡回置換を行なった検査符号生成行列で符号化処理を実現する前提技術では実現することができない。「検査符号生成行列」でなく単位行列を含む「生成行列」を用いる場合も、１種類の「生成行列」では並列演算による符号語の生成はできない。
【００４９】
次に、前提技術として並列処理を行う符号化装置４００の構成を、図４Ｂを参照して説明する。なお、図４Ｂにおいて、本実施形態と同様の構成部には同じ参照番号を付している。
【００５０】
図４Ｂに示した前提技術による符号化装置は、情報語入力部２１０と、パリティ検査符号生成部４３０と、符号語出力部２４０と、を備える。情報語入力部２１０は、情報語Ｘをパリティ演算部２３３に入力する。パリティ検査符号生成部４３０は、情報語ＸをＰビットずつ検査符号生成行列に基づいて並列処理をしてパリティ検査符号を生成する。符号語出力部２４０は、情報語Ｘにパリティ検査符号を付加して符号語Ｙを出力する。
【００５１】
パリティ検査符号生成部４３０は、検査符号生成行列記憶部４３１と、第１生成行列巡回置換部２３２と、パリティ演算部２３３と、検査符号記憶部２３４と、を有する。検査符号生成行列記憶部４３１は、生成行列Ｇ中の巡回行列Ｂからなる検査符号生成行列を記憶する。第１生成行列巡回置換部２３２は、検査符号生成行列をパリティ演算用に巡回置換する。パリティ演算部２３３は、情報語と巡回置換を行なった検査符号生成行列とパリティ検査符号とを演算する。検査符号記憶部２３４は、パリティ演算結果をパリティ検査符号として記憶する。
【００５２】
なお、パリティ検査符号生成部４３０を、単位行列を含む生成行列に基づいて並列処理する構成に置き換えた場合には、直接、符号語Ｙが生成されることになる。
【００５３】
図４Ｂの符号化装置４００において、はじめに、情報語を１ビットずつ演算する場合の動作について説明し、その後、Ｐビットずつ並列処理する場合を説明する（ここで、Ｐは生成行列Ｇの巡回行列Ｂの行列サイズｒの約数とする）。
【００５４】
情報語入力部２１０から情報語の先頭ビットＸ1,0がパリティ演算部２３３に入力され、検査符号生成行列記憶部４３１から情報語の先頭ビットＸ1,0に対応する検査符号生成行列｛Ｂ1,1，…，Ｂ1,t｝が第１生成行列巡回置換部２３２に入力される。第１生成行列巡回置換部２３２は、検査符号生成行列の１行目の演算であるため、入力した検査符号生成行列の｛Ｂ1,1，…，Ｂ1,t｝をそれぞれ巡回置換行列Ｃ0と乗算することで０ビット分右巡回置換を行ない、パリティ演算部２３３に入力する。パリティ演算部２３３は、Ｘ1,0と｛Ｃ0Ｂ1,1，…，Ｃ0Ｂ1,t｝の乗算結果を、情報語の先頭ビットＸ1,0によるパリティ演算結果Ｚ1として検査符号記憶部２３４に記憶する。
【００５５】
次に、情報語入力部２１０から情報語の２ビット目Ｘ1,1がパリティ演算部２３３に入力される。第１生成行列巡回置換部２３２は、検査符号生成行列の２行目の演算であるため、検査符号生成行列記憶部４３１から読み出している検査符号生成行列｛Ｂ1,1，…，Ｂ1,t｝と、１ビット分右巡回置換を行なった検査符号生成行列｛Ｃ1Ｂ1,1，…，Ｃ1Ｂ1,t｝をパリティ演算部２３３に入力する。パリティ演算部２３３は、Ｘ1,1と｛Ｃ1Ｂ1,1，…，Ｃ1Ｂ1,t｝と検査符号記憶部２３４からのパリティ演算結果Ｚ1とのパリティを演算し、情報語の２ビット目Ｘ1,1までのパリティ演算結果Ｚ2として、検査符号記憶部２３４に記憶する。
【００５６】
その後、検査符号生成行列をｒビット巡回置換するごとに、検査符号生成行列記憶部４３１から出力する検査符号生成行列を変更する。パリティ演算部２３３によるパリティ検査符号Ｚd+1の生成処理は式（８）と同一であり、情報語Ｘをｋビット分入力することで、情報語Ｘに対するパリティ検査符号Ｚkを生成することができる。
【００５７】
次に、情報語をＰビット分並列に処理する場合の動作について説明する。ただし、Ｐビットは、生成行列Ｇの巡回行列Ｂの行列サイズｒの約数の場合とする。Ｐビット分並列に処理する場合、式（８）をＰビット分同時に処理するため、パリティ演算部２３３によるパリティ演算結果Ｚd+Pの生成処理は式（９）と同一となる。なお、並列処理数Ｐは生成行列Ｇの巡回行列Ｂの行列サイズｒの約数であるため、パリティ演算部２３３に入力する検査符号生成行列は｛Ｂi,1，…，Ｂi,t｝の１種類である。
【００５８】
もし、並列処理数Ｐが生成行列Ｇの巡回行列Ｂの行列サイズｒの約数でない場合、式（１０）を並列に処理するため、パリティ演算部２３３に入力する検査符号生成行列は、｛Ｂi,1，…，Ｂi,t｝と｛Ｂi+1,1，…，Ｂi+1,t｝の２種類となる。したがって、それぞれの検査符号生成行列に対して情報語Ｘのビット数に応じた巡回置換を行い、パリティ演算を行う必要がある。このため、１種類の巡回置換を行なった検査符号生成行列による符号化処理を行う背景技術の符号化装置では実現することができない。
【００５９】
以上に説明したように、前提技術においては、パリティ演算を行う情報語に対応する巡回置換を行なった生成行列または検査符号生成行列を１種類にするために、並列処理数を生成行列の単位行列や巡回行列の行列サイズの約数とすることが必要である。その理由は、ＱＣ−ＬＤＰＣ符号による符号化は、生成行列の１行分の処理で符号ビット１ビットを生成するが、擬似巡回低密度パリティの生成行列は、単位行列または巡回行列により構成されており、単位行列または巡回行列の行列分の情報語による符号化処理ごとに生成行列または検査符号生成行列を切り替える必要があるためである。このため、前提技術の符号化装置は、ソフトウェアやハードウェアに実装する際に、最も適切な並列処理数を選択することができないという点で問題がある。
【００６０】
＜本実施形態の符号化装置の構成＞
図２は、本実施形態に係る符号化装置２００の構成を示すブロック図である。
【００６１】
図２の符号化装置２００は、ＱＣ−ＬＤＰＣ符号による誤り訂正符号化装置である。符号化装置２００は、情報語入力部２１０と、情報語マスク部２２０と、パリティ検査符号生成部２３０と、符号語出力部２４０と、同期信号生成部２５０と、備える。情報語入力部２１０は、情報語を符号化並列処理数ビットごとに情報語マスク部２２０に入力する。情報語マスク部２２０は、１つの検査符号生成行列により並列演算を可能とするように、並列入力する情報語の不足箇所にマスクデータを挿入して情報語をパリティ演算部２３３に入力する。する。パリティ検査符号生成部２３０は、情報語マスク部２２０から出力される複数ビットを並列処理して、パリティ検査符号を生成する。符号語出力部２４０は、情報語にパリティ検査符号を付加して符号語を出力する。同期信号生成部２５０は、並列処理数Ｐ、巡回行列の行列サイズｒ、情報語のブロック数ｓなどから各機能部の動作タイミングを制御する同期信号を生成する。
【００６２】
そして、パリティ検査符号生成部２３０は、検査符号生成行列記憶部２３１と、第１生成行列巡回置換部２３２と、パリティ演算部２３３と、検査符号記憶部２３４と、を有する。検査符号生成行列記憶部２３１は、低密度パリティ検査符号の生成行列の巡回行列部分である検査符号生成行列を記憶する。第１生成行列巡回置換部２３２は、検査符号生成行列を並列処理数ごとに巡回置換する。パリティ演算部２３３は、情報語と巡回置換を行なった検査符号生成行列とパリティ検査符号とを演算する。検査符号記憶部２３４は、パリティ演算結果をパリティ検査符号として記憶する。
【００６３】
なお、パリティ検査符号生成部２３０を、単位行列を含む生成行列に基づいて並列処理する構成に置き換えた場合には、直接、符号語Ｙが生成されることになる。また、情報語マスク部２２０と、パリティ検査符号生成部２３０と、同期信号生成部２５０と、を含むパリティ検査符号生成装置２６０を１つの装置として構成してもよい。
【００６４】
次に、図２の構成図を用いて、符号化装置２００の動作を説明する。
【００６５】
まず、図２の情報語入力部２１０からの情報語が情報語マスク部２２０に入力される。次に、情報語マスク部２２０は、（r mod Ｐ）≠０の場合、情報語Ｘに対し、ｒビットごとに、｛Ｐ−(r mod Ｐ)｝ビットの０マスクデータを挿入済みの情報語Ｘ’を生成し、Ｐビットごとにパリティ演算部２３３に出力する。また、検査符号生成行列記憶部２３１から検査符号生成行列｛Ｂi,1，…，Ｂi,t｝が第１生成行列巡回置換部２３２に入力される。第１生成行列巡回置換部２３２は、情報語Ｘ'i,mのビット位置ｍに応じて、巡回置換Ｃmを行った｛ＣmＢi,1，…，ＣmＢi,t｝をパリティ演算部２３３に出力する。なお、Ｃmによる右巡回置換量はｍビットである。パリティ演算部２３３は、マスクデータ挿入後の情報語Ｘ'i,mと巡回置換後の生成行列｛ＣmＢi,1，…，ＣmＢi,t｝を乗算した結果と、パリティ検査符号｛Ｙs+1，…，Ｙs+t｝をパリティ演算する。そして、パリティ演算部２３３は、パリティ演算結果を、情報語Ｘ'i,mまでのパリティ検査符号として、検査符号記憶部２３４に記憶する。なお、パリティ演算部２３３によるＰビット分のパリティ演算の並列処理は、式（１５）または式（１６）に従って行われる。このため、情報語マスク部２２０においてマスクデータを挿入した情報語Ｘ’によりパリティ検査符号Ｚ's×r’を生成することで、マスクデータ挿入前の情報語Ｘに対するパリティ検査符号Ｚs×rを生成できる。
【００６６】
本実施形態の符号化装置２００は、１種類の巡回置換を行なった生成行列あるいは検査符号生成行列で、並列処理数Ｐが生成行列Ｇの単位行列Ｉや巡回行列Ｂの行列サイズｒの約数でない場合に、情報語マスク処理により情報語に対してｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝のゼロをマスクデータとして挿入する。これにより、符号化装置２００は、生成行列あるいは検査符号生成行列の更新時も情報語と生成行列あるいは検査符号生成行列の対応を一致させる。したがって、並列処理数Ｐが生成行列Ｇの単位行列Ｉや巡回行列Ｂの行列サイズｒの約数の場合と同様に、１種類の生成行列あるいは検査符号生成行列の巡回置換によってパリティ演算を繰り返すことができる。
【００６７】
（情報語マスク部の構成）
図５は、本実施形態に係る情報語マスク部２２０の構成を示すブロック図である。
なお、情報語マスク部２２０の構成は図５の構成に限定されず、情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットの０マスクビットが挿入できる構成であればよい。図５にはメモリ５０１への書込／読出しを制御することで０マスクビットを挿入する構成を示している。しかし、カウンタで情報語のビット数をカウントしてレジスタやバッファによりハードウェア的に０マスクビットを挿入する構成であってもよい。また、全てをソフトウェアプログラム、例えば、マイクロプログラムで実行する構成であってもよい。例えば、ハードウェア的に０マスクビットを挿入する構成の場合、一旦メモリに０マスクビットを挿入した情報語Ｘ’を記憶することは必須ではない。Ｐビット単位に実時間でレジスタ又はバッファで｛Ｐ−（ｒ mod Ｐ）｝ビットの０マスクビットを挿入して出力する構成であってもよい。
【００６８】
情報語マスク部２２０は、メモリ５０１と、ライトアドレスポインタ５０２と、リードアドレスポインタ５０３と、を有する。メモリ５０１は、並列演算数Ｐのビット幅で少なくとも｛（［ｒ／Ｐ］＋１）×ｓ｝アドレスのアドレス容量を有する。ライトアドレスポインタ５０２は、情報語入力部２１０からのＰビットをメモリ５０１に書き込むためのライトアドレスをポイントする。リードアドレスポインタ５０３は、パリティ演算部２３３へＰビットを並列に出力するためのリードアドレスをポイントする。なお、ここで、ガウス記号［Ｘ］は、Ｘを越えない最大の整数であり、［ｒ／Ｐ］はｒをＰで割った場合の余りを除いた整数商となる。
【００６９】
そして、同期信号生成部２５０からの制御によって、ライトアドレス（［ｒ／Ｐ］＋１）ごとに、（ｒ mod Ｐ）ビットの情報語と｛Ｐ−（ｒ mod Ｐ）｝ビットの０マスクビットとがメモリ５０１に書き込まれる。この制御によって、情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットの０マスクビットが挿入されることになる。
【００７０】
なお、メモリ５０１への書込／読出し制御は、同期信号生成部２５０からの信号によらず、情報語マスク部２２０内で行なわれてもよい。
【００７１】
（パリティ演算部の構成）
図６は、本実施形態に係るパリティ演算部２３３の構成を示すブロック図である。
なお、パリティ演算部２３３の構成は図６の構成に限定されない。例えば、並列演算数Ｐビットの情報語と、ビット数に対応して巡回置換された検査符号生成行列と、既にパリティ演算済みのパリティ検査符号の演算結果とから、情報語の処理済みビット数までのパリティ検査符号を生成する構成であればよい。また、全てをソフトウェアプログラム、例えば、マイクロプログラムで実行する構成であってもよい。
【００７２】
パリティ演算部２３３は、ＡＮＤ演算部６１１〜６１Ｐと、ＸＯＲ演算部６２０と、を有する。ＡＮＤ演算部６１１〜６１Ｐは、情報語マスク部２２０からＰビット並列に入力される情報語と、第１生成行列巡回置換部２３２から情報語のビット数に対応して巡回置換された検査符号生成行列とを論理積（ＡＮＤ）する。ＸＯＲ演算部６２０は、ＡＮＤ演算部６１１〜６１Ｐの演算結果と、検査符号記憶部２３４から読出された既にパリティ演算済みのパリティ検査符号とを排他的論理和（ＸＯＲ）して、パリティ演算結果として検査符号記憶部２３４に出力する。
【００７３】
なお、パリティ演算部２３３の演算タイミングは、同期信号生成部２５０からの演算タイミングにより他の構成部と同期する。
【００７４】
（検査符号記憶部）
図７は、本実施形態に係る検査符号記憶部２３４の構成を示すブロック図である。
なお、検査符号記憶部２３４の構成は図７の構成に限定されない。例えば、少なくとも（ｔ×ｒ）ビットのパリティ演算結果のパリティ検査符号を一時記憶して次のパリティ演算に使用すると共に、最終的な情報語の全ビットにより生成されたパリティ検査符号を、符号語出力部２４０に出力する構成であればよい。
【００７５】
検査符号記憶部２３４は、パリティ演算部２３３からのＰビットの並列演算結果を一時保存し、次のＰビットの並列演算のためにパリティ演算部２３３に出力する。さらに、検査符号記憶部２３４は、最終的な情報語の全ビットにより生成されたパリティ検査符号を符号語出力部２４０に出力するための（ｔ×ｒ）ビットのバッファ７０１を有する。
【００７６】
なお、検査符号記憶部２３４とパリティ演算部２３３との演算タイミングは、同期信号生成部２５０からのＷ／Ｒタイミング（書込／読出タイミング）により同期する。
【００７７】
＜符号化装置のハードウェア構成＞
図８は、本実施形態に係る符号化装置２００のハードウェア構成を示すブロック図である。
【００７８】
図８で、ＣＰＵ（Central Processing Unit）８１０は演算制御用のプロセッサであり、プログラムを実行することで図２の符号化装置２００の各構成部を実現する。パリティ演算部８１１〜８１Ｐは、情報語のＰビットのパリティ演算を並列して行なう。ＲＯＭ（Read Only Memory）８２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部８３０は、ネットワークを介して符号語を通信する。なお、ＣＰＵ８１０は１つに限定されず、複数のＣＰＵであっても、あるいは画像処理用のＧＰＵ（Graphics Processing Unit）を含んでもよい。また、パリティ演算部８１１〜８１Ｐの処理は、ソフトウェアのマルチプロセッシングにより行なわれてもよい。
【００７９】
ＲＡＭ（Random Access Memory）８４０は、ＣＰＵ８１０またはパリティ演算部８１１〜８１Ｐが一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ８４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。情報語８４１は、符号化装置２００が符号化するデータである。符号化パラメータ８４２は、符号化を制御するためのパラメータであり、例えば、単位行列や巡回行列の行列サイズｒ、情報語のブロック数ｓ、並列演算数Ｐなどを含む。マスクされた情報語８４３は、情報語マスク処理後のデータである。検査符号生成行列８４４は、パリティ演算のために読出された行列である。巡回置換生成行列８４５は、検査符号生成行列８４４をパリティ演算する情報語のビット数に対応して巡回置換するための行列である。検査符号記憶領域８４６は、パリティ演算結果を次のパリティ演算のために保持する。符号語８４７は、通信制御部８３０を介して送受信されるデータである。
【００８０】
ストレージ８５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。符号語生成行列８５１は、情報語から符号語を生成する行列であり、符号語からパリティ検査符号を生成する検査符号生成行列を記憶する検査符号生成行列記憶部２３１を含む。ストレージ８５０には、以下のプログラムが格納される。通信制御プログラム８５２は、通信制御用のプログラムである。符号化制御モジュール８５３は、情報語から符号語を生成するためのモジュールである。マスク制御モジュール８５４は、情報語を１つの検査符号生成行列により並列演算可能とするためにマスクビットを挿入するモジュールである。パリティ演算モジュール８５５は、情報語の複数ビットと巡回置換された検査符号生成行列と既に演算されたパリティ演算符号とを並列演算するモジュールである。
【００８１】
入出力インタフェース８６０は、入出力機器との入出力データをインタフェースする。
入出力インタフェース８６０には、情報語の入出力を行なう情報語入出力部８６１と、符号化装置２００のステータスを表示して監視するための表示部８６２と、符号化装置２００を操作するための操作部８６３とが接続される。
【００８２】
なお、図８のＲＡＭ８４０やストレージ８５０には、符号化装置２００が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。また、符号化装置２００を復号も行なう通信装置として使用する場合には、符号語を検査して情報語を復元する行列である検査行列や、符号語から情報語を復元するモジュールである復号モジュールがストレージ８５０に格納されてよい。
【００８３】
＜符号化装置の処理手順＞
図９は、本実施形態に係る符号化装置２００の処理手順を示すフローチャートである。
このフローチャートは、図８のＣＰＵ８１０とＰ個のパリティ演算部８１１〜８１Ｐとが、ＲＡＭ８４０を用いながら実行し、図２の構成部を実現する。
【００８４】
符号化装置２００は、ステップＳ９０１において、ＱＣ−ＬＤＰＣ符号を含む符号語Ｙを生成する元の情報語Ｘを取得して記憶する。次に、符号化装置２００は、ステップＳ９０３において、情報語Ｘに、並列演算数Ｐと巡回行列Ｂの行列サイズｒに対応するマスクビットを挿入した情報語Ｘ’に基づいて、パリティ検査符号の生成処理を実行する。そして、符号化装置２００は、ステップＳ９０５において、情報語Ｘに生成したＱＣ−ＬＤＰＣ符号を付加して、符号語を生成する。
【００８５】
なお、単位行列を含む生成行列により情報語から直接、符号語を生成する場合には、使用する「検査符号生成行列」を「生成行列」に置き換えることにより、ステップＳ９０３の生成処理と同様の手順によって実現できる。
【００８６】
（パリティ検査符号生成処理）
図１０は、本実施形態に係るパリティ検査符号の生成処理（Ｓ９０３）の手順を示すフローチャートである。
【００８７】
パリティ検査符号の生成処理（Ｓ９０３）は、情報語のｒビットごとにマスクデータを挿入する情報語マスク処理（Ｓ１００１）と、マスクデータが挿入された情報語を符号化並列処理数ごとに読み出す情報語読み出し処理（Ｓ１００３）とを有する。さらに、パリティ検査符号の生成処理（Ｓ９０３）は、情報語のビット数に対応して検査符号生成行列を更新する必要があるかを判定する検査符号生成行列の更新判定処理（Ｓ１００５）と、を有する。また、パリティ検査符号の生成処理（Ｓ９０３）は、パリティ演算する情報語のビット数に対応する検査符号生成行列を読み出す検査符号生成行列の読み出し処理（Ｓ１００７）と、を有する。さらに、パリティ検査符号の生成処理（Ｓ９０３）は、読み出した検査符号生成行列を並列処理数ごとに巡回置換する検査符号生成行列の巡回置換処理（Ｓ１００９）と、を有する。また、パリティ検査符号の生成処理（Ｓ９０３）は、マスクデータが挿入された情報語と巡回置換を行なった検査符号生成行列と演算済みのパリティ検査符号とから、パリティ検査符号を生成するパリティ演算処理（Ｓ１０１１）と、を有する。さらに、パリティ検査符号の生成処理（Ｓ９０３）は、生成したパリティ検査符号を記憶する検査符号記憶処理（Ｓ１０１３）と、パリティ検査符号の生成処理の完了を判定する検査符号演算完了の判定処理（Ｓ１０１５）と、を有する。
【００８８】
符号化装置２００は、情報語マスク処理（Ｓ１００１）において、情報語のｒビットごとにマスクデータを挿入してマスクされた情報語８４３として記憶する。符号化装置２００は、情報語読み出し処理（Ｓ１００３）において、マスクデータ挿入済みの情報語を先頭から並列処理数ずつ読み出す。符号化装置２００は、検査符号生成行列の更新判定（Ｓ１００５）において、情報語の読み出しビット数から検査符号生成行列を更新する必要があるかどうかを判定する。検査符号生成行列の更新が必要な場合、符号化装置２００は、検査符号生成行列の読み出し処理（Ｓ１００７）において、情報語に対応する検査符号生成行列を読み出して保持する。
検査符号生成行列の更新が不要の場合、符号化装置２００は、検査符号生成行列の巡回置換処理（Ｓ１００９）において、読み出し済みで保持された検査符号生成行列８４４を並列処理数分だけ巡回置換する。符号化装置２００は、パリティ演算処理（Ｓ１０１１）において、マスクデータ挿入済みの情報語と巡回置換済みの検査符号生成行列と読出した演算済みのパリティ検査符号とによりパリティ演算を行う。符号化装置２００は、検査符号記憶処理（Ｓ１０１３）において、パリティ演算結果を次のパリティ演算のために演算済みパリティ検査符号として検査符号記憶領域８４６に記憶する。符号化装置２００は、検査符号演算完了の判定処理（Ｓ１０１５）において、情報語の読み出しビット数により検査符号演算完了の判定を行い、未完了の場合は、情報語読み出し処理（Ｓ１００３）に戻って、次のＰビットの情報語について並列処理を繰り返す。
【００８９】
（情報語マスク処理）
図１１は、本実施形態に係る情報語マスク処理（Ｓ１００１）の手順を示すフローチャートである。
【００９０】
符号化装置２００は、ステップＳ１１０１において、情報語のビット数（ｒ×ｓ）と、単位行列や巡回行列の行列サイズｒと、パリティ演算部８１１〜８１Ｐの並列演算数Ｐと、を取得する。
そして、符号化装置２００は、ステップＳ１１０３において、（ｒ mod Ｐ）が０か否かを判定する。（ｒ mod Ｐ）が０の場合、符号化装置２００は、ステップＳ１１２１において、０マスクビットを挿入せずに、情報語をそのままパリティ演算部にＰビットごとに出力する。
【００９１】
（ｒ mod Ｐ）が０でない場合、符号化装置２００は、ステップＳ１１０５において、マスクビット数ｖに｛Ｐ−（ｒ mod Ｐ）｝を設定する。符号化装置２００は、ステップＳ１１０７において、変数ｊおよび変数ｑを０に初期化する。
【００９２】
符号化装置２００は、ステップＳ１１０９において、情報語の１ビットを出力またはメモリに記憶する。次に、符号化装置２００は、ステップＳ１１１１において、変数ｊおよび変数ｑに１を加える。そして、符号化装置２００は、ステップＳ１１１３において、変数ｊ＝ｒであるか否かを判定する。変数ｊ＝ｒでなければ、符号化装置２００は、ステップＳ１１０９に戻って、情報ビットの出力あるいはメモリへの書込を繰り返す。かかる、ステップＳ１１０９〜Ｓ１１１３によって、情報語のｒビット毎の出力またはメモリへの記憶が行なわれる。本例は、図５の情報語マスク部２２０の構成を念頭にしているので、Ｐビットの並列処理は外部構成（メモリ構成）で実現されるが、ソフトウェアによりＰビットの並列出力を行なうのであれば、Ｐビット単位の並列出力を制御するステップが追加される。
【００９３】
変数ｊ＝ｒとなれば、符号化装置２００は、ステップＳ１１１５において、ｖ＝｛Ｐ−（ｒ mod Ｐ）｝ビットの０を出力あるいはメモリに記憶する。次に、符号化装置２００は、ステップＳ１１１７において、ｒビットをカウントする変数ｊを０に初期化する。そして、符号化装置２００は、ステップＳ１１１９において、変数ｑ＝ｒ×ｓであるか否かを判定する。変数ｑ＝ｒ×ｓでない場合、符号化装置２００は、ステップＳ１１０９に戻って、情報語の次のｒビットの出力あるいはメモリへの記憶を繰り返す。かかる、ステップＳ１１０９〜Ｓ１１１５によって、情報語のｒビットの後に｛Ｐ−（ｒ mod Ｐ）｝ビットの０を挿入することができる。
【００９４】
変数ｑ＝ｒ×ｓとなれば、情報語の全ビットを出力あるいはメモリへ記憶したので、情報語マスク処理（Ｓ１００１）は終了してリターンする。
【００９５】
＜ＱＣ−ＬＤＰＣ符号の生成処理＞
図１２は、本実施形態に係るＱＣ−ＬＤＰＣ符号の生成処理を説明する図である。以下、図１０のフローチャートに従って、符号化装置２００によるＱＣ−ＬＤＰＣ符号の生成処理を説明する。
【００９６】
まず、符号化装置２００は、情報語マスク処理（Ｓ１００１）において、r mod Ｐ ≠０の場合、情報語Ｘに対しｒビットごとに、｛Ｐ−(r mod Ｐ)｝ビットの０マスクデータ挿入した情報語Ｘ’を生成する。ここで、
【００９７】
【数１１】
2015133095.tif 000013
とすると、情報語Ｘとマスクデータ挿入後の情報語Ｘ’との関係は、
【００９８】
【数１２】
2015133095.tif 000014
【００９９】
【数１３】
2015133095.tif 000015
となる。
【０１００】
次に、符号化装置２００は、情報語読み出し処理（Ｓ１００３）において、情報語Ｘ’を並列処理数であるＰビットごとに読み出す。符号化装置２００は、検査符号生成行列更新の判定処理（Ｓ１００５）において、情報語Ｘ’の読み出しビット数から検査符号生成行列を更新するかどうかを判定する。符号化装置２００は、検査符号生成行列の更新判定（Ｓ１００５）の判定により、情報語Ｘ’をｒ’ビット分読み出すごとに、検査符号生成行列の読み出し処理（Ｓ１００７）によって、巡回行列Ｂからなる検査符号生成行列｛Ｂi,1，…，Ｂi,t｝を更新する。符号化装置２００は、検査符号生成行列の更新時以外は、検査符号生成行列の巡回置換処理（Ｓ１００９）において、右巡回置換を行い、情報語Ｘ'i,mのビット位置ｍに応じて巡回置換Ｃmを行った検査符号生成行列｛ＣmＢi,1，…，ＣmＢi,t｝を生成する。符号化装置２００は、パリティ演算処理（Ｓ１０１１）において、マスクデータ挿入後の情報語Ｘ'i,mと巡回置換後の検査符号生成行列｛ＣmＢi,1，…，ＣmＢi,t｝を乗算した結果と、既に演算後のパリティ検査符号｛Ys+1,…,Ys+t｝とをパリティ演算する。そして、符号化装置２００は、パリティ演算結果を、情報語Ｘ'i,mまでのパリティ検査符号として、検査符号記憶処理（Ｓ１０１３）において記憶する。
【０１０１】
このため、図１２に示すように、繰り返しの回数であるＬサイクルごとに、マスクデータ挿入後の情報語Ｘ’は、マスクデータ｛0,…,0｝を含むデータとなり、検査符号生成行列は｛Ｂi,1，…，Ｂi,t｝から｛Ｂi+1,1，…，Ｂi+1,t｝に更新する。また、検査符号生成行列の更新時以外のサイクルでは、読み出した検査符号生成行列の巡回置換は、Ｐビットずつの巡回置換を行う。
【０１０２】
一般に、情報語Ｘ'i,ｍによる検査符号生成処理は、情報語Ｘ’の先頭からｄビット分まで演算したパリティ検査符号をＺ'dとすると、パリティ演算結果Ｚ'd+1は、
【０１０３】
【数１４】
2015133095.tif 000016
と表せる。
【０１０４】
式（１４）を、ｉ＝１〜ｓ、ｍ＝０〜ｒ'-１まで繰り返すことで、情報語Ｘ’に対するパリティ検査符号Ｚ's×r’を生成することができる。なお、情報語Ｘ'iのビット数であるｒ’は、マスクデータ挿入により、ｒ' mod Ｐ = 0である。このため、符号化装置２００におけるパリティ演算処理（Ｓ１０１１）によるＰビット分のパリティ演算の並列処理は、
【０１０５】
【数１５】
2015133095.tif 000017
となる。
【０１０６】
なお、式（１５）において、ｍ＋Ｐ−１＜ｒの場合、情報語Ｘ'i,mはマスクデータを含まない処理であるため、式（９）と同一の処理結果となる。また、ｍ＋Ｐ−１≧ｒの場合、パリティ演算にマスクデータを含む処理であり、式（１５）は、｛X'i,r,…,X'i,r’-1｝＝｛0,…,0｝であるため、
【０１０７】
【数１６】
2015133095.tif 000018
となる。
【０１０８】
式（１５）および式（１６）において、Ｘ'i,mのｍは必ずｍ＜ｒであるため、Ｘ'i,m＝Ｘi,mである。このため、情報語マスク処理（Ｓ１００１）において生成した、０マスクデータを挿入した情報語Ｘ’によりパリティ演算を行いパリティ演算検査符号Ｚ's×r’を生成することで、マスク前の情報語Ｘに対するパリティ演算である式（９）をｄ＝０からｋ−１まで繰り返すことと同一のパリティ検査符号Ｚs×rを生成することができる。
【０１０９】
＜ＱＣ−ＬＤＰＣ符号の生成処理の具体例＞
図１３は、本実施形態に係る生成行列１３００の具体例を示す図である。
【０１１０】
図７の生成行列１３００を構成する単位行列Ｉまたはその巡回行列Ｂは、（511×511）の行列で構成されている。また、ブロック数は１４で、巡回行列Ｂは２列である。
【０１１１】
図１４は、本実施形態に係るＱＣ−ＬＤＰＣ符号の生成処理の具体例を説明する図である。なお、図１３の単位行列Ｉまたはその巡回行列Ｂの行列サイズｒが５１１の生成行列を使用し、並列処理数Ｐを１４、ブロック数ｓを１４、とした場合の具体例について説明する。本具体例では、図２の符号化装置２００を用いて、図１３の生成行列の検査符号生成行列による符号化処理により、パリティ検査符号｛Ｙ15,Ｙ16｝を生成する。なお、符号化処理は、検査符号生成行列の列ごとに独立した計算を行うため、Ｙ15とＹ16は検査符号生成行列Ｂi,jのみが異なる同一の方法により計算することができる。以下、Ｙ15の演算例について説明する。なお、Ｙ15の生成において、検査符号記憶処理（Ｓ１０１３）において記憶するｔサイクル演算済みのパリティ演算結果をＺAtと表す。
【０１１２】
符号化装置２００は、情報語マスク処理（Ｓ１００１）により、図１４のマスク後の情報語Ｘ’に示すように、情報語の５１１ビットごとに７ビットのマスクデータを挿入する。符号化装置２００は、情報語読み出し処理（Ｓ１００３）において、マスク後の情報語Ｘ’を１４ビットごとに読み出し、５１８サイクルで処理を行う。なお、３７サイクルごとにマスクデータを含む情報語を読み出すことになる。
【０１１３】
まず、符号化装置２００は、１サイクル目の情報語読み出し処理（Ｓ１００３）において、｛Ｘ'1,0,…,Ｘ'1,13｝を読み出す。符号化装置２００は、検査符号生成行列の更新判定処理（Ｓ１００５）において、情報語の読み出しビットが１〜１４ビット目の処理であるため、検査符号生成行列の更新が必要と判定する。さらに符号化装置２００は、検査符号生成行列の読み出し処理（Ｓ１００７）において、検査符号生成行列に含まれる巡回行列Ｂ1,1を読み出す。符号化装置２００は、パリティ演算処理（Ｓ１０１１）において、巡回行列Ｂ1,1を巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の右巡回置換を行ない、情報語{Ｘ'1,0,…, Ｘ'1,13｝および演算済みパリティ検査符号であるＺA0との式（１７）のパリティ演算を行う。そして、符号化装置２００は、検査符号記憶処理（Ｓ１０１３）においてパリティ演算結果ＺA1を記憶する。
【０１１４】
【数１７】
2015133095.tif 000019
【０１１５】
検査符号演算完了の判定処理（Ｓ１０１５）において、情報語の読み出しビット数が１４であるため、検査符号演算未完了と判定し、情報語読み出し処理（Ｓ１００３）に戻り、２サイクル目の処理を行う。
【０１１６】
符号化装置２００は、２サイクル目の情報語読み出し処理（Ｓ１００３）において、｛Ｘ'1,14,…,Ｘ'1,27｝を読み出す。符号化装置２００は、検査符号生成行列更新の判定処理（Ｓ１００５）においては、情報語の読み出しビットが１５〜２８ビット目であるため、検査符号生成行列の未更新と判定する。したがって、符号化装置２００は、検査符号生成行列の巡回置換処理（Ｓ１００９）において、読み出している巡回行列Ｂ1,1を１４ビット右巡回置換によりＣ14Ｂ1,1に置換する。符号化装置２００は、パリティ演算処理（Ｓ１０１１）において、巡回置換された巡回行列Ｃ14Ｂ1,1を巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の右巡回置換を行ない、情報語｛Ｘ'1,14,…,Ｘ'1,27｝および演算済みパリティ演算結果ＺA1とのパリティ演算を行う。そして、符号化装置２００は、検査符号記憶処理（Ｓ１０１３）においてパリティ演算結果ＺA2を記憶する。
【０１１７】
【数１８】
2015133095.tif 000020
【０１１８】
３サイクル目から３６サイクル目までは、同様にマスク後の情報語Ｘ'1を１４ビットずつ読み出し、パリティ演算結果ＺAtのパリティ演算を行う。
【０１１９】
そして、符号化装置２００は、３７サイクル目の情報語読み出し処理（Ｓ１００３）において、｛Ｘ'1,504,…,Ｘ'1,517｝を読み出す。符号化装置２００は、検査符号生成行列の更新判定処理（Ｓ１００５）において、情報語読み出しビット数が５０５〜５１８ビット目であるため、検査符号生成行列の未更新と判定する。したがって、符号化装置２００は、検査符号生成行列の巡回置換処理（Ｓ１００９）において、読み出している巡回行列Ｃ490Ｂ1,1を１４ビット右巡回置換によりＣ504Ｂ1,1に置換する。符号化装置２００は、パリティ演算処理（Ｓ１０１１）において、巡回置換された巡回行列Ｃ504Ｂ1,1を巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の右巡回置換を行ない、情報語｛Ｘ'1,504,…,Ｘ'1,517｝および演算済みパリティ演算結果ＺA36とのパリティ演算を行う。そして、符号化装置２００は、パリティ演算結果ＺA37を記憶する。
【０１２０】
【数１９】
2015133095.tif 000021
【０１２１】
以上により、検査符号生成行列中の巡回行列Ｂ1,1のビット幅であるマスクデータ挿入前の情報語の５１１ビット分のパリティ検査符号生成が完了する。
【０１２２】
次に、符号化装置２００は、３８サイクル目の情報語読み出し処理（Ｓ１００３）において、｛Ｘ'2,0,…,Ｘ'2,13｝を読み出す。符号化装置２００は、検査符号生成行列の更新判定処理（Ｓ１００５）において、情報語読み出しビットが５１９〜５３２ビット目のため、巡回行列Ｂ1,1のビット幅である５１１ビット分の処理が完了し、読み出した情報語｛Ｘ'2,0,…,Ｘ'2,13｝に対応する検査符号生成行列への更新が必要と判定する。符号化装置２００は、検査符号生成行列の読み出し処理（Ｓ１００７）において、巡回行列Ｂ2,1を読み出す。符号化装置２００は、パリティ演算処理（Ｓ１０１１）において、巡回行列Ｂ2,1を巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の右巡回置換を行ない、情報語｛Ｘ'2,0,…,Ｘ'2,13｝および演算済みパリティ演算結果ＺA37とのパリティ演算を行う。そして、符号化装置２００は、パリティ演算結果ＺA38を記憶する。
【０１２３】
【数２０】
2015133095.tif 000022
【０１２４】
検査符号演算完了の判定処理（Ｓ１０１５）においては、情報語の読み出しビット数から検査符号演算未完了と判定し、情報語読み出し処理（Ｓ１００３）に戻る。
【０１２５】
同様に、３９サイクル目から５１７サイクル目までは、マスク後の情報語｛Ｘ'2,…,Ｘ'14｝を１４ビットずつ読み出し、符号化装置２００は、パリティ演算結果ＺA517を生成する。
【０１２６】
最後に、５１８サイクル目の情報語読み出し処理（Ｓ１００３）において、｛Ｘ'14,504,…,Ｘ'14,517｝を読み出す。符号化装置２００は、検査符号生成行列更新の判定処理（Ｓ１００５）において、情報語読み出しビットが７２３９〜７２５２ビット目であるため、検査符号生成行列の未更新と判定する。したがって、符号化装置２００は、検査符号生成行列の巡回置換処理（Ｓ１００９）により、読み出している巡回行列Ｃ490Ｂ14,1を１４ビット右巡回置換によりＣ504Ｂ14,1に置換する。符号化装置２００は、パリティ演算処理（Ｓ１０１１）において、巡回行列Ｃ504Ｂ14,1を巡回置換行列C0〜C13により０〜１３ビットの１４種類の右巡回置換を行ない、情報語｛Ｘ'14,504,…,Ｘ'14,517｝および演算済みパリティ演算結果Ｚ517とのパリティ演算を行う。そして、パリティ演算結果ＺA518を記憶する。
【０１２７】
【数２１】
2015133095.tif 000023
【０１２８】
以上により、検査符号生成行列の巡回行列Ｂ14,1のビット幅である５１１ビット分の情報語に対するパリティ演算結果ＺA518を生成することで、情報語Ｘに対するパリティ検査符号Ｙ15の演算が完了する。同様に、検査符号生成行列の巡回行列｛Ｂ1,1,…,Ｂ14,1｝を巡回行列｛Ｂ1,2,…,Ｂ14,2｝とすることで、符号語Ｙ16を生成することができる。
【０１２９】
（図２の符号化装置の構成における具体的処理）
図２の符号化装置の構成において、図１３の生成行列により、並列処理数Ｐを１４とした場合の具体的処理について説明する。なお、図１３の生成行列の検査符号生成行列による符号化処理によって、パリティ検査符号{Ｙ15,Ｙ16}を生成する。以下、Ｙ15の演算例について説明する。なお、Ｙ15の生成において、検査符号記憶部２３４で記憶するｔサイクル演算済みのパリティ演算結果をＺAtと表す。
【０１３０】
まず、１サイクル目に、情報語マスク部２２０は、情報語入力部２１０から｛Ｘ1,0,…,Ｘ1,13｝を入力する。情報語マスク部２２０は、マスクデータ挿入は不要なビットのため、パリティ演算部２３３に｛Ｘ'1,0,…,Ｘ'1,13｝を出力する。また、検査符号生成行列記憶部２３１から検査符号生成行列の巡回行列Ｂ1,1が読み出され第１生成行列巡回置換部２３２のレジスタに記憶される。第１生成行列巡回置換部２３２のレジスタの巡回行列Ｂ1,1は、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換が行われ、パリティ演算部２３３に入力される。パリティ演算部２３３は、情報語マスク部２２０から入力する｛Ｘ'1,0,…,Ｘ'1,13｝と０〜１３ビット右巡回置換を行なった検査符号生成行列とパリティ演算結果ＺA0とにより、式（１７）のパリティ演算を行う。なお、パリティ演算結果ＺA0は０値である。また、第１生成行列巡回置換部２３２のレジスタの巡回行列Ｂ1,1は、巡回置換行列Ｃ14により１４ビットの巡回置換が行われ、次サイクルでＣ14Ｂ1,1に更新される。
【０１３１】
次に、２サイクル目に、情報語マスク部２２０は、情報語入力部２１０から｛Ｘ1,14,…,Ｘ1,27｝を入力する。また、第１生成行列巡回置換部２３２のレジスタは、巡回置換を行なった巡回行列Ｃ14Ｂ1,1に更新済みである。第１生成行列巡回置換部２３２のレジスタの巡回行列Ｃ14Ｂ1,1は、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換が行われ、パリティ演算部２３３に入力される。パリティ演算部２３３は、情報語マスク部２２０から入力する｛Ｘ'1,14,…,Ｘ'1,27｝と０〜１３ビット右巡回置換を行なった巡回行列とパリティ演算結果ＺA1により、式（１８）のパリティ演算を行う。また、第１生成行列巡回置換部２３２のレジスタの巡回行列Ｃ14Ｂ1,1は、巡回置換行列Ｃ14により１４ビットの巡回置換が行われ、次サイクルでＣ28Ｂ1,1に更新される。
【０１３２】
３サイクル目から３６サイクル目までは、同様にマスク後の情報語Ｘ'1（＝Ｘ1）が１４ビットずつパリティ演算部２３３に入力される。第１生成行列巡回置換部２３２のレジスタの巡回置換された巡回行列は、巡回置換行列Ｃ14によりサイクルごとに１４ビットの巡回置換が行われ、パリティ演算結果ＺAtのパリティ演算が行われる。
【０１３３】
次に、３７サイクル目に、情報語マスク部２２０は情報語入力部２１０からの｛Ｘ1,504,…,Ｘ1,510｝を入力する。また、第１生成行列巡回置換部２３２のレジスタは、巡回行列Ｃ504Ｂ1,1に更新済みである。第１生成行列巡回置換部２３２のレジスタの巡回行列Ｃ504Ｂ1,1は、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換を行なった、パリティ演算部２３３に入力される。パリティ演算部２３３は、情報語マスク部２２０から入力する｛Ｘ'1,504,…,Ｘ'1,510, 0, 0, 0, 0, 0, 0, 0｝と０〜１３ビット右巡回置換を行なった検査符号生成行列の巡回行列とパリティ演算結果ＺA36により、式（１９）のパリティ演算を行う。
【０１３４】
以上により、検査符号生成行列の巡回行列Ｂ1,1のビット幅である５１１ビット分の情報語に対するパリティ検査符号の生成が完了するため、次のサイクルに第１生成行列巡回置換部２３２のレジスタを検査符号生成行列の巡回行列Ｂ2,1に更新する。
【０１３５】
次に、３８サイクル目に、情報語マスク部２２０は情報語入力部２１０から｛Ｘ2,0,…,Ｘ2,13}を入力する。また、第１生成行列巡回置換部２３２のレジスタは、巡回行列Ｃ0Ｂ2,1に更新済みである。第１生成行列巡回置換部２３２のレジスタの巡回行列Ｃ0Ｂ2,1は、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換を行なった、パリティ演算部２３３に入力される。パリティ演算部２３３は、情報語マスク部２２０から入力する｛Ｘ'2,0,…,Ｘ'2,13｝と０〜１３ビット右巡回置換を行なった巡回行列を乗算した結果とパリティ演算結果ＺA37により、式（２０）のパリティ演算を行う。また、第１生成行列巡回置換部２３２のレジスタの巡回行列Ｃ0Ｂ2,1は、巡回置換行列Ｃ14により１４ビットの巡回置換が行われ、次サイクルは巡回行列Ｃ14Ｂ2,1に更新される。
【０１３６】
３９サイクル目から５１７サイクル目までは、マスク後の情報語｛Ｘ'2,…,Ｘ'14｝が１４ビットずつ読み出される。第１生成行列巡回置換部２３２は、読み出した検査符号生成行列｛Ｂ2,1,…,Ｂ14,1｝に巡回置換行列Ｃ14による１４ビットの巡回置換を行う。パリティ演算部２３３は、演算済みのパリティ演算結果ＺAtとのパリティ演算を行い、パリティ演算結果ＺA517を生成する。
【０１３７】
最後に、５１８サイクル目に、情報語マスク部２２０は、情報語入力部２１０から｛Ｘ14,504,…,Ｘ14,510}を入力する。第１生成行列巡回置換部２３２のレジスタは、巡回行列Ｃ504Ｂ14,1に更新済みである。第１生成行列巡回置換部２３２のレジスタの巡回行列Ｃ504Ｂ14,1は、巡回置換符号Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換が行われ、パリティ演算部２３３に入力される。パリティ演算部２３３は、情報語マスク部２２０から入力する｛Ｘ'14,504,…,Ｘ'14,510, 0, 0, 0, 0, 0, 0, 0}と０〜１３ビット右巡回置換を行なった巡回行列とパリティ演算結果ＺA517とにより、式（２１）のパリティ演算を行う。
【０１３８】
以上により、検査符号生成行列の巡回行列Ｂ14,1のビット幅である５１１ビット分の情報語に対するパリティ演算結果ＺA518を生成することで、情報語Ｘに対するパリティ検査符号Ｙ15の演算が終了する。同様に、検査符号生成行列の巡回行列{Ｂ1,1,…,Ｂ14,1}を巡回行列{Ｂ1,2,…,Ｂ14,2}とすることで、パリティ検査符号Ｙ16を生成することができる。
【０１３９】
生成されたパリティ検査符号{Ｙ15,Ｙ16}は、検査符号記憶部２３４から読み出されて、符号語出力部２４０において情報語の後に付加されて、符号語{Ｙ1,Ｙ2,…,Ｙ15,Ｙ16}が生成出力される。
【０１４０】
なお、検査符号生成行列に代えて単位行列Ｉを含む生成行列Ｇを用いることにより、検査符号記憶部２３４から直接に符号語を出力することができる。
【０１４１】
本実施形態によれば、情報語にゼロを挿入してビット数を並列演算数の倍数とすることにより、構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択することができる。すなわち、本実施形態によれば、生成行列の巡回行列の行列サイズにかかわらず、１種類の生成行列あるいは検査符号生成行列の巡回置換により、任意の並列処理数によるＱＣ−ＬＤＰＣ符号による符号化方法および符号化装置を実現できる。その理由は、情報語マスク処理により、生成行列あるいは検査符号生成行列中の単位行列や巡回行列の行列サイズであるｒビットごとに情報語にマスクデータを挿入するからである。これにより、並列処理数が生成行列の巡回行列の行列サイズの約数である場合と同一のパリティ演算を実現することができる。
【０１４２】
［第３実施形態］
次に、本発明の第３実施形態に係る符号化装置について説明する。本実施形態に係る符号化装置は、上記第２実施形態と比べ、生成行列または検査符号生成行列の巡回置換を情報語のビット位置ｍではなく、（情報語のビット位置ｍ mod Ｐ）に対応して行なう点で異なる。そして、パリティ演算結果に対して並列処理数Ｐビットの巡回置換を行なう。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１４３】
＜本実施形態に係る符号化装置の構成＞
図１５は、本実施形態に係る符号化装置１５００の構成を示すブロック図である。
なお、図１５において、図２と同様の構成部には同じ参照番号を付して、説明を省略する。
【０１４４】
図１５の符号化装置１５００は、パリティ検査符号生成部１５３０を備える。パリティ検査符号生成部１５３０は、第２生成行列巡回置換部１５３２と、検査符号巡回置換部１５３５と、を有する。したがって、図６のパリティ演算部２３３において、巡回置換された検査符号生成行列は第２生成行列巡回置換部１５３２から取得し、パリティ演算結果のパリティ検査符号は検査符号巡回置換部１５３５に出力されることになる。また、図７の検査符号記憶部２３４において、バッファ７０１に書き込まれるパリティ検査符号は検査符号巡回置換部１５３５から取得されることになる。
【０１４５】
第２生成行列巡回置換部１５３２は、検査符号生成行列を並列処理数ごとに、（情報語のビット位置ｍ mod Ｐ）に対応して巡回置換を行なったパリティ演算部２３３に提供する。検査符号巡回置換部１５３５は、パリティ演算部２３３で算出したパリティ検査符号を並列処理数ビットだけ巡回置換を行なって検査符号記憶部２３４に出力する。
【０１４６】
なお、パリティ検査符号生成部１５３０を、単位行列を含む生成行列に基づいて並列処理する構成に置き換えた場合には、直接、符号語Ｙが生成されることになる。また、情報語マスク部２２０と、パリティ検査符号生成部１５３０と、同期信号生成部２５０と、を含むパリティ検査符号生成装置１５６０を１つの装置として構成してもよい。
【０１４７】
図１５の符号化装置１５００の構成図を用いて、符号化装置および符号化方法の動作を説明する。
【０１４８】
まず、情報語マスク部２２０は、情報語入力部２１０から情報語を並列処理数Ｐビットごとに入力する。次に、情報語マスク部２２０は、（r mod Ｐ）≠０の場合、情報語Ｘに対し、ｒビットごとに、｛Ｐ−(r mod Ｐ)｝ビットの０マスクデータを挿入済みのｒ’ビット単位の情報語Ｘ’を生成し、パリティ演算部２３３に出力する。また、検査符号生成行列記憶部２３１から検査符号生成行列｛Ｂi,1，…，Ｂi,t｝が第２生成行列巡回置換部１５３２に入力される。ただし、情報語Ｘ'i,mのビット位置をｄとすると、ｉ＝ｄ／ｒ＋１，ｄ＝（ｉ−１）×ｒ’＋ｍである。第２生成行列巡回置換部１５３２は、情報語Ｘ'i,mのビット位置ｍに応じて、巡回置換Ｃ(m mod P)を行った｛Ｃ(m mod P)Ｂi,1，…，Ｃ(m mod P)Ｂi,t｝をパリティ演算部２３３に入力する。なお、Ｃmによる右巡回置換量は、mビットである。パリティ演算部２３３は、Ｐビット分の情報語と生成行列を乗算し、既に生成されたパリティ検査符号とのパリティ演算を行った結果を、検査符号巡回置換部１５３５に出力する。検査符号巡回置換部１５３５は、パリティ演算部２３３で算出したパリティ検査符号を、並列処理数Ｐビット分だけ左巡回置換し、検査符号記憶部２３４に記憶する。
【０１４９】
パリティ演算部２３３における、情報語Ｘ'i,mによるパリティ検査符号生成処理は、
【０１５０】
【数２２】
2015133095.tif 000024
と表せる。
【０１５１】
式（２２）の演算は、式（１４）の演算に対し、パリティ演算結果Ｚ'dをｍビット分左巡回置換を行なって演算している状態である。式（２２）をＰビット分並列動作させる場合の演算は、式（２３）となる。
【０１５２】
【数２３】
2015133095.tif 000025
【０１５３】
ただし、図１５の符号化装置１５００は、並列処理数Ｐが生成行列や検査符号生成行列内の巡回行列Ｂの行列サイズｒの約数でない場合、検査符号生成行列Ｂi＝｛Ｂi,1，…，Ｂi,t｝を更新する必要のあるサイクルでは、情報語Ｘ’のＰビットのうち(r mod Ｐ)ビット分のみが有効な情報語であり、その他のビットは０マスクデータである。このため、巡回行列Ｂiによる最後のサイクルでは、検査符号巡回置換部１５３５において、式（２４）に示すような(r mod Ｐ)ビット左巡回置換を行う。
【０１５４】
【数２４】
2015133095.tif 000026
【０１５５】
式（２４）の処理により、巡回行列Ｂiによる演算の左巡回置換量がｒとなり巡回行列の巡回置換が１周するため、巡回行列Ｂi+1による演算を行う際、情報語Ｘ’と符号語Ｙのビット対応が一致する。このため、図２の構成と同様、情報語マスク部２２０がマスクデータを挿入した情報語Ｘ’によりパリティ演算を行いパリティ検査符号Ｚ's×r’を生成する。これにより、マスクデータ挿入前の情報語Ｘに対するパリティ検査符号Ｚs×rを生成することができる。
【０１５６】
なお、本実施形態の構成によれば、検査符号生成行列記憶部２３１から読み出す検査符号生成行列に対する第２生成行列巡回置換部１５３２の処理量は、図２の構成の第１生成行列巡回置換部２３２の処理量に比べて少ない。これにより、例えば、半導体集積回路に実装する場合に配線効率を向上できる。
【０１５７】
＜ＱＣ−ＬＤＰＣ符号の生成処理の具体例＞
次に、第２実施形態に示した具体例を用いて本実施形態の構成および動作を説明する。
図１３の生成行列図により、並列処理数Ｐを１４とした場合の具体例について説明する。
なお、図１３の生成行列の検査符号生成行列による符号化処理により、パリティ検査符号｛Ｙ15,Ｙ16｝が生成される。なお、符号化処理は、検査符号生成行列の列ごとに独立した計算を行うため、Ｙ15とＹ16は検査符号生成行列Ｂi,jのみが異なる同一の方法により計算することができる。以下、パリティ検査符号Ｙ15の演算例について説明する。なお、Ｙ15の生成において、検査符号記憶部２３４で記憶するｔサイクル演算済みのパリティ検査符号をパリティ演算結果ＺAtと表す。
【０１５８】
まず、１サイクル目に、情報語マスク部２２０は、情報語入力部２１０から情報語Ｘの｛Ｘ1,0，…，Ｘ1,13｝を入力する。情報語マスク部２２０は、マスクデータ挿入は不要なビットのため、パリティ演算部２３３に{Ｘ'1,0,…,Ｘ'1,13｝（＝｛Ｘ1,0，…，Ｘ1,13｝）を出力する。検査符号生成行列記憶部２３１から巡回行列Ｂ1,1が読み出され第２生成行列巡回置換部１５３２のレジスタに記憶され、パリティ演算部２３３に入力される。この時、第２生成行列巡回置換部１５３２のレジスタの巡回行列Ｂ1,1は、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換が行われ、パリティ演算部２３３に入力される。パリティ演算部２３３は、情報語マスク部２２０が入力する情報語｛Ｘ'1,0，…，Ｘ'1,13｝と、０〜１３ビット右巡回置換を行なった検査符号生成行列と、既にパリティ演算したパリティ演算結果ＺA0とにより、式（２５）のパリティ演算を行う。そして、パリティ演算部２３３は、パリティ演算結果を検査符号巡回置換部１５３５に出力する。なお、パリティ演算結果ＺA0は０値である。検査符号巡回置換部１５３５は、入力したパリティ演算結果を巡回置換行列Ｃ14-1により左巡回置換を行ない、検査符号記憶部２３４に入力する。
【０１５９】
【数２５】
2015133095.tif 000027
【０１６０】
次に、２サイクル目は、情報語マスク部２２０が、情報語入力部２１０から情報語Ｘの｛Ｘ1,14,…,Ｘ1,27｝を入力する。情報語マスク部２２０は、マスクデータの挿入が不要なビットのため、パリティ演算部２３３に｛Ｘ'1,14,…,Ｘ'1,27｝（＝｛Ｘ1,14,…,Ｘ1,27｝）を出力する。第２生成行列巡回置換部１５３２のレジスタの巡回行列Ｂ1,1は、１サイクル目と同様、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換を行ない、パリティ演算部２３３に入力する。パリティ演算部２３３は、情報語マスク部２２０から入力する情報語｛Ｘ'1,14,…,Ｘ'1,27｝と、０〜１３ビット右巡回置換を行なった検査符号生成行列と、既にパリティ演算したパリティ演算結果ＺA1とにより式（２６）のパリティ演算を行う。そして、演算結果を検査符号巡回置換部１５３５に出力する。
検査符号巡回置換部１５３５では、入力したパリティ演算結果を巡回置換行列Ｃ14-1により左巡回置換を行ない、検査符号記憶部２３４に入力する。
【０１６１】
【数２６】
2015133095.tif 000028
【０１６２】
３サイクル目から３６サイクル目までは、同様にマスク後の情報語Ｘ’が１４ビットずつパリティ演算部２３３に入力される。パリティ演算部２３３は、第２生成行列巡回置換部１５３２で１４ビットごとに右巡回置換を行なった巡回行列Ｂ1,1を乗算した結果と、検査符号記憶部２３４のパリティ検査結果ＺAtとのパリティ演算を行う。そして、パリティ演算部２３３は、演算結果を検査符号巡回置換部１５３５に出力する。検査符号巡回置換部１５３５は、入力したパリティ演算結果を巡回置換行列Ｃ14-1により左巡回置換を行ない、検査符号記憶部２３４に入力する。
【０１６３】
次に、３７サイクル目は、情報語マスク部２２０は、情報語入力部２１０から情報語Ｘの｛Ｘ1,504,…,Ｘ1,510}を入力する。情報語マスク部２２０は、マスクデータ挿入が必要なビットのため、パリティ演算部２３３に｛Ｘ'1,504,…,Ｘ'1,510, 0, 0, 0, 0, 0,0, 0｝を出力する。第２生成行列巡回置換部１５３２のレジスタの巡回行列Ｂ1,1は、１サイクル目と同様、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換が行われ、パリティ演算部２３３に入力される。パリティ演算部２３３は、情報語マスク部２２０から入力する情報語｛Ｘ'1,504,…,Ｘ'1,510, 0, 0, 0, 0, 0, 0, 0}と０〜１３ビット右巡回置換を行なった巡回行列を乗算した結果と、３６サイクル目のパリティ演算結果ＺA36により式（２７）のパリティ演算を行う。そして、パリティ演算部２３３は、パリティ演算結果を、検査符号巡回置換部１５３５に出力する。検査符号巡回置換部１５３５は、巡回行列Ｂ1,1のビット幅である５１１ビット分の情報語に対するパリティ検査符号の生成が完了するサイクルであるため、（511 mod 14）＝７ビット分左巡回置換を行う。検査符号巡回置換部１５３５は、パリティ検査符号の総巡回置換数を巡回行列Ｂの行列サイズである５１１として、検査符号記憶部２３４に記憶する。これにより、検査符号の巡回置換量は巡回行列Ｂに対して１周分となり、次に更新する巡回行列Ｂとパリティ検査符号とのビット対応が一致する。
【０１６４】
【数２７】
2015133095.tif 000029
【０１６５】
以上により、巡回行列Ｂ1,1のビット幅である５１１ビット分の情報語に対するパリティ検査符号の生成が完了するため、次のサイクルに検査符号生成行列記憶部２３１から第２生成行列巡回置換部１５３２のレジスタを巡回行列Ｂ2,1に更新する。
【０１６６】
次に、３８サイクル目は、情報語マスク部２２０は、情報語入力部２１０から情報語Ｘの｛Ｘ2,0,…,Ｘ2,13｝を入力する。情報語マスク部２２０は、マスクデータ挿入は不要なビットのため、パリティ演算部２３３に｛Ｘ'2,0,…,Ｘ'2,13｝（＝｛Ｘ2,0,…,Ｘ2,13｝）を出力する。第２生成行列巡回置換部１５３２のレジスタの巡回行列Ｂ2,1は、１サイクル目と同様、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換が行われ、パリティ演算部２３３に出力される。パリティ演算部２３３は、情報語マスク部２２０から入力する情報語｛Ｘ'2,0,…,Ｘ'2,13｝と、０〜１３ビット右巡回置換を行なった巡回行列と、３７サイクル目のパリティ演算結果ＺA37とにより、式（２８）のパリティ演算を行う。そして、パリティ演算部２３３は、演算結果を検査符号巡回置換部１５３５に出力する。検査符号巡回置換部１５３５は、入力したパリティ演算結果を巡回置換行列Ｃ14-1により左巡回置換し、検査符号記憶部２３４に記憶する。
【０１６７】
【数２８】
2015133095.tif 000030
【０１６８】
３９サイクル目から５１７サイクル目までは、同様に、マスク後の情報語｛Ｘ'2,…,Ｘ'14｝が１４ビットずつ読み出される。第２生成行列巡回置換部１５３２に入力される検査符号生成行列の巡回行列Ｂi,1の３７サイクル毎の更新と巡回置換、検査符号巡回置換部１５３５によるパリティ演算結果の巡回置換により、５１７サイクル目のパリティ演算結果ＺA517が生成される。
【０１６９】
最後に、５１８サイクル目は、情報語マスク部２２０は、情報語入力部２１０から情報語Ｘの｛Ｘ14,504,…,Ｘ14,510｝を入力する。情報語マスク部２２０は、マスクデータ挿入が必要なビットのため、パリティ演算部２３３に｛Ｘ'14,504,…,Ｘ'14,510, 0, 0, 0, 0, 0, 0, 0｝を出力する。第２生成行列巡回置換部１５３２のレジスタの巡回行列Ｂ14,1は、１サイクル目と同様、巡回置換行列Ｃ0〜Ｃ13により０〜１３ビットの１４種類の巡回置換が行われ、パリティ演算部２３３に出力される。パリティ演算部２３３は、情報語マスク部２２０から入力する情報語｛Ｘ'14,504,…,Ｘ'14,510, 0, 0, 0, 0, 0, 0, 0｝と、０〜１３ビット右巡回置換を行なった巡回行列と、５１７サイクル目のパリティ演算結果ＺA517により、式（２９）のパリティ演算を行う。そして、パリティ演算部２３３は、パリティ演算結果を、検査符号巡回置換部１５３５に出力する。検査符号巡回置換部１５３５は、巡回行列Ｂ14,1の更新サイクルであるため、（511 mod 14）＝７ビット分左巡回置換を行ない、パリティ検査符号の総巡回置換数を５１１として検査符号記憶部２３４に記憶する。
【０１７０】
【数２９】
2015133095.tif 000031
【０１７１】
以上により、巡回行列Ｂ14,1のビット幅である５１１ビット分の情報語に対するパリティ演算結果ＺA518を生成することで、情報語Ｘに対するパリティ検査符号Ｙ15の演算が終了する。同様に、検査符号生成行列の巡回行列｛Ｂ1,1,…,Ｂ14,1｝を巡回行列｛Ｂ1,2,…,Ｂ14,2｝とすることで、パリティ検査符号Ｙ16を生成することができる。
【０１７２】
本実施形態によれば、検査符号生成行列記憶部から読み出し検査符号生成行列に対する巡回置換の処理量が少なくなるため、例えば、半導体集積回路に実装する場合に配線効率を向上できる。
【０１７３】
また、第２実施形態と同様に、本実施形態によれば、情報語にゼロを挿入してビット数を並列演算数の倍数とすることにより、構成および動作を複雑にすることなく、実現したい処理性能に対して適切な並列処理数を選択することができる。すなわち、本実施形態によれば、生成行列の巡回行列の行列サイズにかかわらず、１種類の生成行列あるいは検査符号生成行列の巡回置換により、任意の並列処理数によるＱＣ−ＬＤＰＣ符号による符号化方法および符号化装置を実現できる。その理由は、情報語マスク処理により、生成行列あるいは検査符号生成行列中の単位行列や巡回行列の行列サイズであるｒビットごとに情報語にマスクデータを挿入することにある。これにより、並列処理数が生成行列の巡回行列の行列サイズの約数である場合と同一のパリティ演算を実現することができるからである。
【０１７４】
［他の実施形態］
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１７５】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【０１７６】
［実施形態の他の表現］
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
入力された情報語のＰビットを順に生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成部と、
前記検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入して、前記パリティ検査符号生成部に出力する情報語マスク部と、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する符号語出力部と、
を備える符号化装置。
（付記２）
前記情報語マスク部は、前記Ｐビットの並列演算の｛（［ｒ／Ｐ］＋１）×ｉ｝（ｉ＝１…ｓ）サイクル目に、（ｒ mod Ｐ）ビットの情報語と｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロとを含むＰビットとを、前記パリティ検査符号生成部に出力する付記１に記載の符号化装置。
（付記３）
前記パリティ検査符号生成部は、
１つの検査符号生成行列を記憶する検査符号生成行列記憶部と、
前記１つの検査符号生成行列を前記情報語のビット位置ｍに対応して右巡回置換する第１生成行列巡回置換部と、
前記情報語マスク部から出力されたＰビットと、前記巡回置換された検査符号生成行列および前のＰビットの演算結果との演算を行なうパリティ演算部と、
前記パリティ演算部の次のＰビットの演算に使うために、前記パリティ演算部の演算結果を記憶する検査符号記憶部と、
を有する付記１または２に記載の符号化装置。
（付記４）
前記パリティ検査符号生成部は、
１つの検査符号生成行列を記憶する検査符号生成行列記憶部と、
前記１つの検査符号生成行列を前記情報語のビット位置をｍとした場合に、（ｍ mod Ｐ）に対応して右巡回置換する第２生成行列巡回置換部と、
前記情報語マスク部から出力されたＰビットと、前記巡回置換された検査符号生成行列および前のＰビットの演算結果との演算を行なうパリティ演算部と、
前記パリティ演算部の演算結果をＰビットだけ左巡回置換する検査符号巡回置換部と、
前記パリティ演算部の次のＰビットの演算に使うために、前記検査符号巡回置換部による巡回置換の結果を記憶する検査符号記憶部と、
を有する付記１または２に記載の符号化装置。
（付記５）
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
前記生成行列中の単位行列および巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列と並列演算して、前記情報語にＱＣ−ＬＤＰＣ符号が付加された符号語を生成する、
符号化方法。
（付記６）
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムであって、
前記生成行列中の単位行列および巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列と並列演算して、前記情報語にＱＣ−ＬＤＰＣ符号が付加された符号語を生成し、
をコンピュータに実行させる符号化装置の制御プログラム。
（付記７）
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化方法であって、
前記生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成し、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する、
符号化方法。
（付記８）
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムであって、
前記生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成し、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する、
ことをコンピュータに実行させる符号化装置の制御プログラム。
（付記９）
ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成装置であって、
情報語のＰビットを生成行列中の検査符号生成行列と並列演算してＱＣ−ＬＤＰＣ符号を生成するパリティ演算部と、
前記検査符号生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入する情報語マスク部と、
を備え、
前記パリティ演算部は、１つの検査符号生成行列を用いて前記ＱＣ−ＬＤＰＣ符号を生成するパリティ検査符号生成装置。
【０１７７】
この出願は、２０１４年３月４日に出願された日本出願特願２０１４−０４２１６１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１７８】
１００  符号化装置
１０１  情報語
１１０  情報語マスク部
１２０  パリティ検査符号生成部
１２１  ＱＣ−ＬＤＰＣ符号
１３０  符号語出力部
１３１  符号語
２００  符号化装置
２１０  情報語入力部
２２０  情報語マスク部
２３０  パリティ検査符号生成部
２３１  検査符号生成行列記憶部
２３２  第１生成行列巡回置換部
２３３  パリティ演算部
２３４  検査符号記憶部
２４０  符号語出力部
２５０  同期信号生成部
４００  符号化装置
４３０  パリティ検査符号生成部
５０１  メモリ
５０２  ライトアドレスポインタ
５０３  リードアドレスポインタ
６１１  ＡＮＤ演算部
６１２  ＡＮＤ演算部
６１Ｐ  ＡＮＤ演算部
６２０  ＸＯＲ演算部
７０１  バッファ
８１０  ＣＰＵ
８１１  パリティ演算部
８１２  パリティ演算部
８１Ｐ  パリティ演算部
８２０  ＲＯＭ
８３０  通信制御部
８４０  ＲＡＭ
８５０  ストレージ
８６０  入出力インタフェース
８６１  情報語入出力部
８６２  表示部
８６３  操作部
１３００  生成行列
１５００  符号化装置
１５３０  パリティ検査符号生成部
１５３２  第２生成行列巡回置換部
１５３５  検査符号巡回置換部
【図１】
2015133095.tif 000032
【図２】
2015133095.tif 000033
【図３】
2015133095.tif 000034
【図４Ａ】
2015133095.tif 000035
【図４Ｂ】
2015133095.tif 000036
【図５】
2015133095.tif 000037
【図６】
2015133095.tif 000038
【図７】
2015133095.tif 000039
【図８】
2015133095.tif 000040
【図９】
2015133095.tif 000041
【図１０】
2015133095.tif 000042
【図１１】
2015133095.tif 000043
【図１２】
2015133095.tif 000044
【図１３】
2015133095.tif 000045
【図１４】
2015133095.tif 000046
【図１５】
2015133095.tif 000047
【手続補正書】
【提出日】平成28年8月24日(2016.8.24)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記目的を達成するため、本発明に係る符号化装置の制御プログラムは、
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムであって、
前記生成行列中の単位行列および巡回行列の行列サイズをｒビットとし、
Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ mod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列と並列演算して、前記情報語にＱＣ−ＬＤＰＣ符号が付加された符号語を生成する
ことをコンピュータに実行させる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
上記目的を達成するため、本発明に係る符号化装置の制御プログラムは、
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムであって、
前記生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒmod Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成し、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する、
ことをコンピュータに実行させる。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムであって、
前記生成行列中の単位行列および巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ  ｍｏｄ  Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列と並列演算して、前記情報語にＱＣ−ＬＤＰＣ符号が付加された符号語を生成する、
ことをコンピュータに実行させる符号化装置の制御プログラム。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
入力された情報語のＰビットを順に生成行列と並列演算して、符号語を生成する符号化装置の制御プログラムであって、
前記生成行列中の巡回行列の行列サイズをｒビットとし、Ｐビットがｒビットの約数となっていない場合に、前記情報語のｒビットごとに｛Ｐ−（ｒ  ｍｏｄ  Ｐ）｝ビットのゼロを挿入し、
生成されたＰビットを順に前記生成行列中の検査符号生成行列と並列演算して、ＱＣ−ＬＤＰＣ符号を生成し、
前記情報語に前記ＱＣ−ＬＤＰＣ符号を付加して符号語として出力する、
ことをコンピュータに実行させる符号化装置の制御プログラム。
【国際調査報告】
2015133095.tif 000048
2015133095.tif 000049
2015133095.tif 000050
2015133095.tif 000051