KR101010784B1 - 트렐리스 디코더를 위한 메모리 관리 알고리즘 - Google Patents

트렐리스 디코더를 위한 메모리 관리 알고리즘 Download PDF

Info

Publication number
KR101010784B1
KR101010784B1 KR1020047016609A KR20047016609A KR101010784B1 KR 101010784 B1 KR101010784 B1 KR 101010784B1 KR 1020047016609 A KR1020047016609 A KR 1020047016609A KR 20047016609 A KR20047016609 A KR 20047016609A KR 101010784 B1 KR101010784 B1 KR 101010784B1
Authority
KR
South Korea
Prior art keywords
trellis
pointer
epoch
data
decoded
Prior art date
Application number
KR1020047016609A
Other languages
English (en)
Other versions
KR20040099452A (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 톰슨 라이센싱
Publication of KR20040099452A publication Critical patent/KR20040099452A/ko
Application granted granted Critical
Publication of KR101010784B1 publication Critical patent/KR101010784B1/ko

Links

Images

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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • 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/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/3944Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes for block codes, especially trellis or lattice decoding thereof
    • 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/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Error Detection And Correction (AREA)

Abstract

트렐리스 디코더 네트워크에 의하여 생성된 디코딩된 잔존 시퀀스를 프로세싱하는데 이용되는 메모리를 관리하는데 이용하기 위한 개선된 APTFT(all-path traceback/forward trace) 시스템. 메모리 사이즈는 T*N으로 감소되며, 여기서 T는 소정의 잔존 메모리 깊이이고, N은 트렐리스에서의 스테이트의 수이다. 본 시스템의 레이턴시 값은 T이다. 메모리 요건 및 레이턴시 값은 모두 종래 기술의 APTFT 시스템에서 생성된 유사한 파라미터 값에서 33% 감소를 나타낸다. 기존의 순방향 추적/경로 선택 유닛은 디코딩 시스템(9)을 간략화하기 위하여 순방향 추적 프로세스(7)의 내재적 특성을 이용하도록 수정된다. APTFT 시스템의 일반화된 버전은 특정한 디코딩 시스템의 요건을 만족시키는데 필요한 메모리 사이즈 및 레이턴시 값의 선택시 더 큰 적응성을 가능하게 한다.
트렐리스 디코더, 레이턴시, APTFT 시스템, 잔존 시퀀스, 순방향 추적 프로세스, 역추적 프로세스

Description

트렐리스 디코더를 위한 메모리 관리 알고리즘{A MEMORY MANAGEMENT ALGORITHM FOR TRELLIS DECODERS}
본 특허출원은 2002년, 4월 17일자, 가특허출원 제60/373,246 호로부터 우선권을 주장한다.
본 발명은 일반적으로는 디지털 신호처리의 분야에 관한 것이며, 보다 구체적으로, 궁극적으로 검색되는 디코딩된 시퀀스로부터 선택된 시퀀스를 기억하도록 설계된 신호 디코더에 관한 것이다.
HDTV(High Definition Television)와 같은 통신시스템은 특정의 노이즈 소스로부터의 간섭에 대해 보호하기 위해 트렐리스 인코딩(trellis encoding)을 채용한다. HDTV에 대한 트렐리스 코딩 요건은 ATSC(Advanced Television Systems Committee)에 의하여 제공된 1995년 4월 12일의 HDTV 송신을 위한 디지털 텔레비젼 표준의 섹션 4.2.4-4.2.6(부록 D), 10.2.3.9, 10.2.3.10 및 기타 섹션에 소개된다. 트렐리스 디코더는 신호 프로세싱 알고리즘에 따라, 가장 정확할 것 같은 것으로서 수신된 심볼 시퀀스, 즉 잔존 시퀀스(survivor sequence)를 선택한다. 가장 대중적인 트렐리스 디코딩 알고리즘은, 통신 기술에 관한 I.E.E.E. 회보, vol. COM-19, 1971, pp.751-772에 발표된, A. J. 비터비에 의한, 제목이 Convolutional Codes and Their Performance in Communication Systems로 부여된 논문에 개시된, 비터비 알고리즘이다. 비터비 알고리즘에서는, 궁극적으로 검색되는 디코딩된 시퀀스로부터 잔존 시퀀스를 기억하기 위한 두가지 널리 공지된 기술들이 있다. 한 기술은 레지스터 교환(register exchange)이고 다른 기술은 역추적(traceback)으로 공지되어 있다. 역추적 프로세스의 배후에 있는 기술은 1993년 3월, 통신에 관한 I.E.E.E. 회보, vol.41, no.3에서 발표된, G. 페이긴 등에 의한 Architectural Tradeoffs for Survivor Sequence Memory Management in Viterbi Decoders 에 개시된다. 비록 상대적으로 간단하지만, 레지스터 교환 방식은 VLSI 구현시 큰 면적 및 큰 전력 소모를 요구하며, 따라서 작은 제약 길이(constraint length)를 갖는 코드로 제한된다. 제약 길이는 K = v + k 로서 정의되고, 여기서 v는 트렐리스 인코더의 메모리 소자 수이고, 부호율(code rate)은 R = k/n이다. 따라서, 큰 제약 길이의 트렐리스 디코더에 적당한 설계에는 역추적이 바람직한 방식이다.
1998년 11월 24일자, 휴 등에 부여된, 발명의 명칭이 CODE SEQUENCE DETECTION IN A TRELLIS DECODER 인, 미국특허 제5,841,478 호는, 잔존 시퀀스의 선택을 위하여 전경로 순방향 추적(forward trace) 네트워크에 연결된 전경로 역추적 네트워크를 개시한다. 상기 개시된 역추적 프로세스는, 선행하는 트렐리스 스테이트의 소정의 수를 식별하기 위하여, 소정의 깊이 T, 즉, 역추적 깊이 또는 잔존 메모리 깊이로 수행된다. 실제로, 역추적 간격 T는 병합(merged) 또는 수렴된(converged) 스테이트의 식별을 허용할 만큼 충분한 기간을 제공하도록 선택된다. 병합된 스테이트는 진정한 인코딩된 데이터일 가능성이 가장 큰 데이터 시퀀스를 식별한다. 병합된 스테이트는 수 개의 후보 시퀀스들중에서 선택된, 최종적인 출력 데이터로서 선택되는 트렐리스 디코딩된 데이터 시퀀스이다. 역추적 프로세스는 에포크(epochs)로 공지된 T/2의 역추적 간격동안 2개의 스테이지에서 수행된다. 이러한 에포크 또는 역추적 서브간격의 선택은 임의적이며 시스템 설계자에 의하여 선택 가능하다.
휴 등의 구성에서 요구된 전체 메모리 사이즈는 3/2*T*N이고, 여기서 T는 소정의 잔존 메모리 깊이이고 N은 트렐리스에서의 스테이트의 수이다. 만족스런 디코더 성능을 달성하기 위하여, 잔존 메모리 깊이 또는 역추적 깊이(또는 역추적 간격) T는 보통 코드 제약 길이의 4내지 6배이다. N의 값은 2v와 일치하며, 여기서 v는 인코더내의 메모리 소자의 수이다. 상기 휴 등의 알고리즘과 연관된 레이턴시, 또는 데이터 디코딩 지연은 3/2*T 이다. 상기 휴 등의 장치가, 12개의 인터리브된 디코더들을 필요로 하는, ATSC HDTV 트렐리스 디코더에서 구현되었지만, 상기 개시된 기술은 어떠한 트렐리스 디코더에도 적용될 수 있다. 불행하게도, 상기 휴 등의 시스템은 가장 효율적인 역추적 알고리즘이 아니며, 메모리 사이즈 및 데이터 디코딩 지연, 또는 레이턴시의 관점에서는 레지스터 교환 기술만큼 효율적이지 못하다. 그러나, 임의의 역추적 알고리즘에서와 같이, 전력 소모 및 제어 복잡도에서는 레지스터 교환 알고리즘보다 더 효율적이다.
휴 등의 APTFT(all-path traceback/forward trace) 시스템은 도 1의 블록도에 의하여 설명된다. 시스템으로의 데이터 입력(16)은 트렐리스 스테이트 및 트렐 리스 브랜치당 트렐리스 디코더 ACS(Add-Compare-Select) 유닛 출력(즉, 트렐리스에서 이전의 스테이트에 대한 포인터)으로 이루어 진다. 제어 입력은 클럭, 인에이블, 리세트, 임의의 동기 신호, 및 트렐리스 브랜치당 최소 스테이트로 구성된다. 트렐리스 브랜치당 최소 스테이트는 또한 각각의 트렐리스 브랜치에서 최소 경로 메트릭(metric)(값)을 갖는 스테이트를 식별하는 ACS 출력이다. 제어 유닛은 모든 제어신호들을 생성하며 다양한 메모리 블록의 어드레싱을 판독/기록한다.
버퍼는 사이즈 (T/2)*N의 LIFO(Last In, First Out) 메모리이며, 이것은 ACS 출력을 일시적으로 기억한다. 데이터는 한번에 N 스테이트씩 도착의 순서로 기록되며, 후속하는 에포크동안 역순으로 판독된다. 하나의 에포크는 입력 샘플(트렐리스 브랜치)내의 버퍼 메모리 사이즈(즉, T/2 샘플)에 의하여 특징지워 진다. 각각의 판독 동작 후, 입력된 새로운 데이터는 동일한 위치에 기록된다.
전경로 역추적 유닛은 제어 유닛에 의하여, 기억의 역순으로, 이전의 에포크로부터 버퍼 메모리를 판독하고, 한 번에 T/2 샘플의 전체 에포크동안 트렐리스를 통하여 역추적하도록 지시된다. 트렐리스를 통하여 역추적함에 따라, 전경로 역추적 유닛은 트렐리스내의 N 스테이트의 각각에 대하여 디코딩된 시퀀스 메모리로 디코딩된 출력을 보낸다. 따라서, 전경로 역추적 유닛은 트렐리스에서 N개의 잔존 경로(surviving path)를 식별하기 위하여 N 스테이트 포인터를 필요로 한다. N 스테이트 포인터는 모든 브랜치에 대하여 업데이트되며, 항상 대응하는 경로의 이전의 스테이트를 가리킨다. 전경로 역추적 유닛이 이전의 에포크에서 버퍼링된 ACS 데이터(16)를 판독 및 처리하는 것과 동시에, 순방향 추적 유닛은 현재 에포크의 ACS 데이터(16)로 트렐리스를 통하여 순방향으로 추적한다.
각각의 새로운 에포크동안 다양한 유닛의 작용은 도 2의 타이밍도에서 도시된다. 입력 데이터는 보통 순방향 순서로 버퍼 메모리에 기록되고, 역순으로 전경로 역추적 유닛으로 보내진다. 모든 트렐리스 스테이트에 대하여 전경로 역추적 유닛의 디코딩된 출력은 그 후 디코딩된 시퀀스 메모리로 보내진다. 이 디코딩된 정보는 역순으로 2개의 에포크 후에 디코딩된 시퀀스 메모리로부터 판독된다. 두 역방향 판독 동작은 서로를 취소시키며, 최종적으로 디코딩된 데이터가 올바른 순방향 순서로 나타나도록 한다. 디코딩된 시퀀스 메모리 유닛에서의 2개의 에포크 지연은 필연적으로 T*N의 메모리 사이즈를 요구한다.
각각의 에포크의 종료시, 경로 선택 유닛은 ACS 유닛에 의하여 보내진 최소 스테이트 경로와 연관된 순방향 추적 포인터, P의 값을 업데이트하고 고정한다. 이 포인터는 다음 업데이트가 발생할 때까지 하나의 에포크 주기동안 이용된다. 하나의 에포크의 경계에서, 순방향 추적 포인터는 최소 스테이트 경로를 가리키며, 2개의 에포크 먼저 이 경로와 연관된 스테이트를 제공한다. 그러나, 에포크의 종료에 근접함에 따라, 순방향 스테이트 포인터는 이전의 에포크 경계에서의 최소 스테이트를 가리키며, 3개의 에포크 먼저 이 경로에 연관된 스테이트를 제공한다. 휴 등의 장치는 실질적으로 하나의 에포크만큼 서로 시간적으로 오프셋되어 있는 각각의 스테이트 경로에 대한 2개의 내부 포인터들(P1 및 P2)을 갖는다. 이 2개의 포인터들은 궁극적으로 트렐리스 디코딩된 비트 시퀀스를 식별하는 것을 도울 것이다. 각각의 스테이트 경로에 대한 포인터 P1은 순방향 추적 정보로 매 브랜치마다 업데이트되는 한편, 포인터 P2는 매 에포크마다 한 번씩만 업데이트된다. 포인터 P1은 현재의 에포크 포인터이고, 포인터 P2는 직전의 에포크 포인터이다.
N 스테이트는 N 잔존 스테이트 경로를 가지므로, 순방향 추적 유닛에는 2*N 내부 포인터가 존재한다. 각각의 에포크의 종료시, 각각의 내부 포인터는 대응하는 잔존 경로내의 동일한 에포크의 개시 스테이트를 가리킨다. 이 포인터들은 메인 포인터 P를 생성하는데 기여한다. 한 에포크의 종료시, 포인터 P2는 포인터 P1의 값을 수신하며, 그 후 P1은 리세트되고 다음 에포크동안 트렐리스를 통하여 순방향 추적을 개시한다. 멀티플렉서 유닛은 순방향 추적 포인터, P를 이용하여, 디코딩된 시퀀스 메모리로부터 N 디코딩된 시퀀스중 하나를 선택하고, 그 출력으로서 상기 선택된 디코딩된 비트(들)를 보낸다.
예를 들면, 에포크(3)의 종료시, 순방향 추적 포인터, P는 최소 경로의 에포크(2)의 개시와 연관되는 트렐리스 스테이트를 나타낸다. 포인터 P1은 에포크(3)의 종료 스테이트로부터 개시 스테이트까지 가리키며, 포인터 P2는 에포크(2)의 종료 스테이트로부터 개시 스테이트까지 가리킨다. 그 후, 포인터 P2는 포인터 P1의 값으로 업데이트되고, 포인터 P1은 그 후 리세트된다. 에포크(4)동안, 포인터 P의 값은 변경되지 않으며 에포크(2)의 개시 스테이트를 가리키고, 이 값은 멀티플렉서에 의해 이용되어 도 2에서의 적절하게 디코딩된 시퀀스 DD1(N개의 가능성 있는 시 퀀스에서의 디코딩된 시퀀스 메모리로부터 판독됨)을 선택할 것이다. 포인터 P2는 에포크(4)동안 고정 또는 불변이며, 에포크(3)의 개시 스테이트를 가리킨다. 포인터 P1은 에포크(4)동안 지속적으로 순방향 추적으로 업데이트된다. 유사하게, 에포크(4)의 종료시, 순방향 추적 포인터 P는 업데이트되어 에포크(3)의 개시 스테이트를 가리키고, 포인터 P2는 업데이트되어 에포크(4)의 개시 스테이트를 가리키며, 포인터 P1은 리세트된다. 전체 에포크(5)동안, 포인터 P는 도 2에서의 정확히 디코딩된 시퀀스 DD2를 선택하고, 이 시퀀스는 디코딩된 시퀀스 메모리로부터 판독된다. 이 프로세스는 입력 신호가 프로세스되는 것이 가능한 한 무한하게 계속된다.
도 2를 참조하여 최대한 이해되는 바와 같이, 순방향 추적은 D1과 연관된 데이터의 디코딩을 허용하기 위하여 데이터 D3(에포크(3)내의 데이터)까지 데이터를 프로세스할 것이며, 상기 디코딩된 데이터는 에포크(4)동안 발생하게 될 데이터 DD1(에포크(1)로부터 디코딩된 데이터)이다. 따라서, 3개의 에포크는 출력 신호로서 제1 에포크 디코딩된 데이터 DD1이 생성되기 전에 (에포크(2 및 3)는 순방향 추적에 의하여 에포크(1)는 역추적에 의하여) 완전히 프로세스된다. 유사하게, DD2(에포크(2)로부터 디코딩된 데이터)를 출력하기 위하여, 2개의 에포크(에포크(3 및 4))가 순방향 추적에 의하여 프로세스되고, 하나의 에포크(에포크(2))는 역추적에 의하여 프로세스되며, 이 프로세스는 한 번에 3개의 에포크의 슬라이딩 윈도우(sliding window)로서 계속된다. 이 프로세스는, DD1의 제1 비트가 3개의 에포크 또는 3/2*T 샘플의 대응하는 잔존 메모리 깊이를 가지는 것을 나타내며, 그 이유는 제1 디코딩된 비트가 에포크(1)의 개시와 연관되며 포인터 P가 에포크(3)의 종료와 연관되기 때문이다. 대조적으로, DD1의 마지막 비트는 2개의 에포크, 또는 T의 잔존 메모리 깊이를 가지며, 그 이유는 마지막 디코딩된 비트가 에포크(1)의 종료와 연관되며 포인터 P가 에포크(3)의 종료와 연관되기 때문이다. 유사하게, DD2의 제1 비트는 3/2*T의 잔존 메모리 깊이와 연관되며, DD2의 마지막 비트는 T의 잔존 메모리 깊이와 연관된다. 이것은 임의의 디코딩된 시퀀스 블록(DD1, DD2, DD3...)이 적어도 T 이상의 잔존 메모리 깊이와 연관되는 것을 보장한다.
APTFT(All-Path Traceback/Forward Trace) 프로세서에 의하여 데이터가 프로세스 및 디코딩되므로, 메모리 사이즈는 버퍼 메모리에서의 T/2*N 더하기 디코딩된 시퀀스 메모리에서의 T*N으로 이루어질 것이고, 이는 전체적으로 3/2*T*N 에 상당한다. 또한, 휴 등의 알고리즘은 전체적으로 3*N+1 스테이트 포인터(전경로 역추적 유닛에서의 N 및 순방향 추적 유닛에서의 2*N+1, 즉, 포인터 P, N개의 포인터 P1, 및 N개의 포인터 P2)를 필요로 한다. 휴 등의 장치에서 데이터 디코딩 지연, 또는 레이턴시는 버퍼 메모리에서의 하나의 에포크 지연(T/2 샘플), 더하기 디코딩된 시퀀스 메모리에서의 두개의 에포크 지연(T 샘플)에 기인한다. 따라서, 전체 레이턴시는 3개의 에포크 지연, 또는 3/2*T 샘플이다.
T의 잔존 메모리 깊이로 시퀀스를 디코딩하기 위하여, 효율적인 알고리즘은 각각의 비트가 T의 연관된 잔존 메모리 깊이를 가지는 특성을 포함할 것이다. 기존의 역추적 알고리즘은 프로세싱 사이클마다 전체 데이터 블록을 디코딩할 필요가 있어서 결과적으로 불필요하게 큰 잔존 메모리 깊이가 데이터 블록에서 거의 하나의 비트에 대하여 존재한다. 따라서, 메모리 사이즈 및 레이턴시 값이 모두 감소되는 개선된 트렐리스 디코더 메모리 관리 구조에 대한 필요가 존재한다.
본 발명은 종래의 APTFT 알고리즘에 대한 메모리 및 레이턴시 요건들을 감소시키는 APTFT(All-Path Traceback/Forward Trace)를 채용하는 트렐리스 디코더 시스템이다. 특히, 본 발명은 T*N의 메모리 사이즈(잔존 메모리 깊이에 트렐리스 스테이트의 수를 곱함) 및 T의 레이턴시(제어 요건들의 증가 없이 동일한 잔존 메모리 깊이 T를 유지하면서 두 파라미터에 대하여 1/3의 감소를 나타냄)를 요구하는 트렐리스 디코더 시스템을 개시한다. 이 개선은 APTFT 알고리즘이 가장 효율적인 역추적 기술들 중 하나로 되도록 한다. 또한, APTFT 알고리즘은 제약 길이가 작은 코드들에 대하여 레지스터 교환 알고리즘과 경쟁이 된다. 또한, 본 발명은 특정 시스템의 요구를 만족하는 메모리 사이즈 및 레이턴시의 선택에서 더 큰 응용성을 허용하는 APTFT 알고리즘의 일반화를 포함한다.
본 발명은 궁극적으로 디코딩된 또는 다른 계통화된 출력 시퀀스를 생성하기 위하여 잔존 시퀀스를 기억 및 프로세스할 필요가 있는 임의의 트렐리스 디코더 시스템 또는 유사한 신호 프로세싱 기술에 적용될 수 있다. 이 시스템은 하나 또는 다중의 디코더, 연결(concatenated) 또는 비연결 디코더,병렬 또는 분산된 프로세싱을 구비한 디코더, 병렬 또는 직렬인 다중의 디코더, 인터리브 또는 비인터리브된 디코더, 및 임의의 유형의 유사한 신호 프로세싱 구조로 일반화될 수 있다.
도 1은 종래 기술의 APTFT(All-Path Traceback/Forward Trace) 시스템의 간략화된 블록도;
도 2는 도 1에 도시된 종래 기술의 APTFT 시스템의 타이밍도;
도 3은 본 발명의 원리에 따라 동작하는 메모리 관리 알고리즘의 흐름도;
도 4는 도 3의 흐름도에 따라 프로세스되는 데이터의 관계를 도시하는 타이밍도;
도 5는 도 1에 설명된 오리지날 APTFT 시스템의 일반화된 실시예에 따라 프로세스되는 데이터의 관계를 도시하는 타이밍도; 및
도 6은 본 발명의 일반화된 실시예에 따라 프로세스되는 데이터의 관계를 도시하는 타이밍도이다.
도 1을 참조하면, 종래 기술의 APTFT(All-Path Traceback/Forward Trace) 시스템의 간략화된 블록도는 본 발명의 이해를 가능하게 한다. 도 1에 도시된 기능 블록들은 순방향 추적 & 경로 선택 유닛(17)을 제외하고는 본 발명의 목적을 위하여 동일한 방식으로 수행된다. 본 발명은 순방향 추적의 특성을 이용하여 종래 시스템의 동작을 간략화한다. 전술된 바와 같이, 각각의 에포크의 종결시 순방향 추 적 & 경로 선택 유닛은 순방향 추적 포인터 P를 업데이트 및 고정하고, ACS(Add-Compare-Select) 유닛에 의하여 보내진 최소 트렐리스 경로 스테이트와 연관된다. 그 후, 포인터 P는 하나의 에포크의 전체 기간동안 이용되어 디코딩된 시퀀스 메모리로부터 최적의 디코딩된 시퀀스를 선택한다. 결과적으로, 하나의 에포크의 제1 디코딩된 비트는 3/2*T의 잔존 메모리 깊이와 연관되며, 마지막 디코딩된 비트는 T의 잔존 메모리 깊이와 연관된다.
본 발명에서는, 각각의 에포크의 종결시 순방향 추적 포인터 P는 고정되지 않지만, 대신에 디코딩 프로세스를 통하여 그 값을 지속적으로 업데이트하도록 허용된다. 전술된 바와 같이, 포인터 P1은 하나의 에포크동안 순방향 추적에 의하여 지속적으로 업데이트되는 한편, 포인터 P2는 하나의 에포크의 종료시에만 업데이트된다. 각각의 트렐리스 스테이트에 대한 포인터 P1 및 P2는, ACS 유닛으로부터 수신된 최소 경로 값과 함께, 포인터 P의 값을 생성하는데 기여한다. 매 데이터 샘플마다 포인터 P를 지속적으로 업데이트함으로써, 포인터 P의 값은 포인터 P1의 지속적으로 업데이트된 값을 반영할 것이므로, 트렐리스 동안 지속적인 순방향 추적 프로세스를 반영할 것이다. 이 방식으로 잔존 메모리 경로는 트렐리스를 통하여 전파하는 일정한 사이즈 T의 슬라이딩 윈도우이다.
포인터 P의 값을 지속적으로 업데이트한 결과로서, 디코딩된 시퀀스 메모리(모든 트렐리스 스테이트에 대하여 전경로 역추적 유닛(12)으로부터 디코딩된 데이터 시퀀스를 수신함)는 그 데이터를 2개의 에포크 후보다는 1개의 에포크 후에 멀 티플렉서(14)에 이용 가능하게 만들 필요가 있다. 1개의 에포크 지연은 T*N(2개의 에포크 지연의 경우) 보다는, (T/2)*N의 메모리 사이즈를 요구하여, 디코딩된 시퀀스 메모리(13) 크기의 50 % 감소를 가능하게 한다.
방금 설명된 수정된 APTFT 프로세서에 의하여 데이터(16)가 프로세스되고 디코딩되므로, 메모리 사이즈는 버퍼 메모리(15)에 대한 (T/2)*N, 더하기 디코딩된 시퀀스 메모리(13)에 대한 (T/2)*N으로 이루어질 것이고, 이는 T*N의 전체 메모리 요건에 상당한다. 또한, 버퍼 메모리(15)에 기인하는 하나의 에포크 지연(T/2 샘플) 및 디코딩된 시퀀스 메모리(13)에 기인하는 하나의 에포크 지연(T/2 샘플), 결과적으로는 2개의 에포크 지연(T 샘플)과 일치하는 전체 레이턴시가 존재한다. 본 발명의 수정된 APTFT 프로세서는, 전경로 역추적 유닛(12)에서의 N 포인터 및 순방향 추적 유닛(17)에서의 2*N+1 포인터(즉, 포인터 P, N개의 포인터 P1, 및 N개의 포인터 P2)에 기초하여 전체 3*N+1의 트렐리스 스테이트 포인터들을 요구한다.
또한, 도 3을 참조하여, 본 발명의 데이터 프로세싱 단계들이 이해될 수 있다. 단계 1에서, 각각의 에포크의 개시전에, 포인터 P2의 값들은 등가의 스테이트 포인터 P1에서의 데이터로 업데이트된다. 새로운 에포크가 단계 2에서 시작한 후, 단계 3의 현재 입력 데이터는 단계 4에서 버퍼링되며, 단계 7에서 순방향 추적된다. 동시에 단계 5에서 이전의 에포크에 대응하는 데이터가 버퍼로부터 검색되고 역추적되어 디코딩된 데이터를 생성한다. 그 후, 디코딩된 데이터는 단계 6에서 디코딩된 시퀀스 메모리로 기록된다. 단계 7에서 현재 데이터에 대하여 수행된 순방향 추적은 포인터 P1의 값을 결정한다. 단계 8에서 포인터 P1의 값은 ACS로부터의 최소 경로 스테이트 정보(acs_select) 및 포인터 P2의 기억된 값과 함께 이용되어 포인터 P의 값을 생성한다. 또한, 단계 6에서 그 후에 디코딩된 시퀀스 메모리로부터 검색되는 최소 트렐리스 경로 스테이트와 연관된 2개 이전의 에포크로부터 디코딩된 데이터를 식별하는데 포인터 P의 값이 이용된다. 단계 9에서 디코딩된 데이터는 다음 스테이지로 보내지고 단계 10에서 상기 프로세스(단계 3 내지 9)는 전체 에포크에 대하여 반복된다. 에포크가 종료되는 경우, 단계 11은 다음의 에포크에 대하여 상기 알고리즘(단계 1 내지 10)을 재개한다.
또한, 도 4를 참조하여 상기의 알고리즘의 동작의 결과인 타이밍 관계가 이해될 수 있다. 순방향 추적 동작은, 셀(18)에 의하여 도시된 바와 같이, 에포크(2)내의 데이터까지 완전한 에포크를 프로세스한다. 이것은 데이터 D1, 즉 에포크(1)내의 데이터의 디코딩을 가능하게 하고, 이 데이터는 셀(19)내의 에포크(3)에서 판독되는 에포크(1)로부터의 디코딩된 데이터 DD1이 될 것이다. 따라서, 제1 에포크 디코딩된 데이터 DD1이 셀(19)로부터의 출력으로서 생성되기 전에, 2개의 에포크는 완전히 처리된다(즉, 순방향 추적에 의한 에포크(2)(셀(18)) 및 역추적에 의한 에포크(1)(셀(20))). 순방향 추적이 에포크(3)의 브랜치 j(1 < j < T/2)를 프로세싱하는 중에, 포인터 P1은 에포크(3)의 현재 스테이트부터 개시 스테이트까지를 가리킬 것이고, 포인터 P2는 에포크(2)의 종료부터 개시 스테이트까지를 가리킬 것이며, 결과적인 포인터 P는 에포크(2)의 현재 스테이트부터 개시 스테이트까지를 가리킬 것이다. 동시에, 디코딩된 데이터 시퀀스 DD1(셀(19))은 멀티플렉서 출력(21)에서 이용 가능하다. 포인터 P1 및 P는 에포크(3) 순방향 추적(셀(22))을 통하여 진행하므로, 디코딩된 데이터 비트의 출력은 브랜치(1 내지 T/2)를 통하여 진행한다. 따라서, 잔존 메모리 깊이 슬라이딩 윈도우의 크기는 일정한 값 T이며, 이것은 에포크(3)의 브랜치 j로부터 에포크(1)의 브랜치 j에 이르는 크기와 동일하다(여기서 1 < j < T/2). 요컨대, 추가의 제어 복잡도 없이 2개의 에포크의 전체 레이턴시 및 T의 전체 메모리 사이즈는 종래 기술의 APTFT 메모리 관리 구조보다 33%의 감소를 보인다.
본 발명의 APTFT 알고리즘은 역추적 및 레지스터 교환 알고리즘 모두에 알려진 장점들을 달성한다. 따라서, 1993년, 3월, 통신에 관한 I.E.E.E. 회보, vol.41, no.3에서 발표된, G. 페이긴 등에 의한 Architectural Tradeoffs for Survivor Sequence Memory Management in Viterbi Decoders에 개시된 종래 기술과 비교하는 것이 유용하다.
표 1은 본 발명의 APTFT 알고리즘과 종래 기술의 레지스터 교환 알고리즘 사이의 차이점 및 유사점의 일부를 도시한다.

개선된 APTFT 알고리즘

레지스터 교환 알고리즘

잔존 메모리 깊이는 T

잔존 메모리 깊이는 T

레이턴시는 T

레이턴시는 T

메모리 사이즈는 T*N

메모리 사이즈는 T*N

메모리는 랜덤 액세스 메모리

메모리는 컴플렉스, 듀얼포트, 더하기 2 대 1 멀티플렉서, 더하기 개별 메모리 소자들간의 상호접속

트렐리스 브랜치당 메모리 판독/기록 동작은 2*N

트렐리스 브랜치당 메모리 판독/기록 동작은 N*T

전력 소모는 비교적 적음

전력 소모는 비교적 큼

역추적/순방향 추적 유닛에서의 추가적 제어

추가적 제어 없음
두 알고리즘은 유사한 잔존 메모리 깊이에 대하여 동일한 레이턴시 및 메모리 사이즈를 가지며, 이것은 이전의 역추적 알고리즘에 의해서는 이루어지지 않는 것이 일반적이다. 개선된 APTFT 프로토콜은, 각각의 포인터의 상대적 복잡도는 작을지라도, 3*N+1 스테이트 포인터에 대한 필요에 의하여 나타난 바와 같이, 역추적 유닛(12) 및 순방향 추적 유닛(17)내에 추가적인 제어를 필요로 한다. 대조적으로, 레지스터 교환 알고리즘의 사용은 각각의 메모리 소자를 위한 2 대 1 멀티플렉서 및 메모리 소자들간의 상호접속에 대한 필요로서 요구되는 메모리내의 추가적인 복잡도를 야기시킨다. 또한, 본 발명은 트렐리스 브랜치마다 2*N의 메모리 소자만을 판독하고 그곳에 기록하는 반면, 레지스터 교환 알고리즘은 트렐리스 브랜치마다 모든 N*T 메모리 소자를 판독하고 그곳에 기록하여야 한다. 후자의 특성은 레지스터 교환 시스템에 대한 큰 전력 소모를 야기시키며, 이는 코드 제약 길이가 증가함에 따라 제한으로 된다. 본 발명의 추가적인 스테이트 포인터는 감소된 전력 소모 및 간단한 랜덤 액세스 메모리의 이용과 교환하여 적절한 비용을 나타낸다. 요컨대, 본 발명은 작은 제약 길이 코드에 대하여 레지스터 교환 알고리즘과 경쟁이 되며, 코드의 제약 길이가 증가됨에 따라 레지스터 교환 시스템보다 더 효율적으로 된다.
표 2는 소위 k-포인터 짝수 알고리즘(전형적인 종래 기술 역추적 시스템의 효율 및 복잡도의 예시)인 또 다른 역추적 시스템과 본 발명 사이의 차이점의 일부를 설명한다. k-포인터 홀수 알고리즘으로 알려진 또 다른 역추적 기술은 복잡도 및 효율면에서 유사하여 명시적으로 다루지는 않을 것이다.

개선된 APTFT 알고리즘

k-포인터 짝수 알고리즘

잔존 메모리 깊이는 T

잔존 메모리 깊이는 T

레이턴시는 T

레이턴시는 2*T*k/(k-1)

메모리 사이즈는 T*N

메모리 사이즈는 2*T*N*k/(k-1)

스테이트 포인터의 수는 3*N+1

스테이트 포인터의 수는 k
k-포인터 짝수 알고리즘에 의하여 이루어지는 최상의 레이턴시 및 메모리 사이즈는 k의 값이 T에 접근함에 따라 발생하며, 대응하는 본 발명의 메모리 사이즈 및 레이턴시의 약 2배이다. k가 가장 작은 값인 k=2인 경우, k-포인터 짝수 알고리즘의 레이턴시 및 메모리 사이즈는 본 발명의 대응하는 값들의 4배이다. 따라서, 본 발명은 메모리 사용 및 레이턴시 파라미터에 있어 상당한 장점을 제공한다. 이 개선점들은 궁극적으로는 큰 제약 길이 코드에 대한 제한을 나타내는 추가적인 트렐리스 스테이트 업데이트 포인터의 형태를 취하는 여분의 제어 요건들로 달성된다.
표 3은 종래 기술의 원-포인터(one-pointer) 알고리즘 및 본 발명의 실시 사이의 차이점의 일부를 설명한다. 원-포인터 알고리즘은 작은 레이턴시, 작은 메모리 사이즈의 역추적 알고리즘이다. 짝수-하이브리드 알고리즘으로 알려진 또 다른 역추적 기술은 복잡도 및 효율면에서 유사하며 명시적으로 다루지는 않을 것이다.

개선된 APTFT 알고리즘

원-포인터 알고리즘

잔존 메모리 깊이는 T

잔존 메모리 깊이는 T

레이턴시는 T

레이턴시는 T*(k+1)/(k-1)

메모리 사이즈는 T*N

메모리 사이즈는 T*N*(k+1)/(k-1)

각각의 트렐리스 브랜치에 대한 메모리 판독/기록 동작은 2*N

각각의 트렐리스 브랜치에 대한 메모리 판독/기록 동작은 (k+1)*N

판독/기록 제어의 속도는 동일

판독 제어는 기록 제어보다 k배 더 빠름

트렐리스 스테이트 업데이트 포인터의 수는 3*N+1

트렐리스 스테이트 업데이트 포인터의 수는 1
원-포인터 알고리즘에 의하여 달성되는 최상의 레이턴시 및 메모리 사이즈는 k의 값이 T의 값에 접근함에 따라 발생하고, 본 발명의 레이턴시 및 메모리 사이즈와 대략 일치한다. k의 값이 가장 작은 k=2 인 경우, 원-포인터 시스템의 레이턴시 및 메모리 사이즈는 본 발명의 경우보다 세배 더 크다. 따라서, 원-포인터 알고리즘은 k의 값이 큰 경우에만 본 발명의 성능에 접근한다. 원-포인터 알고리즘의 장점은 본 발명의 3*N+1 스테이트 포인터에 비하여 오직 하나의 스테이트 포인터만을 필요로 하는 것이다. 그러나, 단일의 포인터에 대한 필요는 비교적 더 복잡한 판독/기록 제어를 통해 달성되는데, 그 이유는 판독 동작은 기록 동작보다 k 배 더 빠른 속도로 발생하기 때문이다. k의 값이 큰 경우, 즉, k의 값이 T의 값에 접 근하는 경우, 원-포인터 알고리즘의 메모리 판독/기록 동작의 수는 전술된 레지스터 교환 시스템에 의하여 수행되는 이러한 동작의 수에 접근하며, 그 결과 원-포인터 시스템에 대하여 유사하게 큰 전력 소모를 야기시킨다.
오리지날(종래 기술) APTFT 시스템의 일반화된 버전은 도 1을 참조하여 이해될 수 있다. 일반화된 실시예는 에포크의 정의로부터 그 명칭을 도출한다. 특히, 하나의 에포크는 메모리 깊이의 절반, 즉 T/2와 동일한 사이즈로 제한될 필요는 없다. 오히려, 하나의 에포크는 일반적으로 T/q와 동일하게 정의 될 수 있고, 여기서 q는 균일하지 않게 정의된 값(2 < q < T)을 가진다.
T/q의 일반적인 에포크 값의 경우, 도 2에 설명된 오리지날 APTFT 관계는 몇 가지 방식으로 수정된다. 첫째, 버퍼(15)의 사이즈는 (T/2)*N 대신 (T/q)*N이다. 둘째, 디코딩된 시퀀스 메모리(13)는, 모든 트렐리스 스테이트에 대하여, 전경로 역추적 유닛(12)으로부터 디코딩된 데이터 시퀀스를 수신하고, 상기 디코딩된 데이터를 2개의 에포크 후보다는, q 에포크 후에 멀티플렉서(14)에 이용 가능하도록 만든다. q 에포크 지연은 T*N의 동일한 메모리 사이즈를 필요로 한다.
도 5를 참조하여 일반화된 오리지날 APTFT 알고리즘에서 발생하는 타이밍 관계가 이해될 것이다. 순방향 추적 포인터 P는 최소 트렐리스 경로를 가리키며 2개의 에포크 이전보다는, q 에포크 이전에 존재하는 최소 경로와 연관되는 트렐리스 스테이트를 제공한다. 일반화된 설계는 하나의 에포크의 간격에 의하여 시간적으로 오프셋된, 순방향 추적에서의 트렐리스 스테이트당 q 개의 내부 포인터들(2개의 내부 포인터보다는)을 필요로 한다. 하나의 에포크의 종료까지, 각각의 내부 포인터 P1, P2, ...Pq는 대응하는 에포크 및 트렐리스 스테이트 경로의 개시 스테이트를 가리키며, 모든 내부 포인터들은 메인 포인터 P를 생성하는데 기여한다. 도 5에 도시된 바와 같이, 순방향 추적은, D1과 연관된 데이터의 디코딩(그 결과 DD1이 되며(셀(26)), 디코딩은 에포크 q+2에서 발생함(셀(25)))을 허용하기 위하여, 데이터를 Dq+1까지 프로세스할 것이다(셀(24)). 따라서, 제1 에포크 디코딩된 데이터 DD1이 출력으로서 제공되기 전에(셀(25)) q+1 에포크는 완전히 프로세스된다(순방향 추적에 의하여 에포크(2 내지 q+1까지), 역추적에 의하여 에포크(1)). 임의의 디코딩된 시퀀스 블록 DD의 제1 비트는 (q+1)*T/q의 메모리 깊이와 연관되고, 디코딩된 시퀀스 블록의 최후 비트는 T의 잔존 메모리 깊이와 연관된다.
데이터는 상기 일반화된 오리지날 APTFT 프로세서에 의하여 프로세스되므로, 메모리 사이즈는 버퍼 메모리에서의 T/q*N 더하기 디코딩된 시퀀스 메모리에서의 T*N(이는 (q+1)/q*T*N의 전체 메모리 사이즈에 해당함)으로 이루어질 것이다. 또한, 일반화된 오리지날 APTFT 알고리즘은 전체적으로 (q+1)*N+1 스테이트 포인터들(역추적 유닛에서의 N 및 순방향 추적 유닛에서의 q*N+1)을 필요로 한다. 버퍼 메모리에서의 하나의 에포크 지연(T/q 샘플), 더하기 디코딩된 시퀀스 메모리에서의 q 에포크 지연(T 샘플)이 존재하여, 결과적으로는 (q+1) 에포크 지연, 또는 (q+1)*T/q 샘플에 해당하는 전체 레이턴시를 야기시킨다.
일반화된 오리지날 APTFT 알고리즘에서는, 순방향 추적 유닛내의 추가적인 내부 포인터들을 희생하여, q가 증가함에 따라 메모리 사이즈 및 레이턴시가 감소한다. 시스템에 따라, 전체 복잡도를 최소화시키고, 메모리 사이즈 및 레이턴시의 감소에 비해 내부 포인터들의 수의 증가는 적은 비용이 되는 q의 적절한 선택이 발견될 수 있다. 이는 일반적으로 사실이며, 그 이유는 내부 포인터들의 수는 제약 길이에 비례하는 한편, 메모리 사이즈는 제약 길이에 따라 기하급수적으로 증가하기 때문이다. 레이턴시에 관한 한 최적의 경우는 q가 T와 일치하는 경우에 발생하며, 그 결과 T+1의 레이턴시를 야기시키고, 이는 이러한 시스템의 경우에 가능한 최소치이다. 그 후, 메모리 사이즈는 (T+1)*N으로 될 것이며 내부 포인터들의 수는 (T+1)*N+1로 될 것이다. 이 경우 에포크는 단 하나의 샘플로 이루어지며 버퍼 메모리는 N 레지스터들로 이루어진다.
일반화된 오리지날 APTFT 기술은 하나 또는 그 이상의 다중의 디코더, 병렬 또는 분산된 데이터 프로세싱을 구비하는 디코더, 직렬 또는 병렬인 다중의 디코더(인터리브되었는지 여부와 무관하게)를 포함하는 임의의 트렐리스 디코더 시스템, 및 임의의 유형의 유사한 신호 프로세싱 어플리케이션에 적용될 수 있다.
또한, 개선된 APTFT 시스템의 일반화된 실시예는 하나의 에포크가 T/q와 일치하는 것으로 재정의함으로써 실현되며, 여기서 q는 균일하지 않게 정의된 값(2 < q < T)을 가진다. T/q의 일반화된 에포크 값의 경우, 개선된 APTFT 시스템에 대한 변경은 버퍼(15)의 사이즈를 (T/2)*N으로부터 (T/q)*N으로 변경하는 것을 포함한다. 디코딩된 시퀀스 메모리(13)는, 모든 트렐리스 스테이트에 대하여, 전경로 역추적 유닛(12)으로부터 디코딩된 데이터 시퀀스를 수신하며, 디코딩된 데이터를 하나의 에포크 후보다는, q-1 에포크 이후에 멀티플렉서(14)에 이용 가능하게 만든다. q-1 에포크 지연은 (q-1)/q*T*N의 메모리 사이즈를 필요로 한다.
도 6을 참조하면 일반화된 개선된 APTFT 시스템에서 발생하는 타이밍 관계의 이해가 가능해질 것이다. 순방향 추적 포인터 P는 최소 경로를 가리키며 하나의 에포크 전보다는, q-1 에포크 전에 존재하는 최소 경로와 연관되는 트렐리스 스테이트를 제공한다. 일반화된 설계는 하나의 에포크 간격으로 시간적으로 오프셋된, 순방향 추적 유닛내의 트렐리스 스테이트마다 q 내부 포인터들(2개의 내부 포인터보다는)을 필요로 한다. 하나의 에포크의 종료까지, 각각의 내부 포인터 P1, P2,...Pq는 대응하는 에포크 및 스테이트 경로의 개시 스테이트를 가리키며, 모든 내부 포인터들은 메인 포인터 P를 생성하는데 기여한다. P1을 제외한 모든 내부 포인터들은 하나의 에포크의 종료시에만 업데이트되며, 그들의 값은 후속하는 에포크동안 불변으로 유지된다. 포인터 P1은 각각의 에포크의 개시시에 리세트되고, 순방향 추적을 통하여 지속적으로 업데이트된다.
도 6에 도시된 바와 같이, 순방향 추적은, D1과 연관된 데이터의 디코딩(그 결과 DD1이 되며(셀(29)), 디코딩은 에포크 q+1에서 발생(셀(30)))을 허용하기 위하여, Dq까지 완전한 에포크를 프로세스할 것이다(셀(28)). 따라서, 제1 에포크 디코딩된 데이터 DD1이 출력으로서 제공되기 전에(셀(30)), q 에포크는 완전히 프로세스된다(순방향 추적에 의하여 에포크(2 내지 q까지), 역추적에 의하여 에포크(1)). 순방향 추적이 에포크(q+1)의 브랜치 j(1 < j < T/2)를 프로세싱하는 경우, 포인터 P1은 에포크(q+1)의 현재 스테이트로부터 개시 스테이트까지 가리킬 것이다. 포인터 P2는 에포크 q의 종료부터 개시 스테이트까지 가리킬 것이고, 포인터 q는 에포크(2)의 종료부터 개시 스테이트까지 가리킬 것이며, 포인터 P는 에포크(2)의 현재 스테이트로부터 개시 스테이트까지 가리킬 것이다. 동시에, 디코딩된 시퀀스 DD1은 멀티플렉서 출력(21)에서 이용 가능하다. 포인터 P1 및 P가 에포크(q+1) 순방향 추적을 통하여 진행함에 따라, 디코딩된 출력 비트는 브랜치(1 내지 T/2)를 통하여 진행한다. 따라서, 잔존 메모리 깊이 슬라이딩 윈도우의 크기는 일정한 값의 T이며, 이것은 에포크(q+1)의 브랜치 j로부터 에포크(1)의 브랜치 j까지의 크기와 동일하고, 여기서 1 < j < T/2이다.
일반화된 개선된 APTFT 프로세서에 의하여 데이터가 프로세스되므로, 메모리 사이즈는 버퍼 메모리에서의 T/q*N 더하기 디코딩된 시퀀스 메모리에서의 (q-1)/q*T*N로 이루어질 것이고, 이는 T*N의 전체 메모리 사이즈에 상당한다. 또한, 일반화된 개선된 APTFT 알고리즘은 전체적으로 (q+1)*N+1 스테이트 포인터(역추적 유닛에서의 N 및 순방향 추적 유닛에서의 q*N+1)를 필요로 한다. 버퍼 메모리에서의 하나의 에포크 지연(T/q 샘플), 더하기 디코딩된 시퀀스 메모리에서의 (q-1) 에 포크 지연((q-1)*T/q 샘플)이 존재하고, 이는 결과적으로 q 에포크 지연, 또는 T 샘플에 상당한 전체 레이턴시를 야기시킨다.
일반화된 개선된 APTFT 알고리즘에서는, 순방향 추적 유닛내의 추가적인 내부 포인터들을 사용하여, q가 증가함에 따라 메모리 사이즈 및 레이턴시는 일정하게 유지된다. 따라서, 2를 초과하여 q를 증가시키는 것에는 비용상 이점은 없다. 그러나, 최적은 아니지만, q > 2에 대한 일반화된 개선된 알고리즘은 상이한 시스템 요건들(예를 들면, 메모리 사이즈의 제한으로부터 초래할 수 있음)을 만족시킬 만큼 충분한 적응성을 제공한다.
일반화된 개선된 APTFT 기술은 하나 또는 그 이상의 다중의 디코더, 병렬 또는 분산된 데이터 프로세싱을 구비한 디코더, 직렬 또는 병렬인 다중의 디코더(인터리브되었는지 여부와는 무관)를 포함하는 임의의 트렐리스 디코더 시스템, 및 임의의 유형의 유사한 신호 프로세싱 어플리케이션에 적용될 수 있다.

Claims (26)

  1. 트렐리스(trellis) 인코딩된 데이터 패킷들의 그룹들을 포함하는 데이터를 프로세싱하고 트렐리스 디코딩된 데이터를 제공하기 위한 시스템으로서,
    상기 인코딩된 데이터 패킷들에 응답하여 트렐리스 스테이트 변환들(trellis state transitions)에 연관된 결정 데이터를 생성하기 위한 수단;
    상기 결정 데이터에 응답하여, 스테이트 변환 트렐리스에 의하여 결정된 바대로의, 선행 트렐리스 스테이트들(antecedent trellis states)의 시퀀스를 식별하기 위한 역추적(traceback) 네트워크 - 상기 선행 트렐리스 스테이트들은 데이터 패킷들의 시퀀스에 대해 식별됨 -;
    상기 선행 트렐리스 스테이트들로부터 희망 트렐리스 스테이트 경로를 선택하기 위한 수단;
    각각의 새로운 트렐리스 브랜치에서 상기 희망 트렐리스 스테이트 경로를 지속적으로 업데이트하기 위한 수단; 및
    상기 식별된 선행 트렐리스 스테이트들의 시퀀스에 응답하여 상기 트렐리스 디코딩된 데이터를 제공하기 위한 수단
    을 포함하는 데이터 프로세싱 및 제공 시스템.
  2. 제1항에 있어서,
    상기 선행 트렐리스 스테이트들은 상기 데이터 패킷들의 시퀀스에 대해 트렐리스를 통하여 전경로 역추적(all-path traceback)을 수행하기 위한 수단에 따라 식별되고,
    각각의 새로운 트렐리스 브랜치에서 상기 희망 트렐리스 스테이트 경로를 지속적으로 업데이트하기 위한 수단은, 트렐리스를 통하여 전경로 순방향 추적(all-path forward trace)을 수행하기 위한 수단에 의해 얻어진 각각의 트렐리스 브랜치와 연관된 데이터에 응답하여 한 에포크(an epoch)에 걸쳐 각각의 새로운 트렐리스 브랜치에서 그 값이 업데이트되는 순방향 추적 포인터에 따라 수행되는 데이터 프로세싱 및 제공 시스템.
  3. 삭제
  4. 제2항에 있어서,
    상기 희망 트렐리스 스테이트 경로는 모든 트렐리스 스테이트들 중 최소 메트릭 경로인 데이터 프로세싱 및 제공 시스템.
  5. 제2항에 있어서,
    상기 전경로 순방향 추적을 수행하기 위한 수단은,
    각각의 트렐리스 스테이트 경로에 대한 제1 포인터 - 상기 제1 포인터는 제1 포인터 값을 가지며, 상기 제1 포인터 값은 한 에포크의 지속 기간에 걸쳐 각각의 새로운 트렐리스 브랜치에서 업데이트됨 -; 및
    각각의 트렐리스 스테이트 경로에 대한 제2 포인터 - 상기 제2 포인터는 제2 포인터 값을 가지며, 상기 제2 포인터 값은 에포크 경계에서 업데이트됨 -
    를 더 포함하며,
    각각의 에포크는 T/2이고, 역추적 간격 T는 트렐리스 인코딩된 데이터 시퀀스 내에 존재하는(residing) 디코딩된 데이터 시퀀스의 잔존 메모리 깊이(survivor memory depth)를 정의하는 데이터 프로세싱 및 제공 시스템.
  6. 제5항에 있어서,
    상기 순방향 추적 포인터는 상기 제1 포인터 값 및 상기 제2 포인터 값 모두에 지속적으로 응답하며, 이에 의해 상기 순방향 추적 포인터는 한 에포크 동안 각각의 트렐리스 브랜치에서 지속적으로 업데이트되는 데이터 프로세싱 및 제공 시스템.
  7. 제6항에 있어서,
    상기 제2 포인터는 상기 제1 포인터의 값으로 각각의 에포크의 종료 시에 한 번 업데이트되며, 상기 제1 포인터는 그 후에 리세트되는 데이터 프로세싱 및 제공 시스템.
  8. 제7항에 있어서,
    상기 데이터 프로세싱 및 제공 시스템에 의하여 출력된 각각의 디코딩된 비트는 T인 연관 메모리 깊이(associated memory depth)를 갖는 데이터 프로세싱 및 제공 시스템.
  9. 제8항에 있어서,
    상기 순방향 추적 포인터는 각각의 새로운 트렐리스 브랜치에서 2개의 이전 에포크로부터 상기 희망 트렐리스 스테이트 경로를 지속적으로 식별하는 데이터 프로세싱 및 제공 시스템.
  10. 제2항에 있어서,
    상기 역추적 네트워크는,
    입력 인코딩된 데이터를, 한번에 한 에포크 동안 데이터 도착의 순서로 버퍼 메모리 유닛내에 기록하기 위한 수단;
    이후의 에포크 동안 상기 버퍼 메모리 유닛으로부터 상기 데이터를 판독하고 이를 상기 전경로 역추적 유닛으로 보내기 위한 수단;
    상기 전경로 역추적 유닛이 상기 버퍼 메모리 유닛으로부터 판독된 데이터로 상기 트렐리스를 통하여 역추적함에 따라, 상기 전경로 역추적 유닛으로부터 디코딩된 시퀀스 메모리 유닛으로 디코딩된 출력들을 보내기 위한 수단;
    한번에 하나의 에포크에 대해, 도착의 역순으로 상기 디코딩된 시퀀스 메모리 유닛으로부터 상기 디코딩된 데이터를 판독하기 위한 수단;
    N개의 디코딩된 시퀀스들 중 하나를 선택하기 위하여 상기 디코딩된 시퀀스 메모리 유닛으로부터의 디코딩된 데이터 출력들을 멀티플렉싱하기 위한 수단 - 여기서, N은 상기 트렐리스에서의 스테이트들의 수임 -; 및
    상기 순방향 추적 포인터의 값에 따라 멀티플렉서 유닛에 의해 상기 디코딩된 시퀀스 메모리로부터 디코딩된 데이터 출력 샘플을 선택하기 위한 수단
    을 더 포함하는 데이터 프로세싱 및 제공 시스템.
  11. 트렐리스 인코딩된 데이터 패킷들의 그룹들을 포함하는 데이터를 프로세싱하기 위한 방법으로서,
    상기 데이터에 응답하여 트렐리스 스테이트 변환들과 연관된 결정 데이터를 생성하는 단계;
    상기 결정 데이터에 응답하여 스테이트 변환 트렐리스에 따라 선행 트렐리스 스테이트들의 시퀀스를 식별하는 단계;
    각각의 트렐리스 브랜치의 특성들에 응답하여 희망 트렐리스 스테이트 경로를 선택하는 단계;
    각각의 새로운 트렐리스 브랜치에서 상기 희망 트렐리스 스테이트 경로를 지속적으로 업데이트하는 단계; 및
    상기 식별된 선행 트렐리스 스테이트들의 시퀀스에 응답하여 트렐리스 디코딩된 데이터를 제공하는 단계
    를 포함하는 데이터 프로세싱 방법.
  12. 제11항에 있어서,
    에포크 경계들 사이에서의 희망 트렐리스 스테이트 경로 선택들을 업데이트하는 단계를 더 포함하고, 각각의 에포크는 T/2이고, 역추적 간격 T는 트렐리스 인코딩된 데이터 시퀀스 내에 존재하는 디코딩된 데이터 시퀀스의 잔존 메모리 깊이를 정의하는 데이터 프로세싱 방법.
  13. 제12항에 있어서,
    한 에포크의 지속 기간에 걸쳐 각각의 새로운 트렐리스 브랜치에서 희망 트렐리스 스테이트 경로를 업데이트 및 선택하는 단계를 더 포함하는 데이터 프로세싱 방법.
  14. 제13항에 있어서,
    복수의 트렐리스 디코딩된 데이터 시퀀스를 식별하는 단계; 및
    한 에포크 지속 기간에 걸쳐 각각의 새로운 트렐리스 브랜치에서 업데이트되는 복합 포인터(composite pointer)로 상기 복수의 트렐리스 디코딩된 데이터 시퀀스 중 하나를 식별하는 단계를 더 포함하는 데이터 프로세싱 방법.
  15. 제14항에 있어서,
    제1 포인터의 도움으로 복수의 트렐리스 디코딩된 데이터 시퀀스를 식별하는 단계;
    한 에포크 지속 기간에 걸쳐 각각의 새로운 트렐리스 브랜치에서 상기 제1 포인터와 연관된 값을 업데이트하는 단계;
    제2 포인터의 도움으로 복수의 트렐리스 디코딩된 데이터 시퀀스를 식별하는 단계; 및
    상기 제1 또는 제2 포인터와 연관된 값이 업데이트될 때마다 상기 복합 포인터와 연관된 값을 업데이트하는 단계
    를 더 포함하는 데이터 프로세싱 방법.
  16. 제15항에 있어서,
    각각의 에포크 경계에서 상기 제2 포인터와 연관된 값을 상기 제1 포인터와 연관된 값으로 대체하고, 그 후에 상기 제1 포인터를 리세트하는 단계를 더 포함하는 데이터 프로세싱 방법.
  17. 인코딩된 심볼들을 디코딩하기 위한 복수의 트렐리스 브랜치 및 트렐리스 스테이트를 갖는 트렐리스 디코더로서,
    트렐리스 스테이트 변환들과 연관된 결정 데이터를 생성하기 위한 수단;
    스테이트 변환 트렐리스에 의하여 결정된 바대로의, 복수의 선행 트렐리스 스테이트 시퀀스를 지연된 결정 데이터로 식별함으로써 복수의 트렐리스 디코딩된 데이터 시퀀스를 제공하기 위한 수단 - 상기 스테이트 변환 트렐리스는 N개의 스테이트를 가짐 -; 및
    상기 결정 데이터로 선행 트렐리스 스테이트들을 식별함으로써 업데이트된 포인터로 상기 복수의 트렐리스 디코딩된 데이터 시퀀스 중 하나를 식별하기 위한 수단 - 상기 포인터는 각각의 트렐리스 브랜치와 연관된 데이터에 응답하여 한 에포크에 걸쳐 각각의 트렐리스 브랜치에서 지속적으로 업데이트되고, 한 에포크는 역추적 간격 T의 서브간격들임 -
    을 포함하는 트렐리스 디코더.
  18. 제2항에 있어서,
    상기 전경로 순방향 추적을 수행하기 위한 수단은,
    각각의 트렐리스 스테이트 경로에 대한 제1 포인터 P1 - 상기 제1 포인터는 제1 포인터 값을 가지며, 상기 제1 포인터 값은 한 에포크 지속 기간에 걸쳐 각각의 새로운 트렐리스 브랜치에서 업데이트됨 -; 및
    각각의 트렐리스 스테이트 경로에 대한 추가적인 q-1 포인터들 Pj(j=2,3,...,q) - 상기 포인터들은 포인터 값들을 가지며, 각각의 포인터 값은 에포크 경계에서 업데이트됨 -;
    를 더 포함하고,
    각각의 에포크는 역추적 간격 T의 서브간격으로서 T/q의 지속 기간을 가지며, 여기서 q는 2보다 크거나 2와 같은 정수이고, q는 T보다 작거나 T와 같으며, 상기 역추적 간격 T는 트렐리스 인코딩된 데이터 시퀀스 내에 존재하는 디코딩된 데이터 시퀀스의 잔존 메모리 깊이를 정의하는 데이터 프로세싱 및 제공 시스템.
  19. 제18항에 있어서,
    상기 순방향 추적 포인터는 모든 q 포인터들의 값들에 지속적으로 응답하며, 이에 의해 상기 순방향 추적 포인터는 한 에포크 동안 각각의 트렐리스 브랜치에서 지속적으로 업데이트되는 데이터 프로세싱 및 제공 시스템.
  20. 제19항에 있어서,
    각각의 포인터 Pj(j=3,...,q)는 포인터 Pj-1의 값으로 각각의 에포크의 종료 시 한 번 업데이트되고, 포인터 P2는 상기 포인터 P1의 값으로 각각의 에포크의 종료 시 한 번 업데이트되며, 상기 제1 포인터 P1은 그 후에 리세트되는 데이터 프로세싱 및 제공 시스템.
  21. 제20항에 있어서,
    상기 데이터 프로세싱 및 제공 시스템에 의하여 출력된 데이터의 시퀀스 내에 존재하는 각각의 디코딩된 비트는 T인 연관 메모리 깊이를 갖는 데이터 프로세싱 및 제공 시스템.
  22. 제21항에 있어서,
    상기 순방향 추적 포인터는 각각의 새로운 트렐리스 브랜치에서 q의 이전 에포크들로부터 상기 희망 트렐리스 스테이트 경로를 지속적으로 식별하는 데이터 프로세싱 및 제공 시스템.
  23. 트렐리스 인코딩된 데이터 패킷들의 그룹들을 포함하는 데이터를 프로세싱하고 트렐리스 디코딩된 데이터를 제공하기 위한 시스템으로서,
    상기 인코딩된 데이터 패킷들에 응답하여 트렐리스 스테이트 변환들과 연관된 결정 데이터를 생성하기 위한 수단;
    상기 결정 데이터에 응답하여, 스테이트 변환 트렐리스에 의하여 결정된 바대로의, 선행 트렐리스 스테이트들의 시퀀스를 식별하기 위한 역추적 네트워크;
    상기 선행 트렐리스 스테이트들로부터 희망 트렐리스 스테이트 경로를 선택하기 위한 수단;
    상기 희망 트렐리스 스테이트 경로를 업데이트하기 위한 수단; 및
    상기 식별된 선행 트렐리스 스테이트들의 시퀀스에 응답하여, 상기 트렐리스 디코딩된 데이터를 제공하기 위한 수단
    을 포함하고,
    상기 역추적 네트워크는,
    트렐리스를 통하여 전경로 역추적을 수행하기 위한 수단; 및
    트렐리스를 통하여 전경로 순방향 추적을 수행하기 위한 수단
    을 더 포함하고,
    상기 전경로 순방향 추적을 수행하기 위한 수단은,
    각각의 트렐리스 스테이트 경로에 대한 제1 포인터 P1 - 상기 제1 포인터는 제1 포인터 값을 가지고, 상기 제1 포인터 값은 한 에포크의 지속 기간에 걸쳐 각각의 새로운 트렐리스 브랜치에서 업데이트됨 -; 및
    각각의 트렐리스 스테이트 경로에 대한 추가적인 q-1 포인터들 Pj(j=2,3,..., q) - 이 포인터들은 포인터 값들을 가지며, 각각의 포인터 값은 에포크 경계에서 업데이트됨 -
    를 더 포함하며,
    각각의 에포크는 역추적 간격 T의 서브간격으로서 T/q의 지속 기간을 가지며, q는 2보다 크거나 2와 같은 정수이고, q는 T보다 작거나 T와 같으며, 상기 역추적 간격 T는 트렐리스 인코딩된 데이터 시퀀스 내에 존재하는 디코딩된 데이터 시퀀스의 잔존 메모리 깊이를 정의하는 데이터 프로세싱 및 제공 시스템.
  24. 제23항에 있어서,
    복합 순방향 추적 포인터는 상기 제1 포인터 및 상기 추가적인 q-1 포인터들의 값들에 응답하고, 상기 복합 순방향 추적 포인터는 각각의 에포크 경계에서 업데이트되는 데이터 프로세싱 및 제공 시스템.
  25. 제24항에 있어서,
    각각의 포인터 Pj(j=3,...,q)는 포인터 Pj-1의 값으로 각각의 에포크의 종료 시 한 번 업데이트되고, 포인터 P2는 상기 포인터 P1의 값으로 각각의 에포크의 종료 시 한 번 업데이트되며, 상기 제1 포인터 P1은 그 후에 리세트되는 데이터 프로세싱 및 제공 시스템.
  26. 삭제
KR1020047016609A 2002-04-17 2003-03-10 트렐리스 디코더를 위한 메모리 관리 알고리즘 KR101010784B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37324602P 2002-04-17 2002-04-17
US60/373,246 2002-04-17
PCT/US2003/007166 WO2003090361A1 (en) 2002-04-17 2003-03-10 A memory management algorithm for trellis decoders

Publications (2)

Publication Number Publication Date
KR20040099452A KR20040099452A (ko) 2004-11-26
KR101010784B1 true KR101010784B1 (ko) 2011-01-25

Family

ID=29251004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047016609A KR101010784B1 (ko) 2002-04-17 2003-03-10 트렐리스 디코더를 위한 메모리 관리 알고리즘

Country Status (9)

Country Link
US (1) US7149952B2 (ko)
EP (1) EP1495547A4 (ko)
JP (1) JP4191053B2 (ko)
KR (1) KR101010784B1 (ko)
CN (1) CN1647391B (ko)
AU (1) AU2003218034A1 (ko)
BR (1) BR0309218A (ko)
MX (1) MXPA04010142A (ko)
WO (1) WO2003090361A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140947B2 (en) * 2005-09-30 2012-03-20 Agere Systems Inc. Method and apparatus for storing survivor paths in a Viterbi detector using systematic pointer exchange
US20080123210A1 (en) * 2006-11-06 2008-05-29 Wei Zeng Handling synchronization errors potentially experienced by a storage device
KR100864722B1 (ko) * 2006-12-04 2008-10-23 삼성전자주식회사 트렐리스 인코더 및 이를 구비한 트렐리스 인코딩 장치
US8433004B2 (en) 2010-02-26 2013-04-30 Research In Motion Limited Low-latency viterbi survivor memory architecture and method using register exchange, trace-back, and trace-forward
US8402342B2 (en) * 2010-02-26 2013-03-19 Research In Motion Limited Method and system for cyclic redundancy check

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3789360A (en) * 1972-10-13 1974-01-29 Harris Intertype Corp Convolutional decoder
KR0135796B1 (ko) * 1994-11-14 1998-04-27 김광호 비터비복호기에서 트레이스백 수행장치
CN1136731A (zh) * 1995-05-16 1996-11-27 林茂昭 多层网格编码系统
JP3280834B2 (ja) * 1995-09-04 2002-05-13 沖電気工業株式会社 符号化通信方式における信号判定装置および受信装置ならびに信号判定方法および通信路状態推定方法
KR970063964A (ko) * 1996-02-28 1997-09-12 김광호 비터비디코더의 생존메모리관리방법 및 그에 따른 생존메모리장치
US5841819A (en) * 1996-04-09 1998-11-24 Thomson Multimedia, S.A. Viterbi decoder for digital packet signals
US6094739A (en) * 1997-09-24 2000-07-25 Lucent Technologies, Inc. Trellis decoder for real-time video rate decoding and de-interleaving
KR100237490B1 (ko) * 1997-11-29 2000-01-15 전주범 트렐리스 코드 데이터의 생존 경로 역추적 장치
US6775334B1 (en) * 1998-11-03 2004-08-10 Broadcom Corporation Equalization and decision-directed loops with trellis demodulation in high definition TV
WO2001017116A1 (en) * 1999-08-31 2001-03-08 Broadcom Corporation Memory-based shuffle-exchange traceback for gigabit ethernet transceiver
DE60026005T2 (de) * 1999-09-07 2006-08-10 Thomson Licensing Trellisumwandler für TRELLISDEKODER
US6560749B1 (en) * 2000-01-28 2003-05-06 Nec Electronics, Inc. Apparatus and method for implementing a decoder for convolutionally encoded symbols
BRPI0309327B1 (pt) * 2002-04-16 2017-12-12 Thomson Licensing S. A "Apparatus and method for providing transformer-decoded data in a system for processing of video data"

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M Boo et al. " High-Performance VLSI Architecture for the Viterbi Algorithm," IEEE Trans. on Comm. Vol. 45, No. 2, Feb. 1997.

Also Published As

Publication number Publication date
US7149952B2 (en) 2006-12-12
CN1647391B (zh) 2011-05-11
BR0309218A (pt) 2005-02-09
WO2003090361A1 (en) 2003-10-30
AU2003218034A1 (en) 2003-11-03
EP1495547A1 (en) 2005-01-12
JP4191053B2 (ja) 2008-12-03
MXPA04010142A (es) 2005-01-25
CN1647391A (zh) 2005-07-27
US20050257123A1 (en) 2005-11-17
KR20040099452A (ko) 2004-11-26
JP2006511977A (ja) 2006-04-06
EP1495547A4 (en) 2006-11-08

Similar Documents

Publication Publication Date Title
US5151904A (en) Reconfigurable, multi-user viterbi decoder
EP1102408B1 (en) Viterbi decoder
US20050149838A1 (en) Unified viterbi/turbo decoder for mobile communication systems
KR100779782B1 (ko) 비터비 디코더 용 고속 acs 유닛
US6272661B1 (en) Minimum memory implementation of high speed viterbi decoder
US5878092A (en) Trace-back method and apparatus for use in a viterbi decoder
KR100285067B1 (ko) 비터비 디코더의 가산 비교 선택 회로
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
KR101010784B1 (ko) 트렐리스 디코더를 위한 메모리 관리 알고리즘
US7590928B2 (en) Apparatus and method for Viterbi decoding
US5257263A (en) Circuit for decoding convolutional codes for executing the survivor path storage and reverse scanning stage of a Viterbi algorithm
JPH0951278A (ja) ビタビ復号器
US6385258B1 (en) Viterbi decoder for use in a mobile communication system
Black et al. A hardware efficient parallel Viterbi algorithm
Hu et al. A Viterbi decoder memory management system using forward traceback and all-path traceback
KR20000001483A (ko) 다중테일을 갖는 터보코드 및 그의 부호화/복호화방법 및 그를이용한 부호기/복호기
KR0155516B1 (ko) 비터비 복호기에서 한개의 메모리를 사용한 상태 매트릭 메모리 운용방법 및 그 장치
KR100491016B1 (ko) 역방향 상태 천이의 연속적 제어에 의한 역추적 비터비복호기 및 그 방법
KR100410995B1 (ko) 즉시역추적 알고리즘을 이용한 비터비 복호기용 생존경로메모리 관리 방법 및 그 장치
RU2247471C2 (ru) Компонентный декодер и способ декодирования в системе мобильной связи
JPH10200419A (ja) ビタビ復号方法および装置
KR0169680B1 (ko) 비터비 복호기
Jung et al. A new survivor memory management method in Viterbi decoders
Manzoor et al. VLSI implementation of an efficient pre-trace back approach for Viterbi algorithm
JP2004120791A (ja) ビタビ復号器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131219

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200107

Year of fee payment: 10