KR20190045885A - 비디오 신호 처리 방법 및 장치 - Google Patents

비디오 신호 처리 방법 및 장치 Download PDF

Info

Publication number
KR20190045885A
KR20190045885A KR1020180127816A KR20180127816A KR20190045885A KR 20190045885 A KR20190045885 A KR 20190045885A KR 1020180127816 A KR1020180127816 A KR 1020180127816A KR 20180127816 A KR20180127816 A KR 20180127816A KR 20190045885 A KR20190045885 A KR 20190045885A
Authority
KR
South Korea
Prior art keywords
mode
modes
angle
block
intra prediction
Prior art date
Application number
KR1020180127816A
Other languages
English (en)
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 KR20190045885A publication Critical patent/KR20190045885A/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/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/96Tree coding, e.g. quad-tree coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

비디오 신호를 인코딩하거나 디코딩하는 비디오 신호 처리 방법 및 장치가 개시된다. 더욱 구체적으로, 비디오 신호의 처리 방법에 있어서, 현재 블록을 위한 인트라 예측 모드 정보를 수신하는 단계, 상기 인트라 예측 모드 정보는 인트라 예측 모드 세트를 구성하는 복수의 인트라 예측 모드들 중 어느 하나를 지시함; 및 수신된 인트라 예측 모드 정보에 기초하여 상기 현재 블록을 디코딩하는 단계를 포함하되, 상기 인트라 예측 모드 세트는 복수의 각도 모드들을 포함하고, 상기 복수의 각도 모드들은 기본 각도 모드와 확장 각도 모드를 포함하며, 상기 확장 각도 모드는 상기 기본 각도 모드에 기초하여 시그널링되는 비디오 신호 처리 방법 및 이를 이용한 비디오 신호 처리 장치가 개시된다.

Description

비디오 신호 처리 방법 및 장치{A METHOD AND AN APPARATUS FOR PROCESSING A VIDEO SIGNAL}
본 발명은 비디오 신호의 처리 방법 및 장치에 관한 것으로, 보다 상세하게는 비디오 신호를 인코딩하거나 디코딩하는 비디오 신호 처리 방법 및 장치에 관한 것이다.
압축 부호화란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하기 위한 일련의 신호 처리 기술을 의미한다. 압축 부호화의 대상에는 음성, 영상, 문자 등의 대상이 존재하며, 특히 영상을 대상으로 압축 부호화를 수행하는 기술을 비디오 압축이라고 일컫는다. 비디오 신호에 대한 압축 부호화는 공간적인 상관관계, 시간적인 상관관계, 확률적인 상관관계 등을 고려하여 잉여 정보를 제거함으로써 이루어진다. 그러나 최근의 다양한 미디어 및 데이터 전송 매체의 발전으로 인해, 더욱 고효율의 비디오 신호 처리 방법 및 장치가 요구되고 있다.
본 발명은 비디오 신호의 코딩 효율을 높이기 위한 목적을 가지고 있다.
또한, 본 발명은 주변 블록들의 예측 정보를 이용하여 현재 블록을 예측할 때 시그널링 효율을 높이기 위한 목적을 가지고 있다.
상기와 같은 과제를 해결하기 위해, 본 발명은 다음과 같은 비디오 신호 처리 장치 및 비디오 신호 처리 방법을 제공한다.
먼저 본 발명의 실시예에 따르면, 비디오 신호의 처리 방법에 있어서, 현재 블록을 위한 인트라 예측 모드 정보를 수신하는 단계, 상기 인트라 예측 모드 정보는 인트라 예측 모드 세트를 구성하는 복수의 인트라 예측 모드들 중 어느 하나를 지시함; 및 수신된 인트라 예측 모드 정보에 기초하여 상기 현재 블록을 디코딩하는 단계를 포함하되, 상기 인트라 예측 모드 세트는 복수의 각도 모드들을 포함하고, 상기 복수의 각도 모드들은 기본 각도 모드와 확장 각도 모드를 포함하며, 상기 확장 각도 모드는 상기 기본 각도 모드에 기초하여 시그널링되는 비디오 신호 처리 방법이 제공된다.
또한, 본 발명의 실시예에 따르면, 비디오 신호 처리 장치에 있어서, 프로세서를 포함하며, 상기 프로세서는, 현재 블록을 위한 인트라 예측 모드 정보를 수신하되, 상기 인트라 예측 모드 정보는 인트라 예측 모드 세트를 구성하는 복수의 인트라 예측 모드들 중 어느 하나를 지시하고, 수신된 인트라 예측 모드 정보에 기초하여 상기 현재 블록을 디코딩하되, 상기 인트라 예측 모드 세트는 복수의 각도 모드들을 포함하고, 상기 복수의 각도 모드들은 기본 각도 모드와 확장 각도 모드를 포함하며, 상기 확장 각도 모드는 상기 기본 각도 모드에 기초하여 시그널링되는 비디오 신호 처리 장치가 제공된다.
상기 기본 각도 모드는 기 설정된 제1 각도 범위 이내의 각도에 대응하는 모드이고, 상기 확장 각도 모드는 상기 기본 각도 모드에 기초하여 결정된다.
상기 확장 각도 모드는 상기 제1 각도 범위를 벗어나는 광각 모드이다.
상기 광각 모드는 상기 제1 각도 범위 이내의 적어도 하나의 기본 각도 모드를 대체하며, 대체되는 상기 기본 각도 모드에 대응하는 인트라 예측 모드 인덱스는 상기 광각 모드를 시그널링한다.
상기 확장 각도 모드는 상기 제1 각도 범위 내에서 기본 각도 모드들 사이의 각도 모드이다.
상기 인트라 예측 모드 세트의 확장 각도 모드들 간의 간격은 대응하는 기본 각도 모드들 간의 간격에 기초하여 설정된다.
상기 확장 각도 모드들 간의 각도 간격은 대응하는 상기 기본 각도 모드들 간의 각도 간격과 동일하도록 설정된다.
상기 확장 각도 모드의 사용 여부는 상기 현재 블록의 모양 및 크기 중 적어도 하나에 기초하여 결정된다.
상기 인트라 예측 모드 세트에서 확장 각도 모드들의 개수는 기본 각도 모드들의 개수 이하로 설정된다.
본 발명의 실시예에 따르면 비디오 신호의 코딩 효율이 높아질 수 있다.
또한, 본 발명의 실시예에 따르면 현재 블록을 위한 예측 방법을 다양하게 확장할 수 있으며, 이러한 확장에 따른 시그널링 오버헤드를 최소화할 수 있다.
도 1은 본 발명의 실시예에 따른 비디오 신호 인코딩 장치의 개략적인 블록도이다.
도 2는 본 발명의 실시예에 따른 비디오 신호 디코딩 장치의 개략적인 블록도이다.
도 3은 픽쳐 내에서 코딩 트리 유닛이 코딩 유닛들로 분할되는 실시예를 도시한다.
도 4는 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하는 방법의 일 실시예를 도시한다.
도 5는 인트라 예측 모드에서 현재 블록의 예측을 위해 사용되는 참조 샘플들의 일 실시예를 도시한다.
도 6은 인트라 예측에 사용되는 예측 모드들의 일 실시예를 도시한다.
도 7은 인코더에 의해 선택된 인트라 예측 모드를 디코더에게 시그널링하는 방법의 일 실시예를 도시한다.
도 8은 인트라 예측 모드를 시그널링하는 방법의 상세 실시예를 도시한다.
도 9는 인트라 예측 모드에 적용되는 컨텍스트 조건의 일 실시예를 도시한다.
도 10은 인트라 예측 모드에 적용되는 컨텍스트 조건의 다른 실시예를 도시한다.
도 11은 인트라 예측 모드에 적용되는 컨텍스트 조건의 또 다른 실시예를 도시한다.
도 12는 현재 블록의 인트라 예측을 위해 주변 블록들을 참조하는 일 실시예를 도시한다.
도 13은 현재 블록의 인트라 예측을 위해 주변 블록들을 참조하는 다른 실시예를 도시한다.
도 14는 현재 블록의 인트라 예측을 위해 주변 블록들의 MPM 리스트를 참조하는 일 실시예를 도시한다.
도 15는 현재 블록의 인트라 예측을 위해 현재 블록 및 주변 블록의 모양 및/또는 크기를 고려하는 일 실시예를 도시한다.
도 16 내지 도 18은 주변 블록들의 예측 정보를 참조하여 현재 블록의 예측 정보를 획득하는 확장된 실시예들을 도시한다.
도 19는 주변 블록들의 인트라 예측 모드의 발생 빈도수에 기초하여 인트라 예측 모드의 우선 순위를 설정하는 일 실시예를 도시한다.
도 20 및 도 21은 인트라 예측 모드들을 복수의 서브 세트들로 분류하는 실시예를 도시한다.
도 22는 분류된 인트라 예측 모드들의 서브 세트를 이용하여 현재 블록의 인트라 예측 모드를 시그널링하는 실시예를 도시한다.
도 23은 분류된 인트라 예측 모드들의 서브 세트를 이용하여 현재 블록의 인트라 예측 모드를 시그널링하는 상세 실시예를 도시한다.
도 24는 주변 블록들의 예측 정보에 기초하여 현재 블록의 인트라 예측 모드를 동적으로 시그널링하는 실시예를 도시한다.
도 25는 MPM 모드의 개수를 가변적으로 조정하고 이에 기초하여 현재 블록의 인트라 예측 모드를 시그널링하는 실시예를 도시한다.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도, 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한 특정 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는, 단순한 용어의 명칭이 아닌 그 용어가 가진 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석되어야 함을 밝혀두고자 한다.
본 명세서에서 일부 용어들은 다음과 같이 해석될 수 있다. 코딩은 경우에 따라 인코딩 또는 디코딩으로 해석될 수 있다. 본 명세서에서 비디오 신호의 인코딩(부호화)을 수행하여 비디오 신호 비트스트림을 생성하는 장치는 인코딩 장치 혹은 인코더로 지칭되며, 비디오 신호 비트스트림의 디코딩(복호화)을 수행하여 비디오 신호를 복원하는 장치는 디코딩 장치 혹은 디코더로 지칭된다. 또한, 본 명세서에서 비디오 신호 처리 장치는 인코더 및 디코더를 모두 포함하는 개념의 용어로 사용된다. 정보(information)는 값(values), 파라미터(parameter), 계수(coefficients), 성분(elements) 등을 모두 포함하는 용어로서, 경우에 따라 의미는 달리 해석될 수 있으므로 본 발명은 이에 한정되지 아니한다. '유닛'은 영상 처리의 기본 단위 또는 픽쳐의 특정 위치를 지칭하는 의미로 사용되며, 루마(luma) 성분과 크로마(chroma) 성분을 모두 포함하는 이미지 영역을 가리킨다. 또한, '블록'은 루마 성분 및 크로마 성분들(즉, Cb 및 Cr) 중 특정 성분을 포함하는 이미지 영역을 가리킨다. 다만, 실시예에 따라서 '유닛', '블록', '파티션' 및 '영역' 등의 용어는 서로 혼용하여 사용될 수 있다. 또한, 본 명세서에서 유닛은 코딩 유닛, 예측 유닛, 변환 유닛을 모두 포함하는 개념으로 사용될 수 있다. 픽쳐는 필드 혹은 프레임을 가리키며, 실시예에 따라 상기 용어들은 서로 혼용하여 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 비디오 신호 인코딩 장치의 개략적인 블록도이다. 도 1을 참조하면, 본 발명의 인코딩 장치(100)는 변환부(110), 양자화부(115), 역양자화부(120), 역변환부(125), 필터링부(130), 예측부(150) 및 엔트로피 코딩부(160)를 포함한다.
변환부(110)는 입력 받은 비디오 신호와 예측부(150)에서 생성된 예측 신호의 차이인 레지듀얼 신호를 변환하여 변환 계수 값을 획득한다. 예를 들어, 이산 코사인 변환(Discrete Cosine Transform, DCT), 이산 사인 변환(Discrete Sine Transform, DST) 또는 웨이블릿 변환(Wavelet Transform) 등이 사용될 수 있다. 이산 코사인 변환 및 이산 사인 변환은 입력된 픽쳐 신호를 블록 형태로 나누어 변환을 수행하게 된다. 변환에 있어서 변환 영역 내의 값들의 분포와 특성에 따라서 코딩 효율이 달라질 수 있다. 양자화부(115)는 변환부(110)에서 출력된 변환 계수 값을 양자화한다.
코딩 효율을 높이기 위하여 픽쳐 신호를 그대로 코딩하는 것이 아니라, 예측부(150)를 통해 이미 코딩된 영역을 이용하여 픽쳐를 예측하고, 예측된 픽쳐에 원본 픽쳐와 예측 픽쳐 간의 레지듀얼 값을 더하여 복원 픽쳐를 획득하는 방법이 사용된다. 인코더와 디코더에서 미스매치가 발생되지 않도록 하기 위해, 인코더에서 예측을 수행할 때에는 디코더에서도 사용 가능한 정보를 사용해야 한다. 이를 위해, 인코더에서는 부호화한 현재 블록을 다시 복원하는 과정을 수행한다. 역양자화부(120)에서는 변환 계수 값을 역양자화하고, 역변환부(125)에서는 역양자화된 변환 계수값을 이용하여 레지듀얼 값을 복원한다. 한편, 필터링부(130)는 복원된 픽쳐의 품질 개선 및 부호화 효율 향상을 위한 필터링 연산을 수행한다. 예를 들어, 디블록킹 필터, 샘플 적응적 오프셋(Sample Adaptive Offset, SAO) 및 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 픽쳐는 출력되거나 참조 픽쳐로 이용하기 위하여 복호 픽쳐 버퍼(Decoded Picture Buffer, DPB, 156)에 저장된다.
예측부(150)는 인트라 예측부(152)와 인터 예측부(154)를 포함한다. 인트라 예측부(152)는 현재 픽쳐 내에서 인트라(intra) 예측을 수행하며, 인터 예측부(154)는 복호 픽쳐 버퍼(156)에 저장된 참조 픽쳐를 이용하여 현재 픽쳐를 예측하는 인터(inter) 예측을 수행한다. 인트라 예측부(152)는 현재 픽쳐 내의 복원된 샘플들로부터 인트라 예측을 수행하여, 인트라 부호화 정보를 엔트로피 코딩부(160)에 전달한다. 인트라 부호화 정보는 인트라 예측 모드, MPM(Most Probable Mode) 플래그, MPM 인덱스 중 적어도 하나를 포함할 수 있다. 인터 예측부(154)는 모션 추정부(154a) 및 모션 보상부(154b)를 포함하여 구성될 수 있다. 모션 추정부(154a)는 복원된 참조 픽쳐의 특정 영역을 참조하여 현재 영역의 모션 벡터값을 획득한다. 모션 추정부(154a)는 참조 영역에 대한 모션 정보(참조 픽쳐 인덱스, 모션 벡터 정보 등)를 엔트로피 코딩부(160)로 전달한다. 모션 보상부(154b)는 모션 추정부(154a)에서 전달된 모션 벡터값을 이용하여 모션 보상을 수행한다. 인터 예측부(154)는 참조 영역에 대한 모션 정보를 포함하는 인터 부호화 정보를 엔트로피 코딩부(160)에 전달한다.
위와 같은 픽쳐 예측이 수행될 경우, 변환부(110)는 원본 픽쳐와 예측 픽쳐 간의 레지듀얼 값을 변환하여 변환 계수 값을 획득한다. 이때, 변환은 픽쳐 내에서 특정 블록 단위로 수행될 수 있으며, 특정 블록의 크기는 기 설정된 범위 내에서 가변할 수 있다. 양자화부(115)는 변환부(110)에서 생성된 변환 계수 값을 양자화하여 엔트로피 코딩부(160)로 전달한다.
엔트로피 코딩부(160)는 양자화된 변환 계수, 인트라 부호화 정보, 및 인터 부호화 정보 등을 엔트로피 코딩하여 비디오 신호 비트스트림을 생성한다. 엔트로피 코딩부(160)에서는 가변 길이 코딩(Variable Length Coding, VLC) 방식과 산술 코딩(arithmetic coding) 방식 등이 사용될 수 있다. 가변 길이 코딩(VLC) 방식은 입력되는 심볼들을 연속적인 코드워드로 변환하는데, 코드워드의 길이는 가변적일 수 있다. 예를 들어, 자주 발생하는 심볼들을 짧은 코드워드로, 자주 발생하지 않은 심볼들은 긴 코드워드로 표현하는 것이다. 가변 길이 코딩 방식으로서 컨텍스트 기반 적응형 가변 길이 코딩(Context-based Adaptive Variable Length Coding, CAVLC) 방식이 사용될 수 있다. 산술 코딩은 연속적인 데이터 심볼들을 하나의 소수로 변환하는데, 산술 코딩은 각 심볼을 표현하기 위하여 필요한 최적의 소수 비트를 얻을 수 있다. 산술 코딩으로서 컨텍스트 기반 적응형 산술 부호화(Context-based Adaptive Binary Arithmetic Code, CABAC)가 이용될 수 있다.
상기 생성된 비트스트림은 NAL(Network Abstraction Layer) 유닛을 기본 단위로 캡슐화 된다. NAL 유닛은 부호화된 정수 개의 코딩 트리 유닛(coding tree unit)을 포함한다. 비디오 디코더에서 비트스트림을 복호화하기 위해서는 먼저 비트스트림을 NAL 유닛 단위로 분리한 후, 분리 된 각각의 NAL 유닛을 복호화해야 한다. 한편, 비디오 신호 비트스트림의 복호화를 위해 필요한 정보들은 픽쳐 파라미터 세트(Picture Parameter Set, PPS), 시퀀스 파라미터 세트(Sequence Parameter Set, SPS), 비디오 파라미터 세트(Video Parameter Set, VPS) 등과 같은 상위 레벨 세트의 RBSP(Raw Byte Sequence Payload)를 통해 전송될 수 있다.
한편, 도 1의 블록도는 본 발명의 일 실시예에 따른 인코딩 장치(100)를 나타낸 것으로서, 분리하여 표시된 블록들은 인코딩 장치(100)의 엘리먼트들을 논리적으로 구별하여 도시한 것이다. 따라서 전술한 인코딩 장치(100)의 엘리먼트들은 디바이스의 설계에 따라 하나의 칩으로 또는 복수의 칩으로 장착될 수 있다. 일 실시예에 따르면, 전술한 인코딩 장치(100)의 각 엘리먼트의 동작은 프로세서(미도시)에 의해 수행될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비디오 신호 디코딩 장치(200)의 개략적인 블록도이다. 도 2를 참조하면 본 발명의 디코딩 장치(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(225), 필터링부(230) 및 예측부(250)를 포함한다.
엔트로피 디코딩부(210)는 비디오 신호 비트스트림을 엔트로피 디코딩하여, 각 영역에 대한 변환 계수, 인트라 부호화 정보, 인터 부호화 정보 등을 추출한다. 역양자화부(220)는 엔트로피 디코딩된 변환 계수를 역양자화하고, 역변환부(225)는 역양자화된 변환 계수를 이용하여 레지듀얼 값을 복원한다. 비디오 신호 처리 장치(200)는 역변환부(225)에서 획득된 레지듀얼 값을 예측부(250)에서 획득된 예측값과 합산하여 원래의 화소값을 복원한다.
한편, 필터링부(230)는 픽쳐에 대한 필터링을 수행하여 화질을 향상시킨다. 여기에는 블록 왜곡 현상을 감소시키기 위한 디블록킹 필터 및/또는 픽쳐 전체의 왜곡 제거를 위한 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 픽쳐는 출력되거나 다음 픽쳐에 대한 참조 픽쳐로 이용하기 위하여 복호 픽쳐 버퍼(DPB, 256)에 저장된다.
예측부(250)는 인트라 예측부(252) 및 인터 예측부(254)를 포함한다. 예측부(250)는 전술한 엔트로피 디코딩부(210)를 통해 복호화된 부호화 타입, 각 영역에 대한 변환 계수, 인트라/인터 부호화 정보 등을 활용하여 예측 픽쳐를 생성한다. 복호화가 수행되는 현재 블록을 복원하기 위해서, 현재 블록이 포함된 현재 픽쳐 또는 다른 픽쳐들의 복호화된 영역이 이용될 수 있다. 복원에 현재 픽쳐만을 이용하는, 즉 인트라 예측만을 수행하는 픽쳐(또는, 타일/슬라이스)를 인트라 픽쳐 또는 I 픽쳐(또는, 타일/슬라이스), 인트라 예측과 인터 예측을 모두 수행할 수 있는 픽쳐(또는, 타일/슬라이스)를 인터 픽쳐(또는, 타일/슬라이스)라고 한다. 인터 픽쳐(또는, 타일/슬라이스) 중 각 블록의 샘플값들을 예측하기 위하여 최대 하나의 모션 벡터 및 참조 픽쳐 인덱스를 이용하는 픽쳐(또는, 타일/슬라이스)를 예측 픽쳐(predictive picture) 또는 P 픽쳐(또는, 타일/슬라이스)라고 하며, 최대 두 개의 모션 벡터 및 참조 픽쳐 인덱스를 이용하는 픽쳐(또는, 타일/슬라이스)를 쌍예측 픽쳐(Bi-predictive picture) 또는 B 픽쳐(또는, 타일/슬라이스) 라고 한다. 다시 말해서, P 픽쳐(또는, 타일/슬라이스)는 각 블록을 예측하기 위해 최대 하나의 모션 정보 세트를 이용하고, B 픽쳐(또는, 타일/슬라이스)는 각 블록을 예측하기 위해 최대 두 개의 모션 정보 세트를 이용한다. 여기서, 모션 정보 세트는 하나 이상의 모션 벡터와 하나의 참조 픽쳐 인덱스를 포함한다.
인트라 예측부(252)는 인트라 부호화 정보 및 현재 픽쳐 내의 복원된 샘플들을 이용하여 예측 블록을 생성한다. 전술한 바와 같이, 인트라 부호화 정보는 인트라 예측 모드, MPM(Most Probable Mode) 플래그, MPM 인덱스 중 적어도 하나를 포함할 수 있다. 인트라 예측부(252)는 현재 블록의 좌측 및/또는 상측에 위치한 복원된 픽셀들을 참조 픽셀들로 이용하여 현재 블록의 픽셀값들을 예측한다. 일 실시예에 따르면, 참조 픽셀들은 현재 블록의 좌측 경계에 인접한 픽셀들 및/또는 상측 경계에 인접한 픽셀들일 수 있다. 다른 실시예에 따르면, 참조 픽셀들은 현재 블록의 주변 블록의 픽셀들 중 현재 블록의 좌측 경계로부터 기 설정된 거리 이내에 인접한 픽셀들 및/또는 현재 블록의 상측 경계로부터 기 설정된 거리 이내에 인접한 픽셀들일 수 있다. 이때, 현재 블록의 주변 블록은 현재 블록에 인접한 좌측(L) 블록, 상측(A) 블록, 하좌측(Below Left, BL) 블록, 상우측(Above Right, AR) 블록 또는 상좌측(Above Left, AL) 블록 중 적어도 하나를 포함할 수 있다.
인터 예측부(254)는 복호 픽쳐 버퍼(256)에 저장된 참조 픽쳐 및 인터 부호화 정보를 이용하여 예측 블록을 생성한다. 인터 부호화 정보는 참조 블록에 대한 현재 블록의 모션 정보(참조 픽쳐 인덱스, 모션 벡터 정보 등)을 포함할 수 있다. 인터 예측에는 L0 예측, L1 예측 및 쌍예측(Bi-prediction)이 있을 수 있다. L0 예측은 L0 픽쳐 리스트에 포함된 1개의 참조 픽쳐를 이용한 예측이고, L1 예측은 L1 픽쳐 리스트에 포함된 1개의 참조 픽쳐를 이용한 예측을 의미한다. 이를 위해서는 1세트의 모션 정보(예를 들어, 모션 벡터 및 참조 픽쳐 인덱스)가 필요할 수 있다. 쌍예측 방식에서는 최대 2개의 참조 영역을 이용할 수 있는데, 이 2개의 참조 영역은 동일한 참조 픽쳐에 존재할 수도 있고, 서로 다른 픽쳐에 각각 존재할 수도 있다. 즉, 쌍예측 방식에서는 최대 2세트의 모션 정보(예를 들어, 모션 벡터 및 참조 픽쳐 인덱스)가 이용될 수 있는데, 2개의 모션 벡터가 동일한 참조 픽쳐 인덱스에 대응될 수도 있고 서로 다른 참조 픽쳐 인덱스에 대응될 수도 있다. 이때, 참조 픽쳐들은 시간적으로 현재 픽쳐 이전이나 이후 모두에 표시(또는 출력)될 수 있다.
인터 예측부(254)는 모션 벡터 및 참조 픽쳐 인덱스를 이용하여 현재 블록의 참조 블록을 획득할 수 있다. 상기 참조 블록은 참조 픽쳐 인덱스에 대응하는 참조 픽쳐 내에 존재한다. 또한, 모션 벡터에 의해서 특정된 블록의 픽셀값 또는 이의 보간(interpolation)된 값이 현재 블록의 예측값(predictor)으로 이용될 수 있다. 서브펠(sub-pel) 단위의 픽셀 정확도를 갖는 모션 예측을 위하여 이를 테면, 루마 신호에 대하여 8-탭 보간 필터가, 크로마 신호에 대하여 4-탭 보간 필터가 사용될 수 있다. 다만, 서브펠 단위의 모션 예측을 위한 보간 필터는 이에 한정되지 않는다. 이와 같이 인터 예측부(254)는 이전에 복원된 픽쳐로부터 현재 유닛의 텍스쳐를 모션 정보를 이용하여 예측하는 모션 보상(motion compensation)을 수행한다.
상기 인트라 예측부(252) 또는 인터 예측부(254)로부터 출력된 예측값, 및 역변환부(225)로부터 출력된 레지듀얼 값이 더해져서 복원된 비디오 픽쳐가 생성된다. 즉, 비디오 신호 디코딩 장치(200)는 예측부(250)에서 생성된 예측 블록과 역변환부(225)로부터 획득된 레지듀얼을 이용하여 현재 블록을 복원한다.
한편, 도 2의 블록도는 본 발명의 일 실시예에 따른 디코딩 장치(200)를 나타낸 것으로서, 분리하여 표시된 블록들은 디코딩 장치(200)의 엘리먼트들을 논리적으로 구별하여 도시한 것이다. 따라서 전술한 디코딩 장치(200)의 엘리먼트들은 디바이스의 설계에 따라 하나의 칩으로 또는 복수의 칩으로 장착될 수 있다. 일 실시예에 따르면, 전술한 디코딩 장치(200)의 각 엘리먼트의 동작은 프로세서(미도시)에 의해 수행될 수 있다.
도 3은 픽쳐 내에서 코딩 트리 유닛(Coding Tree Unit, CTU)이 코딩 유닛들(Coding Units, CUs)로 분할되는 실시예를 도시한다. 비디오 신호의 코딩 과정에서, 픽쳐는 코딩 트리 유닛(CTU)들의 시퀀스로 분할될 수 있다. 코딩 트리 유닛은 루마(luma) 샘플들의 NXN 블록과, 이에 대응하는 크로마(chroma) 샘플들의 2개의 블록들로 구성된다. 코딩 트리 유닛은 복수의 코딩 유닛들로 분할될 수 있다. 코딩 유닛은 상기에서 설명한 비디오 신호의 처리 과정, 즉 인트라/인터 예측, 변환, 양자화 및/또는 엔트로피 코딩 등의 과정에서 픽쳐를 처리하기 위한 기본 단위를 가리킨다. 하나의 픽쳐 내에서 코딩 유닛의 크기 및 모양은 일정하지 않을 수 있다. 코딩 유닛은 정사각형 혹은 직사각형의 모양을 가질 수 있다. 직사각형 코딩 유닛(혹은, 직사각형 블록)은 수직 코딩 유닛(혹은, 수직 블록)과 수평 코딩 유닛(혹은, 수평 블록)을 포함한다. 본 명세서에서, 수직 블록은 높이가 너비보다 큰 블록이며, 수평 블록은 너비가 높이보다 큰 블록이다. 또한, 본 명세서에서 정사각형이 아닌(non-square) 블록은 직사각형 블록을 가리킬 수 있지만, 본 발명은 이에 한정되지 않는다.
도 3을 참조하면, 코딩 트리 유닛은 먼저 쿼드 트리(Quad Tree, QT) 구조로 분할된다. 즉, 쿼드 트리 구조에서 2NX2N 크기를 가지는 하나의 노드는 NXN 크기를 가지는 네 개의 노드들로 분할될 수 있다. 본 명세서에서 쿼드 트리는 4진(quaternary) 트리로도 지칭될 수 있다. 쿼드 트리 분할은 재귀적으로 수행될 수 있으며, 모든 노드들이 동일한 깊이로 분할될 필요는 없다.
한편, 전술한 쿼드 트리의 리프 노드(leaf node)는 멀티-타입 트리(Multi-Type Tree, MTT) 구조로 더욱 분할될 수 있다. 본 발명의 실시예에 따르면, 멀티 타입 트리 구조에서는 하나의 노드가 수평 혹은 수직 분할의 2진(binary, 바이너리) 혹은 3진(ternary, 터너리) 트리 구조로 분할될 수 있다. 즉, 멀티-타입 트리 구조에는 수직 바이너리 분할, 수평 바이너리 분할, 수직 터너리 분할 및 수평 터너리 분할의 4가지 분할 구조가 존재한다. 본 발명의 실시예에 따르면, 상기 각 트리 구조에서 노드의 너비 및 높이는 모두 2의 거듭제곱 값을 가질 수 있다. 예를 들어, 바이너리 트리(Binary Tree, BT) 구조에서, 2NX2N 크기의 노드는 수직 바이너리 분할에 의해 2개의 NX2N 노드들로 분할되고, 수평 바이너리 분할에 의해 2개의 2NXN 노드들로 분할될 수 있다. 또한, 터너리 트리(Ternary Tree, TT) 구조에서, 2NX2N 크기의 노드는 수직 터너리 분할에 의해 (N/2)X2N, NX2N 및 (N/2)X2N의 노드들로 분할되고, 수평 바이너리 분할에 의해 2NX(N/2), 2NXN 및 2NX(N/2)의 노드들로 분할될 수 있다. 이러한 멀티-타입 트리 분할은 재귀적으로 수행될 수 있다.
멀티-타입 트리의 리프 노드는 코딩 유닛이 될 수 있다. 코딩 유닛이 최대 변환 길이에 비해 너무 크지 않으면, 해당 코딩 유닛은 더 이상의 분할 없이 예측 및 변환의 단위로 사용된다. 한편, 전술한 쿼드 트리 및 멀티-타입 트리에서 다음의 파라메터들 중 적어도 하나가 사전에 정의되거나 PPS, SPS, VPS 등과 같은 상위 레벨 세트의 RBSP를 통해 전송될 수 있다. 1) CTU 크기: 쿼드 트리의 루트 노드(root node) 크기, 2) 최소 QT 크기(MinQtSize): 허용된 최소 QT 리프 노드 크기, 3) 최대 BT 크기(MaxBtSize): 허용된 최대 BT 루트 노드 크기, 4) 최대 TT 크기(MaxTtSize): 허용된 최대 TT 루트 노드 크기, 5) 최대 MTT 깊이(MaxMttDepth): QT의 리프 노드로부터의 MTT 분할의 최대 허용 깊이, 6) 최소 BT 크기(MinBtSize): 허용된 최소 BT 리프 노드 크기, 7) 최소 TT 크기(MinTtSize): 허용된 최소 TT 리프 노드 크기.
도 4는 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하는 방법의 일 실시예를 도시한다. 전술한 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하기 위해 기 설정된 플래그들이 사용될 수 있다. 도 4를 참조하면, 쿼드 트리 노드의 분할 여부를 지시하는 플래그 'qt_split_flag', 멀티-타입 트리 노드의 분할 여부를 지시하는 플래그 'mtt_split_flag', 멀티-타입 트리 노드의 분할 방향을 지시하는 플래그 'mtt_split_vertical_flag' 또는 멀티-타입 트리 노드의 분할 모양을 지시하는 플래그 'mtt_split_binary_flag' 중 적어도 하나가 사용될 수 있다.
본 발명의 실시예에 따르면, 코딩 트리 유닛은 쿼드 트리의 루트 노드이며, 쿼드 트리 구조로 우선 분할될 수 있다. 쿼드 트리 구조에서는 각각의 노드 'QT_node' 별로 'qt_split_flag'가 시그널링된다. 'qt_split_flag'의 값이 1일 경우 해당 노드는 4개의 정사각형 노드들로 분할되며, 'qt_split_flag'의 값이 0일 경우 해당 노드는 쿼드 트리의 리프 노드 'QT_leaf_node'가 된다.
각각의 쿼드 트리 리프 노드 'QT_leaf_node'는 멀티-타입 트리 구조로 더 분할될 수 있다. 멀티-타입 트리 구조에서는 각각의 노드 'MTT_node' 별로 'mtt_split_flag'가 시그널링된다. 'mtt_split_flag'의 값이 1일 경우 해당 노드는 복수의 직사각형 노드들로 분할되며, 'mtt_split_flag'의 값이 0일 경우 해당 노드는 멀티-타입 트리의 리프 노드 'MTT_leaf_node'가 된다. 멀티-타입 트리 노드 'MTT_node'가 복수의 직사각형 노드들로 분할될 경우(즉, 'mtt_split_flag'의 값이 1일 경우), 노드 'MTT_node'를 위한 'mtt_split_vertical_flag' 및 'mtt_split_binary_flag'가 추가로 시그널링될 수 있다. 'mtt_split_vertical_flag'의 값이 1일 경우 노드 'MTT_node'의 수직 분할이 지시되며, 'mtt_split_vertical_flag'의 값이 0일 경우 노드 'MTT_node'의 수평 분할이 지시된다. 또한, 'mtt_split_binary_flag'의 값이 1일 경우 노드 'MTT_node'는 2개의 직사각형 노드들로 분할되며, 'mtt_split_binary_flag'의 값이 0일 경우 노드 'MTT_node'는 3개의 직사각형 노드들로 분할된다.
도 5 및 도 6은 본 발명의 실시예에 따른 인트라 예측 방법을 더욱 구체적으로 도시한다. 전술한 바와 같이, 인트라 예측부는 현재 블록의 좌측 및/또는 상측에 위치한 복원된 픽셀들을 참조 픽셀들로 이용하여 현재 블록의 픽셀값들을 예측한다.
먼저, 도 5는 인트라 예측 모드에서 현재 블록의 예측을 위해 사용되는 참조 샘플들의 일 실시예를 도시한다. 일 실시예에 따르면, 참조 픽셀들은 현재 블록의 좌측 경계에 인접한 픽셀들 및/또는 상측 경계에 인접한 픽셀들일 수 있다. 도 5에 도시된 바와 같이, 현재 블록의 크기가 WXH이고 현재 블록에 인접한 단일 참조 라인(line)의 픽셀들이 인트라 예측에 사용될 경우, 현재 블록의 좌측 및/또는 상측에 위치한 최대 2W+2H+1개의 인접 픽셀들을 사용하여 참조 픽셀들이 설정될 수 있다. 한편, 본 발명의 추가적인 실시예에 따르면, 현재 블록의 인트라 예측을 위해 다중 참조 라인의 픽셀들이 사용될 수 있다. 다중 참조 라인은 현재 블록으로부터 기 설정된 범위 이내에 위치한 n개의 라인들로 구성될 수 있다. 일 실시예에 따르면, 인트라 예측을 위해 다중 참조 라인의 픽셀들이 사용될 경우, 참조 픽셀들로 설정될 라인들을 지시하는 별도의 인덱스 정보가 시그널링될 수 있다. 참조 픽셀로 사용될 적어도 일부의 인접 픽셀이 아직 복원되지 않은 경우, 인트라 예측부는 기 설정된 규칙에 따른 참조 샘플 패딩 과정을 수행하여 참조 픽셀을 획득할 수 있다. 또한, 인트라 예측부는 인트라 예측의 오차를 줄이기 위해 참조 샘플 필터링 과정을 수행할 수 있다. 즉, 인접 픽셀들 및/또는 참조 샘플 패딩 과정에 의해 획득된 픽셀들에 필터링을 수행하여 참조 픽셀들이 획득할 수 있다. 인트라 예측부는 이와 같이 획득된 참조 픽셀들을 이용하여 현재 블록의 픽셀들을 예측한다.
다음으로, 도 6은 인트라 예측에 사용되는 예측 모드들의 일 실시예를 도시한다. 인트라 예측을 위해, 인트라 예측 방향을 지시하는 인트라 예측 모드 정보가 시그널링될 수 있다. 인트라 예측 모드 정보는 인트라 예측 모드 세트를 구성하는 복수의 인트라 예측 모드들 중 어느 하나를 지시한다. 현재 블록이 인트라 예측 블록일 경우, 디코더는 비트스트림으로부터 현재 블록의 인트라 예측 모드 정보를 수신한다. 디코더의 인트라 예측부는 추출된 인트라 예측 모드 정보에 기초하여 현재 블록에 대한 인트라 예측을 수행한다.
본 발명의 실시예에 따르면, 인트라 예측 모드 세트는 인트라 예측에 사용되는 모든 인트라 예측 모드들(예, 총 67개의 인트라 예측 모드들)을 포함할 수 있다. 더욱 구체적으로, 인트라 예측 모드 세트는 평면 모드, DC 모드 및 복수의(예, 65개의) 각도 모드들(즉, 방향 모드들)을 포함할 수 있다. 각각의 인트라 예측 모드는 기 설정된 인덱스(즉, 인트라 예측 모드 인덱스)를 통해 지시될 수 있다. 예를 들어, 도 6에 도시된 바와 같이 인트라 예측 모드 인덱스 0은 평면 모드를 지시하고, 인트라 예측 모드 인덱스 1은 DC 모드를 지시한다. 또한, 인트라 예측 모드 인덱스 2 내지 66은 서로 다른 각도 모드들을 각각 지시할 수 있다. 각도 모드들은 기 설정된 각도 범위 이내의 서로 다른 각도들을 각각 지시한다. 예를 들어, 각도 모드는 시계 방향으로 45도에서 -135도 사이의 각도 범위(즉, 제1 각도 범위) 이내의 각도를 지시할 수 있다. 상기 각도 모드는 12시 방향을 기준으로 정의될 수 있다. 이때, 인트라 예측 모드 인덱스 2는 수평 대각(Horizontal Diagonal, HDIA) 모드를 지시하고, 인트라 예측 모드 인덱스 18은 수평(Horizontal, HOR) 모드를 지시하고, 인트라 예측 모드 인덱스 34는 대각(Diagonal, DIA) 모드를 지시하고, 인트라 예측 모드 인덱스 50은 수직(Vertical, VER) 모드를 지시하며, 인트라 예측 모드 인덱스 66은 수직 대각(Vertical Diagonal, VDIA) 모드를 지시한다.
한편, 기 설정된 각도 범위는 현재 블록의 모양에 따라 서로 다르게 설정될 수 있다. 예를 들어, 현재 블록이 직사각형 블록일 경우 시계 방향으로 45도를 초과하거나 -135도 미만 각도를 지시하는 광각 모드가 추가적으로 사용될 수 있다. 현재 블록이 수평 블록일 경우, 각도 모드는 시계 방향으로 (45+offset1)도에서 (-135+offset1)도 사이의 각도 범위(즉, 제2 각도 범위) 이내의 각도를 지시할 수 있다. 이때, 제1 각도 범위를 벗어나는 각도 모드 67 내지 76이 추가적으로 사용될 수 있다. 또한, 현재 블록이 수직 블록일 경우, 각도 모드는 시계 방향으로 (45-offset2)도에서 (-135-offset2)도 사이의 각도 범위(즉, 제3 각도 범위) 이내의 각도를 지시할 수 있다. 이때, 제1 각도 범위를 벗어나는 각도 모드 -10 내지 -1이 추가적으로 사용될 수 있다. 본 발명의 실시예에 따르면, offset1 및 offset2의 값은 직사각형 블록의 너비와 높이 간의 비율에 따라 서로 다르게 결정될 수 있다. 또한, offset1 및 offset2는 양수일 수 있다.
본 발명의 추가적인 실시예에 따르면, 인트라 예측 모드 세트를 구성하는 복수의 각도 모드들은 기본 각도 모드와 확장 각도 모드를 포함할 수 있다. 이때, 확장 각도 모드는 기본 각도 모드에 기초하여 결정될 수 있다.
일 실시예에 따르면, 기본 각도 모드는 기존 HEVC(High Efficiency Video Coding) 표준의 인트라 예측에서 사용되는 각도에 대응하는 모드이고, 확장 각도 모드는 차세대 비디오 코덱 표준의 인트라 예측에서 새롭게 추가되는 각도에 대응하는 모드일 수 있다. 더욱 구체적으로, 기본 각도 모드는 인트라 예측 모드 {2, 4, 6, …, 66} 중 어느 하나에 대응하는 각도 모드이고, 확장 각도 모드는 인트라 예측 모드 {3, 5, 7, …, 65} 중 어느 하나에 대응하는 각도 모드일 수 있다. 즉, 확장 각도 모드는 제1 각도 범위 내에서 기본 각도 모드들 사이의 각도 모드일 수 있다. 따라서, 확장 각도 모드가 지시하는 각도는 기본 각도 모드가 지시하는 각도에 기초하여 결정될 수 있다.
다른 실시예에 따르면, 기본 각도 모드는 기 설정된 제1 각도 범위 이내의 각도에 대응하는 모드이고, 확장 각도 모드는 상기 제1 각도 범위를 벗어나는 광각 모드일 수 있다. 즉, 기본 각도 모드는 인트라 예측 모드 {2, 3, 4, …, 66} 중 어느 하나에 대응하는 각도 모드이고, 확장 각도 모드는 인트라 예측 모드 {-10, -9, …, -1} 및 {67, 68, …, 76} 중 어느 하나에 대응하는 각도 모드일 수 있다. 확장 각도 모드가 지시하는 각도는 대응하는 기본 각도 모드가 지시하는 각도의 반대편 각도로 결정될 수 있다. 따라서, 확장 각도 모드가 지시하는 각도는 기본 각도 모드가 지시하는 각도에 기초하여 결정될 수 있다. 한편, 확장 각도 모드들의 개수는 이에 한정되지 않으며, 현재 블록의 크기 및/또는 모양에 따라 추가적인 확장 각도들이 정의될 수 있다. 예를 들어, 확장 각도 모드는 인트라 예측 모드 {-14, -13, …, -1} 및 {67, 68, …, 80} 중 어느 하나에 대응하는 각도 모드로 정의될 수도 있다. 한편, 인트라 예측 모드 세트에 포함되는 인트라 예측 모드들의 총 개수는 전술한 기본 각도 모드와 확장 각도 모드의 구성에 따라 가변할 수 있다.
상기 실시예들에서, 확장 각도 모드들 간의 간격은 대응하는 기본 각도 모드들 간의 간격에 기초하여 설정될 수 있다. 예를 들어, 확장 각도 모드들 {3, 5, 7, …, 65} 간의 간격은 대응하는 기본 각도 모드들 {2, 4, 6, …, 66} 간의 간격에 기초하여 결정될 수 있다. 또한, 확장 각도 모드들 {-10, -9, …, -1} 간의 간격은 대응하는 반대편의 기본 각도 모드들 {56, 57, …, 65} 간의 간격에 기초하여 결정되고, 확장 각도 모드들 {67, 68, …, 76} 간의 간격은 대응하는 반대편의 기본 각도 모드들 {3, 4, …, 12} 간의 간격에 기초하여 결정될 수 있다. 확장 각도 모드들 간의 각도 간격은 대응하는 기본 각도 모드들 간의 각도 간격과 동일하도록 설정될 수 있다. 또한, 인트라 예측 모드 세트에서 확장 각도 모드들의 개수는 기본 각도 모드들의 개수 이하로 설정될 수 있다.
본 발명의 실시예에 따르면, 확장 각도 모드는 기본 각도 모드를 기초로 시그널링될 수 있다. 예를 들어, 광각 모드(즉, 확장 각도 모드)는 제1 각도 범위 이내의 적어도 하나의 각도 모드(즉, 기본 각도 모드)를 대체할 수 있다. 대체되는 기본 각도 모드는 광각 모드의 반대편에 대응하는 각도 모드일 수 있다. 즉, 대체되는 기본 각도 모드는 광각 모드가 지시하는 각도의 반대 방향의 각도에 대응하거나 또는 상기 반대 방향의 각도로부터 기 설정된 오프셋 인덱스만큼 차이 나는 각도에 대응하는 각도 모드이다. 본 발명의 실시예에 따르면, 기 설정된 오프셋 인덱스는 1이다. 대체되는 기본 각도 모드에 대응하는 인트라 예측 모드 인덱스는 광각 모드에 다시 매핑되어 해당 광각 모드를 시그널링할 수 있다. 예를 들어, 광각 모드 {-10, -9, …, -1}은 인트라 예측 모드 인덱스 {57, 58, …, 66}에 의해 각각 시그널링될 수 있고, 광각 모드 {67, 68, …, 76}은 인트라 예측 모드 인덱스 {2, 3, …, 11}에 의해 각각 시그널링될 수 있다. 이와 같이 기본 각도 모드를 위한 인트라 예측 모드 인덱스가 확장 각도 모드를 시그널링하도록 함으로, 각 블록의 인트라 예측에 사용되는 각도 모드들의 구성이 서로 다르더라도 동일한 세트의 인트라 예측 모드 인덱스들이 인트라 예측 모드의 시그널링에 사용될 수 있다. 따라서, 인트라 예측 모드 구성의 변화에 따른 시그널링 오버헤드가 최소화할 수 있다.
한편, 확장 각도 모드의 사용 여부는 현재 블록의 모양 및 크기 중 적어도 하나에 기초하여 결정될 수 있다. 일 실시예에 따르면, 현재 블록의 크기가 기 설정된 크기보다 클 경우 확장 각도 모드가 현재 블록의 인트라 예측을 위해 사용되고, 그렇지 않을 경우 기본 각도 모드만 현재 블록의 인트라 예측을 위해 사용될 수 있다. 다른 실시예에 따르면, 현재 블록이 정사각형이 아닌 블록인 경우 확장 각도 모드가 현재 블록의 인트라 예측을 위해 사용되고, 현재 블록이 정사각형 블록인 경우 기본 각도 모드만 현재 블록의 인트라 예측을 위해 사용될 수 있다.
인트라 예측부는 현재 블록의 인트라 예측 모드 정보에 기초하여, 현재 블록의 인트라 예측에 사용될 참조 픽셀들 및/또는 보간된 참조 픽셀들을 결정한다. 인트라 예측 모드 인덱스가 특정 각도 모드를 지시할 경우, 현재 블록의 현재 픽셀로부터 상기 특정 각도에 대응하는 참조 픽셀 또는 보간된 참조 픽셀이 현재 픽셀의 예측에 사용된다. 따라서, 인트라 예측 모드에 따라 서로 다른 세트의 참조 픽셀들 및/또는 보간된 참조 픽셀들이 인트라 예측에 사용될 수 있다. 참조 픽셀들 및 인트라 예측 모드 정보를 이용하여 현재 블록의 인트라 예측이 수행되고 나면, 디코더는 역변환부로부터 획득된 현재 블록의 잔차 신호를 현재 블록의 인트라 예측값과 더하여 현재 블록의 픽셀 값들을 복원한다.
도 7은 인코더에 의해 선택된 인트라 예측 모드를 디코더에게 시그널링하는 방법의 일 실시예를 도시한다. 인트라 예측 모드 세트에 포함된 인트라 예측 모드들의 총 개수를 T(예를 들어, 67)라고 할 때, T개의 모드들을 단순히 이진법으로 표현하여 시그널링하는 방법은 각 모드가 선택될 확률 및 해당 블록 및 주변 블록들의 컨텍스트를 고려하지 않기 때문에 비효율적이다. 따라서 전체 모드들 중 현재 블록에 사용되었을 확률이 높은 일부 모드들의 리스트를 별도로 관리하면 효율적인 시그널링이 수행될 수 있다.
본 발명의 실시예에 따르면, 현재 블록의 인트라 예측을 위해, 전체 인트라 예측 모드들 중 일부 모드들로 구성된 적어도 하나의 예측 모드 리스트가 관리될 수 있다. 인트라 예측을 위한 제1 예측 모드 리스트는 MPM(Most Probable Modes) 리스트이다. MPM 리스트에 포함되는 인트라 예측 모드는 MPM 모드로, 상기 MPM 리스트에 포함되지 않는 인트라 예측 모드는 비-MPM 모드로 지칭될 수 있다. 인코더는 현재 블록에 사용된 인트라 예측 모드가 MPM 모드인지 또는 비-MPM 모드인지를 구분하는 MPM 플래그를 시그널링한다. 디코더는 현재 블록에 사용된 인트라 예측 모드가 MPM 모드인지 또는 비-MPM 모드인지를 수신된 MPM 플래그를 통해 식별할 수 있다.
일 실시예에 따르면, MPM 모드를 위해 별도의 부호화 방법을 사용함으로 더 적은 비트로 효율적인 시그널링을 수행할 수 있다. MPM 리스트에 포함되는 MPM 모드들의 개수를 m이라 할 때, 비-MPM 모드들의 개수는 T-m이다. MPM 모드들의 개수 m이 비-MPM 모드들의 개수 T-m보다 작을 경우, MPM 모드는 절삭 단항(truncated unary) 이진화로 코딩 되고 비-MPM 모드는 절삭 이항(truncated binary) 이진화로 코딩 될 수 있다.
MPM 리스트는 다음과 같이 다양한 컨텍스트를 단계별로 고려하여 구성될 수 있다. 첫째로, MPM 리스트는 현재 블록의 주변 블록들에서 사용된 인트라 예측 모드들 및 평면/DC 모드들로 구성될 수 있다(컨텍스트 M0). 복원이 완료된 주변 블록들 중 인트라 예측 모드로 부호화된 블록이 존재하는 경우, 픽쳐의 지역적 유사성으로 인해 현재 블록은 해당 블록과 동일한 인트라 예측 모드를 사용했을 가능성이 있다. 따라서, MPM 리스트는 주변 블록의 인트라 예측 모드를 포함하여 구성될 수 있다. 일 실시예에 따르면, 현재 블록의 주변 블록은 현재 블록에 인접한 좌측(L) 블록, 상측(A) 블록, 하좌측(BL) 블록, 상우측(AR) 블록 또는 상좌측(AL) 블록 중 적어도 하나를 포함할 수 있다. 예를 들어, 현재 블록의 주변 블록은 현재 블록에 인접한 좌측(L) 블록 및 상측(A) 블록을 포함할 수 있다. 좌측(L) 블록은 현재 블록의 좌측 경계에 인접한 최하단 블록이며, 상측(A) 블록은 현재 블록의 상측 경계에 인접한 최우측 블록이다. MPM 리스트를 구성하기 위한 주변 블록들의 구체적인 실시예는 도 8을 참조로 다시 설명하도록 한다. 현재 블록의 주변 블록들에서 선택된 인트라 예측 모드, 평면 모드 및 DC 모드가 기 설정된 순서에 따라 MPM 리스트에 추가될 수 있다. 예를 들어, {블록 L의 모드, 블록 A의 모드, 평면 모드, DC 모드, 블록 BL의 모드, 블록 AR의 모드, 블록 AL의 모드}의 순서로 MPM 리스트가 구성될 수 있다.
둘째로, 상기 방법으로 MPM 모드들의 개수 m을 채우지 못한 경우, 추가적인 컨텍스트 조건(예, 컨텍스트 M1, 컨텍스트 M2, …)들을 적용하여 MPM 리스트를 채울 수 있다. 추가적인 컨텍스트 조건을 적용할 때, MPM 리스트에 이미 포함된 인트라 예측 모드는 새로 추가되지 않는다.
한편, 전체 T개의 인트라 예측 모드들 중 MPM 리스트에 포함되지 않은 나머지 T-m개의 비-MPM 모드들을 절삭 이항 이진화로 코딩 될 수 있다. 절삭 이항 이진화가 사용되는 경우, 2^(k-1) < T-m < 2^(k)라고 가정하면, 초기 2^(k)-(T-m)개의 인덱스들은 k-1개의 비트(혹은 빈)들을 사용하여 시그널링될 수 있으며, 나머지 인덱스들은 k개의 비트(혹은 빈)들을 사용하여 시그널링된다. 따라서 비-MPM 모드들에 대해서도 추가적인 컨텍스트 조건(즉, 컨텍스트 N)을 적용하여, 해당 블록에서 선택될 가능성이 상대적으로 높은 모드들을 k-1개의 비트들로 구성된 인덱스로 시그널링하여 시그널링 오버헤드를 최소화 할 수 있다.
본 발명의 추가적인 실시예에 따르면, 비-MPM 모드들 중 일부 모드들로 구성된 제2 예측 모드 리스트가 관리될 수 있다. 더욱 구체적으로, 비-MPM 모드들은 추가적으로 선택(selected, s) 모드와 비-선택(non-selected, ns) 모드로 구분될 수 있으며, 선택 모드들로 구성된 제2 예측 모드 리스트(즉, 선택 모드 리스트)가 관리될 수 있다. 선택 모드 리스트에 포함되는 인트라 예측 모드는 선택 모드로, 상기 선택 모드 리스트에 포함되지 않는 인트라 예측 모드는 비-선택 모드로 지칭될 수 있다. 인코더는 현재 블록에 사용된 인트라 예측 모드가 선택 모드인지 또는 비-선택 모드인지를 구분하는 선택(selected) 모드 플래그를 시그널링한다. 디코더는 현재 블록에 사용된 인트라 예측 모드가 선택 모드인지 또는 비-선택 모드인지를 수신된 선택 모드 플래그를 통해 식별할 수 있다.
상기와 같이 비-MPM 모드를 추가적으로 구분하는 경우, 선택 모드는 고정 길이로 코딩 될 수 있다. 이때, 선택 모드들에 추가적인 컨텍스트 조건(예, 컨텍스트 S)을 적용하여, 해당 블록에서 선택될 가능성이 높은 모드들을 우선하여 배치할 수 있다. 이때, s개(이때, s는 2의 거듭제곱 값)의 선택 모드들은 고정 길이로 코딩 되고, 나머지 ns개의 비-선택 모드들은 절삭 이항 이진화로 코딩 될 수 있다. ns개의 비-선택 모드들은 임의의 l-1개의 비트(혹은 빈)들 또는 l개의 비트(혹은 빈)들을 사용하여 시그널링될 수 있다. 이때, 비-선택 모드들에 대해 추가적인 컨텍스트 조건(즉, 컨텍스트 NS)을 적용하여, 해당 블록에서 선택될 가능성이 상대적으로 높은 모드들을 l-1개의 비트들로 구성된 인덱스로 시그널링하여 시그널링 오버헤드를 최소화 할 수 있다.
상기 컨텍스트 조건들의 구체적인 실시예는 이후 도면들을 참조로 설명하도록 한다. 이하의 실시예들에서 추가로 정의되는 컨텍스트 조건들은 상기 컨텍스트 조건들 {M0, M1, M2, N, S, NS}이 적용되는 다양한 구성들에 개별 또는 중복하여 적용될 수 있다. 예를 들어, 기본 각도 모드를 확장 각도 모드보다 우선하여 시그널링하는 컨텍스트 조건이 추가적으로 사용될 수 있다. 또한, MPM 모드의 첫번째 컨텍스트 조건(예, 컨텍스트 M0)을 통해 도출된 주변 블록들의 각도 모드에 임의의 오프셋(예, -1, +1)을 더한 각도 모드들을 예측 모드 리스트에 우선 추가하는 컨텍스트 조건이 사용될 수 있다. 이와 같은 컨텍스트 조건은 MPM 모드, 비-MPM 모드, 선택 모드 또는 비-선택 모드들 중 하나 이상에 대한 컨텍스트 조건으로 적용될 수 있다
본 발명의 추가적인 실시예에 따르면, 전술한 인트라 예측 방법은 주변 블록들의 인트라 예측 모드의 개수 및/또는 인트라 예측 모드 정보에 기초하여 결정될 수 있다. 예를 들어, 상기 MPM 모드, 비-MPM 모드, 선택 모드 및 비-선택 모드의 구분 여부, 각 모드 별 시그널링되는 인트라 예측 모드들의 개수(즉, m, T-m, s 및 ns), 및 각 모드가 부호화되는 방법(즉, 절삭 단항 이진화, 절삭 이항 이진화, 고정 길이 부호화)들은 주변 블록들의 인트라 예측 모드의 개수 또는 그 값들에 따라 가변적으로 구성될 수 있다. 이때, 주변 블록들은 MPM 리스트를 구성하기 위해 참조하는 기 설정된 블록들일 수 있다.
첫째로, MPM 리스트를 구성하기 위해 현재 블록의 주변 블록들의 인트라 예측 모드들을 검토한 후, 예측 모드들의 총 개수에 기초하여 상기 가변 구성이 적용될 수 있다. 현재 블록이 B 프레임 또는 P 프레임의 블록인 경우, 주변 블록들 중에서 인트라 예측이 수행된 블록들의 개수 및/또는 예측 모드의 개수에 따라 상기 MPM 리스트를 구성하는 방법이 변경될 수 있다. 이를 더 확장하면, MPM 리스트의 구성을 위해 I 프레임과 B/P 프레임 간에 서로 다른 방법이 사용될 수 있다. I 프레임에서는 주변의 모든 블록들이 인트라 예측으로 구성되었으므로 전술한 첫 번째 방법을 적용하지 않고 다음의 두 번째 방법 또는 유사한 방법이 적용될 수 있다.
둘째로, 주변 블록들에서 사용된 서로 다른 인트라 예측 모드들의 개수에 기초하여 상기 가변 구성이 적용될 수 있다. 예를 들어, 주변 블록들에서 사용된 인트라 예측 모드들이 모두 동일한지 혹은 서로 다른지에 따라 상기 MPM 리스트를 구성하는 방법이 변경될 수 있다. 또는, 주변 블록들에서 사용된 인트라 예측 모드들의 상이한 정도에 따라 상기 MPM 리스트를 구성하는 방법이 변경될 수 있다. 주변 블록들에서 사용된 인트라 예측 모드들의 상이한 정도는 주변 블록들에서 사용된 인트라 예측 모드들의 개수가 기 설정된 값 이상인지 여부에 기초하여 결정될 수 있다. 또한, 주변 블록들에서 사용된 인트라 예측 모드들의 상이한 정도는 주변 블록들에서 사용된 인트라 예측 모드들의 모드 값 차이에 기초하여 결정될 수 있다. 주변 블록들에서 사용된 인트라 예측 모드들의 상이한 정도가 기 설정된 기준을 만족할 경우, 제1 방법에 기초하여 MPM 리스트가 구성될 수 있다. 그러나 주변 블록들에서 사용된 인트라 예측 모드들의 상이한 정도가 기 설정된 기준을 만족하지 못할 경우, 제1 방법과 다른 제2 방법에 기초하여 MPM 리스트가 구성될 수 있다. 한편, 상기와 같은 가변적인 MPM 리스트를 생성하기 위해 검토하는 현재 블록의 주변 블록들은 기본 설정된 위치 이외에 추가적인 위치의 블록들을 포함할 수 있다. 이에 대한 구체적인 실시예는 도 8을 참조로 설명하도록 한다.
도 8은 인트라 예측 모드를 시그널링하는 방법의 상세 실시예를 도시한다. 도 8(a) 및 8(b)는 예측 모드 리스트를 구성하기 위해 참조하는 주변 블록들의 실시예를 도시한다. 도 8(c)는 전술한 인트라 예측 모드를 시그널링하는 방법의 일 실시예를 도시한다. 또한, 도 8(d)는 비-선택 모드들을 절삭 이항 이진화로 시그널링하는 일 실시예를 도시한다.
먼저, 도 8(a)는 MPM 리스트를 구성하기 위해 참조하는 주변 블록들의 상대적인 위치들의 일 실시예를 도시한다. 도 8(a)를 참조하면, 주변 블록들은 현재 블록에 인접한 좌측(L) 블록, 상측(A) 블록, 하좌측(BL) 블록, 상우측(AR) 블록 또는 상좌측(AL) 순서로 참조될 수 있다. 이때, 상기 주변 블록들에서 선택된 인트라 예측 모드, 평면 모드 및 DC 모드가 기 설정된 순서에 따라 MPM 리스트에 추가될 수 있다. 다만, 본 발명의 실시예에서 MPM 리스트를 구성하기 위해 참조하는 주변 블록들은 이에 한정되지 않는다. 예를 들어, 현재 블록의 주변 블록들은 현재 블록에 인접한 좌측(L) 블록 및 상측(A) 블록을 포함할 수 있다. 좌측(L) 블록은 현재 블록의 좌측 경계에 인접한 최하단 블록이며, 상측(A) 블록은 현재 블록의 상측 경계에 인접한 최우측 블록이다.
다음으로, 도 8(b)는 MPM 리스트를 구성하기 위해 참조하는 주변 블록들의 상대적인 위치들의 다른 실시예를 도시한다. 현재 블록의 주변 블록들은 현재 블록보다 더 적은 크기로 분할될 수 있으며, 현재 블록의 좌측 또는 상측 경계에 인접한 복수의 블록들이 존재할 수 있다. 이때, 현재 블록의 좌측 또는 상측 경계에 인접한 복수의 블록들의 인트라 예측 모드들이 MPM 리스트 구성을 위해 참조될 수 있다. 도 8(b)의 실시예에서는 현재 블록의 좌측 경계에 인접한 복수의 블록들을 아래에서 위로 L0, L1이라 하고, 현재 블록의 상측 경계에 인접한 복수의 블록들을 우측에서 좌측으로 A0, A1이라 한다.
첫 번째 실시예에 따르면, {블록 L0의 모드, 블록 A0의 모드, 평면 모드, DC 모드, 블록 BL의 모드, 블록 AR의 모드 및 블록 AL의 모드}의 순서로 MPM 리스트가 구성될 수 있다. 두 번째 실시예에 따르면, {블록 L0의 모드, 블록 L1의 모드, 블록 A0의 모드, 블록 A1의 모드, 평면 모드, DC 모드, 블록 BL의 모드, 블록 AR의 모드 및 블록 AL의 모드}의 순서로 MPM 리스트가 구성될 수 있다. 이때, 추가적으로 참조되는 주변 블록들의 위치 및 개수는 가변 할 수 있다. 또한, 현재 블록에 인접한 하좌측(BL), 상우측(AR) 및 상좌측(AL)에서도 추가적인 블록들이 참조될 수 있다. 세 번째 실시예에 따르면, {블록 L0의 모드, 블록 A0의 모드, 평면 모드, DC 모드, 블록 L1의 모드, 블록 A1의 모드, 블록 BL의 모드, 블록 AR의 모드 및 블록 AL의 모드}의 순서로 MPM 리스트가 구성될 수 있다. 즉, 선택되는 확률이 높은 평면 모드 및 DC 모드가 MPM 리스트로 선택되는 순서를 블록 L1의 모드 및 블록 A1의 모드보다 우선함으로 시그널링 오버헤드를 줄일 수 있다. 네 번째 실시예에 따르면, {블록 L0의 모드, 블록 A0의 모드, 평면 모드, DC 모드, 블록 BL의 모드, 블록 AR의 모드, 블록 AL의 모드, 블록 L1의 모드 및 블록 A1의 모드}의 순서로 MPM 리스트가 구성될 수 있다. 즉, 전술한 첫 번째 실시예에 따른 MPM 리스트 구성 순서 이후에 블록 L1 및 블록 A1이 참조될 수 있다.
본 발명의 추가적인 실시예에 따르면, MPM 리스트를 구성하는 순서는 현재 블록의 모양에 기초하여 결정될 수 있다. 더욱 구체적으로, 현재 블록이 정사각형이 아닌 블록인 경우, 현재 블록이 수직 블록인지 또는 수평 블록인지에 따라 주변 블록들의 참조 순서가 다르게 결정될 수 있다. 예를 들어, 현재 블록이 수직 블록인 경우 좌측 블록이 상측 블록보다 우선적으로 참조되고, 현재 블록이 수평 블록인 경우 상측 블록이 좌측 블록보다 우선적으로 참조될 수 있다. 다른 실시예에 따르면, MPM 리스트를 구성하는 순서는 현재 블록의 모양과 주변 블록의 모양을 비교하여 결정될 수 있다. 예를 들어, 현재 블록이 수직 블록인 경우, 기 설정된 주변 블록들 중에서 수직 블록에 사용된 인트라 예측 모드가 MPM 리스트에 우선적으로 포함될 수 있다.
본 발명의 또 다른 실시예에 따르면, MPM 리스트를 구성하는 순서는 현재 블록의 모양과 주변 블록에서 사용된 각도 모드 간의 연관성을 고려하여 결정될 수 있다. 예를 들어, 현재 블록이 수직 블록인 경우, 기 설정된 주변 블록들에서 사용된 각도 모드들 중 수직(VER) 모드 50으로부터 기 설정된 범위에 있거나 대각(DIA) 모드 34와 수직 대각(VDIA) 모드 66 사이에 있는 각도 모드들이 MPM 리스트에 우선적으로 포함될 수 있다. 추가적인 실시예에 따르면, 주변 블록들의 MPM 리스트에 포함된 인트라 예측 모드들이 현재 블록의 MPM 리스트에 포함될 수 있다. 이때, 주변 블록들에 사용된 인트라 예측 모드들로 현재 블록의 MPM 리스트가 채워지지 않을 경우, 상기 주변 블록들의 MPM 리스트에 포함된 인트라 예측 모드들이 현재 블록의 MPM 리스트에 추가될 수 있다.
도 8(c)는 전술한 인트라 예측 모드를 시그널링하는 방법의 일 실시예를 도시한다. 전체 T개의 인트라 예측 모드들 중 m개의 모드들은 MPM 모드로 구분되어 절삭 단항 이진화로 시그널링된다. 일 실시예에 따르면, T는 67이고 m은 6일 수 있다. 절삭 단항 이진화에서는 시그널링 인덱스가 커질수록 사용되는 비트(혹은 빈)의 개수가 증가하므로, 해당 블록에서 선택될 가능성이 상대적으로 높은 모드들을 낮은 값의 인덱스에 매칭하여 시그널링 효율을 높일 수 있다. 이를 위해, 인코더와 디코더가 동일한 컨텍스트 조건으로 MPM 리스트를 구성하고, 도출된 모드 값들은 상기 컨텍스트 조건을 기초로 재배열 하여 시그널링될 수 있다. 예를 들어, 선택된 모드들을 DC/평면 모드와 같은 비-각도 모드, 수직 모드, 평면 각도 모드의 순서로 분류하여 CABAC 기반의 부호화가 수행될 수 있다. 다음으로, 임의의 컨텍스트 조건에 의해 결정된 s개의 선택 모드들은 고정 길이 비트들로 시그널링되고, 나머지 ns개의 비-선택 모드들은 절삭 이항 이진화로 시그널링된다. 일 실시예에 따르면, n은 16이고 ns는 45일 수 있다.
도 8(d)는 비-선택 모드들을 절삭 이항 이진화로 시그널링하는 일 실시예를 도시한다. 상기 실시예에 따르면, 비-선택 모드들의 개수 ns는 45이다. 절삭 이항 이진화가 사용되는 경우, 2^5 < 45 < 2^6 이므로, 초기 2^6-45=19개의 인덱스들은 5개의 비트(혹은 빈)들을 사용하여 시그널링될 수 있으며, 나머지 26개의 인덱스들은 6개의 비트(혹은 빈)들을 사용하여 시그널링된다. 따라서, 비-선택 모드들에도 기 설정된 컨택스트 조건을 적용하여 해당 블록에서 선택될 가능성이 상대적으로 높은 모드들을 5개의 비트(혹은 빈)들로 시그널링되는 낮은 값의 인덱스에 매칭할 수 있다. 기 설정된 컨텍스트 조건의 구체적인 실시예들은 이하의 도면을 참조로 설명하도록 한다.
도 9는 인트라 예측 모드에 적용되는 컨텍스트 조건의 일 실시예로서 각도 모드에 기 설정된 오프셋을 적용하는 방법을 도시한다. 본 발명의 일 실시예에 따르면, 특정 우선 순위를 갖는 각도 모드에 기 설정된 오프셋을 더하거나 뺀 각도 모드에 새로운 우선 순위가 부여될 수 있다. 예를 들어, 제1 우선 순위를 갖는 각도 모드에 기 설정된 오프셋을 더하거나 뺀 각도 모드들에 제1 우선 순위 혹은 제2 우선 순위가 부여될 수 있다. 일 실시예에 따르면, 전체 인트라 예측 모드들 중 제1 우선 순위를 갖는 모드들은 나머지 모드들보다 우선적으로 선택된다. 또한, 상기 나머지 모드들은 제2 우선 순위를 갖는 모드들과 제3 우선 순위를 갖는 모드들로 구분되며, 제2 우선 순위를 갖는 모드들은 제3 우선 순위를 갖는 모드들보다 우선적으로 선택된다. 여기서, 우선적으로 선택되는 모드는 더 적은 수의 비트들로 시그널링되는 낮은 값의 인덱스에 매칭될 수 있다.
더욱 구체적으로, 인트라 예측 모드 인덱스 a, b 및 c가 제1 우선 순위를 갖는다고 할 때, 인트라 예측 모드 인덱스 a-offset, a+offset, b-offset, b+offset, c-offset 및 c+offset (여기서, offset은 0이 아닌 정수)의 모드들에 제1 우선 순위 혹은 제2 우선 순위가 부여될 수 있다. 예를 들어, MPM 리스트 구성 과정에서 주변 블록들에서 선택된 모드들에 제1 우선 순위가 부여되고, 상기 주변 블록들에서 선택된 모드들 중 각도 모드들에 -1 또는 +1을 더한 각도 모드들에 제1 우선 순위 혹은 제2 우선 순위가 부여될 수 있다. 최우선 순위의 모드들에 기 설정된 오프셋을 더하거나 뺀 모드들에 동일 또는 다음 우선 순위를 부여함으로, 최우선 순위와 유사성을 갖는 모드들에 높은 우선 순위가 부여될 수 있다.
그러나 도 9를 참조하면, 각도 모드들이 기 설정된 각도 범위 이내로 한정되어 있을 때, 특정 각도 모드에 오프셋을 더하거나 뺀 각도 모드는 기 설정된 각도 범위를 벗어날 수 있다. 예를 들어, 인트라 예측 모드 세트의 각도 모드가 인트라 예측 모드 2부터 66까지로 한정되고 기 설정된 오프셋이 1인 경우, 인트라 예측 모드 2에서 상기 오프셋을 뺀 인트라 예측 모드 1이나, 인트라 예측 모드 66에 상기 오프셋을 더한 인트라 예측 모드 67은 기 설정된 각도 범위를 벗어나게 된다. 즉, 인트라 예측 모드 k로부터 유도된 인트라 예측 모드 k-offset 또는 k+offset이 기 설정된 각도 범위를 벗어날 수 있다. 따라서, 이와 같은 문제점을 해결하기 위한 방법이 필요하다.
본 발명의 일 실시예에 따르면, 특정 각도 모드에 오프셋을 더하거나 뺀 각도 모드가 기 설정된 각도 범위를 벗어나는 경우, 해당 범위의 각도 모드 세트에서 순환적으로 결정된 각도 모드가 선택될 수 있다. 즉, 특정 각도 모드에 오프셋을 더하거나 뺀 각도 모드가 기 설정된 각도 범위를 벗어나는 경우, 해당 범위의 각도 모드 세트 중에서 상기 특정 각도 모드의 반대편에 위치한 각도 모드가 선택될 수 있다. 예를 들어, 기 설정된 각도 범위의 각도 모드 세트가 인트라 예측 모드 인덱스의 오름차순으로 모드들 {a, b, c, d, e, f}로 구성될 때, 모드 f에 오프셋 1을 더하면 모드 a가 선택되고, 모드 f에 오프셋 2를 더하면 모드 b가 선택될 수 있다. 마찬가지로, 모드 a에 오프셋 1을 빼면 모드 f가 선택되고, 모드 a에 오프셋 2를 빼면 모드 e가 선택될 수 있다. 도 9를 참조하면, 수직 대각 모드 VDIA에 오프셋을 더하면 수평 대각 모드 HDIA 또는 그 근처의 각도 모드가 선택될 수 있다. 즉, VDIA+1은 HDIA에 매칭되고, VDIA+2는 HDIA+1에 매칭될 수 있다. 또한, HDIA-1은 VDIA에 매칭되고, HDIA-2는 VDIA-1에 매칭될 수 있다.
본 발명의 다른 실시예에 따르면, 특정 각도 모드에 오프셋을 더하거나 뺀 각도 모드가 기 설정된 각도 범위를 벗어나는 경우, 상기 오프셋을 더하거나 뺀 각도 모드는 무시될 수 있다. 특정 각도 모드에 기 설정된 오프셋을 더하거나 빼면 특정 각도 모드와 유사한 각도의 모드가 선택될 수 있다. 그러나 이전 실시예에서와 같이 순환적으로 결정된 각도 모드를 선택하면 특정 각도 모드의 반대편에 위치한 각도 모드가 선택되어 선택된 각도 모드들 간의 유사성이 떨어질 수 있다. 따라서, 오프셋을 더하거나 뺀 각도 모드가 기 설정된 각도 범위를 벗어나는 경우 해당 각도는 선택되지 않을 수 있다. 예를 들어, 이미 선택된 모드들 {a, b, c}에 오프셋을 더하거나 뺀 모드들 a-offset, a+offset, b-offset, b+offset, c-offset 및 c+offset 중에서 모드 c+offset이 기 설정된 각도 범위를 벗어는 경우, 모드 c+offset을 제외한 모드들 a-offset, a+offset, b-offset, b+offset 및 c-offset이 선택될 수 있다.
본 발명의 또 다른 실시예에 따르면, 특정 각도 모드에 제1 오프셋을 더하거나 뺀 각도 모드가 기 설정된 각도 범위를 벗어나는 경우, 상기 특정 각도 모드에 제2 오프셋을 빼거나 더한 각도 모드가 선택될 수 있다. 또는, 특정 각도 모드에 제1 오프셋을 더하거나 뺀 각도 모드가 기 설정된 각도 범위를 벗어나는 경우, 상기 제2 오프셋을 추가적으로 빼거나 더한 각도 모드가 선택될 수 있다. 이때, 제2 오프셋은 제1 오프셋과 다른 값을 갖는다. 예를 들어, 모드 a+offset1이 기 설정된 각도 범위를 벗어나는 경우, 모드 a-offset2 또는 모드 a+offset1-offset2가 선택될 수 있다. 도 9를 참조하면, 이미 선택된 수직 대각 모드 VDIA에 제1 오프셋 1을 더한 각도 모드 VDIA+1이 기 설정된 각도 범위를 벗어날 수 있다. 이때, 각도 모드 VDIA에 제2 오프셋 2를 뺀 각도 모드 VDIA-2이 선택될 수 있다. 만약 제2 오프셋을 적용하여 선택된 각도 모드가 이미 선택된 각도 모드와 중복될 경우, 제2 오프셋과 다른 제3 오프셋이 전술한 방법과 유사하게 사용될 수 있다.
본 발명의 또 다른 실시예에 따르면, 특정 각도 모드에 제1 오프셋을 더하거나 뺀 각도 모드가 기 설정된 각도 범위를 벗어나는 경우, 상기 특정 각도 모드에 제2 오프셋을 더하거나 뺀 각도 모드가 선택될 수 있다. 이때, 제2 오프셋의 절대값은 제1 오프셋의 절대값보다 작을 수 있다. 예를 들어, 모드 a+offset1이 기 설정된 각도 범위를 벗어나는 경우, 모드 a+offset2가 선택될 수 있다. 더욱 구체적으로, 이미 선택된 각도 모드들이 VDIA와 HDIA인 경우, VDIA+offset1은 기 설정된 각도 범위를 벗어날 수 있다. 따라서, 이미 선택된 각도 모드들이 VDIA와 HDIA인 경우, VDIA+offset2가 선택될 수 있다. 또한, 도 9를 참조하면, 이미 선택된 각도 모드 VDIA-1에 제1 오프셋 2를 더한 각도 모드 VDIA-1+2는 기 설정된 각도 범위를 벗어날 수 있다. 이때, 각도 모드 VDIA-1에 제2 오프셋 1을 더한 각도 모드 VDIA-1+1이 선택될 수 있다. 만약 제2 오프셋을 적용하여 선택된 각도 모드가 이미 선택된 각도 모드와 중복될 경우, 제2 오프셋과 다른 제3 오프셋이 전술한 방법과 유사하게 사용될 수 있다.
도 10은 인트라 예측 모드에 적용되는 컨텍스트 조건의 다른 실시예로서 예측 모드 리스트에 이미 선택된 각도 모드들의 각도 또는 인덱스의 최소값 및 최대값을 고려한 예측 모드 리스트 구성 방법을 도시한다. 본 발명의 실시예에서 예측 모드 리스트는 MPM 리스트 및 선택(selected) 모드 리스트를 포함할 수 있지만, 본 발명은 이에 한정되지 않는다.
인트라 예측에서, 현재 블록의 인트라 예측 모드는 주변 블록의 인트라 예측 모드와 유사할 수 있다. 예를 들어, 현재 블록의 각도 모드는 주변 블록들의 각도 모드들 중 어느 하나와 동일하거나 유사할 수 있다. 따라서, 현재 블록을 위해 이미 구성된 제1 예측 모드 리스트가 있을 때, 제1 예측 모드 리스트의 엘리먼트들을 고려하여 제2 예측 모드 리스트가 구성될 수 있다. 일 실시예에 따르면, 제1 예측 모드 리스트에 포함된 각도 모드들의 각도 또는 인덱스(즉, 인트라 예측 모드 인덱스)의 최소값 및/또는 최대값에 기초하여 제2 예측 모드 리스트가 구성될 수 있다. 제2 예측 모드 리스트의 인트라 예측 모드들에는 제1 및 제2 예측 모드 리스트 이외의 인트라 예측 모드들 보다 높은 우선 순위가 부여될 수 있다.
더욱 구체적으로, 제1 예측 모드 리스트에 포함된 각도 모드들의 각도 또는 인덱스의 최소값 및 최대값을 각각 'min' 및 'max'라 할 때, 제2 예측 모드 리스트에 포함되는 각도 모드들은 'min' 이상 'max' 이하의 범위 또는 'min' 초과 'max' 미만 범위 이내에서 선택될 수 있다. 일 실시예에 따르면, 제1 예측 모드 리스트에 기초하여 결정된 상기 최소값 및 최대값 사이에서 균일하게 분포된(즉, 일정한 인덱스 차이를 갖거나 일정한 각도 차이를 갖는) 각도 모드들이 제2 예측 모드 리스트에 포함될 수 있다. 이와 같이 제2 예측 모드 리스트에 포함된 각도 모드들은 제1 또는 제2 예측 모드 리스트에 포함되지 못한 각도 모드들보다 높은 우선 순위를 가질 수 있다.
다른 실시예에 따르면, 제2 예측 모드 리스트에 포함되는 각도 모드들은 'min-offset1' 이상 'min+offset2' 이하의 범위 또는 'min-offset1' 초과 'min+offset2' 미만의 범위 이내에서 선택될 수 있다. 여기서 offset1 및 offset2는 기 설정된 오프셋들로서 음이 아닌 정수이다. 또한, offset1 및 offset2는 서로 동일한 값을 가질 수도 있고 서로 다른 값을 가질 수도 있다. 일 실시예에 따르면, offset1과 offset2는 동일한 값으로 설정되지만, 도 9의 실시예와 같이 오프셋에 기초하여 설정된 범위가 기 설정된 각도 범위를 벗어나는 경우 offset1과 offset2는 서로 다른 값으로 설정될 수 있다. 다른 실시예에 따르면, 제1 예측 모드 리스트에 포함된 각도 모드들의 분포에 기초하여 offset1 및 offset2가 서로 동일한 값 또는 서로 다른 값으로 설정될 수 있다. 예를 들어, 제1 예측 모드 리스트에 포함된 각도 모드들이 균일하게 분포되지 않은 경우 offset1 및 offset2는 서로 다른 값으로 설정될 수 있다. 제1 예측 모드 리스트에 기초하여 결정된 상기 'min-offset1' 및 'min+offset2' 사이에서 균일하게 분포된(즉, 일정한 인덱스 차이를 갖거나 일정한 각도 차이를 갖는) 각도 모드들이 제2 예측 모드 리스트에 포함될 수 있다. 예를 들어, 제2 예측 모드 리스트에 선택되는 모드 개수가 n일 때, m = floor(((max+offset2) - (min-offset1)) / (n+1))으로 설정되고, 제2 예측 모드 리스트에는 인덱스 혹은 각도 'min-offset1+m', 'min-offset1+2m', …, 'min-offset1+nm'에 대응하는 각도 모드들이 포함될 수 있다. 이와 같이 제2 예측 모드 리스트에 포함된 각도 모드들은 제1 또는 제2 예측 모드 리스트에 포함되지 않은 각도 모드들보다 높은 우선 순위를 가질 수 있다.
도 10을 참조하면, 제1 예측 모드 리스트는 MPM 리스트일 수 있다. 또한, 기 설정된 규칙에 따라 구성된 MPM 리스트에 포함된 각도 모드들의 인덱스의 최소값 및 최대값을 각각 'MPM_min' 및 'MPM_max'라고 할 수 있다. 이때, 전술한 실시예와 같이 현재 블록과 주변 블록의 유사성을 고려하여 상기 MPM 리스트를 기초로 제2 예측 모드 리스트가 구성될 수 있다. 예를 들어, 'MPM_min' 및 'MPM_max'를 기초로 제2 예측 모드 리스트가 구성될 수 있다. 더욱 구체적으로, 'MPM_min-offset' 및 'MPM_min+offset' 사이에서 균일하게 분포된(즉, 일정한 인덱스 차이를 갖거나 일정한 각도 차이를 갖는) 각도 모드들이 제2 예측 모드 리스트에 포함될 수 있다. 여기서 offset은 음이 아닌 정수일 수 있다.
전술한 실시예들에서와 같이 제1 예측 모드 리스트에 기초하여 제2 예측 모드 리스트가 구성되면, 제1 및 제2 예측 모드 리스트를 이용한 인트라 예측이 수행될 수 있다. 일 실시예에 따르면, 제2 예측 모드 리스트는 선택 모드 리스트로 사용될 수 있다. 다른 실시예에 따르면, 제2 예측 모드 리스트는 k-1개 혹은 k개의 비트들을 사용하여 시그널링 되는 비-MPM 모드들 중에서 k-1개의 비트들로 구성된 인덱스로 시그널링 되는 인트라 예측 모드들을 지시할 수 있다. 또한, 제1 예측 모드 리스트 및 제2 예측 모드 리스트는 동일한 예측 모드 리스트의 제1 세트 및 제2 세트를 가리킬 수 있다. 즉, 전술한 도 10의 실시예에서 제1 예측 모드 리스트 및 제2 예측 모드 리스트는 예측 모드 리스트의 제1 세트 및 예측 모드 리스트의 제2 세트로 각각 치환될 수 있다. 여기서, 예측 모드 리스트는 MPM 리스트 또는 선택 모드 리스트일 수 있다.
도 11은 인트라 예측 모드에 적용되는 컨텍스트 조건의 또 다른 실시예로서 기본 각도 모드를 고려한 예측 모드 리스트 구성 방법을 도시한다. 전술한 바와 같이, 인트라 예측 모드 세트를 구성하는 복수의 각도 모드들은 기본 각도 모드와 확장 각도 모드를 포함할 수 있다.
본 발명의 일 실시예에 따르면 예측 모드 리스트는 기본 각도 모드를 우선적으로 고려하여 구성될 수 있다. 예측 모드 리스트에 포함된 각도 모드들은 리스트에 포함되지 않은 각도 모드들보다 높은 우선 순위를 가질 수 있다. 일 실시예에 따르면, 기본 각도 모드를 우선적으로 고려하여 예측 모드 리스트를 구성하는 방법은 주변 블록들이 기본 각도 모드를 사용하는 조건 하에 적용될 수 있다. 또한, 기본 각도 모드를 우선적으로 고려하여 예측 모드 리스트를 구성하는 방법은 기본 각도 모드를 사용하는 주변 블록들의 개수가 임계값 이상인 조건 하에 적용될 수 있다.
인코더의 인트라 예측 모드 결정 단계에서, 선택 가능한(정의한) 모든 각도 모드들에 대한 율-왜곡 비용(RD-cost) 계산을 수행하는 것은 복잡도에 부담이 있을 수 있다. 따라서 인트라 예측 모드 결정 단계에서 복잡도를 줄이기 위해 인코더는 기 설정된 각도 모드들, 예를 들면 기본 각도 모드들에 대해서만 율-왜곡 비용 계산을 먼저 수행하여 인트라 예측 모드를 선택할 수 있다. 다음으로, 인코더는 선택된 기본 각도 모드의 주변 각도 모드들에 대한 율-왜곡 비용 계산을 추가적으로 수행하여 인트라 예측 모드를 선택할 수 있다.
현재 블록과 주변 블록 간의 유사성 및 상기 설명한 인코더 구현 실시예를 고려하면, 현재 블록이 기본 각도 모드를 사용할 가능성이 높을 수 있다. 따라서, 우선 순위를 갖는 예측 모드 리스트를 기본 각도 모드를 기초로 구성하는 것이 가능하다. 만약 구성하려는 예측 모드 리스트의 엘리먼트의 개수가 기본 각도 모드들의 전체 개수보다 적은 경우, 기본 각도 모드들 중 일부를 선택하여 예측 모드 리스트를 구성할 수 있다. 예를 들면, 기본 각도 모드들의 개수가 33이고 구성하려는 예측 모드 리스트의 엘리먼트의 개수가 16인 경우, 전체 기본 각도 모드들 중 어느 하나의 기본 각도 모드를 시작으로 하나 건너 하나씩의 기본 각도 모드들이 선택될 수 있다. 즉, 도 13의 실시예에서 각도 모드 4, 8, 12, 16, ..., 60 및 64가 선택될 수 있다. 일 실시예에 따르면, 이와 같이 선택된 인트라 예측 모드들로 구성된 예측 모드 리스트는 선택 모드 리스트로 사용될 수 있다. 본 발명의 다른 실시예로서, 구성하려는 예측 모드 리스트의 엘리먼트의 개수는 기본 각도 모드의 개수에 기초하여 정의될 수 있다. 예를 들어, 기본 각도 모드의 개수가 33일 때, 구성하려는 예측 모드 리스트의 엘리먼트의 개수는 33 혹은 32(=33-1) 등으로 정의될 수 있다.
전술한 바와 같이, 확장 각도 모드는 기본 각도 모드를 기초로 시그널링될 수 있다. 기본 각도 모드를 위한 인트라 예측 모드 인덱스를 이용하여 확장 각도 모드가 시그널링될 수 있다. 예를 들어, 기본 각도 모드를 기초로 한 예측 모드 리스트가 구성될 때, 상기 리스트를 참조하여 오프셋 또는 온/오프 플래그를 통해 확장 각도가 시그널링될 수 있다. 더욱 구체적으로, 기본 각도 모드 {a, b, c, d}에 기초하여 예측 모드 리스트가 구성될 때, 각각의 각도 모드에 대응하는 오프셋 {offset1, offset2, offset3, offset4}가 시그널링될 수 있다. 시그널링된 오프셋에 기초하여 각도 모드 {a+offset1, b+offset2, c+offset3, d+offset4}이 지시될 수 있다. 다른 실시예에 따르면, 기본 각도 모드에 대응하는 오프셋의 사용 여부를 지시하는 플래그가 별도로 전송될 수 있다. 예를 들어, 기본 각도 모드 a에 대응하는 플래그가 전송될 수 있으며, 상기 플래그의 값이 1이면 각도 모드 a+offset1이 지시되고 상기 플래그 값이 0이면 각도 모드 a가 지시될 수 있다.
도 12는 현재 블록의 인트라 예측을 위해 주변 블록들을 참조하는 일 실시예를 도시한다. 도 12에서는 현재 블록의 좌측 혹은 상측 경계에 인접한 복수의 주변 블록들이 존재한다고 가정한다. 이하, 현재 블록의 주변 블록들을 참조하여 현재 블록을 위한 예측 모드 리스트를 구성하는 방법이 설명된다. 예측 모드 리스트는 MPM 리스트, 선택 모드 리스트 및 비-선택 모드 리스트 자체 또는 그 일부 세트를 포함하며, 본 발명은 이에 한정되지 않는다.
1) MPM 리스트 구성 방법 (제1 방법). 본 발명의 실시예에 따르면, 현재 블록에 대한 MPM 리스트는 다음과 같은 방법으로 구성될 수 있다. 현재 블록의 좌측 혹은 상측 경계에 인접한 복수의 주변 블록들이 존재하는 경우, 해당 블록들에 사용된 인트라 예측 모드들의 정보가 종합적으로 고려될 수 있다. 이때, 현재 블록의 좌측 혹은 상측 경계에 인접한 주변 블록은 현재 블록의 높이 'Cur_block_height'의 길이를 갖는 좌측 면 또는 현재 블록의 너비 'Cur_block_width'의 길이를 갖는 상측 면에 인접해 있는 블록을 가리킨다.
예를 들어, 도 12에서와 같이 현재 블록의 좌측 경계에 블록 L0 및 L1이 인접해 있고 상측 경계에 블록 A0, A1 및 A2가 인접한 경우, 해당 블록들에서 사용된 인트라 예측 모드들을 참조하여 MPM 리스트를 구성할 수 있다. 이때, 현재 블록에 인접한 주변 블록들을 참조하는 순서는 다음과 같은 실시예들로 구성될 수 있다.
첫 번째 실시예에 따르면, MPM 리스트는 {블록 L0의 모드, 블록 L1의 모드, …, 블록 A0의 모드, 블록 A1의 모드, …, 평면 모드, DC 모드, 블록 BL의 모드, 블록 AR의 모드, 블록 AL의 모드}의 순서로 구성될 수 있다. 즉, 현재 블록의 좌측 경계에 인접한 블록들과 상측 경계에 인접한 블록들을 각각 순서대로 참조하여 MPM 리스트를 구성할 수 있다. 두 번째 실시예에 따르면, MPM 리스트는 {블록 L0의 모드, 블록 A0의 모드, 블록 L1의 모드, 블록 A1의 모드, 블록 L_x의 모드, 블록 A_x의 모드, 블록 L_x+1의 모드, 블록 A_x+1의 모드, …,평면 모드, DC 모드, 블록 BL의 모드, 블록 AR의 모드, 블록 AL의 모드}의 순서로 구성될 수 있다. 즉, 현재 블록의 좌측 경계에 인접한 대표 블록 L0와 현재 블록의 상측 경계에 인접한 대표 블록 A0를 먼저 참조하고, 현재 블록의 좌측 경계에 인접한 나머지 블록들과 현재 블록의 상측 경계에 인접한 나머지 블록들을 순서대로 번갈아 가며 참조하여 MPM 리스트를 구성할 수 있다. 세 번째 실시예에 따르면, MPM 리스트는 {블록 L0의 모드, 블록 A0의 모드, 평면 모드, DC 모드, 블록 BL의 모드, 블록 AR의 모드, 블록 AL의 모드, 블록 L1의 모드, …, 블록 A1의 모드, …}의 순서로 구성될 수 있다. 즉, 현재 블록의 좌측 경계에 인접한 대표 블록 L0와 현재 블록의 상측 경계에 인접한 대표 블록 A0를 먼저 참조하고, 평면 모드 및 DC 모드를 추가한 후, 현재 블록의 좌측 경계에 인접한 나머지 블록들과 현재 블록의 상측 경계에 인접한 나머지 블록들을 순서대로 번갈아 가며 참조하여 MPM 리스트를 구성할 수 있다. 또 다른 실시예에 따르면, 현재 블록의 좌측 혹은 상측 경계에 인접한 블록들의 인트라 예측 모드들에 기초한 평균 값 또는 대표 값을 추출하고, 이를 이용하여 MPM 리스트가 구성될 수 있다. 한편, 전술한 실시예들에서 현재 블록의 좌측/상측 경계에 인접한 대표 블록은 L0 및 A0가 아닌 다른 위치의 블록들로 설정될 수도 있다. 예를 들어, 현재 블록의 좌측 면의 중간 지점과 상측 면의 중간 지점에 각각 가장 가까운 블록들이 대표 블록들로 설정될 수 있다.
한편, 도 12에서는 현재 블록의 좌측 혹은 상측 경계에 인접한 주변 블록들의 개수가 각각 2개, 3개인 예를 도시하였으나, 전술한 실시예들은 주변 블록들의 개수가 늘어나도 확장하여 적용될 수 있다. 또한 상기 실시예들은 현재 블록의 좌측과 상측의 주변 블록들을 기초로 서술되었으나, 현재 블록의 하좌측(BL), 상우측(AR) 및 상좌측(AL)에 위치한 주변 블록들에도 유사하게 적용될 수 있다. 이에 대한 구체적인 실시예는 도 13을 참조로 설명한다. 만약 전술한 방법들로 MPM 리스트를 다 채우지 못한 경우, MPM 리스트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 적용하여 MPM 모드를 추가할 수 있다. 즉, MPM 리스트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 더하거나 뺀 각도 모드가 MPM 리스트에 추가된다. 이때, 기 설정된 오프셋은 0이 아닌 정수이다.
2) 선택 모드 리스트 구성 방법 (제2 방법). 선택 모드 리스트는 현재 블록의 주변 블록들에서 사용된 인트라 예측 모드들에 기초하여 구성될 수 있다. 또한, 상기 제1 방법에서 서술된 주변 블록들을 참조하는 우선 순위의 다양한 실시예들이 선택 모드 리스트 구성 시에도 적용될 수 있다. 만약 전술한 방법으로 선택 모드 리스트를 다 채우지 못한 경우, 선택 모드 리스트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 적용하여 선택 모드를 추가할 수 있다. 즉, 선택 모드 리스트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 더하거나 뺀 각도 모드가 선택 모드 리스트에 추가된다. 이때, 기 설정된 오프셋은 0이 아닌 정수이다.
본 발명의 다른 실시예에 따르면, 상기 제1 방법을 적용할 때 주변 블록들의 인트라 예측 모드들 중 MPM 리스트에 포함되지 못한 하위 모드들이 우선적으로 선택 모드 리스트에 포함될 수 있다. 만약 이러한 방법으로 선택 모드 리스트를 다 채우지 못한 경우, 선택 모드 리스트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 적용하여 선택 모드를 추가할 수 있다. 또 다른 실시예에 따르면, 주변 블록들의 각도 모드들에 기 설정된 오프셋(즉, offset1)을 적용하여 선택 모드 리스트가 구성될 수 있다. 예를 들면, 상기 제1 방법 중 어느 하나의 실시예에서 평면 모드 및 DC 모드를 제외한 나머지 각도 모드들에 기초하여 다음과 같은 선택 모드 리스트가 구성될 수 있다. {블록 L0의 모드 +/- offset1, 블록 L1의 모드 +/- offset1, …, 블록 A0의 모드 +/- offset1, 블록 A1의 모드 +/- offset1, …, 블록 BL의 모드 +/- offset1, 블록 AR의 모드 +/- offset1, 블록 AL의 모드 +/- offset1}. 이때, 기 설정된 오프셋은 다양한 방법으로 결정될 수 있다. 예를 들어, 오프셋은 양의 정수로서 그 값이 1부터 시작하여 1씩 증가되도록 설정될 수 있다. 또한, 오프셋은 양의 정수로서 그 값이 1부터 시작하여 2의 배수로 증가되도록 설정될 수 있다. 또한, 오프셋은 초기값이 1보다 큰 정수에서 시작하여 증가될 수 있으며, 증가되는 스케일은 2의 배수 또는 3의 배수 등으로 확장될 수 있다. 또한, 오프셋은 기 설정된 초기값(예, 10)에서 시작하여 점점 작아지도록 설정될 수 있다.
3) 비-선택 모드 리스트 구성 방법 (제3 방법). 비-선택 모드 리스트를 구성할 때에도, 전술한 제1 방법과 유사하게 현재 블록의 주변 블록들에서 사용된 인트라 예측 모드들이 사용될 수 있다. 예를 들어, 비-선택 모드 리스트가 45개의 인트라 예측 모드들로 구성되고 절삭 이항 이진화로 시그널링될 때, 상위 19개의 모드들은 20번째 이후의 모드들보다 하나 적은 비트들로 시그널링될 수 있다. 다시 말해서, 비-선택 모드 리스트의 인트라 예측 모드들은 l-1개의 비트들로 구성된 인덱스로 시그널링되는 제1 세트와, l개의 비트들로 구성된 인덱스로 구성된 인덱스로 시그널링되는 제2 세트로 구분될 수 있다. 이때, 전술한 제1 방법에 따른 주변 블록들을 참조하는 우선 순위에 기초하여 선택된 각도 모드들은 상기 제1 세트에 포함될 수 있다. 만약 이러한 방법으로 제1 세트를 다 채우지 못한 경우, 제1 세트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 적용하여 획득된 각도 모드들이 제1 세트에 추가될 수 있다.
본 발명의 다른 실시예에 따르면, 주변 블록들의 인트라 예측 모드들 중 MPM 리스트 및/또는 선택 모드 리스트에 포함되지 못한 하위 모드들이 우선적으로 제1 세트에 포함될 수 있다. 만약 이러한 방법으로 제1 세트를 다 채우지 못한 경우, 제1 세트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 적용하여 획득된 각도 모드들이 제1 세트에 추가될 수 있다. 또 다른 실시예에 따르면, 상기 제2 방법과 유사하게 주변 블록들의 각도 모드들에 기초하여 다음과 같이 제1 세트가 구성될 수 있다. {블록 L0의 모드 +/- offset2, 블록 L1의 모드 +/- offset2, …, 블록 A0의 모드 +/- offset2, 블록 A1의 모드 +/- offset2, …, 블록 BL의 모드 +/- offset2, 블록 AR의 모드 +/- offset2, 블록 AL의 모드 +/- offset2}. 이때, 제1 세트를 구성하기 위해 사용되는 기 설정된 오프셋(즉, offset2)은 MPM 리스트 구성에 사용된 오프셋 및 선택 모드 리스트 구성에 사용된 오프셋(즉, offset1)과 다른 값으로 설정될 수 있다.
도 13은 현재 블록의 인트라 예측을 위해 주변 블록들을 참조하는 다른 실시예를 도시한다. 복수의 주변 블록들을 참조하여 현재 블록의 인트라 예측을 수행하는 도 12의 실시예는 현재 블록의 좌측(L) 및 상측(A)뿐만 아니라 현재 블록의 하좌측(BL), 상우측(AR) 및 상좌측(AL)에 위치한 주변 블록들에도 확장하여 적용될 수 있다.
현재 블록의 좌측 혹은 상측에 위치한 주변 블록의 정의는 도 12의 실시예와 동일할 수 있다. 추가적으로, 현재 블록의 하좌측(BL), 상우측(AR) 및 상좌측(AL)에 위치한 주변 블록들이 정의될 수 있다. 먼저, 현재 블록의 하좌측(BL)에 위치한 주변 블록들은 현재 블록의 좌측 면으로부터 길이 'BL_block_height' 만큼 아래로 연장된 면에 인접한 블록들을 가리킬 수 있다. 또한, 현재 블록의 상우측(AR)에 위치한 주변 블록들은 현재 블록의 상측 면으로부터 길이 'AR_block_width' 만큼 우측으로 연장된 면에 인접한 블록들을 가리킬 수 있다. 마찬가지로, 현재 블록의 상좌측(AL)에 위치한 주변 블록들은 현재 블록의 상측 면으로부터 길이 'AL_block_width' 만큼 좌측으로 연장된 면에 인접한 블록들을 가리킬 수 있다. 일 실시예에 따르면, 'BL_block_height'의 길이는 'Cur_block_height'의 길이와 동일하게 설정되거나 'Cur_block_height'의 길이의 정수배로 설정될 수 있다. 또한 'AR_block_width' 및 'AL_block_width'의 길이는 'Cur_block_width'의 길이와 동일하게 설정되거나 'Cur_block_width'의 길이의 정수배로 설정될 수 있다. 이때, 해당 위치의 블록들 중에서 이용 가능한 모든 블록들이 현재 블록의 인트라 예측을 위해 참조될 수 있다. 또는, 참조 가능한 블록의 크기를 미리 정의하고, 해당 크기보다 작거나 큰 크기의 블록들만 현재 블록의 인트라 예측을 위해 참조될 수 있다. 또한 현재 블록이 정사각형이 아닌 블록인 경우, 현재 블록의 크기에 따라 참조되는 주변 블록의 모양이 다를 수 있다.
예를 들어, 도 13에서와 같이 현재 블록의 하좌측(BL)에 위치한 주변 블록들이 BL0, BL1 및 BL2이고, 현재 블록의 상우측(AR)에 위치한 주변 블록들이 AR0 및 AR1이고, 현재 블록의 상좌측(AL)에 위치한 주변 블록들이 AL0, AL1 및 AL2인 경우, 다음과 같은 순서로 예측 모드 리스트가 구성될 수 있다. {블록 L0의 모드, 블록 L1의 모드, …, 블록 A0의 모드, 블록 A1의 모드, …, 평면 모드, DC 모드, 블록 BL0의 모드, 블록 BL1의 모드, 블록 BL2의 모드, …, 블록 AL0의 모드, 블록 AL1의 모드, …, 블록 AR0의 모드, 블록 AR1의 모드, …}. 본 발명의 실시예에 따르면, 이와 같은 예측 모드 리스트의 구성 순서에 기초하여 MPM 리스트가 구성될 수 있다. 또한, 상기 예측 모드 리스트에서 각도 모드들만을 이용하여 선택 모드 리스트가 구성될 수 있으며, 선택 모드 리스트를 다 채우지 못한 경우 선택 모드 리스트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 적용하여 선택 모드를 추가할 수 있다. 또한, 상기 예측 모드 리스트에서 각도 모드들만을 이용하여 비-선택 모드 리스트의 제1 세트가 구성될 수 있으며, 마찬가지로 제1 세트를 다 채우지 못한 경우 제1 세트에 이미 선택된 각도 모드들에 기 설정된 오프셋을 적용하여 획득된 각도 모드들이 제1 세트에 추가될 수 있다. 도 12를 참조로 설명된 주변 블록을 고려한 예측 모드 리스트 구성 실시예들은 도 13에 따른 확장된 주변 블록 들에도 동일하게 적용될 수 있다.
도 14는 현재 블록의 인트라 예측을 위해 주변 블록들의 MPM 리스트를 참조하는 일 실시예를 도시한다. 현재 블록에 대한 MPM 리스트를 구성할 때, 주변 블록들의 인트라 예측 모드뿐만 아니라 해당 블록들의 MPM 리스트가 추가적으로 참조될 수 있다. 더욱 구체적으로, 현재 블록의 인트라 예측을 위해 주변 블록의 인트라 예측 모드, 주변 블록의 MPM 리스트에 포함된 인트라 예측 모드, 주변 블록의 주변 블록의 인트라 예측 모드, 주변 블록의 주변 블록의 MPM 리스트에 포함된 인트라 예측 모드 등이 참조될 수 있다. 즉, 현재 블록의 제1 단계(1st tier)의 주변 블록들로 한정하지 않고, 제2 단계(2nd tier)의 주변 블록들, 제3 단계(3rd tier)의 주변 블록 등 보다 넓은 범위의 주변 블록들의 인트라 예측 정보를 이용하여 현재 블록의 인트라 예측 모드가 시그널링될 수 있다. 여기서, 블록의 인트라 예측 정보는 상기 블록의 인트라 예측 모드 및 MPM 리스트 정보 중 적어도 하나를 포함한다.
도 14를 참조하면, 현재 블록의 좌측 주변 블록(즉, Neighbor block 1)이 인트라 예측 모드로 코딩된 경우, 해당 주변 블록의 MPM 리스트에 포함된 인트라 예측 모드들이 현재 블록의 인트라 예측 모드 시그널링에 우선적으로 고려될 수 있다. 즉, 현재 블록의 인트라 예측 모드를 시그널링하기 위해 다음과 같은 순서의 모드들이 참조될 수 있다. {블록 L의 모드, 블록 A의 모드, 평면 모드, DC 모드, 블록 BL의 모드, 블록 AR의 모드, NB1_MPM0 모드, NB1_MPM1 모드, NB1_MPM2 모드, …, NB2_MPM0 모드, NB2_MPM1 모드, NB2_MPM2 모드, …}. 여기서, NBx_MPMy 모드는 현재 블록의 x번째 주변 블록의 인트라 예측 정보를 가리킨다. 즉, NBx_MPMy 모드는 상기 x번째 주변 블록의 인트라 예측 모드 정보 혹은 해당 블록의 MPM 리스트의 y번째 인트라 예측 모드 정보를 가리킬 수 있다. 이때 y번째 모드가 평면 모드나 DC 모드와 같은 비-각도 모드인 경우 현재 블록에서 고려되지 않을 수 있다.
본 발명의 실시예에 따르면, 주변 블록의 주변 블록에 대한 인트라 예측 모드 정보를 다양하게 변형 및 조합하여 현재 블록을 위한 인트라 예측에 사용할 수 있다. 예를 들어, 현재 블록의 모양(즉, 정사각형 블록, 직사각형 블록) 및 주변 블록의 모양에 기초하여 실시예가 변형 또는 확장될 수 있으며, 그 순서쌍도 여러가지 조합으로 확장하여 적용될 수 있다. 주변 블록의 MPM 리스트에 포함된 인트라 예측 모드들을 현재 블록의 인트라 예측 모드 시그널링에 활용하는 실시예는 전술한 실시예들과 조합될 수 있다. 즉, 현재 블록의 MPM 리스트, 비-MPM 모드들 중 k-1개의 비트들로 구성된 인덱스로 시그널링되는 상위 모드들의 세트, 선택 모드 리스트, 및 비-선택 모드들 중 l-1개의 비트들로 구성된 인덱스로 시그널링되는 상위 모드들의 세트 중 적어도 하나를 구성할 때, 주변 블록의 MPM 리스트에 포함된 모드들이 참조될 수 있다. 또한, 각각의 케이스에서 해당 리스트 또는 세트를 다 채우지 못한 경우, 해당 리스트 또는 세트에 이미 포함된 각도 모드들에 기 설정된 오프셋을 적용하여 획득된 각도 모드들이 해당 리스트 또는 세트에 추가될 수 있다.
도 15는 현재 블록의 인트라 예측을 위해 현재 블록 및 주변 블록의 모양 및/또는 크기를 고려하는 일 실시예를 도시한다. 현재 블록의 MPM 리스트를 구성할 때, 주변 블록들 중 현재 블록과 모양 및/또는 크기가 유사한 블록의 인트라 예측 정보가 우선적으로 참조될 수 있다. 여기서, 인트라 예측 정보는 인트라 예측 모드 및 MPM 리스트 정보 중 적어도 하나를 포함한다. 현재 블록과 주변 블록의 모양이 유사 한지 여부는, 양 블록이 정사각형 블록인지 여부, 양 블록이 수직 블록인지 여부, 양 블록이 수평 블록인지 여부 등에 기초하여 결정될 수 있다. 양 블록이 모두 수직 블록이거나 모두 수평 블록인 경우, 각 블록의 너비와 높이 간의 비율이 추가적으로 고려될 수 있다. 또한, 본 발명의 실시예에서 블록의 모양은 전술한 케이스들로 한정되지 않으며, 비-균등 직사각형 블록, 사선형 블록 등으로 확장될 수 있다.
더욱 구체적으로, 현재 블록이 수직 블록인 경우 주변 블록들 중 수직 블록(즉, NB_l, NB_a)에 사용된 인트라 예측 정보가 현재 블록의 MPM 리스트 구성 시 우선적으로 참조될 수 있다. 또한, 현재 블록의 크기가 16x32인 경우 주변 블록들 중 동일한 크기의 블록(즉, NB_l)에 사용된 인트라 예측 정보가 현재 블록의 MPM 리스트 구성 시 우선적으로 참조될 수 있다. 현재 블록 및 주변 블록의 모양 및/크기를 고려하여 현재 블록의 인트라 예측 모드를 시그널링하는 실시예는 전술한 실시예들과 조합될 수 있다. 즉, 현재 블록의 MPM 리스트, 비-MPM 모드들 중 k-1개의 비트들로 구성된 인덱스로 시그널링되는 상위 모드들의 세트, 선택 모드 리스트, 및 비-선택 모드들 중 l-1개의 비트들로 구성된 인덱스로 시그널링되는 상위 모드들의 세트 중 적어도 하나를 구성할 때, 주변 블록들 중 현재 블록과 모양 및/또는 크기가 유사한 블록의 인트라 예측 정보가 우선적으로 참조될 수 있다. 또한, 각각의 케이스에서 해당 리스트 또는 세트를 다 채우지 못한 경우, 해당 리스트 또는 세트에 이미 포함된 각도 모드들에 기 설정된 오프셋을 적용하여 획득된 각도 모드들이 해당 리스트 또는 세트에 추가될 수 있다.
도 16 내지 도 18은 주변 블록들의 예측 정보를 참조하여 현재 블록의 예측 정보를 획득하는 확장된 실시예들을 도시한다. 본 발명의 실시예에 따르면, 현재 블록의 예측 정보를 시그널링하는데 참조되는 블록은 현재 블록에 인접한 주변 블록들 뿐만 아니라 현재 블록에 인접하지 않은 주변 블록들로 확장될 수 있다. 각각의 도면을 참조로, 주변 블록들의 인트라 예측 정보를 참조하여 현재 블록의 인트라 예측 정보를 획득하는 실시예가 설명된다. 일 실시예에 따르면, 주변 블록들의 인트라 예측 정보를 참조하여 현재 블록의 MPM 리스트가 구성될 수 있다. 다만 본 발명은 이에 한정되지 않으며, 각각의 실시예는 주변 블록들의 인터 예측 정보를 참조하여 현재 블록의 인터 예측 정보를 획득할 때에도 유사하게 적용될 수 있다. 여기서, 인터 예측 정보는 모션 벡터, 참조 픽쳐 인덱스 등을 포함할 수 있다.
먼저, 도 16은 현재 블록의 예측 정보를 획득하기 위해 참조되는 확장된 주변 블록들의 일 실시예를 도시한다. 전술한 바와 같이, 픽쳐의 지역적 유사성을 반영하여, 주변 블록들의 인트라 예측 모드를 이용하여 현재 블록의 MPM 리스트 구성할 수 있다. 이때, 현재 블록의 경계에 인접한 주변 블록들 L(1), A(1), BL(1), AR(1) 및 AL(1)을 제1 단계(1st tier) 주변 블록으로 정의하고, 각각의 제1 단계 주변 블록의 경계에 인접한 주변 블록들 L(2), A(2), BL(2), AR(2) 및 AL(2)를 제2 단계(2nd tier) 주변 블록으로 정의할 수 있다. 예를 들어, 현재 블록의 좌측 경계에 인접한 최하단 블록 L(1)은 제1 단계 주변 블록이며, 블록 L(1)의 좌측 또는 상측 경계에 인접한 블록들 L(2), A(2), BL(2), AR(2) 및 AL(2)는 제2 단계 주변 블록들이다. 이때, 제1 단계 주변 블록에 인접한 블록들 중 현재 블록과 중첩되는 블록은 제2 단계 주변 블록에서 제외된다. 즉, 블록 L(1)의 상우측 블록 AR(2)는 현재 블록과 중첩되므로 현재 블록의 MPM 리스트를 구성할 때 참조되지 않는다. 마찬가지로 블록 A(1)에 인접한 블록 BL(2), 블록 BL(1)에 인접한 블록 AR(2), 블록 AR(1)에 인접한 블록 BL(2) 역시 현재 블록과 중첩되므로 MPM 리스트를 구성할 때 참조되지 않는다.
도 16에서는 현재 블록의 좌측 또는 상측에 위치하는 5개의 제1 단계 주변 블록들에 대해, 최대 25개의 제2 단계 주변 블록들로 확장되는 실시예가 도시 되었으나 본 발명은 이에 한정되지 않는다. 즉, 본 발명의 실시예는 현재 블록의 좌측 또는 상측에 위치하는 N개의 제1 단계 주변 블록에 대해, 최대 N^2개의 제2 단계 주변 블록으로 확장할 수 있다. 이 경우, 현재 블록으로부터 기 설정된 범위 이내의 최대 N^2+N개의 주변 블록들의 인트라 예측 모드를 참조하여 현재 블록의 MPM 리스트가 구성될 수 있다. 따라서 N개의 제1 단계 주변 블록들의 인트라 예측 모드만을 참조하여 MPM 리스트를 구성할 때보다 픽쳐의 지역적인 특성을 더 반영할 수 있다. 또한, 현재 블록의 최적의 인트라 예측 모드가 MPM 리스트 내에 존재할 확률을 높여주어, 인트라 예측 모드 코딩에 필요한 비트량 감소를 기대할 수 있다.
현재 블록의 제2 단계 주변 블록들의 정확한 위치를 결정하기 위해서는 제1 단계 주변 블록의 크기와 해당 블록의 좌상측, 우상측, 좌하측 및 우하측 꼭지점들 중 적어도 하나의 위치 정보가 필요하다. 인코더와 디코더에 상기 정보가 저장되어 있지 않은 경우, 제1 단계 주변 블록의 기준 좌표에 오프셋을 더해서 각각의 제2 단계 주변 블록의 좌표를 구할 수 있다. 예를 들어 블록 AL(1)의 우하측 기준 좌표가 (x0, y0)일 때, 블록 L(2), A(2), BL(2), AR(2) 및 AL(2)의 기준 위치는 각각 (x0-offset-1, y0-1), (x0-1, y0-offset-1), (x0-offset-1, y0+1), (x0+1, y0-offset-1) 및 (x0-offset-1, y0-offset-1)로 결정할 수 있다. 여기서, offset은 0보다 큰 정수이며, x축 방향의 offset과 y축 방향의 offset은 서로 동일한 값 또는 서로 다른 값으로 설정될 수 있다. 다른 실시예에 따르면, offset은 현재 블록의 크기에 기초하여 결정될 수 있다. 즉, offset은 현재 블록의 크기에 비례하도록 설정될 수 있다. 예를 들어, 현재 블록의 너비와 높이가 각각 {64, 32}인 경우, x축 방향의 offset 및 y축 방향의 offset은 각각 상기 너비와 높이를 정수로 나눈 {64, 32}, {32, 16}, {16, 8}, {8, 4} 등으로 설정될 수 있다. 인코더와 디코더는 미리 정의된 규칙에 따라 동일한 offset을 사용하므로, 인코더와 디코더 모두 동일한 위치의 제2 단계 주변 블록의 인트라 예측 모드를 참조할 수 있다.
본 발명의 다른 실시예에 따르면, 현재 블록의 제1 단계 주변 블록들 L(1), A(1), BL(1), AR(1) 또는 AL(1)의 MPM 리스트가 구성된 경우, 인코더와 디코더는 제2 단계 주변 블록의 탐색 과정 없이 제1 단계 주변 블록의 MPM 리스트에 포함된 인트라 예측 모드들을 참조하여  현재 블록의 MPM 리스트를 구성할 수 있다. 제1 단계 주변 블록의 MPM 리스트가 구성될 때 현재 블록의 제2 단계 주변 블록들의 예측 모드를 참조하기 때문에, 제1 단계 주변 블록의 MPM 리스트에는 제2 단계 주변 블록들의 예측 모드가 포함될 수 있다. 따라서 제2 단계 주변 블록의 탐색 및 위치 계산 과정 없이, 제1 단계 주변 블록의 MPM 리스트를 참조함으로 제2 단계 주변 블록의 예측 모드를 참조할 수 있다. 한편, 제1 단계 주변 블록들의 MPM 리스트 정보를 모두 저장하는 것은 메모리에 부담을 줄 수 있다. 따라서, 본 발명의 또 다른 실시예에 따르면, 인코더와 디코더는 제1 단계 주변 블록의 MPM 리스트에 포함된 상위 M개의 인트라 예측 모드들 만을 저장하고 참조하여 현재 블록의 MPM 리스트를 구성할 수 있다. 예를 들어, MPM 리스트의 크기가 6이고 상위 3개의 MPM 인덱스들(즉, index=0, 1, 2)의 인트라 예측 모드들이 참조되는 경우, 현재 블록의 MPM 리스트는 제1 단계 주변 블록들 L(1), A(1), BL(1), AR(1) 및 AL(1)의 인트라 예측 모드와 각 블록의 MPM 리스트의 상위 3개의 MPM 인덱스가 지시하는 인트라 예측 모드들을 참조하여 구성될 수 있다. 일 실시예에 따르면, 평면 모드 및 DC 모드는 전술한 상위 M개의 인트라 예측 모드에서 제외될 수 있다.
도 17은 현재 블록의 예측 정보를 획득하기 위해 참조되는 확장된 주변 블록들의 다른 실시예를 도시한다. 본 발명의 다른 실시예에 따르면, 현재 블록의 예측 정보를 획득하기 위해 현재 블록을 기준으로 한 기 설정된 탐색 범위가 사용될 수 있다.
도 17을 참조하면, 제1 단계 주변 블록의 좌상측, 좌하측, 우상측 꼭지점 좌표들을 기준으로 제2 단계 주변 블록들 L(2), A(2), BL(2), AR(2) 및 AL(2)를 찾기 위해 사각형 형태의 탐색 범위가 정의될 수 있다. 이때, 탐색 범위 내에서 x축 및/또는 y축 방향으로 정해진 스텝 크기만큼 이동하면서 제2 단계 주변 블록이 탐색될 수 있다. 예를 들어, 현재 블록의 제1 단계 주변 블록인 AL(1)에 대한 제2 단계 주변 블록 L(2)를 탐색하기 위해, 블록 AL(1)의 좌하측 좌표 기준점에서 x축 방향으로 정해진 스텝 크기만큼 이동하면서 블록 L(2)가 탐색 될 수 있다. 이때, 정해진 탐색 범위 내에서 블록 AL(1)의 예측 정보와 다른 예측 정보를 갖는 블록이 발견될 때까지 탐색이 수행될 수 있다. 또한, 현재 블록의 제1 단계 주변 블록인 AL(1)에 대한 제2 단계 주변 블록 A(2)를 탐색하기 위해, 블록 AL(1)의 우상측 좌표 기준점에서 y축 방향으로 정해진 스텝 크기만큼 이동하면서 블록 A(2)가 탐색 될 수 있다. 마찬가지로, 제2 단계 주변 블록들 AL(2), AR(2) 및 BL(2) 블록을 탐색하기 위해, 각각 블록 AL(1)의 좌상측, 우상측 및 좌하측 좌표 기준점에서 x축 및/또는 y축 방향으로 정해진 스텝 크기만큼 이동하면서 제2 단계 주변 블록이 탐색 될 수 있다.
본 발명의 실시예에 따르면, 탐색 범위는 16X16, 32X32, 64X64 등의 고정된 크기로 설정될 수도 있고, 현재 블록의 크기에 따라 설정될 수도 있다. 즉, 탐색 범위는 현재 블록의 너비 및/또는 높이에 비례하도록 설정될 수 있다. 예를 들어, 현재 블록의 크기가 128X128인 경우 탐색 범위는 상기 블록의 크기를 정수로 나눈 128X128, 64X64, 32X32, 16X16, 8X8 등으로 설정될 수 있다. 탐색 범위 내에서 탐색을 위한 스텝 크기는 블록의 최소 크기보다 같거나 크고, 탐색 범위 보다 작은 값으로 설정될 수 있다. 예를 들어, 64X64 탐색 범위에서 블록의 최소 크기가 4X4인 경우, 상기 스텝 크기는 4, 8, 16 또는 32로 설정될 수 있다. 본 발명의 실시예에 따르면, 탐색 범위 내에서 예측 정보의 탐색은 기 설정된 예측 모드 리스트가 모두 채워질 때까지 수행될 수 있다. 즉, 탐색 범위 내에서 제1 스텝 크기로 탐색된 예측 정보가 예측 모드 리스트에 포함되며, 예측 모드 리스트가 채워지지 않을 경우 상기 탐색 범위 내에서 제2 스텝 크기로 탐색된 예측 정보가 예측 모드 리스트에 추가된다. 인코더 및 디코더는 예측 모드 리스트가 모두 채워질 때까지 탐색을 위한 스텝 크기를 늘려 나가며 탐색을 수행할 수 있다. 한편, 각각의 탐색 범위와 스텝 크기는 자연수이며, 인코더와 디코더에서 미리 정의된 동일한 값으로 사용되기 때문에, 인코더와 디코더 모두 동일한 제2 단계 주변 블록의 예측 모드를 참조할 수 있다.
도 18은 현재 블록의 예측 정보를 획득하기 위해 참조되는 확장된 주변 블록들의 또 다른 실시예를 도시한다. 인코더와 디코더가 현재 블록의 주변 블록의 구조 즉, 블록의 크기와 블록의 좌상측 좌표를 알고 있을 경우, 현재 블록에 대한 제2 단계 주변 블록의 위치를 결정할 수 있다. 도 18에 도시된 서브 블록들에서 좌상측 숫자는 부호화 또는 복호화 순서를 명시한 것이며, 현재 블록은 15번째로 부호화 또는 복호화 처리됨을 의미한다.
현재 블록(즉, 15번째 블록)의 제2 단계 주변 블록들의 위치를 결정하기 위해, 제1 단계 주변 블록들 각각의 좌상측, 우상측, 좌하측, 우하측 네 개의 기준점들 중 적어도 하나의 좌표와 해당 블록의 너비 및 높이 정보가 활용될 수 있다. 예를 들어, 현재 블록의 제1 단계 주변 블록 AL(1)에 대한 제2 단계 주변 블록들 L(2), A(2), BL(2), AR(2) 및 AL(2)의 기준 위치는 각각 (x0-1, y0+h-1), (x0+w-1, y0-1), (x0-1, y0+h+1), (x0+w+1, y0-1) 및 (x0-1, y0-1)로 계산될 수 있다. 이때, (x0, y0)는 현재 블록의 제1 단계 주변 블록인 5번째 블록의 좌상측 좌표이며, w와 h는 각각 해당 블록의 너비와 높이이다. 나머지 제1 단계 주변 블록들 L(1), A(1), BL(1) 및 AR(1)에 대해서도 각각의 제2 단계 주변 블록들의 위치를 동일한 방식으로 계산할 수 있으며, 제2 단계 주변 블록들의 인트라 예측 모드를 참조하여 현재 블록의 MPM 리스트를 구성할 수 있다.
본 발명의 추가적인 실시예에 따르면, 현재 블록의 예측 정보를 획득할 때 주변 블록들에서의 예측 모드의 발생 빈도수가 고려될 수 있다. 즉, 주변 블록들에서 발생 빈도수가 높은 예측 모드가 주변 블록들에서 발생 빈도수가 낮은 예측 모드에 비해 높은 우선 순위로 현재 블록의 예측을 위해 참조될 수 있다. 일 실시예에 따르면, 제1 단계 주변 블록의 예측 모드와 제2 단계 주변 블록의 예측 모드에 대한 각각의 발생 빈도수를 고려하여, 현재 블록의 MPM 리스트에 포함되는 예측 모드들 간의 우선 순위가 결정될 수 있다. 이에 대한 구체적인 실시예는 도 19를 참조로 설명하도록 한다.
도 19는 주변 블록들의 인트라 예측 모드의 발생 빈도수에 기초하여 인트라 예측 모드의 우선 순위를 설정하는 일 실시예를 도시한다. 먼저, 현재 블록의 제1 단계 주변 블록들인 L(1), A(1), BL(1), AR(1) 및 AL(1)과, 제2 단계 주변 블록들인 L(2), A(2), BL(2), AR(2) 및 AL(2)의 예측  모드들에 대한 발생 빈도수가 산출된다. 제1 단계 주변 블록들의 예측 모드의 발생 빈도수와 제2 단계 주변 블록들의 예측 모드의 발생 빈도수는 서로 다른 리스트(즉, 제1 리스트 및 제2 리스트)에 저장되며, 해당 단계의 주변 블록에 대한 예측 모드가 확인되었을 때 1씩 증가한다. 예를 들어, 블록 L(1)의 인트라 예측 모드가 모드 50인 경우, 제1 리스트의 50번 모드의 발생 빈도수가 1 증가하며 제2 리스트의 50번 모드의 발생 빈도수는 증가하지 않는다. 제1 단계 주변 블록들과 제2 단계 주변 블록들의 예측 모드의 발생 빈도수 산출이 완료되면, 상기 발생 빈도수들의 가중치 합을 통해 각 예측 모드에 대한 최종 발생 빈도수가 산출될 수 있다. 더욱 구체적으로, 특정 모드 i의 최종 발생 빈도수 FMi는 아래 수학식 1과 같이 산출될 수 있다.
Figure pat00001
여기서, FMi (1)은 제1 단계 주변 블록들에서의 모드 i의 발생 빈도수, FMi (2)는 제2 단계 주변 블록들에서의 모드 i의 발생 빈도수, w1 및 w2는 가중치.
예를 들어 도 19를 참조하면, 인트라 예측 모드 50에 대한 제1 단계 주변 블록들 및 제2 단계 주변 블록들에서의 발생 빈도수가 각각 2 및 3인 경우, 인트라 예측 모드 50의 최종 발생 빈도수는 w1*3+w2*2로 산출될 수 있다. 이때, 가중치 w1 및 w2에 의해 스케일이 증가된 것을 보상해 주기 위해, 비트 시프트 연산이 추가적으로 적용될 수 있다. 또한, 가중치 w1 및 w2는 실수 곱셈 연산을 피하기 위하여 0보다 큰 정수로 설정되어 가중치 합의 스케일을 증가시킬 수 있으며, 상기 스케일은 비트 시프트 연산에 의해 보정 될 수 있다.
본 발명의 실시예에 따르면, 가중치 w1 및 w2는 다양한 실시예에 기초하여 결정될 수 있다. 일 실시예에 따르면, 제1 단계 주변 블록이 제2 단계 주변 블록에 비해 현재 블록과 더 가깝기 때문에 w1이 w2보다 큰 값으로 설정될 수 있다. 예를 들어, w1과 w2는 각각 5와 3으로 설정될 수 있다. 다른 실시예에 따르면, 가중치 w1과 w2는 대응하는 예측 모드에 따라 가변적으로 설정될 수 있다. 즉, w1과 w2는 동일 리스트의 모든 예측 모드들에 대해 동일하게 설정되는 것이 아니라, 예측 모드에 따라 가변적으로 설정되어 특정 예측 모드의 발생이 더 중요하게 고려될 수 있다. 예를 들어, 발생 확률이 높은 {평면 모드, DC 모드, VER 모드, HOR 모드, HDIA 모드, DIA 모드, VDIA 모드}들에 더 큰 가중치가 부여될 수 있다. 또한, 확장 각도 모드에 비해 기본 각도 모드에 더 큰 가중치가 부여될 수 있다. 또 다른 실시예에 따르면, 가중치 w1과 w2는 현재 블록의 모양에 따라 가변적으로 설정되어 특정 각도 모드의 우선 순위를 더 높여줄 수 있다. 예를 들어, 현재 블록이 수직 블록인 경우 VER 모드 및 VER 모드 근처의 각도 모드들에 대해 더 큰 가중치가 설정될 수 있고, 현재 블록이 수평 블록인 경우 HOR 모드 및 HOR 모드 근처의 각도 모드들에 더 큰 가중치가 설정될 수 있다. 또 다른 실시예에 따르면, 가중치 w1과 w2는 대응하는 주변 블록의 위치에 따라 가변적으로 설정될 수 있다. 예를 들어, 주변 블록들 간의 우선 순위가 {블록 L, 블록 A, 블록 BL, 블록 AR, 블록 AL} 순으로 설정된 경우, 이 순서에 따라 높은 가중치가 부여될 수 있다. 예를 들어, 블록 L(2)와 블록 AL(2)의 예측 모드가 34번일 경우, 블록 L(2)에 더 큰 가중치가 곱해져서 발생 빈도수에 합산될 수 있다.
가중치 w1과 w2가 가변적으로 설정되는 경우, 각 리스트 내의 특정 예측 모드가 발생할 때 빈도수는 각각 w1 및 w2씩 증가한다. 일 실시예에 따르면, 가중치 w1 및 w2는 미리 설정될 수 있다. 이때, 인코더와 디코더 모두 동일한 가중치 w1 및 w2를 사용하므로, 추가적인 시그널링 없이 인코더와 디코더 모두 동일한 발생 빈도수 계산을 수행할 수 있다. 다른 실시예에 따르면, 가중치 w1 및 w2에 대한 정보는 PPS, VPS 또는 SPS 등의 RBSP를 를 통해서 시그널링될 수 있다.
전술한 실시예에 따라 산출된 최종 발생 빈도수에 기초하여 현재 블록의 MPM 리스트가 구성될 수 있다. 주변 블록들에서 발생 빈도가 높은 인트라 예측 모드는 현재 블록에서 선택될 확률이 높다. 따라서, 주변 블록들에서 산출된 최종 발생 빈도수가 높은 인트라 예측 모드들이 현재 블록의 MPM 리스트에 포함될 수 있다. 예를 들어, MPM 리스트의 크기가 m인 경우, MPM 리스트는 평면 모드, DC 모드 및 최종 발생 빈도수가 높은 상위 m-2개의 각도 모드들로 구성될 수 있다. 또한, MPM 리스트에서 인덱스가 낮을 수록 더 적은 수의 비트로 표현이 가능하므로, 최종 발생 빈도수가 높은 예측 모드가 MPM 리스트의 더 작은 MPM 인덱스에 매칭될 수 있다.
한편, 최종 발생 빈도수가 0이 아닌 동일한 값을 갖는 복수의 각도 모드들이 존재하는 경우, 제1 단계 주변 블록들에서의 해당 각도 모드들의 발생 빈도수가 우선적으로 고려될 수 있다. 예를 들어, 인트라 예측 모드 18과 인트라 예측 모드 50의 최종 발생 빈도수가 8로 동일한 경우, 제1 단계 주변 블록들에서의 발생 빈도수가 더 높은 인트라 예측 모드에 더 높은 우선 순위가 할당된다. 다른 실시예에 따르면, 최종 발생 빈도수가 0이 아닌 동일한 값을 갖는 복수의 각도 모드들이 존재하는 경우, 현재 블록의 모양에 따라 해당 각도 모드들 간의 우선 순위가 결정될 수 있다. 예를 들어, 현재 블록이 수직 블록인 경우, 제1 단계 주변 블록들 중 블록 A(1), 블록 AR(1) 및 블록 AL(1)의 각도 모드에 더 높은 우선 순위가 부여되거나 수직 모드에 가까운 각도 모드에 더 높은 우선 순위가 부여될 수 있다.
일 실시예에 따르면, MPM 리스트 내에서 평면 모드와 DC 모드의 MPM 인덱스는 제1 단계 주변 블록들의 인트라 예측 모드에 따라 다르게 설정될 수 있다. 예를 들어, 제1 단계 주변 블록들의 인트라 예측 모드 중 평면 모드, DC 모드의 발생 빈도가 임계값 이상일 경우, 평면 모드와 DC 모드가 MPM 인덱스 0 및 1에 매칭될 수 있다. 또한, 제1 단계 주변 블록들의 인트라 예측 모드들 중 각도 모드의 발생 빈도가 임계값 이상일 경우, 각도 모드의 MPM 인덱스가 평면 모드 및 DC 모드의 MPM 인덱스보다 작은 값으로 설정될 수 있다.
전술한 실시예에서, 0이 아닌 최종 발생 빈도수를 갖는 각도 모드들이 m-2개보다 적을 경우, {VER 모드, HOR 모드, HDIA 모드, VDIA 모드} 중 하나 이상을 사용하여 MPM 리스트가 구성될 수 있다. 또한, 비-MPM 모드를 부호화 하는데 드는 시그널링 오버헤드를 최소화하기 위해, 최종 발생 빈도수가 높은 예측 모드들이 사용될 수 있다. 예를 들어, 최종 발생 빈도수가 높은 예측 모드들은 선택 모드 리스트에 포함되거나, 비-선택 모드들 중 더 적은 수의 비트들로 시그널링 되는 낮은 값의 인덱스에 매칭될 수 있다. 다른 실시예에 따르면, MPM 리스트에 포함된 최종 발생 빈도수가 높은 각도 모드들에 기 설정된 오프셋을 더하거나 뺀 각도 모드들을 이용하여 선택 모드 리스트를 구성할 수 있다. 또한, MPM 리스트에 포함되지 않은 0이 아닌 최종 발생 빈도수를 갖는 각도 모드 및 해당 모드에 기 설정된 오프셋을 더하거나 뺀 각도 모드들이 비-선택 모드들 중 더 적은 수의 비트들로 시그널링 되는 낮은 값의 인덱스에 매칭될 수 있다.
이하, 주변 블록들의 인트라 예측 모드의 발생 빈도수에 기초하여 현재 블록의 인트라 예측 모드를 부호화하는 인코더의 동작은 다음과 같다. 먼저, 현재 블록에 대한 인트라 예측 모드를 부호화 하기 위해, 인코더는 현재 블록의 주변 블록이 존재하는지 확인하고 해당 주변 블록의 인트라 예측 모드의 발생 빈도수를 계산한다. 다음으로, 인코더는 주변 블록들의 인트라 예측 모드의 발생 빈도수에 기초하여 MPM 리스트, 선택 모드 리스트 또는 비-선택 모드들 중 적어도 하나를 구성한다. 이때, 발생 빈도수가 높은 예측 모드가 높은 우선 순위를 갖도록 구성될 수 있다. 다음으로, 인코더는 현재 블록의 인트라 예측 모드가 현재 블록의 MPM 리스트 내에 존재하는지 여부를 나타내는 MPM 플래그를 부호화한다. 만약 현재 블록의 인트라 예측 모드가 현재 블록의 MPM 리스트 내에 존재하지 않는 경우, 상기 인트라 예측 모드가 선택 모드들 중 어느 하나와 일치하는지 여부를 나타내는 선택 모드 플래그를 부호화한다. 한편, 현재 블록의 인트라 예측 모드가 현재 블록의 MPM 리스트 내에 존재하는 경우(즉, MPM 플래그의 값이 1인 경우), 인코더는 MPM 리스트 내에 현재 블록의 인트라 예측 모드에 대응하는 MPM 인덱스를 부호화한다. 또한, 현재 블록의 인트라 예측 모드가 현재 블록의 선택 모드 리스트 내에 존재하는 경우(즉, MPM 플래그의 값이 0이고 선택 모드 플래그의 값이 1인 경우), 인코더는 선택 모드 리스트 내에 현재 블록의 인트라 예측 모드에 대응하는 선택 모드 인덱스를 부호화한다. 그 외의 경우, 현재 블록의 인트라 예측 모드에 대응하는 비-선택 모드 인덱스를 부호화한다.
또한, 주변 블록들의 인트라 예측 모드의 발생 빈도수에 기초하여 현재 블록의 인트라 예측 모드를 복호화하는 디코더의 동작은 다음과 같다. 먼저, 현재 블록의 심볼들을 파싱(parsing)하는 과정에서 현재 블록의 MPM 플래그가 파싱 되며, MPM 플래그가 0일 경우 추가적으로 선택 모드 플래그가 파싱 된다. 부호화 과정과 마찬가지로, 디코더는 현재 블록의 주변 블록이 존재하는지 확인하고 해당 주변 블록의 인트라 예측 모드의 발생 빈도수를 계산한다. 다음으로, 디코더는 주변 블록들의 인트라 예측 모드의 발생 빈도수에 기초하여 MPM 리스트, 선택 모드 리스트 또는 비-선택 모드들 중 적어도 하나를 구성한다. 디코더에서 MPM 리스트, 선택 모드 리스트 및 비-선택 모드들의 구성 방법은 전술한 인코더에서의 방법과 동일하다. MPM 플래그가 1인 경우 디코더는 MPM 인덱스를 복호화한다. MPM 플래그가 0이고 선택 모드 플래그가 1인 경우 디코더는 선택 모드 인덱스를 복호화한다. 그 외의 경우에는, 디코더는 비-선택 모드 인덱스를 복호화하여 현재 블록의 인트라 예측 모드를 결정한다. 디코더는 결정된 인트라 예측 모드를 사용하여 인트라 예측을 수행하고, 예측 블록을 생성할 수 있다.
도 20 및 도 21은 인트라 예측 모드들을 복수의 서브 세트들로 분류하는 실시예를 도시한다. 인트라 예측 모드들의 개수가 증가함에 따라 현재 블록의 인트라 예측 모드가 MPM 리스트에 포함될 확률이 떨어지고, 이에 따라 인트라 예측 모드의 부호화에 필요한 비트량이 많아진다. 이를 해결하기 위해, 인트라 예측 모드를 복수의 서브 세트들로 분류하고, 현재 블록의 주변 컨텍스트에 따른 예측 모드 세트를 사용하여 인트라 예측이 수행될 수 있다.
먼저, 도 20은 인트라 예측 모드들을 복수의 서브 세트들로 분류하는 일 실시예를 도시한다. 도 20의 실시예에 따르면, 인트라 예측 모드 세트의 N개의 인트라 예측 모드들은 배타적 인트라 예측 모드들로 구성된 M개의 서브 세트들(S0, S1, … SM-1)로 분류될 수 있다. 도 20에서 mi,j는 i번째 서브 세트에 속하는 j번째 인트라 예측 모드를 가리킨다. 각각의 서브 세트 Si는 Ki개의 배타적 인트라 예측 모드들로 구성되며, 다음 수학식 2를 만족한다.
Figure pat00002
이때, 각각의 인트라 예측 모드 서브 세트를 구성하는 인트라 예측 모드의 개수 Ki는 서브 세트 별로 각각 다를 수 있다.
예를 들어, 인트라 예측 모드 세트가 총 67개의 인트라 예측 모드들을 포함하는 경우, 인트라 예측 모드들은 수평 모드 세트 {평면 모드, 모드 2, 모드 3, ... , 모드 34}와 수직 모드 세트 {DC 모드, 모드 35, 모드 36, ... , 모드 66}으로 구분될 수 있다. 다른 실시예에 따르면, 인트라 예측 모드들은 수평 모드 세트 {수평 모드, 모드 10, 모드 11, ... , 모드 26}, 수직 모드 세트 {DC 모드, 모드 42, 모드 43, ... , 모드 58}, DIA 모드 세트 {모드 27, 모드 28, ... , 모드 41}, HDIA 모드 세트 {모드 2, 모드 3, ... , 모드 9} 및 VDIA 모드 세트 {모드 59, 모드 60, ... , 모드 66}으로 구분될 수 있다. 또 다른 실시예로, 인트라 예측 모드들은 제1 서브 세트 {평면 모드, DC 모드, 기본 각도 모드들}과 제2 서브 세트 {확장 각도 모드들}로 구분될 수 있다.
다음으로, 도 21은 인트라 예측 모드들을 복수의 서브 세트들로 분류하는 다른 실시예를 도시한다. 도 21의 실시예에 따르면, 인트라 예측 모드 세트의 N개의 인트라 예측 모드들은 배타적 인트라 예측 모드와 중복된(또는, 공용) 인트라 예측 모드를 포함하는 M개의 서브 세트들(S0, S1, … SM-1)로 분류될 수 있다. 일 실시예에 따르면, 공용 인트라 예측 모드들은 인트라 예측에서 통계적으로 선택될 확률이 높은 상위 L개의 인트라 예측 모드들로 설정될 수 있다. 도 21에서 cmk는 각 서브 세트에 속하는 k번째 공용 인트라 예측 모드를 가리키며, mi,j는 i번째 서브 세트에 속하는 j번째 배타적 인트라 예측 모드를 가리킨다. 각각의 서브 세트 Si는 L개의 공용 인트라 예측 모드들과 Li개의 배타적 인트라 예측 모드들로 구성되며, 다음 수학식 3을 만족한다.
Figure pat00003
이때, 각각의 인트라 예측 모드 서브 세트에 포함된 배타적 인트라 예측 모드의 개수 Li는 서브 세트 별로 각각 다를 수 있다.
예를 들어, 인트라 예측 모드 세트가 총 67개의 인트라 예측 모드들을 포함하는 경우, 공용 인트라 예측 모드들은 {평면 모드, DC 모드, HDIA 모드, HOR 모드, DIA 모드, VER 모드, VDIA 모드} 중 하나 이상으로 설정될 수 있다. 이를 활용하여, 인트라 예측 모드들은 제1 서브 세트 {평면 모드, DC 모드, 기본 각도 모드들}과 제2 서브 세트 {평면 모드, DC 모드, HDIA 모드, HOR 모드, DIA 모드, VER 모드, VDIA 모드, 확장 각도 모드들}로 구분될 수 있다. 다른 실시예에 따르면, 인트라 예측 모드들은 제1 서브 세트 {평면 모드, DC 모드, HDIA 모드, 모드 3, 모드 4, ... , 모드 33, DIA 모드, VER 모드, VDIA 모드}와 제2 서브 세트 {평면 모드, DC 모드, HDIA 모드, HOR 모드, DIA 모드, 모드 35, 모드 36, ... , 모드 65, VDIA 모드}로 구분될 수 있다.
도 22는 분류된 인트라 예측 모드들의 서브 세트를 이용하여 현재 블록의 인트라 예측 모드를 시그널링하는 실시예를 도시한다. 본 발명의 실시예에 따르면, 현재 블록의 주변 블록에서 사용된 인트라 예측 모드 서브 세트를 이용하여 현재 블록의 인트라 예측 모드 서브 세트를 결정할 수 있다.
도 20의 실시예에 따라 각각의 인트라 예측 모드 서브 세트가 배타적인 인트라 예측 모드들로 구성된 경우, 주변 블록들의 인트라 예측 모드가 포함되어 있는 인트라 예측 모드 서브 세트 정보를 확인하고, 해당 정보를 이용하여 현재 블록의 인트라 예측 모드 서브 세트가 결정될 수 있다. 즉, 주변 블록들에서 가장 많이 사용되는 인트라 예측 모드 서브 세트가 현재 블록의 인트라 예측 모드 서브 세트로 할당될 수 있다. 이때, 현재 블록의 예측 정보를 획득하기 위해 확장된 주변 블록들을 참조하는 도 16 내지 도 18의 실시예들이 추가로 적용될 수 있다.
도 22를 참조하면, 우선 현재 블록의 제1 단계 주변 블록들 L(1), A(1), BL(1), AR(1) 및 AL(1)의 인트라 예측 모드 서브 세트 정보를 참조하고, 다음으로 현재 블록의 제2 단계 주변 블록들 L(2), A(2), BL(2), AR(2) 및 AL(2)의 인트라 예측 모드 서브 세트 정보를 참조하여 현재 블록의 인트라 예측 모드 서브 세트가 결정될 수 있다. 일 실시예에 따르면, 도 19를 참조로 서술된 발생 빈도수 산출 방법을 기초로, 제1 단계 주변 블록들의 인트라 예측 모드 서브 세트 빈도수와 제2 단계 주변 블록들의 인트라 예측 모드 서브 세트 빈도수에 각각 가중치 w1 및 w2를 적용하여 인트라 예측 모드 서브 세트의 최종 발생 빈도수가 산출될 수 있다. 이때, 가장 큰 발생 빈도수를 갖는 인트라 예측 모드 서브 세트를 현재 블록의 인트라 예측 모드 서브 세트로 할당할 수 있다.
한편, 최종 발생 빈도수가 0이 아닌 동일한 값을 갖는 복수의 인트라 예측 모드 서브 세트들이 존재하는 경우, 도 19를 참조로 설명된 실시예와 유사하게 제1 단계 주변 블록들에서의 발생 빈도수를 우선적으로 고려하거나 현재 블록의 모양에 기초하여 어느 하나의 인트라 예측 모드 서브 세트가 선택될 수 있다.
다음으로, 도 21의 실시예에 따라 각각의 인트라 예측 모드 서브 세트가 공용 인트라 예측 모드를 포함하는 경우, 공용 인트라 예측 모드들로 인해 주변 블록들의 인트라 예측 모드 정보만으로 인트라 예측 모드 서브 세트를 식별할 수 없는 경우가 발생한다. 즉, 주변 블록의 인트라 예측 모드가 공용 인트라 예측 모드들 중 하나일 경우, 주변 블록의 인트라 예측 모드 서브 세트를 도출할 수 없게 된다. 따라서 현재 블록의 인트라 예측 모드 서브 세트의 인덱스가 별도로 시그널링 되어야 하며, 현재 블록의 인트라 예측 모드 서브 세트 정보가 저장되어야 한다.
위와 같은 상황에서, 일 실시예에 따르면 현재 블록의 인트라 예측 모드 서브 세트의 인덱스를 별도로 시그널링하지 않을 수 있다. 인트라 예측 모드 서브 세트의 개수가 증가할수록 인트라 예측 모드 서브 세트 인덱스 정보를 표현하는데 필요한 비트의 개수가 증가하므로, 기 설정된 규칙에 따라 공용 인트라 예측 모드를 가지는 주변 블록의 인트라 예측 모드 서브 세트 정보가 결정될 수 있다. 예를 들어, 주변 블록에 공용 인트라 예측 모드가 사용된 경우, 기본 서브 세트가 해당 주변 블록의 인트라 예측 모드 서브 세트로 결정될 수 있다. 또는, 해당 블록의 공용 인트라 예측 모드의 종류에 따라 인트라 예측 모드 서브 세트가 결정될 수 있다. 예를 들어, 주변 블록에 사용된 공용 인트라 예측 모드가 수직 모드일 경우, 수직 모드 근처의 각도 모드를 많이 포함하는 서브 세트가 해당 주변 블록의 인트라 예측 모드 서브 세트로 결정될 수 있다. 또한, 주변 블록에 사용된 공용 인트라 예측 모드가 수평 모드일 경우, 수평 모드 근처의 예측 모드를 많이 포함하는 서브 세트가 해당 주변 블록의 인트라 예측 모드 서브 세트로 결정될 수 있다.
현재 블록의 인트라 예측 모드 서브 세트가 결정되면, 인트라 예측 모드 서브 세트 내에서 우선 순위를 고려하여 현재 블록의 MPM 리스트 및 비-MPM 모드가 구성될 수 있다. 
일 실시예에 따르면, 기 설정된 우선 순위의 주변 블록 위치 및/또는 기 설정된 우선 순위의 인트라 예측 모드에 기초하여 MPM 리스트가 구성될 수 있다. 현재 블록과 동일한 인트라 예측 모드 서브 세트를 가지는 주변 블록들의 예측 모드를 좌측 블록, 상측 블록, 하좌측 블록, 상우측 블록 및 상좌측 블록 순서로 MPM 리스트에 추가할 수 있다. 또한, 현재 블록의 인트라 예측 모드 서브 세트에 평면 모드와 DC 모드가 포함되어 있는 경우, 해당 인트라 예측 모드들은 각도 모드보다 우선적으로 고려될 수 있다. 다만, 인트라 예측 모드 서브 세트에 공용 인트라 예측 모드가 포함된 경우, 현재 블록과 서로 다른 인트라 예측 모드 서브 세트를 갖는 주변 블록의 인트라 예측 모드가 공용 인트라 예측 모드들 중 하나이면, 해당 주변 블록의 인트라 예측 모드를 기 설정된 우선 순위에 따라 현재 블록의 MPM 리스트에 추가할 수 있다. 예를 들어, 공용 인트라 예측 모드가 {평면 모드, DC 모드, HDIA 모드, HOR 모드, DIA 모드, VER 모드, VDIA 모드}이고, 좌측 블록의 인트라 예측 모드 서브 세트가 현재 블록과 다르더라도 좌측 블록의 인트라 예측 모드가 공용 인트라 예측 모드들 중의 하나이면, 해당 인트라 예측 모드는 현재 블록의 MPM 리스트에 포함될 수 있다.
다른 실시예에 따르면, 현재 블록의 모양 및 주변 블록의 모양에 기초하여 MPM 리스트가 구성될 수 있다. 현재 블록이 수직 블록인 경우, 상측 블록, 상우측 블록 및 상좌측 블록들 중 현재 블록과 동일한 인트라 예측 모드 서브 세트를 갖는 블록의 인트라 예측 모드에 높은 우선 순위가 부여되며, 현재 인트라 예측 모드 서브 세트 내의 수직 모드 또는 수직 모드에 가까운 각도 모드들이 우선적으로 MPM 리스트에 추가될 수 있다. 또 다른 실시예에 따르면, 도 19를 참조로 서술된 발생 빈도수 산출 방법을 기초로, 현재 블록의 제1 단계 주변 블록들의 예측 모드들과 제2 단계 주변 블록들의 예측 모드들 중 현재 블록의 인트라 예측 모드 서브 세트에 포함되는 예측 모드의 빈도수를 고려하여 MPM 리스트, 선택 모드 리스트 또는 비-선택 모드들 중 적어도 하나가 구성될 수 있다.
이와 같이, N 개의 예측 모드들을 M 개의 인트라 예측 모드 서브 세트로 나누고, 주변 블록들의 인트라 예측 모드 서브 세트 정보를 활용하여 현재 블록의 인트라 예측 모드 서브 세트를 결정할 경우 현재 블록에 불필요한 인트라 예측 모드가 제거된 최적의 예측 모드 리스트가 구성될 수 있다. 따라서, 현재 블록의 인트라 예측 모드가 MPM 리스트 내의 인트라 예측 모드와 일치할 확률이 높아지고, 인트라 예측 모드 시그널링에 필요한 비트량이 감소될 수 있다.
도 23은 분류된 인트라 예측 모드들의 서브 세트를 이용하여 현재 블록의 인트라 예측 모드를 시그널링하는 상세 실시예를 도시한다. 도 23의 실시예에서는 인트라 예측 모드 서브 세트들이 배타적 인트라 예측 모드들로 구성되어 있다고 가정한다. 더욱 구체적으로, 인트라 예측 모드 세트의 67개의 인트라 예측 모드들이 배타적 인트라 예측 모드들로 구성된 2개의 서브 세트들로 분류될 수 있다. 2개의 인트라 예측 모드 서브 세트는 각각 배타적인 35개 인트라 예측 모드들 및 32개의 인트라 예측 모드들로 구성될 수 있다. 예를 들어, 제1 서브 세트는 {평면 모드, DC 모드, 33개의 기본 각도 모드들}로 구성되고, 제2 서브 세트는 {32개의 확장 각도 모드들}로 구성될 수 있다. 또는, 인트라 예측 모드들은 수평 모드 세트 {평면 모드, DC 모드, 모드 2, 모드 3, … , 모드 34} 및 수직 모드 세트 {모드 35, 모드 36, … , 모드 66}으로 구분될 수 있다.
인트라 예측 모드들이 2개의 서브 세트들로 분류될 경우, 시그널링되는 MPM 모드, 선택 모드 및 비-선택 모드의 개수는 조정될 수 있다. 즉, 현재 블록의 인트라 예측을 시그널링하기 위해 4개의 MPM 모드, 8개의 선택 모드 및 23개(또는 20개)의 비-선택 모드가 사용될 수 있다. 도 23(a)는 현재 블록의 인트라 예측을 위한 각각의 플래그 및 인덱스를 시그널링하는 실시예를 도시하며, 도 23(b)는 절삭 이항 이진화로 시그널링되는 비-선택 모드 인덱스들의 실시예를 도시한다.
만약 현재 블록의 인트라 예측 모드가 MPM 리스트 내에 존재할 때에는 MPM 플래그와 MPM 인덱스가 시그널링될 수 있다. 이때, MPM 플래그는 1비트로 시그널링되며, MPM 인덱스는 절삭 이항 이진화로 코딩되어 1비트 내지 3비트로 시그널링된다. 이진화 된 MPM 인덱스는 CABAC을 통해 부호화될 수 있다. 한편, 현재 블록의 인트라 예측 모드가 MPM 리스트 내에 존재하지 않을 때에는 MPM 플래그가 0으로 설정될 수 있으며, 선택 모드와 비-선택 모드를 활용하여 인트라 예측 모드가 부호화될 수 있다. 인트라 예측 모드가 8개의 선택 모드들 중 하나와 일치할 경우, MPM 플래그, 선택 모드 플래그 및 선택 모드 인덱스가 시그널링된다. 이때, MPM 플래그 및 선택 모드 플래그는 1비트로 시그널링되며, 선택 모드 인덱스는 고정된 3비트로 시그널링된다.
나머지 비-선택 모드들의 경우는 MPM 플래그, 선택 모드 플래그 및 비-선택 모드 인덱스가 시그널링된다. 이때, 비-선택 모드 인덱스는 절삭 이항 이진화로 코딩되어 시그널링될 수 있다. 현재 블록에 대해 35개의 인트라 예측 모드들을 포함하는 제1 서브 세트가 사용되는 경우, 해당 서브 세트에서 비-선택 모드들의 개수는 23일 수 있다. 2^4 < 23 < 2^5 를 만족하므로, 비-선택 모드들의 상위 9개 모드들의 인덱스는 4비트로 시그널링될 수 있으며, 하위 14개 모드들의 인덱스는 5비트로 시그널링될 수 있다. 그러나 현재 블록에 대해 32개의 인트라 예측 모드들을 포함하는 제2 서브 세트가 사용되는 경우, 해당 서브 세트에서 비-선택 모드들의 개수는 20일 수 있다. 2^4 < 20 < 2^5를 만족하므로 비-선택 모드들의 상위 12개 모드들의 인덱스는 4비트로 시그널링될 수 있으며, 하위 8개 모드들의 인덱스는 5비트로 시그널링될 수 있다.
도 24는 주변 블록들의 예측 정보에 기초하여 현재 블록의 인트라 예측 모드를 동적으로 시그널링하는 실시예를 도시한다. 더욱 구체적으로, 도 24의 실시예에 따르면 다양한 조건에 따라 MPM 모드 구성이 변경될 수 있다. 도 24(a)는 현재 블록이 속한 픽쳐의 종류에 따라 MPM 구성을 변경하는 방법을 도시한다. 도 24(b) 및 도 24(c)는 주변 블록들에서 사용된 인트라 예측 모드들에 따라 MPM 모드를 가변적으로 구성하는 방법을 도시한다.
먼저, 도 24(a)는 본 발명의 일 실시예에 따라 현재 블록이 속한 픽쳐의 종류에 따라 MPM 구성을 변경하는 방법을 도시한다. 기존의 MPM 모드, 비-MPM 모드, 선택 모드, 비-선택 모드 등의 구성은 해당 블록이 속한 픽쳐의 타입(즉, I 픽쳐, P 픽쳐, 또는 P 픽쳐)을 구분하지 않고 동일하게 적용되었다. 그러나 본 발명의 일 실시예에 따르면, 도 24(a)에서 도시한 바와 같이 주변 블록들이 인터 예측과 인트라 예측을 자유롭게 수행할 수 있는 P 픽쳐 및 B 픽쳐에서의 MPM 구성 방법을 주변 블록들이 인트라 예측만을 수행하는 I 픽쳐에서의 MPM 구성 방법과 다르게 적용할 수 있다. 예를 들어, P 픽쳐 및 B 픽쳐에서의 MPM 모드의 개수는 I 픽쳐에서의 MPM 모드의 개수와 다르게 설정될 수 있다. 즉, P 픽쳐 및 B 픽쳐에서의 MPM 모드의 개수는 I 픽쳐에서의 MPM 모드의 개수보다 작은 값으로 설정될 수 있다.
다음으로, 도 24(b)는 주변 블록들에서 사용된 인트라 예측 모드들에 따라 MPM 모드를 가변적으로 구성하는 본 발명의 일 실시예를 도시한다. 현재 타일(또는, 슬라이스)가 P 타일(또는, 슬라이스) 혹은 B 타일(또는, 슬라이스)인 경우, 디코더는 주변 블록들의 위치에서 사용된 예측 모드들을 탐색한다. 이때, 주변 블록들의 모든 탐색 위치(예: L, A, BL, AR 및 AL) 중에서 인트라 예측 블록으로 확인된 위치의 개수를 m1이라 지시한다. 또한, 주변 블록들의 모든 탐색 위치에서 인트라 예측에 사용된 서로 다른 인트라 예측 모드들의 개수를 m2라 지시한다. 예를 들어, 주변 블록들의 탐색 위치들이 모두 인트라 예측 블록으로 확인된 경우 m1은 큰 값을 가질 수 있으나, 만약 각 위치에서 사용된 인트라 예측 모드들이 모두 동일한 경우 m2는 1로 설정된다. 본 발명의 일 실시예에 따르면, 상기 m1 및/또는 m2의 값을 기초로 다음과 같은 가변적인 MPM 모드 시그널링 방법이 적용될 수 있다. 각각의 실시예에서 Th1, Th2 및 Th3는 각각 제1 임계값, 제2 임계값 및 제3 임계값을 나타낸다. 이때, Th1 < Th2 < Th3를 만족할 수 있다.
1) m1의 값이 Th1 이하인 경우, 제1 MPM 모드 시그널링 방법이 적용될 수 있다. 주변 블록의 위치들에서 인트라 예측 블록의 개수가 Th1 이하인 경우, 주변 블록의 위치에서 사용된 인트라 예측 모드 또는 이로부터 파생된(예, 각도 모드에 기 설정된 오프셋이 적용된) 모드들의 컨텍스트가 현재 블록과 무관할 가능성이 있다. 즉, 주변 블록들이 대부분 인터 예측 블록일 가능성이 높으므로 현재 블록의 인트라 예측은 주변 블록들과의 연관성이 낮을 수 있다. 이 경우 MPM 모드는 다수의 컨텍스트로 추출된 m개의 인트라 예측 모드들을 균등한 오버헤드로 시그널링하는 것이 적절할 수 있다. 따라서, MPM 모드에 고정 길이 부호화가 적용될 수 있다.
2) m1의 값이 Th1보다 크지만 Th2 이하인 경우, 제2 MPM 모드 시그널링 방법이 적용될 수 있다. 주변 블록의 위치들에서 인트라 예측 블록의 개수가 Th1보다 큰 경우, 주변 블록의 위치에서 사용된 인트라 예측 모드 또는 이로부터 파생된 모드들의 컨텍스트가 차등적으로 고려될 필요가 있다. 즉, 인트라 예측이 수행된 주변 블록들이 존재하므로, 현재 블록의 인트라 예측 모드의 시그널링은 주변의 인트라 예측 블록들을 기초로 구성하되 그들의 위치를 고려한 차등적 시그널링이 필요하다. 이 경우 MPM 모드는 주변 블록들에서 사용된 인트라 예측 모드와 이로부터 파생된 모드들을 순차적으로 고려하는 컨텍스트로 추출된 m개의 인트라 예측 모드들을 차등적인 오버헤드로 시그널링하는 것이 적절할 수 있다. 따라서, MPM 모드는 절삭 단항 이진화로 시그널링될 수 있다.
3) m1의 값이 Th2보다 크지만 m2의 값이 Th3보다 작은 경우, 제3 MPM 모드 시그널링 방법이 적용될 수 있다. 주변 블록의 위치들에서 인트라 예측 블록의 개수가 Th2보다 크지만 사용된 인트라 예측 모드들의 다양성이 크지 않은 경우이므로, 주변 블록들의 인트라 예측 모드 또는 이로부터 파생된 모드들의 컨텍스트를 차등적으로 고려할 필요가 있다. 이 경우 MPM 모드의 시그널링 방법은 상기 두 번째 방법과 동일할 수 있다.
4) m1의 값이 Th2보다 크고 m2의 값도 Th3보다 큰 경우, 제4 MPM 모드 시그널링 방법이 적용될 수 있다. 주변 블록의 위치들에서 인트라 예측 블록의 개수가 Th2보다 크면, 사용된 인트라 예측 모드들의 다양성이 큰 경우이므로, 주변 블록들의 인트라 예측 모드 또는 이로부터 파생된 모드들의 컨텍스트를 균등하게 고려하고 최대한 그 값들을 MPM 모드를 통해 시그널링 할 필요가 있다. 즉, 인트라 예측이 수행된 주변 블록들이 많이 있지만, 해당 블록들에서 대부분 상이한 인트라 예측 모드들이 사용되었으므로 현재 블록의 인트라 예측은 주변 인트라 예측 블록들을 모두 고려한 비 차등적 시그널링이 필요하다. 이 경우 MPM 모드는 주변 블록들에서 사용된 인트라 예측 모드와 이로부터 파생된 모드들을 고려하는 컨텍스트로 추출된 m개의 인트라 예측 모드들을 균등한 오버헤드로 시그널링하는 것이 적절할 수 있다. 따라서, MPM 모드에 고정 길이 부호화가 적용될 수 있다.
상기 방법들에서 MPM 모드로 시그널링되는 모드의 개수 m은 도출된 m1 및 m2의 값에 기초하여 결정될 수 있다. 또한, 결정된 m의 값에 기초하여 선택 모드의 개수 s, 비-선택 모드의 개수 ns 및 이들의 부호화 방법이 결정될 수 있다. 일 실시예에 따르면, 선택 모드에는 고정 길이 부호화가 적용되어, MPM 모드의 개수 m에 기초하여 설정된 후속 s개의 인트라 예측 모드들의 시그널링을 담당하는 것이 적절할 수 있다.
도 24(c)는 주변 블록들에서 사용된 인트라 예측 모드들에 따라 MPM 모드를 가변적으로 구성하는 본 발명의 다른 실시예를 도시한다. 도 24(b)의 실시예에서 전술한 바와 같이, 주변 블록들의 모든 탐색 위치에서 인트라 예측에 사용된 서로 다른 인트라 예측 모드들의 개수를 m2라 지시한다. 본 발명의 다른 실시예에 따르면, 상기 m2의 값을 기초로 다음과 같은 가변적인 MPM 모드 시그널링 방법이 적용될 수 있다.
5) m2의 값이 Th1 이하인 경우, 제5 MPM 모드 시그널링 방법이 적용될 수 있다. 주변 블록의 위치들에서 인트라 예측 블록의 개수가 Th1 이하인 경우, 주변 블록의 위치에서 사용된 인트라 예측 모드 또는 이로부터 파생된 모드들의 컨텍스트를 적절히 반영하여 m을 적은 수로 설정할 수 있다. 주변 블록들의 서로 다른 인트라 예측 모드의 개수가 적은 경우, 이를 확장하여 MPM 모드의 개수를 채운다고 해도 상기 파생된 모드가 현재 블록의 예측 모드와 다를 가능성이 높기 때문이다. 이 경우 단일 또는 소수의 컨텍스트로 추출된 적은 개수 m개의 MPM 모드들이 사용될 수 있으며, 상기 MPM 모드들을 균등한 오버헤드로 시그널링하는 것이 적절하다. 따라서, MPM 모드에 고정 길이 부호화가 적용될 수 있다.
6) m2의 값이 Th1보다 크지만 Th2 이하인 경우, 제6 MPM 모드 시그널링 방법이 적용될 수 있다. 주변 블록의 위치들에서 인트라 예측 블록의 개수가 일정 개수보다 큰 경우, 주변 블록의 위치에서 사용된 인트라 예측 모드 또는 이로부터 파생된 모드들의 컨텍스트가 차등적으로 고려될 필요가 있다. 제6 MPM 모드 시그널링 방법의 구체적인 실시예는 전술한 제2 MPM 모드 시그널링 방법과 동일하다.
7) m2의 값이 Th2보다 큰 경우, 제7 MPM 모드 시그널링 방법이 적용될 수 있다. 주변 블록의 위치들에서 인트라 예측 블록의 개수가 Th2보다 크면, 사용된 인트라 예측 모드들의 다양성이 큰 경우이므로, 주변 블록들의 인트라 예측 모드 또는 이로부터 파생된 모드들의 컨텍스트를 균등하게 고려하고 최대한 그 값들을 MPM 모드를 통해 시그널링 할 필요가 있다. 제7 MPM 모드 시그널링 방법의 구체적인 실시예는 전술한 제4 MPM 모드 시그널링 방법과 동일하다.
상기 방법들에서 MPM 모드로 시그널링되는 모드의 개수 m은 도출된 m2의 값에 기초하여 결정될 수 있다. 또한, 결정된 m의 값에 기초하여 선택 모드의 개수 s, 비-선택 모드의 개수 ns 및 이들의 부호화 방법이 결정될 수 있다. 일 실시예에 따르면, 선택 모드에는 고정 길이 부호화가 적용되어, MPM 모드의 개수 m에 기초하여 설정된 후속 s개의 인트라 예측 모드들의 시그널링을 담당하는 것이 적절할 수 있다.
도 25는 MPM 모드의 개수를 가변적으로 조정하고 이에 기초하여 현재 블록의 인트라 예측 모드를 시그널링하는 실시예를 도시한다. 도 24에서 서술한 바와 같이, MPM 모드 시그널링 방법에 따라 적은 개수의 MPM 모드들이 사용될 수 있다.
도 25(a)를 참조하면, MPM 모드의 개수는 고정된 것이 아니라 주변 블록들의 인트라 예측 모드 정보에 기초하여 가변할 수 있다. 총 67개의 인트라 예측 모드들 중 2개의 모드들이 MPM 모드로 설정되어 고정 길이 부호화로 시그널링될 수 있다. 고정 길이 부호화 방식은 시그널링 하는 모드들 간에 균등한 우선순위를 부여한다. 다음으로, 선택 모드의 개수 s는 16 또는 9로 결정될 수 있으며, 선택 모드는 고정 길이 부호화로 시그널링 된다. 이때, 상대적으로 적은 개수의 MPM 모드들이 시그널링 되므로, 도 25(a)의 실시예에 따르면 선택 모드의 개수(즉, 16개)를 크게 하여 MPM 모드로 시그널링이 되지 않는 인트라 예측 모드들이 선택 모드로 시그널링될 확률을 높일 수 있다. 그러나 선택 모드로 시그널링이 수행되면 기존의 고정된 개수의 MPM 모드를 사용하는 방법과 시그널링 오버헤드가 동일하므로, 도 25(b)의 실시예에 따르면 선택 모드의 개수(즉, 9개)를 줄여서 전체 오버헤드를 줄일 수 있다.
그러나 선택 모드의 개수를 줄인 실시예에서 비-선택 모드가 시그널링되는 경우, 시그널링 오버헤드가 증가될 수 있다. 선택 모드의 개수가 9인 도 25(b)의 실시예에서는, 선택 모드의 개수가 16개인 도 25(a)의 실시예보다 많은 56개의 비-선택 모드들을 절삭 이항 이진화로 시그널링해야 한다. 이때, 2^5 < 56 < 2^6 이므로, 비-선택 모드들의 초기 2^6-56=8개의 인덱스들은 5개의 비트들만을 사용하여 시그널링될 수 있으며, 나머지 48개의 인덱스들은 6개의 비트들을 사용하여 시그널링된다. 따라서, 15개의 인덱스들을 5개의 비트들을 사용하여 시그널링하고 34개의 인덱스들을 6개의 비트들로 시그널링하는 도 25(a)의 비-선택 모드와 비교하면 도 25(b)의 비-선택 모드의 시그널링 오버헤드가 증가한 것을 알 수 있다.
상기 실시예들에서 MPM 모드로 시그널링되는 인트라 예측 모드의 개수 m은 도 24를 참조로 전술한 방법에 기초하여 결정될 수 있다. 또한, 결정된 m의 값에 기초하여 선택 모드의 개수 s가 결정될 수 있다. 또한, 선택 모드의 개수 s는 다음과 같은 추가적인 조건들에 기초하여 결정될 수 있다.
먼저, 선택 모드의 개수는 MPM 모드로 결정된 인트라 예측 모드의 값 및 컨텍스트를 기반으로 결정될 수 있다. 만약 MPM 모드를 결정할 때 주변 블록들의 인트라 예측 모드가 반영된 경우, MPM 모드 또는 이로부터 파생된 선택 모드를 통해 현재 블록의 인트라 예측 모드가 시그널링될 가능성이 높다. 따라서, MPM 모드로부터 파생된 추가적인 인트라 예측 모드들을 획득하고, 상기 추가적인 인트라 예측 모드들을 상대적으로 적은 개수의 선택 모드로 구성하여 시그널링할 수 있다. 이와 같이 선택 모드의 개수를 제한함으로 시그널링 오버헤드를 줄일 수 있다. 그러나 MPM 모드를 결정할 때 주변 블록들의 인트라 예측 모드가 반영되지 못하고 평면 모드, DC 모드, VER 모드, HOR 모드 등 기본 각도 모드들로 MPM 리스트가 구성된 경우, 상대적으로 많은 개수의 선택 모드를 구성하여 시그널링할 수 있다. MPM 리스트가 주변 블록들과 관계없는 컨텍스트로 구성되었으므로, 선택 모드의 개수를 최대한 늘려서 현재 블록의 인트라 예측 모드가 선택 모드에 포함될 가능성을 높일 수 있다. 한편, 비-선택 모드의 개수 ns는 인트라 예측 모드의 총 개수 T에서 MPM 모드의 개수 m 및 선택 모드의 개수 s를 뺀 값으로 결정된다.
상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 프로세서의 내부 또는 외부에 위치할 수 있으며, 이미 공지된 다양한 수단에 의해 프로세서와 데이터를 주고 받을 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아는 것으로 해석해야 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 비디오 신호 인코딩 장치 200: 비디오 신호 디코딩 장치

Claims (18)

  1. 비디오 신호의 처리 방법에 있어서,
    현재 블록을 위한 인트라 예측 모드 정보를 수신하는 단계, 상기 인트라 예측 모드 정보는 인트라 예측 모드 세트를 구성하는 복수의 인트라 예측 모드들 중 어느 하나를 지시함; 및
    수신된 인트라 예측 모드 정보에 기초하여 상기 현재 블록을 디코딩하는 단계를 포함하되,
    상기 인트라 예측 모드 세트는 복수의 각도 모드들을 포함하고, 상기 복수의 각도 모드들은 기본 각도 모드와 확장 각도 모드를 포함하며,
    상기 확장 각도 모드는 상기 기본 각도 모드에 기초하여 시그널링되는 비디오 신호 처리 방법.
  2. 제1 항에 있어서,
    상기 기본 각도 모드는 기 설정된 제1 각도 범위 이내의 각도에 대응하는 모드이고, 상기 확장 각도 모드는 상기 기본 각도 모드에 기초하여 결정되는 비디오 신호 처리 방법.
  3. 제2 항에 있어서,
    상기 확장 각도 모드는 상기 제1 각도 범위를 벗어나는 광각 모드인 비디오 신호 처리 방법.
  4. 제3 항에 있어서,
    상기 광각 모드는 상기 제1 각도 범위 이내의 적어도 하나의 기본 각도 모드를 대체하며, 대체되는 상기 기본 각도 모드에 대응하는 인트라 예측 모드 인덱스는 상기 광각 모드를 시그널링하는 비디오 신호 처리 방법.
  5. 제2 항에 있어서,
    상기 확장 각도 모드는 상기 제1 각도 범위 내에서 기본 각도 모드들 사이의 각도 모드인 비디오 신호 처리 방법.
  6. 제1 항에 있어서,
    상기 인트라 예측 모드 세트의 확장 각도 모드들 간의 간격은 대응하는 기본 각도 모드들 간의 간격에 기초하여 설정되는 비디오 신호 처리 방법.
  7. 제6 항에 있어서,
    상기 확장 각도 모드들 간의 각도 간격은 대응하는 상기 기본 각도 모드들 간의 각도 간격과 동일하도록 설정되는 비디오 신호 처리 방법.
  8. 제1 항에 있어서,
    상기 확장 각도 모드의 사용 여부는 상기 현재 블록의 모양 및 크기 중 적어도 하나에 기초하여 결정되는 비디오 신호 처리 방법.
  9. 제1 항에 있어서,
    상기 인트라 예측 모드 세트에서 확장 각도 모드들의 개수는 기본 각도 모드들의 개수 이하로 설정되는 비디오 신호 처리 방법.
  10. 비디오 신호 처리 장치에 있어서,
    프로세서를 포함하며,
    상기 프로세서는,
    현재 블록을 위한 인트라 예측 모드 정보를 수신하되, 상기 인트라 예측 모드 정보는 인트라 예측 모드 세트를 구성하는 복수의 인트라 예측 모드들 중 어느 하나를 지시하고,
    수신된 인트라 예측 모드 정보에 기초하여 상기 현재 블록을 디코딩하되,
    상기 인트라 예측 모드 세트는 복수의 각도 모드들을 포함하고, 상기 복수의 각도 모드들은 기본 각도 모드와 확장 각도 모드를 포함하며,
    상기 확장 각도 모드는 상기 기본 각도 모드에 기초하여 시그널링되는 비디오 신호 처리 장치.
  11. 제10 항에 있어서,
    상기 기본 각도 모드는 기 설정된 제1 각도 범위 이내의 각도에 대응하는 모드이고, 상기 확장 각도 모드는 상기 기본 각도 모드에 기초하여 결정되는 비디오 신호 처리 장치.
  12. 제11 항에 있어서,
    상기 확장 각도 모드는 상기 제1 각도 범위를 벗어나는 광각 모드인 비디오 신호 처리 장치.
  13. 제12 항에 있어서,
    상기 광각 모드는 상기 제1 각도 범위 이내의 적어도 하나의 기본 각도 모드를 대체하며, 대체되는 상기 기본 각도 모드에 대응하는 인트라 예측 모드 인덱스는 상기 광각 모드를 시그널링하는 비디오 신호 처리 장치.
  14. 제11 항에 있어서,
    상기 확장 각도 모드는 상기 제1 각도 범위 내에서 기본 각도 모드들 사이의 각도 모드인 비디오 신호 처리 장치.
  15. 제10 항에 있어서,
    상기 인트라 예측 모드 세트의 확장 각도 모드들 간의 간격은 대응하는 기본 각도 모드들 간의 간격에 기초하여 설정되는 비디오 신호 처리 장치.
  16. 제15 항에 있어서,
    상기 확장 각도 모드들 간의 각도 간격은 대응하는 상기 기본 각도 모드들 간의 각도 간격과 동일하도록 설정되는 비디오 신호 처리 장치.
  17. 제10 항에 있어서,
    상기 확장 각도 모드의 사용 여부는 상기 현재 블록의 모양 및 크기 중 적어도 하나에 기초하여 결정되는 비디오 신호 처리 장치.
  18. 제10 항에 있어서,
    상기 인트라 예측 모드 세트에서 확장 각도 모드들의 개수는 기본 각도 모드들의 개수 이하로 설정되는 비디오 신호 처리 장치.
KR1020180127816A 2017-10-24 2018-10-24 비디오 신호 처리 방법 및 장치 KR20190045885A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR20170138737 2017-10-24
KR1020170138737 2017-10-24
KR1020170140524 2017-10-26
KR20170140524 2017-10-26
KR1020180008498 2018-01-23
KR20180008498 2018-01-23
KR20180027814 2018-03-09
KR1020180027814 2018-03-09

Publications (1)

Publication Number Publication Date
KR20190045885A true KR20190045885A (ko) 2019-05-03

Family

ID=66247938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180127816A KR20190045885A (ko) 2017-10-24 2018-10-24 비디오 신호 처리 방법 및 장치

Country Status (5)

Country Link
US (3) US11284108B2 (ko)
JP (3) JP7043616B2 (ko)
KR (1) KR20190045885A (ko)
CN (1) CN111373750A (ko)
WO (1) WO2019083284A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020242183A1 (ko) * 2019-05-27 2020-12-03 엘지전자 주식회사 광각 인트라 예측 및 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021086064A1 (ko) * 2019-10-29 2021-05-06 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111373750A (zh) * 2017-10-24 2020-07-03 韦勒斯标准与技术协会公司 视频信号处理方法和装置
US11451791B2 (en) * 2018-01-25 2022-09-20 Wilus Institute Of Standards And Technology Inc. Video signal processing method and device
AU2019269346B2 (en) * 2018-05-14 2023-07-27 Interdigital Vc Holdings, Inc. Block shape adaptive intra prediction directions for quadtree-binary tree
US10778971B2 (en) 2018-06-01 2020-09-15 Tencent America LLC Method and apparatus for video coding
KR20210015963A (ko) 2018-06-29 2021-02-10 후아웨이 테크놀러지 컴퍼니 리미티드 인트라-예측을 위한 디바이스 및 방법
US10567752B2 (en) * 2018-07-02 2020-02-18 Tencent America LLC Method and apparatus for intra prediction for non-square blocks in video compression
KR20240042127A (ko) * 2018-09-03 2024-04-01 후아웨이 테크놀러지 컴퍼니 리미티드 인트라 예측을 위한 방법 및 장치
EP3691264B1 (en) 2018-10-05 2023-03-08 LG Electronics Inc. Intra prediction-based video coding method using mpm list, and device therefor
CN113228650B (zh) * 2018-11-08 2024-03-19 交互数字Vc控股公司 基于块的表面的视频编码或解码的量化
KR20210121053A (ko) * 2019-01-02 2021-10-07 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 인트라 예측 방법, 장치 및 컴퓨터 저장 매체
CN116437081A (zh) 2019-01-02 2023-07-14 Oppo广东移动通信有限公司 帧内预测方法及装置、计算机可读存储介质
MX2021008090A (es) 2019-01-02 2021-08-11 Guangdong Oppo Mobile Telecommunications Corp Ltd Metodo y dispositivo de intraprediccion de color y medio de almacenamiento por computadora.
WO2020253528A1 (en) * 2019-06-17 2020-12-24 Zhejiang Dahua Technology Co., Ltd. Systems and methods for predicting a coding block
CN110166774B (zh) * 2019-06-25 2021-08-31 浙江大华技术股份有限公司 帧内预测方法、视频编码方法、视频处理装置、存储介质
EP3973701A4 (en) * 2019-06-25 2022-11-30 Zhejiang Dahua Technology Co., Ltd. SYSTEMS AND METHODS FOR IMAGE CODING
KR20220027084A (ko) * 2019-06-25 2022-03-07 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 정보 처리 방법 및 장치, 설비, 저장 매체
CN114287131A (zh) 2019-08-19 2022-04-05 北京字节跳动网络技术有限公司 基于计数器的帧内预测模式的更新
CN116830584A (zh) * 2021-02-22 2023-09-29 Oppo广东移动通信有限公司 帧内预测方法、编码器、解码器以及存储介质
CN117795953A (zh) * 2021-09-22 2024-03-29 深圳市大疆创新科技有限公司 编解码方法及装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100678911B1 (ko) * 2005-07-21 2007-02-05 삼성전자주식회사 방향적 인트라 예측의 적용을 확장하여 비디오 신호를인코딩하고 디코딩하는 방법 및 장치
KR100725407B1 (ko) * 2005-07-21 2007-06-07 삼성전자주식회사 방향적 인트라 잔차 예측에 따라 비디오 신호를 인코딩하고디코딩하는 방법 및 장치
KR20090095316A (ko) * 2008-03-05 2009-09-09 삼성전자주식회사 영상 인트라 예측 방법 및 장치
KR101503269B1 (ko) * 2010-04-05 2015-03-17 삼성전자주식회사 영상 부호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치, 및 영상 복호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치
US8902978B2 (en) 2010-05-30 2014-12-02 Lg Electronics Inc. Enhanced intra prediction mode signaling
US9667987B2 (en) 2011-03-10 2017-05-30 Futurewei Technologies, Inc. Using multiple prediction sets to encode extended unified directional intra mode numbers for robustness
US9628789B2 (en) 2011-11-18 2017-04-18 Qualcomm Incorporated Reference mode selection in intra mode coding
JP5579691B2 (ja) * 2011-12-06 2014-08-27 中国電力株式会社 位置標定システム、移動端末、及び位置標定システムの制御方法
GB2509563A (en) * 2013-01-04 2014-07-09 Canon Kk Encoding or decoding a scalable video sequence using inferred SAO parameters
US9426473B2 (en) * 2013-02-01 2016-08-23 Qualcomm Incorporated Mode decision simplification for intra prediction
US10841593B2 (en) * 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
WO2017034331A1 (ko) * 2015-08-27 2017-03-02 엘지전자 주식회사 영상 코딩 시스템에서 크로마 샘플 인트라 예측 방법 및 장치
EP3343926A4 (en) * 2015-08-28 2019-01-30 KT Corporation METHOD AND DEVICE FOR PROCESSING A VIDEO SIGNAL
KR20170031643A (ko) * 2015-09-11 2017-03-21 주식회사 케이티 비디오 신호 처리 방법 및 장치
US20170150176A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Linear-model prediction with non-square prediction units in video coding
US10448011B2 (en) * 2016-03-18 2019-10-15 Mediatek Inc. Method and apparatus of intra prediction in image and video processing
JP6634936B2 (ja) * 2016-04-05 2020-01-22 富士通株式会社 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、画像復号プログラムおよび画像伝送システム
ES2711189R1 (es) 2016-04-06 2020-02-04 Kt Corp Metodo y aparato para procesar senales de video
CN106131547B (zh) * 2016-07-12 2018-07-03 北京大学深圳研究生院 视频编码中帧内预测模式的快速决策方法
PT3552393T (pt) 2016-12-23 2023-05-30 Huawei Tech Co Ltd Um aparelho de codificação para sinalizar um modo de intra-predição direcional de extensão dentro de um conjunto de modos de intra-predição direcional
FI20175006A1 (en) * 2017-01-03 2019-02-15 Nokia Technologies Oy Video and image coding using wide-angle intra-prediction
US10764587B2 (en) * 2017-06-30 2020-09-01 Qualcomm Incorporated Intra prediction in video coding
CN111373750A (zh) 2017-10-24 2020-07-03 韦勒斯标准与技术协会公司 视频信号处理方法和装置
KR20240032154A (ko) * 2017-11-30 2024-03-08 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US11012711B2 (en) * 2018-11-29 2021-05-18 Tencent America LLC Adaptive most probable modes for multiple reference line intra prediction

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020242183A1 (ko) * 2019-05-27 2020-12-03 엘지전자 주식회사 광각 인트라 예측 및 변환에 기반한 영상 코딩 방법 및 그 장치
US11641471B2 (en) 2019-05-27 2023-05-02 Lg Electronics Inc. Image coding method and device on basis of wide-angle intra prediction and transform
WO2021086064A1 (ko) * 2019-10-29 2021-05-06 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
KR20220061181A (ko) * 2019-10-29 2022-05-12 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US11546600B2 (en) 2019-10-29 2023-01-03 Lg Electronics Inc. Image coding method based on transform and apparatus therefor
US11902530B2 (en) 2019-10-29 2024-02-13 Lg Electronics Inc. Image coding method based on transform and apparatus therefor

Also Published As

Publication number Publication date
US11284108B2 (en) 2022-03-22
US20230403409A1 (en) 2023-12-14
US20220174315A1 (en) 2022-06-02
JP7043616B2 (ja) 2022-03-29
CN111373750A (zh) 2020-07-03
JP7263586B2 (ja) 2023-04-24
JP2023080204A (ja) 2023-06-08
WO2019083284A1 (ko) 2019-05-02
US11743495B2 (en) 2023-08-29
US20210037259A1 (en) 2021-02-04
JP2021500835A (ja) 2021-01-07
JP2022087110A (ja) 2022-06-09

Similar Documents

Publication Publication Date Title
JP7263586B2 (ja) ビデオ信号処理方法及び装置
US11140384B2 (en) Encoding and decoding method and device for video using determined intra prediction mode and reference samples on a reference line
CN112438050B (zh) 使用二次变换的视频信号处理方法及装置
US11863760B2 (en) Video signal processing method and device
KR20180075422A (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
KR20200130864A (ko) 참조 샘플을 이용하는 비디오 신호 처리 방법 및 장치
KR20200057991A (ko) 비디오 신호를 위한 dst-7, dct-8 변환 커널 생성 유도 방법 및 장치
KR20200084746A (ko) 화면 내 예측 방법에서 화면 내 모드를 부호화/복호화하는 방법 및 장치
KR20200041491A (ko) 효율적인 블록 분할 구조와 시그널링 방법을 이용한 비디오 복호화 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant