JP3260714B2 - Viterbi decoding device and Viterbi decoding method - Google Patents
Viterbi decoding device and Viterbi decoding methodInfo
- Publication number
- JP3260714B2 JP3260714B2 JP36663098A JP36663098A JP3260714B2 JP 3260714 B2 JP3260714 B2 JP 3260714B2 JP 36663098 A JP36663098 A JP 36663098A JP 36663098 A JP36663098 A JP 36663098A JP 3260714 B2 JP3260714 B2 JP 3260714B2
- Authority
- JP
- Japan
- Prior art keywords
- path
- time
- metric
- buffer
- state
- 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
Links
- 238000000034 method Methods 0.000 title claims description 34
- 239000000872 buffer Substances 0.000 claims description 94
- 238000012545 processing Methods 0.000 claims description 92
- 238000007476 Maximum Likelihood Methods 0.000 claims description 32
- 230000007704 transition Effects 0.000 claims description 28
- 230000015654 memory Effects 0.000 description 47
- 238000010586 diagram Methods 0.000 description 28
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Landscapes
- Error Detection And Correction (AREA)
Description
【0001】[0001]
【発明の属する技術分野】本発明は、トレースバック法
を用いたビタビ復号化装置およびビタビ復号化方法に関
し、特にトレースバック時間を短縮してビタビ復号化を
高速化することができるビタビ復号化装置およびビタビ
復号化方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a Viterbi decoding device and a Viterbi decoding method using a trace-back method, and more particularly to a Viterbi decoding device capable of shortening a trace-back time and speeding up Viterbi decoding. And a Viterbi decoding method.
【0002】[0002]
【従来の技術】通信分野において、誤り訂正技術は非常
に重要な技術の一つである。誤り訂正技術の一例とし
て、ビタビ復号は畳み込み符号に対する最尤復号法の一
般的なアルゴリズムとして知られており、誤り訂正能力
が高いことから伝送誤りが生じ易い通信経路をもつ伝送
方式における復号方式として、専用LSIやデジタルシ
グナルプロセッサ(DSP)で構成されたビタビ復号装
置が多く使用されている。また、近年では、マイクロプ
ロセッサの高性能化、高機能化はめざましく、従来、専
用LSIなどのハードウエアで行っていたビタビ復号化
処理をソフトウエア(高性能マイクロプロセッサ+ソフ
トウエア)で実現することが可能になってきている。2. Description of the Related Art In a communication field, an error correction technique is one of very important techniques. As an example of error correction technology, Viterbi decoding is known as a general algorithm of the maximum likelihood decoding method for convolutional codes, and as a decoding method in a transmission method having a communication path in which a transmission error easily occurs due to its high error correction capability. A Viterbi decoding device including a dedicated LSI and a digital signal processor (DSP) is often used. In recent years, the performance and functionality of microprocessors have been remarkably improved, and Viterbi decoding processing, which was conventionally performed by hardware such as a dedicated LSI, is to be realized by software (high-performance microprocessor + software). Is becoming possible.
【0003】ここで、問題になるのが処理性能である。
従来の専用LSIのように、CPUからのコマンドによ
り専用LSI単体(シングルタスク)で処理していたの
に比べ、マイクロプロセッサによるソフトウエア処理で
は、多くの場合、OS実行などによるマルチタスク環境
で使用されるため、マイクロプロセッサのリソースを1
00%占有することは難しく、従来の処理性能以上の高
速性が求められている。Here, a problem is processing performance.
Compared to the conventional dedicated LSI, which is processed by the dedicated LSI alone (single task) by the command from the CPU, the software processing by the microprocessor is often used in a multitask environment by OS execution etc. To reduce microprocessor resources by one.
It is difficult to occupy 00%, and a higher speed than conventional processing performance is required.
【0004】図面を参照しながら、従来のビタビ復号化
装置およびビタビ復号化方法を説明する。図9は畳み込
み符号化装置を示すブロック図、図10は図9の装置の
状態を示す説明図、図11は図9の装置の状態遷移を示
す説明図、図12は図9の装置のトレリス線図を示す説
明図、図13は図9の装置の状態遷移の一例を示す説明
図、図14は従来のビタビ復号化装置を示すブロック
図、図15は図14のパスメモリを詳細に示すブロック
図、図16はトレースバック法による復号動作を示す状
態遷移を示す説明図、図3はブランチメトリック処理を
示すフローチャート、図17はACS(Add Compare Se
lection)処理を示すフローチャート、図18はトレー
スバック処理を示すフローチャートである。A conventional Viterbi decoding device and a conventional Viterbi decoding method will be described with reference to the drawings. 9 is a block diagram showing a convolutional coding device, FIG. 10 is an explanatory diagram showing states of the device in FIG. 9, FIG. 11 is an explanatory diagram showing state transitions of the device in FIG. 9, and FIG. 12 is a trellis of the device in FIG. FIG. 13 is an explanatory diagram showing an example of state transition of the device in FIG. 9, FIG. 14 is a block diagram showing a conventional Viterbi decoding device, and FIG. 15 shows the path memory in FIG. 14 in detail. 16 is a block diagram, FIG. 16 is an explanatory diagram showing a state transition showing a decoding operation by the traceback method, FIG. 3 is a flowchart showing a branch metric process, and FIG. 17 is an ACS (Add Compare Se
FIG. 18 is a flowchart showing a traceback process.
【0005】最初に、ビタビ復号化と対をなす畳み込み
(トレリス)符号化のアルゴリズムについて説明する。
図9は説明を簡単にするために、拘束長3、符号化率1
/2の畳み込み符号化を行う符号化装置を示している。
畳み込み符号化装置81は、3ビットシフトレジスタR
1(入力inから順にビット「1」、「2」、「3」と
する)と2つの排他的論理和回路C1、C2とで構成さ
れている。排他的論理和回路C1は、3ビットシフトレ
ジスタR1の全ビット「1」、「2」、「3」について
の排他的論理和を計算して出力信号out1として出力
し、排他的論理和回路C2は、3ビットシフトレジスタ
R1のビット「1」とビット「3」についての排他的論
理和を計算して出力信号out2として出力する。[0005] First, an algorithm of convolutional (trellis) coding which forms a pair with Viterbi decoding will be described.
FIG. 9 shows a constraint length of 3 and a coding rate of 1 for simplicity of explanation.
2 shows an encoding device that performs convolutional encoding of / 2.
The convolutional encoding device 81 includes a 3-bit shift register R
1 (the bits are set to "1", "2", "3" in order from the input in) and two exclusive OR circuits C1 and C2. The exclusive OR circuit C1 calculates the exclusive OR of all the bits “1”, “2”, and “3” of the 3-bit shift register R1, outputs the result as an output signal out1, and outputs the exclusive OR circuit C2. Calculates the exclusive OR of bit "1" and bit "3" of the 3-bit shift register R1 and outputs the result as an output signal out2.
【0006】ここで、3ビットシフトレジスタR1のビ
ット「1」に蓄積されている情報ビットの値をa、ビッ
ト「2」に蓄積されている情報ビットの値をbとし、3
ビットシフトレジスタR1に新たに1ビットの情報が入
力されたとすると、3ビットシフトレジスタR1に蓄積
されるビットの値は、ビット「1」から順に、入力され
た1ビットの情報、情報ビットa、bとなり、1ビット
の情報ビットが入力されたときの畳み込み符号化装置8
1の状態数Xは、(a,b)の組み合わせ(X=0,
1,2,3)となる。この場合、図10に示すように s0=(0,0) s1=(0,1) s2=(1,0) s3=(1,1) の4種類の状態が存在することになる。Here, the value of the information bit stored in bit "1" of the 3-bit shift register R1 is a, and the value of the information bit stored in bit "2" is b.
Assuming that 1-bit information is newly input to the bit shift register R1, the values of the bits stored in the 3-bit shift register R1 are, in order from bit “1”, the input 1-bit information, information bits a, b, the convolutional encoder 8 when one bit of information is input
The number of states X of 1 is a combination of (a, b) (X = 0,
1, 2, 3). In this case, as shown in FIG. 10, there are four states of s0 = (0,0) s1 = (0,1) s2 = (1,0) s3 = (1,1)
【0007】一般に、拘束長がnであるときの状態数X
は、2^(n−1)(^はべき乗を示す)で表すことが
できる。図11は、現在の状態と、入力情報ビット(i
n)と、出力(out2,out1)と、遷移する状態
の関係を示したものである。例えば、状態s0(a=b
=0)のとき、入力情報ビットとして「0」が入力する
と (out2,out1)=(0,0) が出力され、状態s0に遷移する(状態は変わらな
い)。In general, the number of states X when the constraint length is n
Can be represented by 2 ^ (n−1) (^ indicates a power). FIG. 11 shows the current state and the input information bits (i
n), the output (out2, out1), and the transition state. For example, state s0 (a = b
(= 0), when "0" is input as an input information bit, (out2, out1) = (0, 0) is output, and the state transits to the state s0 (the state does not change).
【0008】同様に、状態s0(a=b=0)のとき、
入力情報ビットとして「1」が入力すると (out
2,out1)=(1,1)が出力され、状態s1に遷
移することがわかる。すなわち、畳み込み符号化装置8
1の畳み込み符号化では1ビットの入力情報ビットに対
し、2ビットの符号ビット(符号化率1/2)を出力す
ることになる。時刻tn(n=1,2,3・・・)にお
ける入力情報ビットに対し、以上の動作を繰り返すこと
により、符号化を行うのが畳み込み符号化のアルゴリズ
ムである。Similarly, in the state s0 (a = b = 0),
When "1" is input as an input information bit, (out
(2, out1) = (1, 1) is output, and it can be seen that the state transits to the state s1. That is, the convolutional encoder 8
In the convolutional coding of 1, two code bits (coding rate 1/2) are output for one input information bit. The convolutional coding algorithm performs coding by repeating the above operation on the input information bits at time tn (n = 1, 2, 3,...).
【0009】図12は畳み込み符号化装置81で畳み込
み符号化を行ったときの状態遷移を示した図(トレリス
線図と呼ばれる)である。入力情報ビットとして「0」
が入力された場合を実線で、入力情報ビットとして1が
入力された場合を点線で、それぞれ示してある。このよ
うにして符号化されたデータは、ランダムエラーの訂正
能力が優れており、例えばビタビ復号化により最も確か
らしいパス(最尤パス)を決定して復号データに変換す
ることで信頼性の高いデータを取得することができる。FIG. 12 is a diagram (called a trellis diagram) showing a state transition when convolutional encoding is performed by the convolutional encoding device 81. "0" as input information bit
Is indicated by a solid line, and a case where 1 is input as an input information bit is indicated by a dotted line. The data encoded in this way has excellent random error correction capability. For example, the most probable path (most likely path) is determined by Viterbi decoding, and converted to decoded data to obtain highly reliable data. Data can be obtained.
【0010】次に、畳み込み符号化装置81により符号
化されたデータをビタビ復号化装置131でビタビ復号
化(トレースバック法)を行う場合のアルゴリズムにつ
いて説明する。ここで、畳み込み符号化装置81の初期
状態を状態s0(a=b=0)とし、 (1,1,0,
0,0,1,1)の順で情報ビットが入力されたとする
と、畳み込み符号化装置81は図13の実線で示される
状態で遷移して符号化を行う。具体的には、畳み込み符
号化装置81は最初の情報ビット=1が入力されると、
符号化を行って2ビットの符号化データ(1,1)を出
力する。各入力情報ビットに対し、以上の処理を繰り返
すことにより、符号化データ (11、10、10、11、00、11、10) が得られる。Next, an algorithm in the case where the data encoded by the convolutional encoding device 81 is subjected to Viterbi decoding (traceback method) by the Viterbi decoding device 131 will be described. Here, the initial state of the convolutional encoder 81 is set to state s0 (a = b = 0), and (1,1,0,
Assuming that information bits are input in the order of (0, 0, 1, 1), the convolutional encoder 81 transits to the state shown by the solid line in FIG. 13 and performs encoding. Specifically, when the first information bit = 1 is input, the convolutional encoding device 81
Encoding is performed to output 2-bit encoded data (1, 1). By repeating the above processing for each input information bit, encoded data (11, 10, 10, 11, 00, 11, 10) is obtained.
【0011】次に、この符号化データに対して3つ目の
符号化データの第1ビット(第5ビット目)にエラーが
発生し、 (11、10、00、11、00、11、10) のデータが図14で示されるビタビ復号化装置131に
伝送されたことを前提にビタビ復号化の説明を行う。ビ
タビ復号化処理は、ブランチメトリック処理と、ACS
(加算→比較→選択)処理とトレースバック処理から構
成されており、それぞれ図3(ブランチメトリック処
理)、図17(ACS処理)、図18(トレースバック
処理)のフローチャートで示されるような処理を行う。Next, an error occurs in the first bit (fifth bit) of the third encoded data with respect to this encoded data, and (11, 10, 00, 11, 00, 11, 10) The description of Viterbi decoding will be made on the assumption that the data of (1) is transmitted to the Viterbi decoding device 131 shown in FIG. Viterbi decoding processing includes branch metric processing, ACS
(Addition → comparison → selection) processing and traceback processing. Processing such as those shown in the flowcharts of FIG. 3 (branch metric processing), FIG. 17 (ACS processing), and FIG. Do.
【0012】(1)ブランチメトリック処理 受信信号
がブランチメトリック処理部12に入力すると、ブラン
チメトリック処理部12では、図3に示すステップS3
1〜S38において、時刻t[n−1]から時刻tnの
1単位時間に遷移可能な全てのパスについて、ブランチ
メトリックを計算し、ACS処理部133に出力する。
具体的には、時刻t1において符号化データ(1,1)
を受信すると、時刻t1の状態s0(図3の変数X=
0)に遷移可能な前時刻t0のパスは状態s0、状態s
2の2つであることが図11のトレリス線図より明らか
である。(1) Branch metric processing When a received signal is input to the branch metric processing unit 12, the branch metric processing unit 12 executes step S3 shown in FIG.
In steps 1 to S38, branch metrics are calculated for all paths that can transition from time t [n-1] to one unit time at time tn, and output to the ACS processing unit 133.
Specifically, at time t1, the encoded data (1, 1)
Is received, the state s0 at time t1 (variable X =
The path at the previous time t0 that can transition to 0) is state s0, state s
2 are clear from the trellis diagram of FIG.
【0013】ここで、時刻t0の状態s0より遷移した
場合、出力=(0,0)であり、そのときは入力=0と
なる。同様に、時刻t0の状態s2より遷移した場合、
出力=(1,1)であり、そのときの入力=0であるこ
とが容易に推定できる(図3のステップS33)。これ
らの出力(00,11)と受信した符号化データ=
(1,1)よりブランチメトリックを求める(図3のス
テップS34)。ブランチメトリック計算では、前記出
力(00,11)と受信した符号化データ=(1,1)
のビットごとの差の総和を示すハミング距離(ブランチ
メトリック)を求める。Here, when the state transits from the state s0 at the time t0, the output = (0, 0), and at that time, the input = 0. Similarly, when the state transits from the state s2 at time t0,
It can be easily estimated that output = (1,1) and input = 0 at that time (step S33 in FIG. 3). These outputs (00, 11) and the received encoded data =
A branch metric is obtained from (1, 1) (step S34 in FIG. 3). In the branch metric calculation, the output (00, 11) and the received encoded data = (1, 1)
A Hamming distance (branch metric) indicating the sum of the differences for each bit is obtained.
【0014】時刻t0の状態s0より遷移した場合は第
1ビット、第2ビット共に一致しないのでハミング距離
=2となる。同様に、時刻t0の状態s2より遷移した
場合は第1ビット、第2ビット共に一致するのでハミン
グ距離=0となる。以上の処理を他の3つ(図3の変数
X=1,2,3)の状態全てについて行う(図3のステ
ップS37、S38)。When the state transits from the state s0 at the time t0, the first bit and the second bit do not match, so that the Hamming distance = 2. Similarly, when the state transits from the state s2 at the time t0, the first bit and the second bit match, so that the Hamming distance = 0. The above processing is performed for all the other three states (variable X = 1, 2, 3 in FIG. 3) (steps S37 and S38 in FIG. 3).
【0015】(2)ACS(加算→比較→選択)処理
ブランチメトリック処理により計算したブランチメトリ
ックがACS処理部133に入力すると、ACS処理部
133では、図17に示すステップS71〜S78にお
いて、このブランチメトリックと、それ以前に推定した
パスとの関係に基づいて、最も確からしいパスを各状態
毎に推定する。具体的には、時刻t1の状態s0(変数
X=0)に遷移可能な時刻t0の状態s0、状態s2に
おけるそれまでのパスメトリック(累積ハミング距離)
と、ブランチメトリック処理部12で計算したブランチ
メトリック(ハミング距離)を加算し、時刻t1までの
パスメトリックを計算する。この場合、時刻t0は初期
状態であるため、累積ハミング距離=0として計算する
と、上記の入力例では時刻t0の状態s0より遷移した
場合はパスメトリック=2(=0+2)、時刻t0の状
態s2より遷移した場合はパスメトリック=0(=0+
0)となる(図17のステップS73)。(2) ACS (addition → comparison → selection) processing
When the branch metric calculated by the branch metric process is input to the ACS processing unit 133, the ACS processing unit 133 performs steps S71 to S78 shown in FIG. , The most probable path is estimated for each state. More specifically, the path metric (cumulative Hamming distance) up to the state s0 at the time t0 and the state s2 up to that state at which the state can transit to the state s0 at the time t1 (variable X = 0)
And the branch metric (Hamming distance) calculated by the branch metric processing unit 12, and the path metric up to time t1 is calculated. In this case, since the time t0 is the initial state, when the calculation is performed with the accumulated Hamming distance = 0, in the above input example, when the state transits from the state s0 at the time t0, the path metric = 2 (= 0 + 2) and the state s2 at the time t0 In the case of transition, the path metric = 0 (= 0 +
0) (step S73 in FIG. 17).
【0016】次に、それぞれのパスに対するパスメトリ
ックを比較して、よりパスメトリックの小さい方の状態
より遷移してきたと推定(パスメトリックが同一の場合
はより状態番号の小さい方からと推定する)し、そのと
きの入力を復号データ候補とし、パスメモリ135にお
ける時刻t1の状態s0のエリアに・パスメモリへのポ
インタ・パスメトリック、および・復号データ候補を書
き込む。Next, the path metrics for each path are compared, and it is estimated that the state has transited from the state with the smaller path metric (if the path metric is the same, it is estimated from the state with the smaller state number). Then, the input at that time is set as a decoded data candidate, and a pointer to the path memory, a path metric to the path memory, and a decoded data candidate are written in the area of the state s0 at the time t1 in the path memory 135.
【0017】この場合、上記の入力例では時刻t0の状
態s0より遷移した場合にはパスメトリック=2、時刻
t0の状態s2より遷移した場合にはパスメトリック=
0であるため、時刻t0の状態s2より時刻t1の状態
s0に遷移したと推定し、パスメモリ135における時
刻t1の状態s0のエリアに・パスメモリ135におけ
る時刻t0の状態s2のエリアへのポインタ・パスメト
リック値=0・復号データ候補=0を書き込む(図17
のステップS76)。以上の処理を他の3つ(図17の
変数X=1,2,3)の状態全てについて行う(図17
のステップS73、S74)。In this case, in the above input example, when the state transits from the state s0 at the time t0, the path metric = 2, and when the state transits from the state s2 at the time t0, the path metric = 2.
Since it is 0, it is estimated that the state has transitioned from the state s2 at the time t0 to the state s0 at the time t1, and the pointer to the area of the state s2 at the time t1 in the path memory 135. -Path metric value = 0-Decoded data candidate = 0 is written (Fig. 17)
Step S76). The above processing is performed for all the other three states (variable X = 1, 2, 3 in FIG. 17) (FIG. 17).
Steps S73 and S74).
【0018】(3)トレースバック処理 各時刻におい
て受信した符号化データについて、ブランチメトリック
処理、ACS処理の一連の処理を行い、全ての受信信号
(符号化データ)に対しての推論が終了した場合の状態
遷移は図16のようになる。トレースバック処理部13
4では、図18に示すステップS81〜S87におい
て、最終時刻tにおいてパスメトリックが最も小さい状
態sX(tn)から過去を遡り、復号データ候補を求め
る。(3) Traceback processing When a series of processings of branch metric processing and ACS processing are performed on the encoded data received at each time, and inference has been completed for all received signals (encoded data) State transition is as shown in FIG. Traceback processing unit 13
In step S4, in steps S81 to S87 shown in FIG. 18, at the last time t, the past is traced back from the state sX (tn) with the smallest path metric to obtain a decoded data candidate.
【0019】具体的には、最終時刻tn(n=7)にお
ける全状態のパスメトリックを読み出し、パスメトリッ
クが最も小さい状態s3を選択する。次に、その状態か
ら推定したパスのパスメモリへのポインタを読み出すこ
とを繰り返して過去へ遡って行くと(図18のステップ
S85)と、図16の実線で示される状態を遷移してき
たことが推定できる。この状態遷移は図13の状態遷移
と同一であり、この状態遷移の復号データ候補(図16
中の網付きのボックス)を過去から順番に取り出すと (1,1,0,0,0,1,1) となり、符号化される前のデータと一致することがわか
る。以上説明したように、ビタビ復号化では、伝送され
てきた符号化データに含まれるエラーを訂正し、正しい
データに復号することが可能となる。More specifically, the path metrics of all the states at the last time tn (n = 7) are read, and the state s3 having the smallest path metric is selected. Next, when iteratively reads the pointer to the path memory of the path estimated from the state and goes back to the past (step S85 in FIG. 18), the state transitioned to the state indicated by the solid line in FIG. Can be estimated. This state transition is the same as the state transition of FIG. 13, and the decoded data candidate of this state transition (FIG. 16)
When the (boxes with half-tone dots in the middle) are sequentially extracted from the past, they become (1,1,0,0,0,1,1), which indicates that they match the data before being encoded. As described above, in the Viterbi decoding, it is possible to correct an error included in the transmitted encoded data and decode the data to correct data.
【0020】なお、上記の従来例の説明においては、符
号化データ列が短い場合(11,10,00,11,0
0,11,10の14ビット)で説明したが、一般的な
符号化データはかなり長いため、厳密にビタビ復号化を
行う場合にはパスメモリ135の容量およびトレースバ
ック処理の時間が膨大になってしまう。このため、実際
のビタビ復号化装置では、パスメモリ135は任意の長
さで構成し、現時刻からパスメモリ135の長さ分の最
新のパスを記憶しておき、新しいパスを書き込むときに
トレースバック処理を行い、最も古いパスの復号データ
候補を出力後、最も古いパスを捨てるようにしている。
一般的にパスメモリ135の長さ(トレースバック長)
は符号化装置の拘束長の5〜6倍にすることで、打ち切
りの誤差をほぼ無視できることが知られている。In the above description of the conventional example, when the encoded data string is short (11, 10, 00, 11, 0)
(14 bits of 0, 11, and 10), but since general encoded data is quite long, the capacity of the path memory 135 and the time of traceback processing become enormous when strictly performing Viterbi decoding. Would. For this reason, in an actual Viterbi decoding device, the path memory 135 has an arbitrary length, stores the latest path corresponding to the length of the path memory 135 from the current time, and traces the path when writing a new path. After performing the back process and outputting the decoded data candidate of the oldest pass, the oldest pass is discarded.
Generally, the length of the path memory 135 (traceback length)
It is known that by setting the constraint length to 5 to 6 times the constraint length of the encoding device, the error of the truncation can be almost ignored.
【0021】他の従来例としては、例えば特開平5−5
5931号公報に示すように回路規模を小さくするため
にパスメトリック値を少ないビット数で表すとともに、
高速化するために正規化処理を毎回ではなく、パスメト
リックがオーバーフローしない程度の周期で行う方法が
提案されている。また、他の従来例としては、例えば特
開平6−77845号公報に示すように伝送効率を向上
させるために複数のビタビ復号器を組み合わせる方法が
提案されている。また、特開平6−197027号公報
には、エラーレートを向上させるための方法が提案され
ている。また、特開平8−167858号公報には、A
CS処理後、n個のバッファと分配器でパスメモリを動
作させる構成が提案されている。また、特開平9−51
278号公報には、1つのパスメモリの代わりに1/n
の大きさのバッファをn個用いて独立して動作させる構
成が提案されている。Another conventional example is disclosed in, for example, JP-A-5-5
As shown in JP-A-5931, the path metric value is represented by a small number of bits in order to reduce the circuit scale.
In order to increase the speed, a method has been proposed in which the normalization processing is performed not every time but at a cycle that does not cause the path metric to overflow. As another conventional example, a method of combining a plurality of Viterbi decoders has been proposed as disclosed in, for example, Japanese Patent Application Laid-Open No. Hei 6-77845 to improve transmission efficiency. In addition, Japanese Patent Application Laid-Open No. H6-197027 proposes a method for improving an error rate. Japanese Patent Application Laid-Open No. 8-167858 discloses A
There has been proposed a configuration in which a path memory is operated by n buffers and distributors after CS processing. Further, Japanese Patent Application Laid-Open No. 9-51
No. 278 discloses that 1 / n is used instead of one path memory.
Has been proposed to operate independently using n buffers of the size of.
【0022】[0022]
【発明が解決しようとする課題】従来のトレースバック
法によるビタビ復号化方法の第1の問題点は、1回の復
号化処理におけるパスメモリ135へのメモリアクセス
回数が増大し、処理性能が低下することである。その理
由は、例えば、トレースバック長=16個(実際のビタ
ビ復号化で用いられる一般的な値)とすると、トレース
バック処理において、到達時刻の全状態のパスメトリッ
ク値の読み出しと、1時刻前に遡るために「推定したパ
スのパスメモリへのポインタの読み出し」がトレースバ
ック長分だけ発生するため、4+16=20回のパスメ
モリ135に対するメモリアクセスが発生する。この回
数は符号化装置の拘束長が長いほど増大することにな
る。近年、マイクロプロセッサの動作速度は高速化して
いるが、実際のシステムで使用されるメモリのアクセス
時間は遅いため(コストとのトレードオフ)、メモリア
クセスの回数が増えることはそのまま処理性能を低下さ
せる原因となってしまう。A first problem with the conventional Viterbi decoding method using the traceback method is that the number of memory accesses to the path memory 135 in one decoding process increases, and the processing performance decreases. It is to be. The reason is, for example, assuming that the traceback length = 16 (a general value used in actual Viterbi decoding), in the traceback processing, the reading of the path metric values of all the states of the arrival time and the previous one Since the “reading of the pointer to the path memory of the estimated path” occurs for the traceback length, the memory access to the path memory 135 occurs 4 + 16 = 20 times. This number increases as the constraint length of the encoding device increases. In recent years, the operating speed of a microprocessor has been increased, but the access time of a memory used in an actual system is slow (a trade-off with cost). Therefore, an increase in the number of memory accesses directly lowers the processing performance. Cause it.
【0023】第2の問題点は、メモリ(パスメモリ13
5)容量の増加である。その理由は、パスメモリ135
の容量がトレースバック長に依存しているためである。
前記条件(トレースバック長=16、状態数=4)での
パスメモリ135の容量は、3×4×16=192(ワ
ード)となる。この値は一般的なメモリを想定した場合
は特に問題とはならないが、マイクロプロセッサに内蔵
されているメモリ(キャッシュメモリなど)では大きな
問題となってしまう(キャッシュ・ミスヒット増加によ
る処理性能の低下)。The second problem is that the memory (path memory 13)
5) An increase in capacity. The reason is that the path memory 135
Is dependent on the traceback length.
Under the above conditions (traceback length = 16, number of states = 4), the capacity of the path memory 135 is 3 × 4 × 16 = 192 (words). Although this value does not cause any problem when a general memory is assumed, it causes a serious problem in a memory (such as a cache memory) built in a microprocessor (a decrease in processing performance due to an increase in cache misses). ).
【0024】[0024]
【発明の目的】本発明は上記従来例の問題点に鑑み、ト
レースバック処理時におけるパスメモリへのメモリアク
セス回数により処理性能が低下することを防止すること
ができ、また、パスメモリの容量を低減することができ
るビタビ復号化装置およびビタビ復号化方法並びにコン
ピュータプログラム記録媒体を提供することを目的とす
る。SUMMARY OF THE INVENTION The present invention has been made in view of the above-mentioned problems of the prior art, and can prevent a decrease in processing performance due to the number of memory accesses to a path memory during traceback processing. It is an object of the present invention to provide a Viterbi decoding device, a Viterbi decoding method, and a computer program recording medium that can be reduced.
【0025】[0025]
【課題を解決するための手段】本発明のビタビ復号化装
置は、上記目的を達成するために、前時刻から現時刻ま
での1単位時間に遷移可能な全てのパスについてブラン
チメトリックを計算するブランチメトリック処理手段
と、前時刻までの最尤復号情報と現時刻までの最尤復号
情報をそれぞれ交互に記憶するための第一及び第二のデ
ータバッファと、前時刻までのパスメトリックと現時刻
までのパスメトリックをそれぞれ交互に記憶するための
第一及び第二のパスメトリックバッファと、前記ブラン
チメトリック処理手段により計算されたブランチメトリ
ックと前記第一のパスメトリックバッファに記憶された
前時刻までのパスメトリックに基づいて、現時刻の各状
態における最も確からしいパスを推定して、このパスに
基づいて前記第一のデータバッファに記憶された前時刻
までの最尤復号情報を並び替えて前記第二のデータバッ
ファに書き込むとともに、前記第一のパスメトリックバ
ッファに記憶されたパスメトリックを更新して前記第二
のパスメトリックバッファに書き込む動作と、前記ブラ
ンチメトリック処理手段により計算されたブランチメト
リックと前記第二のパスメトリックバッファに記憶され
た前時刻までのパスメトリックに基づいて、現時刻の各
状態における最も確からしいパスを推定して、このパス
に基づいて前記第二のデータバッファに記憶された前時
刻までの最尤復号情報を並び替えて前記第一のデータバ
ッファに書き込むとともに、前記第二のパスメトリック
バッファに記憶されたパスメトリックを更新して前記第
一のパスメトリックバッファに書き込む動作とを、1単
位時間毎に交互に繰り返すACS処理手段と、前記パス
メトリックバッファに記憶された現時刻までのパスメト
リックと前記データバッファに記憶された現時刻までの
最尤復号情報に基づいて復号データを検索するトレース
バック処理手段とを有することを特徴とする。In order to achieve the above object, a Viterbi decoding apparatus according to the present invention calculates a branch metric for all paths that can transition in one unit time from the previous time to the current time. Metric processing means, first and second data buffers for alternately storing the maximum likelihood decoding information up to the previous time and the maximum likelihood decoding information up to the current time, respectively , and a path metric until the previous time. for storing the path metric up to the present time alternately respectively
A first and second path metrics buffer, based on the Blanc <br/> path metric Ji metric processing calculated branch metric by means and to said first path metric buffer time before stored in §, by estimating the most likely path in each state at the present time, the rearranged maximum likelihood decoding information up to the time before stored in the first data buffer on the basis of this path second Detaba'
Writes the file, the first path metric bus <br/> Tsu the second update the stored path metrics in full §
Operation and, the bra to be written into the path metric buffer
Branch metrics calculated by the multimetric processing means
Rick and stored in the second path metric buffer
Current time based on the path metric up to
Estimate the most likely path in the state
Based on the previous time stored in the second data buffer
The maximum likelihood decoding information up to
Buffer and the second path metric
The path metric stored in the buffer is updated and the
The operation of writing to one path metric buffer is simply
ACS processing means that repeats alternately for each time interval, and retrieves decoded data based on the path metric stored in the path metric buffer up to the current time and the maximum likelihood decoding information stored in the data buffer up to the current time. Traceback processing means.
【0026】上記構成により、ACS処理の単位毎に、
データバッファに記憶される最尤復号情報とパスメトリ
ックバッファに記憶されるパスメトリックが更新され
る。このため、トレースバック処理では現時刻までのパ
スメトリックに基づいて現時刻までの最尤復号情報をア
クセスするのみで復号することができる。With the above configuration, for each unit of the ACS processing,
The maximum likelihood decoding information stored in the data buffer and the path metric stored in the path metric buffer are updated. Therefore, in the traceback processing, decoding can be performed only by accessing the maximum likelihood decoding information up to the current time based on the path metric up to the current time.
【0027】また、データバッファには、最尤復号情報
として各パス毎の最尤復号データ候補や最尤状態遷移履
歴が記憶される。The data buffer stores a maximum likelihood decoded data candidate and a maximum likelihood state transition history for each pass as maximum likelihood decoding information.
【0028】[0028]
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。図1は本発明に係るビタビ復号化
装置の一実施形態を示すブロック図、図2は図1のデー
タバッファおよびパスメトリックバッファを示す構成図
である。Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an embodiment of a Viterbi decoding device according to the present invention, and FIG. 2 is a configuration diagram showing a data buffer and a path metric buffer of FIG.
【0029】図1を要約すると、本発明に係るビタビ復
号化装置11は、図2に示すように復号データ候補を格
納するための1対の同一構成のデータバッファ17a、
17bと、パスメトリックを記憶する1対の同一構成の
パスメトリックバッファ18a、18bを有する。この
データバッファ17a、17bの一方には前時刻までの
復号データ候補が格納され、他方には現時刻の復号デー
タ候補が格納される。この場合、ACS(Add Compare
Selection)処理において、データバッファ17a、1
7bの更新時に前時刻までの復号データ候補が格納され
ているデータバッファ17a、17bの一方から、推定
された前状態の情報が格納されているラインを読み出
し、データバッファ17a、17bの他方の現状態のラ
インに対して、推定された復号データ候補を付加して書
き込む。1, the Viterbi decoder 11 according to the present invention comprises a pair of identically configured data buffers 17a for storing decoded data candidates, as shown in FIG.
17b and a pair of identically configured path metric buffers 18a and 18b for storing path metrics. One of the data buffers 17a and 17b stores decoded data candidates up to the previous time, and the other stores decoded data candidates at the current time. In this case, ACS (Add Compare
Selection) processing, the data buffers 17a, 1
At the time of updating the data buffer 7b, the line storing the estimated previous state information is read from one of the data buffers 17a and 17b storing the decoded data candidates up to the previous time, and the other current buffer of the data buffers 17a and 17b is read. The estimated decoded data candidate is added to the state line and written.
【0030】上記処理を各時刻の各状態毎に行うことに
より、データバッファ17a、17bの各ラインは各状
態における最尤パスの復号データ候補系列となり、トレ
ースバック処理において、従来と異なり1時刻ずつ遡る
のではなく、直接任意の時刻まで遡ることが可能とな
り、これによりトレースバック処理時間を短縮すること
ができる。By performing the above processing for each state at each time, each line of the data buffers 17a and 17b becomes a decoded data candidate sequence of the maximum likelihood path in each state. Instead of going back, it is possible to go back directly to an arbitrary time, thereby shortening the traceback processing time.
【0031】詳しく説明すると、ビタビ復号化装置11
は、パスメモリ15と、前時刻から現時刻までの1単位
時間に遷移可能な全てのパスについてブランチメトリッ
クを計算してこれをACS処理部13に出力するブラン
チメトリック処理部12と、前記ブランチメトリック処
理部12で計算されたブランチメトリックと、パスメモ
リ15内のセレクタ16により選択される前時刻までの
パスメトリックバッファ18a、18bに記憶されたパ
スメトリックに基づいて、現時刻の各状態における最も
確からしいパスを推定し、復号データ候補を並び替える
ACS処理部13と、パスメモリ15内のセレクタ16
により選択される現時刻のパスメトリックバッファ18
a、18bに記憶されたパスメトリックと、現時刻のデ
ータバッファ17a、17bに記憶された復号データ候
補に基づいて、出力すべき復号データを検索するトレー
スバック処理部14より構成されている。More specifically, the Viterbi decoding device 11
Comprises a path memory 15, a branch metric processing unit 12 for calculating branch metrics for all paths transitable in one unit time from the previous time to the current time, and outputting the calculated branch metrics to the ACS processing unit 13, Based on the branch metric calculated by the processing unit 12 and the path metrics stored in the path metric buffers 18a and 18b up to the time before the time selected by the selector 16 in the path memory 15, the most accurate value in each state at the current time is obtained. An ACS processing unit 13 for estimating a likely path and rearranging decoded data candidates, and a selector 16 in the path memory 15.
Path metric buffer 18 at the current time selected by
The traceback processing unit 14 searches for decoded data to be output based on the path metrics stored in the data buffers 17a and 18b and the decoded data candidates stored in the data buffers 17a and 17b at the current time.
【0032】パスメモリ15は、図2に示すように状態
数×トレースバック長分の数の復号データ候補を記憶す
る1対の同一構成のデータバッファ17a、17bと、
状態数分のパスメトリックを記憶する1対の同一構成の
パスメトリックバッファ18a、18bと、1単位時間
毎にバッファ(17a、17b)、(18a、18b)
の切り替えを行うセレクタ16とを有する。As shown in FIG. 2, the path memory 15 includes a pair of identically configured data buffers 17a and 17b for storing decoded data candidates equal to the number of states × the traceback length.
A pair of identically configured path metric buffers 18a, 18b for storing path metrics for the number of states, and buffers (17a, 17b), (18a, 18b) for each unit time
And a selector 16 for performing the switching.
【0033】図3は本発明のブランチメトリック処理を
示すフローチャート、図4および図5は本発明のACS
処理を示すフローチャート、図6はデータバッファ17
a、17bの動作を示す説明図、図7はデータバッファ
17a、17bとパスメトリックバッファ18の遷移を
示す説明図、図8は本発明のトレースバック処理を示す
フローチャートである。FIG. 3 is a flowchart showing the branch metric processing of the present invention, and FIGS. 4 and 5 are the ACS of the present invention.
FIG. 6 is a flowchart showing the processing, and FIG.
FIGS. 7A and 7B are explanatory diagrams showing operations of the data buffers 17a and 17b, FIG. 7 is an explanatory diagram showing transitions of the data buffers 17a and 17b and the path metric buffer 18, and FIG.
【0034】なお、説明においては、時間の流れを1単
位時間毎にt1、t2、・・・tnとし、各時刻の1単
位時間前をt[n−1]とした(時刻t3の1単位時間
前は、時刻t2)。 また、セレクタ16により切り替
えられるa側のバッファ群17a、18aは時刻t1,
t3・・・の時はリード動作、時刻t2,t4・・・の
時はライト動作を行い、b側のバッファ群17b、18
bは時刻t1,t3・・・の時はライト動作、時刻t2,
t4・・・の時はリード動作を行うこととし、ビタビ復
号化する対象の符号化データ(符号化前のデータは1,
1,0,0,0,1,1)は、従来例で説明したものと
同じデータ(11、10、00、11、00、11、1
0)であることを前提に説明を行う。In the description, the flow of time is set to t1, t2,... Tn for each unit time, and t [n-1] is set for one unit time before each time (one unit of time t3). The time before is time t2). The a-side buffer groups 17a and 18a switched by the selector 16 are at time t1,
The read operation is performed at t3..., and the write operation is performed at times t2, t4.
b is a write operation at times t1, t3,.
At time t4, the read operation is performed, and the encoded data to be Viterbi-decoded (data before encoding is 1,
1, 0, 0, 0, 1, 1) are the same data (11, 10, 00, 11, 00, 11, 1, 1) as described in the conventional example.
0).
【0035】(1)ブランチメトリック処理 受信信号
がビタビ復号化装置11のブランチメトリック処理部1
2に入力すると、ブランチメトリック処理部12では、
図3に示すステップS31〜S38において時刻t[n
−1]から時刻tnの1単位時間に遷移可能な全てのパ
スについてブランチメトリックを計算し、ACS処理部
13に出力する。具体的には、時刻t1において符号化
データ=(1,1)を受信すると、時刻t1の状態s0
に遷移可能な前時刻t0のパスは状態s0、状態s2の
2つであることが図12に示すトレリス線図より明らか
である。ここで、時刻t0の状態s0より遷移した場
合、出力=(0,0)であり、そのときの入力=0とな
る。同様に、時刻t0の状態s2より遷移した場合、出
力=(1,1)であり、そのときの入力=0であること
が容易に推定できる(図3のステップS33)。(1) Branch metric processing The branch metric processing unit 1 of the Viterbi decoder 11
2, the branch metric processing unit 12
At steps S31 to S38 shown in FIG.
-1], branch metrics are calculated for all paths that can transition to one unit time at time tn, and output to the ACS processing unit 13. Specifically, when coded data = (1, 1) is received at time t1, the state s0 at time t1 is received.
It is clear from the trellis diagram shown in FIG. 12 that there are two paths at state t0 and state s2 at the previous time t0 at which the transition to state. Here, when the state transits from the state s0 at the time t0, the output is (0, 0), and the input at that time is 0. Similarly, when the state transits from the state s2 at the time t0, it can be easily estimated that the output = (1, 1) and the input = 0 at that time (step S33 in FIG. 3).
【0036】これらの出力(00,11)と受信した符
号化データ=(1,1)よりブランチメトリックを求め
る(図3のステップ34)。ブランチメトリック計算で
は、前記出力(00,11)と受信した符号化データ=
(1,1)のビットごとの差の総和を示すハミング距離
を求める。時刻t0の状態s0より遷移した場合は第1
ビット、第2ビット共に一致しないのでハミング距離=
2となる。同様に、時刻t0の状態s2より遷移した場
合は第1ビット、第2ビット共に一致するのでハミング
距離=0となる。以上の処理を他の3つ(図3の変数X
=1,2,3)の状態全てについて行う(図3のステッ
プS37、S38)。A branch metric is determined from these outputs (00, 11) and the received encoded data = (1, 1) (step 34 in FIG. 3). In the branch metric calculation, the output (00, 11) and the received encoded data =
A Hamming distance indicating the sum of the difference of each bit of (1, 1) is obtained. When the state transits from the state s0 at time t0, the first
Hamming distance =
It becomes 2. Similarly, when the state transits from the state s2 at the time t0, the first bit and the second bit match, so that the Hamming distance = 0. The above processing is performed for the other three (variable X in FIG. 3).
= 1, 2, 3) (steps S37 and S38 in FIG. 3).
【0037】(2)ACS処理 ブランチメトリック処
理において計算したブランチメトリックは、ACS処理
部13に入力し、ACS処理部13では図に示すステッ
プS41〜S61において、また、図6、図7に示すよ
うにブランチメトリックとそれ以前に推定したパスとの
関係に基づいて、最も確からしいパスを各状態毎に推定
する。具体的には、時刻t1の状態s0に遷移可能な時
刻t0の状態s0、状態s2におけるそれまでのパスメ
トリック(累積ハミング距離)と、ブランチメトリック
処理部12で計算したブランチメトリック(ハミング距
離)を加算し、時刻t1までのパスメトリックを計算す
る。(2) ACS Processing The branch metric calculated in the branch metric processing is input to the ACS processing unit 13, and the ACS processing unit 13 performs steps S41 to S61 shown in FIG. The most probable path is estimated for each state based on the relationship between the branch metric and the path previously estimated. Specifically, the path metric (cumulative Hamming distance) up to that in state s0 and state s2 at time t0, which can transit to state s0 at time t1, and the branch metric (hamming distance) calculated by branch metric processing unit 12 are calculated. Then, a path metric up to time t1 is calculated.
【0038】この場合、時刻t0のパスメトリックの時
には、セレクタ16によりa側のパスメトリックバッフ
ァ18aが選択される。このとき、パスメトリックバッ
ファ18aは初期状態であるためパスメトリック=0と
して計算すると、時刻t0の状態s0より遷移した場合
はパスメトリック=2(=0+2)、時刻t0の状態s
2より遷移した場合はパスメトリック=0(=0+0)
となる(図4のステップS44)。In this case, at the time of the path metric at time t0, the selector 16 selects the path metric buffer 18a on the a side. At this time, since the path metric buffer 18a is in the initial state and is calculated with path metric = 0, if the state transits from the state s0 at the time t0, the path metric = 2 (= 0 + 2) and the state s at the time t0
When the transition is made from 2, the path metric = 0 (= 0 + 0)
(Step S44 in FIG. 4).
【0039】次に、それぞれのパスに対するパスメトリ
ックを比較して、よりパスメトリックの小さい方の状態
より遷移してきたと推定(パスメトリックが同一の場合
はより状態番号の小さい方からと推定する)し、そのと
きのパスメトリックをb側のパスメトリックバッファ1
8bに書き込む(図5のステップS47)。この場合、
上記の入力例では時刻t0の状態s0より遷移した場合
のパスメトリック=2、時刻t0の状態s2より遷移し
た場合のパスメトリック=0であるため、時刻t0の状
態s2より時刻t1の状態s0に遷移したと推定し、b
側のパスメトリックバッファ18bの状態s0にパスメ
トリック値=0を書き込む。Next, the path metrics for each path are compared, and it is estimated that the state has transited from the state with the smaller path metric (if the path metric is the same, it is estimated from the state with the smaller state number). The path metric at that time is stored in the path metric buffer 1 on the b side.
8b (step S47 in FIG. 5). in this case,
In the above input example, the path metric when transitioning from the state s0 at time t0 = 2, and the path metric when transitioning from the state s2 at time t0 = 0, so that the state s2 at time t0 changes from the state s2 to the state s0 at time t1. Presumed to have transitioned, b
The path metric value = 0 is written to the state s0 of the side path metric buffer 18b.
【0040】次に、a側のデータバッファ17aから、
推定された状態s2の復号データ候補系列を読み出し
(図5のステップS48)、推定されたバス(s2→s
0)により確定する復号データ候補=0を付加して、b
側のデータバッファ17bの状態s0の復号データ候補
系列に書き込む(図5のステップS49、図6の時刻t
1)。以上の処理を他の3つ(図4の変数X=1,2,
3)の状態全てについて行う(図5のステップS50、
S51)。Next, from the data buffer 17a on the a side,
The decoded data candidate sequence in the estimated state s2 is read (step S48 in FIG. 5), and the estimated bus (s2 → s
0) is added to the decoded data candidate = 0, and b
(Step S49 in FIG. 5, time t in FIG. 6)
1). The above processing is repeated for the other three (variable X = 1, 2, 2,
This is performed for all the states of 3) (Step S50 in FIG. 5,
S51).
【0041】次の時刻t2において、符号化データ=
(1,0)を受信したとき、ブランチメトリック処理
後、時刻t2の状態s0に遷移可能な時刻t1の状態s
0、状態s2におけるそれまでのパスメトリックと、ブ
ランチメトリック処理部12で計算したブランチメトリ
ックを加算し、時刻t2までのパスメトリックを計算す
る。この場合、時刻t1のパスメトリックはセレクタ1
6によりb側のパスメトリックバッファ18bが選択さ
れる。このとき、パスメトリックバッファ18bの状態
s0のパスメトリック=0であるため、時刻t1の状態
s0より遷移した場合はパスメトリック=1(=0+
1)、時刻t1の状態s2より遷移した場合は、パスメ
トリック=2(=1+1)となる。At the next time t2, the encoded data =
When (1, 0) is received, after the branch metric processing, the state s at time t1 that can transition to the state s0 at time t2
0, the path metric up to that time in the state s2 and the branch metric calculated by the branch metric processing unit 12 are added to calculate the path metric until time t2. In this case, the path metric at time t1 is the selector 1
6, the path metric buffer 18b on the b side is selected. At this time, since the path metric of the state s0 of the path metric buffer 18b is 0, if the state transits from the state s0 of the time t1, the path metric is 1 (= 0 +
1) When the state transits from the state s2 at the time t1, the path metric becomes 2 (= 1 + 1).
【0042】次に、それぞれのパスに対するパスメトリ
ックを比較して、よりパスメトリックの小さい方の状態
より遷移してきたと推定し、そのときのパスメトリック
をa側のパスメトリックバッファ18aに書き込む。こ
の場合、上記の入力例では時刻t1の状態s0より遷移
した場合のパスメトリック=1、時刻t1の状態s2よ
り遷移した場合のパスメトリック=2であるため、時刻
t1の状態s0より時刻t2の状態s0に遷移したと推
定し、a側のパスメトリックバッファ18aの状態s0
にパスメトリック値=1を書き込む。Next, the path metrics for each path are compared, it is estimated that the state has transited from the state with the smaller path metric, and the path metric at that time is written to the path metric buffer 18a on the a side. In this case, in the above input example, the path metric when the state transits from the state s0 at the time t1 = 1, and the path metric when the state transits from the state s2 at the time t1 = 2. It is estimated that the state has transited to the state s0, and the state s0 of the path metric buffer 18a on the a side is
Is written with the path metric value = 1.
【0043】次に、b側のデータバッファ17bから、
推定された状態s0の復号データ候補系列を読み出し、
推定されたバス(s0→s0)により確定する復号デー
タ候補=0を付加して、a側のデータバッファ17aの
状態s0の復号データ候補系列に書き込む(図6の時刻
t2)。以上の処理を他の3つ(図4の変数X=1,
2,3)の状態全てについて行う。Next, from the data buffer 17b on the b side,
Read the decoded data candidate sequence in the estimated state s0,
A decoded data candidate = 0 determined by the estimated bus (s0 → s0) is added and written to the decoded data candidate series in the state s0 of the a-side data buffer 17a (time t2 in FIG. 6). The above processing is performed for the other three (variable X = 1,
This is performed for all of the states 2) and 3).
【0044】以上のような動作を繰り返すことのより、
セレクタ16により選択される現時刻tnのデータバッ
ファ17の1ラインは各状態における最尤パスの復号デ
ータ候補系列となる。つまり、1ラインの復号データ候
補系列の中で最も古いデータが、現時刻tnにおける復
号データとなる。By repeating the above operation,
One line of the data buffer 17 at the current time tn selected by the selector 16 becomes a decoded data candidate sequence of the maximum likelihood path in each state. That is, the oldest data in the one-line decoded data candidate sequence is the decoded data at the current time tn.
【0045】ここで、符号化データとして (11、1
0、00、11、00、11、10)が入力されたとき
の復号動作におけるデータバッファ17とパスメトリッ
クバッファ18の遷移を図7に示す。図7を参照する
と、最終時刻t7におけるb側のパスメトリックバッフ
ァ18bを見ると状態s3のパスメトリックが最小値=
1であることから、b側のデータバッファ17bの状態
s3の1ラインに記憶されている復号データ候補系列
を、最も古い時刻t1から順にならべると (1,1,
0,0,0,1,1)となり、符号化される前のデータ
と一致していることがわかる(正しいデータに復号)。Here, (11, 1)
FIG. 7 shows transitions of the data buffer 17 and the path metric buffer 18 in the decoding operation when (0, 00, 11, 00, 11, 10) are input. Referring to FIG. 7, looking at the path metric buffer 18b on the b side at the final time t7, the path metric in the state s3 has the minimum value =
1, the decoded data candidate sequences stored in one line of the state s3 of the b-side data buffer 17b are sequentially arranged from the oldest time t1 as (1,1,
0, 0, 0, 1, 1), which indicates that they match the data before being encoded (decoded to correct data).
【0046】(3)トレースバック処理 トレースバッ
ク処理部14では、前記ACS処理により、データバッ
ファ17の各ラインは各状態における最尤復号データ系
列となるため、従来と異なり1単位時間づつ遡ることな
く、図8に示すステップS61〜S64において直接ト
レースバック長分の過去まで遡ることができる。(3) Trace-back processing In the trace-back processing section 14, each line of the data buffer 17 becomes a maximum likelihood decoded data sequence in each state by the ACS processing. In steps S61 to S64 shown in FIG. 8, it is possible to directly go back to the past by the traceback length.
【0047】このため、第1の効果は、トレースバック
処理の時間を短縮できることである。その理由は、トレ
ースバック処理において、直接最も古い復号データ候補
を検索することができるため、1時刻づつ過去へ遡るた
めのメモリアクセスが不要となるからである。具体的に
は、例えばトレースバック長=16とすると、従来で
は、4+16=20回のメモリアクセスが必要であった
のに対し、本発明によれば、4+1=5回のメモリアク
セスでトレースバック処理を行うことができる。Therefore, the first effect is that the time for the trace-back processing can be reduced. The reason is that the oldest decoded data candidate can be directly searched in the traceback processing, so that it is not necessary to access the memory to go back to the past one time at a time. Specifically, for example, if the traceback length is 16, the memory access is required 4 + 16 = 20 times in the past, but according to the present invention, the traceback processing is performed by 4 + 1 = 5 memory accesses. It can be performed.
【0048】ここで、ビタビ復号化(トレースバック長
=16)処理を実際にマイクロプロセッサ(NEC μ
PD705100:V830)を使用してプログラミン
グした時の性能データを比較してみると、従来方法では
90μs(周期処理単位:416μs)かかっていた処
理を本発明のビタビ復号化方法により、45μsに短縮
することができた。また、本発明によればトレースバッ
ク長に依存せずに、トレースバック処理を行うことがで
きるため、トレースバック長が長くなるほど効果が高く
なることは明らかである。Here, the Viterbi decoding (traceback length = 16) processing is actually performed by a microprocessor (NEC μm).
Comparing the performance data when programming using the PD 705100 (V830), processing that took 90 μs (periodic processing unit: 416 μs) in the conventional method is reduced to 45 μs by the Viterbi decoding method of the present invention. I was able to. In addition, according to the present invention, since the traceback processing can be performed without depending on the traceback length, it is clear that the longer the traceback length, the higher the effect.
【0049】第2の効果は、パスメモリ容量を低減でき
ることである。その理由は、パスメモリを一対のバッフ
ァ群で構成することにより、不要なパスメトリック用の
メモリを削減できるからである。具体的には、例えば、
トレースバック長=16、状態数=4とすると、従来、
3×4×16=192(ワード)のパスメモリが必要で
あったのに対し、本発明によれば、(4+4×16)×
2=136(ワード)のメモリ容量でビタビ復号化処理
を行うことができる。このため、キャッシュメモリを内
蔵したマイクロプロセッサではキャッシュ・ヒット率が
向上し、処理時間をさらに短縮することができる。The second effect is that the path memory capacity can be reduced. The reason is that by configuring the path memory with a pair of buffer groups, unnecessary path metric memory can be reduced. Specifically, for example,
Assuming traceback length = 16 and number of states = 4,
Whereas 3 × 4 × 16 = 192 (word) path memories were required, according to the present invention, (4 + 4 × 16) ×
Viterbi decoding can be performed with a memory capacity of 2 = 136 (words). Therefore, in a microprocessor having a built-in cache memory, the cache hit rate is improved, and the processing time can be further reduced.
【0050】なお、上記実施形態では、データメモリに
対して復号データ候補を記憶したが、代わりに最尤状態
遷移履歴を記憶するようにしてもよい。In the above embodiment, the decoded data candidates are stored in the data memory. Alternatively, the maximum likelihood state transition history may be stored.
【0051】[0051]
【発明の効果】以上説明したように本発明によれば、A
CS処理の単位毎に、データバッファに記憶される最尤
復号情報とパスメトリックバッファに記憶されるパスメ
トリックが更新されので、トレースバック処理時におけ
るパスメモリへのメモリアクセス回数により処理性能が
低下することを防止することができ、また、パスメモリ
の容量を低減することができる。As described above, according to the present invention, A
Since the maximum likelihood decoding information stored in the data buffer and the path metric stored in the path metric buffer are updated for each CS processing unit, the processing performance decreases due to the number of memory accesses to the path memory during the traceback processing. Can be prevented, and the capacity of the path memory can be reduced.
【図1】本発明に係るビタビ復号化装置の一実施形態を
示すブロック図である。FIG. 1 is a block diagram showing an embodiment of a Viterbi decoding device according to the present invention.
【図2】図1のデータバッファおよびパスメトリックバ
ッファを示す構成図である。FIG. 2 is a configuration diagram showing a data buffer and a path metric buffer of FIG. 1;
【図3】本発明のブランチメトリック処理を示すフロー
チャートである。FIG. 3 is a flowchart showing a branch metric process of the present invention.
【図4】本発明のACS処理を示すフローチャートであ
る。FIG. 4 is a flowchart showing an ACS process of the present invention.
【図5】本発明のACS処理を示すフローチャートであ
る。FIG. 5 is a flowchart showing an ACS process of the present invention.
【図6】図1のデータバッファの動作を示す説明図であ
る。FIG. 6 is an explanatory diagram showing an operation of the data buffer of FIG. 1;
【図7】図1のデータバッファとパスメトリックバッフ
ァの遷移を示す説明図である。FIG. 7 is an explanatory diagram showing transition between the data buffer and the path metric buffer in FIG. 1;
【図8】本発明のトレースバック処理を示すフローチャ
ートである。FIG. 8 is a flowchart illustrating a traceback process according to the present invention.
【図9】畳み込み符号化装置を示すブロック図である。FIG. 9 is a block diagram illustrating a convolutional encoding device.
【図10】図9の装置の状態を示す説明図である。FIG. 10 is an explanatory diagram showing a state of the device in FIG. 9;
【図11】図9の装置の状態遷移を示す説明図である。FIG. 11 is an explanatory diagram showing a state transition of the device in FIG. 9;
【図12】図9の装置のトレリス線図を示す説明図であ
る。FIG. 12 is an explanatory diagram showing a trellis diagram of the apparatus shown in FIG. 9;
【図13】図9の装置の状態遷移の一例を示す説明図で
ある。13 is an explanatory diagram illustrating an example of a state transition of the device in FIG. 9;
【図14】従来のビタビ復号化装置を示すブロック図で
ある。FIG. 14 is a block diagram showing a conventional Viterbi decoding device.
【図15】図14のパスメモリを詳細に示すブロック図
である。FIG. 15 is a block diagram showing the path memory of FIG. 14 in detail;
【図16】トレースバック法による復号動作における状
態遷移を示す説明図である。FIG. 16 is an explanatory diagram showing a state transition in a decoding operation by the traceback method.
【図17】従来のACS処理を示すフローチャートであ
る。FIG. 17 is a flowchart showing a conventional ACS process.
【図18】従来のトレースバック処理を示すフローチャ
ートである。FIG. 18 is a flowchart showing a conventional trace-back process.
12 ブランチメトリック処理部 13 ACS処理部 14 トレースバック処理部 15 パスメモリ 16 セレクタ 17a,17b データバッファ 18a,18b パスメトリックバッファ 12 branch metric processing unit 13 ACS processing unit 14 traceback processing unit 15 path memory 16 selector 17a, 17b data buffer 18a, 18b path metric buffer
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H03M 13/00 Continuation of front page (58) Field surveyed (Int. Cl. 7 , DB name) H03M 13/00
Claims (6)
移可能な全てのパスについてブランチメトリックを計算
するブランチメトリック処理手段と、 前時刻までの最尤復号情報と現時刻までの最尤復号情報
をそれぞれ交互に記憶するための第一及び第二のデータ
バッファと、 前時刻までのパスメトリックと現時刻までのパスメトリ
ックをそれぞれ交互に記憶するための第一及び第二のパ
スメトリックバッファと、前記 ブランチメトリック処理手段により計算されたブラ
ンチメトリックと前記第一のパスメトリックバッファに
記憶された前時刻までのパスメトリックに基づいて、現
時刻の各状態における最も確からしいパスを推定して、
このパスに基づいて前記第一のデータバッファに記憶さ
れた前時刻までの最尤復号情報を並び替えて前記第二の
データバッファに書き込むとともに、前記第一のパスメ
トリックバッファに記憶されたパスメトリックを更新し
て前記第二のパスメトリックバッファに書き込む動作
と、前記ブランチメトリック処理手段により計算された
ブランチメトリックと前記第二のパスメトリックバッフ
ァに記憶された前時刻までのパスメトリックに基づい
て、現時刻の各状態における最も確からしいパスを推定
して、このパスに基づいて前記第二のデータバッファに
記憶された前時刻までの最尤復号情報を並び替えて前記
第一のデータバッファに書き込むとともに、前記第二の
パスメトリックバッファに記憶されたパスメトリックを
更新して前記第一のパスメトリックバッファに書き込む
動作とを、1単位時間毎に交互に繰り返すACS処理手
段と、 前記パスメトリックバッファに記憶された現時刻までの
パスメトリックと前記データバッファに記憶された現時
刻までの最尤復号情報に基づいて復号データを検索する
トレースバック処理手段と、 を有するビタビ復号化装置。1. A branch metric processing means for calculating branch metrics for all paths transitable in one unit time from a previous time to a current time, maximum likelihood decoding information up to the previous time and maximum likelihood decoding up to the current time First and second data buffers for alternately storing information, respectively; first and second path metric buffers for alternately storing path metrics up to the previous time and path metrics up to the current time, respectively. , based on the path metrics to said branch metric processing time before being <br/> stored in the calculated branch metric the first path metric buffer by means of the most likely path in each state at the current time Estimate,
Based on this path maximum likelihood decoding information rearranged by the second up to the time before stored in the first data buffer
Writes in the data buffer, the operation of the first path metric buffer to update the stored path metric is written in the second path metric buffer
And calculated by the branch metric processing means.
Branch metric and the second path metric buffer
Based on the path metric up to the previous time stored in the
To estimate the most likely path in each state at the current time
Then, based on this path, the second data buffer
By rearranging the stored maximum likelihood decoding information up to the previous time,
Write to the first data buffer and
The path metric stored in the path metric buffer
Update and write to the first path metric buffer
An ACS processing unit that alternately repeats the operation for each unit time , based on the path metric up to the current time stored in the path metric buffer and the maximum likelihood decoding information up to the current time stored in the data buffer. A Viterbi decoding device, comprising: traceback processing means for searching for decoded data.
として各パスの最尤復号データ候補が記憶されることを
特徴とする請求項1記載のビタビ復号化装置。2. The Viterbi decoding apparatus according to claim 1, wherein the data buffer stores a maximum likelihood decoded data candidate for each path as maximum likelihood decoding information.
として各パスの最尤状態遷移履歴が記憶されることを特
徴とする請求項1記載のビタビ復号化装置。3. The Viterbi decoding device according to claim 1, wherein the data buffer stores a maximum likelihood state transition history of each path as maximum likelihood decoding information.
移可能な全てのパスについてブランチメトリックを計算
するブランチメトリック処理ステップと、前記 ブランチメトリック処理ステップにより計算された
ブランチメトリックと第一のパスメトリックバッファに
記憶された前時刻までのパスメトリックに基づいて、現
時刻の各状態における最も確からしいパスを推定して、
このパスに基づいて第一のデータバッファに記憶された
前時刻までの最尤復号情報を並び替えて第二のデータバ
ッファに書き込むとともに、前記第一のパスメトリック
バッファに記憶されたパスメトリックを更新して第二の
パスメトリックバッファに書き込む動作と、前記ブラン
チメトリック処理ステップにより計算されたブランチメ
トリックと前記第二のパスメトリックバッファに記憶さ
れた前時刻までのパスメトリックに基づいて、現時刻の
各状態における最も確からしいパスを推定して、このパ
スに基づいて前記第二のデータバッファに記憶された前
時刻までの最尤復号情報を並び替えて前記第一のデータ
バッファに書き込むとともに、前記第二のパスメトリッ
クバッファに記憶されたパスメトリックを更新して前記
第一のパスメトリックバッファに書き込む動作とを、1
単位時間毎に交互に繰り返すACS処理ステップと、 前記パスメトリックバッファに記憶された現時刻までの
パスメトリックと前記データバッファに記憶された現時
刻までの最尤復号情報に基づいて復号データを検索する
トレースバック処理ステップと、 を有するビタビ復号化方法。4. A branch metric processing step for all possible paths transition from the previous time to one unit time until the current time to calculate the branch metric, the branch metric processing branch metric calculated by the step and the first pass based on the path metrics to the time before that is <br/> stored in metric buffer, estimates the most likely path in each state at the current time,
Second data bus rearranges maximum likelihood decoding information before time stored in the first data buffer on the basis of this path
Writes the Ffa, second updating said first path metric <br/> buffer path metrics stored in §
The operation of writing to the path metric buffer ,
Branch menu calculated by the
Tricks and stored in the second path metric buffer
Based on the path metric up to the previous time
By estimating the most probable path in each state,
Before being stored in the second data buffer based on the
The first data is sorted by rearranging the maximum likelihood decoding information up to the time.
Write to the buffer and
Update the path metric stored in the
The operation of writing to the first path metric buffer
An ACS processing step that repeats alternately every unit time; and searching for decoded data based on the path metric up to the current time stored in the path metric buffer and the maximum likelihood decoding information up to the current time stored in the data buffer. A traceback processing step, and a Viterbi decoding method comprising:
として各パスの最尤復号データ候補が記憶されることを
特徴とする請求項4記載のビタビ復号化方法。5. The Viterbi decoding method according to claim 4, wherein the data buffer stores maximum likelihood decoded data candidates of each path as maximum likelihood decoding information.
として各パスの最尤状態遷移履歴が記憶されることを特
徴とする請求項4記載のビタビ復号化方法。6. The Viterbi decoding method according to claim 4, wherein the data buffer stores a maximum likelihood state transition history of each path as maximum likelihood decoding information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36663098A JP3260714B2 (en) | 1998-12-24 | 1998-12-24 | Viterbi decoding device and Viterbi decoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36663098A JP3260714B2 (en) | 1998-12-24 | 1998-12-24 | Viterbi decoding device and Viterbi decoding method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000196468A JP2000196468A (en) | 2000-07-14 |
JP3260714B2 true JP3260714B2 (en) | 2002-02-25 |
Family
ID=18487260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36663098A Expired - Fee Related JP3260714B2 (en) | 1998-12-24 | 1998-12-24 | Viterbi decoding device and Viterbi decoding method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3260714B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100742341B1 (en) | 2000-11-10 | 2007-07-25 | 삼성전자주식회사 | Apparatus for decoding data of unknown frame length and control method thereof |
KR100431162B1 (en) * | 2002-06-29 | 2004-05-12 | 피앤피네트워크 주식회사 | coderate detection circuit |
KR100653233B1 (en) | 2005-12-09 | 2006-12-05 | 한국전자통신연구원 | Viterbi Decoder |
-
1998
- 1998-12-24 JP JP36663098A patent/JP3260714B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000196468A (en) | 2000-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3515720B2 (en) | Viterbi decoder | |
US4614933A (en) | Viterbi decoder with the pipeline processing function | |
JPH05327524A (en) | Addition/comparison/selection array for bit-serial viterbi decoder | |
JPH088762A (en) | Viterbi decoding method and viterbi decoding circuit | |
EP2339757B1 (en) | Power-reduced preliminary decoded bits in viterbi decoder | |
JP3266182B2 (en) | Viterbi decoder | |
US6601215B1 (en) | Traceback buffer management for VLSI Viterbi decoders | |
JP3260714B2 (en) | Viterbi decoding device and Viterbi decoding method | |
US20010044921A1 (en) | Viterbi decoder with high speed processing function | |
US5878060A (en) | Viterbi decoding apparatus and viterbe decoding method | |
CN100413217C (en) | A kind of Viterbi decoder and its addition ratio selection unit circuit for Viterbi decoder | |
JPH0951278A (en) | Viterbi decoder | |
JP4047697B2 (en) | Viterbi decoder | |
JP4580927B2 (en) | Viterbi decoding apparatus and Viterbi decoding method | |
CN105589082A (en) | Viterbi decoding device and method of Beidou navigation system | |
US6904105B1 (en) | Method and implemention of a traceback-free parallel viterbi decoder | |
JP3235333B2 (en) | Viterbi decoding method and Viterbi decoding device | |
JPH07245567A (en) | Viterbi decoding arithmetic unit | |
JP3288328B2 (en) | Apparatus and method for speeding up traceback processing of Viterbi decoder | |
JP3343217B2 (en) | Viterbi comparison / selection operation for 2-bit traceback coding | |
KR100195004B1 (en) | Add / Compare / Select Array of Bit-Serial Viterbi Decoder | |
KR19990076528A (en) | Apparatus and Method for Addition Comparison Selection for Viterbi Algorithm Processing | |
JPH0361375B2 (en) | ||
JP2001024526A (en) | Viterbi decoder | |
JP2001186026A (en) | Viterbi decoder and viterbi decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20011127 |
|
LAPS | Cancellation because of no payment of annual fees |