IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニーセミコンダクタソリューションズ株式会社の特許一覧

<>
  • 特許-情報処理装置及び方法 図1
  • 特許-情報処理装置及び方法 図2
  • 特許-情報処理装置及び方法 図3
  • 特許-情報処理装置及び方法 図4
  • 特許-情報処理装置及び方法 図5
  • 特許-情報処理装置及び方法 図6
  • 特許-情報処理装置及び方法 図7
  • 特許-情報処理装置及び方法 図8
  • 特許-情報処理装置及び方法 図9
  • 特許-情報処理装置及び方法 図10
  • 特許-情報処理装置及び方法 図11
  • 特許-情報処理装置及び方法 図12
  • 特許-情報処理装置及び方法 図13
  • 特許-情報処理装置及び方法 図14
  • 特許-情報処理装置及び方法 図15
  • 特許-情報処理装置及び方法 図16
  • 特許-情報処理装置及び方法 図17
  • 特許-情報処理装置及び方法 図18
  • 特許-情報処理装置及び方法 図19
  • 特許-情報処理装置及び方法 図20
  • 特許-情報処理装置及び方法 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-22
(45)【発行日】2022-08-01
(54)【発明の名称】情報処理装置及び方法
(51)【国際特許分類】
   H03M 13/19 20060101AFI20220725BHJP
【FI】
H03M13/19
【請求項の数】 15
(21)【出願番号】P 2019526766
(86)(22)【出願日】2018-06-12
(86)【国際出願番号】 JP2018022302
(87)【国際公開番号】W WO2019003888
(87)【国際公開日】2019-01-03
【審査請求日】2021-05-07
(31)【優先権主張番号】P 2017124001
(32)【優先日】2017-06-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100082131
【弁理士】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】阪井 塁
(72)【発明者】
【氏名】山本 真紀子
【審査官】高野 洋
(56)【参考文献】
【文献】特開2009-260692(JP,A)
【文献】特開2011-205578(JP,A)
【文献】米国特許出願公開第2011/0126078(US,A1)
【文献】MIYATA,Yoshikuni et al.,Reduced-Complexity Decoding Algorithm for LDPC Codes for Practical Circuit Implementation in Optical,OFC/NFOEC 2007,2007年10月15日,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H03M 13/19
(57)【特許請求の範囲】
【請求項1】
復号に用いる複数の情報を互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせる記憶部と、
前記記憶部の所定の領域より前記情報を読み出し、前記復号に関する演算により更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む更新部と、
前記更新部により前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新する演算部と
を備える情報処理装置。
【請求項2】
前記記憶部は、前記情報を記憶する領域を巡回的にシフトする
請求項1に記載の情報処理装置。
【請求項3】
前記記憶部は、ループ状に接続される、それぞれが前記情報を記憶する複数のバッファセルを有し、前記情報を次のバッファセルに移動させることにより、前記情報を記憶する領域を巡回的にシフトする
請求項2に記載の情報処理装置。
【請求項4】
前記情報は、外部から入力された受信情報と、前記復号に関する演算により得られる中間情報であり、
前記記憶部は、前記受信情報を巡回的にシフトさせるバッファセルのループと、前記中間情報を巡回的にシフトさせるバッファセルのループを有する
請求項1に記載の情報処理装置。
【請求項5】
前記更新部は、前記記憶部の、前記検査行列の列方向の非ゼロ係数の位置に対応する領域より前記情報を読み出す
請求項1に記載の情報処理装置。
【請求項6】
前記更新部は、更新され並べ替えた前記情報を、前記記憶部の、前記情報を読み出した領域の次の領域に書き込む
請求項1に記載の情報処理装置。
【請求項7】
前記演算部は、
前記記憶部より読み出された前記情報を用いてチェックノード演算を行うチェックノード演算部と、
前記チェックノード演算部により得られるチェックノード演算結果を用いてバリアブルノード演算を行うバリアブルノード演算部と、
前記バリアブルノード演算部により得られるバリアブルノード演算結果を更新する情報更新部と
を備える請求項1に記載の情報処理装置。
【請求項8】
前記演算部は、さらに、前記バリアブルノード演算結果に基づいて誤りの発生を判定する判定部をさらに備える
請求項7に記載の情報処理装置。
【請求項9】
前記チェックノード演算部は、Gallager関数を用いて前記チェックノード演算を行う
請求項7に記載の情報処理装置。
【請求項10】
前記チェックノード演算部は、Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
請求項7に記載の情報処理装置。
【請求項11】
前記チェックノード演算部は、Normalized Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
請求項7に記載の情報処理装置。
【請求項12】
前記チェックノード演算部は、Offset Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
請求項7に記載の情報処理装置。
【請求項13】
前記演算部は、BP(Belief Propagation)復号に関する演算を行う
請求項1に記載の情報処理装置。
【請求項14】
前記演算部は、Shuffled BP(Belief Propagation)復号に関する演算を行う
請求項1に記載の情報処理装置。
【請求項15】
復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせ、
前記記憶部の所定の領域より前記情報を読み出し、
前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新し、
更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置及び方法に関し、特に、回路規模の増大を抑制することができるようにした情報処理装置及び方法に関する。
【背景技術】
【0002】
従来、地上波デジタル放送において制御信号伝送の誤り訂正方式として差集合巡回符号が用いられ、その差集合巡回符号の復号方法として、BP(Belief Propagation)復号が用いられていた。BP復号は、多数決復号やAPP(A Posterior Probability)軟判定復号等の他の復号方法に比べて誤り訂正能力が高い。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2010-199920号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、BP復号の場合、復号に用いる中間情報を保持する記憶素子に対するアクセスが複雑になるため、記憶素子への配線数が増大する等、回路規模が増大するおそれがあった。
【0005】
本開示は、このような状況に鑑みてなされたものであり、誤り訂正に関する復号の回路規模の増大を抑制することができるようにするものである。
【課題を解決するための手段】
【0006】
本技術の一側面の情報処理装置は、復号に用いる複数の情報を互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせる記憶部と、前記記憶部の所定の領域より前記情報を読み出し、前記復号に関する演算により更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む更新部と、前記更新部により前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新する演算部とを備える情報処理装置である。
【0007】
本技術の一側面の情報処理方法は、復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせ、前記記憶部の所定の領域より前記情報を読み出し、前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新し、更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む情報処理方法である。
【0008】
本技術の一側面の情報処理装置および方法においては、復号に用いる複数の情報が記憶部の互いに異なる領域に記憶され、その復号の検査行列の列方向のシフトに対応するように、その情報を記憶する領域が復号に関する演算に応じてシフトされ、その記憶部の所定の領域より情報が読み出され、その記憶部より読み出された情報を用いて復号に関する演算が行われてその情報が更新され、その更新された情報が、検査行列の行方向のシフトに対応するように並べ替えられ、記憶部の所定の領域に書き込まれる。
【発明の効果】
【0009】
本開示によれば、情報を処理することができる。特に、誤り訂正に関する復号の回路規模の増大を抑制することができる。
【図面の簡単な説明】
【0010】
図1】多数決復号回路の主な構成例を示す図である。
図2】APP軟判定復号回路の主な構成例を示す図である。
図3】BP復号装置の主な構成例を示すブロック図である。
図4】BP復号アルゴリズムの例について説明する図である。
図5】BP復号アルゴリズムの例について説明する図である。
図6】処理順について説明する図である。
図7】列方向の巡回シフトについて説明する図である。
図8】列毎の読み出し位置について説明する図である。
図9】行列方向の巡回シフトと読み出し位置との関係の例を説明する図である。
図10】BP復号装置の主な構成例を示すブロック図である。
図11】シフトバッファと演算部の主な構成例を示す図である。
図12】検査行列と読み出し位置の例について説明する図である。
図13】BP復号処理の流れの例を説明するフローチャートである。
図14】信号対雑音比とエラーレートとの関係の例を示す図である。
図15】Shuffled BP復号アルゴリズムの例について説明する図である。
図16】Shuffled BP復号を行う場合のシフトバッファと演算部の主な構成例を示す図である。
図17】チェックノード演算の例について説明する図である。
図18】チェックノード演算の例について説明する図である。
図19】受信装置の主な構成例を示すブロック図である。
図20】テレビジョン装置の概略的な構成の一例を示すブロック図である。
図21】コンピュータの主な構成例を示すブロック図である。
【発明を実施するための形態】
【0011】
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.巡回符号の復号方法
2.第1の実施の形態(BP復号装置)
3.第2の実施の形態(Shuffled BP)
4.第3の実施の形態(チェックノード演算)
5.第4の実施の形態(受信装置)
6.第5の実施の形態(テレビジョン装置)
7.その他
【0012】
<1.巡回符号の復号方法>
<復号方法例>
従来、地上波デジタル放送において制御信号伝送の誤り訂正方式として差集合巡回符号が用いられている。
【0013】
正整数Jに対してJ(J-1)以下のJ個の非負整数の集合で、その任意の二つの元のn=J(J-1)+1を法とする順序づけられた差がすべて異なるものを、nを法とする位数Jの単純完全差集合と称する。{d1,d2,…,dJ}をnを法とする位数Jの単純完全差集合であるとすると、D(x) = x^{d1} + x^{d2} + … + x^{dJ}を符号多項式として持つ、符号語数が最小の2元巡回符号をCDとする。このCDの双対符号を差集合巡回符号と称する。
【0014】
これまで、このような差集合巡回符号の復号方法と装置化について様々な検討が行われた。例えば、硬判定復号方式として、多数決復号、可変しきい値復号、Bit-Flipping復号等が検討された。また、軟判定復号方式として、APP(A Posterior Probability)軟判定復号、可変しきい値軟判定復号、BP(Belief Propagation)復号等が検討された。
【0015】
以下に、従来の復号方式の例を説明する。なお、差集合巡回符号は符号長N=7、情報長k=3の場合について説明する。この場合の完全単純差集合は{0,1,3},J=3ある。
【0016】
<多数決復号>
図1は多数決復号回路の主な構成例を示す図である。図1のAに示されるように、多数決復号を行う多数決復号回路10は、遅延素子11-1乃至遅延素子11-7、演算部12-1乃至演算部12-3、多数決判定部13、並びに、演算部14を有する。
【0017】
遅延素子11-1乃至遅延素子11-7は、それぞれ、信号を所定期間保持し、入力タイミングに対して出力タイミングを遅延させる。各遅延素子上のqi(i = 0~6)は、その遅延素子に保持される信号を示す。多数決復号は硬判定復号であるので、この信号qiは、1ビット信号である。つまり、遅延素子11-1乃至遅延素子11-7は、それぞれ1ビットの遅延素子である。遅延素子11-1乃至遅延素子11-7はループ状に接続されており、信号は、遅延素子11-1乃至遅延素子11-7を巡回的にシフトする(遅延素子11-1乃至遅延素子11-7に順に保持され、遅延素子11-7の次はまた遅延素子11-1に戻り保持される)。なお、遅延素子11-7より出力された信号は、演算部14にも供給される。
【0018】
演算部12-1乃至演算部12-3、並びに、演算部14は、図1のBに示されるように、複数入力の排他的論理和演算(EXOR)を行い、その演算結果を出力する。演算部12-1は、遅延素子11-2の出力(q1)、遅延素子11-3の出力(q2)、および遅延素子11-7の出力(q6)の排他的論理和を求め、その演算結果を多数決判定部13に供給する。演算部12-2は、遅延素子11-1の出力(q0)、遅延素子11-5の出力(q4)、および遅延素子11-7の出力(q6)の排他的論理和を求め、その演算結果を多数決判定部13に供給する。演算部12-3は、遅延素子11-4の出力(q3)、遅延素子11-6の出力(q5)、および遅延素子11-7の出力(q6)の排他的論理和を求め、その演算結果を多数決判定部13に供給する。演算部14は、遅延素子11-7の出力(q6)と多数決判定部13の出力(多数決結果)との排他的論理和を求め、その演算結果を多数決復号回路10の外部に出力する。
【0019】
多数決判定部13は、演算部12-1乃至演算部12-3の各演算結果の多数決をとり、その判定結果を演算部14に供給する。
【0020】
このような構成の多数決復号回路10は、初期化として、受信した硬判定情報(1ビット)を各遅延素子(遅延素子11-1乃至遅延素子11-7)にセットする。次に、復号処理として、演算部12-1乃至演算部12-3は、それぞれ、信号qiの排他的論理和演算を行い、多数決判定部13は、その3つの排他的論理和演算結果(EXOR結果)の多数決を取って、当該信号を訂正するか否かを決める。次に、多数決復号回路10は、巡回シフト処理として、遅延素子11-1乃至遅延素子11-7の値を巡回的にシフトさせる。多数決復号回路10は、このような復号処理と巡回シフト処理をN回繰り返す。
【0021】
信号に誤りが無ければ、演算部12-1乃至演算部12-3の出力が「0」となる。信号に誤りがあれば、演算部12-1乃至演算部12-3の出力が「1」となる。多数決判定部13は、演算部12-1乃至演算部12-3の出力を集計し、「1」が多い場合、信号値が誤りであると判定する。その場合、演算部14が信号の値を訂正する。
【0022】
<APP軟判定復号>
図2はAPP軟判定復号回路の主な構成例を示す図である。図2のAに示されるように、APP軟判定復号を行うAPP軟判定復号回路20は、遅延素子21-1乃至遅延素子21-7、演算部22-1乃至演算部22-3、演算部23、並びに、判定部24を有する。
【0023】
遅延素子21-1乃至遅延素子21-7は、それぞれ、信号を所定期間保持し、入力タイミングに対して出力タイミングを遅延させる。各遅延素子上のri(i = 0~6)は、その遅延素子に保持されるs(>1)ビット以上の軟判定LLR(Log likelihood ratio)を示す。つまり、遅延素子21-1乃至遅延素子21-7は、それぞれs(>1)ビットの遅延素子である。遅延素子21-1乃至遅延素子21-7はループ状に接続されており、軟判定LLRは、遅延素子21-1乃至遅延素子21-7を巡回的にシフトする(遅延素子21-1乃至遅延素子21-7に順に保持され、遅延素子21-7の次はまた遅延素子21-1に戻り保持される)。
【0024】
演算部22-1乃至演算部22-3は、それぞれ、図2のBの一番上に示されるような演算(LLR演算)を行い、その演算結果を出力する。演算部22-1は、遅延素子21-2の出力(r1)と遅延素子21-3の出力(r2)とを用いてLLR演算を行い、その演算結果を演算部23に供給する。演算部22-2は、遅延素子21-1の出力(r0)と遅延素子21-5の出力(r4)を用いてLLR演算を行い、その演算結果を演算部23に供給する。演算部22-3は、遅延素子21-4の出力(r3)と遅延素子21-6の出力(r5)とを用いてLLR演算を行い、その演算結果を演算部23に供給する。
【0025】
演算部23は、図2のBの上から2番目に示されるように、演算部22-1乃至演算部22-3のそれぞれの演算結果、並びに、遅延素子21-7の出力(r6)の総和を求める。演算部23は、その総和を判定部24に供給する。判定部24は、図2のBの一番下に示されるように、演算部23の演算結果(総和)に基づいて誤りを判定する。例えば、判定部24は、演算部23の演算結果(総和)が正の場合誤りがないと判定し、その演算結果が0以下の場合、誤りがあると判定する。判定部24は、そのような判定結果をAPP軟判定復号回路20の外部に出力する。
【0026】
このような構成のAPP軟判定復号回路20は、初期化として、受信した軟判定情報(sビット)を各遅延素子(遅延素子21-1乃至遅延素子21-7)にセットする。次に、復号処理として、演算部22-1乃至演算部22-3は、それぞれ、軟判定情報riを用いてLLR演算を行い、演算部23は、それらの演算結果と、遅延素子21-7の出力(r6)との総和を算出し、判定部24は、その総和に基づいて誤りがあるか否かを判定する。次に、APP軟判定復号回路20は、巡回シフト処理として、遅延素子21-1乃至遅延素子21-7の値を巡回的にシフトさせる。APP軟判定復号回路20は、このような復号処理と巡回シフト処理をN回繰り返す。
【0027】
なお、ループ構成として、遅延素子21-7の出力(r6)の代わりに、演算部23の出力(λ)を遅延素子21-1に供給するようにしてもよい。
【0028】
<BP復号>
図3はBP復号装置の主な構成例を示す図である。図3に示されるように、BP復号を行うBP復号回路30は、アドレス生成部(アドレス生成器)31、制御部(コントローラ)32、演算部(variable & check node演算器)33、およびRAM(Random Access Memory)34を有する。
【0029】
演算部33は、検査行列の全行に対するチェックノード(check node)演算と、全列に対するバリアブルノード(variable node)演算を複数回繰り返す。チェックノード演算を行う場合、演算部33は、受信情報riと中間情報vi,iについて、検査行列各行の非0要素(非ゼロ係数)の位置にあたる情報をRAM34より読み出し、読み出した情報を用いて演算を行う。また、バリアブルノード演算を行う場合、演算部33は、中間情報ui,iについて、検査行列各列の非0要素(非ゼロ係数)の位置にあたる情報をRAM34より読み出し、読み出した情報を用いて演算を行う。
【0030】
つまり、検査行列の非ゼロ係数の位置によって情報(受信情報や中間情報)の読み出し位置が変化するので、これらの情報の保持はRAM34が用いられる。アドレス生成部31は、このような検査行列の非ゼロ係数の位置に応じて、情報の読み出しアドレスの設定を行う。制御部32は、そのアドレス情報に基づいて、RAM34の読み出しの制御を行う。図3に示されるように、RAM34内部には、複数のメモリセル(Memory Cells)が設けられており、受信情報や中間情報が、各メモリセルに格納される。制御部32は、各メモリセルの情報の読み出しや書き込みを制御することにより、演算部33がどのメモリセルから情報を読み出すかを制御したり、演算部33がどのメモリセルに情報を書き込むかを制御したりする。
【0031】
このBP復号のアルゴリズムの例を図4のAに示す。演算部33は、検査行列の行毎に図4のAに示されるようなチェックノード演算を行い、検査行列の列毎に図4のAに示されるようなバリアブルノード演算を行う。検査行列は図4のBに示されるように値が0または1の要素(係数)により構成されており、演算部33は、この検査行列の非ゼロ係数(値が1の係数)の位置に対応する情報を用いてこれらの演算を行う。
【0032】
<BP復号の特徴>
このようなBP復号は、軟判定復号であり、LDPC(Low Density Parity Check)符号の復号にも使用される等、誤り訂正能力は高い。しかしながら、BP復号の場合、検査行列における非ゼロ係数の位置は列や行によって変化する為、復号に用いる情報もそれに応じて変化する。そのため、情報を保持する記憶素子に対するアクセスが複雑になる(アクセス先のバリエーションが増大する)。したがって、記憶素子への配線が増大し、配線混雑性が増して回路規模が増大するおそれがあった。例えば、図3のRead Dataに接続されたセレクタは規模が大きい。また、Write Dataはそれぞれの記憶素子に接続する必要があり配線が多く、接続先が多くなるほど出力元のデバイスのドライブ能力を高くする必要があるなど、配線の混雑性は回路規模に影響を与えるおそれがあった。
【0033】
なお、RAM34の同時アクセス可能なアドレス数はそのRAM34の仕様に依存するが、複数同時アクセスするためには配線増加などを伴うため回路規模が増大するおそれがあった。また、RAMを使用する為、アドレス生成部31等が必要になり、回路規模が増大するおそれがあった。
【0034】
なお、RAMの代わりにレジスタを用いて情報を保持する方法も考えられるが、その場合も、演算部33が情報を読み出すアドレスは可変となるので、アドレス生成部31が必要になり、回路規模が増大するおそれがあった。また、演算部33がチェックノード演算またはバリアブルノード演算のいずれを行う場合も、1回の演算に必要な情報が複数アドレスに分散して保持されていると、アクセスに複数サイクルが必要となり復号遅延が増大するおそれがあった。
【0035】
<2.第1の実施の形態>
<巡回シフト記憶素子の適用>
そこで、復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、その復号の検査行列の列方向のシフトに対応するように、その情報を記憶する領域を復号に関する演算に応じてシフトさせ、その記憶部の所定の領域より情報を読み出し、その記憶部より読み出された情報を用いて復号に関する演算を行い、その情報を更新し、その更新された情報を、検査行列の行方向のシフトに対応するように並べ替え、その記憶部の所定の領域に書き込むようにする。
【0036】
このように、演算の度に、検査行列を行列方向に巡回シフトさせることにより非ゼロ係数の位置が固定化されるので、記憶部の同じ領域から情報を読み出すようにすることができる。したがって、情報の読み出しや書き込みのための、記憶部に接続される配線数の増大等を抑制することができ、回路規模の増大を抑制することができる。
【0037】
<BP復号のアルゴリズム>
そのために、例えば、BP復号のアルゴリズムを図5のように等価変形する。つまり、1回の繰り返しの中で情報更新の順番を入れ替えるようにする。また、検査行列の列順に処理を行うようにする。さらに、各列において非0要素位置(非ゼロ係数の位置)だけチェックノード(check node)演算とバリアブルノード(variable node)演算とを行うようにする。
【0038】
より具体的には、図5に示されるように、検査行列の各列の非ゼロ係数の位置に対応する情報に対して、以下の式(1)のようなチェックノード演算と、以下の式(2)のようなバリアブルノード演算と、以下の式(3)のような情報算出が行われるようにする。
【0039】
・・・(1)
・・・(2)
・・・(3)
【0040】
また、以上の演算が各列について行われるようにする。さらに、その後、以下の式(4)のように情報の更新が行われるようにする。
【0041】
・・・(4)
【0042】
図6に検査行列の例を示す。図6に示されるように、図5に示されるアルゴリズムのloop for number of non-zero elements (0≦I<J)は、検査行列の行方向の巡回シフトに相当し、図5に示されるアルゴリズムのloop for number of columns (0≦j記<N)は、検査行列の列方向の巡回シフトに相当する。
【0043】
<BPの演算対象位置>
図7に示されるように、差集合巡回符号の性質から、検査行列の非0要素位置に中間情報(A、B、C)を配置して巡回シフトする事でノード(node)演算(チェックノード演算やバリアブルノード演算)に必要な情報を読み出す事ができる。しかしながら、0要素位置は情報を置かないので、巡回シフト用に無駄なバッファを置くか、巡回シフトするサイクルを制御する必要がある。そのため、この方法では回路規模が増大するおそれがある。
【0044】
そこで、図8の一番左に示される検査行列のように、演算対象とした列(点線で囲まれた列)に着目する。列方向の非0要素位置となる行(図8の左から2番目(中央)に示される行列の点線で囲まれた行)の情報を使ってノード(node)演算を行うので、図8の一番右に示される行列のように、行方向に非0要素位置の情報をバッファしておくだけで良い。演算対象とした列に対して、どの行が対応するかの規則性を利用すれば読み出し位置を限定する事ができる。
【0045】
例えば、一番上の段の行列の場合、一番右の列が対象となるので、非ゼロ係数が存在する上から1行目と2行目と4行目とが対象となる。したがって、図8の一番右に示されるように、バッファからは、上から1行目の一番右の「A」、上から2行目の一番右の「B」、上から3行目の一番右の「C」が読み出される。
【0046】
その次に、上から2段目のように、右から2番目の列が対象となる。したがって、非ゼロ係数が存在する上から1行目と3行目と7行目とが対象となる。つまり、図8の一番右に示されるように、バッファからは、上から1行目の右から2番目の「B」、上から3行目の一番右の「C」、上から7行目の一番右の「A」が読み出される。
【0047】
その次に、上から3段目のように、右から3番目の列が対象となる。したがって、非ゼロ係数が存在する上から2行目と6行目と7行目とが対象となる。つまり、図8の一番右に示されるように、バッファからは、上から2行目の右から2番目の「C」、上から6行目の一番右の「A」、上から7行目の右から2番目の「B」が読み出される。
【0048】
図9を参照してより具体的に説明する。図9の一番上の段に示されるように、BP復号のバリアブルノード演算の処理対象は、検査行列の一番右の列から開始され、その次に右から2番目の列、その次に右から3番目の列、・・・といった具合に右から順に1列ずつ指定される。チェックノード演算は、そのバリアブルノード演算の処理対象列の非ゼロ係数と同じ行の非ゼロ係数に対して行われる。
【0049】
したがって、図9の上から2番目の段(中央の段)に示されるように、ノード演算の度に、検査行列の各係数を列方向に巡回シフトする(図中矢印のように列順を入れ替える)と、バリアブルノード演算の処理対象が検査行列の一番右の列に固定化される。
【0050】
また、図9の一番下の段に示されるように、ノード演算の度に、検査行列の各係数を列方向だけでなく行方向にも巡回シフトする(図中矢印のように列順および行順をそれぞれ入れ替える)と、バリアブルノード演算の処理対象だけでなくチェックノード演算の処理対象の係数の位置も固定化される。つまり、バッファからノード演算に用いる情報を読み出す領域(アドレス)を固定化することができる。
【0051】
したがって、例えば図3のRead Dataに接続されたセレクタのような大規模なセレクタを省略することができる。また、Write Dataの配線数を低減させることができる。したがって、配線混雑性の増大を抑制することができる。また、例えば、アドレス生成部を省略することができる。これらのように、回路規模の増大を抑制することができる。RAMの代わりにレジスタを用いる場合も同様である。
【0052】
<BP復号装置>
図10は、本技術を適用した情報処理装置の一実施の形態であるBP復号装置の主な構成例を示すブロック図である。図10に示されるBP復号装置200は、例えばLDPC符号等の差集合巡回符号をBP復号する。図10に示されるように、BP復号装置200は、シフトバッファ211(Shift buffers)、演算部212(variable & check node演算器)、繰り返し制御部213(繰り返し制御回路)を有する。
【0053】
シフトバッファ211は受信情報rを記憶する巡回シフトバッファと中間情報zi,jを記憶する巡回シフトバッファを有する。巡回シフトバッファは、情報を記憶する領域(バッファ)を巡回的にシフトさせるバッファである。
【0054】
受信情報rを記憶する巡回シフトバッファは、例えば、ループ状に接続される複数のバッファセル(Buffer Cells)222により構成される。この巡回シフトバッファは、各バッファセル222に受信情報rを記憶することができる。また、この巡回シフトバッファは、各バッファセル222に記憶されている受信情報rを次のバッファセル222(図10の例の場合、右隣のバッファセル222)に移動させることができる。その際、図中右端のバッファセル222の出力は、図中左端のバッファセル222に供給される。つまり、この巡回シフトバッファは、このような構成のバッファセル222のループに沿って、受信情報rを巡回的にシフトさせる(受信情報rを記憶する領域を更新する)ことができる。例えば、この巡回シフトバッファは、ノード演算に対応して(例えばノード演算が行われる度に)、受信情報rを巡回的にシフトさせる。
【0055】
なお、図10においては、左端のバッファセルにのみ符号を付しているが、図中横方向に並ぶ全てのバッファセル(Buffer Cells)は、いずれもバッファセル222である。また、図中左端のバッファセル222の入力側には選択部221が設けられており、外部から供給された受信情報rまたは図中右端のバッファセル222から供給された受信情報rが、図中左端のバッファセル222に供給されるようになされている。
【0056】
中間情報zi,jを記憶する巡回シフトバッファは、例えば、ループ状に接続される複数のバッファセル(Buffer Cells)223により構成される。この巡回シフトバッファは、各バッファセル223に中間情報zi,jを記憶することができる。また、この巡回シフトバッファは、各バッファセル223に記憶されている中間情報zi,jを次のバッファセル223(図10の例の場合、右隣のバッファセル223)に移動させることができる。その際、図中右端のバッファセル223の出力は、図中左端のバッファセル223に供給される。つまり、この巡回シフトバッファは、このような構成のバッファセル223のループに沿って、中間情報zi,jを巡回的にシフトさせる(中間情報zi,jを記憶する領域を更新する)ことができる。例えば、この巡回シフトバッファは、ノード演算に対応して(例えばノード演算が行われる度に)、中間情報zi,jを巡回的にシフトさせる。
【0057】
なお、図10においては、左端のバッファセルにのみ符号を付しているが、図中横方向に並ぶ全てのバッファセル(Buffer Cells)は、いずれもバッファセル223である。また、中間情報zi,jを記憶する巡回シフトバッファが有するバッファセル223の数は、受信情報rを記憶する巡回シフトバッファのバッファセル222と同数である。
【0058】
さらに、中間情報zi,jを記憶する巡回シフトバッファの一部のバッファセル223の出力は、演算部212を介して次のバッファセル223に接続される。例えば、この巡回シフトバッファの所定の位置のバッファセル223の出力が演算部212に供給されるように配線されている。つまり、演算部212が、この巡回シフトバッファの所定の位置のバッファセル223から中間情報zi,jを読み出すようになされている。
【0059】
また、例えば、演算部212において得られる演算結果(更新された中間情報zi,j)は、更新前の中間情報zi,jを読み出した所定の位置のバッファセル223の次のバッファセル223(図10の例の場合、右隣のバッファセル223)に供給されるように配線されている。演算部212を経る接続位置は符号構成により一意に決まる。
【0060】
演算部212は、BP復号のチェックノード演算とバリアブルノード演算を実施すると共に復号結果を出力する。
【0061】
繰り返し制御部213は、受信情報入力時の初期化と繰り返し回数の制御を行う。初期化時には中間情報zi,jの巡回シフトバッファを0にセットし、繰り返し回数の偶奇によって読み出しと書き込みのバッファ制御を行う。
【0062】
図11は、シフトバッファ211および演算部212の主な構成例を示す図である。上述したように、シフトバッファ211は、選択部221と、複数のバッファセル222がループ状に接続された巡回シフトバッファと、複数のバッファセル223がループ状に接続された巡回シフトバッファとを有する。
【0063】
演算部212は、シフトバッファ211の所定のバッファセルより情報を読み出し、更新された情報を、シフトバッファ211の所定の領域に書き込む更新部としての構成と、BP復号に関するノード演算を行うノード演算部としての構成とを有する。
【0064】
演算部212は、その更新部の構成として、選択部231-1乃至選択部231-3、バッファ232-1乃至バッファ232-3、選択部233、バッファ234-1乃至バッファ234-3、および選択部235(図中点線241より上側に示される構成)を有する。また、演算部212は、ノード演算部の構成として、チェックノード演算部236-1乃至チェックノード演算部236-3(図中点線241と点線242との間に示される構成)と、バリアブルノード演算部237(図中点線242と点線243との間に示される構成)と、情報更新部238-1乃至情報更新部238-3(図中点線243より下側に示される構成)と、判定部239とを有する。
【0065】
なお、選択部231-1乃至選択部231-3を互いに区別して説明する必要が無い場合、選択部231と称する。また、バッファ232-1乃至バッファ232-3を互いに区別して説明する必要が無い場合、バッファ232と称する。また、バッファ234-1乃至バッファ234-3を互いに区別して説明する必要が無い場合、バッファ234と称する。また、チェックノード演算部236-1乃至チェックノード演算部236-3を互いに区別して説明する必要が無い場合、チェックノード演算部236と称する。また、情報更新部238-1乃至情報更新部238-3を互いに区別して説明する必要が無い場合、情報更新部238と称する。
【0066】
また、図11においては、選択部233は、図中一番右側のみ符号を付してあるが、この選択部233と図中水平方向に並ぶ選択部は全て選択部233と称する。同様に、選択部235も図中一番右側のみ符号を付してあるが、この選択部235と図中水平方向に並ぶ選択部は全て選択部235と称する。
【0067】
選択部231は、繰り返し制御部213から供給される制御信号「reciving data」の値に応じて、自身に対応するバッファ232の値と初期値(例えば「0」)との内のいずれか一方を選択し、選択した値を、中間情報zi,jの巡回シフトバッファの所定の位置のバッファセル223(情報が読み出されるバッファセル223の次のバッファセル223)に供給し、記憶させる。
【0068】
バッファ232は、中間情報zi,jの巡回シフトバッファ(のバッファセル223)に書き込む中間情報zi,jを記憶する。
【0069】
選択部233は、繰り返し制御部213から供給される制御信号「even/odd」の値に応じて、自身に対応するバッファ234の値と自身に対応する情報更新部238から供給される更新後の中間情報zi,jとの内のいずれか一方を選択し、選択した値を、自身に対応するバッファ232に供給する。
【0070】
バッファ234は、中間情報zi,jの巡回シフトバッファの所定の位置のバッファセル223の値を取得し、記憶する。また、バッファ234は、記憶している値を、自身に対応するバッファ232、自身に対応する選択部233、または、自身に対応する選択部235に供給する。
【0071】
選択部235は、繰り返し制御部213から供給される制御信号「even/odd」の値に応じて、自身に対応するバッファ234の複数の値のいずれかを選択し、選択した値を、自身に対応するチェックノード演算部236に供給する。
【0072】
チェックノード演算部236は、供給された中間情報zi,jを用いて、例えば以下の式(5)のようなチェックノード演算を行う。
【0073】
・・・(5)
【0074】
また、チェックノード演算部236は、算出した値をバリアブルノード演算部237と、自身に対応する情報更新部238に供給する。
【0075】
バリアブルノード演算部237は、供給されたチェックノード演算結果を用いて、例えば以下の式(6)のようなバリアブルノード演算を行う。
【0076】
・・・(6)
【0077】
また、バリアブルノード演算部237は、算出した値を各情報更新部238と判定部239に供給する。
【0078】
情報更新部238は、供給されたチェックノード演算結果とバリアブルノード演算結果とを用いて、例えば以下の式(7)のような情報更新の為の演算を行う。
【0079】
・・・(7)
【0080】
また、情報更新部238は、得られた演算結果(更新された中間情報zi,j)を、自身に対応する選択部233に供給する。
【0081】
判定部239は、供給されたバリアブルノード演算結果に基づいて誤り判定を行う。例えば、バリアブルノード演算結果が正の値の場合、誤りでないと判定し、バリアブルノード演算結果が0以下の場合、誤りであると判定する。判定部239は、その判定結果をBP復号部の外部に出力する。
【0082】
これらの構成は、BP復号に用いられる検査行列の構成(の非ゼロ係数の位置)に対応している。つまり、図11に示される構成は一例である。シフトバッファ211および演算部212の構成は、BP復号に用いられる検査行列の構成に対応していればよく、図11の例に限定されない。例えば、図11の構成例は、図12に示される検査行列に対応している。
【0083】
このような構成のBP復号装置200において、初期化時は受信信号rを、受信情報を記憶する巡回シフトバッファ(バッファセル222)に供給し、記憶させる。また、選択部231を制御して、中間情報zi,jを記憶する巡回シフトバッファ(バッファセル223)に値「0」を供給し、記憶させる。すなわち、中間情報zi,jを「0」にする。以上の処理をNサイクル繰り返すことにより、受信情報の記録と0初期化は完了する。
【0084】
BP復号では、チェックノード演算とバリアブルノード演算とにより中間情報を算出し、次の繰り返し時にその情報を使う。中間情報を保持する巡回シフトバッファは、繰り返しの偶数回と奇数回とで読み出し側と書き込み側を切り替えて使う。中間情報zi,jの列方向の巡回シフトは、Jx2個の情報を保持するN個のバッファセル223からなる巡回シフトバッファを用いる。例えば、図11の場合、中間情報を保持する巡回シフトバッファは、ループ状に接続された7個のバッファセル223により構成される。
【0085】
シフトバッファ211は、ノード演算に対応して(ノード演算の度に)、検査行列の列方向のシフトに対応するように、中間情報zi,jを巡回シフトさせる。これにより、図9を参照して上述した行列方向の巡回シフトの内、列方向の巡回シフトを実現することができる。
【0086】
また、演算部212の更新部は、バッファ232とバッファ234とを用いて、ノード演算により更新された中間情報zi,jを、検査行列の行方向のシフトに対応するように並べ替える。これにより、図9を参照して上述した行列方向の巡回シフトの内、行方向の巡回シフトを実現することができる。
【0087】
つまり、以上のような構成とすることにより、BP復号装置200は、差集合巡回符号の規則性を利用してデータの巡回シフトを繰り返すことによりBP復号を完了させることができる。したがって、1回の繰り返しに必要なサイクルがNサイクルであり、繰り返し回数をlmaxとするとN×lmaxサイクルで復号が完了する。
【0088】
なお、演算部212によるチェックノード演算、バリアブルノード演算、情報の更新、および復号結果を得る判定等の処理は、通常のBP復号と同様に行われる。なお、図11の例においては、パリティチェック回路が省略されているが、復号結果を他の情報と同様にシフトバッファに記録すれば実現する事は容易である。
【0089】
また、演算部212において、更新部およびノード演算部の構成は、検査行列の列重み(列方向の非0要素数)に依存した数を有する。例えば、列重みJの場合、演算部212は、J個の更新部およびノード演算部を有する。図11の例の場合、図12に示されるように検査行列の列方向の非0要素数が3であるため、バッファ232、バッファ234、チェックノード演算部236、および情報更新部238は、それぞれ、3ずつ設けられている。
【0090】
なお、規模削減のため回路のリソースシェアを行う場合にはJより少なくても良い。ただし、巡回シフトバッファのシフトタイミングは演算サイクルと同期させる必要がある。
【0091】
また、シフトバッファ211の巡回シフトバッファと演算部212の更新部との接続位置は、検査行列の列方向の非0要素位置に対応する。図11の例の場合、検査行列の一番右の列の非0要素位置が上から1番目と2番目と4番目であるため、図11中右から1番目(左から7番目)のバッファセル223と、右から2番目(左から6番目)のバッファセル223と、右から4番目(左から4番目)のバッファセルとから中間情報zi,jが読み出され、演算部212の更新部(バッファ234)に供給される。検査行列の列方向の非0要素位置が図12の例と異なる場合も、シフトバッファ211のその位置に応じた領域(バッファセル223)から中間情報zi,jが読み出されるようにすればよい。
【0092】
以上のように、中間情報を巡回シフトしてシフトバッファ211に書き戻す事により、シフトバッファ211からの中間情報の読み出し位置が毎回同じになる。なお、BP復号では自ノードを除いた情報を用いて演算を行うが、この巡回シフトにより中間情報を読み出した時の自ノードの位置が固定される。BP復号では算出した中間情報を次の繰り返しで使うため、書き込み側と読み出し側でバッファを切り替え(even/odd)て使う。
【0093】
<BP復号処理の流れ>
次に、以上のような構成のBP復号装置200が、BP復号を行う為に実行するBP復号処理の流れの例を、図13のフローチャートを参照して説明する。
【0094】
BP復号処理が開始されると、繰り返し制御部213は、ステップS101において、シフトバッファ211および演算部212を制御して初期化処理を行い、受信情報rを回路に入力し、中間情報を0にする。例えば、繰り返し制御部213は、受信情報rの入力を示す制御信号「receiving data」を有効にして受信情報rをシフトバッファ211に入力すると共に、中間情報zi,jとして値「0」をシフトバッファ211に入力する。符号長Nとすると、繰り返し制御部213は、この処理をNサイクルで完了する。また、繰り返し制御部213は、最大繰り返し回数を設定して、繰り返し回数カウンタのカウント値を「0」にする。
【0095】
ステップS102において、繰り返し制御部213は、シフトバッファ211を制御して、ノード演算1回分の巡回シフトを行わせる。また、ステップS103において、繰り返し制御部213は、演算部212を制御し、1回分のノード演算を行わせる。
【0096】
このような巡回シフトおよびノード演算の処理は、中間情報zi,jの1ビット目乃至Nビット目のそれぞれに対して行う必要がある。したがって、繰り返し制御部213は、ステップS104において、ステップS102およびステップS103の処理をN回繰り返したか否かを判定する。繰り返し回数がN回に達していないと判定された場合、処理はステップS102に戻る。つまり、ステップS102乃至ステップS104の処理がN回繰り返される。そして、巡回シフトおよびノード演算がN回行われたと判定された場合、処理は、ステップS105に進む。
【0097】
ステップS105において、繰り返し制御部213は、繰り返し回数カウンタをカウントアップする。
【0098】
繰り返し制御部213は、以上の処理を(lmax-1)回繰り返すように制御する。つまり、繰り返し制御部213は、ステップS106において、繰り返し回数が最大値(lmax-1)に達したか否かを判定する。繰り返し回数が最大値(lmax-1)に達していないと判定された場合、処理はステップS102に戻る。つまり、繰り返し回数が最大値(lmax-1)に達するまで、ステップS102乃至ステップS106の処理が繰り返される。
【0099】
そして、ステップS102乃至ステップS106の処理が(lmax-1)回繰り返されると、処理はステップS107に進む。
【0100】
ステップS107において、繰り返し制御部213は、ステップS102と同様に、シフトバッファ211を制御して巡回シフトを行わせ、さらに、ステップS103と同様に、演算部212を制御してノード演算を行わせる。
【0101】
ステップS108において、演算部212は、復号結果を後段に出力する。
【0102】
ステップS108の処理が終了すると、BP復号処理が終了する。
【0103】
以上のように、情報を記憶する記憶部を、符号の規則性を利用してシフトバッファで構成する事により、従来必要であったアドレス発生器やランダムアクセスに起因する配線混雑性、アドレスデコーダが不要となり、回路規模の増大を抑制することができる。
【0104】
例えばシングルポートのRAMを使う場合、同時にアクセスできるアドレスは1つしかない。この場合にノード演算を行うには、複数のアドレスから情報を読み出す必要があるため、複数サイクルの読み出しと書き込みによりノード演算の実行と更新を行う必要があった。しかしながら、上述のように符号の規則性を利用する事により、読み出し位置や書き込み位置を1通りに限定する(固定化する)ことができる。このようにすることにより、符号規則に従って、所定のバッファセルから直接ノード演算部へ情報を渡し、ノード演算結果を次のバッファセルに送ることができる。したがって1サイクルでノード演算の実行と更新を行う事ができる。つまり、これにより復号遅延を小さくする事ができる。
【0105】
<復号方式比較例>
図14に示されるグラフは、各復号方式における、受信情報の信号対雑音比に対するビットエラーレート(BER(Bit Error Rate))およびフレームエラーレート(FER(Frame Error Rate))を比較した例を示す。
【0106】
図14において、HDは、多数決硬判定復号を示し、VTHDは、可変閾値硬判定復号を示し、SDは、軟判定復号を示し、SDHDは、軟判定復号+多数決硬判定復号を示し、BPは、本技術を適用したBP復号(繰り返し回数50回)を示す。図14のグラフから明らかなように、本技術を適用したBP復号を用いることにより、他の方式よりも誤り訂正能力を向上させることができる。
【0107】
つまり、本技術を適用することにより、誤り訂正能力の低減を抑制しながら回路規模の増大を抑制することができる。これにより、BP復号装置200は、より容易に筐体を小型化することができる。また、製造コストや消費電力の増大を抑制することもできる。
【0108】
さらに、本技術を適用することにより、誤り訂正に関する処理を容易化することもできるので、処理時間の増大や消費電力の増大を抑制することもできる。処理時間の増大を抑制することにより、誤り訂正能力の低減を抑制しながら、より高ビットレートの受信情報を処理することができる。つまり、より情報量の多い受信情報に対してより高精度な誤り訂正を行うことができる。
【0109】
また、消費電力の増大を抑制することにより発熱量の増大を抑制することができる。したがって、筐体の小型化をさらに容易化することができる。また、経年劣化を抑制することもできるので、信頼性を向上させることができる。
【0110】
<3.第2の実施の形態>
<Shuffled BPアルゴリズム>
なお、本技術は、BP復号の派生アルゴリズムにも適用する事ができる。例えば、更新した情報を同じ繰り返し内に反映するシャッフルドBP復号(Shuffled BP)と呼ばれる復号方式にも本技術を適用することができる。
【0111】
このシャッフルドBP復号のアルゴリズムの例を図15に示す。この場合、情報算出は、以下の式(8)のように行われる。
【0112】
・・・(8)
【0113】
この場合、繰り返し回数の偶奇でバッファの切り替えを行わずに、常に情報を更新する。この場合のBP復号装置200のシフトバッファ211および演算部212の主な構成例を図16に示す。図16に示されるように、この場合、図11の例と比較して、選択部233および選択部235、すなわち、繰り返し回数even/oddによる選択部が省略されている。また、自ノードの中間情報を次の演算で使わないのでバッファに記録する必要がない。例として、第1の実施の形態のBP復号ではA,B,Cの3情報を示したが、この場合は2情報で良い。動作順序は、第1の実施の形態のBP復号の場合と同様に行えば良い。
【0114】
このように、シャッフルドBP復号(Shuffled BP)の場合も本技術を適用することにより、第1の実施の形態の場合と同様の効果を得ることができる。
【0115】
<4.第3の実施の形態>
<チェックノード演算の応用>
以上に説明したBP復号においては、図17に示されるアルゴリズムの例のように、チェックノード演算において、以下の式(9)のようなGallager関数が用いられる。
【0116】
・・・(9)
【0117】
このようなGallager関数はルックアップテーブル(Table Look Up)等を用いて実装される事が多く、高精度ではあるものの、その回路規模は大きく、演算サイクルも多い。そこで、処理の複雑なチェックノード演算を簡易化するようにしてもよい。
【0118】
例えば、図18のAに示されるように、以下の式(10)のようなMin-Sumアルゴリズムを用いてチェックノード演算を行うようにしてもよい。
【0119】
・・・(10)
【0120】
また、例えば、図18のBに示されるように、以下の式(11)のようなNormalized Min-Sumアルゴリズムを用いてチェックノード演算を行うようにしてもよい。
【0121】
α: Normalize Factor
・・・(11)
【0122】
また、例えば、図18のCに示されるように、以下の式(12)のようなOffset Min-Sumアルゴリズムを用いてチェックノード演算を行うようにしてもよい。
【0123】
β: Offset Factor
・・・(12)
【0124】
図17の例のBP復号アルゴリズムの場合、行重みJに応じたバッファを持つ必要があったが、これらのアルゴリズムを適用する場合、最小2値を保持することができれば良いので、バッファ量の増大を抑制することができる。
【0125】
勿論、これら以外のアルゴリズムを適用するようにしてもよい。
【0126】
なお、以上においては、巡回符号として差集合巡回符号を例に説明したが、本技術は任意の巡回符号に適用することができる。
【0127】
<5.第4の実施の形態>
<受信装置>
図19は、上述した実施形態を適用した受信装置の主な構成例を示すブロック図である。図19に示される受信装置700は、他の装置から伝送される無線信号を受信して、その無線信号に含まれる情報(情報はどのようなものであってもよい。例えば画像データ等。)を復元し、出力する装置である。図19に示されるように、この受信装置700は、例えば、アンテナ711、チューナ712、復調部713、誤り訂正部714、デコーダ715、および出力部716を有する。
【0128】
チューナ712は、アンテナ711を介して受信される無線信号から所望の周波数帯(チャンネル)の信号を抽出し、抽出した信号(受信信号)を復調部713に供給する。復調部713は、供給された受信信号を復調し、得られた復調信号を誤り訂正部714に供給する。
【0129】
誤り訂正部714は、供給されたLDPC(Low Density Parity Check)符号の復調信号に対してBP復号を行うことにより誤り訂正を行う。誤り訂正部714は、そのようにして得られた符号化ビットストリームをデコーダ715に供給する。
【0130】
デコーダ715は、供給された符号化ビットストリームを復号する。デコーダ715は、その復号により得られたデータ、すなわち、送信側から送信された情報を出力部716に供給する。出力部716は、供給されたデータを外部に出力する。例えば、出力部716は、そのデータに含まれる画像データに対応する画像をモニタ等に表示したり、そのデータに含まれる音声データに対応する音声をスピーカ等から出力したり、外部入力端子等を介してそのデータを他の装置に出力したり、そのデータを記憶媒体に記憶させたり、そのデータを有線通信や無線通信等により他の装置に送信したりする。
【0131】
このように構成された受信装置700において、誤り訂正部714が、上述した受信装置700の機能を有するようにしてもよい。例えば、誤り訂正部714が、BP復号装置200と同様の構成を有するようにし、図1乃至図18を参照して上述した各実施の形態と同様の手法によりBP復号を行うようにしてもよい。
【0132】
このように本技術を適用することにより、受信装置700は、回路規模の増大を抑制することができる。これにより、受信装置700は、より容易に筐体を小型化することができる。また、製造コストや消費電力の増大を抑制することもできる。
【0133】
さらに、本技術を適用することにより、誤り訂正に関する処理を容易化することもできるので、処理時間の増大や消費電力の増大を抑制することもできる。処理時間の増大を抑制することにより、誤り訂正能力の低減を抑制しながら、より高ビットレートの受信情報を処理することができる。つまり、より情報量の多い受信情報に対してより高精度な誤り訂正を行うことができる。
【0134】
また、消費電力の増大を抑制することにより発熱量の増大を抑制することができる。したがって、筐体の小型化をさらに容易化することができる。また、経年劣化を抑制することもできるので、信頼性を向上させることができる。
【0135】
<6.第5の実施の形態>
<テレビジョン受像機>
図20は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置800は、アンテナ801、受信部802、デマルチプレクサ803、デコーダ804、映像信号処理部805、表示部806、音声信号処理部807、スピーカ808、外部インタフェース(I/F)部809、制御部810、ユーザインタフェース(I/F)部811、及びバス812を備える。
【0136】
受信部802は、アンテナ801を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調したり、誤り訂正を行ったりする。そして、受信部802は、そのようにして得られた符号化ビットストリームをデマルチプレクサ803へ出力する。即ち、受信部802は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置800における伝送部としての役割を有する。
【0137】
デマルチプレクサ803は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ804へ出力する。また、デマルチプレクサ803は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部810に供給する。なお、デマルチプレクサ803は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
【0138】
デコーダ804は、デマルチプレクサ803から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ804は、復号処理により生成される映像データを映像信号処理部805へ出力する。また、デコーダ804は、復号処理により生成される音声データを音声信号処理部807へ出力する。
【0139】
映像信号処理部805は、デコーダ804から入力される映像データを再生し、表示部806に映像を表示させる。また、映像信号処理部805は、ネットワークを介して供給されるアプリケーション画面を表示部806に表示させてもよい。また、映像信号処理部805は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部805は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
【0140】
表示部806は、映像信号処理部805から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
【0141】
音声信号処理部807は、デコーダ804から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ808から音声を出力させる。また、音声信号処理部807は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
【0142】
外部インタフェース部809は、テレビジョン装置800と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部809を介して受信される映像ストリーム又は音声ストリームが、デコーダ804により復号されてもよい。即ち、外部インタフェース部809もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置800における伝送部としての役割を有する。
【0143】
制御部810は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置800の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部811から入力される操作信号に応じて、テレビジョン装置800の動作を制御する。
【0144】
ユーザインタフェース部811は、制御部810と接続される。ユーザインタフェース部811は、例えば、ユーザがテレビジョン装置800を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部811は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部810へ出力する。
【0145】
バス812は、受信部802、デマルチプレクサ803、デコーダ804、映像信号処理部805、音声信号処理部807、外部インタフェース部809、及び制御部810を相互に接続する。
【0146】
このように構成されたテレビジョン装置800において、受信部802が、上述した受信装置700の機能を有するようにしてもよい。例えば、受信部802が、チューナ712乃至誤り訂正部714の構成を有するようにし、その誤り訂正部714において行われる制御信号の誤り訂正に関する処理として、図1乃至図18を参照して上述した各実施の形態と同様の手法によりBP復号を行うようにしてもよい。
【0147】
このように本技術を適用することにより、テレビジョン装置800は、回路規模の増大を抑制することができる。これにより、テレビジョン装置800は、より容易に筐体を小型化することができる。また、製造コストや消費電力の増大を抑制することもできる。
【0148】
さらに、本技術を適用することにより、誤り訂正に関する処理を容易化することもできるので、処理時間の増大や消費電力の増大を抑制することもできる。処理時間の増大を抑制することにより、誤り訂正能力の低減を抑制しながら、より高ビットレートの制御情報を処理することができる。つまり、より情報量の多い(より高機能な)制御情報に対してより高精度な誤り訂正を行うことができる。
【0149】
また、消費電力の増大を抑制することにより発熱量の増大を抑制することができる。したがって、筐体の小型化をさらに容易化することができる。また、経年劣化を抑制することもできるので、信頼性を向上させることができる。
【0150】
<7.その他>
<ソフトウエア>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。また、例えば、上述した一連の処理の一部をソフトウエアにより実行させ、他の処理をハードウエアにより実行させることもできる。一連の処理(の一部または全部)をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
【0151】
図21は、上述した一連の処理(の一部または全部)をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0152】
図21に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
【0153】
バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
【0154】
入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
【0155】
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0156】
コンピュータ900が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
【0157】
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
【0158】
その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
【0159】
<補足>
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0160】
例えば、本技術は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
【0161】
また例えば、上述した各処理部は、その処理部について説明した機能を有するようにすれば、どのような構成により実現するようにしてもよい。例えば、任意の処理部が、任意の回路、LSI(Large Scale Integration)、システムLSI、プロセッサ、モジュール、ユニット、セット、デバイス、装置、またはシステム等により構成されるようにしてもよい。また、それらを複数組み合わせるようにしてもよい。例えば、複数の回路、複数のプロセッサ等のように同じ種類の構成を組み合わせるようにしてもよいし、回路とLSI等のように異なる種類の構成を組み合わせるようにしてもよい。
【0162】
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0163】
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0164】
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0165】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0166】
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0167】
コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0168】
本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0169】
なお、本技術は以下のような構成も取ることができる。
(1) 復号に用いる複数の情報を互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせる記憶部と、
前記記憶部の所定の領域より前記情報を読み出し、前記復号に関する演算により更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む更新部と、
前記更新部により前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新する演算部と
を備える情報処理装置。
(2) 前記記憶部は、前記情報を記憶する領域を巡回的にシフトする
(1)に記載の情報処理装置。
(3) 前記記憶部は、ループ状に接続される、それぞれが前記情報を記憶する複数のバッファセルを有し、前記情報を次のバッファセルに移動させることにより、前記情報を記憶する領域を巡回的にシフトする
(2)に記載の情報処理装置。
(4) 前記情報は、外部から入力された受信情報と、前記復号に関する演算により得られる中間情報であり、
前記記憶部は、前記受信情報を巡回的にシフトさせるバッファセルのループと、前記中間情報を巡回的にシフトさせるバッファセルのループを有する
(1)乃至(3)のいずれかに記載の情報処理装置。
(5) 前記更新部は、前記記憶部の、前記検査行列の列方向の非ゼロ係数の位置に対応する領域より前記情報を読み出す
(1)乃至(4)のいずれかに記載の情報処理装置。
(6) 前記更新部は、更新され並べ替えた前記情報を、前記記憶部の、前記情報を読み出した領域の次の領域に書き込む
(1)乃至(5)のいずれかに記載の情報処理装置。
(7) 前記演算部は、
前記記憶部より読み出された前記情報を用いてチェックノード演算を行うチェックノード演算部と、
前記チェックノード演算部により得られるチェックノード演算結果を用いてバリアブルノード演算を行うバリアブルノード演算部と、
前記バリアブルノード演算部により得られるバリアブルノード演算結果を更新する情報更新部と
を備える(1)乃至(6)のいずれかに記載の情報処理装置。
(8) 前記演算部は、さらに、前記バリアブルノード演算結果に基づいて誤りの発生を判定する判定部をさらに備える
(7)に記載の情報処理装置。
(9) 前記チェックノード演算部は、Gallager関数を用いて前記チェックノード演算を行う
(7)または(8)に記載の情報処理装置。
(10) 前記チェックノード演算部は、Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
(7)または(8)に記載の情報処理装置。
(11) 前記チェックノード演算部は、Normalized Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
(7)または(8)に記載の情報処理装置。
(12) 前記チェックノード演算部は、Offset Min-Sumアルゴリズムを用いて前記チェックノード演算を行う
(7)または(8)に記載の情報処理装置。
(13) 前記演算部は、BP(Belief Propagation)復号に関する演算を行う
(1)乃至(12)のいずれかに記載の情報処理装置。
(14) 前記演算部は、Shuffled BP(Belief Propagation)復号に関する演算を行う
(1)乃至(12)のいずれかに記載の情報処理装置。
(15) 復号に用いる複数の情報を記憶部の互いに異なる領域に記憶し、前記復号の検査行列の列方向のシフトに対応するように、前記情報を記憶する領域を前記復号に関する演算に応じてシフトさせ、
前記記憶部の所定の領域より前記情報を読み出し、
前記記憶部より読み出された前記情報を用いて前記復号に関する演算を行い、前記情報を更新し、
更新された前記情報を、前記検査行列の行方向のシフトに対応するように並べ替え、前記記憶部の所定の領域に書き込む
情報処理方法。
【符号の説明】
【0170】
200 BP復号装置, 211 シフトバッファ, 212 演算部, 213 繰り返し制御部, 221 選択部, 222および223 バッファセル, 231 選択部, 232 バッファ, 233 選択部, 234 バッファ, 235 選択部, 236 チェックノード演算部, 237 バリアブルノード演算部, 238 情報更新部, 239 判定部, 700 受信装置, 711 アンテナ, 712 チューナ, 713 復調部, 714 誤り訂正部, 715 デコーダ, 716 出力部, 800 テレビジョン装置, 802 受信部, 900 コンピュータ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21