KR101360313B1 - 산술 디코딩 방법 및 디바이스 - Google Patents

산술 디코딩 방법 및 디바이스 Download PDF

Info

Publication number
KR101360313B1
KR101360313B1 KR1020087023829A KR20087023829A KR101360313B1 KR 101360313 B1 KR101360313 B1 KR 101360313B1 KR 1020087023829 A KR1020087023829 A KR 1020087023829A KR 20087023829 A KR20087023829 A KR 20087023829A KR 101360313 B1 KR101360313 B1 KR 101360313B1
Authority
KR
South Korea
Prior art keywords
value
cod
elements
bits
decoding
Prior art date
Application number
KR1020087023829A
Other languages
English (en)
Other versions
KR20090007301A (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=37744535&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101360313(B1) "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 KR20090007301A publication Critical patent/KR20090007301A/ko
Application granted granted Critical
Publication of KR101360313B1 publication Critical patent/KR101360313B1/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
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 CABAC과 같은 산술 코딩 방법에 따라 코딩된 요소들을 디코딩하기 위한 방법에 관한 것이다. 이 방법은 제 1 및 제 2의 미리 정의된 디코딩 파라미터인 Cod|Offset0와 Cod|Range를 기초로 하여, 2진 스트림의 적어도 일부를 한 세트의 요소로 디코딩하고, 이러한 한 세트의 요소는 n개의 제 1 요소로 이루어진 접두사(P2)와 m개의 제 2 요소를 포함하는 접미사(S2)를 포함하며, 이러한 접두사(P2)와 접미사(S2)는 피벗(P)이라고 부르는 요소에 의해 분리된다. 본 발명의 방법은 다음 단계, 즉
- k개의 제 1 비트라고 하는 2진 스트림의 k개의 연속하는 비트들의 값과, 제 1 및 제 2 디코딩 파라미터를 기초로 하여 n의 값을 결정하여 그것으로부터 접두사(P2)와 m의 값을 추론해내는, n의 값을 결정하는 단계와,
- 제 1 및 제 2 디코딩 파라미터와, k개의 제 1 비트 중 n개의 제 1 비트를 따르는 2진 스트림의 m개의 연속하는 비트의 값을 기초로 하여 접미사(S2)를 결정하는 단계를 포함한다.

Description

산술 디코딩 방법 및 디바이스{ARITHMETIC DECODING METHOD AND DEVICE}
본 발명은 문맥 산술(contextual arithmetic) 코딩 방법에 따라 코딩된 요소를 디코딩하기 위한 방법 및 디바이스에 관한 것으로, 상기 코딩된 요소는 데이터 스트림의 형태로 나타난다.
오디오 또는 비디오 타입의 디지털 데이터는 다양한 코딩 방법에 따라 코딩될 수 있다. 산술 코딩 방법 분야는 알려져 있고, 이는 특히 비트의 개수가 정수가 아닌 구문 요소{예컨대, 모션 벡터(motion vector)}나 데이터 항목(data item)을 코딩하는 것을 가능하게 한다. 그러므로, 하나의 동일한 비트가 허프만(Huffman) 코딩이 허용하는 것과는 반대로 2개의 상이한 구문 요소에 관련된 정보를 포함할 수 있다. 그러한 비트는 이 경우 분수(fractional) 비트라고 부른다.
MPEG-4 part10 또는 MPEG-4 AVC라는 이름으로도 알려져 있는 H.264 비디오 코딩 표준은, CABAC("Context-based Adaptive Binary Arithmetic Coding")이라는 이름으로 알려진 문맥 산술 코딩 방법인 엔트로피 코딩 방법을 제안한다. 이 코딩 방법은 이전에 코딩된 값이 현재 구문 요소의 코딩에 영향을 미치는 한, 적응성이 있다. 엔트로피 디코딩 단계들 사이의 구문 요소를 디코딩하기 위한 횟수(times)를 개선하고 계속해서 일어나는 처리(예컨대, 역 양자화)를 개선하고 그로 인한 필요 한 메모리 크기를 줄이기 위해서는, 문맥 산술 디코딩 방법을 적어도 부분적으로는 병렬화하는 것이 바람직하고, 이는 상기 디코딩 방법의 순차적 성질 때문에 비교적 복잡하다.
본 발명은 종래 기술의 결점 중 적어도 하나를 경감하는 것을 그 목표로 하고 있다. 더 구체적으로, 본 발명은 코딩된 요소가 2진 스트림의 형태로 나타나는, CABAC과 같은 산술 코딩 방법에 따라 코딩된 요소들을 디코딩하기 위한 방법에 관한 것이다. 이 방법은 각각 간격(interval)의 하한(lower bound)(Cod|Offset0)과 크기(Cod|Range)를 정의하는 제 1 및 제 2의 미리 정의된 디코딩 파라미터에 기초하여, 2진 스트림의 적어도 일부를 한 세트의 요소로 디코딩하고, 이러한 한 세트의 요소는 미리 결정된 동일한 값의 n개의 제 1 요소로 이루어진 접두사(P2)와 미리 결정된 함수에 따라 n에 의존하는 m개의 제 2 요소를 포함하는 접미사(S2)를 포함하며, 이러한 접두사(P2)와 접미사(S2)는 피벗(pivot)(P)이라고 부르는 요소에 의해 분리된다. 이 방법은 다음 단계, 즉
- k개의 제 1 비트라고 하는 2진 스트림의 k개의 연속하는 비트들의 값과, 제 1 및 제 2 디코딩 파라미터를 기초로 하여 병렬 계산함으로써 n의 값을 결정하는 단계로서, k는 n 이상인 미리 결정된 정수로 그것으로부터 접두사(P2)와 m의 값을 추론해내는, n의 값을 결정하는 단계와,
- 제 1 및 제 2 디코딩 파라미터와, k개의 제 1 비트 중 n개의 제 1 비트를 따르는 2진 스트림의 m개의 연속하는 비트의 값을 기초로 하여 병렬 계산함으로써 접미사(S2)를 결정하는 단계를 포함한다.
바람직하게, n개의 제 1 요소, 피벗(P) 및 m개의 제 2 요소는 비트이다.
특별한 일 실시예에 따르면, n의 값이 다음 관계
2nCod|Offset0 + val(n) - (2n - 1)*Cod|Range < Cod|Range
를 만족시키는 가장 작은 정수가 되도록 결정된다.
여기서,
- val(n)은 2진 스트림의 n개의 제 1 비트에 대응하는 값,
- Cod|Offset0은 간격의 하한을 정의하는 제 1 파라미터의 값,
- Cod|Range는 간격의 크기를 정의하는 제 2 파라미터의 값이다.
게다가, 접미사(S2)는 그것의 값이 몫(quotient)(2nCod|Offset0 + val(n))/Cod|Range와 같도록 결정된다.
본 발명은 CABAC와 같은 산술 코딩 디바이스에 따라 코딩된 요소들을 디코딩하기 위한 디바이스에 관한 것으로, 그 코딩된 요소는 2진 스트림의 형태로 나타난다. 이 디바이스는 각각 간격의 하한(Cod|Offset0)과 크기(Cod|Range)를 정의하는 제 1 및 제 2의 미리 정의된 디코딩 파라미터에 기초하여, 2진 스트림의 적어도 일부를 한 세트의 요소로 디코딩하고, 이러한 한 세트의 요소는 미리 결정된 동일한 값의 n개의 제 1 요소로 이루어진 접두사(P2)와 미리 결정된 함수에 따라 n에 의존하는 m개의 제 2 요소를 포함하는 접미사(S2)를 포함하며, 이러한 접두사(P2)와 접미사(S2)는 피벗(P)이라고 부르는 요소에 의해 분리된다. 이 디바이스는
- k개의 제 1 비트라고 하는 2진 스트림의 k개의 연속하는 비트의 값과, 제 1 및 제 2 디코딩 파라미터를 기초로 하여, n의 값을 결정하기 위해 병렬로 동작하는 수단으로서, k는 n 이상인 미리 결정된 정수로 그것으로부터 접두사(P2)와 m의 값을 추론해내는, 병렬로 동작하는 수단과,
- 제 1 및 제 2 디코딩 파라미터와, k개의 제 1 비트 중 n개의 제 1 비트를 따르는 2진 스트림의 최대 m개의 연속하는 비트의 값을 기초로 하여 접미사(S2)를 결정하기 위해 병렬로 동작하는 수단을 포함한다.
바람직하게, 접미사(S2)를 결정하기 위한 수단은 온-실리콘 분할기(on-silicon divider)를 포함한다.
유리하게, 이 디코딩 디바이스는 또한 접두사(P2), 피벗(P) 및 접미사(S2)를 연결시키는 수단을 포함한다.
바람직하게, 이 디코딩 디바이스는 또한 2진 스트림을 m+n+1과 같은 정수개의 비트만큼 이동시키기 위한 수단을 포함하는 것을 특징으로 한다.
본 발명은 또한 프로그램이 컴퓨터에서 실행될 때, 본 발명에 따른 방법의 단계들을 실행하기 위한 프로그램 코드 명령어를 포함하는 컴퓨터 프로그램 제품에 관한 것이다.
본 발명은 전혀 제한적이지 않은 유리한 전형적인 실시예와 구현예의 모드에 의해, 첨부 도면을 참조로 하여 더 잘 이해되고 예시된다.
도 1은 구문 요소 또는 바이패스(bypass) 모드라고 부르는 특정 모드에서 코딩된 그러한 구문 요소의 부분을 나타내는 "빈(bin)"으로 불리는 비트를 종래 기술에 따라 디코딩하는 방법을 예시하는 도면.
도 2는 일정한 규칙성을 보여주는 특정 구문 요소의 빈들을 도시하는 도면.
도 3은 본 발명을 따르는 문맥 산술 디코딩 디바이스를 모듈의 형태로 도시하는 도면.
도 4는 도 3에 의해 나타난 문맥 산술 디코딩 디바이스 모듈 부분을 도시하는 도면.
도 5는 도 4에 의해 나타난 디코딩 디바이스 부분의 제 1 계산 모듈을 도시하는 도면.
도 6은 도 5에 의해 예시된 모듈의 제 1 계산 블록을 도시하는 도면.
도 7은 도 5에 의해 예시된 모듈의 제 2 계산 블록을 도시하는 도면.
도 8은 도 5에 의해 예시된 모듈의 제 3 계산 블록을 도시하는 도면.
도 9는 도 4에 의해 나타난 디코딩 디바이스 부분의 제 2 계산 모듈을 도시하는 도면.
도 10은 도 4에 의해 나타난 디코딩 디바이스 부분의 제 3 계산 모듈을 도시하는 도면.
본 발명은 CABAC 문맥 산술 코딩 모드가 기동되었을 때, H.264 표준에 따라 이미지의 시퀀스를 디코딩하는 애플리케이션의 프레임워크 내에서 설명된다. 이미지의 시퀀스를 코딩하는 동안, 모션 벡터(motion vector)와 같은 일정한 구문 요소가 자주 나타난다. 그러므로, 그러한 구문 요소를 효율적인 방식으로 디코딩할 수 있는 것이 중요하다. 이를 위해, 본 발명의 목적은 CABAC와 같은 문맥 산술 코딩 방법에 의해 이전에 코딩된 디지털 데이터를 디코딩하기 위한 방법을 적어도 부분적으로 병렬화하는 것이다.
H.264 표준에 따르면, 구문 요소는 산술 코딩 방법에 의해 직접 코딩되지 않는다. 특히, 2진화(binarization) 단계라고 부르는 제 1 코딩 단계 동안 구문 요소는 ISO/IEC MPEG와 ITU-T VCEG 참조된 JVT-M050d4의 제목이 "Draft of version 4 of H.264/AVC (ITU-T Recommendation H.264 and ISO/IEC 14496-10(MPEG-4 part 10) Advanced Video Coding)"인 문서에서 한정된 테이블 및/또는 방법의 도움으로 최종 데이터 스트림의 비트와 "빈"이라고 부르는 비트를 구별하기 위해 이 '빈'이라고 하는 비트로 이루어지는 가변 길이 코드(variable-length code)를 사용하여 코딩된다. 이렇게 발생된 빈의 세트는 제 2 단계 동안, 코딩된 데이터 스트림("비트스트림")인 비트의 세트로 문맥 산술 코딩 방법에 의해 코딩된다. 따라서 종래의 엔트로피 디코딩 방법(예컨대, MPEG-2 표준의 프레임워크 내에 사용된 것과 같은)에 비해, H.264 표준의 프레임워크 내에 사용된 것과 같은 엔트로피 디코딩 방법은 다음 단계를 포함한다.
- 코딩된 데이터 스트림에서 일정한 개수의 비트를 읽는 단계,
- 문맥 산술 디코딩 단계 동안, 이들 비트에 기초하여 순차 방식으로 구문 요소(예컨대 DCT 계수나 벡터 성분과 같은)를 나타내는 연속하는 비트 또는 빈의 제 2 스트림을 발생시키는 단계,
- 이전 단계 동안 발생된 빈에 기초하여 구문 요소를 발생시키는 단계.
디코딩 방법의 마지막 단계는 역이진화(debinarization) 단계라고 부른다. 주어진 개수의 비트는 다수의 상이한 빈으로 변환될 수 있다. 이들 빈은 완전한 구문 요소의 값을 검색하도록 저장되고 해석된다. 구문 요소 값이 디코딩되었을 때, 동일한 마지막 비트에 기초하여 다음 구문 요소에 관한 정보를 계속해서 추출하는 것이 가능하다는 점이 주목되어야 한다. H.264 표준의 경우, 코딩 방법은 코딩하기 위해 찾는 구문 요소의 타입을 따르는 저하된(degraded) 산술 코딩 모드("바이패스" 모드라고 부르는)를 고려할 수 있다. 이후 이 코딩 방법은 bypassFlag라고 부르는 특정 파라미터의 값을 1로 설정한다. 이 파라미터의 값은 본 발명에 따른 디코딩 방법에 의해, 맨 나중의 것이 디코딩되어야 하는 구문 요소의 타입의 함수로서 결정된다. 특히, H.264 표준은 주어진 구문 요소가 저하된 모드 또는 저하되지 않은 모드에서 코딩되어야 하는지를 명시한다. 저하된 모드는 특히 구문 요소 또는 분포가 거의 균일한 그러한 요소의 부분을 코딩하기 위해 사용된다. 도 2는 적어도 한 부분이 저하된 모드에 따라 코딩되는 구문 요소의 빈(예컨대, 모션 벡터인 mvd_I0와 mvd_Il 및 H.264 표준에서 정의된 계수인 coef_abs_level_minus1)을 나타낸다. 예컨대, 모션 벡터 구문 요소와 계수(coef_abs_level_minus1)의 접미사(S1)는 H.264 표준에 따라 이러한 저하된 모드에서 코딩된다. 모션 벡터의 경우, 접미사(S1)의 빈은 접두사(P1)의 처음 9개의 빈을 따른다. coef_abs_level_minus1의 계 수의 경우, 접미사(S1)의 빈은 접두사(P1)의 처음 14개의 빈을 따른다. 그러한 구문 요소의 값이 일정한 값(접두사인 P1에서의 빈의 개수에 의존하는)보다 작다면, 접미사(S1)가 없을 수 있다. 저하되지 않은 모드에서 코딩된 접두사(P1), 즉 bypassFlag=0은 문서 JVT-M050d4에서 설명된 것과 같은 종래의 문맥 산술 디코딩 방법에 따라 디코딩된다. 접미사(S1)는 본 발명의 방법에 따라 디코딩된다.
도 1은 종래 기술의 상태에 따른 디코딩 방법을 도시하고, 문서 JVT-M050d4에서 설명되고 있다. 이 방법은 구문 요소나 저하된 모드에서 코딩된 그러한 요소의 부분을 나타내는 연속되는 빈을 발생시키는 것을 가능하게 한다. 사용된 연산자는 문서 JVT-M050d4에서 정의되는데, 즉 연산자 '<<'는 "좌측 시프트(left shift)" 연산자를, 연산자 '|'는 "OR" 연산자를 연산자 '&'는 "AND" 연산자를 나타낸다. 함수 val(m)는 코딩된 데이터 스트림에서 "m개의 비트를 읽기(reading m bits)"에 의해 얻어진 값을 되돌려보낸다. 이 함수, 즉 각각 산술 디코더의 현재 상태의 특징을 나타내는 디코딩 파라미터인 Cod|Offset0와 Cod|Range는 간격의 하한과 간격의 크기를 정의한다. 이들 디코딩 파라미터는 각 슬라이스(slice)의 시작시 이미지에서 초기화되는데, 즉 Cod|Offset0=0이고 Cod|Range=1이다. binVal은 현재 빈의 값을 지정한다. 도 1에 의해 예시된 방법을 실행함으로써, 즉 그것을 연속해서 여러 번 적용함으로써, 매 반복시 마주치게 되는 분기(branching)(YES 또는 NO 분기)의 모든 가능성의 조합을 연역적으로 마주치게 된다. 하지만, 고려된 구문 요소, 즉 모션 벡터와 계수의 접미사(S1)를 디코딩하는 경우, 그것을 병렬화함으로써, 이 방법 을 단순화시키는 것이 가능하다. 특히, 이들 접미사(S1)를 나타내는 일련의 빈은 랜덤하지 않다. 그것들은 규칙성을 보여주고 특히
- 값이 '1'인 일련의 n개의 빈으로 이루어지는 접두사(P2),
- 피벗이라고 부르고 P라고 참조되는 빈 '0' 및
- m이 예컨대 m=n+n0인 미리 결정된 함수에 따라 n에 의존하고, n0가 그 값이 알려진 정수이고 현재 구문 요소에 의존하는, m개의 빈의 랜덤 시리즈(random series)로 이루어지는 접미사(S2)를 포함한다.
종래 기술에 따른 방법을 k번 실행함으로써, 다음 k개의 관계가 얻어진다.
1차 관계:
Figure 112008068284404-pct00001
2차 관계:
Figure 112008068284404-pct00002
3차 관계:
Figure 112008068284404-pct00003
k차 관계
Figure 112008068284404-pct00004
그러므로, 단계 1 동안에는 Cod|Offset0와 Cod|Range의 값에만 기초하여, 피벗(P)의 위치, 즉 n의 값과 그로 인한 접미사(S2)의 길이(m)를 결정하는 것이 가능 하다. 특히, 관계 Cod|Offsetp < Cod|Range가 정확히 만족하도록 하는 가장 작은 지수(p)가 피벗의 위치를 결정한다. P2의 제 1 빈의 지수가 0이라고 가정된다면, p=n이다. p가 항상 k(예컨대, k=14)보다 작다는 사실을 아는 것만으로 이후 이값을 결정하기 위해, Cod|Offsetk의 k개의 값들을 나란히 계산하고, Cod|Range와 이들 값 모두를 비교하는 것으로 족하다. 이 단계를 완료하면, Cod|Offset0의 값이 갱신되는데, 즉 Cod|Offset0 = Cod|Offsetp이다. 따라서, 값 val(1)...val(m)을 결정하기 위해 p번째 비트 후 데이터 스트림을 고려한다.
피벗(P)의 위치(p)를 결정한 후, 접미사(S1)의 접미사(S2)를 재구성하도록 단계 2 동안 발생하도록 남아 있는 빈의 개수 m이 알려지는데, 즉 m=n+n0이다. 하지만, 이들 빈의 각각의 값은 이 제 2 단계 동안에 결정되도록 남아 있는데, 다시 종래 기술에 따른 방법을 m번 실행함으로써, 다음 m개의 관계가 얻어진다.
Figure 112008068284404-pct00005
Figure 112008068284404-pct00006
Figure 112008068284404-pct00007
Figure 112008068284404-pct00008
이고
Figure 112008068284404-pct00009
이라 하자. α는 데이터 스트림의 m개의 비트의 값에 의존하는 상수로서, m은 알려진 것이고 Cod|Offset0의 값 또한 알려져 있다. 게다가 이 표준은 Cod|Offset m 의 값이 Cod|Range 보다 작도록 하고 있다.
그래서, B는 몫인 α/Cod|Range와 같고, Cod|Offset m 은 이 동일한 나눈셈의 나머지와 같게 되는데, 이는
Figure 112008068284404-pct00010
이고 Cod|Offset m < Cod|Range이기 때문이다. 그러므로 Cod|Range의 값은 H.264 표준에 따라 값(α)으로부터 최대 횟수만큼 빼진다.
단계 1 동안 피벗의 위치를 결정하고, 그에 따라 접두사(P2)를 결정하며, 접미사(S2)의 빈의 값, 즉 단계 2 동안의 값(B)을 결정하였으므로, 접미사(S1)는 전적으로 P2, S2 및 피벗의 연결에 의해 결정된다. 단계 1과 단계 2를 마치게 되면, Cod|Range의 값이 수정되지 않고, Cod|Offset0의 값이 Cod|Offsetm의 값으로 갱신된다. 이들, 가능하게는 갱신된 Cod|Range와 Cod|Offset0의 값은, 문맥 산술 코딩 방법이 저하되거나 저하되지 않은 어느 모드에서나 빈을 디코딩하기 위해 다시 사용될 때 사용될 것들이다.
본 발명은 또한 본 발명에 따른 산술 디코딩 방법을 구현하는 문맥 산술 디코딩 디바이스(10)에 관한 것이다. 다음에 오는 도면에서, 표현된 모듈은 기능성 유닛으로, 이는 물리적으로 구별 가능한 유닛에 대응하거나 대응하지 않을 수 있다. 예컨대, 이들 모듈이나 그것들 중 일부는 단일 성분으로서 함께 그룹화되거나, 하나의 동일한 소프트웨어의 기능성을 구성할 수 있다. 역으로, 일정한 모듈이 가 능하게는 분리된 물리적 실체(entity)로 이루어질 수 있다. 도 3을 참조하면, 디코딩 디바이스(10)는 완전한 데이터 경로를 감시하는 역할을 하는 감시 모듈(100)을 특별히 포함한다. 이 감시 모듈(100)은, 예컨대 상태 기계(state machine)(FSM - "Finite State Machine")의 형태를 취한다. 이 디코딩 디바이스(10)는 또한 도 3에서 cts_mem이라고 참조된 메모리에 저장된 문맥(context)을 이웃하는 데이터에 기초하여 선택하는 것을 가능하게 하는 모듈(101)을 포함한다. 게다가 이 디코딩 디바이스(10)는 본 발명에 따른 이전에 설명된 디코딩 방법을 구현하는 산술 디코딩 모듈(102)을 포함한다. 파이프라인(pipeline) 처리의 2가지 스테이지(stage)를 동기시키기 위해, 디코딩 디바이스(10)는 감시 모듈(100)과 산술 디코딩 모듈(102) 사이에 위치한 레지스터(R)를 포함한다. 산술 디코딩 모듈(102)은 가능하게는 입력으로서 수신된 데이터 스트림에 기초하여 빈을 발생시키고 가능하게는 메모리인 cts_mem에서 문맥 값을 읽게 된다. 또한 메모리(cts_mem)에서 문맥을 갱신하게 된다. 이 빈은 역이진화 모듈(103)로 송신된다. 이 역이진화 모듈(103)은 또한 일정한 개수의 비트만큼 데이터 스트림을 이동시키는 외부 시프터(shifter)에 시프트 명령을 급송한다. 역이진화 모듈(103)은 산술 디코더(102)에 의해 발생된 빈에 기초하여 구문 요소를 발생시키는 것을 가능하게 한다.
산술 디코딩 모듈(102)은 본 발명에 따른 디코딩 방법이 사용되기 위한 것 외의 요소들의 부분 또는 구문 요소의 빈(즉, 모션 벡터와 coef_abs_level_minus1의 접미사들)을 디코딩하기 위한 표준에 의해 제안된 종래의 산술 디코딩 방법을 구현하는 제 1 모듈을 포함한다. 산술 디코딩 모듈(102)은 또한 본 발명에 따른 방 법을 구현하는 도 4에 나타난 제 2 모듈(104)을 포함한다. 이 모듈(104)은 접미사(S1)의 접두사(P2)를 발생시키고 α의 값을 계산하기 위해, 본 발명에 따른 방법의 단계(1)에 따라 피벗(P)의 위치를 계산 가능하게 하는 제 1 계산 모듈(20)을 특별히 포함한다. 또한 접미사(S2)의 값과 Cod|Offset0의 새로운 값을 계산하도록 파라미터인 Cod|Range로 α를 나누는 것을 가능하게 하는 계산 모듈(21)을 포함한다. 이 계산 모듈(21)은, 예컨대 온-실리콘 분할기이다. 모듈(104)은 또한 계산 모듈(20)에 의해 발생된 접두사(P2)와, 피벗(P) 및 계산 모듈(21)에 의해 발생된 접미사(S2)를 연결시킴으로써 접미사(S1)를 발생시키는 것을 가능하게 하는 도 9에 나타난 연결 모듈(22)을 포함한다. 이 모듈(104)은 비트의 정수 개수(m+n+1)를 계산하는 것을 가능하게 하는 도 10에 나타난 모듈(23)을 포함하는데, 상기 개수는 데이터 스트림을 비트의 개수만큼 시프트하는 기능을 하는 시프터에 송신된다.
도 5에 나타난 계산 모듈(20)은 다음 k개의 관계를 병렬로 계산하는 것을 가능하게 하는 도 6에 나타난 제 1 계산 모듈(200)을 포함한다.
Figure 112008068284404-pct00011
이는 또한 0의 값을 제 1 계산 모듈(200)에 의해 계산된 k개의 값인 Calculation_1(k)과 비교함으로써 결국 Cod|Offsetk의 k개의 값을 값(Cod|Range)과 비교하게 하여 피벗(P)의 위치(p)를 결정하는 것을 가능하게 하는 도 7에 나타난 모듈(201)을 포함한다. 또한 k개의 계산된 값 중에서 값인 Calculation_1(p)을 선택하는 것을 가능하게 하는 제 1 멀티플렉서(M1)를 포함한다. 계산 모듈(20)은 또한 다음 k개의 관계를 계산 가능하게 하는 도 8에 나타난 제 2 계산 모듈(202)을 포함한다.
Figure 112008068284404-pct00012
이는 또한 k개의 계산된 값 중에서 값인 Calculation_2(m)을 선택 가능하게 하는 멀티플렉서(M2)를 포함하고, 이 경우 m의 값은 피벗의 위치 결정을 따르는 것으로 알려져 있다. Calculation_2(m)과 같은 파라미터(α)의 값은 계산 모듈(21)에 의해 사용되어, 접미사(S2)의 값과 오프셋(Cod|Offset0)의 새로운 값을 계산한다.
물론, 본 발명은 전술한 예시적인 실시예에 제한되지 않는다. 특히, 당업자라면 기재된 실시예에 임의의 변형을 도입할 수 있고, 그것들을 그것들의 다양한 장점으로부터 이득을 얻을 수 있도록 결합할 수 있다. 비디오 데이터의 프레임워크 내에서 설명된 본 발명은 이러한 데이터의 타입에 제한되지 않고, 특히 오디오, 음성(voice) 타입의 데이터에 적용 가능하다. 또한 H.264 표준에도 제한되지 않고, 특히 H.264를 따르는 문맥 산술 코딩 방법을 구현하는 다른 표준에 적용될 수 있다.
전술한 바와 같이, 본 발명은 문맥 산술 코딩 방법에 따라 코딩되고 데이터 스트림의 형태로 나타나는 요소를 디코딩하는 것이 필요한 분야에서 이용 가능하다.

Claims (9)

  1. CABAC과 같은 산술 코딩 방법에 따라 코딩된 요소들을 디코딩하기 위한 방법으로서, 상기 코딩된 요소는 2진 스트림의 형태로 나타나고, 상기 방법은 각각 간격(interval)의 하한(lower bound)(Cod|Offset0)과 크기(Cod|Range)를 정의하는 제 1 및 제 2의 미리 정의된 디코딩 파라미터에 기초하여, 상기 2진 스트림의 적어도 일부를 한 세트의 요소로 디코딩하고, 상기 한 세트의 요소는 미리 결정된 동일한 값의 n개의 제 1 요소로 이루어진 접두사(P2)와, m개의 제 2 요소를 포함하는 접미사(S2)를 포함하며, m은 미리 결정된 함수에 따라 n에 의존하고, 상기 접두사(P2)와 상기 접미사(S2)는 피벗(pivot)(P)이라고 부르는 요소에 의해 분리되는, 디코딩 방법에 있어서,
    - 상기 제 1 및 제 2 디코딩 파라미터와, k개의 제 1 비트라고 하는 상기 2진 스트림의 k개의 연속하는 비트들의 값을 기초로 하여 병렬 계산함으로써 n의 값을 결정하는 단계로서, k는 n 이상인 미리 결정된 정수이어서, 상기 미리 결정된 정수로부터 상기 접두사(P2)와 m의 값을 추론해내는, n의 값을 결정하는 단계와,
    - 상기 제 1 및 제 2 디코딩 파라미터와, k개의 제 1 비트 중 n개의 제 1 비트를 따르는 상기 2진 스트림의 m개의 연속하는 비트들의 값을 기초로 하여 병렬 계산함으로써 접미사(S2)를 결정하는 단계를
    포함하는 것을 특징으로 하는, 디코딩 방법.
  2. 제 1항에 있어서, 상기 n개의 제 1 요소, 피벗(P), 및 상기 m개의 제 2 요소는 비트인 것을 특징으로 하는, 디코딩 방법.
  3. 제 2항에 있어서, n의 값은, n이 다음 관계
    2nCod|Offset0 + val(n) - (2n - 1)*Cod|Range < Cod|Range
    를 만족시키는 가장 작은 정수가 되도록 결정되고,
    여기서, - val(n)은 상기 2진 스트림의 n개의 제 1 비트에 대응하는 값이며,
    - Cod|Offset0은 상기 간격의 하한을 정의하는 상기 제 1 파라미터의 값이고,
    - Cod|Range는 상기 간격의 크기를 정의하는 상기 제 2 파라미터의 값인 것을 특징으로 하는, 디코딩 방법.
  4. 제 3항에 있어서, 상기 접미사(S2)는, 상기 접미사(S2)의 값이 몫(quotient)(2nCod|Offset0 + val(n))/Cod|Range와 같도록 결정되는 것을 특징으로 하는, 디코딩 방법.
  5. CABAC와 같은 산술 코딩 디바이스에 의해 코딩된 요소들을 디코딩하기 위한 디바이스(104)로서, 상기 코딩된 요소들은 2진 스트림의 형태로 나타나고, 상기 디바이스는 각각 간격의 하한(Cod|Offset0)과 크기(Cod|Range)를 정의하는 제 1 및 제 2의 미리 정의된 디코딩 파라미터에 기초하여, 상기 2진 스트림의 적어도 일부를 한 세트의 요소로 디코딩하고, 상기 한 세트의 요소는 미리 결정된 동일한 값의 n개의 제 1 요소로 이루어진 접두사(P2)와, m개의 제 2 요소를 포함하는 접미사(S2)를 포함하며, m은 미리 결정된 함수에 따라 n에 의존하고, 상기 접두사(P2)와 상기 접미사(S2)는 피벗(P)이라고 부르는 요소에 의해 분리되는, 디코딩 디바이스(104)에 있어서,
    - 상기 제 1 및 상기 제 2 디코딩 파라미터와 k개의 제 1 비트라고 하는 상기 2진 스트림의 k개의 연속하는 비트의 값을 기초로 하여, n의 값을 결정하기 위해 병렬로 동작하는 수단(20,200,201)으로서, k는 n 이상인 미리 결정된 정수이어서, 상기 미리 결정된 정수로부터 상기 접두사(P2)와 m의 값을 추론해내는, 병렬로 동작하는 수단(20,200,201)과,
    - 상기 제 1 및 상기 제 2 디코딩 파라미터와, 상기 k개의 제 1 비트 중 n개의 제 1 비트를 따르는 상기 2진 스트림의 최대 m개의 연속하는 비트의 값을 기초로 하여 접미사(S2)를 결정하기 위해 병렬로 동작하는 수단(20,200,202,21)을
    포함하는 것을 특징으로 하는, 디코딩 디바이스.
  6. 제 5항에 있어서, 상기 접미사(S2)를 결정하기 위한 상기 수단은 온-실리콘 분할기(on-silicon divider)(21)를 포함하는 것을 특징으로 하는, 디코딩 디바이스.
  7. 제 6항에 있어서, 상기 디코딩 디바이스(104)는 상기 접두사(P2), 상기 피벗(P) 및 상기 접미사(S2)를 연결시키는 수단(22)을 더 포함하는 것을 특징으로 하는, 디코딩 디바이스.
  8. 제 7항에 있어서, 상기 디코딩 디바이스(104)는 2진 스트림을 m+n+1과 같은 정수개의 비트만큼 이동시키기 위한 수단(23)을 더 포함하는 것을 특징으로 하는, 디코딩 디바이스.
  9. 컴퓨터 판독 가능한 기록 매체로서,
    프로그램이 컴퓨터에서 실행될 때, 제 1항 내지 제 4항 중 어느 한 항에 따른 방법의 단계들을 실행하기 위한 프로그램 코드 명령어를 포함하는 프로그램이 저장된, 컴퓨터 판독 가능한 기록 매체.
KR1020087023829A 2006-04-18 2007-04-05 산술 디코딩 방법 및 디바이스 KR101360313B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0603431A FR2900004A1 (fr) 2006-04-18 2006-04-18 Procede et dispositif de decodage arithmetique
FR0603431 2006-04-18
PCT/EP2007/053402 WO2007118811A2 (en) 2006-04-18 2007-04-05 Arithmetic decoding method and device

Publications (2)

Publication Number Publication Date
KR20090007301A KR20090007301A (ko) 2009-01-16
KR101360313B1 true KR101360313B1 (ko) 2014-02-11

Family

ID=37744535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087023829A KR101360313B1 (ko) 2006-04-18 2007-04-05 산술 디코딩 방법 및 디바이스

Country Status (7)

Country Link
US (1) US7876240B2 (ko)
EP (1) EP2008467B1 (ko)
JP (1) JP5264706B2 (ko)
KR (1) KR101360313B1 (ko)
CN (1) CN101427583B (ko)
FR (1) FR2900004A1 (ko)
WO (1) WO2007118811A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4382840B2 (ja) * 2007-08-20 2009-12-16 Nttエレクトロニクス株式会社 2値算術符号化装置
WO2010041488A1 (ja) * 2008-10-10 2010-04-15 株式会社東芝 動画像符号化装置
CN101500164B (zh) * 2008-12-31 2011-09-28 深圳市同洲电子股份有限公司 算术编码的打包输出的方法和装置
US8638850B2 (en) * 2009-05-06 2014-01-28 Advanced Micro Devices, Inc. Execution units for context adaptive binary arithmetic coding (CABAC)
GB2488159B (en) * 2011-02-18 2017-08-16 Advanced Risc Mach Ltd Parallel video decoding
CN105357540B (zh) * 2011-06-28 2019-09-06 三星电子株式会社 对视频进行解码的方法
JPWO2013046504A1 (ja) * 2011-09-29 2015-03-26 パナソニックIpマネジメント株式会社 算術復号装置、画像復号装置、および算術復号方法
TWI590649B (zh) * 2011-11-08 2017-07-01 三星電子股份有限公司 視訊之算術解碼裝置
WO2013070974A2 (en) * 2011-11-08 2013-05-16 General Instrument Corporation Method of determining binary codewords for transform coefficients
WO2015192779A1 (en) 2014-06-20 2015-12-23 Mediatek Inc. Method and apparatus of binarization and context-adaptive coding for syntax in video coding
JPWO2016203881A1 (ja) * 2015-06-18 2018-04-26 シャープ株式会社 算術復号装置及び算術符号化装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040240559A1 (en) 2003-05-28 2004-12-02 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
EP1624580A1 (en) * 2004-08-05 2006-02-08 Samsung Electronics Co, Ltd Context-based adaptive binary arithmetic decoding method and apparatus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09135358A (ja) * 1995-11-08 1997-05-20 Nec Corp 算術符号を用いた画像符号化装置
JP2002094386A (ja) * 2000-09-12 2002-03-29 Mitsubishi Electric Corp 符号化装置、復号装置、符号化方法および復号方法
US7274671B2 (en) * 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
EP1322117A1 (fr) * 2001-12-06 2003-06-25 Koninklijke Philips Electronics N.V. Dispositif de codage/décodage arithmétique
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
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
US7688895B2 (en) * 2003-07-22 2010-03-30 Lsi Corporation Method and/or circuit for binary arithmetic decoding decisions before termination
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
JP4739167B2 (ja) * 2006-10-31 2011-08-03 キヤノン株式会社 正規化処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040240559A1 (en) 2003-05-28 2004-12-02 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
EP1624580A1 (en) * 2004-08-05 2006-02-08 Samsung Electronics Co, Ltd Context-based adaptive binary arithmetic decoding method and apparatus

Also Published As

Publication number Publication date
JP2009534886A (ja) 2009-09-24
JP5264706B2 (ja) 2013-08-14
KR20090007301A (ko) 2009-01-16
WO2007118811A3 (en) 2008-01-10
FR2900004A1 (fr) 2007-10-19
WO2007118811A2 (en) 2007-10-25
EP2008467B1 (en) 2011-12-28
CN101427583A (zh) 2009-05-06
US7876240B2 (en) 2011-01-25
US20090219177A1 (en) 2009-09-03
CN101427583B (zh) 2011-06-01
EP2008467A2 (en) 2008-12-31

Similar Documents

Publication Publication Date Title
KR101360313B1 (ko) 산술 디코딩 방법 및 디바이스
AU2020280994B2 (en) Sample array coding for low-delay
TWI524744B (zh) 在視訊寫碼中用於視訊時序之時序資訊關係之圖像次序計數的發信
US7848579B2 (en) Image coding device, method and computer program with data coding amount prediction
JP6609753B2 (ja) データ符号化及び復号化
KR101695681B1 (ko) 상황-기반의 적응형 이진 산술 코딩(cabac)비디오 스트림 준수
KR101208233B1 (ko) 중간 형식으로 변환하는 2단계 산술 복호
CN108419084B (zh) 改进熵编码和解码的方法、装置及存储介质
JP2009534886A5 (ko)
US20140286417A1 (en) Data encoding and decoding
KR102020101B1 (ko) 비디오 코덱에서 신택스 요소 인코딩을 위한 방법 및 장치
US9641835B2 (en) Method of determining binary codewords for transform coefficients
KR101767976B1 (ko) 디지털화된 이미지들의 시퀀스로부터의 심벌들을 인코딩하기 위한 방법
JPWO2009150808A1 (ja) 画像復号装置および画像符号化装置
KR102600727B1 (ko) 파라미터화된 확률 추정 유한 상태 머신들을 이용한 이진 산술 코딩
KR102123620B1 (ko) 대용량 병렬 처리를 위해 비디오 신호를 엔트로피 인코딩 또는 엔트로피 디코딩하는 방법 및 장치
JP5116704B2 (ja) 画像符号化装置及び画像符号化方法
US20060278725A1 (en) Image encoding and decoding method and apparatus, and computer-readable recording medium storing program for executing the method
CN113994680A (zh) 用于图片的子部分的独立cabac
JP2010109912A (ja) 画像符号化装置及び画像符号化方法
Pastuszak High-speed architecture of the CABAC probability modeling for H. 265/HEVC encoders
Choi et al. High throughput entropy coding in the HEVC standard

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: 20170119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190207

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200121

Year of fee payment: 7