(57)【要約】【課題】  復号に必要な大量演算を削減可能とし、節電能力ある復号処理を実現できる可能なスライディングウィンドウターボ復号方式を得る。【解決手段】  入力されるコードブロックを複数のウィンドウに分割してフォワード処理及びバックワード処理を行って、複数回の繰り返し復号処理をなすようにしたスライディングウィンドウターボ復号方式において、繰り返し復号の各回数毎に、ＣＲＣ部４３でＣＲＣ処理を行ってその結果に応じて次の回の復号のバックワード方向のパスメトリック算出のための初期値のトレーニング処理のトレーニングサイズ（Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ）を、Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御部１１で可変制御すると共に、当該結果が良であれば、復号の停止も行うよう制御する。これにより、復号性能を維持しつつ消費電力の削減が可能となる。【選択図】      図１                                                  
2006041960.tif 000002
【特許請求の範囲】
【請求項１】
入力されるコードブロックを複数のウィンドウに分割してフォワード処理及びバックワード処理を行う第一の復号手段と、前記第一の復号手段の出力に対してフォワード処理及びバックワード処理を行う第二の復号手段と、前記第一及び第二の復号手段による復号処理を繰り返し行うよう制御する手段と、前記バックワード処理におけるバックワード方向のパスメトリック算出のための初期値の演算のトレーニングをなすトレーニング手段とを含むスライディングウィンドウターボ復号装置であって、
前記第二の復号手段の復号出力の誤り検査をなす誤り検出手段と、
前記誤り検出手段の検出結果に従って、前記トレーニング手段におけるウィンドウのトレーニングサイズを可変制御する制御手段と、
を含むことを特徴とするターボ復号装置。
【請求項２】
前記制御手段は、前記誤り検出手段の検出結果が誤り有りを示すとき、前記トレーニングサイズを可変制御することを特徴とする請求項１記載のターボ復号装置。
【請求項３】
前記制御手段は、前記第一及び第二の復号手段による復号回数の増加に従って、前記トレーニングサイズを減少させることを特徴とする請求項２記載のターボ復号装置。
【請求項４】
前記制御手段は、前記復号回数の増加に従って、前記トレーニングサイズを最大復号回数まで一定長減少させることを特徴とする請求項３記載のターボ復号装置。
【請求項５】
前記制御手段は、初めの所定復号回数では、前記トレーニングサイズを１ウィンドウサイズとし、残りの復号回数では、前記トレーニングサイズを最大復号回数まで一定長減少させることを特徴とする請求項３記載のターボ復号装置。
【請求項６】
前記制御手段は、初めの所定復号回数では、前記トレーニングサイズを１ウィンドウサイズとし、その後の所定復号回数では、前記トレーニングサイズを一定長減少させ、残りの復号回数では、前記トレーニングサイズを前記一定長減少後のサイズとすることを特徴とする請求項３記載のターボ復号装置。
【請求項７】
前記誤り検出手段の検出結果が誤りなしを示すとき、復号停止とする手段を、更に含むことを特徴とする請求項１〜６いずれか記載のターボ復号装置。
【請求項８】
入力されるコードブロックを複数のウィンドウに分割してフォワード処理及びバックワード処理を行う第一の復号ステップと、前記第一の復号ステップの出力に対してフォワード処理及びバックワード処理を行う第二の復号ステップと、前記第一及び第二の復号ステップによる復号処理を繰り返し行うよう制御するステップと、前記バックワード処理におけるバックワード方向のパスメトリック算出のための初期値の演算のトレーニングをなすトレーニングステップとを含むスライディングウィンドウターボ復号方法であって、
前記第二の復号ステップの復号出力の誤り検査をなす誤り検出ステップと、
前記誤り検出ステップの検出結果に従って、前記トレーニングステップにおけるウィンドウのトレーニングサイズを可変制御する制御ステップと、
を含むことを特徴とするターボ復号方法。
【請求項９】
前記制御ステップは、前記誤り検出ステップの検出結果が誤り有りを示すとき、前記トレーニングサイズを可変制御することを特徴とする請求項８記載のターボ復号方法。
【請求項１０】
前記制御ステップは、前記第一及び第二の復号ステップによる復号回数の増加に従って、前記トレーニングサイズを減少させることを特徴とする請求項９記載のターボ復号方法。
【請求項１１】
前記制御ステップは、前記復号回数の増加に従って、前記トレーニングサイズを最大復号回数まで一定長減少させることを特徴とする請求項１０記載のターボ復号方法。
【請求項１２】
前記制御ステップは、初めの所定復号回数では、前記トレーニングサイズを１ウィンドウサイズとし、残りの復号回数では、前記トレーニングサイズを最大復号回数まで一定長減少させることを特徴とする請求項１０記載のターボ復号方法。
【請求項１３】
前記制御ステップは、初めの所定復号回数では、前記トレーニングサイズを１ウィンドウサイズとし、その後の所定復号回数では、前記トレーニングサイズを一定長減少させ、残りの復号回数では、前記トレーニングサイズを前記一定長減少後のサイズとすることを特徴とする請求項１０記載のターボ復号方法。
【請求項１４】
前記誤り検出ステップの検出結果が誤りなしを示すとき、復号停止とするステップを、更に含むことを特徴とする請求項７〜１３いずれか記載のターボ復号方法。
【請求項１５】
入力されるコードブロックを複数のウィンドウに分割してフォワード処理及びバックワード処理を行う第一の復号ステップと、前記第一の復号ステップの出力に対してフォワード処理及びバックワード処理を行う第二の復号ステップと、前記第一及び第二の復号ステップによる復号処理を繰り返し行うよう制御するステップと、前記バックワード処理におけるバックワード方向のパスメトリック算出のための初期値の演算のトレーニングをなすトレーニングステップとを含むスライディングウィンドウターボ復号方法をコンピュータに実行させるためのプログラムであって、
前記第二の復号ステップの復号出力の誤り検査をなす誤り検出ステップと、
前記誤り検出ステップの検出結果に従って、前記トレーニングステップにおけるウィンドウのトレーニングサイズを可変制御する制御ステップと、
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はターボ復号装置及びターボ復号方法並びにプログラムに関し、特に通信システムや情報処理システムの分野において使用される高性能及び高信頼性のターボ符号を復号するターボ復号方式の改良に関するものである。
【背景技術】
【０００２】
近年、C. Berrou らによりシャノン限界に近い誤り訂正符号として、いわゆるターボ符号（Turbo codes ）方式があり、移動体通信システム、情報記録システム、ディジタル放送システム等を含む広範囲の通信分野や情報処理分野において用いられる高性能、高信頼性の符号化方式として研究開発が進められている。
【０００３】
ここで、まず、一般的なターボ符号器とターボ復号器について説明する。図４及び図５は公知のターボ符号器及びターボ復号器の構成を示すブロック図である。図４は符号化率＝１／３のターボ符号器の概略ブロック図を示しており、要素符号器Ｅ11及びＥ22と、インタリーバＥ21とを備えている。被符号化ビット（Information Bit to be encoded ）系列Ｅ01は分岐されて組織ビット（Systematic bit）系列Ｅ02として送出されると共に、要素符号器Ｅ11とインタリーバＥ21とに入力される。
【０００４】
要素符号器Ｅ11は、誤り訂正符号により被符号化ビット系列Ｅ01を符号化して、冗長ビット系列（Parity Bit）Ｅ12を出力する。インタリーバＥ21は、一般的に被符号化ビット系列Ｅ01を一度メモリに書込み、これを異なる順序で読出すことにより、データの順序を交錯して要素符号器Ｅ22に送出する。要素符号器Ｅ22は、インタリーブされた被符号化ビット系列を要素符号により符号化して冗長ビット系列Ｅ23を送出する。要素符号器Ｅ11，Ｅ22には、再帰的組織畳み込み符号器（ＲＳＣ:Recursive Systematic Convolutional Encoder ）が通常用いられる。
【０００５】
図５に示すターボ復号器は、要素復号器（Decoder ）Ｄ04，Ｄ16と、インタリーバＤ12と、デインタリーバＤ23と、硬判定出力ブロックＤ25とを備える。要素復号器Ｄ04には、組織ビット系列Ｅ02に対応する組織情報系列（Systematic Information）Ｄ01と、冗長ビット系列Ｅ12に対応する冗長情報系列（Parity Information）Ｄ02、及び外部情報（Extrinsic Information ）Ｄ03が入力される。そして、出力した外部情報Ｄ11は、次の要素復号器Ｄ16に利用される。
【０００６】
更に、得られた外部情報Ｄ11と組織情報系列Ｄ01は、インタリーバＤ12を介して、冗長ビット系列Ｅ23に対応する冗長情報系列（Parity Information）Ｄ14と共に、要素復号器Ｄ16に入力される。そして、要素復号器Ｄ16にて得られた軟出力情報（Soft Output Information ）Ｄ21と外部情報Ｄ22をデインタリーバＤ23に送出する。
【０００７】
デインタリーバＤ23は、インタリーバＤ12によるデータの入れ替え順番とは逆の順番に出力する。すなわち、インタリーブされた軟出力情報Ｄ21及び外部情報Ｄ22の各々をインタリーブ前の順序に戻し、軟出力情報Ｄ24及び外部情報Ｄ03として出力する。さらに、硬判定＆出力ブロックＤ25は、軟出力情報Ｄ24を硬判定して最終復号結果を出力する。外部情報Ｄ03は、次の復号処理のために、要素復号器Ｄ04にフィードバックされる。
【０００８】
以上のように、図５に示すターボ復号器では、二つの要素復号器の外部情報Ｄ03及びＤ15を更新しながら復号処理が繰り返し行なわれ、複数回のループの後、軟出力情報Ｄ24が硬判定される。
【０００９】
ターボ復号の要素復号器に適用される軟出力復号アルゴリズムとしては、最大事後確率復号法（以下、Maximum A Posteriori Probability：ＭＡＰと呼ぶ）を用いる方法が現在のところ最良であると言われているが、装置規模や処理量が格段に大きくなるので、実装に際しては送られてきたデータが‘１’か‘０’かを尤度の最大値に基づいて決定することで、処理を簡略化したMax-Log-MAP （Max Logarithmic Maximum A Posteriori）を使用した方式が一般的に広く用いられている。
【００１０】
ＭＡＰアルゴリズムは、トレリス線図を利用した最尤復号法アルゴリズムである。図６（ａ）はある要素符号器の構成の例であり、レジスタの数が３の場合を示している。トレリス線図とは、図６（ｂ）に示すように、この要素符号器に対して、ある値を入力した時の出力値と、レジスタ状態の関係を表したものである。
【００１１】
ＭＡＰアルゴリズムは大きく分けて次の３種類の処理から構成される。
（ａ）フォワード処理：トレリス線図の先頭から各時点の各状態へ到達する確率（フォワードパスメトリック）を算出する。
（ｂ）バックワード処理：トレリス線図の終端から各時点の各状態へ到達する確率（バックワードパスメトリック）を算出する。
（ｃ）軟出力生成処理および外部値計算：（ａ），（ｂ）の処理結果を用いて各時点における組織ビットの軟出力値を算出する。そして、この軟出力値を用いて、外部値計算を行う。
【００１２】
トレリス線図において、時点ｔ、状態ｓにおけるフォワード処理及びバックワード処理の各々で算出されるフォワードパスメトリック及びバックワードパスメトリックをそれぞれＡｌｐｈａ（ｔ，ｓ），Ｂｅｔａ（ｔ，ｓ）と表す。また、状態ｓから状態ｓ’への時点ｔにおける遷移の確率をＧａｍｍａ（ｔ，ｓ，ｓ’）と表す（ここで、Ｇａｍｍａはブランチメトリックと呼ばれる）。Ｇａｍｍａ（ｔ，ｓ，ｓ’）は、受信値（組織情報系列、冗長情報系列、外部情報）から求める確率である。
【００１３】
上述したフォワード処理、バックワード処理、軟出力生成処理及び外部値計算の各々は、次のように実行される。
（ａ）フォワード処理：
Ａｌｐｈａ（ｔ，ｓ）＝Ｍａｘ｛Ａｌｐｈａ（ｔ−１，ｓ’）
＋Ｇａｍｍａ（ｔ，ｓ’，ｓ）｝
なお、ここで、最大値を求める処理Ｍａｘはすべての状態ｓ’についてとることを意味する。
【００１４】
図７（ａ）に示すように、時点ｔのある状態Ｓｔａｔｅ（Ｓ３）に対するＡｌｐｈａ（ｔ，Ｓ３）は、次のように計算される。２つの前段Ｓｔａｔｅの持つパスメトリックＡｌｐｈａ（ｔ−１，Ｓ１），Ａｌｐｈａ（ｔ−１，Ｓ２）の各々に、それぞれのブランチメトリックＧａｍｍａ（ｔ，Ｓ１，Ｓ３），Ｇａｍｍａ（ｔ，Ｓ２，Ｓ３）を加算し、値の大きいほうがそのＳｔａｔｅのＡｌｐｈａ値となる（Ａｌｐｈａ  ＡＣＳ（Add-Compare-Select）演算と呼ぶ）。この処理を、全時間遷移ｔの全Ｓｔａｔｅに対して行い、全ＳｔａｔｅのＡｌｐｈａ値を保持しておく。
【００１５】
なお、Ａｌｐｈａ算出の初回では、前段のＡｌｐｈａ値が存在しないので、初期値の設定が必要となる。ここで、必ずトレリス線図中のＳｔａｔｅ＃０から遷移が開始されるため、Ａｌｐｈａの初期値としては、Ｓｔａｔｅ＃０のＡｌｐｈａが０、それ以外のＳｔａｔｅは−ＭＡＸ値（最小値）と規定する。
【００１６】
（ｂ）バックワード処理：
Ｂｅｔａ（ｔ，ｓ）＝Ｍａｘ｛Ｂｅｔａ（ｔ＋１，ｓ’）
＋Ｇａｍｍａ（ｔ＋１，ｓ，ｓ’）｝
【００１７】
図７（ｂ）に示すように、時点ｔのあるＳｔａｔｅ（Ｓ４）に対するＢｅｔａ（ｔ，Ｓ４）は、次のように計算される。２つの後段Ｓｔａｔｅの持つパスメトリックＢｅｔａ（ｔ＋１，Ｓ５），Ｂｅｔａ（ｔ＋１，Ｓ６）に、それぞれのブランチメトリックＧａｍｍａ（ｔ＋１，Ｓ４，Ｓ５），Ｇａｍｍａ（ｔ＋１，Ｓ４，Ｓ６）を加算し、値の大きいほうがそのＳｔａｔｅのＢｅｔａ値となる（Ｂｅｔａ  ＡＣＳ演算と呼ぶ）。
【００１８】
この処理を、全時間遷移ｔの全Ｓｔａｔｅに対して、Ａｌｐｈａとは逆方向から（トレリス最終Ｓｔａｔｅ側から）Ｂｅｔａ算出処理を行う。なお、Ｂｅｔａ算出の初回では、後段のＢｅｔａ値が存在しないので、初期値の設定が必要となる。ここで、トレリス線図の最終端において、Ｂｅｔａの初期値としては、Ｓｔａｔｅ＃０のＢｅｔａが０、それ以外のＳｔａｔｅは−ＭＡＸ値（最小値）と規定する。
【００１９】
（ｃ）軟出力生成処理及び外部値計算：
すでに算出しておいたＡｌｐｈａ（ｔ−１，ｓ’）の値とＢｅｔａ（ｔ，ｓ）およびＧａｍｍａ（ｔ，ｓ’，ｓ）を加算して、時点ｔにおける全パスメトリック値を求める。そして、‘デコード結果が０となるパスの最大パスメトリック’と‘デコード結果が１となるパスの最大パスメトリック’の差分が、時点ｔの軟出力値となる。
【００２０】
図８を例として説明すると、時点ｔ＝５のすべての（ｓ，ｓ’）の組合せに対して、Ａｌｐｈａ（４，ｓ’），Ｂｅｔａ（５，ｓ）及びＧａｍｍａ（５，ｓ’，ｓ）を加算する。そのうち、デコード結果が０となるパスの最大パスメトリックＬ０（ｔ）を求める。この例では、
Ｌ０（ｔ＝５）＝Ａｌｐｈａ（ｔ＝４，ｓｔａｔｅ＃７）
＋Ｂｅｔａ（ｔ＝５，ｓｔａｔｅ＃６）
＋Ｇａｍｍａ（ｔ＝５，ｓｔｓｔｅ＃７，ｓｔａｔｅ＃６）
となっている。
【００２１】
一方、デコード結果が１となるパスの最大パスメトリックＬ１（ｔ）も求める。この例では、
Ｌ１（ｔ＝５）＝Ａｌｐｈａ（ｔ＝４，ｓｔａｔｅ＃４）
＋Ｂｅｔａ（ｔ＝５，ｓｔａｔｅ＃０）
＋Ｇａｍｍａ（ｔ＝５，ｓｔｓｔｅ＃４，ｓｔａｔｅ＃０）
となっている。そして、ｔ＝５の軟出力値は、
Ｌ（ｔ＝５）＝Ｌ０（ｔ＝５）−Ｌ１（ｔ＝５）
と計算される。
【００２２】
また、Ｍａｘ−Ｌｏｇ−ＭＡＰアルゴリズムでは，上で求めた軟出力値（事後値）から通信路値（受信値から求める値）と事前値（前段の復号器から与えられる外部情報）を減算した値が外部情報となる。
【００２３】
以上のように、理想Ｍａｘ−Ｌｏｇ−ＭＡＰアルゴリズムでは、Ａｌｐｈａ，Ｂｅｔａの演算を一度に全復号対象データに対して行う。
【００２４】
しかし、データ伝送ではデータ長の増大に伴って、Ｍａｘ−Ｌｏｇ−ＭＡＰ復号に膨大なメモリ領域が必要となる。特に、トレリス全体のパスメトリック情報を記憶するためのメモリ領域が必要となる。また、復号長の増加により、復号処理遅延も増えるため、実際のリアルタイムシステムに適用することが困難である。
【００２５】
そこで、スライディングウィンドウと呼ばれている方式が広く使用されている（非特許文献１参照）。この方法では、ウィンドウサイズ分のトレリス内の尤度情報のみ記憶しておき、このウィンドウ位置を復号長に達するまでシフトしていくことで、メモリの大幅な節約を図ることができる。
【００２６】
また、各ウィンドウのＢｅｔａ初期値の不定による復号性能劣化を克服するため、Ｂｅｔａ計算の前に、１ウィンドウ分のＢｅｔａ初期値Ｔｒａｉｎｉｎｇ（トレーニング）処理をする。しかし、復号回数の増加に伴い、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ部の初期値の信頼度も良くなり、より短いＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ（トレーニング長すなわちトレーニングサイズ）を利用しても良好な性能が得られる。
【００２７】
一方、通信路環境が悪い時に、一ウィンドウ分の固定Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈに設定したとしても復号性能劣化の改善ができない。したがって、余計なＢｅｔａ  Ｔｒａｉｎｉｎｇ計算が回避されるため、反復復号回数の増加によりＢｅｔａ  Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈの値を次第に短縮する設定方法が必要となる。
【００２８】
図９は、Ｂｅｔａ計算の前に、Ｂｅｔａ初期値Ｔｒａｉｎｉｎｇ処理をする従来のスライディングウィンドウターボ復号の機能ブロック図を示し、図１０はその動作プロセスを示す図である。図９に示す様に、１ウィンドウ分の組織情報（Systematic Information）０１、冗長情報（Parity Information）０２及び一つ前の要素復号器（Decoder ）により得られた外部情報（External Information）０３は、フォワード処理（Ａｌｐｈａ計算）を行うために、入力メモリ２１に保存される。
【００２９】
また、Ｂｅｔａ初期値Ｔｒａｉｎｉｎｇ処理を行うために、Ｂｅｔａ初期値メモリ１４に保存された前の回（Iteration ）のＢａｔａパスメトリック値が、初期値０４として、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ計算部１２で使用される。そして、Ｂｅｔａ計算部３２で、Ｂｅｔａ計算を行うために、各ウィンドウで得られるＢｅｔａの最終値がＢｅｔａ初期値メモリ１４に保存される。このＢｅｔａ計算部３２の入力は、入力メモリ３１に保存された情報とＢｅｔａ初期値メモリ１３の情報である。
【００３０】
そして、得られたＢａｔａパスメトリック値は、Ａｌｐｈａメモリ２３に保存されたＡｌｐｈａパスメトリック値と同期をとられつつ、ＬＬＲ計算部４１で、ＬＬＲ（最大対数尤度比、すなわち軟出力値）計算が行われる。また、次回復号のＢｅｔａ  Ｔｒａｉｎｉｎｇ処理の初期値を得るために、Ｂｅｔａ計算部３２の結果もＢｅｔａ初期値メモリ１４に書き込まれる。ＬＬＲ計算部４１の計算結果は、インタリーバ／デインタリーバ４５を介して、外部値計算部４２へ入力されて、外部情報（Extrinsic Information ）の計算が行われる。この計算結果である外部情報は次の要素復号器（図５のDecoder Ｄ０４またはＤ１６）の入力情報０３として使用される。
【００３１】
そして、予め設定されている最大復号回数に達した場合の後段の要素復号器（Decoder ）Ｄ１６による復号の際に、ＬＬＲ計算部４１の計算結果は、硬判定部４４へ供給されて硬判定処理がなされる。
【００３２】
かかる従来技術におけるスライディングウィンドウターボ復号方式では、図１０の動作プロセス図に示す様に、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈは固定となっている。なお、図１０においては、コードブロックサイズ＝５１２、ウィンドウサイズ＝１２８、最大復号回数＝４とした場合の例である。
【００３３】
次に、Ｂｅｔａ  Ｔｒａｉｎｉｎｇを行う理由について簡単に説明する。理想的な復号では、入力コードブロック長（１〜５１２とする）について、フォワード処理として、１から５１２までの順序でＡｌｐｈａ計算がなされ、バックワード処理として、５１２から１までの順序でＢｅｔａ計算がなされるが、スライディングウィンドウターボ復号では、Ａｌｐｈａ計算及びＢｅｔａ計算をウィンドウで区切って演算処理がなされるので、Ｂｅｔａの初期値が決められない。
【００３４】
例えば、ウィンドウサイズを１２８としたとき、Ａｌｐｈａ計算では、最初のウィンドウにおいて、１から１２８の順に計算が行われ、ウィンドウの最終値は次のウィンドウ（１２９〜２５６）の初期値となり、また、次の１２９〜２５６のウィンドウの最終値は次のウィンドウ（２５７〜３８４）の初期値となり（以下同じ）、よって、各ウィンドウのＡｌｐｈａ初期値のＴｒａｉｎｉｎｇは不要である。
【００３５】
これに対して、Ｂｅｔａ計算では、最初のウィンドウにおいて、１２８から１の順に計算が行われるが、１２９のＢｅｔａ値は未知であるので、事前のＴｒａｉｎｉｎｇが必要となり、また、次の２５６〜１２９のウィンドウにおいては、２５７のＢｅｔａ値は未知であるので、事前のＴｒａｉｎｉｎｇが必要となり（以下同じ）、よって、各ウィンドウのＢｅｔａ初期値のＴｒａｉｎｉｎｇが必要となるのである。
【００３６】
なお、スライディングウィンドウターボ復号方式の例は、特許文献１に開示されている。
【００３７】
【非特許文献１】A.J. Viterbi, “An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes,” IEEE J. Select. Areas Commun., Vol.16, pp.260-264, Feb. 1998.
【特許文献１】特開２００２−３１４４３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００３８】
上述した如く、各ウィンドウのＢｅｔａ初期値の不定による復号性能劣化を克服するため、Ｂｅｔａ計算の前に、１ウィンドウ分のＢｅｔａ初期値Ｔｒａｉｎｉｎｇ処理をするようになっているが、復号回数の増加に伴い、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ部の初期値の信頼度も良くなり、より短いＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈを利用しても良好な性能が得られる。
【００３９】
一方、通信路環境が悪い時に、一ウィンドウ分の固定Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈに設定したとしても復号性能劣化の改善ができない。したがって、余計なＢｅｔａ  Ｔｒａｉｎｉｎｇ計算が回避されるため、反復復号回数の増加によりＢｅｔａ  Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈの値を次第に短縮する設定方法が必要となる。
【００４０】
本発明の目的は、復号に必要な大量演算を削減可能とし、節電能力ある復号処理を実現できる可能なターボ復号装置及びターボ復号方法並びにプログラムを提供することである。
【課題を解決するための手段】
【００４１】
本発明によるターボ復号装置は、入力されるコードブロックを複数のウィンドウに分割してフォワード処理及びバックワード処理を行う第一の復号手段と、前記第一の復号手段の出力に対してフォワード処理及びバックワード処理を行う第二の復号手段と、前記第一及び第二の復号手段による復号処理を繰り返し行うよう制御する手段と、前記バックワード処理におけるバックワード方向のパスメトリック算出のための初期値の演算のトレーニングをなすトレーニング手段とを含むスライディングウィンドウターボ復号装置であって、前記第二の復号手段の復号出力の誤り検査をなす誤り検出手段と、前記誤り検出手段の検出結果に従って、前記トレーニング手段におけるウィンドウのトレーニングサイズを可変制御する制御手段とを含むことを特徴とする。
【００４２】
本発明によるターボ復号方法は、入力されるコードブロックを複数のウィンドウに分割してフォワード処理及びバックワード処理を行う第一の復号ステップと、前記第一の復号ステップの出力に対してフォワード処理及びバックワード処理を行う第二の復号ステップと、前記第一及び第二の復号ステップによる復号処理を繰り返し行うよう制御するステップと、前記バックワード処理におけるバックワード方向のパスメトリック算出のための初期値の演算のトレーニングをなすトレーニングステップとを含むスライディングウィンドウターボ復号方法であって、前記第二の復号ステップの復号出力の誤り検査をなす誤り検出ステップと、前記誤り検出ステップの検出結果に従って、前記トレーニングステップにおけるウィンドウのトレーニングサイズを可変制御する制御ステップとを含むことを特徴とする。
【００４３】
本発明によるプログラムは、入力されるコードブロックを複数のウィンドウに分割してフォワード処理及びバックワード処理を行う第一の復号ステップと、前記第一の復号ステップの出力に対してフォワード処理及びバックワード処理を行う第二の復号ステップと、前記第一及び第二の復号ステップによる復号処理を繰り返し行うよう制御するステップと、前記バックワード処理におけるバックワード方向のパスメトリック算出のための初期値の演算のトレーニングをなすトレーニングステップとを含むスライディングウィンドウターボ復号方法をコンピュータに実行させるためのプログラムであって、前記第二の復号ステップの復号出力の誤り検査をなす誤り検出ステップと、前記誤り検出ステップの検出結果に従って、前記トレーニングステップにおけるウィンドウのトレーニングサイズを可変制御する制御ステップとを含むことを特徴とする。
【００４４】
本発明の作用を述べる。入力されるコードブロックを複数のウィンドウに分割してフォワード処理及びバックワード処理を行って、複数回の繰り返し復号処理をなすようにしたスライディングウィンドウターボ復号方式において、繰り返し復号の各回数毎に、誤り検出（ＣＲＣ）を行ってこの検出結果に応じて次の回の復号のバックワード方向のパスメトリック算出のための初期値のトレーニング処理のトレーニングサイズ（Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ）を可変制御すると共に、誤り検出結果が良であれば、復号の停止も行うよう制御する。これにより、復号性能を維持しつつ消費電力の削減が可能となる。
【発明の効果】
【００４５】
本発明によれば、Beta Training Lengthを可変とすることにより、復号処理に必要な大量演算を削減し、節電能力ある復号処理を実現できるという効果がある。また、復号結果の誤り検出（ＣＲＣ：Cyclic Redundancy Check ）結果を用いて、復号回数を制御することにより、余計な復号処理が不要であるため、消費電力を更に減少できるという効果もある。
【発明を実施するための最良の形態】
【００４６】
以下に、図面を参照しつつ本発明の実施の形態について詳細に説明する。図１は本発明の実施の形態のブロック図であり、図９と同等部分は同一符号にて示している。本発明においては、硬判定部４４の判定結果を利用してＣＲＣ処理を行うＣＲＣ処理部４３と、このＣＲＣ判定低結果に応じて、入力情報のＢｅｔａ  ＴｒａｉｎｉｎｇのＬｅｎｇｔｈ制御を行うＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御部１１を、図９の従来例の機能ブロックに付加したものであり、他の構成は図９の例と同等となっている。
【００４７】
すなわち、図１に示すように、１ウィンドウ分の組織情報０１（Systematic information）、冗長情報０２（Parity Information）、及び一つ前の要素符号（Decoder ）にて得られた外部情報０３（External information）はフォワード処理（Ａｌｐｈａ計算）を行うために、入力メモリ２１に保存される。また、Ｂｅｔａ初期値Ｔｒａｉｎｉｎｇ処理を、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ計算部１２にて行うために、前Ｉｔｅｒａｔｉｏｎ（前回の）復号のＣＲＣ処理部４３のＣＲＣ処理結果により、Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御部１１により、入力情報のＢｅｔａ初期値のＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御が行われる。
【００４８】
Ｂｅｔａ初期値メモリ１４に保存された前ＩｔｅｒａｔｉｏｎのＢｅｔａパスメトリック値を初期値として、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ計算部１２においてＢｅｔａ  Ｔｒａｉｎｉｎｇ計算が行われる。そして、Ｂｅｔａ計算部３２においてＢｅｔａ計算を行うために、各ウィンドウで得られるＢｅｔａの最終値が、Ｂｅｔａ初期値メモリ１３に保存される。
【００４９】
入力メモリ２１に保存された情報によりＡｌｐｈａ計算部２２においてＡｌｐｈａ計算が行われる。また、Ｂｅｔａ計算部３２においてＢｅｔａ計算を行うために、入力メモリ２１の情報も入力メモリ３１に書き込まれる。Ａｌｐｈａ計算の結果は、Ａｌｐｈａ値メモリ２３に保存される。
【００５０】
Ｂｅｔａ計算部３２の入力は、入力メモリ３１にて保存された情報と、Ｂｅｔａ初期値メモリ１３の情報とから構成される。そして、得られたＢｅｔａパスメトリック値はＡｌｐｈａ値メモリ２３に保存されたＡｌｐｈａパスメトリック値と合わせながら、ＬＬＲ計算部４１においてＬＬＲ（最大対数尤度比、すなわち軟出力値）計算が行われる。また、次回復号のＢｅｔａ  Ｔｒａｉｎｉｎｇ処理の初期値を得るため、Ｂｅｔａ計算部３２の計算結果もＢｅｔａ初期値メモリ１４に書き込まれる。
【００５１】
ＬＬＲ計算４１の結果を用いて、外部値計算４２を行う。外部値計算の結果は次の要素復号器（Ｄｅｃｏｄｅｒ＃１（図５のＤ０４に相当）またはＤｅｃｏｄｅｒ＃２（図５のＤ１６に相当））の外部情報０３として使用される。ターボのＤｅｃｏｄｅｒ＃２の復号の場合、ＬＬＲ算部４１の出力値は硬判定部４４に入力され、硬判定処理がなされる。そして、この硬判定の結果を利用して、ＣＲＣ処理部４３にてＣＲＣ処理が行われる。このＣＲＣ処理はターボ反復復号処理において、復号処理の信頼度を維持しながら、無駄な反復ステップを省略することにより、処理量及び処理遅延を軽減するために、転送情報に検査符号を付加し、反復復号処理が繰り返されるた度に、復号された情報を検査し、この検査の結果に基づいてさらなる復号処理を実行するか否かを決定するものである。
【００５２】
この検査の結果が肯定を示す場合には、硬判定処理部４４の出力は復号の結果となり、復号処理が終了する。検査の結果が否定を示す場合には、Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御部１１において、次回復号のＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御が行われ、繰返し復号処理を継続することになる。
【００５３】
次に、図１の回路ブロックの動作について、図２及び図３を参照して説明する。図２は本発明の実施の形態の全体の動作の概略を示すフローチャートである。先ず、一つのコードブロックがウィンドウサイズ毎に分割される（ステップＳ１）。そして、ステップＳ２において、要素復号処理が行われる。すなわち、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ計算、Ａｌｐｈａ計算、Ｂｅｔａ計算、ＬＬＲ計算、外部値計算が行われる。ステップＳ２とＳ７（Ｔｒａｉｎｉｎｇ  ｌｅｎｇｔｈ制御）の詳細については、図３を参照して説明する。
【００５４】
ターボ復号装置は二つの要素復号器（Ｄｅｃｏｄｅｒ＃１とＤｅｃｏｄｅｒ＃２）から構成されるが、実際にはこれらを１つの処理回路で実現しているために、Ｄｅｃｏｄｅｒ＃２の回路動作とＤｅｃｏｄｅｒ＃１の回路動作は同じである。ステップＳ３において、実施中の要素復号器がＤｅｃｏｄｅｒ＃１かＤｅｃｏｄｅｒ＃２かが判定される。現在の要素復号器がＤｅｃｏｄｅｒ＃１であるとすると、得られた外部情報がフィードバックされ、Ｄｅｃｏｄｅｒ＃２の復号処理が行われる。
【００５５】
現在の要素復号器がＤｅｃｏｄｅｒ＃２の場合、得られたＬＬＲ情報により硬判定が行われる。そして、硬判定の結果を用いて、ＣＲＣ処理がなされる（ステップＳ４）。次に、ステップＳ５において、このＣＲＣ結果が肯定か否定かが判断される。ＣＲＣ結果が肯定（誤りなし）である場合には、硬判定の結果が出力され、復号処理が終了する。ＣＲＣ結果が否定（誤り有り）である場合には、ステップＳ６において現在の復号回数（Ｉｔｅｒａｔｉｏｎ）が、予め設定されている最大復号回数値を超えるかどうかが確認される。もし、現在の復号回数が最大復号回数値以下であれば（ステップＳ６で“ＮＯ”）、Ｂｅｔａ値のＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御がなされる（ステップＳ７）。
【００５６】
そして、現在復号の外部情報が次回復号のＤｅｃｏｄｅｒ＃１に入力されて、繰返し復号が行われることになる。現在の復号回数が予め設定されている最大復号回数値に達する場合には（ステップＳ６で“ＹＥＳ”）、復号処理が終了となる。
【００５７】
図２のステップＳ２とＳ７の詳細動作は、図３に示すように、コードブロックサイズ＝５１２、ウィンドウサイズ＝１２８、最大復号回数＝４の例として説明する。
【００５８】
（ａ）第一回復号（Ｉｔｅｒａｔｉｏｎ１）
復号のＢｅｔａ  Ｔｒａｉｎｉｎｇにて、第一ウィンドウ（Ｃｏｄｅ  Ｂｌｏｃｋ  Ｌｅｎｇｔｈ＝１〜１２８）を除いて、ウィンドウサイズ毎にバックワード方向にＢｅｔａ  ＡＣＳ演算が行われる。Ｂｅｔａ  Ｔｒａｉｎｉｎｇ部の第四ウィンドウ（最後のウィンドウ）の初期値設定は、理想Ｍａｘ−Ｌｏｇ−ＭＡＰアルゴリズムと同じである。すなわち、復号トレリスにおいて、Ｓｔａｔｅ＃０のＡｌｐｈａ及びＢｅｔａ値が０、それ以外のＳｔａｔｅは−ＭＡＸ値（最小値）とする。その他の初期値はコードブロックの分割により、未定であるが、ここでは、全て０と設定する。
【００５９】
一ウィンドウ分のＢｅｔａ  Ｔｒａｉｎｉｎｇ計算、一つ前のウィンドウのＡｌｐｈａ計算と二つ前のウィンドウのＢｅｔａ計算が同時に行われる。また、一ウィンドウ分のＢｅｔａ  Ｔｒａｉｎｉｎｇ計算を終了後、最終値だけが、初期値として、Ｂｅｔａ計算部３２に使用される。例えば、第三ウィンドウ（コードブロック＝２５７〜３８４）のＢｅｔａ  Ｔｒａｉｎｉｎｇ（Ｂｅｔａ  ＡＣＳ）処理が行われる時、同時に第二ウィンドウ（コードブロック＝１２９〜２５６）のＡｌｐｈａ計算及び第一ウィンドウのＢｅｔａ計算（コードブロック＝１〜１２８）が行われる。この時のＢｅｔａ計算の初期値は第二ウィンドウのＢｅｔａ  Ｔｒａｉｎｉｎｇ計算の最終値Ｂｅｔａ（１２９）から得られる。
【００６０】
次に、Ｂｅｔａ計算にて得られたＢｅｔａパスメトリック値と、Ａｌｐｈａ計算にて得られたＡｌｐｈａパスメトリック値とを、ウィンドウ毎に合わせながら、ＬＬＲ（最大尤度比、すなわち軟出力値）と外部情報とが算出される。Ａｌｐｈａ計算部２２の初期値設定は、理想Ｍａｘ−Ｌｏｇ−ＭＡＰアルゴリズムと同じである。
【００６１】
（ｂ）第Ｎ回復号（Ｉｔｅｒａｔｉｏｎ２〜４）
Ｂｅｔａ計算、Ａｌｐｈａ計算、ＬＬＲ＆外部値計算の回路動作は（ａ）と全く同じであるが、Ｂｅｔａ  Ｔｒａｉｎｉｎｇでは、復号回数の増加に伴って、Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈは次第に短縮するようになっている。図３の例では、第二、第三、第四回復号の時に、Ｔｒａｉｎｉｎｇ  ｌｅｎｇｔｈは３／４、１／２、１／４ウィンドウサイズとされる。実際には、ウィンドウサイズと最大復号回数とを組合わせることにより、種々のＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御方法が考えられる。
【００６２】
先ず第一に、復号回数の増加に従って、最大復号回数までＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈは次第に定長で短縮する制御方法がある。第二に、初めのいくつかの復号回数で、Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ不変（＝１ウィンドウサイズ相当とする）で、残りの復号回数でＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈは定長で短縮する制御方法がある。第三に、初めのいくつかの復号回数でＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ不変（＝１ウィンドウサイズ相当とする）とし、そして、その後のいくつかの中間復号回数でＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈは定長で短縮し、残りの復号回数でＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈは再び不変（＝可変Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈの最終値に相当）とする制御方法がある。
【００６３】
第四に、初めのいくつかの復号回数でＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈは定長で短縮し、残りの復号回数でＴｒａｉｎｉｎｇ  Ｌｅｎｇｔｈは不変（＝可変Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈの最終値に相当）とする制御方法がある。なお、上記の第一〜第四の制御方法に限定されることはないことは勿論である。
【００６４】
次に、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ計算部１２の初期値設定について説明する。ターボ復号装置は繰り返し復号を行うものであるから、二回目以降の復号では、以下のようにＢｅｔａ  ｔｒａｉｎｉｎｇ計算部の初期値設定を行う。
【００６５】
Ｂｅｔａ  Ｔｒａｉｎｉｎｇ部の第四ウィンドウ（最後のウィンドウ）の初期値設定については、理想Ｍａｘ−Ｌｏｇ−ＭＡＰアルゴリズムと同じである。その他のウィンドウについては、前回の復号にて一つ後ろのウィンドウから得られたＢｅｔａパスメトリックの最終値である。例えば、第二ウィンドウ（コードブロック＝１２９〜２５６）、第二回復号処理の場合、Ｂｅｔａ  Ｔｒａｉｎｉｎｇ計算部の初期値は、第一回復号にて得られた第三ウィンドウのＢｅｔａパスメトリックの最終値とする。
【００６６】
上述した実施の形態は単に本発明の一例を示すに止どまるものであって、多くの代替例、改変例、および変形例が、本発明の思想から逸脱することなく可能である。例えば、本発明の適用復号アルゴリズムをＭａｘ−Ｌｏｇ−ＭＡＰとしているが、最大事後確率復号（Maximum A Posteriori Probability decoding:ＭＡＰ復号）を忠実に実現するＬｏｇ−ＭＡＰアルゴリズムも適用できる。また、本発明のコードブロック長さを複数の等しい長さの区間（ウィンドウサイズ）に分割するとしているが、実際の分割により、最後のウィンドウサイズは他のウィンドウにより短い場合も、本発明が適用できるが、このとき、最後ウィンドウの個別Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御の工夫が必要となる。
【００６７】
上述した図２のフローチャートに従う動作は、予めその動作手順をプログラムとして記録媒体に記録しておき、これをコンピュータにより読取らせて実行する様に構成できることは明白である。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態の機能ブロック図である。
【図２】図１の動作を示すフローチャートである。
【図３】図１の動作を示すタイムチャートである。
【図４】一般的なターボ符号器のブロック図である。
【図５】一般的なターボ復号器のブロック図である。
【図６】要素符号器（ａ）とそのトレリス線図の例（ｂ）を示す図である。
【図７】Ａｌｐｈａ（ａ）＆Ｂｅｔａ（ｂ）のＡＣＳ演算例を示す図である。
【図８】軟出力値の計算例を示す図である。
【図９】従来のスライディングウィンドウターボ復号の機能ブロック図である。
【図１０】図９のブロックの動作を示すタイムチャートである。
【符号の説明】
【００６９】
１１  Ｔｒａｉｎｉｎｇ  Ｌｅｎｇｔｈ制御部
１２  Ｂｅｔａ  Ｔｒａｉｎｉｎｇ計算部
１３，１４  Ｂｅａｔ初期値メモリ
２１，３１  入力メモリ
２２  Ａｌｐｈａ計算部
２３  Ａｌｐｈａ値メモリ
４１  ＬＬＲ計算部
４２  外部値計算部
４３  ＣＲＣ部
４４  硬判定部
４５  インタリーバ／デインタリーバ
【図１】
2006041960.tif 000003
【図２】
2006041960.tif 000004
【図３】
2006041960.tif 000005
【図４】
2006041960.tif 000006
【図５】
2006041960.tif 000007
【図６】
2006041960.tif 000008
【図７】
2006041960.tif 000009
【図８】
2006041960.tif 000010
【図９】
2006041960.tif 000011
【図１０】
2006041960.tif 000012