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

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

Info

Publication number
KR101518149B1
KR101518149B1 KR1020137011290A KR20137011290A KR101518149B1 KR 101518149 B1 KR101518149 B1 KR 101518149B1 KR 1020137011290 A KR1020137011290 A KR 1020137011290A KR 20137011290 A KR20137011290 A KR 20137011290A KR 101518149 B1 KR101518149 B1 KR 101518149B1
Authority
KR
South Korea
Prior art keywords
intra
prediction mode
mode index
index
probable
Prior art date
Application number
KR1020137011290A
Other languages
English (en)
Other versions
KR20130063029A (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 KR20130063029A publication Critical patent/KR20130063029A/ko
Application granted granted Critical
Publication of KR101518149B1 publication Critical patent/KR101518149B1/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

비디오 데이터의 블록에 대하여, 비디오 인코더는 비디오 디코더로, 수정된 인트라-예측 모드 인덱스에 맵핑되는 코드워드를 이용하여 선택된 인트라-예측 모드를 시그널링할 수 있다. 비디오 디코더는 그 코드워드를 수신하고, 그 코드워드에 대응하는 수정된 인트라-예측 모드 인덱스를 결정하고, 콘텍스트에 기초하여 가장 가능성있는 모드들을 결정하고, 수정된 인트라-예측 모드 인덱스를 가장 가능성있는 모드들의 모드 인덱스들과 비교함으로써 수정된 인트라-예측 모드 인덱스를 인트라-예측 모드 인덱스에 맵핑하며, 인트라-예측 모드 인덱스에 기초하여 비디오 데이터의 블록을 인코딩하기 위하여 이용되는 선택된 인트라-예측 모드를 결정할 수 있다.

Description

비디오 코딩을 위한 인트라-예측 모드 선택의 표시{INDICATING INTRA-PREDICTION MODE SELECTION FOR VIDEO CODING}
본 개시물은 비디오 코딩에 관한 것으로, 더 구체적으로, 코딩된 비디오 데이터에 대한 코딩 특성들의 시그널링에 관한 것이다.
디지털 비디오 성능들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대 정보 단말기 (personal digital assistant; PDA) 들, 랩톱 또는 데스크톱 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 비디오 원격 화상 회의 디바이스 (video teleconferencing device) 들 등을 포함하는, 광범위한 디바이스들 내에 통합될 수 있다. 디지털 비디오 디바이스들은 디지털 비디오 정보를 더 효율적으로 송신 및 수신하기 위해, MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4, Part 10, 고급 비디오 코딩 (Advanced Video Coding; AVC) 에 의하여 정의되는 표준들 및 이러한 표준들의 확장들에 설명되어 있는 것과 같은 비디오 압축 기법들을 구현한다.
비디오 압축 기법들은 공간적 예측 및/또는 시간적 예측을 수행하여 비디오 시퀀스들 내에 내재된 리던던시 (redundancy) 를 감소시키거나 제거한다. 블록 기반 비디오 코딩에서는, 비디오 프레임 또는 슬라이스는 비디오 블록들로 파티셔닝 (partitioning) 될 수도 있다. 각각의 비디오 블록은 더욱 파티셔닝될 수 있다. 인트라-코딩된 (I) 프레임 또는 슬라이스 내의 비디오 블록들은 이웃하는 비디오 블록들에 대한 공간적 예측을 이용하여 인코딩된다. 인터-코딩된 (P 또는 B) 프레임 또는 슬라이스 내의 비디오 블록들은, 동일한 프레임 또는 슬라이스 내의 이웃하는 매크로블록들 또는 코딩 유닛들에 대한 공간적 예측을 이용하거나 또는 다른 참조 프레임들에 대한 시간적 예측을 이용할 수도 있다.
일반적으로, 본 개시물은 코딩된 비디오 데이터에 대한 코딩 특성들을 시그널링하기 위한 기법들을 기술한다. 본 개시물의 기법들은 비디오 데이터의 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 시그널링에 대한 효율을 개선시킬 수도 있다. 본 개시물의 기법들은, 인코딩된 비트 스트림 내에서, 비디오 데이터의 블록들에 대한 인트라-예측 모드들을, 예를 들어, 그 블록들에 대한 콘텍스트들에 기초하여 코드워드들의 우도들 (likelihoods) 에 대하여 반비례하는 길이들을 가지는 가변 길이 코드워드들을 이용하여 시그널링하는 것을 포함한다. 이러한 방식으로, 본 개시물의 기법들을 이용하는 경우에는 코딩된 비트스트림에 대한 상대적인 비트 절약이 존재할 수도 있다.
일 예에서, 비디오 데이터를 디코딩하는 방법은, 현재 블록에 대한 콘텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 결정하는 단계; 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 단계; 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 수신된 코드워드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하는 단계; 코딩된 블록을 디코딩하기 위하여 이용할, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 단계로서, 선택된 인트라-예측 모드는 수정된 인트라-예측 모드 인덱스들 중 결정된 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 단계; 및 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하는 단계를 포함한다.
다른 예에서, 비디오 데이터를 디코딩하기 위한 장치는, 현재 블록에 대한 콘텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 결정하고; 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하고; 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 수신된 코드워드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하고; 코딩된 블록을 디코딩하기 위하여 이용할, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 수정된 인트라-예측 모드 인덱스들 중 결정된 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하며; 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하도록 구성된 비디오 디코더를 포함한다.
다른 예에서, 비디오 데이터를 인코딩하는 방법은, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하는 단계; 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 단계; 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 현재 블록을 인코딩하는 단계; 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 인트라-예측 모드들 중 하나의 인트라-예측 모드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하는 단계; 및 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 단계로서, 코드워드는 수정된 인트라-예측 모드 인덱스들 중 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 출력하는 단계를 포함한다.
다른 예에서, 비디오 데이터를 인코딩하기 위한 장치는, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하고; 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하고; 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 현재 블록을 인코딩하고; 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 인트라-예측 모드들 중 하나의 인트라-예측 모드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하며; 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 것으로서, 코드워드는 수정된 인트라-예측 모드 인덱스들 중 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 출력하도록 구성된 비디오 인코더를 포함한다.
다른 예에서, 비디오 데이터를 인코딩하기 위한 장치는, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하는 수단; 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 수단으로서, 코드워드들의 테이블은, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 수단; 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 현재 블록을 인코딩하는 수단; 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 인트라-예측 모드들 중 하나의 인트라-예측 모드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하는 수단; 및 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 수단으로서, 코드워드는 수정된 인트라-예측 모드 인덱스들 중 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 출력하는 수단을 포함한다.
다른 예에서, 비디오를 디코딩하기 위한 장치는, 현재 블록에 대한 콘텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 결정하는 수단; 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 수단으로서, 코드워드들의 테이블은, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 수단; 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 수신된 코드워드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하는 수단; 코딩된 블록을 디코딩하기 위하여 이용할, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 수단으로서, 선택된 인트라-예측 모드는 수정된 인트라-예측 모드 인덱스들 중 결정된 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 수단; 및 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하는 수단을 포함한다.
다른 예에서, 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서, 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금 : 현재 블록에 대한 콘텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 결정하도록 하고; 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하도록 하고; 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 수신된 코드워드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하도록 하고; 코딩된 블록을 디코딩하기 위하여 이용할, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 수정된 인트라-예측 모드 인덱스들 중 결정된 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하도록 하며; 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하도록 한다.
또 다른 예에서, 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서, 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금 : 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하도록 하고; 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하도록 하고; 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 현재 블록을 인코딩하도록 하고; 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 인트라-예측 모드들 중 하나의 인트라-예측 모드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하도록 하며; 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 것으로서, 코드워드는 수정된 인트라-예측 모드 인덱스들 중 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 출력하도록 한다.
다른 예에서, 비디오 데이터를 디코딩하는 방법은, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 콘텍스트에 기초하여 결정하는 단계; 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하고, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 단계; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 수정된 코드워드 인덱스를 결정하는 단계; 코딩된 블록을 디코딩하기 위하여 이용할, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 단계로서, 선택된 인트라-예측 모드는, 수정된 코드워드 인덱스, 제 1 의 가장 가능성있는 인트라-예측 모드, 및 제 2 의 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 단계; 및 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하는 단계를 포함한다.
다른 예에서, 비디오 데이터를 디코딩하기 위한 장치는, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 콘텍스트에 기초하여 결정하고; 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하고, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하고; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 수정된 코드워드 인덱스를 결정하고; 코딩된 블록을 디코딩하기 위하여 이용할, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는, 수정된 코드워드 인덱스, 제 1 의 가장 가능성있는 인트라-예측 모드, 및 제 2 의 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하며; 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하도록 구성된 비디오 디코더를 포함한다.
다른 예에서, 비디오를 디코딩하기 위한 장치는, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 콘텍스트에 기초하여 결정하는 수단; 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 수단으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하고, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 수단; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 수정된 코드워드 인덱스를 결정하는 수단; 코딩된 블록을 디코딩하기 위하여 이용할, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 수단으로서, 선택된 인트라-예측 모드는, 수정된 코드워드 인덱스, 제 1 의 가장 가능성있는 인트라-예측 모드, 및 제 2 의 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 수단; 및 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하는 수단을 포함한다.
다른 예에서, 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서, 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금 : 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 콘텍스트에 기초하여 결정하도록 하고; 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하고, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하도록 하고; 코드워드들의 테이블을 이용하여 수신된 코드워드에 대응하는 수정된 코드워드 인덱스를 결정하도록 하고; 코딩된 블록을 디코딩하기 위하여 이용할, 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는, 수정된 코드워드 인덱스, 제 1 의 가장 가능성있는 인트라-예측 모드, 및 제 2 의 가장 가능성있는 인트라-예측 모드에 기초하여 선택된 코드워드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하도록 하며; 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하도록 한다.
다른 예에서, 비디오 데이터를 인코딩하는 방법은, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하는 단계; 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하고, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 단계; 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 현재 블록을 인코딩하는 단계; 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드들 중 하나의 인트라-예측 모드의 코드워드 인덱스, 제 1 의 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 의 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 수정된 코드워드 인덱스를 결정하는 단계; 및 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 단계로서, 코드워드는 수정된 코드워드 인덱스에 대응하는, 상기 코드워드를 출력하는 단계를 포함한다.
다른 예에서, 비디오 데이터를 인코딩하기 위한 장치는, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하고; 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하고, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하고; 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 현재 블록을 인코딩하고; 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드들 중 하나의 인트라-예측 모드의 코드워드 인덱스, 제 1 의 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 의 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 수정된 코드워드 인덱스를 결정하며; 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 것으로서, 코드워드는 수정된 코드워드 인덱스에 대응하는, 상기 코드워드를 출력하도록 구성된 비디오 인코더를 포함한다.
다른 예에서, 비디오를 인코딩하기 위한 장치는, 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하는 수단; 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 수단으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하고, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하는 수단; 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 현재 블록을 인코딩하는 수단; 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드들 중 하나의 인트라-예측 모드의 코드워드 인덱스, 제 1 의 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 의 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 수정된 코드워드 인덱스를 결정하는 수단; 및 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 수단으로서, 코드워드는 수정된 코드워드 인덱스에 대응하는, 상기 코드워드를 출력하는 수단을 포함한다.
다른 예에서, 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서, 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금 : 비디오 데이터의 현재 블록에 대한 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하도록 하고; 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은 코드워드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하고, 코드워드 인덱스들은 인트라-예측 모드들에 맵핑되는, 상기 코드워드들의 테이블을 선택하도록 하고; 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나의 인트라-예측 모드를 이용하여 현재 블록을 인코딩하도록 하고; 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드들 중 하나의 인트라-예측 모드의 코드워드 인덱스, 제 1 의 가장 가능성있는 모드에 맵핑된 코드워드 인덱스, 및 제 2 의 가장 가능성있는 모드에 맵핑된 코드워드 인덱스에 기초하여 수정된 코드워드 인덱스를 결정하도록 하며; 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 것으로서, 코드워드는 수정된 코드워드 인덱스에 대응하는, 상기 코드워드를 출력하도록 한다.
도 1 은 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하기 위한 기법들을 이용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 2 는 인트라-예측 모드를 표시하는 정보를 코딩하기 위한 기법들을 구현할 수도 있는 비디오 인코더의 일 예를 도시하는 블록도이다.
도 3 은 인트라-예측 모드들 및 대응하는 모드 인덱스들의 일 예를 도시한다.
도 4 는 인코딩된 비디오 시퀀스를 디코딩하는 비디오 디코더의 일 예를 도시하는 블록도이다.
도 5 는 비디오 데이터의 블록을 인트라-예측 인코딩하기 위한 예시적인 방법을 도시하는 흐름도이다.
도 6a 및 도 6b 는 코딩된 블록에 대한 인트라-예측 모드를 표시하는 코드워드를 선택하기 위한 예시적인 방법들을 도시하는 흐름도들이다.
도 7 은 비디오 데이터의 블록을 인트라-예측 디코딩하기 위한 예시적인 방법을 도시하는 흐름도이다.
도 8a 및 도 8b 는 블록에 대한 인트라-예측 모드를 코딩된 블록에 대한 인트라-예측 모드를 표시하는 수신된 코드워드를 이용하여 결정하기 위한 예시적인 방법들을 도시하는 흐름도들이다.
도 9 는 인트라-예측 모드 인덱스 테이블, 수정된 인트라-예측 모드 인덱스 테이블, 및 콘텍스트 데이터 간의 관계들을 표시하는, 구성 데이터의 예시적인 세트를 도시하는 개념도이다.
일반적으로, 본 개시물은 코딩된 비디오 데이터에 대한 코딩 특성들을 시그널링하기 위한 기법들을 기술한다. 본 개시물의 기법들은 비디오 데이터의 블록을 인트라-인코딩하기 위하여 이용되는 인트라-예측 모드의 시그널링에 대한 효율을 개선시킬 수도 있다. 예를 들어, 비디오 인코더는 다양한 인트라-예측 모드들을 이용하여 인코딩된 블록들에 대한 인코딩 콘텍스들에 기초하여 인트라-예측 모드들에 대한 인덱스들을 표시하는 구성 (configuration) 데이터를 포함할 수도 있다. 예를 들어, 인코딩 콘텍스트들은 이웃하는, 이전에 코딩된 블록들 및/또는 블록 사이즈들에 대한 인코딩 모드들을 포함할 수도 있다.
구성 데이터는 각각의 콘텍스트에 대한 가장 가능성있는 인트라-예측 모드를 정의하기 위하여 이용될 수도 있고 또는 각각의 콘텍스트에 대한 2 개 이상의 가장 가능성있는 인트라-예측 모드들을 정의할 수도 있다. 이들 가장 가능성있는 인트라-예측 모드들은 때로는 본 개시물에서 단순히 가장 가능성있는 모드들이라고 지칭될 수도 있다. 또한, 구성 데이터는, 주어진 콘텍스트에서 가장 가능성있는 모드(들)가 아닌 다른 모드들에 대한 인트라-예측 모드를 기술하는 구문 데이터를 인코딩하기 위하여 이용할 가변 길이 코드 (variable length code; VLC) 테이블을 정의할 수도 있다. 특히, VLC 테이블은 인덱스들의 VLC 코드워드들에 대한 맵핑을 포함할 수도 있다. 이하 더 상세히 설명되는 바와 같이, VLC 테이블은 수정된 인트라-예측 모드 인덱스들을 코드워드들에 맵핑할 수도 있고, 또는 인트라-예측 모드 인덱스들을 후에 수정된 코드워드 인덱스들로 조정되는 코드워드 인덱스들에 맵핑할 수도 있다. 인트라-예측 모드들의 인덱스들에 대한 코드워드들은 상대적으로 더 많이 가능한 (likely) 인트라-예측 모드들에 대해서는 상대적으로 더 짧을 수도 있다.
따라서, 비디오 인코더는 인트라-예측 모드 인코딩될 블록에 대한 인코딩 콘텍스트를 결정하도록 구성될 수도 있다. 인코딩 콘텍스트는 가장 가능성있는 인트라-예측 모드는 물론 다른 인트라-예측 모드들에 대한 우도 (likelihood) 들에 관련될 수도 있다. 가장 가능성있는 인트라-예측 모드가 현재 블록을 인코딩하기 위한 이용을 위하여 선택되면, 비디오 인코더는 블록이 그 블록이 발생하는 콘텍스트에 대한 가장 가능성있는 모드에서 인코딩된다는 것을 표시하도록 1 비트 코드워드 (예를 들어, '1') 를 선택할 수도 있다. 2 개 이상의 가장 가능성있는 인트라-예측 모드가 이용되는 실례들에서, 제 1 비트는 가장 가능성있는 인트라-예측 모드들 중 하나가 현재 블록을 인코딩하기 위한 이용을 위하여 선택되는지를 표시할 수도 있고, 가장 가능성있는 인트라-예측 모드들 중 하나가 이용된다면, 제 2 비트 (또는 비트들의 시리즈) 는 가장 가능성있는 인트라-예측 모드들 중 어느 것이 선택되는지를 표시할 수도 있다. 때로는, 본 개시물 전반에 걸쳐, 이 제 1 비트 및 제 2 비트의 조합 그 자체가 코드워드라고 지칭될 수도 있으며, 여기서 코드워드의 제 1 비트는 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드들 중 하나라는 것을 시그널링하고, 제 2 비트 (또는 비트들의 시리즈) 는 가장 가능성있는 인트라-예측 모드들 중 어느 것인지를 식별한다.
다른 인트라-예측 모드들 (즉 가장 가능성있는 인트라-예측 모드(들)가 아닌 다른 인트라-예측 모드들) 각각에도, 인코딩 콘텍스트에 기초하여 수정된 인덱스 값이 할당될 수도 있다. 더욱이, 인코딩 콘텍스트는 또한 인트라-예측 모드들에 대한 인덱스들과 관련된 인덱스 값들에 의하여 인덱스되는 일 세트의 코드워드들 (예를 들어, 가변 길이 코드워드들) 을 가지는 테이블에 대응할 수도 있다. 특히, 위에서 논의된 바와 같이, 가장 가능성있는 인트라-예측 모드(들)에 대한 인덱스 값에는, 가장 가능성있는 인트라-예측 모드가 선택되었다는 것을 나타내는 단일 비트 (또는 더 길 수도 있는) 코드워드가 아닌 다른 가변 길이 코드워드가 할당될 필요가 없다. 가변 길이 코드워드를 각각의 나머지 인트라-예측 모드에 맵핑하기 위하여, 각각의 나머지 인트라-예측 모드의 인덱스는 먼저 가장 가능성있는 모드(들)에 대해 원래 할당된 것들을 배제하기 위해 수정될 수도 있다. 따라서, 수정된 인트라-예측 모드 인덱스들은 가장 가능성있는 모드에 대한 모드 인덱스보다 더 작은 인트라-예측 모드 인덱스들과 동일할 수도 있다. 반면에, 수정된 인트라-예측 모드 인덱스들은, 가장 가능성있는 모드에 대한 인덱스보다 더 큰 인트라-예측 모드 인덱스들에 대한 인트라-예측 모드 인덱스들보다 1 이 더 작을 수도 있다. 이러한 방식으로, 인트라-예측 모드들보다 1 이 더 적은 가변 길이 코드워드들이 존재할 수도 있으며, 코드워드들은 인코딩 콘텍스트에 기초하여 상대적으로 더 짧은 코드워드들이 상대적으로 더 많이 가능한 인트라-예측 모드들에 맵핑되도록 인트라-예측 모드들에 맵핑될 수도 있다. 2 개 이상의 가장 가능성있는 인트라-예측 모드들을 이용하는 경우, 코드워드 테이블 내에는, 인트라-예측 모드들보다 2 개 이상 더 적은 가변 길이 코드워드들이 존재할 수도 있으며, 코드워드들은 마찬가지로, 인코딩 콘텍스트에 기초하여, 상대적으로 더 짧은 코드워드들이 상대적으로 더 많이 가능한 인트라-예측 모드들에 맵핑되도록 인트라-예측 모드들에 맵핑될 수도 있다.
비디오 디코더는 인코딩된 블록에 대한 인트라-예측 모드를 결정하는 경우에, 예를 들어 유사한 기법들을 수행하도록 유사하게 구성될 수도 있다. 본 개시물의 기법들에 따르면, 비디오 디코더는 인코딩된 블록에 대한 데이터는 물론 인코딩된 블록을 디코딩하기 위하여 이용할 인트라-예측 모드를 표시하는 코드워드를 수신할 수도 있다. 비디오 디코더는 비디오 인코더와 유사한 방식으로 블록에 대한 콘텍스트를 결정할 수도 있다. 콘텍스트에 기초하여, 비디오 디코더는 블록에 대한 가장 가능성있는 인트라-예측 모드 또는 모드들을 결정할 수도 있다. 하나의 가장 가능성있는 인트라-예측 모드를 이용하는 경우에는, 단일 비트가 가장 가능성있는 모드가 선택되는지를 결정하기 위해 디코딩될 수도 있다. 단일 비트가 가장 가능성있는 모드가 선택된다는 것을 표시한다면, 비디오 디코더는 가장 가능성있는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않다면, 비디오 디코더는 수신된 코드워드에 맵핑되는 수정된 인트라-예측 모드 인덱스를 참조할 수도 있다. 수정된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 크거나 동일하다면, 비디오 디코더는, 수정된 인트라-예측 모드 인덱스보다 1 이 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 수정된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다면, 비디오 디코더는 수정된 인트라-예측 모드 인덱스와 동일한 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다.
이와 유사하게, 2 개의 가장 가능성있는 인트라-예측 인코딩 모드들을 이용하는 경우에는, 제 1 비트가 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드들 중 하나라는 것을 표시한다면, 비디오 디코더는 제 2 비트에 의해 식별되는 가장 가능성있는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않다면, 비디오 디코더는 수신된 코드워드에 맵핑되는 수정된 인트라-예측 모드 인덱스를 참조할 수도 있다. 수정된 인트라-예측 모드 인덱스가 제 1 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다면, 비디오 디코더는 수정된 인트라-예측 모드 인덱스와 동일한 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않고, 수정된 인트라-예측 모드 인덱스에 1 을 더한 것이 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다면, 비디오 디코더는 수정된 인트라-예측 모드 인덱스보다 1 이 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않다면, 비디오 디코더는 수정된 인트라-예측 모드 인덱스보다 2 가 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있으며, 등등이다.
어구들 "제 1 의 가장 가능성있는" 및 "제 2 의 가장 가능성있는" 은 일반적으로 본 개시물에서 2 개의 별개의 가장 가능성있는 인트라-예측 모드들을 지칭하기 위하여 사용되며, 2 개의 인트라-예측 모드들의 상대적인 유사성 (relative likeliness) 을 암시하는 것으로 의도되지 않는다. 그러나, 예들을 통해서 추후 설명되는 바와 같이, 본 개시물에서의 설명의 목적을 위하여, 제 1 의 가장 가능성있는 인트라-예측 모드가 제 2 의 가장 가능성있는 인트라-예측 모드보다 더 낮은 대응하는 모드 인덱스 값을 가진다는 것이 일반적으로 가정될 수도 있다. 따라서, 수정된 인트라-예측 모드 인덱스 값이 제 1 의 가장 가능성있는 모드에 대한 모드 인덱스보다 더 작다고 한다면, 수정된 인트라-예측 모드 인덱스 값도 역시 제 2 의 가장 가능성있는 인트라-예측 모드, 제 3 의 가장 가능성있는 인트라-예측 모드 등에 대한 모드 인덱스보다 더 작다는 것이 가정될 수 있다.
본 개시물의 기법들은 3 개 이상의 가장 가능성있는 인트라-예측 모드들을 이용하는 구현예들로 확대될 수 있다. 예를 들어, N 개의 가장 가능성있는 인트라-예측 모드들이 존재한다고 가정하면, 제 1 비트 또는 비트들의 시리즈는 선택된 인트라-예측 모드가 N 개의 가장 가능성있는 인트라-예측 모드들 중 하나인지를 표시할 수도 있다. 선택된 인트라-예측 모드가 N 개의 가장 가능성있는 인트라-예측 모드들 중 하나라면, 비트들의 제 2 시리즈는 N 개의 가장 가능성있는 인트라-예측 모드들 중 어느 것이 선택된 인트라-예측 모드인지를 식별할 수 있다. 일부 실례들에서, 가장 가능성있는 인트라-예측 모드들은 하나 이상의 그룹들 내에서 시그널링될 수도 있으며, 여기서 제 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 의 가장 가능성있는 인트라-예측 모드보다 더 낮은 대응하는 모드 인덱스 값을 갖고, 두번째 것은 세번째 것보다 더 낮은 인덱스를 가지며, 등등이라는 것이 가정될 수 있다. 본 개시물의 기법들에 따르면, 수정된 인트라-예측 모드 인덱스가 제 1 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다면, 비디오 디코더는 수정된 인트라-예측 모드 인덱스와 동일한 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않고, 수정된 인트라-예측 모드 인덱스에 1 을 더한 것이 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다면, 비디오 디코더는 수정된 인트라-예측 모드 인덱스보다 1 이 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다. 그렇지 않고, 수정된 인트라-예측 모드 인덱스에 2 를 더한 것이 제 3 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다면, 비디오 디코더는 수정된 인트라-예측 모드 인덱스보다 2 가 더 큰 모드 인덱스에 맵핑된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있으며, 등등이다. 이하 더 상세히 설명되는 바와 같이, 수정된 인트라-예측 모드 인덱스는 가장 가능성있는 모드들에 대한 엔트리들을 포함하지 않을 수도 있으며, 이것이 가장 가능성있는 모드들의 모드 인덱스에 의존하여, 인트라-예측 모드 인덱스가 수정된 인트라-예측 모드 인덱스에 1 을 더한 것, 수정된 인트라-예측 모드 인덱스에 2 를 더한 것, 등등에 맵핑될 수도 있는 이유이다.
도 1 은 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하기 위한 기법들을 이용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록도이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은 인코딩된 비디오를 통신 채널 (16) 을 통하여 목적지 디바이스 (14) 로 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 광범위한 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신 디바이스들, 이를 테면, 무선 핸드셋들, 소위 셀룰러 또는 위성 무선 전화기들, 또는 통신 채널 (16) (이 경우 통신 채널 (16) 은 무선이다) 을 통해 비디오 정보를 통신할 수 있는 임의의 무선 디바이스들을 포함할 수도 있다.
그러나, 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터의 코딩에 관한 본 개시물의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 한정되는 것은 아니다. 예를 들어, 이들 기법들은 공중파 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 인터넷 비디오 송신들, 저장 매체 상에 인코딩되는 인코딩된 디지털 비디오, 또는 다른 시나리오들에 적용할 수도 있다. 따라서, 통신 채널 (16) 은 인코딩된 비디오 데이터의 송신에 적합한 무선 또는 유선 미디어의 임의의 조합을 포함할 수도 있다. 더욱이, 통신 채널 (16) 은, 비디오 인코딩 디바이스가 데이터를 비디오 디코딩 디바이스로 송신할 수도 있는 수많은 방법들 중 오직 하나를 나타내는 것으로 의도된다. 예를 들어, 시스템 (10) 의 다른 구성들에서, 소스 디바이스 (12) 는 목적지 디바이스 (14) 에 의한 디코딩을 위한 인코딩된 비디오를 생성하고 인코딩된 비디오를 저장 매체 또는 파일 서버 상에 저장함으로써, 인코딩된 비디오가 원할 때 목적지 디바이스 (14) 에 의하여 액세스될 수도 있도록 할 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 변조기/복조기 (모뎀) (22) 및 송신기 (24) 를 포함한다. 목적지 디바이스 (14) 는 수신기 (26), 모뎀 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (20) 는, 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하기 위한 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서는, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 어레인지먼트 (arrangement) 들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부의 비디오 소스 (18) 로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 내장된 디스플레이 디바이스를 포함하는 대신에 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 일 예일 뿐이다. 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해서 수행될 수도 있다. 비록 일반적으로 본 개시물의 기법들이 비디오 인코딩 디바이스에 의하여 수행되지만, 이 기법들은 통상적으로는 "CODEC" 이라고 불리는 비디오 인코더/디코더에 의해서도 역시 수행될 수도 있다. 더욱이, 본 개시물의 기법들은 또한 비디오 프리프로세서에 의하여 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 이러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 디바이스들 (12, 14) 은 디바이스들 (12, 14) 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 따라서, 시스템 (10) 은, 예를 들어 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 화상 통화 (video telephony) 를 위해, 비디오 디바이스들 (12, 14) 간에 단방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡쳐 디바이스, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 콘텐츠 제공자로부터의 비디오 피드 (video feed) 를 포함할 수도 있다. 다른 대안으로서, 비디오 소스 (18) 는 소스 비디오로서 컴퓨터 그래픽 기반 데이터를 생성하거나, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합을 생성할 수 있다. 일부 경우들에서, 비디오 소스 (18) 가 비디오 카메라라면, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 위에서 언급된 바와 같이, 본 개시물에서 설명되는 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있으며, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각 경우에서, 캡쳐되거나, 사전-캡쳐되거나, 또는 컴퓨터 생성된 비디오는 비디오 인코더 (20) 에 의하여 인코딩될 수도 있다. 그러면, 인코딩된 비디오 정보는 통신 표준에 따라 모뎀 (22) 에 의하여 변조될 수도 있고, 송신기 (24) 를 통하여 목적지 디바이스 (14) 로 송신될 수도 있다. 모뎀 (22) 은 다양한 믹서들, 필터들, 증폭기들 또는 신호 변조를 위하여 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함하는, 데이터를 송신하기 위하여 설계된 회로들을 포함할 수도 있다.
목적지 디바이스 (14) 의 수신기 (26) 는 채널 (16) 을 통해 정보를 수신하고, 모뎀 (28) 은 이 정보를 복조한다. 다시, 비디오 인코딩 프로세스는 비디오 데이터의 블록들에 대한 인트라-예측 모드들을 나타내는 구문 데이터를 코딩하기 위해 본 명세서에서 설명되는 하나 이상의 기법들을 구현할 수도 있다. 채널 (16) 을 통해 통신되는 정보는, 비디오 인코더 (20) 에 의하여 정의되며 비디오 디코더 (30) 에 의해서도 이용되는, 매크로블록들 및 다른 코딩된 유닛들, 예컨대 GOP들의 특성들 및/또는 프로세싱을 기술하는 구문 엘리먼트들을 포함하는 구문 정보 (syntax information) 를 포함할 수도 있다. 디스플레이 디바이스 (32) 는 사용자에게 디코딩된 비디오 데이터를 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입들의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (16) 은 무선 주파수 (radio frequency; RF) 스펙트럼 또는 하나 이상의 물리적 송신선들과 같은 임의의 무선 또는 유선 통신 매체를 포함하거나 무선 및 유선 매체의 임의의 조합을 포함할 수도 있다. 통신 채널 (16) 은 근거리 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수도 있다. 통신 채널 (16) 은 일반적으로 무선 또는 유선 매체의 임의의 적합한 조합을 포함하는, 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 비디오 데이터를 송신하기 위한, 임의의 적합한 통신 매체 또는 상이한 통신 매체들의 컬렉션을 나타낸다. 통신 채널 (16) 은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수 있는 임의의 다른 장비를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는, 대안으로는 MPEG 4, Part 10, 고급 비디오 코딩 (Advanced Video Coding; AVC) 이라고도 지칭되는 ITU-T H.264 표준과 같은 비디오 압축 표준에 따라 동작할 수도 있다. 그러나, 본 개시물의 기법들은 임의의 특정 코딩 표준에 한정되지 않는다. 다른 예들은 MPEG-2 및 ITU-T H.263 을 포함한다. 비록 도 1 에는 도시되지 않지만, 일부 양태들에서는 비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있으며, 공통 데이터 스트림 또는 개별 데이터 스트림들 내의 오디오 및 비디오 모두의 인코딩을 핸들링하기 위한 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능하다면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜 또는 사용자 데이터그램 프로토콜 (user datagram protocol; UDP) 과 같은 다른 프로토콜들을 따를 수도 있다.
ITU-T H.264/MPEG-4 (AVC) 표준은, 조인트 비디오 팀 (Joint Video Team; JVT) 이라고 알려진 총체적 파트너십의 결과로서, ISO/IEC 동화상 전문가 그룹 (Moving Picture Experts Group; MPEG) 과 함께 ITU-T 비디오 코딩 전문가 그룹 (Video Coding Experts Group; VCEG) 에 의하여 제정되었다. 일부 양태들에서, 본 개시물에서 설명되는 기법들은 일반적으로 H.264 표준을 따르는 디바이스들에 적용될 수도 있다. H.264 표준은 ITU-T 연구 그룹에 의한, 2005년 3월자의 ITU-T 추천 (Recommendation) H.264 인 범용 음향시각적 서비스들을 위한 고급 비디오 코딩 (Advanced Video Coding for generic audiovisual services) 에서 기술되는데, 이것은 본 명세서에서 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양이라고 지칭될 수도 있다. 조인트 비디오 팀 (Joint Video Team; JVT) 은 H.264/MPEG-4 AVC 에 대한 확장들에 관해 계속 연구 중이다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 주문형 집적회로 (ASIC) 들, 필드 프로그램가능 게이트 어레이 (FPGA) 들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 조합과 같은 다양한 적합한 인코더 회로 중 임의의 것으로서 구현될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있는데, 이들 중 하나는 개별 카메라, 컴퓨터, 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 셋톱 박스, 서버 등 내의 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다.
통상적으로, 비디오 시퀀스는 비디오 프레임들의 시리즈를 포함한다. 픽처들의 그룹 (GOP) 은 일반적으로 하나 이상의 비디오 프레임들의 시리즈를 포함한다. GOP 는 GOP 내에 포함되는 프레임들의 개수를 기술하는 구문 데이터를 GOP의 헤더 내에, GOP의 하나 이상의 프레임들의 헤더 내에, 또는 다른 곳에 포함할 수도 있다. 각각의 프레임은 개별 프레임에 대한 인코딩 모드를 기술하는 프레임 구문 데이터를 포함할 수도 있다. 통상적으로, 비디오 인코더 (20) 는 비디오 데이터를 인코딩하기 위하여 개별 비디오 프레임들 내의 비디오 블록들 상에서 동작한다. 비디오 블록은 매크로블록 또는 매크로블록의 파티션에 대응할 수도 있다. 비디오 블록들은 고정되거나 가변하는 사이즈들을 가질 수도 있으며, 특정된 코딩 표준에 따라 사이즈가 상이할 수도 있다. 각 비디오 프레임은 복수의 슬라이스들을 포함할 수도 있다. 각 슬라이스는 복수의 매크로블록들을 포함할 수도 있으며, 이 매크로블록들이 서브-블록들이라고도 지칭되는 파티션들로 배열될 수도 있다.
일 예로서, ITU-T H.264 표준은 다양한 블록 사이즈들, 예컨대 루마 (luma) 성분들에 대하여 16 곱하기 (by) 16, 8 곱하기 8, 또는 4 곱하기 4 및 크로마 (chroma) 성분들에 대하여 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 은 음이 아닌 정수 값을 나타낸다. 블록 내의 픽셀들은 행 (row) 들 및 열 (column) 들로 배열될 수 있다. 더 나아가, 블록들은 반드시 수직 방향과 동일한 개수의 픽셀들을 수평 방향에서 가질 필요가 없다. 예를 들어, 블록들은 N×M 픽셀들을 포함할 수도 있으며, 여기서 M 은 반드시 N 과 동일할 필요가 없다. 16×16 보다 더 작은 블록 사이즈들은 ITU-T H.264 에서는 16×16 매크로블록의 파티션들로서 지칭될 수도 있다.
비디오 블록들은, 예를 들어, 이산 코사인 변환 (DCT), 정수 변환, 웨이블릿 변환, 또는 개념적으로 유사한 변환과 같은 변환의 코딩된 비디오 블록들 및 예측 비디오 블록들 간의 픽셀 차이들을 나타내는 잔여 비디오 블록 데이터에의 적용에 후속하여, 픽셀 도메인에서의 픽셀 데이터의 블록들, 또는 변환 도메인에서의 변환 계수들의 블록들을 포함할 수도 있다. 일부 경우들에서는, 비디오 블록은 변환 도메인에서의 양자화된 변환 계수들의 블록들을 포함할 수도 있다.
더 작은 비디오 블록들이 더 나은 해상도를 제공할 수 있고, 높은 정밀도들을 포함하는 비디오 프레임의 로케이션들에 대해 이용될 수도 있다. 일반적으로, 때때로 서브-블록들이라고 지칭되는 매크로블록들 및 다양한 파티션들은 비디오 블록들인 것으로 간주될 수도 있다. 또한, 슬라이스는 복수의 비디오 블록들, 예컨대 매크로블록들 및/또는 서브-블록들인 것으로 간주될 수도 있다. 각각의 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수도 있다. 대안으로는, 프레임들 자체들이 디코딩가능한 유닛들일 수도 있고, 또는 프레임의 다른 부분들이 디코딩가능한 유닛들로서 정의될 수도 있다. 용어 "코딩된 유닛" 은 비디오 프레임의 임의의 독립적으로 디코딩가능한 유닛, 예컨대 전체 프레임, 프레임의 슬라이스, 시퀀스라고도 지칭되는 픽처들의 그룹 (GOP), 또는 적용가능한 코딩 기법들에 따라 정의되는 다른 독립적으로 디코딩가능한 유닛을 지칭할 수도 있다.
현재 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 이라고 지칭되는 새로운 비디오 코딩 표준을 개발하기 위한 노력들이 현재 진행 중에 있다. 대두되는 HEVC 표준은 또한, H.265 라고도 지칭될 수도 있다. 표준화 노력들은 HEVC 테스트 모델 (HEVC Test Model; HM) 이라고 지칭되는 비디오 코딩 디바이스의 모델에 기초한다. HM 은 예를 들어, ITU-T H.264/AVC 에 따르는 디바이스들에 비해 비디오 코딩 디바이스들의 수개의 성능들을 상정한다. 예를 들어, H.264 가 9 개의 인트라-예측 모드들을 제공하는 반면에, HM 은, 예를 들어, 인트라-예측 코딩되는 블록의 사이즈에 기초하여 33 개만큼 많은 인트라-예측 모드들을 제공한다.
HM 은 비디오 데이터의 블록을 코딩 유닛 (coding unit; CU) 으로서 참조한다. 비트스트림 내의 구문 데이터는 최대 코딩 유닛 (largest coding unit; LCU) 을 정의할 수도 있는데, 이것은 픽셀들의 개수의 관점에서의 최대 코딩 유닛이다. 일반적으로, CU 는, CU 가 사이즈 구분을 가지지 않는다는 것을 제외하고는 H.264 의 매크로블록과 유사한 목적을 가진다. 따라서, CU 는 서브-CU들로 스플리팅될 수도 있다. 일반적으로, 본 개시물 내에서 CU 라고 지칭하는 것들은 픽처의 최대 코딩 유닛 또는 LCU 의 서브-CU 를 지칭할 수도 있다. LCU 는 서브-CU들로 스플리팅될 수도 있고, 각각의 서브-CU 는 서브-CU들로 스플리팅될 수도 있다. 비트스트림에 대한 구문 데이터는 LCU 가 스플리팅될 수도 있는 최대 횟수를 정의할 수도 있는데, 이것이 CU 깊이 (depth) 라고 지칭된다. 따라서, 비트스트림은 또한 최소 코딩 유닛 (smallest coding unit; SCU) 을 정의할 수도 있다. 또한, 본 개시물은 용어 "블록" 을 이용하여, CU, 예측 유닛 (prediction unit; PU), 또는 변환 유닛 (transform unit; 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 에 대한 데이터는, 예를 들어 CU 의 하나 이상의 PU들로의 파티셔닝을 기술할 수도 있다. 파티셔닝 모드들은 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) 는 블록에 대한 인코딩 콘텍스트를 결정하도록 구성될 수도 있다. 콘텍스트는 블록의 다양한 특성들, 예컨대 예를 들어, 픽셀 차원들의 관점에서 결정될 수도 있는 블록의 사이즈, 예측 유닛 (PU) 타입, 예컨대, HEVC 의 예에서는, 2N×2N, N×2N, 2N×N, N×N, 단-거리 인트라 예측 (SDIP) 타입들, 예컨대 2N×N/2, N/2×2N, 2N×1, 1×2N, H.264 의 예에서의 매크로블록 타입, 블록에 대한 코딩 유닛 (CU) 깊이, 또는 비디오 데이터의 블록에 대한 사이즈의 다른 측정치들을 포함할 수도 있다. 일부 예들에서는, 콘텍스트는 상측-이웃하는 블록, 좌측-이웃하는 블록, 상측-좌측 이웃하는 블록, 상측-우측 이웃하는 블록, 또는 다른 이웃하는 블록들에 대한 인트라-예측 모드들 중 어떤 임의의 것 또는 전부에 대응할 수도 있다. 일부 예들에서는, 콘텍스트는 하나 이상의 블록들에 대한 인트라-예측 모드들은 물론 인코딩되는 현재 블록에 대한 사이즈 정보 모두를 포함할 수도 있다.
어느 경우나, 비디오 인코더 (20) 는 블록에 대한 콘텍스트를 현재 블록에 대한 다양한 코딩 특성들에 맵핑하는 구성 데이터를 포함할 수도 있다. 예를 들어, 그 블록에 대한 콘텍스트에 기초하여, 구성 데이터는 하나 이상의 가장 가능성있는 인트라-예측 모드들, 인트라-예측 모드 인덱스 테이블, 및 가변 길이 코드 (VLC) 테이블을 표시할 수도 있다. 즉, 구성 데이터는 복수의 인트라-예측 모드 인덱스 테이블들 및 VLC 테이블들은 물론, 현재 블록에 대한 인코딩 콘텍스트에 기초하여 현재 블록에 대한 인트라-예측 모드의 표시를 인코딩하기 위하여 이용할 복수의 인트라-예측 모드 인덱스 테이블들 중 하나 및 VLC 테이블들 중 하나의 표시를 포함할 수도 있다. 더 나아가, 구성 데이터는 인코딩 콘텍스트에 기초하여, 현재 블록에 대한 하나 이상의 가장 가능성있는 모드의 표시를 제공할 수도 있다. 이용되는 가장 가능성있는 인트라-예측 모드들의 개수는, 하나의 가장 가능성있는 인트라-예측 모드가 항상 이용되도록 하고, 2 개의 가장 가능성있는 인트라-예측 모드들이 항상 이용되도록 하고, 3 개의 가장 가능성있는 인트라-예측 모드들이 항상 이용되도록 하며, 등등이 되도록 고정될 수도 있고, 또는 대안으로, 가장 가능성있는 인트라-예측 모드들의 개수는, 일부 콘텍스트들이 하나의 가장 가능성있는 인트라-예측 모드를 이용하는 한편, 다른 콘텍스트들이 2 개 이상의 가장 가능성있는 인트라-예측 모드들을 이용하도록 콘텍스트 의존적일 수도 있다.
모드 인덱스 테이블은 인트라-예측 모드들의 세트는 물론, 인트라-예측 모드들 각각에 맵핑된 인덱스들을 포함할 수도 있다. 일부 예들에서, 이용가능한 인트라-예측 모드들의 개수는 인코딩되는 블록의 사이즈에 의존할 수도 있고, 따라서, 복수의 인트라-예측 모드 인덱스 테이블들 및 VLC 테이블들은, 예를 들어 인코딩되는 블록의 사이즈 및/또는 다른 인자들에 의존하여 상이한 개수들의 엔트리들을 가질 수도 있다. 구성 데이터 내의 VLC 테이블들 및 인트라-예측 모드 인덱스 테이블들 간에는 1-대-다 관계가 존재할 수도 있다. 즉, 동일한 VLC 테이블이 하나 이상의 인트라-예측 모드 인덱스 테이블들로부터 선택된 인트라-예측 모드들을 인코딩하기 위하여 이용될 수도 있다. 이러한 방식으로, VLC 테이블들은 다중 인트라-예측 모드 인덱스 테이블들에 대하여 재이용될 수도 있다. 이와 유사하게, 동일한 인트라-예측 모드 인덱스 테이블들은 예를 들어, 2 개 이상의 콘텍스트들이 그러한 콘텍스트들에서 이용되는 동일한 세트의 인트라-예측 모드들 및 인트라-예측 모드들의 유사하거나 동일한 상대적인 우도들을 공유할 때 다양한 콘텍스트들에서 재사용될 수도 있다. 더욱이, 일부 경우들에서는, 동일한 인트라-예측 모드 인덱스 테이블 및 VLC 테이블이 특정 사이즈의 모든 블록들에 대하여 이용될 수도 있고, 가장 가능성있는 인트라-예측 모드는 예를 들어, 특정 사이즈의 블록에 대한 이웃하는 블록들에 대한 인트라-예측 모드들에 기초하여 결정될 수도 있다.
어느 경우나, 본 개시물의 기법들에 따르면, 비디오 인코더 (20) 는 블록에 대한 하나 이상의 가장 가능성있는 모드들을, 그 블록에 대한 인코딩 콘텍스트에 기초하여 결정할 수도 있을 뿐만 아니라, 인트라-예측 모드 인덱스 테이블 및 VLC 테이블을, 그 블록에 대한 인코딩 콘텍스트에 기초하여 결정할 수도 있다. 블록을 인코딩하기 위하여 이용할 인트라-예측 모드를 선택한 이후에, 비디오 인코더 (20) 는 선택된 인트라-예측 모드가 그 블록에 대한 가장 가능성있는 인트라-예측 모드인지 여부를 결정할 수도 있다. 선택된 모드가 가장 가능성있는 모드라면, 비디오 인코더 (20) 는 단일 비트 코드워드 (예를 들어, '0' 또는 '1') 또는 비트들의 시리즈를 이용하여 인트라-예측 모드를 시그널링할 수도 있다.
더욱이, 가장 가능성있는 인트라-예측 모드는 블록의 인코딩 콘텍스트에 기초하여 그 블록에 대하여 선택된 인트라-예측 모드 인덱스 테이블 내에 인덱스 값을 가질 수도 있다. 특히, 인트라-예측 모드 인덱스 테이블은 그 테이블 내에 각각의 인트라-예측 모드에 대한 고유한 인덱스 값을 포함할 수도 있다. m 이 가장 가능성있는 인트라-예측 모드에 대한 인덱스의 값을 나타낸다고 한다. 가장 가능성있는 인트라-예측 모드에 대한 코드워드는 개별적으로 시그널링될 수도 있기 때문에, VLC 테이블은 가장 가능성있는 인트라-예측 모드에 대한 추가적인 코드워드를 포함할 필요가 없다. 따라서, 이용가능한 인트라-예측 모드들의 세트가 0 내지 K 의 범위를 가지는 인덱스들의 범위에 맵핑되는 K + 1 개의 멤버들을 가진다면, VLC 테이블은 K 개의 코드워드들을 0 내지 K - 1 의 범위를 가지는 인덱스들에 할당할 수도 있다.
코드워드를 이러한 예시적인 방식에 따라서 결정하기 위하여, 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드가 아니며, j 개의 모드 인덱스 값을 가진다고 가정한다. 값 n j 에 대응하는 수정된 인트라-예측 모드의 인덱스를 나타낸다고 한다. 이전 설명에 따르면, 인덱스 n 에 맵핑되는 코드워드는 선택된 인트라 예측 모드 j 를 표시하기 위해 인코더로부터 디코더로 시그널링된다. 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 더 작다면, 비디오 인코더 (20) 는 j 에 대응하는 코드워드를 이용하여 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 다시 말하면, 만일 j < m 이라면, n = j 이다. 반면에, 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 더 크거나 동일하다면, 비디오 인코더 (20) 는 j - 1 에 대응하는 코드워드를 이용하여 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 다시 말하면, j ≥ m 이라면, n = j - 1 이다.
2 개 이상의 가장 가능성있는 인트라-예측 모드가 선택되는 실례들에서는, 비디오 인코더 (20) 는 인코딩된 비트 스트림 내에서, 제 1 비트 (예를 들어 '0' 또는 '1') 를 이용하여 선택된 모드가 결정된 가장 가능성있는 인트라-예측 모드들 중 하나인지 여부를 시그널링할 수도 있다. 선택된 모드가 결정된 가장 가능성있는 인트라-예측 모드들 중 하나라면, 비디오 인코더 (20) 는 제 2 비트를 이용하여 가장 가능성있는 인트라-예측 모드들 중 어느 것이 선택된 모드인지를 시그널링할 수도 있다. 선택된 모드가 결정된 가장 가능성있는 인트라-예측 모드들 중 하나가 아니라면, 비디오 인코더 (20) 는 VLC 테이블로부터의 코드워드를 이용하여 다른 인트라-예측 모드들 중 어느 것이 선택된 모드인지를 시그널링할 수도 있다. 다시 일반성의 상실 없이, 제 1 비트가 선택된 모드가 가장 가능성있는 인트라-예측 모드들 중 하나라는 것을 표시하기 위해 '0' 의 값을 갖고, 비디오 인코더 (20) 가 2 개의 가장 가능성있는 인트라-예측 모드들을 결정한다는 것을 가정하면, 비디오 인코더 (20) 는 2 개의 가장 가능성있는 인트라-예측 모드들 중 어느 것이 선택된 모드인지를 "00" 또는 "01" 의 값을 이용하여 시그널링할 수 있으며, 여기서 첫번째 0 이 제 1 비트를 나타낸다. 선택된 모드가 가장 가능성있는 인트라-예측 모드들 중 하나가 아니라면, 비디오 인코더 (20) 는 "1" 의 제 1 비트 다음에 코드워드를 시그널링함으로써 선택된 모드를 시그널링할 수 있다.
더욱이, 2 개의 가장 가능성있는 인트라-예측 모드들은 블록의 인코딩 콘텍스트에 기초하여, 그 블록에 대하여 선택된 인트라-예측 모드 인덱스 테이블 내에 인덱스 값들을 가질 수도 있다. 특히, 인트라-예측 모드 인덱스 테이블은 그 테이블 내에 각각의 인트라-예측 모드에 대한 고유한 인덱스 값을 포함할 수도 있다. m 1 이 제 1 의 가장 가능성있는 인트라-예측 모드에 대한 인덱스의 값을 나타내고 m 2 가 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 인덱스의 값을 나타낸다고 한다. 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 코드워드가 위에서 설명된 바와 같이 제 1 비트 및 제 2 비트를 이용하여 시그널링될 수도 있기 때문에, VLC 테이블은 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 추가적인 코드워드들을 포함할 필요가 없다. 따라서, 이용가능한 인트라-예측 모드들의 세트가 0 내지 K 의 범위를 가지는 인덱스들의 범위에 맵핑되는 K + 1 개의 멤버들을 가진다면, VLC 테이블은 K - 1 개의 코드워드들을 0 내지 K - 2 의 범위를 가지는 인덱스들에 할당할 수도 있다.
코드워드를 2 개의 가장 가능성있는 모드들이 식별되는 이 예시적인 방식에 따라서 결정하기 위하여, 선택된 인트라-예측 모드가 가장 가능성있는 인트라-예측 모드들 중 하나가 아니며, j 의 모드 인덱스 값을 가진다고 가정한다. 값 n j 에 대응하는 수정된 인트라-예측 모드를 나타낸다고 한다. 이전 설명에 따르면, 인덱스 n 에 맵핑되는 코드워드는 선택된 인트라 예측 모드 j 를 표시하기 위해 인코더로부터 디코더로 시그널링된다. 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 제 1 의 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 더 작다면, 비디오 인코더 (20) 는 j 에 대응하는 코드워드를 이용하여 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 다시 말하면, j < m 1 이라면, 그러면, n = j 이다. 반면에, 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 제 1 의 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 더 크거나 동일하지만 제 2 의 가장 가능성있는 인트라-예측 모드보다 더 작다면, 비디오 인코더 (20) 는 j - 1 에 대응하는 코드워드를 이용하여 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 다시 말하면, j ≥ m 1 이고 j < m 2 라면, n = j - 1 이다. 마지막으로, 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 더 크다면, 비디오 인코더 (20) 는 j - 2 에 대응하는 코드워드를 이용하여 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 인코딩할 수도 있다. 다시 말하면, j ≥ m 1 j ≥ m 2 라면, n = j - 2 이다. 나머지 인트라-예측 모드들에 대한 VLC 테이블들은 가장 가능성있는 모드들이 VLC 테이블들 내에 포함되지 않는다는 사실을 설명하도록 인덱스들을 재할당함으로써 보다 효율적으로 구성될 수 있으며, 이것은 하나 이상의 비선택된 가장 가능성있는 모드들이 선택된 모드의 것보다 더 작은 다르게 정의된 VLC 인덱스들을 가지는 경우에는 비트 절약에 이를 수 있다.
일부 예들에서, 비디오 인코더 (20) 는, 콘텍스트에 기초하여, 가장 가능성있는 모드에 의한 인트라-예측 모드의 선택을 위한 분석을 시작하도록 구성될 수도 있다. 가장 가능성있는 모드가 적절한 레이트-왜곡 특성들을 획득하는 경우, 일부 예들에서, 비디오 인코더 (20) 는 가장 가능성있는 모드를 선택할 수도 있다. 다른 예들에서는, 비디오 인코더 (20) 는 가장 가능성있는 모드에 의한 선택 프로세스를 시작할 필요가 없다.
예측 데이터 및 잔여 데이터를 생성하기 위한 인트라-예측 또는 인터-예측 코딩에 후속하여, 그리고 변환 계수들을 생성하기 위한 임의의 변환들 (예컨대 H.264/AVC 에서 이용되는 4×4 또는 8×8 정수 변환 또는 이산 코사인 변환 (DCT)) 에 후속하여, 변환 계수들의 양자화가 수행될 수도 있다. 양자화는 일반적으로 변환 계수들이 양자화되어 계수들을 나타내기 위하여 이용되는 데이터의 양을 감소시키는 것이 가능한 프로세스를 지칭한다. 양자화 프로세스는 계수들 중 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수도 있다. 예를 들어, n 비트 값이 양자화 동안 m 비트 값으로 내림 (round down) 될 수도 있으며, 여기서 n m 보다 더 크다.
양자화에 후속하여, 양자화된 데이터의 엔트로피 코딩은, 예를 들어, 콘텐츠 적응 가변 길이 코딩 (content adaptive variable length coding; CAVLC), 콘텍스트 적응 이진 산술 코딩 (context adaptive binary arithmetic coding; CABAC), 또는 다른 엔트로피 코딩 방법론에 따라 수행될 수도 있다. 엔트로피 코딩을 위하여 구성된 프로세싱 유닛, 또는 다른 프로세싱 유닛은, 양자화된 계수들의 제로 런 길이 코딩과 같은 다른 프로세싱 기능들 및/또는 코딩된 블록 패턴 (coded block pattern; CBP) 값들, 매크로블록 타입, 코딩 모드, 코딩된 유닛 (예컨대 프레임, 슬라이스, 매크로블록, 또는 시퀀스) 에 대한 최대 매크로블록 사이즈 등과 같은 구문 정보의 생성을 수행할 수도 있다.
비디오 디코더 (30) 는 궁극적으로 인코딩된 비디오 데이터를, 예를 들어, 모뎀 (28) 및 수신기 (26) 로부터 수신할 수도 있다. 본 개시물의 기법들에 따르면, 비디오 디코더 (30) 는 비디오 데이터의 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드를 나타내는 코드워드를 수신할 수도 있다. 비디오 디코더 (30) 는 그 블록에 대한 코딩 콘텍스트를 비디오 인코더 (20) 와 실질적으로 유사한 방식으로 결정하도록 구성될 수도 있다. 더욱이, 비디오 디코더 (30) 는 비디오 인코더 (20) 와 유사한 구성 데이터, 예를 들어, 가장 가능성있는 모드의 표시들, 인트라-예측 모드 인덱스 테이블, 및 각각의 코딩 콘텍스트에 대한 VLC 테이블을 포함할 수도 있다.
하나의 가장 가능성있는 인트라-예측 모드를 이용하는 경우에, 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드가 가장 가능성있는 모드인지를 표시하기 위해 단일 비트가 이용될 수도 있다. 선택된 모드가 가장 가능성있는 모드가 아닌 것으로 결정된다면, 비디오 디코더 (30) 는 비디오 인코더 (20) 와 일반적으로 상반된 방식으로 비디오 데이터의 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드를 결정할 수도 있다.
구체적으로 설명하면, 다시 n 이 VLC 테이블 내의 수신된 코드워드가 맵핑되는 수정된 인트라-예측 모드의 인덱스를 나타내고, j 가 코딩된 블록을 디코딩하기 위하여 이용될 인트라-예측 모드의 모드 인덱스를 나타내며, m 이 가장 가능성있는 모드의 모드 인덱스를 나타낸다고 한다. 수정된 인트라-예측 모드 인덱스 n 이 가장 가능성있는 모드의 모드 인덱스 m 보다 더 작다면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n 을 가지는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 즉, n < m 이라면, j = n 이다. 반면에, 수정된 인트라-예측 모드 인덱스 n 이 가장 가능성있는 모드의 모드 인덱스 m 보다 더 크거나 동일하다면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n + 1 을 가지는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 다시 말하면, nm 이라면, j = n + 1 이다.
2 개 이상의 가장 가능성있는 인트라-예측 모드들을 이용하는 경우, 코드워드가 선택된 모드가 2 개의 가장 가능성있는 인트라-예측 모드들 중 하나라는 것을 표시하는 제 1 비트를 포함한다면, 비디오 디코더 (30) 는 2 개 이상의 가장 가능성있는 인트라-예측 모드들 중 어느 것이 선택된 모드에 대응하는지를 식별하는 추가적인 비트들에 기초하여 코딩된 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드를 결정할 수도 있다. 제 1 비트가, 선택된 모드가 2 개의 가장 가능성있는 인트라-예측 모드들 중 하나가 아니라는 것을 표시한다면, 비디오 디코더 (30) 는 비디오 인코더 (20) 와 일반적으로 상반된 방식으로 비디오 데이터의 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드를 결정할 수도 있다.
구체적으로, 다시 n 이 VLC 테이블 내의 수신된 코드워드가 맵핑되는 수정된 인트라-예측 모드의 인덱스를 나타내고, j 가 코딩된 블록을 디코딩하기 위하여 이용될 인트라-예측 모드의 모드 인덱스를 나타내고, m 1 이 제 1 의 가장 가능성있는 모드의 모드 인덱스를 나타내며, m 2 가 제 2 의 가장 가능성있는 모드의 모드 인덱스를 나타낸다고 한다. 이전에 진술된 바와 같이, m 1 의 모드 인덱스가 m 2 의 모드 인덱스보다 더 낮다는 것이 가정될 수 있다. 수정된 인트라-예측 모드 인덱스 n 이 제 1 의 가장 가능성있는 모드의 모드 인덱스 m 1 보다 더 작다면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n 을 가지는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 즉, n < m 1 이라면, j = n 이다. 그렇지 않고, 수정된 인트라-예측 모드 인덱스에 1 을 더한 것 (n + 1) 이 제 2 의 가장 가능성있는 모드에 대한 모드 인덱스 m 2 보다 더 작다면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n + 1 을 가지는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 다시 말하면, n + 1 < m 2 라면, j = n + 1 이다. 그렇지 않다면, 비디오 디코더 (30) 는 코딩된 블록을 인덱스 n + 2 를 가지는 인트라-예측 모드를 이용하여 디코딩할 수도 있다. 다시 말하면, n + 1 ≥ m 2 라면, j = n + 2 이다.
2 개의 가장 가능성있는 모드들에 대하여, 비디오 인코더 (20) 에 의하여 수행되는 바와 같은, 모드 인덱스들의 수정된 인트라-예측 모드 인덱스들에 대한 맵핑은, 따라서 후속하는 의사 코드에 의하여 나타내질 수 있다:
if (j m 2 )
n = j - 2
else if (j m 1 )
n = j - 1
else
n = j.
N 개의 가장 가능성있는 모드들에 대하여 (여기서 m 1 은 제 1 의 가장 가능성있는 모드를 나타내고, m N 은 제 N 의 가장 가능성있는 모드를 나타낸다), 비디오 인코더 (20) 에 수행되는 바와 같은, 모드 인덱스들의 수정된 인트라-예측 모드 인덱스들에 대한 맵핑은, 따라서 후속하는 의사 코드에 의하여 나타내질 수 있다:
if (j m N )
n = j - N
else if (j m N -1 )
n = j - N + 1
else if (j m 2 )
n = j - 2
else if (j m 1 )
n = j - 1
else
n = j.
2 개의 가장 가능성있는 모드들에 대하여, 비디오 디코더 (30) 에 의하여 수행되는 바와 같은, 수정된 인트라-예측 모드 인덱스의 모드 인덱스에 대한 맵핑은, 따라서 후속하는 의사 코드에 의하여 나타내질 수 있다:
if (n < m 1 )
j = n;
else if (n + 1 < m 2 )
j = n + 1;
else
j = n + 2.
N 개의 가장 가능성있는 모드들에 대하여, 비디오 디코더 (30) 에 의하여 수행되는 바와 같은, 수정된 인트라-예측 모드 인덱스의 모드 인덱스에 대한 맵핑은, 따라서 후속하는 의사 코드에 의하여 나타내질 수 있다:
if (n < m 1 )
j = n;
else if (n + 1 < m 2 )
j = n + 1;
else if (n + 2 < m 3 )
j = n + 2;
else if (n + 3 < m 4 )
j = n + 3;
. . . .
else if (n + (N - 1) < m N )
j = n + (N - 1)
else
j = n + N.
본 개시물의 기법들에 따르면, 모드들은 또한 대응하는 코드워드들을 표시하는 코드워드 인덱스들에 직접 맵핑될 수도 있다. 일반적으로, 더 낮은 코드워드 인덱스 값들은 더 짧은 코드워드들에 할당되고, 더 높은 코드워드 인덱스 값들은 더 긴 코드워드들에 할당된다. 위에서 설명되는 수정된 인트라-예측 모드 인덱스들과 유사한 방식으로, 모드 인덱스에 대응하는 인덱스를 가지는 코드워드를 전송하는 대신에, 수정된 코드워드 인덱스를 가지는 코드워드를 전송함으로써 비트 절약이 달성될 수도 있으며, 여기서 이러한 수정은 가장 가능성있는 모드들과 원래 연관되는 코드워드 인덱스들을 이용하여 가장 가능성있는 모드들이 아닌 모드들을 표시하는 것의 결과이다. 위에서 설명된 바와 같이 가장 가능성있는 모드들이 초기 비트들 또는 비트들의 시리즈를 이용하여 시그널링되기 때문에, 가장 가능성있는 모드들은 가장 가능성있는 모드들 중 하나가 아닌 모드의 코드워드 인덱스를 시그널링할 경우에 고려사항으로부터 제외될 수 있다. 결과적으로, 가장 가능성있는 모드들의 하나에 원래 맵핑되는 코드워드 인덱스가 가장 가능성있는 모드들 중 하나가 아닌 모드를 표시하기 위하여 이용될 수 있다.
예를 들어, 위의 수정된 인트라-예측 모드들에서와 같이, 2 개의 가장 가능성있는 인트라-예측 모드들이 이용된다고 가정하면, 이용가능한 인트라-예측 모드들의 세트가 0 내지 K 의 범위를 가지는 코드워드 인덱스들의 범위에 맵핑되는 K + 1 개의 멤버들을 가진다면, 수정된 코드워드 인덱스들의 테이블은 K - 1 개의 코드워드들을 0 내지 K - 2 의 범위를 가지는 코드워드 인덱스들에 할당할 수도 있다.
C 가 코드워드 인덱스를 나타내고, C mod 가 수정된 코드워드 인덱스를 나타낸다고 가정한다. 더 나아가, C m1 이 가장 가능성있는 모드의 최저 코드워드 인덱스를 나타내고, C m2 가 가장 가능성있는 모드에 대응하는 제 2 의 최저 코드워드 인덱스를 나타내며, 등등이라고 가정한다. 이하 더 상세히 설명되는 바와 같이, 모드들의 코드워드 인덱스들에 대한 맵핑은 동적일 수도 있다. 따라서, 최저 모드 인덱스를 가지는 제 1 의 가장 가능성있는 모드는 또한 최저 코드워드 인덱스를 갖지 않을 수도 있다. 따라서, C m1 은 반드시 제 1 의 가장 가능성있는 모드에 대응할 필요가 없을 수도 있고, C m2 는 제 2 의 가장 가능성있는 모드에 대응하지 않을 수도 있으며, 등등이다. N 개의 가장 가능성있는 모드들에 대하여, 비디오 인코더 (20) 에 의하여 수행되는 바와 같은, 코드워드 인덱스들의 수정된 코드워드 인덱스들에 대한 맵핑은, 따라서 후속하는 의사 코드에 의하여 나타내질 수 있다:
if (C C mN )
C mod = C - N
else if (C C mN -1 )
C mod = C - N + 1
. . . .
else if (C ≥ C m2 )
C mod = C - 2
else if (C ≥ C m1 )
C mod = C - 1
else
C mod = C.
N 개의 가장 가능성있는 모드들에 대하여, 비디오 디코더 (30) 에 의하여 수행되는 바와 같은, 수정된 코드워드 인덱스들의 코드워드 인덱스들에 대한 맵핑은, 따라서 후속하는 의사 코드에 의하여 나타내질 수 있다:
if (C mod < C m1 )
C = C mod ;
else if (C mod + 1 < C m2 )
C = C mod + 1;
else if (C mod + 2 < C m3 )
C = C mod + 2;
else if (C mod +3 < C m4 )
C = C mod + 3;
. . . .
else if (C mod + (N - 1) < C mN )
C = C mod + (N - 1)
else
C = C mod + N.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 적용가능한 것처럼, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP) 들, 주문형 집적회로 (ASIC) 들, 필드 프로그램가능 게이트 어레이 (FPGA) 들, 이산 로직 회로, 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 조합과 같이, 다양한 적합한 인코더 또는 디코더 회로 중 임의의 것으로서 구현될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있는데, 이들 중 하나는 결합된 비디오 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 를 포함하는 장치는 집적 회로, 마이크로프로세서, 및/또는 무선 통신 디바이스, 예컨대 셀룰러 전화기를 포함할 수도 있다.
도 2 는, 인트라-예측 모드를 표시하는 정보를 코딩하기 위한 기법들을 구현할 수도 있는 비디오 인코더 (20) 의 일 예를 도시하는 블록도이다. 비디오 인코더 (20) 는, 매크로블록들, 또는 매크로블록들의 파티션들 또는 서브-파티션들을 포함하는, 비디오 프레임들 내의 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 주어진 비디오 프레임 내의 비디오에서의 공간적 리던던시를 감소 또는 제거하기 위해 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접 프레임들 내의 비디오에서의 시간적 리던던시를 감소 또는 제거하기 위해 시간적 예측에 의존한다. 인트라-예측 모드 (I-모드) 는 수개의 공간적 기반 압축 모드들 중 임의의 것을 지칭할 수도 있으며, 단방향성 예측 (P-모드) 또는 양방향성 예측 (B-모드) 과 같은 인터-모드들은 수개의 시간적 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다. 비록 인터-모드 인코딩을 위한 컴포넌트들이 도 2 에 도시되지만, 비디오 인코더 (20) 는 인트라-예측 모드 인코딩을 위한 컴포넌트들도 역시 포함할 수도 있다는 것이 이해되어야 한다. 그러나, 이러한 컴포넌트들은 간략화 및 명확화를 위하여 도시되지 않는다.
도 2 에 도시된 바와 같이, 비디오 인코더 (20) 는 인코딩될 비디오 프레임 내의 현재 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (20) 는 모션 보상 유닛 (44), 모션 추정 유닛 (42), 메모리 (64), 합산기 (50), 변환 유닛 (52), 양자화 유닛 (54), 및 엔트로피 코딩 유닛 (56) 을 포함한다. 비디오 블록 재구성을 위하여, 비디오 인코더 (20) 는 역양자화 유닛 (58), 역변환 유닛 (60), 및 합산기 (62) 를 더 포함한다. 디블록킹 필터 (deblocking filter) (도 2 에는 미도시) 도 포함되어 블록 경계들을 필터링하여 재구성된 비디오로부터 블록화 아티팩트 (blockiness artifact) 들을 제거할 수도 있다. 원하는 경우에는, 디블록킹 필터는 통상 합산기 (62) 의 출력을 필터링할 것이다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 하나 이상의 참조 프레임들 내의 하나 이상의 블록들에 대하여 수신된 비디오 블록의 인터-예측 코딩을 수행하여 시간적 압축을 제공한다. 인트라-예측 유닛 (46) 은 코딩될 블록과 동일한 프레임 또는 슬라이스 내의 하나 이상의 이웃하는 블록들에 대하여 수신된 비디오 블록의 인트라-예측 코딩을 수행하여 공간적 압축을 제공할 수도 있다.
모드 선택 유닛 (40) 은 인트라 또는 인터의 코딩 모드들 중 하나를, 예를 들어 에러 결과들에 기초하여 그리고 코딩되는 현재 블록을 포함하는 프레임 또는 슬라이스에 대한 프레임 또는 슬라이스 타입에 기초하여 선택하고, 결과의 인트라- 또는 인터-코딩된 블록을 합산기 (50) 에 제공하여 잔여 블록 데이터를 생성하고 합산기 (62) 에 제공하여 참조 프레임 또는 참조 슬라이스 내에서의 이용을 위한 인코딩된 블록을 재구성할 수도 있다. 일반적으로, 인트라-예측은 이웃하는, 이전에 코딩된 블록들에 대하여 현재 블록을 예측하는 것을 수반하는 한편, 인터-예측은 모션 예측 및 모션 보상을 수반하여 현재 블록을 시간적으로 예측한다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 비디오 인코더 (20) 의 인터-예측 엘리먼트들을 나타낸다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고집적화될 수도 있지만, 개념적인 이해들을 위한 목적으로 개별적으로 예시된다. 모션 추정은 비디오 블록들에 대한 모션을 추정하는, 모션 벡터들을 생성하기 위한 프로세스이다. 예를 들어, 모션 벡터는 현재 프레임 (또는 다른 코딩된 유닛) 내의 코딩되는 현재 블록에 대하여 예측 참조 프레임 (또는 다른 코딩된 유닛) 내의 예측 블록의 변위를 표시할 수도 있다. 예측 블록은 픽셀 차이의 관점에서, 코딩될 블록과 밀접하게 매칭되는 것으로 확인되는 블록인데, 이것은 절대 차이의 합 (sum of absolute difference; SAD), 제곱 차이의 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들 (metrics) 에 의하여 결정될 수도 있다. 또한, 모션 벡터는 매크로블록의 파티션의 변위를 표시할 수도 있다. 모션 보상은 모션 추정에 의하여 결정되는 모션 벡터에 기초하여 예측 블록을 페치 (fetch) 하거나 생성하는 것을 수반할 수도 있다. 다시, 모션 추정 유닛 (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) 은 현재 블록을 다양한 인트라-예측 모드들을 이용하여, 예를 들어, 별개의 인코딩 패스들 동안 인코딩할 수도 있고, 인트라-예측 유닛 (46) (또는, 일부 예들에서는 모드 선택 유닛 (40)) 은 테스트된 모드들로부터 이용할 적합한 인트라-예측 모드를 선택할 수도 있다. 예를 들어, 인트라-예측 유닛 (46) 은 다양한 테스트된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산하고, 테스트된 모드들 중에서 최적의 레이트-왜곡 특성들을 가지는 인트라-예측 모드를 선택할 수도 있다. 일반적으로 레이트-왜곡 분석은 인코딩된 블록과 인코딩된 블록을 생성하기 위하여 인코딩되었던 원래의 인코딩되지 않은 블록 사이의 왜곡 (또는 에러) 의 양은 물론, 인코딩된 블록을 생성하는데 이용되는 비트 레이트 (즉, 비트들의 개수들) 를 결정한다. 인트라-예측 유닛 (46) 은 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들 (ratios) 을 계산하여 어느 인트라-예측 모드가 그 블록에 대한 최적의 레이트-왜곡 값을 제공하는지를 결정할 수도 있다.
어느 경우나, 블록에 대한 인트라-예측 모드를 선택한 이후에, 인트라-예측 유닛 (46) 은 그 블록에 대하여 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 코딩 유닛 (56) 은 본 개시물의 기법들에 따라서 선택된 인트라-예측 모드를 표시하는 정보를 인코딩할 수도 있다. 도 2 에 도시된 바와 같이, 비디오 인코더 (20) 는 구성 데이터 (66) 를 포함할 수도 있으며, 이 구성 데이터는 복수의 인트라-예측 모드 인덱스 테이블들 및 복수의 수정된 인트라-예측 모드 인덱스 테이블들 (또한, 코드워드 맵핑 테이블들이라고도 지칭됨), 다양한 블록들에 대한 인코딩 콘텍스트들의 정의들, 가장 가능성있는 인트라-예측 모드의 표시들, 인트라-예측 모드 인덱스 테이블, 및 콘텍스트들의 각각에 대하여 이용하기 위한 수정된 인트라-예측 모드 인덱스 테이블을 포함할 수도 있다.
아래의 테이블 1 은 인트라-예측 모드 인덱스들, 대응하는 인트라-예측 모드들, 및 모드들 중 어느 것이 특정 콘텍스트에 대하여 가장 가능성있는 모드인지의 표시의 일 예를 나타낸다. 또한, 테이블 1 은, 이러한 특정 예 내에서 각각의 모드 인덱스에 맵핑하는 수정된 인트라-예측 모드 인덱스들을 도시한다. 테이블 2 는 코드워드들을, 일반적으로 테이블 1 의 모드 인덱스들에 대응하는 수정된 인트라-예측 모드 인덱스들에 맵핑하는 예시적인 맵핑 테이블을 제공한다. 위에서 논의된 바와 같이, 2 개 이상의 가장 가능성있는 모드가 또한 이용될 수도 있지만, 테이블 1 및 테이블 2 의 예들은 오직 하나의 가장 가능성있는 모드만이 이용된다는 것을 가정한다. 하나의 가장 가능성있는 모드가 이용되기 때문에, 테이블 2 는 테이블 1 보다 하나 더 적은 엔트리를 포함한다. 가장 가능성있는 모드가 나머지 모드들과는 개별적으로 시그널링되기 때문에, 모드 인덱스 5 는 대응하는 수정된 인트라-예측 모드 인덱스를 가지지 않는다. 이와 유사하게, 테이블 2 는 가장 가능성있는 모드에 대한 코드워드를 포함할 필요가 없다.
Figure 112013038457049-pct00001
Figure 112013038457049-pct00002
예를 들기 위한 목적으로, m 이 테이블 1 내의 가장 가능성있는 모드의 모드 인덱스를 나타내고, n j 에 대응하는 수정된 인트라-예측 모드의 인덱스를 나타낸다고 한다. 선택된 모드가 가장 가능성있는 모드라면, 제 1 비트 (예를 들어 "0") 가 이 예에서는 그 모드를 나타내기 위하여 이용되고, 이 모드가 테이블 1 (이 예에서는, 수직-우측) 에 의하여 표시되는 바와 같이 가장 가능성있는 모드인 것으로 결정된다. 0 이 아닌 제 1 비트 (즉 "1") 가 전송된다면, 그 모드는 가장 가능성있는 모드가 아니다. n 이 그 모드를 나타내기 위하여 전송되는 코드워드에 의하여 표시되는 수정된 인트라-예측 모드 인덱스에 대응한다고 한다. 인덱스 n 에 맵핑되는 코드워드는 선택된 인트라 예측 모드 j 를 표시하기 위해 인코더로부터 디코더로 시그널링된다. 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 더 작다면, 비디오 인코더 (20) 는 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 j 에 대응하는 코드워드를 이용하여 인코딩할 수도 있다. 다시 말하면, j < m 이라면, n = j 이다. 반면에, 선택된 인트라-예측 모드에 대한 모드 인덱스 값이 가장 가능성있는 인트라-예측 모드의 모드 인덱스 값보다 더 크거나 동일하다면, 비디오 인코더 (20) 는 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 j - 1 에 대응하는 코드워드를 이용하여 인코딩할 수도 있다. 다시 말하면, 만일 jm 이라면, n = j - 1 이다.
디코더, 예컨대 디코더 (30) 는 일반적으로 인코더 (20) 와 반대의 맵핑을 수행할 것이다. 따라서, 만일 n < m 이라면, 디코더 (30) 는 모드 인덱스가 n 과 동일하다고 결정할 수 있다. 반면에, 만일 nm 이라면, 모드 인덱스는 n + 1 과 동일하다. 다시 말하면, 수정된 인트라-예측 모드 인덱스 (예를 들어, 전송된 코드워드에 대응하는, 테이블 2 로부터의 수정된 인트라-예측 모드 인덱스) 가 (이 예에서는, 테이블 1 로부터의) 가장 가능성있는 모드의 인덱스보다 더 크거나 동일하다면, 인트라-예측 모드는 사실상 n 이 아니라 n + 1 에 의하여 표시된다. 이러한 방식으로, 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드에 대한 모드 인덱스 (예를 들어, n + 1) 가 가장 가능성있는 인코딩 모드에 대한 인덱스 (m) 보다 더 크다면, 선택된 인트라-예측 모드를 나타내기 위하여 이용되는 코드워드는, 현재 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드에 대한 모드 인덱스 (n + 1) 보다 1 이 더 작은 수정된 인트라-예측 모드 인덱스 (n) 에 대응한다.
일 예로서, 테이블 1 및 테이블 2 의 예들에 대하여, 수직-우측의 가장 가능성있는 모드를 표시하는 콘텍스트를 가지는 현재 블록에 대하여, 선택된 모드가 수평-하측이라고 가정한다. 이 예에서는 가장 가능성있는 모드에 대한 인덱스 m 은 5 인 한편, (테이블 1 에 대하여) 선택된 모드에 대한 모드 인덱스는 8 이다. 이 예에서는, 선택된 모드에 대한 모드 인덱스가 가장 가능성있는 모드에 대한 모드 인덱스보다 더 크기 때문에, n = j - 1 이며, 여기서 n 은 수정된 인트라 예측 모드의 인덱스이고 7 과 동일하다. 따라서, 이 예에서는 테이블 2 에서 비디오 인코더 (20) 는 선택된 모드를 나타내기 위하여 코드워드 11111 을 이용할 것이다. 코드워드 11111 은 선택된 모드가 가장 가능성있는 모드가 아니라는 것을 표시하는 초기 비트에 후속할 것이다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 및 코드워드 11111 을 수신하고 n 의 값이 7 이라고 결정할 것이다. 이 예에서는, 7 이 5 보다 더 크기 때문에 (즉, nm), 비디오 디코더 (30) 는 테이블 1 로부터, 이 예에서는 수평-하측에 대응하는 8 인 모드 인덱스 n + 1 을 가지는 모드를 취출할 것이다.
다른 예로서, 다시 테이블 1 및 테이블 2 의 예들에 대하여, 현재 블록에 대하여 선택된 모드가 DC 라고 가정한다. 다시, 가장 가능성있는 모드에 대한 인덱스 m 은 이 예에서는 5 인 한편, (테이블 1 에 대하여) 선택된 모드에 대한 모드 인덱스는 0 이다. 이 예에서는, 선택된 모드에 대한 모드 인덱스가 가장 가능성있는 모드에 대한 모드 인덱스보다 더 작기 때문에, 모드 인덱스는 n 과 동일하며, 여기서 n 은 수정된 인트라-예측 모드 인덱스이다. 따라서, 테이블 2 에서 비디오 인코더 (20) 는, 이 예에서는 코드워드 0 을 이용하여 선택된 모드를 나타낼 것이다. 코드워드 0 은 선택된 모드가 가장 가능성있는 모드가 아니라는 것을 표시하는 초기 비트에 후속할 것이다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 및 코드워드 0 을 수신하고 n 의 값이 0 이라고 결정할 것이다. 이 예에서는, 0 이 5 보다 더 작기 때문에 (즉, n < m), 비디오 디코더 (30) 는 테이블 1 로부터, 이 예에서는 DC에 대응하는 0 인 모드 인덱스 n 을 가지는 모드를 취출할 것이다.
아래의 테이블 3 은 인트라-예측 모드 인덱스들, 대응하는 인트라-예측 모드들, 및 모드들 중 어느 것이 특정 콘텍스트에 대한 가장 가능성있는 모드인지의 표시의 일 예를 나타낸다. 또한, 테이블 3 은 이 특정 예에서 각각의 모드 인덱스에 맵핑하는 수정된 인트라-예측 모드 인덱스들을 도시한다. 테이블 4 는 코드워드들을 일반적으로 테이블 3 의 모드 인덱스들에 대응하는 수정된 인트라-예측 모드 인덱스들에 맵핑하는 맵핑 테이블의 일 예를 제공한다. 위에서 논의된 바와 같이, 3 개 이상의 가장 가능성있는 모드들이 또한 이용될 수도 있지만, 테이블 3 및 테이블 4 의 예들은 오직 2 개의 가장 가능성있는 모드들만이 이용된다는 것을 가정한다. 2 개의 가장 가능성있는 모드들이 이용되기 때문에, 테이블 4 는 테이블 3 보다 2 개의 더 적은 엔트리들을 포함한다.
Figure 112013038457049-pct00003
Figure 112013038457049-pct00004
특히, m 1 이 테이블 3 내에서 제 1 의 가장 가능성있는 모드의 모드 인덱스를 나타내고, m 2 가 제 2 의 가장 가능성있는 모드의 모드 인덱스를 나타낸다고 한다. 선택된 모드가 가장 가능성있는 모드들 중 하나라면, 제 1 비트 (예를 들어 "0") 가 그 모드가 2 개의 가장 가능성있는 모드들 중 하나라는 것을 시그널링하기 위하여 이용된다. 모드가 2 개의 가장 가능성있는 모드들 중 하나라면, 제 2 비트가 2 개의 가장 가능성있는 모드들 중 어느 것이 선택된 모드에 대응하는지를 시그널링하기 위하여 이용된다. 따라서, 2 개의 가장 가능성있는 모드들은 각각 "00" 및 "01" 의 초기 비트 시퀀스들로 시그널링될 수 있다. "0" 이 아닌 제 1 비트 (즉 "1") 가 전송된다면, 선택된 모드는 2 개의 가장 가능성있는 모드들 중 하나가 아니다. n 이 모드를 나타내기 위하여 전송되는 코드워드에 의하여 표시되는 수정된 인트라-예측 모드 인덱스에 대응한다고 한다.
비디오 인코더 (20) 는 선택된 모드 (j) 의 모드 인덱스를 결정하고 그 모드 인덱스를 수정된 모드 인덱스 (n) 에 맵핑할 수 있다. jm 2 라면, n = j - 2 이다. 그렇지 않고, jm 1 이라면, n = j - 1 이다. 그렇지 않다면, n = j 이다. 비디오 디코더 (30) 는 수정된 인트라-예측 모드 인덱스 (n) 를 수신하고 먼저 n m 1 과 비교할 수 있다. n < m 1 이라면, 모드 인덱스 (j) 는 n 과 동일하다. n m 1 보다 더 작지 않다면, n + 1 이 m 2 와 비교될 수 있다. n + 1 < m 2 라면, 모드 인덱스는 n + 1 과 동일하다. 그렇지 않다면, 모드 인덱스는 n + 2 와 동일하다.
일 예로서, 테이블 3 및 테이블 4 의 예들에 대하여, 수직-좌측 및 대각선 아래/좌측의 가장 가능성있는 모드들을 표시하는 콘텍스트를 가지는 현재 블록에 대하여, 선택된 모드가 수평-하측이라고 가정한다. 가장 가능성있는 모드들에 대한 인덱스들 m 1 m 2 는 이 예에서는 4 및 6 인 한편, (테이블 3 에 대하여) 선택된 모드에 대한 모드 인덱스 j 는 8 이다. 이 예에서는, 선택된 모드에 대한 모드 인덱스가 가장 가능성있는 모드들 모두에 대한 모드 인덱스보다 더 크기 때문에, 모드 인덱스 j n + 2 와 동일하며, 여기서 n 은 테이블 4 에서의 수정된 인트라-예측 모드의 인덱스와 동일하다. 따라서, 모드 인덱스 j 가 8 과 동일하다면, n = 6 이다. 따라서, 비디오 인코더 (20) 는, 이 예에서는 코드워드 1111 을 이용하여 선택된 모드를 나타낼 것이다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 코드워드 1111 을 수신하고 n 의 값이 6 이라고 결정할 것이다. 이 예에서는, 6 이 4 보다 더 작지 않고 (즉 nm 1 ) 6 에 1 을 더한 것이 6 보다 더 작지 않기 때문에 (즉, n + 1 ≥ m 2 ), 비디오 디코더 (30) 는 테이블 3 으로부터, 이 예에서는, 수평-하측에 대응하는 8 인 n + 2 와 동일한 모드 인덱스 j 를 가진 모드를 취출할 것이다.
다른 예로서, 다시 테이블 3 및 테이블 4 의 예들에 대하여, 현재 블록에 대하여, 선택된 모드가 DC 라고 가정한다. 다시, 가장 가능성있는 모드들에 대한 인덱스들 m 1 m 2 는 이 예에서는, 4 및 6 인 한편, (테이블 3 에 대하여) 선택된 모드에 대한 모드 인덱스 j 는 0 이다. 이 예에서는, 선택된 모드에 대한 모드 인덱스가 가장 가능성있는 모드들 모두에 대한 모드 인덱스들보다 더 작기 때문에 (즉 n < m 1 ), 모드 인덱스 j n 과 동일하며, 여기서 n 은 테이블 4 내의 수정된 인트라-예측 모드의 인덱스와 동일하다. 따라서 n 은 0 과 동일하다. 따라서, 테이블 4 에 기초하여 비디오 인코더 (20) 는 이 예에서, 선택된 모드를 나타내기 위하여 코드워드 0 을 이용할 것이다. 코드워드 0 은 선택된 모드가 가장 가능성있는 모드가 아니라는 것을 표시하는 초기 비트 또는 비트들의 시리즈에 후속한다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 또는 비트들의 시리즈 및 코드워드 0 을 수신하고 n 의 값이 0 이라고 결정할 것이다. 이 예에서는, 0 이 4 및 6 보다 더 작기 때문에 (즉, n < m 1 ), 비디오 디코더 (30) 는 테이블 3 으로부터, 이 예에서는 DC 에 대응하는 0 인 n 과 동일한 모드 인덱스 j 를 가지는 모드를 취출할 것이다.
또 다른 예로서, 테이블 3 및 테이블 4 의 예들에 대하여, 현재 블록에 대하여 선택된 모드가 수직-우측이라고 가정한다. 가장 가능성있는 모드들에 대한 인덱스들 m 1 m 2 은 이 예에서는 4 및 6 인 한편, (테이블 3 에 대하여) 선택된 모드에 대한 모드 인덱스 j 는 5 이다. 이 예에서는, 선택된 모드에 대한 모드 인덱스가 제 1 의 가장 가능성있는 모드에 대한 모드 인덱스보다 더 크거나 동일하지만 제 2 의 가장 가능성있는 모드에 대한 모드 인덱스보다 더 작기 때문에, 모드 인덱스 j n + 1 과 동일하며, 여기서 n 은 테이블 4 내의 수정된 인트라-예측 모드의 인덱스와 동일하다. 따라서, 모드 인덱스 j 가 5 라면, n = 4 이다. 따라서, 비디오 인코더 (20) 는 이 예에서는 코드워드 1101 을 이용하여 선택된 모드를 나타낼 것이다. 코드워드 1101 은 선택된 모드가 가장 가능성있는 모드가 아니라는 것을 표시하는 초기 비트 또는 비트들의 시리즈에 후속한다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 및 비트들의 시리즈 및 코드워드 1101 을 수신하고 n 의 값이 4 라고 결정할 것이다. 이 예에서는, 4 가 4 보다 더 크거나 동일하지만 4 에 1 을 더한 것이 6 보다 더 작기 때문에 (즉, nm 1 이지만 n + 1 < m 2 ), 비디오 디코더 (30) 는 테이블 3 으로부터, 이 예에서는 수직-우측에 대응하는 5 인 n + 1 과 동일한 모드 인덱스 j 를 가지는 모드를 취출할 것이다.
테이블 1, 테이블 2, 테이블 3, 및 테이블 4 는 가장 가능성있는 모드들, 모드들에 대한 인덱스들, 및 다양한 인덱스들에 할당된 코드워드들에 대한 테이블들의 예들일 뿐이라는 것이 이해되어야 한다. 다른 예들에서는, 다른 모드들이, 예를 들어, 소정의 블록에 대한 인코딩 콘텍스트에 기초하여 가장 가능성있는 것으로 결정될 수도 있다. 예를 들어, 가장 가능성있는 모드는 좌측- 및 상측-이웃하는 블록들을 인코딩하기 위하여 이용되는 인코딩 모드들에 기초하여 결정될 수도 있다. 구성 데이터 (66) 는, 테이블 1 및 테이블 3 의 예들과 일반적으로 유사한, 가장 가능성있는 모드인 것으로서 식별된 상이한 인코딩 모드들과 연관된 복수의 상이한 테이블들을 포함할 수도 있다. 이와 유사하게, 구성 데이터 (66) 는 특정 모드의 이용 확률이 그의 코드워드의 길이에 반비례하도록 하는 가장 가능성있는 모드들을 상대적으로 짧은 코드워드 (예를 들어, 1 또는 2 비트 코드워드) 에 맵핑하고 나머지 인덱스들을 코드워드들에 맵핑하는 복수의 코드워드 맵핑 테이블들, 예컨대 테이블 2 및 테이블 4 를 포함할 수도 있다. 또한, 가장 가능성있는 모드들 및 임의의 주어진 실례에 대한 코딩 테이블들은 그 실례에서 이용되는 인코딩 모드 대신에 또는 이에 추가하여 콘텍스트들의 타입들에 기초하여 정의될 수도 있다. 이러한 방식들에서, 상대적으로 더 높은 확률 인코딩 모드들이 상대적으로 더 짧은 코드워드들에 맵핑되는 것에 기인하여 비트 절약이 달성될 수도 있다.
일부 구현예들에서는, 테이블 2 및 테이블 4 에 도시된 예들과 같이, 코드워드들의 수정된 인트라-예측 모드 인덱스들에 대한 맵핑은, 더 짧은 코드워드들이 더 빈번히 발생하는 수정된 인트라-예측 모드 인덱스들에 동적으로 할당되도록 적응적일 수도 있다. 일부 예들에서, 특정 콘텍스트들에 대해서는, 각각의 수정된 인트라-예측 모드 인덱스가 선택되는 횟수는 카운터들을 이용하여 추적되고, 선택들의 횟수에 기초하여, 더 빈번하게 발생하는 수정된 인트라-예측 모드 인덱스들에는 덜 빈번하게 발생하는 인트라-예측 모드 인덱스들보다 더 짧은 코드워드들이 할당된다. 일부 다른 예들에서, 수정된 인트라-예측 모드 인덱스가 코딩될 때마다 (즉 인코딩되거나 또는 디코딩될 때마다), 이 수정된 인트라-예측 모드 인덱스는 VLC 테이블 내의 현재 코드워드를 바로 선행하는 코드워드에 맵핑되는 다른 수정된 인트라-예측 모드 인덱스와 코드워드들을 스왑한다. 예를 들어 테이블 4 내에서, 4 의 수정된 인트라-예측 모드 인덱스가 코딩된다면, 테이블 4 내의 맵핑 테이블이, 4 의 수정된 인트라-예측 모드 인덱스가 코드워드 1100 에 맵핑되는 방식으로 조정되는 한편, 3 의 수정된 인트라-예측 모드 인덱스는 미래 블록들을 인코딩 또는 디코딩하기 위하여 코드워드 1101 에 맵핑된다. 따라서, 테이블 2 및 테이블 4 가 수정된 인트라-예측 모드들이 증가할 때 코드워드 길이가 증가하는 것을 보여주지만, 이 관계가 항상 일어나는 것은 아닐 수도 있다. 예를 들어, 수정된 인트라-예측 모드 인덱스 6 이 가장 빈번하게 발생하는 수정된 인트라-예측 모드라면, 수정된 인트라-예측 모드 6 에는 가장 짧은 코드워드가 할당될 수도 있다.
일반적으로, 테이블 1 및 테이블 3 은 모드 인덱스 테이블들이라고 지칭될 수도 있는 한편, 테이블 2 및 테이블 4 는 수정된 인트라-예측 모드 인덱스 맵핑 테이블들, 또는 간단히 맵핑 테이블들이라고 지칭될 수도 있다. 위에서 언급된 바와 같이, 테이블 1 및 테이블 2 는 단지 모드 인덱스 테이블 및 맵핑 테이블의 하나의 예일 뿐이다. 일부 예들에서는, 구성 데이터 (66) 는 복수의 모드 인덱스 테이블들 및 복수의 맵핑 테이블들에 대한 데이터를 포함할 수도 있다. 일부 예들에서는, 다중 코딩 콘텍스트들은 공통 모드 인덱스 테이블에 대응할 수도 있다. 이와 유사하게, 다중 모드 인덱스 테이블들은 공통 맵핑 테이블에 맵핑될 수도 있다.
본 개시물의 기법들에 따르면, 모드들은 또한 수정된 인트라-예측 모드 인덱스들이 아닌 코드워드 인덱스들에 맵핑될 수도 있다. 그러면, 코드워드 인덱스들은 수정된 코드워드 인덱스들에 맵핑될 수 있는데, 이것들은 코드워드들을 룩업하기 위하여 이용된다. 아래의 테이블 5 는 인트라-예측 모드 인덱스들 및 코드워드 인덱스에 맵핑되는 모드들의 일 예를 나타낸다. 또한, 테이블 5 는 특정 콘텍스트에 대하여 어느 모드들이 가장 가능성있는 모드들인지의 표시를 보여주고, 이 특정 예에 대한 코드워드 인덱스들에 대응하는 수정된 코드워드 인덱스들을 보여준다.
Figure 112013038457049-pct00005
Figure 112013038457049-pct00006
예를 들기 위한 목적으로, C m1 이 하나의 가장 가능성있는 모드의 코드워드 인덱스를 나타내고, C m2 가 다른 가장 가능성있는 모드의 코드워드 인덱스를 나타낸다고 하며, 여기서 C m1 C m2 보다 더 낮은 코드워드 인덱스 값을 가진다. 위에서 논의된 바와 같이, C m1 C m2 는 모드 인덱스 값들이 아니라 코드워드 인덱스 값들에 기초하여 결정된다. 따라서, C m1 은 반드시 제 1 의 가장 가능성있는 모드에 대응할 필요가 없을 수도 있고, C m2 는 반드시 제 2 의 가장 가능성있는 모드에 대응할 필요가 없을 수도 있다. 테이블 5 의 예 내에서, 예를 들어, 모드 3 (대각선 아래/우측) 이 가장 가능성있는 모드들의 최저 모드 인덱스를 가지기 때문에 제 1 의 가장 가능성있는 모드이고, 모드 6 이 제 2 의 가장 가능성있는 모드이다. 그러나, 제 2 의 가장 가능성있는 모드는 제 1 의 가장 가능성있는 모드보다 더 낮은 대응하는 코드워드 인덱스를 가진다. 따라서, 테이블 5 의 예 내에서, C m1 은 제 2 의 가장 가능성있는 모드의 코드워드 인덱스에 대응하고, 및 C m2 는 제 1 의 가장 가능성있는 모드의 코드워드 인덱스에 대응한다. 다음의 설명에서, C m1 C m2 보다 더 작다는 것이 가정된다.
선택된 모드가 가장 가능성있는 모드들 중 하나라면, 제 1 비트 (예를 들어 "0") 가 그 모드가 2 개의 가장 가능성있는 모드들 중 하나라는 것을 시그널링하기 위하여 이용된다. 모드가 2 개의 가장 가능성있는 모드들 중 하나라면, 제 2 비트가 2 개의 가장 가능성있는 모드들 중 어느 것이 선택된 모드에 대응하는지를 시그널링하기 위하여 이용된다. 따라서, 2 개의 가장 가능성있는 모드들은 각각 "00" 및 "01" 의 초기 비트 시퀀스들로 시그널링될 수 있다. "0" 이 아닌 제 1 비트 (즉 "1") 가 전송된다면, 선택된 모드는 2 개의 가장 가능성있는 모드들 중 하나가 아니고, 선택된 모드가 코드워드 인덱스에 대응하는 코드워드로서 전송된다. 그러나, 선택된 모드에 대한 코드워드 인덱스에 직접 대응하는 코드워드를 전송하는 대신에, 수정된 코드워드 인덱스에 대응하는 코드워드를 전송하는 비디오 인코더 (20) 에 의하여 비트 절약이 달성될 수도 있다. 비디오 디코더 (30) 는 수정된 코드워드 인덱스에 대응하는 코드워드를 수신한 후, 선택된 인트라-예측 모드에 대응하는 코드워드 인덱스를 결정할 수 있다.
비디오 인코더 (20) 는 선택된 모드 (C) 의 코드워드 인덱스를 결정하고 그 모드 인덱스를 수정된 모드 인덱스 (C mod ) 에 맵핑할 수 있다. CC m2 라면, C mod = C - 2 이다. 그렇지 않고, CC m1 이라면, C mod = C - 1 이다. 그렇지 않다면, C mod = C 이다. 비디오 디코더 (30) 는 수정된 인트라-예측 모드 인덱스 (C mod ) 를 수신하고 먼저 그것을 C m1 과 비교한다. C mod < C m1 이라면, 모드 인덱스 (C) 는 C mod 와 동일하다. C mod C m1 보다 더 작지 않다면, C mod + 1 이 C m2 와 비교될 수 있다. C mod + 1 < C m2 라면, 모드 인덱스는 C mod + 1 과 동일하다. 그렇지 않다면, 모드 인덱스 C mod + 2 와 동일하다.
일 예로서 테이블 5 및 테이블 6 의 예들에 대하여, 수직-좌측 (모드 인덱스 6) 및 대각선 아래/우측 (모드 인덱스 3) 의 가장 가능성있는 모드들을 표시하는 콘텍스트를 가지는 현재 블록에 대하여, 선택된 모드는 수평-하측 (모드 인덱스 8) 이라고 가정한다. 가장 가능성있는 모드들에 대한 코드워드 인덱스들 C m1 C m2 는, 이 예에서는 2 및 5 인 한편, (테이블 5 에 대하여) 선택된 모드에 대한 모드 인덱스는 8 이다. 테이블 5 에 따르면, 모드 인덱스 3, 모드 인덱스 6, 및 모드 인덱스 8 은 각각 코드워드 인덱스 5, 코드워드 인덱스 2, 및 코드워드 인덱스 8 에 맵핑한다. 이 예에서는, 선택된 모드에 대한 코드워드 인덱스 (즉 코드워드 인덱스 8) 가 가장 가능성있는 모드들 모두에 대한 코드워드 인덱스들 (즉 코드워드 인덱스 5 및 코드워드 인덱스 2) 보다 더 크기 때문에, 코드워드 인덱스는 C mod + 2 와 동일하며, 여기서 C mod 는 테이블 6 내의 코드워드에 대응하는 수정된 코드워드 인덱스와 동일하다. 따라서, 선택된 모드의 코드워드 인덱스가 8 과 동일하다면, C mod = 6 이다. 따라서, 비디오 인코더 (20) 는 이 예에서는 코드워드 1111 을 이용하여 선택된 모드를 나타낼 것이다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 코드워드 1111 을 수신하고 C mod 의 값이 6 이라고 결정할 것이다. 이 예에서는 6 이 2 보다 더 작지 않고 (즉 C mod C m1 ) 6 에 1 을 더한 것이 5 보다 더 작지 않기 때문에 (즉, C mod + 1 ≥ C m2 ), 비디오 디코더 (30) 는, 테이블 5 로부터, 이 예에서는, 수평-하측에 대응하는 8 인 모드 인덱스 C mod + 2 를 가지는 모드를 취출할 것이다.
다른 예로서, 다시, 테이블 5 및 테이블 6 의 예들에 대하여, 현재 블록에 대하여, 선택된 모드는 수직 (모드 인덱스 1 및 코드워드 인덱스 0) 이라고 가정한다. 다시, 가장 가능성있는 모드들에 대한 인덱스들 C m1 C m2 는 5 및 2 이다. 이 예에서는, 선택된 모드에 대한 코드워드 인덱스가 가장 가능성있는 모드들 모두에 대한 코드워드 인덱스들보다 더 작기 때문에 (즉 C < C m1 ), 수정된 코드워드 인덱스 C mod 는 코드워드 인덱스와 동일하다. 따라서, 이 예에서는, 비디오 인코더 (20) 는 코드워드 0 을 이용하여 선택된 모드를 나타낼 것이다. 코드워드 0 은 선택된 모드가 가장 가능성있는 모드가 아니라는 것을 표시하는 초기 비트 또는 비트들의 시리즈에 후속한다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 또는 비트들의 시리즈 및 코드워드 0 을 수신하고 C mod 의 값이 0 이라고 결정할 것이다. 이 예에서는 0 이 5 및 2 보다 더 작기 때문에 (즉, C mod < C m1 ), 비디오 디코더 (30) 는 테이블 5 로부터, 이 예에서는, 수직에 대응하는 0 인 C mod 와 동일한 모드 인덱스 C 를 가지는 모드를 취출할 것이다.
또 다른 예로서, 테이블 5 및 테이블 6 의 예들에 대하여, 현재 블록에 대하여 선택된 모드가 수평 (모드 인덱스 2 및 코드워드 인덱스 4) 이라고 가정한다. 가장 가능성있는 모드들에 대한 인덱스들 C m1 C m2 는 이 예에서는 2 및 5 이다. 이 예에서는, 선택된 모드에 대한 코드워드 인덱스가 C m1 보다 더 크거나 동일하지만 C m2 보다 더 작기 때문에, 코드워드 인덱스는 C mod + 1 과 동일하며, 여기서 C mod 는 수정된 코드워드 인덱스이다. 따라서, 코드워드 인덱스가 4 라면, C mod = 3 이다. 따라서, 비디오 인코더 (20) 는, 이 예에서는 코드워드 1100 을 이용하여 선택된 모드를 나타낼 것이다. 코드워드 1100 은 선택된 모드가 가장 가능성있는 모드가 아니라는 것을 표시하는 초기 비트 또는 비트들의 시리즈에 후속한다. 따라서, 비디오 디코더 (30) (도 1 및 도 4) 는 초기 비트 및 비트들의 시리즈 및 코드워드 1100 을 수신하고, C mod 의 값이 3 이라고 결정할 것이다. 이 예에서는 3 이 2 보다 더 작지 않지만 3 에 1 을 더한 것이 5 보다 더 작기 때문에 (즉, C mod C m1 이지만 C mod + 1 < C m2 ), 비디오 디코더 (30) 는 테이블 5 로부터, 수평에 대응하는 4 인 C mod + 1 과 동일한 모드 인덱스를 가지는 모드를 취출할 것이다.
테이블 1 내지 테이블 6 은 가장 가능성있는 모드들, 모드들에 대한 인덱스들, 코드워드 인덱스들, 및 다양한 인덱스들에 할당된 코드워드들에 대한 테이블들의 예들일 뿐이라는 것이 이해되어야 한다. 다른 예들에서는, 다른 인트라-예측 모드들이, 예를 들어 소정의 블록에 대한 인코딩 콘텍스트에 기초하여 가장 가능성있는 모드인 것으로 결정될 수도 있다. 예를 들어, 가장 가능성있는 모드는 좌측- 및 상측-이웃하는 블록들을 인코딩하기 위하여 이용되는 인트라-예측 모드들에 기초하여 결정될 수도 있다. 구성 데이터 (66) 는 가장 가능성있는 모드인 것으로 식별되는 상이한 인트라-예측 모드들은 물론 식별된 상이한 개수의 가장 가능성있는 모드들과 연관된 복수의 상이한 테이블들을 포함할 수도 있으며, 이는 일반적으로 테이블 1, 테이블 3, 및 테이블 5 의 예들과 유사하다. 이와 유사하게, 구성 데이터 (66) 는 특정 모드의 이용 확률이 그것의 코드워드의 길이와 반비례하도록 나머지 인트라-예측 모드 인덱스들을 코드워드들에 맵핑하는 복수의 코드워드 맵핑 테이블들, 예컨대 테이블 2, 테이블 4, 및 테이블 6 을 포함할 수도 있다. 위에서 설명된 바와 같이, 가장 가능성있는 모드들은 초기 비트 또는 비트들의 시리즈를 이용하여 시그널링된다. 이러한 초기 비트 또는 비트들의 시리즈는 또한 콘텍스트 의존적일 수도 있다. 예를 들어, 상이한 비트들의 시리즈가, 어느 인트라-예측 모드들이 가장 가능성있는 모드인 것으로 식별되는지는 물론 얼마나 많은 가장 가능성있는 모드들이 식별되는지에 의존하여 가장 가능성있는 모드들을 시그널링하기 위하여 이용될 수도 있다. 임의의 주어진 실례에 대한 가장 가능성있는 모드들 및 코딩 테이블들은 또한, 그 실례 내에서 이용되는 이웃하는 블록 인트라-예측 모드 대신에 또는 이에 추가적으로, 다른 타입들의 콘텍스트들에 기초하여 정의될 수도 있다. 이러한 방식들에서, 상대적으로 더 높은 확률 인코딩 모드들이 상대적으로 더 짧은 코드워드들에 맵핑되는 것에 기인하여 비트 절약이 달성될 수도 있다.
일부 구현예들에서는, 테이블 5 에서와 같이, 모드들의 코드워드 인덱스들에 대한 맵핑은, 특정 콘텍스트들에 대하여, 각 모드가 선택되는 횟수가 추적되고, 그 선택 횟수에 기초하여, 더 빈번하게 발생하는 모드들이 상대적으로 더 짧은 대응하는 코드워드들을 갖는 상대적으로 더 낮은 코드워드 인덱스들에 할당되는 한편, 덜 빈번하게 발생하는 모드들이 상대적으로 더 긴 대응하는 코드워드들을 갖는 상대적으로 더 높은 코드워드 인덱스들에 할당되도록 적응적일 수도 있다.
테이블 1, 테이블 2, 테이블 3, 테이블 4, 및 테이블 5 의 예들이 H.264 의 9 개의 인트라-예측 모드들에 대하여 제공된다. 그러나, 본 개시물의 기법들이 다른 인코딩 표준들 및 기법들, 예컨대 고효율 비디오 코딩 (HEVC) 에 적용될 수도 있다는 것이 이해되어야 한다. 일부 예들에서는, HEVC 에서와 같이, 이용가능한 인트라-예측 모드들의 개수는 코딩되는 블록 (예를 들어, HEVC 에서의 "코딩 유닛" 또는 "CU") 의 사이즈에 의존할 수도 있다. 각각의 인트라-예측 모드에 대하여, 모드 인덱스는 각각의 인트라-예측 모드의 발생의 우도에 기초하여 할당될 수 있다. 도 3 은 HEVC 와 함께 이용될 수도 있는 인트라-예측 모드들 및 대응하는 모드 인덱스들의 예를 도시한다. 도 3 의 화살표들은 예측 방향을 나타내고, 번호들은 모드 인덱스를 나타낸다. 아래의 테이블 7 은 CU 사이즈 및 그 사이즈의 CU들을 인코딩하기 위하여 이용가능한 인트라-예측 모드들의 개수 간의 대응성 (correspondence) 을 제공한다. 테이블 7 에 의하여 볼 수 있는 바와 같이, 8×8, 16×16, 및 32×32 CU들은 도 3 도시된 35 개의 인트라-예측 모드들을 이용할 수도 있는 한편, 4×4 및 64×64 CU들은 더 작은 세트의 인트라-예측 모드들을 이용한다.
Figure 112013038457049-pct00007
인트라-예측 모드들의 개수가 블록 사이즈에 기초하여 가변하는 예들에서는, 구성 데이터 (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 는 다양한 인코딩 모드들을 간단하게 나타내기 위한 예시적인 테이블일 뿐이다. 그러나, 다른 타입들의 가변 길이 코드들, 예컨대 유너리 (unary) 코드워드들이 다른 예들에서 이용될 수도 있다는 것이 이해되어야 한다. 코드워드들의 각각이 고유하게 디코딩가능하기만 하다면 (예를 들어, 코드워드들 중 어느 것도 동일한 테이블 내의 다른 코드워드의 프리픽스 (prefix) 가 아니라면), 임의의 세트의 코드워드들이 코드워드 맵핑 테이블 (즉, VLC 테이블 또는 수정된 인트라-예측 모드 인덱스 테이블) 에 대하여 이용될 수도 있다.
구성 데이터 (66) 내에 포함된 복수의 코드워드 맵핑 테이블들은 각각 상이한 코드워드 구조를 가질 수도 있으며, 여기서 코드워드 구조는 일반적으로 코드워드 맵핑 테이블 내의 코드워드들의 길이를 지칭한다. 특정 코드워드 맵핑 테이블에 대한 코드워드 구조는 소정의 블록에 대한 인코딩 콘텍스트에 의존할 수도 있다. 아래의 테이블 8 은, 코드워드 맵핑 테이블들에 대한 4 개의 상이한 예들의 코드워드 구조들을 식별하지만 (리스트 VLC0, 리스트 VLC1, 리스트 VLC2 및 리스트 VLC3 로서 식별됨), 추가적인 구조들도 역시 이용될 수도 있다. 리스트들을 더욱 콤팩트하게 만들기 위하여, 다수의 x들이 많은 코드워드들의 끝에 포함된다. x들은 0들 또는 1들 중 어느 하나일 수 있다. 예를 들어, 0X 는 2 개의 코드워드들 (01 및 00) 을 나타내고, 0XX 는 4 개의 코드워드들 (000, 001, 010, 및 011) 을 나타내며, 등등이다.
Figure 112013038457049-pct00008
테이블 8 에 의하여 알 수 있는 바와 같이, 테이블 내의 제 1 코드워드들에 대하여 더 적은 개수의 비트들을 이용하는 것은 테이블 내의 후속 코드워드들이 더 빨리 더 길어지도록 야기할 수 있다. 예를 들어, 리스트 VLC0 내에서, 제 5 코드워드는 5 비트 길이를 가지지만, 리스트 VLC1 내에서는 제 5 코드워드는 단지 4 비트 길이이다. 그러나, 리스트 VLC0 의 제 1 코드워드는 리스트 VLC1 의 제 1 코드워드보다 더 짧다 (1 비트 대 2 비트). 따라서, 테이블 내의 제 1 코드워드를 이용하는 경우에는, 리스트 VLC0 의 코드워드들은 리스트 VLC1 에 비해 비트 절약을 야기하지만, 리스트 VLC1 내의 제 5 코드워드를 이용하는 것은 리스트 VLC0 에 비해 비트 절약을 야기한다.
상이한 콘텍스트들에 대하여 상이한 코드워드 구조들을 가지는 코드워드 맵핑 테이블들을 유지함으로써, 전체 비트 절약이 달성될 수도 있다. 위에서 논의된 바와 같이, 특정 블록에 대한 콘텍스트는 특성들, 예컨대 블록의 사이즈 및 형상 및 이웃하는 블록들이 인코딩되는 방법에 기초하여 결정될 수도 있다. 상이한 콘텍스트들에 대하여, 가장 가능성있는 인트라-예측 모드가 아닌 다른 인코딩 모드들의 우도들은 상이한 분포들을 가질 수도 있다. 만일 예를 들어, 수개의 인트라-예측 모드들이 다른 인트라-예측 모드들에 비하여 높은 우도를 가진다면, 리스트 VLC0 과 같은 구조를 가지는 코드워드 맵핑 테이블을 이용하여 그 수개의 가능한 (likely) 인트라-예측 모드들을 처음 수개의 최단 코드워드들에 맵핑함으로써, 리스트 VLC1 과 같은 구조를 가지는 코드워드 맵핑 테이블을 이용하는 것에 비해 비트 절약을 초래할 수도 있다. 이 상대적인 비트 절약이 발생할 수도 있는데, 그 이유는 코드워드 맵핑 테이블의 처음 수개의 최단 코드워드들이 처음 수개의 코드워드들에 대한 (리스트 VLC1 에 대하여 리스트 VLC0 에 대한) 비트 절약이 다른 코드워드들에 대하여 이용되는 가외의 비트들을 초과하는 곳에서 충분히 빈번하게 이용되기 때문이며, 결과적으로 리스트 VLC1 에 비해 리스트 VLC0 에 대한 비트들의 네트 절약을 초래한다.
그러나, 예를 들어 코드워드 맵핑 테이블 내의 처음 수개의 최단 코드워드들에 맵핑된 인트라-예측 모드들이 다른 코드워드들에 맵핑된 인트라-예측 모드들보다 현저하게 더 높은 우도를 가지지 않는다면, 리스트 VLC1 과 같은 구조를 가지는 코드워드 맵핑 테이블을 이용하는 것은 리스트 VLC0 과 같은 코드워드 구조를 가지는 코드워드 맵핑 테이블을 이용하는 것에 비해 비트 절약을 초래할 수도 있다. 이 상대적인 비트 절약이 발생할 수도 있는데, 그 이유는 테이블의 더 먼 아래에 있는 코드워드들이 테이블의 더 먼 아래에 있는 코드워드들에 대한 (리스트 VLC0 와 비교하여 리스트 VLC1 에 대한) 비트 절약이 처음 수개의 코드워드들에 대하여 이용되는 가외의 비트들을 초과하는 곳에서 충분히 빈번하게 이용되기 때문이며, 결과적으로 리스트 VLC0 에 비해 리스트 VLC1 에 대한 비트들의 네트 절약을 초래한다.
예를 들어, 인트라-예측 및 인터-예측을 이용하여 현재 블록을 예측한 이후에, 비디오 인코더 (20) 는 모션 보상 유닛 (44) 또는 인트라-예측 유닛 (46) 에 의하여 계산된 예측 데이터를 코딩되는 원래의 비디오 블록으로부터 감산함으로써 잔여 비디오 블록을 형성할 수도 있다. 합산기 (50) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 변환 유닛 (52) 은 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은 변환을 잔여 블록에 적용하여 잔여 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 유닛 (52) 은 H.264 표준에 의하여 정의되는 것들과 같은 다른 변환들을 수행할 수도 있는데, 이들은 DCT 개념적으로 유사하다. 웨이블릿 (wavelet) 변환들, 정수 변환들, 서브-대역 변환들 또는 다른 타입의 변환들도 역시 이용될 수 있다. 어느 경우나, 변환 유닛 (52) 은 변환을 잔여 블록에 적용하여 잔여 변환 계수들의 블록을 생성한다. 변환은 잔여 정보를 픽셀 값 도메인으로부터 변환 도메인, 예컨대 주파수 도메인으로 컨버팅할 수도 있다. 양자화 유닛 (54) 은 잔여 변환 계수들을 양자화하여 비트 레이트를 더욱 감소시킨다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 깊이 (bit depth) 를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수도 있다.
양자화에 후속하여, 엔트로피 코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛 (56) 은 콘텐츠 적응 가변 길이 코딩 (CAVLC), 콘텍스트 적응 이진 산술 코딩 (CABAC), 또는 다른 엔트로피 코딩 기법을 수행할 수도 있다. 엔트로피 코딩 유닛 (56) 에 의한 엔트로피 코딩에 후속하여, 인코딩된 비디오는 다른 디바이스로 송신되거나 후속 송신 또는 취출을 위하여 아카이브될 수도 있다. 콘텍스트 적응 이진 산술 코딩의 경우에는, 콘텍스트는 이웃하는 블록들 및/또는 블록 사이즈들에 기초할 수도 있다.
일부 경우들에서, 엔트로피 코딩 유닛 (56) 또는 비디오 인코더 (20) 의 다른 유닛은 위에서 설명한 바와 같이 엔트로피 코딩 및 인트라-예측 모드의 코딩에 추가하여 다른 코딩 기능들을 수행하도록 구성될 수도 있다. 예를 들어, 엔트로피 코딩 유닛 (56) 은 블록들 및 파티션들에 대한 코딩된 블록 패턴 (coded block pattern; CBP) 값들을 결정하도록 구성될 수도 있다. 또한, 일부 경우들에서, 엔트로피 코딩 유닛 (56) 은 매크로블록 또는 그의 파티션 내의 계수들의 런 길이 (run length) 코딩을 수행할 수도 있다. 특히, 엔트로피 코딩 유닛 (56) 은 지그재그 스캔 또는 다른 스캔 패턴을 적용하여 매크로블록 또는 파티션 내의 변환 계수들을 스캔하고, 추가 압축을 위하여 제로들의 런들을 인코딩할 수도 있다. 또한, 엔트로피 코딩 유닛 (56) 은 인코딩된 비디오 비트스트림에서의 송신에 적합한 구문 엘리먼트들로 헤더 정보를 구성할 수도 있다.
역양자화 유닛 (58) 및 역변환 유닛 (60) 은 역양자화 및 역변환을 각각 적용하여, 예를 들어 참조 블록으로서 추후 이용되도록 픽셀 도메인에서 잔여 블록을 재구성한다. 모션 보상 유닛 (44) 은 잔여 블록을 참조 프레임 저장소 (64) 의 프레임들 중 하나의 예측 블록에 가산함으로써 참조 블록을 계산할 수도 있다. 또한, 모션 보상 유닛 (44) 은 하나 이상의 보간 필터들을 재구성된 잔여 블록에 적용하여 모션 추정에서 이용하기 위한 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (62) 는 재구성된 잔여 블록을 모션 보상 유닛 (44) 에 의하여 생성된 모션 보상된 예측 블록에 가산하여, 참조 프레임 저장소 (64) 에 저장하기 위한 재구성된 비디오 블록을 생성한다. 재구성된 비디오 블록은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의하여, 후속 비디오 프레임 내의 블록을 인터-코딩하기 위한 참조 블록으로서 이용될 수도 있다.
이러한 방식으로, 비디오 인코더 (20) 는, 비디오 데이터의 현재 블록에 대한 하나 이상의 가장 가능성있는 인트라-예측 모드들을 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하고, 현재 블록에 대한 인코딩 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은, 인코딩 콘텍스트에 기초하여 가장 가능성있는 인트라-예측 모드(들)가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하고, 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나를 이용하여 현재 블록을 인코딩하고, 수정된 인트라-예측 모드 인덱스들 중 인트라-예측 모드들 중 하나에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하며, 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 것으로서, 코드워드는 수정된 인트라-예측 모드 인덱스들 중 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 코드워드를 출력하도록 구성된 비디오 인코더의 일 예를 나타낸다.
도 4 는 인코딩된 비디오 시퀀스를 디코딩하는 비디오 디코더 (30) 의 일 예를 도시하는 블록도이다. 도 4 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (70), 모션 보상 유닛 (72), 인트라 예측 유닛 (74), 역양자화 유닛 (76), 역변환 유닛 (78), 메모리 (82) 및 합산기 (80) 를 포함한다. 일부 예들에서, 비디오 디코더 (30) 는 비디오 인코더 (20) (도 2) 와 관련하여 설명된 인코딩 패스 (encoding pass) 와 일반적으로 상반된 디코딩 패스를 수행할 수도 있다. 모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들에 기초하여 예측 데이터를 생성할 수도 있다.
모션 보상 유닛 (72) 은 비트스트림 내에서 수신된 모션 벡터들을 이용하여 참조 프레임 저장소 (82) 내의 참조 프레임들 내에서 예측 블록을 식별할 수도 있다. 인트라 예측 유닛 (74) 은 비트스트림 내에서 수신된 인트라 예측 모드들을 이용하여 공간적으로 인접한 블록들로부터 예측 블록을 형성할 수도 있다. 특히, 도 4 의 예에서는, 비디오 디코더 (30) 가 구성 데이터 (84) 를 포함한다. 구성 데이터 (84) 는, 구성 데이터 (84) 가 인트라-예측된 블록들에 대한 콘텍스트들은 물론, 각각의 콘텍스트에 대하여 이용할 복수의 인트라-예측 인덱스 맵핑 테이블들 중 하나, 각각의 콘텍스트에 대하여 이용할 복수의 수정된 인트라-예측 모드 인덱스 (또는 코드워드 맵핑) 테이블들 중 하나, 및 각각의 콘텍스트에 대한 가장 가능성있는 인트라-예측 모드를 기술하는 정보를 포함한다는 점에서 도 2 의 구성 데이터 (66) 와 실질적으로 유사하다.
엔트로피 디코딩 유닛 (70) 은 비디오 데이터의 인코딩된 블록을 디코딩하기 위하여 이용할 인트라-예측 모드를 나타내는 코드워드를 수신할 수도 있다. 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 콘텍스트를, 예를 들어, 인코딩된 블록에 대한 좌측-이웃하는 및 상측-이웃하는 블록에 대한 인트라-예측 모드들 및/또는 그 인코딩된 블록에 대한 사이즈에 기초하여 결정할 수도 있다. 콘텍스트에 기초하여, 엔트로피 디코딩 유닛 (70) 은 블록을 디코딩하기 위하여 이용할 하나 이상의 가장 가능성있는 인트라-예측 모드들은 물론, 그 블록을 디코딩하기 위하여 이용할 실제 인트라-예측 모드를 결정하기 위하여 이용할 인트라-예측 인덱스 테이블 및 수정된 인트라-예측 모드 인덱스 테이블을 결정할 수도 있다.
단일의 가장 가능성있는 인트라-예측 모드를 이용하는 경우에는, 코드워드가 제 1 비트, 예를 들어 '0' 을 포함한다면, 엔트로피 디코딩 유닛 (70) 은 실제 인트라-예측 모드가 인코딩된 블록에 대한 가장 가능성있는 인트라-예측 모드라고 결정할 수도 있다. 그렇지 않다면, 엔트로피 디코딩 유닛 (70) 은 수신된 코드워드에 맵핑되는 수정된 인트라-예측 모드 인덱스를, 인코딩된 블록의 콘텍스트에 대한 수정된 인트라-예측 모드 인덱스 테이블에 기초하여 결정할 수도 있다. n 이 수정된 인트라-예측 모드 인덱스를 나타내고, m 이 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타낸다고 한다. n < m 인 경우에는, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 인트라-예측 모드가 n 의 모드 인덱스를 가진다고 결정할 수도 있다. 그렇지 않다면 (즉, n ≥ m 인 경우에는), 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 인트라-예측 모드가 n + 1 의 모드 인덱스를 가진다고 결정할 수도 있다. 위에서 설명된 바와 같이 n 또는 n + 1 중 어느 하나와 동일한 모드 인덱스를 이용하여, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록을 디코딩하기 위하여 이용할 실제 인트라-예측 모드를 표시하는 정보를 취출하고, 그 모드의 표시를 인트라-예측 유닛 (74) 으로 전송할 수도 있다.
2 개 이상의 가장 가능성있는 인트라-예측 모드, 예컨대 2 개의 가장 가능성있는 인트라-예측 모드들을 이용하는 경우에는, 제 1 비트가 소정의 값, 예를 들어, '0' 을 가진다면, 엔트로피 디코딩 유닛 (70) 은 실제 인트라-예측 모드가 인코딩된 블록에 대한 가장 가능성있는 인트라-예측 모드들 중 하나라고 결정할 수도 있다. 이러한 실례들에서는, 제 2 비트 또는 비트들의 시리즈에 기초하여, 엔트로피 디코딩 유닛 (70) 은 가장 가능성있는 인트라-예측 모드들 중 어느 것이 선택된 인트라-예측 모드인지를 결정할 수 있다. 그렇지 않다면, 제 1 비트에 후속하여, 엔트로피 디코딩 유닛 (70) 은 수신된 코드워드에 맵핑되는 수정된 인트라-예측 모드 인덱스를 결정하고, 수정된 인트라-예측 모드 인덱스에 기초하여, 그 블록에 대한 선택된 인트라-예측 모드를 결정할 수도 있다. 일 예로서, n 이 수정된 인트라-예측 모드 인덱스를 나타내고, m 1 m 2 가 가장 가능성있는 인트라-예측 모드들에 대한 모드 인덱스들을 나타낸다고 한다. n < m 1 이라면, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 선택된 인트라-예측 모드가 n 의 모드 인덱스를 가진다고 결정할 수도 있다. n + 1 < m 2 라면 (하지만 n m 1 보다 더 작지는 않다), 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 선택된 인트라-예측 모드가 n + 1 의 모드 인덱스를 가진다고 결정할 수도 있다. 그렇지 않고, n + 1 이 m 2 보다 더 작지 않다면, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 선택된 인트라-예측 모드가 n + 2 의 모드 인덱스를 가진다고 결정할 수도 있다. 이러한 모드 인덱스를 이용하여, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록을 디코딩하기 위하여 이용할 선택된 인트라-예측 모드를 표시하는 정보를 취출하고 그 모드의 표시를 인트라-예측 유닛 (74) 으로 전송할 수도 있다.
이와 유사하게, 인트라-예측 모드 인덱스들이 코드워드 인덱스들에 맵핑되고 2 개 이상의 가장 가능성있는 모드가 이용되고 있다면, 제 1 비트 또는 비트들의 시리즈가 소정의 값, 예를 들어 '0' 을 가진다면, 엔트로피 디코딩 유닛 (70) 은 실제 인트라-예측 모드가 인코딩된 블록에 대한 가장 가능성있는 인트라-예측 모드들 중 하나라고 결정할 수도 있다. 이러한 실례들에서는, 제 2 비트 또는 비트들의 시리즈에 기초하여, 엔트로피 디코딩 유닛 (70) 은 가장 가능성있는 인트라-예측 모드들 중 어느 것이 선택된 인트라-예측 모드인지 결정할 수 있다. 그렇지 않다면, 제 1 비트 또는 비트들의 시리즈에 후속하여, 엔트로피 디코딩 유닛 (70) 은 수신된 코드워드에 맵핑되는 수정된 코드워드 인덱스를 결정하고, 수정된 코드워드 인덱스에 기초하여, 그 블록에 대한 선택된 인트라-예측 모드를 결정할 수도 있다. 일 예로서, C mod 가 수정된 코드워드 인덱스를 나타내고, C m1 C m2 가 가장 가능성있는 인트라-예측 모드들에 대한 코드워드 인덱스들을 나타낸다고 한다. C mod < C m1 이라면, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 선택된 인트라-예측 모드가 C mod 와 동일한 코드워드 인덱스를 가진다고 결정할 수도 있다. C mod + 1 < C m2 라면 (하지만 C mod C m1 보다 더 작지는 않다), 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 선택된 인트라-예측 모드가 C mod + 1 의 코드워드 인덱스를 가진다고 결정할 수도 있다. 그렇지 않고, C mod + 1 이 C m2 보다 더 작지 않다면, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록에 대한 실제 선택된 인트라-예측 모드가 C mod + 2 의 코드워드 인덱스를 가진다고 결정할 수도 있다. 코드워드 인덱스를 이용하여, 엔트로피 디코딩 유닛 (70) 은 인코딩된 블록을 디코딩하기 위하여 이용할 실제 선택된 인트라-예측 모드를 표시하는 정보를 취출하고 그 모드의 표시를 인트라-예측 유닛 (74) 으로 전송할 수도 있다.
인트라-예측 유닛 (74) 은 인트라-예측 모드의 표시를 이용하여 인코딩된 블록을, 예를 들어 이웃하는, 이전에 디코딩된 블록들의 픽셀들을 이용하여 인트라-예측할 수도 있다. 블록이 인터-예측 모드 인코딩되는 예들에 대해서는, 모션 보상 유닛 (72) 은 인코딩된 블록에 대한 모션 보상된 예측 데이터를 취출하기 위하여, 모션 벡터를 정의하는 정보를 수신할 수도 있다. 어느 경우나, 모션 보상 유닛 (72) 또는 인트라-예측 유닛 (74) 은 예측 블록을 정의하는 정보를 합산기 (80) 에 제공할 수도 있다.
역양자화 유닛 (76) 은, 비트스트림 내에서 제공되며 엔트로피 디코딩 유닛 (70) 에 의하여 디코딩되는 양자화된 블록 계수들을 역양자화, 즉, 양자화해제 (de-quantize) 한다. 역양자화 프로세스는, 예를 들어 H.264 디코딩 표준에 의하여 정의되거나 또는 HEVC 테스트 모델 (Test Model) 에 의하여 수행되는 바와 같은 통상적인 프로세스를 포함할 수도 있다. 또한, 역양자화 프로세스는, 각각의 매크로블록에 대하여 인코더 (20) 에 의하여 계산된 양자화 파라미터 (QPY) 를 이용하여 양자화의 정도 및 이와 유사하게는, 적용되어야 하는 역양자화의 정도를 결정하는 것을 포함할 수도 있다.
역변환 유닛 (78) 은 픽셀 도메인에서 잔여 블록들을 생성하기 위하여, 역변환, 예를 들어 역 DCT, 역정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다. 모션 보상 유닛 (72) 은, 가능하게는 보간 필터들에 기초하여 보간을 수행하는, 모션 보상된 블록들을 생성한다. 서브-픽셀 정밀도 (sub-pixel precision) 를 가지는 모션 추정을 위하여 이용될 보간 필터들에 대한 식별자들이 구문 엘리먼트들 내에 포함될 수도 있다. 모션 보상 유닛 (72) 은, 비디오 블록의 인코딩 동안 비디오 인코더 (20) 에 의하여 이용되는 바와 같은 보간 필터들을 이용하여 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수도 있다. 모션 보상 유닛 (72) 은 수신된 구문 정보에 따라 비디오 인코더 (20) 에 의하여 이용되는 보간 필터들을 결정하고 이 보간 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
모션 보상 유닛 (72) 은 인코딩된 비디오 시퀀스의 프레임(들)을 인코딩하기 위하여 이용되는 블록들의 사이즈들, 인코딩된 비디오 시퀀스의 프레임 또는 슬라이스의 각각의 블록이 파티셔닝되는 방법을 기술하는 파티션 정보, 각각의 파티션이 인코딩되는 방법을 표시하는 모드들, 각각의 인터-인코딩된 블록 또는 파티션에 대한 하나 이상의 참조 프레임들 (및 참조 프레임 리스트들), 및 인코딩된 비디오 시퀀스를 디코딩하기 위한 다른 정보를 결정하기 위해 구문 정보의 일부를 이용한다.
합산기 (80) 는 잔여 블록들을 모션 보상 유닛 (72) 또는 인트라-예측 유닛 (74) 에 의하여 생성된 대응하는 예측 블록들과 합산하여 디코딩된 블록들을 형성한다. 원하는 경우, 블록화 아티팩트들을 제거하기 위하여, 디블록킹 필터가 또한 디코딩된 블록들을 필터링하기 위해 적용될 수도 있다. 그러면, 디코딩된 비디오 블록들이 참조 프레임 저장소 (82) 내에 저장되며, 참조 프레임 저장소 (82) 는 후속 모션 보상을 위한 참조 블록들을 제공하고, 또한 디스플레이 디바이스 (이를 테면 도 1 의 디스플레이 디바이스 (32)) 상에서의 프리젠테이션을 위한 디코딩된 비디오를 생성한다.
이러한 방식으로, 도 4 의 비디오 디코더 (30) 는 현재 블록에 대한 콘텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 하나 이상의 가장 가능성있는 인트라-예측 모드들을 결정하고, 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 것으로서, 코드워드들의 테이블은, 콘텍스트에 기초하여 가장 가능성있는 인트라-예측 모드(들)가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하고, 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 수신된 코드워드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하고, 코딩된 블록을 디코딩하기 위하여 이용할 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 것으로서, 선택된 인트라-예측 모드는 수정된 인트라-예측 모드 인덱스들 중 결정된 하나에 대응하는, 상기 인트라-예측 모드를 선택하며, 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하도록 구성된 비디오 디코더의 일 예를 나타낸다.
도 5 는 비디오 데이터의 블록을 인트라-예측 인코딩하기 위한 예시적인 방법을 도시하는 흐름도이다. 도 5 의 기법들은 일반적으로, 하드웨어로 구현되든, 소프트웨어로 구현되든, 펌웨어로 구현되든, 또는 이들의 조합으로 구현되는 간에, 임의의 프로세싱 유닛 또는 프로세서에 의하여 수행될 수도 있으며, 소프트웨어 또는 펌웨어로 구현되면, 대응하는 하드웨어는 소프트웨어 또는 펌웨어에 대한 명령들을 실행하기 위하여 제공될 수도 있다. 예를 들기 위한 목적으로, 도 5 의 기법들은 비디오 인코더 (20) (도 1 및 도 2) 에 대하여 설명되지만, 다른 디바이스들이 유사한 기법들을 수행하도록 구성될 수도 있다는 것이 이해되어야 한다. 더욱이, 도 5 에서 도시된 단계들은 상이한 순서로 또는 병렬적으로 수행될 수도 있으며, 본 개시물의 기법들로부터 벗어나지 않으면서 추가적인 단계들이 부가되거나 소정의 단계들이 생략될 수도 있다.
처음에, 비디오 인코더 (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) 은 코딩된 블록 (예를 들어, 인코딩된 양자화된 변환 계수들) 및 선택된 코드워드를 비트스트림으로 출력할 수도 있다 (112).
도 6a 는 코딩된 블록에 대한 인트라-예측 모드를 표시하는 코드워드를 선택하기 위한 예시적인 방법을 도시하는 흐름도이다. 다시, 도 6a 의 기법들은 임의의 적절한 프로세서에서 구현될 수도 있지만, 도 6a 의 기법들은 예를 들기 위한 목적으로 비디오 인코더 (20) 의 예에 대해서 논의된다. 도 6a 는 일반적으로 도 5 의 단계 110 에 대한 추가적인 상세를 제공한다. 도 6a 에서 도시된 방법의 단계들은 상이한 순서로 또는 병렬적으로 수행될 수도 있으며, 본 개시물의 기법들로부터 벗어나지 않으면서 추가적인 단계들이 부가되고 소정의 단계들이 생략될 수도 있다.
비디오 인코더 (20) 는 위에서 논의된 바와 같이, 현재 블록에 대한 코딩 콘텍스트를 결정할 수도 있다 (120A). 이와 유사하게, 비디오 인코더 (20) 는 그 볼록에 대한 코딩 콘텍스트에 기초하여 수정된 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다 (122A). 비디오 인코더 (20) 의 구성 데이터는, 그 블록의 콘텍스트에 대한 수정된 인트라-예측 모드 인덱스 테이블, 및 일부 예들에서는 인트라-예측 모드 인덱스 테이블의 표시를 제공할 수도 있다. 더욱이, 비디오 인코더 (20) 는 그 블록에 대한 코딩 콘텍스트에 기초하여 그 블록을 인코딩하기 위하여 이용할 가장 가능성있는 인트라-예측 모드를 결정할 수도 있다 (124A). 다시, 비디오 인코더 (20) 의 구성 데이터는 그 블록의 콘텍스트에 대한 가장 가능성있는 인트라-예측 모드의 표시를 제공할 수도 있다.
위에서 논의된 바와 같이, 비디오 인코더 (20) 는, 그 블록을 실제로 인코딩하기 위하여 이용할 그 블록에 대한 인트라-예측 모드를 선택할 수도 있다 (126A). 비디오 인코더 (20) 는 그 블록의 콘텍스트에 기초하여 선택된 인트라-예측 모드가 그 블록에 대한 가장 가능성있는 인트라-예측 모드와 동일한지 여부를 결정할 수도 있다 (128A). 선택된 모드가 가장 가능성있는 모드라면 (128A 의 "예" 브랜치), 비디오 인코더 (20) 는 가장 가능성있는 모드에 기초하여, 그 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 단일 비트, 예를 들어, '0' 또는 '1' 을 이용하여 인코딩할 수도 있다 (130A).
선택된 모드가 가장 가능성있는 모드가 아니라면 (128A 의 "아니오" 브랜치), 비디오 인코더 (20) 는 예를 들어 인트라-예측 모드 인덱스 테이블로부터 선택된 인트라-예측 모드에 대한 모드 인덱스를 결정할 수도 있다 (132A). 일부 예들에서는, 모드 인덱스들은 콘텍스트와 무관한 글로벌 값들일 수도 있는 한편, 다른 예들에서는 비디오 인코더 (20) 의 구성 데이터는 각각의 콘텍스트를 복수의 인트라-예측 모드 인덱스 테이블들 중 하나에 맵핑할 수도 있다. 비디오 인코더 (20) 는 또한, 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 결정할 수도 있다. 그러면, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스가 그 블록에 대한 콘텍스트에서의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작은지 여부를 결정할 수도 있다 (134A).
선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작은 경우에는 (134A 의 "예" 브랜치), 비디오 인코더 (20) 는 블록의 콘텍스트에 대한 수정된 인트라-예측 모드 인덱스 테이블로부터, 선택된 인트라-예측 모드에 대한 모드 인덱스에 대응하는 코드워드를 결정할 수도 있다. 보다 구체적으로는, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스와 동일한 수정된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 이용할 수도 있다 (136A).
반면에, 선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 크거나 동일한 경우에는 (134A 의 "아니오" 브랜치), 비디오 인코더 (20) 는 블록의 콘텍스트에 대한 수정된 인트라-예측 모드 인덱스 테이블로부터, 선택된 인트라-예측 모드에 대한 모드 인덱스보다 1 이 더 작은 모드 인덱스에 대응하는 코드워드를 결정할 수도 있다. 보다 구체적으로는, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스보다 1 이 더 작은 것과 동일한 수정된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 이용할 수도 있다 (138A).
단일-비트 코드워드가 가장 가능성있는 인트라-예측 모드에 맵핑되기 때문에, 수정된 인트라-예측 모드 인덱스 테이블은 추가적인 코드워드를 가장 가능성있는 인트라-예측 모드에 대한 인덱스에 맵핑할 필요가 없다. 따라서, 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스와 동일한 수정된 인트라-예측 모드 인덱스는, 이러한 방식에서는 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 1 이 더 큰 모드 인덱스에 맵핑될 수도 있다. 따라서, 그 블록에 대하여 이용가능한 K 개의 인트라-예측 모드들이 존재한다면, 수정된 인트라-예측 모드 인덱스 테이블은 가장 가능성있는 인트라-예측 모드가 그 블록을 인코딩하기 위하여 이용되는지 여부를 표시하는 단일-비트 코드워드 이외에, 오직 K - 1 개의 수정된 인트라-예측 모드 인덱스들에 대한 가변 길이 코드들만을 제공해야 한다.
이러한 방식으로, 본 개시물의 기법들은 비디오 데이터의 블록들을 인코딩하기 위하여 이용되는 인트라-예측 모드들을 나타내는 가변 길이 코드워드들의 이용을 제공한다. 코드워드들의 길이들은 그 블록들에 대한 콘텍스트들에 기초한 그 블록들에 대한 인트라-예측 모드들의 우도들에 반비례할 수도 있다. 이용가능한 인트라-예측 모드들의 개수는, 예를 들어 HEVC 테스트 모델 또는 다른 유사한 인코딩 디바이스들에 대하여 상대적으로 많을 수도 있다. 예를 들어, 특정 블록에 대해 35 개의 이용가능한 인트라-예측 모드들이 존재할 수도 있다. 35 개의 고유한 인트라-예측 모드들을 고정된 길이 값을 이용하여 나타내기 위하여, 고정된 길이 값은 적어도 6 비트를 요구할 것이다. 그러나, 가변 길이 코드워드들은 본 개시물의 기법들에 따라 인트라-예측 모드들의 우도들과 반비례하는 길이들을 가질 수도 있기 때문에, 이러한 기법들은 우도들이 적절히 결정된다고 가정할 경우 전체 비트스트림에 대하여 상대적인 비트 절약을 야기할 수도 있다.
이러한 방식으로, 도 6a 의 방법은 비디오 데이터의 현재 블록에 대한 가장 가능성있는 인트라-예측 모드를 현재 블록에 대한 인코딩 콘텍스트에 기초하여 결정하는 단계, 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은, 콘텍스트에 기초하여 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드 인덱스들에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 단계, 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들 중 하나를 이용하여 현재 블록을 인코딩하는 단계, 수정된 인트라-예측 모드 인덱스들 중 인트라-예측 모드들 중 상기 하나에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하는 단계, 및 선택된 코드워드들의 테이블로부터 코드워드를 출력하는 단계로서, 코드워드는 수정된 인트라-예측 모드 인덱스들 중 상기 하나에 대응하는, 상기 코드워드를 출력하는 단계를 포함하는 방법의 일 예를 나타낸다.
도 6b 는 코딩된 블록에 대한 인트라-예측 모드를 표시하는 코드워드를 선택하기 위한 예시적인 방법을 도시하는 흐름도이다. 다시, 도 6b 의 기법들은 임의의 적절한 프로세서에서 구현될 수도 있지만, 도 6b 의 기법들은 예를 들기 위한 목적으로 비디오 인코더 (20) 의 예에 대하여 논의된다. 도 6b 는 일반적으로 2 개의 가장 가능성있는 모드들이 이용되는 실례들에 대하여 도 5 의 단계 110 에 대한 추가적인 상세를 제공한다. 도 6b 에서 도시된 방법의 단계들은 상이한 순서로 또는 병렬적으로 수행될 수도 있으며, 본 개시물의 기법들로부터 벗어나지 않으면서 추가적인 단계들이 부가되고 소정의 단계들이 생략될 수도 있다.
비디오 인코더 (20) 는 위에서 논의된 바와 같이 현재 블록에 대한 코딩 콘텍스트를 결정할 수도 있다 (120B). 이와 유사하게, 비디오 인코더 (20) 는 그 블록에 대한 코딩 콘텍스트에 기초하여 수정된 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다 (122B). 비디오 인코더 (20) 의 구성 데이터는 그 블록의 콘텍스트에 대한, 수정된 인트라-예측 모드 인덱스 테이블, 및 일부 예들에서는, 인트라-예측 모드 인덱스 테이블의 표시를 제공할 수도 있다. 더욱이, 비디오 인코더 (20) 는 그 블록에 대한 코딩 콘텍스트에 기초하여 그 블록을 인코딩하기 위하여 이용할 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드를 결정할 수도 있다 (124B). 다시, 비디오 인코더 (20) 의 구성 데이터는 그 블록의 콘텍스트에 대한 가장 가능성있는 인트라-예측 모드들의 표시를 제공할 수도 있다.
위에서 논의된 바와 같이, 비디오 인코더 (20) 는 그 블록을 실제로 인코딩하기 위하여 이용할, 그 블록에 대한 인트라-예측 모드를 선택할 수도 있다 (126B). 비디오 인코더 (20) 는 그 블록의 콘텍스트에 기초하여 선택된 인트라-예측 모드가 블록에 대한 가장 가능성있는 인트라-예측 모드들 중 하나와 동일한지 여부를 결정할 수도 있다 (128B). 선택된 모드가 가장 가능성있는 모드라면 (128B 의 "예" 브랜치), 비디오 인코더 (20) 는, 가장 가능성있는 모드들에 기초하여, 그 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드의 표시를 비트들의 초기 시리즈, 예컨대 실제 모드가 가장 가능성있는 모드들 중 하나라는 것을 표시하는 제 1 비트 및 가장 가능성있는 모드들 중 어느 것이 실제 모드들인지를 표시하는 제 2 비트를 포함하는 2 비트를 이용하여 인코딩할 수도 있다 (130B).
선택된 모드가 가장 가능성있는 모드들 중 하나가 아니라면 (128B 의 "아니오" 브랜치), 비디오 인코더 (20) 는 예를 들어 인트라-예측 모드 인덱스 테이블로부터 선택된 인트라-예측 모드에 대한 모드 인덱스를 결정할 수도 있다 (132B). 일부 예들에서는, 모드 인덱스들은 콘텍스트와 무관한 글로벌 값들일 수도 있는 한편, 다른 예들에서는, 비디오 인코더 (20) 의 구성 데이터는 각각의 콘텍스트를 복수의 인트라-예측 모드 인덱스 테이블들 중 하나에 맵핑할 수도 있다. 비디오 인코더 (20) 는 또한, 가장 가능성있는 인트라-예측 모드들에 대한 모드 인덱스들을 결정할 수도 있다. 그러면, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스가 그 블록에 대한 콘텍스트 내에서 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스들보다 더 작은지 여부를 결정할 수도 있다 (134B).
선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 모두에 대한 모드 인덱스들보다 더 작으면 (134B 의 "예" 브랜치), 비디오 인코더 (20) 는 블록의 콘텍스트에 대한 수정된 인트라-예측 모드 인덱스 테이블로부터, 선택된 인트라-예측 모드에 대한 모드 인덱스에 대응하는 코드워드를 결정할 수도 있다. 보다 구체적으로는, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스와 동일한 수정된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 이용할 수도 있다 (136B).
반면에, 선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 모두에 대한 모드 인덱스들보다 더 작지 않다면 (134B 의 "아니오" 브랜치), 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스가 그 블록에 대한 콘텍스트 내에서 제 1 의 가장 가능성있는 인트라-예측 모드 및 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스들보다 더 크거나 동일한지 여부를 결정할 수도 있다 (138B). 선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 모두에 대한 모드 인덱스들보다 더 크거나 동일한 경우에는 (138B 의 "예" 브랜치), 비디오 인코더 (20) 는 블록의 콘텍스트에 대한 수정된 인트라-예측 모드 인덱스 테이블로부터, 선택된 인트라-예측 모드에 대한 모드 인덱스에 대응하는 코드워드를 결정할 수도 있다. 보다 구체적으로는, 비디오 인코더 (20) 는 블록의 콘텍스트에 대한 수정된 인트라-예측 모드 인덱스 테이블로부터, 선택된 인트라-예측 모드에 대한 모드 인덱스보다 2 가 더 작은 것에 대응하는 코드워드를 결정할 수도 있다. 보다 구체적으로는, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스보다 2 가 더 작은 것과 동일한 수정된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 이용할 수도 있다 (140B).
선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 모두에 대한 모드 인덱스들보다 더 작지 않다면 (134B 의 "아니오" 브랜치), 그리고 선택된 인트라-예측 모드에 대한 모드 인덱스가 가장 가능성있는 인트라-예측 모드들 모두에 대한 모드 인덱스들보다 더 크거나 동일한 것이 아니라면 (138B 의 "아니오" 브랜치), 선택된 인트라-예측 모드에 대한 모드 인덱스는 제 1 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 크거나 동일하지만 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다 (138B 의 "아니오" 브랜치). 선택된 인트라-예측 모드에 대한 모드 인덱스가 제 1 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 크거나 동일하지만 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다면, 비디오 인코더 (20) 는 그 블록의 콘텍스트에 대한 수정된 인트라-예측 모드 인덱스 테이블로부터, 선택된 인트라-예측 모드에 대한 모드 인덱스에 대응하는 코드워드를 결정할 수도 있다. 보다 구체적으로는, 비디오 인코더 (20) 는 선택된 인트라-예측 모드에 대한 모드 인덱스보다 1 이 더 작은 것과 동일한 수정된 인트라-예측 모드 인덱스에 맵핑된 코드워드를 이용할 수도 있다 (142B).
제 1 비트 및 제 2 비트가 위에서 설명된 방식으로 가장 가능성있는 모드들을 시그널링하기 위하여 이용되기 때문에, 수정된 인트라-예측 모드 인덱스 테이블은 추가적 코드워드들을 가장 가능성있는 인트라-예측 모드들에 대한 인덱스에 맵핑할 필요가 없다. 따라서, 그 블록에 대하여 이용가능한 K 개의 인트라-예측 모드들이 존재한다면, 수정된 인트라-예측 모드 인덱스 테이블은 오직 K-2 개의 수정된 인트라-예측 모드 인덱스들에 대한 가변 길이 코드들만을 제공해야 한다.
이러한 방식으로, 본 개시물의 기법들은 비디오 데이터의 블록들을 인코딩하기 위하여 이용되는 인트라-예측 모드들을 나타내는 가변 길이 코드워드들의 이용을 제공한다. 코드워드들의 길이들은 그 블록들에 대한 콘텍스트들에 기초한 그 블록들에 대한 인트라-예측 모드들의 우도들에 반비례할 수도 있다. 이용가능한 인트라-예측 모드들의 개수는, 예를 들어 HEVC 테스트 모델 또는 다른 유사한 인코딩 디바이스들에 대하여 상대적으로 많을 수도 있다. 예를 들어, 특정 블록에 대해 35 개의 이용가능한 인트라-예측 모드들이 존재할 수도 있다. 35 개의 고유한 인트라-예측 모드들을 고정된 길이 값을 이용하여 나타내기 위하여, 고정된 길이 값은 적어도 6 비트를 요구할 것이다. 그러나, 가변 길이 코드워드들은 본 개시물의 기법들에 따라 인트라-예측 모드들의 우도들과 반비례하는 길이들을 가질 수도 있기 때문에, 이러한 기법들은 우도들이 적절히 결정된다고 가정할 경우 전체 비트스트림에 대하여 상대적인 비트 절약을 야기할 수도 있다.
도 7 은 비디오 데이터의 블록을 인트라-예측 디코딩하기 위한 예시적인 방법을 도시하는 흐름도이다. 도 7 의 기법들은 일반적으로, 하드웨어로 구현되든, 소프트웨어로 구현되든, 펌웨어로 구현되든, 또는 이들의 조합으로 구현되든 간에, 임의의 프로세싱 유닛 또는 프로세서에 의하여 수행될 수도 있고, 소프트웨어 또는 펌웨어로 구현되면, 대응하는 하드웨어는 소프트웨어 또는 펌웨어에 대한 명령들을 실행하기 위하여 제공될 수도 있다. 예를 들기 위한 목적들로, 도 7 의 기법들은 비디오 디코더 (30) (도 1 및 도 4) 에 대하여 설명되지만, 다른 디바이스들이 유사한 기법들을 수행하도록 구성될 수도 있다는 것이 이해되어야 한다. 더욱이, 도 7 에서 도시된 단계들은 상이한 순서로 또는 병렬적으로 수행될 수도 있으며, 본 개시물의 기법들로부터 벗어나지 않으면서 추가적인 단계들이 부가되거나 소정의 단계들이 생략될 수도 있다.
비디오 디코더 (30) 는 인트라-예측 모드 코딩된 블록에 대한 코드워드를 수신할 수도 있다 (150). 코드워드는 일반적으로 그 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드 및 이와 유사하게, 그 블록을 디코딩하기 위하여 이용되는 인트라-예측 모드를 나타낼 수도 있다. 비디오 디코더 (30) 는 예를 들어, 그 블록의 사이즈 및/또는 이웃하는 블록들, 예컨대 상측-이웃하는 블록 및/또는 좌측-이웃하는 블록의 인트라-예측 모드들에 기초하여 비디오 인코더 (20) 의 그것과 유사한 방식으로 블록에 대한 코딩 콘텍스트를 결정할 수도 있다 (152).
비디오 디코더 (30) 는 또한, 그 블록에 대한 결정된 코딩 콘텍스트에 기초하여 그 블록에 대한 수정된 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다 (154). 또한, 비디오 디코더 (30) 는, 일부 예들에서는 콘텍스트에 기초하여 인트라-예측 모드 인덱스 테이블을 결정할 수도 있는 한편, 다른 예들에서는 인트라-예측 모드 인덱스들이 고정되고 모든 콘텍스트들에 광역적으로 적용할 수도 있다. 비디오 디코더 (30) 는 또한, 그 블록의 콘텍스트에 대한 하나 이상의 가장 가능성있는 인트라-예측 모드(들)를 결정할 수도 있다 (156).
그러면, 비디오 디코더 (30) 는 블록을 디코딩하기 위하여 이용할 실제 인트라-예측 모드를 선택된 코드워드 테이블, 가장 가능성있는 인트라-예측 모드(들), 및 수신된 코드워드를 이용하여 결정할 수도 있다 (158). 예를 들어, 코드워드가 선택된 모드가 가장 가능성있는 모드인지를 표시하는 단일 비트 또는 비트들의 시리즈를 포함한다면, 비디오 디코더 (30) 는 그 단일 비트 또는 비트들의 시리즈를 이용하여 가장 가능성있는 인트라-예측 모드(들)가 그 블록을 디코딩하기 위하여 이용되어야 하는지를 결정할 수도 있다. 선택된 모드가 가장 가능성있는 모드가 아닌 것으로 결정된다면, 비디오 디코더 (30) 는 수정된 인트라-예측 모드 인덱스 테이블을 이용하여, 코드워드에 기초하여 수정된 인트라-예측 모드 인덱스를 결정할 수도 있고, 수정된 인트라-예측 모드 인덱스에 기초하여, 비디오 디코더 (30) 는 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드를 결정할 수도 있다.
비디오 디코더 (30) 는 결정된 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (160). 예를 들어, 비디오 디코더 (30) 는 그 블록에 대한 예측 블록을 결정된 인트라-예측 모드를 이용하여 계산할 수도 있다. 비디오 디코더 (30) 는 또한, 코딩된 양자화된 변환 계수들을 수신할 수도 있으며, 비디오 디코더 (30) 는 이것을 디코딩하고, 역양자화하며, 역변환하여, 그 블록에 대한 잔여 블록을 재구성할 수도 있다. 그러면, 비디오 디코더 (30) 는 예측 블록과 잔여 블록을 가산하여 디코딩된 블록을 형성할 수도 있다. 비디오 디코더 (30) 는 디코딩된 블록을 출력할 수도 있는데 (162), 이것은 디코딩된 비디오 블록을 디스플레이를 위해 디스플레이 디바이스로 (예를 들어, 프레임 버퍼를 통하여) 전송하는 것, 및 예를 들어 시간적으로 별개의 프레임들 또는 슬라이스들 내의 비디오 데이터의 후속 블록들을 디코딩할 때 참조 블록으로서의 이용을 위하여 디코딩된 블록의 복제본을 참조 프레임 버퍼 내에 저장하는 것 중 어느 하나 또는 양자 모두를 포함할 수도 있다.
도 8a 는 코딩된 블록에 대한 인트라-예측 모드를 표시하는 수신된 코드워드를 이용하여 블록에 대한 인트라-예측 모드를 결정하기 위한 예시적인 방법을 도시하는 흐름도이다. 다시, 도 8a 의 기법들은 임의의 적절한 프로세서에서 구현될 수도 있지만, 도 8a 의 기법들은 예를 들어 설명하기 위한 목적들로 비디오 디코더 (30) 의 예에 대하여 논의된다. 도 8a 는 일반적으로 도 7 의 단계 160 에 대한 추가적인 상세를 제공한다. 도 8a 에 도시된 방법의 단계들은 상이한 순서로 또는 병렬적으로 수행될 수도 있으며, 본 개시물의 기법들로부터 벗어나지 않으면서 추가적인 단계들이 부가되고 소정의 단계들이 생략될 수도 있다.
비디오 디코더 (30) 는 인트라-코딩된 블록에 대한 코드워드를 수신할 수도 있다 (170A). 위에서 논의된 바와 같이, 비디오 디코더 (30) 는 예를 들어, 블록의 사이즈 및/또는 이웃하는 블록들의 인트라-예측 코딩 모드들에 기초하여 블록에 대한 코딩 콘텍스트를 결정할 수도 있다 (172A). 결정된 콘텍스트에 기초하여, 비디오 디코더 (30) 는 그 블록에 대한 수정된 인트라-예측 모드 인덱스 테이블을 선택하고 (174A), 그 블록에 대한 가장 가능성있는 인트라-예측 모드를 결정할 수도 있다 (176A). 일부 예들에서는, 비디오 디코더 (30) 는 또한, 결정된 콘텍스트에 기초하여 그 블록에 대한 인트라-예측 모드 인덱스 테이블을 선택할 수도 있다.
비디오 디코더 (30) 는 코드워드 내의 제 1 비트가 선택된 인트라-예측 모드가 가장 가능성있는 모드라는 것을 표시하는지 여부를 결정할 수도 있다. 선택된 인트라-예측 모드가 가장 가능성있는 모드라면 (178A 의 "예" 브랜치), 비디오 디코더 (30) 는 가장 가능성있는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (180A). 반면에, 선택된 인트라-예측 모드가 가장 가능성있는 모드가 아닌 다른 인트라-예측 모드라면 (178A 의 "아니오" 브랜치), 비디오 디코더 (30) 는 선택된 수정된 인트라-예측 모드 인덱스 테이블로부터의 코드워드에 기초하여 수정된 인트라-예측 모드 (modified intra-prediction mode; MIPM) 인덱스를 결정할 수도 있다 (182A).
그러면, 비디오 디코더 (30) 는 수정된 인트라-예측 모드 인덱스가 그 블록의 콘텍스트에 대한 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작은지 여부를 결정할 수도 있다 (184A). 수정된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 작다면 (184A 의 "예" 브랜치), 비디오 디코더 (30) 는 수정된 인트라-예측 모드 인덱스와 동일한 모드 인덱스를 가지는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (186A). 반면에, 수정된 인트라-예측 모드 인덱스가 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스보다 더 크거나 동일하다면 (184A 의 "아니오" 브랜치), 비디오 디코더 (30) 는 수정된 인트라-예측 모드 인덱스보다 1 이 더 큰 것과 동일한 모드 인덱스를 가지는 인트라-예측 모드를 이용하여 블록을 디코딩할 수도 있다 (188A).
이러한 방식으로, 도 8a 는 현재 블록에 대한 콘텍스트에 기초하여 비디오 데이터의 코딩된 블록에 대한 가장 가능성있는 인트라-예측 모드를 결정하는 단계, 현재 블록에 대한 콘텍스트에 기초하여 코드워드들의 테이블을 선택하는 단계로서, 코드워드들의 테이블은, 콘텍스트에 기초하여 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드들에 대응하는 수정된 인트라-예측 모드에 대응하는 복수의 가변 길이 코드워드들을 포함하는, 상기 코드워드들의 테이블을 선택하는 단계, 코드워드들의 테이블을 이용하여 수정된 인트라-예측 모드 인덱스들 중 수신된 코드워드에 대응하는 하나의 수정된 인트라-예측 모드 인덱스를 결정하는 단계, 코딩된 블록을 디코딩하기 위하여 이용할, 가장 가능성있는 인트라-예측 모드가 아닌 다른 인트라-예측 모드를 선택하는 단계로서, 선택된 인트라-예측 모드는 수정된 인트라-예측 모드 인덱스들 중 결정된 하나의 수정된 인트라-예측 모드 인덱스에 대응하는, 상기 인트라-예측 모드를 선택하는 단계, 및 선택된 인트라-예측 모드를 이용하여 현재 블록을 디코딩하는 단계를 포함하는 방법의 일 예를 나타낸다.
도 8b 는 코딩된 블록에 대한 인트라-예측 모드를 표시하는 수신된 코드워드를 이용하여 블록에 대한 인트라-예측 모드를 결정하기 위한 예시적인 방법을 도시하는 흐름도이다. 다시, 도 8b 의 기법들은 임의의 적절한 프로세서에서 구현될 수도 있지만, 도 8b 의 기법들은 예를 들어 설명하기 위한 목적들로 비디오 디코더 (30) 의 예에 대하여 논의된다. 도 8b 는 일반적으로 2 개 이상의 가장 가능성있는 모드가 이용되는 실례들에서 도 7 의 단계 160 에 대한 추가적인 상세를 제공한다. 도 8b 에 도시된 방법의 단계들은 상이한 순서로 또는 병렬적으로 수행될 수도 있으며, 본 개시물의 기법들로부터 벗어나지 않으면서 추가적인 단계들이 부가되고 소정의 단계들이 생략될 수도 있다.
비디오 디코더 (30) 는 인트라-코딩된 블록에 대한 코드워드를 수신할 수도 있다 (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).
도 5, 도 6a, 도 6b, 도 7, 도 8a, 및 도 8b 의 방법은 수정된 인트라-예측 모드 인덱스들을 모드 인덱스들에 맵핑하는 것과 관련하여 도시되었지만, 방법들의 근본적인 기법들이 테이블 5 및 테이블 6 의 예들과 관련하여 위에서 설명되는 방식으로 수정된 코드워드 인덱스들을 코드워드 인덱스들에 맵핑하기 위하여 그리고 그 반대를 위하여 역시 이용될 수도 있다는 것이 이해될 것이다.
도 9 는 구성 데이터 (250) 의 예시적인 세트를 도시하는 개념도이며, 이 구성 데이터는 인트라-예측 모드 인덱스 테이블 (200), 수정된 인트라-예측 모드 인덱스 테이블 (210), 및 콘텍스트 데이터 (220) 간의 관계들을 표시한다. 구성 데이터 (250) 는 일반적으로 구성 데이터 (66) (도 2) 또는 구성 데이터 (84) (도 4) 에 대응할 수도 있다. 더욱이, 콘텍스트들, 테이블들, 그리고 가장 가능성있는 인트라-예측 모드들을 기술하는 구성 데이터는 주어진 비트스트림에 대하여 인코더 및 디코더 모두에서 동일해야 한다.
도 9 의 예에서는, 인트라-예측 모드 인덱스 테이블 (200) 은 일 세트의 인트라-예측 모드들 (2021-202 K ) (인트라-예측 모드들 (202)) 및 대응하는 인덱스들 (2041-204 K ) 을 포함한다. 오직 하나의 인트라-예측 모드 인덱스 테이블 (200) 이 설명 및 예를 들기 위한 목적들을 위하여 도시되지만, 구성 데이터 (250) 가 인트라-예측 모드 인덱스 테이블 (200) 과 유사한 복수의 인트라-예측 모드 인덱스 테이블들을 포함할 수도 있다는 것이 이해되어야 한다. 인트라-예측 모드 인덱스 테이블들은 예를 들어 테이블 5 와 관련하여 위에서 논의된 바와 같이, 블록에 대한 이용가능한 인트라-예측 모드들의 개수가 블록의 사이즈에 의존할 수도 있기 때문에 모두 동일한 사이즈를 가질 필요가 없다. 또한, 인덱스들 (204) 은 인트라-예측 모드 인덱스들이라고 지칭되거나, 또는 간단히 모드 인덱스들이라고 지칭될 수도 있다.
수정된 인트라-예측 모드 인덱스 테이블 (210) 은 인덱스들 (2121-212 K -1) 은 물론, 코드워드들 (2141-214 K -1) 을 포함한다. 이러한 방식으로, 수정된 인트라-예측 모드 인덱스 테이블 (210) 은 인트라 모드 인덱스 테이블 (200) (K 개) 보다 1 개 더 적은 엔트리들 (K - 1 개) 을 포함한다. 위에서 논의된 바와 같이, 가장 가능성있는 인트라-예측 모드는 코드워드들 (214) 중 하나가 아니라 단일 비트 또는 비트들의 시리즈를 이용하여 표시될 수도 있다. 따라서, 가장 가능성있는 인트라 예측 모드가 아닌 다른 인트라-예측 모드들이 코드워드들 (214) 중 하나에 의하여 나타내질 수도 있다. 다시, 오직 하나의 수정된 인트라-예측 모드 인덱스 테이블이 도 9 의 예에서 도시되지만, 구성 데이터 (250) 는 복수의 수정된 인트라-예측 모드 인덱스 테이블들을 포함할 수도 있다는 것이 이해되어야 한다. 더욱이, 수정된 인트라-예측 모드 인덱스 테이블들의 개수는 반드시 인트라 모드 인덱스 테이블들의 개수와 동일할 필요가 없다. 일부 예들에서는, 동일한 모드 인덱스 테이블이 하나 이상의 인트라 모드 인덱스 테이블들에 대응할 수도 있도록 인트라 모드 인덱스 테이블들 및 수정된 인트라-예측 모드 인덱스 테이블들 간에는 다-대-1 관계가 존재할 수도 있다.
더욱이, 구성 데이터 (250) 는 콘텍스트 데이터 (220) 를 포함하며, 이 콘텍스트 데이터는 콘텍스트 엔트리 (222A) 와 유사한 복수의 콘텍스트 엔트리들을 포함한다. 이 예에서는, 콘텍스트 엔트리 (222A) 는 가장 가능성있는 인트라 모드 표시자 (224A), 인트라-예측 모드 인덱스 테이블 식별자 (226A), 수정된 인트라-예측 모드 인덱스 테이블 식별자 (228A), 및 블록 콘텍스트 데이터 (230A) 를 포함한다. 블록 콘텍스트 데이터 (230A) 는 콘텍스트 엔트리 (222A) 가 적용하는 블록들을 표시하는 정보를 포함할 수도 있다. 예를 들어, 블록 콘텍스트 데이터 (230A) 는 콘텍스트 엔트리 (222A) 가 적용하는 블록들의 하나 이상의 사이즈들은 물론, 콘텍스트 엔트리 (222A) 가 적용하는 블록들의 이웃하는 블록들에 대한 인트라-예측 모드들을 기술하는 정보를 포함할 수도 있다. 일 예로서, 콘텍스트 엔트리들 (222) 중 하나에 대한 블록 콘텍스트 데이터는, 그 콘텍스트 엔트리가 16×16 픽셀들을 가지는 블록들에 대응하며, 여기서 상측-이웃하는 블록이 수평 인트라-예측 모드를 이용하여 인코딩되고 좌측-이웃하는 블록도 역시 수평 인트라-예측 모드를 이용하여 인코딩된다는 것을 표시할 수도 있다.
이 예에서는, 가장 가능성있는 인트라 모드 표시자 (224A) 가 인트라-예측 모드 (202 M ) 를 표시한다. 일부 예들에서는, 구성 데이터 (250) 는 블록이 가장 가능성있는 인트라-예측 모드를 이용하여 인코딩된다는 것을 나타내기 위하여 이용할 단일 비트 코드워드를 특정할 수도 있다. 따라서, 블록 콘텍스트 데이터 (230A) 에 대응하는 콘텍스트들을 가지는 블록들에 대하여, 가장 가능성있는 인트라-예측 모드는 이 예에서는 인트라-예측 모드 (202 M ) 이다. 인트라-예측 모드 (202 M ) 가 콘텍스트 엔트리 (222A) 에 대한 가장 가능성있는 인트라-예측 모드이기 때문에, 인트라-예측 모드 (202 M ) 는 수정된 인트라-예측 모드 인덱스 테이블 (210) 내의 코드워드들 (214) 중 하나에 맵핑될 필요가 없으며, 따라서, 수정된 인트라-예측 모드 인덱스 테이블 (210) 내에는 인트라 모드 인덱스 테이블 (200) 내에서의 인트라-예측 모드들 (202) 보다 하나 더 작은 코드워드가 존재할 수도 있다.
더욱이, 이 예에서 모드 인덱스 (204 M ) 보다 더 작은 모드 인덱스들 (204), 즉, 모드 인덱스들 (2041-204 M -1) 은 수정된 인트라-예측 모드 인덱스 테이블 (210) 의 동일한 값을 가지는 (equally-valued) 수정된 인트라-예측 모드 인덱스들 (212) 에 맵핑된다. 예를 들어, 모드 인덱스 (2042) 는 이 예에서는, 모드 인덱스 (2042) 가 모드 인덱스 (204 M ) 보다 더 작은 것에 기인하여 수정된 인트라-예측 모드 인덱스 (2122) 에 맵핑된다. 따라서, 비디오 인코더 (20) 가 블록 콘텍스트 데이터 (230A) 에 의하여 정의되는 콘텍스트를 가지는 블록을 인트라-예측 모드 (2022) 를 이용하여 인코딩하는 경우에는, 비디오 인코더 (20) 는 그 블록에 대한 인트라-예측 모드를 코드워드 (2142) 를 이용하여 시그널링할 수도 있다. 이와 유사하게, 비디오 디코더 (30) 가 블록 콘텍스트 데이터 (230A) 에 의하여 정의되는 콘텍스트를 가지는 블록에 대한 코드워드 (2142) 를 수신하는 경우에는, 비디오 디코더 (30) 는 그 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드 (및 이와 유사하게, 그 블록을 디코딩하기 위하여 이용되는 인트라-예측 모드) 가 인트라-예측 모드 (2022) 를 포함한다고 결정할 수도 있다. 이와 유사하게, 인트라-예측 모드 (202 M -1) 는 모드 인덱스 (204 M -1) 가 수정된 인트라-예측 모드 인덱스 (212 M -1) 에 맵핑되는 것에 기인하여 코드워드 (214 M -1) 에 맵핑된다.
반면에, 모드 인덱스 (204 M ) 보다 더 큰 모드 인덱스들 (204), 즉, 모드 인덱스들 (204 M -1-204 K ) 은, 이 예에서는 그 모드 인덱스보다 하나 더 작은 수정된 인트라-예측 모드 인덱스들 (212) 에 맵핑된다. 예를 들어, 모드 인덱스 (204 K -1) 는, 이 예에서는 모드 인덱스 (204 K -1) 가 모드 인덱스 (204 M ) 보다 더 큰 것에 기인하여 수정된 인트라-예측 모드 인덱스 (212 K -2) 에 맵핑된다. 따라서, 비디오 인코더 (20) 가 블록 콘텍스트 데이터 (230A) 에 의하여 정의되는 콘텍스트를 가지는 블록을 인트라-예측 모드 (202 K -1) 를 이용하여 인코딩하는 경우에는, 비디오 인코더 (20) 는 그 블록에 대한 인트라-예측 모드를 코드워드 (214 K -2) 를 이용하여 시그널링할 수도 있다. 이와 유사하게, 비디오 디코더 (30) 가 블록 콘텍스트 데이터 (230A) 에 의하여 정의되는 콘텍스트를 가지는 블록에 대한 코드워드 (214 K -2) 를 수신하는 경우에는, 비디오 디코더 (30) 는 그 블록을 인코딩하기 위하여 이용되는 인트라-예측 모드 (및 이와 유사하게, 그 블록을 디코딩하기 위하여 이용되는 인트라-예측 모드) 가 인트라-예측 모드 (202 K -1) 를 포함한다고 결정할 수도 있다. 이와 유사하게, 인트라-예측 모드 (202 M +1) 는 모드 인덱스 (204 M +1) 가 수정된 인트라-예측 모드 인덱스 (212 M ) 에 맵핑되는 것에 기인하여 코드워드 (214 M ) 에 맵핑된다.
이러한 방식으로, 모드 인덱스 j 에 맵핑되는 인트라-예측 모드가 주어지면, 비디오 인코더 (20) 는 가장 가능성있는 모드들이 아닌 다른 인트라-예측 모드들에 대하여, 후속하는 스텝 함수 f(j) 를 이용하여 코드워드를 결정할 수도 있으며, 여기서 m 은 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내고, codeword(n) 은 수정된 인트라-예측 모드 인덱스 n 에 할당된 코드워드를 나타낸다:
Figure 112013038457049-pct00009
이와 유사하게, 가장 가능성있는 모드가 아닌 선택된 인트라-예측 모드에 대한 코드워드가 주어지면, 비디오 디코더 (30) 는 코드워드에 맵핑된 인트라-예측 모드를 후속하는 스텝 함수 g(n) 을 이용하여 결정할 수도 있으며, 여기서 m 은 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내고, mode(j) 는 모드 인덱스 j 에 맵핑된 인트라-코딩 모드를 지칭한다:
Figure 112013038457049-pct00010
이러한 개념들이 2 개의 가장 가능성있는 모드들이 이용되는 예들로 확대되는 경우에는, 모드 인덱스 j 에 맵핑된 인트라-코딩 모드가 주어진다면, 비디오 인코더 (20) 는 코드워드를 후속하는 스텝 함수 f(j) 를 이용하여 결정할 수도 있으며, 여기서 m 1 은 제 1 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내고, m 2 는 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내며, codeword(n) 은 수정된 인트라-예측 모드 인덱스 n 에 할당된 코드워드를 나타낸다:
Figure 112013038457049-pct00011
이와 유사하게, 코드워드가 주어지면, 비디오 디코더 (30) 는 코드워드에 맵핑된 인트라-예측 모드를 후속하는 스텝 함수 g(n) 을 이용하여 결정할 수도 있으며, 여기서 m 1 은 제 1 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내고, m 2 는 제 2 의 가장 가능성있는 인트라-예측 모드에 대한 모드 인덱스를 나타내며, mode(j) 는 모드 인덱스 j 에 맵핑된 인트라-예측 모드를 지칭한다:
Figure 112013038457049-pct00012
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 이 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 이를 통하여 송신될 수 있고, 하드웨어 기반 프로세싱 유닛에 의하여 실행될 수도 있다. 컴퓨터 판독가능 매체는 예를 들어, 통신 프로토콜에 따라, 일 장소로부터 타 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체, 또는 데이터 저장 매체와 같은 유형의 매체에 대응하는, 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는, 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는, 본 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 일 예로, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하기 위하여 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속도 적절하게 컴퓨터 판독가능 매체라고 칭한다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 적외선, 라디오, 및/또는 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신된다면, 매체의 정의에는 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들이 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체가, 접속들, 반송파들, 신호들 또는 다른 일시적 매체를 포함하지 않고, 대신에 비일시적인, 유형의 저장 매체와 관련된다는 것이 이해되어야 한다. 본 명세서에서 사용되는 바와 같이, 디스크 (disk) 및 디스크 (disc) 는 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생시키는 한편, 디스크 (disc) 들은 레이저를 이용하여 데이터를 광학적으로 재생시킨다. 상기의 조합들도 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 이를 테면 하나 이상의 디지털 신호 프로세서 (DSP) 들, 범용 마이크로프로세서들, 주문형 집적회로 (ASIC) 들, 필드 프로그램가능 로직 어레이 (FPGA) 들, 또는 다른 등가의 집적 또는 이산 로직 회로에 의해 실행될 수도 있다. 따라서, 본 명세서에서 사용되는 바와 같이, 용어 "프로세서" 는 전술한 구조 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 또한, 일부 양태들에서, 본 명세서에서 설명되는 기능성은 인코딩 및 디코딩을 위하여 구성되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱 (codec) 내에 통합될 수도 있다. 또한, 이 기술들은 하나 이상의 회로들 또는 로직 엘리먼트들 내에서 온전히 구현될 수 있다.
본 개시물의 기법들은, 무선 핸드셋, 집적회로 (IC) 또는 IC들의 세트 (예컨대, 칩 셋) 를 포함하는, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위하여 본 개시물에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하는 것은 아니다. 오히려, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛 내에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 연계하여, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용적 하드웨어 유닛들의 컬렉션에 의해 제공될 수도 있다.

Claims (84)

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

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US38916610P 2010-10-01 2010-10-01
US61/389,166 2010-10-01
US201061427440P 2010-12-27 2010-12-27
US61/427,440 2010-12-27
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/248,760 US9025661B2 (en) 2010-10-01 2011-09-29 Indicating intra-prediction mode selection for video coding
US13/248,760 2011-09-29
PCT/US2011/054218 WO2012044931A1 (en) 2010-10-01 2011-09-30 Indicating intra-prediction mode selection for video coding

Publications (2)

Publication Number Publication Date
KR20130063029A KR20130063029A (ko) 2013-06-13
KR101518149B1 true KR101518149B1 (ko) 2015-05-06

Family

ID=45889816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137011290A KR101518149B1 (ko) 2010-10-01 2011-09-30 비디오 코딩을 위한 인트라-예측 모드 선택의 표시

Country Status (12)

Country Link
US (1) US9025661B2 (ko)
EP (1) EP2622864B1 (ko)
JP (1) JP2013539940A (ko)
KR (1) KR101518149B1 (ko)
CN (1) CN103262533B (ko)
DK (1) DK2622864T3 (ko)
ES (1) ES2700296T3 (ko)
HU (1) HUE040322T2 (ko)
IN (1) IN2013MN00599A (ko)
PT (1) PT2622864T (ko)
SI (1) SI2622864T1 (ko)
WO (1) WO2012044931A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101739987B1 (ko) * 2010-12-28 2017-05-26 에스케이 텔레콤주식회사 주변블록의 특징벡터를 이용한 영상 부호화/복호화 방법 및 장치
AU2011354441B2 (en) 2011-01-07 2014-07-17 Hfi Innovation Inc. Method and apparatus of improved intra luma prediction mode coding
EP2764694A4 (en) 2011-10-07 2015-11-25 Pantech Co Ltd METHODS AND APPARATUSES FOR INTRA PREDICTION MODE CODING AND DECODING USING INTRA CANDIDATE PREDICTION MODES
LT2773118T (lt) 2011-10-24 2020-10-12 Innotive Ltd Vaizdo dekodavimo būdas ir aparatas
US10390016B2 (en) 2011-11-04 2019-08-20 Infobridge Pte. Ltd. Apparatus of encoding an image
KR20130049524A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US9154796B2 (en) * 2011-11-04 2015-10-06 Qualcomm Incorporated Intra-mode video coding
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US9628789B2 (en) 2011-11-18 2017-04-18 Qualcomm Incorporated Reference mode selection in intra mode coding
WO2013106986A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of intra mode coding
CN103220506B (zh) * 2012-01-19 2015-11-25 华为技术有限公司 一种编解码方法和设备
WO2013115568A1 (ko) * 2012-01-30 2013-08-08 한국전자통신연구원 인트라 예측 모드 부호화/복호화 방법 및 장치
US9955169B2 (en) * 2012-01-30 2018-04-24 Electronics And Telecommunications Research Institute Intra prediction mode encoding/decoding method and apparatus
HUE039986T2 (hu) * 2012-07-02 2019-02-28 Samsung Electronics Co Ltd Eljárás video entrópia dekódolására
US9544612B2 (en) * 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
US10349069B2 (en) * 2012-12-11 2019-07-09 Sony Interactive Entertainment Inc. Software hardware hybrid video encoder
US9237343B2 (en) * 2012-12-13 2016-01-12 Mitsubishi Electric Research Laboratories, Inc. Perceptually coding images and videos
US10904551B2 (en) * 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
US9787989B2 (en) * 2013-06-11 2017-10-10 Blackberry Limited Intra-coding mode-dependent quantization tuning
CN103813173B (zh) * 2014-03-14 2017-02-15 北方工业大学 基于bcim的3d‑hevc快速帧内预测方案
CN105554504B (zh) * 2015-12-15 2018-07-03 辽宁师范大学 基于升降序元组的索引图编码和解码方法
WO2017190288A1 (en) 2016-05-04 2017-11-09 Microsoft Technology Licensing, Llc Intra-picture prediction using non-adjacent reference lines of sample values
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
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
CN117395408A (zh) * 2016-10-04 2024-01-12 韩国电子通信研究院 对图像进行编码/解码的方法和设备以及记录介质
WO2018101687A1 (ko) 2016-11-29 2018-06-07 성균관대학교 산학협력단 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR102628889B1 (ko) * 2017-07-24 2024-01-25 애리스 엔터프라이지즈 엘엘씨 인트라 모드 jvet 코딩
US10863172B2 (en) 2017-07-24 2020-12-08 Arris Enterprises Llc Intra mode JVET coding
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
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
US11616949B2 (en) 2018-08-31 2023-03-28 Hfi Innovation Inc. Method and apparatus of intra prediction with MPM generation in image and video processing
KR20210046804A (ko) * 2018-09-07 2021-04-28 주식회사 비원영상기술연구소 영상 부호화/복호화 방법 및 장치
US10848763B2 (en) * 2018-11-14 2020-11-24 Tencent America LLC Method and apparatus for improved context design for prediction mode and coded block flag (CBF)
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
CN114175653B (zh) * 2019-09-17 2023-07-25 北京达佳互联信息技术有限公司 用于视频编解码中的无损编解码模式的方法和装置
US11962784B2 (en) * 2020-09-23 2024-04-16 Ofinno, Llc Intra prediction
KR102639490B1 (ko) * 2023-10-13 2024-02-21 조영봉 친환경 과수 살균제 조성물의 제조방법

Family Cites Families (22)

* 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
CN100481955C (zh) 2000-12-06 2009-04-22 真实网络公司 对视频数据进行内编码的方法和设备
WO2003084241A2 (en) 2002-03-22 2003-10-09 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
DE60345459C5 (de) 2002-06-11 2022-11-17 Nokia Technologies Oy Intracodierung auf der basis räumlicher prädiktion
US7194137B2 (en) 2003-05-16 2007-03-20 Cisco Technology, Inc. Variable length coding method and apparatus for video compression
KR101014660B1 (ko) * 2003-10-24 2011-02-16 삼성전자주식회사 인트라 예측 방법 및 장치
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
FR2908007A1 (fr) * 2006-10-31 2008-05-02 Thomson Licensing Sas Procede de codage d'une sequence d'images
JP2008199100A (ja) 2007-02-08 2008-08-28 Toshiba Corp 可変長符号復号装置
BRPI0818444A2 (pt) 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
NO328295B1 (no) 2007-12-20 2010-01-25 Tandberg Telecom As VLC-fremgangsmate og -innretning
KR20090095316A (ko) * 2008-03-05 2009-09-09 삼성전자주식회사 영상 인트라 예측 방법 및 장치
US8761253B2 (en) 2008-05-28 2014-06-24 Nvidia Corporation Intra prediction mode search scheme
KR101507344B1 (ko) 2009-08-21 2015-03-31 에스케이 텔레콤주식회사 가변 길이 부호를 이용한 인트라 예측모드 부호화 방법과 장치, 및 이를 위한기록 매체
CA2784517A1 (en) 2009-12-17 2011-06-23 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for video coding
KR101789634B1 (ko) 2010-04-09 2017-10-25 엘지전자 주식회사 비디오 데이터 처리 방법 및 장치
US20120106640A1 (en) 2010-10-31 2012-05-03 Broadcom Corporation Decoding side intra-prediction derivation for video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FLC, VLC 테이블 등을 통한 변환 인코딩 기법
인트라 예측 기법(Intra prediction)을 이용한 예측 모드 결정 방법

Also Published As

Publication number Publication date
CN103262533B (zh) 2016-08-31
WO2012044931A1 (en) 2012-04-05
PT2622864T (pt) 2018-12-12
KR20130063029A (ko) 2013-06-13
SI2622864T1 (sl) 2019-01-31
CN103262533A (zh) 2013-08-21
HUE040322T2 (hu) 2019-02-28
EP2622864A1 (en) 2013-08-07
ES2700296T3 (es) 2019-02-14
US20120082223A1 (en) 2012-04-05
IN2013MN00599A (ko) 2015-05-29
US9025661B2 (en) 2015-05-05
JP2013539940A (ja) 2013-10-28
EP2622864B1 (en) 2018-09-05
DK2622864T3 (da) 2019-01-02

Similar Documents

Publication Publication Date Title
KR101518149B1 (ko) 비디오 코딩을 위한 인트라-예측 모드 선택의 표시
KR101518157B1 (ko) Cabac 을 이용한 비디오 코딩을 위한 인트라-예측 모드 선택의 표시
KR101632776B1 (ko) 비디오 코딩에 대한 구문 엘리먼트들의 공동 코딩
KR101619004B1 (ko) 인트라 예측 코딩에 있어서의 최빈 변환
KR101626734B1 (ko) 비디오 코딩을 위한 인트라 평활 필터
KR101534416B1 (ko) 인트라-예측을 이용한 비디오 코딩
KR101344115B1 (ko) 큰 매크로블록들을 이용한 비디오 코딩
KR101632130B1 (ko) 인트라 모드 코딩에서 레퍼런스 모드 선택
KR101375891B1 (ko) 큰 매크로블록들을 이용한 비디오 코딩
KR101618021B1 (ko) 인트라 예측 모드들의 서브세트 및 대응하는 방향 변환들을 이용한 비디오 코딩
KR101589852B1 (ko) 비디오 코딩을 위한 2차 경계 필터링
EP3282702A1 (en) Enhanced intra-prediction mode signaling for video coding using neighboring mode
EP2636219A1 (en) Joint coding of syntax elements for video coding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
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