KR101135293B1 - 비디오 블록 헤더 정보의 적응적 코딩 - Google Patents

비디오 블록 헤더 정보의 적응적 코딩 Download PDF

Info

Publication number
KR101135293B1
KR101135293B1 KR1020107010365A KR20107010365A KR101135293B1 KR 101135293 B1 KR101135293 B1 KR 101135293B1 KR 1020107010365 A KR1020107010365 A KR 1020107010365A KR 20107010365 A KR20107010365 A KR 20107010365A KR 101135293 B1 KR101135293 B1 KR 101135293B1
Authority
KR
South Korea
Prior art keywords
block
prediction mode
cbp
syntax element
current video
Prior art date
Application number
KR1020107010365A
Other languages
English (en)
Other versions
KR20100067129A (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 KR20100067129A publication Critical patent/KR20100067129A/ko
Application granted granted Critical
Publication of KR101135293B1 publication Critical patent/KR101135293B1/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

본 발명은 이전에 인코딩된 비디오 블록들에 기반하여 비디오 블록 헤더 정보를 적응적으로 코딩하기 위한 기술들을 설명한다. 비디오 인코더는 하나 이상의 이전에 인코딩된 블록들의 대응하는 신택스 요소들에 기반하여 현재 비디오 블록의 신택스 요소의 인코딩에 사용하기 위한 코딩 테이블을 적응적으로 선택할 수 있다. 일 양상에서, 비디오 인코더는 현재 비디오 블록에 인접한 하나 이상의 비디오 블록들, 즉, 이웃 비디오 블록들의 블록 타입들에 기반하여 현재 블록의 블록타입의 인코딩에 사용하기 위한 코딩 테이블을 적응적으로 선택할 수 있다. 비디오 인코더는 또한 상기 이전에 인코딩된 비디오 블록들 중 적어도 하나에 기반하여 현재 블록의 하나 이상의 다른 헤더 신택스 요소들을 예측할 수 있다. 예측이 성공적이라면, 비디오 인코더는 예측의 성공을 표시하기 위한 플래그를 인코딩할 수 있다.

Description

비디오 블록 헤더 정보의 적응적 코딩{ADAPTIVE CODING OF VIDEO BLOCK HEADER INFORMATION}
본 개시물은 디지털 비디오 코딩에 관한 것이고, 더 구체적으로, 비디오 시퀀스의 블록들의 헤더 정보의 코딩에 관한 것이다.
본 출원은 여기에 전체 내용이 참조로서 결합된 2007년 10월 12일자로 출원된 미국 가출원 60/979,734호의 이익을 요구한다.
디지털 비디오 성능들은 디지털 텔레비전들, 디지털 다이렉트 브로드캐스팅 시스템들, 무선 통신 장치들, 무선 브로드캐스팅 시스템들, PDA들, 랩톱 또는 데스크톱 컴퓨터들, 디지털 카메라들, 디지털 레코딩 장치들, 비디오 게임 장치들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화들 등을 포함하는 넓은 범위의 장치들에 결합될 수 있다. 디지털 비디오 장치들은 MPEG-2, MPEG-4 또는 디지털 비디오를 더 효과적으로 전송 및 수신하기 위한, 일반적으로 향상된 비디오 코딩(AVC)으로 통칭되는 H.264/MPEG-4, 파트 10과 같은 비디오 압축 기술들을 구현한다. 비디오 압축 기술들은 비디오 시퀀스들에 내재하는 리던던시(redundancy)를 감소 또는 제거하기 위해 공간 및 시간 예측을 수행한다.
비디오 코딩에서, 비디오 압축은 전형적으로 예측 비디오 블록을 생성하기 위해 공간 예측 및/또는 움직임 예측 및 움직임 보상을 포함한다. 인트라-코딩은 주어진 비디오 프레임 내에서의 비디오 블록들 사이에서 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 의존한다. 공간 예측은 H.264/MPEG-4 파트 10 AVC의 경우에 인트라 16x16 블록 타입들, 인트라 8x8 블록 타입들 및 인트라 4x4 블록 타입들과 같은 다수의 상이한 인트라-코딩 블록 타입들에 대해 수행될 수 있다. 인터-코딩은 비디오 시퀀스의 연속적인 비디오 프레임들의 비디오 블록들 사이에서 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 의존한다. 시간 예측은 또한 H.264/MPEG-4 파트 10 AVC의 경우에 인터 16x16, 인터 16x8, 인터 8x16, 인터 8x8, 인터 8x4, 인터 4x8 및 인터 4x4와 같은 다수의 상이한 인터-코딩 블록 타입들에 대해 수행될 수 있다.
공간 또는 시간 예측 후에, 잔여 정보의 블록은 코딩되는 오리지널 비디오 블록으로부터 예측 비디오 블록을 감산함으로써 생성된다. 그러므로, 잔여 정보는 예측 비디오 블록 및 오리지널 블록 사이의 차이들을 수량화한다. 비디오 인코더는 블록의 헤더 정보와 함께 블록 잔여 정보를 인코딩한다. 블록의 헤더 정보는 예측 모드, 루마 코딩된 블록 패턴(CBP), 크로마 CBP, 하나 이상의 움직임 벡터들 등과 같은 현재 비디오 블록과 연관된 부가 정보뿐만 아니라 현재 비디오 블록의 블록 타입을 표시할 수 있다. 비디오 인코더는 일반적으로 연산 코드들, 가변 길이 코드들(VLCs), 고정 길이 코드들 또는 그들의 조합을 사용하여 잔여 정보 및 헤더 정보를 인코딩할 수 있다. 실시예들은 문맥-적응 이진 연산 코딩(context-adaptive binary arithmetic coding, CABAC) 및 문맥-적응 가변 길이 코딩(context-adaptive variable length coding, CAVLC)을 포함한다. 비디오 디코더는 블록들의 각각에 대해 헤더 정보 및 잔여 정보를 사용하여 인코딩된 비디오를 재구성하기 위해 역 동작들을 수행한다.
본 발명은 하나 이상의 이전에 인코딩된 비디오 블록들에 기반하여 비디오 블록 헤더 정보를 적응적으로 코딩하기 위한 기술들을 설명한다. 특히, 비디오 인코더는 코딩된 유닛, 예를 들어, 프레임 또는 슬라이스의 하나 이상의 이전에 인코딩된 블록들의 신택스 요소들에 기반하여 현재 비디오 블록의 신택스 요소의 인코딩에 사용하기 위해 코딩 테이블을 적응적으로 선택할 수 있다. 일 양상에서, 비디오 인코더는 현재 비디오 블록에 인접한 하나 이상의 이전에 코딩된 비디오 블록들, 즉, 이웃 비디오 블록들의 블록 타입들에 기반하여 현재 블록의 블록 타입의 인코딩에 사용하기 위한 코딩 테이블을 적응적으로 선택할 수 있다. 예를 들어, 비디오 인코더는 둘 이상의 이웃 블록들이 인트라 16x16 블록 타입들을 가질 때 인트라 16x16 블록 타입을 인트라 4x4 또는 8x8 블록 타입들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 적응적으로 선택할 수 있다. 이는 비디오 인코더가 예를 들어, 고-선명(HD) 비디오 시퀀스들과 같은 더 높은 해상도를 가지는 비디오 시퀀스들을 더 효과적으로 인코딩하도록 할 수 있다.
비디오 인코더는 또한 적어도 하나의 이전에 인코딩된 블록에 기반하여 현재 블록의 하나 이상의 다른 헤더 신택스 요소들을 예측할 수 있다. 예측이 성공적이면, 즉, 하나 이상의 예측된 헤더 신택스 요소들의 값들이 현재 블록의 실제 헤더 신택스 요소들의 값들과 동일하면, 비디오 인코더는 신택스 요소들의 각각의 값들을 개별적으로 인코딩하거나 또는 신택스 요소들을 번들(bundle)화하고 신택스 요소들을 더 긴 코드워드로 인코딩하는 대신에 예측의 성공을 표시하는 플래그(예를 들어, 1-비트 플래그)를 인코딩할 수 있다. 비디오 인코더는 또한 비디오 인코더와 같은 방식으로 하나 이상의 헤더 신택스 요소들의 값들을 예측할 수 있고, 인코딩된 플래그가 예측의 성공을 표시할 때 블록의 예측된 헤더 신택스 요소들의 값을 선택할 수 있다. 이러한 기술은 또한 비디오 프레임의 시퀀스의 비디오 블록을 인코딩하기 위해 사용되는 비트들의 수를 감소시킬 수 있다.
일 양상에서, 방법은, 코딩된 유닛의 하나 이상의 이전에 인코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 인코딩하기 위해 사용하기 위한 코딩 테이블을 선택하는 단계; 및 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 인코딩하는 단계를 포함한다.
다른 양상에서, 인코딩 장치는, 코딩된 유닛의 하나 이상의 이전에 인코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 인코딩하기 위해 사용하기 위한 코딩 테이블을 선택하는 선택 유닛; 및 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 상기 신택스 요소를 인코딩하는 코딩 유닛을 포함하는 인코딩 유닛을 포함한다.
다른 양상에서, 컴퓨터-판독가능한 매체는, 프로세서가, 코딩된 유닛의 하나 이상의 이전에 인코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 인코딩하기 위해 사용하기 위한 코딩 테이블을 선택하고; 그리고 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 인코딩하도록 하기 위한 명령들을 포함한다.
다른 양상에서, 인코딩 장치는, 코딩된 유닛의 하나 이상의 이전에 인코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 인코딩하기 위해 사용하기 위한 코딩 테이블을 선택하기 위한 수단; 및 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 인코딩하기 위한 수단을 포함한다.
다른 양상에서, 비디오 데이터를 디코딩하는 방법은 코딩된 유닛의 하나 이상의 이전에 디코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 디코딩하기 위해 사용하기 위한 코딩 테이블을 선택하는 단계; 및 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 디코딩하는 단계를 포함한다.
다른 양상에서, 디코딩 장치는, 코딩된 유닛의 하나 이상의 이전에 디코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 인코딩된 비디오 블록의 신택스 요소를 디코딩하기 위해 사용하기 위한 코딩 테이블을 선택하는 선택 유닛; 및 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 디코딩하는 디코딩 유닛을 포함한다.
다른 양상에서, 컴퓨터-판독가능한 매체는 프로세서가, 코딩된 유닛의 하나 이상의 이전에 디코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 인코딩된 비디오 블록의 신택스 요소를 디코딩하기 위해 사용하기 위한 코딩 테이블을 선택하고; 그리고 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 디코딩하도록 하기 위한 명령들을 포함한다.
다른 양상에서, 디코딩 장치는 코딩된 유닛의 하나 이상의 이전에 디코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 인코딩된 비디오 블록의 신택스 요소를 디코딩하기 위해 사용하기 위한 코딩 테이블을 선택하기 위한 수단; 및 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 디코딩하기 위한 수단을 포함한다.
본 개시물에 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 구현될 수 있다. 만약 소프트웨어에서 구현된다면, 소프트웨어는 예를 들어 마이크로프로세서, 주문형 집적 회로(ASIC), 필드 프로그램어블 게이트 어레이(FPGA) 또는 디지털 신호 프로세서(DSP) 또는 다른 균등 집적 또는 분산 논리 회로와 같은 하나 이상의 프로세서들로 지칭될 수 있는 프로세서에서 실행될 수 있다. 본 기술들을 실행하기 위한 명령들을 포함하는 소프트웨어는 컴퓨터-판독가능한 매체에 먼저 저장되고 프로세서에 의해 로딩되고 실행될 수 있다.
따라서, 본 개시물은 또한 프로세서가 본 개시물에서 설명된 바와 같은 임의의 다양한 기술들을 수행하도록 하기 위한 명령들을 포함하는 컴퓨터-판독가능한 매체를 고려한다. 임의의 경우들에서, 컴퓨터-판독가능한 매체는 제조자들에 판매되고 그리고/또는 장치에 사용될 수 있는 컴퓨터 프로그램 물건의 부분을 형성할 수 있다. 컴퓨터 프로그램 물건은 컴퓨터-판독가능한 매체를 포함할 수 있고, 임의의 경우들에서, 또한 패키징 매터리얼들을 포함할 수 있다.
본 개시물의 하나 이상의 양상들의 세부 사항들은 아래의 도면들 및 설명을 참조하여 설명된다. 본 개시물에 설명된 기술들의 다른 특징들, 객체들 및 이점들은 설명 및 도면들 및 청구항들로부터 명백할 것이다.
도 1은 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 2는 본 개시물에 따른 코딩 기술들을 수행하는 비디오 인코더의 일 실시예를 도시하는 블록도이다.
도 3은 더 상세히 도 2의 비디오 인코더의 예시적인 엔트로피 인코딩 유닛을 도시하는 블록도이다.
도 4는 본 개시물에 설명된 코딩 기술들에 따라 비디오 데이터를 디코딩하는 비디오 디코더의 일 실시예를 도시하는 블록도이다.
도 5는 더 상세히 예시적인 디코딩 유닛을 도시하는 블록도이다.
도 6은 비디오 블록에 대한 헤더 정보를 인코딩하는 인코딩 유닛의 예시적인 동작을 도시하는 흐름도이다.
도 7은 비디오 시퀀스의 인코딩된 비디오 블록을 디코딩하는 디코딩 유닛의 예시적인 동작을 도시하는 흐름도이다.
도 1은 본 개시물에 설명된 코딩 기술들을 수행하는 비디오 인코딩 및 디코딩 시스템(10)을 도시하는 블록도이다. 도 1에 도시된 바와 같이, 시스템(10)은 통신 채널(16)을 통해 인코딩된 비디오 데이터를 수신 장치(14)에 전송하는 소스 장치(12)를 포함한다. 통신 채널(16)은 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리 전송 라인들 또는 무선 및 유선 매체의 임의의 조합과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수 있다. 통신 채널(16)은 로컬 영역 네트워크, 광역 네트워크 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 부분을 형성할 수 있다. 통신 채널(16)은 일반적으로 소스 장치(12)로부터 수신 장치(14)로 인코딩된 비디오 데이터를 전송하기 위한 임의의 적합한 통신 매체 또는 상이한 통신 매체의 집합을 나타낸다.
소스 장치(12)는 수신 장치(14)에 전송을 위한 코딩된 비디오 데이터를 생성한다. 소스 장치(12)는 비디오 소스(18), 비디오 인코더(20) 및 전송기(22)를 포함할 수 있다. 소스 장치(12)의 비디오 소스(18)는 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아치브(archive) 또는 비디오 콘텐츠 프로바이더로부터 공급되는 비디오와 같은 비디오 캡처 장치를 포함할 수 있다. 추가적인 대안으로서, 비디오 소스(18)는 소스 비디오로서 컴퓨터 그래픽들-기반 데이터 또는 라이브 비디오 및 컴퓨터-생성된 비디오를 생성할 수 있다. 임의의 경우들에서, 비디오 소스(18)가 비디오 카메라라면, 소스 장치(12)는 소위 카메라 폰 또는 비디오 폰을 형성할 수 있다. 각 경우에서, 캡처, 프리(pre)-캡처 또는 컴퓨터-생성된 비디오는 전송기(22) 및 통신 채널(16)을 통해 소스 장치(12)로부터 수신 장치(14)에 전송하기 위해 비디오 인코더(20)에 의해 인코딩될 수 있다.
비디오 인코더(20)는 비디오 소스(18)로부터 비디오 데이터를 수신한다. 비디오 소스(18)로부터 수신된 비디오 데이터는 비디오 프레임들의 시리즈들일 수 있다. 프레임들의 일부는 슬라이스들로 분할될 수 있다. 비디오 인코더(20)는 비디오 데이터를 인코딩하기 위해 개별 비디오 프레임들 내에서 (여기서, 비디오 블록들로 지칭되는) 픽셀들의 블록들 상에서 동작한다. 프레임 또는 슬라이스와 같은 코딩된 유닛은 다수의 블록들을 포함할 수 있다. 비디오 블록들은 고정 또는 가변 크기들을 가질 수 있고, 특정된 코딩 표준에 따른 크기로 달라질 수 있다. 종종 매크로블록(MB)으로 지칭되는 각 비디오 블록은 서브-블록들로 배열될 수 있다. 예를 들어, 국제 통신 협회 표준 섹터(ITU-T) H.264/MPEG-4, 파트 10, 향상된 비디오 코딩(AVC)(여기서 "H.264/MPEG-4 파트 10 AVC" 표준)은 루마 컴포넌트들에 대해 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 및 4x4 및 크로마 컴포넌트들에 대해 대응하는 스케일 크기들과 같은 다양한 블록 크기들의 인터 예측뿐만 아니라 루마 컴포넌트들에 대해 16x16, 8x8 또는 4x4 및 크로마 컴포넌트들에 대해 8x8과 같은 다양한 블록 크기들의 인트라 예측을 지원한다. 일반적으로, MB들 및 다양한 서브-블록들은 비디오 블록들로 고려될 수 있다. 그러므로, MB들은 비디오 블록들로 고려될 수 있고, 파티션되거나 또는 서브-파티션되면, MB들은 자체로 비디오 블록들의 세트들을 정의하는 것으로 고려될 수 있다.
비디오 블록들의 각각에 대하여, 비디오 인코더(20)는 블록에 대한 블록 타입을 선택한다. 여기서 사용되는 용어 "블록 타입"은 블록이 블록의 파티션 크기뿐만 아니라 인터-예측 또는 인트라-예측을 사용하여 예측되는지 여부를 지칭한다. 예를 들어, H.264/MPEG-4 파트 10 AVC 표준은 인터 16x16, 인터 16x8, 인터 8x16, 인터 8x8, 인터 8x4, 인터 4x8, 인터 4x4, 인트라 16x16, 인트라 8x8 및 인트라 4x4를 포함하는 다수의 인터- 및 인트라-예측 블록 타입들을 지원한다. 아래에 설명된 바와 같이, 비디오 인코더(20)는 임의의 다양한 요소들에 기반하여 비디오 블록들의 각각에 대한 블록 타입들 중 하나를 선택할 수 있다.
인트라-코딩에 대하여, 비디오 인코더(20)는 현재 블록 내의 가변에 기반하여 인트라-예측 블록 타입들 중 하나를 선택할 수 있다. 현재 비디오 블록 내의 가변이 예를 들어, 디테일(detail) 또는 텍스처(texture)에 기인하여 클 때, 비디오 인코더(20)는 인트라 4x4 또는 인트라 8x8 코딩 모드와 같은 더 작은 블록 파티션을 가진 인트라-예측 블록 타입을 선택할 수 있다. 하지만, 현재 비디오 블록 내의 가변이 작을 때, 비디오 인코더(20)는 인트라 16x16 블록 타입과 같은 더 큰 블록 파티션을 가진 인트라-예측 블록 타입을 선택할 수 있다.
예를 들어 공용 이미지 포맷(CIF) 또는 쿼터-CIF(QCIF) 비디오 시퀀스와 같은 더 작은 비디오 해상도를 가진 비디오 시퀀스의 인트라-코딩된 프레임에 대해, 비디오 인코더(20)는 전형적으로 인트라 4x4 또는 인트라 8x8 블록 타입들을 사용하여 더 많은 비디오 블록들을 예측한다. 더 작은 해상도를 가진 인트라-코딩된 프레임에서, 16x16 블록은 4x4 또는 8x8 블록보다 더 큰 가변을 포함할 수 있다. 그러므로, 프레임 내에서 4x4 또는 8x8 블록은 프레임 내에서 16x16 블록보다 더 평활할 수 있다. 예를 들어, 비디오 시퀀스의 4x4 블록은 장면(예를 들어, 사람의 이마)의 평활한(smooth) 부분을 포함할 수 있는 반면 16x16 블록이 더 많은 텍스처(예를 들어, 사람의 이마, 머리 카락 일부 및 눈 부분)를 포함할 수 있다. 하지만, 예를 들어, 고-선명(HD) 비디오 시퀀스와 같은 고 해상도를 가진 비디오 시퀀스의 인트라-코딩된 프레임에 대해, 비디오 인코더(20)는 인트라 4x4 또는 인트라 8x8 블록 타입들을 사용하기보다 인트라 16x16 블록 타입을 사용하여 더 많은 블록들을 예측할 수 있다. 예를 들어, 4x4 블록 및 16x16 블록은 고 프레임 해상도때문에 모두 단지 사람의 이마를 포함할 수 있고, 그러므로 유사한 평활도를 가질 수 있다.
비디오 블록들의 인트라- 또는 인터-기반 예측에 따라, 비디오 인코더(20)는 비디오 블록들 상에서 다수의 다른 동작들을 수행할 수 있다. 도 2에 관하여 더 상세히 설명될 바와 같이, 이 부가적인 동작들은 변환 동작들(예를 들어, H.264/MPEG-4 파트 10 AVC에서 사용되는 4x4 또는 8x8 정수 변환 또는 분산 코사인 변환(DCT)), 양자화 동작들 및 엔트로피 코딩 동작들을 포함할 수 있다. 비디오 인코더(20)는 그 다음에 비디오 프레임들의 시퀀스의 블록들의 각각을 인코딩하고 인코딩된 비트스트림을 출력한다. 각 블록에 대해, 예를 들어, 비디오 인코더(20)는 블록에 대한 헤더 정보 및 블록에 대한 잔여 정보를 인코딩할 수 있다. 각 블록의 헤더 정보는 선택된 블록 타입, 예측 모드, 코딩된 블록 패턴(루마 및/또는 크로마 CBP), 움직임 벡터 등과 같은 블록의 특정 특징들을 식별하는 다수의 신택스 요소들을 포함할 수 있다. 각 블록의 잔여 정보는 입력 비디오 블록 및 하나 이상의 예측 블록들 사이의 차이점들을 수량화한다.
엔트로피 인코딩 동안, 종래의 비디오 인코더들은 다수의 헤더 신택스 요소들을 함께 번들화하고, 단일 코드워드로서 번들을 인코딩할 수 있다. H.264/MPEG-4 파트 10 AVC 표준에서 인트라 16x16 예측을 사용하여 인트라-예측된 블록들에 대해, 종래의 비디오 인코더는 루마 및 크로마에 대한 코딩된 블록 패턴 신택스 요소들(예를 들어, 루마 및 크로마에 대한 양자화된 변환 상수들이 임의의 비-제로 값들을 가지는지 여부를 표시함), 블록 타입 신택스 요소 및 예측 모드 신택스 요소(예를 들어, DC, 수직, 수평 및 평면)를 함께 번들화하고, 가변 길이 코딩(VLC)를 사용하여 단일 코드워드로서 번들화된 신택스 요소들을 인코딩한다. VLC에서, 인코딩될 각 가능한 신택스 요소 또는 인코딩될 신택스 요소들의 조합은 코드워드에 할당된다. VLC에서의 코드워드들은 발생할 가장 높은 가능성을 가지는 주어진 신택스 요소의 값에 할당되는 가장 짧은 코드워드를 가지는 길이로 다양화된다. H.264/MPEG-4 파트 10 AVC 표준에 따라 동작하는 종래의 비디오 인코더들은 인트라 4x4 및 인트라 8x8 블록 타입들이 인트라 16x16 블록 타입보다 더 자주 선택된다는 가정에 기반하여 인트라 4x4 및 인트라 8x8 블록 타입들보다 인트라 16x16 블록 타입에 더 긴 코드워드들을 할당한다. 이러한 가정은 예를 들어, CIF 또는 QCIF 비디오 시퀀스들과 같은 작은 비디오 해상도를 가지는 비디오 시퀀스들에 대해서 사실일 수 있다. 하지만, 예를 들어, HD 비디오 시퀀스들과 같이 고 해상도를 가진 비디오 시퀀스들에 대해, 인트라 16x16블록 타입은 인트라 4x4 또는 인트라 8x8 블록 타입들보다 더 자주 선택될 수 있다. 이는 특히 비디오 시퀀스가 큰 평활 지역들을 포함하고, 양자화가 중간 내지 높은 양자화 파라미터(QP)로 수행될 때 사실일 수 있다. 이러한 비디오 시퀀스들에서, 종래의 H.264/MPEG-4 파트 10 AVC 표준에 따른 인트라 16x16 블록 타입들의 코딩은 매우 비효율일 수 있다. 특히, HD 애플리케이션들에 대해, 인트라 16x16 블록 타입들에 대해 사용되는 더 긴 코드워드들은 비-HD 애플리케이션들보다 훨씬 더 자주 전송될 수 있고 과도한 대역폭 소비를 야기한다.
인트라 16x16 블록 타입을 사용하여 예측된 많은 수의 비디오 블록들을 포함하는 비디오 스트림들을 더 효과적으로 인코딩하기 위해, 비디오 인코더(20)는 본 개시물에 설명된 바와 같이 적응 헤더 정보 코딩 기술들을 수행할 수 있다. 비디오 인코더(20)는 하나 이상의 이전에 인코딩된 블록들의 대응하는 신택스 요소에 기반하여 현재 비디오 블록의 신택스 요소의 인코딩에 사용하기 위한 코딩 테이블을 적응적으로 선택할 수 있다. 일 양상에서, 비디오 인코더(20)는 여기서 "이웃 비디오 블록들"로 지칭되는 현재 비디오 블록에 인접한 하나 이상의 비디오 블록들에 기반하여 현재 비디오 블록의 블록 타입의 인코딩에 사용하기 위한 인코딩 테이블을 적응적으로 선택할 수 있다. 비디오 인코더(20)는 블록 타입을 인코딩하기 위한 코딩 테이블(또한 코드북으로서 지칭됨)의 선택에서 임의의 위치에서 임의의 수의 이웃 블록들을 분석할 수 있다. 예를 들어, 하지만, 비디오 인코더(20)는 임의의 양상들에서 현재 블록 바로 위에 위치된 이웃 블록("상측 이웃 블록") 및 현재 블록 바로 좌측에 위치된 이웃 블록("좌측 이웃 블록")에 기반하여 블록 타입의 인코딩을 위한 코딩 테이블을 적응적으로 선택하는 것으로 설명될 것이다.
인트라-예측 블록에 대하여, 예를 들어, 비디오 인코더(20)는 상측 이웃 블록 및 좌측 이웃 블록이사용인트라 16x16 블록 타입들을 가질 때 인트라 4x4 또는 8x8 블록 타입들을 인트라 16x16 블록 타입보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택할 수 있다. H.264/MPEG-4 파트 10 AVC 표준에서, 인트라 16x16 블록 타입은 전형적으로 부가적인 신택스 요소 변환_크기_8x8_플래그가 블록 타입이 인트라 4x4 또는 인트라 8x8인지 여부를 표시하기 위해 1 비트를 사용하여 코딩된 경우에 인트라 4x4 및 인트라 8x8 블록 타입들이 코드워드 "0"으로 나타내는 동안 코드워드 "10"으로 나타낸다. 비디오 인코더(20)는 하지만 상측 이웃 블록 및 좌측 이웃 블록이 인트라 16x16 블록 타입들을 가질 때 인트라 16x16 블록 타입을 인트라 4x4 또는 8x8 블록 타입들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택할 수 있다. 이 경우에, 비디오 인코더(20)와 연관된 엔트로피 코딩 유닛은 더 짧은 코드워드를 사용하여 블록 헤더에서 인트라 16x16 블록 타입에 대해 블록 타입을 인코딩할 수 있다. 비디오 인코더(20)는 예를 들어 상위 및 좌측 이웃 블록들이 인트라 16x16 블록 타입들을 가질 때 코드워드 "0"으로 인트라 16x16 블록 타입을 나타내고 코드워드 "10"으로 인트라 4x4 및 8x8 블록 타입들을 나타내는 코딩 테이블을 선택할 수 있다. 그러므로, 비디오 인코더(20)는 상측 및 좌측 이웃 블록들이 인트라 16x16 블록 타입들을 가지면 현재 비디오 블록이 인트라 16x16 블록 타입일 가능성이 높아진다는 경험칙 아래에서 동작한다. 이 방식에서, 비디오 인코더(20)는 인트라 16x16 블록 타입이 더 자주 사용될 때 블록 타입들을 더 효율적으로 인코딩하는 코딩 테이블들을 적응적으로 선택한다. 비록 인트라-예측 블록 타입들의 코딩을 위한 코딩 테이블들의 선택에 대하여 설명되었지만, 본 개시물의 기술들은 또한 이전에 인코딩된 비디오 블록들의 블록 타입들에 기반한 인터-예측 블록 타입들에 대한 코딩 테이블을 적응적으로 선택하기 위해 또한 적용될 수 있다. 게다가, 본 개시물의 기술들은 또한 예측 모드, 루마 CBP, 크로마 CBP, 블록 파티션, 움직임 벡터 등과 같은 현재 비디오 블록의 다른 신택스 요소들을 코딩하기 위해 코딩 테이블을 선택적으로 선택하기 위해 적용될 수 있다.
비디오 인코더(20)는 적어도 하나의 이전에 인코딩된 블록에 기반하여 현재 블록의 하나 이상의 다른 헤더 신택스 요소들을 부가적으로 예측하고자 할 수 있다. 예를 들어, 비디오 인코더(20)는 예를 들어 상측 및 좌측 이웃 블록들과 같은 이전 블록들로부터 현재 블록의 예측 모드 신택스 요소 및/또는 루마/크로마 CBP 신택스 요소들을 예측하고자 할 수 있다. 예를 들어, 비디오 인코더(20)는 예측 모드, 루마 CBP 및 크로마 CBP를 예측하고, 예측이 성공적이면, 예측이 성공적임을 표시하는 플래그를 인코딩하고자 할 수 있다. 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이지 않으면, 비디오 인코더(20)는 아래에 상세히 설명된 바와 같이 신택스 요소들의 각각을 개별적으로 인코딩할 수 있다. 대안적으로, 비디오 인코더(20)는 이전 블록들로부터 현재 블록의 예측 모드를 예측하고자 할 수 있다. 예측이 성공적이면, 비디오 인코더(20)는 예측 모드의 2-비트 고정 길이 코드워드 대신에 예측 모드의 성공적인 예측을 표시하기 위해 플래그(예를 들어, 1-비트 플래그)를 인코딩할 수 있고, 이로써 적어도 1 비트를 절약할 수 있다. 비디오 인코더(20)는 루마 CBP 및 크로마 CBP를 개별적으로 인코딩한다. 예측 모드의 예측이 성공적이지 않으면, 신택스 요소들의 각각은 개별적으로 인코딩된다.
소스 장치(12)는 전송기(22)를 통해 수신 장치(14)에 인코딩된 비디오 데이터를 전송한다. 수신 장치(14)는 수신기(24), 비디오 디코더(26) 및 디스플레이 장치(28)를 포함할 수 있다. 수신기(24)는 채널(16)을 통해 소스 장치(12)로부터 인코딩된 비디오 비트스트림을 수신한다. 비디오 디코더(26)는 코딩된 유닛의 코딩된 비디오 블록들의 헤더 정보 및 잔여 정보를 획득하기 위해 인코딩된 비디오 비트스트림을 디코딩한다. 비디오 디코더(26)는 하나 이상의 이전에 디코딩된 블록들의 블록 타입들에 기반하여 현재 비디오 블록의 블록 타입의 디코딩에 사용하기 위해 코딩 테이블(즉, 코드북)을 적응적으로 선택한다. 예를 들어, 비디오 디코더(26)는 상측 이웃 블록 및 좌측 이웃 블록이 인트라 16x16 블록 타입들을 가질 때 인트라 16x16 블록 타입을 인트라 4x4 또는 8x8 블록 타입들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 적응적으로 선택할 수 있다.
비디오 디코더(26)는 비디오 인코더(20)와 같은 방식으로 현재 블록의 예측 모드 신택스 요소 및/또는 루마/크로마 CBP 신택스 요소들의 예측을 부가적으로 수행할 수 있다. 인코딩된 비트스트림이 예측 모드 및 루마/크로마 CBP들의 예측이 성공적이라고 표시하는 플래그를 포함할 때, 비디오 디코더(26)는 현재 블록에 대한 신택스 요소들로서 예측된 예측 모드 및 루마/크로마 CBP들을 사용한다. 플래그가 예측 모드 및 루마/크로마 CBP들의 예측이 실패되었음을 표시할 때, 비디오 디코더(26)는 인코딩된 비트스트림으로부터 예측 모드 및 루마/크로마 CBP들을 디코딩한다. 대안적으로, 비디오 디코더(26)는 비디오 인코더(20)가 이러한 성질을 수행하면 이전 블록들로부터 현재 블록의 예측 모드를 예측하고자 할 수 있다.
비디오 디코더(26)는 디코딩된 헤더 정보 및 디코딩된 잔여 정보를 사용하여 슬라이스의 블록들의 각각을 재구성한다. 비디오 디코더(26)는 블록들의 각각에 대한 예측 블록을 생성하고, 블록들의 각각을 재구성하기 위해 대응하는 잔여 정보와 블록들의 각각의 예측 블록을 결합하기 위해 적어도 헤더 정보의 부분을 사용할 수 있다. 수신 장치(14)는 디스플레이 장치(28)를 통해 사용자에게 재구성된 비디오 블록들을 디스플레이할 수 있다. 디스플레이 장치(28)는 음극선관(CRT), 액정 표시 장치(LCD), 플라즈마 디스플레이, 발광 다이오드(LED) 디스플레이, 유기 LED 디스플레이 또는 다른 타입의 디스플레이 유닛과 같은 임의의 다양한 디스플레이 장치들을 포함할 수 있다.
임의의 경우들에서, 소스 장치(12) 및 수신 장치(14)는 실질적으로 대칭적인 방식으로 동작할 수 있다. 예를 들어, 소스 장치(12) 및 수신 장치(14)는 비디오 인코딩 및 디코딩 컴포넌트들을 각각 포함할 수 있다. 그러므로, 시스템(10)은 예를 들어, 비디오 스트리밍, 비디오 브로드캐스팅 또는 비디오 전화에 대해 장치들(12 및 14) 사이에서 일방 또는 쌍방향 비디오 전송을 지원할 수 있다.
비디오 인코더(20) 및 비디오 디코더(26)는 동화상 전문가 그룹(MPEG)-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4 파트 10 AVC와 같은 비디오 압축 표준에 따라 동작할 수 있다. 도 1에 도시되지 않았지만, 임의의 양상들에서, 비디오 인코더(20) 및 비디오 디코더(26)는 각각 오디오 인코더 및 디코더와 각각 결합될 수 있고, 공용 데이터 스트림 또는 분리 데이터 스트림들에서 오디오 및 비디오 모두의 인코딩을 처리하기 위해 적절한 MUX-DEMUX 유닛들, 또는 하드웨어 및 소프트웨어를 포함할 수 있다. 이 방식에서, 소스 장치(12) 및 수신 장치(14)는 멀티미디어 데이터에서 동작할 수 있다. 적용가능하다면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜 또는 사용자 데이터그램 프로토콜(UDP)과 같은 다른 프로토콜들에 부합할 수 있다.
임의의 양상들에서, 비디오 브로드캐스팅에 대해, 본 개시물에 설명된 기술들은 기술 표준 TIA-1099으로서 2007년 7월에 공표된 "지상 모바일 멀티미디어 멀티캐스트를 위한 순방향 링크 전용 무선 인터페이스 상세"인 순방향 링크 전용(FLO) 무선 인터페이스 상세를 사용하여 지상 모바일 멀티미디어 멀티캐스트(TM3)에서 실시간 비디오 서비스들을 제공하기 위해 향상된 H.264 비디오 코딩에 적용될 수 있다. 즉, 통신 채널(16)은 FLO 상세 등에 따라 무선 비디오 정보를 브로드캐스팅하기 위해 사용되는 무선 정보 채널을 포함할 수 있다. FLO 상세는 비트스트림 신택스 및 시맨틱(semantic)들을 정의하고 FLO 무선 인터페이스에 대해 적합한 프로세스들을 디코딩하는 실시예들을 포함한다.
대안적으로, 비디오는 DVB-H(디지털 비디오 브로드캐스팅-핸드헬드), ISDB-T(통합 서비스 디지털 브로트캐스팅-지상) 또는 DMB(디지털 매체 브로드캐스팅)와 같은 다른 표준들에 따라 브로드캐스팅될 수 있다. 그러므로, 소스 장치(12)는 모바일 무선 단말, 비디오 스트리밍 서버 또는 비디오 브로드캐스팅 서버일 수 있다. 하지만, 본 개시물에 설명된 기술들은 브로드캐스팅, 멀티캐스팅 또는 포인트-대-포인트 시스템의 임의의 특정 타입으로 제한되지 않는다. 브로드캐스팅의 경우에, 소스 장치(12)는 각각이 도 1의 수신 장치(14)에 유사할 수 있는 다수의 수신 장치들에 여러 채널들의 비디오 데이터를 브로드캐스팅할 수 있다. 그러므로, 비록 단일 수신 장치(14)가 도 1에 도시되지만, 비디오 브로드캐스팅에 대해, 소스 장치(12)는 전형적으로 다수의 수신 장치들에 동시에 비디오 콘텐츠를 브로드캐스팅할 수 있다.
다른 실시예들에서, 전송기(22), 통신 채널(16) 및 수신기(24)는 하나 이상의 이더넷, 전화(예를 들어, POTS), 케이블, 파워-라인 및 광섬유 시스템들 및/또는 하나 이상의 코드 분할 다중 액세스(CDMA 또는 CDMA2000) 통신 시스템, 주파수 분할 다중 액세스(FDMA) 시스템, 직교 주파수 분할 다중(OFDM) 액세스 시스템, 글로벌 모바일 통신 시스템(GSM)과 같은 시분할 다중 액세스(TDMA), GPRS(일반 패킷 무선 서비스) 또는 EDGE(향상된 데이터 GSM 환경), TETRA(지상 트렁크드 무선) 모바일 전화 시스템, 광대역 코드 분할 다중 액세스(WCDMA) 시스템, 고속 데이터 레이트 1xEV-DO(1세대 이볼루션 데이터 전용) 또는 1xEV-DO 골드 멀티캐스트 시스템, IEEE 802.18 시스템, 미디어FLOTM 시스템, DMB 시스템, DVB-H 시스템 또는 둘 이상의 장치들 사이에서의 데이터 통신을 위한 다른 방식을 포함하는 무선 시스템을 포함하는 임의의 유선 또는 무선 통신 시스템에 따른 통신을 위해 구성될 수 있다.
비디오 인코더(20) 및 비디오 디코더(26) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들(DSPs), 주문형 집적 회로들(ASICs), 필드 프로그램어블 게이트 어레이들(FPGAs), 분산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로서 구현될 수 있다. 비디오 인코더(20) 및 비디오 디코더(26)의 각각은 각 모바일 장치, 가입자 장치, 브로드캐스팅 장치 등의 결합된 인코더/디코더(CODEC)의 부분으로서 통합되는 하나 이상의 인코더들 또는 디코더들에 포함될 수 있다. 또한, 소스 장치(12) 및 수신 장치(14) 각각은 무선 통신을 지원하기 위해 충분한 무선 주파수(RF) 무선 컴포넌트들 및 안테나들을 포함하는 인코딩된 비디오의 전송 및 수신을 위한 적절한 변조, 복조, 주파수 변환, 필터링 및 증폭기 컴포넌트들을, 적용가능하다면, 포함할 수 있다. 예를 들어, 하지만, 이러한 컴포넌트들은 도 1의 소스 장치(12)의 전송기(22) 및 수신 장치(14)의 수신기(24)로서 사용될 수 있다.
도 2는 본 개시물의 코딩된 기술들을 수행하는 비디오 인코더(20)의 일 실시예를 도시한다. 비디오 인코더(20)는 도 1의 소스 장치(12)의 비디오 인코더에 대응할 수 있다. 비디오 인코더(20)는 예를 들어, 비디오 프레임들 또는 슬라이스들과 같은 코딩된 유닛들 내에서 블록들의 인트라- 및 인터-코딩을 수행한다. 인트라-코딩은 주어진 비디오 프레임, 슬라이스 또는 다른 코딩된 유닛 내에서 비디오 데이터의 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 의존한다. 예를 들어, 본 기술들은 프레임의 슬라이스에 대해 설명될 수 있다. 하지만, 본 기술들은 전체 프레임 또는 프레임의 임의의 부분과 같은 임의의 코딩된 유닛에 대해 사용될 수 있다. 인트라-코딩에 대해, 비디오 인코더(20)는 코딩된 블록과 동일 슬라이스 내에서 하나 이상의 이전에 인코딩된 블록들에 기반하여 예측 블록을 형성한다. 인터-코딩은 비디오 시퀀스의 인접 프레임들 내에서 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 의존한다. 인터-코딩에 대해, 비디오 인코더(20)는 둘 이상의 인접 프레임들 사이에서 비디오 블록들의 매칭의 운동을 트래킹하기 위해 움직임 추정을 수행한다.
도 2에 도시된 바와 같이, 비디오 인코더(20)는 인코딩된 비디오 프래임 또는 슬라이스 내에서 현재 비디오 블록을 수신한다. 비디오 인코더(20)는 시간 예측 및 공간 예측을 수행하기 위해 컴포넌트들을 포함한다. 도 2의 실시예에서, 비디오 인코더(20)는 공간 예측 유닛(30), 움직임 추정 유닛(32), 모드 선택 유닛(33), 기준 프레임 스토어(34), 움직임 보상 유닛(36), 블록 변환 유닛(38), 양자화 유닛(40), 역 양자화 유닛(42), 역 변환 유닛(44) 및 엔트로피 인코딩 유닛(46)을 포함한다. 루프-내 디블로킹 필터(도시되지 않음)는 블로킹 가공물들을 제거하기 위해 재구성된 비디오 블록들에 적용될 수 있다. 비디오 인코더(20)는 또한 합산기들(48A 및 48B)("합산기들(48)")을 포함한다. 움직임 추정 유닛(32) 및 움직임 보상 유닛(36)은 비디오 블록들의 인터-코딩을 위해 시간 예측을 수행한다. 공간 예측 유닛(30)은 비디오 블록들의 인트라-코딩을 위해 공간 예측을 수행한다.
시간 예측을 수행하기 위해, 움직임 추정 유닛(32)은 하나 이상의 움직임 벡터들을 생성하기 위해 하나 이상의 인접 비디오 프레임들에서의 블록들에 현재 비디오 블록을 비교한다. 현재 비디오 블록은 현재 코딩되고 있는 비디오 블록을 지칭하고, 비디오 인코더(20)로의 입력을 포함할 수 있다. (현재 비디오 블록이 비교될 비디오 블록들을 포함하는) 인접 프레임 또는 프레임들은 프레임 스토어(34)로부터 검색될 수 있다. 프레임 스토어(34)는 하나 이상의 이전에 인코딩된 프레임들 또는 블록들을 저장하기 위해 임의의 타입의 메모리 또는 데이터 저장 장치를 포함할 수 있다. 이 경우에, 프레임 스토어는 이전에 인코딩된 프레임들 내에 블록들을 저장할 수 있다. 움직임 추정 유닛(32)은 현재 비디오 블록에 가장 가깝게 매칭하는 인접 프레임에서의 블록, 예를 들어, 가장 작은 평균 제곱 오차(MSE), 편차 자승합(SSD), 절대 값 차이의 합(SAD)을 가지거나 또는 가장 작은 레이트-변조 비용을 가지는 인접한 프레임에서의 블록을 식별한다. 움직임 추정은 현재 비디오 블록의 블록 타입에 기반하여 16x16, 16x8, 8x16, 8x8 또는 더 작은 블록 크기들과 같은 가변적인 크기들의 블록들에 대해 수행될 수 있다.
움직임 추정 유닛(32)은 현재 비디오 블록을 코딩하기 위해 사용되는 식별된 예측 블록 및 현재 비디오 블록 사이에서 변위의 크기 및 비상 경로(trajectory)를 표시하는 움직임 벡터(MV)(또는 양방향 예측의 경우에 다수의 MV들)를 생성한다. 움직임 벡터들은 비디오 인코더(20)가 정수 픽셀 위치들보다 더 높은 정밀도로 움직임을 트래킹하고 더 나은 예측 블록을 획득하도록 하는 하프- 또는 4분의 1-픽셀 정밀도 또는 더 세밀한 정밀도를 가질 수 있다. 결과적인 움직임 벡터를 사용하면, 움직임 보상 유닛(36)은 움직임 보상에 의해 예측 비디오 블록을 형성한다. 정수 픽셀 정밀도의 경우에, 움직임 보상 유닛(36)은 예측 블록으로서 움직임 벡터에 의해 식별되는 위치에서 블록을 선택한다. 분수 픽셀 정밀도의 경우에, 움직임 보상 유닛(36)은 예측 블록을 형성하기 위해 보간법(interpolation)을 수행할 수 있다.
공간 예측의 경우에서, 공간 예측 유닛(30)은 공통 프레임 내에서 하나 이상의 인접 블록들에 기반하여 예측 블록을 생성한다. 공간 예측 유닛(30)은 예를 들어 현재 프레임 내에서의 하나 이상의 인접 블록들을 사용하는 보간 및 선택된 예측 모드를 수행함으로써 예측 블록을 생성할 수 있다. 현재 프레임 내에서의 하나 이상의 인접 블록들은 예를 들어 프레임 스토어(34)로부터 검색될 수 있다. 그러므로, 공간 예측의 경우에서, 프레임 스토어(34)는 디코딩 및 재구성되는 현재 프레임의 이전에 인코딩된 블록들을 저장할 수 있다. 인트라 16x16 블록 타입에 대해, 공간 예측 유닛(30)은 DC 예측 모드, 수직 예측 모드, 수평 예측 모드 및 평면 예측 모드의 네 가지 예측 모드들을 사용하여 예측 블록을 생성할 수 있다. 다른 실시예에 따라, 공간 예측 유닛(30)은 예측 블록으로서 현재 프레임 내에서 인접 블록들 중 하나를 선택할 수 있다. 이 방식에서, 공간 예측 유닛(30)은 인접 프레임들 내에서의 블록들 대신에 예측 블록을 생성하기 위해 공용 프레임 내에서의 블록들에 의존한다.
모드 선택 유닛(33)은 현재 블록을 디코딩하기 위해 선택되는 코딩 모드에 기반하여 공간 예측 유닛(30)에 의해 생성되는 예측 블록 및 움직임 보상 유닛(36)에 의해 생성되는 예측 블록 사이에서 선택적으로 스위칭한다. 이 방식에서, 비디오 인코더(20)는 예를 들어, 프레임마다(frame-by-frame) 또는 블록마다(block-by-block) 기준(basis)으로 인터-코딩 및 인트라 코딩을 선택적으로 수행할 수 있다. 비디오 인코더(20)는 합산기(48A)에서 현재 비디오 블록으로부터 생성되는 선택된 예측 블록을 감산함으로써 잔여 정보(도 2에서 "RESID INFO"라고 도시됨)를 생성한다. 그러므로, 인트라-코딩의 경우에서, 비디오 인코더(20)는 합산기(48A)에서 현재 비디오 블록으로부터 공간 예측 유닛(30)에 의해 선택된 예측 블록 출력을 감산함으로써 잔여 정보를 생성한다. 인터-코딩의 경우에서, 비디오 인코더(20)는 합산기(48A)에서 현재 비디오 블록으로부터 움직임 보상 유닛(36)에 의해 선택된 예측 블록을 감산함으로써 잔여 정보를 생성한다. 위에 설명한 바와 같이, 전여 정보는 예측 비디오 블록 및 코딩되는 현재 비디오 블록 사이의 차이들을 수량화한다. 블록 변환 유닛(38)은 DCT 또는 4x4 또는 8x8 정수 변환과 같은 변환을 잔여 변환 상수들을 생성하기 위해 잔여 정보에 적용한다. 양자화 유닛(40)은 비트 레이트를 더 감소시키기 위해 잔여 변환 상수들을 양자화한다.
양자화에 따라, 역 양자화 유닛(42) 및 역 변환 유닛(44)은 각각 잔여 정보(도 2에 "RECON RESID"로 도시됨)로 재구성하기 위해 역 양자화 및 역 변환을 적용할 수 있다. 합산기(48B)는 프레임 스토어(34)에 저장하기 위한 재구성된 비디오 블록을 생성하기 위해 움직임 보상 유닛(36) 또는 공간 예측 유닛(30)에 의해 생성되는 예측 블록에 재구성된 잔여 정보를 추가한다. 재구성된 비디오 블록은 후속 비디오 프레임에서 블록을 인터-코딩하기 위해 움직임 추정 유닛(32) 및 움직임 보상 유닛(36)에 의해 사용될 수 있다. 부가적으로, 재구성된 블록은 현재 프레임에서 다른 블록을 인트라-코딩하기 위해 공간 예측 유닛(30)에 의해 사용될 수 있다.
엔트로피 인코딩 유닛(46)은 양자화 유닛(40)으로부터 현재 비디오 블록에 대한 양자화된 잔여 상수들의 형태로 잔여 정보를 수신한다. 부가적으로, 엔트로피 인코딩 유닛(46)은 모드 선택 유닛(33) 및 비디오 인코더(20) 내의 다른 컴포넌트들로부터 하나 이상의 헤더 신택스 요소들의 형태로 현재 비디오 블록에 대한 블록 헤더 정보를 수신한다. 헤더 신택스 요소들은 현재 비디오 블록의 특정 특징들을 식별할 수 있다. 인트라-코딩되는 블록에 대해, 예를 들어, 엔트로피 인코딩 유닛(46)은 모드 선택 유닛(33)으로부터 블록 타입 신택스 요소 및 예측 모드 신택스 요소를 수신하고, 양자화 유닛(40)으로부터 루마 및 크로마에 대한 CBP 신택스 요소들을 수신할 수 있다. 인트라-코딩되는 블록에 대해, 엔트로피 인코딩 유닛(46)은 움직임 추정 유닛(32)으로부터 현재 비디오 블록에 대한 신택스 요소들로서 하나 이상의 움직임 벡터들을 부가적으로 수신할 수 있다. 상기 설명된 신택스 요소들은 엔트로피 인코딩 유닛(46)에 의해 수신될 수 있는 신택스 요소들의 실시예들이다. 엔트로피 인코딩 유닛(46)은 더 많거나 적은 신택스 요소들을 수신할 수 있다.
엔트로피 인코딩 유닛(46)은 인코딩된 비트스트림을 생성하기 위해 현재 비디오 블록에 대해 헤더 정보 및 잔여 정보를 인코딩한다. 엔트로피 인코딩 유닛(46)은 본 개시물에 설명된 기술들에 따라 블록들의 각각의 헤더 정보를 인코딩한다. 특히, 엔트로피 인코딩 유닛(46)은 이전에 인코딩된 블록들의 대응하는 신택스 요소들에 기반하여 블록들의 각각의 신택스 요소의 인코딩에 사용하기 위한 코딩 테이블을 적응적으로 선택한다. 달리 말하면, 엔트로피 인코딩 유닛(46)은 이전에 인코딩된 블록들의 신택스 요소들에 기반하여 블록마다의 기준으로 코딩 테이블을 적응적으로 선택할 수 있다. 그러므로, 엔트로피 인코딩 유닛(46)은 하나 이상의 이전에 인코딩된 블록들의 신택스 요소들에 기반하여 프레임의 제 1 블록에 대한 제 1 코딩 테이블 및 프레임의 제 2 블록에 대한 제 2 코딩 테이블을 선택할 수 있다. 임의의 실시예들에서, 선택을 하기 위해 사용된 이전에 인코딩된 블록들은 선택된 코딩 테이블과 상이한 코딩 테이블을 사용하여 인코딩된다.
일 양상에서, 엔트로피 인코딩 유닛(46)은 현재 비디오 블록에 인접한 하나 이상의 비디오 블록들, 즉, 이웃 비디오 블록들에 기반하여 인트라-예측 블록 타입들의 인코딩에 사용하기 위한 코딩 테이블을 적응적으로 선택할 수 있다. 다른 양상에서, 엔트로피 인코딩 유닛(46)은 인트라 16x16 블록 타입들을 가지는 이전에 인코딩된 블록들의 퍼센트에 기반하여 코딩 테이블을 선택할 수 있다. 예를 들어, 하지만, 엔트로피 인코딩 유닛(46)은 현재 블록 바로 위에 위치된 이웃 블록("상측 이웃 블록") 및 현재 블록의 바로 좌측에 위치된 이웃 블록("좌측 이웃 블록")에 기반하여 인트라-예측 블록 타입을 인코딩하기 위한 코딩 테이블을 선택하는 것으로 설명될 것이다. 하지만, 엔트로피 인코딩 유닛(46)은 인코딩하기 위한 코딩 모드 테이블의 선택에서 임의의 위치에서 임의의 수의 이웃 블록들을 분석할 것이다. 게다가, 엔트로피 인코딩 유닛(46)은 이전에 인코딩된 비디오 블록들의 블록 타입들에 기반하여 인터-예측 블록 타입들에 대한 코딩 테이블을 적응적으로 선택하기 위해 유사한 기술들을 사용할 수 있다. 부가적으로, 본 개시물의 기술들은 예측 모드, 루마 CBP, 크로마 CBP, 블록 파티션, 모션 벡터 등과 같은 현재 비디오 블록의 다른 신택스 요소들을 코딩하기 위한 코딩 테이블을 적응적으로 선택하기 위해 추가적으로 적용될 수 있다.
엔트로피 인코딩 유닛(46)은 상측 이웃 블록 및 좌측 이웃 블록이 모두 인트라 16x16 블록 타입들을 가지지 않을 때 인트라 16x16 블록 타입보다 더 짧은 코드워드와 인트라 4x4 또는 8x8 블록 타입들을 연관시키는 코딩 테이블을 선택할 수 있다. 엔트로피 인코딩 유닛(46)은 예를 들어, H.264/MPEG-4 파트 10 AVC 표준에 따라 예를 들어 인트라 4x4 및 인트라 8x8 블록 타입을 코드워드 "0"(즉, 1-비트 코드워드)과 연관시키고 인트라 16x16 블록 타입을 코드워드 "10"(즉, 2-비트 코드워드)과 연관시키는 코딩 테이블을 선택할 수 있다. 엔트로피 인코딩 유닛(46)은 상측 이웃 블록 및 좌측 이웃 블록 모두가 인트라 16x16 블록 타입들을 가질 때 인트라 16x16 블록 타입을 인트라 4x4 또는 8x8 블록 타입들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택할 수 있다. 일 실시예에서, 선택된 코딩 테이블은 상측 및 좌측 이웃 블록들이 인트라 16x16 블록 타입들을 가질 때 인트라 16x16 블록 타입을 코드워드 "0"(즉, 1-비트 코드워드)과 연관시키고 인트라 4x4 및 8x8 블록 타입들을 코드워드 "10"(즉, 2-비트 코드워드)과 연관시킬 수 있다. 그러므로, 엔트로피 인코딩 유닛(46)은 상측 및 좌측 이웃 블록들이 인트라 16x16 블록 타입들을 가지면, 현재 비디오 블록이 인트라 16x16 블록 타입일 가능성이 증가한다는 경험칙하에서 동작한다. 일부 경우들에서 현재 블록은 인트라 16x16 블록 타입이 아닐 수 있고 적응적으로 선택된 코딩 테이블은 인트라 8x8 또는 4x4 블록 타입을 위해 사용되는 더 긴 코드워드를 초래할 수 있다. 하지만, 경험칙이 사실이 아닌 경우보다는 더 자주 인트라 16x16 블록 타입을 인코딩하기 위한 비트들의 절약이 초래된다. 이 방식에서, 비디오 인코더(20)는 인트라 16x16 블록 타입이 더 자주 사용될 때 블록들을 더 효율적으로 인코딩하는 코딩 테이블을 적응적으로 선택한다.
엔트로피 인코딩 유닛(46)은 또한 블록 헤더 신택스 요소들을 인코딩하기 위해 사용되는 비트들의 수를 더 감소시키고자 하기 위해 적어도 하나의 이전에 인코딩된 블록에 기반하여 현재 블록의 하나 이상의 다른 신택스 요소들을 예측할 수 있다. 예를 들어, 엔트로피 인코딩 유닛(46)은 예를 들어, 상측 및 좌측 이웃 블록들과 같은 이전 블록들로부터 현재 블록의 예측 모드 신택스 요소 및 루마/크로마 CBP 신택스 요소들을 함께 예측하고자 할 수 있다. 엔트로피 인코딩 유닛(46)은 예측된 예측 모드 및 루마/크로마 CBP에 현재 블록의 예측 모드 및 루마/크로마 CBP를 비교하고, 예측이 성공적이면, 즉, 이들이 동일하면, 엔트로피 인코딩 유닛(46)은 예측이 성공적이라고 표시하는 플래그를 인코딩한다. 엔트로피 인코딩 유닛(46)은 그러므로 각 신택스 요소를 개별적으로 인코딩하는 대신에 예측 모드 및 루마/크로마 CBP를 번들화하고, 플래그(예를 들어, 1-비트 플래그)를 사용하여 이들을 나타내어 신택스 요소들을 인코딩하기 위해 사용되는 비트들의 수의 추가적인 감소를 초래한다.
예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이지 않으면, 엔트로피 인코딩 유닛(46)은 예측의 실패를 표시하기 위해 플래그를 설정한다. 엔트로피 인코딩 유닛(46)은 이전 블록들로부터 현재 블록의 예측 모드만을 예측하고자 할 수 있다. 예를 들어, 엔트로피 인코딩 유닛(46)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드를 이웃 블록들 중 하나의 예측 모드인 것으로 예측하고자 할 수 있다. 엔트로피 인코딩 유닛(46)은 현재 블록의 예측 모드를 예측된 예측 모드와 비교하고, 예측이 성공적이면, 즉, 이들이 동일하면, 엔트로피 인코딩 유닛(46)은 예측이 성공적임을 표시하는 예측 모드 플래그(예를 들어, 1-비트 예측 모드 플래그)를 인코딩한다. 예측이 성공적이면, 1-비트 예측 모드 플래그는 예측 모드의 2-비트 고정 길이 코드워드 대신에 송신되고 그럼으로써 적어도 하나의 부가적인 비트를 절약한다. 엔트로피 인코딩 유닛(46)은 루마 CBP 및 크로마 CBP를 개별적으로 인코딩한다. 예측 모드의 예측이 또한 성공적이지 않거나 또는 엔트로피 인코딩 유닛(46)이 예측 모드를 예측하고자 하지 않으면, 엔트로피 인코딩 유닛(46)은 예측이 성공적인지 나타내기 위해 부가적인 플래그들을 코딩하지 않고 분리된 코드북들을 사용하여 신택스 요소들의 각각을 인코딩한다.
엔트로피 인코딩 유닛(46)은 본 개시물의 일 양상에 따라 인트라-코딩 기술들을 수행하기 위해 아래의 예시적인 의사(pseudo) 코드에 따라 동작할 수 있다.
Figure 112010030201900-pct00001
Figure 112010030201900-pct00002
먼저, 엔트로피 인코딩 유닛(46)은 상측 이웃 블록이 인트라 16x16 블록 타입을 가지면 변수 upI16를 "1"로 설정하고, 상측 이웃 블록이 16x16 블록 타입을 가지면 변수 upI16을 "0"으로 설정한다. 마찬가지로, 엔트로피 인코딩 유닛(46)은 좌측 이웃 블록이 인트라 16x16 블록 타입을 가지면 변수 leftI16을 "1"과 동일하게 설정하고, 좌측 이웃 블록이 인트라 16x16 블록 타입을 가지면 변수 leftI16을 "0"으로 설정한다.
엔트로피 인코딩 유닛(46)은 상측 및 좌측 이웃 블록들의 블록 타입들에 기반하여 현재 블록의 블록 타입을 선택적으로 인코딩한다. 특히, 엔트로피 인코딩 유닛(46)은 upI16leftI16 모두가 "1"과 같을 때 인트라 16x16(I16), 인트라 4x4 또는 8x8(I4/8) 및 원픽셀 데이터(IPCM) 각각에 대하여 코드워드들 "0", "10" 및 "11"을 사용하여 현재 블록의 블록 타입(즉, currMBtype)을 인코딩한다. 그러므로, 인트라 16x16(I16) 블록 타입에 할당된 가변 길이 코드워드는 인트라 4x4 또는 8x8 블록 타입들(I4/8) 또는 원픽셀 데이터(IPCM) 블록 타입에 할당된 가변 길이 코드워드보다 더 짧다. upI16, leftI16 또는 둘다가 인트라 16x16과 다른 블록 타입을 가질 때, 엔트로피 인코딩 유닛(46)은 블록 타입들 I4/8, I16, IPCM 각각에 대해 코드워드들 "0", "10", "11"을 사용하여 현재 블록의 블록 타입(즉, currMBtype)을 인코딩한다.
비록 상기 설명된 예시적인 의사 코드에서, 엔트로피 인코딩 유닛(46)은 상측 및 및 좌측 이웃 블록들에 기반하여 현재 블록의 블록 타입의 인코딩에 사용하기 위해 코딩 테이블들을 선택하지만, 엔트로피 인코딩 유닛(46)은 선택을 하기 위해 더 많은 이웃 블록들을 분석할 수 있다. 게다가, 엔트로피 인코딩 유닛(46)은 예를 들어, 인트라 16x16 블록 타입을 가지는 이전에 인코딩된 블록들의 퍼센트와 같은 다른 기준에 기반하여 인코딩에 사용하기 위한 코딩 테이블들을 선택할 수 있다. 예를 들어, 엔트로피 인코딩 유닛(46)은 마지막 20개의 이전에 인코딩된 블록들 중 적어도 10개가 인트라 16x16 블록 타입들을 가질 때 인트라 16x16 블록 타입과 연관된 더 짧은 코드워드를 가지는 코딩 테이블을 선택할 수 있다.
예측 모드 및 CBP들(루마 및 크로마)을 예측하기 위해, 엔트로피 인코딩 유닛(46)은 변수들(upValueleftValue)을 초기화한다. 변수들(upValueleftValue)은 상측 이웃 블록 및 좌측 이웃 블록 각각에 대해 예측 모드 및 CBP들(루마 및 크로마)의 값들이다. 엔트로피 인코딩 유닛(46)은 upI16이 "1"과 같지 않을 때, 즉, 상측 이웃 블록이 인트라 16x16 블록 타입을 가지지 않을 때 upValue를 "0"과 같게 설정한다. upI16이 "1"과 같을 때, 즉, 상측 이웃 블록이 인트라 16x16 블록 타입을 가질 때, 엔트로피 인코딩 유닛(46)은 I16value 함수를 사용하여 upValue를 계산한다. I16value 함수는 값을 상측 이웃 블록의 예측 모드에 대응하는 최하위 2 비트들, 상측 이웃 블록의 크로마 CBP에 대응하는 다음 2개의 유효 비트들 및 상측 이웃 블록의 루마 CBP에 대응하는 다음 비트로 리턴(return)한다. 엔트로피 인코딩 유닛(46)은 upValue와 유사한 방식으로 leftValue를 결정한다. 특히, 엔트로피 인코딩 유닛(46)은 leftI16이 "1"과 같지 않을 때 leftValue를 "0"과 같이 설정하고, leftI16이 "1"과 같을 때 I16value 함수로부터 리턴된 값과 동일하게 leftValue를 설정한다.
엔트로피 인코딩 유닛(46)은 이웃 블록들의 블록 타입들 및 이웃 블록들의 예측 모드 및 CBP들의 값들, 즉, upValueleftValue에 기반하여 현재 블록(predValue)에 대하여 예측 모드 및 CBP 값들의 값을 예측한다. 만약 upI16leftI16 둘 다 "1"과 같으면, 즉 이웃 블록들 둘 다 인트라 16x16 블록 타입들을 가지면, 엔트로피 인코딩 유닛(46)은 upValueleftValue의 최소값과 같은 preValue를 설정한다. 비록 예시적인 의사 코드에서, 엔트로피 인코딩 유닛(46)이 upValueleftValue의 최소값과 같이 predValue를 설정하지만, 엔트로피 인코딩 유닛(46)은 upValueleftValue의 최대값 또는 두 값들의 조합과 같게 predValue를 설정할 수 있다.
두 이웃 블록들 모두가 인트라 16x16 블록 타입들을 가지지 않을 때, 엔트로피 인코딩 유닛(46)은 오직 upI16만이 "1"이면 upValue와 같게 predValue를 설정하거나 오직 leftI16이 "1"과 같으면 leftValue와 같게 predValue를 설정한다. 이 방법에서, 엔트로피 인코딩 유닛(46)은 인트라 16x16 블록 타입을 가지는 이웃 블록에 대한 예측 모드 및 CBP 값들을 사용하여 현재 블록에 대한 예측 모드 및 CBP 값들의 값(predValue)을 예측한다. upI16 또는 leftI16이 둘 다 "1"과 같지 않으면, 즉, 이웃 블록 타입들이 모두 인트라 16x16이 아니면, 엔트로피 인코딩 유닛(46)은 "-1"과 같게 predValue를 설정한다. predValue를 "-1"과 같게 설정하는 것은 현재 블록의 예측 모드 및 CBP 값들의 값(predValue)을 예측하기 위해 사용할 이웃 블록이 존재하지 않음을 표시한다.
엔트로피 인코딩 유닛(46)은 그 다음에, I16value 함수를 사용하여 현재 블록에 대한 예측 모드 및 CBP들의 값(currValue)을 계산한다. currValue를 계산한 후에, 엔트로피 인코딩 유닛(46)은 currValuepredValue의 비교에 기반하여 현재 블록의 예측 모드 및 CBP들을 인코딩한다. predValue가 "-1"과 같으면, 즉, 예측을 위해 사용할 이웃 블록이 존재하지 않으면, 엔트로피 인코딩 유닛(46)은 2-비트 고정 길이 코드를 사용하여 현재 블록의 예측 모드(currPredMode)를 인코딩하고, 1-비트 고정 길이 코드를 사용하여 루마 CBP(currLumaCBP)를 인코딩하며, 가변 길이 코드워드들{0, 10, 11}을 사용하여 크로마 CBP(currChromaCBP)를 인코딩한다.
currPredMode에 대한 2-비트 고정 길이 코드들은 4 개의 예측 모드들 중 하나에 대응한다. 예를 들어, 수평 예측 모드는 코드 "00"에 대응할 수 있고, 수직 예측 모드는 "01"에 대응할 수 있으며, DC 예측 모드는 "10"에 대응할 수 있고, 평면 예측 모드는 "11"에 대응할 수 있다. currLumaCBP에 대한 1-비트 고정 길이 코드는 임의의 비-제로 루마 상수들이 존재하는지 여부를 표시한다. 예를 들어, "0"의 currLumaCBP는 비-제로 루마 상수들이 존재하지 않음을 표시하고 "1"의 currLumaCBP는 적어도 하나의 비-제로 루마 상수가 존재함을 나타낸다. currChromaCBP에 대한 가변 길이 코드워드들은 임의의 비-제로 크로마 상수들이 존재하는지 여부를 표시한다. 예를 들어, "0"의 currChromaCBP 값은 모든 크로마 AC 및 DC 상수들이 제로임을 표시하고, "10"의 currChromaCBP 값은 적어도 하나의 비-제로 크로마 DC 상수가 존재하지만 비-제로 크로마 AC 상수들이 존재하지 않음을 표시하며, "11"의 currChromaCBP 값은 적어도 하나의 비-제로 크로마 DC 상수 및 적어도 하나의 비-제로 크로마 AC 상수가 존재하는지 표시한다.
predValue가 "-1"과 같지 않으면, 엔트로피 인코딩 유닛(46)은 currValuepredValue와 같은지 여부를 결정하고, 그렇다면, 예측이 성공적임을 표시하기 위해 "1"과 같이 설정된 1-비트 플래그를 송신한다. 엔트로피 인코딩 유닛(46)은 이 비디오 블록에 대해 예측 모드 또는 루마/크로마 CBP들에 관한 임의의 다른 정보를 송신하지 않을 수 있다. 대신에, 1-비트 플래그는 예측 값(preValue)이 옳음을 디코더에 표시함으로써, 디코더가 상기 설명된 바와 유사한 방법으로 디코더에 의해 예측된 예측 모드 및 루마/크로마 CBP들을 사용하도록 한다. 이 방법에서, 엔트로피 인코딩 유닛(46)은 "1"과 같이 설정된 1-비트 플래그를 송신함으로써 예측 모드 및 루마/크로마 CBP들을 함께 번들화한다. 예측 모드 및 CBP 값들의 예측이 성공적임을 표시하기 위해 1-비트 플래그를 송신하는 것은 헤더 정보에 대해 인코딩될 필요가 있는 비트들의 수를 감소시킨다.
predValue가 "-1"과 같지 않고, currValue와 같지 않으면, 엔트로피 인코딩 유닛(46)은 예측이 실패됨, 즉, currValuepredValue와 같지 않음을 디코더에 표시하기 위해 1-비트 플래그를 "0"으로 설정한다. 1-비트 플래그에 따라, 엔트로피 인코딩 유닛(46)은 상기 설명된 바와 같이 2-비트 고정 길이 코드를 사용하여 현재 블록의 예측 모드(currPredMode)를 인코딩하고, 1-비트 고정 길이 코드를 사용하여 루마 CBP(currLumaCBP) 및 가변 길이 코드워드들{0, 10, 11}을 사용하여 크로마 CBP(currChromaCBP)를 인코딩한다. 그러므로, 이 경우에, 예측 모드 및 코딩된 블록 패턴들(CBPs)은 함께 번들화되는 대신에 개별적으로 송신된다.
본 개시물의 추가적인 양상에서, 예측 모드 및 루마/크로마 CBP들의 예측이 실패할 때, 즉, currValuepredValue와 같지 않을 때 엔트로피 인코딩 유닛(46)은 하나 이상의 이웃 블록들의 예측 모드로부터 현재 블록의 예측 모드를 예측하고자 할 수 있다. 달리 말하면, 엔트로피 인코딩 유닛(46)은 또한 루마 및 크로마 CBP들을 예측하고자 하지 않고 예측 모드를 예측하고자 할 수 있다. 예측 모드를 예측하기 위한 예시적인 의사 코드는 아래에 제공된다.
Figure 112010030201900-pct00003
Figure 112010030201900-pct00004
엔트로피 인코딩 유닛(46)은 변수들(upModeleftMode)을 각각 현재 블록의 바로 위 및 현재 블록의 바로 좌측 이웃 블록의 예측 모드와 같도록 초기화한다. 엔트로피 인코딩 유닛(46)은 하나 이상의 이웃 블록들에 기반하여 현재 블록의 예측 모드(predMode)를 예측한다. upI16leftI16이 모두 "1"과 같을 때, 즉, 이웃 블록들이 둘 다 인트라 16x16 블록 타입들을 가질 때, 엔트로피 코딩 유닛(46)은 upModeleftMode의 최소값으로서 predMode를 설정한다. 엔트로피 인코딩 유닛(46)은 최소값 대신에 upModeleftMode의 최대값 또는 이 둘의 조합을 사용할 수 있다. 이웃 블록들 둘 다가 인트라 16x16 블록 타입들이 아니면, 엔트로피 인코딩 유닛(46)은 upI16이 "1"과 같으면 상측 이웃 블록의 예측 모드(upMode)와 동일하게 predMode를 설정하거나 leftI16이 "1"과 같으면 좌측 이웃 블록의 예측 모드와 동일하게 predMode를 설정한다. upI16 또는 leftI16이 둘 다 "1"과 같지 않으면, 엔트로피 인코딩 유닛(46)은 "-1"과 동일하게 predMode를 설정하고, 이는 현재 블록의 예측 모드를 예측하기 위해 사용될 수 있는 인트라 16x16 이웃 블록들이 존재하지 않음을 표시한다.
엔트로피 인코딩 유닛(46)은 예측된 예측 모드(predMode)에 기반하여 현재 블록의 예측 모드(currPredMode)를 인코딩한다. predMode가 "-1"과 동일하면, 엔트로피 인코딩 유닛(46)은 네 개의 가능한 예측 모드들 중 하나에 대응하는 2-비트 고정 길이 코드를 사용하여 currPredMode를 인코딩한다. 또한, 엔트로피 인코딩 유닛(46)은 상기 설명된 바와 같이 1-비트 고정 길이 코드를 사용하여 루마 CBP(currLumaCBP)를 인코딩하고 가변 길이 코드워드들{0, 10, 11}을 사용하여 크로마 CBP를 인코딩한다. predMode가 "-1"과 같지 않으면, 엔트로피 인코딩 유닛(46)은 currPredModepredMode와 같은지 여부를 결정하고, 그렇다면, "1"과 동일한 1-비트 플래그를 송신한다. 엔트로피 인코딩 유닛(46)은 현재 블록의 예측 모드에 관한 임의의 다른 정보를 송신하지 않을 수 있다. 대신에, 1-비트 플래그는 예측 모드의 예측이 성공적임을 디코더에 표시한다. 디코더는 그러므로 현재 블록의 예측 모드로서 예측된 예측 모드(predMode)를 사용할 수 있다. 엔트로피 인코딩 유닛(46)은 또한 1-비트 고정 길이 코드를 사용하여 currLumaCBP를 인코딩하고 가변 길이 코드들{0, 10, 11}을 사용하여 currChromaCBP를 인코딩할 수 있다. 그러므로, 현재 예측 모드의 성공적 예측은 예측 모드, 루마 CBP 및 크로마 CBP의 번들의 예측이 실패했을 때에도 현재 블록을 코딩하기 위해 필요한 비트들의 수의 감소를 초래한다.
predMode가 "-1"과 같지 않거나 currPredMode이면, 엔트로피 인코딩 유닛(46)은 예측 모드의 예측이 실패함, 즉, currPredModepredMode와 같지 않음을 디코더에 표시하기 위해 "0"과 같게 1-비트 플래그를 설정한다. 1-비트 플래그에 따라, 엔트로피 인코딩 유닛(46)은 코드워드들{0, 10, 11}을 사용하여 현재 블록의 예측 모드(currPredMode)를 인코딩한다. currPredModepredMode와 같지 않기 때문에, 남아있는 다른 가능한 예측 모드들은 오직 세 개이다. 그러므로, 엔트로피 인코딩 유닛(46)은 가변 길이 코드워드들{0, 10, 11}을 사용하여 currPredMode를 인코딩할 수 있다. 엔트로피 인코딩 유닛(46)은 또한 상기 상세히 설명된 바와 같이 currLumaCBPcurrChromaCBP를 인코딩한다.
도 3은 본 발명의 양상에 따라 비디오 블록들을 인코딩하도록 구성되는 예시적인 엔트로피 인코딩 유닛(46)을 도시하는 블록도이다. 엔트로피 인코딩 유닛(46)은 도 1 및 도 2의 비디오 인코더(20) 내에 존재할 수 있다. 엔트로피 인코딩 유닛(46)은 블록에 대한 블록 데이터를 수신하고, 디코딩을 위한 다른 장치에 전송하기 위한 인코딩된 비트스트림을 생성한다. 도 3의 실시예에서, 엔트로피 인코딩 유닛(46)은 인코딩 유닛(50), 코딩 테이블 선택 유닛(52) 및 신택스 요소 예측 유닛(54)을 포함한다.
인코딩 유닛(50)은 하나 이상의 코딩 테이블들을 사용하여 블록에 대한 블록 데이터를 인코딩한다. 인코딩 유닛(50)은 코딩 테이블 선택 유닛(52)으로부터 인코딩하기 위해 사용할 코딩 테이블들을 획득할 수 있다. 코딩 테이블 선택 유닛(52)은 상이한 타입들의 데이터를 인코딩하기 위해 다수의 코딩 테이블들을 저장할 수 있다. 예를 들어, 코딩 테이블 선택 유닛(52)은 잔여 정보를 인코딩하기 위한 하나 이상의 코딩 테이블들, 헤더 신택스 요소의 각 타입을 인코딩하기 위한 하나 이상의 코딩 테이블들, 헤더 신택스 요소들의 번들들을 인코딩하기 위한 하나 이상의 코딩 테이블들 등을 저장할 수 있다. 임의의 실시예들에서, 코딩 테이블 선택 유닛(52)은 코딩 테이블들을 저장하지 않을 수 있지만, 대신 엔트로피 인코딩 유닛(46) 외부에 저장 장치로부터 올바른 코딩 테이블을 검색할 수 있다.
코딩 테이블 선택 유닛(52)은 이전에 인코딩된 블록들의 블록 타입들에 기반하여 현재 블록의 블록 타입 신택스 요소의 인코딩에서 인코딩 유닛(50)에 의해 사용할 코딩 테이블을 적응적으로 선택할 수 있다. 일 양상에서, 코딩 테이블 선택 유닛(52)은 상기 상세히 설명된 바와 같이 하나 이상의 이웃 비디오 블록들에 기반하여, 예를 들어, 상측 및 좌측 이웃 블록에 기반하여 현재 블록의 블록 타입의 인코딩에서 사용하기 위한 코딩 테이블을 적응적으로 선택할 수 있다. 코딩 테이블 선택 유닛(52)은 예를 들어, 상측 이웃 블록 및 좌측 이웃 블록이 둘 다 인트라 16x16 블록 타입들을 가지지 않을 때 인트라 4x4 또는 8x8 블록 타입들을 인트라 16x16 블록 타입보다 더 짧은 코드워드와 연관시키는 제 1 코딩 테이블을 선택하고, 상측 이웃 블록 및 좌측 이웃 블록이 둘 다 인트라 16x16 블록 타입들을 가질 때 인트라 16x16 블록 타입을 인트라 4x4 또는 8x8 블록 타입들보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 선택할 수 있다. 다른 양상에서, 코딩 테이블 선택 유닛(52)은 인트라 16x16 블록 타입들을 가지는 이전에 인코딩된 블록들의 퍼센트에 기반하여 코딩 테이블을 선택할 수 있다. 인코딩 유닛(50)은 선택된 코딩 테이블에 따라 현재 블록의 블록 타입 신택스 요소를 인코딩한다.
임의의 실시예들에서, 신택스 요소 예측 유닛(54)은 이전에 인코딩된 블록들에 기반하여 현재 블록의 하나 이상의 다른 신택스 요소들을 예측하고자 할 수 있다. 인트라-예측 블록에 대해, 예를 들어, 신택스 요소 예측 유닛(43)은 현재 블록의 예측 모드 신택스 요소 및 루마/크로마 CBP 신택스 요소들을 예측하고자 할 수 있고, 및/또는 루마/크로마 CBP 신택스 요소들을 예측하지 않고 현재 블록의 예측 모드 신택스 요소를 예측하고자 할 수 있다. 신택스 요소 예측 유닛(54)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드 및 루마/크로마 CBP들을 이웃 블록들의 하나의 예측 모드 및 루마/크로마 CBP인 것으로 예측할 수 있다.
인코딩 유닛(50)은 신택스 요소 예측 유닛(54)으로부터 예측된 신택스 요소들을 수신하고, 예측된 신택스 요소들과 현재 블록의 실제 신택스 요소들을 비교한다. 예측이 성공적이면, 즉, 예측된 및 실제 신택스 요소들이 동일하면, 인코딩 유닛(50)은 상기 실시예에서 신택스 요소들, 예를 들어, 예측 모드 및 루마/크로마 CBP의 예측이 성공적이었음을 표시하는 플래그를 인코딩한다. 인코딩 유닛(50)은 그러므로 각 신택스 요소를 개별적으로 인코딩하는 대신에 예측 모드 및 루마/크로마 CBP를 번들화하고, 이들을 플래그(예를 들어, 1-비트 플래그)를 사용하여 나타냄으로써 신택스 요소들을 인코딩하기 위한 비트들의 수의 추가적인 감소를 초래한다.
예측 모드, 루마 CBP 및 크로마 CBP(또는 다른 신택스 요소)의 예측이 성공적이지 않으면, 인코딩 유닛(50)은 예측의 실패를 표시하기 위해 플래그를 인코딩한다. 예측 모드 및 루마/크로마 CBP들의 예측이 성공적이지 않으면, 신택스 요소 예측 유닛(54)은 루마/크로마 CBP들을 예측하지 않고 이전 블록들로부터 현재 블록의 예측 모드를 예측하고자 할 수 있다. 예를 들어, 신택스 요소 예측 유닛(54)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드를 이웃 블록들 중 하나의 예측 모드인 것으로 예측할 수 있다.
인코딩 유닛(50)은 신택스 예측 유닛(54)으로부터 수신된 예측된 예측 모드와 현재 블록의 예측 모드를 비교하고, 예측이 성공적이면, 인코딩 유닛(50)은 예측 모드의 예측이 성공적이었음을 표시하는 플래그를 인코딩한다. 인코딩 유닛(50)은 자신의 신택스 요소들과 연관된 각 코딩 테이블들을 사용하여 루마 CBP 및 크로마 CBP를 개별적으로 인코딩한다. 예측 모드의 예측이 또한 성공적이지 않거나 예측 모드를 예측하고자 하는 시도가 없으면, 인코딩 유닛(50)은 코딩 테이블 선택 유닛(52)으로부터 검색된 각 코딩 테이블들을 이용하여 개별적으로 신택스 요소들의 각각을 인코딩한다.
도 4는 본 개시물의 코딩 기술들에 따라 비디오 데이터를 디코딩하는 비디오 디코더(26)의 일 실시예를 도시하는 블록도이다. 비디오 디코더(26)는 예를 들어, 도 1의 수신 장치(14)의 비디오 디코더에 대응할 수 있다. 비디오 디코더(26)는 비디오 프레임들 내에서 블록들의 인트라- 및 인터-디코딩을 수행할 수 있다. 도 4의 실시예에서, 비디오 디코더(26)는 엔트로피 디코딩 유닛(60), 공간 예측 유닛(62), 움직임 보상 유닛(63), 역 양자화 유닛(64), 역변환 유닛(66) 및 프레임 스토어(68)를 포함한다. 비디오 디코더(26)는 또한 역변환 유닛(66)의 출력 및 비디오 블록이 인터-코딩되었는지 또는 인트라-코딩되었는지에 의존하여 움직임 보상 유닛(63) 또는 공간 예측 유닛(62) 각각의 출력을 결합하는 합산기(69)를 포함한다. 도 4는 비디오 블록들의 인트라-디코딩을 위해 비디오 디코더(26)의 공간 예측 컴포넌트들을 도시한다.
엔트로피 디코딩 유닛(60)은 잔여 정보(예를 들어, 양자화된 잔여 상수들의 형태로) 및 헤더 정보(예를 들어, 하나 이상의 헤더 신택스 요소들의 형태로)를 획득하기 위해 인코딩된 비디오 비트스트림을 수신하고 인코딩된 비트스트림을 디코딩한다. 상기 상세히 설명된 바와 같이, 엔트로피 인코딩 유닛(46)(도 2)은 이전에 인코딩된 블록들의 블록 타입들에 기반하여 블록 타입들의 인코딩에 사용할 코딩 테이블들(예를 들어, 코드북들)을 적응적으로 선택한다. 엔트로피 디코딩 유닛(60)은 그러므로 현재 블록의 블록 타입들을 올바르게 디코딩하기 위해 엔트로피 인코딩 유닛(46)에 유사한 방식으로 블록 타입들을 디코딩하기 위해 사용하기 위한 코딩 테이블을 적응적으로 선택할 수 있다.
일 양상에서, 엔트로피 디코딩 유닛(60)은 현재 슬라이스의 하나 이상의 이웃 블록들, 즉, 인접 비디오 블록들에 기반하여 현재 블록의 블록 타입을 디코딩하기 위한 코딩 테이블을 적응적으로 선택한다. 프레임의 제 1 비디오 블록과 같이 이미 인코딩된 인접 비디오 블록들을 가지지 않은 비디오 블록에 대해 엔트로피 디코딩 유닛(60)은 디폴트 코딩 테이블을 선택할 수 있다. 디폴트 코딩 테이블은 예를 들어 인트라 16x16 블록 타입에 할당된 코드워드보다 인트라 4x4 및 8x8 블록 타입들에 더 짧은 코드워드를 할당하는 코딩 테이블일 수 있다. 이전에 디코딩된 인접 비디오 블록들이 존재하는 슬라이스 내에서의 비디오 블록들에 대하여 엔트로피 디코딩 유닛(60)은 디코딩을 위한 코딩 테이블의 선택에서 임의의 위치에서 임의의 수의 이웃 블록들을 분석할 수 있다. 예를 들어, 하지만, 엔트로피 디코딩 유닛(60)은 상측 이웃 블록 및 좌측 이웃 블록에 기반하여 블록의 블록 타입을 디코딩하기 위한 코딩 테이블을 적응적으로 선택하는 것으로 설명될 것이다.
인트라-예측 블록 타입들의 경우에서, 예를 들어, 엔트로피 디코딩 유닛(60)은 상측 이웃 블록 및 좌측 이웃 블록 둘 다가 인트라 16x16 블록 타입들을 가질 때 더 짧은 코드워드를 인트라 4x4 또는 8x8 블록 타입들보다 인트라 16x16 블륵 타입과 연관시키는 코딩 테이블을 선택할 수 있다. 상측 및 좌측 이웃 블록 둘 다가 인트라 16x16 블록 타입들을 가질 때 선택되는 코딩 테이블은 예를 들어 인트라 16x16 블록 타입, 인트라 4x4 또는 8x8 블록 타입들 및 원픽셀 데이터 블록 타입(IPCM) 각각에 코드워드들 "0", "10" 및 "11"을 연관시킬 수 있다. 상측 이웃 블록 및 좌측 이웃 블록 둘 다가 인트라 16x16 블록 타입들을 가지지 않을 때, 엔트로피 디코딩 유닛(60)은 인트라 4x4/8x8 블록 타입들과 더 짧은 가변 길이 코드워드를 연관시키고 인트라 16x16 블록 타입과 더 긴 코드워드를 연관시키는 코딩 테이블을 선택할 수 있다. 엔트로피 디코딩 유닛(60)은 이웃 블록들에 기반하여 선택된 코딩 테이블을 사용하여 현재 블록의 블록 타입을 디코딩한다.
상기 설명된 실시예에서, 비록 엔트로피 디코딩 유닛(60)은 이웃 블록들에 기반하여 코딩 테이블을 선택하지만, 엔트로피 디코딩 유닛(60)은 다른 기준에 기반하여 코딩 테이블을 선택할 수 있다. 예를 들어, 엔트로피 디코딩 유닛(60)은 임계값을 초과하는 인트라 16x16 블록 타입들을 가지는 이전에 인코딩된 블록들의 퍼센트, 예를 들어, 마지막 20개의 이전에 인코딩된 블록들 중 적어도 10개가 인트라 16x16 블록 타입들을 가짐에 기반하여 코딩 테이블을 선택할 수 있다. 게다가, 엔트로피 인코딩 유닛(60)은 인트라-코딩된 블록들 외에 인터-코딩된 블록들의 블록 타입의 디코딩을 위한 코딩 테이블을 적응적으로 선택할 수 있다.
엔트로피 디코딩 유닛(60)은 현재 블록의 예측 모드, 루마 CBP 및 크로마 CBP를 부가적으로 디코딩한다. 상기 설명된 바와 같이, 엔트로피 인코딩 유닛(46)(도 2)은 하나 이상의 이웃 블록들의 신택스 요소들로부터 현재 블록에 대한 하나 이상의 다른 신택스 요소들, 예를 들어, 예측 모드 및 루마/크로마 CBP들을 예측할 수 있다. 예측이 성공적인 실시예들에서, 엔트로피 인코딩 유닛(46)은 예측 모드 및 루마/크로마 CBP들을 번들화하고, 예측이 성공적임을 표시하는 플래그(예를 들어, 1-비트 플래그)를 전송한다. 그러므로, 엔트로피 디코딩 유닛(60)은 엔트로피 인코딩 유닛(46)과 동일한 방법으로 하나 이상의 신택스 요소들의 예측을 또한 수행할 수 있다. 예를 들어, 엔트로피 디코딩 유닛(60)은 하나 이상의 이전 블록들, 예를 들어, 상측 및 좌측 이웃 블록들로부터 현재 블록의 예측 모드 신택스 요소 및 루마/크로마 CBP 신택스 요소들을 예측할 수 있다. 엔트로피 디코딩 유닛(60)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드 및 루마/크로마 CBP들을 이웃 블록들 중 하나의 예측 모드 및 루마/크로마 CBP들인 것으로 예측할 수 있다. 인코딩된 비트스트림의 플래그가 예측 모드 및 CBP들의 예측이 성공적임을 표시하면, 엔트로피 디코딩 유닛(60)은 현재 블록의 예측 모드 및 CBP들로서 예측된 예측 모드 및 CBP들을 선택한다.
인코딩된 비트스트림의 플래그가 예측이 성공적이지 않음을 표시할 때, 엔트로피 디코딩 유닛(60)은 별개의 코드워드들로서 예측 모드, 루마 CBP 및 크로마 CBP를 수신한다. 엔트로피 디코딩 유닛(60)은 4 개의 인트라 16x16 예측 모드들 중 하나에 대응하는 2-비트 고정 길이 코드들을 가진 코딩 테이블을 사용하여 예측 모드를 디코딩할 수 있다. 예를 들어, 수평 예측 모드는 코드워드 "00"에 대응할 수 있고, 수직 예측 모드는 코드워드 "01"에 대응할 수 있으며, DC 예측 모드는 코드워드 "10"에 대응할 수 있고, 평면 예측 모드는 코드워드 "11"에 대응할 수 있다. 엔트로피 디코딩 유닛(60)은 1-비트 고정 길이 코드워드들을 가진 코딩 테이블을 사용하여 (임의의 비-제로 루마 상수들이 존재하는지 여부를 표시하는) 루마 CBP를 디코딩할 수 있다. 엔트로피 디코딩 유닛(60)은 가변 길이 코드워드들을 가진 코딩 테이블을 사용하여 (임의의 비-제로 크로마 상수들이 존재하는지 여부를 표시하는) 크로마 CBP를 디코딩할 수 있다. 예를 들어, 크로마 코딩 테이블은 모든 크로마 AC 및 DC 상수들이 제로임을 표시하기 위한 코드워드 "0", 적어도 하나의 비-제로 크로마 DC 상수가 존재하지만 비-제로 크로마 AC 상수들이 존재하지 않음을 표시하기 위한 코드워드 "10" 및 적어도 하나의 비-제로 크로마 DC 상수 및 적어도 하나의 비-제로 크로마 AC 상수가 존재함을 표시하기 위한 코드워드 "11"을 포함할 수 있다.
임의의 양상들에서, 엔트로피 인코딩 유닛(46)(도 2)은 예측 모드 및 루마/크로마 CBP들의 조합의 예측이 실패할 때 예측 모드를 예측하고 예측 모드의 예측이 성공적인지 여부를 표시하는 플래그를 인코딩하고자 할 수 있다. 엔트로피 디코딩 유닛(60)은 그러므로 또한 하나 이상의 이웃 블록들에 기반하여 예측 모드의 예측을 수행할 수 있다. 예를 들어, 엔트로피 인코딩 유닛(60)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드를 이웃 블록들 중 하나의 예측 모드인 것으로 예측할 수 있다. 플래그가 예측 모드의 예측이 성공적임을 표시하면, 엔트로피 디코딩 유닛(60)은 현재 블록의 예측 모드로서 예측된 예측 모드를 선택한다. 플래그가 예측이 성공적이지 않음을 표시하고 엔트로피 디코딩 유닛(60)이 예측 모드를 예측하도록 구성되지 않으면, 엔트로피 디코딩 유닛(60)은 예측 모드를 개별적으로 디코딩한다.
엔트로피 디코딩 유닛(60)에 의해 수행되는 인코딩된 비디오 데이터의 엔트로피 디코딩에 따라, 비디오 디코더(26)는 헤더 정보 및 잔여 정보를 사용하여 블록마다 비디오 시퀀스의 프레임들을 재구성한다. 엔트로피 디코딩 유닛(60)은 헤더 정보의 적어도 일부분을 사용하여 예측 블록을 생성한다. 예를 들어, 인터-코딩된 블록(또는 슬라이스)의 경우에, 엔트로피 디코딩 유닛(60)은 예측 블록의 생성을 위해 공간 예측 유닛(62)에 (이 블록에 대한 블록 타입 및 예측 모드와 같은) 헤더 정보의 적어도 일부분을 제공한다. 공간 예측 유닛(62)은 헤더 정보에 따라 공용 슬라이스 내에서 하나 이상의 인접 블록들(또는 인접 블록들의 부분들)을 생성한다. 공간 예측 유닛(30)은 예를 들어 예측 모드 신택스 요소에 의해 특정되는 인트라-예측 모드를 사용하여 블록 타입 신택스 요소에 의해 표시되는 파티션 크기의 예측 블록을 생성할 수 있다. 현재 슬라이스 내에서의 하나 이상의 인접 블록들(또는 인접 블록들의 부분들)은 예를 들어 프레임 스토어(68)로부터 검색될 수 있다.
인터-코딩된 블록(또는 슬라이스)의 경우에서, 엔트로피 디코딩 유닛(60)은 예측 블록의 생성을 위해 헤더 정보의 적어도 일부분을 움직임 보상 유닛(63)에 제공할 수 있다. 움직임 보상 유닛(63)은 예를 들어 엔트로피 디코딩 유닛(60)으로부터의 하나 이상의 움직임 벡터들 및 블록 타입들 및 기준 프레임 스토어(68)로부터의 하나 이상의 재구성된 기준 프레임들을 수신할 수 있고, 예측 블록, 즉, 움직임 보상 블록을 생성할 수 있다.
엔트로피 디코딩 유닛(60)은 역 양자화 유닛(64)에 잔여 정보를 예를 들어 하나 이상의 양자화된 잔여 상수들의 형태로 제공한다. 역 양자화 유닛(64)은 양자화된 잔여 상수들을 역 양자화, 즉, 디-양자화(de-quantize)한다. 역변환 유닛(66)은 잔여 정보를 생성하기 위해 디-양자화된 잔여 상수들에 역변환, 예를 들어 역 DCT 또는 역 4x4 또는 8x8 정수 변환을 적용한다. 합산기(69)는 디코딩된 블록을 형성하기 위해 역변환 유닛(66)으로부터 잔여 블록과 공간 예측 유닛(62)에 의해 생성된 예측 블록을 합산한다.
블록-기반 비디오 코딩은 코딩된 비디오 프레임의 블록 경계들에서 시각적으로 인지가능한 블록화를 때때로 초래할 수 있다. 이러한 경우들에서, 디블록(deblock) 필터링은 시각적으로 인지가능한 블록화를 감소 또는 제거하기 위해 블록 경계들을 평활화할 수 있다. 이와 같이, 디블로킹 필터(도시되지 않음)는 또한 블록화를 감소 또는 제거하기 위해 디코딩된 블록들을 필터링하기 위해 적용될 수 있다. 임의의 선택적인 디블록 필터링에 따라, 재구성된 블록들은 그 다음에 프레임 스토어(68)에 위치되고, 프레임 스토어(68)는 공간 및 시간 예측을 위한 기준 블록들을 제공하고 또한 (도 1의 장치(28)와 같은) 디스플레이 장치를 드라이브하기 위해 디코딩된 비디오를 생성한다.
도 5는 더 상세하게 비디오 디코더(26)의 엔트로피 디코딩 유닛(60)과 같은 예시적인 디코딩 유닛을 도시하는 블록도이다. 엔트로피 디코딩 유닛(60)은 잔여 정보 및 헤더 정보의 형태로 블록 데이터를 생성하기 위해 블록에 대해 인코딩된 비디오 데이터를 수신하고 비디오 데이터를 디코딩한다. 도 3의 실시예에서, 엔트로피 인코딩 유닛(46)은 디코딩 유닛(70), 코딩 테이블 선택 유닛(71) 및 신택스 요소 예측 유닛(72)을 포함한다.
코딩 테이블 선택 유닛(71) 및 신택스 요소 예측 유닛(72)은 도 3의 코딩 테이블 선택 유닛(52) 및 신택스 요소 선택 유닛(54)에 실질적으로 유사하다. 코딩 테이블 선택 유닛(71)은 상기 상세히 설명된 바와 같이 이전에 디코딩된 블록들의 블록 타입들에 기반하여 현재 블록의 블록 타입 신택스 요소의 디코딩에서 디코딩 유닛(70)에 의해 사용하기 위한 코딩 테이블을 적응적으로 선택한다. 신택스 요소 예측 유닛(72)은 적어도 하나의 이전에 디코딩된 블록에 기반하여 현재 블록의 하나 이상의 다른 신택스 요소들을 예측하고 디코딩 유닛(70)에 예측된 신택스 요소들을 제공한다. 디코딩 유닛(70)은 신택스 요소 예측 유닛(72)으로부터 예측된 신택스 요소들을 수신하고, 인코딩된 비트스트림의 플래그가 인코더에서 성공적인 예측을 표시하면, 디코딩 유닛(70)은 현재 블록의 신택스 요소들로서 예측된 신택스 요소들을 선택한다.
도 6은 본 개시물의 기술들에 따라 비디오 블록에 대한 헤더 정보를 인코딩하는 비디오 인코더(20)의 엔트로피 인코딩 유닛(46)과 같은 인코딩 유닛의 예시적인 동작을 도시하는 흐름도이다. 도 6은 블록의 블록 타입 신택스 요소의 인코딩의 맥락에서 설명된다. 하지만, 상기 설명된 바와 같이, 본 개시물의 기술들은 예측 모드, 루마 CBP, 크로마 CBP, 블록 파티션, 움직임 벡터 등과 같은 현재 비디오 블록의 다른 신택스 요소들을 코딩하기 위한 코딩 테이블을 적응적으로 선택하기 위해 추가적으로 적용될 수 있다. 엔트로피 인코딩 유닛(46)은 인코딩될 비디오 블록의 헤더 정보를 수신한다(73). 비디오 블록의 헤더 정보는 블록 타입, 예측 모드, 루마 CBP 및 크로마 CBP와 같은 블록의 특정 성질들을 식별하는 다수의 신택스 요소들을 포함할 수 있다.
엔트로피 인코딩 유닛(46)은 이전에 인코딩된 블록들의 블록 타입들에 기반하여 블록의 블록 타입의 인코딩에 사용하기 위한 코딩 테이블을 적응적으로 선택한다(74). 일 실시예에서, 엔트로피 인코딩 유닛(46)은 하나 이상의 이웃 비디오 블록들에 기반하여, 예를 들어, 상측 이웃 블록 및 좌측 이웃 블록의 블록 타입에 기반하여 현재 블록의 블록 타입의 인코딩에서 사용하기 위한 코딩 테이블을 적응적으로 선택할 수 있다. 인트라-코딩된 블록에 대하여, 엔트로피 인코딩 유닛(46)은 상측 이웃 블록 및 좌측 이웃 블록이 둘 다 인트라 16x16 블록 타입들을 갖지 않을 때 인트라 16x16 블록 타입보다 더 짧은 코드워드와 인트라 4x4 또는 8x8 블록 타입들을 연관시키는 코딩 테이블을 선택할 수 있고, 상측 및 좌측 이웃 블록들이 둘 다 인트라 16x16 블록 타입들을 가질 때 인트라 4x4 또는 8x8 블록 타입들보다 더 짧은 코드워드와 인트라 16x16 블록 타입을 연관시키는 코딩 테이블을 선택할 수 있다. 엔트로피 인코딩 유닛(46)은 선택된 코딩 테이블에 따라 블록의 블록 타입을 인코딩한다(75).
엔트로피 인코딩 유닛(46)은 하나 이상의 이전에 인코딩된 블록들로부터 현재 블록의 예측 모드, 루마 CBP 및 크로마 CBP를 예측할지 여부를 결정한다. 엔트로피 인코딩 유닛(46)이 예측 모드, 루마 CBP 및 크로마 CBP를 예측하도록 구성될 때, 엔트로피 인코딩 유닛(46)은 이러한 예측들을 생성한다(78). 예를 들어, 엔트로피 인코딩 유닛(46)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드 및 루마/크로마 CBP들을 이웃 블록들 중 하나의 예측 모드 및 루마/크로마 CBP인 것으로 예측할 수 있다.
엔트로피 인코딩 유닛(46)은 현재 블록의 예측 모드 및 루마/크로마 CBP들이 예측된 예측 모드 및 루마/크로마 CBP들과 동일한지 여부를 결정한다(80). 예측 모드 및 루마/크로마 CBP들이 예측된 바와 같으면, 엔트로피 인코딩 유닛(46)은 모드 및 CBP들의 예측이 성공적임을 표시하는 플래그를 인코딩한다(82). 엔트로피 인코딩 유닛(46)은 인코딩된 비트스트림(84)을 전송한다. 이 경우에서, 인코딩된 비트스트림은 인코딩된 블록 타입 신택스 요소 및 인코딩된 플래그를 포함한다.
예측된 예측 모드 및 루마/크로마 CBP들이 현재 블록의 예측 모드 및 루마/크로마 CBP들과 같지 않으면, 엔트로피 인코딩 유닛(46)은 예측이 성공적이지 않음을 표시하기 위해 플래그를 인코딩한다(86). 모드 및 CBP들의 예측이 성공적이지 않음을 표시하기 위해 플래그를 인코딩한 후 또는 엔트로피 인코딩 유닛(46)이 모드 및 CBP들의 예측을 수행하지 않을 때, 엔트로피 인코딩 유닛(46)은 현재 블록의 예측 모드를 예측할지 여부를 결정한다(88). 엔트로피 인코딩 유닛(46)이 예측 모드를 예측하도록 구성되지 않을 때, 엔트로피 인코딩 유닛(46)은 남아있는 헤더 신택스 요소들을 개별적으로 인코딩한다(96). 이 경우에서, 남아있는 헤더 신택스 요소들은 블록 타입, 예측 모드 및 루마 및 크로마 CBP를 포함한다. 엔트로피 인코딩 유닛(46)이 예측 모드를 예측하도록 구성될 때, 엔트로피 인코딩 유닛(46)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드를 이웃 블록들 중 하나의 예측 모드인 것으로 예측할 수 있다(90).
엔트로피 인코딩 유닛(46)은 현재 블록의 예측 모드가 예측된 예측 모드와 동일한지 여부를 결정한다(92). 현재 블록의 예측 모드가 예측된 예측 모드와 동일하면, 엔트로피 인코딩 유닛(46)은 예측 모드의 예측이 성공적임을 표시하기 위해 플래그를 인코딩한다(94). 엔트로피 인코딩 유닛(46)은 남아있는 헤더 신택스 요소들을 개별적으로 추가적으로 인코딩한다(96). 이 경우에, 남아있는 헤더 신택스 요소들은 루마 CBP 및 크로마 CBP를 포함한다.
현재 블록의 예측 모드가 예측된 예측 모드와 동일하지 않으면, 엔트로피 인코딩 유닛(46)은 예측 모드의 예측이 성공적이지 않음을 표시하기 위해 플래그를 인코딩한다(98). 엔트로피 인코딩 유닛(46)은 남아있는 헤더 신택스 요소들을 개별적으로 인코딩한다(96). 이 경우에, 남아있는 헤더 신택스 요소들은 루마 및 크로마 CBP들뿐만 아니라 예측 모드를 포함한다. 남아있는 신택스 요소들을 인코딩한 후에, 엔트로피 인코딩 유닛(46)은 인코딩된 비트스트림을 전송한다(84). 엔트로피 인코딩 유닛(46)은 예를 들어, 인코딩된 플래그에 후속되어 인코딩된 블록 타입이 생성될 때 인코딩된 블록 타입을 전송하는 것과 같이 인코딩된 데이터가 생성될 때 인코딩된 데이터를 전송할 수 있다. 대안적으로, 엔트로피 인코딩 유닛(46)은 블록에 대해 인코딩된 데이터를 저장하고 동시에 블록에 대해 인코딩된 데이터를 전송할 수 있다. 대안적으로, 엔트로피 인코딩 유닛(46)은 슬라이스에서 모든 블록에 대해 인코딩된 데이터를 저장하고 동시에 슬라이스에서 모든 블록들에 대해 인코딩된 데이터를 전송할 수 있다.
도 7은 본 개시물의 기술들에 따라 비디오 블록의 헤더 정보를 디코딩하는 수신 비디오 디코더(26)의 엔트로피 디코딩 유닛(60)과 같은 디코딩 유닛의 예시적인 동작을 도시하는 흐름도이다. 도 7은 블록의 블록 타입 신택스 요소의 디코딩의 맥락에서 설명된다. 하지만, 상기 설명된 바와 같이, 본 개시물의 기술들은 예측 모드, 루마 CBP, 크로마 CBP, 블록 파티션, 움직임 벡터 등과 같은 현재 비디오 블록의 다른 신택스 요소들의 디코딩을 위한 코딩 테이블을 적응적으로 선택하기 위해 추가적으로 적용될 수 있다. 엔트로피 디코딩 유닛(60)은 인코딩된 비디오 블록(100)을 수신한다. 엔트로피 디코딩 유닛(60)은 인코딩된 블록의 블록 타입의 디코딩에서 사용하기 위한 코딩 테이블을 적응적으로 선택한다(102). 일 양상에서, 엔트로피 디코딩 유닛(60)은 현재 슬라이스의 하나 이상의 이전에 디코딩된 블록들의 블록 타입들에 기반하여 현재 블록의 블록 타입을 디코딩하기 위한 코딩 테이블을 적응적으로 선택한다. 인트라-코딩된 블록에 대하여, 예를 들어, 엔트로피 디코딩 유닛(60)은 상측 이웃 블록 및 좌측 이웃 블록이 둘 다 인트라 16x16 블록 타입들을 가질 때 인트라 4x4 또는 8x8 블록 타입들보다 인트라 16x16 블록 타입에 더 짧은 코드워드를 연관시키는 코딩 테이블을 선택하고, 상측 이웃 블록 및 좌측 이웃 블록 중 적어도 하나가 인트라 16x16 블록 타입을 가지지 않을 때 인트라 16x16 블록 타입보다 인트라 4x4/8x8 블록 타입들에 더 짧은 코드워드를 연관시키는 코딩 테이블을 선택할 수 있다. 다른 양상들에서, 엔트로피 디코딩 유닛(60)은 예를 들어 인트라 16x16 블록 타입들을 가지는 이전에 디코딩된 블록들의 퍼센트에 기반하는 바와 같이 다른 기준에 기반하여 코딩 테이블을 선택할 수 있다. 인코더 및 디코더 동기화를 유지하기 위해, 인코더 및 디코더는 코딩 테이블들을 선택하기 위해 동일한 기준을 사용한다. 엔트로피 디코딩 유닛(60)은 선택된 코딩 테이블(104)을 사용하여 현재 블록의 블록 타입을 디코딩한다.
엔트로피 디코딩 유닛(60)은 또한 하나 이상의 이웃 블록들의 예측 모드 및 루마/크로마 CBP로부터 현재 블록에 대한 예측 모드 및 루마/크로마 CBP들을 예측할 수 있다(106). 예를 들어, 엔트로피 디코딩 유닛(60)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드 및 루마/크로마 CBP들을 이웃 블록들 중 하나의 예측 모드 및 루마/크로마 CBP들인 것으로 예측할 수 있다. 엔트로피 디코딩 유닛(60)은 인코딩된 비트스트림에서의 플래그가 예측 모드 및 CBP들의 예측이 성공했음을 표시하는지 여부를 결정할 수 있다(108). 인코딩된 비트스트림에서의 플래그가 예측 모드 및 CBP들의 예측이 성공했음을 표시하면, 예를 들어, 예측의 성공을 나타내는 플래그가 1과 같으면, 엔트로피 인코딩 유닛(60)은 현재 블록의 예측 모드 및 CBP들로서 예측된 예측 모드 및 CBP들을 선택할 수 있다(110).
예측 모드 및 루마/크로마 CBP들의 예측이 성공적이지 않을 때, 예를 들어, 예측의 성공을 나타내는 플래그가 제로와 같을 때, 엔트로피 디코딩 유닛(60)은 하나 이상의 이웃 블록들의 예측 모드로부터 블록의 예측 모드를 예측할 수 있다(112). 예를 들어, 엔트로피 디코딩 유닛(60)은 적어도 하나의 이웃 블록들이 인트라 16x16 블록 타입을 가질 때 현재 블록의 예측 모드를 이웃 블록들 중 하나의 예측 모드인 것으로 예측할 수 있다. 엔트로피 디코딩 유닛(60)은 인코딩된 비트스트림에서의 플래그가 예측 모드의 예측이 성공적임을 표시하는지 여부를 결정한다(114). 플래그는 예를 들어 예측 모드의 예측이 성공적일 때 1로 설정되고 예측 모드의 예측이 성공적이지 않을 때 0으로 설정될 수 있다. 플래그가 예측 모드의 예측이 성공적임을 표시하면, 엔트로피 디코딩 유닛(60)은 현재 블록의 예측 모드로서 예측된 예측 모드를 선택한다(116).
현재 블록의 예측 모드로서 예측된 예측 모드를 선택한 후에 또는 플래그가 예측 모드의 예측이 성공적이지 않음을 표시할 때, 엔트로피 디코딩 유닛(60)은 각 코딩 테이블들을 사용하여 남아있는 헤더 신택스 요소들을 개별적으로 디코딩한다(118). 예측 모드가 성공적으로 예측될 때, 엔트로피 디코딩 유닛(60)에 의해 디코딩된 남아있는 헤더 신택스 요소들은 루마 및 크로마 CBP들을 포함한다. 예측 모드의 예측이 성공적이지 않을 때, 엔트로피 디코딩 유닛(60)에 의해 디코딩되는 남아있는 헤더 신택스 요소들은 각 코딩 테이블들을 사용하여 예측 모드, 루마 CBP 및 크로마 CBP를 포함한다(118).
본 개시물에서 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 결합으로 구현될 수 있다. 유닛들 또는 컴포넌트들로서 설명된 임의의 성질들은 집적 논리 장치에서 함께 또는 분산형으로 분리되었지만 상호 동작가능한 논리 장치들에서 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기술들은 실행될 때 상기 설명된 하나 이상의 방법들을 수행하는 명령들을 포함하는 컴퓨터-판독가능 매체에 의하여 적어도 부분적으로 실현될 수 있다. 컴퓨터-판독가능 매체는 패키징 매터리얼들을 포함할 수 있는 컴퓨터 프로그램 물건의 부분을 형성할 수 있다. 컴퓨터-판독가능 매체는 SDRAM과 같은 RAM, ROM, NVRAM, EEPROM, 플래시 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수 있다. 이 기술들은 부가적으로 또는 대안적으로, 명령들 또는 데이터 구조들의 형태이고, 컴퓨터에 의해 액세스되고, 판독되고 그리고/또는 실행될 수 있는 코드를 캐리 또는 통신하는 컴퓨터-판독가능한 통신 매체에 의해 적어도 부분적으로 실현될 수 있다.
코드는 디지털 신호 처리기들(DSPs), 범용 마이크로프로세서들, 주문형 집적회로들(ASICs), 필드 프로그램어블 게이트 어레이들(FPGAs), 또는 다른 균등한 집적 또는 분산 논리 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수 있다. 따라서, 여기서 사용되는 용어 "프로세서"는 임의의 앞서 말한 구조 또는 여기서 설명된 기능들의 구현을 위해 적합한 임의의 다른 구조로 지칭될 수 있다. 또한 임의의 양상들에서, 여기서 설명된 기능들은 인코딩 및 디코딩을 위해 구성되는 전용 소프트웨어 유닛들 또는 하드웨어 유닛들 내에서 또는 결합된 비디오 인코더-디코더(CODEC)에 결합되어 제공될 수 있다. 유닛들로서의 상이한 성질들의 도시는 도시된 장치들의 상이한 기능적 양상들을 강조하고자 하는 것이고, 이러한 유닛들이 별개의 하드웨어 또는 소프트웨어 컴포넌트들에 의해 구현되어야만 함을 강조하고자 함은 아니다. 오히려, 하나 이상의 유닛들에 관한 기능은 공통 또는 별개의 하드웨어 또는 소프트웨어 컴포넌트들 내에서 통합될 수 있다.
본 발명의 다양한 실시예들이 설명되었다. 이들 및 다른 실시예들을 아래의 청구항들의 범위 내에 있다.

Claims (100)

  1. 비디오 데이터를 인코딩하는 방법에 있어서,
    코딩된 유닛의 하나 이상의 이전에 인코딩된 비디오 블록들의 대응하는 신택스 요소(syntax element)에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 인코딩하기 위해 사용하기 위한 코딩 테이블을 선택하는 단계; 및
    상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 인코딩하는 단계를 포함하며,
    상기 현재 비디오 블록의 신택스 요소는 상기 현재 비디오 블록의 블록 타입을 식별하고, 상기 코딩 테이블을 선택하는 단계는 상기 하나 이상의 이전에 인코딩된 비디오 블록들 각각이 제 1 블록 타입의 블록 타입들을 가질 때 상기 제 1 블록 타입을 다른 블록 타입들에 대한 코드워드들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택하는 단계를 포함하는,
    비디오 데이터 인코딩 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 코딩 테이블은 제 1 코딩 테이블을 포함하며,
    상기 방법은,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 적어도 하나가 상기 제 1 블록 타입의 블록 타입을 가지지 않을 때 상기 다른 블록 타입들 중 적어도 하나를 상기 제 1 블록 타입과 연관된 코드워드보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 선택하는 단계를 더 포함하는, 비디오 데이터 인코딩 방법.
  4. 제3항에 있어서,
    상기 제 1 블록 타입은 인트라 16x16 블록 타입이고, 상기 다른 블록 타입들은 적어도 인트라 4x4 블록 타입 및 인트라 8x8 블록 타입을 포함하는, 비디오 데이터 인코딩 방법.
  5. 제1항에 있어서,
    상기 신택스 요소는 상기 현재 비디오 블록의 제 1 헤더 신택스 요소를 포함하고,
    상기 방법은,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하는 단계; 및
    상기 적어도 하나의 예측된 헤더 신택스 요소가 상기 현재 비디오 블록의 실제 헤더 신택스 요소와 동일할 때 상기 적어도 하나의 다른 헤더 신택스 요소의 예측이 성공적이라고 표시하기 위해 플래그(flag)를 인코딩하는 단계
    를 더 포함하는, 비디오 데이터 인코딩 방법.
  6. 제5항에 있어서,
    상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하는 단계는 상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드, 루마(luma) 코딩된 블록 패턴(CBP) 및 크로마(chroma) CBP를 예측하는 단계를 포함하고; 그리고
    상기 플래그를 인코딩하는 단계는 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP가 상기 현재 비디오 블록의 실제 예측 모드, 루마 CBP 및 크로마 CBP와 동일할 때 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이라고 표시하기 위해 상기 플래그를 인코딩하는 단계를 포함하는, 비디오 데이터 인코딩 방법.
  7. 제6항에 있어서,
    상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP가 상기 현재 비디오 블록의 실제 예측 모드, 루마 CBP 및 크로마 CBP와 동일하지 않을 때 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이지 않다고 표시하기 위해 상기 플래그를 인코딩하는 단계; 및
    상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 인코딩하는 단계
    를 포함하는, 비디오 데이터 인코딩 방법.
  8. 제7항에 있어서,
    상기 플래그는 제 1 플래그이고,
    상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 인코딩하는 단계는,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드를 예측하는 단계; 및
    상기 예측된 예측 모드가 상기 현재 비디오 블록의 실제 예측 모드와 동일할 때 상기 예측 모드의 예측이 성공적이라고 표시하기 위해 제 2 플래그를 인코딩하는 단계
    를 포함하는, 비디오 데이터 인코딩 방법.
  9. 제1항에 있어서,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들은 상기 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 비디오 데이터 인코딩 방법.
  10. 제9항에 있어서,
    상기 현재 비디오 블록에 인접한 상기 하나 이상의 이전에 인코딩된 비디오 블록들은 적어도, 상기 현재 비디오 블록 바로 위에 위치된 제 1 의 이전에 인코딩된 인접 비디오 블록 및 상기 현재 비디오 블록의 바로 좌측에 위치된 제 2 의 이전에 인코딩된 인접 비디오 블록을 포함하는, 비디오 데이터 인코딩 방법.
  11. 제1항에 있어서,
    상기 인코딩된 신택스 요소를 전송하는 단계를 더 포함하는, 비디오 데이터 인코딩 방법.
  12. 제1항에 있어서,
    상기 신택스 요소는 블록 타입, 예측 모드, 코딩된 블록 패턴(CBP) 및 블록 파티션(partition) 중 하나를 포함하는, 비디오 데이터 인코딩 방법.
  13. 제1항에 있어서,
    상기 코딩된 유닛은 프레임 및 슬라이스 중 하나를 포함하는, 비디오 데이터 인코딩 방법.
  14. 인코딩 유닛을 포함하는 인코딩 장치에 있어서,
    상기 인코딩 유닛은,
    코딩된 유닛의 하나 이상의 이전에 인코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 인코딩하기 위해 사용하기 위한 코딩 테이블을 선택하는 선택 유닛; 및
    상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 상기 신택스 요소를 인코딩하는 코딩 유닛을 포함하며,
    상기 현재 비디오 블록의 신택스 요소는 상기 현재 비디오 블록의 블록 타입을 식별하고, 상기 선택 유닛은 상기 하나 이상의 이전에 인코딩된 비디오 블록들 각각이 제 1 블록 타입의 블록 타입들을 가질 때 상기 제 1 블록 타입을 다른 블록 타입들에 대한 코드워드들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택하는,
    인코딩 장치.
  15. 삭제
  16. 제14항에 있어서,
    상기 코딩 테이블은 제 1 코딩 테이블을 포함하며,
    상기 선택 유닛은 상기 하나 이상의 이전에 인코딩된 비디오 블록들이 상기 제 1 블록 타입의 블록 타입을 가지지 않을 때 상기 다른 블록 타입들 중 적어도 하나를 상기 제 1 블록 타입과 연관된 코드워드보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 추가로 선택하는, 인코딩 장치.
  17. 제16항에 있어서,
    상기 제 1 블록 타입은 인트라 16x16 블록 타입이고, 상기 다른 블록 타입들은 적어도 인트라 4x4 블록 타입 및 인트라 8x8 블록 타입을 포함하는, 인코딩 장치.
  18. 제14항에 있어서,
    상기 신택스 요소는 상기 현재 비디오 블록의 제 1 헤더 신택스 요소를 포함하고,
    상기 장치는,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하는 예측 유닛을 더 포함하고,
    상기 코딩 유닛은 상기 적어도 하나의 예측된 헤더 신택스 요소가 상기 현재 비디오 블록의 실제 헤더 신택스 요소와 동일할 때 상기 적어도 하나의 다른 헤더 신택스 요소의 예측이 성공적이라고 표시하기 위해 플래그를 인코딩하는, 인코딩 장치.
  19. 제18항에 있어서,
    상기 예측 유닛은 상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드, 루마 코딩된 블록 패턴(CBP) 및 크로마 CBP를 예측하고; 그리고
    상기 코딩 유닛은 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP가 상기 현재 비디오 블록의 실제 예측 모드, 루마 CBP 및 크로마 CBP와 동일할 때 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이라고 표시하기 위해 상기 플래그를 인코딩하는, 인코딩 장치.
  20. 제19항에 있어서,
    상기 코딩 유닛은 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP가 상기 현재 비디오 블록의 실제 예측 모드, 루마 CBP 및 크로마 CBP와 동일하지 않을 때 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이지 않다고 표시하기 위해 상기 플래그를 인코딩하고, 상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 인코딩하는, 인코딩 장치.
  21. 제20항에 있어서,
    상기 플래그는 제 1 플래그이고,
    상기 예측 유닛은 상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드를 예측하며; 그리고
    상기 코딩 유닛은 상기 예측된 예측 모드가 상기 현재 비디오 블록의 실제 예측 모드와 동일할 때 상기 예측 모드의 예측이 성공적이라고 표시하기 위해 제 2 플래그를 인코딩하는, 인코딩 장치.
  22. 제14항에 있어서,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들은 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 인코딩 장치.
  23. 제22항에 있어서,
    상기 현재 비디오 블록에 인접한 상기 하나 이상의 이전에 인코딩된 비디오 블록들은 적어도, 상기 현재 비디오 블록 바로 위에 위치된 제 1 의 이전에 인코딩된 인접 비디오 블록 및 상기 현재 비디오 블록의 바로 좌측에 위치된 제 2 의 이전에 인코딩된 인접 비디오 블록을 포함하는, 인코딩 장치.
  24. 제14항에 있어서,
    상기 인코딩된 신택스 요소를 전송하는 전송기를 더 포함하는, 인코딩 장치.
  25. 제14항에 있어서,
    상기 신택스 요소는 블록 타입, 예측 모드, 코딩된 블록 패턴(CBP) 및 블록 파티션 중 하나를 포함하는, 인코딩 장치.
  26. 제14항에 있어서,
    상기 코딩된 유닛은 프레임 및 슬라이스 중 하나를 포함하는, 인코딩 장치.
  27. 제14항에 있어서,
    상기 장치는 무선 통신 장치를 포함하는, 인코딩 장치.
  28. 제14항에 있어서,
    상기 장치는 집적 회로 장치를 포함하는, 인코딩 장치.
  29. 컴퓨터-판독가능한 매체로서,
    프로세서로 하여금, 코딩된 유닛의 하나 이상의 이전에 인코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 인코딩하기 위해 사용하기 위한 코딩 테이블을 선택하게 하고, 그리고 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 인코딩하게 하기 위한 명령들을 포함하며,
    상기 현재 비디오 블록의 신택스 요소는 상기 현재 비디오 블록의 블록 타입을 식별하고, 프로세서로 하여금 코딩 테이블을 선택하게 하기 위한 명령들은 상기 프로세서로 하여금 상기 하나 이상의 이전에 인코딩된 비디오 블록들 각각이 제 1 블록 타입의 블록 타입들을 가질 때 상기 제 1 블록 타입을 다른 블록 타입들에 대한 코드워드들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택하게 하기 위한 명령들을 포함하는,
    컴퓨터-판독가능한 매체.
  30. 삭제
  31. 제29항에 있어서,
    상기 코딩 테이블은 제 1 코딩 테이블을 포함하며,
    상기 프로세서로 하여금 상기 코딩 테이블을 선택하게 하기 위한 명령들은, 상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 적어도 하나가 상기 제 1 블록의 블록 타입을 가지지 않을 때 상기 프로세서로 하여금 상기 다른 블록 타입들 중 적어도 하나를 상기 제 1 블록 타입과 연관된 코드워드보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 선택하게 하기 위한 명령들을 더 포함하는, 컴퓨터-판독가능한 매체.
  32. 제31항에 있어서,
    상기 제 1 블록 타입은 인트라 16x16 블록 타입이고, 상기 다른 블록 타입들은 적어도 인트라 4x4 블록 타입 및 인트라 8x8 블록 타입을 포함하는, 컴퓨터-판독가능한 매체.
  33. 제29항에 있어서,
    상기 신택스 요소는 상기 현재 비디오 블록의 제 1 헤더 신택스 요소를 포함하고,
    상기 컴퓨터-판독가능한 매체는,
    상기 프로세서로 하여금,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하게 하고; 그리고
    상기 적어도 하나의 예측된 헤더 신택스 요소가 상기 현재 비디오 블록의 실제 헤더 신택스 요소와 동일할 때 상기 적어도 하나의 다른 헤더 신택스 요소의 예측이 성공적이라고 표시하기 위해 플래그를 인코딩하게 하기 위한 명령들을 더 포함하는, 컴퓨터-판독가능한 매체.
  34. 제33항에 있어서,
    상기 프로세서로 하여금 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하게 하기 위한 명령들은 상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 프로세서로 하여금 상기 현재 비디오 블록의 예측 모드, 루마 코딩된 블록 패턴(CBP) 및 크로마 CBP를 예측하게 하기 위한 명령들을 포함하고; 그리고
    상기 프로세서로 하여금 상기 플래그를 인코딩하게 하기 위한 명령들은, 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP가 상기 현재 비디오 블록의 실제 예측 모드, 루마 CBP 및 크로마 CBP와 동일할 때 상기 프로세서로 하여금 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이라고 표시하기 위해 상기 플래그를 인코딩하게 하기 위한 명령들을 포함하는, 컴퓨터-판독가능한 매체.
  35. 제34항에 있어서,
    상기 프로세서로 하여금,
    상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP가 상기 현재 비디오 블록의 실제 예측 모드, 루마 CBP 및 크로마 CBP와 동일하지 않을 때 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이지 않다고 표시하기 위해 상기 플래그를 인코딩하게 하고; 그리고
    상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 인코딩하게 하기 위한 명령들을 더 포함하는, 컴퓨터-판독가능한 매체.
  36. 제35항에 있어서,
    상기 플래그는 제 1 플래그이고,
    상기 프로세서로 하여금 상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 인코딩하게 하기 위한 명령들은, 상기 프로세서로 하여금,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드를 예측하게 하고; 그리고
    상기 예측된 예측 모드가 상기 현재 비디오 블록의 현재 예측 모드와 동일할 때 상기 예측 모드의 예측이 성공적이라고 표시하기 위해 제 2 플래그를 인코딩하게 하기 위한 명령들을 포함하는, 컴퓨터-판독가능한 매체.
  37. 제29항에 있어서,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들은 상기 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 컴퓨터-판독가능한 매체.
  38. 제37항에 있어서,
    상기 현재 비디오 블록에 인접한 상기 하나 이상의 이전에 인코딩된 비디오 블록들은 적어도, 상기 현재 비디오 블록 바로 위에 위치된 제 1 의 이전에 인코딩된 인접 비디오 블록 및 상기 현재 비디오 블록의 바로 좌측에 위치된 제 2 의 이전에 인코딩된 인접 비디오 블록을 포함하는, 컴퓨터-판독가능한 매체.
  39. 제29항에 있어서,
    상기 프로세서로 하여금 상기 인코딩된 신택스 요소를 전송하게 하기 위한 명령들을 더 포함하는, 컴퓨터-판독가능한 매체.
  40. 제29항에 있어서,
    상기 신택스 요소는 블록 타입, 예측 모드, 코딩된 블록 패턴(CBP) 및 블록 파티션 중 하나를 포함하는, 컴퓨터-판독가능한 매체.
  41. 제29항에 있어서,
    상기 코딩된 유닛은 프레임 및 슬라이스 중 하나를 포함하는, 컴퓨터-판독가능한 매체.
  42. 인코딩 장치에 있어서,
    코딩된 유닛의 하나 이상의 이전에 인코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 인코딩하기 위해 사용하기 위한 코딩 테이블을 선택하기 위한 수단; 및
    상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 인코딩하기 위한 수단을 포함하며,
    상기 현재 비디오 블록의 신택스 요소는 상기 현재 비디오 블록의 블록 타입을 식별하고, 상기 선택 수단은 상기 하나 이상의 이전에 인코딩된 비디오 블록들 각각이 제 1 블록 타입의 블록 타입들을 가질 때 상기 제 1 블록 타입을 다른 블록 타입들에 대한 코드워드들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택하는,
    인코딩 장치.
  43. 삭제
  44. 제42항에 있어서,
    상기 코딩 테이블은 제 1 코딩 테이블을 포함하며,
    상기 선택 수단은 상기 하나 이상의 이전에 인코딩된 비디오 블록들이 상기 제 1 블록 타입의 블록 타입을 가지지 않을 때 상기 다른 블록 타입들 중 적어도 하나를 상기 제 1 블록 타입과 연관된 코드워드보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 추가로 선택하는, 인코딩 장치.
  45. 제44항에 있어서,
    상기 제 1 블록 타입은 인트라 16x16 블록 타입이고, 상기 다른 블록 타입들은 적어도 인트라 4x4 블록 타입 및 인트라 8x8 블록 타입을 포함하는, 인코딩 장치.
  46. 제42항에 있어서,
    상기 신택스 요소는 상기 현재 비디오 블록의 제 1 헤더 신택스 요소를 포함하고,
    상기 장치는,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하기 위한 수단을 더 포함하고,
    상기 코딩 수단은 상기 적어도 하나의 예측된 헤더 신택스 요소가 상기 현재 비디오 블록의 실제 헤더 신택스 요소와 동일할 때 상기 적어도 하나의 다른 헤더 신택스 요소의 예측이 성공적이라고 표시하기 위해 플래그를 인코딩하는, 인코딩 장치.
  47. 제46항에 있어서,
    상기 예측 수단은 상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드, 루마 코딩된 블록 패턴(CBP) 및 크로마 CBP를 예측하고; 그리고
    상기 인코딩 수단은 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP가 상기 현재 비디오 블록의 실제 예측 모드, 루마 CBP 및 크로마 CBP와 동일할 때 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이라고 표시하기 위해 상기 플래그를 인코딩하는, 인코딩 장치.
  48. 제47항에 있어서,
    상기 인코딩 수단은 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP가 상기 현재 비디오 블록의 실제 예측 모드, 루마 CBP 및 크로마 CBP와 동일하지 않을 때 상기 예측 모드, 루마 CBP 및 크로마 CBP가 성공적이지 않다고 표시하기 위해 상기 플래그를 인코딩하고, 상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 인코딩하는, 인코딩 장치.
  49. 제48항에 있어서,
    상기 플래그는 제 1 플래그이고,
    상기 예측 수단은 상기 하나 이상의 이전에 인코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드를 예측하고; 그리고
    상기 인코딩 수단은 상기 예측된 예측 모드가 상기 현재 비디오 블록의 실제 예측 모드와 동일할 때 상기 예측 모드의 예측이 성공적이라고 표시하기 위해 제 2 플래그를 인코딩하는, 인코딩 장치.
  50. 제42항에 있어서,
    상기 하나 이상의 이전에 인코딩된 비디오 블록들은 상기 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 인코딩 장치.
  51. 제50항에 있어서,
    상기 현재 비디오 블록에 인접한 상기 하나 이상의 이전에 인코딩된 비디오 블록들은 적어도, 상기 현재 비디오 블록 바로 위에 위치된 제 1 의 이전에 인코딩된 인접 비디오 블록 및 상기 현재 비디오 블록의 바로 좌측에 위치된 제 2 의 이전에 인코딩된 인접 비디오 블록을 포함하는, 인코딩 장치.
  52. 제42항에 있어서,
    상기 인코딩된 신택스 요소를 전송하기 위한 수단을 더 포함하는, 인코딩 장치.
  53. 제42항에 있어서,
    상기 신택스 요소는 블록 타입, 예측 모드, 코딩된 블록 패턴(CBP) 및 블록 패턴 중 하나를 포함하는, 인코딩 장치.
  54. 제42항에 있어서,
    상기 코딩된 유닛은 프레임 및 슬라이스 중 하나를 포함하는, 인코딩 장치.
  55. 비디오 데이터를 디코딩하는 방법에 있어서,
    코딩된 유닛의 하나 이상의 이전에 디코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 비디오 블록의 신택스 요소를 디코딩하기 위해 사용하기 위한 코딩 테이블을 선택하는 단계; 및
    상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 디코딩하는 단계를 포함하며,
    상기 현재 비디오 블록의 신택스 요소는 상기 현재 비디오 블록의 블록 타입을 식별하고, 상기 코딩 테이블을 선택하는 단계는 상기 하나 이상의 이전에 디코딩된 비디오 블록들 각각이 제 1 블록 타입의 블록 타입들을 가질 때 상기 제 1 블록 타입을 다른 블록 타입들에 대한 코드워드들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택하는 단계를 포함하는,
    비디오 데이터 디코딩 방법.
  56. 삭제
  57. 제55항에 있어서,
    상기 코딩 테이블은 제 1 코딩 테이블을 포함하며,
    상기 코딩 테이블을 선택하는 단계는 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 적어도 하나가 상기 제 1 블록 타입의 블록 타입을 가지지 않을 때 상기 다른 블록 타입들 중 적어도 하나를 상기 제 1 블록 타입과 연관된 코드워드보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 선택하는 단계를 더 포함하는, 비디오 데이터 디코딩 방법.
  58. 제57항에 있어서,
    상기 제 1 블록 타입은 인트라 16x16 블록 타입이고, 상기 다른 블록 타입들은 적어도 인트라 4x4 블록 타입 및 인트라 8x8 블록 타입을 포함하는, 비디오 데이터 디코딩 방법.
  59. 제55항에 있어서,
    상기 신택스 요소는 상기 현재 비디오 블록의 제 1 헤더 신택스 요소를 포함하고,
    상기 방법은,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하는 단계; 및
    플래그가 상기 신택스 요소의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 신택스 요소로서 상기 적어도 하나의 예측된 신택스 요소를 선택하는 단계
    를 더 포함하는, 비디오 데이터 디코딩 방법.
  60. 제59항에 있어서,
    상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하는 단계는 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드, 루마 코딩된 블록 패턴(CBP) 및 크로마 CBP를 예측하는 단계를 포함하고; 그리고
    상기 적어도 하나의 예측된 신택스 요소를 선택하는 단계는 플래그가 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 예측 모드, 루마 CBP 및 크로마 CBP로서 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP를 선택하는 단계를 포함하는, 비디오 데이터 디코딩 방법.
  61. 제60항에 있어서,
    상기 플래그가 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이지 않다고 표시할 때 상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 디코딩하는 단계를 더 포함하는, 비디오 데이터 디코딩 방법.
  62. 제61항에 있어서,
    상기 플래그는 제 1 플래그이고,
    상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 디코딩하는 단계는,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드를 예측하는 단계; 및
    제 2 플래그가 상기 예측 모드의 예측이 성공적이라고 표시할 때 상기 예측된 예측 블록을 상기 현재 비디오 블록의 예측 모드로서 선택하는 단계
    를 포함하는, 비디오 데이터 디코딩 방법.
  63. 제55항에 있어서,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들은 상기 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 비디오 데이터 디코딩 방법.
  64. 제63항에 있어서,
    상기 현재 비디오 블록에 인접한 하나 이상의 이전에 디코딩된 비디오 블록들은 적어도, 상기 현재 비디오 블록 바로 위에 위치된 제 1 의 이전에 디코딩된 인접 비디오 블록 및 상기 현재 비디오 블록의 바로 좌측에 위치된 제 2 의 이전에 디코딩된 인접 비디오 블록을 포함하는, 비디오 데이터 디코딩 방법.
  65. 제55항에 있어서,
    상기 신택스 요소는 블록 타입, 예측 모드, 코딩된 블록 패턴(CBP) 및 블록 파티션 중 하나를 포함하고; 그리고
    상기 코딩된 유닛은 프레임 및 슬라이스 중 하나를 포함하는, 비디오 데이터 디코딩 방법.
  66. 디코딩 장치에 있어서,
    코딩된 유닛의 하나 이상의 이전에 디코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 인코딩된 비디오 블록의 신택스 요소를 디코딩하기 위해 사용하기 위한 코딩 테이블을 선택하는 선택 유닛; 및
    상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 디코딩하는 디코딩 유닛을 포함하며,
    상기 현재 비디오 블록의 신택스 요소는 상기 현재 비디오 블록의 블록 타입을 식별하고, 상기 선택 유닛은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 각각이 제 1 블록 타입의 블록 타입들을 가질 때 상기 제 1 블록 타입을 다른 블록 타입들에 대한 코드워드들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택하는,
    디코딩 장치.
  67. 삭제
  68. 제66항에 있어서,
    상기 코딩 테이블은 제 1 코딩 테이블을 포함하며,
    상기 선택 유닛은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 적어도 하나가 상기 제 1 블록 타입의 블록 타입을 가지지 않을 때 상기 다른 블록 타입들 중 적어도 하나를 상기 제 1 블록 타입과 연관된 코드워드보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 추가로 선택하는, 디코딩 장치.
  69. 제68항에 있어서,
    상기 제 1 블록 타입은 인트라 16x16 블록 타입이고, 상기 다른 블록 타입들은 적어도 인트라 4x4 블록 타입 및 인트라 8x8 블록 타입을 포함하는, 디코딩 장치.
  70. 제66항에 있어서,
    상기 신택스 요소는 상기 현재 비디오 블록의 제 1 헤더 신택스 요소를 포함하고,
    상기 장치는 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하는 예측 유닛을 더 포함하고,
    상기 디코딩 유닛은 플래그가 상기 신택스 요소의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 신택스 요소로서 상기 적어도 하나의 예측된 신택스 요소를 선택하는, 디코딩 장치.
  71. 제70항에 있어서,
    상기 예측 유닛은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드, 루마 코딩된 블록 패턴(CBP) 및 크로마 CBP를 예측하고; 그리고
    상기 디코딩 유닛은, 플래그가 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 예측 모드, 루마 CBP 및 크로마 CBP로서, 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP를 선택하는, 디코딩 장치.
  72. 제71항에 있어서,
    상기 디코딩 유닛은 상기 플래그가 상기 예측 모드, 루마 CBP 및 크로마 CBP가 성공적이지 않다고 표시할 때 상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 디코딩하는, 디코딩 장치.
  73. 제72항에 있어서,
    상기 플래그는 제 1 플래그이고,
    상기 예측 유닛은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드를 예측하고; 그리고
    상기 디코딩 유닛은 제 2 플래그가 상기 예측 모드의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 예측 모드로서 상기 예측된 예측 블록을 선택하는, 디코딩 장치.
  74. 제66항에 있어서,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들은 상기 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 디코딩 장치.
  75. 제74항에 있어서,
    상기 현재 비디오 블록에 인접한 상기 하나 이상의 이전에 디코딩된 비디오 블록들은 적어도, 상기 현재 비디오 블록 바로 위에 위치된 제 1 의 이전에 디코딩된 인접 비디오 블록 및 상기 현재 비디오 블록의 바로 좌측에 위치된 제 2 의 이전에 디코딩된 인접 비디오 블록을 포함하는, 디코딩 장치.
  76. 제66항에 있어서,
    상기 장치는 무선 통신 장치를 포함하는, 디코딩 장치.
  77. 제66항에 있어서,
    상기 장치는 집적 회로 장치를 포함하는, 디코딩 장치.
  78. 제66항에 있어서,
    상기 신택스 요소는 블록 타입, 예측 모드, 코딩된 블록 패턴(CBP) 및 블록 파티션 중 하나를 포함하고; 그리고
    상기 코딩된 유닛은 프레임 및 슬라이스 중 하나를 포함하는, 디코딩 장치.
  79. 컴퓨터-판독가능한 매체에 있어서,
    프로세서로 하여금, 코딩된 유닛의 하나 이상의 이전에 디코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 인코딩된 비디오 블록의 신택스 요소를 디코딩하기 위해 사용하기 위한 코딩 테이블을 선택하게 하고, 그리고 상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 디코딩하게 하기 위한 명령들을 포함하며,
    상기 현재 비디오 블록의 신택스 요소는 상기 현재 비디오 블록의 블록 타입을 식별하고, 상기 프로세서로 하여금 상기 코딩 테이블을 선택하게 하기 위한 명령은 상기 프로세서로 하여금 상기 하나 이상의 이전에 디코딩된 비디오 블록들 각각이 제 1 블록 타입의 블록 타입들을 가질 때 상기 제 1 블록 타입을 다른 블록 타입들에 대한 코드워드들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택하게 하기 위한 명령을 포함하는,
    컴퓨터-판독가능한 매체.
  80. 삭제
  81. 제79항에 있어서,
    상기 코딩 테이블은 제 1 코딩 테이블을 포함하며,
    상기 프로세서로 하여금 상기 코딩 테이블을 선택하게 하기 위한 명령들은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 적어도 하나가 상기 제 1 블록 타입의 블록 타입을 가지지 않을 때 상기 프로세서로 하여금 상기 다른 블록 타입들 중 적어도 하나를 상기 제 1 블록 타입과 연관된 코드워드보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 선택하게 하기 위한 명령들을 더 포함하는, 컴퓨터-판독가능한 매체.
  82. 제81항에 있어서,
    상기 제 1 블록 타입은 인트라 16x16 블록 타입이고, 상기 다른 블록 타입들은 적어도 인트라 4x4 블록 타입 및 인트라 8x8 블록 타입을 포함하는, 컴퓨터-판독가능한 매체.
  83. 제79항에 있어서,
    상기 신택스 요소는 상기 현재 비디오 블록의 제 1 헤더 신택스 요소를 포함하고,
    상기 컴퓨터-판독가능한 매체는,
    상기 프로세서로 하여금,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하게 하고; 그리고
    플래그가 상기 신택스 요소의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 신택스 요소로서 상기 적어도 하나의 예측된 신택스 요소를 선택하게 하기 위한 명령들을 더 포함하는, 컴퓨터-판독가능한 매체.
  84. 제83항에 있어서,
    상기 프로세서로 하여금 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하게 하기 위한 명령들은 상기 프로세서로 하여금 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드, 루마 코딩된 블록 패턴(CBP) 및 크로마 CBP를 예측하게 하기 위한 명령들을 포함하고; 그리고
    상기 프로세서로 하여금 상기 적어도 하나의 예측된 신택스 요소를 선택하게 하기 위한 명령들은 플래그가 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이라고 표시할 때 상기 프로세서로 하여금 상기 현재 비디오 블록의 예측 모드, 루마 CBP 및 크로마 CBP로서 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP를 선택하게 하기 위한 명령들을 포함하는, 컴퓨터-판독가능한 매체.
  85. 제84항에 있어서,
    상기 프로세서로 하여금 상기 플래그가 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이지 않다고 표시할 때 상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 디코딩하게 하기 위한 명령들을 더 포함하는, 컴퓨터-판독가능한 매체.
  86. 제85항에 있어서,
    상기 플래그는 제 1 플래그이고,
    상기 프로세서로 하여금 상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 디코딩하게 하기 위한 명령들은, 상기 프로세서로 하여금,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드를 예측하게 하고; 그리고
    제 2 플래그가 상기 예측 모드의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 예측 모드로서 상기 예측된 예측 블록을 선택하게 하기 위한 명령들을 포함하는, 컴퓨터-판독가능한 매체.
  87. 제79항에 있어서,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들은 상기 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 컴퓨터-판독가능한 매체.
  88. 제87항에 있어서,
    상기 현재 비디오 블록에 인접한 상기 하나 이상의 이전에 디코딩된 비디오 블록들은 적어도, 상기 현재 비디오 블록 바로 위에 위치된 제 1 의 이전에 디코딩된 인접 비디오 블록 및 상기 현재 비디오 블록의 바로 좌측에 위치된 제 2 의 이전에 디코딩된 인접 비디오 블록을 포함하는, 컴퓨터-판독가능한 매체.
  89. 제79항에 있어서,
    상기 신택스 요소는 블록 타입, 예측 모드, 코딩된 블록 패턴(CBP) 및 블록 파티션 중 하나를 포함하고; 그리고
    상기 코딩된 유닛은 프레임 및 슬라이스 중 하나를 포함하는, 컴퓨터-판독가능한 매체.
  90. 디코딩 장치에 있어서,
    코딩된 유닛의 하나 이상의 이전에 디코딩된 비디오 블록들의 대응하는 신택스 요소에 기반하여 상기 코딩된 유닛의 현재 인코딩된 비디오 블록의 신택스 요소를 디코딩하기 위해 사용하기 위한 코딩 테이블을 선택하기 위한 수단; 및
    상기 선택된 코딩 테이블을 사용하여 상기 현재 비디오 블록의 신택스 요소를 디코딩하기 위한 수단을 포함하며,
    상기 현재 비디오 블록의 신택스 요소는 상기 현재 비디오 블록의 블록 타입을 식별하고, 상기 선택 수단은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 각각이 제 1 블록 타입의 블록 타입들을 가질 때 상기 제 1 블록 타입을 다른 블록 타입들에 대한 코드워드들보다 더 짧은 코드워드와 연관시키는 코딩 테이블을 선택하는,
    디코딩 장치.
  91. 삭제
  92. 제90항에 있어서,
    상기 코딩 테이블은 제 1 코딩 테이블을 포함하며,
    상기 선택 수단은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 적어도 하나가 상기 제 1 블록 타입의 블록 타입을 가지지 않을 때 상기 다른 블록 타입들 중 적어도 하나를 상기 제 1 블록 타입과 연관된 코드워드보다 더 짧은 코드워드와 연관시키는 제 2 코딩 테이블을 선택하는, 디코딩 장치.
  93. 제92항에 있어서,
    상기 제 1 블록 타입은 인트라 16x16 블록 타입이고, 상기 다른 블록 타입들은 적어도 인트라 4x4 블록 타입 및 인트라 8x8 블록 타입을 포함하는, 디코딩 장치.
  94. 제90항에 있어서,
    상기 신택스 요소는 상기 현재 비디오 블록의 제 1 헤더 신택스 요소를 포함하고,
    상기 장치는,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 적어도 하나의 다른 헤더 신택스 요소를 예측하기 위한 수단
    을 더 포함하고,
    상기 디코딩 수단은 플래그가 상기 신택스 요소의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 신택스 요소로서 상기 적어도 하나의 예측된 신택스 요소를 선택하는, 디코딩 장치.
  95. 제94항에 있어서,
    상기 예측 수단은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드, 루마 코딩된 블록 패턴(CBP) 및 크로마 CBP를 예측하고; 그리고
    상기 디코딩 수단은 플래그가 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 상기 예측 모드, 루마 CBP 및 크로마 CBP로서 상기 예측된 예측 모드, 루마 CBP 및 크로마 CBP를 선택하는, 디코딩 장치.
  96. 제95항에 있어서,
    상기 디코딩 수단은 상기 플래그가 상기 예측 모드, 루마 CBP 및 크로마 CBP의 예측이 성공적이지 않다고 표시할 때 상기 예측 모드, 루마 CBP 및 크로마 CBP 각각을 개별적으로 디코딩하는, 디코딩 장치.
  97. 제96항에 있어서,
    상기 플래그는 제 1 플래그이고,
    상기 예측 수단은 상기 하나 이상의 이전에 디코딩된 비디오 블록들 중 하나에 기반하여 상기 현재 비디오 블록의 예측 모드를 예측하고; 그리고
    상기 디코딩 수단은 제 2 플래그가 상기 예측 모드의 예측이 성공적이라고 표시할 때 상기 현재 비디오 블록의 예측 모드로서 상기 예측된 예측 블록을 선택하는, 디코딩 장치.
  98. 제90항에 있어서,
    상기 하나 이상의 이전에 디코딩된 비디오 블록들은 상기 현재 비디오 블록에 인접한 비디오 블록들을 포함하는, 디코딩 장치.
  99. 제98항에 있어서,
    상기 현재 비디오 블록에 인접한 상기 하나 이상의 이전에 디코딩된 비디오 블록들은 적어도, 상기 현재 비디오 블록 바로 위에 위치된 제 1 의 이전에 디코딩된 인접 비디오 블록 및 상기 현재 비디오 블록 바로 좌측에 위치된 제 2 의 이전에 디코딩된 인접 비디오 블록을 포함하는, 디코딩 장치.
  100. 제90항에 있어서,
    상기 신택스 요소는 블록 타입, 예측 모드, 코딩된 블록 패턴(CBP) 및 블록 파티션을 포함하고; 그리고
    상기 코딩된 유닛은 프레임 및 슬라이스 중 하나를 포함하는, 디코딩 장치.
KR1020107010365A 2007-10-12 2008-10-10 비디오 블록 헤더 정보의 적응적 코딩 KR101135293B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US97973407P 2007-10-12 2007-10-12
US60/979,734 2007-10-12
US12/169,460 2008-07-08
US12/169,460 US9386316B2 (en) 2007-10-12 2008-07-08 Adaptive coding of video block header information
PCT/US2008/079636 WO2009049250A2 (en) 2007-10-12 2008-10-10 Adaptive coding of video block header information

Publications (2)

Publication Number Publication Date
KR20100067129A KR20100067129A (ko) 2010-06-18
KR101135293B1 true KR101135293B1 (ko) 2012-04-12

Family

ID=40456186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107010365A KR101135293B1 (ko) 2007-10-12 2008-10-10 비디오 블록 헤더 정보의 적응적 코딩

Country Status (10)

Country Link
US (1) US9386316B2 (ko)
EP (1) EP2225887B1 (ko)
JP (2) JP5925416B2 (ko)
KR (1) KR101135293B1 (ko)
CN (1) CN101822057B (ko)
BR (1) BRPI0818444A2 (ko)
CA (1) CA2701200C (ko)
RU (1) RU2452128C2 (ko)
TW (1) TWI429293B (ko)
WO (1) WO2009049250A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013187654A1 (ko) * 2012-06-11 2013-12-19 삼성전자 주식회사 컬러성분별로 sao 파라미터를 공유하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590059B2 (en) * 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
KR101439847B1 (ko) * 2008-01-02 2014-09-16 삼성전자주식회사 부호화 정보의 압축률 향상을 이용한 영상 부호화, 복호화방법 및 장치
JP5206070B2 (ja) * 2008-03-28 2013-06-12 富士通株式会社 復号装置および復号方法
KR101501568B1 (ko) * 2008-07-04 2015-03-12 에스케이 텔레콤주식회사 영상 부호화 및 복호화 장치 및, 방법
CN102124412B (zh) * 2008-08-18 2014-01-22 Asml荷兰有限公司 投影系统、光刻设备、将辐射束投影到目标上的方法以及器件制造方法
KR101306834B1 (ko) * 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
KR101590511B1 (ko) * 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101379185B1 (ko) * 2009-04-14 2014-03-31 에스케이 텔레콤주식회사 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101527085B1 (ko) * 2009-06-30 2015-06-10 한국전자통신연구원 인트라 부호화/복호화 방법 및 장치
KR101702553B1 (ko) * 2009-07-04 2017-02-03 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
KR101379186B1 (ko) * 2009-08-21 2014-04-10 에스케이 텔레콤주식회사 인트라 예측 부호화/복호화 방법 및 장치
KR20110068792A (ko) 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
CN105635737B (zh) * 2010-04-09 2019-03-15 Lg电子株式会社 处理视频数据的方法和装置
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
US9357229B2 (en) * 2010-07-28 2016-05-31 Qualcomm Incorporated Coding motion vectors in video coding
KR20120016991A (ko) * 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
US20120063515A1 (en) * 2010-09-09 2012-03-15 Qualcomm Incorporated Efficient Coding of Video Parameters for Weighted Motion Compensated Prediction in Video Coding
CN108737843B (zh) 2010-09-27 2022-12-27 Lg 电子株式会社 用于分割块的方法和解码设备
US9025661B2 (en) 2010-10-01 2015-05-05 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding
US9172963B2 (en) * 2010-11-01 2015-10-27 Qualcomm Incorporated Joint coding of syntax elements for video coding
US9066102B2 (en) 2010-11-17 2015-06-23 Qualcomm Incorporated Reference picture list construction for generalized P/B frames in video coding
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
CN103314588B (zh) * 2011-01-07 2016-05-11 联发科技(新加坡)私人有限公司 编码方法与装置以及解码方法与装置
EP2661880A4 (en) * 2011-01-07 2016-06-29 Mediatek Singapore Pte Ltd METHOD AND DEVICE FOR IMPROVED CODING OF INTRA-LUMA PREDICTION MODE
US20120183064A1 (en) 2011-01-14 2012-07-19 Sony Corporation Codeword assignment for intra chroma mode signaling for hevc
US9232227B2 (en) * 2011-01-14 2016-01-05 Sony Corporation Codeword space reduction for intra chroma mode signaling for HEVC
WO2012114725A1 (ja) * 2011-02-22 2012-08-30 パナソニック株式会社 画像符号化方法、画像復号化方法、画像符号化装置、画像復号化装置および画像符号化復号化装置
CN102907097B (zh) 2011-02-22 2016-01-20 太格文-Ii有限责任公司 滤波方法、动态图像编码装置、动态图像解码装置和动态图像编码解码装置
US9363509B2 (en) 2011-03-03 2016-06-07 Electronics And Telecommunications Research Institute Method for determining color difference component quantization parameter and device using the method
CN102884794B (zh) * 2011-03-07 2016-08-10 松下知识产权经营株式会社 运动补偿装置、运动图像编码装置、运动图像解码装置、运动补偿方法、以及集成电路
CN103430548B (zh) 2011-03-09 2017-10-24 松下电器(美国)知识产权公司 运动图像编码装置及运动图像编码方法
EP2685719B1 (en) 2011-03-09 2019-10-30 Panasonic Intellectual Property Corporation of America Video image decoding device
WO2012122495A1 (en) * 2011-03-10 2012-09-13 Huawei Technologies Co., Ltd. Using multiple prediction sets to encode extended unified directional intra mode numbers for robustness
JP5739714B2 (ja) * 2011-04-04 2015-06-24 日本放送協会 符号化装置、復号装置及びプログラム
US9008180B2 (en) 2011-04-21 2015-04-14 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding images using a prediction method adopting in-loop filtering
KR101668583B1 (ko) 2011-06-23 2016-10-21 가부시키가이샤 제이브이씨 켄우드 화상 인코딩 장치, 화상 인코딩 방법 및 화상 인코딩 프로그램, 및 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
JP2014523695A (ja) * 2011-06-30 2014-09-11 ヴィディオ・インコーポレーテッド スケーラブルビデオ符号化技法
RS57976B1 (sr) * 2011-07-02 2019-01-31 Samsung Electronics Co Ltd Aparat za multipleksiranje i demultipleksiranje video podataka za identifikovanje stanja reprodukcije video podataka
PH12018500196A1 (en) 2011-07-15 2018-09-24 Ge Video Compression Llc Sample array coding for low-delay
EP2736253B1 (en) 2011-07-19 2020-03-11 Tagivan Ii Llc Filtering method, moving image decoding method, moving image encoding method, moving image decoding apparatus, moving image encoding apparatus, and moving image encoding/decoding apparatus
US9699456B2 (en) * 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US9948938B2 (en) * 2011-07-21 2018-04-17 Texas Instruments Incorporated Methods and systems for chroma residual data prediction
US11496760B2 (en) 2011-07-22 2022-11-08 Qualcomm Incorporated Slice header prediction for depth maps in three-dimensional video codecs
US9521418B2 (en) * 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
US8792550B2 (en) 2011-08-04 2014-07-29 Qualcomm Incorporated Color/gray patch prevention for video coding
US9288505B2 (en) 2011-08-11 2016-03-15 Qualcomm Incorporated Three-dimensional video with asymmetric spatial resolution
US9432700B2 (en) * 2011-09-27 2016-08-30 Broadcom Corporation Adaptive loop filtering in accordance with video coding
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
US10003817B2 (en) 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
SG11201402160XA (en) * 2011-11-08 2014-08-28 Samsung Electronics Co Ltd Method and apparatus for motion vector determination in video encoding or decoding
US9485503B2 (en) 2011-11-18 2016-11-01 Qualcomm Incorporated Inside view motion prediction among texture and depth view components
US20130127987A1 (en) * 2011-11-18 2013-05-23 Qualcomm Incorporated Signaling depth ranges for three-dimensional video coding
EP3139609B1 (en) * 2012-01-03 2021-01-06 HFI Innovation Inc. Method and apparatus for block-based significance map and significance group flag context selection
CN103220506B (zh) 2012-01-19 2015-11-25 华为技术有限公司 一种编解码方法和设备
CN104093024B (zh) * 2012-01-20 2017-08-04 华为技术有限公司 编解码方法和装置
CN103220508B (zh) * 2012-01-20 2014-06-11 华为技术有限公司 编解码方法和装置
US11039138B1 (en) * 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
WO2014010955A1 (ko) * 2012-07-11 2014-01-16 한국전자통신연구원 Mpeg 데이터를 처리하는 방법 및 시스템
KR102147475B1 (ko) 2012-07-11 2020-08-26 한국전자통신연구원 Mpeg 데이터를 처리하는 방법 및 시스템
US8891888B2 (en) 2012-09-05 2014-11-18 Google Inc. Entropy coding for recompression of images
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
US9294766B2 (en) 2013-09-09 2016-03-22 Apple Inc. Chroma quantization in video coding
EP3289762A4 (en) * 2015-03-31 2018-12-19 RealNetworks, Inc. Residual transformation and inverse transformation in video coding systems and methods
BR112017025820A2 (pt) * 2015-06-23 2018-08-14 Ericsson Telefon Ab L M métodos para um codificador de video, um transcodificador de vídeo e um nó de processamento de vídeo, codificador de vídeo, transcodificador de vídeo, nó de processamento de vídeo, e, programa de computador
KR102379196B1 (ko) * 2017-05-31 2022-03-28 삼성전자주식회사 처리 장치들 및 그 제어 방법들
CN111771377A (zh) * 2018-01-30 2020-10-13 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
US11146810B2 (en) * 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
WO2020164582A1 (en) * 2019-02-14 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Video processing method and apparatus
KR20220066437A (ko) 2019-05-28 2022-05-24 돌비 레버러토리즈 라이쎈싱 코오포레이션 양자화 파라미터 시그널링
EP4026322A4 (en) * 2019-09-07 2024-01-03 Beijing Dajia Internet Information Tech Co Ltd PREDICTIVE MODE SIGNALING IN VIDEO CODING

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040240559A1 (en) 2003-05-28 2004-12-02 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
KR20060004707A (ko) * 2001-08-31 2006-01-12 마쯔시다덴기산교 가부시키가이샤 화상 복호화 방법 및 그 장치
US20060115000A1 (en) 2004-11-30 2006-06-01 Katsumi Otsuka Variable-length encoding apparatus and method
WO2007112417A2 (en) 2006-03-27 2007-10-04 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5260693A (en) * 1991-10-11 1993-11-09 Spacelabs Medical, Inc. Method and system for lossless and adaptive data compression and decompression
US5751694A (en) * 1995-05-22 1998-05-12 Sony Corporation Methods and apparatus for synchronizing temporally related data streams
GB9519923D0 (en) 1995-09-29 1995-11-29 Philips Electronics Nv Motion estimation for predictive image coding
CA2249606C (en) * 1996-04-12 2005-01-25 Imedia Corporation Video transcoder
CN1882090A (zh) * 1996-11-07 2006-12-20 松下电器产业株式会社 图像编码装置和图像解码装置
JP3208101B2 (ja) 1996-11-07 2001-09-10 松下電器産業株式会社 画像符号化方法および画像符号化装置並びに画像符号化プログラムを記録した記録媒体
JPH10276436A (ja) 1997-01-31 1998-10-13 Victor Co Of Japan Ltd 動き補償符号化復号化装置及び動き補償符号化復号化方法
JPH11122619A (ja) 1997-10-17 1999-04-30 Hitachi Ltd 動画像符号化および復号化方法
US6549671B1 (en) * 1998-02-19 2003-04-15 Matsushita Electric Industrial Co., Ltd. Picture data encoding apparatus with bit amount adjustment
JPH11317942A (ja) 1998-02-19 1999-11-16 Matsushita Electric Ind Co Ltd 画像符号化装置
KR100281464B1 (ko) * 1998-03-14 2001-02-01 전주범 물체 기반 부호화 시스템의 보조 정보 부호화 장치
US6031872A (en) * 1998-06-16 2000-02-29 Daewoo Electronics Co., Ltd. Method and apparatus for encoding a video signal
JP2000013800A (ja) 1998-06-18 2000-01-14 Victor Co Of Japan Ltd 画像伝送方法並びに符号化装置及び復号化装置
US6414608B1 (en) * 1999-06-09 2002-07-02 Matsushita Electric Industrial Co., Ltd. Variable length code decoding device, digital broadcast receiving apparatus, and DVD reproducing apparatus
JP3288677B2 (ja) 1999-06-09 2002-06-04 松下電器産業株式会社 可変長符号復号化装置、デジタル放送受信装置及びdvd再生装置
JP3873678B2 (ja) 2001-07-19 2007-01-24 日本電気株式会社 ビデオパケット伝送装置及びビデオパケット伝送方法
JP4125565B2 (ja) 2001-08-31 2008-07-30 松下電器産業株式会社 画像符号化方法、画像復号化方法及びその装置
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
BRPI0304565B1 (pt) * 2002-03-15 2018-07-24 Nokia Technologies Oy Método de predição de movimento compensado para uso na codificação da sequência de vídeo digital, codificador e decodificador de vídeo para codificar/decodificar uma sequência de vídeo digital usando predição de movimento compensado, terminal de miltimídia, e, codec de vídeo
MXPA04009543A (es) 2002-04-02 2005-01-25 Nokia Corp Codificacion de coeficientes de transformada en codificadores y/o descodificadores de imagen/video.
JP4230188B2 (ja) 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7630440B2 (en) * 2003-05-28 2009-12-08 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US7609762B2 (en) * 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US7162093B2 (en) * 2003-09-07 2007-01-09 Microsoft Corporation Slice-layer in video codec
CN1214649C (zh) * 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7469070B2 (en) * 2004-02-09 2008-12-23 Lsi Corporation Method for selection of contexts for arithmetic coding of reference picture and motion vector residual bitstream syntax elements
US20050201471A1 (en) * 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US8116374B2 (en) * 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
US7565020B2 (en) * 2004-07-03 2009-07-21 Microsoft Corp. System and method for image coding employing a hybrid directional prediction and wavelet lifting
JP4327036B2 (ja) * 2004-07-15 2009-09-09 株式会社東芝 算術符号復号化方法及びその装置
KR100612015B1 (ko) 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
CN101103630B (zh) 2004-10-05 2010-11-17 维克多曼克斯公司 授权多媒体组播的方法和系统
JP2007020002A (ja) 2005-07-08 2007-01-25 Sharp Corp 動画像符号化装置
WO2007010374A1 (en) * 2005-07-21 2007-01-25 Nokia Corporation Variable length codes for scalable video coding
BRPI0611672A2 (pt) 2005-07-22 2009-01-13 Mitsubishi Electric Corp codificador e decodificador de imagem, mÉtodo de codificaÇço de imagem, programa de codificaÇço de imagem, meio de gravaÇço legÍvel por computador, mÉtodo de decodificaÇço de imagem, programa de decodificaÇço de imagem, e, corrente de bits codificada por imagem
CN100584025C (zh) * 2005-08-04 2010-01-20 华为技术有限公司 一种基于内容自适应的算术解码系统及装置
WO2007027402A2 (en) 2005-08-31 2007-03-08 Micronas Usa, Inc. Multi-stage cabac decoding pipeline
KR100644713B1 (ko) * 2005-10-31 2006-11-10 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 코딩 복호기에서 원소구문을 복호화하는 방법 및 이를 위한 복호화 장치
WO2007063612A1 (ja) 2005-11-30 2007-06-07 Sharp Kabushiki Kaisha 動画像符号化装置、動画像復号装置
JP4553837B2 (ja) 2005-12-26 2010-09-29 三洋電機株式会社 復号装置
KR100791295B1 (ko) 2006-01-12 2008-01-04 삼성전자주식회사 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
US7983343B2 (en) 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
US8036517B2 (en) * 2006-01-25 2011-10-11 Qualcomm Incorporated Parallel decoding of intra-encoded video
US8204129B2 (en) * 2007-03-27 2012-06-19 Freescale Semiconductor, Inc. Simplified deblock filtering for reduced memory access and computational complexity
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
US9521418B2 (en) * 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060004707A (ko) * 2001-08-31 2006-01-12 마쯔시다덴기산교 가부시키가이샤 화상 복호화 방법 및 그 장치
US20040240559A1 (en) 2003-05-28 2004-12-02 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US20060115000A1 (en) 2004-11-30 2006-06-01 Katsumi Otsuka Variable-length encoding apparatus and method
WO2007112417A2 (en) 2006-03-27 2007-10-04 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013187654A1 (ko) * 2012-06-11 2013-12-19 삼성전자 주식회사 컬러성분별로 sao 파라미터를 공유하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9219918B2 (en) 2012-06-11 2015-12-22 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US9807393B2 (en) 2012-06-11 2017-10-31 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US9807392B2 (en) 2012-06-11 2017-10-31 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US9826235B2 (en) 2012-06-11 2017-11-21 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US10075718B2 (en) 2012-06-11 2018-09-11 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US10609375B2 (en) 2012-06-11 2020-03-31 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus

Also Published As

Publication number Publication date
JP2015084525A (ja) 2015-04-30
BRPI0818444A2 (pt) 2016-10-11
US9386316B2 (en) 2016-07-05
CN101822057B (zh) 2013-11-27
EP2225887A2 (en) 2010-09-08
KR20100067129A (ko) 2010-06-18
CN101822057A (zh) 2010-09-01
RU2452128C2 (ru) 2012-05-27
WO2009049250A3 (en) 2009-05-28
TWI429293B (zh) 2014-03-01
CA2701200A1 (en) 2009-04-16
TW200950529A (en) 2009-12-01
US20090175334A1 (en) 2009-07-09
JP5925416B2 (ja) 2016-05-25
CA2701200C (en) 2014-07-15
RU2010119029A (ru) 2011-11-20
JP2011501533A (ja) 2011-01-06
EP2225887B1 (en) 2014-03-19
WO2009049250A2 (en) 2009-04-16

Similar Documents

Publication Publication Date Title
KR101135293B1 (ko) 비디오 블록 헤더 정보의 적응적 코딩
US20190158882A1 (en) Device and method for video decoding video blocks
KR101148477B1 (ko) 계층화 인코딩된 비트스트림 구조
US8483285B2 (en) Video coding using transforms bigger than 4×4 and 8×8
EP2537344B1 (en) Block type signalling in video coding
RU2497303C2 (ru) Видео кодирование с использованием преобразования больше чем 4×4 и 8×8
CA2665648C (en) Variable length coding table selection based on video block type for refinement coefficient coding
KR101375891B1 (ko) 큰 매크로블록들을 이용한 비디오 코딩
KR101344115B1 (ko) 큰 매크로블록들을 이용한 비디오 코딩
KR101214148B1 (ko) 비디오 블록의 인터리빙된 서브?블록들의 엔트로피 코딩
US20110194613A1 (en) Video coding with large macroblocks
US20110317757A1 (en) Intra prediction mode signaling for finer spatial prediction directions
US20100086031A1 (en) Video coding with large macroblocks

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee