KR20040104611A - 이진상태들의 산술적 인코딩 및 디코딩 방법 및 장치, 및이에 해당하는 컴퓨터 프로그램 및 컴퓨터 판독가능저장매체 - Google Patents

이진상태들의 산술적 인코딩 및 디코딩 방법 및 장치, 및이에 해당하는 컴퓨터 프로그램 및 컴퓨터 판독가능저장매체 Download PDF

Info

Publication number
KR20040104611A
KR20040104611A KR10-2004-7017090A KR20047017090A KR20040104611A KR 20040104611 A KR20040104611 A KR 20040104611A KR 20047017090 A KR20047017090 A KR 20047017090A KR 20040104611 A KR20040104611 A KR 20040104611A
Authority
KR
South Korea
Prior art keywords
state
probability
representative
lps
interval
Prior art date
Application number
KR10-2004-7017090A
Other languages
English (en)
Other versions
KR100733795B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=29285283&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20040104611(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. filed Critical 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우.
Publication of KR20040104611A publication Critical patent/KR20040104611A/ko
Application granted granted Critical
Publication of KR100733795B1 publication Critical patent/KR100733795B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은, 특히 디지털 데이터 압축에 사용되는, 이진상태들의 산술적 인코딩 및 디코딩을 위한 방법 및 장치, 및 이에 해당하는 컴퓨터 판독가능 저장매체를 설명한다. 이를 위해, 예컨대 테이블을 사용한 이진 산술적 인코딩 및 디코딩을 2 개 또는 수개의 테이블을 사용하여 수행할 것이 제안된다.

Description

이진상태들의 산술적 인코딩 및 디코딩 방법 및 장치, 및 이에 해당하는 컴퓨터 프로그램 및 컴퓨터 판독가능 저장매체{METHOD AND ARRANGEMENT FOR ARITHMETICALLY ENCODING AND DECODING BINARY STATES, CORRESPONDING COMPUTER PROGRAM, AND CORRESPONDING COMPUTER-READABLE STORAGE MEDIUM}
본 발명은, 특히 디지털 데이터압축에 사용될 수 있는, 이진상태들의 산술적 인코딩 및 디코딩 방법 및 장치, 및 이에 해당하는 컴퓨터 프로그램 및 컴퓨터 판독가능 저장매체에 관한 것이다.
본 발명은 이진 산술적 인코딩(binary arithmetic coding)의 신규하고 효율적인 방법을 설명한다. 디지털 데이터압축의 가장 다른 적용분야들, 특히 디지털 압축이 관심의 대상이 되는 분야의 적용에 있어 이진 산술적 인코딩(binary arithmetic encoding)에 대한 요구가 있다. 예컨대, JPEG, JPEG-2000, JPEG-LS, 및 JPIG 등의 이미지 인코딩에 대한 수많은 표준에 있어서, 이진 산술적 인코딩 방법이 정의되었다. 더욱 새로운 표준화 활동으로 또한 이러한 인코딩 기술들이 향후 비디오 인코딩의 분야[H.264/AVC의 CABAC(참조문헌[1])]에서 사용될 것임은 명확하다.
이제까지 실제로 사용되던 허프만인코딩(참조문헌[2])와 비교하여, 산술적 인코딩(AC)의 장점은 기본적으로 3개의 양상으로 특징화될 수 있다.
1. 산술적 인코딩를 사용하여, 간단한 적응화 메커니즘에 의해 현재의 본 통계값(source statistic)에 대하여 동적 적응화가 달성될 수 있다[적응성(adaptivity)].
2. 산술적 인코딩은 정수가 아닌 심볼비트율(bits per symbol)을 할당하여 인코딩되기 때문에, 엔트로피 근사화를 이론적으로 주어진 하부경계로 나타내는 인코딩 결과를 달성하는데 적합하다(엔트로피 근사화)(참조문헌[3]).
3. 적합한 콘텍스트 모델을 사용하여 더욱 데이터를 축소시키기 위한 심볼간의 통계적 바인딩이 산술적 인코딩와 함께 사용될 수 있다 (심볼간 중복성(intersymbol redundancy))(참조문헌[4]).
산술적 인코딩 적용의 단점으로, 일반적으로 계산량이 허프만 인코딩에 비하여 증가되는 것으로 간주된다.
산술적 인코딩의 개념은 쉐넌(Shannon)에 의한 정보이론의 기초 논문으로 거슬러 올라간다(참고문헌[5]). 첫번째의 개념적인 구성방법은 먼저 엘리어스(Elias)에 의해 출간되었다(참조문헌[6]). 리쌔넌(Rissanen)에 의해 산술적 인코딩의 제 1 LIFO(last-in-first-out) 변수가 설계되었으며(참조문헌[7]), 후에 다른 저자들(참조문헌 [8], [9], [10])에 의해 FIFO(first-in-first-out) 구현으로 변경되었다.
그러한 논문 모두는 통상적으로 순환적으로(recursive) 부분구간을 분해하는 기본적인 이론을 갖는다. 이진부호의 두 개의 결과(0과 1)에 대하여 주어진 확률 P("0") 및 P("1")에 따라, 1차로 주어진 간격, 예컨대 간격[0, 1)이 개별 이벤트의발생에 의존하여 순환적으로 부분간격들로 분해된다. 여기서, 결과의 부분간격의 크기는, 발생 이벤트들의 개별 확률들의 곱으로서, 개별 이벤트들의 시퀀스 확률에 비례한다. 모든 이벤트(Si)들에서 확률 P(Si)에 의한 전체 비율에 이론적인 정보내용 H(Si)의 기여(H(Si)=-log(P(Si))를 더하기 때문에, 개별 이벤트의 시퀀스의 엔트로피와 부분간격을 나타내는 비트수(NBit)와의 관계는 이하의 수식의 우측에 주어진 결과를 가져온다:
그러나, 기본 이론은 먼저, (이론적으로) 결과의 부분간격의 표시에 있어서 무제한의 정확도를 요구하며, 이와는 별도로, 마지막 결과의 인코딩 후만이 결과의 부분간격의 표현을 나타낸 비트들이 출력되도록 할 수 있다는 단점을 갖는다. 따라서, 실제적인 적용을 위해서는, 소정의 확정된 정확도의 수와 함께 동시의 결과로 비트들의 증분 출력에 대한 메커니즘을 개발하는 것이 결정적이었다(참조문헌 [3], [7], [11]).
도 1은 이진 산술적 인코딩에 대한 기본적인 연산을 나타낸다. 도시된 구현에 있어서, 현재의 부분간격은 두 개의 값(L 및 R)으로 표현되며, 여기서 L은 오프셋 포인트를 나타내고, R은 부분간격의 크기(폭)을 나타내며, 두 값은 각각 b-비트 정수를 사용하여 나타내었다. 따라서, 비트∈{0, 1}의 인코딩는 기본적으로 5개의 하부단계에서 수행된다: 확률 추정값을 사용하는 제 1 단계에서는, 더 낮은 확률의심볼값이 결정된다. MPS(most probable symbol)과 비교하여, 또한 LPS(least probable symbol)로 참조되는 이러한 심볼에 대하여, 해당 부분간격의 폭(PLPS)을 계산하기 위해 제 2 단계에서 확률추정값(PLPS)이 사용된다. 인코딩될 비트의 값에 따라서, L 및 R이 제 3단계에서 업데이트된다. 제 4단계에서, 방금 인코딩된 비트의 값에 따라서 확률추정값이 업데이트되고, 최종적으로 마지막 단계에서, 인코딩간격(R)이 소위 재정규화(renormalization)되게 되는데, 즉, 예컨대 R이 R∈[2b-2, 2b-1]의 조건을 만족하도록 리스케일링(rescale)된다. 여기서, 각각의 스케일링 연산에 하나의 비트가 출력된다. 더욱 자세하게는 참조문헌 [10]을 참조하기 바란다.
전술한 바와 같이, 본 구현예에 있어서의 주요 단점은, 간격폭(RLPS)의 계산이 인코딩될 모든 심볼에 대한 곱셈연산을 필요로 한다는 사실에 있다. 일반적으로, 곱셈연산은 특히 하드웨어에서 구현될 때, 비용과 시간이 많이 소요된다. 몇몇 연구문서에서는, 이러한 곱셈연산을 적절한 근사화로 대체하려는 방법이 연구되었다(참조문헌[11], [12], [13], [14]). 여기서, 이러한 주제를 참조하여 출간된 방법들은 일반적으로 세가지 카테고리로 분류될 수 있다.
곱셈이 없는 이진 산술적 인코딩에 대한 제안들의 첫번째 그룹은 도 1의 제 2 단계의 곱셈이 시프트 연산 1회 (또는 수회)와 덧셈 연산으로 교체될 수 있도록 확률추정치(RLPS)를 근사화하려는 접근법(참조문헌 [11], [14])에 기반한다. 이를위해 가장 간단한 경우로서, 확률(PLPS)이 정수(q>0)를 사용하여 2-q의 형태인 값으로 근사화된다.
근사화 방법의 두번째 그룹에서는, R의 범위값이 (1/2 - r)의 형태로 이산치로서 근사화될 것이 제안되며, 여기서, r ∈ {0} ∪{2-k|k > 0, k는 정수}가 선택된다(참조문헌 [15], [16]).
이러한 방법의 세번째 카테고리는 여기서 어떠한 산술연산들이라도 테이블 액세스(table accesses)로만 교환된다는 사실로부터 공지된 것이다. 이러한 방법 그룹으로, 한편으로는, QM- 및 MQ-인코더(참조문헌[12])와 같은 JPEG 표준에서 사용되는 Q-인코더 및 관련 방법들이 속하며, 다른 한편으로는, 쿼시(quasi)-산술적 인코더(참조문헌[13])가 속한다. 후자의 방법은 허용가능한 치수를 갖는 테이블을 구하기 위하여 R의 표현에 대하여 사용되는 비트수(b)를 엄격하게 제한하는 반면, Q-인코더에서는, R이 적어도 근사적으로 1로 근사화 되도록 R의 재정규화가 구현된다. 이러한 방법으로 RPLS를 결정하기 위한 곱셈이 방지된다. 또한, 유한상태머신(finite state machine)의 형태로 테이블을 사용한 확률추정이 연산된다. 보다 더 자세하게는, 참조문헌[12]를 참조하기 바란다.
본 발명의 목적은, 전술한 단점을을 일소하고, 특히, (a) 곱셈연산을 필요로하지 않고, (b) 계산량이 증가되지 않고 확률추정을 허용하며, (c) 동시에 일반적으로 발생하는 광범위한 심볼 확률에 대하여 최대 인코딩 효율을 보장하는, 이진상태를 산술적으로 인코딩 및 디코딩하는 방법 및 장치, 및 이에 해당하는 컴퓨터 프로그램 및 컴퓨터 판독가능 저장매체를 제공하는 것이다.
본 발명에 따르면, 본 목적은 청구항 제 1, 21, 22, 및 23 항의 전제부의 태양과 함께 특징부의 태양으로 달성된다. 본 발명의 간편한 구현형태는 종속항들에 포함된다.
이진상태의 산술적 인코딩 및 디코딩의 한가지 방법은, 바람직하게는, 제 1 단계에서, 간격폭(R)의 명세사항에 대한 소정의 값 범위가 K 개의 대표 간격폭{Q1, ..., QK}으로 분리되고, 확률들의 명세사항에 대한 소정의 값 범위가 N 개의 대표 확률상태{P1, ..., PN}로 분리되고, 각각의 간격폭(R)에 하나의 QK(1≤k≤K)를, 각각의 확률에 하나의 Pn(1≤n≤N)을 할당하는, 할당규정이 주어지며, 제 2 단계에서, 곱셈과 나눗셈을 제외한 산술연산에 의해 대표 간격폭(QK(1≤k≤K))과 대표 확률상태(Pn(1≤n≤N))를 각각 사용하여 인코딩 또는 디코딩 과정에서 유도될 새로운 간격폭의 계산을 수행함으로써 이진상태의 인코딩 또는 디코딩이 발생하며, 상기 대표 간격폭(QK)은 폭(R)의 기본 간격에 의해 결정되며, 상기 대표 확률상태(Pn)는 주어진 할당규정에 따라 인코딩 또는 디코딩 되어야할 심볼을 기초로 한 확률추정에 의해 결정되도록 수행된다.
본 발명의 또 다른 바람직한 실시예에 따르면, 폭(R)을 갖는 현재 산정되어야할 간격에 기초하여 관련 간격폭(QK)을 결정하기 위하여, 상기 R의 컴퓨터 내부/이진 표현에 적용되는 시프트 및 비트 마스크 연산에 의해 인덱스(q_index)가 결정되는 것을 특징으로 한다.
또한, 폭(R)을 갖는 현재 산정되어야할 간격에 기초하여 관련 간격폭(QK)을 결정하기 위하여, 상기 R의 컴퓨터 내부/이진 표현에 적용되는 시프트 연산 및 테이블(Qtab)로의 다운스트림 액세스(downstream access)에 의해 인덱스(q_index)가 결정되며, 상기 테이블(Qtab)은 시프트 연산에 의해 전양자화(pre-quantization)된 값에 해당하는 간격폭의 인덱스들을 포함하는 것이 바람직하다.
특히, 인코딩 또는 디코딩 되어야 할 상기 심볼을 기초로 한 확률추정은 인덱스(p_state)에 의해 확률상태(Pn)와 관계되는 것이 바람직하다.
또한, LPS에 해당하는 간격폭(RLPS)의 결정은 테이블(Rtab)로의 액세스에 의해 수행되고, 상기 테이블(Rtab)은 곱셈값(QK* Pn)으로서 상기 R의 K개의 양자화된 값들 모두 및 N개의 다른 확률상태들에 해당하는 간격폭(RLPS) 값들을 포함하는 것이 바람직하다. LPS에 해당하는 간격폭(RLPS)의 결정은 테이블(Rtab)로의 액세스에 의해 수행되고, 테이블의 산정을 위해서, 상기 양자화 인덱스(q_index) 및 상기 확률상태 인덱스(p_state)가 사용되는 경우, 계산량이 특히 감소된다.
또한, 본 발명의 방법은, 상기 N개의 다른 대표 확률상태에 대하여, 천이법칙이 미리 설정되며, 상기 천이법칙은 현재 인코딩 또는 디코딩되는 심볼에 기초하여 인코딩 또는 디코딩 될 차기 심볼에 대하여 새로운 상태 중 어느 것이 사용되는지를 나타내는 것을 특징으로 한다. 여기서, 가장 낮은 확률의 심볼(LPS)의 발생에서, 상기 현재 주어진 확률상태(Pn)의 인덱스(n)에 대한 새로운 확률상태(Pm)의 인덱스(m)을 포함하는 테이블(Next_State_LPS)이 생성되는 것, 및/또는 가장 높은 확률의 심볼(MPS)의 발생에서, 상기 현재 주어진 확률상태(Pn)의 인덱스(n)에 대한 새로운 확률상태(Pm)의 인덱스(m)을 포함하는 테이블(Next_State_MPS)이 생성되는 것이 바람직하다.
특히 본 발명의 테이블을 사용한 이진 산술적 인코딩 및 디코딩 방법의 최적화는, 모든 K개의 간격폭들 및 모든 N 개의 다른 확률상태들에 해당하는 간격폭(RLPS)의 값은 테이블(Rtab)에서 곱셈값(QK* Pn)으로 정리되므로서 달성된다.
또한, 최적화는, 소정의 코딩 정확도에 따라서 및/또는 활용가능한 저장공간에 따라서, 양자화 값들의 수(K) 및 대표 상태들의 수(N)가 선택됨으로써 달성된다.
본 발명의 방법에서 인코딩의 한 실시예는 특히 이하의 과정을 포함한다.
1. LPS의 결정
2. R의 양자화:
q_index = Qtab[R>>q]
3. RPLS및 R의 결정
RLPS= Rtab [q_index, p_state]
R = R - RLPS
4. 새로운 부분간격의 계산
if (bit : LPS) then
L ← L + R
R ← RLPS
p_state ←Next_State_LPS [p_state]
if (p_state = 0) then valMPS ←1 - valMPS
else
p_state ←Next_State_MPS [p_state}
5. L 및 R의 재정규화 및, 비트 쓰기
q_index 는 Qtab 로부터 독출된 양자화값의 인덱스,
p_state 는 현재상태,
RLPS는 LPS에 해당하는 간격폭, 및
valMPS는 MPS에 해당하는 비트를 나타냄.
본 발명의 실시예의 디코딩은 특히 이하의 과정을 포함한다.
1. LPS의 결정
2. R의 양자화
q_index = Qtab[R>>q]
3. RLPS및 R의 결정
RLPS= Rtab [q_index, p_state]
R = R - RLPS
4. 부분간격의 위치에 따른 비트의 결정:
if (V≥R) then
bit ← LPS
V ← V - R
R ← RLPS
if (p_state = 0) then valMPS ← 1 - valMPS
p_state ← Next_State_LPS [p_state]
else
bit ← MPS
p_state ← Next_State_MPS [p_state]
5. R의 재정규화, 한 비트를 독출하고, V를 업데이트,
q_index 는 Qtab 로부터 독출된 양자화값의 인덱스,
p_state 는 현재상태,
RLPS는 LPS에 해당하는 간격폭,
valMPS 는 MPS에 해당하는 비트, 및
V 는 현재 부분간격의 내부로부터의 값을 나타냄.
또 다른 본 발명의 방법의 실시예에서는, 상기 인코딩 및/또는 디코딩에서,양자화 인덱스(q_index)의 계산은 제 2 하부단계에서, q_index = (R>>q) & Qmask 의 계산규정 후에 수행되며, 상기 Qmask 는 상기 K에 따라 적절하게 선택되는 비트 마스크를 나타낸다.
본 발명에 따른 방법의 테이블을 사용한 이진 산술적 인코딩 및 디코딩의 최적화는, 또한, 균일한 확률분포가 존재하는 경우, 제 12항에 따른 인코딩에서, 상기 1 내지 4 하부단계들은 이하의 계산 규정에 따라 수행되며:
R ← R >> 1
if (bit = 1) then
L ← L + R
또는, 제 12항에 따른 인코딩에서, 상기 1 내지 4 하부단계들은 이하의 계산규정에 따라 수행되며:
L ← L << 1
if (bit = 1) then
L ← L + R
후자의 대안에 있어서, 상기 재정규화(제 12항에 따른 5 하부단계)는 두 배의 결정 문턱치 값으로 수행되며, 상기 L 및 R 은 두 배로 되지 않으며,
제 13항에 따른 디코딩에서, 상기 1 내지 4 하부단계들은 이하의 계산규정에 따라 수행되며:
R ←R >> 1
if (V≥R) then
bit ← 1
V ← V - R
else
bit ← 0,
또는, 제 13항에 따른 디코딩의 상기 1 내지 5 하부단계들은,
1. 한 비트를 독출하고, V를 업데이트함
2. 부분간격의 위치에 따라 비트를 결정
if (V≥R) then
bit ← 1
V ← V - R
else
bit ← 0
의 계산규정에 따라 수행됨으로써 달성된다.
또한, 양자화 파라미터(SliceQP) 및 미리 설정된 모델 파라미터(m 및 n)에 따라 확률모델의 초기화가 수행되는 것이 바람직한 것으로 판명되었으며, 상기 SliceQP는 슬라이스의 시작에 미리 설정된 양자화 파라미터를 나타내며, 상기 m 및 n은 모델 파라미터들을 나타낸다.
또한, 상기 확률모델의 초기화는 이하의 과정을 포함하는 것이 바람직하며:
1. preState = min(max(1, ((m * SliceQP) >> 4) + n), 2*N)
2. if (preState <= N) then
p_state = N + 1 - preState
valMPS = 0
else
p_state = preState - N
valMPS = 1,
상기 valMPS 는 MPS에 해당하는 비트를 나타내며, 상기 SliceQP는 슬라이스의 시작에 미리 설정된 양자화 파라미터를 나타내며, m 및 n은 모델 파라미터를 나타낸다.
이진상태들의 산술적 인코딩 및 디코딩 장치의 한 실시예는, 제 1 단계에서, 간격폭(R)의 명세사항에 대한 소정의 값 범위가 K 개의 대표 간격폭{Q1, ..., QK}으로 분리되고, 확률들의 명세사항에 대한 소정의 값 범위가 N 개의 대표 확률상태{P1, ..., PN}로 분리되고, 각각의 간격폭(R)에 하나의 QK(1≤k≤K)를, 각각의 확률에 하나의 Pn(1≤n≤N)을 할당하는, 할당규정이 주어지며, 제 2 단계에서, 곱셈과 나눗셈을 제외산 산술연산에 의해 대표 간격폭(QK(1≤k≤K)) 과 대표 확률상태(Pn(1≤n≤N))를 각각 사용하여 인코딩 또는 디코딩 과정에서 유도될 새로운 간격폭의 계산을 수행함으로써 상기 이진상태의 인코딩 또는 디코딩이 발생하며, 상기 대표 간격폭(QK)은 폭(R)의 기본 간격에 의해 결정되며, 상기 대표 확률상태(Pn)는 주어진 할당규정에 따라 인코딩 또는 디코딩 되어야할 심볼을 기초로 한 확률추정에 의해 결정되는 것을 특징으로 하는 이진상태들의 산술적 인코딩 및 디코딩 방법이 수행될 수 있는 적어도 하나의 프로세서를 포함한다.
본 발명의 이진상태들의 산술적 인코딩 및 디코딩을 위한 컴퓨터 프로그램의 일실시예는, 컴퓨터의 저장매체에 로딩된 후에 컴퓨터로 하여금, 제 1 단계에서, 간격폭(R)의 명세사항에 대한 소정의 값 범위가 K 개의 대표 간격폭{Q1, ..., QK}으로 분리되고, 확률들의 명세사항에 대한 소정의 값 범위가 N 개의 대표 확률상태{P1, ..., PN}로 분리되고, 각각의 간격폭(R)에 하나의 QK(1≤k≤K)를, 각각의 확률에 하나의 Pn(1≤n≤N)을 할당하는, 할당규정이 주어지며, 제 2 단계에서, 곱셈과 나눗셈을 제외산 산술연산에 의해 대표 간격폭(QK(1≤k≤K)) 과 대표 확률상태(Pn(1≤n≤N))를 각각 사용하여 인코딩 또는 디코딩 과정에서 유도될 새로운 간격폭의 계산을 수행함으로써 상기 이진상태의 인코딩 또는 디코딩이 발생하며, 상기 대표 간격폭(QK)은 폭(R)의 기본 간격에 의해 결정되며, 상기 대표 확률상태(Pn)는 주어진 할당규정에 따라 인코딩 또는 디코딩 되어야할 심볼을 기초로 한 확률추정에 의해 결정되는 것을 특징으로 하는 이진상태들의 산술적 인코딩 및 디코딩 방법을 수행하도록 한다.
예컨대, 그러한 컴퓨터 프로그램들은 데이터 또는 통신 네트워크로 다운로드 될 수 있도록 제공된다(유료, 무료, 자유 출입 또는 패스워드 기입보호에 대하여). 이런 식으로 제공되는 컴퓨터 프로그램은, 제 22항에 따른 컴퓨터 프로그램이 예컨대 인터넷 등의 데이터 통신용 네트워크로부터 네트워크에 접속된 데이터 통신수단으로 다운로드 되는 방법에 의해 사용될 수도 있다.
본 발명의 이진상태들의 산술적 인코딩 및 디코딩 방법을 수행하기 위하여, 바람직하게는, 제 1 단계에서, 간격폭(R)의 명세사항에 대한 소정의 값 범위가 K 개의 대표 간격폭{Q1, ..., QK}으로 분리되고, 확률들의 명세사항에 대한 소정의 값 범위가 N 개의 대표 확률상태{P1, ..., PN}로 분리되고, 각각의 간격폭(R)에 하나의 QK(1≤k≤K)를, 각각의 확률에 하나의 Pn(1≤n≤N)을 할당하는, 할당규정이 주어지며, 제 2 단계에서, 곱셈과 나눗셈을 제외산 산술연산에 의해 대표 간격폭(QK(1≤k≤K))과 대표 확률상태(Pn(1≤n≤N))를 각각 사용하여 인코딩 또는 디코딩 과정에서 유도될 새로운 간격폭의 계산을 수행함으로써 상기 이진상태의 인코딩 또는 디코딩이 발생하며, 상기 대표 간격폭(QK)은 폭(R)의 기본 간격에 의해 결정되며, 상기 대표 확률상태(Pn)는 주어진 할당규정에 따라 인코딩 또는 디코딩 되어야할 심볼을 기초로 한 확률추정에 의해 결정되는 것을 특징으로 하는 이진상태들의 산술적 인코딩 및 디코딩 방법을 수행하기 위해 컴퓨터의 저장매체에 로딩된 후 컴퓨터를 인에이블시키는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장매체가 사용된다.
본 신규한 방법은 세가지 특징의 조합으로 구별되어 진다. 먼저, Q-코더와 마찬가지로, 유한상태머신(FSM)을 사용하여 확률추정이 수행되며, 상기 FSM의 N개의 대표상태의 발생은 오프라인으로 수행된다. 따라서, 이에 해당하는 천이법칙들은 테이블 형태로 정리된다.
본 발명의 두 번째 특징은, 간격폭(R)이 미리 정의된 K 개의 양자화 값들로 전양자화(prequantization) 된다는 것이다. 이는, 곱셈이 없는 RLPS의 결정을 위해 K과 N의 적절한 크기조절을 통해, 미리 계산된 곱셈값(R x PLPS)의 모든 K x N 조합들을 포함하는 테이블을 발생시키도록 한다.
다른 콘텍스트 모델들이 사용되는 환경, 그 중에서도, (거의) 균등한 확률분포가 위치되는 환경에서 본 발명을 사용하기 위해서, 또한 추가의 (선택적인) 성분으로서, 코딩 머신내에 별도의 분기(branch)가 제공되는데, 동일한 분포를 가정하여, 변수(L 및 R)의 결정 및 재정규화가 이루어지고, 계산량이 실질적으로 감소되는 것으로 간주된다.
전체적으로, 특히 본 발명은, 한편으로는 높은 코딩 효율과 다른 한편으로는 낮은 계산량 사이의 좋은 절충안을 허용한다는 장점을 제공한다.
이하, 본 발명을 도면에 도시된 실시예를 참조하여 상세하게 설명한다.
도 1은 이진 산술적 인코딩의 기본연산을 나타낸 도면.
도 2는 테이블을 이용한 산술적 인코딩의 변형된 구성을 나타낸 도면.
도 3은 테이블을 이용한 산술적 인코딩의 원리를 나타낸 도면.
도 4는 균등한 분포를 갖는 이진 데이터를 각각 인코딩 또는 디코딩하는 원리를 나타낸 도면.
도 5는 균등한 분포를 갖는 이진 데이터에 대하여 각각 인코딩 또는 디코딩를 구현하는 대체실시예를 나타낸 도면.
도 6은 양자화 파라미터 SliceQP 및 프리셋 모델 파라미터(m 및 n)에 따른 확률 모델의 초기화를 나타낸 도면.
먼저, 이론적인 배경을 더욱 상세하게 설명한다.
테이블을 사용한 확률추정
전술한 바와 같이, 산술적 인코딩의 효과는, 부호화 될 심볼의 발생확률의 추정이 가능한한 양호하다는 점에 있다. 정상상태가 아닌(non-stationary) 소스 통계치(source statistics)로 적응화(adaptation)시키기 위해, 이러한 추정값이 인코딩과정에서 업데이트될 필요가 있다. 일반적으로, 인코딩된 결과의 스케일링(scaling)된 빈도 카운터를 사용하여 연산하는 방법이, 이를 위해 사용된다(참조문헌[17]). CLPS와 CMPS가 LPS와 MPS의 발생빈도에 대한 카운터를 지정한다면, 그 후, 이러한 카운터를 사용하여, 아래 수식의 추정이 수행되고, 그 후, 간격분리에 대한 수식(1)에 개략된 연산이 수행될 수 있다.
실제적으로는, 수식(1)에서 요구되는 나눗셈은 바람직하지 않다. 그러나, 전체 카운터(CTotal= CMPS+ CLPS)의 소정의 문턱치(Cmax)가 초과되는 경우, 카운터 독출의 리스케일링(rescaling)을 수행할 것이 요구되며, 이는 때로는 편리한 것이다. (이러한 맥락에서, L과 R의 b-비트 표현으로 올바르게 지시될 수 있는 최소확률은2-b+2이기 때문에, 이러한 하한이 부족하게 되는 것을 방지하기, 필요하다면, 카운터 독출의 리스케일링이 요구된다). Cmax를 적절하게 선택함으로서, CTotal의 순환값이 테이블화 되어, 수식(1)에서 요구되는 나눗셈이 테이블 액세스 및 곱셈 및 시프트 연산으로 교환될 수 있다. 그러나, 이러한 산술연산들을 방지하기 위하여, 본 발명에서는, 확률추정을 위해 완전하게 테이블을 사용하는 방법이 사용된다.
이를 위하여, 정렬(training)단계에서, 대표 확률상태(Pk|0 ≤ k < Nmax}가 미리 선택되는데, 여기서, 상태의 선택은 한편으로는 코딩될 데이터의 통계치에 의존하며, 다른 한편으로는 상태들의 디폴트 최대수(Nmax)의 경계 조건(side condition)에 의존한다. 또한, 현재 코딩된 심볼에 기초하여, 어떤 새로운 상태가 차기 인코딩될 심볼에 대하여 사용될지를 나타내는 천이법칙들이 정의된다. 이러한 천이법칙들은 두 개의 테이블 형태로 제공되며: {Next_State_LPSk| 0 ≤ k < Nmax} 및 {Next_State_MPSk| 0 ≤ k < Nmax}, 여기서, 테이블은, 현재 주어진 확률상태의 인덱스(n)에 대하여, LPS 또는 MPS가 각각 발생하는 경우, 새로운 확률상태(Pm)의 인덱스(m)를 제공한다. 여기서, 주의할 것은, 산술적 인코더 또는 디코더에서 각각 확률추정을 위하여, 여기서 제안된 바와 같이, 확률상태들의 외면적인 테이블화(tabulation)가 요구되지는 않는다. 차라리, 상태들은 이하의 문단에서 설명하는 바와 같이, 각각 자신의 인덱스를 사용하여 내면적으로 주소화된다. 천이법칙에 더하여, LPS 및 MPS의 값이 교체될 필요가 있는 확률상태가 어디인지 명시될 필요가 있다. 일반적으로, 자신의 인덱스(p_state)를 사용하여 식별될 수 있는 그러한 우수한 상태는 하나밖에 없을 것이다.
테이블을 사용한 간격분리
도 2는 여기 제안되는 바와 같이 테이블을 사용한 산술적 인코딩의 변형된 구성을 나타낸다. LPS를 결정한 후, 먼저 주어진 간격폭(R)이 테이블화된 맵핑(Qtab) 및 적합한 시프트 연산(q 비트씩)을 사용하여 양자화된 값(Q)으로 맵핑된다. 대체 실시예로서, 양자화는 특별한 경우, 테이블화된 맵핑(Qtab)을 사용하지 않고, 시프트와 마스크 연산의 조합으로만 수행될 수 있다. 일반적으로, 여기서, 대표값(K= 2, .., 8)에 대하여 비교적 거친(coarse) 양자화가 수행된다. 또한, 여기서, 확률추정의 경우와 마찬가지로, Q의 외면적인 결정이 수행되지 않으며; 차라리, 인덱스(q_index)만이 Q로 이송된다. 다음, 이러한 인덱스는, 간격폭(RLPS) 판단을 위한 현재 확률상태의 특징화를 위해, 인덱스(p_state)와 함께 사용된다. 이를 위해, 데이블(Rtab)의 해당 엔트리가 사용된다. 여기서, R의 양자화된 값들(K) 모두 및 확률상태들과는 다른 Nmax에 해당하는, K·Nmax 의 곱셈값(R x PLPS)이 일반적으로 b-2 비트의 정확도로 정수값으로서 입력된다. 실제적인 구현에 있어서, 테이블 크기에 대한 저장매체 요구사항들과 산술 정확도의 사이를 조율할 가능성이 있으며, 이로 인해 또한 인코딩의 효율을 최종적으로 결정하게 된다 . 이러한 두가지 목표 변수들은 R 및 PLPS표현의 그래뉼래리티(granularity)에 의해 결정된다.
도 2의 제 4 단계에서, 상기의 인코딩된 이벤트 비트에 따라 확률상태(p_state)의 업데이트가 수행되는 방법이 도시되어 있다. 여기서, 상기 "테이블을 사용한 확률추정"의 단락에서 이미 언급된 천이 테이블(Next_State_LPS 및 Next_State_MPS)이 사용된다. 이러한 연산들은 도 1에 도시된 업데이트 과정에 해당하며, 제 4단계에서는 더 이상 상술하지 않기로 한다.
도 3은 테이블을 사용한 산술적 인코딩의 해당 흐름도를 나타낸다. 디코더의 현재의 부분간격을 특성화하기 위하여, 간격폭(R)과 V 값이 사용된다. 후자는 부분간격 내에 존재하며, 각각의 독출 비트에서 연속적으로 재배열된다. 도 3에서 볼 수 있는 바와 같이, 확률추정 및 간격폭(R) 결정을 위한 연산은 인코더의 연산에 기초하여 수행된다.
균등한 확률분포로 코딩하기
예컨대, 부호값을 지닌(signed) 값들의 확률분포가 0 주위로 대칭으로 배치되어 코딩되어야 하는 적용예에 있어서, 부호 정보를 코딩하기 위하여 일반적으로 동등한 분포가 가정될 수 있다. 이러한 정보는 산술적 비트스트림에 임베디드 되어야 하는 것인 반면, 다른 한편으로는, 0.5 의 확률(p≒0.5)의 경우에 대하여 테이블을 사용한 확률추정과 간격분리를 할 수 있는 비교적 소형(compact)장치를 사용하는 것은 상식적인 것이 아니므로, 이러한 특별한 경우에는 이하에 설명되는 바와 같은 특별한 인코더/디코더 절차를 선택적으로 사용할 것이 제안된다.
이러한 특별한 경우에는, 새로운 부분간격의 간격폭이 인코더에서 원래의 간격(R)의 폭의 이등분에 해당하는 간단한 시프트 연산으로 결정될 수 있다. 코딩되어야할 비트값에 따라, R의 상반부와 하반부 각각이 새로운 부분간격으로 선택된다 (도 4 참조). 후속의 재정규화 및 비트들의 출력이 전술한 테이블을 사용한 해결법에서와 같이 수행된다.
상응하는 디코더에서는, 디코드될 비트를 V의 값을 사용하여 현재의 간격폭(R)으로 상대적으로 결정하는, 간단한 비교연산에 의해 요구되는 연산이 줄어든다. 디코드된 비트가 설정되는 경우, V는 R의 양만큼 감소된다. 도 4에 도시된 바와 같이, 다음으로 독출될 비트를 사용하여 V를 재정규화하고 업데이트함으로써 디코딩이 끝난다.
도 5에는 균등한 확률분포로 이벤트를 코딩하는 대체실시예의 구현방법이 도시되어 있다. 본 예시적인 실시예에서, 현재 간격폭(R)은 변경되지 않는다. 대신, 먼저 V가 인코더의 시프트 연산에 의해 2배로 된다. 코딩될 비트값에 따라, 전술한 예와 마찬가지로, R의 상반부 또는 하반부 각각이 새로운 부분간격으로 선택된다(도 5 참조). 후속의 재정규화 및 비트출력은 전술한 테이블을 이용한 해결법의 경우와 같이 수행되나, R 과 L의 2배화가 수행되지 않으며, 해당 비교연산이 2배화된 문턱치로 수행된다는 점에서 다르다.
대체실시예의 해당 디코더에 있어서, 먼저, 한 비트가 독출되고, V가 업데이트된다. 도 4의 제 1단계와 동일한 방법으로 제 2단계가 수행되는데, 즉, 디코드될 비트가 V의 값을 사용하여 간단한 비교연산에 의해 현재 간격폭(R)과 상대적으로 결정되며, 디코드된 비트가 설정되는 경우, V는 R의 양만큼 축소되어야 한다(도 5 참조).
확률모델의 주소화 및 초기화
각각의 확률모델은, 제안된 발명에서 사용되는 바와 같이, 두 개의 파라미터를 사용하여 표현된다: 1) LPS의 확률상태를 특성화하는 인덱스(p_state) 및 2) MPS의 값(valMPS). 이러한 두 개의 변수 각각은 완전한 코딩유닛(한 슬라이스에 관한 비디오 코딩의 적용에서)의 인코딩 또는 디코딩의 시작에서 각각 초기화되어질 필요가 있다. 도 6의 예에서 나타낸 바와 같이, 초기화값은 예컨대 (슬라이스의) 양자화 파라미터와 같은 제어정보로부터 유도될 수 있다.
포워드 제어된(forward-controlled) 초기화과정
또한, 이하의 방법에 의해 모델들의 시작분포를 적응화할 수도 있다. 모델들의 초기화의 더 양호한 적응화를 위하여, 인코더에서, 모델들의 소정의 시작값의 선택방법이 제공될 수 있다. 이러한 모델들은 시작분포 그룹으로 결합될 수 있으며, 인덱스를 사용하여 주소화될 수 있기 때문에, 인코더에서, 시작값들의 그룹의 적응적 선택이 수행되어, 페이지 정보로서 인덱스의 형태로 디코더로 전송된다. 이러한 방법은 포워드 제어된 초기화 과정이라고 한다.
- 참조문헌 -
[1] T. Wiegand, G. Sullivan, "Draft Text of Final Draft International Standard(FDIS) of Joint Video Specification (ITU-T Rec. H. 264 /ISO/IEC 14496-10 AVC)", JVT-G050, March 2003.
[2] D. A. Huffman, "A Method for Construction of Minimum Redundancy Code", Proc. IRE, Vol. 40, pp; 1098-1101, 1952.
[3] I. H. Witten, R. M. Neal, J. G. Cleary, "Arithmetic Coding for Data Compression", Communication of the ACM, Vol. 30, No. 6, pp. 520-540, 1987.
[4] G. G. Langdon, J. Rissanen, " A Simple General Binary Source Code", IEEE Transaction on Informatin Theory, Vol. 28, pp. 800-803, 1982.
[5] C. E. Shannon, "A Mathematical Theory of Communication", Bell Syst. Tech. Journal, vol. 27, pp. 379-423, 623-656, 1948.
[6] P. Elias, in "Information Theory and Coding", N. Abramson (Ed.), New York, Mc-Gra-Hill, 1963.
[7] J. Rissanen, "Generalized Kraft Inequality and Arithmetic Coding", IBM J. Res. Develop., Vol. 20, pp. 198-203, 1976.
[8] R. C. Pasco, "Source Coding and Algorithms for Fast Data Compression", Ph. D. Dissertation, Stanford University, USA, 1976.
[9] G. G. Langdon, "An Introduction to Arithmetic Coding", IBM J. Res. Develop., Vol. 28, pp. 135-149, 1984.
[10] A. Moffat, R. M. Neal, I. H. Witten, "Arithmetic Coding Revisited", Proc. IEEE Data Compression Conference, Snowbird (USA), pp. 202-211, 1996.
[11] J. Rissanen, K. M. Mohiuddin, "A Multiplication-Free Multialphabet Arithmetic Code", IEEE Trans. on Communication, Vol. 37, pp. 93-98, 1989.
[12] W. B. Pennebaker, J. L. Mitchell, G. G. Langdon, R. B. Arps, "AnOverview of the Basic Principles of the Q-Coder Adaptive Binary Arithmetic Coder", IBM J. Res. Develop., Vol. 32, pp. 717-726, 1988.
[13] P. G. Howard, J. S. Vitter, "Practical Implementations of Arithmetic Coding", in "Image and Text Compression", J. Storer(Ed.), Norwell(USA), Kluwer, 1992.
[14] L. Huynh, A. Moffat, "A Probability-Ratio Approach to Approximate Binary Arithmetic Coding", IEEE Trans. on Information Theory, vol. 43, pp. 1658-1662, 1997.
[15] D. Chevion, E. D. Karnin, E. Walach, "High-Efficiency, Multiplication Free Approximation of Arithmetic Coding", Proc. IEEE Data Compression Conference, Snowbird(USA), pp. 43-52, 1991.
[16] G. Feygin, P. G. Gulak, P. Chow, "Mininmizing Excess Code Length and VLSI Complexity in the Multiplication Free Approximation of Arithmetic Coding", Inform. Proc. Manag., vol. 30, pp. 805-816, 1994.
[17] D. L. Duttweiler, Ch. Chamzas, "Probability Estimation in Arithmetic and Adaptive-Huffman Entropy Coders", IEEE Trans, on Image Processing, Vol. 4, pp. 237-246, 1995.

Claims (24)

  1. 제 1 단계에서, 간격폭(R)의 명세사항에 대한 소정의 값 범위가 K 개의 대표 간격폭{Q1, ..., QK}으로 분리되고, 확률들의 명세사항에 대한 소정의 값 범위가 N 개의 대표 확률상태{P1, ..., PN}로 분리되고, 각각의 간격폭(R)에 하나의 QK(1≤k≤K)를, 각각의 확률에 하나의 Pn(1≤n≤N)을 할당하는, 할당규정이 주어지며,
    제 2 단계에서, 곱셈과 나눗셈을 제외산 산술연산에 의해 대표 간격폭 QK(1≤k≤K))과 대표 확률상태 Pn(1≤n≤N))를 각각 사용하여 인코딩 또는 디코딩 과정에서 유도될 새로운 간격폭의 계산을 수행함으로써 이진상태의 인코딩 또는 디코딩이 발생하며,
    상기 대표 간격폭 QK은 폭(R)의 기본 간격에 의해 결정되며, 상기 대표 확률상태 Pn는 주어진 할당규정에 따라 인코딩 또는 디코딩 되어야할 심볼을 기초로 한 확률추정에 의해 결정되는 것을 특징으로 하는 이진상태들의 산술적 인코딩 및 디코딩 방법.
  2. 제 1항에 있어서,
    폭 R을 갖는 현재 산정되어야할 간격에 기초하여 관련 간격폭(QK)을 결정하기 위하여, 상기 R의 컴퓨터 내부/이진 표현에 적용되는 시프트 및 비트 마스크 연산에 의해 인덱스(q_index)가 결정되는 것을 특징으로 하는 방법.
  3. 제 1항에 있어서,
    폭 R을 갖는 현재 산정되어야할 간격에 기초하여 관련 간격폭(QK)을 결정하기 위하여, 상기 R의 컴퓨터 내부/이진 표현에 적용되는 시프트 연산 및 테이블(Qtab)로의 다운스트림 액세스(downstream access)에 의해 인덱스(q_index)가 결정되며, 상기 테이블(Qtab)은 시프트 연산에 의해 전양자화(prequantization)된 R 값에 해당하는 간격폭의 인덱스들을 포함하는 것을 특징으로 하는 방법.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    인코딩 또는 디코딩 되어야 할 상기 심볼을 기초로 한 확률추정은 인덱스(p_state)에 의해 확률상태(Pn)와 관계되는 것을 특징으로 하는 방법.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 K 개의 간격 폭들 모두 및 상기 N개의 다른 확률상태들 모두에 해당하는 간격폭(RLPS)의 값들이 곱셈값(QK*Pn)으로서 테이블(Rtab)로 입력되는 것을 특징으로 하는 방법.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    LPS에 해당하는 간격폭(RLPS)의 결정은 테이블(Rtab)로의 액세스에 의해 수행되고, 상기 테이블(Rtab)은 곱셈값(QK*Pn)으로서 상기 R의 K개의 양자화된 값들 모두 및 N개의 다른 확률상태들에 해당하는 간격폭(RLPS) 값들을 포함하는 것을 특징으로 하는 방법.
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서,
    LPS에 해당하는 간격폭(RLPS)의 결정은 테이블(Rtab)로의 액세스에 의해 수행되고, 테이블의 산정을 위해서, 상기 양자화 인덱스(q_index) 및 상기 확률상태 인덱스(p_state)가 사용되는 것을 특징으로 하는 방법.
  8. 제 1항 내지 제 7항 중 어느 한 항에 있어서,
    상기 N개의 다른 대표 확률상태에 대하여, 천이법칙이 미리 설정되며, 상기 천이법칙은 현재 인코딩 또는 디코딩되는 심볼에 기초하여 인코딩 또는 디코딩 될 차기 심볼에 대하여 새로운 상태 중 어느 것이 사용되는지를 나타내는 것을 특징으로 하는 방법.
  9. 제 8항에 있어서,
    가장 낮은 확률의 심볼(LPS)의 발생에서, 상기 현재 주어진 확률상태(Pn)의인덱스(n)에 대한 새로운 확률상태(Pm)의 인덱스(m)을 포함하는 테이블(Next_State_LPS)이 생성되는 것을 특징으로 하는 방법.
  10. 제 8항에 있어서,
    가장 높은 확률의 심볼(MPS)의 발생에서, 상기 현재 주어진 확률상태(Pn)의 인덱스(n)에 대한 새로운 확률상태(Pm)의 인덱스(m)을 포함하는 테이블(Next_State_MPS)이 생성되는 것을 특징으로 하는 방법.
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서,
    상기 인코딩의 미리 설정된 정확도, 및/또는 사용가능한 저장공간에 따라, 양자화 값들의 수(K) 및/또는 대표상태들의 수(N)가 선택되는 것을 특징으로 하는 방법.
  12. 제 1항 내지 제 11항 중 어느 한 항에 있어서,
    테이블을 활용한 인코딩은 이하의 단계들을 포함하는 것을 특징으로 하는 방법:
    6. LPS의 결정
    7. R의 양자화:
    q_index = Qtab[R>>q]
    8. RLPS및 R의 결정
    RLPS= Rtab [q_index, p_state]
    R = R - RLPS
    9. 새로운 부분간격의 계산
    if (bit = LPS) then
    L ← L + R
    R ← RLPS
    p_state ← Next_State_LPS [p_state]
    if (p_state = 0) then valMPS ← 1 - valMPS
    else
    p_state ← Next_State_MPS [p_state}
    10. L 및 R의 재정규화 및, 비트 쓰기
    q_index 는 Qtab 로부터 독출된 양자화값의 인덱스,
    p_state 는 현재상태,
    RLPS는 LPS에 해당하는 간격폭, 및
    valMPS는 MPS에 해당하는 비트를 나타냄.
  13. 제 1항 내지 제 12항 중 어느 한 항에 있어서,
    테이블을 이용한 디코딩은 이하의 단계를 포함하는 것을 특징으로 하는 방법:
    1. LPS의 결정
    2. R의 양자화
    q_index = Qtab[R>>q]
    3. RLPS및 R의 결정
    RLPS= Rtab [q_index, p_state]
    R = R - RLPS
    4. 부분간격의 위치에 따른 비트의 결정:
    if (V≥R) then
    bit ← LPS
    V ← V - R
    R ← RLPS
    if (p_state = 0) then valMPS ← 1 - valMPS
    p_state ← Next_State_LPS [p_state]
    else
    bit ← MPS
    p_state ← Next_State_MPS [p_state]
    5. R의 재정규화, 한 비트를 독출하고, V를 업데이트,
    q_index 는 Qtab 로부터 독출된 양자화값의 인덱스,
    p_state 는 현재상태,
    RLPS는 LPS에 해당하는 간격폭,
    valMPS 는 MPS에 해당하는 비트, 및
    V 는 현재 부분간격의 내부로부터의 값을 나타냄.
  14. 제 1항 내지 제 13항 중 어느 한 항에 있어서,
    상기 인코딩 및/또는 디코딩에서, 양자화 인덱스(q_index)의 계산은 제 12 항 및/또는 제 13항에 따른 제 2 하부단계에서, q_index = (R>>q) & Qmask 의 계산규정에 따라 수행되며, 상기 Qmask 는 상기 K에 따라 적절하게 선택되는 비트 마스크를 나타내는 것을 특징으로 하는 방법.
  15. 제 1항 내지 제 14항 중 어느 한 항에 있어서,
    균일한 확률분포가 존재하는 경우,
    제 12항에 따른 인코딩에서, 상기 1 내지 4 하부단계들은 이하의 계산 규정에 따라 수행되며:
    R ← R >> 1
    if (bit = 1) then
    L ← L + R
    또는
    제 12항에 따른 인코딩에서, 상기 1 내지 4 하부단계들은 이하의 계산규정에 따라 수행되며:
    L ← L << 1
    if (bit = 1) then
    L ← L + R
    마지막 대안에서 상기 재정규화(제 12항에 따른 5 하부단계)는 두 배의 결정 문턱치 값으로 수행되며, 상기 L 및 R 은 두 배로 되지 않으며,
    제 13항에 따른 디코딩에서, 상기 1 내지 4 하부단계들은 이하의 계산규정에 따라 수행되며:
    R ← R >> 1
    if (V≥R) then
    bit ← 1
    V ← V - R
    else
    bit ← 0,
    또는,
    제 13항에 따른 디코딩의 상기 1 내지 5 하부단계들은,
    3. 한 비트를 독출하고, V를 업데이트함
    4. 부분간격의 위치에 따라 비트를 결정
    if (V≥R) then
    bit ← 1
    V ← V - R
    else
    bit ← 0.
    위와 같은 계산규정에 따라 수행되는 것을 특징으로 하는 방법:
  16. 제 1항 내지 제 15항 중 어느 한 항에 있어서,
    양자화 파라미터(SliceQP) 및 미리 설정된 모델 파라미터(m 및 n)에 따라 상기 확률모델의 초기화가 수행되며, 상기 SliceQP는 슬라이스의 시작에 미리 설정된 양자화 파라미터를 나타내며, 상기 m 및 n은 모델 파라미터들을 나타내는 것을 특징으로 하는 방법.
  17. 제 1항 내지 제 16항 중 어느 한 항에 있어서,
    상기 확률모델의 초기화는 이하의 과정을 포함하며:
    1. preState = min(max(1, ((m * SliceQP) >> 4) + n), 2*N)
    2. if (preState <= N) then
    p_state = N + 1 - preState
    valMPS = 0
    else
    p_state = preState - N
    valMPS = 1,
    상기 valMPS 는 MPS에 해당하는 비트를 나타내며, 상기 SliceQP는 슬라이스의 시작에 미리 설정된 양자화 파라미터를 나타내며, m 및 n은 모델 파라미터를 나타내는 것을 특징으로 하는 방법.
  18. 제 1항 내지 제 17항 중 어느 한 항에 있어서,
    상기 상태의 확률추정은 유한상태머신(FSM)을 사용하여 수행되는 것을 특징으로 하는 방법.
  19. 제 1항 내지 제 18항 중 어느 한 항에 있어서,
    상기 대표 상태들의 발생은 오프라인으로 수행되는 것을 특징으로 하는 방법.
  20. 제 1항 내지 제 19항 중 어느 한 항에 있어서,
    상기 상태들의 선택은 코딩되어야 할 데이터의 통계치 및 상기 상태들의 수에 의존하는 것을 특징으로 하는 방법.
  21. 제 1 단계에서, 간격폭(R)의 명세사항에 대한 소정의 값 범위가 K 개의 대표간격폭{Q1, ..., QK}으로 분리되고, 확률들의 명세사항에 대한 소정의 값 범위가 N 개의 대표 확률상태{P1, ..., PN}로 분리되고, 각각의 간격폭(R)에 하나의 QK(1≤k≤K)를, 각각의 확률에 하나의 Pn(1≤n≤N)을 할당하는, 할당규정이 주어지며,
    제 2 단계에서, 곱셈과 나눗셈을 제외산 산술연산에 의해 대표 간격폭 QK(1≤k≤K)) 과 대표 확률상태 Pn(1≤n≤N))를 각각 사용하여 인코딩 또는 디코딩 과정에서 유도될 새로운 간격폭의 계산을 수행함으로써 상기 이진상태의 인코딩 또는 디코딩이 발생하며,
    상기 대표 간격폭(QK)은 폭(R)의 기본 간격에 의해 결정되며, 상기 대표 확률상태(Pn)는 주어진 할당규정에 따라 인코딩 또는 디코딩 되어야할 심볼을 기초로 한 확률추정에 의해 결정되는 것을 특징으로 하는 이진상태들의 산술적 인코딩 및 디코딩 방법이 수행될 수 있는 적어도 하나의 프로세서 및 칩을 포함하는 장치.
  22. 제 1 단계에서, 간격폭(R)의 명세사항에 대한 소정의 값 범위가 K 개의 대표 간격폭{Q1, ..., QK}으로 분리되고, 확률들의 명세사항에 대한 소정의 값 범위가 N 개의 대표 확률상태{P1, ..., PN}로 분리되고, 각각의 간격폭(R)에 하나의 QK(1≤k≤K)를, 각각의 확률에 하나의 Pn(1≤n≤N)을 할당하는, 할당규정이 주어지며,
    제 2 단계에서, 곱셈과 나눗셈을 제외산 산술연산에 의해 대표 간격폭 QK(1≤k≤K)) 과 대표 확률상태 Pn(1≤n≤N))를 각각 사용하여 인코딩 또는 디코딩 과정에서 유도될 새로운 간격폭의 계산을 수행함으로써 상기 이진상태의 인코딩 또는 디코딩이 발생하며,
    상기 대표 간격폭(QK)은 폭(R)의 기본 간격에 의해 결정되며, 상기 대표 확률상태(Pn)는 주어진 할당규정에 따라 인코딩 또는 디코딩 되어야할 심볼을 기초로 한 확률추정에 의해 결정되는 것을 특징으로 하는 이진상태들의 산술적 인코딩 및 디코딩 방법을 수행하기 위하여 컴퓨터의 저장매체에 로딩된 후에 컴퓨터를 인에이블시키는 컴퓨터 프로그램.
  23. 제 1 단계에서, 간격폭(R)의 명세사항에 대한 소정의 값 범위가 K 개의 대표 간격폭{Q1, ..., QK}으로 분리되고, 확률들의 명세사항에 대한 소정의 값 범위가 N 개의 대표 확률상태{P1, ..., PN}로 분리되고, 각각의 간격폭(R)에 하나의 QK(1≤k≤K)를, 각각의 확률에 하나의 Pn(1≤n≤N)을 할당하는, 할당규정이 주어지며,
    제 2 단계에서, 곱셈과 나눗셈을 제외산 산술연산에 의해 대표 간격폭 QK(1≤k≤K)) 과 대표 확률상태 Pn(1≤n≤N))를 각각 사용하여 인코딩 또는 디코딩 과정에서 유도될 새로운 간격폭의 계산을 수행함으로써 상기 이진상태의 인코딩 또는 디코딩이 발생하며,
    상기 대표 간격폭(QK)은 폭(R)의 기본 간격에 의해 결정되며, 상기 대표 확률상태(Pn)는 주어진 할당규정에 따라 인코딩 또는 디코딩 되어야할 심볼을 기초로 한 확률추정에 의해 결정되는 것을 특징으로 하는 이진상태들의 산술적 인코딩 및 디코딩 방법을 수행하기 위해 컴퓨터의 저장매체에 로딩된 후 컴퓨터를 인에이블시키는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장매체.
  24. 제 22항에 있어서,
    상기 컴퓨터 프로그램이 예컨대 인터넷과 같은 전자 데이터 네트워크로부터 상기 데이터 네트워크에 접속된 데이터 처리수단으로 다운로드 되는 것을 특징으로 하는 방법.
KR1020047017090A 2002-05-02 2003-05-02 이진상태들의 산술적 인코딩 및 디코딩 방법 및 장치, 및이에 해당하는 컴퓨터 프로그램 및 컴퓨터 판독가능저장매체 KR100733795B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10220962 2002-05-02
DE10220962.6 2002-05-02
PCT/EP2003/004654 WO2003094355A2 (de) 2002-05-02 2003-05-02 Verfahren und anordnung zur arithmetischen enkodierung und dekodierung von binären zuständen sowie ein entsprechendes computerprogramm und ein entsprechendes computerlesbares speichermedium

Publications (2)

Publication Number Publication Date
KR20040104611A true KR20040104611A (ko) 2004-12-10
KR100733795B1 KR100733795B1 (ko) 2007-07-02

Family

ID=29285283

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047017090A KR100733795B1 (ko) 2002-05-02 2003-05-02 이진상태들의 산술적 인코딩 및 디코딩 방법 및 장치, 및이에 해당하는 컴퓨터 프로그램 및 컴퓨터 판독가능저장매체

Country Status (12)

Country Link
US (1) US6943710B2 (ko)
EP (7) EP2296282B1 (ko)
JP (3) JP3989485B2 (ko)
KR (1) KR100733795B1 (ko)
AT (1) ATE421802T1 (ko)
DE (1) DE50311129D1 (ko)
DK (6) DK2326013T3 (ko)
ES (6) ES2442190T3 (ko)
HK (5) HK1155000A1 (ko)
PT (6) PT1550219E (ko)
SI (1) SI1550219T1 (ko)
WO (1) WO2003094355A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694098B1 (ko) * 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7408486B2 (en) * 2003-04-21 2008-08-05 Qbit Corporation System and method for using a microlet-based modem
GB2398191B (en) * 2004-03-10 2004-12-22 David Asher Jaffa Adaptive quantiser
US8572018B2 (en) * 2005-06-20 2013-10-29 New York University Method, system and software arrangement for reconstructing formal descriptive models of processes from functional/modal data using suitable ontology
JP4547503B2 (ja) * 2006-03-07 2010-09-22 国立大学法人徳島大学 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体
US7262722B1 (en) * 2006-06-26 2007-08-28 Intel Corporation Hardware-based CABAC decoder with parallel binary arithmetic decoding
JP4717780B2 (ja) * 2006-11-01 2011-07-06 キヤノン株式会社 符号化装置及びその制御方法
JP4865509B2 (ja) * 2006-11-01 2012-02-01 キヤノン株式会社 復号装置及び復号方法
JP4785706B2 (ja) * 2006-11-01 2011-10-05 キヤノン株式会社 復号装置及び復号方法
US7443318B2 (en) * 2007-03-30 2008-10-28 Hong Kong Applied Science And Technology Research Institute Co. Ltd. High speed context memory implementation for H.264
TWI330006B (en) * 2007-07-27 2010-09-01 Lite On It Corp Encoding method and encoder for generating balanced code or constant weighted code
JP4382840B2 (ja) * 2007-08-20 2009-12-16 Nttエレクトロニクス株式会社 2値算術符号化装置
US20090231173A1 (en) * 2008-03-14 2009-09-17 Daniel Kilbank System and method for using a microlet-based modem
JP5133950B2 (ja) * 2009-07-16 2013-01-30 日本電信電話株式会社 コンテクスト適応エントロピ符号化方法および装置,コンテクスト適応エントロピ復号方法および装置,並びにそれらのプログラム
JP5047244B2 (ja) * 2009-09-01 2012-10-10 日本電信電話株式会社 コンテクスト適応エントロピ符号化方法および装置,コンテクスト適応エントロピ復号方法および装置,並びにそれらのプログラム
KR101615384B1 (ko) * 2010-04-05 2016-04-25 삼성전자주식회사 통신 시스템에서의 채널 부호화 장치 및 방법
WO2011128268A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
JP4936574B2 (ja) * 2011-03-02 2012-05-23 キヤノン株式会社 符号化装置及びその制御方法
AP2016009618A0 (en) 2011-06-16 2016-12-31 Ge Video Compression Llc Entropy coding of motion vector differences
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
US9871537B2 (en) 2011-10-27 2018-01-16 Qualcomm Incorporated Mapping states in binary arithmetic coder for video coding
KR101647244B1 (ko) 2012-01-30 2016-08-09 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 이진 산술 코딩 방식
WO2016003131A1 (ko) * 2014-06-29 2016-01-07 엘지전자(주) 연결된 rom-ram 테이블에 기초하여 산술 코딩을 수행하는 방법 및 장치
US10757412B2 (en) * 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5272478A (en) * 1992-08-17 1993-12-21 Ricoh Corporation Method and apparatus for entropy coding
US5475388A (en) * 1992-08-17 1995-12-12 Ricoh Corporation Method and apparatus for using finite state machines to perform channel modulation and error correction and entropy coding
FR2703483B1 (fr) * 1993-03-29 1995-06-02 Digital Equipment Int Dispositif de mise à jour de la valeur de code dans la méthode du codage arithmétique.
US5912636A (en) * 1996-09-26 1999-06-15 Ricoh Company, Ltd. Apparatus and method for performing m-ary finite state machine entropy coding
JP3367370B2 (ja) * 1997-03-14 2003-01-14 三菱電機株式会社 適応符号化方法
US6757436B2 (en) * 1997-06-19 2004-06-29 Electroncs For Imaging, Inc. Methods and apparatus for data compression based on modeling schemes
US5970174A (en) * 1997-06-19 1999-10-19 Electronics For Imaging Method and apparatus for data compression and gray value estimation
US5973626A (en) * 1998-03-17 1999-10-26 Cornell Research Foundation, Inc. Byte-based prefix encoding
EP1465349A1 (en) * 2003-03-31 2004-10-06 Interuniversitair Microelektronica Centrum Vzw Embedded multiple description scalar quantizers for progressive image transmission
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694098B1 (ko) * 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치

Also Published As

Publication number Publication date
EP2290612B1 (de) 2013-11-06
EP2296282A2 (de) 2011-03-16
DK2068448T3 (da) 2013-12-02
DK2326013T3 (da) 2013-12-02
EP1571755A2 (de) 2005-09-07
DE50311129D1 (de) 2009-03-12
JP4709821B2 (ja) 2011-06-29
PT2068448E (pt) 2013-12-03
JP2006050605A (ja) 2006-02-16
EP2037412A3 (de) 2010-03-31
DK2290612T3 (da) 2013-12-02
ES2442215T3 (es) 2014-02-10
EP2068448B1 (de) 2013-11-06
WO2003094355A2 (de) 2003-11-13
DK2296282T3 (da) 2013-12-02
ES2442190T3 (es) 2014-02-10
HK1154430A1 (en) 2012-04-20
ES2316749T3 (es) 2009-04-16
EP2296282B1 (de) 2013-11-06
EP2037412A2 (de) 2009-03-18
EP2326013A2 (de) 2011-05-25
EP1550219A2 (de) 2005-07-06
ES2442174T3 (es) 2014-02-10
EP2037412B1 (de) 2013-11-06
SI1550219T1 (sl) 2009-04-30
US6943710B2 (en) 2005-09-13
EP2068448A2 (de) 2009-06-10
DK1550219T3 (da) 2009-03-09
EP2068448A3 (de) 2010-03-31
WO2003094355A3 (de) 2004-05-21
EP2290612A3 (de) 2012-12-26
DK2037412T3 (da) 2013-12-02
PT2326013E (pt) 2013-12-05
HK1155000A1 (en) 2012-05-04
EP2290612A2 (de) 2011-03-02
PT2296282E (pt) 2013-12-05
ES2442173T3 (es) 2014-02-10
HK1127525A1 (en) 2009-09-25
JP2008104207A (ja) 2008-05-01
HK1157948A1 (en) 2012-07-06
ES2439996T3 (es) 2014-01-27
EP2296282A3 (de) 2012-12-26
EP2326013B1 (de) 2013-11-06
PT1550219E (pt) 2009-03-05
KR100733795B1 (ko) 2007-07-02
ATE421802T1 (de) 2009-02-15
JP4054345B2 (ja) 2008-02-27
JP3989485B2 (ja) 2007-10-10
JP2005525018A (ja) 2005-08-18
EP1550219B1 (de) 2009-01-21
EP1571755A3 (de) 2005-10-19
HK1130372A1 (en) 2009-12-24
US20040117714A1 (en) 2004-06-17
PT2037412E (pt) 2013-12-05
PT2290612E (pt) 2013-12-03
EP2326013A3 (de) 2012-12-26

Similar Documents

Publication Publication Date Title
KR100733795B1 (ko) 이진상태들의 산술적 인코딩 및 디코딩 방법 및 장치, 및이에 해당하는 컴퓨터 프로그램 및 컴퓨터 판독가능저장매체
US8736467B2 (en) Adaptive binarization for arithmetic coding
JP4313771B2 (ja) 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
KR102588145B1 (ko) 엔트로피 인코딩 및 디코딩 방식
US5818877A (en) Method for reducing storage requirements for grouped data values
JP5925884B2 (ja) エントロピー符号化におけるコンテキスト初期化
JP4179640B2 (ja) 情報信号の算術符号化及び復号
US5808572A (en) Method and apparatus for finite-length arithmetic coding
Belyaev et al. Binary Arithmetic Coding System with Adaptive Probability Estimation by" Virtual Sliding Window"
CN110291793A (zh) 上下文自适应二进制算术编解码中范围推导的方法和装置
US10070127B2 (en) Method and apparatus for arithmetic coding and termination
Tian et al. Review of CAVLC, arithmetic coding, and CABAC
Sun et al. Lossless Coders
Hong et al. Automatic Generation of C++/Java Code for Binary Arithmetic Coding
Natarajan et al. State-based dynamic multi-alphabet arithmetic coding for image compression
Osorio et al. 200 Mbit/s 4-symbol arithmetic encoder architecture for embedded zero tree-based compression
Mrudula et al. Multiplication free Fast-Adaptive Binary Range Coder using ISW
Knezovic et al. Effects of scaling and residual mapping parameters on lossless compression of images
Westwater et al. Entropy Coding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20130617

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140624

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150608

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160615

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170614

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180614

Year of fee payment: 12