KR20130088082A - 슈퍼차지드 코드들 - Google Patents

슈퍼차지드 코드들 Download PDF

Info

Publication number
KR20130088082A
KR20130088082A KR1020130010614A KR20130010614A KR20130088082A KR 20130088082 A KR20130088082 A KR 20130088082A KR 1020130010614 A KR1020130010614 A KR 1020130010614A KR 20130010614 A KR20130010614 A KR 20130010614A KR 20130088082 A KR20130088082 A KR 20130088082A
Authority
KR
South Korea
Prior art keywords
codewords
sets
coding
code words
encoder
Prior art date
Application number
KR1020130010614A
Other languages
English (en)
Other versions
KR101436973B1 (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 KR20130088082A publication Critical patent/KR20130088082A/ko
Application granted granted Critical
Publication of KR101436973B1 publication Critical patent/KR101436973B1/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
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

k 입력 심벌들을 소실 채널(erasure channel)상에서의 송신을 위한 n 출력 심벌들로 인코딩하는 시스템 및 방법이 제공되어서 원래 k 입력 심벌들은 어떤 재송신의 필요 없이 n 출력 심벌들의 서브셋(subset)으로부터 복원될 수 있다. 심벌은 하나이상의 비트(bit)들을 포함하는 일반적인 데이터 단위(unit)이며, 예를 들어 , 패킷(packet)이 될 수 있는, 이다. 시스템 및 방법은 작고 그리고 큰 인코딩 블럭 사이즈들 둘 모두를 위해 낮은 인코딩 및 디코딩 계산량(computational complexity)을 가지는 이상적인 MDS 코드에 매우 근접한 성능을 획득하기 위한 블럭 코드(block code)들 및 병렬 필터 코드(parallel filter code)들을 포함하는 소거 코드들의 네트워크를 활용한다. 이 네트워크의 소거 코드(erasure code)들은 슈퍼차지드 코드(supercharged code)로 지칭된다. 슈퍼차지드 코드는 예를 들어,인터넷 프로토콜 수트(suite)의 네트워크, 애플리케이션, 또는 전송 레이어들에서 패킷수준 보호(packet-level protection)을 제공하는데 사용될 수 있다.

Description

슈퍼차지드 코드들{SUPERCHARGED CODES}
관련 출원들에 대한 상호 참조
본 출원은 2012년 1월 30일에 출원된 미국 가특허 출원 번호 61/592,202, 2012년 4월 10일에 출원된 미국 가특허 출원 번호 61/622,223, 2012년 5월 11일에 출원된 미국 가특허 출원 번호 61/646,037, 2012년 9월 26일에 출원된 미국 가특허 출원번호 61/706,045의 이익을 주장하고, 이것들의 전부는 참조로써 본원에 통합된다.
기술 분야
본 출원은 일반적으로 소실 채널(erasure channel)상에서 송신을 위한 심벌(symbol)들의 코딩(coding)에 관한 것으로, 보다 상세하게는 패킷 소실 채널상에서의 송신을 위한 패킷들의 코딩에 관한 것이다.
패킷 소실 채널(packet erasure channel)은 송신된 패킷들이 송신된 패킷들이 수신되거나 손실되고 임의의 손실된 패킷의 위치가 알려지는 통신 채널 모델이다. 인터넷은 통상 패킷 소실 채널로서 모델화될 수 있다. 이것은 인터넷(Internet)상에서 송신된 패킷들이 변질(corruption) 또는 정체(congestion)로 인하여 손실되고 임의의 손실된 패킷의 위치는 각 수신된 패킷의 헤더(header) 또는 페이로드(payload)에 포함된 시퀀스(sequence) 번호로부터 추론될 수 있기 때문이다.
패킷들의 스트림(stream)에 의해 운반되는 데이터 타입에 의존하는 손실 패킷(lost packet)은 데이터의 품질을 떨어뜨리거나 심지어 수신기에서 사용할 수 없는 데이터를 제공한다. 따라서, 복원 기법(recovery scheme)들이 소실 채널상에서 송신된 패킷들이 수신되도록 어느 정도의 신뢰도의 수준을 제공하는데 일반적으로 사용된다. 예를 들어, 재송신 기법(retransmission scheme)들이 많은 패킷 기반 네트워크(pack-based network)들에서 손실된 패킷들을 복원하는데 사용되지만, 재송신들은 예를 들어, 송신기와 수신기 사이에서의 긴 거리 또는 채널이 심하게 손상되었을 때 긴 지연(delay)들을 야기할 수 있다. 이런 저런 이유들 때문에, 소거 코드(erasure code)를 사용하는 순방향 오류 정정(FEC: forward error correction)이 통상의 재송신 기법을 대신하여 또는 그것과 결합하여 종종 구현된다.
소거 코드는 k 패킷들의 스트림을 n 패킷들의 보다 긴 스트림으로 인코딩(encode)하여 원래 k 패킷들의 스트림은 어떤 재송신의 필요 없이 n 패킷들의 서브셋(subset)으로부터 수신기에서 복원될 수 있다. 소거 코드의 성능은 그것의 수신 효율(reception efficiency) 및 그것의 인코딩(encoding) 및 디코딩(decoding) 알고리즘과 관련된 계산량(computational complexity)에 기반하여 특징화될 수 있다. 소거 코드의 수신 효율은 비율(fraction) k'/k에 의해 주어지고, 여기서 k'은 원래 k 패킷들의 스트림을 복원하기 위해서 수신될 필요가 있는 n 패킷들의 최소 숫자이다. 어떤 소거 코드들은 최적의 수신 효율(예, 가장 높게 획득할 수 있는 수신 효율)을 가질 수 있고, 송신된 n 패킷들로부터 임의의(및 단지) k 패킷들을 이용하여 원래의 k 패킷들의 스트림을 복원할 수 있다. 이런 코드들은 MDS(maximum distance separable)코드들로 불린다.
리드-솔로몬 코드(Reed-Solomon code)는 최적의 수신 효율을 가지는 MDS 코드이지만, 리드-솔로몬 코드를 구현하는데 사용되는 전형적인 인코딩 및 디코딩 알고리즘들은 매우 높은 관련된 계산량들을 가진다. 구체적으로, 그것들의 계산량들은 패킷들 n 의 수에 따라 늘어나고 그리고 지수 O(nlog(n))를 가진다. 이것은 인터넷(Internet)을 포함하여 세그먼트(segment)된 큰 파일(file)들/스트림(stream)들의 송신을 많은, 잠재적으로 큰, 패킷들로 지원하는 많은 패킷 기반 네트워크들에 대한 순수 리드-솔로몬 해결책을 비실용적으로 만든다.
본 출원은 일반적으로 소실 채널(erasure channel)상에서 송신을 위한 심벌(symbol)들의 코딩(coding)에 관한 것으로, 보다 상세하게는 패킷 소실 채널상에서의 송신을 위한 패킷들의 코딩에 관한 것이다.
일 측면에 따라, 메시지들을 형성하는 입력 심벌(input symbol)들의 소거 코딩(erasure coding)을 위한 방법이 제공되고, 방법은
상기 메시지들에 기반하여 제 1 , 제 2 및 제 3 셋의 코드 워드(code word)들을 각각 제공하는 적어도 세개의 블럭 코딩 동작(block coding operation)을 구현하는 단계;
상기 제 1 셋의 코드 워드들에 기반하여 제 4 및 제 5 셋의 코드 워드들을 각각 제공하는 적어도 두개의 필터 코딩 동작(filter coding operation)을 구현하는 단계;
상기 제 1 셋의 코드 워드들의 비트들이 고려되는 순서(order)가 상기 두개의 필터 코딩 동작들 중 적어도 하나에 대해 수정되는 단계;
소실 채널(erasure channel)상에서의 송신을 위한 인코딩된 심벌(symbol)들을 형성하기 위해서 상기 제2, 제 3 , 제 4 및 제 5 셋들의 코드 워드들을 병렬 연접(concatenation)하는 단계;를 포함한다.
바람직하게는, 방법은
상기 제 2 및 제 3 셋들의 코드 워드들이 상기 제 4 및 제 5 셋들의 코드 워드들과 병렬 연접되기 전에 상기 제 2 및 제 3 셋들의 코드 워드들이 각각 일정 횟수(some number of times) 반복되는 반복 코딩 동작(repetition coding operation)을 구현하는 단계;를 더 포함한다.
바람직하게는, 상기 제 2, 제 3, 제 4 및 제 5 셋들의 코드 워드들이 배타적 논리합(exclusive or) 동작을 이용하여 병렬 연접된다.
바람직하게는, 방법은
상기 제 2, 제 3, 제 4 및 제 5 셋들의 코드 워드들을 병렬 연접하기 전에 상기 제 4 및 제 5 셋들의 코드 워드들을 불규칙적인 방식으로 함께 다중화(multiplexing)하는 단계;를 더 포함한다.
바람직하게는, 상기 제 1 셋의 코드 워드들을 제공하는 상기 블럭 코딩 동작들 중 하나는 바이너리 블럭 코드(binary block code)를 구현한다.
바람직하게는, 상기 제 2 셋의 코드 워드들을 제공하는 상기 블럭 코딩 동작들 중 하나는 유한체(finite field) 상에서 비-바이너리 블럭 코드(non-binary block code)를 구현한다.
바람직하게는, 상기 비-바이너리 블럭 코드는 리드-솔로몬 블럭 코드(Reed-Solomon block code)이다.
바람직하게는, 상기 제 3 셋의 코드 워드들을 제공하는 상기 블럭 코딩 동작들 중 하나는 바이너리 블럭 코드(binary block code)를 구현한다.
바람직하게는, 상기 두개의 필터 코딩 동작들중 적어도 하나는 꼬리물기(tailbiting) 필터를 사용한다.
일 측면에 따라, 메시지들을 형성하는 입력 심벌들의 소거 코딩(erasure coding)을 위한 인코더(encoder)가 제공되고, 인코더는
상기 메시지들에 기반하여 제 1 , 제 2 및 제 3 셋의 코드 워드(code word)들을 각각 제공하도록 구성된 세개의 블럭 코딩 모듈(blocking coding module)들;
상기 제 1 셋의 코드 워드들에 기반하여 제 4 및 제 5 셋의 코드 워드들을 각각 제공하도록 구성된 두개의 필터 코딩 모듈(filter coding module);
상기 제 1 셋의 코드 워드들의 비트들이 고려되는 순서(order)가 상기 두개의 필터 코딩 동작들 중 적어도 하나를 대하여 수정되도록 구성된 인터리버(interleaver);
소실 채널(erasure channel)상에서의 송신을 위한 인코딩된 심벌(symbol)들을 형성하기 위해서 상기 제2, 제 3 , 제 4 및 제 5 셋들의 코드 워드들을 병렬 연접(concatenation)하도록 구성된 연접 모듈(concatenation module);를 포함한다.
바람직하게는, 인코더는
상기 제 2 및 제 3 셋들의 코드 워드들이 상기 연접 모듈에 의해 상기 제 4 및 제 5 셋들의 코드 워드들과 병렬 연접되기 전에 상기 제 2 및 제 3 셋들의 코드 워드들이 일정 횟수 반복되도록 구성된 반복 코딩 모듈(repetition coding module);를 더 포함한다.
바람직하게는, 인코더는
상기 연접 모듈에 의해 상기 제 2, 제 3 , 제 4 및 제 5 셋들의 코드 워드들이 병렬 연접되기 전에 상기 제 4 및 제 5 셋들의 코드 워드들을 불규칙적인 방식으로 함께 다중화(multiplex)하도록 구성된 다중화기(multipelexer);를 더 포함한다.
바람직하게는, 상기 제 2 셋의 코드 워드들을 제공하도록 구성된 상기 세개의 블럭 코딩 모듈들 중 하나는 유한체(finite field) 상에서 비-바이너리 블럭 코드(non-binary block code)를 구현한다.
바람직하게는, 상기 비-바이너리 블럭 코드는 리드-솔로몬 블럭 코드(Reed-Solomon block code)이다.
바람직하게는, 상기 두개의 필터 코딩 모듈들 중 적어도 하나는 꼬리물기(tailbiting) 필터를 포함한다.
바람직하게는, 상기 두개의 필터 코딩 모듈들 중 적어도 하나는 FIR(finite impulse response) 필터를 포함한다.
바람직하게는, 상기 연접 모듈은 배타적 논리합(exclusive or operation)을 구현한다.
바람직하게는, 상기 인코더는 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 태블릿 컴퓨터(tablet computer), 모바일 폰(mobile phone), 셋 탑 박스(set-top box) 또는 라우터(router)에서 구현된다.
일 측면에 따라, 메시지들을 형성하는 입력 심벌들의 소거 코딩(erasure coding)을 위한 인코더(encoder)가 제공되고, 인코더는
상기 메시지들에 기반하여 제 1 셋(set)의 코드 워드(code word)들을 제공하도록 구성된 블럭 코딩 모듈(blocking coding module);
상기 메시지들에 기반하여 제 2 및 제 3 셋들의 코드 워드(code word)들을 각각 제공하도록 구성되고 인터리버(interleaver)에 의해 분리되는 두개의 필터 코딩 모듈(filter coding module)들; 및
소실 채널(erasure channel)상에서의 송신을 위한 인코딩된 심벌(symbol)들을 형성하기 위해서 상기 제 1, 제 2 , 제 3 셋들의 코드 워드들을 병렬 연접(concatenation)하도록 구성된 연접 모듈(concatenation module);를 포함한다.
일 측면에 따라, 디코더는
프로세서(processor); 및
메모리(memory)를 포함하되,
상기 프로세서는
상기 심벌들에 의해 형성된 메시지들에 기반하여 제 1 셋(set)의 코드 워드(code word)들을 제공하기 위해서 블럭 코딩 동작(blocking coding operation)을 구현하는 단계;
상기 메시지들에 기반하여 제 2 및 제 3 셋들의 코드 워드(code word)들을 각각 제공하기 위해서, 인터리버(interleaver)에 의해 분리되는, 적어도 두개의 필터 코딩 동작(filter coding operation)들을 구현하는 단계; 및
제 1 , 제 2 및 제 3 셋의 코드 워드(code word)들을 연접(concatenation)하는 단계;에 의해 인코딩된 심벌들을 디코딩하도록 구성된다.
본 발명의 슈퍼차지드 코드들을 이용하는 시스템 및 방법은 낮은 인코딩 및 디코딩 계산량(computational complexity)을 가지는 이상적인 MDS 코드에 매우 근접한 성능을 가질 수 있는 효과가 있다.
본 발명의 슈퍼차지드 코드들을 이용하는 시스템 및 방법은 네트워크 아키텍쳐(network architecture)에서 네트워크, 애플리케이션, 또는 전송 레이어와 같은 다양한 레이어(layer)들에서 패킷수준 보호(packet-level protection)을 제공하는데 사용될 수 있다.
본원에 통합되고 명세서의 일부를 형성하는 첨부 도면들은 본 발명의 실시예들을 예시하고 설명과 함께 추가로 실시예들의 원리들을 설명들을 제공하고 그리고 관련 기술분야에 통상의 기술자가 실시예들을 만들고 사용이 가능하도록 한다.
도 1 은 본 발명의 실시예들에 따른 슈퍼차지드 코드(supercharged code)를 구현하는 인코더(encoder)의 블럭도(block diagram)를 도시한다.
도 2 는 본 발명의 실시예들에 따른 슈퍼차지드 코드를 구현하는 인코더에 의해 사용될 수 있는 예시적인 병렬 필터 코딩 모듈(parallel filter coding module)을 도시한다.
도 3 은 본 발명의 실시예들에 따른 병렬 필터 코드에 의해 사용될 수 있는 예시적인 FIR(finite impulse response) 필터를 도시한다.
도 4 는 본 발명의 실시예들에 따른 추가적 체계적인(systematic) 전처리(pre-processing) 모듈의 예외를 가지는 도 1 에서의 인코더의 동일한 구현을 갖는 인코더를 도시한다.
도 5 는 본 발명의 측면들을 구현하는데 사용될 수 있는 예시적인 컴퓨터 시스템의 블럭도를 도시한다.
본 발명은 이제 첨부 도면들과 관련하여 설명될 것이다. 도면에서 처음 나타나는 엘리먼트는 상응하는 참조 번호에서 가장 왼쪽의 숫자(들)에 의해 통상적으로 표시된다.
이하의 설명에서, 본 발명의 실시예들의 철저한 이해를 제공하기 위해서 다수의 구체적인 세부사항들이 제시된다. 그러나, 구조들, 시스템들, 및 방법들을 포함하는 실시예들은 이런 구체적인 세부사항들 없이 실행될 수 있는 것은 당해 기술의 통상의 기술자들에게 명확할 것이다. 본원에서의 설명 및 표시는 당해 기술분야의 숙련된 다른 사람들에게 그것들 작업의 요지를 가장 효과적으로 전달하기 위해 당해 기술 분야의 통상의 기술자 또는 경험된 사람들에 의해 사용되는 통상의 수단들이다. 다른 경우들에서, 본 발명의 측면들을 불필요하게 불명료하게 하는 것을 피하기 위해 주지의 방법들, 절차들, 컴포넌트(component)들 및 회로는 상세하게 설명되지 않는다.
명세서에서 "하나의 실시예" "일 실시예", " 예제 실시예"등으로 언급하는 것은 특정 특징, 구조, 또는 특성을 포함할 수 있는 실시예를 나타내지만 모든 실시예가 해당 특정 특징, 구조 또는 특성을 반드시 포함하는 것은 아닐 수 있다. 또한, 이러한 어구들은 반드시 동일한 실시예와 관련되지 않는다. 또한, 특정 특징, 구조 또는 특성이 일 실시예와 연계하여 설명될 때, 명확하게 설명되든지 아니든 간에 다른 실시예들과 연계하여 이런 특징, 구조 또는 특성들이 영향을 미치는 것은 당해 기술의 통상의 기술자의 지식범위 내에 있는 것으로 생각된다.
1. 개요(OVERVIEW)
본 발명은 k 입력 심벌들을 소실 채널(erasure channel)상에서의 송신을 위한 n 출력 심벌들로 인코딩하는 시스템 및 방법에 관한 것으로서 원래 k 입력 심벌들은 어떤 재송신의 필요 없이 n 출력 심벌들의 서브셋(subset)으로부터 복원될 수 있다. 심벌은 하나이상의 비트(bit)들을 포함하는 일반적인 데이터 단위(unit) 예를 들어, 패킷(packet)이 될 수 있는, 이다. 본 발명의 시스템 및 방법은 작고 그리고 큰 n의 값 둘 모두를 위해 낮은 인코딩 및 디코딩 계산량(computational complexity)을 가지는 이상적인 MDS 코드에 매우 근접한 성능을 획득하기 위한 블럭 코드(block code)들 및 병렬 필터 코드(parallel filter code)들을 포함하는 소거 코드들의 네트워크를 활용한다. 이 네트워크의 소거 코드(erasure code)들은 슈퍼차지드 코드(supercharged code)로 지칭된다.
2. 슈퍼차지드 코드들(Supercharged Code)
2.1. 인코더(Encoder)
도 1 은 본 발명의 실시예들에 따른 슈퍼차지드 코드(supercharged code)를 구현하는 인코더(encoder)(100) 의 블럭도(block diagram)를 도시한다. 인코더(100)은 k 입력 심벌들의 매트릭스 X를 소실 채널(erasure channel)상에서의 송신을 위한 n 출력 심벌들의 보다 긴 매트릭스 Y로 하드웨어, 소프트웨어 또는 그것들의 임의 조합으로 구현될 수 있어서, 원래 k 입력 심벌들은 어떤 재송신의 필요 없이 n 출력 심벌들의 서브셋(subset)으로부터 복원될 수 있다.
매트릭스 X에서 비트들의 각 로우(row)는 k 입력 심벌들의 다른 것들을 형성하고, Y에서 각 로우는 n 출력 심벌들의 다른 것들을 형성한다. 예를 들어, 매트릭스 X에서 비트들의 제 1 로우(row)(116)는 매트릭스 X에서 k 입력 심벌들의 첫번째를 형성하고, Y에서 비트들의 제 1 로우(118)는 매트릭스 Y에서 n 출력 심벌들의 첫번째를 형성한다. 추가하여, 매트릭스 X에서 비트들의 제 1 컬럼(column)은 메시지(message)로서 지칭되는 것을 형성하고, 그리고 매트릭스 Y에서 비트들의 각 상응하는 컬럼은 메시지의 코드 워드(code word)로서 지칭되는 것을 형성한다. 추가하여, 매트릭스 X에서 비트들의 제 1 컬럼(column)(120)은 하나의 메시지를 형성하고, 그리고 매트릭스 Y에서 비트들의 제 1 컬럼(122)은 그 메시지의 코드 워드(code word) 형성한다. 이후의, 매트릭스들 XY에서 비트들의 상응하는 컬럼들은 메시지들과 코드 워드들의 추가적인 쌍(pair)들을 형성한다.
인코더 (100)(이하에서 설명될)에서의 각 코딩 모듈은 입력 심벌들/메시지들의 매트릭스를 수신하고 그리고 매트릭스들 XY에 관해서 상기에서 설명된 동일한 일반적 형태의 출력 심벌들/코드 워드들의 출력 매트릭스를 생성한다. 일부 경우들에서, 인코더 (100)에서 코딩 모듈들은 직렬로 배치되어서 하나의 코딩 모듈에 의해 생성된 출력 심벌들/코드 워드들의 매트릭스는 인코더(100)에서 다른 코딩 모듈에 의해 수신된 입력 심벌들/메시지들의 매트릭스를 나타낸다. 입력 심벌들, 출력 심벌들, 메시지들 및 코드 워드들의 용어들은 이하의 본 발명을 통해서 이런 매트릭스들을 설명하기 위해서 일관된 방식으로 사용된다.
도 1 에 도시된 바와 같이, 인코더(100)는 블럭 코딩 모듈들(102,104 및 106), 반복 코딩 모듈(repetition coding module)(108 및 110) 및 병렬 필터 코딩 모듈(112)을 포함하는, 코딩 모듈들의 네트워크로 구성된다. 일반적으로, 블럭 코딩 모듈들(102, 104 및 106)에 의해 생성된 출력 코드 워드들은 정보량이 많고(informative) 그리고 높은 수신 효율을 제공하지만 디코딩하는 것이 복잡하지만, 병렬 필터 코딩 모듈(112)에 의해 생성되는 출력 코드 워드들은 디코딩하는 것이 비교적 더 쉽지만 그렇게 정보량이 많지 않다. 따라서, 인코더(100)는 반복 코딩 모듈들(108 및 110)을 사용하여서 블럭 코딩 모듈들(102 및 106)에 의해 생성된 출력 코드 워드들을 각각 보다 짧은 길이로 반복하고 그런 다음 n 슈퍼차지드 인코딩된 출력 심벌들을 생산하기 위해서 병렬 필터 코딩 모듈(112)에 의해 생성된 보다 긴 길이의 출력 코드 워드들과 배타적 논리합(XOR: exclusive or) 동작(114)(또는 다중화기(multiplexer)와 같은 다른 연접 모듈 또는 비-바이너리 유한체(non-binary finite field)상에서 XOR 동작함으로써)을 이용하여 그것들을 병렬로 연접(concatenate)한다. 코딩 모듈들의 이 네트워크는 작고 그리고 큰 인코딩 블럭 사이즈들 둘 모두(예, 작고 그리고 큰 k의 값들을 위해)를 위해 낮은 인코딩 및 디코딩 계산량(computational complexity)을 가지는 이상적인 MDS 코드에 매우 근접한 성능을 획득할 수 있다. 인코더(100)의 다른 실시예들에서, 두개의 블럭 코딩 모듈들(102 및 106)중 하나, 및/또는 블럭 코딩 모듈들(104) 및/또는 병렬 필터 코딩 모듈(112)로의 매트릭스 X의 직접 입력은 생략될 수 있는 것에 유의하여야 한다.
인코더(100)의 일 실시예에서, 블럭 코딩 모듈(102)는 매트릭스 X에서 k 입력 심벌들을 입력으로 수락하고 선형 매칭(linear mapping)을 통하여 n_b1 출력 심벌들을 생성한다:
C_B1=G_B1*X (1)
여기서, C_B1n_b1 출력 심벌들의 매트릭스이고 그리고 G_B1n_b1 x k 제너레이터 매트릭스(generator matrix)이다. 매트릭스 X에서 비트들의 각 컬럼(column)은 메시지를 형성하고, 그리고 매트릭스 C_B1에서 비트들의 각 상응하는 컬럼은 그 메시지의 코드 워드(code word) 형성한다. 코드 워드들은 n_b1 바이너리 비트들의 모든 가능한 조합들에 해당하는 2 n_b1 가능한 값들을 가질 수 있다. 그러나, 블럭 코딩 모듈(102)에 의해 구현되는 바이너리 선형 블럭 코드는 코드를 형성하기 위해서 2 n_b1 가능성들로부터 2 k 코드 워드들을 사용하며, 여기서 각 k 비트 메시지는 제너레이터 매트릭스 G_B1를 이용하여 이런 2 k 코드 워드들 중 하나로 유일하게 매핑된다. 일반적으로, 주어진 응용에 대해 충분한 에러 정정(error correction) 성능들로 출력들을 충분히 용이하게 디코딩하도록 제공하는 2 n_b1 가능성들로부터 선택된 2 k 코드 워드들 중 임의의 고유한 서브셋(subset)은 블럭 코딩 모듈(102)을 구현하는데 사용될 수 있다.
인코더(100)의 다른 실시예에서, 블럭 코딩 모듈(104)는 유사하게 매트릭스 X에서 k 입력 심벌들을 입력으로 수락하고 선형 맵핑(linear mapping)을 통하여 n_b2 출력 심벌들을 생성하는 바이너리 선형 블럭 코드를 구현한다:
C_B2=G_B2*X (2)
여기서, C_B2n_b2 출력 심벌들의 매트릭스이고 그리고 G_B2n_b2 x k 제너레이터 매트릭스(generator matrix)이다. 매트릭스 X에서 비트들의 각 컬럼(column)은 메시지를 형성하고, 그리고 매트릭스 C_B2에서 비트들의 각 상응하는 컬럼은 그 메시지의 코드 워드(code word) 형성한다. 코드 워드들은 n_b2 바이너리 비트들의 모든 가능한 조합들에 해당하는 2 n_b2 가능한 값들을 가질 수 있다. 그러나, 블럭 코딩 모듈(104)에 의해 구현되는 바이너리 선형 블럭 코드는 코드를 형성하기 위해서 2 n_b2 가능성들로부터 2 k 코드 워드들을 사용하며, 여기서 각 k 비트 메시지는 제너레이터 매트릭스 G_B2를 이용하여 이런 2 k 코드 워드들 중 하나로 유일하게 매핑된다.일반적으로, 주어진 응용에 대해 충분한 에러 정정(error correction) 성능들로 출력들을 충분히 용이하게 디코딩하도록 제공하는 2 n_b2 가능성들로부터 선택된 2 k 코드 워드들 중 임의의 고유한 서브셋(subset)은 블럭 코딩 모듈(104)을 구현하는데 사용될 수 있다.
인코더(100)의 또 다른 실시예에서, 블럭 코딩 모듈(106)는 매트릭스 X에서 k 입력 심벌들을 입력으로 수락하고 선형 맵핑(linear mapping)을 통하여 n_b3 출력 심벌들을 생성하는 비-시스템적(non-systematic) 리드 솔로몬 코드(Reed Solomon code)를 구현한다:
C_B3=G_B3*X (3)
여기서, C_B3n_b3 출력 심벌들의 매트릭스이고 그리고 G_B3n_b3 x k 밴더몬드 제너레이터 매트릭스(Vandermonde generator matrix)이다. 비 체계적인 리드 솔로몬 코드는 유한체 GF(256)상의 블럭 코딩 모듈(106)에 의해 구현될 수 있다. 블럭 코딩 모듈(106)은 다른 실시예들에서 그것들이 유한체들 상에서 구성되지 않은 것을 포함하는 다른 비-바이너리 블럭 코드(non-binary block codes)들을 구현할 수 있는 것에 유의한다. 예를 들어, 다른 실시예들에서, 블럭 코딩 모듈(106) 은 체계적인(비-체계적인에 반대인) 리드 솔로몬 코드 또는 다른 타입의 순환 블럭 코드(cyclic block code)를 구현할 수 있다.
인코더(100)의 또 다른 실시예에서, 병렬 필터 코딩 모듈(112)은 매트릭스C_B2 에서 n_b2 심벌들을 입력으로 수락하고 적어도 두개의 성분 필터(constituent filter) 또는 인터리버(interleaver)에 의해 분리된 컨벌루션 코드(convolution code)들의 병렬 연접에 의해 생성된 선형 블럭 코드를 이용하여 출력 심벌들 C_P의 더 긴 길이 n_p를 생성한다. 적어도 두개의 성분 필터 또는 컨벌루션 코드들은 동일하거나 또는 상이할 수 있다.
본 발명의 실시예들에 따른 예시적인 병렬 필터 코딩 모듈(parallel filter coding module)(200)의 블럭도가 도 2에 도시된다. 도시된 바와 같이, 병렬 필터 코딩 모듈(200)는 인터리버들(202 및 204), FIR(finite impulse response) 필터들(206 및 208) 및 다중화기(210)을 포함한다. 인터리버들(202 및 204)는 각각 매트릭스 C_B2에서 메시지들을 수신하고 처리한다. 인터리버(202)는 불규칙적이지만 미리 정해진 방식으로 매트릭스C_B2 에서 각 메시지 비트들의 순서를 재배열 하고 그리고 인터리버(204)는 불규칙적이지만 미리 정해진 방식, 인터리버(202)에 의해 구현되는 불규칙적인 방식과는 다른,으로 매트릭스C_B2 에서 각 메시지의 비트들의 순서를 재배열 한다. FIR 필터들(206 및 208)은 상이한 각각의 순서들에 따라 매트릭스 C_B2에서 메시지들의 비트들을 수신하기 때문에, FIR 필터(206)에 의해 생성된 매트릭스C_F1에서의 코드 워드들은 FIR 필터(208)에 의해 생성된 매트릭스C_F2에서의 코드 워드들과는 거의 항상,심지어 두개의 필터들이 동시에 구현될 때에도, 다를 것이다.
병렬 필터 코딩 모듈(200)의 다른 실시예들에서, 먼저 인터리빙 없이 FIR 필터들(206 및 208) 중 하나로 매트릭스 C_B2의 메시지를 공급하는 것이 가능할 수 있는 것에 유의한다. 두개 이상의 인터리버들 및 FIR 필터들이 병렬 필터 코딩 모듈(parallel filter coding module)(200)에 의해 구현될 수 있는 것에 또한 유의한다. 구체적으로, 하나이상의 추가적 쌍들의 인터리버들 및 FIR 필터들이 병렬 필터 코딩 모듈(200)에 추가될 수 있다. 추가하여, FIR 필터들(206 및 208)은 FIR 필터들의 꼬리 물기(tailbiting)로서 구현될 수 있고, FIR 필터들(206 및 208)의 상태들은 그것들 각각의 최종 상태들로 초기화되어 그것들 꼬리 물기가 이루어진다.
일반적으로, 주로 높은 웨이트(weight)의 코드 워드들(그것의 해밍 웨이트(Hamming weight)로서 또한 알려진 코드 워드의 웨이트는 단순히 그것이 함유하는 일(one)들의 숫자들이다)을 사용하는 것이 좋은 선형 코드인 것으로, 이는 그것들이 디코더(decoder)에 의해 보다 쉽게 구별될 수 있기 때문이다. 모든 선형 코드들은 얼마의 낮은 웨이트 코드 워드(low weight code word)들을 가지는 반면, 이런 낮은 웨이트 코드 워드들의 발생은 최소화되어야 한다. 인터리버(202 및 204)는 병렬 필터 코딩 모듈(200)에 의해 생성되는 낮은 웨이트 코드 워드들의 수를 줄이는데 도움이 되며, 여기서 병렬 필터 코딩 모듈(200)에 의해 생성된 코드 워드의 웨이트는 일반적으로 FIR 필터들(206 및 208)에 의해 생성되는 해당 코드 워드들의 웨이트(weight)들의 합이다. 보다 구체적으로, FIR 필터들(206 및 208)에 대한 각각의 메시지 입력들의 비트들은 상이한 인터리버(202 및 204)에 의한 불규칙적인 방식들로 재정리(reorder)되기 때문에, FIR 필터들(206 및 208) 둘 모두가 동시에 낮은 웨이트의 상응하는 코드 워드들을 생산하는 가능성은 감소된다. 따라서, 인터리버(202 및 204)는 병렬 필터 코딩 모듈(200)에 의해 생성되는 낮은 웨이트 코드 워드들의 수를 줄이는데 도움이 된다.
도 2에 추가로 도시된 것처럼, 매트릭스들 C_F1C_F2에 코드 워드들은 매트릭스 C_P에서의 코드 워드들을 생성하기 위해서 다중화기(multiplexer)(210)를 이용하여 병렬로 연접된다. 일 실시예에서, 다중화기(210)은 매트릭스들 C_F1C_F2에 코드 워드들을 불규칙적이지만 미리 정해진 방식으로 병렬로 연접한다.
도 3 은 본 발명의 실시예들에 따른 도 2 에서의 FIR 필터들(206 및 208) 중 하나 또는 둘 모두를 구현하기 위해 사용될 수 있는 예시적인 FIR 필터(300)을 도시한다. 도 3에 도시된 바와 같이, 매트릭스 C_B2 의 메시지로부터의 비트들은 왼쪽으로부터 FIR 필터(300)로 진입하고 그리고 레지스터들(302, 304 및 306)(T는 레지스터를 표시한다)를 포함하는 선형 이동 레지스터(linear shift register)에 저장된다. 매번 새로운 메시지 비트가 도달하고, 레지스터들(302, 304 및 306)에서의 메시지 비트들은 오른쪽으로 이동된다. FIR 필터(300)은 이동 레지스터에 저장된 메시지 비트들의 특정 서브셋(subset)을 가능한 한 이동 레지스터 입력에서의 현재 메시지 비트와 배타적 논리합(exclusive or)을 함으로써 입력 메시지들에 상응하는 코드 워드들의 각 비트를 계산한다. 도 3에 도시된 FIR 필터(300)의 실시예에서, 코드 워드 비트들은 XOR 동작(308)을 이용하여 이동 레지스터에 저장된 각 메시지 비트를 배타적 논리합을 함으로써 명확하게 계산된다.
FIR 필터(300)의 제한된 길이는 코드 워드 비트가 결정될 수 있는 메시지 비트들의 최대 숫자로서 정의된다. 도 3 에 도시된 FIR 필터(300)의 실시예에서, 제한된 길이는 4이며 이는 각 코드 워드 비트가 네개의 메시지 비트들까지에 의해서 결정될 수 있기 때문이다(세개의 메시지 비트들은 이동 레지스터에 그리고 현재 메시지 비트는 이동 레지스터의 입력에). FIR 필터(300)의 다른 실시예에서 상이한 제한 길이(constraint length)가 사용될 수 있고 그리고 코드 워드 비트들은 이동 레지스터에 저장된 메시지 비트들의 다른 서브셋을 배타적 논리합(exclusive or)함으로써 계산될 수 있는 것에 유의한다.
도 1 로 되돌아 가서, 인코더(100)의 또 다른 실시예에서 반복 코딩 모듈(108)은 매트릭스 C_B1에서 n_b1 심벌들을 입력으로 수락하고 선형 맵핑(linear mapping)을 통하여 C_R1 출력 심벌들의 더 긴 길이의 n 매트릭스를 생성하는 바이너리 선형 블럭 코드를 구현한다:
C_R1= G_R1*C_B1 (4)
여기서 G_R1n x n_b1 제너레이터 매트릭스이다. 적어도 하나의 실시예에서, 제너레이터 매트릭스G_R1에 의해 형성된 반복 코드(repetition code)는 C_B1 에서의 코드 워드들을 단순히 일정 횟수(어떤 정수 또는 정수 더하기 분수의 횟수) 반복하도록 설계되어서 C_B1에서의 길이 n_b1 코드 워드들은 C_R1 에서의 더 긴 길이 n 코드 워드들로 변형된다. 구체적으로, 수직으로 스택(stack)된 항등 행렬의 플로어(floor)(n/n_b1) 복사본 및 아래에 n mod n_b1 로우(row)들을 포함하는 분수(fractional) 항등 행렬인, 제너레이터 매트릭스G_R1는 항등 행렬(identity matrix)들의 n x n_b1 스택(stack)으로 구현될 수 있다.
인코더(100)의 또 다른 실시예에서 반복 코딩 모듈(110)은 매트릭스 C_B3에서 n_b3 심벌들을 입력으로 수락하고 선형 맵핑(linear mapping)을 통하여 C_R2 출력 심벌들의 더 긴 길이의 n 매트릭스를 생성하는 바이너리 선형 블럭 코드를 구현한다:
C_R2= G_R2*C_B3 (5)
여기서 G_R2n x n_b3 제너레이터 매트릭스이다. 적어도 하나의 실시예에서, 제너레이터 매트릭스G_R2에 의해 형성된 반복 코드(repetition code)는 C_B3 에서의 코드 워드들을 단순히 일정 횟수(어떤 정수 또는 정수 더하기 분수의 횟수) 반복하도록 설계되어서 C_B3에서의 길이 n_b3 코드 워드들은 C_R2 에서의 길이 n 코드 워드들로 변형된다. 구체적으로, 수직으로 스택(stack)된 항등 행렬의 플로어(floor)(n/n_b3) 복사본 및 아래에 n mod n_b3 로우(row)들을 포함하는 분수(fractional) 항등 행렬인, 제너레이터 매트릭스G_R2는 항등 행렬(identity matrix)들의 n x n_b3 스택(stack)으로 구현될 수 있다.
상기에서 설명된 바와 같이, 인코더 (100)은 네트워크 아키텍쳐(network architecture)에서 다양한 레이어(layer)들에서 패킷수준 보호(packet-level protection)을 제공하는데 사용될 수 있다. 예를 들어, 인코더 (100)은 통상적으로 TCP/IP로서 알려진 인터넷 프로토콜 수트(suite)의 네트워크, 애플리케이션, 또는 전송 레이어들에서 패킷수준 보호(packet-level protection)을 제공하는데 사용될 수 있다. 일 실시예에서, 인코더(100)은 서버 또는 클라이언트 컴퓨터(client computer)(예를 들어, 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 스마트 폰(smart phone), 라우터(router), 셋탑 박스(,set-top-box) 또는 다른 휴대용 통신 디바이스들)에서 인터넷과 같은 패킷 기반 네트워크상에서 다른 컴퓨터로의 송신을 위해 FLUTE(File Delivery over Unidirectional Transport) 프로토콜과 같은 어떤 프로토콜에 따라 포맷된 데이터의 k 패킷들, 세그먼트들, 또는 데이터그램(datagram)들을 인코딩하기 위해서 사용된다.
2.2.매트릭스 표현(Matrix Representation)
적어도 하나의 실시예에서, 인코더(100)에서 성분 블럭 코딩 모듈들(constituent block coding module)들의 전부는 선형 모듈들이기 때문에, 출력 매트릭스 Y는 선형 맵핑(linear mapping)을 통하여 표현될 수 있다:
Y= G_S*X (6)
여기서, 제너레이터 매트릭스 G_S는 인코더(100)에 의해 구현되는 포괄적인 슈퍼차지드 코드(supercharged code)를 설명한다. 제너레이터 매트릭스 G_S는 구체적으로:
G_S = G_P*[I_k; G_B2] + G_R1*G_B1 + G_R2*G_B3 (7)
여기서, G_P는 병렬 필터 코딩 모듈(112)의 n x (k+n_b2) 제너레이터 매트릭스이고, I_kk x k 항등 행렬(identity matrix)이고, G_B2은 블럭 코딩 모듈(104)의 n_b2 x k 제너레이터 매트릭스(generator matrix)이고, G_R1는 반복 코딩 모듈(108)의 n x n_b1 제너레이터 매트릭스이고,G_B1은 블럭 코딩 모듈(102)의 n_b1 x k 제너레이터 매트릭스(generator matrix)이고, G_R2 반복 코딩 모듈(110) n x n_b3 제너레이터 매트릭스이고, 및 G_B3은 블럭 코딩 모듈(106)의 n_b3 x k 제너레이터 매트릭스(generator matrix)이다. 상기 식(7)에서 사용된 표기 [A; B]는 매트릭스 B 위에 A의 수직 스택(vertical stack)을 표시하고, 그리고 상기 식(7)에서 사용된 연산자 '+'는 비트마다(bitwise) XOR 동작을 표시한다.
2.3.체계적인 인코딩(Systematic Encoding)
슈퍼차지드 코드(supercharged code)는 본질적으로 체계적인 코드(systematic code)가 아니다. 비체계적인 코드(nonsystematic code)들은 통상적으로 인코더 Y= G_S*X의 입력으로서 그것이 사용되기 전에 전처리 입력 데이터(pre-processing input data) D에 의해 효율적인 체계적인 코드로 변형된다. 인코더 입력 X는 인코딩될 원하는 입력 데이터 D를 디코딩함으로써 그리고 인코더 입력 벡터 X를 결정하기 위해서 디코더를 실행함으로써 계산된다. 매트릭스 G_S_ENCY에서 각 코드 워드의 제 1 k 엘리먼트(element)들에 해당하는 k x k 제너레이터 매트릭스라고 하면, 인코더 입력 X는 아래의 식을 이용하여 계산될 있다:
X = G_S_ENC^^(-1) * D (8)
여기서 동작 G_S_ENC^^(-1) 는 G_S_ENC를 멱수(power) (-1)로 증가시키는 것이다. 여기서, XY 를 생성하기 위해서 식 (6)을 이용하여 인코딩하는데 사용되고 그리고 Y에서 각 코드 워드의 제 1 k엘리먼트들은 D와 같을 것이다.
도 4 는 본 발명의 실시예들에 따른 추가의 체계적인(systematic) 전처리(pre-processing) 모듈(402) 의 예외를 가지는 도 1 에서의 인코더(100) 의 동일한 구현을 갖는 인코더를 도시한다. 체계적인 전처리 모듈(402)은 식(8)에 의해 정의된 기능을 수행하도록 청해질 수 있고, 그리고 하드웨어, 소프트웨어, 또는 그것들의 임의 조합에 의해 구현될 수 있다.
2.4.인코딩을 위한 파일들의 세그먼트화(Segmentation of Files for Encoding)
인코더(100)이 예를 들어 소실 채널상에서의 송신을 위한 소스 파일(source file)을 인코딩하는데 사용되기 전에, 소스 파일은 인코더 입력 심벌들로 세그먼트될 필요가 있고 그리고 이런 인코더 입력 심벌들은 도 1 에서 도시된 인코더에 대한 입력 매트릭스 X에 의해 표현될 수 있는 소스 블럭들로 그룹화될 필요가 있다. 구체적으로, f 바이트의 소스 파일 및 t 바이트의 인코더 입력 심벌 사이즈가 주어지면, 파일은 k_total = ceil(f/t) 인코더 입력 심벌들로 분할 될 수 있다. 소스 블럭은 이런 인코더 입력 심벌들의 kl 또는 ks의 집합체(collection)이다. 전체 수의 소스 블럭들이 소스 파일을 표현하기 위해서 요구되는 인코더 입력 심벌들의 수로 균일하게 나누어지지 않으면 klks는 달라질 수 있다. kl 인코더 입력 심벌들을 가지는 소스 블럭들의 수 및 ks 인코더 입력 심벌들을 가지는 소스 블럭들의 수는 디코더에 전달될 수 있다. 일 실시예에서, 소스 블럭들은 정렬되어서 제 1 zl 소스 블럭들이 kl 인코더 입력 심벌들의 소스 블럭들로부터 인코딩되고, 나머지 zs 소스 블럭들이 ks 인코더 입력 심벌들의 소스 블럭들로부터 인코딩된다.
일 실시예에서, kl 의 선택된 값은 도 1 에서 인코더(100)이 입력으로 수락하는 매트릭스 X에서 입력 심벌들 k의 수에 대하여 가능한 값들의 유한 수들 중 적어도 하나보다 작거나 같은 제한하에서 kl이 선택된다. kl이 이러한 제한을 충족시키도록 선택된다면, 적어도 하나의 실시예에서 인코더(100)는 또한 (비 제한적인) 부등식 kl ≤ k을 만족시키는 입력 심벌들 k의 가장 작은 수를 가지는 입력 매트릭스 X를 수락하기 위해 구현될 수 있다.
2.5소실 채널(Erasure Channel)
인코딩후에, 매트릭스 Yn 출력 심벌들은 채널상으로 송신된다. 이런 출력 심벌들중 일부는 채널에 의해 소실된다. n x r 매트릭스 E가 채널의 소실 패턴(erasure pattern)을 나타낸다고 가정하면 그것은 송신된 출력 심벌들 Y로부터 r 수신된 출력 심벌들 Y_R을 출력 선택한다. ith 수신된 심벌이 jth 송신 심벌이라면, E(i,j)=1이다. 이것은 다음과 같이 귀결된다:
Y_R = E*Y (9)
디코더에서, 수신기에서 효과적인 제너레이터 매트릭스는 G_S_R = E*G_S 이다.
2.6디코딩(Decoding)
디코딩은 Y_RG_S_R이 주어지면 X를 결정하는 프로세스(process)이다. 디코딩은 몇가지 상이한 방법들로 구현될 수 있지만, 각각은 최소 자승법 문제(least square problem) X = (G_S_R^^T*G_S_R)^^-1 * G_S_R^^T * Y_R를 해결하는 데에서 동등하고, 여기서 T는 전치(transpose)를 표시한다. 최신 희소 행렬(sparse matrix) 생성 기법들은 적절한 형태로 재작성된 (6)을 갖는 병렬 필터 코딩 모듈(112) 의 구조에 의해 통제되는 희소 구조(sparse structure)를 이용하여 사용될 수 있다:
Z= G_A*W (10)
강화된 제너레이터 매트릭스 G_A를 가지고 다음과 같이 정의된다:
G_A = [[[G_B1; G_B3; GB_2] | I_L]; [G_P | G_R1 | G_R2]] (11)
여기서 강화된 출력 벡터 Z=[zeros(L,1); Y], 강화된 입력 벡터 W=[X; G_B2*X; G_B1*X; G_B3*X], 그리고 여기서 L= n_b1+n_b2+b_b3. 매트릭스 W의 바닥(bottom) L 엘리먼트들은 반복전에 블럭 코드들의 출력들을 함유한다. 이런 L 값들은 강화된 입력 매트릭스 W를 형성하기 위해서 매트릭스 X에 첨부된다. G_A의 제 1 L 로우(row)들은 블럭 코드(block code)를 이행하고 그리고 매트릭스 Z의 상부(top)에서 L 제로(zero)들을 생성하기 위해서 블럭 코드를 그 자체와 XOR한다. G_A의 후속 n 로우(row)들은 FIR 구조를 이행하고, 출력을 블럭 코드들의 출력과 XOR 한다. 상기 식(11)에서 사용된 표기 [A; B]는 매트릭스 B 위에 A의 수직 스택(vertical stack)을 표시하고, 그리고 표기 A │ B 는 매트릭스들 A B의 수평 연접(horizontal concatenation)을 표시한다.
일단 인코더 상태 매트릭스(state matrix) X 또는 동등하게 강화된 인코더 상태 매트릭스 W가 결정되면, 데이터 매트릭스 D를 결정하기 위한 임무들이 잔존한다. 손실되는 D의 임의의 심벌들에 대하여, 그것들은 (6) 또는 (10)의 적절한 로우(row)들을 이용함으로써 복원될 수 있다.
3.예시적인 컴퓨터 시스템(Example Computer System Implementation)
본원에서 설명된 본 발명의 다양한 엘리먼트들 및 특징들은 하나이상의 범용 또는 특정 목적 프로세서들에 의해 명령어들의 실행을 통하여 아날로그 및/또는 디지털 회로들을 이용하는 하드웨어로, 소프트웨어로, 또는 하드웨어 및 소프트웨어의 조합으로서 구현될 수 있는 것은 관련 기술분야(들)에서의 통상의 기술자에게 자명할 것이다.
범용 컴퓨터 시스템의 이하 설명은 완전함(completeness)을 위해서 제공된다. 본 발명의 실시예들은 하드웨어로 또는 하드웨어 및 소프트웨어의 조합으로서 구현될 수 있다. 결과적으로, 본 발명의 실시예들은 컴퓨터 시스템 또는 다른 프로세싱 시스템의 환경하에서 구현될 수 있다. 컴퓨터 시스템(500)의 예제가 도 5 에 도시된다. 예를 들어, 도 1 내지 4에 도시된 모듈들의 전부는 하나이상의 다른 컴퓨터 시스템들(500)상에서 실행할 수 있다.
컴퓨터 시스템(500)은 프로세서(504)와 같은 하나이상의 프로세서들을 포함한다. 프로세서(504)는 특수 목적 또는 범용의 디지털 신호 프로세서일 수 있다. 프로세서(504)는 통신 인프라스트럭쳐(infrastructure)(502)(예를 들어, 버스(bus) 또는 네트워크)에 연결된다. 다양한 소프트웨어 구현들이 이 대표적인 컴퓨터 시스템면에서 설명된다. 이 설명을 읽은 후에, 다른 컴퓨터 시스템들 및/또는 컴퓨터 아키텍쳐들을 이용하여 본 발명이 어떻게 구현되는지 관련 기술분야(들)의 통상의 기술자들에 자명해질 것이다.
컴퓨터 시스템(500)은 메인 메모리(506), 가급적 랜덤 액세스 메모리(RAM)를 또한 포함하고 그리고 보조 메모리(secondary memory)(508)를 또한 포함할 수 있다. 보조 메모리(508)는 예를 들어, 하드 디스크 드라이브(510), 및/또는 플로피 디스크 드라이브, 자기 테이프 드라이브, 광 디스크 드라이브등을 대표하는 이동식 저장 드라이브(512)를 포함할 수 있다. 이동식 저장 드라이브(512)는 주지 방식의 이동식 저장 유닛(516)로부터 판독 및/또는 이동식 저장 유닛에 기록한다. 이동식 저장 유닛(516)은 플로피 디스크, 자기 테이프, 광 디스크 등을 나타내고 그것은 이동식 저장 드라이브(512)에 의해 판독되고 그리고 그것에 의해 기록된다. 관련 기술 분야(들)의 통상의 기술자들에 의해 인식될 것처럼, 이동식 저장 유닛(516)은 거기에 컴퓨터 소프트웨어 및/또는 데이터를 저장하는 컴퓨터 사용가능한 저장 매체를 포함한다.
대안적인 실행들에서, 보조 메모리(508)는 컴퓨터 프로그램들 또는 다른 명령어들을 컴퓨터 시스템(500)에 로드(load)되도록 허용하는 다른 유사한 수단들을 포함할 수 있다. 이런 수단들은 예를 들어,이동식 저장 유닛(518) 및 인터페이스(514)를 포함할 수 있다. 이런 수단들의 예들은 프로그램 카트리지(cartridge) 및 카트리지 인터페이스( 비디오 게임 디바이스들에서 발견되는 것과 같은), 이동식 메모리 칩(EPROM 또는 PROM) 및 관련된 소켓, 썸 드라이브(thumb drive) 및 USB 포트 및 다른 이동식 저장 유닛들(518) 그리고 소프트웨어 및 데이터가 다른 이동식 저장 유닛들(518) 로부터 컴퓨터 시스템(500)으로 전송되도록 허용하는 인터페이스들(514)을 포함할 수 있다.
컴퓨터 시스템(500)은 통신 인터페이스(520)를 또한 포함할 수 있다. 통신 인터페이스(520)는 소프트웨어 및 데이터가 컴퓨터 시스템(500) 및 외부 디바이스들 사이에서 전송되는 것을 허용한다. 통신 인터페이스들(520)의 예들은 모뎀, 네트워크 인터페이스(이더넷 카드와 같은), 통신 포트, PCMCIA 슬롯 및 카드 등을 포함할 수 있다. 통신 인터페이스(520)를 통하여 전송된 소프트웨어 및 데이터는 전자, 전자석(electromagnetic), 광 또는 통신 인터페이스(520)에 의해 수신될 수 있는 다른 신호들일 수 있는 신호들의 형태일 수 있다. 이러한 신호들은 통신 경로들(522)을 통하여 통신 인터페이스(520)에 제공된다. 통신 경로(522)는 신호들을 운반하고 그리고 유선 또는 케이블, 광 파이버들, 폰 선로(phone line), 셀룰러 폰 링크(cellular phone link), RF 링크 및 다른 통신 채널들을 이용하여 구현될 수 있다.
본원에서 사용된, "컴퓨터 프로그램 매체(computer program medium)" 및 "컴퓨터 사용 가능한 매체(computer usable medium)"용어들은 이동식 저장 유닛들(516 및 518), 하드 디스크 드라이브(510)에 인스톨되는 하드 디스크와 같은 유형의 저장 매체(tangible storage media)들을 일반적으로 지칭한다. 이런 컴퓨터 프로그램 제품들은 컴퓨터 시스템(500)에 소프트웨어를 제공하기 위한 수단들이다.
컴퓨터 프로그램들(또는 컴퓨터 제어 로직으로 불리우는) 메인 메모리(506) 및/또는 보조 메모리(508)에 저장된다. 컴퓨터 프로그램들은 통신 인터페이스(520)를 통하여 또한 수신될 수 있다.이런 컴퓨터 프로그램들이 실행된때 컴퓨터 시스템(500)이 본원에서 논의된 본 발명을 구현을 가능하게 한다. 특별히, 컴퓨터 프로그램들이 실행된 때 프로세서(504)가 본원에서 설명된 임의의 방법들과 같은 본 발명의 프로세스들을 구현하는 것이 가능하게 한다. 따라서, 이런 컴퓨터 프로그램들은 컴퓨터 시스템(500)의 컨트롤러(controller)들을 나타낸다. 본 발명이 소프트웨어를 이용하여 구현될 때, 소프트웨어는 컴퓨터 프로그램 제품으로 저장될 수 있고, 그리고 이동식 저장 매체(512), 인터페이스(514) 또는 통신 인터페이스(520)을 이용하여 컴퓨터 시스템(500)에 로드된다.
다른 실시예에서, 본 발명의 특징들은 예를 들어 ASIC(Application Specific Integrated Circuit)들 및 게이트 어레이들과 같은 하드웨어 컴포넌트들을 이용하는 주로 하드웨어로 구현될 수 있다. 본원에서 서술된 기능들을 실행하기 위해서 하드웨어 상태 기계(hardware state machine)의 구현은 관련 기술 분야(들)의 통상의 기술자들에게 또한 명확하다.
4.결론(Conclusion)
본 발명은 그것의 명시된 기능들 및 관계들의 구현예들을 예시하는 기능 빌딩 블럭들의 도움으로 상기에서 설명되었다. 이 기능 빌딩 블럭들의 범위는 설명의 편의를 위해 본원에서 임의로 정의되었다. 그것의 명시된 기능들 및 관계들이 적절하게 수행되는 한 대안적인 범위들이 정의될 수 있다.

Claims (15)

  1. 메시지들을 형성하는 입력 심벌(input symbol)들의 소거 코딩(erasure coding)을 위한 방법에 있어서,
    상기 메시지들에 기반하여 제 1 , 제 2 및 제 3 셋의 코드 워드(code word)들을 각각 제공하는 적어도 세개의 블럭 코딩 동작(block coding operation)을 구현하는 단계;
    상기 제 1 셋의 코드 워드들에 기반하여 제 4 및 제 5 셋의 코드 워드들을 각각 제공하는 적어도 두개의 필터 코딩 동작(filter coding operation)을 구현하는 단계;
    상기 제 1 셋의 코드 워드들의 비트들이 고려되는 순서(order)가 상기 두개의 필터 코딩 동작들 중 적어도 하나에 대하여 수정되는 단계;
    소실 채널(erasure channel)상에서의 송신을 위한 인코딩된 심벌(symbol)들을 형성하기 위해서 상기 제 2, 제 3 , 제 4 및 제 5 셋들의 코드 워드들을 병렬 연접(concatenation)하는 단계;를 포함하는, 방법.
  2. 청구항 1 에 있어서,
    상기 제 2 및 제 3 셋들의 코드 워드들이 상기 제 4 및 제 5 셋들의 코드 워드들과 병렬 연접되기 전에 상기 제 2 및 제 3 셋들의 코드 워드들이 각각 일정 횟수(some number of times) 반복되는 반복 코딩 동작(repetition coding operation)을 구현하는 단계;를 더 포함하는, 방법.
  3. 청구항 1 또는 청구항 2 에 있어서,
    상기 제 2, 제 3, 제 4 및 제 5 셋들의 코드 워드들이 배타적 논리합(exclusive or) 동작을 이용하여 병렬 연접되는, 방법
  4. 청구항 1 내지 청구항 3 중 어느 하나에 있어서,
    상기 제 2, 제 3, 제 4 및 제 5 셋들의 코드 워드들을 병렬 연접하기 전에 상기 제 4 및 제 5 셋들의 코드 워드들을 불규칙적인 방식(irregular manner)으로 함께 다중화(multiplexing)하는 단계;를 더 포함하는, 방법.
  5. 청구항 1 내지 청구항 4 중 어느 하나에 있어서,
    상기 제 1 셋의 코드 워드들을 제공하는 상기 블럭 코딩 동작들 중 하나는 바이너리 블럭 코드(binary block code)를 구현하는, 방법.
  6. 청구항 1 내지 청구항 5 중 어느 하나에 있어서,
    상기 제 2 셋의 코드 워드들을 제공하는 상기 블럭 코딩 동작들 중 하나는 유한체(finite field) 상에서 비-바이너리 블럭 코드(non-binary block code)를 구현하는, 방법.
  7. 청구항 6 에 있어서,
    상기 비-바이너리 블럭 코드는 리드-솔로몬 블럭 코드(Reed-Solomon block code)인, 방법.
  8. 청구항 1 내지 청구항 7 중 어느 하나에 있어서,
    상기 제 3 셋의 코드 워드들을 제공하는 상기 블럭 코딩 동작들 중 하나는 바이너리 블럭 코드(binary block code)를 구현하는, 방법.
  9. 청구항 1 내지 청구항 8 중 어느 하나에 있어서,
    상기 두개의 필터 코딩 동작들중 적어도 하나는 꼬리물기(tailbiting) 필터를 사용하는, 방법.
  10. 메시지(message)들을 형성하는 입력 심벌들의 소거 코딩(erasure coding)을 위한 인코더(encoder)에 있어서,
    상기 메시지들에 기반하여 제 1 , 제 2 및 제 3 셋의 코드 워드(code word)들을 각각 제공하도록 구성된 세개의 블럭 코딩 모듈(blocking coding module)들;
    상기 제 1 셋의 코드 워드들에 기반하여 제 4 및 제 5 셋의 코드 워드들을 각각 제공하도록 구성된 두개의 필터 코딩 모듈(filter coding module);
    상기 제 1 셋의 코드 워드들의 비트들이 고려되는 순서(order)가 상기 두개의 필터 코딩 동작들 중 적어도 하나를 대하여 수정되도록 구성된 인터리버(interleaver);
    소실 채널(erasure channel)상에서의 송신을 위한 인코딩된 심벌(symbol)들을 형성하기 위해서 상기 제 2, 제 3, 제 4 및 제 5 셋들의 코드 워드들을 병렬 연접(concatenation)하도록 구성된 연접 모듈(concatenation module);를 포함하는, 인코더.
  11. 청구항 10 에 있어서,
    상기 제 2 및 제 3 셋들의 코드 워드들이 상기 연접 모듈에 의해 상기 제 4 및 제 5 셋들의 코드 워드들과 병렬 연접되기 전에 상기 제 2 및 제 3 셋들의 코드 워드들이 일정 횟수 반복되도록 구성된 반복 코딩 모듈(repetition coding module);를 더 포함하는, 인코더.
  12. 청구항 10 또는 청구항 11 에 있어서,
    상기 연접 모듈에 의해 상기 제 2, 제 3, 제 4 및 제 5 셋들의 코드 워드들이 병렬 연접되기 전에 상기 제 4 및 제 5 셋들의 코드 워드들을 불규칙적인 방식으로 함께 다중화(multiplex)하도록 구성된 다중화기(multipelexer);를 더 포함하는, 인코더.
  13. 청구항 10 내지 청구항 12 중 어느 하나에 있어서,
    상기 제 2 셋의 코드 워드들을 제공하는 상기 세개의 블럭 코딩 모듈들 중 하나는 유한체(finite field) 상에서 비-바이너리 블럭 코드(non-binary block code)를 구현하는, 인코더.
  14. 메시지(message)들을 형성하는 입력 심벌들의 소거 코딩(erasure coding)을 위한 인코더(encoder)에 있어서,
    상기 메시지들에 기반하여 제 1 셋(set)의 코드 워드(code word)들을 제공하도록 구성된 블럭 코딩 모듈(blocking coding module);
    상기 메시지들에 기반하여 제 2 및 제 3 셋들의 코드 워드(code word)들을 각각 제공하도록 구성되고 인터리버(interleaver)에 의해 분리되는 두개의 필터 코딩 모듈(filter coding module)들; 및
    소실 채널(erasure channel)상에서의 송신을 위한 인코딩된 심벌(symbol)들을 형성하기 위해서 상기 제 1, 제 2 , 제 3 셋들의 코드 워드들을 병렬 연접(concatenation)하도록 구성된 연접 모듈(concatenation module);를 포함하는, 인코더.
  15. 프로세서(processor); 및
    메모리(memory)를 포함하되,
    상기 프로세서는
    심벌들에 의해 형성된 메시지들에 기반하여 제 1 셋(set)의 코드 워드(code word)들을 제공하기 위해서 블럭 코딩 동작(blocking coding operation)을 구현하는 단계;
    상기 메시지들에 기반하여 제 2 및 제 3 셋들의 코드 워드(code word)들을 각각 제공하기 위해서, 인터리버(interleaver)에 의해 분리되는, 적어도 두개의 필터 코딩 동작(filter coding operation)들을 구현하는 단계; 및
    제 1 , 제 2 및 제 3 셋의 코드 워드(code word)들을 연접(concatenation)하는 단계;에 의해 인코딩된 심벌들을 디코딩하도록 구성된, 디코더.
KR1020130010614A 2012-01-30 2013-01-30 슈퍼차지드 코드들 KR101436973B1 (ko)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201261592202P 2012-01-30 2012-01-30
US61/592,202 2012-01-30
US201261622223P 2012-04-10 2012-04-10
US61/622,223 2012-04-10
US201261646037P 2012-05-11 2012-05-11
US61/646,037 2012-05-11
US201261706045P 2012-09-26 2012-09-26
US61/706,045 2012-09-26
US13/750,280 US20130198582A1 (en) 2012-01-30 2013-01-25 Supercharged codes
US13/750,280 2013-01-25

Publications (2)

Publication Number Publication Date
KR20130088082A true KR20130088082A (ko) 2013-08-07
KR101436973B1 KR101436973B1 (ko) 2014-09-02

Family

ID=47632786

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130010614A KR101436973B1 (ko) 2012-01-30 2013-01-30 슈퍼차지드 코드들

Country Status (6)

Country Link
US (1) US20130198582A1 (ko)
EP (1) EP2621121A3 (ko)
KR (1) KR101436973B1 (ko)
CN (1) CN103227693B (ko)
HK (1) HK1186024A1 (ko)
TW (1) TWI520528B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569307B2 (en) * 2014-02-13 2017-02-14 Quantum Corporation Mitigating the impact of a single point of failure in an object store
US10656996B2 (en) * 2016-12-21 2020-05-19 PhazrIO Inc. Integrated security and data redundancy
US11050552B2 (en) * 2017-05-03 2021-06-29 Infosys Limited System and method for hashing a data string using an image

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4573155A (en) * 1983-12-14 1986-02-25 Sperry Corporation Maximum likelihood sequence decoder for linear cyclic codes
CA1296065C (en) * 1985-12-11 1992-02-18 Tadashi Matsumoto Method for decoding error correcting block codes
JP2597987B2 (ja) * 1986-02-08 1997-04-09 ソニー株式会社 ブロツク化伝送信号のデコード装置
US5568483A (en) 1990-06-25 1996-10-22 Qualcomm Incorporated Method and apparatus for the formatting of data for transmission
US6493838B1 (en) * 1995-09-29 2002-12-10 Kabushiki Kaisha Toshiba Coding apparatus and decoding apparatus for transmission/storage of information
US6023783A (en) * 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
US5812603A (en) * 1996-08-22 1998-09-22 Lsi Logic Corporation Digital receiver using a concatenated decoder with error and erasure correction
US6378101B1 (en) * 1999-01-27 2002-04-23 Agere Systems Guardian Corp. Multiple program decoding for digital audio broadcasting and other applications
US6895120B2 (en) * 2001-03-30 2005-05-17 Ricoh Co., Ltd. 5,3 wavelet filter having three high pair and low pair filter elements with two pairs of cascaded delays
US7631242B2 (en) * 2001-06-22 2009-12-08 Broadcom Corporation System, method and computer program product for mitigating burst noise in a communications system
US7088398B1 (en) * 2001-12-24 2006-08-08 Silicon Image, Inc. Method and apparatus for regenerating a clock for auxiliary data transmitted over a serial link with video data
EP1359684A1 (en) 2002-04-30 2003-11-05 Motorola Energy Systems Inc. Wireless transmission using an adaptive transmit antenna array
KR100866181B1 (ko) 2002-07-30 2008-10-30 삼성전자주식회사 통신 시스템에서 신호 송수신 방법 및 장치
US6903665B2 (en) * 2002-10-30 2005-06-07 Spacebridge Semiconductor Corporation Method and apparatus for error control coding in communication systems using an outer interleaver
IL157885A0 (en) * 2003-09-11 2004-03-28 Bamboo Mediacasting Ltd Iterative forward error correction
US7434146B1 (en) * 2005-05-06 2008-10-07 Helwett-Packard Development Company, L.P. Denoising and error correction for finite input, general output channel
EP1962450A4 (en) * 2005-12-15 2011-08-10 Mitsubishi Electric Corp COMMUNICATION SYSTEM, TRANSMITTER COMMUNICATION DEVICE AND RECEIVER COMMUNICATION DEVICE
US7730378B2 (en) * 2006-06-29 2010-06-01 Nec Laboratories America, Inc. Low-complexity high-performance low-rate communications codes
US20090310687A1 (en) * 2006-07-21 2009-12-17 Koninklijke Philips Electronics N.V. Method and apparatus for space-time-frequency encoding and decoding
MX2009012392A (es) * 2007-05-16 2009-12-01 Thomson Licensing Aparato y metodo para codificar y descodificar señales.
WO2009051687A2 (en) * 2007-10-15 2009-04-23 Thomson Licensing Apparatus and method for encoding and decoding signals
FR2929785B1 (fr) * 2008-04-02 2012-11-16 France Telecom Procede de transmission d'un signal numerique entre au moins un emetteur et au moins un recepteur, mettant en oeuvre au moins un relais, produit programme et dispositif relais correspondants.
CN101803205B (zh) * 2008-08-15 2013-12-18 Lsi公司 近码字的ram列表解码
EP2178213A1 (en) * 2008-10-16 2010-04-21 Thomson Licensing Methods and apparatuses for error correction coding
US8301973B2 (en) * 2008-10-16 2012-10-30 Samsung Electronics Co., Ltd. Digital television systems employing concatenated convolutional coded data
EP2200244B1 (en) * 2008-12-18 2019-02-20 Vodafone Holding GmbH Method and apparatus for multi-carrier frequency division multiplexing transmission
US8555128B2 (en) * 2010-03-24 2013-10-08 Futurewei Technologies, Inc. System and method for transmitting and receiving acknowledgement information
US8705574B2 (en) * 2010-05-10 2014-04-22 Telefonaktiebolaget Lm Ericsson (Publ) System and method for allocating transmission resources

Also Published As

Publication number Publication date
EP2621121A3 (en) 2015-10-28
CN103227693A (zh) 2013-07-31
KR101436973B1 (ko) 2014-09-02
TWI520528B (zh) 2016-02-01
HK1186024A1 (zh) 2014-02-28
CN103227693B (zh) 2016-07-06
US20130198582A1 (en) 2013-08-01
EP2621121A2 (en) 2013-07-31
TW201332316A (zh) 2013-08-01

Similar Documents

Publication Publication Date Title
US9876607B2 (en) Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
TWI285310B (en) Method and apparatus for iterative hard-decision forward error correction decoding
US9287897B2 (en) Systematic rate-independent Reed-Solomon erasure codes
KR20080100455A (ko) 통신 시스템의 다중 필드 기반 코드 발생기 및 디코더
WO2012138662A2 (en) Encoding and decoding techniques using low-density parity check codes
US8612842B2 (en) Apparatus for generating a checksum
US7231575B2 (en) Apparatus for iterative hard-decision forward error correction decoding
US9071277B1 (en) Correction of structured burst errors in data
KR101436973B1 (ko) 슈퍼차지드 코드들
CN108432170B (zh) 用于多码分布式存储的装置和方法
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
Chen et al. A new Zigzag MDS code with optimal encoding and efficient decoding
US9281844B2 (en) Configurable and low power encoder for cyclic error correction codes
Al-Shaikhi et al. Design of packet-based block codes with shift operators
JP5952971B2 (ja) 通信路復号方法及び通信路復号装置
JP5336501B2 (ja) ビット列間のエラー制御コードをエンコードする方法およびエンコードシステム
CN115567164A (zh) 向量信令码信道的流水线式前向纠错方法和装置
Schindelhauer et al. Cyclone codes
JP2010041628A (ja) 符号化装置、符号化方法および符号化プログラム
Botos et al. Study of the decoding complexity for rateless erasure 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: 20170811

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee