KR100604364B1 - 정보신호의 연산 인코딩 및 디코딩 - Google Patents

정보신호의 연산 인코딩 및 디코딩 Download PDF

Info

Publication number
KR100604364B1
KR100604364B1 KR1019997010797A KR19997010797A KR100604364B1 KR 100604364 B1 KR100604364 B1 KR 100604364B1 KR 1019997010797 A KR1019997010797 A KR 1019997010797A KR 19997010797 A KR19997010797 A KR 19997010797A KR 100604364 B1 KR100604364 B1 KR 100604364B1
Authority
KR
South Korea
Prior art keywords
value
parameter
register
information signal
encoding
Prior art date
Application number
KR1019997010797A
Other languages
English (en)
Other versions
KR20010012832A (ko
Inventor
반데르플로이텐레나투스제이.
Original Assignee
코닌클리케 필립스 일렉트로닉스 엔.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20010012832A publication Critical patent/KR20010012832A/ko
Application granted granted Critical
Publication of KR100604364B1 publication Critical patent/KR100604364B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은, 연산 인코더와 이에 대응하는 연산 디코더를 개량하는 방법에 관한 것이다. 특히, 승산과정 A·p를 수행하기 전에, A 파라미터를 절단하는 방안이 제시된다. 더구나, 인코더 내부에서의 재정규화 단계에서 자리올림 제어를 위한 방법이 제공된다.
연산 인코딩, 연산 디코딩, 절단, 재정규화, 자리올림, 기록매체, 무손실 코딩

Description

정보신호의 연산 인코딩 및 디코딩{ARITHMETIC ENCODING AND DECODING OF AN INFORMATION SIGNAL}
본 발명은, 정보신호를 연산 인코딩하는 방법과, 정보신호를 연산 인코딩하는 장치와, 연산적으로 인코딩된 정보신호를 디코딩하는 장치에 관한 것이다.
연산 코딩은 무손실 코딩에 대한 공지된 기술로서, 이에 대한 소개내용은 현존하는 소스 코딩 서적에서 찾을 수 있다. 본 발명에 대하 가장 관련이 있는 연산 코딩의 구현에 대한 완전한 이해를 위해서는, 참고문헌 목록의 [Lang84]를 참조하기 바란다. 연산 코딩의 역사에 대해서는 이 문헌의 부록에 잘 기재되어 있다. 더구나, [Howard94]에는 연산 코딩에 대한 광범위한 설명이 제공된다.
본 발명의 주제인 연산 코딩의 구현에는, 보통 C 및 A로 불리는 2개의 유한 크기(finite-size) 레지스터가 사용된다. 인코더 동작의 흐름도를 도 1에 나타내었다. C 레지스터는 수치 라인 상의 한 구간의 바닥을 가리키고, 그것의 크기는 A에 기억되는데, 이에 대해서는 [Lang81] 및 [Penn88]을 참조하기 바란다. 상기한 구간은 복수의 서브구간으로 분할되는데, 이때 각각의 서브구간은 인코딩하려는 심볼에 대응하고, 각각의 서브구간의 크기는 관련된 심볼의 확률에 대응한다. 실제로 한 개의 심볼을 인코딩하기 위해, C 레지스터는 이 심볼에 대응하는 서브구간의 바닥을 가리키도록 조정되고, A 레지스터는 선택된 서브구간의 크기로 설정된다. 그후, 다음 심볼이 인코딩되기 전에, (C 뿐만 아니라) A 레지스터가 정규화된다. 일반적으로, 재정규화 이후에, A의 값은 값 k와 2k 사이에 놓이는데, k≤A<2k가 된다. 본 실시예에 있어서는 k=1/2를 사용한다.
예를 들면, 이진수의 경우에, 인코딩하려는 비트가 가장 확률이 높은 심볼(the most probable symbol: MPS)인지 또는 가장 확률이 낮은 심볼(the least probable symbol: LPS)인지에 의존하여, 2개의 서브구간, 이에 따라 C 및 A 레지스터의 2가지 가능한 갱신이 존재한다. 이하에서는, MPS가 하부 구간에 할당된다고 가정한다. 도 1에 도시된 "A 및 C를 갱신한다"에 해당하는 블록을 이진수의 경우에 대해 도 2에 나타내었다. LPS에 해당하는 입력 비트의 확률을 p로 나타낸다(이때, MPS의 확률은 ≥1/2이므로, p≤1/2라는 점에 주목하기 바란다). 또한, 인코딩하려는 입력 비트를 b로 표시한다. 이때, b 및 p의 값은 "...판독한다" 블록에 의해 주어진다. 따라서, 만일, MPS를 인코딩하고자 하는 경우에는, 하부 구간이 선택되고 C가 이미 이 구간을 가리키기 때문에, C는 변화하지 않는다. 그러나, A는 변화하지 않으며, (MPS의 확률이 1-p라는 사실을 사용하여) 그것의 갱신값은 A=A-A·p가 된다. LPS를 인코딩하고자 하는 경우에는, C 및 A 모두가 변화하는데, C는 C=C+A-A·P로 갱신되고, 새로운 구간 크기는 A=A·p가 된다. 더구나, 전처리 및 후처리에 의해, MPS가 예를 들면 항상 "0" 비트이고, LPS가 항상 "1" 비트라는 것을 확인할 수 있다는 점에 주목하기 바란다. 마지막으로, 승산 A·p는 적은 성능의 저하와 낮은 정밀도를 갖고 수행됨으로써, 하드웨어의 복잡성을 줄일 수 있는 것으로 판명되었으므로, 도 2에 "근사 승산(approximate multiplication)" 블록을 도시하 였다. 이하에서는 근사 승산을 수행하기 위한 기술에 대해 설명한다.
비이진수의 경우에 대해, 도 1에 도시된 "A 및 C를 갱신한다" 블록을 도 3에 나타내었다. 이때, "...판독한다" 블록은 인코딩하려는 심볼 이외에, 2개의 확률값, 즉 심볼 s의 확률값 ps와 이 심볼 s 아래의 순위를 갖는 모든 심볼의 누적 확률값 pt를 제공한다. 도 3으로부터 알 수 있는 것과 같이, A를 정확히 "채우기" 위해 심볼 M은 다른 심볼들과는 다르게 취급된다. 심볼 M에 MPS를 할당하는 것이 유리하다는 내용은 [Riss89]에 나타나 있다.
디코딩을 가능하게 하기 위해서는, 디코더가 C의 값을 알아야만 하는데, 이것은 이 값이 인코딩된 심볼을 결정하기 때문이다. 따라서, 디코더로 전송되는 것은 C 레지스터의 값이다. 실제로, 재정규화 과정에서 A 레지스터가 좌측으로 시프트될 때마다, ("자리올림 비트(carry bit)"로도 불리는) C의 MSB가 디코더로의 전송을 위해 신호처리된다. C에 대해 유한 크기 레지스터를 사용하는 것과 관련된 문제점은, C에서 밖으로 이미 시프트된 비트가 C를 증분함으로써 발생된 자리올림에 의해 나중에 조정되어야만 한다는 것이다. 이러한 문제를 해경하기 위해서는, 자리올림 제어가 필요하다. 최신의 기술은 인코더에서 이와 같은 문제를 완벽하게 해결하므로, 디코더는 이것에 의해 영향을 받지 않는다. 디코더의 복잡성을 최소화하는 이들 해결책도 나중에 설명한다.
디코더에 대한 흐름도를 도 4에 나타내었다. 이진수의 경우에 대해, "심볼을 출력한다..." 블록을 도 5에 나타내었다. 비이진수의 경우에는, 디코더가 s의 값을 알지 못한 채 "C=C+D"의 역수를 찾아야 하기 때문에, 디코더가 더 복잡하게 된다.
결국, 본 발명의 목적은, 전술한 연산 코더에 대한 개량을 제공함에 있다. 본 발명에 따르면, 인코딩 방법은, n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, A 파라미터 및 C 파라미터를 각각 기억하는 유한 크기의 제 1 및 제 2 레지스터를 사용하여 연산적으로 인코딩하는 방법으로서, 상기 C 파라미터는 수치 구간의 경계와 관계를 갖고, 상기 A 파라미터는 상기 구간의 크기와 관계를 가지며, 상기 방법이,
(a) 인코딩하기 위해 정보신호의 심볼과 관련된 심볼의 적어도 한 개의 대응하는 확률값을 입력하는 단계와,
(b) 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 단계와,
(c) 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 단계와,
(d) 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 단계와,
(e) A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 단계와,
(f) 다음 심볼을 인코딩하기 위해 단계 (a)에서 상기 과정을 계속 수행하는 단계를 포함하는 인코딩 방법에 있어서,
상기 단계 (b)는, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단(truncating)하고, bi가 '1'인 경우에, 비트 bi-1의 위치에 A의 절단된 값에 '1'을 가산하는 부속 단계를 더 포함하는 것을 특징으로 한다. 또 다른 실시예에 있어서, 인코딩 방법은, n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, A 파라미터 및 C 파라미터를 각각 기억하는 유한 크기의 제 1 및 제 2 레지스터를 사용하여 연산적으로 인코딩하는 방법으로서, 상기 C 파라미터는 수치 구간의 경계와 관계를 갖고, 상기 A 파라미터는 상기 구간의 크기와 관계를 가지며, 상기 방법이,
(a) 인코딩하기 위해 정보신호의 심볼과 관련된 심볼의 적어도 한 개의 대응하는 확률값을 입력하는 단계와,
(b) 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 단계와,
(c) 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 단계와,
(d) 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 단계와,
(e) A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 단계와,
(f) 다음 심볼을 인코딩하기 위해 단계 (a)에서 상기 과정을 계속 수행하는 단계를 포함하는 인코딩 방법에 있어서,
상기 단계 (b)는, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, bi-1='0'이고 bi='1'인 경우, bi-1을 '1'로 증가시키는 부속 단계를 더 포함하는 것을 특징으로 한다.
또 다른 실시예에 있어서, 인코딩 방법은, n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, A 파라미터 및 C 파라미터를 각각 기억하는 유한 크기의 제 1 및 제 2 레지스터를 사용하여 연산적으로 인코딩하는 방법으로서, 상기 C 파라미터는 수치 구간의 경계와 관계를 갖고, 상기 A 파라미터는 상기 구간의 크기와 관계를 가지며, 상기 방법이,
(a) 인코딩하기 위해 정보신호의 심볼과 관련된 심볼의 적어도 한 개의 대응하는 확률값을 입력하는 단계와,
(b) 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 단계와,
(c) 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 단계와,
(d) 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 단계와,
(e) A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 단계와,
(f) 다음 심볼을 인코딩하기 위해 단계 (a)에서 상기 과정을 계속 수행하는 단계를 포함하는 인코딩 방법에 있어서,
상기 단계 (b)는, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, 비트 bi-1을 '1'과 동일하게 만드는 부속 단계를 더 포함하는 것을 특징으로 한다.
본 발명에서 제시된 개량사항은, (인코더와 디코더 모두에서 사용되는) 근사 승산 블록과, 인코더에서만, "...재정규화한다" 블록에서 발생하는 자리올림 제어에 관한 것이다.
이하, 본 발명의 이와 같은 발명내용과 또 다른 발명내용을 다음의 도면을 참조하여 더욱 상세히 설명한다:
도 1은 연산 인코더의 흐름도이고,
도 2는 이진수의 경우에 대해 도 1에 도시된 인코더 블록 "A 및 C를 갱신한다"에 대한 흐름도를 나타낸 것으로, 이때 LPS 확률은 p이고, 인코딩하려는 비트의 값을 b가 보유하며,
도 3은 비이진수 경우에 대한 도 1에 도시된 인코더 블록 "A 및 C를 갱신한다"에 대한 흐름도를 나타낸 것으로, 이때, 인코딩하려는 심볼의 값은 s가 보유하며, 그것의 확률값은 ps가 가지며, M+1개의 심볼은 0, …M으로 번호가 부여되고, pt = p0 + p1 + … + ps-1은 심볼 s 아래의 순위를 갖는 모든 심볼의 누적 확률이며,
도 4는 디코더의 흐름도를 나타낸 것이고,
도 5는 이진수의 경우에 대해 도 4에 도시된 디코더 블록 "심볼을 출력한다..."에 대한 흐름도를 나타낸 것으로, 이때 LPS 확률은 p이고, 디코딩하려는 비트의 값은 b에 주어지며,
도 6은 도 1에 "...재정규화한다"로 표시된 인코더 블록의 흐름도를 나타낸 것이고,
도 7은 도 1에 "초기화"로 표시된 인코더 블록의 흐름도를 나타낸 것이며,
도 8은 도 1에 "종결"로 표시된 인코더 블록의 흐름도를 나타낸 것이고,
도 9는 도 4에 "초기화"로 표시된 디코더 블록의 흐름도를 나타낸 것이며,
도 10은 도 4에 "...재정규화한다"로 표시된 디코더 블록의 흐름도를 나타낸 것이고,
도 11은 인코더 장치의 일 실시예를 나타낸 것이며,
도 12는 디코더 장치의 일 실시예를 나타낸 것이다.
승산과정에 대한 개량에 대해, 다음과 같이 설명할 수 있다. 승산 A·p를 "피하는" 문제는, 2 exp{-Q}에 의해 p를 근사화함으로써 [Lang81]에서 해결되었는데, 이때 Q는 정수이다. 이때, P에 의한 승산은 단순히 Q 위치 만큼 우측으로 시프트하는 것에 해당한다. 이때, Q는 스큐 번호(skew number)로 불린다. 그후, [Riss89]에 기재된 것과 같이, 0.75≤A<1.5가 되도록 A 레지스터가 정규화되었다. 이때,
Figure 111999015325714-pct00001
, 따라서
Figure 111999015325714-pct00002
인 것으로 가정하였다.
[Chev91a] 및 [Chev91b]에서는 더욱 우수한 성능이 얻어졌다. 이들 문헌에서는, 소정의 이진수 1 디지트(digit)보다 덜 중요한 모든 이진수 디지트를 제거함으로써 A를 근사화하며, 그것의 바람직한 실시예는 두 번째 최상위 이진수 1 디지트를 사용하는 것이다. 따라서, 바람직한 실시예에 있어서, A의 값은 2개의 비제로(non-zero) 비트를 포함하는 이진수에 의해 근사화되는데, 이것은 한 개의 시프트 및 가산 연산을 사용하여 승산을 수행할 수 있다는 것을 의미한다. 마지막으로, [Feyg93]에는 A의 개량된 근사법에 대해 기재되어 있는데, 이것도 마찬가지로 한 개의 시프트 및 가산 연산을 사용하여 구현될 수 있다.
승산과정을 근사화하기 위해 본 발명에서 실제로 사용되는 방법(들)은 다음과 같다. NP개의 비트를 사용하여 확률(p)을 설명한다. 예를 들면, NP=8이면, p=1/4=2 exp{-2}=0.01(이진수)이 이진수 01000000에 의해 표시되는데, 즉 "0."이 모든 확률에 대해 동일하기 때문에 포함되지 않는다. A 레지스터의 크기는 NA=NP+NX 비트로 선택되는데, 이때 NX는 승산을 위해 사용되는 A의 값을 근사화하는데 사용되는 비트의 수를 표시한다. NX=3, A=3/4=0.11이라 하면, A는 11000000000을 포함하는 8+3=11-비트 레지스터가 될 것이다(이때에도, A가 항상 1보다 작도록 정규화시키기 때문에, "0."이 버려진다는 점에 주목하기 바란다). 승산을 위해, 3-비트 수치에 의해 A를 근사화하는데, 이 경우에는, 가장 우수한 근사는 110이라는 것은 명백하다. 따라서, 근사 승산 A·p의 결과는 00110000000, 즉 다시 11-비트 수가 된다. 이와 같이 근사 승산을 구현하는 방법은 무엇보다도 [Feyg93]에 제시되어 있다.
이하에서는, NA-비트 수 A가 NX개의 비트에 의해 근사화되는 방법에 대한 설명이 주어진다.
A를 근사화하는 첫 번째 방법(방법 P1)은, A를 절단하는 대신에, 그것을 NX 비트로 라운딩(rounding)하는 과정을 포함한다. 라운딩이란, A의 (NX+1)번째 비트가 0이면 A를 NX 비트로 절단하고, (NX+1)번째 비트가 1이면 이와 같이 절단된 표현에 1이 가산되는 것을 의미한다. 예를 들어, A=1101…이면, 3-비트 근사는 111이 될 것이다. 약 절반의 경우에, 절단된 표현에 1이 가산되어야 하므로, 적용된 라운딩은 복잡성을 증가시키는데, 이것은 가산 연산이나 테이블 룩업이 수행되어야 한다는 것을 의미한다.
이에 대한 대안(방법 P2)으로서, 소위 "부분 라운딩(partial rounding)"을 채용하는 것이 제안된다. 부분 라운딩에 의해, (NX+1)번째 비트가 '1'이고 NX번째 비트가 '0'인 경우에만, 절단된 표현에 1이 가산된다. 구현시에, 이것은 A의 근사값의 NX번째 비트가 원본 A의 NX번째 및 (NX+1)번째 비트의 논리 OR와 동일하다는 것을 의미한다. 예를 들면, A=1011…은 101로 근사화되고, A=1001…도 마찬가지로 101으로 근사화되는 반면에, A=1000…은 100으로 근사화된다. 이때, 부분 라운딩은 약 75%의 경우에 있어서 "완전한 라운딩"과 동일한 근사를 제공한다는 점에 주목하기 바란다.
또 다른 대안(방법 P3)에서는, A에 대한 가능한 근사값의 절반을 제거하므로, 하드웨어 구현의 복잡성을 더욱 줄일 수 있다는 착상에서, A를 NX 비트로 절단하여 A를 근사화하고, 근사값의 NX번째 비트를 항상 1로 설정하는 방법이 제안된 다.
일부 공지된 방법의 성능을 전술한 3가지 새로운 방법과 비교하였다. 다양한 방법에 대한 성능을 표 1에 나타내었다. 전술한 3가지 근사법(P1, P2 및 P3) 이외에, 표에 나타낸 방법은, 완전한 NAxNP-비트 승산을 연산한 후 A를 NA 비트로 절단하는 "기준"으로 나타낸 기준방법과, [Moff95]의 방법과, [Chev91a]의 방법과, Feyg93(1)로 표시한 Feyg93의 섹션 3에 기재된 방법과, Fryg93(2)로 표시된 Feyg93의 섹션 4에 기재된 방법이다.
방법 NX=2 NX=3 NX=4
기준 100 100 100
Moff95 101.25 100.33 100.09
Chev91a 101.24 100.57 100.45
Feyg93(1) 101.22 100.32 100.19
Feyg93(2) 100.52 100.12 100.04
P1 100.33 100.12 100.03
P2 100.57 100.19 100.05
P3 101.66 100.44 100.10

표에 기재된 수치는 압축된 파일의 상대적인 크기를 나타내는데, 100은 승산과정의 불완전 근사에 기인한 "손실 없음"에 해당한다. 예를 들면, 100.57에 대한 수치는, 압축된 파일의 크기가 근사 승산으로 인해 0.57% 만큼 증가되었다는 것을 의미한다.
예상한 것과 같이, 방법 P2의 성능은 Moff95의 방법의 성능보다 우수하지만, 방법 P1의 성능만큼 우수하지 않다.
방법 P2는 양호한 절충안에 해당한다. 특히, NX=3 및 NX=4에 대한 P2는, 그것의 성능이 낮은 복잡성에서 방법 P1의 성능과 실제로 동일하기 때문에(상기한 표를 참조할 것), 성능과 복잡성 사이에 양호한 절충안을 제공한다. NX=2에 대해서는, 방법 P1이 바람직한 방법인 반면에, 방법 P3는 NX=5 및 그보다 큰 경우에 사용될 수 있다.
비이진수의 경우에, 절상(rounding up)에 의해 A의 값으로 근사할 수 있는 방법은, 알파벳 크기가 증가할 때, MPS에 대한 "여유공간"이 남아있지 않을 수 있다는 잠정적인 문제점을 갖는다[Feyg93]. 방법 Feyg93(2)에 대해, 알파벳 크기에 대한 최악의 경우를 고려한 한계값은 11이다[Feyg93]. 본 발명에서 제안된 새로운 방법은, 절상에 의해 A가 증가될 수 있는 양이 NX가 증가됨에 따라 감소한다는 이점을 갖는다. 따라서, 알파벳 크기가 제안되도록 확률 분포를 갖는 응용분야가 존재하는 경우에는 (그리고 절단하거나 잘라버릴 수 있는(round down) 방법의 성능이 불충분한 경우에), NX를 증가시킴으로써 더 큰 알파벳을 취급할 수 있다.
인코더 내부에서의 재정규화 단계에 있어서의 자리올림 제어 문제는 원래 "비트 스터핑(bit stuffing)"으로 불리는 기술에 의해 해결되었었다[Lang81]. 이와 같은 기술은, 일련의 1 비트가 나타나는 경우에 코딩된 스트림 내부에 0 스터프 비트를 삽입하여 자리올림을 "포착한다". 이러한 기술의 단점은, 여분의 스터프 비트로 인해 압축 효율이 저하하고, 디코더 내부에서 특수한 신호처리가 필요하다는 것이다.
압축 성능에 영향을 미치지 않으면서 자리올림을 방지하는 방법이 [Witt97] 에 기재되어 있다. 이 방법은 디코더의 복잡성이 다소 증가한다는 단점을 갖는다. 이와 같은 [Witt97]의 착상은, 디코더의 복잡성을 증가시키지 않으면서 사용될 수 있도록 [Cham90]에서 변형되었다.
본 발명에서는, 마찬가지로 디코더의 복잡성을 증가시키지 않는 이와 다른 해결책이 제시된다. 본 발명에 따른 인코더의 재정규화 과정의 흐름도를 도 6에 나타내었다. 주요한 개량사항은 C<0.10…?를 갖는 블록이다. 이와 같은 동일한 블록에 대해, 종래기술은 C+A<=1.0…?을 사용하므로, 본 발명의 제안에 비해 여분의 추가 가산 연산을 필요로 한다.
인코더에 대한 설명을 완결짓기 위해, 초기화 및 종결 블록을 도 7 및 도 8에 각각 도시하였다. 이때, 카운터 변수는, 도 6에 도시된 인코더의 재정규화 블록에서 사용된 것과 동일하다. C의 크기가 (인코더 내부에서) (NA+1) 비트이기 때문에, 이것은 도 8에 도시된 것과 같이, 종결시에 출력되는 NA 소수부 비트(소수점 다음의 비트)를 갖는다.
디코더의 초기화를 도 9에 나타내었다. 스트림으로부터 (NA+1)개의 비트를 판독함으로써 C 레지스터가 채워진다. 판독된 첫 번째 비트는 항상 "0" 비트이기 때문에, "더미"에 해당한다. 디코더 내부에 있는 C 레지스터의 크기는 단지 NA 비트이며, 따라서 인코더 내부에서보다 1 비트가 작다. 디코더 내부에는 특수한 종결이 존재하지 않는다(도 4에 도시된 "종결" 블록은 비어져 있다). 디코더에 있어서의 재정규화(도 4에 도시된 "...재정규화한다" 블록)를 도 10에 나타내었다.
도 11은 본 발명에 따른 인코더 장치의 일 실시예를 나타낸 것이다. 이 장치 는, 정보신호와 확률 신호를 각각 수신하기 위한 입력 단자 100 및 102를 구비한다. 정보신호는 복수의 n-비트 심볼로 이루어진 직렬 시퀀스를 포함하며, 이때 n은 n≥1을 만족하는 정수이다. 입력 단자 102에 인가된 확률 신호는 정보신호에 있는 각각의 심볼에 대한 1개 또는 그 이상의 확률값을 포함한다. 이진수 심볼에 대해서, 상기한 확률 신호는 각각의 심볼에 대해 한 개의 확률값을 포함한다. 또한, A 파라미터 및 C 파라미터를 기억하는 유한 크기의 제 1 및 제 2 레지스터 104 및 106이 존재한다.
정보신호에 대해 연산 코딩을 수행하기 위한 신호처리부(108)가 존재한다. 이때, 상기한 신호처리부(108)에 대해 상세히 설명을 하지 않아도, 이 신호처리부는 제 1 및 제 2 레지스터로부터 A 및 C 파라미터에 대한 값을 각각 검색하는 회로 뿐만 아니라, 심볼을 인코딩한 후, A 및 C에 대한 갱신되고 재정규화된 값을 각각 제 1 및 제 2 레지스터 104 및 106에 기억하는 회로를 구비한다는 것은 자명하다. 더구나, 상기한 신호처리부(108)는, 제 1 레지스터(104)로부터 검색된 값에 해당하는 수치 구간을 입력 단자 102에 인가된 상기한 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하는 회로와, 입력 단자 100에 인가된 상기한 심볼에 응답하여 복수의 서브구간 중에서 한 개의 서브구간을 선택하는 회로를 구비한다.
A 및 C 파라미터를 갱신하기 위한 회로 또한 존재하는데, 이때 이 회로는 A 값을 선택된 서부구간의 크기와 일치시키고, C 값을 상기한 서브구간의 경계와 일치시키기 위해 필요하다.
또한, 인코딩된 복수의 심볼에 응답하여 인코딩된 복수의 비트를 출력하는 출력 단자(110)가 존재한다.
그것의 대응하는 레지스터로부터 A 및 C 파라미터를 검색하는 검색수단은, 연산 A·p를 수행하기 전에, A 파라미터의 값을 절단하는 수단을 더 구비한다. 특히, 이와 같은 절단과정은 다음과 같다: A에 대한 값이 0.b0b1…bi-1bi …로 표시된다고 가정한다. 이 값은 비트 bi-1로 절단되고, bi가 '1'인 경우에는, 비트 bi-1 의 위치에 A의 절단된 값에 '1'이 가산된다.
또 다른 실시예에 있어서, A 파라미터의 값이 비트 bi-1로 절단되고, bi-1='0'이고 bi='1'인 경우에, 비트 bi-1을 '1'로 증가시킨다. 또 다른 실시예에 있어서는, A 파라미터가 비트 bi-1로 절단되고, 비트 bi-1이 '1'로 설정된다.
상기한 신호처리부(108)는 도 1, 도 2, 도 3, 도 6, 도 7 및 도 8에 개시된 것과 같은 방법을 수행할 수 있다는 것은 자명하다.
바람직하게는, 상기한 인코더 장치는, 인코딩된 정보신호를 채널 인코딩된 정보신호로 채널 인코딩하는 (그리고 필요한 경우에는, 오류정정 인코딩하는) 공지된 채널 인코딩부(112)와, 채널 인코딩된 신호를 자기 기록매체(116) 또는 광 기록매체(118)와 같은 기록매체 상에 기록하는 기록부(104)를 더 구비한다.
도 12는 본 발명에 따른 디코더 장치의 일 실시예를 나타낸 것이다. 이 디코더 장치는 인코딩된 정보신호를 수신하는 입력 단자(120)를 구비한다. 또한, A 파라미터 및 C 파라미터를 기억하는 유한 크기의 제 1 및 제 2 레지스터 122 및 124 가 존재한다.
또한, 입력 134를 통해 신호처리부(126)에 주어진 확률 신호에 응답하여 그것의 입력(120)을 통해 수신된 인코딩된 정보신호에 대해 연산 디코딩을 수행하는 신호처리부(126)가 존재한다. 이때, 확률 신호는 공지된 방법으로 얻어질 수 있다. 1-비트 오디오 신호에 대한 확률값을 유도하는 예는 [Bruek97]에 기재되어 있다. 본 실시예에 있어서, 확률값은, 출력(128)으로 출력된 디코딩된 출력신호로부터, 즉 예측 필터(136)에서 디코딩된 출력신호에 대해 예측 필터링을 수행하고, 확률 결정부(138)에서 예측 필터(136)의 출력 신호에 응답하여 확률 신호를 발생함으로써 도출된다. 이때, 신호처리부(126)에 대해 상세히 설명하지 않고도, 이 신호처리부는, 제 1 및 제 2 레지스터로부터 A 및 C 파라미터에 대한 값을 검색하는 회로 뿐만 아니라, 심볼을 디코딩한 후에, A 및 C에 대한 갱신되고 재정규화된 값을 제 1 및 제 2 레지스터 122 및 124에 각각 기억하는 회로를 구비한다는 것은 자명하다. 더구나, 이 신호처리부(126)는, 도 4, 도 5, 도 9 및 도 10에 도시된 단계를 수행하는 회로를 구비한다.
레지스터 122로부터 A 파라미터의 값을 검색하는 회로는, 연산 A·p를 수행하기 전에 A 파라미터의 값을 절단하는 수단을 더 구비한다. 이와 같은 절단과정은 인코더에 대해 전술한 것과 동일하므로, 더 이상의 설명은 생략한다.
바람직하게는, 상기한 디코더 장치는, 채널 인코딩된 정보신호를 연산 디코더(126)에 대한 연산적으로 인코딩된 정보신호로 채널 디코딩하는 (그리고, 필요한 경우에는 오류정정하는) 공지된 채널 디코딩부(132)와, 자기 기록매체(116) 또는 광 기록매체(118)와 같은 기록매체로부터 채널 인코딩된 신호를 판독하는 판독부(130)를 더 구비한다.
연산 코딩은 비디오 및 오디오에 대한 대부분의 최근의 무손실 및 손실 코딩 구성에 적용된다. 또한, 이것은 (예를 들면 텍스트 파일과 같은) 컴퓨터 데이터의 압축에서 적용할 수 있다. 본 발명에서의 응용분야는 1-비트 오디오 신호의 무손실 코딩이다. 이에 대해서는, EP 특허출원 제 97201680.2호의 대응출원인 US ser. no 08/966,375(PHN16405)와, 국제특허출원 제 IB 97/01156호의 대응출원인 US ser. no 08/937,435(PHN16452)를 참조하기 바란다.
비록, 본 발명을 그것의 바람직한 실시예를 참조하여 설명하였지만, 본 발명이 이들 실시예에 의해 제한되지 않는다는 것은 자명하다. 따라서, 청구범위에 기재된 것과 같은 본 발명의 범주를 벗어나지 않으면서, 본 발명이 속한 기술분야의 당업자에게 있어서 다양한 변형이 이루어질 수 있다.
더구나, 본 발명은 이러한 모든 특징부 및 이들 특징부의 조합을 포괄한다.
참고문헌
[Lang81] G.G.Langdon et al, "Compression of black-white images with arithmetic coding", IEEE Trans. on Com., Vol. COM-29, pp. 858-67, June 1981.
[Witt87] I.H.Witten et al, "Arithmetic coding for data compression", Communications ACM, Vol. 30, pp. 520-540, June 1987.
[Lang84] G.G.Langdon, "An introduction to arithmetic coding", IBM J. Res. Develop., Vol. 28, pp. 135-149, March 1984.
[Penn88] W.B.Pennebaker et al, "An overview of the basic principles of the Q-coder adaptive binary arithmetic coder", IBM J. Res. Develop., Vol. 32, pp. 717-26, Nov. 1988.
[Riss89] J. Rissanen et al, "A multiplication-free multialphabet arithmetic code", IEEE Trans on Com, Vol. 37, pp. 93-8. Febr. 1989.
[Cham90] USP 4,973,961
[Chev91a] D. Chevion et al, "High efficiency, multiplication free approximation of arithmetic coding" in Data Compression Conference(DCC '91), pp. 43-52, 1991 [Chev91b] USP 4,989,000.
[Feyg93] G. Feygin et al, "Minimizing error and VLSI complexity in the multiplication free approximation of arithmetic coding" in Data Compression Conference(DCC '93), pp. 118-127, Mar. 30-Apr. 1, 1993.
[Howard94] P.G.Howard et al, "Arithmetic coding for data compression", Proc. IEEE, Vol. 82., no. 6, pp. 857-65, June 1994.
[Moff95] A.Moffat et al, "Arithmetic coding revisited", in Data Compression Conference(DCC '95), pp. 202-11, 1995.
[Bruek97] F. Bruekers et al, "Improved lossless coding of 1-bit audio signals", presented at 103rd Convention of the AES, Sept., 26-29, 1997, preprint 4563(I-6).

Claims (27)

  1. n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, A 파라미터 및 C 파라미터를 각각 기억하는 유한 크기의 제 1 및 제 2 레지스터를 사용하여 연산적으로 인코딩하는 방법으로서, 상기 C 파라미터는 수치 구간의 경계와 관계를 갖고, 상기 A 파라미터는 상기 구간의 크기와 관계를 가지며, 상기 방법이,
    (a) 인코딩하기 위해 정보신호의 심볼과 관련된 심볼의 적어도 한 개의 대응하는 확률값을 입력하는 단계와,
    (b) 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 단계와,
    (c) 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 단계와,
    (d) 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 단계와,
    (e) A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 단계와,
    (f) 다음 심볼을 인코딩하기 위해 단계 (a)에서 상기 과정을 계속 수행하는 단계를 포함하는 인코딩 방법에 있어서,
    상기 단계 (b)는, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, bi가 '1'인 경우에, 비트 bi-1의 위치에 A의 절단된 값에 '1'을 가산하는 부속 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  2. n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, A 파라미터 및 C 파라미터를 각각 기억하는 유한 크기의 제 1 및 제 2 레지스터를 사용하여 연산적으로 인코딩하는 방법으로서, 상기 C 파라미터는 수치 구간의 경계와 관계를 갖고, 상기 A 파라미터는 상기 구간의 크기와 관계를 가지며, 상기 방법이,
    (a) 인코딩하기 위해 정보신호의 심볼과 관련된 심볼의 적어도 한 개의 대응하는 확률값을 입력하는 단계와,
    (b) 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 단계와,
    (c) 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 단계와,
    (d) 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 단계와,
    (e) A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 단계와,
    (f) 다음 심볼을 인코딩하기 위해 단계 (a)에서 상기 과정을 계속 수행하는 단계를 포함하는 인코딩 방법에 있어서,
    상기 단계 (b)는, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, bi-1='0'이고 bi='1'인 경우, bi-1을 '1'로 증가시키는 부속 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  3. n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, A 파라미터 및 C 파라미터를 각각 기억하기 위한 유한 크기의 제 1 및 제 2 레지스터를 사용하여 연산적으로 인코딩하는 방법으로서, 상기 C 파라미터는 수치 구간의 경계와 관계를 갖고, A 파라미터는 상기 구간의 크기와 관계를 가지며, 상기 방법이,
    (a) 인코딩하기 위해 정보신호의 심볼과 관련된 심볼의 적어도 한 개의 대응하는 확률값을 입력하는 단계와,
    (b) 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 단계와,
    (c) 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 단계와,
    (d) 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 단계와,
    (e) A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 단계와,
    (f) 다음 심볼을 인코딩하기 위해 단계 (a)에서 상기 과정을 계속 수행하는 단계를 포함하는 인코딩 방법에 있어서,
    상기 단계 (b)는, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, 비트 bi-1을 '1'과 동일하게 만드는 부속 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  4. 제 1항, 제 2항 또는 제 3항 중 어느 한 항에 있어서,
    상기 갱신단계는, 정보신호에 있는 다음 심볼을 인코딩하기 위한 새로운 C 파라미터를 얻기 위해, C 파라미터의 값이 선택된 서브 구간의 경계와 대응하는 관계를 갖도록 C 값을 갱신하는 과정을 포함하고,
    상기 기억단계는 C 파라미터의 갱신된 값을 제 2 레지스터에 기억하는 과정을 더 포함하는 것을 특징으로 하는 인코딩 방법.
  5. 제 1항, 제 2항 또는 제 3항 중 어느 한 항에 있어서,
    상기 갱신단계는, A 및 C 파라미터에 대한 재정규화된 값을 제 1 및 제 2 레지스터에 각각 기억하기 전에, A 및 C 파라미터에 대한 값을 재정규화하는 부속 단계를 더 포함하고,
    상기 재정규화 부속 단계는,
    (g1) A에 대한 값을 제 1 이진값과 비교하여, A에 대한 값이 상기 제 1 이진값보다 작지 않으면, 재정규화 단계를 벗어나고, A에 대한 값이 상기 제 1 이진값보다 작으면, 다음 과정을 수행하는 과정과,
    (g2) A에 대한 값을 제 1 정수값과 곱하는 과정과,
    (g3) (g1)으로 복귀하는 과정을 포함하는 것을 특징으로 하는 인코딩 방법.
  6. 제 5항에 있어서,
    (g1)에서 A가 상기 제 1 이진값보다 작은 경우에,
    (g4) C에 대한 값과, 제 3 이진값보다 큰 값을 갖는 제 2 이진값 및 제 3 이진값을 비교하여, C에 대한 값이 상기 제 2 이진값보다 작고 상기 제 3 이진값보다 크거나 동일하면, 다음 과정을 수행하고,
    (g5) C에 대한 값으로부터 제 4 이진값을 감산하여 C에 대한 중간값을 얻으며,
    (g6) C에 대한 중간값을 제 2 정수값과 곱하는 것을 특징으로 하는 인코딩 방법.
  7. 제 5항에 있어서,
    상기 제 1 이진값은 0.100…0인 것을 특징으로 하는 인코딩 방법.
  8. 제 5항에 있어서,
    상기 제 2 이진값은 1.000…0인 것을 특징으로 하는 인코딩 방법.
  9. 제 5항에 있어서,
    상기 제 1 정수값은 2인 것을 특징으로 하는 인코딩 방법.
  10. 제 6항에 있어서,
    상기 제 3 이진값은 0.100…0인 것을 특징으로 하는 인코딩 방법.
  11. 제 6항에 있어서,
    상기 제 4 이진값은 0.1000…0인 것을 특징으로 하는 인코딩 방법.
  12. 제 6항에 있어서,
    상기 제 2 정수값은 2인 것을 특징으로 하는 인코딩 방법.
  13. 제 1항, 제 2항 또는 제 3항 중 어느 한 항에 있어서,
    인코딩된 정보신호를 채널 인코딩된 신호로 채널 인코딩하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  14. 제 13항에 있어서,
    기록매체 상에 채널 신호를 기록하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  15. 청구항 1에 기재된 방법을 수행하는 인코딩 장치.
  16. n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, 청구항 1에 기재된 방법으로 연산적으로 인코딩하는 장치로서, 상기 장치가, - A 파라미터 및 C 파라미터를 각각 기억하되, C 파라미터는 수치 구간의 경계와 관계를 갖고, A 파라미터는 상기 구간의 크기와 관계를 갖는 유한 크기의 제 1 및 제 2 레지스터와,
    - 인코딩하기 위해 정보신호의 심볼과 관련된 심볼에 대한 적어도 한 개의 대응하는 확률값을 수신하는 입력수단과,
    - 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 검색수단과,
    - 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 수단과,
    - 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 수단과,
    - A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 수단을 구비한 인코딩 장치에 있어서,
    상기 검색수단은, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, bi가 '1'인 경우에, 비트 bi-1의 위치에 A의 절단된 값에 '1'을 가산하는 수단을 더 구비한 것을 특징으로 하는 인코딩 장치.
  17. n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, 청구항 2에 기재된 방법으로 연산적으로 인코딩하는 장치로서, 상기 장치가, - A 파라미터 및 C 파라미터를 각각 기억하되, C 파라미터는 수치 구간의 경계와 관계를 갖고, A 파라미터는 상기 구간의 크기와 관계를 갖는 유한 크기의 제 1 및 제 2 레지스터와,
    - 인코딩하기 위해 정보신호의 심볼과 관련된 심볼에 대한 적어도 한 개의 대응하는 확률값을 수신하는 입력수단과,
    - 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 검색수단과,
    - 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 수단과,
    - 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 수단과,
    - A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 수단을 구비한 인코딩 장치에 있어서,
    상기 검색수단은, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, bi-1='0'이고 bi='1'인 경우, bi-1을 '1'로 증가시키는 수단을 더 구비한 것을 특징으로 하는 인코딩 장치.
  18. n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 디지탈 정보신호를, 청구항 3에 기재된 방법으로 연산적으로 인코딩하는 장치로서, 상기 장치가, - A 파라미터 및 C 파라미터를 각각 기억하되, C 파라미터는 수치 구간의 경계와 관계를 갖고, A 파라미터는 상기 구간의 크기와 관계를 갖는 유한 크기의 제 1 및 제 2 레지스터와,
    - 인코딩하기 위해 정보신호의 심볼과 관련된 심볼에 대한 적어도 한 개의 대응하는 확률값을 수신하는 입력수단과,
    - 제 1 및 제 2 레지스터로부터 각각 A 및 C 파라미터에 대한 값을 검색하는 검색수단과,
    - 제 1 레지스터로부터 검색된 값에 해당하는 수치 구간을 상기 적어도 한 개의 확률값에 해당하는 복수의 서브구간으로 분할하고, 상기 심볼에 응답하여 상기 복수의 서브구간 중 한 개의 서브구간을 선택하는 수단과,
    - 정보신호에 있는 다음 심볼을 인코딩하기 위한 구간의 새로운 크기를 얻기 위해, A 파라미터의 값이 선택된 서브구간의 크기와 일치하도록 적어도 A 파라미터를 갱신하는 수단과,
    - A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 수단을 구비한 인코딩 장치에 있어서,
    상기 검색수단은, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, 비트 bi-1을 '1'과 동일하게 만드는 수단을 더 구비한 것을 특징으로 하는 인코딩 장치.
  19. 제 16항, 제 17항 또는 제 18항 중 어느 한 항에 있어서,
    A 및 C 파라미터에 대한 재정규화된 값을 제 1 및 제 2 레지스터에 각각 기억하기 전에, A 및 C 파라미터에 대한 값을 재정규화하는 수단을 더 구비하고,
    상기 재정규화 수단은,
    (g1) A에 대한 값을 제 1 이진값과 비교하여, A에 대한 값이 상기 제 1 이진값보다 작지 않으면, 재정규화 단계를 벗어나고, A에 대한 값이 상기 제 1 이진값보다 작으면,
    (g2) A에 대한 값을 제 1 정수값과 곱하는 수단을 구비한 것을 특징으로 하는 인코딩 장치.
  20. 제 19항에 있어서,
    상기 재정규화 수단은,
    (g4) C에 대한 값과, 제 3 이진값보다 큰 값을 갖는 제 2 이진값 및 제 3 이진값을 비교하고,
    (g5) C에 대한 값으로부터 제 4 이진값을 감산하여 C에 대한 중간값을 얻으며,
    (g6) C에 대한 중간값을 제 2 정수값과 곱하는 수단을 구비한 것을 특징으로 하는 인코딩 장치.
  21. 제 16항, 제 17항 또는 제 18항 중 어느 한 항에 있어서,
    인코딩된 정보신호를 채널 인코딩된 신호로 채널 인코딩하는 수단을 더 구비한 것을 특징으로 하는 인코딩 장치.
  22. 제 21항에 있어서,
    채널 신호를 기록매체 상에 기록하는 기록수단을 더 구비한 것을 특징으로 하는 인코딩 장치.
  23. 연산적으로 인코딩된 정보신호를, n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 정보신호로 연산적으로 디코딩하는 장치로서, 상기 장치가, - 연산적으로 인코딩된 정보신호를 수신하는 입력수단과,
    - 제 1 레지스터는 A 파라미터를 기억하기 위한 것이고, 이 A 파라미터는 수치 구간의 크기와 관계를 가지며, 제 2 레지스터는 C 파라미터를 기억하기 위한 것이고, 디코딩 단계 이전에 제 2 레지스터의 내용은, 연산적으로 인코딩된 정보신호의 m 비트를 제 2 레지스터 내부로 시프트함으로써 이전의 디코딩 단계에서 얻어진 제 2 레지스터의 내용으로부터 얻어지고, 이때 m은 m≥0을 만족하는 변수 정수인, 유한 크기를 갖는 제 1 및 제 2 레지스터와,
    - 디코딩하려는 관련된 심볼에 대한 적어도 한 개의 확률값을 발생하는 발생수단과,
    - 제 1 및 제 2 레지스터로부터 A 및 C 파라미터에 대한 값을 각각 검색하는 검색수단과,
    - 상기 적어도 한 개의 확률값과, A에 대한 값 및 C에 대한 값에 응답하여 심볼을 도출하는 도출수단과,
    - 정보신호의 다음 심볼을 디코딩하기 위한 구간의 새로운 크기를 얻기 위해 적어도 A 파라미터를 갱신하는 수단과,
    - 도출된 심볼을 출력하는 수단과,
    - A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 수단을 구비한 디코딩 장치에 있어서,
    상기 검색수단은, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, bi가 '1'인 경우에, 비트 bi-1의 위치에 A의 절단된 값에 '1'을 가산하는 수단을 더 구비한 것을 특징으로 하는 디코딩 장치.
  24. 연산적으로 인코딩된 정보신호를, n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 정보신호로 연산적으로 디코딩하는 디코딩 장치로서, 상기 장치가, - 연산적으로 인코딩된 정보신호를 수신하는 입력수단과,
    - 제 1 레지스터는 A 파라미터를 기억하기 위한 것이고, 이 A 파라미터는 수치 구간의 크기와 관계를 가지며, 제 2 레지스터는 C 파라미터를 기억하기 위한 것이고, 디코딩 단계 이전에 제 2 레지스터의 내용은, 연산적으로 인코딩된 정보신호의 m 비트를 제 2 레지스터 내부로 시프트함으로써 이전의 디코딩 단계에서 얻어진 제 2 레지스터의 내용으로부터 얻어지고, 이때 m은 m≥0을 만족하는 변수 정수인, 유한 크기를 갖는 제 1 및 제 2 레지스터와,
    - 디코딩하려는 관련된 심볼에 대한 적어도 한 개의 확률값을 발생하는 발생수단과,
    - 제 1 및 제 2 레지스터로부터 A 및 C 파라미터에 대한 값을 각각 검색하는 검색수단과,
    - 상기 적어도 한 개의 확률값과, A에 대한 값 및 C에 대한 값에 응답하여 심볼을 도출하는 도출수단과,
    - 정보신호의 다음 심볼을 디코딩하기 위한 구간의 새로운 크기를 얻기 위해 적어도 A 파라미터를 갱신하는 수단과,
    - 도출된 심볼을 출력하는 수단과,
    - A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 수단을 구비한 디코딩 장치에 있어서,
    상기 검색수단은, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, bi-1='0'이고 bi='1'인 경우, bi-1을 '1'로 증가시키는 수단을 더 구비한 것을 특징으로 하는 디코딩 장치.
  25. 연산적으로 인코딩된 정보신호를, n이 n≥1을 만족하는 정수인 n-비트 심볼의 직렬 시퀀스를 포함하는 정보신호로 연산적으로 디코딩하는 디코딩 장치로서, 상기 장치가, - 연산적으로 인코딩된 정보신호를 수신하는 입력수단과,
    - 제 1 레지스터는 A 파라미터를 기억하기 위한 것이고, 이 A 파라미터는 수치 구간의 크기와 관계를 가지며, 제 2 레지스터는 C 파라미터를 기억하기 위한 것이고, 디코딩 단계 이전에 제 2 레지스터의 내용은, 연산적으로 인코딩된 정보신호의 m 비트를 제 2 레지스터 내부로 시프트함으로써 이전의 디코딩 단계에서 얻어진 제 2 레지스터의 내용으로부터 얻어지고, 이때 m은 m≥0을 만족하는 변수 정수인, 유한 크기를 갖는 제 1 및 제 2 레지스터와,
    - 디코딩하려는 관련된 심볼에 대한 적어도 한 개의 확률값을 발생하는 발생수단과,
    - 제 1 및 제 2 레지스터로부터 A 및 C 파라미터에 대한 값을 각각 검색하는 검색수단과,
    - 상기 적어도 한 개의 확률값과, A에 대한 값 및 C에 대한 값에 응답하여 심볼을 도출하는 도출수단과,
    - 정보신호의 다음 심볼을 디코딩하기 위한 구간의 새로운 크기를 얻기 위해 적어도 A 파라미터를 갱신하는 수단과,
    - 도출된 심볼을 출력하는 수단과,
    - A 파라미터에 대한 갱신된 값을 제 1 레지스터에 기억하는 수단을 구비한 디코딩 장치에 있어서,
    상기 검색수단은, A 파라미터의 값 0.b0b1…bi-1bi…를 비트 bi-1로 절단하고, 비트 bi-1을 '1'과 동일하게 만드는 수단을 더 구비한 것을 특징으로 하는 디코딩 장치.
  26. 제 23항, 제 24항 또는 제 25항 중 어느 한 항에 있어서,
    연산 디코딩을 수행하기 전에, 연산적으로 인코딩된 정보신호를 채널 디코딩하는 채널 디코딩 수단을 더 구비한 것을 특징으로 하는 디코딩 장치.
  27. 제 26항에 있어서,
    기록매체로부터 채널 인코딩되고 연산적으로 인코딩된 정보신호를 판독하는 판독수단을 더 구비한 것을 특징으로 하는 디코딩 장치.
KR1019997010797A 1998-03-23 1999-02-22 정보신호의 연산 인코딩 및 디코딩 KR100604364B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP98200914 1998-03-23
EP98200914.4 1998-03-23
PCT/IB1999/000310 WO1999049579A2 (en) 1998-03-23 1999-02-22 Arithmetic encoding and decoding of an information signal

Publications (2)

Publication Number Publication Date
KR20010012832A KR20010012832A (ko) 2001-02-26
KR100604364B1 true KR100604364B1 (ko) 2006-07-25

Family

ID=8233501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997010797A KR100604364B1 (ko) 1998-03-23 1999-02-22 정보신호의 연산 인코딩 및 디코딩

Country Status (18)

Country Link
US (1) US6144320A (ko)
EP (1) EP0983635B1 (ko)
JP (1) JP4179640B2 (ko)
KR (1) KR100604364B1 (ko)
CN (1) CN1134896C (ko)
AR (1) AR014729A1 (ko)
AT (1) ATE445935T1 (ko)
AU (1) AU757911B2 (ko)
BR (1) BR9904879B1 (ko)
DE (1) DE69941528D1 (ko)
EG (1) EG22052A (ko)
ES (1) ES2333492T3 (ko)
ID (1) ID24587A (ko)
IL (1) IL133046A (ko)
MY (1) MY129270A (ko)
PT (1) PT983635E (ko)
TR (1) TR199902831T1 (ko)
WO (1) WO1999049579A2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0895361A3 (en) * 1997-07-31 2000-03-15 AT&T Corp. Z-coder: A fast adaptive binary arithmetic coder
JP4160689B2 (ja) * 1998-11-10 2008-10-01 株式会社リコー 算術符号化装置および算術復号装置
JP4731016B2 (ja) * 1998-12-22 2011-07-20 ジェネンテック, インコーポレイテッド 血管内皮細胞増殖因子アンタゴニストとその用途
IL138230A (en) * 1999-01-07 2005-06-19 Koninkl Philips Electronics Nv Efficient coding of side information in a lossless encoder
FR2792150B1 (fr) * 1999-04-08 2003-02-28 Canon Kk Procedes et dispositis de codage et de decodage de signaux numeriques, et systemes les mettant en oeuvre
KR100316785B1 (ko) * 1999-11-04 2001-12-13 윤종용 비트 오류에 견실한 산술 부호화/복호화 장치 및 그 방법
KR20020020886A (ko) 2000-03-07 2002-03-16 요트.게.아. 롤페즈 산술적으로 인코딩된 정보신호의 산술 디코딩
CN1364341A (zh) 2000-03-07 2002-08-14 皇家菲利浦电子有限公司 算术编码信息信号的算术译码
US7844579B2 (en) 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
JP3620506B2 (ja) * 2002-02-28 2005-02-16 ソニー株式会社 Mq−coder方式の算術符号化/復号装置及び再正規化方法
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
US6825782B2 (en) * 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
CN1860787A (zh) * 2003-09-29 2006-11-08 手持娱乐公司 用于编码信息的方法和装置
CN101742283B (zh) * 2008-11-26 2011-11-23 财团法人工业技术研究院 解码方法及装置
US8207875B2 (en) * 2009-10-28 2012-06-26 Motorola Mobility, Inc. Encoder that optimizes bit allocation for information sub-parts

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286256A (en) * 1979-11-28 1981-08-25 International Business Machines Corporation Method and means for arithmetic coding utilizing a reduced number of operations
US4891643A (en) * 1986-09-15 1990-01-02 International Business Machines Corporation Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders
US5418532A (en) * 1993-05-13 1995-05-23 Bell Communications Research, Inc. Method and system for efficient, multiplication-free arithmetic coding

Also Published As

Publication number Publication date
PT983635E (pt) 2009-12-16
IL133046A (en) 2004-06-01
JP2002500849A (ja) 2002-01-08
EP0983635A2 (en) 2000-03-08
AR014729A1 (es) 2001-03-28
WO1999049579A3 (en) 1999-11-11
ATE445935T1 (de) 2009-10-15
CN1134896C (zh) 2004-01-14
BR9904879B1 (pt) 2011-11-16
ES2333492T3 (es) 2010-02-22
BR9904879A (pt) 2000-09-19
EP0983635B1 (en) 2009-10-14
WO1999049579A2 (en) 1999-09-30
IL133046A0 (en) 2001-03-19
MY129270A (en) 2007-03-30
ID24587A (id) 2000-07-27
US6144320A (en) 2000-11-07
AU2295399A (en) 1999-10-18
DE69941528D1 (de) 2009-11-26
TR199902831T1 (xx) 2000-07-21
JP4179640B2 (ja) 2008-11-12
KR20010012832A (ko) 2001-02-26
AU757911B2 (en) 2003-03-13
EG22052A (en) 2002-06-30
CN1262816A (zh) 2000-08-09

Similar Documents

Publication Publication Date Title
KR100604364B1 (ko) 정보신호의 연산 인코딩 및 디코딩
US6967601B2 (en) Method and apparatus for arithmetic coding, including probability estimation state table creation
US7183951B2 (en) Method and apparatus for arithmetic coding and termination
RU2125765C1 (ru) Способ и устройство сжатия символов, стохастический кодер (варианты)
US5818877A (en) Method for reducing storage requirements for grouped data values
KR101136212B1 (ko) 최적화된 cabac 디코더
US5045852A (en) Dynamic model selection during data compression
US8711019B1 (en) Context-based adaptive binary arithmetic coding engine
US6677869B2 (en) Arithmetic coding apparatus and image processing apparatus
EP3079261B1 (en) Method and apparatus for arithmetic decoding
US6850175B1 (en) Method and apparatus for arithmetic coding
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
MXPA99010754A (en) Arithmetic encoding and decoding of an information signal
Sun et al. Lossless Coders
TW202218431A (zh) 對一序列資訊值進行算術編碼之算術編碼器與進行算數解碼之算數解碼器及用以算術編碼與解碼一序列資訊值之方法及實行該等方法之電腦程式
KR20020020886A (ko) 산술적으로 인코딩된 정보신호의 산술 디코딩
Teague Adaptive lossless data compression using a finite context model
Taubman et al. Entropy and Coding Techniques
Liang ENSC 861–Source Coding in Digital Communications Arithmetic Coding 2

Legal Events

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

Payment date: 20130711

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140715

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150714

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160707

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170711

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180705

Year of fee payment: 13

EXPY Expiration of term