(57)【要約】  本開示は、回路規模の増大を抑制することができるようにする情報処理装置及び方法に関する。復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、その復号の検査行列の列方向のシフトに対応するように、その情報を記憶する領域を復号に関する演算に応じてシフトさせ、その記憶部の所定の領域より情報を読み出し、その記憶部より読み出された情報を用いて復号に関する演算を行い、その情報を更新し、その更新された情報を、検査行列の行方向のシフトに対応するように並べ替え、その記憶部の所定の領域に書き込む。本開示は、例えば、情報処理装置、通信装置、受信装置、情報処理方法、またはプログラム等に適用することができる。
2019003888.tif 000002
【特許請求の範囲】
【請求項１】
復号に用いる複数の情報を互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせる記憶部と、
前記記憶部の所定の領域より前記情報を読み出し、前記復号に関する演算により更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む更新部と、
前記更新部により前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新する演算部と
を備える情報処理装置。
【請求項２】
前記記憶部は、前記情報を記憶する領域を巡回的にシフトする
請求項１に記載の情報処理装置。
【請求項３】
前記記憶部は、ループ状に接続される、それぞれが前記情報を記憶する複数のバッファセルを有し、前記情報を次のバッファセルに移動させることにより、前記情報を記憶する領域を巡回的にシフトする
請求項２に記載の情報処理装置。
【請求項４】
前記情報は、外部から入力された受信情報と、前記復号に関する演算により得られる中間情報であり、
前記記憶部は、前記受信情報を巡回的にシフトさせるバッファセルのループと、前記中間情報を巡回的にシフトさせるバッファセルのループを有する
請求項１に記載の情報処理装置。
【請求項５】
前記更新部は、前記記憶部の、前記検査行列の列方向の非ゼロ係数の位置に対応する領域より前記情報を読み出す
請求項１に記載の情報処理装置。
【請求項６】
前記更新部は、更新され並べ替えた前記情報を、前記記憶部の、前記情報を読み出した領域の次の領域に書き込む
請求項１に記載の情報処理装置。
【請求項７】
前記演算部は、
前記記憶部より読み出された前記情報を用いてチェックノード演算を行うチェックノード演算部と、
前記チェックノード演算部により得られるチェックノード演算結果を用いてバリアブルノード演算を行うバリアブルノード演算部と、
前記バリアブルノード演算部により得られるバリアブルノード演算結果を更新する情報更新部と
を備える請求項１に記載の情報処理装置。
【請求項８】
前記演算部は、さらに、前記バリアブルノード演算結果に基づいて誤りの発生を判定する判定部をさらに備える
請求項７に記載の情報処理装置。
【請求項９】
前記チェックノード演算部は、Gallager関数を用いて前記チェックノード演算を行う
請求項７に記載の情報処理装置。
【請求項１０】
前記チェックノード演算部は、Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
請求項７に記載の情報処理装置。
【請求項１１】
前記チェックノード演算部は、Normalized Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
請求項７に記載の情報処理装置。
【請求項１２】
前記チェックノード演算部は、Offset Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
請求項７に記載の情報処理装置。
【請求項１３】
前記演算部は、BP（Belief Propagation）復号に関する演算を行う
請求項１に記載の情報処理装置。
【請求項１４】
前記演算部は、Shuffled BP（Belief Propagation）復号に関する演算を行う
請求項１に記載の情報処理装置。
【請求項１５】
復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせ、
前記記憶部の所定の領域より前記情報を読み出し、
前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新し、
更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置及び方法に関し、特に、回路規模の増大を抑制することができるようにした情報処理装置及び方法に関する。
【背景技術】
【０００２】
従来、地上波デジタル放送において制御信号伝送の誤り訂正方式として差集合巡回符号が用いられ、その差集合巡回符号の復号方法として、BP（Belief Propagation）復号が用いられていた。BP復号は、多数決復号やAPP（A Posterior Probability）軟判定復号等の他の復号方法に比べて誤り訂正能力が高い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９９９２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、BP復号の場合、復号に用いる中間情報を保持する記憶素子に対するアクセスが複雑になるため、記憶素子への配線数が増大する等、回路規模が増大するおそれがあった。【０００５】
本開示は、このような状況に鑑みてなされたものであり、誤り訂正に関する復号の回路規模の増大を抑制することができるようにするものである。
【課題を解決するための手段】
【０００６】
本技術の一側面の情報処理装置は、復号に用いる複数の情報を互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせる記憶部と、前記記憶部の所定の領域より前記情報を読み出し、前記復号に関する演算により更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む更新部と、前記更新部により前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新する演算部とを備える情報処理装置である。【０００７】
本技術の一側面の情報処理方法は、復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせ、前記記憶部の所定の領域より前記情報を読み出し、前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新し、更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む情報処理方法である。【０００８】
本技術の一側面の情報処理装置および方法においては、復号に用いる複数の情報が記憶部の互いに異なる領域に記憶され、その復号の検査行列の列方向のシフトに対応するように、その情報を記憶する領域が復号に関する演算に応じてシフトされ、その記憶部の所定の領域より情報が読み出され、その記憶部より読み出された情報を用いて復号に関する演算が行われてその情報が更新され、その更新された情報が、検査行列の行方向のシフトに対応するように並べ替えられ、記憶部の所定の領域に書き込まれる。
【発明の効果】
【０００９】
本開示によれば、情報を処理することができる。特に、誤り訂正に関する復号の回路規模の増大を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】多数決復号回路の主な構成例を示す図である。
【図２】APP軟判定復号回路の主な構成例を示す図である。
【図３】BP復号装置の主な構成例を示すブロック図である。
【図４】BP復号アルゴリズムの例について説明する図である。
【図５】BP復号アルゴリズムの例について説明する図である。
【図６】処理順について説明する図である。
【図７】列方向の巡回シフトについて説明する図である。
【図８】列毎の読み出し位置について説明する図である。
【図９】行列方向の巡回シフトと読み出し位置との関係の例を説明する図である。
【図１０】BP復号装置の主な構成例を示すブロック図である。
【図１１】シフトバッファと演算部の主な構成例を示す図である。
【図１２】検査行列と読み出し位置の例について説明する図である。
【図１３】BP復号処理の流れの例を説明するフローチャートである。
【図１４】信号対雑音比とエラーレートとの関係の例を示す図である。
【図１５】Shuffled BP復号アルゴリズムの例について説明する図である。
【図１６】Shuffled BP復号を行う場合のシフトバッファと演算部の主な構成例を示す図である。
【図１７】チェックノード演算の例について説明する図である。
【図１８】チェックノード演算の例について説明する図である。
【図１９】受信装置の主な構成例を示すブロック図である。
【図２０】テレビジョン装置の概略的な構成の一例を示すブロック図である。
【図２１】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本開示を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．巡回符号の復号方法
２．第１の実施の形態（BP復号装置）
３．第２の実施の形態（Shuffled BP）
４．第３の実施の形態（チェックノード演算）
５．第４の実施の形態（受信装置）
６．第５の実施の形態（テレビジョン装置）
７．その他
【００１２】
＜１．巡回符号の復号方法＞
＜復号方法例＞
従来、地上波デジタル放送において制御信号伝送の誤り訂正方式として差集合巡回符号が用いられている。
【００１３】
正整数Jに対してJ(J-1)以下のJ個の非負整数の集合で、その任意の二つの元のn=J(J-1)+1を法とする順序づけられた差がすべて異なるものを、nを法とする位数Jの単純完全差集合と称する。{d1,d2,…,dJ}をnを法とする位数Jの単純完全差集合であるとすると、D(ｘ) = ｘ^{d1} + ｘ^{d2} + … + ｘ^{dJ}を符号多項式として持つ、符号語数が最小の2元巡回符号をCDとする。このCDの双対符号を差集合巡回符号と称する。
【００１４】
これまで、このような差集合巡回符号の復号方法と装置化について様々な検討が行われた。例えば、硬判定復号方式として、多数決復号、可変しきい値復号、Bit-Flipping復号等が検討された。また、軟判定復号方式として、APP（A Posterior Probability）軟判定復号、可変しきい値軟判定復号、BP（Belief Propagation）復号等が検討された。
【００１５】
以下に、従来の復号方式の例を説明する。なお、差集合巡回符号は符号長N=7、情報長k=3の場合について説明する。この場合の完全単純差集合は{0,1,3}，J=3ある。
【００１６】
＜多数決復号＞
図１は多数決復号回路の主な構成例を示す図である。図１のＡに示されるように、多数決復号を行う多数決復号回路１０は、遅延素子１１−１乃至遅延素子１１−７、演算部１２−１乃至演算部１２−３、多数決判定部１３、並びに、演算部１４を有する。
【００１７】
遅延素子１１−１乃至遅延素子１１−７は、それぞれ、信号を所定期間保持し、入力タイミングに対して出力タイミングを遅延させる。各遅延素子上のqi（i = 0〜6）は、その遅延素子に保持される信号を示す。多数決復号は硬判定復号であるので、この信号qiは、１ビット信号である。つまり、遅延素子１１−１乃至遅延素子１１−７は、それぞれ１ビットの遅延素子である。遅延素子１１−１乃至遅延素子１１−７はループ状に接続されており、信号は、遅延素子１１−１乃至遅延素子１１−７を巡回的にシフトする（遅延素子１１−１乃至遅延素子１１−７に順に保持され、遅延素子１１−７の次はまた遅延素子１１−１に戻り保持される）。なお、遅延素子１１−７より出力された信号は、演算部１４にも供給される。
【００１８】
演算部１２−１乃至演算部１２−３、並びに、演算部１４は、図１のＢに示されるように、複数入力の排他的論理和演算（EXOR）を行い、その演算結果を出力する。演算部１２−１は、遅延素子１１−２の出力（q1）、遅延素子１１−３の出力（q2）、および遅延素子１１−７の出力（q6）の排他的論理和を求め、その演算結果を多数決判定部１３に供給する。演算部１２−２は、遅延素子１１−１の出力（q0）、遅延素子１１−５の出力（q4）、および遅延素子１１−７の出力（q6）の排他的論理和を求め、その演算結果を多数決判定部１３に供給する。演算部１２−３は、遅延素子１１−４の出力（q3）、遅延素子１１−６の出力（q5）、および遅延素子１１−７の出力（q6）の排他的論理和を求め、その演算結果を多数決判定部１３に供給する。演算部１４は、遅延素子１１−７の出力（q6）と多数決判定部１３の出力（多数決結果）との排他的論理和を求め、その演算結果を多数決復号回路１０の外部に出力する。
【００１９】
多数決判定部１３は、演算部１２−１乃至演算部１２−３の各演算結果の多数決をとり、その判定結果を演算部１４に供給する。
【００２０】
このような構成の多数決復号回路１０は、初期化として、受信した硬判定情報（１ビット）を各遅延素子（遅延素子１１−１乃至遅延素子１１−７）にセットする。次に、復号処理として、演算部１２−１乃至演算部１２−３は、それぞれ、信号qiの排他的論理和演算を行い、多数決判定部１３は、その３つの排他的論理和演算結果（EXOR結果）の多数決を取って、当該信号を訂正するか否かを決める。次に、多数決復号回路１０は、巡回シフト処理として、遅延素子１１−１乃至遅延素子１１−７の値を巡回的にシフトさせる。多数決復号回路１０は、このような復号処理と巡回シフト処理をＮ回繰り返す。
【００２１】
信号に誤りが無ければ、演算部１２−１乃至演算部１２−３の出力が「０」となる。信号に誤りがあれば、演算部１２−１乃至演算部１２−３の出力が「１」となる。多数決判定部１３は、演算部１２−１乃至演算部１２−３の出力を集計し、「１」が多い場合、信号値が誤りであると判定する。その場合、演算部１４が信号の値を訂正する。
【００２２】
＜APP軟判定復号＞
図２はAPP軟判定復号回路の主な構成例を示す図である。図２のＡに示されるように、APP軟判定復号を行うAPP軟判定復号回路２０は、遅延素子２１−１乃至遅延素子２１−７、演算部２２−１乃至演算部２２−３、演算部２３、並びに、判定部２４を有する。
【００２３】
遅延素子２１−１乃至遅延素子２１−７は、それぞれ、信号を所定期間保持し、入力タイミングに対して出力タイミングを遅延させる。各遅延素子上のri（i = 0〜6）は、その遅延素子に保持されるs（>1）ビット以上の軟判定LLR（Log likelihood ratio）を示す。つまり、遅延素子２１−１乃至遅延素子２１−７は、それぞれs（>1）ビットの遅延素子である。遅延素子２１−１乃至遅延素子２１−７はループ状に接続されており、軟判定LLRは、遅延素子２１−１乃至遅延素子２１−７を巡回的にシフトする（遅延素子２１−１乃至遅延素子２１−７に順に保持され、遅延素子２１−７の次はまた遅延素子２１−１に戻り保持される）。
【００２４】
演算部２２−１乃至演算部２２−３は、それぞれ、図２のＢの一番上に示されるような演算（LLR演算）を行い、その演算結果を出力する。演算部２２−１は、遅延素子２１−２の出力（r1）と遅延素子２１−３の出力（r2）とを用いてLLR演算を行い、その演算結果を演算部２３に供給する。演算部２２−２は、遅延素子２１−１の出力（r0）と遅延素子２１−５の出力（r4）を用いてLLR演算を行い、その演算結果を演算部２３に供給する。演算部２２−３は、遅延素子２１−４の出力（r3）と遅延素子２１−６の出力（r5）とを用いてLLR演算を行い、その演算結果を演算部２３に供給する。
【００２５】
演算部２３は、図２のＢの上から２番目に示されるように、演算部２２−１乃至演算部２２−３のそれぞれの演算結果、並びに、遅延素子２１−７の出力（r6）の総和を求める。演算部２３は、その総和を判定部２４に供給する。判定部２４は、図２のＢの一番下に示されるように、演算部２３の演算結果（総和）に基づいて誤りを判定する。例えば、判定部２４は、演算部２３の演算結果（総和）が正の場合誤りがないと判定し、その演算結果が０以下の場合、誤りがあると判定する。判定部２４は、そのような判定結果をAPP軟判定復号回路２０の外部に出力する。
【００２６】
このような構成のAPP軟判定復号回路２０は、初期化として、受信した軟判定情報（ｓビット）を各遅延素子（遅延素子２１−１乃至遅延素子２１−７）にセットする。次に、復号処理として、演算部２２−１乃至演算部２２−３は、それぞれ、軟判定情報riを用いてLLR演算を行い、演算部２３は、それらの演算結果と、遅延素子２１−７の出力（r6）との総和を算出し、判定部２４は、その総和に基づいて誤りがあるか否かを判定する。次に、APP軟判定復号回路２０は、巡回シフト処理として、遅延素子２１−１乃至遅延素子２１−７の値を巡回的にシフトさせる。APP軟判定復号回路２０は、このような復号処理と巡回シフト処理をＮ回繰り返す。
【００２７】
なお、ループ構成として、遅延素子２１−７の出力（r6）の代わりに、演算部２３の出力（λ）を遅延素子２１−１に供給するようにしてもよい。
【００２８】
＜BP復号＞
図３はBP復号装置の主な構成例を示す図である。図３に示されるように、BP復号を行うBP復号回路３０は、アドレス生成部（アドレス生成器）３１、制御部（コントローラ）３２、演算部（variable & check node演算器）３３、およびRAM（Random Access Memory）３４を有する。
【００２９】
演算部３３は、検査行列の全行に対するチェックノード（check node）演算と、全列に対するバリアブルノード（variable node）演算を複数回繰り返す。チェックノード演算を行う場合、演算部３３は、受信情報riと中間情報vi,iについて、検査行列各行の非０要素（非ゼロ係数）の位置にあたる情報をRAM３４より読み出し、読み出した情報を用いて演算を行う。また、バリアブルノード演算を行う場合、演算部３３は、中間情報ui,iについて、検査行列各列の非０要素（非ゼロ係数）の位置にあたる情報をRAM３４より読み出し、読み出した情報を用いて演算を行う。
【００３０】
つまり、検査行列の非ゼロ係数の位置によって情報（受信情報や中間情報）の読み出し位置が変化するので、これらの情報の保持はRAM３４が用いられる。アドレス生成部３１は、このような検査行列の非ゼロ係数の位置に応じて、情報の読み出しアドレスの設定を行う。制御部３２は、そのアドレス情報に基づいて、RAM３４の読み出しの制御を行う。図３に示されるように、RAM３４内部には、複数のメモリセル（Memory Cells）が設けられており、受信情報や中間情報が、各メモリセルに格納される。制御部３２は、各メモリセルの情報の読み出しや書き込みを制御することにより、演算部３３がどのメモリセルから情報を読み出すかを制御したり、演算部３３がどのメモリセルに情報を書き込むかを制御したりする。
【００３１】
このBP復号のアルゴリズムの例を図４のＡに示す。演算部３３は、検査行列の行毎に図４のＡに示されるようなチェックノード演算を行い、検査行列の列毎に図４のＡに示されるようなバリアブルノード演算を行う。検査行列は図４のＢに示されるように値が０または１の要素（係数）により構成されており、演算部３３は、この検査行列の非ゼロ係数（値が１の係数）の位置に対応する情報を用いてこれらの演算を行う。
【００３２】
＜BP復号の特徴＞
このようなBP復号は、軟判定復号であり、LDPC（Low Density Parity Check）符号の復号にも使用される等、誤り訂正能力は高い。しかしながら、BP復号の場合、検査行列における非ゼロ係数の位置は列や行によって変化する為、復号に用いる情報もそれに応じて変化する。そのため、情報を保持する記憶素子に対するアクセスが複雑になる（アクセス先のバリエーションが増大する）。したがって、記憶素子への配線が増大し、配線混雑性が増して回路規模が増大するおそれがあった。例えば、図３のRead Dataに接続されたセレクタは規模が大きい。また、Write Dataはそれぞれの記憶素子に接続する必要があり配線が多く、接続先が多くなるほど出力元のデバイスのドライブ能力を高くする必要があるなど、配線の混雑性は回路規模に影響を与えるおそれがあった。
【００３３】
なお、RAM３４の同時アクセス可能なアドレス数はそのRAM３４の仕様に依存するが、複数同時アクセスするためには配線増加などを伴うため回路規模が増大するおそれがあった。また、RAMを使用する為、アドレス生成部３１等が必要になり、回路規模が増大するおそれがあった。
【００３４】
なお、RAMの代わりにレジスタを用いて情報を保持する方法も考えられるが、その場合も、演算部３３が情報を読み出すアドレスは可変となるので、アドレス生成部３１が必要になり、回路規模が増大するおそれがあった。また、演算部３３がチェックノード演算またはバリアブルノード演算のいずれを行う場合も、１回の演算に必要な情報が複数アドレスに分散して保持されていると、アクセスに複数サイクルが必要となり復号遅延が増大するおそれがあった。
【００３５】
＜２．第１の実施の形態＞
＜巡回シフト記憶素子の適用＞
そこで、復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、その復号の検査行列の列方向のシフトに対応するように、その情報を記憶する領域を復号に関する演算に応じてシフトさせ、その記憶部の所定の領域より情報を読み出し、その記憶部より読み出された情報を用いて復号に関する演算を行い、その情報を更新し、その更新された情報を、検査行列の行方向のシフトに対応するように並べ替え、その記憶部の所定の領域に書き込むようにする。
【００３６】
このように、演算の度に、検査行列を行列方向に巡回シフトさせることにより非ゼロ係数の位置が固定化されるので、記憶部の同じ領域から情報を読み出すようにすることができる。したがって、情報の読み出しや書き込みのための、記憶部に接続される配線数の増大等を抑制することができ、回路規模の増大を抑制することができる。
【００３７】
＜BP復号のアルゴリズム＞
そのために、例えば、BP復号のアルゴリズムを図５のように等価変形する。つまり、１回の繰り返しの中で情報更新の順番を入れ替えるようにする。また、検査行列の列順に処理を行うようにする。さらに、各列において非０要素位置（非ゼロ係数の位置）だけチェックノード（check node）演算とバリアブルノード（variable node）演算とを行うようにする。
【００３８】
より具体的には、図５に示されるように、検査行列の各列の非ゼロ係数の位置に対応する情報に対して、以下の式（１）のようなチェックノード演算と、以下の式（２）のようなバリアブルノード演算と、以下の式（３）のような情報算出が行われるようにする。
【００３９】
2019003888.tif 000003
・・・（１）
2019003888.tif 000004
・・・（２）
2019003888.tif 000005
・・・（３）
【００４０】
また、以上の演算が各列について行われるようにする。さらに、その後、以下の式（４）のように情報の更新が行われるようにする。
【００４１】
2019003888.tif 000006
・・・（４）
【００４２】
図６に検査行列の例を示す。図６に示されるように、図５に示されるアルゴリズムのloop for number of non-zero elements (0≦I＜J)は、検査行列の行方向の巡回シフトに相当し、図５に示されるアルゴリズムのloop for number of columns (0≦j記＜N)は、検査行列の列方向の巡回シフトに相当する。
【００４３】
＜BPの演算対象位置＞
図７に示されるように、差集合巡回符号の性質から、検査行列の非０要素位置に中間情報（Ａ、Ｂ、Ｃ）を配置して巡回シフトする事でノード（node）演算（チェックノード演算やバリアブルノード演算）に必要な情報を読み出す事ができる。しかしながら、０要素位置は情報を置かないので、巡回シフト用に無駄なバッファを置くか、巡回シフトするサイクルを制御する必要がある。そのため、この方法では回路規模が増大するおそれがある。
【００４４】
そこで、図８の一番左に示される検査行列のように、演算対象とした列（点線で囲まれた列）に着目する。列方向の非０要素位置となる行（図８の左から２番目（中央）に示される行列の点線で囲まれた行）の情報を使ってノード（node）演算を行うので、図８の一番右に示される行列のように、行方向に非０要素位置の情報をバッファしておくだけで良い。演算対象とした列に対して、どの行が対応するかの規則性を利用すれば読み出し位置を限定する事ができる。
【００４５】
例えば、一番上の段の行列の場合、一番右の列が対象となるので、非ゼロ係数が存在する上から１行目と２行目と４行目とが対象となる。したがって、図８の一番右に示されるように、バッファからは、上から１行目の一番右の「Ａ」、上から２行目の一番右の「Ｂ」、上から３行目の一番右の「Ｃ」が読み出される。
【００４６】
その次に、上から２段目のように、右から２番目の列が対象となる。したがって、非ゼロ係数が存在する上から１行目と３行目と７行目とが対象となる。つまり、図８の一番右に示されるように、バッファからは、上から１行目の右から２番目の「Ｂ」、上から３行目の一番右の「Ｃ」、上から７行目の一番右の「Ａ」が読み出される。
【００４７】
その次に、上から３段目のように、右から３番目の列が対象となる。したがって、非ゼロ係数が存在する上から２行目と６行目と７行目とが対象となる。つまり、図８の一番右に示されるように、バッファからは、上から２行目の右から２番目の「Ｃ」、上から６行目の一番右の「Ａ」、上から７行目の右から２番目の「Ｂ」が読み出される。
【００４８】
図９を参照してより具体的に説明する。図９の一番上の段に示されるように、BP復号のバリアブルノード演算の処理対象は、検査行列の一番右の列から開始され、その次に右から２番目の列、その次に右から３番目の列、・・・といった具合に右から順に１列ずつ指定される。チェックノード演算は、そのバリアブルノード演算の処理対象列の非ゼロ係数と同じ行の非ゼロ係数に対して行われる。
【００４９】
したがって、図９の上から２番目の段（中央の段）に示されるように、ノード演算の度に、検査行列の各係数を列方向に巡回シフトする（図中矢印のように列順を入れ替える）と、バリアブルノード演算の処理対象が検査行列の一番右の列に固定化される。
【００５０】
また、図９の一番下の段に示されるように、ノード演算の度に、検査行列の各係数を列方向だけでなく行方向にも巡回シフトする（図中矢印のように列順および行順をそれぞれ入れ替える）と、バリアブルノード演算の処理対象だけでなくチェックノード演算の処理対象の係数の位置も固定化される。つまり、バッファからノード演算に用いる情報を読み出す領域（アドレス）を固定化することができる。
【００５１】
したがって、例えば図３のRead Dataに接続されたセレクタのような大規模なセレクタを省略することができる。また、Write Dataの配線数を低減させることができる。したがって、配線混雑性の増大を抑制することができる。また、例えば、アドレス生成部を省略することができる。これらのように、回路規模の増大を抑制することができる。RAMの代わりにレジスタを用いる場合も同様である。
【００５２】
＜BP復号装置＞
図１０は、本技術を適用した情報処理装置の一実施の形態であるBP復号装置の主な構成例を示すブロック図である。図１０に示されるBP復号装置２００は、例えばLDPC符号等の差集合巡回符号をBP復号する。図１０に示されるように、BP復号装置２００は、シフトバッファ２１１（Shift buffers）、演算部２１２（variable & check node演算器)、繰り返し制御部２１３（繰り返し制御回路）を有する。
【００５３】
シフトバッファ２１１は受信情報rを記憶する巡回シフトバッファと中間情報zi,jを記憶する巡回シフトバッファを有する。巡回シフトバッファは、情報を記憶する領域（バッファ）を巡回的にシフトさせるバッファである。
【００５４】
受信情報rを記憶する巡回シフトバッファは、例えば、ループ状に接続される複数のバッファセル（Buffer Cells）２２２により構成される。この巡回シフトバッファは、各バッファセル２２２に受信情報ｒを記憶することができる。また、この巡回シフトバッファは、各バッファセル２２２に記憶されている受信情報ｒを次のバッファセル２２２（図１０の例の場合、右隣のバッファセル２２２）に移動させることができる。その際、図中右端のバッファセル２２２の出力は、図中左端のバッファセル２２２に供給される。つまり、この巡回シフトバッファは、このような構成のバッファセル２２２のループに沿って、受信情報ｒを巡回的にシフトさせる（受信情報rを記憶する領域を更新する）ことができる。例えば、この巡回シフトバッファは、ノード演算に対応して（例えばノード演算が行われる度に）、受信情報ｒを巡回的にシフトさせる。
【００５５】
なお、図１０においては、左端のバッファセルにのみ符号を付しているが、図中横方向に並ぶ全てのバッファセル（Buffer Cells）は、いずれもバッファセル２２２である。また、図中左端のバッファセル２２２の入力側には選択部２２１が設けられており、外部から供給された受信情報ｒまたは図中右端のバッファセル２２２から供給された受信情報ｒが、図中左端のバッファセル２２２に供給されるようになされている。
【００５６】
中間情報zi,jを記憶する巡回シフトバッファは、例えば、ループ状に接続される複数のバッファセル（Buffer Cells）２２３により構成される。この巡回シフトバッファは、各バッファセル２２３に中間情報zi,jを記憶することができる。また、この巡回シフトバッファは、各バッファセル２２３に記憶されている中間情報zi,jを次のバッファセル２２３（図１０の例の場合、右隣のバッファセル２２３）に移動させることができる。その際、図中右端のバッファセル２２３の出力は、図中左端のバッファセル２２３に供給される。つまり、この巡回シフトバッファは、このような構成のバッファセル２２３のループに沿って、中間情報zi,jを巡回的にシフトさせる（中間情報zi,jを記憶する領域を更新する）ことができる。例えば、この巡回シフトバッファは、ノード演算に対応して（例えばノード演算が行われる度に）、中間情報zi,jを巡回的にシフトさせる。
【００５７】
なお、図１０においては、左端のバッファセルにのみ符号を付しているが、図中横方向に並ぶ全てのバッファセル（Buffer Cells）は、いずれもバッファセル２２３である。また、中間情報zi,jを記憶する巡回シフトバッファが有するバッファセル２２３の数は、受信情報rを記憶する巡回シフトバッファのバッファセル２２２と同数である。
【００５８】
さらに、中間情報zi,jを記憶する巡回シフトバッファの一部のバッファセル２２３の出力は、演算部２１２を介して次のバッファセル２２３に接続される。例えば、この巡回シフトバッファの所定の位置のバッファセル２２３の出力が演算部２１２に供給されるように配線されている。つまり、演算部２１２が、この巡回シフトバッファの所定の位置のバッファセル２２３から中間情報zi,jを読み出すようになされている。
【００５９】
また、例えば、演算部２１２において得られる演算結果（更新された中間情報zi,j）は、更新前の中間情報zi,jを読み出した所定の位置のバッファセル２２３の次のバッファセル２２３（図１０の例の場合、右隣のバッファセル２２３）に供給されるように配線されている。演算部２１２を経る接続位置は符号構成により一意に決まる。
【００６０】
演算部２１２は、BP復号のチェックノード演算とバリアブルノード演算を実施すると共に復号結果を出力する。
【００６１】
繰り返し制御部２１３は、受信情報入力時の初期化と繰り返し回数の制御を行う。初期化時には中間情報zi,jの巡回シフトバッファを０にセットし、繰り返し回数の偶奇によって読み出しと書き込みのバッファ制御を行う。
【００６２】
図１１は、シフトバッファ２１１および演算部２１２の主な構成例を示す図である。上述したように、シフトバッファ２１１は、選択部２２１と、複数のバッファセル２２２がループ状に接続された巡回シフトバッファと、複数のバッファセル２２３がループ状に接続された巡回シフトバッファとを有する。
【００６３】
演算部２１２は、シフトバッファ２１１の所定のバッファセルより情報を読み出し、更新された情報を、シフトバッファ２１１の所定の領域に書き込む更新部としての構成と、BP復号に関するノード演算を行うノード演算部としての構成とを有する。
【００６４】
演算部２１２は、その更新部の構成として、選択部２３１−１乃至選択部２３１−３、バッファ２３２−１乃至バッファ２３２−３、選択部２３３、バッファ２３４−１乃至バッファ２３４−３、および選択部２３５（図中点線２４１より上側に示される構成）を有する。また、演算部２１２は、ノード演算部の構成として、チェックノード演算部２３６−１乃至チェックノード演算部２３６−３（図中点線２４１と点線２４２との間に示される構成）と、バリアブルノード演算部２３７（図中点線２４２と点線２４３との間に示される構成）と、情報更新部２３８−１乃至情報更新部２３８−３（図中点線２４３より下側に示される構成）と、判定部２３９とを有する。
【００６５】
なお、選択部２３１−１乃至選択部２３１−３を互いに区別して説明する必要が無い場合、選択部２３１と称する。また、バッファ２３２−１乃至バッファ２３２−３を互いに区別して説明する必要が無い場合、バッファ２３２と称する。また、バッファ２３４−１乃至バッファ２３４−３を互いに区別して説明する必要が無い場合、バッファ２３４と称する。また、チェックノード演算部２３６−１乃至チェックノード演算部２３６−３を互いに区別して説明する必要が無い場合、チェックノード演算部２３６と称する。また、情報更新部２３８−１乃至情報更新部２３８−３を互いに区別して説明する必要が無い場合、情報更新部２３８と称する。
【００６６】
また、図１１においては、選択部２３３は、図中一番右側のみ符号を付してあるが、この選択部２３３と図中水平方向に並ぶ選択部は全て選択部２３３と称する。同様に、選択部２３５も図中一番右側のみ符号を付してあるが、この選択部２３５と図中水平方向に並ぶ選択部は全て選択部２３５と称する。
【００６７】
選択部２３１は、繰り返し制御部２１３から供給される制御信号「reciving data」の値に応じて、自身に対応するバッファ２３２の値と初期値（例えば「０」）との内のいずれか一方を選択し、選択した値を、中間情報zi,jの巡回シフトバッファの所定の位置のバッファセル２２３（情報が読み出されるバッファセル２２３の次のバッファセル２２３）に供給し、記憶させる。
【００６８】
バッファ２３２は、中間情報zi,jの巡回シフトバッファ（のバッファセル２２３）に書き込む中間情報zi,jを記憶する。
【００６９】
選択部２３３は、繰り返し制御部２１３から供給される制御信号「even/odd」の値に応じて、自身に対応するバッファ２３４の値と自身に対応する情報更新部２３８から供給される更新後の中間情報zi,jとの内のいずれか一方を選択し、選択した値を、自身に対応するバッファ２３２に供給する。
【００７０】
バッファ２３４は、中間情報zi,jの巡回シフトバッファの所定の位置のバッファセル２２３の値を取得し、記憶する。また、バッファ２３４は、記憶している値を、自身に対応するバッファ２３２、自身に対応する選択部２３３、または、自身に対応する選択部２３５に供給する。
【００７１】
選択部２３５は、繰り返し制御部２１３から供給される制御信号「even/odd」の値に応じて、自身に対応するバッファ２３４の複数の値のいずれかを選択し、選択した値を、自身に対応するチェックノード演算部２３６に供給する。
【００７２】
チェックノード演算部２３６は、供給された中間情報zi,jを用いて、例えば以下の式（５）のようなチェックノード演算を行う。
【００７３】
2019003888.tif 000007
・・・（５）
【００７４】
また、チェックノード演算部２３６は、算出した値をバリアブルノード演算部２３７と、自身に対応する情報更新部２３８に供給する。
【００７５】
バリアブルノード演算部２３７は、供給されたチェックノード演算結果を用いて、例えば以下の式（６）のようなバリアブルノード演算を行う。
【００７６】
2019003888.tif 000008
・・・（６）
【００７７】
また、バリアブルノード演算部２３７は、算出した値を各情報更新部２３８と判定部２３９に供給する。
【００７８】
情報更新部２３８は、供給されたチェックノード演算結果とバリアブルノード演算結果とを用いて、例えば以下の式（７）のような情報更新の為の演算を行う。
【００７９】
2019003888.tif 000009
・・・（７）
【００８０】
また、情報更新部２３８は、得られた演算結果（更新された中間情報zi,j）を、自身に対応する選択部２３３に供給する。
【００８１】
判定部２３９は、供給されたバリアブルノード演算結果に基づいて誤り判定を行う。例えば、バリアブルノード演算結果が正の値の場合、誤りでないと判定し、バリアブルノード演算結果が０以下の場合、誤りであると判定する。判定部２３９は、その判定結果をBP復号部の外部に出力する。
【００８２】
これらの構成は、BP復号に用いられる検査行列の構成（の非ゼロ係数の位置）に対応している。つまり、図１１に示される構成は一例である。シフトバッファ２１１および演算部２１２の構成は、BP復号に用いられる検査行列の構成に対応していればよく、図１１の例に限定されない。例えば、図１１の構成例は、図１２に示される検査行列に対応している。
【００８３】
このような構成のBP復号装置２００において、初期化時は受信信号rを、受信情報を記憶する巡回シフトバッファ（バッファセル２２２）に供給し、記憶させる。また、選択部２３１を制御して、中間情報zi,jを記憶する巡回シフトバッファ（バッファセル２２３）に値「０」を供給し、記憶させる。すなわち、中間情報zi,jを「０」にする。以上の処理をNサイクル繰り返すことにより、受信情報の記録と０初期化は完了する。
【００８４】
BP復号では、チェックノード演算とバリアブルノード演算とにより中間情報を算出し、次の繰り返し時にその情報を使う。中間情報を保持する巡回シフトバッファは、繰り返しの偶数回と奇数回とで読み出し側と書き込み側を切り替えて使う。中間情報zi,jの列方向の巡回シフトは、Jｘ2個の情報を保持するN個のバッファセル２２３からなる巡回シフトバッファを用いる。例えば、図１１の場合、中間情報を保持する巡回シフトバッファは、ループ状に接続された７個のバッファセル２２３により構成される。
【００８５】
シフトバッファ２１１は、ノード演算に対応して（ノード演算の度に）、検査行列の列方向のシフトに対応するように、中間情報zi,jを巡回シフトさせる。これにより、図９を参照して上述した行列方向の巡回シフトの内、列方向の巡回シフトを実現することができる。
【００８６】
また、演算部２１２の更新部は、バッファ２３２とバッファ２３４とを用いて、ノード演算により更新された中間情報zi,jを、検査行列の行方向のシフトに対応するように並べ替える。これにより、図９を参照して上述した行列方向の巡回シフトの内、行方向の巡回シフトを実現することができる。
【００８７】
つまり、以上のような構成とすることにより、BP復号装置２００は、差集合巡回符号の規則性を利用してデータの巡回シフトを繰り返すことによりBP復号を完了させることができる。したがって、１回の繰り返しに必要なサイクルがNサイクルであり、繰り返し回数をlmaｘとするとN×lmaｘサイクルで復号が完了する。
【００８８】
なお、演算部２１２によるチェックノード演算、バリアブルノード演算、情報の更新、および復号結果を得る判定等の処理は、通常のBP復号と同様に行われる。なお、図１１の例においては、パリティチェック回路が省略されているが、復号結果を他の情報と同様にシフトバッファに記録すれば実現する事は容易である。
【００８９】
また、演算部２１２において、更新部およびノード演算部の構成は、検査行列の列重み（列方向の非０要素数）に依存した数を有する。例えば、列重みJの場合、演算部２１２は、J個の更新部およびノード演算部を有する。図１１の例の場合、図１２に示されるように検査行列の列方向の非０要素数が３であるため、バッファ２３２、バッファ２３４、チェックノード演算部２３６、および情報更新部２３８は、それぞれ、３ずつ設けられている。
【００９０】
なお、規模削減のため回路のリソースシェアを行う場合にはJより少なくても良い。ただし、巡回シフトバッファのシフトタイミングは演算サイクルと同期させる必要がある。
【００９１】
また、シフトバッファ２１１の巡回シフトバッファと演算部２１２の更新部との接続位置は、検査行列の列方向の非０要素位置に対応する。図１１の例の場合、検査行列の一番右の列の非０要素位置が上から１番目と２番目と４番目であるため、図１１中右から１番目（左から７番目）のバッファセル２２３と、右から２番目（左から６番目）のバッファセル２２３と、右から４番目（左から４番目）のバッファセルとから中間情報zi,jが読み出され、演算部２１２の更新部（バッファ２３４）に供給される。検査行列の列方向の非０要素位置が図１２の例と異なる場合も、シフトバッファ２１１のその位置に応じた領域（バッファセル２２３）から中間情報zi,jが読み出されるようにすればよい。
【００９２】
以上のように、中間情報を巡回シフトしてシフトバッファ２１１に書き戻す事により、シフトバッファ２１１からの中間情報の読み出し位置が毎回同じになる。なお、BP復号では自ノードを除いた情報を用いて演算を行うが、この巡回シフトにより中間情報を読み出した時の自ノードの位置が固定される。BP復号では算出した中間情報を次の繰り返しで使うため、書き込み側と読み出し側でバッファを切り替え(even/odd)て使う。
【００９３】
＜BP復号処理の流れ＞
次に、以上のような構成のBP復号装置２００が、BP復号を行う為に実行するBP復号処理の流れの例を、図１３のフローチャートを参照して説明する。
【００９４】
BP復号処理が開始されると、繰り返し制御部２１３は、ステップＳ１０１において、シフトバッファ２１１および演算部２１２を制御して初期化処理を行い、受信情報ｒを回路に入力し、中間情報を０にする。例えば、繰り返し制御部２１３は、受信情報ｒの入力を示す制御信号「receiving data」を有効にして受信情報ｒをシフトバッファ２１１に入力すると共に、中間情報zi,jとして値「０」をシフトバッファ２１１に入力する。符号長Nとすると、繰り返し制御部２１３は、この処理をNサイクルで完了する。また、繰り返し制御部２１３は、最大繰り返し回数を設定して、繰り返し回数カウンタのカウント値を「０」にする。
【００９５】
ステップＳ１０２において、繰り返し制御部２１３は、シフトバッファ２１１を制御して、ノード演算１回分の巡回シフトを行わせる。また、ステップＳ１０３において、繰り返し制御部２１３は、演算部２１２を制御し、１回分のノード演算を行わせる。
【００９６】
このような巡回シフトおよびノード演算の処理は、中間情報zi,jの１ビット目乃至Nビット目のそれぞれに対して行う必要がある。したがって、繰り返し制御部２１３は、ステップＳ１０４において、ステップＳ１０２およびステップＳ１０３の処理をN回繰り返したか否かを判定する。繰り返し回数がN回に達していないと判定された場合、処理はステップＳ１０２に戻る。つまり、ステップＳ１０２乃至ステップＳ１０４の処理がN回繰り返される。そして、巡回シフトおよびノード演算がN回行われたと判定された場合、処理は、ステップＳ１０５に進む。
【００９７】
ステップＳ１０５において、繰り返し制御部２１３は、繰り返し回数カウンタをカウントアップする。
【００９８】
繰り返し制御部２１３は、以上の処理を（lmaｘ-1）回繰り返すように制御する。つまり、繰り返し制御部２１３は、ステップＳ１０６において、繰り返し回数が最大値（lmaｘ-1）に達したか否かを判定する。繰り返し回数が最大値（lmaｘ-1）に達していないと判定された場合、処理はステップＳ１０２に戻る。つまり、繰り返し回数が最大値（lmaｘ-1）に達するまで、ステップＳ１０２乃至ステップＳ１０６の処理が繰り返される。
【００９９】
そして、ステップＳ１０２乃至ステップＳ１０６の処理が（lmaｘ-1）回繰り返されると、処理はステップＳ１０７に進む。
【０１００】
ステップＳ１０７において、繰り返し制御部２１３は、ステップＳ１０２と同様に、シフトバッファ２１１を制御して巡回シフトを行わせ、さらに、ステップＳ１０３と同様に、演算部２１２を制御してノード演算を行わせる。
【０１０１】
ステップＳ１０８において、演算部２１２は、復号結果を後段に出力する。
【０１０２】
ステップＳ１０８の処理が終了すると、BP復号処理が終了する。
【０１０３】
以上のように、情報を記憶する記憶部を、符号の規則性を利用してシフトバッファで構成する事により、従来必要であったアドレス発生器やランダムアクセスに起因する配線混雑性、アドレスデコーダが不要となり、回路規模の増大を抑制することができる。
【０１０４】
例えばシングルポートのRAMを使う場合、同時にアクセスできるアドレスは１つしかない。この場合にノード演算を行うには、複数のアドレスから情報を読み出す必要があるため、複数サイクルの読み出しと書き込みによりノード演算の実行と更新を行う必要があった。しかしながら、上述のように符号の規則性を利用する事により、読み出し位置や書き込み位置を１通りに限定する（固定化する）ことができる。このようにすることにより、符号規則に従って、所定のバッファセルから直接ノード演算部へ情報を渡し、ノード演算結果を次のバッファセルに送ることができる。したがって１サイクルでノード演算の実行と更新を行う事ができる。つまり、これにより復号遅延を小さくする事ができる。
【０１０５】
＜復号方式比較例＞
図１４に示されるグラフは、各復号方式における、受信情報の信号対雑音比に対するビットエラーレート（BER（Bit Error Rate））およびフレームエラーレート（FER（Frame Error Rate））を比較した例を示す。
【０１０６】
図１４において、HDは、多数決硬判定復号を示し、VTHDは、可変閾値硬判定復号を示し、SDは、軟判定復号を示し、SDHDは、軟判定復号＋多数決硬判定復号を示し、BPは、本技術を適用したBP復号（繰り返し回数５０回）を示す。図１４のグラフから明らかなように、本技術を適用したBP復号を用いることにより、他の方式よりも誤り訂正能力を向上させることができる。
【０１０７】
つまり、本技術を適用することにより、誤り訂正能力の低減を抑制しながら回路規模の増大を抑制することができる。これにより、BP復号装置２００は、より容易に筐体を小型化することができる。また、製造コストや消費電力の増大を抑制することもできる。
【０１０８】
さらに、本技術を適用することにより、誤り訂正に関する処理を容易化することもできるので、処理時間の増大や消費電力の増大を抑制することもできる。処理時間の増大を抑制することにより、誤り訂正能力の低減を抑制しながら、より高ビットレートの受信情報を処理することができる。つまり、より情報量の多い受信情報に対してより高精度な誤り訂正を行うことができる。
【０１０９】
また、消費電力の増大を抑制することにより発熱量の増大を抑制することができる。したがって、筐体の小型化をさらに容易化することができる。また、経年劣化を抑制することもできるので、信頼性を向上させることができる。
【０１１０】
＜３．第２の実施の形態＞
＜Shuffled BPアルゴリズム＞
なお、本技術は、BP復号の派生アルゴリズムにも適用する事ができる。例えば、更新した情報を同じ繰り返し内に反映するシャッフルドBP復号（Shuffled BP）と呼ばれる復号方式にも本技術を適用することができる。
【０１１１】
このシャッフルドBP復号のアルゴリズムの例を図１５に示す。この場合、情報算出は、以下の式（８）のように行われる。
【０１１２】
2019003888.tif 000010
・・・（８）
【０１１３】
この場合、繰り返し回数の偶奇でバッファの切り替えを行わずに、常に情報を更新する。この場合のBP復号装置２００のシフトバッファ２１１および演算部２１２の主な構成例を図１６に示す。図１６に示されるように、この場合、図１１の例と比較して、選択部２３３および選択部２３５、すなわち、繰り返し回数even/oddによる選択部が省略されている。また、自ノードの中間情報を次の演算で使わないのでバッファに記録する必要がない。例として、第１の実施の形態のBP復号ではA,B,Cの３情報を示したが、この場合は２情報で良い。動作順序は、第１の実施の形態のBP復号の場合と同様に行えば良い。
【０１１４】
このように、シャッフルドBP復号（Shuffled BP）の場合も本技術を適用することにより、第１の実施の形態の場合と同様の効果を得ることができる。
【０１１５】
＜４．第３の実施の形態＞
＜チェックノード演算の応用＞
以上に説明したBP復号においては、図１７に示されるアルゴリズムの例のように、チェックノード演算において、以下の式（９）のようなGallager関数が用いられる。
【０１１６】
2019003888.tif 000011
・・・（９）
【０１１７】
このようなGallager関数はルックアップテーブル（Table Look Up）等を用いて実装される事が多く、高精度ではあるものの、その回路規模は大きく、演算サイクルも多い。そこで、処理の複雑なチェックノード演算を簡易化するようにしてもよい。
【０１１８】
例えば、図１８のＡに示されるように、以下の式（１０）のようなMin-Sumアルゴリズムを用いてチェックノード演算を行うようにしてもよい。
【０１１９】
2019003888.tif 000012
・・・（１０）
【０１２０】
また、例えば、図１８のＢに示されるように、以下の式（１１）のようなNormalized Min-Sumアルゴリズムを用いてチェックノード演算を行うようにしてもよい。
【０１２１】
2019003888.tif 000013
α: Normalize Factor
・・・（１１）
【０１２２】
また、例えば、図１８のＣに示されるように、以下の式（１２）のようなOffset Min-Sumアルゴリズムを用いてチェックノード演算を行うようにしてもよい。
【０１２３】
2019003888.tif 000014
β: Offset Factor
・・・（１２）
【０１２４】
図１７の例のBP復号アルゴリズムの場合、行重みJに応じたバッファを持つ必要があったが、これらのアルゴリズムを適用する場合、最小２値を保持することができれば良いので、バッファ量の増大を抑制することができる。
【０１２５】
勿論、これら以外のアルゴリズムを適用するようにしてもよい。
【０１２６】
なお、以上においては、巡回符号として差集合巡回符号を例に説明したが、本技術は任意の巡回符号に適用することができる。
【０１２７】
＜５．第４の実施の形態＞
＜受信装置＞
図１９は、上述した実施形態を適用した受信装置の主な構成例を示すブロック図である。図１９に示される受信装置７００は、他の装置から伝送される無線信号を受信して、その無線信号に含まれる情報（情報はどのようなものであってもよい。例えば画像データ等。）を復元し、出力する装置である。図１９に示されるように、この受信装置７００は、例えば、アンテナ７１１、チューナ７１２、復調部７１３、誤り訂正部７１４、デコーダ７１５、および出力部７１６を有する。
【０１２８】
チューナ７１２は、アンテナ７１１を介して受信される無線信号から所望の周波数帯（チャンネル）の信号を抽出し、抽出した信号（受信信号）を復調部７１３に供給する。復調部７１３は、供給された受信信号を復調し、得られた復調信号を誤り訂正部７１４に供給する。
【０１２９】
誤り訂正部７１４は、供給されたLDPC（Low Density Parity Check）符号の復調信号に対してBP復号を行うことにより誤り訂正を行う。誤り訂正部７１４は、そのようにして得られた符号化ビットストリームをデコーダ７１５に供給する。
【０１３０】
デコーダ７１５は、供給された符号化ビットストリームを復号する。デコーダ７１５は、その復号により得られたデータ、すなわち、送信側から送信された情報を出力部７１６に供給する。出力部７１６は、供給されたデータを外部に出力する。例えば、出力部７１６は、そのデータに含まれる画像データに対応する画像をモニタ等に表示したり、そのデータに含まれる音声データに対応する音声をスピーカ等から出力したり、外部入力端子等を介してそのデータを他の装置に出力したり、そのデータを記憶媒体に記憶させたり、そのデータを有線通信や無線通信等により他の装置に送信したりする。
【０１３１】
このように構成された受信装置７００において、誤り訂正部７１４が、上述した受信装置７００の機能を有するようにしてもよい。例えば、誤り訂正部７１４が、BP復号装置２００と同様の構成を有するようにし、図１乃至図１８を参照して上述した各実施の形態と同様の手法によりBP復号を行うようにしてもよい。
【０１３２】
このように本技術を適用することにより、受信装置７００は、回路規模の増大を抑制することができる。これにより、受信装置７００は、より容易に筐体を小型化することができる。また、製造コストや消費電力の増大を抑制することもできる。
【０１３３】
さらに、本技術を適用することにより、誤り訂正に関する処理を容易化することもできるので、処理時間の増大や消費電力の増大を抑制することもできる。処理時間の増大を抑制することにより、誤り訂正能力の低減を抑制しながら、より高ビットレートの受信情報を処理することができる。つまり、より情報量の多い受信情報に対してより高精度な誤り訂正を行うことができる。
【０１３４】
また、消費電力の増大を抑制することにより発熱量の増大を抑制することができる。したがって、筐体の小型化をさらに容易化することができる。また、経年劣化を抑制することもできるので、信頼性を向上させることができる。
【０１３５】
＜６．第５の実施の形態＞
＜テレビジョン受像機＞
図２０は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置８００は、アンテナ８０１、受信部８０２、デマルチプレクサ８０３、デコーダ８０４、映像信号処理部８０５、表示部８０６、音声信号処理部８０７、スピーカ８０８、外部インタフェース（I/F）部８０９、制御部８１０、ユーザインタフェース（I/F）部８１１、及びバス８１２を備える。
【０１３６】
受信部８０２は、アンテナ８０１を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調したり、誤り訂正を行ったりする。そして、受信部８０２は、そのようにして得られた符号化ビットストリームをデマルチプレクサ８０３へ出力する。即ち、受信部８０２は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置８００における伝送部としての役割を有する。
【０１３７】
デマルチプレクサ８０３は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ８０４へ出力する。また、デマルチプレクサ８０３は、符号化ビットストリームからEPG（Electronic Program Guide）などの補助的なデータを抽出し、抽出したデータを制御部８１０に供給する。なお、デマルチプレクサ８０３は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
【０１３８】
デコーダ８０４は、デマルチプレクサ８０３から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ８０４は、復号処理により生成される映像データを映像信号処理部８０５へ出力する。また、デコーダ８０４は、復号処理により生成される音声データを音声信号処理部８０７へ出力する。
【０１３９】
映像信号処理部８０５は、デコーダ８０４から入力される映像データを再生し、表示部８０６に映像を表示させる。また、映像信号処理部８０５は、ネットワークを介して供給されるアプリケーション画面を表示部８０６に表示させてもよい。また、映像信号処理部８０５は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部８０５は、例えばメニュー、ボタン又はカーソルなどのGUI（Graphical User Interface）の画像を生成し、生成した画像を出力画像に重畳してもよい。
【０１４０】
表示部８０６は、映像信号処理部８０５から供給される駆動信号により駆動され、表示デバイス（例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD（Organic ElectroLuminescence Display）（有機ELディスプレイ）など）の映像面上に映像又は画像を表示する。
【０１４１】
音声信号処理部８０７は、デコーダ８０４から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ８０８から音声を出力させる。また、音声信号処理部８０７は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
【０１４２】
外部インタフェース部８０９は、テレビジョン装置８００と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部８０９を介して受信される映像ストリーム又は音声ストリームが、デコーダ８０４により復号されてもよい。即ち、外部インタフェース部８０９もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置８００における伝送部としての役割を有する。
【０１４３】
制御部８１０は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置８００の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部８１１から入力される操作信号に応じて、テレビジョン装置８００の動作を制御する。
【０１４４】
ユーザインタフェース部８１１は、制御部８１０と接続される。ユーザインタフェース部８１１は、例えば、ユーザがテレビジョン装置８００を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部８１１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部８１０へ出力する。
【０１４５】
バス８１２は、受信部８０２、デマルチプレクサ８０３、デコーダ８０４、映像信号処理部８０５、音声信号処理部８０７、外部インタフェース部８０９、及び制御部８１０を相互に接続する。
【０１４６】
このように構成されたテレビジョン装置８００において、受信部８０２が、上述した受信装置７００の機能を有するようにしてもよい。例えば、受信部８０２が、チューナ７１２乃至誤り訂正部７１４の構成を有するようにし、その誤り訂正部７１４において行われる制御信号の誤り訂正に関する処理として、図１乃至図１８を参照して上述した各実施の形態と同様の手法によりBP復号を行うようにしてもよい。
【０１４７】
このように本技術を適用することにより、テレビジョン装置８００は、回路規模の増大を抑制することができる。これにより、テレビジョン装置８００は、より容易に筐体を小型化することができる。また、製造コストや消費電力の増大を抑制することもできる。
【０１４８】
さらに、本技術を適用することにより、誤り訂正に関する処理を容易化することもできるので、処理時間の増大や消費電力の増大を抑制することもできる。処理時間の増大を抑制することにより、誤り訂正能力の低減を抑制しながら、より高ビットレートの制御情報を処理することができる。つまり、より情報量の多い（より高機能な）制御情報に対してより高精度な誤り訂正を行うことができる。
【０１４９】
また、消費電力の増大を抑制することにより発熱量の増大を抑制することができる。したがって、筐体の小型化をさらに容易化することができる。また、経年劣化を抑制することもできるので、信頼性を向上させることができる。
【０１５０】
＜７．その他＞
＜ソフトウエア＞
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。また、例えば、上述した一連の処理の一部をソフトウエアにより実行させ、他の処理をハードウエアにより実行させることもできる。一連の処理（の一部または全部）をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【０１５１】
図２１は、上述した一連の処理（の一部または全部）をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０１５２】
図２１に示されるコンピュータ９００において、CPU（Central Processing Unit）９０１、ROM（Read Only Memory）９０２、RAM（Random Access Memory）９０３は、バス９０４を介して相互に接続されている。
【０１５３】
バス９０４にはまた、入出力インタフェース９１０も接続されている。入出力インタフェース９１０には、入力部９１１、出力部９１２、記憶部９１３、通信部９１４、およびドライブ９１５が接続されている。
【０１５４】
入力部９１１は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部９１２は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部９１３は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部９１４は、例えば、ネットワークインタフェースよりなる。ドライブ９１５は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア９２１を駆動する。
【０１５５】
以上のように構成されるコンピュータでは、CPU９０１が、例えば、記憶部９１３に記憶されているプログラムを、入出力インタフェース９１０およびバス９０４を介して、RAM９０３にロードして実行することにより、上述した一連の処理が行われる。RAM９０３にはまた、CPU９０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１５６】
コンピュータ９００が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア９２１に記録して適用することができる。その場合、プログラムは、リムーバブルメディア９２１をドライブ９１５に装着することにより、入出力インタフェース９１０を介して、記憶部９１３にインストールすることができる。
【０１５７】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部９１４で受信し、記憶部９１３にインストールすることができる。
【０１５８】
その他、このプログラムは、ROM９０２や記憶部９１３に、あらかじめインストールしておくこともできる。
【０１５９】
＜補足＞
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１６０】
例えば、本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI（Large Scale Integration）等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等（すなわち、装置の一部の構成）として実施することもできる。
【０１６１】
また例えば、上述した各処理部は、その処理部について説明した機能を有するようにすれば、どのような構成により実現するようにしてもよい。例えば、任意の処理部が、任意の回路、LSI（Large Scale Integration）、システムLSI、プロセッサ、モジュール、ユニット、セット、デバイス、装置、またはシステム等により構成されるようにしてもよい。また、それらを複数組み合わせるようにしてもよい。例えば、複数の回路、複数のプロセッサ等のように同じ種類の構成を組み合わせるようにしてもよいし、回路とLSI等のように異なる種類の構成を組み合わせるようにしてもよい。
【０１６２】
なお、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０１６３】
また、例えば、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。
【０１６４】
また、例えば、本技術は、１つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０１６５】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能（機能ブロック等）を有し、必要な情報を得ることができるようにすればよい。
【０１６６】
また、例えば、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、１つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を１つのステップとしてまとめて実行することもできる。
【０１６７】
コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【０１６８】
本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【０１６９】
なお、本技術は以下のような構成も取ることができる。
（１）  復号に用いる複数の情報を互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせる記憶部と、
前記記憶部の所定の領域より前記情報を読み出し、前記復号に関する演算により更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む更新部と、
前記更新部により前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新する演算部と
を備える情報処理装置。
（２）  前記記憶部は、前記情報を記憶する領域を巡回的にシフトする
（１）に記載の情報処理装置。
（３）  前記記憶部は、ループ状に接続される、それぞれが前記情報を記憶する複数のバッファセルを有し、前記情報を次のバッファセルに移動させることにより、前記情報を記憶する領域を巡回的にシフトする
（２）に記載の情報処理装置。
（４）  前記情報は、外部から入力された受信情報と、前記復号に関する演算により得られる中間情報であり、
前記記憶部は、前記受信情報を巡回的にシフトさせるバッファセルのループと、前記中間情報を巡回的にシフトさせるバッファセルのループを有する
（１）乃至（３）のいずれかに記載の情報処理装置。
（５）  前記更新部は、前記記憶部の、前記検査行列の列方向の非ゼロ係数の位置に対応する領域より前記情報を読み出す
（１）乃至（４）のいずれかに記載の情報処理装置。
（６）  前記更新部は、更新され並べ替えた前記情報を、前記記憶部の、前記情報を読み出した領域の次の領域に書き込む
（１）乃至（５）のいずれかに記載の情報処理装置。
（７）  前記演算部は、
前記記憶部より読み出された前記情報を用いてチェックノード演算を行うチェックノード演算部と、
前記チェックノード演算部により得られるチェックノード演算結果を用いてバリアブルノード演算を行うバリアブルノード演算部と、
前記バリアブルノード演算部により得られるバリアブルノード演算結果を更新する情報更新部と
を備える（１）乃至（６）のいずれかに記載の情報処理装置。
（８）  前記演算部は、さらに、前記バリアブルノード演算結果に基づいて誤りの発生を判定する判定部をさらに備える
（７）に記載の情報処理装置。
（９）    前記チェックノード演算部は、Gallager関数を用いて前記チェックノード演算を行う
（７）または（８）に記載の情報処理装置。
（１０）    前記チェックノード演算部は、Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
（７）または（８）に記載の情報処理装置。
（１１）    前記チェックノード演算部は、Normalized Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
（７）または（８）に記載の情報処理装置。
（１２）    前記チェックノード演算部は、Offset Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
（７）または（８）に記載の情報処理装置。
（１３）  前記演算部は、BP（Belief Propagation）復号に関する演算を行う
（１）乃至（１２）のいずれかに記載の情報処理装置。
（１４）  前記演算部は、Shuffled BP（Belief Propagation）復号に関する演算を行う
（１）乃至（１２）のいずれかに記載の情報処理装置。
（１５）  復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせ、
前記記憶部の所定の領域より前記情報を読み出し、
前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新し、
更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む
情報処理方法。
【符号の説明】
【０１７０】
２００  BP復号装置，  ２１１  シフトバッファ，  ２１２  演算部，  ２１３  繰り返し制御部，  ２２１  選択部，  ２２２および２２３  バッファセル，  ２３１  選択部，  ２３２  バッファ，  ２３３  選択部，  ２３４  バッファ，  ２３５  選択部，  ２３６  チェックノード演算部，  ２３７  バリアブルノード演算部，  ２３８  情報更新部，  ２３９  判定部，  ７００  受信装置，  ７１１  アンテナ，  ７１２  チューナ，  ７１３  復調部，  ７１４  誤り訂正部，  ７１５  デコーダ，  ７１６  出力部，  ８００  テレビジョン装置，  ８０２  受信部，  ９００  コンピュータ
【図１】
2019003888.tif 000015
【図２】
2019003888.tif 000016
【図３】
2019003888.tif 000017
【図４】
2019003888.tif 000018
【図５】
2019003888.tif 000019
【図６】
2019003888.tif 000020
【図７】
2019003888.tif 000021
【図８】
2019003888.tif 000022
【図９】
2019003888.tif 000023
【図１０】
2019003888.tif 000024
【図１１】
2019003888.tif 000025
【図１２】
2019003888.tif 000026
【図１３】
2019003888.tif 000027
【図１４】
2019003888.tif 000028
【図１５】
2019003888.tif 000029
【図１６】
2019003888.tif 000030
【図１７】
2019003888.tif 000031
【図１８】
2019003888.tif 000032
【図１９】
2019003888.tif 000033
【図２０】
2019003888.tif 000034
【図２１】
2019003888.tif 000035
【国際調査報告】
2019003888.tif 000036
2019003888.tif 000037
2019003888.tif 000038