(57)【要約】  装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供する。誤り訂正符号復号装置は、インターリーバのサイズに応じて要素符号１および２を同時復号するか否かを選択する同時復号選択部と、同時復号選択部の選択結果に応じた位置に受信情報を格納する受信情報格納部と、要素符号１および２にそれぞれ対応する外部情報を、同時復号選択部の選択結果に応じた位置に格納する外部情報格納部と、要素符号１および２が分割された各ブロックに対して軟入力軟出力復号を並列に実行する複数の軟入力軟出力復号器を有し、同時復号が選択されなかった場合は、要素符号１の復号および要素符号２の復号を順次実行して繰り返し、同時復号が選択された場合は、要素符号１および２を同時に復号して繰り返す軟入力軟出力復号部と、を備える。
2011111654.tif 000002
【特許請求の範囲】
【請求項１】
情報の畳込み符号である第１の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第２の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、
前記インターリーバのサイズに応じて前記第１および第２の要素符号を同時復号するか否かを選択する同時復号選択手段と、
前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、
前記第１および第２の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、
前記第１および第２の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第１の要素符号の復号および前記第２の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第１および第２の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、
を備えた誤り訂正符号復号装置。
【請求項２】
前記同時復号選択手段は、前記インターリーバのサイズが、前記複数の軟入力軟出力復号器の個数の倍数ではない場合に前記第１および第２の要素符号の同時復号を選択することを特徴とする請求項１に記載の誤り訂正符号復号装置。
【請求項３】
前記同時復号選択手段は、前記インターリーバのサイズが予め定められた値よりも小さい場合に前記第１および第２の要素符号の同時復号を選択することを特徴とする請求項１に記載の誤り訂正符号復号装置。
【請求項４】
前記同時復号選択手段は、前記インターリーバのサイズがあらかじめ定められた値である場合に前記第１および第２の要素符号の同時復号を選択することを特徴とする請求項１に記載の誤り訂正符号復号装置。
【請求項５】
前記同時復号選択手段によって前記同時復号が選択された場合に、
前記受信情報格納手段は、前記受信情報のうち前記情報に対応する情報受信値を二重に格納し、
前記外部情報格納手段は、前記第１の要素符号の復号結果である外部情報を、前記第２の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納し、前記第２の要素符号の復号結果である外部情報を、前記第１の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納することを特徴とする請求項１から請求項４のいずれかに記載の誤り訂正符号復号装置。
【請求項６】
前記情報受信値および前記外部情報を、前記同時復号選択手段の選択結果に応じたサイズで置換して、前記受信情報格納手段および前記外部情報格納手段と前記軟入力軟出力復号手段との間で入出力する置換手段をさらに備えたことを特徴とする請求項１から請求項５のいずれかに記載の誤り訂正符号復号装置。
【請求項７】
前記同時復号選択手段によって前記同時復号が選択された場合に、前記第１および第２のいずれかの要素符号の軟出力に基づいて硬判定を行う硬判定手段をさらに備えたことを特徴とする請求項１から請求項６のいずれかに記載の誤り訂正符号復号装置。
【請求項８】
前記軟入力軟出力復号手段は、前記第１および第２の要素符号の軟入力軟出力復号をウィンドウを用いて局所的に実行し、
前記同時復号選択手段によって前記同時復号が選択された場合には、前記ウィンドウのサイズを変更することを特徴とする請求項１から請求項７のいずれかに記載の誤り訂正符号復号装置。
【請求項９】
前記軟入力軟出力復号手段は、さらに符号化率に基づいて前記ウィンドウのサイズを決定することを特徴とする請求項１から請求項８のいずれかに記載の誤り訂正符号復号装置。
【請求項１０】
情報の畳込み符号である第１の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第２の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、
前記インターリーバのサイズに応じて前記第１および第２の要素符号を同時復号するか否かを選択し、
前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、
前記第１および第２の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、
前記第１および第２の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第１の要素符号の復号および前記第２の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第１および第２の要素符号を同時に復号して繰り返す、誤り訂正符号復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正符号の復号装置に関し、特に、ターボ符号に代表される並列連接符号を復号する誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラムに関する。
【背景技術】
【０００２】
誤り訂正符号化技術は、データの符号化・復号という操作を通じてデータ伝送時の通信路上で発生したビット反転等のエラーからデータを保護する技術である。このような誤り訂正符号化技術は、無線通信やデジタル記憶媒体を始めとする各分野で現在広く利用されている。符号化は、送信する情報を、冗長ビットを付加した符号語に変換する処理である。復号は、その冗長性を利用してエラーが混入した符号語（受信語）から元の符号語（情報）を推定する処理である。【０００３】
Berrouらによって提案されたターボ符号は、その訂正能力の高さからモバイル用途の実用化が進んできた。ターボ符号に関しては非特許文献１に述べられている。【０００４】
図１にターボ符号器１００およびターボ符号復号器１１０の構成を示す。【０００５】
図１（ａ）におけるターボ符号器１００は、インターリーバ１０３を介してフィードバックを持つ組織的な畳込み符号化器１０１、１０２が２個並列に連接されて構成される。この畳込み符号はターボ符号の要素符号と呼ばれ、メモリ数４以下の符号が通常使用され、図１はメモリ数２の場合の例を示している。以下、符号化器１０１を要素符号１、符号化器１０２を要素符号２と呼び、それぞれで生成されるパリティ系列をパリティ１、パリティ２と呼ぶことにする。インターリーバ１０３は、ビットの並び替え処理を行う。インターリーバ１０３の大きさと設計によって符号性能が大きく左右される。【０００６】
図１（ｂ）におけるターボ符号復号器１１０の構成について説明する。軟入力軟出力（Soft-In Soft-Output, 以下、SISOともいう）復号器１１１は、各要素符号に対応する復号処理を行う。メモリ１１２、１１３、１１４は、それぞれ情報系列、パリティ１、パリティ２に対応する受信値を保持する。メモリ１１５は、要素符号のSISO復号で得られる軟出力値（外部情報）を保持する。デインターリーバ１１６は、インターリーバ１０３による並び替えを戻す処理を行う。ターボ符号の復号法の特徴は、要素符号のSISO復号で得られる軟出力値（外部情報）を他方の要素符号の軟入力値（事前情報）として利用し、これを繰り返すことにある。以下、ターボ符号の要素符号は２値の畳込み符号であるとして説明を行う。【０００７】
最適な軟出力復号は、符号語の制約条件において受信系列に基づき各情報ビットの事後確率を計算して０、１を判定する復号である。このためには次の式（１）を計算すれば十分となる。【０００８】
L(t) =  log(P(u(t)=0|Y)/P(u(t)=1|Y))  …  （１）
ここで、u(t)は時点tの情報ビット、Yは符号語に対する受信値の系列、P(u(t)=b|Y)（b=0,1）は受信系列Yの下でu(t)=bとなる条件付確率である。一般の誤り訂正符号でL(t)を求めることは計算量の点で非常に困難であるが、ターボ符号の要素符号のようにメモリ数が小さい畳込み符号の場合には符号語全体を状態数の小さい符号トレリスで表すことが可能であり、これを利用して効率よくSISO復号を実行することができる。このアルゴリズムはBCJRアルゴリズムもしくはMAPアルゴリズムと呼ばれていて非特許文献２に記述されている。【０００９】
ターボ符号で使用するSISO復号にはこのMAPアルゴリズムを適用することができる。ターボ符号の復号の繰り返しの過程で交換される軟出力値は式（１）の値L(t)そのものではなく、L(t)から算出される、次の式（２）で表される外部情報と呼ばれる値Le(t)である。【００１０】
Le(t) = L(t)−C ・ x(t) − La(t).  …  （２）
ここでx(t)は情報ビットu(t)に対する受信値、La(t)はu(t)の事前情報として用いた他方の要素符号の軟出力復号で得られた外部情報、Cは通信路のSN比（signal-to-noise ratio）で決まる係数である。【００１１】
MAPアルゴリズムについて詳しく述べる。畳込み符号では、符号器におけるメモリの値に応じて入力情報に対する符号語が変化する。この符号器内部におけるメモリの値を符号器の"状態"と呼ぶ。畳込み符号による符号化は情報系列に応じて状態を変化させながら出力を行う。符号トレリスは、この状態の遷移の組み合わせをグラフで表現したものである。この符号トレリスでは、各時点における符号器の状態がノードとして表され、各ノードから遷移が存在する状態のノードのペアにエッジがアサインされる。エッジにはその遷移で出力される符号語のラベルが割り当てられる。エッジの連結をパスと呼び、パスのラベルは畳込み符号の符号語系列に対応する。【００１２】
図１に示した要素符号の畳込み符号器（メモリ数2）の構成を図２（ａ）に示す。図２（ｂ）は、図２（ａ）に示した符号器に対応する符号トレリスである。初期状態はメモリを全て0とする。符号器の状態はメモリの値である。図２の畳込み符号では最初の情報ビットが0であれば符号語"00"を出力して時点１で状態"00"となる。一方、情報ビットが1であれば符号語"11"を出力して時点１の状態は"10"となる。時点２では時点１の状態"00","11"それぞれに対して情報ビット0、1に応じた符号語の出力と時点２への状態遷移が行われる。符号器の状態は"00"を0と表し、"11"を3と表す等、メモリ数分のビット数の整数として表現することもできる。【００１３】
符号トレリスを利用した復号アルゴリズムとしてよく知られているビタビアルゴリズムと同様に、MAPアルゴリズムは符号トレリスのパスと受信値の系列の相関（パスメトリック）を順次計算する処理を基本とする。MAPアルゴリズムは大きく分けて次の３種類の処理から成る：
（ａ）フォワード処理：符号トレリスの先頭から各ノードへ到達するパスメトリックを算出する。
（ｂ）バックワード処理：符号トレリスの終端から各ノードへ到達するパスメトリックを算出する。
（ｃ）軟出力生成処理：（ａ）、（ｂ）の結果を用いて各時点での情報シンボルの軟出力（事後確率比）を算出する。【００１４】
ここで、フォワード処理におけるパスメトリックは受信系列と事前情報の下、符号トレリスの先頭から各ノードへ到達する確率（の対数値）を相対的に表す。バックワード処理におけるパスメトリックは符号トレリスの末尾から各ノードへ到達する確率（の対数値）を相対的に表す。畳込み符号の状態の集合をSとして時点t、状態s（∈Ｓ）のノードにおけるフォワード処理およびバックワード処理で算出されるパスメトリックをそれぞれα(t, s)およびβ(t,s)とおく。また、γ(t, s, s')で時点tで状態sから状態s'へ遷移する際の情報ビットおよび符号語と受信値および事前情報（ターボ符号の場合は他方の要素符号の軟出力）で決定される尤度であるブランチメトリックを表すとする。加法的白色ガウス通信路において、γ(t, s, s')は、状態sから状態s'への遷移で出力される符号語の変調値と受信値の間のユークリッド距離および情報ビットに対する事前情報を用いて容易に計算することができる。このとき、フォワード処理およびバックワード処理は次のように１時点前もしくは１時点後の値を用いて実行される（パスメトリック、軟出力は対数領域で表す）：
（ａ）フォワード処理:
α(t, s) = log(Σ_{s'∈S:τ(s', b)=s, b=0,1} exp(α(t-1, s')+γ(t-1, s', s)))  …  （３）
（ｂ）バックワード処理:
β(t, s) = log(Σ_{s'∈S:τ(s , b)=s', b=0,1} exp(β(t+1, s')+γ(t, s, s')))  …  （４）
（ｃ）軟出力生成処理
L(t) = log(Σ_{s, s'∈S: τ(s , 0)=s'} exp(α(t, s) + γ(t, s, s') + β(t+1, s'))) − log(Σ_{s, s'∈S:τ(s , 1) = s'} exp(α(t, s) + γ(t, s, s') + β(t+1, s')))  …  （５）
ここで、τ(s', b) = sは、状態s'から情報ビットbで状態sへ遷移することを表し、Σ_{s'∈S:τ(s', b)=s, b=0,1}は次の時点で状態s'となるすべての状態sに関して和をとることを表す。またΣ_{s, s'∈S: τ(s, b)=s'}は状態sから状態s'への状態遷移における情報ビットがbとなる状態のペア{s, s'}に関して和をとることを表す。【００１５】
Max-Log-MAPアルゴリズムは式（３）、式（４）および式（５）の処理において、和を最大値によって変更することにより行われ、expとlogへの変換が不要となるためにビタビアルゴリズムにおけるACS（Add-Compare-Select）処理と同一の処理で実現可能となり、大幅な簡易化が可能となる。【００１６】
式（５）の軟出力生成のためには時点t毎にフォワード処理のαとバックワード処理のβが揃う必要があり、また、各時点のαとβの生成をどのような順序で行うかのスケジューリングを考えることが必要となる。単純な方法として図３（ａ）のように、符号トレリスの終端からバックワード処理を行って各時点のβを生成しておき、次にトレリスの先頭からフォワード処理および軟出力生成処理を行うスケジュールが考えられる。このスケジュールではトレリス長、つまり情報長分の遅延が発生するため、高速化には限界がある。また、βを情報長分保持する必要もあるため、メモリの使用量も大きい。【００１７】
そこで、畳込み符号のMAPアルゴリズムが符号トレリス上においてある程度局所的に実行できる性質を利用して、図３（ｂ）のように符号トレリスをウィンドウ（大きさW時点）に分割してウィンドウ毎にフォワード処理、バックワード処理および軟出力生成処理を行うスケジューリングが考えられる。図３（ｂ）において３０１はバックワード処理のトレーニング処理のタイミングを表しており、式（４）に従ってW時点分βを更新する。初期値はすべての状態に対してβを同じ値に設定する、もしくはターボ符号復号では反復復号における前回の処理で計算した値を用いる方法がある。３０２はフォワード処理のタイミングを表しており、式（３）のパスメトリックαはその時点の軟出力生成処理が終了するまで保持する。３０３は、３０１で計算したウィンドウ境界におけるパスメトリックを初期値としてバックワード処理を行うと同時に３０２のαを利用して軟出力生成を行うタイミングを表している。図３においてフォワード処理とバックワード処理を入れ替えて行うスケジューリングも考えられる。【００１８】
上述のウィンドウを用いたSISO復号は局所的な処理が可能であるため、局所的なSISO復号器を複数個用意してこれを並列に実行させることで高速化を図ることが自然に考えられる。図４は、符号トレリスを４個のブロックに分割して４個のSISO復号器（SISO0〜SISO3）を用いて復号処理する場合の模式図である。符号トレリス終結処理に対応するバックワード処理は予め計算しておけばよいので、符号トレリスの終結を行っていても、分割は終結部分を除いて考えればよい。このとき符号トレリスの時点数は情報長（= インターリーバ長）Kと一致する。また、符号トレリスがM分割されM個のSISO復号器が復号処理に使用される場合、復号器１個あたりの処理時点数（=ブロックの大きさ）はB = K/M時点となる。図３のウィンドウ処理ではバックワード処理のトレーニングで２Ｗ時点分の遅延が発生するが、ブロックがウィンドウに比して十分大きければ、M個のSISO復号器を用いた復号処理においてM倍に近い高速化が達成できる。【００１９】
複数のSISO復号器による並列化を考えた場合、情報受信値メモリ、外部情報メモリ、パリティ受信値メモリも分割して構成すること、および複数のSISO復号器からの同一メモリへの同時アクセスが発生しないようにすることが、望ましい。図５のように複数のSISO復号器によるメモリアクセスの競合（メモリコンテンション）が発生する場合にはメモリの細分化やポートの増設などによって競合を回避し高速性を保つか、バッファを用意して遅延を許容して処理するといった処理が必要になる。前者は大幅な装置規模の増大を、後者は復号器のスループットの大きな低下を招く。パリティ受信値に関しては、要素符号１および要素符号２でそれぞれ分割したブロックに対応するようにブロック数分に分割して保持すればメモリアクセスの競合は発生せず、同一アドレスでアクセスできる。このため、パリティ受信値メモリは、１個のメモリとしても実現可能となる。しかし、情報受信値と外部情報については要素符号１と要素符号２の復号時に同一のメモリにアクセスすることになる。つまり、要素符号１に対応したブロックに応じてメモリが用意されるとしても、要素符号２の復号時のアクセスは、インターリーブしたアドレスを使用することになるため、単にランダムなインターリーバではメモリアクセスの競合が通常発生する。MAPアルゴリズムの１サイクルで符号トレリスのn時点分の処理を行う並列化であるradix-2^nアルゴリズムを考える場合にも同様に外部情報などのメモリをn個に分割してもメモリアクセスの競合の発生可能性がある。【００２０】
この問題に対してメモリアクセスの競合が起こらないようにインターリーバを設計する方法が知られている。Radix-2^nのMAPアルゴリズムを実行するM個のSISO復号器を使用することを考える。3GPP LTE（3rd Generation Partnership Project Long Term Evolution）で採用されたインターリーバは、インターリーバサイズKがM・nの倍数の場合には、M個のradix-2^n SISO復号器による並列復号時にメモリアクセス競合が発生しないことを保証する。なぜならインターリーバサイズKがM・nの倍数の場合、インターリーバは、情報受信値や外部情報をM・n個のブロックに対応したメモリに分割して保持するからである。3GPP LTEのインターリーバについては、例えば非特許文献３に記載されている。【００２１】
モバイル用途では情報長が小さい場合も多く、ターボ符号のインターリーバサイズKも細かく対応可能にすることで通信効率を向上させる方式が採られている。非特許文献３の3GPP LTEのターボ符号は、K=40から6144の中の188個に応じたインターリーバを設定している。Kが小さいほど、より細かいステップでインターリーバが設定されている。たとえば、K=40から512までは8のステップ、K=512から1024までは16のステップ、K=1024から2048までは32のステップ、K=2048以上は64のステップの各サイズに対して、インターリーバが設定されている。このときすべてのインターリーバサイズに対応するためには並列度はM・n = 8が限度となる。【００２２】
また、ターボ符号復号の並列化の手法として２個の要素符号を同時に復号する方法も知られている。これに関しては特許文献１に述べられている。【００２３】
図６に、特許文献１に記載の復号装置の構成を示す。図６において、要素符号１および要素符号２の符号トレリスはそれぞれ４個のブロックに分割され、これらのブロックに対してSISO復号器（SISO0〜SISO7）は同時に復号処理を実行する。置換処理部６０１および置換処理部６０２は、インターリーバに対応して、メモリおよびSISO復号器の間で外部情報のアサインを実現する置換処理およびその逆変換処理をそれぞれ実行する。置換処理部６０１は、要素符号２の復号において、情報受信値（図示せず）も同一に置換処理を行ってSISO復号器へ入力をアサインする。この特許文献１に記載の復号装置は、他方の要素符号で生成された外部情報を直ちに事前情報として利用してSISO復号を行うことが特徴である。したがって、ブロック長B=K/MがWに比して大きければ、繰り返し復号の収束速度も高めることができる。しかし、この並列化手法では図６のように外部情報や情報受信値を要素符号に応じて異なるメモリに持つ必要があるため、これらのメモリサイズは図１の方式と比べて２倍となる。
【先行技術文献】
【非特許文献】
【００２４】
【非特許文献１】C. Berrou et.al, "Near Shannon limit error-correcting coding and decoding: Turbo codes", Proc. IEEE International Conference of Communications (ICC), pp.1064-1070, 1993.
【非特許文献２】L.R.Bhal et.al, "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Transaction on Information Theory, pp.284-287, 1974.
【非特許文献３】3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding  (Release 8)、2009年
【特許文献】
【００２５】
【特許文献１】特開２００７−００６５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２６】
しかしながら、非特許文献３に記載された3GPP LTEの復号装置では、並列度に限度があるため、モバイル用途で用いられるターボ符号の多様なインターリーバサイズに対して効率よく復号処理を行っていないという課題があった。【００２７】
また、特許文献１に記載された復号装置では、効率よく復号処理を行うためにメモリサイズの増加を必要とし装置規模が増大するという課題があった。【００２８】
本発明は、上述の課題を解決するためになされたもので、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することを目的とする。
【課題を解決するための手段】
【００２９】
本発明の誤り訂正符号復号装置は、情報の畳込み符号である第１の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第２の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、前記インターリーバのサイズに応じて前記第１および第２の要素符号を同時復号するか否かを選択する同時復号選択手段と、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、前記第１および第２の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、前記第１および第２の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第１の要素符号の復号および前記第２の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第１および第２の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、を備える。【００３０】
また、本発明の誤り訂正符号復号方法は、情報の畳込み符号である第１の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第２の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、前記インターリーバのサイズに応じて前記第１および第２の要素符号を同時復号するか否かを選択し、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、前記第１および第２の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、前記第１および第２の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第１の要素符号の復号および前記第２の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第１および第２の要素符号を同時に復号して繰り返す。【００３１】
また、本発明の誤り訂正符号復号プログラムは、情報の畳込み符号である第１の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第２の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置に、前記インターリーバのサイズに応じて前記第１および第２の要素符号を同時復号するか否かを選択する同時復号選択ステップと、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納する受信情報格納ステップと、前記第１および第２の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納する外部情報格納ステップと、前記第１および第２の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第１の要素符号の復号および前記第２の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第１および第２の要素符号を同時に復号して繰り返す軟入力軟出力復号ステップと、を実行させる。
【発明の効果】
【００３２】
本発明は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することができる。
【図面の簡単な説明】
【００３３】
【図１】（ａ）は、関連技術のターボ符号器の構成図、（ｂ）は、関連技術のターボ符号復号器の構成図である。
【図２】（ａ）は、関連技術のターボ符号復号器における畳込み符号化器の構成図、（ｂ）は、畳込み符号化器の状態遷移を表す符号トレリスの概念図である。
【図３】（ａ）は、関連技術のターボ符号復号器のMAPアルゴリズムにおけるフォワード処理、バックワード処理および軟出力生成処理の順序を示す図、（ｂ）は、このMAPアルゴリズムにおけるウィンドウを用いてのフォワード処理、バックワード処理および軟出力生成処理の順序を示す図である。
【図４】関連技術のターボ符号復号装置において、符号トレリスを分割したブロック毎に同時にSISO復号を行う並列化を説明する模式図である。
【図５】関連技術のターボ符号復号装置において、SISO復号の並列化でメモリアクセスの競合が発生する状況を説明する模式図である。
【図６】他の関連技術のターボ符号復号装置の構成図である。
【図７】本発明の第１の実施の形態としての誤り訂正符号復号装置の構成図である。
【図８】本発明の第１の実施の形態としての誤り訂正符号復号装置の動作を示すフローチャートである。
【図９】本発明の第２の実施の形態としてのターボ符号復号装置の構成図である。
【図１０】本発明の第２の実施の形態におけるメモリ構成の説明図である。
【図１１】本発明の第２の実施の形態における置換部の構成を示すブロック図である。
【図１２】本発明の第２の実施の形態における硬判定部の配置を示すブロック図である。
【図１３】本発明の第２の実施の形態における硬判定部の構成を示すブロック図である。
【図１４】本発明の第２の実施の形態としてのターボ符号復号装置を3GPP LTEターボ符号(インターリーバ長504)の復号に適用したときの特性を示すグラフである。
【発明を実施するための形態】
【００３４】
以下、本発明の第１の実施の形態について、図面を参照して詳細に説明する。
【００３５】
本発明の第１の実施の形態としての誤り訂正符号復号装置１の構成を図７に示す。図７において、誤り訂正符号復号装置１は、機能ブロックとして、同時復号選択部２と、受信情報格納部３と、外部情報格納部４と、軟入力軟出力復号部５とを備えている。
【００３６】
ここで、同時復号選択部２は、後述の同時復号選択機能を実現する回路によって構成され、受信情報格納部３および外部情報格納部４は、RAM（Random Access Memory）等の記憶装置および記憶装置に対するデータの読み書きを制御する制御回路によって構成され、軟入力軟出力復号部５は、M（Mは１以上の整数）個のSISO復号器によって構成される。
【００３７】
同時復号選択部２は、通信セッションの開始時に送信側と受信側でインターリーバサイズKを決定する。また、同時復号選択部２は、決定したインターリーバサイズK（Kは１以上の整数）に応じて、後述の要素符号１および要素符号２を同時復号するか否かを選択または決定するための選択結果（決定情報）を出力する。
【００３８】
受信情報格納部３は、図示しない誤り訂正符号器から通信経路を介して、情報の畳込み符号である要素符号１と、この情報がインターリーバによって置換された情報の畳込み符号である要素符号２と、この情報とを含む符号化情報を受信し、受信された受信情報を格納する。
【００３９】
ここで、受信情報は、情報に対応する情報受信値、要素符号１のパリティに対応するパリティ１受信値、および要素符号２のパリティに対応するパリティ２受信値によって構成される。
【００４０】
また、受信情報格納部３は、この受信情報を、同時復号選択部２の選択結果に応じた位置に格納する。
【００４１】
外部情報格納部４は、軟入力軟出力復号部５のSISO復号器によって軟出力される外部情報を、同時復号選択部２の選択結果に応じた位置に格納する。
【００４２】
軟入力軟出力復号部５は、例えば、ウィンドウを用いて局所的な処理が可能なradix-2^nのMAPアルゴリズムを実行する、M個のSISO復号器を有する。この場合、M個のSISO復号器は、本発明におけるL（＝M・n）個のSISO復号器の一実施形態を構成する。
【００４３】
また、軟入力軟出力復号部５は、同時復号選択部２によって同時復号が選択されなかった場合、要素符号１の復号および要素符号２の復号を順次実行して繰り返す。詳細には、軟入力軟出力復号部５は、複数のSISO復号器を用いて要素符号１の符号トレリスを分割した各ブロックに対する復号を並列に実行する処理と、要素符号２の符号トレリスを分割した各ブロックに対する復号を並列に実行する処理とを、順次繰り返す。
【００４４】
また、軟入力軟出力復号部５は、同時復号選択部２によって同時復号が選択された場合、要素符号１および要素符号２を同時に復号して繰り返す。詳細には、軟入力軟出力復号部５は、要素符号１の符号トレリスを分割した各ブロックに対する復号と、要素符号２の符号トレリスを分割した各ブロックに対する復号とを同時に並列に実行して繰り返す。
【００４５】
なお、以下、軟入力軟出力復号部５が、要素符号１の復号および要素符号２の復号を順次実行して繰り返す処理を、「通常の並列化」と呼ぶ。また、軟入力軟出力復号部５が、要素符号１および要素符号２の復号を同時に実行する処理を、「要素符号の同時復号」と呼ぶことにする。
【００４６】
次に、本発明の第１の実施の形態としての誤り訂正符号復号装置１の動作について図８を用いて説明する。
【００４７】
なお、図８において、誤り訂正符号復号装置１は、要素符号１および要素符号２の同時復号を行うことが可能なインターリーバサイズの最大値としてあらかじめKsを記憶しているものとする。
【００４８】
また、誤り訂正符号復号装置１は、図８において、通信セッションの開始時に送信側と受信側でインターリーバサイズKを既に決定しており、そのセッションで複数のフレームを送信する場合も、同一のインターリーバサイズKを用いるものとする。
【００４９】
図８において、まず、誤り訂正符号復号装置１は、現セッションのインターリーバサイズKに対して、Kが(M/q)×nの倍数となるような最小のMの約数qを求める（ステップＳ１）。
【００５０】
次に、同時復号選択部２は、インターリーバサイズKに応じて２個の要素符号の同時復号を実行するか否かを選択する選択結果を出力する（ステップＳ２）。
【００５１】
例えば、同時復号選択部２は、q=1もしくはK>Ksが成り立つか否かに基づいて、要素符号１および要素符号２の同時復号を実行するか否かを選択してもよい。
【００５２】
ステップＳ２において、q=1もしくはK>Ksであり通常の並列化が選択されると、受信情報格納部３は、選択結果に基づいて、情報受信値およびパリティ受信値を、通常の並列化に応じたアドレスに読み込む（ステップＳ３）。
【００５３】
次に、軟入力軟出力復号部５は、M/q個のSISO復号器を用いて要素符号１の復号を行い(ステップＳ４)、その後、要素符号２の復号をM/q個のSISO復号器を用いて復号を行う(ステップＳ５)。
【００５４】
軟入力軟出力復号部５は、繰り返し復号の終了の判定となるまで（ステップＳ６でＹｅｓ）、ステップＳ４〜Ｓ５を繰り返す。
【００５５】
誤り訂正符号復号装置１は、現セッションのすべてのフレームの復号処理を終了したら、セッションの復号処理を終了する（ステップＳ７でＹｅｓ）。
【００５６】
一方、ステップＳ２において、２個の要素符号の同時復号が選択されると、受信情報格納部３は、選択結果に基づいて、情報受信値およびパリティ受信値を、要素符号の同時復号に応じたアドレスに読み込む（ステップＳ８）。
【００５７】
次に、軟入力軟出力復号部５は、M/q個のSISO復号器を用いて要素符号１の復号を、別のM/q個のSISO復号器を用いて要素符号２の復号を同時に行う(ステップＳ９、Ｓ１０)。
【００５８】
軟入力軟出力復号部５は、繰り返し復号の終了の判定となるまで（ステップＳ１１でＹｅｓ）、ステップＳ９およびＳ１０の同時実行を繰り返す。
【００５９】
誤り訂正符号復号装置１は、現セッションのすべてのフレームの復号処理を終了したら、セッションの復号処理を終了する（ステップＳ１２でＹｅｓ）。
【００６０】
以上で、誤り訂正符号復号装置１は動作を終了する。
【００６１】
なお、ステップＳ１およびＳ２において、同時復号選択部２は、すべてのインターリーバサイズKに対してあらかじめステップＳ１およびＳ２の処理を実行して記憶装置（図示せず）に保存しておき、実行時にそれを参照してもよい。また、同時復号選択部２は、同時復号を実行するか否かの選択を、単にK>Ksの判定のみに基づいて行ってもよい。ここで、Kが小さい場合は必然的にブロックサイズBも小さくなり、ウィンドウサイズWのバックワード処理のトレーニングに必要なオーバーヘッドも大きくなる。したがって、要素符号あたりの並列度を抑えて２個の要素符号の同時復号を行うことにより、この点においても高速化に貢献することが期待できる。
【００６２】
また、ステップＳ５およびＳ１１において、軟入力軟出力復号部５は、終了判定を、予め情報部分に付加されているＣＲＣを用いて判定してもよい。
【００６３】
次に、本発明の第１の実施の形態の効果について述べる。
【００６４】
本発明の第１の実施の形態としての誤り訂正符号復号装置は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる。
【００６５】
その理由は、誤り訂正符号復号装置は、要素符号毎に各ブロックに対する復号を並列に実行し、要素符号１の復号および要素符号２の復号を順次繰り返す通常の並列化と、２個の要素符号の復号を同時に行う並列化を選択可能に併用するからである。
【００６６】
また、本発明の第１の実施の形態としての誤り訂正符号復号装置は、受信情報および外部情報を、受信情報格納部および外部情報格納部内の、同時復号を実行するか否かの選択結果に応じた位置に格納するので、受信情報格納部および外部情報格納の容量の増加を抑えることができる。
【００６７】
次に、本発明の第２の実施の形態について、図面を参照して詳細に説明する。なお、本発明の第２の実施の形態としては、本発明の誤り訂正符号復号装置を、ターボ符号を復号するターボ符号復号装置に適用した例について説明する。
【００６８】
本発明の第２の実施の形態としてのターボ符号復号装置２０の構成を図９に示す。なお、図９において、本発明の第１の実施の形態としての誤り訂正符号復号装置１と同一の構成については同一の符号を付して詳細な説明を省略する。
【００６９】
図９において、ターボ符号復号装置２０は、同時復号選択部１１００と、アドレス生成部８００と、情報受信値メモリ８０１と、パリティ受信値メモリ８０２と、外部情報メモリ８０３と、軟入力軟出力復号部５と、置換部９００と、硬判定部１００１とを備えている。
【００７０】
ここで、アドレス生成手段８００、情報受信値メモリ８０１およびパリティ受信値メモリ８０２は、本発明の受信情報格納手段の一実施形態を構成する。また、アドレス生成手段および外部情報メモリ８０３は、本発明の外部情報格納手段の一実施形態を構成する。
【００７１】
図１０に、Ｍ＝８、ｎ＝２のときのアドレス生成手段８００、情報受信値メモリ８０１、パリティ受信値メモリ８０２、および、外部情報メモリ８０３の構成を示す。
【００７２】
アドレス生成部８００は、同時復号選択部１１００の選択結果に応じて、情報受信値メモリ８０１、パリティ受信値メモリ８０２および外部情報メモリ８０３のリード/ライトのためのアドレスを生成する。アドレスの生成法については後述する。
【００７３】
情報受信値メモリ８０１は、（M・n）個のメモリU_0, U_1, …, U_{M・n-1}で構成される。また、情報受信値メモリ８０１は、K個の情報受信値をM'=M/q等分したブロックをさらにアドレスのmod nで分割して（M'・n）個のメモリに保持する。つまり、情報受信値メモリをU_0, U_1, …,U_{M'・n-1}、情報受信値をx(j) (j=0,…,K-1)で表すと、メモリU_{n・j+i} (0≦i<n)にはx(j・B+i), x(j・B+i+n), x(j・B+i+2n),…,x(j・B+i+B-n)のB/n個の受信値を格納する。ここでB=K/M'はブロックサイズである。要素符号の同時復号を行う場合ｑ＞１であり、メモリU_{2・(n・j+i)}にはメモリU_{n・j+i}と同一のデータを格納するように構成する。メモリU_0, U_1, …,U_{M'・n-1}は要素符号１の復号で使用され、メモリU_{M'・n}, U_{M'・n+1}, …,U_{2・M'・n-1}は要素符号２の復号で使用される。
【００７４】
パリティ受信値メモリ８０２は、（M・n）個のメモリで構成される。通常の並列化では、パリティ１およびパリティ２の受信値をM'=M/q等分してM'個のメモリに保持する。パリティ１およびパリティ２の受信値をy1(j), y2(j)(j=0,1,…,K-1)で表すと、メモリP_{n・j+i} (0≦i<n)は、y1(j・B+i), y1(j・B+i+n),…,y1(j・B+i+B-n),y2(j・B+i), y2(j・B+i+n),…,y2(j・B+i+B-n)の2・B/n個の受信値を格納する。要素符号の同時復号では、パリティ１およびパリティ２のK個の受信値をそれぞれM'=M/q等分し(q>1)、メモリP_0,P_1,…,P_{M'・n-1}はパリティ１の受信値を、メモリP_{M'・n},P_{M'・n+1},…,P_{2・M'・n-1}はパリティ２の受信値を保持する。
【００７５】
外部情報メモリ８０３は（M・n）個のメモリで構成される。通常の並列化では、外部情報メモリ８０３は、K個の外部情報をM'=M/q等分し、M'個のメモリに情報受信値と同様に保持する。ここで、外部情報は、軟入力軟出力復号部５のSISO復号器によって軟出力され、さらに置換部９００で後述する事前情報に置換された情報である。具体的に、要素符号の同時復号では、外部情報メモリ８０３は、K個の外部情報をM'等分し、要素符号１のSISO復号化された出力である外部情報e1(j)を、要素符号２のSISO復号の事前情報となるようにメモリE_{M'・n}, E_{M'・n+1},…, E_{2・M'・n-1}に格納する。また、外部情報メモリ８０３は、要素符号２のSISO復号化された出力である外部情報e2(j)を、要素符号１のSISO復号の事前情報となるようにメモリE_0, E_1,…,E_{M'・n-1}に格納する。
【００７６】
また、情報受信値メモリ８０１、外部情報メモリ８０３のメモリサイズのトータルは、同時復号を実行可能なインターリーバサイズの最大値Ksの２倍以上かつインターリーバサイズの最大値以上に設定される。
【００７７】
図１１に、置換部９００の構成を示す。
【００７８】
図１１において、置換部９００は、置換処理部９０１および逆変換処理部９０５を有している。
【００７９】
ここで、メモリアクセスの衝突がない場合のインターリーブ処理は、図８のアドレス生成手段８００で生成するアドレスと、情報受信値メモリ８０１およびパリティ受信値メモリ８０２から同時に読み出したデータとの、複数のSISO復号器への対応を与える置換処理で実現することができる。Radix-2^n のSISO復号であればこの置換処理部９０１および逆変換処理部９０５もそれぞれn個用意する。
【００８０】
置換処理部９０１および逆変換処理部９０５は、通常の並列化の場合および要素符号の同時復号の場合の各qに応じて、サイズM/qの置換処理を実行するよう構成される。
【００８１】
図１１において、置換処理部９０１および逆変換処理部９０５は、M=8に対してq=1およびq=2に応じた置換処理を実行するよう構成される。
【００８２】
置換処理部９０１は、通常の並列化を行う場合の置換処理部９０２と、要素符号の同時復号を行う場合の置換処理部９０３と、置換処理部９０２および置換処理部９０３の選択を行うセレクタ９０４とを有している。
【００８３】
置換処理部９０２は、外部情報メモリ８０３からのM個のデータ（外部情報）の置換処理（Π１と表す）を行う。
【００８４】
置換処理部９０３は、要素符号１に対応するM'個のデータの恒等変換および要素符号２に対応するM'個のデータの置換処理（Π２と表す）を行う。
【００８５】
逆変換処理部９０５は、通常の並列化を行う場合の逆変換処理部９０６と、要素符号の同時復号を行う場合の逆変換処理部９０７と、スワップ処理部９０８と、逆変換処理部９０６および逆変換処理部９０７の選択を行うセレクタ９０９とを有している。
【００８６】
逆変換処理部９０５は、軟入力軟出力復号部５のSISO復号器で生成される外部情報に対して逆変換を行ってから外部情報メモリ８０３を更新する。
【００８７】
逆変換処理部９０６および逆変換処理部９０７は、それぞれ置換処理部９０２のΠ１および置換処理部９０３のΠ２に対する逆変換処理Inv_Π１およびInv_Π２を行う。
【００８８】
スワップ処理部９０８は、逆変換処理部９０７によって生成された要素符号１の外部情報および要素符号２の外部情報のスワップ処理を行う。これにより、要素符号１の復号で生成される外部情報は要素符号２の復号で事前情報として読み込まれるように、要素符号２の復号で生成される外部情報は要素符号１の復号で事前情報として読み込まれるように、外部情報メモリ８０３に書き込まれる。
【００８９】
再び図９に戻り、アドレス生成部８００について説明する。ここで、ブロック内のSISO復号の処理スケジュールはサイズＷのウィンドウを用いて図３（ｂ）に示したようにウィンドウ単位でバックワード処理を最初に行う処理順序を想定する。置換処理部９０１による各メモリからのデータの読み出しもこれに合わせて行う。M'= M/q, B=K/M'とする。
【００９０】
このとき、アドレス生成部８００は、通常の並列化で要素符号１の復号のときには、すべてのメモリに共通にウィンドウ単位で、
W-1, W-2, …, 1, 0, 2・W-1,2・W-2,…,W, 3・W-1,3・W-2,…
とアドレスを生成する。
【００９１】
また、アドレス生成部８００は、通常の並列化で要素符号２の復号のときには、情報受信値メモリ８０１および外部情報メモリ８０３からのデータ読み出しのために、
Π1-1(π(W-1) mod B, π(B+W-1) mod B, …, π((M'-1)B+W-1) mod B),
Π1-1(π(W-2) mod B, π(B+W-2) mod B, …, π((M'-1)B+W-2) mod B),
...
Π1-1(π(1) mod B, π(B+1) mod B, …, π((M'-1)B+1) mod B),
Π1-1(π(0) mod B, π(B) mod B, …, π((M'-1)B) mod B),
Π1-1(π(2W-1) mod B, π(B+2W-1) mod B, …, π((M'-1)B+2W-1) mod B),
Π1-1(π(2W-2) mod B, π(B+2W-2) mod B, …, π((M'-1)B+2W-2) mod B),
...
と各メモリのアドレスを生成する。
【００９２】
ここでターボ符号のインターリーブ処理は、情報系列u(0), u(1),u(2),...,u(K-1)をu(π(0)),u(π(1)),...,u(π(K-1))の順序に並べ直すものとすると、Π1-1は逆変換処理部９０５による逆変換処理を表し、各メモリと複数SISO復号器との対応を与える。"a mod B"はaのBによる剰余で、0からB-1までの値とする。LTE（Long Term Evolution）インターリーバではπ(z) mod B = π(B+z) mod B = ... = π((M'-1)B+z) mod Bが成り立つため、要素符号２のときもすべてのメモリで同一アドレスとすることができる。
【００９３】
また、アドレス生成部８００は、通常の並列化でパリティ２の読み出しのために、
B/n+W-1, B/n+W-2, …, B/n+1, B/n, B/n+2・W-1,B/n+2・W-2,…,
B/n+W, B/n+3・W-1,  B/n+3・W-2,…
とアドレスを生成する。
【００９４】
また、アドレス生成部８００は、要素符号の同時復号において、要素符号１のSISO復号の入力に対応するメモリU_0,U_1,...,U_{M'・n-1}およびE_0,E_1,...,E_{M'・n-1}については、上述の要素符号１の復号のときと同様に、また要素符号２のSISO復号の入力に対応するメモリU_{M'・n},U_{M'・n+1},...,U_{2・M'・n-1}およびE_{M'・n},E_{M'・n +1},...,E_{2・M'・n-1}については、上述の要素符号２の復号のときと同様に、それぞれアドレスを生成する。
【００９５】
また、アドレス生成部８００は、要素符号の同時復号でのパリティに関してはP_0,...,P_{2・M'-1}まで共通に通常の並列化における要素符号１の場合と同様にアドレスを生成する。
【００９６】
硬判定部１００１は、図１２に示すように配置され、情報受信値メモリ８０１から読み出した情報受信値、外部情報メモリ８０３から読み出した事前情報としての外部情報、および軟入力軟出力復号部５によって生成される外部情報を用いて硬判定を行う。
【００９７】
ここで、硬判定部１００１の構成を図１３に示す。硬判定部１００１は、テンポラリメモリ１００２と、アドレス制御部１００３と、硬判定メモリ１００４と、硬判定回路１００５とを有している。
【００９８】
テンポラリメモリ１００２は、情報受信値および事前情報を外部情報が生成されるまで一時的に保持するメモリである。
【００９９】
アドレス制御部１００３は、テンポラリメモリ１００２および硬判定メモリ１００４のリード／ライトのアドレスを生成する。
【０１００】
硬判定回路１００５は、情報受信値x(t)、事前情報La(t)および外部情報Le(t)から式（２）によってL(t)を生成する処理を実行する回路である。硬判定回路１００５は、L(t)の正負に基づき復号結果０または１を判定する。要素符号の同時復号を行う場合には要素符号１の硬判定結果のみをみれば十分であるため、硬判定回路１００５のセレクタは、図１１のスワップ処理部９０８によってスワップされた要素符号１の外部情報を要素符号１の受信値と外部情報に対応するように戻す処理を行う。
【０１０１】
同時復号選択部１１００は、本発明の第１の実施の形態の同時復号選択部２と同様に構成され、さらに、その選択結果を、アドレス生成部８００、置換部９０５、硬判定部１００１および軟入力軟出力復号部５に出力する。
【０１０２】
以上のように構成されたターボ符号復号装置２０が、3GPP LTEのターボ符号に対する復号を行う例について以下、説明する。
【０１０３】
3GPP LTEのターボ符号では前述のようにM・n=8まではすべてのインターリーバサイズKにおいてメモリアクセスの競合を回避することができるが、ここでは、M = 8, n = 2 (radix-2^2のSISO復号器８個)を適用したターボ符号復号装置２０の例を、要素符号の同時復号を選択した場合を中心に示す。
【０１０４】
ターボ符号復号装置２０は、M = 8, n = 2に対して、図１０に示したように、情報受信値、パリティ受信値および外部情報を格納するメモリとして、それぞれM×n=16個のメモリを用いる。LTEインターリーバの最大長は6144のため、図１０において、情報受信値と外部情報の１個あたりのメモリのサイズ（深さ）は6144/16 = 384となる。また、パリティ受信値のメモリのサイズ（深さ）はパリティ１とパリティ２の受信値を併せて384×2=768となる。
【０１０５】
前述のように、LTEインターリーバでは512以上のKに対しては通常の並列化で符号トレリスを８個に分割してradix-2^2のSISO復号器を８個用いることにより、メモリアクセスの競合を回避して並列復号を実行させることができる。よって、ターボ符号復号装置２０は、要素符号の同時復号を行うときのインターリーブサイズの上限Ksとして512を設定することが好ましい。このとき、ターボ符号復号装置２０において、インターリーバの最大長6144はKsの2倍より大であるため、要素符号の同時復号を行ってもメモリ容量の増加を必要としない。
【０１０６】
ターボ符号復号装置２０は、K < Ks = 512でq = 2の場合には、M' = 4, n = 2として２個の要素符号の同時復号を実行する。例えばK = 504のときはq = 2となり、図８のステップＳ２で要素符号の同時復号が選択される。
【０１０７】
なお、ターボ符号復号装置２０は、K < 512であれば、q = 1とすることが可能な場合(例えばKが16の倍数となる場合)であってもq = 2として処理を行ってもよい。
【０１０８】
まず、情報受信値メモリ８０１は、メモリ（以下、「メモリ」を省略）U_0,…,U_15においてq = 2の場合には情報受信値をM' = M/q = 4個のブロックに分割してU_0からU_7に格納する。x(j)(j = 0,1,…,K-1)でj番目の情報受信値を表すとする。ブロック長をB=K/M'とおく。情報受信値メモリ８０１は、d番目のブロックの受信値x(j)(j = B・d, B・d+1,..., B・d+B-1)に対してj = 0 mod 2のx(j)はU_{2・d}に、j = 1 mod 2のx(j)はU_{2・d+1}に格納する。K = 504のとき、B = K/M'=126でU_0, ..., U_7には次のように126/n = 126/2 = 63個の情報受信値が格納される。
U_0: x(0) x(2) ... x(122) x(124)
U_1: x(1) x(3) ... x(123) x(125)
U_2: x(126) x(128) ... x(248) x(250)
U_3: x(127) x(129) ... x(249) x(251)
U_4: x(252) x(254) ... x(374) x(376)
U_5: x(253) x(255) ... x(375) x(377)
U_6: x(378) x(380) ... x(500) x(502)
U_7: x(379) x(381) ... x(501) x(503)
ここで、要素符号の同時復号では、U_8,...,U_15にもU_0,...,U_7と同一の受信値が格納される。LTEインターリーバでは通常の並列化ではU_0からU_15まで常に同一のアドレスでアクセスされ、また要素符号の同時復号ではU_0からU_7とU_8からU_15はそれぞれ同一のアドレスでアクセスされる。このため、U_0からU_7とU_8からU_15はそれぞれ１個のメモリで構成することもできる。
【０１０９】
また、パリティ受信値メモリ８０２は、要素符号の同時復号ではP_0からP_7には要素符号１のパリティ受信値を、P_8からP_15には要素符号２のパリティ受信値を格納する。y1(j)とy2(j)(j = 0,1,...,K-1)で要素符号１および要素符号２のパリティのj番目の受信値を表すとすると、要素符号の同時復号を行うK=504のとき、パリティ受信値メモリには次のようにパリティ受信値が格納される。
P_0: y1(0) y1(2) ... y1(122) y1(124)
P_1: y1(1) y1(3) ... y1(123) y1(125)
P_2: y1(126) y1(128) ... y1(248) y1(250)
P_3: y1(127) y1(129) ... y1(249) y1(251)
P_4: y1(252) y1(254) ... y1(374) y1(376)
P_5: y1(253) y1(255) ... y1(375) y1(377)
P_6: y1(378) y1(380) ... y1(500) y1(502)
P_7: y1(379) y1(381) ... y1(501) y1(503)
P_8: y2(0) y2(2) ... y2(122) y2(124)
P_9: y2(1)   y2(3) ... y2(123) y2(125)
P_10:y2(126) y2(128) ... y2(248) y2(250)
P_11:y2(127) y2(129) ... y2(249) y2(251)
P_12:y2(252) y2(254) ... y2(374) y2(376)
P_13:y2(253) y2(255) ... y2(375) y2(377)
P_14:y2(378) y2(380) ... y2(500) y2(502)
P_15:y2(379) y2(381) ... y2(501) y2(503)
ここで、P_0,...,P_15は通常の並列化でも要素符号の同時復号でも同一のアドレスでアクセスされるため、1個のメモリで実現することができる。
【０１１０】
また、外部情報メモリ８０３は、情報受信値メモリ８０１と同様に、要素符号の同時復号ではメモリ（以下、「メモリ」を省略）E_0,...,E_7には要素符号２のSISO復号の出力である外部情報を、E_8,...,E_15には要素符号１のSISO復号の出力である外部情報を格納する。e1(j)とe2(j)(j=0,1,...,K-1)が、要素符号１および要素符号２の出力で得られるu
(j)に対する外部情報を表すとすると、K=504のときには外部情報メモリには次のように外部情報が格納される。
E_0: e2(0) e2(2) ... e2(122) e2(124)
E_1: e2(1) e2(3) ... e2(123) e2(125)
E_2: e2(126) e2(128) ... e2(248) e2(250)
E_3: e2(127) e2(129) ... e2(249) e2(251)
E_4: e2(252) e2(254) ... e2(374) e2(376)
E_5: e2(253) e2(255) ... e2(375) e2(377)
E_6: e2(378) e2(380) ... e2(500) e2(502)
E_7: e2(379) e2(381) ... e2(501) e2(503)
E_8: e1(0) e1(2) ... e1(122) e1(124)
E_9: e1(1) e1(3) ... e1(123) e1(125)
E_10:e1(126) e1(128) ... e1(248) e1(250)
E_11:e1(127) e1(129) ... e1(249) e1(251)
E_12:e1(252) e1(254) ... e1(374) e1(376)
E_13:e1(253) e1(255)...e1(375) e1(377)
E_14:e1(378) e1(380)... e1(500) e1(502)
E_15:e1(379) e1(381) ... e1(501) e1(503)
ここで、LTEインターリーバでは、E_0からE_7とE_8からE_15はそれぞれ同一のアドレスでアクセスされるため、それぞれ1個のメモリで実現することができる。
【０１１１】
次にK = 504のLTEインターリーバを用いたターボ符号に対する要素符号の同時復号の処理について述べる。K = 504のLTEインターリーバは非特許文献３を参照すると、
u(π(t)) = u((55・t + 84・t^2) mod 504)
とインターリーブ処理を行う。M'= M/q = 4で、radix^2^2 (n = 2)とする。８個のSISO復号器の中の４個のSISO復号器０、１、２および３で要素符号１の復号を実行し, 残りの４個のSISO復号器４、５、６および７で要素符号２の復号を同時に実行する。各ブロックにおけるSISO復号は図３（ｂ）に示したようなウィンドウ（サイズW）を用いたスケジュールを考える。つまり、各ブロックにおいて符号トレリスの時点としてn = 2に対応して２時点ずつ
(W-2, W-1), (W-4,W-3),…, (3, 2), (1, 0), (2W-2, 2W-1), (2W-4, 2W-3),...,(W+3,W+2), (W+1,W),…
の順序でメモリからデータを読み込み、MAPアルゴリズムのバックワード処理を最初に動作させる。以下、ウィンドウサイズWは16に設定してtime 0, 1の場合の処理を示す。
【０１１２】
(i) time 0：まず、time 0での処理について説明する。
【０１１３】
情報受信値メモリ８０１および外部情報メモリ８０３のリードアドレスはad1_0 = ad1_1 = 7であるため、情報受信値メモリU_0,..., U_7, 外部情報メモリE_0,...,E_7から次のような情報受信値および事前情報が読み出されることになる。
x(14), x(15), x(140), x(141), x(266), x(267), x(392), x(393)
e2(14), e2(15), e2(140), e2(141), e2(266), e2(267), e2(392), e2(393)
また、メモリP_0, P_1, P_2, P_3, P_4, P_5, P_6, P_7に対してリードアドレスadp_0 = adp_1= 7から次のようなパリティ受信値が読み出されることになる。
y1(14), y1(15), y1(140), y1(141), y1(266), y1(267), y1(392), y1(393)
そこで、まず、SISO復号器０は、x(14),x(15),e2(14),e2(15),y1(14),y1(15)を読み込んで図３（ｂ）における最初のタイムスロットのバックワード処理を開始する。SISO復号器０は、読み込んだ受信値と外部情報とに基づいて、要素符号１のブランチメトリックγ(14, s, s'), γ(15, s, s') (s, s'∈S)を計算し、これらの外部情報生成が終わるまで復号器内部で一時的に保存する。また、SISO復号器１、２および３は、SISO復号器０と同様に処理を行う。
【０１１４】
また、SISO復号器４、５、６および７は、要素符号２の復号に関して次のように受信値、事前情報およびパリティ受信値を読み込む。
【０１１５】
SISO復号器４：
情報受信値  x(π(14)) = x(98), x(π(15))) = x(69)
事前情報   e1(π(14)) = e1(98), e1(π(15)) = e1(69)
パリティ２受信値 y2(14), y2(15)
SISO復号器５：
情報受信値  x(π(140)) = x(476), x(π(141)) = x(447)
事前情報    e1(π(140)) = e1(476), e1(π(141)) = e1(447)
パリティ２受信値 y2(140), y2(141)
SISO復号器６：
情報受信値  x(π(266)) = x(350), x(π(267)) = x(321)
事前情報   e1(π(266)) = e1(350), e1(π(267)) = e1(321)
パリティ２受信値 y2(266), y2(267)
SISO復号器７：
情報受信値  x(π(392)) = x(224), x(π(393)) = x(195)
事前情報 e1(π(392)) = e1(224), e1(π(393))) = e1(195)
パリティ２受信値 y2(392), y2(393)
読み込んだ受信値と事前情報から、SISO復号器４、５、６および７は、それぞれ要素符号２のブランチメトリック(γ(14,s,s'), γ(15,s,s')), (γ(140,s,s'), γ(141,s,s')), (γ(266,s,s,'), γ(267,s,s')), (γ(392,s,s'), γ(393,s,s'))を計算し(s,s'∈S)、計算したブランチメトリックを、対応する時点の外部情報生成が終わるまで復号器内部に一時的に保存する。
【０１１６】
SISO復号器へのこのようなデータのアサインはU_8,U_10,U_12,U_14およびE_8,E_10,E_12,E_14 のリードアドレスad2,0, U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E_15に対するリードアドレスad2,1, U_8,U_10,U_12,U_14およびE_8,E_10,E_12,E14)から読み出したデータの置換処理Π2_0、U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E15)から読み出したデータの置換処理Π2_1を次のように設定することで実現できる。[x]はx以下の最大の整数を表す。
ad2_0 = (98 mod 126)/2 = (476 mod 126)/2 = (350 mod 126)/2 = (224 mod 126)/2 = 49
ad2_1 = [(69 mod 126)/2] = [(447 mod 126)/2] = [(321 mod 126)/2] = [(195 mod 126)/2] = 34
Π2_0 : (x(98), x(224), x(350), x(476)) → (x(98), x(476), x(350), x(224))
(e1(98), e1(224), e1(350), e1(476)) → (e1(98), e1(476), e1(350), e1(224))
Π2_1 : (x(69), x(195), x(321), x(447)) → (x(69), x(447), x(321), x(195))
(e1(69), e1(195), e1(321), e1(447)) → (e1(69), e1(447), e1(321), e1(195))
次に、SISO復号器０、１、２および３は、生成した外部情報e1(14), e1(15), e1(140), e1(141), e1(266), e1(267), e1(392), e1(393)をそれぞれメモリE_8,...,E_15に書き込む。
【０１１７】
同時に、SISO復号器４、５、６および７は、生成した外部情報e2(98), e2(69), e2(224), e2(195), e2(350), e2(321), e2(476), e2(447)を、それぞれメモリE_0,...,E_7に書き込む。
【０１１８】
(i) time 1：次に、time 1での処理について説明する。
【０１１９】
ここでは、要素符号１の復号の情報受信値メモリおよび外部情報メモリのリードドレスはad1_0 = ad1_1 = 6であり、U_0,..., U_7, E_0,...,E_7からは次のような情報受信値および外部情報が読み出されることになる。
x(12), x(13), x(138), x(139), x(264), x(265), x(390), x(391)
e2(12), e2(13), e2(138), e2(139), e2(264), e2(265), e2(390), e2(391)
また、メモリP_0, P_1, P_2, P_3, P_4, P_5, P_6, P_7からは、リードアドレスのadp_0 = adp_1= 6によって次のようなパリティ１受信値が読み出されることになる。
y1(12), y1(13), y1(138), y1(139), y1(264), y1(265), y1(390), y1(391)
そこで、SISO復号器０は、x(12),x(13),e2(12),e2(13),y1(12),y1(13)を読み込んでバックワード処理を進める。読み込んだ受信値と外部情報から、SISO復号器０は、要素符号１のブランチメトリックγ(12,s,s'), γ(13,s,s')を計算し(s,s'∈S)、これらの外部情報生成が終わるまでSISO復号器内部で一時的に保存する。SISO復号器１、２および３は、SISO復号器０と同様に処理を行う。
【０１２０】
一方、SISO復号器４、５、６および７は、要素符号２の復号に関して次のように受信値、事前情報およびパリティ受信値を読み込む。
【０１２１】
SISO復号器４：
情報受信値  x(π(12)) = x(156), x(π(13)) = x(295)
事前情報    e1(π(12)) = e1(156), e1(π(13)) = e1(295)
パリティ２受信値   y2(12), y2(13)
SISO復号器５：
情報受信値 x(π(138)) = x(30), x(π(139)) = x(169)
事前情報   e1(π(138)) = e1(30),  e1(π(139)) = e1(169)
パリティ2受信値 y2(138), y2(139)
SISO復号器６：
情報受信値  x(π(264)) = x(408), x(π(265))) = x(43)
事前情報    e1(π(264)) = e1(408), e1(π(265))) = e1(43)
パリティ2受信値 y2(264), y2(265)
SISO復号器７：
情報受信値 x(π(390)) = x(282), x(π(391))) = x(421)
事前情報 e1(π(390)) = e1(282), e1(π(391))) = e1(421)
パリティ2受信値 y2(390), y2(391)
読み込んだ受信値と外部情報から、SISO復号器４、５、６および７は、それぞれ要素符号２のブランチメトリック(γ(12,s,s'), γ(13,s,s')), (γ(138,s,s'), γ(139,s,s')), (γ(264,s,s'), γ(265,s,s')), (γ(390,s,s'), γ(391,s,s'))を計算し(s,s'∈S)、このブランチメトリックを、対応する時点の外部情報生成が終わるまで復号器内部に一時的に保存する。
【０１２２】
SISO復号器へのこのようなデータの割り当てはU_8,U_10,U_12,U_14およびE_8,E_10,E_12,E_14 のリードアドレスad2_0, U_9,U_11,U_13,U_15およびE_9,E_11,E_13,E_15に対するリードアドレスad2_1, U_8,U_10,U_12,U_14 とE_8,E_10,E_12,E14から読み出したデータの置換処理Π2_0、U_9,U_11,U_13,U_15 とE_9,E_11,E_13,E15から読み出したデータの置換処理Π2_1を次のように設定することで実現できる。
ad2_0 = (30 mod 126)/2 = (156 mod 126)/2 = (282 mod 126)/2 = (408 mod 126)/2 = 15
ad2_1 = [(43 mod 126)/2] = [(169 mod 126)/2] = [(295 mod 126)/2] = [(421 mod 126)/2] = 21
Π2_0 : (x(30), x(156), x(282), x(408)) → (x(156), x(30), x(408), x(282))
(e1(30), e1(156), e1(282), e1(408)) → (e1(156), e1(30), e1(408), e1(282))
Π2_1 : (x(43), x(169), x(295), x(421)) → (x(295), x(169), x(43), x(421))
(e1(43), e1(169), e1(295), e1(421)) → (e1(295), e1(169), e1(43), e1(421))
SISO復号器０、１、２および３は、生成した外部情報e1(12), e1(13), e1(138), e1(139), e1(264), e1(265), e1(390), e1(391)をそれぞれメモリE_8,...,E_15に書き込む。
【０１２３】
また、SISO復号器４、５、６および７は、生成した外部情報e2(30), e2(43), e2(156), e2(169), e2(282), e2(295), e2(408), e2(421)を、それぞれメモリE_0,...,E_7に書き込む。
【０１２４】
図１４に、K = 504のLTEインターリーバに本発明の第２の実施の形態としてのターボ符号復号装置２０を適用したときの復号特性を示す。
【０１２５】
図１４において、特性「公知：W=16, It=8」は、公知のターボ符号復号装置によってメモリアクセスの競合を無視してM=8, n=2として通常の並列化で復号をおこなったときの8 iteration(要素符号１および要素符号２の復号が完了して1 iterationとカウント)での復号特性を示している。
【０１２６】
特性「公知：W=16, It=4.5」は、公知のターボ符号復号装置によってメモリアクセスの衝突を考慮してM'=4, n=2として復号を実行し、同一の復号処理サイクル数という条件の下で4.5 iteration復号処理を実行したときの復号特性を示している。
【０１２７】
一方、特性「改良：W=16, It=9」は同一の復号処理サイクル数という条件の下でM'=4(q=2), n=2として本発明の第２の実施の形態としてのターボ復号装置２によって要素符号の同時復号を実行したときの復号特性を示している。
【０１２８】
図１４からわかるように、要素符号の同時復号を併用することで、K=504の場合にもM=8, n=2とする並列化が可能と仮定した場合と同程度の特性が得られ、M'=4とした通常の並列化と比較すると0.2dB程度の符号化利得の改善をみることができる。要素符号の同時復号では外部情報の更新の遅延が小さいほど特性の改善を見ることができるため、ウィンドウサイズWを小さくすることで特性の改善を見ることができる場合もある。
【０１２９】
また、図１４において、特性「改良：W=8 It=10」は、ウィンドウサイズをW=8として、同一の復号処理サイクル数という条件の下で、本発明の第２の実施の形態としてのターボ符号復号装置２０によって要素符号の同時復号を実行したときの信号特性を示している。このとき、図３のバックワード処理のトレーニング期間が小さくなって繰り返し数が10に増えたこともあり、W = 16と比較してわずかではあるが復号特性が改善されていることがわかる。
【０１３０】
このように、本発明の第２の実施の形態において、誤り訂正符号復号装置は、通常の並列化か要素符号の同時復号かによってWの設定を変更してもよい。また、適切なWのサイズは符号化率にも依存するため、このとき符号化率も考慮してWを設定すると効果的である。
【０１３１】
次に、本発明の第２の実施の形態のターボ符号復号装置２０の効果について述べる。
【０１３２】
本発明の第２の実施の形態としてのターボ符号復号装置は、上述のように構成することにより、通常の並列化のみでは利用するSISO復号器の個数を小さくする必要があったインターリーバサイズに対してもその個数を大きくすることが可能となり、同一特性を達成するための処理速度もしくは同一処理速度であれば特性の改善を達成することができる。
【０１３３】
また、本発明の第２の実施の形態としてのターボ符号復号装置は、情報受信値メモリおよび外部情報メモリの容量の増加を必要としない。なぜなら、ターボ符号復号装置は、情報受信値メモリおよび外部情報メモリのサイズのトータルを最大インターリーバサイズ以上に設定し、この最大インターリーバサイズの1/2以下のインターリーバサイズの場合のみに２個の要素符号の同時復号を選択可能にするからである。
【０１３４】
なお、本発明の第２の実施の形態では、複数のメモリから読み出した情報受信値および外部情報を複数のSISO復号器にアサインする本発明の置換手段として、要素符号の同時復号を行う場合には通常の並列化とは異なる入出力サイズの回路を必要とすることになる。しかしながら、この置換手段では、入出力数が最大となる通常の並列化の場合の処理が支配的となるため、本発明において２個の要素符号の復号を同時に行う処理に対応するためのオーバーヘッドは限定的となる。
【０１３５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
【０１３６】
（付記１）情報の畳込み符号である第１の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第２の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置において、前記インターリーバのサイズに応じて前記第１および第２の要素符号を同時復号するか否かを選択する同時復号選択手段と、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置に格納する受信情報格納手段と、前記第１および第２の要素符号にそれぞれ対応する外部情報を、前記同時復号選択手段の選択結果に応じた位置に格納する外部情報格納手段と、前記第１および第２の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を有し、前記同時復号選択手段によって同時復号が選択されなかった場合は、前記第１の要素符号の復号および前記第２の要素符号の復号を順次実行して繰り返し、前記同時復号選択手段によって同時復号が選択された場合は、前記第１および第２の要素符号を同時に復号して繰り返す軟入力軟出力復号手段と、を備えた誤り訂正符号復号装置。
【０１３７】
（付記２）前記同時復号選択手段は、前記インターリーバのサイズが、前記複数の軟入力軟出力復号器の個数の倍数ではない場合に前記第１および第２の要素符号の同時復号を選択することを特徴とする付記１に記載の誤り訂正符号復号装置。
【０１３８】
（付記３）前記同時復号選択手段は、前記インターリーバのサイズが予め定められた値よりも小さい場合に前記第１および第２の要素符号の同時復号を選択することを特徴とする付記１に記載の誤り訂正符号復号装置。
【０１３９】
（付記４）前記同時復号選択手段は、前記インターリーバのサイズがあらかじめ定められた値である場合に前記第１および第２の要素符号の同時復号を選択することを特徴とする付記１に記載の誤り訂正符号復号装置。
【０１４０】
（付記５）前記同時復号選択手段によって前記同時復号が選択された場合に、前記受信情報格納手段は、前記受信情報のうち前記情報に対応する情報受信値を二重に格納し、前記外部情報格納手段は、前記第１の要素符号の復号結果である外部情報を、前記第２の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納し、前記第２の要素符号の復号結果である外部情報を、前記第１の要素符号を復号する前記軟入力軟出力復号器によって読み込まれるよう格納することを特徴とする付記１から付記４のいずれかに記載の誤り訂正符号復号装置。
【０１４１】
（付記６）前記情報受信値および前記外部情報を、前記同時復号選択手段の選択結果に応じたサイズで置換して、前記受信情報格納手段および前記外部情報格納手段と前記軟入力軟出力復号手段との間で入出力する置換手段をさらに備えたことを特徴とする付記１から付記５のいずれかに記載の誤り訂正符号復号装置。
【０１４２】
（付記７）前記同時復号選択手段によって前記同時復号が選択された場合に、前記第１および第２のいずれかの要素符号の軟出力に基づいて硬判定を行う硬判定手段をさらに備えたことを特徴とする付記１から付記６のいずれかに記載の誤り訂正符号復号装置。
【０１４３】
（付記８）前記軟入力軟出力復号手段は、前記第１および第２の要素符号の軟入力軟出力復号をウィンドウを用いて局所的に実行し、前記同時復号選択手段によって前記同時復号が選択された場合には、前記ウィンドウのサイズを変更することを特徴とする付記１から付記７のいずれかに記載の誤り訂正符号復号装置。
【０１４４】
（付記９）前記軟入力軟出力復号手段は、さらに符号化率に基づいて前記ウィンドウのサイズを決定することを特徴とする付記１から付記８のいずれかに記載の誤り訂正符号復号装置。
【０１４５】
（付記１０）情報の畳込み符号である第１の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第２の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置が、前記インターリーバのサイズに応じて前記第１および第２の要素符号を同時復号するか否かを選択し、前記受信情報を、前記同時復号の選択結果に応じた位置で受信情報格納手段に格納し、前記第１および第２の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納し、前記第１および第２の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第１の要素符号の復号および前記第２の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第１および第２の要素符号を同時に復号して繰り返す、誤り訂正符号復号方法。
【０１４６】
（付記１１）情報の畳込み符号である第１の要素符号と、インターリーバによって置換された前記情報の畳込み符号である第２の要素符号と、前記情報とを含む符号化情報の受信情報に対して繰り返し復号を実行する誤り訂正符号復号装置に、前記インターリーバのサイズに応じて前記第１および第２の要素符号を同時復号するか否かを選択する同時復号選択ステップと、前記受信情報を、前記同時復号選択手段の選択結果に応じた位置で受信情報格納手段に格納する受信情報格納ステップと、前記第１および第２の要素符号にそれぞれ対応する外部情報を、前記同時復号の選択結果に応じた位置で外部情報格納手段に格納する外部情報格納ステップと、前記第１および第２の要素符号が分割された各ブロックに対して前記受信情報および前記外部情報に基づく軟入力軟出力復号を並列に実行して前記外部情報をそれぞれ出力する複数の軟入力軟出力復号器を用いて、前記同時復号を選択しなかった場合は、前記第１の要素符号の復号および前記第２の要素符号の復号を順次実行して繰り返し、前記同時復号を選択した場合は、前記第１および第２の要素符号を同時に復号して繰り返す軟入力軟出力復号ステップと、を実行させる誤り訂正符号復号プログラム。
【０１４７】
以上、各実施の形態を参照して本願発明を説明したが、本願発明は上記各実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４８】
この出願は、２０１０年３月８日に出願された日本出願特願２０１０−０５０２４６号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１４９】
本発明は、装置規模の増大を抑えながら多様なインターリーバサイズに対して効率よく復号処理を行うことができる誤り訂正符号復号装置を提供することができ、モバイル用途等で多くのインターリーバサイズに対応しているターボ符号に対する復号装置として好適である。
【符号の説明】
【０１５０】
１    誤り訂正符号復号装置
２    同時復号選択部
３  受信情報格納部
４  外部情報格納部
５  軟入力軟出力復号部
２０  ターボ符号復号装置
１００  ターボ符号器
１０１、１０２  符号化器
１０３  インターリーバ
１１０  ターボ符号復号器
６０１、６０２  置換処理部
８００  アドレス生成部
８０１  情報受信値メモリ
８０２  パリティ受信値メモリ
８０３  外部情報メモリ
９００  置換部
９０１、９０２、９０３  置換処理部
９０４、９０９  セレクタ
９０５、９０６、９０７  逆変換処理部
９０８  スワップ処理部
１００１  硬判定部
１００２  テンポラリメモリ
１００３  アドレス制御部
１００４  硬判定メモリ
１００５  硬判定回路
１１００  同時復号選択部
【図１】
2011111654.tif 000003
【図２】
2011111654.tif 000004
【図３】
2011111654.tif 000005
【図４】
2011111654.tif 000006
【図５】
2011111654.tif 000007
【図６】
2011111654.tif 000008
【図７】
2011111654.tif 000009
【図８】
2011111654.tif 000010
【図９】
2011111654.tif 000011
【図１０】
2011111654.tif 000012
【図１１】
2011111654.tif 000013
【図１２】
2011111654.tif 000014
【図１３】
2011111654.tif 000015
【図１４】
2011111654.tif 000016
【国際調査報告】
2011111654.tif 000017
2011111654.tif 000018