KR20050107627A - 가변 길이 에러 정정 코드 구축 방법 및 디바이스 - Google Patents

가변 길이 에러 정정 코드 구축 방법 및 디바이스 Download PDF

Info

Publication number
KR20050107627A
KR20050107627A KR1020057017630A KR20057017630A KR20050107627A KR 20050107627 A KR20050107627 A KR 20050107627A KR 1020057017630 A KR1020057017630 A KR 1020057017630A KR 20057017630 A KR20057017630 A KR 20057017630A KR 20050107627 A KR20050107627 A KR 20050107627A
Authority
KR
South Korea
Prior art keywords
length
codewords
distance
code
words
Prior art date
Application number
KR1020057017630A
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 KR20050107627A publication Critical patent/KR20050107627A/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
    • 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)

Abstract

본 발명은 가변 길이 에러 정정(VLEC) 코드 구축 방법에 관한 것으로, 주요 단계들은, 모든 필요한 파라미터들을 정의하고, 고정된 길이 L1을 갖는 코드를 생성하고, 코드워드들로부터 최소 발산거리 d 'min!으로 이격된 모든 가능한 L1 투플들의 집합들을 상기 얻어진 집합 W에 저장하고(상기 얻어진 새로운 집합 W가 비어있지 않다면 모든 워드들의 끝에 하나의 추가 비트가 첨부됨), 모든 코드워드들에 대해 거리 기준들을 만족시키지 못하는 W의 모든 워드들을 삭제하고, 최종의 집합 W의 모든 워드들이 또 다른 거리 기준을 만족하는지를 검증하는 것이다. 최상 VLEC 코드들에 대한 코드워드들의 수의 모든 분포들이 벨 형상 타입의 유사한 커브 값을 갖는다고 가정하여, 본 발명에 따라, 코드워드들의 수가 그 길이와 함께 증가할 때까지를 최적화 길이 값 Lm이라 정의하는 것을 제안하며, 상기 값 Lm 후에 길이는 감소한다. Lm 최적화라 불리는 본 새로운 구축 방법에 따라, 상기 커브의 에지들을 회피하여 소위 "Ls 최적화" 방법을 적용하고, 국부적으로 작업하는 것이 가능하고, 여기서 Ls 는 코드워드 삭제 스테이지에서 알고리즘이 되돌아 스킵하는 길이를 나타낸다.

Description

가변 길이 에러 정정 코드 구축 방법 및 디바이스{Method and device for building a variable-length error-correcting code}
본 발명은 가변 길이 에러 코드 구축 방법에 관한 것으로, 이 방법은,
(1) 필요한 파라미터들, 즉 코드워드들의 각각의 최소 및 최대 길이 L1, Lmax, 각 코드워드간 자유거리 dfree(상기 거리 dfree는 VLEC 코드 C에 대해서 모든 임의의(arbitrary) 확장된 코드들의 집합에서 최소 해밍 거리(minimum 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) C의 상기 코드워드들로부터 dmin의 거리에 있는 모든 가능한 L1-투플(tuple)들을 상기 집합 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보다 작다면 ALmin이 되고, ALmin = AL의 최소값이며, 대응하는 코드 구조는 메모리에 유지되는, 상기 산출단계를 포함한다.
본 발명은 또한 대응하는 디바이스에 관한 것이다.
도 1에 도시된 통상의 통신 체인은 소스 S로부터 오는 신호들을 코드화하기 위해서, 소스 코드화기(1)(SCOD) 및 이에 이은 채널 코드화기(2)(CCOD)와, 채널(3)을 통해 이와 같이 얻어진 코드화된 신호들의 전송 후에, 채널 복호기(4)(CDEC) 및 소스 복호기(5)(SDEC)를 포함한다. 복호된 신호들은 수신기에 보내기 위한 것이다. 가변 길이 코드들(VLC)은 이들의 압축 능력들로 인해 소스 코드화에서 통상적으로 사용되며, 연관된 채널 코드화 기술들은 실 전송 채널의 영향들(이를테면 페이딩, 잡음 등)을 없애기 위한 것이다. 그러나, 소스 코드화는 용장성(redundancy)을 제거하기 위한 것이고 채널 코드화는 용장성을 다시 도입하기 위한 것이므로, 복잡성을 허용 가능한 레벨로 유지하면서 전체 시스템을 향상시키기 위해 이들 기술들을 효율적으로 조정하는 방법이 연구되었다.
이러한 접근에서 제안된 해결책들 중에서, 가변 길이 에러 정정(VLEC) 코드들은 에러 정정 능력들을 제공하면서도 가변 길이의 잇점을 제공하지만, 이들 코드들을 구축하는 것은 짧은 알파벳들에 대해 다소 시간 소비적이며(더 긴 알파벳 소스의 경우엔 불가능할 수도 있음), 구조 복잡성은 후술하는 바와 같이 결점이 된다.
먼저, 통상의 VLC의 일부 정의들 및 특성들에 대해 살펴볼 필요가 있다. 코드 C는 S 코드워드들의 집합{cl, c2, c3,..., ci,... cS}이며, 코드워드들 각각마다 길이 li = |ci|가 정해지는데, 일반성을 잃지 않고, l1≤l2 ≤l3 ≤....≤li≤....≤lS이다. 코드 C에서 서로 다른 코드워드 길이들의 수를 R이라 하고, 자명하게 R≤S이며, 이들 길이들은 L1, L2, L3,......, Li, LR로 표기하고, L1 < L2 < L3<.......<LR이다. 가변 길이 코드, 또한 VLC는 로 표기되는 구조이며, 이는 길이 L1의 sl 코드워드들, 길이 L2의 s2 코드워드들, 길이 L3의 s3 코드워드들, 및 길이 LR의 sR 코드워드들에 대응한다. VLC를 사용할 때, 주어진 소스에 대해, 압축효율은 상기 소스로부터 심볼들을 전송하는데 필요한 비트 수에 관계된다. 이러한 효율을 추정하는데 사용되는 측정은 코드의 평균길이 AL, 즉 한 워드를 전송하는데 필요한 평균 비트수이며, 각 심볼 ai이 코드워드 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는 비-특이(non-singular)(모든 코드워드들은 서로 구별되는 것, 즉 하나의 소스 심볼만이 하나의 코드워드에 할당되는 것)이어야 하고, 고유하게 복호가능하여야 한다는 것이다(즉, 코드워드들 중 어느 스트링을 어떠한 에러도 없이 올바른 소스 심볼들로 다시 명백하게 매핑하는 것이 가능하다).
VLC 코드들의 일부 일반적인 특징들을 검토할 때 유용한 서로 다른 거리들의 제시 및 설명은 VLEC 코드 이론에서 사용되는 에러 정정 특징을 이해하는데 도움이 될 것이다.
(a) 해밍 웨이트 및 거리: w가 w = (wl, w2,..., wn)인 길이 n을 가진 워드라면, w의 해밍 웨이트, 또한 간단히 웨이트는 w 내 제로가 아닌 심볼들의 수 W(w)이다.
그리고, w1 및 w2가 wi = (wi1, wi2, wi3,...., win) 및 i = 1 또는 2이고 동일 길이 n을 가진 2개의 워드들이라면, w1과 w2 간의 해밍 거리(또한 간단히 거리)는 w1과 w2가 서로 다른 위치들의 수이다(예를 들면, 2진수의 경우에, 다음과 같음을 쉽게 알 수 있다:
여기서, 가산은 modulo-2이다). 그러나, 해밍 거리는 정의에 의해서 고정길이 코드들로 제약되고, 그 외 정의들은 VLEC 코드들을 고려하기 전에 정의될 것이다.
(b) fi = wi 1 wi 2.... wi n을 VLEC 코드 C의 n 워드들의 연쇄(concatenation)라 하고, 집합 FN = {fi:|fi| = N}은 차수 N의 C의 확장된 코드라 한다.
(c) 최소 블록 거리 및 전체 최소 블록 거리: VLEC 코드 C의 코드워드 길이 Lk에 연관된 최소 블록 거리 bk는 동일 길이 Lk를 가진 C의 모든 서로 구별되는 코드워드들간의 최소 해밍 거리이다.
모든 가능한 길이 Lk에 대한 최소 블록 거리값인, 상기 VLEC 코드 C의 전체 최소 블록 거리 bmin은 다음식에 의해 정의된다.
(d) 발산거리 및 최소 발산거리: VLEC 코드 C의 상이한 길이의 2 개의 코드워드들인 ci=xi1 xi2 ....xili 와 cj =xj1 xj2.... xjli간의 발산거리, ci, cj ∈ C, li = |cj| 및 lj=|cj|, li > lj이고, 다음 식으로 정의된다.
즉, 이것이 또한 lj-길이 코드워드와 더 긴 코드워드의 lj-길이 프리픽스(prefix) 간 해밍 거리이며, 상기 VLEC 코드 C의 최소 발산 거리 dmin는 같지 않은 길이의 C의 코드워드들의 모든 가능한 커플들 간의 모든 발산거리들 중 최소값이다.
(e) 수렴거리 및 최소 수렴거리: VLEC 코드 C의 서로 다른 길이의 2 개의 코드워드들 ci = xi1 xi2 ....xili 와 cj = xj1 xj2 .... xjli 간의 수렴거리, |ci| = li > |cj|= lj이고, 다음식에 의해 정의된다.
즉, 이것은 lj-길이 코드워드와 더 긴 코드워드의 lj-길이 서픽스(suffix) 간 해밍 거리이며, 상기 VLEC 코드 C의 최소 수렴거리는 같지 않은 길이의 C의 모든 가능한 커플들 간의 모든 수렴거리들 중 최소값이다.
(f) 자유거리: 코드의 자유거리 dfree는 일부 공통 상태 Si로부터 발산하고 또 다른 공통 상태 Sj에서, j>i, 다시 수렴하는 모든 임의의 긴 경로들의 집합에서 최소 해밍 거리이다.
VLC에 대해 사용되는 구조 모델에 따라, 표기에 의해 VLEC 코드 C의 구조를 기술하는 것이 가능하다.
여기서 모든 i = 1, 2,... R(R은 서로 다른 코드워드 길이들의 수임)에 대해서, 최소 블록 거리 bi를 가진 길이 Li의 si 코드워드들과 최소 발산 및 수렴 거리들 dmin, cmin이 있다. VLEC 코드의 가장 중요한 파라미터는 VLEC 코드의 자유거리 dfree이며, 이는 에러 정정 능력들면에서 그의 성능에 크게 영향을 미치며, VLEC코드의 자유거리는 다음 식에 의해 범위가 정해짐을 보일 수 있다.
이들 정의들을 상기하고, 현 기술의 VLEC 코드들 구조를 보다 쉽게 기술한다. 1974년에 나온 α-프롬프트 코드라 하는 제1 유형의 VLES 코드들, 및 이 패밀리의 확장으로서 αtl , t2 ,...., tR-프롬프트 코드들은 모두가 동일한 근본 특징을 갖고 있는데, j ≠i이고 어떤 코드워드 cj보다 ci에 더 가까운 워드들의 집합을 α(ci)로 표기한다면, α(ci) 내 어떠한 시퀀스도 또 다른 α(ci) 내 시퀀스의 프리픽스가 아니다. 이들 코드들의 구조는 단순하고, 구조 알고리즘은 각 길이의 코드워드들의 수에 의해 조정가능하며, 이는 주어진 소스 및 주어진 dfree에 대해 최상의 프롬프트 코드를 발견하는 것을 가능하게 하여준다. 그러나, 이 최상의 코드는 압축 수행 면에서는 빈약하게 수행한다.
고정길이 선형 블록 코드의 생성기 매트릭스로부터 VLEC 코드를 구성할 수 있게 하는 보다 최신의 구조가 "Variable-length error-correcting codes" by V. Buttigieg, Ph. D. Thesis, University of Manchester, England, 1995의 문헌에서 제안되었다. 코드-반코드(anticode) 구조라 하는, 이 알고리즘은 최우측 열(column)에 반코드를 형성하기 위해 선(line) 조합들 및 열 순열들에 의존한다. 코드-반코드 발생기 행렬이 얻어지면, VLEC 코드는 간단히 행렬 곱셈에 의해 얻어진다.
그러나, 이 기술은 몇가지 결점이 있다. 먼저, 반코드를 얻기 위해 필요한 선 조합 및 열 순열을 찾을 분명한 방법이 없다. 또한, 구조는 소스 통계를 고려하지 않으며 결국, 스스로 최선 아래임을 드러낸다(VLEC 코드에 관한 후 처리에 의해 작은 평균 길이를 가진 코드를 찾을 수 있다). 이 문헌에서, 저자는 휴리스틱 방법(Heuristic method)이라 하는 개선된 방법으로서, 명시된 소스에 대해 더 나은 공지의 압축 레이트와 에러에 대한 주어진 보호를 제공하는 VLEC 코드, 즉 명시된 전체에 걸친 최소 블록과, 발산 및 수렴 거리들(따라서 dfree에 대한 최소값)과 선택된 자유거리 및 명시된 소스에 대한 최소 평균 코드워드를 얻기 위해 소스 통계에 부합하는 코드워드 길이들을 가진(실제로, bmin = dmin + cmin = dfree, 및 : dmin = [dmin/2]를 취한다) 코드 C를 구축하기 위한 컴퓨터 탐색에 기초한, 방법을 제안하였다.
이러한 휴리스틱 방법의 주요 단계들은, 다음의 파라미터들을 사용하고, 파라미터들은 코드워드들의 최소 길이 L1, 코드워드들의 최대 길이 Lmax, 각 코드워드간 자유거리 dfree, 요구된 코드워드들의 수 S이며, 도 2 내지 도 4를 참조하여 이하 기술한다.
컴퓨터 탐색을 시작하기 위해서("시작(Start)"), 우선 모든 필요한 파라미터들이 지정되야 하고, L1(요구된 최소 수렴 거리와 최소한 같거나 이보다 커야 하는 최소 코드워드 길이), Lmax(최대 코드워드 길이), 코드워드들간 서로 다른 거리들(dfree, bmin, dmin, cmin), 및 S(주어진 소스에 의해 요구되는 코드워드들의 수)이며, 어떤 관계들이 이들 파라미터들을 선택할 때 설정된다.
L1 ≥ dmin
bmin = dfree
dmin + cmin = dfree
참조코드 11의 알고리즘의 제1 페이즈가 수행되고, 이것은 최대 수의 코드워드들로, 길이 L1의 고정길이 코드(초기엔 C에 넣어둠) 및 최소 길이 bmin의 생성으로 구성된다. 실제, 이 페이즈는 예를 들면 도 5에 나타낸, 그리디(greedy) 알고리즘(GA), 또한 도 7에 나타낸 다수표결 알고리즘(MVA), 또한 위에 언급한 2 개의 알고리즘들을 수정한 것으로 구성된 GAS(단계별 그리디 알고리즘)으로 나타낸 새로이 제안된 수정된 알고리즘과 같은 알고리즘에 의해 수행되는 초기화이다. 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 ?에서 아니오 응답), W 내 워드들의 수는, 최대 비트 수를 초과하는 경우를 제외하고는(테스트 23에서 예의 응답), 먼저 "0"을 첨부한 후 W 내 모든 워드들의 최우측 위치에 "1"을 첨부함으로써 1비트씩 워드들의 길이를 증가시킴으로(단계 24) 2배로 한다. 상기 단계 24의 출력에서, 이 수정된 집합 W는 이전 W보다 2배 이상의 워드들을 가지며, 각 워드의 길이는 L1+1이다.
요소들(31 내지 35)(= 도 2에서 동작 "A3")에 대응하는, 알고리즘의 제3 페이즈는 C의 모든 코드워드들로 cmin 거리(최소 수렴 거리)를 만족하지 못하는 집합 W의 모든 워드들을 삭제하는 단계로 구성된다(단계 31)(즉, 상기 최소 수렴거리를 만족시키는 워드들만을 새로운 W에 유지하여 저장하는-다른 것들은 폐기함-단계로 구성됨). 이 때, 새로운 집합 W는 C의 코드워드들에 비교하였을 때, C의 코드워드들에서, 요구되는 최소 발산 및 수렴 거리들(dmin 및 cmin 거리 둘 다)을 만족시키는 워드들의 집합이다. 이 새로운 집합 W가 비어있지 않다면(테스트 32:|W| = 0?에서 아니오 응답), 같은 길이를 갖는 집합 W의 모든 워드들이 적어도 bmin과 같은 최적한 최소 거리를 갖게 하도록, 최소 블록 거리를 만족시키는 워드들의 최대 수를 W에서 선택한다(단계 33). GA 또한 MVA로 실현되는, 이 단계 33의 끝에서(이 경우, GA 또한 MVA에 대해 사용되는 초기 집합은 현재의 W이고 n-트풀들 집합이 아님에 유의함), 이와 같이 하여 얻어진 워드들이 C에 이미 코드워드들에 부가된다(단계 34).
단계 21 끝에서 어떠한 워드도 발견되지 않으면(즉, W는 비어있음)(테스트 22: lwl = 0?에서 응답이 예), 또한 최대 수의 비트에 도달하거나 이를 초과한다면(테스트 23에서 응답 예), 알고리즘의 제4 페이즈에 진입하고(도 3에 도시되고 상기 도면에서 동작 "A1"으로 나타낸, 단계 41 내지 46), 이는 새로운 그룹이 이전 것보다 많은 비트를 포함하게 더 선택의 자유를 줌으로써, 특히 W 내 모든 워드들에 추가 비트들(동시에 몇 개의 비트들)을 첨부함으로써, 프로세스가 잼(jam) 되지 않게 하기 위해서 사용된다. 마지막 그룹에 충분한 코드워드들이 있다면(마지막 그룹에서 코드워드들의 수를 검증하기 위한 연속한 테스트들 41 및 42, 및 이전 그룹들이 있다면), 이들 중 일부는 상기 그룹에서 삭제되고(앞에 기술한 바와 같이), 이러한 삭제에 의해 거리 제약이 감소되고 이전보다 더 많은 코드워드들을 찾을 수 있게 된다. 사실, 이와 같이 기술된 종래의 휴리스틱 방법은 짧은 길이의 최대 코드워드들부터 시작하며, 이들을 높은 확률의 심볼들로 매핑하고 양호한 압축 레이트를 얻기를 시도하나, 때때로 작은 길이들의 크기는 코드워드들 S의 요구되는 수와 양립하지 않는다. 이러한 상황에서, 소수의 코드워드들을 소거하는 것은 보다 많은 자유도를 제공하며 거리 및 코드에 대한 심볼 수에 대한 초기 요건들이 충족될 수 있게 하는 위치에 도달할 수 있게 한다. 이 삭제 프로세스는 각 길이마다 최대 하나의 코드워드가 남게 될 때까지 반복된다. W가 단계 31의 끝에서 비어있다면(테스트 32: lwl=0 ?에서 예 응답), 단계들 23, 24, 31, 32가 반복된다. 요구된 수의 코드워드들에 도달되지 않는다면(이 제3 페이즈 끝에서 제공되는 테스트 35에서 응답 아니오), 단계 21 내지 24 및 31 내지 35에서, 발견할 더 이상의 가능한 워드들이 없거나 요구된 수의 코드워드들에 도달된 것을 발견할 때까지, 이들 단계들이 반복된다.
상기 요구된 수의 코드워드들에 도달하였다면(즉, C의 코드워드들의 수가 S 이상이면)(테스트 35에서 응답 예), 평균길이 AL을 산출하기 위해서, 이와 같이 하여 얻어진 VLEC 코드의 구조가, 단계들 51 내지 56(도 4에 도시되고 상기 도면에서 "A4" 동작으로 나타낸)을 포함한, 제5 부분에서 사용된다. 이것은 소스의 확률로 각각의 코드워드 길이에 가중치를 부여하고, 이를 현재 최상의 것하고 비교함으로써 행해진다. 이 VLEC 코드의 상기 평균길이 AL이 AL의 최소화한 값 ALmin보다 작다면, 이 AL은 ALmin이 되고, 이 새로운 AL 값 및 대응하는 코드 구조는 메모리에 유지된다(단계 51). 이들 단계들 41 및 이에 이은 단계(제5 부분: "A4" 동작)은 알고리즘 내에서 이전 그룹들로 돌아오게 하며, 반면에 상기 알고리즘의 다른 페이즈들은 현 그룹에 대해 항시 수행된다. 이러한 피드백 동작에 대한 스텝사이즈는 1, 즉 이 피드백 동작은 소모적인 것으로 간주될 수 있다.
최상의 VLEC 코드의 이러한 탐색을 계속하기 위해서, 알고리즘에서 루프가 되게 하는 동일 구조를 유지하는 것을 피하는 것이 필요하다. 현 코드의 마지막으로 더해진 그룹은 삭제되고(단계 52, 53), 짧은 길이의 코드워드들의 삭제는 보다 긴 길이의 코드워드들을 찾게 하며(테스트 54: 1보다 큰 그룹 내 코드워드의 수?), 단계 21의 시작에서 알고리즘의 루프가 다시 되게 하고(단계 56)(도 2 참조), 서로 다른 VLEC 구조들을 발견하기 위해서(삭제되는 워드들의 수는 워드들을 선택하는데 사용되는 방법에 따르며; GA 방법이 사용되고 선형 코드를 얻기를 원한다면, 코드워드들의 반을 삭제하는 것이 필요하고, 반면에 MVA 방법에 있어서는 단지 하나의 코드워드인 최상의 코드워드만이, 즉 다음 그룹에서 더 많은 코드워드들을 발견하게 하는 코드워드만이 삭제된다), 이전 그룹의 일부 코드워드들(GVA의 반(half); MVA에 있어선 "최상의(best)" 하나)이 삭제된다(단계 55).
그러나, 전술한 휴리스틱 방법은 거의 있을 것 같지 않은 코드 구조들을 자주 고려하거나 이러한 우려를 갖고 진행하여(어떠한 것도 놓치지 않기 위해서) 상기 방법의 구현에서 큰 복잡성이 관찰되고 이는 또한 시간 소모적이고 이에 따라 사용불가로 될 수 있다. 그러므로, 출원번호 02292624.0(PHFR020110)로 2002년 10월 23일 출원된 유럽특허출원에, 이들 결점들을 피함으로써 복잡성을 향상시키는 것이 가능한 향상된 구조의 방법이 제안되었으며, 가변 길이 에러 코드를 구축하는 상기 방법은 구체적으로:
(1) 필요한 파라미터들, 즉 코드워드들의 각각의 최소 및 최대 길이 L1, Lmax, 각 코드워드간 자유거리 dfree(상기 거리 dfree는 VLEC 코드 C에 대해서 모든 임의의 확장된 코드들의 집합에서 최소 해밍 거리), 코드워드들의 필요한 개수 S를 초기화하는 단계;
(2) 길이 L1 및 최소길이 bmin의 고정 길이 코드 C를 생성하는 단계로서(단계 11), bmin = min {bk; k = 1, 2,......, R}이고, bk = 코드 C의 상기 코드워드 길이 Lk에 연관된 거리이며 길이 Lk를 가진 C의 모든 코드워드들간의 최소 해밍 거리로서 정의되며, R = C에서 서로 다른 코드워드 길이들의 수이고, 상기 생성 단계 11은 d 거리의 n비트 워드들의 집합 W를 생성하는, 상기 생성 단계;
(3) C의 상기 코드워드들로부터 dmin의 거리에 있는 모든 가능한 L1-투플들을 상기 집합 W에 나열 및 저장하는 단계(단계 21)(VLEC 코드 C에 대한 상기 거리 dmin는 C의 서로 다른 길이의 코드워드들의 모든 가능한 커플들간의 모든 발산하는 거리들의 최소값)로서, 상기 집합 W가 비어있지 않다면 모든 워드들의 끝에 하나의 추가 비트를 첨부함으로써 W 내 워드들의 수를 2배로 하고, 상기 저장 단계는 상기 집합 W를 이전 것보다 2배 많은 워드들을 갖는 새로운 것으로 대치하고 이들 워드들의 각각의 길이는 L1 + 1인, 상기 나열 및 저장 단계;
(4) C의 모든 코드워드들과 cmin 거리를 만족시키지 않는 상기 집합 W의 모든 워드들을 삭제하는 단계로서(단계 31), 상기 거리 cmin는 상기 코드 C의 최소 수렴거리인, 상기 삭제 단계;
(5) 어떠한 워드도 발견되지 않거나 최대 수의 비트에 도달한 경우, 더 많은 워드들을 발견하기 위해 거리의 제약을 감소시키는 단계(단계 41);
(6) 상기 집합 W의 모든 워드들이 bmin의 거리에 있게 제어하는 단계로서, 상기 발견된 워드들은 상기 코드 C에 추가되는(단계 34), 상기 제어 단계;
(7) 필요한 수의 코드워드들에 도달되지 않았다면(단계 35), 상기 방법이 계속할 가능성이 없음을 발견하거나 또는 코드워드들의 필요한 수를 발견할 때까지 상기 단계들(1 내지 6)(즉, 단계들 21 내지 35)을 반복하는 단계;
(8) C의 코드워드들의 수가 S보다 크다면, 상기 VLEC 코드의 구조에 기초해서, 소스의 확률로 각 코드워드 길이에 가중치를 부여함으로써 얻어진 평균 길이 AL을 산출하는 단계로서(동작 A4), 상기 AL은 ALmin보다 작다면 ALmin이 되고, ALmin = AL의 최소값이며, 대응하는 코드 구조는 메모리에 유지되는, 상기 산출단계를 더 포함하며;
상기 구축 방법은 또한, 집합 W의 각 워드의 끝에 기껏해야 하나의 비트가 추가되게 하는 방법이다.
시뮬레이션들에 따르면, 종래의 휴리스틱 방법에 의해서는, 얻어진 최상의 코드들 중 거의 어느 것도 홀(hole)을 갖고 있지 않음을 보여준다(즉, 이의 구조 길이에서 길이 도약). 이전에 인용된 유럽 특허 출원에서는 가장 양호한 코드들이 길이의 도약을 갖지 않고, 따라서 조사된 VLEC 코드들의 집합이 감소될 수 있는(AL을 너무 수정함이 없이, 방법의 구현의 시뮬레이션 시간 및 복잡성을 감소시킴) 것으로 간주하고 있다. 이러한 가정에 따르면, 방법은, 상기 유럽 특허 출원에 따라, 집합 W의 각 워드의 끝에 한 비트 이상을 추가하는 것을 피하는 것으로 수정된다. 대응하는 구현(개선된 휴리스틱 구성 방법, "노-홀 최적화 방법(noHole optimization method)"이라고도 함)을 도 10 및 도 11에 도시하였고, 이들은 상기 방법에 대응하는 흐름도의 두 부분들을 나타낸 것이다(도 2 내지 도 4에 것들과 동등한 요소들엔 동일 참조코드를 사용하였음). 도 2 내지 도 4의 흐름도에 대해서, 종래의 휴리스틱 기술에 대하여, 향상된 방법의 구현에 무용한 부분들은 삭제하였다:
(a) W가 단계 31의 끝에서 비어있다면(테스트 32: |W| = 0 ?에서 예 응답), 다음 페이즈는 단계들(23, 24, 31, 32)의 반복이 아니라(도 10 참조), 상기 "노-홀(noHole)" 방법에 따라, 어떤 코드워드들의 동작(55)(단계들 21 내지 24 및 31 내지 35의 전체적인 반복 전에, 일부 코드워드들 또한 최상의 코드워드의 삭제)을 수행하는 회로의 입력으로 직접 접속(1)의 수립(상기 반복 대신에)이며, 상기 동작(55)에 이어서, 이전처럼, 동작 21 및 그 이후가 이어진다.
(b) 방법의 제4 페이즈는 하나의 단계, 즉 테스트 "마지막 그룹의 코드워드들의 수 =1?"인 동작(41)으로 된다. 응답이 아니오이면, 상기 동작(55)의 수행에 비추어, 단계 55의 입력에 직접적인 연결이 수립되고(연결 91), 이어서 동작 21 및 그 이후가 이어진다. 응답이 예이면, 한 세트의 동작들(52 내지 54)의 입력에의 연결(92)이 수립된다.
이와 같이 하여 얻어진 결과들을, 코드워드들을 선택시 GAS 방법을 사용할 때 26 심볼 영어 소스에 대해 도 12의 테이블에 나타내었다. 도 13에 나타낸 결과들과 비교해 볼 때, 결과가 dfree=3에 있어선 완전히 최적은 아닐지라도(코드 구조는 L=11 길이에서 홀을 갖는다), AL 상승은 다른 dfree 값들에 대해서는 열화가 전혀 없고 2, 5와 4 사이의 시간 이득이 있다고 할 때만 실제로 수락될 수 있음을 알 수 있다. 이와 동일한 것을, MVA 복잡성 영향이 명백한 경우, 도 7에서 얻어진 것들과 본 해결책을 비교할 때, 적용할 수 있다. 유사하게, 코드워드들을 선택하기 위한 GA 방법으로 노-홀 최적화를 적용함으로써 dfree=3에 대해 약간의 AL 상승만을 희생하여 시간 이득이 된다. 마지막으로, 도 5는 한편으로는 현재의 해결책이 시간의 수락가능한 이득에 대해 더 나은 AL을 제공함을 보이고 있고, 노-홀 최적화는 GAS에 의해 유발된 복잡성을 거의 전적으로 보상한다.
그러나, 상기 유럽 특허 출원에 기술된 방법에 있어선, VLEC 코드에서 너무 많은 작은 길이의 코드워드들이 있는 경우들이 존재한다. 출원 번호가 03290604.2호인 2003년 3월 11일 출원된 다른 유럽 특허 출원(PHFR030026)에서, 직접, 따라서 신속하게 더 작은 길이들로 되돌아 갈 수 있도록, 즉 너무 많은 작은 길이 코드워드들이 존재하는 경우들의 다수의 알고리즘 단계들을 스킵하도록, 그룹 삭제가 마지막 얻어진 코드워드들 그룹 뿐만 아니라, 주어진 길이 값 그룹까지의 그룹들과도 더 일반적으로 수행되는 것에 따른 다른 개선된 구축 방법이 제안되었다. 더 명확하게, 코드워드 삭제 스테이지에서 알고리즘이 되돌아 스킵하는 길이를 Ls(s는 스킵)로 표시하여, 삭제될 코드워드들을 찾을 때 더 작은 길이들로 주의 깊게 도약함으로써, 원래의 휴리스틱 알고리즘의 부분들을 스킵하는 것이 제안되었다(그러나, 고려된 코드워드 그룹 길이 L이 프리세트 값 Ls보다 작을 때, 자명하게 종래의 방법이 적용되는 것이 낫고, 삭제는 길이 L의 그룹 내에서 행해진다). L1 및 Ls 사이에 포함된 길이는, 탐색 프로세서에서 하나씩 감소되므로, "자유 길이들(free lengths)", 즉 자유도를 갖는 길이라고 부른다(자유 길이들의 수가 증가할 때, 시뮬레이션 시간이 또한 지수적으로 증가된다). "Ls 최적화 추가(Ls optimization adding)"이라 불리는 상기 방법은 도 10(소위 노홀 최적화 방법인, 이전 방법의 변경되지 않은 부분) 및 도 14(노홀 최적화 방법의 수정된 부분) 관련에 의해 형성된 흐름도에 표시된다.
상기 도 14는 이후 표시들을 따라 도 11로부터 적응된다. 현 코드의 마지막 부가된 그룹은 삭제되나, 이 이전의 그룹의 코드워드 CL이 Ls보다 이하(테스트 61에서 아니오 응답)(테스트 61에 이는 단계들은 이전의 단계들, 단계들 53, 54, 55 또한 테스트 54의 출력에서 52와 동일하다)일 경우에만(테스트 61) 삭제된다. 상기 코드워드 길이가 Ls보다 크다면(테스트 61에서 응답 예), Ls-비트 길이의 코드워드들을 가진 그룹으로 가서 Ls 이상의 비트들 가진 모든 그룹들을 삭제하기 위한 추가의 단계 62가 제공된다. 단계 62의 출력에서, 이전과 동일한 단계들 54, 55이 제공된다. 실제로, 시뮬레이션 결과들은 Ls < L(max)일 때-L(max)는 최대 인증된 코드워드 길이-매우 양호한 압축 레이트들이 얻어질 수 있음을 보여준다(L 값을 증가시키면, 일정한 값-최상의 값-에 도달될 때까지 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에 도시한 종래의 방법의 개선의 구현을 도시한 단일 흐름도의 두 부분을 도시한 도면.
도 12는 GAS를 사용하고 6 및 도 8의 테이블들에서 고려된 바와 동일한 26 심볼 영어 소스에 대한 다양한 VLEC 코드들을 제공하는 또 다른 테이블.
도 13은 도 10 및 도 11에 예시된 개선에 따른 구축 방법 및 이전에 언급된 GAS 둘 다를 모두 사용하고 도 12에서와 동일한 소스에 대해 다양한 VLEC 코드들을 제공하는 또 다른 테이블.
도 14는 도 2 내지 도 4에 예시된 종래 방법의 다른 개선에 따른 도 11의 흐름도의 부분의 수정을 도시한 도면.
도 15는 도 10 및 도 14의 관련에 의해 형성된 단일 흐름도에 대하여, 본 발명에 따른 방법이 수행될 때 도 10의 흐름도의 아래 부분의 수정을 도시한 도면(원래의 도 10에 대하여, 아래 수정된 부분만이 도시됨).
도 16은 이전의 도 14의 방법("Ls 최적화" 방법)이 수행될 때, 26 심볼 영어 소스에 대해 얻어진 결과들을 예시하는 테이블.
도 17은 본 발명에 다른 방법이 수행될 때, 26 심볼 영어 소스에 대해 얻어진 결과들을 예시하는 테이블.
따라서, 본 발명의 목적은 개선된 구축 방법을 제안하는 것으로, 이 개선된 구축 방법으로 허용 가능한 계산 시간에서 상기 단점을 피하고 더 나은 코드들을 얻을 수 있다.
이를 위해, 본 발명은 본원의 서두에서 정의된 방법에 관한 것이고, 상기 방법은, 최상 VLEC 코드들에 대한 코드워드들의 수의 모든 분포들이 벨(bell) 형상 타입과 유사한 곡선 값(curve allure)을 갖는 것을 고려하여, 최적화 길이 값 Lm이 정의되고, 상기 Lm 까지 코드워드들의 수가 그 길이와 함께 증가하며, 상기 값 Lm 후에 길이는 감소하며, 상기 정의는 커브의 에지들을 회피하여 소위 "Ls 최적화(Ls optimization)"를 적용하고, 국부적으로 작업하도록 허용하는 것으로 더욱 특징지어 진다.
가능한 개선된 구현에 따라, 본 발명은 유사한 방법(즉 본원의 서두에 또한 정의된)에 관한 것으로, 상기 방법은 더 작은 길이들로 신속히 되돌아 가도록 삭제가 마지막 얻어진 그룹에서 뿐만 아니라, 주어진 길이 값의 그룹에서도 실현되고, 최상 VLEC 코드들에 대한 코드워드들의 수의 모든 분포들이 벨 형상 타입의 유사한 커브 값을 갖는 것을 고려하여, 최적화 길이 값 Lm이 정의되고, 상기 Lm 까지 코드워드들의 수가 그 길이와 함께 증가하며, 상기 값 Lm 후에 길이는 감소하며, 상기 정의는 커브의 에지들을 회피하여 소위 "Ls 최적화"를 적용하고, 국부적으로 작업하도록 허용하는 것으로 이제 바람직하게 특징지어 진다.
또한, 본 발명의 목적은 상기 구축 방법을 수행하기 위한 디바이스를 제한하는 것이다.
이를 위해, 본 발명은 상기 제안된 2개의 솔루션들 중 어느 하나에 따라 가변 길이 에러 코드 구축 방법을 수행하기 위한 디바이스에 관한 것이다.
본 발명을 첨부한 도면을 참조하여, 예에 의해 기술하도록 하겠다.
기존 휴리스틱 방법 또는 수정된 방법들("노홀 최적화(noHole optimization)" 방법, "Ls 최적화" 방법)에 기초하여 이루어진 일부 시뮬레이션들의 결과들을 고려하여, 상기 시뮬레이션들에서 발견된 최상의 VLEC 코드들에 대한 코드워드들의 수의 모든 분포들이 유사한 양상을 갖는 것으로 드러났다: 길이 L에서의 코드워드들의 수 Nc(L) 대 코드워드 길이 L은 일반적으로 벨 형상으로 보이는 커브이다. 주어진 길이 Lm(m은 중간(middle)) 까지 코드워드들의 수는 길이와 함께 증가하고, 반면에 상기 길이 Lm 후에 코드워드들의 수는 감소한다.
도 10 및 도 14의 관련에 의해 형성된 단일 흐름도에 대하여, 따라서, 이전의 리마크(remark)는 도 10의 흐름도의 아래 부분의 수정의 수단으로써 이용된다: 본 발명에 따른 상기 방법은 도 15에 예시되어 있고, 상기 방법은 상기 방법의 구현에 대응하는 새로운 단일 흐름도를 형성하기 위해, 도 10의 남은 위쪽 부분(상기 도 10의 아래 부분이 본 발명에 따른 방법의 구현에 어떻게 기여하는지 기술하는 이후 문단에서 설명된 바와 같이) 및 도 14를 함께 고려해야만 한다. "Lm 최적화"로 불리는 이 방법은 "Ls 최적화" 방법의 적응이고, 이 적응은 이제 기술되는 기술 측정들의 도입의 수단에 의해 이루어진다.
상기 측정들에 따라, 테스트 회로(71)("집합 W의 크기 ?"), 테스트 회로(72)("W의 워드 길이?"), 및 계산 회로(73)("W의 크기 = 마지막 그룹의 크기로 놓는다")가 회로(33)과 회로(34) 사이의, 도 10에 도시된 솔루션에 부가된다: 상기 방법은 회로(33) 후, 및 W의 워드들의 추가를 코드 C에 수행하는 회로(34) 전에 구현되며, 여기서 집합 W는 모든 상이한 거리들에 따른다. 이들 2개의 회로들(33 및 34) 사이에, 부가 테스트들이 본 발명에 따라 수행된다.
먼저, W 내의 워드 길이 Lw가 Lm보다 낮다고 가정한다. 커브 값에 대하여, 집합 W의 크기는 마지막 그룹 보다 작아서는 안된다. 상기 크기가 마지막 그룹의 크기보다 작다면(테스트(71)에서 예 응답), 이전의 구현들을 기술할 때 상술된 바와 같이, 단계들(21 내지 24) 및 단계들(31 내지 35)를 반복해야만 한다. 상기 W의 크기가 마지막 그룹의 크기보다 크거나 또는 워드 길이 Lw가 Lm 보다 크다면(테스트(71)에서 아니오 응답), 테스트(72)는 수행된다.
워드 길이 Lw가 Lm보다 크고 L(MAX)-2보다 작다면, W 크기는 마지막 그룹의 크기보다 작아야만 한다. 이것이 참이 아니라면(테스트(72)에서 예 응답), W 내의 워드들의 수가 크고, 마지막 그룹 크기보다 작도록 설정되어야 하며, 이는 회로(73)에서 행해진다. 그 다음에, W 내의 워드들은 이전에 "휴리스틱(Heuristic)", "노홀 최적화", 또는 "Ls 최적화" 방법에 의한 바와 같이, C에 부가된다(회로(34)). 이것이 참이라면(W 크기가 마지막 그룹의 크기보다 작음: 테스트(72)에서 아니오 응답), W 내의 워드들을 코드 C에 부가하기 전에는 아무것도 행해지지 않는다(회로(73)). 상기 방법에 약간의 진동을 갖는 코드 값을 발견하도록 허용할 것인 일부 자유도를 주기 위해, 값 억제는 전체적이 아닌 국부적으로 테스트되고, 즉 경사도(inclination)는 2개의 길이들로만 변화되고: 2개의 길이들은 W의 Lw 길이 및 마지막 그룹의 길이 L(last_group)이다.
"Ls 최적화" 방법(도 16의 테이블)으로 얻어진 결과들 및 도 17의 테이블에 예시된, 현재의 "Lm 최적화" 방법으로 얻어진 결과들을 계산함으로써, "Lm 최적화"가 동일한 최상 코드를 작은 시간 게인으로 제공하는 것이 나타난다. 이는, 적은 수의 코드워드들을 갖는 소스는 "Ls 최적화" 방법으로 이미 신속히 다루어지고, "Lm 최적화"는 더 많은 수의 코드워드들이 존재할 때 그 능력을 특히 보이는 사실에 의해 설명될 수 있다.

Claims (4)

  1. 가변 길이 에러 코드를 구축하는 방법에 있어서,
    (1) 필요한 파라미터들, 즉 코드워드들의 각각의 최소 및 최대 길이 L1, Lmax, 각 코드워드간 자유거리 dfree(상기 거리 dfree는 VLEC 코드 C에 대해서 모든 임의의 확장된 코드들의 집합에서 최소 해밍 거리(minimum 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) C의 상기 코드워드들로부터 dmin의 거리의 모든 가능한 L1-투플들(L1-tuples)을 상기 집합 W에 저장하는 단계(VLEC 코드 C에 대한 상기 거리 dmin는 C의 서로 다른 길이의 코드워드들의 모든 가능한 커플들간의 모든 발산하는 거리들의 최소값)로서, 상기 집합 W가 비어있지 않다면 모든 워드들의 끝에 하나의 추가 비트를 첨부하고, 상기 저장 단계는 상기 집합 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보다 작다면 ALmin이 되고, ALmin = AL의 최소값이며, 대응하는 코드 구조는 메모리에 유지되는, 상기 산출 단계를 포함하며,
    상기 구축 방법은 상기 최상 VLEC 코드들에 대한 코드워드들의 수의 모든 분포들이 벨(bell) 형상 타입의 유사한 커브 값(curve allure)을 갖는 것을 고려하여, 최적화 길이 값 Lm이 정의되고, 상기 Lm 까지 코드워드들의 수가 그 길이와 함께 증가하며, 상기 값 Lm 후에 길이는 감소하며, 상기 정의는 상기 커브의 에지들을 회피하여 소위 "Ls 최적화(Ls optimization)"를 적용하고, 국부적으로 작업하도록 허용하는 것을 특징으로 하는, 가변 길이 에러 코드 구축 방법.
  2. 가변 길이 에러 코드를 구축하는 방법에 있어서,
    (1) 필요한 파라미터들, 즉 코드워드들의 각각의 최소 및 최대 길이 L1, Lmax, 각 코드워드간 자유거리 dfree(상기 거리 dfree는 VLEC 코드 C에 대해서 모든 임의의 확장된 코드들의 집합에서 최소 해밍 거리), 코드워드들의 필요한 개수 S를 초기화하는 단계;
    (2) 길이 L1 및 최소길이 bmin의 고정 길이 코드 C를 생성하는 단계로서, 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배 많은 워드들을 갖는 새로운 것으로 대치하고 이들 워드들의 각각의 길이는 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의 최소값이며, 대응하는 코드 구조는 메모리에 유지되는, 상기 산출단계를 포함하며,
    상기 구축 방법은 더 작은 길이들로 신속히 되돌아 가도록 상기 삭제가 상기 마지막 얻어진 그룹에서 뿐만 아니라 주어진 길이 값의 그룹에서도 실현되고, 상기 최상 VLEC 코드들에 대한 코드워드들의 수의 모든 분포들이 벨 형상 타입의 유사한 커브 값을 갖는 것을 고려하여, 최적화 길이 값 Lm이 정의되고, 상기 Lm 까지 코드워드들의 수가 그 길이와 함께 증가하며, 상기 값 Lm 후에 상기 길이는 감소하며, 상기 정의는 상기 커브의 에지들을 회피하여 소위 "Ls 최적화"를 적용하고, 국부적으로 작업하도록 허용하는 것을 특징으로 하는, 가변 길이 에러 코드 구축 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 Lm에 대한 최적화 값은 Lm =Ls+1 인, 가변 길이 에러 코드 구축 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 따른 가변 길이 에러 코드 구축 방법을 수행하기 위한 디바이스.
KR1020057017630A 2003-03-20 2004-03-16 가변 길이 에러 정정 코드 구축 방법 및 디바이스 KR20050107627A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03290714.9 2003-03-20
EP03290714 2003-03-20

Publications (1)

Publication Number Publication Date
KR20050107627A true KR20050107627A (ko) 2005-11-14

Family

ID=33017022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057017630A KR20050107627A (ko) 2003-03-20 2004-03-16 가변 길이 에러 정정 코드 구축 방법 및 디바이스

Country Status (6)

Country Link
US (1) US7266755B2 (ko)
EP (1) EP1609246A1 (ko)
JP (1) JP2006523989A (ko)
KR (1) KR20050107627A (ko)
CN (1) CN1762102A (ko)
WO (1) WO2004084417A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015116184A1 (en) * 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Constant hamming weight coding

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024639B2 (en) * 2006-06-23 2011-09-20 Schweitzer Engineering Laboratories, Inc. Software and methods to detect and correct data structure
US7839308B2 (en) * 2007-02-09 2010-11-23 Qualcomm Incorporated Using codewords in a wireless communication system
US20090112473A1 (en) * 2007-10-31 2009-04-30 Hung Sung Lu Method for providing location and promotional information associated with a building complex
US10707996B2 (en) 2018-04-06 2020-07-07 International Business Machines Corporation Error correcting codes with bayes decoder and optimized codebook

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006504316A (ja) * 2002-10-23 2006-02-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変長誤り符号を生成する方法及び装置
CN1759536A (zh) 2003-03-11 2006-04-12 皇家飞利浦电子股份有限公司 用于构造可变长度差错代码的方法和设备
EP1611687A1 (en) * 2003-03-28 2006-01-04 Koninklijke Philips Electronics N.V. Method and device for building a variable-length error-correcting code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015116184A1 (en) * 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Constant hamming weight coding

Also Published As

Publication number Publication date
EP1609246A1 (en) 2005-12-28
CN1762102A (zh) 2006-04-19
US20060190802A1 (en) 2006-08-24
WO2004084417A1 (en) 2004-09-30
JP2006523989A (ja) 2006-10-19
US7266755B2 (en) 2007-09-04

Similar Documents

Publication Publication Date Title
US7222284B2 (en) Low-density parity-check codes for multiple code rates
US6857097B2 (en) Evaluating and optimizing error-correcting codes using a renormalization group transformation
JP2004533766A (ja) 可変長コードワードシーケンスを復号化する方法
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
CN110661533B (zh) 优化译码器存储极化码译码性能的方法
JP5215537B2 (ja) 情報符号化装置、情報復号装置、情報符号化方法、および情報復号方法
KR20200087211A (ko) 계단 코드의 디코딩 방법, 장치 및 기억매체
KR20040055719A (ko) 순환 리던던시 코드 서명 비교를 구비한 터보 디코더
KR20050107627A (ko) 가변 길이 에러 정정 코드 구축 방법 및 디바이스
JP2009182421A (ja) 復号化方法及び復号化装置
KR20050114647A (ko) 가변 길이 에러 코드 구축 방법 및 디바이스
KR20050113266A (ko) 가변 길이 에러 정정 코드를 형성하는 방법 및 장치
US7222283B2 (en) Method and device for building a variable-length error code
KR100640924B1 (ko) 레이트 매칭 방법 및 장치
Qi et al. An improved successive cancellation decoder for polar codes
CN110380734B (zh) 低密度奇偶检查码的编码及译码方法
Song et al. Designing Multi-CRC Polar Codes with Good Low-Weight Spectra
Al-Lawati et al. On decoding binary perfect and quasi-perfect codes over Markov noise channels
Gligoroski et al. New Directions in Coding: From Statistical Physics to Quasigroup String Transformations
KR20230102657A (ko) 버스트 에러 정정 코드 생성 방법, 컴퓨터 판독 가능한 기록 매체, 컴퓨터 프로그램 및 장치
Al-Lawati et al. On Decoding Binary Quasi-Perfect Codes Over Markov Noise Channels

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