KR101177737B1 - Cabac 코더에 대한 레이트-왜곡 모델링에 기초한 양자화 - Google Patents

Cabac 코더에 대한 레이트-왜곡 모델링에 기초한 양자화 Download PDF

Info

Publication number
KR101177737B1
KR101177737B1 KR1020107017564A KR20107017564A KR101177737B1 KR 101177737 B1 KR101177737 B1 KR 101177737B1 KR 1020107017564 A KR1020107017564 A KR 1020107017564A KR 20107017564 A KR20107017564 A KR 20107017564A KR 101177737 B1 KR101177737 B1 KR 101177737B1
Authority
KR
South Korea
Prior art keywords
coefficients
quantized coefficients
value
video block
coefficient
Prior art date
Application number
KR1020107017564A
Other languages
English (en)
Other versions
KR20100102701A (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 KR20100102701A publication Critical patent/KR20100102701A/ko
Application granted granted Critical
Publication of KR101177737B1 publication Critical patent/KR101177737B1/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/124Quantisation
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • 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

Landscapes

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

Abstract

본 개시물은 CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하는 기술을 설명한다. 방법은 비디오 블록에 대한 양자화 계수의 복수의 세트를 발생시키는 단계 (여기서 양자화 계수의 각 세트는 비디오 블록의 계수 중 특정 계수가 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의됨), CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하는 단계 (여기서 추정된 비용은 각각 양자화 계수의 세트 중 상이한 세트에 기초함), 및 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택하는 단계를 포함한다.

Description

CABAC 코더에 대한 레이트-왜곡 모델링에 기초한 양자화{QUANTIZATION BASED ON RATE-DISTORTION MODELING FOR CABAC CODERS}
본 특허출원은 2008년 1월 8일에 출원된 미국 가출원 제 61/019,830호 및 2008년 2월 21일에 출원된 미국 가출원 제 61/030,454호의 우선권을 주장하며, 이 둘의 전체 내용은 참조로서 본 명세서에 포함된다.
기술분야
본 개시물은 디지털 비디오 코딩에 관한 것으로, 더 상세하게는 CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에 대한 양자화 기술에 관한 것이다.
디지털 비디오 능력은 디지털 텔레비전, 디지털 직접 방송 시스템, 무선 방송 시스템, 개인 휴대 정보 단말기 (PDA), 랩탑 또는 데스크탑 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 비디오 게이밍 디바이스, 비디오 게임 콘솔, 셀룰러 또는 위성 라디오 텔레폰 등을 포함하는 광범위의 디바이스로 통합될 수 있다. 디지털 비디오 디바이스는 MPEG-2, MPEG-4, 또는 ITU-T H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding) 와 같은 비디오 압축 기술을 구현하여, 디지털 비디오 정보를 보다 효율적으로 송수신한다. 비디오 압축 기술은 공간 예측 및 시간 예측을 수행하여 비디오 시퀀스에 고유한 리던던시를 제거 또는 감소시킨다.
비디오 프레임, 비디오 프레임의 슬라이스, 픽처의 그룹, 또는 비디오 블록의 정의된 다른 유닛을 포함할 수도 있는, 주어진 코딩 유닛 내의 비디오 블록들 사이의 공간 리던던시를 제거 또는 감소시키기 위해 인트라-코딩은 공간 예측에 의존한다. 반대로, 비디오 시퀀스의 연속적인 코딩 유닛의 비디오 블록들 사이의 시간 리던던시를 제거 또는 감소시키기 위해 인터-코딩은 시간 예측에 의존한다. 인트라-코딩의 경우, 비디오 인코더는 동일한 코딩 유닛 내의 다른 데이터에 기초하여 데이터를 압축하기 위해 공간 예측을 수행한다. 인터-코딩의 경우, 비디오 인코더는 2 개 이상의 인접 코딩 유닛의 대응하는 비디오 블록의 이동을 추적하기 위해 모션 추정 및 모션 보상을 수행한다.
코딩된 비디오 블록은, 예측 블록, 및 코딩되는 블록과 예측 블록 사이의 차이를 표시하는 데이터의 잔여 블록을 생성 또는 식별하는데 이용될 수 있는 예측 정보로 나타낼 수도 있다. 인터-코딩의 경우에, 데이터의 예측 블록을 식별하는데 하나 이상의 모션 벡터가 이용되지만, 인트라-코딩의 경우에, 예측 블록을 발생시키는데 예측 모드가 이용될 수 있다. 인트라-코딩과 인터-코딩 둘 다는, 코딩에 이용되는 예측 기술 및/또는 상이한 블록 사이즈를 정의할 수도 있는 수개의 상이한 예측 모드를 정의할 수도 있다. 코딩 프로세스에서 이용되는 파라미터 또는 코딩 기술을 정의 또는 제어하기 위해, 인코딩된 비디오 데이터의 일부로서 추가 타입의 구문 엘리먼트가 또한 포함될 수도 있다.
블록-기반 예측 코딩 후에, 비디오 인코더는 변환, 양자화 및 엔트로피 코딩 프로세스를 적용하여, 잔여 블록의 통신과 연관된 비트 레이트를 또한 감소시킬 수도 있다. 변환 기술은 이산 코사인 변환 또는 개념상 유사한 프로세스를 포함할 수도 있다. 다른 방법으로는, 웨이브릿 변환, 정수 변환, 또는 다른 타입의 변환이 이용될 수도 있다. 이산 코사인 변환 (DCT) 프로세스에서, 일례로서, 변환 프로세스는 픽셀 값의 세트를 변환 계수로 컨버팅하는데, 이 변환 계수는 주파수 도메인에서의 픽셀 값의 에너지를 나타낼 수도 있다. 양자화는 변환 계수에 적용되고, 일반적으로 임의의 주어진 변환 계수와 연관된 비트의 수를 제한하는 프로세스를 수반한다. 엔트로피 코딩은 양자화 변환 계수의 시퀀스를 집합적으로 압축하는 하나 이상의 프로세스를 포함한다.
CABAC (context-based adaptive binary arithmetic coding) 은 ITU-T H.264/MPEG4, AVC 표준과 같은 몇몇 코딩 표준에서 현재 지원되는 일 타입의 엔트로피 코딩 기술이다. CABAC 은 2치화, 컨텍스트 모델 선택, 및 2진 산술 코딩을 포함하여 수개의 스테이지를 수반할 수도 있다. 2치화에서, 임의의 비 (non) 2진 심볼이 이진 시퀀스 (때때로 빈 스트링으로 불림) 에 맵핑된다. 컨텍스트 모델링에서, 모델 확률 분포는 코딩되는 엘리먼트 (예를 들어, 심볼) 에 할당된다. 이후, 후속 2진 산술 코딩 스테이지에서, 할당된 모델 확률 분포에 따라 코딩되는 엘리먼트의 코딩된 표현을 형성하는 비트의 시퀀스를 발생시키기 위해, 할당된 확률 분포가 코딩을 수행하는데 이용된다.
CABAC 프로세스는 주어진 컨텍스트에서의 엘리먼트의 확률을 앎으로써 비디오 스트림을 정의하는 엘리먼트를 손실 없이 압출할 수 있다. CABAC 은 통상적으로, CAVLC (content adaptive variable length coding) 기술과 같이, 다른 엔트로피 코딩 기술보다 더 효율적으로 데이터를 압축하지만, 디코더측의 상당히 더 복잡한 프로세싱을 요구할 수도 있다. ITU H.264/AVC 셋팅의 CABAC 은 2003 년 7월, Volume 13, Number 7 의 Circuits and Systems for Video Technology 에 관한 IEEE 번역물에 공개된 Detlev Marpe, Heiko Schwarz 및 Thomas Wiegand 에 의한 출판물 "Context-based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard" 에서 더 충분히 설명된다.
개요
일반적으로, 본 개시물은 CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하는데 이용될 수도 있는 양자화 기술을 설명한다. 설명된 기술은 양자화 프로세스 중에 CABAC 단계의 일부를 수행 및/또는 추정함으로써 양자화 프로세스 중에 CABAC 을 고려할 수 있다. 이 기술은 비디오 코딩의 양자화 단계에서 코딩 레이트와 왜곡 사이의 바람직한 균형을 달성하는데 이용될 수도 있다. 이 기술에 따르면, CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용은 양자화 계수의 상이한 세트에 대해 추정될 수 있다. 최저 비용과 연관된 양자화 계수의 세트는 양자화 계수를 정의하기 위해 이후 선택될 수 있다.
일례에서, 본 개시물은 CABAC 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하는 방법을 제공한다. 이 방법은 비디오 블록에 대한 양자화 계수의 복수의 세트를 발생시키는 단계 (여기서 양자화 계수의 각 세트는 비디오 블록의 계수 중 특정 계수가 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의됨), CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하는 단계 (여기서 추정된 비용은 각각 양자화 계수의 세트 중 상이한 세트에 기초함), 및 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택하는 단계를 포함한다.
다른 예에서, 본 개시물은 CABAC 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하도록 구성된 장치를 제공한다. 이 장치는, 비디오 블록에 대한 양자화 계수의 복수의 세트를 발생시키고 (여기서 양자화 계수의 각 세트는 비디오 블록의 계수 중 특정 계수가 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의됨), CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하며 (여기서 추정된 비용은 각각 양자화 계수의 세트 중 상이한 세트에 기초함), 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택하는 양자화 유닛을 포함한다.
다른 예에서, 본 개시물은 CABAC 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하는 디바이스를 제공하는데, 이 디바이스는 비디오 블록에 대한 양자화 계수의 복수의 세트를 발생시키는 수단 (여기서 양자화 계수의 각 세트는 비디오 블록의 계수 중 특정 계수가 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의됨), CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하는 수단 (여기서 추정된 비용은 각각 양자화 계수의 세트 중 상이한 세트에 기초함), 및 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택하는 수단을 포함한다.
다른 예에서, 본 개시물은 CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하도록 구성된 디바이스르 제공하는데, 이 디바이스는 코딩 유닛 및 송신기를 포함하고, 이 코딩 유닛은 양자화 유닛 및 CABAC 유닛을 포함한다. 이 양자화 유닛은 비디오 블록에 대한 양자화 계수의 복수의 세트를 계산하고 (여기서 양자화 계수의 각 세트는 비디오 블록의 계수 중 특정 계수가 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의됨), CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하고 (여기서 추정된 비용은 각각 양자화 계수의 세트 중 상이한 세트에 기초함), 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택하며, 양자화 계수의 세트 중 주어진 세트를 출력한다. CABAC 유닛은 양자화 계수의 세트 중 주어진 세트를 수신하고, 양자화 계수의 세트 중 주어진 세트에 대해 CABAC 을 수행하여 양자화 계수의 세트 중 주어진 세트를 비트스트림으로 엔트로피 코딩하며, 비트스트림을 출력하고, 송신기는 비트스트림을 송신한다.
본 개시물에 설명된 기술은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 이 소프트웨어는 하나 이상의 프로세서, 예를 들어, 마이크로프로세서, ASIC (application specific integrated circuit), FPGA (field programmable gate array), 또는 DSP (digital signal processor) 에서 실행될 수도 있다. 이 기술을 실행하는 소프트웨어는 컴퓨터-판독가능 매체에 초기에 저장되고, 프로세서에서 로딩 및 실행될 수도 있다.
따라서, 본 개시물은 또한, 실행 시에 디바이스로 하여금 CABAC 을 지원하는 비디오 코딩 프로세스에서 비디오 블록의 계수를 양자화하게 하는 명령을 포함하는 컴퓨터-판독가능 매체를 예기하고, 여기서 명령은 디바이스로 하여금 비디오 블록에 대한 양자화 계수의 복수의 세트를 발생시키게 하고 (여기서 양자화 계수의 각 세트는 비디오 블록의 계수 중 특정 계수가 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의됨), CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하게 하며 (여기서 추정된 비용은 각각 양자화 계수의 세트 중 상이한 세트에 기초함), 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택하게 한다.
본 개시물의 하나 이상의 양태의 세부사항은 이하의 설명 및 첨부 도면에 개시된다. 본 개시물에서 설명된 기술의 다른 특징, 목적, 및 이점은 청구범위로부터, 상세한 설명 및 도면으로부터 명백해질 것이다.
도 1 은 비디오 인코딩 및 디코딩 시스템을 도시한 예시적인 블록도이다.
도 2 는 본 개시물에 일관된 비디오 인코더의 예를 도시한 블록도이다.
도 3 은 4×4 엘리먼트 비디오 블록의 지그재그 스캐닝을 도시한 개념도이다.
도 4 는 본 개시물에 일관된 비디오 디코더의 예를 도시한 블록도이다.
도 5 내지 도 10 은 본 개시물에 일관된 기술을 도시한 흐름도이다.
도 1 은 본 개시물의 기술을 구현할 수도 있는 하나의 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 도시한 블록도이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은 통신 채널 (15) 을 통해 수신지 디바이스 (16) 로 인코딩된 비디오를 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 광범위한 디바이스 중 임의의 디바이스를 포함할 수도 있다. 몇몇 경우에, 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 무선 핸드셋, 소위 셀룰러 또는 위성 라디오텔레폰, 또는 통신 채널 (15) 을 통해 비디오 정보를 통신할 수 있는 임의의 무선 디바이스와 같은 무선 통신 디바이스를 포함하며, 이 경우에 통신 채널 (15) 은 무선이다. 그러나, 양자화에 관한 본 개시물의 기술은 무선 애플리케이션 또는 셋팅에 반드시 제한되는 것은 아니다.
도 1 의 실시예에서, 소스 디바이스 (12) 는 비디오 소스 (20), 비디오 인코더 (22), 변조기/복조기 (모뎀)(23) 및 송신기 (24) 를 포함할 수도 있다. 수신지 디바이스 (16) 는 수신기 (26), 모뎀 (27), 비디오 디코더 (28), 및 디스플레이 디바이스 (30) 를 포함할 수도 있다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (22) 는 CABAC (context adaptive binary arithmetic coding) 의 효과를 고려하는 양자화 기술을 적용하도록 구성될 수도 있다. 이러한 방식으로, 소스 디바이스 (12) 는 원하는 레벨의 양자화를 달성함으로써, 이에 의해 인코딩 프로세스를 개선할 수도 있다.
도 1 의 도시된 시스템 (10) 은 단지 예시적이다. 본 개시물의 양자화 기술은 CABAC 을 지원하는 임의의 인코딩 디바이스에 의해 수행될 수도 있다. 소스 디바이스 (12) 는 이러한 인코딩 디바이스의 하나의 예일 뿐이다. 본 개시물의 양자화 기술은 엔트로피 코딩을 위해 CABAC 을 지원하는 비디오 코딩 프로세스에 대한 비디오 블록의 양자화 계수를 포함할 수도 있다. 이 경우에, 비디오 인코더 (22) 는 비디오 블록에 대한 양자화 계수의 복수의 세트를 발생시킬 수도 있는데, 여기서 양자화 계수의 각 세트는, 비디오 블록의 계수 중 특정 계수가 비디오 블록의 최종 넌-제로 (non-zero) 계수에 대응한다는 가정에 기초하여 정의된다. 최종 넌-제로 계수는 지그재그 스캐닝과 같이, 이용된 스캐닝 순서에 종속할 수도 있다. 비디오 인코더 (22) 는 CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정할 수도 있는데, 여기서 추정된 비용은 양자화 계수의 세트 중 상이한 세트에 각각 기초하고, 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택한다. 이 접근방식은, 상이한 계수를 비디오 블록의 최종 넌-제로 계수로 간주하는 단일 패스에서의 상이한 양자화 계수의 각 세트에 대해 추정된 비용이 발생하는 한, 1-패스 접근방식으로 지칭될 수도 있다.
다른 방법으로는, 본 개시물의 양자화 기술은 2-패스 접근방식을 따를 수도 있다. 이 경우에, 이 기술은 제 1 패스에서 비디오 블록의 최종 넌-제로 계수를 추정한 후, 추정된 최종 넌-제로 계수가 실제로 비디오 블록의 최종 넌-제로 계수라는 가정에 기초하여 제 2 패스에서 비디오 블록에 대해 양자화 계수의 세트를 발생시키는 것을 포함할 수도 있다. 본 개시물은 결합된 1-패스 접근방식, 및 2-패스 접근방식 양자를 제안한다. 결합된 1-패스 접근방식에서, 모든 가능한 계수는 최종 넌-제로 계수로 간주될 수도 있고, 많은 가능한 양자화 계수의 세트는 최종 넌-제로 계수인 상이한 계수에 대해 발생할 수도 있다. 그러나, 2-패스 접근방식에서, 추정 기술은 최종 넌-제로 계수를 추정하는데 이용되고, 양자화 계수의 세트만이 발생하고, 추정된 최종 넌-제로 계수가 최종 넌-제로 계수로 고정되는 단일 경우에 고려될 수도 있다. 결합된 1-패스 접근방식은 1-패스 접근방식보다 더 계산상 인텐시브할 수도 있지만, 몇몇 경우에는 더 정확한 결과를 낳을 수도 있다. 1-패스 접근방식의 계산상 복잡도를 감소시키기 위해 다양한 추가 기술이 이용될 수도 있다. 2-패스 접근방식은 1-패스 접근방식에 비해 상당히 복잡도를 감소시킬 수도 있고, 많은 경우에, 2-패스 접근방식에서의 코딩 품질의 감소는 1-패스 전급법에 비해 무시해도 좋을 수도 있다.
일반적으로, 소스 디바이스 (12) 는 수신지 디바이스 (16) 로의 송신을 위해 코딩된 비디오 데이터를 발생시킨다. 그러나, 몇몇 경우에, 디바이스 (12, 16) 는 실질적으로 대칭인 방식으로 동작할 수도 있다. 예를 들어, 디바이스 (12, 16) 각각은 비디오 인코딩 및 디코딩 컴포넌트를 포함할 수도 있다. 따라서, 시스템 (10) 은, 예를 들어, 비디오 스트리밍, 비디오 플레이백, 비디오 방송, 또는 비디오 텔레포니를 위해 비디오 디바이스들 (12, 16) 사이의 단방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (20) 는 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 또는 비디오 컨텐츠 제공자로부터 공급되는 비디오와 같은 비디오 캡처 디바이스를 포함할 수도 있다. 또 다른 방식으로, 비디오 소스 (20) 는 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터-발생된 비디오의 조합으로서 컴퓨터 그래픽스-기반 데이터를 발생시킬 수도 있다. 몇몇 경우에, 비디오 소스 (20) 가 비디오 카메라이면, 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 소위 카메라 폰 또는 비디오 폰을 형성할 수도 있다. 각 경우에, 캡처, 사전-캡처 또는 컴퓨터-발생된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 이후 통신 표준, 예를 들어, CDMA (code division multiple access) 또는 다른 통신 표준에 따라 모뎀 (23) 에 의해 변조되고, 송신기 (24) 를 통해 수신지 디바이스 (16) 로 송신될 수도 있다. 모뎀 (23) 은 다양한 믹서, 필터, 증폭기 또는 신호 변조를 위해 설계된 다른 컴포넌트를 포함할 수도 있다. 송신기 (24) 는 증폭기, 필터, 및 하나 이상의 안테나를 포함하여, 데이터를 송신하기 위해 설계된 회로를 포함할 수도 있다.
수신지 디바이스 (16) 의 수신기 (26) 는 채널 (15) 상에서 정보를 수신하고, 모뎀 (27) 은 이 정보를 복조한다. 게다가 또, 비디오 인코딩 프로세스는 본 명세서에서 설명된 기술을 구현하여 양자화 프로세스를 제공할 수도 있다. 비디오 디코더 (28) 에 의해 수행된 비디오 디코딩 프로세스는 비디오 시퀀스를 복원하는데 있어서 역양자화를 수행할 수도 있다. 디스플레이 디바이스 (28) 는 디코딩된 비디오 데이터를 사용자에 디스플레이하고, 음극선관, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스 중 임의의 디스플레이 디바이스를 포함할 수도 있다.
도 1 의 실시예에서, 통신 채널 (15) 은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체의 임의의 조합을 포함할 수도 있다. 통신 채널 (15) 은 LAN (local area network), WAN (wide-area network), 또는 인터넷과 같은 글로벌 네트워크와 같이, 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 채널 (15) 은 소스 디바이스 (12) 로부터 수신지 디바이스 (16) 로 비디오 데이터를 송신하기 위해, 임의의 적절한 통신 매체, 또는 상이한 통신 매체의 집합을 일반적으로 나타낸다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 MPEG-4, 파트 10, AVC (Advanced Video Coding) 으로 달리 설명되는 ITU-T H.264 표준과 같이, CABAC 을 지원하는 비디오 압축 표준에 따라 동작할 수도 있다. 도 1 에 도시되지 않았지만, 몇몇 양태에서, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각 오디오 인코더 및 디코더로 집적될 수도 있고, 적절한 MUX-DEMUX 유닛, 또는 다른 하드웨어 및 소프트웨어를 포함하여, 공통 데이터 스트림 또는 별개 데이터 스트림의 오디오와 비디오 양자의 코딩을 핸들링할 수도 있다. 적용가능하면, MUX-DEMUX 유닛은 ITU H.223 멀티플렉서 프로토콜, 또는 UDP (user datagram protocol) 와 같은 다른 프로토콜을 따를 수도 있다.
ITU-T H.264/MPEG-4 (AVC) 표준은 조인트 비디오 팀 (JVT) 으로 알려진 집단 파트너쉽의 결과물로서 ISO/IEC MPEG (Moving Picture Experts Group) 와 함께 ITU-T VCEG (Video Coding Experts Group) 에 의해 규격화되었다. 몇몇 양태에서, 본 개시물에서 설명된 기술은 H.264 표준에 일반적으로 따르는 디바이스에 적용될 수도 있다. 이 H.264 표준은, H.264 표준 또는 H.264 규격, 또는 H.264/AVC 표준 또는 규격으로 본 명세서에서 지칭될 수도 있는, 2005년 3월자의 ITU-T 스터디 그룹에 의해, ITU-T 권고 H.264, 일반적인 음성영상 서비스를 위한 향상된 비디오 코딩 (Advanced Video Coding for generic audiovisual services) 에 설명되어 있다. 조인트 비디오 팀 (JVT) 은 H.264/MPEG-4 AVC 의 확장을 계속 연구하고 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 각각은 하나 이상의 마이크로프로세서, DSP (digital signal processor), ASIC (application specific integrated circuit), FPGA (field programmable gate array), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 각각의 비디오 인코더 (22) 및 비디오 디코더 (28) 는 하나 이상의 인코더 또는 디코더에 포함될 수도 있는데, 이들 중 어느 하나는 개개의 이동 디바이스, 가입자 디바이스, 방송 디바이스, 서버 등에 CODEC (combined encoder/decoder) 의 일부로 집적될 수도 있다.
비디오 시퀀스는 통상적으로 일련의 비디오 프레임을 포함한다. 비디오 인코더 (22) 는 비디오 데이터를 인코딩하기 위해 개별 비디오 프레임 내의 비디오 블록에 대해 동작한다. 이 비디오 블록은 고정되거나 바뀌는 사이즈를 가질 수도 있고, 규정된 코딩 표준에 따라 사이즈가 달라질 수도 있다. 각 비디오 프레임은 일련의 슬라이스를 포함한다. 각 슬라이스는 일련의 매크로블록을 포함할 수도 있는데, 이는 서브블록으로 배열될 수도 있다. 예로서, ITU-T H.264 표준은 다양한 블록 사이즈, 예를 들어, 루마 컴포넌트에 대해서는 16×16, 8×8, 또는 4×4, 및 크로마 컴포넌트에 대해서는 8×8 에서 인트라 예측을 지원할 뿐만 아니라, 다양한 블록 사이즈, 예를 들어, 루마 컴포넌트에 대해서는 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 및 크로마 컴포넌트에 대해서는 대응하는 스케일링된 사이즈에서 인터 예측을 지원한다. 비디오 블록은 예를 들어, 이산 코사인 변환과 같은 변환 프로세스 또는 개념상 유사한 변환 프로세스 후에, 변환 계수의 블록, 또는 픽셀 데이터의 블록을 포함할 수도 있다. 본 개시물의 양자화 기술은 통상적으로 변환된 비디오 블록의 변환 계수에 적용된다.
보다 작은 비디오 블록은 보다 우수한 해상도를 제공할 수 있고, 높은 레벨의 디테일을 포함하는 비디오 프레임의 위치에 이용될 수도 있다. 일반적으로, 매크로블록 (MB) 및 다양한 서브블록은 비디오 블록인 것으로 간주될 수도 있다. 또한, 슬라이스는 MB 및/또는 서브블록과 같이, 일련의 비디오 블록인 것으로 간주될 수도 있다. 각 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수도 있다. 예측 후에, 8×8 잔여 블록 또는 4×4 잔여 블록에 대해 변환이 수행될 수도 있고, 인트라_16×16 예측 모드가 이용되면 크로마 컴포넌트 또는 루마 컴포넌트에 대한 4×4 블록의 DC 계수에 추가 변환이 적용될 수도 있다. 게다가 또, 변환 후에, 이 데이터는 비디오 블록, 즉, 변환 계수의 블록으로 여전히 지칭될 수도 있다. 용어 "계수"는 일반적으로 변환 계수를 지칭하지만, 다른 방법으로는 픽셀 값과 같이 다른 타입의 계수 또는 값, 또는 다른 타입의 계수로 지칭될 수도 있다.
(예를 들어, 이산 코사인 변환 DCT 또는 H.264/AVC 에서의 4×4 또는 8×8 정수 변환과 같은) 인트라- 또는 인터-기반 예측 코딩 및 변환 기술 후에, 양자화가 수행될 수도 있다. 양자화는 이하 보다 상세히 논의되지만, 일반적으로 계수를 나타내는데 이용되는 데이터량을 가능하면 감소시키기 위해 계수가 양자화되는 프로세스를 일반적으로 지칭한다. 양자화 프로세스는 계수의 전부 또는 일부와 연관된 비트 깊이를 감소시킬 수도 있다. 예를 들어, 8-비트 값은 양자화 중에 7-비트 값으로 라운딩될 수도 있다. 본 개시물의 양자화 기술은 CABAC 이 수행될 것이라는 사실을 고려한다.
특히, 양자화 후에, CABAC 방법론에 따라 엔트로피 코딩이 수행될 수도 있다. 본 개시물은 레이트와 왜곡의 원하는 밸런스를 달성할 수 있는 방식으로 비디오 블록의 계수를 양자화하는 기술을 제공한다. 설명된 기술은, 양자화를 개선하고 예를 들어, 통신 레이트에 대한 주어진 비트 버짓에서 원하는 품질 레벨을 달성하기 위해 CABAC 의 추정을 구현한다.
본 개시물의 기술에 따르면, 비디오 인코더 (22) 는 비디오 블록에 대한 양자화 계수의 복수의 세트를 발생시킬 수도 있는데, 여기서 양자화 계수의 각 세트는 비디오 블록의 계수의 특정한 하나의 계수가 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의된다. 비디오 인코더 (22) 는 CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정할 수도 있는데, 여기서 추정된 비용은 양자화 계수의 세트 중 상이한 세트에 각각 기초하고, 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택한다. 비디오 인코더 (22) 는 비디오 블록의 양자화를 위해 양자화 계수의 선택된 세트를 이용할 수도 있다. 이 접근방식은 1-패스 접근방식으로 지칭된다.
다른 방법으로는, 본 개시물의 양자화 기술은 2-패스 접근방식을 따를 수도 있다. 이 경우에, 비디오 인코더 (22) 는 제 1 패스에서 비디오 블록의 최종 넌-제로 계수를 추정한 후, 추정된 최종 넌-제로 계수가 실제로 비디오 블록의 최종 넌-제로 계수라는 가정에 기초하여 제 2 패스에서 비디오 블록에 대한 양자화 계수의 세트를 발생시킬 수도 있다. 2-패스 접근방식에서, 최종 넌-제로 계수를 추정하는데 추정 기술이 이용되고, 추정된 최종 넌-제로 계수가 실제로 최종 넌-제로 계수인 경우에 양자화 계수의 세트만이 고려될 수도 있다. 별개 추정 패스는 최종 넌-제로 계수로서 현재 계수를 가지지 않는 양자화 계수의 세트와 연관된 산정을 수행할 필요를 제거할 수도 있다.
도 2 는 본 개시물에 일관된 잔여 계수의 양자화를 수행하는 레이트-왜곡 (RD) 양자화 유닛 (40) 을 포함하는 비디오 인코더 (50) 의 예를 도시한 블록도이다. 비디오 인코더 (50) 는 디바이스 (20) 의 비디오 인코더 (22), 또는 상이한 디바이스의 비디오 인코더에 대응할 수도 있다. 비디오 인코더 (50) 는 비디오 프레임 내의 블록의 인트라- 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 주어진 비디오 프레임 내의 비디오의 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접 프레임 내의 비디오의 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 의존한다. 인터-코딩의 경우, 비디오 인코더 (50) 는 모션 추정을 수행하여 2 개 이상의 인접 프레임 사이의 매칭하는 비디오 블록의 이동을 추적한다. 인트라-모드 (I-모드) 는 예측 (P-모드) 과 같은 인터-모드 또는 공간 기반 압축 모드를 지칭할 수도 있거나, 양방향 (B-모드) 은 시간 기반 압축 모드를 지칭할 수도 있다.
도 2 에 도시된 바와 같이, 비디오 인코더 (50) 는 인코딩될 비디오 프레임 내의 현재 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (50) 는 예측 유닛 (32), 참조 프레임 저장소 (34), 블록 변환 유닛 (38), RD 양자화 유닛 (40), 역양자화 유닛 (42), 역변환 유닛 (44) 및 CABAC 코딩 유닛 (46) 을 포함한다. 블록 경계를 필터링하여 블로키니스 아티팩트를 제거하기 위해 디블로킹 필터 (미도시) 가 또한 포함될 수도 있다. 비디오 인코더 (50) 는 합산기 (48) 및 합산기 (51) 를 더 포함한다. 예측 유닛 (32) 은 일반적으로 인트라 예측 유닛 및/또는 인터 예측 유닛을 나타낸다.
인코딩 프로세스 중에, 비디오 인코더 (50) 는 코딩될 비디오 블록을 수신하고, 예측 유닛 (32) 은 예측 코딩 기술을 수행한다. 인터 코딩의 경우, 예측 유닛 (32) 은 예측 블록을 정의하기 위해 하나 이상의 비디오 참조 프레임 또는 슬라이스의 다양한 블록과 인코딩될 비디오 블록을 비교한다. 인트라 코딩의 경우, 예측 유닛 (32) 은 동일한 코딩 유닛 내의 이웃하는 데이터에 기초하여 예측 블록을 발생시킨다. 예측 유닛 (32) 은 예측 블록을 출력하고, 가산기 (48) 는 잔여 블록을 발생시키기 위해 코딩되는 비디오 블록에서 예측 블록을 감산한다.
인터 코딩의 경우, 예측 유닛 (32) 은, 예측 블록을 가리키고 모션 벡터에 기초하여 예측 블록을 발생시키는 모션 벡터를 식별하는 모션 추정 및 모션 보상 유닛을 포함할 수도 있다. 통상적으로, 모션 추정은 모션을 추정하는 모션 벡터를 발생시키는 프로세스로 간주된다. 예를 들어, 추정 벡터는 현재 프레임 내에서 코딩되는 현재 블록에 대한 예측 프레임 내의 예측 블록의 변위를 표시할 수도 있다. 모션 보상은 통상적으로, 모션 추정에 의해 결정되는 모션 벡터에 기초하여 예측 블록을 발생시키거나 인출하는 프로세스로 간주된다. 기재된 바와 같이, 인트라 코딩의 경우, 예측 유닛 (32) 은 동일한 코딩 유닛 내의 이웃하는 데이터에 기초하여 예측 블록을 발생시킨다. 하나 이상의 인트라-예측 모드는 어떻게 인트라 예측 블록이 정의될 수 있는지를 정의할 수도 있다.
비디오 인코더 (50) 는 코딩되는 오리지널 비디오 블록에서 예측 유닛 (32) 에 의해 생성되는 예측 비디오 블록을 감산함으로써 잔여 비디오 블록을 형성한다. 합산기 (48) 는 이 감산 동작을 수행한다. 변환 유닛 (38) 은 이산 코사인 변환 (DCT) 또는 개념상 유사한 변환과 같은 변환을 잔여 블록에 적용하여, 잔여 변환 블록 계수를 포함하는 비디오 블록을 생성한다. 예를 들어, 변환 유닛 (38) 은, DCT 와 개념상 유사한, H.264 표준에 의해 정의된 다른 변환을 수행할 수도 있다. 웨이브릿 변환, 정수 변환, 서브밴드 변환 또는 다른 타입의 변환이 또한 이용될 수 있다. 어떠한 경우에도, 변환 유닛 (38) 은 이 변환을 잔여 블록에 적용하여, 잔여 변환 계수의 블록을 생성한다. 이 변환은 픽셀 도메인에서 주파수 도메인으로 잔여 정보를 컨버팅할 수도 있다.
RD 양자화 유닛 (40)(본 명세서에서 "양자화 유닛 (40)"으로도 지칭됨) 은 잔여 변환 계수를 양자화하여 비트 레이트를 또한 감소시킨다. 특히, 양자화 유닛 (40) 은 CABAC 유닛 (46) 에 의해 수행된 CABAC 코딩을 고려하기 위해 이하 보다 상세히 설명되는 양자화 기술 중 하나 이상을 수행한다. 이러한 방식으로, 양자화 유닛 (40) 은 레이트-왜곡 모델을 구현하고, 예를 들어, 주어진 레이트 또는 비트 버짓에 대해 원하는 수의 비트를 달성하는 원하는 레벨의 양자화를 달성할 수 있다.
양자화 후에, CABAC 유닛 (46) 은 CABAC 방법론에 따라 양자화 변환 계수를 엔트로피-코딩하여, 데이터를 또한 압축한다. CABAC 유닛 (46) 에 의한 엔트로피 코딩 후에, 인코딩된 비디오는 다른 디바이스로 송신되고, 이후의 송신 또는 검색을 위해 아카이브될 수도 있다. 역양자화 유닛 (42) 및 역변환 유닛 (44) 은 각각 역양자화 및 역변환을 적용하여, 참조 블록으로서의 이용을 위해 픽셀 도메인의 잔여 블록을 복원한다. 합산기 (51) 는 모션 보상 유닛 (36) 에 의해 생성된 모션-보상된 예측 블록에 복원된 잔여 블록을 가산하여, 참조 프레임 저장소 (34) 에의 저장을 위해 복원된 비디오 블록을 생성한다. 복원된 비디오 블록은 참조 블록으로서 예측 유닛 (32) 에 의해 이용되어, 후속 비디오 프레임의 블록을 인터-인코딩할 수도 있다.
예측 에러 E(x,y), 즉, 인코딩되는 블록 I(x,y) 와 예측된 블록 P(x,y) 사이의 차이는 변환 기저 함수 fij(x,y) 의 가중합:
Figure 112010050817624-pct00001
로 나타낼 수도 있는데, 여기서 x 및 y 는 비디오 블록 내의 주어진 계수의 위치를 정의하고, cij 는 때때로 예측 에러 계수로 불리는 가중 인자이다. 변환은 통상적으로 8×8 (N=8) 또는 4×4 (N=4) 블록을 기초로 수행된다. 중요성 cij 는 이어서 다음과 같이:
Figure 112010050817624-pct00002
양자화될 수 있는데, 여기서 lij 는 양자화 계수 또는 레벨로 불리고, QP 는 양자화 파라미터이며, Q 는 양자화 스텝 사이즈를 정의하는 양자화 매트릭스이다. 양자화의 동작은 정보의 손실을 도입한다. 그러나, 양자화 계수는 보다 작은 수의 비트로 나타내어, 이에 의해 송신 대역폭, 저장 공간 및 프로세싱 리소스를 보존할 수 있다. 종래에는 압축 (정보의 손실) 레벨은 QP 의 값을 조정함으로써 제어된다.
모션 벡터 및 어떤 제어 정보와 함께, 양자화 변환 계수는 엘리먼트의 완벽한 코딩 시퀀스를 형성할 수도 있다. 인코딩 디바이스로부터 디코딩 디바이스로의 송신 이전에, 이들 엘리먼트 전부는 통상적으로 그 표현에 필요한 비트의 수를 더욱 감소시키기 위해 엔트로피-코딩된다.
디코더 측에서, 현재 프레임의 블록은, 먼저 인코더에서와 동일한 방식으로 예측을 구성하고, 이 예측에 압축된 예측 에러를 가산함으로써 획득된다. 압축된 예측 에러는 다음과 같이:
Figure 112010050817624-pct00003
양자화복원 (dequantize) 계수에 역변환을 적용함으로써 발견되는데, 여기서 rij 는 양자화복원된 (복원이라고도 불림) 계수이다. 계수 rij 는 역양자화:
Figure 112010050817624-pct00004
에 의해 계산될 수도 있다. 복원된 프레임 R(x,y) 와 오리지널 프레임 I(x,y) 사이의 차이는 복원 에러로 지칭될 수도 있다.
종래에는, 비디오 코덱에서의 변환 계수의 양자화는 보통 URQ (uniform-reconstruction quantizer) 에 기초한다. 데이터를 양자화하는 분류 법칙은 인코더에 의해 정의된다. 양자화의 일례는 소위 DZ-UTQ (dead-zone plus uniform threshold quantization) 접근방식이다. 이하의 수학식은 이러한 DZQ (dead-zone quantizer) 를 정의하며, 여기서
Figure 112010050817624-pct00005
Figure 112010050817624-pct00006
인 데드존 파라미터를 나타내며:
Figure 112010050817624-pct00007
이고, 여기서 lij 는 주어진 QP 와 연관된 레벨에 대응한다.
개념상, 레벨 lij 에 대응하는 복원값 rij 는 lij 와 대응하는 QP 를 곱함으로써 유도될 수도 있다.
Figure 112010050817624-pct00008
수학식
Figure 112010050817624-pct00009
Figure 112010050817624-pct00010
는, 실제로 MPEG-4 AVC 에 대해 규정된 것의 수학적으로 단순화된 버전을 나타내는데, 그 이유는 대응하는 기저 함수의 정규화에 대한 상이한 스케일링 인자가 단순화의 목적으로 무시되기 때문이다.
H.264 및 MPEG-4 AVC 에서, 다음의 수학식:
Figure 112010050817624-pct00011
에 따라 수행될 수도 있는데, 여기서
Figure 112010050817624-pct00012
는 양자화 매트릭스를 나타내고, % 는 모듈러 분할 (mudular division) 을 나타내며,
Figure 112010050817624-pct00013
는 인트라 프레임에 대해 215+QP/6/3 이고 인터 프레임에 대해서는 215+ QP /6/6 과 동일하다. 계수의 양자화복원은 다음의 수학식:
Figure 112010050817624-pct00014
에 따라 수행될 수도 있는데, R 은 양자화복원 매트릭스를 나타낸다. QP%6 = 0.1,...,5 에 대한 Q 및 R 과 연관된 값은 사전-계산되고 저장될 수도 있다.
주어진 블록에서의 계수는 지그재그 스캐닝 또는 다른 스캐닝 순서를 이용하여 순서화 (스캐닝) 되어, 1차원-순서화된 계수 벡터를 발생시킬 수도 있다. 지그재그 스캐닝과 같은 스캐닝은, 블록에 의해 정의된 2차원 패턴과 달리 1차원의 계수 시리즈를 생성한다는 점에서 직렬화로도 지칭될 수도 있다. 4×4 블록에 대한 예시적인 지그재그 스캔이 도 3 에 보인다. 지그재그 스캐닝은 일반적으로 2차원 (2D) 변환을 적용한 후에, 최고 에너지를 갖는 변환 계수 (즉, 보다 높은 값 계수) 가 저주파수 변환 함수에 대응하고, 도 3 에 도시된 바와 같이 블록의 상부 좌측 쪽에 위치한다는 것을 가정한다. 따라서, 지그재그 스캐닝을 통해 생성된 계수 벡터에서, 보다 높은 크기 계수는 1차원-순서화된 계수 벡터의 시작 쪽으로 보일 가능성이 가장 높을 것이다. 양자화 후에, 대부분의 저에너지 계수는 0 과 동일할 수도 있다.
CABAC 은 H.264/AVC 에 이용되는 변환 계수를 코딩하는 하나의 방법이다. 도 2 의 CABAC 인코딩 유닛 (46) 은 이러한 코딩을 수행할 수도 있다. 일반적으로, CABAC 을 이용하여 임의의 데이터 심볼을 코딩하는 것은 다음의 스테이지: 2치화, 컨텍스트 모델 선택, 산술 인코딩 및 확률 업데이팅을 수반할 수도 있다. 2치화의 경우, CABAC 유닛 (46) 은 산술 코딩 전에 임의의 2진 값이 아닌 심볼을 2진 코드로 컨버팅한다. 컨텍스트 모델 선택에서, CABAC 유닛 (46) 은, 예를 들어, 최근에 코딩된 데이터 심볼과 연관된 통계에 따라 이용가능한 모델의 선택물로부터 컨텍스트 모델을 선택한다. "컨텍스트 모델"은 2치화된 심볼의 하나 이상의 빔에 대한 확률 모델이다. 이 모델은 최근에 코딩된 데이터 심볼의 통게에 따라 이용가능한 모델의 선택물로부터 선택될 수도 있다. 컨텍스트 모델은 각 빔이 "1" 또는 "0" 이 될 확률을 저장한다.
산술 인코딩의 경우, CABAC 유닛 (46) 은 선택된 확률 모델 (컨텍스트 모델로도 지칭됨) 에 따라 각 빈을 인코딩한다. 선택된 확률 모델은 실제 코딩된 값 (예를 들어, 빔 값이 "1"이면, "1"의 주파수 카운트는 증가함) 에 기초하여 업데이트된다 (확률 업데이팅). CABAC 의 확률 추정은 유한 상태 머신 (FSM) 을 이용하는 테이블-기반 (table-driven) 추정기에 기초할 수도 있다. 이 경우에, CABAC 의 각 확률 모델은 연관된 확률 값 p 를 갖는 128 개의 상이한 상태에서 하나를 취할 수도 있다. 확률 업데이트는, "2 개의 2진 결정 "0" 또는 "1" 중에서 가장 가능성이 적은 "가장 가능성 적은 심볼 (Least Probable Symbol)" 에 대한 64 개의 별개 확률 상태 사이의 전이 프로세스에 의해 수행될 수도 있다. 컨텍스트 모델 선택, 산술 인코딩 및 확률 업데이팅은 2치화된 심볼의 각 비트 (또는 "빈") 에 대해 반복될 수도 있다.
CABAC 유닛 (46) 에 의해 CABAC 을 이용한 변환 계수는 소위 중요성 맵의 코딩 및 넌-제로 계수의 코딩을 포함한다. 블록이 넌-제로 계수를 가지면, 2진 값의 중요성 맵이 인코딩된다. 스캐닝 순서의 각 계수의 경우, 1-비트 심볼 significant_coeff_flag 가 송신된다. significant_coeff_flag 심볼이 1 이면, 즉, 넌-제로 계수가 개개의 스캐닝 위치에 존재하면, 추가 1-비트 심볼 last_significant_coeff_flag 가 전송된다. 이 last_significant_coeff_flag 심볼은 현재 넌-제로 계수가 블록 내부에서 최종 넌-제로인지 (last_significant_coeff_flag=1) 또는 추가 넌-제로 계수가 따르는지 (last_significant_coeff_flag=0) 를 표시한다.
중요성 맵을 인코딩하기 위해, significant_coeff_flag 및 last_significant_coeff_flag 둘 다에 15 개까지의 상이한 확률 모델이 이용될 수 있다. 모델의 선택, 및 이에 따라 대응하는 컨텍스트 인덱스는 스캐닝 위치에 종속할 수도 있다. 넌-제로 레벨 coeff_abs_level_minus 1 = |lij| - 1 을 인코딩하기 위해, 10 개의 컨텍스트가 이용될 수도 있으며, 이 컨텍스트 중 5 개의 컨텍스트가 2진 표현의 제 1 비트를 코딩하기 위한 것이고 다른 5 개의 컨텍스트가 제 2 내지 제 14 비트를 코딩하는데 전용된다. 컨텍스트는 다음과 같이 CABAC 유닛 (46) 에 의해 선택될 수도 있다.
1. 파라미터 NumLg1 및 NumEq1 은 각각, 1 이상인 블록에서 보다 더 인코딩된 계수의 수와 동일하게 설정된다. 넌-제로 레벨이 인코딩되고, 따라서 NumLg1 및 NumEq1 이 스캔 반대 순서로 업데이트되며, 즉, 고주파수 변환 함수에 대응하는 계수가 먼저 인코딩된다.
2. 2치화된 심볼의 제 1 비트에 대한 컨텍스트는
Figure 112010050817624-pct00015
에 의해 결정될 수 있다.
3. 2치화된 심볼의 제 2 내지 제 14 비트에 대한 컨텍스트는
Figure 112010050817624-pct00016
에 의해 선택될 수 있다.
CABAC 유닛 (46) 은 또한 고정된 분포를 갖는 바이패스 모드를 지원할 수도 있다. coeff_abs_level_minus 1 의 2진 표현은 바이패스 모드를 통과할 수도 있다. 마지막으로, 넌-제로 계수의 사인은 각 넌-제로 계수에 대한 1 비트를 이용하여 전송될 수 있는데, 예를 들어, 여기서 1 은 양을 표시하고 0 은 음을 표시한다 (반대의 경우도 같다).
각 N×N 비디오 블록에 대해, 예측 에러 E(x,y) 와 예측 에러의 복원된 버전
Figure 112010050817624-pct00017
사이의 MSE (mean-squared-error) 왜곡 D 가 계수를 코딩하기 위한 레이트 R 의 제약을 조건으로 하여 최소화되도록, 변환 계수 cij 가 주어질 때, (복원된 계수 rij 를 결정하는) 대응하는 양자화 계수 lij 를 발견하는 것이 바람직하다. 다른 방식으로 하면, 목표는 다음의 표현식:
Figure 112010050817624-pct00018
(R < Rbudget 을 조건으로 함)
을 최소화하는 것이다.
MSE, 예를 들어, 활동 (activity) 이 가중된 MSE 대신에, 다른 가산 왜곡 미터법이 이용될 수 있다. 상기의 수학식을 최소화하는 레이트-제약 문제는 라그랑주의 제곱수 λ의 이용을 통해 "머징 (merging)" 레이트 및 왜곡에 의한 동등한 비제약 문제로 컨버팅됨으로써 해결될 수 있다. 이 경우에, 비제약 문제는 계수 레벨의 (고정 λ 에 대한) 결정이 되며, 다음과 같이 정의된 최소 총 라그랑주 비용을 야기한다.
Figure 112010050817624-pct00019
H.264 의 경우에, 주어진 블록에 대한 제곱 복원 에러:
Figure 112010050817624-pct00020
는 제곱 양자화 에러:
Figure 112010050817624-pct00021
에 비례한다. 레이트 R 은 양자화 계수 lij 를 코딩하는데 필요한 비트의 수이다.
이하 논의되는 제안된 알고리즘은 양자화 계수 값 lij (이에 대한 총 라그랑주 비용 함수 J(λ) 의 값은 그 최소값에 가까움) 을 구한다.
MPEG-4 AVC 에 이용되는 변환이 직교이므로, 라그랑주 비용 J(λ) 는
Figure 112010050817624-pct00022
과 같이 계산될 수 있다. 이 경우에,
Figure 112010050817624-pct00023
는 레벨 lij 로 양자화되는 경우에 계수 cij 에 대한 라그랑주 비용이다. 다시 말해,
Figure 112010050817624-pct00024
양자화 에러
Figure 112010050817624-pct00025
Figure 112010050817624-pct00026
에 비례한다.
Figure 112010050817624-pct00027
게다가 또, QP 는 양자화 파라미터를 나타내고, % 는 모듈러 분할을 나타낸다.
Figure 112010050817624-pct00028
는 정규화 매트릭스를 나타낸다. 인코딩 품질은 통상적으로 QP 가 더 작아짐에 따라 증가한다. 즉, QP 의 보다 작은 값은 통상적으로 보다 적은 양자화, 및 이에 따른 보다 높은 품질 인코딩에 대응한다. 다른 방법으로는, QP 가 이러한 방식으로 정의되면, 인코딩 품질은 QP 가 더 작아짐에 따라 감소될 수 있다.
양자화 및 양자화복원 매트릭스
Figure 112010050817624-pct00029
Figure 112010050817624-pct00030
의 경우에, 정규화 매트릭스
Figure 112010050817624-pct00031
의 값은
Figure 112010050817624-pct00032
의 값 및 i 및 j 에 의해 규정된 블록의 위치에만 종속할 수도 있다. 값 lij 를 코딩하는데 필요한 비트의 수 ("bits(lij)") 는 예를 들어, ITU H.264 에 대해 정의된 것과 같은 CABAC 의 일부를 이용하여 lij 를 인코딩함으로써 계산될 수도 있다. 그러나, 모든 CABAC 단계를 수행하는 것보다, RD 양자화 유닛 (40) 은 양자화의 목적으로 CABAC 의 처음 2가지 단계만을 수행할 수도 있다. 이들 처음 2가지 단계는 2치화 및 컨텍스트 모델 선택을 포함한다. 이후, 산술 코더를 인보크하여 2진 산술 코딩을 수행하는 대신에, RD 양자화 유닛 (40) 은 각 빔을 코딩하는데 필요한 비트의 수를 추정할 수도 있다. 주어진 빈에 대해 선택된 컨텍스트가 유한 상태 머신에서 상태 m 에 대응한다고 가정하면, 주어진 빈을 코딩하는데 필요한 비트의 추정된 수는 상태 m 에 할당된 확률 p 의 엔트로피로 나타낼 수도 있다. RD 양자화 유닛 (40) 이 매크로블록 당 한번 각 빈에 대한 컨텍스트를 결정하는 것이 충분할 수도 있다.
각 계수
Figure 112010050817624-pct00033
에 대해, 레벨
Figure 112010050817624-pct00034
의 많아야 3 개의 가능한 값이 테스트될 수 있다: 0,
Figure 112010050817624-pct00035
Figure 112010050817624-pct00036
. 단일 패스 예에서와 같이, 이 2-패스 접근방식에서, 4×4 블록 값
Figure 112010050817624-pct00037
Figure 112010050817624-pct00038
이 다음과 같이 계산될 수도 있다:
Figure 112010050817624-pct00039
1차원의 순서화된 계수 벡터를 야기하는 지그재그 스캐닝을 이용하여 주어진 블록에서의 계수가 순서화 (스캐닝) 된다고 가정할 수도 있다. 순서화된 계수는
Figure 112010050817624-pct00040
로 나타낼 수 있는데, 여기서 i = 0,..., M 이고, 예를 들어, M 은 4×4 블록에 대해서는 15 와 동일하고, 8×8 블록에 대해서는 63 과 동일하다.
본 개시물에 따르면, RD 양자화 유닛 (40) 은 다음과 같이 양자화 계수/레벨
Figure 112010050817624-pct00041
를 발생시킬 수도 있다.
1.
Figure 112010050817624-pct00042
이 블록에서의 최종 넌-제로 계수라고, 즉, 스캐닝 위치 k 에 대한 last_significant_coeff_flag 가 1 과 동일하다고 가정할 때, 라그랑주 비용
Figure 112010050817624-pct00043
을 계산하고 양자화 계수
Figure 112010050817624-pct00044
의 벡터를 발생시킨다.
a. 각 계수
Figure 112010050817624-pct00045
에 대해, 양자화 값
Figure 112010050817624-pct00046
가 미리 선택된 값의 세트, 예를 들어, 0,
Figure 112010050817624-pct00047
Figure 112010050817624-pct00048
과 동일한 경우에, 라그랑주 비용
Figure 112010050817624-pct00049
를 계산한다.
2.
Figure 112010050817624-pct00050
의 값 (이에 대한
Figure 112010050817624-pct00051
이 최소화됨) 을 골라
Figure 112010050817624-pct00052
의 선택된 값에 대응하는
Figure 112010050817624-pct00053
를 이용하여 라그랑주 비용
Figure 112010050817624-pct00054
을 업데이트한다.
RD 양자화 유닛 (40) 에 의해 수행된 양자화 기술의 속도는 다음과 같이 증가할 수도 있다.
1. (예를 들어,
Figure 112010050817624-pct00055
Figure 112010050817624-pct00056
또는
Figure 112010050817624-pct00057
사이의 절대 거리에 의해 측정되는 바와 같이) 계수
Figure 112010050817624-pct00058
Figure 112010050817624-pct00059
보다
Figure 112010050817624-pct00060
에 더 가까우면,
Figure 112010050817624-pct00061
값만이 상기의 단계 1.a 에서 고려될 수도 있다.
2. 계수
Figure 112010050817624-pct00062
Figure 112010050817624-pct00063
보다
Figure 112010050817624-pct00064
에 더 가깝고
Figure 112010050817624-pct00065
가 0 과 동일하면, 계수
Figure 112010050817624-pct00066
는 최종 넌-제로 계수가 아님이 틀림없다. 따라서, 이 경우에, 라그랑주 비용
Figure 112010050817624-pct00067
의 계산은 이 k 의 값에 대해 스킵될 수도 있다.
3.
Figure 112010050817624-pct00068
가 k 가 감소함에 따라
Figure 112010050817624-pct00069
가 증가하기 시작하는 경우에
Figure 112010050817624-pct00070
의 계산은 종료될 수도 있다.
요약하면, RD 양자화 유닛 (40) 은 CABAC 을 지원하는 비디오 코딩 프로세스에 대한 비디오 블록의 계수를 양자화할 수도 있다. RD 양자화 유닛 (40) 은 비디오 블록에 대한 양자화 계수의 복수의 세트를 발생시킬 수도 있는데, 여기서 양자화 계수의 각 세트는 비디오 블록의 계수 중 특정 계수가 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의되고, CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하며, 추정된 비용은 각각 양자화 계수의 세트 중 상이한 세트에 기초하고, 최저 비용과 연관된 양자화 계수의 세트 중 주어진 세트를 선택하며, 양자화 계수의 세트 중 주어진 세트를 CABAC 인코딩 유닛 (46) 으로 출력한다. CABAC 인코딩 유닛 (46) 은 이후 양자화 계수의 세트 중 주어진 세트에 대해 CABAC 프로세스를 수행하여, 양자화 계수의 세트 중 주어진 세트를 비트스트림으로 엔트로피-코딩하고, 이 비트스트림을 출력할 수도 있다.
양자화 유닛 (40) 은 레이트-왜곡 모델과 연관된 라그랑주 비용 함수를 계산함으로써 비용을 추정할 수도 있다. 양자화 계수의 세트 중 선택된 세트와 연관된 특정 비용은 복수의 비용과 연관된 최저 개수의 비트를 정의한다. 양자화 유닛 (40) 은, 특정 비용과 연관된 최저 개수의 비트를 표시하는 값을 저장할 수도 있다.
라그랑주 비용 함수는 양자화 계수의 세트에서 양자화 계수 각각과 연관된 개별 계수 라그랑주 비용의 세트를 정의할 수도 있다. 양자화 유닛 (40) 은 0, 바닥값 (floor value) 및 천장값 (ceiling value) 과 동일한 양자화 계수의 값에 대한 양자화 계수의 세트에서의 양자화 계수와 연관된 개별 계수 라그랑주 비용의 세트를 계산한다. 이들 값의 예는 상술된다. 일반적으로, 바닥값은 비디오 블록의 계수들의 개별적인 하나의 절대값, 양자화 파라미터, 및 양자화 매트릭스에 기초하고, 천장값은 바닥값 플러스 1 을 포함한다.
이 양자화 프로세스를 가속화시키기 위해, 양자화 유닛 (40) 은 상기에서 언급한 것과 같은 가속화 기술을 구현할 수도 있다. 예를 들어, 양자화 계수 중 개별적인 하나의 양자화 계수에 대해, 양자화 계수 중 개별적인 하나의 양자화 계수가 천장값보다 바닥값에 더 가까우면, 양자화 유닛 (40) 은 천장값과 동일한 값에 대한 양자화 계수 중 개별적인 하나의 양자화 계수와 연관된 개별 계수 라그랑주 비용의 계산을 스킵할 수도 있다.
또한, 양자화 계수의 세트 중 하나의 세트에 대한 비디오 블록의 최종 넌-제로 계수에 대응하는 비디오 블록의 계수 중 특정 계수가 천장값보다 바닥값에 더 가까운 값을 정의하고, 그 바닥값이 0 과 동일하면, RD 양자화 유닛 (40) 은 양자화 계수의 세트 중 하나의 세트에 대한 비디오 블록을 코딩하는 것과 연관되는 특정 비용을 추정하는 것을 스킵할 수도 있다. 또한, 비디오 블록의 계수의 값이 감소함에 따라 이 세트 중 특정 하나의 세트와 연관된 특정 라그랑주 비용을 정의하기 위한 합산이 증가하기 시작하는 경우에, RD 양자화 유닛 (40) 은 이 세트 중 특정 하나의 세트와 연관된 복수의 비용을 추정하는 것을 종료할 수도 있다. 인코딩된 비디오의 품질을 열화시키지 않고 양자화 프로세스를 가속화시키기 위해 이들 기술 또는 다른 기술이 이용될 수도 있다.
도 4 는, 본 명세서에서 설명된 방식으로 코딩되는 비디오 시퀀스를 디코딩하는 비디오 디코더 (60) 의 예를 도시한 블록도이다. 비디오 디코더 (60) 는 도 3 의 CABAC 유닛 (46) 에 의해 수행된 인코딩의 상호 디코딩 기능을 수행하는 CABAC 디코딩 유닛 (52) 을 포함한다.
비디오 디코더 (60) 는 비디오 프레임 내의 블록의 인트라- 및 인터-디코딩을 수행할 수도 있다. 도 4 의 실시예에서, 비디오 디코더 (60) 는 CABAC 디코딩 유닛 (52)(상기에서 언급되지 않음), 모션 보상 유닛 (54), 역양자화 유닛 (56), 역변환 유닛 (58), 및 참조 프레임 저장소 (62) 를 포함한다. 비디오 디코더 (60) 는 합산기 (64) 를 더 포함한다. 옵션으로, 비디오 디코더 (60) 는 합산기 (64) 의 출력을 필터링하는 디블로킹 필터 (미도시) 를 더 포함할 수도 있다. 도 4 는 비디오 블록의 인터-코딩을 위한 비디오 디코더 (60) 의 시간 예측 컴포넌트를 도시한다. 도 4 에 도시되지 않았지만, 비디오 디코더 (60) 는 또한 몇몇 비디오 블록의 인트라-디코딩을 위한 시간 예측 컴포넌트를 포함할 수도 있다.
CABAC 디코딩 유닛 (52) 에 의해 수행되는 CABAC 디코딩 후에, 모션 보상 유닛 (54) 은 참조 프레임 저장소 (62) 로부터 하나 이상의 복원된 참조 프레임 및 모션 벡터를 수신한다. 역양자화 유닛 (56) 은 양자화 블록 계수를 역양자화, 즉, 양자화복원한다. 역양자화 프로세스는 H.264 디코딩에 의해 정의된 것과 같은 종래의 프로세스일 수도 있다. 역변환 유닛 (58) 은 픽셀 도메인에 잔여 블록을 생성하기 위해 변환 계수에 역변환, 예를 들여, 역 DCT 또는 개념상 유사한 역변환 프로세스를 적용한다. 모션 보상 유닛 (54) 은 잔여 블록과 합산기 (64) 에 의해 합산되는 모션 보상된 블록을 생성하여, 디코딩된 블록을 형성한다. 원한다면, 블로키니스 아티팩트를 제거하기 위해 디블로킹 필터가 또한 적용되어 디코딩된 블록을 필터링한다. 이후, 모션 보상으로부터 참조 블록을 제공하고 또한 디코딩된 비디오를 (도 1 의 디바이스 (28) 과 같은) 드라이브 디스플레이 디바이스에 생성하는 참조 프레임 저장소 (62) 에, 이 필터링된 블록이 놓인다.
도 5 는 비디오 인코더 (50) 에 의해 수행되는 1-패스 기술을 도시한 흐름도이다. 도시된 바와 같이, 레이트-왜곡 (RD) 양자화 유닛 (40) 은 넌-제로 계수 가정에 기초하여 양자화 계수의 세트를 발생시킨다 (101). 특히, RD 양자화 유닛 (40) 은 주어진 계수가 최종 넌-제로 계수라고 가정하고, 이 가정에 기초하여 비디오 블록에 대한 계수의 세트를 계산한다. RD 양자화 유닛 (40) 은 다음으로 다른 계수가 최종 넌-제로 계수라고 가정하고, 이 가정에 기초하여 비디오 블록에 대한 계수의 다른 세트를 발생시킨다 (등등).
양자화 계수의 세트 각각에 대해, 양자화 유닛은 라그랑주 비용 함수에 기초하여 비용을 추정한다 (102). 특히, 각 세트에 대해, RD 양자화 유닛 (40) 은 복수의 가능한 값, 예를 들어, 0, 바닥값, 및 천장값에서 각 계수에 대한 개별 라그랑주 비용 함수를 결정한다. 바닥값은 비디오 블록의 계수들의 개별적인 하나의 절대값, 양자화 파라미터, 및 양자화 매트릭스 (또는 그 파라미터) 에 기초할 수도 있고, 천장값은 그 바닥값 플러스 1 을 포함할 수도 있다.
RD 양자화 유닛 (40) 은 최저 전체 라그랑주 비용을 갖는 양자화 계수의 세트를 선택한다 (103). 특히, RD 양자화 유닛 (40) 은 세트의 각 계수에 대한 최저의 개별적인 라그랑주 비용을 합산하고, 각 가능한 세트에 대해 이 프로세스를 반복한다. 게다가 또, 라그랑주 비용은 레이트 및 왜곡의 비용의 균형을 맞춘다. RD 양자화 유닛 (40) 은 전체 최저 라그랑주를 갖는 세트를 선택하고 (103), RD 양자화 유닛 (40) 은 양자화 계수의 선택된 세트를 CABAC 인코딩 유닛 (46) 으로 출력한다 (104). CABAC 인코딩 유닛 (46) 은 양자화 계수의 선택된 세트 및 임의의 다른 구문 파라미터에 기초하여 CABAC 을 수행하여, 코딩된 비트스트림을 발생시키고 (105), 이 코딩된 비트스트림을 출력한다 (106).
도 6 은 비용을 추정하는 예시적인 프로세스를 보다 상세히 도시한 다른 흐름도이다. 특히, 양자화 유닛 (40) 은 0, 바닥값, 및 천장값의 값의 각 계수에 대한 개별 라그랑주 비용 함수를 계산한다. 게다가 또, 바닥값은 비디오 블록의 계수들의 개별적인 하나의 절대값, 양자화 파라미터, 및 양자화 매트릭스 (또는 이 매트릭스로부터 매핑된 파라미터) 에 기초할 수도 있고, 천장값은 이 바닥값 플러스 1 을 포함할 수도 있다.
상기에 기재된 바와 같이, RD 양자화 유닛 (40) 이 4×4 블록에 대한 계수
Figure 112010050817624-pct00071
의 바닥값 (
Figure 112010050817624-pct00072
) 및 천장값 (
Figure 112010050817624-pct00073
) 을 계산할 수 있는 방법의 일례는 다음과 같다:
Figure 112010050817624-pct00074
게다가 또, 바닥 연산 (Ifloat) 은 Ifloat 와 연관된 최저값을 나타내고, QP 는 양자화 파라미터를 나타내며, Q 는 H.264/AVC 에 대해 정의된 양자화 매트릭스와 같은 양자화 매트릭스를 나타낸다. QP%6 의 값, i 및 j 는 매트릭스 Q 로부터 파라미터를 정의하는데 이용될 수도 있다. 함수 % 는 모듈러 분할을 나타낸다.
RD 양자화 유닛 (40) 은 각 계수에 대한 최저 비용 개별 계수 라그랑주 비용 함수를 선택하고 (111), 예를 들어, 선택된 개별 계수 라그랑주 비용을 합산함으로써, 세트에 대한 전체 라그랑주 비용을 결정한다 (112). 고려할 양자화 계수의 다른 세트가 있으면 (예 가지 113), RD 양자화 유닛 (40) 은 이 단계 프로세스 (110-112) 를 반복한다. 특히, 주어진 계수가 최종 넌-제로 계수라는 가정에 의해 정의된 계수의 각 세트에 대해, 양자화 유닛 (40) 은 이 단계 프로세스 (110-112) 를 반복한다. 일단 (최종 넌-제로 계수 가정에 의해 정의된) 양자화 계수의 각 가능한 세트에 대해 전제 라그랑주 비용이 결정되었으면, RD 양자화 유닛 (40) 은 최저 전체 라그랑주 비용을 갖는 양자화 계수의 세트를 선택한다 (114).
도 7 내지 도 9 는 양자화 계수의 품질을 실질적으로 희생하지 않고 양자화 프로세스를 가속화하는데 이용될 수도 있는 옵션 기술을 도시한다. 도 7 내지 도 9 의 기술은 개별적으로 또는 집합적으로 이용될 수도 있다. 도 7 내지 도 9 의 기술은 1-패스 양자화 프로세스에 가장 적용가능하지만, 이들 기술 (특히, 도 7 의 기술) 의 몇몇은 또한 이하 보다 상세히 다뤄지는 2-패스 양자화에 유용할 수도 있다. 도 7 에 도시된 바와 같이, 개별 양자화 계수가 천장보다 바닥에 더 가까우면 (121 의 예 가지), RD 양자화 유닛 (40) 은 천장값인 개별 양자화 계수와 연관된 개별 계수 라그랑주 비용의 계산을 스킵할 수도 있다 (122). 이 경우에, RD 양자화 유닛 (40) 은 개별 양자화 계수와 연관된 개별 계수 라그랑주 비용이 0 이나 바닥값 중 어느 하나로 최소화될 것이라고 가정할 수도 있다. 따라서, 이 경우에, RD 양자화 유닛 (40) 은 천장값인 개별 양자화 계수와 연관된 라그랑주 비용의 계산과 연관된 불필요한 산정을 피할 수도 있다. 그러나, 개별 양자화 계수가 천장보다 바닥에 가깝지 않으면 (121 의 아니오 가지), 계산은 스킵되지 않는다 (123).
도 8 의 기술에서, RD 양자화 유닛 (40) 은 바닥값이 0 과 동일한지 여부 (131) 및 최종 넌-제로 계수에 대응하는 특정 계수가 천장보다 바닥에 더 가까운지 여부 (132) 를 판정한다. 이들 우발성 (contingency) 양자가 사실이면 (132 의 예 가지 및 132 의 예 가지), RD 양자화 유닛 (40) 은 그 특정 최종 넌-제로 계수와 연관된 양자화 계수의 특정 세트에 대한 비디오 블록을 코딩하는 것과 연관되는 특정 비용을 추정하는 것을 스킵할 수도 있다 (133). 이 경우에, RD 양자화 유닛 (40) 은 양자화 계수의 그 특정 세트에 대한 전체 라그랑주 비용이 최소값을 포함하지 않을 것이고, 그 값이 완전히 계산되더라도 선택되지 않을 것이라고 가정할 수도 있다. 따라서, 그 특정 비용의 산정은 이 경우에 스킵될 수도 있다. 그러나, 이들 우발성 중 어느 하나가 거짓이면 (131 의 아니오 가지 또는 132 의 아니오 가지), RD 양자화 유닛 (40) 은 특정 비용의 추정을 스킵하지 않는다. 도 8 의 기술은 몇몇 불필요한 산정을 피하기 위한 RD 양자화 유닛 (40) 의 다른 방법이다.
도 9 의 기술에서, RD 양자화 유닛 (40) 은 특정 비용을 정의하는 합산을 모니터링, 즉, 계수의 주어진 세트와 연관된 전체 라그랑주 비용을 정의하는 양자화 계수 각각에 대한 개별 라그랑주 비용의 합산을 모니터링한다. 비디오 블록의 계수의 값이 감소함에 따라 특정 비용 중 하나를 정의하는 합산이 증가하기 시작하면 (141 의 예 가지), RD 양자화 유닛 (40) 은 그 세트에 대한 복수의 비용의 추정을 종료한다 (142). 이 경우에, RD 양자화 유닛 (40) 은 계수의 주어진 세트와 연관된 전체 라그랑주 비용이 전체 최소값이 될 것이라고 가정할 수도 있다. 따라서, 단계 141 의 우발성이 식별되는 경우 (141 의 예 가지), 산정을 피할 수도 있다. 비디오 블록의 계수의 값이 감소함에 따라 합산이 증가하지 않는 경우 (141 의 아니오 가지), 산정이 종료하지 않는다 (143).
상기에 언급한 바와 같이, 본 개시물은 또한 2-패스 접근방식을 예기한다. 2-패스 접근방식에서, 본 개시물의 기술은 제 1 패스에서 비디오 블록의 최종 넌-제로 계수를 추정한 후, 추정된 최종 넌-제로 계수가 실제로 비디오 블록의 최종 넌-제로 계수라는 가정에 기초하여 제 2 패스에서 비디오 블록에 대한 양자화 계수의 세트를 발생시키는 것을 포함할 수도 있다. 별개의 추정 패스는 최종 넌-제로 계수로서 정확한 계수를 가지지 않는 양자화 계수의 세트와 연관된 산정을 수행할 필요를 제거할 수도 있다. 본 개시물에 따르면, RD 양자화 유닛 (40) 은 이하 보다 상세히 개괄되는 2-패스 접근방식에 따라 양자화 계수를 발생시킬 수도 있다.
단일 패스 접근방식과 같이, 이하 논의되는 제안된 2-패스 알고리즘은 양자화 계수 값 lij (이에 대한 총 라그랑주 비용 함수
Figure 112010050817624-pct00075
의 값은 그 최소값에 가까움) 을 구한다. 2-패스 접근방식은 철저한 검색에 기초하여 총 라그랑주 비용 함수
Figure 112010050817624-pct00076
을 최소화하는 방법보다 낮은 복잡도를 특징으로 할 수도 있다.
각 계수
Figure 112010050817624-pct00077
에 대해, 레벨
Figure 112010050817624-pct00078
의 많아야 3 개의 가능한 값이 테스트될 수 있다: 0,
Figure 112010050817624-pct00079
Figure 112010050817624-pct00080
. 단일 패스 예에서와 같이, 이 2-패스 접근방식에서, 4×4 블록 값
Figure 112010050817624-pct00081
Figure 112010050817624-pct00082
이 다음과 같이 계산될 수도 있다:
Figure 112010050817624-pct00083
또한, 복잡도를 감소시키기 위해, (예를 들어,
Figure 112010050817624-pct00084
Figure 112010050817624-pct00085
또는
Figure 112010050817624-pct00086
사이의 절대 거리에 의해 측정되는 바와 같이) 계수
Figure 112010050817624-pct00087
Figure 112010050817624-pct00088
보다
Figure 112010050817624-pct00089
에 더 가까우면,
Figure 112010050817624-pct00090
값만이 고려된다. 계수
Figure 112010050817624-pct00091
가 레벨 1 보다 0 에 더 가까우면, 임의의 추가 분석 없이 레벨 0 이 할당될 수도 있다. 바꾸어 말하면, 도 7 의 기술은 2-패스 접근방식의 제 2 패스 동안에 적용될 수도 있다.
1차원의 순서화된 계수 벡터를 야기하는 (예를 들어, 도 3 에 도시된 것과 같은) 지그재그 스캐닝을 이용하여 주어진 블록에서의 계수가 순서화 (스캐닝) 된다고 가정할 수도 있다. 순서화된 계수는
Figure 112010050817624-pct00092
로 나타낼 수 있는데, 여기서 i = 0,..., M 이고, 예를 들어, M 은 4×4 블록에 대해서는 15 와 동일하고, 8×8 블록에 대해서는 63 과 동일하다.
RD 양자화 유닛 (40) 은 사인 비트에 더하여
Figure 112010050817624-pct00093
의 값을 코딩하는데 필요한 비트를 계산하기 위해 다음의 심볼을 이용할 수도 있다:
계수가 넌-제로인지 여부를 표시하는 significant_coeff_flag,
최종 넌-제로 계수를 표시하는 last_significant_coeff_flag, 및
계수의 절대값 마이너스 1 을 나타내는 coeff_abs_level_minus 1.
significant_coeff_flag 및 last_significant_coeff_flag 의 경우에, 컨텍스트, 및 심볼을 코딩하는데 필요한 비트는 스캐닝 위치 i 에만 종속될 수도 있다. 그러나, (예를 들어, 제 1 빈 - greater_than_1 심볼을 포함하는) coeff_abs_level_minus 1 의 빈에 대한 컨텍스트는 역방향으로 스캐닝된 다른 넌-제로 레벨의 값에 종속할 수도 있다. 다시 말해,
Figure 112010050817624-pct00094
에 대한 컨텍스트는 인덱스 j (j>i) 를 갖는 양자화 계수의 값에 종속한다.
따라서, RD 양자화 유닛 (40) 은 2 개의 별개 패스에서 양자화 계수/레벨
Figure 112010050817624-pct00095
를 획득할 수도 있다. 제 1 패스에서, RD 양자화 유닛 (40) 은 어떤 계수가 최종 넌-제로 계수여야 하는지를 추정할 수도 있다. 이 추정된 최종 넌-제로 계수는
Figure 112010050817624-pct00096
로 나타낼 수 있다. 제 2 패스에서, RD 양자화 유닛 (40) 은, 계수
Figure 112010050817624-pct00097
가 실제 블록의 최종 넌-제로 계수라고 가정할 때 양자화 계수의 마지막 값을 결정 및 발생시킬 수 있다.
구현 시에, 계수
Figure 112010050817624-pct00098
만이 RD 양자화 유닛 (40) 에 의해 제 1 패스에서 고려될 수 있다.
Figure 112010050817624-pct00099
는 i 의 최대값이고, 그것에 대해
Figure 112010050817624-pct00100
,
Figure 112010050817624-pct00101
는 i 의 최대값이고, 그것에 대해
Figure 112010050817624-pct00102
이거나, 이러한 인덱스가 존재하지 않으면,
Figure 112010050817624-pct00103
이다.
게다가, 복잡도를 감소시키기 위해, 다음과 같이, 계수
Figure 112010050817624-pct00104
Figure 112010050817624-pct00105
으로 양자화되는 경우,
Figure 112010050817624-pct00106
의 값은 양자화 에러
Figure 112010050817624-pct00107
의 합계로서 사전-계산될 수도 있다.
Figure 112010050817624-pct00108
RD 양자화 유닛 (40) 은 제 1 패스에서 다음의 단계 중 일부 또는 전부를 실행할 수도 있는데, 이는 비디오 블록의 최종 넌-제로 계수를 추정하는데 이용된다.
1) 계수
Figure 112010050817624-pct00109
에 대해,
Figure 112010050817624-pct00110
:
a)
Figure 112010050817624-pct00111
의 값을 업데이트함:
Figure 112010050817624-pct00112
b)
Figure 112010050817624-pct00113
이 최종 넌-제로 계수인 경우에 블록의 라그랑주 비용
Figure 112010050817624-pct00114
의 근사치를 계산함:
Figure 112010050817624-pct00115
이 경우에, bitslast =1
Figure 112010050817624-pct00116
가 최종 넌-제로 계수인 것을 표시하는데 필요한 비트의 수 (1 과 동일한 last_significant_coeff_flag 를 인코딩하기 위한 비트의 수) 의 근사치이다. 게다가, bitslast =0
Figure 112010050817624-pct00117
가 최종 넌-제로 계수가 아닌 것을 표시하는데 필요한 비트의 수 (즉, 0 과 동일한 last_significant_coeff_flag 를 인코딩하기 위한 비트의 수) 의 근사치이다.
c) 시작하는 인덱스
Figure 112010050817624-pct00118
Figure 112010050817624-pct00119
로 업데이트함.
2) 계수
Figure 112010050817624-pct00120
(
Figure 112010050817624-pct00121
) 에 대해:
a)
Figure 112010050817624-pct00122
의 값을 업데이트함:
Figure 112010050817624-pct00123
b)
Figure 112010050817624-pct00124
가 0 으로 양자화되는 경우에 라그랑주 비용
Figure 112010050817624-pct00125
을 구함.
c)
Figure 112010050817624-pct00126
가 1 보다 0 에 더 가까우면, 다음과 같이:
Figure 112010050817624-pct00127
Figure 112010050817624-pct00128
의 업데이트 값을 계산
d)
Figure 112010050817624-pct00129
가 0 보다 1 에 더 가까우면, 라그랑주 비용의 2 개의 추가 값을 계산:
ⅰ)
Figure 112010050817624-pct00130
은 1 로 양자화되고 최종 넌-제로 계수가 아니다.
ⅱ)
Figure 112010050817624-pct00131
은 1 로 양자화되고 최종 넌-제로 계수이다.
Figure 112010050817624-pct00132
의 업데이트 값:
Figure 112010050817624-pct00133
Figure 112010050817624-pct00134
가 최종 넌-제로 계수인 경우에 라그랑주 비용
Figure 112010050817624-pct00135
의 근사치는:
Figure 112010050817624-pct00136
1 과 동일한 양자화 계수의 값을 코딩하는데 필요한 비트를 계산하는 경우, RD 양자화 유닛 (40) 은 greater_than_1 심볼에 대한 컨텍스트를 5 개의 가능한 값 중 하나인 것으로 고정한다.
Figure 112010050817624-pct00137
의 최소 대응하는 값을 갖는 계수를 갖는
Figure 112010050817624-pct00138
는 블록에서의 최종 넌-제로 계수인 것으로 가정된다.
상기의 단계에서, RD 양자화 유닛 (40) 은 모든 가능한 최종 넌-제로 계수에 대한 모든 가능한 시나리오를 명시적으로 고려하지 않고 비디오 블록의 최종 넌-제로 계수를 추정한다. 이 경우에, RD 양자화 유닛 (40) 은 CABAC 을 통해 비디오 블록을 코딩하는 것과 관련되는 비용을 근사함으로써 최종 넌-제로 계수를 추정한다. 근사된 비용 중 상이한 비용은 최종 넌-제로 계수인 상이한 계수에 대응한다. 마지막 추정된 최종 넌-제로 계수는 최저 근사된 비용을 정의한다. 단계 1 은 특별한 경우로 간주될 수도 있지만, 단계 2 는 대부분의 계수에 대해 수행될 수도 있다.
상기의 단계에서, RD 양자화 유닛 (40) 은 비디오 블록의 계수 각각을 최종 넌-제로 계수인 것으로 순차적으로 간주함으로써 순차 방식으로 근사된 비용 중 상이한 비용을 정의한다. 이렇게 함으로써, RD 양자화 유닛 (40) 은 비디오 블록의 계수의 각각을 최종 넌-제로 계수인 것으로 간주하는 경우에 상향 및 하향으로 누적된 비용을 순차 조정한다. 특히, 상기 단계 2 (a)(여기서
Figure 112010050817624-pct00139
Figure 112010050817624-pct00140
로서 업데이트됨) 는 누적된 비용을 감소되게 할 수도 있다. 이 경우에, 단계 2 (a) 는
Figure 112010050817624-pct00141
이 보다 작게 되게 할 수도 있다. 한편, 단계 2 (c) 및 2 (d)(여기서
Figure 112010050817624-pct00142
의 값은
Figure 112010050817624-pct00143
로 또는
Figure 112010050817624-pct00144
로 업데이트됨) 는 누적된 비용이 보다 크게 되게 할 수도 있다. 따라서, RD 양자화 유닛 (40) 은 비디오 블록의 계수 각각을 최종 넌-제로 계수인 것으로 순차적으로 간주함으로써 순차 방식으로 근사된 비용 중 상이한 비용을 정의하고, 이렇게 함에 있어서 상향 및 하향 조정으로 전체 비용을 누적한다. 이러한 방식으로, RD 양자화 유닛 (40) 은 모든 가능한 최종 넌-제로 계수에 대해 모든 가능한 시나리오를 명시적으로 고려하지 않고 비디오 블록의 최종 넌-제로 계수를 추정한다.
일단 RD 양자화 유닛 (40) 이 최종 넌-제로 계수를 추정하였으면, RD 양자화 유닛 (40) 은, 추정된 최종 넌-제로 계수가 실제로 비디오 블록의 최종 넌-제로 계수라는 가정에 기초하여 비디오 블록에 대한 양자화 계수의 세트를 발생시키는 제 2 패스를 수행할 수도 있다. 특히, 제 2 패스에서, 제 1 패스에서 선택된 계수
Figure 112010050817624-pct00145
가 실제로 비디오 블록에서의 최종 넌-제로 계수라고 가정할 때 RD 양자화 유닛 (40) 은 각 양자화 계수에 대한 마지막 값을 결정한다. 이 경우에, 각 계수
Figure 112010050817624-pct00146
에 대해, RD 양자화 유닛 (40) 은 레벨
Figure 112010050817624-pct00147
의 값 (이에 대한 라그랑주 비용
Figure 112010050817624-pct00148
이 최소화됨) 을 구한다. 이전에 설명한 바와 같이, 레벨
Figure 112010050817624-pct00149
의 3 개의 상이한 값, 예를 들어, 0,
Figure 112010050817624-pct00150
Figure 112010050817624-pct00151
이 고려될 수도 있다. 레벨
Figure 112010050817624-pct00152
의 값을 인코딩하는 경우에 컨텍스트를 계산하기 위해, 레벨
Figure 112010050817624-pct00153
에 대해 이미 선택된 값이 이용될 수도 있다.
바꾸어 말하면, 양자화 계수의 세트를 발생시키는 것은, 0, 바닥값 및 천정값과 동일한 값을 갖는 것으로 비디오 블록에 대한 양자화 계수의 세트에서의 각각의 가능한 넌-제로 양자화 계수와 연관된 라그랑주 비용을 계산하는 것을 포함할 수도 있다. 게다가 또, 바닥값은 비디오 블록의 계수의 개별적인 하나의 절대값, 양자화 파라미터, 및 양자화 매트릭스에 기초할 수도 있고, 천정값은 이 바닥값 플러스 1 을 포함할 수도 있다.
도 10 은 상기에 개괄된 2-패스 접근방식을 이용할 수도 있는 인코딩 기술을 도시한 흐름도이다. 이 경우에, RD 양자화 유닛 (40) 은 비디오 블록의 최종 넌-제로 계수를 추정한다 (151). 상기에서 설명한 바와 같이, 이 추정 단계 (151) 는 CABAC 을 통해 비디오 블록을 코딩하는 것과 연관되는 비용을 근사하는 것을 포함할 수도 있고, 근사된 비용 중 상이한 비용은 최종 넌-제로 계수인 상이한 계수에 대응할 수도 있다. 이 경우에, 마지막 추정된 최종 넌-제로 계수는 최저 근사된 비용을 정의한다.
게다가, 추정 단계 (151) 중에, RD 양자화 유닛 (40) 은 최종 넌-제로 계수인 것으로 비디오 블록의 계수 각각을 순차적으로 간주함으로써 순차 방식으로 근사된 비용 중 상이한 비용을 정의할 수도 있다. 이렇게 함으로써, RD 양자화 유닛 (40) 은 비디오 블록의 계수 각각을 최종 넌-제로 계수인 것으로 간주하는 경우에 상향 및 하향으로 누적된 비용을 순차 조정한다.
다음으로, RD 양자화 유닛 (40) 은 추정된 최종 넌-제로 계수가 사실 최종 넌-제로 계수라는 가정에 기초하여 양자화 계수의 세트를 발생시킨다 (152). 발생 단계 (152) 는 0 과 동일한 값을 갖는 것으로 비디오 블록에 대한 양자화 계수의 세트에서의 각각의 가능한 넌-제로 양자화 계수와 연관된 라그랑주 비용을 계산하는 것을 포함할 수도 있다. 일단 발생하면, RD 양자화 유닛 (40) 은 양자화 계수의 세트를 CABAC 유닛 (46) 으로 출력할 수도 있는데, 이 CABAC 유닛 (46) 은 양자화 계수의 발생된 세트에 대해 CABAC 을 수행하여 양자화 계수의 발생된 세트를 비트스트림으로 엔트로피 코딩한다 (153). 인코딩된 비트스트림은 이후 출력되고, 가능하면 변조되고 다른 디바이스로 송신될 수 있다.
본 개시물의 기술은, 무선 핸드셋, 및 집적 회로 (IC) 또는 IC 의 세트 (즉, 칩 세트) 를 포함하는 매우 다양한 디바이스 또는 장치에서 구체화될 수도 있다. 임의의 컴포넌트, 모듈 또는 유닛이 기능적인 양태를 강조하기 위해 제공되는 것으로 설명되었고, 상이한 하드웨어 유닛 등에 의해 반드시 실현을 필요로 하지는 않는다.
따라서, 본 명세서에서 설명된 기술은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 모듈 또는 컴포넌트로 설명되는 임의의 특징은 집적 로직 디바이스와 함께 또는 분리되어 있지만 상호동작가능한 로직 디바이스로 별개로 구현될 수도 있다. 소프트웨어로 구현되면, 이 기술은, 실행되는 경우에 상술한 방법 중 하나 이상을 수행하는 명령을 포함하는 컴퓨터-판독가능 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터-판독가능 데이터 저장 매체는 패키징 재료를 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터-판독가능 매체는 SDRAM (synchronous dynamic random access) 과 같은 RAM (random access memory), ROM (read-only memory), NVRAM (non-volatile random access memory), EEPROM (electrically erasable programmable read-only memory), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수도 있다. 추가적으로 또는 다른 방법으로, 이 기술은, 명령 또는 데이터 구조의 형태로 코드를 반송 또는 통신하고 컴퓨터에 의해 액세스, 판독, 및/또는 실행될 수 있는 컴퓨터-판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
이 코드는 하나 이상의 프로세서, 예를 들어, 하나 이상의 DSP (digital signal processor), 범용 마이크로프로세서, ASIC (application specific integrated circuit), FPGA (field programmable logic array), 또는 다른 등가의 집적 또는 이산 로직 회로에 의해 실행될 수도 있다. 따라서, 본 명세서에서 이용되는 바와 같이, 용어 "프로세서"는 본 명세서에서 설명된 기술의 구현예에 적절한 전술한 구조 또는 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 또한, 몇몇 양태에서, 본 명세서에서 설명된 기능성은 CODEC (combined video encoder-decoder) 에 통합되거나 인코딩 및 디코딩을 위해 구성된 집적 소프트웨어 모듈 또는 하드웨어 모듈 내에 제공될 수도 있다. 또한, 이 기술은 하나 이상의 회로 또는 로직 엘리먼트에서 완전히 구현될 수 있다.
본 개시물의 다양한 양태를 설명하였다. 이들 양태 및 다른 양태는 다음의 청구범위 내에 있다.

Claims (52)

  1. CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하는 방법으로서,
    상기 비디오 블록에 대한 양자화된 계수의 복수의 세트를 발생시키는 단계로서, 상기 양자화된 계수의 각 세트는 상기 비디오 블록의 계수 중 특정 계수가 상기 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의되는, 상기 발생 단계;
    상기 CABAC 을 통해 상기 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하는 단계로서, 상기 추정된 비용은 각각 상기 양자화된 계수의 세트 중 상이한 세트에 기초하고, 상기 복수의 비용을 추정하는 단계는 레이트-왜곡 모델과 연관된 라그랑주 비용 함수를 계산하는 단계를 포함하고, 상기 라그랑주 비용 함수는 상기 양자화된 계수의 세트에서의 상기 양자화된 계수 각각과 연관된 개별 계수 라그랑주 비용의 세트를 정의하는, 상기 추정 단계;
    0 의 값, 바닥값 (floor value) 및 천장값 (ceiling value) 과 동일한 상기 양자화된 계수의 값들에 대한 양자화된 계수의 세트에서의 상기 양자화된 계수와 연관된 상기 개별 계수 라그랑주 비용의 세트를 계산하는 단계; 및
    상기 복수의 비용 중 최저 비용과 연관된 상기 양자화된 계수의 세트 중 주어진 세트를 선택하는 단계로서, 상기 양자화된 계수의 세트 중 선택된 세트와 연관된 특정 비용은 상기 복수의 비용과 연관된 비트의 최저 개수를 정의하는, 상기 선택 단계를 포함하는, 계수 양자화 방법.
  2. 제 1 항에 있어서,
    상기 양자화된 계수의 세트 중 상기 주어진 세트를 출력하는 단계를 더 포함하는, 계수 양자화 방법.
  3. 제 2 항에 있어서,
    상기 양자화된 계수의 세트 중 상기 주어진 세트를 수신하는 단계;
    상기 양자화된 계수의 세트 중 상기 주어진 세트에 대해 CABAC 을 수행하여, 상기 양자화된 계수의 세트 중 상기 주어진 세트를 비트스트림으로 엔트로피-코딩하는 단계; 및
    상기 비트스트림을 출력하는 단계를 더 포함하는, 계수 양자화 방법.
  4. 제 1 항에 있어서,
    상기 특정 비용과 연관된 상기 비트의 최저 개수를 표시하는 값을 저장하는 단계를 더 포함하는, 계수 양자화 방법.
  5. 제 1 항에 있어서,
    상기 바닥값은 상기 비디오 블록의 계수의 개별적인 계수의 절대값, 양자화 파라미터, 및 양자화 매트릭스에 기초하고,
    상기 천장값은 상기 바닥값 플러스 1 을 포함하는, 계수 양자화 방법.
  6. 제 1 항에 있어서,
    상기 양자화된 계수의 개별적인 계수에 대해,
    상기 양자화된 계수의 개별적인 계수가 상기 천장값보다 상기 바닥값에 더 가까우면, 상기 천장값과 동일한 값에 대한 상기 양자화된 계수의 개별적인 계수와 연관된 개별 계수 라그랑주 비용의 계산을 스킵하는 단계를 더 포함하는, 계수 양자화 방법.
  7. 제 1 항에 있어서,
    상기 양자화된 계수의 세트 중 하나의 세트에 대한 상기 비디오 블록의 상기 최종 넌-제로 계수에 대응하는 상기 비디오 블록의 계수 중 특정 계수가 상기 천장값보다 상기 바닥값에 더 가까운 값을 정의하는 경우, 및 상기 바닥값이 0 과 동일한 경우, 상기 양자화된 계수의 세트 중 하나의 세트에 대한 상기 비디오 블록을 코딩하는 것과 연관되는 특정 비용을 추정하는 것을 스킵하는 단계를 더 포함하는, 계수 양자화 방법.
  8. 제 1 항에 있어서,
    상기 비디오 블록의 계수의 값을 감소시킴에 따라 상기 세트 중 특정 세트와 연관된 특정 라그랑주 비용을 정의하는 합산이 증가하기 시작하는 경우에, 상기 세트 중 특정 세트와 연관된 상기 복수의 비용을 추정하는 것을 종료하는 단계를 더 포함하는, 계수 양자화 방법.
  9. 실행 시에 디바이스로 하여금, CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에서 비디오 블록의 계수를 양자화하게 하는 명령을 포함하는 컴퓨터-판독가능 매체로서,
    상기 명령은 상기 디바이스로 하여금,
    상기 비디오 블록에 대한 양자화된 계수의 복수의 세트를 발생시키게 하되, 상기 양자화된 계수의 각 세트는 상기 비디오 블록의 계수 중 특정 계수가 상기 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의되고;
    상기 CABAC 을 통해 상기 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하게 하되, 상기 추정된 비용은 각각 상기 양자화된 계수의 세트 중 상이한 세트에 기초하고, 상기 복수의 비용을 추정하는데 있어, 상기 명령은 상기 디바이스로 하여금 레이트-왜곡 모델과 연관된 라그랑주 비용 함수를 계산하게 하며, 상기 라그랑주 비용 함수는 상기 양자화된 계수의 세트에서의 상기 양자화된 계수 각각과 연관된 개별 계수 라그랑주 비용의 세트를 정의하고;
    0 의 값, 바닥값 (floor value) 및 천장값 (ceiling value) 과 동일한 상기 양자화된 계수의 값들에 대한 양자화된 계수의 세트에서의 상기 양자화된 계수와 연관된 상기 개별 계수 라그랑주 비용의 세트를 계산하게 하며;
    상기 복수의 비용 중 최저 비용과 연관된 상기 양자화된 계수의 세트 중 주어진 세트를 선택하게 하되, 상기 양자화된 계수의 세트 중 선택된 세트와 연관된 특정 비용은 상기 복수의 비용과 연관된 비트의 최저 개수를 정의하는, 컴퓨터-판독가능 매체.
  10. 제 9 항에 있어서,
    상기 명령은 상기 디바이스로 하여금,
    양자화 유닛으로부터 상기 양자화된 계수의 세트 중 상기 주어진 세트를 출력하게 하는, 컴퓨터-판독가능 매체.
  11. 제 10 항에 있어서,
    상기 명령은 디바이스로 하여금,
    상기 양자화 유닛으로부터 상기 양자화된 계수의 세트 중 상기 주어진 세트를 수신하게 하고;
    상기 양자화된 계수의 세트 중 상기 주어진 세트에 대해 CABAC 을 수행하여, 상기 양자화된 계수의 세트 중 상기 주어진 세트를 비트스트림으로 엔트로피-코딩하게 하며;
    CABAC 유닛으로부터 상기 비트스트림을 출력하게 하는, 컴퓨터-판독가능 매체.
  12. 제 9 항에 있어서,
    상기 명령은 상기 디바이스로 하여금, 상기 특정 비용과 연관된 상기 비트의 최저 개수를 표시하는 값을 저장하게 하는, 컴퓨터-판독가능 매체.
  13. 제 9 항에 있어서,
    상기 바닥값은 상기 비디오 블록의 계수의 개별적인 계수의 절대값, 양자화 파라미터, 및 양자화 매트릭스에 기초하고,
    상기 천장값은 상기 바닥값 플러스 1 을 포함하는, 컴퓨터-판독가능 매체.
  14. 제 9 항에 있어서,
    상기 양자화된 계수의 개별적인 계수에 대해,
    상기 양자화된 계수의 개별적인 계수가 상기 천장값보다 상기 바닥값에 더 가까우면, 상기 명령은 상기 디바이스로 하여금, 상기 천장값과 동일한 값에 대한 상기 양자화된 계수의 개별적인 계수와 연관된 개별 계수 라그랑주 비용의 계산을 스킵하게 하는, 컴퓨터-판독가능 매체.
  15. 제 9 항에 있어서,
    상기 양자화된 계수의 세트 중 하나의 세트에 대한 상기 비디오 블록의 상기 최종 넌-제로 계수에 대응하는 상기 비디오 블록의 계수 중 특정 계수가 상기 천장값보다 상기 바닥값에 더 가까운 값을 정의하는 경우, 및 상기 바닥값이 0 과 동일한 경우, 상기 명령은 상기 다바이스로 하여금, 상기 양자화된 계수의 세트 중 하나의 세트에 대한 상기 비디오 블록을 코딩하는 것과 연관되는 특정 비용을 추정하는 것을 스킵하게 하는, 컴퓨터-판독가능 매체.
  16. 제 9 항에 있어서,
    상기 명령은 상기 디바이스로 하여금, 상기 비디오 블록의 계수의 값을 감소시킴에 따라 상기 세트 중 특정 세트와 연관된 특정 라그랑주 비용을 정의하는 합산이 증가하기 시작하는 경우에, 상기 세트 중 특정 세트와 연관된 상기 복수의 비용을 추정하는 것을 종료하게 하는, 컴퓨터-판독가능 매체.
  17. CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하도록 구성된 장치로서,
    상기 장치는 양자화 유닛을 포함하며,
    상기 양자화 유닛은,
    상기 비디오 블록에 대한 양자화된 계수의 복수의 세트를 발생시키되, 상기 양자화된 계수의 각 세트는 상기 비디오 블록의 계수 중 특정 계수가 상기 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의되고;
    상기 CABAC 을 통해 상기 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하되, 상기 추정된 비용은 각각 상기 양자화된 계수의 세트 중 상이한 세트에 기초하고, 상기 복수의 비용을 추정하는데 있어, 상기 양자화 유닛은 레이트-왜곡 모델과 연관된 라그랑주 비용 함수를 계산하며, 상기 라그랑주 비용 함수는 상기 양자화된 계수의 세트에서의 상기 양자화된 계수 각각과 연관된 개별 계수 라그랑주 비용의 세트를 정의하고;
    0 의 값, 바닥값 (floor value) 및 천장값 (ceiling value) 과 동일한 상기 양자화된 계수의 값들에 대한 양자화된 계수의 세트에서의 상기 양자화된 계수와 연관된 상기 개별 계수 라그랑주 비용의 세트를 계산하며;
    상기 복수의 비용 중 최저 비용과 연관된 상기 양자화된 계수의 세트 중 주어진 세트를 선택하되, 상기 양자화된 계수의 세트 중 선택된 세트와 연관된 특정 비용은 상기 복수의 비용과 연관된 비트의 최저 개수를 정의하는, 장치.
  18. 제 17 항에 있어서,
    상기 양자화 유닛은,
    상기 양자화된 계수의 세트 중 상기 주어진 세트를 출력하는, 장치.
  19. 제 18 항에 있어서,
    CABAC 유닛을 더 포함하며,
    상기 CABAC 유닛은,
    상기 양자화된 계수의 세트 중 상기 주어진 세트를 수신하고;
    상기 양자화된 계수의 세트 중 상기 주어진 세트에 대해 CABAC 을 수행하여, 상기 양자화된 계수의 세트 중 상기 주어진 세트를 비트스트림으로 엔트로피-코딩하며;
    상기 비트스트림을 출력하는, 장치.
  20. 제 17 항에 있어서,
    상기 양자화 유닛은 상기 특정 비용과 연관된 상기 비트의 최저 개수를 표시하는 값을 저장하는, 장치.
  21. 제 17 항에 있어서,
    상기 바닥값은 상기 비디오 블록의 계수의 개별적인 계수의 절대값, 양자화 파라미터, 및 양자화 매트릭스에 기초하고,
    상기 천장값은 상기 바닥값 플러스 1 을 포함하는, 장치.
  22. 제 17 항에 있어서,
    상기 양자화된 계수의 개별적인 계수에 대해,
    상기 양자화된 계수의 개별적인 계수가 상기 천장값보다 상기 바닥값에 더 가까우면, 상기 양자화 유닛은 상기 천장값과 동일한 값에 대한 상기 양자화된 계수의 개별적인 계수와 연관된 개별 계수 라그랑주 비용의 계산을 스킵하는, 장치.
  23. 제 17 항에 있어서,
    상기 양자화된 계수의 세트 중 하나의 세트에 대한 상기 비디오 블록의 상기 최종 넌-제로 계수에 대응하는 상기 비디오 블록의 계수 중 특정 계수가 상기 천장값보다 상기 바닥값에 더 가까운 값을 정의한 경우, 및 상기 바닥값이 0 과 동일한 경우, 상기 양자화 유닛은 상기 양자화된 계수의 세트 중 하나의 세트에 대한 상기 비디오 블록을 코딩하는 것과 연관되는 특정 비용을 추정하는 것을 스킵하는, 장치.
  24. 제 17 항에 있어서,
    상기 양자화 유닛은,
    상기 비디오 블록의 계수의 값을 감소시킴에 따라 상기 세트 중 특정 세트와 연관된 특정 라그랑주 비용을 정의하는 합산이 증가하기 시작하는 경우에, 상기 세트 중 특정 세트와 연관된 상기 복수의 비용을 추정하는 것을 종료하는, 장치.
  25. 제 17 항에 있어서,
    상기 장치는 하나 이상의 회로, 집적 회로 (IC) 칩 또는 IC 칩세트를 포함하는, 장치.
  26. CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하는 디바이스로서,
    상기 비디오 블록에 대한 양자화된 계수의 복수의 세트를 발생시키는 수단으로서, 상기 양자화된 계수의 각 세트는 상기 비디오 블록의 계수 중 특정 계수가 상기 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의되는, 상기 발생 수단;
    상기 CABAC 을 통해 상기 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하는 수단으로서, 상기 추정된 비용은 각각 상기 양자화된 계수의 세트 중 상이한 세트에 기초하고, 상기 복수의 비용을 추정하는 수단은 레이트-왜곡 모델과 연관된 라그랑주 비용 함수를 계산하는 수단을 포함하고, 상기 라그랑주 비용 함수는 상기 양자화된 계수의 세트에서의 상기 양자화된 계수 각각과 연관된 개별 계수 라그랑주 비용의 세트를 정의하는, 상기 추정 수단;
    0 의 값, 바닥값 (floor value) 및 천장값 (ceiling value) 과 동일한 상기 양자화된 계수의 값들에 대한 양자화된 계수의 세트에서의 상기 양자화된 계수와 연관된 상기 개별 계수 라그랑주 비용의 세트를 계산하는 수단; 및
    상기 복수의 비용 중 최저 비용과 연관된 상기 양자화된 계수의 세트 중 주어진 세트를 선택하는 수단으로서, 상기 양자화된 계수의 세트 중 선택된 세트와 연관된 특정 비용은 상기 복수의 비용과 연관된 비트의 최저 개수를 정의하는, 상기 선택 수단을 포함하는, 디바이스.
  27. 제 26 항에 있어서,
    상기 양자화된 계수의 세트 중 상기 주어진 세트를 출력하는 수단을 더 포함하는, 디바이스.
  28. 제 27 항에 있어서,
    상기 양자화된 계수의 세트 중 상기 주어진 세트를 수신하는 수단;
    상기 양자화된 계수의 세트 중 상기 주어진 세트에 대해 CABAC 을 수행하여, 상기 양자화된 계수의 세트 중 상기 주어진 세트를 비트스트림으로 엔트로피-코딩하는 수단; 및
    상기 비트스트림을 출력하는 수단을 더 포함하는, 디바이스.
  29. 제 26 항에 있어서,
    상기 특정 비용과 연관된 상기 비트의 최저 개수를 표시하는 값을 저장하는 수단을 더 포함하는, 디바이스.
  30. 제 26 항에 있어서,
    상기 바닥값은 상기 비디오 블록의 계수의 개별적인 계수의 절대값, 양자화 파라미터, 및 양자화 매트릭스에 기초하고,
    상기 천장값은 상기 바닥값 플러스 1 을 포함하는, 디바이스.
  31. 제 26 항에 있어서,
    상기 양자화된 계수의 개별적인 계수에 대해,
    상기 양자화된 계수의 개별적인 계수가 상기 천장값보다 상기 바닥값에 더 가까우면, 상기 천장값과 동일한 값에 대한 상기 양자화된 계수의 개별적인 계수와 연관된 개별 계수 라그랑주 비용의 계산을 스킵하는 수단을 더 포함하는, 디바이스.
  32. 제 26 항에 있어서,
    상기 양자화된 계수의 세트 중 하나의 세트에 대한 상기 비디오 블록의 상기 최종 넌-제로 계수에 대응하는 상기 비디오 블록의 계수 중 특정 계수가 상기 천장값보다 상기 바닥값에 더 가까운 값을 정의한 경우, 및 상기 바닥값이 0 과 동일한 경우, 상기 양자화된 계수의 세트 중 하나의 세트에 대한 상기 비디오 블록을 코딩하는 것과 연관되는 특정 비용을 추정하는 것을 스킵하는 수단을 더 포함하는, 디바이스.
  33. 제 26 항에 있어서,
    상기 비디오 블록의 계수의 값을 감소시킴에 따라 상기 세트 중 특정 세트와 연관된 특정 라그랑주 비용을 정의하는 합산이 증가하기 시작하는 경우에, 상기 세트 중 특정 세트와 연관된 상기 복수의 비용을 추정하는 것을 종료하는 수단을 더 포함하는, 디바이스.
  34. CABAC (context-based adaptive binary arithmetic coding) 을 지원하는 비디오 코딩 프로세스에 있어서 비디오 블록의 계수를 양자화하도록 구성된 디바이스로서,
    상기 디바이스는 코딩 유닛 및 송신기를 포함하고,
    상기 코딩 유닛은 양자화 유닛 및 CABAC 유닛을 포함하며,
    상기 양자화 유닛은,
    상기 비디오 블록에 대한 양자화된 계수의 복수의 세트를 발생시키되, 상기 양자화된 계수의 각 세트는 상기 비디오 블록의 계수 중 특정 계수가 상기 비디오 블록의 최종 넌-제로 계수에 대응한다는 가정에 기초하여 정의되고;
    상기 CABAC 을 통해 상기 비디오 블록을 코딩하는 것과 연관되는 복수의 비용을 추정하되, 상기 추정된 비용은 각각 상기 양자화된 계수의 세트 중 상이한 세트에 기초하고, 상기 복수의 비용을 추정하는데 있어, 상기 양자화 유닛은 레이트-왜곡 모델과 연관된 라그랑주 비용 함수를 계산하며, 상기 라그랑주 비용 함수는 상기 양자화된 계수의 세트에서의 상기 양자화된 계수 각각과 연관된 개별 계수 라그랑주 비용의 세트를 정의하고;
    0 의 값, 바닥값 (floor value) 및 천장값 (ceiling value) 과 동일한 상기 양자화된 계수의 값들에 대한 양자화된 계수의 세트에서의 상기 양자화된 계수와 연관된 상기 개별 계수 라그랑주 비용의 세트를 계산하고;
    상기 복수의 비용 중 최저 비용과 연관된 상기 양자화된 계수의 세트 중 주어진 세트를 선택하되, 상기 양자화된 계수의 세트 중 선택된 세트와 연관된 특정 비용은 상기 복수의 비용과 연관된 비트의 최저 개수를 정의하며;
    상기 양자화된 계수의 세트 중 주어진 세트를 출력하고;
    상기 CABAC 유닛은,
    상기 양자화된 계수의 세트 중 상기 주어진 세트를 수신하고;
    상기 양자화된 계수의 세트 중 상기 주어진 세트에 대해 CABAC 을 수행하여, 상기 양자화된 계수의 세트 중 상기 주어진 세트를 비트스트림으로 엔트로피-코딩하며;
    상기 비트스트림을 출력하고,
    상기 송신기는 상기 비트스트림을 송신하는, 디바이스.
  35. 제 34 항에 있어서,
    상기 디바이스는 무선 통신 디바이스를 포함하는, 디바이스.
  36. 제 35 항에 있어서,
    상기 디바이스는, 상기 송신기가 상기 비트스트림을 송신하기 전에 상기 비트스트림을 변조하는 변조기를 포함하는, 디바이스.
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
KR1020107017564A 2008-01-08 2009-01-08 Cabac 코더에 대한 레이트-왜곡 모델링에 기초한 양자화 KR101177737B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US1983008P 2008-01-08 2008-01-08
US61/019,830 2008-01-08
US3045408P 2008-02-21 2008-02-21
US61/030,454 2008-02-21
US12/340,205 2008-12-19
US12/340,205 US8891615B2 (en) 2008-01-08 2008-12-19 Quantization based on rate-distortion modeling for CABAC coders
PCT/US2009/030465 WO2009089370A1 (en) 2008-01-08 2009-01-08 Quantization based on rate-distortion modeling for cabac coders

Publications (2)

Publication Number Publication Date
KR20100102701A KR20100102701A (ko) 2010-09-24
KR101177737B1 true KR101177737B1 (ko) 2012-08-28

Family

ID=40844521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107017564A KR101177737B1 (ko) 2008-01-08 2009-01-08 Cabac 코더에 대한 레이트-왜곡 모델링에 기초한 양자화

Country Status (10)

Country Link
US (1) US8891615B2 (ko)
EP (2) EP2243296B1 (ko)
JP (1) JP5290325B2 (ko)
KR (1) KR101177737B1 (ko)
CN (1) CN101911702B (ko)
BR (1) BRPI0907209A2 (ko)
CA (1) CA2709711C (ko)
RU (1) RU2475999C2 (ko)
TW (1) TWI457002B (ko)
WO (1) WO2009089370A1 (ko)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8891615B2 (en) 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
US9008171B2 (en) 2008-01-08 2015-04-14 Qualcomm Incorporated Two pass quantization for CABAC coders
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US8902972B2 (en) 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
US8218633B2 (en) * 2008-06-18 2012-07-10 Kiu Sha Management Limited Liability Company Bidirectionally decodable Wyner-Ziv video coding
KR20110027238A (ko) * 2009-09-10 2011-03-16 삼성전자주식회사 휴대용 단말기의 영상 데이터 처리 장치 및 방법
US20110125987A1 (en) * 2009-11-20 2011-05-26 Qualcomm Incorporated Dedicated Arithmetic Decoding Instruction
HUE051391T2 (hu) * 2010-04-13 2021-03-01 Ge Video Compression Llc Szignifikancia térképek és transzformációs együttható blokkok kódolása
EP2569944A1 (en) * 2010-05-12 2013-03-20 Thomson Licensing Methods and apparatus for unified significance map coding
KR101373814B1 (ko) * 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 예측 블록 생성 장치
US9172967B2 (en) 2010-10-05 2015-10-27 Google Technology Holdings LLC Coding and decoding utilizing adaptive context model selection with zigzag scan
KR102586032B1 (ko) 2010-10-14 2023-10-10 인터디지털 브이씨 홀딩스 인코포레이티드 향상된 엔트로피 인코딩 및 디코딩을 위한 방법 및 장치
US8976861B2 (en) * 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
US8755620B2 (en) 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
US8687904B2 (en) * 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
US8891617B2 (en) * 2011-01-18 2014-11-18 Google Inc. Method and system for processing video data
US10075706B2 (en) * 2011-01-19 2018-09-11 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US8953690B2 (en) * 2011-02-16 2015-02-10 Google Technology Holdings LLC Method and system for processing video data
US10397577B2 (en) 2011-03-08 2019-08-27 Velos Media, Llc Inverse scan order for significance map coding of transform coefficients in video coding
US9106913B2 (en) * 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US8861599B2 (en) 2011-03-08 2014-10-14 Sony Corporation Context reduction for last transform position coding
US20120230396A1 (en) * 2011-03-11 2012-09-13 Mitsubishi Electric Research Laboratories, Inc. Method for Embedding Decoding Information in Quantized Transform Coefficients
US9379736B2 (en) * 2011-06-03 2016-06-28 Qualcomm Incorporated Context-adaptive coding video data
KR20140032930A (ko) * 2011-06-24 2014-03-17 파나소닉 주식회사 화상 부호화 방법, 화상 복호방법, 화상 부호화 장치, 화상 복호장치 및 화상 부호화 복호장치
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
PL2728866T3 (pl) 2011-06-28 2019-05-31 Samsung Electronics Co Ltd Sposób dekodowania wideo z wykorzystaniem dekodowania arytmetycznego
US9661326B2 (en) * 2011-06-28 2017-05-23 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding
RU2601167C2 (ru) * 2011-07-18 2016-10-27 Сан Пэтент Траст Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения
BR112014007494B1 (pt) * 2011-09-29 2022-05-31 Sharp Kabushiki Kaisha Dispositivo de decodificação de imagem, método de decodificação de imagem, e dispositivo de codificação de imagem
MX353235B (es) 2011-09-29 2018-01-08 Sharp Kk Star Dispositivo de decodificación de imágenes, método de decodificación de imágenes y dispositivo de codificación de imágenes.
AU2011236109B2 (en) * 2011-10-18 2015-02-19 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9584819B2 (en) 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US8964849B2 (en) 2011-11-01 2015-02-24 Blackberry Limited Multi-level significance maps for encoding and decoding
MX2013008943A (es) * 2011-11-07 2013-09-06 Panasonic Corp Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
KR101672107B1 (ko) 2011-11-08 2016-11-02 구글 테크놀로지 홀딩스 엘엘씨 변환 계수들에 대한 이진 코드워드들을 결정하는 방법
CN103931197B (zh) 2011-11-08 2018-01-23 谷歌技术控股有限责任公司 确定用于变换系数的二进制码字的方法
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
EP2797321B1 (en) * 2011-12-21 2021-02-17 Sun Patent Trust Context selection for entropy coding of transform coefficients
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
EP2786575A4 (en) * 2012-01-20 2016-08-03 Sony Corp REDUCTION OF CODING COMPLEXITY ON CARD OF IMPORTANCE
US9635358B2 (en) 2012-01-21 2017-04-25 Google Technology Holdings LLC Method of determining binary codewords for transform coefficients
CN103220509B (zh) * 2012-01-21 2017-12-15 中兴通讯股份有限公司 自适应控制算术编码bin数量的方法、编码器和解码器
EP2805497A1 (en) 2012-01-21 2014-11-26 Motorola Mobility LLC Method of determining binary codewords for transform coefficients
US20130195200A1 (en) * 2012-01-28 2013-08-01 Research In Motion Limited Methods and devices for context modeling to enable modular processing
US9479780B2 (en) * 2012-02-01 2016-10-25 Google Technology Holdings LLC Simplification of significance map coding
WO2013116849A1 (en) 2012-02-04 2013-08-08 General Instrument Corporation Devices and methods for context reduction in last significant coefficient position coding
US9237344B2 (en) * 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
CA2807382A1 (en) * 2012-04-16 2013-10-16 Research In Motion Limited Modified contexts for level coding of video data
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US10003804B2 (en) 2012-12-27 2018-06-19 Nec Corporation Video coding device using quantizing an orthogonal transform coefficient
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
KR101645911B1 (ko) * 2013-06-11 2016-08-04 닛본 덴끼 가부시끼가이샤 영상 부호화 장치, 영상 부호화 방법, 및 영상 부호화 프로그램
US10264261B2 (en) * 2013-08-27 2019-04-16 Integrated Device Technology, Inc. Entropy encoding initialization for a block dependent upon an unencoded block
JP6197496B2 (ja) * 2013-08-30 2017-09-20 富士通株式会社 量子化装置、量子化方法および量子化プログラム
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
US10313681B2 (en) * 2013-12-18 2019-06-04 Intel Corporation Techniques for rate-distortion optimization in video compression
US9432696B2 (en) 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
US9516345B2 (en) 2014-03-17 2016-12-06 Qualcomm Incorporated Systems and methods for low complexity forward transforms using mesh-based calculations
US9948934B2 (en) * 2014-07-02 2018-04-17 Apple Inc. Estimating rate costs in video encoding operations using entropy encoding statistics
FR3024933A1 (fr) * 2014-08-12 2016-02-19 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
US9762912B2 (en) * 2015-01-16 2017-09-12 Microsoft Technology Licensing, Llc Gradual updating using transform coefficients for encoding and decoding
US9781424B2 (en) 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
JP6476900B2 (ja) * 2015-01-21 2019-03-06 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
US9916415B2 (en) * 2016-04-11 2018-03-13 Globalfoundries Inc. Integrated circuit performance modeling that includes substrate-generated signal distortions
CN108322749B (zh) * 2018-03-15 2021-03-16 北京数码视讯科技股份有限公司 Rdoq的系数优化方法、rdoq的加速方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007079964A1 (en) * 2006-01-09 2007-07-19 Matthias Narroschke Adaptive coding of a prediction error in hybrid video coding

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2503706B2 (ja) 1990-01-19 1996-06-05 三菱電機株式会社 変換符号化方式
CA2118880A1 (en) * 1994-03-11 1995-09-12 Kannan Ramchandran Jpeg/mpeg decoder-compatible optimized thresholding for image and video signal compression
CN1157080A (zh) * 1995-04-25 1997-08-13 菲利浦电子有限公司 用于编码视频图像的装置和方法
TW455821B (en) 1999-09-03 2001-09-21 Ind Tech Res Inst Signal process method and device
ES2730953T3 (es) 2002-04-26 2019-11-13 Ntt Docomo Inc Método de decodificación de señal, dispositivo de decodificación de señal, y programa de decodificación de señal
JP4037839B2 (ja) 2004-03-11 2008-01-23 株式会社東芝 画像符号化方法及び装置
JP4188878B2 (ja) 2004-06-07 2008-12-03 日本電信電話株式会社 動画像符号化方法,動画像符号化装置,動画像符号化プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
ATE532270T1 (de) 2004-07-14 2011-11-15 Slipstream Data Inc Verfahren, system und computerprogramm für die optimierung von datenkomprimierung
KR100612015B1 (ko) 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
JP4281667B2 (ja) 2004-10-25 2009-06-17 株式会社日立製作所 画像符号化装置
JP2006157881A (ja) 2004-11-08 2006-06-15 Toshiba Corp 可変長符号化装置及びその方法
US20060098733A1 (en) 2004-11-08 2006-05-11 Kabushiki Kaisha Toshiba Variable-length coding device and method of the same
NO322043B1 (no) 2004-12-30 2006-08-07 Tandberg Telecom As Fremgangsmate for forenklet entropikoding
RU2336661C2 (ru) 2005-04-19 2008-10-20 Самсунг Электроникс Ко., Лтд. Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
KR100746007B1 (ko) 2005-04-19 2007-08-06 삼성전자주식회사 엔트로피 코딩의 컨텍스트 모델을 적응적으로 선택하는방법 및 비디오 디코더
US8379721B2 (en) 2005-09-22 2013-02-19 Qualcomm Incorported Two pass rate control techniques for video coding using a min-max approach
KR20070077059A (ko) 2006-01-19 2007-07-25 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치
US8401082B2 (en) 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
CN100574434C (zh) * 2006-06-23 2009-12-23 深圳安凯微电子技术有限公司 一种图像压缩/解压缩方法和系统
US8582663B2 (en) 2006-08-08 2013-11-12 Core Wireless Licensing S.A.R.L. Method, device, and system for multiplexing of video streams
WO2008136828A1 (en) 2007-05-04 2008-11-13 Qualcomm Incorporated Video coding mode selection using estimated coding costs
US7957600B2 (en) * 2007-05-08 2011-06-07 Arris Group, Inc. Methods and systems for rate-distortion optimized quantization of transform blocks in block transform video coding
US8891615B2 (en) 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007079964A1 (en) * 2006-01-09 2007-07-19 Matthias Narroschke Adaptive coding of a prediction error in hybrid video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EN-HUI YANG et al., 'Rate-Distortion Optimization of H.264 with Main Profile Compatibility', INFORMATION THEORY, 2006 IEEE INTERNATIONAL SYMPOSIUM, PI, 2006.07.01, p282-286
RAMCHANDRAN K et al., 'Rate-Distortion Optimal fast thresholding with complete JPEG/MPEG Decoder compatibility', IEEE Trans. IMAGE PROCESSING, vol. 3, no. 5, 1994.09.01, p700-704

Also Published As

Publication number Publication date
CN101911702B (zh) 2012-07-25
JP5290325B2 (ja) 2013-09-18
TW201004354A (en) 2010-01-16
RU2475999C2 (ru) 2013-02-20
CA2709711C (en) 2013-05-14
BRPI0907209A2 (pt) 2015-07-14
WO2009089370A1 (en) 2009-07-16
KR20100102701A (ko) 2010-09-24
TWI457002B (zh) 2014-10-11
CA2709711A1 (en) 2009-07-16
JP2011509642A (ja) 2011-03-24
RU2010133239A (ru) 2012-02-20
US20090175332A1 (en) 2009-07-09
US8891615B2 (en) 2014-11-18
EP2243296A1 (en) 2010-10-27
EP2824929A2 (en) 2015-01-14
EP2243296B1 (en) 2017-03-01
EP2824929A3 (en) 2015-06-10
CN101911702A (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
KR101177737B1 (ko) Cabac 코더에 대한 레이트-왜곡 모델링에 기초한 양자화
KR101187238B1 (ko) Cabac 코더의 2-패스 양자화
KR101232420B1 (ko) 컨텍스트-적응형 가변 길이 코딩 (cavlc) 을 위한 레이트-왜곡 양자화
JP6193432B2 (ja) 大型マクロ・ブロックを用いたビデオ・コーディング
JP5944423B2 (ja) 大型マクロ・ブロックを用いたビデオ・コーディング
JP5415546B2 (ja) ベクトル化エントロピーコーディングに基づく加重予測

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 7