KR101908389B1 - 에러 정정 코딩 및 디코딩 - Google Patents

에러 정정 코딩 및 디코딩 Download PDF

Info

Publication number
KR101908389B1
KR101908389B1 KR1020147012814A KR20147012814A KR101908389B1 KR 101908389 B1 KR101908389 B1 KR 101908389B1 KR 1020147012814 A KR1020147012814 A KR 1020147012814A KR 20147012814 A KR20147012814 A KR 20147012814A KR 101908389 B1 KR101908389 B1 KR 101908389B1
Authority
KR
South Korea
Prior art keywords
dual
primal
graph
constraint
decoding
Prior art date
Application number
KR1020147012814A
Other languages
English (en)
Other versions
KR20140092834A (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 KR20140092834A publication Critical patent/KR20140092834A/ko
Application granted granted Critical
Publication of KR101908389B1 publication Critical patent/KR101908389B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1174Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC 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
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/613Use of the dual code

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 소스 데이터(S)와 리던던시 데이터(R)를 포함하는 코딩된 데이터를 코딩 및 디코딩하는 방법 및 장치에 관한 것으로, 상기 리던던시 데이터는(R) 체계적인 형태로 단위 형렬과, 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬을 구현하여, 코딩 시에, 에러 정정 코드를 소스 데이터에 적용함으로써 획득되고, 코딩 또는 디코딩(12)은 상기 에러 정정 코드의 그래프와 상기 에러 장정 코드의 듀얼 코드의 그래프를 중첩함으로써 이 그래프들을 결합한 태너 그래프에 기초한다,

Description

에러 정정 코딩 및 디코딩{ERROR CORRECTOR CODING AND DECODING}
본 발명의 기술분야는 에러 정정 코드를 이용하는 데이터의 인코딩 및 디코딩 기술분야이다.
더욱 구체적으로는, 본 발명은 소스 데이터를 인코딩하고, 전송 채널(예를 들어, 무선, 광학 또는 전기적 종류의)에서의 전송이나 하드웨어 매체에서의 저장을 위하여 의도된 리던던시 데이터 및 소스 데이터를 포함하는 인코딩된 데이터 스트림 또는 인코딩된 데이터 패킷을 전달하기 위한 신규의 기술에 관한 것이다. 또한, 본 발명은 특히 전송 채널에 본질적인 전송 에러를 정정하는 것을 가능하게 하는 디코딩을 위한 대응하는 기술에 관한 것이다.
본 발명은 특히 다음과 같은 분야에 적용될 수 있다:
- ADSL 표준을 이용하는 통신 또는 광 통신과 같은 전기 유선 통신, 광섬유 또는 자유 공간 광학에 의한 정보 전송;
- TNT 디지털 텔레비전 시스템, DAB 디지털 라디오 시스템, GSM 또는 UMTS 통신 방법, 와이파이 무선 네트워크와, 미래의 DVB, 4G, LTE 표준, 미래의 인터넷과 같은 미래의 통신 시스템과 같은 공간적이고 지상파를 이용하는 무선 통신에서의 정보 전송 또는 자동차, 객체 및 통신 기계 사이의 정보 전송 등;
- 정보 소스의 압축 및 압축 해제;
- CDMA 시스템에서의 스크램블링 시컨스(scrambling sequences)라 불리는 시컨스의 생성 및 검출;
- 하드 디스크 드라이브를 이루기 위한 자기적, 광학적, 기계적 또는 전기적 대형 메모리, 컴퓨터 랜덤 액세스 메모리 또는 USB 타입의 인터페이스 메모리 스틱 등에서의 정보 저장;
- 마이크로프로세서의 집적 회로 또는 컴퓨터에서의 컴퓨팅 동안의 정보 정정;
- 신경망에 기초한 인공 지능에 의해 제어되는 로보틱스;
- 기타.
소스 데이터로부터 리던던시 데이터를 생성함으로써 디코딩시 전송 에러를 정정하기 위한 많은 인코딩 기술이 사용된다.
따라서, 에러 정정 코드는 전통적으로 다음의 의해 정의된다:
- 인코더의 출력에서의 데이터에 대응하는 길이 n(k 소스 데이터와 (n-k) 리던던시 데이터에 의해 형성된 길이 n을 갖는 코드 워드(code word));
- 소스 데이터라고도 불리는 인코더의 입력에서의 데이터에 대응하는 페이로드(payload) 정보 비트 또는 심벌(symbol)의 수 k; 및
- 최소 거리 dmin.
코드의 최소 거리 dmin은 2개의 코드 워드 사이의 최소 거리에 대응한다. 이는 코드가 코드 워드에서 정정할 수 있는 최대 개수의 에러를 결정하는 것을 가능하게 한다.
따라서, (dmin - 1)의 에러가 있는 심벌의 검출과
Figure 112014044817913-pct00001
(dmin - 1)/2
Figure 112014044817913-pct00002
의 정정을 가능하게 하기 때문에, 최소 거리 dmin이 더 클수록 에러 보정 코드는 더 양호하다(여기에서, 연산자
Figure 112014044817913-pct00003
.
Figure 112014044817913-pct00004
는 정수 부분을 나타낸다).
전송 에러의 정정을 가능하게 하는 인코딩 기술 중에, 터보 코드(turbo-code) 및 LDPC(low density parity check) 코드는, n이 대략 적어도 수천 비트(n>1000)인 큰 길이 n의 코드에 대한 에러 정정의 측면에서 높은 성능을 가진다.
대조적으로, 터보 코드 및 LDPC 코드는 더 짧은 코드 n(n<1000)에 대하여 더 낮은 성능을 가진다.
이것은 디코딩에서 사용되는 신뢰 전파 알고리즘(belief propagation algorithm) 또는 이 알고리즘의 변형이 사이클의 최소 길이가 감소할 때 차선(sub-optimal)이 된다는 사실에 부분적으로 기인한다. 코드의 워드를 구성하기 위하여 워드의 심벌이 충족해야만 하는 제약(constraint)을 나타내는 태너 그래프(Tanner graph)에서 사이클이 폐쇄 경로에 대응하는 것이 상기될 수 있다. 태너 그래프의 표기법은 잘 알려져 있으며, 그 중에서도 2001년 2월 IEEE Transactions on information theory Vol. 47의 R. M. Tanner의 논문인 "Minimum - distance bounds by graph analysis"에서 설명된다.
그러므로, 이러한 종류의 신뢰 전파 알고리즘은 매우 밀한 생성 행렬(즉, 많은 비트를 1로 가지는 것)을 갖는 코드와 이에 따른 우수한 상대 최소 해밍 거리 δ=dmin/n을 갖는 코드에 대하여 효율적이지 않다.
그 외에, 엄격하게 최적인 소진적 디코딩 알고리즘은 k가 코드의 차원일 때 O(2k)에서의 지수적인 복잡성을 갖기 때문에 획득하기 어려우며, 따라서 매우 비용이 많이 든다. 또한, 이는 짧은 길이의 코드에 대한 실시간 인코딩을 가능하게 하지 않는다.
또한, 산업적 규모의 사용에 대하여, 에러 정정 코드의 최적화는 하드웨어 비용 및 소비 에너지의 측면에서의 인코딩 및 디코딩의 복잡성의 최소화를 포함한다. 이제, 에러 정정 코드의 디코딩을 최적화하는 이러한 문제점은 코드의 길이가 짧은 것에서 평균의 길이가 될 때, 즉 대략 n<1000일 때, 해결하기 훨씬 더 어렵다.
따라서, 효율적인 에러 정정 코드, 즉 가능한 한 큰 최소 거리 dmin을 가지며 특히 매우 짧은 사이클을 갖는 에러 정정 코드를 디코딩하기 위한 새로운 기술에 대한 요구가 있다.
본 발명은, 소스 데이터와 리던던시 데이터를 포함하는 인코딩된 데이터를 디코딩하는 디코딩 방법의 형태로, 종래 기술의 이러한 모든 문제점을 가지지 않는 새로운 접근 방식을 제공한다. 리던던시 데이터는, 인코딩될 때, 체계적인 형태(systematic form)로, 단위 행렬 및 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬을 포함하는 생성 행렬을 구현하는, 에러 정정 코드의 소스 데이터에의 적용에 의해 획득된다.
본 발명에 따르면, 본 방법은, 프라이멀(primal) 에러 정정 코드라 불리는 에러 정정 코드와, 프라이멀 에러 정정 코드의 듀얼(dual)이고 듀얼 에러 정정 코드라 불리는 코드를 동시에 구현하는 디코딩 단계를 포함한다.
본 발명에 따르면, 본 방법은, 그 프라이멀 형태 및 그 듀얼 형태로 에러 정정 코드를 동시에 이용하는 에러 정정 코드 수단을 이용하여 인코딩된 데이터를 디코딩하는 단계를 포함한다.
특히, 2개의 프라이멀 및 듀얼 형태로의 에러 정정 코드의 결합된 사용은, 특히 신뢰 전파 타입 알고리즘을 위하여 그리고 그에 따라 짧은 길이의 코드(n<1000)의 실시간 디코딩을 위하여, 디코딩시에 구현되는 반복 횟수를 감소시킨다.
본 발명에 따르면, 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 행렬(P)은 가역적인 것으로 고려된다. 에러 정정 코드에 그리고 특히 이 코드의 길이나 사이클의 길이에 대한 어떠한 다른 제약도 부가되지 않는다. 따라서, 구현된 에러 정정 코드는 의사 랜덤(quasi-random)인 것으로 고려된다.
따라서, 본 발명은, 특히 짧은 길이 및/또는 짧은 사이클을 갖는 코드에 대하여, 종래 기술보다 더욱 간단하고 더욱 효율적인 디코딩 알고리즘을 제공한다.
특정 일 실시예에 따르면, 프라이멀 그래프라 불리는 프라이멀 에러 정정 코드에 대응하는 태너 그래프와, 듀얼 그래프라 불리는 듀얼 에러 정정 코드에 대응하는 태너 그래프의 중첩에 의해 획득되는, 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프를 구현하고, 중첩은, 프라이멀 그래프의 입력 변수를 동일한 소스 데이터에 대응하는 듀얼 그래프의 입력 변수에 2×2 연결하는 것과 프라이멀 그래프의 출력 변수를 동일한 리던던시 데이터에 대응하는 듀얼 그래프의 출력 변수에 2×2 연결하는 것을 포함한다.
이러한 방식으로, 프라이멀-듀얼 그래프의 각각의 입력 또는 출력 변수는 균등형 제약(equality type constraint) 및 모듈로-2 부가형 제약(modulo-2 addition type constraint)을 포함하는 제약 쌍에 연결된다. 다른 말로 하면, 제안된 디코딩 구조는, 각각 소스 데이터 부분 또는 리던던시 데이터 부분에 대응하는 작은 기본 트리(elementary tree)의 분리를 가능하게 한다.
이러한 기본 트리 구조 때문에, 획득된 프라이멀-듀얼 그래프는 디코딩에 있어서 악화 원인으로 전통적으로 고려되는 루프 구조를 전혀 가지지 않는다. 다른 말로 하면, 트리의 뿌리로부터 잎으로 단지 하나의 경로만이 있고, 이에 따라, 프라이멀-듀얼 그래프에서 정보를 전파하는 유일한 하나의 방식이 있다. 따라서, 이 구조는 사용 가능한 정보를 최적으로 사용함으로써 종래 기술에서 문제가 되는 사이클의 효과를 감소시킨다. 다른 말로 하면, 프라이멀-듀얼 그래프에서의 입력/출력의 동시 처리는 변수를 전파하기 위하여 이루어진 계산을 보상하고, 이에 따라 디코딩 알고리즘에 대한 사이클의 영향을 감소시킨다.
또한, 내부 변수의 전파는 전통적인 "신뢰 전파"형 알고리즘과 비교하여 변형되어, 더 용이하게 이루어지는 짧은 길이의 코드의 디코딩을 가능하게 한다. 이 기본 트리 구조는 각각의 트리에서 소스 데이터의 연역적(priori) 전파의 평균을 획득하는 것을 가능하게 한다.
마지막으로, 인코딩된 데이터(소스 데이터 및 리던던시 데이터)가 있는 만큼의 제약 쌍(또는 기본 트리)의 존재는 모든 사용 가능한 데이터의 사용을 좌우하며, 따라서, 디코딩 성능을 향상시킨다. 또한, 프라이멀-듀얼 그래프의 입력 및 출력에서 사용 가능한 정보는 종래 기술에서 사용 가능한 것의 2배이다.
따라서, 프라이멀 코드와 듀얼 코드의 그래프의 중첩은 특히 수신된 워드에 가장 가까운 코드 워드를 향하여 디코딩 알고리즘의 더 빠른 수렴을 제공함으로써 종래 기술에 비하여 디코딩 성능을 개선한다. 또한 이는 제약(균등, 모듈로-2 부가)에 관한 비선형성을 보상한다.
특히, 프라이멀-듀얼 그래프의 각각의 입력 또는 출력 변수가 균등형 제약 및 모듈로-2 부가형 제약을 포함하는 제약 쌍에 연결되기 때문에, 본 발명에 따른 디코딩 방법은,
- 모듈로-2 부가형 제약에 대하여,
○ 모듈로-2 부가형 제약에 연결된 변수의 실수 도메인으로부터 복소수 도메인으로의 변환 단계;
○ 복소수 도메인에서의 덧셈 단계;
○ 덧셈 단계의 결과의 복소수 도메인으로부터 실수 도메인으로의 변환 단계
를 실행하고,
- 균등형 제약에 대하여,
○ 실수 도메인에서의 덧셈 단계
를 실행하는, 프라이멀-듀얼 그래프의 적어도 하나의 내부 변수를 결정하는 단계를 포함한다.
이러한 방식으로, 균등형 또는 모듈로-2 부가형 제약에 관련된 변수를 전파하도록 수행된 동작이 복소수 도메인 또는 실수 도메인에서 부가형 연산자를 이용함으로써 단순화된다.
특히, 변환(실수 도메인으로부터 복소수 도메인으로의 또는 복소수 도메인으로부터 실수 도메인으로의) 변환 단계들은,
x ≠ 0이면,
Figure 112014044817913-pct00005
x = 0이면, NL[x] = 0
이 되도록 비선형 함수 NL을 적용한다.
이러한 비선형 함수는 자신의 역함수와 동일하다는 것이 주목된다: NL[x] = NL[x]-1.
이러한 비선형 함수의 적용은, 실수값의 필드에서의 간단한 덧셈과 부호의 곱셈을 이용하여, 모듈로-2 부가(배타적 논리합 연산)형 제약의 출력에서 확률에 대한 귀납적(posteriori) 계산의 균등물을 획득하는 것을 가능하게 한다. 이러한 방식으로 디코딩의 연산 복잡성이 감소된다.
특정 일 실시예에 따르면, 프라이멀-듀얼 그래프의 각각의 입력 또는 출력 변수가 균등형 제약 및 모듈로-2 부가형 제약을 포함하는 제약 쌍에 연결되기 때문에, 디코딩 방법은,
- 모듈로-2 부가형 제약에 연결된 프라이멀-듀얼 그래프의 내부 변수를 업데이트하기 위하여 균등형 제약에 연결된 프라이멀-듀얼 그래프의 내부 변수의 전파를 포함하는 순방향 전파 페이즈; 및
- 균등형 제약에 연결된 프라이멀-듀얼 그래프의 내부 변수를 업데이트하기 위하여 모듈로-2 부가형 제약에 연결된 프라이멀-듀얼 그래프의 내부 변수의 전파를 포함하는 역방향 전파 페이즈
를 포함하는 적어도 하나의 디코딩 반복을 구현한다.
다른 말로 하면, 디코딩 반복은 모든 기본 트리에서 소스 데이터를 전파하는 제1 페이즈와, 그 다음, 모든 기본 트리에서 리던던시 데이터를 전파하는 제2 페이즈를 포함하고, 하나의 페이즈는 다른 페이즈에게 각각의 기본 트리의 출력에서 획득된 값을 전송한다.
따라서, 각각의 제약 쌍과 관련된 연산자는 동시에 작용한다.
특히, 순방향 전파 페이즈는,
-
Figure 112014044817913-pct00006
가 되도록 실수 도메인에서의 덧셈을 구현하여, 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 할당된 순방향 우도값 v0 F(t)를 결정하는 단계;
- 실수 도메인으로부터 복소수 도메인으로의 변환 후에,
○ 변환 후의 프라이멀-듀얼 그래프의 입력 또는 출력 변수가
Figure 112014044817913-pct00007
Figure 112014044817913-pct00008
의 형태로 표현되고;
○ 변환 후의 내부 변수가 l ∈ {1, ..., d}에 대하여
Figure 112014044817913-pct00009
Figure 112014044817913-pct00010
로 표현되도록,
변환된 순방향 우도값으로 불리는, 실수 도메인에서 복소수 도메인으로부터의 변환 후에 모듈로-2 부가형 제약에 연결된 변수에 할당된 우도값을 결정하는 단계;
-
Figure 112014044817913-pct00011
Figure 112014044817913-pct00012
가 되도록 복소수 도메인에서 덧셈을 구현하여 변환된 순방향 우도값을 업데이트하는 단계;
-
Figure 112014044817913-pct00013
가 되도록, 업데이트된 변환된 순방향 우도값의 복소수 도메인으로부터 실수 도메인으로의 변환을 구현하여, 모듈로-2 부가형 제약에 연결된 내부 변수의 값을 업데이트하는 단계
의 서브 단계들을 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 연결된 각각의 제약 쌍에 대하여 구현하고,
- v0(0)은 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 할당된 초기값이고;
- vi(t)는 균등형 제약에 연결된 내부 변수이고;
- vl'(t)는 모듈로-2 부가형 제약에 연결된 내부 변수이고;
- d는 프라이멀-듀얼 그래프의 제약과 관련된 제약의 정도이고;
- i ∈ {1, ..., d}, l ∈ {1, ..., d}이고;
- NL[x]는,
x ≠ 0이면,
Figure 112014044817913-pct00014
x = 0이면, NL[x] = 0
인 비선형 함수이다.
이 부분의 역방향 전파 페이즈는,
- 변환된 역방향 우도값이라 불리는, 실수 도메인으로부터 복소수 도메인으로의 변환 후의 상기 모듈로-2 부가형 제약에 연결된 변수에 할당된 우도값을
○ 변환 후의 내부 변수가 l ∈ {1, ... d}에 대하여,
Figure 112014044817913-pct00015
Figure 112014044817913-pct00016
의 형태로 표현되고,
○ 변환 후의 프라이멀-듀얼 그래프의 입력 또는 출력 변수가
Figure 112014044817913-pct00017
Figure 112014044817913-pct00018
의 형태로 표현되도록 결정하는 단계;
-
Figure 112014044817913-pct00019
이 되도록 변환 후의 입력 또는 출력 변수의 복소수 도메인으로부터 실수 도메인으로의 변환을 구현하여, 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 할당된 역방향 우도값 v0 B(t)를 결정하는 단계;
-
Figure 112014044817913-pct00020
가 되도록 실수 도메인에서의 덧셈을 구현하여, 균등형 제약에 연결된 내부 변수의 값을 업데이트하는 단계;
-
Figure 112014044817913-pct00021
가 되도록 프라이멀-듀얼 그래프의 입력 또는 출력 변수를 업데이트하는 단계
의 서브 단계들을 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 연결된 각각의 제약 쌍에 대하여 구현한다.
본 발명의 특정한 일 특징에 따르면, 디코딩 방법은, 프라이멀-듀얼 그래프의 입력 변수, 출력 변수 및 내부 변수를 0으로 초기화하는 예비 단계를 포함한다.
변수 세트의 초기화뿐만 아니라, 본 발명에 따른 이러한 2개의 순방향 및 역방향 전파 페이즈의 구현은, 수신된 워드에 가장 가까운 코드 워드를 향한 디코딩 알고리듬의 매우 신속한 수렴을 제공한다.
본 발명의 다른 양태에 따르면, 프라이멀-듀얼 그래프의 적어도 2개의 입력 또는 출력 변수는 균등형 제약 및 모듈로-2 부가형 제약을 포함하는 동일한 제약 쌍에 연결된다.
따라서, 균등형 제약 또는 모듈로-2 부가형 제약에 연결된 변수를 전파하는데 사용되는 연산자를 멀티플렉싱하여, 이에 따라 필요한 하드웨어 리소스의 양을 감소시키는 것이 가능하다.
본 발명의 특정 일 실시예에 따르면, 프라이멀 에러 정정 코드는 1/2의 레이트를 가진다. 다른 말로 하면, 이는 파라미터 (n = 2k, k, dmin)을 갖는 의사 랜덤 코드이다. 이경우에, 1/2의 레이트를 갖는 이러한 코드의 간단하고 최적인 디코딩을 가능하게 하는 프라이멀-듀얼 그래프와 대칭인 구조를 획득한다.
물론, 1/2과 상이한 레이트를 갖는 에러 정정 코드를 디코딩하는 것도 가능하다.
따라서, 1/2보다 더 큰 레이트를 갖는 에러 정정 코드를 디코딩하기 위하여, 프라이멀-듀얼 그래프에서 2개의(또는 그 이상의) 리던던시 데이터에 연결된 2개의 균등 제약(및 2개의 모듈로-2 부가 제약)의 출력에서 균등 제약(및 모듈로-2 부가 제약)을 부가하는 것이 가능하다.
1/2보다 더 작은 레이트를 갖는 에러 정정 코드를 디코딩하기 위하여, 프라이멀-듀얼 그래프에서 2개의(또는 그 이상의) 소스 데이터에 연결된 2개의 균등 제약(및 2개의 모듈로-2 부가 제약)의 출력에서 균등 제약(및 모듈로-2 부가 제약)을 부가하는 것이 가능하다.
다른 실시예에서, 본 발명은 인코딩된 데이터를 디코딩하는 대응하는 장치에 관한 것이다.
본 발명에 따르면, 이러한 장치는, 프라이멀 에러 정정 코드라 불리는 에러 정정 코드와, 프라이멀 에러 정정 코드의 듀얼이고 듀얼 에러 정정 코드라 불리는 코드를 동시에 구현하는 디코딩 모듈을 포함한다.
이러한 디코딩 장치는 본 명세서에서 설명된 디코딩 방법을 구현하는데 특히 적합하다.
이러한 디코더는 물론 결합되거나 개별적으로 취해질 수 있는 본 발명의 방법에 관한 상이한 특성을 포함할 수 있다. 따라서, 디코더의 특징 및 이점은 디코딩 방법의 특징 및 이점과 동일하며, 더 상세하게 설명되지 않는다.
이러한 디코더는 집적 회로 형태로 또는 마이크로프로세서 타입의 전자 부품으로 구현될 수 있다. 따라서, 본 발명에 따른 디코딩 알고리즘은, 특히 하드웨어 형태 또는 소프트웨어 형태인, 다양한 방식으로 구현될 수 있다.
특히, 인코딩된 데이터를 디코딩하거나 소스 데이터를 인코딩하 위하여 전술한 바와 같이 디코더를 사용하는 것이 가능하다. 후자의 경우에, 리던던시 데이터는 인코더로서의 디코더의 사용을 가능하게 하기 위하여 0으로 강제될 수 있다.
또한, 본 발명은 소스 데이터를 인코딩하여 소스 데이터와 리던던시 데이터를 포함하는 인코딩된 데이터를 전달하는 인코딩 방법에 관한 것이다.
본 발명에 따르면, 이러한 인코딩 방법은,
- 체계적인 형태로, 단위 행렬 및 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬을 구현하는 프라이멀 에러 정정 코드라 불리는 에러 정정 코드; 및
- 프라이멀 에러 정정 코드의 듀얼이고 듀얼 에러 정정 코드라 불리는 코드
를 동시에 구현하는 인코딩 단계를 포함한다.
따라서, 본 발명은 그 프라이멀 형태 및 그 듀얼 형태로 에러 정정 코드를 동시에 사용하는 에러 정정 코드를 이용하여 소스 데이터의 인코딩을 위한 신규의 기술을 제안한다.
따라서, 본 발명에 따른 디코딩 방법에 의해 용이하게 디코딩가능한, 임의의 특정되지 않은 길이를 갖는 기존 코드를 재구축하거나 신규의 코드를 간단히 회득하는 것이 가능하다.
이러한 인코딩 방법은, 물론, 본 발명에 따른 디코딩 방법의 상이한 특성들을 포함한다.
다른 실시예에서, 본 발명은 대응하는 인코딩 장치에 관한 것이다. 이러한 장치는,
- 체계적인 형태로, 단위 행렬 및 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬을 구현하는, 프라이멀 에러 정정 코드라 불리는 에러 정정 코드; 및
- 프라이멀 에러 정정 코드의 듀얼이고 듀얼 에러 정정 코드라 불리는 코드
를 동시에 구현하는 인코딩 모듈을 포함한다.
이러한 인코딩 장치는 특히 전술한 인코딩 방법을 구현하도록 맞추어진다.
또 한편, 이러한 인코더는 집적 회로 형태로 또는 마이크로프로세서 타입의 전자 부품으로 구현될 수 있다. 따라서, 본 발명에 따른 인코딩 알고리즘은, 특히 하드웨어 형태 또는 소프트웨어 형태인, 다양한 방식으로 구현될 수 있다.
또한, 본 발명은 데이터의 인코딩 및 디코딩 방법에 관한 것으로,
- 체계적인 형태로, 단위 행렬 및 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬을 구현하는, 프라이멀 에러 정정 코드라 불리는 에러 정정 코드; 및
- 프라이멀 에러 정정 코드의 듀얼이고 듀얼 에러 정정 코드라 불리는 코드
를 동시에 구현하는 인코딩 및 디코딩 모듈을 포함한다.
"코더/디코더" 또는 인코더/디코더에 대한 코덱(codec)이라 불리는 이러한 장치는 집적 회로 형태로 또는 마이크로프로세서 타입의 전자 부품으로 구현될 수 있다. 특히, 코덱의 사용은 인코딩 및 디코딩을 위해 사용되는 하드웨어 리소스의 풀링을 가능하게 한다. 예를 들어, 이러한 코덱은 입력에서 소스 데이터를 수신하고 출력에서 인코딩된 데이터를 전달하거나, 또는 입력에서 인코딩된 데이터를 수신하고 출력에서 소스 데이터의 예측을 전달한다.
또 다른 실시예에서, 본 발명은 프로세서에 의해 실행될 때, 전술한 바와 같은 인코딩 방법 또는 디코딩 방법을 구현하기 위한 명령어를 포함하는 하나 이상의 컴퓨터 프로그램에 관련된다. 이러한 프로그램은 정보 매체에 저장된다.
본 발명의 다른 특징 및 이점은 간단하고 예시적인 비소진적인 예로서 주어진 특정 실시예에 대한 이어지는 발명을 실시하기 위한 구체적인 내용과 다음의 첨부된 도면으로부터 더욱 명확하게 나타날 것이다:
- 도 1은 본 발명에 따른 인코더/디코더에 의해 구현되는 주요 단계를 도시한다;
- 도 2a, 2b 및 2c는 본 발명에 따른 가역 스위칭 행렬(invertible switching matrix)(P)을 갖는 (8, 4, 4) 해밍 코드의 태너 그래프와, (8, 4, 4) 해밍 코드의 듀얼(dual)인 코드의 태너 그래프와, 대응하는 프라이멀-듀얼(primal-dual) 그래프를 각각 도시한다;
- 도 3a, 3b 및 3c는 본 발명에 따른 가역 스위칭 행렬(P)을 갖는 (12, 6) 코드의 태너 그래프와, 이 (12, 6) 코드의 듀얼인 코드의 태너 그래프와, 대응하는 프라이멀-듀얼 그래프를 각각 도시한다;
- 도 4는 본 발명에 따른 제약 쌍에 대한 상세도이다;
- 도 5a 및 5b는 본 발명에 따른 프라이멀-듀얼 그래프의 내부 변수를 결정하는데 사용되는 비선형 함수 NL을 도시한다;
- 도 6a 및 6b는 본 발명의 특정 일 실시예에 따른 인코더와 디코더의 간략화된 구조를 제공한다.
1. 일반 원리
본 발명의 일반 원리는 데이터를 인코딩 또는 디코딩하기 위하여 프라이멀 코드(primal code)라 하는 에러 정정 코드와 듀얼 코드(dual code)라 하는 이 에러 정정 코드의 듀얼의 동시 사용에 의존한다.
여기에서, 특히 V. S. Pless and W. C. Huffman, "Handbook of coding theory", Volume I, Chapter 3, 177 내지 294 페이지에서 나타낸 바와 같은, 등쌍대성(iso-duality)라고도 하는 쌍대성(duality)의 일반적인 정의를 고려한다. 이 정의는 프라이멀 코드의 벡터와 듀얼 코드의 벡터 사이에서 직교성에 대한 어떠한 제약도 규정하지 않는다. 유일한 제약은 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 행렬이 가역적이라는 것이다.
본 발명은 특히 k 소스 데이터(또한 심벌 또는 정보 비트라고도 한다)를 포함하는 길이 n의 에러 정정 블록 코드의 소프트 결정 디코딩의 문제에 대한 솔루션을 제공한다. 특히, 이는 이러한 파라미터 n 및 k에 대하여 큰 최소 거리를 갖는 에러 정정 코드의 최적 디코딩을 위한 신규의 기술을 제안한다.
예를 들어, 본 발명은 다음과 같은 효율적인 에러 정정 코드에 상대적인 종래 기술보다 더 나은 성능을 제공하는 디코딩 기술을 제안한다: (24, 12, 8) 골레이(Golay) 코드, (48, 24, 12) 코드, 리드-뮐러(Reed-Muller)(RM) 코드와 같은 전통적인 대수 코드; 터보 코드; LDPC 코드 등.
도 1을 참조하면, 본 발명에 따른 바이너리 인코더 및/또는 디코더에 의해 구현되는 주요 단계를 제공한다. 이는 본 발명이 데이터를 인코딩하는 것과 데이터를 디코딩하는 것 모두에 대하여 사용되는 간단한 예이다. 물론, 전통적인 디코딩 알고리즘으로 제안된 인코딩 알고리즘을 이용하는 것 또는 전통적인 인코딩 알고리즘으로 제안된 디코딩 알고리즘을 이용하는 것이 가능하다. 후자의 경우에, 인코더를 좌우하는 유일한 제약은 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 행렬이 가역적이어야 한다는 것이다.
따라서, 도 1에 도시된 실시예에서, 본 발명에 따른 인코더는, 패킷 또는 연속 스트림 형태의 소스 데이터(S)를 입력받고 소스 데이터(S) 및 리던던시 데이터(R)를 포함하는 인코딩된 데이터를 출력한다. 인코딩된 데이터는 전송 채널에 의해 이송되거나 매체에 저장될 수 있고, 그 다음 본 발명에 따른 디코더에 의해 디코딩될 수 있다.
이러한 디코더는 가능성 있게는 에러를 갖는 소스 데이터(S)와 리던던시 데이터(R)를 포함하는 인코딩된 데이터를 입력받고, 소스 데이터에 대한 예측(
Figure 112014044817913-pct00022
)을 전달한다.
더욱 구체적으로는, 인코더는,
- 체계적인 형태로 단위 행렬(identity matrix) 및 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬(generating matrix)을 구현하는, 프라이멀 에러 정정 코드(CP)라 불리는 에러 정정 코드; 및
- 프라이멀 에러 정정 코드에 듀얼이고 듀얼 에러 정정 코드(CD)라 불리는 코드
를 동시에 구현하는 인코딩 단계(11)를 구현한다.
동일한 방식으로, 디코더는 프라이멀 에러 정정 코드(CP)와 듀얼 에러 정정 코드(CD)를 동시에 구현하는 디코딩 단계(12)를 구현한다.
인코딩 단계(11) 및 디코딩 단계(12)가 모두 프라이멀 에러 정정 코드(CP) 및 듀얼 에러 정정 코드(CD)를 사용한다는 것이 주목될 수 있다. 따라서, 인코더 및 디코더는 리소스를 공유할 수 있으며, 이에 따라 하드웨어 및 소비 에너지의 측면에서 인코딩 및 디코딩의 복잡성을 감소시킬 수 있다.
2. 프라이멀 - 듀얼 태너 그래프
본 발명에 따르면, 인코딩 단계(11) 및/또는 디코딩 단계(12)는, 프라이멀 그래프라 불리는 프라이멀 코드(CP)에 대응하는 태너 그래프와 듀얼 그래프라 불리는 듀얼 코드(CD)에 대응하는 태너 그래프를 중첩하여 획득된 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프를 구현한다.
본 발명에 따른 듀얼 코드에 대응하는 태너 그래프는 상이한 방식으로 획득될 수 있다.
제1 예에서, 듀얼 태너 그래프는 균등형 제약(equality type constraint)을 모듈로-2 부가형 제약(modulo-2 addition type constraint)로 대체하고 모듈로-2 부가형 제약을 균등형 제약으로 대체하여 프라이멀 태너 그래프로부터 구축된다.
제2 예에서, 듀얼 태너 그래프는 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 행렬의 역행렬(P-1로 표시됨)로부터 직접 구축된다. 이 역행렬은 사실상 소스 데이터를 리던던시 데이터로부터 표현하는 것을 가능하게 한다.
이하, 가역인 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 행렬(P)을 갖는 확장된 (8, 4, 4) 해밍 코드와 (12, 6) 코드에 대하여 이러한 프라이멀-듀얼 그래프를 구축하는 2가지 예를 설명한다. 이러한 2개의 코드는 1/2의 레이트를 가지지만, 전술한 바와 같이,
- 프라이멀-듀얼 그래프에서 2개의(또는 그 이상의) 리던던시 데이터에 연결된 2개의 균등 제약(및 2개의 모듈로-2 부가 제약)의 출력에서 균등 제약(및 모듈로-2 부가 제약)을 부가하여, 의사 랜덤(quasi-random) 초기 에러 정정 코드를 가역인 스위칭 행렬(P)과 함께 고려하고 열(column)을 스위칭 행렬(P)에 더하는 것;
- 프라이멀-듀얼 그래프에서 2개의(또는 그 이상의) 소스 데이터에 연결된 2개의 균등 제약(및 2개의 모듈로-2 부가 제약)의 출력에서 균등 제약(및 모듈로-2 부가 제약)을 부가하여, 의사 난수 초기 에러 정정 코드를 가역인 스위칭 행렬(P)과 함께 고려하고 행(row)을 스위칭 행렬(P)에 더하는 것
에 의해 각각 1/2보다 더 크거나 또는 1/2보다 더 작은 레이트를 갖는 코드를 디코딩하는 것도 가능하다.
물론, 본 발명은 골레이 코드, 리드-뮐러 코드, 터보 코드, LDPC 코드 등과 같은 다른 코드를 디코딩하는데 사용될 수 있다.
A) 제1 예: 확장된 (8, 4, 4) 해밍 코드
이하, 확장된 해밍 코드(n = 8, k =4, dmin = 4)의 프라이멀 및 듀얼 그래프로부터 획득된 프라이멀-듀얼 그래프의 구축을 제공한다.
이러한 코드는, 체계적인 형태로, 예를 들어 다음과 같은, 단위 행렬과 가역인 소스 데이터로부터 리던던시 데이터로 스위칭하기 위한 가역인 행렬(P)을 포함하는 생성 행렬(G)을 구현한다:
Figure 112014044817913-pct00023

이는 스위칭 행렬(P)가 그 전치 행렬과 동일하고(P = Ptr), 따라서, 스위칭 행렬(P)가 자신의 역행렬과 동일할 때(P -1 = Ptr) PPtr = Id이다. 이 예에서, (8, 4, 4) 해밍 코드는 셀프 듀얼(self-dual)이 있다.
이 예는, (x0, x1, x2, x3)으로 표시된 4개의 정보 비트의 형태를 취하는 소스 데이터와, (r0, r1, r2, r3)으로 표시된 4개의 정보 비트의 형태를 취하는 리던던시 데이터를 고려한다.
전통적으로, 정보 비트로부터 리던던시 데이터를 계산하기 위한 대수적 관계는 도 2a에 도시된 바와 같이 프라이멀 (8, 4, 4) 해밍 코드에 대응하는 태너 그래프로 표현될 수 있다.
프라이멀 그래프라 불리는 이러한 그래프는 정보 비트에 대응하는 입력 변수와 리던던시 비트에 대응하는 출력 변수를 포함하며, 리던던시 비트는 제약(constraint) 및 변경(permutation)을 이용하여 정보 비트에 관련된다.
이러한 제약은 2가지 종류를 가질 수 있다:
- 이 제약에 연결된 변수의 반복에 대응하는, 부호 "="로 표현되는 균등형 제약;
- "배타적 논리합"형 논리 제약에 대응하는, 부호 "+"로 표현되는 모듈로-2 부가형 제약.
다른 말로 하면, 제약과 변형은 다음과 같은 대수적 관계의 표현을 가능하게 한다:
r0 = x1 + x2 + x3;
r1 = x0 + x2 + x3;
r2 = x0 + x1 + x3; 및
r3 = x0 + x1 + x2.
(8, 4, 4) 해밍 코드가 셀프 듀얼이기 때문에, 스위칭 행렬(P)는 자신의 역행렬과 동일하며, (8, 4, 4) 해밍 코드의 듀얼 코드에 대응하는 태너 그래프를 획득하기 위하여, 균등형 제약을 모듈러-2 부가형 제약으로 그리고 모듈러-2 부가형 제약을 균등형 제약으로 대체하기에 충분하다. 따라서, 구현된 변형은 2개의 프라이멀 및 듀얼 그래프 사이에 동일하다. 그러므로, 하드웨어 리소스에 대하여, 2개의 동일한 인터리버(interleaver)가 이 예에 따라 사용된다.
따라서, 도 2b는 획득된 듀얼 그래프를 도시하며, 정보 비트에 대응하는 입력 변수와 리던던시 비트에 대응하는 출력 변수를 포함한다.
본 발명에 따르면, 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프가 정의된다. 이 그래프는 프라이멀 코드와 듀얼 코드를 동시에 고려하는 것을 가능하게 한다.
이 목적으로, 도 2a에 도시된 프라이멀 그래프와, 도 2b에 도시된 듀얼 그래프는 중첩되어 도 2c에 도시된 프라이멀-듀얼 그래프를 획득한다.
이러한 중첩은 프라이멀 그래프의 입력 변수(x0, x1, x2, x3)를 동일한 소스 데이터에 대응하는 듀얼 그래프의 입력 변수(x0, x1, x2, x3)와 2×2 연결하는 것과, 프라이멀 그래프의 출력 변수(r0, r1, r2, r3)를 동일한 리던던시 데이터에 대응하는 듀얼 그래프의 출력 변수(r0, r1, r2, r3)와 2×2 연결하는 것을 포함한다.
다른 말로 하면, 0 내지 3 범위의 정수로서의 i에 대하여 프라이멀 그래프의 정보 비트 xi는 듀얼 그래프의 정보 비트 xi와 연결되고, 0 내지 3 범위의 정수로서의 i에 대하여 프라이멀 그래프의 리던던시 비트 ri는 듀얼 그래프의 리던던시 비트 ri와 연결된다.
따라서, 프라이멀-듀얼 그래프의 각각의 입력 변수 xi와 각각의 출력 변수 ri는 균등형 제약 및 모듈로-2 부가형 제약을 포함하는 제약 쌍에 연결된다.
도 2c에 도시된 예에 따라, 각각,
- (정보 비트 xi 타입 또는 리던던시 비트 ri 타입의) 입력 또는 출력 변수; 및
- 6개의 내부 변수(예를 들어, 제약 쌍(210)에 대하여 v1, v2, v3, v1', v2', v3'라 표시하고, vk로 표시된 변수는 균등형 제약으로부터 유래하고, vk'로 표시된 변수는 모듈로-2 부가형 제약으로부터 유래한다)
에 연결된, 도면에서 프레임에 끼워진 8개의 제약 쌍을 획득한다.
입력 변수(x0, x1, x2, x3)에 연결된 4개의 제약 쌍(210, 211, 212, 213)은, 인코더-디코더의 내부 상태의 4×3 = 12 쌍의 변경 또는 인터리버를 이용하여 출력 변수(r0, r1, r2, r3)에 연결된 4개의 제약 쌍(220, 221, 222, 223)에 연결된다.
각각의 제양 쌍 및 그 연결은 그래프 이론에서 트리인 것으로, 즉 루프 구조를 가지지 않는 것으로 고려될 수 있다.
B) 제1 예: 코드 (12, 6)
이하, (12, 6) 코드의 프라이멀 및 듀얼 그래프로부터 획득된 본 발명에 따른 프라이멀-듀얼 그래프의 구축에 대한 제2 예를 제공한다.
여기에서의 설명은 스위칭 행렬(P)가 단순히 가역적인 더욱 일반적인 경우를 참조한다.
이러한 코드는, 체계적인 형태로, 다음과 같이, 단위 행렬과 가역인 소스 데이터로부터 리던던시 데이터로 스위칭하기 위한 가역인 행렬(P)을 포함하는 생성 행렬(G)을 구현한다:
Figure 112014044817913-pct00024

이 예에서, (x0, x1, x2, x3, x4, x5)로 표시된 6개의 정보 비트의 형태를 취하는 소스 데이터와, (r0, r1, r2, r3, r4, r5)로 표시된 6개의 정보 비트의 형태를 취하는 리던던시 데이터를 고려한다.
전통적으로, 정보 비트로부터 리던던시 데이터를 계산하기 위한 대수적 관계는 도 3a에 도시된 바와 같이 프라이멀 (12, 6) 코드에 대응하는 태너 그래프로 표현될 수 있다.
제1 예와의 관계에서 나타낸 바와 같이, 이러한 프라이멀 그래프는 정보 비트에 대응하는 입력 변수와 리던던시 비트에 대응하는 출력 변수를 포함하고, 리던던시 비트는 제약(균등형 또는 모듈로-2 부가형 제약) 및 변경을 이용하여 정보 비트에 연결된다.
스위칭 행렬(P)이 가역적인 것으로 고려하면, (12, 6) 코드의 듀얼에 대응하는 역 스위칭 행렬(P-1) 및 태너 그래프를 결정하는 것이 가능하다. 따라서, 도 3b는 획득된 듀얼 그래프를 도시하며, 정보 비트에 대응하는 입력 변수와 리던던시 비트에 대응하는 출력 변수를 포함한다.
(12, 6)가 셀프 듀얼이 아니기 때문에, 그 스위칭 행렬(P)은 자신의 역행렬과 동일하지 않으며, 획득된 프라이멀 및 듀얼 그래프는 대칭적이지 않다는 것이 주목될 수 있다. 따라서, 하드웨어 리소스에 관하여, 이 예는 2개의 개별 인터리버를 사용한다.
본 발명에 따르면, 그리고 제1 예를 참조하여 설명된 바와 같이, 프라이멀 코드와 듀얼 코드를 동시에 고려하는데 사용되는, 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프를 정의한다. 이 목적으로, 도 3a에 도시된 프라이멀 그래프와 도 3b에 도시된 듀얼 그래프는 중첩되어 도 3c에 도시된 프라이멀-듀얼 그래프를 획득한다.
이러한 중첩은 프라이멀 그래프의 입력 변수(x0, x1, x2, x3, x4, x5)를 동일한 소스 데이터에 대응하는 듀얼 그래프의 입력 변수(x0, x1, x2, x3, x4, x5)와 2×2 연결하는 것과, 프라이멀 그래프의 출력 변수(r0, r1, r2, r3, r4, r5)를 동일한 리던던시 데이터에 대응하는 듀얼 그래프의 출력 변수(r0, r1, r2, r3, r4, r5)와 2×2 연결하는 것을 포함한다.
다른 말로 하면, 0 내지 5 범위의 정수로서의 i에 대하여 프라이멀 그래프의 정보 비트 xi는 듀얼 그래프의 정보 비트 xi와 연결되고, 0 내지 5 범위의 정수로서의 i에 대하여 프라이멀 그래프의 리던던시 비트 ri는 듀얼 그래프의 리던던시 비트 ri와 연결된다. 따라서, 프라이멀-듀얼 그래프의 각각의 입력 변수 xi와 각각의 출력 변수 ri는 균등형 제약 및 모듈로-2 부가형 제약을 포함하는 제약 쌍에 연결된다.
도 3c에 도시된 예에 따라, 각각,
- (정보 비트 xi 타입 또는 리던던시 비트 ri 타입의) 입력 또는 출력 변수; 및
- 6개의 내부 변수
에 연결된, 도면에서 프레임에 끼워진 12개의 제약 쌍을 획득한다.
입력 변수 (x0, x1, x2, x3, x4, x5)에 연결된 6개의 제약 쌍(310, 311, 312, 313, 314, 315)은, 변경 또는 인터리버를 이용하여 출력 변수(r0, r1, r2, r3, r4, r5)에 연결된 6개의 제약 쌍(320, 321, 322, 323, 324, 325)에 연결된다. 또 한편, 각각의 제약 쌍 및 그 연결은 그래프 이론에서 트리인 것으로, 즉 루프 구조를 가지지 않는 것으로 고려될 수 있다.
3. 균등형 또는 모듈로-2 부가형 제약에 연결된 변수의 결정
이하, 본 발명의 특정 일 양태에 따라 제약 쌍과 관련된 프라이멀-듀얼 그래프의 내부 변수를 결정하기 위하여 구현되는 단계들을 설명한다. 물론, 다른 기술 및 특히 전통적인 기술이 이러한 내부 변수를 결정하는데 사용될 수 있다.
초기 순간 t = 0에서 vi(0)로서 표시되는 제약 쌍에 연결된 입력 또는 출력 변수는 우도비(likelihood ratio) 로그(logarithm)에 대하여 동차인 것(homogeneous)으로 고려되며 전통적으로 다음에 의해 정의된다:
Figure 112014044817913-pct00025

따라서, 내부 변수는 우도비 로그에 대하여 동차이다.
예로서, 먼저 입력 또는 출력 변수(정보 비트 xi 또는 리던던시 비트 ri 타입의, 더욱 일반적으로는 vi로 나타내는)에 연결되고, 다음으로 6개의 내부 변수에 연결되는, (8, 4, 4) 해밍 코드의 프라이멀-듀얼 그래프의 제약 쌍을 고려한다. 이러한 제약 쌍에 대한 예는 도 4에 도시된다.
제약 쌍(41)의 균등형 제약에 연결된 변수의 병합(초기 순간에서의 입력 변수 및 출력 변수와, 내부 변수의 병합)을 수행하기 위하여, 초기 순간의 입력 또는 출력 변수에, 이 제약에 연결된 내부 변수의 값의 평균을 더하는 것이 가능하다.
따라서, 초기 순간 t = 0에서의 제약 쌍(41)의 입력 또는 출력 변수 v0를 고려하면, 다음 순간 t = 1에서의(즉, 다음 반복에서의) 이 변수의 새로운 값은 다음의 형태로 표현될 수 있다:
Figure 112014044817913-pct00026

따라서, 덧셈은 균등형 제약에 연결된 변수의 값을 결정하기 위하여 실수 도메인(real domain)에서 이루어진다.
제약 쌍(41)의 모듈로-2 부가형 제약에 연결된 변수의 병합(초기 순간에서의 입력 변수 및 출력 변수와, 내부 변수의 병합)을 수행하기 위하여, 덧셈의 단순한 연산의 사용을 가능하게 하도록 실수 필드가 아닌 복소수 필드에서 동작하는 것이 본 발명의 특정 일 양태에 따라 제안된다.
따라서, 본 발명의 이 양태에서, 비선형 함수 NL[x]가, 복소수 도메인에서 더해지기 전에, 모듈로-2 부가 제약에 연결되는 모든 변수에 적용된다.
더욱 구체적으로는 함수 NL은 w0로서 표시되는 복소수 도메인에서의 내부 변수를 획득하기 위하여 실수 도메인에서 t = 0에서의 제약 쌍(41)의 입력 또는 출력 변수(v0)에 추가되고, 함수 NL은 복소수 도메인에서 3개의 내부 변수 w1, w2, w3을 획득하기 위하여 실수 필드에서 3개의 내부 변수 v1', v2', v3'에 적용된다.
그 다음, 연산은 실수 도메인으로 통과되어, 다음 순간 t = 1에.서의 변수 v0의 새로운 값을 획득한다. 따라서, 다음을 획득한다:
Figure 112014044817913-pct00027

따라서, 모듈로-2 부가형 제약에 연결된 변수의 실수 도메인으로부터 복소수 도메인으로의 변환이 이루어지며, 복소수 도메인에서의 덧셈이 이루어지며, 그 다음, 모듈로-2 부가형 제약에 연결된 변수의 값을 결정하기 위하여 덧셈의 결과에 대한 복소수 도메인으로부터 실수수 도메인으로의 변환이 이루어진다.
특히, 비선형 함수 NL은 다음의 형태로 표현될 수 있다:
x ≠ 0이면,
Figure 112014044817913-pct00028
x = 0이면, NL[x] = 0.
도 5a 및 5b는 함수 NL의 실수부
Figure 112014044817913-pct00029
와, 함수 NL의 허수부의 부호의 변형
Figure 112014044817913-pct00030
을 각각 도시한다.
더욱 구체적으로는, x ∈ ] -∞, +∞ [의 변형 필드가 주어지면, 비선형 함수 NL의 적용 결과는 엄격하게 복소수 필드
Figure 112014044817913-pct00031
에서의 값을 가지며, 그 실수부는 {0, +Iπ}의 2개의 값을 취할 수 있고, I는 순허수이다. 또한, 초기화의 목적을 위하여, 값 NL[0] = 0이 도입된다.
계산을 간단히 하기 위하여, 이러한 순허수부를 부호로서 고려하고 실시부의 덧셈 결과에 부호의 곱을 간단히 곱하는 것이 가능하다. 따라서, "듀얼 도메인"에서의 이러한 덧셈은 복소수 필드
Figure 112014044817913-pct00032
에서의 덧셈에 균등하다. 이것은 특히 소프트 결정 디코더에 대하여 특별히 독창적이고 혁신적이다.
비선형 함수 NL은, LUT(look-up table)이라고도 하는, 예를 들어, EPROM(erasable programmable read-only memory)과 같은 프로그래머블 메모리를 이용하여 거의 복잡하지 않은 방법에 의한 정량화된 수로 획득될 수 있다.
물론, 다른 상황에서 균등형 제약 또는 모듈로-2 부가형 제약에 연결된 변수의 값을 결정하기 위하여, 특히 제약 쌍에 연결되지 않은 변수의 값을 결정하기 위하여, 유사한 연산이 구현될 수 있다. 유사하게, 전술한 수식을 변형하여 제약에 연결된 내부 함수가 어떠한 수를 가지더라도 유사한 연산이 사용될 수 있다.
4. 변수의 전파( propagation )
이하, 프라이멀 에러 정정 코드 및 그 듀얼을 동시에 이용함으로써 수신된 인코딩된 데이터를 디코딩하기 위하여 구현되는 상이한 단계들을 제공한다.
이러한 디코더를 구축하기 위하여, 위에서 정의된 프라이멀-듀얼 그래프 및 특히 도 2c 및 3c에 도시된 예를 고려한다.
더욱 구체적으로는, 디코딩은,
- 모듈로-2 부가형 제약에 연결된 프라이멀-듀얼 그래프의 내부 변수를 업데이트하기 위하여 균등형 제약에 연결된 프라이멀-듀얼 그래프의 내부 변수가 전파되는 순방향 전파 페이즈; 및
- 균등형 제약에 연결된 프라이멀-듀얼 그래프의 내부 변수를 업데이트하기 위하여 모듈로-2 부가형 제약에 연결된 프라이멀-듀얼 그래프의 내부 변수가 전파되는 역방향 전파 페이즈
를 포함하는 적어도 하나의 디코딩 반복을 구현한다.
반복은 각각의 제약 쌍(즉, (8, 4, 4) 해밍 코드에 대한 8쌍, (12, 6) 코드에 대한 12쌍, (24, 12, 8) 골레이 코드에 대한 4쌍 등)에 대하여 순방향 및 역방향 전파를 모두 구현한다.
초기화에서, 프라이멀-듀얼 그래프의 입력 변수, 출력 변수 및 내부 변수는 0으로 설정된다. 그 다음, 각각의 트리는 일반적으로 복조기로부터 유래하는 인코딩된 데이터를 수신하고, 이 데이터는 소스 데이터(정보 비트) 또는 리던던시 데이터(리던던시 비트)에 대응한다.
이하, 동일한 반복 동안 제약 쌍과 관련된 각각의 기본 트리에 대하여 구현되는 순방향 및 역방향 전파의 페이즈들을 설명한다.
v0(0)은 고려되는 제약 쌍에 연결된 프라이멀-듀얼 그래프의 입력 변수 또는 출력 변수에 할당된 초기값을 나타낸다.
순방향 페이즈는 듀얼 도메인의 우도값(likelihood value) vl'(t+1)를 계산하기 위하여 프라이멀 도메인의 우도값 vl(t)을 전파하는 단계를 포함하고, t는 과정에서의 반복 순서 번호에도 대응하는 개별 시간 인덱스이다.
더욱 구체적으로는, 제1 단계에서, i ∈ {1, ... d}에 대하여
Figure 112014044817913-pct00033
가 되도록 실수 도메인에서 덧셈을 구현하여, 고려되는 제약에 연결된 입력 또는 출력값에 할당된 순방향 우도값 v0 F(t)가 결정되고, d는 고려되는 제약 쌍의 균등 제약에 관련되는 제약의 정도이고, vi(t)는 고려되는 제약 쌍의 균등 쌍에 연결된 내부 변수이다.
제2 단계 동안, 본 발명은, 전술한 문단에서 상세히 설명한 바와 같이 비선형 함수 NL을 적용하는데 있어서, 변환된 순방향 우도값이라 불리는, 실수 도메인으로부터 복소수 도메인으로의 변환 이후에 모듈로-2 부가형 제약에 연결된 변수에 할당된 우도값을 판단한다.
따라서, 고려되는 제약 쌍의 입력 또는 출력 변수는, 변환 후에,
Figure 112014044817913-pct00034
Figure 112014044817913-pct00035
로 표현되며, 변환 후의 내부 변수는
Figure 112014044817913-pct00036
Figure 112014044817913-pct00037
로 표현되며, l ∈ {1, ... d}이고, d는 고려되는 제약 쌍의 모듈로-2 부가 제약에 관련되는 제약의 정도이고, vl'(t)는 고려되는 제약 쌍의 모듈로-2 부가 제약에 연결된 내부 변수이다.
값 wl F(t)는 허수부가 값 {0, +Iπ}를 취할 수 있는 복소수의 실시부에 대응하지만, 이러한 값들의 지수를 취하는데 있어서, 부호 sl F(t) ∈ {+1, -1}로 값을 획득하며, 이는 계산을 단순화한다는 것이 주목되어야 한다.
제3 단계 동안,
Figure 112014044817913-pct00038
Figure 112014044817913-pct00039
가 되도록 복수소 도메인에서의 덧셈으로부터, 변환된 순방향 우도값을 업데이트하는데 있어서, 새로운 값들 wl F(t + 1) 및 sl F(t + 1)이 결정된다.
제4 단계에서,
Figure 112014044817913-pct00040
가 되도록, 업데이트되고 변환된 순방향 우도값의 복소수 도메인으로부터 실수 도메인으로의 변환으로부터, 모듈로-2 부가형 제약에 연결된 내부 변수 vl'(t+1)의 값을 업데이트하기 위하여, 비선형 함수 NL이 다시 적용된다.
그 부분을 위한 역방향 전파 페이즈는 프라이멀 도메인의 vl(t + 1)의 우도를 계산하기 위하여 듀얼 도메인으로부터 우도값 vl'(t)를 전파하는 것을 포함한다.
더욱 구체적으로는, 제1 단계 동안, 고려되는 제약 쌍의 모듈로-2 부가형 제약에 연결된 변수에 할당된 우도값은, 전술한 문단에서 상세히 설명한 바와 같이, 비선형 함수 NL을 적용함으로써, 실수 도메인으로부터 복소수 도메인으로의 변환 후에 결정된다(이 값들은 변환된 역방향 우도값이라 불린다).
그 다음, 변환 후의 내부값은 l ∈ {1, ... d}에 대하여,
Figure 112014044817913-pct00041
Figure 112014044817913-pct00042
로 표현되며, d는 고려되는 제약 쌍의 모듈로-2 부가 제약에 관련되는 제약의 정도이다.
변환 후의 고려되는 제약 쌍의 입력 또는 출력 변수는 다음의 형태로 그 부분에 대하여 표현된다:
Figure 112014044817913-pct00043
Figure 112014044817913-pct00044
.
제2 단계 동안, 역방향 우도값 v0 B(t)가 결정된다. 이 값은 비선형 함수 NL을 다시 적용하고, 변환 후에 입력 또는 출력 변수의 복소수 도메인으로부터 실수 도메인으로의 변환을 수행하여 고려되는 제약 쌍의 입력 또는 출력 변수에 할당된다(
Figure 112014044817913-pct00045
).
제3 단계에서, l ∈ {1, ... d}에 대하여,
Figure 112014044817913-pct00046
가 되도록 실수 도메인에서의 추가로부터 균등형 제약에 연결된 내부 변수의 값을 업데이트하여 vl(t + 1)가 결정되고, d는 고려되는 제약 쌍의 균등 제약과 관련된 제약의 정도이다.
마지막으로, 제4 단계에서, 고려되는 제약 쌍의 입력 또는 출력 변수가 업데이트된다:
Figure 112014044817913-pct00047
.
이미 나타낸 바와 같이, 이러한 2개의 순방향 및 역방향 전파 페이즈는 디코딩 반복 내에서 각각의 제약 쌍에 대하여 구현된다.
디코딩의 여러 번의 반복은 미리 정의된 횟수의 반복이 도달되거나 예를 들어 내부 변수의 수렴이 있을 때까지 구현될 수 있다.
더욱 구체적으로는, 프라이멀-듀얼 그래프의 입력값에 연결된 이러한 제약 쌍에 대하여 계산이 이루어지면(즉, 제1 반복에 대하여 정보 비트의 초기값에 연결된 트리에 대한 계산이 이루어지면), 순방향 전파 페이즈 동안, 새로운 쌍의 프라이멀 및 듀얼 값 (vl(t + 1), vl'(t + 1))이 프라이멀-듀얼 그래프의 출력 변수(즉, 제1 반복에 대하여 리던던시 비트의 초기값에 연결된 트리)에 연결된 제약 쌍에 전송된다. 이것은, 균등 및 모듈로-2 부가형 제약 측의 가역성에 주목하여, 이러한 트리에서 새로운 세트의 계산 수행을 가능하게 한다. 이것은 역방향 전파 페이즈 동안 (vl'(t + 1), vl(t + 1))와 같은 듀얼 및 프라이멀 값의 변경에 이른다.
제안된 디코딩 알고리즘은 코드의 길이에 관계없이 매우 신속하게(수 회 반복 내에서) 수신된 워드의 가장 가까운 코드 워드를 향하여 수렴한다. 예를 들어, 종래 기술에 따르면 LDPC 코드를 디코딩하기 위한 알고리즘의 수렴을 획득하는데 20 내지 50회의 반복이 종종 필요한 반면, 본 발명은 (예를 들어, 대략 5 또는 6회의 반복의) 단지 수 회 반복 내에서의 빠른 수렴을 가능하게 한다.
따라서, 구간 [-4, +4]의 출력에서 가능한 값을 제한하는 ±4와 같은 충분히 큰 값에서의 포화는 알고리즘이 안정적이고 강력하게 되도록 할 수 있다. 알고리즘은 이러한 포화값을 향해 수렴한다.
또 한편, 리던던시 비트를 0으로 강제함으로써 전술한 디코딩 기술을 신규한 인코딩 기술로서 사용하는 것이 가능하다. 따라서, 소스 데이터에 대응하는 입력 변수와 0 데이터에 대응하는 출력 변수를 포함하는, 본 발명에 따라 정의된 프라이멀-듀얼 그래프를 고려한다면, 본 명세서에서 전술된 순방향 및 역방향 전파 페이즈의 적어도 한 번의 반복을 구현한 후에, 출력 변수에서 리던던시 데이터를 획득한다.
5. 인코더 및 디코더의 구조
마지막으로, 도 6a 및 6b를 참조하여, 본 발명의 특정 일 실시예에 따른 인코더 및 디코더의 간략화된 구조를 제공한다.
인코더는 버퍼 메모리를 포함하는 메모리(61)와, 예를 들어, 마이크로프로세서(μP)가 구비되고 컴퓨터 프로그램(63)에 의해 구동되는 처리 유닛(62)을 포함하여, 본 발명의 일 실시예에 따른 인코딩 방법을 구현한다.
초기에, 컴퓨터 프로그램(63)의 코드 명령어는 예를 들어 RAM으로 로딩되고, 그 다음 처리 유닛(62)의 프로세서에 의해 실행된다. 처리 유닛(62)은 소스 데이터(S)를 입력받고, 소스 데이터와 리던던시 데이터를 포함하는 인코딩된 데이터를 전달한다. 처리 유닛(62)의 마이크로프로세서는 소스 데이터를 인코딩하기 위하여 컴퓨터 프로그램(63)의 명령어에 따라 전술한 인코딩 방법의 단계들을 구현한다. 이 목적으로, 인코더는, 버퍼 메모리(61)에 더하여, 에러 정정 코드 및 그 듀얼 코드를 동시에 구현하는 인코딩 모듈을 포함한다. 이 모듈은 처리 유닛(62)의 마이크로프로세서에 의해 구동된다.
디코더는 버퍼 메모리를 포함하는 메모리(64)와, 예를 들어, 마이크로프로세서(μP)가 구비되고 컴퓨터 프로그램(66)에 의해 구동되는 처리 유닛(65)을 포함하여, 본 발명의 일 실시예에 따른 디코딩 방법을 구현한다.
초기에, 컴퓨터 프로그램(66)의 코드 명령어는 예를 들어 RAM으로 로딩되고, 그 다음 처리 유닛(65)의 프로세서에 의해 실행된다. 처리 유닛(65)은 소스 데이터와 리던던시 데이터를 포함하는 인코딩된 데이터를 입력받고, 소스 데이터의 예측(
Figure 112014044817913-pct00048
)을 전달한다. 처리 유닛(65)의 마이크로프로세서는 인코딩된 데이터를 디코딩하기 위하여 컴퓨터 프로그램(66)의 명령어에 따라 전술한 디코딩 방법의 단계들을 구현한다. 이 목적으로, 디코더는, 버퍼 메모리(64)에 더하여, 에러 정정 코드 및 그 듀얼 코드를 동시에 구현하는 디코딩 모듈을 포함한다. 이 모듈은 처리 유닛(65)의 마이크로프로세서에 의해 구동된다.

Claims (14)

  1. 소스 데이터(S)와 리던던시 데이터(R)를 포함하는 인코딩된 데이터를 디코딩하는 디코딩 방법에 있어서,
    상기 리던던시 데이터(R)는, 인코딩될 때, 체계적인 형태(systematic form)로, 단위 행렬 및 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬에 의해 표현될 수 있는 에러 정정 코드의 상기 소스 데이터(S)에의 적용에 의해 획득되고,
    상기 디코딩 방법은, 프라이멀 그래프라 불리는 프라이멀(primal) 에러 정정 코드에 대응하는 태너 그래프와 듀얼 그래프라 불리는 듀얼 에러 정정 코드에 대응하는 태너 그래프의 중첩에 의해 획득되는 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프를 이용하여, 상기 프라이멀 에러 정정 코드라 불리는 상기 에러 정정 코드와, 상기 프라이멀 에러 정정 코드의 듀얼(dual) 코드이고 상기 듀얼 에러 정정 코드라 불리는 코드를 동시에 구현하는 디코딩 단계(12)를 포함하고,
    상기 중첩은, 상기 프라이멀 그래프의 입력 변수(x0, ..., x5)의 각각의 입력 변수를 동일한 소스 데이터에 대응하는 상기 듀얼 그래프의 입력 변수(x0, ..., x5)에 연결하는 것과 상기 프라이멀 그래프의 출력 변수(r0, ..., r5)의 각각의 출력 변수를 동일한 리던던시 데이터에 대응하는 상기 듀얼 그래프의 출력 변수(r0, ..., r5)에 연결하는 것을 포함하는,
    디코딩 방법.
  2. 제1항에 있어서,
    상기 프라이멀-듀얼 그래프의 각각의 입력 또는 출력 변수는 균등형 제약(equality type constraint) 및 모듈로-2 부가형 제약(modulo-2 addition type constraint)을 포함하는 제약 쌍에 연결되고,
    상기 디코딩 방법은,
    - 모듈로-2 부가형 제약에 대하여,
    ○ 상기 모듈로-2 부가형 제약에 연결된 변수의 실수 도메인으로부터 복소수 도메인으로의 변환 단계;
    ○ 복소수 도메인에서의 덧셈 단계;
    ○ 상기 덧셈 단계의 결과의 복소수 도메인으로부터 실수 도메인으로의 변환 단계
    를 구현하고
    - 균등형 제약에 대하여,
    ○ 실수 도메인에서의 덧셈 단계
    를 구현하는, 상기 프라이멀-듀얼 그래프의 적어도 하나의 내부 변수를 결정하는 단계를 포함하는,
    디코딩 방법.
  3. 제2항에 있어서,
    상기 변환 단계들은,
    x ≠ 0이면,
    Figure 112014044817913-pct00049

    x = 0이면, NL[x] = 0
    이 되도록 비선형 함수 NL을 적용하는,
    디코딩 방법.
  4. 제1항에 있어서,
    상기 프라이멀-듀얼 그래프의 각각의 입력 또는 출력 변수는 균등형 제약 및 모듈로-2 부가형 제약을 포함하는 제약 쌍에 연결되고,
    상기 디코딩 방법은,
    - 모듈로-2 부가형 제약에 연결된 상기 프라이멀-듀얼 그래프의 내부 변수를 업데이트하기 위하여 균등형 제약에 연결된 상기 프라이멀-듀얼 그래프의 내부 변수의 전파를 포함하는 순방향 전파 단계(phase); 및
    - 균등형 제약에 연결된 상기 프라이멀-듀얼 그래프의 내부 변수를 업데이트하기 위하여 모듈로-2 부가형 제약에 연결된 상기 프라이멀-듀얼 그래프의 내부 변수의 전파를 포함하는 역방향 전파 단계(phase)
    를 포함하는 적어도 하나의 디코딩 반복을 구현하는,
    디코딩 방법.
  5. 제4항에 있어서,
    상기 순방향 전파 단계는,
    -
    Figure 112018054525532-pct00050
    가 되도록 실수 도메인에서의 덧셈을 구현하여, 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 할당된 순방향 우도값 v0 F(t)를 결정하는 단계;
    - 실수 도메인으로부터 복소수 도메인으로의 변환 후에,
    ○ 변환 후의 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수가
    Figure 112018054525532-pct00051
    Figure 112018054525532-pct00052
    의 형태로 표현되고;
    ○ 변환 후의 내부 변수가, l ∈ {1, ..., d}에 대하여,
    Figure 112018054525532-pct00053
    Figure 112018054525532-pct00054
    로 표현되도록,
    변환된 순방향 우도값으로 불리는 상기 모듈로-2 부가형 제약에 연결된 변수에 할당된 우도값을 결정하는 단계;
    -
    Figure 112018054525532-pct00055
    Figure 112018054525532-pct00056
    가 되도록 복소수 도메인에서 덧셈을 구현하여 상기 변환된 순방향 우도값을 업데이트하는 단계;
    -
    Figure 112018054525532-pct00057
    가 되도록, 업데이트된 상기 변환된 순방향 우도값의 복소수 도메인으로부터 실수 도메인으로의 변환을 구현하여, 상기 모듈로-2 부가형 제약에 연결된 내부 변수의 값을 업데이트하는 단계
    의 서브 단계들을 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 연결된 각각의 제약 쌍에 대하여 구현하고,
    - v0(0)은 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 할당된 초기값이고;
    - vi(t)는 상기 균등형 제약에 연결된 내부 변수이고;
    - vl'(t)는 상기 모듈로-2 부가형 제약에 연결된 내부 변수이고;
    - d는 상기 프라이멀-듀얼 그래프의 제약과 관련된 제약의 정도이고;
    - i ∈ {1, ..., d}, l ∈ {1, ..., d}이고;
    - NL[x]는,
    x ≠ 0이면,
    Figure 112018054525532-pct00058

    x = 0이면, NL[x] = 0
    인 비선형 함수인,
    디코딩 방법.
  6. 제4항에 있어서,
    상기 역방향 전파 단계는,
    - 변환된 역방향 우도값이라 불리는, 실수 도메인으로부터 복소수 도메인으로의 변환 후의 상기 모듈로-2 부가형 제약에 연결된 변수에 할당된 우도값을
    ○ 변환 후의 내부 변수가 l ∈ {1, ... d}에 대하여,
    Figure 112018054525532-pct00059
    Figure 112018054525532-pct00060
    의 형태로 표현되고,
    ○ 변환 후의 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수가
    Figure 112018054525532-pct00061
    Figure 112018054525532-pct00062
    의 형태로 표현되도록
    결정하는 단계;
    -
    Figure 112018054525532-pct00063
    이 되도록 변환 후의 입력 또는 출력 변수의 복소수 도메인으로부터 실수 도메인으로의 변환을 구현하여, 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 할당된 역방향 우도값 v0 B(t)를 결정하는 단계;
    -
    Figure 112018054525532-pct00064
    가 되도록 실수 도메인에서의 덧셈을 구현하여, 상기 균등형 제약에 연결된 내부 변수의 값을 업데이트하는 단계;
    -
    Figure 112018054525532-pct00065
    가 되도록 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수를 업데이트하는 단계
    의 서브 단계들을 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 연결된 각각의 제약 쌍에 대하여 구현하고,
    - v0(0)은 상기 프라이멀-듀얼 그래프의 입력 또는 출력 변수에 할당된 초기값이고;
    - vi(t)는 상기 균등형 제약에 연결된 내부 변수이고;
    - vl'(t)는 상기 모듈로-2 부가형 제약에 연결된 내부 변수이고;
    - d는 상기 프라이멀-듀얼 그래프의 제약과 관련된 제약의 정도이고;
    - i ∈ {1, ..., d}, l ∈ {1, ..., d}이고;
    - NL[x]는,
    x ≠ 0이면,
    Figure 112018054525532-pct00066

    x = 0이면, NL[x] = 0
    인 비선형 함수인,
    디코딩 방법.
  7. 제4항에 있어서,
    상기 프라이멀-듀얼 그래프의 입력 변수, 출력 변수 및 내부 변수를 0으로 초기화하는 예비 단계를 포함하는,
    디코딩 방법.
  8. 제1항에 있어서,
    상기 프라이멀-듀얼 그래프의 적어도 2개의 입력 또는 출력 변수는 균등형 제약 및 모듈로-2 부가형 제약을 포함하는 동일한 제약 쌍에 연결되는,
    디코딩 방법.
  9. 소스 데이터(S)와 리던던시 데이터(R)를 포함하는 인코딩된 데이터를 디코딩하는 디코딩 장치에 있어서,
    상기 리던던시 데이터(R)는, 인코딩될 때, 체계적인 형태(systematic form)로, 단위 행렬 및 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬에 의해 표현될 수 있는 에러 정정 코드의 상기 소스 데이터(S)에의 적용에 의해 획득되고,
    상기 디코딩 장치는, 프라이멀 그래프라 불리는 프라이멀 에러 정정 코드에 대응하는 태너 그래프와 듀얼 그래프라 불리는 듀얼 에러 정정 코드에 대응하는 태너 그래프의 중첩에 의해 획득되는 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프를 이용하여, 상기 프라이멀 에러 정정 코드라 불리는 상기 에러 정정 코드와, 상기 프라이멀 에러 정정 코드의 듀얼 코드이고 상기 듀얼 에러 정정 코드라 불리는 코드를 동시에 구현하는 디코딩 모듈(12)을 포함하고,
    상기 중첩은, 상기 프라이멀 그래프의 입력 변수(x0, ..., x5)의 각각의 입력 변수를 동일한 소스 데이터에 대응하는 상기 듀얼 그래프의 입력 변수(x0, ..., x5)에 연결하는 것과 상기 프라이멀 그래프의 출력 변수(r0, ..., r5)의 각각의 출력 변수를 동일한 리던던시 데이터에 대응하는 상기 듀얼 그래프의 출력 변수(r0, ..., r5)에 연결하는 것을 포함하는,
    디코딩 장치.
  10. 소스 데이터(S)를 인코딩하여 상기 소스 데이터(S)와 리던던시 데이터(R)를 포함하는 인코딩된 데이터를 전달하는 인코딩 방법에 있어서,
    상기 인코딩 방법은,
    - 체계적인 형태(systematic form)로, 단위 행렬 및 상기 소스 데이터로부터 상기 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬에 의해 표현될 수 있는, 프라이멀 에러 정정 코드라 불리는 에러 정정 코드; 및
    - 상기 프라이멀 에러 정정 코드의 듀얼 코드이고, 듀얼 에러 정정 코드라 불리는 코드
    를 동시에 구현하는 인코딩 단계(11)를 포함하고,
    상기 인코딩 단계는, 프라이멀 그래프라 불리는 상기 프라이멀 에러 정정 코드에 대응하는 태너 그래프와 듀얼 그래프라 불리는 상기 듀얼 에러 정정 코드에 대응하는 태너 그래프의 중첩에 의해 획득되는 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프를 구현하고,
    상기 중첩은, 상기 프라이멀 그래프의 입력 변수(x0, ..., x5)의 각각의 입력 변수를 동일한 소스 데이터에 대응하는 상기 듀얼 그래프의 입력 변수(x0, ..., x5)에 연결하는 것과 상기 프라이멀 그래프의 출력 변수(r0, ..., r5)의 각각의 출력 변수를 동일한 리던던시 데이터에 대응하는 상기 듀얼 그래프의 출력 변수(r0, ..., r5)에 연결하는 것을 포함하는,
    인코딩 방법.
  11. 소스 데이터(S)를 인코딩하여 상기 소스 데이터(S)와 리던던시 데이터(R)를 포함하는 인코딩된 데이터를 전달하는 인코딩 장치에 있어서,
    상기 인코딩 장치는,
    - 체계적인 형태(systematic form)로, 단위 행렬 및 상기 소스 데이터로부터 상기 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬에 의해 표현될 수 있는, 프라이멀 에러 정정 코드라 불리는 에러 정정 코드; 및
    - 상기 프라이멀 에러 정정 코드의 듀얼 코드이고, 듀얼 에러 정정 코드라 불리는 코드
    를 동시에 구현하는 인코딩 모듈(11)을 포함하고,
    상기 인코딩 모듈은, 프라이멀 그래프라 불리는 상기 프라이멀 에러 정정 코드에 대응하는 태너 그래프와 듀얼 그래프라 불리는 상기 듀얼 에러 정정 코드에 대응하는 태너 그래프의 중첩에 의해 획득되는 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프를 구현하고,
    상기 중첩은, 상기 프라이멀 그래프의 입력 변수(x0, ..., x5)의 각각의 입력변수를 동일한 소스 데이터에 대응하는 상기 듀얼 그래프의 입력 변수(x0, ..., x5)에 연결하는 것과 상기 프라이멀 그래프의 출력 변수(r0, ..., r5)의 각각의 출력 변수를 동일한 리던던시 데이터에 대응하는 상기 듀얼 그래프의 출력 변수(r0, ..., r5)에 연결하는 것을 포함하는,
    인코딩 장치.
  12. 데이터의 인코딩 및 디코딩 장치에 있어서,
    - 체계적인 형태(systematic form)로, 단위 행렬 및 소스 데이터로부터 리던던시 데이터로의 스위칭을 위한 가역 행렬(P)을 포함하는 생성 행렬에 의해 표현될 수 있는, 프라이멀 에러 정정 코드라 불리는 에러 정정 코드; 및
    - 상기 프라이멀 에러 정정 코드의 듀얼 코드이고, 듀얼 에러 정정 코드라 불리는 코드
    를 동시에 구현하는 인코딩 및 디코딩 모듈을 포함하고,
    상기 인코딩 및 디코딩 모듈은, 프라이멀 그래프라 불리는 상기 프라이멀 에러 정정 코드에 대응하는 태너 그래프와 듀얼 그래프라 불리는 상기 듀얼 에러 정정 코드에 대응하는 태너 그래프의 중첩에 의해 획득되는 프라이멀-듀얼 그래프라 불리는 변형된 태너 그래프를 구현하고,
    상기 중첩은, 상기 프라이멀 그래프의 입력 변수(x0, ..., x5)의 각각의 입력 변수를 동일한 소스 데이터에 대응하는 상기 듀얼 그래프의 입력 변수(x0, ..., x5)에 연결하는 것과 상기 프라이멀 그래프의 출력 변수(r0, ..., r5)의 각각의 출력 변수를 동일한 리던던시 데이터에 대응하는 상기 듀얼 그래프의 출력 변수(r0, ..., r5)에 연결하는 것을 포함하는,
    인코딩 및 디코딩 장치.
  13. 프로세서에 의해 실행될 때, 제1항에 따른 디코딩 방법 또는 제10항에 따른 인코딩 방법을 구현하는 명령어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체.
  14. 삭제
KR1020147012814A 2011-10-14 2012-10-11 에러 정정 코딩 및 디코딩 KR101908389B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1159323A FR2981526A1 (fr) 2011-10-14 2011-10-14 Procede et dispositif de decodage de donnees codees a l'aide d'un code correcteur d'erreurs, procede et dispositif de codage, et programme d'ordinateur correspondants
FR1159323 2011-10-14
PCT/FR2012/052320 WO2013054054A1 (fr) 2011-10-14 2012-10-11 Codage et decodage correcteur d'erreurs

Publications (2)

Publication Number Publication Date
KR20140092834A KR20140092834A (ko) 2014-07-24
KR101908389B1 true KR101908389B1 (ko) 2018-10-17

Family

ID=47116073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147012814A KR101908389B1 (ko) 2011-10-14 2012-10-11 에러 정정 코딩 및 디코딩

Country Status (6)

Country Link
US (1) US9397700B2 (ko)
EP (1) EP2766996B1 (ko)
KR (1) KR101908389B1 (ko)
CN (1) CN103959656B (ko)
FR (1) FR2981526A1 (ko)
WO (1) WO2013054054A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10804938B2 (en) * 2018-09-25 2020-10-13 Western Digital Technologies, Inc. Decoding data using decoders and neural networks
US10979072B2 (en) * 2019-03-19 2021-04-13 Western Digital Technologies, Inc. Punctured bit estimation and bit error rate estimation
CN112054809A (zh) * 2020-08-28 2020-12-08 杭州华澜微电子股份有限公司 改进的tpc纠错算法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101119302B1 (ko) * 2007-04-20 2012-03-19 재단법인서울대학교산학협력재단 통신 시스템에서 저밀도 패리티 검사 부호 부호화 장치 및방법
CN101299612B (zh) * 2008-06-10 2013-04-24 上海瀚讯无线技术有限公司 一种快速树图分解方法

Also Published As

Publication number Publication date
US9397700B2 (en) 2016-07-19
FR2981526A1 (fr) 2013-04-19
CN103959656B (zh) 2017-03-15
EP2766996A1 (fr) 2014-08-20
EP2766996B1 (fr) 2016-07-20
WO2013054054A1 (fr) 2013-04-18
US20140281792A1 (en) 2014-09-18
KR20140092834A (ko) 2014-07-24
CN103959656A (zh) 2014-07-30

Similar Documents

Publication Publication Date Title
US10630316B2 (en) Bit flipping algorithm for providing soft information during hard decision hard decoding
KR100502609B1 (ko) Ldpc 코드를 이용한 부호화기 및 부호화 방법
JP5976960B2 (ja) 高並列性、低エラーフロア、および簡単な符号化原理を有するリフトされたldpc符号のための設計
US8108760B2 (en) Decoding of linear codes with parity check matrix
JP5506878B2 (ja) 低密度パリティ検査符号のパリティ検査行列生成方法
JP5705106B2 (ja) ユークリッド空間リード−マラー符号の軟判定復号を実行する方法
CN101478314B (zh) 一种里德-所罗门编码译码器及其译码的方法
EP3602794B1 (en) Check bit concatenated polar codes
CN109586732B (zh) 中短码ldpc编解码系统和方法
US20050149845A1 (en) Method of constructing QC-LDPC codes using qth-order power residue
EP3443677B1 (en) Communication device and communication method using polar codes
CN109787641B (zh) staircase码的解码方法、装置及存储介质
Khodaiemehr et al. Construction and encoding of QC-LDPC codes using group rings
KR101908389B1 (ko) 에러 정정 코딩 및 디코딩
US8930790B1 (en) Method and apparatus for identifying selected values from among a set of values
KR20100008849A (ko) 통신 시스템에서 순환중복검사 방법 및 장치
CN114731166A (zh) 空间耦合fec编码方法和使用gel码的分量码的设备
JP2009201084A (ja) 符号化器及び送信装置
Heloir et al. Stochastic chase decoder for reed-solomon codes
JP5523064B2 (ja) 復号装置及び方法
JP4202161B2 (ja) 符号化装置および復号装置
KR101267756B1 (ko) 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
KR101268061B1 (ko) 다상-누산 코드를 이용한 부호화 방법 및 복호화 방법
Zolotarev et al. Algorithm of multithreshold decoding for Gaussian channels
Sharanya et al. Performance analysis of concatenated codes for different channels

Legal Events

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