KR20050065615A - 가변-길이 에러 코드를 구성하는 방법 및 디바이스 - Google Patents

가변-길이 에러 코드를 구성하는 방법 및 디바이스 Download PDF

Info

Publication number
KR20050065615A
KR20050065615A KR1020057006881A KR20057006881A KR20050065615A KR 20050065615 A KR20050065615 A KR 20050065615A KR 1020057006881 A KR1020057006881 A KR 1020057006881A KR 20057006881 A KR20057006881 A KR 20057006881A KR 20050065615 A KR20050065615 A KR 20050065615A
Authority
KR
South Korea
Prior art keywords
code
distance
length
words
codewords
Prior art date
Application number
KR1020057006881A
Other languages
English (en)
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 KR20050065615A publication Critical patent/KR20050065615A/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

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

Abstract

본 발명은 가변-길이 에러 보정(VLEC) 코드 기술에 관한 것으로, 그 주요 단계는, 모든 필요한 파라미터를 정의하는 단계, 고정 길이 L1을 갖는 코드 생성 단계, 코드워드로부터 최소 발산 거리 dmin만큼 떨어진 상기와 같이 얻어진 모든 가능한 L1-튜플을 집합 W내에 저장하는 단계(만일 그렇게 얻어진 새로운 집합 W가 비어있지 않다면 모든 워드의 말단에 하나의 추가 비트가 첨부됨), 모든 코드워드에서 거리 기준을 만족시키지 않는 W의 모든 워드를 삭제하는 단계, 및 최종 집합 W의 모든 워드가 다른 거리 기준을 만족시키는 것을 보장하는 단계이다. 대부분의 우수한 코드가 길이 점프를 갖지 않는다고 가정하면, 본 발명에 따른 방법은 검사된 VLEC 코드 세트를 축소시키도록 허용한다. 이러한 전제에 따라서, 홀없는 최적화(no hole optimization)라고 불리는 새로운 구성 방법이 정의되는데, 이는 집합 W의 각각의 워드의 말단에 하나보다 많은 비트를 추가하는 것이 회피된다. 새로운 알고리즘은 거의 발생하지 않는 코드 구조를 고려하지 않고, 따라서 복잡도에 있어서의 이득을 얻는 것을 허용한다.

Description

가변-길이 에러 코드를 구성하는 방법 및 디바이스{METHOD AND DEVICE FOR BUILDING A VARIABLE-LENGTH ERROR CODE}
본 발명은 가변-길이 에러 코드의 구성 방법에 관한 것으로, 상기 방법은:
(1) 필요한 파라미터, 즉 코드워드의 최소 및 최대 길이인 각각 L1 및 Lmax, 각각의 코드워드 사이의 자유 거리 dfree(상기 거리 dfree는 VLEC 코드 C를 위한 모든 임의 확장 코드의 집합내의 최소 해밍 거리), 및 필요한 코드워드의 수 S를 초기화하는 단계;
(2) 길이 L1의 고정 길이 코드 C 및 최소 거리 bmin을 생성하는 단계로서, bmin=min{bk; k=1,2,...,R}, bk=코드 C의 코드워드 길이 Lk와 관련되고 길이 Lk를 갖는 C의 모든 코드워드들 사이의 최소 해밍 거리로 정의된 거리, 그리고 R=C내의 다른 코드워드 길이의 수이며, 상기 생성 단계는 d만큼 떨어진 n비트 길이 워드의 집합 W를 형성하는, 생성 단계;
(3) 상기 C의 코드워드로부터 dmin의 거리에서 모든 가능한 L1-튜플을 상기 집합 W내에 나열 및 저장(VLEC 코드 C에서 상기 거리 dmin은 C의 다른 길이의 코드워드의 모든 가능한 커플 사이의 모든 발산 거리의 최소값이다)하고, 만일 상기 집합 W이 비어있지 않다면, 모든 워드의 말단에 하나의 추가 비트를 첨부함으로써 W내의 워드의 수를 2배로 만드는 단계로서, 상기 저장 단계는 따라서 집합 W를 이전 집합보다 2배 더 많은 워드를 갖고 이들 워드의 각각의 워드 길이는 L1+1인 새로운 집합으로 교체하는, 단계;
(4) C의 모든 코드워드와의 cmin 거리를 만족시키지 않는 집합 W의 모든 워드를 삭제하는 단계로서, 상기 거리 cmin은 코드 C의 최소 수렴 거리인, 삭제 단계;
(5) 워드가 발견되지 않거나 또는 최대 비트 수에 도달하는 경우에, 더 많은 워드를 찾기 위해 거리의 구속을 축소하는 단계;
(6) 집합 W의 모든 모드가 bmin만큼 떨어져 있도록 제어하는 단계로서, 발견된 워드는 이때 코드 C에 추가되는, 단계;
(7) 만일 필요한 코드워드 수에 도달하지 않았다면, 상기 방법이 어떠한 추가적인 지속 가능성도 찾지 못하거나 필요한 코드워드의 수를 찾을 때까지 상기 단계 (1) 내지 단계 (6)를 반복하는 단계; 및
(8) 만일 C의 코드워드의 수가 S보다 크다면, VLEC 코드의 구조에 기초하여, 상기 소스의 확률로 각각의 코드워드 길이를 가중함으로써 얻어지는 평균 길이 AL를 계산하는 단계로서, 상기 AL은 ALmin=AL의 최소값에서 ALmin보다 작은 경우에 ALmin이 되고, 대응하는 코드 구조가 메모리내에 유지되는, 단계를 포함한다.
도 1에 도시된 전형적인 통신 체인은, 소스 S로부터 인입되는 신호를 코딩하기 위해서, 소스 코더(1)(SCOD) 뒤에 채널 코더(2)(CCOD), 그리고 채널(3)을 통한 그렇게 얻어진 코딩된 신호의 송신 후에, 채널 디코더(4)(CDEC), 및 소스 디코더(5)(SDEC)를 포함한다. 디코딩된 신호는 수신기를 향해 송신될 예정이다. 가변-길이 코드(VLC)는 전형적으로 그 압축 능력 때문에 소스 코딩에서 사용되고, 관련된 채널 코딩 기술은 (페이딩, 노이즈 등과 같은) 실제 송신 채널의 영향을 제거하고자 한다. 그러나, 소스 코딩이 중복 코드(redundancy)를 제거하고자 하고 채널 코딩이 중복 코드를 재삽입하고자 하기 때문에, 전체 시스템을 개선하는 동시에 복잡도를 수용가능한 레벨로 유지시키기 위해서 이러한 기술들을 효율적으로 조정하는 방법이 연구되었다.
이러한 방식에서 제안된 솔루션 중에서, 가변-길이 에러 정정(VLEC: variable-length error correcting) 코드는 가변-길이인 동시에 에러 정정 능력을 제공하는 이점을 제공하지만, 알 수 있는 바와 같이, 이러한 코드를 구성하는 것은 짧은 알파벳에 대해서 오히려 시간 소모적이고(그리고 심지어 더 긴 길이의 알파벳 소스에 대해서는 금지되고), 구성 복잡도 또한 결점이 된다.
첫째로, 전형적인 VLC의 일부 정의 및 특성이 리콜(recall)되어야 한다. 코드 C는 S 코드워드 집합 {c1,c2,c3,...,ci,..cS}이고, 그 각각에서 길이 ℓi=|ci|가 정의되며, 어떠한 보편성의 손실없이 ℓ1≤ℓ2≤ℓ3≤...≤ℓi≤...ℓS이다. 코드 C내의 다른 코드워드 길이의 수는 R이라고 하고, 명백하게 R≤S이며, 이러한 길이는 L1, L2, L3,...,Li,... LR로 표시되며, L1<L2<L3<...<LR이다. 가변-길이 코드, 즉 VLC는 이때 길이 L1인 s1 코드워드, 길이 L2인 s2 코드워드, 길이 L3인 s3 코드워드,..., 그리고 길이 LR인 sR 코드워드에 대응하는, (s1@L1, s2@L2, s3@L3,...,sR@LR)로 표시되는 구조이다. VLC를 이용하는 경우에, 주어진 소스에 대한 압축 효율은 상기 소스로부터 기호를 송신하기 위해 필요한 비트 수와 관련된다. 이러한 효율을 추정하는데 사용되는 척도(measure)는 종종 코드의 평균 길이 AL(즉, 한 워드를 송신하는데 필요한 평균 비트 수)이고, 각각의 기호 ai가 다음의 수학식 1에 의해 코드워드 ci로 매핑되는 경우에, 상기 평균 길이가 주어진다.
수학식 1은 수학식 2와 동일하다.
여기서, 데이터 소스 A에서, S 소스 기호는 {a1,a2,a3,...,as}로 표시되고, P(ai)는 각각의 이러한 기호들의 각각의 발생 확률이며 ΣP(ai)=1(i=1에서 i=S까지)이다. 만일 ALmin이 평균 길이 AL에 대한 최소값을 표시한다면, ALmin에 도달하는 경우에 P(a1)≥P(a2)≥P(a3)≥...≥P(ai)≥...P(as)가 되는 방식으로 기호들이 인덱싱된다는 것을 알기 쉽다. 수신기가 코딩된 정보를 디코딩할 수 있는 그러한 방식으로 데이터를 인코딩하기 위해서, VLC는 다음의 특성, 즉 단수가 아닌 특성(모든 코드워드는 구별된다. 즉, 하나의 코드워드에 단 하나의 소스 기호가 할당된다), 그리고 고유하게 디코딩가능한 특성(즉, 어떠한 에러없이, 임의의 코드워드열을 분명하게 다시 정확한 소스 기호로 매핑할 수 있다)을 만족시켜야 한다.
VLC 코드의 여러 일반적인 특성을 재검토하는 경우에 유용한 서로 다른 거리의 도입 및 소개는 이후 VLEC 코드 이론에서 사용되는 에러-정정 특성 개념을 리콜하는 것을 도울 것이다.
(a) 해밍 웨이트 및 거리: w=(w1,w2,...,wn)인 w가 길이 n인 한 워드라면, w의 해밍 웨이트, 또는 간단하게 웨이트는 w내의 비-제로 기호의 수 W(w)이다.
그리고, 만일 w1 및 w2가 wi=(wi1,wi2,wi3,...,win) 및 i=1 또는 2인 동일한 길이 n을 갖는 2개의 워드이고, w1과 w2 사이의 해밍 거리(또는 간단하게 거리)는 w1과 w2가 서로 다른 위치의 수이다(예를 들어, 2진수의 경우에서, 수학식 4와 같이 되는 것을 알기 쉽고, 여기서 덧셈은 모듈로-2 덧셈이다).
그러나, 해밍 거리는 정의에 의해 고정 길이 코드로 제한되고, 다른 정의는 VLEC 코드를 고려하기 전에 정의될 것이다.
(b) fi=w1 i w2 i ... wn i가 VLEC 코드 C의 n 워드의 접합(concatenation)이라고 하면, 집합 FN={fi:|fi|=N}은 N차 C의 확장형 코드라고 불린다.
(c) 최소 블록 거리 및 전체 최소 블록 거리 : VLEC 코드 C의 코드워드 길이 Lk와 관련된 최소 블록 거리 bk는 동일한 길이 Lk를 갖는 C의 전체 별개의 코드워드 사이의 최소 해밍 거리로 정의된다:
여기서 k=1,...R
그리고, 모든 가능한 길이 Lk에 대한 최소 블록 거리값인, 상기 VLEC 코드 C의 전체 최소 블록 거리 bmin은 다음과 같이 정의된다:
(d) 발산 거리 및 최소 발산 거리 : ℓi>ℓj에서 ci, cj ∈ C, ℓi=|cj| 및 ℓj=|cj|인 경우에 VLEC 코드 C의 서로 다른 길이의 2개 코드워드 ci=xi1 xi2 ...xiℓi 및 cj=xj1 xj2 ... xjℓj 사이의 발산 거리는 다음과 같이 정의된다:
즉, 그것은 또한 ℓj-길이 코드워드와 더 긴 코드워드의 ℓj-길이 프리픽스(prefix) 사이의 해밍 거리고, 상기 VLEC 코드 C의 최소 발산 거리 dmin은 동일하지 않은 길이의 C의 모든 가능한 코드워드 커플 사이의 모든 발산 거리의 최소값이다.
(e) 수렴 거리 및 최소 수렴 거리: |ci|=ℓi > |cj|=ℓj인 경우에, VLEC 코드 C의 서로 다른 길이의 2개 코드워드 ci=xi1 xi2 ... xiℓi 및 cj=xj1 xj2 ... xjℓj 사이의 수렴 거리는 다음과 같이 정의된다.
즉, 그것은 또한 ℓj-길이 코드워드와 더 긴 코드워드의 ℓj-길이 서픽스(suffix) 사이의 해밍 거리이고, 상기 VLEC 코드 C의 최소 수렴 거리는 동일하지 않은 길이의 C의 모든 가능한 커플들 사이의 모든 수렴 거리의 최소값이다:
(f) 자유 거리(free distance): 코드의 자유 거리 dfree는 j>i에서 일부 공통 상태 Si로부터 발산하고 다시 다른 공통 상태 Sj로 수렴하는 모든 임의 길이 경로의 집합내에서의 최소 해밍 거리이다:
VLC를 위해 사용되는 구조 모델에 따라서, 그러므로 VLEC 코드 C의 구조를 다음의 표시로 설명할 수 있다.
S1@L1,b1; S2@L2,b2; ...; SR@LR,bR; dmin,cmin
여기서 모든 i=1,2,...R(R이 다른 코드워드 길이의 수인 것으로 리콜된다)에서 최소 블록 거리 bi을 갖는 길이 Li의 si 코드워드, 및 최소 발산 및 수렴 거리 dmin 및 cmin이 있다. VLEC 코드의 가장 중요한 파라미터는 그 자유 거리 dfree이고, 이는 에러-정정 능력면에서 그 성능에 크게 영향을 미치며, VLEC 코드의 자유 거리가 다음과 같이 제한된다는 것을 알 수 있다:
이러한 정의는 리콜되고, VLEC 코드 구성에 있어서의 최신 기술이 이제 더 쉽게 설명될 것이다. α-프롬프트 코드라고 불리고 1974년에 소개된 VLEC 코드의 제 1 유형, 및 αt1,t2,...,tR-프롬프트 코드라고 불리는 이러한 계열의 확장형 모두 동일한 본질적 특성을 갖는다: 만일 j≠i에서 임의의 코드워드 cj보다 ci에 더 가까이 있는 워드의 집합을 α(ci)로 표시하면, α(ci)내의 어떤 시퀀스도 다른 α(ci)내의 한 시퀀스의 프리픽스가 아니다. 이러한 코드의 구성은 매우 간단하고, 그 구성 알고리즘은 각각의 길이에서의 코드워드의 수에 의해 조정가능하며, 이는 주어진 소스 및 주어진 dfree를 위한 최상의 프롬프트 코드를 찾을 수 있게 한다. 그러나, 이러한 최상의 코드는 압축 성능 면에서는 불충분하게 수행한다.
1995년 영국의 맨체스터 대학의 V. Buttigieg의 박사 논문인 문서 "Variable-length error-correcting codes"에서 고정 길이 선형 블록 코드의 생성원 매트릭스로부터 VLEC 코드의 구성을 허용하는 좀더 최근의 구성이 제안되었다. 코드-안티코드 구성이라 불리는 이 알고리즘은 가장 우측 열에서 안티코드를 형성하기 위해 행 조합 및 열 순열에 의존한다. 일단 코드-안티코드 생성원 매트릭스가 얻어지면, VLEC 코드는 매트릭스 곱셈에 의해 간단하게 얻어진다.
그러나, 이러한 기술은 여러 단점을 갖는다. 첫째로, 안티코드를 얻기 위해서 필요한 행 조합 및 열 순열을 찾기 위한 명확한 방법이 없다. 또한, 그 구성이 소스 통계를 고려하지 않고, 따라서 종종 그 자체의 하위 최적(sub-optimal)을 반영한다(VLEC 코드상에서의 후-처리에 의해 더 작은 평균 길이를 갖는 코드를 찾을 수 있다). 동일한 문서에서, 저작자는 발견적 방법(Heuristic method)이라고 불리는 개선된 방법을 제안했는데, 상기 방법은 지정된 소스를 위한 더 우수한 알려진 압축률 및 에러에 대항하여 제공된 보호를 제공하는 VLEC 코드, 즉 선택된 자유 거리 및 지정된 소스를 위한 최소 평균 코드워드 길이를 얻기 위해서 지정된 전체 최소 블록, 발산 및 수렴 거리(및 따라서 dfree를 위한 최소값), 및 소스 통계에 매치되는 코드워드 길이를 갖는 코드 C를 구성하기 위한 컴퓨터 탐색에 기초한다(실제로, bmin = dmin+cmin = dfree, 그리고 dmin = [dfree/2]).
다음의 파라미터, 즉 코드워드의 최소 길이 L1, 코드워드의 최대 길이 Lmax, 각각의 코드워드 사이의 자유 거리 dfree, 요구되는 코드워드의 수 S를 이용하는 이러한 발견적 방법의 주요 단계가 이제 도 2 내지 도 4의 플로우차트를 참조하여 설명된다.
컴퓨터 탐색에서 시작하기 위해서("시작"), 모든 필요한 파라미터, 즉 L1(필요한 최소 발산 거리와 적어도 동일하거나 그보다 커야 하는 최소 코드워드 길이), Lmax(최대 코드워드 길이), 코드워드들 사이의 서로 다른 거리(dfree,bmin,dmin,cmin) 및 S(주어진 소스에 의해 요구되는 코드워드의 수)가 먼저 지정되어야 하고, 이들 파라미터를 선택하면 여러 관계식이 설정된다:
L≥dmin
bmin = dfree
dmin + cmin = dfree
"11"로 참조되는, 알고리즘의 제 1 단계가 이후 수행된다: 길이 L1의 고정 길이 코드(먼저 C로 놓음) 및 최대 코드워드 수를 갖는 최소 거리 bmin의 생성으로 이루어진다. 이러한 단계는 예를 들어 도 5에 제공된 그리디 알고리즘(GA: Greedy Algorithm), 또는 도 7에 제공된 다수 투표 알고리즘(MVA: Majority Voting Algorithm), 또는 2개의 전술한 알고리즘의 변형으로 이루어지는, GAS(단계별 그리디 알고리즘: Greedy Algorithm by Step)로 표시되는 새롭게 제안된 변형 알고리즘과 같은 알고리즘에 의해 수행되는, 사실상 초기화 단계이다(GAS는 GA에서 사용되는 탐색 방법으로 이루어지고, 여기서 코드워드의 절반을 삭제하는 대신 상기 그룹의 마지막 코드워드만이 삭제된다). 이러한 2개의 알고리즘은 d만큼 떨어진 n비트 길이 워드의 집합 W를 생성하기 위해 유용하다(실제로, MVA는 GA보다 더 많은 워드를 찾지만, 각각 GA 및 MVA에서, 도 9의 표에 정의된 26-기호 영어 소스에 대한 dfree의 서로 다른 값으로 얻어지는 최상의 코드 구조를 비교하는, 도 6 및 도 8의 표에 도시된 바와 같이, 단지 압축 능력의 작은 개선을 위해 너무 많은 시간을 필요로 한다는 점을 주지할 수 있다).
도 2에서 "21" 내지 "24"(21+22=동작 "A0"; 23+24=동작 "A2")로 참조된 요소에 해당하는, 알고리즘의 제 2 단계는 C내의 코드워드로부터 dmin의 거리로 모든 가능한 L1-튜플을 W라고 불리는 집합 내에 나열하고 저장하는 단계(21)로 이루어진다. 만일 dmin≥bmin이라면, W는 비어있다. 만일 현재 코드에 대한 최소 발산 거리를 만족시키는 모든 워드의 이러한 집합 W이 비어있지 않다면(테스트 22 : |W|=0?에 대한 응답이 NO), 최대 비트 수가 초과되는 경우(테스트 23에 대한 응답 YES)를 제외하고, W내의 워드의 수는, W내의 모든 워드의 가장 우측 위치에 먼저 "0"을 첨부한 다음 "1"을 첨부함으로써 워드의 길이를 1비트씩 증가시킴으로써, 2배가 된다. 상기 단계(24)의 출력에서, 이러한 수정된 집합 W는 이전 W보다 2배 더 많은 워드를 갖고, 각각의 집합의 길이는 L1+1이다.
요소 "31" 내지 "35"에 해당하는, 알고리즘의 제 3 단계(= 도 2의 동작 "A3")는 C의 모든 코드워드와의 cmin 거리(최소 수렴 거리)를 만족시키지 않는 집합 W의 모든 워드를 삭제하는 단계(31)(즉, 상기 최소 수렴 거리를 만족시키는 워드만을 새로운 W에 유지, 저장하고 다른 워드는 취소되는 단계)로 이루어진다. 이러한 시점에서, 새로운 집합 W는 C의 코드워드와 비교할 때 요구되는 C의 코드워드와의 최소 발산 및 수렴 거리(양쪽 dmin 및 cmin 거리)를 만족시키는 워드 집합이다. 만일 그 새로운 집합 W가 비어있지 않다면(테스트 32: |W|=0?에 대한 응답 NO), 동일한 길이를 갖는, 집합 W의 모든 워드가 적어도 bmin과 동일한 최소 거리를 갖는다는 것을 보장하기 위해서, 최소 블록 거리를 만족시키기 위한 최대 워드 수를 W내에서 선택한다{단계(33)}. GA 또는 MVA로 실현된 이러한 단계(33)의 종료에서, (이러한 경우에, GA 또는 MVA에서 사용되는 초기 집합이 현재의 W이고 n-튜플 집합이 아니라는 점에 유의), 그렇게 얻어진 워드가 C내의 기존 코드워드에 부가된다{단계(34)}.
만일 단계(21)의 종료 시에 워드가 발견되지 않았다면(즉, W가 비어 있음)(테스트 22: |W|=0?에 대한 응답 YES), 또는 최대 비트 수에 도달했거나 초과되었다면(테스트 23에 대한 응답 YES), 더 많은 선택 권리를 삽입함으로써, 더 상세하게는 새로운 그룹이 종전 그룹보다 더 많은 비트를 포함하도록 W내의 모든 워드에 추가 비트(동시에 여러 비트)를 첨부함으로써 프로세스를 방해하지 않기 위해 사용되는, 알고리즘의 제 4 단계{도 3에 도시되고, 또한 도 3에서 동작 "A1"으로 지정된, 단계(41 내지 46)}에 들어간다. 만일 최종 그룹 내에 충분한 코드워드가 있다면(최종 그룹내의 코드워드의 수를 확인하기 위해서, 그리고 만일 이전 그룹이 있다면, 연속적인 테스트 41 및 42), 그들 중 일부는 (전술한 바와 같은) 이러한 상기 그룹으로부터 삭제되고, 이러한 삭제는 거리 구속(constraint)을 감소시키고 이전보다 더 많은 코드워드를 찾도록 허용한다. 사실, 이렇게 설명된 전형적인 발견적 방법은 짧은 길이를 갖는 최대 코드워드에서 시작하고, 높은 확률 기호를 이용하여 그들을 매핑하며, 우수한 압축률을 얻고자 시도하지만, 때로 짧은 길이 집합의 크기는 요구되는 코드워드의 수 S와 호환불가능하다. 이러한 시점에서, 소수의 코드워드를 덜어내는 것은 더 많은 자유도를 제공하고, 코드를 위한 기호의 수 및 거리에 대한 초기 요구사항이 만족될 수 있는 위치에 도달하도록 허용한다. 이러한 삭제 프로세스는 각각의 길이에 대한 한 코드워드의 최대값을 유지할 때까지 반복된다. 만일 W가 단계(31)의 종료 시에 비어있다면(테스트 32: |W|=0?에 대한 응답 YES), 단계(23,24,31,32)가 반복된다. 만일 요구되는 코드워드 수에 도달하지 않았다면(이러한 제 3 단계의 종료 시에 제공되는 테스트 35에 대한 응답 NO), 단계(21 내지 24, 31 내지 35)는, 상기 단계가 추가로 가능한 워드가 발견되지 않았거나 요구되는 코드워드의 수에 도달했다는 것을 알게 될 때까지 반복되어야 한다.
만일 상기 요구되는 코드워드 수에 도달했다면, 즉 C의 코드워드의 수가 S 이상이면(테스트 35에 대한 응답 YES), 평균 길이 AL을 계산하기 위해서, 그렇게 얻어진 VLEC 코드의 구조는 (도 4에 도시되고, 또한 도 4에서 동작 "A4"로 지정된) 단계(51 내지 56)를 포함하는 제 5 파트에서 사용된다. 이것은 소스의 확률로 각각의 코드워드 길이를 가중하고 그것을 현재의 최고 길이와 비교함으로써 수행된다. 만일 이러한 VLEC 코드의 상기 평균 길이 AL이 AL의 최소값(=ALmin)보다 작다면, 이러한 AL은 ALmin이 되고, 이러한 새로운 AL 값 및 대응하는 코드 구조는 메모리내에 유지된다{단계(51)}. 이들 단계(51) 및 후속 단계(제 5 파트; 동작 "A4")는 상기 알고리즘 내에서 이전 그룹을 향해 다시 돌아오도록 허용하는 반면, 상기 알고리즘의 다른 단계는 항상 현재 그룹 상에서 수행된다. 이러한 피드백 동작에 대한 단계 크기는 하나다. 즉, 이러한 피드백 행위는 유일한 것으로 간주될 수 있다.
이러한 최상의 VLEC 코드 탐색을 지속하기 위해서, 동일한 구조를 유지하는 것을 회피할 필요가 있는데, 이는 알고리즘 내에서의 루프를 초래한다. 단계(21)(도 2 참조)의 시작에서 상기 알고리즘을 재루핑하고{단계(56)} 다른 VLEC 구조를 찾기 위해서, 현재 코드의 최종 추가된 그룹이 삭제되고{단계(52,53)}, 더 짧은 길이의 코드워드의 삭제는 좀더 긴 길이의 코드워드를 찾도록 허용하며(테스트 54: 그룹내 코드워드의 수가 1보다 큰가?), 이전 그룹의 일부 코드워드(GVA에서는 그 양의 절반; MVA에서는 "최상의" 코드워드)가 삭제된다{단계(55)}(삭제된 코드워드의 수는 워드 선택을 위해 어떤 방법이 사용되는지에 따라 달라진다: 만일 GA 방법이 사용되고 선형 코드를 얻기를 원한다면, 코드워드의 절반을 삭제할 필요가 있는 반면, MVA 방법을 이용하면 단 하나의 코드워드, 즉 최상의 코드워드, 즉 다음 그룹내에서 더 많은 코드워드를 찾도록 허용하는 코드워드가 삭제된다).
그러나, 전술한 발견적 방법은 종종 매우 가능성없는 코드 구조를 고려하거나 또는 상기 방법의 구현 시에 굉장한 복잡도가 관찰된다는 (어떤 것도 놓치지 않기 위해서) 그러한 걱정을 가지고 진행되는데, 이는 또한 오히려 시간 소모적이고 그래서 금지될 수 있다.
도 1은 종래의 통신 채널을 나타내는 도면.
도 2 내지 도 4는 발견적 방법이라고 불리는, VLEC 코드를 구성하는데 사용되는 종래 방법의 주요 단계를 나타내는 단일 플로우차트의 3개 파트를 나타내는 도면.
도 5는 도 2 내지 도 4의 방법의 초기화를 위해 사용되는 (그리디 알고리즘 또는 GA라고 불리는) 알고리즘을 나타내는 도면.
도 6은 도 5의 상기 알고리즘을 이용하여 발견적 구성으로 구성된 소스를 위한 여러 VLEC 코드를 제공하는 표.
도 7은 도 2 내지 도 4의 방법의 초기화를 위해 사용되는 (다수 투표 알고리즘 또는 MVA라고 불리는) 다른 알고리즘을 나타내는 도면.
도 8은 도 7의 상기 알고리즘을 이용하는 발견적 구성으로 구성된 소스를 위한 여러 VLEC 코드를 제공하는 다른 표.
도 9는 26-기호 영어 소스에 대한 소스 부호와 그 확률 사이의 대응성을 제공하는 표.
도 10 및 도 11은 도 2 내지 도 4에 도시된 종래 방법의 개선예의 구현을 나타내는, 본 발명에 따른 하나의 플로우차트의 2개 파트를 나타내는 도면.
도 12는 도 6 및 도 8의 표에서 고려된 바와 동일한 26 기호 영어 소스를 위한 여러 VLEC 코드를 제공하고 GAS를 이용하는 다른 표.
도 13은 도 12에서와 동일한 소스를 위한 여러 VLEC 코드를 제공하고 전술한 GAS 및 본 발명에 따른 구성 방법 양쪽을 이용하는 다른 표.
따라서, 본 발명의 목적은 상기 단점을 회피함으로써 복잡도면에서 이득을 얻을 수 있는 개선된 구성 방법을 제안하는 것이다.
이 때문에, 본 발명은 명세서의 도입 단락에서 정의된 바와 같은 가변-길이 에러 코드를 구성하는 방법에 관한 것으로, 상기 구성 방법은 또한 집합 W의 각각의 워드의 말단에 많아야 하나의 비트가 추가되도록 한다.
또한 본 발명의 목적은 이러한 가변-길이 에러 코드 구성 방법을 수행하기 위한 디바이스를 제안하는 것이다.
이제 첨부 도면을 참조하여 예의 방법으로 본 발명을 설명할 것이다.
시뮬레이션은, 전형적인 발견적 방법을 이용하여, 얻어진 최상의 코드 중 거의 전부가 홀, 즉 그 구조 길이내에 길이 점프(length jump)를 갖지 않는다는 것을 나타낸다. 따라서, 본 발명에 따라서 대부분의 우수한 코드들이 길이 점프를 갖지 않는 것을 고려하고, 그래서 검사된 VLEC 코드 집합을 그에 따라 축소시키는(따라서 AL을 많이 수정하지 않고서, 상기 방법의 구현의 시뮬레이션 시간 및 복잡도를 감소시키는) 것이 제안된다. 이러한 전제에 이어서, 상기 방법은 본 발명에 따라서 집합 W의 각각의 워드의 말단에서 하나보다 많은 비트를 추가하는 것을 회피함으로써 수정된다.
대응하는 구현(홀 최적화가 없는, 개선된 발견적 구성 방법)이 도 10 및 도 11에 도시되고, 상기 도면들은 본 발명에 따른 개선된 방법을 수행하도록 허용하는 시스템에 대응하는 플로우차트의 2개 파트를 나타낸다(도 2 내지 도 4에서 관찰되는 요소와 동일한 요소는 동일한 참조번호로 지정된다).
도 2 내지 도 4의 플로우차트와의 주요 차이점은 다음과 같다:
(a) 전형적인 발견적 기술에 대해서, 개선된 방법의 구현을 위해 쓸모없는 제 1 파트가 삭제된다:
(b) 만일 단계(31)의 종료 시에 W가 비어있다면(테스트 32: |W|=0?에 대한 응답 YES), 다음 단계는 이제 단계(23,24,31,32)의 반복이 아니라(도 10 참조), 동작(55)을 수행하는 회로의 (도 11의) 입력단을 향한 직접 연결(91)의 설치(상기 반복 대신)이고{단계(21 내지 24,31 내지 35)의 반복 이전에 일부 코드워드 또는 최상의 코드워드의 삭제}, 상기 동작(55)은 따라서 이전과 같이 동작(21) 및 후속 동작으로 이어진다.
(c) 상기 방법의 제 4 단계는 이제 하나의 단계, 즉 테스트 "최종 그룹내의 코드워드의 수 = 1?"인 동작(41)(도 11)으로 축소된다. 만일 응답이 NO라면, 직접 링크(101)는 상기 동작(55), 및 그 다음 동작(21) 및 후속 동작을 수행하는 관점에서 단계(55)의 입력에서 설정된다. 만일 응답이 YES이면, 연결(102)이 동작(52 내지 54)의 세트의 입력에서 설정된다.
("홀없는 최적화 방법"이라고 불리는) 본 솔루션으로 얻어진 결과가 코드워드 선택을 위해 GAS 방법을 이용하는 경우에 26 기호 영어 소스에 대해서 도 12의 표에 제공된다. 도 13에 제공된 결과와 비교할 때, 그 결과가 dfree=3에 대해 완전히 최적이지는 않지만(코드 구조가 길이 L=11에서 홀을 갖는다), AL 상승은 실제로 다른 dfree 값에 대한 저하 및 2, 5 및 4 사이의 시간 이득이 모두 엄격히 없다고 고려하는 경우에 수용가능하다는 것을 알 수 있다. 도 7에서 얻어진 것과 본 솔루션을 비교하는 경우에 동일한 언급이 적용될 수 있고, 도 7에서 MVA 복잡도 효과가 명백하다. 유사하게, 코드워드를 선택하기 위해 GA 방법을 이용하여 홀없는 최적화를 적용하면, dfree=3에서 약간의 AL 상승만으로 시간 이득을 초래한다. 마지막으로, 도 5는 다른 한편으로 현 솔루션이 수용가능한 시간 이득을 위해 더 우수한 AL을 제공하고, 홀없는 최적화는 GAS에 의해 유도된 복잡도를 거의 완전히 보상한다는 것을 나타낸다.
전술한 바와 같이, 본 발명은 가변-길이 에러 코드 구성 방법 및 그 수행을 위한 디바이스에서 이용 가능하다.

Claims (2)

  1. 가변-길이 에러 코드의 구성 방법에 있어서,
    (1) 필요한 파라미터, 즉 코드워드의 최소 및 최대 길이인 각각 L1 및 Lmax, 각각의 코드워드 사이의 자유 거리 dfree(상기 거리 dfree는 VLEC 코드 C를 위한 모든 임의 확장 코드의 집합내의 최소 해밍 거리), 및 필요한 코드워드의 수 S를 초기화하는 단계;
    (2) 길이 L1의 고정 길이 코드 C 및 최소 거리 bmin을 생성하는 단계(11)로서, bmin=min{bk; k=1,2,...,R}, bk=코드 C의 코드워드 길이 Lk와 관련되고, 길이 Lk를 갖는 C의 모든 코드워드들 사이의 최소 해밍 거리로 정의된 거리, 그리고 R=C내의 다른 코드워드 길이의 수이며, 상기 생성 단계(11)는 d만큼 떨어진 n비트 길이 워드의 집합 W를 형성하는, 생성 단계(11);
    (3) 상기 C의 코드워드로부터 dmin의 거리에서 모든 가능한 L1-튜플을 상기 집합 W내에 나열 및 저장(VLEC 코드 C에서 상기 거리 dmin은 C의 다른 길이의 코드워드의 모든 가능한 커플 사이의 모든 발산 거리의 최소값이다)하는 단계(21)로서, 만일 상기 집합 W이 비어있지 않다면, 모든 워드의 말단에 하나의 추가 비트를 첨부함으로써 W내의 워드의 수를 2배로 만들고, 상기 저장 단계는 따라서 집합 W를 이전 집합보다 2배 더 많은 워드를 갖고 이들 워드의 각각의 워드 길이는 L1+1인 새로운 집합으로 교체하는, 단계(21);
    (4) C의 모든 코드워드와의 cmin 거리를 만족시키지 않는 집합 W의 모든 워드를 삭제하는 단계(31)로서, 상기 거리 cmin은 코드 C의 최소 수렴 거리인, 삭제 단계(31);
    (5) 워드가 발견되지 않거나 또는 최대 비트 수에 도달하는 경우에, 더 많은 워드를 찾기 위해 거리의 구속을 축소하는 단계(41);
    (6) 집합 W의 모든 워드가 bmin만큼 떨어져 있도록 제어하는 단계로서, 발견된 워드는 이때 코드 C에 추가되는, 단계(34);
    (7) 만일 단계(35)에서 필요한 코드워드 수에 도달하지 않았다면, 상기 방법이 어떠한 추가적인 지속 가능성도 찾지 못하거나 필요한 코드워드의 수를 찾을 때까지 상기 단계 (1) 내지 단계 (6){즉, 단계(21) 내지 단계(35)}를 반복하는 단계; 및
    (8) 만일 C의 코드워드의 수가 S보다 크다면, VLEC 코드의 구조에 기초하여, 상기 소스의 확률로 각각의 코드워드 길이를 가중함으로써 얻어지는 평균 길이 AL를 계산하는 단계(A4)로서, 상기 AL은 ALmin=AL의 최소값에서 ALmin보다 작은 경우에 ALmin이 되고, 대응하는 코드 구조가 메모리내에 유지되는, 단계(A4)를 포함하고,
    상기 구성 방법은 또한 많아야 하나의 비트가 집합 W의 각각의 워드의 말단에 추가되도록 하기 위한 것인, 가변-길이 에러 코드의 구성 방법.
  2. 제 1항에 따른 가변-길이 에러 코드 구성 방법을 수행하기 위한 디바이스.
KR1020057006881A 2002-10-23 2003-10-14 가변-길이 에러 코드를 구성하는 방법 및 디바이스 KR20050065615A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02292624.0 2002-10-23
EP02292624 2002-10-23

Publications (1)

Publication Number Publication Date
KR20050065615A true KR20050065615A (ko) 2005-06-29

Family

ID=32116330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057006881A KR20050065615A (ko) 2002-10-23 2003-10-14 가변-길이 에러 코드를 구성하는 방법 및 디바이스

Country Status (7)

Country Link
US (1) US7222283B2 (ko)
EP (1) EP1556954A1 (ko)
JP (1) JP2006504316A (ko)
KR (1) KR20050065615A (ko)
CN (1) CN1706102A (ko)
AU (1) AU2003267753A1 (ko)
WO (1) WO2004038926A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1759536A (zh) * 2003-03-11 2006-04-12 皇家飞利浦电子股份有限公司 用于构造可变长度差错代码的方法和设备
US7266755B2 (en) 2003-03-20 2007-09-04 Koninklijke Philips Electronics N.V. Method and device for building a variable length error-correcting code
US8612842B2 (en) 2011-05-25 2013-12-17 Infineon Technologies Ag Apparatus for generating a checksum

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745504A (en) * 1996-06-25 1998-04-28 Telefonaktiebolaget Lm Ericsson Bit error resilient variable length code

Also Published As

Publication number Publication date
US7222283B2 (en) 2007-05-22
CN1706102A (zh) 2005-12-07
WO2004038926A1 (en) 2004-05-06
JP2006504316A (ja) 2006-02-02
EP1556954A1 (en) 2005-07-27
AU2003267753A1 (en) 2004-05-13
US20060015796A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
CN111628785B (zh) 使用硬选取硬译码模式下的译码器产生软信息的方法
US20070067695A1 (en) Forward error correction coding
JP2004533766A (ja) 可変長コードワードシーケンスを復号化する方法
US20070162821A1 (en) Parity check matrix, method of generating parity check matrix, encoding method and error correction apparatus
US20020094039A1 (en) Method and system for optimizing coding gain
Sheikh et al. On low-complexity decoding of product codes for high-throughput fiber-optic systems
KR102326070B1 (ko) 계단 코드의 디코딩 방법, 장치 및 기억매체
CN111327397A (zh) 一种信息数据纵向冗余校验纠错编解码方法
US7266755B2 (en) Method and device for building a variable length error-correcting code
KR20050065615A (ko) 가변-길이 에러 코드를 구성하는 방법 및 디바이스
US20060200706A1 (en) Method and device for building a variable-length error-correcting code
US7178094B2 (en) Method and device for building a variable-length error code
US8091012B2 (en) System and method for decreasing decoder complexity
US8156412B2 (en) Tree decoding method for decoding linear block codes
Qi et al. An improved successive cancellation decoder for polar codes
Liang et al. Rateless transmission of polar codes with information unequal error protection
Song et al. Designing Multi-CRC Polar Codes with Good Low-Weight Spectra
Bégin et al. Performance of sequential decoding of high-rate punctured convolutional codes
Al-Lawati et al. On decoding binary perfect and quasi-perfect codes over Markov noise channels
Wang et al. Fast length-constrained MAP decoding of variable length coded Markov sequences over noisy channel
Wang et al. Length-constrained MAP decoding revisited
CN115603760A (zh) 一种关键集保护的CRC级联Polar码编码方法
Kumar et al. Soft decision fano decoding of block codes over discrete memoryless channel using tree diagram
Nagaraj et al. Multiscale unit‐memory convolutional codes
Buch et al. Non-linear codes and concatenated codes for unequal error protection

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid