KR0135796B1 - 비터비복호기에서 트레이스백 수행장치 - Google Patents
비터비복호기에서 트레이스백 수행장치Info
- Publication number
- KR0135796B1 KR0135796B1 KR1019940029806A KR19940029806A KR0135796B1 KR 0135796 B1 KR0135796 B1 KR 0135796B1 KR 1019940029806 A KR1019940029806 A KR 1019940029806A KR 19940029806 A KR19940029806 A KR 19940029806A KR 0135796 B1 KR0135796 B1 KR 0135796B1
- Authority
- KR
- South Korea
- Prior art keywords
- output
- state
- storage means
- input
- later
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3961—Arrangements of methods for branch or transition metric calculation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
- H03M13/4169—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 비터비복호기에서 트레이스백 수행장치를 공개한다. 그 장치는 에러정정을 위해 비트스트림을 입력받아 분기메트릭값들을 계산하고, 이 값들과 대응되는 현재의 경로 메트릭스값들로부터 새로운 경로메트릭값들을 계산하여, 새로운 경로 메트릭값중 최소경로메트릭값을 계산하여 저장 후, 가산비교선택부의 비교결정값을 이용하여 생존경로를 탐색후 저장해 복호된 비트를 찾아내는 트레이스백수단과, VLSI로된 비터비복호기에 있어서, 트레이스백수단은 최소경로값인 데이타들중 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는(LIFO) 제1저장수단과, 이 출력과 최적상태검출수단의 출력을 입력하여 다음 상태인 제1상태를 발생하는 제1트레이스논리수단과, 제1저장수단의 출력해서 먼저 입력된 것은 먼저, 나중에 입력된 것은 나중에 출력되도록 저장하는(FIFO) 제2저장수단과, 이 출력과 제1상태를 출력을 입력하여 FIFO인 제3저장수단과, 이 출력과 제2상태를 입력하여 제3상태를 발생하는 제3트레이스논리수단과, 복호된 비트를 찾아내기 위하여 제3상태를 입력하여 LIFO인 제4저장수단을 구비하는 것을 특징으로 하고, 메모리를 위한 주소발생이 간단하고, 전체 상호연결이 존재하지 않기 때문에 전체적으로 칩면적을 줄여 비용이 감소하며 구현이 쉬운 효과가 있다.
Description
제 1 도는 일반적인 비터비복호기의 메인 블럭도이다.
제 2 도는 저속 비터비복호기에서 역추적수행과정을 설명하기 위한 저장동작의 진행을 나타내는 도면이다.
제 3 도는 고속비터비 복호기에서 역추적수행과정을 설명하기 위한 저장동작의 진행을 나타내는 도면이다.
제 4 도는 제3도에 도시된 고속 비터비복호기의 메모리동작그룹과 메모리뱅크의 크기를 반으로 줄였을 때(L/2), 역추적수행과정을 설명하기 위한 저장동작의 진행을 나타내는 도면이다.
제 5 도는 제 4도에 도시된 역추적을 수행하는 역추적부의 세부적인 블럭도이다.
제 6 도는 제 5도에 도시된 메모리뱅크들의 주소를 지정해주는 방법을 설명하기 위한 도면이다.
제 7 도는 메모리 동작그룹의 크기가 L인 경우에, 본 발명에 의한 역추적부의 세부적인 블럭도이다.
제 8 도는 메모리 동작그룹의 크기가 L/2인 경우에, 본 발명에 의한 역추적부의 세부적인 블럭도이다.
제 9 도는 클럭의 위상이 두개인 경우, 후입력선출력 및 선입력선출력의 주소발생을 설명하기 위한 도면이다.
제 10 도는 클럭의 위상이 한개인 경우, 후입력선출력 및 선입력선출력의 주소발생을 설명하기 위한 도면이다.
본 발명은 영상신호 압축에 의하여 고속으로 신호를 전송시에 에러를 정정하는 전방 에러정정(FEC:Forward Error Correct 이하 FEC라 한다)복호기의 중요한 부분인 비터비(Viterbi)복호기에 관한 것으로 특히 초대규모 집적회로화 된 고속의 비터비복호기의 역추적(Traceback)부에서 메모리를 관리하는 장치에 관한 것이다.
일반적으로 길쌈 부호(convolutional code)는 그 구조상 부호 및 복호법에 있어서, 블럭 부호(block codes)와는 현저한 차이가 있으며, 다소 복잡한 구조를 가지나 오류 정정 능력은 매우 우수하다. 이러한 길쌈 부호의 복호법중 비터비복호기는 부호장과 더불어 지수함수적으로 하드웨어의 복잡도가 증가함에도 불구하고 산발 에러 정정에 매우 효율적인 것으로 알려져 널리 이용되고 있다.
최근의 영상신호 압축기술의 발달은 좁은 대역에 다량의 영상신호를 전송하는 것을 가능하게 하였다. 이에 따라 그전보다 더 중요하게 된 것중 하나가 전방에러정정인데 이는 송신측에서 신호에 용장부호(Redundancy)를 넣어서 채널에 에러가 도입되었을때 수신단측에서 에러를 정정하게 하는 기술이다. 압축된 신호의 작은 에러가 압축을 복원시킬 때 무시할 수 없는 에러로 발전할 수 있기 때문에 압축 신호를 전송할때 아주 낮은 비트 에러율이 요구된다. 이를 위해 사용하는 전방에러정정복호기의 중요한 부분중 하나가 비터비복호기이며, 비터비복호기에서 디코딩하는 비트수인 구속장(Constraint Length)이 클 경우, 비터비복호기를 초대규모 집적회로(VLSI: Very Large Scale Integrated circuit)로 구현할 때 칩영역의 대부분을 역추적부가 차지하게 되어 역추적부에서 메모리를 어떻게 관리하는가 하는 것은 비터비복호기를 실리콘 위에 구현하는데 가장 중요한 요소들 중 하나가 된다.
종래의 역추적부(Traceback Unit)는 메모리뱅크를 위한 주소발생과정이 매우 복잡하고, 초대규모 집적회로로 구현하는데 적합하지 않은 총체적연결(Global Interconnection)이 존재하는 문제점이 있으며, 이러한 문제는 특히 메모리뱅크가 메모리양과 복호지연을 줄이기 위해 여러개로 쪼개어졌을때 더욱 심각해진다. 만일 잉여의 메모리뱅크를 더 추가한다면 주소발생과정이 약간 간단해진다. 그러나 메모리크기의 증가에도 불구하고 단순한 주소발생과정을 얻기란 쉽지 않다.
본 발명의 목적은 상기와 같은 종래의 문제점을 해결하기 위하여 총체적연결이 없으면서도 메모리주소 발생방법이 간단하고, 초대규모 집적회로로 구현하기에 적합한 비터비복호기를 제공하는데 있다.
상기 목적을 달성하기 위하여 본 발명에 의한 비터비복호기는 비트스트림의 에러를 정정하기 위하여 상기 비트스트림을 입력받아 분기 메트릭값들을 계산하는 분기 메트릭수단과, 상기 분기 메트릭값들과 대응되는 현재의 경로 메트릭값들로부터 새로운 경로 메트릭값들을 계산하는 가산비교선택수단과, 상기 새로운 경로 메트릭값중 최소 경로 메트릭값을 계산하고 이를 일시 저장하는 최소경로메트릭수단과, 상기 가산비교선택수단의 비교결정을 저장하고, 생존 경로를 탐색하여 복호된 비트를 찾아내는 트레이스백수단으로 구성되고, 일정한 주기마다 현재의 상태값을 발생하는 최적상태검출수단을 포함하는 구속장이 K이고, 트레이스 깊이가 L인 초대규모 집적화된 비터비 디코더에 있어서, 상기 트레이스백 수단은 상기 가산비교선택수단의 비교결정값인 데이타들중 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제1저장수단과, 상기 제1저장수단의 출력과 상기 최소경로메트릭수단의 출력을 입력하여 트레이스할 다음 상태인 제1상태를 발생하는 제1트레이스논리수단과, 상기 제1저장수단의 출력을 입력하여 먼저 입력된 것은 먼저 출력되고, 나중에 입력된 것은 나중에 출력되도록 저장하는 제2저장수단과, 상기 제2저장수단의 출력과 상기 제1상태를 입력받아 트레이스할 다음 상태인 제2상태를 발생하는 제2트레이스논리수단과, 상기 제2저장수단의 출력을 입력하여 먼저 입력된 것은 먼저 출력되고, 나중에 입력한 것은 나중에 출력되도록 저장하는 제3저장수단과, 상기 제3저장수단과 상기 제2상태를 입력하여 트레이스할 다음 상태인 제3상태를 발생하는 제3트레이스논리수단과, 복호된 비트를 찾아내기 위하여 상기 제3상태를 입력하여 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제4저장수단을 구비하는 것을 특징으로 한다.
이하 도면을 참조하여 본 발명에 대해 살펴본다.
본 발명의 설명에 앞서 종래의 비터비복호기에서 역추적부의 구성과 동작을 상세히 도면을 참조하여 다음과 같이 상세히 설명한다.
본 발명에 따른 비터비복호기에서 역추적부의 구성과 세부적인 동작을 종래의 역추적부를 참조하여 다음과 같이 상세히 설명한다.
제1도는 역추적부를 설명하기 위한 일반적인 비터비복호기의 메인 블럭도로서, 분기 메트릭부(BM:Branch Metric unit)(202), 가산-비교-선택부(Add-Compare-Select Unit)(204), 최소경로 메트릭부(Minimum Path Metric Unit)(206) 및 역추적부(TraceBack Unit)(208)로 구성된다.
상기 구성을 통해 비터비복호기의 동작을 구속장이 K일 경우, 도면 제1도를 참조하여 다음과 같이 상세히 설명한다.
분기메트릭부(202)는 디지탈복조기에서 소프트디시전된 비트들의 쌍 J1과 J2를 입력하여 아래 네가지의 분기 메트릭을 계산하여야 한다.
BMo(t), BM1(t), BM2(t), BM3(t)
분기 메트릭의 계산은 아래와 같이 나타내어진다. 부호화된 비트의 쌍이 00, 01, 10, 11인 각 경우의 분기 메트릭은 다음 (식 1)과 같다.
따라서, 분기 메트릭사이의 관계는 다음 (식 2)와 같이 주어질 수 있다.
00 : BMo(t) = (2s- 1 - J2) + (2s- 1 - J1)
01 : BM1(t) = (2s- 1 - J2) + J1
10 : BM2(t) = J2+ (2s- 1 - J1)
11 : BM3(t) = J2 + J1 ------------------ (식 1)
BM3(t) = 2s+1- 2 - BMo(t)
BM2(t) = 2s+1- 2 - BM1(t) ------------ (식 2)
분기 메트릭의 계산이 완료되어 가산비교선택부(204)는 네개의 분기 메트릭과 현재의 경로 메트릭을 이용하여 새로운 경로 메트릭을 계산한다. 그런데, 경로 메트릭의 갯수는 구속장 또는 길쌈 부호의 메모리수(이하 M이라 한다)에 의해서 다음 (식 3)과 같이 결정된다.
경로 메트릭의 수 = 2k-1= 2M------------ (식 3)
경로 메트릭값의 계산이 완료되면 최소경로메트릭부(206)는 계산된 경로 메트릭값을 입력후 최소 경로 메트릭값을 계산하여 송신측에서 보냈을 확률이 가장 높은 경로를 구하여 이를 일시 저장하며, 역추적부(208)는 가산비교선택부(204)의 출력과 최소경로메트릭부(206)의 출력을 입력받아 생존 경로(survival) 를 탐색하여 저장하고 역추적에 의해서 복호된 비트를 찾아내는 역할을 담당하며, 그 복호기를 초대규모 집적회로로 구현할 때 비용을 결정적인 작용을 하는 것은 역추적부(208)이다.
상술한 제1도를 참조하여 역추적부(208)에서 이루어지는 역추적 수행과정을 다음과 같이 설명한다.
먼저 최소경로메트릭부(206)는 가산비교선택부(204)에서 만들어진 2k-1비트 데이타를 받아 최소경로 메트릭값을 계산하여 메모리에 저장하고, 역추적부(208)는 만일 메모리 크기에 제한이 없다면 최소경로메트릭부(206)에 저장된 모든 데이타를 다 받은 후 최상 상태 검사부(BEST STATE DETECTION UNIT)에서 공급된 상태주소와 저장된 데이타를 이용하여 복호화한다. 다행히도 모든 데이타를 다 받은 뒤 역추적을 할 필요는 없으며 일정 숫자(역추적 깊이)이상의 데이타를 받은 뒤 역추적을 하면 거의 결과의 차이가 없다는 것이 알려져 있다.
결국 역추적부(208)는 주로 데이타를 메모리에 쓰고 읽는 작용을 하며, 본 발명은 50Mbps이상의 고속으로 동작하는 비터비복호부에서 역추적부(208)의 메모리 관리에 관한 것으로 본 발명을 쉽게 설명하기 위하여 다음과 같은 몇가지 가정을 세웠다.
가정1 : 비터비복호기가 한 클럭당 한 개의 출력을 내보낸다.
가정2 : 한 클럭동안 한 개의 메모리에서 한번의 읽기와 한번의 쓰기만을 할 수 있다.
가정3 : 램(RAM:Read Access Memory)의 입력 대역폭과 출력 대역폭이 같다.
제2도는 저속 비터비복호기에서 역추적수행과정을 설명하기 위한 저장동작의 진행을 나타내는 도면으로서, 빗금친 부분은 데이타가 저장되어 있는 영역을 나타내고, 제2도에 도시된 각 메모리얼(400, 402, 404, 406, 408 및 410)의 횡축은 시간(T)을, 종축은 구속장이 K일 경우 2k-1의 상태(S)를, 그리고 화살표는 메모리에 데이타가 저장되는 방향을 나타내고, 역추적수행과정은 참조부호 400에서 410으로 진행되며, 참조부호 400은 한번쓰기, 402는 한번 역추적, 404는 한번복호, 406은 한번쓰기, 408은 한번역추적, 410은 한번복호를 각각 나타낸다.
상기와 같은 가정으로 저속 비터비복호기에서 역추적부(208)의 역추적 수행과정과 방법을 도면 제2도를 참조하여 상세히 설명한다.
설명하기에 앞서 역추적깊이가 L인 저속비터비복호기에서 역추적 수행과정을 위한 기본적인 동작은 다음과 같다고 한다.
동작1:쓰기 --- - 최소경로메트릭부(206)에서 온 데이타를 메모리에 쓰는 동작이다.
동작2:역추적 - 메모리로부터 데이타를 읽은 다음 이것과 현재의 상태주소로부터 다음의 상태주소를 만들어내는 동작으로 최초의 상태주소는 외부에서 주어진다.
동작3:복호 ---- 복호된 출력결과를 내보낸다는 것 외에는 역추적과 동일한 동작이다.
최소경로메트릭부(204)로부터 온 데이타를 저장하기 위해 쓰기동작이 행해진 다음(제2도의 400) L개의 저장된 데이타와 외부로부터 주어진 상태주소를 이용하여 L개의 역추적을 실행한다(402). 가장 오래된 데이타를 이용하여 복호해서 복호된 결과를 얻은(404) 후 저장된 데이타는 메모리에서 지워진다.
참조부호 406, 408 및 410은 이와 같은 동작의 반복을 나타낸다.
제3도는 고속비터비복호기에서 역추적수행과정을 설명하기 위한 저장동작의 진행을 나타내는 도면으로 각 열의 횡축은 시간(T)을, 종축은 상태(S)를, 화살표는 동작이 수행되는 방향을, 참조부호 606은 L의 시간을 각각 나타내며, 각 메모리뱅크는 L개의 워드를 가지는 여러개의 메모리뱅크로 구성된다.(1워드는 2k-1비트로 이루어진다)
상술한 제3도를 참조하여 종래의 고속비터비복호기에서 역추적 수행과정을 다음과 같이 설명한다.
제2도에 도시한 저속 비터비복호기에 역추적수행과정은 하나의 출력을 위해 너무 많은 메모리 동작을 하기 때문에 한 클럭마다 한개의 출력을 내보낼 수 없다. 고속 비터비 복호기는 제3도에 도시된 바와 같이 메모리의 동작을 줄이기 위해서 L개의 동작이 그룹을 형성하여 역추적처리(L개의 역추적)를 한 블럭의 출력(L개의 출력)에 대해 한번씩 하게 한다. 제3도에 도시된 참조부호 600에서 먼저 L개의 쓰기를 하고(608) L개의 역추적을 한뒤(610) L개의 복호를 한다.(612) 이렇게 되면 L개의 출력에 대해 L개의 쓰기, L개의 역추적 및 L개의 복호를 함으로써, 평균적으로 한개의 출력에 대해 1개의 쓰기, 1개의 역추적 및 1개의 복호를 하게 된다. 참조부호 602 및 604는 후속하는 클럭들에서 한 클럭당 한개의 추력을 내보내기 위해 쓰기, 역추적 및 복호들이 동시에 행해짐을 보인다.
제4도는 제3도에 도시된 메모리동작그룹의 크기와 메모리뱅크의 크기를 L/2로 했을때, 고속비터비복호기에서 역추적수행과정을 설명하기 위한 저장동작의 진행을 나타내는 도면이다.
상술한 제4도를 참조하여 메모리뱅크의 크기를 줄일 경우, 메모리요구와 복호지연을 다음과 같이 설명한다.
제3도에 도시된 역추적 수행과정은 3개의 메모리뱅크를 가지고 구현될 수 있다. 쓰기와 복호가 같은 메모리뱅크를 공유할 수 있기 때문이다. 메모리요구는 3L워드이고, 복호지연(Decoding Delay)은 후입력선출력버퍼를 포함하여 4L이다. 메모리요구와 복호지연은 메모리동작그룹의 크기를 작게함으로서 줄일 수 있다. 메모리동작그룹의 크기를 줄이면 메모리동작의 수는 증가하지만 이는 메모리뱅크의 수는 많게하고 크기는 작게하여 병렬을 증가시킴으로서 같은 속도를 유지하게 된다. 메모리뱅크의 크기가 줄어들었을 경우, 2개의 역추적지시기(역추적에 의한 메모리 엑세스시에 엑세스할 메모리의 주소를 지시하는 곳(TraceBack Pointer)가 있어 병렬이 증가되고 늘어난 메모리동작을 보상해 준다.
메모리요구는 5L/2이고 복호지연은 3L이다. 메모리뱅크의 크기가 L/n일 경우 메모리요구는 (2n+1)L/n이고 복호지연은 2(n+1)L/n이다. n이 증가함에 따라 메모리요구와 복호지연이 줄어들지만 메모리가 잘게 쪼개짐에 따라 하드웨어의 구현시 간접비용이 증가한다.
제5도는 제1도에 도시된 역추적을 수행하는 종래의 역추적부(208)의 세부적인 불럭도로서, 메모리뱅크(Bank)0(1000), 메모리뱅크1(1002), 메모리뱅크2(1004), 메모리뱅크3(1006), 메모리뱅크4(1008), 역추적논리1(Trace Logic)(1010), 역추적논리2(1012), 역추적논리3(1014) 및 후입력 선출력(LIFO)(1016)으로 구성된다.
제6도는 제5도에 도시된 메모리뱅크들의 주소를 지정해주는 방법을 설명하기 위한 도면으로, 종축은 시간(T)를, 횡축은 상태(S)를 나타내고, 각 열은 5개의 메모리 뱅크들로 구성되며, D W는 복호 및 쓰기를 TB는 역추적동작을 나타낸다.
상술한 제5 및 6도를 참조하여 역추적수행을 하는 저속, 고속 및 변환된 고속비터비복호기들을 초대규모 집적회로로 구현할때 문제점을 다음과 같이 설명한다.
제1도에 도시된 가산비교선택부(204)로부터 2k-1비트의 정보가 제5도에 도시된 입력단자 INI를 통해 모든 메모리뱅크에 순차적으로 들어가야 하기 때문에 버스가 모든 메모리뱅크를 연결해야 한다. K=7일 경우 64비트버스가 칩의 여러부분을 돌아다녀야 하는 문제점이 있다.
역추적논리1(1010) 및 역추적논리2(1012)는 역추적을 수행하는 논리이고, 역추적논리3(1014)은 복호를 하기 위한 논리이다. 후입력선출력(1016)이 역추적논리3(1014) 출력의 순서를 뒤집어서 바로해 준 뒤에 OUT로 복호된 정보비트가 출력된다.
제5도에 도시된 5개의 메모리뱅크에 데이타를 읽고, 쓰기 위해서 메모리 뱅크를 지정해 주어야하며, 이들 메모리 뱅크를 지정해 주는 방법을 도면 제6도를 참조하여 다음과 같이 설명한다.
제6도의각 열(1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216 및 1218)은 다섯개의 메모리 뱅크에서 주소가 어떻게 바뀌는가를 보여준다. 첫 열(1200)의 경우 첫번째 메모리 뱅크(1220)에서 복호와 쓰기가 왼쪽에서 오른쪽으로 실행된다.
세번째(1222)와 다섯번째(1224)메모리 뱅크에는 역추적이 왼쪽에서부터 오른쪽으로 실행된다. 그러나 두번째와 네번째 메모리 뱅크에서는 아무런 일도 일어나지 않는다. 첫번째 열(1200)을 실행하는데 L/2만큼의 클럭시간이 필요하다. 두번째 열(1202)은 다음 L/2클럭동안의 주소변환을 나타낸다. 이 경우 첫번째 메모리뱅크(1226)에서는 역추적이 오른쪽에서 왼쪽으로 실행된다. 즉, 주소가 한 클럭마다 하나씩 감소한다. 두번째 메모리뱅크(1228)에서는 복호와 쓰기가, 네번째 메모리뱅크(1230)에서는 역추적이, 세번째와 다섯번째 메모리 뱅크에서는 동작이 멈춰 있게 된다. 이런식으로 주소를 발생시키는 주기는 5L이며, 제6도는 한 주기동안의 주소발생을 보여준다. 각 메모리 뱅크는 시간에 따라 여러가지 다른 동작을 해야하며 이러한 메모리 주소를 발생시키는 것은 간단치 않다. 이와 더불어 제5도에 후입력선출력이 있으므로 이를 위한 주소를 또한 발생시켜 주어야 한다.
메모리주소발생과정이 복잡하고 총체적연결이 존재하는 이유는 각 메모리뱅크의 역할이 계속 변하기 때문이다. 따라서, 본 발명에 따른 역추적수행장치는 메모리뱅크의 역할이 고정되어 있고 데이타가 메모리뱅크를 따라 이동하게 된다는 점에서 기존의 역추적수행장치와 차이가 있다.
상기와 같은 종래의 문제점을 해결하기 위하여 본 발명에 따른 비터비복호기의 역추적부의 구성과 동작을 도면을 참조하여 다음과 같이 상세히 설명한다.
제7도는 메모리 동작그룹의 크기가 L인 경우에, 본 발명에 의한 역추적부의 세부적인 블럭도로서, 후입력선출럭1(1400), 트레이스논리1(1402), 선입력선출력(1404), 트레이스논리2(1406) 및 후입력선출력2(1408)으로 구성된다.
제8도는 메모리 동작그룹의 크기가 L/2인 경우에, 본 발명에 의한 역추적부의 세부적인 블럭도로서, 제1저장부(1600), 제1트레이스논리부(1602), 제2저장부(1604), 제2트레이스논리부(1606), 제3저장부(1608), 제3트레이스논리부(1610) 및 제4저장부(1612)로 구성된다.
제7 및 8도에서 선입력선출력과 후입력선출력은 듀얼-포트 램을 사용하였음을 가정하고, 이 경우 가정한 바와 같이 한 클럭에서 한개의 읽기와 한 개의 쓰기를 동시에 하는 것이 가능하다.
먼저 메모리 동작그룹의 크기가 L인 경우, 상기 구성을 통한 역추적부의 동작을 도면 제7도를 참조하여 다음과 같이 설명한다.
제1도에 도시된 가산비교선택부(204)에서 발생된 데이타는 제7도에 도시된 후입력선출력1(1400)에 INI을 통해 입력되어 순서가 뒤집어진 다음에 선입력선출력(1404)과 트레이스논리1(1402)로 출력되고, 트레이스논리1(1402)은 IN2로부터 현재 상태 및 후입력선출력1(1400)의 출력을 입력하여 역추적동작을 수행 후 제1상태를 발생한다. 선입력선출력(1404)는 후입력선출력1(1400)의 출력을 입력하여 복호화 한 다음 그 출력을 트레이스논리2(1506)에 제공한다. 트레이스논리2(1406)는 선입력선출력(1404)의 출력과 트레이스논리1(1402)의 출력을 입력하여 제2상태를 출력하고, 후입력선출력2(1408)는 제2상태를 입력하여 하나의 버스선을 통해 OUT로 에러가 정정된 정보비트를 발생한다.
메모리 동작그룹의 크기가 L/2이고, 구속장이 K 인 경우, 가산비교선택부(204)에서 온 2k-1비트 정보는 제1저장부(1600)에 저장되며, 후입력선출력 동작을 하는 메모리로 구현될 수 있는 제1저장부(1600)에 의해 순서가 뒤집어진 정보는 다음의 선입력선출력 동작을 하는 메모리로 구현될 수 있는 제2저장부(1604)로 들어가는 동시에
제1트레이스노리부(1602)로 입력된다. 제1트레이스논리부(1602)는 일정한 주기마다 최상상태검출부(BSDU: Best State Dectection Unit)로부터 IN2를 통해 받은 현재의 상태값과 제1저장부(1600)로부터 나온 데이타를 이용하여 다음의 상태를 계산하는 작용을 한다.
여기서, 제1 및 2트레이스논리부(1602 및 1606)의 입력과 출력 및 제3트레이스논리부(1610)의 입력은 K-1비트이다. 제2저장부(1604)의 출력은 선입력선출력 동작을 하는 메모리로 구현될 수 있는 제3저장부(1608)로 들어가며 이와 동시에 제2트레이스논리부(1606)는 역추적동작을 하게 된다. 제3트레이스논리부(1610)는 제3저장부(1608)와 제2트레이스논리부(1610)의 출력을 입력하여 제3상태를 출력한다.
제3트레이스논리부(1610)의 출력을 입력하여 제3상태를 출력한다.
제3트레이스논리부(1610)의 출력을 입력하여 후입력선출력 동작을 하는 메모리로 구현될 수 있는 제4저장부(1612)는 입력한 비트들의 순서를 바로잡아 복호를 완성하게 된다. 제4저장부(1612)는 L/2 + 1개의 1비트정보를 가지는 램으로 구성된다.
제9도는 클럭의 위상이 두개인 경우, 후입력선출력 및 선입력선출력의 주소발생을 설명하기 위한 도면이다.
제10도는 클럭의 위상이 한개인 경우, 후입력선출력 및 선입력선출력의 주소발생을 설명하기 위한 도면이다.
제9 및 10도에 도시된 바와 같이 선입력선출력 및 후입력선출력의 주소발생은 매우 간단하다. 선입력선출력의 경우 단지 계수기의 값이 모듈로 개념(최대 숫자의 다음은 0)을 가지면서 계속 증가하면 된다. 후입력선출력의 경우에는 계수기의 값이 증가하면서 최대값에 이르면 감소하기 시작하고 감소하다 최소값에 이르면 증가하면 된다.
본 발명에 따른 역추적부는 종래의 역추적부와 같은 양의 메모리를 쓰며 같은 트레이스논리를 필요로 하지만 메모리를 위한 주소발생이 간단하고, 전체 상호연결이 존재하지 않으므로 전체적으로 칩의 면적을 줄여 초대규모 집적회로로 비터비복호기를 구현할 때 비용이 감소하고, 또한 구현이 간단하며 쉬운 효과가 있다.
Claims (2)
- 비트스트림의 에러를 정정하기 위하여 상기 비트스트림을 입력받아 분기 메트릭값들을 계산하는 분기 메트릭수단과, 상기 분기 메트릭값들과 대응되는 현재의 경로 메트릭값들로부터 새로운 경로 메트릭값들을 계산하는 가산비교선택수단과, 상기 새로운 경로 메트릭값중 최소 경로 메트릭값을 계산하고 이를 일시 저장하는 최소경로메트릭수단과, 상기 가산비교선택수단의 비교결정을 저장하고, 생존 경로를 탐색하여 복호된 비트를 찾아내는 트레이스백수단으로 구성되고, 일정한 주기마다 현재의 상태값을 발생하는 최적상태검출수단을 포함하는 구속장이 K이고, 메모리 동작그룹의 크기가 L인 초대규모 집적화된 비터비 디코더에 있어서, 상기 트레이스백 수단은 상기 가산비교선택수단의 상기 비교결정값인 데이타들중 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제1저장수단; 상기 제1저장수단의 출력과 상기 최소경로메트릭수단의 출력을 입력하여 트레이스할 다음 상태인 제1상태를 발생하는 제1트레이스논리수단; 상기 제1저장수단의 출력을 입력하여 먼저 입력된 것은 먼저 출력되고, 나중에 입력된 것은 나중에 출력되도록 저장하는 제2저장수단; 상기 제2저장수단의 출력과 상기 제1상태를 입력받아 트레이스할 다음 상태인 제2상태를 발생하는 제2트레이스논리수단; 복호된 비트를 찾아내기 위하여 상기 제2상태를 입력하여 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제3저장수단을 구비하는 것을 특징으로 하는 비터비복호기에서 트레이스백수행장치.
- 비트스트림의 에러를 정정하기 위하여 상기 비트스트림을 입력받아 분기 메트릭값들을 계산하는 분기 메트릭수단과, 상기 분기 메트릭값들과 대응되는 현재의 경로 메트릭값들로부터 새로운 경로 메트릭값들을 계산하는 가산비교선택수단과, 상기 새로운 경로 메트릭값중 최소 경로 메트릭값들을 계산하고 이를 일시 저장하는 최소경로메트릭수단과, 상기 가산비교선택수단의 비교결정을 저장하고, 생존 경로를 탐색하여 복호된 비트를 찾아내는 트레이스백수단으로 구성되고, 일정한 주기마다 현재의 상태값을 발생하는 최적상태검출수단을 포함하는 구속장이 K이고, 메모리 동작그룹의 크기가 L/2인 초대규모 집적화된 비터비 디코더에 있어서, 상기 트레이스백 수단은 상기 가산비교선택수단의 상기 비교결정값인 데이타들중 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제1저장수단; 상기 제1저장수단의 출력과 상기 최소경로메트릭수단의 출력을 입력하여 트레이스할 다음 상태인 제1상태를 발생하는 제1트레이스논리수단; 상기 제1저장수단의 출력을 입력하여 먼저 입력된 것은 먼저 출력되고, 나중에 입력된 것은 나중에 출력되도록 저장하는 제2저장수단; 상기 제2저장수단의 출력과 상기 제1상태를 입력받아 트레이스할 다음 상태인 제2상태를 발생하는 제2트레이스논리수단; 상기 제2저장수단의 출력을 입력하여 먼저 입력된 것은 먼저 출력되고, 나중에 입력된 것은 나중에 출력되도록 저장하는 제3저장수단; 상기 제3저장수단과 상기 제2상태를 입력받아 트레이스할 다음 상태인 제3상태를 발생하는 제3트레이스논리수단; 복호된 비트를 찾아내기 위하여 상기 제3상태를 입력하여 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제4저장수단을 구비하는 것을 특징으로 하는 비터비복호기에서 트레이스백수행장치.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940029806A KR0135796B1 (ko) | 1994-11-14 | 1994-11-14 | 비터비복호기에서 트레이스백 수행장치 |
TW84111854A TW278287B (ko) | 1994-11-14 | 1995-11-08 | |
DE1995142131 DE19542131B4 (de) | 1994-11-14 | 1995-11-11 | Viterbi-Decoder |
SG1995001817A SG50369A1 (en) | 1994-11-14 | 1995-11-13 | Traceback-performing apparatus in viterbi decoder |
JP29582795A JP3293731B2 (ja) | 1994-11-14 | 1995-11-14 | ビタビ復号器におけるトレースバック遂行装置 |
US08/557,539 US5712880A (en) | 1994-11-14 | 1995-11-14 | Traceback-performing apparatus in viterbi decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940029806A KR0135796B1 (ko) | 1994-11-14 | 1994-11-14 | 비터비복호기에서 트레이스백 수행장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960020492A KR960020492A (ko) | 1996-06-17 |
KR0135796B1 true KR0135796B1 (ko) | 1998-04-27 |
Family
ID=19397847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940029806A KR0135796B1 (ko) | 1994-11-14 | 1994-11-14 | 비터비복호기에서 트레이스백 수행장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5712880A (ko) |
JP (1) | JP3293731B2 (ko) |
KR (1) | KR0135796B1 (ko) |
DE (1) | DE19542131B4 (ko) |
SG (1) | SG50369A1 (ko) |
TW (1) | TW278287B (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2996615B2 (ja) * | 1996-01-08 | 2000-01-11 | 松下電器産業株式会社 | ビタビ復号装置及びその方法 |
KR100212836B1 (ko) * | 1996-06-14 | 1999-08-02 | 전주범 | 비터비 디코더의 트레이스백 진행 구조 |
GB9622540D0 (en) * | 1996-10-30 | 1997-01-08 | Discovision Ass | Trackback for viterbi decoder |
KR100224868B1 (ko) * | 1997-02-24 | 1999-10-15 | 윤종용 | 데이터 에러 정정 범위 판단방법 |
US6263473B1 (en) | 1997-04-07 | 2001-07-17 | Matsushita Electric Industrial Co., Ltd. | Viterbi decoder and Viterbi decoding method |
US6205186B1 (en) * | 1997-09-03 | 2001-03-20 | Qualcomm Incorporated | Decoding with partial state information on a convolutionally encoded channel |
JP3747604B2 (ja) * | 1997-12-19 | 2006-02-22 | ソニー株式会社 | ビタビ復号装置 |
WO2001013524A1 (en) * | 1999-08-16 | 2001-02-22 | Koninklijke Philips Electronics N.V. | Viterbi-decoder system with trace-back implementation |
US6601215B1 (en) * | 2000-02-01 | 2003-07-29 | Agere Systems Inc. | Traceback buffer management for VLSI Viterbi decoders |
BR0309218A (pt) * | 2002-04-17 | 2005-02-09 | Thomson Licensing Sa | Algoritmo de gerenciamento de memória para decodificadores de treliças |
US7564930B1 (en) * | 2002-08-05 | 2009-07-21 | Altera Corporation | Method and apparatus for implementing a traceback processor for trellis decoding in a Viterbi decoder |
US8185810B1 (en) * | 2007-04-13 | 2012-05-22 | Link—A—Media Devices Corporation | Low power viterbi trace back architecture |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5349608A (en) * | 1993-03-29 | 1994-09-20 | Stanford Telecommunications, Inc. | Viterbi ACS unit with renormalization |
EP0656712A1 (en) * | 1993-11-16 | 1995-06-07 | AT&T Corp. | Viterbi equaliser using variable length tracebacks |
US5533065A (en) * | 1993-12-28 | 1996-07-02 | At&T Corp. | Decreasing length tracebacks |
US5513139A (en) * | 1994-11-04 | 1996-04-30 | General Instruments Corp. | Random access memory with circuitry for concurrently and sequentially writing-in and reading-out data at different rates |
-
1994
- 1994-11-14 KR KR1019940029806A patent/KR0135796B1/ko not_active IP Right Cessation
-
1995
- 1995-11-08 TW TW84111854A patent/TW278287B/zh not_active IP Right Cessation
- 1995-11-11 DE DE1995142131 patent/DE19542131B4/de not_active Expired - Fee Related
- 1995-11-13 SG SG1995001817A patent/SG50369A1/en unknown
- 1995-11-14 JP JP29582795A patent/JP3293731B2/ja not_active Expired - Fee Related
- 1995-11-14 US US08/557,539 patent/US5712880A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE19542131A1 (de) | 1996-05-15 |
TW278287B (ko) | 1996-06-11 |
DE19542131B4 (de) | 2005-07-07 |
KR960020492A (ko) | 1996-06-17 |
JPH08251038A (ja) | 1996-09-27 |
US5712880A (en) | 1998-01-27 |
JP3293731B2 (ja) | 2002-06-17 |
SG50369A1 (en) | 1998-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0135796B1 (ko) | 비터비복호기에서 트레이스백 수행장치 | |
US5787127A (en) | Viterbi decoding method and apparatus with balance among memory and processing requirements | |
US7246298B2 (en) | Unified viterbi/turbo decoder for mobile communication systems | |
EP0926836B1 (en) | Viterbi decoding apparatus and viterbi decoding method | |
US6337890B1 (en) | Low-power-consumption Viterbi decoder | |
JPH10107651A (ja) | ビタビ復号装置 | |
JP2996615B2 (ja) | ビタビ復号装置及びその方法 | |
US7966544B2 (en) | Loading the input memory of an LDPC decoder with data for decoding | |
JPH10200421A (ja) | ビタビデコーダにおける加算/比較/選択処理器 | |
US7020214B2 (en) | Method and apparatus for path metric processing in telecommunications systems | |
JP3264855B2 (ja) | トーレス削除方法を用いるビタビ復号器における生存者メモリ | |
US7530010B2 (en) | Hybrid trace back apparatus and high-speed viterbi decoding system using the same | |
US5257263A (en) | Circuit for decoding convolutional codes for executing the survivor path storage and reverse scanning stage of a Viterbi algorithm | |
Collins et al. | Memory management in traceback Viterbi decoders | |
US7861146B2 (en) | Viterbi decoding apparatus and Viterbi decoding method | |
US7035356B1 (en) | Efficient method for traceback decoding of trellis (Viterbi) codes | |
US6304617B1 (en) | Viterbi decoder | |
US20100229076A1 (en) | Decoding Apparatus and Decoding Method | |
US6263473B1 (en) | Viterbi decoder and Viterbi decoding method | |
JP4422867B2 (ja) | ビタビデコーダ | |
JPH05335973A (ja) | ビタビ復号器及び畳み込み符号の復号器 | |
US7564930B1 (en) | Method and apparatus for implementing a traceback processor for trellis decoding in a Viterbi decoder | |
JPH10200419A (ja) | ビタビ復号方法および装置 | |
JPH01291525A (ja) | スタック型逐次復号器 | |
ResearchSection | Memory Management in Traceback Viterbi Decoders |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080102 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |