KR102639951B1 - 데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체 - Google Patents

데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체 Download PDF

Info

Publication number
KR102639951B1
KR102639951B1 KR1020227000258A KR20227000258A KR102639951B1 KR 102639951 B1 KR102639951 B1 KR 102639951B1 KR 1020227000258 A KR1020227000258 A KR 1020227000258A KR 20227000258 A KR20227000258 A KR 20227000258A KR 102639951 B1 KR102639951 B1 KR 102639951B1
Authority
KR
South Korea
Prior art keywords
decoding
data
independent
subtrees
polar code
Prior art date
Application number
KR1020227000258A
Other languages
English (en)
Other versions
KR20220016975A (ko
Inventor
광밍 스
지아롱 딩
Original Assignee
세인칩스 테크놀로지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세인칩스 테크놀로지 컴퍼니 리미티드 filed Critical 세인칩스 테크놀로지 컴퍼니 리미티드
Publication of KR20220016975A publication Critical patent/KR20220016975A/ko
Application granted granted Critical
Publication of KR102639951B1 publication Critical patent/KR102639951B1/ko

Links

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/13Linear 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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • 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/65Purpose and implementation aspects
    • H03M13/6572Implementations using a tree structure, e.g. implementations in which the complexity is reduced by a tree structure from O(n) to O (log(n))
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2948Iterative decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 출원은 데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체에 관한 것이며, 상기 데이터 디코딩 방법은, 디코딩할 Polar 코드 데이터를 획득한 후, 상기 디코딩할 Polar 코드 데이터를 미리 설정된 두개 이상의 독립된 U값 계산 모듈로 발송하는 단계(101), -상기 U값 계산 모듈은 G노드를 다음 반복 시에 필요한 U값을 계산하도록 설정됨-; 상기 두개 이상의 독립된 U값 계산 모듈을 제어하여 상기 디코딩할 Polar 코드 데이터를 처리하여 두개 이상 그룹의 새로운 디코딩 데이터를 얻는 단계(102); 상기 두개 이상 그룹의 새로운 디코딩 데이터를 처리하여 새로운 디코딩할 Polar 코드 데이터를 얻는 단계(103);를 포함한다.

Description

데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체
본 출원은 2019년 9월 30일자로 중국에 출원한 특허 출원번호 제201910945166.3호에 대한 우선권을 주장하고, 그 모든 내용은 참조로 본 출원에 포함된다.
본 출원은 정보처리 분야에 관한 것이며, 예를 들어 데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체에 관한 것이다.
채널 인코딩(channel encoding)은 무선 통신 시스템에서 중요한 구성 요소로서, 수신단은 채널 인코딩을 통해 전송 과정에 발생한 오류 정보를 보정할 수 있으므로 통신하는 양측의 통신 품질을 보장할 수 있다. Arikan가 제기한 폴라(Polar) 코드는 채널 인코딩의 한 유형으로서, 이론상 유일하게 샤논 한계(Shannon limit)에 도달할 수 있는 채널 인코딩 방법이다. 폴라 코드의 낮은 복잡도 및 고성능은 5세대(the 5th Generation; 5G) 통신 시스템에서 채널 인코딩을 제어하는 요구에 적합하다. 직렬 소거 디코딩 알고리즘(serial cancellation decoding algorithm)은 이미 주된 Polar 디코딩 알고리즘이 되었다. 대다수의 Polar 디코딩 솔루션은 직렬 소거 디코딩 알고리즘에 기초하여 발전해왔다.
Polar 디코딩 솔루션에서, 계산 자원을 절약하기 위하여, 일반적으로 처리 대상 데이터를 세그먼트화 하는 방식으로 Polar 디코딩을 하며, 데이터의 세그먼트화 작업은 디코딩 지연을 과도하게 발생시킨다. 따라서 Polar 디코딩의 직렬 소거 알고리즘은 지연이 길고 과정 데이터를 저장하기 위한 소모가 큰 문제가 존재한다.
본 출원의 실시예는 데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체를 제공한다.
본 출원의 실시예는 디코딩할 Polar 코드 데이터를 획득한 후, 상기 디코딩할 Polar 코드 데이터를 미리 설정된 두개 이상의 독립된 U값 계산 모듈로 발송하는 단계, -상기 U값 계산 모듈은 G노드의 다음 반복 시에 필요한 U값을 계산하도록 설정됨-;
상기 두개 이상의 독립된 U값 계산 모듈을 제어하여 상기 디코딩할 Polar 코드 데이터를 처리하여 두개 이상 그룹의 새로운 디코딩 데이터를 얻는 단계;
상기 두개 이상 그룹의 새로운 디코딩 데이터를 처리하여 새로운 디코딩할 Polar 코드 데이터를 얻는 단계; 를 포함하는 데이터 디코딩 방법을 제공한다.
본 출원의 실시예는 컴퓨터 프로그램이 저장되어 있는 메모리; 상기 데이터 디코딩 방법을 구현하도록 상기 메모리 중의 컴퓨터 프로그램을 호출하는 프로세서;를 포함하는 데이터 디코딩 장치를 더 제공한다.
본 출원의 실시예는 하나 또는 복수의 프로그램이 저장된 컴퓨터 저장 매체를 제공하며, 상기 하나 또는 복수의 프로그램은 상기 데이터 디코딩 방법을 구현하도록 하나 또는 복수의 프로세서에 의해 실행될 수 있다.
도 1은 본 출원의 실시예에 제공된 데이터 디코딩 방법의 플로우 차트이다.
도 2는 본 출원의 실시예에 제공된 코드 길이가 32bit인 Polar 코드의 코드 트리의 분할 개략도이다.
도 3은 본 출원의 실시예에 제공된 코드 길이(N)가 4인 디코딩 구조도이다.
도 4는 본 출원의 실시예에 제공된 디코딩 방법의 플로우 차트이다.
도 5는 본 출원의 실시예에 제공된 U값 계산 모듈의 처리 프로세스의 개략도이다.
도 6은 본 출원의 실시예에 제공된 데이터 디코딩 장치의 개략도이다.
이하, 도면을 결합하여 본 출원의 실시예를 설명한다.
도 1은 본 출원의 실시예에 제공된 데이터 디코딩 방법의 플로우 차트이다. 도 1에 도시된 방법은 다음 단계를 포함한다.
단계101: 디코딩할 Polar 코드 데이터를 획득한 후, 상기 Polar 코드 데이터를 미리 설정된 두개 이상의 독립된 U값 계산 모듈로 발송하고, 상기 U값 계산 모듈은 G노드를 다음 반복 시에 필요한 U값을 계산하도록 설정된다.
일 예시적 실시예에서, 성능 및 자원의 절충을 구현하기 위하여, U값 계산을 두개 이상의 독립된 U값 계산 모듈에 분포하고, 각 U_CALC 모듈에 몇 개 비트의 디코딩을 포함하여 U값 계산해야 할지는 하드웨어 자원 및 분포 상황에 따라 구분된다.
단계102: 상기 두개 이상의 독립된 U값 계산 모듈을 제어하여 상기 디코딩할 Polar 코드 데이터를 처리하여 두개 이상 그룹의 새로운 디코딩 데이터를 얻는다.
일 예시적 실시예에서, 상기 두개 이상의 독립된 U값 계산 모듈을 이용하여 상기 디코딩할 Polar 코드 데이터를 처리하여, 두개 이상 그룹의 새로운 디코딩 데이터를 얻음으로써 디코딩 데이터에 대한 병행 처리를 통해 디코딩 효율을 높인다.
단계103: 상기 두개 이상 그룹의 새로운 디코딩 데이터를 처리하여 새로운 디코딩할 Polar 코드 데이터를 얻는다.
본 출원의 실시예에 제공된 방법은, 디코딩할 Polar 코드 데이터를 획득한 후, 상기 Polar 코드 데이터를 미리 설정된 두개 이상의 독립된 U값 계산 모듈로 발송하고, 상기 두개 이상의 독립된 U값 계산 모듈을 제어하여 상기 디코딩할 Polar 코드 데이터를 처리하여 두개 이상 그룹의 새로운 디코딩 데이터를 얻고, 상기 두개 이상 그룹의 새로운 디코딩 데이터를 처리하여 새로운 디코딩할 Polar 코드 데이터를 얻음으로써 디코딩 데이터에 대한 병행 처리를 통해 디코딩 효율을 높인다.
일 예시적 실시예에서, 상기 Polar 코드 데이터를 미리 설정된 두개 이상의 독립된 U값 계산 모듈로 발송하는 단계 이전에, 상기 방법은,
상기 디코딩할 Polar 코드 데이터에 대응되는 Polar 코드의 코드 트리를 얻는 단계; 상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하는 단계를 포함한다. 여기서, s는 2보다 크거나 같은 정수이며, 상기 s개 독립된 디코딩 서브트리는 미리 설정된 s개 독립된 U값 계산 모듈로 발송된다.
디코딩할 데이터를 획득한 후, 상기 디코딩할 데이터에 대응되는 Polar 코드의 코드 트리를 확득하고, 상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하며, 상기 s개 독립된 디코딩 서브트리를 이용하여 G노드의 다음 반복 시에 필요한 U값을 계산하며, 디코딩 과정에서 세그먼트가 서로 독립적으로 계산되고 서로 의존하지 않으므로 처리 효율을 향상한다.
일 예시적 실시예에서, Polar 코드의 코드 트리로 디코딩할 데이터를 분할하므로 분할을 통해 얻은 디코딩 서브트리의 데이터가 독립적으로 후속 처리되도록 보장한다.
일 예시적 실시예에서, 상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하는 과정은,
상기 Polar 코드의 코드 트리에 대한 데이터 추출 간격(s)를 획득하는 단계; s 비트의 데이터 추출 간격, Z형의 데이터 추출 순서에 의해 상기 Polar 코드의 코드 트리에 대한 데이터 추출을 진행하여 s개 독립된 디코딩 서브트리를 얻는 단계를 포함한다.
일 예시적 실시예에서, s=2k, 여기서, k=1,2,3……이다.
도 2는 본 출원의 실시예에 제공된 32비트의 코드 길이인 Polar 코드의 코드 트리의 분할 개략도이다. 도 2에 도시된 바와 같이, 독립된 디코딩 서브트리를 구축하는 과정은 다음과 같다.
4비트 간격으로 데이터를 추출하고 4개의 디코딩 서브트리를 구축하며; 여기서,
제2 층과 제3 층 사이의 얇은 파선으로 된 “Z”는 4비트 간격으로 추출되는 제1 급을 표시하고; 제3 층과 제4 층 사이의 2점-3파선으로 된 “Z”는 4비트 간격으로 추출되는 제2 급을 표시하고; 제4 층과 제5 층 사이의 대시 점선으로 된 “Z”는 4비트 간격으로 추출되는 제3 급을 표시하며, 검정색 실선부분을 제거하면, 점선은 하나의 완전한 서브 코딩 이진 트리이며, 코딩 결과 및 그 계산 과정은 4비트 간격으로 추출된 데이터와 만 관련이 있다. 마찬가지로, 4비트간격으로 추출된 기타 3개 그룹의 코딩 트리도 독립적으로 계산가능한 완전한 서브 코딩 이진 트리이다. 따라서 상기 32비트의 코드 길이인 Polar 코드는 8비트의 코드 길이인 4개 독립된 Polar 코드로 분해할 수 있으며, 8비트의 코드 길이인 Polar 코덱을 다중화(multiplexed)하여 계산을 완료한다.
일 예시적 실시예에서, 상기 s개 독립된 디코딩 서브트리를 이용하여 G노드의 다음 반복 시에 필요한 U값을 계산한다.
일 예시적 실시예에서, 4bit-시퀸스 연속 삭제(Successive Cancellation List; SCL) 디코딩 알고리즘을 이용하여 디코딩 트리를 4개의 디코딩 서브트리로 분할하는 것을 예로 들어 설명한다. 도 2는 32비트의 코드 길이인 코딩 어레이에 대하여 직렬 Polar 코드 디코딩하는 것으로, 제5 열은 입력 데이터가 Z모양을 따라 계산된 전 4bit의 디코딩 결과이고, 취득한 4bit 디코딩 결과에 따라 다음 4bit 디코딩 과정에 필요한 U값을 계산하여, 다음 4bit의 디코딩을 완성한다.
이하, 본 출원의 실시예에 제공된 방법을 설명한다.
일 예시적 실시예에서, 상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하는 과정은, 다음 단계를 포함한다.
단계1: 상기 Polar 코드의 코드 트리에 대한 데이터 추출 간격(si)를 획득한다.
단계2: Z현의 데이터 추출 순서, si비트의 데이터 추출 간격에 의해, 상기 Polar 코드의 코드 트리에 대하여 데이터 추출을 진행하여 si개 독립된 디코딩 서브트리를 얻는다.
단계3: 얻는 독립적인 디코딩 서브트리의 개수가 s개에 도달했는지 여부를 판단하여 판단결과를 얻는다.
단계4: 판단결과가 s개에 미달이면, si개 독립된 디코딩 서브트리를 분할하고, I값을 i+1로 새로 업데이트하여 디코딩 서브트리의 총 개수가 s개에 도달할 때까지 단계1 내지 단계4를 반복하여 수행하며; 여기서, i는 양의 정수이다.
일 예시적 실시예에서, 코드 길이가 1024, 2048 또는 4096 등과 같이 긴 경우, 연산 속도 및 자원 소모의 절충을 이루기 위하여, F노드 계산 및 G노드 계산 자원에 대한 설계요구를 만족할 때까지 4비트 간격으로 추출한 후 8비트 또는 4비트 간격으로 추출하도록 실행할 수 있다.
일 예시적 실시예에서, 상기 두개 이상 독립된 U값 계산 모듈을 제어하여 상기 디코딩할 Polar 코드 데이터를 처리하여, 두개 이상 그룹의 새로운 디코딩 데이터를 얻는 단계는,
상기 s개 독립된 디코딩 서브트리를 각각 s개 독립된 U값 계산 모듈로 발송하는 단계; 상기 s개 독립된 U값 계산 모듈을 제어하여 상기 s개 독립된 디코딩 서브트리를 일일이 대응 처리하여 s개 그룹의 새로운 디코딩 데이터를 얻는 단계를 포함한다.
완전히 독립된 서브 디코딩을 구현하기 위하여, U값 계산 모듈도 본 실시예의 상기 방식을 이용하여 복수의 서브 모듈로 나누어서 계산한다. 본 실시예와 같이 입력 데이터를 4비트 간격으로 데이터를 추출하여 4개 독립된 서브 디코더(sub decoder)로 나누면, 상응되게 4개의 U_CALC 서브 모듈을 이용해야 한다.
일 예시적 실시예에서, 상기 s개 독립된 디코딩 서브트리를 이용하여, G노드의 다음 반복 시에 필요한 U값을 계산하는 단계는,
미리 획득한 디코딩 데이터의 분할 정책에 따라, 미리 획득한 디코딩 데이터를 s개 그룹의 디코딩 데이터로 분할하는 단계; 상기 s개 그룹의 디코딩 데이터를 이용하여 상기 s개 독립된 디코딩 서브트리를 처리하여 상기 s개 독립된 디코딩 서브트리에 대응되는 s개 그룹의 새로운 디코딩 데이터를 얻고, 상기 s개 그룹의 새로 생성된 디코딩 데이터를 처리하여 완전한 새로운 디코딩 데이터를 얻는 단계를 포함한다. 여기서, 디코딩 데이터의 분할 정책은 상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하는 분할 정책과 동일한다.
각 U값 계산 모듈(U_CALC)은 4비트 간격으로 매번 반복의 디코딩 값을 추출한다. 예를 들어, 본 실시예의 상기 4bit-SCL 디코딩 알고리즘이 4비트 디코딩 값 dec[3:0]를 매번 반복하여 추출하게 되면, dec[0]를 U_CALC_0로, dec[1]를 U_CALC_1로, dec[2]를 U_CALC_2로, dec[3]를 U_CALC_3로 보낸다.
일 예시적 실시예에서, 상기 두개 이상 그룹의 새로운 디코딩 데이터를 처리하여 새로운 디코딩할 Polar 코드 데이터를 얻는 단계는,
상기 디코딩 데이터를 s개 그룹의 디코딩 데이터로 분할하는 동작의 역 동작을 수행하여, s개 그룹의 새로 생성된 디코딩 데이터를 완전한 새로운 디코딩 데이터로 복원하는 단계를 포함한다.
모든 비트의 디코딩이 완료된 후, 디코딩 데이터를 판독하여 서브 코딩 트리 구조 규칙에 따라 디코딩 시퀀스를 역방향으로 생성한다.
이하, 본 출원의 실시예에 제공된 방법에 대해 설명한다.
관련된 기술에 존재하는 Polar 디코딩 과정에 자원소모가 크고, 디코딩 지연 시간이 긴 문제 및 결함을 극복하기 위하여, 복잡도가 낮고 독립적으로 세그먼트화 하는 Polar 코드의 디코딩 솔루션을 제공하며 상기 솔루션은 G노드 계산에 필요한 U값을 얻을 수 있으며, 독립적이고 신속하게 계산할 수 있다.
본 출원의 실시예는 독립적으로 세그먼트화 하는 Polar 디코딩 방법 및 장치를 제공하였으며, 이는 디코딩 과정에 복수의 세그먼트 들이 독립적으로 계산되고, 서로 의존하지 않도록 한다.
도 3은 본 출원의 실시예에 제공된 코드 길이(N)가 4인 디코딩 구조도이다. 도 3에 도시된 바와 같이, 본 출원은 도 3에 도시된 디코딩 어레이는 N 포인트 코딩 트리이다. i(0), i(1), i(2), i(3)는 인코딩 전의 입력 값이고, enc(0'),enc(1'),enc(2'),enc(3')는 인코딩 후의 결과이다. 매번마다 1 포인트를 신규 추가하고, idx로 계산 급수 즉, idx=0 포인트0을 계산하고, idx=1이면 포인터 1를 새로 추가하고, idx=2이면 포인터 2를 새로 추가하고, idx=3이면 포인터 3를 새로 추가하는 것을 표시한다고 가정하면, 복수 포인트의 인코딩 인에이블을 얻게 된다.
en(0')=1
en(1')=idx[0]
en(2')=idx[1]
en(3')=idx[1]&idx[0]
여기서, idx[i](i=0,...,log2(idx)-1)는 idx의 이진수 표현 형식의 제i 번째 비트이다.
상기 식에 의해 각 포인트의 인코딩 공식을 얻을 수 있다.
enc(j')=en(j')&i(j)+enc(j'),j=0,...,log2(N)-1
상기 방법을 확장하면, 인코딩 어레이에 벡터 A=[i(0),i(1)...i(N)] T을 입력하고 인코딩 후 출력된 U값이 열벡터 B=[enc(0),enc(1)...enc(N)]T이고, N이 Polar 코드의 코드 길이 N=2n-1라고 가정하면; 이하 계산식 (1)로 표현된다.
BT=MAT……(1)
여기서, M는 인코딩 인에이블 행렬이고, 그 값은 계산식(2)에 의해 계산된다.
enc(x,idx)=idx[k-1]x[k-1]&idx[k-2]x[k-2]&...&idx[1]x[1]&idx[0]x[0]......(2)
여기서,idx=idx[k-1]*2k-1+idx[k-2]*2k-2+…+idx[1]*2+idx[0]; x=x[k-1]*2k-1+x[k-2]*2k-2+…+x[1]*2+x[0];k=log2(N).
각각의 고정 포인터마다 모두 idx로 유일한 입력 변수로 할 수 있고, 매번에 하나의 포인터만 증가하여, 모듈로-2 덧셈하여 U값의 계산을 수행할 수 있다.
상기 분석에 의하면, 어떠한 Polar 디코딩 이라도 본 출원에 따른 방법을 이용하여 U값을 계산할 수 있으며 세그먼트화 하여 독립적으로 계산할 수 있음을 확인할 수 있다. 예를 들어, Polar 디코딩을 4개의 서브 디코더로 나누고, U값 계산은 동일한 방식으로 4개의 U값 계산 서브 모듈로 나누고, 각 서브 모듈의 계산 공식은 각각 B[4i], B[4i-1], B[4i-2], B[4i-3], i=1,2...N/4 이다.
본 출원의 실시예에 제공된 방법은 다음 모듈을 통해 구현할 수 있다.
F_CALC 및 G_CALC 모듈: 디코딩 과정에서 로그 가능성비(Log-Likelihood Ratio; LLR) 계산, F 노드 계산 및 G노드 계산을 수행하도록 구성된다.
마이크로 컨트롤러 유닛(Microcontroller Unit, MCU): 디코딩 경로 확장 기능을 수행한다.
디코드 결정(Decode decision): 디코딩 경로 선별, 디코딩 판정 출력 기능을 수행한다.
U_CALC: Decode decision 출력 값에 의해 G노드 계산에 필요한 U값을 산출하여 F_CALC 및 G_CALC 모듈로 보내어 다음 반복을 진행한다.
디코드 출력(Decode output): 모든 비트에 대한 디코딩 작업이 끝난 후 U_CALC 모듈로부터 디코딩 데이터를 판독하여 서브 디코딩 트리 구조 규칙에 따라 N 비트 디코딩 시퀀스를 생성한다.
상기 모듈에 의해, 본 출원의 실시예에 따른 방법은 다음 실시 단계를 포함한다.
단계01: Polar 디코딩 트리에 대하여 LLR 계산, 경로 확장, 디코딩 판정, 현재 반복 디코딩 값을 출력한다.
단계02: 서브 코딩 트리를 구성한다. Polar 코드의 코드 길이가 N인 경우, Polar 코드의 코드 트리의 특성에 따라 코딩될 데이터를 s개의 데이터 간격으로 추출하는 방식으로 s개의 독립적인 서브트리로 나누며, 여기서, s=2k, k=0,1,2...이다.
단계03: 현재 이미 디코딩하여 m 비트를 출력한 후, 단계02의 추출방식에 의해 m 비트 디코딩 값을 s개 그룹으로 나누어서 s개 독립된 U값 계산 모듈로 각각 입력한다.
단계04: s개 독립된 U값 계산 모듈은 입력된 디코딩 값에 의해 다음 반복 G노드 계산에 필요한 U값을 계산한다.
단계05: 모든 비트에 대한 디코딩이 완료될 때까지 단계01 내지 단계04을 반복한다.
단계06: 단계02의 추출방식에 따라 역 동작을 진행하고 인터리빙(interleaving)하여 N 비트 디코딩 시퀀스를 생성한다.
도 4는 본 출원의 실시예에 제공된 디코딩 방법의 플로우 차트이다. 도 4에 도시된 바와 같이, F_CALC 및 G_CALC 모듈, MCU모듈, 디코드 결정 및 U_CALC은 도에서 표시된 화살표에 따라 모든 비트에 대한 디코딩을 완료하기까지 순환 반복적 디코딩 동작을 수행한다. 매번 반복 과정에 m 비트 디코딩을 완료한다고 가정하면, 전체 반복 회수는 N/m이고, 여기서, m는 양의 정수이다.
도 5는 본 출원의 실시예에 제공된 U값 계산 모듈의 처리 프로세스의 개략도이다. 도 5에 도시된 바와 같이, 상기 계산식(1)을 이용하여 U값 계산 과정을 수행한다. 매번 반복적 디코딩이 시작될 때 상기 계산식(2)를 갱신하여 복수 비트의 디코딩 인에이블 신호를 산출한다. Decode decision은 디코딩 값을 출력한 후, 디코딩 인에이블 신호가 1인 비트인 경우, 가산기(Adder) 모듈은 금번(本次)의 반복한 디코딩 값과 이전 이미 디코딩된 값을 모듈로-2 덧셈하도록 구성하고 결과를 다음 번 G노드 디코딩 계산에 필요한 U값으로 하고; 디코딩 인에이블 신호가 0인 비트인 경우, Adder 모듈은 이전에 이미 디코딩된 값을 바로 출력하여, 다음 번 G노드 디코딩 계산에 필요한 U값으로 한다. u_calc_ctrl 모듈은 G_CALC 모듈 연산에 필요한 U값을 선택하여 출력하고, G_CALC 모듈의 시작 및 종료를 제어한다. u_calc_ctrl모듈은 다음 U 값 계산에 사용되도록 계산된 U값을 메모리(memory)에 반환하여 저장하는 역할을 더 수행한다. u_calc_ctrl모듈은 다음 번 반복 계산에 필요한 U값을 미리 추출하는 미리 추출 기능도 구현한다. 다음 번 반복 디코드 결정이 디코딩 값을 출력한 후, Adder 모듈은 즉각적으로 계산을 수행할 수 있다.
모든 비트에 대한 디코딩이 끝난 후 Decode output모듈을 개시하여 U_CALC 모듈로부터 디코딩 데이터를 판독하고, 서브 코딩 트리 구조 규칙에 따라 N 비트 디코딩 시퀀스를 역 방향으로 생성한다. 예를 들어, 디코딩을 4 개의 서브 디코더로 나누고, 각각의 서브 디코더에서 디코딩된 비트는 각각 A[4i], A[4i-1], A[4i-2], A[4i-3],i=1,2...N/4이며, 본 모듈에 의해 인터리빙 처리한 후 출력된 데이터는 A[i],i=1,2...N이다.
본 실시예의 상기 U값 계산 방법은 Polar 코드 세그먼트화 디코딩 방법이라면, 그 어떠한 형식도 한정하지 않는다. 그러나 각 세그먼트의 데이터 추출 규칙과 U 값 계산의 데이터 추출 규칙은 반드시 일치해야 한다. Polar 코드의 코딩 과정에 세그먼트화 하지 않을 경우, 본 실시예의 상기 U 값 계산 방법을 사용할 수 있으며, 성능 및 자원의 절충을 구현하기 위하여, U값 계산을 복수의 독립된 U값 계산 모듈에 분포하고, 각 U_CALC 모듈에 몇 개 비트의 디코딩을 포함하여 U값 계산해야 할지는 하드웨어 자원 및 분포 상황에 따라 구분된다.
본 출원의 실시예에 제공된 방법은, 복수의 디코딩 서브트리가 서로 독립적으로 계산할 수 있으며 서로 의존하지 않으며, G노드 계산에 필요한 U값은 독립적이고 신속하게 계산되고, 자원 소모도 아주 적다.
도 6은 본 출원의 실시예에 제공된 데이터 디코딩 장치의 개략도이다. 도 6에 도시된 바와 같이, 프로세서 및 메모리를 포함하고, 상기 메모리에는 컴퓨터 프로그램이 저장되어 있으며, 상기 프로세서는 상기 메모리 중의 컴퓨터 프로그램을 호출하여 상기 임의의 방법을 구현한다.
본 출원의 실시예에 제공된 장치는, 디코딩할 데이터를 획득한 후, 상기 디코딩할 데이터에 대응되는 Polar 코드의 코드 트리를 획득하고, 상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하고, 상기 s개 독립된 디코딩 서브트리를 이용하여, 다음 반복 G노드에 필요한 U값을 계산하고, 디코딩 과정에서 세그먼트화 하여 서로 독립적으로 계산하고, 서로 의존하지 않으므로 처리 효율을 향상시킬 수 있다.
본 출원의 실시예는 하나 또는 복수의 프로그램이 저장된 컴퓨터 저장 매체를 제공한다, 상기 하나 또는 복수의 프로그램은 상기 임의의 방법을 구현하도록 하나 또는 복수의 프로세서에 의해 실행될 수 있다.
본 출원의 실시예에 제공된 컴퓨터 저장 매체는, 디코딩할 데이터를 획득한 후, 상기 디코딩할 데이터에 대응되는 Polar 코드의 코드 트리를 획득하고, 상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하고, 상기 s개 독립된 디코딩 서브트리를 이용하여, G노드의 다음 반복 시에 필요한 U값을 계산하고, 디코딩 과정에 세그먼트화 하여 서로 독립적으로 계산하고, 서로 의존하지 않으므로 처리 효율을 향상시킬 수 있다.
위에 개시된 방법의 단계들, 시스템, 및 장치의 전부 또는 일부의 기능 모듈들 또는 유닛들은 소프트웨어, 펌웨어, 하드웨어, 및 그 적절한 조합들로서 구현될 수 있다. 하드웨어 구현 방식에서, 위 설명에 언급된 기능 모듈들 또는 유닛들의 구분은 물리적 컴포넌트들의 구분에 대응하지 않을 수 있다. 예를 들어, 하나의 물리적 컴포넌트는 다수의 기능을 가질 수 있거나, 하나의 기능 또는 단계는 몇몇 물리적 컴포넌트들에 의해 공동으로 수행될 수 있다. 일부 또는 모든 컴포넌트들은 디지털 신호 프로세서들 또는 마이크로 프로세서들과 같은 프로세서들에 의해 실행되는 소프트웨어, 하드웨어 또는 전용 집적 회로들과 같은 집적 회로에 의해 구현될 수 있다. 이러한 소프트웨어는 컴퓨터 저장 매체들(또는 비-일시적 매체들) 및 통신 매체들(또는 일시적 매체들)을 포함할 수 있는 컴퓨터 판독 가능 매체에 분포될 수 있다. 용어 컴퓨터 저장 매체는 정보(컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은)를 저장하기 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비 휘발성, 분리가능 및 비-분리가능한 매체들을 포함한다. 컴퓨터 저장 매체들은 랜덤 액세스 메모리(random access memory; RAM), 판독-전용 메모리(read-only memory; ROM), 전기적 소거가능 프로그래밍가능 판독-전용 메모리(electrically erasable programmable read-only memory; EEPROM), 플래시 메모리 또는 다른 메모리 기술들, 컴팩트 디스크 판독-전용 메모리(compact disc read-only memory; CD-ROM), 디지털 다기능 디스크(digital versatile disc; DVD), 또는 다른 광학 디스크 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 원하는 정보를 저장하도록 구성되고 컴퓨터에 의해 액세스가능한 임의의 다른 매체들을 포함하나 이에 한정되지 않는다. 한편, 통신 매체들은 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 캐리어들 또는 다른 송신 메커니즘들과 같은 변조된 데이터 신호 중의 다른 데이터를 일반적으로 포함하고, 임의의 정보 전달 매체를 포함할 수도 있다.

Claims (10)

  1. 디코딩할 Polar 코드 데이터에 대응되는 Polar 코드의 코드 트리를 획득하는 단계;
    상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하는 단계, -s는 2보다 크거나 같은 정수임-;
    상기 s개 독립된 디코딩 서브트리(subtree)를 각각 미리 설정된 s개 독립된 U값 계산 모듈로 발송하는 단계, -여기서, 상기 U값 계산 모듈은 G노드의 다음 반복(next iteration) 시에 필요한 U값을 계산하도록 설정됨-;
    상기 s개 독립된 U값 계산 모듈을 제어하여 상기 s개 독립된 디코딩 서브트리를 일일이 대응 처리하여 s개 그룹의 새로운 디코딩 데이터를 얻는 단계; 및
    상기 미리 획득한 디코딩 데이터를 상기 s개 그룹의 디코딩 데이터로 분할하는 동작의 역 동작을 수행하여, 상기 s개 그룹의 새로운 디코딩 데이터를 복원하여 상기 새로운 디코딩할 Polar 코드 데이터를 얻는 단계;를 포함하는 데이터 디코딩 방법.
  2. 청구항 1에 있어서,
    상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하는 단계는,
    상기 Polar 코드의 코드 트리에 대한 데이터 추출 간격(s)을 획득하는 단계;
    s비트의 데이터 추출 간격, Z형의 데이터 추출 순서에 의해, 상기 Polar 코드의 코드 트리에 대한 데이터 추출을 진행하여 상기 s개 독립된 디코딩 서브트리를 얻는 단계를 포함하는 데이터 디코딩 방법.
  3. 청구항 1에 있어서,
    s=2k, k=1,2,3……인 데이터 디코딩 방법.
  4. 청구항 1에 있어서,
    상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하는 단계는,
    상기 Polar 코드의 코드 트리에 대한 데이터 추출 간격(si)을 획득하는 단계;
    Z형의 데이터 추출 순서, si비트의 데이터 추출 간격에 의해, 상기 Polar 코드의 코드 트리에 대한 데이터 추출을 진행하여 si개 독립된 디코딩 서브트리를 얻는 단계;
    얻은 독립된 디코딩 서브트리의 개수가 s개에 도달했는지 여부를 판단하여 판단결과를 얻는 단계;
    상기 판단결과가 s개에 미달인 경우, 상기 si개 독립된 디코딩 서브트리를 분할하고, i의 값을 i+1값으로 업데이트하되, 얻은 디코딩 서브트리의 총 개수가 s개에 도달할 때까지 업데이트하는 단계, -i는 양의 정수- 를 포함하는 데이터 디코딩 방법.
  5. 청구항 1에 있어서,
    상기 s개 독립된 U값 계산 모듈을 제어하여 상기 s개 독립된 디코딩 서브트리를 일일이 대응 처리하여 s개 그룹의 새로운 디코딩 데이터를 얻는 단계는,
    미리 획득한 디코딩 데이터의 분할 정책에 따라 미리 획득한 디코딩 데이터를 s개 그룹의 디코딩 데이터로 분할하는 단계, -상기 디코딩 데이터의 분할 정책은 상기 Polar 코드의 코드 트리를 s개 독립된 디코딩 서브트리로 분할하는 분할 정책과 동일함-;
    상기 s개 그룹의 디코딩 데이터를 이용하여 상기 s개 독립된 디코딩 서브트리를 처리하여 상기 s개 독립된 디코딩 서브트리에 대응되는 s개 그룹의 새로운 디코딩 데이터를 얻는 단계를 포함하는 데이터 디코딩 방법.
  6. 컴퓨터 프로그램이 저장되어 있는 메모리;
    청구항 1 내지 청구항 5 중 어느 한 항에 따른 데이터 디코딩 방법을 구현하도록 상기 메모리 중의 컴퓨터 프로그램을 호출하는 프로세서를; 포함하는 데이터 디코딩 장치.
  7. 적어도 하나 이상의 프로세서에 의해 실행 되어 청구항 1 내지 청구항 5 중 어느 한 항에 따른 데이터 디코딩 방법을 구현 가능하는 적어도 하나 이상의 프로그램이 저장되는 컴퓨터 판독 가능 저장 매체.
  8. 삭제
  9. 삭제
  10. 삭제
KR1020227000258A 2019-09-30 2020-09-16 데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체 KR102639951B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910945166.3A CN112583422A (zh) 2019-09-30 2019-09-30 数据译码方法和装置及计算机存储介质
CN201910945166.3 2019-09-30
PCT/CN2020/115615 WO2021063181A1 (zh) 2019-09-30 2020-09-16 数据译码方法、装置及计算机存储介质

Publications (2)

Publication Number Publication Date
KR20220016975A KR20220016975A (ko) 2022-02-10
KR102639951B1 true KR102639951B1 (ko) 2024-02-27

Family

ID=75117066

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227000258A KR102639951B1 (ko) 2019-09-30 2020-09-16 데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체

Country Status (5)

Country Link
US (1) US11811426B2 (ko)
EP (1) EP3982544A4 (ko)
KR (1) KR102639951B1 (ko)
CN (1) CN112583422A (ko)
WO (1) WO2021063181A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117344A1 (en) * 2011-11-08 2013-05-09 Warren GROSS Methods and Systems for Decoding Polar Codes

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038234B (zh) 2013-03-07 2017-09-29 华为技术有限公司 极性码的译码方法和译码器
BR112016014679B1 (pt) * 2013-12-24 2021-11-03 Huawei Technologies Co., Ltd Método de decodificação de código polar e aparelho de decodificação
CN104539296B (zh) * 2015-01-21 2017-10-20 西安电子科技大学 一种基于提前终止迭代策略的极化码改进bp译码方法
US10153787B2 (en) * 2016-09-20 2018-12-11 Samsung Electronics Co., Ltd Apparatus and method for parallelized successive cancellation decoding and successive cancellation list decoding of polar codes
US20180331697A1 (en) 2017-05-15 2018-11-15 Qualcomm Incorporated Nominal complexity and weighted combinations for polar code construction
US10608675B1 (en) * 2018-09-09 2020-03-31 Mediatek Inc. Method for performing polar decoding with aid of notation transformation and associated polar decoder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117344A1 (en) * 2011-11-08 2013-05-09 Warren GROSS Methods and Systems for Decoding Polar Codes

Also Published As

Publication number Publication date
KR20220016975A (ko) 2022-02-10
WO2021063181A1 (zh) 2021-04-08
US20220294477A1 (en) 2022-09-15
EP3982544A1 (en) 2022-04-13
EP3982544A4 (en) 2022-09-07
CN112583422A (zh) 2021-03-30
US11811426B2 (en) 2023-11-07

Similar Documents

Publication Publication Date Title
CN106888026B (zh) 基于lsc-crc译码的分段极化码编译码方法及系统
KR100983692B1 (ko) 통신 장치 및 복호 방법
CN107370560B (zh) 一种极化码的编码和速率匹配方法、装置及设备
JP6797281B2 (ja) 符号化方法およびデバイスならびに装置
JP6389525B2 (ja) オーディオ/ビデオサンプルベクトルのピラミッドベクトル量子化インデクシング及びデインデクシングの方法及び装置
Thomas et al. Polar coding for the binary erasure channel with deletions
US10574264B2 (en) Method and apparatus for supporting low bit rate coding, and computer storage medium
CN113612486B (zh) 一种构建pbrl ldpc码的基矩阵方法、系统、装置及存储介质
CN114598331A (zh) Polar码的编码方法、编译码方法及装置
CN107528596B (zh) 一种基于斐波那契-卢卡斯序列的Type-II QC-LDPC码构造方法
CN110233628B (zh) 极化码的自适应置信传播列表译码方法
CN107534511B (zh) 低密度奇偶校验码的译码方法和译码器
JPWO2019130475A1 (ja) 通信路分極を用いた誤り訂正符号化方法および装置、復号方法および装置
KR102213345B1 (ko) 패리티 검사 연접 극 부호의 설계 방법 및 그 장치
KR102639951B1 (ko) 데이터 디코딩 방법, 장치 및 컴퓨터 저장 매체
CN114301468A (zh) 一种fse编码方法、装置、设备及存储介质
Dou et al. Soft-decision based sliding-window decoding of staircase codes
KR101030726B1 (ko) 확률적 테이블에 의해 생성된 심볼을 기반으로 호프만 테이블을 적용한 메모리 효율이 개선된 멀티미디어용 호프만 디코딩 방법 및 장치
US9189321B2 (en) Error correction encoding method, decoding method and associated devices
EP2605410A1 (en) Channel decoding method and tail biting convolutional decoder
CN113131947B (zh) 译码方法、译码器和译码装置
CN110175185B (zh) 一种基于时序数据分布特征的自适应无损压缩方法
CN109802690B (zh) 译码方法、装置和计算机可读存储介质
CA2827338C (en) Error correction encoding method, decoding method and associated devices
RU2811072C1 (ru) Способ декодирования, декодер и устройство декодирования

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant