KR101154818B1 - 랩터 부호 사용 시스템을 위한 복호화 방법 - Google Patents

랩터 부호 사용 시스템을 위한 복호화 방법 Download PDF

Info

Publication number
KR101154818B1
KR101154818B1 KR1020090094843A KR20090094843A KR101154818B1 KR 101154818 B1 KR101154818 B1 KR 101154818B1 KR 1020090094843 A KR1020090094843 A KR 1020090094843A KR 20090094843 A KR20090094843 A KR 20090094843A KR 101154818 B1 KR101154818 B1 KR 101154818B1
Authority
KR
South Korea
Prior art keywords
node
group
check
variable
decoding
Prior art date
Application number
KR1020090094843A
Other languages
English (en)
Other versions
KR20110037410A (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 KR1020090094843A priority Critical patent/KR101154818B1/ko
Priority to US12/580,544 priority patent/US20110083055A1/en
Publication of KR20110037410A publication Critical patent/KR20110037410A/ko
Application granted granted Critical
Publication of KR101154818B1 publication Critical patent/KR101154818B1/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • 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
    • 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
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Abstract

본 발명은 랩터 부호의 복호 실패 시 변수 노드의 그룹화를 통해 변수 노드값 추측 효율을 높여 성능향상을 도모함과 아울러 추측에 따른 연산량 증가를 줄일 수 있도록 한 랩터 부호 사용 시스템을 위한 복호화 방법에 관한 것으로, 복호 시 값을 알 수 없는 변수 노드를 그룹화하고, 이를 서브 그룹으로 나눈 후 체크 노드 방정식을 만족하지 않는 서브 그룹을 제외시키는 방식으로 변수 노드를 추측하여 복원하도록 함으로써 MP복호화 방식을 적용하더라도 성능 향상과 추가 연산량 감소가 가능하도록 하여 랩터 부호 사용 시스템의 성능을 개선할 수 있도록 하는 효과가 있다.
랩터 부호, 파운틴 부호, 추측, 그룹, 변수 노드, 복호화, 디코딩

Description

랩터 부호 사용 시스템을 위한 복호화 방법{DECODING METHOD FOR RAPTOR CODES USING SYSTEM}
본 발명은 랩터 부호 사용 시스템을 위한 복호화 방법에 관한 것으로, 특히 랩터 부호의 복호 실패 시 변수 노드의 그룹화를 통해 변수 노드값 추측 효율을 높여 성능향상을 도모함과 아울러 추측에 따른 연산량 증가를 줄일 수 있도록 한 랩터 부호 사용 시스템을 위한 복호화 방법에 관한 것이다.
부호화한 데이터량이 미리 정해지지 않는 파운틴 코드(Fountain code)는 송신단 측에서 수신단에 대한 정보가 부족하거나 수신단의 수가 매우 많을 때처럼 양방향 정보 전송이 어려울 때에도 단방향 전송만으로 에러 없이 완벽한 수신을 가능하게 한다는 장점이 있어 컴퓨터 네트워크 내에서 멀티캐스트 등에서 사용되는 방식이다. 파운틴 코드는 네트워크의 과부하를 유발하는 재전송요청을 줄일 수 있으며, 수신단에게 비동기 수신이 가능하도록 한다. 이를 위해서 송신단에서는 전송할 파일을 이용하여 끊임없이 부호화된 패킷으로 만들어서 전송하고 각각의 수신단은 피드백이 필요 없이 복호화가 가능할 정도의 패킷만을 수신하여 복호화하는 방식을 이용한다.
랩터 부호(Raptor codes)는 파운틴 부호(Fountain codes)의 일종으로, 2004년 Amin Shokrollahi에 의하여 개발되었으며, 기존의 파운틴 부호인 LT 부호(Luby-Transform code) 보다 복호화 과정의 연산량 측면에서 더 좋은 성능을 가지고 있어 3GPP MBMS, DVB-H 등의 응용(application) 계층에서의 표준으로 채택되었다. 랩터 부호는 기존의 파운틴 부호인 LT 부호(Luby-Transform code) 보다 복호화 과정의 연산량 측면에서 더 좋은 성능을 제공한다. 일반적으로 알려진 LT 부호의 가장 큰 단점은 소스 심볼을 복구하는데 필요한 연산량이 선형적이지 못하다는 것이다. 하지만 랩터 부호는 이러한 단점을 보완하여 부호화 연산량을 선형 시간 이내로 유지하면서 선형 시간의 복호화 연산량을 얻을 수 있게 하므로 실제 적용 편의성과 효율성 면에서 더욱 뛰어난 효과를 제공한다.
현재까지 알려져 있는 가장 좋은 채널 코딩 부호로는 LDPC 부호(Low Density Parity Check Codes)가 있다. 이는 1962년 제안된 내용을 1996년 재발견 및 실용화한 것으로, 고속 데이터 전송에 필요한 높은 부호 레이트에서의 탁월한 성능을 제공한다. 따라서 최근 하드웨어의 발전으로 고속 통신을 지원하는 서비스(와이브로, 롱텀 에볼루션(LTE) 등)의 표준으로 채택되고 있다. 그러나, BEC 채널을 사용하는 링크(link) 계층 이상에서는 LDPC 부호보다 랩터 부호의 성능의 우수하고, 인코딩이 간단하기 때문에서 최근에는 랩터 부호의 표준 제정이 증가하고 있는 실정이다.
이러한 랩터 부호의 복호 성공 여부는 전체 프리 코딩(pre-coding) 심볼들의 복원 여부에 달려 있는데, 랩터 부호의 복호 방법은 수신된 심볼과 미리 약속된 부호 조건 행렬(A(0) )을 통해 프리-코딩 심볼(pre-coding symbol)을 구하고, 이를 바탕으로 손실(erasured)된 정보 심볼들을 복원하는 과정을 말한다.
여기서 프리-코딩 심볼을 구하는 과정은 수신된 심볼과 행렬 A(0)을 이용한 가우시안 소거법(Gaussian elimination) 또는 MP (Message Passing) 방법을 통해 이루어진다.
한편, BEC (Binary Erasure Channel)에서의 LDPC 부호의 복호 방법은 주어진 패리티 체크 행렬 H를 가우시안 소거법 또는 MP 방법을 적용하는 방식을 이용한다.
MP 방법은 가우시안 소거법에 비해 성능은 나쁘지만 연산량이 매우 적은 특징이 있다. MP 방법의 문제점인 낮은 성능을 향상시키기 위하여 주로 추측을 통한 성능 향상 기법을 이용하고 있으나 추측 노드가 많아질수록 연산량이 지수적으로 증가하는 문제점이 있다. 또한, LDPC 부호와 랩터 부호의 수신단 구조 차이로 인해 랩터 부호에 LDPC 부호에서 사용한 추측 기법 사용 시 연산량이 증가하는 문제점이 있어 현재까지 제안된 LDPC 부호용 추측 기법을 직접 랩터 부호에 적용하기 어렵다.
2004년 3월 공개된 Hossein Pishro-Nik, Faramarz Fekri의 "BEC 에서의 LDPC 코드 디코딩(On Decoding of Low-Density Parity-Check Codes over the BEC)",IEEE trans. Inf. Theory, vol.50, No.3. pp.439-454 에서는 2가지 추측 기법을 이용하는데, 첫번째 추측 노드에 대한 값을 무작위로 설정하여 MP 복호를 통해 추측한 값 이 맞는지 확인하고, 틀리면 이를 반복하는 방식과, 특정 조건에 맞는 추측 노드를 찾은 뒤 모든 변수 노드에 대해 추측 노드들의 연결 상태를 표기한 후 가우시안 소거법을 사용하는 방식이다.
하지만, 랩터 부호화 방식이 적용되는 시스템의 경우 연산량이 큰 가우시안 소거법을 적용하기 어렵고, MP 복호를 통한 추측 방식을 이용한다 하더라도 LDPC와 수신단 구조가 상이하여 이러한 방식을 직접 적용할 경우 연산량이 추측 노드의 증가에 따라 지수적으로 증가하게 되어 실질적인 적용이 어렵다.
2007년 공개된 Vellambi, B.N., and Fekri, F.의 "BEC 환경에서 LDPC를 위한 개선된 디코딩 알고리즘(lts on the improved decoding algorithm for low-density parity-check codes over the binary erasure channel)”, IEEE Trans. Inf. Theory, vol.53, pp.1510-520이나, 2008년 공개된 Jiao, X.-P, Mu, J.-J, Zhou, L.-H,“BEC 환경에서 LDPC를 위한 개선된 디코딩 알고리즘의 변형(Modification of improved decoding algorithm for LDPC codes over BEC)”, Electronics Letter, vol.44, No.8, pp.542-543 에서는 LDPC 부호에 대해 추측하는 노드를 표기한 후 체크 노드와 표기한 추측 노드를 통해 이중 체크 노드(Bivalent check node)를 구성한 후 가우시안 소거법을 사용하는 방식과, 이러한 기능을 향상시키기 위하여 추측 노드를 선별하는 방법이 개시되어 있다. 하지만, 이러한 방식들 역시 LDPC 부호에 대한 것으로 랩터 부호에는 직접 적용이 어렵고 연산량이 많아 구현이 어렵다.
한편, 2008년 5월 공개된 Hillary Traus, John Bush, James Irvine, John Dunlop 의“LT 디코딩의 성능을 개선하기 위한 리던던시의 활용(Exploiting Redundancies to Improve Performance of LT Decoding)”,Communication network and services research conference(CNSR)은 랩터 부호와 유사한 파운틴 부호인 LT 부호에 대한 복호 실패 시 성능 향상 기법이 개시된 것으로, 복수 체크 노드에 연결된 변수 노드 중 공통으로 연결된 변수 노드가 있는 경우 공통되지 않은 변수 노드 정보를 알 수 있게 되므로 이를 이용하여 MP 복호화를 실시하여 성능을 개선하도록 하는 것이다. 하지만, 이러한 경우 알 수 있게 되는 체크노드와 변수 노드의 상황에 극히 제한적이기 때문에 성능 향상이 크지 않아 이를 랩터 부호에 적용하더라도 큰 효과를 기대하기 어렵다.
따라서, 인코딩이 간단하고 링크 계층 이상에서 높은 성능을 제공하는 랩터 부호를 BEC 환경에서 이용하는 시스템의 경우 비교적 심볼 복원 대상에 대한 제한이 없는 추측 기법을 통해서 심복을 복원할 수 있도록 함과 아울러, 추측 노드가 증가하더라도 연산량 증가를 선형적 수준으로 유지할 수 있는 새로운 형태의 추측 기법이 필요하다.
특히, 수신 심볼이 변수 노드와 직접 연결되어 심볼 수신 시 변수 노드 값을 직접 알 수 있는 LDPC 부호와 달리 랩터 부호는 수신 심볼과 변수 노드가 분리된 구성을 가지고 있으며, LDPC 부호에 비해 훨씬 더 많은 변수 노드들이 분포하는 랩터 부호의 경우 추측 기법을 이용하게 될 경우 연산량이 급격히 증가하게 되어 기존의 LDPC 부호용 추측 기법을 사용할 수 없기 때문에 성능 개선을 위해서는 랩터 부호에 적합한 새로운 형태의 추측 기법이 필수적이라 할 수 있다.
전술한 문제점을 개선하기 위한 본 발명 실시예들의 목적은 복호 시 값을 알 수 없는 변수 노드를 그룹화하고, 이를 서브 그룹으로 나눈 후 체크 노드를 만족하지 않는 서브 그룹을 제외시키는 방식으로 변수 노드를 추측하여 복원하도록 함으로써 MP복호화 방식을 적용하더라도 성능 향상과 추가 연산량 감소가 가능하도록 하여 랩터 부호 사용 시스템의 성능을 개선할 수 있도록 한 랩터 부호 사용 시스템을 위한 복호화 방법을 제공하는 것이다.
본 발명 실시예들의 다른 목적은 가우시안 소거법에 비해 성능은 낮지만 연산량이 매우 적은 MP 복호화 방식을 이용하고 그 성능을 향상시키기 위하여 추측 방식을 적용하면서도 추측 노드 증가에 따라 지수적으로 증가하는 연산량을 선형적 수준으로 줄일 수 있도록 한 랩터 부호 사용 시스템을 위한 복호화 방법을 제공하는 것이다.
본 발명 실시예들의 또 다른 목적은 변수 노드의 그룹화와 서브 그룹화를 통해 추측에 따른 연산량을 줄이도록 하면서, 그룹 순서 확인을 위한 제한 값의 크기와 그룹의 최대 제한 수를 결정하여 성능과 연산량 사이의 균형을 맞출 수 있도록 한 랩터 부호 사용 시스템을 위한 복호화 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 랩터 부호 사용 시스템을 위한 복호화 방법은 랩터 부호를 메세지 패싱(MP)방식으로 복호화한 후 복원되지 않은 변수 노드에 대해 추측 노드에 대응하는 변수 노드들 단위로 그룹화하는 그룹화 단계와; 상기 각 그룹에 대한 추측 노드의 값에 따라 서브 그룹을 구분하는 서브 그룹화 단계와; 상기 서브 그룹들 중 체크 노드를 만족하는 서브 그룹들을 선택하는 과정을 상기 그룹화 단계에서 얻어진 모든 그룹에 대해 반복하여 각 그룹의 변수 노드 값을 복호 결과로 간주하는 서브 그룹 선택 단계를 포함한다.
상기 그룹화 단계는 상기 복원되지 않은 변수 노드에 대해 해당 변수 노드를 프리(free)하는, 즉 복원되지 않은 변수 노드들에 포함된 변수 노드를 알 수 있게 하는 추측 노드를 선택하여 이로 인해 프리된 변수 노드들을 중복되지 않게 그룹화하는 과정을 상기 모든 변수 노드들이 그룹에 포함될 때까지 실시하는 단계를 더 포함한다.
상기 서브 그룹 선택 단계는 상기 그룹화 단계의 그룹 중 그룹에 속한 변수 노드의 수가 가장 많은 그룹부터 해당 그룹의 서브 그룹 중 체크 노드를 만족하는 서브 그룹을 선택하는 과정을 그룹의 크기를 기준으로 n 번째 그룹까지 반복한 후, 나머지 그룹은 크기에 무관하게 체크 노드를 만족하는 서브 그룹을 선택하는 단계를 더 포함할 수 있다.
상기 그룹의 크기는 추측 노드가 프리하는 변수 노드 확인을 기 설정된 D 번째 변수 노드까지 반복하여 그 중 크기가 가장 큰 그룹을 선택하고, 해당 그룹을 제외한 변수 노드들 중에서 다음번 그룹을 선택하는 과정을 실시하는 단계를 포함 할 수 있다.
상기 기 설정된 값 D와 상기 그룹의 전체 숫자에 대한 제한 값을 설정하여 성능과 연산량의 균형을 조절한다.
한편, 본 발명은 이전 그룹에 대해 선택한 서브 그룹에 따른 변수 노드의 값을 후속하는 그룹의 서브 그룹 선택을 위한 체크 노드 확인 시 이용하여 성능을 향상시키도록 한다.
본 발명의 다른 실시예에 따른 랩터 부호 사용 시스템을 위한 복호화 방법은 랩터 부호를 복호화한 후 복원되지 않은 변수 노드들의 세트를 Uv라 하고, Uv에 속한 변수 노드를 하나의 추측노드로 많이 프리(Free)하는 순서로 상기 추측 노드에 의해 프리되는 변수 노드를 그룹화하는 과정을 상기 Uv에 속한 변수 노드 모두가 중복되지 않으면서 모두 그룹화 될때까지 반복하는 그룹화 단계와; 상기 그룹화 단계를 통해 얻어진 그룹에 대해 그 순서에 맞추어 해당 그룹에 대응하는 추측 노드가 0일 때와 1일 때 해당 그룹이 체크 노드를 만족하는 지를 확인하여 만족하는 추측 노드 값을 확정하고, 확정된 값을 후속 그룹의 체크 노드를 만족 하는 추측 노드 값 확인 시 이용하는 과정을 모든 그룹에 대해 실시하는 추측 단계와; 상기 추측 단계를 모든 그룹에 대해 실시하여 최종 선택된 각 변수 노드들의 값을 복호 결과로 간주하는 변수노드 복원 단계를 포함한다.
상기 추측 단계에서 체크 노드에 대한 만족 여부는 해당 그룹에 연결된 모든 체크 노드를 확인하여 이들 중 적어도 하나의 체크 노드를 만족하는 추측 노드 값을 확인하며, 모든 체크 노드에 대해서 모든 서브 그룹이 체크 노드를 만족하는 경우, 즉 체크 노드를 만족하지 않는 서브 그룹이 나타나지 않는 경우 복호 실패로 간주한다.
상기 그룹화 단계에서, 상기 변수 노드의 숫자에 따른 선택 그룹의 순서 확인은 n 번째 까지만 실시하고 그 외에는 순서 확인 없이 그룹화를 실시하는 단계를 더 포함하도록 하여 연산량을 줄이도록 한다.
본 발명 실시예에 따른 랩터 부호 사용 시스템을 위한 복호화 방법은 복호 시 값을 알 수 없는 변수 노드를 그룹화하고, 이를 서브 그룹으로 나눈 후 체크 노드를 만족하지 않는 서브 그룹을 제외시키는 방식으로 변수 노드를 추측하여 복원하도록 함으로써 MP복호화 방식을 적용하더라도 성능 향상과 추가 연산량 감소가 가능하도록 하여 랩터 부호 사용 시스템의 성능을 개선할 수 있도록 하는 효과가 있다.
본 발명 실시예에 따른 랩터 부호 사용 시스템을 위한 복호화 방법은 가우시안 소거법에 비해 성능은 낮지만 연산량이 매우 적은 MP 복호화 방식을 이용하고 그 성능을 향상시키기 위하여 추측 방식을 적용하면서도 추측 노드 증가에 따라 지수적으로 증가하는 연산량을 선형적 수준으로 줄여 적용 시스템 부하를 줄일 수 있도록 하는 효과가 있다.
본 발명 실시예에 따른 랩터 부호 사용 시스템을 위한 복호화 방법은 변수 노드의 그룹화와 서브 그룹화를 통해 추측에 따른 연산량을 줄이도록 하면서, 그룹 순서 확인을 위한 제한 값의 크기와 그룹의 최대 제한 수를 결정하여 성능과 연산량 사이의 균형을 맞출 수 있도록 함으로써 시스템과 BEC (Binary Erasure Channel) 환경에 따른 성능 최적화가 가능한 효과가 있다.
상기한 바와 같은 본 발명을 첨부된 도면들과 실시예들을 통해 상세히 설명하도록 한다.
도 1 및 도 2는 랩터 부호와 LDPC 부호의 수신단의 구조적 차이를 보이기 위한 것으로, 도 1은 랩터 부호의 바이퍼타이트(bipartite) 그래프 예를 보인 것으로, 수신 심볼(r1, r2, r3)(30)과, 이를 이용하여 복호화 과정을 거쳐서 추정하는 변수 노드(y1, y2, y3)(10) 사이의 관계 및 체크 노드(20)와 연결 상태(15)를 보인 것이다.
도 2는 LDPC부호의 바이퍼타이트 그래프를 보인 것으로, 도시된 바와 같이 수신 심볼(r1, r2, r3)과 변수 노드(y1, y2, y3)(40), 체크 노드(50) 및 연결 상태(45)의 예를 보인 것이다.
도시된 바와 같이 LDPC 부호의 경우 수신 심볼과 변수 노드가 직접 연결되어 있어 심볼 수신 시 변수 노드의 값을 바로 알 수 있지만 랩터 부호의 경우 수신 심볼(30)이 체크 노드(20)에 연결되어 있고, 이를 이용하여 변수 노드(10)를 구해야 하기 때문에 랩터 부호의 성능은 LDPC 부호에 비해 성능이 낮을 수 밖에 없다.
도 3은 거의 동일한 입력 크기와 부호율 하에서 랩터 부호와 LDPC 부호의 성능을 나타낸 것이다. 입력 크기가 1536이고 부호율이 3/4인 랩터 부호와 입력 크기가 1512이고 부호율이 3/4인 LDPC 부호의 경우 LDPC 부호가 랩터 부호에 비해 성능이 우수함을 알 수 있다.
위와 같은 상황에서 LDPC 부호와 랩터 부호가 동일한 BER(Bit Error Rate)을 나타낼 때, 복호를 실패한 변수 노드를 전체의 변수 노드에 대한 비율을 측정해 보면, LDPC 부호의 경우 약 22~24% 정도가 실패, 즉 해당 변수 노드값을 알 수 없게 되고, 랩터 부호의 경우는 약 92~95% 정도를 알 수 없게 된다.
결국, 랩터 부호의 성능 개선이 필수적임을 알 수 있다. 이러한 성능 개선을 위한 효과적인 방법으로, 추측 기법이 있다. 추측 기법은 복호 실패 시 값을 알 수 없는 변수 노드의 일부를 추측하여 알아내는 방법이다. 이때, 추측하는 노드의 수가 증가할수록 또는 가우시안 소거법이나 MP법에서 사용하는 변수 노드의 개수가 증가할수록 연산량은 지수적으로 증가하게 된다.
하지만, 현재까지 대부분의 추측 방식은 LDPC용으로 개발된 것으로, 앞서 확인한 바와 같이 복호 실패 시 알 수 없는 변수 노드들의 수가 너무 많다는 점 때문에 추측이 필요한 추측 노드의 수 역시 너무 많아져 이러한 방식들을 랩터 부호화에 적용할 경우 그 연산량을 감당할 수 없게 된다.
결국, 랩터 부호와 같이 수신 심볼이 변수 노드에 직접 연결되어 있지 않고 체크 노드에 연결되어 있는 경우, 연산량을 줄일 수 있는 새로운 추측 기법이 필요하게 된다.
도 4는 본 발명의 일 실시예에 따른 랩터 부호의 복호화 방법을 나타낸 순서도로서, 도시한 바와 같이 랩터 부호를 이용하여 복호화 후 그 값을 알 수 없는 변수 노드들에 대하여 추측 기법을 적용함으로써 해당 변수 노드들을 복원하는 방식에 관한 것이다.
먼저, 랩터 부호의 MP 복호 후 남아있는 변수 노드를 세트 Uv라고 설정한다(ST10).
그리고, 하나의 추측 노드로 Uv에 포함된 변수 노드를 알 수 있게 하는, 즉 변수 노드를 프리(free)할 수 있는 지를 각 변수 노드들 별로 확인하는 과정을 통해 가능한 많은 변수 노드를 프리할 수 있는 추측 노드를 선택하고, 선택된 추측 노드와 이로 인해 프리된 변수 노드들을 첫 번째 그룹으로 구성한다(ST20).
이렇게 하나의 추측 노드로 프리할 수 있는 많은 변수 노드를 하나의 그룹으로 묶을 경우, 이러한 그룹화를 반복하여 한번에 많은 변수 노드를 프리할 수 있는 추측 노드에 가중치를 두어 그 추측 노드를 결정하게 되면 성능을 높이면서도 연산량을 크게 줄일 수 있게 된다.
이제, ST20에서 구한 그룹에 속한 변수 노드를 제외한 Uv에 대하여 나머지 그룹들을 구하는데, 이때, 그룹의 개수는 미리 설정된 최대 gmax개가 되도록 한다(ST30). 만일 얻어지는 그룹의 수가 미리 설정된 gmax이상이 면 랩터 부호의 복호는 실패로 간주한다. 이러한 최대 값을 설정함으로써 과도한 연산이 발생하지 않도 록 하며 이러한 값을 설정하는 것으로 성능과 연산량의 균형을 조절할 수 있게 된다.
이제, 얻어진 그룹들을 이용하여 추측 노드의 값을 추정해야 하는데, 가장 우선순위가 높은 것부터 실시해야 하므로 그룹의 크기 순서대로 추측 노드의 값을 추정하는 것이 바람직하다. 하지만, 모든 그룹들의 크기에 따른 순서를 결정하기 위해서는 앞서 그룹 설정 시 한번에 프리할 수 있는 변수 노드들에 대해서 각 변수 노드가 해당 추측 노드로 프리 되는지 확인해야 하기 때문에 그 연산 시간이 오래 걸리게 되므로, 경험적으로 볼 때 우선 순위가 높은 몇 개의 그룹 이후에는 이러한 순위에 무관하게 그룹화를 하고 이후 실시되는 서브 그룹 선택 과정 역시 이러한 우선 순위가 높은 몇 개의 그룹만 순서대로 처리하고 그 외의 것은 무작위로 처리하는 것이 성능 향상 대비 연산량 측면에서 볼 때 바람직하다.
본 실시예에서는 그룹의 크기가 큰 순서대로 2개의 그룹에 대해서만 순위를 결정하고 그 외의 그룹에 대해서는 순위를 결정하지 않도록 하여 성능 감소를 최소화하면서 연산량을 줄이도록 한다. 한편, 이후 도 5를 통한 상세한 동작 설명에서 언급하겠지만 앞서 ST20이나 ST30 단계에서 그룹의 크기를 확인하기 위한 각 개별 변수 노드들의 프리 여부를 확인하는 과정도 Uv에 속한 모든 변수 노드들에 대해 전부 실시할 경우 연산량이 많아지고 지연이 길어지게 되므로 기 설정된 순차(D)의 변수 노드까지만 프리 여부를 확인하도록 함으로써 연산량을 줄이도록 하는 것이 바람직하다.
이제, 앞서 구한 그룹들에 대한 추측 노드들의 값(BEC 환경이므로 1이거나 0)에 따라 해당 그룹을 서브 그룹으로 분할하는 과정이 수행되는데, 본 실시예에서는 ST20, ST30에서 구한 그룹들 중에서 그룹의 크기가 가장 큰 두 개를 순서대로 G1, G2로 정하고 나머지 그룹들은 순서에 상관하지 않도록 한다(ST40).
그룹 G1에 대한 추측 노드의 값을 '0'으로 했을 때를 서브 그룹 G10, '1'로 했을 때는 서브 그룹 G11으로 구분한 뒤, 체크 노드의 방정식을 만족하는 서브 그룹 G10 또는 G11을 선택한다(ST50). 물론 그 반대로 체크 노드의 방정식을 만족하지 않는 서브 그룹을 제외하는 방법을 이용할 수도 있다. 이러한 과정을 모든 체크 노드에 대해서 수행될 수 있으며, 모든 체크 노드에 대해서 모든 서브 그룹이 체크 노드를 만족하는 경우, 즉 체크 노드를 만족하지 않는 서브 그룹이 나타나지 않는 경우 복호 실패로 간주한다.
이렇게 가장 많은 변수 노드를 프리할 수 있는 그룹의 서브 그룹이 선택되면 이는 해당 변수 노드들에 대한 값을 구한 것이 되므로, 이후 진행되는 추측 과정에서 상기 구해진 변수 노드들의 값을 이용할 수 있게 되므로 추측에 따른 심볼 복원 성능이 개선되게 된다.
이제, ST50을 통해 선택된 그룹 G10 또는 G11과 두번째 크기의 그룹에 대한 서브 그룹 G20와 G21을 이용하여 체크 노드를 만족하는 그룹 G20 또는 G21을 선택한다. 이와 같이 이전에 선택한 그룹과 해당 서브 그룹 Gk0, Gk1을 이용하여 체크 노드를 만족하는 Gk0 또는 Gk1을 선택한다(ST60).
비록 본 실시예에서는 크기 순으로 2개의 그룹에 대해서만 순서를 적용하였으나 이는 더 많은 수의 그룹에 대해서 순서를 적용하거나 혹은 1개의 그룹에 대해서만 순서를 적용할 수도 있는 등, 그 연산 대상에 대한 설정은 연산량과 성능을 고려하여 결정될 수 있는 것임에 주의한다.
이후, ST60을 g(≤gmax)번째 그룹까지 반복한 뒤, 각 그룹에 대해 서브 그룹이 모두 선택이 되면, 해당 그룹의 변수 노드 값이 랩터 부호의 복호 결과가 되어 변수 노드들에 대한 복원이 이루어지게 되므로 가능한 작은 연산량으로 재전송 없이 수신 심볼의 복원이 가능하게 되어 성능이 크게 향상될 수 있다.
이제, 이러한 상기 방식을 도 5 및 도 6을 참조하여 좀 더 상세하게 확인해 보도록 한다.
도 5는 앞서 살펴본 도 4의 그룹화 방식(ST20, ST30 단계)에 대한 보다 상세한 구성의 예를 보인 순서도로서, 실제 프로그래밍을 통해 구현 가능할 정도로 나타낸 것이다. 좌측 내용은 도 4의 ST20에 해당하는 과정을 수행하기 위한 것이고, 우측은 도 4의 ST30에 해당하는 과정을 수행하기 위한 것으로, 이러한 과정이 완료되면 ST40 단계로 진행하게 됨을 나타낸 것이다. 도시된 변수들은 실질적인 프로그래밍을 위해 할당한 예라는 것에 주의한다.
먼저, 각 변수를 초기화한 후 랩터 부호의 MP 복호 후 남아있는 변수 노드 세트 Uv에 대해 그룹을 선택하게 되는데, Uv내의 변수 노드 중 첫 번째 노드를 추측 노드로 설정한 뒤, 추측 노드와 프리 되는 변수 노드들을 집합 R로 설정한다.
만일, 집합 R의 크기가 Uv의 크기와 같다면, 해당 추측 노드가 모든 Uv를 프리 한 것이 되고, 그룹 G1을 구성하게 된다.
위의 과정에서, 만일 집합 R의 크기가 Uv의 크기와 같지 않다면, 추측 노드가 프리하는 변수 노드의 개수를 체크하며, 이를 미리 설정된 D-번째 변수 노드까지 반복한다. 그 중에서 크기가 가장 큰 R을 G1으로 설정한다.
이렇게 D 번째 변수 노드까지만 프리하는 변수 노드를 체크함으로써 연산량과 지연시간을 줄일 수 있게 되며, 이러한 D 값의 설정에 따라 전체적인 연산량과 성능 사이의 균형이 일부 결정될 수 있다.
이후, 우측의 순서도와 같은 방식으로 R을 제외한 Uv에 대해 최대 gmax까지 반복하여 전체 Uv를 각각의 그룹으로 구분하는 그룹화 과정을 완성한다. 만일 이러한 과정을 gmax까지 반복했을 때 그룹화 과정이 완성되지 않았다면, 랩터 부호의 복호 과정을 실패로 간주한다.
도시된 순서도를 통해서 얻어진 그룹들 중에서 그룹의 크기가 가장 큰 두 개를 순서대로 G1, G2로 정하는 과정이 ST40이며, 이렇게 두개 만을 선택함으로써 복호화 속도를 개선할 수 있다.
도 6은 서브 그룹을 선택하는 과정의 보다 상세한 동작 예를 보인 순서도로서, 도 4의 단계 ST50과 ST60의 보다 상세한 구성에 해당한다. 도시된 바와 같이 구성된 그룹에 대해 추측 노드 값을 0과 1로 하는 경우를 서브 그룹으로 구분하며, 구분한 서브 그룹 중에서 체크 노드를 만족하는 서브 그룹을 찾는 과정이 프로그래밍을 위한 변수 예를 적용하여 상세히 나타나있다. 도시된 좌측이 ST50의 과정에 해당하고, 우측이 얻어진 이전 서브 그룹의 값을 활용하는 ST60의 과정에 해당한다.
먼저, 그룹 G1에서 추측 노드의 값을 '0'으로 설정하고, 그룹 G1내의 나머지 노드에 대한 값을 구한다. 이를 G10로 나타내고, 추측 노드 값을 '1'로 설정한 경우는 G11으로 나타낸다.
G10, G11에 대하여 체크 노드를 확인하고, 체크 노드에 만족하지 않는 서브 그룹이 발생할 경우, 만족하는 서브 그룹을 선택하며, G10, G11에 대한 체크 노드 확인을 멈춘다. 모든 체크 노드를 확인하지 않고 중간에 멈출 수 있기 때문에 기존 방법에 비해 연산량을 줄일 수 있다. 만약 G10, G11에 연결된 체크 노드를 모두 확인했음에도, 체크 노드를 만족하지 않는 서브 그룹이 나타나지 않는다면, 랩터 부호의 복호는 실패로 간주한다.
상기 과정에서 서브 그룹을 선택할 수 있게 되며 해당 서브 그룹에 대한 변수 노드의 값을 확인한 것이 되므로 이후 과정에서는 이러한 구해진 변수 노드의 값을 활용할 수 있게 된다. 이러한 과정이 우측 순서도를 통해서 이루어지게 된다.
위의 과정에서 구한 서브 그룹(G10 또는 G11)과 G20, G21에 대해서 체크 노드를 확인한다. 앞의 과정과 마찬가지로 체크 노드를 만족하는 서브 그룹이 나타나면, G20, G21에 대한 체크 노드 확인은 종료하며, 만족하는 서브 그룹을 선택한다. 만일 모든 서브 그룹이 체크 노드를 만족하는 경우, 즉 체크 노드를 만족하지 않는 서브 그룹이 나타나지 않는 경우 복호 실패로 간주한다.
이후 위의 두번째 서브 그룹 선택과 같은 방법으로 이전까지 구한 서브 그룹들과 해당 그룹의 서브 그룹 Gk0, Gk1에 대해 체크 노드를 확인하고, 만족하지 않는 서브 그룹들을 제외한다. 이를 그룹의 총 개수 g까지 반복한다.
서브 그룹을 선택하는 과정이 종료된 후, 선택된 서브 그룹에 속한 변수 노드의 합집합이 Uv와 같지 않다면 랩터 부호의 복호는 실패로 간주하고, Uv와 같다면 선택된 서브 그룹의 변수 노드 값이 랩터 부호의 복호 결과가 된다.
이제, 본 발명의 실시예를 적용하는 경우의 예를 도 7 내지 도 9를 통해 확인해 보도록 한다.
도 7은 랩터 부호의 복호가 실패한 경우의 예를 나타낸 바이퍼타이트(bipartite) 그래프로서, 변수 노드 v1~v5(60)의 집합 {v1,v2,v3,v4,v5}은 Uv가 된다. 이에 관련한 체크 노드는 수신 심볼이 연결되어 있지만 체크 노드(70)에 연결(65)된 변수 노드의 개수가 '1'인 것이 없으므로 랩터 부호의 복호가 불가능하다.
도 8은 기존에 사용되던 추측 기법을 MP 복호에 적용한 경우의 예를 나타낸 것으로, 먼저 Uv에서 v1, v4를 추측 노드로 설정한 뒤, 각각의 값을 '0'으로 설정한 경우(91)이다.
'0'으로 설정한 v1, v4와 체크 노드 c1, c2, c4를 이용하여 나머지 v2, v3, v5의 값을 알 수 있게 되는데, 추측 값의 정확성을 확인하기 위해 사용하지 않은 체크 노드를 만족하는지 확인한다. c3는 만족하지만 c5는 만족하지 않음을 알 수 있고, v1=0, v4=0은 잘못된 추측으로 간주할 수 있다.
그렇다면, v1=0, v4=0이 아닌 다른 값으로 추측해야 하므로 이번에는 v1=1, v4=0으로 설정한다(92).
Uv의 나머지 노드의 값을 구한 뒤, 앞서(91)와 마찬가지로 체크 노드를 확인한다. c3가 만족하지 않음을 알 수 있고, v1=1, v4=0은 잘못된 추측으로 간주한다.
이번에는 v1=1, v4=1으로 설정한 뒤, 체크 노드를 확인한 것이다(93). c3, c5, c6, c7에 대해 모두 만족하기 때문에 v1=1, v4=1의 추측 값이 맞으며, 이로 구해진 v2=0, v3=1, v5=0은 랩터 부호의 복호 결과로 나타낼 수 있다.
하지만, 이와 같은 방법은 추측 노드 수가 많아지거나, 확인해야 할 체크 노드 수가 많아지면 연산량이 지수적으로 증가하게 되므로 실질적으로 랩터 부호를 이용하는 시스템에는 적용이 어렵게 된다.
도 9는 본 발명의 실시 예를 통해 도 7의 변수 노드를 복원하는 추측 방식의 예를 보인 것이다.
먼저, 추측 노드 v1, v4를 이용하여 Uv를 2개의 그룹으로 묶은 것을 나타내며, 각 그룹에서 추측 노드가 '0'또는 '1'의 값을 갖는 서브 그룹으로 나뉜 것을 나타낸다. 추측 노드를 제외한 각 서브 그룹 내의 변수 노드 값은 체크 노드를 이용하여 구할 수 있다.
먼저, Uv를 모두 서브 그룹으로 구분한 뒤, 먼저 G10, G11에 대한 체크 노드를 확인한다(110). c5를 만족하지 않는 그룹은 G10이기 때문에 G11을 선택한다.
그리고, 앞에서 구한 G11과 두 번째 그룹의 서브 그룹 G20, G21, 이에 대한 체크 노드 c6을 확인한다(120). c6에서는 G20이 만족하지 않는 것을 알 수 있기 때문에 G21을 선택한다. 따라서, 본 발명을 이용한 추측의 결과는 선택된 서브 그룹내의 변수 노드 값이 되며, 도 8의 결과와 동일함을 알 수 있다.
결국, 연산이 훨씬 간편하면서도 동일한 성능을 제공함을 알 수 있으며, 이는 추측 노드의 수가 증가한다 하더라도 연산량이 지수적으로 증가하지는 않게 된다.
도 10은 기존의 MP 복호 방법의 성능과 본 발명의 실시예에 따른 복호화의 성능을 비교한 그림이다. D와 gmax에 따라 성능 향상의 정도가 다르며, D=|Uv|, gmax=3일 때 성능 향상이 가장 큰 것을 알 수 있다. 한편, D가 1이고 gmax=6인 경우 성능이 가장 낮은 것을 알 수 있다. 하지만, 이러한 경우라 하더라도 기존의 MP 복호화 방식에 비해서는 비약적인 성능 향상을 나타내고 있다. 즉, 손실율(erasure rate)이 0.27일 때 가장 성능이 낮은 본 발명의 실시예의 적용 예조차 기존 방식보다 프레임 에러율이 10배 정도 낮은 것을 알 수 있다.
도 11은 MP 복호의 연산량을 1로 했을때, D와 gmax에 따른 연산량을 나타낸다. D=|Uv|, gmax=3 일 때, BEC 채널의 손실율이 증가할수록 연산량이 급격히 증가하고, D가 1이고 gmax=6인 경우 연산량 증가가 가장 작음을 알 수 있다. 즉, 도 10의 성능 그래프와는 반대의 결과를 나타내고 있어 성능 향상이 증가할수록 연산량이 증가하는 관계가 있음을 알 수 있다.
따라서, D 값과 gmax를 설정함에 따라 성능과 연산량을 조절할 수 있으며, 어떠한 경우라 할지라도 기존의 MP 복호화 방식에 비해서는 훨씬 뛰어난 성능을 제공하게 되므로, 시스템과 BEC의 상태 등에 따라 적절한 설계가 가능하게 된다.
이상에서는 본 발명에 따른 바람직한 실시예들에 대하여 도시하고 또한 설명하였다. 그러나 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.
도 1은 랩터 부호의 바이퍼타이트(bipartite) 그래프.
도 2는 LDPC 부호의 바이퍼타이트(bipartite) 그래프.
도 3은 랩터 부호화 LDPC 부호의 MP 복호 성능을 나태난 그래프.
도 4는 본 발명의 일 실시예에 따른 순서도.
도 5 및 도 6은 본 발명의 일 실시예에 따른 세부 순서도.
도 7은 랩터 부호 MP 복호 실패 예의 바이퍼타이트(bipartite) 그래프.
도 8은 기존 추측 방식을 적용 예.
도 9는 본 발명의 실시예에 따른 추측 방식의 적용 예.
도 10은 본 발명의 실시예들과 기존 방식 사이의 성능 그래프.
도 11은 본 발명의 실시예들 간의 연산량 증가를 보인 그래프.

Claims (18)

  1. 랩터 부호를 메세지 패싱 방식으로 복호화한 후 복원되지 않은 변수 노드에 대해 추측 노드에 대응하는 변수 노드들 단위로 그룹화하는 그룹화 단계와;
    상기 각 그룹에 대한 추측 노드의 값에 따라 서브 그룹을 구분하는 서브 그룹화 단계와;
    상기 서브 그룹들 중 체크 노드를 만족하는 서브 그룹들을 선택하는 과정을 상기 그룹화 단계에서 얻어진 모든 그룹에 대해 반복하여 각 그룹의 변수 노드 값을 복호 결과로 간주하는 서브 그룹 선택 단계를 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  2. 청구항 1에 있어서, 상기 그룹화 단계는 상기 복원되지 않은 변수 노드에 대해 해당 변수 노드를 알 수 있게 하는 추측 노드를 선택하여 이로 인해 알게 된 변수 노드들을 중복되지 않게 그룹화하는 과정을 상기 모든 변수 노드들이 그룹에 포함될 때까지 실시하는 단계를 더 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  3. 청구항 2에 있어서, 상기 그룹의 수가 기 설정된 수를 초과할 경우 복호화 실패로 간주하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  4. 청구항 1에 있어서, 상기 서브 그룹 선택 단계는 상기 그룹화 단계의 그룹 중 그룹에 속한 변수 노드의 수가 가장 많은 그룹부터 해당 그룹의 서브 그룹 중 체크 노드를 만족하는 서브 그룹을 선택하는 과정을 그룹의 크기를 기준으로 n 번째 그룹까지 반복한 후, 나머지 그룹은 크기에 무관하게 체크 노드를 만족하는 서브 그룹을 선택하는 단계를 더 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  5. 청구항 4에 있어서, 상기 그룹의 크기는 추측 노드로 알 수 있는 변수 노드 확인을 기 설정된 D 번째 변수 노드까지 반복하여 그 중 크기가 가장 큰 그룹을 선택하고, 해당 그룹을 제외한 변수 노드들 중에서 다음번 그룹을 선택하는 과정을 실시하는 단계를 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  6. 청구항 5에 있어서, 상기 기 설정된 값 D와 상기 그룹의 전체 숫자에 대한 제한 값을 설정하여 성능과 연산량의 균형을 조절하는 것을 특징으로 하는 랩터 부 호 사용 시스템을 위한 복호화 방법.
  7. 청구항 4에 있어서, 이전 그룹에 대해 선택한 서브 그룹에 따른 변수 노드의 값을 후속하는 그룹의 서브 그룹 선택을 위한 체크 노드 확인 시 이용하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  8. 청구항 4에 있어서, 상기 그룹 크기에 따른 순서를 결정하는 그룹의 수 n은 2이며 그 외의 그룹은 순서에 무관하게 서브 그룹 선택 과정이 수행되는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  9. 청구항 1에 있어서, 상기 서브 그룹 선택 단계에서 특정 그룹에 대한 모든 서브 그룹이 체크 노드를 만족하거나, 체크 노드를 만족하지 않는 서브 그룹이 나타나지 않는 경우 복호 실패로 간주하는 단계를 더 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  10. 청구항 1에 있어서, 상기 서브 그룹 선택 단계에서 모든 그룹에 대한 서브 그룹 선택이 완료된 후 서브 그룹에 속한 변수 노드들의 합집합이 그룹 선택 단계에서의 복원되지 않은 최초 변수 노드의 수와 같지 않을 경우 복호화 실패로 간주하는 단계를 더 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  11. 랩터 부호를 복호화한 후 복원되지 않은 변수 노드들의 세트를 Uv라 하고, Uv에 속한 변수 노드를 하나의 추측 노드로 많이 알 수 있게 하는 순서로 상기 추측 노드에 의해 알 수 있는 변수 노드를 그룹화하는 과정을 상기 Uv에 속한 변수 노드 모두가 중복되지 않으면서 모두 그룹화될 때까지 반복하는 그룹화 단계와;
    상기 그룹화 단계를 통해 얻어진 그룹에 대해 그 순서에 맞추어 해당 그룹에 대응하는 추측 노드가 0일 때와 1일 때 해당 그룹이 체크 노드를 만족하는 지를 확인하여 만족하는 추측 노드 값을 확정하고, 확정된 값을 후속 그룹의 체크 노드를 만족 하는 추측 노드 값 확인 시 이용하는 과정을 모든 그룹에 대해 실시하는 추측 단계와;
    상기 추측 단계를 모든 그룹에 대해 실시하여 최종 선택된 각 변수 노드들의 값을 복호 결과로 간주하는 변수 노드 복원 단계를 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  12. 청구항 11에 있어서, 상기 추측 단계에서 체크 노드에 대한 만족 여부는 해당 그룹에 연결된 모든 체크 노드를 확인하여 이들 중 적어도 하나의 체크 노드를 만족하는 추측 노드 값을 확인하며, 모든 체크 노드에 대해서 체크 노드를 만족하는 추측 노드 값이 없을 경우 복호 실패로 간주하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  13. 청구항 12에 있어서, 상기 그룹화 단계에서, 상기 변수 노드의 숫자에 따른 선택 그룹의 순서 확인은 n 번째까지만 실시하고 그 외에는 순서 확인 없이 그룹화를 실시하는 단계를 더 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  14. 청구항 13에 있어서, 상기 n은 2인 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  15. 청구항 11에 있어서, 상기 그룹화 단계는 기 설정된 제한 숫자(gmax) 이상의 그룹이 생성될 경우 복호 실패로 간주하는 단계를 더 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  16. 청구항 15에 있어서, 상기 추측 노드에 의해 알 수 있게 된 변수 노드의 수를 확인하는 과정은 기 설정된 D 번째 변수 노드까지만 반복하는 것으로 제한하는 단계를 더 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  17. 청구항 16에 있어서, 상기 기 설정된 그룹의 제한 숫자(gmax)와 기 설정된 변수 노드 확인 제한 숫자(D)에 따라 성능과 연산량이 조절되는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
  18. 청구항 11에 있어서, 상기 추측 단계는 각 그룹에 대한 추측 노드 값을 0과 1로 하면서 해당 그룹이 연결된 모든 체크 노드의 체크 노드를 확인하여 어떠한 체크 노드도 만족시키지 못할 경우 복호 실패로 간주하는 단계를 더 포함하는 것을 특징으로 하는 랩터 부호 사용 시스템을 위한 복호화 방법.
KR1020090094843A 2009-10-06 2009-10-06 랩터 부호 사용 시스템을 위한 복호화 방법 KR101154818B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090094843A KR101154818B1 (ko) 2009-10-06 2009-10-06 랩터 부호 사용 시스템을 위한 복호화 방법
US12/580,544 US20110083055A1 (en) 2009-10-06 2009-10-16 Decoding method for raptor codes using system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090094843A KR101154818B1 (ko) 2009-10-06 2009-10-06 랩터 부호 사용 시스템을 위한 복호화 방법

Publications (2)

Publication Number Publication Date
KR20110037410A KR20110037410A (ko) 2011-04-13
KR101154818B1 true KR101154818B1 (ko) 2012-06-08

Family

ID=43824099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090094843A KR101154818B1 (ko) 2009-10-06 2009-10-06 랩터 부호 사용 시스템을 위한 복호화 방법

Country Status (2)

Country Link
US (1) US20110083055A1 (ko)
KR (1) KR101154818B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102324998B (zh) * 2011-05-11 2013-09-04 浙江大学 适合于加性白高斯噪声信道的中短码长的Raptor Codes编译码方法
KR101258958B1 (ko) * 2011-08-23 2013-04-29 고려대학교 산학협력단 랩터 부호를 이용하는 부호화 장치 및 부호화 방법
KR101795484B1 (ko) * 2013-04-01 2017-11-10 삼성전자주식회사 무선 통신 시스템에서 파운틴 부호를 이용한 데이터 송신 장치 및 방법
TWI519143B (zh) 2013-12-30 2016-01-21 財團法人工業技術研究院 通訊系統、其方法與其接收端
CN105846958B (zh) * 2016-04-01 2019-04-23 哈尔滨工业大学深圳研究生院 面向深空通信的分布式系统Raptor码传输方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006191246A (ja) 2005-01-05 2006-07-20 Nec Corp 復号装置及びその方法並びにプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6486803B1 (en) * 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
ES2445116T3 (es) * 2002-06-11 2014-02-28 Digital Fountain, Inc. Descodificación de códigos de reacción en cadena por inactivación
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006191246A (ja) 2005-01-05 2006-07-20 Nec Corp 復号装置及びその方法並びにプログラム

Also Published As

Publication number Publication date
KR20110037410A (ko) 2011-04-13
US20110083055A1 (en) 2011-04-07

Similar Documents

Publication Publication Date Title
US10686473B2 (en) Encoding method and apparatus using CRC code and polar code
Bidokhti et al. Benefits of cache assignment on degraded broadcast channels
CN100499378C (zh) 采用可变范围均匀量化的低密度奇偶校验码译码方法
CN107395319B (zh) 基于打孔的码率兼容极化码编码方法及系统
KR101154818B1 (ko) 랩터 부호 사용 시스템을 위한 복호화 방법
CN109936377B (zh) 一种分段crc辅助的极化码编码和译码方法
EP2173035A1 (en) Encoding device and decoding device
US20070133691A1 (en) Method and apparatus for layered rateless coding
CN105991227B (zh) 数据编码方法及装置
CN102324998B (zh) 适合于加性白高斯噪声信道的中短码长的Raptor Codes编译码方法
CN107565984B (zh) 一种预编码为非规则码的Raptor码优化编码方法
KR20050100152A (ko) 순차적 복호를 이용한 저밀도 패리티 검사 부호의 복호장치 및 그 방법
JP2012114929A (ja) ファイルダウンロードおよびストリーミングのシステム
JP5809272B2 (ja) 幾つかのマッピング行列間に符号語を分配する多入力多出力チャネルにおける送信及び受信のための方法及びデバイス、並びに対応するコンピュータプログラム
CN110326342A (zh) 一种用于指定编码子信道的有序序列的装置和方法
CN107809303B (zh) 一种基于awgn子信道优化的极化码译码方法
Chen et al. Distributing CRC bits to aid polar decoding
KR20110111856A (ko) 통신 시스템에서의 채널 부호화 장치 및 방법
US7882415B2 (en) 3-Stripes gilbert low density parity-check codes
CN112118014B (zh) 用于进行重组解码的低密度奇偶校验解码装置及相关方法
KR102111678B1 (ko) 인터리버를 이용한 극 부호 장치, 극 부호의 반복 복호 장치 및 이를 이용한 부호 방법과 복호 방법
KR20150074887A (ko) 분산 lt 부호의 차수 분포 최적화 방법
WO2018127198A1 (zh) 数据处理方法和装置
CN109728900B (zh) 离散变量量子密钥分发中ldpc纠错码率自适应方法及系统
CN109905130B (zh) 一种极化码编码、译码方法、装置及设备

Legal Events

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

Payment date: 20160425

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee