KR101922205B1 - Lt 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치 - Google Patents
Lt 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치 Download PDFInfo
- Publication number
- KR101922205B1 KR101922205B1 KR1020120099586A KR20120099586A KR101922205B1 KR 101922205 B1 KR101922205 B1 KR 101922205B1 KR 1020120099586 A KR1020120099586 A KR 1020120099586A KR 20120099586 A KR20120099586 A KR 20120099586A KR 101922205 B1 KR101922205 B1 KR 101922205B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- encoding
- maximum
- max
- sub
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
LT 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치를 개시한다.
가변 길이 정보를 갖는 데이터에 대한 LT(Luby-Transform) 부호화를 위해 복수의 부행렬을 포함하는 최대 부호화 행렬을 생성하는 최대 부호화 행렬 생성부; 밀집 행렬을 생성하는 밀집 행렬 생성부; 상기 최대 부호화 행렬과 상기 밀집 행렬 중 일부의 정보만을 추출한 후 결합한 상기 LT 부호화 행렬을 생성하는 LT 부호화 행렬 생성부; 및 상기 LT 부호화 행렬을 이용하여 상기 가변 길이 정보를 갖는 데이터를 부호화하여 부호화 패킷을 생성하는 부호화부를 포함하는 것을 특징으로 하는 부호화 장치를 제공한다.
본 실시예에 의하면, 응용 계층에서 가변 길이 정보를 갖는 데이터에 대해 LT 부호를 적용하여 오류 정정이 적용되도록 하는 효과가 있다.
가변 길이 정보를 갖는 데이터에 대한 LT(Luby-Transform) 부호화를 위해 복수의 부행렬을 포함하는 최대 부호화 행렬을 생성하는 최대 부호화 행렬 생성부; 밀집 행렬을 생성하는 밀집 행렬 생성부; 상기 최대 부호화 행렬과 상기 밀집 행렬 중 일부의 정보만을 추출한 후 결합한 상기 LT 부호화 행렬을 생성하는 LT 부호화 행렬 생성부; 및 상기 LT 부호화 행렬을 이용하여 상기 가변 길이 정보를 갖는 데이터를 부호화하여 부호화 패킷을 생성하는 부호화부를 포함하는 것을 특징으로 하는 부호화 장치를 제공한다.
본 실시예에 의하면, 응용 계층에서 가변 길이 정보를 갖는 데이터에 대해 LT 부호를 적용하여 오류 정정이 적용되도록 하는 효과가 있다.
Description
본 실시예는 LT 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치에 관한 것이다. 더욱 상세하게는 응용 계층(Application Layer)에서 가변 길이 정보를 갖는 데이터에 대해 LT 부호를 적용하여 오류 정정이 적용되도록 하는 LT 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아님을 밝혀둔다.
유/무선 통신 시스템 상의 전송 신호(Transmitted Signal)는 전송 채널(Transmission Channel) 상의 잡음(Noise), 간섭(Interference) 및 감쇠(Fading) 등을 겪게 되며, 이로 인해, 수신단이 이 전송 신호를 복조할 수 없는 경우가 발생한다. 전송 속도가 높아질수록 높아지는 오류 발생률을 줄이기 위한 여러 가지 기법 중 대표적인 기법이 오류 정정 부호를 사용하는 기법이다. 최근, 거의 모든 무선통신 시스템에는 오류 정정 부호가 적용되고 있다.
부호화율이 미리 정해지지 않은 파운틴 부호(Fountain Code)는 송신단에서 수신단에 대한 정보가 부족하거나 수신단의 수가 매우 많아서 양방향 정보 전송이 어려울 때, 단방향 전송만으로 오류 없는 수신을 가능하게 한다는 장점이 있다. 이러한 파운틴 부호는 컴퓨터 네트워크 내 멀티캐스트(Multicast) 등에서 주로 사용되는 방식이다. 이러한, 파운틴 부호는 네트워크 과부하를 유발하는 재전송 요청을 줄이며, 수신단에서의 비동기 수신을 가능하게 한다. 이를 위해, 송신단에서는 전송할 데이터(파일)을 끊임없이 부호화된 패킷으로 만들어서 전송하고, 각 수신단은 피드백 없이 복호 가능할 정도의 패킷만을 수신하여 복호화한다.
파운틴 부호는 이진 소실 채널(Binary Erasure Channel, 이하 BEC)로 모델링 되는 계층에서(예, 통신의 응용 계층) 주로 사용되며, 최근에는 응용 계층에서의 멀티미디어 서비스 전송에 활발히 적용되고 있다. 여기서, BEC채널은 송신단에서 보낸 데이터 값이, 수신단에서 오류 없이 수신되거나, 아예 받지 못하는 형태의 채널이다. 한편, 파운틴 부호의 일종인 랩터 부호(Raptor Code)는 3GPP MBMS, DVB-H등의 표준으로 채택되었다.
한편, 멀티미디어 데이터는 송신 데이터의 종류에 따라 전송하고자 하는 패킷의 크기가 달라지게 된다. 일 예로 Wi-Fi를 이용한 방송의 경우 음성 패킷과 영상 패킷의 크기는 서로 다르며, 각각의 크기도 매 순간 변화한다. 이러한 경우, 오류 정정 부호를 적용할 때, 한번에 부호화하는 패킷의 개수(이하 길이 정보)가 달라질 수 있다. 이때, 오류 정정 부호를 사용하기 위해서 부호화하는 길이 정보에 맞춰 부호화 행렬을 구성해야 한다.
물리 계층에서의 오류 정정 부호는 주로 고정된 길이 정보 및 부호화율 별로 최적화된 부/복호기를 구현하나 이러한 부호들은 길이 정보 및 부호화율을 변경할 때, 검사 행렬을 확장 또는 단축하는데 복잡한 연산을 필요로 한다. 또한, 지금까지의 오류 정정 부호는 주로 물리 계층에서 사용되며, BEC로 모델링 되는 응용 계층에서 직접적으로 사용하는 방법을 제공해 주지 못하는 문제가 있다.
본 실시예는 응용 계층에서 가변 길이 정보를 갖는 데이터에 대해 LT 부호를 적용하여 오류 정정이 적용되도록 하기 위한 LT 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치를 제공하는 데 주된 목적이 있다.
본 실시예의 일 측면에 의하면, 가변 길이 정보를 갖는 데이터에 대한 LT(Luby-Transform) 부호화를 위해 복수의 부행렬을 포함하는 최대 부호화 행렬을 생성하는 최대 부호화 행렬 생성부; 밀집 행렬을 생성하는 밀집 행렬 생성부; 상기 최대 부호화 행렬과 상기 밀집 행렬 중 일부의 정보만을 추출한 후 결합한 상기 LT 부호화 행렬을 생성하는 LT 부호화 행렬 생성부; 및 상기 LT 부호화 행렬을 이용하여 상기 가변 길이 정보를 갖는 데이터를 부호화하여 부호화 패킷을 생성하는 부호화부를 포함하는 것을 특징으로 하는 부호화 장치를 제공한다.
또한, 본 실시예의 다른 측면에 의하면, 입력된 복호화 파라미터에 해당되는 행렬을 선택하는 행렬 선택부; 및 선택된 상기 행렬을 이용하여 상기 가변 길이 정보를 갖는 데이터를 복호화하여 복호화 패킷을 생성하는 복호화부를 포함하는 것을 특징으로 하는 복호화 장치를 제공한다.
또한, 본 실시예의 다른 측면에 의하면, 부호화 장치가 행렬을 생성하는 방법에 있어서, 가변 길이 정보를 갖는 데이터에 대한 LT 부호화를 위해 복수의 부행렬을 포함하는 최대 부호화 행렬을 생성하는 최대 부호화 행렬 생성 과정; 밀집 행렬을 생성하는 밀집 행렬 생성 과정; 상기 최대 부호화 행렬과 상기 밀집 행렬 중 일부의 정보만을 추출한 후 결합한 상기 LT 부호화 행렬을 생성하는 LT 부호화 행렬 생성 과정; 및 상기 LT 부호화 행렬을 이용하여 상기 가변 길이 정보를 갖는 데이터를 부호화하여 부호화 패킷을 생성하는 부호화 과정을 포함하는 것을 특징으로 하는 LT 부호를 이용한 행렬 생성 방법을 제공한다.
또한, 본 실시예의 다른 측면에 의하면, 복호화 장치가 행렬을 생성하는 방법에 있어서, 입력된 복호화 파라미터에 해당되는 행렬을 선택하는 행렬 선택 과정; 및 선택된 상기 행렬을 이용하여 상기 가변 길이 정보를 갖는 데이터를 복호화하여 복호화 패킷을 생성하는 복호화 과정을 포함하는 것을 특징으로 하는 LT 부호를 이용한 행렬 생성 방법을 제공한다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 응용 계층에서 가변 길이 정보를 갖는 데이터에 대해 LT 부호를 적용하여 오류 정정이 적용되도록 하는 효과가 있다. 또한, 본 실시예에 의하면, 효율적인 멀티미디어 데이터 전송을 위해 응용 계층에서 오류 정정 부호를 적용할 수 있을 뿐만 아니라 가변 길이 정보를 갖는 멀티미디어 데이터에 오류 정정 부호 적용하여 전송 효율을 증가시킬 수 있다.
또한, 본 실시예에 의하면 통신의 응용 계층에서 랩터 부호를 이용하여 데이터를 부호화 및 복호화하는 기술은 고정된 데이터 길이와 부호화율에 대해 랩터 부호를 적용하나, 이러한 기술로는 값들이 바뀔 때마다 부호화 및 복호화 생성 행렬을 새롭게 만들기 때문에 연산이 복잡한 반면, 본 실시예에서는 LT 부호에서 가변 데이터 길이와 부호화율에 대해 유연적으로 적용가능 할 뿐만 아니라 값들이 바뀔 때마다 새롭게 부호화 및 복호화 행렬을 생성하지 않고 하나의 큰 행렬에서 일부 정보만을 추출하여 이용하기 때문에 연산이 간편해지는 효과가 있다.
도 1은 본 실시예에 따른 LT 부호를 이용한 행렬을 생성하기 위한 부호화 장치를 개략적으로 나타낸 블럭 구성도,
도 2는 본 실시예에 따른 부호화 행렬 생성부를 개략적으로 나타낸 블럭 구성도,
도 3은 본 실시예에 따른 복호화 장치를 개략적으로 나타낸 블럭 구성도,
도 4는 본 실시예에 따른 LT 부호를 이용한 행렬 생성 방법을 설명하기 위한 순서도,
도 5는 본 실시예에 따른 최대 부호화 행렬의 구성을 설명하기 위한 예시도,
도 6a, 도 6b 및 도 6c는 본 실시예에 따른 LT 부호화 행렬을 설명하기 위한 예시도,
도 7은 본 실시예에 따른 비구조적인 LT 부호화 행렬 생성을 설명하기 위한 순서도,
도 8은 본 실시예에 따른 구조적인 LT 부호화 행렬 생성 방법을 설명하기 위한 순서도,
도 9는 본 실시예에 따른 LT 부호화 행렬이 적용한 통신 시스템의 예시도이다.
도 2는 본 실시예에 따른 부호화 행렬 생성부를 개략적으로 나타낸 블럭 구성도,
도 3은 본 실시예에 따른 복호화 장치를 개략적으로 나타낸 블럭 구성도,
도 4는 본 실시예에 따른 LT 부호를 이용한 행렬 생성 방법을 설명하기 위한 순서도,
도 5는 본 실시예에 따른 최대 부호화 행렬의 구성을 설명하기 위한 예시도,
도 6a, 도 6b 및 도 6c는 본 실시예에 따른 LT 부호화 행렬을 설명하기 위한 예시도,
도 7은 본 실시예에 따른 비구조적인 LT 부호화 행렬 생성을 설명하기 위한 순서도,
도 8은 본 실시예에 따른 구조적인 LT 부호화 행렬 생성 방법을 설명하기 위한 순서도,
도 9는 본 실시예에 따른 LT 부호화 행렬이 적용한 통신 시스템의 예시도이다.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
이하, 본 실시예에 기재된 LT(Luby-Transform) 부호에 대해 설명하도록 한다.
LT 부호는 파운틴 부호의 또 다른 형태의 부호로서, 응용 계층에서 사용되는 대표적인 부호이며, 응용 계층에서의 오류 정정 부호들은 대부분 LT 부호를 기반으로 구성된다. 랩터 부호는 LT 부호에 프리 부호(Pre-Code)를 결합해서 구현한다.
LT 부호는 파운틴 부호의 최초의 구체화된 형태로서 유한한 개수의 입력 심볼(Symbol)로부터 출력 심볼을 무한히 생성해낼 수 있는 부호이다. 즉, 부호화부(130)는 복호화부(320)가 모든 입력 심볼들을 완전한 형태로 복원할 수 있을 때까지 출력 심볼들을 생성해서 전송한다. 한 심볼의 길이가 일반적인 부호화 과정이나 복호화 과정에 차이를 만들지 않기 때문에 본 실시예에서는 모든 심볼을 한 비트 길이의 이진 심볼로 정의한다. 즉, 길이가 'k'인 입력 심볼 벡터(α)는 [수학식 1]과 같다.
(α: 심볼벡터, F2: 바이너리 필드(Binary Field))
한편, 부호화부(130)는 주어진 입력 심볼 벡터 'α'와 패리티 생성 행렬 H의 곱을 이용해서 출력 심볼 벡터 'β = (β1, β2, ...)'를 생성할 수 있다. 이론적으로 LT 부호의 행렬 H 크기는 ∞×k이 될 수 있다. 행렬 H의 각 원소는 '1' 또는 '0' 값을 가지며, 이때, 각 행의 '1'의 개수는 각 행의 무게로 나타내며, LT 부호의 연산량은 무게에 따라 결정되게 된다.
파운틴 부호의 특성 상 부호화부(130)가 무한한 출력 심볼을 생성할 수 있으나, 실제적인 구현에서는 전송 지연 등을 고려하여 부호화부(130)에서 제한된 출력 심볼을 생성하거나, 복호화부(320)에서 복호에 필요한 미리 정해진 양의 출력 심볼만을 수신하도록 할 수 있을 것이다. 이때, 안정적인 복호를 위해서 수신해야 할 출력 심볼의 개수는 입력 심볼의 개수인 k보다 커야 한다.
한편, 수신해야 하는 출력 심볼의 개수를 나타내는 파라미터 n은 입력 심볼의 개수 'k'보다 큰 값이며, [수학식 3]과 같다.
(n: 수신해야 하는 출력 심볼의 개수를 나타내는 파라미터, γ: 수신 오버헤드)
또한, γ는 수신 오버헤드이자 LT 부호의 성능을 나타내는 척도로 사용된다. 이상적인 LT 부호는 오버헤드 γ=0을 가지면서 완벽한 복호를 가능케 하는 것이지만 실제로 γ는 0 보다 큰 양수여야 복호가 될 확률이 커진다. [수학식 2]에서의 복호화 과정은 검사 행렬 He와 복호화하려는 복호화 전의 입력 심볼(xT)을 곱하여 총 행렬 He의 행의 개수만큼 방정식을 생성한 후 미지수 xT에 대한 방정식을 산출하는 것이다. 이때, 행렬 He의 1차 독립인 행 벡터의 최대 개수를 랭크(Rank)라 칭하며, 복호화 성공은 행렬 He의 랭크가 입력 심볼의 개수(k)가 된다는 것과 같은 의미이다. 즉, 행렬 He의 랭크가 k보다 작은 경우에는 복호화에 실패한 것으로 간주한다.
수신된 검사 행렬 He가 k를 랭크로 가질 확률이 커진다. 수신된 출력 심볼에 상응하는 검사 행렬 He의 랭크가 k보다 작은 경우는 복호에 실패한다. 즉, 복호화 성공은 검사 행렬 He의 랭크가 k가 된다는 것과 같다.
한편, 본 실시예에 기재된 LT 부호는 크게 구조적인(Systematic) LT 부호와 비구조적인(Non-Systematic) LT 부호로 구분된다. 구조적인 LT 부호는 부호화를 수행한 후 부호화 패킷(LT 부호에 의해 부호화된 패킷)에 정보 패킷(부호화할 패킷)이 그대로 포함되도록 하는 부호를 말한다. 한편, 비구조적인 LT 부호는 부호화를 수행한 후 부호화 패킷에 정보 패킷이 그대로 포함되지 않고, 조합되어 들어가도록 하는 부호를 말한다. 여기서, 구조적인 LT 부호는 비구조적인 LT 부호를 이용하여 간단히 구성할 수 있으므로 본 실시예에서는 비구조적인 LT 부호의 부호화 기술을 위주로 설명한다. 즉, 구조적인 LT 부호는 비구조적인 LT 부호의 부호화 행렬의 일부분에 단위 행렬(Identity Matrix)를 넣음으로써 쉽게 얻을 수 있다.
도 1은 본 실시예에 따른 LT 부호를 이용한 행렬을 생성하기 위한 부호화 장치를 개략적으로 나타낸 블럭 구성도이다.
본 실시예에 따른 부호화 장치(100)는 파라미터 결정부(110), 부호화 행렬 생성부(120) 및 부호화부(130)를 포함한다. 본 실시예에서는 부호화 장치(100)가 파라미터 결정부(110), 부호화 행렬 생성부(120) 및 부호화부(130)만을 포함하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 부호화 장치(100)에 포함되는 구성 요소에 대하여 다양하게 수정 및 변형하여 적용 가능할 것이다.
본 실시예에 기재된 부호화율은 한번에 부호화하는 길이 정보(k)/부호화된 패킷 길이(n)로 정의되며, 본 실시예에서는 한번에 부호화하는 길이 정보(k) 및 부호화된 패킷 길이(n)를 자유롭게 선택할 수 있으므로 길이 정보 및 부호화율의 제약이 발생하지 않는다. 여기서, 길이 정보는 송신단에서 한번에 부호화하는 패킷의 수를 의미한다.
또한, 본 실시예에 따른 부호화 장치(100)는 길이 정보 및 부호화율이 변할 때마다 새롭게 부호화 행렬을 계산해서 만드는 종래의 부호화 방식과 다르게 기 생성된 행렬(최대 부호화 행렬(610), 밀집 행렬(620))에서 일부 정보만을 뽑아서 쓰는 방식이므로, 행렬 생성 방식이 간단하다. 특히, 본 실시예에 따른 부호화 장치(100)는 종래와 같이 고정된 길이 정보를 갖도록 하기 위해 데이터에 대해 불필요한 '0'을 삽입하는 것이 아니라 효율적인 데이터 전송을 위해 응용 계층에서 LT 부호(오류 정정 부호)를 적용하여 가변 길이 정보를 갖는 멀티미디어 데이터의 전송 효율을 증가시킬 수 있다.
이하, 부호화 장치(100)에 포함된 각 구성요소에 대해 설명하도록 한다.
파라미터 결정부(110)는 파라미터를 결정하는 모듈로서, 가변 길이 정보를 갖는 데이터 따라 파라미터를 결정한다. 여기서, 가변 길이 정보를 갖는 데이터는 멀티미디어 데이터인 것이 바람직하나 반드시 이에 한정되는 것은 아니다. 또한, 파라미터 결정부(110)는 본 실시예가 적용될 여지가 높다고 판단되는 통신 시스템에 적용되는 경우, 가변 길이 정보를 갖는 멀티미디어 데이터에 따라 해당 통신 시스템의 규격에 부합하는 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n)를 파라미터로서 결정할 수 있다.
부호화 행렬 생성부(120)는 가변 길이 정보를 갖는 데이터에 대한 LT 부호화를 위한 LT 부호화 행렬(630)을 생성한다. 즉, 부호화 행렬 생성부(120)는 복수의 부행렬(510, 520, 530)을 포함하는 최대 부호화 행렬(610)을 생성하고, 밀집 행렬(620)을 생성하며, 생성된 최대 부호화 행렬(610)과 밀집 행렬(620) 중 일부의 정보만을 추출한 후 결합한 LT 부호화 행렬(630)을 생성한다.
이하, 부호화 행렬 생성부(120)가 최대 부호화 행렬(610)을 생성하는 과정에 대해 설명하도록 한다. 부호화 행렬 생성부(120)는 복수의 부행렬(510, 520, 530)에 대한 각각의 크기는 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n) 중 적어도 하나 이상의 길이 정보에 의해 결정된다. 이때, 최대 길이 정보(max_k)는 LT 부호를 적용하기 위한 길이 정보의 최대값을 가지며, 최소 길이 정보(min_k)는 LT 부호를 적용하기 위한 길이 정보의 최소값을 가지며, 최대 부호 패킷 길이(max_n)는 LT 부호 적용 후에 발생하는 부호화 패킷 길이의 최대값(max_n ≥ max_k)을 가지며, 최소 부호화 패킷 길이(min_n)는 LT 부호화 후에 발생하는 부호화 패킷 길이의 최소값(min_n ≥ min_k)을 갖는다. 또한, 복수의 부행렬(510, 520, 530) 중 제 1 부행렬(510)(n` × k`, 1 ≤ n` ≤ min_n, 1 ≤ k` ≤max_k)은 n` × k`(n`: 제 1 부행렬(510)의 행의 수, k`: 제 1 부행렬(510)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 부호화 행렬 생성부(120)는 최대 부호화 행렬(610)을 생성하기 위해 확률값 p1('1'의 발생 확률이 작은 값)(즉, 제 1 부행렬(510)에 따른 확률값)을 갖는 베르누이 분포(Bernoulli Distribution)를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다. 여기서, 베르누이 분포란 상호배반인 두 가지 결과 중 어느 하나를 갖는 실험 X를 베르누이 분포를 갖는 이산 확률변수라 칭한다. 여기서, 성공 확률은 p이고, 실패확률은 (1-p)라 칭한다. X의 표본 공간 S = {0,1}이고, X의 확률 함수는 P(X = 0) = 1-p, P(X = 1) = p이다. 즉, 베르누이 분포의 평균은 'E(X) = p'가 되고, 분산은 Var(X) = p(1 - p)= pq(q = 1-p)가 된다.
또한, 복수의 부행렬(510, 520, 530) 중 제 2 부행렬(520)(n` × k`, min_n + 1 ≤ n` ≤ max_n, 1≤ k` ≤ min_k)은 n` × k`개(n`: 제 2 부행렬(520)의 행의 수, k`: 제 2 부행렬(520)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 부호화 행렬 생성부(120)는 최대 부호화 행렬(610)을 생성하기 위해 확률값 p2(즉, 제 2 부행렬(520)에 따른 확률값)를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다. 여기서, 확률값 p2는 확률값 p1과 동일한 방식으로 정의할 수 있다. 또한, 복수의 부행렬(510, 520, 530) 중 제 3 부행렬(530)(n` × k`, min_n + 1 ≤ n` ≤ max_n, min_k + 1 ≤ k` ≤ max_k)은 n` × k`개(n`: 제 3 부행렬(530)의 행의 수, k`: 제 3 부행렬(530)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 부호화 행렬 생성부(120)는 최대 부호화 행렬(610)을 생성하기 위해 확률값 p3(즉, 제 3 부행렬(530)에 따른 확률값)를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다. 여기서, 확률값 p3는 확률값 p1과 동일한 방식으로 정의할 수 있다.
이하, 부호화 행렬 생성부(120)가 밀집 행렬(620)을 생성하는 과정에 대해 설명하도록 한다. 기본적으로 부호화 행렬 생성부(120)가 밀집 행렬(620)을 생성하는 과정은 최대 부호화 행렬을 생성하는 과정과 동일하다. 한편, 밀집 행렬(620)(1 ≤ n` ≤ max_n × max_r, 1 ≤ k` ≤ max_k, 여기서 0 ≤ max_r < 1)은 n` × k`개(n`: 밀집 행렬(620)의 행의 수, k`: 밀집 행렬(620)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 여기서, 'max_r'은 밀집 행렬(620)의 행의 크기를 결정하는 파라미터로서, LT 부호화 행렬(630)을 생성할 때 밀집 행렬(620)이 포함될 수 있는 비율(r)의 최대값이다. 이때, 부호화 행렬 생성부(120)는 밀집 행렬(620)을 생성하기 위해 확률값 p4('1'의 발생 확률이 높은 값)(즉, 밀집 행렬(620)에 따른 확률값)를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다.
이하, 부호화 행렬 생성부(120)가 LT 부호화 행렬(630)을 생성하는 과정에 대해 설명하도록 한다. 부호화 행렬 생성부(120)는 LT 부호화 행렬(630)을 생성하기 위해, 생성된 최대 부호화 행렬(610)과 밀집 행렬(620)을 이용하여 가변 길이 정보를 지원하는 비구조적인 LT 부호화 행렬 또는 구조적인 LT 부호화 행렬을 생성하며, LT 부호화 행렬(630)은 n × k(k: 한번에 부호화하는 길이 정보, n: 부호화된 패킷 길이)의 크기를 갖는다. 여기서, 부호화된 패킷 길이는 패리티(Parity) 길이를 말한다. 한편, 패리티란 부호화된 패킷을 의미한다. 즉, 부호화 행렬 생성부(120)는 LT 부호화 행렬(630)을 생성하기 위해 최대 부호화 행렬(610)에서 n × (1 - r) (0 ≤ r < 1) 제 1 행을 선택하여 추출하며, 제 1 행의 크기가 정수가 되도록 반올림하며, 생성된 밀집 행렬(620)에서 n × r (0 ≤ r < 1, r ≤ max_r) 제 2 행을 선택하여 추출하며, 제 2 행의 크기가 정수가 되도록 반올림하며, 제 1 행과 제 2 행에서 추출된 행을 이용하여, LT 부호화 행렬(630)을 생성한다.
한편, 구조적인 LT 부호화 행렬은 n × k의 비구조적인 LT 부호화 행렬 내의 k × k의 부행렬이 단위 행렬로 대치된다는 점을 제외하고는 부호화 행렬 생성과 그 방식이 동일하다.
부호화부(130)는 LT 부호화 행렬(630)을 이용하여 가변 길이 정보를 갖는 데이터를 부호화하여 부호화 패킷을 생성한다. 이러한, 부호화부(130)는 부호화 행렬 생성부(120)로부터 수신된 LT 부호화 행렬(630)을 기반으로, 입력된 정보어(가변 길이 정보를 갖는 데이터)를 부호화하는 것이다. 또한, 부호화부(130)는 부호화 데이터를 복호화하는 데에 필요한 다양한 정보들을 부호화 데이터에 포함시킬 수 있다. 한편, 부호화부(130)가 LT 부호화 행렬(630)을 이용하여 가변 길이 정보를 갖는 데이터를 부호화하는 동작 과정에 대해서는 이미 공지된 기술이므로 그 설명을 생략한다. 즉, 본 실시예에서는 기재된 부호화부(130) 및 복호화부(320)에서는 LT 부호를 이용하는 다양한 부호화 및 복호화 기법이 적용될 수 있으므로, 부호화 및 복호화에 대한 구체적인 기술 설명은 생략토록 한다.
도 2는 본 실시예에 따른 부호화 행렬 생성부를 개략적으로 나타낸 블럭 구성도이다.
본 실시예에 따른 부호화 행렬 생성부(120)는 최대 부호화 행렬 생성부(210), 밀집 행렬 생성부(220) 및 LT 부호화 행렬 생성부(230)를 포함한다. 본 실시예에서는 부호화 행렬 생성부(120)가 최대 부호화 행렬 생성부(210), 밀집 행렬 생성부(220) 및 LT 부호화 행렬 생성부(230)만을 포함하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 부호화 행렬 생성부(120)에 포함되는 구성 요소에 대하여 다양하게 수정 및 변형하여 적용 가능할 것이다.
최대 부호화 행렬 생성부(210)는 복수의 부행렬(510, 520, 530)을 포함하는 최대 부호화 행렬(610)을 생성한다. 즉, 최대 부호화 행렬 생성부(210)는 복수의 부행렬(510, 520, 530)에 대한 각각의 크기는 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n) 중 적어도 하나 이상의 길이 정보에 의해 결정된다. 여기서, 최대 길이 정보(max_k)는 LT 부호를 적용하기 위한 길이 정보의 최대값을 가지며, 최소 길이 정보(min_k)는 LT 부호를 적용하기 위한 길이 정보의 최소값을 가지며, 최대 부호 패킷 길이(max_n)는 LT 부호 적용 후에 발생하는 부호화 패킷 길이의 최대값(max_n ≥ max_k)을 가지며, 최소 부호화 패킷 길이(min_n)는 LT 부호화 후에 발생하는 부호화 패킷 길이의 최소값(min_n ≥ min_k)을 갖는다.
또한, 복수의 부행렬(510, 520, 530) 중 제 1 부행렬(510)(n` × k`, 1 ≤ n` ≤ min_n, 1 ≤ k` ≤max_k)은 n` × k`개(n`: 제 1 부행렬(510)의 행의 수, k`: 제 1 부행렬(510)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 최대 부호화 행렬 생성부(210)는 확률값 p1('1'의 발생 확률이 작은 값)(즉, 제 1 부행렬(510)에 따른 확률값)을 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다. 또한, 복수의 부행렬(510, 520, 530) 중 제 2 부행렬(520)(n` × k`, min_n + 1 ≤ n` ≤ max_n, 1≤ k` ≤ min_k)은 n` × k`개(n`: 제 2 부행렬(520)의 행의 수, k`: 제 2 부행렬(520)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 최대 부호화 행렬 생성부(210)는 확률값 p2(즉, 제 2 부행렬(520)에 따른 확률값)를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다. 또한, 복수의 부행렬(510, 520, 530) 중 제 3 부행렬(530)(n` × k`, min_n + 1 ≤ n` ≤ max_n, min_k + 1 ≤ k` ≤ max_k)은 n` × k`개(n`: 제 3 부행렬(530)의 행의 수, k`: 제 3 부행렬(530)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 최대 부호화 행렬 생성부(210)는 확률값 p3(즉, 제 3 부행렬(530)에 따른 확률값)를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다.
밀집 행렬 생성부(220)는 밀집 행렬(620)을 생성한다. 기본적으로 밀집 행렬 생성부(220)가 밀집 행렬(620)을 생성하는 과정은 최대 부호화 행렬 생성부(210)와 동일하다. 한편, 밀집 행렬(620)(1 ≤ n` ≤ max_n × max_r, 1 ≤ k` ≤ max_k, 여기서 0 ≤ max_r < 1)은 n` × k`개(n`: 밀집 행렬(620)의 행의 수, k`: 밀집 행렬(620)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 밀집 행렬 생성부(220)는 확률값 p4('1'의 발생 확률이 높은 값)(즉, 밀집 행렬(620)에 따른 확률값)를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다.
LT 부호화 행렬 생성부(230)는 최대 부호화 행렬(610)과 밀집 행렬(620) 중 일부의 정보만을 추출한 후 결합한 LT 부호화 행렬(630)을 생성한다. 즉, LT 부호화 행렬 생성부(230)는 생성된 최대 부호화 행렬(610)과 밀집 행렬(620)을 이용하여 가변 길이 정보를 지원하는 비구조적인 LT 부호화 행렬 또는 구조적인 LT 부호화 행렬을 생성한다. 이때, LT 부호화 행렬(630)은 n × k(k: 한번에 부호화하는 길이 정보, n: 부호화된 패킷 길이)의 크기를 갖는다. 여기서, 부호화된 패킷 길이는 패리티 길이를 말한다. 또한, LT 부호화 행렬 생성부(230)는 최대 부호화 행렬(610)에서 n × (1 - r) (0 ≤ r < 1) 제 1 행을 선택하여 추출하며, 이러한 제 1 행의 크기가 정수가 되도록 반올림하며, 밀집 행렬(620)에서 n × r (0 ≤ r < 1, r ≤ max_r) 제 2 행을 선택하여 추출하며, 이러한 제 2 행의 크기가 정수가 되도록 반올림하며, 제 1 행과 제 2 행에서 추출된 행을 이용하여, LT 부호화 행렬(630)을 생성한다.
도 3은 본 실시예에 따른 복호화 장치를 개략적으로 나타낸 블럭 구성도이다.
본 실시예에 따른 복호화 장치(300)는 행렬 선택부(310) 및 복호화부(320)를 포함한다. 본 실시예에서는 복호화 장치(300)가 행렬 선택부(310) 및 복호화부(320)만을 포함하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 복호화 장치(300)에 포함되는 구성 요소에 대하여 다양하게 수정 및 변형하여 적용 가능할 것이다.
행렬 선택부(310)는 복수 개의 행렬 중에서, 입력 복호화 파라미터에 해당되는 행렬을 선택한다. 즉, 행렬 선택부(310)는 입력된 복호화 파라미터에 해당되는 행렬을 선택한다. 여기서, 행렬 선택부(310)가 입력 복호화 파라미터에 해당되어 선택하는 행렬은 LT 부호화 행렬(630)인 것이 바람직하다.
복호화부(320)는 행렬 선택부(310)를 통해 선택된 LT 부호화 행렬(630) 기반으로, 수신 부호어를 복호화한다. 즉, 복호화부(320)는 행렬 선택부(310)를 통해 선택된 행렬을 이용하여 가변 길이 정보를 갖는 데이터를 복호화하여 복호화 패킷을 생성한다. 한편, 복호화부(320)가 데이터를 복호화하는 동작 과정에 대해서는 이미 공지된 기술이므로 그 설명을 생략한다.
도 4는 본 실시예에 따른 LT 부호를 이용한 행렬 생성 방법을 설명하기 위한 순서도이다.
부호화 장치(100)는 가변 길이 정보를 갖는 데이터 따라 파라미터(최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n))를 결정한다(S410). 여기서, 가변 길이 정보를 갖는 데이터는 가변 길이 정보를 갖는 멀티미디어 데이터인 것이 바람직하나 반드시 이에 한정되는 것은 아니다. 또한, 단계 S410에서 부호화 장치(100)가 통신 시스템에 적용되는 경우, 부호화 장치(100)는 가변 길이 정보를 갖는 멀티미디어 데이터에 따라 해당 통신 시스템의 규격에 부합하는 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n)를 파라미터로서 결정할 수 있다.
부호화 장치(100)는 복수의 부행렬(510, 520, 530)을 포함하는 최대 부호화 행렬(610)을 생성한다(S420). 단계 S420에서 복수의 부행렬(510, 520, 530)에 대한 각각의 크기는 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n) 중 적어도 하나 이상의 길이 정보에 의해 결정된다. 이때, 최대 길이 정보(max_k)는 LT 부호를 적용하기 위한 길이 정보의 최대값을 가지며, 최소 길이 정보(min_k)는 LT 부호를 적용하기 위한 길이 정보의 최소값을 가지며, 최대 부호 패킷 길이(max_n)는 LT 부호 적용 후에 발생하는 부호화 패킷 길이의 최대값(max_n ≥ max_k)을 가지며, 최소 부호화 패킷 길이(min_n)는 LT 부호화 후에 발생하는 부호화 패킷 길이의 최소값(min_n ≥ min_k)을 갖는다.
한편, 복수의 부행렬(510, 520, 530) 중 제 1 부행렬(510)(n` × k`, 1 ≤ n` ≤ min_n, 1 ≤ k` ≤max_k)은 n` × k`개(n`: 제 1 부행렬(510)의 행의 수, k`: 제 1 부행렬(510)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 부호화 장치(100)는 최대 부호화 행렬(610)을 생성하기 위해 확률값 p1('1'의 발생 확률이 작은 값)(즉, 제 1 부행렬(510)에 따른 확률값)을 갖는 베르누이 분포(Bernoulli Distribution)를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다.
또한, 복수의 부행렬(510, 520, 530) 중 제 2 부행렬(520)(n` × k`, min_n + 1 ≤ n` ≤ max_n, 1≤ k` ≤ min_k)은 n` × k`개(n`: 제 2 부행렬(520)의 행의 수, k`: 제 2 부행렬(520)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 부호화 장치(100)는 최대 부호화 행렬(610)을 생성하기 위해 확률값 p2를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다.
또한, 복수의 부행렬(510, 520, 530) 중 제 3 부행렬(530)(n` × k`, min_n + 1 ≤ n` ≤ max_n, min_k + 1 ≤ k` ≤ max_k)은 n` × k`개(n`: 제 3 부행렬(530)의 행의 수, k`: 제 3 부행렬(530)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 부호화 장치(100)는 최대 부호화 행렬(610)을 생성하기 위해 확률값 p3를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다.
부호화 장치(100)는 밀집 행렬(620)을 생성한다(S430). 단계 S430에서 부호화 장치(100)가 밀집 행렬(620)을 생성하는 과정은 최대 부호화 행렬을 생성하는 과정과 기본적으로 동일하다. 한편, 밀집 행렬(620)(1 ≤ n` ≤ max_n × max_r, 1 ≤ k` ≤ max_k, 여기서 0 ≤ max_r < 1)은 n` × k`개(n`: 밀집 행렬(620)의 행의 수, k`: 밀집 행렬(620)의 열의 수)의 요소를 포함하며, 요소의 값은 '0' 또는 '1'의 값을 갖는다. 이때, 동일한 밀집 행렬(620)을 생성하기 위해 확률값 p4('1'의 발생 확률이 높은 값)를 갖는 베르누이 분포를 이용하여 요소들의 값이 '0'인지 '1'인지 결정한다. 부호화 장치(100)는 부호화할 데이터에 따라 길이 정보(k) 및 패리티 길이(n)를 결정한다(S440). 여기서, 패리티 길이(n)는 부호화된 패킷 길이를 말한다.
부호화 장치(100)는 생성된 최대 부호화 행렬(610)과 밀집 행렬(620) 중 일부의 정보만을 추출한 후 결합한 LT 부호화 행렬(630)을 생성한다(S450). 단계 S450 부호화 장치(100)는 LT 부호화 행렬(630)을 생성하기 위해, 생성된 최대 부호화 행렬(610)과 밀집 행렬(620)을 이용하여 가변 길이 정보를 지원하는 비구조적인 LT 부호화 행렬 또는 구조적인 LT 부호화 행렬을 생성하며, LT 부호화 행렬(630)은 n × k(k: 한번에 부호화하는 길이 정보, n: 부호화된 패킷 길이)의 크기를 갖는다. 여기서, 부호화된 패킷 길이는 패리티 길이를 말한다. 즉, 부호화 장치(100)는 LT 부호화 행렬(630)을 생성하기 위해 최대 부호화 행렬(610)에서 n × (1 - r) (0 ≤ r < 1) 제 1 행을 선택하여 추출하며, 제 1 행의 크기가 정수가 되도록 반올림하며, 생성된 밀집 행렬(620)에서 n × r (0 ≤ r < 1, r ≤ max_r) 제 2 행을 선택하여 추출하며, 제 2 행의 크기가 정수가 되도록 반올림하며, 제 1 행과 제 2 행에서 추출된 행을 이용하여, LT 부호화 행렬(630)을 생성한다.
부호화 장치(100)는 LT 부호화 행렬(630)에 대한 패리티 생성이 완료되었는지의 여부를 확인한다(S460). 단계 S460의 확인 결과, LT 부호화 행렬(630)에 대한 패리티 생성이 완료된 경우, 부호화 장치(100)는 행렬 생성을 위한 동작을 종료하고, 단계 S460의 확인 결과, LT 부호화 행렬(630)에 대한 패리티 생성이 완료되지 않은 경우, 부호화 장치(100)는 단계 S440 내지 S460을 반복 수행한다.
단계 S460 이후에 부호화 장치(100)는 LT 부호화 행렬(630)을 이용하여 가변 길이 정보를 갖는 데이터를 부호화하여 부호화 패킷을 생성한다. 즉, 부호화 장치(100)는 부호화 행렬 생성부(120)로부터 수신된 LT 부호화 행렬(630)을 기반으로, 입력된 정보어(가변 길이 정보를 갖는 데이터)를 부호화하며, 부호화 데이터를 복호화하는 데에 필요한 다양한 정보들을 부호화 데이터에 포함시킬 수 있다.
도 4에서는 단계 S410 내지 단계 S460을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 4에 기재된 순서를 변경하여 실행하거나 단계 S410 내지 단계 S460 중 하나 이상의 단계를 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 4는 시계열적인 순서로 한정되는 것은 아니다.
전술한 바와 같이 도 4에 기재된 본 실시예에 따른 LT 부호를 이용한 행렬 생성 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 LT 부호를 이용한 행렬 생성 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
도 5는 본 실시예에 따른 최대 부호화 행렬의 구성을 설명하기 위한 예시도이다.
가변 길이 정보 및 가변 부호화율을 지원하는 최대 부호화 행렬(610)은 도 5에 도시된 바와 같다. 이러한 최대 부호화 행렬(610)은 예컨대, 약 세 개의 부행렬(510, 520, 530)로 구성되며, 각 부행렬의 크기는 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n), 그리고 최소 부호화 패킷 길이(min_n)에 의해 결정될 수 있다. 여기서, 최대 길이 정보 및 최소 길이 정보는 본 실시예가 적용될 여지가 높다고 판단되는 통신 시스템에서 발생할 수 있는 길이 정보의 최대값 및 최소값을 나타내며, 최대 부호화 패킷 길이 및 최소 부호화 패킷 길이는 LT 부호화 후에 발생할 수 있는 부호화 패킷 길이의 최대값 및 최소값을 나타낸다(max_n ≥ max_k, min_n ≥ min_k).
또한, 도 5에 도시된 제 1 부행렬(510)(n` × k`, 1 ≤ n` ≤ min_n, 1 ≤ k` ≤ max_k)은 n` × k`개(n`: 제 1 부행렬(510)의 행의 수, k`: 제 1 부행렬(510)의 열의 수) 요소들로 이루어져 있으며, 각 요소들의 값은 '0' 또는 '1'이다. 여기서, 각 요소들의 값은 확률 p1을 갖는 베르누이 분포를 사용해서 각 요소별로 '0'인지 '1'인지 결정될 수 있다. 여기서, 요소 별이 아니라 각 열이나 행마다 진행할 수도 있다. 여기서, 베르누이 분포는 상호배반인 두 가지 가능한 기본 결과 중 하나를 갖는 실험을 나타내며, 본 실시예에서 p1은 원소 '1'이 생성될 확률, (1 - p1)은 원소 '0'이 생성될 확률을 나타낸다. 이때, 확률 p1값은 '1'이 발생할 확률이 작은 값으로 설정한다. 여기서, p1의 값을 '1'이 발생할 확률이 낮도록 설정하는 이유는, '1'의 개수가 많아짐에 따라 성능도 향상되지만 부호의 부호화 및 복호화 과정에서 연산량이 증가하기 때문이다. 따라서, 본 실시예가 적용될 여지가 높은 통신 시스템에 맞게 적절히 p1 값을 조절할 수 있다. 또한, 도 5에 도시된 제 2 부행렬(520)(n` × k`, min_n+1 ≤ n` ≤ max_n, 1 ≤ k` ≤ min_k)은 n` × k`개(n`: 제 2 부행렬(520)의 행의 수, k`: 제 2 부행렬(520)의 열의 수)의 요소들로 이루어져 있으며, 그 요소들의 생성 방법은 제 1 부행렬(510) 내의 요소들과 동일하다. 단, 베르누이 분포의 확률 값으로 p2를 사용하며, p2 역시 본 실시예가 적용될 여지가 높은 통신 시스템에 맞게 적절히 p2 값을 조절할 수 있다. 또한, 도 5에 도시된 제 3 부행렬(530)(n` × k`, min_n+1 ≤ n` ≤ max_n, min_k+1 ≤ k` ≤ max_k)은 n` × k`개(n`: 제 3 부행렬(530)의 행의 수, k`: 제 3 부행렬(530)의 열의 수)의 요소들로 이루어져 있으며, 그 요소들의 생성 방법은 제 1 부행렬(510) 및 제 2 부행렬(520) 내의 요소들과 동일하다. 단, 베르누이 분포의 확률 값으로 p3를 사용하며, p3 역시 본 실시예가 적용될 여지가 높은 통신 시스템에 맞게 적절히 p3 값을 조절할 수 있다.
도 6a, 도 6b, 도 6c는 본 실시예에 따른 LT 부호화 행렬을 설명하기 위한 예시도이다.
도 6a에 도시된 최대 부호화 행렬(610)과 밀집 행렬(620)은 최대 길이 정보(max_k)가 '6'(max_k = 6), 최대 부호화 패킷 길이(max_n)가 '10'(max_n = 10), 비율(r)의 최대값이 '0.6'(max_r=0.6), 베르누이 분포 값이 'p1 = p2 = p3 = 0.2, p4 = 0.5'일 때의 일 실시예를 나타낸다. 즉, 최대 길이 정보(max_k), 최대 부호화 패킷 길이(max_n), 비율(r)의 최대값(max_), 베르누이 분포 값은 최대 부호화 행렬(610)과 밀집 행렬(620)을 구성하는데 필요한 필수 파라미터이다.
이러한, 최대 부호화 행렬(610) 및 밀집 행렬(620)의 생성 시 부호화 장치(100)는 최대 부호화 행렬(610) 및 밀집 행렬(620)의 크기를 결정하기 위해 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n)를 알아야 하며, 이는 파라미터 결정부(110)에서 결정될 수 있다. 여기서, 파라미터 결정부(110)에 의해 최대 길이 정보(max_k)가 '6'(max_k = 6), 최대 부호화 패킷 길이(max_n)가 '10'(max_n = 10), 비율(r)의 최대값이 '0.6'(max_r=0.6), 베르누이 분포 값이 'p1 = p2 = p3 = 0.2, p4 = 0.5'로 결정될 수 있다. 이러한 파라미터 값들은 파라미터 결정부(110)의 의해 결정된 값의 예시를 나타낸다.
이러한 파라미터는 파라미터 결정부(110)에 의해 부호화 장치(100)가 적용될 통신 시스템의 규격에 따라 결정될 수도 있으며, 최대 부호화 행렬(610)과 밀집 행렬(620)의 크기가 주어지고 난 후 해당 행렬(최대 부호화 행렬(610), 밀집 행렬(620)) 안에 '1' 또는 '0' 인자의 배치가 이루어질 수 있다. 전술한 바와 같이, 최대 길이 정보(max_k)가 '6'(max_k = 6), 최대 부호화 패킷 길이(max_n)가 '10'(max_n = 10), 비율(r)의 최대값이 '0.6'(max_r=0.6)으로 주어지면 이러한 크기들에 맞게 최적화된 베르누이 분포값인 p1 내지 p4를 결정해야 한다. 다만, 최적화 방법에 대해서는 본 실시예에서 구체적으로 언급하지 않으므로 설명의 편의상 성능상으로 확인된 최적값을 임의로 도시한다.
여기서, 부호화 장치(100)의 파라미터 결정부(110)가 최대 부호화 행렬(610) 및 밀집 행렬(620)의 생성을 위해 입력된 멀티미디어 데이터의 길이를 기 설정된 룰(적용되는 통신 시스템에 따라 결정됨)에 따라 분리하여, 이에 따라 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n) 값들이 정해진다. 예컨대, 부호화 장치(100)에 입력된 멀티미디어 데이터의 최대 데이터의 크기가 '1 MB'인 경우, 파라미터 결정부(110)는 부호화 장치(100)가 적용되는 통신 시스템에 따라 결정된 룰에 근거하여 최대 데이터의 크기인 '1 MB'를 LT 부호화에 적용하기 위해 '100 kB'의 데이터 단위로 쪼개는데, 이때 최대 길이 정보(max_k)는 10(max_k = 10)이 된다. 만약, 중간에 '500 kB'짜리 멀티미디어 데이터가 추가로 발생(부호화 장치(100)로 입력되는)하는 경우 'k(한번에 부호화하는 길이 정보) = 5'로 결정된다. 또한, 부호화 장치(100)에 입력된 멀티미디어 데이터의 크기가 최소 '50 kB'이면, 최소 길이 정보(min_k)는 1(min_k = 1)이 된다. 이때, 파라미터 결정부(110)에 의해 모자란 '50 kB'는 '0'의 데이터로 채워지며, 'n(부호화된 패킷 길이)'값은 결정하는 기준이 'k'보다 더 많이 질 수 있기 때문에 'k'를 결정하는 것 보다 복잡해 질 수 있다. 예컨대, 부호화의 성능을 위해 코드레이트(k/n)가 미리 정해져 있는 경우(가령, 최대 길이 정보(max_k)가 10(max_k = 10), 코드 레이트 1/2이면 최대 부호화 패킷 길이(max_n)가 20인 경우, 이때, 'k(한번에 부호화하는 길이 정보) = 5'가 되는 데이터가 발생시 'n(부호화된 패킷 길이) = 10'이 됨) 'n' 값은 'k'에 의해 자동으로 결정된다.
또 다른 예로, 전송 지연을 고려해서 'k'에 관계없이 최대 부호화 패킷 길이(max_n)로 고정될 수 있다. 가령, 최대 부호화 패킷 길이(max_n)가 15(max_n = 15)로 결정되면, 이때, 최대 부호화 패킷 길이는 코드레이트와 동시에 고려될 수도 있고, 코드레이트와 무관하게 무조건 'n = 15'로 결정될 수도 있다. 만약, 최대 부호화 패킷 길이(max_n)가 코드레이트 1/2과 결합하여 사용되면 'k = 10'일 때, 'n = 15', 'k = 8'일 때, 'n = 15', 'k = 7'일 때, 'n = 14'가 된다. 전술한 바와 같이 파라미터를 결정하는 방법은 부호화 장치(100)가 적용될 통신 시스템의 설계에 따라 달라지는데, 본 실시예에서는 시스템의 설계 파라미터를 고려하지 않고 단순히 데이터가 가변되는 특성만을 반영한다.
도 6b에 도시된 바와 같이, 부호화 장치(100)는 'k = 5', 'n = 10', 'r = 0.3'일 때, 최대 부호화 행렬(610)에서 '7 개'의 행을, 밀집 행렬(620)에서 '3 개'의 행을 선택하여 LT 부호화 행렬(630)을 생성한다. 즉, 부호화 장치(100)는 도 6b에 도시된 바와 같이, 최대 부호화 행렬(610)에서 n × (1 - r) (0 ≤ r < 1) 제 1 행을 선택하여 추출하므로, 10 × (1 - 0.3) = 7이 되므로, 최대 부호화 행렬(610)에서 '7 개'의 행을 선택하게 되는 것이다. 또한, 부호화 장치(100)는 밀집 행렬(620)에서 n × r (0 ≤ r < 1, r ≤ max_r) 제 2 행을 선택하여 추출하므로, 10 × 0.3 = 3이 되므로, 밀집 행렬(620)에서 '3 개'의 행을 선택하게 되는 것이다. 따라서, 부호화 장치(100)는 'k = 5', 'n = 10', 'r = 0.3'일 때, 최대 부호화 행렬(610)에서 '7 개'의 행이 선택하고, 밀집 행렬(620)에서 '3 개'의 행이 선택한 후 도 6b에 도시된 바와 같은 LT 부호화 행렬(630)을 생성하게 되는 것이다. 여기서, k(한번에 부호화하는 길이 정보) 및 n(부호화된 패킷 길이)은 전술한 바와 같이, 부호화 장치(100)의 파라미터 결정부(110)에서 입력된 멀티미디어 데이터의 길이를 기 설정된 룰(적용되는 통신 시스템에 따라 결정됨)에 따라 분리하여 결정되는데, r(비율)은 적용되는 통신 시스템에 따른 최적화(실험)를 통해 결정될 수 있다. 즉, LT 부호화 행렬(630) 구성 시 크기가 주어지고 나면 성능을 위해 '1', '0'의 배치를 어떻게 할 것인지를 결정해야 하는데, 이는 'r' 값의 결정과 관련된다. 즉, n과 k에 따라 'r' 값이 달라질 수 있으며 이는 부호화 장치(100)가 적용되는 통신 시스템에 따른 최적화(실험)를 통해 결정될 수 있다.
도 6c에 도시된 바와 같이, 부호화 장치(100)는 'k = 3', 'n = 6', 'r = 0.3'일 때, 최대 부호화 행렬(610)에서 '4 개'의 행을, 밀집 행렬(620)에서 '2 개'의 행을 선택하여 LT 부호화 행렬(630)을 생성한다. 즉, 부호화 장치(100)는 도 6c에 도시된 바와 같이, 최대 부호화 행렬(610)에서 n × (1 - r) (0 ≤ r < 1) 제 1 행을 선택하여 추출하므로, 6 × (1 - 0.3) = 4.2(제 1 행의 크기가 정수가 되도록 반올림)가 되므로, 최대 부호화 행렬(610)에서 '4 개'의 행을 선택하게 되는 것이다. 또한, 부호화 장치(100)는 밀집 행렬(620)에서 n × r (0 ≤ r < 1, r ≤ max_r) 제 2 행을 선택하여 추출하므로, 6 × 0.3 = 1.8(제 2 행의 크기가 정수가 되도록 반올림)이 되므로, 밀집 행렬(620)에서 '2 개'의 행을 선택하게 되는 것이다. 따라서, 부호화 장치(100)는 'k = 3', 'n = 6', 'r = 0.3'일 때, 최대 부호화 행렬(610)에서 '4 개'의 행이 선택하고, 밀집 행렬(620)에서 '2 개'의 행이 선택한 후 도 6c에 도시된 바와 같은 LT 부호화 행렬(630)을 생성하게 되는 것이다. 여기서, k(한번에 부호화하는 길이 정보) 및 n(부호화된 패킷 길이)은 전술한 바와 같이, 부호화 장치(100)의 파라미터 결정부(110)에서 입력된 멀티미디어 데이터의 길이를 기 설정된 룰(적용되는 통신 시스템에 따라 결정됨)에 따라 분리하여 결정되는데, r(비율)은 적용되는 통신 시스템에 따른 최적화(실험)를 통해 결정될 수 있다. 즉, LT 부호화 행렬(630) 구성 시 크기가 주어지고 나면 성능을 위해 '1', '0'의 배치를 어떻게 할 것인지를 결정해야 하는데, 이는 'r' 값의 결정과 관련된다. 즉, n과 k에 따라 'r' 값이 달라질 수 있으며 이는 부호화 장치(100)가 적용되는 통신 시스템에 따른 최적화(실험)를 통해 결정될 수 있다.
도 7은 본 실시예에 따른 비구조적인 LT 부호화 행렬 생성을 설명하기 위한 순서도이다.
부호화 장치(100)는 LT 부호화 행렬(630)을 생성하기 위해, 최대 부호화 행렬(610)에서 n × (1 - r) (0 ≤ r < 1) 제 1 행을 선택하여 추출한다(S710)(n: 부호화된 패킷 길이, r: 비율). 즉, 단계 S710에서 최대 부호화 행렬(610)은 n' × k'의 비구조적인 행렬을 갖는다(n`: 부행렬의 행의 수, k`: 부행렬의 열의 수). 이때, 단계 S710에서 부호화 장치(100)는 비구조적인(n' × k') 최대 부호화 행렬(610)에서 추출된 제 1 행의 크기가 정수가 되도록 반올림한다. 또한, 부호화 장치(100)는 LT 부호화 행렬(630)을 생성하기 위해, 생성된 밀집 행렬(620)에서 n × r (0 ≤ r < 1, r ≤ max_r) 제 2 행을 선택하여 추출한다(S720)(n: 부호화된 패킷 길이, r: 비율). 즉, 단계 S720에서 밀집 행렬(620)은 n' × k'의 비구조적인 행렬을 갖는다. 이때, 단계 S720에서 부호화 장치(100)는 비구조적인 밀집 행렬(620)에서 추출된 제 2 행의 크기가 정수가 되도록 반올림한다. 단계 S720 이후에 부호화 장치(100)는 제 1 행과 제 2 행에서 추출된 행을 이용하여 LT 부호화 행렬(630)을 생성한다(S730). 단계 S730의 수행 결과, 부호화 장치(100)는 최대 부호화 행렬(610)과 밀집 행렬(620)에서 추출된 행을 이용하여 생성된 LT 부호화 행렬(630)이 'n × k'(n`: 부행렬의 행의 수, k`: 부행렬의 열의 수)의 비구조적인 행렬을 갖게 되는 것이다. 즉, 최대 부호화 행렬(610)과 밀집 행렬(620)이 n' × k'의 비구조적인 행렬이므로, 이를 이용하여 생성된 LT 부호화 행렬(630)도 비구조적인 행렬이 되는 것이다. 여기서의 k(한번에 부호화하는 길이 정보) 및 n(부호화된 패킷 길이)은 부호화 장치(100)의 파라미터 결정부(110)에서 입력된 멀티미디어 데이터의 길이를 기 설정된 룰(적용되는 통신 시스템에 따라 결정됨)에 따라 분리하여 결정된다.
도 7에서는 단계 S710 내지 단계 S720을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 7에 기재된 순서를 변경하여 실행하거나 단계 S710 내지 단계 S720 중 하나 이상의 단계를 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 7은 시계열적인 순서로 한정되는 것은 아니다.
도 8은 본 실시예에 다른 구조적인 LT 부호화 행렬 생성 방법을 설명하기 위한 순서도이다.
부호화 장치(100)는 k × k의 단위 행렬로 이루어진 LT 부호화 행렬(630)을 생성하기 위해 LT 부호화 행렬(630)의 구성을 단위 행렬로 선택한다(S810). 즉, 부호화 장치(100)는 구조적인 LT 부호화 행렬을 생성하기 위해 LT 부호화 행렬(630)의 구성을 단위 행렬로 선택하는 것이다. 부호화 장치(100)는 구조적인 LT 부호화 행렬을 생성하기 위해, 최대 부호화 행렬(610)에서 (k` - k) × (1 - r)개의 제 1 행을 선택하여 추출한다(S820)(k`: 부행렬의 열의 수, k: 한번에 부호화하는 길이 정보, r: 비율). 단계 S820에서 최대 부호화 행렬(610)은 k × k의 구조적인 행렬을 갖는다. 이때, 단계 S820에서 부호화 장치(100)는 구조적인(k × k) 최대 부호화 행렬(610)에서 추출된 제 1 행의 크기가 정수가 되도록 반올림한다.
또한, 부호화 장치(100)는 구조적인 LT 부호화 행렬을 생성하기 위해, 생성된 밀집 행렬(620)에서 (k` - k) × r개의 제 2 행을 선택하여 추출한다(S830)(k`: 부행렬의 열의 수, k: 한번에 부호화하는 길이 정보, r: 비율). 단계 S830에서 밀집 행렬(610)은 k × k의 구조적인 행렬을 갖는다. 이때, 단계 S830에서 부호화 장치(100)는 구조적인(k × k) 밀집 행렬(620)에서 추출된 제 2 행의 크기가 정수가 되도록 반올림한다. 단계 S830 이후에 부호화 장치(100)는 제 1 행과 제 2 행에서 추출된 행을 이용하여 LT 부호화 행렬(630)을 생성한다. 즉, 부호화 장치(100)는 최대 부호화 행렬(610)과 밀집 행렬(620)에서 추출된 행을 이용하여 생성된 LT 부호화 행렬(630)이 k × k의 구조적인 행렬을 갖게 되는 것이다. 여기서의 k(한번에 부호화하는 길이 정보)는 부호화 장치(100)의 파라미터 결정부(110)에서 입력된 멀티미디어 데이터의 길이를 기 설정된 룰(적용되는 통신 시스템에 따라 결정됨)에 따라 분리하여 결정된다.
도 8에서는 단계 S810 내지 단계 S830을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 8에 기재된 순서를 변경하여 실행하거나 단계 S810 내지 단계 S830 중 하나 이상의 단계를 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 8은 시계열적인 순서로 한정되는 것은 아니다.
도 9는 본 실시예에 따른 LT 부호화 행렬이 적용한 통신 시스템의 예시도이다.
본 실시예에 해당하는 LT 부호화는 가변 길이를 갖는 멀티미디어 데이터의 전송이 가능한 통신 시스템의 송신단과 수신단에 적용될 수 있다. 가변 길이를 갖는 멀티미디어 데이터 전송이 가능한 통신 시스템의 송신단을 도 9에 도시된 송신부(910)라 칭할 때, 본 실시예에 따른 부호화 장치(100)의 파라미터 결정부(110)는 LT 부호화 파라미터 결정부(110)에 대응되어 구현될 수 있고, 부호화 행렬 생성부(120)와 부호화부(130)는 LT 부호화부(916)에 대응되어 구현될 수 있다.
멀티미디어 데이터 발생부(912)는 일종의 컨텐츠 제공 모듈로서, 외부의 서버와 연동하여 데이터 트래픽(멀티미디어 데이터)을 전송하거나 수신하는 컨텐츠 저장 및 관리를 수행할 수 있다. 여기서, 멀티미디어 데이터는 텍스트 데이터, 이미지 데이터, 음악 데이터 및 영상 데이터 중 적어도 하나 이상의 데이터를 포함할 수 있다. 이때, 멀티미디어 데이터 발생부(912)는 트래픽 요청 신호와 무관하게 컨텐츠를 브로드캐이스팅(Broadcasting) 형태로 제공하는 것이 바람직하나 반드시 이에 한정되는 것은 아니며, 트래픽 요청 신호에 대응하는 컨텐츠를 포함한 트래픽 응답 신호를 제공할 수도 있다.
이러한, 송신부(910)는 네트워크를 경유하여 수신된 트래픽 요청 신호에 해당하는 컨텐츠를 멀티미디어 데이터 발생부(912)를 통해 선택하고, 이러한 컨텐츠를 포함한 트래픽 응답 신호를 LT 부호화 파라미터 결정부(110)를 통해, 해당 네트워크의 통신 시스템에 따라 최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n), 최소 부호화 패킷 길이(min_n), 한번에 부호화하는 길이 정보(k), 부호화된 패킷 길이(n)를 결정할 수 있다. 또한, 송신부(910)에서 최대 부호화 행렬(610)과 밀집 행렬(620)의 크기가 주어지고 안에 '1', '0' 인자를 배치하는 방식으로 행렬의 설계가 이루어질 수 있다. 즉, 송신부(910)에서는 LT 부호화 파라미터 결정부(110)에 의해 최대 길이 정보(max_k), 최대 부호화 패킷 길이(max_n), 비율의 최대값이 주어지면 이러한 크기들에 맞게 최적화된 베르누이 분포값인 p1 내지 p4을 결정해야 한다. 이후 송신부(910)의 LT 부호화부(916)에서는 최대 부호화 행렬(610)과 밀집 행렬(620)에 대해 최대 부호화 행렬(610)과 밀집 행렬(620) 중 일부의 정보만을 추출한 후 결합한 LT 부호화 행렬(630)을 생성하고를 이를 포함한 부호화 패킷을 네트워크를 통하여 수신부(920)로 전송한다. 여기서, 네트워크는 인터넷망, 인트라넷망, 이동통신망, 위성 통신망 등 다양한 유무선 통신 기술을 이용하여 데이터를 송수신할 수 있는 망을 말하나, 본 실시예에 따른 송신부(910)와 수신부(920)가 적용될 요구가 많다고 여겨지는 네트워트는 무선 통신망이다.
가변 길이를 갖는 멀티미디어 데이터의 수신이 가능한 통신 시스템의 수신단을 도 9에 도시된 수신부(920)라 칭할 때, 복호화 장치(300)의 행렬 선택부(310)와 복호화부(320)는 LT 복호화부(922)에 대응되어 구현될 수 있다. 이러한, 수신부(920)는 네트워크를 경유하여 수신된 부호화 패킷을 수신한다. 이때, 수신부(920)는 송신부(910)로부터 부호화 패킷을 수신할 때 입력 복호화 파라미터(최대 길이 정보(max_k), 최소 길이 정보(min_k), 최대 부호화 패킷 길이(max_n), 최소 부호화 패킷 길이(min_n), 한번에 부호화하는 길이 정보(k), 부호화된 패킷 길이(n))를 같이 수신할 수 있다. 즉, 수신부(920)의 LT 복호화부(922)에서 복수 개의 행렬 중에서, 입력 복호화 파라미터에 해당되는 행렬(LT 부호화 행렬(630))을 선택하고, 입력된 복호화 파라미터에 해당되는 행렬을 선택한다. LT 복호화부(922)는 선택된 행렬을 기반으로, 수신 부호어를 복호화하여 가변 길이 정보를 갖는 데이터를 복호화하여 복호화 패킷을 생성한다. 이후, 멀티미디어 데이터 복원부(924)는 복화 패킷을 멀티미디어 데이터로 복원할 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 실시예는 LT 부호를 이용한 행렬 생성 분야에 적용되어, 응용 계층에서 가변 길이 정보를 갖는 데이터에 대해 LT 부호를 적용하여 오류 정정이 적용되도록 하는 효과를 발생하는 유용한 발명이다.
110: 파라미터 결정부 120: 부호화 행렬 생성부
130: 부호화부 210: 최대 부호화 행렬 생성부
220: 밀집 행렬 생성부 230: LT 부호화 행렬 생성부
320: 행렬 선택부 330: 복호화부
130: 부호화부 210: 최대 부호화 행렬 생성부
220: 밀집 행렬 생성부 230: LT 부호화 행렬 생성부
320: 행렬 선택부 330: 복호화부
Claims (18)
- LT(Luby-Transform) 부호화를 위해 가변 심볼(Symbol)을 갖는 데이터에 대한 복수의 부행렬을 포함하는 최대 부호화 행렬을 생성하는 최대 부호화 행렬 생성부;
밀집 행렬을 생성하는 밀집 행렬 생성부;
상기 최대 부호화 행렬과 상기 밀집 행렬 중 일부의 정보만을 추출한 후 결합한 LT 부호화 행렬을 생성하는 LT 부호화 행렬 생성부; 및
상기 LT 부호화 행렬을 이용하여 상기 LT 부호화에 대한 가변 심볼을 갖는 데이터를 부호화하여 부호화 패킷을 생성하는 부호화부
를 포함하는 것을 특징으로 하는 부호화 장치. - 제 1 항에 있어서,
상기 최대 부호화 행렬 생성부는,
상기 복수의 부행렬에 대한 각각의 크기는 최대 입력 심볼 개수(max_k), 최소 입력 심볼 개수(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n) 중 적어도 하나 이상의 정보에 의해 결정되는 것을 특징으로 하는 부호화 장치. - 제 2 항에 있어서,
상기 최대 입력 심볼 개수(max_k)는 LT 부호를 적용하기 위한 최대값을 가지며, 상기 최소 입력 심볼 개수(min_k)는 LT 부호를 적용하기 위한 최소값을 가지며, 상기 최대 부호화 패킷 길이(max_n)는 LT 부호 적용 후에 발생하는 최대값(max_n ≥ max_k)을 가지며, 상기 최소 부호화 패킷 길이(min_n)는 LT 부호화 후에 발생하는 최소값(min_n ≥ min_k)을 갖는 것을 특징으로 하는 부호화 장치. - 제 2 항에 있어서,
상기 복수의 부행렬 중 제 1 부행렬(n` × k`, 1 ≤ n` ≤ min_n, 1 ≤ k` ≤max_k)은 n` × k`개(n`: 제 1 부행렬의 행의 수, k`: 제 1 부행렬의 열의 수)의 요소를 포함하며, 상기 요소의 값은 '0' 또는 '1'의 값을 갖는 것을 특징으로 하는 부호화 장치. - 삭제
- 제 2 항에 있어서,
상기 복수의 부행렬 중 제 2 부행렬(n` × k`, min_n + 1 ≤ n` ≤ max_n, 1≤ k` ≤ min_k)은 n` × k`개(n`: 제 2 부행렬의 행의 수, k`: 제 2 부행렬의 열의 수)의 요소를 포함하며, 상기 요소의 값은 '0' 또는 '1'의 값을 갖는 것을 특징으로 하는 부호화 장치. - 삭제
- 제 2 항에 있어서,
상기 복수의 부행렬 중 제 3 부행렬(n` × k`, min_n + 1 ≤ n` ≤ max_n, min_k + 1 ≤ k` ≤ max_k)은 n` × k`개(n`: 제 3 부행렬의 행의 수, k`: 제 3 부행렬의 열의 수)의 요소를 포함하며, 상기 요소의 값은 '0' 또는 '1'의 값을 갖는 것을 특징으로 하는 부호화 장치. - 삭제
- 제 2 항에 있어서,
상기 밀집 행렬(1 ≤ n` ≤ max_n × max_r, 1 ≤ k` ≤ max_k, 여기서 0 ≤ max_r < 1)은 n` × k`개(n`: 상기 밀집 행렬의 행의 수, k`: 상기 밀집 행렬의 열의 수)의 요소를 포함하며, 상기 요소의 값은 '0' 또는 '1'의 값을 갖는 것을 특징으로 하는 부호화 장치. - 삭제
- 제 1 항에 있어서,
상기 LT 부호화 행렬 생성부는,
상기 최대 부호화 행렬과 상기 밀집 행렬을 이용하여 상기 가변 심볼을 지원하는 비구조적(Non-Systematic)인 상기 LT 부호화 행렬 또는 구조적(Systematic)인 상기 LT 부호화 행렬을 생성하는 것을 특징으로 하는 부호화 장치. - 제 1 항에 있어서,
상기 LT 부호화 행렬 생성부는,
상기 최대 부호화 행렬에서 n × (1 - r) (0 ≤ r < 1)(n: 부호화된 패킷의 길이, r: 상기 밀집 행렬이 포함될 수 있는 비율)에 해당하는 행을 선택하여 크기가 정수가 되도록 반올림하며, 상기 밀집 행렬에서 n × r (0 ≤ r < 1, r ≤ max_r)(n: 부호화된 패킷의 길이, r: 상기 밀집 행렬이 포함될 수 있는 비율, max_r: 상기 밀집 행렬의 행의 크기를 결정하는 파라미터)에 해당하는 행을 선택하여 크기가 정수가 되도록 반올림하며, 상기 n × (1 - r)에 해당하는 행과 상기 n × r에 해당하는 행을 이용하여, 상기 LT 부호화 행렬을 생성하는 것을 특징으로 하는 부호화 장치. - 삭제
- LT 부호를 이용한 부호화 방법에 있어서,
LT 부호화를 위해 가변 심볼을 갖는 데이터에 대한 복수의 부행렬을 포함하는 최대 부호화 행렬을 생성하는 최대 부호화 행렬 생성 과정;
밀집 행렬을 생성하는 밀집 행렬 생성 과정;
상기 최대 부호화 행렬과 상기 밀집 행렬 중 일부의 정보만을 추출한 후 결합한 LT 부호화 행렬을 생성하는 LT 부호화 행렬 생성 과정; 및
상기 LT 부호화 행렬을 이용하여 상기 LT 부호화에 대한 가변 심볼을 갖는 데이터를 부호화하여 부호화 패킷을 생성하는 부호화 과정
을 포함하는 것을 특징으로 하는 LT 부호를 이용한 부호화 방법. - 제 15 항에 있어서,
상기 최대 부호화 행렬 생성 과정은,
상기 복수의 부행렬에 대한 각각의 크기는 최대 입력 심볼 개수(max_k), 최소 입력 심볼 개수(min_k), 최대 부호화 패킷 길이(max_n) 및 최소 부호화 패킷 길이(min_n) 중 적어도 하나 이상의 정보에 의해 결정되는 것을 특징으로 하는 LT 부호를 이용한 부호화 방법. - 제 15 항에 있어서,
상기 LT 부호화 행렬 생성 과정은,
상기 최대 부호화 행렬에서 n × (1 - r) (0 ≤ r < 1)(n: 부호화된 패킷의 길이, r: 상기 밀집 행렬이 포함될 수 있는 비율)에 해당하는 행을 선택하여 크기가 정수가 되도록 반올림하며, 상기 밀집 행렬에서 n × r (0 ≤ r < 1, r ≤ max_r)(n: 부호화된 패킷의 길이, r: 상기 밀집 행렬이 포함될 수 있는 비율, max_r: 상기 밀집 행렬의 행의 크기를 결정하는 파라미터)에 해당하는 행을 선택하여 크기가 정수가 되도록 반올림하며, 상기 n × (1 - r)에 해당하는 행과 상기 n × r에 해당하는 행을 이용하여, 상기 LT 부호화 행렬을 생성하는 것을 특징으로 하는 LT 부호를 이용한 부호화 방법.
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120099586A KR101922205B1 (ko) | 2012-09-07 | 2012-09-07 | Lt 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120099586A KR101922205B1 (ko) | 2012-09-07 | 2012-09-07 | Lt 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140032827A KR20140032827A (ko) | 2014-03-17 |
KR101922205B1 true KR101922205B1 (ko) | 2018-11-26 |
Family
ID=50644224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120099586A KR101922205B1 (ko) | 2012-09-07 | 2012-09-07 | Lt 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101922205B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2537876A (en) * | 2015-04-29 | 2016-11-02 | Advanced Risc Mach Ltd | Error protection key generation method and system |
-
2012
- 2012-09-07 KR KR1020120099586A patent/KR101922205B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20140032827A (ko) | 2014-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3800791B1 (en) | Signature-enabled polar encoder and decoder | |
KR101740316B1 (ko) | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치 | |
US9071406B2 (en) | Apparatus and method using matrix network coding | |
WO2007064745A1 (en) | A method and apparatus for layered rateless coding | |
KR20150133254A (ko) | 채널 인코딩 및 디코딩 방법 및 장치 | |
US10362151B2 (en) | Coding in Galois fields with reduced complexity | |
JP2009303197A (ja) | 低密度パリティコードエンコーディング/デコーディング装置及びその方法並びにコンピュータ読み取り可能な記録媒体 | |
CN107733562B (zh) | 极化码的编解码方法及装置 | |
CN110233698B (zh) | 极化码的编码及译码方法、发送设备、接收设备、介质 | |
JPWO2006106841A1 (ja) | 誤り訂正符号化装置 | |
KR20180042373A (ko) | 수신기, 복수의 송신기들, 다수의 송신기들로부터 사용자 데이터를 수신하는 방법 및 사용자 데이터를 송신하는 방법 | |
KR101722284B1 (ko) | 방송/통신 시스템에서 제어 정보를 부호화하는 방법 및 그 제어 정보를 송수신하는 장치 및 방법 | |
CN102088331B (zh) | 一种数据传输方法及网络节点 | |
CN107733440B (zh) | 多边类型结构化ldpc处理方法及装置 | |
CN115811381B (zh) | 网络通信方法、网络通信装置、电子设备及存储介质 | |
KR101922205B1 (ko) | Lt 부호를 이용한 행렬 생성 방법과 그를 위한 부/복호화 장치 | |
Chau et al. | Efficient data uploading based on network coding in LTE-Advanced heterogeneous networks | |
KR20070034532A (ko) | 확장형 컨벌루션 인코더 디바이스, 무선 시스템, 컨벌루션코드 확장 방법 | |
RU2542578C2 (ru) | Система и способ обеспечения защиты беспроводных передач | |
WO2008069460A1 (en) | Method of generating parity-check matrix, encoding/decoding method for low density parity-check code with variable information length and variable code rate and apparatus using the same | |
JPWO2015178018A1 (ja) | 端末、パケット復号方法、および、プログラムが記憶された記憶媒体 | |
JP5749784B2 (ja) | 誤り訂正符号方法 | |
Fei et al. | Improved Luby transform codes in low overhead regions for binary erasure channels | |
Hirner et al. | One Unequal Error Control Method for Telemetric Data Transmission | |
CN110233699B (zh) | 一种受限反馈下基于相对熵的无速率编码方法和电子设备 |
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 |