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

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

Info

Publication number
KR101615384B1
KR101615384B1 KR1020100031147A KR20100031147A KR101615384B1 KR 101615384 B1 KR101615384 B1 KR 101615384B1 KR 1020100031147 A KR1020100031147 A KR 1020100031147A KR 20100031147 A KR20100031147 A KR 20100031147A KR 101615384 B1 KR101615384 B1 KR 101615384B1
Authority
KR
South Korea
Prior art keywords
symbol
source
symbols
coded
source symbols
Prior art date
Application number
KR1020100031147A
Other languages
English (en)
Other versions
KR20110111856A (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 PCT/KR2011/002366 priority patent/WO2011126268A2/en
Priority to US13/080,032 priority patent/US8604945B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

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) 신호를 전송한다. 이때 상기 송신장치는 수신장치에게서 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와 동일한 것이 바람직하나 일반적으로 k'은 k보다 약간 큰 수이다.
상기 파운틴 부호에 있어 최초의 실용적인 구현 예는 Michael Luby에 의해 제안된 루비 변환 부호 (Luby-Transform code, 이하 “LT 부호”라 칭함)가 있다. 그 외에 랩토 부호 (Raptor code)는 선형 시간(linear time) 부호화 및 복호화가 가능한 특징을 가지는 최초의 파운틴 부호다. 상기 LT 부호와 상기 랩토 부호의 부호화 및 복호화 과정은 팩토 (factor) 그래프를 사용하여 표현 할 수 있다.
상기 LT 부호에 의한 부호화 심볼은 1개 이상의 소스 심볼을 파라미터로 가지는 부호화 함수를 사용하여 계산할 수 있다. 이때 각각의 부호화 심볼들은 다른 부호화 심볼들과 독립적으로 생성된다. 그리고 상기 생성 가능한 부호화 심볼의 개수는 이론적으로 무한대이며, 특정 응용에 있어서는 어떤 값으로 제한될 수 있다.
한편 부호화 심볼의 생성을 위해 사용되는 부호화 함수의 대표적인 예는 소스 심볼들에 대해 배타적 논리합 (XOR) 연산을 취하여 부호화 심볼을 계산하는 XOR 함수이다. 이때 상기 부호화 심볼을 계산하기 위하여 사용된 소스 심볼들을 부호화 심볼의 ‘연관 심볼’이라 하고, 상기 연관 심볼의 개수를 ‘부호화 심볼의 차수’라 한다.
일반적으로 LT 부호에 있어 부호화 심볼의 차수 분포는 하기의 <수학식 1>과 같은 다항식 형태로 나타낼 수 있다.
Figure 112010021707765-pat00001
상기 <수학식 1>에서 k는 LT 부호에 의한 부호화 절차에서 사용되는 소스 심볼의 총 개수이며,
Figure 112010021707765-pat00002
는 임의로 선택된 부호화 심볼의 차수가 i일 확률이다.
상기 <수학식 1>과 같은 부호화 심볼의 차수 분포는 LT 부호의 성능을 결정하는 중요한 요소이다.
한편 부호화 함수로 XOR 함수를 사용하는 LT 부호에 의한 부호화 절차는 하기와 같이 정리할 수 있다.
LT 부호화 과정
단계 1: 주어진 부호화 심볼의 차수 분포에 따라 차수
Figure 112010021707765-pat00003
를 선택한다.
단계 2:
Figure 112010021707765-pat00004
개의 서로 다른 소스 심볼들을 균등한 확률로 랜덤하게 선택한다.
단계 3: 선택된 소스 심볼들에 대해 XOR 연산을 수행함으로써 부호화 심볼
Figure 112010021707765-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 112010021707765-pat00006
을 사용한다. 그리고 여기서 소스 심볼은 부호화를 위해 입력되는 심볼을 의미한다.
도 1에 나타낸 LT 부호에서 소스 심볼들과 부호화 심볼들의 관계는 하기 <수학식 2>로 정의될 수 있다.
Figure 112010021707765-pat00007
이 때 도 1에 나타낸 LT 부호의 차수 분포는 하기 <수학식 3>과 같다.
Figure 112010021707765-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’를 상기 소스 심볼 차수 기록부(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 112010021707765-pat00009
상기 부호화기는 512단계에서 생성하고자 하는 부호화 심볼의 차수 W(I)를 결정한다. 여기서 상기 부호화 심볼의 차수 W(I)는 연관 심볼의 개수를 의미한다. 상기 연관 심볼은 상기 부호화 심볼을 생성하기 위해 요구되는 적어도 하나의 소스 심볼을 지칭한다.
상기 부호화 심볼의 차수 W(I)를 결정하면, 상기 부호화기는 514단계에서 상기 결정된 부호화 심볼의 차수 W(I)를 개수하기 위한 카운터 값 j를 0으로 초기화한다. 즉 부호화 심볼의 생성을 위해 요구되는 적어도 하나의 연관 심볼에 대한 색인이 이루어지는지를 검사하기 위한 카운터 값 j를 초기화한다.
상기 부호화기는 516단계에서 j번째 연관 심볼의 색인 Index (j)을 생성한다. 이때 상기 Index (j)는
Figure 112010021707765-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으로 차수가 초기화되었던 전체 소스 심볼들의 차수가 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 112010021707765-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. 제1항에 있어서, 상기 생성하는 과정은,
    생성할 부호화 심볼의 차수와 전체 소스 심볼들 각각의 플래그 값을 고려하여 적어도 하나의 소스 심볼을 선택하는 과정과,
    상기 선택한 적어도 하나의 소스 심볼을 이용하여 하나의 부호화 심볼을 생성하는 과정과,
    상기 전체 소스 심볼들 중 상기 선택한 적어도 하나의 소스심볼의 플래그 값을 변경하는 과정을 포함하는 부호화 방법.
  4. 제3항에 있어서,
    최초의 부호화 심볼을 생성하기 전 또는 상기 전체 소스 심볼들의 모든 플래그 값이 변경될 시 상기 전체 소스 심볼들 각각의 플래그 값을 초기화하는 과정을 더 구비하는 부호화 방법.
  5. 제4항에 있어서,
    부호화 심볼 생성 시에 상기 전체 소스 심볼들 중 상기 플래그 값이 다른 값으로 변경되지 않은 소스 심볼을 우선적으로 사용하고, 상기 플래그 값이 다른 값으로 변경되지 않은 소스 심볼의 수가 하나의 부호화 심볼을 생성하기에 부족할 경우에 부족한 수만큼 상기 플래그 값이 다른 값으로 변경된 소스 심볼을 사용하는 부호화 방법.
  6. 제3항에 있어서, 상기 선택하는 과정은,
    생성할 부호화 심볼을 가리키는 키 값과 전체 소스 심볼의 개수 및 부호화 심볼의 차수를 입력으로 하고, 상기 전체 소스 심볼의 개수에 상응한 전체 소스 심볼들 중 상기 부호화 심볼의 차수만큼의 소스 심볼에 의해 상기 생성할 부호화 심벌을 가리키는 키 값에 대응한 연관 심볼 목록을 생성하는 과정임을 특징으로 하는 부호화 방법.
  7. 제6항에 있어서,
    상기 부호화 심볼의 차수만큼의 소스 심볼은 상기 전체 소스 심볼들 중 플래그 값이 초기화된 전체 소스 심볼들 중에서 선택됨을 특징으로 하는 부호화 방법.
  8. 제3항에 있어서,
    상기 전체 소스 심볼들 각각의 플래그 값이 변경되는 횟수는 동일하거나 소스 심볼 간의 횟수 차이가 최대 1을 넘지 않음을 특징으로 하는 부호화 방법.
  9. 파운틴 부호를 사용하여 소스 심볼을 부호화하는 부호화 장치에 있어서,
    부호화할 전체 소스 심볼들 중 적어도 하나의 소스 심볼을 사용하여 부호화 심볼을 생성할 때, 상기 전체 소스 심볼들을 적어도 한번씩 사용하여 최소 개수의 부호화 심볼들을 생성하며, 상기 최소 개수의 부호화 심볼들의 생성을 위해 상기 전체 소스 심볼들을 균등한 확률로 사용하는 부호화 장치.
  10. 제9항에 있어서,
    초기 단계 또는 상기 전체 소스 심볼들에 대응한 모든 플래그 값이 다른 값으로 변경된 경우에 상기 전체 소스 심볼들 각각의 플래그 값을 초기화하고, 부호화 심볼의 생성을 위해 사용된 소스 심볼의 플래그 값을 초기 값에서 다른 값으로 변경하는 부호화 장치.
  11. 제10항에 있어서,
    부호화 심볼 생성 시에 상기 전체 소스 심볼들 중 상기 플래그 값이 다른 값으로 변경되지 않은 소스 심볼을 우선적으로 사용하고, 상기 플래그 값이 다른 값으로 변경되지 않은 소스 심볼의 수가 하나의 부호화 심볼을 생성하기에 부족할 경우에 부족한 수만큼 상기 플래그 값이 다른 값으로 변경된 소스 심볼을 사용하는 부호화 장치.
  12. 제9항에 있어서, 상기 부호화 장치는,
    생성할 부호화 심볼의 차수와 전체 소스 심볼들 각각의 플래그 값을 고려하여 적어도 하나의 소스 심볼을 선택하고, 상기 전체 소스 심볼들 중 상기 선택한 적어도 하나의 소스 심볼의 플래그 값을 변경하는 연관 심볼 선택부와,
    상기 선택한 적어도 하나의 소스 심볼을 이용하여 하나의 부호화 심볼을 생성하는 부호화 심볼 생성부를 포함하는 부호화 장치.
  13. 제12항에 있어서, 상기 연관 심볼 선택부는,
    최초의 부호화 심볼을 생성하기 전 또는 상기 전체 소스 심볼들의 모든 플래그 값이 변경될 시 상기 전체 소스 심볼들 각각의 플래그 값을 초기화함을 특징으로 하는 부호화 장치.
  14. 제12항에 있어서, 상기 연관 심볼 선택부는,
    생성할 부호화 심볼을 가리키는 키 값과 전체 소스 심볼의 개수 및 생성할 부호화 심볼의 차수를 입력으로 하고, 상기 전체 소스 심볼의 개수에 상응한 전체 소스 심볼들 중 상기 생성할 부호화 심볼의 차수만큼의 소스 심볼에 의해 상기 생성할 부호화 심벌을 가리키는 키 값에 대응한 연관 심볼 목록을 생성함을 특징으로 하는 부호화 장치.
  15. 제14항에 있어서, 상기 연관 심볼 선택부는,
    상기 부호화 심볼의 차수만큼의 소스 심볼을 상기 전체 소스 심볼들 중 플래그 값이 변경되지 않은 소스 심볼 또는 플래그 값이 초기화된 전체 소스 심볼들 중에서 선택함을 특징으로 하는 부호화 장치.
  16. 제12항에 있어서,
    상기 전체 소스 심볼들 각각의 플래그 값이 변경된 횟수는 동일하거나 소스 심볼 간의 횟수 차이가 최대 1을 넘지 않음을 특징으로 하는 부호화 장치.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
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 통신 시스템에서의 채널 부호화 장치 및 방법
PCT/KR2011/002366 WO2011126268A2 (en) 2010-04-05 2011-04-05 Apparatus and method for channel encoding in a communication/broadcasting system
US13/080,032 US8604945B2 (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 KR20110111856A (ko) 2011-10-12
KR101615384B1 true 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102111130B1 (ko) 2019-02-13 2020-05-14 국방과학연구소 이중 연결 관리 장치 및 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101651683B1 (ko) * 2010-05-07 2016-08-29 삼성전자주식회사 통신 시스템에서의 채널 부호화 장치 및 방법
WO2014100988A1 (zh) * 2012-12-26 2014-07-03 华为技术有限公司 一种喷泉编码的中继方法和设备
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
WO2021179244A1 (en) * 2020-03-12 2021-09-16 Qualcomm Incorporated Fountain-code-based broadcast channel with limited feedback

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6943710B2 (en) * 2002-05-02 2005-09-13 Faunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and arrangement for arithmetic encoding and decoding binary states and a corresponding computer program and a corresponding computer-readable storage medium
US20100054376A1 (en) * 2005-11-25 2010-03-04 Samsung Electronics Co., Ltd. Digital broadcast transmitter/receiver having an improved receiving performance and signal processing method thereof

Family Cites Families (12)

* 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
US7181071B2 (en) * 2001-11-27 2007-02-20 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key value data of orientation interpolator node
EP2278718B1 (en) * 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
EP2357732B1 (en) * 2002-10-05 2022-04-06 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
AU2002349861A1 (en) * 2002-10-24 2004-06-07 Agency For Science, Technology And Research A method and a device for processing bit symbols generated by a data source; a computer readable medium; a computer program element
US7293222B2 (en) * 2003-01-29 2007-11-06 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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6943710B2 (en) * 2002-05-02 2005-09-13 Faunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and arrangement for arithmetic encoding and decoding binary states and a corresponding computer program and a corresponding computer-readable storage medium
US20100054376A1 (en) * 2005-11-25 2010-03-04 Samsung Electronics Co., Ltd. Digital broadcast transmitter/receiver having an improved receiving performance and signal processing method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102111130B1 (ko) 2019-02-13 2020-05-14 국방과학연구소 이중 연결 관리 장치 및 방법

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101651683B1 (ko) 통신 시스템에서의 채널 부호화 장치 및 방법
US9660763B2 (en) Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
KR101615384B1 (ko) 통신 시스템에서의 채널 부호화 장치 및 방법
US10666391B2 (en) Method for encoding information bit sequence in communication network
CN107026709B (zh) 一种数据包编码处理方法及装置、基站及用户设备
US8429503B2 (en) Encoding device and decoding device
US8527830B2 (en) Encoding method, encoding device, decoding method and decoding device for low density generator matrix codes
JP4930512B2 (ja) 無線通信システム、送信装置および受信装置
US8281209B2 (en) Encoding method and device for low density generator matrix codes
US20110119554A1 (en) Method for transmitting non-binary codes and decoding the same
JPH11330984A (ja) 誤り訂正符号化装置及び復号装置
JP2013243654A (ja) 再構成可能なレートレスコードを用いるとともに、インプロセスステータスフィードバックを復号化してマルチメディアと通信するための方法及びシステム
US8291288B2 (en) Method and device for encoding the low density generator matrix code
CN101582744A (zh) 一种基于迭代方法的rs喷泉码的编译码方法
Soljanin et al. Incremental redundancy hybrid ARQ with LDPC and raptor codes
WO2010103905A1 (en) Methods and devices for providing unequal error protection code design from probabilistically fixed composition codes
JP2013512640A (ja) 情報オブジェクトを符号化する方法及びそれを用いるエンコーダ
JPWO2013001706A1 (ja) 無線送受信装置、通信システム及びそれらに用いるチャネルコーディング処理方法
JP3574448B2 (ja) 通信システムにおける符号生成装置及び方法
KR20020065866A (ko) 통신시스템에서 부호 생성장치 및 방법
US8301961B2 (en) Decoding method for low density generator matrix code
KR101145673B1 (ko) 특정 구조를 가지는 lt코드를 이용한 부호화 방법 및 이를 기반으로 하는 랩터 코드를 이용한 부호화 방법
EP2234304B1 (en) Method for recovery of lost and/ or corrupted data
US20180351700A1 (en) Convolutional code data sending method and apparatus
KR101531184B1 (ko) 상하위 계층 간의 연동을 이용한 복호화 방법 및 장치와 그를 이용하여 데이터 송수신 시스템

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