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
Application number
KR1019940029806A
Other languages
English (en)
Other versions
KR960020492A (ko
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 KR1019940029806A priority Critical patent/KR0135796B1/ko
Priority to TW84111854A priority patent/TW278287B/zh
Priority to DE1995142131 priority patent/DE19542131B4/de
Priority to SG1995001817A priority patent/SG50369A1/en
Priority to JP29582795A priority patent/JP3293731B2/ja
Priority to US08/557,539 priority patent/US5712880A/en
Publication of KR960020492A publication Critical patent/KR960020492A/ko
Application granted granted Critical
Publication of KR0135796B1 publication Critical patent/KR0135796B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3961Arrangements of methods for branch or transition metric calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory 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)

  1. 비트스트림의 에러를 정정하기 위하여 상기 비트스트림을 입력받아 분기 메트릭값들을 계산하는 분기 메트릭수단과, 상기 분기 메트릭값들과 대응되는 현재의 경로 메트릭값들로부터 새로운 경로 메트릭값들을 계산하는 가산비교선택수단과, 상기 새로운 경로 메트릭값중 최소 경로 메트릭값을 계산하고 이를 일시 저장하는 최소경로메트릭수단과, 상기 가산비교선택수단의 비교결정을 저장하고, 생존 경로를 탐색하여 복호된 비트를 찾아내는 트레이스백수단으로 구성되고, 일정한 주기마다 현재의 상태값을 발생하는 최적상태검출수단을 포함하는 구속장이 K이고, 메모리 동작그룹의 크기가 L인 초대규모 집적화된 비터비 디코더에 있어서, 상기 트레이스백 수단은 상기 가산비교선택수단의 상기 비교결정값인 데이타들중 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제1저장수단; 상기 제1저장수단의 출력과 상기 최소경로메트릭수단의 출력을 입력하여 트레이스할 다음 상태인 제1상태를 발생하는 제1트레이스논리수단; 상기 제1저장수단의 출력을 입력하여 먼저 입력된 것은 먼저 출력되고, 나중에 입력된 것은 나중에 출력되도록 저장하는 제2저장수단; 상기 제2저장수단의 출력과 상기 제1상태를 입력받아 트레이스할 다음 상태인 제2상태를 발생하는 제2트레이스논리수단; 복호된 비트를 찾아내기 위하여 상기 제2상태를 입력하여 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제3저장수단을 구비하는 것을 특징으로 하는 비터비복호기에서 트레이스백수행장치.
  2. 비트스트림의 에러를 정정하기 위하여 상기 비트스트림을 입력받아 분기 메트릭값들을 계산하는 분기 메트릭수단과, 상기 분기 메트릭값들과 대응되는 현재의 경로 메트릭값들로부터 새로운 경로 메트릭값들을 계산하는 가산비교선택수단과, 상기 새로운 경로 메트릭값중 최소 경로 메트릭값들을 계산하고 이를 일시 저장하는 최소경로메트릭수단과, 상기 가산비교선택수단의 비교결정을 저장하고, 생존 경로를 탐색하여 복호된 비트를 찾아내는 트레이스백수단으로 구성되고, 일정한 주기마다 현재의 상태값을 발생하는 최적상태검출수단을 포함하는 구속장이 K이고, 메모리 동작그룹의 크기가 L/2인 초대규모 집적화된 비터비 디코더에 있어서, 상기 트레이스백 수단은 상기 가산비교선택수단의 상기 비교결정값인 데이타들중 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제1저장수단; 상기 제1저장수단의 출력과 상기 최소경로메트릭수단의 출력을 입력하여 트레이스할 다음 상태인 제1상태를 발생하는 제1트레이스논리수단; 상기 제1저장수단의 출력을 입력하여 먼저 입력된 것은 먼저 출력되고, 나중에 입력된 것은 나중에 출력되도록 저장하는 제2저장수단; 상기 제2저장수단의 출력과 상기 제1상태를 입력받아 트레이스할 다음 상태인 제2상태를 발생하는 제2트레이스논리수단; 상기 제2저장수단의 출력을 입력하여 먼저 입력된 것은 먼저 출력되고, 나중에 입력된 것은 나중에 출력되도록 저장하는 제3저장수단; 상기 제3저장수단과 상기 제2상태를 입력받아 트레이스할 다음 상태인 제3상태를 발생하는 제3트레이스논리수단; 복호된 비트를 찾아내기 위하여 상기 제3상태를 입력하여 먼저 입력된 것은 나중에 출력되고, 나중에 입력된 것은 먼저 출력되도록 저장하는 제4저장수단을 구비하는 것을 특징으로 하는 비터비복호기에서 트레이스백수행장치.
KR1019940029806A 1994-11-14 1994-11-14 비터비복호기에서 트레이스백 수행장치 KR0135796B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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