KR100955418B1 - 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템 및 방법 - Google Patents

컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR100955418B1
KR100955418B1 KR1020080092603A KR20080092603A KR100955418B1 KR 100955418 B1 KR100955418 B1 KR 100955418B1 KR 1020080092603 A KR1020080092603 A KR 1020080092603A KR 20080092603 A KR20080092603 A KR 20080092603A KR 100955418 B1 KR100955418 B1 KR 100955418B1
Authority
KR
South Korea
Prior art keywords
binary
syntax element
context
clock cycle
decoding
Prior art date
Application number
KR1020080092603A
Other languages
English (en)
Other versions
KR20090038808A (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 KR20090038808A publication Critical patent/KR20090038808A/ko
Application granted granted Critical
Publication of KR100955418B1 publication Critical patent/KR100955418B1/ko

Links

Images

Classifications

    • 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
    • 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/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
    • H04N19/423Methods 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 characterised by memory arrangements
    • H04N19/426Methods 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 characterised by memory arrangements using memory downsizing methods
    • 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템이 개시된다. 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템은 인코딩되는 제1 이진 및 디코딩되는 제2 이진 중에서 하나의 이진을 위한 인덱스 값을 계산하는 계산 장치, 클러스터 내에 컨텍스트 모델들을 저장하는 메모리 장치 및 하나의 컨텍스트 모델에 기초하여 제1 이진을 인코딩하기 위한 인코더 및 하나의 컨텍스트 모델에 기초하여 제2 이진을 디코딩하기 위한 디코더 중에서 하나로서 역할을 하는 이진 산술 유닛을 포함하고, 제1 이진 및 제2 이진 중에서 하나의 이진을 위한 인덱스 값은 하나의 컨텍스트 모델과 관련된다.

Description

컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템 및 방법{SYSTEM AND METHOD FOR CONTEXT-BASED ADAPTIVE BINARY ARITHMETIC ENCODING AND DECODING}
본 발명은 대체로 비디오 코딩 및 디코딩에 관한 것이다. 보다 상세하게는, 본 발명은 컨텍스트 기반 적응형 이진 산술 코딩 및 디코딩을 위한 시스템 및 방법에 관한 것이다.
컨텍스트 기반 적응형 이진 산술 코딩(context-based adaptive binary arithmetic coding; CABAC)은 H.264/AVC MAIN 및 HIGH 프로파일(profile) 표준에 규정된 엔트로피 코딩 방식(entropy coding scheme)이다.
도 1은 H.264 표준 하에서 H.264/AVC HIGH 프로파일 레벨 4.1 비트 스트림과 같은 전형적인 비트 스트림의 구조를 나타내는 개략적인 도면이다.
도 1을 참조하면, 비트 스트림(bit stream)(10)은 복수의 데이터 슬라이스(data slice)들을 포함할 수 있고, 이러한 데이터 슬라이스들 각각은 슬라이스 헤더 레이어(slice header layer)(11) 및 슬라이스 데이터 레이어(slice data layer)(12)를 포함할 수 있다. 슬라이스 데이터 레이어(12)는 복수의 마크로 블 록(macro block; MB)(13)들을 포함할 수 있고, 마크로 블록(MB)(13) 각각은 하나 이상의 신택스 엘리먼트(syntax element; SE)(14)들을 포함할 수 있다. 이러한 신택스 엘리먼트(SE)(14)들 각각은 값(value)을 가질 뿐만 아니라, "0" 또는 "1"과 같은 이진 값(binary value)이 반복되는 하나 이상의 이진(BIN)(15)을 포함할 수 있다.
컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 인코딩(encoding) 및 디코딩(decoding)을 위한 알고리즘(algorithm)은 아래에서 간단하게 논의된다.
도 2a는 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩을 위한 알고리즘을 나타내는 플로우 도면이다.
도 2a를 참조하면, 슬라이스 데이터 레이어 내의 첫 번째 신택스 엘리먼트(SE)를 인코딩하기 전에 컨텍스트 모델(context model; CM)들의 459개 세트들은 단계(20)에서 초기화된다. 이러한 컨텍스트 모델(CM)들 각각은 6비트의 확률 상태 인덱스(probability state index; pStateIdx) 및 이진 값을 갖는 1비트의 최대 확률 심볼(most probability symbol; valMPS)을 포함한다. 신택스 엘리먼트(SE)를 인코딩하기 위하여 이진화(binarization), 컨텍스트 모델 선택(context model selection), 이진 산술 인코딩(binary arithmetic encoding) 및 비트 생성(bit generation)을 포함하는 네 개의 중요한 단계들이 요구될 수 있다. 단계(21)에서 신택스 엘리먼트(SE)는 그 값에 의하여 하나 이상의 이진 비트로 구성된 이진 스트링(bin string)으로 변환된다. 다음으로, 단계(22)에서 컨텍스트 모델 인덱스(context model index; ctxIdx)에 기초하여 이진 스트링 내의 각각의 이진을 위 하여 컨텍스트 모델(CM)들의 459개 세트들 중에서 하나가 선택될 수도 있다. 단계(23)에서 이진 산술 코더(binary arithmetic coder; BAC)는 선택된 컨텍스트 모델(CM)에 응답하여 이진을 인코딩할 수 있다. 이진을 인코딩한 후에 이진 산술 코더(BAC)는 재정규화(renormalization)를 수행하고, 단계(24)에서 선택된 컨텍스트 모델(CM)을 업데이트한다. 이후에, 단계(25)에서 인코딩된 비트 데이터가 생성될 수 있다.
도 2b는 컨텍스트 기반 적응형 이진 산술 코딩의 디코딩을 위한 알고리즘을 나타내는 플로우 도면이다.
도 2b를 참조하면, 신택스 엘리먼트(SE)의 이진을 디코딩하기 전에 컨텍스트 모델 선택(context model selection), 이진 산술 디코딩(binary arithmetic decoding) 및 역이진화(de-binarization)를 포함하는 세 개의 중요한 단계들이 요구될 수 있다. 단계(22)에서 이진을 위한 컨텍스트 모델(CM)은 컨텍스트 모델 인덱스(ctxIdx)에 기초하여 선택된다. 여기서, 컨텍스트 모델 인덱스(ctxIdx)는 이웃 블록(neighbor block)들로부터의 정보이거나 이전에 디코딩된 이진들에 의해서 결정된 값 또는 상수(constant)일 수 있다. 단계(26)에서 이진 상술 디코더(binary arithmetic decoder; BAD)는 선택된 컨텍스트 모델(CM)에 응답하여 이진을 디코딩할 수 있다. 또한, 단계(24)에서 이진 상술 디코더(BAD)는 선택된 컨텍스트 모델(CM)을 업데이트하고, 이진의 값을 출력한다. 컨텍스트 모델(CM)의 업데이트 단계 및 이진 값의 출력 단계는 신택스 엘리먼트(SE)를 위해 이진 스트링이 생성될 때까지 반복된다. 이후에, 디코딩된 이진 스트링은 역이진화(de-binarized)되어 신 택스 엘리먼트(SE)의 값을 생성한다.
도 2a 및 도 2b로부터, 컨텍스트 모델 초기화(context model initialization) 및 컨텍스트 모델 선택(context model selection)과 같은 몇몇 프로세스(process)들은 코딩 및 디코딩 방식들에 공통적임을 알 수 있다. 따라서 컨텍스트 기반 적응형 이진 상술 코딩의 인코딩 및 디코딩 방식들을 통합하는 시스템을 구축하는 것은 바람직할 수 있다. 게다가, 파이프라인 아키텍쳐(pipeline architecture)에서 컨텍스트 기반 적응형 이진 상술 코딩의 인코딩 및 디코딩을 처리하는 시스템을 구축하는 것도 바람직할 수 있다.
본 발명의 목적은 컨텍스트 기반 적응형 이진 산술 코딩 및 디코딩을 위한 시스템 및 방법을 제공하는 것이다.
본 발명의 실시예들에 따르면 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템이 제공될 수 있다. 상기 시스템은 인코딩되는 제1 이진 및 디코딩될 제2 이진 중에서 하나의 이진을 위한 인덱스 값을 계산하는 계산 장치, 클러스터 내에 컨텍스트 모델들을 저장하는 메모리 장치 및 상기 하나의 컨텍스트 모델에 기초하여 상기 제1 이진을 인코딩하기 위한 인코더 및 하나의 컨텍스트 모델에 기초하여 상기 제2 이진을 디코딩하기 위한 디코더 중에서 하나로서 역할을 하는 이진 산술 유닛을 포함하고, 여기서, 상기 제1 이진 및 상기 제2 이진 중에서 상기 하나의 이진을 위한 상기 인덱스 값은 상기 하나의 컨텍스트 모델과 관련된다.
또한, 본 발명의 실시예들에 따르면 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법이 제공될 수 있다. 상기 방법은 제1 클럭 사이클에서, 다수의 M 이진들을 갖는 신택스 엘리먼트와 관련된 컨텍스트 모델들을 독출하고, 적어도 하나 이상의 이웃 블록들로부터 정보를 획득하며, 상기 신택스 엘리먼트를 위한 상기 적어도 하나 이상의 이웃 블록들로부터의 상기 정보에 기초하여 변수를 계산하는 단계, 제2 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 제1 이진을 위한 제1 인덱스 값을 계산하고, 상기 제1 인덱스 값에 기초하여 상기 제1 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계, 제3 클럭 사이클에서, 상기 제1 이진과 관련된 상기 하나의 컨텍스트 모델에 기초하여 인코딩 프로세스 및 디코딩 프로세스 중 하나에서 상기 제1 이진을 프로세싱하고, 상기 제1 이진을 프로세싱 한 이후에 상기 하나의 컨텍스트 모델을 업데이트하는 단계, 상기 제3 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 제2 이진을 위한 제2 인덱스 값을 계산하고, 상기 제2 인덱스 값에 기초하여 상기 제2 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계 및 제4 클럭 사이클에서, 상기 제2 이진과 관련된 상기 하나의 컨텍스트 모델에 기초하여 상기 인코딩 프로세스 및 상기 디코딩 프로세스 중 하나에서 상기 제2 이진을 프로세싱하고, 상기 제2 이진을 프로세싱 한 이후에 상기 하나의 컨텍스트 모델을 업데이트하는 단계를 포함한다.
나아가, 본 발명의 실시예들에 따르면 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법이 제공될 수 있다. 상기 방법은 제1 클럭 사이클에서, 제1 신택스 엘리먼트와 관련된 컨텍스트 모델들을 독출하고, 적어도 하나 이상의 이웃 블록으로부터 정보를 획득하며, 상기 적어도 하나 이상의 이웃 블록들로부터의 상기 정보에 기초하여 변수를 계산하는 단계, 제2 클럭 사이클에서, 상기 변수에 기초하여 상기 제1 신택스 엘리먼트의 제1 이진을 위한 제1 인덱스 값을 계산하고, 상기 제1 인덱스 값에 기초하여 상기 제1 신택스 엘리먼트의 상기 제1 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계, 상기 제2 클럭 사이클에서, 데이터 프로세싱에 있어 상기 제1 신택스 엘리먼트와 쌍으로 일어나는 제2 신택스 엘리먼트와 관련된 컨텍스트 모델들을 독출하는 단계, 제3 클럭 사이클에서, 상기 제1 신택스 엘리먼트의 상기 제1 이진과 관련된 상기 하나의 컨텍스트 모델에 기초하여 상기 제1 신택스 엘리먼트의 상기 제1 이진을 디코딩하고, 상기 제1 신택스 엘리먼트의 상기 제1 이진의 값을 획득하는 단계, 상기 제3 클럭 사이클에서, 상기 변수에 기초하여 상기 제2 신택스 엘리먼트의 제1 이진을 위한 제1 인덱스 값을 계산하고, 상기 제1 신택스 엘리먼트의 상기 제1 이진의 상기 값의 하나의 레벨에 응답하여 상기 제1 인덱스 값에 기초하여 상기 제2 신택스 엘리먼트의 상기 제1 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계 및 상기 제3 클럭 사이클에서, 상기 변수에 기초하여 상기 제1 신택스 엘리먼트의 제2 이진을 위한 제2 인덱스 값을 계산하고, 상기 제1 신택스 엘리먼트의 상기 제1 이진의 상기 값의 다른 하나의 레벨에 응답하여 상기 제2 인덱스 값에 기 초하여 상기 제1 신택스 엘리먼트의 상기 제2 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계를 포함한다.
본 발명의 추가적인 특징들 및 이점들은 후속하는 설명에서 보다 명백하게 설명될 것이다. 본 발명의 특징들 및 이점들은 첨부된 청구항에서 특별하게 지시된 요소들 및 조합들의 수단에 의하여 이해되어지고 달성될 수 있을 것이다.
상술한 일반적인 설명 및 다음의 상세한 설명은 모두 예시적인 것으로서 단지 설명을 위한 것이므로, 청구된 본 발명을 한정하는 것이 아님을 이해하여야 할 것이다.
본 발명은 효율적인 파이프라인 아키텍쳐를 이용함으로써 높은 작업량을 가지면서도 낮은 비용으로 구현될 수 있는 컨텍스트 기반 적응형 이진 산술 코딩 및 디코딩을 위한 시스템 및 방법을 제공할 수 있다.
이하, 첨부한 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥 상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "이루어진다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 성분, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 구성 성분, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 가능하다면, 같은 참조 번호들은 같은 또는 유사한 파트(part)들을 지칭하기 위하여 도면들 전체에서 사용될 수 있을 것이다.
도 3a는 본 발명에 따른 전형적인 시스템 내의 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩을 위한 파이프라인 스테이지들을 나타내는 개략적인 플로우 도면이다.
도 3a를 참조하면, 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩을 위한 파이프라인 스테이지(pipeline stage)들은, 예를 들면, 이진화 스테이지(binarization stage), 컨텍스트 모델 선택 스테이지(context model selection stage), 이진 산술 인코딩 스테이지(binary arithmetic encoding stage), 비트 생성 스테이지(bit generation stage) 등을 포함할 수 있다. 상기 이진화 스테이지에 있어서, 신택스 엘리먼트(SE)의 값은 이진 스트링으로 변환될 수 있다. 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)은 신택스 엘리먼트(SE)의 타입(type)에 의존하는 다섯 가지 정도의 이진화 방식들을 사용한다. 또한, 이러한 다섯 가지의 방식들은 고정 길이(fixed length; FL) 방식, 유너리(unary; U) 방식, 트런케이티드 유너리(truncated unary; TU) 방식, 트리 구조(tree structure) 방식 및 연결된 유너리/k차 지수 골롬(concatenated unary/k-th order Exp-Golomb; UEGk) 방식을 포함한다. 이러한 다섯 가지 방식들 및 비트 스트링의 최대 길이는 아래 표 1에 나타나 있다.
[표 1]
이진화 타입 신택스 엘리먼트의 타입 이진 스트링의 최대 길이
fixed length (FL) mb_skip_flag·pred_mode_falg · rem_pred_mode· mb_field_decoding_flag· transform_size_8x8_flag· end_of_slice· significant_coef_flag· last_significant_coef_flag· coef_sign_flag 7
tree structure mb_type·sub_mb_typ 13
unary (U) ref_idx·mb_qp_delt 32
truncated unary (TU) intra_chroma_pred_mod 3
FL+TU coded_block_patter 6
TU+UEGk mvd·coefficient_abs_level_minus 45
컨텍스트 모델 선택 스테이지에 있어서, 신택스 엘리먼트(SE)의 각각의 레귤라 이진(regular bin)의 인코딩을 용이하게 하기 위해서 컨텍스트 모델 인덱스(ctxIdx)에 기초하여 신택스 엘리먼트(SE)의 각각의 레귤라 이진을 위해 컨텍스트 모델(CM)들의 459개 세트들 중에서 하나가 선택된다. 이러한 컨텍스트 모델 인덱스(ctxIdx)는 아래 수학식 1에 의하여 얻어진다.
ctxIdx = ctxCatOffset + ctxIdxOffset + ctxIdxInc
여기서, 변수(ctxIdxOffset, ctxCatOffset)는 신택스 엘리먼트(SE)의 타입 및 나머지 블록(residual block)들의 타입에 의해서 각각 확인될 수 있다. 또한, 변수(ctxIdxInc)는 다음 수학식 2 및 수학식 3에 의해서 얻어질 수 있다.
condTermFlag = a*condTermFlagA + b*condTermFlagB + c
Figure 112008066332912-pat00001
ctxIdxInc =
상기 수학식 2의 변수들(a, b, c)은 상수이고, 상기 수학식 3의 변수(condTermFlagA, condTermFlagB)는 이웃 블록(neighbor block)들로부터의 정보에 기초하여 계산된다. 예를 들어, 변수(condTermFlagA)는 레프트 블록(left block) 또는 마크로 블록으로부터의 정보에 의하여 확인될 수 있으며, 변수(condTermFlagB)는 탑 블록(top block) 또는 마크로 블록으로부터의 정보에 의하여 확인될 수 있다.
또한, 상기 컨텍스트 모델 선택 스테이지는 네 가지 정도의 서브 스테이지(sub-stage)들로 나누어질 수 있다. 즉, 이웃 블록의 정보를 얻는(GNB) 서브 스테이지, 변수(condTermFlag)를 계산하는(CTF) 서브 스테이지, 컨텍스트 모델 인덱스(ctxIdx)를 계산하는(CCI) 서브 스테이지, 컨텍스트 모델(CM)을 얻는(CML) 서브 스테이지 등으로 나누어질 수 있다. 이웃 블록 정보를 얻는(GNB) 서브 스테이지는 변수(condTermFlag)를 계산하는(CTF) 서브 스테이지 이전에 수행된다. 이웃 블록 정보를 얻는(GNB) 서브 스테이지 및 변수(condTermFlag)를 계산하는(CTF) 서브 스테이지는 이진화 스테이지에서 동시에(in parallel) 수행될 수 있다.
이진 산술 인코딩 스테이지에 있어서, 레귤라 엔진(regular engine), 바이패스 엔진(bypass engine) 및 터미네이트 엔진(terminate engine)을 포함하는 세 개의 인코딩 엔진(encoding engine)들이 사용될 수 있다. 변수(codILow, codIRange)는 슬라이스 내에서 제1 마크로 블록을 인코딩하는 초기에 초기화될 수 있다. 변수(codILow, codIRange)의 값들은 인코딩 프로세스(encoding process) 동안에 변경될 수 있다. 이진 스트링 내의 각각의 이진은 세 개의 인코딩 엔진들 중에서 하나에 의해 인코딩될 수 있다. 여기서, 6비트의 확률 상태 인덱스(pStateIdx) 및 1비트의 최대 확률 심볼(valMPS)로 구성된 상응하는 컨텍스트 모델(CM)은 이진을 인코딩하는 데에 있어서 레귤라 엔진을 위하여 요구된다. 또한, 선택된 컨텍스트 모델(CM)은 레귤라 인코딩 프로세스(regular encoding process) 동안에 업데이트될 수 있다.
변수(codIRange)의 값이 "256" 보다 작은 경우에는 재정규화 프로세스(renormalization process)가 이진 산술 인코딩 스테이지에서 요구될 수 있다. 변수들(codILow, codIRange)은 그들의 값이 "256" 보다 작지 않을 때까지 두 배(doubled)로 될 수 있다. 그 사이에, 인코딩된 비트 데이터는 비트 생성 스테이지에서 반복적으로 생성될 수 있다.
도 3b는 전형적인 시스템 내의 컨텍스트 기반 적응형 이진 산술 코딩의 디코딩을 위한 파이프라인 스테이지들을 나타내는 개략적인 플로우 도면이다.
도 3b를 참조하면, 전형적인 시스템 내의 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 디코딩을 위한 파이프라인 스테이지들은, 예를 들면, 컨텍스트 모델 선택 스테이지, 이진 산술 디코딩 스테이지 및 역이진화 스테이지를 포함할 수 있다. 컨텍스트 모델 스테이지에서, 컨텍스트 모델(CM)은 계산된 컨텍스트 모델 인덱스(ctxIdx)에 기초하여 선택될 수 있다. 컨텍스트 모델 인덱스(ctxIdx)는 앞서 설명한 바와 같이, 이전에 디코딩된 이진들이거나 이웃 블록들로부터의 정보에 의해 정해지는 값 또는 상수일 수 있다. 신택스 엘리먼트(SE)의 이진은 선택된 컨텍스트 모델(CM)에 기초하여 이진 산술 스테이지에서 디코딩될 수 있다. 또한, 선택된 컨텍스트 모델(CM)은 업데이트될 수 있으며, 이진 값이 생성될 수 있다. 컨텍스트 모델(CM)의 업데이트 단계 및 이진 값의 출력 단계는 신택스 엘리먼트(SE)를 위하여 이진 스트링이 생성될 때까지 반복될 수 있다. 이후, 디코딩된 이진 스트링은 신택스 엘리먼트(SE)의 값을 생성하기 위하여 역이진화(de-binarized)된다. 뿐만 아니라, 변수(codIRange)의 값이 "256" 보다 작을 때, 재정규화 프로세스가 이진 산술 디코딩 스테이지 내의 레귤라 디코딩 엔진(regular decoding engine)을 위하여 요구될 수 있다. 변수(codIRange)가 "256" 보다 작지 않을 때까지 변수(codIRange)는 두 배 정도로 될 수 있고, 변수(codIOffset)는 디코딩된 비트 스트림으로부터 1비트 데이터를 연결(concatenate)시킬 수 있다.
도 3c는 전형적인 시스템 내의 컨텍스트 기반 적응형 이진 산술 코딩의 인코 딩 및 디코딩을 위한 파이프라인 스테이지들을 나타내는 개략적인 플로우 도면이다.
도 3c를 참조하면, 전형적인 시스템 내의 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 인코딩 및 디코딩을 위한 파이프라인 스테이지들은 도 3a에 도시된 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 인코딩 스테이지들을 도 3b에 도시된 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 디코딩 스테이지들과 통합한다. 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 인코딩 프로세스 동안, 이진화 스테이지 및 비트 생성 스테이지가 수행되며, 역이진화 스테이지는 수행되지 않는다. 반면, 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 디코딩 프로세스 동안에 이진화 스테이지 및 비트 생성 스테이지는 수행되지 않고, 역이진화 스테이지가 수행된다.
도 4는 본 발명에 따른 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩 및 디코딩을 위한 전형적인 시스템을 나타내는 도면이다.
도 4를 참조하면, 시스템(40)은 이진기(binarizer; BZ)(41), 계산 장치들(42, 43), 이진 산술 유닛(BAU)(44), 역이진기(de-binarizer; DB)(45), 비트 생성기(BG)(46) 및 메모리 장치들(31 내지 39)을 포함할 수 있다. 인코딩 프로세스 또는 디코딩 프로세스에 앞서 컨텍스트 모델(CM)들은 초기화될 수 있다. 컨텍스트 모델(CM)들의 459개 세트들을 초기화하기 위한 변수들은 메모리(31), 예를 들어, 1762×16 비트의 읽기 전용 메모리(read only memory; ROM)에 저장될 수 있다. 초기화 모듈(initializing module)(47)은 컨텍스트 모델(CM)들의 459개 세트들을 초 기화한 후, 슬라이스 헤더 레이어에서 초기화된 컨텍스트 모델(CM)들을 메모리(32), 예를 들면, 싱글 포트 랜덤 억세스 메모리(single-port random access memory; RAM) 내의 클러스터(cluster)에 입력하도록 구성될 수 있다. 컨트롤러(도시되지 않음)의 제어 하에서, 컨텍스트 모델 클러스터(context model cluster)들 중에서 하나는 메모리(32)로부터 불러올(fetched) 수 있고, 컨텍스트 모델 독출(context model read; CMR) 동작을 거쳐 메모리(33)로 독출될 수 있다. 메모리(33)는 레지스터 뱅크(register bank)를 포함할 수 있으나 이에 한정되는 것은 아니다. 컨텍스트 모델 독출(CMR) 동작은 컨텍스트 모델 선택 스테이지 중에서 일부 및 이진화 스테이지를 포함할 수 있는 스테이지(GNB/CTF/BZ) 동안에 실행될 수 있다.
이진기(41)는 스테이지(GNB/CTF/BZ)에서 신택스 엘리먼트(SE)의 값을 이진 스트링으로 이진화하도록 구성될 수 있다. 동일한 스테이지에서, 하나 이상의 이웃 블록으로부터 정보가 획득(GNB)될 수 있다. 예를 들어, 탑 블록 또는 마크로 블록으로부터의 정보는 버퍼(34)에 저장될 수 있으며, 레프트 블록 또는 마크로 블록으로부터의 정보는 다른 버퍼(35)에 저장될 수 있다. 제1 계산 장치(42)는 상기 수학식 2에 따라 하나 이상의 이웃 블록으로부터의 정보에 기초하여 이진 스트링 내의 이진을 위한 변수(condTermFlag)를 계산하도록 구성될 수 있다. 예를 들어, 상기 표 1에 리스트되어 있는 신택스 엘리먼트(mb_skip_flag)에 있어서, 레프트 마크로 블록의 신택스 엘리먼트(mb_skip_flag)는 "1"이거나 또는 레프트 마크로 블록이 이용 가능하지 않을 때는 변수(CondTermFlagA)가 "0"으로 설정된다. 그렇지 않은 경 우에는 변수(CondTermFlagA)는 "1"로 설정된다. 이와 유사하게, 변수(condTermFlagB)는 탑 블록 또는 마크로 블록으로부터의 정보에 의하여 결정될 수 있다. 이진기(41) 및 제1 계산 장치(42)의 출력들은 제1 레지스터(36)에 저장될 수 있다.
컨텍스트 모델 선택 스테이지의 다른 부분인 컨텍스트 모델 인덱스(ctxIdx)를 계산하는(CCI) 스테이지 및 컨텍스트 모델(CM)을 얻는(CML) 스테이지에 있어서, 제2 계산 장치(43)는 위에서 상기 수학식 1에 기초하여 컨텍스트 모델 인덱스(ctxIdx)를 계산하도록 구성될 수 있다. 제2 계산 장치(43)로부터의 계산된 컨텍스트 모델(CM)에 기초하여 컨텍스트 모델(CM)은 메모리(33)로부터 불러질 수 있다. 메모리(33)로부터의 컨텍스트 모델(CM)에 기초하여, 제1 rLPS는 제1 룩업 테이블(lookup table; LUT)(51), 예를 들어, 8×256 비트의 룩업 테이블(LUT)로부터 생성될 수 있다. 컨텍스트 모델(CM)의 6비트 확률 상태 인덱스(pStateIdx)에 의해 제1 룩업 테이블(LUT)(51)로부터 확인될 수 있는 제1 rLPS의 값은 이진 산술 유닛(BAU)(44) 내에서 이후의 인코딩 프로세스 또는 디코딩 프로세스에서 사용될 수 있다. 제1 rLPS는 멀티플렉서(48)로의 제1 입력으로서 사용될 수 있다. 제2 룩업 테이블(LUT)(52)로부터의 제2 rLPS는 멀티플렉서(48)로의 제2 입력으로 사용될 수 있다. 제2 rLPS는 이진 산술 유닛(BAU)(44)으로부터의 업데이트된 컨텍스트 모델(CM)에 기초하여 제2 룩업 테이블(LUT)(52)에 의해 생성될 수 있다. 제1 rLPS 및 제2 rLPS 중의 하나가 멀티플렉서(48)에 의해서 선택되어 제2 레지스터(37)에 저장될 수 있다. 본 발명의 일 실시예에 있어서, 멀티플렉서(48)는 현재의 이진을 위해 선택된 컨텍스트 모델 인덱스(ctxIdx)가 이전의 이진을 위해 선택된 컨텍스트 모델 인덱스(ctxIdx)와 다른 경우에 제1 rLPS를 출력할 수 있으며, 현재 이진을 위해 선택된 컨텍스트 모델 인덱스(ctxIdx)가 이전의 이진을 위해 선택된 컨텍스트 모델 인덱스(ctxIdx)와 동일한 경우에는 제2 rLPS를 출력할 수 있다. 이러한 실시예에서, 도시된 제1 룩업 테이블(LUT)(51) 및 제2 룩업 테이블(LUT)(52)은 분리된 룩업 테이블(LUT)들이다. 그러나, 다른 실시예에 따르면 제1 룩업 테이블(LUT)(51) 및 제2 룩업 테이블(LUT)(52)은 동일한 룩업 테이블(LUT)일 수 있다.
이진 산술 유닛(BAU)(44)은 신택스 엘리먼트(SE)의 타입 및 이진 인덱스(binIdx)에 따라 레귤라 이진, 바이패스 이진 및 터미네이트 이진을 인코딩하도록 구성될 수 있다. 몇 가지 신택스 요소들과 그들의 상응하는 인코딩 엔진들은 다음 표 2에 리스트 되어 있다.
[표 2] 신택스 요소들을 위한 상응하는 코딩 엔진들
신택스 요소 코딩 엔진
mb_type (SI slice) 레귤라 모드
mb_type (I slice) 레귤라 모드
mb_type (P, SP slice) 레귤라 모드
mb_type (B slice) 레귤라 모드
sub_mb_type (P, SP slice) 레귤라 모드
sub_mb_type (B slice) 레귤라 모드
mb_skip_flag (P, SP slice) 레귤라 모드
mb_skip_flag (B slice) 레귤라 모드
mvd_10[][][0], mvd11[][][0] 레귤라 모드 + 바이패스 모드
mvd_10[][][1], mvd11[][][1] 레귤라 모드 + 바이패스 모드
ref_idx_10, ref_idx_11 레귤라 모드
mb_qp_delta 레귤라 모드
intra_chroma_pred_mode 레귤라 모드
prev_intra4x4_pred_mode_flag prev_intra8x8_pred_mode_flag 레귤라 모드
rem_intra4x4_pred_mode rem_intra8x8_pred_mode 레귤라 모드
mb_field_decoding_flag 레귤라 모드
coded_block_pattern 레귤라 모드
transform_size_8x8_flag 레귤라 모드
end_of_slice 터미네이트 모드
coded_block_flag 레귤라 모드
significant_coef_flag 레귤라 모드
last_significant_coef_flag 레귤라 모드
coeff_abs_level_minus1 레귤라 모드 + 바이패스 모드
coeff_sign_flag 바이패스 모드
초기화된 컨텍스트 모델(CM)들은 컨텍스트 모델 독출(CMR) 동작을 통하여 메모리(32)로부터 메모리(33)로 독출될 수 있다. 레귤라 이진이 프로세스되는 경우에는 업데이트된 컨텍스트 모델(CM)이 메모리(33)에 기입될 필요가 있을 수 있다. 이에 따라, 인코딩된 이진은 인코딩된 비트 스트림을 생성하도록 구성될 수 있는 비트 생성기(46)로 전달될 수 있다. 비트 생성기(46)는 파이포(first-in-first-out; FIFO) 장치(38), 예를 들어, 8×11 비트 레지스터로부터 파라미터들(EncodeFlush, low_renorm, range_lnz_renorm)을 불러 오고, 이진 길이(bits_len) 및 비트 데이터(bits_data)를 포함하는 인코딩된 이진 데이터를 생성할 수 있다. 컨텍스트 모델 선택 스테이지 및 이진 산술 인코딩 스테이지는 신택스 엘리먼트(SE)의 모든 이진들이 완전하게 인코딩될 때까지 반복될 수 있다.
또한, 이진 산술 유닛(BAU)(44)은 신택스 엘리먼트(SE)의 타입 및 이진 인덱스에 따라 레귤라 이진, 바이패스 이진, 터미네이트 이진 등을 디코딩하도록 구성될 수 있다. 초기화된 컨텍스트 모델(CM)들은 컨텍스트 모델 독출(CMR) 동작을 통하여 메모리(32)로부터 메모리(33)로 독출될 수 있다. 디코딩된 이진은 버퍼(39)로 전달될 수 있다. 이진이 디코딩된 경우에는 선택된 컨텍스트 모델(CM)은 업데이트되고, 메모리(33)에 다시 기입될 수 있다. 역이진기(de-binarizer)(45)는 신택스 엘리먼트(SE)의 디코딩이 완료되었을 때, 신택스 엘리먼트(SE)의 모든 이진들이 디코딩 되었는지 판단하고, 버퍼(39) 내의 디코딩된 이진들에 기초하여 신택스 엘리먼트의 값(SE_value)을 출력할 수 있다. 신택스 엘리먼트의 값(SE_Value)은 나머지 블록(residual block)의 플로우(flow) 분석을 프로세싱하기 위하여 H.264 분석 유닛(도시되지 않음) 또는 나머지 유닛(residual unit)(도시되지 않음)으로 보내질 수 있다. 하나의 예에서, 신택스 엘리먼트의 값(SE_Value)은 이웃 버퍼 업데이트(neighbor buffer update; NBU) 동작을 통하여 제1 버퍼(34) 및 제2 버퍼(35)에 기입될 수 있다. 역이진기(45)가 신택스 엘리먼트(SE)의 디코딩이 완료되었는지 검출하고, 완료 신호(SE_Valid)를 예를 들어, 논리 하이(logic high)에 설정할 때까지 컨텍스트 모델 선택 스테이지 및 이진 산술 디코딩/역이진화 스테이지들은 반복될 수 있다. 신택스 엘리먼트(SE)의 모든 이진들이 디코딩된 경우에는 메모리(33) 내의 업데이트된 컨텍스트 모델(CM)들은 컨텍스트 모델 기입(CMW) 동작을 통하여 메모리(32)에 다시 기입될 수 있다.
도 5a는 본 발명의 일 실시예에 따른 컨텍스트 기반 적응형 이진 산술 코딩 의 인코딩을 위한 파이프라인 메커니즘을 나타내는 개략도이다.
도 5a 뿐만 아니라, 도 3a, 도 3c 및 도 4도 참조하면, 사이클(0)에서, 신택스 엘리먼트(SE)의 값은 이진들(Bin 0, Bin 1, Bin 2)을 포함하는 이진 스트림으로 이진화(BZ)될 수 있다. 이웃 블록들로부터의 정보는 획득(GNB)될 수 있고, 변수(condtermFlag)는 계산(CTF)될 수 있다. 또한, 초기화된 컨텍스트 모델(CM)들은 독출(CMR)될 수 있다. 이웃 블록들로부터의 정보가 획득(GNB)되는 것에서 변수(condtermFlag)가 계산(CTF)되는 것으로의 점 화살표(dotted arrowhead)는 변수(condtermFlag)가 계산(CTF)되기 이전에 이웃 블록들로부터의 정보가 획득(GNB)되는 것이 수행됨을 나타낸다.
사이클(1)에서, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있으며, 이진(Bin 0)을 위한 컨텍스트 모델(CM)은 선택되고 로딩(CML)될 수 있다.
사이클(2)에서, 이진(Bin 0)은 인코딩(BAU)될 수 있고, 이진(Bin 0)을 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다. 또한, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있고, 이진(Bin 1)을 위한 컨텍스트 모델(CM)은 선택되고 로딩(CML)될 수 있다.
사이클(3)에서, 이진(Bin 0)을 위한 비트 스트림은 생성(BG)될 수 있다. 이진(Bin 1)은 인코딩(BAU)되고, 이진(Bin 1)을 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다. 또한, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있고, 이진(Bin 2)을 위한 컨텍스트 모델(CM)은 선택되고 로딩(CML)될 수 있다.
사이클(4)에서, 이진(Bin 1)을 위한 이진 스트림은 생성(BG)될 수 있다. 이 진(Bin 2)은 인코딩(BAU)될 수 있으며, 이진(Bin 2)을 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다.
사이클(5)에서, 이진(Bin 2)을 위한 이진 스트림은 생성(BG)될 수 있다.
파이프라인 메커니즘(pipeline mechanism)에서, 데이터 포워딩 테크닉(data forwarding technique)은 컨텍스트 모델(CM)을 얻는(CML) 동작과 선택된 컨텍스트 모델(CM)을 업데이트하는(CMU) 동작 사이의 데이터 의존성(data dependency)을 처리(handle)하기 위하여 사용될 수 있다. 이진(bin(i+1))의 컨텍스트 모델 인덱스(ctxIdx)가 이진(bin(i))의 컨텍스트 모델 인덱스(ctxIdx)와 동일한 경우에, 스테이지 이진 산술 유닛(BAU)으로부터의 이진(bin(i))의 업데이트된 컨텍스트 모델(CM)은 멀티플렉서(48)에 의하여 선택될 수 있다. 다른 데이터 의존성은 이진(bin(i+1))의 컨텍스트 모델 인덱스(ctxIdx)가 계산(CCI)되는 동작이 이진(bin(i))의 값을 요구할 수 있는 컨텍스트 모델 인덱스(ctxIdx) 계산(CCI) 및 이진 산술 유닛(BAU) 스테이지들에서 일어날 수 있다. 데이터 의존성들을 위한 파이프라인 동작들은 기껏해야 마크로 블록을 위한 다섯 싸이클들을 소비(cost)할 수 있다. 특히, 이진(Bin 1)은 싸이클(0) 및 싸이클(1) 동안에 두 개의 싸이클들을 위하여 아이들(idle)하고, 이진(Bin 2)은 싸이클(0)부터 싸이클(2) 동안에 세 개의 싸이클들을 위하여 아이들한다.
도 5b는 본 발명의 일 실시예에 따른 컨텍스트 기반 적응형 이진 산술 코딩의 디코딩을 위한 파이프라인 메커니즘을 나타내는 개략도이다.
도 5b 뿐만 아니라, 도 3b, 도 3c 및 도 4를 참조하면, 이웃 블록들로부터의 정보는 획득(GNB)될 수 있고, 변수(condtermFlag)는 계산(CTF)될 수 있다. 또한, 초기화된 컨텍스트 모델(CM)들은 독출(CMR)될 수 있다.
싸이클(1)에서, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있으며, 이진(Bin 0)을 위한 컨텍스트 모델(CM)은 선택되고 로딩(CML)될 수 있다.
사이클(2)에서, 이진(Bin 0)은 디코딩(BAU)될 수 있고, 이진(Bin 0)을 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다. 업데이트된 컨텍스트 모델(CM)은 메모리(33)로 보내어질 수 있다. 이진(Bin 0)을 위하여 디코딩된 이진 값은 버퍼(39)에 저장될 수 있다. 역이진기(DB)(45)는 신택스 엘리먼트(SE)를 위한 디코딩 프로세스가 완료되지 않음을 검출하고, 신호(SE_Valid)를, 예를 들어, 논리 로우(logic low)로 설정한다. 또한, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있고, 이진(Bin 1)을 위한 컨텍스트 모델(CM)은 선택되고, 로딩(CML)될 수 있다.
사이클(3)에서, 이진(Bin 1)은 디코딩(BAU)될 수 있고, 이진(Bin 1)을 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다. 업데이트된 컨텍스트 모델(CM)은 메모리(33)로 보내어질 수 있다. 이진(Bin 1)을 위하여 디코딩된 이진 값은 버퍼(39)에 저장될 수 있다. 역이진기(DB)(45)는 신택스 엘리먼트(SE)를 위한 디코딩 프로세스가 완료되지 않음을 검출하고, 신호(SE_Valid)를 논리 로우로 유지시킨다. 또한, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있으며, 이진(Bin 2)을 위한 컨텍스트 모델(CM)은 선택되고, 로딩(CML)될 수 있다.
사이클(4)에서, 사이클(3)과 유사하게, 이진(Bin 2)은 디코딩(BAU)될 수 있 고, 이진(Bin 2)을 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다. 업데이트된 컨텍스트 모델(CM)은 메모리(33)로 보내어질 수 있다. 이진(Bin 2)을 위하여 디코딩된 이진 값은 버퍼(39)에 저장될 수 있다. 역이진기(DB)(45)는 신택스 엘리먼트(SE)를 위한 디코딩 프로세스가 완료되지 않음을 검출하고, 신호(SE_Valid)를 논리 로우로 유지시킨다. 또한, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있으며, 이진(Bin 3)을 위한 컨텍스트 모델(CM)은 선택되고, 로딩(CML)될 수 있다.
사이클(5)에서, 이진(Bin 3)은 디코딩(BAU)될 수 있고, 이진(Bin 3)을 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다. 업데이트된 컨텍스트 모델(CM)은 메모리(33)로 보내어질 수 있다. 이진(Bin 3)을 위하여 디코딩된 이진 값은 버퍼(39)에 저장될 수 있다. 역이진기(DB)(45)는 신택스 엘리먼트(SE)를 위한 디코딩 프로세스가 완료됨을 검출하고, 신호(SE_Valid)를 논리 하이로 설정한다.
이어서, 사이클(6)에서, 메모리(33)에 저장된 업데이트된 컨텍스트 모델(CM)들은 컨텍스트 모델 기입(CMW) 동작을 통하여 메모리(32)에 다시 기입된다. 또한, 역이진기(45)는 신택스 엘리먼트의 값(SE_Value)을 생성하고, 이 신호(SE_Value)를 이웃 버퍼 업데이트(NBU) 동작을 통하여 제1 버퍼(34) 및 제2 버퍼(35)에 기입한다.
다시 도 5a 및 도 5b를 참조하면, 컨텍스트 모델 독출(CMR) 동작은 하나의 클럭(clock) 내에서 실행될 수 있다. 컨텍스트 모델 독출(CMR)이 하나의 클럭 사이클(cycle) 내에서 완료될 수 있음을 확실하게 하기 위하여, 동일한 신택스 엘리먼 트(SE)에 의하여 사용되는 컨텍스트 모델(CM)들은 메모리(33)의 동일한 주소에 위치될 수 있다.
도 6a는 종래 기술에 따른 메모리 내의 컨텍스트 모델들의 전형적인 배치를 나타내는 개략도이다. 메모리의 최소 데이터 버스 넓이(minimum data bus width)는 105(15×7)비트일 수 있다. 왜냐하면, 각각의 컨텍스트 모델(CM)이 7비트들의 길이(length)를 갖고, 모든 신택스 엘리먼트(SE)들 중에서 가장 긴 신택스 엘리먼트(significant_coeff_flag)가 컨텍스트 모델(CM)들의 15개 세트들을 이용하기 때문이다. 그러나 이러한 배치는 메모리 공간의 비경제적인 사용을 유발한다.
도 6b는 본 발명에 따른 메모리 내의 컨텍스트 모델들의 전형적인 배치를 나타내는 개략도이다. 본 발명의 일 실시예에 있어서, 컨텍스트 모델들의 459개 세트들은 아래 리스트된 바와 같이 38개 클러스터들로 나누어질 수 있다.
(1) mb_skip_flag and mb_field_decoding_flag for I and P slice
(2) mb_skip_flag and mb_field_decoding_flag for B slice
(3) mb_type and sub_mb_type for I and P slice
(4) mb_type and sub_mb_type for B slice
(5) prev_intra4x4_pred_mode_flag, prev_intra8x8_pred_mode_flag, rem_intra4x4_pred_mode, rem_intra8x8_pred_mode, intra_chroma_pred_mode and mb_qp_delta
(6) mvd_l0 and mvd_l1
(7) ref_idx_l0, ref_idx_l1 and transform_size_8x8_flag
(8) coded_block_pattern
(9) coded_block_flag and coeff_abs_level_minus1 for luma DC block
(10) coded_block_flag and coeff_abs_level_minus1 for luma AC block
(11) coded_block_flag and coeff_abs_level_minus1 for 4x4 luma block
(12) coded_block_flag and coeff_abs_level_minus1 for chroma DC block
(13) coded_block_flag and coeff_abs_level_minus1 for chroma AC block
(14) coded_block_flag and coeff_abs_level_minus1 for 8x8 luma block
(15) significant_coeff_flag for frame-coded luma DC block
(16) last_significant_coeff_flag for frame-coded luma DC block
(17) significant_coeff_flag for field-coded luma DC block
(18) last_significant_coeff_flag for field-coded luma DC block
(19) significant_coeff_flag for frame-coded luma AC block
(20) last_significant_coeff_flag for frame-coded luma AC block
(21) significant_coeff_flag for field-coded luma AC block
(22) last_significant_coeff_flag for field-coded luma AC block
(23) significant_coeff_flag for frame-coded 4x4 luma block
(24) last_significant_coeff_flag for frame-coded 4x4 luma block
(25) significant_coeff_flag for field-coded 4x4 luma block
(26) last_significant_coeff_flag for field-coded 4x4 luma block
(27) significant_coeff_flag for frame-coded chroma DC block
(28) last_significant_coeff_flag for frame-coded chroma DC block
(29) significant_coeff_flag for field-coded chroma DC block
(30) last_significant_coeff_flag for field-coded chroma DC block
(31) significant_coeff_flag for frame-coded chroma AC block
(32) last_significant_coeff_flag for frame-coded chroma AC block
(33) significant_coeff_flag for field-coded chroma AC block
(34) last_significant_coeff_flag for field-coded chroma AC block
(35) significant_coeff_flag for frame-coded 8x8 luma block
(36) last_significant_coeff_flag for frame-coded 8x8 luma block
(37) significant_coeff_flag for field-coded 8x8 luma block and
(38) last_significant_coeff_flag for field-coded 8x8 luma block.
상기 38개 클러스터들은 아래에 주어지는 규칙(rule)들에 따라 메모리에 배치될 수 있다.
[규칙 1]
#CMs(SE
Figure 112008066332912-pat00002
) + #CMs(SE
Figure 112008066332912-pat00003
) + … + #CMs(SE
Figure 112008066332912-pat00004
) ≤ 15
여기서, SE
Figure 112008066332912-pat00005
는 i번째 신택스 엘리먼트(SE)를 나타내고, #CMs(SE
Figure 112008066332912-pat00006
)는 SE
Figure 112008066332912-pat00007
를 인코딩 또는 디코딩하는데 사용되는 컨텍스트 모델(CM)들의 개수를 나타낸다.
[규칙 2]
SE
Figure 112008066332912-pat00008
, SE
Figure 112008066332912-pat00009
, ...,SE
Figure 112008066332912-pat00010
은 인코딩 또는 디코딩 순서이다.
[규칙 1] 및 [규칙 2]를 적용함으로써, 컨텍스트 모델(CM)들의 개수가 "15"와 같거나 작은 경우에는 신택스 엘리먼트(SE)를 위해 사용되는 컨텍스트 모델(CM)들이 메모리의 동일한 주소의 클러스터 내에 배열될 수 있다.
도 6b를 참조하면, 각각의 클러스터는 메모리 공간의 하나의 엔트리(entry)를 차지하고, 하나의 클럭 사이클에서, 예를 들어, 15개 정도의 7비트 레지스터들로 구성된 레지스터 뱅크에 로딩될 수 있다. 이러한 배치는 메모리 공간의 사용을, 예를 들면, 662바이트(byte)에서 460바이트 정도로 감소시킬 수 있다. 또한, 이러한 배치는 메모리 억세스 빈도(memory access frequency)를 낮출 수 있다. 예를 들어, 신택스 엘리먼트(mb_field_decoding_flag)를 위한 컨텍스트 모델(CM)들은 신택스 엘리먼트(mb_skip_flag)를 프로세스한 이후에 분리된 엔트리에 로딩될 필요가 없을 수 있다. 이는, 신택스 엘리먼트(SE)들 모두는 동일한 클러스터(Cluster 2)에 속하고, 신택스 엘리먼트(mb_skip_flag)를 디코딩하는 동안에 이미 로딩될 수 있기 때문이다. 도 6a에 도시한 배치와 비교해 볼 때, 도 6b에 도시된 본 발명의 실시예들에 따른 배치는 메모리 공간의 보다 경제적인 사용을 가능하게 한다.
도 7a는 신택스 엘리먼트들 SCF[i]와 LSCF[i] 간의 컨텍스트 모델 스위칭을 나타내는 개략도이다.
도 7a를 참조하면, H.264 표준에 규정된 바와 같이, 1-이진 신택스 엘리먼트(last_significant_coeff_flag[i]; LSCF[i])는 1-이진 신택스 엘리먼트(significant_coeff_flag[i]; SCF[i])가 프로세스될 때까지 프로세스되지 않을 수 있다. 여기서, 1-이진 신택스 엘리먼트(SCF[i]) 및 1-이진 신택스 엘리먼 트(LSCF[i])를 위한 프로세싱은 인코딩 또는 디코딩을 포함할 수 있다. 본 발명의 일 실시예에 있어서, 컨텍스트 모델 스위칭(context model switching)은 1-이진 신택스 엘리먼트(SCF[i])를 위한 디코딩 프로세스가 완료되는 사이클(3) 및 1-이진 신택스 엘리먼트(LSCF[i])를 위한 디코딩 프로세스가 시작되는 사이클(4) 사이에서 일어날 수 있다. 1-이진 신택스 엘리먼트(SCF[i])는 위치(i)에 있는 계수(coefficient)가 비제로(nonzero)인지 결정할 수 있고, 1-이진 신택스 엘리먼트(LSCF[i])는 위치(i) 다음의 이후 1-이진 신택스 엘리먼트(SCF)들이 모두 제로(zero)인지를 나타낼 수 있다. 1-이진 신택스 엘리먼트(SCF[i])의 값이 "1"인 경우에 1-이진 신택스 엘리먼트(LSCF[i])가 존재한다. 이러한 경우에 있어서, 1-이진 신택스 엘리먼트(LSCF[i])의 값도 "1"인 경우, 이후의 1-이진 신택스 엘리먼트(SCF)들은 모두 제로이고, 프로세스될 필요가 없다. 반면에, 1-이진 신택스 엘리먼트(SCF[i])의 값이 "0"인 경우에, 1-이진 신택스 엘리먼트(LSCF[i])는 프로세스될 필요가 없고, 아래 표 3에 나타난 바와 같이 1-이진 신택스 엘리먼트(SCF[i+1])가 코딩될 수 있다.
[표 3] 루마(Luma) 4
Figure 112008066332912-pat00011
4 디씨(DC) 블록의 SCF 및 LSCF 쌍을 위한 예
인덱스 0 1 2 3 4 5 6 7 8 9 10 11 12 13 15 15
SCF 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0
LSCF 0 x x 0 x x x 0 1 x x x x x x x
컨텍스트 모델 스위칭은 도 7b에 도시된 파이프라인 메커니즘과 비교하였을 때, H.264 표준에 기초하여 파이프라인 동작(pipelined operation)에서 세 아이들(idle) 사이클들을 소비할 수 있다.
도 7b는 본 발명의 일 실시예에 따른 신택스 엘리먼트들 SCF[i] 및 LSCF[i]을 처리하기 위한 파이프라인 메커니즘을 나타내는 개략도이다. 또한, 도 7c는 본 발명의 일 실시예에 따른 신택스 엘리먼트를 위해 전용된(dedicated) 레지스터 뱅크를 포함하는 메모리를 나타내는 개략도이다.
도 7b를 참조하면, 사이클(0)에서, 이웃 블록들로부터의 정보가 획득(GNB)될 수 있으며, 변수(condtermFlag)는 계산(CTF)될 수 있다. 또한, 초기화된 컨텍스트 모델(CM)들 또는 1-이진 신택스 엘리먼트(SCF)를 위한 컨텍스트 모델 클러스터는 도 7c에 도시된 메모리(70)의 레지스터 뱅크(72)에 로딩(CMR)될 수 있다.
사이클(1)에서, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있고, 1-이진 신택스 엘리먼트(SCF[i])를 위한 컨텍스트 모델(CM)은 선택되고 로딩(CML)될 수 있다. 또한, 초기화된 컨텍스트 모델(CM)들 또는 1-이진 신택스 엘리먼트(LSCF)를 위한 컨텍스트 모델 클러스터는 메모리(70)의 레지스터 뱅크(71)에 로딩(CMR)될 수 있다.
사이클(2)에서, 1-이진 신택스 엘리먼트(SCF[i])는 디코딩(BAU)될 수 있고, 1-이진 신택스 엘리먼트(SCF[i])를 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다. 1-이진 신택스 엘리먼트(LSCF[i])가 존재하는 것을 의미하는 경우인 1-이진 신택스 엘리먼트(SCF[i])의 디코딩된 이진 값이 "1"인 경우, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있고, 1-이진 신택스 엘리먼트(LSCF[i])를 위한 컨텍스트 모델(CM)은 선택되고 로딩(CML)될 수 있다. 1-이진 신택스 엘리먼트(LSCF[i])가 프로세스가 될 필요가 없다는 것을 의미하는 경우인 1-이진 신택 스 엘리먼트(SCF[i])의 디코딩된 이진 값이 "0"인 경우, 컨텍스트 모델 인덱스(ctxIdx)는 계산(CCI)될 수 있고, 1-이진 신택스 엘리먼트(SCF[i+1])를 위한 컨텍스트 모델(CM)은 선택되고 로딩(CML)될 수 있다.
사이클(3)에서, 1-이진 신택스 엘리먼트(LSCF[i]) 또는 1-이진 신택스 엘리먼트(SCF[i+1])는 디코딩(BAU)될 수 있고, 1-이진 신택스 엘리먼트(LSCF[i]) 또는 1-이진 신택스 엘리먼트(SCF[i+1])를 위하여 선택된 컨텍스트 모델(CM)은 업데이트(CMU)될 수 있다. 아래 표 4는 주어진 1920×1080 해상도 비디오 시퀀스(resolution video sequence)에서 서로 다른 비트 레이트 8M, 22M, 47M 및 51M bps에서 슬라이스(slice) 당 컨텍스트 모델 스위칭의 개수를 보여준다. 본 발명에 따른 파이프라인 메커니즘은 51M bps의 비트 레이트(bit rate)에서 슬라이스 당 대략 3×382284 클럭 사이클들을 절약할 수 있다.
[표 4] 서로 다른 비트 레이트 스트림들을 위한 컨텍스트 모델 스위칭 개수
해상도 1920x1080p
비트 레이트 (bps) 8M 22M 47M 51M
슬라이스 타입 I/P/B I/P/B I/P/B I
QP 25 20 17 18
슬라이스 당 SCF 및 LSCF를 위한 컨텍스트 스위치들 48960 138720 345794 382284
도 8은 본 발명의 일 실시예에 따른 이진기를 나타내는 회로도이다. 이진기(80)는 신택스 엘리먼트(SE)의 값 및 타입에 따른 길이를 갖는 이진 스트링을 생성하도록 구성될 수 있다.
도 8을 참조하면, 이진기(80)는 다섯 개의 롬 테이블(ROM table)들(81,…,85)을 포함할 수 있다. 트리 구조 테이블(tree structure table)(81)은 신택스 엘 리먼트들(mb_type, sub_mb_type)에 의하여 사용되어 그들을 위한 이진 스트링을 생성할 수 있다. 트런케이티드 테이블(truncated table)(82)은 신택스 엘리먼트(intra_chroma_pred_mode)에 의하여 사용될 수 있다. 유너리 테이블(unary table)(83)은 신택스 엘리먼트들(ref_idx, mb_qp_delta)에 의하여 사용될 수 있다. 신택스 엘리먼트들(mvd, coefficient_abs_level_minus1)의 값들은 각각 프리픽스(prefix) 부분 및 서픽스(suffix) 부분으로 구성될 수 있다. 이러한 두 신택스 엘리먼트들의 프리픽스 부분들은 트런케이티드 유너리 코드(truncated unary code)들을 포함할 수 있다. 신택스 엘리먼트(mvd)의 서픽스 부분은 UEG3 코드이고, 신택스 엘리먼트(coefficient_abs_level_minus1)의 서픽스 부분은 UEG0 코드이다. 따라서 멀티플렉서들(801, 802)과 관련된 UEG0 테이블(84) 및 UEG3 테이블(85)은 이러한 두 신택스 엘리먼트들의 서픽스 부분들을 각각 이진화하는데 사용될 수 있다. 유너리 테이블(83) 및 멀티플렉서(803)는 프리픽스 부분들을 이진화하는데 사용될 수 있다. 연결 장치(concatenating device)(86)에서 멀티플렉서들(803, 804)로부터의 이진 스트링의 프리픽스 부분 및 서픽스 부분은 함께 연결된다. 이후, 선택 신호로서 신택스 엘리먼트(SE)의 타입을 사용하면서 이진 스트링은 멀티플렉서(805)로부터 생성될 수 있다. 이진기(80)의 전형적인 회로 동작은 도 12a를 참조하여 이후에 논의될 것이다.
도 9는 본 발명의 일 실시예에 따른 이진 산술 유닛을 나타내는 회로도이다. 이진 산술 유닛(BAU)(90)은 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 인코딩 및 디코딩을 위한 레귤라 엔진, 바이패스 엔진 및 터미네이트 엔진을 포함할 수 있 다. 변수(codIRange; range라고 표시됨) 및 변수(codILow; Low라고 표시됨)는 이진 산술 인코딩 프로세스 동안에 업데이트될 수 있다. 반면에, 변수(codIRange) 및 다른 변수(codIOffset; Offset이라고 표시됨)는 이진 산술 디코딩 프로세스 동안에 업데이트될 수 있다. H.264 표준에서 규정된 변수들(codIRange, codILow, codIOffset)을 업데이트하기 위한 알고리즘들은 참조를 위하여 아래 표 5, 표 6 및 표 7에 각기 나타나 있다.
[표 5] 이진 산술 유닛(BAU) 인코더 및 디코더를 위한 변수(codIRange)의 업데이트를 위한 알고리즘
codIRange
디코더 레귤라 Offset >= rMPS rLPS
Offset < rMPS rMPS ( = codIRange rLPS)
바이패스 Offset_New >= rMPS codIRange
Offset_New < rMPS codIRange
터미네이션 Offset >= rMPS codIRange - 2
Offset < rMPS codIRange - 2
인코더 레귤라 binVal != valMPS rLPS
binVal = valMPS rMPS ( = codIRange rLPS)
바이패스 binVal != 0 codIRange
binVal = 0 codIRange
터미네이션 binVal != 0 codIRange
binVal = 0 codIRange - 2
[표 6] 이진 산술 유닛(BAU) 디코더를 위한 변수(codIOffset)의 업데이트를 위한 알고리즘
codIOffset
디코더 레귤라 codIOffset >= rMPS codIOffset - rMPS
codIOffset < rMPS codIOffset
바이패스 Offset_New >= rMPS Offset_New(= codIOffset << 1 | read_bits(1) ) rMPS
Offset_New < rMPS Offset_New
터미네이션 codIOffset >= rMPS codIOffset
codIOffset < rMPS codIOffset
[표 7] 이진 산술 유닛(BAU) 인코더를 위한 변수(codILow)의 업데이트를 위한 알고리즘
codILow
인코더 레귤라 binVal != valMPS codILow + rMPS
binVal = valMPS codILow
바이패스 binVal != 0 (codILow << 1) + codIRange
binVal = 0 codILow
터미네이션 binVal != 0 codILow + rMPS
binVal = 0 codILow
상기 표 5 내지 표 7은 세 변수들의 어떤 값이 서로 다른 엔진 및 조건 하에서 재할당될 수 있는지를 보여주고 있다. 도 9를 참조하면, 변수들(Low, Offset, range)에 추가하여, 변수들(bin Val, valMPS, rLPS)이 이진 산술 유닛(BAU)(90)에 입력될 수 있다. 변수(bin Val)의 값은 도 8에 도시된 이진기(80)의 멀티플렉서(805)로부터 생성될 수 있고, 변수(valMPS) 및 변수(rLPS)의 값은 상응하는 컨텍스트 모델(CM)이 확인될 때 확인될 수 있다. 이진 산술 유닛(BAU)(90)은 변수들(range, Offset, Low)의 값을 업데이트하고, 업데이트된 값들(new_range, new_offset new_low)을 출력할 수 있다. 이진 산술 유닛(BAU)(90)의 전형적인 회로 동작은 도 12b를 참조하여 이후에 논의될 것이다.
이진 산술 유닛(BAU)(90)은 이진 산술 유닛(BAU) 인코더 및 디코더를 위한 변수(codIRange)가 "256"이하일 때, 재정규화 프로세스를 수행하는 재정규화 장치(renormalization device)를 포함할 수 있다.
도 10은 본 발명의 실시예들에 따른 재정규화 장치를 나타내는 회로도이다.
도 10을 참조하면, 재정규화 장치(100)는 이진 산술 유닛(BAU)(90)으로부터 값들(new_range, new_offset new_low)을 수신할 수 있다. 리딩 제로 검출(leading zero detection; LZD)(101) 장치는 변수들(codIRange, codILow, codIOffset)을 위하여 왼쪽으로 쉬프트될 비트들의 개수를 결정하는 데 사용될 수 있다. 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)이 인코딩 모드에 있고, 변수(codIRange)가 "256"이하일 때, 세 파라미터들(range_lzn_renorm, low_renorm, EncodeFlush)은 파이포(FIFO)(102)에 들어갈 수 있다. 재정규화 장치(100)의 전형적인 회로 동작은 도 12c를 참조하여 이후에 논의될 것이다.
도 11은 본 발명의 실시예들에 따른 비트 생성기를 나타내는 회로도이다.
도 11을 참조하면, 비트 생성기(bit generator)(110)는 실행 플로우(execution flow)를 제어하도록 구성된 유한 스테이트 머신(finite state machine; FSM)을 포함할 수 있다. 리딩 제로 검출(LZD) 장치(111)는 도 10에 도시된 파이포(FIFO)(102)로부터의 변수(low_renorm)에서 선택된 변수(low_mux)를 위한 리딩 제로의 개수를 검출하기 위하여 사용될 수 있다. 리딩 원 검출(leading one detection; LOD) 장치(112)는 변수(low_mux)를 위한 리딩 원(leading one)의 개수를 검출하기 위하여 사용될 수 있다. 비트 생성기(110)는 세 출력 신호들(bit-write-enable(bwe), bits_len, bits)을 생성할 수 있다. 세 출력 신호들(bit-write-enable(bwe), bits_len, bits)에서, 신호 비트(signal bit)들은 코딩된 비트 스트림을 나타내고, 신호(bits_len)는 코딩된 비트 스트림의 길이를 나타내며, 신호(bwe)는 신호 비트들이 유효(valid)함을 나타낸다. 비트 생성기(110)의 전형적인 회로 동작은 도 12d를 참조하여 이후에 논의될 것이다.
상기 표 1에 리스트된 신택스 엘리먼트(mb_type)를 인코딩하는 전형적인 회로 동작은 도 12a 내지 도 12d를 참조하여 설명되고 도시될 것이다.
도 12a는 도 8에 도시된 이진기의 전형적인 회로 동작을 나타내는 도면이다.
도 12a를 참조하면, 신택스 엘리먼트(mb_type)는 I-슬라이스 타입 및 예를 들어 값 "25"를 갖는다. 또한, 상기 표 1에 나타난 바와 같이, 신택스 엘리먼트(mb_type)를 위한 이진화 타입은 트리 구조이다. 신택스 엘리먼트(mb_type)의 슬라이스 타입 및 값에 응답하여, 트리 구조 테이블(81)은 2비트의 이진 값 "11"을 나타내는 출력 "2'b11"을 생성할 수 있다. 멀티플렉서(805)는 "0"으로 설정된 선택 신호(se_type)에 기초하여 값 "2'b11"을 출력으로서 선택한다. 따라서, 이진기(80)는 신택스 엘리먼트(SE)의 값 "25"에 기초하여 신택스 엘리먼트(SE)를 이진 스트링 "2'b11"으로 이진화시킨다.
도 12b는 도 9에 도시된 이진 산술 유닛의 전형적인 회로 동작을 나타내는 도면이다.
도 12b를 참조하면, 이진 스트링 "2'b11"(즉, "11")의 첫 번째 이진 값인 변수(binVal)의 처음 값은 "1"이다. 이진 스트링 "2'b11"의 두 번째 이진이자 마지막 이진 값인 변수(binVal)의 다음 값 또한 "1"이다. 표시 1(1)에서, 괄호 외부의 첫 번째 "1"은 변수(binVal)의 처음 값을 나타내고, 괄호 안의 두 번째 "1"은 변수(binVal)의 다음 값을 나타낸다. 또한, 첫 번째 변수(binVal)를 코딩하는데 있어서, 변수들(valMPS, Low, range, rLPS)이 각각 처음 값 "0", "374", "458" 및 "150"을 갖는다고 가정할 수 있을 것이다. 변수(Offset)는 디코딩 프로세스에서 사용되고, 인코딩 프로세스에서는 사용되지 않아서 값을 갖지 않는다.
변수(binVal) 및 변수(valMPS)의 값들을 비교함으로써, 비교 장치(901)는 값 "0"을 출력할 수 있다. 제1 가산기(905)는 변수(range)의 값에서 변수(rLPS)의 값을 뺌으로써 값 "308"을 출력한다. 멀티플렉서들(902, 903, 906, 907, 910)을 위한 선택 신호(decoder)는 인코딩 프로세스 동안에 "0"으로 설정될 수 있고, 멀티플렉서들(902, 903, 906, 907, 910)은 출력으로서 0-입력 단자의 값을 선택할 수 있다. 본 발명의 다른 실시예에 있어서, 선택 신호(decoder)는 디코딩 프로세스 동안에 "1"로 설정될 수 있다. 이러한 방식으로, 이진 산술 유닛(BAU)(90)은 멀티플렉서들을 위한 선택 핀(selection pin)들의 값에 따라 인코딩 프로세스 동안에 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 인코더로서 역할을 할 수 있고, 디코딩 프로세스 동안에는 컨텍스트 기반 적응형 이진 산술 코딩(CABAC)의 디코더로서 역할을 할 수 있다. 또한, 멀티플렉서(904)를 위한 선택 신호(bypass)는 레귤라 이진을 인코딩할 때 "0"으로 설정될 수 있다. 더욱이, 멀티플렉서(909)를 위한 선택 신호(dec_mode)는 레귤라 이진을 인코딩할 때 "00"으로 설정될 수 있다. 제2 가산기(912)는 멀티플렉서들(904, 906)의 각각의 출력 값인 "374"와 "308"을 더함으로써 값 "682"를 출력한다. 멀티플렉서들(907, 908)을 위한 선택 신호들은 멀티플렉서(902)로부터의 출력에 의존한다. 이후에, 멀티플렉서(909)에서 출력되는 변수(new_range)의 값은 "150"이고, 멀티플렉서(910)에서 출력되는 변수(new_offset new_low)의 값은 "682"이다. 변수(new_range)의 값이 "256" 보다 작기 때문에 재정 규화 프로세스가 요구될 수 있다.
도 12c는 도 10에 도시된 재정규화 장치의 전형적인 회로 동작을 나타내는 도면이다.
도 12c를 참조하면, 이진 산술 유닛(BAU)(90)으로부터의 출력들(new_range, new_offset new_low)은 재정규화 장치(100)로의 입력으로서 역할을 할 수 있다. 리딩 제로 검출(LZD)(101)은 이진 형태로 "010010110"인 입력 값 "150"이 주어질 때, 리딩 제로의 개수가 하나이기 때문에 값 "1"을 출력할 수 있다. 리딩 제로 검출(LZD)의 출력에 기초하여, 제1 레프트 쉬프터(left shifter)(103)는 이진 형태 "010010110"을 왼쪽으로 1비트만큼 쉬프트시켜, "256" 보다 크고 변수(new_range)의 입력 값 "150"의 두 배인 새로운 이진 형태 "100101100"인 값 "300"을 만든다. 즉, 도 12b의 변수(range)는 다음 이진을 인코딩할 때 사용될 수 있는 새로운 값 "300"으로 업데이트된다. 또한, 리딩 제로 검출(LZD)의 출력에 기초하여, 제2 레프트 쉬프터(108)는 멀티플렉서(104)의 출력 값인 "682"의 이진 형태 "1010101010"을 왼쪽으로 1비트만큼 쉬프트시켜, 새로운 이진 형태 "0101010100"인 값 "340"을 만든다. AND 게이트 모듈(107)은 이진 형태 "0101010100" 및 신호(mask_bits; "10'h1ff") 즉, 10비트의 16진법의 값 "1ff" 또는 "0111111111"에 대하여 논리 AND 연산(logic AND function)을 수행하여 값 "340"을 만들 수 있다.
변수들(low_renorm, range_lzn_renorm)의 값은 각각 멀티플렉서(105, 106)의 출력 값에 의존한다. 변수(EncodeFlush)의 값은 터미네이트 엔진에 의하여 현재 인코딩된 터미네이트 이진이 제로가 아닌 값을 갖는 경우에 "0"으로 설정되고, 터미 네이트 이진이 제로 값을 갖는 경우에는 "1"로 설정된다. 변수들(low_renorm, range_lzn_renorm, EncodeFlush)의 값은 파이포(FIFO)(102)로 입력된다.
도 12d는 도 11에 도시된 비트 생성기의 전형적인 회로 동작을 나타내는 도면이다.
도 12d를 참조하면, 변수(low_renorm)는 이진 형태가 "1010101010"인 값 "682"를 갖고, 변수(range_lzn)는 재정규화 장치(100)에서 확인되는 값 "1"을 갖는다. 비트 "9"에서 비트 "4"까지 즉, "101010"은 멀티플렉서(113)에 의하여 변수(low_renorm)의 이진 형태인 "1010101010"으로부터 감산되고, 변수(low_mux)에 할당된다. 리딩 원 검출(LOD)(111)은 멀티플렉서(114)에 의하여 선택되는 변수(low_mux) 내의 리딩 원의 개수가 하나인지를 검출한다. 멀티플렉서(114)의 출력에 기초하여, 레프트 쉬프터(115)는 이진 형태인 "1010101010"을 왼쪽으로 1비트만큼 쉬프트하여 새로운 이진 형태인 "0101010100"을 만든다. "2"로 가정될 수 있는 변수(bitOutStanding)는 증분(incremented)되지 않는다. 신호(bwe)가 논리 하이이기 때문에 "0"의 값을 갖는 2비트 코드의 비트 스트림이 생성될 수 있다.
다시 도 12b를 참조하면, 첫 번째 이진이 코딩된 이후에, 두 번째 이진이자 마지막 이진이 코딩될 수 있다. 변수들(Low, range)은 첫 번째 이진을 인코딩하는 데 있어서 재정규화 장치(100) 내에서 "340" 및 "300"으로 각각 업데이트된다. 변수(valMPS) 및 변수(rLPS)의 값은 각각 "0"과 "2"로 가정된다. 마지막 이진이 인코딩되기 때문에 멀티플렉서(909)를 위한 선택 신호(dec_mode)는 "10", 터미네이트 모드로 설정될 수 있다. 변수(new_range)의 값은 "256"보다 큰 "298"이고, 이에 재 정규화 장치(100)에서 두 배로 되지 않는다. 다시 도 12c를 참조하면, 변수(range_out)의 값은 "298"과 같다.
본 발명의 컨텍스트 기반 적응형 이진 산술 코딩 및 디코딩을 위한 시스템 및 방법은 효율적인 파이프라인 아키텍쳐를 이용함으로써 높은 작업량을 가지면서도 낮은 비용으로 구현될 수 있다. 따라서, 본 발명의 컨텍스트 기반 적응형 이진 산술 코딩 및 디코딩을 위한 시스템 및 방법은 H.264/AVC MAIN 및 HIGH 프로파일 표준에 규정된 비디오 시퀀스의 인코딩 및 디코딩과 같은 컨텍스트 기반 적응형 이진 산술 코딩 및 디코딩에 적용될 수 있다.
해당 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상의 범위 내에서 상기 설명된 실시예들에 변경을 가할 수 있을 것이다. 그러므로 본 발명은 개시된 특정한 실시예들에 한정되는 것이 아니고, 첨부된 청구항에 의하여 정의된 바와 같이 본 발명의 사상 및 영역 내에서의 변경에 대해서도 그 권리 범위를 미치는 점이 이해되어야 할 것이다.
또한, 본 발명의 예시적인 실시예들을 설명하는 데 있어서, 단계들의 특정한 시퀀스로 본 발명의 방법 및/또는 프로세스를 설명하였지만, 본 발명의 방법 또는 프로세스의 범위는 여기에서 설명된 단계들의 특정한 순서에 의존하는 것이 아니며, 설명된 단계들의 특정한 시퀀스로만 한정되어서는 아니될 것이다. 본 발명에 있어서, 단계들의 다른 시퀀스들이 가능함은 해당 기술 분야에서 통상의 지식을 가진 자라면 누구나 인정할 수 있을 것이다. 그러므로 본 발명의 명세서에서 설명된 단계들의 특정한 순서는 첨부된 청구항을 한정하는 것으로 파악되어서는 안 될 것이다. 또한, 본 발명의 방법 및/또는 프로세스를 나타내는 청구항은 기재된 순서로만 단계가 수행되는 것으로 한정되어서는 안 될 것이고, 해당 기술 분야에서 통상의 지식을 가진 자라면 누구나 이러한 시퀀스들이 변화될 수 있으며 이는 본 발명의 사상 및 영역 내임을 쉽게 인식할 수 있을 것이다.
본 발명은 첨부된 도면과 관련하여 읽어질 때 보다 잘 이해되어질 것이다. 본 발명을 설명하기 위하여 선호되는 도면들의 예가 나타나 있지만, 본 발명은 도면들에 나타나 있는 정확한 배열 및 수단으로 한정되는 것이 아님을 이해하여야 할 것이다.
도 1은 H.264 표준 하에서의 전형적인 비트 스트림 구조를 나타내는 개략도이다.
도 2a는 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩을 위한 알고리즘을 나타내는 플로우 도면이다.
도 2b는 컨텍스트 기반 적응형 이진 산술 코딩의 디코딩을 위한 알고리즘을 나타내는 플로우 도면이다.
도 3a는 본 발명에 따른 전형적인 시스템 내의 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩을 위한 파이프라인 스테이지들을 나타내는 개략적인 플로우 도면이다.
도 3b는 전형적인 시스템 내의 컨텍스트 기반 적응형 이진 산술 코딩의 디코딩을 위한 파이프라인 스테이지들을 나타내는 개략적인 플로우 도면이다.
도 3c는 전형적인 시스템 내의 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩 및 디코딩을 위한 파이프라인 스테이지들을 나타내는 개략적인 플로우 도면이다.
도 4는 본 발명에 따른 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩 및 디코딩을 위한 전형적인 시스템을 나타내는 도면이다.
도 5a는 본 발명의 일 실시예에 따른 컨텍스트 기반 적응형 이진 산술 코딩의 인코딩을 위한 파이프라인 메커니즘을 나타내는 개략도이다.
도 5b는 본 발명의 일 실시예에 따른 컨텍스트 기반 적응형 이진 산술 코딩의 디코딩을 위한 파이프라인 메커니즘을 나타내는 개략도이다.
도 6a는 종래 기술에 따른 메모리 내의 컨텍스트 모델들의 전형적인 배치를 나타내는 개략도이다.
도 6b는 본 발명에 따른 메모리 내의 컨텍스트 모델들의 전형적인 배치를 나타내는 개략도이다.
도 7a는 신택스 엘리먼트들 SCF[i]와 LSCF[i] 간의 컨텍스트 모델 스위칭을 나타내는 개략도이다.
도 7b는 본 발명의 일 실시예에 따른 신택스 엘리먼트들 SCF[i]와 LSCF[i]을 처리하기 위한 파이프라인 메커니즘을 나타내는 개략도이다.
도 7c는 본 발명의 일 실시예에 따른 신택스 엘리먼트 LSCF를 위해 전용된(dedicated) 레지스터 뱅크를 포함하는 메모리를 나타내는 개략도이다.
도 8은 본 발명의 일 실시예에 따른 이진기를 나타내는 회로도이다.
도 9는 본 발명의 일 실시예에 따른 이진 산술 유닛을 나타내는 회로도이다.
도 10은 본 발명의 일 실시예에 따른 재정규화 장치를 나타내는 회로도이다.
도 11은 본 발명의 일 실시예에 따른 비트 생성기를 나타내는 회로도이다.
도 12a는 도 8에 도시된 이진기의 전형적인 회로 동작을 나타내는 도면이다.
도 12b는 도 9에 도시된 이진 산술 유닛의 전형적인 회로 동작을 나타내는 도면이다.
도 12c는 도 10에 도시된 재정규화 장치의 전형적인 회로 동작을 나타내는 도면이다.
도 12d는 도 11에 도시된 비트 생성기의 전형적인 회로 동작을 나타내는 도면이다.

Claims (30)

  1. 인코딩되는 제1 이진 및 디코딩되는 제2 이진 중에서 하나의 이진을 위한 인덱스 값을 계산하는 계산 장치;
    클러스터 내에 컨텍스트 모델들을 저장하는 메모리 장치; 및
    하나의 컨텍스트 모델에 기초하여 상기 제1 이진을 인코딩하기 위한 인코더 및 하나의 컨텍스트 모델에 기초하여 상기 제2 이진을 디코딩하기 위한 디코더 중의 하나로서 역할을 하는 이진 산술 유닛을 포함하고,
    상기 제1 이진 및 상기 제2 이진 중에서 상기 하나의 이진을 위한 상기 인덱스 값은 상기 하나의 컨텍스트 모델과 관련된 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  2. 제 1 항에 있어서, 신택스 엘리먼트의 값에 기초하여 상기 신택스 엘리먼트를 이진 스트링으로 이진화하는 이진기를 더 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  3. 제 1 항에 있어서, 상기 이진 산술 유닛은 상기 제1 이진 및 상기 제2 이진 중에서 하나의 이진의 인코딩 상태 및 디코딩 상태 중에서 하나의 상태와 관련된 값을 갖는 선택 신호에 의해 제어되는 적어도 하나 이상의 멀티플렉서를 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시 스템.
  4. 제 1 항에 있어서, 상기 이진 산술 유닛은
    상기 이진 산술 유닛에 의해 생성된 제1 출력의 상기 이진 형태에서 리딩 제로의 개수(N)를 감지하는 리딩 제로 검출기; 및
    상기 제1 출력이 미리 정해진 값보다 작은 경우에 상기 제1 출력의 상기 이진 형태를 N 비트만큼 왼쪽으로 쉬프트시키는 레프트 쉬프터를 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  5. 제 2 항에 있어서, 비트 스트링 내의 각각의 이진을 위하여 상기 비트 스트링을 생성하는 비트 생성기를 더 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  6. 제 1 항에 있어서,
    신택스 엘리먼트의 각각의 이진을 위한 이진 값을 저장하는 버퍼; 및
    상기 신택스 엘리먼트를 위한 디코딩 프로세스가 완료되었는지 검출하고, 상기 신택스 엘리먼트를 위한 상기 디코딩 프로세스가 완료된 경우에 상기 이진 값에 기초하여 상기 신택스 엘리먼트의 값을 출력하는 역이진기를 더 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  7. 제 1 항에 있어서,
    탑 블록으로부터의 정보를 저장하는 제1 버퍼; 및
    레프트 블록으로부터의 정보를 저장하는 제2 버퍼를 더 포함하고,
    상기 계산 장치는 상기 제1 버퍼 및 상기 제2 버퍼로부터의 상기 정보에 기초하여 제1 변수를 계산하는 제1 계산 모듈을 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  8. 제 7 항에 있어서, 상기 계산 장치는 상기 제1 변수의 상기 값에 기초하여 상기 인덱스 값을 계산하는 제2 계산 모듈을 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  9. 제 1 항에 있어서, 상기 이진 산술 유닛은 상기 하나의 컨텍스트 모델을 업데이트하고, 업데이트된 컨텍스트 모델을 상기 메모리 장치에 저장하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  10. 제 9 항에 있어서,
    상기 하나의 컨텍스트 모델에 응답하여 제2 변수의 제1 값을 생성하는 제1 룩업 테이블;
    상기 업데이트된 컨텍스트 모델에 응답하여 상기 제2 변수의 제2 값을 생성하는 제2 룩업 테이블; 및
    상기 제1 값 및 상기 제2 값 중에서 하나를 선택하는 멀티플렉서를 더 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  11. 제 1 항에 있어서, 상기 메모리 장치는
    신택스 엘리먼트(last_significant_coeff_flag; LSCF)를 위한 컨텍스트 모델 클러스터를 저장하기 위한 제1 레지스터 뱅크; 및
    다른 신택스 엘리먼트들을 위한 컨텍스트 모델 클러스터들을 저장하기 위한 제2 레지스터 뱅크를 포함하는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  12. 제 1 항에 있어서, 상기 메모리 장치는 다수의 어드레스들 내에 컨텍스트 모델 클러스터들을 저장하고, 상기 어드레스들 각각에 저장된 컨텍스트 모델 클러스터들은 #CMs(SE
    Figure 112008066332912-pat00012
    )+#CMs(SE
    Figure 112008066332912-pat00013
    )+..+#CMs(SE
    Figure 112008066332912-pat00014
    )
    Figure 112008066332912-pat00015
    P를 만족하며, SE
    Figure 112008066332912-pat00016
    는 i번째 신택스 엘리먼트를 나타내고, #CMs(SE
    Figure 112008066332912-pat00017
    )는 상기 SE
    Figure 112008066332912-pat00018
    를 프로세싱 하는데 사용되는 컨텍스트 모델들의 개수를 나타내며, SE
    Figure 112008066332912-pat00019
    , SE
    Figure 112008066332912-pat00020
    , ...,SE
    Figure 112008066332912-pat00021
    은 프로세싱 순서에 따라 배열되어 있고, P는 모든 신택스 엘리먼트들 중에서 신택스 엘리먼트의 컨텍스트 모델들의 세트들의 최대 개수를 나타내는 것을 특징으로 하는 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템.
  13. 제1 클럭 사이클에서, 다수의 M 이진들을 갖는 신택스 엘리먼트와 관련된 컨텍스트 모델들을 독출하고, 적어도 하나 이상의 이웃 블록들로부터 정보를 획득하며, 상기 신택스 엘리먼트를 위한 상기 적어도 하나 이상의 이웃 블록들로부터의 상기 정보에 기초하여 변수를 계산하는 단계;
    제2 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 제1 이진을 위한 제1 인덱스 값을 계산하고, 상기 제1 인덱스 값에 기초하여 상기 제1 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    제3 클럭 사이클에서, 상기 제1 이진과 관련된 상기 하나의 컨텍스트 모델에 기초하여 인코딩 프로세스 및 디코딩 프로세스 중 하나에서 상기 제1 이진을 프로세싱하고, 상기 제1 이진을 프로세싱 한 이후에 상기 하나의 컨텍스트 모델을 업데이트하는 단계;
    상기 제3 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 제2 이진을 위한 제2 인덱스 값을 계산하고, 상기 제2 인덱스 값에 기초하여 상기 제2 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계; 및
    제4 클럭 사이클에서, 상기 제2 이진과 관련된 상기 하나의 컨텍스트 모델에 기초하여 상기 인코딩 프로세스 및 상기 디코딩 프로세스 중 하나에서 상기 제2 이진을 프로세싱하고, 상기 제2 이진을 프로세싱 한 이후에 상기 하나의 컨텍스트 모델을 업데이트하는 단계를 포함하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  14. 제 13 항에 있어서,
    제(i+1) 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 i번째 이진을 위한 i번째 인덱스 값을 계산하고, 상기 i번째 인덱스 값에 기초하여 상기 i번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계; 및
    제(i+2) 클럭 사이클에서(단, i
    Figure 112008066332912-pat00022
    M), 상기 i번째 이진과 관련된 상기 하나의 컨텍스트 모델에 기초하여 상기 인코딩 프로세스 및 상기 디코딩 프로세스 중 상기 하나에서 상기 i번째 이진을 프로세싱하고, 상기 i번째 이진을 프로세싱 한 이후에 상기 컨텍스트 모델을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  15. 제 13 항에 있어서,
    제(i+1) 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 i번째 이진을 위한 i번째 인덱스 값을 계산하고, 상기 i번째 인덱스 값에 기초하여 상기 i번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    제(i+2) 클럭 사이클에서, 상기 i번째 이진을 인코딩하고, 상기 i번째 이진과 관련된 상기 하나의 컨텍스트 모델을 업데이트하는 단계; 및
    제(i+3) 클럭 사이클에서, 상기 i번째 이진을 위한 코딩된 비트 스트링을 생성하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  16. 제 15 항에 있어서,
    상기 제(i+1) 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 (i+1)번째 이진을 위한 (i+1)번째 인덱스 값을 계산하고, 상기 (i+1)번째 인덱스 값에 기초하여 상기 (i+1)번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    상기 제(i+3) 클럭 사이클에서, 상기 (i+1)번째 이진을 인코딩하고, 상기 (i+1)번째 이진과 관련된 상기 하나의 컨텍스트 모델을 업데이트하는 단계; 및
    제(i+4) 클럭 사이클에서, 상기 (i+1)번째 이진을 위한 코딩된 비트 스트링을 생성하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  17. 제 16 항에 있어서,
    상기 제(i+2) 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 (i+2)번째 이진을 위한 (i+2)번째 인덱스 값을 계산하고, 상기 (i+2)번째 인덱스 값에 기초하여 상기 (i+2)번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    상기 제(i+4) 클럭 사이클에서, 상기 (i+2)번째 이진을 인코딩하고, 상기 (i+2)번째 이진과 관련된 상기 하나의 컨텍스트 모델을 업데이트하는 단계; 및
    제(i+5) 클럭 사이클에서, 상기 (i+2)번째 이진을 위한 코딩된 비트 스트링을 생성하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  18. 제 13항에 있어서,
    제(i+1) 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 i번째 이진을 위한 i번째 인덱스 값을 계산하고, 상기 i번째 인덱스 값에 기초하여 상기 i번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    제(i+2) 클럭 사이클에서, 상기 i번째 이진을 디코딩하고, 상기 i번째 이진과 관련된 상기 하나의 컨텍스트 모델을 업데이트 하는 단계; 및
    상기 제(i+2) 클럭 사이클에서, 상기 i번째 이진을 위한 디코딩된 이진 값을 저장하고, 상기 신택스 엘리먼트를 위한 상기 디코딩 프로세스가 완료되었는지를 검출하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  19. 제 18 항에 있어서,
    제(i+2) 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 (i+1)번째 이진을 위한 (i+1)번째 인덱스 값을 계산하고, 상기 (i+1)번째 인덱스 값에 기초하여 상기 (i+1)번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    제(i+3) 클럭 사이클에서, 상기 (i+1)번째 이진을 디코딩하고, 상기 (i+1)번째 이진과 관련된 상기 하나의 컨텍스트 모델을 업데이트하는 단계; 및
    상기 제(i+3)번째 클럭 사이클에서, 상기 (i+1)번째 이진을 위한 디코딩된 이진 값을 저장하고, 상기 신택스 엘리먼트를 위한 상기 디코딩 프로세스가 완료되었는지 검출하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  20. 제 19 항에 있어서,
    제(i+3) 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 (i+2)번째 이진을 위한 (i+2)번째 인덱스 값을 계산하고, 상기 (i+2)번째 인덱스 값에 기초하여 상기 (i+2)번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    제(i+4) 클럭 사이클에서, 상기 (i+2)번째 이진을 디코딩하고, 상기 (i+2)번째 이진과 관련된 상기 하나의 컨텍스트 모델을 업데이트 하는 단계; 및
    상기 제(i+4) 클럭 사이클에서, 상기 (i+2)번째 이진을 위한 디코딩된 이진 값을 저장하고, 상기 신택스 엘리먼트를 위한 상기 디코딩 프로세스가 완료되었는지 검출하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  21. 제 20 항에 있어서,
    제(M+1) 클럭 사이클에서, 상기 변수에 기초하여 상기 신택스 엘리먼트의 M번째 이진을 위한 M번째 인덱스 값을 계산하고, 상기 M번째 인덱스 값에 기초하여 상기 M번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    제(M+2) 클럭 사이클에서, 상기 M번째 이진을 디코딩하고, 상기 M번째 이진과 관련된 상기 하나의 컨텍스트 모델을 업데이트 하는 단계; 및
    상기 제(M+2) 클럭 사이클에서, 상기 M번째 이진을 위한 디코딩된 이진 값을 저장하고, 상기 신택스 엘리먼트를 위한 상기 디코딩 프로세스가 완료되었는지를 검출하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  22. 제 21 항에 있어서,
    제(M+2) 클럭 사이클에서, 상기 신택스 엘리먼트를 역이진화하고, 상기 신택스 엘리먼트의 값을 획득하는 단계; 및
    제(M+3) 클럭 사이클에서, 상기 i번째(단, i는 1부터 M사이) 이진 각각에 관련된 백 컨텍스트 모델들을 기입하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  23. 제 22 항에 있어서,
    상기 제(M+3) 클럭 사이클에서, 탑 블럭으로부터의 정보를 저장하는 제1 버 퍼 및 레프트 블록으로부터의 정보를 저장하는 제2 버퍼에 상기 신택스 엘리먼트의 상기 값을 기입하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  24. 제 13 항에 있어서,
    상기 제1 클럭 사이클에서, 상기 신택스 엘리먼트의 값에 기초하여 상기 신택스 엘리먼트를 이진 스트링으로 이진화하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  25. 제 13 항에 있어서, 메모리 장치의 다수의 어드레스들 내의 클러스터에 컨텍스트 모델을 저장하는 단계를 더 포함하고,
    상기 어드레스들 각각에 저장된 컨텍스트 모델 클러스터들은 #CMs(SE
    Figure 112008066332912-pat00023
    )+#CMs(SE
    Figure 112008066332912-pat00024
    )+..+#CMs(SE
    Figure 112008066332912-pat00025
    )
    Figure 112008066332912-pat00026
    P를 만족하며, SE
    Figure 112008066332912-pat00027
    는 i번째 신택스 엘리먼트를 나타내고, #CMs(SE
    Figure 112008066332912-pat00028
    )는 상기 SE
    Figure 112008066332912-pat00029
    를 프로세싱 하는데 사용되는 컨텍스트 모델들의 개수를 나타내며, SE
    Figure 112008066332912-pat00030
    , SE
    Figure 112008066332912-pat00031
    , ...,SE
    Figure 112008066332912-pat00032
    은 프로세싱 순서에 따라 배열되어 있고, P는 모든 신택스 엘리먼트들 중에서 신택스 엘리먼트의 컨텍스트 모델들의 세트들의 최대 개수를 나타내는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  26. 제1 클럭 사이클에서, 제1 신택스 엘리먼트와 관련된 컨텍스트 모델들을 독출하고, 적어도 하나 이상의 이웃 블록으로부터 정보를 획득하며, 상기 적어도 하나 이상의 이웃 블록들로부터의 상기 정보에 기초하여 변수를 계산하는 단계;
    제2 클럭 사이클에서, 상기 변수에 기초하여 상기 제1 신택스 엘리먼트의 제1 이진을 위한 제1 인덱스 값을 계산하고, 상기 제1 인덱스 값에 기초하여 상기 제1 신택스 엘리먼트의 상기 제1 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    상기 제2 클럭 사이클에서, 데이터 프로세싱에 있어 상기 제1 신택스 엘리먼트와 쌍으로 일어나는 제2 신택스 엘리먼트와 관련된 컨텍스트 모델들을 독출하는 단계;
    제3 클럭 사이클에서, 상기 제1 신택스 엘리먼트의 상기 제1 이진과 관련된 상기 하나의 컨텍스트 모델에 기초하여 상기 제1 신택스 엘리먼트의 상기 제1 이진을 디코딩하고, 상기 제1 신택스 엘리먼트의 상기 제1 이진의 값을 획득하는 단계;
    상기 제3 클럭 사이클에서, 상기 변수에 기초하여 상기 제2 신택스 엘리먼트의 제1 이진을 위한 제1 인덱스 값을 계산하고, 상기 제1 신택스 엘리먼트의 상기 제1 이진의 상기 값의 하나의 레벨에 응답하여 상기 제1 인덱스 값에 기초하여 상기 제2 신택스 엘리먼트의 상기 제1 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계; 및
    상기 제3 클럭 사이클에서, 상기 변수에 기초하여 상기 제1 신택스 엘리먼트 의 제2 이진을 위한 제2 인덱스 값을 계산하고, 상기 제1 신택스 엘리먼트의 상기 제1 이진의 상기 값의 다른 하나의 레벨에 응답하여 상기 제2 인덱스 값에 기초하여 상기 제1 신택스 엘리먼트의 상기 제2 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계를 포함하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  27. 제 26 항에 있어서, 상기 제1 신택스 엘리먼트는 significant_coeff_flag를 포함하고, 상기 제2 신택스 엘리먼트는 last_significant_coeff_flag를 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  28. 제 26 항에 있어서,
    제(i+1) 클럭 사이클에서, 상기 변수에 기초하여 상기 제1 신택스 엘리먼트의 i번째 이진을 위한 i번째 인덱스 값을 계산하고, 상기 i번째 인덱스 값에 기초하여 상기 제1 신택스 엘리먼트의 상기 i번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계;
    제(i+2) 클럭 사이클에서, 상기 제1 신택스 엘리먼트의 상기 i번째 이진과 관련된 상기 하나의 컨텍스트 모델에 기초하여 상기 제1 신택스 엘리먼트의 상기 i번째 이진을 디코딩하는 단계;
    상기 제(i+2) 클럭 사이클에서, 상기 변수에 기초하여 상기 제2 신택스 엘리 먼트의 i번째 이진을 위한 i번째 인덱스 값을 계산하고, 상기 제1 신택스 요소의 상기 i번째 이진의 상기 값의 하나의 레벨에 응답하여 상기 i번째 인덱스 값에 기초하여 상기 제2 신택스 엘리먼트의 상기 i번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계; 및
    상기 제(i+2) 클럭 사이클에서, 상기 변수에 기초하여 상기 제1 신택스 엘리먼트의 (i+1)번째 이진을 위한 (i+1)번째 인덱스 값을 계산하고, 상기 제1 신택스 요소의 상기 i번째 이진의 상기 값의 다른 하나의 레벨에 응답하여 상기 (i+1)번째 인덱스 값에 기초하여 상기 제1 신택스 엘리먼트의 상기 (i+1)번째 이진을 위한 상기 컨텍스트 모델들 중에서 하나를 로딩하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  29. 제 26 항에 있어서, 메모리 장치의 다수의 어드레스들 내의 클러스터에 컨텍스트 모델을 저장하는 단계를 더 포함하고,
    상기 어드레스들 각각에 저장된 컨텍스트 모델 클러스터들은 #CMs(SE
    Figure 112008066332912-pat00033
    )+#CMs(SE
    Figure 112008066332912-pat00034
    )+..+#CMs(SE
    Figure 112008066332912-pat00035
    )
    Figure 112008066332912-pat00036
    P를 만족하며, SE
    Figure 112008066332912-pat00037
    는 i번째 신택스 엘리먼트를 나타내고, #CMs(SE
    Figure 112008066332912-pat00038
    )는 상기 SE
    Figure 112008066332912-pat00039
    를 프로세싱 하는데 사용되는 컨텍스트 모델들의 개수를 나타내며, SE
    Figure 112008066332912-pat00040
    , SE
    Figure 112008066332912-pat00041
    , ...,SE
    Figure 112008066332912-pat00042
    은 프로세싱 순서에 따라 배열되어 있고, P는 모든 신택스 엘리먼트들 중에서 신택스 엘리먼트의 컨텍스트 모델들의 세 트들의 최대 개수를 나타내는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
  30. 제 26 항에 있어서,
    상기 제2 신택스 엘리먼트(last_significant_coeff_flag; LSCF)를 위한 컨텍스트 모델 클러스터를 저장하는 제1 레지스터 뱅크를 할당하는 단계; 및
    상기 제1 신택스 엘리먼트를 포함하는 다른 신택스 엘리먼트들을 위한 컨텍스트 모델 클러스터들을 저장하기 위한 제2 레지스터 뱅크를 할당하는 단계를 더 포함하는 것을 특징으로 하는 파이프라인 플로우에서 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 하는 방법.
KR1020080092603A 2007-10-16 2008-09-22 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템 및 방법 KR100955418B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US98025607P 2007-10-16 2007-10-16
US60/980,256 2007-10-16
US12/189,457 2008-08-11
US12/189,457 US7777654B2 (en) 2007-10-16 2008-08-11 System and method for context-based adaptive binary arithematic encoding and decoding

Publications (2)

Publication Number Publication Date
KR20090038808A KR20090038808A (ko) 2009-04-21
KR100955418B1 true KR100955418B1 (ko) 2010-05-04

Family

ID=40352378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080092603A KR100955418B1 (ko) 2007-10-16 2008-09-22 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US7777654B2 (ko)
EP (3) EP2978136A1 (ko)
JP (1) JP4886755B2 (ko)
KR (1) KR100955418B1 (ko)
TW (1) TWI396446B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013109026A1 (ko) * 2012-01-18 2013-07-25 엘지전자 주식회사 엔트로피 부호화/복호화 방법 및 그 장치

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008289125A (ja) * 2007-04-20 2008-11-27 Panasonic Corp 算術復号化装置及びその方法
JP4382840B2 (ja) * 2007-08-20 2009-12-16 Nttエレクトロニクス株式会社 2値算術符号化装置
US20100040136A1 (en) * 2008-08-13 2010-02-18 Horizon Semiconductors Ltd. Method for performing binarization using a lookup table
TWI482499B (zh) * 2008-10-03 2015-04-21 Ind Tech Res Inst 影像訊號處理裝置和方法
CN101500164B (zh) * 2008-12-31 2011-09-28 深圳市同洲电子股份有限公司 算术编码的打包输出的方法和装置
KR101527085B1 (ko) * 2009-06-30 2015-06-10 한국전자통신연구원 인트라 부호화/복호화 방법 및 장치
JP5245014B2 (ja) 2009-10-20 2013-07-24 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 領域に依存した算術符号化マッピングルールを使用した、オーディオ符号器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および、コンピュータプログラム
WO2011086065A1 (en) 2010-01-12 2011-07-21 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries
US7961122B1 (en) * 2010-02-03 2011-06-14 Himax Media Solutions, Inc. Multi-bin CABAC bypass bin decoder
KR102159896B1 (ko) 2010-04-13 2020-09-25 지이 비디오 컴프레션, 엘엘씨 샘플 배열 멀티트리 세부분할에서 계승
CN106231335B (zh) 2010-04-13 2019-07-02 Ge视频压缩有限责任公司 解码器、解码方法、编码器以及编码方法
TWI678916B (zh) 2010-04-13 2019-12-01 美商Ge影像壓縮有限公司 樣本區域合倂技術
CN106067985B (zh) 2010-04-13 2019-06-28 Ge视频压缩有限责任公司 跨平面预测
TWI403170B (zh) * 2010-05-21 2013-07-21 Univ Nat Chiao Tung 背景調適性二進制算術解碼裝置及其解碼方法
US9591320B2 (en) * 2010-07-15 2017-03-07 Texas Instruments Incorporated Context and bypass encoding video
US9036701B2 (en) * 2010-07-28 2015-05-19 Nokia Corporation Method and apparatus for providing complexity balanced entropy coding
EP2950532B1 (en) 2010-08-17 2018-11-14 Samsung Electronics Co., Ltd Video decoding apparatus using using transformation unit of variable tree structure
CN102231830B (zh) * 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
CN102595108B (zh) * 2011-01-05 2017-02-01 中兴通讯股份有限公司 一种语法元素的编码方法及装置
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
USRE47366E1 (en) 2011-06-23 2019-04-23 Sun Patent Trust Image decoding method and apparatus based on a signal type of the control parameter of the current block
EP4228264A1 (en) 2011-06-23 2023-08-16 Sun Patent Trust Image decoding device, image encoding device
US9106919B2 (en) 2011-06-24 2015-08-11 Panasonic Intellectual Property Corporation Of America Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
RU2603552C2 (ru) 2011-06-24 2016-11-27 Сан Пэтент Траст Способ декодирования изображения, способ кодирования изображения, устройство декодирования изображения, устройство кодирования изображения и устройство кодирования и декодирования изображения
MY169636A (en) 2011-06-27 2019-04-24 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
CN107105254B (zh) 2011-06-28 2020-03-20 太阳专利托管公司 编码方法及编码装置
KR101751671B1 (ko) * 2011-06-28 2017-06-27 닛본 덴끼 가부시끼가이샤 영상 양자화 파라미터 복호 방법
US9258565B1 (en) * 2011-06-29 2016-02-09 Freescale Semiconductor, Inc. Context model cache-management in a dual-pipeline CABAC architecture
US8798139B1 (en) 2011-06-29 2014-08-05 Zenverge, Inc. Dual-pipeline CABAC encoder architecture
MX2013010892A (es) 2011-06-29 2013-12-06 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
KR102060619B1 (ko) 2011-06-30 2019-12-30 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치
MX339141B (es) 2011-06-30 2016-05-13 Panasonic Ip Corp America Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
KR101464978B1 (ko) 2011-07-01 2014-11-26 삼성전자주식회사 계층적 구조의 데이터 단위를 이용한 엔트로피 부호화 방법 및 장치, 복호화 방법 및 장치
HUE049138T2 (hu) 2011-07-11 2020-09-28 Sun Patent Trust Kép dekódolási eljárás, kép dekódoló berendezés
US9509989B2 (en) * 2011-08-04 2016-11-29 Hfi Innovation Inc. Method and apparatus for reordered binarization of syntax elements in CABAC
CN108391128A (zh) * 2011-11-08 2018-08-10 三星电子株式会社 用于对视频进行解码的设备
EP2777273B1 (en) 2011-11-11 2019-09-04 GE Video Compression, LLC Efficient multi-view coding using depth-map estimate for a dependent view
EP3657795A1 (en) 2011-11-11 2020-05-27 GE Video Compression, LLC Efficient multi-view coding using depth-map estimate and update
IN2014CN02865A (ko) * 2011-11-15 2015-07-03 Intel Corp
EP2781091B1 (en) 2011-11-18 2020-04-08 GE Video Compression, LLC Multi-view coding with efficient residual handling
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US9860527B2 (en) 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US9654772B2 (en) 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
AU2013211004B2 (en) 2012-01-20 2016-03-17 Ge Video Compression, Llc Transform coefficient coding
CN103220509B (zh) * 2012-01-21 2017-12-15 中兴通讯股份有限公司 自适应控制算术编码bin数量的方法、编码器和解码器
TWI514851B (zh) * 2012-02-15 2015-12-21 Novatek Microelectronics Corp 影像編碼/解碼系統與其方法
CN103260023A (zh) * 2012-02-21 2013-08-21 联咏科技股份有限公司 图像编码/解码系统与其方法
US10158855B2 (en) * 2012-03-08 2018-12-18 Sun Patent Trust Image decoding method, and image decoding apparatus using a selected context related to neighboring coefficients
US9584802B2 (en) * 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
CA2873694A1 (en) * 2012-06-01 2013-12-05 Sharp Kabushiki Kaisha Arithmetic decoding device, image decoding device, arithmetic encoding device, and image encoding device
WO2014053519A1 (en) 2012-10-01 2014-04-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scalable video coding using inter-layer prediction of spatial intra prediction parameters
US10009606B2 (en) * 2012-10-11 2018-06-26 Nvidia Corporation Low power context adaptive binary arithmetic decoder engine
KR101909863B1 (ko) 2013-07-08 2018-10-18 미디어텍 싱가폴 피티이. 엘티디. 3d 비디오 코딩에서 단순화된 cabac 코딩의 방법
US9455743B2 (en) * 2014-05-27 2016-09-27 Qualcomm Incorporated Dedicated arithmetic encoding instruction
US9854253B2 (en) * 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
CN110891180B (zh) 2018-09-10 2023-11-17 华为技术有限公司 视频解码方法及视频解码器
CN113038140A (zh) * 2019-12-24 2021-06-25 扬智电子科技(中国)有限公司 视频解码方法与视频解码装置
CN113141508B (zh) * 2020-01-17 2024-03-26 阿里巴巴集团控股有限公司 算术编码器及实现算术编码的方法和图像编码方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060012093A (ko) * 2004-08-02 2006-02-07 삼성전자주식회사 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
KR100644713B1 (ko) 2005-10-31 2006-11-10 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 코딩 복호기에서 원소구문을 복호화하는 방법 및 이를 위한 복호화 장치
KR100717055B1 (ko) 2005-11-18 2007-05-10 삼성전자주식회사 Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치
KR100717052B1 (ko) 2005-11-08 2007-05-10 삼성전자주식회사 Cabac 복호기에서 이진 산술 복호화와 이진 매칭을병렬 처리하는 원소 구문의 복호화 방법 및 이를 위한복호화 장치

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3461640B2 (ja) * 1995-11-24 2003-10-27 パナソニック コミュニケーションズ株式会社 算術符号化・復号化装置
JP3459759B2 (ja) * 1997-09-29 2003-10-27 キヤノン株式会社 算術復号化装置
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
US7599435B2 (en) * 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US20050259747A1 (en) 2004-05-21 2005-11-24 Broadcom Advanced Compression Group, Llc Context adaptive binary arithmetic code decoder for decoding macroblock adaptive field/frame coded video data
JP4327036B2 (ja) * 2004-07-15 2009-09-09 株式会社東芝 算術符号復号化方法及びその装置
KR100624432B1 (ko) 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
US7224412B2 (en) 2004-08-16 2007-05-29 Rightech Corporation Ceiling suction type digital television device
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
KR100694098B1 (ko) 2005-04-04 2007-03-12 한국과학기술원 산술 복호 방법 및 그 장치
US7804903B2 (en) 2005-06-27 2010-09-28 Intel Corporation Hardware-based CABAC decoder
CN100584025C (zh) * 2005-08-04 2010-01-20 华为技术有限公司 一种基于内容自适应的算术解码系统及装置
CN100466739C (zh) * 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
JP2007116501A (ja) * 2005-10-21 2007-05-10 Victor Co Of Japan Ltd 算術符号復号化装置。
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
JP2008113348A (ja) * 2006-10-31 2008-05-15 Sony Corp 符号化復号装置、復号方法、並びにプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060012093A (ko) * 2004-08-02 2006-02-07 삼성전자주식회사 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
KR100644713B1 (ko) 2005-10-31 2006-11-10 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 코딩 복호기에서 원소구문을 복호화하는 방법 및 이를 위한 복호화 장치
KR100717052B1 (ko) 2005-11-08 2007-05-10 삼성전자주식회사 Cabac 복호기에서 이진 산술 복호화와 이진 매칭을병렬 처리하는 원소 구문의 복호화 방법 및 이를 위한복호화 장치
KR100717055B1 (ko) 2005-11-18 2007-05-10 삼성전자주식회사 Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013109026A1 (ko) * 2012-01-18 2013-07-25 엘지전자 주식회사 엔트로피 부호화/복호화 방법 및 그 장치
US9729884B2 (en) 2012-01-18 2017-08-08 Lg Electronics Inc. Method and device for entropy coding/decoding
US10225557B2 (en) 2012-01-18 2019-03-05 Lg Electronics Inc. Method and device for entropy coding/decoding
US10531092B2 (en) 2012-01-18 2020-01-07 Lg Electronics Inc Method and device for entropy coding/decoding
US10791329B2 (en) 2012-01-18 2020-09-29 Lg Electronics Inc. Method and device for entropy coding/decoding
US10999580B2 (en) 2012-01-18 2021-05-04 Lg Electronics Inc. Method and device for entropy coding/decoding
US11706420B2 (en) 2012-01-18 2023-07-18 Lg Electronics Inc. Method and device for entropy coding/decoding

Also Published As

Publication number Publication date
EP2051383A2 (en) 2009-04-22
TW200920141A (en) 2009-05-01
JP2009100474A (ja) 2009-05-07
US20090096643A1 (en) 2009-04-16
JP4886755B2 (ja) 2012-02-29
EP2922208A1 (en) 2015-09-23
EP2051383A3 (en) 2014-08-06
US7777654B2 (en) 2010-08-17
TWI396446B (zh) 2013-05-11
KR20090038808A (ko) 2009-04-21
EP2978136A1 (en) 2016-01-27

Similar Documents

Publication Publication Date Title
KR100955418B1 (ko) 컨텍스트 기반 적응형 이진 산술 인코딩 및 디코딩을 위한 시스템 및 방법
US7710296B2 (en) N-bin arithmetic coding for context adaptive binary arithmetic coding
US7365660B2 (en) Method and device for decoding syntax element in CABAC decoder
KR100648258B1 (ko) 고속의 디코딩을 수행하는 파이프라인 구조의 내용 기반적응적 이진 산술 디코더
US6587057B2 (en) High performance memory efficient variable-length coding decoder
US7385535B2 (en) Decoding system and method based on context-based adaptive binary arithmetic coding
JP3224164B2 (ja) デコーダ
US7817864B2 (en) Coding apparatus and decoding apparatus
US8233545B2 (en) Run length encoding in VLIW architecture
Osorio et al. High-throughput architecture for H. 264/AVC CABAC compression system
KR100813877B1 (ko) 효율적인 h.264/avc cavlc 디코딩 방법
JP5264706B2 (ja) 算術デコーディング方法及びデバイス
US6546053B1 (en) System and method for decoding signal and method of generating lookup table for using in signal decoding process
RU2510573C2 (ru) Способ для кодирования последовательности целых чисел, устройство хранения и сигнал, переносящий кодированную последовательность целых чисел, а также способ декодирования последовательности целых чисел
JP2009534886A5 (ko)
US20070139236A1 (en) Variable Length Coding Algorithm for Multiple Coding Modes
JPH1065549A (ja) 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法
Lin et al. A highly efficient VLSI architecture for H. 264/AVC CAVLC decoder
US7463781B2 (en) Low overhead context intializations for arithmetic video codecs
Pastuszak High-speed architecture of the CABAC probability modeling for H. 265/HEVC encoders
Qin et al. A memory and speed efficient CAVLC decoder
Choi et al. High throughput entropy coding in the HEVC standard
Orlandić et al. An efficient hardware architecture of CAVLC encoder based on stream processing
KR0159296B1 (ko) 영상신호의 가변장 부호화 방법 및 장치
KR20230088746A (ko) 정보 값들의 시퀀스를 산술 부호화하는 산술 부호화기 및 산술 복호화하는 산술 복호화기와, 정보 값들의 시퀀스를 산술 부호화 및 복호화하는 방법과, 이를 구현하기 위한 컴퓨터 프로그램

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140408

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160408

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170412

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180405

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190410

Year of fee payment: 10