JP3548949B2 - ビタビ復号器 - Google Patents

ビタビ復号器 Download PDF

Info

Publication number
JP3548949B2
JP3548949B2 JP24247999A JP24247999A JP3548949B2 JP 3548949 B2 JP3548949 B2 JP 3548949B2 JP 24247999 A JP24247999 A JP 24247999A JP 24247999 A JP24247999 A JP 24247999A JP 3548949 B2 JP3548949 B2 JP 3548949B2
Authority
JP
Japan
Prior art keywords
update
memory
path metric
metric
adder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP24247999A
Other languages
English (en)
Other versions
JP2001069015A (ja
Inventor
信生 玉川
Original Assignee
日本電気エンジニアリング株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気エンジニアリング株式会社 filed Critical 日本電気エンジニアリング株式会社
Priority to JP24247999A priority Critical patent/JP3548949B2/ja
Publication of JP2001069015A publication Critical patent/JP2001069015A/ja
Application granted granted Critical
Publication of JP3548949B2 publication Critical patent/JP3548949B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、データ伝送におけるビット誤りを低減するための手法の一つとして畳み込み符号化処理と組み合わせて用いられるビタビ復号処理に関し、特にビタビ復号処理の主要演算であるパスメトリックの更新計算の改善を図ったビタビ復号器に関する。
【0002】
【従来の技術】
ディジタルデータ通信システムにおける映像および音声等のデータの高速データ伝送において、データのビット誤りを低減する手法として、畳み込み符号化とビタビ復号によるアルゴリズムが用いられている。このようなビタビ復号処理の主要演算として、パスメトリックの更新演算がある。これは、畳み込み符号器により符号化された信号を受信側で復号するために、畳み込み符号器の各状態に対応するパスメトリックを更新するものである。
【0003】
すなわち、ある1つの状態に移行する前段階の状態は各々2つの状態があり、それぞれについて、更新前パスメトリックと対応するブランチメトリックとの加算を行い、これらの加算結果を相互に大小比較して、一方(小さい方)を更新後パスメトリック値として選択する。この一連の演算は、加算、比較および選択を行うことからACS(Add Compare Select)演算と称されている。1組の畳み込み符号データに対し、畳み込み符号器の全状態について、このようなパスメトリック更新演算を行うこととなる。近年、データ伝送の大容量化に伴い、このようなビタビ復号処理の高速化が要求されている。
【0004】
この要請に応えるために、例えば、特開平10−242871号公報においては、ビタビ復号処理においてパスメトリックの更新を効率よく行う手法が提案されている。この特開平10−242871号公報に開示された手法を用いるデータ処理装置は、図5に示すように構成される。
【0005】
図5に示すデータ処理装置は、更新前パスメトリックを格納するメモリ110、メモリ110にアドレス(番地)を指示するポインタ111、更新後パスメトリックを格納するメモリ120、メモリ120にアドレスを指示するポインタ121、ACS演算を行うACS演算部130、ブランチメトリックを格納するレジスタ141〜148、スワッパ149、メモリ110から読み出された更新前パスメトリックをACS演算部130に転送するデータバス151aおよび151b、ACS演算部130から出力された更新後パスメトリックをメモリ120に転送するデータバス152、並びにポインタ111および121を制御するポインタ制御部60により構成される。
【0006】
ACS演算部130は、メモリ110から読み出されてデータバス151aに転送された更新前パスメトリックとレジスタ141〜148からスワッパ149を介して読み出されたブランチメトリックとを加算する第1の加算器131a、メモリ110から読み出されてデータバス151bに転送された更新前パスメトリックとレジスタ141〜148からスワッパ149を介して読み出されたブランチメトリックとを加算する第2の加算器131b、第1および第2の加算器131aおよび131bの加算結果データの大小を比較する比較器132、比較器132による比較結果によって第1および第2の加算器131aおよび131bの加算結果データのいずれか一方を選択出力する選択手段としてのセレクタ133、並びにセレクタ133の出力データすなわち更新後パスメトリックを保持するラッチ134を備えている。また、レジスタ141〜148およびスワッパ149によってブランチメトリック格納手段140が構成されている。
【0007】
ACS演算部130はメモリ110から読み出した更新前パスメトリックを基にしてACS演算を行い、更新後パスメトリックをメモリ120に格納する。メモリ110では1回のACS演算に必要な2個の更新前パスメトリックが、最下位ビット以外のビットが共通の偶数番地と奇数番地にそれぞれ格納されており、これら2個の更新前パスメトリックを1回のアクセスで読み出すことが可能になっている。ACS演算部130は、処理の第1のサイクルにおいて、メモリ110をアクセスして読み出した2個の更新前パスメトリックを基にしてACS演算を行い第1の更新後パスメトリックを求め、処理の第2のサイクルにおいて、メモリ110をアクセスせずに、先に第1のサイクルにおいて読み出した2個の更新前パスメトリックを基にしてACS演算を行い、第2の更新後パスメトリックを求める。
【0008】
ビタビ復号における各符号の状態遷移プロセスを図6を参照して説明する。図6(a)に示すようにデータ“a′0”または“a′1”に、“1”または“0”からなる入力データ“ai”が入力され、“ai+a′”となる場合を考える。この場合、図6(b)に示すように、更新後に状態“0a′”になり得るのは、状態“a′0”および“a′1”であり、また、状態“1a′”になり得るのも、状態“a′0”および“a′1”である。遷移時の符号化出力は、トランスペアレントな符号であり、更新後の状態“0a′”および“1a′”の更新後パスメトリックを求めるために用いる枝メトリック値も共通に使用することができる。
【0009】
このように更新後パスメトリックを求めるのに必要な2個の更新前パスメトリックは、演算の過程において2回用いられる。このため、メモリ110における2個の更新前パスメトリックは、本来2回アクセスする必要があるが、上述の手法によればこれら2個の更新前パスメトリックのアクセスを1回のアクセスで済ませることができる。したがって、更新前パスメトリックに対するアクセス回数を半減させることができ、処理の高速化が実現される。
【0010】
【発明が解決しようとする課題】
ところが、特開平10−242871号公報の技術においては、更新後パスメトリック値を1つずつメモリ120に格納するため、メモリ120への書込アクセスは、全状態について行う必要があり、メモリ120への書込アクセス数は変わらない。このことは、ビタビ復号処理のさらなる高速化への妨げとなっている。
【0011】
本発明は、上述した事情に鑑みてなされたもので、ビタビ復号処理において、パスメトリックの更新計算を行うビタビ復号器のACS演算を、メモリへのアクセス回数を低減し、さらなる高速化を図って、一層効率よく実行することを可能とするビタビ復号器を提供することを主な目的としている。
【0012】
【課題を解決するための手段】
上記目的を達成するため、本発明に係るビタビ復号器は、
それぞれ4個ずつに分割され且つ各分割領域毎に各々所定個数の記憶領域を有し、更新前並びに更新後パスメトリックを格納する第1および第2の格納手段と、
前記第1および第2の格納手段について、それぞれ各2個ずつの分割領域毎の2個の記憶領域を順次選択指定する第1および第2のメモリ選択手段と、
2個ずつの枝メトリックを順次生成する枝メトリック生成手段と、
それぞれ、前記第1および第2の格納手段のうちの一方の格納手段の前記第1または第2のメモリ選択手段により選択された2個の記憶領域から読み出した2個の更新前パスメトリックと前記枝メトリック生成手段により生成された第1および第2の枝メトリックとを用いてACS(Add Compare Select)演算を行なって、第1および第2の更新後パスメトリックを生成して、前記第1および第2の格納手段のうちの他方の格納手段の前記第1または第2のメモリ選択手段により選択された2個の記憶領域に格納させる第1および第2のACS演算手段と、
を具備し、
前記第1のメモリ選択手段と前記第2のメモリ選択手段とは、前記第1および第2の格納手段のうち、一方を更新前パスメトリック格納用に、他方を更新後パスメトリック格納用に用い、且つ、更新後パスメトリック格納用の格納手段にすべてのパスメトリックが格納されると、これら更新前パスメトリック格納用、更新後パスメトリック格納用の格納手段を切換え、前記更新前パスメトリック格納用、更新後パスメトリック格納用の格納手段のそれぞれ前記4個ずつに分割された分割領域の記憶領域の選択順を、前記パスメトリックの読み出し時と格納時とで異なるように切り換える構成を有するものである。
【0013】
前記第1および第2のACS演算手段の各々は、それぞれ更新前パスメトリックと枝メトリックを加算する第1および第2の加算手段と、
前記第1および第2の加算手段の加算結果を比較する比較手段と、
前記比較手段の比較結果に基づき前記第1および第2の加算手段の加算結果のうちの一方を選択する選択手段と、
前記選択手段により選択された前記加算結果をラッチ出力するラッチ手段と、を含んでいてもよい。
【0015】
本発明のビタビ復号器においては、それぞれ4個ずつに分割され且つ各分割領域毎に各々所定個数の記憶領域を有する第1および第2の格納手段に、更新前並びに更新後パスメトリックを格納し、前記第1および第2の格納手段について、それぞれ各2個ずつの分割領域毎の2個の記憶領域を、第1および第2のメモリ選択手段により順次選択指定して、第1および第2のACS演算手段により、それぞれ、前記第1および第2の格納手段のうちの一方の格納手段の前記第1または第2のメモリ選択手段により選択された2個の記憶領域から読み出した2個の更新前パスメトリックと、枝メトリック生成手段により生成された第1および第2の枝メトリックとを用いてACS演算を行なって、第1および第2の更新後パスメトリックを生成して、前記第1および第2の格納手段のうちの他方の格納手段の前記第1または第2のメモリ選択手段により選択された2個の記憶領域に格納させる。したがって、更新後パスメトリックを求めるときに、更新前パスメトリックを前記第1および第2の格納手段の一方に1回アクセスするだけで、ACS演算に必要な2個の更新前パスメトリックを読み出すことができるだけでなく、これら2個の更新前パスメトリックから求められる2個の更新後パスメトリックを同時に求めることができ、さらに求めた2個の更新後パスメトリックを前記第1および第2の格納手段の他方に格納することができ、アクセス回数の低減が可能となり、パスメトリック更新処理の高速化を実現することができる。
【0016】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。すなわち、図1〜図5を参照して、本発明によるビタビ復号器の実施の形態を説明する。図1は、本発明の実施の形態に係るビタビ復号器の構成を示しており、図2は、図1におけるACS演算部の詳細な構成を示している。図3は、図1のビタビ復号器における更新前パスメトリックのメモリ部への格納状態を模式的に示し、図4は、図1のビタビ復号器における更新後パスメトリックのメモリ部への格納状態を模式的に示している。
【0017】
図1に示すビタビ復号器は、更新用Aメモリ部10、更新用Aメモリ選択器15、更新用Bメモリ部20、更新用Bメモリ選択器25、第1のACS演算部30a、第2のACS演算部30b、枝メトリック生成部40、第1のAデータバス51a、第2のAデータバス51b、第1のBデータバス52aおよび第2のBデータバス52bを備えている。更新用Aメモリ部10は、第1の更新用Aメモリ11、第2の更新用Aメモリ12、第3の更新用Aメモリ13および第4の更新用Aメモリ14を有し、更新用Bメモリ部20は、第1の更新用Bメモリ21、第2の更新用Bメモリ22、第3の更新用Bメモリ23および第4の更新用Bメモリ24を有している。
【0018】
すなわち、図1に示すビタビ復号器は、更新前パスメトリックを格納する更新用Aメモリ部10、更新後パスメトリックを格納する更新用Bメモリ部20を有する。更新用Aメモリ部10は、第1〜第4の更新用Aメモリ11〜14に分割されて構成されており、これら第1〜第4の更新用Aメモリ11〜14へのアクセスは、更新用Aメモリ選択器15によって制御される。同様に、更新用Bメモリ部20は、第1〜第4の更新用Bメモリ21〜24に分割されて構成されており、これら第1〜第4の更新用Bメモリ21〜24のアクセスは、更新用Bメモリ選択器25によって制御される。パスメトリックの更新演算を行うACS演算部は、いわゆる2式構成であり、第1のACS演算部30aの出力である更新後パスメトリックは、第1のBデータバス52aに出力され、第2のACS演算部30bの出力である更新後パスメトリックは、第2のBデータバス52bに出力され、それぞれ更新用Bメモリ部20に格納される。
【0019】
図2に第1および第2のACS演算部30aおよび30bの両者に共通のブロック図を示す。第1または第2のACS演算部30aまたは30bは、いずれも、第1の加算器31a、第2の加算器31b、比較器32、選択器33およびラッチ34を具備する。
【0020】
第1の加算器31aは、更新用Aメモリ部10から読み出されて第1のAデータバス51aを転送された更新前パスメトリックと、枝メトリック生成部40から与えられる枝メトリックとを加算する。第2の加算器31bは、更新用Aメモリ部10から読み出されて、第2のAデータバス51bを転送された更新前パスメトリックと枝メトリック生成部40から与えられる枝メトリックとを加算する。比較器32は、第1の加算器31aと第2の加算器31bの出力結果の大小比較を行う。選択器33は、比較器32の比較結果から第1の加算器31aと第2の加算器31bの加算結果のうちのいずれか一方を選択する。そして、ラッチ34は、選択器33により選択された第1の加算器31aまたは第2の加算器31bの加算結果を保持する。
【0021】
以下の説明において、状態Aの更新前パスメトリックをPM(A)、状態Aの更新後パスメトリックをPM′(A)とする。また、状態Aから状態Bへの枝メトリックをBM(A,B)とする。
【0022】
図1に示すビタビ復号器は、畳み込み符号の拘束長KがK=5、符号化率RがR=1/2のパスメトリック更新を行うものである。更新用Aメモリ部10、更新用Bメモリ部20は16(=2(K−1)=2(5−1))個の状態にそれぞれ対応するパスメトリック領域を有している。図3は、更新用Aメモリ部10の更新前パスメトリックの格納状態を模式的に示している。
【0023】
図3に示すように、更新用Aメモリ部10は、4個の更新用Aメモリ11〜14で構成され、更新用Aメモリ11(SEL=[00])の番地0000h(“h”は16進表記であることを示す)にはPM(0000)が、番地0001hにはPM(0100)が、番地0002hにはPM(0010)が、番地0003hにはPM(0110)がそれぞれ格納され、更新用Aメモリ12(SEL=[01])の番地0000hにはPM(0001)が、番地0001hにはPM(0101)が、番地0002hにはPM(0011)が、番地0003hにはPM(0111)がそれぞれ格納され、更新用Aメモリ13(SEL=[10])の番地0000hにはPM(1000)が、番地0001hにはPM(1100)が、番地0002hにはPM(0011)が、番地0003hにはPM(0111)がそれぞれ格納され、更新用Aメモリ14(SEL=[11])の番地0000hにはPM(1001)が、番地0001hにはPM(1101)が、番地0002hにはPM(1011)が、番地0003hにはPM(1111)がそれぞれ格納される。
【0024】
そして、更新用Aメモリ部10は、読み出しを行うべき2個のメモリからなるメモリのペアが、更新用Aメモリ選択器15によって選択される。選択されたメモリのペアから読み出されたデータは、一方は第1のAデータバス51aに、他方は第2のAデータバス51bに出力される。
【0025】
一方、更新用Bメモリ部20は、更新後パスメトリックを格納するものであり、書き込みを行うべき2個のメモリからなるメモリのペアが、更新用Bメモリ選択器25によって選択される。そして、第1のACS演算部30aおよび第2のACS演算部30bから出力されたデータを、それぞれ第1のBデータバス52aおよび第2のBデータバス52bを介して、これら選択されたメモリのペアに書き込む。
【0026】
以下、図1および図2に示したこの実施の形態に係るビタビ復号器の動作を説明する。なお、ビタビ復号において、一般的に枝メトリックについて数1の関係式が成り立つ。この関係式が成り立つことは、当該技術分野の技術者においては自明である。
【0027】
【数1】
Figure 0003548949
但し、p,q,rおよびsは、“0”または“1”のいずれかの値をとる。
【0028】
第1のサイクルでは状態「0000」の更新後パスメトリックPM′(0000)、および、状態「1000」の更新後パスメトリックPM′(1000)を求める。
【0029】
まず、更新用Aメモリ選択器15は、SEL[00]およびSEL[01]である更新用Aメモリ11および12を選択し、番地0000hを指定する。この結果、更新用Aメモリ部10は、第1のAデータバス51aに更新用Aメモリ11に格納していたPM(0000)を出力し、第2のAデータバス51bに更新用Aメモリ12に格納していたPM(0001)を出力する。
【0030】
そして、第1のACS演算部30aにおいて、第1の加算器31aは、第1のAデータバス51aを介して転送されたPM(0000)と枝メトリック生成部40により生成された枝メトリックBM(0000,0000)とを加算する。一方、第2の加算器31bは、第2のAデータバス51bを介して転送されたPM(0001)と枝メトリック生成部40により生成された枝メトリックBM(0001,0000)とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力させる。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(0000)を保持する。
【0031】
また、第2のACS演算部30bにおいては、第1の加算器31aは、第1のAデータバス51aを介して転送されたPM(0000)と枝メトリック生成部40により生成された枝メトリックBM(0000,1000)(=BM(0001,0000))とを加算する。一方、第2の加算器31bは、第2のAデータバス51bを介して転送されたPM(0001)と枝メトリック生成部40により生成された枝メトリックBM(0001,1000)(=BM(0000,0000))とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力させる。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(1000)を保持する。
【0032】
第1のACS演算部30aは、更新後パスメトリックPM′(0000)を第1のBデータバス52aに出力し、第2のACS演算部30bは、更新後パスメトリックPM′(1000)を第2のBデータバス52bに出力する。更新用Bメモリ選択器25は、SEL[00]およびSEL[10]である更新用Bメモリ21および23を選択し、番地0000hを指定する。この結果、更新用Bメモリ21の番地0000hにPM′(0000)が格納され、更新用Bメモリ23の番地0000hにPM′(1000)が格納される。
【0033】
次に第2のサイクルでは状態「0100」の更新後パスメトリックPM′(0100)、および、状態「1100」の更新後パスメトリックPM′(1100)を求める。
【0034】
まず、更新用Aメモリ選択器15は、SELの上位ビットを0→1とし、SEL[10]およびSEL[11]である更新用Aメモリ13および14を選択し、番地はそのまま0000hを指定する。この結果、更新用Aメモリ部10はAデータバス51aには、更新用Aメモリ13に格納していたPM(1000)を出力し、Aデータバス51bには、更新用Aメモリ14に格納していたPM(1001)を出力する。
【0035】
続いて、第1のACS演算部30aにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(1000)と枝メトリック生成部40により生成された枝メトリックBM(1000,0100)とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(1001)と枝メトリック生成部40により生成された枝メトリックBM(1001,0100)とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(0100)を保持する。
【0036】
また、第2のACS演算部30bにおいては、第1の加算器31aは、Aデータバス51aを介して転送されたPM(1000)と枝メトリック生成部40により生成された枝メトリックBM(1000,1100)(=BM(1001,0100))とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(1001)と枝メトリック生成部40により生成された枝メトリックBM(1001,1100)(=BM(1000,0100))とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(1100)を保持する。
【0037】
ACS演算部30aは、更新後パスメトリックPM′(0100)をBデータバス52aに出力し、ACS演算部30bは、更新後パスメトリックPM′(1100)をBデータバス52bに出力する。更新用Bメモリ選択器25は、SELは変更せず、SEL[00]およびSEL[10]である更新用Bメモリ21および23を選択したままとして、番地を+1hし、番地0001hを指定する。この結果、更新用Bメモリ21の番地0001hにPM′(0100)が格納され、更新用Bメモリ23の番地0001hにPM′(1100)が格納される。
【0038】
次に第3のサイクルでは状態「0010」の更新後パスメトリックPM′(0010)、および、状態「1010」の更新後パスメトリックPM′(1010)を求める。
【0039】
まず、更新用Aメモリ選択器15は、SEL[00]およびSEL[01]である更新用Aメモリ11および12を選択し、番地を+1hして、番地0001hを指定する。この結果、更新用Aメモリ部10はAデータバス51aに更新用Aメモリ11に格納していたPM(0100)を出力し、Aデータバス51bに更新用Aメモリ12に格納していたPM(0101)を出力する。
【0040】
そして、第1のACS演算部30aにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(0100)と枝メトリック生成部40により生成された枝メトリックBM(0100,0010)とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(0101)と枝メトリック生成部40により生成された枝メトリックBM(0101,0010)とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(0010)を保持する。
【0041】
また、第2のACS演算部30bにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(0100)と枝メトリック生成部40により生成された枝メトリックBM(0100,1010)(=BM(0101,0010))とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(0101)と枝メトリック生成部40により生成された枝メトリックBM(0101,1010)(=BM(0100,0010))とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(1010)を保持する。
【0042】
ACS演算部30aは、更新後パスメトリックPM′(0010)をBデータバス52aに出力し、ACS演算部30bは、更新後パスメトリックPM′(1010)をBデータバス52bに出力する。更新用Bメモリ選択器25は、SELを変更せず、SEL[00]およびSEL[10]である更新用Bメモリ21および23を選択したままとし、番地を+1hして、番地0002hを指定する。この結果、更新用Bメモリ21の番地0002hにPM′(0010)が格納され、更新用Bメモリ23の番地0002hにPM′(0011)が格納される。
【0043】
次に、第4のサイクルでは状態「0110」の更新後パスメトリックPM′(0110)、および、状態「1110」の更新後パスメトリックPM′(1110)を求める。
【0044】
まず、更新用Aメモリ選択器15は、SELの上位ビットを0→1として、SEL[10]およびSEL[11]である更新用Aメモリ13および14を選択し、番地はそのまま0001hを指定する。この結果、更新用Aメモリ部10はAデータバス51aに更新用Aメモリ13に格納していたPM(1100)を出力し、Aデータバス51bに更新用Aメモリ14に格納していたPM(1101)を出力する。
【0045】
そして、第1のACS演算部30aにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(1100)と枝メトリック生成部40により生成された枝メトリックBM(1100,0110)とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(1101)と枝メトリック生成部40により生成された枝メトリックBM(1101,0110)とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(0110)を保持する。
【0046】
また、第2のACS演算部30bにおいては、第1の加算器31aは、Aデータバス51aを介して転送されたPM(1100)と枝メトリック生成部40により生成された枝メトリックBM(1100,1110)(=BM(1101,0110))とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(1101)と枝メトリック生成部40により生成された枝メトリックBM(1101,1110)(=BM(1100,0110))とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(1110)を保持する。
【0047】
ACS演算部30aは、更新後パスメトリックPM′(0110)をBデータバス52aに出力し、ACS演算部30bは、更新後パスメトリックPM′(1110)をBデータバス52bに出力する。更新用Bメモリ選択器25は、SELは変更せずに、SEL[00]およびSEL[10]である更新用Bメモリ21および23を選択したままとし、番地を+1hして、番地0003hを指定する。この結果、更新用Bメモリ21の番地0003hにPM′(0110)が格納され、更新用Bメモリ23の番地0003hにPM′(1110)が格納される。
【0048】
第5のサイクルでは状態「0001」の更新後パスメトリックPM′(0001)、および、状態「1001」の更新後パスメトリックPM′(1001)を求める。
【0049】
まず、更新用Aメモリ選択器15は、SELの上位ビットを1→0として、SEL[00]およびSEL[01]である更新用Aメモリ11および12を選択し、番地を+1hして、0002hを指定する。この結果、更新用Aメモリ部10はAデータバス51aに更新用Aメモリ11に格納していたPM(0010)を出力し、Aデータバス51bに更新用Aメモリ12に格納していたPM(0011)を出力する。
【0050】
そして、第1のACS演算部30aにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(0000)と枝メトリック生成部40により生成された枝メトリックBM(0010,0001)とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(0011)と枝メトリック生成部40により生成された枝メトリックBM(0011,0001)とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(0001)を保持する。
【0051】
また、第2のACS演算部30bにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(0010)と枝メトリック生成部40により生成された枝メトリックBM(0010,1001)(=BM(0011,0001))とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(0011)と枝メトリック生成部40により生成された枝メトリックBM(0011,1001)(=BM(0010,0001))とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(1001)を保持する。
【0052】
ACS演算部30aは、更新後パスメトリックPM′(0001)をBデータバス52aに出力し、ACS演算部30bは、更新後パスメトリックPM′(1001)をBデータバス52bに出力する。更新用Bメモリ選択器25は、SELの下位ビットを0→1として、SEL[01]およびSEL[11]である更新用Bメモリ22および24を選択し、番地0000hを指定する。この結果、更新用Bメモリ22の番地0000hにPM′(0001)が格納され、更新用Bメモリ24の番地0000hにPM′(1001)が格納される。
【0053】
次に、第6のサイクルでは状態「0101」の更新後パスメトリックPM′(0101)、および、状態「1101」の更新後パスメトリックPM′(1101)を求める。
【0054】
まず、更新用Aメモリ選択器15は、SELの上位ビットを0→1として、SEL[10]およびSEL[11]である更新用Aメモリ13および14を選択し、番地はそのまま0002hを指定する。この結果、更新用Aメモリ部10はAデータバス51aに更新用Aメモリ13に格納していたPM(1010)を出力し、Aデータバス51bに更新用Aメモリ14に格納していたPM(1011)を出力する。
【0055】
そして、第1のACS演算部30aにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(1010)と枝メトリック生成部40により生成された枝メトリックBM(1010,0101)とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(1011)と枝メトリック生成部40により生成された枝メトリックBM(1011,0101)とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(0101)を保持する。
【0056】
また、第2のACS演算部30bにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(1010)と枝メトリック生成部40により生成された枝メトリックBM(1010,1101)(=BM(1011,0101))とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(1001)と枝メトリック生成部40により生成された枝メトリックBM(1011,1101)(=BM(1010,0101))とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(1101)を保持する。
【0057】
ACS演算部30aは、更新後パスメトリックPM′(0101)をBデータバス52aに出力し、ACS演算部30bは、更新後パスメトリックPM′(1101)をBデータバス52bに出力する。更新用Bメモリ選択器25は、SELは変更せず、SEL[01]およびSEL[11]である更新用Bメモリ22および24を選択したままとし、番地を+1hして、番地0001hを指定する。この結果、更新用Bメモリ22の番地0001hにPM′(0101)が格納され、更新用Bメモリ24の番地0001hにPM′(1101)が格納される。
【0058】
次に、第7のサイクルでは状態「0011」の更新後パスメトリックPM′(0011)、および、状態「1011」の更新後パスメトリックPM′(1011)を求める。
【0059】
まず、更新用Aメモリ選択器15は、SEL[00]およびSEL[01]である更新用Aメモリ11および12を選択し、番地を+1hして、番地0003hを指定する。この結果、更新用Aメモリ部10はAデータバス51aに更新用Aメモリ11に格納していたPM(0110)を出力し、Aデータバス51bに更新用Aメモリ12に格納していたPM(0111)を出力する。
【0060】
そして、第1のACS演算部30aにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(0110)と枝メトリック生成部40により生成された枝メトリックBM(0110,0011)とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(0111)と枝メトリック生成部40により生成された枝メトリックBM(0111,0011)とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(0011)を保持する。
【0061】
また、第2のACS演算部30bにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(0110)と枝メトリック生成部40により生成された枝メトリックBM(0110,1011)(=BM(0111,0011))とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(0111)と枝メトリック生成部40により生成された枝メトリックBM(0111,1011)(=BM(0110,0011))とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(1011)を保持する。
【0062】
ACS演算部30aは、更新後パスメトリックPM′(0011)をBデータバス52aに出力し、ACS演算部30bは、更新後パスメトリックPM′(1011)をBデータバス52bに出力する。更新用Bメモリ選択器25は、SELは変更せず、SEL[01]およびSEL[11]である更新用Bメモリ22および24を選択したままとし、番地を+1hして、番地0002hを指定する。この結果、更新用Bメモリ22の番地0002hにPM′(0011)が格納され、更新用Bメモリ24の番地0002hにPM′(1011)が格納される。
【0063】
次に、第8のサイクルでは状態「0111」の更新後パスメトリックPM′(0111)、および、状態「1111」の更新後パスメトリックPM′(1111)を求める。
【0064】
まず、更新用Aメモリ選択器15は、SELの上位ビットを0→1として、SEL[10]およびSEL[11]である更新用Aメモリ13および14を選択し、番地はそのまま0003hを指定する。この結果、更新用Aメモリ部10はAデータバス51aに更新用Aメモリ13に格納していたPM(1110)を出力し、Aデータバス51bに更新用Aメモリ14に格納していたPM(1111)を出力する。
【0065】
そして、第1のACS演算部30aにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(1110)と枝メトリック生成部40により生成された枝メトリックBM(1110,0111)とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(1111)と枝メトリック生成部40により生成された枝メトリックBM(1111,0111)とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(0111)を保持する。
【0066】
また、第2のACS演算部30bにおいて、第1の加算器31aは、Aデータバス51aを介して転送されたPM(1110)と枝メトリック生成部40により生成された枝メトリックBM(1110,1111)(=BM(1111,0111))とを加算する。一方、第2の加算器31bは、Aデータバス51bを介して転送されたPM(1101)と枝メトリック生成部40により生成された枝メトリックBM(1111,1111)(=BM(1110,0111))とを加算する。比較器32は、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値との大小比較を行って選択信号を選択器33に送り、第1の加算器31aの加算結果値と第2の加算器31bの加算結果値とのうちの一方を選択して出力する。ラッチ34は、選択器33の出力値である更新後パスメトリックPM′(1111)を保持する。
【0067】
ACS演算部30aは、更新後パスメトリックPM′(0111)をBデータバス52aに出力し、ACS演算部30bは、更新後パスメトリックPM′(1110)をBデータバス52bに出力する。更新用Bメモリ選択器25は、SELは変更せず、SEL[01]およびSEL[11]である更新用Bメモリ22および24を選択したままとし、番地を+1hして、番地0003hを指定する。この結果、更新用Bメモリ22の番地0003hにPM′(0111)が格納され、更新用Bメモリ24の番地0003hにPM′(1111)が格納される。
【0068】
図4に、更新用Bメモリ部20における更新後パスメトリックの格納状態を示す。
【0069】
更新後パスメトリックPM′(A)がメモリに全て格納されると、更新用Aメモリ部10と更新用Bメモリ部20のリード/ライトが切り替えられ、役割が入れ替わる。メモリのアドレス構成は同様であり、処理は同様にして、更新用Bメモリ部20から更新前パスメトリックを読み出し、更新用Aメモリ部10へ更新後パスメトリックを格納することとなる。このようにして、パスメトリックの更新を繰り返し行うことができる。
【0070】
上述したこの実施の形態に係る図1および図2のビタビ復号器においては、更新後パスメトリックを求める時に、更新前パスメトリックを格納する更新用Aメモリ部10を1回アクセスするだけでACS演算に必要な2個の更新前パスメトリックを読み出すことができる。また、この2個の更新前パスメトリックから求められる2個の更新後パスメトリックを同時に求めることができる。そして、求めた2個の更新後パスメトリックを同時にメモリに格納することができることから、更新用Aメモリ部10へのアクセス回数を減らすと共に更新用Bメモリ部20へのアクセス回数を減らすことが可能となる。
【0071】
なお、上述した更新用Aメモリ部10および更新用Bメモリ部20等のメモリは、必ずしも一般的なメモリである必要はなく、他の格納手段、例えばレジスタ等、に変更してもよい。また、上述した実施の形態においては、畳み込み符号の拘束長K=5である場合のビタビ復号器を例にとって説明したが、3以上の任意の拘束長の畳み込み符号に対して、上述と同様にして同様に本発明によるビタビ復号器を実現することが可能である。このときの状態数は、2(K−1)個となるため、例えば、宇宙通信等でよく用いられる拘束長が7の場合には64個のパスメトリックを格納できるように格納手段を構成すればよい。
【0072】
以上説明したように、本発明のビタビ復号器によれば、更新後パスメトリックを求めるときに、更新前パスメトリックを格納手段に1回アクセスするだけで、ACS演算に必要な2個の更新前パスメトリックを読み出すことができるだけでなく、この2個の更新前パスメトリックから求められる2個の更新後パスメトリックを同時に求めることができ、求めた2個の更新後パスメトリックを同時に格納手段に格納することができることから、格納時にもアクセス回数の低減が可能となる。このような処理により、ビタビ復号器におけるパスメトリック更新処理の高速化を実現することができる。
【0073】
なお、本発明は、上述し且つ図面に示す実施の形態にのみ限定されることなく、その要旨を変更しない限り、本発明の技術思想の範囲内において、種々に変形して実施し得ることは明らかである。
【0074】
【発明の効果】
以上説明したように、本発明によれば、ビタビ復号処理において、パスメトリックの更新計算を行うビタビ復号器のACS演算を、メモリへのアクセス回数を低減し、さらなる高速化を図って、一層効率よく実行することを可能とするビタビ復号器を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るビタビ復号器の構成を示すブロック図である。
【図2】図1のビタビ復号器におけるACS(Add Compare Select)演算部の詳細な構成を示すブロック図である。
【図3】図1のビタビ復号器の動作を説明するための更新用Aメモリ部の更新前パスメトリックの格納状態を示す模式図である。
【図4】図1のビタビ復号器の動作を説明するための更新用Bメモリ部の更新後パスメトリックの格納状態を示す模式図である。
【図5】従来のビタビ復号処理を行なうデータ処理装置の構成を示すブロック図である。
【図6】ビタビ復号処理におけるパスメトリック更新を説明するための模式図である。
【符号の説明】
10 更新用Aメモリ部
11 更新用Aメモリ
12 更新用Aメモリ
13 更新用Aメモリ
14 更新用Aメモリ
15 更新用Aメモリ選択器
20 更新用Bメモリ部
21 更新用Bメモリ
22 更新用Bメモリ
23 更新用Bメモリ
24 更新用Bメモリ
25 更新用Bメモリ選択器
30a ACS(Add Compare Select)演算部
30b ACS演算部
31a 加算器
31b 加算器
32 比較器
33 選択器
34 ラッチ
40 枝メトリック生成部
51a Aデータバス
51b Aデータバス
52a Bデータバス
52b Bデータバス

Claims (2)

  1. それぞれ4個ずつに分割され且つ各分割領域毎に各々所定個数の記憶領域を有し、更新前並びに更新後パスメトリックを格納する第1および第2の格納手段と、
    前記第1および第2の格納手段について、それぞれ各2個ずつの分割領域毎の2個の記憶領域を順次選択指定する第1および第2のメモリ選択手段と、
    2個ずつの枝メトリックを順次生成する枝メトリック生成手段と、
    それぞれ、前記第1および第2の格納手段のうちの一方の格納手段の前記第1または第2のメモリ選択手段により選択された2個の記憶領域から読み出した2個の更新前パスメトリックと前記枝メトリック生成手段により生成された第1および第2の枝メトリックとを用いてACS(Add Compare Select)演算を行なって、第1および第2の更新後パスメトリックを生成して、前記第1および第2の格納手段のうちの他方の格納手段の前記第1または第2のメモリ選択手段により選択された2個の記憶領域に格納させる第1および第2のACS演算手段と、
    を具備し、
    前記第1のメモリ選択手段と前記第2のメモリ選択手段とは、前記第1および第2の格納手段のうち、一方を更新前パスメトリック格納用に、他方を更新後パスメトリック格納用に用い、且つ、更新後パスメトリック格納用の格納手段にすべてのパスメトリックが格納されると、これら更新前パスメトリック格納用、更新後パスメトリック格納用の格納手段を切換え、前記更新前パスメトリック格納用、更新後パスメトリック格納用の格納手段のそれぞれ前記4個ずつに分割された分割領域の記憶領域の選択順を、前記パスメトリックの読み出し時と格納時とで異なるように切り換える構成を有するものである、
    ことを特徴とするビタビ復号器。
  2. 前記第1および第2のACS演算手段の各々は、それぞれ更新前パスメトリックと枝メトリックを加算する第1および第2の加算手段と、
    前記第1および第2の加算手段の加算結果を比較する比較手段と、
    前記比較手段の比較結果に基づき前記第1および第2の加算手段の加算結果のうちの一方を選択する選択手段と、
    前記選択手段により選択された前記加算結果をラッチ出力するラッチ手段と、を含むことを特徴とする請求項1に記載のビタビ復号器。
JP24247999A 1999-08-30 1999-08-30 ビタビ復号器 Expired - Fee Related JP3548949B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24247999A JP3548949B2 (ja) 1999-08-30 1999-08-30 ビタビ復号器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24247999A JP3548949B2 (ja) 1999-08-30 1999-08-30 ビタビ復号器

Publications (2)

Publication Number Publication Date
JP2001069015A JP2001069015A (ja) 2001-03-16
JP3548949B2 true JP3548949B2 (ja) 2004-08-04

Family

ID=17089707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24247999A Expired - Fee Related JP3548949B2 (ja) 1999-08-30 1999-08-30 ビタビ復号器

Country Status (1)

Country Link
JP (1) JP3548949B2 (ja)

Also Published As

Publication number Publication date
JP2001069015A (ja) 2001-03-16

Similar Documents

Publication Publication Date Title
JP3747604B2 (ja) ビタビ復号装置
JPH10107651A (ja) ビタビ復号装置
JP3262250B2 (ja) 現状態/次状態レジスタの効率的利用
JPH0964755A (ja) ビタビ復号方法及びビタビ復号装置
JPH05189518A (ja) 論理ネットワークを最適化する方法および装置
JPH08340263A (ja) イン・プレイス現状態/次状態レジスタ
US7530010B2 (en) Hybrid trace back apparatus and high-speed viterbi decoding system using the same
EP1739843B1 (en) Power efficient Viterbi decoder
JP3548949B2 (ja) ビタビ復号器
JP2003530753A (ja) 高速acsビタビデコーダの実行のためにメモリ内の状態の距離を効率的に読出して記憶するための方法および装置
JP2798123B2 (ja) ビタビ復号装置
JP4047697B2 (ja) ビタビ復号装置
JP3253906B2 (ja) データ処理装置及びデータ処理方法
KR100277467B1 (ko) 비터비 디코더
JP2001188675A (ja) データ転送装置
CN112559466B (zh) 数据处理方法及装置
JP2002185337A (ja) 基地局装置
JPH04421B2 (ja)
JPH07245567A (ja) ビタビ復号演算装置
US20050094749A1 (en) Non-binary viterbi data processing system and method
JPS63275227A (ja) ビタビ復号器用パスメモリ回路
JP4052878B2 (ja) 情報処理装置
KR100281132B1 (ko) 비터비 디코더의 어드레스 발생방법
JP4086481B2 (ja) 算術復号化方法及び装置並びに記憶媒体
US7032098B2 (en) Data-driven type information processing apparatus and information processing method allowing for effective use of memory

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040408

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080430

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090430

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100430

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110430

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120430

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120430

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees