(57)【要約】【課題】  同一の構成によって、任意の符号化率のＬＤＰＣ符号を復号できるＬＤＰＣ符号復号装置を提供する。【解決手段】  Ｍｂｍａｘ行Ｎｂｍａｘ列の基本行列と、その要素となる置換行列とで構成されたＬＤＰＣ符号を復号できる構成を備えている。上記の基本行列よりも小さい基本行列に係るＬＤＰＣ符号をも処理できるように、処理対象のＬＤＰＣ符号に係る検査行列に応じて定まる、Ｍｂｍａｘ×Ｎｂｍａｘの有効・無効フラグと、有効な置換行列のシフト量と、処理対象の置換行列サイズと、処理対象の基本行列行数とを保持とを有し、ＢＰアルゴリズムに従った演算を行う列処理演算部や行処理演算部に与える列アドレス及び行アドレスを、保持した情報を利用して生成させる。【選択図】      図１
2008048207.tif 000002
【特許請求の範囲】
【請求項１】
Ｍｂ（但し、Ｍｂ＜＝Ｍｂｍａｘ）行Ｎｂ（但し、Ｎｂ＜＝Ｎｂｍａｘ）列の基本行列と、上記基本行列の要素となるＲ行Ｒ列の置換行列とで構成された低密度パリティチェック符号を復号する低密度パリティチェック符号復号装置において、
通信路データを並列的に取込んで格納し、ＢＰアルゴリズムに従った、基本行列の同一行に係る置換行列の列処理を並列的に実行するＮｂｍａｘ個のデータ格納・列処理演算部と、
全ての上記データ格納・列処理演算部の列処理結果を入力して、ＢＰアルゴリズムに従った行処理を行う行処理演算部と、
入力された通信路データを置換行列サイズＲ毎に分割して、上記各データ格納・列処理演算部に与えた後、上記各データ格納・列処理演算部に応じた列アドレスと、全ての上記データ格納・列処理演算部に共通な行アドレスとを生成して上記各データ格納・列処理演算部に与え、ＢＰアルゴリズムに従った行処理と列処理とを繰り返し実行させ、復号の繰返し回数が所定回数になったときの全ての上記データ格納・列処理演算部における事後対数尤度に基づいて復号データを生成する復号制御部とを備え、
上記復号制御部は、
処理対象の低密度パリティチェック符号に係る検査行列に応じて定まる、Ｍｂｍａｘ×Ｎｂｍａｘの有効・無効フラグと、有効な有効・無効フラグに係る巡回シフト行列でなる置換行列のシフト量とを保持する検査行列情報保持部と、
処理対象の低密度パリティチェック符号における置換行列サイズＲを保持する置換行列サイズ保持部と、
処理対象の低密度パリティチェック符号における基本行列の行数Ｍｂを保持する基本行列行数保持部とを有し、
上記有効・無効フラグ、上記シフト量、上記置換行列サイズ及び上記基本行列行数を利用しながら、上記列アドレス及び上記行アドレスを生成させ、
上記各データ格納・列処理演算部及び上記行処理演算部の少なくとも一方は、無効な上記有効・無効フラグに応じて、処理を無効化する無効化手段を有する
ことを特徴とする低密度パリティチェック符号復号装置。
【請求項２】
上記無効化手段は、上記各データ格納・列処理演算部から上記行処理演算部へ与える列処理結果の値を、列処理結果が取り得る最大値に置き換えるものであることを特徴とする請求項１に記載の低密度パリティチェック符号復号装置。
【請求項３】
上記無効化手段は、上記行処理演算部から上記各データ格納・列処理演算部へ与える行処理結果の値を０に置き換えるものであることを特徴とする請求項１又は２に記載の低密度パリティチェック符号復号装置。
【請求項４】
上記復号制御部は、１回の復号繰り返しについて、上記置換行列サイズ保持部に保持されている置換行列サイズＲと、上記基本行列行数保持部に保持されている基本行列行数Ｍｂとの積である行数分の行数処理を行うように、行アドレスを生成することを特徴とする請求項１〜３のいずれかに記載の低密度パリティチェック符号復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は低密度パリティチェック（ＬＤＰＣ）符号復号装置に関し、特に、種々の符号化率のＬＤＰＣ符号に同一構成で対応し得るようにしたものである。
【背景技術】
【０００２】
ＬＤＰＣ符号における復号アルゴリズムとして、Ｂｅｌｉｅｆ  Ｐｒｏｐａｇａｔｉｏｎ（ＢＰ）アルゴリズムが知られている（非特許文献１参照）。ＢＰアルゴリズムは、（１）式〜（３）式に示す行処理と、（４）式及び（５）式に示す列処理とを繰り返すことにより、信頼度の更新を行う確率伝搬アルゴリズムである（非特許文献３参照）。
【数１】
2008048207.tif 000003
【０００３】
ここで、ｉは復号繰返し数、Ｚｉｎはｎ番目のビットにおけるｉ回復号処理を行った後の事後対数尤度比（ＬＬＲ）、Ｆｎは通信路値、Ｒｉｍｎはｍ行のｎ番目のビットにおけるｉ回復号処理を行った後の行処理結果である（初期値Ｚ０ｎ＝Ｆｎ、Ｒ０ｍｎ＝０）。
【０００４】
既に、ＢＰアルゴリズムを適用した復号装置のアーキテクチャが示されている、非特許文献２では、符号長１０２４ｂｉｔ、Ｒ＝１／２のＬＤＰＣ符号に対し、復号における行処理及び列処理を全て並列処理する構成（ｆｕｌｌｙ  ｐａｒａｌｌｅｌ  ｄｅｓｉｇｎ）にすることによって、最大１Ｇｂ／ｓのスループットを実現できることが報告されている。しかしながら、このような構成法では、異なる検査行列を持つＬＤＰＣ符号に対する復号を行うことはできない。
【０００５】
一方、Ｓｔｒｕｃｔｕｒｅｄ  ＬＤＰＣ符号は、Ｍｂ行Ｎｂ列の基本行列（基本検査行列）とＲ行Ｒ列の置換行列とで構成されるＬＤＰＣ符号であり（後述の図４参照）、置換行列サイズＲを変えることにより、異なる符号長の符号における検査行列を構成することができる。置換行列として、零行列又は巡回シフト行列を使用し、Ｍｂ×Ｎｂ個のシフト値の情報のみ保持することにより、検査行列における１の位置を容易に特定することが可能である。非特許文献３では、Ｓｔｒｕｃｔｕｒｅｄ  ＬＤＰＣ符号（以下、構造化ＬＤＰＣ符号と呼ぶ）を用いた復号装置について報告しており、報告されている復号装置の構成法によって、異なる符号長の復号が可能となる。
【非特許文献１】Ｒ．Ｇ．Ｇａｌｌａｇｅｒ，  “Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ  Ｃｏｄｅｓ”，  ＩＲＥ  Ｔｒａｎｓ．  Ｉｎｆｏ．  Ｔｈｅｏｒｙ，  ｖｏｌ．ＩＴ−８，  ｐｐ．２１−２８，  １９６２
【非特許文献２】Ａ．Ｊ．Ｂｌａｎｋｓｂｙ  ａｎｄ  Ｃ．Ｊ．Ｈｏｗｌａｎ，  “Ａ  ６９０−ｍＷ  １−Ｇｂ／ｓ  １０２４−ｂ，  Ｒａｔｅ−１／２  Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ  Ｃｏｄｅ  Ｄｅｃｏｄｅｒ，”  ＩＥＥＥ  Ｊ．Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ，  ｖｏｌ．３７，  ｐｐ．４０４−４１２，  Ｍａｒ．２００２
【非特許文献３】Ｙ．Ｃｈｅｎ  ａｎｄ  Ｄ．Ｈｏｃｅｖａｒ，  “Ａ  ＦＰＧＡ  ａｎｄ  ＡＳＩＣ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  Ｒａｔｅ  １／２，  ８０８８−ｂ  Ｉｒｒｅｇｕｌａｒ  Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｄｅｃｏｄｅｒ，”  ＩＥＥＥ  ＧＬＯＢＥＣＯＭ２００３，  ｐｐ．１１３−１１７，  ２００３
【発明の開示】
【発明が解決しようとする課題】
【０００６】
異なる符号化率のＬＤＰＣ符号は、基本行列の行数、列数及び行重み数（検査行列における行に含まれる１の数）がそれぞれ異なる。
【０００７】
非特許文献３で提案されている復号装置の構成法では、回路構成を変えずに、異なる符号化率のＬＤＰＣ符号を復号することができない。
【０００８】
そのため、回路構成を変えずに、任意の符号化率のＬＤＰＣ符号を復号することができる低密度パリティチェック（ＬＤＰＣ）符号復号装置が望まれている。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため、本発明において、Ｍｂ（但し、Ｍｂ＜＝Ｍｂｍａｘ）行Ｎｂ（但し、Ｎｂ＜＝Ｎｂｍａｘ）列の基本行列と、上記基本行列の要素となるＲ行Ｒ列の置換行列とで構成された低密度パリティチェック符号を復号する低密度パリティチェック符号復号装置において、（１）通信路データを並列的に取込んで格納し、ＢＰアルゴリズムに従った、基本行列の同一行に係る置換行列の列処理を並列的に実行するＮｂｍａｘ個のデータ格納・列処理演算部と、（２）全ての上記データ格納・列処理演算部の列処理結果を入力して、ＢＰアルゴリズムに従った行処理を行う行処理演算部と、（３）入力された通信路データを置換行列サイズＲ毎に分割して、上記各データ格納・列処理演算部に与えた後、上記各データ格納・列処理演算部に応じた列アドレスと、全ての上記データ格納・列処理演算部に共通な行アドレスとを生成して上記各データ格納・列処理演算部に与え、ＢＰアルゴリズムに従った行処理と列処理とを繰り返し実行させ、復号の繰返し回数が所定回数になったときの全ての上記データ格納・列処理演算部における事後対数尤度に基づいて復号データを生成する復号制御部とを備え、（３）上記復号制御部は、（３−１）処理対象の低密度パリティチェック符号に係る検査行列に応じて定まる、Ｍｂｍａｘ×Ｎｂｍａｘの有効・無効フラグと、有効な有効・無効フラグに係る巡回シフト行列でなる置換行列のシフト量とを保持する検査行列情報保持部と、（３−２）処理対象の低密度パリティチェック符号における置換行列サイズＲを保持する置換行列サイズ保持部と、（３−３）処理対象の低密度パリティチェック符号における基本行列の行数Ｍｂを保持する基本行列行数保持部とを有し、（３−４）上記有効・無効フラグ、上記シフト量、上記置換行列サイズ及び上記基本行列行数を利用しながら、上記列アドレス及び上記行アドレスを生成させ、（４）上記各データ格納・列処理演算部及び上記行処理演算部の少なくとも一方は、無効な上記有効・無効フラグに応じて、処理を無効化する無効化手段を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、同一の構成によって、任意の符号化率のＬＤＰＣ符号を復号することができる低密度パリティチェック符号復号装置を実現できる。
【発明を実施するための最良の形態】
【００１１】
（Ａ）主たる実施形態
以下、本発明による低密度パリティチェック（ＬＤＰＣ）符号復号装置の一実施形態を、図面を参照しながら詳述する。
【００１２】
（Ａ−１）実施形態の構成
図１は、実施形態に係るＬＤＰＣ符号復号装置の全体構成及びデータ格納・列処理演算部の詳細構成を示すブロック図であり、図２は、図１における復号制御部の詳細構成を示すブロック図であり、図３は、図１における行列処理演算部の詳細構成を示すブロック図である。
【００１３】
図１において、この実施形態のＬＤＰＣ符号復号装置１は、復号制御部２と、Ｎｂｍａｘ（Ｎｂｍａｘは基本行列の適用可能な列数の最大値である）個のデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘと、行処理演算部４とを備える。
【００１４】
復号制御部２は、異なる符号化率のＬＤＰＣ符号に対応できるような復号のための制御を実行するものである。
【００１５】
復号制御部２は、図２に示すように、復号情報格納制御部１０、Ｎｂｍａｘ個の検査行列テーブル１１−１〜１１−Ｎｂｍａｘ、Ｎｂｍａｘ個の列アドレス生成部１２−１〜１２−Ｎｂｍａｘ、置換行列サイズ（Ｒ）を格納するレジスタ１３、Ｓｔｒｕｃｔｕｒｅｄ  ＬＤＰＣ符号における基本行列の行数（Ｍｂ）を格納するレジスタ１４、復号繰返し数（ｉ）を格納するレジスタ１５、３個のＭ進カウンタ１６〜１８、行アドレス生成部１９、通信路データ制御部２０、及び、復号データ生成部２１を有する。
【００１６】
復号情報格納制御部１０は、外部から到来したデータ（ＣｔｒｌＤａｔａ）を、そのデータと並行して到来したアドレス（ＣｔｒｌＡＤ）に応じて定まる、検査行列テーブル１１−１〜１１−Ｎｂｍａｘ、置換行列サイズ格納レジスタ１３、基本行列行数納レジスタ１４又は復号繰返し数格納レジスタ１５のいずれかに設定させるものである。
【００１７】
検査行列テーブル１１−１〜１１−Ｎｂｍａｘに設定された情報の全てによって、検査行列が規定されるものである。各検査行列テーブル１１−１〜１１−Ｎｂｍａｘには、Ｍｂ個の置換行列種別（零行列又は巡回シフト行列）とシフト値の情報が格納される。置換行列種別として、例えば、零行列には「０」、巡回シフト行列には「１」を対応付ける。また、基本行列の列数Ｎｂが適用可能な最大列数Ｎｂｍａｘより小さい場合には、Ｎｂｍａｘ−Ｎｂ個の検査行列テーブルの全ての置換行列種別を「０」として設定する。
【００１８】
図４には、異なる符号長、符号化率であるＳｔｒｕｃｔｕｒｅｄ  ＬＤＰＣ符号における検査行列を示しており、図５は、図４の例における検査行列テーブルの格納例を示している。
【００１９】
図４（ａ）に示す検査行列の基本行列は４×５の行列であり、図４（ｂ）に示す検査行列の基本行列は３×８の行列であるため、例えば、これら２つの検査行列のみに対応するＬＤＰＣ符号復号装置であれば、最大行数Ｍｂｍａｘ及び最大列数Ｎｂｍａｘの値は、それぞれ４、８とすれば良い。
【００２０】
図４（ａ）に示す検査行列の列数は５であるので、図５（ａ）に示すように、８（＝Ｎｂｍａｘ）個中、５個の検査行列テーブル１１−１〜１１−５に有効なデータが設定され、残りの３個の検査行列テーブル１１−６〜１１−８には有効なデータは設定されない。すなわち、検査行列テーブル１１−６〜１１−８の置換行列種別の欄は全て「０」である。
【００２１】
１行１列目の置換行列は、巡回シフト行列であって、対角にチェックビット「１」が配置されている対角行列の列を、２だけシフトさせたものであるので、検査行列テーブル１１−１のアドレス「０」には、巡回シフト行列を表す「１」とシフト値「２」とが格納される。２行１列目の置換行列は、零行列であるので、検査行列テーブル１１−１のアドレス「１」には、零行列を表す「０」が格納される。３行１列目の置換行列は、巡回シフト行列であって３だけシフトさせたものであるので、検査行列テーブル１１−１のアドレス「２」には、巡回シフト行列を表す「１」とシフト値「３」とが格納される。４行１列目の置換行列は、巡回シフト行列であって４だけシフトさせたものであるので、検査行列テーブル１１−１のアドレス「３」には、巡回シフト行列を表す「１」とシフト値「４」とが格納される。
【００２２】
検査行列テーブル１１−２〜１１−５についても、図４（ａ）に示す検査行列の置換行列の種類やシフト値に応じた値がそれぞれ格納される。
【００２３】
図４（ｂ）に示す検査行列の列数は８（＝Ｎｂｍａｘ）であるので、図５（ｂ）に示すように、全ての検査行列テーブル１１−１〜１１−８に有効なデータが設定される。
【００２４】
１行１列目の置換行列は、巡回シフト行列であってシフトさせないものであるので、検査行列テーブル１１−１のアドレス「０」には、巡回シフト行列を表す「１」とシフト値「０」とが格納される。２行１列目の置換行列も、巡回シフト行列であってシフトさせないものであるので、検査行列テーブル１１−１のアドレス「１」には、巡回シフト行列を表す「１」とシフト値「０」とが格納される。３行１列目の置換行列は、巡回シフト行列であって３だけシフトさせたものであるので、検査行列テーブル１１−１のアドレス「２」には、巡回シフト行列を表す「１」とシフト値「３」とが格納される。図４（ｂ）に示す検査行列の基本行列は３行であり、４行目が存在しないので、検査行列テーブル１１−１のアドレス「３」にはなんらのデータも設定されない。
【００２５】
検査行列テーブル１１−２〜１１−８についても、図４（ｂ）に示す検査行列の置換行列の種類やシフト値に応じた値がそれぞれ格納される。
【００２６】
置換行列サイズ格納レジスタ１３は、置換行列のサイズ（Ｒ）を格納するものであり、基本行列行数納レジスタ１４は、基本行列の行数（Ｍｂ）を格納するものであり、復号繰返し数格納レジスタ１５は、復号繰返し数を格納するものである。
【００２７】
置換行列サイズ格納レジスタ１３に格納された置換行列のサイズＲは、Ｍ進カウンタ１６及び通信路データ制御部２０に与えられる。基本行列行数納レジスタ１４に格納された基本行列行数Ｍｂは、列アドレス生成部１２−１〜１２−Ｎｂｍａｘ、Ｍ進カウンタ１７及び行アドレス生成部１９に与えられる。復号繰返し数格納レジスタ１５に格納された復号繰返し数は、Ｍ進カウンタ１７及び行アドレス生成部１９に与えられる。
【００２８】
図４（ａ）に示す検査行列の場合であれば、置換行列サイズ格納レジスタ１３には「６」が格納され、基本行列行数納レジスタ１４には「４」が格納される。また、図４（ｂ）に示す検査行列の場合であれば、置換行列サイズ格納レジスタ１３には「５」が格納され、基本行列行数納レジスタ１４には「３」が格納される。
【００２９】
Ｍ進カウンタ１６は、置換行列サイズ格納レジスタ１３に設定された置換行列サイズ（Ｒ）の巡回カウンタとして機能するものであり、カウントアップのトリガ信号（ＣＥ）は通信路データ制御部２０から与えられ、そのカウント値Ｃｏｕｔ［１］を全ての列アドレス生成部１２−１〜１２−Ｎｂｍａｘ及び行アドレス生成部１８に与え、キャリー信号をＭ進カウンタ１７へトリガ信号として与えるものである。
【００３０】
Ｍ進カウンタ１７は、基本行列行数納レジスタ１４に設定された基本行列の行数（Ｍｂ）の巡回カウンタとして機能するものであり、カウント値Ｃｏｕｔ［２］を全ての検査行列テーブル１１−１〜１１−Ｎｂｍａｘに読み出しアドレスとして与えると共に、基本行列の処理対象行を指示するものとして行アドレス生成部１８に与え、キャリー信号をＭ進カウンタ１８へトリガ信号として与えるものである。
【００３１】
Ｍ進カウンタ１８は、復号繰返し数格納レジスタ１５に設定された復号繰返し数（ｉ）のカウンタ（巡回カウンタ）として機能するものであり、キャリー信号を通信路データ制御部２０に与えるものである。
【００３２】
通信路データ制御部２０には、データ格納・列処理演算部３−１〜３−Ｎｂｍａｘに対する通信路データＤｉｎの供給制御を行うものである。通信路データ制御部２０は、Ｍ進カウンタ１８からキャリー信号が出力されたときに、新たに復号処理に供する通信路データＤｉｎを振り分ける制御を行うものである。通信路データ制御部２０には、図示しないバッファ部によってバッファリングされている通信路データＤｉｎが入力される。バッファリングされている通信路データＤｉｎには、基本行列の列数Ｎｂが最大列数Ｎｂｍａｘより小さい場合には、その差の列数Ｎｂｍａ−Ｎｂ分のダミーデータが挿入されている。通信路データ制御部２０は、通信路データＤｉｎを、置換行列サイズ格納レジスタ１３に格納されている置換行列サイズ（Ｒ）毎に分割し、分割で得られたＮｂｍａｘ個のデータＦｎ［１］〜Ｆｎ［Ｎｂｍａｘ］をアドレスＦＡＤ［１］〜ＦＡＤ［Ｎｂｍａｘ］と共にデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘに並行して与えて、それぞれのＦｎ格納部３０に格納させ、以下、同様な分割、並行的な送出処理を繰り返す。
【００３３】
上述したＭ進カウンタ１６は、通信路データ制御部２０がＮｂｍａｘ個のデータＦｎ［１］〜Ｆｎ［Ｎｂｍａｘ］を送出する毎に出力するトリガ信号（ＣＥ）によってカウントアップするものである。Ｍ進カウンタ１６のカウント値Ｃｏｕｔ［１］は、置換行列内での処理対象行を規定するものとなっている。
【００３４】
Ｍ進カウンタ１６からのキャリー信号をトリガ信号として受けるＭ進カウンタ１７のカウント値Ｃｏｕｔ［２］は、基本行列における処理対象行（対象となっている置換行列の位置）を規定するものとなっている。
【００３５】
行アドレス生成部１９は、Ｍ進カウンタ１６及び１７のカウント値に基づき、行アドレスを生成して、後述するデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘに与えるものである。Ｍ進カウンタ１６が置換行列サイズＲを計数し、Ｍ進カウンタ１７が、Ｍ進カウンタ１６のキャリー信号をトリガとして、基本行列行数Ｍｂを計数するので、１回の復号繰り返しについて、置換行列サイズＲと、基本行列行数Ｍｂとの積である行数分の行数処理を行うように、行アドレス生成部１９が行アドレスを生成していることになる。
【００３６】
検査行列テーブル１１−１〜１１−Ｎｂｍａｘには、読み出しアドレスとして、Ｍ進カウンタ１７のカウント値Ｃｏｕｔ［２］が与えられ、検査行列テーブル１１−１〜１１−Ｎｂｍａｘはそれぞれ、その読み出しアドレスに係る格納データを出力する。
【００３７】
図５に例示したように、検査行列テーブル１１−１〜１１−Ｎｂｍａｘの格納データは、置換行列種別（零行列又は巡回シフト行列）とシフト値の情報とでなる。このうち、置換行列種別のデータＰＴＹＰＥ［１］〜ＰＴＹＰＥ［Ｎｂｍａｘ］はそれぞれ、対応するデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘに与えられる。
【００３８】
列アドレス生成部１２−１〜１２−Ｎｂｍａｘにはそれぞれ、対応する検査行列テーブル１１−１〜１１−Ｎｂｍａｘの格納データと、Ｍ進カウンタ１６のカウント値Ｃｏｕｔ［１］とが与えられる。列アドレス生成部１２−１〜１２−Ｎｂｍａｘはそれぞれ、これらの入力データに応じ、巡回シフト行列である置換行列内の処理対象行で「１」をとっている列アドレスＣＡＤ［１］〜ＣＡＤ［Ｎｂｍａｘ］を、対応するデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘに与えるものである。
【００３９】
例えば、図４（ａ）に示す検査行列（図５（ａ）に示すテーブル内容）の場合において、Ｍ進カウンタ１７のカウント値Ｃｏｕｔ［２］が「０」であれば、図５（ａ）に示すアドレス「０」のデータが各検査行列テーブル１１−１〜１１−８から出力される。検査行列テーブル１１−１から出力された置換行列種別「１」（＝ＰＴＹＰＥ［１］）は、対応するデータ格納・列処理演算部３−１に出力される。このときのＭ進カウンタ１６のカウント値Ｃｏｕｔ［１］が仮に３列目を表す「２」であれば、列アドレス生成部１２−１は、シフト値「２」と、カウント値Ｃｏｕｔ［１］＝２に基づき、３列目が有効であることを表す列アドレスＣＡＤ［１］を出力する。
【００４０】
復号データ生成部２１は、格納されている復号繰返し数（ｉ）だけ、列処理及び行処理が繰り返されたときに、全てのデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘによって算出された事後対数尤度比Ｚｎ［１］〜Ｚｎ［Ｎｂｍａｘ］を硬判定し、復号データＤｏｕｔの生成を行うものである。
【００４１】
各データ格納・列処理演算部３−１〜３−Ｎｂｍａｘはそれぞれ、通信路データを保持すると共に、上述した列処理を行うものである。各データ格納・列処理演算部３−１〜３−Ｎｂｍａｘはそれぞれ、基本行列における１番目〜Ｎｂｍａｘ番目の置換行列に係る列処理を行うものである。
【００４２】
各データ格納・列処理演算部３−１〜３−Ｎｂｍａｘはそれぞれ、図１に、データ格納・列処理演算部３−１について示すように、Ｆｎ格納部３０−１〜３０−Ｎｂｍａｘ、Ｓｎ演算・格納部３１−１〜３１−Ｎｂｍａｘ、加算器３２−１〜３２−Ｎｂｍａｘ、Ｒｍｎ格納部３３−１〜３３−Ｎｂｍａｘ、減算器３４−１〜３４−Ｎｂｍａｘ、第１のセレクタ３５−１〜３５−Ｎｂｍａｘ及び第２のセレクタ３６−１〜３６−Ｎｂｍａｘを有する。以下の構成要素の説明は、代表してデータ格納・列処理演算部３−１について行う。
【００４３】
Ｆｎ格納部３０−１は、復号制御部２から与えられた通信路データＦｎ［１］を格納するものである。また、Ｆｎ格納部３０−１は、復号制御部２から与えられた列アドレスＣＡＤ［１］のエリアに格納されている通信路データを読み出して加算器３２−１に与えるものである。読み出された通信路データは、上述した（５）式のＦｎに相当する。
【００４４】
Ｓｎ演算・格納部３１−１は、第２のセレクタ３６−１を介して与えられたＲｍｎ［１］から、上述した（４）式に従ってＳｎ値を求め、求めたＳｎ値を格納するものである。また、Ｓｎ演算・格納部３１−１は、復号制御部２から与えられた列アドレスＣＡＤ［１］のエリアに格納されているＳｎ値を読み出して加算器３２−１に与えるものである。
【００４５】
加算器３２−１は、与えられた２つの値を加算するものである。この加算は、上述した（５）式の演算を行っていることになる。加算後の値Ｚｎ［１］は、復号制御部２に与えられると共に、減算器３４−１に被減算入力として与えられる。
【００４６】
Ｒｍｎ格納部３３−１は、第２のセレクタ３６−１を介して与えられたＲｍｎ［１］を格納するものである。また、Ｒｍｎ格納部３３−１は、復号制御部２から与えられた行アドレスＲＡＤのエリアの格納値を読み出して減算器３４−１に減算入力として与えるものである。
【００４７】
減算器３４−１は、加算器３２−１からＲｍｎ格納部３３−１の読み出し値を減算するものであり、この減算は、上述した（１）式の演算に該当する。
【００４８】
第１のセレクタ３５−１には、減算器３４−１の出力値と、行処理演算部４への入力データが取り得る最大値Ｍａｘとが選択入力として与えられ、選択制御信号として、復号制御部２からの置換行列種別のデータＰＴＹＰＥ［１］が与えられる。第１のセレクタ３５−１は、置換行列種別データＰＴＹＰＥ［１］が「１」のとき、減算器３４−１の出力値を選択し、置換行列種別データＰＴＹＰＥ［１］が「０」のとき最大値Ｍａｘを選択し、選択した値Ｌｍｎ［１］を行処理演算部４に出力する。
【００４９】
第２のセレクタ３６−１には、行処理演算部４から与えられた値Ｒｍｎと、「０」とが選択入力として与えられ、選択制御信号として、復号制御部２からの置換行列種別のデータＰＴＹＰＥ［１］が与えられる。第２のセレクタ３６−１は、置換行列種別データＰＴＹＰＥ［１］が「１」のとき、行処理演算部４から与えられた値Ｒｍｎを選択し、置換行列種別データＰＴＹＰＥ［１］が「０」のとき「０」を選択し、選択した値をＳｎ演算・格納部３１−１及びＲｍｎ格納部３３−１に出力する。
【００５０】
行処理演算部４は、図３に示すように、絶対値符号分離部４０−１〜４０−Ｎｂｍａｘ、第１のＧａｌｌａｇｅｒテーブル４１−１〜４１−Ｎｂｍａｘ、加算器４２、減算器４３−１〜４３−Ｎｂｍａｘ、第２のＧａｌｌａｇｅｒテーブル４４−１〜４４−Ｎｂｍａｘ、イクスクルーシブオア回路ツリー４５、イクスクルーシブオア回路（ＸＯＲ）４６−１〜４６−Ｎｂｍａｘ及び整数変換部４７−１〜４７−Ｎｂｍａｘを有する。図３に示す行処理演算部４は、上述した非特許文献３に記載のものと同様であり、上述した（２）式の演算を実行するものである。
【００５１】
各絶対値符号分離部４０−１〜４０−Ｎｂｍａｘはそれぞれ、対応するデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘから与えられた値Ｌｍｎ［１］〜Ｌｍｎ［Ｎｂｍａｘ］を、符号と絶対値に分離し、分離した絶対値を対応する第１のＧａｌｌａｇｅｒテーブル４１−１〜４１−Ｎｂｍａｘに与えると共に、分離した符号をイクスクルーシブオア回路ツリー４５及び対応するイクスクルーシブオア回路４６−１〜４６−Ｎｂｍａｘに与えるものである。分離した符号は、正を「０」、負を「１」とするものである。
【００５２】
上述した（２）式の右辺は、（３）式を考慮すると、符号に係る演算部分と、絶対値に係る演算部分とから構成されている。第１のＧａｌｌａｇｅｒテーブル４１−１〜４１−Ｎｂｍａｘ、加算器４２、減算器４３−１〜４３−Ｎｂｍａｘ及び第２のＧａｌｌａｇｅｒテーブル４４−１〜４４−Ｎｂｍａｘは、絶対値に係る演算部分を実行するものであり、イクスクルーシブオア回路ツリー４５及びイクスクルーシブオア回路４６−１〜４６−Ｎｂｍａｘは、符号に係る演算部分を実行するものであり、整数変換部４７−１〜４７−Ｎｂｍａｘは、両演算部分の結果を融合して出力値を形成させるものである。
【００５３】
各第１のＧａｌｌａｇｅｒテーブル４１−１〜４１−Ｎｂｍａｘはそれぞれ、入力された絶対値に対して、（３）式に示す演算を行うルックアップテーブルであり、その演算結果を、加算器４２及び対応する減算器４３−１〜４３−Ｎｂｍａｘに与えるものである。なお、Ｇａｌｌａｇｅｒテーブル４１−１〜４１−Ｎｂｍａｘ（及び４４−１〜４４−Ｎｂｍａｘ）は、入力が、上述した第１のセレクタ３５−１〜３５−Ｎｂｍａｘが選択することがあり得る最大値であるときの出力が０となるようなテーブルとなされている。
【００５４】
加算器４２は、全ての第１のＧａｌｌａｇｅｒテーブル４１−１〜４１−Ｎｂｍａｘからの出力の総和を求めるものであり、各減算器４３−１〜４３−Ｎｂｍａｘはそれぞれ、その総和から、対応する第１のＧａｌｌａｇｅｒテーブル４１−１〜４１−Ｎｂｍａｘの値を減算するものである。例えば、減算器４３−１の出力は、対応する第１のＧａｌｌａｇｅｒテーブル４１−１の出力を除いた、Ｎｂｍａｘ−１個の第１のＧａｌｌａｇｅｒテーブル４１−２〜４１−Ｎｂｍａｘの出力の総和になっており、ｎが１のときの（２）式における総和演算が実行されている。
【００５５】
各第２のＧａｌｌａｇｅｒテーブル４４−１〜４４−Ｎｂｍａｘはそれぞれ、対応する減算器４３−１〜４３−Ｎｂｍａｘの出力に対して、（３）式に示す演算を行うルックアップテーブルであり、その演算結果を、対応する整数変換部４７−１〜４７−Ｎｂｍａｘに与えるものである。
【００５６】
イクスクルーシブオア回路ツリー４５は、全ての絶対値符号分離部４０−１〜４０−Ｎｂｍａｘからの符号の積を得るものであり、各イクスクルーシブオア回路４６−１〜４６−Ｎｂｍａｘは、全ての符号の積と、対応する絶対値符号分離部４０−１〜４０−Ｎｂｍａｘからの符号との積（全ての符号の積に対する対応する絶対値符号分離部４０−１〜４０−Ｎｂｍａｘからの符号の除に等しい）を求めているものである。例えば、イクスクルーシブオア回路４６−１の出力は、対応する絶対値符号分離部４０−１の符号を除いた、Ｎｂｍａｘ−１個の絶対値符号分離部４０−２〜４０−Ｎｂｍａｘの符号の積になっており、ｎが１のときの（２）式における符号側の演算が実行されている。
【００５７】
各整数変換部４７−１〜４７−Ｎｂｍａｘはそれぞれ、対応する第２のＧａｌｌａｇｅｒテーブル４４−１〜４４−Ｎｂｍａｘから与えられた値に、対応するイクスクルーシブオア回路４６−１から与えられた符号を付与して整数化し、得られた値Ｒｍｎ［１］〜Ｒｍｎ［Ｎｂｍａｘ］を、対応するデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘに出力するものである。各整数変換部４７−１〜４７−Ｎｂｍａｘの処理により、（２）式に示す演算が完結する。
【００５８】
（Ａ−２）実施形態の動作
次に、上述した図１〜図３に示す構成を有する実施形態のＬＤＰＣ符号復号装置１の動作を説明する。
【００５９】
（Ｓ１）まず、復号情報入力制御部１０を介して、検査行列テーブル１１−１〜１１−Ｎｂｍａｘ、置換行列サイズ格納レジスタ１３、基本行列行数格納レジスタ１４、復号繰返し数格納レジスタ１５に対し、使用する検査行列に応じたデータを設定する。
【００６０】
基本行列の適用可能な最大列数（Ｎｂｍａｘ）が８である場合において、使用する検査行列が、例えば、図４（ａ）に示すものであれば図５（ａ）に示す内容が検査行列テーブル１１−１〜１１−８に設定され、「６」が置換行列サイズ格納レジスタ１３に設定され、「４」が基本行列行数格納レジスタ１４に設定される。また、使用する検査行列が、例えば、図４（ｂ）に示すものであれば図５（ｂ）に示す内容が検査行列テーブル１１−１〜１１−８に設定され、「５」が置換行列サイズ格納レジスタ１３に設定され、「３」が基本行列行数格納レジスタ１４に設定される。復号繰返し数は、検査行列によらずに、任意に設定される。
【００６１】
（Ｓ２）次に、通信路データ制御部２０によって、入力された通信路データＤｉｎを、置換行列サイズ格納レジスタ１３に設定された置換行列サイズであるＲ個毎に分割し、各データ格納・列処理演算部３−１〜３−ＮｂｍａｘにおけるＦｎ格納部３０−１〜３０−Ｎｂｍａｘに書き込む。
【００６２】
（Ｓ３）そして、Ｍ進カウンタ１６及び１７の値Ｃｏｕｔ［１］、Ｃｏｕｔ［２］に基づいて、行アドレス生成部１９や列アドレス生成部１２−１〜１２−Ｎｂｍａｘ等によって、行処理を行う行アドレスＲＡＤと、Ｎｂｍａｘ個の列アドレスＣＡＤ［１］〜ＣＡＤ［Ｎｂｍａｘ］及び置換行列種別ＰＴＹＰＥ［１］〜ＰＴＹＰＥ［Ｎｂｍａｘ］を生成し、データ格納・列処理演算部３−１〜３−Ｎｂｍａｘに出力する。
【００６３】
（Ｓ４）各データ格納・列処理演算部３−１〜３−Ｎｂｍａｘでは、入力された行アドレスＲＡＤと列アドレスＣＡＤ［１］〜ＣＡＤ［Ｎｂｍａｘ］に基づいて、Ｆｎ格納部３０−１〜３０−Ｎｂｍａｘ、Ｓｎ演算・格納部３１−１〜３１−Ｎｂｍａｘ及びＲｍｎ格納部３３−１〜３３−Ｎｂｍａｘからの読み出しを実行しながら、上述した（５）式、（１）式の演算を行い、また、入力された置換行列種別情報ＰＴＹＰＥ［１］〜ＰＴＹＰＥ［Ｎｂｍａｘ］に基づいて、行処理演算部３への入力データＬｍｎ［１］〜Ｌｍｎ［Ｎｂｍａｘ］を生成する。ここで、置換行列種別情報が「０」である場合は、演算された値に代え、行処理演算部３への入力データＬｍｎ［１］〜Ｌｍｎ［Ｎｂｍａｘ］が取り得る最大値Ｍａｘを出力する。
【００６４】
（Ｓ５）行処理演算部４は、各データ格納・列処理演算部３−１〜３−Ｎｂｍａｘから入力されたデータＬｍｎ［１］〜Ｌｍｎ［Ｎｂｍａｘ］に基づき、上述した（２）式の演算を実行する。第１のＧａｌｌａｇｅｒテーブル４１−１〜４１−Ｎｂｍａｘは、入力が最大値であるときの出力が０となるようなテーブルとなされており、これにより、置換行列種別が「１」である列に対する行処理結果だけが（２）式で導出された結果と一致する。
【００６５】
（Ｓ６）各データ格納・行処理演算部３−１〜３−Ｎｂｍａｘでは、行処理演算部４より出力された行処理結果Ｒｍｎ［１］〜Ｒｍｎ［Ｎｂｍａｘ］と置換行列種別ＰＴＹＰＥ［１］〜ＰＴＹＰＥ［Ｎｂｍａｘ］とを用いて、（４）式に示すＳｎ値の算出を行う。置換行列種別が「０」であるときの行処理演算部４の行処理結果Ｒｍｎ［１］〜Ｒｍｎ［Ｎｂｍａｘ］は不定であるため、第２のセレクタ３６−１〜３６−Ｎｂｍａｘによって、行処理結果Ｒｍｎ［１］〜Ｒｍｎ［Ｎｂｍａｘ］の値を０に置換する。そして、Ｒｍｎ格納部３３−１〜３３−Ｎｂｍａｘに保持すると共に、Ｓｎ演算・格納部３１−１〜３１−Ｎｂｍａｘでは、第２のセレクタ３６−１〜３６−Ｎｂｍａｘの出力値を加算することにより、（４）式の演算を行う。
【００６６】
（Ｓ７）上述した（Ｓ３）〜（Ｓ６）の処理を、復号繰返し数格納レジスタ１５に格納された復号繰返し数だけ、繰返し行った後、復号制御部２内の復号データ生成部２１において、全てのデータ格納・列処理演算部３−１〜３−Ｎｂｍａｘによって算出された事後対数尤度比Ｚｎ［１］〜Ｚｎ［Ｎｂｍａｘ］を硬判定し、復号データＤｏｕｔの生成を行
（Ａ−３）実施形態の効果
上記実施形態のＬＤＰＣ符号復号装置によれば、基本行列がＭｂ×Ｎｂ（但し、Ｍｂ＜＝Ｍｂｍａｘ、Ｎｂ＝Ｎｂｍａｘ）である任意の構造化ＬＤＰＣ符号に対する復号を行うことができる。言い換えると、構成を変えずに、任意の符号化率のＬＤＰＣ符号を復号することができる。
【００６７】
ここで、任意の構造化ＬＤＰＣ符号に対応させるための有効／無効を表すデータを、図５に示すように構成して格納するようにしたので、データ量を抑え、メモリなどの構成を小型化することができる。
【００６８】
（Ｂ）他の実施形態
上記実施形態においては、Ｎｂｍａｘ個の検査行列テーブル１１−１〜１１−Ｎｂｍａｘ、置換行列サイズ格納レジスタ１３、基本行列行数格納レジスタ１４に外部からのデータを設定することで、基本行列が任意の構造化ＬＤＰＣ符号に対応するものを示したが、予め、データを格納した検査行列テーブル１１−１〜１１−Ｎｂｍａｘ、置換行列サイズ格納レジスタ１３及び基本行列行数格納レジスタ１４の組を複数備え、外部から、いずれかの組を指定させることで、基本行列が任意の構造化ＬＤＰＣ符号に対応するようにしても良い。
【００６９】
また、上記実施形態においては、基本行列の列数Ｎｂに応じて、通信路データにダミーデータを挿入する構成が、ＬＤＰＣ符号復号装置の外部にあるものを示したが、ＬＤＰＣ符号復号装置が基本行列の列数Ｎｂをも外部から取込み、それに応じたダミーデータの挿入も、ＬＤＰＣ符号復号装置で行うようにしても良い。
【００７０】
なお、行処理演算部の構成は（２）式の演算を実行できる構成であれば良く、図３に示す構成のものに限定されるものではない。また、（２）式の近似式の演算を実行できる構成であっても良い。このような近似式の演算構成としては、例えば、文献『“Ｎｅａｒ  ｏｐｔｉｍｕｍ  ｕｎｉｖｅｒｓａｌ  ｂｅｌｉｅｆ  ｐｒｏｐａｇａｔｉｏｎ  ｂａｓｅｄ  ｄｅｃｏｄｉｎｇ  ｏｆ  ｌｏｗ−ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ  ｃｈｅｃｋ  ｃｏｄｅｓ，”  ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｏｍｍｕｎ．，  ｖｏｌ．５０，  ｐｐ．４０６−４１４，  Ｍａｒ．２００２』に記載されている。
【００７１】
また、復号繰返し数（ｉ）は任意設定できず、固定数であっても良い。さらに、基本行列の行数Ｍｂ又は列数Ｎｂのいずれかが任意設定できないように、本発明の装置を構成しても良い。
【００７２】
さらに、上記実施形態における第１のセレクタ３５−１〜３５−Ｎｂｍａｘや第２のセレクタ３６−１〜３６−Ｎｂｍａｘを、行処理演算部４の構成要素として設けるようにしても良い。
【図面の簡単な説明】
【００７３】
【図１】実施形態に係るＬＤＰＣ符号復号装置の全体構成及びデータ格納・列処理演算部の詳細構成を示すブロック図である。
【図２】図１における復号制御部の詳細構成を示すブロック図である。
【図３】図１における行列処理演算部の詳細構成を示すブロック図である。
【図４】異なる符号長、符号化率であるＳｔｒｕｃｔｕｒｅｄ  ＬＤＰＣ符号における検査行列を示す説明図である。
【図５】図４の例における検査行列テーブルの格納例を示す説明図である。
【符号の説明】
【００７４】
１…ＬＤＰＣ符号復号装置、２…復号制御部、３−１〜３−Ｎｂｍａｘ…データ格納・列処理演算部、４…行処理演算部、１０…復号情報格納制御部、１１−１〜１１−Ｎｂｍａｘ…検査行列テーブル、１２−１〜１２−Ｎｂｍａｘ…列アドレス生成部、１３…置換行列サイズ格納レジスタ、１４…基本行列行数格納レジスタ、１５…復号繰返し数格納レジスタ、１６〜１８…Ｍ進カウンタ、１９…行アドレス生成部、２０…通信路データ制御部、２１…復号データ生成部、３５−１〜３５−Ｎｂｍａｘ…第１のセレクタ、３６−１〜３６−Ｎｂｍａｘ…第２のセレクタ、４１−１〜４１−Ｎｂｍａｘ…第１のＧａｌｌａｇｅｒテーブル。
【図１】
2008048207.tif 000004
【図２】
2008048207.tif 000005
【図３】
2008048207.tif 000006
【図４】
2008048207.tif 000007
【図５】
2008048207.tif 000008
【手続補正書】
【提出日】平成19年7月30日(2007.7.30)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2008048207.tif 000009