(57)【要約】【課題】軟入力軟出力の復号の性能を向上させる。【解決手段】時刻の経過にしたがって遷移する状態と、状態の遷移を表す枝とからなり、可能な遷移が時刻によって変化し、周期性を有するトレリスである時変トレリスについて、周期性を有する時変トレリスの１周期における所定のタイミングを表す位相情報に基づいて生成される、枝が表す遷移が可能な遷移、又は不可能な遷移であることを表す遷移情報と、入力軟値データから出力軟値データを求める所定の計算に用いる枝のデータとが対応付けられ、第１γRAM３０３ないし第５γRAM３０７に記憶される。α計算部３０８、第１β計算部３０９、第２β計算部３１０、及びλ計算部３１２では、遷移情報に基づき、可能な遷移を表す枝のみのデータを用いて、所定の計算が行われる。本発明は、軟入力軟出力の復号を行う、例えば、光ディスク装置等に適用できる。【選択図】図２１
2008187496.tif 000002
【特許請求の範囲】
【請求項１】
入力データを符号化した符号化データがチャネルを経由することにより得られる軟値のデータである入力軟値データを、前記入力データの尤度を表す軟値のデータである出力軟値データに復号する復号装置において、
時刻の経過にしたがって遷移する状態と、状態の遷移を表す枝とからなり、前記チャネルを表現するトレリスであって、可能な遷移が時刻によって変化し、周期性を有するトレリスである時変トレリスについて、前記周期性を有する前記時変トレリスの１周期における所定のタイミングを表す位相情報に基づいて生成される、前記枝が表す遷移が可能な遷移、又は不可能な遷移であることを表す遷移情報と、
前記入力軟値データから前記出力軟値データを求める所定の計算に用いる、前記枝のデータと
を対応付けて記憶する記憶手段と、
前記遷移情報に基づき、可能な遷移を表す枝のみのデータを用いて、前記所定の計算を行う計算手段と
を備える復号装置。
【請求項２】
前記計算手段は、SW-Log-BCJRアルゴリズム、又はSW-Max-Log-BCJRアルゴリズムにしたがった前記所定の計算を行う
請求項１に記載の復号装置。
【請求項３】
前記周期性を有する前記時変トレリスの１周期の先頭のタイミングを表す前記位相情報に基づいて、カウント値をリセットし、前記入力軟値データが供給されるごとに、前記カウント値を変更するカウンタ手段と、
前記カウント値に基づいて、前記カウント値に対応する時刻の状態から次の時刻の状態への遷移を表す枝ごとの、前記枝が、可能な遷移を表す有効枝であるか、又は不可能な遷移を表す無効枝であることを表す枝情報を、前記遷移情報として生成する枝情報生成手段と
をさらに備える
請求項１に記載の復号装置。
【請求項４】
前記周期性を有する前記時変トレリスの１周期の先頭のタイミングを表す前記位相情報に基づいて、カウント値をリセットし、前記入力軟値データが供給されるごとに、前記カウント値を変更するカウンタ手段と、
前記カウント値に基づいて、前記カウント値に対応する時刻の状態から次の時刻の状態への遷移のうちの、可能な遷移のパターンを表すパターン情報を、前記遷移情報として生成するパターン情報生成手段と
をさらに備える
請求項１に記載の復号装置。
【請求項５】
前記時変トレリスは、少なくとも、前記符号化データを変調符号化する変調符号と、PR(Partial Response)チャネルとを表現するトレリスである
請求項１に記載の復号装置。
【請求項６】
前記PRチャネルは、PR121チャネル、PR1221チャネル、又はPR12221チャネルである
請求項５に記載の復号装置。
【請求項７】
前記変調符号は、17PP符号(Parity Preserve/Prohibit Repeated Minimum Transition Runlength)である
請求項５に記載の復号装置。
【請求項８】
前記枝のデータは、前記時変トレリスにおいて、時刻t-1に、状態m'にいて、次の時刻tの入力データitがある値iであるときに、ある入力軟値データYtが観測され、状態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+1以降に、前記入力軟値データの系列Yt+1,Yt+2,・・・が観測されるときに、前記時変トレリスにおいて、時刻tに、状態mにいる後ろ向き確率βt(m)を表すデータを計算するβ計算部と、
前記出力遷移確率γt(m',m,i)、時刻t-1に状態m'にいる前記前向き確率αt-1(m')、及び前記後ろ向き確率βt(m)を表すデータを用いて、時刻tの入力データitがある値iであることの尤度を表す前記出力軟値データλtを計算するλ計算部と
を有し、
前記α計算部は、前記遷移情報に基づき、状態m'から状態mへの遷移のうちの、可能な遷移を表す枝のみのデータである前記出力遷移確率γt(m',m,i)を表すデータを用いて、前向き確率αt(m)を表すデータを計算し、
前記β計算部は、前記遷移情報に基づき、状態mから状態m'への遷移のうちの、可能な遷移を表す枝のみのデータである前記出力遷移確率γt+1(m,m',i)を表すデータを用いて、前記後ろ向き確率βt(m)を表すデータを計算し、
前記λ計算部は、前記遷移情報に基づき、状態m'から状態mへの遷移のうちの、可能な遷移を表す枝のみのデータである前記出力遷移確率γt(m',m,i)を表すデータを用いて、前記出力軟値データλtを計算する
請求項１に記載の復号装置。
【請求項９】
入力データを符号化した符号化データがチャネルを経由することにより得られる軟値のデータである入力軟値データを、前記入力データの尤度を表す軟値のデータである出力軟値データに復号する復号装置の復号方法において、
時刻の経過にしたがって遷移する状態と、状態の遷移を表す枝とからなり、前記チャネルを表現するトレリスであって、可能な遷移が時刻によって変化し、周期性を有するトレリスである時変トレリスについて、前記周期性を有する前記時変トレリスの１周期における所定のタイミングを表す位相情報に基づいて生成される、前記枝が表す遷移が可能な遷移、又は不可能な遷移であることを表す遷移情報と、
前記入力軟値データから前記出力軟値データを求める所定の計算に用いる、前記枝のデータと
を対応付けて記憶し、
前記遷移情報に基づき、可能な遷移を表す枝のみのデータを用いて、前記所定の計算を行う
ステップを含む復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置及び復号方法に関し、特に、軟値のデータである入力軟値データを、他の軟値のデータである出力軟値データに復号する、軟入力軟出力の復号の性能を向上させることができるようにする復号装置及び復号方法に関する。
【背景技術】
【０００２】
ディスク等の記録媒体にデータを記録する場合には、誤り訂正等のために、データは、符号化されて記録される。
【０００３】
図１は、従来の光ディスク装置の一例の構成を示している。
【０００４】
図１の光ディスク装置においては、データの記録時には、図示せぬ光ディスクに記録する記録対象のデータが、リードソロモン符号器１１に供給される。
【０００５】
ここで、記録対象のデータは、ビット列であり、各ビットは、0又は1のうちのいずれかの値をとる。
【０００６】
リードソロモン符号器１１は、記録対象のデータをリードソロモン符号に符号化し、0又は1のうちのいずれかの値をとるビット列としてのリードソロモン符号を、変調符号器１２に供給する。
【０００７】
変調符号器１２は、リードソロモン符号器１１からのリードソロモン符号を、例えば、17PP符号(Parity Preserve/Prohibit Repeated Minimum Transition Runlength)等の変調符号に変調符号化し、その変調符号として、0又は1のうちのいずれかの値をとるビット列としての17PP符号を、NRZI(Non Return to Zero Inversion)変換器１３に供給する。
【０００８】
ここで、光ディスク装置では、安定した再生を行うために、変調符号が用いられる。変調符号としては、光ディスクに形成されるピットの長さを制限するために、例えば、1と1との間に連続して存在する0の個数をd個以上k個以下に制限する(d,k)制限を行うRLL(Run Length Limited)符号や、DC(Direct Current)成分の制御が可能な符号が用いられる。例えば、ブルーレイディスクでは、17PP符号と呼ばれる変調符号が採用されている。17PP符号は、1と1との間に、１ないし７の範囲のいずれかの個数の0が現れる(1,7)制限を行う符号(Run Length Limited Code(1,7))であって、かつ、DC成分を制御可能な変調符号である。
【０００９】
なお、変調符号器１２での変調符号化は、例えば、リードソロモン符号と17PP符号とを対応付けた変換テーブルを用いて行うことができる。
【００１０】
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')を、式（１）で表す。
【００４０】
【数１】
2008187496.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(|)によって定義される。
【００４５】
【数２】
2008187496.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τ}とを用いて、式（３）で表される。
【００４８】
【数３】
2008187496.tif 000005
・・・（３）
【００４９】
式（３）の出力軟値データλtを求めるために、確率αt(m)，βt(m)、及びγt(m',m,i)を、次式で定義する。
【００５０】
【数４】
2008187496.tif 000006
・・・（４）
【００５１】
【数５】
2008187496.tif 000007
・・・（５）
【００５２】
【数６】
2008187496.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)を用い、式（７）によって計算することができる。
【００６２】
【数７】
2008187496.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)とを用いて、式（８）で表すことができる。
【００６４】
【数８】
2008187496.tif 000010
・・・（８）
【００６５】
ここで、図２の通信路モデルにおいて、畳み込み符号化は、上述したように、時刻t=0の状態S0=0から開始されるので、時刻t=0の前向き確率α0(m)は、式（９）で表される。
【００６６】
【数９】
2008187496.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)とを用いて、式（１０）で表すことができる。
【００６８】
【数１０】
2008187496.tif 000012
・・・（１０）
【００６９】
ここで、図２の通信路モデルにおいて、畳み込み符号化は、上述したように、時刻t=τの状態Sτ=0で終了するので、時刻t=τの後ろ向き確率βτ(m)は、式（１１）で表される。
【００７０】
【数１１】
2008187496.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)とを用いて、式（１２）で表される。
【００７２】
【数１２】
2008187496.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を底とする対数（自然対数）で表し、確率の積演算を、式（１３）に示すように、対数の和演算に置き換え、確率の和演算を、式（１４）に示すように、対数の最大値演算で近似する。
【００８３】
【数１３】
2008187496.tif 000015
・・・（１３）
【００８４】
【数１４】
2008187496.tif 000016
・・・（１４）
【００８５】
なお、max(x,y)は、xとyの中の最大値を選択することを表す。
【００８６】
いま、前向き確率（を表すデータ）として、式（１５）のαt'(m)を、後ろ向き確率（を表すデータ）として、式（１６）のβt'(m)を、出力遷移確率（を表すデータ）として、式（１７）のγt'(m',m,i)を、それぞれ採用することとする。
【００８７】
【数１５】
2008187496.tif 000017
・・・（１５）
【００８８】
【数１６】
2008187496.tif 000018
・・・（１６）
【００８９】
【数１７】
2008187496.tif 000019
・・・（１７）
【００９０】
この場合、式（１５）の前向き確率αt'(m)は、式（１５）に式（８）を代入することにより、式（１８）で近似することができる。
【００９１】
【数１８】
2008187496.tif 000020
・・・（１８）
【００９２】
また、式（１６）の後ろ向き確率βt'(m)は、式（１６）に式（１０）を代入することにより、式（１９）で近似することができる。
【００９３】
【数１９】
2008187496.tif 000021
・・・（１９）
【００９４】
さらに、式（１７）の出力遷移確率γt'(m',m,i)は、式（１７）に式（１２）を代入することにより、式（２０）で表すことができる。
【００９５】
【数２０】
2008187496.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'は、式（２１）に、式（７）を代入することにより、式（２２）で近似することができる。
【００９９】
【数２１】
2008187496.tif 000023
・・・（２１）
【０１００】
【数２２】
2008187496.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)については、次式が成り立つ。
【０１１０】
【数２３】
2008187496.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が求められる（図５）。
【０１２３】
【数２４】
2008187496.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
【発明の開示】
【発明が解決しようとする課題】
【０１２９】
ところで、軟入力軟出力の復号で対象とするトレリスには、時変トレリスがある。
【０１３０】
時変トレリスは、可能な遷移が時刻によって変化し、周期性を有する。
【０１３１】
すなわち、例えば、入力データitが0又は1のうちのいずれかの値をとる場合には、ある１の状態からの遷移としては、入力データitが0であるときの遷移と、入力データitが1であるときの遷移との２つの遷移が存在する。
【０１３２】
そして、トレリスには、１の状態について存在する２つの遷移のうちの、可能な遷移が時刻によって変化し、周期性を有する時変トレリスがある。
【０１３３】
時変トレリスでは、状態について存在する遷移の中で、可能な遷移（及び不可能な遷移）が時刻によって変化するので、ある時刻では、可能な遷移が、他の時刻では、不可能な遷移となる（ある時刻では、不可能な遷移が、他の時刻では、可能な遷移となる）ことがある。
【０１３４】
ここで、以下、適宜、時変トレリスにおいて、状態について存在する遷移の中で、可能な遷移を表す枝を、有効枝といい、不可能な遷移を表す枝を、無効枝という。
【０１３５】
また、時変トレリスは、周期性を有するので、ある時刻の状態と次の時刻の状態との間に存在する遷移を表す枝のうちの、可能な遷移を表す有効枝（及び不可能な遷移を表す無効枝）がとるパターン（以下、適宜、遷移パターンという）は、一定の周期で現れる。
【０１３６】
すなわち、周期性を有する時変トレリスの１周期の時間を、周期Tと表すこととすると、その周期Tの先頭から終わりまでにおいて、ある時刻の状態と次の時刻の状態との間には、様々な遷移パターンが現れる。そして、時刻tの状態と次の時刻t+1の状態との間に現れた遷移パターンは、周期Tだけ後の時刻t+Tの状態と次の時刻t+T+1の状態との間に、再び現れる（但し、周期Tが経過する前の時刻にも現れることがある）。
【０１３７】
軟入力軟出力の復号では、入力軟値データYtから出力軟値データλを求める、例えば、式（１８）や、式（１９）、式（２２）等の所定の計算に、枝のデータである出力遷移確率γが用いられる。
【０１３８】
しかしながら、時変トレリスでは、状態について存在する遷移の中で、可能な遷移、つまり、有効枝が時刻によって変化する。
【０１３９】
そして、軟入力軟出力の復号において、出力軟値データλを求める所定の計算を、有効枝のみならず、無効枝についても行うと、可能性として、無効枝を通るパスの尤度が最も高くなることがあり得るため、軟入力軟出力の復号の性能（精度）が劣化するおそれがある。
【０１４０】
本発明は、このような状況に鑑みてなされたものであり、軟入力軟出力の復号の性能を向上させることができるようにするものである。
【課題を解決するための手段】
【０１４１】
本発明の一側面の復号装置は、入力データを符号化した符号化データがチャネルを経由することにより得られる軟値のデータである入力軟値データを、前記入力データの尤度を表す軟値のデータである出力軟値データに復号する復号装置であり、時刻の経過にしたがって遷移する状態と、状態の遷移を表す枝とからなり、前記チャネルを表現するトレリスであって、可能な遷移が時刻によって変化し、周期性を有するトレリスである時変トレリスについて、前記周期性を有する前記時変トレリスの１周期における所定のタイミングを表す位相情報に基づいて生成される、前記枝が表す遷移が可能な遷移、又は不可能な遷移であることを表す遷移情報と、前記入力軟値データから前記出力軟値データを求める所定の計算に用いる、前記枝のデータとを対応付けて記憶する記憶手段と、前記遷移情報に基づき、可能な遷移を表す枝のみのデータを用いて、前記所定の計算を行う計算手段とを備える。
【０１４２】
本発明の一側面の復号方法は、入力データを符号化した符号化データがチャネルを経由することにより得られる軟値のデータである入力軟値データを、前記入力データの尤度を表す軟値のデータである出力軟値データに復号する復号装置の復号方法であり、時刻の経過にしたがって遷移する状態と、状態の遷移を表す枝とからなり、前記チャネルを表現するトレリスであって、可能な遷移が時刻によって変化し、周期性を有するトレリスである時変トレリスについて、前記周期性を有する前記時変トレリスの１周期における所定のタイミングを表す位相情報に基づいて生成される、前記枝が表す遷移が可能な遷移、又は不可能な遷移であることを表す遷移情報と、前記入力軟値データから前記出力軟値データを求める所定の計算に用いる、前記枝のデータとを対応付けて記憶し、前記遷移情報に基づき、可能な遷移を表す枝のみのデータを用いて、前記所定の計算を行うステップを含む。
【０１４３】
本発明の一側面においては、時変トレリスについて、周期性を有する前記時変トレリスの１周期における所定のタイミングを表す位相情報に基づいて生成される、枝が表す遷移が可能な遷移、又は不可能な遷移であることを表す遷移情報と、入力軟値データから出力軟値データを求める所定の計算に用いる、前記枝のデータとが対応付けて記憶され、前記遷移情報に基づき、可能な遷移を表す枝のみのデータを用いて、前記所定の計算が行われる。
【発明の効果】
【０１４４】
本発明の一側面によれば、軟入力軟出力の復号を行うことができ、特に、軟入力軟出力の復号の性能を向上させることができる。
【発明を実施するための最良の形態】
【０１４５】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【０１４６】
本発明の一側面の復号装置は、
入力データ（例えば、入力データitとしてのLDPC符号）を符号化した符号化データ（例えば、符号化データXt）がチャネル（例えば、図１９のAWGNチャネル）を経由することにより得られる軟値のデータである入力軟値データ（例えば、入力軟値データYt）を、前記入力データの尤度を表す軟値のデータである出力軟値データ（例えば、出力軟値データλ）に復号する復号装置（例えば、図１９のSISO復号器２８２）であり、
時刻の経過にしたがって遷移する状態と、状態の遷移を表す枝とからなり、前記チャネルを表現するトレリスであって、可能な遷移が時刻によって変化し、周期性を有するトレリスである時変トレリスについて、前記周期性を有する前記時変トレリスの１周期における所定のタイミングを表す位相情報に基づいて生成される、前記枝が表す遷移が可能な遷移、又は不可能な遷移であることを表す遷移情報（例えば、枝情報やパターン情報）と、
前記入力軟値データから前記出力軟値データを求める所定の計算（例えば、式（１８）や、式（１９）、式（２２））に用いる、前記枝のデータ（例えば、出力遷移確率γ）と
を対応付けて記憶する記憶手段（例えば、図２１の第１γRAM３０３ないし第５γRAM３０７や、図２６の第１γRAM４０３ないし第５γRAM４０７）と、
前記遷移情報に基づき、可能な遷移を表す枝のみのデータを用いて、前記所定の計算を行う計算手段（例えば、図２１や図２６のα計算部３０８や、第１β計算部３０９及び３１０、λ計算部３１２）と
を備える。
【０１４７】
一側面の復号装置には、
前記周期性を有する前記時変トレリスの１周期の先頭のタイミングを表す前記位相情報に基づいて、カウント値をリセットし、前記入力軟値データが供給されるごとに、前記カウント値を変更するカウンタ手段（例えば、図２１のカウンタ３１５）と、
前記カウント値に基づいて、前記カウント値に対応する時刻の状態から次の時刻の状態への遷移を表す枝ごとの、前記枝が、可能な遷移を表す有効枝であるか、又は不可能な遷移を表す無効枝であることを表す枝情報を、前記遷移情報として生成する枝情報生成手段（例えば、図２１の枝情報生成部３１６）と
をさらに設けることができる。
【０１４８】
また、一側面の復号装置には、
前記周期性を有する前記時変トレリスの１周期の先頭のタイミングを表す前記位相情報に基づいて、カウント値をリセットし、前記入力軟値データが供給されるごとに、前記カウント値を変更するカウンタ手段（例えば、図２６のカウンタ３１５）と、
前記カウント値に基づいて、前記カウント値に対応する時刻の状態から次の時刻の状態への遷移のうちの、可能な遷移のパターンを表すパターン情報を、前記遷移情報として生成するパターン情報生成手段（例えば、図２６のパターン情報生成部４１６）と
をさらに設けることができる。
【０１４９】
一側面の復号装置において、
前記枝のデータは、前記時変トレリスにおいて、時刻t-1に、状態m'にいて、次の時刻tの入力データitがある値iであるときに、ある入力軟値データYtが観測され、状態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+1以降に、前記入力軟値データの系列Yt+1,Yt+2,・・・が観測されるときに、前記時変トレリスにおいて、時刻tに、状態mにいる後ろ向き確率βt(m)を表すデータを計算するβ計算部（例えば、図２１や図２６の第１β計算部３０９及び第２β計算部３１０）と、
前記出力遷移確率γt(m',m,i)、時刻t-1に状態m'にいる前記前向き確率αt-1(m')、及び前記後ろ向き確率βt(m)を表すデータを用いて、時刻tの入力データitがある値iであることの尤度を表す前記出力軟値データλtを計算するλ計算部（例えば、図２１や図２６のλ計算部３１２）と
を設けることができ、
前記α計算部には、前記遷移情報に基づき、状態m'から状態mへの遷移のうちの、可能な遷移を表す枝のみのデータである前記出力遷移確率γt(m',m,i)を表すデータを用いて、前向き確率αt(m)を表すデータを計算させ、
前記β計算部には、前記遷移情報に基づき、状態mから状態m'への遷移のうちの、可能な遷移を表す枝のみのデータである前記出力遷移確率γt+1(m,m',i)を表すデータを用いて、前記後ろ向き確率βt(m)を表すデータを計算させ、
前記λ計算部には、前記遷移情報に基づき、状態m'から状態mへの遷移のうちの、可能な遷移を表す枝のみのデータである前記出力遷移確率γt(m',m,i)を表すデータを用いて、前記出力軟値データλtを計算させる
ことができる。
【０１５０】
本発明の一側面の復号方法は、
入力データ（例えば、入力データitとしてのLDPC符号）を符号化した符号化データ（例えば、符号化データXt）がチャネル（例えば、図１９のAWGNチャネル）を経由することにより得られる軟値のデータである入力軟値データ（例えば、入力軟値データYt）を、前記入力データの尤度を表す軟値のデータである出力軟値データ（例えば、出力軟値データλ）に復号する復号装置（例えば、図１９のSISO復号器２８２）の復号方法であり、
時刻の経過にしたがって遷移する状態と、状態の遷移を表す枝とからなり、前記チャネルを表現するトレリスであって、可能な遷移が時刻によって変化し、周期性を有するトレリスである時変トレリスについて、前記周期性を有する前記時変トレリスの１周期における所定のタイミングを表す位相情報に基づいて生成される、前記枝が表す遷移が可能な遷移、又は不可能な遷移であることを表す遷移情報（例えば、枝情報やパターン情報）と、
前記入力軟値データから前記出力軟値データを求める所定の計算（例えば、式（１８）や、式（１９）、式（２２））に用いる、前記枝のデータ（例えば、出力遷移確率γ）と
を対応付けて記憶し（例えば、図２５のステップＳ１０３や、図２７のステップＳ１３３）、
前記遷移情報に基づき、可能な遷移を表す枝のみのデータを用いて、前記所定の計算を行う（例えば、図２５のステップＳ１１２や、図２７のステップＳ１４３）
ステップを含む。
【０１５１】
以下、図面を参照して、本発明の実施の形態について説明する。
【０１５２】
図６は、軟入力軟出力の復号を行う光ディスク装置の構成例を示している。
【０１５３】
図６の光ディスク装置においては、データの記録時には、図示せぬ光ディスクに記録する記録対象のデータが、リードソロモン符号器６１に供給される。
【０１５４】
ここで、記録対象のデータは、ビット列であり、各ビットは、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も、トレリスで表現することができる。
【０１６４】
また、変調符号器６３の入力から出力までのチャネル、すなわち、図６では、LDPC符号を変調符号化する変調符号は、有効枝と無効枝、つまり、可能な遷移が時刻によって変化する、周期性を有する時変トレリスで表現することができる。
【０１６５】
そして、トレリスで表現することができるチャネル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のうちのいずれかの値をとるデータに復号して出力する。
【０１７２】
次に、上述したように、図６において、チャネルsys#21は、PR121チャネル、PR1221チャネル、又はPR12221チャネルなどのPRチャネルであり、図７を参照して、PRチャネルについて説明する。
【０１７３】
すなわち、図７は、PR121チャネル、PR1221チャネル、及びPR12221チャネルのモデルを示している。
【０１７４】
図７上から１番目は、PR121チャネルのモデルを示している。
【０１７５】
いま、チャネルsys#21に入力されるデータを、チャネル入力データというとともに、そのチャネル入力データが、チャネルsys#21を経由することにより得られるデータ、つまり、チャネルsys#21が出力するデータを、チャネル出力データということとする。
【０１７６】
チャネルsys#21がPR121チャネルである場合、チャネル入力データは、データD200として、レジスタ２００と演算器２０２に供給される。
【０１７７】
レジスタ２００は、データD200をラッチし、１時刻だけ遅延して、データD201として、レジスタ２０１及び演算器２０３に供給する。
【０１７８】
レジスタ２０１は、レジスタ２００からのデータD201をラッチし、１時刻だけ遅延して、データD202として、演算器２０４に供給する。
【０１７９】
演算器２０２は、チャネル入力データであるデータD200と値1とを乗算し、その結果得られる乗算値を、演算器２０５に供給する。
【０１８０】
演算器２０３は、レジスタ２００から供給されるデータD201と、値2とを乗算し、その結果得られる乗算値を、演算器２０５に供給する。
【０１８１】
演算器２０４は、レジスタ２０１から供給されるデータD202と、値1とを乗算し、その結果得られる乗算値を、演算器２０５に供給する。
【０１８２】
演算器２０５は、演算器２０２ないし２０４それぞれからの乗算値を加算し、その結果得られる加算値D203を、チャネル出力データとして出力する。
【０１８３】
したがって、PR121チャネルでは、現在のチャネル入力データを１倍した値、１時刻前のチャネル入力データを２倍した値、及び２時刻前のチャネル入力データを１倍した値を加算した加算値が、チャネル出力データとして出力される。
【０１８４】
図７上から２番目は、PR1221チャネルのモデルを示している。
【０１８５】
チャネルsys#21がPR1221チャネルである場合、チャネル入力データは、データD210として、レジスタ２１０と演算器２１３に供給される。
【０１８６】
レジスタ２１０は、データD210をラッチし、１時刻だけ遅延して、データD211として、レジスタ２１１及び演算器２１４に供給する。
【０１８７】
レジスタ２１１は、レジスタ２１０からのデータD211をラッチし、１時刻だけ遅延して、データD212として、レジスタ２１２及び演算器２１５に供給する。
【０１８８】
レジスタ２１２は、レジスタ２１１からのデータD212をラッチし、１時刻だけ遅延して、データD213として、演算器２１６に供給する。
【０１８９】
演算器２１３は、チャネル入力データであるデータD210と値1とを乗算し、その結果得られる乗算値を、演算器２１７に供給する。
【０１９０】
演算器２１４は、レジスタ２１０から供給されるデータD211と、値2とを乗算し、その結果得られる乗算値を、演算器２１７に供給する。
【０１９１】
演算器２１５は、レジスタ２１１から供給されるデータD212と、値2とを乗算し、その結果得られる乗算値を、演算器２１７に供給する。
【０１９２】
演算器２１６は、レジスタ２１２から供給されるデータD213と、値1とを乗算し、その結果得られる乗算値を、演算器２１７に供給する。
【０１９３】
演算器２１７は、演算器２１３ないし２１６それぞれからの乗算値を加算し、その結果得られる加算値D214を、チャネル出力データとして出力する。
【０１９４】
したがって、PR1221チャネルでは、現在のチャネル入力データを１倍した値、１時刻前のチャネル入力データを２倍した値、２時刻前のチャネル入力データを２倍した値、及び３時刻前のチャネル入力データを１倍した値を加算した加算値が、チャネル出力データとして出力される。
【０１９５】
図７上から３番目（下から１番目）は、PR12221チャネルのモデルを示している。
【０１９６】
チャネルsys#21がPR12221チャネルである場合、チャネル入力データは、データD220として、レジスタ２２０と演算器２２４に供給される。
【０１９７】
レジスタ２２０は、データD220をラッチし、１時刻だけ遅延して、データD221として、レジスタ２２１及び演算器２２５に供給する。
【０１９８】
レジスタ２２１は、レジスタ２２０からのデータD221をラッチし、１時刻だけ遅延して、データD222として、レジスタ２２２及び演算器２２６に供給する。
【０１９９】
レジスタ２２２は、レジスタ２２１からのデータD222をラッチし、１時刻だけ遅延して、データD223として、レジスタ２２３及び演算器２２７に供給する。
【０２００】
レジスタ２２３は、レジスタ２２２からのデータD223をラッチし、１時刻だけ遅延して、データD224として、演算器２２８に供給する。
【０２０１】
演算器２２４は、チャネル入力データであるデータD220と値1とを乗算し、その結果得られる乗算値を、演算器２２９に供給する。
【０２０２】
演算器２２５は、レジスタ２２０から供給されるデータD221と、値2とを乗算し、その結果得られる乗算値を、演算器２２９に供給する。
【０２０３】
演算器２２６は、レジスタ２２１から供給されるデータD222と、値2とを乗算し、その結果得られる乗算値を、演算器２２９に供給する。
【０２０４】
演算器２２７は、レジスタ２２２から供給されるデータD223と、値2とを乗算し、その結果得られる乗算値を、演算器２２９に供給する。
【０２０５】
演算器２２８は、レジスタ２２３から供給されるデータD224と、値1とを乗算し、その結果得られる乗算値を、演算器２２９に供給する
【０２０６】
演算器２２９は、演算器２２４ないし２２８それぞれからの乗算値を加算し、その結果得られる加算値D225を、チャネル出力データとして出力する。
【０２０７】
したがって、PR12221チャネルでは、現在のチャネル入力データを１倍した値、１時刻前のチャネル入力データを２倍した値、２時刻前のチャネル入力データを２倍した値、３時刻前のチャネル入力データを２倍した値、及び４時刻前のチャネル入力データを１倍した値を加算した加算値が、チャネル出力データとして出力される。
【０２０８】
以上のようなPRチャネルは、畳み込み符号化を行う畳み込み符号器とみなすことができ、したがって、畳み込み符号器と同様に、トレリスで表現することができる。
【０２０９】
次に、図８は、図６の記録再生系６５から供給される軟値のデータを、入力軟値データ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のビット数と、出力軟値データλのビット数との積［ビット］である。
【０２４０】
次に、図９及び図１０を参照して、図８のα計算部１０８の処理について、さらに説明する。
【０２４１】
図９は、SISO復号器６７が軟入力軟出力の対象とする時変トレリスの一部を示している。
【０２４２】
図９の時変トレリスでは、３つの状態0,1,2と、時刻t-1の状態0から時刻tの状態1への遷移、及び時刻t-1の状態2から時刻tの状態1への遷移とが存在する。
【０２４３】
ここで、以下、適宜、状態の遷移を、単に、枝ともいい、また、状態m'から状態mへの遷移を、枝m'→mとも記載する。
【０２４４】
いま、図９に示すように、時刻t-1に状態0にいる前向き確率αがaであり、時刻t-1に状態2にいる前向き確率αがbであるとする。また、枝0→1のデータとしての出力遷移確率γがdであり、枝2→1のデータとしての出力遷移確率γがeであるとする。
【０２４５】
この場合、α計算部１０８では、式（１８）にしたがい、時刻t-1に状態0にいる前向き確率αであるaと、枝0→1のデータとしての出力遷移確率γであるdとの加算値a+d、及び、時刻t-1に状態2にいる前向き確率αであるbと、枝2→1のデータとしての出力遷移確率γであるeとの加算値b+eが求められ、その加算値a+dとb+eとのうちの大きい方が、時刻tに状態1にいる前向き確率αであるcとして求められる。
【０２４６】
すなわち、図１０は、α計算部１０８の一部の構成例、つまり、図９の時変トレリスにおいて、時刻tに状態1にいる前向き確率αであるcを求める部分の構成例を示している。
【０２４７】
α計算部１０８では、加算値a+d及びb+eが求められ、加算値a+dは、入力IN0として、加算値b+eは、入力IN1として、いずれも、比較部１５１及びセレクタ１５２に供給される。
【０２４８】
ここで、α計算部１０８では、データは、Wビットで扱われることとする。したがって、入力IN0及びIN1は、いずれもWビットである。
【０２４９】
比較部１５１は、入力IN0とIN1とを比較し、その比較結果に基づいて、１ビットの選択フラグを、セレクタ１５２に供給する。
【０２５０】
すなわち、比較部１５１は、入力IN0が、入力IN1より大きい場合には、値が1の選択フラグを、入力IN0が、入力IN1より大きくない場合には、値が0の選択フラグを、セレクタ１５２に供給する。
【０２５１】
セレクタ１５２は、比較部１５１からの選択フラグに基づき、入力IN0又はIN1のうちの一方を選択し、その選択した方を、WビットのデータMOUTとして出力する。
【０２５２】
すなわち、セレクタ１５２は、比較部１５１からの選択フラグが1であり、したがって、入力IN0が、入力IN1より大きい場合には、入力IN0を選択し、時刻tに状態1にいる前向き確率αであるcとして出力する。
【０２５３】
また、セレクタ１５２は、比較部１５１からの選択フラグが0であり、したがって、入力IN0が、入力IN1より大きくない場合には、入力IN1を選択し、時刻tに状態1にいる前向き確率αであるcとして出力する。
【０２５４】
次に、図１１及び図１２を参照して、図８の第１β計算部１０９の処理について、さらに説明する。
【０２５５】
図１１は、SISO復号器６７が軟入力軟出力の対象とする時変トレリスの一部を示している。
【０２５６】
図１１の時変トレリスでは、３つの状態0,1,2と、時刻tの状態1から時刻t+1の状態0への遷移（枝1→0）、及び時刻tの状態1から時刻t+1の状態2への遷移（枝1→2）とが存在する。
【０２５７】
いま、図１１に示すように、時刻t+1に状態0にいる後ろ向き確率βがaであり、時刻t+1に状態2にいる後ろ向き確率βがbであるとする。また、枝1→0のデータとしての出力遷移確率γがdであり、枝1→2のデータとしての出力遷移確率γがeであるとする。
【０２５８】
この場合、第１β計算部１０９では、式（１９）にしたがい、時刻t+1に状態0にいる後ろ向き確率βであるaと、枝1→0のデータとしての出力遷移確率γであるdとの加算値a+d、及び、時刻t+1の状態2にいる後ろ向き確率βであるbと、枝1→2のデータとしての出力遷移確率γであるeとの加算値b+eが求められ、その加算値a+dとb+eとのうちの大きい方が、時刻tに状態1にいる後ろ向き確率βであるcとして求められる。
【０２５９】
すなわち、図１２は、第１β計算部１０９の一部の構成例、つまり、図１１の時変トレリスにおいて、時刻tに状態1にいる後ろ向き確率βであるcを求める部分の構成例を示している。
【０２６０】
第１β計算部１０９では、加算値a+d及びb+eが求められ、加算値a+dは、入力IN0として、加算値b+eは、入力IN1として、いずれも、比較部１６１及びセレクタ１６２に供給される。
【０２６１】
ここで、第１β計算部１０９では、データは、Wビットで扱われることとする。したがって、入力IN0及びIN1は、いずれもWビットである。
【０２６２】
比較部１６１は、入力IN0とIN1とを比較し、その比較結果に基づいて、１ビットの選択フラグを、セレクタ１６２に供給する。
【０２６３】
すなわち、比較部１６１は、入力IN0が、入力IN1より大きい場合には、値が1の選択フラグを、入力IN0が、入力IN1より大きくない場合には、値が0の選択フラグを、セレクタ１６２に供給する。
【０２６４】
セレクタ１６２は、比較部１６１からの選択フラグに基づき、入力IN0又はIN1のうちの一方を選択し、その選択した方を、WビットのデータMOUTとして出力する。
【０２６５】
すなわち、セレクタ１６２は、比較部１６１からの選択フラグが1であり、したがって、入力IN0が、入力IN1より大きい場合には、入力IN0を選択し、時刻tに状態1にいる後ろ向き確率βであるcとして出力する。
【０２６６】
また、セレクタ１６２は、比較部１６１からの選択フラグが0であり、したがって、入力IN0が、入力IN1より大きくない場合には、入力IN1を選択し、時刻tに状態1にいる後ろ向き確率βであるcとして出力する。
【０２６７】
なお、図８の第２β計算部１１０は、図１２の第１β計算部１０９と同様に構成されるため、その説明は省略する。
【０２６８】
次に、図１３ないし図１５を参照して、図８のλ計算部１１２の処理について、さらに説明する。
【０２６９】
なお、ここでは、説明を簡単にするため、入力データitを符号化データXtに符号化する符号器として、図１３に示す符号器を考える。
【０２７０】
図１３において、符号器は、レジスタ１７１及び１７２、並びに演算器１７３，１７４、及び１７５から構成され、１ビットの入力データitを、２ビットの符号化データXtに符号化する。
【０２７１】
すなわち、符号器には、１ビットの入力データitが時系列に供給される。符号器において、１ビットの入力データitは、レジスタ１７１、演算器１７３、及び１７５に供給される。
【０２７２】
レジスタ１７１は、１ビットの入力データitをラッチし、１時刻だけ遅延して、レジスタ１７２及び演算器１７３に供給する。
【０２７３】
レジスタ１７２は、レジスタ１７１の出力をラッチし、１時刻だけ遅延して、演算器１７４及び１７５に供給する。
【０２７４】
演算器１７３は、１ビットの入力データitと、レジスタ１７１の出力とを加算し（論理和を演算し）、その結果得られる１ビットの加算値を、演算器１７４に供給する。
【０２７５】
演算器１７４は、演算器１７３からの加算値と、レジスタ１７２の出力とを加算し（論理和を演算し）、その結果得られる１ビットの加算値を、２ビットの符号化データXtの最上位ビット（最下位ビットから２ビット目のビット）として出力する。
【０２７６】
演算器１７５は、１ビットの入力データitと、レジスタ１７２の出力とを加算し（論理和を演算し）、その結果得られる１ビットの加算値を、２ビットの符号化データXtの最下位ビット（最下位ビットから１ビット目のビット）として出力する。
【０２７７】
図１４は、図１３の符号器を表すトレリスを示している。
【０２７８】
前述したように、トレリスの状態数は、符号器が内蔵するシフトレジスタが記憶する値のパターン数に等しいので、図１３の符号器を表すトレリスは、４つの状態を有する。
【０２７９】
すなわち、図１３の符号器では、直列に接続されている２つのレジスタ１７１及び１７２がシフトレジスタを構成しており、２つのレジスタ１７１及び１７２によれば、レジスタ１７１がラッチしている１ビットを、最下位ビットから２ビット目とするとともに、レジスタ１７２がラッチしている１ビットを、最下位ビットから１ビット目とすると、値002,102,012,112（下付の２は、その前の数字が２進数であることを表す）の４パターンを記憶することができ、したがって、図１３の符号器を表すトレリスは、４つの状態を有する。
【０２８０】
ここで、２つのレジスタ１７１及び１７２が記憶する値002,102,012,112に対応する状態を、それぞれ、状態0,1,2,3、又は状態"00","10","01","11"と記述する。
【０２８１】
いま、説明を簡単にするために、入力データitが1である場合を考える。
【０２８２】
時刻t-1において、状態が状態"00"である場合、つまり、レジスタ１７１及び１７２に0がラッチされている場合に、時刻tの入力データitが1であると、図１３の符号器では、演算器１７３において、入力データitである1と、レジスタ１７１がラッチしている0とが加算され、その結果得られる１ビットの加算値1が、演算器１７４に供給される。
【０２８３】
演算器１７４は、演算器１７３からの加算値1と、レジスタ１７２がラッチしている0とを加算し、その結果得られる１ビットの加算値1を、２ビットの符号化データXtの最上位ビットとして出力する。
【０２８４】
また、演算器１７５では、入力データitである1と、レジスタ１７２がラッチしている0とが加算され、その結果得られる１ビットの加算値1が、２ビットの符号化データXtの最下位ビットとして出力される。
【０２８５】
一方、レジスタ１７１は、入力データitである1をラッチし、レジスタ１７２は、レジスタ１７１が直前までラッチしていた0をラッチする。
【０２８６】
したがって、状態が状態"00"である場合に、入力データitが1であると、２ビットの符号化データXtとして112が出力され、状態は、状態"00"から状態"10"に遷移する。
【０２８７】
同様に、状態が状態"10"である場合に、入力データitが1であると、２ビットの符号化データXtとして012が出力され、状態は、状態"10"から状態"11"に遷移する。
【０２８８】
また、状態が状態"01"である場合に、入力データitが1であると、２ビットの符号化データXtとして002が出力され、状態は、状態"01"から状態"10"に遷移し、状態が状態"11"である場合に、入力データitが1であると、２ビットの符号化データXtとして102が出力され、状態は、状態"11"から状態"11"に遷移する。
【０２８９】
したがって、図１３の符号器を表すトレリスでは、入力データitが1であるときに、４つの状態"00","10","01","11"と、状態"00"から状態"10"への遷移（枝"00"→"10"）、状態"10"から状態"11"への遷移（枝"10"→"11"）、状態"01"から状態"10"への遷移（枝"01"→"10"）、及び状態"11"から状態"11"への遷移（枝"11"→"11"）とが存在する。
【０２９０】
いま、図１４に示すように、時刻t-1に状態"00","10","01","11"にいる前向き確率αが、それぞれ、a0,a1,a2,a3であるとともに、時刻tに、状態"10","11"にいる後ろ向き確率βが、それぞれ、b1,b3であるとする。
【０２９１】
また、枝"00"→"10"、枝"10"→"11"、枝"01"→"10"、枝"11"→"11"のデータとしての出力遷移確率γが、それぞれ、g01,g13,g21,g33であるとする。
【０２９２】
この場合、λ計算部１１２では、式（２２）にしたがい、時刻t-1に状態"00"にいる前向き確率αであるa0、枝"00"→"10"のデータとしての出力遷移確率γであるg01、及び、時刻tに状態"10"にいる後ろ向き確率βであるb1の加算値a0+g01+b1が求められるとともに、時刻t-1に状態"01"にいる前向き確率αであるa2、枝"01"→"10"のデータとしての出力遷移確率γであるg21、及び、時刻tに状態"10"にいる後ろ向き確率βであるb1の加算値a2+g21+b1が求められる。
【０２９３】
さらに、λ計算部１１２では、式（２２）にしたがい、時刻t-1に状態"10"にいる前向き確率αであるa1、枝"10"→"11"のデータである出力遷移確率γであるg13、及び、時刻tに状態"11"にいる後ろ向き確率βであるb3の加算値a1+g13+b3が求められるとともに、時刻t-1に状態"11"にいる前向き確率αであるa3、枝"11"→"11"のデータである出力遷移確率γであるg33、及び、時刻tに状態"11"にいる後ろ向き確率であるb3の加算値a3+g33+b3が求められる。
【０２９４】
そして、λ計算部１１２では、以上の４つの加算値a0+g01+b1，a2+g21+b1，a1+g13+b3、及びa3+g33+b3のうちの最も大きい加算値が、式（２２）右辺の第１項の値（以下、適宜、入力データitが1である場合についての加算値という）として求められる。
【０２９５】
また、λ計算部１１２では、入力データitが0である場合についても、入力データitが1である場合についての加算値を求める場合と同様にして、式（２２）右辺の第２項の値（以下、適宜、入力データitが0である場合についての加算値）が求められる。
【０２９６】
そして、λ計算部１１２では、式（２２）にしたがい、入力データitが1である場合についての加算値から、入力データitが0である場合についての加算値を減算した減算値が、出力軟値データλ（時刻tの出力軟値データλt）として求められる。
【０２９７】
すなわち、図１５は、λ計算部１１２の一部の構成例、つまり、図１４のトレリスにおいて、入力データitが1である場合についての加算値を求める部分の構成例を示している。
【０２９８】
λ計算部１１２では、上述した４つの加算値a0+g01+b1，a2+g21+b1，a1+g13+b3、及びa3+g33+b3が求められ、加算値a0+g01+b1は入力agb01として、加算値a2+g21+b1は入力agb21として、加算値a1+g13+b3は入力agb13として、加算値a3+g33+b3は入力agb33として、いずれも、比較部１８１及びセレクタ１８２に供給される。
【０２９９】
ここで、λ計算部１１２では、データは、Wビットで扱われることとする。したがって、入力agb01，agb21，agb13、及びagb33は、いずれもWビットである。
【０３００】
比較部１８１は、４つの入力agb01，agb21，agb13、及びagb33を比較し、その比較結果に基づいて、４つの入力agb01，agb21，agb13、及びagb33のうちの最も大きいものを表す、例えば、２ビットの選択フラグを、セレクタ１８２に供給する。
【０３０１】
すなわち、比較部１８１は、４つの入力agb01，agb21，agb13、及びagb33のうちの、入力agb01が最も大きい場合には、値が002の選択フラグを、セレクタ１８２に供給し、入力agb21が最も大きい場合には、値が012の選択フラグを、セレクタ１８２に供給する。また、比較部１８１は、４つの入力agb01，agb21，agb13、及びagb33のうちの、入力agb13が最も大きい場合には、値が102の選択フラグを、セレクタ１８２に供給し、入力agb33が最も大きい場合には、値が112の選択フラグを、セレクタ１８２に供給する。
【０３０２】
セレクタ１８２は、比較部１８１からの選択フラグに基づき、４つの入力agb01，agb21，agb13、及びagb33のうちの１つを選択し、その選択したものを、WビットのデータL1_1として出力する。
【０３０３】
すなわち、セレクタ１８２は、比較部１８１からの選択フラグが002であり、したがって、４つの入力agb01，agb21，agb13、及びagb33のうちの、入力agb01が最も大きい場合には、入力agb01を選択し、入力データitが1である場合についての加算値として出力する。
【０３０４】
また、セレクタ１８２は、比較部１８１からの選択フラグが012であり、したがって、４つの入力agb01，agb21，agb13、及びagb33のうちの、入力agb21が最も大きい場合には、入力agb21を選択し、入力データitが1である場合についての加算値として出力する。
【０３０５】
さらに、セレクタ１８２は、比較部１８１からの選択フラグが102であり、したがって、４つの入力agb01，agb21，agb13、及びagb33のうちの、入力agb13が最も大きい場合には、入力agb13を選択し、入力データitが1である場合についての加算値として出力する。
【０３０６】
また、セレクタ１８２は、比較部１８１からの選択フラグが112であり、したがって、４つの入力agb01，agb21，agb13、及びagb33のうちの、入力agb33が最も大きい場合には、入力agb33を選択し、入力データitが1である場合についての加算値として出力する。
【０３０７】
次に、図１６を参照して、図８のγ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）のみが、それぞれ行われている。
【０３９０】
ところで、図６の光ディスク装置において、チャネルsys#23は、時変トレリスで表すことができる。そして、チャネルsys#23を表す時変トレリスは、上述したように、有効枝と無効枝（可能な遷移と不可能な遷移）が時刻によって変化し、周期性を有する。
【０３９１】
図１８は、そのような時変トレリスの例を示している。
【０３９２】
図１８の時変トレリスは、４つの状態0,1,2,3を有する。そして、各状態については、２つの遷移が存在し、したがって、時変トレリスの枝数は、８（=2遷移×4状態）になっている。
【０３９３】
すなわち、図１８の時変トレリスでは、状態0から状態0と1それぞれへの遷移を表す２つの枝、状態1から状態2と3それぞれへの遷移を表す２つの枝、状態2から状態0と1それぞれへの遷移を表す２つの枝、及び、状態3から状態2と3それぞれへの遷移を表す２つの枝の、合計で８つの枝が存在する。
【０３９４】
さらに、図１８の時変トレリスでは、状態について存在する８つの枝のうちの、有効枝と無効枝が、時刻によって変化している。
【０３９５】
すなわち、図１８の時変トレリスにおいて、例えば、時刻tの状態から時刻t+1の状態への遷移では、８つの枝のうちの、状態0から状態0と1それぞれへの遷移を表す２つの枝が有効枝（図中、実線の矢印で示す）になっており、他の６つの枝は無効枝（図中、点線の矢印で示す）になっている。
【０３９６】
また、例えば、時刻t+1の状態から時刻t+2の状態への遷移では、８つの枝のうちの、状態0から状態0と1それぞれへの遷移を表す２つの枝、及び、状態1から状態2と3それぞれへの遷移を表す２つの枝の、合計で４つの枝が有効枝になっており、他の４つの枝は無効枝になっている。
【０３９７】
さらに、例えば、時刻t+2の状態から時刻t+3の状態への遷移、時刻t+3の状態から時刻t+4の状態への遷移、及び、時刻t+4の状態から時刻t+5の状態への遷移では、いずれの遷移においても、状態0から状態1への遷移を表す１つの枝、状態1から状態2と3それぞれへの遷移を表す２つの枝、状態2から状態0と1それぞれへの遷移を表す２つの枝、及び、状態3から状態2と3それぞれへの遷移を表す２つの枝の、合計で７つの枝が有効枝になっており、他の１つの枝（状態0から状態0への遷移を表す１つの枝）は無効枝になっている。
【０３９８】
また、例えば、時刻t+5の状態から時刻t+6の状態への遷移では、８つの枝のうちの、状態0から状態0への遷移を表す１つの枝、状態1から状態2への遷移を表す１つの枝、状態2から状態0への遷移を表す１つの枝、及び、状態3から状態2への遷移を表す１つの枝の、合計で４つの枝が有効枝になっており、他の４つの枝は無効枝になっている。
【０３９９】
さらに、例えば、時刻t+6の状態から時刻t+7の状態への遷移では、８つの枝のうちの、状態0から状態0への遷移を表す１つの枝、及び、状態2から状態0への遷移を表す１つの枝の、合計で２つの枝が有効枝になっており、他の６つの枝は無効枝になっている。
【０４００】
そして、図１８の時変トレリスの周期Tは、例えば、7時刻になっており、したがって、時刻t+8以降には、時刻tないしt+7で現れた遷移パターン（可能な遷移を表す有効枝、及び不可能な遷移を表す無効枝がとるパターン）が繰り返し現れる。
【０４０１】
いま、時変トレリスに存在する枝が表す遷移が、可能な遷移、又は不可能な遷移であることを表す情報を、遷移情報ということとすると、遷移情報としては、例えば、枝情報やパターン情報を採用することができる。
【０４０２】
すなわち、時刻t-1の状態から時刻tの状態への遷移を、時刻tの遷移ということとすると、枝情報は、各時刻の遷移を表す枝ごとの、その枝が、有効枝であるか、又は無効枝であることを表す、例えば、１ビットの情報である。
【０４０３】
時変トレリスに対し、遷移情報として、枝情報を採用した場合、状態について存在する枝のそれぞれに、１ビットの枝情報が必要となるので、状態について存在する枝の枝数をEと表すこととすると、枝情報の情報量は、Eビットとなる。ここで、枝が有効枝である場合には、１ビットの枝情報は、0又は1のうちの一方の、例えば、1とされ、枝が無効枝である場合には、枝情報は、他方の0とされる。
【０４０４】
一方、パターン情報は、各時刻の遷移の遷移パターンを表す情報である。
【０４０５】
例えば、図１８の時変トレリスでは、時刻t+1の遷移（時刻tの状態から時刻t+1の状態への遷移）の遷移パターンは、１周期（時間T）の他の時刻の遷移の遷移パターンと異なっている。同様に、時刻t+2の遷移の遷移パターン、時刻t+6の遷移の遷移パターン、及び時刻t+7の遷移の遷移パターンも、他の時刻の遷移の遷移パターンと異なっている。
【０４０６】
また、時刻t+3の遷移の遷移パターン、時刻t+4の遷移の遷移パターン、及び時刻t+5の遷移の遷移パターンは、一致しているが、時刻t+3,t+4、及びt+5以外の時刻の遷移の遷移パターンとは異なっている。
【０４０７】
したがって、図１８の時変トレリスでは、時刻t+1の遷移の遷移パターン、時刻t+2の遷移の遷移パターン、時刻t+3ないしt+5の時刻の遷移の遷移パターン、時刻t+6の遷移の遷移パターン、及び時刻t+7の遷移の遷移パターンの、５種類の遷移パターンが存在する。
【０４０８】
いま、int[]が、[]内の値以上の最小の整数を表すこととすると、遷移パターンのパターン数がP種類である場合には、そのP種類の遷移パターンを表すには、少なくとも、int[log2P]ビットのパターン情報を用いる必要があるので、パターン情報の情報量は、int[log2P]ビットとなる。
【０４０９】
５種類の遷移パターンを表すには、少なくとも、int[log25]ビット＝３ビットのパターン情報を用いる必要があり、図１８では、時刻t+3ないしt+5の時刻の遷移の遷移パターンを表すパターン情報として、0(=0002)が割り当てられ、時刻t+6の遷移の遷移パターンを表すパターン情報として、1(=0012)が割り当てられている。以下、同様に、時刻t+7の遷移の遷移パターン、時刻t+1の遷移の遷移パターン、時刻t+2の遷移の遷移パターンを表すパターン情報として、それぞれ、2(=0102)，3(=0112)，4(=1002)が割り当てられている。
【０４１０】
遷移情報として、上述した枝情報又はパターン情報を採用し、入力軟値データYtから出力軟値データλを求める所定の計算としての、例えば、式（１８）や、式（１９）、式（２２）の計算に用いる、枝のデータとしての出力遷移確率γと、その枝の遷移情報とを対応付けて記憶して、遷移情報に基づき、有効枝のみの出力遷移確率γを用いて、所定の計算を行うことにより、無効枝の出力遷移確率γが、出力軟値データλを求める所定の計算に用いられることが防止され、その結果、軟入力軟出力の復号の性能を向上させることができる。
【０４１１】
ところで、遷移情報として、枝情報又はパターン情報のいずれを採用しても、軟入力軟出力の復号の性能を、同様に向上させることができるが、軟入力軟出力の復号を行う復号装置の装置規模については、各種の条件によって、枝情報を採用した場合と、パターン情報を採用した場合とで、差が生じる。
【０４１２】
すなわち、軟入力軟出力の復号の対象の時変トレリスの状態について存在する枝の枝数Eと、遷移パターンのパターン数Pとは、式0≦int[log2P]≦Eで表される関係を有する。
【０４１３】
したがって、遷移情報として、枝情報を採用した場合と、パターン情報を採用した場合とでは、一般には（int[log2P]＝Eでなければ）、パターン情報を採用した場合の方が、枝情報を採用した場合よりも、遷移情報を記憶するメモリの記憶容量は少なくなる。
【０４１４】
しかしながら、遷移情報として、パターン情報を採用した場合には、出力軟値データλを求める所定の計算を行う際に、そのパターン情報が表す遷移パターンにおいて、各枝が、有効枝、又は無効枝のうちのいずれであるのかを認識する必要があり、そのためには、パターン情報を、枝ごとの１ビットの枝情報に変換する必要がある。
【０４１５】
したがって、遷移情報として、パターン情報を採用した場合には、パターン情報を枝情報に変換する回路が必要となり、その回路の分だけ、装置規模が大になる。
【０４１６】
以上のように、遷移情報として、パターン情報を採用した場合には、枝情報を採用した場合と比較して、遷移情報としてのパターン情報を記憶するメモリの記憶容量は小となるが、パターン情報を枝情報に変換する回路の分だけ、装置規模が大になる。
【０４１７】
一方、遷移情報として、枝情報を採用した場合には、パターン情報を採用した場合と比較して、遷移情報としての枝情報を記憶するメモリの記憶容量は大となるが、パターン情報を枝情報に変換する回路を設ける必要はない。
【０４１８】
一般には、例えば、時変トレリスの枝数Eが大で、遷移パターンのパターン数Pが枝数Eに比較して十分小である場合には、遷移情報を記憶するメモリの記憶容量が少なくて済むことの効果が大になるため、パターン情報を枝情報に変換する回路の分の装置規模の増加があっても、パターン情報を、遷移情報として採用した方が、復号装置全体の装置規模を抑制することができる。
【０４１９】
一方、例えば、遷移パターンのパターン数Pが2Eに近い場合には、パターン情報を枝情報に変換する回路の分の装置規模の増加の影響が大になるため、その回路を設けずに済む枝情報を、遷移情報として採用した方が、復号装置全体の装置規模を抑制することができる。
【０４２０】
なお、遷移情報として、枝情報、又はパターン情報のうちのいずれを採用した方が、復号装置全体の装置規模を抑制することができるかは、その他、例えば、打ち切り長Dや、出力遷移確率γを記憶するメモリの数、種類（例えば、シングルポートRAMや、デュアルポートRAM等）等によって異なる。
【０４２１】
図１９は、上述のように、枝の出力遷移確率γと、その枝の遷移情報とを対応付けて記憶し、有効枝のみの出力遷移確率γを用いて、出力軟値データλを求める所定の計算を行う光ディスク装置の一実施の形態の構成例を示している。
【０４２２】
なお、図中、図６の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０４２３】
すなわち、図１９の光ディスク装置は、リードソロモン符号器６１，LDPC符号器６２、変調符号器６３、NRZI変換器６４、光ディスク、記録再生系６５，LDPC復号器６８、及びリードソロモン復号器６９が設けられている点で、図６の光ディスク装置と一致する。そして、図１９の光ディスク装置は、位相検出器２８１が新たに設けられており、また、SISO復号器６７に代えて、SISO復号器２８２が設けられている点で、図６の光ディスク装置と相違する。
【０４２４】
位相検出器２８１には、記録再生系６５が出力する入力軟値データYtが供給される。位相検出器２８１は、記録再生系６５からの入力軟値データYtを、例えば、ビダビ復号することにより、時変トレリスの１周期の所定のタイミングとしての、例えば、先頭のタイミングを表す位相情報を生成し、SISO復号器２８２に供給する。
【０４２５】
ここで、変調符号器６３において、変調符号として、例えば、上述したように、17PP符号を採用することとすると、17PP符号は、フレーム構造をし、また、17PP符号（に変調符号化を行う変調符号器６３）は、時変トレリスで表現される。そして、17PP符号を表現する時変トレリスでは、フレームどうしの境界で、特殊な遷移が行われる。
【０４２６】
位相検出器２８１は、その特殊な遷移に対応する、フレームの先頭を表すフレームシンクパターンを検出し、そのフレームシンクパターンの検出に応じて、フレームの先頭のタイミング、ひいては、時変トレリスの１周期の先頭のタイミングを表す位相情報としての、例えば、17PP符号のフレームの先頭でのみアクティブとなる信号を生成し、SISO復号器２８２に供給する。
【０４２７】
なお、例えば、チャネルsys#21が、PRチャネルのうちの、例えば、PR12221チャネルである場合、そのPR12221チャネルと、17PP符号とを混合したトレリスである、いわば混合トレリス（PR12221チャネルと、17PP符号と表現する時変トレリス）では、枝数Eが142で、周期Tが644時刻で、パターン数Pが15となる。
【０４２８】
SISO復号器２８２は、位相検出器２８１から供給される位相情報に基づいて生成される遷移情報と、出力軟値データλを求める所定の計算に用いる、枝の出力遷移確率γとを対応付けて記憶し、その遷移情報に基づき、有効枝のみの出力遷移確率γを用いて、例えば、SW-Max-Log-BCJRアルゴリズムにより、出力軟値データλを求める所定の計算を行い、これにより、出力軟値データλを求めて、LDPC復号器６８に供給する。
【０４２９】
すなわち、SISO復号器２８２は、軟入力軟出力の復号の対象とする時変トレリスに存在する各枝が表す遷移が、可能な遷移、又は不可能な遷移であることを表す遷移情報を、例えば、時変トレリスの１周期の先頭の時刻（タイミング）を基準とする、周期Tの各時刻について記憶している。
【０４３０】
そして、SISO復号器２８２は、位相検出器２８１から位相情報が供給されてから時間△T後の時刻tでは、記録再生系６５から供給される、時刻tの入力軟値データYtから、式（２０）にしたがい、時刻tの出力遷移確率γ（時刻t-1の状態から時刻tの状態への遷移を表す枝の出力遷移確率γ）を、時変トレリスに存在する枝すべてについて求め、その出力遷移確率γと、時刻tについての遷移情報とを対応付けて記憶する。
【０４３１】
さらに、SISO復号器２８２は、遷移情報に基づき、有効枝のみの出色遷移確率γを用いて、式（１８）、式（１９）、及び式（２２）の計算を行い、出力軟値データλを求めて、LDPC復号器６８に供給する。
【０４３２】
次に、図２０を参照して、図１９のSISO復号器２８２が行う、時刻tの出力遷移確率γと遷移情報とを対応付けて記憶する処理について、さらに説明する。
【０４３３】
図２０左は、時変トレリスの一部、すなわち、図１８の時変トレリスの、時刻t+6の状態から時刻t+7の状態への遷移の部分を示しており、図２０右は、遷移情報としての枝情報及びパターン情報を示している。
【０４３４】
図１８で説明したように、時変トレリスには、４つの状態について８つの枝が存在する。
【０４３５】
SISO復号器２８２は、記録再生系６５（図１９）から、時刻t+7の入力軟値データYt+7が供給されると、時刻t+6に、状態m'にいて、次の時刻t+7の入力データit+7が値0又は1であるときに、入力軟値データYt+7が観測され、状態mに遷移する出力遷移確率γt+7(m',m,1)とγt+7(m',m,0)（正確には、γt+7'(m',m,1)とγt+7'(m',m,0)）のそれぞれを、式（２０）にしたがって計算する。
【０４３６】
ここで、時変トレリスでは、図１８で説明したように、状態0から状態0と1それぞれへの遷移を表す２つの枝、状態1から状態2と3それぞれへの遷移を表す２つの枝、状態2から状態0と1それぞれへの遷移を表す２つの枝、及び、状態3から状態2と3それぞれへの遷移を表す２つの枝の、合計で８つの枝が存在する。
【０４３７】
そして、例えば、いま、状態0にいて、入力データitが値0又は1であったときに、それぞれ、状態0又は1に遷移し、状態1にいて、入力データitが値0又は1であったときに、それぞれ、状態2又は3に遷移し、状態2にいて、入力データitが値0又は1であったときに、それぞれ、状態0又は1に遷移し、状態3にいて、入力データitが値0又は1であったときに、状態2又は3に遷移することとする。
【０４３８】
この場合、SISO復号器２８２では、図２０左に示すように（図２０左では、γt+7(m',m,i)の、時刻を表すサフィックスt+7が省略されている）、状態0にいて、入力データitが値0であり、状態0に遷移する枝0→0の出力遷移確率γt+7(0,0,0)、状態0にいて、入力データitが値1であり、状態1への遷移を表す枝0→1の出力遷移確率γt+7(0,1,1)、状態1にいて、入力データitが値0であり、状態2への遷移を表す枝1→2の出力遷移確率γt+7(1,2,0)、状態1にいて、入力データitが値1であり、状態3への遷移を表す枝1→3の出力遷移確率γt+7(1,3,1)、状態2にいて、入力データitが値0であり、状態0への遷移を表す枝2→0の出力遷移確率γt+7(2,0,0)、状態2にいて、入力データitが値1であり、状態1への遷移を表す枝2→1の出力遷移確率γt+7(2,1,1)、状態3にいて、入力データitが値0であり、状態2への遷移を表す枝3→2の出力遷移確率γt+7(3,2,0)、及び、状態3にいて、入力データitが値1であり、状態3への遷移を表す枝3→3の出力遷移確率γt+7(3,3,1)の、８つの枝それぞれの出力遷移確率γt+7(m',m,i)が求められる。
【０４３９】
また、SISO復号器２８２では、時刻t+6の状態から時刻t+7の状態への遷移の遷移情報が求められる。
【０４４０】
ここで、図１８で説明したように、時変トレリスにおいて、時刻t+6の状態から時刻t+7の状態への遷移では、８つの枝のうちの、状態0から状態0への遷移を表す枝、及び、状態2から状態0への遷移を表す枝の、合計で２つの枝が有効枝になっており、他の６つの枝は無効枝になっている。
【０４４１】
例えば、遷移情報として、枝情報が採用される場合には、状態m'から状態mへの遷移を表す枝の枝情報を、ena(m',m)と表すこととすると、SISO復号器２８２では、図２０右に示すように、状態0から状態0への遷移を表す枝0→0の枝情報ena(0,0)と、状態2から状態0への遷移を表す枝2→0の枝情報ena(2,0)とが、有効枝を表す1とされ、他の６つの遷移それぞれを表す枝情報、すなわち、状態0から状態1への遷移を表す枝0→1の枝情報ena(0,1)、状態1から状態2への遷移を表す枝1→2の枝情報ena(1,2)、状態1から状態3への遷移を表す枝1→3の枝情報ena(1,3)、状態2から状態1への遷移を表す枝2→1の枝情報ena(2,1)、状態3から状態2への遷移を表す枝3→2の枝情報ena(3,2)、及び、状態3から状態3への遷移を表す枝3→3の枝情報ena(3,3)が、無効枝を表す0とされる。
【０４４２】
そして、SISO復号器２８２では、例えば、枝0→0の出力遷移確率γt+7(0,0,0)と枝情報ema(0,0)とが対応付けられて記憶され、枝0→1の出力遷移確率γt+7(0,1,1)と枝情報ema(0,1)とが対応付けられて記憶される。以下、同様に、枝1→2の出力遷移確率γt+7(1,2,0)と枝情報ema(1,2)とが、枝1→3の出力遷移確率γt+7(1,3,1)と枝情報ema(1,3)とが、枝2→0の出力遷移確率γt+7(2,0,0)と枝情報ema(2,0)とが、枝2→1の出力遷移確率γt+7(2,1,1)と枝情報ema(2,1)とが、枝3→2の出力遷移確率γt+7(3,2,0)と枝情報ema(3,2)とが、枝3→3の出力遷移確率γt+7(3,3,1)と枝情報ema(3,3)とが、それぞれ対応付けられて記憶される。
【０４４３】
一方、遷移情報として、パターン情報が採用される場合には、SISO復号器２８２では、パターン情報が、図１８で説明したように、時刻t+6の状態から時刻t+7の状態への遷移の遷移パターンを表す値2とされる。
【０４４４】
そして、SISO復号器２８２では、枝0→0の出力遷移確率γt+7(0,0,0)、枝0→1の出力遷移確率γt+7(0,1,1)、枝1→2の出力遷移確率γt+7(1,2,0)、枝1→3の出力遷移確率γt+7(1,3,1)、枝2→0の出力遷移確率γt+7(2,0,0)、枝2→1の出力遷移確率γt+7(2,1,1)、枝3→2の出力遷移確率γt+7(3,2,0)、及び、枝3→3の出力遷移確率γt+7(3,3,1)との、８つの枝の出力遷移確率と、パターン情報とが対応付けられて記憶される。
【０４４５】
次に、図２１は、遷移情報として、枝情報を採用した場合の、図１９のSISO復号器２８２の構成例を示している。
【０４４６】
なお、図中、図８のSISO復号器６７と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０４４７】
図２１のSISO復号器２８２は、γ計算部１０１、βRAM制御部１１１、第１βRAM１１３、第２βRAM１１４、制御部３００、γRAM制御部３０２、第１γRAM３０３、第２γRAM３０４、第３γRAM３０５、第４γRAM３０６、第５γRAM３０７、α計算部３０８、第１β計算部３０９、第２β計算部３１０、λ計算部３１２、カウンタ３１５、及び枝情報生成部３１６から構成されており、例えば、図８のSISO復号器６７と同様に、SW-Max-Log-BCJRアルゴリズムにしたがい、入力軟値データYtに対して、その入力軟値データYtの復号結果としての出力軟値データλを、打ち切り長Dの４倍の遅延時間4Dで出力する。
【０４４８】
図２１のSISO復号器２８２において、制御部３００は、γ計算部１０１、βRAM制御部１１１、γRAM制御部３０２、α計算部３０８、第１β計算部３０９、第２β計算部３１０、λ計算部３１２、カウンタ３１５、及び枝情報生成部３１６が連携して、入力軟値データYtを出力軟値データλtに復号するための処理を行うように、γ計算部１０１、βRAM制御部１１１、γRAM制御部３０２、α計算部３０８、第１β計算部３０９、第２β計算部３１０、λ計算部３１２、カウンタ３１５、及び枝情報生成部３１６を制御する。
【０４４９】
γ計算部１０１には、図１９の記録再生系６５から、時刻tの入力軟値データYtが、データD101として供給される。
【０４５０】
γ計算部１０１は、時刻tの入力軟値データYtに対して、例えば、式（２０）にしたがい、時変トレリスの時刻tの枝すべて、つまり、時刻t-1の状態St-1から時刻tの状態Stへの遷移（状態について存在する遷移）を表す、E個の枝すべてに対する出力遷移確率γ（の集合）を計算し、データD102として、γRAM制御部３０２に供給する。
【０４５１】
ここで、データD102のビット幅は、SISO復号器２８２が対象とする時変トレリスの枝数（状態について存在する遷移を表す枝すべての数）Eと、１つの枝に対する出力遷移確率γのビット数との積［ビット］である。
【０４５２】
一方、カウンタ３１５には、図１９の位相検出器２８１から位相情報が供給される。
【０４５３】
カウンタ３１５は、時変トレリスの１周期の先頭のタイミングを表す位相情報に基づいて、カウント値をリセットし、入力軟値データYtがλ計算部１０１に供給されて、その入力軟値データYtを用いて、出力遷移確率γが計算されるごとに、カウント値を変更する。すなわち、カウンタ３１５は、位相情報がアクティブになったとき、つまり、時変トレリスの１周期の先頭のタイミングで、カウント値を0にリセットしし、λ計算部１０１で時刻tの出力遷移確率γが求められるごとに、カウント値を１だけインクリメントする。
【０４５４】
したがって、時変トレリスの周期が時間Tであるとすると、カウンタ３１５は、時変トレリスの１周期の先頭のタイミングで0となる、出力遷移確率γの計算（算出）に同期した、0ないしT-1の範囲の整数値のカウント値をカウントする。
【０４５５】
カウンタ３１５がカウントするカウント値は、カウンタ３１５から枝情報生成部３１６に供給される。枝情報生成部３１６は、カウンタ３１５から供給されるカウント値に基づいて、そのカウント値に対応する時刻の状態から次の時刻の状態への遷移を表す枝ごとの、その枝が、有効枝又は無効枝のうちのいずれであるかを表す枝情報を生成し、γRAM制御部３０２に供給する。
【０４５６】
すなわち、枝情報生成部３１６は、時変トレリスの１周期の先頭のタイミングを基準とする、１周期の各時刻と、その時刻の状態から次の時刻の状態への遷移を表す各枝の１ビットの枝情報とを対応付けたテーブルを記憶しており、枝情報生成部３１６は、カウンタ３１５からのカウント値が供給されると、そのカウント値に等しい時刻と対応付けられている、各枝の枝情報、つまり、γ計算部１０１で出力遷移確率γが計算されている枝の枝情報を、テーブルから読み出すことにより、カウント値を枝情報に変換し、γRAM制御部３０２に供給する。
【０４５７】
ここで、枝情報生成部３１６からγRAM制御部３０２に供給される枝情報は、時変トレリスの状態について存在するE個の枝すべての分である。したがって、枝情報生成部３１６からγRAM制御部３０２に供給される枝情報は、Eビットである。
【０４５８】
γRAM制御部３０２は、γ計算部１０１から供給されるE個の枝の出力遷移確率γと、そのE個の枝の、枝情報生成部３１６から供給される枝情報とを対応付け、そのE個の枝の出力遷移確率γと枝情報とのセットを、第１γRAM３０３、第２γRAM３０４、第３γRAM３０５、第４γRAM３０６、又は第５γRAM３０７に書き込む書き込み制御と、その第１γRAM３０３ないし第５γRAM３０７から、E個の枝の出力遷移確率γと枝情報とのセットを読み出す読み出し制御を行う。
【０４５９】
すなわち、γRAM制御部３０２は、第１γRAM３０３に対して、E個の枝の出力遷移確率γと枝情報とのセットを、データD303として読み書きする読み書き制御を行う。同様に、γRAM制御部３０２は、第２γRAM３０４に対して、E個の枝の出力遷移確率γと枝情報とのセットを、データD304として読み書きする読み書き制御を、第３γRAM３０５に対して、E個の枝の出力遷移確率γと枝情報とのセットを、データD305として読み書きする読み書き制御を、第４γRAM３０６に対して、E個の枝の出力遷移確率γと枝情報とのセットを、データD306として読み書きする読み書き制御を、第５γRAM３０７に対して、E個の枝の出力遷移確率γと枝情報とのセットを、データD307として読み書きする読み書き制御を、それぞれ行う。
【０４６０】
そして、第１γRAM３０３ないし第５γRAM３０７は、γRAM制御部３０２の制御にしたがって、出力遷移確率γと枝情報とのセットを記憶する。
【０４６１】
ここで、１つの枝に対する出力遷移確率γのビット数を、rと表すこととすると、データD303ないしD307のビット幅は、いずれも、E×r+Eビットである。
【０４６２】
また、第１γRAM３０３ないし第５γRAM３０７は、１ワードが、E×r+Eビットで、打ち切り長Dに等しいワード数だけの記憶容量を有する。
【０４６３】
なお、γRAM制御部３０２による、第１γRAM３０３ないし第５γRAM３０７に対する読み書き制御は、出力遷移確率γではなく、出力遷移確率γと枝情報とのセットが、読み書きの対象となることを除き、図８のγRAM制御部１０２が第１γRAM１０３ないし第５γRAM１０７に対して行う、図１６及び図１７で説明した読み書き制御と同様である。
【０４６４】
γRAM制御部３０２は、第１γRAM３０３ないし第５γRAM３０７から読み出したE個の枝の出力遷移確率γと枝情報とのセットのうちの、E個の枝の出力遷移確率γを、図８のγRAM制御部１０２と同様に、データD108,D109,D110、又はD115として、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給する。
【０４６５】
さらに、γRAM制御部３０２は、第１γRAM３０３ないし第５γRAM３０７から読み出したE個の枝の出力遷移確率γと枝情報とのセットのうちの、E個の枝の枝情報を、データD108',D109',D110'、又はD115'として、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給する。
【０４６６】
すなわち、γRAM制御部３０２は、図８のγRAM制御部１０２と同様に、E個の枝の出力遷移確率γを、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給するが、そのとき、そのE個の枝の枝情報も、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給する。
【０４６７】
ここで、E個の枝の出力遷移確率γであるデータD108,D109,D110、及びD115のビット幅は、図８で説明したように、いずれも、時変トレリスの枝数Eと、１つの枝に対する出力遷移確率γのビット数rとの積であるE×rビットである。
【０４６８】
そして、γRAM制御部３０２から、α計算部３０８に供給されるデータD108と、λ計算部３１２に供給されるデータD115とは、図８の場合と同様に、時変トレリスの、ある時刻tαの枝すべてに対する出力遷移確率γである。
【０４６９】
さらに、γRAM制御部３０２から、第１β計算部３０９に供給されるデータD109は、図８の場合と同様に、時変トレリスの、ある時刻tβ1+1の枝すべてに対する出力遷移確率γであり、γRAM制御部３０２から、第２β計算部３１０に供給されるデータD110も、図８の場合と同様に、時変トレリスの、ある時刻tβ2+1の枝すべてに対する出力遷移確率γである。
【０４７０】
また、E個の枝の枝情報であるデータD108',D109',D110'、及びD115'のビット幅は、いずれも、時変トレリスの枝数Eと、１個の枝情報のビット数である１ビットとの積であるE×1ビットである。
【０４７１】
α計算部３０８は、γRAM制御部３０２からのデータD108'としての、E個の枝の枝情報に基づき、γRAM制御部３０２からのデータD108としての、時変トレリスの時刻tαのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用い、例えば、式（１８）にしたがって、時変トレリスの時刻tαのM個の状態すべてに対する前向き確率α（の集合）を計算し、データD116として、λ計算部３１２に供給する。
【０４７２】
ここで、前向き確率αのビット数がaビットであるとすると、データD116のビット幅は、図８で説明したように、時変トレリスの状態（１時刻の状態）の個数Mと、１つの状態に対する前向き確率αのビット数aとの積であるM×aビットである。
【０４７３】
一方、第１β計算部３０９は、γRAM制御部３０２からのデータD109'としての、E個の枝の枝情報に基づき、γRAM制御部３０２からのデータD109としての、時変トレリスの時刻tβ1+1のE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用い、例えば、式（１９）にしたがって、時変トレリスの時刻tβ1のM個の状態すべてに対する後ろ向き確率β（の集合）を計算し、データD111として、βRAM制御部１１１に供給する。
【０４７４】
同様に、第２β計算部３１０も、γRAM制御部３０２からのデータD110'としての、E個の枝の枝情報に基づき、γRAM制御部３０２からのデータD110としての、時変トレリスの時刻tβ2+1のE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用い、式（１９）にしたがって、時変トレリスの時刻tβ2のM個の状態すべてに対する後ろ向き確率β（の集合）を計算し、データD112として、βRAM制御部１１１に供給する。
【０４７５】
ここで、後ろ向き確率βのビット数がbビットであるとすると、データD111及びD112のビット幅は、図８で説明したように、時変トレリスの状態の個数Mと、１つの状態に対する後ろ向き確率βのビット数bとの積であるM×bビットである。
【０４７６】
βRAM制御部１１１は、図８の場合と同様に、第１β計算部３０９と第２β計算部３１０それぞれから供給される後ろ向き確率βを、第１βRAM１１３、又は第２βRAM１１４に書き込む書き込み制御と、その第１βRAM１１３又は第２βRAM１１４から、後ろ向き確率βを読み出す読み出し制御を行う。
【０４７７】
すなわち、βRAM制御部１１１は、第１βRAM１１３に対して、後ろ向き確率βを、データD113として読み書きする読み書き制御を、図１６及び図１７で説明したように行う。同様に、βRAM制御部１１１は、第２βRAM１１４に対して、後ろ向き確率βを、データD114として読み書きする読み書き制御を、図１６及び図１７で説明したように行う。
【０４７８】
そして、βRAM制御部１１１は、図８で説明したように、第１βRAM１１３、又は第２βRAM１１４から読み出した後ろ向き確率βを、データD117として、λ計算部３１２に供給する。
【０４７９】
λ計算部３１２は、図８のλ計算部１１２と同様に、γRAM制御部３０２からデータD115として供給される（時刻t-Dの）出力遷移確率γ、α計算部３０８からデータD116として供給される（時刻t-D-1の）前向き確率α、及びβRAM制御部１１１からデータD117として供給される（時刻t-Dの）後ろ向き確率βを用い、例えば、式（２２）にしたがって、（時刻t-Dの）出力軟値データλを求めて、データD118として、LDPC復号器６８（図１９）に供給する。
【０４８０】
但し、λ計算部３１２は、γRAM制御部３０２からデータD115として供給される出力遷移確率γについては、γRAM制御部３０２からのデータD115'としての、E個の枝の枝情報に基づき、γRAM制御部３０２からのデータD115としての、E個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用い、式（２２）にしたがって、出力軟値データλを求める。
【０４８１】
すなわち、λ計算部３１２では、有効枝の出力遷移確率γ、有効枝が表す遷移の遷移前の状態の前向き確率α、及び、有効枝が表す遷移の遷移後の状態の後ろ向き確率βのみを用いて、式（２２）の計算が行われ、出力軟値データλが求められる。
【０４８２】
次に、図２２を参照して、図２１のα計算部３０８の処理について、さらに説明する。
【０４８３】
例えば、いま、上述の図９に示したように、時刻t-1に状態0にいる前向き確率αがaであり、時刻t-1に状態2にいる前向き確率αがbであるとする。また、枝0→1のデータとしての出力遷移確率γがdであり、枝2→1のデータとしての出力遷移確率γがeであるとする。
【０４８４】
この場合、α計算部３０８では、枝0→1のデータとしての出力遷移確率γであるdと、枝2→1のデータとしての出力遷移確率γであるeとのうちの、有効枝のみの出力遷移確率γを用いて、時刻tに状態1にいる前向き確率αであるcが求められる。
【０４８５】
すなわち、図２２は、α計算部３０８の一部の構成例、つまり、上述の図９の時変トレリスにおいて、時刻tに状態1にいる前向き確率αであるcを求める部分の構成例を示している。
【０４８６】
なお、図２２のα計算部３０８において、図１０のα計算部１０８の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０４８７】
α計算部３０８では、図１０のα計算部１０８と同様に、式（１８）にしたがい、時刻t-1に状態0にいる前向き確率αであるaと、枝0→1のデータとしての出力遷移確率γであるdとの加算値a+d、及び、時刻t-1に状態2にいる前向き確率αであるbと、枝2→1のデータとしての出力遷移確率γであるeとの加算値b+eが求められる。そして、α計算部３０８では、その加算値a+dとb+eの中で、有効枝の出力遷移確率γを用いて求められた加算値のうちの最大値が、時刻tに状態1にいる前向き確率αであるcとして求められる。
【０４８８】
すなわち、時刻t-1に状態0にいる前向き確率αであるaと、枝0→1の出力遷移確率γであるdとの加算値a+dは、入力IN0として、セレクタ３３１に供給される。また、時刻t-1に状態2にいる前向き確率αであるbと、枝2→1の出力遷移確率γであるeとの加算値b+eは、入力IN1として、セレクタ３３２に供給される。
【０４８９】
ここで、α計算部３０８では、データ（出力遷移確率γ、前向き確率α）は、Wビットで扱われることとする。したがって、入力IN0及びIN1は、いずれもWビットである。
【０４９０】
セレクタ３３１には、入力IN0としての加算値a+dの他、その加算値a+dの計算に用いられた出力遷移確率γ=dに対応する枝0→1の１ビットの枝情報も、データEN0として供給される。
【０４９１】
セレクタ３３１は、枝0→1の１ビットの枝情報EN0に基づき、入力IN0としての加算値a+d、又は確率（確率の対数をとった値）の最小値である0のうちの一方を選択し、データd0として、比較部１５１及びセレクタ１５２に供給する。
【０４９２】
すなわち、セレクタ３３１は、枝0→1の１ビットの枝情報EN0が、枝0→1が有効枝であることを表しているとき（ここでは、値が1であるとき）、入力IN0としての加算値a+dを、データd0として選択する。また、セレクタ３３１は、枝0→1の１ビットの枝情報EN0が、枝0→1が無効枝であることを表しているとき（ここでは、値が0であるとき）、確率の最小値である0を、データd0として選択する。そして、セレクタ３３１は、データd0を、比較部１５１及びセレクタ１５２に供給する。
【０４９３】
一方、セレクタ３３２には、入力IN1としての加算値b+eの他、その加算値b+eの計算に用いられた出力遷移確率γ=eに対応する枝2→1の１ビットの枝情報も、データEN1として供給される。
【０４９４】
セレクタ３３２は、枝2→1の１ビットの枝情報EN1に基づき、入力IN1としての加算値b+e、又は確率の最小値である0のうちの一方を選択し、データd1として、比較部１５１及びセレクタ１５２に供給する。
【０４９５】
すなわち、セレクタ３３２は、枝2→1の１ビットの枝情報EN0が、枝2→1が有効枝であることを表しているとき、入力IN1としての加算値b+eを、データd1として選択する。また、セレクタ３３２は、枝2→1の１ビットの枝情報EN0が、枝2→1が無効枝であることを表しているとき、確率の最小値である0を、データd1として選択する。そして、セレクタ３３２は、データd1を、比較部１５１及びセレクタ１５２に供給する。
【０４９６】
比較部１５１は、図１０で説明したように、データd0とd1とを比較して、データd0が、データd1より大きい場合には、値が1の選択フラグを、データd0が、データd1より大きくない場合には、値が0の選択フラグを、セレクタ１５２に供給する。
【０４９７】
セレクタ１５２は、図１０で説明したように、比較部１５１からの選択フラグに基づき、その選択フラグが1であり、したがって、データd0が、データd1より大きい場合には、データd0を、WビットのデータMOUTとして選択し、そのデータMOUTを、時刻tに状態1にいる前向き確率αであるcとして出力する。
【０４９８】
また、セレクタ１５２は、比較部１５１からの選択フラグが0であり、したがって、データd0が、データd1より大きくない場合には、データd1を、WビットのデータMOUTとして選択し、そのデータMOUTを、時刻tに状態1にいる前向き確率αであるcとして出力する。
【０４９９】
以上のように、α計算部３０８では、枝が有効枝である場合には、その枝の出力遷移確率γを用いて求められた加算値を用いるとともに、枝が無効枝である場合には、その枝の出力遷移確率γを用いて求められた加算値に代えて、確率の最小値である0を用いて、前向き確率αが求められる。
【０５００】
したがって、α計算部３０８では、有効枝のみの出力遷移確率γを用いて、前向き確率α（ひいては、出力軟値データλ）を求める式（１８）の計算が行われることになる。その結果、無効枝を通るパスにしたがった、軟入力軟出力の復号が行われることを防止して、軟入力軟出力の復号の性能を向上させることができる。
【０５０１】
なお、SW-Max-Log-BCJRアルゴリズムを含むMax-Log-BCJRアルゴリズムでは、前向き確率αの計算を、式（８）に代えて、式（１８）で行うにあたり、式（１４）にしたがい、２つの確率exとeyの和ex+eyの対数をとった値log(ex+ey)を、その２つの確率exとeyそれぞれの対数をとった値（以下、適宜、対数値という）log(ex)とlog(ey)のうちの最大値max(x,y)で近似するため、セレクタ１５２において、データd0とd1のうちの大きい方を、前向き確率αとして選択する。
【０５０２】
しかしながら、セレクタ１５２において、データd0とd1のうちの大きい方を、前向き確率αとして選択し続けると、前向き確率αが、Wビット（例えば、固定小数点のWビット）で表現する範囲を超えた値になってしまうことがあり得る。
【０５０３】
そこで、実際のα計算部３０８の実装では、確率の対数値に代えて、確率の対数値のマイナスをとった値（確率の対数値に−１を乗算した値）（以下、適宜、マイナス対数値という）を採用し、セレクタ１５２において、データd0とd1のうちの小さい方を、前向き確率αとして選択するようにすることにより、前向き確率αが、Wビットで表現する範囲を超えた値になってしまうことを防止することができる。
【０５０４】
但し、確率のマイナス対数値を採用する場合には、セレクタ３３１及び３３２において、枝情報が無効枝を表しているときに、Wビットで表現することができる、確率のマイナス対数値の最大値、つまり、2W-1を選択するようにする必要がある。
【０５０５】
なお、マイナス対数値は、図１０のα計算部１０８でも採用することができる。
【０５０６】
次に、図２３を参照して、図２１の第１β計算部３０９の処理について、さらに説明する。
【０５０７】
例えば、いま、上述の図１１に示したように、時刻t+1に状態0にいる後ろ向き確率βがaであり、時刻t+1に状態2にいる後ろ向き確率βがbであるとする。また、枝1→0のデータとしての出力遷移確率γがdであり、枝1→2のデータとしての出力遷移確率γがeであるとする。
【０５０８】
この場合、第１β計算部３０９では、枝1→0のデータとしての出力遷移確率γであるdと、枝1→2のデータとしての出力遷移確率γであるeとのうちの、有効枝のみの出力遷移確率γを用いて、時刻tに状態1にいる後ろ向き確率βであるcが求められる。
【０５０９】
すなわち、図２３は、第１β計算部３０９の一部の構成例、つまり、上述の図１１の時変トレリスにおいて、時刻tに状態1にいる後ろ向き確率βであるcを求める部分の構成例を示している。
【０５１０】
なお、図２３の第１β計算部３０９において、図１２の第１β計算部１０９の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０５１１】
第１β計算部３０９では、図１２の第１β計算部１０９と同様に、式（１９）にしたがい、時刻t+1に状態0にいる後ろ向き確率βであるaと、枝1→0のデータとしての出力遷移確率γであるdとの加算値a+d、及び、時刻t+1に状態2にいる後ろ向き確率βであるbと、枝1→2のデータとしての出力遷移確率γであるeとの加算値b+eが求められる。そして、第１β計算部３０９では、その加算値a+dとb+eの中で、有効枝の出力遷移確率γを用いて求められた加算値のうちの最大値が、時刻tに状態1にいる後ろ向き確率βであるcとして求められる。
【０５１２】
すなわち、時刻t+1に状態0にいる後ろ向き確率βであるaと、枝1→0の出力遷移確率γであるdとの加算値a+dは、入力IN0として、セレクタ３４１に供給される。また、時刻t+1に状態2にいる後ろ向き確率βであるbと、枝1→2の出力遷移確率γであるeとの加算値b+eは、入力IN1として、セレクタ３４２に供給される。
【０５１３】
ここで、第１β計算部３０９では、データ（出力遷移確率γ、後ろ向き確率β）は、Wビットで扱われることとする。したがって、入力IN0及びIN1は、いずれもWビットである。
【０５１４】
セレクタ３４１には、入力IN0としての加算値a+dの他、その加算値a+dの計算に用いられた出力遷移確率γ=dに対応する枝1→0の１ビットの枝情報も、データEN0として供給される。
【０５１５】
セレクタ３４１は、枝1→0の１ビットの枝情報EN0に基づき、入力IN0としての加算値a+d、又は確率の最小値である0のうちの一方を選択し、データd0として、比較部１６１及びセレクタ１６２に供給する。
【０５１６】
すなわち、セレクタ３４１は、枝1→0の１ビットの枝情報EN0が、枝1→0が有効枝であることを表しているとき、入力IN0としての加算値a+dを、データd0として選択する。また、セレクタ３４１は、枝1→0の１ビットの枝情報EN0が、枝1→0が無効枝であることを表しているとき、確率の最小値である0を、データd0として選択する。そして、セレクタ３４１は、データd0を、比較部１６１及びセレクタ１６２に供給する。
【０５１７】
一方、セレクタ３４２には、入力IN1としての加算値b+eの他、その加算値b+eの計算に用いられた出力遷移確率γ=eに対応する枝1→2の１ビットの枝情報も、データEN1として供給される。
【０５１８】
セレクタ３４２は、枝1→2の１ビットの枝情報EN1に基づき、入力IN1としての加算値b+e、又は確率の最小値である0のうちの一方を選択し、データd1として、比較部１６１及びセレクタ１６２に供給する。
【０５１９】
すなわち、セレクタ３４２は、枝1→2の１ビットの枝情報EN0が、枝1→2が有効枝であることを表しているとき、入力IN1としての加算値b+eを、データd1として選択する。また、セレクタ３４２は、枝1→2の１ビットの枝情報EN0が、枝1→2が無効枝であることを表しているとき、確率の最小値である0を、データd1として選択する。そして、セレクタ３４２は、データd1を、比較部１６１及びセレクタ１６２に供給する。
【０５２０】
比較部１６１は、図１２で説明したように、データd0とd1とを比較して、データd0が、データd1より大きい場合には、値が1の選択フラグを、データd0が、データd1より大きくない場合には、値が0の選択フラグを、セレクタ１６２に供給する。
【０５２１】
セレクタ１６２は、図１２で説明したように、比較部１６１からの選択フラグに基づき、その選択フラグが1であり、したがって、データd0が、データd1より大きい場合には、データd0を、WビットのデータMOUTとして選択し、そのデータMOUTを、時刻tに状態1にいる後ろ向き確率βであるcとして出力する。
【０５２２】
また、セレクタ１６２は、比較部１６１からの選択フラグが0であり、したがって、データd0が、データd1より大きくない場合には、データd1を、WビットのデータMOUTとして選択し、そのデータMOUTを、時刻tに状態1にいる後ろ向き確率βであるcとして出力する。
【０５２３】
以上のように、第１β計算部３０９では、枝が有効枝である場合には、その枝の出力遷移確率γを用いて求められた加算値を用いるとともに、枝が無効枝である場合には、その枝の出力遷移確率γを用いて求められた加算値に代えて、確率の最小値である0を用いて、後ろ向き確率βが求められる。
【０５２４】
したがって、第１β計算部３０９では、有効枝のみの出力遷移確率γを用いて、後ろ向き確率β（ひいては、出力軟値データλ）を求める式（１９）の計算が行われることになる。その結果、無効枝を通るパスにしたがった、軟入力軟出力の復号が行われることを防止して、軟入力軟出力の復号の性能を向上させることができる。
【０５２５】
なお、SW-Max-Log-BCJRアルゴリズムを含むMax-Log-BCJRアルゴリズムでは、後ろ向き確率βの計算を、式（１０）に代えて、式（１９）で行うにあたり、式（１４）にしたがい、２つの確率exとeyの和ex+eyの対数値log(ex+ey)を、その２つの確率exとeyそれぞれの対数値log(ex)とlog(ey)のうちの最大値max(x,y)で近似するため、セレクタ１６２において、データd0とd1のうちの大きい方を、後ろ向き確率βとして選択する。
【０５２６】
しかしながら、セレクタ１６２において、データd0とd1のうちの大きい方を、後ろ向き確率βとして選択し続けると、後ろ向き確率βが、Wビットで表現する範囲を超えた値になってしまうことがあり得る。
【０５２７】
そこで、実際の第１β計算部３０９の実装では、確率の対数値に代えて、確率のマイナス対数値を採用し、セレクタ１６２において、データd0とd1のうちの小さい方を、後ろ向き確率βとして選択するようにすることにより、後ろ向き確率βが、Wビットで表現する範囲を超えた値になってしまうことを防止することができる。
【０５２８】
但し、確率のマイナス対数値を採用する場合には、セレクタ３４１及び３４２において、枝情報が無効枝を表しているときに、Wビットで表現することができる、確率のマイナス対数値の最大値、つまり、2W-1を選択するようにする必要がある。
【０５２９】
なお、図２１の第２β計算部３１０は、図２３の第１β計算部３０９と同様に構成されるため、その説明は省略する。
【０５３０】
また、マイナス対数値は、図１２の第１β計算部１０９（及び第２β計算部１１０）でも採用することができる。
【０５３１】
次に、図２４を参照して、図２１のλ計算部３１２の処理について、さらに説明する。
【０５３２】
例えば、いま、上述の図１３及び図１４で説明したように、４つの状態"00","01","10","11を有し、入力データitが1である場合に、状態"00"から状態"10"への遷移（枝"00"→"10"）、状態"10"から状態"11"への遷移（枝"10"→"11"）、状態"01"から状態"10"への遷移（枝"01"→"10"）、及び状態"11"から状態"11"への遷移（枝"11"→"11"）が存在するトレリスにおいて、時刻t-1に状態"00","10","01","11"にいる前向き確率αが、それぞれ、a0,a1,a2,a3であるとともに、時刻tに、状態"10","11"にいる後ろ向き確率βが、それぞれ、b1,b3であるとする。
【０５３３】
また、枝"00"→"10"、枝"10"→"11"、枝"01"→"10"、枝"11"→"11"のデータとしての出力遷移確率γが、それぞれ、g01,g13,g21,g33であるとする。
【０５３４】
この場合、λ計算部３１２では、枝"00"→"10"のデータとしての出力遷移確率γであるg01、枝"10"→"11"のデータとしての出力遷移確率γであるg13、枝"01"→"10"のデータとしての出力遷移確率γであるg21、及び、枝"11"→"11"のデータとしての出力遷移確率γであるg33のうちの、有効枝のみの出力遷移確率γを用いて、式（２２）右辺の第１項の値である、入力データitが1である場合についての加算値が求められる。
【０５３５】
さらに、λ計算部３１２では、入力データitが0である場合についても、入力データitが1である場合についての加算値を求める場合と同様に、有効枝のみの出力遷移確率γを用いて、式（２２）右辺の第２項の値である、入力データitが0である場合についての加算値が求められる。
【０５３６】
そして、λ計算部３１２では、式（２２）にしたがい、入力データitが1である場合についての加算値から、入力データitが0である場合についての加算値を減算した減算値が、出力軟値データλ（時刻tの出力軟値データλt）として求められる。
【０５３７】
すなわち、図２４は、λ計算部３１２の一部の構成例、つまり、上述の図１４のトレリスにおいて、入力データitが1である場合についての加算値を求める部分の構成例を示している。
【０５３８】
なお、図２４のλ計算部３１２において、図１５のλ計算部１１２の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０５３９】
λ計算部３１２では、図１５のλ計算部１１２と同様に、式（２２）にしたがい、時刻t-1に状態"00"にいる前向き確率αであるa0、枝"00"→"10"のデータとしての出力遷移確率γであるg01、及び、時刻tに状態"10"にいる後ろ向き確率βであるb1の加算値a0+g01+b1が求められるとともに、時刻t-1に状態"01"にいる前向き確率αであるa2、枝"01"→"10"のデータとしての出力遷移確率γであるg21、及び、時刻tに状態"10"にいる後ろ向き確率βであるb1の加算値a2+g21+b1が求められる。
【０５４０】
さらに、λ計算部３１２では、時刻t-1に状態"10"にいる前向き確率αであるa1、枝"10"→"11"のデータである出力遷移確率γであるg13、及び、時刻tに状態"11"にいる後ろ向き確率βであるb3の加算値a1+g13+b3が求められるとともに、時刻t-1に状態"11"にいる前向き確率αであるa3、枝"11"→"11"のデータである出力遷移確率γであるg33、及び、時刻tに状態"11"にいる後ろ向き確率であるb3の加算値a3+g33+b3が求められる。
【０５４１】
そして、λ計算部３１２では、上述した４つの加算値a0+g01+b1，a2+g21+b1，a1+g13+b3、及びa3+g33+b3の中で、有効枝の出力遷移確率γを用いて求められた加算値のうちの最大値が、入力データitが1である場合についての加算値であるL1＿1として求められる。
【０５４２】
すなわち、時刻t-1に状態"00"にいる前向き確率αであるa0、枝"00"→"10"の出力遷移確率γであるg01、及び、時刻tに状態"10"にいる後ろ向き確率βであるb1の加算値a0+g01+b1は、入力入力agb01として、セレクタ３５１に供給される。
【０５４３】
また、時刻t-1に状態"01"にいる前向き確率αであるa2、枝"01"→"10"の出力遷移確率γであるg21、及び、時刻tに状態"10"にいる後ろ向き確率βであるb1の加算値a2+g21+b1は、入力agb21として、セレクタ３５２に供給される。
【０５４４】
さらに、時刻t-1に状態"10"にいる前向き確率αであるa1、枝"10"→"11"の出力遷移確率γであるg13、及び、時刻tに状態"11"にいる後ろ向き確率βであるb3の加算値a1+g13+b3は、入力agb13として、セレクタ３５３に供給される。
【０５４５】
また、時刻t-1に状態"11"にいる前向き確率αであるa3、枝"11"→"11"の出力遷移確率γであるg33、及び、時刻tに状態"11"にいる後ろ向き確率であるb3の加算値a3+g33+b3は、入力agb33として、セレクタ３５４に供給される。
【０５４６】
ここで、λ計算部３１２では、データ（出力遷移確率γ、前向き確率α、後ろ向き確率β）は、Wビットで扱われることとする。したがって、入力agb01，agb21，agb13、及びagb33は、いずれもWビットである。
【０５４７】
セレクタ３５１には、入力agb01としての加算値a0+g01+b1の他、その加算値a0+g01+b1の計算に用いられた出力遷移確率γ=g01に対応する枝0→1(枝"00→"10"）の１ビットの枝情報も、データen01として供給される。
【０５４８】
セレクタ３５１は、枝0→1の１ビットの枝情報en01に基づき、入力agb01としての加算値a0+g01+b1、又は確率の最小値である0のうちの一方を選択し、データd0として、比較部１８１及びセレクタ１８２に供給する。
【０５４９】
すなわち、セレクタ３５１は、枝0→1の１ビットの枝情報en01が、枝0→1が有効枝であることを表しているとき、入力agb01としての加算値a0+g01+b1を、データd0として選択する。また、セレクタ３５１は、枝0→1の１ビットの枝情報en01が、枝0→1が無効枝であることを表しているとき、確率の最小値である0を、データd0として選択する。そして、セレクタ３５１は、データd0を、比較部１８１及びセレクタ１８２に供給する。
【０５５０】
一方、セレクタ３５２には、入力agb21としての加算値a2+g21+b1の他、その加算値a2+g21+b1の計算に用いられた出力遷移確率γ=g21に対応する枝2→1（枝"01"→"10"）の１ビットの枝情報も、データen21として供給される。
【０５５１】
セレクタ３５２は、枝2→1の１ビットの枝情報en21に基づき、入力agb21としての加算値a2+g21+b1、又は確率の最小値である0のうちの一方を選択し、データd1として、比較部１８１及びセレクタ１８２に供給する。
【０５５２】
すなわち、セレクタ３５２は、枝2→1の１ビットの枝情報en21が、枝2→1が有効枝であることを表しているとき、入力agb21としての加算値a2+g21+b1を、データd1として選択する。また、セレクタ３５２は、枝2→1の１ビットの枝情報en21が、枝2→1が無効枝であることを表しているとき、確率の最小値である0を、データd1として選択する。そして、セレクタ３５２は、データd1を、比較部１８１及びセレクタ１８２に供給する。
【０５５３】
また、セレクタ３５３には、入力agb13としての加算値a1+g13+b3の他、その加算値a1+g13+b3の計算に用いられた出力遷移確率γ=g13に対応する枝1→3（枝"10"→"11"）の１ビットの枝情報も、データen13として供給される。
【０５５４】
セレクタ３５３は、枝1→3の１ビットの枝情報en13に基づき、入力agb13としての加算値a1+g13+b3、又は確率の最小値である0のうちの一方を選択し、データd2として、比較部１８１及びセレクタ１８２に供給する。
【０５５５】
すなわち、セレクタ３５３は、枝1→3の１ビットの枝情報en13が、枝1→3が有効枝であることを表しているとき、入力agb13としての加算値a1+g13+b3を、データd2として選択する。また、セレクタ３５３は、枝1→3の１ビットの枝情報en13が、枝1→3が無効枝であることを表しているとき、確率の最小値である0を、データd2として選択する。そして、セレクタ３５３は、データd2を、比較部１８１及びセレクタ１８２に供給する。
【０５５６】
また、セレクタ３５４には、入力agb33としての加算値a3+g33+b3の他、その加算値a3+g33+b3の計算に用いられた出力遷移確率γ=g33に対応する枝3→3（枝"11"→"11"）の１ビットの枝情報も、データen33として供給される。
【０５５７】
セレクタ３５４は、枝3→3の１ビットの枝情報en33に基づき、入力agb33としての加算値a3+g33+b3、又は確率の最小値である0のうちの一方を選択し、データd3として、比較部１８１及びセレクタ１８２に供給する。
【０５５８】
すなわち、セレクタ３５４は、枝3→3の１ビットの枝情報en33が、枝3→3が有効枝であることを表しているとき、入力agb33としての加算値a3+g33+b3を、データd3として選択する。また、セレクタ３５４は、枝3→3の１ビットの枝情報en33が、枝3→3が無効枝であることを表しているとき、確率の最小値である0を、データd3として選択する。そして、セレクタ３５４は、データd3を、比較部１８１及びセレクタ１８２に供給する。
【０５５９】
比較部１８１は、図１５で説明したように、４つのデータd0，d1，d2、及びd3を比較し、４つのデータd0，d1，d2、及びd3のうちの最も大きいものを表す、２ビットの選択フラグを、セレクタ１８２に供給する。
【０５６０】
すなわち、比較部１８１は、４つのデータd0，d1，d2、及びd3のうちの、データd0が最も大きい場合には、値が0(002)の選択フラグを、データd1が最も大きい場合には、値が1(012)の選択フラグを、データd2が最も大きい場合には、値が2(102)の選択フラグを、データd3が最も大きい場合には、値が3(112)の選択フラグを、それぞれ、セレクタ１８２に供給する。
【０５６１】
セレクタ１８２は、図１５で説明したように、比較部１８１からの選択フラグに基づき、その選択フラグが0であり、したがって、データd0が最も大きい場合には、データd0を、WビットのデータL1_1として選択し、そのデータL1_1を、入力データitが1である場合についての加算値として出力する。
【０５６２】
また、セレクタ１８２は、比較部１８１からの選択フラグが1であり、したがって、データd1が最も大きい場合には、データd1を、WビットのデータL1_1として選択し、そのデータL1_1を、入力データitが1である場合についての加算値として出力する。
【０５６３】
同様に、セレクタ１８２は、比較部１８１からの選択フラグが2又は3であり、したがって、データd2又はd3が最も大きい場合には、データd2又はd3を、それぞれ選択し、入力データitが1である場合についての加算値として出力する。
【０５６４】
以上のように、λ計算部３１２では、枝が有効枝である場合には、その枝の出力遷移確率γを用いて求められた加算値を用いるとともに、枝が無効枝である場合には、その枝の出力遷移確率γを用いて求められた加算値に代えて、確率の最小値である0を用いて、入力データitが1である場合についての加算値、ひいては、出力軟値データλが求められる。
【０５６５】
したがって、λ計算部３１２では、有効枝のみの出力遷移確率γを用いて、出力軟値データλを求める式（２２）の計算が行われることになる。その結果、無効枝を通るパスにしたがった、軟入力軟出力の復号が行われることを防止して、軟入力軟出力の復号の性能を向上させることができる。
【０５６６】
なお、SW-Max-Log-BCJRアルゴリズムを含むMax-Log-BCJRアルゴリズムでは、出力軟値データλの計算を、式（７）に代えて、式（２２）で行うにあたり、式（１４）にしたがい、２つの確率exとeyの和ex+eyの対数値log(ex+ey)を、その２つの確率exとeyそれぞれの対数値log(ex)とlog(ey)のうちの最大値max(x,y)で近似するため、セレクタ１８２において、データd0ないしd3のうちの最大値を、入力データitが1である場合についての加算値として選択する。
【０５６７】
しかしながら、セレクタ１８２において、データd0ないしd3のうちの最大値を、入力データitが1である場合についての加算値として選択し続けると、入力データitが1である場合についての加算値が、Wビットで表現する範囲を超えた値になってしまうことがあり得る。
【０５６８】
そこで、実際のλ計算部３１２の実装では、確率の対数値に代えて、確率のマイナス対数値を採用し、セレクタ１８２において、データd0ないしd3のうちの最小値を、入力データitが1である場合についての加算値として選択するようにすることにより、入力データitが1である場合についての加算値が、Wビットで表現する範囲を超えた値になってしまうことを防止することができる。
【０５６９】
但し、確率のマイナス対数値を採用する場合には、セレクタ３５１ないし３５４において、枝情報が無効枝を表しているときに、Wビットで表現することができる、確率のマイナス対数値の最大値、つまり、2W-1を選択するようにする必要がある。
【０５７０】
なお、マイナス対数値は、図１５のλ計算部１１２でも採用することができる。
【０５７１】
次に、図２５のフローチャートを参照して、図２１のSISO復号器２８２の処理について、さらに説明する。
【０５７２】
図２１のSISO復号器２８２では、入力軟値データYtから出力軟値データλを求める所定の計算としての式（１８）、式（１９）、及び式（２２）の計算に用いる、枝のデータとしての出力遷移確率γを、入力軟値データYtが供給されるごとに求め、第１γRAM３０３ないし第５γRAM３０７に記憶する、出力遷移確率γの記憶処理と、第１γRAM３０３ないし第５γRAM３０７に記憶された出力遷移確率γを用いて、式（１８）の前向き確率α、式（１９）の後ろ向き確率β、及び式（２２）の出力軟値データλを計算する、前向き確率α、後ろ向き確率β、及び出力軟値データλの計算処理とが行われる。
【０５７３】
まず、図２５上のフローチャートを参照して、記憶処理について説明する。
【０５７４】
記憶処理では、記録再生系６５（図１９）からSISO復号器２８２に対して、入力軟値データYtが供給されると、ステップＳ１０１において、γ計算部１０１が、記録再生系６５からの入力軟値データYtを用いて、式（２０）の計算を行うことにより、上述したような、時変トレリスのE個の枝の出力遷移確率γを計算し、γRAM制御部３０２に供給する。
【０５７５】
また、ステップＳ１０１では、カウンタ３１５がカウント値を１だけインクリメントし、枝情報生成部３１６に供給する。なお、カウンタ３１５は、位相検出器２８１（図１９）から、アクティブの位相情報を受信した場合、カウント値を0にリセットする。
【０５７６】
その後、処理は、ステップＳ１０１からステップＳ１０２に進み、枝情報生成部３１６は、上述したように、カウンタ３１５からのカウント値を、枝情報に変換することにより、直前のステップＳ１０１においてγ計算部１０１で出力遷移確率γが求められたE個の枝の枝情報を生成し、γRAM制御部３０２に供給して、処理は、ステップＳ１０３に進む。
【０５７７】
ステップＳ１０３では、γRAM制御部３０２が、γ計算部１０１からのE個の枝の出力遷移確率γと、枝情報生成部３１６からの、そのE個の枝の枝情報とを対応付け、そのE個の枝の出力遷移確率γとE個の枝情報とのセットを、第１γRAM３０３ないし第５γRAM３０７のうちのいずれかに供給して記憶させる。
【０５７８】
以下、記録再生系６５（図１９）からSISO復号器２８２に対して、入力軟値データYtが供給されるたびに、ステップＳ１０１ないしＳ１０３の処理が行われる。
【０５７９】
次に、図２５下のフローチャートを参照して、計算処理について説明する。
【０５８０】
γRAM制御部３０２は、ステップＳ１１１において、第１γRAM３０３ないし第５γRAM３０７のうちのいずれかから、E個の枝の出力遷移確率γとE個の枝の枝情報とのセットを読み出し、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給して、処理は、ステップＳ１１２に進む。
【０５８１】
ステップＳ１１２では、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２が、γRAM制御部３０２からの、遷移情報としてのE個の枝の枝情報に基づき、同じくγRAM制御部３０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用いて、所定の計算を行う。
【０５８２】
すなわち、α計算部３０８では、γRAM制御部３０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γと、前回求められた１時刻前の時刻tα-1の前向き確率αとを用いて、式（１８）の計算が行われ、時刻tαの前向き確率αが求められる。
【０５８３】
また、第１β計算部３０９では、γRAM制御部３０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γと、前回求められた１時刻後の時刻tβ1+1の後ろ向き確率βとを用いて、式（１９）の計算が行われ、時刻tβ1の後ろ向き確率βが求められる。
【０５８４】
さらに、第２β計算部３１０では、γRAM制御部３０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γと、前回求められた１時刻後の時刻tβ2+1の後ろ向き確率βとを用いて、式（１９）の計算が行われ、時刻tβ2の後ろ向き確率βが求められる。
【０５８５】
また、λ計算部３１２では、γRAM制御部３０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γ、さらには、α計算部３０８で求められた前向き確率α、及び、第１β計算部３０９又は第２β計算部３１０で求められ、第１βRAM１１３又は第２βRAM１１４に記憶された後ろ向き確率βを用いて、式（２２）の計算が行われ、出力軟値データλが求められる。
【０５８６】
以下、各時刻、つまり、記録再生系６５（図１９）からSISO復号器２８２に対して、入力軟値データYtが供給されるたびに、ステップＳ１１１及びＳ１１２の処理が行われる。
【０５８７】
次に、図２６は、遷移情報として、パターン情報を採用した場合の、図１９のSISO復号器２８２の構成例を示している。
【０５８８】
なお、図中、図８のSISO復号器６７、又は図２１のSISO復号器２８２と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０５８９】
図２６のSISO復号器２８２は、γ計算部１０１、βRAM制御部１１１、第１βRAM１１３、第２βRAM１１４、α計算部３０８、第１β計算部３０９、第２β計算部３１０、λ計算部３１２、カウンタ３１５、制御部４００、γRAM制御部４０２、第１γRAM４０３、第２γRAM４０４、第３γRAM４０５、第４γRAM４０６、第５γRAM４０７、パターン情報生成部４１６、パターン情報変換部４２０，４２１，４２２、及び４２３から構成されており、例えば、図２１のSISO復号器２８２と同様に、SW-Max-Log-BCJRアルゴリズムにしたがい、入力軟値データYtに対して、その入力軟値データYtの復号結果としての出力軟値データλを、打ち切り長Dの４倍の遅延時間4Dで出力する。
【０５９０】
図２６のSISO復号器２８２において、制御部４００は、γ計算部１０１、βRAM制御部１１１、α計算部３０８、第１β計算部３０９、第２β計算部３１０、λ計算部３１２、カウンタ３１５、γRAM制御部４０２、パターン情報生成部４１６、パターン情報変換部４２０，４２１，４２２、及び４２３が連携して、入力軟値データYtを出力軟値データλtに復号するための処理を行うように、γ計算部１０１、βRAM制御部１１１、α計算部３０８、第１β計算部３０９、第２β計算部３１０、λ計算部３１２、カウンタ３１５、γRAM制御部４０２、パターン情報生成部４１６、パターン情報変換部４２０，４２１，４２２、及び４２３を制御する。
【０５９１】
γ計算部１０１には、図１９の記録再生系６５から、時刻tの入力軟値データYtが、データD101として供給される。
【０５９２】
γ計算部１０１は、時刻tの入力軟値データYtに対して、式（２０）にしたがい、時変トレリスの時刻tの枝すべて、つまり、時刻t-1の状態St-1から時刻tの状態Stへの遷移を表す、E個の枝すべてに対する出力遷移確率γ（の集合）を計算し、データD102として、γRAM制御部４０２に供給する。
【０５９３】
一方、カウンタ３１５には、図１９の位相検出器２８１から位相情報が供給され、カウンタ３１５は、図２１で説明したように、その位相情報に基づいて、カウント値をリセットし、γ計算部１０１で、入力軟値データYtから出力遷移確率γが計算されるごとに、カウント値を１だけインクリメントして、パターン情報生成部４１６に供給する。
【０５９４】
パターン情報生成部４１６は、カウンタ３１５から供給されるカウント値に基づいて、そのカウント値に対応する時刻の状態から次の時刻の状態への遷移のうちの、可能な遷移の遷移パターンを表すパターン情報、すなわち、有効枝（と無効枝と）のパターンを表すパターン情報を、遷移情報として生成し、γRAM制御部４０２に供給する。
【０５９５】
すなわち、パターン情報生成部４１６は、時変トレリスの１周期の先頭のタイミングを基準とする、１周期の各時刻と、その時刻の状態から次の時刻の状態への遷移を表す枝のうちの、有効枝のパターンを表すint[log2P]ビットのパターン情報とを対応付けたテーブルを記憶しており、パターン情報生成部４１６は、カウンタ３１５からのカウント値が供給されると、そのカウント値に等しい時刻と対応付けられている、パターン情報、つまり、γ計算部１０１で出力遷移確率γが計算されている枝についてのパターン情報を、テーブルから読み出すことにより、カウント値を、int[log2P]ビットのパターン情報に変換し、γRAM制御部４０２に供給する。
【０５９６】
ここで、Pは、図１８で説明したように、時変トレリスにおける遷移パターンのパターン数を表す。
【０５９７】
γRAM制御部４０２は、γ計算部１０１から供給されるE個の枝の出力遷移確率γと、そのE個の枝についての、パターン情報生成部４１６から供給されるint[log2P]ビットのパターン情報とを対応付け、そのE個の枝の出力遷移確率γとパターン情報とのセットを、第１γRAM４０３、第２γRAM４０４、第３γRAM４０５、第４γRAM４０６、又は第５γRAM４０７に書き込む書き込み制御と、その第１γRAM４０３ないし第５γRAM４０７から、E個の枝の出力遷移確率γとパターン情報とのセットを読み出す読み出し制御を行う。
【０５９８】
すなわち、γRAM制御部４０２は、第１γRAM４０３に対して、E個の枝の出力遷移確率γとパターン情報とのセットを、データD403として読み書きする読み書き制御を行う。同様に、γRAM制御部４０２は、第２γRAM４０４に対して、E個の枝の出力遷移確率γとパターン情報とのセットを、データD404として読み書きする読み書き制御を、第３γRAM４０５に対して、E個の枝の出力遷移確率γとパターン情報とのセットを、データD405として読み書きする読み書き制御を、第４γRAM４０６に対して、E個の枝の出力遷移確率γとパターン情報とのセットを、データD406として読み書きする読み書き制御を、第５γRAM４０７に対して、E個の枝の出力遷移確率γとパターン情報とのセットを、データD407として読み書きする読み書き制御を、それぞれ行う。
【０５９９】
そして、第１γRAM４０３ないし第５γRAM４０７は、γRAM制御部４０２の制御にしたがって、出力遷移確率γとパターン情報とのセットを記憶する。
【０６００】
ここで、データD403ないしD407のビット幅は、いずれも、時変トレリスの枝数Eと、１つの枝に対する出力遷移確率γのビット数rとの積E×rに、E個の枝の出力遷移確率γに対応付けられるパターン情報のビット数int[log2P]を加算した値であるE×r+int[log2P]ビットである。
【０６０１】
また、第１γRAM４０３ないし第５γRAM４０７は、１ワードが、E×r+int[log2P]ビットで、打ち切り長Dに等しいワード数だけの記憶容量を有する。
【０６０２】
なお、γRAM制御部４０２による、第１γRAM４０３ないし第５γRAM４０７に対する読み書き制御は、出力遷移確率γではなく、出力遷移確率γとパターン情報とのセットが、読み書きの対象となることを除き、図８のγRAM制御部１０２が第１γRAM１０３ないし第５γRAM１０７に対して行う、図１６及び図１７で説明した読み書き制御と同様である。
【０６０３】
γRAM制御部４０２は、第１γRAM４０３ないし第５γRAM４０７から読み出したE個の枝の出力遷移確率γとパターン情報とのセットのうちの、E個の枝の出力遷移確率γを、図２１のγRAM制御部３０２と同様に、データD108,D109,D110、又はD115として、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給する。
【０６０４】
さらに、γRAM制御部４０２は、第１γRAM４０３ないし第５γRAM４０７から読み出したE個の枝の出力遷移確率γとパターン情報とのセットのうちの、int[log2P]ビットのパターン情報を、パターン情報変換部４２１，４２２，４２３、又は４２０に供給する。
【０６０５】
すなわち、γRAM制御部４０２は、図２１のγRAM制御部３０２と同様に、E個の枝の出力遷移確率γを、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給するが、α計算部３０８に出力遷移確率γを供給した場合には、その出力遷移確率γとセットになっていたパターン情報を、パターン情報変換部４２１に供給し、第１β計算部３０９に出力遷移確率γを供給した場合には、その出力遷移確率γとセットになっていたパターン情報を、パターン情報変換部４２２に供給し、第２β計算部３１０に出力遷移確率γを供給した場合には、その出力遷移確率γとセットになっていたパターン情報を、パターン情報変換部４２３に供給し、λ計算部３１２に出力遷移確率γを供給した場合には、その出力遷移確率γとセットになっていたパターン情報を、パターン情報変換部４２０に供給する。
【０６０６】
パターン情報変換部４２０は、例えば、時変トレリスのE個の枝のうちの有効枝（と無効枝と）のパターンを表す、int[log2P]ビットのパターン情報と、パターン情報が表す遷移パターンにおいて、E個の枝のそれぞれが有効枝、又は無効枝のうちのいずれであるかを表す、E個の枝のそれぞれの１ビットの枝情報とを対応付けたテーブルを記憶しており、γRAM制御部４０２からのパターン情報に対応付けられているE個の枝の枝情報を、テーブルから読み出すことにより、γRAM制御部４０２からのパターン情報を、E個の枝の枝情報に変換して、データD115'として、λ計算部３１２に供給する。
【０６０７】
パターン情報変換部４２１，４２２、又は４２３も、パターン情報変換部４２０と同一のテーブルを記憶しており、そのテーブルを用いて、γRAM制御部４０２からのパターン情報を、E個の枝の枝情報に変換して、データD108',D109'、又はD110'として、α計算部３０８、第１β計算部３０９、又は第２β計算部３１０に、それぞれ供給する。
【０６０８】
α計算部３０８は、パターン情報変換部４２１からのデータD108'としての、E個の枝の枝情報に基づき、γRAM制御部４０２からのデータD108としての、E個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用い、式（１８）にしたがって、前向き確率αを計算し、データD116として、λ計算部３１２に供給する。
【０６０９】
一方、第１β計算部３０９は、パターン情報変換部４２２からのデータD109'としての、E個の枝の枝情報に基づき、γRAM制御部４０２からのデータD109としての、E個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用い、式（１９）にしたがって、後ろ向き確率βを計算し、データD111として、βRAM制御部１１１に供給する。
【０６１０】
同様に、第２β計算部３１０も、パターン情報変換部４２３からのデータD110'としての、E個の枝の枝情報に基づき、γRAM制御部４０２からのデータD110としての、E個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用い、式（１９）にしたがって、後ろ向き確率βを計算し、データD112として、βRAM制御部１１１に供給する。
【０６１１】
βRAM制御部１１１は、図８の場合と同様に、第１β計算部３０９と第２β計算部３１０それぞれから供給される後ろ向き確率βを、第１βRAM１１３、又は第２βRAM１１４に書き込む書き込み制御と、その第１βRAM１１３又は第２βRAM１１４から、後ろ向き確率βを読み出す読み出し制御を行う。
【０６１２】
すなわち、βRAM制御部１１１は、第１βRAM１１３に対して、後ろ向き確率βを、データD113として読み書きする読み書き制御を、図１６及び図１７で説明したように行う。同様に、βRAM制御部１１１は、第２βRAM１１４に対して、後ろ向き確率βを、データD114として読み書きする読み書き制御を、図１６及び図１７で説明したように行う。
【０６１３】
そして、βRAM制御部１１１は、図８で説明したように、第１βRAM１１３、又は第２βRAM１１４から読み出した後ろ向き確率βを、データD117として、λ計算部３１２に供給する。
【０６１４】
λ計算部３１２は、γRAM制御部４０２からデータD115として供給される出力遷移確率γ、α計算部３０８からデータD116として供給される前向き確率α、及びβRAM制御部１１１からデータD117として供給される後ろ向き確率βを用い、式（２２）にしたがって、出力軟値データλを求めて、データD118として、LDPC復号器６８（図１９）に供給する。
【０６１５】
但し、λ計算部３１２は、γRAM制御部４０２からデータD115として供給される出力遷移確率γについては、パターン情報変換部４２０からのデータD115'としての、E個の枝の枝情報に基づき、γRAM制御部４０２からのデータD115としての、E個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用い、式（２２）にしたがって、出力軟値データλを求める。
【０６１６】
すなわち、λ計算部３１２では、有効枝の出力遷移確率γ、有効枝が表す遷移の遷移前の状態の前向き確率α、及び、有効枝が表す遷移の遷移後の状態の後ろ向き確率βのみを用いて、式（２２）の計算が行われ、出力軟値データλが求められる。
【０６１７】
次に、図２７のフローチャートを参照して、図２６のSISO復号器２８２の処理について、さらに説明する。
【０６１８】
図２６のSISO復号器２８２では、図２１のSISO復号器２８２と同様に、入力軟値データYtから出力軟値データλを求める所定の計算としての式（１８）、式（１９）、及び式（２２）の計算に用いる、枝のデータとしての出力遷移確率γを、入力軟値データYtが供給されるごとに求め、第１γRAM４０３ないし第５γRAM４０７に記憶する、出力遷移確率γの記憶処理と、第１γRAM４０３ないし第５γRAM４０７に記憶された出力遷移確率γを用いて、式（１８）の前向き確率α、式（１９）の後ろ向き確率β、及び式（２２）の出力軟値データλを計算する、前向き確率α、後ろ向き確率β、及び出力軟値データλの計算処理とが行われる。
【０６１９】
まず、図２７上のフローチャートを参照して、記憶処理について説明する。
【０６２０】
記憶処理では、記録再生系６５（図１９）からSISO復号器２８２に対して、入力軟値データYtが供給されると、ステップＳ１３１において、γ計算部１０１が、記録再生系６５からの入力軟値データYtを用いて、式（２０）の計算を行うことにより、上述したような、時変トレリスのE個の枝の出力遷移確率γを計算し、γRAM制御部４０２に供給する。
【０６２１】
また、ステップＳ１３１では、カウンタ３１５がカウント値を１だけインクリメントし、パターン情報生成部４１６に供給する。なお、カウンタ３１５は、位相検出器２８１（図１９）から、アクティブの位相情報を受信した場合、カウント値を0にリセットする。
【０６２２】
その後、処理は、ステップＳ１３１からステップＳ１３２に進み、パターン情報生成部４１６は、上述したように、カウンタ３１５からのカウント値を、パターン情報に変換することにより、直前のステップＳ１３１においてγ計算部１０１で出力遷移確率γが求められたE個の枝についてのパターン情報を生成し、γRAM制御部４０２に供給して、処理は、ステップＳ１３３に進む。
【０６２３】
ステップＳ１３３では、γRAM制御部４０２が、γ計算部１０１からのE個の枝の出力遷移確率γと、パターン情報生成部４１６からの、そのE個の枝についてのパターン情報とを対応付け、そのE個の枝の出力遷移確率γとパターン枝情報とのセットを、第１γRAM４０３ないし第５γRAM４０７のうちのいずれかに供給して記憶させる。
【０６２４】
以下、記録再生系６５（図１９）からSISO復号器２８２に対して、入力軟値データYtが供給されるたびに、ステップＳ１３１ないしＳ１３３の処理が行われる。
【０６２５】
次に、図２７下のフローチャートを参照して、計算処理について説明する。
【０６２６】
γRAM制御部４０２は、ステップＳ１４１において、第１γRAM４０３ないし第５γRAM４０７のうちのいずれかから、E個の枝の出力遷移確率γとパターン情報とのセットを読み出し、そのセットのうちの、E個の枝の出力遷移確率γを、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給するとともに、パターン情報を、パターン情報変換部４２１，４２２，４２３、又は４２０に供給して、処理は、ステップＳ１４２に進む。
【０６２７】
ステップＳ１４２では、パターン情報変換部４２１，４２２，４２３、又は４２０が、γRAM制御部４０２からのパターン情報を、E個の枝の枝情報（α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に出力遷移確率γが供給されたE個の枝の枝情報）に変換し、そのE個の枝の出力遷移確率γがγRAM制御部４０２から供給されたα計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２に供給して、処理は、ステップＳ１４３に進む。
【０６２８】
ステップＳ１４３では、α計算部３０８、第１β計算部３０９、第２β計算部３１０、又はλ計算部３１２が、パターン情報変換部４２１，４２２，４２３、又は４２０からの、遷移情報としてのE個の枝の枝情報に基づき、γRAM制御部４０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γを用いて、所定の計算を行う。
【０６２９】
すなわち、α計算部３０８では、γRAM制御部４０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γと、前回求められた１時刻前の時刻tα-1の前向き確率αとを用いて、式（１８）の計算が行われ、時刻tαの前向き確率αが求められる。
【０６３０】
また、第１β計算部３０９では、γRAM制御部４０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γと、前回求められた１時刻後の時刻tβ1+1の後ろ向き確率βとを用いて、式（１９）の計算が行われ、時刻tβ1の後ろ向き確率βが求められる。
【０６３１】
さらに、第２β計算部３１０では、γRAM制御部４０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γと、前回求められた１時刻後の時刻tβ2+1の後ろ向き確率βとを用いて、式（１９）の計算が行われ、時刻tβ2の後ろ向き確率βが求められる。
【０６３２】
また、λ計算部３１２では、γRAM制御部４０２からのE個の枝の出力遷移確率γのうちの、有効枝のみの出力遷移確率γ、さらには、α計算部３０８で求められた前向き確率α、及び、第１β計算部３０９又は第２β計算部３１０で求められ、第１βRAM１１３又は第２βRAM１１４に記憶された後ろ向き確率βを用いて、式（２２）の計算が行われ、出力軟値データλが求められる。
【０６３３】
以下、各時刻、つまり、記録再生系６５（図１９）からSISO復号器２８２に対して、入力軟値データYtが供給されるたびに、ステップＳ１４１ないしＳ１４３の処理が行われる。
【０６３４】
以上のように、入力データit（例えば、畳み込み符号器であるチャネル#22への入力となるLDPC符号）を符号化した符号化データXt（例えば、畳み込み符号器であるチャネル#22が出力する符号化データXt）がチャネル（例えば、AWGNチャネル）を経由することにより得られる入力軟値データYtを、入力データitの尤度を表す出力軟値データλtに復号するSISO復号器２８２において、遷移情報と出力遷移確率γとを対応付けて記憶し、遷移情報に基づき、有効枝のみの出力遷移確率γを用いて、出力軟値データλを求める式（１８）、式（１９）、及び式（２２）の計算を行うので、時変トレリスにおける無効枝の出力遷移確率γが、出力軟値データλを求める所定の計算に用いられることが防止され、その結果、軟入力軟出力の復号の性能を向上させることができる。
【０６３５】
また、遷移情報として、枝情報、又はパターン情報を、必要に応じて採用することにより、SISO復号器２８２の装置規模を抑制することができる。
【０６３６】
すなわち、例えば、時変トレリスの枝数Eが大で、遷移パターンのパターン数Pが枝数Eに比較して十分小である場合には、遷移情報としてのパターン情報を記憶するメモリの記憶容量が少なくて済むことの効果が大になるため、パターン情報を枝情報に変換する回路の分の装置規模の増加があっても、パターン情報を、遷移情報として採用した方が、SISO復号器２８２全体の装置規模を抑制することができる。
【０６３７】
一方、例えば、遷移パターンのパターン数Pが2Eに近い場合には、パターン情報を枝情報に変換する回路の分の装置規模の増加の影響が大になるため、その回路を設けずに済む枝情報を、遷移情報として採用した方が、SISO復号器２８２装置全体の装置規模を抑制することができる。
【０６３８】
例えば、上述したように、PR12221チャネルと、17PP符号とを混合した混合トレリス（PR12221チャネルと、17PP符号と表現する時変トレリス）では、枝数Eが142で、パターン数Pが15となるが、このように、時変トレリスの枝数Eが大で、パターン数Pが枝数Eに比較して十分小である場合には、遷移情報として、パターン情報を採用することにより、枝情報を採用した場合に比較して、SISO復号器２８２全体の装置規模を小さくすることができる。
【０６３９】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【０６４０】
すなわち、SISO復号器２８２では、SW-Max-Log-BCJRアルゴリズムの他、例えば、SW-Log-BCJRアルゴリズム等にしたがって、軟入力軟出力の復号を行うことが可能である。
【０６４１】
また、本実施の形態では、光ディスクから得られた入力軟値データYtを、出力軟値データλtに復号することとしたが、本発明は、光ディスク等の記録媒体から得られた入力軟値データYtを出力軟値データλtに復号する場合の他、例えば、無線や有線の伝送媒体を介して送信されてきた入力軟値データYtを出力軟値データλtに復号する場合にも適用することができる。
【０６４２】
さらに、本実施の形態では、出力遷移確率γを記憶するメモリとして、５バンクのシングルポートのRAMを採用するとともに、後ろ向き確率βを記憶するメモリとして、２バンクのシングルポートのRAMを採用し、入力軟値データYtに対して、その入力軟値データYtの復号結果としての出力軟値データλを、打ち切り長Dの４倍の遅延時間4Dで出力することとしたが、本発明は、その他の仕様の軟入力軟出力の復号にも適用することができる。
【０６４３】
すなわち、出力遷移確率γや後ろ向き確率βを記憶するメモリは、シングルポートのRAMに限定されるものではなく、例えば、デュアルポートのRAMや、レジスタを用いて構成した記憶手段等であっても良い。
【０６４４】
また、出力遷移確率γを記憶するメモリは５バンクに限定されるものではなく、後ろ向き確率βを記憶するメモリも２バンクに限定されるものではない。
【０６４５】
さらに、入力軟値データYtに対して、その入力軟値データYtの復号結果としての出力軟値データλを出力する遅延時間は、打ち切り長Dの４倍の時間4Dに限定されるものではない。
【図面の簡単な説明】
【０６４６】
【図１】従来の光ディスク装置の一例の構成を示すブロック図である。
【図２】BCJRアルゴリズムを説明する通信路のモデルを示す図である。
【図３】畳み込み符号器２１を表すトレリスを示す図である。
【図４】状態の個数Mが４個である場合の、出力遷移確率γt(m',m,i)を示す図である。
【図５】SW-BCJRアルゴリズムを説明する図である。
【図６】軟入力軟出力の復号を行う光ディスク装置の構成例を示すブロック図である。
【図７】PRチャネルのモデルを示す図である。
【図８】SISO復号器６７の構成例を示すブロック図である。
【図９】トレリスの一部を示す図である。
【図１０】α計算部１０８の一部の構成例を示すブロック図である。
【図１１】トレリスの一部を示す図である。
【図１２】第１β計算部１０９の一部の構成例を示すブロック図である。
【図１３】トレリスで表現される符号器の構成例を示す図である。
【図１４】符号器を表現するトレリスを示す図である。
【図１５】λ計算部１１２の一部の構成例を示すブロック図である。
【図１６】第１γRAM１０３ないし第５γRAM１０７に対する読み書き制御の処理と、第１βRAM１１３及び第２βRAM１１４に対する読み書き制御の処理とを説明する図である。
【図１７】第１γRAM１０３ないし第５γRAM１０７に対する読み書き制御の処理と、第１βRAM１１３及び第２βRAM１１４に対する読み書き制御の処理とを説明する図である。
【図１８】時変トレリスを示す図である。
【図１９】本発明を適用した光ディスク装置の一実施の形態の構成例を示すブロック図である。
【図２０】SISO復号器２８２が行う、時刻tの出力遷移確率γと遷移情報とを対応付けて記憶する処理を説明する図である。
【図２１】SISO復号器２８２の第１の構成例を示すブロック図である。
【図２２】α計算部３０８の一部の構成例を示すブロック図である。
【図２３】第１β計算部３０９の一部の構成例を示すブロック図である。
【図２４】λ計算部３１２の一部の構成例を示すブロック図である。
【図２５】SISO復号器２８２の処理を説明するフローチャートである。
【図２６】SISO復号器２８２の第２の構成例を示すブロック図である。
【図２７】SISO復号器２８２の処理を説明するフローチャートである。
【符号の説明】
【０６４７】
２１  畳み込み符号器，  ２２  無記憶通信路，  ２３  復号器，  ６１  リードソロモン符号器，  ６２  LDPC符号器，  ６３  変調符号器，  ６４  NRZI変換器，  ６５  記録再生系，  ６７  SISO復号器，  ６８  LDPC復号器，  ６９  リードソロモン復号器，  １０１  γ計算部，  １０２  γRAM制御部，  １０３  第１γRAM，  １０４  第２γRAM，  １０５  第３γRAM，  １０６  第４γRAM，  １０７  第５γRAM，  １０８  α計算部，  １０９  第１β計算部，  １１０  第２β計算部，  １１１  βRAM制御部，  １１２  λ計算部，  １１３  第１βRAM，  １１４  第２βRAM，  １５１  比較部，  １５２  セレクタ，  １６１  比較部，  １６２  セレクタ，  １７１，１７２  レジスタ，  １７３ないし１７５  演算器，  １８１  比較部，  １８２  セレクタ，  ２００，２０１  レジスタ，  ２０２ないし２０５  演算器，  ２１０ないし２１２  レジスタ，  ２１３ないし２１７  演算器，  ２２０ないし２２３  レジスタ，  ２２４ないし２２９  演算器，  ２８１  位相検出器，  ２８２  SISO復号器，  ３０２  γRAM制御部，  ３０３  第１γRAM，  ３０４  第２γRAM，  ３０５  第３γRAM，  ３０６  第４γRAM，  ３０７  第５γRAM，  ３０８  α計算部，  ３０９  第１β計算部，  ３１０  第２β計算部，  ３１２  λ計算部，  ３１５  カウンタ，  ３１６  枝情報生成部，  ３３１，３３２，３４１，３４２，３５１ないし３５４  セレクタ，  ４０２  γRAM制御部，  ４０３  第１γRAM，  ４０４  第２γRAM，  ４０５  第３γRAM，  ４０６  第４γRAM，  ４０７  第５γRAM，  ４１６  パターン情報生成部，  ４２０ないし４２３  パターン情報変換部
【図１】
2008187496.tif 000027
【図２】
2008187496.tif 000028
【図３】
2008187496.tif 000029
【図４】
2008187496.tif 000030
【図５】
2008187496.tif 000031
【図６】
2008187496.tif 000032
【図７】
2008187496.tif 000033
【図８】
2008187496.tif 000034
【図９】
2008187496.tif 000035
【図１０】
2008187496.tif 000036
【図１１】
2008187496.tif 000037
【図１２】
2008187496.tif 000038
【図１３】
2008187496.tif 000039
【図１４】
2008187496.tif 000040
【図１５】
2008187496.tif 000041
【図１６】
2008187496.tif 000042
【図１７】
2008187496.tif 000043
【図１８】
2008187496.tif 000044
【図１９】
2008187496.tif 000045
【図２０】
2008187496.tif 000046
【図２１】
2008187496.tif 000047
【図２２】
2008187496.tif 000048
【図２３】
2008187496.tif 000049
【図２４】
2008187496.tif 000050
【図２５】
2008187496.tif 000051
【図２６】
2008187496.tif 000052
【図２７】
2008187496.tif 000053