KR20000047571A - 데이터 디코딩을 위한 축소된 상태 디바이스 및 방법 - Google Patents

데이터 디코딩을 위한 축소된 상태 디바이스 및 방법 Download PDF

Info

Publication number
KR20000047571A
KR20000047571A KR1019990047500A KR19990047500A KR20000047571A KR 20000047571 A KR20000047571 A KR 20000047571A KR 1019990047500 A KR1019990047500 A KR 1019990047500A KR 19990047500 A KR19990047500 A KR 19990047500A KR 20000047571 A KR20000047571 A KR 20000047571A
Authority
KR
South Korea
Prior art keywords
winning
states
acps
memory
pss
Prior art date
Application number
KR1019990047500A
Other languages
English (en)
Other versions
KR100606159B1 (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 KR20000047571A publication Critical patent/KR20000047571A/ko
Application granted granted Critical
Publication of KR100606159B1 publication Critical patent/KR100606159B1/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

데이터를 디코딩하는 방법 및 디바이스. 디바이스 및 방법은 인코드된 데이터의 각각에 대해 인코더의 모든 가능한 상태들로부터 특정한 현재의 상태들을 선택하고, 선택된 현재의 상태들에 대해 누적된 조건부 확률들(ACPs)을 발생하고, 임계치와 ACP를 비교하고, 그 비교된 결과에 근거하여 ACP들과 관련된 이전의 상태들을 저장한다. 그 저장된 이전의 상태들은 디코드된 데이터를 발생하기 위하여 소정의 계획에 따른 선택적인 츨력이다.

Description

데이터 디코딩을 위한 축소된 상태 디바이스 및 방법{Reduced-state device and method for decoding data}
본 발명은 데이터를 디코딩하는 디바이스 및 방법에 관한 것이고 특히, 인코더의 모든 가능한 상태들중의 특정한 상태들을 위한 누적된 조건부 확률들(ACP들)을 발생함으로써 데이터 디코딩을 위한 축소된-상태의 디바이스 및 방법에 관한 것이다.
종래의 컨벌루션 인코더는 복수의 가산기들과 시프트 레지스터를 사용하여 정보 비트들을 인코드한다. 도 1은 종래의 2분의 1 속도의 컨벌루션 인코더의 개략도를 도시한다. 여기서 도시된 것처럼, 종래의 컨벌루션 인코더(100)는 서로 직렬로 연결된 복수의 메모리 유니트들 M0-M7으로 이루어지는 시프트 레지스터(11)를 포함한다. 메모리 유니트들 M0-M7의 각각은 이미 저장되어 있는 비트를 다음 비트 메모리로 시프트하는 동안 비트 입력을 저장하기 위한 1 비트 메모리이다.
시프트 레지스터(11)에서 8개의 1 비트 메모리 유니트들이 있기 때문에, 그 시프트 레지스터(11)는 256가지의 가능한 상태들을 갖는다(상태 0에서 상태 255까지)
"상태"라는 용어는 소정의 시간에 시프트 레지스터(11)의 내용을 나타낸다. 시프트 레지스터(11)의 상태는 시프트 레지스터(11)의 이전 상태의 도착하는 정보 비트가(즉, 제 1 메모리 유니트 M0에 입력될 비트) 0이면 짝수상태이고, 시프트 레지스터(11)의 이전 상태의 도착하는 정보 비트가 1이면 홀수상태이다.
도 1의 종래의 컨벌루션 인코더(100)의 동작은 다음과 같다. 인코드된 정보 비트들은 한번에 제 1 메모리 유니트 M0로 입력된다. 정보 비트들의 블럭은(예로, 196비트들) 통상적으로 한번에 처리된다. 제 1 메모리 유니트(M0)의 이전 내용은 제 2 메모리 유니트로 이동되고, 제 2 메모리 유니트(M1)의 이전 내용은 제 3 메모리 유니트(M2)로 , 제 3 메모리 유니트(M2)의 이전 내용은 제 4 메모리 유니트(M3)로 이동될 때, 인코더(100)으로의 각 새로운 정보 비트 입력은 시프트 레지스터(11)의 제 1 메모리 유니트(M0)로 푸시(push)된다. 제어기(도시되지 않은)는 소정의 시간 간격으로 메모리 유니트들(M0-M7)의 비트들을 시프트하는 클럭 신호를 생성한다.
제 1 가산기(10)는 제 1 계수 C0를 발생하기 위하여, 메모리 유니트들 (M0,M1,M2,M4,M6 및 M7)에서 저장되는 비트들을 갖는 시프트 레지스터(11)의 도착하는 정보 비트를 가산한다. 제 2 가산기(12)는 제 2 계수(C1)를 발생하기 위하여 메모리 유니트들(M1,M2,M3 및 M7)에서 저장되는 비트들을 갖는 도착하는 정보 비트를 가산한다. 이 처리에 따라, 정보 데이터의 1비트는 인코더(100)으로 입력되고, 한쌍의 계수들 C0 및 C1은 인코드된 데이터로써 인코더(100)으로부터 출력된다. 따라서, 그 인코더(100)는 2분의 1 속도를 갖는다. 종래의 2분의 1 속도 컨벌루션 인코더(100)가 서술되었음에도 불구하고, 다른 처리속도, 예로, 3분의 1, 3분의 2 등등을 갖는 인코더들이 당업계에서 또한 알려져 있다.
인코더(100)에 의해 발생된 제 1 및 제 2 계수 C0 및 C1 (인코드된 데이터)은 통신 채널들을 통하여 다른 인코더들/디코더들을 통과한다. 그러나, 이 처리동안 인코드된 데이터는 비트 오염되고 신뢰도가 떨어진다. 예를 들어, 인코드된 데이터가 통신 채널들을 통과할 때, 특정 0 비트들이 1로 바뀌고, 또한 반대로 바뀌어서 오염된 계수들 CC0 및 CC1들은 인코드된 데이터로써 전송되고 종래의 컨벌루션 디코더에 의해 디코드된다.
오염된 계수들 CC0 및 CC1을 디코드하기 위하여, 종래의 컨벌루션 디코더는 인코더(100)의 시프트 레지스터(11)의 모든 가능한 상태들을 가정하고, 원래의 오염되지 않은 계수들 C0 및 C1들이 무엇인지 결정하려고 시도한다. 인코더(100)으로부터의 오리지널 계수들 C0 및 C1이 결정될 수 있다면, 그때에 정확한 입력 데이터(즉, 인코더(100)의 도착하는 정보 비트들)는 디코드된 데이터로써 복구될 수 있다.
도 2는 오염된 계수들 CC0 및 CC1과 같은 인코드된 데이터를 디코딩하는 종래의 컨벌루션 디코더(200)의 블럭도를 도시한다. 그 디코더(200)는 도시된 것처럼 연결된 상태 계수기(20)와 이전의 상태 위치기(22)와, 제 1 및 제 2 인코더들(24a) 및 (24b)와 모듈로 2 유니트(26)와 제 1 및 제 2 양자화기들,(28a) 및 (28b)와 제 1 및 제 2 가산기들(30a) 및 (30b)와 최대 선택기(32)와 메모리 유니트(34)와 디코딩 유니트(36)를 포함한다.
상태 계수기(20)는 컨벌루션 인코더(100)에서 시프트 레지스터(11)의 모든 256가지의 가능한 상태들을 수용하기 위하여 오염된 계수들 CC0 및 CC1 의 각 쌍에 대해 상태 0에서 상태 255까지 계수한다. 그 상태 계수기(20)에 의한 상태 계수는 메모리 유니트(34)로부터 발생되는 클럭 신호를 근거로 수행된다. 각 현재의 상태 계수 값에 근거하여, 그 이전의 상태 위치기(22)는 공지된 처리에 따라 2개의 가능한 이전 상태들을 결정한다(도 1에서 도시된 시프트 레지스터(11)의 메모리 유니트들 M0-M7의 2개의 가능한 내용들). 2개의 가능한 이전 상태들의 하나는 첫번째 인코더(24a)로 출력되고, 다른 가능한 이전의 상태는 제 2 인코더(24b)로 출력된다.
모듈로 2 유니트(26)는 상태 계수기(20)으로부터 상태 계수 값을 수신하고 각 상태 계수 값에 근거하여 0 또는 1을 발생한다. 디코더(200)에 의하여 복구되기 위하여 모듈로 2 유니트(26)로부터의 그 0 및 1 출력은 가능한 정보 비트들(0과 1)을 표현한다.
제 1 및 제 2 인코더들(24a) 및 (24b)의 각각은 모듈로 2 유니트(26)와 이론적 계수들 (TC0) 및 (TC1)을 발생하기 위하여 이전의 상태 위치기(22)에 의해 결정되는 2개의 가능한 이전의 상태들의 하나로부터 수신된다. 제 1 및 제 2 인코더들(24a) 및 (24b)로의 각 입력에 있어서, 제 1 인코더(24a)는 한쌍의 이론적 계수들 (TCO) 및 발생하고, 제 2 인코더(24b)는 한쌍의 제 2 이론적 계수들 (TC0) 및 (TC1)을 발생한다. 이 처리는 256가지의 가능한 상태들에 대해 반복되어서 256쌍의 이론적 계수들 (TC0) 및 (TC1)은 제 1 및 제 2 인코더들(24a) 및 (24b)의 각각으로부터 순차적으로출력된다.
제 1 및 제 2 양자화기들(28a) 및 (28b)의 각각은 각각의 상태 계수 값에 대해 한쌍의 이론적 계수들(TCO) 및 (TC1)을 수신하고, 인코드된 데이터 비트들은(한쌍의 오염된 계수들(CC0) 및 (CC1)) 디코더(200)으로 입력된다. 제 1 및 제 2 양자화기 (28a) 및 (28b)의 각각은 오염되지 않은 계수들 C0 및 C1이 디코더(200)에 입력된다는 것을 가정한 상태에서, 순차적으로수신된 이론적인 계수들 (TC0) 및 (TC1)의 쌍들을 근거로 하여 오염된 계수들 CC0 및 CC1의 각 쌍의 조건부 확률을 결정하고, 다음에, 특정한 수의 레벨들, 예로, 32 또는 64 레벨들로 조건부 확률들을 양자화한다. 그 양자화된 값들은 제 1 및 제 2 양자화기들 (28a) 및 (28b) 각각으로부터 출력되고, 제 1 및 제 2 양자화기들은 입력된 오염된 계수들 (CC0) 및 (CC1)의 각 쌍이 이론적인 계수들 (TC0) 및 (TC1)의 256개의 쌍들과 매치되는지 나타낸다. 따라서, 종래의 컨벌루션 디코더(100)는 인코더(100)의 전체 256가지의 가능한 상태들을 위한 조건부 확률들을 결정함으로써 완전한 검색 알고리즘을 실행한다.
양자화된 값이 양자화기들(28a) 및 (28b)로부터 출력되는때면 언제든지, 제 1 및 제 2 가산기들(30a) 및 (30b)의 각각은 갱신된 ACP들을 발생하도록 메모리 유니트(34)에서 저장되는 누적된 양자화된 값(즉, ACP)에 대응하는 현재의 양자화된 값을 가산한다. 최대 선택기(32)는 소정의 시간에 가산기들(30a) 및 (30b)로부터 2개의 ACP들을 수신한다. 선택된 ACP는 위닝(winning) ACP로써 여기 이후에서 언급될 것이고, 위닝 ACP를 야기하는 이전의 상태는 위닝 이전의 상태(PS)라고 언급될 것이다. 그 위닝 ACP 및 PS 는 메모리 유니트(34)로 출력되고, 여기서 위닝 ACP는 현재의 상태 계수 값에 대응하는 메모리 유니트(34)의 데이터 슬롯에 저장되는 ACP로 교체된다.
196개의 정보 비트들의 블럭이 인코더(100)에 의해서 한번에 처리된다면, 메모리 유니트(34)는 0부터 255까지 가능한 ACP들 및 196개의 정보 비트들의 각각을 위한 대응하는 PS들을 저장하고, 그 최대 선택기(32)의 출력들을 사용하여 모든 256개의 ACP들을 갱신해야만 한다. 디코딩 유니트(36)에 의해 처리하고 이 처리를 완성하기 위하여 메모리 유니트(34)는 위닝 ACP들을 저장하기 위한 다른 메모리 어레이들에 외에 위닝 PS들을 저장하기 위하여 256*196개의 메모리 어레이를 필요로 한다. 도 2a는 위닝 PS들을 저장하기 위하여 메모리 유니트(34)의 256*196의 메모리 어레이의 예를 도시한다. 여기서 도시된 것과 같이, 메모리 유니트(34)의 메모리 어레이(34a)는 256개의 행(RO-R255)과 196개의 열로(C0-C195) 구성되어 있다. 각 행 수는 현재 상태의 값을 나타내고, 각 열 수는 196개의 정보 비트들에서 한 비트를 나타낸다. 각 정보 비트(즉, 각 열을 위한)를 위하여, 메모리 유니트(34)는 전체 256가지의 가능한 상태들에 대응하는 PS들을 그것의 어레이(34a)에 저장한다. 예를 들어, 현재의 상태가 0이라면(즉, R0), 196번째, 정보 비트는 디코더(200)에 의해 디코드되며 이 특정한 현재 상태를 위한 그 위닝 PS들는 최대 선택기(200)에 의해 3으로 결정되고 다음에 3의 위닝 PS들는 어레이(34a)의 데이터 슬롯(R0,C195)에 저장된다.
일단 어레이(34a)에 모든 슬롯들이 채워지면, 그 디코딩 유니트(36)는 어레이(34a)를 사용하는 원래의 정보 비트들을 복구하기 시작한다. 그 디코딩 유니트(36)는 처음에 어레이(34a)의 슬롯(R0,C195)로부터 3의 위닝 PS들을 수신한다. 그 위닝 PS가 3이기 때문에, 그 디코딩 유니트(36)은 다음 열 C194의 행 R3로 가고, 그곳으로부터 1의 위닝 PS를 수신한다. 위닝 PS가 여기서 1이기때문에, 그 디코딩 유니트(36)은 다음 열,C193의 행 R1으로 가고, 그곳으로부터 255개의 위닝 PS를 수신한다. 위닝 PS가 이제 255이기 때문에, 그 디코딩 유니트(36)는 다음 열 192의 행 255로 가고, 그곳으로부터 62의 위닝 PS를 수신한다. 이 처리는 마지막 열 C0가 탐색될 때까지 반복된다. 이 복구 처리의 결과로써, 196개의 정수들이 순차적으로디코딩 유니트(36)에 의해 모인다. 196개의 정수들이 홀수인지 짝수인지에 따라, 0또는 1의 비트가 원래의 196개의 정보 비트들을 나타내는 디코드된 데이터로써 디코딩 유니트(36)으로부터 출력된다.
위에서 언급되었듯이, 종래의 디코더들은 인코더의 모든 가능한 상태들의 PS들을 저장하기 위하여 큰 메모리 어레이(예로, 256*196)를 요구한다. 그러나, 종종, 디코더에서 그렇게 큰 메모리 어레이를 사용하는 것은 경제적으로 실행불가능하다. 더욱이, 시간이 경과할 때, 한 데이터 블럭의 크기와 가능한 상태들의 수가 , 매우 더 큰 메모리를 요구하며, 증가되는 경향이 있다. 그러나, 큰 메모리가 시스템에서 사용될 수 있을지라도, 종래의 컨벌루션 디코더들에 의해 실현되는 완전한 검색 알고리즘은 ACP들이 인코더의 모든 가능한 상태들에 대해 계산되어야 하기 때문에 극단적으로 시간을 소비한다.
도 1은 종래의 컨벌루션 인코더의 개략도.
도 2는 종래의 컨벌루션 디코더의 블럭도.
도 2a는 도 2의 종래의 디코더에서 사용되는 메모리 어레이의 예를 도시하는 도.
도 3은 본 발명의 실시예에 따른 컨벌루션 디코더의 블럭도.
도 4는 도 3의 디코더의 상태 선택기의 블럭도.
도 5a 및 5b는 도 3의 디코더에서 제 1 메모리 유니트의 메모리 어레이들의 예를 도시하는 도.
도 6는 도 3의 디코더의 임계치 측정기의 블럭도.
도 7a 및 7b는 도 6에서 도시된 임계치 측정기의 계수기 어레이의 예들을 도시하는 도.
도 8a는 도 3의 디코더에서 제 2 메모리 유니트의 제 1 메모리 어레이의 예를 도시하는 도.
도 8b 및 8c는 2개의 상이한 시간에서 도 3의 디코더에서 제 2 메모리 유니트의 제 2 메모리 어레이의 예들을 도시하는 도.
* 도면의 주요 부분에 대한 부호의 설명 *
100 : 종래의 컨벌루션 인코더, 200 : 종래의 컨벌루션 디코더
300 : 본 발명의 실시예에 따른 디코더, 40 : 상태 계수기
46 : 상태 선택기, 64: 임계치 측정기
58 : 최대 선택기, 48: 모듈로 2 유니트
84 : 계수기 어레이
본 발명은 누적된 조건부 확률들과 관련된 위닝 이전의 상태들(PSs)을 저장하기 위하여 ACP들이 적게 발생되기 때문에 적은 메모리를 사용하는 데이터 디코딩을 위한 축소된-상태 방법 및 디바이스에 관한 것이다. 그 축소된 상태 디바이스 및 방법은 제어 신호를 근거로하는 각 인코드된 데이터를 위한 인코더의 모든 가능한 상태들로부터 오직 특정한 현재의 상태들을 선택한다. 각 비선택된 현재의 상태에 있어서, 소정의 양자화된 값(PQV)이 출력된다. 그 ACP들 및 그 PQV는 임계값과 비교된다. 그 ACP/PQV이 임계값보다 크거나 동일하다면, 그러한 ACP/PQV과 관련된 PS는 제 1 메모리 어레이에 저장된다. 제 2 메모리 어레이는 위닝 PS가 저장되는 제 1 메모리 어레이의 위치 정보를 저장한다. 제 1 메모리 어레이의 각 열로부터, 여기에 저장된 값들의 하나가 이전의 열들로부터 선택된 값을 근거로하여 선택된다. 이 선택된 값들은 0또는 1 비트로 변환되고, 그 변환된 데이터 비트들은 디코드된 데이터로써 출력된다. 따라서, 본 발명은 모든 가능한 상태들중의 특정한 상태들만을 위해 ACP들을 발생한다. 따라서, ACP들와 관련된 PS들을 저장하기 위하여 적은 메모리를 요구한다. 더욱이, 본 발명은 축소된 상태들이 디코드된 데이터를 발생하기 위하여 검색되기 때문에, 더 빠른 디코딩 처리를 제공한다.
다음의 상세한 서술은 디코더 및 본 발명에 따라 데이터를 디코딩하는 방법에 관한 것이다. 본 디바이스 및 방법에서, 오직 특정 상태들은(예로, 가장 많이 발생하는) 디코더의 메모리 크기를 축소하고 디코더의 디코딩 속도를 증가시키기 위하여 인코딩 디바이스의 모든 가능한 상태들중에서 검색된다. 또한 본 발명의 방법은 컴퓨터들 및 컴퓨터 프로그램들 또는 유사한 것들을 사용하여 실현될 수 있다.
본 발명에 따라 디코더의 동작 및 구조는 도 3-8b를 참조하여 이후에 설명될 것이다. 이 예에서, 본 발명의 디코더는 도 1에서 도시된 시프트 레지스터(11)인 인코더의 8 비트(256가지의 가능한 상태들) 시프트 레지스터로부터 출력인 인코드된 데이터를(오염된 계수들 CC0 및 CC1의 쌍들) 디코드한다. 그러나, 본 디바이스 및 방법은 상이한 크기의 시프트 레지스터 또는 다른 유형의 인코더들을 사용하여 발생되는 다른 인코드된 데이터를 디코딩하기 위하여 사용될 수 있다.
도 3은 본 발명에 따라 디코더(300)의 블럭도를 도시한다. 여기에서 도시된 것처럼, 디코더(300)는 상태 계수기(40)와, 이전의 상태 위치기(42)와 상태 선택기(46)와 모듈로 2 유니트(48)와 복수의 인코더들(50a) 및 (50b)와 복수의 양자화기 (52a) 및 (52b)와 복수의 가산기들(54a) 및 (54b)와, 최대 선택기(58)와 제 1 메모리 유니트(60a)와 디코딩 유니트(68)를 포함한다. 상태 계수기(40)는 당업계에서 알려진 시프트 레지스터일 수 있고 이전 상태 위치기(42)와, 모듈로 2 유니트(48)와 복수의 인코더들(50a) 및 (50b)와 복수의 양자화기 (52a) 및 (52b)와 복수의 가산기들(54a) 및 (54b)와, 최대 선택기(58)는 도 1에서 도시된것처럼 잘 알려져 있다.
상태 계수기(40)는 제 1 메모리 유니트(60a)로부터 발생된 클럭 신호를 근거로하여 가능한 상태 0부터 가능한 상태 255까지 계수한다. 그 상태 계수기(40)는 시프트 레지스터 또는 당업계에서 알려진 계수 디바이스들일 수 있다. 그 상태 계수기(40)가 이 예에서 256개의 가능한 상태들을 계수함에도 불구하고, 가능한 상태들의 상이한 수는 인코더등의 크기에 따라 계수될 수 있다. 그 상태 계수기(40)은 모듈로 2 유니트(48)와 이전의 상태 위치기(42) 모두로 각 상태 계수 값을 출력한다. 각 상태 계수 값에 있어서, 이전의 상태 위치기(42)는 2개의 가능한 이전의 상태들(PS1 및 PS2)을 결정한다. 현재의 상태가 "N"이고 가능한 상태들의 총 수가 "M"이라면, 2개의 가능한 이전 상태들은 "N/2" 및 "(N+M)/2" 이다. 예를 들어, 상태 계수기(40)가 상태(4)로부터 상태(5)까지 시프트하고, 상태(5)를 출력한다. 현재의 상태 계수로써 이전의 상태 위치기(42)는 현재 상태(상태 5)에 대응하는 2개의 가능한 이전 상태들이 "상태(2)"(2≒5/2) 및 "상태(130)"(130≒(5+256)/2)이라는 것을 결정한다. 이 예에서처럼, 세그먼트이 십진수를 초래한다면, 그 십진수는 우수리가 잘린다.
이전의 상태 위치기(42)는 다음에 2개의 가능한 이전 상태들 PS1 및 PS2(예로, 상태 2 및 상태 130)을 각각 제 1 및 제 2 입중계선들 (70a) 및 (70b)를 통하여 상태 선택기(46)으로 출력한다. 도 4는 상태 선택기(46)의 상세한 블럭도를 도시한다.
도 4에서 도시된 것처럼, 상태 선택기(46)는 제 1 및 제 2 전송기들(73a) 및 (73b)를 포함하고 제 1 및 제 2 메모리들(75a) 및 (75b)는 제 1 및 제 2 전송기들(73a) 및 (73b)에 연결된다. 제 1 및 제 2 전송기들(73a) 및 (73b)는 당업계에서 알려진 논리 게이트들로 이루어질 수 있다. 제 1 및 제 2 메모리들(75a) 및 (75b)는 그들의 소정의 양자화된 값 (PQV)을 미리 저장한다. 그 PQV는 제 1 메모리 유니트(60a)에 저장된 ACP들(256가지의 상태들을 위해)와 다른 어떤 값일 수 있다. 이 예에서, 유니트(60a)에서 제 1 메모리에 저장된 모든 ACP들는 음의 수가 아닌 반면, 그 PQV는 -1과 같은 음의 수이다. 그러나, 다른 수들은 본 발명에 따라 PQV로써 사용될 수 있다.
그 상태 선택기(46)는 제 1 및 제 2 입중계선 (70a) 및 (70b)를 통하여 한쌍의 가능한 이전의 상태들 PS1 및 PS2(예로, 상태 2 및 상태 130)를 수신한다. 제 1 메모리 유니트(60a)로부터 인에이블 신호 ENA 또는 디스에이블 신호 DIS는 연결부(71)를 통하여 상태 선택기(46)의 제 1 및 제 2 전송기(73a) 및 (73b) 모두에 동시에 인가된다.
제 1 전송기(73a)가 제 1 메모리 유니트(60a)로부터 인에이블 신호 ENA를 수신하면, 제 1 전송기(73a)는 제 1 가능한 이전 상태 PS1(예로, 상태2)을 제 1 전송선(72a)을 통하여, 제 1 인코더(50a)로 전송한다. 유사하게, 제 2 전송기(73b)가 제 1 메모리 유니트(60a)로 부터 인에이블 신호 ENA를 수신할 때, 제 2 전송기(73b)는 제 2 가능한 이전 상태 PS2를 제 2 전송선(72b)을 통하여 제 2 인코더(50b)로 전송한다. 동시에, 제 1 및 제 2 전송기들(73a) 및 (73b)는 제 1 및 제 2 메모리들(75a) 및 (75b)를 디스에이블시킴으로써, 데이터가 메모리들(75a) 및 (75b)에서 출력되지 않도록 한다.
만약 제 1 전송기(73a)가 제 1 메모리 유니트(60a)로부터 디스에이블 신호 DIS를 수신한다면, 제 1 전송기(73a)는 제 1 전송선(72a)을 디스에이블하고 동시에 제 1 메모리(75a)에 미리 저장된 PQV를 제 1 연결선(74a)을 통하여 최대 선택기(58)로 출력하기 위하여 제 1 메모리(75a)를 인에이블시킨다. 동시에, 제 2 전송기 (73a)가 제 2 메모리 유니트(60b)로부터 디스에이블 신호(DIS)를 수신할 때, 제 2 전송기(73b)는 제 2 전송선(72b)를 디스에이블하고, 동시에 제 2 메모리(75b)에 미리 저장된 동일한 PQV를 제 2 연결선(74B)을 통하여 최대 선택기(58)로 출력하기 위하여 제 2 메모리(75b)를 인에이블한다.
따라서,특정한 현재 상태에 대응하는 이전의 가능한 상태들 PS1 및 PS2의 쌍들은 상태 선택기(46)로부터 제 1 및 제 2 전송선들(72a) 및 (72b)를 통하여 각각 제 1 및 제 2 인코더들(50a) 및 (50b)로 전송된다. 비선택된 이전의 가능한 상태들 PS1 및 PS2는 상태 선택기(46)에 의해 버려지고, 대신에 메모리들(75a) 및 (75b)에 미리 저장된 PQV가 제 1 및 제 2 연결선들(74a) 및 (74b)를 통하여 최대 선택기(58)로 전송된다.
모듈로 2 유니트(48)는 상태 계수기(40)로부터 상태 계수 값들을 수신하고 각 상태 계수 값에 근거한 다른 짝수 또는 홀수를,(예로, 0과 1) 발생한다. 예를 들어, 그 모듈러 2 유니트(48)는 짝수 계수 값이 수신되면 0을 발생하고 홀수 상태 계수값이 수신되면 1을 발생한다. 모듈로 2 유니트(48)로부터의 0과 1 출력은 디코더(300)에 의하여 복구되기 위한 가능한 정보 비트들(0과 1)을 나타낸다. 이 예에서, 현재 상태 계수가 5라고 주어지면, 그 모듈러 2 유니트(48)는 인코더들(50a) 및 (50b)로 1을 발생한다.
제 1 인코더(50a)는 모듈로 2 유니트(48)로부터 비트를(예로, 1), 상태 선택기 (46)로부터 제 1 가능한 이전 상태(PS1)(예로, 상태 2)를 수신하고, 이들 입력들에 근거하여 이론적 계수들 TC0 및 TC1의 제 1 쌍을 발생한다. 제 2 인코더(50B)는 모듈로 2 유니트(48)로부터 동일한 비트(즉, 1)를 , 상태 선택기(46)으로부터 제 2 이전의 상태 PS2(예로, 상태(130))를 수신하고, 이들 입력들에 근거하여 이론적인 계수들 TC0 및 TC1의 제 2 쌍을 발생한다. 이 처리는 상태 선택기(46)에 의하여 가능한 이전 상태들의 각 쌍에 대해 반복된다.
제 1 양자화기(52a)는 이론적 계수들 TC0 및 TC1을 제 1 인코더(50a)로부터 수신하고, 인코드된 데이터 비트들(예로, 오염된 계수들 CC0 및 CC1)은 디코딩을 위해 디코더(300)로 외부에서 입력된다. 유사하게, 제 2 양자화기(52b)는 제 2 인코더(50b)로부터 이론적 계수들(TC0 및 TC1)을 수신하고, 그 오염된 계수들(CC0 및 CC1)과 오염된 계수들(CC0 및 CC1)을 수신한다. 제 1 및 제 2 양자화기들(52a) 및 (52b)의 각각은 대응하는 인코더(50a 또는 50b)로부터 발생되는 이론적인 계수들 TC0 및 TC1의 각 쌍들에 근거하여오염된 계수들(CC0 및 CC1)의 각 쌍의 조건부 확률을 결정하고, 다음에 양자화된 값들을 발생하기 위하여 많은 소정의 32 레벨 또는 64 레벨들등으로 각 조건부 확률들을 양자화한다. 예를 들어, 전체 256개의 가능한 상태들중에 약 40 개의 상태들이 상태 선택기(46)에 의하여 선택된다면, 각 양자화기(52a),(52b)는 오염된 계수들(CC0 및 CC1)의 각 쌍에 대한 40개의 선택된 상태들 마다 80개의 양자화된 값들을 발생한다. 이들 양자화된 값들은 오염된 계수들(CC0 및 CC1)의 쌍이 이론적인 계수들 (tco 및 TC1)의 각 쌍과 얼마나 잘 매치되는지 나타낸다.
양자화된 값이 양자화기들(52a) 및 (52b)의 각각으로부터 출력될때마다, 제 1 및 제 2 가산기들(54a) 및 (54b)의 각각은 제 1 메모리 유니트(60a)에 저장된 대응하는 누적된 양자화된 값(즉,ACP)과 현재의 양자화된 값을 가산한다.
제 1 메모리 유니트(60a)에 저장된 데이터는 도 5a 및 도 5b에서 더 이해될 것이고, 이 도면들은 본 발명에 따라 제 1 메모리 유니트(60a)의 메모리 어레이들의 예들을 도시한다. 여기서 도시된 것처럼, 제 1 메모리 유니트(60a)는 인덱스(IN1)로 언급되는 데이터 영역(92)을 갖는 제 1 메모리 어레이(90)와, 인덱스(IN2)에 의해 언급되는 데이터 영역(95)을 갖는 제 2 메모리 어레이(93)를 포함한다. 그 인덱스들(IN1) 및 (IN2)의 인덱스 번호들은 현재의 상태 계수에 해당하여서 가능한 256개의(인덱스 0부터 인덱스 255까지)상태를 나타낸다. 데이터 영역(92)에서, ACP와 인덱스 0부터 인덱스 255에 대응하는 이전 상태들 PS(ACP0,ACP1,ACP2,…,ACP255,PS0,PS1,PS2,…,PS255)의 한 쌍이 저장되고, PQV는 상태 선택기(46)에 의존하는 ACP대신에 저장된다. 제 2 메모리 어레이(93)는 그것의 데이터 영역(95)에 인덱스 번호에 따라 각 현재의 상태에 대한 조건부 확률(CP0,CP1,CP2,…,CP255)을 저장한다. 이들 값들은 현재 상태의 ACP가 막 갱신된 경우에 가산기들(54a) 및 (54b)로 출력된다. 더욱이, 메모리 유니트(60a)는 어레이(90)에 저장된 데이터를 근거로 하여 상태 선택기(46)으로 인에이블 및 디스에이블 신호들 ENS 및 DIS를 출력하기 위하여 다른 회고들을 포함하다. 만약 PQV가 현재 상태의 계수와 매칭하는 인덱스 번호에 대응하는 데이터 영역(92)에 저장되면, 다음에, 디스에이블 신호(DIS)는 상태 선택기(46)로 출력된다. 그렇지 않다면, 메모리 유니트(60a)는 상태 선택기(46)으로 인에이블 신호(ENS)를 출력한다.
예를 들어, 현재의 상태 계수기가 대응하는 이전의 상태로써 상태(2)와 상태(130)를 발생하는 5이라면, 제 1 메모리 어레이(90)으로부터 인덱스(2)(이전 상태가 2이기때문에)에 대응하는 ACP2와 인덱스(130)(이전 상태가 130이기 때문에)에 대응하는 ACP130는 제 1 및 제 2 가산기들(54a) 및 (54b) 각각으로 출력된다. 제 1 및 제 2 가산기들 (54a) 및 (54b)는 다음에 한 쌍의 새로운 ACP들의 한 쌍을 최대 선택기(58)로 출력한다. 최대 선택기(58)는 2개의 ACP들을 서로 비교하고, 위닝 ACP를 발생하기 위하여 2개의 ACP들중의 더 큰 것을 선택하고, 제 1 메모리 어레이(90)에서 인덱스(5)에 현재 저장된 ACP/PQV를 위닝 ACP로 교체한다. 만약 최대 선택기(58)가 현재의 상태 계수기를 위해 상태 선택기(46)의 메모리들(75a) 및 (75b)에서 미리 저장된 PQV들를 수신한다면, 최대 선택기(58)는 PQV와 함께 인덱스(5)하에서 현재 저장되는 ACP/PQV를 갱신한다.
이 예에서, 고려되고 있는 256가지의 가능한 상태들이 존재하기 때문에, 제 1 메모리 어레이(90)는 256*2의 어레이이고, 제 2 메모리 어레이(93)는 256*1의 어레이이다. 그러나 인코더에 의해 처리되는 인코더의 크기 및 블럭 데이터의 크기에 따라, 상이한 크기들을 갖는 메모리 어레이들은 제 1 메모리 유니트(60a)를 위해 사용될 수 있다. 모든 256가지의 인덱스 번호들에 대응하는 데이터가 발생되고, 제 1 메모리 유니트(60a)에 의해 처리되면, 제 1 메모리 유니트(60a)는 오염된 계수들(CC0 및 CC1)의 다음 쌍에 대해 0부터 다시 계수처리를 시작하기 위하여 상태 계수기(40)로 제어 신호를 발생한다. 이 예에서, 한번에 처리되는 인코드된 데이터의 블럭이 196개의 정보 비트들을 갖기 때문에 이것은 196번 동안 실행된다.
제 1 메모리 유니트(60)의 데이터 영역(92)에서 저장되는 모든 256개의 ACP들/PQV 데이터는 임계치 측정기(64)로 순차적으로출력된다. 도 6는 도 3의 임계치 측정기의 상세한 블럭도를 도시한다. 도 6에서 도시된 것처럼, 임계치 측정기(64)는 256개의 상태들에 대응하는 256개의 ACP들/PQV를 특정한 선조절 값들로 양자화하거나 디지털화하기 위하여 디지털화기(80)와, ACP들/PQV를 사용하는 누적된 값들을 발생하기 위하여 카운터 어레이(84)와, 임계치 설정 값(TSV) 입력에 근거하여 계수기 어레이(84)로부터 인덱스 번호를 액세스하고, 임계치 h로써 인덱스 번호를 출력하기 위하여 어레이 액세스 논리(AAL) 유니트(86) 를 포함한다. AAL 유니트(86)는 당업계에서 알려진 논리 게이트들의 집합을 사용하여 실현된다.
임계치 측정기(64)의 디지털화기(800는 제 1 메모리 유니트(60a)의 데이터 영역(92)로부터 데이터의 256가지의 설정들을 수신하고, 이들 데이터를 소정의 수의레벨들로 양자화하고, 양자화된 값들을 계수기 어레이(84)로 출력한다. 계수기 어레이(84)는 도 7a 및 7b에서 도시된 것처럼 제 1 계수기 어레이(110)와 제 2 계수기 어레이(113)를 포함한다. 제 1 계수기 어레이(110)는 인덱스(IN3)의 인덱스 번호에 대응하는 데이터를 저장하기 위하여 데이터 영역(112)을 포함한다. 인덱스(IN3)및 (IN4)의 인덱스 번호들은 디지털화기(80)으로부터 가능한 양자화된 값들 출력의 범위에 해당한다. 예를 들어, 디지털화기(80)으로부터의 출력인 가능한 양자화된 값들이 80부터 100까지의 범위라면, 다음에, 도 7a에서 도시된 것처럼, 순차적으로인덱스들(IN3) 및 (IN4)에서 인덱스 번호들은 0부터 100까지의 범위이다.
제 1 계수기 어레이(110)는 디지털화기(80)으로부터 256개의 양자화된 값들을 수신하고, 256개의 양자화된 값들에서 각 양자화된 값들이 몇번 일어나는지 계수한다.
예를 들어, 도 7a에서 도시된 것처럼, "0"의 양자화 값 5가 존재하고, "1"의 양자화 값 2번이 존재하고, "2"의 양자화값 3이 존재하고,…,"97"의 양자화값 6이 존재하고, "98"의 양자화 값이 0이고, "99"의 양자화 값 3이 있고, "100"의 양자화값 1이 존재하면, 제 1 계수기 어레이(110)은 데이터 영역(112)에서 각각이 인덱스 번호들,"0,1,2,…,97,98,99,100" 에 대응하는 값들,"5,2,3, …,6,0, 3,1"을 저장한다.
다음에 제 2 계수 어레이(113)은 마지막 인덱스 번호,즉, 인덱스(100)로부터 데이터 영역(112)에 저장되는 데이터를 액세스하고, 데이터 영역(115)에 데이터를 누적한다. 예를 들어, 제 2 계수 어레이(113)는 인덱스(IN3)의 인덱스(100)에 대응하는 "1"의 값과 인덱스(99)에 대응하는 "4(=1+3)"의 값과, 인덱스(98)에 대응하는 "4"(=4+0)의 값과, 인덱스(97)에 대응하는 "10"(=4+6)의 값을 저장한다. 이 처리를 완료하자마자 제 2 계수기 어레이(113)는, 이 예에서, 제 2 계수기 어레이(113)의 인덱스(96)와 인덱스(0)의 사이의 제이터 영역(115)에서 저장되는 "256"의 값을 가질 것이다.
AAL은 사용자 또는 외부의 소스로부터 TSV를 수신한다. 사용자는 AAL 유니트(86)으로 TSV의 입력값을 제어함으로서 제 2 메모리 유니트(60b)의 크기를 제어할 수 있다. AAL 유니트(86)는 TSV와 매치되는 데이터를 위해 제 2 계수기 어레이(113)의 데이터 영역(115)를 검색한다. 만약 정확히 매치되지 않는다면, AAL 유니트(86)는 TSV에 가장 가까운 데이터를 찾는다. 일단 데이터 매칭이 발견되면, AAL 유니트(86)는 매칭 데이터에 대응하는 인덱스 번호를 출력하고 비교기(62)에 임계치 값(h)으로서 이 인덱스 번호를 출력한다. 예를 들어, TSB=9이라면, 다음에, 그것의 대응하는 데이터"10"이 TSV에 가장 가까이 매치이기 때문에 AAL 유니트(86)는 어레이(113)으로부터 인덱스(97)을 선택한다. 결과로써, 이 예에서, h=97 는 비교기(62)에 출력이다.
임계치(h)외에, 비교기(62)는 순차적으로모든 256가지의 인덱스 번호들을 위해 제 1 메모리 유니트의 데이터 영역(92)에서 저장되는 데이터(ACP 또는 PQV,PS)를 수신한다. 그러한 데이터가 순차적으로수신되기 때문에, 비교기(62)는 수신된 ACP/PQV와 임계 값 h를 비교한다. 수신된 ACP/PQV가 임계 값(h)보다 크거나 동일하다면, 다음에 ACP/PQV에 대응하는 PS는 제 2 메모리 유니트(60b)로 넘겨진다. 그렇지 않다면, 수신된 데이터는 폐기되고 다음 인덱스 번호에 대응하는 다음 데이터가 비교되고 유사하게 처리된다.
도 8a 및 8b는 본 발명에 따른 제 2 메모리 유니트(60b)의 메모리 어레이들의 얘들을 도시한다. 여기에서 도시된 것처럼, 제 2 메모리 유니트(60b)는 제 1 메모리 어레이(120)와 제 2 어레이(122)를 포함한다. 이 예에서, TSV와 196개의 정보 비트들은 한번에 디코드된다는 것에 근거하여 제 1 메모리 어레이(120)는 예로, 64*196의 크기를 갖고, 제 2 메모리 어레이(122)는 예로 256*2의 크기를 갖는다. 그러나, 다양한 크기들을 갖는 메모리 어레이들은 TSV 및/또는 다른 요소들,즉, 데이터 블럭 크기에 따라 사용될 수 있다. 제 1 메모리 어레이(120)의 각 열은 복구되기 위하여 196개의 정보 비트들의 하나를 나타낸다.
본 발명에 따라 제 2 메모리 유니트(60b)에서 데이터를 저장하는 방법의 예는 다음과 같다. 제 1 및 제 2 메모리 어레이들(120) 및 (122)는 그곳에 다른 데이터가 저장되기전에 소정의 번호로,예로,-1인, 초기화된다. 즉, -1로 마크(mark)된 다른 데이터 슬롯은 그것이 비어있다는 것을 나타낸다. 비교기(62)의 비교 테스트를 통과한 ACP들에 대응하는 위닝 PS들, 순차적으로출력이고 행 방향이다(예로,열C0에서 R1,R2,R3,…,R263). 각 위닝 PS는 특정한 현재 상태와 과련되고 어레이(120)는 한번에 한 열씩 처리되고, 한 열은 복구되는 한 정보 비트를 나타낸다. 즉, 한 열에 대한 모든 위닝 PS들가 일단 처리되면, 마지막 열(열 C195)이 처리될 때까지 그후에 옆에 이웃하는 열에 대해 모든 위닝 PS들가 처리된다.
예를 들어, 어레이(120)의 열(C3)이 처리되고 있고, 그 비교기의 출력들은 현재 상태=12이고, 위닝 PS=6 이라는 것을 가정해라. 열 C3(3=홀수)는 홀수 열이기 때문에, 제 2 메모리 어레이(122)의 제 2 열 CC1은 검색된다. 그러나, 현재 처리되고 있는 제 1 어레이(120)의 열은 짝수 이고, 다음에 제 2 메모리 어레이(122)의 제 1 열(CC0)은 처음으로 검색된다.
위닝 PS=6 이기 때문에, 열 CC1의 행 RR6가 위치되고, 그곳에 저장되는 값은 액세스된다. 이번에, 제 2 어레이(122)의 인덱스 번호(즉, 행 번호)는 위닝 PS를 나타낸다. 슬롯에서(RR6,CC1), 3의 값이 저장된다. 이것은 제 1 어레이(120)에서 6의 위닝 PS를 저장해야할 곳을 나타낸다. 열 RR6에서 저장되는 값이 3이기 때문에, 6의 위닝 PS는 제 1 어레이(120)의 열 C3의 행 R3(3 = 어레이(192)에 저장되는 값)에 저장된다. 다음에, 슬롯(RR3,CC1)에서 저장되는 3의 값은 점유를 나타내기 위하여 -2로 변화되고(도, 8c에서 도시된 것처럼) , 현재 상태=12 이기때문에, 열 CC0 에서 행 RR12이 액세스된다. 즉, 이번에,제 2 어레이(122)의 인덱스는 현재의 상태 계스를 나타낸다. 슬롯(RR12,CC0)에서, 3의 동일한 값이 저장된다.
모든 위닝 ACP들에 대해 위에서 논의된 것처럼 어레이(120)의 열 C3를 처리한 후에, 다음 열 C4가 처리된다. 열 C4는 짝수 열이기에 어레이(92)의 열(CC0)은 초기에 액세스된다. 비교기(62)가 현재의 상태=24와 위닝 PS=12를 출력한다면, 그후에 슬롯에(RR12,CC0)에 저장되는 값이 액세스된다. 이번에, 제 2 어레이(122)의 인덱스는 위닝 PS를 나타낸다. 3의 값이 도 8c에서 도시된 것같이 슬롯(RR12,CC0)에 저장되기 때문에, 12의 위닝 PS는 제 1 어레이(120)의 열 C4의 행 R3에 저장된다. 다음에, 슬롯(RR12,CC0)에서 3의 값은 점유를 나타내며 -2로 변화되고, 다음의 열 처리를 위해 슬롯(RR24,CC1)에서 3의 값이 저장된다. 상기 서술된 처리는 제 1 어레이(120)의 마지막 열 C195이 완전히 처리될 때까지 계속된다. 다음에 디코딩 유니트(68)는 원래의 정보 비트들을 복구하기 위하여 마지막 열에서 제 1 열(C195에서 C0까지)까지 제 1 어레이(120)에 저장되는 위닝 PS들을 액세스한다.
제 1 어레이(120)에 저장되는 데이터를 사용하는 디코드된 정보 비트들을 발생하는 동작은 다음과 같다.
다른 데이터 블럭의 마지막 상태는 통상적으로 8개의 마지막 부분 비트들이 0으로 알려져있기 때문에, 디코딩 유니트(68)는 0의 값에 대해 어레이(120)의 마지막 열 C195를 검색한다. 0의 값이 행 R0에서 발견되면, 다음에 0의 값은 정보 비트 위치 #195를 위해 선택된다. 다음에 디코딩 유니트(68)는 다음 왼쪽 열로 이동하고 그곳에,즉, 슬롯에(R1,C194) 저장된 값을 판독한다. 디코딩 유니트(68)는 다음으로 이동하고, -1의 값이 검출되지 않는한 유니트가 위치해있는 각 값을 판독한다. 다음에, 열 R195는 다른 0이 발견될 때까지 행 R0로부터 행 R64로 검색된다. 다음에 디코딩 유니트(68)는 다음 왼쪽 열로 이동하고 값들,128 및 64을 열 C192에서 -1일 위치할 때까지 판독한다. 다음에 열 C193은 다른 64가 위치될 때까지 행 R0에서 R64까지 검색된다. 다른 64는 슬롯(R5,C193)에서 발견된다. 그 디코딩 유니트(68)는 -1이 위치할때까지 다음으로 이동하고 값들(32) 및 (144)을 판독한다. 이 처리는 열 C0로부터의 값이 판독될 때까지 계속된다.
따라서, 디코딩 유니트(68)는 196개의 정수들을 모으고, 정수가 홀수인지 또는 짝수인지에 따라 디코드된 데이터로써 0 또는 1을 발생한다. 예를 들어, 정수가 홀수이면, 디코딩 유니트(68)는 1을 출력하고 정수가 짝수이면, 디코딩 유니트(68)는 0을 출력하여서, 196개의 정보 비트들은 디코드된 데이터로써 디코딩 유니트(68)로부터의 출력이다. 이 예에서, 0,128,64,32,144…의 정수들은 어레이(120)에서 발견되기때문에,0,0,0,0,…의 디코드된 데이터는 디코드된 데이터로써 디코딩 유니트(68)로부터의 출력이다.
본 디바이스 및 방법에 따르면, 디바이스 및 방법의 비용을 낮추고, 디바이스와 방법의 동작 속도를 증가시키기 위하여 더 작은 메모리들이 사용될 수 있고 축소된 상태 검색 알고리즘이 수행된다.
본 발명에 따르면, 본 디바이스 미 방법은 인코드된 데이터의 각각에 대해 인코더의 모든 가능한 상태들로부터 특정한 현재의 상태들을 선택하고, 선택된 현재의 상태들에 대해 누적된 조건부 확률들(ACPs)을 발생하고, 임계치와 ACP를 비교하고, 그 비교된 결과에 근거하여 ACP들과 관련된 이전의 상태들을 저장한다. 따라서, 축소된 상태들이 디코드된 데이터를 발생하기 위하여 검색되기 때문에, 적은 메모리로 더 빠른 디코딩 처리를 제공한다.

Claims (49)

  1. 인코드된 데이터를 디코딩하는 디바이스로서,
    각각의 인코드된 데이터의 모든 가능한 상태들로부터 특정한 현재의 상태들을 선택하고, 선택된 현재의 상태들의 누적된 조건부 확률들 (ACP들)을 발생하고, 임계 값과 ACP들을 비교하며, 비교 결과들을 근거로 하여 ACP들와 관련된 이전의 상태(PSs)를 저장하는 처리 유니트와,
    저장된 이전의 상태들에 근거한 인코드된 데이터를 디코딩하는 디코딩 유니트를 포함하는 디바이스.
  2. 제 1 항에 있어서, 처리 유니트는 제어 신호에 근거하여 특정한 현재의 상태들을 선택하고, 각각의 선택된 현재의 상태들의 2개의 이전의 상태들을 전송하거나 또는 각각의 비선택된 현재의 상태들의 소정의 양자화된 값(PQV)을 전송하는 상태 선택기를 더 포함하는 디바이스.
  3. 제 2 항에 있어서, 상기 PQV는 음수인 디바이스.
  4. 제 2 항에 있어서, 처리 유니트는 PQV를 각각의 비선택된 현재의 상태들의 각각에 대해 임계치들과 비교하고, 이 비교 결과들을 근거로 PQV를 폐기하는 디바이스.
  5. 제 1 항에 있어서, 상기 처리 유니트는 제어 신호에 근거하여 특정의 현재의 상태들을 선택하고, 각각의 선택된 현재의 상태들의 2개의 이전의 상태들을 전송하는 디바이스.
  6. 제 1 항에 있어서, 상기 처리 유니트는 제어 신호에 근거하여 특정의 현재 상태들을 선택하고, 각각의 비선택된 현재의 상태들의 소정의 양자화된 값(PQV)을 전송하는 상태 선택기를 포함하는 디바이스.
  7. 제 1 항에 있어서, 상기 처리 유니트는 계수 데이터와 인코드된 데이터의 각각을 근거로 하여 선택된 현재의 상태들의 각각에 대해 2개의 조건부 확률들을 발생하는 복수의 인코딩 유니트들을 포함하는 디바이스.
  8. 제 7 항에 있어서, 상기 처리 유니트는 상기 선택된 현재의 상태들의 각각에 대해 새로운 한쌍의 ACP들을 발생하도록 대응의 ACP와 인코딩 유니트로부터 출력된 조건부 확률들의 각각을 더하는 복수의 가산기를 더 포함하는 디바이스.
  9. 제 8 항에 있어서, 상기 처리 유니트는 위닝 ACP와 관련된 위닝 PS를 발생하도록 선택된 현재의 상태들에 대한 새로운 ACP들의 각 쌍에서 2 개의 ACP들을 비교하고 비선택된 현재의 상태들에 대해 관련된 위닝 PS들와 소정의 양자화된 값(PQV)을 출력하는 최대 선택기를 더 포함하는 디바이스.
  10. 제 9 항에 있어서, 상기 처리 유니트는 복수의 데이터 슬롯들을 갖는 메모리 어레이를 포함하는 제 1 메모리 장치를 더 포함하며 , 각 데이터 슬롯은 인덱스 번호로 할당되고, 인덱스 번호는 현재의 상태 값을 나타내고, 가능한 상태들의 각각에 대한 위닝 ACP 또는 PQV 및 관련된 위닝 PS는 제 1 메모리 유니트의 메모리 어레이에 저장되는 디바이스.
  11. 제 10 항에 있어서, 메모리 어레이에 할당된 상이한 인덱스 번호들의 총 수는 모든 가능한 상태들의 총수에 대응하는 디바이스.
  12. 제 10 항에 있어서, 메모리 어레이에 저장되는 PQV 또는 위닝 ACP들에 근거하고 사용자 입력에 근거하여 임계치를 발생하는 임계치 측정기와,
    임계치와 위닝 ACP들 또는 PQV를 비교하는 비교하고, 비교의 결과를 근거로하여 위닝 ACP들와 관련된 위닝 PS들을 출력하고, 비교의 결과에 근거하여 다른 위닝 PS들을 폐기하는 비교기와,
    비교기의 출력들을 저장하는 제 2 메모리 유니트를 더 포함하는 디바이스.
  13. 제 12 항에 있어서, 비교기에서, 제 1 메모리 유니트로부터의 위닝 ACP 출력이 임계치보다 크거나 동일하면, 비교기는 제 2 메모리 유니트에 상기 위닝 ACP를 저장하고, 만약, 상기 위닝 ACP가 임계치보다 작다면, 비교기는 상기 위닝 ACP를 폐기하는 디바이스.
  14. 제 12 항에 있어서, 상기 임계치 측정기는,
    제 1 메모리 유니트의 메모리 어레이로부터 출력된 PQV와 위닝 ACP들을 양자화하는 디지털화기와,
    상기 위닝 ACP들와 상기 PQV에 근거하여 누적된 값들을 발생하는 계수기 어레이와,
    시용자 입력에 대응하는 누적된 값들중의 하나를 검출하고, 누적된 값들의 검출된 것에 대응하는 계수기 어레이의 인덱스 번호를 임계치로써 츨력하는 것을 포함하는 디바이스.
  15. 제 12 항에 있어서, 제 2 메모리 유니트는,
    비교기로부터 출력된 상기 위닝 PS들을 순차적으로 저장하는 제 1 메모리 어레이와,
    복수의 인덱스 번호들을 갖는 제 2 메모리 어레이와, 각 인덱스 번호는 이전 상태의 번호 또는 현재 상태의 번호를 나타내고, 비교기로부터의 상기 위닝 PS들 출력에 관련된 제 2 메모리 어레이의 인덱스 번호들의 하에서 제 1 메모리 어레이의 위치 정보를 저장하는 제 2 메모리 어레이를 포함하는 디바이스.
  16. 제 12 항에 있어서, 제 2 메모리 유니트의 제 1 메모리 어레이는 제 2 메모리 유니트의 제 2 메모리 어레이보다 크기가 더 큰 디바이스.
  17. 제 1 항에 있어서, 상기 디코딩 유니트는 선택적으로 인코드된 데이터의 각각에 대해 저장된 PS들로부터 위닝 PS를 얻고, 선택적으로 얻은 위닝 PS들에 근거항 0 또는 1 중 어느 하나를 발생하는 디바이스.
  18. 제 17 항에 있어서, 상기 선택적으로 얻어진 위닝 PS가 짝수 이라면, 상기 디코딩 유니트는 0을 출력하고, 선택적으로 얻어진 위닝 PS가 홀수이라면, 1을 출력하는 디바이스.
  19. 제 1 항에 있어서, 상기 처리 유니트는,
    현재의 상태 계수 값을 발생하도록 모든 가능한 상태들을 순차적으로 계수하는 상태 계수기와.
    ACP들을 발생하도록 각 현재의 상태 계수 값과 관련된 2개의 이전의 상태들을 계산하는 이전 상태 위치기를 더 포함하는 디바이스.
  20. 인코드된 데이터를 디코딩하는 방법으로서,
    인코드된 데이터의 각각에 대해 모든 가능한 상태들로부터 특정한 현재의 상태들을 선택하고, 선택된 현재의 상태들의 누적된 조건부 확률들(ACP들)을 발생하고,
    임계치들과 ACP들을 비교하고, 비교로부터의 결과에 근거하여 ACP들과 관련된 이전의 상태들(PSs)을 저장하는 단계와,
    저장된 이전의 상태들에 근거하여 인코드된 데이터를 디코딩하는 단계를 포함하는 방법.
  21. 제 20 항에 있어서, 상기 선택 단계는 제어 신호들에 근거하여특정한 현재의 상태들을 선택하고 그 선택된 현재의 상태들의 각각에 대해 2개의 이전의 상태들을 전송하는 방법.
  22. 제 20 항에 있어서, 상기 선택 단계는 제어 신호에 근거하여 특정한 현재의 상태들을 선택하고 비선택된 현재의 상태들의 각각에 대해 소정의 양자화된 값(PQV)을 전송하는 방법.
  23. 제 20 항에 있어서, 상기 선택 단계는 제어 신호에 근거하여 특정한 현재의 상태들을 선택하고, 선택된 현재의 상태들의 각각에 대해 2개 이전의 상태들을 전송하거나 비선택된 현재의 상태들의 각각에 대해 소정의 양자화된 값(PQV)을 전송하는 방법.
  24. 제 23 항에 있어서, 상기 선택 단계에서, 상기 PQV는 음수인 방법.
  25. 제 23 항에 있어서, 상기 선택 단계는 PQV와 비선택된 현재의 상태들의 각각에 대해 임계치들과 비교하고, 이 비교 결과에 근거하여 상기 PQV를 폐기하는 방법.
  26. 제 20 항에 있어서, 상기 선택 단계는 인코드된 데이터의 각각에 근거하여 상기 선택된 현재의 상태들의 각각에 대해 2개의 조건부 확률들과 계수 데이터를 발생하는 방법.
  27. 제 26 항에 있어서, 상기 선택 단계는 상기 선택된 현재의 상태들의 각각에 대해 새로운 ACP의 한 쌍을 발생하도록 대응의 ACP들과 상기 발생된 조건부 확률들을 가산하는 단계를 더 포함하는 방법.
  28. 제 27 항에 있어서, 상기 선택 단계는 상기 선택된 현재의 상태들의 각각에 대해 관련된 위닝 PS와 위닝 ACP를 발생하도록 선택된 현재의 상태들에 대한 새로운 ACP들의 각 쌍에서 2개의 ACP들을 비교하여, 상기 선택된 현재의 상태들에 대해 관련된 위닝 PS들와 위닝 ACPs를 출력하는 단계와,
    비선택된 현재의 상태들에 대한 관련된 위닝 PS들과 소정의 양자화된 값(PQV)을 출력하는 단계를 포함하는 방법.
  29. 제 28 항에 있어서,
    제 1 메모리 유니트의 메모리 어레이에서 상기 위닝 ACP 또는 PQV와, 가능한 상태들의 상기 관련된 위닝 PS를 저장하는 단계를 더 포함하며, 메모리 어레이는 복수의 데이터 슬롯들을 포함하며, 각 데이터 슬롯은 인덱스 번호에 할당되고 ,인덱스 번호는 현재의 상태 값을 나타내는 더 포함하는 방법.
  30. 제 29 항에 있어서, 상기 저장 단계에서, 제 1 메모리 유니트의 메모리 어레에에 할당된 상이한 인덱스 번호들의 총 수는 모든 가능한 상태들의 총 수에 대응하는 방법.
  31. 제 30 항에 있어서, 상기 선택 단계는 메모리 어레이에서 저장된 PQV 또는 위닝 ACP들 및 사용자 입력에 근거하여 임계치를 발생하는 단계와,
    비교기를 사용하여, 상기 위닝 ACP들 또는 상기 PQV를 임계치와 비교하는 단계와, 상기 비교 단계로부터 결과에 근거하여위닝 ACP들과 관련된 상기 위닝 PS들을 출력하고, 상기 비교 단계로부터의 결과에 근거하여다른 위닝 PS들을 폐기하는 단계와,
    제 2 메모리 유니트에서 비교기의 출력들을 저장하는 방법을 더 포함하는 방법.
  32. 제 31 항에 있어서, 상기 비교 단계에서, 제 1 메모리 유니트로부터의 위닝 ACP 출력은 임계치보다 크거나 동일하다면, 상기 위닝 ACP는 제 2 메모리 유니트에 저장되고, 상기 위닝 ACP가 임계치보다 적다면, 상기 위닝 ACP는 폐기되는 방법.
  33. 제 31 항에 있어서, 임계치를 발생하는 단계는,
    제 1 메모리의 메모리 어레이로부터 출력된 PQV와 위닝 ACP들을 양자화하는 단계와,
    계수기 어레이를 사용하여, 양자화된 위닝 ACP들과 PQV를 근거로 하여 누적된 값들을 발생하는 단계와,
    사용자 입력에 대응하는 누적된 값들중의 하나를 검출하는 방법과,
    누적된 값들의 검출된 하나에 대응하는 계수기 어레이이 인덱스 번호를 임계치로써 출력하는 단계를 포함하는 방법.
  34. 제 31 항에 있어서, 상기 비교기의 출력들을 저장하는 단계에서, 제 2 메모리 유니트는 제 1 및 제 2 메모리 어레이들을 포함하고 상기 메모리 어레이들은 할당된 복수의 인덱스 번호들을 가지며, 제 2 메모리 어레이의 각 인덱스 번호는 현재의 상태 번호 또는 이전의 상태 번호를 나타내는 방법.
  35. 제 34 항에 있어서, 상기 비교기의 출력들을 저장하는 단계는,
    제 2 메모리 유니트의 제 1 메모리 어레이에서 비교기로부터 출력된 위닝 PS들을 순차적으로 저장하는 단계와,
    제 2 메모리 유니트의 제 2 메모리 어레이에서, 비교기로부터 위닝 PS들과 연관된 제 2 메모리 어레이의 인덱스 번호들하에 제 1 메모리 어레이이 위치 정보를 저장하는 단계를 포함하는 방법.
  36. 제 20 항에 있어서, 상기 디코딩 단계는 선택적으로 인코드된 데이터의 각각에 대해 저장된 PS들로부터 위닝 PS를 얻고, 선택적으로 얻어진 위닝 PS들을 근거로하여 0 또는 1중의 하나를 발생하는 방법.
  37. 제 36 항에 있어서, 상기 디코딩 단계는 선택적으로 얻어진 위닝 PS가 홀수이면 0을 출력하고, 선택적으로 얻어진 위닝 PS가 짝수이면, 1을 출력하는 방법.
  38. 제 20 항에 있어서, 상기 선택 단계는,
    순서적으로 현재의 상태 계수값을 발생하도록 모든 가능한 상태들을 순차적으로 계수하는 단계와,
    ACP들을 발생하도록 각 현재의 상태 계수 값과 관련된 2개 이전의 상태들을 계산하는 단계를 포함하는 방법.
  39. 디코드된 데이터를 출력하기 위하여 사용되는 데이터를 발생하는 컴퓨터 판독가능 매체상에 삽입된 컴퓨터 프로그램으로서,
    현재의 상태들의 제 1 설정과 관련된 이전의 상태들(PSs)을 포함하는 코드 세그먼트에서, 현재 상태들의 제 1 설정은 임계치와 현재 상태들의 제 2 설정의 누적된 조건부 확률들(ACPs)을 비교함으로써 초래되는 결과에 근거하여 선택되고, 현재의 상태들의 제 2 설정은 제어 신호를 근거로 하여 모든 가능한 상태들로부터 선택되는 것을 포함하는 컴퓨터 프로그램.
  40. 제 39 항에 있어서, 코드 세그먼트에서 포함된 상기 PS들은 순차적으로출력되고 제 1 메모리 어레이에 저장되는 컴퓨터 프로그램.
  41. 제 40 항에 있어서, 상기 PS들이 저장되는 제 1 메모리 어레이의 위치 정보는 제 2 메모리 어레이에 저장되는 컴퓨터 프로그램.
  42. 제 40 항에 있어서, 제 1 메모리 어레이의 각 열로부터, 저장되는 PS들의 하나가 출력되어 0 또는 1 비트중의 하나로 변환되는 컴퓨터 프로그램.
  43. 제 42 항에 있어서, 0 또는 1 비트는 디코드된 데이터로써 순차적으로출력되는 컴퓨터 프로그램.
  44. 데이터 신호로서,
    현재의 상태들의 제 1 설정과 관련된 이전의 상태들(PSs)을 포함하는 신호 세그먼트에서, 현재 상태들의 제 1 설정은 임계치와 현재의 상태들의 제 2 설정의 누적된 조건부 확률들(ACPs)을 비교하는 것으로부터 초래하는 결과에 근거하여 선택되고, 현재 상태들의 제 2 설정은 제어 신호에 근거하여 모든 가능한 상태들로 부터 선택되는 데이터 신호.
  45. 제 44 항에 있어서, 신호 세그먼트에서 포함되는 상기 PS들은 순차적으로출력이고 제 1 메모리 어레이에 저장되는 데이터 신호.
  46. 제 45 항에 있어서, PS들이 저장되는 제 1 메모리 어레이의 위치 정보가 제 2 메모리 어레이에 저장되는 데이터 신호.
  47. 제 45 항에 있어서, 제 1 메모리 어레이의 각 열로부터, 그곳에 저장되는 PS들의 하나가 출력되어 0 또는 1의 비트로 변환되는 데이터 신호.
  48. 제 47 항에 있어서, 0또는 1 비트는 디코드된 데이터로써 순차적으로출력인 데이터 신호.
  49. 제 44 항에 있어서, 상기 데이터 신호는 반송파에 삽입되는 데이터 신호.
KR1019990047500A 1998-10-29 1999-10-29 데이터 디코딩을 위한 감소된 상태 디바이스 및 방법 KR100606159B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/181,811 US6408418B1 (en) 1998-10-29 1998-10-29 Reduced-state device and method for decoding data
US09/181,811 1998-10-29

Publications (2)

Publication Number Publication Date
KR20000047571A true KR20000047571A (ko) 2000-07-25
KR100606159B1 KR100606159B1 (ko) 2006-07-31

Family

ID=22665909

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990047500A KR100606159B1 (ko) 1998-10-29 1999-10-29 데이터 디코딩을 위한 감소된 상태 디바이스 및 방법

Country Status (8)

Country Link
US (1) US6408418B1 (ko)
EP (1) EP0998047A3 (ko)
JP (1) JP3309371B2 (ko)
KR (1) KR100606159B1 (ko)
CN (1) CN1253419A (ko)
AU (1) AU5597499A (ko)
BR (1) BR9904738A (ko)
CA (1) CA2281410A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690750B1 (en) * 1999-12-23 2004-02-10 Texas Instruments Incorporated Flexible Viterbi decoder for wireless applications
US20030188143A1 (en) * 2002-03-28 2003-10-02 Intel Corporation 2N- way MAX/MIN instructions using N-stage 2- way MAX/MIN blocks
JP3651802B2 (ja) 2002-09-12 2005-05-25 株式会社東芝 半導体装置の製造方法
US9602243B2 (en) * 2014-08-26 2017-03-21 Electronics And Telecommunications Research Institute Low density parity check encoder, and low density parity check encoding method using the same

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263033A (en) * 1990-06-22 1993-11-16 At&T Bell Laboratories Joint data and channel estimation using fast blind trellis search
DE4038251A1 (de) * 1990-11-30 1992-06-04 Philips Patentverwaltung Entzerrer fuer ein digitales uebertragungssystem
US5229767A (en) * 1991-09-05 1993-07-20 Motorola, Inc. Decoder for convolutionally encoded information
JP3120511B2 (ja) * 1991-11-21 2000-12-25 ソニー株式会社 ビタビ復号装置
US5390198A (en) * 1993-05-26 1995-02-14 The Boeing Company Soft decision viterbi decoder for M-ary convolutional codes
FI94810C (fi) * 1993-10-11 1995-10-25 Nokia Mobile Phones Ltd Menetelmä huonon GSM-puhekehyksen tunnistamiseksi
US5483236A (en) * 1993-12-20 1996-01-09 At&T Corp. Method and apparatus for a reduced iteration decoder
US5550870A (en) * 1994-03-02 1996-08-27 Lucent Technologies Inc. Viterbi processor
US5784392A (en) * 1995-06-26 1998-07-21 Nokia Mobile Phones Ltd. Viterbi decoder with l=2 best decoding paths
US5796757A (en) * 1995-09-15 1998-08-18 Nokia Mobile Phones Ltd. Methods and apparatus for performing rate determination with a variable rate viterbi decoder
US5905742A (en) * 1995-12-27 1999-05-18 Ericsson Inc. Method and apparauts for symbol decoding
US5991635A (en) * 1996-12-18 1999-11-23 Ericsson, Inc. Reduced power sleep modes for mobile telephones
US6081562A (en) * 1997-10-22 2000-06-27 Hitachi Ltd. Implementing reduced-state viterbi detectors
US5983180A (en) * 1997-10-23 1999-11-09 Softsound Limited Recognition of sequential data using finite state sequence models organized in a tree structure

Also Published As

Publication number Publication date
CA2281410A1 (en) 2000-04-29
CN1253419A (zh) 2000-05-17
EP0998047A2 (en) 2000-05-03
JP2000151428A (ja) 2000-05-30
JP3309371B2 (ja) 2002-07-29
US6408418B1 (en) 2002-06-18
AU5597499A (en) 2000-05-04
BR9904738A (pt) 2000-09-12
EP0998047A3 (en) 2004-01-02
KR100606159B1 (ko) 2006-07-31

Similar Documents

Publication Publication Date Title
KR100702428B1 (ko) 데이터 압축 방법 및 회로
US5230003A (en) Decoding system for distinguishing different types of convolutionally-encoded signals
US4506372A (en) Method and apparatus for recognizing in a receiver the start of a telegram signal consisting of a bit impulse sequence
US5781129A (en) Adaptive encoder circuit for multiple data channels and method of encoding
US5173695A (en) High-speed flexible variable-length-code decoder
EP0127984B1 (en) Improvements to apparatus for decoding error-correcting codes
CA1119303A (en) Transmission and/or recording of digital signals
KR960705437A (ko) 코드 분할 다중 접속 시스템 어플리케이션용 다중속도 직렬 비터비 디코더(multirate serial viterbi decoder for code division multiple access system applications)
UA63024C2 (en) Turbo coder; method and device for interleaving data elements
JPH0380727A (ja) データストリームのフレーム同期検出方法及び装置
KR970003024B1 (ko) 병렬처리 패턴매칭을 이용한 가변부호길이에서 고속 재동기방법
JP3684128B2 (ja) 算術符号化/復号化方法ならびに算術符号化/復号化装置
RU98114984A (ru) Способ передачи данных и устройство для кодирования сигнала
EP0658982B1 (en) System for bi-level symbol coding-decoding with saved storage and method for the same
JPS60180222A (ja) 符号誤り訂正装置
KR100606159B1 (ko) 데이터 디코딩을 위한 감소된 상태 디바이스 및 방법
KR100281321B1 (ko) 적응적인 산술 부호화 및 그 복호화 방법
KR100466455B1 (ko) 부호변환기와가변길이부호복호장치및복호방법
RU2608872C1 (ru) Способ кодирования и декодирования блокового кода с использованием алгоритма Витерби
AU640757B2 (en) Method and apparatus for sequentially decoding a digital stream encoded by a convolution type error correcting code
JP2002237754A (ja) 可変長復号化装置及び方法
KR0144837B1 (ko) 최적의 복호경로를 갖는 복호화방법 및 그 장치
CN102751994A (zh) 一种基于两个有限群符号的短码长分组码译码器装置
KR100268832B1 (ko) 효율적 면적의 가변길이 코덱 장치
EP0677964A2 (en) HDTV Viterbi decoder

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: 20130712

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140711

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150710

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160708

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee