KR101518157B1 - Cabac 을 이용한 비디오 코딩을 위한 인트라-예측 모드 선택의 표시 - Google Patents

Cabac 을 이용한 비디오 코딩을 위한 인트라-예측 모드 선택의 표시 Download PDF

Info

Publication number
KR101518157B1
KR101518157B1 KR1020137020704A KR20137020704A KR101518157B1 KR 101518157 B1 KR101518157 B1 KR 101518157B1 KR 1020137020704 A KR1020137020704 A KR 1020137020704A KR 20137020704 A KR20137020704 A KR 20137020704A KR 101518157 B1 KR101518157 B1 KR 101518157B1
Authority
KR
South Korea
Prior art keywords
intra
prediction mode
index
codeword
probable
Prior art date
Application number
KR1020137020704A
Other languages
English (en)
Other versions
KR20130121932A (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 KR20130121932A publication Critical patent/KR20130121932A/ko
Application granted granted Critical
Publication of KR101518157B1 publication Critical patent/KR101518157B1/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 데이터의 블록에 대해, 비디오 인코더는 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 이용하여, 선택된 인트라-예측 모드를 변경된 인트라-예측 모드 인덱스에 맵핑되는 코드워드를 이용하여 비디오 디코더에 시그널링할 수 있다. 비디오 디코더는 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하여, 비디오 인코더에 의해 시그널링된 코드워드를 결정하고, 코드워드에 대응하는 변경된 인트라-예측 모드 인덱스를 결정하고, 가장 가능성있는 모드들을 컨텍스트에 기초하여 결정하고, 변경된 인트라-예측 모드 인덱스를 가장 가능성있는 모드들의 모드 인덱스들과 비교함으로써, 변경된 인트라-예측 모드 인덱스를 인트라-예측 모드 인덱스에 맵핑하며, 인트라-예측 모드 인덱스에 기초하여 비디오 데이터의 블록을 인코딩하는데 이용되는 선택된 인트라-예측 모드를 결정할 수 있다.

Description

CABAC 을 이용한 비디오 코딩을 위한 인트라-예측 모드 선택의 표시{INDICATING INTRA-PREDICTION MODE SELECTION FOR VIDEO CODING USING CABAC}
본 출원은 2011년 1월 6일자로 출원된 미국 가출원 제61/430,520호; 2011년 2월 24일자로 출원된 미국 가출원 제61/446,402호; 및 2011년 3월 2일자로 출원된 미국 가출원 제 61/448,623호의 이익을 주장하며, 이들 각각의 전체 내용이 본원에 참조로 포함된다.
본 개시물은 비디오 코딩에 관한 것으로, 좀더 구체적으로는, 코딩된 비디오 데이터에 대한 코딩 특성들의 시그널링에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대정보 단말기 (PDA) 들, 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 리코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 원격 화상회의 디바이스들 등을 포함한, 광범위한 디바이스들에 포함될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오 정보를 좀더 효율적으로 송수신하기 위해서, MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4, 파트 10, AVC (Advanced Video Coding) 에 의해 정의된 표준들, 및 이러한 표준들의 확장판들에 설명된 기법들과 같은, 비디오 압축 기법들을 구현한다.
비디오 압축 기법들은 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 또는 제거하기 위해 공간 예측 및/또는 시간 예측을 수행한다. 블록-기반의 비디오 코딩에 있어, 비디오 프레임 또는 슬라이스는 비디오 블록들로 파티셔닝될 수도 있다. 각각의 비디오 블록은 더욱 파티셔닝될 수도 있다. 인트라-코딩된 (I) 프레임 또는 슬라이스에서의 비디오 블록들은 이웃하는 비디오 블록들에 대한 공간 예측을 이용하여 인코딩된다. 인터-코딩된 (P 또는 B) 프레임 또는 슬라이스에서의 비디오 블록들은 동일한 프레임 또는 슬라이스에서의 이웃하는 매크로블록들 또는 코딩 유닛들에 대한 공간 예측 또는 다른 참조 프레임들에 대한 시간 예측을 이용할 수도 있다.
일반적으로, 본 개시물은 코딩된 비디오 데이터에 대한 코딩 특성들을 시그널링하는 기법들을 기술한다. 본 개시물의 기법들은 비디오 데이터의 블록을 인코딩하는데 이용되는 인트라-예측 모드의 시그널링에 대한 효율을 향상시킬 수도 있다. 본 개시물의 기법들은 코드워드들을 이용하여 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 인코딩된 비트 스트림으로 시그널링하는 것을 포함한다. 기법들은 컨텍스트 적응적 2진 산술 코딩 (CABAC) 프로세스를 이용하여 코드워드들을 코딩하는 것을 더 포함한다. 이 방법에서, 본 개시물의 기법들을 이용할 때 코딩된 비트스트림에 대한 상대적인 비트 절감들이 있을 수도 있다.
일 예에서, 비디오 데이터를 디코딩하는 방법은, 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 단계; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 단계; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하는 단계; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하는 단계; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 단계로서, 선택된 인트라-예측 모드는 변경된 인트라-예측 모드 인덱스들 중 결정된 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 단계; 및 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하는 단계를 포함한다.
일 예에서, 비디오 데이터를 디코딩하는 장치는, 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하고; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하고; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하고; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 변경된 인트라-예측 모드 인덱스들 중 결정된 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하며; 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하도록 구성된 비디오 디코더를 포함한다.
일 예에서, 비디오 데이터를 인코딩하는 방법은, 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 단계; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 단계; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하는 단계; 코드워드들의 테이블을 이용하여 인트라-예측 모드들 중 하나에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하는 단계; 및 CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 단계로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하는 단계를 포함한다.
일 예에서, 비디오 데이터를 인코딩하는 장치는, 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하고; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하고; 코드워드들의 테이블을 이용하여 인트라-예측 모드들 중 하나에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하며; CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하도록 구성된 비디오 인코더를 포함한다.
일 예에서, 비디오를 디코딩하는 장치는, 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 수단; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 수단으로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 수단; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하는 수단; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하는 수단; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 수단으로서, 선택된 인트라-예측 모드는 변경된 인트라-예측 모드 인덱스들 중 결정된 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 수단; 및 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하는 수단을 포함한다.
일 예에서, 비디오 데이터를 인코딩하는 장치는, 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 수단; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 수단으로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 수단; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하는 수단; 코드워드들의 테이블을 이용하여 인트라-예측 모드들 중 하나에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하는 수단; 및 CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 수단으로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하는 수단을 포함한다.
일 예에서, 컴퓨터-판독가능 저장 매체는 명령들을 저장하고 있으며, 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금, 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하도록 하고; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하도록 하고; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하도록 하고; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하도록 하고; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 변경된 인트라-예측 모드 인덱스들 중 결정된 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하도록 하며; 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하도록 한다.
일 예에서, 컴퓨터-판독가능 저장 매체는 명령들을 저장하고 있으며, 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금, 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하도록 하고; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하도록 하고; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하도록 하고; 코드워드들의 테이블을 이용하여 인트라-예측 모드들 중 하나에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하도록 하며; CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하도록 한다.
일 예에서, 비디오 데이터를 디코딩하는 방법은, 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 단계; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 단계; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하는 단계; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 코드워드 인덱스를 결정하는 단계; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 단계로서, 선택된 인트라-예측 모드는 변경된 코드워드 인덱스, 제 1 가장 가능성있는 인트라-예측 모드, 및 제 2 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 단계; 및 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하는 단계를 포함한다.
일 예에서, 비디오 데이터를 디코딩하는 장치는, 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하고; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하고; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 코드워드 인덱스를 결정하고; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 변경된 코드워드 인덱스, 제 1 가장 가능성있는 인트라-예측 모드, 및 제 2 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하며; 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하도록 구성된 비디오 디코더를 포함한다.
일 예에서, 비디오를 디코딩하는 장치는, 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 수단; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 수단으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 수단; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하는 수단; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 코드워드 인덱스를 결정하는 수단; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 수단으로서, 선택된 인트라-예측 모드는 변경된 코드워드 인덱스, 제 1 가장 가능성있는 인트라-예측 모드, 및 제 2 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 수단; 및 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하는 수단을 포함한다.
일 예에서, 컴퓨터-판독가능 저장 매체는 명령들을 저장하고 있으며, 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금, 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하도록 하고; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하도록 하고; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하도록 하고; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 코드워드 인덱스를 결정하도록 하고; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 변경된 코드워드 인덱스, 제 1 가장 가능성있는 인트라-예측 모드, 및 제 2 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하도록 하며; 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하도록 한다.
일 예에서, 비디오 데이터를 인코딩하는 방법은, 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 단계; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 단계; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하는 단계; 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 하나의 코드워드 인덱스, 제 1 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하는 단계; 및 CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 단계로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하는 단계를 포함한다.
일 예에서, 비디오 데이터를 인코딩하는 장치는, 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하고; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하고; 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 하나의 코드워드 인덱스, 제 1 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하며; CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하도록 구성된 비디오 인코더를 포함한다.
일 예에서, 비디오를 인코딩하는 장치는, 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 수단; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 수단으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 수단; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하는 수단; 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 하나의 코드워드 인덱스, 제 1 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하는 수단; 및 CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 수단으로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하는 수단을 포함한다.
일 예에서, 컴퓨터-판독가능 저장 매체는 명령들을 저장하고 있으며, 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금, 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하도록 하고; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하도록 하고; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하도록 하고; 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 하나의 코드워드 인덱스, 제 1 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하도록 하며; CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하도록 한다.
하나 이상의 예들의 세부 사항들이 첨부도면 및 아래의 상세한 설명에서 개시된다. 다른 특성들, 목적들, 및 이점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백히 알 수 있을 것이다.
도 1 은 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하는 기법들을 이용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 2 는 인트라-예측 모드를 나타내는 정보를 코딩하는 기법들을 구현할 수도 있는 비디오 인코더의 일 예를 도시하는 블록도이다.
도 3 은 인트라-예측 모드들 및 대응하는 모드 인덱스들의 일 예를 나타낸다.
도 4 는 인코딩된 비디오 시퀀스를 디코딩하는 비디오 디코더의 일 예를 도시하는 블록도이다.
도 5a 는 본 개시물에서 설명하는 기법들에 따라서 사용될 수도 있는 컨텍스트-기반의 적응적 2진 산술 인코딩 유닛의 일 예를 도시하는 블록도이다.
도 5b 는 본 개시물에서 설명하는 기법들에 따라서 사용될 수도 있는 컨텍스트-기반의 적응적 2진 산술 디코딩 유닛의 일 예를 도시하는 블록도이다.
도 6 은 비디오 데이터의 블록을 인트라-예측 인코딩하는 예시적인 방법을 도시하는 플로우차트이다.
도 7a 및 도 7b 는 코딩된 블록에 대한 인트라-예측 모드를 나타내는 코드워드를 선택하는 예시적인 방법들을 도시하는 플로우차트들이다.
도 8 은 비디오 데이터의 블록을 인트라-예측 디코딩하는 예시적인 방법을 도시하는 플로우차트이다.
도 9a 및 도 9b 는 코딩된 블록에 대한 인트라-예측 모드를 나타내는 수신된 코드워드를 이용하여 블록에 대한 인트라-예측 모드를 결정하는 예시적인 방법들을 도시하는 플로우차트들이다.
도 10 은 인트라-예측 모드 인덱스 테이블, 변경된 인트라-예측 모드 인덱스 테이블, 및 컨텍스트 데이터 사이의 관계들을 나타내는, 구성 데이터의 예시적인 세트를 도시하는 개념도이다.
일반적으로, 본 개시물은 코딩된 비디오 데이터에 대한 코딩 특성들을 시그널링하는 기법들을 기술하며, 좀더 구체적으로는, 본 개시물은 컨텍스트-기반의 2진 산술 코딩 (CABAC) 프로세스를 이용하여 인트라-예측 모드들을 비디오 디코더로 시그널링하는 것을 기술한다. 본 개시물의 기법들은 비디오 데이터의 블록을 인트라-인코딩하는데 이용되는 인트라-예측 모드의 시그널링에 대한 효율을 향상시킬 수도 있다. 비디오 인코더는, 예를 들어, 여러 인트라-예측 모드들을 이용하여 인코딩된 블록들에 대한 인코딩 컨텍스트들에 기초하여 인트라-예측 모드들에 대한 인덱스들을 나타내는 구성 데이터를 포함할 수도 있다. 인코딩 컨텍스트들은 예를 들어, 이웃하는 이전에 코딩된 블록들에 대한 인코딩 모드들 및/또는 블록 사이즈들을 포함할 수도 있다.
구성 데이터는 각각의 컨텍스트에 대한 가장 가능성있는 인트라-예측 모드를 정의하는데 이용될 수도 있거나, 또는 각각의 컨텍스트에 대한 2개 이상의 가장 가능성있는 인트라-예측들 모드들을 정의할 수도 있다. 이들 가장 가능성있는 인트라-예측 모드들은 본 개시물에서 때때로 가장 가능성있는 모드들로 간단히 지칭될 수도 있다. 구성 데이터는 또한 주어진 컨텍스트에서 가장 가능성있는 모드(들) 이외의 모드들에 대한 인트라-예측 모드를 기술하는 구문 데이터를 인코딩하는데 이용할 맵핑 테이블을 정의할 수도 있다. 특히, 맵핑 테이블은 코드워드들에의 인덱스들의 맵핑을 포함할 수도 있다. 이하에서 좀더 자세하게 설명하는 바와 같이, 맵핑 테이블은 변경된 인트라-예측 모드 인덱스들을 코드워드들에 맵핑할 수도 있거나, 또는 인트라-예측 모드 인덱스들을 변경된 코드워드 인덱스들로 이후에 조정되는 코드워드 인덱스들에 맵핑할 수도 있다.
따라서, 비디오 인코더는 인트라-예측 모드 인코딩되는 블록에 대한 인코딩 컨텍스트를 결정하도록 구성될 수도 있다. 인코딩 컨텍스트는 가장 가능성있는 인트라-예측 모드 뿐만 아니라, 다른 인트라-예측 모드들에 대한 우도들과 관련될 수도 있다. 가장 가능성있는 인트라-예측 모드가 현재의 블록을 인코딩하는데 이용하기 위해 선택될 때, 비디오 인코더는 블록이 발생하는 컨텍스트에 대한 가장 가능성있는 모드에서 그 블록이 인코딩되는 것을 나타내기 위해 1-비트 코드워드 (예컨대, '1') 를 선택할 수도 있다. 하나 보다 많은 가장 가능성있는 인트라-예측 모드가 이용되는 경우, 제 1 비트는, 가장 가능성있는 인트라-예측 모드들 중 하나가 현재의 블록을 인코딩하는데 이용하기 위해 선택되는지를 나타내고, 가장 가능성있는 인트라-예측 중 하나가 이용되면, 제 2 비트 (또는, 비트들의 시리즈) 는 가장 가능성있는 인트라-예측 모드들 중 어느 모드가 선택되는지를 나타낼 수도 있다. 본 개시물 전반에 걸쳐 때때로, 이 제 1 비트와 제 2 비트의 조합 자체는 코드워드로 지칭될 수도 있으며, 여기서 코드워드의 제 1 비트는 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드들 중 하나라고 시그널링하고, 제 2 비트 (또는, 비트들의 시리즈) 는 가장 가능성있는 인트라-예측 모드들 중 어느 모드가 선택되는지를 식별한다. 본 개시물의 기법들에 따르면, 선택된 모드가 가장 가능성있는 모드인지 및 그 선택된 모드가 어느 가장 가능성있는 모드인지를 나타내는 코드워드는 본 개시물에서 설명하는 바와 같은 CABAC 프로세스를 이용하여 코딩될 수 있다. 게다가, 일부의 경우, 비-가장 가능성있는 모드를 식별하는 코드워드와 함께, 가장 가능성있는 모드들을 시그널링하는데 이용되는 비트들이 함께 코드워드로서 취급되어, 본 개시물에서 설명하는 바와 같은 CABAC 프로세스를 이용하여 코딩될 수도 있다.
다른 인트라-예측 모드들 (즉, 가장 가능성있는 인트라-예측 모드(들) 이외의 인트라-예측 모드들) 각각에는 또한 인코딩 컨텍스트에 기초하여, 변경된 인덱스 값이 할당될 수도 있다. 더욱이, 인코딩 컨텍스트는 또한 인트라-예측 모드들에 대한 인덱스들에 관련된 인덱스 값들로 인덱스된 코드워드들의 세트를 갖는 테이블에 대응할 수도 있다. 특히, 위에서 설명한 바와 같이, 가장 가능성있는 인트라-예측 모드(들)에 대한 인덱스 값에는 가장 가능성있는 인트라-예측 모드가 선택되었다는 것을 나타내는 단일 비트 (또는, 가능한 한 더 긴) 코드워드 이외의 다른 코드워드가 할당될 필요가 없다. 코드워드를 각각의 나머지 인트라-예측 모드에 맵핑하기 위해, 각각의 나머지 인트라-예측 모드의 인덱스는 가장 가능성있는 모드(들)에 대해 원래 할당된 모드들을 먼저 제외하도록 변경될 수도 있다. 따라서, 변경된 인트라-예측 모드 인덱스들은 가장 가능성있는 모드에 대한 모드 인덱스보다 작은 인트라-예측 모드 인덱스들과 동일할 수도 있다. 한편, 하나의 가장 가능성있는 모드를 이용할 때, 변경된 인트라-예측 모드 인덱스들은 가장 가능성있는 모드에 대한 인덱스보다 더 큰 인트라-예측 모드 인덱스들에 대한 인트라-예측 모드 인덱스들보다 1이 더 작을 수도 있다. 이 방법에서, 인트라-예측 모드들보다 1이 더 적은 코드워드가 있을 수도 있으며, 이 코드워드들은 인코딩 컨텍스트에 기초하여 인트라-예측 모드들에 맵핑될 수도 있다. 하나 보다 많은 가장 가능성있는 인트라-예측 모드들을 이용할 때, 코드워드 테이블에 인트라-예측 모드들보다 2개 이상 더 적은 코드워드들이 있을 수도 있으며, 유사하게 이 코드워드들은 인코딩 컨텍스트에 기초하여 인트라-예측 모드들에 맵핑될 수도 있다. 코드워드는 CABAC 프로세스를 이용하여 코딩될 수 있다.
비디오 디코더는 예컨대, 인코딩된 블록에 대한 인트라-예측 모드를 결정할 때 유사한 기법들을 수행하도록 유사하게 구성될 수도 있다. 본 개시물의 기법들에 따르면, 비디오 디코더는 인코딩된 블록에 대한 데이터 뿐만 아니라, 인코딩된 블록을 디코딩하는데 이용할 인트라-예측 모드를 나타내는 코드워드를 수신할 수도 있다. 비디오 디코더는 일반적으로 비디오 인코더에 의해 수행되는 CABAC 프로세스의 역인 CABAC 프로세스를 수행함으로써 코드워드를 수신하여 디코딩할 수 있다. 비디오 디코더는 비디오 인코더와 유사한 방법으로 블록에 대한 컨텍스트를 결정할 수도 있다. 컨텍스트에 기초하여, 비디오 디코더는 블록에 대한 가장 가능성있는 인트라-예측 모드 또는 모드들을 결정할 수도 있다. 하나의 가장 가능성있는 인트라-예측 모드를 이용할 때, 단일 비트 (single bit) 가 가장 가능성있는 모드가 선택되는지를 결정하기 위해 디코딩될 수도 있다. 가장 가능성있는 모드가 선택된다는 것을 단일 비트가 나타내면, 비디오 디코더는 가장 가능성있는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않으면, 비디오 디코더는 수신된 코드워드에 맵핑된 변경된 인트라-예측 모드 인덱스를 참조할 수도 있다. 변경된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스 이상이면, 비디오 디코더는 변경된 인트라-예측 모드 인덱스보다 1이 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 변경된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면, 비디오 디코더는 변경된 인트라-예측 모드 인덱스와 동일한 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다.
이와 유사하게, 2개의 가장 가능성있는 인트라-예측 인코딩 모드들을 이용할 때, 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드들 중 하나라고 제 1 비트 또는 비트들의 시리즈가 나타내면, 비디오 디코더는 제 2 비트에 의해 식별되는 가장 가능성있는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않으면, 비디오 디코더는 수신된 코드워드에 맵핑된 변경된 인트라-예측 모드 인덱스를 참조할 수도 있다. 변경된 인트라-예측 모드 인덱스가 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면, 비디오 디코더는 변경된 인트라-예측 모드 인덱스와 동일한 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않고, 변경된 인트라-예측 모드 인덱스 + 1 이 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면, 비디오 디코더는 변경된 인트라-예측 모드 인덱스보다 1이 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않으면, 비디오 디코더는 변경된 인트라-예측 모드 인덱스보다 2가 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있으며, 기타 등등으로 디코딩할 수도 있다.
어구들 "제 1 가장 가능성있는" 및 "제 2 가장 가능성있는" 은 일반적으로 본 개시물에서 2개의 별개의 가장 가능성있는 인트라-예측 모드들을 지칭하기 위해 사용되며, 2개의 인트라-예측 모드들의 상대적인 우도를 암시하려는 것은 아니다. 그러나, 이후 예들을 통해서 설명하는 바와 같이, 일반적으로, 본 개시물에서의 설명의 목적들을 위해, 제 1 가장 가능성있는 인트라-예측 모드가 제 2 가장 가능성있는 인트라-예측 모드보다 낮은 대응하는 모드 인덱스 값을 갖는 것으로 가정될 수도 있다. 따라서, 변경된 인트라-예측 모드 인덱스 값이 제 1 가장 가능성있는 모드에 대한 모드 인덱스보다 더 작다고 하면, 변경된 인트라-예측 모드 인덱스 값은 또한 제 2 가장 가능성있는 인트라-예측 모드, 제 3 가장 가능성있는 인트라-예측 모드 등에 대한 모드 인덱스보다 더 작은 것으로 가정될 수 있다.
본 개시물의 기법들은 2개 보다 많은 가장 가능성있는 인트라-예측 모드들을 이용하는 구현예들로 확장될 수 있다. 예를 들어, N 개의 가장 가능성있는 인트라-예측 모드들이 있다고 가정하면, 제 1 비트 또는 비트들의 시리즈는 선택된 인트라-예측 모드가 N개의 가장 가능성있는 인트라-예측 모드들 중 하나인지를 나타낼 수도 있다. 선택된 인트라-예측 모드가 N개의 가장 가능성있는 인트라-예측 모드들 중 하나이면, 비트들의 제 2 시리즈는 N개의 가장 가능성있는 인트라-예측 모드들 중 어느 모드가 선택된 인트라-예측 모드인지를 식별할 수 있다. 예를 들어, 3개의 가장 가능성있는 모드들을 이용하여, 선택된 인트라-예측 모드가 가장 가능성있는 모드들 중 하나인지를 시그널링하는데 다음과 같이 2 비트들이 이용될 수도 있다: 제 1 가장 가능성있는 모드가 이용된다는 것을 나타내기 위해 "00" 을 시그널링하고; 제 2 가장 가능성있는 모드가 이용된다는 것을 나타내기 위해 "01" 를 시그널링하고; 제 3 가장 가능성있는 모드가 이용된다는 것을 나타내기 위해 "10" 를 시그널링하고; 3개의 가장 가능성있는 모드들 중 어느 것도 이용되지 않는다는 것을 나타내기 위해 "11" 을 시그널링한다. 가장 가능성있는 모드들 중 어느 것도 이용되지 않으면, 선택된 인트라-예측 모드를 시그널링하는데 추가적인 코드워드가 이용될 수 있다.
일부의 경우, 가장 가능성있는 인트라-예측 모드들이 하나 이상의 그룹들로 시그널링될 수도 있으며, 여기서 제 1 비트 또는 비트들의 시리즈는 선택된 가장 가능성있는 인트라-예측 모드가 제 1 그룹으로부터의 모드인지를 시그널링한다. 선택된 인트라-예측 모드가 제 1 그룹으로부터의 모드가 아니면, 후속 비트들이 제 2 그룹으로부터의 모드인지를 시그널링할 수 있으며, 등등이다.
예를 들어, 5개의 가장 가능성있는 모드들이 이용되면, 제 1 비트 또는 비트들의 시리즈는 선택된 인트라-예측 모드가 2개의 가장 가능성있는 인트라-예측 모드들의 제 1 그룹으로부터의 모드인지를 시그널링할 것이다. 선택된 모드가 그 2개 중 하나이면, 제 2 비트는 2개 중 어느 것이 선택된 모드인지를 식별할 것이다. 선택된 모드가 그 2개 중 하나가 아니면, 비트들의 제 2 그룹이 선택된 모드를 식별할 것이다. 예를 들어, 비트들의 제 2 그룹이 2 비트들을 포함하면, 제 1 비트 조합 (예컨대, 00) 은 선택된 모드가 제 3 가장 가능성있는 모드임을 나타낼 것이며, 제 2 비트 조합 (예컨대, 01) 은 선택된 모드가 제 4 가장 가능성있는 모드임을 나타낼 것이며, 제 3 비트 조합 (예컨대, 10) 는 선택된 모드가 제 5 가장 가능성있는 모드임을 나타낼 것이다. 선택된 모드가 5개의 가장 가능성있는 인트라-예측 모드들 중 하나이면, 디코더는 가장 가능성있는 모드를 이용하여 블록을 디코딩할 수 있다. 제 4 비트 조합 (예컨대, 11) 은 선택된 모드가 5개의 가장 가능성있는 모드들 중 하나가 아님을 나타낼 수도 있으며, 이 경우 제 4 비트 조합에 이어서, 본 개시물에서 설명하는 기법들에 따라서 그 선택된 모드를 식별하는 후속 비트들이 뒤따를 수 있다.
그 선택된 모드가 가장 가능성있는 모드가 아닌 경우, 비디오 디코더는 수신된 코드워드에 맵핑된 변경된 인트라-예측 모드 인덱스를 참조할 수도 있다. 예의 목적들을 위해, 제 1 가장 가능성있는 인트라-예측 모드가 제 2 가장 가능성있는 인트라-예측 모드보다 낮은 대응하는 모드 인덱스 값을 갖고, 제 2 가장 가능성있는 인트라-예측 모드가 제 3 가장 가능성있는 인트라-예측 모드보다 더 낮은 인덱스를 갖는 등등이 가정될 수 있다. 본 개시물의 기법들에 따르면, 변경된 인트라-예측 모드 인덱스가 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면, 비디오 디코더는 변경된 인트라-예측 모드 인덱스와 동일한 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않으면, 변경된 인트라-예측 모드 인덱스 + 1 이 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면, 비디오 디코더는 변경된 인트라-예측 모드 인덱스보다 1이 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않으면, 변경된 인트라-예측 모드 인덱스 + 2 가 제 3 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면, 비디오 디코더는 변경된 인트라-예측 모드 인덱스보다 2가 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있으며, 기타 등등으로 디코딩할 수도 있다. 아래에 더 자세히 설명하는 바와 같이, 인트라-예측 모드 인덱스가, 가장 가능성있는 모드들의 모드 인덱스에 따라서, 변경된 인트라-예측 모드 인덱스 + 1, 변경된 인트라-예측 모드 인덱스 + 2 등등에 맵핑될 수도 있기 때문에, 변경된 인트라-예측 모드 인덱스가 가장 가능성있는 모드들에 대한 엔트리들을 포함하지 않을 수도 있다.
도 1 은 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하는 기법들을 이용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록도이다. 도 1 에 나타낸 바와 같이, 시스템 (10) 은 인코딩된 비디오를 목적지 디바이스 (14) 로 통신 채널 (16) 을 통해서 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부의 경우, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신 디바이스들, 예컨대 무선 핸드셋들, 소위 셀룰러 또는 위성 무선 전화기들, 또는 비디오 정보를 통신 채널 (16) 을 통해서 통신할 수 있는 임의의 무선 디바이스들을 포함할 수도 있으며, 이 경우 통신 채널 (16) 은 무선이다.
그러나, 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터의 코딩에 관련한 본 개시물의 기법들은, 반드시 무선 애플리케이션들 또는 설정들에 한정되지는 않는다. 예를 들어, 이들 기법들은 오버-디-에어 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 인터넷 비디오 송신들, 저장 매체 상으로 인코딩되는 인코딩된 디지털 비디오, 또는 다른 시나리오들에 적용할 수도 있다. 따라서, 통신 채널 (16) 은 인코딩된 비디오 데이터의 송신에 적합한 무선 또는 유선 매체들의 임의의 조합을 포함할 수도 있다. 더욱이, 통신 채널 (16) 은 비디오 인코딩 디바이스가 데이터를 비디오 디코딩 디바이스로 송신할 수 있는 많은 방법들 중 단지 하나를 나타내는 것으로 의도된다. 예를 들어, 시스템 (10) 의 다른 구성들에서, 소스 디바이스 (12) 는 목적지 디바이스 (14) 에 의해 디코딩하기 위한 인코딩된 비디오를 발생하고, 인코딩된 비디오가 목적지 디바이스 (14) 에 의해 원하는 바에 따라서 액세스될 수도 있도록 그 인코딩된 비디오를 저장 매체 또는 파일 서버 상에 저장할 수 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 변조기/복조기 (모뎀) (22) 및 송신기 (24) 를 포함한다. 목적지 디바이스 (14) 는 수신기 (26), 모뎀 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (20) 는 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하는 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 배열들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스 (18) 로부터 비디오 데이터를 수신할 수도 있다. 이와 유사하게, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하는 대신, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
도 1 의 도시된 시스템 (10) 은 단지 일 예이다. 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하는 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로 본 개시물의 기법들이 비디오 인코딩 디바이스에 의해 수행되지만, 이 기법들은 또한 "코덱" 으로서 일반적으로 지칭되는, 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시물의 기법들은 또한 비디오 프리프로세서에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위해 코딩된 비디오 데이터를 발생하는 이러한 코딩 디바이스들의 단지 예들이다. 일부 예들에서, 디바이스들 (12, 14) 은 디바이스들 (12, 14) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적 방법으로 동작할 수도 있다. 그러므로, 시스템 (10) 은 예컨대, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 전화 통신을 위해, 비디오 디바이스들 (12, 14) 사이에 1-방향 또는 2-방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡쳐 디바이스, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 콘텐츠 제공자로부터의 비디오 피드 (video feed) 를 포함할 수도 있다. 추가 대안적인 예로서, 비디오 소스 (18) 는 컴퓨터 그래픽-기반의 데이터를 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 발생된 비디오의 조합으로서 발생할 수도 있다. 일부의 경우, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 위에서 언급한 바와 같이, 본 개시물에서 설명하는 기법들은 비디오 코딩에 일반적으로 적용가능할 수도 있으며, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우, 캡쳐되거나, 사전-캡쳐되거나, 또는 컴퓨터-발생된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그후 통신 표준에 따라서 모뎀 (22) 에 의해 변조되어, 송신기 (24) 를 통해서 목적지 디바이스 (14) 로 송신될 수도 있다. 모뎀 (22) 은 여러 믹서들, 필터들, 증폭기들 또는 신호 변조용으로 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함한, 데이터를 송신하도록 설계된 회로들을 포함할 수도 있다.
목적지 디바이스 (14) 의 수신기 (26) 는 정보를 채널 (16) 을 거쳐서 수신하고, 모뎀 (28) 은 그 정보를 복조한다. 또, 비디오 인코딩 프로세스는 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하는 본원에서 설명되는 기법들 중 하나 이상을 구현할 수도 있다. 채널 (16) 을 통해서 통신된 정보는 비디오 인코더 (20) 에 의해 정의되고 비디오 디코더 (30) 에 의해 또한 사용되는, 매크로블록들 및 다른 코딩된 유닛들, 예컨대, GOP들의 특성들 및/또는 프로세싱을 기술하는 구문 엘리먼트들을 포함하는 구문 정보를 포함할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 유형의 디스플레이 디바이스와 같은, 다양한 디스플레이 디바이스들 중 임의의 디바이스를 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (16) 은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체들의 임의의 조합을 포함할 수도 있다. 통신 채널 (16) 은 근거리 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은, 패킷-기반 네트워크의 부분을 형성할 수도 있다. 통신 채널 (16) 은 일반적으로 임의의 적합한 통신 매체, 또는 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 송신하기 위한, 유선 또는 무선 매체들의 임의의 적합한 조합을 포함하는 상이한 통신 매체들의 컬렉션을 나타낸다. 통신 채널 (16) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 대안적으로 MPEG 4, 파트 10, AVC (Advanced Video Coding) 로 지칭되는 ITU-T H.264 표준과 같은 비디오 압축 표준에 따라서 동작할 수도 있다. 그러나, 본 개시물의 기법들은, 임의의 특정의 코딩 표준에 한정되지 않는다. 다른 예들은 MPEG-2 및 ITU-T H.263 를 포함한다. 도 1 에 나타내지는 않지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있으며, 오디오 및 비디오 양자의 인코딩을 공통 데이터 스트림 또는 별개의 데이터 스트림들로 처리하기 위해 적합한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 다른 프로토콜들, 예컨대, 사용자 데이터그램 프로토콜 (UDP) 에 따를 수도 있다.
ITU-T H.264/MPEG-4 (AVC) 표준은 ISO/IEC 동화상 전문가 그룹 (MPEG) 과 함께, ITU-T 비디오 코딩 전문가 그룹 (VCEG) 에 의해 조인트 비디오 팀 (JVT) 으로서 알려진 공동 파트너쉽의 성과로서, 정식화되었다. 일부 양태들에서, 본 개시물에서 설명하는 기법들은 일반적으로 H.264 표준에 따르는 디바이스들에 적용될 수도 있다. H.264 표준은 2005 년 3월, ITU-T 스터디 그룹에 의한, ITU-T 권고안 H.264, Advanced Video Coding for generic audiovisual services 에 설명되어 있으며, 본원에서 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양으로 지칭될 수도 있다. 조인트 비디오 팀 (JVT) 은 H.264/MPEG-4 AVC 에 대한 확장판들에 대해 계속 노력을 들이고 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 주문형 집적회로 (ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (FPGA) 들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 조합들과 같은, 다양한 적합한 인코더 회로 중 임의의 회로로서 구현될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 쪽이든 각각의 카메라, 컴퓨터, 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 셋-탑 박스, 서버, 또는 기타 등등에 결합된 인코더/디코더 (코덱) 의 부분으로서 통합될 수도 있다.
비디오 시퀀스는 일반적으로 비디오 프레임들의 시리즈를 포함한다. 화상들의 그룹 (GOP) 은 일반적으로 하나 이상의 비디오 프레임들의 시리즈를 포함한다. GOP 는 GOP 에 포함된 다수의 프레임들을 기술하는 구문 데이터를 GOP 의 헤더, GOP 의 하나 이상의 프레임들의 헤더, 또는 다른 장소에, 포함할 수도 있다. 각각의 프레임은 각각의 프레임에 대한 인코딩 모드를 기술하는 프레임 구문 데이터를 포함할 수도 있다. 비디오 인코더 (20) 는 일반적으로 비디오 데이터를 인코딩하기 위해 개개의 비디오 프레임들 내 비디오 블록들에 대해 동작한다. 비디오 블록은 매크로블록 또는 매크로블록의 파티션에 대응할 수도 있다. 비디오 블록들은 고정 또는 가변 사이즈들을 가질 수도 있으며, 특정된 코딩 표준에 따라서 사이즈가 상이할 수도 있다. 각각의 비디오 프레임은 복수의 슬라이스들을 포함할 수도 있다. 각각의 슬라이스는 복수의 매크로블록들을 포함할 수도 있으며, 이 매크로블록들은 서브-블록들로도 지칭되는 파티션들로 배열될 수도 있다.
일 예로서, ITU-T H.264 표준은, 루마 성분들에 대해 16 × 16, 8 × 8, 또는 4 × 4, 그리고 크로마 성분들에 대해 8 × 8 과 같은 여러 블록 사이즈들에서 인트라 예측 뿐만 아니라, 루마 성분들에 대해 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8 및 4 × 4, 그리고 크로마 성분들에 대해 대응하는 스케일링된 사이즈들과 같은 여러 블록 사이즈들에서 인터 예측을 지원한다. 본 개시물에서, "N × N" 및 "N 곱하기 N" 은 수직 및 수평 치수들로 환산한 블록의 픽셀 치수들, 예컨대, 16 × 16 픽셀들 또는 16 곱하기 16 픽셀들을 지칭하기 위해 상호교환가능하게 사용될 수도 있다. 일반적으로, 16 × 16 블록은 수직 방향으로 16개의 픽셀들 (y = 16) 및 수평 방향으로 16개의 픽셀들 (x = 16) 을 가질 것이다. 이와 유사하게, N × N 블록은 일반적으로 수직 방향으로 N 개의 픽셀들 및 수평 방향으로 N 개의 픽셀들을 가지며, 여기서 N 은 음이 아닌 정수 값을 나타낸다. 블록에서 픽셀들은 로우들 및 칼럼들로 배열될 수도 있다. 더욱이, 블록들은 수직 방향에서와 같이 수평 방향에서 동일한 개수의 픽셀들을 반드시 가질 필요는 없다. 예를 들어, 블록들은 N × M 픽셀들을 포함할 수도 있으며, 여기서 M 은 반드시 N 과 동일할 필요가 없다. 16 × 16 보다 작은 블록 사이즈들은 ITU-T H.264 에서 16 × 16 매크로블록의 파티션들로서 지칭될 수도 있다.
비디오 블록들은 예컨대, 코딩된 비디오 블록들과 예측 비디오 블록들 사이의 픽셀 차이들을 나타내는 잔여 비디오 블록 데이터로의, 이산 코사인 변환 (DCT), 정수 변환, 웨이블릿 변환, 또는 개념적으로 유사한 변환과 같은 변환의 적용 이후에, 픽셀 도메인에서의 픽셀 데이터의 블록들, 또는 그 변환 도메인에서의 변환 계수들의 블록들을 포함할 수도 있다. 일부의 경우, 비디오 블록은 변환 도메인에서 양자화된 변환 계수들의 블록들을 포함할 수도 있다.
더 작은 비디오 블록들은 더 나은 해상도를 제공할 수 있으며, 높은 상세 레벨들을 포함하는 비디오 프레임의 로케이션들에 사용될 수도 있다. 일반적으로, 서브-블록들로 종종 지칭되는 매크로블록들 및 여러 파티션들은 비디오 블록들로 간주될 수도 있다. 게다가, 슬라이스는 매크로블록들 및/또는 서브-블록들과 같은 복수의 비디오 블록들로 간주될 수도 있다. 각각의 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수도 있다. 이의 대안으로, 프레임들 자체가 디코딩가능한 유닛들일 수도 있고, 또는 프레임의 다른 부분들이 디코딩가능한 유닛들로서 정의될 수도 있다. 용어 “코딩된 유닛" 은 전체 프레임, 프레임의 슬라이스, 시퀀스로도 지칭되는 화상들의 그룹 (GOP) 과 같은 비디오 프레임의 임의의 독립적으로 디코딩가능한 유닛, 또는 적용가능한 코딩 기법들에 따라서 정의된 다른 독립적으로 디코딩가능한 유닛을 지칭할 수도 있다.
HEVC (High Efficiency Video Coding) 로 현재 지칭되는 새로운 비디오 코딩 표준을 개발하려는 노력들이 현재 계속되고 있다. 차기 HEVC 표준은 또한 H.265 로 지칭될 수도 있다. 이 표준화 노력들은 HEVC 테스트 모델 (HM) 로 지칭되는 비디오 코딩 디바이스의 모델에 기초한다. HM 은 예컨대, ITU-T H.264/AVC 에 따른 디바이스들을 넘어서는 비디오 코딩 디바이스들의 여러 능력들을 추정한다. 예를 들어, H.264 는 9개의 인트라-예측 모드들을 제공하는 반면, HM 은 예컨대, 인트라-예측 코딩되는 블록의 사이즈에 기초하여, 33개 만큼이나 많은 인트라-예측 모드들을 제공한다.
HM 은 비디오 데이터의 블록을 코딩 유닛 (CU) 으로 지칭한다. 비트스트림 내 구문 데이터는 가장 큰 코딩 유닛 (LCU) 을 정의할 수도 있으며, 이 가장 큰 코딩 유닛은 픽셀들의 개수의 관점에서 가장 큰 코딩 유닛이다. 일반적으로, CU 가 사이즈 구별을 갖지 않는다는 점을 제외하고는, CU 는 H.264 의 매크로블록과 유사한 목적을 갖는다. 따라서, CU 는 서브-CU들로 분할될 수도 있다. 일반적으로, 본 개시물에서 CU 에 대한 언급들은 화상의 가장 큰 코딩 유닛 또는 LCU 의 서브-CU 를 지칭할 수도 있다. LCU 는 서브-CU들로 분할될 수도 있으며, 각각의 서브-CU 는 서브-CU들로 분할될 수도 있다. 비트스트림에 대한 구문 데이터는 CU 깊이로 지칭되는, LCU 가 분할될 수도 있는 최대 횟수를 정의할 수도 있다. 따라서, 비트스트림은 또한 가장 작은 코딩 유닛 (SCU) 을 정의할 수도 있다. 본 개시물은 또한 CU, 예측 유닛 (PU), 또는 변환 유닛 (TU) 중 임의의 유닛을 지칭하기 위해 용어 "블록" 을 사용한다.
LCU 는 쿼드트리 데이터 구조와 연관될 수도 있다. 일반적으로, 쿼드트리 데이터 구조는 CU 당 하나의 노드를 포함하며, 여기서, 루트 노드는 LCU 에 대응한다. CU 가 4개 서브-CU들로 분할되면, CU 에 대응하는 노드는 4개 잎 노드들을 포함하며, 각각의 잎 노드는 서브-CU들 중 하나에 대응한다. 쿼드트리 데이터 구조의 각각의 노드는 대응하는 CU에 대해 구문 데이터를 제공할 수도 있다. 예를 들어, 쿼드트리에서 노드는 그 노드에 대응하는 CU 가 서브-CU들로 분할될지 여부를 나타내는 분할 플래그를 포함할 수도 있다. CU 에 대한 구문 엘리먼트들은 회귀적으로 정의될 수도 있으며, CU 가 서브-CU들로 분할되는지 여부에 의존할 수도 있다.
분할되지 않는 CU 는 하나 이상의 예측 유닛 (PU) 들을 포함할 수도 있다. 일반적으로, PU 는 대응하는 CU 의 모두 또는 부분을 나타내며, PU 에 대한 참조 샘플을 취출하기 위한 데이터를 포함한다. 예를 들어, PU 가 인트라-예측 모드 인코딩될 때, PU 는 PU 에 대한 인트라-예측 모드를 기술하는 데이터를 포함할 수도 있다. 다른 예로서, PU 가 인터-모드 인코딩될 때, PU 는 PU 에 대한 모션 벡터를 정의하는 데이터를 포함할 수도 있다. 모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터에 대한 해상도 (예컨대, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 가리키는 참조 프레임, 및/또는 모션 벡터에 대한 참조 리스트 (예컨대, 리스트 0 또는 리스트 1) 를 기술할 수도 있다. PU(들)를 정의하는 CU 에 대한 데이터는 또한 예를 들어, 하나 이상의 PU들로의 CU 의 파티셔닝을 기술할 수도 있다. 모드들을 파티셔닝하는 것은 CU 가 코딩되지 않거나, 인트라-예측 모드 인코딩되거나, 또는 인터-예측 모드 인코딩되는지 여부에 따라 상이할 수도 있다.
하나 이상의 PU들을 갖는 CU 는 또한 하나 이상의 변환 유닛 (TU) 들을 포함할 수도 있다. PU 를 이용한 예측 이후, 비디오 인코더는 PU 에 대응하는 CU 의 부분에 대한 잔여 값을 계산할 수도 있다. 잔여 값들의 세트는 변환 계수들의 세트를 정의하기 위해 변환되고, 스캐닝되고, 그리고 양자화될 수도 있다. TU 는 변환 계수들을 포함하는 데이터 구조를 정의한다. TU 는 PU 의 사이즈에 반드시 한정될 필요는 없다. 따라서, TU들은 동일한 CU 에 대한 대응하는 PU들보다 더 크거나 또는 더 작을 수도 있다. 일부 예들에서, TU 의 최대 사이즈는 대응하는 CU 의 사이즈에 대응할 수도 있다.
본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 비디오 데이터의 소정의 블록들을 인트라-예측 모드 인코딩을 이용하여 인코딩하고, 그 블록을 인코딩하는데 이용되는 선택된 인트라-예측 모드를 나타내는 정보를 제공할 수도 있다. 비디오 인코더 (20) 는 P-프레임들 또는 P-슬라이스들 및 B-프레임들 또는 B-슬라이스들에 더해서, 인트라-예측 모드를 이용하는 임의의 종류의 프레임 또는 슬라이스의 블록들, 예컨대, I-프레임들 또는 I-슬라이스들을 인트라-예측 인코딩할 수도 있다. 블록이 인트라-예측 모드 인코딩되어야 한다고 비디오 인코더 (20) 가 결정할 때, 비디오 인코더 (20) 는 가장 적합한 인트라-예측 모드를 선택하기 위해 레이트-왜곡 분석을 수행할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 하나 이상의 인트라-예측 모드들에 대한 레이트-왜곡 값들을 계산하고, 허용가능한 레이트-왜곡 특성들을 갖는 모드들 중 하나를 선택할 수도 있다.
비디오 인코더 (20) 는 또한 블록에 대한 인코딩 컨텍스트를 결정하도록 구성될 수도 있다. 컨텍스트는 픽셀 치수들, 2N × 2N, N × 2N, 2N × N, N × N 과 같은 HEVC 의 예에서의 예측 유닛 (PU) 유형, 2N × N/2, N/2 × 2N, 2N × 1, 1 × 2N 과 같은 짧은-거리 인트라 예측 (SDIP) 유형들, H.264 의 예에서의 매크로블록 유형, 블록에 대한 코딩 유닛 (CU) 깊이, 또는 비디오 데이터의 블록에 대한 사이즈의 다른 측정치들로 환산하여 결정될 수도 있는, 예를 들어, 블록의 사이즈와 같은 블록의 여러 특성들을 포함할 수도 있다. 일부 예들에서, 컨텍스트는 어떤 방법으로 상부-이웃하는 블록, 좌측-이웃하는 블록, 상부-좌측 이웃하는 블록, 상부-우측 이웃하는 블록, 또는 다른 이웃하는 블록들에 대한 인트라-예측 모드들 중 임의의 모드 또는 모두에 대응할 수도 있다. 일부 예들에서, 컨텍스트는 인코딩되는 현재의 블록에 대한 사이즈 정보 뿐만 아니라 하나 이상의 블록들에 대한 인트라-예측 모드들 양자를 포함할 수도 있다.
어쨌든, 비디오 인코더 (20) 는 블록에 대한 컨텍스트를 현재의 블록에 대한 여러 코딩 특성들에 맵핑하는 구성 데이터를 포함할 수도 있다. 예를 들어, 블록에 대한 컨텍스트에 기초하여, 구성 데이터는 하나 이상의 가장 가능성있는 인트라-예측 모드들, 인트라-예측 모드 인덱스 테이블, 및 맵핑 테이블을 나타낼 수도 있다. 즉, 구성 데이터는 복수의 인트라-예측 모드 인덱스 테이블들 및 맵핑 테이블들 뿐만 아니라, 복수의 인트라-예측 모드 인덱스 테이블들 중 하나, 및 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 현재의 블록에 대한 인트라-예측 모드의 표시를 인코딩하는데 이용할 맵핑 테이블들 중 하나의 표시를 포함할 수도 있다. 구성 데이터는 인코딩 컨텍스트에 기초하여 현재의 블록에 대한 하나 이상의 가장 가능성있는 모드의 표시를 추가로 제공할 수도 있다. 이용되는 가장 가능성있는 인트라-예측 모드들의 개수는, 하나의 가장 가능성있는 인트라-예측 모드가 항상 이용되고 2개의 가장 가능성있는 인트라-예측 모드들이 항상 이용되고 3개의 가장 가능성있는 인트라-예측 모드들이 항상 이용되는 등으로 이용되도록 고정될 수도 있거나, 또는 대안적으로, 가장 가능성있는 인트라-예측 모드들의 개수는, 일부 컨텍스트들이 하나의 가장 가능성있는 인트라-예측 모드를 이용하는 반면 다른 컨텍스트들이 2개 이상의 가장 가능성있는 인트라-예측 모드들을 이용하도록 컨텍스트 의존적일 수도 있다.
모드 인덱스 테이블은 인트라-예측 모드들의 세트 뿐만 아니라, 인트라-예측 모드들의 각각에 맵핑된 인덱스들을 포함할 수도 있다. 일부 예들에서, 이용가능한 인트라-예측 모드들의 개수는 인코딩되는 블록의 사이즈에 의존할 수도 있으며, 따라서, 복수의 인트라-예측 모드 인덱스 테이블들 및 맵핑 테이블들은 예컨대, 인코딩되는 블록의 사이즈 및/또는 다른 인자들에 따라서 상이한 개수들의 엔트리들을 가질 수도 있다. 구성 데이터에서 맵핑 테이블들과 인트라-예측 모드 인덱스 테이블들 사이에는 일-대-다 관계가 있을 수도 있다. 즉, 하나 이상의 인트라-예측 모드 인덱스 테이블들로부터 선택된 인트라-예측 모드들을 인코딩하는데 동일한 맵핑 테이블이 이용될 수도 있다. 이 방법에서, 맵핑 테이블들이 다수의 인트라-예측 모드 인덱스 테이블들에 재이용될 수도 있다. 이와 유사하게, 예컨대, 2개 이상 컨텍스트들이 인트라-예측 모드들의 동일한 세트 및 그들 컨텍스트들에서 이용되는 인트라-예측 모드들의 유사한 또는 동일한 상대적인 우도들을 공유할 경우에, 동일한 인트라-예측 모드 인덱스 테이블들이 다양한 컨텍스트들에서 재이용될 수도 있다. 더욱이, 일부의 경우, 동일한 인트라-예측 모드 인덱스 테이블 및 맵핑 테이블이 특정의 사이즈의 모든 블록들에 이용될 수도 있으며, 가장 가능성있는 인트라-예측 모드는 예컨대, 특정의 사이즈의 블록에 이웃하는 블록들에 대한 인트라-예측 모드들에 기초하여 결정될 수도 있다.
어쨌든, 본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 블록에 대한 인코딩 컨텍스트에 기초하여, 블록에 대한 하나 이상의 가장 가능성있는 모드들 뿐만 아니라, 블록에 대한 인코딩 컨텍스트에 기초하여, 인트라-예측 모드 인덱스 테이블 및 맵핑 테이블을 결정할 수도 있다. 블록을 인코딩하는데 이용할 인트라-예측 모드를 선택한 후, 비디오 인코더 (20) 는 선택된 인트라-예측 모드가 블록에 대한 가장 가능성있는 인트라-예측 모드(들) 중 하나인지 여부를 결정할 수도 있다. 선택된 모드가 가장 가능성있는 모드(들) 중 하나이면, 비디오 인코더 (20) 는 단일 비트 코드워드 (예컨대, '0' 또는 '1') 또는 비트들의 시리즈로 이루어지는 코드워드를 이용하여 인트라-예측 모드를 시그널링할 수도 있다.
더욱이, 가장 가능성있는 인트라-예측 모드는 블록의 인코딩 컨텍스트에 기초하여 그 블록에 대해 선택된 인트라-예측 모드 인덱스 테이블에서 인덱스 값을 가질 수도 있다. 특히, 인트라-예측 모드 인덱스 테이블은 테이블에 각각의 인트라-예측 모드에 대한 고유한 인덱스 값을 포함할 수도 있다. m 이 가장 가능성있는 인트라-예측 모드에 대한 인덱스의 값을 나타낸다고 하자. 가장 가능성있는 인트라-예측 모드에 대한 코드워드가 별개로 시그널링될 수도 있기 때문에, 맵핑 테이블은 가장 가능성있는 인트라-예측 모드에 대한 추가적인 코드워드를 포함할 필요가 없다. 따라서, 가용 인트라-예측 모드들의 세트가 0 내지 K 에 걸친 인덱스들의 범위에 맵핑되는 K+1 개의 멤버들을 갖는다면, 맵핑 테이블은 K개의 코드워드들을 인덱스들 0 내지 K-1 에 할당할 수도 있다.
이 예시적인 방식에 따라서 코드워드를 결정하기 위해, 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드가 아니고, j 의 모드 인덱스 값을 갖는다고 가정한다. 값 n 이 j 에 대응하는 변경된 인트라-예측 모드의 인덱스를 나타낸다고 하자. 이전 설명에 따르면, 선택된 인트라 예측 모드 j 를 나타내기 위해, 인덱스 n 에 맵핑된 코드워드가 인코더로부터 디코더로 시그널링된다. 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 작으면, 비디오 인코더 (20) 는 j 에 대응하는 코드워드를 이용하여 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 즉, j < m 이면, n = j 이다. 한편, 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값 이상이면, 비디오 인코더 (20) 는 j-1 에 대응하는 코드워드를 이용하여 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 즉, j ≥ m 이면, n = j-1 이다.
하나 보다 많은 가장 가능성있는 인트라-예측 모드가 선택되는 경우, 비디오 인코더 (20) 는 제 1 비트 (예컨대, '0' 또는 '1') 또는 비트들의 시리즈를 이용하여 선택된 모드가 결정된 가장 가능성있는 인트라-예측 모드들 중 하나인지를 인코딩된 비트 스트림으로 시그널링할 수도 있다. 선택된 모드가 결정된 가장 가능성있는 인트라-예측 모드들 중 하나이면, 비디오 인코더 (20) 는 가장 가능성있는 인트라-예측 모드들 중 어느 모드가 선택된 모드인지를 제 2 비트를 이용하여 시그널링할 수도 있다. 선택된 모드가 결정된 가장 가능성있는 인트라-예측 모드들 중 하나가 아니면, 비디오 인코더 (20) 는 다른 인트라-예측 모드들 중 어느 모드가 선택된 모드인지를 맵핑 테이블로부터의 코드워드를 이용하여 시그널링할 수도 있다. 또한, 선택된 모드가 가장 가능성있는 인트라-예측 모드들 중 하나임을 나타내는 '0' 의 값을 제 1 비트가 갖고, 비디오 인코더 (20) 가 2개의 가장 가능성있는 인트라-예측 모드들을 결정한다고 보편성의 상실 없이 가정하면, 비디오 인코더 (20) 는 2개의 가장 가능성있는 인트라-예측 모드들 중 어느 모드가 "00" 또는 "01" 의 값을 가진 선택된 모드인지를 시그널링할 수 있으며, 여기서 처음 0 은 제 1 비트를 나타낸다. 선택된 모드가 가장 가능성있는 인트라-예측 모드들 중 하나가 아니면, 비디오 인코더 (20) 는 "1" 의 제 1 비트에 뒤이어서 코드워드를 시그널링함으로써 그 선택된 모드를 시그널링할 수 있다.
더욱이, 2개의 가장 가능성있는 인트라-예측 모드들은 블록의 인코딩 컨텍스트에 기초하여 블록에 대해 선택된 인트라-예측 모드 인덱스 테이블에 인덱스 값들을 가질 수도 있다. 특히, 인트라-예측 모드 인덱스 테이블은 테이블에서 각각의 인트라-예측 모드에 대한 고유한 인덱스 값을 포함할 수도 있다. m1 이 제 1 가장 가능성있는 인트라-예측 모드에 대한 인덱스의 값을 나타내고 m2 가 제 2 가장 가능성있는 인트라-예측 모드에 대한 인덱스의 값을 나타낸다고 하자. 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드에 대한 코드워드가 위에서 설명한 바와 같은 제 1 비트 및 제 2 비트를 이용하여 시그널링될 수도 있기 때문에, 맵핑 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드에 대한 추가적인 코드워드들을 포함할 필요가 없다. 따라서, 가용 인트라-예측 모드들의 세트가 0 내지 K 에 걸친 인덱스들의 범위에 맵핑되는 K+1 개의 멤버들을 가지면, 맵핑 테이블은 K-1 개의 코드워드들을 인덱스들 0 내지 K-2 에 할당할 수도 있다.
2개의 가장 가능성있는 모드들이 식별되는 이 예 방식에 따라서 코드워드를 결정하기 위해, 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드들 중 하나가 아니고 j 의 모드 인덱스 값을 갖는다고 가정한다. 값 n 은 j 에 대응하는 변경된 인트라-예측 모드를 나타낸다고 하자. 상기 설명에 따르면, 인덱스 n 에 맵핑되는 코드워드는 선택된 인트라 예측 모드 j 를 나타내기 위해 인코더로부터 디코더로 시그널링된다. 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 제 1 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 작으면, 비디오 인코더 (20) 는 j 에 대응하는 코드워드를 이용하여 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 즉, j < m1 이면, n = j 이다. 한편, 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 제 1 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값 이상이지만, 제 2 가장 가능성있는 인트라-예측 모드보다 작으면, 비디오 인코더 (20) 는 j-1 에 대응하는 코드워드를 이용하여 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 즉, j ≥ m1 및 j < m2 이면, n= j - 1 이다. 마지막으로, 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 크면, 비디오 인코더 (20) 는 j-2 에 대응하는 코드워드를 이용하여 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 즉, j ≥ m1 및 j ≥ m2 이면, n = j - 2 이다. 나머지 인트라-예측 모드들에 대한 맵핑 테이블들은, 가장 가능성있는 모드들이 맵핑 테이블들에 포함되지 않아, 하나 이상의 미선택된 가장 가능성있는 모드들이 할당된 코드워드들을 가질 때 비트 절감들이 될 수 있다는 사실을 고려하기 위해서, 인덱스들을 재할당함으로써, 좀더 효율적으로 구성될 수 있다.
비디오 인코더 (20) 는 일부 예들에서, 컨텍스트에 기초하여, 가장 가능성있는 모드로 인트라-예측 모드의 선택에 대한 분석을 시작하도록 구성될 수도 있다. 가장 가능성있는 모드가 적합한 레이트-왜곡 특성들을 획득할 때, 일부 예들에서, 비디오 인코더 (20) 는 가장 가능성있는 모드를 선택할 수도 있다. 다른 예들에서, 비디오 인코더 (20) 는 가장 가능성있는 모드로 선택 프로세스를 시작할 필요는 없다.
예측 데이터 및 잔여 데이터를 생성하는 인트라-예측 또는 인터-예측 코딩 이후, 그리고, 변환 계수들을 생성하는 (H.264/AVC 또는 이산 코사인 변환 DCT 에서 사용되는 4 × 4 또는 8 × 8 정수 변환과 같은) 임의의 변환들 이후, 변환 계수들의 양자화가 수행될 수도 있다. 양자화는 일반적으로 그 계수들을 나타내는데 사용되는 데이터의 양을 될수 있는 대로 감소시키기 위해 변환 계수들을 양자화시키는 프로세스를 지칭한다. 양자화 프로세스는 그 계수들의 일부 또는 모두와 연관되는 비트 깊이를 감소시킬 수도 있다. 예를 들어, n-비트 값은 양자화 동안 m-비트 값으로 라운드 다운 (round down) 될 수도 있으며, 여기서, n 은 m 보다 더 크다.
양자화 이후, 양자화된 데이터의 엔트로피 코딩이 예컨대, 콘텐츠 적응적 가변 길이 코딩 (CAVLC), 컨텍스트 적응적 2진 산술 코딩 (CABAC), 또는 다른 엔트로피 코딩 방법론에 따라서, 수행될 수도 있다. 엔트로피 코딩을 위해 구성된 프로세싱 유닛, 또는 다른 프로세싱 유닛은, 양자화된 계수들의 제로 런 길이 코딩 및/또는 코딩된 블록 패턴 (CBP) 값들, 매크로블록 유형, 코딩 모드, (프레임, 슬라이스, 매크로블록, 또는 시퀀스와 같은) 코딩된 유닛에 대한 최대 매크로블록 사이즈 등과 같은 구문 정보의 발생과 같은 다른 프로세싱 기능들을 수행할 수도 있다.
비디오 디코더 (30) 는 궁극적으로 인코딩된 비디오 데이터를, 예컨대, 모뎀 (28) 및 수신기 (26) 로부터 수신할 수도 있다. 본 개시물의 기법들에 따르면, 비디오 디코더 (30) 는 비디오 데이터의 블록을 인코딩하는데 이용되는 인트라-예측 모드를 나타내는 코드워드를 수신할 수도 있다. 코드워드는 CABAC 프로세스를 이용하여 비디오 인코더 (20) 에 의해 코딩될 수도 있으며 역 CABAC 프로세스를 이용하여 비디오 디코더 (30) 에 의해 디코딩될 수도 있다. 비디오 디코더 (30) 는 블록에 대한 코딩 컨텍스트를 비디오 인코더 (20) 와 실질적으로 유사한 방법으로 결정하도록 구성될 수도 있다. 더욱이, 비디오 디코더 (30) 는 비디오 인코더 (20) 와 유사한 구성 데이터, 예컨대, 가장 가능성있는 모드의 표시들, 인트라-예측 모드 인덱스 테이블, 및 각각의 코딩 컨텍스트에 대한 맵핑 테이블을 포함할 수도 있다.
하나의 가장 가능성있는 인트라-예측 모드를 이용할 때, 블록을 인코딩하는데 이용되는 인트라-예측 모드가 가장 가능성있는 모드인지를 나타내기 위해 단일 비트가 사용될 수도 있다. 선택된 모드가 가장 가능성있는 모드가 아닌 것으로 결정되면, 비디오 디코더 (30) 는 비디오 데이터의 블록을 인코딩하는데 이용되는 인트라-예측 모드를 비디오 인코더 (20) 의 방법과 일반적으로 역인 방법으로 결정할 수도 있다.
구체적으로 설명하면, 또한, n 이 맵핑 테이블에서의 수신된 코드워드가 맵핑되는 변경된 인트라-예측 모드의 인덱스를 나타내고, j 가 코딩된 블록을 디코딩하는데 이용되는 인트라-예측 모드의 모드 인덱스를 나타내고, m 이 가장 가능성있는 모드의 모드 인덱스를 나타낸다고 하자. 변경된 인트라-예측 모드 인덱스 n 이 가장 가능성있는 모드의 모드 인덱스 m 보다 작으면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n 을 갖는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 즉, n < m 이면, j = n 이다. 한편, 변경된 인트라-예측 모드 인덱스 n 이 가장 가능성있는 모드의 모드 인덱스 m 이상이면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n + 1 을 갖는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 즉, n ≥ m 이면, j = n + 1 이다.
2개 이상의 가장 가능성있는 인트라-예측 모드들을 이용할 때, 코드워드가 선택된 모드가 2개의 가장 가능성있는 인트라-예측 모드들 중 하나임을 나타내는 제 1 비트를 포함하면, 비디오 디코더 (30) 는 2개 이상의 가장 가능성있는 인트라-예측 모드들 중 어느 모드가 선택된 모드에 대응하는지를 식별하는 추가적인 비트들에 기초하여, 코딩된 블록을 인코딩하는데 이용되는 인트라-예측 모드를 결정할 수도 있다. 선택된 모드가 2개의 가장 가능성있는 인트라-예측 모드들 중 하나가 아니라고 제 1 비트가 나타내면, 비디오 디코더 (30) 는 비디오 데이터의 블록을 인코딩하는데 이용되는 인트라-예측 모드를 비디오 인코더 (20) 의 방법과는 일반적으로 역인 방법으로 결정할 수도 있다.
구체적으로 설명하면, 또한, n 이 맵핑 테이블에서의 수신된 코드워드가 맵핑되는 변경된 인트라-예측 모드의 인덱스를 나타내고, j 가 코딩된 블록을 디코딩하는데 이용되는 인트라-예측 모드의 모드 인덱스를 나타내고, m1 이 제 1 가장 가능성있는 모드의 모드 인덱스를 나타내고, m2 가 제 2 가장 가능성있는 모드의 모드 인덱스를 나타낸다고 하자. 앞에서 언급한 바와 같이, m1 의 모드 인덱스가 m2 의 모드 인덱스보다 낮은 것으로 가정될 수 있다. 변경된 인트라-예측 모드 인덱스 n 이 제 1 가장 가능성있는 모드의 모드 인덱스 m1 보다 작으면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n 을 갖는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 즉, n < m1 이면, j = n 이다. 그렇지 않으면, 변경된 인트라-예측 모드 인덱스 더하기 1 (n + 1) 이 제 2 가장 가능성있는 모드에 대한 모드 인덱스 m2 보다 작으면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n + 1 을 갖는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 즉, n + 1 < m2 이면, j = n + 1 이다. 그렇지 않으면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n+2 를 갖는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 즉, n+1 ≥ m2 이면, j = n+2 이다.
따라서, 2개의 가장 가능성있는 모드들에 대해, 변경된 인트라-예측 모드 인덱스들에의 모드 인덱스들의 맵핑은, 비디오 인코더 (20) 에 의해 수행될 때, 다음 의사 코드로 표현될 수 있다:
Figure 112013070884083-pct00001
따라서, m1 이 제 1 가장 가능성있는 모드를 나타내고 mN 이 제 N 가장 가능성있는 모드를 나타내는, N개의 가장 가능성있는 모드들에 대해, 변경된 인트라-예측 모드 인덱스들에의 모드 인덱스들의 맵핑은, 비디오 인코더 (20) 에 의해 수행될 때, 다음 의사 코드로 표현될 수 있다:
Figure 112013070884083-pct00002
따라서, 2개의 가장 가능성있는 모드들에 대해, 모드 인덱스에의 변경된 인트라-예측 모드 인덱스의 맵핑은 비디오 디코더 (30) 에 의해 수행될 때, 다음 의사 코드로 표현될 수 있다:
Figure 112013070884083-pct00003
N개의 가장 가능성있는 모드들에 대해, 모드 인덱스에의 변경된 인트라-예측 모드 인덱스의 맵핑은 비디오 디코더 (30) 에 의해 수행될 때, 다음 의사 코드로 표현될 수 있다:
Figure 112013070884083-pct00004
본 개시물의 기법들에 따르면, 모드들은 또한 대응하는 코드워드들을 나타내는 코드워드 인덱스들에 직접적으로 맵핑될 수도 있다. 위에서 설명한 변경된 인트라-예측 모드 인덱스들과 유사한 방법으로, 모드 인덱스에 대응하는 인덱스를 가진 코드워드를 전송하는 대신, 변경된 코드워드 인덱스를 가진 코드워드를 전송함으로써 비트 절감들이 달성될 수도 있으며, 여기서, 변경은 가장 가능성있는 모드들이 아닌 모드들을 나타내기 위해 가장 가능성있는 모드들과 원래 연관되는 코드워드 인덱스들을 이용한 결과이다. 가장 가능성있는 모드들이 위에서 설명한 바와 같이 초기 비트 또는 비트들의 시리즈를 이용하여 시그널링되기 때문에, 가장 가능성있는 모드들 중 하나가 아닌 모드의 코드워드 인덱스를 시그널링할 때 가장 가능성있는 모드들이 고려사항으로부터 제외될 수 있다. 그 결과, 가장 가능성있는 모드들 중 하나에 원래 맵핑되는 코드워드 인덱스가 가장 가능성있는 모드들 중 하나가 아닌 모드를 나타내는데 사용될 수 있다. 코드워드가 변경된 인트라-예측 모드 인덱스 또는 변경된 코드워드 인덱스에 맵핑되는지 여부에 무관하게, 코드워드는 CABAC 프로세스를 이용하여 코딩될 수 있다.
예를 들어, 위의 변경된 인트라-예측 모드들과 같이, 2개의 가장 가능성있는 인트라-예측 모드들이 이용된다고 가정하고, 가용 인트라-예측 모드들의 세트가 0 내지 K 에 걸친 코드워드 인덱스들의 범위에 맵핑되는 K+1 개의 멤버들을 가지면, 변경된 코드워드 인덱스들의 테이블은 K-1 개의 코드워드들을 코드워드 인덱스들 0 내지 K-2 에 할당할 수도 있다.
C 가 코드워드 인덱스를 나타내고, Cmod 가 변경된 코드워드 인덱스를 나타낸다고 가정한다. 또한, Cm1 가 가장 가능성있는 모드의 최저 코드워드 인덱스를 나타내고, Cm2 가 가장 가능성있는 모드에 대응하는 제 2 최저 코드워드 인덱스를 나타내며, 등등이라고 가정한다. 아래에 좀더 자세히 설명하는 바와 같이, 코드워드 인덱스들에의 모드들의 맵핑은 동적일 수도 있다. 따라서, 최저 모드 인덱스를 가진 제 1 가장 가능성있는 모드는 또한 최저 코드워드 인덱스를 갖지 않을 수도 있다. 따라서, Cm1 는 제 1 가장 가능성있는 모드에 반드시 대응하지 않을 수도 있으며, Cm2 는 제 2 가장 가능성있는 모드에 대응하지 않을 수도 있으며, 등등이다. 따라서, N 개의 가장 가능성있는 모드들에 대해, 변경된 코드워드 인덱스들에의 코드워드 인덱스들의 맵핑은, 비디오 인코더 (20) 에 의해 수행될 때, 다음 의사 코드로 표현될 수 있다:
Figure 112013070884083-pct00005
따라서, N 개의 가장 가능성있는 모드들에 대해, 코드워드 인덱스들에의 변경된 코드워드 인덱스들의 맵핑은, 비디오 디코더 (30) 에 의해 수행될 때, 다음 의사 코드로 표현될 수 있다:
Figure 112013070884083-pct00006
Figure 112013070884083-pct00007
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 적용가능한 경우, 예컨대 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 주문형 집적회로 (ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (FPGA) 들, 이산 로직 회로, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 조합들과 같은, 다양한 적합한 인코더 또는 디코더 회로 중 임의의 회로로서 구현될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 쪽이든 결합된 비디오 인코더/디코더 (코덱) 의 부분으로서 통합될 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 를 포함하는 장치는 집적 회로, 마이크로프로세서, 및/또는 무선 통신 디바이스, 예컨대 셀룰러 전화기를 포함할 수도 있다.
도 2 는 인트라-예측 모드를 나타내는 정보를 코딩하는 기법들을 구현할 수도 있는 비디오 인코더 (20) 의 일 예를 도시하는 블록도이다. 비디오 인코더 (20) 는 매크로블록들, 또는 매크로블록들의 파티션들 또는 서브-파티션들을 포함한, 비디오 프레임들 내 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라 코딩은 주어진 비디오 프레임 내 비디오에서 공간 리던던시를 감소시키거나 제거하기 위해 공간 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접 프레임들 내 비디오에서 시간 리던던시를 감소시키거나 제거하기 위해 시간 예측에 의존한다. 인트라-예측 모드 (I-모드) 는 여러 공간 기반의 압축 모드들 중 임의의 모드를 지칭할 수도 있으며, 단방향 예측 (P-모드) 또는 양방향 예측 (B-모드) 과 같은 인터-모드들은 여러 시간-기반의 압축 모드들의 임의의 압축 모드를 지칭할 수도 있다. 인터-모드 인코딩을 위한 컴포넌트들이 도 2 에 도시되지만, 비디오 인코더 (20) 가 인트라-예측 모드 인코딩을 위한 컴포넌트들을 더 포함할 수도 있는 것으로 이해되어야 한다. 그러나, 이러한 컴포넌트들은 간결성과 명확성을 위해 도시되지 않는다.
도 2 에 나타낸 바와 같이, 비디오 인코더 (20) 는 인코딩될 비디오 프레임 내에서 현재의 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (20) 는 모션 보상 유닛 (44), 모션 추정 유닛 (42), 메모리 (64), 합산기 (49), 변환 모듈 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더 (20) 는 또한 역양자화 유닛 (58), 역변환 모듈 (60), 및 합산기 (62) 를 포함한다. 디블로킹 필터 (deblocking filter; 도 2 에 미도시) 는 또한 블록 경계들을 필터링하여 재구성된 비디오로부터 블록킹 현상 아티팩트들을 제거하기 위해 포함될 수도 있다. 원할 경우, 디블로킹 필터는 일반적으로 합산기 (62) 의 출력을 필터링할 것이다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간 압축을 제공하기 위해 하나 이상의 참조 프레임들에서 하나 이상의 블록들에 대해 그 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라 예측 모듈 (46) 은 공간 압축을 제공하기 위해 코딩될 블록과 동일한 프레임 또는 슬라이스에서 하나 이상의 이웃하는 블록들에 대해 그 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다.
모드 선택 유닛 (40) 은 코딩 모드들 중 하나, 즉 인트라 또는 인터 코딩 모드를, 예컨대, 에러 결과들에 기초하여 그리고 코딩중인 현재의 블록을 포함한 프레임 또는 슬라이스에 대한 프레임 또는 슬라이스 유형에 기초하여 선택하고, 결과의 인트라- 또는 인터-코딩된 블록을, 합산기 (49) 에 제공하여 잔여 블록 데이터를 발생하고, 그리고, 합산기 (62) 에 제공하여, 참조 프레임 또는 참조 슬라이스에 이용하기 위한 인코딩된 블록을 재구성할 수도 있다. 일반적으로, 인트라-예측은 이웃하는 이전에 코딩된 블록들에 대해 현재의 블록을 예측하는 것을 수반하는 반면, 인터-예측은 현재의 블록을 시간 예측하기 위해 모션 추정 및 모션 보상을 수반한다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 비디오 인코더 (20) 의 인터-예측 엘리먼트들을 나타낸다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위해 별개로 도시된다. 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 발생하는 프로세스이다. 모션 벡터는, 예를 들어, 현재의 프레임 내 코딩중인 현재의 블록 (또는, 다른 코딩된 유닛) 에 대한 예측 참조 프레임 내 예측 블록 (또는, 다른 코딩된 유닛) 의 변위를 나타낼 수도 있다. 예측 블록은 픽셀 차이의 관점에서, 코딩될 블록과 가깝게 일치하는 것으로 확인되는 블록이며, SAD (sum of absolute difference), SSD (sum of square difference), 또는 다른 차이 메트릭들에 의해 결정될 수도 있다. 모션 벡터는 또한 매크로블록의 파티션의 변위를 나타낼 수도 있다. 모션 보상은 예측 블록을 모션 추정에 의해 결정된 모션 벡터에 기초하여 페치하거나 또는 발생하는 것을 수반할 수도 있다. 또, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 일부 예들에서, 기능적으로 통합될 수도 있다.
모션 추정 유닛 (42) 은 비디오 블록을 참조 프레임 스토어 (64) 의 참조 프레임의 비디오 블록들과 비교함으로써 인터-코딩된 프레임의 비디오 블록에 대한 모션 벡터를 계산한다. 모션 보상 유닛 (44) 은 또한 참조 프레임, 예컨대, I-프레임 또는 P-프레임의 서브-정수 픽셀들을 보간할 수도 있다. ITU H.264 표준은, 일 예로서, 2개의 리스트들: 인코딩 중인 현재의 프레임보다 빠른 디스플레이 순서를 갖는 참조 프레임들을 포함하는 리스트 0, 및 인코딩 중인 현재의 프레임보다 늦은 디스플레이 순서를 갖는 참조 프레임들을 포함하는 리스트 1 을 기술한다. 따라서, 참조 프레임 스토어 (64) 에 저장되는 데이터가 이들 리스트들에 따라서 편성될 수도 있다.
모션 추정 유닛 (42) 은 참조 프레임 스토어 (64) 로부터의 하나 이상의 참조 프레임들의 블록들을 현재의 프레임, 예컨대, P-프레임 또는 B-프레임의 인코딩되는 블록과 비교한다. 참조 프레임 스토어 (64) 의 참조 프레임들이 서브-정수 픽셀들에 대한 값들을 포함할 때, 모션 추정 유닛 (42) 에 의해 계산된 모션 벡터는 참조 프레임의 서브-정수 픽셀 로케이션을 지칭할 수도 있다. 모션 추정 유닛 (42) 및/또는 모션 보상 유닛 (44) 은 또한 어떤 서브-정수 픽셀 위치들에 대한 값들도 참조 프레임 스토어 (64) 에 저장되어 있지 않으면 참조 프레임 스토어 (64) 에 저장된 참조 프레임들의 서브-정수 픽셀 위치들에 대한 값들을 계산하도록 구성될 수도 있다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다. 모션 벡터에 의해 식별되는 참조 프레임 블록은 예측 블록으로 지칭될 수도 있다. 모션 보상 유닛 (44) 은 예측 데이터를 인터-예측 블록에 기초하여 계산할 수도 있다.
인트라-예측 모듈 (46) 은 위에서 설명한 바와 같이, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행되는 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 특히, 인트라-예측 모듈 (46) 은 현재의 블록을 인코딩하는데 이용할 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라-예측 모듈 (46) 은 여러 인트라-예측 모드들을 이용하여, 예컨대, 별개의 인코딩 패스 (pass) 들 동안 현재의 블록을 인코딩할 수도 있으며, 인트라-예측 모듈 (46) (또는, 일부 예들에서는, 모드 선택 유닛 (40)) 은 그 테스트된 모드들로부터 이용하기에 적합한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라-예측 모듈 (46) 은 레이트-왜곡 값들을 여러 테스트된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 계산하고, 테스트된 모드들 중에서 최상의 레이트-왜곡 특성들을 갖는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로 인코딩된 블록과 인코딩된 블록을 생성하기 위해 인코딩되었던 원래의 미인코딩된 블록 사이의 왜곡 (또는, 에러) 의 양 뿐만 아니라, 인코딩된 블록을 생성하는데 이용되는 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라-예측 모듈 (46) 은 어느 인트라-예측 모드가 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정하기 위해 여러 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비들 (ratios) 을 계산할 수도 있다.
어쨌든, 블록에 대한 인트라-예측 모드를 선택한 후, 인트라-예측 모듈 (46) 은 블록에 대한 선택된 인트라-예측 모드를 나타내는 정보를 엔트로피 인코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 선택된 인트라-예측 모드를 나타내는 정보를 본 개시물의 기법에 따라 CABAC 을 이용하여 인코딩할 수도 있다. 도 2 에 도시된 바와 같이, 비디오 인코더 (20) 는 구성 데이터 (66) 를 포함할 수도 있으며, 이 구성 데이터는 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 변경된 인트라-예측 모드 인덱스 테이블들 (또한, 코드워드 맵핑 테이블들로 지칭됨), 여러 블록들에 대한 인코딩 컨텍스트들의 정의들, 및 가장 가능성있는 인트라-예측 모드의 표시들, 인트라-예측 모드 인덱스 테이블, 및 컨텍스트들의 각각에 대해 이용할 변경된 인트라-예측 모드 인덱스 테이블을 포함할 수도 있다.
아래 테이블 1 은 인트라-예측 모드 인덱스들, 대응하는 인트라-예측 모드들, 및 모드들 중 어느 모드가 특정의 컨텍스트에 대해 가장 가능성있는 모드인 지의 표시의 일 예를 나타낸다. 테이블 1 은 또한 이 특정의 예에서, 각각의 모드 인덱스에 맵핑하는 변경된 인트라-예측 모드 인덱스들을 나타낸다. 테이블 2 는 코드워드들을 일반적으로 테이블 1 의 모드 인덱스들에 대응하는 변경된 인트라-예측 모드 인덱스들에 맵핑하는 예시적인 맵핑 테이블을 제공한다. 위에서 설명한 바와 같이, 하나 보다 많은 가장 가능성있는 모드가 또한 사용될 수도 있지만, 테이블 1 및 테이블 2 의 예들은 단지 하나의 가장 가능성있는 모드가 사용된다고 가정한다. 하나의 가장 가능성있는 모드가 사용되기 때문에, 테이블 2 은 테이블 1 보다 하나 더 적은 엔트리를 포함한다. 가장 가능성있는 모드가 나머지 모드들과는 별개로 시그널링되기 때문에, 모드 인덱스 5 는 대응하는 변경된 인트라-예측 모드 인덱스를 갖지 않는다. 이와 유사하게, 테이블 2 은 가장 가능성있는 모드에 대한 코드워드를 포함할 필요가 없다.
Figure 112013070884083-pct00008
Figure 112013070884083-pct00009
예의 목적들을 위해, m 이 테이블 1 에서 가장 가능성있는 모드의 모드 인덱스를 나타내고, n 이 j 에 대응하는 변경된 인트라-예측 모드의 인덱스를 나타낸다고 하자. 선택된 모드가 가장 가능성있는 모드이면, 이 예에서, 제 1 비트 (예컨대, "0") 가 모드를 나타내는데 이용되며, 그 모드가 테이블 1 (이 예에서, 수직-우측) 에 의해 나타낸 바와 같이, 가장 가능성있는 모드로서 결정된다. 0 이외의 제 1 비트 (즉, "1") 가 전송되면, 그 모드는 가장 가능성있는 모드가 아니다. n 이 그 모드를 나타내기 위해 전송되는 코드워드에 의해 표시되는 변경된 인트라-예측 모드 인덱스에 대응한다고 하자. 인덱스 n 에 맵핑되는 코드워드가 선택된 인트라 예측 모드 j 를 나타내기 위해 인코더로부터 디코더로 시그널링된다. 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 작으면, 비디오 인코더 (20) 는 j 에 대응하는 코드워드를 이용하여 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 즉, j < m 이면, n = j 이다. 한편, 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값 이상이면, 비디오 인코더 (20) 는 j-1 에 대응하는 코드워드를 이용하여 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 즉, j ≥ m 이면, n = j-1 이다.
디코더 (30) 와 같은 디코더는 일반적으로 인코더 (20) 의 반대 맵핑을 수행할 것이다. 따라서, 디코더 (30) 는 n < m 이면 모드 인덱스가 n 과 동일하다고 결정할 수 있다. 한편, n ≥ m 이면, 모드 인덱스는 n+1 과 동일하다. 즉, 변경된 인트라-예측 모드 인덱스 (예컨대, 전송되는 코드워드에 대응하는 테이블 2 로부터의 변경된 인트라-예측 모드 인덱스) 가 (이 예에서, 테이블 1 로부터) 가장 가능성있는 모드의 인덱스 이상이면, 인트라-예측 모드는 실제로는 n 대신, n+1 로 표시된다. 이 방법에서, 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드에 대한 모드 인덱스 (예컨대, n+1) 가 가장 가능성있는 인코딩 모드에 대한 인덱스 (m) 보다 클 때, 선택된 인트라-예측 모드를 나타내는데 이용되는 코드워드는 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드에 대한 모드 인덱스 (n+1) 보다 1이 더 작은 변경된 인트라-예측 모드 인덱스 (n) 에 대응한다.
테이블 1 및 테이블 2 의 예들에 대한 일 예로서, 수직-우측 (vertical-right) 의 가장 가능성있는 모드를 나타내는 컨텍스트를 갖는 현재의 블록에 대해, 선택된 모드가 수평-하측 (horizontal-down) 이라고 가정한다. 이 예에서, 가장 가능성있는 모드에 대한 인덱스 m 이 5 인 반면, (테이블 1 에 의하면) 선택된 모드에 대한 모드 인덱스는 8 이다. 이 예에서, 선택된 모드에 대한 모드 인덱스가 가장 가능성있는 모드에 대한 모드 인덱스보다 크기 때문에, n = j-1 이며, 여기서, n 은 변경된 인트라 예측 모드의 인덱스이며 7 과 동일하다. 따라서, 이 예에서, 테이블 2 에 따라, 비디오 인코더 (20) 는 선택된 모드를 나타내기 위해 코드워드 111 을 이용할 것이다. 코드워드 111 이, 선택된 모드가 가장 가능성있는 모드가 아님을 나타내는 초기 비트를 뒤따를 것이다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 및 코드워드 111 을 수신하고 n 의 값이 7 이라고 결정할 것이다. 이 예에서는, 7 이 5 보다 크기 때문에 (즉, n ≥ m), 비디오 디코더 (30) 는 이 예에서 수평-하측에 대응하는, 8 인 모드 인덱스 n+1 을 갖는 테이블 1 로부터 모드를 취출할 것이다.
다른 예로서, 또한, 테이블 1 및 테이블 2 의 예들과 관련하여, 현재의 블록에 대해, 선택된 모드가 DC 라고 가정한다. 또, 이 예에서, 가장 가능성있는 모드에 대한 인덱스 m 이 5 인 반면, (테이블 1 에 의하면) 선택된 모드에 대한 모드 인덱스는 0 이다. 이 예에서, 선택된 모드에 대한 모드 인덱스가 가장 가능성있는 모드에 대한 모드 인덱스보다 작기 때문에, 모드 인덱스는 n 과 동일하며, 여기서, n 은 변경된 인트라-예측 모드 인덱스이다. 따라서, 테이블 2 에 따라, 비디오 인코더 (20) 는 이 예에서 선택된 모드를 나타내기 위해 코드워드 000 을 이용할 것이다. 코드워드 000 은 선택된 모드가 가장 가능성있는 모드가 아님을 나타내는 초기 비트를 뒤따를 것이다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 및 코드워드 000 을 수신하고 n 의 값이 0 이라고 결정할 것이다. 이 예에서 0 이 5 보다 작기 때문에 (즉, n < m), 비디오 디코더 (30) 는 이 예에서 DC 에 대응하는, 0인 모드 인덱스 n 을 갖는 테이블 1 로부터 모드를 취출할 것이다.
아래 테이블 3 은 인트라-예측 모드 인덱스들, 대응하는 인트라-예측 모드들, 및 모드들 중 어느 모드가 특정의 컨텍스트에 대해 가장 가능성있는 모드인 지의 표시의 일 예를 나타낸다. 테이블 3 은 또한 이 특정의 예에서, 각각의 모드 인덱스에 맵핑하는 변경된 인트라-예측 모드 인덱스들을 나타낸다. 테이블 4 는 코드워드들을 일반적으로 테이블 3 의 모드 인덱스들에 대응하는 변경된 인트라-예측 모드 인덱스들에 맵핑하는 일 예시적인 맵핑 테이블을 제공한다. 위에서 설명한 바와 같이, 2개보다 많은 가장 가능성있는 모드들이 또한 사용될 수도 있지만, 테이블 3 및 테이블 4 의 예들은 단지 2개의 가장 가능성있는 모드들이 사용된다고 가정한다. 2개의 가장 가능성있는 모드들이 사용되기 때문에, 테이블 4 는 테이블 3 보다 2개 더 적은 엔트리들을 포함한다.
Figure 112013070884083-pct00010
Figure 112013070884083-pct00011
특히, m1 이 테이블 3 에서 제 1 가장 가능성있는 모드의 모드 인덱스를 나타내고, m2 가 제 2 가장 가능성있는 모드의 모드 인덱스를 나타낸다고 하자. 선택된 모드가 가장 가능성있는 모드들 중 하나이면, 그 모드가 2개의 가장 가능성있는 모드들 중 하나라고 시그널링하기 위해 제 1 비트 (예컨대, "0") 가 사용된다. 모드가 2개의 가장 가능성있는 모드들 중 하나이면, 2개의 가장 가능성있는 모드들 중 어느 모드가 선택된 모드에 대응하는 지를 시그널링하는데 제 2 비트가 사용된다. 따라서, 2개의 가장 가능성있는 모드들이 "00" 및 "01" 의 초기 비트 시퀀스들로 각각 시그널링될 수 있다. "0" 이외의 제 1 비트 (즉, "1") 가 전송되면, 선택된 모드는 2개의 가장 가능성있는 모드들 중 하나가 아니다. n 이 그 모드를 나타내기 위해 전송되는 코드워드에 의해 표시되는 변경된 인트라-예측 모드 인덱스에 대응한다고 하자.
비디오 인코더 (20) 는 선택된 모드의 모드 인덱스 (j) 를 결정하고 그 모드 인덱스를 변경된 모드 인덱스 (n) 에 맵핑할 수 있다. j ≥ m2 이면, n = j - 2 이다. 그렇지 않고, j ≥ m1 이면, n = j - 1 이다. 그렇지 않으면, n = j 이다. 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스 (n) 를 수신하고 먼저 n 을 m1 과 비교할 수 있다. n < m1 이면, 모드 인덱스 j 는 n 과 동일하다. n 이 m1 보다 작지 않으면, n+1 은 m2 와 비교될 수 있다. n + 1 < m2 이면, 모드 인덱스는 n + 1 과 동일하다. 그렇지 않으면, 모드 인덱스는 n + 2 와 동일하다.
테이블 3 및 테이블 4 의 예들에 대한 일 예로서, 수직-좌측 (vertical-left) 및 대각선 하측/좌측 (down/left) 의 가장 가능성있는 모드들을 나타내는 컨텍스트를 갖는 현재의 블록에 대해, 선택된 모드가 수평-하측이라고 가정한다. 이 예에서, 가장 가능성있는 모드들에 대한 인덱스들 m1 및 m2 가 4 및 6 인 반면, (테이블 3 에 의하면) 선택된 모드에 대한 모드 인덱스 j 는 8 이다. 이 예에서, 선택된 모드에 대한 모드 인덱스가 가장 가능성있는 모드들 양자에 대한 모드 인덱스보다 크기 때문에, 모드 인덱스 j 는 n + 2 와 동일하고, 여기서 n 은 테이블 4 에서 변경된 인트라-예측 모드의 인덱스와 동일하다. 따라서, 모드 인덱스 j 가 8 과 동일하면, n = 6 이다. 따라서, 비디오 인코더 (20) 는 이 예에서 선택된 모드를 나타내기 위해 코드워드 110 을 이용할 것이다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 코드워드 110 을 수신하고 n 의 값이 6 이라고 결정할 것이다. 이 예에서, 6 이 4 보다 작지 않고 (즉, n ≥ m1), 그리고 6 + 1 이 6 보다 작지 않기 때문에 (즉, n+1 ≥ m2), 비디오 디코더 (30) 는 이 예에서, 수평-하측에 대응하는 8 인, n + 2 와 동일한 모드 인덱스 j 를 갖는 테이블 3 으로부터 모드를 취출할 것이다.
다른 예로서, 또한, 테이블 3 및 테이블 4 의 예들과 관련하여, 현재의 블록에 대해, 선택된 모드가 DC 라고 가정한다. 또, 이 예에서, 가장 가능성있는 모드들에 대한 인덱스들 m1 및 m2 가 4 및 6 인 반면, (테이블 3 에 의하면) 선택된 모드에 대한 모드 인덱스 j 는 0 이다. 이 예에서, 선택된 모드에 대한 모드 인덱스가 가장 가능성있는 모드들 양자에 대한 모드 인덱스들보다 작기 때문에 (즉, n < m1), 모드 인덱스 j 는 n 과 동일하며, 여기서 n 은 테이블 4 에서 변경된 인트라-예측 모드의 인덱스와 동일하다. 따라서, n 은 0 과 동일하다. 따라서, 테이블 4 에 기초하여, 비디오 인코더 (20) 는 이 예에서 선택된 모드를 나타내기 위해 코드워드 0 을 이용할 것이다. 코드워드 000 은, 선택된 모드가 가장 가능성있는 모드가 아님을 나타내는 초기 비트 또는 비트들의 시리즈를 뒤따른다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 또는 비트들의 시리즈 및 코드워드 000 을 수신하고 n 의 값이 0 이라고 결정할 것이다. 이 예에서 0 이 4 및 6 보다 작기 때문에 (즉, n < m1), 비디오 디코더 (30) 는 이 예에서 DC 에 대응하는 0 인, n 과 동일한 모드 인덱스 j 를 갖는 테이블 3 으로부터 모드를 취출할 것이다.
테이블 3 및 테이블 4 의 예들에 대한 여전히 다른 예로서, 현재의 블록에 대해, 선택된 모드가 수직-우측이라고 가정한다. 이 예에서 가장 가능성있는 모드들에 대한 인덱스들 m1 및 m2 가 4 및 6 인 반면, (테이블 3 에 의하면) 선택된 모드에 대한 모드 인덱스 j 는 5 이다. 이 예에서, 선택된 모드에 대한 모드 인덱스가 제 1 가장 가능성있는 모드에 대한 모드 인덱스 이상이지만, 제 2 가장 가능성있는 모드에 대한 모드 인덱스보다 작기 때문에, 모드 인덱스 j 는 n+1 과 동일하며, 여기서 n 은 테이블 4 에서 변경된 인트라-예측 모드의 인덱스와 동일하다. 따라서, 모드 인덱스 j 가 5 이면, n = 4 이다. 따라서, 비디오 인코더 (20) 는 이 예에서 선택된 모드를 나타내기 위해 코드워드 110 을 이용할 것이다. 코드워드 110 은, 선택된 모드가 가장 가능성있는 모드가 아님을 나타내는 초기 비트 또는 비트들의 시리즈를 뒤따른다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 및 비트들의 시리즈 및 코드워드 110 을 수신하고, n 의 값이 4 라고 결정할 것이다. 이 예에서 4 가 4 이상이지만, 4 + 1 이 6 보다 작기 때문에 (즉, n ≥ m1 이지만 n + 1 < m2), 비디오 디코더 (30) 는 이 예에서 수직-우측에 대응하는 5 인, n+1 과 동일한 모드 인덱스 j 를 갖는 테이블 3 으로부터 모드를 취출할 것이다.
테이블 1, 테이블 2, 테이블 3, 및 테이블 4 가 단지 가장 가능성있는 모드들의 테이블들, 모드들에 대한 인덱스들, 및 여러 인덱스들에 할당되는 코드워드들의 예들인 것으로 이해되어야 한다. 다른 예들에서, 다른 모드들이 예컨대, 소정의 블록에 대한 인코딩 컨텍스트에 기초하여 가장 가능성있는 것으로 결정될 수도 있다. 예를 들어, 가장 가능성있는 모드는 좌측- 및 상부-이웃하는 블록들을 인코딩하는데 이용되는 인코딩 모드들에 기초하여 결정될 수도 있다. 구성 데이터 (66) 는 일반적으로 테이블 1 및 테이블 3 의 예들과 유사하게, 가장 가능성있는 모드인 것으로 식별되는 상이한 인코딩 모드들과 연관되는 복수의 상이한 테이블들을 포함할 수도 있다. 이와 유사하게, 구성 데이터 (66) 는 인덱스들을 코드워드들에 맵핑하는, 테이블 2 및 테이블 4 과 같은 복수의 코드워드 맵핑 테이블들을 포함할 수도 있다.
일반적으로, 테이블 1 및 테이블 3 은 모드 인덱스 테이블들로 지칭될 수도 있는 반면, 테이블 2 및 테이블 4 은 변경된 인트라-예측 모드 인덱스 맵핑 테이블들, 또는 간단히 맵핑 테이블들로 지칭될 수도 있다. 위에서 언급한 바와 같이, 테이블 1 및 테이블 2 는 단지 모드 인덱스 테이블 및 맵핑 테이블의 일 예이다. 일부 예들에서, 구성 데이터 (66) 는 복수의 모드 인덱스 테이블들 및 복수의 맵핑 테이블들에 대한 데이터를 포함할 수도 있다. 일부 예들에서, 다수의 코딩 컨텍스트들이 공통 모드 인덱스 테이블에 대응할 수도 있다. 이와 유사하게, 다수의 모드 인덱스 테이블들이 공통 맵핑 테이블에 맵핑될 수도 있다.
본 개시물의 기법들에 따르면, 모드들이 또한 변경된 인트라-예측 모드 인덱스들 대신, 코드워드 인덱스들에 맵핑될 수도 있다. 코드워드 인덱스들은 그후 코드워드들을 탐색하는데 사용되는 변경된 코드워드 인덱스들에 맵핑될 수 있다. 아래의 테이블 5 는 인트라-예측 모드 인덱스들 및 코드워드 인덱스에 맵핑되는 모드들의 일 예를 나타낸다. 테이블 5 은 또한 어느 모드들이 특정의 컨텍스트에 대한 가장 가능성있는 모드들인지의 표시를 나타내며, 이 특정의 예에 대한 코드워드 인덱스들에 대응하는 변경된 코드워드 인덱스들을 나타낸다.
Figure 112013070884083-pct00012
Figure 112013070884083-pct00013
예의 목적을 위해, Cm1 이 하나의 가장 가능성있는 모드의 코드워드 인덱스를 나타내며, Cm2 는 다른 가장 가능성있는 모드의 코드워드 인덱스를 나타낸다고 하고, 여기서 Cm1 은 Cm2 보다 낮은 코드워드 인덱스 값을 갖는다. 위에서 설명한 바와 같이, Cm1 및 Cm2 는 모드 인덱스 값들과는 대조적으로, 코드워드 인덱스 값들에 기초하여 결정된다. 따라서, Cm1 은 제 1 가장 가능성있는 모드에 반드시 대응하지 않을 수도 있으며, Cm2 는 제 2 가장 가능성있는 모드에 반드시 대응하지 않을 수도 있다. 테이블 5 의 예에서, 예를 들어, 모드 3 (대각선 하측/우측) 는 가장 가능성있는 모드들의 최저 모드 인덱스를 갖기 때문에, 제 1 가장 가능성있는 모드이고, 모드 6 이 제 2 가장 가능성있는 모드이다. 그러나, 제 2 가장 가능성있는 모드는 제 1 가장 가능성있는 모드보다 낮은 대응하는 코드워드 인덱스를 갖는다. 따라서, 테이블 5 의 예에서, Cm1 은 제 2 가장 가능성있는 모드의 코드워드 인덱스에 대응하고, Cm2 는 제 1 가장 가능성있는 모드의 코드워드 인덱스에 대응한다. 다음의 설명에서는, Cm1 이 Cm2 보다 작은 것으로 가정된다.
선택된 모드가 가장 가능성있는 모드들 중 하나이면, 그 모드가 2개의 가장 가능성있는 모드들 중 하나라고 시그널링하기 위해 제 1 비트 (예컨대, "0") 가 사용된다. 모드가 2개의 가장 가능성있는 모드들 중 하나이면, 2개의 가장 가능성있는 모드들 중 어느 모드가 선택된 모드에 대응하는 지를 시그널링하기 위해 제 2 비트가 사용된다. 따라서, 2개의 가장 가능성있는 모드들은 "00" 및 "01" 의 초기 비트 시퀀스들로 각각 시그널링될 수 있다. "0" 이외의 제 1 비트 (즉, "1") 가 전송되면, 선택된 모드는 2개의 가장 가능성있는 모드들 중 하나가 아니며, 선택된 모드가 코드워드 인덱스에 대응하는 코드워드로서 전송된다. 그러나, 선택된 모드에 대한 코드워드 인덱스에 직접적으로 대응하는 코드워드를 전송하는 대신, 비디오 인코더 (20) 에 의해 변경된 코드워드 인덱스에 대응하는 코드워드를 전송함으로써 비트 절감들이 달성될 수도 있다. 비디오 디코더 (30) 는 변경된 코드워드 인덱스에 대응하는 코드워드를 수신하고, 그후 선택된 인트라-예측 모드에 대응하는 코드워드 인덱스를 결정할 수 있다.
비디오 인코더 (20) 는 선택된 모드의 코드워드 인덱스 (C) 를 결정하고 그 모드 인덱스를 변경된 모드 인덱스 (Cmod) 에 맵핑할 수 있다. C ≥ Cm2 이면, Cmod = C - 2 이다. 그렇지 않고, C ≥ Cm1 이면, Cmod = C -1 이다. 그렇지 않으면, Cmod = C 이다. 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스 (Cmod) 를 수신하고 먼저 Cm1 과 비교할 수 있다. Cmod < Cm1 이면, 모드 인덱스 (C) 는 Cmod 와 동일하다. Cmod 가 Cm1 보다 작지 않으면, Cmod +1 는 Cm2 와 비교될 수 있다. Cmod + 1 < Cm2 이면, 모드 인덱스는 Cmod + 1 과 동일하다. 그렇지 않으면, 모드 인덱스는 Cmod + 2 와 동일하다.
테이블 5 및 테이블 6 의 예들에 대한 일 예로서, 수직-좌측 (모드 인덱스 6) 및 대각선 하측/우측 (모드 인덱스 3) 의 가장 가능성있는 모드들을 나타내는 컨텍스트를 갖는 현재의 블록에 대해, 선택된 모드가 수평-하측 (모드 인덱스 8) 이라고 가정한다. 이 예에서, 가장 가능성있는 모드들에 대한 코드워드 인덱스들 Cm1 및 Cm2 는 2 및 5 인 반면, (테이블 5 에 의하면) 선택된 모드에 대한 모드 인덱스는 8 이다. 테이블 5 에 따르면, 모드 인덱스들 3, 6, 및 8 은 코드워드 인덱스들 5, 2, 및 8 에 각각 맵핑한다. 이 예에서, 선택된 모드에 대한 코드워드 인덱스 (즉, 코드워드 인덱스 8) 가 가장 가능성있는 모드들 양자에 대한 코드워드 인덱스들 (즉, 코드워드 인덱스들 5 및 2) 보다 크기 때문에, 코드워드 인덱스는 Cmod + 2 와 동일하며, 여기서 Cmod 는 테이블 6 에서 코드워드에 대응하는 변경된 코드워드 인덱스와 동일하다. 따라서, 선택된 모드의 코드워드 인덱스가 8 과 동일하면, Cmod = 6 이다. 따라서, 비디오 인코더 (20) 는 이 예에서 선택된 모드를 나타내기 위해 코드워드 110 을 이용할 것이다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 코드워드 110 을 수신하고 Cmod 의 값이 6 이라고 결정할 것이다. 이 예에서 6 이 2 보다 작지 않고 (즉, Cmod ≥ Cm1) 그리고 6 더하기 1 이 5 보다 작지 않기 때문에 (즉, Cmod +1 ≥ Cm2), 비디오 디코더 (30) 는 이 예에서 수평-하측에 대응하는 8인, 모드 인덱스 Cmod + 2 를 갖는 테이블 5 로부터 모드를 취출할 것이다.
다른 예로서, 또한 테이블 5 및 테이블 6 의 예들과 관련하여, 현재의 블록에 대해, 선택된 모드가 수직 (모드 인덱스 1 및 코드워드 인덱스 0) 이라고 가정한다. 또, 가장 가능성있는 모드들에 대한 인덱스들 Cm1 및 Cm2 는 5 및 2 이다. 이 예에서, 선택된 모드에 대한 코드워드 인덱스가 가장 가능성있는 모드들 양자에 대한 코드워드 인덱스들보다 작기 때문에 (즉, C < Cm1), 변경된 코드워드 인덱스 Cmod 는 코드워드 인덱스와 동일하다. 따라서, 비디오 인코더 (20) 는 이 예에서 선택된 모드를 나타내기 위해 코드워드 000 을 이용할 것이다. 코드워드 000 은, 선택된 모드가 가장 가능성있는 모드가 아님을 나타내는 초기 비트 또는 비트들의 시리즈를 뒤따른다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 또는 비트들의 시리즈 및 코드워드 000 을 수신하고, Cmod 의 값이 0 이라고 결정할 것이다. 이 예에서 0 이 5 및 2 보다 작기 때문에 (즉, Cmod < Cm1), 비디오 디코더 (30) 는 이 예에서 수직에 대응하는 0인, Cmod 과 동일한 모드 인덱스 C 를 갖는 테이블 5 로부터 모드를 취출할 것이다.
테이블 5 및 테이블 6 의 예들에 대한 여전히 다른 예로서, 현재의 블록에 대해, 선택된 모드가 수평 (모드 인덱스 2 및 코드워드 인덱스 4) 이라고 가정한다. 이 예에서, 가장 가능성있는 모드들에 대한 인덱스들 Cm1 및 Cm2 는 2 및 5 이다. 이 예에서, 선택된 모드에 대한 코드워드 인덱스가 Cm1 이상이지만 Cm2 보다 작기 때문에, 코드워드 인덱스가 Cmod +1 과 동일하며, 여기서 Cmod 는 변경된 코드워드 인덱스이다. 따라서, 코드워드 인덱스가 4 이면, Cmod = 3 이다. 따라서, 비디오 인코더 (20) 는 이 예에서 선택된 모드를 나타내기 위해 코드워드 011 을 이용할 것이다. 코드워드 011 은, 선택된 모드가 가장 가능성있는 모드가 아님을 나타내는 초기 비트 또는 비트들의 시리즈를 뒤따른다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 및 비트들의 시리즈 및 코드워드 011 을 수신하고, Cmod 의 값이 3 이라고 결정할 것이다. 이 예에서 3 이 2 보다 작지 않지만 3 더하기 1 이 5 보다 작기 때문에 (즉, Cmod ≥ Cm1 이지만 Cmod +1 < Cm2), 비디오 디코더 (30) 는 수평에 대응하는 4 인, Cmod +1 과 동일한 모드 인덱스를 갖는 테이블 5 로부터 모드를 취출할 것이다.
테이블 1 내지 테이블 6 은 단지 가장 가능성있는 모드들, 모드들에 대한 인덱스들, 코드워드 인덱스들, 및 여러 인덱스들에 할당되는 코드워드들의 테이블들의 예들인 것으로 이해되어야 한다. 다른 예들에서, 다른 인트라-예측 모드들이 예컨대, 소정의 블록에 대한 인코딩 컨텍스트에 기초하여 가장 가능성있는 모드인 것으로 결정될 수도 있다. 예를 들어, 가장 가능성있는 모드가 좌측- 및 상부-이웃하는 블록들을 인코딩하는데 이용되는 인트라-예측 모드들에 기초하여 결정될 수도 있다. 구성 데이터 (66) 는 일반적으로 테이블 1, 테이블 3, 및 테이블 5 의 예들과 유사하게, 식별되는 상이한 개수의 가장 가능성있는 모드들 뿐만 아니라, 가장 가능성있는 모드인 것으로 식별되는 상이한 인트라-예측 모드들과 연관되는 복수의 상이한 테이블들을 포함할 수도 있다. 이와 유사하게, 구성 데이터 (66) 는 나머지 인트라-예측 모드 인덱스들을 코드워드들에 맵핑하는, 테이블 2, 테이블 4, 및 테이블 6 과 같은 복수의 코드워드 맵핑 테이블들을 포함할 수도 있다. 위에서 설명한 바와 같이, 가장 가능성있는 모드들은 초기 비트 또는 비트들의 시리즈를 이용하여 시그널링된다. 이러한 초기 비트 또는 비트들의 시리즈는 또한 컨텍스트 의존적일 수도 있다. 예를 들어, 얼마나 많은 가장 가능성있는 모드들이 식별되는지 뿐만 아니라 어느 인트라-예측 모드들이 가장 가능성있는 모드인 것으로 식별되는 지에 따라서, 가장 가능성있는 모드들을 시그널링하는데, 상이한 비트들의 시리즈가 사용될 수도 있다. 임의의 주어진 인스턴스에 대한 가장 가능성있는 모드들 및 코딩 테이블들이 또한 그 인스턴스에 사용되는 이웃하는 블록 인트라-예측 모드 대신 또는 추가하여, 다른 유형들의 컨텍스트들에 기초하여 정의될 수도 있다.
테이블 1, 테이블 2, 테이블 3, 테이블 4, 및 테이블 5 의 예들이 H.264 의 9개의 인트라-예측 모드들에 대해 제공된다. 그러나, 본 개시물의 기법들은 HEVC (High Efficiency Video Coding) 과 같은 다른 인코딩 표준들 및 기법들에 적용될 수도 있는 것으로 이해되어야 한다. 일부 예들에서, HEVC에서와 같이, 가용 인트라-예측 모드들의 개수는 코딩되는 블록 (예컨대, HEVC 에서 "코딩 유닛" 또는 "CU") 의 사이즈에 의존할 수도 있다. 각각의 인트라-예측 모드에 대해, 모드 인덱스가 각각의 인트라-예측 모드의 발생의 우도에 기초하여 할당될 수 있다. 도 3 은 HEVC 와 함께 사용될 수도 있는 인트라-예측 모드들 및 대응하는 모드 인덱스들의 일 예를 나타낸다. 도 3 의 화살표들은 예측 방향을 나타내고, 번호들은 모드 인덱스를 나타낸다. 아래의 테이블 7 은 CU 사이즈와 그 사이즈의 CU들을 인코딩하는데 이용가능한 인트라-예측 모드들의 개수 사이의 대응을 제공한다. 테이블 7 에 의해 알 수 있는 바와 같이, 8 × 8, 16 × 16, 및 32 × 32 CU들은 도 3 에 나타낸 35 개의 인트라-예측 모드들을 이용할 수도 있는 반면, 4 × 4 및 64 × 64 CU들은 더 작은 인트라-예측 모드들의 세트를 사용한다.
Figure 112013070884083-pct00014
인트라-예측 모드들의 개수가 블록 사이즈에 기초하여 변하는 예들에서, 구성 데이터 (66) 는 블록들의 상이한 사이즈들에 대한 상이한 테이블들을 포함할 수도 있다. 따라서, 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩하기 위한 컨텍스트는 블록의 사이즈 뿐만 아니라, 이웃하는 블록들을 인코딩하는데 이용되는 코딩 모드들을 포함할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 블록에 대한 컨텍스트에 기초하여, 블록을 인코딩하는데 이용되는 선택된 인트라-예측 모드를 나타내는 코드워드를 선택하는데 이용되는 코드워드 맵핑 테이블 및 모드 인덱스 테이블을 선택할 수도 있다. 더욱이, 특정의 사이즈의 블록들에 대한 모드 인덱스 테이블들은 그 사이즈의 블록들에 대한 인트라-예측 모드들의 개수와 동일한 개수의 엔트리들을 가질 수도 있다. 따라서, 사이즈 4 × 4 의 블록들에 대한 모드 인덱스 테이블들은 18개의 엔트리들을 가질 수도 있으며, 사이즈 8 × 8, 16 × 16, 및 32 × 32 의 블록들에 대한 모드 인덱스 테이블들은 35개의 엔트리들을 가질 수도 있으며, 사이즈 64 × 64 의 블록들에 대한 모드 인덱스 테이블들은 4개의 엔트리들을 가질 수도 있다. 다른 블록들의 사이즈들, 예컨대, 128 × 128 는, 또한 결정된 개수의 가용 인트라-예측 모드들을 역시 가질 수도 있다.
사이즈 8 × 8, 16 × 16, 및 32 × 32 의 블록들에 대해서 이용가능한 인트라-예측 모드들이 동일할 수도 있으며, 따라서, 사이즈들 8 × 8, 16 × 16, 및 32 × 32 의 블록들에 대해 동일한 모드 인덱스 테이블들이 이용될 수도 있다. 이들 사이즈들의 블록들에 대해 동일한 모드들이 가능할 수도 있지만, 그러나, 블록을 인코딩하는데 특정의 모드를 이용할 확률이 블록의 사이즈에 기초하여 변할 수도 있다. 따라서, 엔트로피 인코딩 유닛 (56) 은 일부 예들에서, 인트라-예측 모드가 시그널링되어지는 블록의 사이즈에 기초하여, 특정의 모드 인덱스 테이블에 대한 코드워드 맵핑 테이블을 결정할 수도 있다.
예의 목적들을 위해, 상기 테이블 2, 테이블 4, 및 테이블 6 은 여러 인코딩 모드들을 나타내는 간단한 예시적인 테이블들이다. 그러나, 다른 예들에서 다른 유형들의 코드워드들이 사용될 수도 있는 것으로 이해되어야 한다. 코드워드들의 임의의 세트가, 코드워드들 각각이 고유하게 디코딩가능한 한, 코드워드 맵핑 테이블 (즉, 맵핑 테이블 또는 변경된 인트라-예측 모드 인덱스 테이블) 에 사용될 수도 있다.
현재의 블록을, 예컨대, 인트라-예측 또는 인터-예측을 이용하여 예측한 후, 비디오 인코더 (20) 는 코딩되는 원래 비디오 블록으로부터, 모션 보상 유닛 (44) 또는 인트라-예측 모듈 (46) 에 의해 계산된 예측 데이터를 감산하여, 잔여 비디오 블록을 형성할 수도 있다. 합산기 (49) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 변환 모듈 (52) 은 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은 변환을 잔여 블록에 적용하여, 잔여 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 모듈 (52) 은 DCT 와 개념적으로 유사한, H.264 표준에 정의된 변환들과 같은, 다른 변환들을 수행할 수도 있다. 웨이블릿 변환들, 정수 변환들, 서브밴드 변환들 또는 다른 유형들의 변환들이 또한 이용될 수 있다. 어쨌든, 변환 모듈 (52) 은 변환을 잔여 블록에 적용하여, 잔여 변환 계수들의 블록을 생성한다. 이 변환은 잔여 정보를 픽셀 값 도메인으로부터 변환 도메인, 예컨대 주파수 도메인으로 변환할 수도 있다. 양자화 유닛 (54) 은 비트 레이트를 추가로 감소시키기 위해 잔여 변환 계수들을 양자화한다. 양자화 프로세스는 그 계수들의 일부 또는 모두와 연관되는 비트 깊이를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변경될 수도 있다.
양자화 이후, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 콘텐츠 적응적 가변 길이 코딩 (CAVLC), 컨텍스트 적응적 2진 산술 코딩 (CABAC), 또는 다른 엔트로피 코딩 기법을 수행할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 코딩 후, 인코딩된 비디오가 다른 디바이스로 송신되거나 또는 추후 송신 또는 취출을 위해 아카이브될 수도 있다. 컨텍스트 적응적 2진 산술 코딩의 경우, 컨텍스트는 이웃하는 블록들 및/또는 블록 사이즈들에 기초할 수도 있다.
일부의 경우, 엔트로피 인코딩 유닛 (56) 또는 비디오 인코더 (20) 의 다른 유닛은 위에서 설명한 바와 같은 엔트로피 코딩 및 인트라-예측 모드의 코딩에 더해서, 다른 코딩 기능들을 수행하도록 구성될 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 블록들 및 파티션들에 대한 코딩된 블록 패턴 (CBP) 값들을 결정하도록 구성될 수도 있다. 또한, 일부의 경우, 엔트로피 인코딩 유닛 (56) 은 매크로블록 또는 그의 파티션에서 계수들의 런 길이 코딩을 수행할 수도 있다. 특히, 엔트로피 인코딩 유닛 (56) 은 지그-재그 스캔 또는 다른 스캔 패턴을 적용하여, 매크로블록 또는 파티션에서 변환 계수들을 스캔하고, 추가적인 압축을 위해 제로들의 런들을 인코딩할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한 헤더 정보를 인코딩된 비디오 비트스트림으로의 송신에 적합한 구문 엘리먼트들로 구성할 수도 있다.
역양자화 유닛 (58) 및 역변환 모듈 (60) 은 역양자화 및 역변환을 각각 적용하여, 예컨대, 참조 블록으로서의 추후 사용을 위해, 픽셀 도메인에서 잔여 블록을 재구성한다. 모션 보상 유닛 (44) 은 잔여 블록을 참조 프레임 스토어 (64) 의 프레임들 중 하나의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한 하나 이상의 보간 필터들을 그 재구성된 잔여 블록에 적용하여, 모션 추정에 사용하기 위한 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (62) 는 재구성된 잔여 블록을 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 가산하여, 참조 프레임 스토어 (64) 에의 저장을 위해 재구성된 비디오 블록을 생성한다. 재구성된 비디오 블록은 후속 비디오 프레임에서 블록을 인터-코딩하기 위해 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 사용될 수도 있다.
이 방법에서, 비디오 인코더 (20) 는 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하고; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하고; 코드워드들의 테이블을 이용하여 인트라-예측 모드들 중 하나에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하며; CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하도록 구성된 비디오 인코더의 일 예를 나타낸다.
이 방법에서, 비디오 인코더 (20) 는 또한 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고; 현재의 블록에 대한 인코딩 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하고; 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나를 이용하여 현재의 블록을 인코딩하고; 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 하나의 코드워드 인덱스, 제 1 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하며; CABAC 프로세스를 수행함으로써 선택된 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나에 대응하는, 상기 코드워드를 인코딩하도록 구성된 비디오 인코더의 일 예를 나타낸다.
도 4 는 인코딩된 비디오 시퀀스를 디코딩하는 비디오 디코더 (30) 의 일 예를 도시하는 블록도이다. 도 4 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (70), 모션 보상 유닛 (72), 인트라 예측 모듈 (74), 역양자화 유닛 (76), 역변환 유닛 (78), 메모리 (82) 및 합산기 (80) 를 포함한다. 비디오 디코더 (30) 는 일부 예들에서, 비디오 인코더 (20) (도 2) 에 대해 설명한 인코딩 패스에 일반적으로 역인 디코딩 패스를 수행할 수도 있다. 모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들에 기초하여 예측 데이터를 발생할 수도 있다.
모션 보상 유닛 (72) 은 비트스트림으로 수신된 모션 벡터들을 이용하여, 참조 프레임 스토어 (82) 의 참조 프레임들에서 예측 블록을 식별할 수도 있다. 인트라 예측 모듈 (74) 은 비트스트림으로 수신된 인트라 예측 모드들을 이용하여 공간적으로 인접한 블록들로부터 예측 블록을 형성할 수도 있다. 특히, 비디오 디코더 (30) 는, 도 4 의 예에서, 구성 데이터 (84) 를 포함한다. 이 구성 데이터 (84) 는 구성 데이터 (84) 가 인트라-예측된 블록들에 대한 컨텍스트들 뿐만 아니라, 각각의 컨텍스트에 대해 이용할 복수의 인트라-예측 인덱스 맵핑 테이블들 중 하나, 각각의 컨텍스트에 대해 이용할 복수의 변경된 인트라-예측 모드 인덱스 (또는, 코드워드 맵핑) 테이블들 중 하나, 및 각각의 컨텍스트에 대한 가장 가능성있는 인트라-예측 모드를 기술하는 정보를 포함한다는 점에서, 도 2 의 구성 데이터 (66) 와 실질적으로 유사하다.
엔트로피 디코딩 유닛 (70) 은 비디오 데이터의 인코딩된 블록을 디코딩하는데 이용할 인트라-예측 모드를 나타내는 코드워드를 수신할 수도 있다. 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 컨텍스트를, 예컨대, 인코딩된 블록에 좌측-이웃하는 및 최상부 (top)-이웃하는 블록에 대한 인트라-예측 모드들 및/또는 인코딩된 블록에 대한 사이즈에 기초하여 결정할 수도 있다. 컨텍스트에 기초하여, 엔트로피 디코딩 유닛 (70) 은 블록을 디코딩하는데 이용할 하나 이상의 가장 가능성있는 인트라-예측 모드들 뿐만 아니라, 그 블록을 디코딩하는데 이용할 실제 인트라-예측 모드를 결정하는데 이용할 변경된 인트라-예측 모드 인덱스 테이블 및 인트라-예측 인덱스 테이블을 결정할 수도 있다.
하나의 가장 가능성있는 인트라-예측 모드를 이용할 때, 코드워드가 제 1 비트, 예컨대, '0' 을 포함하면, 엔트로피 디코딩 유닛 (70) 은 그 실제 인트라-예측 모드가 인코딩된 블록에 대한 가장 가능성있는 인트라-예측 모드라고 결정할 수도 있다. 그렇지 않으면, 엔트로피 디코딩 유닛 (70) 은 수신된 코드워드에 맵핑된 변경된 인트라-예측 모드 인덱스를, 인코딩된 블록의 컨텍스트에 대한 변경된 인트라-예측 모드 인덱스 테이블에 기초하여, 결정할 수도 있다. n 이 변경된 인트라-예측 모드 인덱스를 나타내고, m 이 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타낸다고 하자. n < m 일 때, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 인트라-예측 모드가 n 의 모드 인덱스를 갖는다고 결정할 수도 있다. 그렇지 않으면 (즉, n ≥ m 일 때), 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 인트라-예측 모드가 n+1 의 모드 인덱스를 갖는다고 결정할 수도 있다. 위에서 설명한 바와 같이, n 또는 n+1 과 동일한 모드 인덱스를 이용하여, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록을 디코딩하는데 이용할 실제 인트라-예측 모드를 나타내는 정보를 취출하고 그 모드의 표시를 인트라-예측 모듈 (74) 로 전송할 수도 있다.
하나 보다 많은 가장 가능성있는 인트라-예측 모드, 예컨대 2개의 가장 가능성있는 인트라-예측 모드들을 이용할 때, 제 1 비트가 소정의 값, 예컨대, '0' 을 가지면, 엔트로피 디코딩 유닛 (70) 은 실제 인트라-예측 모드가 인코딩된 블록에 대한 가장 가능성있는 인트라-예측 모드들 중 하나라고 결정할 수도 있다. 이러한 경우들에서, 제 2 비트 또는 비트들의 시리즈에 기초하여, 엔트로피 디코딩 유닛 (70) 은 가장 가능성있는 인트라-예측 모드들 중 어느 모드가 선택된 인트라-예측 모드인지를 결정할 수 있다. 그렇지 않으면, 제 1 비트 다음에, 엔트로피 디코딩 유닛 (70) 은 수신된 코드워드에 맵핑된 변경된 인트라-예측 모드 인덱스를 결정하고, 변경된 인트라-예측 모드 인덱스에 기초하여, 블록에 대한 선택된 인트라-예측 모드를 결정할 수도 있다. 일 예로서, n 이 변경된 인트라-예측 모드 인덱스를 나타내고, m1 및 m2 가 가장 가능성있는 인트라-예측 모드들에 대한 모드 인덱스들을 나타낸다고 하자. n < m1 이면, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 선택된 인트라-예측 모드가 n 의 모드 인덱스를 갖는다고 결정할 수도 있다. n+1 < m2 (그러나, n 은 m1 보다 작지 않음) 일 때, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 선택된 인트라-예측 모드가 n+1 의 모드 인덱스를 갖는다고 결정할 수도 있다. 그렇지 않고, n+1 이 m2 보다 작지 않을 때, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 선택된 인트라-예측 모드가 n+2 의 모드 인덱스를 갖는다고 결정할 수도 있다. 모드 인덱스를 이용하여, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록을 디코딩하는데 이용할 선택된 인트라-예측 모드를 나타내는 정보를 취출하고, 그 모드의 표시를 인트라-예측 모듈 (74) 로 전송할 수도 있다.
이와 유사하게, 인트라-예측 모드 인덱스들이 코드워드 인덱스들에 맵핑되고 하나 보다 많은 가장 가능성있는 모드가 이용되고 있고 제 1 비트 또는 비트들의 시리즈가 소정의 값, 예컨대, '0' 을 가지면, 엔트로피 디코딩 유닛 (70) 은 실제 인트라-예측 모드가 인코딩된 블록에 대한 가장 가능성있는 인트라-예측 모드들 중 하나라고 결정할 수도 있다. 이러한 경우들에서, 제 2 비트 또는 비트들의 시리즈에 기초하여, 엔트로피 디코딩 유닛 (70) 은 가장 가능성있는 인트라-예측 모드들 중 어느 모드가 선택된 인트라-예측 모드인지를 결정할 수 있다. 그렇지 않으면, 제 1 비트 또는 비트들의 시리즈 다음에, 엔트로피 디코딩 유닛 (70) 은 수신된 코드워드에 맵핑된 변경된 코드워드 인덱스를 결정하고, 변경된 코드워드 인덱스에 기초하여, 블록에 대한 선택된 인트라-예측 모드를 결정할 수도 있다. 일 예로서, Cmod 가 변경된 코드워드 인덱스를 나타내고, Cm1 및 Cm2 가 가장 가능성있는 인트라-예측 모드들에 대한 코드워드 인덱스들을 나타낸다고 하자. Cmod < Cm1 이면, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 선택된 인트라-예측 모드가 Cmod 와 동일한 코드워드 인덱스를 갖는다고 결정할 수도 있다. Cmod +1 < Cm2 (그러나, Cmod 는 Cm1 보다 작지 않음) 이면, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 선택된 인트라-예측 모드가 Cmod +1 의 코드워드 인덱스를 갖는다고 결정할 수도 있다. 그렇지 않으면, Cmod +1 이 Cm2 보다 작지 않을 때, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 선택된 인트라-예측 모드가 Cmod +2 의 코드워드 인덱스를 갖는다고 결정할 수도 있다. 코드워드 인덱스를 이용하여, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록을 디코딩하는데 이용할 실제 선택된 인트라-예측 모드를 나타내는 정보를 취출하고 그 모드의 표시를 인트라-예측 모듈 (74) 로 전송할 수도 있다.
인트라-예측 모듈 (74) 은 인트라-예측 모드의 표시를 이용하여, 인코딩된 블록을 예컨대, 이웃하는 이전에 디코딩된 블록들의 픽셀들을 이용하여 인트라-예측할 수도 있다. 블록이 인터-예측 모드 인코딩되는 예들에 있어, 모션 보상 유닛 (72) 은 인코딩된 블록에 대한 모션 보상된 예측 데이터를 취출하기 위해, 모션 벡터를 정의하는 정보를 수신할 수도 있다. 어쨌든, 모션 보상 유닛 (72) 또는 인트라-예측 모듈 (74) 은 예측 블록을 정의하는 정보를 합산기 (80) 에 제공할 수도 있다.
역양자화 유닛 (76) 은 비트스트림으로 제공되어 엔트로피 디코딩 유닛 (70) 에 의해 디코딩된 양자화된 블록 계수들을 역양자화한다, 즉 양자화 해제 (de-quantize) 한다. 역양자화 프로세스는 예컨대, H.264 디코딩 표준에 의해 정의되는 것과 같은 또는 HEVC 테스트 모델에 의해 수행되는 것과 같은, 종래의 프로세스를 포함할 수도 있다. 역양자화 프로세스는 또한 양자화의 정도를 결정하기 위해, 그리고, 이와 유사하게, 적용되어야 하는 역양자화의 정도를 결정하기 위해, 각각의 매크로블록에 대한 인코더 (20) 에 의해 계산된 양자화 파라미터 QPY 의 사용을 포함할 수도 있다.
역변환 모듈 (58) 은 픽셀 도메인에서 잔여 블록들을 생성하기 위해 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스와 같은 역변환을 변환 계수들에 적용한다. 모션 보상 유닛 (72) 은 될 수 있는 한 보간 필터들에 기초하여 보간을 수행하여 모션 보상된 블록들을 생성한다. 서브-픽셀 정밀도를 갖는 모션 추정에 이용되는 보간 필터들에 대한 식별자들이 구문 엘리먼트들에 포함될 수도 있다. 모션 보상 유닛 (72) 은 비디오 블록의 인코딩 동안 비디오 인코더 (20) 에 의해 사용된 것과 같은 보간 필터들을 이용하여, 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수도 있다. 모션 보상 유닛 (72) 은 수신된 구문 정보에 따라서 비디오 인코더 (20) 에 의해 이용된 보간 필터들을 결정하고 그 보간 필터들을 이용하여, 예측 블록들을 생성할 수도 있다.
모션 보상 유닛 (72) 은 인코딩된 비디오 시퀀스의 프레임(들)을 인코딩하는데 이용되는 블록들의 사이즈들, 인코딩된 비디오 시퀀스의 프레임 또는 슬라이스의 각각의 블록이 어떻게 파티셔닝되는 지를 기술하는 파티션 정보, 각각의 파티션이 어떻게 인코딩되는 지를 나타내는 모드들, 각각의 인터-인코딩된 블록 또는 파티션에 대한 하나 이상의 참조 프레임들 (및 참조 프레임 리스트들), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보를 결정하기 위해 구문 정보의 일부를 이용한다.
합산기 (80) 는 잔여 블록들을 모션 보상 유닛 (72) 또는 인트라-예측 모듈 (74) 에 의해 발생된 대응하는 예측 블록들과 합산하여, 디코딩된 블록들을 형성한다. 원할 경우, 블록킹 현상 아티팩트들을 제거하기 위해 디블로킹 필터가 또한 그 디코딩된 블록들을 필터링하는데 적용될 수도 있다. 디코딩된 비디오 블록들이 그후 참조 프레임 스토어 (82) 에 저장되며, 이 참조 프레임 스토어는 후속 모션 보상을 위해 참조 블록들을 제공하며 또한 (도 1 의 디스플레이 디바이스 (32) 와 같은) 디스플레이 디바이스 상에의 프리젠테이션을 위해 디코딩된 비디오를 생성한다.
이 방법에서, 도 4 의 비디오 디코더 (30) 는 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들에 대응하는 변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하고; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하고; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 인트라-예측 모드 인덱스들 중 하나를 결정하고; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 변경된 인트라-예측 모드 인덱스들 중 결정된 인덱스에 대응하는, 상기 인트라-예측 모드 인덱스를 선택하며; 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하도록 구성된 비디오 디코더의 일 예를 나타낸다.
이 방법에서, 도 4 의 비디오 디코더 (30) 는 또한 현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고; 현재의 블록에 대한 컨텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하며, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하고; 수신된 코드워드를 결정하기 위해 CABAC 프로세스를 수행하고; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 변경된 코드워드 인덱스를 결정하고; 코딩된 블록을 디코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 변경된 코드워드 인덱스, 제 1 가장 가능성있는 인트라-예측 모드, 및 제 2 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하며; 선택된 인트라-예측 모드를 이용하여 현재의 블록을 디코딩하도록 구성된 비디오 디코더의 일 예를 나타낸다.
도 5a 는 본 개시물에서 설명하는 기법들에 따라서 사용될 수도 있는 CABAC 인코딩 유닛 (50A) 의 일 예를 도시하는 블록도이다. CABAC 인코딩 유닛 (50A) 은 값 대 빈 맵핑 모듈 (51A), 컨텍스트 할당 모듈 (53A), 및 적응적 산술 코딩 모듈 (55A) 을 포함한다. 적응적 산술 코딩 모듈 (55A) 은 확률 추정 모듈 (57A) 및 코딩 엔진 (59A) 을 포함한다. CABAC 인코딩 유닛 (50A) 은 예를 들어, 도 2 의 엔트로피 인코딩 유닛 (56) 의 부분으로서 확인될 수도 있다.
비-2진값 구문 엘리먼트에 대해, 값 대 빈 맵핑 모듈 (51A) 은 구문 엘리먼트의 값을 "빈 스트링 (bin string)" 으로도 지칭되는 2진 시퀀스에 할당할 수도 있으며, 이 빈 스트링은 하나 이상의 비트들, 또는 "빈들" 을 포함할 수도 있다. 즉, 값 대 빈 맵핑 모듈 (51A) 은 값이 빈 스트링을 이용하여 표현되도록, 구문 엘리먼트의 값을 "2진화" 할 수도 있다. 임의-값 빈 스트링이 임의의 특정의 비-2진값 구문 엘리먼트에 할당될 수도 있고 그 빈 스트링이 구문 엘리먼트의 값을 반드시 2진수 형태로 표현할 필요는 없다는 점에 유의해야 한다. 위에서 설명한 테이블 2, 테이블 4, 및 테이블 6 의 예들에서, 제공된 코드워드들은 이미 2진수 형태로 존재하며, 따라서 2진화에 사용될 수도 있다. 구문 값을 2진 코드워드에 맵핑하는 것은, 본질적으로 구문 엘리먼트가 값 대 빈 맵핑 모듈 (51A) 로 전달되기 전에 구문 값을 "2진화" 한다. 그러나, 비-2진 구문 엘리먼트들에 대해, 값 대 빈 맵핑 모듈 (51A) 이 구문 엘리먼트를 2진화할 수 있다.
앞에서 언급한 바와 같이, 테이블 2, 테이블 4, 및 테이블 6 각각이 이미 2진 값들로서 표현되어 있기 때문에, 즉, 이미 2진화되어 있기 때문에, 코드워드들은 이 2진화 프로세스를 바이패스하여, 아래에서 설명하는 컨텍스트 할당 모듈 (53A) 에 의해 수행되는 CABAC 의 컨텍스트 모델링 스테이지로 진행할 수 있다. 이와 유사하게, 이용되는 인트라-예측 모드가 특정의 컨텍스트에 대한 가장 가능성있는 인트라-예측 모드인지 여부를 나타내는, 테이블 1, 테이블 3, 및 테이블 5 를 참조하여 위에서 설명한 하나 이상의 빈들이, 또한 이미 2진 값들로서 표현되어 있을 수도 있으며, 따라서 위에서 언급한 바와 동일한 이유들로 2진화될 필요가 없을 수도 있다. 다른 예들에서, 변경된 인트라-예측 모드 인덱스들, 변경된 코드워드 인덱스들, 다른 구문 엘리먼트들, 및 이용되는 인트라-예측 모드가 특정의 컨텍스트에 대한 가장 가능성있는 인트라-예측 모드인지 여부의 표시들은 2진 값으로 되어 있지 않을 수도 있으며, 따라서 2진화를 이용할 수도 있다.
컨텍스트 할당 모듈 (53A) 은 구문 엘리먼트를 나타내는데 사용되는 빈 스트링의 각각의 빈에 대한 컨텍스트를 할당한다. 예를 들어, 컨텍스트 할당 모듈 (53A) 은 상이한 컨텍스트를 빈 스트링 내 각각의 빈에 할당할 수도 있다. 이의 대안으로, 컨텍스트 할당 모듈 (53A) 은 공통 컨텍스트를 빈 스트링 중 하나 이상의 빈들에 할당할 수도 있다. 일부 다른 경우, 예를 들어, 빈이 CABAC 바이패스 모드를 이용하여 코딩될 때, 어떤 명시적인 컨텍스트도 필요로 하지 않으며 컨텍스트 할당 모듈 (53A) 은 임의의 컨텍스트를 빈에 할당해야 할 필요가 없을 수도 있다. 어쨌든, 일부 예들에서, 각각의 컨텍스트는 컨텍스트 인덱스를 이용하여 표현될 수도 있다. 즉, 빈 스트링의 각각의 빈은 각각의 빈에 할당된 특정의 컨텍스트를 나타내는 컨텍스트 인덱스와 연관될 수도 있다.
컨텍스트 할당 모듈 (53A) 은 "컨텍스트 모델링" 으로 종종 지칭되는 프로세스를 이용하여 빈 스트링의 각각의 빈에 대한 컨텍스트 할당을 수행할 수도 있다. 예를 들어, 컨텍스트 할당 모듈 (53A) 은 각각의 빈을 컨텍스트 모델에 기초하여 결정된 컨텍스트에 할당할 수도 있다. 컨텍스트 모델은 어떻게 특정의 컨텍스트가 주어진 빈에 대해 계산되는지를 결정한다. 예를 들어, 컨텍스트는 예컨대, 비디오 데이터의 이웃하는 블록들에 대한 대응하는 이전에 인코딩된 구문 엘리먼트들의 값들, 또는 빈 스트링 내 빈의 상대적인 위치와 같은, 빈에 대해 이용가능한 정보에 기초하여, 계산될 수도 있다. 예를 들어, 컨텍스트 모델은 컨텍스트를 계산하기 위해서, 현재의 블록의 최상부에 및 좌측 상에 이웃하는 비디오 데이터의 블록들에 대한 변경된 인트라-예측 모드 인덱스들 (또는, 인덱스들을 나타내는데 이용되는 코드워드들) 의 값들, 및/또는 빈 스트링 내 빈의 위치를 이용할 수도 있다.
일부 예들에서, 각각의 컨텍스트는 복수의 "컨텍스트 상태들" 을 포함할 수도 있으며, 여기서, 컨텍스트 상태들의 각각은 주어진 값, 예컨대, "0" 또는 "1" 을 포함하는, 컨텍스트가 할당되는 빈의 확률을 나타내는 특정의 확률 추정치들의 세트와 연관된다. 게다가, 각각의 컨텍스트는 임의의 주어진 시간에 특정의 현재의 컨텍스트 상태와 연관될 수도 있으며, 여기서, 현재의 컨텍스트 상태는 그 컨텍스트에 대한 가장 현재의 확률 추정치들을 나타낸다.
빈 스트링의 빈은 후속하여 적응적 산술 코딩 모듈 (55A) 에 의해 인코딩될 수도 있다. 빈을 인코딩하기 위해, 적응적 산술 코딩 모듈 (55A) 의 확률 추정 모듈 (57A) 은 코딩되는 빈에 대한 확률 추정치들을 빈에 할당되는 컨텍스트 (및 그의 현재의 상태) 에 기초하여 결정할 수 있다.
코딩 엔진 (59A) 은 빈의 값, 및 빈에 할당되는 컨텍스트 (및 그의 현재의 상태) 에 대응하는 확률 추정치들을, 빈을 인코딩할 때 적응적 산술 코딩 모듈 (55A) 에의 입력들로서, 이용할 수 있다. 확률 추정치들은 위에서 설명한 바와 같이, 그 할당된 컨텍스트를 이용하여 확률 추정 모듈 (57A) 에 의해 빈에 대해 결정된다. 앞에서 설명한 바와 같이, 이들 확률 추정치들은 일반적으로 "0" 과 동일한 값 또는 "1" 과 동일한 값을 갖는 빈의 확률에 대응한다. 확률 추정치들은 하나의 컨텍스트에 할당되는 빈들에 대해 동일할 수 있으며, 컨텍스트들의 각각의 현재의 컨텍스트 상태에 의해 반영됨에 따라, 컨텍스트들 간에 상이할 수 있다.
더욱이, 할당된 컨텍스트에 대한 확률 추정치들은 코딩 엔진 (59A) 에 의해 인코딩되는 빈의 실제 값에 기초하여 업데이트될 수 있다. 예를 들어, 특정의 빈이 "1" 의 값을 가지면, 할당된 컨텍스트에 대한 "1" 의 확률 추정치들이 증가된다. 이와 유사하게, 빈이 "0" 의 값을 가지면, 할당된 컨텍스트에 대한 "0" 의 확률 추정치들이 증가된다. 위에서 설명한 예들에서, 할당된 컨텍스트에 대한 확률 추정치들은 앞에서 설명한 바와 같이, 컨텍스트에 대한 가장 현재의 확률 추정치들을 반영하기 위해 컨텍스트 상태를 업데이트함으로써 업데이트될 수도 있다. 예를 들어, 업데이트된 컨텍스트 상태에 의해 나타내어지는 가장 현재의 확률 추정치들이 동일한 컨텍스트가 선택된 후속 빈을 인코딩하는데 이용될 수도 있다.
위에서 설명한 기법은 빈 스트링의 각각의 빈에 대해 반복될 수 있다. 일부의 경우, 바이패스 모드는 빈 스트링의 하나 이상의 빈들에 이용될 수도 있으며, 이 경우, 하나 이상의 빈들이 명시적으로 할당되는 컨텍스트 모델의 사용 없이 코딩되며, 이것은 빈들의 코딩을 간소화하고 속도를 증대시킬 수도 있다. 예를 들어, 바이패스 모드를 이용하여 코딩된 하나 이상의 빈들에 대해, 대략 균일한 (예컨대, "0" 및 "1" 의 값을 갖는 것의 "0.5") 확률 추정치들이 가정될 수도 있다. 즉, 바이패스 모드는 균일하게 분포된 빈들을 코딩하는데 사용될 수도 있다.
위에서 설명한 CABAC 프로세스는 CABAC 프로세스의 일 예를 나타내는 것으로 의도된다. 위에서 설명한 프로세스들에 대한 변형들 뿐만 아니라, 위에서 설명한 CABAC 프로세스에 대한 대안적인 CABAC 프로세스들도 본 개시물에서 설명하는 기법들의 범위 내인 것으로 고려된다. 게다가, 본 개시물의 기법들은 추가로 PIPE (probability interval partitioning entropy coding) 프로세스들 뿐만 아니라, 다른 컨텍스트 적응적 엔트로피 코딩 프로세스들과 같은, 다른 컨텍스트 적응적 엔트로피 코딩 프로세스들을 이용하는 것을 고려한다.
도 5b 은 본 개시물에서 설명하는 기법들에 따라서 사용될 수도 있는 CABAC 디코딩 유닛 (50B) 의 일 예를 도시하는 블록도이다. CABAC 디코딩 유닛 (50B) 은 빈 대 값 맵핑 모듈 (51B), 컨텍스트 할당 모듈 (53B), 및 적응적 산술 디코딩 모듈 (55B) 을 포함한다. 적응적 산술 디코딩 모듈 (55B) 은 확률 추정 모듈 (57B) 및 디코딩 엔진 (59B) 을 포함한다. CABAC 디코딩 유닛 (50B) 은 예를 들어, 도 4 의 엔트로피 디코딩 유닛 (70) 의 부분으로서 확인될 수도 있다.
CABAC 인코딩 유닛 (50A) 를 참조하여 위에서 설명한 방법과 유사하지만 역의 방법으로, CABAC 디코딩 유닛 (50B) 은 하나 이상의 빈들을 포함하는 인코딩된 빈 스트링을 디코딩할 수도 있다. 앞에서 설명한 바와 같이, 인코딩된 빈 스트링은 인코딩된 2진값 또는 비-2진값 구문 엘리먼트를 나타낼 수도 있다.
예를 들어, 컨텍스트 할당 모듈 (53B) 은 컨텍스트 모델링을 이용하여, 빈 스트링의 특정의 빈에 할당되어지는 컨텍스트를 결정할 수도 있다. 확률 추정 모듈 (57B) 은 할당된 컨텍스트 (및 그의 현재의 상태) 를 이용하여, 빈을 디코딩하는데 사용되는 확률 추정치들을 결정할 수도 있다. 더욱이, 디코딩 엔진 (59B) 은 확률 추정치들을 이용하여 빈을 디코딩할 수도 있다. 위에서 설명한 방법과 유사한 방법으로, 이 프로세스가 빈 스트링의 일부 또는 모든 빈들에 대해 반복되어, 디코딩된 빈 스트링을 초래할 수도 있다. 마지막으로, 빈 대 값 맵핑 모듈 (51B) 은 빈들 스트링의 디코딩된 빈들을 비-2진값 구문 엘리먼트에 맵핑하거나, 또는 하나 이상의 디코딩된 빈들을 "2진화 해제 (de-binariz)" 할 수도 있다.
또 다시, 위에서 설명한 CABAC 프로세스는 CABAC 프로세스의 일 예를 나타내는 것으로 의도된다. 위에서 설명한 프로세스들에 대한 변형들 뿐만 아니라, 위에서 설명한 CABAC 프로세스에 대한 대안적인 CABAC 프로세스들도 본 개시물에서 설명하는 기법들의 범위 내인 것으로 고려된다. 게다가, 본 개시물의 기법들은 추가로 PIPE 프로세스들 뿐만 아니라, 다른 컨텍스트 적응적 엔트로피 코딩 프로세스들과 같은 다른 컨텍스트 적응적 엔트로피 코딩 프로세스들을 이용하는 것을 고려한다.
도 6 은 비디오 데이터의 블록을 인트라-예측 인코딩하는 예시적인 방법을 도시하는 플로우차트이다. 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현되든 간에, 도 6 의 기법들은 일반적으로 임의의 프로세싱 유닛 또는 프로세서에 의해 수행될 수도 있으며, 소프트웨어 또는 펌웨어로 구현될 때, 소프트웨어 또는 펌웨어에 대한 명령들을 실행하기 위해 대응하는 하드웨어가 제공될 수도 있다. 예의 목적들을 위해, 도 6 의 기법들은 비디오 인코더 (20) (도 1 및 도 2) 에 대해 설명되지만, 다른 디바이스들이 유사한 기법들을 수행하도록 구성될 수도 있는 것으로 이해되어야 한다. 더욱이, 본 개시물의 기법들로부터 일탈함이 없이, 도 6 에 도시된 단계들은 상이한 순서로 또는 병렬로 수행될 수도 있으며, 추가적인 단계들이 추가될 수도 있으며 소정의 단계들은 생략될 수도 있다.
먼저, 비디오 인코더 (20) 는 비디오 데이터의 현재의 블록에 대한 인트라-예측 모드를 선택할 수도 있다 (100). 예를 들어, 인트라-예측 모듈 (46) 은 블록을 인코딩하는데 이용되는 여러 인트라-예측 모드들에 대한 레이트-왜곡 값들을 계산하고, 그후 테스트된 인트라-예측 모드들 중 최상의 레이트-왜곡 값을 나타내는 인트라-예측 모드를 선택할 수도 있다. 인트라-예측 모듈 (46) 은 그후 선택된 인트라-예측 모드를 이용하여 블록을 인코딩할 수도 있다 (102). 즉, 인트라-예측 모듈 (46) 은 선택된 인트라-예측 모드에 기초하여 블록에 대한 예측 블록을 계산할 수도 있다. 비디오 인코더 (20) 는 추가로 예측 블록과 원래 블록 사이의 차이를 계산하여 잔여 블록을 생성할 수도 있으며, 그것을 비디오 인코더 (20) 는 그후 변환하고 양자화할 수도 있다.
비디오 인코더 (20) 는 추가로 선택된 인트라-예측 모드를 나타내는 정보를 인코딩할 수도 있다. 즉, 인트라-예측 모듈 (46) 은 선택된 인트라-예측 모드의 표시를 엔트로피 인코딩 유닛 (56) 으로 전송할 수도 있다. 엔트로피 인코딩 유닛 (56), 또는 비디오 인코더 (20) 의 다른 유닛은 블록에 대한 컨텍스트를 결정할 수도 있다 (104). 블록에 대한 컨텍스트는 블록의 사이즈 및/또는 최상부-이웃하는 블록 및/또는 좌측-이웃하는 블록과 같은 이웃하는 블록들의 인트라-예측 모드들을 포함할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한 블록에 대한 인코딩 컨텍스트에 기초하여 인트라-예측 모드 표시자를 인코딩하는데 이용할 변경된 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다 (106). 엔트로피 인코딩 유닛 (56) 은 일부 예들에서, 인트라-예측 인덱스 테이블을 추가로 선택할 수도 있지만, 다른 예들에서, 인트라-예측 모드 인덱스들은 고정될 수도 있다. 엔트로피 인코딩 유닛 (56) 은 추가로 블록의 컨텍스트에서 블록에 대한 하나 이상의 가장 가능성있는 인트라-예측 모드들을 결정할 수도 있다 (108).
엔트로피 인코딩 유닛 (56) 은 그후 가장 가능성있는 인트라-예측 모드(들) 에 기초하여, 변경된 인트라-예측 모드 인덱스 테이블로부터 인트라-예측 모드에 대한 코드워드를 선택할 수도 있다 (110). 예를 들어, 아래에서 더 자세히 설명하는 바와 같이, 엔트로피 인코딩 유닛 (56) 은 단일 비트 또는 비트들의 시리즈 (예컨대, 단일 비트 또는 2 비트) 를 이용하여, 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드 중 하나를 포함한다고 시그널링할 수도 있다. 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드들 중 하나가 아니면, 엔트로피 인코딩 유닛 (56) 은 선택된 인트라-예측 모드를 시그널링하기 위해 코드워드를 선택할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 그후 그 코딩된 블록 (예컨대, 인코딩된 양자화된 변환 계수들) 을 비트스트림으로 출력할 수도 있으며, CABAC 프로세스를 이용하여, 그 선택된 코드워드를 비트스트림으로 출력할 수도 있다 (112).
도 7a 는 코딩된 블록에 대한 인트라-예측 모드를 나타내는 코드워드를 선택하는 예시적인 방법을 도시하는 플로우차트이다. 또, 도 7a 의 기법들은 임의의 적합한 프로세서로 구현될 수도 있지만, 예의 목적들을 위해 도 7a 의 기법들은 비디오 인코더 (20) 의 예에 대해 설명된다. 도 7a 는 일반적으로 도 6 의 단계 (110) 에 대한 추가적인 세부 사항들을 제공한다. 본 개시물의 기법들로부터 일탈함이 없이, 도 7a 에 도시된 방법의 단계들은 상이한 순서로 또는 병렬로 수행될 수도 있으며, 추가적인 단계들이 추가될 수도 있으며 소정의 단계들은 생략될 수도 있다.
비디오 인코더 (20) 는 위에서 설명한 바와 같이, 현재의 블록에 대한 코딩 컨텍스트를 결정할 수도 있다 (120). 이와 유사하게, 비디오 인코더 (20) 는 블록에 대한 코딩 컨텍스트에 기초하여, 변경된 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다 (122A). 비디오 인코더 (20) 의 구성 데이터는 블록의 컨텍스트에 대한, 변경된 인트라-예측 모드 인덱스 테이블, 그리고, 일부 예들에서, 인트라-예측 모드 인덱스 테이블의 표시를 제공할 수도 있다. 더욱이, 비디오 인코더 (20) 는 블록에 대한 코딩 컨텍스트에 기초하여 블록을 인코딩하는데 이용할 가장 가능성있는 인트라-예측 모드를 결정할 수도 있다 (124A). 또, 비디오 인코더 (20) 의 구성 데이터는 블록의 컨텍스트에 대한 가장 가능성있는 인트라-예측 모드의 표시를 제공할 수도 있다.
위에서 설명한 바와 같이, 비디오 인코더 (20) 는 블록을 실제로 인코딩하는데 이용할, 블록에 대한 인트라-예측 모드를 선택할 수도 있다 (126A). 비디오 인코더 (20) 는 블록의 컨텍스트에 기초하여, 선택된 인트라-예측 모드가 블록에 대한 가장 가능성있는 인트라-예측 모드와 동일한 지 여부를 결정할 수도 있다 (128A). 선택된 모드가 가장 가능성있는 모드이면 (128A 의 "예" 분기), 비디오 인코더 (20) 는 가장 가능성있는 모드에 기초하여, 단일 비트, 예컨대, '0' 또는 '1' 를 이용하여, 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다 (130A).
선택된 모드가 가장 가능성있는 모드가 아니면 (128A 의 "아니오" 분기), 비디오 인코더 (20) 는 예컨대, 인트라-예측 모드 인덱스 테이블로부터, 선택된 인트라-예측 모드에 대한 모드 인덱스를 결정할 수도 있다 (122A). 일부 예들에서, 모드 인덱스들은 컨텍스트에 무관하게 글로벌 값들 (global values) 일 수도 있지만, 다른 예들에서, 비디오 인코더 (20) 의 구성 데이터는 각각의 컨텍스트를 복수의 인트라-예측 모드 인덱스 테이블들 중 하나에 맵핑할 수도 있다. 비디오 인코더 (20) 는 추가로 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 결정할 수도 있다. 비디오 인코더 (20) 는 그후 선택된 인트라-예측 모드에 대한 모드 인덱스가 블록에 대한 컨텍스트에서 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작은지 여부를 결정할 수도 있다 (134A).
선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작을 때 (134A 의 "예" 분기), 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스에 대응하는 블록의 컨텍스트에 대한 변경된 인트라-예측 모드 인덱스 테이블로부터 코드워드를 결정할 수도 있다. 좀더 자세하게 설명하면, 비디오 인코더 (20) 는 CABAC 프로세스를 이용하여, 선택된 인트라-예측 모드에 대한 모드 인덱스와 동일한 변경된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 출력할 수도 있다 (136A).
한편, 선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 클 때 (134A 의 "아니오" 분기), 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스보다 1이 더 작은 것에 대응하는 블록의 컨텍스트에 대한 변경된 인트라-예측 모드 인덱스 테이블로부터 코드워드를 결정할 수도 있다. 좀더 자세하게 설명하면, 비디오 인코더 (20) 는 CABAC 프로세스를 이용하여, 선택된 인트라-예측 모드에 대한 모드 인덱스보다 1이 더 작은 것과 동일한 변경된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 출력할 수도 있다 (138A).
가장 가능성있는 인트라-예측 모드가 별개로 시그널링되기 때문에, 변경된 인트라-예측 모드 인덱스 테이블이 추가적인 코드워드를 가장 가능성있는 인트라-예측 모드에 대한 인덱스에 맵핑할 필요가 없다. 따라서, 이 방법으로, 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스와 동일한 변경된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 1이 더 큰 모드 인덱스에 맵핑될 수도 있다. 따라서, K 개의 인트라-예측 모드들이 그 블록에 이용가능하면, 변경된 인트라-예측 모드 인덱스 테이블은 가장 가능성있는 인트라-예측 모드가 블록을 인코딩하는데 이용되는지 여부를 표시하는 단일-비트 코드워드 대신, 단지 K-1 개의 변경된 인트라-예측 모드 인덱스들에 대한 코드워드들만을 제공하는 것을 필요로 한다.
도 7b 는 코딩된 블록에 대한 인트라-예측 모드를 나타내는 코드워드를 선택하는 예시적인 방법을 도시하는 플로우차트이다. 또, 도 7b 의 기법들은 임의의 적합한 프로세서에서 구현될 수도 있지만, 도 7b 의 기법들은 예의 목적들을 위해 비디오 인코더 (20) 의 예에 대해서 설명한다. 도 7b 는 일반적으로 2개의 가장 가능성있는 모드들이 이용되는 예들에 대한 도 6 의 단계 (110) 에 대해 추가적인 세부 사항들을 제공한다. 본 개시물의 기법들로부터 일탈함이 없이, 도 7b 에 도시된 방법의 단계들은 상이한 순서로 또는 병렬로 수행될 수도 있으며, 추가적인 단계들이 추가될 수도 있으며 소정의 단계들은 생략될 수도 있다.
비디오 인코더 (20) 는 위에서 설명한 바와 같이, 현재의 블록에 대한 코딩 컨텍스트를 결정할 수도 있다 (120B). 이와 유사하게, 비디오 인코더 (20) 는 블록에 대한 코딩 컨텍스트에 기초하여, 변경된 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다 (122BA). 비디오 인코더 (20) 의 구성 데이터는 블록의 컨텍스트에 대한, 변경된 인트라-예측 모드 인덱스 테이블, 그리고, 일부 예들에서, 인트라-예측 모드 인덱스 테이블의 표시를 제공할 수도 있다. 더욱이, 비디오 인코더 (20) 는 블록에 대한 코딩 컨텍스트에 기초하여, 블록을 인코딩하는데 이용할 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정할 수도 있다 (124B). 또, 비디오 인코더 (20) 의 구성 데이터는 블록의 컨텍스트에 대한 가장 가능성있는 인트라-예측 모드들의 표시를 제공할 수도 있다.
위에서 설명한 바와 같이, 비디오 인코더 (20) 는 블록을 실제로 인코딩하는데 이용할, 블록에 대한 인트라-예측 모드를 선택할 수도 있다 (126B). 비디오 인코더 (20) 는 선택된 인트라-예측 모드가 블록에 대한 가장 가능성있는 인트라-예측 모드들 중 하나와 동일한지 여부를, 블록의 컨텍스트에 기초하여, 결정할 수도 있다 (128B). 선택된 모드가 가장 가능성있는 모드이면 (128B 의 "예" 분기), 비디오 인코더 (20) 는 가장 가능성있는 모드들에 기초하여, 블록을 인코딩하는데 이용되는 인트라-예측 모드의 표시를, 실제 모드가 가장 가능성있는 모드들 중 하나임을 나타내는 제 1 비트 및 가장 가능성있는 모드들 중 어느 모드가 실제 모드들인지를 나타내는 제 2 비트를 포함한 2개의 비트들과 같은 비트들의 초기 시리즈를 이용하여, 인코딩할 수도 있다 (130B).
선택된 모드가 가장 가능성있는 모드들 중 하나가 아니면 (128B 의 "아니오" 분기), 비디오 인코더 (20) 는 예컨대, 인트라-예측 모드 인덱스 테이블로부터, 선택된 인트라-예측 모드에 대한 모드 인덱스를 결정할 수도 있다 (122B). 일부 예들에서, 모드 인덱스들은 컨텍스트에 무관하게 글로벌 값들일 수도 있지만, 다른 예들에서, 비디오 인코더 (20) 의 구성 데이터는 각각의 컨텍스트를 복수의 인트라-예측 모드 인덱스 테이블들 중 하나에 맵핑할 수도 있다. 비디오 인코더 (20) 는 추가로 가장 가능성있는 인트라-예측 모드들에 대한 모드 인덱스들을 결정할 수도 있다. 비디오 인코더 (20) 는 그후 그 선택된 인트라-예측 모드에 대한 모드 인덱스가 블록에 대한 컨텍스트에서 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스들보다 작은지 여부를 결정할 수도 있다 (134B).
선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 양자에 대한 모드 인덱스들보다 작을 때 (134B 의 "예" 분기), 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스에 대응하는 블록의 컨텍스트에 대한 변경된 인트라-예측 모드 인덱스 테이블로부터 코드워드를 결정할 수도 있다. 좀더 자세하게 설명하면, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스와 동일한 변경된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 이용할 수도 있다 (136B).
한편, 선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 양자에 대한 모드 인덱스들보다 작지 않을 때 (134B 의 "아니오" 분기), 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스가 블록에 대한 컨텍스트에서 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스들 이상인지 여부를 결정할 수도 있다 (138B). 선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 양자에 대한 모드 인덱스들 이상일 때 (138B 의 "예" 분기), 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스에 대응하는 블록의 컨텍스트에 대한 변경된 인트라-예측 모드 인덱스 테이블로부터 코드워드를 결정할 수도 있다. 좀더 자세하게 설명하면, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스보다 2가 더 작은 것에 대응하는 블록의 컨텍스트에 대한 변경된 인트라-예측 모드 인덱스 테이블로부터 코드워드를 결정할 수도 있다. 좀더 자세하게 설명하면, 비디오 인코더 (20) 는 CABAC 프로세스를 이용하여, 선택된 인트라-예측 모드에 대한 모드 인덱스보다 2가 더 작은 것과 동일한 변경된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 출력할 수도 있다 (140B).
선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 양자에 대한 모드 인덱스들보다 작지 않을 때 (134B 의 "아니오" 분기), 그리고, 선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 양자에 대한 모드 인덱스들 이상이 아닐 때 (138B 의 "아니오" 분기), 선택된 인트라-예측 모드에 대한 모드 인덱스는 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스 이상이지만, 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작다 (138B 의 "아니오" 분기). 선택된 인트라-예측 모드에 대한 모드 인덱스가 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스 이상이지만 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작을 때, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스에 대응하는 블록의 컨텍스트에 대한 변경된 인트라-예측 모드 인덱스 테이블로부터 코드워드를 결정할 수도 있다. 좀더 자세하게 설명하면, 비디오 인코더 (20) 는 CABAC 프로세스를 이용하여, 선택된 인트라-예측 모드에 대한 모드 인덱스보다 1이 더 작은 것과 동일한 변경된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 출력할 수도 있다 (142B).
제 1 비트 및 제 2 비트가 가장 가능성있는 모드들을 위에서 설명한 방법으로 시그널링하는데 이용되기 때문에, 변경된 인트라-예측 모드 인덱스 테이블은 추가적인 코드워드들을 가장 가능성있는 인트라-예측 모드들에 대한 인덱스에 맵핑할 필요가 없다. 따라서, 그 블록에 K 개의 인트라-예측 모드들이 이용가능하면, 변경된 인트라-예측 모드 인덱스 테이블은 K-2 개의 변경된 인트라-예측 모드 인덱스들에 대한 코드워드들을 단지 제공하는 것을 필요로 한다.
도 8 은 비디오 데이터의 블록을 인트라-예측 디코딩하는 예시적인 방법을 도시하는 플로우차트이다. 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현되든 간에, 도 8 의 기법들은 일반적으로 임의의 프로세싱 유닛 또는 프로세서에 의해 수행될 수도 있으며, 소프트웨어 또는 펌웨어로 구현될 때, 대응하는 하드웨어는 소프트웨어 또는 펌웨어에 대한 명령들을 실행하기 위해 제공될 수도 있다. 예의 목적들을 위해, 도 8 의 기법들은 비디오 디코더 (30) (도 1 및 도 4) 에 대해 설명되지만, 다른 디바이스들이 유사한 기법들을 수행하도록 구성될 수도 있는 것으로 이해되어야 한다. 더욱이, 본 개시물의 기법들로부터 일탈함이 없이, 도 8 에 도시된 단계들은 상이한 순서로 또는 병렬로 수행될 수도 있으며, 추가적인 단계들이 추가될 수도 있으며 소정의 단계들은 생략될 수도 있다.
비디오 디코더 (30) 는 인트라-예측 모드 코딩된 블록에 대한 코드워드를 CABAC 프로세스를 이용하여 결정할 수도 있다 (150). 코드워드는 일반적으로 블록을 인코딩하는데 이용되는 인트라-예측 모드, 그리고, 유사하게, 블록을 디코딩하는데 이용되는 인트라-예측 모드를 나타낼 수도 있다. 비디오 디코더 (30) 는 예컨대, 블록의 사이즈 및/또는 이웃하는 블록들, 예컨대 상부-이웃하는 블록 및/또는 좌측-이웃하는 블록의 인트라-예측 모드들에 기초하여, 비디오 인코더 (20) 의 방법과 유사한 방법으로 블록에 대한 코딩 컨텍스트를 결정할 수도 있다 (152).
비디오 디코더 (30) 는 추가로 블록에 대한 변경된 인트라-예측 모드 인덱스 테이블을 블록에 대한 결정된 코딩 컨텍스트에 기초하여 선택할 수도 있다 (154). 비디오 디코더 (30) 는 또한, 일부 예들에서, 컨텍스트에 기초하여 인트라-예측 모드 인덱스 테이블을 결정할 수도 있지만, 다른 예들에서, 인트라-예측 모드 인덱스들은 고정되고 모든 컨텍스트들에 글로벌하게 적용될 수도 있다. 비디오 디코더 (30) 는 추가로 블록의 컨텍스트에 대한 하나 이상의 가장 가능성있는 인트라-예측 모드(들)를 결정할 수도 있다 (156).
비디오 디코더 (30) 는 그후 선택된 코드워드 테이블, 가장 가능성있는 인트라-예측 모드(들), 및 수신된 코드워드를 이용하여, 블록을 디코딩하는데 이용할 실제 인트라-예측 모드를 결정할 수도 있다 (158). 예를 들어, 코드워드가 선택된 모드가 가장 가능성있는 모드인지를 나타내는 단일 비트 또는 비트들의 시리즈를 포함하면, 비디오 디코더 (30) 는 단일 비트 또는 비트들의 시리즈를 이용하여, 가장 가능성있는 인트라-예측 모드(들)가 블록을 디코딩하는데 이용되어지는지를 결정할 수도 있다. 선택된 모드가 가장 가능성있는 모드가 아닌 것으로 결정되면, 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스 테이블을 이용하여, 코드워드에 기초하여 변경된 인트라-예측 모드 인덱스를 결정할 수도 있으며, 그리고, 변경된 인트라-예측 모드 인덱스에 기초하여, 비디오 디코더 (30) 는 블록을 인코딩하는데 이용되는 인트라-예측 모드를 결정할 수도 있다.
비디오 디코더 (30) 는 결정된 인트라-예측 모드를 이용하여, 블록을 디코딩할 수도 있다 (160). 예를 들어, 비디오 디코더 (30) 는 결정된 인트라-예측 모드를 이용하여 블록에 대한 예측 블록을 계산할 수도 있다. 비디오 디코더 (30) 는 또한 코딩된 양자화된 변환 계수들을 수신할 수도 있으며, 그 양자화된 변환 계수들을 비디오 디코더 (30) 는 디코딩하고, 역 양자화하고, 그리고 역변환하여, 블록에 대한 잔여 블록을 재구성할 수도 있다. 비디오 디코더 (30) 는 그후 예측 블록 및 잔여 블록을 가산하여, 디코딩된 블록을 형성할 수도 있다. 비디오 디코더 (30) 는 디코딩된 블록을 출력할 수도 있는데 (162), 디코딩된 비디오 블록을 디스플레이를 위해서 디스플레이 디바이스로 (예컨대, 프레임 버퍼를 통해서) 전송하는 것, 및 예컨대, 시간적으로 별개의 프레임들 또는 슬라이스들에서 비디오 데이터의 후속 블록들을 디코딩할 때 참조 블록으로서의 사용을 위해 참조 프레임 버퍼에 디코딩된 블록의 복사본을 저장하는 것 중 어느 하나 또는 양자를 포함할 수도 있다.
도 9a 는 코딩된 블록에 대한 인트라-예측 모드를 나타내는 수신된 코드워드를 이용하여 블록에 대한 인트라-예측 모드를 결정하는 예시적인 방법을 도시하는 플로우차트이다. 또, 도 9a 의 기법들은 임의의 적합한 프로세서에서 구현될 수도 있지만, 도 9a 의 기법들은 예 및 설명의 목적을 위해 비디오 디코더 (30) 의 예에 대해 설명된다. 도 9a 는 일반적으로 도 8 의 단계 (160) 에 대해 추가적인 세부 사항들을 제공한다. 본 개시물의 기법들로부터 일탈함이 없이, 도 9a 에 도시된 방법의 단계들은 상이한 순서로 또는 병렬로 수행될 수도 있으며, 추가적인 단계들이 추가될 수도 있으며 소정의 단계들은 생략될 수도 있다.
비디오 디코더 (30) 는 CABAC 프로세스를 이용하여 인트라-코딩된 블록에 대한 코드워드를 결정할 수도 있다 (170A). 위에서 설명한 바와 같이, 비디오 디코더 (30) 는 예컨대, 블록의 사이즈 및/또는 이웃하는 블록들의 인트라-예측 코딩 모드들에 기초하여, 블록에 대한 코딩 컨텍스트를 결정할 수도 있다 (172A). 결정된 컨텍스트에 기초하여, 비디오 디코더 (30) 는 블록에 대한 변경된 인트라-예측 모드 인덱스 테이블을 선택하고 (174A), 블록에 대한 가장 가능성있는 인트라-예측 모드를 결정할 수도 있다 (176A). 일부 예들에서, 비디오 디코더 (30) 는 추가로 그 결정된 컨텍스트에 기초하여 블록에 대한 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다.
비디오 디코더 (30) 는 선택된 인트라-예측 모드가 가장 가능성있는 모드라고 코드워드의 제 1-비트가 나타내는지 여부를 결정할 수도 있다. 선택된 인트라-예측 모드가 가장 가능성있는 모드이면 (178A 의 "예" 분기), 비디오 디코더 (30) 는 가장 가능성있는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (180A). 한편, 선택된 인트라-예측 모드가 가장 가능성있는 모드 이외의 인트라-예측 모드이면 (178A 의 "아니오" 분기), 비디오 디코더 (30) 는 그 선택된 변경된 인트라-예측 모드 인덱스 테이블로부터의 코드워드에 기초하여 변경된 인트라-예측 모드 (MIPM) 인덱스를 결정할 수도 있다 (182A).
비디오 디코더 (30) 는 그후 그 변경된 인트라-예측 모드 인덱스가 블록의 컨텍스트에 대한 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작은지 여부를 결정할 수도 있다 (184A). 변경된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면 (184A 의 "예" 분기), 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스와 동일한 모드 인덱스를 갖는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (186A). 한편, 변경된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스 이상이면 (184A 의 "아니오" 분기), 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스보다 1이 더 큰 것과 동일한 모드 인덱스를 갖는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (188A).
도 9b 는 코딩된 블록에 대한 인트라-예측 모드를 나타내는 수신된 코드워드를 이용하여 블록에 대한 인트라-예측 모드를 결정하는 예시적인 방법을 도시하는 플로우차트이다. 또, 도 9b 의 기법들은 임의의 적합한 프로세서에서 구현될 수도 있지만, 도 9b 의 기법들은 예 및 설명의 목적들을 위해 비디오 디코더 (30) 의 예에 대해 설명된다. 도 9b 는 일반적으로 도 8 의 단계 (160) 에 대해, 하나 보다 많은 가장 가능성있는 모드가 사용되는 경우에, 추가적인 세부 사항들을 제공한다. 본 개시물의 기법들로부터 일탈함이 없이, 도 9b 에 도시된 방법의 단계들은 상이한 순서로 또는 병렬로 수행될 수도 있으며, 추가적인 단계들이 추가될 수도 있으며 소정의 단계들은 생략될 수도 있다.
비디오 디코더 (30) 는 CABAC 프로세스를 이용하여 인트라-코딩된 블록에 대한 코드워드를 결정할 수도 있다 (170B). 위에서 설명한 바와 같이, 비디오 디코더 (30) 는 예컨대, 블록의 사이즈 및/또는 이웃하는 블록들의 인트라-예측 코딩 모드들에 기초하여, 블록에 대한 코딩 컨텍스트를 결정할 수도 있다 (172B). 결정된 컨텍스트에 기초하여, 비디오 디코더 (30) 는 블록에 대한 변경된 인트라-예측 모드 인덱스 테이블을 선택하고 (174B), 블록에 대한 가장 가능성있는 인트라-예측 모드들을 결정할 수도 있다 (176B). 일부 예들에서, 비디오 디코더 (30) 는 추가로 그 결정된 컨텍스트에 기초하여 블록에 대한 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다.
비디오 디코더 (30) 는 선택된 인트라-예측 모드가 가장 가능성있는 모드들 중 하나라고 코드워드의 제 1 비트 또는 비트들의 시리즈가 나타내는지 여부를 결정할 수도 있다. 선택된 모드가 가장 가능성있는 모드들 중 하나이면 (178B 의 "예" 분기), 비디오 디코더 (30) 는 가장 가능성있는 인트라-예측 모드들을 이용하여 블록을 디코딩할 수도 있다 (180B). 비디오 디코더 (30) 는 예를 들어, 가장 가능성있는 모드들 중 어느 모드가 선택된 모드인지를 나타내는 제 2 비트 또는 비트들의 시리즈를 수신할 수도 있다. 한편, 선택된 모드가 가장 가능성있는 모드들 중 하나가 아니라고 제 1 비트 또는 비트들의 시리즈가 나타내면 (178B 의 "아니오" 분기), 비디오 디코더 (30) 는 그 선택된 변경된 인트라-예측 모드 인덱스 테이블로부터의 코드워드에 기초하여 그 변경된 인트라-예측 모드 (MIPM) 인덱스를 결정할 수도 있다 (182B).
비디오 디코더 (30) 는 그후 그 변경된 인트라-예측 모드 인덱스가 블록의 컨텍스트에 대한 제 1 가장 가능성있는 인트라-예측 모드들에 대한 모드 인덱스보다 작은 지 여부를 결정할 수도 있다 (184B). 앞에서 설명한 바와 같이, 제 1 가장 가능성있는 모드에 대한 모드 인덱스가 제 2 가장 가능성있는 모드에 대한 모드 인덱스보다 낮은 것으로 가정된다. 따라서, 변경된 인트라-예측 모드 인덱스가 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 낮으면, 또한 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 낮다. 변경된 인트라-예측 모드 인덱스가 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면 (184B 의 "예" 분기), 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스와 동일한 모드 인덱스를 갖는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (186B). 변경된 인트라-예측 모드 인덱스가 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작지 않으면 (184B 의 "아니오" 분기), 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스 + 1 이 블록의 컨텍스트에 대한 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작은 지 여부를 결정할 수도 있다 (188B). 변경된 인트라-예측 모드 인덱스 + 1 이 블록의 컨텍스트에 대한 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작으면 (188B 의 "예" 분기), 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스보다 1이 더 큰 것과 동일한 모드 인덱스를 갖는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (190B).
변경된 인트라-예측 모드 인덱스가 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 작지 않으면 (188B 의 "아니오" 분기), 비디오 디코더 (30) 는 변경된 인트라-예측 모드 인덱스보다 2가 더 큰 것과 동일한 모드 인덱스를 갖는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (192B).
도 6, 도 7a, 도 7b, 도 8, 도 9a, 및 도 9b 의 방법은 변경된 인트라-예측 모드 인덱스들을 모드 인덱스들에 맵핑하는 것에 관해 나타내었지만, 이 방법들의 근본적인 기법들은 또한 테이블 5 및 테이블 6 의 예들과 관련하여 위에서 설명한 방법으로, 변경된 코드워드 인덱스들을 코드워드 인덱스들에 맵핑하는데 사용될 수도 있으며, 반대의 경우도 마찬가지인 것으로 이해되어야 한다.
도 10 은 구성 데이터 (250) 의 예시적인 세트를 도시하는 개념도이며, 인트라-예측 모드 인덱스 테이블 (200) 과, 변경된 인트라-예측 모드 인덱스 테이블 (210) 과, 컨텍스트 데이터 (220) 사이의 관계들을 나타낸다. 구성 데이터 (250) 는 일반적으로 구성 데이터 (66) (도 2) 또는 구성 데이터 (84) (도 4) 에 대응할 수도 있다. 더욱이, 컨텍스트들, 테이블들, 및 가장 가능성있는 인트라-예측 모드들을 기술하는 구성 데이터는 주어진 비트스트림에 대해 인코더 및 디코더 양자에서 동일해야 한다.
도 10 의 예에서, 인트라-예측 모드 인덱스 테이블 (200) 은 인트라-예측 모드들 (2021 - 202K) (인트라-예측 모드들 (202)) 및 대응하는 인덱스들 (2041 - 204K) 의 세트를 포함한다. 단지 하나의 인트라-예측 모드 인덱스 테이블 (200) 이 설명 및 예의 목적을 위해 도시되지만, 구성 데이터 (250) 는 인트라-예측 모드 인덱스 테이블 (200) 과 유사한 복수의 인트라-예측 모드 인덱스 테이블들을 포함할 수도 있는 것으로 이해되어야 한다. 예컨대, 테이블 5 에 대해 위에서 설명한 바와 같이, 블록에 이용가능한 인트라-예측 모드들의 개수가 블록의 사이즈에 의존할 수도 있기 때문에, 인트라-예측 모드 인덱스 테이블들은 모두 동일한 사이즈를 가질 필요가 없다. 인덱스들 (204) 은 또한 인트라-예측 모드 인덱스들로, 또는 간단히 모드 인덱스들로 지칭될 수도 있다.
변경된 인트라-예측 모드 인덱스 테이블 (210) 은 인덱스들 (2121 - 212K-1) 뿐만 아니라, 코드워드들 (2141 - 214K-1) 을 포함한다. 이 방법에서, 변경된 인트라-예측 모드 인덱스 테이블 (210) 은 인트라 모드 인덱스 테이블 (200) (K) 보다 하나 더 적은 엔트리들 (K-1) 을 포함한다. 위에서 설명한 바와 같이, 가장 가능성있는 인트라-예측 모드가 코드워드들 (214) 중 하나 대신, 단일 비트 또는 비트들의 시리즈를 이용하여 나타내어질 수도 있다. 따라서, 가장 가능성있는 인트라 예측 모드 이외의 인트라-예측 모드들이 코드워드들 (214) 중 하나로 표현될 수도 있다. 또, 단지 하나의 변경된 인트라-예측 모드 인덱스 테이블이 도 10 의 예에 도시되지만, 구성 데이터 (250) 는 복수의 변경된 인트라-예측 모드 인덱스 테이블들을 포함할 수도 있는 것으로 이해되어야 한다. 더욱이, 변경된 인트라-예측 모드 인덱스 테이블들의 개수는 인트라 모드 인덱스 테이블들의 개수와 반드시 동일할 필요는 없다. 일부 예들에서, 동일한 모드 인덱스 테이블이 하나 이상의 인트라 모드 인덱스 테이블들에 대응할 수 있도록, 인트라 모드 인덱스 테이블들과 변경된 인트라-예측 모드 인덱스 테이블들 사이에 다-대-일 관계가 존재할 수도 있다.
더욱이, 구성 데이터 (250) 는 컨텍스트 데이터 (220) 를 포함하며, 이 컨텍스트 데이트는 컨텍스트 엔트리 (222A) 와 유사한 복수의 컨텍스트 엔트리들을 포함한다. 이 예에서, 컨텍스트 엔트리 (222A) 는 가장 가능성있는 인트라 모드 표시자 (224A), 인트라-예측 모드 인덱스 테이블 식별자 (226A), 변경된 인트라-예측 모드 인덱스 테이블 식별자 (228A), 및 블록 컨텍스트 데이터 (230A) 를 포함한다. 블록 컨텍스트 데이터 (230A) 는 컨텍스트 엔트리 (222A) 가 적용되는 블록들을 나타내는 정보를 포함할 수도 있다. 예를 들어, 블록 컨텍스트 데이터 (230A) 는 컨텍스트 엔트리 (222A) 가 적용되는 블록들의 하나 이상의 사이즈들 뿐만 아니라, 컨텍스트 엔트리 (222A) 가 적용되는 블록들의 이웃하는 블록들에 대한 인트라-예측 모드들을 기술하는 정보를 포함할 수도 있다. 일 예로서, 컨텍스트 엔트리들 (222) 의 하나에 대한 블록 컨텍스트 데이터가 컨텍스트 엔트리가 16 × 16 픽셀들을 갖는 블록들에 대응한다고 나타낼 수도 있으며, 이때, 상부-이웃하는 블록이 수평 인트라-예측 모드를 이용하여 인코딩되고 좌측-이웃하는 블록이 또한 수평 인트라-예측 모드를 이용하여 인코딩된다.
가장 가능성있는 인트라 모드 표시자 (224A) 가, 이 예에서, 인트라-예측 모드 (202M) 를 나타낸다. 일부 예들에서, 구성 데이터 (250) 는 블록이 가장 가능성있는 인트라-예측 모드를 이용하여 인코딩된다고 나타내는데 사용할 단일 비트 코드워드를 특정할 수도 있다. 따라서, 이 예에서, 블록 컨텍스트 데이터 (230A) 에 대응하는 컨텍스트들을 갖는 블록들에 대해, 가장 가능성있는 인트라-예측 모드는 인트라-예측 모드 (202M) 이다. 인트라-예측 모드 (202M) 가 컨텍스트 엔트리 (222A) 에 대한 가장 가능성있는 인트라-예측 모드이기 때문에, 인트라-예측 모드 (202M) 는 변경된 인트라-예측 모드 인덱스 테이블 (210) 에서의 코드워드들 (214) 중 하나에 맵핑될 필요가 없으며, 따라서, 인트라 모드 인덱스 테이블 (200) 의 인트라-예측 모드들 (202) 보다 변경된 인트라-예측 모드 인덱스 테이블 (210) 에 하나 더 작은 코드워드가 존재할 수도 있다.
더욱이, 이 예에서, 모드 인덱스 (204M) 보다 작은 모드 인덱스들 (204), 즉, 모드 인덱스들 (2041 - 204M-1) 이, 변경된 인트라-예측 모드 인덱스 테이블 (210) 의 동일 값의 (equally-valued) 변경된 인트라-예측 모드 인덱스들 (212) 에 맵핑된다. 예를 들어, 모드 인덱스 (2042) 가 이 예에서, 모드 인덱스 (2042) 가 모드 인덱스 (204M) 보다 작기 때문에, 변경된 인트라-예측 모드 인덱스 (2122) 에 맵핑된다. 따라서, 비디오 인코더 (20) 가 인트라-예측 모드 (2022) 를 이용하여 블록 컨텍스트 데이터 (230A) 에 의해 정의된 컨텍스트를 갖는 블록을 인코딩할 때, 비디오 인코더 (20) 는 블록에 대한 인트라-예측 모드를 코드워드 (2142) 를 이용하여 시그널링할 수도 있다. 이와 유사하게, 비디오 디코더 (30) 가 블록 컨텍스트 데이터 (230A) 에 의해 정의된 컨텍스트를 갖는 블록에 대한 코드워드 (2142) 를 수신할 때, 비디오 디코더 (30) 는 블록을 인코딩하는데 이용되는 인트라-예측 모드 (그리고, 유사하게, 블록을 디코딩하는데 이용되는 인트라-예측 모드) 가 인트라-예측 모드 (2022) 를 포함한다고 결정할 수도 있다. 이와 유사하게, 인트라-예측 모드 (202M-1) 는 모드 인덱스 (204M-1) 가 변경된 인트라-예측 모드 인덱스 (212M-1) 에 맵핑되기 때문에, 코드워드 (214M-1) 에 맵핑된다.
한편, 이 예에서, 모드 인덱스 (204M) 보다 더 큰 모드 인덱스들 (204), 즉, 모드 인덱스들 (204M-1 - 204K) 은 모드 인덱스보다 1이 더 작은 변경된 인트라-예측 모드 인덱스들 (212) 에 맵핑된다. 예를 들어, 모드 인덱스 (204K-1) 는, 이 예에서, 모드 인덱스 (204K-1) 가 모드 인덱스 (204M) 보다 더 크기 때문에, 변경된 인트라-예측 모드 인덱스 (212K-2) 에 맵핑된다. 따라서, 비디오 인코더 (20) 가 인트라-예측 모드 (202K-1) 를 이용하여 블록 컨텍스트 데이터 (230A) 에 의해 정의된 컨텍스트를 갖는 블록을 인코딩할 때, 비디오 인코더 (20) 는 블록에 대한 인트라-예측 모드를 코드워드 (214K-2) 를 이용하여 시그널링할 수도 있다. 이와 유사하게, 비디오 디코더 (30) 가 블록 컨텍스트 데이터 (230A) 에 의해 정의된 컨텍스트를 갖는 블록에 대한 코드워드 (214K-2) 를 수신할 때, 비디오 디코더 (30) 는 블록을 인코딩하는데 이용되는 인트라-예측 모드 (그리고, 유사하게, 블록을 디코딩하는데 이용되는 인트라-예측 모드) 가 인트라-예측 모드 (202K-1) 를 포함한다고 결정할 수도 있다. 이와 유사하게, 인트라-예측 모드 (202M+1) 는 모드 인덱스 (204M+1) 가 변경된 인트라-예측 모드 인덱스 (212M) 에 맵핑되기 때문에, 코드워드 (214M) 에 맵핑된다.
이 방법에서, 모드 인덱스 j 에 맵핑된 인트라-예측 모드를 고려하면, 비디오 인코더 (20) 는 가장 가능성있는 모드들 이외의 인트라-예측 모드들에 대해, 다음 단계 함수 f(j) 를 이용하여 코드워드를 결정할 수도 있으며, 여기서, m 은 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내며, codeword(n) 는 변경된 인트라-예측 모드 인덱스 n 에 할당되는 코드워드를 나타낸다:
Figure 112013070884083-pct00015
(1)
이와 유사하게, 가장 가능성있는 모드가 아닌 선택된 인트라-예측 모드에 대한 코드워드를 고려하면, 비디오 디코더 (30) 는 코드워드에 맵핑된 인트라-예측 모드를 다음 단계 함수 g(n) 를 이용하여 결정할 수도 있으며, 여기서, m 은 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내며, mode(j) 는 모드 인덱스 j 에 맵핑된 인트라-코딩 모드를 지칭한다:
Figure 112013070884083-pct00016
(2)
이들 컨셉들이 2개의 가장 가능성있는 모드들이 이용되는 예들로 확장될 때, 모드 인덱스 j 에 맵핑되는 인트라-코딩 모드를 고려하면, 비디오 인코더 (20) 는 다음 단계 함수 f(j) 를 이용하여 코드워드를 결정할 수도 있으며, 여기서, m1 은 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내며, m2 는 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내며, codeword(n) 는 변경된 인트라-예측 모드 인덱스 n 에 할당되는 코드워드를 나타낸다:
Figure 112013070884083-pct00017
(3)
이와 유사하게, 코드워드를 고려하면, 비디오 디코더 (30) 는 코드워드에 맵핑되는 인트라-예측 모드를 다음 단계 함수 g(n) 를 이용하여 결정할 수도 있으며, 여기서, m1 은 제 1 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내며, m2 는 제 2 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내며, mode(j) 는 모드 인덱스 j 에 맵핑되는 인트라-예측 모드를 지칭한다:
Figure 112013070884083-pct00018
(4)
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 하나 이상의 명령들 또는 코드들로서 컴퓨터-판독가능 매체 상에 저장되거나 송신되어, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체는 컴퓨터-판독가능 저장 매체들을 포함할 수도 있으며, 이 컴퓨터-판독가능 저장 매체들은 데이터 저장 매체와 같은 유형의 매체, 또는 예컨대, 통신 프로토콜에 따라서 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체들에 대응한다. 이 방법에서, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비일시적인 유형의 컴퓨터-판독가능 저장 매체 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는 본 개시물에서 설명하는 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
일 예로서, 이에 한정하지 않고, 이러한 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광디스크 저장, 자기디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터-판독가능 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 (DSL), 또는 적외선, 무선 및 마이크로파와 같은 무선 기술들을 이용하여 명령들이 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신되는 경우, 매체의 정의에는 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선 및 마이크로파와 같은 무선 기술들이 포함된다. 그러나, 컴퓨터-판독가능 저장 매체들 및 데이터 저장 매체들이 접속부들, 캐리어 파들, 신호들, 또는 다른 일시적인 매체들을 포함하지 않고, 대신 비일시적인 유형의 저장 매체들에 관련되는 것으로 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본원에서 사용할 때, 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며 본원에서, 디스크들 (disks) 은 보통 데이터를 자기적으로 재생시키는 한편, 디스크들 (discs) 은 레이저를 이용하여 데이터를 광학적으로 재생시킨다. 앞에서 언급한 것들의 조합들이 또한 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서 (DSP) 들, 범용 마이크로프로세서들, 주문형 집적회로 (ASIC) 들, 필드 프로그래밍가능 로직 어레이 (FPGA) 들, 또는 다른 등가의 통합 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 용어 “프로세서" 는, 본원에서 사용될 때 전술한 구조 또는 본원에서 설명하는 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 구조를 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능성은 전용 하드웨어 및/또는 인코딩 및 디코딩을 위해 구성되는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 포함될 수도 있다. 또한, 이 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 완전히 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예컨대, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 개시한 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위해서 본 개시물에서 여러 컴포넌트들, 모듈들, 또는 유닛들이 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 더 정확히 말하면, 위에서 설명한 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션으로 제공될 수도 있다.
여러 예들이 설명되었다. 이들 및 다른 예들은 다음 청구항들의 범위 이내이다.

Claims (76)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 단계;
    변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 단계;
    변경된 인트라-예측 모드 인덱스에 대응하는 수신된 코드워드를 결정하기 위해 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하는 단계;
    상기 변경된 인트라-예측 모드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스에 기초하여 인트라-예측 모드 인덱스를 결정하는 단계;
    상기 현재의 블록을 디코딩하는데 이용할 상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 단계로서, 선택된 상기 인트라-예측 모드는 결정된 상기 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 단계; 및
    선택된 상기 인트라-예측 모드를 이용하여 상기 현재의 블록을 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 인트라-예측 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 인트라-예측 모드들의 각각은 각각의 인트라-예측 모드 인덱스에 대응하는, 비디오 데이터를 디코딩하는 방법.
  5. 제 4 항에 있어서,
    상기 변경된 인트라-예측 모드 인덱스 + 1 이 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스 이상일 때, 상기 인트라-예측 모드를 선택하는 단계는 상기 변경된 인트라-예측 모드 인덱스보다 2가 더 큰 인트라-예측 모드 인덱스를 가진 인트라-예측 모드를 선택하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  6. 제 4 항에 있어서,
    상기 변경된 인트라-예측 모드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작을 때, 상기 인트라-예측 모드를 선택하는 단계는 상기 변경된 인트라-예측 모드 인덱스와 동일한 인트라-예측 모드 인덱스를 가진 인트라-예측 모드를 선택하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  7. 제 4 항에 있어서,
    상기 변경된 인트라-예측 모드 인덱스 + 1 이 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작을 때, 상기 인트라-예측 모드를 선택하는 단계는 상기 변경된 인트라-예측 모드 인덱스보다 1이 더 큰 인트라-예측 모드 인덱스를 가진 인트라-예측 모드를 선택하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  8. 비디오 데이터를 디코딩하는 장치로서,
    상기 장치는 비디오 디코더를 포함하며, 상기 비디오 디코더는,
    현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고;
    변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하고;
    변경된 인트라-예측 모드 인덱스에 대응하는 수신된 코드워드를 결정하기 위해 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하고;
    상기 변경된 인트라-예측 모드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스에 기초하여 인트라-예측 모드 인덱스를 결정하고;
    상기 현재의 블록을 디코딩하는데 이용할 상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 상기 인트라-예측 모드는 상기 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하며;
    선택된 상기 인트라-예측 모드를 이용하여 상기 현재의 블록을 디코딩하도록 구성된, 비디오 데이터를 디코딩하는 장치.
  9. 제 8 항에 있어서,
    상기 비디오 디코더는 또한, 상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 인트라-예측 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  10. 제 8 항에 있어서,
    상기 비디오 디코더는 또한, 상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  11. 제 8 항에 있어서,
    상기 인트라-예측 모드들의 각각은 각각의 모드 인덱스에 대응하는, 비디오 데이터를 디코딩하는 장치.
  12. 제 11 항에 있어서,
    상기 변경된 인트라-예측 모드 인덱스 + 1 이 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스 이상일 때, 상기 비디오 디코더는 상기 변경된 인트라-예측 모드 인덱스보다 2가 더 큰 인트라-예측 모드 인덱스를 가진 인트라-예측 모드를 선택하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  13. 제 11 항에 있어서,
    상기 변경된 인트라-예측 모드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작을 때, 상기 비디오 디코더는 상기 변경된 인트라-예측 모드 인덱스와 동일한 인트라-예측 모드 인덱스를 가진 인트라-예측 모드를 선택하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  14. 제 11 항에 있어서,
    상기 변경된 인트라-예측 모드 인덱스 + 1 이 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작을 때, 상기 비디오 디코더는 상기 변경된 인트라-예측 모드 인덱스보다 1이 더 큰 인트라-예측 모드 인덱스를 가진 인트라-예측 모드를 선택하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  15. 제 8 항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 디코더를 포함하는 무선 통신 디바이스
    중 적어도 하나를 포함하는, 비디오 데이터를 디코딩하는 장치.
  16. 비디오 데이터를 인코딩하는 방법으로서,
    현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 단계;
    변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 단계;
    상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 이용하여 상기 현재의 블록을 인코딩하는 단계;
    상기 인트라-예측 모드에 대응하는 인트라-예측 모드 인덱스를 결정하는 단계;
    결정된 상기 인트라-예측 모드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스에 기초하여 변경된 인트라-예측 모드 인덱스를 결정하는 단계; 및
    컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행함으로써 선택된 상기 코드워드들의 테이블로부터 코드워드를 인코딩하는 단계로서, 상기 코드워드는 상기 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  17. 제 16 항에 있어서,
    상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  18. 제 16 항에 있어서,
    상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  19. 제 16 항에 있어서,
    상기 인트라-예측 모드들의 각각은 각각의 모드 인덱스에 대응하는, 비디오 데이터를 인코딩하는 방법.
  20. 제 19 항에 있어서,
    상기 인트라-예측 모드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 크고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 클 때, 상기 변경된 인트라-예측 모드 인덱스를 결정하는 단계는 상기 인트라-예측 모드 인덱스보다 2가 더 작은 변경된 인트라-예측 모드 인덱스들 중 하나의 변경된 인트라-예측 모드 인덱스를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  21. 제 19 항에 있어서,
    상기 인트라-예측 모드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작을 때, 상기 변경된 인트라-예측 모드 인덱스를 결정하는 단계는 상기 인트라-예측 모드 인덱스와 동일한 변경된 인트라-예측 모드 인덱스들 중 하나의 변경된 인트라-예측 모드 인덱스를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  22. 제 19 항에 있어서,
    상기 인트라-예측 모드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작을 때, 상기 변경된 인트라-예측 모드 인덱스를 결정하는 단계는 상기 인트라-예측 모드 인덱스보다 1이 더 작은 변경된 인트라-예측 모드 인덱스를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  23. 비디오 데이터를 인코딩하는 장치로서,
    상기 장치는 비디오 인코더를 포함하며, 상기 비디오 인코더는,
    현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고;
    변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하고;
    상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 이용하여 상기 현재의 블록을 인코딩하고;
    상기 인트라-예측 모드에 대응하는 인트라-예측 모드 인덱스를 결정하고;
    결정된 상기 인트라-예측 모드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스에 기초하여 변경된 인트라-예측 모드 인덱스를 결정하며;
    컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행함으로써 선택된 상기 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 상기 코드워드는 상기 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 인코딩하도록 구성된, 비디오 데이터를 인코딩하는 장치.
  24. 제 23 항에 있어서,
    상기 비디오 인코더는 또한, 상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하도록 구성되는, 비디오 데이터를 인코딩하는 장치.
  25. 제 23 항에 있어서,
    상기 비디오 인코더는 또한, 상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하도록 구성되는, 비디오 데이터를 인코딩하는 장치.
  26. 제 23 항에 있어서,
    상기 인트라-예측 모드들의 각각은 각각의 모드 인덱스에 대응하는, 비디오 데이터를 인코딩하는 장치.
  27. 제 23 항에 있어서,
    상기 인트라-예측 모드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 크고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 클 때, 상기 비디오 인코더는 또한, 상기 인트라-예측 모드 인덱스보다 2가 더 작은 변경된 인트라-예측 모드 인덱스들 중 하나의 변경된 인트라-예측 모드 인덱스를 결정함으로써 변경된 인트라-예측 모드 인덱스를 결정하도록 구성되는, 비디오 데이터를 인코딩하는 장치.
  28. 제 23 항에 있어서,
    상기 인트라-예측 모드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작을 때, 상기 비디오 인코더는 또한, 상기 인트라-예측 모드 인덱스와 동일한 변경된 인트라-예측 모드 인덱스를 결정함으로써 변경된 인트라-예측 모드 인덱스를 결정하도록 구성되는, 비디오 데이터를 인코딩하는 장치.
  29. 제 23 항에 있어서,
    상기 인트라-예측 모드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 인트라-예측 모드 인덱스보다 작을 때, 상기 비디오 인코더는 또한, 상기 인트라-예측 모드 인덱스보다 1이 더 작은 변경된 인트라-예측 모드 인덱스를 결정함으로써 변경된 인트라-예측 모드 인덱스를 결정하도록 구성되는, 비디오 데이터를 인코딩하는 장치.
  30. 제 23 항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 인코더를 포함하는 무선 통신 디바이스
    중 적어도 하나를 포함하는, 비디오 데이터를 인코딩하는 장치.
  31. 비디오 데이터를 디코딩하는 장치로서,
    현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 수단;
    변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 수단;
    변경된 인트라-예측 모드 인덱스에 대응하는 수신된 코드워드를 결정하기 위해 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하는 수단;
    상기 변경된 인트라-예측 모드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스에 기초하여 인트라-예측 모드 인덱스를 결정하는 수단;
    상기 현재의 블록을 디코딩하는데 이용할 상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 수단으로서, 선택된 상기 인트라-예측 모드는 결정된 상기 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 수단; 및
    선택된 상기 인트라-예측 모드를 이용하여 상기 현재의 블록을 디코딩하는 수단을 포함하는, 비디오를 디코딩하는 장치.
  32. 제 31 항에 있어서,
    상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 인트라-예측 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하는 수단을 더 포함하는, 비디오를 디코딩하는 장치.
  33. 제 31 항에 있어서,
    상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하는 수단을 더 포함하는, 비디오를 디코딩하는 장치.
  34. 비디오 데이터를 인코딩하는 장치로서,
    현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 수단;
    변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 수단;
    상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 이용하여 상기 현재의 블록을 인코딩하는 수단;
    상기 인트라-예측 모드에 대응하는 인트라-예측 모드 인덱스를 결정하는 수단;
    결정된 상기 인트라-예측 모드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스에 기초하여 변경된 인트라-예측 모드 인덱스를 결정하는 수단; 및
    컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행함으로써 선택된 상기 코드워드들의 테이블로부터 코드워드를 인코딩하는 수단으로서, 상기 코드워드는 상기 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 인코딩하는 수단을 포함하는, 비디오 데이터를 인코딩하는 장치.
  35. 제 34 항에 있어서,
    상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하는 수단을 더 포함하는, 비디오 데이터를 인코딩하는 장치.
  36. 제 34 항에 있어서,
    상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하는 수단을 더 포함하는, 비디오 데이터를 인코딩하는 장치.
  37. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금,
    현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하도록 하고;
    변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하도록 하고;
    변경된 인트라-예측 모드 인덱스에 대응하는 수신된 코드워드를 결정하기 위해 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하도록 하고;
    상기 변경된 인트라-예측 모드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스에 기초하여 인트라-예측 모드 인덱스를 결정하도록 하고;
    상기 현재의 블록을 디코딩하는데 이용할 상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 상기 인트라-예측 모드는 결정된 상기 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하도록 하며;
    선택된 상기 인트라-예측 모드를 이용하여 상기 현재의 블록을 디코딩하도록 하는, 컴퓨터 판독가능 저장 매체.
  38. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금,
    현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하도록 하고;
    변경된 인트라-예측 모드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하도록 하고;
    상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 이용하여 상기 현재의 블록을 인코딩하도록 하고;
    상기 인트라-예측 모드에 대응하는 인트라-예측 모드 인덱스를 결정하도록 하고;
    결정된 상기 인트라-예측 모드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 인트라-예측 모드 인덱스에 기초하여 변경된 인트라-예측 모드 인덱스를 결정하도록 하며;
    컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행함으로써 선택된 상기 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 상기 코드워드는 상기 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 인코딩하도록 하는, 컴퓨터 판독가능 저장 매체.
  39. 비디오 데이터를 디코딩하는 방법으로서,
    현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 단계;
    변경된 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 단계;
    변경된 코드워드 인덱스에 대응하는 수신된 코드워드를 결정하기 위해 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하는 단계;
    상기 변경된 코드워드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 코드워드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 코드워드 인덱스에 기초하여 코드워드 인덱스를 결정하는 단계;
    상기 현재의 블록을 디코딩하는데 이용할 상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 단계로서, 선택된 상기 인트라-예측 모드는 상기 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 단계; 및
    선택된 상기 인트라-예측 모드를 이용하여 상기 현재의 블록을 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  40. 제 39 항에 있어서,
    상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 인트라-예측 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  41. 제 39 항에 있어서,
    상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  42. 제 39 항에 있어서,
    상기 변경된 코드워드 인덱스 + 1 이 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스 이상일 때, 상기 인트라-예측 모드를 선택하는 단계는 상기 변경된 코드워드 인덱스보다 2가 더 큰 코드워드 인덱스에 대응하는 인트라-예측 모드를 선택하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  43. 제 39 항에 있어서,
    상기 변경된 코드워드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스보다 작고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스보다 작을 때, 상기 인트라-예측 모드를 선택하는 단계는 상기 변경된 코드워드 인덱스와 동일한 코드워드 인덱스를 가진 인트라-예측 모드를 선택하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  44. 제 39 항에 있어서,
    상기 변경된 코드워드 인덱스 + 1 이 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스보다 작을 때, 상기 인트라-예측 모드를 선택하는 단계는 상기 변경된 코드워드 인덱스보다 1이 더 큰 코드워드 인덱스에 대응하는 인트라-예측 모드를 선택하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  45. 제 39 항에 있어서,
    인트라-예측 모드들에의 상기 코드워드 인덱스들의 맵핑을 동적으로 조정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  46. 비디오 데이터를 디코딩하는 장치로서,
    상기 장치는 비디오 디코더를 포함하며, 상기 비디오 디코더는,
    현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고;
    코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하고;
    변경된 코드워드 인덱스에 대응하는 수신된 코드워드를 결정하기 위해 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하고;
    상기 변경된 코드워드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 코드워드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 코드워드 인덱스에 기초하여 코드워드 인덱스를 결정하고;
    상기 현재의 블록을 디코딩하는데 이용할 상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 상기 인트라-예측 모드는 상기 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하며;
    선택된 상기 인트라-예측 모드를 이용하여 상기 현재의 블록을 디코딩하도록 구성된, 비디오 데이터를 디코딩하는 장치.
  47. 제 46 항에 있어서,
    상기 비디오 디코더는 또한, 상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 인트라-예측 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  48. 제 46 항에 있어서,
    상기 비디오 디코더는 또한, 상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  49. 제 46 항에 있어서,
    상기 변경된 코드워드 인덱스 + 1 이 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스 이상일 때, 상기 비디오 디코더는 상기 변경된 코드워드 인덱스보다 2가 더 큰 코드워드 인덱스에 대응하는 인트라-예측 모드를 선택하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  50. 제 46 항에 있어서,
    상기 변경된 코드워드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스보다 작고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스보다 작을 때, 상기 비디오 디코더는 상기 변경된 코드워드 인덱스와 동일한 코드워드 인덱스를 가진 인트라-예측 모드를 선택하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  51. 제 46 항에 있어서,
    상기 변경된 코드워드 인덱스 + 1 이 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 상기 코드워드 인덱스보다 작을 때, 상기 비디오 디코더는 상기 변경된 코드워드 인덱스보다 1이 더 큰 코드워드 인덱스에 대응하는 인트라-예측 모드를 선택하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  52. 제 46 항에 있어서,
    상기 비디오 디코더는 또한, 인트라-예측 모드들에의 상기 코드워드 인덱스들의 맵핑을 동적으로 조정하도록 구성되는, 비디오 데이터를 디코딩하는 장치.
  53. 제 46 항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 디코더를 포함하는 무선 통신 디바이스
    중 적어도 하나를 포함하는, 비디오 데이터를 디코딩하는 장치.
  54. 비디오 데이터를 디코딩하는 장치로서,
    현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 수단;
    변경된 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 수단;
    변경된 코드워드 인덱스에 대응하는 수신된 코드워드를 결정하기 위해 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하는 수단;
    상기 변경된 코드워드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 코드워드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 코드워드 인덱스에 기초하여 코드워드 인덱스를 결정하는 수단;
    상기 현재의 블록을 디코딩하는데 이용할 상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 수단으로서, 선택된 상기 인트라-예측 모드는 상기 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 수단; 및
    선택된 상기 인트라-예측 모드를 이용하여 상기 현재의 블록을 디코딩하는 수단을 포함하는, 비디오를 디코딩하는 장치.
  55. 제 54 항에 있어서,
    상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 인트라-예측 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하는 수단을 더 포함하는, 비디오를 디코딩하는 장치.
  56. 제 54 항에 있어서,
    상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 컨텍스트를 결정하는 수단을 더 포함하는, 비디오를 디코딩하는 장치.
  57. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금,
    현재의 블록에 대한 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하도록 하고;
    변경된 코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하도록 하고;
    변경된 코드워드 인덱스에 대응하는 수신된 코드워드를 결정하기 위해 컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행하도록 하고;
    상기 변경된 코드워드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 대한 코드워드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 대한 코드워드 인덱스에 기초하여 코드워드 인덱스를 결정하도록 하고;
    상기 현재의 블록을 디코딩하는데 이용할 상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드를 선택하는 것으로서, 선택된 상기 인트라-예측 모드는 상기 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하도록 하며;
    선택된 상기 인트라-예측 모드를 이용하여 상기 현재의 블록을 디코딩하도록 하는, 컴퓨터 판독가능 저장 매체.
  58. 비디오 데이터를 인코딩하는 방법으로서,
    현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 단계;
    코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 단계로서, 상기 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 단계;
    상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 상기 현재의 블록을 인코딩하는 단계;
    상기 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 상기 하나의 인트라-예측 모드의 코드워드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하는 단계; 및
    컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행함으로써 선택된 상기 코드워드들의 테이블로부터 코드워드를 인코딩하는 단계로서, 상기 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나의 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  59. 제 58 항에 있어서,
    상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  60. 제 58 항에 있어서,
    상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  61. 제 58 항에 있어서,
    상기 현재의 블록을 인코딩하는데 이용되는 상기 인트라-예측 모드의 코드워드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 크고 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 클 때, 상기 변경된 코드워드 인덱스를 결정하는 단계는 상기 코드워드 인덱스보다 2가 더 작은 변경된 코드워드 인덱스를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  62. 제 58 항에 있어서,
    상기 현재의 블록을 인코딩하는데 이용되는 상기 인트라-예측 모드의 코드워드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 작고 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 작을 때, 상기 변경된 코드워드 인덱스를 결정하는 단계는 상기 코드워드 인덱스와 동일한 변경된 코드워드 인덱스를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  63. 제 58 항에 있어서,
    상기 현재의 블록을 인코딩하는데 이용되는 상기 인트라-예측 모드의 코드워드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 작을 때, 상기 변경된 코드워드 인덱스를 결정하는 단계는 상기 코드워드 인덱스보다 1이 더 작은 변경된 코드워드 인덱스를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  64. 제 58 항에 있어서,
    인트라-예측 모드들에의 상기 코드워드 인덱스들의 맵핑을 동적으로 조정하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  65. 비디오 데이터를 인코딩하는 장치로서,
    상기 장치는 비디오 인코더를 포함하며, 상기 비디오 인코더는,
    현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하고;
    코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 것으로서, 상기 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하고;
    상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 상기 현재의 블록을 인코딩하고;
    상기 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 상기 하나의 인트라-예측 모드의 코드워드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하며;
    컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행함으로써 선택된 상기 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 상기 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나의 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 인코딩하도록 구성된, 비디오 데이터를 인코딩하는 장치.
  66. 제 65 항에 있어서,
    상기 비디오 인코더는 또한, 상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하도록 구성되는, 비디오 데이터를 인코딩하는 장치.
  67. 제 65 항에 있어서,
    상기 비디오 인코더는 또한, 상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하도록 구성되는, 비디오 데이터를 인코딩하는 장치.
  68. 제 65 항에 있어서,
    상기 현재의 블록을 인코딩하는데 이용되는 상기 인트라-예측 모드의 코드워드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 크고 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 클 때, 상기 변경된 코드워드 인덱스를 결정하는 것은 상기 코드워드 인덱스보다 2가 더 작은 변경된 코드워드 인덱스를 결정하는 것을 포함하는, 비디오 데이터를 인코딩하는 장치.
  69. 제 65 항에 있어서,
    상기 현재의 블록을 인코딩하는데 이용되는 상기 인트라-예측 모드의 코드워드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 작고 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 작을 때, 상기 변경된 코드워드 인덱스를 결정하는 것은 상기 코드워드 인덱스와 동일한 변경된 코드워드 인덱스를 결정하는 것을 포함하는, 비디오 데이터를 인코딩하는 장치.
  70. 제 65 항에 있어서,
    상기 현재의 블록을 인코딩하는데 이용되는 상기 인트라-예측 모드의 코드워드 인덱스가 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스 이상이고 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스보다 작을 때, 상기 변경된 코드워드 인덱스를 결정하는 것은 상기 코드워드 인덱스보다 1이 더 작은 변경된 코드워드 인덱스를 결정하는 것을 포함하는, 비디오 데이터를 인코딩하는 장치.
  71. 제 65 항에 있어서,
    인트라-예측 모드들에의 상기 코드워드 인덱스들의 맵핑을 동적으로 조정하는 것을 더 포함하는, 비디오 데이터를 인코딩하는 장치.
  72. 제 65 항에 있어서,
    상기 장치는,
    집적 회로;
    마이크로프로세서; 및
    상기 비디오 인코더를 포함하는 무선 통신 디바이스
    중 적어도 하나를 포함하는, 비디오 데이터를 인코딩하는 장치.
  73. 비디오 데이터를 인코딩하는 장치로서,
    현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하는 수단;
    코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 수단으로서, 상기 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 수단;
    상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 상기 현재의 블록을 인코딩하는 수단;
    상기 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 상기 하나의 인트라-예측 모드의 코드워드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하는 수단; 및
    컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행함으로써 선택된 상기 코드워드들의 테이블로부터 코드워드를 인코딩하는 수단으로서, 상기 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나의 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 인코딩하는 수단을 포함하는, 비디오를 인코딩하는 장치.
  74. 제 73 항에 있어서,
    상기 현재의 블록에 좌측-이웃하는 블록 및 상기 현재의 블록에 상부-이웃하는 블록 중 적어도 하나에 대한 모드들에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하는 수단을 더 포함하는, 비디오를 인코딩하는 장치.
  75. 제 73 항에 있어서,
    상기 현재의 블록의 사이즈에 적어도 부분적으로 기초하여 상기 현재의 블록에 대한 인코딩 컨텍스트를 결정하는 수단을 더 포함하는, 비디오를 인코딩하는 장치.
  76. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금,
    현재의 블록에 대한 인코딩 컨텍스트에 기초하여 비디오 데이터의 상기 현재의 블록에 대한 제 1 가장 가능성있는 인트라-예측 모드 및 제 2 가장 가능성있는 인트라-예측 모드를 결정하도록 하고;
    코드워드 인덱스들에 대응하는 복수의 코드워드들을 포함하는 코드워드들의 테이블을 선택하는 것으로서, 상기 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하도록 하고;
    상기 제 1 가장 가능성있는 인트라-예측 모드 및 상기 제 2 가장 가능성있는 인트라-예측 모드 이외의 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 상기 현재의 블록을 인코딩하도록 하고;
    상기 현재의 블록을 인코딩하는데 이용되는 인트라-예측 모드들 중 상기 하나의 인트라-예측 모드의 코드워드 인덱스, 상기 제 1 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스, 및 상기 제 2 가장 가능성있는 인트라-예측 모드에 맵핑된 코드워드 인덱스에 기초하여 변경된 코드워드 인덱스를 결정하도록 하며;
    컨텍스트-기반의 적응적 2진 산술 코딩 (CABAC) 프로세스를 수행함으로써 선택된 상기 코드워드들의 테이블로부터 코드워드를 인코딩하는 것으로서, 상기 코드워드는 변경된 인트라-예측 모드 인덱스들 중 하나의 변경된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 인코딩하도록 하는, 컴퓨터 판독가능 저장 매체.
KR1020137020704A 2011-01-06 2012-01-05 Cabac 을 이용한 비디오 코딩을 위한 인트라-예측 모드 선택의 표시 KR101518157B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161430520P 2011-01-06 2011-01-06
US61/430,520 2011-01-06
US201161446402P 2011-02-24 2011-02-24
US61/446,402 2011-02-24
US201161448623P 2011-03-02 2011-03-02
US61/448,623 2011-03-02
US13/343,573 2012-01-04
US13/343,573 US8913662B2 (en) 2011-01-06 2012-01-04 Indicating intra-prediction mode selection for video coding using CABAC
PCT/US2012/020346 WO2012094506A1 (en) 2011-01-06 2012-01-05 Indicating intra-prediction mode selection for video coding using cabac

Publications (2)

Publication Number Publication Date
KR20130121932A KR20130121932A (ko) 2013-11-06
KR101518157B1 true KR101518157B1 (ko) 2015-05-06

Family

ID=46455223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137020704A KR101518157B1 (ko) 2011-01-06 2012-01-05 Cabac 을 이용한 비디오 코딩을 위한 인트라-예측 모드 선택의 표시

Country Status (17)

Country Link
US (1) US8913662B2 (ko)
EP (1) EP2661890B1 (ko)
JP (1) JP5731013B2 (ko)
KR (1) KR101518157B1 (ko)
CN (1) CN103299628B (ko)
AU (1) AU2012204302B2 (ko)
BR (1) BR112013017423B1 (ko)
CA (1) CA2823948C (ko)
DK (1) DK2661890T3 (ko)
ES (1) ES2692387T3 (ko)
HU (1) HUE039795T2 (ko)
IL (1) IL226974A (ko)
MY (1) MY164378A (ko)
RU (1) RU2554545C2 (ko)
SG (1) SG191201A1 (ko)
SI (1) SI2661890T1 (ko)
WO (1) WO2012094506A1 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2452499A1 (en) * 2009-07-06 2012-05-16 Thomson Licensing Methods and apparatus for spatially varying residue coding
US11284072B2 (en) 2010-08-17 2022-03-22 M&K Holdings Inc. Apparatus for decoding an image
US10085019B2 (en) * 2010-08-17 2018-09-25 M&K Holdings Inc. Method for restoring an intra prediction mode
US20120163456A1 (en) * 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
WO2012092763A1 (en) * 2011-01-07 2012-07-12 Mediatek Singapore Pte. Ltd. Method and apparatus of improved intra luma prediction mode coding
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
US9762900B2 (en) * 2011-06-17 2017-09-12 Lg Electronics Inc. Method and apparatus for encoding/decoding video in intra prediction mode
US8929455B2 (en) * 2011-07-01 2015-01-06 Mitsubishi Electric Research Laboratories, Inc. Method for selecting transform types from mapping table for prediction modes
BR112013014374B8 (pt) 2011-09-13 2022-08-30 Mediatek Singapore Pte Ltd Método e aparelho para codificação de modo intra em hevc
WO2013062194A1 (ko) * 2011-10-24 2013-05-02 (주)인터앱 복원 블록을 생성하는 방법 및 장치
US9154796B2 (en) * 2011-11-04 2015-10-06 Qualcomm Incorporated Intra-mode video coding
US9088796B2 (en) * 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
US20130114686A1 (en) * 2011-11-08 2013-05-09 Sharp Laboratories Of America, Inc. Video decoder with enhanced cabac motion vector decoding
JP2013126093A (ja) * 2011-12-14 2013-06-24 Sony Corp 画像処理装置及び画像処理方法
WO2013106986A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of intra mode coding
AU2012200319B2 (en) 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
AU2012200345B2 (en) * 2012-01-20 2014-05-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
US20150172653A1 (en) * 2012-07-05 2015-06-18 Thomson Licensing Video coding and decoding method with adaptation of coding modes and corresponding encoder and decoder
US9503723B2 (en) 2013-01-11 2016-11-22 Futurewei Technologies, Inc. Method and apparatus of depth prediction mode selection
US9426473B2 (en) 2013-02-01 2016-08-23 Qualcomm Incorporated Mode decision simplification for intra prediction
US9148667B2 (en) 2013-02-06 2015-09-29 Qualcomm Incorporated Intra prediction mode decision with reduced storage
US9369708B2 (en) 2013-03-27 2016-06-14 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
US9516306B2 (en) * 2013-03-27 2016-12-06 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
US10904551B2 (en) 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
WO2014172387A1 (en) * 2013-04-15 2014-10-23 Huawei Technologies Co., Ltd. Method and apparatus of depth prediction mode selection
US9787989B2 (en) * 2013-06-11 2017-10-10 Blackberry Limited Intra-coding mode-dependent quantization tuning
JP6359101B2 (ja) 2013-10-14 2018-07-18 マイクロソフト テクノロジー ライセンシング,エルエルシー ビデオ及び画像の符号化及び復号のためのイントラブロックコピー予測モードの特徴
US11109036B2 (en) 2013-10-14 2021-08-31 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
US10506254B2 (en) 2013-10-14 2019-12-10 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
US11032568B2 (en) 2013-11-27 2021-06-08 Hfi Innovation Inc. Method of video coding using prediction based on intra picture block copy
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
KR102258427B1 (ko) 2014-01-03 2021-06-01 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩/디코딩에서의 블록 벡터 예측
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
WO2015131323A1 (en) 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Block flipping and skip mode in intra block copy prediction
US9455743B2 (en) * 2014-05-27 2016-09-27 Qualcomm Incorporated Dedicated arithmetic encoding instruction
EP4354856A2 (en) 2014-06-19 2024-04-17 Microsoft Technology Licensing, LLC Unified intra block copy and inter prediction modes
US10085028B2 (en) * 2014-06-26 2018-09-25 Futurewei Technologies, Inc. Method and device for reducing a computational load in high efficiency video coding
CA3171803A1 (en) 2014-09-30 2016-04-07 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
US10659783B2 (en) 2015-06-09 2020-05-19 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
FR3051309A1 (fr) * 2016-05-10 2017-11-17 Bcom Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image
CN108737841B (zh) * 2017-04-21 2020-11-24 腾讯科技(深圳)有限公司 编码单元深度确定方法及装置
US10609414B2 (en) * 2017-05-08 2020-03-31 Qualcomm Incorporated Context modeling for transform coefficient coding
US10630978B2 (en) * 2017-05-12 2020-04-21 Blackberry Limited Methods and devices for intra-coding in video compression
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US10771781B2 (en) * 2018-03-12 2020-09-08 Electronics And Telecommunications Research Institute Method and apparatus for deriving intra prediction mode
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
WO2019240493A1 (ko) * 2018-06-12 2019-12-19 한국전자통신연구원 문맥 적응적 이진 산술 부호화 방법 및 장치
KR20210046804A (ko) * 2018-09-07 2021-04-28 주식회사 비원영상기술연구소 영상 부호화/복호화 방법 및 장치
GB2580084B (en) 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
CN111010577B (zh) * 2018-12-31 2022-03-01 北京达佳互联信息技术有限公司 一种视频编码中帧内帧间联合预测的方法和设备及介质
US11172197B2 (en) * 2019-01-13 2021-11-09 Tencent America LLC Most probable mode list generation scheme
EP3939313A4 (en) * 2019-03-12 2022-12-21 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PERFORMING INTERCODING IN VIDEO CODING
US11405638B2 (en) * 2019-03-17 2022-08-02 Tencent America LLC Method and apparatus for video coding by determining intra prediction direction based on coded information of neighboring blocks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501533A (ja) 2007-10-12 2011-01-06 クゥアルコム・インコーポレイテッド ビデオブロックヘッダ情報の適応可能なコーディング

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0155784B1 (ko) 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
KR970009408B1 (ko) 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
EP1649697B1 (en) * 2000-12-06 2008-09-17 RealNetworks, Inc. Intra coding video data apparatuses
US7978765B2 (en) 2002-03-22 2011-07-12 Realnetworks, Inc. Context-adaptive macroblock type encoding/decoding methods and apparatuses
JP4130780B2 (ja) * 2002-04-15 2008-08-06 松下電器産業株式会社 画像符号化方法および画像復号化方法
US7170937B2 (en) 2002-05-01 2007-01-30 Texas Instruments Incorporated Complexity-scalable intra-frame prediction technique
US7289674B2 (en) * 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
MXPA04012133A (es) 2002-06-11 2005-04-19 Nokia Corp Prediccion espacial basada en intra-codificacion.
US7194137B2 (en) 2003-05-16 2007-03-20 Cisco Technology, Inc. Variable length coding method and apparatus for video compression
JP2007043651A (ja) * 2005-07-05 2007-02-15 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
JP2008199100A (ja) 2007-02-08 2008-08-28 Toshiba Corp 可変長符号復号装置
US7535387B1 (en) * 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
NO328295B1 (no) 2007-12-20 2010-01-25 Tandberg Telecom As VLC-fremgangsmate og -innretning
US8891615B2 (en) * 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
WO2009094349A1 (en) * 2008-01-22 2009-07-30 Dolby Laboratories Licensing Corporation Adaptive motion information cost estimation with dynamic look-up table updating
US8761253B2 (en) 2008-05-28 2014-06-24 Nvidia Corporation Intra prediction mode search scheme
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
KR101507344B1 (ko) * 2009-08-21 2015-03-31 에스케이 텔레콤주식회사 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체
EP2514210A4 (en) * 2009-12-17 2014-03-19 Ericsson Telefon Ab L M METHOD AND DEVICE FOR VIDEO CODING
KR102268821B1 (ko) * 2010-04-09 2021-06-23 엘지전자 주식회사 비디오 데이터 처리 방법 및 장치
US20120106640A1 (en) * 2010-10-31 2012-05-03 Broadcom Corporation Decoding side intra-prediction derivation for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501533A (ja) 2007-10-12 2011-01-06 クゥアルコム・インコーポレイテッド ビデオブロックヘッダ情報の適応可能なコーディング

Also Published As

Publication number Publication date
DK2661890T3 (en) 2018-11-19
US20120177118A1 (en) 2012-07-12
CA2823948C (en) 2015-09-29
IL226974A (en) 2017-05-29
RU2554545C2 (ru) 2015-06-27
WO2012094506A1 (en) 2012-07-12
BR112013017423B1 (pt) 2022-06-07
HUE039795T2 (hu) 2019-02-28
EP2661890A1 (en) 2013-11-13
MY164378A (en) 2017-12-15
RU2013136381A (ru) 2015-02-20
CA2823948A1 (en) 2012-07-12
US8913662B2 (en) 2014-12-16
ES2692387T3 (es) 2018-12-03
SI2661890T1 (sl) 2018-10-30
AU2012204302A1 (en) 2013-07-18
BR112013017423A2 (pt) 2020-09-01
JP2014506067A (ja) 2014-03-06
KR20130121932A (ko) 2013-11-06
CN103299628B (zh) 2016-10-05
EP2661890B1 (en) 2018-07-25
SG191201A1 (en) 2013-07-31
AU2012204302B2 (en) 2015-05-28
CN103299628A (zh) 2013-09-11
JP5731013B2 (ja) 2015-06-10

Similar Documents

Publication Publication Date Title
KR101518157B1 (ko) Cabac 을 이용한 비디오 코딩을 위한 인트라-예측 모드 선택의 표시
KR101518149B1 (ko) 비디오 코딩을 위한 인트라-예측 모드 선택의 표시
KR101632776B1 (ko) 비디오 코딩에 대한 구문 엘리먼트들의 공동 코딩
KR101618021B1 (ko) 인트라 예측 모드들의 서브세트 및 대응하는 방향 변환들을 이용한 비디오 코딩
KR101600720B1 (ko) 이웃하는 모드를 이용하여 비디오 코딩을 위한 향상된 인트라-예측 모드 시그널링
KR101619004B1 (ko) 인트라 예측 코딩에 있어서의 최빈 변환
KR101632130B1 (ko) 인트라 모드 코딩에서 레퍼런스 모드 선택
KR101539169B1 (ko) 비디오 코딩을 위한 런-모드 기반 계수 코딩
WO2011160010A1 (en) Joint coding of partition information in video coding
AU2012267737A1 (en) Enhanced intra-prediction mode signaling for video coding using neighboring mode
KR20150021113A (ko) 비디오 코딩을 위한 인트라 평활 필터
EP2636219A1 (en) Joint coding of syntax elements for video coding

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 5