KR20050113266A - 가변 길이 에러 정정 코드를 형성하는 방법 및 장치 - Google Patents

가변 길이 에러 정정 코드를 형성하는 방법 및 장치 Download PDF

Info

Publication number
KR20050113266A
KR20050113266A KR1020057018381A KR20057018381A KR20050113266A KR 20050113266 A KR20050113266 A KR 20050113266A KR 1020057018381 A KR1020057018381 A KR 1020057018381A KR 20057018381 A KR20057018381 A KR 20057018381A KR 20050113266 A KR20050113266 A KR 20050113266A
Authority
KR
South Korea
Prior art keywords
length
code
distance
codewords
words
Prior art date
Application number
KR1020057018381A
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 KR20050113266A publication Critical patent/KR20050113266A/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/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression
    • H03M13/6318Error control coding in combination with data compression using variable length 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/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
    • 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/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • 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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/21Non-linear codes, e.g. m-bit data word to n-bit code word [mBnB] conversion with error detection or error correction
    • 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)
  • Nonlinear Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 모든 필요한 파라미터들을 규정하는 단계; 고정된 길이(L1)를 가진 코드를 생성하는 단계; 얻어진 세트 W에, 코드워드들로부터 최소의 발산 거리(dmin)의 모든 가능한 L1 튜플(tuple)들을 기억하는 단계(만약 얻어진 새로운 세트의 W가 비어지지 않으면 모든 워드들의 말단에 하나의 여분 비트가 첨부됨); 모든 코드워드들과 거리 기준을 만족시키지 않는 W의 모든 워드들을 삭제하는 단계; 및 최종 세트의 W의 모든 워드들이 다른 거리 기준을 만족시키는 것을 검증하는 단계들을 사용하는 가변 길이 에러 정정 (VLEC) 코드 구성에 관한 것이다. 코드워드 삭제가 최종으로 얻어진 코드워드 그룹에서 행해지는 것뿐만 아니라, 알고리듬이 코드워드 삭제 동작에서 다시 스킵하는 주어진 길이 값(L)들의 그룹에서 행해질 때, 각각의 최적인 VLEC 구조의 시작은 메모리에 유지되고 다음 검색에 다시 사용된다.

Description

가변 길이 에러 정정 코드를 형성하는 방법 및 장치{Method and device for building a variable-length error-correcting code}
본 발명은 가변 길이 에러 코드를 형성하는 방법에 관한 것이다. 상기 방법은,
(1) 필요한 파라미터들인 코드워드들의 최소 길이 및 최대 길이(L1 및 Lmax), 각 코드워드 사이의 자유 거리(dfree)(상기 거리 dfree는 VLEC 코드 C에 대하여 모든 임의의 확장된 코드들의 세트에서 최소 해밍 거리(Hamming distance)인), 요구된 수의 코드워드들(S)을 초기화하는 단계;
(2) 길이(L1) 및 최소 거리(bmin)의 고정된 길이 코드(C)를 생성하는 단계로서, 여기서 bmin=min{bk;k=1,2,....,R}이고, bk = 코드 C의 코드워드 길이(Lk)에 연관되고 길이 Lk를 가진 모든 C의 코드워드들 사이의 최소 해밍 거리로서 규정된 거리이고, R=C의 다른 코드워드 길이들의 수이고, 상기 생성 단계는 d의 n 비트 길이 워드들의 거리의 세트 W를 생성하는, 상기 생성 단계;
(3) 세트 W에 모든 가능한 L1을 기억하는 단계로서, 상기 L1은 C의 코드워드들로부터 dmin 의 거리인 튜플(tuple)들이고(VLEC 코드 C에 대한 상기 거리(dmin)는 C의 다른 길이 코드워드들의 모든 가능한 커플들 사이의 모든 발산 거리들의 최소 값이고), 만약 상기 세트 W가 비어있지 않으면 모든 워드들의 말단에 하나의 여분 비트를 첨부하고, 상기 기억 단계는 이전 것보다 두배 이상의 워드들을 가진 새로운 세트에 의해 상기 세트 W를 대체하고 이들 워드들 각각의 워드의 길이는 L1+1인, 상기 기억 단계;
(4) C의 모든 코드워드들과 cmin 거리를 만족시키지 못하는 상기 세트 W의 모든 워드들을 삭제하는 단계로서, 상기 거리 cmin는 상기 코드 C의 최소 수렴 거리인, 상기 삭제 단계;
(5) 워드가 발견되지 않거나 비트들의 최대 수가 도달된 경우, 보다 많은 워드들을 발견하기 위한 거리의 제한을 감소시키는 단계;
(6) 상기 세트 W의 모든 워드들이 bmin의 거리를 가지도록 제어하는 단계로서, 상기 발견된 워드들은 그 후 코드 C에 부가되는, 상기 제어 단계;
(7) 코드워드들의 요구된 수가 도달되지 않으면, 상기 방법이 계속할 다른 추가 확률을 발견하지 못하거나 요구된 수의 코드워드들을 발견할 때까지 단계들 (1) 내지 (6)을 반복하는 단계; 및
(8) 만약 C의 코드워드들의 수가 S 보다 크면, VLEC 코드의 구조에 근거하여, 소스의 확률로 각각의 코드워드 길이를 가중(weighting)함으로써 얻어진 평균 길이(AL)를 계산하는 단계로서, 상기 AL은 만약 ALmin보다 낮으면 ALmin이되고, 여기서 ALmin=AL의 최소 값이며, 대응하는 코드 구조는 메모리에 유지되는, 상기 계산 단계를 포함하고, 상기 AL은 만약 ALmin보다 작으면, AL은 ALmin이되고, 상기 ALmin = AL의 최소 값이고, 대응 코드 구조는 메모리에 유지된다.
본 발명은 대응하는 장치에 관한 것이다.
도 1에 도시된 통상적인 통신 체인은 소스(S)로부터 나오는 신호들을 코딩하기 위하여, 소스 코더(1)(SCOD), 그 뒤에 연결된 채널 코더(2)(CCOD), 얻어진 코딩된 신호들의 전송 후 통과하는 채널 3, 채널 디코더(4)(CDEC) 및 소스 디코더(5)(SDEC)를 포함한다. 디코딩된 신호들은 수신기쪽으로 전송된다. 가변 길이 코드들(VLC)은 통상적으로, 압축 기능들을 위해 소스 코딩시 사용되고 연관된 채널 코딩 기술들은 (페이딩, 노이즈 같은) 실제 전송 채널의 효과들을 제거하려 한다. 그러나, 소스 코딩이 재도입을 위한 리던던시 및 채널 코딩을 제거하기 위한 것이기 때문에, 허용 가능한 레벨에서 복잡도를 유지하면서 전체 시스템을 개선하기 위하여 기술들과 효과적으로 협력하는 방법이 연구되었다.
상기 방법에서 제안된 해결책들중에서, 가변 길이 에러 정정 (VLEC) 코드들은 에러 정정 기능들을 제공하면서 가변 길이인 이점을 제공하지만, 이들 코드들이 형성하는 것은 짧은 알파벳들에 대해서는 시간 소비적이고 (보다 긴 길이 알파벳들 소스들에 대해서는 고비용이며), 구성 복잡도 또한 도시되는 것처럼 단점이다.
첫째, 표준 VLC의 일부 정의들 및 특성들은 재호출되어야 한다. 코드 C는 한세트의 S 코드워드들{c1, c2, c3,...,ci,...cs}이고, 그 각각의 길이 li = lcil는 정의되고, 여기서 어떤 일반적 손실 없이 l1≤l2≤l3....≤li≤....≤ls이다. 코드 C에서 다른 코드워드 길이들의 수는 R이라 불리고, 명백하게 R≤S이며, 이들 길이들은 L1, L2, L3,...,Li,....LR로서 표시되고, L1<L2<L3<....<LR이다. 가변 길이 코드, 또는 VLC는 (s1@L1, s2@L2, s3@L3,....,sR@LR)로 표시되는 구조이고, 이것은 길이 L1의 s1 코드워드들, 길이 L2의 s2 코드워드들, 길이 L3의 s3 코드워드들,..., 및 길이 LR의 sR 코드워드들에 대응한다. VLC를 사용할때, 주어진 소스에 대한 압축 효율성은 상기 소스로부터 심볼들을 전송하기 위하여 필요한 비트들의 수에 연관된다. 이런 효율성을 추정하기 위하여 사용된 방법은 종종 코드의 평균 길이(AL), 즉 워드를 전송하기 위하여 필요한 비트들의 평균수이고, 상기 평균 길이는 각각의 심볼(ai)가 코드워드(ci)에 맵핑될때 다음 [수학식 1]로 주어진다 :
[수학식 1]
이것은 [수학식 2]와 동일하다.
[수학식 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) 해밍 웨이트 및 거리(Hamming weight and distance) : 만약 w가 길이(n)의 워드이면, 여기서 w=(w1, w2,...,wn), w의 해밍 웨이트, 또는 간단히 웨이트는 w에서 제로가 아닌 심볼들의 수 W(w)이다.
[수학식 3]
그리고, 만약 w1 및 w2가 wi = (wi1, wi2, wi3,...,win)인 동일한 길이의 2개의 워드들이면, 여기서 i = 1 또는 2이면, w1 및 w2 사이의 해밍 거리(또는 간단히, 거리)는 w1 및 w2가 다른 위치들의 수이다(예를들어, 이진수의 경우, 하기와 같이 도시되고, 부가적인 것으로 모듈로(modulo) 2이다).
[수학식 4]
H(w1, w2) = W(w1 + w2)
그러나, 해밍 거리는 고정된 길이 코드들로 제한되고, 다른 규정들은 VLEC 코드들을 고려하기 전에 규정될 것이다.
(b) fi = ...는 VLEC 코드 C의 n 워드들의 연결이고, 세트 FN = {fi : lfil = N}은 순서 N의 C의 확장된 코드라 불린다.
(c) 최소 블록 거리 및 전체 최소 블록 거리 : VLEC 코드 C의 코드워드 길이(Lk)에 연관된 최소 블록 거리(bk)는 동일한 길이 Lk를 가진 C의 모든 구별되는 코드워드들 사이의 최소 해밍 거리로서 규정된다 :
[수학식 5]
k=1,...,R에 대하여
모든 가능한 길이(Lk)에 대한 최소 블록 거리 값인 상기 VLEC 코드 C의 전체 최소 블록 거리(bmin)는 다음과 같이 규정된다 :
[수학식 6]
bmin = min{bk : k =1,...R}
(d) 발산 거리 및 최소 발산 거리 : 다른 길이 의 두개의 코드 워드들의 발산 거리 및 VLEC 코드 C의 , 여기서, [수학식 7]에 의해 ci, cj ∈ C, li =lcjl 및 lj = lcjl, li>lj 이 규정된다 :
[수학식 7]
즉, lj - 길이 코드워드 및 lj - 보다 긴 코드워드의 길이 접두사 사이의 해밍 거리이고, 상기 VLEC 코드 C의 최소 발산 거리(dmin)는 동일하지 않은 길이의 C의 코드워드들의 가능한 모든 커플들 사이의 모든 발산 거리들의 최소 값이다 :
[수학식 8]
dmin = min{D(ci, cj):ci,cj∈c,lcil≠lcjl}
(e) 수렴 거리 및 최소 수렴 거리 : VLEC 코드 C의 다른 길이 의 두개의 코드워드들 사이의 수렴 거리, 여기서 lcil = li>lcjl = lj는 다음과 같이 규정된다.
[수학식 9]
즉, lj - 길이 코드워드 및 lj - 보다 긴 코드워드의 길이 접미사 사이의 해밍 거리이고, 상기 VLCE 코드 C의 최소 수렴 거리는 동일하지 않은 길이 C의 모든 가능한 커플들 사이의 모든 수렴 거리들의 최소 값이다 :
[수학식 10]
Cmin = min{C(ci, cj):ci,cj∈C,lcil≠lcjl}
(f) 자유 거리 : 코드의 자유 거리 dfree는 일부 공통 상태(Si)에서 발산하고 다른 공통 상태(Sj)에서 다시 수렴하는 모든 임의의 긴 경로들의 세트의 최소 해밍 거리이고, j>i :
[수학식 11]
dfree = min{H(fi,fj):fi,fj∈fN,N=1,2,...,∞}
VLC에 사용된 구조 모델들을 따라, 표시법에 의해 VLEC 코드 C의 구조를 기술하는 것은 가능하다 :
[수학식 12]
S1@L1,b1; S2@L2,b2;...;SR@LR,bR;dmin,cmin
여기서 모든 i=1,2,...R에 대하여 최소 블록 거리(bi)를 가진 길이(Li)의 si 코드워드들(R은 다른 코드워드 길이들의 수로 상기된다) 및 최소 발산 및 수렴 거리들 dmin 및 cmin이 있다. VLEC 코드의 가장 중요한 파라미터는 에러 정정 기능들 측면에서 성능에 큰 영향을 미치는 자유 거리 dfree이고, 이것은 VLEC 코드의 자유 거리가 다음과 같이 한정되는 것이 기술될 수 있다 :
[수학식 13]
dfree≥min(bmin,dmin+cmin)
이들 규정들은 상기되어지고, VLCE 코드들의 구성에서 당업자 수준의 기술은 이하에 보다 쉽게 기술될 것이다. α 프롬프트라 불리고 1974년에 도입된 제 1 형태의 VLEC 코드들, 및 프롬프트 코드들이라 불리는 이런 패밀리의 확장 모두는 동일한 필수적인 특성을 가진다 : 만약 하나가 α(ci)에 의해 어떤 코드워드(cj)보다 ci에 밀접한 워드들의 세트를 표현하고, 여기서 j≠i이면, α(ci)의 시퀀스는 다른 α(ci)의 시퀀스의 접두사이다. 이들 코드들의 구성은 매우 간단하고, 구성 알고리듬은 각각의 길이에서 코드워드들의 수에 의해 조절가능하고, 이것은 주어진 소스 및 주어진 dfree에 대해 가장 양호한 프롬프트 코드를 발견할 수 있다. 그러나, 가장 양호한 코드는 압축 성능 측면에서 빈약하게 수행되다.
고정된 길이의 선형 블록 코드의 생성기 매트릭스로부터 VLEC 코드의 구성을 허용하는 보다 최근의 구성은 1995년 영국 V.Buttigieg, Ph.D.Thesis, University of Manchester에 의해 제목이 "가변길이 에러 정정 코드들(Variable-length error-correcting codes)"인 논문에서 제안되었다. 소위 코드 안티코드 구성에서, 이 알고리듬은 최우측 컬럼에 안티코드를 형성하기 위하여 라인 조합들 및 컬럼 순열에 의존한다. 일단 코드 안티코드 생성기 매트릭스가 얻어지면, VLEC 코드는 매트릭스 곱셈에 의해 간단히 얻어진다.
그러나 이 기술은 몇가지 단점들을 가진다. 첫째, 안티코드를 얻기 위하여 필요한 라인 조합들 및 컬럼 순열을 발견하기 위한 방법이 명확하지 않다. 게다가, 구성은 소스 통계치들을 고려하지 않고, 결과적으로 종종 자체 차선을 나타낸다(VLEC 코드상에서 포스트 처리에 의해 보다 작은 길이를 가진 코드를 발견할 수 있다). 동일한 논문에서, 저자는 에러들에 대한 주어진 방지 및 특정 소스에 대한 보다 잘 알려진 압축 비율, 즉 지정된 전체 최소 블록, 발산 및 수렴 거리들(및 따라서 dfree에 대한 최소 값)과 선택된 자유 거리 및 지정된 소스에 대한 최소 평균 코드워드 길이를 얻기 위한 소스 통계치들에 매칭되는 코드워드 길이들을 가진 코드 C(실제로, 사람은 bmin = dmin+cmin=dfree 및 dmin =[dfree/2]를 얻는다)를 제공하는 VLEC 코드를 형성하기 위한 컴퓨터 검색을 바탕으로 하는 소위 허리스틱(Heuristic) 방법이라 하는 개선된 방법을 제안하였다.
다음 파라미터들 : 코드워드들의 최소 길이 L1, 코드워드들의 최대 길이 Lmax, 각각의 코드워드 사이의 자유 거리 dfree, 요구된 코드워드들의 수(S)을 사용하는 허리스틱 방법의 메인 단계들은 도 2 내지 도 4의 흐름도들을 참조하여 기술된다.
컴퓨터 검색("시작(start)")을 시작하기 위하여, 모든 필요한 파라미터들은 첫째로 지정된다 : L1(요구된 최소 발산 거리 이상이어야 하는 최소 코드워드 길이), Lmax(최대 코드워드 길이), 코드워드들(dfree, bmin, dmin, cmin) 및 S(주어진 소스에 의해 요구된 코드워드들의 수) 사이의 다른 길이, 및 일부 관계들은 이들 파라미터들이 다음과 같이 선택될때 설정된다 :
Ll ≥ dmin
bmin = dfree
dmin + cmin = dfree
11로 참조된 알고리듬의 제 1 단계는 수행된다 : 이것은 코드워드들의 최대수를 가진 길이 L1의 고정된 길이 코드(처음에 C에 배치함) 및 최소 거리 bmin의 생성으로 구성된다. 이 단계는 실제로 에를 들어 도 5에서 표시된 그리디(greedy) 알고리듬(GA) 같은 알고리듬, 또는 도 7에 도시된 대다수 투표 알고리듬(MVA), 또는 두개의 상기된 것들의 변형으로 구성된 GAS(단계적 그리디 알고리듬)에 의해 표시되는 새로 제안된 변형에 의해 수행되는 초기화이다. GAS는 GA에서 사용된 검색 방법으로 구성되고, 여기서 코드워드들의 반을 삭제하는 대신, 그룹의 최종 코드워드만이 삭제된다. 이들 두개의 알고리듬들은 d의 n 비트 길이 워드들의 세트 W를 형성하는데 유용하다(실제로, MVA는 GA보다 많은 워드들을 발견하지만, GA 및 MVA와 각각 비교하는 도 6 및 도 8에 도시된 바와 같은 압축 기능의 작은 개선만을 위하여 너무 많은 시간을 요구하고, 가장 양호한 코드 구조들은 도 9의 테이블에서 규정된 26 심볼 영어 소스에 대한 dfree의 다른 값들로 얻어진다).
도 2에서 21 내지 24(21+22 = 동작 "A0"; 23+24=동작 "A2")로 참조된 엘리먼트들에 대응하는 알고리듬의 제 2 단계는 모든 가능한 L1에서 소위 W 세트(C의 코드워드들로부터 dmin 거리에서 튜플들)에 리스팅 및 기억 단계(단계 21)로 구성된다. dmin≥bmin이면, W는 비어진다. 만약 현재 코드에 대한 최소 발산 거리를 만족하는 모든 워드들의 세트 W가 비어있지 않으면(검사 22에 대해 아니오로 대답 : |w| = 0 ?), W의 워드들의 수는 우선 "0"을 첨부하고 그 다음 비트들의 최대 수가 초과되는(검사 23에 대해 예로 대답) 것을 제외하고 W의 모든 워드들의 최우측 위치에 "1"을 부가함으로써(단계 24) 일비트씩 워드들의 길이를 증가함으로써 두배로 된다. 상기 단계(24)의 출력에서, 이 수정된 세트 W는 이전 W보다 2 배의 더 많은 워드들을 가지고, 각각의 길이는 L1+1이다.
엘리먼트들(31 내지 35)(=도 2에서 동작 "A3")에 대응하는 알고리듬의 제 3 단계는 C의 모든 코드워드들(즉, 상기 최소 수렴 거리를 만족하는 워드들만을 새로운 W에 유지 및 기억)을 가진 cmin 거리(최소 수렴 거리)를 만족하지 않는 세트 W의 모든 워드들을 삭제하는 단계(단계 31)로 구성된다. 이 시점에서, 새로운 세트 W는 C의 코드워드들과 비교할때, C의 코드워드들을 가진 요구된 최소 발산 및 수렴 거리들(dmin 및 cmin 거리들 모두)을 만족하는 한세트의 워드들이다. 만약 새로운 세트 W가 비어있지 않으면(검사 32에 대해 아니오로 대답 : |w|= 0?), 동일한 길이인 모든 세트 W의 워드들이 bmin과 적어도 동일한 최소 거리를 가지는 것을 보장하기 위하여 최소 블록 거리를 만족시키도록 최대 워드들의 수를 W에서 선택한다(단계 33). GA 또는 MVA(이 경우, GA 또는 MVA에 사용된 초기 세트는 현재 W 이고 n 튜플들 세트가 아님을 주목)로 실현된 이 단계 33의 종료점에서, 얻어진 워드들은 C의 코드워드들에 미리 부가된다(단계 34).
워드가 단계(21)의 종료점에서 발견되지 않거나(즉, W가 비어있으면)(검사 22에 대해 예로 대답 : |w|= 0?) 비트들의 최대 수가 도달되거나 초과되면(검사 23에 대해 예로 대답), 알고리듬은 새로운 그룹이 이전 그룹보다 많은 비트들을 포함하도록 보다 특히 W 여분 비트들(동시에 몇개의 비트들)에 모든 워드들을 첨부함으로써, 보다 많은 선택 자유도를 삽입함으로써 처리를 방해하지 않도록 하는데 사용되는 제 4 단계에 진입한다(도 3에 도시되고 상기 도면에서 동작 "A1"에 의해 지정된 단계들(41 내지 46)). 만약 최종 그룹에 충분한 코드워드들이 있다면(최종 그룹에 코드워드들의 수를 검증하기 위해, 이전 그룹들이 있다면 연속적인 검사들 41 및 42), 그들중 일부는 그룹(상기된 바와같은)에서 작제되고, 상기 삭제들은 거리 제한을 감소시키고 이전보다 많은 코드워드들을 발견하게 한다. 실제로, 기술된 표준 허리스틱 방법은 짧은 길이를 가진 최대 코드워들에서 시작하고, 높은 확률 심볼들과 맵핑하고 양호한 압축율을 얻기 위하여 노력하지만, 때때로 작은 길이 세트들의 크기는 코드워드들 S의 요구된 수와 호환할 수 없다. 이런 옵틱에서, 새로운 코드워드들을 풍부하게 하는 것은 보다 많은 자유도들을 제공하고 거리상 초기 요구들 및 코드의 심볼들 수가 부합될 수 있는 위치에 도달하도록 허용한다. 이런 삭제 처리는 각각의 길이에 대하여 하나의 코드워드의 최대치에 유지될때까지 반복된다. 만약 W가 단계 31의 종료점에서 비어있으면(검사 32에 대해 예로 대답 :lWl=0?), 단계들(23, 24, 31, 32)은 반복된다. 만약 요구된 수의 코드워드들이 도달되지 못하면(제 3 단계의 종료점에서 제공된 검사 35에 대해 아니오로 대답), 단계들(21 내지 25 및 31 내지 35)은 발견될 추가 가능한 워드들이 없거나 요구된 수의 코드워드들에 도달되는 것을 상기 단계들이 발견할때까지 반복되어야 한다).
만약 코드워드들의 상기 요구된 수가 도달되면(즉, C의 코드워드들의 수가 S(검사 35에 대해 예로 대답) 이상이면), 얻어진 VLEC 코드의 구조는 평균 길이 AL을 계산하기 위하여 단계들 51 내지 56(도 4에 도시되고, 상기 도면에서 동작 "A4"로 표시됨)을 포함하는 제 5 부분에서 사용된다. 이것은 소스의 확률을 가진 각각의 코드워드 길이를 가중하고, 그것을 현재 가장 양호한 것과 비교함으로서 행해진다. 만약 이런 VLEC 코드의 상기 평균 길이 AL가 AL(=ALmin)의 최소 값보다 낮으면, 이런 AL은 ALmin이 되고, 이런 새로운 AL 값 및 대응하는 코드 구조는 메모리에 유지된다(단계 51). 이들 단계들(51) 및 다음(제 5 부분 ; 동작 "A4") 단계는 다시 알고리듬내에서 이전 그룹들로 진행되고, 상기 알고리듬의 다른 단계들은 항상 현재 그룹에서 수행된다. 상기 피드백 동작에 대한 스텝 크기는 일이다. 즉, 이런 피드백 액션은 소모적인 것으로 고려될 수 있다.
가장 양호한 VLEC 코드의 검색을 계속하기 위하여, 알고리듬에서 루프를 유도하는 동일한 구조를 유지하는 것을 피하는 것이 필요하다. 현재 코드의 최종 부가된 그룹은 삭제되고(단계들 52, 53), 보다 긴 길이 코드워드들을 발견하도록 하는 보다 짧은 길이 코드워드들의 삭제(검사 54: 1보다 큰 그룹의 코드워드들의 수?), 및 이전 그룹의 일부 코드워드들(GVA에 대한 양의 반 ; MVA에 대하여 "가장 양호한" 것)은 단계(21)(도 2)의 시작부에서 알고리듬을 재루핑하고(단계 56) 다른 VLEC 구조들을 발견하기 위하여 삭제된다(단계 55)(삭제된 코드워드들의 수는 워드들을 선택하는데 사용된 방법에 따르고 : 만약 GA 방법이 사용되고 선형 코드를 얻기를 워하면, 코드워드들의 반을 삭제하는 것을 필요한 반면에, MVA 방법에서 단지 하나의 코드워드인 가장 양호한 것이 삭제된다. 즉, 다음 그룹에서 보다 많은 코드워드들을 발견하도록 하는 것이 삭제된다).
그러나, 기술된 허리스틱 방법은 그다지 가능하지 않은 코드 구조들을 고려하거나 큰 복잡도가 상기 방법의 실행에서 관찰되는 것을 주의(임의의 것을 놓치지 않도록 하기 위하여)하여 진행하고, 이것은 보다 시간 시간 소비적이고 따라서 금지될 수 있다. 그러므로, 출원번호 02292624.0(PHFR020110)인 2002년 10월 23일 출원된 유럽 특허 출원에서, 이들 단점들을 회피함으로써 복잡성에서 이득을 얻는 가변 길이 에러 코드를 형성하는 개선된 구성 방법이 제안되고, 상기 방법은 다음 단계들을 포함한다 :
(1) 필요한 파라미터들인 코드워드들의 최소 길이 및 최대 길이(L1 및 Lmax), 각 코드워드 사이의 자유 거리(dfree)(상기 거리 dfree는 VLEC 코드 C에 대하여 모든 임의의 확장된 코드들의 세트에서 최소 해밍 거리(Hamming distance)인), 요구된 수의 코드워드들(S)을 초기화하는 단계;
(2) 길이(L1) 및 최소 거리(bmin)의 고정된 길이 코드 C를 생성하는 단계로서, 여기서 bmin=min{bk; 1,2,....,R}이고, bk=코드 C의 코드워드 길이(Lk)에 연관되고 길이 Lk를 가진 C의 모든 코드워드들 사이의 최소 해밍 거리로서 규정된 거리이고, R=C의 다른 코드워드 길이들의 수이고, 상기 생성 단계(11)는 d의 n비트 길이 워드들 거리의 세트 W를 생성하는, 상기 생성 단계(단계 11);
(3) 세트 W에 모든 가능한 L1을 리스팅 및 기억 단계로서, 상기 L1은 C의 코드워드들로부터 dmin의 거리인 튜플들이고(VLEC 코드 C에 대한 상기 거리(dmin)는 C의 다른 길이 코드워드들의 모든 가능한 커플들 사이의 모든 발산 거리들의 최소 값이고), 만약 세트 W가 비어있지 않으면 모든 워드들의 말단에 하나의 여분 비트를 첨부하고, 상기 기억 단계는 이전 것보다 두배 이상의 워드들을 가진 새로운 상기 세트에 의해 세트 W를 대체하고 이들 워드들 각각의 워드의 길이는 L1+1인, 상기 기억 단계(단계 21);
(4) C의 모든 코드워드들과 cmin 거리를 만족시키지 못하는 상기 세트 W의 모든 워드들을 삭제하는 단계로서, 상기 거리 cmin는 상기 코드 C의 최소 수렴 거리인 상기 삭제 단계(단계 31);
(5) 워드가 발견되지 않거나 최대 수의 비트들이 도달된 경우, 보다 많은 워드들을 발견하기 위한 거리의 제한을 감소시키는 단계(단계 41);
(6) 상기 세트 W의 모든 워드들이 bmin의 거리를 가지도록 제어하는 단계로서, 상기 발견된 워드들은 그 후 코드 C에 부가되는, 상기 제어 단계(단계 34);
(7) 코드워드들의 요구된 수가 도달되지 않으면, 상기 방법이 계속할 다른 추가 확률을 발견하지 못하거나 요구된 수의 코드워드들을 발견할 때까지 단계들 (1) 내지 (6)(즉, 단계들 21 내지 35)을 반복하는 단계(단계 35); 및
(8) 만약 C의 코드워드들의 수가 S보다 크면, VLEC 코드 구조에 근거하여, 소스 확률로 각각의 코드워드 길이를 가중함으로써 얻어진 평균 길이(AL)를 계산하는 단계(동작 A4)로서, 상기 AL은 만약 ALmin보다 낮으면 ALmin이되고, 여기서ALmin=AL의 최소 값이며, 대응하는 코드 구조는 메모리에 유지되는, 상기 계산 단계들을 포함한다. 상기 형성 방법은 기껏 하나의 비트가 세트 W의 각각의 워드 종료부에 부가되도록 한다.
시뮬레이션들은 통상적인 허리스틱 방법을 사용하여, 얻어진 가장 양호한 코드들의 어느 것도 홀(즉, 구조 길이에서 길이 점프)를 가지지 않는 것을 도시한다. 따라서, 이전에 인용된 유럽 특허 출원에서, 가장 양호한 코드들이 길이의 점프를 갖지 않으므로, 시험된 VLEC 코드들의 세트는 이에 따라 감소될 수 있는 것을 나타낸다(AL을 많이 변형하지 않고 상기 방법의 시뮬레이션 시간 및 실행 복잡도를 줄인다). 이런 가정에 따라, 상기 방법은 상기 유럽 특허출원에 따라, 세트 W의 각각의 워드 종료부에 한비트 이상을 부가하는 것을 피함으로써 변형된다. 대응하는 실행(소위 "홀없는 최적화" 방법으로 불리우는 개선된 허리스틱 구성 방법)은 도 10 및 11에 도시되고, 이것은 상기 방법에 대응하는 두개의 흐름도 부분을 도시한다(도 2 내지 4에 관찰된 것과 동일한 엘리먼트들은 동일한 참조 부호로 지정된다). 도 2 내지 4의 흐름도를 참조하여, 통상적인 허리스틱 기술과 관련하여 개선된 방법의 실행을 위하여 소용없는 부분들은 삭제되었다).
(a) W가 단계(31)의 종료점에서 비어지면(검사 32에 대해 예로 대답 : |w|= 0?), 다음 단계는 단계들(23, 24, 31, 32)의 반복뿐 아니라, 상기 "홀 없는(no Hole)" 방법에 따라, 동작(55)(단계들 21 내지 24 및 31 내지 35의 반복전에 일부 코드워드들의 삭제, 또는 가장 양호한 것의 삭제)을 수행하는 회로의 입력쪽으로 직접적인 접속(91)의 (상기 반복을 대신하는) 형성이고, 상기 동작(55)은 이전과 같이, 동작들(21) 및 다음 동작이 뒤따른다.
(b) 상기 방법의 제 4 단계는 하나의 단계로 감소되고, 상기 동작(41)은 "최종 그룹에서 코드워드들의 수=1?" 검사이다. 만약 대답이 아니오이면, 직접적인 링크에는 상기 동작(55)을 수행하는 관점에서 단계(55)(접속 91)의 입력이 형성되고, 동작(21) 및 그 다음 동작이 뒤따른다. 만약 대답이 예이면, 접속(92)은 동작들(52 내지 54)의 세트의 입력이 형성된다.
따라서 얻어진 결과들은 코드워드들을 선택하기 위한 GAS 방법을 사용할때 25 심볼 영어 소스를 위하여 도 12의 테이블에 제공된다. 도 13에 제공된 결과들과 비교할때, 비록 그 결과가 dfree = 3에 대해 완전히 최적이 아니지만(코드 구조는 길이 L =11에서 홀을 가짐), AL 상승은 다른 dfree 값들에 대하여 감소가 없고 2,5 및 4 사이에 시간 이득 감소 모두가 엄밀히 없는 것을 고려할 때 실제로 허용할 수 있다. 동일한 리마크들은 도 7에서 얻어진 것과 현재 해결책을 비교할 때 적용될 수 있고, 여기서 MVA 복잡도 효과는 명확하다. 유사하게, 코드워드들을 선택하기 위한 GA 방법에 홀없는 최적화를 적용하는 것은 dfree=3에 대하여 약간의 AL 상승의 비용만으로 시간 이득을 유발한다. 마지막으로, 도 5는 다른 한편 현재 해결책이 허용 가능한 시간 이득에 대하여 양호한 AL을 제공하는 것을 나타내고, 홀없는 최적화는 GAS에 의해 유도된 복잡성을 거의 완전히 보상한다.
그러나, 상기 유럽 특허 출원에서 기술된 방법을 사용하면, 생성된 VLEC 코드의 너무 많은 작은 길이 코드 워드들이 있는 경우들이 있다. 그 다음, 출원 번호 03290604.2(PHFR030026)인 2003년 3월 11일 출원된 다른 유럽 특허 출원에서, 직접적으로 그리고, 매우 빠르게 작은 길이들로 되돌아 가도록 하기 위하여, 즉 너무 많은 작은 길이 코드워드들이 있는 경우들에서 많은 알고리듬 단계들을 스킵하도록 하기 위하여 그룹 삭제는 단지 최종 얻어진 코드워드 그룹에서 수행될뿐 아니라, 보다 일반적으로 주어진 길이 값 그룹까지 그룹들을 가지는 다른 개선된 수행 방법들이 개시된다. 보다 정확하게, 알고리듬이 코드워드 삭제 단계로 되돌아가는 길이를 Ls에 의해 표현하여(s : 스킵), 삭제될 코드워드들을 찾을때 보다 작은 길이들로 주의깊게 점핑함으로써 본래 허리스틱 알고리듬의 부분들을 스킵하는 것이 제안되었다(그러나, 고려된 코드워드들 그룹 길이 L이 미리 설정된 값 Ls보다 작을때, 이전 방법을 적용하는 것보다 명백히 양호하고, 따라서 삭제는 길이 L의 그룹내에서 행해진다). L1 및 Ls 사이에서 이루어진 길이는 결과적으로 "자유 길이들(free length)"이라 하고, 즉 검색 과정에서 하나씩 감소될때 자유도를 가진 길이들이라 한다(자유 길이들의 수가 증가할때, 시뮬레이션 시간은 지수적으로 증가된다). "Ls 최적화 부가(Ls optimization adding)"라 불리는 이런 방법은 도 10(이전 방법의 변하지 않은 부분, 소위 홀없는 최적화 방법) 및 도 14(홀없는 최적화 방법의 변형된 부분)의 연관에 의해 형성된 흐름도에서 도시된다.
상기 도 14는 다음 표시들에 따라 도 11에서 적응된다. 현재 코드의 최종 부가된 그룹은 삭제되지만, 이전 그룹의 코드워드 길이(검사 61)가 Ls 이하일때(검사 61에 대해 아니오 대답)만이다(검사 61 다음 단계들은 이전과 동일하다 : 검사 54의 출력에서 단계들 53, 54 및 55 또는 52). 만약 상기 코드워드 길이가 Ls보다 크면(검사 61에 대해 예 대답), 부가적인 단계(62)는 Ls 비트 길이 코드워드들을 가진 그룹으로 진행하고 Ls 이상의 비트들을 가진 모든 그룹들을 삭제하기 위하여 제공된다. 단계(62)의 출력에서, 이전과 같이 동일한 단계들(54, 55)은 제공된다. 실제로, 시뮬레이션 결과들은 양호한 압축율들이 Ls<L(max)에 대하여 얻어질 수 있다는 것을 나타내고, 여기서 L(max)는 최대 인증된 코드워드 길이이다(일정한 플로우 - 가장 양호한 값이 도달할때까지, Ls 값의 증가가 AL 값의 개선을 유발하고, 이런 작용은 Ls = L1에서 시작하여 Ls의 가능한 동적 선택을 제안하고 상기 플로우에 도달될때까지 증가하는 것을 주의하자). 그러나, 새로운 검색을 위해 Ls 파라미터를 업데이트할때, 이점들은 이전 연구들로부터 얻어지지 않는 것이 나타난다.
도 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 및 도 10 및 도 11에 도시된 개선에 따른 형성 방법을 사용하는 다른 테이블.
도 14는 도 2 내지 도 4에 도시된 종래 방법의 다른 개선에 따른 도 11의 흐름도의 부분의 변형을 도시한 도면.
도 15는 도 14의 이전 방법("Ls 최적화" 방법)이 수행될때 26 심볼 영어 소스에 대하여 얻어진 결과들을 도시하는 테이블.
도 16은 다른 소스에 대하여 얻어진 결과들을 간략하게 도시하는 테이블.
본 발명의 목적은 이런 단점이 회피되어지고 허용 가능한 계산 시간 동안 보다 양호한 압축 이득들을 발견하기 위하여 보다 빠르게 상위 Ls에 도달하는 것이 가능한 개선된 구성 방법을 제안하는 것이다.
이 목적을 위하여, 본 발명은 상기 설명의 도입부에서 규정되고, 게다가 삭제가 최종 얻어진 그룹에서 행해질뿐 아니라, 주어진 길이 값의 그룹에서도 행해지는 것을 특징으로 하는 방법에 관한 것이고, 상기 방법이 삭제 단계의 종료점에서 다시 스킵하는 코드의 길이를 Ls에 의해 나타내어, 각각의 Ls의 가장 양호한 VLEC 구조의 시작부는 메모리에서 유지되고 Ls'=Ls+1에 대한 다음 검색에서 재사용된다.
가능한 개선된 실행에 따라, 본 발명은 바람직하게 최대 하나의 비트가 세트 W의 각각의 워드 종료점에 부가되고, 삭제가 최종 얻어진 그룹에서뿐 아니라 주어진 길이 값의 그룹에서도 수행되는 것을 특징으로 하는 유사한 방법에 관한 것이지만(즉, 설명의 도입부에서 규정된 바와같이), 상기 방법이 삭제 단계의 종료점에서 다시 스킵하는 코드 길이를 Ls에 의해 표현하여, 각각의 Ls의 가장 양호한 VLEC 구조의 시작은 메모리에 유지되고 Ls' = Ls+1에 대한 다음 검색에서 재사용된다.
또한 본 발명의 목적은 상기 구성 방법을 수행하는 장치를 제안하는 것이다.
이런 목적을 위하여, 본 발명은 제안된 두개의 해결책들중 어느 하나에 따른 가변 길이 에러 코드 형성 방법을 수행하는 장치에 관한 것이다.
본 발명은 첨부 도면들을 참조하여 예시적으로 기술될 것이다.
상기된 "Ls 최적화" 방법을 기초로 이루어진 시뮬레이션들의 일부 결과들을 고려하여, 상기된 바와같이, 새로운 검색에 대한 Ls 파라미터를 업데이트할때, 이점은 결과적으로 이전 연구들로 부터 얻어지지 않는다는 것을 나타낸다. 그러므로, 허용 가능한 계산 시간에 대한 보다 양호한 압축 이득들을 발견하기 위하여 빠르게 상위 Ls 레벨들에 도달하기 위한 세미 반복 방법을 형성하기 위한 노력이 제안되었다.
보다 정확하게, 각각의 Ls의 가장 양호한 VLEC 구조의 시작부를 메모리에 유지하고, 다음 Ls'=Ls+1 값으로 검색내에서 상기 시작부를 재사용하는 것이 제안되었다. Ls가 상승할때, 유지된 시작부의 크기는 계산 시간에 지수적으로 영향을 미치는 자유 길이의 결과적인 증가를 방지하기 위하여 증가한다. 실제로, 시뮬레이션들은 Ls가 증가할때, 각각의 코드의 시작부가 점점 길이들에 대해 일정하게 유지되는 것을 나타내고, 이것은 미리 계산된 정보를 사용하는 증거를 제시한다 : 반면 이전 방법은 [L1, Ls]의 길이에 대한 모든 조합들을 검사하고, 감소된 간격[L(k+1), Ls]에서만 그것을 행하며, 여기서 Lk는 메모리에서 유지된 코드 시작부의 상위 길이를 나타낸다.
자유 길이들의 수는 N(f1) = Ls-Lk이다. 상기 방법에 보다 융통성을 제공하기 위하여, 3개의 레벨들의 자유도가 규정된다 :
a) 코드워드들의 수가 고정되고 Ls의 모든 다음 값들에 사용되는 길이들에 대응하는 고정된 길이;
b) 약간의 자유도(±1)이 허용되는 경우 길이들의 세트인 변화 길이;
c) 모든 가능한 수의 코드워드들이 검사되는 경우 길이들의 세트에 대응하는 자유 길이.
Ls 최적화에서 처럼, 길이 분배의 나머지, 또는 꼬리 길이는 Ls 제한 이상의 길이들에 대응한다.
가변 길이 부분의 도입은 결과들을 개선하기 위하여, 상위 고정된 길이 Lk에서 발견된 코드워드들의 수에서 ±1의 변화를 가진 약간의 자유도를 형성할 필요가 있는 시뮬레이션동안 나타날때 직접적인 관찰에서 발생한다. 상위 변수 레벨들은 노력되고, 동일한 결과들은 심지어 코드워드 소스들의 다른 높은 수들에서 조차 얻어진다. 이것은 성능을 개선하는 것을 가능하게 하지만, 보다 많은 계산 시간을 요구한다. 일부 방법들은 이런 목적에 도달하기 위하여 사용될 수 있다. 제 1 방법은 자유 길이 세트의 크기를 증가시키는 것이다. 이런 목적에 도달하는 다른 방법은 ±1의 불확실을 가진 가변 길이 세트에서 하나뿐 아니라 두개의 길이들 Lk 및 L(k-1)을 넣음으로서 가변 길이 세트에서 길이들의 수를 증가시키는 것이다(이들 길이들에서 코드워드들의 수의 일부 변형들이 있을때, 이 방법은 보다 빠르면서 이전 방법과 동일한 결과들을 제공하여야 한다).
본 방법, 소위 베스트알루(BestAllure) 최적화는 각각의 Ls 사이의 시간 인자를 감소시키기 때문에(대략 30 내지 2) 시간에서 상당한 이득을 허용한다. 이것은 본래 Ls 최적화를 사용할때 자유 길이의 고정된 크기로 인한 것이다. 실제로, 소모적인 방법들이 불가능하고 버티기그(Buttigieg)에 의해 제안된 것과 같은 종래 방법이 다루기 어려운 경우 심볼들의 소스의 수를 높이는 것은 특히 바람직하다.

Claims (3)

  1. 가변 길이 에러 코드를 형성하는 방법에 있어서,
    (1) 필요한 파라미터들인 코드워드들의 최소 길이 및 최대 길이(L1 및 Lmax), 각 코드워드 사이의 자유 거리(dfree)(상기 거리 dfree는 VLEC 코드 C에 대하여 모든 임의의 확장된 코드들의 세트에서 최소 해밍 거리(Hamming distance)인), 요구된 수의 코드워드들(S)을 초기화하는 단계;
    (2) 길이(L1) 및 최소 거리(bmin)의 고정된 길이 코드(C)를 생성하는 단계로서, 여기서 bmin=min{bk;k=1,2,....,R}이고, bk = 코드 C의 코드워드 길이(Lk)에 연관되고 길이 Lk를 가진 모든 C의 코드워드들 사이의 최소 해밍 거리로서 규정된 거리이고, R=C의 다른 코드워드 길이들의 수이고, 상기 생성 단계는 d의 n 비트 길이 워드들의 거리의 세트 W를 생성하는, 상기 생성 단계;
    (3) 세트 W에 모든 가능한 L1을 기억하는 단계로서, 상기 L1은 C의 코드워드들로부터 dmin 의 거리인 튜플(tuple)들이고(VLEC 코드 C에 대한 상기 거리(dmin)는 C의 다른 길이 코드워드들의 모든 가능한 커플들 사이의 모든 발산 거리들의 최소 값이고), 만약 상기 세트 W가 비어있지 않으면 모든 워드들의 말단에 하나의 여분 비트를 첨부하고, 상기 기억 단계는 이전 것보다 두배 이상의 워드들을 가진 새로운 세트에 의해 상기 세트 W를 대체하고 이들 워드들 각각의 워드의 길이는 L1+1인, 상기 기억 단계;
    (4) C의 모든 코드워드들과 cmin 거리를 만족시키지 못하는 상기 세트 W의 모든 워드들을 삭제하는 단계로서, 상기 거리 cmin는 상기 코드 C의 최소 수렴 거리인, 상기 삭제 단계;
    (5) 워드가 발견되지 않거나 비트들의 최대 수가 도달된 경우, 보다 많은 워드들을 발견하기 위한 거리의 제한을 감소시키는 단계;
    (6) 상기 세트 W의 모든 워드들이 bmin의 거리를 가지도록 제어하는 단계로서, 상기 발견된 워드들은 그 후 코드 C에 부가되는, 상기 제어 단계;
    (7) 코드워드들의 요구된 수가 도달되지 않으면, 상기 방법이 계속할 다른 추가 확률을 발견하지 못하거나 요구된 수의 코드워드들을 발견할 때까지 단계들 (1) 내지 (6)을 반복하는 단계; 및
    (8) 만약 C의 코드워드들의 수가 S 보다 크면, VLEC 코드의 구조에 근거하여, 소스의 확률로 각각의 코드워드 길이를 가중(weighting)함으로써 얻어진 평균 길이(AL)를 계산하는 단계로서, 상기 AL은 만약 ALmin보다 낮으면 ALmin이되고, 여기서 ALmin=AL의 최소 값이며, 대응하는 코드 구조는 메모리에 유지되는, 상기 계산 단계를 포함하고,
    상기 형성 방법은 삭제가 최종 얻어진 그룹에서뿐 아니라 주어진 길이 값의 그룹에서 행해지고, 상기 방법이 상기 삭제 단계의 종료점에서 다시 스킵하는 코드 의 길이를 Ls에 의해 나타내고, Ls 각각의 최적인 VLEC 구조의 시작은 메모리에 유지되고 Ls'=Ls+1에 대한 다음 검색내에서 다시 사용되는 것을 특징으로 하는, 가변 길이 에러 코드 형성 방법.
  2. 가변 길이 에러 코드를 형성하는 방법에 있어서,
    (1) 필요한 파라미터들인 코드워드들의 최소 길이 및 최대 길이(L1 및 Lmax), 각 코드워드 사이의 자유 거리(dfree)(상기 거리 dfree는 VLEC 코드 C에 대하여 모든 임의의 확장된 코드들의 세트에서 최소 해밍 거리(Hamming distance)인), 요구된 수의 코드워드들(S)을 초기화하는 단계;
    (2) 길이(L1) 및 최소 거리(bmin)의 고정된 길이 코드(C)를 생성하는 단계로서, 여기서 bmin=min{bk;k=1,2,....,R}이고, bk = 코드 C의 코드워드 길이(Lk)에 연관되고 길이 Lk를 가진 모든 C의 코드워드들 사이의 최소 해밍 거리로서 규정된 거리이고, R=C의 다른 코드워드 길이들의 수이고, 상기 생성 단계는 d의 n 비트 길이 워드들의 거리의 세트 W를 생성하는, 상기 생성 단계;
    (3) 세트 W에 모든 가능한 L1을 기억하는 단계 - 상기 L1은 C의 코드워드들로부터 dmin 의 거리인 튜플들이고(VLEC 코드 C에 대한 상기 거리(dmin)는 C의 다른 길이 코드워드들의 모든 가능한 커플들 사이의 모든 발산 거리들의 최소 값이고), 만약 상기 세트 W가 비어있지 않으면 모든 워드들의 말단에 하나의 여분 비트를 첨부하고, 상기 기억 단계는 이전 것보다 두배 이상의 워드들을 가진 새로운 세트에 의해 상기 세트 W를 대체하고 이들 워드들 각각의 워드의 길이는 L1+1인, 상기 기억 단계;
    (4) C의 모든 코드워드들과 cmin 거리를 만족시키지 못하는 상기 세트 W의 모든 워드들을 삭제하는 단계로서, 상기 거리 cmin는 상기 코드 C의 최소 수렴 거리인, 상기 삭제 단계;
    (5) 워드가 발견되지 않거나 비트들의 최대 수가 도달된 경우, 보다 많은 워드들을 발견하기 위한 거리의 제한을 감소시키는 단계;
    (6) 상기 세트 W의 모든 워드들이 bmin의 거리를 가지도록 제어하는 단계로서, 상기 발견된 워드들은 그 후 코드 C에 부가되는, 상기 제어 단계;
    (7) 코드워드들의 요구된 수가 도달되지 않으면, 상기 방법이 계속할 다른 추가 확률을 발견하지 못하거나 요구된 수의 코드워드들을 발견할 때까지 단계들 (1) 내지 (6)을 반복하는 단계; 및
    (8) 만약 C의 코드워드들의 수가 S 보다 크면, VLEC 코드의 구조에 근거하여, 소스의 확률로 각각의 코드워드 길이를 가중함으로써 얻어진 평균 길이(AL)를 계산하는 단계로서, 상기 AL은 만약 ALmin보다 낮으면 ALmin이되고, 여기서 ALmin=AL의 최소 값이며, 대응하는 코드 구조는 메모리에 유지되는, 상기 계산 단계를 포함하고,
    상기 형성 방법은 최대 일 비트가 상기 세트 W의 워드 각각의 말단에 부가되고, 상기 삭제가 최종 얻어진 그룹에서뿐 아니라 주어진 길이 값의 그룹에서 행해지고, 상기 방법이 상기 삭제 단계의 종료점에서 다시 스킵하는 코드의 길이를 Ls에 의해 나타내고, Ls 각각의 최적인 VLEC 구조의 시작은 메모리에 유지되고 Ls'=Ls+1에 대한 다음 검색내에서 다시 사용되는 것을 특징으로 하는, 가변 길이 에러 코드 형성 방법.
  3. 제 1 항 또는 제 2 항에 따른 가변 길이 에러 코드 형성 방법을 수행하는 장치.
KR1020057018381A 2003-03-28 2004-03-24 가변 길이 에러 정정 코드를 형성하는 방법 및 장치 KR20050113266A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03290801 2003-03-28
EP03290801.4 2003-03-28

Publications (1)

Publication Number Publication Date
KR20050113266A true KR20050113266A (ko) 2005-12-01

Family

ID=33041107

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057018381A KR20050113266A (ko) 2003-03-28 2004-03-24 가변 길이 에러 정정 코드를 형성하는 방법 및 장치

Country Status (6)

Country Link
US (1) US20060200706A1 (ko)
EP (1) EP1611687A1 (ko)
JP (1) JP2006523399A (ko)
KR (1) KR20050113266A (ko)
CN (1) CN1768481A (ko)
WO (1) WO2004086632A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1609246A1 (en) * 2003-03-20 2005-12-28 Koninklijke Philips Electronics N.V. Method and device for building a variable-length error-correcting code
US8862967B2 (en) * 2012-03-15 2014-10-14 Sandisk Technologies Inc. Statistical distribution based variable-bit error correction coding
US10097206B2 (en) 2015-10-01 2018-10-09 Electronics And Telecommunications Research Institute Method and apparatus for performing encoding using block code having input/output of variable length
TWI777659B (zh) * 2021-07-08 2022-09-11 國立中山大學 不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體

Also Published As

Publication number Publication date
WO2004086632A1 (en) 2004-10-07
US20060200706A1 (en) 2006-09-07
EP1611687A1 (en) 2006-01-04
CN1768481A (zh) 2006-05-03
JP2006523399A (ja) 2006-10-12

Similar Documents

Publication Publication Date Title
US7460619B2 (en) Method and system for optimizing coding gain
Gazelle et al. Reliability-based code-search algorithms for maximum-likelihood decoding of block codes
KR20010005541A (ko) 다중 레이트 신호를 위한 crc 외부 코드로 리스트 출력 비터비 복호화 시스템
US20070162821A1 (en) Parity check matrix, method of generating parity check matrix, encoding method and error correction apparatus
US8347172B2 (en) Method for decoding using dynamic scheduling scheme for low density parity check codes and apparatus thereof
US11177834B2 (en) Communication method and apparatus using polar codes
CN109768846B (zh) 基于二核三核混合极化码的凿孔方法、系统、装置及介质
US6580762B1 (en) Rate matching method
CN109787641B (zh) staircase码的解码方法、装置及存储介质
KR20050113266A (ko) 가변 길이 에러 정정 코드를 형성하는 방법 및 장치
US6798362B2 (en) Polynomial-time, sequential, adaptive system and method for lossy data compression
JP2715398B2 (ja) 誤り訂正符復号化装置
US7266755B2 (en) Method and device for building a variable length error-correcting code
US7222283B2 (en) Method and device for building a variable-length error code
JP2009182421A (ja) 復号化方法及び復号化装置
Lamy et al. Optimised constructions for variable-length error correcting codes
US7178094B2 (en) Method and device for building a variable-length error code
JP2000224050A (ja) ビタビ復号器
Qi et al. An improved successive cancellation decoder for polar codes
CN115642924B (zh) 一种高效的qr-tpc译码方法及译码器
McGuire et al. Decoding of Polar Codes with Finite Memory
KR100893053B1 (ko) 길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법
CN118041484A (zh) 一种基于信道截止速率曲线的pac码构造方法及装置

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