KR20110111856A - 통신 시스템에서의 채널 부호화 장치 및 방법 - Google Patents

통신 시스템에서의 채널 부호화 장치 및 방법 Download PDF

Info

Publication number
KR20110111856A
KR20110111856A KR1020100031147A KR20100031147A KR20110111856A KR 20110111856 A KR20110111856 A KR 20110111856A KR 1020100031147 A KR1020100031147 A KR 1020100031147A KR 20100031147 A KR20100031147 A KR 20100031147A KR 20110111856 A KR20110111856 A KR 20110111856A
Authority
KR
South Korea
Prior art keywords
symbol
source
symbols
order
source symbols
Prior art date
Application number
KR1020100031147A
Other languages
English (en)
Other versions
KR101615384B1 (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 KR1020100031147A priority Critical patent/KR101615384B1/ko
Priority to US13/080,032 priority patent/US8604945B2/en
Priority to PCT/KR2011/002366 priority patent/WO2011126268A2/en
Publication of KR20110111856A publication Critical patent/KR20110111856A/ko
Application granted granted Critical
Publication of KR101615384B1 publication Critical patent/KR101615384B1/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W16/00Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
    • H04W16/02Resource partitioning among network components, e.g. reuse partitioning
    • H04W16/04Traffic adaptive resource partitioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • H04W28/22Negotiating communication rate

Abstract

본 발명은 파운틴 부호를 사용하여 부호화할 전체 소스 심볼들 중 적어도 하나의 소스 심볼에 의해 하나의 부호화 심볼을 생성할 때, 상기 전체 소스 심볼들을 적어도 한번씩 사용하여 최소 개수의 부호화 심볼들을 생성하는 통신 시스템에서의 부호화 장치 및 방법을 제안한다.

Description

통신 시스템에서의 채널 부호화 장치 및 방법{APPARATUS AND METHOD FOR CHANNEL ENCODING IN A COMMUNICATION SYSTEM}
본 발명은 통신 시스템에서의 채널 부호화 장치 및 방법에 관한 것으로, 특히 채널 부호화 기술로써 파운틴 부호 (Fountain code)를 이용하여 입력 심볼을 부호화하는 장치 및 방법에 관한 것이다.
통상적으로 통신 시스템의 근본적인 목적은 통신 채널을 통하여 정보를 오류 없이 전달하는 것이다. 이때 통신 채널이 완벽한 충실도(fidelity)를 가질 경우에 수신자는 송신자가 전송한 파일과 정확하게 동일한 파일을 채널을 통하여 수신할 수 있다.
하지만 실제 응용에서 고려되는 통신 채널에서는 여러 가지 잡음 (noise)과 페이딩 (fading) 현상 및 심볼간 간섭 (inter-symbol interference, ISI) 등에 의한 정보의 왜곡이 발생하므로 이를 극복하기 위한 기술의 개발이 필수적이다.
최근에는 정보의 왜곡을 효율적으로 복원하여 통신의 신뢰도를 높이기 위한 방법으로서 오류정정부호 (error-correcting code)에 대한 연구가 활발히 이루어지고 있다.
통상적으로 데이터 전송 량을 최대화하기 위해서는 통신 채널의 신뢰도와 전송되는 정보의 특성에 따라 최적의 성능을 가지도록 설계된 오류 정정 부호의 사용이 요구된다. 예를 들어 대부분의 시간 동안 충실도가 높지만 특정한 시간 간격 동안 신뢰도가 급격하게 감소하는 통신 채널의 경우에는 연집 오류(burst error)에 강한 오류 정정 부호의 사용이 요구된다.
대표적인 예로써 소실 채널 (erasure channel)은 패킷 (packet) 단위 전송을 고려하는 시스템에서 네트워크 계층에 대한 채널 모델로 사용되고 있다. 예를 들어, 인터넷 상에서의 정보 전달은 패킷 단위로 이루어지며, 라우팅 도중 제한 시간 초과 등의 이유로 인해 패킷이 손실 (lost)되는 경우를 소실 (erasure)로 간주 할 수 있다. 또한 무선 통신 시스템에서 물리적 계층에서의 오류 제어 기법에 의한 오류 정정이 실패했을 경우 해당 패킷이 소실되었다고 판단할 수 있다.
TCP (Transmission Control Protocol) 등의 인터넷 기반 프로토콜(protocol)에서는 패킷 손실에 의한 영향을 극복하기 위한 방법으로 ARQ (Automatic Repeat reQuest) 기법이 사용되고 있다.
상기 ARQ 기법에서 수신장치는 패킷을 정상적으로 수신하였을 경우에는 송신장치에게 ACK (ACKnowledgement) 신호를 전송하고, 패킷에 오류가 있을 경우에는 송신장치에게 NACK (not ACK) 신호를 전송한다. 상기 ARQ 기법에서 송신장치는 수신장치에게 패킷을 전송하고, 송신장치에게서 상기 패킷에 대한 NACK 신호를 수신하였을 경우와 송신장치에게서 상기 패킷에 대한 ACK 신호를 수신하지 못한 경우 모두에 대하여 상기 패킷을 재전송한다.
이러한 ARQ 기법은 수신장치가 송신장치에게 정보를 전달할 수 있는 충실도 높은 재귀 채널(feedback channel)이 존재할 경우에 송신장치와 수신장치 사이의 일대일 통신에서 효율적인 정보의 전달을 보장한다. 그러나 하나의 송신장치가 다수의 수신장치에게 정보를 전달할 경우나 다수의 송신장치가 다수의 수신장치에서 정보를 전달할 경우에는 ARQ 기법의 효율성은 급격하게 감소한다. 뿐만 아니라 재귀 채널의 충실도가 낮거나 상기 재귀 채널을 이용할 수 없을 경우에는 ARQ 기법의 적용이 어렵다.
따라서 다대다 통신 시스템에서 ARQ 기법의 문제점을 해결하기 위한 방법으로 RS (Reed-Solomon) 부호 등의 소실 부호 (erasure codes)들을 사용할 수 있다.
상기 소실 부호는 송신장치가 하나의 파일을 여러 개의 입력 심볼 (input symbol)들로 분할하고, 상기 입력 심볼들을 사용하여 부호화 심볼 (encoding symbol)들을 생성한다. 그리고 상기 부호화 심볼들을 패킷으로 구성하여 전송하였을 경우에, 수신장치는 패킷의 수신 여부에 관계없이 충분한 수의 패킷을 수신하기만 하면 상기 수신 패킷을 복호하여 파일을 완벽하게 복원할 수 있는 특징을 가진다.
따라서 패킷 단위의 ACK 또는 NACK 신호를 수신장치가 송신장치에게 전송할 필요가 없다. 이때 상기 패킷은 하나 또는 복수개의 심볼들을 포함하는 정보의 단위이다. 하지만 상기 소실 부호들은 ARQ 기법의 문제점을 완벽하게 해결하지 못하거나 새로운 문제점을 야기할 수 있다.
한편 RS 부호는 소실 채널의 채널 용량을 달성하는 우수한 성능을 가진다. 하지만 부호화 및 복호화에 있어 복잡도가 매우 높기 때문에 소스 심볼의 수가 제한적인 응용에서만 사용이 가능하다.
또한 대부분의 소실 부호들은 소스 심볼 수와 부호화 심볼 수의 비로 정의되는 부호율을 가지며, 상기 부호율은 소실 부호의 설계 과정에서 정해지는 고정된 값이다.
상술한 바를 토대로 할 때에 상기 소실 부호의 경우 수신장치가 패킷을 오류 없이 수신할 확률이 소실 부호의 부호율보다 낮을 경우, 즉 수신장치가 수신한 심볼의 수가 소스 심볼의 수보다 적을 경우에 수신장치는 정보를 완벽하게 복원할 수 없다. 이에 반해 수신장치가 패킷을 오류 없이 수신할 확률이 소실 부호의 부호율보다 높을 경우, 즉 수신장치가 수신한 심볼의 수가 소스 심볼의 수보다 많을 경우에 수신장치는 정보를 완벽하게 복원할 수 있다. 하지만 시스템의 오버헤드 (overhead)가 증가하게 된다. 상기 오버헤드는 수신된 심볼의 개수와 소스 심볼의 개수의 차이다.
따라서 시스템의 오버헤드를 증가시키지 않으면서도 정보를 완벽하게 복원하기 위한 부호화 및 복호화 방안 마련이 시급하다 할 것이다.
본 발명에서는 파운틴 부호를 사용하는 통신 시스템에서 소스 심볼들을 적어도 한번씩 사용하여 최소의 부호화 심볼을 생성하는 부호화 장치 및 방법을 제안한다.
또한 본 발명에서는 파운틴 부호의 일 예로써 루비 변환 부호 (LT 부호)를 사용하는 통신 시스템에서 부호화 심볼의 생성을 위해 소스 심볼을 선택하는 확률 분포를 최적화하는 부호화 장치 및 방법을 제안한다.
또한 본 발명에서는 LT 부호를 사용하는 통신 시스템에서 소스 심볼의 차수를 고려하여 부호화를 위한 연관 심볼을 생성하는 부호화 장치 및 방법을 제안한다.
또한 본 발명에서는 파운틴 부호에 의한 부호화 과정에서 모든 소스 심볼들의 차수가 1이상임을 보장하는 부호화 장치 및 방법을 제안한다.
본 발명의 실시 예에 따른 통신 시스템에서의 부호화 방법은, 파운틴 부호를 사용하여 부호화할 전체 소스 심볼들 중 적어도 하나의 소스 심볼에 의해 하나의 부호화 심볼을 생성할 때, 상기 전체 소스 심볼들을 적어도 한번씩 사용하여 최소 개수의 부호화 심볼들을 생성한다.
또한 본 발명의 실시 예에 따른 통신 시스템에서 파운틴 부호를 사용하여 소스 심볼을 부호화하는 장치는, 부호화 대상에 상응하는 전체 소스 심볼들 중 적어도 하나의 소스 심볼에 의해 하나의 부호화 심볼을 생성할 때, 부호화 심볼들의 생성을 위해 상기 전체 소스 심볼들이 적어도 한번씩은 사용될 수 있도록 한다.
또한 본 발명의 실시 예에 따른 통신 시스템에서 파운틴 부호를 사용하여 소스 심볼을 부호화하는 방법은, 전체 소스 심볼들 각각에 대응한 차수를 고려하여 하나의 부호화 심볼을 생성하기 위한 적어도 하나의 소스 심볼을 선택하는 과정과, 상기 선택한 적어도 하나의 소스 심볼을 이용하여 하나의 부호화 심볼을 생성하는 과정과, 상기 선택한 적어도 하나의 소스 심볼에 대응한 차수를 갱신하는 과정을 포함한다.
또한 본 발명의 실시 예에 따른 통신 시스템에서 파운틴 부호를 사용하여 소스 심볼을 부호화하는 장치는, 전체 소스 심볼들 각각에 대응한 차수를 고려하여 하나의 부호화 심볼을 생성하기 위한 적어도 하나의 소스 심볼을 선택하고, 상기 선택한 적어도 하나의 소스 심볼에 대응한 차수를 갱신하는 연관 심볼 선택부와, 상기 선택한 적어도 하나의 소스 심볼을 이용하여 하나의 부호화 심볼을 생성하는 부호화 심볼 생성부를 포함한다.
본 발명은 파운틴 부호에 의해 부호화 심볼을 생성할 시에 소스 심볼의 차수를 기준으로 연관 심볼을 선택함으로써, 모든 소스 심볼이 적어도 하나 이상의 부호화 심볼을 생성하는데 사용될 수 있도록 한다. 이는 모든 소스 심볼이 균등한 확률로 부호화에 이용되도록 하여 파운틴 부호의 부호화 성능을 향상시킨다.
한편 그 외의 다양한 효과는 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 것이다.
도 1은 LT 부호의 부호화 과정을 팩토 그래프로 나타낸 예를 보이고 있는 도면;
도 2는 본 발명의 실시 예에서 제안하는 파운틴 부호를 사용하여 부호화하는 방안을 팩토 그래프를 사용하여 개념적으로 보이고 있는 도면;
도 3은 본 발명의 일 실시 예에 따른 LT 부호화기의 구성을 보이고 있는 도면;
도 4는 본 발명의 실시 예를 위한 LT 부호화기에서 소스 심볼의 차수를 제어하는 연관 심볼 선택부(330)의 상세 구성을 보이고 있는 도면;
도 5는 본 발명의 실시 예에 따른 송신장치에 구비된 부호화기에 의해 수행되는 LT 부호화 절차의 일 예를 보이고 있는 도면;
도 6은 본 발명의 실시 예에 따른 송신장치에 구비된 부호화기에 의해 수행되는 LT 부호화 절차의 다른 예를 보이고 있는 도면.
하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되거나 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 수 있음에 유의하여야 한다.
본 발명의 실시 예로써 새로이 구현하고자 하는 소실 부호의 일종인 파운틴 부호 (fountain codes)는 부호율이 없는 소실 부호 (rateless erasure codes)로 주어진 소스 심볼들에 대하여 잠재적으로 무한개의 부호화 심볼들을 생성할 수 있다. 그리고 수신장치는 소스 심볼들의 개수와 동일하거나 약간 많을 수의 수신 심볼을 사용하여 상기 소스 심볼들을 높은 확률로 복원할 수 있는 특징을 지닌다.
일반적으로 임의로 선택된 k개의 수신 심볼들로부터 k개의 소스 심볼들을 복원할 수 있을 경우에 해당 파운틴 부호를 최적의 성능을 가지는 파운틴 부호라 한다. 효율적인 부호화 및 복호화 알고리즘을 사용하여 임의로 선택된 k’개의 수신 심볼들로부터 k개의 소스 심볼들을 높은 확률로 복원할 수 있는 파운틴 부호들이 알려져 있다. 여기서 k’은 k보다 약간 큰 수이다.
상기 파운틴 부호에 있어 최초의 실용적인 구현 예는 Michael Luby에 의해 제안된 루비 변환 부호 (Luby-Transform code, 이하 “LT 부호”라 칭함)가 있다. 그 외에 랩토 부호 (Raptor code)는 선형 시간(linear time) 부호화 및 복호화가 가능한 특징을 가지는 최초의 파운틴 부호다. 상기 LT 부호와 상기 랩토 부호의 부호화 및 복호화 과정은 팩토 (factor) 그래프를 사용하여 표현 할 수 있다.
상기 LT 부호에 의한 부호화 심볼은 1개 이상의 소스 심볼을 파라미터로 가지는 부호화 함수를 사용하여 계산할 수 있다. 이때 각각의 부호화 심볼들은 다른 부호화 심볼들과 독립적으로 생성된다. 그리고 상기 생성 가능한 부호화 심볼의 개수는 이론적으로 무한대이며, 특정 응용에 있어서는 어떤 값으로 제한될 수 있다.
한편 부호화 심볼의 생성을 위해 사용되는 부호화 함수의 대표적인 예로는 소스 심볼들에 대해 배타적 논리합 (XOR) 연산을 취하여 부호화 심볼을 계산하는 방법이 있다. 이때 상기 부호화 심볼을 계산하기 위하여 사용된 소스 심볼들을 부호화 심볼의 ‘연관 심볼’이라 하고, 상기 연관 심볼의 개수를 ‘부호화 심볼의 차수’라 한다.
일반적으로 LT 부호에 있어 부호화 심볼의 차수 분포는 하기의 <수학식 1>과 같은 다항식 형태로 나타낼 수 있다.
Figure pat00001
상기 <수학식 1>에서 k는 LT 부호에 의한 부호화 절차에서 사용되는 소스 심볼의 총 개수이며,
Figure pat00002
는 임의로 선택된 부호화 심볼의 차수가 i일 확률이다.
상기 <수학식 1>과 같은 부호화 심볼의 차수 분포는 LT 부호의 성능을 결정하는 중요한 요소이다.
한편 부호화 함수로 XOR 함수를 사용하는 LT 부호에 의한 부호화 절차는 하기와 같이 정리할 수 있다.
LT 부호화 과정
단계 1: 주어진 부호화 심볼의 차수 분포에 따라 차수
Figure pat00003
를 선택한다.
단계 2:
Figure pat00004
개의 서로 다른 소스 심볼들을 균등한 확률로 랜덤하게 선택한다.
단계 3: 선택된 소스 심볼들에 대해 XOR 연산을 수행함으로써 부호화 심볼
Figure pat00005
를 생성한다.
상기한 LT 부호에 의한 부호화 과정을 통해 생성된 부호화 심볼들은 송신장치에 의해 채널을 통해 전송되며, 수신장치는 상기 부호화 심볼들을 수신하여 LT 부호의 복호화를 통해 소스 심볼들에 대한 복원을 시도한다.
상기 LT 부호의 복호화는 LT 부호를 표현하는 팩토 그래프 상에서의 메시지 전달 (message passing)을 통하여 이루어지거나 소스 심볼과 부호화 심볼의 관계를 나타내는 선형 방정식 (linear equation)의 해를 구하는 과정으로 이루어진다. 이때 수신장치는 부호화 심볼의 차수 및 부호화에 사용된 소스 심볼들의 색인(index)을 송신장치로부터 전달받거나 상기 송신장치와 동일한 과정을 통하여 동일한 값들을 생성할 수 있어야 한다는 점에 유의한다.
또한 랩토 부호는 고정된 부호율을 가지는 소실 부호와 LT 부호를 연접한 부호이므로, 랩토 부호의 부호화기는 소실 부호의 부호화기와 LT 부호의 부호화기가 연접된 형태로 구성될 수 있다.
따라서 후술될 본 발명의 실시 예에서 LT 부호의 부호화기에 대한 설명은 LT 부호를 구성 부호로 사용하는 모든 파운틴 부호에 적용될 수 있음에 유의하여야 한다.
이하 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 LT 부호의 부호화 과정을 팩토 그래프로 나타낸 예를 보이고 있다. 도 1에서 보이고 있는 팩토 그래프는 4개의 소스 심볼들 X(1)(102), X(2)(104), X(3)(106), X(4)(108)과 5개의 부호화 심볼들 Z(1)(110), Z(2)(112), Z(3)(114), Z(4)(116), Z(5)(118)로 이루어진다. 그리고 부호화 함수로써 배타적 논리합 (XOR) 연산인
Figure pat00006
을 사용한다. 그리고 여기서 소스 심볼은 부호화를 위해 입력되는 심볼을 의미한다.
도 1에 나타낸 LT 부호에서 소스 심볼들과 부호화 심볼들의 관계는 하기 <수학식 2>로 정의될 수 있다.
Figure pat00007
이 때 도 1에 나타낸 LT 부호의 차수 분포는 하기 <수학식 3>과 같다.
Figure pat00008
한편 랩토 부호는 선형시간 부호화 및 복호화가 가능한 파운틴 부호의 일종으로 고정된 부호율을 가지는 소실 부호와 LT 부호를 연접한 부호이다. 상기 랩토 부호에서 고정된 부호율을 가지는 소실 부호를 사전 부호(pre-code)라 한다. 상기 사전 부호는 LT 부호에서 복원되지 못한 소스 심볼을 복원하는 역할을 수행한다.
상기 랩토 부호는 부호화 심볼들이 전송하고자 하는 소스 심볼들을 정확하게 포함하는 구조적인 형태(systematic)로 사용될 수 있다. 상기 구조적인 랩토 부호는 3GPP (3rd Generation Partnership Project)에서 멀티미디어 방송/멀티미디어 서비스(MBMS: Multimedia Broadcasting and Multicasting Services)를 위한 응용 계층(application layer)에서의 순방향 오류 정정 부호로 사용된다.
상기 랩토 부호의 부호화 과정에 있어, 사전 부호는 K개의 소스 심볼을 사용하여 r개의 용장 심볼 (redundant symbol)을 생성한다. 이때 상기 K개의 소스 심볼과 상기 r개의 용장 심볼을 통칭하여 ‘중간 심볼 (intermediate symbol)’이라 칭한다.
상기 랩토 부호의 부호화 심볼은 앞에서 정의된 K+r개의 중간 심볼에 상술한 ‘LT 부호화 과정’을 적용함으로써 생성할 수 있다. 이와 같이 생성된 랩토 부호의 부호화 심볼들은 채널을 통하여 전송된다.
상기 채널을 통해 랩토 부호의 부호화 심볼들을 수신한 수신장치는 랩토 부호의 복호화를 통해 상기 수신한 부호화 심볼로부터 소스 심볼들에 대한 복원을 시도한다.
상기 랩토 부호의 복호화는 LT 부호의 복호화를 통하여 중간 심볼을 복원하는 과정과, 사전 부호의 복호화를 통하여 소스 심볼을 복원하는 과정으로 분리되어 수행된다. 그렇지 않고 상기 사전 부호와 상기 LT 부호가 하나의 부호로 간주되어 동시에 수행될 수 있다. 이때 수신장치는 부호화 심볼의 차수 및 부호화에 사용된 소스 심볼들의 색인(index)을 송신장치로부터 전달받거나 상기 송신장치와 동일한 과정을 통하여 동일한 값들을 생성할 수 있어야 한다.
상술한 LT 부호의 부호화 과정에서 각 부호화 심볼들은 임의로 선택된 몇 개의 소스 심볼들을 이용한 XOR 연산을 통해 생성된다. 이때 각 소스 심볼의 차수는 해당 소스 심볼이 몇 개의 부호화 심볼 생성에 관여하는지를 나타내는 정보이다.
만약 상기 부호화 심볼의 개수가 충분히 많다면, 소스 심볼들은 통계적으로 동일한 차수를 가지게 된다. 하지만 특정 소스 심볼이 어떠한 부호화 심볼의 생성에도 관여하지 않을 가능성, 즉 특정 소스 심볼의 차수가 0일 가능성은 0이 아닌 확률로 존재하며 이는 LT 부호의 복호화가 성공할 확률에 큰 영향을 미친다.
또한 랩토 부호는 고정된 부호율을 가지는 소실 부호와 LT 부호를 연접한 부호이므로, 상술한 점은 랩토 부호의 복호화가 성공할 확률에도 영향을 미친다. 특히 부호화 심볼의 개수가 충분히 크지 않을 경우에는 상술한 점의 영향이 증가하므로 이를 해결하기 위한 LT 부호화 방법의 개발이 요구된다.
본 발명의 실시 예에서는 기본적으로 파운틴 부호의 모든 소스 심볼들이 최소한 하나 이상의 부호화 심볼의 생성에 관여하도록 하는 부호화 심볼들의 생성 장치 및 방법을 제안한다. 또한 본 발명의 실시 예에서는 파운틴 부호를 사용하는 통신 시스템에서 부호화 심볼을 구성하는 소스 심볼들을 역추적하고, 상기 소스 심볼들을 복원하는 장치 및 그 제어 방법을 제안한다.
후술될 본 발명의 실시 예에서는 파운틴 부호를 사용하여 부호화할 전체 소스 심볼들 중 적어도 하나의 소스 심볼에 의해 하나의 부호화 심볼을 생성할 때, 상기 전체 소스 심볼들을 적어도 한번씩 사용하여 최소 개수의 부호화 심볼들이 생성될 수 있도록 하기 위해 사용 여부를 식별하기 위한 플래그를 적용한다. 즉 초기 단계에서 전체 소스 심볼들 각각에 상응한 플래그를 초기 값으로 설정하고, 각 부호화 심볼의 생성을 위해 사용된 적어도 하나의 소스 심볼에 상응한 플래그의 설정 값을 다른 값으로 변경한다. 이와 같이 플래그의 설정 값을 변경하는 것은 부호화 심볼의 생성을 위해 사용되지 않은 소스 심볼이 다음 부호화 심볼의 생성을 위해 우선적으로 사용될 수 있도록 하기 위함이다.
도 2는 본 발명의 실시 예에서 제안하는 파운틴 부호를 사용하여 부호화하는 방안을 팩토 그래프를 사용하여 개념적으로 보이고 있다.
도 2에서는 본 발명의 실시 예에서 제안하는 부호화 방안의 기술적 특징이 보다 명확하게 나타나도록 부호화 횟수 별로의 팩토 그래프를 구분하여 보이고 있다. 한편 도 2에서는 본 발명의 실시 예에 따른 부호화 방안을 적용하기 위해 소스 심볼들 각각에 대해 부여된 플래그가 이미 특정 값으로 초기화된 상황을 가정하고 있다.
도 2를 참조하면, 최초 부호화 심볼 생성 (t1)을 위해 10개의 소스 심볼들 중 세 개의 소스 심볼들이 선택된다. 상기 최초 부호화 심볼의 생성을 위해 선택된 세 개의 소스 심볼은 첫 번째, 세 번째 및 여섯 번째 소스 심볼임을 알 수 있다.
이때 상기 10개의 소스 심볼들 각각에 대응한 플래그의 값들이 모두 초기화된 상태를 가정하고 있으므로, 상기 최초 부호화 심볼의 생성을 위해 선택된 첫 번째, 세 번째 및 여섯 번째 소스 심볼 각각에 대응한 플래그의 값은 초기 값이 아닌 다른 값으로 변경한다.
두 번째 부호화 심볼 생성 (t2)을 위해 앞서 사용된 3개의 소스 심볼을 제외한 7개의 소스 심볼들 중 두 개의 소스 심볼들이 선택된다. 상기 두 번째 부호화 심볼의 생성을 위해 선택된 두 개의 소스 심볼은 네 번째와 열 번째 소스 심볼임을 알 수 있다. 따라서 상기 두 번째 부호화 심볼의 생성을 위해 선택된 네 번째와 열 번째 소스 심볼 각각에 대응한 플래그의 값은 초기 값이 아닌 다른 값으로 변경한다.
세 번째 부호화 심볼 생성 (t3)을 위해 앞서 사용된 5개의 소스 심볼을 제외한 5개의 소스 심볼들 중 네 개의 소스 심볼들이 선택된다. 상기 세 번째 부호화 심볼의 생성을 위해 선택된 네 개의 소스 심볼은 두 번째, 다섯 번째, 일곱 번째 및 여덟 번째 소스 심볼임을 알 수 있다. 따라서 상기 세 번째 부호화 심볼의 생성을 위해 선택된 두 번째, 다섯 번째, 일곱 번째 및 여덟 번째 소스 심볼 각각에 대응한 플래그의 값은 초기 값이 아닌 다른 값으로 변경한다.
네 번째 부호화 심볼의 생성 (t4)을 위해 세 개의 소스 심볼을 선택하고자 하나 10개의 소스 심볼들 중 앞서 9개의 소스 심볼들이 사용됨에 따라 선택할 수 있는 소스 심볼이 1개만 남아 있다. 따라서 남은 1개의 소스 심볼인 아홉 번째 소스 심볼을 선택한 후 모든 소스 심볼, 즉 10개의 소스 심볼들 각각에 대응한 플래그의 값을 초기화 한다.
그리고 네 번째 부호화 심볼의 생성을 위해 요구되는 세 개의 소스 심볼들 중 하나의 소스 심볼은 이미 선택되었음에 따라 상기 플래그가 초기화된 10개의 소스 심볼들 중 두 개의 소스 심볼을 선택한다. 즉 10개의 소스 심볼들 중 세 번째와 여섯 번째 소스 심볼을 추가로 선택한다. 그 후 상기 추가로 선택된 세 번째와 여섯 번째 소스 심볼에 대응하여 초기 값으로 설정된 플래그의 값을 다른 값으로 변경한다.
상술한 바에서 확인할 수 있는 바와 같이 선택된 소스 심볼에 대응한 플래그의 값을 다른 값으로 변경하는 것은 이후에 이루어질 부호화 심볼의 생성 시에 앞서 사용되지 않은 소스 심볼이 선택될 수 있도록 하기 위함이다. 예컨대 플래그의 초기 값이 1로 설정되었다면, 상기 변경된 값은 0이 될 수 있다.
따라서 부호화 심볼의 생성 시에는 플래그의 값이 1로 설정된 소스 심볼들 중 필요한 수의 소스 심볼을 선택하고, 상기 선택한 소스 심볼에 의해 부호화 심볼을 생성한다. 특히 플래그의 값이 1로 설정된 소스 심볼의 개수가 부호화 심볼을 생성하기 위해 필요한 소스 심볼의 개수보다 작은 경우에는 플래그의 값이 1로 설정된 소스 심볼을 우선적으로 선택한다. 그리고 모든 소스 심볼들에 대응한 플래그의 값들을 초기화한 후 부족한 소스 심볼을 추가로 선택하고, 상기 추가로 선택된 소스 심볼에 대응한 플래그의 값을 다른 값을 변경한다.
한편 앞에서 살펴본 본 발명의 실시 예에 따른 부호화 방안을 적용하기 위해서는 부호화 심볼을 생성하기 위해 필요한 소스 심볼의 개수 (부호화 심볼의 차수)를 결정하고, 상기 결정된 부호화 심볼의 차수를 상응하는 소스 심볼들, 즉 연관 심볼들을 선택하기 위한 구체적인 방안이 마련되어야 한다.
도 3은 본 발명의 일 실시 예에 따른 LT 부호화기의 구성을 보이고 있다.
도 3을 참조하면, 하나의 파일(file) 또는 그 일부를 구성하는 K개의 소스 심볼들 X(0), X(2), …, X(K-1)는 심볼 버퍼(310)에 저장된다.
부호화 심볼 차수 선택부(320)는 생성할 부호화 심볼을 가리키는 키 (Key) 값인 I와 상기 심볼 버퍼(310)에 저장된 전체 소스 심볼의 개수 K를 입력으로 하고, 상기 키 값인 I와 상기 전체 소스 심볼의 개수인 K를 이용하여 부호화 심볼의 차수 W(I)를 선택한다. 이때 상기 부호화 심볼의 차수 W(I)는 앞에서도 정의된 바와 같이 K개의 전체 소스 심볼들 중 상기 키 값인 I에 상응하는 부호화 심볼을 생성하기 위해 요구되는 소스 심볼의 개수를 의미한다.
한편 상기 부호화 심볼 차수 선택부(320)는 상기 선택한 W(I)를 연관 심볼 선택부(330)와 부호화 심볼 생성부(340)로 전달한다.
상기 연관 심볼 선택부(330)는 상기 키 값인 I와 상기 전체 소스 심볼의 개수 K, 그리고 상기 부호화 심볼의 차수 W(I)를 입력으로 하고, 상기 키 값인 I와 상기 전체 소스 심볼의 개수인 K 및 상기 부호화 심볼의 차수 W(I)를 이용하여 부호화 심볼을 생성하기 위한 적어도 하나의 소스 심볼에 상응하는 연관 심볼을 선택한다.
상기 연관 심볼 선택부(330)는 연관 심볼을 선택함에 있어, 앞에서 도 2를 참조하여 설명한 방안을 그대로 적용할 수 있다. 즉 모든 소스 심볼들이 최소한 하나 이상의 부호화 심볼의 생성에 관여될 수 있도록 한다.
이를 위한 방안으로써 부호화할 전체 소스 심볼들 중 적어도 하나의 소스 심볼에 의해 하나의 부호화 심볼을 생성할 때, 상기 전체 소스 심볼들을 적어도 한번씩 사용하여 최소 개수의 부호화 심볼들이 생성될 수 있도록 하기 위해 사용 여부를 식별하기 위한 플래그를 적용한다. 즉 초기 단계에서 전체 소스 심볼들 각각에 상응한 플래그를 초기 값으로 설정하고, 각 부호화 심볼의 생성을 위해 사용된 적어도 하나의 소스 심볼에 상응한 플래그의 설정 값을 다른 값으로 변경한다.
그리고 상기 연관 심볼 선택부(330)는 선택한 적어도 하나의 연관 심볼에 의해 연관 심볼 목록 AL(I)를 생성한다. 여기서 상기 연관 심볼 목록 AL(I)는 상기 키 값인 I에 대응한 부호화 심볼을 생성하기 위해 상기 K개의 전체 소스 심볼들 중 상기 부호화 심볼의 차수 W(I)에 의해 결정된 개수만큼의 소스 심볼을 가리키는 목록에 해당한다.
상기 연관 심볼 선택부(330)는 앞서 생성한 연관 심볼 목록 AL(I)를 상기 부호화 심볼 생성부(340)로 제공한다.
상기 부호화 심볼 생성부(340)는 상기 부호화 심볼 차수 선택부(320)에 의해 제공된 부호화 심볼의 차수 W(I)와 상기 연관 심볼 선택부(330)에 의해 제공된 연관 심볼 목록 AL(I)을 기반으로 하여 상기 심볼 버퍼(310)에 저장된 K개의 소스 심볼들 중 상기 부호화 심볼의 차수 W(I)만큼의 소스 심볼에 대해 부호화 함수를 적용하여 부호화 심볼 Z(I)을 생성한다.
상기 부호화 심볼을 생성하기 위해 적용되는 부호화 함수 F(I)를 상기 키 값인 I와 상기 소스 심볼의 개수 K를 사용하여 선택적으로 사용하기 위한 별도의 구성을 구비할 수 있다. 하지만 본 발명의 실시 예에서는 부호화 함수 F(I)로써 XOR 함수를 가정하고 있음에 따라, 상기 부호화 함수 F(I)를 선택적으로 적용하기 위한 구성을 생략하였다.
본 발명에서는 모든 소스 심볼들이 최소한 하나 이상의 부호화 심볼의 생성에 관여될 수 있도록 소스 심볼의 차수를 제어한다. 즉 모든 소스 심볼의 차수가 1 이상이 되도록 한다. 본 발명의 바람직한 일 실시 예에서는 모든 소스 심볼의 차수가 동일하거나 그 차이가 최대 값인 1을 넘지 않도록 한다. 본 발명의 또 다른 실시 예에서는 모든 소스 심볼의 차수가 1 이상이라는 것만을 보장한다.
도 4는 본 발명의 실시 예를 위한 LT 부호화기에서 소스 심볼의 차수를 제어하는 연관 심볼 선택부(330)의 상세 구성을 보이고 있다. 도 4에 의하면 본 발명의 일 실시 예에 따른 연관 심볼 선택부(330)는 소스 심볼 차수 기록부(405), 소스 심볼 차수 제어부(410), 연관 심볼 색인 생성부(415)를 포함한다.
도 4를 참조하면, 소스 심볼 차수 기록부(405)는 각 소스 심볼의 차수에 관한 정보 D를 저장한다. 그리고 상기 소스 심볼 차수 기록부(405)는 저장하고 있는 각 소스 심볼의 차수에 관한 정보 D를 소스 심볼 차수 제어부(410)로 제공한다. 이때 상기 소스 심볼 차수 기록부(405)는 상기 소스 심볼 차수 제어부(410)로 전체 소스 심볼들의 차수에 관한 정보가 아닌 일부 소스 심볼의 차수에 관한 정보만을 제공할 수 있다. 이 경우에는 상기 소스 심볼 차수 기록부(405)는 상기 소스 심볼 차수 제어부(410)로부터 차수에 관한 정보가 필요한 소스 심볼의 선택 정보를 제공받을 수 있다.
상기 소스 심볼 차수 기록부(405)는 상기 소스 심볼 차수 제어부(410)에 의해 제공되는 각 소스 심볼의 차수에 관한 정보 D’에 의해 기존 각 소스 심볼의 차수에 관한 정보 D를 갱신한다. 이때 상기 소스 심볼 차수 기록부(405)는 상기 소스 심볼 차수 제어부(410)로부터 갱신이 요구되는 일부 소스 심볼의 차수에 관한 정보만을 제공받을 수 있다.
상기 소스 심볼 차수 제어부(410)는 상기 소스 심볼 차수 기록부(405)에 의해 제공되는 차수에 관한 정보 D와 전체 소스 심볼의 개수 K를 입력으로 하여 소스 심볼의 차수 분포에 관한 정보 S를 생성한다. 상기 소스 심볼 차수 제어부(410)에 의해 생성된 소스 심볼의 차수 분포에 관한 정보 S는 연관 심볼 색인 생성부(415)로 전달된다.
그리고 상기 소스 심볼 차수 제어부(410)는 상기 연관 심볼 색인 생성부(415)로부터 갱신된 차수 분포에 관한 정보 S’을 제공받아 상기 소스 심볼의 차수에 관한 정보 D를 변경한다. 그리고 상기 소스 심볼 차수 제어부(410)는 상기 소스 심볼의 차수에 관한 정보 D의 변경에 의해 변경된 소스 심볼의 차수에 관한 정보 D’를 생성한다. 상기 소스 심볼 차수 제어부(410)는 상기 변경된 소스 심볼의 차수에 관한 정보 D’를 상기 소스 심볼 차수 기록부(405)로 제공한다.
상기 연관 심볼 색인 생성부(415)는 전체 소스 심볼의 개수 K, 생성할 부호화 심볼을 식별하는 키 값 I, 부호화 심볼의 차수 W(I) 및 상기 소스 심볼의 차수 분포에 관한 정보 S를 입력으로 하여 연관 심볼의 색인 AL(I)를 생성한다. 상기 연관 심볼 색인 생성부(415)에 의해 생성된 연관 심볼의 색인 AL(I)은 도 3에 도시된 부호화 심볼 생성부(340)로 제공된다.
한편 상기 연관 심볼 색인 생성부(415)는 필요에 따라 소스 심볼의 차수 분포에 관한 정보 S를 갱신하고, 상기 갱신된 소스 심볼의 차수 분포에 관한 정보 S’ 을 상기 소스 심볼 차수 제어부(410)로 제공한다.
상술한 설명에서는 소스 심볼의 차수를 제어하는 연관 심볼 선택부(330)의 구성 요소들에 대한 일 예를 도4에 도시하였으나 본 발명의 범위가 도 4에 도시한 구조로 한정되는 것은 아니다. 즉 구현에 따라 각 구성 요소들의 입력 신호와 출력 신호들은 다양한 형태를 가질 수 있으며, 일부 구성 요소들이 생략될 수 있다. 뿐만 아니라 일부의 구성 요소들은 통합되거나 부가적인 제어 신호를 포함할 수 있다.
도 5는 본 발명의 실시 예에 따른 송신장치에 구비된 부호화기에 의해 수행되는 LT 부호화 절차의 일 예를 보이고 있다.
도 5를 참조하면, 송신장치의 부호화기는 510단계에서 소스 심볼 차수를 초기화한다. 즉 부호화를 수행할 모든 소스 심볼들 각각에 대한 차수를 초기 값으로 설정한다. 상기 초기 값을 0이라 가정하면, K개의 소스 심볼들 각각에 대응한 차수 (또는 플래그)의 값을 0으로 설정한다. 이는 하기 <수학식 4>로 일반화될 수 있다.
Figure pat00009
상기 부호화기는 512단계에서 생성하고자 하는 부호화 심볼의 차수 W(I)를 결정한다. 여기서 상기 부호화 심볼의 차수 W(I)는 연관 심볼의 개수를 의미한다. 상기 연관 심볼은 상기 부호화 심볼을 생성하기 위해 요구되는 적어도 하나의 소스 심볼을 지칭한다.
상기 부호화 심볼의 차수 W(I)를 결정하면, 상기 부호화기는 514단계에서 상기 결정된 부호화 심볼의 차수 W(I)를 개수하기 위한 카운터 값 j를 0으로 초기화한다. 즉 부호화 심볼의 생성을 위해 요구되는 적어도 하나의 연관 심볼에 대한 색인이 이루어지는지를 검사하기 위한 카운터 값 j를 초기화한다.
상기 부호화기는 516단계에서 j번째 연관 심볼의 색인 Index (j)을 생성한다. 이때 상기 Index (j)는
Figure pat00010
의 조건을 만족하여야 한다.
상기 j번째 연관 심볼에 대한 색인 생성이 완료되면, 518단계에서 상기 색인 생성이 완료된 상기 j번째 연관 심볼에 대응하여 설정된 차수 D(index (j))가 1보다 작은지를 판단한다. 즉 상기 j번째 연관 심볼이 이미 부호화 심볼의 생성을 위해 사용된 적이 있는지를 확인한다. 하지만 상기 510단계에서 소스 심볼의 차수가 0으로 초기화되지 않고 다른 값으로 초기화된다면, 상기 518단계에서는 1이 아닌 다른 값이 사용될 수 있다.
상기 부호화기는 상기 518단계에서 상기 j번째 연관 심볼이 이미 다른 부호화 심볼의 생성을 위해 사용된 적이 있다고 판단하면, 상기 516단계로 리턴하여 상기 j번째 연관 심볼에 대응한 새로운 색인을 생성한 후 상기 518단계를 재 수행한다.
상기 부호화기는 상기 518단계에서 상기 j번째 연관 심볼이 부호화 심볼의 생성을 위해 처음으로 사용되는 것이라고 판단하면, 520단계에서 상기 생성한 식인 Index (j)를 연관 심볼의 색인 AL(I,j)에 등록한다. 그리고 다음 연관 심볼을 선택하기 위해 카운트 값 j를 1 증가시킨 후 상기 색인이 이루어진 연관 심볼에 상응한 차수를 0에서 1로 변경한다. 이와 같이 차수를 0에서 1로 변경하는 것은 다음 부호화 심볼을 생성할 때에 중복하여 사용되는 것을 방지하기 위함이다.
상기 부호화기는 522단계에서 0으로 차수가 초기화되었던 K개의 모든 소스 심볼들 각각에 상응한 차수가 1로 변경되었는지를 판단한다. 즉 모든 소스 심볼들이 부호화 심볼을 생성하기 위해 한번씩 사용되었는지를 판단한다.
상기 부호화기는 모든 소스 심볼들이 부호화 심볼을 생성하기 위해 사용되었다고 판단되면, 524단계에서 모든 소스 심볼들 각각에 대응한 차수를 초기화한다.
상기 부호화기는 전체 소스 심볼들 중 부호화 심볼을 생성하기 위해 사용되지 않은 소스 심볼이 존재하거나 상기 524단계에서 모든 소스 심볼들에 대한 차기의 초기화가 재 수행되면 526단계로 진행한다. 상기 부호화기는 상기 526단계로 진행하면, 현재까지 카운트된 값 j가 부호화 심볼의 차수 W(I)보다 큰지를 판단한다. 즉 앞에서 결정된 부호화 심볼의 차수 W(I)를 만족하는 수만큼의 소스 심볼에 대한 연관 심볼의 색인화 작업이 완료되었는지를 판단한다.
만약 상기 결정된 부호화 심볼의 차수 W(I)를 만족하는 수만큼의 소스 심볼에 대한 연관 심볼의 색인화 작업이 완료되지 않았다면, 상기 부호화기는 상기 516단계 내지 526단계를 반복하여 수행한다.
하지만 상기 결정된 부호화 심볼의 차수 W(I)를 만족하는 수만큼의 소스 심볼에 대한 연관 심볼의 색인화 작업이 완료되었다면, 상기 부호화기는 528단계에서 상기 연관 심볼의 색인 AL(I)와 상기 부호화 심볼의 차수 W(I)를 기반으로 하여 전체 소스 심볼로부터 부호화를 위한 선택된 적어도 하나의 소스 심볼에 의해 부호화 심볼을 생성한다. 상기 부호화 심볼의 생성을 위해서는 소정의 부호화 함수 (일 예로 XOR 연산)를 사용한다.
그 후 상기 부호화기는 530단계에서 추가로 생성할 부호화 심볼의 존재하는지를 판단한다. 만약 추가적인 부호화 심볼의 생성이 필요하다고 판단되면, 상기 부호화기는 상기 512단계 내지 528단계를 반복하여 수행한다.
하지만 추가적인 부호화 심볼의 생성이 필요하지 않다면, 상기 부호화기는 소스 심볼에 의해 부호화 심볼을 생성하는 부호화 작업을 종료한다.
도 6은 본 발명의 실시 예에 따른 송신장치에 구비된 부호화기에 의해 수행되는 LT 부호화 절차의 다른 예를 보이고 있다.
도 6을 참조하면, 송신장치의 부호화기는 610단계에서 변수를 초기화하고, 확률 변수를 생성한다. 여기서 상기 변수는 부호화를 위해 소스 심볼을 선택하기 위한 인덱스인 i를 의미하며, 상기 확률 변수는 색인을 위한 연관 심볼을 선택하기 위한 요소를 의미한다.
일 예로 상기 변수 i는 0으로 초기화시키고, 상기 확률 변수는 하기 <수학식 5>에 의해 생성할 수 있다.
Figure pat00011
상기 부호화기는 612단계에서 생성하고자 하는 부호화 심볼의 차수 W(I)를 결정한다. 여기서 상기 부호화 심볼의 차수 W(I)는 연관 심볼의 개수를 의미한다. 상기 연관 심볼은 상기 부호화 심볼을 생성하기 위해 요구되는 적어도 하나의 소스 심볼을 지칭한다.
상기 부호화 심볼의 차수 W(I)를 결정하면, 상기 부호화기는 614단계에서 상기 결정된 부호화 심볼의 차수 W(I)를 개수하기 위한 카운터 값 j를 0으로 초기화한다. 즉 부호화 심볼의 생성을 위해 요구되는 적어도 하나의 연관 심볼에 대한 색인이 이루어지는지를 검사하기 위한 카운터 값 j를 초기화한다.
상기 부호화기는 616단계에서 j번째 연관 심볼의 색인을 생성한다. 이때 상기 j번째 연관 심볼의 색인 AL(I,j)는 (X+i*Y) mod K에 의해 생성할 수 있다.
상기 j번째 연관 심볼에 대한 색인 생성이 완료되면, 상기 부호화기는 618단계에서 다음 소스 심볼을 선택하기 위해 i를 1 증가시킨다. 그리고 부호화 심볼을 생성하기 위해 요구되는 연관 심볼의 수를 개수하기 위한 카운트 값 j를 1 증가시킨다.
상기 부호화기는 620단계에서 부호화 심볼의 생성을 위해 모든 소스 심볼들이 사용되었는지를 판단한다. 즉 i가 전체 소스 심볼의 수인 K보다 작은가를 판단한다. 만약 상기 i가 K보다 작다면 아직 모든 소스 심볼들이 부호화 심볼의 생성을 위해 사용되지 않았다고 판단할 수 있다. 하지만 i가 K와 같거나 크다면 모든 소스 심볼들이 부호화 심볼의 생성을 위해 사용되었다고 판단할 수 있다.
상기 부호화기는 모든 소스 심볼들이 부호화 심볼의 생성을 위해 사용되었다고 판단하면, 622단계로 진행하여 변수 초기화 및 확률 변수를 생성한다. 상기 622단계에서의 동작은 상기 610단계에서 이루어진 동작과 동일할 수 있다.
하지만 아직 모든 소스 심볼들이 부호화 심볼들의 생성을 위해 사용되지 않았다면, 상기 부호화기는 624단계로 진행하여 앞에서 결정된 부호화 심볼의 차수 W(I)를 만족하는 수만큼의 소스 심볼에 대한 연관 심볼의 색인화 작업이 완료되었는지를 판단한다. 이는 현재까지의 카운트된 값 j와 부호화 심볼의 차수 W(I)의 비교를 통해 이루어질 수 있다.
즉 j가 W(I)보다 작으면 아직 앞서 결정된 부호화 심볼의 차수 W(I)를 만족하는 수만큼의 소스 심볼에 대한 연관 심볼의 색인화 작업이 이루어지지 않았다고 판단할 수 있다. 이 경우 상기 부호화기는 상기 616단계 내지 상기 622단계를 통해 색인화 작업을 반복하여 수행한다.
하지만 j가 W(I)와 같거나 크면 앞서 결정된 부호화 심볼의 차수 W(I)를 만족하는 수만큼의 소스 심볼에 대한 연관 심볼의 색인화 작업이 이루어졌다고 판단할 수 있다. 이 경우 상기 부호화기는 626단계에서 상기 연관 심볼의 색인 AL(I)와 상기 부호화 심볼의 차수 W(I)를 기반으로 하여 전체 소스 심볼로부터 부호화를 위한 선택된 적어도 하나의 소스 심볼에 의해 부호화 심볼을 생성한다. 상기 부호화 심볼의 생성을 위해서는 소정의 부호화 함수 (일 예로 XOR 연산)를 사용한다.
그 후 상기 부호화기는 628단계에서 추가로 생성할 부호화 심볼의 존재하는지를 판단한다. 만약 추가적인 부호화 심볼의 생성이 필요하다고 판단되면, 상기 부호화기는 상기 612단계 내지 626단계를 반복하여 수행한다.
하지만 추가적인 부호화 심볼의 생성이 필요하지 않다면, 상기 부호화기는 소스 심볼에 의해 부호화 심볼을 생성하는 부호화 작업을 종료한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구의 범위뿐만 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.
상기 통신 채널은 송신장치와 수신장치가 공간적으로 떨어져 있는 유선 및 무선 채널뿐만 아니라 저장 매체에 정보를 저장한 이후에 필요한 시간에 원하는 정보를 추출하여 사용하는 시간적인 채널 및 상기 공간적인 채널과 상기 시간적인 채널의 혼합된 형태를 포함한다.
또한 상기 통신 채널을 통해 전달되는 정보는 통산적인 텍스트 및 음성 정보 이외에도 비디오나 오디오 파일 등의 멀티미디어 정보와 특정 응용을 위한 시그널링 정보와 데이터 파일 등을 포함하는 포괄적인 개념이다.

Claims (27)

  1. 통신 시스템에서의 부호화 방법에 있어서,
    파운틴 부호를 사용하여 부호화할 전체 소스 심볼들 중 적어도 하나의 소스 심볼에 의해 하나의 부호화 심볼을 생성할 때, 상기 전체 소스 심볼들을 적어도 한번씩 사용하여 최소 개수의 부호화 심볼들을 생성하는 부호화 방법.
  2. 제1항에 있어서,
    상기 부호화 심볼들의 생성을 위해 상기 전체 소스 심볼들이 적어도 한번씩은 사용될 수 있도록 초기 단계에서 상기 전체 소스 심볼들 각각에 상응한 플래그를 초기 값으로 설정하고, 각 부호화 심볼의 생성을 위해 사용된 적어도 하나의 소스 심볼에 상응한 플래그의 설정 값을 다른 값으로 변경하는 부호화 방법.
  3. 제2항에 있어서,
    상기 부호화 심볼의 생성을 위해 상기 플래그가 초기 값으로 설정된 소스 심볼을 우선적으로 사용하고, 상기 플래그가 초기 값으로 설정된 소스 심볼이 하나의 부호화 심볼을 생성하기에 부족할 때에는 부족한 만큼의 소스 심볼로 상기 플래그가 다른 값으로 변경된 소스 심볼을 사용하는 부호화 방법.
  4. 제3항에 있어서,
    상기 부호화 심볼의 생성에 의해 상기 전체 소스 심볼들의 플래그가 모두 다른 값으로 변경되면, 상기 전체 소스 심볼들 각각에 상응한 플래그를 초기 값으로 재설정하는 부호화 방법.
  5. 제4항에 있어서,
    상기 전체 소스 심볼들 각각에 상응한 플래그에 설정 또는 재설정되는 초기 값으로 1을 사용하고, 상기 각 부호화 심볼의 생성을 위해 사용된 적어도 하나의 소스 심볼에 상응한 플래그의 설정 값을 변경하는 다른 값으로 0을 사용하는 부호화 방법.
  6. 통신 시스템에서 파운틴 부호를 사용하여 소스 심볼을 부호화하는 장치에 있어서,
    부호화 대상에 상응하는 전체 소스 심볼들 중 적어도 하나의 소스 심볼에 의해 하나의 부호화 심볼을 생성할 때, 부호화 심볼들의 생성을 위해 상기 전체 소스 심볼들이 적어도 한번씩은 사용될 수 있도록 하는 부호화 장치.
  7. 제6항에 있어서,
    상기 부호화 심볼들의 생성을 위해 상기 전체 소스 심볼들이 적어도 한번씩은 사용될 수 있도록 초기 단계에서 상기 전체 소스 심볼들 각각에 상응한 플래그를 초기 값으로 설정하고, 각 부호화 심볼의 생성을 위해 사용된 적어도 하나의 소스 심볼에 상응한 플래그의 설정 값을 다른 값으로 변경하는 부호화 장치.
  8. 제7항에 있어서,
    상기 부호화 심볼의 생성을 위해 상기 플래그가 초기 값으로 설정된 소스 심볼을 우선적으로 사용하고, 상기 플래그가 초기 값으로 설정된 소스 심볼이 하나의 부호화 심볼을 생성하기에 부족할 때에는 부족한 만큼의 소스 심볼로 상기 플래그가 다른 값으로 변경된 소스 심볼을 사용하는 부호화 장치.
  9. 제8항에 있어서,
    상기 부호화 심볼의 생성에 의해 상기 전체 소스 심볼들의 플래그가 모두 다른 값으로 변경되면, 상기 전체 소스 심볼들 각각에 상응한 플래그를 초기 값으로 재설정하는 부호화 장치.
  10. 제9항에 있어서,
    상기 전체 소스 심볼들 각각에 상응한 플래그에 설정 또는 재설정되는 초기 값으로 1을 사용하고, 상기 각 부호화 심볼의 생성을 위해 사용된 적어도 하나의 소스 심볼에 상응한 플래그의 설정 값을 변경하는 다른 값으로 0을 사용하는 부호화 장치.
  11. 통신 시스템에서 파운틴 부호를 사용하여 소스 심볼을 부호화하는 방법에 있어서,
    전체 소스 심볼들 각각에 대응한 차수를 고려하여 하나의 부호화 심볼을 생성하기 위한 적어도 하나의 소스 심볼을 선택하는 과정과,
    상기 선택한 적어도 하나의 소스 심볼을 이용하여 하나의 부호화 심볼을 생성하는 과정과,
    상기 선택한 적어도 하나의 소스 심볼에 대응한 차수를 갱신하는 과정을 포함하는 부호화 방법.
  12. 제11항에 있어서,
    최초의 부호화 심볼을 생성하기 전에 상기 전체 소스 심볼들 각각에 대응한 차수를 초기화하는 과정을 더 구비하는 부호화 방법.
  13. 제12항에 있어서,
    상기 전체 소스 심볼들에 대응한 차수의 갱신이 이루어지면, 상기 전체 소스 심볼들 각각에 대응한 차수의 초기화를 재 수행하는 과정을 더 구비하는 부호화 방법.
  14. 제11항에 있어서, 상기 선택하는 과정은,
    소스 심볼의 차수에 관한 정보와 전체 소스 심볼의 개수를 기반으로 소스 심볼의 차수 분포에 관한 정보를 생성하는 과정과,
    상기 전체 소스 심볼의 개수와 생성하고자 하는 부호화 심볼을 식별하는 키 값과 상기 생성하고자 하는 부호화 심볼의 차수 및 상기 소스 심볼의 차수 분포에 관한 정보를 기반으로 상기 적어도 하나의 소스 심볼에 상응하는 연관 심볼의 색인을 생성하는 과정을 포함하는 부호화 방법.
  15. 제14항에 있어서, 상기 갱신하는 과정은,
    상기 생성한 연관 심볼의 색인을 기반으로 상기 소스 심볼의 차수 분포에 관한 정보를 갱신하는 과정과,
    상기 갱신된 소스 심볼의 차수 분포에 관한 정보를 기반으로 상기 소스 심볼의 차수에 관한 정보를 갱신하는 과정을 포함하는 부호화 방법.
  16. 제11항에 있어서,
    상기 갱신하는 과정에 의해 상기 전체 소스 심볼들 각각에 대응한 차수가 1 이상임을 보장하는 부호화 방법.
  17. 제13항에 있어서,
    상기 초기화를 재 수행 시에 모든 소스 심볼들의 차수가 동일하거나 소스 심볼 간의 차수의 차이가 최대 1을 넘지 않음을 특징으로 하는 부호화 방법.
  18. 제13항에 있어서,
    상기 초기화를 재 수행할 시에 모든 소스 심볼들의 차수가 1이상임을 특징으로 하는 부호화 방법.
  19. 통신 시스템에서 파운틴 부호를 사용하여 소스 심볼을 부호화하는 장치에 있어서,
    전체 소스 심볼들 각각에 대응한 차수를 고려하여 하나의 부호화 심볼을 생성하기 위한 적어도 하나의 소스 심볼을 선택하고, 상기 선택한 적어도 하나의 소스 심볼에 대응한 차수를 갱신하는 연관 심볼 선택부와,
    상기 선택한 적어도 하나의 소스 심볼을 이용하여 하나의 부호화 심볼을 생성하는 부호화 심볼 생성부를 포함하는 부호화 장치.
  20. 제19항에 있어서, 상기 연관 심볼 선택부는,
    상기 전체 소스 심볼들 각각에 대응한 차수에 관한 정보와 상기 전체 소스 심볼의 개수를 기반으로 소스 심볼의 차수 분포에 관한 정보를 생성하는 소스 심볼 차수 제어부와,
    상기 전체 소스 심볼의 개수와 생성하고자 하는 부호화 심볼을 식별하는 키 값과 상기 생성하고자 하는 부호화 심볼의 차수 및 상기 소스 심볼의 차수 분포에 관한 정보를 기반으로 상기 적어도 하나의 소스 심볼에 상응하는 연관 심볼의 색인을 생성하는 연관 심볼 생성부를 포함하는 부호화 장치.
  21. 제20항에 있어서,
    상기 전체 소스 심볼들 각각에 대응한 차수에 관한 정보를 기록하는 소스 심볼 차수 기록부를 더 구비하는 부호화 장치.
  22. 제21항에 있어서, 상기 연관 심볼 생성부는,
    상기 생성한 연관 심볼의 색인을 기반으로 상기 소스 심볼의 차수 분포에 관한 정보를 갱신함을 특징으로 하는 부호화 장치.
  23. 제22항에 있어서, 상기 소스 심볼 차수 제어부는,
    상기 갱신된 소스 심볼의 차수 분포에 관한 정보를 기반으로 상기 소스 심볼의 차수에 관한 정보를 갱신함을 특징으로 하는 부호화 장치.
  24. 제21항에 있어서,
    상기 소스 심볼 차수 기록부에 기록된 상기 전체 소스 심볼들 각각에 대응한 차수는 최초의 부호화 심볼을 생성하기 전에 초기화됨을 특징으로 하는 부호화 장치.
  25. 제24항에 있어서,
    상기 소스 심볼 차수 기록부에 기록된 상기 전체 소스 심볼들 각각에 대응한 차수는 상기 전체 소스 심볼들에 대응한 차수의 갱신이 이루어질 시에 초기화됨을 특징으로 하는 부호화 장치.
  26. 제25항에 있어서,
    상기 전체 소스 심볼들에 대응한 차수의 갱신이 이루어질 시에 모든 소스 심볼들의 차수가 동일하거나 소스 심볼 간의 차수의 차이가 최대 1을 넘지 않음을 특징으로 하는 부호화 장치.
  27. 제25항에 있어서,
    상기 전체 소스 심볼들에 대응한 차수의 갱신이 이루어질 시에 모든 소스 심볼들의 차수가 1이상임을 특징으로 하는 부호화 장치.
KR1020100031147A 2010-04-05 2010-04-05 통신 시스템에서의 채널 부호화 장치 및 방법 KR101615384B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100031147A KR101615384B1 (ko) 2010-04-05 2010-04-05 통신 시스템에서의 채널 부호화 장치 및 방법
US13/080,032 US8604945B2 (en) 2010-04-05 2011-04-05 Apparatus and method for channel encoding in a communication/broadcasting system
PCT/KR2011/002366 WO2011126268A2 (en) 2010-04-05 2011-04-05 Apparatus and method for channel encoding in a communication/broadcasting system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100031147A KR101615384B1 (ko) 2010-04-05 2010-04-05 통신 시스템에서의 채널 부호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110111856A true KR20110111856A (ko) 2011-10-12
KR101615384B1 KR101615384B1 (ko) 2016-04-25

Family

ID=44708994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100031147A KR101615384B1 (ko) 2010-04-05 2010-04-05 통신 시스템에서의 채널 부호화 장치 및 방법

Country Status (3)

Country Link
US (1) US8604945B2 (ko)
KR (1) KR101615384B1 (ko)
WO (1) WO2011126268A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101651683B1 (ko) * 2010-05-07 2016-08-29 삼성전자주식회사 통신 시스템에서의 채널 부호화 장치 및 방법
CN103229443A (zh) * 2012-12-26 2013-07-31 华为技术有限公司 一种喷泉编码的中继方法和设备
US9838463B2 (en) * 2013-03-12 2017-12-05 Sony Interactive Entertainment America Llc System and method for encoding control commands
KR101795484B1 (ko) * 2013-04-01 2017-11-10 삼성전자주식회사 무선 통신 시스템에서 파운틴 부호를 이용한 데이터 송신 장치 및 방법
US9116827B2 (en) * 2013-08-30 2015-08-25 Tata Consultancy Services Limited System and method for optimizing luby transform (LT) codes to facilitate data transmission over communication network
KR102111130B1 (ko) 2019-02-13 2020-05-14 국방과학연구소 이중 연결 관리 장치 및 방법
WO2021179244A1 (en) * 2020-03-12 2021-09-16 Qualcomm Incorporated Fountain-code-based broadcast channel with limited feedback

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636641B1 (en) * 1996-03-19 2003-10-21 Mitsubishi Denki Kabushiki Kaisha Encoding apparatus, decoding apparatus, encoding method and decoding method
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
DE19959178A1 (de) * 1999-12-08 2001-06-13 Siemens Ag Verfahren und Anordnung zur Decodierung von Informationen
US7631242B2 (en) * 2001-06-22 2009-12-08 Broadcom Corporation System, method and computer program product for mitigating burst noise in a communications system
EP2278807B1 (en) * 2001-11-27 2012-07-18 Samsung Electronics Co., Ltd. Apparatus for decoding a bitstrom with an orientation interpolator
ES2442190T3 (es) * 2002-05-02 2014-02-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Procedimiento y dispositivo de codificación y descodificación aritméticas utilizando una pluralidad de tablas de consulta
CN100479333C (zh) * 2002-06-11 2009-04-15 数字方敦股份有限公司 通过被恢复符号的钝化作用对链式反应代码解码的装置和方法
EP1552617A2 (en) * 2002-10-05 2005-07-13 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
MXPA05004354A (es) * 2002-10-24 2005-10-18 Agency Science Tech & Res Un metodo y un dispositivo para procesar simbolos de bits generados por una fuente de datos; un medio legible por computadora; un elemento de programa para computadora.
WO2004068715A2 (en) * 2003-01-29 2004-08-12 Digital Fountain, Inc. Systems and processes for fast encoding of hamming codes
US7660245B1 (en) 2004-09-16 2010-02-09 Qualcomm Incorporated FEC architecture for streaming services including symbol-based operations and packet tagging
US7644335B2 (en) * 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US7983354B2 (en) * 2005-11-25 2011-07-19 Samsung Electronics Co., Ltd. Digital broadcast transmitter/receiver having an improved receiving performance and signal processing method thereof
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems

Also Published As

Publication number Publication date
WO2011126268A3 (en) 2012-01-19
US20110241911A1 (en) 2011-10-06
KR101615384B1 (ko) 2016-04-25
US8604945B2 (en) 2013-12-10
WO2011126268A2 (en) 2011-10-13

Similar Documents

Publication Publication Date Title
US8737519B2 (en) Apparatus and method for channel coding in a communication system
US10666391B2 (en) Method for encoding information bit sequence in communication network
US9660763B2 (en) Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
KR101615384B1 (ko) 통신 시스템에서의 채널 부호화 장치 및 방법
US8429503B2 (en) Encoding device and decoding device
CN102017458B (zh) 在解码之前处理消息差值的装置和方法
WO2017177926A1 (zh) 一种数据传输处理方法和装置
US8281209B2 (en) Encoding method and device for low density generator matrix codes
US20100269010A1 (en) Encoding Method, Encoding Device, Decoding Method and Decoding Device for Low Density Generator Matrix Codes
JP5443616B2 (ja) 情報オブジェクトを符号化する方法及びそれを用いるエンコーダ
JPWO2008041309A1 (ja) 無線通信システム、送信装置および受信装置
CN102355341A (zh) 一种长期演进系统用混合自动重传请求的网络编码方法
CN101582744A (zh) 一种基于迭代方法的rs喷泉码的编译码方法
JP2020507990A (ja) 情報を処理するための方法および装置、通信デバイス、ならびに通信システム
WO2008007927A2 (en) Method of encoding/decoding using low density check code matrix
JP3574448B2 (ja) 通信システムにおける符号生成装置及び方法
JPWO2013001706A1 (ja) 無線送受信装置、通信システム及びそれらに用いるチャネルコーディング処理方法
US20100185915A1 (en) Method and device for encoding the low density generator matrix code
CN101573872B (zh) 用于对数据进行编码和解码的方法和装置
KR20020065866A (ko) 통신시스템에서 부호 생성장치 및 방법
US8402338B2 (en) Method of error control
US20110083055A1 (en) Decoding method for raptor codes using system
US8301961B2 (en) Decoding method for low density generator matrix code
US20180351700A1 (en) Convolutional code data sending method and apparatus
JP4116554B2 (ja) 無線通信のためのターボ復号方法および装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4