KR101728567B1 - Decoding apparatus and method for parallel processing - Google Patents

Decoding apparatus and method for parallel processing Download PDF

Info

Publication number
KR101728567B1
KR101728567B1 KR1020120146766A KR20120146766A KR101728567B1 KR 101728567 B1 KR101728567 B1 KR 101728567B1 KR 1020120146766 A KR1020120146766 A KR 1020120146766A KR 20120146766 A KR20120146766 A KR 20120146766A KR 101728567 B1 KR101728567 B1 KR 101728567B1
Authority
KR
South Korea
Prior art keywords
bits
viterbi decoder
parallel processing
codewords
input
Prior art date
Application number
KR1020120146766A
Other languages
Korean (ko)
Other versions
KR20140077692A (en
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 KR1020120146766A priority Critical patent/KR101728567B1/en
Publication of KR20140077692A publication Critical patent/KR20140077692A/en
Application granted granted Critical
Publication of KR101728567B1 publication Critical patent/KR101728567B1/en

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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • 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/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • 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
    • H03M9/00Parallel/series conversion or vice versa

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

병렬 처리 복호화 장치 및 방법이 개시된다. 병렬 처리 복호화 장치는 제1 N(N은 자연수)비트, 제2 N비트 및 제3 N비트를 포함하는 제1 블록을 입력받고, 상기 입력된 제1 블록을 복호화하는 제1 복호기와, 상기 제3 N비트, 제4 N비트 및 제5 비트를 포함하는 제2 블록을 입력받고, 상기 입력된 제2 블록을 복호화하되, 상기 제1 복호기가 상기 제2 N비트를 복호화하는 동안, 상기 제3 N비트를 복호화하는 제2 복호기와, 상기 제5 N비트, 제6 N비트 및 제7 비트를 포함하는 제3 블록을 입력받고, 상기 입력된 제3 블록을 복호화하되, 상기 제2 복호기가 상기 제4 N비트를 복호화하는 동안, 상기 제5 N비트를 복호화하는 제3 복호기를 포함한다.A parallel processing decoding apparatus and method are disclosed. A parallel processing / decoding apparatus includes a first decoder for receiving a first block including a first N (N is a natural number) bit, a second N bit and a third N bit and for decoding the input first block, A second block including 3 N bits, a fourth N bit and a fifth bit, and decoding the input second block, while the first decoder decodes the second N bits, A second decoder for decoding N bits and a third block including the 5th N bits and the 6th N bits and the 7th bit and decoding the input third block, And a third decoder for decoding the fourth N bits while decoding the fifth N bits.

Description

병렬 처리 복호화 장치 및 방법{DECODING APPARATUS AND METHOD FOR PARALLEL PROCESSING}[0001] DECODING APPARATUS AND METHOD FOR PARALLEL PROCESSING [0002]

본 발명의 실시예들은 다수의 복호기를 이용하여 데이터를 순환 병렬 처리 함으로써, 데이터에 대한 복호화의 처리 속도를 증가시키는 기술에 관한 것이다.Embodiments of the present invention relate to techniques for increasing the processing speed of decoding data by circularly parallel processing data using a plurality of decoders.

통신 시스템에서 전송 중에 발생하는 오류를 정정하기 위해 사용되는 여러 채널 부호화 기법 중, 길쌈 부호(Convolutional Code)와 비터비 복호기(Viterbi Decoder)의 조합은 상대적으로 낮은 복잡도로도 우수한 성능을 제공하므로 여러 표준에 채택되어 널리 쓰이고 있다.Among various channel coding techniques used for correcting errors occurring during transmission in a communication system, a combination of a convolutional code and a Viterbi decoder provides superior performance even in a relatively low complexity, And is widely used.

한편, 최근 급증하는 고품질 멀티미디어 서비스의 요구를 수용하기 위해 매우 높은 전송률을 제공하는 시스템의 표준화가 진행되어 오고 있으며, 대표적인 기술로는 초고처리율 무선랜(Very High Throughput Wireless Local Area Network, VHT WLAN)이 있다. 초고처리율 무선랜 기술은 길쌈 부호를 필수로 사용하고, 저밀도 패리티 검사(Low-Density Parity Check, LDPC) 부호를 선택적으로 채택하도록 규정하고 있다. 이때, 길쌈 부호의 복호기로 이용되는 비터비 복호기의 고속 처리를 구현하여, 전송률을 높일 수 있는 기술이 필요하다.Meanwhile, in order to accommodate the rapidly increasing demand for high-quality multimedia services, a system providing a very high data rate has been standardized. As a representative technology, a very high throughput wireless local area network (VHT WLAN) have. High-throughput wireless LAN technology requires that a convolutional code be used, and that a low-density parity check (LDPC) code be selectively adopted. In this case, a technique for increasing the data rate by implementing a high-speed processing of a Viterbi decoder used as a decoder of a convolutional code is needed.

본 발명은 다수의 복호기를 이용하여 데이터를 순환 병렬 처리 함으로써, 데이터에 대한 복호화의 처리 속도를 증가시키는 것을 목적으로 한다.An object of the present invention is to increase the processing speed of decoding data by circularly processing data by using a plurality of decoders.

상기의 목적을 이루기 위한 병렬 처리 복호화 장치는 제1 N(N은 자연수)비트, 제2 N비트 및 제3 N비트를 포함하는 제1 블록을 입력받고, 상기 입력된 제1 블록을 복호화하는 제1 복호기와, 상기 제3 N비트, 제4 N비트 및 제5 비트를 포함하는 제2 블록을 입력받고, 상기 입력된 제2 블록을 복호화하되, 상기 제1 복호기가 상기 제2 N비트를 복호화하는 동안, 상기 제3 N비트를 복호화하는 제2 복호기와, 상기 제5 N비트, 제6 N비트 및 제7 비트를 포함하는 제3 블록을 입력받고, 상기 입력된 제3 블록을 복호화하되, 상기 제2 복호기가 상기 제4 N비트를 복호화하는 동안, 상기 제5 N비트를 복호화하는 제3 복호기를 포함한다.A parallel processing decoder for achieving the above object receives a first block including a first N (N is a natural number) bit, a second N bit and a third N bit, 1 decoder, a second block including the third N-bit, the fourth N-bit and the fifth bit, and decoding the input second block, wherein the first decoder decodes the second N-bit, A second decoder for decoding the third N bits, and a third block including the fifth N bits and the sixth N bits and the seventh bit, and decoding the input third block, And a third decoder for decoding the fifth N bits while the second decoder is decoding the fourth N bits.

본 발명의 실시예에 따르면, 다수의 복호기를 이용하여 데이터를 순환 병렬 처리 함으로써, 데이터에 대한 복호화의 처리 속도를 증가시킬 수 있다.According to the embodiment of the present invention, it is possible to increase the processing speed of decoding data by performing parallel parallel processing of data using a plurality of decoders.

도 1은 본 발명의 일실시예에 따른 병렬 처리 복호화 장치의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 병렬 처리 복호화 장치의 구성 일례를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 병렬 처리 복호화 방법을 나타내는 흐름도이다.
1 is a block diagram of a parallel processing / decoding apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of the configuration of a parallel processing / decoding apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a parallel processing decoding method according to an embodiment of the present invention.

이하, 첨부된 도면들을 참조하여 본 발명의 일실시예에 따른 병렬 처리 복호화 장치 및 방법에 대해 상세히 설명한다.Hereinafter, a parallel processing decoding apparatus and method according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 병렬 처리 복호화 장치의 구성을 도시한 도면이다.1 is a block diagram of a parallel processing / decoding apparatus according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 병렬 처리 복호화 장치(100)는 입력 버퍼부(101), 복호화부(103), 출력 버퍼부(105) 및 프로세서(107)를 포함할 수 있다.1, a parallel processing / decoding apparatus 100 according to an embodiment of the present invention may include an input buffer unit 101, a decoding unit 103, an output buffer unit 105, and a processor 107 have.

입력 버퍼부(101)는 예컨대, 각각 3*N(N은 자연수)비트의 크기를 갖는 제1 내지 제3 입력 버퍼(101-1, 101-2, 101-3)를 포함할 수 있다. 입력 버퍼부(101)는 입력된 데이터를 제1 내지 제3 입력 버퍼(101-1, 101-2, 101-3)에 저장할 수 있다.The input buffer unit 101 may include first through third input buffers 101-1, 101-2, and 101-3 each having a size of 3 * N (where N is a natural number) bits. The input buffer unit 101 may store the input data in the first to third input buffers 101-1, 101-2, and 101-3.

복호화부(103)는 예컨대, 각각 부호율이 1/2인, 제1 내지 제3 복호기(103-1, 103-2, 103-3)를 포함할 수 있다. 즉, 각 복호기는 한 클럭에 C비트의 부호어를 처리하여, C/2비트를 복호화할 수 있다. 여기서, 각 복호기는 부호율이 1/2일 수 있으나, 이에 한정되지 않는다.The decoding unit 103 may include, for example, first to third decoders 103-1, 103-2, and 103-3 each having a coding rate of 1/2. That is, each decoder can process a C-bit codeword in one clock to decode C / 2 bits. Here, each decoder may have a coding rate of 1/2, but it is not limited thereto.

제1 복호기(103-1)는 제1 N(N은 자연수)비트, 제2 N비트 및 제3 N비트를 포함하는 제1 블록을 입력받고, 상기 입력된 제1 블록을 복호화할 수 있다.The first decoder 103-1 may receive a first block including a first N (N is a natural number) bit, a second N bit, and a third N bit, and may decode the input first block.

제2 복호기(103-2)는 상기 제3 N비트, 제4 N비트 및 제5 비트를 포함하는 제2 블록을 입력받고, 상기 입력된 제2 블록을 복호화할 수 있다. 이때, 제2 복호기(103-2)는 상기 제1 복호기가 상기 제2 N비트를 복호화하는 동안, 상기 제3 N비트를 복호화할 수 있다.The second decoder 103-2 receives the second block including the third N bits, the fourth N bits, and the fifth bit, and can decode the input second block. At this time, the second decoder 103-2 can decode the third N bits while the first decoder decodes the second N bits.

제3 복호기(103-3)는 상기 제5 N비트, 제6 N비트 및 제7 비트를 포함하는 제3 블록을 입력받고, 상기 입력된 제3 블록을 복호화할 수 있다. 이때, 제3 복호기(103-3)는 상기 제2 복호기가 상기 제4 N비트를 복호화하는 동안, 상기 제5 N비트를 복호화할 수 있다.The third decoder 103-3 receives the third block including the fifth N bits, the sixth N bits, and the seventh bits, and decodes the input third block. At this time, the third decoder 103-3 may decode the fifth N bits while the second decoder decodes the fourth N bits.

출력 버퍼부(105)는 제1 내지 제3 출력 버퍼(105-1, 105-2, 105-3)를 포함할 수 있으며, 제1 내지 제3 복호기(103-1, 103-2, 103-3) 각각에서 출력되는 데이터를 제1 내지 제3 출력 버퍼(105-1, 105-2, 105-3)에 저장할 수 있다.The output buffer unit 105 may include first through third output buffers 105-1, 105-2, and 105-3. The first through third decoders 103-1, 103-2, and 103- 3) can be stored in the first to third output buffers 105-1, 105-2, and 105-3.

프로세서(107)는 제1 내지 제3 출력 버퍼(105-1, 105-2, 105-3)에 저장된 데이터를 순서대로 정렬하여, 출력할 수 있다.The processor 107 can sort and output the data stored in the first to third output buffers 105-1, 105-2 and 105-3 in order.

도 2는 본 발명의 일실시예에 따른 병렬 처리 복호화 장치의 구성 일례를 도시한 도면이다.FIG. 2 is a diagram illustrating an example of the configuration of a parallel processing / decoding apparatus according to an embodiment of the present invention.

도 2를 참조하면, 병렬 처리 복호화 장치(200)는 입력 버퍼부(201), 복호화부(203) 및 출력 버퍼부(205)를 포함할 수 있다.Referring to FIG. 2, the parallel processing / decoding apparatus 200 may include an input buffer unit 201, a decoding unit 203, and an output buffer unit 205.

입력 버퍼부(201)는 3개의 입력 버퍼 예컨대, 제1 입력 버퍼, 제2 입력 버퍼 및 제3 입력 버퍼를 포함할 수 있다.The input buffer unit 201 may include three input buffers, e.g., a first input buffer, a second input buffer, and a third input buffer.

복호화부(203)는 3개의 복호기, 예컨대, 제1 비터비 복호기, 제2 비터비 복호기 및 제3 비터비 복호기를 포함할 수 있다.The decoding unit 203 may include three decoders, for example, a first Viterbi decoder, a second Viterbi decoder, and a third Viterbi decoder.

출력 버퍼부(205)는 3개의 출력 버퍼, 예컨대, 제1 출력 버퍼, 제2 출력 버퍼 및 제3 출력 버퍼를 포함할 수 있다.The output buffer unit 205 may include three output buffers, e.g., a first output buffer, a second output buffer, and a third output buffer.

여기서, 병렬 처리 복호화 장치(200)는 예컨대, 한 클럭에 C개의 부호어(Codeword)를 처리하여 C/2개의 비트(Bit)를 복호화하는 다수의 비터비 복호기를 이용하여 데이터를 순환 병렬 처리 함으로써, 디펑추어러(Depuncturer) 모듈로부터 클럭당 2C개의 비트를 비터비 복호기로 입력되도록 하여, 데이터에 대한 2배속 복호화 처리를 가능하게 한다.Here, the parallel processing / decoding apparatus 200 may perform parallel parallel processing on data by using a plurality of Viterbi decoders that process C codewords at one clock and decode C / 2 bits, for example, , And 2C bits per clock from the Depuncturer module are input to the Viterbi decoder, thereby enabling the 2x-speed decoding process on the data.

병렬 처리 복호화 장치(200)는 각각 3N의 크기를 갖는 3개의 입력 버퍼에, 입력되는 부호어들을 동일하게 저장한 후, 상황에 맞게 3개의 비터비 복호기로 전달하여 준다. 이때, 병렬 처리 복호화 장치(200)는 입력 버퍼의 잔여 정보 비트 수를 공동으로 계산할 수 있다. 다시 말해, 병렬 처리 복호화 장치(200)는 제1 입력 버퍼에서 데이터가 출력되면, 제2 입력 버퍼와 제3 입력 버퍼에서 또한 데이터가 출력된 것으로 판단할 수 있다. The parallel processing / decoding apparatus 200 stores the input codewords in three input buffers each having a size of 3N in the same manner, and then transfers the codewords to three Viterbi decoders according to the situation. At this time, the parallel processing / decoding apparatus 200 can jointly calculate the number of remaining information bits of the input buffer. In other words, when data is output from the first input buffer, the parallel processing / decoding apparatus 200 can determine that data is also output from the second input buffer and the third input buffer.

입력 버퍼에서 비터비 복호기로 비트 데이터 전달시, 병렬 처리 복호화 장치(200)는 한 프레임 내의 데이터 비트 수가 3N 보다 작거나 같으면 제1 비터비 복호기만을 사용한다. 이때, 복호하여 출력되는 비트 수는 입력 부호어의 반으로 마지막 심볼의 경우와 같다. 만약, 한 프레임 내의 데이터 비트 수가 3N 보다 크면, 병렬 처리 복호화 장치(200)는 3N 단위로 각 비터비 복호비에 순환 입력하여 준다.When transferring bit data from the input buffer to the Viterbi decoder, the parallel processing decoder 200 uses only the first Viterbi decoder if the number of data bits in one frame is less than or equal to 3N. At this time, the number of bits output by decoding is half of the input codeword, which is the same as that of the last symbol. If the number of data bits in one frame is larger than 3N, the parallel processing / decoding device 200 cyclically inputs each Viterbi decoding ratio in units of 3N.

여기서, 한 블록의 크기인 3N은 비터비 복호기에 충분한 데이터가 입력될 경우에 처음으로 데이터가 출력될 때까지의 시간 동안 입력된 데이터의 수 N의 3배이며, 역추적 길이 및 비터비 복호기의 구조에 의한 복호 처리 시간에 따라 달라지게 된다.Here, 3N, which is the size of one block, is three times the number N of pieces of data input during the time until the first data is output when sufficient data is input to the Viterbi decoder, and the back trace length and Viterbi decoder And depends on the decoding processing time by the structure.

실질적으로, 병렬 처리 복호화 장치(200)는 3N 비트만큼 입력이 되면, 1/2 부호율의 비터비 복호기를 통해, 앞쪽 2N 부호어의 복호 결과에 해당하는 N비트를 출력할 수 있다. 이때, 해당 비터비 복호기는 복호를 중지하고 내부 메모리 및 레지스터(Register)를 초기화할 수 있다. 따라서, 병렬 처리 복호화 장치(200)는 마지막 N비트를 복호화하지 않게 된다. 결국, 병렬 처리 복호화 장치(200)는 3N 중 2N 만큼만을 복호화하였으므로, 마지막 N 비트를 다음 블록에 중복하여 입력해야 한다. 예컨대, 병렬 처리 복호화 장치(200)는 3N 비트만큼 비터비 복호기에 입력되면 다음 순번의 비터비 복호기(제1 비터비 복호기였으면 제2 비터비 복호기로, 제2 비터비 복호기였으면 제3 비터비 복호기로, 제3 비터비 복호기였으면 제1 비터비 복호기)에 동일한 방법으로 3N만큼 입력을 넣어준다. 이때, 병렬 처리 복호화 장치(200)는 이전 블록의 마지막 N비트를 포함하는 3N 비트를 다음 순번의 비터비 복호기에 입력할 수 있다.Practically, when the parallel processing decoding apparatus 200 receives 3N bits, it can output N bits corresponding to the decoding result of the front 2N codeword through a Viterbi decoder with a 1/2 coding rate. At this time, the Viterbi decoder can stop decoding and initialize an internal memory and a register. Accordingly, the parallel processing / decoding apparatus 200 does not decode the last N bits. As a result, since the parallel processing / decoding apparatus 200 has decoded only 2N of 3N, it is necessary to input the last N bits in the next block in duplicate. For example, when the parallel processing decoding apparatus 200 is inputted to the Viterbi decoder by 3N bits, the Viterbi decoding apparatus 200 selects the next Viterbi decoder (if the first Viterbi decoder is a second Viterbi decoder and if the second Viterbi decoder is a third Viterbi decoder, And if it is the third Viterbi decoder, the input is input by 3N in the same manner to the first Viterbi decoder). At this time, the parallel processing / decoding apparatus 200 can input 3N bits including the last N bits of the previous block to the next order Viterbi decoder.

병렬 처리 복호화 장치(200)는 입력된 3N 비트에서, 앞쪽 2N 부호어의 복호 결과에 해당하는 N비트를 출력 함으로써, 비터비 복호에 소요되는 처리 시간을 수용하면서, 복조에 충분한 역추적 길이를 제공함으로써, 블록 단위로 복호화할 때 발생하는 성능 손실을 최소화하고, 가장 적은 수의 비터비 복호기를 사용하여 효율을 높일 수 있다.The parallel processing decoding apparatus 200 outputs N bits corresponding to the decoded result of the front 2N codeword at the inputted 3N bits to thereby provide a back trace length sufficient for demodulation while accommodating processing time required for Viterbi decoding , It is possible to minimize the performance loss occurring when decoding is performed on a block-by-block basis, and to increase the efficiency by using the smallest number of Viterbi decoders.

예컨대, 병렬 처리 복호화 장치(200)는 복수의 N비트(예컨대, 1A, 1B, 2A, 2B, 3A, 3B, 4A 등)가 입력되면, 각 입력 버퍼를 통해, 제1 비터비 복호기에 3N 비트(1A, 1B, 2A)를 입력하고, 제2 비터비 복호기에 3N 비트(2A, 2B, 3A)를 입력하며, 제3 비터비 복호기에 3N 비트(3A, 3B, 4A)를 입력할 수 있다. 이때, 병렬 처리 복호화 장치(200)는 제1 비터비 복호기에서 1B의 N비트를 복호화하는 동안, 제2 비터비 복호기에서 2A의 N비트를 복호화하도록 하고, 제2 비터비 복호기에서 2B의 N비트를 복호화하는 동안, 제3 비터비 복호기에서 3A의 N비트를 복호화하도록 함으로써, 데이터의 처리 속도를 증가시킬 수 있다.For example, when a plurality of N bits (for example, 1A, 1B, 2A, 2B, 3A, 3B, and 4A) are input, the parallel processing / decoding apparatus 200 outputs 3N bits to the first Viterbi decoder 3B bits 2A, 2B and 3A are input to the second Viterbi decoder and 3N bits 3A, 3B and 4A are input to the third Viterbi decoder . At this time, while the parallel processing decoder 200 decodes N bits of 1B in the first Viterbi decoder, it decodes 2 N bits of 2A in the second Viterbi decoder, and N bits of 2B in the second Viterbi decoder While decoding the N bits of 3A in the third Viterbi decoder, the processing speed of the data can be increased.

결과적으로, 병렬 처리 복호화 장치(200)는 블록 단위로 각 비터비 복호기에 순환 입력하면, 처음 N 비트와 마지막의 N 비트를 제외하고는 동시에 단일 비터비 복호기가 처리할 수 있는 속도의 2배로 데이터를 처리할 수 있게 된다. 병렬 처리 복호화 장치(200)는 복호된 비트를 순서대로 정렬하기 위하여 각각 크기가 N인 출력 버퍼에 저장했다가, 저장된 복호 비트를 데이터 순서대로 정렬하여, 다음 모듈(예컨대, 디스크램블러)로 전달할 수 있다.As a result, when the parallel processing / decoding device 200 is cyclically inputted to each Viterbi decoder on a block-by-block basis, except for the first N bits and the last N bits, . ≪ / RTI > The parallel processing / decoding apparatus 200 stores the decoded bits in an output buffer having a size of N in order to arrange the decoded bits in order, and arranges the stored decoded bits in order of data to be transferred to a next module (e.g., a descrambler) have.

한편, 병렬 처리 복호화 장치(200)는 복호 시, 각 블록의 입력 시작되는 부분에서 비터비 복호기를 초기화할 수 있다. 이때, 병렬 처리 복호화 장치(200)는 첫 블록이 길쌈 부호화 시작점이므로 상태 0(Zero-State)에서 출발하도록 0번째 경로 매트릭(Path Metric) 값에만 다른 값을 두고, 다른 블록에 동일한 값을 두어 초기화할 수 있다.On the other hand, the parallel processing / decoding device 200 can initialize the Viterbi decoder at the beginning of input of each block in decoding. In this case, since the first block is a convolutional encoding start point, the parallel processing / decoding apparatus 200 sets a different value only to the 0th path metric value to start from the state 0 (Zero-State) can do.

도 3은 본 발명의 일실시예에 따른 병렬 처리 복호화 방법을 나타내는 흐름도이다.3 is a flowchart illustrating a parallel processing decoding method according to an embodiment of the present invention.

도 3을 참조하면, 단계 301에서, 병렬 처리 복호화 장치는 입력된 데이터를 각 입력 버퍼에 저장할 수 있다. Referring to FIG. 3, in step 301, the parallel processing / decoding apparatus can store the input data in each input buffer.

단계 303에서, 병렬 처리 복호화 장치는 데이터 중 3N 비트의 한블록을 각 복호기에 순환 입력할 수 있다.In step 303, the parallel processing / decoding apparatus can circularly input one block of 3N bits of data into the respective decoders.

단계 305에서, 병렬 처리 복호화 장치는 각 복호기에서 출력된 N 비트의 복호 데이터를 각 출력 버퍼에 저장할 수 있다. 이때, 병렬 처리 복호화 장치는 제1 복호기에, 제1 N(N은 자연수)비트, 제2 N비트 및 제3 N비트를 포함하는 제1 블록을 입력시킬 수 있고, 제2 복호기에 상기 제3 N비트, 제4 N비트 및 제5 비트를 포함하는 제2 블록을 입력시킬 수 있다. 또한, 병렬 처리 복호화 장치는 제3 복호기에 상기 제5 N비트, 제6 N비트 및 제7 비트를 포함하는 제3 블록을 입력시킬 수 있다.In step 305, the parallel processing / decoding apparatus can store N bits of decoded data output from each decoder in each output buffer. At this time, the parallel processing / decoding apparatus can input a first block including a first N (N is a natural number) bit, a second N bit and a third N bit to the first decoder, N bits, a fourth N bits, and a fifth bit. Also, the parallel processing / decoding apparatus may input a third block including the fifth N bits, the sixth N bits, and the seventh bits to the third decoder.

여기서, 병렬 처리 복호화 장치는 상기 제1 복호기가 상기 제2 N비트를 복호화하는 동안, 제2 복호기에서 상기 제3 N비트를 복호화하도록 제어하고, 상기 제2 복호기가 상기 제4 N비트를 복호화하는 동안, 제3 복호기에서 상기 제5 N비트를 복호화하도록 제어하여, 데이터를 병렬 처리할 수 있다.Here, the parallel processing decoder controls the second decoder to decode the third N bits while the first decoder decodes the second N bits, and the second decoder decodes the fourth N bits , The third decoder may control to decode the fifth N bits to parallel-process the data.

단계 307에서, 병렬 처리 복호화 장치는 출력 버퍼에 저장된 복호 데이터를, 데이터 순서에 따라 정렬하여 출력할 수 있다.In step 307, the parallel processing decoding device can sort and output the decoded data stored in the output buffer according to the data order.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

100: 병렬 처리 복호화 장치
101: 입력 버퍼부
103: 복호화부
105: 출력 버퍼부
107: 프로세서
100: parallel processing decryption device
101: Input buffer unit
103:
105: Output buffer section
107: Processor

Claims (8)

정해진 크기를 갖고, C개의 부호어(Codeword)를 저장하는 다수의 입력 버퍼; 및
한 클럭에, 상기 C개의 부호어를, C/2개의 비트(Bit)로 복호화하여, 데이터에 대한 순환 병렬 처리하되, 상기 다수의 입력 버퍼로부터, 상기 C개의 부호어를 선택적으로 전달받는 다수의 비터비 복호기
를 포함하고,
상기 다수의 비터비 복호기 중, 제1 비터비 복호기와 제2 비터비 복호기는,
입력되는 3N 비트 중 적어도 하나의 비트를 공통으로 하고,
제1 시점에, 상기 제2 비터비 복호기에서 상기 공통되는 비트를 처리하고, 상기 제1 시점과 연속하는 제2 시점에, 상기 제1 비터비 복호기에서 상기 공통되는 비트를 처리하는 상기 순환 병렬 처리를 통해, 디펑추어러(Depuncturer) 모듈로부터 클럭당 2C개의 비트가 입력되도록 하여, 상기 데이터에 대한 2배속 복호화 처리를 가능하게 하는
병렬 처리 복호화 장치.
A plurality of input buffers having a predetermined size and storing C codewords; And
A plurality of C codewords are selectively received from the plurality of input buffers by decoding the C codewords into C / 2 bits at one clock, performing a cyclic parallel process on the data, Viterbi decoder
Lt; / RTI >
Wherein among the plurality of Viterbi decoders, the first Viterbi decoder and the second Viterbi decoder,
At least one bit among 3N bits to be input is common,
Wherein the first Viterbi decoder processes the common bits in the second Viterbi decoder and the second Viterbi decoder processes the common bits in the first Viterbi decoder at a second point subsequent to the first point in time, Allows 2 C bits per clock to be input from the Depuncturer module, thereby enabling a 2x decryption process on the data
A parallel processing decoding apparatus.
삭제delete 제1항에 있어서,
상기 병렬 처리 복호화 장치는,
상기 입력 버퍼에서 상기 비터비 복호기로의 상기 C개의 부호어 전달시,
상기 C개의 부호어의 비트 수가 기준값 보다 작거나 같으면, 상기 다수의 복호기 중 임의 제1 비터비 복호기에서 복호화하도록 하는
병렬 처리 복호화 장치.
The method according to claim 1,
The parallel processing decoding apparatus includes:
When transmitting the C codewords from the input buffer to the Viterbi decoder,
And if the number of bits of the C codewords is smaller than or equal to a reference value, decoding is performed by an arbitrary first Viterbi decoder among the plurality of decoders
A parallel processing decoding apparatus.
제1항에 있어서,
상기 병렬 처리 복호화 장치는,
상기 C개의 부호어의 비트 수가 기준값 보다 크면, 상기 입력 버퍼에서 상기 비터비 복호기로, 상기 C개의 부호어를 순환하여 입력하는
병렬 처리 복호화 장치.
The method according to claim 1,
The parallel processing decoding apparatus includes:
If the number of bits of the C codewords is larger than a reference value, the C codewords are cyclically input from the input buffer to the Viterbi decoder
A parallel processing decoding apparatus.
병렬 처리 복호화 장치에 의해 구현되는 병렬 처리 복호화 방법에 있어서,
정해진 크기를 갖는 다수의 입력 버퍼에서, C개의 부호어를 저장하는 단계;
다수의 비터비 복호기에서, 한 클럭에, 상기 C개의 부호어를, C/2개의 비트로 복호화하여, 데이터에 대한 순환 병렬 처리하되, 상기 다수의 입력 버퍼로부터, 상기 C개의 부호어를 선택적으로 전달받는 단계
를 포함하고,
상기 다수의 비터비 복호기 중 제1 비터비 복호기와 제2 비터비 복호기는,
입력되는 3N 비트 중 적어도 하나의 비트를 공통으로 하고,
제1 시점에, 상기 제2 비터비 복호기에서 상기 공통되는 비트를 처리하고, 상기 제1 시점과 연속하는 제2 시점에, 상기 제1 비터비 복호기에서 상기 공통되는 비트를 처리하는 상기 순환 병렬 처리를 통해, 디펑추어러 모듈로부터 클럭당 2C개의 비트가 입력되도록 하여, 상기 데이터에 대한 2배속 복호화 처리를 가능하게 하는
병렬 처리 복호화 방법.
A parallel processing decoding method implemented by a parallel processing decoding apparatus,
Storing a plurality of C codewords in a plurality of input buffers having a predetermined size;
A plurality of Viterbi decoders decode the C codewords into C / 2 bits in one clock, perform circular parallel processing on the data, and selectively transmit the C codewords from the plurality of input buffers Steps to Receive
Lt; / RTI >
Wherein the first Viterbi decoder and the second Viterbi decoder of the plurality of Viterbi decoders comprise:
At least one bit among 3N bits to be input is common,
Wherein the first Viterbi decoder processes the common bits in the second Viterbi decoder and the second Viterbi decoder processes the common bits in the first Viterbi decoder at a second point subsequent to the first point in time, , 2C bits per clock are input from the diphoon chorder module, thereby enabling a 2x-speed decoding process on the data
Parallel processing decoding method.
삭제delete 제5항에 있어서,
상기 입력 버퍼에서 상기 비터비 복호기로의 상기 C개의 부호어 전달시,
상기 병렬 처리 복호화 장치에서, 상기 C개의 부호어의 비트 수가 기준값 보다 작거나 같으면, 상기 다수의 복호기 중 임의 제1 비터비 복호기에서 복호화하도록 하는 단계
를 더 포함하는 병렬 처리 복호화 방법.
6. The method of claim 5,
When transmitting the C codewords from the input buffer to the Viterbi decoder,
And performing, in the parallel processing decoding apparatus, decoding by a first one of the plurality of decoders if the number of bits of the C codewords is less than or equal to a reference value
Further comprising the steps of:
제5항에 있어서,
상기 병렬 처리 복호화 장치에서, 상기 C개의 부호어의 비트 수가 기준값 보다 크면, 상기 입력 버퍼에서 상기 비터비 복호기로, 상기 C개의 부호어를 순환하여 입력하는 단계
를 더 포함하는 병렬 처리 복호화 방법.
6. The method of claim 5,
Wherein if the number of bits of the C codewords is larger than a reference value, the parallel processing decoder performs a step of cyclically inputting the C codewords from the input buffer to the Viterbi decoder
Further comprising the steps of:
KR1020120146766A 2012-12-14 2012-12-14 Decoding apparatus and method for parallel processing KR101728567B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120146766A KR101728567B1 (en) 2012-12-14 2012-12-14 Decoding apparatus and method for parallel processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120146766A KR101728567B1 (en) 2012-12-14 2012-12-14 Decoding apparatus and method for parallel processing

Publications (2)

Publication Number Publication Date
KR20140077692A KR20140077692A (en) 2014-06-24
KR101728567B1 true KR101728567B1 (en) 2017-04-19

Family

ID=51129557

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120146766A KR101728567B1 (en) 2012-12-14 2012-12-14 Decoding apparatus and method for parallel processing

Country Status (1)

Country Link
KR (1) KR101728567B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080298513A1 (en) 2007-05-31 2008-12-04 Sinan Gezici Adaptive Sliding Block Viterbi Decoder
KR100888508B1 (en) * 2007-12-13 2009-03-12 한국전자통신연구원 Apparatus and method for viterbi decoding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080298513A1 (en) 2007-05-31 2008-12-04 Sinan Gezici Adaptive Sliding Block Viterbi Decoder
KR100888508B1 (en) * 2007-12-13 2009-03-12 한국전자통신연구원 Apparatus and method for viterbi decoding

Also Published As

Publication number Publication date
KR20140077692A (en) 2014-06-24

Similar Documents

Publication Publication Date Title
US10536171B2 (en) Encoding/decoding method, device, and system
CN107846261B (en) Apparatus and method for parallel sequential cancellation decoding and sequential cancellation list decoding
US6304995B1 (en) Pipelined architecture to decode parallel and serial concatenated codes
KR102601215B1 (en) Apparatus for polar coding
US7246294B2 (en) Method for iterative hard-decision forward error correction decoding
CN101478314B (en) Reed-solomon coder-decoder and decoding method thereof
US20170075754A1 (en) Apparatus and method for parallel crc units for variably-sized data frames
US9362950B2 (en) High performance CRC calculation with small footprint
CN105103454A (en) Modular and scalable cyclic redundancy check computation circuit
JP7012479B2 (en) Reed-Solomon Decoder and Decoding Method
US8250448B1 (en) Method of and apparatus for implementing a decoder
US7231575B2 (en) Apparatus for iterative hard-decision forward error correction decoding
US8397150B1 (en) Method, apparatus and computer program for calculating a branch metric
US8924829B2 (en) Device and method for turbo-encoding a block of data
KR101874537B1 (en) Method and Apparatus for Parallel Decoding of Polar Codes
KR101728567B1 (en) Decoding apparatus and method for parallel processing
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
KR101436973B1 (en) Supercharged codes
CN111277830A (en) Encoding method, decoding method and device
US8745465B1 (en) Detecting a burst error in the frames of a block of data bits
KR102109589B1 (en) Overhead minimized coding technique and hardware implementation method including transmission/reception error correction technique for high-speed serial interface
US20160365873A1 (en) Non-Binary LDPC Codes Over Non-Associative Finite Division Near Rings
KR101355633B1 (en) Encoder and encoding method
JP6807030B2 (en) Data processing device and data processing method
TW202110101A (en) Iterative decoding circuit and decoding method

Legal Events

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