(57)【要約】【課題】軟入力軟出力の復号を行う復号装置の回路規模を小さくする。【解決手段】入力データitを符号化した符号化データXtがチャネルを経由することにより得られる軟値のデータである入力軟値データYtを、入力データitの尤度を表す軟値のデータである出力軟値データλtに復号するSISO復号器６７において、入力軟値データXtから、出力軟値データλtを求める所定の計算に用いるデータを記憶する記憶手段として、レジスタを用いて構成された、データの書き込みと読み出しとを同時にすることが可能な第１γメモリ２０３ないし第４γメモリ２０６、及びβメモリ２１３を採用する。本発明は、例えば、光ディスク装置等に適用できる。【選択図】図１０
2008182442.tif 000002
【特許請求の範囲】
【請求項１】
入力データを符号化した符号化データがチャネルを経由することにより得られる軟値のデータである入力軟値データを、前記入力データの尤度を表す軟値のデータである出力軟値データに復号する復号装置において、
前記入力軟値データから、前記出力軟値データを求める所定の計算を行う計算手段と、
前記所定の計算に用いるデータを記憶する記憶手段と
を備え、
前記記憶手段は、レジスタを用いて構成された、データの書き込みと読み出しとを同時にすることが可能なメモリである
復号装置。
【請求項２】
前記計算手段は、SW-Log-BCJRアルゴリズム、又はSW-Max-Log-BCJRアルゴリズムにしたがった計算を行う
請求項１に記載の復号装置。
【請求項３】
前記記憶手段として、
トレリスにおいて、時刻t-1に、状態m'にいて、次の時刻tの入力データitがある値iであるときに、ある入力軟値データYtが観測され、状態mに遷移する出力遷移確率γt(m',m,i)を表すデータを記憶する４つのγメモリと、
ある時刻t+1以降に、前記入力軟値データの系列Yt+1,Yt+2,・・・が観測されるときに、前記トレリスにおいて、時刻tに、状態mにいる後ろ向き確率βt(m)を表すデータを記憶する１つのβメモリと
を有する
請求項２に記載の復号装置。
【請求項４】
前記計算手段として、
前記出力遷移確率γt(m',m,i)を表すデータを計算するγ計算部と、
前記出力遷移確率γt(m',m,i)を表すデータを用いて、前記入力軟値データの系列Y1,Y2,・・・,Ytが観測されたときに、前記トレリスにおいて、時刻tに、状態mにいる前向き確率αt(m)を表すデータを計算するα計算部と、
時刻tに、状態mにいて、次の時刻t+1に、状態m'に遷移する前記出力遷移確率γt+1(m,m',i)を表すデータを用いて、前記後ろ向き確率βt(m)を表すデータを計算するβ計算部と、
前記出力遷移確率γt(m',m,i)、時刻t-1に状態m'にいる前記前向き確率αt-1(m')、及び前記後ろ向き確率βt(m)を表すデータを用いて、時刻tの入力データitがある値iであることの尤度を表す前記出力軟値データλtを計算するλ計算部と
を有し、
前記γ計算部で計算された前記出力遷移確率γt(m',m,i)を表すデータの書き込みと、前記前向き確率αt(m)を表すデータの計算、及び前記出力軟値データλtの計算に必要な前記出力遷移確率γt(m',m,i)を表すデータの読み出しとが同時に行われるように、前記γメモリに対するデータの書き込みと読み出しとを制御するγメモリ制御部と、
前記β計算部で計算された前記後ろ向き確率βt(m)を表すデータの書き込みと、前記出力軟値データλtの計算に必要な前記後ろ向き確率βt(m)を表すデータの読み出しとが同時に行われるように、前記βメモリに対するデータの書き込みと読み出しとを制御するβメモリ制御部と
をさらに備える請求項３に記載の復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置に関し、特に、軟値のデータである入力軟値データを、他の軟値のデータである出力軟値データに復号する、軟入力軟出力の復号装置の回路規模を小さくすることができるようにする復号装置に関する。
【背景技術】
【０００２】
ディスク等の記録媒体にデータを記録する場合には、誤り訂正等のために、データは、符号化されて記録される。
【０００３】
図１は、従来の光ディスク装置の一例の構成を示している。
【０００４】
図１の光ディスク装置においては、データの記録時には、図示せぬ光ディスクに記録する記録対象のデータが、リードソロモン符号器１１に供給される。
【０００５】
ここで、記録対象のデータは、ビット列であり、各ビットは、0又は1のうちのいずれかの値をとる。
【０００６】
リードソロモン符号器１１は、記録対象のデータをリードソロモン符号に符号化し、0又は1のうちのいずれかの値をとるビット列としてのリードソロモン符号を、変調符号器１２に供給する。
【０００７】
変調符号器１２は、リードソロモン符号器１１からのリードソロモン符号を、例えば、17PP符号(Parity Preserve/Prohibit Repeated Minimum Transition Runlength)等の変調符号に変調符号化し、その変調符号として、0又は1のうちのいずれかの値をとるビット列としての17PP符号を、NRZI(Non Return to Zero Inversion)変換器１３に供給する。
【０００８】
ここで、変調符号器１２での変調符号化は、例えば、リードソロモン符号と17PP符号とを対応付けた変換テーブルを用いて行うことができる。
【０００９】
また、17PP符号は、1と1との間に、１ないし７の範囲のいずれかの個数の0が現れ、1が連続しない符号（Run Length Limited Code(1,7)）である。
【００１０】
NRZI変換器１３は、変調符号器１２からの17PP符号をNRZI変換し、その結果得られるNRZI信号が、記録再生系１４に供給される。記録再生系１４は、NRZI変換器１３からのNRZI信号を、図示せぬ光ディスクにピットの形で書き込む。
【００１１】
ここで、NRZI変換では、NRZI変換器１３に対する入力が0である場合には、直前の出力が、そのままNRZI信号として出力され、入力が1である場合には、直前の出力が反転されて、NRZI信号として出力される。
【００１２】
したがって、NRZI変換器１３に対する入力が、17PP符号のように、1と1との間に、少なくとも１個の0が入るビット列ではない、例えば、1が連続したビット列11111111である場合には、NRZI変換器１３の出力は、ビット列10101010となって、そのビット列10101010に対応するピットが、光ディスクに形成される。そして、ビット列10101010に対応するピットに対して、光ディスクから再生される再生信号は、1ビットに相当する短い周期で、H(High)レベルとL(Low)レベルとが切り換わる、振幅の小さい信号となるため、再生信号の信号レベルを検出しにくくなる。
【００１３】
一方、NRZI変換器１３に対する入力が、1と1との間に、少なくとも１個の0が入る17PP符号であり、例えば、1と0とが交互に並んだ10101010である場合には、NRZI変換器１３の出力は、11001100となって、そのビット列11001100に対応するピットが、光ディスクに形成される。そして、ビット列11001100に対応するピットに対して、光ディスクから再生される再生信号は、2ビットに相当するある程度長い周期で、HレベルとLレベルとが切り換わる、振幅がある程度大きい信号となるため、再生信号の信号レベルを検出しやすくなる。
【００１４】
なお、NRZI変換器１３に対する入力が、0が長期に亘って連続するビット列である場合には、光ディスクから再生される再生信号は、長期間に亘って、レベルの変化が緩やかな信号となって、光ディスク装置の各ブロックの動作に必要なクロック信号を生成するPLL(Phase Lock Loop)のロックに時間を要する、あるいはPLLがロックしない、といった問題が生じるので、NRZI変換器１３に対する入力は、17PP符号のように、0が連続する最大の個数も、ある程度の値に制限される。
【００１５】
次に、図１の光ディスク装置においては、データの再生時には、記録再生系１４が、光ディスクから再生信号を再生する。記録再生系１４は、図示せぬA/D(Analog/Digital)変換器や等化器等を有し、光ディスクからの再生信号をA/D変換し、さらに、波形等化等の処理を施して、軟値のデータを出力する。なお、記録再生系１４は、その他、図示せぬPLL回路を有し、PLL回路では、再生信号に基づいて、光ディスク装置の各ブロックを動作させるためのクロック信号が生成される。
【００１６】
記録再生系１４が出力する軟値のデータは、ビタビ復号器１６に供給される。
【００１７】
ここで、図１の光ディスク装置において、光ディスクに対する記録再生を行う記録再生系１４は、PR121チャネル、PR1221チャネル、又はPR12221チャネルなどのPR(Partial Response)チャネルと、AWGN(Additive White Gaussian Noise)チャネルとから構成されると考えることができる。
【００１８】
したがって、NRZI変換器１３が出力するNRZI信号は、記録再生系１４において、PRチャネルを介し、さらに、AWGNチャネルを介することにより、ノイズが付加され、軟値のデータとして出力される。
【００１９】
PRチャネルは、時間の経過にしたがって遷移する状態（ステート）と、ある時刻t-1の状態から次の時刻tの状態への遷移を表す枝とで表現されるトレリスで表現することができる。
【００２０】
そして、トレリスで表現することができるPRチャネルに、NRZI変換器１３を含めたチャネルsys#11も、トレリスで表現することができる。
【００２１】
トレリスで表現することができるチャネルを経由して（介して）読み出しがされた軟値のデータは、最尤復号により硬値のデータに復号することができる。
【００２２】
そこで、ビタビ復号器１６は、記録再生系１４からの軟値のデータを、最尤復号の１つであるビタビ復号によって、硬値のデータである17PP符号に復号し、変調復号器１７に供給する。
【００２３】
変調復号器１７は、ビタビ復号器１６からの、0又は1のうちのいずれかの値をとるビット列である17PP符号を、例えば、リードソロモン符号と17PP符号とを対応付けた変換テーブルを用いて、リードソロモン符号に復号し、リードソロモン復号器１８に供給する。
【００２４】
リードソロモン復号器１８は、変調復号器１７からの、0又は1のうちのいずれかの値をとるビット列であるリードソロモン符号を、元の、0又は1のうちのいずれかの値をとるデータ(記録対象のデータ)に復号して出力する。
【００２５】
ところで、上述のように、ビタビ復号器１６は、軟値のデータを、硬値のデータに復号するが、近年、軟値のデータを他の軟値のデータに復号する、軟入力軟出力の復号を行う軟入力軟出力復号装置を採用することの要請が高まってきている。
【００２６】
軟入力軟出力復号装置の実装アルゴリズムには、例えば、BCJR(Bahl-Cocke-Jeinek-Raviv)アルゴリズム、Max-Log-BCJRアルゴリズム、SW-Max-Log-BCJRアルゴリズム等がある。
【００２７】
例えば、BCJRアルゴリズムは、畳み込み符号の復号後のシンボル誤り率を最小にする復号法として知られている（例えば、非特許文献１を参照）。
【００２８】
BCJRアルゴリズムでは、復号結果として各シンボルを出力するのではなく、各シンボルの尤度を出力することができる。
【００２９】
このようなシンボルの尤度の出力は、軟出力(soft-output)と呼ばれる。
【００３０】
近年、連接符号の内符号の復号出力や、繰り返し復号法の各繰り返しの復号出力を、軟出力とすることで、シンボル誤り確率を小さくする研究がされており、そのような軟出力を復号出力とする、軟入力軟出力の復号に適した復号法として、BCJRアルゴリズムが注目されるようになった。
【００３１】
図２は、BCJRアルゴリズムを説明する通信路のモデル（通信路モデル）を示している。
【００３２】
図２の通信路モデルは、畳み込み符号器２１、無記憶通信路２２、及び復号器２３で構成され、ディジタルの情報（データ）を畳み込み符号化し、雑音がある無記憶通信路（チャネル）を介して得られたデータを復号する。
【００３３】
すなわち、畳み込み符号器２１には、畳み込み符号化の対象の入力データitが供給される。ここで、tは時刻を表し、入力データitは、時刻tに、畳み込み符号器２１に供給される畳み込み符号化の対象のデータである。
【００３４】
畳み込み符号器２１は、そこに供給される入力データitを畳み込み符号化し、入力データitの畳み込み符号化結果としての符号化データXtを出力する。符号化データXtは、無記憶通信路２２を経由する（介する）ことにより、軟値のデータである入力軟値データYtとなって、復号器２３に供給される。復号器２３では、入力軟値データYtを、入力データitの尤度を表す軟値のデータである出力軟値データλtに復号する軟入力軟出力の復号が行われる。
【００３５】
図３は、図２の畳み込み符号器２１を表すトレリスを示している。
【００３６】
トレリスは、上述したように、時間の経過にしたがって遷移する状態Stと、ある時刻t-1の状態St-1から次の時刻tの状態Stへの遷移を表す枝とで表現される。
【００３７】
なお、畳み込み符号器２１は、図示せぬシフトレジスタを内蔵し、そのシフトレジスタを用いて畳み込み符号化を行うが、トレリスの状態の個数(時刻tの状態数)Mは、畳み込み符号器２１が内蔵するシフトレジスタが取り得る内容の数（シフトレジスタが記憶する値のパターン数）に等しい。
【００３８】
図３のトレリスにおいては、時刻t-1の状態St-1が、状態m'(m'=0,1,・・・,M-1)であり、次の時刻tに、入力データitに対して、符号化データXtが観測され、時刻tの状態Stが、状態m(m=0,1,・・・,M-1)に遷移している。
【００３９】
ここで、時刻tにおいて、状態m'から状態mに遷移する状態遷移確率pt(m|m')を、式（１）で表す。
【００４０】
【数１】
2008182442.tif 000003
・・・（１）
【００４１】
なお、Pr{A|B}は、事象Bが起こった条件のもので、事象Aが起こる条件付き確率を表す。
【００４２】
いま、畳み込み符号化が、時刻t=0の状態S0=0から開始され、符号化データXtの系列（時系列）X1τ=X1,X2,・・・,Xτを出力し、時刻t=τの状態Sτ=0で終了することとする。
【００４３】
さらに、無記憶通信路２２が、符号化データ（の系列）X1τの入力に対して、入力軟値データYtの系列Y1τ=Y1,Y2,・・・,Yτを出力することとする。
【００４４】
ここで、雑音がある無記憶通信路２２の遷移確率は、すべての時刻t=1,2,・・・,τについて、式（２）を満たす関数R(|)によって定義される。
【００４５】
【数２】
2008182442.tif 000004
・・・（２）
【００４６】
ここで、関数R(Yj|Xj)は、時刻t=jの符号化データXjが、無記憶通信路２２を介することにより、入力軟値データYjに変換される変換確率を表す。
【００４７】
そして、入力データitが取り得る値が、例えば、0又は1であるとすると、入力軟値データ（の系列）Y1τ(=Y1,Y2,・・・,Yτ)が観測された場合の、時刻tの入力データitの尤度（を表す軟値のデータである出力軟値データ）λtは、入力軟値データY1τが観測されたときに、入力データitが1である確率Pr{it=1|Y1τ}と、入力軟値データY1τが観測されたときに、入力データitが0である確率Pr{it=0|Y1τ}とを用いて、式（３）で表される。
【００４８】
【数３】
2008182442.tif 000005
・・・（３）
【００４９】
式（３）の出力軟値データλtを求めるために、確率αt(m)，βt(m)、及びγt(m',m,i)を、次式で定義する。
【００５０】
【数４】
2008182442.tif 000006
・・・（４）
【００５１】
【数５】
2008182442.tif 000007
・・・（５）
【００５２】
【数６】
2008182442.tif 000008
・・・（６）
【００５３】
式（４）の確率αt(m)は、入力軟値データYtの系列全体Y1τの先頭の時刻である1から、ある時刻tまでの間において、入力軟値データの系列Y1t=Y1,Y2,・・・,Ytが観測されたときに、トレリスにおいて、時刻tに、状態mにいる(St=m)確率Pr{St=m;Y1t}であり、以下、適宜、前向き確率という。なお、Pr{A;B}は、事象AとBとがともに起こる確率を表す。
【００５４】
式（５）の確率βt(m)は、ある時刻t+1から、入力軟値データYtの系列全体Y1τの最後の時刻τまでの間において、入力軟値データの系列Yt+1τ=Yt+1,Yt+2,・・・,Yτが観測されるときに、トレリスにおいて、時刻tに、状態mにいる確率（時刻tに、状態mにいて、その後の時刻t+1から時刻τまでの間に、入力軟値データの系列Yt+1τ=Yt+1,Yt+2,・・・,Yτが観測される確率）Pr{Yt+1τ|St=m}であり、以下、適宜、後ろ向き確率という。
【００５５】
式（６）の確率γt(m',m,i)は、トレリスにおいて、時刻t-1に、状態m'にいて、次の時刻tの入力データitがある値iであるときに、ある入力軟値データYtが観測され、時刻tに、状態mに遷移する確率（枝メトリック）Pr{St=m;Yt;it=i|St-1=m'}であり、以下、適宜、出力遷移確率という。
【００５６】
なお、前向き確率αt(m)は、符号化の開始時(t=0)の状態S0=0から、入力軟値データY1t=Y1,Y2,・・・,Ytをもとに、時系列順に算出した時刻t-1における各状態0,1,・・・,M-1の通過確率に対応する。
【００５７】
また、後ろ向き確率βt(m)は、符号化の終了時(t=τ)の状態Sτ=0から、入力軟値データの系列Yt+1τ=Yt+1,Yt+2,・・・,Yτをもとに、時系列の逆順に算出した時刻tにおける各状態0,1,・・・,M-1の通過確率に対応する。
【００５８】
さらに、出力遷移確率γt(m',m,i)は、時刻tにおける入力軟値データYtと、入力データitが値iである入力確率とをもとに算出した、時刻tに、状態m'から状態mに遷移するトレリスの各枝の出力の受信確率に対応する。
【００５９】
ここで、図４は、状態の個数Mが４個である場合の、出力遷移確率γt(m',m,i)を示している。
【００６０】
ここでは、上述したように、入力データitが取り得る値が0又は1の２通りであるので、時刻t-1のある１つの状態St-1から、時刻tの状態Stへの遷移の仕方も２通りある。そして、状態の個数Mが４個であるので、時刻t-1の状態St-1から、時刻tの状態Stへの遷移の仕方、つまり、時刻t-1の状態St-1から、時刻tの状態Stへの枝は、８通り（＝２通り×４個）だけあり、出力遷移確率γt(m',m,i)は、その８通りの枝それぞれを通る確率を表す。
【００６１】
式（３）の出力軟値データλtは、前向き確率αt(m)、後ろ向き確率βt(m)、及び出力遷移確率γt(m',m,i)を用い、式（７）によって計算することができる。
【００６２】
【数７】
2008182442.tif 000009
・・・（７）
【００６３】
ところで、式（４）の時刻tの前向き確率αt(m)は、その１時刻前の時刻t-1の前向き確率αt-1(m')と、時刻tの入力データitが値iであるときに、時刻t-1の状態St-1=m'から、時刻tの状態St=mに遷移する出力遷移確率γt(m',m,i)とを用いて、式（８）で表すことができる。
【００６４】
【数８】
2008182442.tif 000010
・・・（８）
【００６５】
ここで、図２の通信路モデルにおいて、畳み込み符号化は、上述したように、時刻t=0の状態S0=0から開始されるので、時刻t=0の前向き確率α0(m)は、式（９）で表される。
【００６６】
【数９】
2008182442.tif 000011
・・・（９）
【００６７】
また、式（５）の時刻tの後ろ向き確率βt(m)は、その１時刻後の時刻t+1の後ろ向き確率βt+1(m')と、時刻t+1の入力データit+1が値iであるときに、時刻tの状態St=mから、時刻t+1の状態St+1=m'に遷移する出力遷移確率γt+1(m,m',i)とを用いて、式（１０）で表すことができる。
【００６８】
【数１０】
2008182442.tif 000012
・・・（１０）
【００６９】
ここで、図２の通信路モデルにおいて、畳み込み符号化は、上述したように、時刻t=τの状態Sτ=0で終了するので、時刻t=τの後ろ向き確率βτ(m)は、式（１１）で表される。
【００７０】
【数１１】
2008182442.tif 000013
・・・（１１）
【００７１】
さらに、式（６）の出力遷移確率γt(m',m,i)は、時刻t-1の状態St-1=m'から、時刻tの状態St=mに遷移する状態遷移確率pt(m|m')（式（１））と、値iの入力データitを畳み込み符号化することにより得られる符号化データ（状態St-1=m'から状態St=mに遷移するときに、畳み込み符号器２１が出力する符号化データ）Xが、無記憶通信路２２を介することにより、時刻tの入力軟値データYtに変換される変換確率R(Yt|X)とを用いて、式（１２）で表される。
【００７２】
【数１２】
2008182442.tif 000014
・・・（１２）
【００７３】
図２の復号器２３では、式（７）の出力軟値データλtが、式（８）ないし式（１２）にしたがって求められる。
【００７４】
すなわち、復号器２３では、入力軟値データYtを受信するごとに、式（１２）にしたがい、出力遷移確率γt(m',m,i)が求められ、さらに、その出力遷移確率γt(m',m,i)を用いて、式（８）（式（９））にしたがい、前向き確率αt(m)が求められる。
【００７５】
さらに、復号器２３は、入力軟値データの系列Y1τすべてを受信すると、出力遷移確率γt+1(m',m,i)を用いて、式（１０）（式（１１））にしたがい、後ろ向き確率βt(m)を求める。
【００７６】
そして、復号器２３は、すべての時刻t=1,・・・,τと、すべての状態m=0,1,・・・,M-1について求められた前向き確率αt(m)、後ろ向き確率βt(m)、及び出力遷移確率γt(m',m,i)を用いて、式（７）にしたがい、すべての時刻t=1,・・・,τについての出力軟値データλtを求める。
【００７７】
BCJRアルゴリズムによれば、以上のようにして、出力軟値データλtが求められる。
【００７８】
ところで、BCJRアルゴリズムでは、積演算を含むために、演算量が大となる。また、BCJRアルゴリズムでは、符号化データが時刻t=τで終結している必要があるために、より長く続く符号化データ（連続データ）を復号することが困難である。
【００７９】
そこで、積演算をなくして演算量を削減する軟入力軟出力復号の方法として、Max-Log-BCJRアルゴリズムや、Log-BCJRアルゴリズムが提案されている（例えば、非特許文献２を参照）。なお、非特許文献２では、Max-Log-BCJRアルゴリズム、又はLog-BCJRアルゴリズムは、それぞれ、Max-Log-MAPアルゴリズム、又はlog-MAPアルゴリズムと呼ばれている。
【００８０】
また、連続データを復号する軟入力軟出力復号の方法として、スライディングウインドウ処理を行うSW-BCJRアルゴリズムが提案されている（例えば、特許文献１や非特許文献３を参照）。
【００８１】
以下、Max-Log-BCJRアルゴリズム、Log-BCJRアルゴリズム、及びSW-BCJRアルゴリズムについて、簡単に説明する。
【００８２】
まず、Max-Log-BCJRアルゴリズムでは、確率を、ネイピア数(Napier's constante)であるeを底とする対数（自然対数）で表し、確率の積演算を、式（１３）に示すように、対数の和演算に置き換え、確率の和演算を、式（１４）に示すように、対数の最大値演算で近似する。
【００８３】
【数１３】
2008182442.tif 000015
・・・（１３）
【００８４】
【数１４】
2008182442.tif 000016
・・・（１４）
【００８５】
なお、max(x,y)は、xとyの中の最大値を選択することを表す。
【００８６】
いま、前向き確率（を表すデータ）として、式（１５）のαt'(m)を、後ろ向き確率（を表すデータ）として、式（１６）のβt'(m)を、出力遷移確率（を表すデータ）として、式（１７）のγt'(m',m,i)を、それぞれ採用することとする。
【００８７】
【数１５】
2008182442.tif 000017
・・・（１５）
【００８８】
【数１６】
2008182442.tif 000018
・・・（１６）
【００８９】
【数１７】
2008182442.tif 000019
・・・（１７）
【００９０】
この場合、式（１５）の前向き確率αt'(m)は、式（１５）に式（８）を代入することにより、式（１８）で近似することができる。
【００９１】
【数１８】
2008182442.tif 000020
・・・（１８）
【００９２】
また、式（１６）の後ろ向き確率βt'(m)は、式（１６）に式（１０）を代入することにより、式（１９）で近似することができる。
【００９３】
【数１９】
2008182442.tif 000021
・・・（１９）
【００９４】
さらに、式（１７）の出力遷移確率γt'(m',m,i)は、式（１７）に式（１２）を代入することにより、式（２０）で表すことができる。
【００９５】
【数２０】
2008182442.tif 000022
・・・（２０）
【００９６】
ここで、式（１８）及び式（１９）において、i=0,1についてのmax（下部に、i=0,1が記載されているmax）は、その後に続く値が、変数iが0のときにとる値と、変数iが1のときにとる値との中の、最大値を選択することを表す。
【００９７】
また、式（１８）及び式（１９）において、m'についてのmaxは、その後に続く値が、各値の変数m'に対してとる値の中の最大値を選択することを表す。なお、m'についてのmaxは、m'が取り得る値としての状態0,1,・・・,M-1のうちの、入力データit=iがあったときに、状態mへの遷移が存在する状態m'を対象に求められる。
【００９８】
式（１５）ないし式（１７）と同様に、出力軟値データとして、式（２１）のλt'を採用することとすると、式（２１）の出力軟値データλt'は、式（２１）に、式（７）を代入することにより、式（２２）で近似することができる。
【００９９】
【数２１】
2008182442.tif 000023
・・・（２１）
【０１００】
【数２２】
2008182442.tif 000024
・・・（２２）
【０１０１】
ここで、式（２２）において、m=0,1,・・・,M-1についてのmaxは、その後に続く値が、変数mが0,1,・・・,M-1それぞれのときにとる値の中の最大値を選択することを表す。
【０１０２】
また、式（２２）において、m'についてのmaxは、その後に続く値が、各値の変数m'に対してとる値の中の最大値を選択することを表す。なお、式（２２）右辺の第１項のm'についてのmaxは、m'が取り得る値としての状態0,1,・・・,M-1のうちの、入力データit=1があったときに、状態mへの遷移が存在する状態m'を対象に求められる。また、第２項のm'についてのmaxは、m'が取り得る値としての状態0,1,・・・,M-1のうちの、入力データit=0があったときに、状態mへの遷移が存在する状態m'を対象に求められる。
【０１０３】
図２の復号器２３では、式（２２）の出力軟値データλtを、式（１８）ないし式（２０）を用いて求めることができる。
【０１０４】
すなわち、復号器２３では、入力軟値データYtを受信するごとに、式（２０）にしたがい、出力遷移確率γt'(m',m,i)が求められ、さらに、その出力遷移確率γt'(m',m,i)を用いて、式（１８）にしたがい、前向き確率αt'(m)が求められる。
【０１０５】
さらに、復号器２３は、入力軟値データの系列Y1τすべてを受信すると、出力遷移確率γt+1'(m',m,i)を用いて、式（１９）にしたがい、後ろ向き確率βt'(m)を求める。
【０１０６】
そして、復号器２３は、すべての時刻t=1,・・・,τと、すべての状態m=0,1,・・・,M-1について求められた前向き確率αt'(m)、後ろ向き確率βt'(m)、及び出力遷移確率γt'(m',m,i)を用いて、式（２２）にしたがい、すべての時刻t=1,・・・,τについての出力軟値データλt'を求める。
【０１０７】
Max-Log-BCJRアルゴリズムによれば、以上のようにして、出力軟値データλt'が求められる。
【０１０８】
Max-Log-BCJRアルゴリズムには、積演算が含まれていないため、BCJRアルゴリズムに比較して、演算量を大幅に減らすことができる。
【０１０９】
ところで、和演算ex+eyの対数log(ex+ey)については、次式が成り立つ。
【０１１０】
【数２３】
2008182442.tif 000025
・・・（２３）
【０１１１】
式（２３）右辺のlog(1+e-|x-y|)は、|x-y|を変数とする１次元の関数となるので、各値の変数|x-y|と、その値の変数|x-y|に対する関数log(1+e-|x-y|)の値（関数値）とを対応付けたテーブル（以下、適宜、関数テーブルという）を準備しておけば、和演算ex+eyの対数log(ex+ey)は、関数テーブルを用い、式（２３）にしたがって正確に求めることができる。
【０１１２】
Log-BCJRアルゴリズムでは、Max-Log-BCJRアルゴリズムにおいて式（１４）で近似される確率の和演算が、式（２３）にしたがって正確に求められる。
【０１１３】
したがって、Log-BCJRアルゴリズムでは、Max-Log-BCJRアルゴリズムと比較すると、式（２３）右辺のlog(1+e-|x-y|)の加算分の演算量が増加するが、それでも、Max-Log-BCJRアルゴリズムと同様に、積演算は不要であり、さらに、式（２２）で求められる出力軟値データλt'は、関数テーブルによって、式（２３）右辺のlog(1+e-|x-y|)を求めるときに生じる量子化誤差を無視することができるとすれば、BCJRアルゴリズムで求められる式（７）のλtの対数をとった値に一致する。
【０１１４】
次に、SW-BCJRアルゴリズムについて説明する。
【０１１５】
BCJRアルゴリズムでは、入力軟値データの系列Y1τすべてを受信してからでないと、後ろ向き確率βt(m)を求めることができないため、符号化データが時刻t=τで終結している必要があり、そのため、連続データを復号することが困難である。
【０１１６】
そこで、SW-BCJRアルゴリズムでは、ビタビ復号と同様に、打ち切り長Dを導入し、時刻t-Dから打ち切り長Dだけ後の時刻tの後ろ向き確率βt(m)に、初期値として、例えば、1/M（状態の個数M分の１）を与えることで、時刻t-Dの出力軟値データλt-Dが求められる。
【０１１７】
すなわち、図５は、SW-BCJRアルゴリズムを説明する図である。
【０１１８】
SW-BCJRアルゴリズムでは、時刻t=0の前向き確率α0'(m)の初期化が、例えば、BCJRアルゴリズムと同様に、式（９）にしたがって行われた後、入力軟値データYtを受信するごとに、以下の処理が行われ、これにより、連続データにつき、出力軟値データが求められる。
【０１１９】
すなわち、SW-BCJRアルゴリズムでは、時刻tの入力軟値データYtが受信されると、式（１２）にしたがい、出力遷移確率γt(m',m,i)が求められる。
【０１２０】
また、後ろ向き確率βt(m)が、式（１１）を用いずに、すべての状態m=0,1,・・・,M-1について、1/Mに初期化される。
【０１２１】
そして、時刻tから、打ち切り長Dだけ時間的に遡った時刻（前の時刻）t-Dの後ろ向き確率βt-D(m)が、既に求められている出力遷移確率γt-D+1(m',m,i),γt-D+2(m',m,i),・・・,γt(m',m,i)と、後ろ向き確率βt(m)の初期値1/Mとを用い、式（１０）にしたがって求められる。
【０１２２】
さらに、時刻t-Dの後ろ向き確率βt-D(m)、及び、１時刻前の時刻t-1において求められた時刻t-D-1の前向き確率αt-D-1(m)、さらには、打ち切り長Dだけ前の時刻t-Dにおいて時刻t-Dの入力軟値データYt-Dを受信したときに求められた時刻t-Dの出力遷移確率γt-D(m',m,i)を用いて、式（２４）にしたがい、時刻t-Dの出力軟値データλt-Dが求められる（図５）。
【０１２３】
【数２４】
2008182442.tif 000026
・・・（２４）
【０１２４】
そして、時刻t-D-1の前向き確率αt-D-1(m)と、時刻t-Dの出力遷移確率γt-D(m',m,i)とを用いて、式（８）にしたがい、時刻t-Dの前向き確率αt-D(m)が求められる。この、時刻t-Dの前向き確率αt-D(m)は、次の時刻t+1の入力軟値データYt+1を受信したときに、式（２４）により、時刻t-D+1の出力軟値データλt-D+1を求めるのに用いられる。
【０１２５】
なお、非特許文献３には、SW-BCJRアルゴリズムの他、SW-BCJRアルゴリズムとLog-BCJRアルゴリズムとを組み合わせたSW-Log-BCJRアルゴリズム、及び、SW-BCJRアルゴリズムとMax-Log-BCJRアルゴリズムとを組み合わせたSW-Max-Log-BCJRアルゴリズム（非特許文献３では、SWAL-BCJRアルゴリズムと呼ばれている）も記載されている。
【０１２６】
SW-Log-BCJRアルゴリズム、及びSW-Max-Log-BCJRアルゴリズムによれば、積演算なしで、連続データを復号することができる。
【０１２７】
ここで、以下、適宜、出力遷移確率γt(m',m,i)（γt(m',m,i)の対数をとったγt'(m',m,i)）も同様）を、単に、γと記載する。同様に、前向き確率αt(m)（αt(m)の対数をとったαt'(m)も同様）を、αと、後ろ向き確率βt(m)（βt(m)の対数をとったβt(m)も同様を、βと、出力軟値データλt（λtの対数をとったλt'も同様）を、λと、それぞれ記載する。
【０１２８】
【特許文献１】国際公開第99/62183号パンフレット
【非特許文献１】Bahl, Cocke, Jelinek and Raviv, "Optimal decoding of liner codes for minimizing symbol error rate", IEEE Trans. Inf. Theory, vol. IT-20, pp. 284-287, Mar. 1974
【非特許文献２】Robertson, Villebrun and Hoeher, "A comparison of optimal and sub-optimal MAP decoding algorithms operating in the log domain", IEEE Int. Conf. on Communications, pp. 1009-1013, June 1995
【非特許文献３】Benedetto and Montorsi, "Soft-output decoding algorithms in iterative decoding of turbo codes", TDA progress Report 42-124, Feb, 1996
【発明の開示】
【発明が解決しようとする課題】
【０１２９】
軟入力軟出力の復号を行う場合には、出力軟値データλを求めるのに、過去に求められた出力遷移確率γと後ろ向き確率βをとっておく必要があるため、BCJRアルゴリズム等を実装する復号装置には、出力遷移確率γと後ろ向き確率βを記憶するメモリが必要となる。
【０１３０】
このようなメモリとしては、一般に、RAM(Random Access Memory)が用いられるが、RAMにおいては、一般に、ワード数が小さいと、データを記憶するメモリセル以外のオーバヘッドが占める割合が大になる。すなわち、ワード数が小さいRAMでは、１ワードあたりのRAMの規模（RAM全体の規模を、RAMのワード数で等分した規模）は、大になる。
【０１３１】
したがって、復号装置に、例えば、SW-Log-BCJRアルゴリズムやSW-Max-Log-BCJRアルゴリズム等の、打ち切り長Dを用いる軟入力軟出力の復号のアルゴリズムを実装する場合には、打ち切り長Dが小さい（短い）と、ワード数が小さいRAMを用いて復号装置を構成することとなって、復号装置の回路規模が、いわば相対的に大になることになる。
【０１３２】
本発明は、このような状況に鑑みてなされたものであり、軟入力軟出力の復号装置の回路規模を小さくすることができるようにするものである。
【課題を解決するための手段】
【０１３３】
本発明の一側面の復号装置は、入力データを符号化した符号化データがチャネルを経由することにより得られる軟値のデータである入力軟値データを、前記入力データの尤度を表す軟値のデータである出力軟値データに復号する復号装置であり、前記入力軟値データから、前記出力軟値データを求める所定の計算を行う計算手段と、前記所定の計算に用いるデータを記憶する記憶手段とを備え、前記記憶手段が、レジスタを用いて構成された、データの書き込みと読み出しとを同時にすることが可能なメモリになっている。
【０１３４】
かかる一側面の復号装置では、前記入力軟値データから、前記出力軟値データを求める所定の計算に用いるデータを記憶する記憶手段が、レジスタを用いて構成され、データの書き込みと読み出しとが同時に行われる。
【発明の効果】
【０１３５】
本発明の一側面によれば、軟入力軟出力の復号装置の回路規模を小さくすることができる。
【発明を実施するための最良の形態】
【０１３６】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【０１３７】
本発明の一側面の復号装置は、
入力データ（例えば、入力データitとしてのLDPC符号）を符号化した符号化データ（例えば、符号化データXt）がチャネル（例えば、図６のAWGNチャネル）を経由することにより得られる軟値のデータである入力軟値データ（例えば、入力軟値データYt）を、前記入力データの尤度を表す軟値のデータである出力軟値データ（例えば、出力軟値データλ）に復号する復号装置であり、
前記入力軟値データから、前記出力軟値データを求める所定の計算を行う計算手段（例えば、図１０のγ計算部１０１や、α計算部１０８、第１β計算部１０９、第２β計算部１１０、λ計算部１１２）と、
前記所定の計算に用いるデータを記憶する記憶手段（例えば、図１０の第１γメモリ２０３や、第２γメモリ２０４、第３γメモリ２０５、第４γメモリ２０６、βメモリ２１３）と
を備え、
前記記憶手段は、レジスタ（例えば、図１１のレジスタ３０３1ないし３０３W）を用いて構成された、データの書き込みと読み出しとを同時にすることが可能なメモリである。
【０１３８】
一側面の復号装置は、
前記記憶手段として、
トレリスにおいて、時刻t-1に、状態m'にいて、次の時刻tの入力データitがある値iであるときに、ある入力軟値データYtが観測され、状態mに遷移する出力遷移確率γt(m',m,i)を表すデータを記憶する４つのγメモリ（例えば、図１０の第１γメモリ２０３、第２γメモリ２０４、第３γメモリ２０５、及び第４γメモリ２０６）と、
ある時刻t+1以降に、前記入力軟値データの系列Yt+1,Yt+2,・・・が観測されるときに、前記トレリスにおいて、時刻tに、状態mにいる後ろ向き確率βt(m)を表すデータを記憶する１つのβメモリ（例えば、図１０のβメモリ２１３）と
を備えることができる。
【０１３９】
一側面の復号装置は、
前記計算手段として、
前記出力遷移確率γt(m',m,i)を表すデータを計算するγ計算部（例えば、図１０のγ計算部１０１）と、
前記出力遷移確率γt(m',m,i)を表すデータを用いて、前記入力軟値データの系列Y1,Y2,・・・,Ytが観測されたときに、前記トレリスにおいて、時刻tに、状態mにいる前向き確率αt(m)を表すデータを計算するα計算部（例えば、図１０のα計算部１０８）と、
時刻tに、状態mにいて、次の時刻t+1に、状態m'に遷移する前記出力遷移確率γt+1(m,m',i)を表すデータを用いて、前記後ろ向き確率βt(m)を表すデータを計算するβ計算部（例えば、図１０の第１β計算部１０９、及び第２β計算部１１０）と、
前記出力遷移確率γt(m',m,i)、時刻t-1に状態m'にいる前記前向き確率αt-1(m')、及び前記後ろ向き確率βt(m)を表すデータを用いて、時刻tの入力データitがある値iであることの尤度を表す前記出力軟値データλtを計算するλ計算部（例えば、図１０のλ計算部１１２）と
を備えることができる。
【０１４０】
そして、この場合、一側面の復号装置は、
前記γ計算部で計算された前記出力遷移確率γt(m',m,i)を表すデータの書き込みと、前記前向き確率αt(m)を表すデータの計算、及び前記出力軟値データλtの計算に必要な前記出力遷移確率γt(m',m,i)を表すデータの読み出しとが同時に行われるように、前記γメモリに対するデータの書き込みと読み出しとを制御するγメモリ制御部（例えば、図１０のγメモリ制御部２０２）と、
前記β計算部で計算された前記後ろ向き確率βt(m)を表すデータの書き込みと、前記出力軟値データλtの計算に必要な前記後ろ向き確率βt(m)を表すデータの読み出しとが同時に行われるように、前記βメモリに対するデータの書き込みと読み出しとを制御するβメモリ制御部（例えば、図１０のβメモリ制御部２１１）と
をさらに備えることができる。
【０１４１】
以下、図面を参照して、本発明の実施の形態について説明する。
【０１４２】
図６は、本発明が適用される光ディスク装置の構成例を示している。
【０１４３】
図６の光ディスク装置においては、データの記録時には、図示せぬ光ディスクに記録する記録対象のデータが、リードソロモン符号器６１に供給される。
【０１４４】
ここで、記録対象のデータは、ビット列であり、各ビットは、0又は1のうちのいずれかの値をとる。
【０１４５】
リードソロモン符号器６１は、記録対象のデータをリードソロモン符号に符号化し、0又は1のうちのいずれかの値をとるビット列としてのリードソロモン符号を、LDPC(Low Density Parity Check)符号器６２に供給する。
【０１４６】
LDPC符号器６２は、リードソロモン符号器６１からのリードソロモン符号を、LDPC符号に符号化し、その結果得られる、0又は1のうちのいずれかの値をとるビット列としてのLDPC符号を、入力データitとして、変調符号器６３に供給する。
【０１４７】
変調符号器６３は、例えば、LDPC符号と17PP符号とを対応付けた変換テーブルを用いて、LDPC符号器６２からの入力データitとしてのLDPC符号を、17PP符号等の変調符号に変調符号化し、0又は1のうちのいずれかの値をとるビット列としての17PP符号を、NRZI変換器６４に供給する。
【０１４８】
NRZI変換器６４は、変調符号器６３からの17PP符号をNRZI変換し、その結果得られるNRZI信号が、記録再生系６５に供給される。記録再生系６５は、NRZI変換器６４からのNRZI信号を、図示せぬ光ディスクにピットの形で書き込む。
【０１４９】
次に、図６の光ディスク装置においては、データの再生時には、記録再生系６５が、光ディスクから再生信号を再生する。記録再生系６５は、図１の記録再生系１４と同様に、図示せぬA/D変換器や、等化器、PLL回路等を有し、光ディスクからの再生信号をA/D変換し、さらに、波形等化等の処理を施して、軟値のデータ(Yt)を出力する。なお、記録再生系６５が内蔵するPLL回路では、再生信号に基づいて、光ディスク装置の各ブロックを動作させるためのクロック信号が生成される。
【０１５０】
記録再生系６５が出力する軟値のデータは、SISO(Soft In Soft Out)復号器６７に供給される。
【０１５１】
ここで、図６の光ディスク装置において、光ディスクに対する記録再生を行う記録再生系６５は、PR121チャネル、PR1221チャネル、又はPR12221チャネルなどのPRチャネルと、AWGNチャネルとから構成されると考えることができる。
【０１５２】
したがって、NRZI変換器６４が出力するNRZI信号は、記録再生系６５において、PRチャネルを介することにより、符号間干渉を受けた信号となり、さらに、AWGNチャネルを介することにより、ノイズが付加され、軟値のデータとして出力される。
【０１５３】
PRチャネルは、トレリスで表現することができ、トレリスで表現することができるPRチャネルに、NRZI変換器６４を含めたチャネルsys#21も、トレリスで表現することができる。
【０１５４】
また、変調符号器６３の入力から出力までのチャネルは、有効な枝と無効な枝、つまり、可能な遷移が時刻によって変化する時変トレリスで表現することができる。
【０１５５】
そして、トレリスで表現することができるチャネルsys#21に、時変トレリスで表現することができる変調符号器６３を含めたチャネルsys#22も、トレリス（時変トレリス）で表現することができる。
【０１５６】
トレリスで表現することができるチャネルを経由して（介して）得られた軟値のデータは、最尤復号により硬値のデータに復号することができるが、図６の光ディスク装置では、リードソロモン符号器６１の直後に、LDPC符号器６２が設けられており、このため、リードソロモン符号を復号する直前に、LDPC符号を復号する必要がある。そこで、図６の光ディスク装置には、LDPC符号を復号する、後述するLDPC復号器６８が設けられている。
【０１５７】
LDPC復号器６８でのLDPC符号の復号は、LDPC符号の尤度を表す軟値を入力として行われるので（軟入力（Soft-Input）を対象に行われるので）、LDPC復号器６８には、LDPC符号の尤度を表す軟値、すなわち、ここでは、LDPC符号器６２から変調符号器６３への入力データitとしてのLDPC符号の尤度を表す軟値（λt）を入力として与える必要がある。
【０１５８】
このため、SISO復号器６７では、記録再生系６５からの軟値のデータ（入力軟値データYt）を、後段のLDPC復号器６８に与える軟値のデータ（出力軟値データλt）に復号する軟入力軟出力の復号が行われ、その復号によって得られる軟値のデータが、LDPC復号器６８に供給される。なお、SISO復号器６７は、例えば、SW-Log-BCJRアルゴリズム、又はSW-Max-Log-BCJRアルゴリズムにしたがって、軟入力軟出力の復号を行う。
【０１５９】
ここで、SISO復号器６７は、図２の復号器２３に相当し、記録再生系６５のAWGNチャネルは、図２の無記憶通信路２２に相当する。そして、変調符号器６３、NRZI変換器６４、及び記録再生系６５のPRチャネルで構成され、トレリスで表現されるチャネルsys#22は、図２の畳み込み符号器２１に相当する。したがって、チャネルsys#22は、入力データitとしてのLDPC符号を、符号化データXtに符号化する符号器（畳み込み符号器）とみなすことができる。
【０１６０】
LDPC復号器６８は、SISO復号器６７からの軟値のデータを、0又は1のうちのいずれかの値をとるビット列であるリードソロモン符号に復号し、リードソロモン復号器６９に供給する。
【０１６１】
リードソロモン復号器６９は、LDPC復号器６８からの、0又は1のうちのいずれかの値をとるビット列であるリードソロモン符号を、元の、0又は1のうちのいずれかの値をとるデータに復号して出力する。
【０１６２】
次に、図７は、図６の記録再生系６５から供給される軟値のデータを、入力軟値データYtとして、その入力軟値データYtを出力軟値データλtに復号する軟入力軟出力の復号を行うSISO復号器６７の構成例を示している。
【０１６３】
図７のSISO復号器６７では、出力遷移確率γと後ろ向き確率βを記憶するメモリとして、シングルポートのRAMが採用されている。そして、出力遷移確率γを記憶するメモリとして、５個（５バンク）のシングルポートのRAMである第１γRAM１０３、第２γRAM１０４、第３γRAM１０５、第４γRAM１０６、及び第５γRAM１０７が設けられているとともに、後ろ向き確率βを記憶するメモリとして、２個（２バンク）のシングルポートのRAMである第１βRAM１１３、及び第２βRAM１１４が設けられている。
【０１６４】
すなわち、図７のSISO復号器６７は、制御部１００、γ計算部１０１、γRAM制御部１０２、第１γRAM１０３、第２γRAM１０４、第３γRAM１０５、第４γRAM１０６、第５γRAM１０７、α計算部１０８、第１β計算部１０９、第２β計算部１１０、βRAM制御部１１１、λ計算部１１２、第１βRAM１１３、及び第２βRAM１１４から構成されており、例えば、SW-Max-Log-BCJRアルゴリズムにしたがい、入力軟値データYtに対して、その入力軟値データYtの復号結果としての出力軟値データλを、打ち切り長Dの４倍の遅延時間4Dで出力する。
【０１６５】
ここで、出力遷移確率γを記憶するメモリとして、５バンクのシングルポートのRAMを採用するとともに、後ろ向き確率βを記憶するメモリとして、２バンクのシングルポートのRAMを採用し、入力軟値データYtに対して、その入力軟値データYtの復号結果としての出力軟値データλを、打ち切り長Dの４倍の遅延時間4Dで出力する復号装置は、例えば、T. Miyauchi, K. Yamamoto, T. Yokokawa, M. Kan, Y. Mizutani, and M. Hattori, "High-Performance Programmable SISO Decoder VLSI Implementation for Decoding Turbo Codes", in Global Telecommunications Conference, 2001(GLOBECOM'01), San Antonio, TX, USA, vol. 1, 2001, pp. 305-309.に記載されている。
【０１６６】
図７のSISO復号器６７において、制御部１００は、γ計算部１０１、γRAM制御部１０２、α計算部１０８、第１β計算部１０９、第２β計算部１１０、βRAM制御部１１１、及びλ計算部１１２が連携して、入力軟値データYtを出力軟値データλtに復号するための処理を行うように、γ計算部１０１、γRAM制御部１０２、α計算部１０８、第１β計算部１０９、第２β計算部１１０、βRAM制御部１１１、及びλ計算部１１２を制御する。
【０１６７】
γ計算部１０１には、図６の記録再生系６５から、時刻tの入力軟値データYt(D101)が供給される。
【０１６８】
γ計算部１０１は、時刻tの入力軟値データYtに対して、例えば、式（２０）にしたがい、トレリスの時刻tの枝すべて、つまり、時刻t-1の状態St-1から時刻tの状態Stへの遷移を表す枝すべてに対する出力遷移確率γ（の集合）を計算し、データD102として、γRAM制御部１０２に供給する。
【０１６９】
ここで、データD102のビット幅は、SISO復号器６７が対象とするトレリスの枝数と、１つの枝に対する出力遷移確率γのビット数との積［ビット］である。
【０１７０】
γRAM制御部１０２は、γ計算部１０１から供給される出力遷移確率γを、所定の順序で、第１γRAM１０３、第２γRAM１０４、第３γRAM１０５、第４γRAM１０６、又は第５γRAM１０７に書き込む書き込み制御と、その第１γRAM１０３ないし第５γRAM１０７から、出力遷移確率γを、所定の順で読み出す読み出し制御を行う。
【０１７１】
すなわち、γRAM制御部１０２は、第１γRAM１０３に対して、出力遷移確率γを、データD103として読み書きする読み書き制御を行う。同様に、γRAM制御部１０２は、第２γRAM１０４に対して、出力遷移確率γを、データD104として読み書きする読み書き制御を、第３γRAM１０５に対して、出力遷移確率γを、データD105として読み書きする読み書き制御を、第４γRAM１０６に対して、出力遷移確率γを、データD106として読み書きする読み書き制御を、第５γRAM１０７に対して、出力遷移確率γを、データD107として読み書きする読み書き制御を、それぞれ行う。
【０１７２】
そして、第１γRAM１０３ないし第５γRAM１０７は、γRAM制御部１０２の制御にしたがって、出力遷移確率γを記憶する。
【０１７３】
ここで、データD103ないしD107のビット幅は、いずれも、トレリスの枝数と、１つの枝に対する出力遷移確率γのビット数との積［ビット］である。
【０１７４】
また、第１γRAM１０３ないし第５γRAM１０７は、１ワードが、トレリスの枝数と、１つの枝に対する出力遷移確率γのビット数との積［ビット］で、打ち切り長Dに等しいワード数だけの記憶容量を有する。
【０１７５】
γRAM制御部１０２は、第１γRAM１０３ないし第５γRAM１０７から読み出した出力遷移確率γを、データD108,D109,D110、又はD115として、α計算部１０８、第１β計算部１０９、第２β計算部１１０、又はλ計算部１１２に供給する。
【０１７６】
ここで、データD108,D109,D110、及びD115のビット幅は、いずれも、トレリスの枝数と、１つの枝に対する出力遷移確率γのビット数との積［ビット］である。
【０１７７】
また、γRAM制御部１０２から、α計算部１０８に供給されるデータD108と、λ計算部１１２に供給されるデータD115とは、トレリスの、ある時刻tαの枝すべてに対する出力遷移確率γである。
【０１７８】
さらに、γRAM制御部１０２から、第１β計算部１０９に供給されるデータD109は、トレリスの、ある時刻tβ1+1の枝すべてに対する出力遷移確率γであり、γRAM制御部１０２から、第２β計算部１１０に供給されるデータD110は、トレリスの、ある時刻tβ2+1の枝すべてに対する出力遷移確率γである。
【０１７９】
α計算部１０８は、γRAM制御部１０２からのトレリスの時刻tαの枝すべてに対する出力遷移確率γ(D108)を用い、例えば、式（１８）にしたがって、トレリスの時刻tαの状態すべてに対する前向き確率α（の集合）を計算し、データD116として、λ計算部１１２に供給する。
【０１８０】
ここで、データD116のビット幅は、トレリスの状態（１時刻の状態）の個数Mと、１つの状態に対する前向き確率αのビット数との積［ビット］である。
【０１８１】
一方、第１β計算部１０９は、γRAM制御部１０２からのトレリスの時刻tβ1+1の枝すべてに対する出力遷移確率γ(D109)を用い、例えば、式（１９）にしたがって、トレリスの時刻tβ1の状態すべてに対する後ろ向き確率β（の集合）を計算し、データD111として、βRAM制御部１１１に供給する。
【０１８２】
同様に、第２β計算部１１０も、γRAM制御部１０２からのトレリスの時刻tβ2+1の枝すべてに対する出力遷移確率γ(D110)を用い、式（１９）にしたがって、トレリスの時刻tβ2の状態すべてに対する後ろ向き確率β（の集合）を計算し、データD112として、βRAM制御部１１１に供給する。
【０１８３】
ここで、データD111及びD112のビット幅は、トレリスの状態の個数Mと、１つの状態に対する後ろ向き確率βのビット数との積［ビット］である。
【０１８４】
βRAM制御部１１１は、第１β計算部１０９と第２β計算部１１０それぞれから供給される後ろ向き確率βを、所定の順序で、第１βRAM１１３、又は第２βRAM１１４に書き込む書き込み制御と、その第１βRAM１１３又は第２βRAM１１４から、後ろ向き確率βを、所定の順で読み出す読み出し制御を行う。
【０１８５】
すなわち、βRAM制御部１１１は、第１βRAM１１３に対して、後ろ向き確率βを、データD113として読み書きする読み書き制御を行う。同様に、βRAM制御部１１１は、第２βRAM１１４に対して、後ろ向き確率βを、データD114として読み書きする読み書き制御を、それぞれ行う。
【０１８６】
そして、第１βRAM１１３と第２βRAM１１４は、βRAM制御部１１１の制御にしたがって、後ろ向き確率βを記憶する。
【０１８７】
ここで、データD113とD114のビット幅は、いずれも、トレリスの状態の個数Mと、１つの状態に対する後ろ向き確率βのビット数との積［ビット］である。
【０１８８】
また、第１βRAM１１３と第２βRAM１１４は、１ワードが、トレリスの状態の個数Mと、１つの状態に対する後ろ向き確率βのビット数との積［ビット］で、打ち切り長Dに等しいワード数だけの記憶容量を有する。
【０１８９】
βRAM制御部１１１は、第１βRAM１１３、又は第２βRAM１１４から読み出した後ろ向き確率βを、データD117として、λ計算部１１２に供給する。
【０１９０】
ここで、データD117のビット幅は、トレリスの状態の個数Mと、１つの状態に対する後ろ向き確率βのビット数との積［ビット］であり、そのデータD117として、βRAM制御部１１１からλ計算部１１２に供給される後ろ向き確率βは、トレリスの時刻tαの状態すべてに対する後ろ向き確率β（の集合）である。
【０１９１】
λ計算部１１２は、γRAM制御部１０２から供給される時刻tの出力遷移確率γ(D115)、α計算部１０８から供給される時刻t-1の前向き確率α(D116)、及びβRAM制御部１１１から供給される時刻tの後ろ向き確率βを用い、例えば、式（２２）にしたがって、時刻tの出力軟値データλを求めて、データD118として、LDPC復号器６８（図６）に供給する。
【０１９２】
ここで、データD118のビット幅は、１時刻の入力データitのビット数と、出力軟値データλのビット数との積［ビット］である。
【０１９３】
次に、図８を参照して、図７のγRAM制御部１０２による第１γRAM１０３ないし第５γRAM１０７に対する読み書き制御（メモリマネジメント）の処理と、βRAM制御部１１１による第１βRAM１１３及び第２βRAM１１４に対する読み書き制御の処理とについて説明する。
【０１９４】
ここで、上述したように、第１γRAM１０３ないし第５γRAM１０７と、第１βRAM１１３及び第２βRAM１１４とは、すべてシングルポートのRAMであり、１時刻においては、データの書き込み、又は読み出しのうちの一方しかすることができない。
【０１９５】
時刻t=0ないしD-1では、ステップＳ１１の処理として、γRAM制御部１０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第１γRAM１０３のアドレスの小さいワードから大きいワードに書き込む。
【０１９６】
時刻t=Dないし2D-1では、ステップＳ１２の処理として、γRAM制御部１０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第２γRAM１０４のアドレスの小さいワードから大きいワードに書き込む。
【０１９７】
時刻t=2Dないし3D-1では、ステップＳ１３の処理として、γRAM制御部１０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第３γRAM１０５のアドレスの小さいワードから大きいワードに書き込む。
【０１９８】
さらに、ステップＳ１３の処理として、γRAM制御部１０２は、第２γRAM１０４のアドレスの大きいワードから小さいワードの順に、出力遷移確率γを読み出し、つまり、時刻を遡る順（過去に向かう方向）に、出力遷移確率γを読み出し、データD109として、第１β計算部１０９に供給する。
【０１９９】
第１β計算部１０９では、γRAM制御部１０２からの出力遷移確率γを用いて、後ろ向き確率βが計算される。なお、第１β計算部１０９は、時刻t=2Dないし3D-1において、後ろ向き確率βを計算するにあたり、時刻t=2Dにおいて、後ろ向き確率β（時刻3Dの後ろ向き確率β3D(m)）を、1/Mに初期化する。
【０２００】
時刻t=3Dないし4D-1では、ステップＳ１４の処理として、γRAM制御部１０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第４γRAM１０６のアドレスの小さいワードから大きいワードに書き込む。
【０２０１】
さらに、ステップＳ１４の処理として、γRAM制御部１０２は、第３γRAM１０５のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD110として、第２β計算部１１０に供給する。
【０２０２】
第２β計算部１１０では、γRAM制御部１０２からの出力遷移確率γを用いて、後ろ向き確率βが計算される。なお、第２β計算部１１０は、時刻t=3Dないし4D-1において、後ろ向き確率βを計算するにあたり、時刻t=3Dにおいて、後ろ向き確率β（時刻4Dの後ろ向き確率β4D(m)）を、1/Mに初期化する。
【０２０３】
さらに、また、ステップＳ１４の処理として、γRAM制御部１０２は、第１γRAM１０３のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD109として、第１β計算部１０９に供給する。
【０２０４】
第１β計算部１０９では、γRAM制御部１０２からの出力遷移確率γ（と、ステップＳ１３において、第１β計算部１０９で求められた後の時刻の後ろ向き確率βと）を用いて、後ろ向き確率βが計算され、βRAM制御部１１１に供給される。
【０２０５】
βRAM制御部１１１は、第１β計算部１０９からの後ろ向き確率βを、データD113として、第１βRAM１１３に供給し、その後ろ向き確率βを、時間を遡る順に、第１βRAM１１３のアドレスの大きいワードから小さいワードに書き込む。
【０２０６】
時刻t=4Dないし5D-1では、ステップＳ１５の処理として、γRAM制御部１０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第５γRAM１０７のアドレスの小さいワードから大きいワードに書き込む。
【０２０７】
さらに、ステップＳ１５の処理として、γRAM制御部１０２は、第４γRAM１０６のアドレスの大きいワードから小さいワードの順に、出力遷移確率γを読み出し、データD109として、第１β計算部１０９に供給する。
【０２０８】
第１β計算部１０９は、γRAM制御部１０２からの出力遷移確率γを用いて後ろ向き確率を計算する。なお、第１β計算部１０９は、時刻t=4Dないし5D-1において、後ろ向き確率βを計算するにあたり、時刻t=4Dにおいて、後ろ向き確率β（時刻5Dの後ろ向き確率β5D(m)）を、1/Mに初期化する。
【０２０９】
さらに、また、ステップＳ１５の処理として、γRAM制御部１０２は、第２γRAM１０４のアドレスの大きいワードから小さいワードの順に、出力遷移確率γを読み出し、データD110として、第２β計算部１１０に供給する。
【０２１０】
第２β計算部１１０では、γRAM制御部１０２からの出力遷移確率γ（と、ステップＳ１４において、第２β計算部１１０で求められた後の時刻の後ろ向き確率βと）を用いて、後ろ向き確率βが計算され、βRAM制御部１１１に供給される。
【０２１１】
βRAM制御部１１１は、第２β計算部１１０からの後ろ向き確率βを、データD114として、第２βRAM１１４に供給し、その後ろ向き確率βを、時間を遡る順に、第２βRAM１１４のアドレスの大きいワードから小さいワードに書き込む。
【０２１２】
同時に、γRAM制御部１０２は、第１γRAM１０３のアドレスの小さいワードから大きいワードの順に、出力遷移確率γを読み出し、データD108として、α計算部１０８に供給するとともに、データD115として、λ計算部１１２に供給する。
【０２１３】
α計算部１０８は、γRAM制御部１０２からデータD108として供給される出力遷移確率γを用いて、前向き確率αを計算し、データD116として、λ計算部１１２に供給する。
【０２１４】
また、このとき、βRAM制御部１１１は、第１βRAM１１３のアドレスの小さいワードから大きいワードの順に、後ろ向き確率βを読み出し、つまり、時刻順に、後ろ向き確率βを読み出し、データD117として、λ計算部１１２に供給する。
【０２１５】
λ計算部１１２は、γRAM制御部１０２からデータD115として供給される出力遷移確率γ、α計算部１０８からデータD116として供給される前向き確率α、及び、βRAM制御部１１１からデータD117として供給される後ろ向き確率βを用いて、出力軟値データλを計算し、データD118として出力する。
【０２１６】
時刻t=5Dないし6D-1では、ステップＳ１６の処理として、γRAM制御部１０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第１γRAM１０３のアドレスの小さいワードから大きいワードに書き込む。
【０２１７】
さらに、ステップＳ１６の処理として、γRAM制御部１０２は、第５γRAM１０７のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD110として、第２β計算部１１０に供給する。
【０２１８】
第２β計算部１１０は、γRAM制御部１０２からの出力遷移確率γを用いて、後ろ向き確率βを計算する。なお、第２β計算部１１０は、時刻t=5Dないし6D-1において、後ろ向き確率βを計算するにあたり、時刻t=5Dにおいて、後ろ向き確率βを、1/Mに初期化する。
【０２１９】
さらに、また、ステップＳ１６の処理として、γRAM制御部１０２は、第３γRAM１０５のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD109として、第１β計算部１０９に供給する。
【０２２０】
第１β計算部１０９では、γRAM制御部１０２からの出力遷移確率γを用いて、後ろ向き確率βが計算され、βRAM制御部１１１に供給される。
【０２２１】
βRAM制御部１１１は、第１β計算部１０９からの後ろ向き確率βを、データD113として、第１βRAM１１３に供給し、その後ろ向き確率βを、時間を遡る順に、第１βRAM１１３のアドレスの大きいワードから小さいワードに書き込む。
【０２２２】
同時に、γRAM制御部１０２は、第２γRAM１０４のアドレスの小さいワードから大きいワードの順に、出力遷移確率γを読み出し、データD108として、α計算部１０８に供給するとともに、データD115として、λ計算部１１２に供給する。
【０２２３】
α計算部１０８は、γRAM制御部１０２からデータD108として供給される出力遷移確率γを用いて、前向き確率αを計算し、データD116として、λ計算部１１２に供給する。
【０２２４】
また、このとき、βRAM制御部１１１は、第２βRAM１１４のアドレスの小さいワードから大きいワードの順に、時刻順の後ろ向き確率βを読み出し、データD117として、λ計算部１１２に供給する。
【０２２５】
λ計算部１１２は、γRAM制御部１０２からデータD115として供給される出力遷移確率γ、α計算部１０８からデータD116として供給される前向き確率α、及び、βRAM制御部１１１からデータD117として供給される後ろ向き確率βを用いて、出力軟値データλを計算し、データD118として出力する。
【０２２６】
以下、同様にして、第１γRAM１０３ないし第５γRAM１０７に対する読み書き制御の処理と、第１βRAM１１３及び第２βRAM１１４に対する読み書き制御の処理とが行われる。
【０２２７】
すなわち、5以上の整数値の変数jについて、時刻t=j×Dないし(j+1)×D-1では、γ計算部１０１で求められた時刻順の出力遷移確率γ(D102)が、第１γRAM１０３ないし第５γRAM１０７のアドレスの小さいワードから大きいワードに書き込まれる。
【０２２８】
ここで、出力遷移確率γの書き込みの対象となるのは、変数j=5では、第１γRAM１０３であり、変数j=6では、第２γRAM１０４であり、変数j=7では、第３γRAM１０５であり、変数j=8では、第４γRAM１０６であり、変数j=9では、第５γRAM１０７であり、変数j=10では、第１γRAM１０３である。以下、同様のパターンが繰り返される。
【０２２９】
また、同時に、第１γRAM１０３ないし第５γRAM１０７のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γが読み出され、その出力遷移確率γを用い、第１β計算部１０９、又は第２β計算部１１０で、第１βRAM１１３、及び第２βRAM１１４に記憶されない後ろ向き確率β（以下、適宜、後ろ向き確率β１と記載する）が計算される。なお、後ろ向き確率β１のを計算にあたり、時刻t=(i+5)×Dにおいて、後ろ向き確率β１は、1/Mに初期化される。
【０２３０】
ここで、後ろ向き確率β１の計算に用いられる出力遷移確率γの読み出しの対象となるのは、変数j=5では、第５γRAM１０７であり、変数j=6では、第１γRAM１０３であり、変数j=7では、第２γRAM１０４であり、変数j=8では、第３γRAM１０５であり、変数j=9では、第４γRAM１０６であり、変数j=10では、第５γRAM１０７である。以下、同様のパターンが繰り返される。
【０２３１】
また、後ろ向き確率β１の計算を行うのは、変数j=5では、第２β計算部１１０であり、変数j=6では、第１β計算部１０９であり、変数j=7では、第２β計算部１１０である。以下、同様のパターンが繰り返される。
【０２３２】
時刻t=j×Dないし(j+1)×D-1では、さらに、第１γRAM１０３ないし第５γRAM１０７のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γが読み出され、その出力遷移確率γを用い、第１β計算部１０９、又は第２β計算部１１０で、第１βRAM１１３、及び第２βRAM１１４に記憶される後ろ向き確率β（以下、適宜、後ろ向き確率β２と記載する）が計算される。
【０２３３】
さらに、後ろ向き確率β２は、第１βRAM１１３、又は第２βRAM１１４のアドレスの大きいワードから小さいワードに、時間を遡る順に書き込まれる（記憶される）。
【０２３４】
ここで、後ろ向き確率β２の計算に用いられる出力遷移確率γの読み出しの対象となるのは、変数j=5では、第３γRAM１０５であり、変数j=6では、第４γRAM１０６であり、変数j=7では、第５γRAM１０７であり、変数j=8では、第１γRAM１０３であり、変数j=9では、第２γRAM１０４であり、変数j=10では、第３γRAM１０５である。以下、同様のパターンが繰り返される。
【０２３５】
また、後ろ向き確率β２の計算を行うのは、変数j=5では、第１β計算部１０９であり、変数j=6では、第２β計算部１１０であり、変数j=7では、第１β計算部１０９である。以下、同様のパターンが繰り返される。
【０２３６】
さらに、後ろ向き確率β２の書き込みの対象となるのは、変数j=5では、第１βRAM１１３であり、変数j=6では、第２βRAM１１４であり、変数j=7では、第１βRAM１１３である。以下、同様のパターンが繰り返される。
【０２３７】
また、同時に、第１γRAM１０３ないし第５γRAM１０７のアドレスの小さいワードから大きいワードの順に、時刻順の出力遷移確率γが読み出され、データD108として、α計算部１０８に供給されるとともに、データD115として、λ計算部１１２に供給される。
【０２３８】
α計算部１０８は、データD108として供給される出力遷移確率γを用いて、前向き確率αを計算し、データD116として、λ計算部１１２に供給する。
【０２３９】
また、このとき、第１βRAM１１３、又は第２βRAM１１４のアドレスの小さいワードから大きいワードの順に、時刻順の後ろ向き確率β２が読み出され、データD117として、λ計算部１１２に供給される。
【０２４０】
λ計算部１１２では、データD115として供給される出力遷移確率γ、データD116として供給される前向き確率α、及び、データD117として供給される後ろ向き確率β２を用いて、出力軟値データλが計算され、データD118として出力される。
【０２４１】
ここで、前向き確率αと出力軟値データλの計算に用いられる出力遷移確率γの読み出しの対象となるのは、変数j=5では、第２γRAM１０４であり、変数j=6では、第３γRAM１０５であり、変数j=7では、第４γRAM１０６であり、変数j=8では、第５γRAM１０７であり、変数j=9では、第１γRAM１０３であり、変数j=10では、第２γRAM１０４である。以下、同様のパターンが繰り返される。
【０２４２】
また、後ろ向き確率β２の読み出しの対象となるのは、変数j=5では、第２βRAM１１４であり、変数j=6では、第１βRAM１１３であり、変数j=7では、第２βRAM１１４である。以下、同様のパターンが繰り返される。
【０２４３】
次に、図９を参照して、第１γRAM１０３ないし第５γRAM１０７に対する読み書き制御と、第１βRAM１１３及び第２βRAM１１４に対する読み書き制御について、さらに説明する。
【０２４４】
図９左から１番目は、出力遷移確率γ、前向き確率α、後ろ向き確率β（β１とβ２）、及び出力軟値データλの計算の進行状況を示している。
【０２４５】
すなわち、図９左から１番目において、横軸は、左から右方向を、トレリスの時刻の進行方向として、出力遷移確率γ、前向き確率α、後ろ向き確率β（β１とβ２）、及び出力軟値データλが計算されるトレリスのセクション（位置）を表し、縦軸は、時刻（上から下方向が時刻の進行方向）を表している。
【０２４６】
図９左から１番目において、ラインL11は、出力遷移確率γの計算の進行状況を示している。
【０２４７】
出力遷移確率γについては、時刻tの経過にしたがって、その時刻tの出力遷移確率γが計算される。
【０２４８】
図９左から１番目において、ラインL12及びL13は、後ろ向き確率βの計算の進行状況を示している。
【０２４９】
後ろ向き確率βは、出力遷移確率γの計算が開始されたタイミング（時刻t=0）から、打ち切り長Dの２倍の時間2×Dだけ待って開始され、初期値を1/Mとして、時刻t=2Dから、時刻を遡る順に、時間2D分だけ求められる。
【０２５０】
そして、時間2D分の後ろ向き確率βのうちの、時刻を遡る順で、最初の時間D分の後ろ向き確率β（例えば、時刻t=0ないし2D-1の後ろ向き確率βであれば、時刻t=Dないし2D-1の後ろ向き確率）は、確からしさが低いものとして、第１βRAM１１３及び第２βRAM１１４に書き込まれずに破棄され、したがって、出力軟値データλの計算に用いられない。
【０２５１】
一方、時間2D分の後ろ向き確率βのうちの、時刻を遡る順で、後の時間D分の後ろ向き確率β（例えば、時刻t=0ないし2D-1の後ろ向き確率βであれば、時刻t=0ないしD-1の後ろ向き確率）は、出力軟値データλの計算に用いるために、第１βRAM１１３、又は第２βRAM１１４に書き込まれる。
【０２５２】
なお、ラインL12は、後ろ向き確率βのうちの、第１βRAM１１３及び第２βRAM１１４に書き込まれない後ろ向き確率β１の計算の進行状況を示しており、ラインL13は、第１βRAM１１３、又は第２βRAM１１４に書き込まれる後ろ向き確率β２の計算の進行状況を示している。
【０２５３】
初期値を1/Mとした後ろ向き確率β１及びβ２の計算は、ラインL12及びL13として示すように、打ち切り長Dずつ開始のタイミングをずらして（スライディングして）行われる（スライディングウインドウ処理）。
【０２５４】
図９左から１番目において、ラインL14は、前向き確率αと、出力軟値データλとの計算の進行状況を示している。
【０２５５】
前向き確率αと、出力軟値データλとの計算は、出力軟値データλの計算に必要な後ろ向き確率β（β２）が求められた直後に開始される。
【０２５６】
図９左から２番目は、第１γRAM１０３ないし第５γRAM１０７に対するデータの読み書きの進行状況を示している。
【０２５７】
図９左から２番目において、横軸は、第１γRAM１０３ないし第５γRAM１０７のアドレスを表しており、縦軸は、図９左から１番目と同様に、時刻を表している。
【０２５８】
図９左から２番目において、ラインL21は、第１γRAM１０３ないし第５γRAM１０７に対する出力遷移確率γの書き込みの進行状況を示している。
【０２５９】
出力遷移確率γは、時刻順に、第１γRAM１０３ないし第５γRAM１０７のアドレスの小さいワードから大きいワードに書き込まれていく。
【０２６０】
図９左から２番目において、ラインL22及びL23は、後ろ向き確率βの計算に用いられる出力遷移確率γの、第１γRAM１０３ないし第５γRAM１０７からの読み出しの進行状況を示している。
【０２６１】
後ろ向き確率βの計算に用いられる出力遷移確率γの、第１γRAM１０３ないし第５γRAM１０７からの読み出しは、出力遷移確率γの計算が開始されたタイミング（時刻t=0）から、打ち切り長Dの２倍の時間2×Dだけ待って開始される。
【０２６２】
そして、後ろ向き確率βの計算に用いられる出力遷移確率γの読み出しは、時刻を遡る順、すなわち、第１γRAM１０３ないし第５γRAM１０７のアドレスの大きいワードから小さいワードに向かって行われ、時間2D分の出力遷移確率γが読み出される。
【０２６３】
図９左から２番目において、ラインL22は、時間2D分の出力遷移確率γのうちの、時刻を遡る順で、最初の時間D分の出力遷移確率γ（例えば、時刻t=0ないし2D-1の出力遷移確率γであれば、時刻t=Dないし2D-1の出力遷移確率）の読み出しの進行状況を示しており、この最初の時間D分の出力遷移確率γは、図９左から１番目のラインL12で説明した後ろ向き確率β１の計算に用いられる。
【０２６４】
また、ラインL23は、時間2D分の後ろ向き確率βのうちの、時刻を遡る順で、後の時間D分の出力遷移確率γ（例えば、時刻t=0ないし2D-1の出力遷移確率γであれば、時刻t=0ないしD-1の出力遷移確率）の読み出しの進行状況を示しており、この後の時間D分の出力遷移確率γは、図９左から１番目のラインL13で説明した後ろ向き確率β２の計算に用いられる。
【０２６５】
図９左から２番目において、ラインL24は、前向き確率αと出力軟値データλとの計算に用いられる出力遷移確率γの、第１γRAM１０３ないし第５γRAM１０７からの読み出しの進行状況を示している。
【０２６６】
前向き確率αと出力軟値データλとの計算に用いられる出力遷移確率γの読み出しは、図９左から１番目のラインL14で説明した、前向き確率αと出力軟値データλとを計算するときに、時刻順に、つまり、第１γRAM１０３ないし第５γRAM１０７のアドレスの小さいワードから大きいワードに向かって行われる。
【０２６７】
図９左から３番目（右から１番目）は、第１βRAM１１３及び第２βRAM１１４に対するデータの読み書きの進行状況を示している。
【０２６８】
図９左から３番目において、横軸は、第１βRAM１１３と第２βRAM１１４のアドレスを表しており、縦軸は、図９左から１番目と同様に、時刻を表している。
【０２６９】
図９左から３番目において、ラインL31は、第１βRAM１１３又は第２βRAM１１４に対する後ろ向き確率βの書き込みの進行状況を示している。
【０２７０】
後ろ向き確率βは、時刻を遡る順に、第１βRAM１１３又は第２βRAM１１４のアドレスの大きいワードから小さいワードに書き込まれていく。なお、第１βRAM１１３又は第２βRAM１１４に書き込まれる後ろ向き確率βは、図９左から１番目のラインL13で説明した後ろ向き確率β２だけである。
【０２７１】
図９左から３番目において、ラインL32は、出力軟値データλの計算に用いられる後ろ向き確率β２の、第１βRAM１１３又は第２βRAM１１４からの読み出しの進行状況を示している。
【０２７２】
出力軟値データλとの計算に用いられる後ろ向き確率β２の読み出しは、図９左から１番目のラインL14で説明した、出力軟値データλを計算するときに、時刻順に、つまり、第１βRAM１１３又は第２βRAM１１４のアドレスの小さいワードから大きいワードに向かって行われる。
【０２７３】
ここで、上述したように、第１γRAM１０３ないし第５γRAM１０７、第１βRAM１１３、及び第２βRAM１１４は、シングルポートのRAMであるため、データの書き込みと読み出しとを同時にすることはできず、あるタイミングに注目すれば、データの書き込み、又は読み出しだけが行われる。
【０２７４】
すなわち、図９において、例えば、時刻t=4Dないし5Dに注目すると、図９左から２番目に示したように、第１γRAM１０３では、前向き確率αと出力軟値データλとの計算に用いられる出力遷移確率γの読み出し（ラインL24）のみが、第２γRAM１０４では、後ろ向き確率β２の計算に用いられる出力遷移確率γの読み出し（ラインL23）のみが、第４γRAM１０６では、後ろ向き確率β１の計算に用いられる出力遷移確率γの読み出し（ラインL22）のみが、第５γRAM１０７では、出力遷移確率γの書き込み（ラインL21）のみが、それぞれ行われている。
【０２７５】
また、図９左から３番目に示したように、第１βRAM１１３では、出力軟値データλの計算に用いられる後ろ向き確率β２の読み出し（ラインL32）のみが、第２βRAM１１４では、後ろ向き確率β２の書き込み（ラインL31）のみが、それぞれ行われている。
【０２７６】
以上のように、出力軟値データλの計算に用いる出力遷移確率γと後ろ向き確率βを記憶する記憶手段として、RAM（第１γRAM１０３ないし第５γRAM１０７、第１βRAM１１３、及び第２βRAM１１４）を採用した場合には、前述したように、打ち切り長Dが小さいと、ワード数が小さく、そのために、オーバヘッドが大のRAMを用いて、SISO復号器６７を構成することとなり、回路規模が大となる。
【０２７７】
そこで、図１０は、図６のSISO復号器６７の他の構成例を示している。
【０２７８】
なお、図中、図７の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０２７９】
すなわち、図１０のSISO復号器６７は、γ計算部１０１、α計算部１０８、第１β計算部１０９、第２β計算部１１０、及びλ計算部１１２が設けられている点で、図７の場合と一致しているが、制御部１００に代えて、制御部２００が、γRAM制御部１０２に代えて、γメモリ制御部２０２が、５個の第１γRAM１０３ないし第５γRAM１０７に代えて、４個の第１γメモリ２０３ないし第４γメモリ２０６が、βRAM制御部１１１に代えて、βメモリ制御部２１１が、２個の第１βRAM１１３及び第２βRAM１１４に代えて、１個のβメモリ２１３が、それぞれ設けられている点で、図７の場合と相違している。
【０２８０】
したがって、図７では、出力遷移確率γを記憶する記憶手段として、５個のRAM（第１γRAM１０３ないし第５γRAM１０７）が必要であったのに対して、図１０では、４個のメモリ（第１γメモリ２０３ないし第４γメモリ２０６）で、SISO復号器６７が構成されている。さらに、図７では、後ろ向き確率βを記憶する記憶手段として、２個のRAM（第１βRAM１１３及び第２βRAM１１４）が必要であったのに対して、図１０では、１個のメモリ（βメモリ２１３）で、SISO復号器６７が構成されている。
【０２８１】
以上のように構成される図１０のSISO復号器６７では、例えば、図７の場合と同様に、SW-Max-Log-BCJRアルゴリズムにしたがい、入力軟値データYtに対して、その入力軟値データYtの復号結果としての出力軟値データλを、打ち切り長Dの４倍の遅延時間4Dで出力する。
【０２８２】
すなわち、図１０のSISO復号器６７において、制御部２００は、γ計算部１０１、α計算部１０８、第１β計算部１０９、第２β計算部１１０、λ計算部１１２、γメモリ制御部２０２、及びβメモリ制御部２１１が連携して、入力軟値データYtを出力軟値データλtに復号するための処理を行うように、γ計算部１０１、α計算部１０８、第１β計算部１０９、第２β計算部１１０、λ計算部１１２、γメモリ制御部２０２、及びβメモリ制御部２１１を制御する。
【０２８３】
γ計算部１０１には、図６の記録再生系６５から、時刻tの入力軟値データYt(D101)が供給される。
【０２８４】
γ計算部１０１は、時刻tの入力軟値データYtに対して、式（２０）にしたがい、トレリスの時刻tの枝すべてに対する出力遷移確率γを計算し、データD102として、γメモリ制御部２０２に供給する。
【０２８５】
γメモリ制御部２０２は、γ計算部１０１から供給される出力遷移確率γを、所定の順序で、第１γメモリ２０３、第２γメモリ２０４、第３γメモリ２０５、又は第４γメモリ２０６に書き込む書き込み制御と、その第１γメモリ２０３ないし第４γメモリ２０６から、出力遷移確率γを、所定の順で読み出す読み出し制御を行う。
【０２８６】
すなわち、γメモリ制御部２０２は、第１γメモリ２０３に対して、出力遷移確率γを、データD203として読み書きする読み書き制御を行う。同様に、γメモリ制御部２０２は、第２γメモリ２０４に対して、出力遷移確率γを、データD204として読み書きする読み書き制御を、第３γメモリ２０５に対して、出力遷移確率γを、データD205として読み書きする読み書き制御を、第４γメモリ２０６に対して、出力遷移確率γを、データD206として読み書きする読み書き制御を、それぞれ行う。
【０２８７】
そして、第１γメモリ２０３ないし第４γメモリ２０６は、γメモリ制御部２０２の制御にしたがって、出力遷移確率γを記憶する。
【０２８８】
ここで、データD203ないしD206のビット幅は、いずれも、トレリスの枝数と、１つの枝に対する出力遷移確率γのビット数との積［ビット］である。
【０２８９】
また、第１γメモリ２０３ないし第４γメモリ２０６は、図７の第１γRAM１０３ないし第５γRAM１０７と同様に、１ワードが、トレリスの枝数と、１つの枝に対する出力遷移確率γのビット数との積［ビット］で、打ち切り長Dに等しいワード数だけの記憶容量を有する。
【０２９０】
γメモリ制御部２０２は、第１γメモリ２０３ないし第４γメモリ２０６から読み出した出力遷移確率γを、データD108,D109,D110、又はD115として、α計算部１０８、第１β計算部１０９、第２β計算部１１０、又はλ計算部１１２に供給する。
【０２９１】
ここで、γメモリ制御部２０２から、α計算部１０８に供給されるデータD108と、λ計算部１１２に供給されるデータD115とは、トレリスの、ある時刻tαの枝すべてに対する出力遷移確率γである。
【０２９２】
また、γメモリ制御部２０２から、第１β計算部１０９に供給されるデータD109は、トレリスの、ある時刻tβ1+1の枝すべてに対する出力遷移確率γであり、γメモリ制御部２０２から、第２β計算部１１０に供給されるデータD110は、トレリスの、ある時刻tβ2+1の枝すべてに対する出力遷移確率γである。
【０２９３】
α計算部１０８は、γメモリ制御部２０２からのトレリスの時刻tαの枝すべてに対する出力遷移確率γ(D108)を用い、式（１８）にしたがって、トレリスの時刻tαの状態すべてに対する前向き確率αを計算し、データD116として、λ計算部１１２に供給する。
【０２９４】
一方、第１β計算部１０９は、γメモリ制御部２０２からのトレリスの時刻tβ1+1の枝すべてに対する出力遷移確率γ(D109)を用い、式（１９）にしたがって、トレリスの時刻tβ1の状態すべてに対する後ろ向き確率βを計算し、データD111として、βメモリ制御部２１１に供給する。
【０２９５】
同様に、第２β計算部１１０も、γメモリ制御部２０２からのトレリスの時刻tβ2+1の枝すべてに対する出力遷移確率γ(D110)を用い、式（１９）にしたがって、トレリスの時刻tβ2の状態すべてに対する後ろ向き確率βを計算し、データD112として、βメモリ制御部２１１に供給する。
【０２９６】
βメモリ制御部２１１は、第１β計算部１０９と第２β計算部１１０それぞれから供給される後ろ向き確率βを、所定の順序で、βメモリ２１３に書き込む書き込み制御と、そのβメモリ２１３から、後ろ向き確率βを、所定の順で読み出す読み出し制御を行う。
【０２９７】
すなわち、βメモリ制御部２１１は、βメモリ２１３に対して、後ろ向き確率βを、データD213として読み書きする読み書き制御を行う。
【０２９８】
そして、βメモリ２１３は、βメモリ制御部２１１の制御にしたがって、後ろ向き確率βを記憶する。
【０２９９】
ここで、データD213のビット幅は、トレリスの状態の個数Mと、１つの状態に対する後ろ向き確率βのビット数との積［ビット］である。
【０３００】
また、βメモリ２１３は、図７の第１βRAM１１３及び第２βRAM１１４と同様に、１ワードが、トレリスの状態の個数Mと、１つの状態に対する後ろ向き確率βのビット数との積［ビット］で、打ち切り長Dに等しいワード数だけの記憶容量を有する。
【０３０１】
βメモリ制御部２１１は、βメモリ２１３から読み出した後ろ向き確率βを、データD117として、λ計算部１１２に供給する。
【０３０２】
ここで、データD117として、βメモリ制御部２１１からλ計算部１１２に供給される後ろ向き確率βは、トレリスの時刻tαの状態すべてに対する後ろ向き確率βである。
【０３０３】
λ計算部１１２は、γメモリ制御部２０２から供給される出力遷移確率γ(D115)、α計算部１０８から供給される前向き確率α(D116)、及びβメモリ制御部２１１から供給される後ろ向き確率βを用い、式（２２）にしたがって、出力軟値データλを求めて、データD118として、LDPC復号器６８（図６）に供給する。
【０３０４】
図１０のSISO復号器６７において、出力遷移確率γを記憶する記憶手段としての４個の第１γメモリ２０３ないし第４γメモリ２０６、及び、後ろ向き確率βを記憶する記憶手段としての１個のβメモリ２１３は、いずれも、レジスタを用いて構成された、データの書き込みと読み出しとを同時にすることが可能なメモリになっている。
【０３０５】
すなわち、図１１は、図１０の第１γメモリ２０３の構成例を示している。
【０３０６】
第１γメモリ２０３は、アドレス変換器３０１、W個のセレクタ３０２1ないし３０２W、W個のレジスタ３０３1ないし３０３W、及びセレクタ３０４で構成されている。
【０３０７】
ここで、セレクタ３０２1ないし３０２Wの個数Wや、レジスタ３０３1ないし３０３Wの個数Wは、打ち切り長Dに等しい。
【０３０８】
アドレス変換器３０１には、アドレスが供給される。
【０３０９】
ここで、アドレスは、γメモリ制御部２０２（図１０）から供給され、γメモリ制御部２０２は、アドレスを第１γメモリ２０３に供給することによって、第１γメモリ２０３に対するデータの読み書きを制御する。
【０３１０】
また、アドレスとしては、0から、打ち切り長D-1に等しいW-1までの範囲の整数値が供給される。したがって、アドレスのビット数は、log2Wビットである。
【０３１１】
アドレス変換器３０１は、γメモリ制御部２０２から供給される、log2Wビットのアドレスを、Wビットのビット列であって、そのWビットのうちの１ビットだけが1で、他のビットすべてが0のビット列に変換し、そのWビットのビット列を、ワード選択信号として、そのワード選択信号の最下位ビットからk番目のビット（第kビット）を、セレクタ３０２k（k=1,2,・・・,W)に供給する。
【０３１２】
すなわち、log2Wビットのアドレスが表す値を、Aとすると、アドレス変換器３０１は、最下位ビットからA+1番目のビットだけが1で、他のビットすべてが0の、Wビットのビット列を、ワード選択信号として、そのワード選択信号の第kビットを、セレクタ３０２kに供給する。
【０３１３】
セレクタ３０２k（k=1,2,・・・,W)には、アドレス変換器３０１からワード選択信号の第kビットが供給される他、γメモリ制御部２０２から、第１γメモリ２０３に書き込む書き込みデータとして、１ワードの出力遷移確率γが供給される。ここで、トレリスの枝数と、１つの枝に対する出力遷移確率γのビット数との積を、Nと表すこととすると、１ワードの出力遷移確率γは、Nビットのビット列で、トレリスの枝数分の出力遷移確率γである。
【０３１４】
セレクタ３０２kは、アドレス変換器３０１からのワード選択信号の第kビットが1である場合には、γメモリ制御部２０２からの、書き込みデータとしての１ワード（Nビット）の出力遷移確率γを選択し、レジスタ３０３kに供給する。
【０３１５】
また、セレクタ３０２kは、アドレス変換器３０１からのワード選択信号の第kビットが0である場合には、レジスタ３０３kがラッチしている１ワード（Nビット）の出力遷移確率γを選択し、レジスタ３０３kに供給する。
【０３１６】
レジスタ３０３kは、１ワード（Nビット）の出力遷移確率γをラッチすることができるだけの個数の、例えば、フリップフロップで構成され、セレクタ３０２kから供給される１ワードの出力遷移確率γをラッチし、セレクタ３０２k及びセレクタ３０４に供給する。
【０３１７】
したがって、あるアドレスAに対して、アドレス変換器３０１からセレクタ３０２kに供給されるワード選択信号の第kビットが1である場合には、セレクタ３０２kでは、γメモリ制御部２０２からの、書き込みデータとしての１ワードの出力遷移確率γが選択されて、レジスタ３０３kに供給され、レジスタ３０３kにおいて、γメモリ制御部２０２からの１ワードの出力遷移確率γがラッチされる。すなわち、これにより、アドレスAに、１ワードの出力遷移確率γが書き込まれる。
【０３１８】
一方、あるアドレスAに対して、アドレス変換器３０１からセレクタ３０２kに供給されるワード選択信号の第kビットが0である場合には、セレクタ３０２kでは、レジスタ３０３kがラッチしている１ワードの出力遷移確率γが選択されて、レジスタ３０３kに供給され、レジスタ３０３kにおいて、その１ワードの出力遷移確率γがラッチされる。すなわち、これにより、アドレスA以外のアドレスでは、そのアドレスに記憶されている１ワードの出力遷移確率γが、そのまま維持される。
【０３１９】
セレクタ３０４には、レジスタ３０３kがラッチしている１ワードの出力遷移確率γが供給される。さらに、セレクタ３０４には、γメモリ制御部２０２（図１０）からアドレス変換器３０１に供給されるのと同一のアドレスAが供給される。
【０３２０】
セレクタ３０４は、W個のレジスタ３０３1ないし３０３Wがそれぞれラッチしている１ワードの出力遷移確率γのうちの、アドレスAとしてのレジスタ３０３A+1がラッチしている１ワードの出力遷移確率γを選択し、アドレスAから読み出した読み出しデータとして、γメモリ制御部２０２に供給する。
【０３２１】
以上のように構成される第１γメモリ２０３では、γメモリ制御部２０２から、例えば、アドレスAと、書き込みデータとしての１ワードの出力遷移確率γが供給されると、アドレスAは、アドレス変換器３０１とセレクタ３０４に供給され、書き込みデータとしての１ワードの出力遷移確率γは、W個のセレクタ３０２1ないし３０２Wに供給される。
【０３２２】
アドレスAが供給されたセレクタ３０４は、レジスタ３０３1ないし３０３Wのうちの、アドレスAとしてのレジスタ３０３A+1がラッチしている１ワードの出力遷移確率γを選択し、アドレスAから読み出した読み出しデータとして、γメモリ制御部２０２に供給する。
【０３２３】
一方、アドレス変換器３０１は、アドレスAを、最下位ビットからA+1番目のビットだけが1で、他のビットすべてが0の、Wビットのワード選択信号に変換し、そのワード選択信号の第kビットを、セレクタ３０２kに供給する。
【０３２４】
セレクタ３０２1ないし３０２Wのうちの、アドレス変換器３０１から、第kビットが1のワード選択信号が供給されるセレクタ３０２k、すなわち、セレクタ３０２A+1では、γメモリ制御部２０２からの、書き込みデータとしての１ワードの出力遷移確率γが選択されて、レジスタ３０３A+1に供給される。
【０３２５】
レジスタ３０３A+1では、セレクタ３０２A+1からの１ワードの出力遷移確率γがラッチされ、これにより、アドレスAに、１ワードの出力遷移確率γが書き込まれる。
【０３２６】
以上のように、第１γメモリ２０３では、アドレスAからの、そこに書き込まれていた１ワードの出力遷移確率γの読み出し（セレクタ３０２A+1がラッチしている１ワードの出力遷移確率γの出力）と、同一のアドレスAへの、１ワードの出力遷移確率γの書き込み（セレクタ３０２A+1での、書き込みデータとしての１ワードの出力遷移確率γのラッチ）とを、一度のアドレスの指定によって同時に行うことができる。
【０３２７】
なお、第１γメモリ２０３の他の、第２γメモリ２０４ないし第４γメモリ２０６、及び、βメモリ２１３も、第１γメモリ２０３と同様に構成される。但し、βメモリ２１３のレジスタ３０３kは、１ワードの後ろ向き確率βをラッチすることができるだけの個数のフリップフロップで構成される。
【０３２８】
次に、図１２を参照して、図１０のγメモリ制御部２０２による第１γメモリ２０３ないし第４γメモリ２０６に対する読み書き制御の処理と、βメモリ制御部２１１によるβメモリ２１３に対する読み書き制御の処理とについて説明する。
【０３２９】
ここで、上述したように、第１γメモリ２０３ないし第４γメモリ２０６と、βメモリ２１３とは、すべて、図１１に示したように構成され、１時刻において、データの書き込みと読み出しとを同時にする（一度のアドレスの指定によって、そのアドレスからデータを読み出し、その直後に、そのアドレスにデータを書き込む）ことができるリードモディファイライト(read modify write)が可能なメモリである。
【０３３０】
時刻t=0ないしD-1では、ステップＳ３１の処理として、γメモリ制御部２０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第１γメモリ２０３のアドレスの小さいワードから大きいワードに書き込む。
【０３３１】
時刻t=Dないし2D-1では、ステップＳ３２の処理として、γメモリ制御部２０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第２γメモリ２０４のアドレスの小さいワードから大きいワードに書き込む。
【０３３２】
時刻t=2Dないし3D-1では、ステップＳ３３の処理として、γメモリ制御部２０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第３γメモリ２０５のアドレスの小さいワードから大きいワードに書き込む。
【０３３３】
さらに、ステップＳ３３の処理として、γメモリ制御部２０２は、第２γメモリ２０４のアドレスの大きいワードから小さいワードの順に、出力遷移確率γを読み出し、つまり、時刻を遡る順（過去に向かう方向）に、出力遷移確率γを読み出し、データD109として、第１β計算部１０９に供給する。
【０３３４】
第１β計算部１０９では、γメモリ制御部２０２からの出力遷移確率γを用いて、時刻を遡る順の後ろ向き確率βが計算される。なお、第１β計算部１０９は、時刻t=2Dないし3D-1において、後ろ向き確率βを計算するにあたり、時刻t=2Dにおいて、後ろ向き確率β（時刻3Dの後ろ向き確率β3D(m)）を、1/Mに初期化する。
【０３３５】
時刻t=3Dないし4D-1では、ステップＳ３４の処理として、γメモリ制御部２０２は、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第４γメモリ２０６のアドレスの小さいワードから大きいワードに書き込む。
【０３３６】
さらに、ステップＳ３４の処理として、γメモリ制御部２０２は、第３γメモリ２０５のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD110として、第２β計算部１１０に供給する。
【０３３７】
第２β計算部１１０では、γメモリ制御部２０２からの出力遷移確率γを用いて、時刻を遡る順の後ろ向き確率βが計算される。なお、第２β計算部１１０は、時刻t=3Dないし4D-1において、後ろ向き確率βを計算するにあたり、時刻t=3Dにおいて、後ろ向き確率β（時刻4Dの後ろ向き確率β4D(m)）を、1/Mに初期化する。
【０３３８】
さらに、また、ステップＳ３４の処理として、γメモリ制御部２０２は、第１γメモリ２０３のアドレスの大きいワードから小さいワードの順に、出力遷移確率γを読み出し、データD109として、第１β計算部１０９に供給する。
【０３３９】
第１β計算部１０９では、γメモリ制御部２０２からの出力遷移確率γ（と、ステップＳ３３において、第１β計算部１０９で求められた後ろ向き確率βと）を用いて、ステップＳ３３において、第１β計算部１０９で求められた後ろ向き確率βからさらに遡った時刻の後ろ向き確率βが計算され、βメモリ制御部２１１に供給される。
【０３４０】
βメモリ制御部２１１は、第１β計算部１０９からの後ろ向き確率βを、データD213として、βメモリ２１３に供給し、その後ろ向き確率βを、時間を遡る順に、βメモリ２１３のアドレスの大きいワードから小さいワードに書き込む。
【０３４１】
時刻t=4Dないし5D-1では、ステップＳ３５の処理として、γメモリ制御部２０２は、第１γメモリ２０３のアドレスの小さいワードから大きいワードの順に、時刻順の出力遷移確率γを読み出し、データD108として、α計算部１０８に供給するとともに、データD115として、λ計算部１１２に供給し、それと同時に、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第１γメモリ２０３のアドレスの小さいワードから大きいワードに書き込む。
【０３４２】
すなわち、第１γメモリ２０３において、記憶されている出力遷移確率γを読み出しと、新たに求められた出力遷移確率γの書き込みとを同時に行うリードモディファイライトが行われる。
【０３４３】
さらに、ステップＳ３５の処理として、γメモリ制御部２０２は、第４γメモリ２０６のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD109として、第１β計算部１０９に供給する。
【０３４４】
第１β計算部１０９は、γメモリ制御部２０２からの出力遷移確率βを用いて、時刻を遡る順の後ろ向き確率βを計算する。なお、第１β計算部１０９は、時刻t=4Dないし5D-1において、後ろ向き確率βを計算するにあたり、時刻t=4Dにおいて、後ろ向き確率β（時刻5Dの後ろ向き確率β5D(m)）を、1/Mに初期化する。
【０３４５】
さらに、また、ステップＳ３５の処理として、γメモリ制御部２０２は、第２γメモリ２０４のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出して、データD110として、第２β計算部１１０に供給する。
【０３４６】
第２β計算部１１０では、γメモリ制御部２０２からの出力遷移確率γ（と、ステップＳ３４において、第２β計算部１１０で求められた後ろ向き確率βと）を用いて、ステップＳ３４において、第２β計算部１１０で求められた後ろ向き確率βからさらに遡った時刻の後ろ向き確率βが計算され、βメモリ制御部２１１に供給される。
【０３４７】
また、このとき、βメモリ制御部２１１は、βメモリ２１３のアドレスの小さいワードから大きいワードの順に、ステップＳ３４で書き込まれた後ろ向き確率βを読み出し、つまり、時刻順に、後ろ向き確率βを読み出して、データD117として、λ計算部１１２に供給し、それと同時に、第２β計算部１１０からの時刻を遡る順の後ろ向き確率βを、データD213として、βメモリ２１３に供給し、その後ろ向き確率βを、時間を遡る順に、βメモリ２１３のアドレスの小さいワードから大きいワードに書き込む。
【０３４８】
すなわち、βメモリ２１３において、記憶されている後ろ向き確率βを読み出しと、新たに求められた後ろ向き確率βの書き込みとを同時に行うリードモディファイライトが行われる。
【０３４９】
ここで、ステップＳ３５のβメモリ２１３でのリードモディファイライトでは、新たに求められた、時間を遡る順の後ろ向き確率βが、βメモリ２１３のアドレスの小さいワードから大きいワードに向かって書き込まれる。この場合、βメモリ２１３では、より小さいアドレスに、より後の時刻の後ろ向き確率βが記憶される（より大きいアドレスに、より前の時刻の後ろ向き確率βが記憶される）。
【０３５０】
ステップＳ３５では、さらに、α計算部１０８において、γメモリ制御部２０２がリードモディファイライトによって第１γメモリ２０３から読み出して、データD108として供給してくる出力遷移確率γを用いて、前向き確率αを計算し、データD116として、λ計算部１１２に供給する。
【０３５１】
λ計算部１１２は、γメモリ制御部２０２がリードモディファイライトによって第１γメモリ２０３から読み出して、データD115として供給してくる出力遷移確率γ、α計算部１０８からデータD116として供給される前向き確率α、及び、βメモリ制御部２１１がリードモディファイライトによってβメモリ２１３から読み出して、データD117として供給してくる後ろ向き確率βを用いて、出力軟値データλを計算し、データD118として出力する。
【０３５２】
時刻t=5Dないし6D-1では、ステップＳ３６の処理として、γメモリ制御部２０２は、第２γメモリ２０４のアドレスの小さいワードから大きいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD108として、α計算部１０８に供給するとともに、データD115として、λ計算部１１２に供給し、それと同時に、γ計算部１０１から供給される出力遷移確率γ(D102)を、時刻順に、第２γメモリ２０４のアドレスの小さいワードから大きいワードに書き込む。
【０３５３】
すなわち、第２γメモリ２０４において、記憶されている出力遷移確率γを読み出しと、新たに求められた出力遷移確率γの書き込みとを同時に行うリードモディファイライトが行われる。
【０３５４】
さらに、ステップＳ３６の処理として、γメモリ制御部２０２は、第１γメモリ２０３のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD110として、第２β計算部１１０に供給する。
【０３５５】
第２β計算部１１０は、γメモリ制御部２０２からの出力遷移確率βを用いて、時刻を遡る順の後ろ向き確率βを計算する。なお、第２β計算部１１０は、時刻t=5Dないし6D-1において、後ろ向き確率βを計算するにあたり、時刻t=5Dにおいて、後ろ向き確率β（時刻6Dの後ろ向き確率β6D(m)）を、1/Mに初期化する。
【０３５６】
さらに、また、ステップＳ３６の処理として、γメモリ制御部２０２は、第３γメモリ２０５のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γを読み出し、データD109として、第１β計算部１０９に供給する。
【０３５７】
第１β計算部１０９では、γメモリ制御部２０２からの出力遷移確率γ（と、ステップＳ３５において、第１β計算部１０９で求められた後ろ向き確率βと）を用いて、ステップＳ３５において、第１β計算部１０９で求められた後ろ向き確率βからさらに遡った時刻の後ろ向き確率βが計算され、βメモリ制御部２１１に供給される。
【０３５８】
また、このとき、βメモリ制御部２１１は、βメモリ２１３のアドレスの大きいワードから小さいワードの順に、ステップＳ３５で書き込まれた後ろ向き確率βを読み出して、すなわち、時刻順の後ろ向き確率を読み出して、データD117として、λ計算部１１２に供給し、それと同時に、第１β計算部１０９からの時刻を遡る順の後ろ向き確率βを、データD213として、βメモリ２１３に供給し、その後ろ向き確率βを、時間を遡る順に、βメモリ２１３のアドレスの大きいワードから小さいワードに書き込む。
【０３５９】
すなわち、βメモリ２１３において、記憶されている後ろ向き確率βを読み出しと、新たに求められた後ろ向き確率βの書き込みとを同時に行うリードモディファイライトが行われる。
【０３６０】
ここで、ステップＳ３６のβメモリ２１３でのリードモディファイライトでは、新たに求められた、時間を遡る順の後ろ向き確率βが、βメモリ２１３のアドレスの大きいワードから小さいワードに向かって書き込まれる。この場合、βメモリ２１３では、より小さいアドレスに、より前の時刻の後ろ向き確率βが記憶される（より大きいアドレスに、より後の時刻の後ろ向き確率βが記憶される）。
【０３６１】
ステップＳ３６では、さらに、α計算部１０８において、γメモリ制御部２０２がリードモディファイライトによって第１γメモリ２０３から読み出して、データD108として供給してくる出力遷移確率γを用いて、前向き確率αを計算し、データD116として、λ計算部１１２に供給する。
【０３６２】
λ計算部１１２は、γメモリ制御部２０２がリードモディファイライトによって第２γメモリ２０４から読み出して、データD115として供給してくる出力遷移確率γ、α計算部１０８からデータD116として供給される前向き確率α、及び、βメモリ制御部２１１がリードモディファイライトによってβメモリ２１３から読み出して、データD117として供給してくる後ろ向き確率βを用いて、出力軟値データλを計算し、データD118として出力する。
【０３６３】
以下、同様にして、第１γメモリ２０３ないし第４γメモリ２０６に対する読み書き制御の処理と、βメモリ２１３に対する読み書き制御の処理とが行われる。
【０３６４】
すなわち、5以上の整数値の変数jについて、時刻t=j×Dないし(j+1)×D-1では、第１γメモリ２０３ないし第４γメモリ２０６のアドレスの小さいワードから大きいワードに向かって、前向き確率αの計算、及び出力軟値データλの計算に用いられる時刻順の出力遷移確率γが読み出されて、データD108としてα計算部１０８に供給されるとともに、データD115としてλ計算部１１２に供給され、それと同時に、γ計算部１０１で求められた時刻順の出力遷移確率γ(D102)が、第１γメモリ２０３ないし第４γメモリ２０６のアドレスの小さいワードから大きいワードに書き込まれるリードモディファイライトが行われる。
【０３６５】
ここで、出力遷移確率γの読み書きを同時に行うリードモディファイライトの対象となるのは、例えば、変数j=5では、第２γメモリ２０４であり、変数j=6では、第３γメモリ２０５であり、変数j=7では、第４γメモリ２０６であり、変数j=8では、第１γメモリ２０３であり、変数j=9では、第２γメモリ２０４である。以下、同様のパターンが繰り返される。
【０３６６】
また、同時に、第１γメモリ２０３ないし第４γメモリ２０６のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γが読み出され、その出力遷移確率γを用い、第１β計算部１０９、又は第２β計算部１１０で、後ろ向き確率βのうちの、βメモリ２１３に記憶されない後ろ向き確率β１が計算される。なお、後ろ向き確率β１のを計算にあたり、時刻t=(i+5)×Dにおいて、後ろ向き確率β１は、1/Mに初期化される。
【０３６７】
ここで、後ろ向き確率β１の計算に用いられる出力遷移確率γの読み出しの対象となるのは、例えば、変数j=5では、第１γメモリ２０３であり、変数j=6では、第２γメモリ２０４であり、変数j=7では、第３γメモリ２０５であり、変数j=8では、第４γメモリ２０６であり、変数j=9では、第１γメモリ２０３である。以下、同様のパターンが繰り返される。
【０３６８】
また、後ろ向き確率β１の計算を行うのは、例えば、変数j=5では、第２β計算部１１０であり、変数j=6では、第１β計算部１０９であり、変数j=7では、第２β計算部１１０である。以下、同様のパターンが繰り返される。
【０３６９】
時刻t=j×Dないし(j+1)×D-1では、さらに、第１γメモリ２０３ないし第４γメモリ２０６のアドレスの大きいワードから小さいワードの順に、時刻を遡る順の出力遷移確率γが読み出され、その出力遷移確率γを用い、第１β計算部１０９、又は第２β計算部１１０で、後ろ向き確率βのうちの、βメモリ２１３に記憶される後ろ向き確率β２が計算される。
【０３７０】
ここで、後ろ向き確率β２の計算に用いられる出力遷移確率γの読み出しの対象となるのは、例えば、変数j=5では、第３γメモリ２０５であり、変数j=6では、第４γメモリ２０６であり、変数j=7では、第１γメモリ２０３であり、変数j=8では、第２γメモリ２０４であり、変数j=9では、第３γメモリ２０５である。以下、同様のパターンが繰り返される。
【０３７１】
また、後ろ向き確率β２の計算を行うのは、例えば、変数j=5では、第１β計算部１０９であり、変数j=6では、第２β計算部１１０であり、変数j=7では、第１β計算部１０９である。以下、同様のパターンが繰り返される。
【０３７２】
時刻t=j×Dないし(j+1)×D-1では、また、βメモリ２１３から、後ろ向き確率β２が読み出されて、データD117として、λ計算部１１２に供給され、それと同時に、第１β計算部１０９、又は第２β計算部１１０で計算された後ろ向き確率β２が、βメモリ２１３に書き込まれるリードモディファイライトが行われる。
【０３７３】
ここで、βメモリ２１３に対する後ろ向き確率β２の読み書きを同時に行うリードモディファイライトでは、例えば、変数jが奇数である場合には、βメモリ２１３のアドレスの大きいワードから小さいワードの方向に、後ろ向き確率β２の読み書きが行われ、変数jが偶数である場合には、βメモリ２１３のアドレスの小さいワードから大きいワードの方向に、後ろ向き確率β２の読み書きが行われる。
【０３７４】
一方、α計算部１０８では、データD108として供給される出力遷移確率γを用いて、前向き確率αが計算され、データD116として、λ計算部１１２に供給される。
【０３７５】
そして、λ計算部１１２では、データD115として供給される出力遷移確率γ、データD116として供給される前向き確率α、及び、データD117として供給される後ろ向き確率β２を用いて、出力軟値データλが計算され、データD118として出力される。
【０３７６】
次に、図１３を参照して、第１γメモリ２０３ないし第４γメモリ２０６に対する読み書き制御と、βメモリ２１３に対する読み書き制御について、さらに説明する。
【０３７７】
図１３左から１番目は、出力遷移確率γ、前向き確率α、後ろ向き確率β（β１とβ２）、及び出力軟値データλの計算の進行状況を示している。
【０３７８】
図１３左から１番目において、横軸は、左から右方向を、トレリスの時刻の進行方向として、出力遷移確率γ、前向き確率α、後ろ向き確率β（β１とβ２）、及び出力軟値データλが計算されるトレリスのセクションを表し、縦軸は、時刻を表している。
【０３７９】
図１３左から１番目は、上述した図９左から１番目と同一の図である。
【０３８０】
したがって、図１３左から１番目において、ラインL11は、出力遷移確率γの計算の進行状況を、ラインL12は、後ろ向き確率βのうちの、βメモリ２１３に書き込まれない後ろ向き確率β１の計算の進行状況を、ラインL13は、βメモリ２１３に書き込まれる後ろ向き確率β２の計算の進行状況を、ラインL14は、前向き確率αと、出力軟値データλとの計算の進行状況を、それぞれ示している。
【０３８１】
図１３左から２番目は、第１γメモリ２０３ないし第４γメモリ２０６に対するデータの読み書きの進行状況を示している。
【０３８２】
図１３左から２番目において、横軸は、第１γメモリ２０３ないし第４γメモリ２０６のアドレスを表しており、縦軸は、図１３左から１番目と同様に、時刻を表している。
【０３８３】
図１３左から２番目において、ラインL51は、第１γメモリ２０３ないし第４γメモリ２０６に対する出力遷移確率γの書き込みの進行状況を示している。
【０３８４】
出力遷移確率γは、時刻順に、第１γメモリ２０３ないし第４γメモリ２０６のアドレスの小さいワードから大きいワードに書き込まれていく。
【０３８５】
図１３左から２番目において、ラインL52及びL53は、後ろ向き確率βの計算に用いられる出力遷移確率γの、第１γメモリ２０３ないし第４γメモリ２０６からの読み出しの進行状況を示している。
【０３８６】
後ろ向き確率βの計算に用いられる出力遷移確率γの、第１γメモリ２０３ないし第４γメモリ２０６からの読み出しは、出力遷移確率γの計算が開始されたタイミング（時刻t=0）から、打ち切り長Dの２倍の時間2×Dだけ待って開始される。
【０３８７】
そして、後ろ向き確率βの計算に用いられる出力遷移確率γの読み出しは、時刻を遡る順、すなわち、第１γメモリ２０３ないし第４γメモリ２０６のアドレスの大きいワードから小さいワードに向かって行われ、時間2D分の出力遷移確率γが読み出される。
【０３８８】
図１３左から２番目において、ラインL52は、時間2D分の出力遷移確率γのうちの、時刻を遡る順で、最初の時間D分の出力遷移確率γ（例えば、時刻t=0ないし2D-1の出力遷移確率γであれば、時刻t=Dないし2D-1の出力遷移確率）の読み出しの進行状況を示しており、この最初の時間D分の出力遷移確率γは、図１３左から１番目のラインL12が表す後ろ向き確率β１の計算に用いられる。
【０３８９】
また、ラインL53は、時間2D分の後ろ向き確率βのうちの、時刻を遡る順で、後の時間D分の出力遷移確率γ（例えば、時刻t=0ないし2D-1の出力遷移確率γであれば、時刻t=0ないしD-1の出力遷移確率）の読み出しの進行状況を示しており、この後の時間D分の出力遷移確率γは、図１３左から１番目のラインL13が表す後ろ向き確率β２の計算に用いられる。
【０３９０】
図１３左から２番目において、ラインL54は、前向き確率αと出力軟値データλとの計算に用いられる出力遷移確率γの、第１γメモリ２０３ないし第４γメモリ２０６からの読み出しの進行状況を示している。
【０３９１】
前向き確率αと出力軟値データλとの計算に用いられる出力遷移確率γの読み出しは、図１３左から１番目のラインL14で説明した、前向き確率αと出力軟値データλとを計算するときに、時刻順に、つまり、第１γメモリ２０３ないし第４γメモリ２０６のアドレスの小さいワードから大きいワードに向かって行われる。
【０３９２】
時刻t=4D以降においては、ラインL54が表す第１γメモリ２０３ないし第４γメモリ２０６からの出力遷移確率γの読み出しと、ラインL51が表す第１γメモリ２０３ないし第４γメモリ２０６に対する出力遷移確率γの書き込みとが同時に行われるリードモディファイライトが行われる。
【０３９３】
図１３左から３番目（右から１番目）は、βメモリ２１３に対するデータの読み書きの進行状況を示している。
【０３９４】
図１３左から３番目において、横軸は、βメモリ２１３のアドレスを表しており、縦軸は、図１３左から１番目と同様に、時刻を表している。
【０３９５】
図１３左から３番目において、ラインL61は、βメモリ２１３に対する後ろ向き確率β（β２）の書き込みの進行状況を示している。
【０３９６】
後ろ向き確率β（β２）の、βメモリ２１３への書き込みは、ラインL61として示したように時刻3Dから開始される
【０３９７】
そして、後ろ向き確率β（β２）は、時刻を遡る順に、βメモリ２１３に書き込まれるが、この、時刻を遡る順の後ろ向き確率βの書き込みについては、βメモリ２１３のアドレスの大きいワードから小さいワードに向かって書き込みを行うことと、逆に、βメモリ２１３のアドレスの小さいワードから大きいワードに向かって書き込みを行うこととが、打ち切り長Dの周期で交互に繰り返される。
【０３９８】
なお、βメモリ２１３に書き込まれる後ろ向き確率βは、図１３左から１番目のラインL13が表す後ろ向き確率β２だけである。
【０３９９】
図１３左から３番目において、ラインL62は、出力軟値データλの計算に用いられる後ろ向き確率β２の、βメモリ２１３からの読み出しの進行状況を示している。
【０４００】
後ろ向き確率β２の、βメモリ２１３からの読み出しは、ラインL62として示したように時刻4Dから開始されるが、このラインL62では、打ち切り長Dだけ前に、βメモリ２１３に書き込まれた後ろ向き確率β２が読み出される。
【０４０１】
時刻t=4D以降においては、ラインL62が表すβメモリ２１３からの後ろ向き確率β２の読み出しと、ラインL61が表す後ろ向き確率β２の書き込みとが同時に行われるリードモディファイライトが行われる。
【０４０２】
なお、ラインL62が表すβメモリ２１３からの後ろ向き確率β２の読み出しは、その後ろ向き確率β２がβメモリ２１３に書き込まれたときの書き込み順の逆順で行われ、これにより、後ろ向き確率β２は、時刻順に、λ計算部１１２に供給される。
【０４０３】
ここで、第１β計算部１０９、又は第２β計算部１１０では、時刻を遡る順の後ろ向き確率β２が計算され、この、時刻を遡る順の後ろ向き確率β２については、βメモリ２１３のアドレスの大きいワードから小さいワードに向かって書き込みを行うことと、逆に、βメモリ２１３のアドレスの小さいワードから大きいワードに向かって書き込みを行うこととが、交互に繰り返される。
【０４０４】
したがって、βメモリ２１３からの後ろ向き確率β２の読み出しが、その後ろ向き確率β２がβメモリ２１３に書き込まれたときの書き込み順の逆順で行われることにより、βメモリ２１３からは、後ろ向き確率β２が、時刻順に読み出される。
【０４０５】
以上のように、入力データit（例えば、畳み込み符号器であるチャネル#22への入力となるLDPC符号）を符号化した符号化データXt（例えば、畳み込み符号器であるチャネル#22が出力する符号化データXt）がチャネル（例えば、AWGNチャネル）を経由することにより得られる入力軟値データYtを、入力データitの尤度を表す出力軟値データλtに復号するSISO復号器６７において、入力軟値データYtから、出力軟値データλtを求める、例えば、式（１８）や、式（１９）、式（２２）等の所定の計算に用いる出力遷移確率γや、後ろ向き確率βを記憶する記憶手段として、レジスタ３０３1ないし３０３Wを用いて構成された、データの書き込みと読み出しとを同時にすること（リードモディファイライト）が可能な第１γメモリ２０３ないし第４γメモリ２０６、及びβメモリ２１３を採用したので、SISO復号器６７の回路規模を小さくすることができる。
【０４０６】
すなわち、出力遷移確率γを記憶する記憶手段として、レジスタを用いて構成された、リードモディファイライトが可能なメモリを採用することにより、出力遷移確率γを記憶する記憶手段は、図１０に示したように、第１γメモリ２０３ないし第４γメモリ２０６の４個のメモリで済み、図７に示したシングルポートのRAMを採用した場合に、５個の第１γRAM１０３ないし第５γRAM１０７が必要となるのに対して、出力遷移確率γを記憶する記憶手段の個数を、１個だけ少なくすることができる。
【０４０７】
同様に、後ろ向き確率βを記憶する記憶手段として、レジスタを用いて構成された、リードモディファイライトが可能なメモリを採用することにより、後ろ向き確率βを記憶する記憶手段は、図１０に示したように、βメモリ２１３の、１個のメモリだけで済み、図７に示したシングルポートのRAMを採用した場合に、２個の第１βRAM１１３及び第２βRAM１１４が必要となるのに対して、後ろ向き確率βを記憶する記憶手段の個数を、１個だけ少なくすることができる。
【０４０８】
また、ワード数が小さい場合には、シングルポートのRAMは、前述したように、メモリセル以外のオーバヘッドが占める割合が大になるため、同一の記憶容量であれば、シングルポートのRAMより、レジスタを用いて構成された、リードモディファイライトが可能なメモリの方が、回路規模を小さくすることができ、かかる点からも、リードモディファイライトが可能なメモリを採用することにより、SISO復号器６７の回路規模を小さくすることができる。
【０４０９】
さらに、図１２で説明したように、第１γメモリ２０３ないし第４γメモリ２０６からの、前向き確率αの計算、及び出力軟値データλの計算に用いられる出力遷移確率γの読み出し、並びに、γ計算部１０１で求められた出力遷移確率γの、第１γメモリ２０３ないし第４γメモリ２０６への書き込みを、同時に行うリードモディファイライトと、βメモリ２１３からの、λ計算部１１２で用いる後ろ向き確率β２の読み出し、及び、第１β計算部１０９、又は第２β計算部１１０で計算された後ろ向き確率β２の、βメモリ２１３への書き込みを、同時に行うリードモディファイライトとが行われるように、第１γメモリ２０３ないし第４γメモリ２０６、及びβメモリ２１３に対する読み書きの制御を行うことにより、図１３で説明したように、シングルポートのRAMを採用した図９の場合と同一の処理速度（性能）で、軟入力軟出力の復号を行うことができる。
【０４１０】
なお、図１０のSISO復号器６７では、SW-Max-Log-BCJRアルゴリズムの他、例えば、SW-Log-BCJRアルゴリズム等にしたがって、軟入力軟出力の復号を行うことが可能である。
【０４１１】
また、本実施の形態では、光ディスクから得られた入力軟値データYtを、出力軟値データλtに復号することとしたが、本発明は、光ディスク等の記録媒体から得られた入力軟値データYtを出力軟値データλtに復号する場合の他、例えば、無線や有線の伝送媒体を介して送信されてきた入力軟値データYtを出力軟値データλtに復号する場合にも適用することができる。
【０４１２】
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０４１３】
【図１】従来の光ディスク装置の一例の構成を示すブロック図である。
【図２】BCJRアルゴリズムを説明する通信路のモデルを示す図である。
【図３】畳み込み符号器２１を表すトレリスを示す図である。
【図４】状態の個数Mが４個である場合の、出力遷移確率γt(m',m,i)を示す図である。
【図５】SW-BCJRアルゴリズムを説明する図である。
【図６】本発明が適用される光ディスク装置の構成例を示すブロック図である。
【図７】シングルポートのRAMを用いたSISO復号器６７の構成例を示すブロック図である。
【図８】第１γRAM１０３ないし第５γRAM１０７に対する読み書き制御の処理と、第１βRAM１１３及び第２βRAM１１４に対する読み書き制御の処理とを説明する図である。
【図９】第１γRAM１０３ないし第５γRAM１０７に対する読み書き制御の処理と、第１βRAM１１３及び第２βRAM１１４に対する読み書き制御の処理とを説明する図である。
【図１０】レジスタを用いたSISO復号器６７の構成例を示すブロック図である。
【図１１】第１γメモリ２０３の構成例を示す図である。
【図１２】第１γメモリ２０３ないし第４γメモリ２０６に対する読み書き制御の処理と、βメモリ２１３に対する読み書き制御の処理とを説明する図である。
【図１３】第１γメモリ２０３ないし第４γメモリ２０６に対する読み書き制御の処理と、βメモリ２１３に対する読み書き制御の処理とを説明する図である。
【符号の説明】
【０４１４】
２１  畳み込み符号器，  ２２  無記憶通信路，  ２３  復号器，  ６１  リードソロモン符号器，  ６２  LDPC符号器，  ６３  変調符号器，  ６４  NRZI変換器，  ６５  記録再生系，  ６７  SISO復号器，  ６８  LDPC復号器，  ６９  リードソロモン復号器，  １０１  γ計算部，  １０２  γRAM制御部，  １０３  第１γRAM，  １０４  第２γRAM，  １０５  第３γRAM，  １０６  第４γRAM，  １０７  第５γRAM，  １０８  α計算部，  １０９  第１β計算部，  １１０  第２β計算部，  １１１  βRAM制御部，  １１２  λ計算部，  １１３  第１βRAM，  １１４  第２βRAM，  ２０２  γメモリ制御部，  ２０３  第１γメモリ，  ２０４  第２γメモリ，  ２０５  第３γメモリ，  ２０６  第４γメモリ，  ２１１  βメモリ制御部，  ２１３  βメモリ
【図１】
2008182442.tif 000027
【図２】
2008182442.tif 000028
【図３】
2008182442.tif 000029
【図４】
2008182442.tif 000030
【図５】
2008182442.tif 000031
【図６】
2008182442.tif 000032
【図７】
2008182442.tif 000033
【図８】
2008182442.tif 000034
【図９】
2008182442.tif 000035
【図１０】
2008182442.tif 000036
【図１１】
2008182442.tif 000037
【図１２】
2008182442.tif 000038
【図１３】
2008182442.tif 000039