KR100950186B1 - 복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의디코딩 - Google Patents

복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의디코딩 Download PDF

Info

Publication number
KR100950186B1
KR100950186B1 KR1020047020180A KR20047020180A KR100950186B1 KR 100950186 B1 KR100950186 B1 KR 100950186B1 KR 1020047020180 A KR1020047020180 A KR 1020047020180A KR 20047020180 A KR20047020180 A KR 20047020180A KR 100950186 B1 KR100950186 B1 KR 100950186B1
Authority
KR
South Korea
Prior art keywords
symbols
symbol
source
output
source symbols
Prior art date
Application number
KR1020047020180A
Other languages
English (en)
Other versions
KR20050020981A (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 디지털 파운튼, 인크.
Priority to KR1020047020180A priority Critical patent/KR100950186B1/ko
Publication of KR20050020981A publication Critical patent/KR20050020981A/ko
Application granted granted Critical
Publication of KR100950186B1 publication Critical patent/KR100950186B1/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/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

Abstract

연쇄 반응 코드들을 처리하는 방법은, 먼저, 2 차 이상의 출력 심볼 (2 이상의 입력 심볼들과 연관된 출력 심볼) 과 연관된 소스 심볼을 선택하는 단계, 예컨대 선형 연립 방정식을 푸는 것에 의하여 이 심볼의 값을 복구하는 단계, 및 후속하여, 1 차의 출력 심볼을 생성하기 위한 시도로 그 선택된 소스 심볼을 비활성화하는 단계를 포함한다. 비활성화 프로세스는, 1 차의 출력 심볼이 식별될 때까지 계속적으로 그리고/또는 그 디코딩 프로세스가 1 차의 출력 심볼을 위치시킬 수 없을 때마다, 반복된다.

Description

복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의 디코딩{DECODING OF CHAIN REACTION CODES THROUGH INACTIVATION OF RECOVERED SYMBOLS}
본 출원은 2002년 6월 11일자로 출원되고 발명의 명칭이 "Decoding of Chain Reaction Codes Through Inactivation" 이고, 모든 목적에서 그 전부를 여기서 참조로 포함하는 미국 가출원 제60/388,129호의 이익을 주장한다.
본 발명은 데이터를 디코딩하는 시스템 및 방법에 관한 것으로, 보다 상세하게는, 이하에서 "연쇄 반응 코드" 로 지칭하는 정보 부가 코드들 및 다중 스테이지 정보 부가 코드들을 디코딩하는 시스템 및 방법에 관한 것이다.
연쇄 반응 코드들은, 발명의 명칭이 "Information Additive Code Generator and Decoder for Communication Systems" 인 미국 특허 제6,307,487호 (이하, "Luby I") 및 발명의 명칭이 "Multi-Stage Code Generator and Decoder for Communication Systems" 인 미국 특허출원 제10/032,156호 (이하, "Raptor") 와 같이, 양수인의 특허에 이미 설명되어 있다. 여기서 설명하는 바와 같이, 연쇄 반응 디코딩은 수신되는 특정한 데이터 패킷과 관계없이 부여된 크기의 수신된 데이터 세트로부터 데이터 재구성을 가능케하는 순방향 에러 정정의 고유한 형태이다. 연쇄 반응 코드들을 사용하는 통신 시스템은 Luby I 또는 Raptor 에서 설 명된 바와 같이, 데이터 캐루젤 또는 인식 기반의 프로토콜을 통하여 송신되는 기존의 FEC 코드들에 비하여 훨씬 효율적으로 정보를 통신할 수 있다.
도 1 은 출력 심볼(170) 이 여러 입력 심볼들로부터 생성되는 연쇄 반응 코드들을 사용하여 데이터를 인코딩하는 예시적인 프로세스를 도시한다. 입력 심볼은 110(a) - 110(f) 로 표시되어 있다. 일부 실시예에서, 코딩 절차의 첫단계는 Raptor 에서 설명하는 바와 같이 정적 인코딩이다. 이 단계는 120(a) - 120(f) 및 160(a) - 160(c) 로 표시되는 소스 심볼을 생성할 수 있다. 일부 실시예에서, 정적 인코딩은 규칙적이어서, 소스 심볼들 (120(a) - 120(f)) 의 값들은 110(a) - 110(f) 의 값들과 같을 수 있다. 일부 예에서, 정적 코딩이 없을 수도 있는데, 이 경우에 입력 심볼은 소스 심볼과 일치한다.
일단 소스 심볼이 생성된 경우, 출력 심볼들이 소스 심볼들로부터 생성된다. 이하, 출력 심볼 및 입력 심볼은, 입력 심볼의 값이 그 출력 심볼의 값을 획득하는데 사용되는 경우, "연관 (associated)" 으로 기재된다. 이 연관을 정의하는 수학적인 연산은 임의의 특정한 연산일 수 있으며, 일 실시예에서, 출력 심볼의 값은 소스 심볼들의 일부의 값들의 XOR 이다. 각 출력 심볼에 대하여, 키 생성기 (140) 는 키를 생성하는데, 그 키로부터 출력 심볼의 가중치가 가중치 테이블 (150) 로부터 판단된다. 일단 가중치 (W) 가 판단되면, W 개의 랜덤 또는 의사랜덤 소스 심볼이 선택되고, 출력 심볼의 값은 이 소스 심볼의 값의 XOR 로 연산된다. 예컨대, 도 1 에서, 출력 심볼 (170) 의 가중치는 3 과 같고, 그 값은 소스 심볼들 (120(a), 120(d), 160(b)) 의 XOR 로 판단된다. 대응되게, 출력 심 볼 (170) 은 소스 심볼 (120(a), 120(d), 160(b)) 과 연관된다. 이하에서, "차" 라는 용어는 "가중치" 라는 용어와 동의어로 사용된다.
도 2a 는 연쇄 반응 코드의 디코딩에서 사용되는 디코딩 그래프를 도시한다. 이 디코딩 그래프는 2 개의 심볼들 세트, 소스 심볼들 (220(a)-(i)) 및 출력 심볼들 (230(a)-(l)) 로 구성된다. 상술한 바와 같이, 소스 심볼과 출력 심볼이 "연관"되는 경우, 출력 심볼은 소스 심볼과 연결된다.
도 2b 는 디코딩 프로세스에 유용한 도 2a 의 디코딩 그래프에 대응하는 디코딩 행렬을 도시한다. 디코딩 행렬 (200) 은 출력 심볼만큼의 행과 소스 심볼만큼의 열을 가지며, 엔트리 "0" 과 "1" 로 채워져 있다. j 번째 소스 심볼이 k 번째 출력 심볼과 연관되는 경우, 디코딩 행렬의 위치 (k, j) 에 "1" 이 들어간다.
전형적인 연쇄 반응 디코딩 프로세스에서, 디코딩은 단일 소스 심볼과 연관된 출력 심볼 (O1) 을 식별함으로써 개시된다. "1 차의 출력 심볼" 이라는 용어는 단 하나의 소스 심볼과 연관된 상술한 출력 심볼을 지칭한다. 유사하게, 2 개의 소스 심볼들과 연관된 출력 심볼은 "2 차" 의 출력 심볼로 지칭된다. 소스 심볼은 각각의 소스 심볼이 연관되는 출력 심볼의 수에 따라 출력 심볼과 유사한 방식으로 지칭된다.
일단 1 차의 출력 심볼 (O1) 이 식별되면, O1 의 연관된 소스 심볼이 복구되고, 디코딩 그래프에서 제거된다. 프로세스는 1 차의 또 다른 출력 심볼 (O2) 을 식별함으로써 계속된다. 예컨대, 도 2a에 도시한 상황에서, O1 은 230(a) 로 표시한 출력 심볼일 수 있다. 일단 그 연관된 소스 심볼 (220(b)) 이 디코딩 그래프에서 제거되면, 1 차의 3 개의 출력 심볼, 즉 230(c), 230(d), 및 230(k) 가 있게 된다.
프로세스는 모든 소스 심볼이 복구될 때까지, 또는 1 차의 출력 심볼이 존재하지 않을 때까지 계속된다. 예컨대, 도 2a의 상황에서, 출력 심볼의 다음의 시퀀스가 대응하는 소스 심볼을 복구하기 위하여 선택된다.
출력 심볼 복구된 소스 심볼
230(a) 220(b)
230(c) 220(e)
230(h) 220(h)
230(d) 220(i)
230(i) 220(d)
230(b) 220(a)
230(j) 220(f)
230(g) 220(g)
230(e) 220(c)
이 경우에 디코딩은 성공적이다.
전술한 연쇄 반응 디코딩 프로세스는, 1 차의 출력 심볼이 발견되지 않는 경우에 난관에 직면한다. 일부 예에서, 디코딩 프로세스는 조기에 중단될 수 있으며, 디코드는 에러를 플래그할 수 있다. 선택적으로는, 디코더는 가능하다면 디코딩을 완성하기 위하여 가우시안 소거법과 같은, 다른 보다 정교한 알고리즘을 사용할 수 있다. 그러나, 빠른 디코딩을 원하는 애플리케이션, 특히 더 이상의 1 차의 출력 심볼이 발견되지 않는 때 복구되지 않는 입력 심볼의 수가 많은 때의 애플리케이션에 대하여는, 가우시안 소거법의 실행 시간은 엄청나게 길어질 수 있다. 이는 연산 오버헤드가 실질적으로 연쇄 반응 디코더보다 더 큰 디코딩 알고리즘을 초래하게 되고, 따라서 특정의 애플리케이션에서는 바람직하지 않을 수 있다.
이러한 이유로, 연쇄 반응 코딩 시스템의 설계는 디코더가 보통 조기에 중단되지 않는 것을 보장하는 방식으로 수행된다. 이 요건은 보다 복잡한 디코더를 사용하여 가능할 수 있는 것보다 연쇄 반응 코드의 설계시에 엄격한 조건을 요할 수 있다. 예컨대, 출력 심볼의 평균 차수가 그렇지 않은 경우보다 더 높게 강제할 수 있으며, 따라서 인코더 및 디코더의 성능의 열화를 가져올 수 있다. 보다 일반적으로, 이 디코딩 절차는 가중치 테이블의 설계가 높은 가능성을 가지고 상술한 디코딩 알고리즘의 성공을 보장하는 방식이 되도록 강제하며, 따라서 가능한 가중치 테이블 세트에 대한 제한이 될 수 있다.
따라서, 연쇄 반응 디코더와 같은 유사한 연산 이점을 제공하고, 디코딩의 일부 스테이지에서 1 차의 출력 심볼이 발견되지 않는 경우에도 디코딩을 계속할 수 있는, 신규의 디코딩 알고리즘이 요구된다.
본 발명은, 1 차의 출력 심볼이 코드에서 발견되지 않는 경우에도 연쇄 반응 코드를 디코딩하는 시스템 및 프로세스를 제공한다. 이는, 일 실시예에서, 2 차 이상의 출력 심볼 (즉, 2 개 이상의 입력 심볼과 연관된 출력 심볼) 과 연관된 소스 심볼을 선택함으로써 달성된다. 그 후, 2 차 이상의 출력 심볼은 1 차의 출력 심볼을 생성하기 위한 시도로 비활성화된다. 비활성화 프로세스는, 1 차의 출력 심볼이 식별될 때까지 계속적으로, 그리고/또는 디코딩 프로세스가 1 차의 출력 심볼을 위치시킬 수 없을 때마다 반복될 수 있다. 프로세스 및 시스템의 다양한 실시예가 여기서 제공된다.
도 1 은 연쇄 반응 코드를 사용하여 데이터를 인코딩하는 예시적인 프로세스를 도시한다.
도 2a 는 연쇄 반응 인코딩된 출력 심볼을 디코딩하는 예시적인 프로세스를 도시한다.
도 2b 는 도 2a 의 디코딩 그래프에 대응하는 디코딩 행렬을 도시한다.
도 3 은 본 발명의 일 실시예에 따른 연쇄 반응 코드들을 디코딩하는데 사용되는 프로세스의 개관을 도시한다.
도 4a 는 도 3 에 도시한 개시 프로세스의 제 1 실시예를 도시한다.
도 4b 는 도 3 에 도시한 개시 프로세스 (310) 의 제 2 실시예를 도시한다.
도 5 는 도 3 에 도시한 소스 심볼 선택 및 비활성화 프로세스의 제 1 실시예를 도시한다.
도 6 은 도 3 에 도시한 소스 심볼 복구 프로세스의 일 실시예를 도시한다.
도 7a 는 도 3 에 도시한 소스 심볼 선택 프로세스의 제 2 실시예를 도시한다.
도 7b 는 본 발명의 일 실시예에 따른 2 차 연쇄의 디코딩 그래프를 도시한다.
도 8a 는 본 발명에 따른 수정된 디코딩 행렬을 도시한다.
도 8b 는 본 발명의 일 실시예에 따른 디코딩 행렬에 가우시안 소거법을 적 용하는 프로세스를 도시한다.
도 9a 및 9b 는 본 발명의 일 실시예에 따른 디코딩 그래프 및 매트릭스를 사용하여 디코딩하는 비활성화의 예시를 도시한다.
도 10a 는 본 발명의 일 실시예에 따른 다중 스테이지 연쇄 반응 코드를 디코딩하는데 유용한 수정된 디코딩 그래프를 도시한다.
도 10b 는 수정된 디코딩 그래프 (10a) 에 대응하는 수정된 디코딩 행렬을 도시한다.
도 11a 는 본 발명에 따른 상술한 방법의 프로세스에 대응하는 명령어 코드들을 실행하기 위하여 동작가능한 예시적인 컴퓨터 시스템을 도시한다.
도 11b 는 본 발명에 따른 상술한 방법에 대응하는 명령어 코드들을 실행시키는데 사용되는 예시적인 컴퓨터 시스템의 간략화된 시스템 블록도를 도시한다.
도 12a-12b 는 입력 심볼의 수 N 의 다양한 값에 대하여 비활성화 디코더의 수천 개의 컴퓨터 시뮬레이션을 도시하는 플롯을 도시한다.
간결 및 편의를 위하여, 앞서의 도면에서의 특징 및 구성요소는 이후의 도면에서 그 참조부호를 유지한다.
이하의 용어는 본 출원 전반에 걸쳐서 사용되며, 다음의 의미를 갖도록 의도된다.
용어 "활성" 은 소스 심볼의 가능한 상태를 지칭한다. 소스 심볼의 활성 상태는 영구적이지 않으며, 소스 심볼의 활성 상태는 이하 정의되는 용어들인 "비 활성" 상태, "복구가능한 상태", 또는 "복구된 상태" 중 하나로 변할 수 있다.
용어 "비활성화" 또는 "비활성" 은 소스 심볼의 또 다른 상태를 지칭한다. 비활성화된 소스 심볼의 상태는 반드시 영구적이어야 하는 것은 아니며, 비활성 소스 심볼은 본 발명 하의 프로세스에서 재활성될 수 있다.
용어 "복구가능" 은 일부 다른 소스 심볼들의 값들이 복구되는 경우, 소스 심볼의 값이 복구될 수 있음을 나타내는 소스 심볼의 또 다른 상태를 지칭한다. 본 발명의 특정한 실시예에서, 소스 심볼은 하나 이상의 소스 심볼의 비활성화를 통하여 "복구가능"하게 될 수 있다.
용어 "복구된 소스 심볼" 은 그 값이 판단된 소스 심볼을 지칭한다. 소스 심볼의 값은 직접적으로, 예컨대 단일하게 연관된 출력 심볼의 값으로부터, 또는 간접적으로, 예컨대 비활성화된 소스 심볼의 값으로부터 판단될 수 있다.
도 3 은 본 발명의 일 실시예에 따른 연쇄 반응 코드들을 디코딩하는데 사용되는 프로세스의 개관도를 도시한다. 예시적인 디코딩 루틴 (300) 에 포함된 프로세스는 개시 프로세스 (310), 소스 심볼 선택 및 비활성화 프로세스 (320), 및 소스 심볼 값 복구 프로세스 (330) 를 포함한다.
도 4a 는 도 3 에 도시한 개시 프로세스 (310) 의 제 1 실시예를 도시한다. 처음에 311 에서, 1 차의 출력 심볼이 존재하는지 여부에 대한 판단이 행해진다. 긍정되는 경우, 그 출력 심볼과 연관된 소스 심볼이 312 에서 복구된다. 그 후, 프로세스는 311 로 되돌아가서, 1 차의 다른 출력 심볼이 코드에 남아있는지 여부에 대한 후속하는 판단이 행해진다. 311 에서 1 차의 출력 심볼이 남아있지 않은 경우에, 프로세스는 후술하는 소스 심볼 선택 및 비활성화 프로세스 (320) 로 진행한다.
도 4b 는 도 3 에 도시한 개시 프로세스 (310) 의 제 2 실시예를 도시한다. 이 실시예에서, 1 차의 출력 심볼이 315 에서 식별된다. 후속하는 316 에서, 그 식별된 출력 심볼과 연관된 소스 심볼이 복구된다. 그 다음 317 에서, 1 차의 다른 출력 심볼이 남아있는지 여부에 대한 판단이 행해진다. 긍정되는 경우, 프로세스는 그 연관된 소스 심볼이 복구되는 316 으로 되돌아간다. 긍정되지 않는 경우, 프로세스는 후술하는 소스 심볼 선택 및 비활성화 프로세스로 진행한다.
본 발명의 일 실시예에서, 312 또는 316 에서 설명하는 소스 심볼의 복구는, 320 으로 지칭되는 비활성화되고 복구가능한 소스 심볼의 복구 이전에 일시적으로 발생한다. 그러나, 본 발명은 이에 한정되지 않으며, 본 발명의 대체적인 실시예에서는, 310 에서 식별된 소스 심볼의 복구가 프로세스 330 에서 비활성화되고 복구가능한 소스 심볼들의 복구와 실질적으로 동시에 발생할 수도 있다.
도 5 는 도 3 에 도시한 소스 심볼 선택 및 비활성화 프로세스 (320) 의 제 1 실시예를 도시한다. 처음에 321 에서, 2 차 이상의 출력 심볼 (즉, 2 개 이상의 소스 심볼과 연관된 출력 심볼) 과 연관된 활성 소스 심볼이 선택된다. 특정한 소스 심볼이 유사한 많은 소스 심볼들 사이에서 선택되는 방식을 이하에서 설명하기로 한다. 그 다음 322 에서, 선택된 그 특정의 소스 심볼이 비활성화된다. 후속하여 323 에서, 1 차의 출력 심볼이 디코딩을 위하여 존재하는지 여 부가 판단된다. 일부 실시예에서는, 앞서의 비활성화는 1 차의 하나 이상의 출력 심볼들을 생성할 것이다. 다른 실시예에서는, 앞서의 비활성화는 1 차의 출력 심볼을 초래하지 않을 것이다. 후자의 경우에서, 프로세스는 후술하는 바와 같이 321 - 323 의 프로세스를 반복한다.
322 의 비활성화 프로세스가 하나 이상의 1 차의 출력 심볼의 생성을 가져오는 경우, 프로세스는 1 차의 출력 심볼과 연관된 소스 심볼이 복구가능한 것으로 선언되는 324 로 계속된다. 그 후, 프로세스는 1 차의 부가적인 출력 심볼이 남아있는지 여부가 판단되는 323 으로 되돌아간다. 323 및 324 의 프로세스들은, 앞서의 비활성화 프로세스에 의하여 생성되는 1 차의 출력 심볼들 모두가 복구가능한 것으로 선언될 때까지, 반복된다.
322 에서 선택되는 소스 심볼의 비활성화가 1 차의 출력 심볼을 가져오지 않는 경우 또는 324 에서 1 차의 출력 심볼과 연관된 모든 소스 심볼이 복구가능한 것으로 선언되는 경우, 프로세스는 323 으로부터 325 로 계속되고, 2 차 이상의 출력 심볼과 연관된 임의의 소스 심볼이 남아있는지 여부에 대한 판단이 행해진다. 긍정되는 경우, 프로세스는 2 차 이상의 출력 심볼과 연관된 또 다른 활성 소스 심볼이 선택 및 비활성화되고, 1 차의 출력 심볼의 존재가 검사되는 323 로 되돌아간다. 예컨대, 여기서 2 차 이상의 출력 심볼과 연관된 제 1 소스 심볼의 비활성화가 1 차의 출력 심볼을 가져오지 않고, 2 차 (이상)의 출력 심볼과 연관된 부가적인 소스 심볼이 남아있는 경우, 프로세스의 하나 이상의 반복이 발생할 수 있다. 이 경우에, 2 차 (이상)의 출력 심볼과 연관된 또 다른 소스 심볼의 후속하는 비활성화는 1 차의 하나 이상의 출력 심볼을 생성할 수 있다. 프로세스는, 모든 소스 심볼이 (개시 프로세스 310 을 통하여) 복구, (322 를 통하여) 비활성화, 또는 (324 를 통하여) 복구가능한 것으로 선언되어, 그 지점에서 프로세스가 소스 심볼 값 복구 프로세스 (330) 로 진행할 때까지, 반복된다.
도 6 은 도 3 에 도시한 소스 심볼 값 복구 프로세스 (330) 의 일 실시예를 도시한다. 처음에 332 에서, 322 에서 비활성화된 하나 이상의 소스 심볼의 값들이 복구된다. 예컨대, 가우시안 소거법이 디코딩 프로세스에 사용되는 특정한 실시예에서, 비활성화된 소스 심볼들의 모든 값들이 이 프로세스에서 복구된다. 후속하여 334 에서, 프로세스 325 에서 복구가능한 것으로 선언되는 하나 이상의 소스 심볼의 값들이 그 비활성화된 소스 심볼의 그 복구된 값들을 사용하여 판단된다. 가우시안 소거법이 사용되는 상술한 바와 같은 일 구현에서, 모든 복구가능한 소스 심볼의 값들은 이 프로세스에서 판단된다. 332 및 334 의 선택적인 실시예에서, 하나 이상의 값들, 그러나 모든 복구가능한 소스 심볼보다는 적은 수의 소스 심볼들의 값들이 판단된다. 이는, 필요, 편의, 비용 등의 이유로, 연쇄 반응 코드의 완전한 디코딩이 요구되지 않거나 가능하지 않은 경우에, 이로울 수 있다. 332 및 334 의 프로세스는 이하 특정의 실시예에 추가적으로 도시되어 있다.
도 7a 는 소스 심볼 선택 프로세스 (321) 의 제 2 실시예를 도시하는데, 여기서는 2 차 이상의 출력 심볼과 연관된 활성 소스 심볼이 비활성화를 위하여 선택된다. 처음에 702 에서, 2 차 이상의 출력 심볼과 연관된 활성 소스 심볼이 식별된다. 다음 704 에서, 그 식별된 소스 심볼이 비활성화되는 경우, 잠재적으로 복구가능한 소스 심볼들 (즉, 추가적인 소스 심볼 비활성화없이도 복구가능하게 될 수 있는 소스 심볼들) 의 수에 대한 판단이 행해진다. 다음에 706 에서, 잠재적으로 복구가능한 소스 심볼의 수와 소정수 간에 비교가 행해지고, 잠재적으로 북구가능한 소스 심볼들의 수가 소정수를 초과하는 경우, 그 식별된 소스 심볼은 322 에서 비활성화를 위하여 선택된다. 잠재적으로 복구가능한 소스 심볼들의 수가 소정수를 충족 또는 초과하지 않는 경우, 프로세스는 2 차 이상의 출력 심볼과 연관된 또 다른 소스 심볼이 식별되는 702 로 되돌아간다.
당업자는, 1 차의 출력 심볼들의 가장 큰 수를 획득하기 위하여, 다른 선택 기준이 소스 심볼들을 선택하는데 사용될 수 있음을 알 수 있다. 일 프로세스의 예로, 출력 심볼의 가장 큰 수와 연관된 소스 심볼이 비활성화를 위하여 선택된다. 또 다른 실시예에서, 소스 심볼은 2 이상의 출력 심볼들과 연관된 그 소스 심볼들 그룹으로부터 임의로 선택된다. 또 다른 실시예에서, 소정수, 예컨대 가장 작은 수의 소스 심볼들과 연관된 출력 심볼이 식별된다. 후속하여, 그 소스 심볼들 중 하나를 제외한 모두가 비활성화를 위하여 선택된다.
소스 심볼 선택 프로세스의 또 다른 실시예에서, 소스 심볼들 스트링이 복구될 수 있다. 이 프로세스에서, 2 차의 출력 심볼이 식별되어, 그 연관된 소스 심볼들 중 하나가 2 차의 제 2 출력 심볼과 연관되고, 그 연관된 소스 심볼들 중 하나가 2 차의 제 3 출력 심볼과 연관되고, 이 과정이 계속된다. 이러한 출력 심볼들의 연쇄를 이하에서는 2 차 연쇄이라고 부르기로 한다.
도 7b 는 본 발명의 일 실시예에 따른 2 차 연쇄의 디코딩 그래프를 도시한다. 하나의 가능한 2 차 연쇄에 참여하는 출력 심볼들은 720(a), 720(c), 720(d), 및 720(e) 이다. 예컨대 소스 심볼 710(a) 의 비활성화는 출력 심볼 (720(c)) 의 차수를 1 로 감소시키고, 이는 소스 심볼 (710(f)) 을 복구가능한 것으로 만들고, 이는 차례로 출력 심볼 (720(e)) 의 차수를 1 로 감소시킨다. 이는 소스 심볼 (710(b)) 을 복구가능한 것으로 만들고, 이는 720(a) 및 720(d) 의 차수를 1 로 만들고, 이는 710(g) 및 710(e) 를 복구가능한 것으로 만든다. 알 수 있는 바와 같이, 이러한 연쇄에서 출력 심볼들의 수가 k 이고 이러한 연쇄에서 출력 심볼들의 하나의 연관된 소스 심볼들 중 하나가 비활성화되는 경우, 1 차의 출력 심볼의 존재가 k 개의 연속하는 비활성 디코딩 단계 동안 보장된다. 이 프로세스는 최대 길이의 2 차 연쇄를 유도하는 2 차의 출력 심볼을 식별하는 단계 및 그 식별된 출력 심볼과 연관된 소스 심볼을 비활성화하는 단계를 추가적으로 포함한다.
소스 심볼 선택 프로세스들 중 임의의 하나는, 여기서 제시하는 방법에 따라서, 비활성화 소스 심볼이 재활성화되고, 또 다른 소스 심볼이 비활성화를 위하여 선택되는 "백-트랙킹 프로세스" 를 추가적으로 포함할 수 있다. 본 발명은 소스 심볼이 비활성화를 위하여 선택되는 예시적인 프로세스에 한정되지 않으며, 2 개 이상의 출력 심볼이 연관되는 소스 심볼이 선택되는 임의의 방법도 본 발명에서 사용될 수 있다.
도 2b 를 참조하여 앞서 설명한 바와 같이, 디코딩 행렬은 연쇄 반응 코드들의 디코딩에 유용하다. 비활성화를 사용하는 디코딩 프로세스와 관련하여, 도 2b 의 디코딩 행렬 (200) 은 비활성 소스 심볼들의 포함을 수용하도록 수정될 수 있다. 특히, 디코딩 프로세스 동안에 비활성 소스 심볼들의 인덱스 시퀀스가 시퀀스 i1, i2, ..., in 이고, 소스 심볼들의 수가 K 인 경우, 비활성 디코딩은 치환 행렬 P 및 Q 를 생성하고, 여기서 Q 에서는 i1 열과 K-n+1 열, i2 열과 K-n+2 열, ..., 및 in 열과 K 열이 상호변경가능하고, P ·M ·Q 는 도 8b 에 주어진 형태를 갖는다. 도 8a 에 도시한 수정된 디코딩 행렬은 하위 삼각 행렬 L, 및 부행렬 A, B 및 C 로 구성된다. 부행렬 A 의 열은 비활성 소스 심볼들에 대응한다. 디코더의 임무는 다음과 같이 주어진 K 개의 미지의 x1, ..., xK 에서의 K' 개의 선형 연립 방정식을 해결하는 것이다.
P ·M ·Q ·(Q-1 ·x) = P ·b
여기서, x 는 열벡터 (x1, ..., xK) 이고, b 는 K' 수신된 출력 심볼들의 값으로 구성된 벡터이다. 실제로, 행렬 P 및 Q 는 전체 행렬이 아니라, 비활성 디코딩의 프로세스를 트랙킹함으로써 연산된 치환으로서 저장될 수 있다. 이 형태는 종종 완전한 행렬의 저장보다 훨씬 적은 메모리를 요한다. 당업자에 의하여 적절히 이해될 수 있는 바와 같이, 복구 프로세스는 도시한 디코딩 행렬의 열들의 특정한 치환에 의존하지 않으며, 다른 열 치환이 본 발명 하의 대체적인 실시예에서 사용될 수 있다.
상기의 연립 방정식의 해 x 를 연산하기 위하여 가능한 많은 방법들 중에서, 여기서는 다음의 하나의 방법을 도시한다. 이는 단지 설명의 목적으로 제공되는 것이고 본 발명의 범위를 한정하도록 의도되는 것은 아니다.
알고리즘의 핵심의 설명을 위하여 Q-1 ·x 를 y 로 표시하고, 디코딩의 임무를 벡터 y 를 연산하는 임무로 재정의한다. 일단 y 가 연산되면, x 는 Q 에 의하여 기술되는 y 의 치환으로 효율적으로 연산될 수 있다. 추가적으로, 행렬 P ·M ·Q 는 N 으로 표시되고, 벡터 P ·b 는 c 로 표시되어, 즉 c 는 P 에 의하여 기술되는 b 의 치환으로, 이는 연산하기에 효율적이다. 그 후, 임무는 N ·y = c (N 이 도 8a 에 부여된 형태임) 를 만족하는 벡터 y를 연산하는 것이다.
이 연립 방정식을 해결하기 위하여, 가우시안 소거법이 행렬 N 에 적용될 수 있다. 부행렬 B 의 행은 하위 삼각 행렬 L 의 행에 의하여 소거된다. 동일한 변환이 벡터 c 에 적용된다. 이 동작은 행렬 B 를 0 으로 구성된 행렬로 변환하고, 행렬 C 는 동일한 소거 단계를 행렬 A 및 C 에 적용함으로써 획득되는, 서로 다른 행렬 D 로 변환된다. 이 변환은 도 8b 에 도시되어 있다. n 개의 소스 심볼이 비활성화되고, K 개의 소스 심볼 및 K' 개의 출력 심볼이 있다고 가정하는 경우에, 부행렬 L 은 (K-n) 행과 (K-n) 열을, 행렬 A 는 (K-n) 행과 n 열을, 행렬 D 는 (K'-K+N) 행과 n 열을 갖는다. 변환된 행렬에서 부행렬 L 과 A 는 행렬 N 에서 대응하는 부행렬과 동일하다. 벡터 b 는 또한 2 개의 성분, 즉 f의 첫번째 K-n 개의 성분으로 구성된 870 에서 부여된 벡터 d 및 f의 나머지 성분으로 구성된 875 에서의 벡터 e를 갖는 또 다른 벡터 f 로 변환된다. 대응하여, 820 에서 미지의 벡터 y 는 2 개의 부벡터, 즉 y 의 첫번째 K-n 개의 엔트리로 구성된 벡터 u 및 나머지 n 개의 엔트리로 구성된 벡터 z로 세분화된다.
이 소거법은 원래의 연립 방정식을 2 개의 분리된 연립 방정식, 즉 D ·z = e 로 주어지는 연립방정식 및 L ·u + A ·z = d으로 변환한다. 미지의 벡터 z 의 값은 비활성 소스 심볼들에 대응하는 소스 심볼들의 값들과 대응한다. 이들 값들이 방정식 세트 D ·z = e 로부터 발견되면, u 에 의하여 주어진 나머지 값들이 여러 방법으로 발견될 수 있다. 본 발명의 일부 실시예에서, 이들 값들은 행렬 A 를 z 로 승산하고, 그 결과 벡터를 d 와 XOR 하여 벡터 g 를 얻고, 연립방정식 L ·u = g 를 구한다. 일부 실시예에서, 후자의 연립방정식은 연쇄 반응 디코더를 사용하여 구해질 수 있다. 다른 실시예에서, 비활성 소스 심볼에 대응하는 각 소스 심볼의 값은 상기 소스 심볼과 연관된 이웃하는 출력 심볼들에 대응하는 출력 심볼들의 값과 XOR 되고, 비활성 소스 심볼은 대응하는 디코딩 그래프 (미도시) 로부터 제거된다. 이는 모든 비활성 소스 심볼들이 제거된 신규의 제한된 디코딩 그래프를 생성한다. 그 후, 통상의 연쇄 반응 디코딩이 다른 소스 심볼들을 복구하기 위하여 그 제한된 디코딩 그래프에 적용될 수 있다.
연립 방정식 D ·z = e 는 여러 방법으로 구해질 수 있다. 일부 실시예에서, 이 연립방정식은 가우시안 소거법 알고리즘을 사용하여 구해질 수 있다. 다른 실시예에서, 비활성 디코딩은 비활성 소스 심볼들의 미지의 값들을 획득하기 위하여 반복하여 적용될 수 있다. 선형 연립방정식을 구하는 다른 방법 또한 적용될 수 있다.
비활성 디코더의 일부 실시예에서, 디코딩 프로세스는, 모든 출력 심볼들이 디코딩 그래프 내로 들어가기 전에 개시될 수 있다. 이 실시예에서, 디코딩 그래프가 1 차의 출력 심볼들을 더 이상 가지지 않고, 하나 이상의 활성 소스 심볼을 가질 때마다, 상술한 전략은, 소스 심볼을 비활성화할지 여부 또는 이러한 출력 심볼이 존재하는 경우 디코딩 그래프 내로 또 다른 출력 심볼을 입력할지 여부를 판단하기 위하여 사용될 수 있다. 디코딩 프로세스가 모든 출력 심볼이 수집되기 전에 개시하는 경우에, 디코딩 행렬의 생성 및 디코딩 행렬에 대한 소거 프로세스는 수신 프로세스와 실질적으로 동시에 발생할 수 있으며, 소거 프로세스의 하나 이상의 단계는 새로운 매 출력 심볼의 수신에 의해 수행된다. 다른 방법으로는, 하나 이상의 출력 심볼이 한번에 수집되고, 디코딩은 모든 상기의 출력 심볼들이 처리될 때까지 처리될 수 있으며; 모든 소스 심볼들이 이 지점에서 복구되지 않는 경우, 모든 소스 심볼이 복구될 때까지 또 다른 출력 심볼들 세트가 요청 및 처리될 것이다.
도 9a 및 9b 는 본 발명의 일 실시예에 따른 상술한 디코딩 그래프 및 행렬을 사용하는 비활성 디코딩의 예를 도시한다. 도 9a 의 원래 디코딩 그래프는 910(a)-910(f) 로 표시한 6 개의 소스 심볼 및 920(a)-920(g) 로 표시한 7 개의 출력 심볼을 포함한다. 주지하는 바와 같이, 종래의 연쇄 반응 디코딩은, 1 차의 어떠한 출력 심볼도 없기 때문에, 이 그래프 상에서도 시작될 수 없다. 소스 심볼 (910(f)) 을 비활성화함으로써, 연쇄 반응 디코딩이 개시되고, 각 스테이지에서 1 차의 출력 심볼이 발견된다.
도 9b 는 비활성화 프로세스의 결과로 디코딩 행렬 내에서 발생하는 치환을 도시한다. 심볼 (910(f)) 을 비활성화하는 것은 행렬의 가장 나중의 열을 비활성화하는 것이 된다. 그 후, 남아있는 열들은 하위의 삼각 형태로 변환된다. 원 및 화살표의 시퀀스는, k 번째 화살표 점들이 새로운 하위 삼각 행렬의 위치 (k,k) 로 치환될 필요가 있는 위치를 기록함으로써, 행과 열이 치환되어야 하는 순서를 나타낸다. 예컨대, 위치 (2, 4) 가 위치 (1, 1) 로 되고, 위치 (1, 1) 이 위치 (2, 2) 로 되고, 위치 (3, 5) 가 위치 (3, 3) 으로 되는 등의 순서로, 치환이 행해져야 한다.
도 10a 는 Raptor 에서 설명한 바와 같이, 다중-스테이지 연쇄 반응 코드를 디코딩하는데 유용한 수정된 디코딩 그래프 (1000) 를 도시한다. 그 그래프 (1000) 는 복수의 소스 심볼들 (1020(a)-(f))과, 이전에 설명한 출력 심볼들 (1052(a)-(g)) 및 검사 심볼들 (1055(a)-(d)) 를 집합적으로 포함하는 다중-스테이지 출력 심볼들 (1050) 을 포함한다. 출력 심볼 (1052) 은 이전에 설명한 바와 같이 각각 하나 이상의 소스 심볼과 연관되어 있다. 검사 심볼들 (1055) 각각또한 하나 이상의 소스 심볼과 연관되어 있으며 2 이상의 소스 심볼들 사이의 수학적 관계를 기술한다. 예컨대, 심볼 (1055(a)) 는 소스 심볼 (1020(a), 1020(b), 1020(e), 1020(f)) 에 대응하는 소스 심볼들의 값들의 XOR 이 0 임을 의미한다. 소스 심볼들 사이의 상호관계는 저밀도 패러티 검사 코드 등과 같은 정적 인코딩 프로세스에 의하여 알려질 수 있다.
특정한 예로, 저밀도 패러티 검사 코드가 정적 인코딩 프로세스에 사용되는 경우, 이 코드에서 검사 심볼들의 수와 동일한 다중 스테이지 출력 심볼들의 수가 그 디코딩 그래프에 부가될 수 있으며, 이들 값은 0 으로 설정되고, 그 인코딩 그래프는 소스 심볼들과 검사 심볼들 사이의 저밀도 패러티 검사 코드의 그래프에 의하여 보강될 수 있으며, 그 디코딩 그래프는 신규의 그래프에 의하여 대체될 수 있다. 저밀도 패러티 검사 코드들의 선택은 이 애플리케이션에 대하여 필수적인 것은 아니다. 통상적으로, 임의의 유형의 정적 인코딩에 대하여, 대응하는 패러티 검사 행렬은 그 디코딩 그래프가 보강될 수 있는 이분 그래프를 정의한다.
도 10b 는 도 10a 의 수정된 디코딩 그래프에 대응하는 수정된 디코딩 행렬 (1070) 을 도시한다. 그 수정된 디코딩 행렬 (1070) 은 0 과 1 로 채워져 있으며, 소스 심볼 수만큼의 열과 출력 심볼 및 검사 심볼의 총 수만큼의 행을 갖는다. 대응하여, 수정된 디코딩 행렬 (1070) 은 하나는 출력 심볼과 대응되고, 하나는 검사 심볼과 대응되는 2 세트의 행으로 구성된다. K' 개의 출력 심볼들, C 개의 검사 심볼들, 및 K 개의 소스 심볼들이 있는 경우에, 수정된 디코딩 행렬은 K' 행 및 K 열로 구성된 부행렬 M0 과 C 개의 행과 K 개의 열로 구성된 행렬 MC 로 세분화된다. x1, ..., xK 가 소스 심볼의 미지의 값들을 나타내고, b1, ..., bK 가 그 수신된 출력 심볼들의 미지의 값들을 나타내는 경우, 디코더의 임무는 M0 ·x = b 및 Mc ·x = 0 으로 주어진 연립방정식을 푸는 것일 수 있다. 결합된 연립방정식은 도 10b 로 주어진다.
본 발명의 일부 실시예에서, 비활성 디코딩은 도 9a 의 디코딩 그래프가 도 10a 의 수정된 디코딩 그래프로 대체되고, 8b 의 디코딩 행렬이 도 10b 의 수정된 디코딩 행렬로 대체되는 상술한 바와 동일한 방식으로 진행될 수 있다. 다른 실시예에서, 수정된 디코딩 그래프 (1000) 의 서로 상이한 심볼들은 디코딩의 서로 다른 단계 동안에 서로 다른 우선순위가 부여될 수 있다. 예컨대, 디코딩은 단지 출력 심볼들을 처리하고, 남아있는 1 차의 출력 심볼들이 없는 경우에 1 차의 검사 심볼들을 재정렬함으로써 개시할 수 있다. 일부 애플리케이션에서, 이는, 검사 심볼들이 수정된 디코딩 그래프 내로 필요할 때 주입되므로, 보다 낮은 메모리 및 연산 자원을 유도한다.
여기서 설명한 방법들 각각은 다수의 서로 다른 방법 (즉, 소프트웨어, 하드웨어, 또는 양자의 결합) 및 다수의 시스템에서 실행될 수 있다. 일 실시예에서, 상술한 방법은 컴퓨터 판독가능한 디스크 상에, (휘발성 또는 비휘발성) 메모리에 저장되거나, 프로세서 (컴퓨터, 내장 프로세서 등) 내에 상주하는 명령어 코드들로 구현될 수 있다. 부가하여, 여기서 설명한 비활성 기술을 사용하여 연쇄 반응 코드를 디코딩하는 시스템은 여기서 설명한 프로세스에 대응하는 명령어 코드들을 저장 및/또는 실행하도록 동작가능한 메모리를 갖는 컴퓨터 또는 다른 프로그램가능한 기계를 구비할 수 있다.
도 11a 는 설명한 방법의 프로세스에 대응하는 명령어 코드들을 실행하도록 동작가능한 예시적인 컴퓨터 시스템을 도시한다. 컴퓨터 시스템 (1110) 은 모니터 (1114), 스크린 (1112), 캐비넷 (1118) 및 키보드 (1134) 를 포함한다. 마우스 (미도시), 라이트펜, 또는 가상 현실 인터페이스와 같은 다른 I/O 인터페이스 또한 I/O 명령을 제공하기 위하여 포함될 수 있다. 캐비넷 (1118) 은 CD 또는 DVD 와 같은 착탈식 매체를 위한 드라이브 (1116) 및 하드 드라이브 (미도시) 를 하우징한다. 컴퓨터 시스템 (1110) 은 본 발명의 방법을 실행하기 위해 필요한 데이터, 명령어 코드, 및 본 발명의 다른 정보를 기록 또는 판독하도록 동작가능한 드라이브 및/또는 드라이브 인터페이스를 포함할 수 있다. 캐비넷 (1118) 은 또한 프로세서, 메모리 등과 같은 유사한 컴퓨터 컴포넌트들 (미도시) 을 하우징한다.
도 11b 는 설명한 방법에 대응하는 명령어 코드들을 실행시키는데 사용되는 예시적인 컴퓨터 시스템 (1110) 의 간략화된 시스템 블록도를 도시한다. 도 11a 에 도시한 바와 같이, 컴퓨터 시스템 (1110) 은 선택적으로 I/O 컨트롤러 (1124) 와 상호작용하는 모니터 (1114) 를 포함한다. 컴퓨터 시스템 (1110) 은 시스템 메모리 (1126), 중앙처리장치 (1128), 스피커 (1130), 착탈식 디스크 (1136), 키보드 (1134), 고정 디스크 (1137), 및 네트워크 인터페이스 (1138) 과 같은 서브시스템을 더 포함한다. 상술한 방법의 사용에 적당한 다른 컴퓨터 시스템은 부가적이거나 보다 적은 서브시스템들을 포함할 수 있다. 예컨대, 또 다른 컴퓨터 시스템은 부가적인 프로세서를 포함할 수 있다. 11140 와 같은 화살표는 컴퓨터 시스템 (1110) 의 시스템 버스 구조를 나타낸다. 그러나, 이 화살표 (1140) 는 서브시스템의 링크를 서비스하는 상호접속 설계의 도시이다. 예컨대, 로컬 버스는 중앙처리장치 (1128) 를 시스템 메모리 (1126) 에 접속시키는데 이용될 수 있다. 도 11b 에 도시한 컴퓨터 시스템 (1110) 은 본 발명의 사용에 적합한 컴퓨터 시스템의 단지 예시이다. 본 발명의 사용에 적합한 다른 구성의 서브시스템들이 당업자에게 분명할 것임은 물론이다.
따라서, 본 발명의 일 실시예에서, 비활성 디코딩 메카니즘은 전체 원래 콘텐트가 재구성될 필요가 있는 경우 연쇄 반응 코딩의 수신 오버헤드를 감소시키는데 사용된다.
본 발명의 다른 실시예에서, 비활성 디코더는 출력 심볼의 평균 차수를 감소시켜서 출력 심볼을 생성하는데 필요한 연산 자원을 감소시키는데 사용된다.
비활성 디코더를 사용하는 연쇄 반응 코딩 시스템의 또 다른 특성은 가중치 테이블이 출력 심볼들 중 어느 것도 1 차의 심볼을 가지지 않도록 설계될 수 있다는 점이다. 이는 이러한 코딩 시스템의 출력 심볼들 중 어느 것도 입력 심볼의 값을 포함하지 않음을 의미한다. 일 실시예에서, 이 특성은 출력 심볼의 평균 차수를 감소시켜서, 인코더 상의 연산 부하를 감소시키는데 사용될 수 있다. 게다가, 일부 애플리케이션에서, 이 특성은 원래 데이터에 대한 허가받지 않은 엑세스에 대하여 가벼운 수준의 보안을 송신에 부여하는데 사용될 수 있다.
비활성화 디코딩 예
Raptor 에 개시된 연쇄 반응 코딩 시스템의 실시예는 N 으로 표시된 수의 데이터 심볼들, R 개의 정적 인코딩 심볼들을 생성하는 정적 인코딩, 및 가중치 테이블에 의하여 기술되는 동적 인코더에 의하여 기술된다. 일 실시예에서, 디코더의 성공의 양호한 보장을 하는 수신 오버헤드 또한 특정될 수 있다. 다른 실시예에서, 출력 심볼은, 완료된 디코딩이 가능할 때까지 수집될 수 있고, 수신 오버헤드를 특정할 필요는 없다.
이하의 테이블은 예시적인 비활성화 디코더의 다양한 파라미터들을 설명하는 데, 제 1 열은 값 N 의 범위를 나타내고, 제 2 열은 정적 인코딩 심볼의 생성에 관한 정보를 나타내며, 제 3 열은 동적 인코딩 심볼의 생성을 위한 가중치 테이블을 나타내고, 마지막으로 제 4 열은 연산된 정적 인코딩 심볼의 수를 나타낸다.
Figure 112004058375882-pct00001
예컨대, 테이블에서 9 번째 행은 N 이 5000-8100 사이에 있는 경우, 정적 인코딩 심볼들의 수 R 이 0.05 * N +100 보다 크거나 같은 가장 작은 정수임을 의미한다. 모든 경우에서, 정적 인코더의 제 1 스테이지는 Raptor 에 기재된 바와 같이, 먼저 Hamming 코드를 사용하여, 원래 심볼들을 인코딩 할 수 있다. 제 2 스테이지는 저밀도 패러티 검사 코드를 사용할 수 있다. 9 번째 행에 주어진 예에서, 이 코드의 패러티 검사 행렬은 2 개의 부행렬로 구성된다. 첫번째 것은 └2 * R / 3 ┘행 및 N + R 열을 갖는데, 여기서 └a ┘는 a 이하인 가장 큰 정수를 나타낸다. 제 2 부행렬은 R - └2 * R / 3 ┘행 및 N + R 열을 갖는다. 이 부행렬들 각각은 제 1 행렬에서 각 열이 정확히 1 개의 0 이 아닌 엔트리를 가지고, 제 2 행렬에서 각 열이 정확히 7 개의 0 이 아닌 엔트리를 갖는 조건하에서 임의로 선택된다.
SO, S1, 및 S2 에 대응하는 가중치 테이블은 다음과 같다.
SO 에 대한 가중치 테이블
가중치 확률
7 1
S1 에 대한 가중치 테이블
가중치 확률
1 0.0221538
2 0.492912
3 0.166059
4 0.0768401
5 0.0803003
8 0.0636444
9 0.0353027
19 0.0439408
20 0.0188495
S2 에 대한 가중치 테이블
가중치 확률
1 0.008199
2 0.507871
3 0.171036
4 0.074750
5 0.084950
8 0.057682
9 0.038307
19 0.057200
S1 과 S2 의 평균 가중치는 각각 4.254 및 4.154 이다.
수신 오버헤드가 5% 또는 50 중 더 큰 쪽으로 고정되는 경우, 비활성화 디코딩의 실패 확률이 10-13 보다 작다는 것을 수학적으로 증명할 수 있다. 여기서 부여된 구체적인 예는 단지 도시의 목적을 위함이다. 실제적인 수들의 변형은 본 발명의 범위 내에 있는 설계에 해당한다.
도 12a-12b 는 입력 심볼들의 수 N 의 다양한 값들에 대한 비활성화 디코더의 수천개의 컴퓨터 시뮬레이션 플롯을 도시한다. 수평축은 N 을 나타내고, 수직축은 수정된 디코딩 그래프에서의 비활성 소스 심볼들의 수를 나타낸다. 각 포인트는 1회의 시뮬레이션을 나타낸다. 도 12a 는 1 내지 140,000 사이의 범위의 N 에 대한 결과를 나타낸다. 도 12b 는 1 내지 16,000 사이의 범위의 N 에 대한 도 12a 의 확대도이다.
주지하는 바와 같이, 일부 실행에서, 비활성 소스 심볼의 수는 0 이고, 이는 통상적인 연쇄 반응 디코더가 디코딩을 완료하였음을 의미한다. 그러나, N 이 1 내지 10,000 사이의 값인 경우, 대다수의 경우에서, 비활성 소스 심볼들의 수는 1 보다 크다. 이 경우에서, 통상적인 연쇄 반응 디코더는 실패했다. 비활성된 소스 심볼들의 수는, 소스 심볼들의 수 N 이 20,000 보다 큰 경우 종종 0 이다. 이 경우에, 디코더는 성공적인 디코딩에 대한 매우 높은 확률의 보장을 제공하며 특히 빠르다.
상술한 기재를 도시 및 설명의 목적으로 제시하였다. 이는 개시된 정확 한 형태에 본 발명을 한정하도록 하려는 것이 아니며, 상술한 교시에 따라 많은 수정 및 변형이 가능함은 명백하다. 상술한 실시예는, 본 발명의 원리 및 그 실제적인 응용을 가장 잘 설명하도록 선택되었으며, 이에 따라 당업자는 예상되는 특정한 사용에 적합하도록 다양한 실시예 및 다양한 변형을 매우 잘 이용할 수 있다. 본 발명의 범위는 첨부된 특허청구범위에 의하여 한정되도록 의도된다.
참조로 포함
이하의 문헌들이 모든 목적을 위하여 그 전체로서 여기에 참조로 포함된다:
발명의 명칭이 "Information Additive Code Generator and Decoder for Communication Systems" 인 미국 특허 제 6,307,487 호.
발명의 명칭이 "Multi-Stage Code Generator and Decoder for Communication Systems" 인 미국 특허출원 제 10/032,156 호.

Claims (59)

  1. 복수의 출력 심볼들 및 복수의 소스 심볼들을 가지고, 각 출력 심볼이 하나 이상의 소스 심볼과 연관되고 - 하나 이상의 소스 심볼과 연관된 상기 출력 심볼들은 1 차 이상의 출력 심볼이라고 함 - , 하나 이상의 출력 심볼은 2 이상의 소스 심볼들과 연관되고 - 2 이상의 소스 심볼들과 연관된 상기 출력 심볼들은 2 차 이상의 출력 심볼이라고 함 - , 하나 이상의 소스 심볼은 활성으로 표시되는 연쇄 반응 코드에서,
    (i) 2 차 이상의 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 선택하는 단계; 및
    (ii) 2 차 이상의 상기 출력 심볼과 연관된 상기 선택된 소스 심볼을 비활성화하는 단계; 를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  2. 제 1 항에 있어서,
    상기 선택된 소스 심볼을 비활성화하는 상기 (ii) 단계는, 비활성화된 소스 심볼 및 하나 이상의 복구가능한 소스 심볼을 생성하고, 각 복구가능한 소스 심볼은 1 차의 출력 심볼과 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  3. 제 2 항에 있어서,
    연쇄 반응 코드에 2 차 이상의 출력 심볼과 연관된 임의의 소스 심볼이 남아 있는 경우, 상기 (i) 및 (ii) 단계를 반복하는 단계를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  4. 제 2 항에 있어서,
    하나 이상의 비활성화된 소스 심볼과 하나 이상의 복구가능한 소스 심볼을 생성하기 위하여 상기 (i) 및 (ii) 단계를 1 회 이상 반복하는 단계를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  5. 제 1 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 단계는, 출력 심볼들 중 가장 큰 수와 연관된 활성 소스 심볼을 선택하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  6. 제 1 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 단계는, 2 차 이상의 출력 심볼과 각각 연관된 활성 소스 심볼 그룹으로부터 활성 소스 심볼을 무작위로 선택하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  7. 제 1 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 상기 (i) 단계는,
    (a) 활성 소스 심볼을 식별하는 단계;
    (b) 상기 식별된 활성 소스 심볼이 비활성화된 경우, 잠재적으로 복구가능한 활성 소스 심볼들의 수를 판단하는 단계; 및
    (c) 잠재적으로 복구가능한 소스 심볼들의 수가 소정수를 초과하지 않는 경우, 또 다른 활성 소스 심볼을 위하여 상기 (a) 및 (b) 단계를 반복하는 단계;
    를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  8. 제 3 항에 있어서,
    잠재적으로 복구가능한 소스 심볼들의 수가 소정수를 초과하지 않는 경우, 상기 비활성화된 소스 심볼을 재활성화하는 단계; 및
    또 다른 활성 소스 심볼을 선택하는 단계; 를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  9. 제 1 항에 있어서,
    상기 2 차 이상의 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 선택하는 상기 (i) 단계는,
    활성 소스 심볼들의 소정수와 연관된 출력 심볼과 연관된 소스 심볼을 식별하는 단계를 포함하고,
    상기 선택된 소스 심볼을 비활성화하는 단계는, 상기 식별된 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 제외한 모두를 비활성화하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  10. 제 9 항에 있어서,
    남아 있는 활성 소스 심볼은 출력 심볼들의 가장 작은 수와 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  11. 제 1 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 상기 (i) 단계는, 제 1 출력 심볼과 연관된 활성 소스 심볼을 선택하는 단계를 포함하고,
    상기 제 1 출력 심볼은 2 개의 활성 소스 심볼의 제 1 세트와 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  12. 제 11 항에 있어서,
    상기 제 1 세트의 2 개의 소스 심볼들 중 적어도 하나는 제 2 출력 심볼과 연관되고, 상기 제 2 출력 심볼은 2 개의 활성 소스 심볼의 제 2 세트와 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  13. 제 12 항에 있어서,
    상기 제 2 세트의 2 개의 소스 심볼들 중 적어도 하나는 제 3 출력 심볼과 연관되고, 상기 제 3 출력 심볼은 2 개의 활성 소스 심볼들의 제 3 세트와 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  14. 제 1 항에 있어서,
    (iii) 단 하나의 활성 소스 심볼과 연관된 하나 이상의 출력 심볼을 식별하는 단계;
    (iv) 상기 식별된 출력 심볼과 연관된 상기 활성 소스 심볼을 복구하는 단계; 및
    (v) 단 하나의 활성 소스 심볼과 연관된 출력 심볼이 남아있지 않은지 여부를 판단하는 단계 ; 를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  15. 제 14 항에 있어서,
    상기 단 하나의 소스 심볼과 연관된 상기 식별된 출력 심볼들 각각에 대하여 상기 (iv) 및 (v) 단계를 반복하는 단계를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  16. 제 2 항에 있어서,
    (iii) 상기 하나 이상의 비활성화된 소스 심볼들의 값을 복구하는 단계; 및
    (iv) 상기 하나 이상의 비활성화된 소스 심볼의 상기 복구된 값들에 기초하 여, 하나 이상의 복구가능한 소스 심볼들의 값들을 판단하는 단계; 를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  17. 제 16 항에 있어서,
    1 회 이상 상기 (i) 내지 (iv) 단계를 반복하는 단계를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  18. 제 16 항에 있어서,
    상기 하나 이상의 비활성화된 소스 심볼의 값을 복구하는 상기 (iii) 단계는, 상기 비활성화된 소스 심볼들 모두의 값들을 복구하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  19. 제 16 항에 있어서,
    상기 하나 이상의 소스 심볼의 값들을 판단하는 상기 (iv) 단계는, 상기 소스 심볼들 모두의 값들을 판단하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  20. 제 17 항에 있어서,
    상기 1 회 이상 상기 (i) 내지 (iv) 단계를 반복하는 상기 단계는, 활성 소스 심볼이 남아 있지 않을 때까지 상기 (i) 내지 (iv) 단계를 반복하는 단계를 포 함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 복수의 출력 심볼들 및 복수의 소스 심볼들을 가지고, 각 출력 심볼이 하나 이상의 소스 심볼과 연관되고 - 하나 이상의 소스 심볼과 연관된 상기 출력 심볼들은 1 차 이상의 출력 심볼이라고 함 - , 하나 이상의 출력 심볼은 2 이상의 소스 심볼들과 연관되고 - 2 이상의 소스 심볼들과 연관된 상기 출력 심볼들은 2 차 이상의 출력 심볼이라고 함 - , 하나 이상의 소스 심볼은 활성으로 표시되는 연쇄 반응 코드에서,
    (i) 상기 연쇄 반응 코드 내의 어떠한 출력 심볼도 단 하나의 소스 심볼과 연관되어 있지 않은지 여부를 판단하는 단계;
    (ii) 2 차 이상의 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 선택하는 단계; 및
    (iii) 2 차 이상의 출력 심볼과 연관된 상기 선택된 소스 심볼을 비활성화하는 단계 ; 를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  25. 제 24 항에 있어서,
    상기 선택된 소스 심볼을 비활성화하는 상기 (iii) 단계는, 비활성화된 소스 심볼 및 하나 이상의 복구가능한 소스 심볼을 생성하고, 각 복구가능한 소스 심볼은 1 차의 출력 심볼과 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  26. 제 25 항에 있어서,
    상기 (i) 내지 (iii) 단계를 반복하는 단계를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  27. 복수의 다중 스테이지 출력 심볼들 및 복수의 소스 심볼들을 가지고, 각 다중 스테이지 출력 심볼이 출력 심볼 또는 검사 심볼 중 어느 하나를 구비하고, 상 기 다중 스테이지 출력 심볼들 각각이 하나 이상의 소스 심볼과 연관되고 - 하나 이상의 소스 심볼과 연관된 상기 다중 스테이지 출력 심볼들은 1 차 이상의 다중 스테이지 출력 심볼이라고 함 - , 하나 이상의 다중 스테이지 출력 심볼은 2 이상의 소스 심볼들과 연관되고 - 2 이상의 소스 심볼들과 연관된 상기 다중 스테이지 출력 심볼들은 2 차 이상의 다중 스테이지 출력 심볼이라고 함 - , 하나 이상의 소스 심볼은 활성으로 표시되는 연쇄 반응 코드에서,
    (i) 2 차 이상의 다중 스테이지 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 선택하는 단계; 및
    (ii) 2 차 이상의 다중 스테이지 출력 심볼과 연관된 상기 선택된 소스 심볼을 비활성화하는 단계; 를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  28. 제 27 항에 있어서,
    상기 선택된 소스 심볼을 비활성화하는 상기 (ii) 단계는, 비활성화된 소스 심볼 및 하나 이상의 복구가능한 소스 심볼을 생성하고, 각 복구가능한 소스 심볼은 1 차의 출력 심볼 또는 1 차의 검사 심볼과 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  29. 제 28 항에 있어서,
    연쇄 반응 코드에 2 차 이상의 다중 스테이지 출력 심볼과 연관된 임의의 소 스 심볼이 남아 있는 경우, 상기 (i) 및 (ii) 단계를 반복하는 단계를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  30. 제 28 항에 있어서,
    하나 이상의 비활성화된 소스 심볼과 하나 이상의 복구가능한 소스 심볼을 생성하기 위하여 상기 (i) 및 (ii) 단계를 1 회 이상 반복하는 단계를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  31. 제 27 항에 있어서,
    상기 다중 스테이지 출력 심볼들 중 하나 이상은 출력 심볼을 포함하고, 상기 다중 스테이지 출력 심볼들 중 하나 이상은 검사 심볼을 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  32. 제 27 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 상기 (i) 단계는, 2 차 이상의 다중 스테이지 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 선택하는 단계를 포함하고, 상기 다중 스테이지 출력 심볼은 2 이상의 검사 심볼들을 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  33. 제 27 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 (i) 단계는, 상기 다중 스테이지 출력 심볼들 중 가장 큰 수와 연관된 상기 활성 소스 심볼들 중 하나를 선택하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  34. 제 27 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 상기 (i) 단계는, 2 차 이상의 다중 스테이지 출력 심볼과 각각 연관된 활성 소스 심볼 그룹으로부터 활성 소스 심볼을 무작위로 선택하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  35. 제 27 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 상기 (i) 단계는,
    (a) 활성 소스 심볼을 식별하는 단계;
    (b) 상기 식별된 활성 소스 심볼이 비활성화된 경우, 잠재적으로 복구가능한 활성 소스 심볼들의 수를 판단하는 단계; 및
    (c) 상기 잠재적으로 복구가능한 소스 심볼의 수가 소정수를 초과하지 않는 경우, 또 다른 활성 소스 심볼을 위하여 상기 (a) 및 (b) 단계를 반복하는 단계;
    를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  36. 제 30 항에 있어서,
    잠재적으로 복구가능한 소스 심볼들의 수가 소정수를 초과하지 않는 경우, 상기 비활성화된 소스 심볼을 재활성화하는 단계; 및
    또 다른 활성 소스 심볼을 선택하는 단계; 를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  37. 제 27 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 상기 (i) 단계는, 활성 소스 심볼들의 소정수와 연관된 다중 스테이지 출력 심볼과 연관된 소스 심볼을 식별하는 단계를 포함하고,
    상기 선택된 소스 심볼을 비활성화하는 단계는, 상기 식별된 다중 스테이지 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 제외한 모두를 비활성화하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  38. 제 37 항에 있어서,
    상기 선택된 소스 심볼은 다중 스테이지 출력 심볼들의 가장 작은 수와 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  39. 제 27 항에 있어서,
    상기 활성 소스 심볼들 중 하나를 선택하는 상기 (i) 단계는, 제 1 다중 스테이지 출력 심볼과 연관된 활성 소스 심볼을 선택하는 단계를 포함하고,
    상기 제 1 다중 스테이지 출력 심볼은 2 개의 활성 소스 심볼의 제 1 세트와 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  40. 제 39 항에 있어서,
    상기 제 1 세트의 2 개의 소스 심볼들 중 적어도 하나는 제 2 다중 스테이지 출력 심볼과 연관되고, 상기 제 2 다중 스테이지 출력 심볼은 2 개의 활성 소스 심볼의 제 2 세트와 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  41. 제 40 항에 있어서,
    상기 제 2 세트의 2 개의 소스 심볼들 중 적어도 하나는 제 3 다중 스테이지 출력 심볼과 연관되고, 상기 제 3 다중 스테이지 출력 심볼은 2 개의 활성 소스 심볼들의 제 3 세트와 연관되는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  42. 제 27 항에 있어서,
    (iii) 단 하나의 활성 소스 심볼과 연관된 하나 이상의 다중 스테이지 출력 심볼을 식별하는 단계;
    (iv) 상기 식별된 다중 스테이지 출력 심볼과 연관된 상기 활성 소스 심볼을 복구하는 단계; 및
    (v) 단 하나의 활성 소스 심볼과 연관된 다중 스테이지 출력 심볼이 남아있지 않은지 여부를 판단하는 단계 ; 를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  43. 제 28 항에 있어서,
    (iii) 상기 하나 이상의 비활성화된 소스 심볼들의 값을 복구하는 단계; 및
    (iv) 상기 하나 이상의 비활성화된 소스 심볼의 상기 복구된 값들에 기초하여, 하나 이상의 복구가능한 소스 심볼들의 값들을 판단하는 단계; 를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  44. 제 43 항에 있어서,
    1 회 이상 상기 (i) 내지 (iv) 단계를 반복하는 단계를 더 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  45. 제 43 항에 있어서,
    상기 하나 이상의 비활성화된 소스 심볼들의 값을 복구하는 상기 (iii) 단계는, 상기 비활성화된 소스 심볼들 모두의 값들을 복구하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  46. 제 43 항에 있어서,
    상기 하나 이상의 소스 심볼의 값들을 판단하는 상기 (iv) 단계는, 상기 소스 심볼들 모두의 값들을 판단하는 단계를 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  47. 제 44 항에 있어서,
    상기 다중 스테이지 출력 심볼들 중 하나 이상은 상기 (i)-(v) 단계를 위한 출력 심볼 및 상기 (i)-(v) 단계의 후속하는 반복을 위한 검사 심볼을 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  48. 제 44 항에 있어서,
    상기 다중 스테이지 출력 심볼들 중 하나 이상은 상기 (i)-(v) 단계를 위한 검사 심볼 및 상기 (i)-(v) 단계의 후속하는 반복을 위한 출력 심볼을 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  49. 제 44 항에 있어서,
    상기 다중 스테이지 출력 심볼들 중 하나 이상은, 활성 소스 심볼이 남아 있지 않을 때까지 상기 (i)-(v) 단계를 위한 출력 심볼을 포함하고, 그 후 상기 하나 이상의 다중 스테이지 출력 심볼은 검사 심볼을 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  50. 제 44 항에 있어서,
    상기 다중 스테이지 출력 심볼들 중 하나 이상은, 활성 소스 심볼이 남아 있지 않을 때까지 상기 (i)-(v) 단계를 위한 검사 심볼을 포함하고, 그 후 상기 하나 이상의 다중 스테이지 출력 심볼은 출력 심볼을 포함하는 것을 특징으로 하는 연쇄 반응 코드 처리 방법.
  51. 복수의 출력 심볼들 및 복수의 소스 심볼들을 가지고, 각 출력 심볼이 하나 이상의 소스 심볼과 연관되고 - 하나 이상의 소스 심볼과 연관된 상기 출력 심볼들은 1 차 이상의 출력 심볼이라고 함 - , 하나 이상의 출력 심볼은 2 이상의 소스 심볼들과 연관되고 - 2 이상의 소스 심볼들과 연관된 상기 출력 심볼들은 2 차 이상의 출력 심볼이라고 함 - , 하나 이상의 소스 심볼은 활성으로 표시되는 연쇄 반응 코드를 처리하도록 구성된 시스템에 있어서,
    (i) 2 차 이상의 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 선택하는 수단; 및
    (ii) 2 차 이상의 상기 출력 심볼과 연관된 상기 선택된 소스 심볼을 비활성화하는 수단; 을 구비하는 것을 특징으로 하는 연쇄반응 코드 처리 시스템.
  52. 제 51 항에 있어서,
    상기 선택된 소스 심볼을 비활성화하는 상기 (ii) 수단은, 비활성화된 소스 심볼 및 하나 이상의 복구가능한 소스 심볼을 생성하고, 각 복구가능한 소스 심볼은 1 차의 출력 심볼과 연관되는 것을 특징으로 하는 연쇄반응 코드 처리 시스템.
  53. 제 51 항에 있어서,
    (iii) 단 하나의 활성 소스 심볼과 연관된 하나 이상의 출력 심볼을 식별하는 수단;
    (iv) 상기 식별된 출력 심볼과 연관된 상기 활성 소스 심볼을 복구하는 수단; 및
    (v) 단 하나의 활성 소스 심볼과 연관된 출력 심볼이 남아있지 않은지 여부를 판단하는 수단; 을 더 구비하는 것을 특징으로 하는 연쇄반응 코드 처리 시스템.
  54. 제 52 항에 있어서,
    (iii) 하나 이상의 비활성화된 소스 심볼들의 값들을 복구하는 수단; 및
    (iv) 상기 비활성화된 소스 심볼들의 상기 복구된 값들에 기초하여, 상기 하나 이상의 복구가능한 소스 심볼들의 값들을 판단하는 수단; 을 더 구비하는 것을 특징으로 하는 연쇄반응 코드 처리 시스템.
  55. 제 54 항에 있어서,
    상기 (i)-(iv) 수단은 컴퓨터 프로세서로 구성되는 것을 특징으로 하는 연쇄 반응 코드 처리 시스템.
  56. 복수의 출력 심볼들 및 복수의 소스 심볼들을 가지고, 각 출력 심볼이 하나 이상의 소스 심볼과 연관되고 - 하나 이상의 소스 심볼과 연관된 상기 출력 심볼들은 1 차 이상의 출력 심볼이라고 함 - , 하나 이상의 출력 심볼은 2 이상의 소스 심볼들과 연관되고 - 2 이상의 소스 심볼들과 연관된 상기 출력 심볼들은 2 차 이상의 출력 심볼이라고 함 - , 하나 이상의 소스 심볼은 활성으로 표시되는 연쇄 반응 코드를 처리하기 위한 컴퓨터 프로그램 제품을 포함하는 컴퓨터 판독가능한 기록 매체로서,
    (i) 2 차 이상의 출력 심볼과 연관된 상기 활성 소스 심볼들 중 하나를 선택하는 명령어 코드; 및
    (ii) 2 차 이상의 상기 출력 심볼과 연관된 상기 선택된 소스 심볼을 비활성화하는 명령어 코드; 를 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 기록 매체.
  57. 제 56 항에 있어서,
    상기 선택된 소스 심볼을 비활성화하는 상기 (ii) 명령어 코드는, 비활성화된 소스 심볼 및 하나 이상의 복구가능한 소스 심볼을 생성하고, 각 복구가능한 소스 심볼은 1 차의 출력 심볼과 연관되는 것을 특징으로 하는 컴퓨터 판독가능한 기록 매체.
  58. 제 57 항에 있어서,
    (iii) 단 하나의 활성 소스 심볼과 연관된 하나 이상의 출력 심볼을 식별하는 명령어 코드;
    (iv) 상기 식별된 출력 심볼과 연관된 상기 활성 소스 심볼을 복구하는 명령어 코드; 및
    (v) 단 하나의 활성 소스 심볼과 연관된 출력 심볼이 남아있지 않은지 여부를 판단하는 명령어 코드; 를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 기록 매체.
  59. 제 58 항에 있어서,
    (iii) 하나 이상의 비활성화된 소스 심볼들의 값들을 복구하는 명령어 코드; 및
    (iv) 상기 비활성화된 소스 심볼들의 상기 복구된 값들에 기초하여, 상기 하나 이상의 복구가능한 소스 심볼들의 값들을 판단하는 명령어 코드; 를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 기록 매체.
KR1020047020180A 2002-06-11 2003-06-10 복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의디코딩 KR100950186B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020047020180A KR100950186B1 (ko) 2002-06-11 2003-06-10 복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의디코딩

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60/388,129 2002-06-11
KR1020047020180A KR100950186B1 (ko) 2002-06-11 2003-06-10 복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의디코딩

Publications (2)

Publication Number Publication Date
KR20050020981A KR20050020981A (ko) 2005-03-04
KR100950186B1 true KR100950186B1 (ko) 2010-03-29

Family

ID=41784202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047020180A KR100950186B1 (ko) 2002-06-11 2003-06-10 복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의디코딩

Country Status (1)

Country Link
KR (1) KR100950186B1 (ko)

Also Published As

Publication number Publication date
KR20050020981A (ko) 2005-03-04

Similar Documents

Publication Publication Date Title
JP4224022B2 (ja) イナクティブ化によって連鎖反応符号を復号化するためのシステムおよび処理
US9240810B2 (en) Systems and processes for decoding chain reaction codes through inactivation
KR101216735B1 (ko) 프로덕트 부호의 복호 방법 및 장치
JP2004147318A (ja) Ldpc復号化装置及びその方法
JP2006135980A (ja) 連結された反復型と代数型の符号化
JPH02278921A (ja) 2進データの符号化及び復号のための方法及び復号装置
CN109873646B (zh) 使用级联码的软芯片猎杀恢复
US20170047945A1 (en) Data sending method and apparatus
TW202001920A (zh) 在資料儲存系統中用於改善資料回復之方法及裝置
KR100950186B1 (ko) 복구된 심볼들의 비활성화를 통한 연쇄 반응 코드들의디코딩
WO2019013663A1 (en) GENERAL LOW DENSITY PARITY CHECK CODES (GLDPC)
KR102007163B1 (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치
WO2020139234A1 (en) Performance enhancement of polar codes for short frame lengths considering error propagation effects
CN110289863B (zh) 译码设备、方法及信号传输系统
JP5826202B2 (ja) 符号化装置、復号装置、符号化方法、復号方法及びプログラム
KR101670615B1 (ko) 블록 데이터 어레이를 이용한 오류 정정 장치 및 방법
KR20240049911A (ko) 염기서열의 반복 배치를 방지하기 위한 이진 데이터 섞는 방법
CN117609488A (zh) 小重量码字的搜索方法、装置、计算机存储介质及终端
WO2020151835A1 (en) Combined belief propgation (bp) and ordered statistics decoding (osd) for concatenated codes

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
FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 10