KR20020089310A - Viterbi decoding with path metric update implemented in the order of bit-slices - Google Patents

Viterbi decoding with path metric update implemented in the order of bit-slices Download PDF

Info

Publication number
KR20020089310A
KR20020089310A KR1020027008047A KR20027008047A KR20020089310A KR 20020089310 A KR20020089310 A KR 20020089310A KR 1020027008047 A KR1020027008047 A KR 1020027008047A KR 20027008047 A KR20027008047 A KR 20027008047A KR 20020089310 A KR20020089310 A KR 20020089310A
Authority
KR
South Korea
Prior art keywords
score
bit
bit slices
slices
update
Prior art date
Application number
KR1020027008047A
Other languages
Korean (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 claimed from PCT/GB2001/000444 external-priority patent/WO2001067619A1/en
Publication of KR20020089310A publication Critical patent/KR20020089310A/en

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/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10268Improvement or modification of read or write signals bit detection or demodulation methods
    • G11B20/10287Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors
    • G11B20/10296Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors using the Viterbi algorithm
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • 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
    • 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
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 디지털 컴퓨터에서의 소프트웨어 구현에 적합한 비터비 디코더를 위한 ACS 동작의 비트-슬라이스 구현에 관한 것이다. 첫 번째 비트-슬라이스는 모든 상태에 대한 경로측정의 LSB를 구비하는 단일워드로 형성되고, 두 번째 비트-슬라이스는 다음 최상위 비트로 형성되어 이런 식으로 MSB까지 간다. ACS 동작의 추가는 경로측정의 LSB를 포함하는 추가로 시작하여 비트-슬라이스 단위로 수행된다. 더욱이, ACS 동작의 비교부는 비트-슬라이스 단위로 뺄셈을 이용하여 수행된다. 그러므로, 본 발명은 모든 상태에 대한 경로측정이 동시에 갱신되는 것을 가능하게 하고 종래의 기술보다 빠른 속도개선을 제공하고, 경로측정의 하나의 뱅크가 이용된다.The present invention relates to a bit-slice implementation of ACS operation for a Viterbi decoder suitable for software implementation in a digital computer. The first bit-slice is formed of a single word with the LSB of the path measurement for all states, and the second bit-slice is formed of the next most significant bit and thus goes to the MSB. The addition of the ACS operation is performed in bit-slice units starting with the addition including the LSB of the path measurement. Moreover, the comparator of the ACS operation is performed using subtraction on a bit-slice basis. Therefore, the present invention enables path measurements for all states to be updated at the same time, provides faster speed improvement than the prior art, and one bank of path measurements is used.

Description

비트-슬라이스의 순서로 구현되는 경로측정 갱신을 갖는 비터비 디코딩 방법{VITERBI DECODING WITH PATH METRIC UPDATE IMPLEMENTED IN THE ORDER OF BIT-SLICES}VITERBI DECODING WITH PATH METRIC UPDATE IMPLEMENTED IN THE ORDER OF BIT-SLICES}

비트오류는 전파, 적외선, 하드디스크의 자기헤드 등 같은 매체를 통하여 데이터를 전송할 때에 종종 일어난다. 따라서 전송되기 전에 원래의 데이터에 리던던시(redundancy)를 추가하여 전송전의 데이터를 인코드하는 것은 잘 알려져 있다. 데이터 스트림이 수신될 때에 적절한 디코더가 사용되어 비트오류를 없애기 위한 리던던시를 이용하여 인코드된 데이터 스트림을 디코드한다. 물론, 인코드되는 동안 리던던시가 더 많이 추가되면 더 많은 비트를 전송해야 하고 따라서 추가되는 리던던시의 양과, 리더던시 추가의 결과로서 얻어지는 비트오류의 제거 사이에는 균형이 필요하다.Bit errors often occur when data is transmitted through media such as radio waves, infrared rays, or the magnetic head of a hard disk. Therefore, it is well known to encode data before transmission by adding redundancy to the original data before transmission. When a data stream is received, an appropriate decoder is used to decode the encoded data stream with redundancy to eliminate bit errors. Of course, as more redundancy is added during encoding, more bits have to be transmitted and thus a balance is needed between the amount of redundancy added and the elimination of bit errors resulting as a result of adding redundancy.

하나의 공통된 인코딩 기술은 종종 컨벌루셔널 인코딩이라고 일컬어지는데,이는 복수개의 코드를 포함하는 인코드된 데이터 스트림을 생성한다. 인코더가 인코드될 입력, 예를 들어 데이터 비트를 입력받으면 이는 수신된 입력과 인코더에 의해 수신된 다수의 이전 입력에 따른 코드를 생성한다. "제한 길이"라는 용어는 출력코드를 생성하기 위하여 컨벌루셔널 인코더가 사용하는 입력의 개수를 가리킨다. 예를 들어, 제한 길이 "k"가 7이면, 이는 컨벌루셔널 인코더에 의해 생성된 출력코드가 현재의 입력과 이전 6개의 입력에 의존한다는 것을 의미한다. 따라서 각각의 입력에 대하여 인코더가 가질 수 있는 2k-1개의 이전 상태가 있다는 것을 알게 될 것이다.One common encoding technique is often referred to as convolutional encoding, which produces an encoded data stream comprising a plurality of codes. When the encoder receives an input to be encoded, for example a data bit, it generates a code according to the received input and a number of previous inputs received by the encoder. The term "limit length" refers to the number of inputs that a convolutional encoder uses to generate an output code. For example, if the limit length "k" is 7, this means that the output code generated by the convolutional encoder depends on the current input and the previous six inputs. Thus, it will be appreciated that for each input there are 2 k-1 previous states that the encoder can have.

위의 형태의 인코딩에 대하여 많은 다른 용도들이 있다. 예를 들어 하드디스크 드라이브, 이동전화기, 디지털 오디오 방송(DAB) 라디오. DAB에 관련된 표준의 한 예는 ETSI(European Telecommunications Standard Institute) ETS 300 401, 1997년 5월 (제2 판) 표준으로 정해진 "라디오 방송 시스템; 이동, 휴대, 고정 수신기들로의 디지털 오디오 방송(DAB)"이다. DAB 라디오에서는 인코더의 제한길이 k는 7이므로, 각 입력 비트에 대하여 (6개의 이전 입력 비트에 기초하여) 인코더가 가질 수 있는 64개의 상태가 있다.There are many other uses for this type of encoding. For example, hard disk drives, mobile phones, digital audio broadcasting (DAB) radios. An example of a DAB-related standard is the "Radio Broadcasting System" set by the European Telecommunications Standard Institute (ETSI) ETS 300 401, May 1997 (Second Edition) standard; digital audio broadcasting to mobile, portable and fixed receivers (DAB )"to be. In DAB radio, since the encoder's limit length k is 7, there are 64 states that the encoder can have (based on six previous input bits) for each input bit.

데이터 비트의 원래의 시퀀스가 인코드되어 인코드된 데이터 스트림을 만들면, 데이터 스트림을 디코드하고 그 안에 있는 리던던시를 이용하여 수신된 정보에서 어떤 오류라도 찾아 수정하는 수신단에 기술이 제공될 필요가 있다는 것을 알게 될 것이다. 그러한 디코딩을 수행하는 데에 종종 사용되는 하나의 알고리듬은 인코드된 데이터 스트림을 컨벌루셔널하게 디코드하는 데에 전형적으로 이용되는 비터비(Viterbi) 알고리듬이다. 비터비 알고리듬의 일반적인 설명은 John G. Proakis에 의해 "Digital Communication", (제3 판), McGraw-Hill Inc.의 간행물에 기재되어 있다.If the original sequence of data bits is encoded to create an encoded data stream, the technique needs to be provided to the receiving end to decode the data stream and use redundancy therein to find and correct any errors in the received information. You will know One algorithm often used to perform such decoding is the Viterbi algorithm, which is typically used to convolutionally decode an encoded data stream. A general description of the Viterbi algorithm is described by John G. Proakis in the publication of "Digital Communication", (3rd edition), McGraw-Hill Inc.

비터비 기술에 따라서, 도 1에 나타난 바와 같은 표가 생성된다. 이는 2k-1개의 상태 각각에 대한 엔트리를 가지고, 인코드된 데이터 스트림에 각각의 코드의 수신에 따라 갱신된다. 따라서 도 1에 나타난 바와 같이 각각의 엔트리는 상태를 나타내는 필드(20)와, 그 상태와 관련된 "메트릭(metric)" 또는 스코어를 나타내는 필드(30)와, 관련된 상태가 가장 가까운 상태임을 가정하는 원래의 데이터 시퀀스 내의 비트로 인식되는 소정 개수의 비트를 나타내는 경로 히스토리(path history)(40)를 가질 것이다.In accordance with the Viterbi technique, a table as shown in FIG. 1 is generated. It has an entry for each of the 2 k-1 states and is updated upon receipt of each code in the encoded data stream. Thus, as shown in FIG. 1, each entry is originally assumed to have a field 20 indicating a state, a "metric" or score 30 associated with that state, and a state associated with the nearest state. It will have a path history 40 representing a predetermined number of bits that are recognized as bits in the data sequence of.

각각의 코드가 입력되면 각각의 상태에 대한 메트릭(30)은 갱신되어야 하고 "최고의" 메트릭을 갖는 상태(예를 들어, 전형적으로 구현에 따라 가장 낮거나 가장 높은 값을 갖는 것)는 올바른 경로를 갖는 것으로서 선택된다. 따라서 상태의 경로 히스토리(40)에서 가장 오래된 비트는 이 스테이지에 대한 올바른 출력으로서의 출력이다.As each code is entered, the metric 30 for each state must be updated and the state with the "best" metric (e.g., typically the one with the lowest or highest value, depending on the implementation), must follow the correct path. It is selected as having. Thus, the oldest bit in the path history 40 of the state is the output as the correct output for this stage.

각각의 상태에 대하여 메트릭이 전형적으로 어떻게 갱신되는지를 나타내기 위하여 도 2를 참조한다. 이는 새로운 상태가 이전 상태와 어떻게 관련되는지를 나타낸다. 특정한 상태가 옳다고 가정하면, 새로운 비트가 인코더에 의해 수신될 때에 비트는 논리 0 값 또는 논리 1 값을 가지므로 인코더로 코드 출력을 생성하는 데에 사용되는 데이터에 대한 2가지 가능성이 있다는 것을 알게 될 것이다. 신호의오염의 가능성 때문에 코드가 디코더에 수신되면 표 10에서의 각각의 상태에 대하여 유사도를 결정할 필요가 있다. 여기서 유사도란 그 상태가 코드를 생성할 새로운 입력비트와 함께 사용되는 k-1개의 이전 입력 비트를 나타내는 것을 의미한다.Reference is made to FIG. 2 to indicate how the metric is typically updated for each state. This indicates how the new state relates to the previous state. Assuming a certain state is correct, you will know that there are two possibilities for the data used to generate the code output to the encoder because the bits have a logical zero value or a logical one value when a new bit is received by the encoder. will be. If the code is received at the decoder due to the possibility of signal contamination, it is necessary to determine the similarity for each state in Table 10. Similarity here means that the state represents k-1 previous input bits used with the new input bits to generate the code.

도 2를 참조하면, 이는 제한 길이 k가 4임을 가정하면 3개의 이전 입력비트가 코드를 생성할 새로운 입력비트와 함께 사용될 가능한 상태를 나타낸다. 도면의 왼쪽에는 3개의 이전비트의 모든 8개의 가능한 상태가 도시되어 있는 것을 보게 될 것이다. 001인 옛 상태의 일례를 생각하면, 인코더에 의해 생성되는 코드가 기초하는 데이터는 0010 또는 0011이고 따라서 이 코드들을 수신된 코드와 비교하여 전송되는 코드를 생성하는 데에 필요한 비트가 진짜로 0010 또는 0011인지의 유사도를 결정한다는 것을 알게 될 것이다. 이 비교는 상태에 대한 갱신된 스코어를 생성하는 데에 사용될 수 있는 갱신값(이는 종종 해밍거리(Hamming distance)로 일컬어짐)을 얻게 한다.Referring to FIG. 2, this represents a state where three previous input bits can be used with a new input bit to generate a code, assuming that the limit length k is four. On the left side of the figure you will see that all eight possible states of the three previous bits are shown. Considering an example of the old state, which is 001, the data on which the code generated by the encoder is based is 0010 or 0011 and therefore the bits needed to generate the transmitted code by comparing these codes with the received code are really 0010 or 0011. You will find that it determines the similarity of cognition. This comparison yields an update value (sometimes referred to as a Hamming distance) that can be used to generate an updated score for the state.

역시 도 2를 보면, 일단 코드가 처리되더라도, 표 10에 나타난 상태들의 같은 세트가 있고, 이러한 상태가 옛 상태에 관련된 방식은 매우 복잡하다. 예를 들어 새로운 상태 010가 이전의 상태 001 또는 101로부터 일어났을 수도 있다. 두 경우 모두 수신된 새로운 비트가 0이다. 따라서 해밍거리는 수신된 코드를 0010과 1010으로 기대되는 코드와 비교함으로써 각각의 가능성에 대하여 각각 생성될 수 있다. 옛 상태 001과 관련된 메트릭과 해당 해밍거리는 그 메트릭에 추가되어 가능한 갱신 메트릭을 생성한다. 이러한 처리는 상태 101과 관련된 메트릭에 대하여 반복된다. 2개의 가능한 메트릭들 중 최고치(예를 들어, 해밍거리가 두 개의 코드 사이의 정합으로서 증가하도록 정의되면 가장 작은 값을 갖는 것이 더 나빠진다.)로 여겨지는 것이 어느 것이든 그것이 선택되고 상태 010에 대한 새로운 메트릭으로서 사용된다. 더욱이, 관계된 비트는 관계된 경로 히스토리에 추가된다. 예를 들어 상태 010이 상태 001로부터 발생되었다고 생각되면 그것은 논리적 0 값이 001에 대한 경로 히스토리에 추가되어야 한다고 볼 수도 있다. 이 경로 히스토리는 그 상태의 새로운 경로 히스토리로서 상태 010에 복사된다. 그렇지 않으면 만일 상태 010이 상태 101로부터 일어났다고 생각되지 않으면 그것은 논리적 1 값이 상태 101에 대한 경로 히스토리에 추가되어야 한다고 볼 수도 있다. 그리고 이 경로 히스토리는 그 상태에 대한 새로운 경로 히스토리로서 상태 010에 복사된다.Referring again to Figure 2, once the code is processed, there is the same set of states shown in Table 10, and the way these states relate to the old states is very complex. For example, a new state 010 may have arisen from the previous state 001 or 101. In both cases, the new bit received is zero. Thus, the hamming distance can be generated for each possibility by comparing the received code with the code expected at 0010 and 1010. The metric associated with the old state 001 and the corresponding hamming distance are added to that metric to generate possible update metrics. This process is repeated for the metric associated with state 101. Whichever is considered the highest of the two possible metrics (for example, if the hamming distance is defined to increase as a match between two codes becomes worse), it is selected and in state 010 Used as a new metric for. Moreover, the relevant bits are added to the relative path history. For example, if state 010 is thought to have originated from state 001, it may be considered that a logical zero value should be added to the path history for 001. This path history is copied to state 010 as a new path history of that state. Otherwise, if state 010 is not thought to have originated from state 101 it may be considered that a logical 1 value should be added to the path history for state 101. This path history is then copied to state 010 as a new path history for that state.

이상의 처리는 표 10에서의 각각의 상태에 대하여 수행된다. 그 마지막 결과는 각각의 메트릭(30)과 경로 히스토리들이 갱신되는 것이다. 또한, 경로 히스토리가 이미 충만하면 최고의 메트릭을 갖는 상태와 관련된 경로 히스토리에서의 가장 오래된 비트가 이 때에 원래의 데이터 시퀀스에서의 올바른 비트로 여겨지는 비트로서 출력될 수도 있다.The above processing is performed for each state in Table 10. The final result is that each metric 30 and path histories are updated. Also, if the path history is already full, the oldest bit in the path history associated with the state with the highest metric may then be output as a bit that is considered to be the correct bit in the original data sequence at this time.

이상과 같이 각각의 상태갱신에 대하여 2개의 메트릭은 (수신된 코드에 의존하는) 2개의 해밍거리에 추가될 필요가 있고, (더 작은 거리가 더 좋은 것으로 가정하면) 둘 중의 더 작은 것이 선택되고 갱신된 상태와 관련되어 저장된다. 이후에 출력비트가 디코더로부터 요구되면 모든 메트릭은 비교되고 가장 좋은 메트릭을 갖는 상태가 원래의 데이터와 가장 가까운 경로와 관련이 있다고 생각된다.As above, for each state update two metrics need to be added to two Hamming distances (depending on the received code), the smaller of the two (assuming the smaller distance is better) and It is stored in association with the updated state. If an output bit is later requested from the decoder, all the metrics are compared and the state with the best metric is considered to be related to the path closest to the original data.

이상과 같은 설명으로부터, 두 개의 결과를 비교하여 그 중에 하나를 선택하기 위하여 상술한 각각의 상태 갱신이 2개의 해밍 거리에 추가되는 2개의 메트릭을 요구하므로, 처리의 가장 큰 부분은 각각의 상태 갱신을 결정하도록 수행될 필요가 있다. 이 처리는 표 10에서의 각각의 상태에 대하여 반복될 필요가 있다.From the above description, since each state update described above requires two metrics added to two Hamming distances in order to compare two results and select one of them, the largest part of the process is to update each state. To be determined. This process needs to be repeated for each state in Table 10.

따라서, 본 발명은 각각의 상태에 대하여 메트릭을 갱신하기 위한 개선된 기술을 제공하는 데에 그 목적이 있다.It is therefore an object of the present invention to provide an improved technique for updating the metric for each state.

발명의 개요Summary of the Invention

제1 관점에서 보면 본 발명은 원래의 시퀀스에서 제1 소정 개수의 이전 데이터 비트와 현재의 데이터 비트에 각각이 의존하는 복수개의 코드를 포함하고 데이터 비트의 원래의 시퀀스를 나타내는 인코드된 데이터 스트림을 디코드하는 방법에 있어서, 제1 소정 개수의 이전 데이터 비트의 다수개의 가능한 상태들 각각에 대하여 상기 해당 상태가 상기 제1 소정 개수의 이전 데이터 비트를 나타내는 유사도를 나타내는 스코어를 제공하는 단계(a)와, 처음의 순서로 상기 스코어를 배열하는 단계(b)와, 코드를 수신하는 단계(c)와, 상기 수신된 코드에서 현재의 데이터의 2개의 가능한 값들 각각이 주어지고, 상기 상태가 상기 제1 소정 개수의 비트를 나타내는 상기 수신된 코드에 기초하여 상기 유사도를 나타내는 2개의 갱신값들을 각각의 상태에 대하여 결정하는 단계(d)와, 상기 단계(b)에서 배열된 바와 같은 스코어를 종합적으로 나타내도록 각각의 상기 스코어로부터 소정의 비트를 각각 포함하는 제1 복수개의 스코어 비트 슬라이스를 저장하는 단계(e)와, 상기 스코어를 재정렬하여 상기 재정렬된 스코어를 종합적으로 나타내도록 각각의 상기 재정렬된 스코어로부터 소정의 비트를 각각 포함하는 제2 복수개의 스코어 비트 슬라이스를 저장하는 단계(f)와, 상기 제1 복수개의 스코어 비트 슬라이스에 대한 제1 복수개의 갱신 비트 슬라이스와 상기 제2 복수개의 스코어 비트 슬라이스에 대한 제2 복수개의 갱신 비트 슬라이스를 상기 갱신값으로부터 생성하는 단계(g)와, 상기 제1 복수개의 스코어 비트 슬라이스와 상기 제1 복수개의 갱신 비트 슬라이스로부터 제1 후보 복수개의 갱신된 스코어 비트 슬라이스를 생성하고, 상기 제2 복수개의 스코어 비트 슬라이스와 상기 제2 복수개의 갱신 비트 슬라이스로부터 제2 후보 복수개의 갱신된 스코어 비트 슬라이스를 생성하는 단계(h)와, 비트 슬라이스로 표현되는 각각의 스코어에 대하여 소정의 기준을 적용하여 상기 제1 후보 복수개의 갱신된 스코어 비트 슬라이스 또는 제2 후보 복수개의 갱신된 스코어 비트 슬라이스에 대하여 비트를 선택함으로써 복수개의 갱신된 스코어 비트 슬라이스를 생성하는 단계(i)를 포함하며, 모든 스코어는 동시에 갱신되는 것을 특징으로 하는 원래의 시퀀스를 나타내는 인코드된 데이터 스트림을 디코드하는 방법을 제공한다.In a first aspect, the present invention provides an encoded data stream comprising a plurality of codes each dependent on a first predetermined number of previous data bits and a current data bit in an original sequence and representing an original sequence of data bits. A method of decoding, comprising: (a) providing, for each of a plurality of possible states of a first predetermined number of previous data bits, a score indicating a degree of similarity in which the corresponding state represents the first predetermined number of previous data bits; (B) arranging the scores in a first order, receiving a code (c), and each of the two possible values of current data in the received code, wherein the state is the first Based on the received code representing a predetermined number of bits, two update values representing the similarity are determined for each state. (D) storing a first plurality of score bit slices each comprising a predetermined bit from each of said scores so as to collectively represent the scores as arranged in step (b); (F) storing a second plurality of score bit slices each including a predetermined bit from each of the rearranged scores to rearrange the scores to collectively represent the rearranged scores; (G) generating a first plurality of update bit slices for a score bit slice and a second plurality of update bit slices for the second plurality of score bit slices from the update value, and the first plurality of score bits A first candidate plurality of updated score bit slices from a slice and the first plurality of update bit slices (H) generating a second candidate plurality of updated score bit slices from the second plurality of score bit slices and the second plurality of update bit slices, and for each score represented by a bit slice. (I) generating a plurality of updated score bit slices by applying bits to the first candidate plurality of updated score bit slices or the second candidate plurality of updated score bit slices by applying a predetermined criterion to And a score, wherein all the scores are updated at the same time.

각각의 상태에 대한 스코어를 한 번에 하나씩 갱신하기보다는 본 발명은 모든 상태에 대한 스코어가 동시에 갱신되도록 한다. 종래 기술의 접근법에서는 각각의 스코어는 개별 워드로 저장된다. 그러나 본 발명에 따르면, 스코어의 동시 갱신은 계산에 요구되는 관련값들을 비트 슬라이싱함으로써 성취된다. 따라서 본 발명의 바람직한 실시예에 따라 모든 상태에 대한 스코어의 가장 낮은 자리수의 비트는 (상태의 개수에 따라 다중 기계 워드, 예를 들어 다중 32-비트 기계 워드를 구성할 수도 있는) 단일 워드 내에 함께 잡히고, 모든 상태의 스코어의 다음으로 가장 높은 자리의 비트는 다른 워드에서 잡히고, 이런 식으로 된다. 그러므로, 각각의 스코어는 8비트의 정확성을 가지도록 요구되는 예를 생각해 보면, 모든 스코어를 잡는 8개의 비트 슬라이스가 전형적으로 제공된다. 이 비트 슬라이싱 기술은 다음의 두 개의 표를 참조하여 예시하는 식으로 이하 설명된다. 표 1은 종래기술인데, 스코어 a, b, c, d, …, z가 개별 워드에 저장된다. 표 2는 바람직한 실시예의 비트 슬라이싱 기술을 나타내는데, 각각의 워드("비트 슬라이스")는 각각의 스코어로부터의 소정의 비트를 포함한다.Rather than updating the scores for each state one at a time, the present invention allows the scores for all states to be updated at the same time. In the prior art approach each score is stored in a separate word. According to the invention, however, simultaneous updating of scores is achieved by bit slicing the relevant values required for the calculation. Thus, in accordance with a preferred embodiment of the present invention, the lowest digit bits of the score for all states are together in a single word (which may constitute multiple machine words, for example multiple 32-bit machine words, depending on the number of states). Is taken, the next highest bit of the score of all states is taken in another word, and so on. Therefore, considering the example where each score is required to have 8 bits of accuracy, an eight bit slice is typically provided that takes all the scores. This bit slicing technique is described below by way of example with reference to the following two tables. Table 1 shows the prior art, with scores a, b, c, d,. , z is stored in a separate word. Table 2 shows the bit slicing techniques of the preferred embodiment, where each word ("bit slice") contains a predetermined bit from each score.

본 발명에 따르면, 제1 복수개의 스코어 비트 슬라이스는 스코어의 초기정렬에 기초하여 저장된다. 그러나, 도 2를 참조하여 상술한 바와 같이 어떤 특정한 상태를 갱신하는 2개의 가능한 루트가 있다. 본 발명에 따르면, 이 이슈는 스코어를 재정렬하고 제2 복수개의 스코어 비트 슬라이스를 저장하여 두 개의 개별적인 복수개의 스코어 비트 슬라이스가 지정되도록 재정렬된 스코어를 종합적으로 나타냄으로써 이루어진다.According to the present invention, the first plurality of score bit slices are stored based on an initial alignment of the scores. However, there are two possible routes for updating any particular state as described above with reference to FIG. According to the present invention, this issue is achieved by collectively representing the rearranged scores such that the scores are reordered and the second plurality of score bit slices are stored so that two separate plurality of score bit slices are designated.

더욱이, 본 발명에 따르면, 갱신값(예를 들어 해밍거리)도 비트 슬라이스로서 저장된다. 그리고, 제1 복수개의 갱신 비트 슬라이스는 제1 복수개의 스코어 비트 슬라이스를 위하여 생성되고, 제2 복수개의 갱신 비트 슬라이스는 제2 복수개의 스코어 비트 슬라이스를 위하여 생성된다.Furthermore, according to the present invention, the update value (e.g. hamming distance) is also stored as a bit slice. The first plurality of update bit slices are generated for the first plurality of score bit slices, and the second plurality of update bit slices are generated for the second plurality of score bit slices.

제1 후보 복수개의 갱신된 스코어 비트 슬라이스는 제1 복수개의 스코어 비트 슬라이스와 제1 복수개의 갱신 비트 슬라이스로부터 생성되고, 마찬가지로 제2 후보 복수개의 갱신된 스코어 비트 슬라이스는 제2 복수개의 스코어 비트 슬라이스와 제2 복수개의 갱신 비트 슬라이스로부터 생성된다. 바람직한 실시예에서 이들후보 복수개의 갱신된 스코어 비트 슬라이스는 해당 복수개의 스코어 비트 슬라이스와 해당 복수개의 갱신 비트 슬라이스를 함께 합함으로써 생성된다.The first candidate plurality of updated score bit slices are generated from the first plurality of score bit slices and the first plurality of update bit slices, and likewise the second candidate plurality of updated score bit slices is generated from the second plurality of score bit slices. Is generated from the second plurality of update bit slices. In a preferred embodiment, these candidate plurality of updated score bit slices are generated by summing the plurality of score bit slices and the plurality of update bit slices together.

본 발명에 따르면, 각각의 개별적인 스코어에 대하여, 스코어가 제1 후보 복수개의 갱신된 스코어 비트 슬라이스 또는 제2 후보 복수개의 갱신된 스코어 비트 슬라이스로부터 선택되어야만 하는지를 결정하도록 소정의 기준을 적용하는 첫 번째 단계가 채용된다. 이것은 모든 갱신된 스코어를 반영하는 최종 복수개의 갱신된 스코어 비트 슬라이스를 생성하게 되어 모든 스코어가 동시에 갱신되는 것처럼 보인다.According to the present invention, a first step of applying a predetermined criterion to determine whether for each individual score a score should be selected from a first candidate plurality of updated score bit slices or a second candidate plurality of updated score bit slices Is employed. This will produce a final plurality of updated score bit slices that reflect all the updated scores so that all the scores appear to be updated at the same time.

바람직한 실시예에서, 본 발명의 방법은 소프트웨어로 구현되고, 모든 스코어를 동시에 갱신하기 때문에 알려진 종래기술보다 현저한 잠재적인 속도개선을 제공한다.In a preferred embodiment, the method of the present invention is implemented in software and provides a significant potential improvement over known prior art because it updates all scores simultaneously.

바람직한 실시예에서, 인코드된 데이터 스트림으로부터 더 이상의 코드를 수신하자마자 복수개의 갱신된 스코어 비트 슬라이스는 제1 복수개의 스코어 비트 슬라이스로 취급되고, 더 이상의 코드에 기초하는 단계(g)에 사용된 갱신값으로 단계(f∼i)가 반복된다.In a preferred embodiment, upon receiving more codes from the encoded data stream, the plurality of updated score bit slices are treated as the first plurality of score bit slices and the update used in step (g) based on the further code. Steps f to i are repeated with the value.

도 2를 참조하여 이미 설명된 바와 같이, 알려진 종래기술의 시스템에서는 메트릭은 그것들이 읽히는 같은 상태에 재기록되지 않고, 정말로 몇 개의 메트릭이 겹칠 수도 있다. 이러한 이유로, 전형적인 종래기술은 메트릭과 경로 히스토리의 2개의 뱅크를 이용한다. 하나의 세트는 기록하는 데에 사용되고 다른 하나는 읽는 데에 사용된다. 일단 모든 상태가 갱신되면 그것들은 교환된다. 이러한 종래기술에서는 상태의 위치들은 같게 유지되고 메트릭은 옮겨진다. 특정한 상태 n과 N 상태에 대하여 비터비는:As already described with reference to FIG. 2, in known prior art systems the metrics are not rewritten in the same state in which they are read, and indeed several metrics may overlap. For this reason, a typical prior art uses two banks of metric and path history. One set is used for writing and the other is used for reading. Once all states are updated they are exchanged. In this prior art the positions of the states remain the same and the metric is shifted. For certain states n and N states, Viterbi is:

메트릭[n*2]는 메트릭[n] 또는 메트릭[n+N/2].Metric [n * 2] is the metric [n] or metric [n + N / 2].

메트릭[n*2+1]는 메트릭[n] 또는 메트릭[n+N/2].Metric [n * 2 + 1] is the metric [n] or metric [n + N / 2].

이것은 예를 들어 N이 8이고 n이 0부터 7까지 변할 때에 도 2의 예로부터의 경우로 보일 수 있다.This can be seen, for example, from the example of FIG. 2 when N is 8 and n varies from 0 to 7.

그러므로, 각각의 갱신의 끝에서 각각의 비트 슬라이스에서의 모든 비트가 돌 필요가 있으므로, 복수개의 비트 슬라이스로서의 스코어를 저장하는 것은 많은 복잡함이 야기되는 것으로 나타날 것이다. 그러나, 본 발명의 실시예에 따르면, 각각의 반복에서 복수개의 갱신된 스코어 비트 슬라이스는 각각의 비트 슬라이스에 비트의 어떠한 재배열도 없이 제1 복수개의 스코어 비트 슬라이스로서 취급되고 스코어는 단지 재배열되어 제2 복수개의 스코어 비트 슬라이스를 형성한다. 그러한 바람직한 실시예에서 각각의 코드는 k비트에 의존적이라는 것을 가정하면, 단계(f∼i)j8 각각의 반복 중에 복수개의 갱신된 스코어 비트 슬라이스 내에 포함된 개별적인 스코어에 의해 나타나는 상태는 변한다. 그러므로 이 접근법으로써 종래기술의 경우와 같은 위치에 상태를 유지시키지 않고 적어도 하나의 메트릭의 세트가 같은 위치에 있도록 유지하고, 메트릭이 나타내는 명목상의 상태들이 각각의 반복 동안 변한다. 그러나, 상대적으로 짝을 횟수의 반복 내에서 스코어는 초기 정렬상태로 된다.Therefore, storing all of the scores as a plurality of bit slices will appear to cause a lot of complexity, since at the end of each update all bits in each bit slice need to be turned. However, in accordance with an embodiment of the present invention, in each iteration, the plurality of updated score bit slices are treated as the first plurality of score bit slices without any rearrangement of bits in each bit slice and the scores are only rearranged so that 2 form a plurality of score bit slices. Assuming that each code in such a preferred embodiment is k-bit dependent, the state represented by the individual scores contained within the plurality of updated score bit slices changes during each iteration of steps f-i8. This approach therefore keeps at least one set of metrics in the same position without maintaining the state at the same position as in the prior art, and the nominal states represented by the metric change during each iteration. However, within a relatively repeated number of iterations the score is initially aligned.

바람직한 실시예에서, 레코드는 k-1의 각각의 반복에 대하여 개별적인 스코어에 의해 나타나는 상태로 유지된다. 따라서, 반복이 수행되고 있는 것을 알고 어느 상태가 어떤 특정한 스코어에 관계가 있는지 결정할 수 있다.In a preferred embodiment, the record remains as indicated by the individual scores for each iteration of k-1. Thus, knowing that the iteration is being performed, one can determine which state relates to which particular score.

바람직한 실시예에서, 단계(f)에서 스코어를 재정렬하는 것은 특정한 반복에 의존적이다. 그러나, 바람직한 실시예에서 제1 복수개의 스코어 비트 슬라이스를 재정렬하지 않으므로, 제2 복수개의 스코어 비트 슬라이스를 형성하기 위하여 스코어를 재정렬하는 것이 도 2를 참조하여 상술된 복잡한 방사형(fanning out) 운동이 아니라 단순히 메트릭의 선형 재정렬을 포함하는 것이 발견되었다. 따라서, 본 발명의 바람직한 실시예에서는 재정렬을 수행하는 데에 필요한 다수의 동작은 종래기술로 지칭되는 복잡한 재정렬을 염두하는 데에 요구되는 것보다 상당히 적다.In a preferred embodiment, reordering the scores in step (f) depends on the particular iteration. However, in the preferred embodiment, since the first plurality of score bit slices are not rearranged, reordering the scores to form the second plurality of score bit slices is not the complex fanning out motion described above with reference to FIG. 2. It was found to simply include linear reordering of the metric. Thus, in a preferred embodiment of the present invention, the number of operations required to perform the reordering is considerably less than what is required to keep in mind the complex reordering referred to in the prior art.

바람직한 실시예에 있어서, 단계(d)는 k-1개의 각각의 반복에 대하여 갱신 비트 슬라이스의 룩업 테이블을 생성하기 위하여 인코드된 데이터 스트림을 디코드하기에 앞서 실행된다. 그래서, 단계(g)에서 갱신 비트 슬라이스가 수신된 코드와, 반복과, 갱신 비트 슬라이스가 제1 또는 제2 복수개의 스코어 비트 슬라이스인지의 여부에 기초하여 룩업 테이블로부터 읽힌다. 바람직한 실시예에서 스코어는 k-1 반복 다음의 초기 정렬로 되돌아가고, 갱신 비트 슬라이스에 대한 유한개의 가능성들만 존재한다는 것이 명백하다. 따라서, 모든 가능한 갱신 비트 슬라이스를 제공하는 룩업 테이블을 생성하는 것이 가능하므로 디코딩 처리 동안 그 갱신 비트 슬라이스를 생성할 필요가 없어지게 된다. 룩업 테이블의 크기는 가능한 수신된 코드의 개수와, 반복의 회수와, 갱신값을 나타내는 데에 필요한 비트 슬라이스의 개수에 따라 다르다. 그러나 DAB 라디오 같은 실재적인 예에 대하여 룩업 테이블은 상당히작은 크기인 것을 알 수 있다. 예를 들어 DAB 라디오를 생각하면 k=7이므로 반복회수는 6이 된다. 더욱이 코드가 4비트의 길이이므로 갱신값은 3비트로 표현되고, 3비트 슬라이스가 요구된다. 이는 갱신처리에 사용되는 제1과 제2 복수개의 스코어 비트 슬라이스 각각에 대하여 룩업 테이블에 저장될 필요가 있는 288(16코드 × 6스테이지 × 3비트 슬라이스) 갱신 비트 슬라이스, 즉 총 576 갱신 비트 슬라이스가 된다.In a preferred embodiment, step (d) is performed prior to decoding the encoded data stream to generate a lookup table of update bit slices for each k−1 iterations. Thus, in step g, the update bit slice is read from the lookup table based on the code received, the iteration, and whether the update bit slice is the first or second plurality of score bit slices. In the preferred embodiment the score reverts to the initial alignment following k-1 iterations, and it is clear that there are only finite possibilities for the update bit slice. Thus, it is possible to generate a lookup table that provides all possible update bit slices, eliminating the need to generate the update bit slices during the decoding process. The size of the lookup table depends on the number of possible received codes, the number of iterations, and the number of bit slices needed to represent the update value. However, for practical examples such as DAB radios, you can see that the lookup table is quite small. For example, considering DAB radio, the number of repetitions is 6 since k = 7. Furthermore, since the code is 4 bits long, the update value is represented by 3 bits and a 3 bit slice is required. This means that for each of the first and second plurality of score bit slices used in the update process, there are 288 (16 code × 6 stage × 3 bit slice) update bit slices that need to be stored in the lookup table, i.e. a total of 576 update bit slices. do.

바람직한 실시예에서 단계(i)는 제1 후보 복수개의 갱신된 스코어 비트 슬라이스로부터 제2 후보 복수개의 갱신된 스코어 비트 슬라이스를 빼서 경로 히스토리를 형성하는 단계를 포함한다. 경로 히스토리는 복수개의 갱신된 스코어 슬라이스로 나타나는 특정한 스코어에 대한 비트는 경로 히스토리 비트 슬라이스에서의 해당 위치에 비트의 값에 따라 선택된다. 바람직한 실시예에서 경로 히스토리 비트 슬라이스는 뺄샘으로부터 캐리아웃값(carry out values)을 포함한다. 따라서 제1 복수개의 갱신된 스코어 비트 슬라이스는 MA에 의해 표현되고, 제2 후보 복수개의 갱신된 스코어 비트 슬라이스는 MB에 의해 표현되면, 경로 히스토리 비트 슬라이스 내의 특정한 위치에서의 0 값은 MA내의 해당 스코어가 MB내의 해당 스코어보다 크다는 것을 표시하고, 논리적인 1 값은 MB내의 해당 스코어가 MA내의 해당 스코어보다 크다는 것을 표시한다. 그러므로, 경로 히스토리 비트 슬라이스 내의 값에 기초하여, 단계(i)에서 생성된 최종 복수개의 갱신된 스코어 비트 슬라이스에서 사용할 스코어가 결정될 수 있다는 것을 알 수 있습니다.In a preferred embodiment step (i) includes subtracting the second candidate plurality of updated score bit slices from the first candidate plurality of updated score bit slices to form a path history. The path history bits for a particular score represented by a plurality of updated score slices are selected according to the value of the bit at that position in the path history bit slice. In a preferred embodiment the path history bit slice includes carry out values from the subtraction. Thus, if the first plurality of updated score bit slices are represented by M A , and the second candidate plurality of updated score bit slices are represented by M B , then a zero value at a particular location within the path history bit slice is M A. in that the score is displayed and that is greater than the corresponding score in M B and the logical value of 1 indicates that the corresponding score in M B is greater than the score in M a. Therefore, based on the value within the path history bit slice, it can be seen that the score to be used in the last plurality of updated score bit slices generated in step (i) can be determined.

바람직한 실시예에서, 경로 히스토리 비트 슬라이스는 다수의 경로 히스토리 비트 슬라이스를 포함하는 경로 히스토리에 추가된다. 경로 히스토리는 어느 특정한 상태에 대하여 제1 소정개수에 앞서는 원래의 시퀀스에서 비트로 생각되는 제2 소정개수의 비트를 결정하는 데에 채용된다. 그러한 실시예에서 이 스테이지에서 이전의 경로 히스토리 비트 슬라이스를 참조할 필요가 없고 따라서 경로 히스토리 비트 슬라이스는 그 점에서 이전의 어느 경로 히스토리 비트 슬라이스도 읽을 필요 없이 경로 히스토리에 단순히 추가될 수 있다. 이는 경로 히스토리를 갱신하는 특히 효과적인 방법이다.In a preferred embodiment, the path history bit slice is added to a path history that includes a plurality of path history bit slices. The path history is employed to determine a second predetermined number of bits that are considered bits in the original sequence prior to the first predetermined number for any particular state. In such an embodiment there is no need to refer to the previous path history bit slice at this stage and thus the path history bit slice can simply be added to the path history without having to read any previous path history bit slices at that point. This is a particularly effective way to update path history.

개별적인 경로 히스토리는 각각의 반복 동안 이동되지 않고 상태는 돌도록 허락되므로(왜냐하면 적어도 하나의 복수개의 스코어 비트 슬라이스는 재정렬되지 않기 때문) 어떤 특정한 상태에 대하여 경로 히스토리를 추적해가는 것이 어렵게 보인다는 것을 알 수 있다. 그러나, 바람직한 실시예에서 각각의 경로 히스토리 비트 슬라이스는 상기 k-1개의 반복들 중의 하나와 연관되므로 상기 레코드를 참조하여 제2 소정개수의 비트가 어떤 특정한 상태에 대하여 결정될 수 있다. 그러므로, 필요한 정보는 추적이 일어나도록 하는 데에 유용하다는 것이 명백하다. 더욱이, 바람직한 실시예서는 경로 히스토리가 다른 것일 때보다 길어지도록 허락되면, 추적은 많은 출력된 비트들이 있을 때까지 지연될 수 있다. 그래서 추적의 오버헤드(overhead)는 출력비트당 낮아진다. 본 발명의 바람직한 실시예에서, 그 스테이지에서 경로 히스토리를 읽는 요구없이 새로운 경로 히스토리 비트 슬라이스를 추가함으로써 경로 히스토리가 단순히 갱신되므로 경로 히스토리를 갱신하는 수행은 경로 히스토리의 나머지 길이에 의해 영향받지 않는다.Since individual path histories are not moved during each iteration and the state is allowed to go around (because at least one score bit slice is not rearranged), it is difficult to track the path history for any particular state. Can be. However, in the preferred embodiment each path history bit slice is associated with one of the k-1 iterations so that a second predetermined number of bits can be determined for any particular state with reference to the record. Therefore, it is apparent that the necessary information is useful for the tracking to take place. Moreover, in the preferred embodiment, if the path history is allowed to be longer than when others, the trace may be delayed until there are many output bits. So the overhead of tracing is lower per output bit. In a preferred embodiment of the present invention, the performance of updating the path history is not affected by the remaining length of the path history since the path history is simply updated by adding a new path history bit slice without the need to read the path history at that stage.

그러므로, 바람직한 실시예에서 소정의 기간에서 소정의 기준을 가장 잘 만족시키는 스코어를 선택하기 위하여 스코어는 비교된다. 그 스코어에 해당하는 상태가 결정되고, 그 상태에 대한 복수개의 상기 제2 소정개수의 비트들이 결정되고 데이터 비트의 원래의 시퀀스의 디코드된 부분으로서 출력된다.Therefore, in the preferred embodiment the scores are compared to select the score that best meets the given criteria in the given time period. A state corresponding to the score is determined, and a plurality of the second predetermined number of bits for that state are determined and output as the decoded portion of the original sequence of data bits.

제2 관점에서 보면, 본원 발명은, 원래의 시퀀스에서 제1 소정 개수의 이전 데이터 비트와 현재의 데이터 비트에 각각이 의존하는 복수개의 코드를 포함하고 데이터 비트의 원래의 시퀀스를 나타내는 인코드된 데이터 스트림을 디코드하는 시스템에 있어서, 제1 소정 개수의 이전 데이터 비트의 다수개의 가능한 상태들 각각에 대하여 상기 해당 상태가 상기 제1 소정 개수의 이전 데이터 비트를 나타내는 유사도를 나타내는 스코어를 제공하는 스코어 발생기와, 처음의 순서로 상기 스코어를 배열하는 정렬기와, 코드의 수신에 따라 상기 수신된 코드에서 현재의 데이터의 2개의 가능한 값들 각각이 주어지고, 상기 상태가 상기 제1 소정 개수의 비트를 나타내는 상기 수신된 코드에 기초하여 상기 유사도를 나타내는 2개의 갱신값들을 각각의 상태에 대하여 결정하는 갱신값 생성기를 포함하며, 상기 스코어 생성기는 처음부터 정렬된 스코어를 제1 복수개의 스코어 비트 슬라이스로서 종합적으로 나타내도록 배열되고, 각각의 상기 스코어 비트 슬라이스 각각의 상기 스코어로부터 소정의 비트를 포함하고, 상기 정렬기는 상기 스코어를 재정렬하도록 배열되고, 상기 스코어 생성기는 상기 재정렬된 스코어를 제2 복수개의 스코어 비트 슬라이스로서 종합적으로 나타내도록 배열되고, 각각의 스코어 비트 슬라이스는 각각의 상기재정렬된 스코어로부터 소정의 비트를 포함하고, 상기 갱신값 생성기는 상기 제1 복수개의 스코어 비트 슬라이스에 대한 제1 복수개의 갱신 비트 슬라이스와 상기 제2 복수개의 스코어 비트 슬라이스에 대한 제2 복수개의 갱신 비트 슬라이스를 상기 갱신값으로부터 생성하고, 각각의 갱신 비트 슬라이스는 상기 갱신값들 중 소정의 것들로부터 소정의 비트를 나타내고, 상기 스코어 생성기는 상기 제1 복수개의 스코어 비트 슬라이스와 상기 제1 복수개의 갱신 비트 슬라이스로부터 제1 후보 복수개의 갱신된 스코어 비트 슬라이스를 생성하고, 상기 제2 복수개의 스코어 비트 슬라이스와 상기 제2 복수개의 갱신 비트 슬라이스로부터 제2 후보 복수개의 갱신된 스코어 비트 슬라이스를 생성하고, 비트 슬라이스로 표현되는 각각의 스코어에 대하여 소정의 기준을 적용하여 상기 제1 후보 복수개의 갱신된 스코어 비트 슬라이스 또는 제2 후보 복수개의 갱신된 스코어 비트 슬라이스에 대하여 비트를 선택함으로써 복수개의 갱신된 스코어 비트 슬라이스를 생성하고, 모든 스코어는 동시에 갱신되는 것을 특징으로 하는 원래의 시퀀스를 나타내는 인코드된 데이터 스트림을 디코드하는 시스템을 제공한다.In a second aspect, the present invention provides encoded data that includes a plurality of codes, each dependent on a first predetermined number of previous and current data bits in the original sequence, the encoded data representing the original sequence of data bits. 12. A system for decoding a stream, comprising: a score generator for each of a plurality of possible states of a first predetermined number of previous data bits providing a score indicating a degree of similarity in which the corresponding state represents the first predetermined number of previous data bits; A sorter that arranges the scores in a first order, and each of the two possible values of current data in the received code upon receipt of the code, wherein the status indicates the first predetermined number of bits For each state two update values representing the similarity based on the generated code And an update value generator for determining, wherein the score generator is arranged to collectively represent the scores sorted from the beginning as a first plurality of score bit slices, and includes a predetermined bit from the score in each of the score bit slices. And the sorter is arranged to reorder the scores, the score generator is arranged to collectively represent the reordered scores as a second plurality of score bit slices, wherein each score bit slice is from each of the reordered scores. And a predetermined bit, wherein the update value generator is configured to update the first plurality of update bit slices for the first plurality of score bit slices and the second plurality of update bit slices for the second plurality of score bit slices. Generated from a value, each The update bit slice of represents a predetermined bit from certain ones of the update values, and the score generator is configured to generate a first candidate plurality of updated scores from the first plurality of score bit slices and the first plurality of update bit slices. Generate a bit slice, generate a second candidate plurality of updated score bit slices from the second plurality of score bit slices and the second plurality of update bit slices, and generate a predetermined value for each score represented by the bit slice. Apply a criterion to generate a plurality of updated score bit slices by selecting bits for the first candidate plurality of updated score bit slices or the second candidate plurality of updated score bit slices, wherein all scores are updated simultaneously. Original sequence characterized It provides a system for decoding the encoded data stream representing.

제3 관점에서 보면, 본원 발명은 제1 관점의 방법을 수행하는 컴퓨터 처리 유니트을 구성하도록 동작 가능한 것을 특징으로 하는 컴퓨터 프로그램을 제공한다. 컴퓨터 처리 유니트라는 용어는 컴퓨터 프로그램을 실행할 수 있는 어떤 컴퓨팅 장치라도 다 의미한다는 것을 알 것이다. 그러므로, 예를들어 종래의 마이크로컴퓨터, 전용 논리 유니트, 등등이 될 수도 있다.In a third aspect, the present invention provides a computer program operable to constitute a computer processing unit for performing the method of the first aspect. It will be appreciated that the term computer processing unit means any computing device capable of executing a computer program. Thus, for example, it may be a conventional microcomputer, a dedicated logic unit, or the like.

제4 관점에서 보면, 본원 발명은 제3 관점의 컴퓨터 프로그램을 포함하는 것을 특징으로 하는 기록매체를 제공한다. 기록매체는 예를 들어 CD-ROM, 디스켓, RAM, ROM 등과 같은 저장장치일 수도 있다. 또는 기록매체는 컴퓨터 프로그램이 전달되는, 예를 들어 인터넷을 통해 컴퓨터 프로그램을 전자적으로 배포하는 설비를 갖춘 원거리 통신 인프라구조의 다른 매체일 수도 있다.In a fourth aspect, the present invention provides a recording medium comprising the computer program of the third aspect. The recording medium may be, for example, a storage device such as a CD-ROM, a diskette, a RAM, a ROM, or the like. Alternatively, the recording medium may be another medium of a telecommunications infrastructure, in which a computer program is delivered, for example, having a facility for electronically distributing the computer program over the Internet.

본 발명은 인코딩된 데이터 스트림을 디코딩하는 시스템 및 방법에 관한 방법이다.The present invention is a method of a system and method for decoding an encoded data stream.

본 발명은 이하의 첨부된 도면에서 설명된 바와 같은 바람직한 실시예를 참고로만 하여 더 설명한다.The invention is further illustrated by reference to the preferred embodiment as described in the accompanying drawings below.

도 1은 비터비 디코딩 기술의 알려진 구현에 따라 가능한 상태에 대하여 생성될 수도 있는 표이고,1 is a table that may be generated for possible states in accordance with a known implementation of the Viterbi decoding technique,

도 2는 알려진 종래기술에 따라 갱신 동작 동안 메트릭이 어떻게 움직이는지를 도시한 도면이고,2 is a diagram illustrating how a metric moves during an update operation in accordance with known prior art;

도 3은 본 발명의 바람직한 실시예에 따라 갱신 동작 동안 메트릭과 상태가 어떻게 움직이는지를 도시한 도면이고,3 is a diagram illustrating how metrics and states move during an update operation in accordance with a preferred embodiment of the present invention;

도 4는 본 발명의 바람직한 실시예의 기술이 적용될 수도 있는 DAB 수신기의 기본 구성요소를 도시한 블록도이고,4 is a block diagram showing the basic components of a DAB receiver to which the technique of the preferred embodiment of the present invention may be applied;

도 5는 본 발명의 바람직한 실시예의 기술에 따라 도 4의 디코더 내의 기능 구성들을 구조적으로 도시한 블록도이고,FIG. 5 is a block diagram structurally showing functional configurations in the decoder of FIG. 4 in accordance with the description of the preferred embodiment of the present invention; FIG.

도 6과 도 7은 본 발명의 바람직한 실시예의 기술에 따라 도 4의 디코더 내에서 수행되는 처리를 도시한 흐름도이다.6 and 7 are flow charts illustrating the processing performed within the decoder of FIG. 4 in accordance with the techniques of the preferred embodiment of the present invention.

각각의 비터비 상태에 대한 메트릭이 한 번에 갱신되는 전형적인 종래기술의 접근법과는 대조적으로, 본 발명의 바람직한 실시예는 모든 메트릭이 동시에 갱신되는 기술을 제공한다. 상술한 바와 같이 각각의 상태에 대한 메트릭의 이 동시 갱신은 계산에 요구되는 관계되는 값을 "비트 슬라이싱"함으로써 성취된다. 그러나 상술한 도 2로부터 명백한 바와 같이 상태의 위치를 같게 유지하기 위하여 메트릭은 복잡한 방사형 배열로 된 갱신들 사이에서 돌아다녀야 한다. 이는 각각의 상태에 대한 메트릭을 갱신할 때에 각각의 비트 슬라이스 내에서 모든 비트들을 움직일 필요가 있다는 것을 암시한다.In contrast to the typical prior art approach in which the metric for each Viterbi state is updated at one time, the preferred embodiment of the present invention provides a technique in which all metrics are updated at the same time. This simultaneous update of the metric for each state as described above is accomplished by "bit slicing" the relative value required for the calculation. However, as is apparent from FIG. 2 above, the metric must move between complex radial arrangements of updates to keep the position of the state the same. This implies that when updating the metric for each state, all bits within each bit slice need to be moved.

그러나, 본 발명의 바람직한 실시예에 따라서, 각각의 갱신 반복에서 한 세트의 메트릭이 같은 장소에 있도록 허락하고, 메트릭이 나타내는 명목상의 상태가 반복되면서 변한다. 이 처리는 도 3에 도시되어 있고, 이는 도 2와 같이 제한 길이 k가 4인 것을 가정하는 가능한 상태이고 따라서 3개의 이전 입력비트가 새로운 입력비트와 함께 사용되어 전송코드를 생성한다.However, in accordance with a preferred embodiment of the present invention, at each update iteration, a set of metrics is allowed to be in the same place, and the nominal state represented by the metric changes as it is repeated. This process is shown in Fig. 3, which is a possible state assuming that the limit length k is 4, as in Fig. 2, and therefore three previous input bits are used together with the new input bits to generate a transport code.

도 2와 함께 3개의 이전 비트의 모든 8개의 가능한 상태가 나타나 있는 것이 보일 것이다. 스테이지 0, 스테이지 1 및 스테이지 2로 지칭되는 각각의 갱신 반복에서 하나의 세트의 메트릭 비트 슬라이스는 횡선이 지칭하는 바와 같이 같은 장소에 위치한다. 필요에 의해 (제1 세트와 비교될) 다른 세트의 메트릭 비트 슬라이스는 이동해야 한다. 그러나 도 3으로부터 명백한 바와 같이, 이 이동은 도 2에 도시된 방사형을 포함하지 않는 선형이다. 전형적인 구현에서 이는 워드 길이 비트 슬라이스마다 3개를 재정렬하는 데에 요구되는 동작의 개수를 줄인다는 것을 알 수 있다.It will be seen with Figure 2 that all eight possible states of the three previous bits are shown. In each update iteration, referred to as stage 0, stage 1, and stage 2, one set of metric bit slices is located in the same place as the horizontal line refers to. If necessary, another set of metric bit slices (to be compared with the first set) must move. However, as is apparent from FIG. 3, this movement is linear, not including the radial shown in FIG. 2. In a typical implementation it can be seen that this reduces the number of operations required to reorder three per word length bit slice.

도 3으로부터 알 수 있는 중요한 점은 각각의 갱신 스테이지 후에 메트릭 비트 슬라이스의 세트 내의 어떤 특정한 메트릭에 의해 표현되는 명목상의 상태는 전형적으로 바뀌지만, 메트릭 비트 슬라이스에 의해 표현되는 상태는 k-1 스테이지 이후의 그것들의 원래의 순서로 되돌아간다. 그래서, k = 4로 도 3에 도시된 예에서 상태는 3 스테이지 후에 그것들의 초기 순서로 되돌아간다. 유사하게 k=7인 DAB 라디오에 대하여는, 상태가 6 스테이지 후에 그것들의 초기 순서로 되돌아간다.It is important to note from FIG. 3 that after each update stage the nominal state represented by a particular metric in the set of metric bit slices typically changes, but the state represented by the metric bit slices is after the k-1 stage. Return to their original order. Thus, in the example shown in FIG. 3 with k = 4, the states revert to their initial order after three stages. Similarly for DAB radios with k = 7, the state returns to their initial order after six stages.

제한된 횟수의 다른 스테이지가 주어지면, 어떤 특정한 스테이지의 완료 후에 어떤 특정한 메트릭에 의해 표현되는 스테이지의 추적을 메트릭 비트 슬라이스의 세트 내로 유지하는 것이 상대적으로 직접적임을 알 수 있다. 특히 상태 n에 대하여 스테이지 i에서(i는 0부터 k-2 사이의 값을 가짐) 상태 n을 나타내는 메트릭에 대한 비트는 각각의 비트 슬라이스(비트 위치는 비트 위치 0에서 시작됨) 내의 비트 위치(n>>i)에 있다. n>>i는 비트 k-2로 둘러싸는 오른쪽에 i개의 비트로 회전하는 n을 나타낸다. 이것은 도 3으로부터 명백하다. 우리가 상태 010을 생각하면, 스테이지 0에서 메트릭의 비트는 비트 위치 010에 즉, 비트 위치 2에 있을 것이고, 스테이지 1에서 메트릭의 비트는 비트 위치 001에 즉, 비트 위치 1에 있을 것이고, 스테이지 2에서 메트릭의 비트는 비트 위치 100에 즉, 비트 위치 4에 있을 것이다. 이러한 3개의 (즉, k-1) 스테이지 후에 상태 010은 그것의 초기 순서(즉, 비트 위치 2)로 되돌아간다.Given a limited number of different stages, it can be seen that after completion of a particular stage it is relatively straightforward to keep track of the stage represented by a particular metric into a set of metric bit slices. In particular, for stage n, in stage i (i has a value between 0 and k-2), the bit for the metric representing state n is the bit position n in each bit slice (the bit position starts at bit position 0). >> i) n >> i represents n rotating by i bits on the right side surrounded by bit k-2. This is evident from FIG. 3. If we consider state 010, the bits of the metric at stage 0 will be at bit position 010, i.e. bit position 2, and at stage 1 the bits of the metric will be at bit position 001, i.e. bit position 1, stage 2 The bit of the metric at will be in bit position 100, ie in bit position 4. After these three (ie k-1) stages, state 010 returns to its initial order (ie bit position 2).

상술한 바와 같이 갱신된 스코어 비트 슬라이스를 생성할 때에 두 개의 다른 복수개의 스코어 비트 슬라이스가 사용되고, 제1 복수개의 스코어 비트 슬라이스(이하 M으로 약칭함) 내의 비트는 그것들의 원래의 순서로 남는고, 제2 복수개의 스코어 비트 슬라이스(이하 MX로 약칭함) 내의 비트는 도 3에 나타난 선형으로 움직인다. 바람직한 실시예에서, MX는 아래와 같이 계산된다. k는 제한 길이이고, i(0, …, k-2)는 스테이지의 수이다.When generating the updated score bit slices as described above, two different plurality of score bit slices are used, and the bits in the first plurality of score bit slices (hereinafter abbreviated as M) remain in their original order, The bits in the second plurality of score bit slices (abbreviated as M X hereinafter) move linearly as shown in FIG. 3. In a preferred embodiment, M X is calculated as follows. k is the limit length and i (0, ..., k-2) is the number of stages.

세트:set:

s = (k - 2) - I;s = (k-2)-I;

shift = 2^(s);shift = 2 μs (s);

mask = 다음과 같은 2^(k-1)비트의 마스크:mask = a mask of 2 ^ (k-1) bits as follows:

비트 s가 j의 세트이면 마스크 세트의 비트 jBit j in mask set if bit s is a set of j

(즉, 마스크는 'shift' 1들이 뒤따르는 'shift' 0들의 반복 패턴이다).(Ie, the mask is a repeating pattern of 'shift' 0s followed by 'shift' 1s).

이 때 MX = ((M << shift) AND mask) OR ((M >> shift) AND N0T mask)MX = ((M << shift) AND mask) OR ((M >> shift) AND N0T mask)

바람직한 실시예에서 비트 슬라이스 포맷 내에 메트릭을 배열하는 것 외에도 해밍거리도 비트 슬라이스로서 배열된다. 초기 순서로 되돌아가는 상태 전의 제한된 개수의 스테이지가 전형적으로 있다고 하면, 제한된 개수의 가능한 해밍거리 비트 슬라이스만을 가질 것이다. 따라서, 바람직한 실시예에서는 이들 비트 슬라이스는 미리 정해져 있고, 디코딩 처리 동안 사용되는 룩업 테이블에 저장된다. 다음방정식은 어떻게 어떤 특정한 해밍거리 비트 슬라이스가 룩업 테이블로부터 얻어지는지를 나타낸다.In a preferred embodiment, in addition to arranging the metrics in the bit slice format, the hamming distances are also arranged as bit slices. Assuming there is typically a limited number of stages before the state returning to the initial order, there will only be a limited number of possible Hamming distance bit slices. Thus, in the preferred embodiment these bit slices are predetermined and stored in a lookup table used during the decoding process. The following equation shows how a particular Hamming distance bit slice is obtained from the lookup table.

해밍거리 <비트 슬라이스> = 룩업 테이블 [수신된 코드] [스테이지] [비트 슬라이스] [M 또는 MX]Hamming distance <bit slice> = lookup table [received code] [stage] [bit slice] [M or M X ]

상술한 바와 같이, DAB 라디오에 대하여 k=7이므로 스테이지의 수는 6이고, 또한 코드는 4비트의 길이이다. 더욱이 해밍거리는 3비트에 의해 표현되므로 갱신 동작에 필요한 해밍거리의 어떤 특정한 세트에 대한 룩업 테이블로부터 얻어질 3비트 슬라이스가 있다. 상기 방정식에 기초하여 해밍거리 비트 슬라이스의 576개의 가능성이 있으므로 이것들은 룩업 테이블에 미리 저장될 수 있다.As described above, since k = 7 for the DAB radio, the number of stages is 6 and the code is 4 bits long. Moreover, since the Hamming distance is represented by 3 bits, there is a 3-bit slice to be obtained from the lookup table for any particular set of Hamming distances needed for the update operation. Based on the above equation there are 576 possibilities of Hamming distance bit slices so these can be stored in advance in the lookup table.

본 발명의 바람직한 실시예에 따르면, 상태가 정적이지 않고 스테이지 사이를 움직인다고 하면, 이것은 경로 히스토리의 비트를 읽어내는 데에 요구되는 추적 처리의 복잡성을 현저하게 증가시킬 것으로 보일 수도 있다. 그러나, 바람직한 실시예에서 경로 히스토리가 그것을 갱신하기 위하여 적재될 필요가 없으므로, 경로 히스토리도 비트 슬라이스로서 저장되고 이것은 경로 히스토리 갱신 오버헤드를 현저하게 감소시킨다. 대신 새로운 경로 히스토리 비트 슬라이스는 단지 히스토리 버퍼의 끝에 기록된다. 그러나 경로 히스토리가 스테이지 사이의 상태의 움직임을 따라가도록 움직이지 않으므로 추적을 수행하는 데에 포함되는 몇 가지 추가적인 복잡함이 있다. 그러나 바람직한 실시예에서 이것은 약간 더 큰 히스토리 버퍼를 제공하고 추적을 지연시키고 단일 추적처리의 결과로서 다중 출력 비트를 생성함으로써 다소 약해진다. 경로 히스토리가 더 길어지게 허락되면 출력될 다수의 비트가있을 때까지 추적을 지연시킬 수 있어서 추적의 오버헤드가 출력비트마다 낮아진다. 바람직한 실시예에서 경로 히스토리가 비트 슬라이스의 시퀀스로서 다루어지고 각각의 경로 히스토리 비트 슬라이스가 그 스테이지에서의 경로 히스토리에 적재될 필요없이 단순히 히스토리 버퍼의 끝에 추가되므로 경로를 갱신하는 수행은 경로 히스토리의 남는 길이에 의해 영향을 받지 않는다.According to a preferred embodiment of the present invention, if the state is not static and moves between stages, this may seem to significantly increase the complexity of the tracking process required to read the bits of the path history. However, in the preferred embodiment, since the path history does not need to be loaded to update it, the path history is also stored as a bit slice, which significantly reduces the path history update overhead. Instead, the new path history bit slice is only written to the end of the history buffer. However, there are some additional complications involved in tracking, since the path history does not move to follow the movement of the state between stages. However, in the preferred embodiment this is somewhat weakened by providing a slightly larger history buffer, delaying tracing and generating multiple output bits as a result of a single tracing process. If the path history is allowed to be longer, the trace can be delayed until there are multiple bits to be output, so the overhead of the trace is lowered for each output bit. In a preferred embodiment, the path update is handled as a sequence of bit slices and each path history bit slice is simply added to the end of the history buffer without having to be loaded into the path history at that stage, so that the updating of the path is the remaining length of the path history. Not affected by

바람직한 실시예의 기술의 일반적인 논의를 하였으므로 DAB 라디오 수신기 내에서의 구현의 논의는 도 4와 도 5를 참조하여 보다 상세히 설명할 것이다. 도 4는 DAB 수신기 내에 제공되는 기본 기능블록을 설명하는 블록도이다. 컨벌루셔널하게 인코드된 라디오 신호는 안테나(105)에서 수신되고, 신호를 복조하고 아날로그를 디지털로 변환하기 위해 복조기와 디지타이저(digitizer) 회로부(100)를 통해 전달된다. 이 회로부는 잘 알려진 것이라는 것을 당업자들은 알 것이다. 따라서 여기서는 더 이상 설명하지 않는다. 디지털화된 신호는 본 발명의 바람직한 실시예의 디코딩 처리가 수행되어 라디오 수신기 회로부(120)에 출력될 데이터 비트의 시퀀스를 생성하는 디코더(110)로 전달된다. 당업자라면 잘 알 수 있는 바와 같이, 라디오 수신기 회로부(120)는 다수의 잘 알려진 수신기 회로부들 중의 하나에 의해 제공될 수 있다. 따라서, 여기서는 더 이상 설명하지 않는다. 라디오 수신기 회로(120)의 출력은 스피커(140)로 출력되기 전에 디지털-아날로그 변환기(130)에 의해 아날로그 신호로 역변환된다.Having discussed a general discussion of the technique of the preferred embodiment, a discussion of the implementation within the DAB radio receiver will be described in more detail with reference to FIGS. 4 and 5. 4 is a block diagram illustrating basic functional blocks provided in a DAB receiver. A convolutionally encoded radio signal is received at antenna 105 and passed through a demodulator and digitizer circuitry 100 to demodulate the signal and convert the analog to digital. Those skilled in the art will appreciate that this circuit portion is well known. Therefore, it is not described further here. The digitized signal is passed to a decoder 110 where the decoding process of the preferred embodiment of the present invention is performed to generate a sequence of data bits to be output to the radio receiver circuitry 120. As will be appreciated by those skilled in the art, the radio receiver circuitry 120 may be provided by one of a number of well known receiver circuitry. Therefore, it is not described herein any further. The output of the radio receiver circuit 120 is inversely converted into an analog signal by the digital-to-analog converter 130 before being output to the speaker 140.

도 5는 본 발명의 바람직한 실시예에 따라 디코더(110) 내의 주기능 구성들을 개념적으로 도시한 블록도이다. 저장기(240)는 디코더8(110)에 접근가능한 일반적인 저장기를 나타낸다. 이 저장기(240)는 스코어 생성기(210)에 의해 요구되는 데이터를 저장하고, 캐쉬, RAM, DRAM, 등등 또는 그러한 저장장치의 조합의 형식을 가질 수도 있다. 그러므로 현재의 스코어 비트 슬라이스, 경로 히스토리 비트 슬라이스 및 현재의 반복 스테이지의(그래서 그 상태의 현재의 순서의) 지칭은 저장기(240)에 저장될 수도 있다. 스코어 생성기(210)는 스코어(또는 메트릭)를 제1 복수개의 스코어 비트 슬라이스로 종합적으로 나타낸다. 더욱이, 정렬기(200)는 반복 스테이지에 관련된 스코어 생성기에 의해 제공되는 정보에 응답하도록 배열되어 스코어를 재정렬하고, 재정렬된 스코어를 스코어 생성기로 피드백하여 제2 복수개의 스코어 비트 슬라이스가 갱신처리 동안 사용될 수 있도록 한다.5 is a block diagram conceptually illustrating main function components in the decoder 110 according to an exemplary embodiment of the present invention. Storage 240 represents a generic storage accessible to decoder 8 110. This storage 240 stores the data required by the score generator 210 and may have the form of a cache, RAM, DRAM, etc., or a combination of such storage devices. Thus, the current score bit slice, the path history bit slice, and the reference of the current iteration stage (and thus of the current order of state) may be stored in the storage 240. The score generator 210 collectively represents a score (or metric) in a first plurality of score bit slices. Furthermore, the sorter 200 is arranged to respond to the information provided by the score generator associated with the iteration stage to reorder the scores and feed the rearranged scores to the score generator so that the second plurality of score bit slices are used during the update process. To be able.

갱신값 생성기(220)는 스코어 생성기(210)에 의해 사용될 해밍거리 비트 슬라이스를 수신하기 위하여 스코어 생성기(210)에 응답하여 룩업 테이블(230)에 접근한다. 스코어 생성기는 갱신값 생성기(220)에 반복 스테이지와, 비트 슬라이스가 제1 복수개의 스코어 비트 슬라이스 또는 제2 복수개의 스코어 비트 슬라이스에 요구되는지를 지칭할 것이다. 이 정보와 디코드되고 있는 수신된 코드의 지칭에 기초하여 갱신값 생성기(220)는 룩업 테이블(230)에 접근하여 해밍거리 비트 슬라이스를 얻고, 해밍거리 비트 슬라이스는 스코어 생성기(210)로 되돌아간다. 룩업 테이블(230)은 물리적으로 저장기(240) 내에 위치하거나 따로 제공된다.The update value generator 220 accesses the lookup table 230 in response to the score generator 210 to receive the hamming distance bit slice to be used by the score generator 210. The score generator will refer to the update value generator 220 if iterative stages and bit slices are required for the first plurality of score bit slices or the second plurality of score bit slices. Based on this information and the reference of the received code being decoded, the update value generator 220 accesses the lookup table 230 to obtain a hamming distance bit slice, which is returned to the score generator 210. The lookup table 230 is physically located in the storage 240 or provided separately.

스코어 생성기(210)는 복수개의 갱신된 스코어 비트 슬라이스를 생성하여 경로 히스토리 비트 슬라이스를 저장기(240)에 출력하여 경로 히스토리를 갱신할 책임이 있다. 스코어 생성기(210)도 디코더로부터의 다수의 비트를 출력하기 위하여요구되는 바와 같은 추적 루틴을 수행할 수도 있다. 이 추적처리는 가장 좋은 메트릭(예를 들어 가장 작은 값을 갖는 것)을 결정하고 가장 최근의 경로 히스토리 비트 슬라이스와 반복 스테이지의 지칭 내의 해당 값으로부터 시작함으로써 시작된다. 스코어 생성기(210)는 (도 3에 구조적으로 나타난 바와 같이) 하나의 반복 스테이지로부터 다른 것으로의 상태 사이의 내부 관계를 아는 것에 의해 다양한 경로 히스토리 비트 슬라이스를 통하여 추적할 수 있다. 이 내부 관계는 스코어 생성기(210)에 접근가능한 룩업 테이블에 전형적으로 저장된다. 추적 처리는 디코더로투터 출력되는 하나 이상의 출력비트의 표식으로 결과된다.The score generator 210 is responsible for generating a plurality of updated score bit slices and outputting the path history bit slices to the storage 240 to update the path history. Score generator 210 may also perform a tracking routine as required to output multiple bits from the decoder. This tracing begins by determining the best metric (e.g., having the smallest value) and starting with that value in the most recent path history bit slice and in the designation of the iteration stage. The score generator 210 can track through the various path history bit slices by knowing the internal relationship between states from one iteration stage to another (as shown structurally in FIG. 3). This internal relationship is typically stored in a lookup table accessible to score generator 210. The tracking process results from the marking of one or more output bits output to the decoder.

본 발명의 바람직한 실시예에서 정렬기(200), 스코어 생성기(210) 및 갱신값 생성기(220)의 기능은, 이것이 펌웨어나 하드웨어에 선택적으로 실장되는 것이 당업자에게는 잘 알려진 것이지만, 마이크로컴퓨터에서 실행될 수 있는 소프트웨어에서 구현된다.In the preferred embodiment of the present invention, the functions of the sorter 200, score generator 210 and update value generator 220 are well known to those skilled in the art that they are optionally mounted in firmware or hardware, but may be implemented in a microcomputer. Is implemented in software.

각각의 수신되는 코드를 처리하고 메트릭을 갱신하기 위하여 디코더(110)에 의해 수행되는 처리는 도 6과 도 7의 흐름도를 참조하여 설명한다. 처리는 단계(300)에서 시작된다. 여기서 2개의 파라미터 "Stage"와 "Count"가 0으로 설정된다. 그 다음 단계(310)에서 새로운 코드가 수신될지가 결정된다. 일단 새로운 코드가 수신되면 처리는 메트릭이 갱신되는 단계(320)로 진행한다. 이 처리는 도 7을 참조하여 나중에 상세히 설명한다.The processing performed by the decoder 110 to process each received code and update the metric is described with reference to the flowcharts of FIGS. 6 and 7. Processing begins at step 300. Here two parameters "Stage" and "Count" are set to zero. It is then determined in step 310 whether a new code will be received. Once the new code is received, processing proceeds to step 320 where the metric is updated. This process will be described later in detail with reference to FIG.

일단 메트릭이 갱신되면, 파라미터 Stage는 단계(330)에서 1씩 증가되어 단계(340)에서 파라미터 Stage가 6(즉, k-1)보다 크거나 같은지 결정된다. 만일 파라미터 Stage가 6보다 크거나 같으면, 처리는 메트릭이 재정규화되는 단계(350)로 분기한다. 그 후, 단계(360)에서 파라미터 Stage는 0으로 리셋된다. 메트릭을 재정규화하는 데에 사용될 수도 있는 다수의 기술이 있다는 것은 당업자에게 잘 알려진 사실이다. 이 처리는 각각의 메트릭의 저장을 위하여 할당된 비트의 수를 어떤 특정한 메트릭이 넘지 않도록 보장한다. 명백히 단계(340)에서 비교를 위하여 재정규화를 유발하는 선택된 값은 구현에 따라 선택될 것이다. 그래서 어떤 구현에서는 6 이외의 다른 값을 선택하는 것도 생각할 수 있을 것이다.Once the metric is updated, the parameter stage is incremented by one in step 330 to determine if the parameter stage is greater than or equal to 6 (ie, k-1) in step 340. If the parameter Stage is greater than or equal to 6, processing branches to step 350 where the metric is renormalized. Then, at step 360 the parameter stage is reset to zero. It is well known to those skilled in the art that there are a number of techniques that may be used to renormalize the metric. This process ensures that no particular metric exceeds the number of bits allocated for storage of each metric. Obviously in step 340 the selected value causing the renormalization for comparison will be selected according to the implementation. So in some implementations you might think of choosing a value other than 6.

단계(340)에서 파라미터 Stage가 6보다 크거나 같지 않다고 결정되면, 처리는 단계(370)로 진행한다. 단계(340)으로부터 재정규화 처리가 호출되면, 처리는 단계(360)으로부터 단계(370)으로 진행한다.If at step 340 it is determined that the parameter Stage is not greater than or equal to 6, processing proceeds to step 370. If the renormalization process is called from step 340, the process proceeds from step 360 to step 370.

단계(370)에서 파라미터 Count가 1씩 증가한다. 그 다음에는 단계(380)에서 Count가 60보다 크거나 같은지 결정한다. 만일 Count가 60보다 크거나 같지 않으면, 처리는 단계(310)로 되돌아가서 다음 코드의 수신을 기다린다. 그러나, Count가 60보다 크거나 같으면, 처리는 소정개수의 비트가 상술한 추적처리를 이용하는 디코더에 의해 출력되는 단계(390)로 진행한다. 일단 소정개수의 비트가 출력되었다면, 파라미터 Count는 단계(395)에서 0으로 리셋되고 처리는 단계(310)로 되돌아간다.In step 370, the parameter Count is incremented by one. Then in step 380 it is determined if the Count is greater than or equal to 60. If Count is not greater than or equal to 60, processing returns to step 310 and waits for receipt of the next code. However, if Count is greater than or equal to 60, the process proceeds to step 390 in which a predetermined number of bits are output by the decoder using the above-described tracking process. Once the predetermined number of bits have been output, the parameter Count is reset to zero in step 395 and processing returns to step 310.

도 7은 도 6의 단계(320)에서 메트릭을 갱신하는 디코더 내에서 수행되는 처리를 상세히 도시한다.FIG. 7 details the processing performed within the decoder to update the metric in step 320 of FIG.

단계(410)에서 시작하여, 제1 복수개의 해밍거리 비트 슬라이스 HA와 제2 복수개의 해밍거리 비트 슬라이스 HB에 대한 해밍거리 비트 슬라이스는 결정된다. 상술한 바와 같이 처리는 갱신값 생성기(220)에 의해 수행된다. 다음으로 단계(420)에서 제1 후보 복수개의 갱신된 스코어 비트 슬라이스 MA가 계산된다. 이 계산은 제1 복수개의 해밍거리 비트 슬라이스 HA를 제1 복수개의 스코어 비트 슬라이스 M(즉, 재정렬되지 않은 복수개의 비트 슬라이스)에 더하는 것을 포함한다. 이것은 특별한 비트위치에 대한 개별적인 비트 슬라이스를 함께 더하고 다음 비트 위치에 대한 비트 슬라이스에 대하여 수행되는 덧셈에 어떤 캐리 비트라도 취함으로써 성취된다.Beginning at step 410, Hamming distance bit slices for the first plurality of Hamming distance bit slices H A and the second plurality of Hamming distance bit slices H B are determined. As described above, the processing is performed by the update value generator 220. Next, in step 420, the first candidate plurality of updated score bit slices M A are calculated. This calculation includes adding the first plurality of hamming distance bit slices H A to the first plurality of score bit slices M (ie, the unordered plurality of bit slices). This is accomplished by adding together the individual bit slices for a particular bit position and taking any carry bit to the addition performed on the bit slice for the next bit position.

단계(430)에서는 제1 복수개의 스코어 비트 슬라이스 M은 재정렬되어 제2 복수개의 스코어 비트 슬라이스 MX를 생성한다. 그 다음, 단계(440)에서는 MX를 HB에 더함으로써 제2 후보 복수개의 갱신된 스코어 비트 슬라이스 MB가 계산된다.In step 430, the first plurality of score bit slices M are rearranged to produce a second plurality of score bit slices M X. Next, at step 440, the second candidate plurality of updated score bit slices M B is calculated by adding M X to H B.

단계(450)에서는 캐리 아웃 비트 슬라이스를 생성하기 위하여 MA로부터 MB를 뺀다. 따라서, 캐리 아웃 비트 슬라이스 내에서의 특정한 위치에서의 0 값은 MA내에서의 해당 스코어가 MB내에서의 해당 스코어보다 크다는 것을 가리킬 것이다. 논리적 1 값은 MB내에서의 해당 스코어가 MA내에서의 해당 스코어보다 크다는 것을 가리킬 것이다.In step 450, M B is subtracted from M A to generate a carry out bit slice. Thus, the value of zero in a particular position on the carry-out bit slice will indicate that the corresponding score in M A is greater than the score in M B. A logical 1 value will indicate that the corresponding score in M B is greater than that score in M A.

이 캐리 아웃 비트 슬라이스는 이 특정한 갱신 동작에 대한 경로 히스토리 비트 슬라이스로서 사용된다. 따라서, 단계(460)에서 캐리 아웃 비트 슬라이스는갱신된 경로 히스토리가 되는 경로 히스토리 비트 슬리이스로서 저장된다. 더욱이 단계(470)에서 복수개의 갱신된 스코어 비트 슬라이스 Mnew는 경로 히스토리 비트 슬라이스에 의존하는 MA또는 MB의 해당 비트로부터 각각의 비트 슬라이스 내의 각각의 비트를 선택함으로써 생성된다. 그래서, 예를 들어 메트릭의 낮은 값이 가까운 정합을 가리킨다고 가정하면, 경로 히스토리 비트 슬라이스 내의 특정한 위치에서의 0 값은 MB로부터의 해당 스코어가 사용되어야 한다는 것을 가리킬 것이다. 반면에 논리적인 1 값은 MA로부터의 해당 스코어가 Mnew에서 사용되어야 함을 가리킬 것이다. 일단 Mnew는 단계(470)에서 계산되었다면, 처리는 단계(480)로 진행된다. 여기서 Mnew는 이어지는 갱신 처리에서 사용되기 위한 새로운 기본 메트릭 M과 같게 설정된다. 이 처리는 그 다음 도 6에서 도시된 점 B로 진행된다.This carry out bit slice is used as the path history bit slice for this particular update operation. Thus, in step 460 the carry out bit slice is stored as a path history bit slice that becomes the updated path history. Furthermore, in step 470 a plurality of updated score bit slices M new are generated by selecting each bit in each bit slice from the corresponding bits of M A or M B depending on the path history bit slice. So, for example, assuming a low value of the metric indicates a close match, a zero value at a particular location within the path history bit slice will indicate that the corresponding score from M B should be used. On the other hand, a logical value of 1 would indicate that the corresponding score from M A should be used in M new . Once M new has been calculated at step 470, processing proceeds to step 480. Where M new is set equal to the new default metric M to be used in subsequent update processing. This process then proceeds to point B shown in FIG.

이상의 설명으로부터 본 발명의 바람직한 실시예의 기술은 모든 비터비 상태를 위한 메트릭이 동시에 갱신될 수 있도록 하는 특정한 효과를 제공한다는 것을 알 수 있다. 상술한 바와 같이, 이 기술은 프로세서 코어에서 실행될 수도 있는 소프트웨어에 바람직하게 삽입될 수 있다. 본 발명의 바람직한 실시예의 기술은 현재의 높은 말단 프로세서 코어를 이용한 디코더로부터 요구되는 높은 비트 출력을 낼 수 있게 한다.It can be seen from the above description that the technique of the preferred embodiment of the present invention provides a particular effect that the metrics for all Viterbi states can be updated at the same time. As mentioned above, this technique may be preferably embedded in software that may be executed on a processor core. The technique of the preferred embodiment of the present invention makes it possible to produce the high bit output required from a decoder using current high end processor cores.

본 발명의 바람직한 실시예가 여기에서 설명되었지만, 본 발명은 이에 제한되지 않고, 본 발명의 범위를 벗어나지 않는 범위 내에서 많은 변형과 추가가 가능하다. 예를 들어 본 발명의 범위를 벗어나지 않는 범위 내에서 다음 종속항의 특징들은 독립항의 특징과 다양하게 조합될 수 있다.While the preferred embodiments of the invention have been described herein, the invention is not so limited, and many modifications and additions are possible without departing from the scope of the invention. For example, the features of the following dependent claims may be variously combined with the features of the independent claims without departing from the scope of the invention.

Claims (13)

원래의 시퀀스에서 제1 소정 개수의 이전 데이터 비트와 현재의 데이터 비트에 각각이 의존하는 복수개의 코드를 포함하고 데이터 비트의 원래의 시퀀스를 나타내는 인코드된 데이터 스트림을 디코드하는 방법에 있어서,1. A method of decoding an encoded data stream comprising a plurality of codes each dependent on a first predetermined number of previous data bits and a current data bit in an original sequence and representing an original sequence of data bits 제1 소정 개수의 이전 데이터 비트의 다수개의 가능한 상태들 각각에 대하여 상기 해당 상태가 상기 제1 소정 개수의 이전 데이터 비트를 나타내는 유사도를 나타내는 스코어를 제공하는 단계(a)와,(A) providing, for each of a plurality of possible states of a first predetermined number of previous data bits, a score indicative of a similarity in which said state represents the first predetermined number of previous data bits; 처음의 순서로 상기 스코어를 배열하는 단계(b)와,(B) arranging the scores in the first order; 코드를 수신하는 단계(c)와,Receiving (c) the code; 상기 수신된 코드에서 현재의 데이터의 2개의 가능한 값들 각각이 주어지고, 상기 상태가 상기 제1 소정 개수의 비트를 나타내는 상기 수신된 코드에 기초하여 상기 유사도를 나타내는 2개의 갱신값들을 각각의 상태에 대하여 결정하는 단계(d)와,Each of the two possible values of current data in the received code is given, and the two update values indicative of the similarity in each state are based on the received code in which the state represents the first predetermined number of bits. Determining (d) 상기 단계(b)에서 배열된 바와 같은 스코어를 종합적으로 나타내도록 각각의 상기 스코어로부터 소정의 비트를 각각 포함하는 제1 복수개의 스코어 비트 슬라이스를 저장하는 단계(e)와,(E) storing a first plurality of score bit slices each comprising a predetermined bit from each said score to collectively represent a score as arranged in step (b); 상기 스코어를 재정렬하여 상기 재정렬된 스코어를 종합적으로 나타내도록 각각의 상기 재정렬된 스코어로부터 소정의 비트를 각각 포함하는 제2 복수개의 스코어 비트 슬라이스를 저장하는 단계(f)와,(F) storing a second plurality of score bit slices each including a predetermined bit from each of the rearranged scores to rearrange the scores to collectively represent the rearranged scores; 상기 제1 복수개의 스코어 비트 슬라이스에 대한 제1 복수개의 갱신 비트 슬라이스와 상기 제2 복수개의 스코어 비트 슬라이스에 대한 제2 복수개의 갱신 비트 슬라이스를 상기 갱신값으로부터 생성하는 단계(g)와,(G) generating a first plurality of update bit slices for the first plurality of score bit slices and a second plurality of update bit slices for the second plurality of score bit slices from the update value; 상기 제1 복수개의 스코어 비트 슬라이스와 상기 제1 복수개의 갱신 비트 슬라이스로부터 제1 후보 복수개의 갱신된 스코어 비트 슬라이스를 생성하고, 상기 제2 복수개의 스코어 비트 슬라이스와 상기 제2 복수개의 갱신 비트 슬라이스로부터 제2 후보 복수개의 갱신된 스코어 비트 슬라이스를 생성하는 단계(h)와,Generate a first candidate plurality of updated score bit slices from the first plurality of score bit slices and the first plurality of update bit slices, and from the second plurality of score bit slices and the second plurality of update bit slices Generating (h) a second candidate plurality of updated score bit slices, 비트 슬라이스로 표현되는 각각의 스코어에 대하여 소정의 기준을 적용하여 상기 제1 후보 복수개의 갱신된 스코어 비트 슬라이스 또는 제2 후보 복수개의 갱신된 스코어 비트 슬라이스에 대하여 비트를 선택함으로써 복수개의 갱신된 스코어 비트 슬라이스를 생성하는 단계(i)를 포함하며,A plurality of updated score bits by selecting bits for the first candidate plurality of updated score bit slices or the second candidate plurality of updated score bit slices by applying a predetermined criterion to each score represented by a bit slice Generating (i) a slice; 모든 스코어는 동시에 갱신되는 것을 특징으로 하는 디코딩 방법.And all the scores are updated at the same time. 제1 항에 있어서,According to claim 1, 인코드된 데이터 스트림으로부터 그 이상의 코드를 입력받자마자 복수개의 갱신된 스코어 비트 슬라이스가 상기 제1 복수개의 스코어 비트 슬라이스로서 취급되고, 그 이상의 코드를 기초하는 단계(g)에서 사용되는 상기 갱신값으로 상기 단계들(f∼i)이 반복되는 것을 특징으로 하는 디코딩 방법.Upon receiving more than one code from the encoded data stream, a plurality of updated score bit slices are treated as the first plurality of score bit slices and with the update value used in step (g) based on the more code. And the steps (f) to (i) are repeated. 제2 항에 있어서,The method of claim 2, 각각의 코드는 k비트에 의존되고, 상기 단계(f) 내지 (i)의 각각의 반복 동안에 상기 복수개의 갱신된 스코어 비트 슬라이스에 포함된 각각의 스코어에 의해 나타난 상태들이 변하고, 상기 스코어들은 상기 단계(f) 내지 (i)의 k-1번의 반복을 따르는 상기 초기 순서로 되돌아가는 것을 특징으로 하는 디코딩 방법.Each code depends on k bits, and during each iteration of steps (f) through (i) the states represented by each score included in the plurality of updated score bit slices change, and the scores and (f) returns to said initial order following the k-1 iterations of (i). 제3 항에 있어서,The method of claim 3, wherein 레코드는 각각의 상기 k-1번의 반복에 대한 각각의 스코어에 의해 나타난 상기 상태들로 유지되는 것을 특징으로 하는 디코딩 방법.A record is maintained in said states represented by each score for each said k-1 iterations. 제3 항 또는 제4 항에 있어서,The method according to claim 3 or 4, 상기 단계(f)에서의 상기 스코어의 상기 재정렬은 특정한 반복에 의존적인 것을 특징으로 하는 디코딩 방법.Said reordering of said score in said step (f) is dependent on a particular iteration. 제3 항 내지 제5 항 중 어느 한 항에 있어서,The method according to any one of claims 3 to 5, 상기 단계(d)는 각각의 상기 k-1번의 반복에 대하여 갱신 비트 슬라이스의룩업 테이블을 생성하기 위하여 상기 인코드된 데이터 스트림을 디코드하기 전에 실행되고, 상기 단계(g)에서 상기 갱신 비트 슬라이스는 상기 입력된 코드와 상기 반복과 상기 갱신 비트 슬라이스가 상기 제1 복수개의 스코어 비트 슬라이스와 상기 제1 복수개의 스코어 비트 슬라이스를 위한 것인지의 여부에 따라 상기 룩업 테이블로부터 읽히는 것을 특징으로 하는 디코딩 방법.The step (d) is performed before decoding the encoded data stream to generate a lookup table of update bit slices for each k-1 iterations, wherein in step (g) the update bit slice is And read from the lookup table according to whether the input code, the iteration and the update bit slice are for the first plurality of score bit slices and the first plurality of score bit slices. 선행하는 청구항 중 어느 한 항에 있어서,The method according to any of the preceding claims, 상기 단계(i)는 상기 제1 후보 복수개의 갱신된 스코어 비트 슬라이스로부터 상기 제2 후보 복수개의 갱신된 스코어 비트 슬라이스를 빼어서 경로 히스토리 비트 슬라이스를 형성하고, 상기 복수개의 갱신된 스코어 비트 슬라이스에 의해 나타나는 특정한 스코어에 대한 상기 비트는 상기 경로 히스토리 비트 슬라이스에서 해당하는 위치로 상기 비트의 상기 값에 따라 선택되는 것을 특징으로 하는 디코딩 방법.The step (i) subtracts the second candidate plurality of updated score bit slices from the first candidate plurality of updated score bit slices to form a path history bit slice, and by the plurality of updated score bit slices. And said bit for a particular score appearing is selected according to said value of said bit to a corresponding position in said path history bit slice. 제7 항에 있어서,The method of claim 7, wherein 경로 히스토리 비트 슬라이스는 다수의 경로 히스토리 비트 슬라이스를 포함하는 경로 히스토리에 추가되고, 상기 경로 히스토리는 어느 특정한 상태에 대하여도 상기 제1 소정 개수보다 앞서는 원래의 시퀀스 내의 비트라고 생각되는 제2 소정 개수의 비트를 결정하도록 채용되는 것을 특징으로 하는 디코딩 방법.A path history bit slice is added to a path history comprising a plurality of path history bit slices, the path history being a second predetermined number of bits considered to be bits in the original sequence preceding the first predetermined number for any particular state. Decoding method for determining the bit. 제4 항에 종속되는 제8 항에 있어서,The method according to claim 8, which is dependent on claim 4, 각각의 경로 히스토리 비트 슬라이스는 상기 k-1번의 반복 중의 하나와 관련되어, 상기 제2 소정 개수의 비트가 어느 특정한 상태에 대하여도 상기 레코드를 참조하여 결정될 수 있는 것을 특징으로 하는 디코딩 방법.Wherein each path history bit slice is associated with one of the k-1 iterations such that the second predetermined number of bits can be determined with reference to the record for any particular state. 제8 항 또는 제9 항에 있어서,The method according to claim 8 or 9, 소정의 기준을 최고로 만족하는 상기 스코어를 선택하기 위하여 소정의 간격으로 상기 스코어들이 비교되고, 상기 스코어에 해당하는 상태가 결정되고, 상기 상태에 대한 복수개의 상기 제2 소정 개수의 비트가 결정되고, 데이터 비트의 상기 원래의 시퀀스의 디코드된 부분으로서 출력되는 것을 특징으로 하는 디코딩 방법.The scores are compared at predetermined intervals to select the score that best satisfies a predetermined criterion, a state corresponding to the score is determined, a plurality of the second predetermined number of bits for the state are determined, And output as the decoded portion of the original sequence of data bits. 원래의 시퀀스에서 제1 소정 개수의 이전 데이터 비트와 현재의 데이터 비트에 각각이 의존하는 복수개의 코드를 포함하고 데이터 비트의 원래의 시퀀스를 나타내는 인코드된 데이터 스트림을 디코드하는 시스템에 있어서,A system for decoding an encoded data stream comprising a plurality of codes, each dependent of a first predetermined number of previous data bits and a current data bit in an original sequence, and representing an original sequence of data bits. 제1 소정 개수의 이전 데이터 비트의 다수개의 가능한 상태들 각각에 대하여상기 해당 상태가 상기 제1 소정 개수의 이전 데이터 비트를 나타내는 유사도를 나타내는 스코어를 제공하는 스코어 발생기와,A score generator for each of a plurality of possible states of a first predetermined number of previous data bits, the score generator providing a score indicating a similarity indicating the first predetermined number of previous data bits; 처음의 순서로 상기 스코어를 배열하는 정렬기와,A sorter for arranging the scores in the first order, 코드의 수신에 따라 상기 수신된 코드에서 현재의 데이터의 2개의 가능한 값들 각각이 주어지고, 상기 상태가 상기 제1 소정 개수의 비트를 나타내는 상기 수신된 코드에 기초하여 상기 유사도를 나타내는 2개의 갱신값들을 각각의 상태에 대하여 결정하는 갱신값 생성기를 포함하며,Two update values representing each of the two possible values of current data in the received code upon receipt of the code, wherein the status indicates the similarity based on the received code representing the first predetermined number of bits. An update value generator for determining each state for each state, 상기 스코어 생성기는 처음부터 정렬된 스코어를 제1 복수개의 스코어 비트 슬라이스로서 종합적으로 나타내도록 배열되고, 각각의 상기 스코어 비트 슬라이스 각각의 상기 스코어로부터 소정의 비트를 포함하고,The score generator is arranged to collectively represent a score sorted from scratch as a first plurality of score bit slices, and includes a predetermined bit from the score of each of the score bit slices, 상기 정렬기는 상기 스코어를 재정렬하도록 배열되고, 상기 스코어 생성기는 상기 재정렬된 스코어를 제2 복수개의 스코어 비트 슬라이스로서 종합적으로 나타내도록 배열되고, 각각의 스코어 비트 슬라이스는 각각의 상기 재정렬된 스코어로부터 소정의 비트를 포함하고,The sorter is arranged to reorder the scores, the score generator is arranged to collectively represent the reordered scores as a second plurality of score bit slices, each score bit slice being predetermined from each of the reordered scores. Contains a bit, 상기 갱신값 생성기는 상기 제1 복수개의 스코어 비트 슬라이스에 대한 제1 복수개의 갱신 비트 슬라이스와 상기 제2 복수개의 스코어 비트 슬라이스에 대한 제2 복수개의 갱신 비트 슬라이스를 상기 갱신값으로부터 생성하고, 각각의 갱신 비트 슬라이스는 상기 갱신값들 중 소정의 것들로부터 소정의 비트를 나타내고,The update value generator generates a first plurality of update bit slices for the first plurality of score bit slices and a second plurality of update bit slices for the second plurality of score bit slices from the update values, each of An update bit slice represents a predetermined bit from certain of said update values, 상기 스코어 생성기는 상기 제1 복수개의 스코어 비트 슬라이스와 상기 제1 복수개의 갱신 비트 슬라이스로부터 제1 후보 복수개의 갱신된 스코어 비트 슬라이스를 생성하고, 상기 제2 복수개의 스코어 비트 슬라이스와 상기 제2 복수개의 갱신 비트 슬라이스로부터 제2 후보 복수개의 갱신된 스코어 비트 슬라이스를 생성하고,The score generator generates a first candidate plurality of updated score bit slices from the first plurality of score bit slices and the first plurality of update bit slices, and the second plurality of score bit slices and the second plurality of score bit slices. Generate a second candidate plurality of updated score bit slices from the update bit slices, 비트 슬라이스로 표현되는 각각의 스코어에 대하여 소정의 기준을 적용하여 상기 제1 후보 복수개의 갱신된 스코어 비트 슬라이스 또는 제2 후보 복수개의 갱신된 스코어 비트 슬라이스에 대하여 비트를 선택함으로써 복수개의 갱신된 스코어 비트 슬라이스를 생성하고, 모든 스코어는 동시에 갱신되는 것을 특징으로 하는 디코딩 시스템.A plurality of updated score bits by selecting bits for the first candidate plurality of updated score bit slices or the second candidate plurality of updated score bit slices by applying a predetermined criterion to each score represented by a bit slice A slice, wherein all scores are updated at the same time. 제1 항 내지 제10 항 중 어느 한 항의 방법을 수행하는 컴퓨터 처리 유니트를 구성하도록 동작 가능한 것을 특징으로 하는 컴퓨터 프로그램.A computer program operable to construct a computer processing unit for performing the method of any one of claims 1 to 10. 제12 항의 컴퓨터 프로그램을 포함하는 것을 특징으로 하는 기록매체.A record carrier comprising the computer program of claim 12.
KR1020027008047A 2000-03-08 2001-02-02 Viterbi decoding with path metric update implemented in the order of bit-slices KR20020089310A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB0005584.8A GB0005584D0 (en) 2000-03-08 2000-03-08 A system method and computer program for decoding an encoded data stream
GB0005584.8 2000-03-08
GB0009955.6 2000-04-20
GB0009955A GB2360180B (en) 2000-03-08 2000-04-20 A system,method and computer program for decoding an encoded data stream
PCT/GB2001/000444 WO2001067619A1 (en) 2000-03-08 2001-02-02 Viterbi decoding with path metric update implemented in the order of bit-slices

Publications (1)

Publication Number Publication Date
KR20020089310A true KR20020089310A (en) 2002-11-29

Family

ID=9887218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027008047A KR20020089310A (en) 2000-03-08 2001-02-02 Viterbi decoding with path metric update implemented in the order of bit-slices

Country Status (2)

Country Link
KR (1) KR20020089310A (en)
GB (2) GB0005584D0 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113362894A (en) * 2021-06-15 2021-09-07 上海基绪康生物科技有限公司 Method for predicting syndromal cancer driver gene

Also Published As

Publication number Publication date
GB0009955D0 (en) 2000-06-14
GB2360180A (en) 2001-09-12
GB0005584D0 (en) 2000-05-03
GB2360180B (en) 2003-07-30

Similar Documents

Publication Publication Date Title
EP1049001B1 (en) Arithmetic apparatus
EP1102408B1 (en) Viterbi decoder
EP0471518B1 (en) Data compression method and apparatus
JPH0730439A (en) Operation of cyclic viterbi decoder
JP2000068861A (en) Viterbi decoder and viterbi decoding method
KR20030071327A (en) Improved huffman decoding method and apparatus thereof
US6831952B2 (en) System, method and computer program for decoding an encoded data stream
KR20190019798A (en) Efficient survivor memory architecture for successive cancellation list decoding of channel polarization codes
MXPA02009796A (en) Method and apparatus for efficiently reading and storing state metrics in memory for high speed acs viterbi decoder implementations.
US7205915B2 (en) Method of decoding variable length prefix codes
JP3550369B2 (en) Method for storing path metric in Viterbi decoder
KR20020089310A (en) Viterbi decoding with path metric update implemented in the order of bit-slices
JPH06338807A (en) Method and equipment for sign correction
US6684365B1 (en) Encoding device and method, decoding device and method, providing medium, and method for generating data substitution position information
KR100262303B1 (en) Survivor path trace back method in decoding with viterbi algorithm and apparatus thereof
US6928599B2 (en) Method and apparatus for decoding data
JP3235333B2 (en) Viterbi decoding method and Viterbi decoding device
JP4702721B2 (en) Addressing method for Viterbi metric calculation
JPH10209882A (en) Method for decoding viterbi
JPH0722969A (en) Arithmetic unit
JPH08167858A (en) Viterbi decoder
JP3288328B2 (en) Apparatus and method for speeding up traceback processing of Viterbi decoder
JP2002198827A (en) Maximum likelihood decoding method and decoder thereof
JP2000114973A (en) Encoding device and method, decoding device and method, and providing medium
KR20020020886A (en) Arithmetic decoding of an arithmetically encoded information signal

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid