(57)【特許請求の範囲】
【請求項１】
ブランチメトリックを求めてその大小を比較し、パスの候補を出力する加算比較演算器と、このパスを記憶する４つのメモリユニットと、パスメモリを後戻りしてパスを確定する２つのトレースバックユニットと、上記メモリユニットからこのトレースバックユニットに適切なデータが出力されるようにデータの流れを制御する４入力１出力の２つのマルチプレクサと、上記メモリユニット、トレースバックユニットおよびマルチプレクサをコントロールする制御ユニットとを備え、上記トレースバックユニットが交互に出力し、連続して出力を得る構成とし、
上記２つのトレースバックユニットからの出力を交互に選択する２入力１出力のマルチプレクサを有したことを特徴とするビタビデコーダ。
【請求項２】
ブランチメトリックを求めてその大小を比較し、パスの候補を出力する加算比較演算器と、このパスを記憶する４つのメモリユニットと、パスメモリを後戻りしてパスを確定する２つのトレースバックユニットと、上記メモリユニットからこのトレースバックユニットに適切なデータが出力されるようにデータの流れを制御する４入力１出力の２つのマルチプレクサと、上記メモリユニット、トレースバックユニットおよびマルチプレクサをコントロールする制御ユニットとを備え、上記トレースバックユニットが交互に出力し、連続して出力を得る構成とし、
上記加算比較演算器からのパス情報のデータを４つのメモリユニットに対して適宜なクロック数分のデータ数ずつ格納し、上記メモリユニットの内の、２つのメモリユニットから逆順にデータを読み出して、一方のトレースバックユニットに渡してパス確定し、上記メモリユニットの内の、１つのメモリユニットとそれとクロック数分だけ遅れた期間のデータを記憶しているメモリユニットとから逆順にデータを読み出して、他方のトレースバックユニットに渡してパス確定し、これらトレースバックユニットからの出力を、２入力１出力のマルチプレクサで交互に選択する構成としたことを特徴とするビタビデコーダ。
【請求項３】
上記トレースバックユニットは２つのメモリユニット分のデータ数だけ処理し、その半分のデータ数だけを出力データに採用することを特徴とする請求項２記載のビタビデコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、連続的なビタビ復号を実現するビタビデコーダに関する。
【０００２】
【従来の技術】
一般に、トレースバックユニットやメモリブロックを１つ有したビタビデコーダが知られている。この種のものでは、ビタビ復号において、トレースバックを行う場合、アルゴリズム的特徴により連続した入力データに対し、そのデータレートより低いデータレートで間欠的に出力が行われる。
【０００３】
これに対し、連続的な復号を実現するため、トレースバックユニットを４つ有したビタビデコーダが提案されている（特開平９−５１２７８号公報）。
【０００４】
【発明が解決しようとする課題】
しかしながら、これはトレースバックユニットを４つ必要とするため、冗長であり、構造が複雑化しコスト高になる等の問題がある。
【０００５】
そこで、本発明の目的は、上述した従来の技術が有する課題を解消し、ビタビ復号のトレースバック方式において、簡単な構成で、連続的なビタビ復号を実現することができ、しかもパスメモリのサイズを小さくすることができるビタビデコーダを提供することにある。
【０００６】
【課題を解決するための手段】
請求項１記載の発明は、ブランチメトリックを求めてその大小を比較し、パスの候補を出力する加算比較演算器と、このパスを記憶する４つのメモリユニットと、パスメモリを後戻りしてパスを確定する２つのトレースバックユニットと、上記メモリユニットからこのトレースバックユニットに適切なデータが出力されるようにデータの流れを制御する４入力１出力の２つのマルチプレクサと、上記メモリユニット、トレースバックユニットおよびマルチプレクサをコントロールする制御ユニットとを備え、上記トレースバックユニットが交互に出力し、連続して出力を得る構成とし、上記２つのトレースバックユニットからの出力を交互に選択する２入力１出力のマルチプレクサを有したことを特徴とするものである。
【０００７】
請求項２記載の発明は、ブランチメトリックを求めてその大小を比較し、パスの候補を出力する加算比較演算器と、このパスを記憶する４つのメモリユニットと、パスメモリを後戻りしてパスを確定する２つのトレースバックユニットと、上記メモリユニットからこのトレースバックユニットに適切なデータが出力されるようにデータの流れを制御する４入力１出力の２つのマルチプレクサと、上記メモリユニット、トレースバックユニットおよびマルチプレクサをコントロールする制御ユニットとを備え、上記トレースバックユニットが交互に出力し、連続して出力を得る構成とし、上記加算比較演算器からのパス情報のデータを４つのメモリユニットに対して適宜なクロック数分のデータ数ずつ格納し、上記メモリユニットの内の、２つのメモリユニットから逆順にデータを読み出して、一方のトレースバックユニットに渡してパス確定し、上記メモリユニットの内の、１つのメモリユニットとそれとクロック数分だけ遅れた期間のデータを記憶しているメモリユニットとから逆順にデータを読み出して、他方のトレースバックユニットに渡してパス確定し、これらトレースバックユニットからの出力を、２入力１出力のマルチプレクサで交互に選択する構成としたことを特徴とするものである。
【０００９】
請求項３記載の発明は、請求項２記載のものにおいて、上記トレースバックユニットは２つのメモリユニット分のデータ数だけ処理し、その半分のデータ数だけを出力データに採用することを特徴とする。
【００１０】
【発明の実施の形態】
以下、本発明の一実施形態を添付した図面を参照して説明する。
【００１１】
図１は、ビタビデコーダの全体構成を示す。このビタビデコーダは、加算比較演算器１と、この加算比較演算器１から出力されるパスを記憶する４つのメモリユニット３Ａ〜３Ｄと、４入力１出力の２つのマルチプレクサ５Ａ，５Ｂと、パスメモリを後戻りしてパスを確定する２つのトレースバックユニット７Ａ，７Ｂと、２入力１出力のマルチプレクサ９と、メモリユニット３、トレースバックユニット７およびマルチプレクサ５，９が適切な順序で動作するようにコントロールする制御ユニット１０とを備えて構成される。
【００１２】
加算比較演算器１は、入力されたデータに基づいてメトリック計算を行い、これをもとに、より尤度の高い状態を選択し、そのどれを選択したかという情報をメモリユニット３Ａ〜３Ｄに出力する。
【００１３】
メモリユニット３Ａ〜３Ｄは、加算比較演算器１から受け取った各状態のデータを、一時保管する。このデータの読み出しは、書き込みとは逆順に読み出される。メモリサイズは、拘束長を７とした場合、メモリ１個あたりデータ幅６４ｂｉｔ（＝２(7-1））、アドレス空間５ｂｉｔ（＞７×４）を必要とする。
【００１４】
４入力１出力のマルチプレクサ５Ａ，５Ｂは、適切なメモリブロックを選択し、その読み出したデータをトレースバックユニット７Ａ，７Ｂに渡す。
【００１５】
トレースバックユニット７Ａ，７Ｂは、データを後戻りすることにより信号を復元する。この出力は６４クロックごとに３２ビットずつ確定して出力される。２つのトレースバックユニット７Ａ，７Ｂはデータを交互に出力する。
【００１６】
２入力１出力のマルチプレクサ９は、トレースバックユニット７Ａ，７Ｂから交互に出力されるデータの内、いずれか一方のデータを選択する。
【００１７】
制御ユニット１０は、メモリユニット３、トレースバックユニット７およびマルチプレクサ５，９が適切な順序で動作するようにコントロールする。この場合、入力信号および、加算比較演算器１からのイネーブル信号をもとに、全体のタイミングを合わせている。また、制御ユニット１０は、メモリユニット３やトレースバックユニット７で使用される、アドレスやイネーブル信号の生成をおこない、しかも、トレースバックユニット７の出力に合わせて、出力正当性表示（ＶＡＬＩＤ）信号を出力し、その正当性を示している。
【００１８】
つぎに、各機器の構成を説明する。
【００１９】
▲１▼加算比較演算器
加算比較演算器１は、図２に示すように、ブランチメトリックを計算する２つのブロック（ブランチメトリックジェネレータ）１１を有する。入力データは、このブランチメトリックジェネレータ１１に入力され、ここで生成されたブランチメトリックは、接続テーブル１２に記述された情報に基づき、適切な加算比較演算セル（ＡＣＳＣＥＬＬ）１３に入力される。この加算比較演算セル１３は拘束長が７の場合、３２個存在する。加算比較演算セル１３は、ブランチメトリックＭＢと、ＭＥＴＲＩＣ＿ＩＮ（ＯＸ）、ＭＥＴＲＩＣ＿ＩＮ（ＩＸ）をもとに尤度計算する演算子であって、より尤度の高い状態を求めて、その結果をＰＡＴＨ＿ＤＡＴＡとして出力する。
【００２０】
加算比較演算セル１３で計算されたメトリックは、出力（ＭＥＴＲＩＣ＿ＯＵＴ）された後、加算比較演算器１の外でフイードバックループを形成し、ＭＥＴＲＩＣ＿ＩＮとして、再び加算比較演算器１に入力される。ここでは図示を省略したが、このフイードバックの際にオーバーフローを起こさないよう、外部で正規化する処理が行われている。
【００２１】
ここで、ブランチメトリックＭＢとは、ビタビ復号法において、ある時刻のある状態にいるときに入力されるべき符号（理論値）と、実際の入力符号との距離を表す。ここでは、この２つの符号のユークリッド距離（ただし、軟判定の場合であって、硬判定ではハミング距離）を求めてブランチメトリックとする。例えば、硬判定で０１が受信されるべき場合に受信符号が００であれば、一致が一つで＋１、不一致が一つで−１、合計でＭＢ＝０となる。
【００２２】
本実施形態では、２入力で受信するので、組み合わせは４通りであり、このうち半分は互いに極性が異なるだけである。
【００２３】
従って、本モデルでは、２通りのブランチメトリックＭＢを求め、極性を反転させることですべてを求める方式を採用する。
【００２４】
ブランチメトリックジェネレータ１１と加算比較演算セル１３の対応は、比較的複雑である。そのため、接続テーブル１２での接続規則はＲＯＭで保持しており、この接続規則に基づき接続される。
【００２５】
加算比較演算セル１３は、ビタビ復号で用いる、トレリス線図上の合流において、生き残るパスを選択する。Ｘ番目の加算比較演算ＣＥＬＬは、状態０Ｘと状態１Ｘ（例えばＸ＝１３＝”０１１０１”であれば、０Ｘ＝１３＝”００１１０１”、１Ｘ＝４５＝”１０１１０１”）のメトリックにブランチメトリックを加算して比較し、より尤度の高い方を選択して、Ｘ０とＸｌ（先の例でいえば、Ｘ０＝２６＝”０１１０１０”、Ｘｌ＝２７＝”０１１０１１”）に出力する。
【００２６】
例えば、Ｘ０番目のＰＡＴＨ＿ＤＡＴＡは、０Ｘと１Ｘで尤度を比較して０Ｘを選択するなら’０’、１Ｘを選択するなら’１’となる。
【００２７】
拘束長Ｋの大きさは任意であるが、今回は特にＫ＝７を用いている。この場合は状態数が２（Ｋ−１）通り、加算比較演算セル１３の数は２（Ｋ−２）個になるので、３２個の加算比較演算ＣＥＬＬがあり、ＭＥＴＲＩＣ及びＰＡＴＨを運ぶバスは６４となる。
【００２８】
▲２▼メモリユニット
メモリユニット３Ａ〜３Ｄは、図３からも明らかなように、４つのブロックに分けられ、それぞれのブロックは独立する。従って、同一クロック時に書き込み１つと読み出し２つを行うことができる。
【００２９】
このようにブロックに分けられるが、メモリのライトイネーブルとアドレスは制御ユニット１０によって、図４に示すように制御されており、書き込み側の加算比較演算器１からは見かけ上、ひとつの大きな（３２×４＝１２８のアドレス空間を持つ）メモリと見ることができる。
【００３０】
同様に読み込み側でも制御ユニット１０によって、メモリユニット３Ａ〜３Ｄから必要な順に読み出されるので、トレースバックユニット７としてはデータの格納場所を意識する必要がない。
【００３１】
また、ここに示すように、パスメモリ１つあたりのサイズはトレースバックユニット７が一度に処理するサイズ（例では６４）の半分となっている。これによりトレースバックの読み出し操作によってロックされる期間が半分で済むため、メモリの時間的な使用効率が向上する。
【００３２】
そのため、本来タイミング的に６４×４＝２５６のメモリサイズを必要とするのに対し、その半分のサイズで動作を可能とする。
【００３３】
▲３▼トレースバックユニット
トレースバックユニット７Ａ，７Ｂでは、メモリブロック２つ分（３２クロック×２）を戻りながら出力データを生成する。
【００３４】
データは６４ビット幅である。このデータは、制御ユニット１０によって、マルチプレクサ５で適切に選択されたメモリブロックから逆順に読み出され、トレースバックユニット７に入力される。従って、トレースバックユニット７自体は後戻りや、データの選択といったことを処理する必要はなく、機械的に受け取ったデータを処理すればよい。
【００３５】
この動作を、図５を参照して説明する。
【００３６】
トレースバックユニット７の内部では、記憶している現状態Ｓの最上位ビットにパスデータのＳ番目のデータを作用させ、次回の状態として記憶するという動作のみを繰り返す。この動作中に使用したパスデータのＳ番目の値を順番に記録し、３２ビットバッファリングした後、復号結果としている。
【００３７】
このようにトレースバックユニット単体では、３２クロック処理する毎に、３２ビット出力する。しかし、そのままでは、データの後ろ側が誤りを含む可能性がある。そこで、６４ビットトレースバックして、データの前側３２ビットを結果として採用することにする。
【００３８】
トレースバックユニット７Ａ，７Ｂのそれぞれには、データが６４ビットを１セットとして３２クロック分ずれて入力される。従って、２つのトレースバックユニット７Ａ，７Ｂは、３２クロックごと交互に、しかも６４クロックに一回、有効なデータを３２ｂｉｔずつ出力する。この結果を、後段の２入力１出力のマルチプレクサ９が正しく選択することになる。
【００３９】
データが終結された場合、そのデータまでのトレースバックを処理する時に制御ユニット１０は強制的に０が入力されたものとみなし動作させる信号をトレースバックユニット７に渡す。こうすることで、符号器の状態０に合うように状態を保って、トレースバックを行うことができる。
【００４０】
▲４▼制御ユニット
制御ユニット１０の主な役割は、アドレスの生成、メモリ管理、ＶＡＬＩＤ信号の生成、終了位置の記憶、タイミング管理等である。
【００４１】
制御ユニット１０は、図６に示すように、内部にステートマシンとカウンタを持っており、現在の動作状態を管理している。メインカウンタにより状態の遷移、アドレスの生成などを行っている。そして、これらの状況に応じて、各ブロックに指示を与え、図３のように動作させる。
【００４２】
内部の動作は次のようになる。
【００４３】
（１）リセット信号を受けて、状態を初期状態ＩＮＩＴにする。内部のカウンタや、各部のコントロール出力がクリアされる。リセット信号はすべての入力に優先し、いつでもＩＮＩＴステートに移行できる。
【００４４】
（２）動作イネーブル信号を受け、ＦＩＲＳＴステートに入る。メモリの書き込み制御や、トレースバック動作を開始させる。メモリにデータが記録され始め、データの揃ったところから、トレースバックを開始する。
【００４５】
（３）以後イネーブル信号は動作中、常に入力しておく。信号が一時停止する時などにＯＦＦにすると動作を止めることができる。
【００４６】
（４）出力可能になったら、ＬＯＯＰステートにし、出力信号が出ていることを示すＶＡＬＩＤ信号をアクティブにする。以後ＬＯＯＰ状態を維持し、以後繰り返しの動作になる。
【００４７】
（５）終結信号を受信したら、ＴＥＲＭステートに遷移し、入力の受け付けをやめ、メモリ内のデータの吐出し処理を行う。
【００４８】
（６）すべてのデータを出力し終わったら、ＶＡＬＩＤ信号を切り、ＩＤＬＥステートに遷移する。ＩＤＬＥではリセット信号によって内部がクリアされるまで、カウンタ動作が停止状態となる。
【００４９】
つぎに、本実施形態によるビタビデコーダの動作を、図１および図３を参照して説明する。ここで、全体のタイミングは、制御ユニット１０によってコントロールされるものとする。
【００５０】
（１）受信符号は加算比較演算器１で処理され、符号器の状態遷移（パス）情報としてメモリユニット３に向かって出力される。
【００５１】
ここでは拘束長Ｋ＝７としており、状態数は６４通りあるので加算比較演算器１からのデータは６４ｂｉｔの幅を持つ。
【００５２】
（２）各メモリユニット３は制御ユニット１０により制御されており、加算比較演算器１からの６４ｂｉｔ幅のデータを、メモリユニット３Ａ→メモリユニット３Ｂ→メモリユニット３Ｃ→メモリユニット３Ｄ→メモリユニット３Ａの順に３２クロックずつ記憶していく。アドレス指定やメモリ動作は制御ユニット１０によりコントロールされる。ここで、アドレス空間は、拘束長Ｋの４、５倍の値を基準にして決めている。
【００５３】
（３）メモリユニット３Ａ→メモリユニット３Ｂにデータ（６４ｂｉｔ幅×６４クロック分）が記憶されるのを待つ（時刻０〜６３）。
【００５４】
（４）メモリの内容データを、書き込んだ方向と反対に、メモリユニット３Ｂ→メモリユニット３Ａの順に読み出して、トレースバックユニット７Ａに入力する（時刻６４〜１２７）。
【００５５】
（５）トレースバックユニット７Ａは、入力（メモリユニット３Ｂ，メモリユニット３Ａの内容）をもとに、６４ｂｉｔ分戻して状態の遷移を書き出していき、元信号を求める（時刻６４〜１２７）。
【００５６】
（６）上記２．３．の過程の途中（メモリユニット３Ｂの分を戻り終わった時、時刻９５）でメモリユニット３Ｃが一杯になる。この時点からメモリユニット３Ｃ、メモリユニット３Ｂの記憶内容を使って、トレースバックユニット７Ｂがトレースバック動作を開始する。
【００５７】
（７）トレースバックを終了したトレースバックユニット７Ａは、復号した３２ｂｉｔのデータを出力する。そして、この時点で、データがすべて揃ったメモリユニット３Ｄおよびメモリユニット３Ｃを使って、新たにトレースバックを開始する（時刻１２８）。
【００５８】
（８）トレースバックユニット７Ａが出力してから３２クロック後、トレースバックユニット７Ｂの復号が終了し、３２ｂｉｔの出力をする。
【００５９】
（９）以下、同様に上記の動作を繰り返す。トレースバックユニット７Ａとトレースバックユニット７Ｂとが交互に出力を繰り返し、３２クロック毎に３２ｂｉｔずつのデータが出力として得られる。
【００６０】
（１０）トレースバックユニット７Ａとトレースバックユニット７Ｂは後段の２入力１出力のマルチプレクサ９で適切に選択され、１ビットづつ出力される。出力データには、その正当性を示すＶＡＬＩＤ信号を同期して出力する。
【００６１】
（１１）終結信号を入力すると、ビタビデコーダはデータの受付を終了し、内部データを吐出すように動作する。この間、一切の入力データを受け付けない。
【００６２】
（１２）データ内の終結符号を考慮しつつ、データをすべて吐出すと、アイドリング状態となり、リセット信号を待つ。
【００６３】
トレースバック方式では、本来、連続的な入力データに対して間欠的にしか出力することができない。しかし、この動作説明で示した通り、本実施形態では、２つのトレースバックユニット７を持ち、交互に出力を行うため、連続的な出力が可能になる、等の効果が得られる。
【００６４】
つぎに、各種入出力信号について説明する。
【００６５】
入力データＩ、Ｑは軟判定を想定する。通常は３ビット程度であり、硬判定を行う場合は、１ビット程度とする。イネーブル信号は、入力データに同期して入力する。Ｈｉｇｈの場合にデータを認識して演算を行う。クロック信号は、その速さが、データレートと同じものを入力する。リセット信号は、すべての入力信号に優先して処理される。データ終結信号は、通常Ｌｏｗを出力し、データパケットの終了後にＨｉｇｈを入力する。これ以降は、内部でデータの終臨処理および、データの吐出し処理を行うため、この間はリセット信号のみを受け付け、入力データ信号はすべて無視される。
【００６６】
パンクチャド用ダミー入力信号は、Ｉ入力信号、Ｑ入力信号に対応し、ビットを立てると、その時刻のデータのメトリック計算を行わないようにする。これはパンクチャド符号を想定したもので、符号化率を上げるためにデータが抜き取られて穴になっているものを受信したときに用いられる。出力データとしては、ビットが出力される。
【００６７】
出力正当性表示（ＶＡＬＩＤ）信号は、出力データに同期して変化する。ＶＡＬＩＤがアクティブのときの出力データのみが有効となる。
【００６８】
つぎに、データの入力順序を、図７を参照して説明する。
【００６９】
（１）まず、ビタビデコーダにリセット信号Ｈｉｇｈを入力する。リセット信号はクロックに同期し、内部の状態を初期状態に戻す。リセットがＬｏｗに戻ると、データ受付状態となり、復号が開始できる。
【００７０】
（２）イネーブル信号ＥＮを伴うデータのみが、ビタビデコーダで認識されて、処理される。
【００７１】
（３）データの内部処理が終わると、順次、ＶＡＬＩＤ信号を伴ってデータが出力される。
【００７２】
（４）イネーブルがアクティブか否かに関わらず、終結信号ＴＥＲＭがアクティブになると、吐出し処理を開始する。これ以後のデータは認識しない。
【００７３】
（５）内部に貯まっていたデータをすべて吐出し終わると、ビタビデコーダは、ＶＡＬＩＤをＬｏｗに落とし、アイドリング状態となる。そして、再びリセットがかかるまで休止する。
【００７４】
本実施形態によれば、２つのトレースバックユニット７を交互に動作させるため、連続的な出力が可能になる。また、トレースバック式の復号を行うのでパスメモリのサイズが小さくて済む。
【００７５】
トレースバック方式を採用したため、最も尤度の高いものを求めるたびにメモリ内の値を全て変える必要が無いので、処理や演算のコストが小さくて済む。従来、３つ以上のトレースバックユニットを持つのに対し、その数を２つに減らすことができる、等の効果が得られる。
【００７６】
以上、一実施形態に基づいて本発明を説明したが、本発明は、これに限定されるものでないことは明らかである。
【００７７】
【発明の効果】
本発明では、２つのトレースバックユニットを交互に動作させるため、連続的な出力が可能になる。また、トレースバック式の復号を行うのでパスメモリのサイズが小さくて済む等の効果が得られる。
【図面の簡単な説明】
【図１】本発明によるビタビデコーダの一実施形態を示すブロック図である。
【図２】加算比較演算器の構成図である。
【図３】トレースバックの動作説明図である。
【図４】メモリアクセスを示す図である。
【図５】トレースバックユニットを示す図である。
【図６】制御ユニットを示す図である。
【図７】データ入力順序を示す図である。
【符号の説明】
１  加算比較演算器
３Ａ〜３Ｄ  メモリユニット
５Ａ，５Ｂ  ４入力１出力のマルチプレクサ
７Ａ，７Ｂ  トレースバックユニット
９  ２入力１出力のマルチプレクサ
１０  制御ユニット
【図１】
0004422867.tif 000002
【図２】
0004422867.tif 000003
【図３】
0004422867.tif 000004
【図４】
0004422867.tif 000005
【図５】
0004422867.tif 000006
【図６】
0004422867.tif 000007
【図７】
0004422867.tif 000008