KR20190024561A - 인트라 예측을 이용한 영상의 부호화 및 복호화 - Google Patents

인트라 예측을 이용한 영상의 부호화 및 복호화 Download PDF

Info

Publication number
KR20190024561A
KR20190024561A KR1020180001598A KR20180001598A KR20190024561A KR 20190024561 A KR20190024561 A KR 20190024561A KR 1020180001598 A KR1020180001598 A KR 1020180001598A KR 20180001598 A KR20180001598 A KR 20180001598A KR 20190024561 A KR20190024561 A KR 20190024561A
Authority
KR
South Korea
Prior art keywords
intra prediction
block
current block
mode
prediction mode
Prior art date
Application number
KR1020180001598A
Other languages
English (en)
Other versions
KR102489081B1 (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 에스케이텔레콤 주식회사
Priority to PCT/KR2018/010085 priority Critical patent/WO2019045498A1/ko
Publication of KR20190024561A publication Critical patent/KR20190024561A/ko
Application granted granted Critical
Publication of KR102489081B1 publication Critical patent/KR102489081B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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

Landscapes

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

Abstract

본 발명은 인터 예측을 이용한 영상의 부호화 또는 복호화에 관한 것으로, 전체 인트라 예측모드들 중 일부를 포함하는 후보 그룹을 생성하는 단계; 및 상기 후보 그룹에 속하는 인트라 예측모드들 중 부호화 대상 블록인 현재블록의 인트라 예측모드를 지시하기 위한 색인정보를 부호화하는 단계를 포함하되, 상기 현재블록의 블록 형태(shape)에 근거하여 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값이 할당되는 것을 특징으로 하는 인트라 예측모드 부호화 방법을 제시한다.

Description

인트라 예측을 이용한 영상의 부호화 및 복호화 {Video Encoding and Decoding Using Intra Prediction}
본 발명은 인트라 예측을 이용한 영상의 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, 인트라 예측 시, 부호화 대상 블록을 예측하기 위해 사용된 인트라 예측모드를 부호화 또는 복호화하기 위한 방법 및 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다.
현재 픽처 내의 픽셀 정보를 이용하여 현재 픽처에 포함된 픽셀 값을 예측하는 인트라 예측 및 코딩에는 복수의 인트라 예측모드가 존재한다. 영상 부호화 장치는 복수의 인트라 예측모드 중에 부호화 대상인 현재블록에 대한 최종 하나의 모드를 선정하여 영상 복호화 장치에 해당 모드에 대한 정보를 전달하게 된다. 이때, 선정된 인트라 모드를 효율적으로 표현하기 위해 최고 확률 모드(most probable mode, MPM)를 이용하게 된다.
도 1은 HEVC에서 인트라 예측에 사용 가능한 인트라 모드들을 도시한 도면이다. HEVC의 경우, 도 11과 같이 방향성을 가진 33개의 각도 모드들 및 방향성이 없는 2개의 모드들로 포함하는 총 35개의 인트라 모드가 존재한다. 35개 모드 중 부호화 대상 블록의 최종 인트라 모드를 부호화하기 위해 해당 블록의 주변블록 및 통계적으로 가장 자주 사용되는 모드들을 이용하여 해당 블록을 위한 3개의 MPM을 선정한다.
해당 블록의 최종 모드가 MPM과 동일한지 여부를 나타내는 1 bit MPM 플래그(flag)를 전송하고, 최종 모드가 MPM 이라면, 추가로 MPM 인덱스(index) 값을 전송한다. 최종 모드가 MPM이 아니라면, 나머지 모드들 중 어느 모드인지를 명백하게 전송하게 된다.
한편, 영상의 해상도가 64x64에서 256x256 등으로 점점 커지면서 예측 블록의 단위도 점점 커지고 있으며, 그에 따라 많은 인트라 모드들이 추가될 가능성이 높아지고 있으나, 예측한 MPM이 여전히 다른 경우, 여전히 기존 값을 고정길이 부호(fixed length code)화하여 보내야 하는 경우도 발생될 수 있다.
또한, 영상이 커지면서 많은 인트라 모드가 추가되어 예측한 MPM을 증가시키는 경우, 예측 효율을 높일 수 있다. 그러나 MPM들을 식별하기 위한 색인값들은 truncated unary 형태로 이진화되므로, MPM을 증가시키는 것이 오히려 압축 효율을 낮출 가능성이 있다.
본 발명은 인트라 예측 코딩에서, 현재블록을 예측하기 위한 인트라 예측모드를 효율적으로 시그널링하는 데 일 목적이 있다.
본 발명의 일 측면에 따르면, 부호화 대상 블록인 현재블록의 인트라 예측모드를 부호화하는 방법에 있어서, 상기 현재블록의 주변블록들의 인트라 예측모드를 이용하여 제1 그룹의 인트라 예측모드들을 결정하고, 상기 현재블록의 인트라 예측모드가 상기 제1 그룹에 속하는지 여부를 지시하는 제1 플래그를 부호화하는 단계; 상기 현재블록의 인트라 예측모드가 상기 제1 그룹에 속할 때, 상기 제1 그룹에서 상기 현재블록의 인트라 예측모드를 지시하기 위한 제1 색인정보를 부호화하는 단계; 상기 현재블록의 인트라 예측모드가 상기 제1 그룹에 속하지 않을 때, 기 정의된 모드 번호를 가지는 인트라 예측모드들 또는 상기 제 1그룹 내의 방향성 모드로부터 도출된 인트라 예측모드들로 구성된 제2 그룹을 결정하고 상기 현재블록의 인트라 예측모드가 상기 제2 그룹에 속하는지 여부를 지시하는 제2 플래그를 부호화 단계; 상기 현재블록의 인트라 예측모드가 상기 제2 그룹에 속할 때 상기 제2 그룹에서 상기 현재블록의 인트라 예측모드를 지시하기 위한 제2 색인정보를 부호화하는 단계; 및 상기 현재블록의 인트라 예측모드가 상기 제2 그룹에 속하지 않을 때, 상기 제1 그룹 및 상기 제2 그룹에 속하는 인트라 예측모드들을 제외한 나머지 인트라 예측모드들로 구성된 제3 그룹에서 상기 현재블록의 인트라 예측모드를 지시하기 위한 제3 색인정보를 부호화하는 단계를 포함하되, 상기 제1 그룹에 속하는 인트라 예측모드들 중 가장 낮은 색인값을 가지는 방향성 모드의 예측 방향 또는 상기 현재블록의 블록 형태(shape)에 근거하여 상기 제3 그룹에 속하는 인트라 예측모드들에 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드를 부호화하는 방법을 제공한다.
본 발명의 또 다른 측면에 따르면, 부호화 대상 블록인 현재블록의 인트라 예측모드를 부호화하는 방법에 있어서, 전체 인트라 예측모드들 중 일부를 포함하는 후보 그룹을 생성하는 단계; 및 상기 후보 그룹에 속하는 인트라 예측모드들 중 상기 현재블록의 인트라 예측모드를 지시하기 위한 색인정보를 부호화하는 단계를 포함하되, 상기 현재블록의 블록 형태(shape)에 근거하여 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값이 할당되는 것을 특징으로 하는 인트라 예측모드 부호화 방법을 제공한다.
본 발명의 또 다른 측면에 따르면, 복호화 대상 블록인 현재블록의 인트라 예측모드를 복호화하는 방법에 있어서, 비트스트림으로부터 상기 현재블록의 인트라 예측모드를 식별하기 위한 색인정보를 복호화하는 단계; 전체 인트라 예측모드들 중 일부를 포함하는 후보 그룹을 생성하는 단계; 및 상기 후보 그룹에 속하는 인트라 예측모드들 중에서 상기 색인정보에 의해 지시되는 인트라 예측모드를 상기 현재블록의 인트라 예측모드로 결정하는 단계를 포함하되, 상기 현재블록의 블록 형태(shape)에 근거하여 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값이 할당되는 것을 특징으로 하는 인트라 예측모드 복호화 방법을 제공한다.
도 1은 HEVC에서 인트라 예측에 사용 가능한 인트라 모드들을 도시한 도면,
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도,
도 3은 QTBT 구조를 이용한 블록 분할의 예시도,
도 4는 본 발명의 일 실시예에 따른 복수의 인트라 예측모드에 대한 예시도,
도 5는 본 발명의 일 실시예에 따른 현재블록의 인트라 예측모드를 부호화하기 위한 순서도,
도 6은 MPM 그룹을 생성하기 위해 사용되는 현재블록의 주변블록들을 나타내는 예시도,
도 7은 MPM 그룹을 생성하기 위해 사용되는 현재블록의 주변블록을 나타내는 또 다른 예시도,
도 8은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 블록도,
도 9는 본 발명의 일 실시예 따른 현재블록의 인트라 예측모드에 대한 신택스 요소를 복호화하는 과정을 나타내는 순서도,
도 10은 본 발명의 일 실시예 따른 현재블록의 인트라 예측모드를 결정하는 과정을 나타내는 순서도,
도 11은 휘도블록과 색차블록의 QTBT 분할 구조를 나타내는 예시도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
영상 부호화 장치는 블록 분할부(210), 예측부(220), 감산기(230), 변환부(240), 양자화부(245), 부호화부(250), 역양자화부(260), 역변환부(265), 가산기(270), 필터부(280) 및 메모리(290)를 포함한다. 영상 부호화 장치는 각 구성요소는 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
블록 분할부(210)는 영상을 구성하는 각 픽처(picture)를 복수의 CTU(Coding Tree Unit)로 분할한 이후에, CTU를 트리 구조(tree structure)를 이용하여 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU (coding unit)가 된다. 트리 구조로는 상위 노드가 네 개의 하위 노드로 분할하는 쿼드트리(QuadTree, QT), 또는 QT 구조 및 상위 노드가 두 개의 하위 노드로 분할하는 바이너리트리(BinaryTree, BT) 구조를 혼용한 QTBT (QuadTree plus BinaryTree) 구조가 사용될 수 있다.
QTBT (QuadTree plus BinaryTree) 구조에서, CTU는 먼저 QT 구조로 분할된다. 이후, QT의 리프 노드들은 BT에 의해 추가로 더 분할될 수 있다. 블록 분할부(210)가 QTBT 구조에 의해 CTU를 분할하여 생성하는 분할 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다.
QT에서는 해당 노드의 블록이 분할 여부를 지시하는 제1 플래그(QT 분할 플래그, QT_split_flag)가 부호화된다. 제1 플래그가 1이면 해당 노드의 블록이 동일 크기의 네 개의 블록으로 분할되고, 0이면 해당 노드는 QT에 의해 더 이상 분할되지 않는다.
BT에서는 해당 노드의 블록의 분할 여부를 지시하는 제2 플래그(BT 분할 플래그, BT_split_flag)가 부호화된다. BT 에서는 복수의 분할 타입이 존재할 수 있다. 예컨대, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입과 세로로 분할하는 타입 두 가지가 존재할 수 있다. 또는, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태로는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태를 포함할 수 있고, 또는 해당 노드의 블록을 대각선 방향으로 분할하는 형태를 포함할 수도 있다. 이렇게 BT가 복수의 분할 타입을 가지는 경우에는, 블록이 분할됨을 의미하는 제2 플래그가 부호화되면, 해당 블록의 분할 타입을 지시하는 분할 타입 정보가 추가로 부호화된다.
도 3은 QTBT 구조를 이용한 블록 분할의 예시도이다. 도 3의 (a)는 QTBT 구조에 의해 블록이 분할되는 예시이고, (b)는 이를 트리구조로 표현한 것이다. 도 3에서 실선은 QT 구조에 의한 분할을, 점선은 BT 구조에 의한 분할을 나타낸다. 또한, 도 3 (b)에서 layer 표기와 관련하여, 괄호가 없는 것은 QT의 레이어를, 괄호가 있는 것은 BT의 레이어를 나타낸다. 점선으로 표현된 BT 구조에서 숫자는 분할 타입 정보를 나타낸다.
도 3에서, QT의 최상위 레이어인 CTU는 layer 1의 네 개의 노드로 분할된다. 이에 따라 블록 분할부(210)는 CTU가 분할됨을 지시하는 QT 분할 플래그(QT_split_flag = 1)를 생성한다. layer 1의 첫 번째 노드에 해당하는 블록은 더 이상 QT에 의해 분할되지 않다. 따라서, 블록 분할부(210)는 QT_split_flag = 0을 생성한다.
이후, QT의 layer 1의 첫 번째 노드에 해당하는 블록은 BT로 진행한다. 본 실시예에서는, BT가 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입과 세로로 분할하는 타입 두 가지가 존재하는 것으로 설명한다. QT의 layer 1의 첫 번째 노드는 BT의 루트 노드(root node, (layer 0))가 된다. BT의 루트 노드에 해당하는 블록은 (layer 1)의 블록으로 더 분할되므로, 블록 분할부(210)는 BT에 의해 분할됨을 지시하는 BT 분할 플래그(BT_split_flag) = 1을 생성한다. 이후, 해당 블록이 가로로 분할되는지 아니면 세로로 분할되는지 여부를 지시하는 분할 타입 정보를 생성한다. 도 3에서 BT의 루트 노드에 해당하는 블록은 세로로 분할되므로 세로 분할을 지시하는 1이 분할 타입 정보로서 생성된다. 루트 노드로부터 분할된 (layer 1)의 블록 중 첫 번째 블록은 추가로 더 분할되고 분할 타입은 세로이므로, BT_split_flag = 1 및 분할 타입 정보 1을 생성한다. 반면, BT의 루트 노드로부터 분할된 (layer 1)의 두 번째 블록은 더 이상 분할되지 않으므로 BT_split_flag = 0을 생성한다.
한편, QTBT 구조에 의한 블록 분할에 대한 정보를 효율적으로 영상 복호화 장치로 시그널링하기 위해, 다음의 정보가 추가로 부호화될 수 있다. 이 정보들은 영상의 헤더 정보로서 부호화되는데, 예컨대 SPS (Sequence Parameter Set)이나 PPS (Picture Parameter Set)로 부호화될 수 있다.
- CTU size: QTBT의 최상위 레이어, 즉, 루트 노드의 블록 크기
- MinQTSize: QT에서 허용되는 리프 노드의 최소 블록 크기
- MaxBTSize: BT에서 허용되는 루트 노드의 최대 블록 크기
- MaxBTDepth: BT에서 허용되는 최대 심도(Depth)
- MinBTSize: BT에서 허용되는 리프 노드의 최소 블록 크기
QT에서 MinQTSize와 동일한 크기를 가지는 블록은 더 이상 분할되지 않으며, 따라서 해당 블록에 대응하는 QT에 관한 분할 정보(제1 플래그)는 부호화되지 않는다. 또한, QT에서 MaxBTSize보다 큰 크기를 가지는 블록은 BT가 존재하지 않는다. 따라서, 해당 블록에 대응하는 BT에 관한 분할 정보(제2 플래그, 분할 타입 정보)는 부호화되지 않는다. 또한, BT의 해당 노드의 심도(depth)가 MaxBTDepth에 도달하면, 해당 노드의 블록은 더 이상 분할되지 않으며 해당 노드의 BT에 관한 분할 정보(제2 플래그, 분할 타입 정보) 또한 부호화되지 않는다. 또한, BT에서 MinBTSize와 동일한 크기를 가지는 블록은 더 이상 분할되지 않으며 BT에 관한 분할 정보(제2 플래그, 분할 타입 정보) 또한 부호화되지 않는다. 이렇게, QT와 BT의 루프나 리프 노드가 가질 수 있는 최대 또는 최소 블록 크기를 SPS (Sequence Parameter Set)이나 PPS (Picture Parameter Set) 등의 하이 레벨(high level)에서 정의함으로써, CTU의 분할 여부나 분할 타입을 지시하는 정보들에 대한 부호화량을 줄일 수 있다.
이하에서는, 부호화 또는 복호화하고자 하는 CU에 해당하는 블록을 '현재블록'이라 칭한다.
예측부(220)는 현재블록을 예측하여 예측블록을 생성한다. 예측부(220)는 인트라 예측부(222)와 인터 예측부(224)를 포함한다.
인트라 예측부(222)는 현재블록이 포함된 현재 픽처 내에서 현재블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재하며, 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다. 특히, 인트라 예측부(222)는 현재블록을 부호화하는데 사용할 인트라 예측모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(222)는 여러 인트라 예측모드들을 사용하여 현재블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(222)는 여러 테스트된 인트라 예측모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측모드를 선택할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 복수의 인트라 예측모드에 대한 예시를 나타낸다.
도 4에서 보는 바와 같이, 복수의 인트라 예측모드는 2개의 비방향성 모드(planar 모드 및 DC 모드)와 65개의 방향성 모드를 포함할 수 있다.
인트라 예측부(222)는 복수의 인트라 예측모드 중에서 하나의 인트라 예측모드를 선택하고, 선택된 인트라 예측모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재블록을 예측한다. 선택된 인트라 예측모드에 대한 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다. 현재블록의 인트라 예측모드에 대한 정보를 효율적으로 부호화하기 위한 방법은 도 5 내지 7을 참조하여 후술한다.
인터 예측부(224)는 현재 픽처보다 먼저 부호화 및 복호화된 참조 픽처 내에서 현재블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재블록과 참조 픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 현재블록을 예측하기 위해 사용된 참조 픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다.
감산기(230)는 현재블록으로부터 인트라 예측부(222) 또는 인터 예측부(224)에 의해 생성된 예측블록을 감산하여 잔차 블록을 생성한다.
변환부(240)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(240)는 잔차 블록 내의 잔차 신호들을 현재블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 또는 잔차 블록을 더 작은 복수의 서브블록을 분할하고 서브블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다. 잔차 블록을 더 작은 서브블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기정의된 동일한 크기의 서브블록으로 분할할 수도 있으며, 또는 잔차 블록을 루트 노드로 하는 QT(quadtree) 방식의 분할을 사용할 수도 있다.
양자화부(245)는 변환부(240)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(250)로 출력한다.
부호화부(250)는 양자화된 변환 계수들을 CABAC 등의 부호화 방식을 사용하여 부호화하여 비트스트림을 생성한다. 또한, 부호화부(250)는 블록 분할과 관련된 CTU size, MinQTSize, MaxBTSize, MaxBTDepth, MinBTSize, QT 분할 플래그, BT 분할 플래그, 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.
부호화부(250)는 현재블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측모드 또는 인터 예측정보에 대한 신택스 요소를 부호화한다.
역양자화부(260)는 양자화부(245)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(265)는 역양자화부(260)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.
가산부(270)는 복원된 잔차블록과 예측부(220)에 의해 생성된 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.
필터부(280)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(290)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
이하에서는 영상 부호화 장치(200)가 현재블록의 인트라 예측모드를 효율적으로 부호화하기 위해 수행하는 프로세스에 대해 설명한다.
일 실시예에서 영상 부호화 장치(200)는 현재블록의 인트라 예측모드를 결정한 이후에, 전체 인트라 예측모드들을 복수의 후보 그룹을 분류한다. 그리고 현재블록의 인트라 예측모드가 복수의 후보 그룹 중 어느 그룹에 속하는지에 대한 정보와 해당 그룹 내에서 현재블록의 인트라 예측모드를 지시하기 위한 색인 정보를 부호화한다. 복수의 후보 그룹은, 현재블록의 전체 인트라 예측모드들을 발생 빈도에 따라 분류함으로써 생성될 수 있다. 예컨대, 복수의 후보 그룹은 다음의 그룹을 포함한다.
(1) 제1 그룹: 현재블록의 인트라 예측모드로 선택될 확률이 가장 높은 모드(MPM, most probable mode)들로 이루어진 그룹(이하, MPM 그룹이라 함)
(2) 제2 그룹: MPM들 이외의 모드들 중 자주 출현하는 모드들 (이하, Selected Mode 그룹)
(3) 제3 그룹; 나머지 모드들 (이하, non-Selected Mode 그룹)
도 5는 본 발명의 일 실시예에 따른 현재블록의 인트라 예측모드를 부호화하기 위한 순서도이다.
영상 부호화 장치(200)는 현재블록의 인트라 예측모드(Mcurr)를 결정한 이후에, 현재블록에 인접한 주변블록들의 인트라 예측모드들을 이용하여 MPM 그룹을 생성하고(S502), 현재블록의 인트라 예측모드(Mcurr)가 MPM 그룹에 속하는지 여부를 판단한다(S504). 현재블록의 인트라 예측모드(Mcurr)가 MPM 그룹에 속하면, 영상 부호화 장치(200)는 현재블록의 인트라 예측모드(Mcurr)가 MPM 그룹에 속함을 지시하는 제1 플래그를 부호화한다(S506). 예컨대, 제1 플래그를 1로 부호화한다. 그리고, MPM 그룹에 속하는 인트라 예측모드들 중 현재블록의 인트라 예측모드(Mcurr)를 지시하기 위한 제1 색인정보를 부호화한다(S508).
만약 현재블록의 인트라 예측모드(Mcurr)가 MPM 그룹에 속하는 않으면, 영상 부호화 장치(200)는 현재블록의 인트라 예측모드(Mcurr)가 MPM 그룹에 속하지 않음을 지시하는 제1 플래그를 부호화한다(S510). 예컨대, 제1 플래그를 0으로 부호화한다.
영상 부호화 장치(200)는 Selected Mode 그룹을 생성하고(S512), 현재블록의 인트라 예측모드(Mcurr)가 Selected Mode 그룹에 속하는지 여부를 판단한다(S514). 현재블록의 인트라 예측모드(Mcurr)가 Selected Mode 그룹에 속하면, 영상 부호화 장치(200)는 현재블록의 인트라 예측모드(Mcurr)가 Selected Mode 그룹에 속함을 지시하는 제2 플래그를 부호화한다(S516). 예컨대, 제2 플래그를 1로 부호화한다. 그리고 Selected Mode 그룹에 속하는 인트라 예측모드들 중에서 현재블록의 인트라 예측모드(Mcurr)를 지시하기 위한 제2 색인정보를 부호화한다(S518).
만약 현재블록의 인트라 예측모드(Mcurr)가 Selected Mode 그룹에 속하지 않으면, 영상 부호화 장치(200)는 현재블록의 인트라 예측모드(Mcurr)가 Selected Mode 그룹에 속하지 않음을 지시하는 제2 플래그를 부호화한다(S520). 예컨대, 제2 플래그를 0으로 부호화한다. 그리고 전체 인트라 예측모드들에서 MPM 그룹 및 Selected Mode 그룹에 속하는 모드들을 제외한 나머지 인트라 예측모드들로 이루어진 non-Selected Mode 그룹을 생성하고(S522), non-Selected Mode 그룹에서 현재블록의 인트라 예측모드(Mcurr)를 지시하기 위한 제3 색인정보를 부호화한다(S524).
제1 내지 제3 색인정보는 엔트로피 부호화(entropy coding)를 위해 이진화(binarization) 과정을 거친다. 이하에서, 제1 내지 제3 색인정보의 이진화 방법을 설명하고, 이어서 MPM 그룹 생성 방법, Selected Mode 그룹 생성 방법, non-Selected Mode 그룹 생성 방법을 각각 설명한다.
1. 색인정보의 이진화 방법
색인정보들은 다양한 방식으로 이진화될 수 있는데, 본 실시예에서 MPM 그룹에 대한 제1 색인정보, Selected Mode 그룹에 대한 제2 색인정보 및 non-Selected Mode 그룹에 대한 제3 색인정보는 각각 truncated unary(TU) 방식, fixed-length(FL) 방식, truncated binary(TB) 방식으로 이진화된다.
도 4에 도시된 총 67개의 인트라 예측모드를 세 개의 그룹으로 분류할 때, 각 그룹에 속하는 인트라 모드들의 개수는 다양하게 설정될 수 있다. 예컨대, MPM 그룹, Selected Mode 그룹, non-Selected Mode 그룹에 각각 6개, 16개, 45개의 인트라 예측모드를 설정할 수도 있고, 또는 각각 5개, 16개, 44개의 인트라 예측모드를 설정할 수도 있다.
실시예 1-1
실시예 1-1은 MPM 그룹, Selected Mode 그룹, non-Selected Mode 그룹에 각각 6개, 16개, 45개의 인트라 예측모드를 설정한 경우에 대한 예시이다.
표 1은 각 그룹의 이진화 방법에 따라 색인값에 할당되는 코드워드(codeword)를 나타내고, 표 2는 각 그룹이 선택되었을 때에 현재블록의 인트라 예측모드를 시그널링하기 위해 소요되는 비트수를 나타낸다.
Figure pat00001
Figure pat00002
TU 이진화 방식을 사용하는 MPM 그룹은 색인값을 위해 총 1~5 비트가 소요되고, 제1 플래그를 위해 1 비트가 소요되므로, 현재블록의 인트라 예측모드가 MPM 그룹에 속하는 경우 현재블록의 인트라 예측모드를 부호화하기 위해 총 2~6비트가 소요된다. FL 이진화 방식을 사용하는 Selected Mode 그룹은 색인값을 위해 총 4비트가 소요되고 제1 플래그와 제2 플래그를 위해 각각 1 비트가 소요되므로, 현재블록의 인트라 예측모드가 Selected Mode 그룹에 속하는 경우, 현재블록의 인트라 예측모드를 부호화하기 위해 총 6비트가 소요된다. TB 이진화 방식을 사용하는 non-Selected Mode 그룹은 색인값을 위해 총 5~6 비트가 소요되고, 제1 플래그와 제2 플래그를 위해 각각 1 비트가 소요되므로 총 7~8 비트가 소요된다.
실시예 1-2
실시예 1-2는 MPM 그룹, Selected Mode 그룹, non-Selected Mode 그룹에 각각 5개, 16개, 46개의 인트라 예측모드를 설정한 경우에 대한 예시이다.
표 3은 각 그룹의 이진화 방법에 따라 색인값에 할당되는 코드워드(codeword)를 나타내고, 표 4는 각 그룹이 선택되었을 때에 현재블록의 인트라 예측모드를 시그널링하기 위해 소요되는 비트수를 나타낸다.
Figure pat00004
실시예 1-2는 각 그룹별 총 bits 수가 겹치지 않고, MPM 그룹에 가장 적은 bits를 할당하고, 그 다음으로 selected mode 그룹에 적은 bits를, 마지막으로 non-selected mode 그룹에 많은 bits를 할당한다.
표 3과 표 4를 참조하면, 현재블록의 인트라 예측모드가 Selected Mode 그룹이나 non-Selected Mode 그룹에 속하는 경우, 실시예 1-2는 현재블록의 인트라 예측모드를 부호화하기 위해 소요되는 비트수가 실시예 1-1과 동일하다. 그러나, 현재블록의 인트라 예측모드가 MPM 그룹에 속하는 경우 현재블록의 인트라 예측모드를 부호화하기 위해 총 2~5비트가 소요된다. Selected Mode 그룹에 비해 MPM 그룹에 속하는 인트라 예측모드가 자주 출현한다는 점을 고려할 때, 실시예 1-2는 실시예 1-1보다 현재블록의 인트라 예측모드를 더 효율적으로 부호화할 수 있다.
2. MPM 그룹 생성 방법
현재블록은 주변블록과 높은 상관성을 나타내는 경향이 있으므로, 현재블록의 인트라 예측모드는 주변블록의 인트라 예측모드와 동일할 확률이 크다. 따라서, MPM 그룹은 주변블록의 인트라 예측모드들을 이용하여 구성한다. 이하에서는, 주변블록의 인트라 예측모드들을 이용하여 MPM 그룹을 구성하는 다양한 실시예를 설명한다.
실시예 2-1
도 6은 MPM 그룹을 생성하기 위해 사용되는 현재블록의 주변블록들을 나타내는 예시도이다.
MPM 그룹을 생성하기 위해, 도 6에 도시된 바와 같이, 현재블록의 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 전부 또는 일부가 이용될 수 있다. 여기서, 현재블록의 좌측블록(L)은 현재블록 내의 최좌측하단 픽셀의 위치에서 왼쪽으로 한 픽셀 이동한 위치의 픽셀을 포함한 블록을 의미하며, 현재블록의 상단블록(A)은 현재블록 내의 최우측상단 픽셀의 위치에서 위쪽으로 한 픽셀 이동한 위치의 픽셀을 포함한 블록을 의미한다. 좌하단블록(BL)은 현재블록 내의 최좌측하단 픽셀의 위치에서 위쪽으로 한 픽셀 이동 후 아래쪽으로 한 픽셀 이동한 위치의 픽셀을 포함한 블록을 의미하고, 우상단블록(AR)은 현재블록 내의 최우측상단 픽셀의 위치에서 위쪽으로 한 픽셀 이동 후 오른쪽으로 한 픽셀 이동한 위치의 픽셀을 포함한 블록을 의미하며, 좌상단블록(AL)은 현재블록 내의 최좌측상단 픽셀의 위치에서 위쪽으로 한 픽셀 이동 후 왼쪽으로 한 픽셀 이동한 위치의 픽셀을 포함한 블록을 의미한다.
좌측블록(L), 상단블록(A), planar 모드, DC 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순으로 유효한 모드가 MPM 그룹에 추가된다. 즉, MPM 그룹 내의 인트라 예측 모드들을 식별하기 위한 색인값들은 좌측블록(L), 상단블록(A), planar 모드, DC 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 모드들 순서로 증가한다. 예컨대, 좌측블록(L)의 인트라 예측 모드에 색인값 0, 상단블록(A)의 인트라 예측 모드에 색인값 1, planar 모드에 색인값 2, DC 모드에 색인값 3을 할당한다. 만약, 좌하단블록(BL)이 유효하지 않다면, 다음 순서인 우상단블록(AR)의 인트라 예측 모드에 색인값 4를 할당한다.
다른 예로, 좌측블록(L), 상단블록(A), planar 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL), DC 모드의 순으로 유효한 모드가 MPM 그룹에 추가될 수도 있다.
한편, MPM 그룹에는 서로 다른 인트라 예측모드만이 포함된다. 즉, 중복된 모드(duplicated mode)가 존재하는 경우 그 중 하나의 모드만이 MPM 그룹에 포함된다. 만약, 리스트 내의 MPM의 개수가 기결정된 개수(예컨대, 6)보다 작은 경우에는, MPM 그룹 내의 방향성 모드들에 -1 또는 +1을 가산하여 MPM을 유도할 수도 있다. 또한, 리스트 내의 MPM의 개수가 기결정된 개수보다 작은 경우에는, 수직 모드(vertical mode), 수직 모드(horizontal mode), 대각선 모드(diagonal mode) 등의 순서로 부족한 개수만큼의 모드를 MPM 그룹에 추가할 수도 있다. 예컨대, MPM 그룹은 표 5의 순서로 생성될 수 있다.
1. 하기의 순서로 유효한 모드들을 MPM 그룹에 추가
- (L), (A), planar, DC, (BL), (AR), (AL)

2. MPM 그룹의 모드 개수가 기결정된 개수보다 작을 때, MPM 그룹 내의 방향성 모드들에 -1 및 +1을 가산한 모드들을 MPM 그룹에 추가

3. MPM 그룹의 모드 개수가 여전히 기결정된 개수보다 작을 때, 디폴트 모드들을 다음의 순서로 추가
- 수직 모드, 수평 모드, mode 2, 대각선 모드
위 실시예에서 planar 모드와 DC 모드는 좌측블록(L)과 상단블록(A) 다음의 우선순위로 MPM 그룹에 포함되는 것으로 설명하였으나, 본 발명이 이에 한정되는 것은 아니며 주변블록의 인트라 예측 인트라 사이의 어느 자리에 위치해도 가능하다. 예컨대, 좌측블록(L), planar, DC, 상단블록(A)의 순서도 가능하다.
또한, 위 실시예에서는 MPM 그룹을 생성하기 위해 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)을 사용하는 것으로 설명하였으나, 다른 주변블록들이 추가로 더 사용될 수도 있다.
한편, 전술한 바와 같이, MPM 그룹의 인덱스는 TU 방식으로 이진화되므로, 발생 확률이 높은 인트라 예측 모드에 작은 색인값을 할당해야 부호화 효율이 증가한다. 도 3에 도시된 바와 같이, 현재블록은 정사각 형태뿐만 아니라 직사각 형태를 가질 수 있다. 이하에서 설명하는 실시예들은 현재블록의 형태(shape)에 따라 MPM 그룹 내의 인트라 예측 모드에 색인값을 할당한다. 현재블록이 세로길이보다 가로길이가 긴 블록 형태를 가질 때, 현재블록의 좌측블록의 인트라 예측모드보다 상단블록의 인트라 예측모드에 더 작은 색인값을 할당하고, 좌하단블록의 인트라 예측모드보다 우상단블록의 인트라 예측모드에 더 작은 색인값을 할당한다. 반면, 현재블록이 가로길이보다 세로길이가 긴 블록 형태를 가질 때, 현재블록의 상단블록의 인트라 예측모드보다 좌측블록의 인트라 예측모드에 더 작은 색인값을 할당하고, 우상단블록의 인트라 예측모드보다 좌하단블록의 인트라 예측모드에 더 작은 색인값을 할당한다.
실시예 2-2
본 실시예는 현재블록의 형태에 따라 좌측블록(L)과 상단블록(A) 간, 그리고 좌하단블록(BL)과 우측상단블록(AL) 간에 인트라 예측 모드에 색인값을 할당하는 순서를 달리한다.
1. 현재블록이 정사각 형태일 때
(L), (A), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L), (A), Planar, DC, (BL), (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A), (L), Planar, DC, (AR), (BL), and (AL)
표 6를 참조하면, 현재블록이 정사각 형태일 때에는 실시예 2-1과 동일하다. 현재블록이 가로길이보다 세로길이가 길 때, 상단블록(A)의 인트라 예측모드보다 좌측블록(L)의 인트라 예측모드에 더 낮은 색인값을 할당하고, 좌하단블록(BL)의 인트라 예측모드에 우상단블록(AR)의 인트라 예측모드보다 낮은 색인값을 할당한다. 반면, 현재블록이 세로길이보다 가로길이가 길 때, 좌측블록(L)의 인트라 예측모드보다 상단블록(A)의 인트라 예측 모드에 더 낮은 색인값을 할당하고, 좌하단블록(BL)보다 우상단블록(AR)에 낮은 색인값을 할당한다. 표 6에서 DC 모드는 좌측블록(L), 상단블록(A), 및 planar 모드 다음의 우선순위를 갖는다. 그러나, DC 모드의 순서를 좌상단블록(AL) 다음의 위치에 놓을 수도 있다.
실시예 2-3
본 실시예는 현재블록의 형태에 따라 좌측블록(L), 상단블록(A), 좌하단블록(BL) 및 우상단블록(AR) 간의 우선순위, 즉 색인값을 할당하는 순서를 달리한다.
1. 현재블록이 정사각 형태일 때
(L), (A), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L), (BL), Planar, DC, (A), (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A), (AR), Planar, DC, (L), (BL), and (AL)
표 7에서 보는 바와 같이, 현재블록이 가로길이보다 세로길이가 길 때 좌측블록(L)과 좌하단블록(BL)의 순서로 가장 낮은 색인값을 할당한다. 상단블록(A)와 우상단블록(AR)은 좌측블록(L)과 좌하단블록(BL)보다 큰 색인값을 할당한다.
반면, 현재블록이 세로길이보다 가로길이가 길 때 상단블록(A)와 우상단블록(AR)의 순서로 가장 낮은 색인값을 할당한다. 좌측블록(L)과 좌하단블록(BL)에는 상단블록(A)와 우상단블록(AR)보다 큰 색인값을 할당한다. 표 7에서 현재블록이 직사각 형태일 때 Planar와 DC는 (BL) 또는 (AR) 다음의 우선순위를 갖는다. 그러나, Planar와 DC의 우선순위를 다르게 설정하는 것도 가능하다. 예컨대, 표 8과 같이 Planar와 DC의 우선순위를 설정할 수도 있다.
1. 현재블록이 정사각 형태일 때
(L), (A), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L), (BL), (A), Planar, DC, (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A), (AR), (L), Planar, DC, (BL), and (AL)
실시예 2-4
본 실시예에서는 다수 개의 좌측블록과 다수 개의 상측블록이 추가로 더 고려된다. 도 7은 MPM 그룹을 생성하기 위해 사용되는 현재블록의 주변블록을 나타내는 또 다른 예시도이다. 본 실시예는 MPM 그룹을 생성하기 위해 L2(도 6의 L), A2(도 6의 A), BL, AR, AL 이외에 A1과 L1을 추가로 더 사용한다. 블록 A1은, 현재블록의 폭을 반으로 나누었을 때 좌측에 위치한 블록 내의 최우측상단 픽셀 위치에서 위쪽으로 한 픽셀 이동한 픽셀을 포함하는 블록을 나타내고, L1은 현재블록의 높이를 반으로 나누었을 때 위쪽에 위치하는 블록 내의 최좌측하단 픽셀 위치에서 왼쪽으로 한 픽셀 이동한 픽셀을 포함하는 블록이다.
1. 현재블록이 정사각 형태일 때
(L1), (L2), (A1), (A2), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L1), (L2), (A1), (A2), Planar, DC, (BL), (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A1), (A2), (L1), (L2), Planar, DC, (AR), (BL), and (AL)
본 실시예에서는, (L1), (L2)와 (A1), (A2) 간, 그리고 (BL)과 (AR) 간의 우선순위, 즉, 색인값을 현재블록의 형태에 따라 다르게 할당한다. 표 9에서 보는 바와 같이, 본 실시예는 현재블록이 정사각 형태일 때, (L1), (L2), (A1), (A2), Planar, DC, (BL), (AR), and (AL)의 순서로 각 인트라 예측모드에 색인값을 할당한다.
현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때에는, 좌측에 위치한 블록 (L1)과 (L2)가 상단에 위치한 (A1) 및 (A2)보다 작은 색인값이 할당된다. 또한, (BL)에 (AR)보다 작은 색인값이 할당된다. 즉, 색인값이 할당되는 순서는 정사각 형태일 때와 동일하다. 반면, 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때, 상단에 위치한 (A1) 및 (A2)에 좌측에 위치한 블록 (L1)과 (L2)보다 작은 색인값이 할당된다. 또한, (AR)에 (BL)보다 작은 색인값이 할당된다. 따라서, 색인값이 할당되는 순서는 (A1), (A2), (L1), (L2), Planar, DC, (AR), (BL), (AL)이다.
실시예 2-5
본 실시예는 현재블록의 형태에 따라 (L1), (L2), (A1), (A2), (BL) 및 (AR)간에 색인값을 할당하는 순서를 다르게 한다. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때에는, 좌측에 위치한 블록 (L1), (L2) 및 (BL)에 상단에 위치한 (A1), (A2) 및 (AR)보다 작은 색인값이 할당된다. 반면, 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때, 상단에 위치한 (A1), (A2) 및 (AR)에 좌측에 위치한 블록 (L1), (L2) 및 (BL)보다 작은 색인값이 할당된다. 예컨대, 표 10 또는 표 11의 순서로 색인값이 할당될 수 있다.
1. 현재블록이 정사각 형태일 때
(L1), (L2), (A1), (A2), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L1), (L2), (BL), Planar, DC, (A1), (A2), (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A1), (A2), (AR), Planar, DC, (L1), (L2), (BL), and (AL)
1. 현재블록이 정사각 형태일 때
(L1), (L2), (A1), (A2), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L1), (L2), (BL), (A1), (A2), Planar, DC, (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A1), (A2), (AR), (L1), (L2), Planar, DC, (BL), and (AL)
실시예 2-6
본 실시예에서는 현재블록이 직사각 형태일 때에만 다수의 상단블록(A1, A2)과 다수의 좌측블록(L1, L2)을 MPM을 위한 후보블록으로 고려한다. 또한, 현재블록이 가로길이가 긴 형태인지 세로길이가 긴 형태인지 여부에 따라, 고려되는 상단블록 또는 좌측블록의 개수가 달라진다.
1. 현재블록이 정사각 형태일 때
(L2), (A2), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L1), (L2), (A2), Planar, DC, (BL), (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A1), (A2), (L2), Planar, DC, (AR), (BL), and (AL)
표 12를 참조하면, 현재블록이 정사각 형태일 때에는 L1과 A1은 고려되지 않고, (L2), (A2), Planar, DC, (BL), (AR), 및 (AL)의 순서로 각 인트라 예측모드에 색인값을 할당한다.
현재블록이 세로길이가 긴 직사각 형태일 때에는, 좌측에 위치한 L1는 후보로서 고려되나 상단의 A1은 고려되지 않는다. 그리고 (L1), (L2)에 (A2)보다 낮은 색인값을 할당되고, (BL)에 (AR)보다 작은 색인값이 할당된다. 반면, 현재블록이 가로길이가 긴 직사각 형태일 때에는, 상단의 A1은 후보로서 고려되나 좌측의 L1은 고려되지 않는다. 그리고 (A1), (A2)에 (L2)보다 작은 색인값이 할당되고, (AR)에 (BL)보다 작은 색인값이 할당된다.
실시예 2-7
실시예 2-7은 실시예 2-6과 유사하나, (BL)과 (AR)도 현재블록의 블록 형태에 따라 우선순위, 즉, 색인값을 할당하는 순서를 달리한다.
즉, 현재블록이 세로길이가 긴 직사각 형태일 때, (L1), (L2) 및 (BL)에 (A2)보다 작은 색인값을 할당한다. 반면, 현재블록이 가로길이가 긴 직사각 형태일 때에는, (A1), (A2) 및 (AR)에 (L2)보다 작은 색인값을 할당한다. 예컨대, 표 10 또는 표 11의 순서로 색인값이 할당될 수 있다.
1. 현재블록이 정사각 형태일 때
(L2), (A2), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L1), (L2), (BL), Planar, DC, (A2), (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A1), (A2), (AR), Planar, DC, (L2), (BL), and (AL)
1. 현재블록이 정사각 형태일 때
(L2), (A2), Planar, DC, (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L1), (L2), (BL), (A2), Planar, DC, (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A1), (A2), (AR), (L2), Planar, DC, (BL), and (AL)
실시예 2-2 내지 2-7에서는 현재블록의 형태에 따라 인트라 예측 모드들에 색인값을 할당하는 다양한 순서를 구체적인 예시를 들어 설명하였으나, 본 발명의 범위가 그 예시에 한정되지는 않는다. 현재블록이 가로길이보다 세로길이가 길 때 현재블록의 상단에 위치한 블록보다 좌측에 위치한 블록에 더 작은 색인값을 할당하고, 세로길이보다 가로길이가 길 때 좌측에 위치한 블록의 인트라 예측모드보다 상단에 위치한 블록의 인트라 예측 모드에 더 작은 색인값을 할당하는 방식을 취하는 한, 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
실시예 2-2 내지 2-7에서는 현재블록에 인접한 주변블록들의 인트라 예측모드들을 제외한 비방향성 모드 (planar 모드 및 DC 모드)의 순서는 주변블록들의 인트라 예측모드 사이에 놓일 수 있다. 예를 들어, DC 모드의 경우에는 좌상단블록(AL) 다음의 위치에 놓일 수 있다.
3. Selected Mode 그룹 생성 방법
Selected Mode 그룹은, MPM 그룹에 속한 인트라 예측모드를 제외한 나머지 모드들을 이용하여 생성된다. Selected Mode 그룹에 속하는 모드의 개수는 다양하게 설정할 수 있으나, 여기서는 16개인 것으로 설명한다.
총 67개 전체 예측모드 중에서 MPM 그룹에 속한 6개의 예측모드를 제외한 나머지 61개의 모드들을 재 인덱싱하면, 0번 인덱스부터 60번 인덱스까지 생성된다. Selected Mode 그룹은 재설정된 인덱스 번호를 기준으로 4의 배수의 모드번호를 가지는 인트라 예측모드들로 채워질 수 있다.
Selected Mode = {0, 4, 8, 12, 16, ......., 56, 60}
또한, Selected Mode 그룹은 MPM 그룹에 속한 각 MPM들을 이용하여 생성할 수도 있다. 예컨대, MPM 그룹 내에 속한 방향성 모드들에 순차적으로 오프셋(offset)을 적용하여 Selected Mode 그룹을 생성할 수도 있다. 순차적으로 적용되는 오프셋은, -1, +1, -2, +2, -3, +3, -4, +4 … 순서일 수 있고, 또는 -2, +2, -4, +4, -6, +6, -8, +8 … 의 순서일 수도 있다. 여기서, - 및 +의 순서는 바뀔 수도 있다.
예를 들어, -1, +1, -2, +2, -3, +3, -4, +4 …의 순서로 오프셋이 적용된다고 하자. MPM = {4, 18, 0, 35, 1, 58}인 경우, Selected Mode 그룹은 다음과 같이 생성된다.
Selected Mode = {3, 5, 17, 19, 34, 36, 57, 59, / 2, 6, 16, 20, 33, 37, 56, 60}
다른 예로, MPM = {16, 21, 22, 0, 1, 45}인 경우, Selected Mode 그룹은 다음과 같이 생성된다.
Selected Mode = {15, 17, 20, 23, 44, 46, / 14, 18, 19, 24, 43, 47, / 13, 25, 42, 48}
여기서, 이미 Selected Mode 그룹에 존재하는 모드와 중복되는 모드들은 추가되지 않는다.
다른 예로, Selected Mode 그룹은 MPM 그룹 설정 방법에 의해 선택가능한 인트라 예측모드 후보들 중에서 MPM 그룹으로 설정되지 않은 예측모드들을 Selected Mode 그룹에 포함할 수 있다. 예컨대, MPM 그룹 설정 방법에 의해 (중복된 예측모드를 제외하고) 10, 34, 0, 1, 2, 56, 14 모드들이 선택이 되고, 이 중 우선 순위에 따라 실제 MPM 그룹에 10, 34, 0, 1, 2 모드들이 설정되었다면, 남은 56, 14 모드들은 Selected Mode 그룹에 포함된다. 여기서, MPM의 개수를 5개인 경우를 예시로 들었지만, 이에 한정하지 않는다. 한편, MPM 그룹 설정 방법에 의해 선택 가능한 인트라 예측모드 후보들은, “2. MPM 그룹 생성 방법”에서 설명한 방법으로 도출 가능한 인트라 예측모드들의 전부 또는 일부일 수 있다. 예컨대, 그 인트라 예측모드 후보들은 주변 블록들의 인트라 예측모드들과 planar 모드, DC 모드를 포함하는 예측모드들일 수 있다. 또는, 주변 블록들의 인트라 예측모드들 중 방향성 모드들에 -1 또는 +1을 가산한 인트라 예측모드들을 더 포함할 수도 있고, 더 나아가 수직 모드, 수평 모드, 대각선 모드 등의 디폴트 모드들을 추가로 더 포함할 수도 있다.
Selected Mode 그룹의 16개 모드 중 2개의 예측모드(56, 14) 이외의 남은 예측모드들은 기설정된 인트라 예측모드들로 채워질 수 있다. 예컨대, 기설정된 예측모드에는 18, 4, 6, 8, 12, 14, 16, 20, 22, 24, 28, 30, 32, 9, 11, 25 순일 수 있다. 또한, 남은 14개의 예측모드들은 MPM 그룹 내에 속한 방향성 모드들에 순차적으로 오프셋(offset)을 적용하여 Selected Mode 그룹에 추가할 수 있다. 순차적으로 적용되는 오프셋은, -1, +1, -2, +2, -3, +3, -4, +4 … 순서일 수 있고, 또는 -2, +2, -4, +4, -6, +6, -8, +8 … 의 순서일 수도 있다. 여기서, - 및 +의 순서는 바뀔 수도 있다.
4. non-Selected Mode 그룹 생성 방법
non-Selected Mode 그룹은 전체 67개의 인트라 예측모드들 중에서 MPM 그룹 및 Selected Mode 그룹에 속하지 않는 나머지 모드들로 구성된다. 전체 67개의 인트라 예측모드들 중에서 MPM 그룹에 속하지 않은 모드들을 모드 번호의 오름차순으로 정렬한 후 정렬된 순서에 따라 4의 배수의 모드 번호를 가지는 인트라 예측모드들은 Selected Mode 그룹에 속하고, 4의 배수를 제외한 나머지 인트라 예측모드들이 non-Selected Mode 그룹에 속한다. non-Selected Modes 그룹은 다음과 같이 생성되고, mode 1부터 순차적으로 색인값이 정해진다.
non-Selected Modes 그룹 = {1, 2, 3, 5, 6, 7, 9, 10, …, 58, 59}
non-Selected Mode 그룹의 색인값은 TB 방식으로 이진화되므로, 색인값이 작을수록 소요되는 비트수가 감소한다. 따라서, non-Selected Mode 그룹에 속하는 인트라 예측모드들도 발생 빈도가 높은 모드들에 작은 색인값을 할당하는 것이 효율적일 수 있다.
하나의 실시예에서, MPM 그룹에 속하는 인트라 예측모드들 중 가장 낮은 색인값을 가지는 방향성 모드의 예측 방향에 근거하여, non-Selected Mode 그룹 내의 각 모드들에 색인값이 할당된다. 예컨대, MPM 그룹에 속하는 인트라 예측모드들 중 첫 번째 방향성 모드(가장 낮은 색인값을 가지는 방향성 모드)가 수평으로 지향된(vertically-oriented) 모드인 경우, 인트라 예측모드의 모드 번호가 클수록 큰 색인값을 할당하는 방식으로 non-Selected Mode 그룹에 속하는 인트라 예측모드들에 색인값을 할당한다. 반면, MPM 그룹에 속하는 인트라 예측모드들 중 첫 번째 방향성 모드가 수직으로 지향된(vertically-oriented) 모드인 경우, 인트라 예측모드의 모드 번호가 클수록 작은 색인값을 할당하는 방식으로 non-Selected Mode 그룹에 속하는 인트라 예측모드들에 색인값을 할당한다.
MPM 그룹에 속하는 첫 번째 방향성 모드가 mode 12라 하자. 도 4를 참조하면 mode 12는 수평으로 지향된 모드이므로, 모드 번호의 오름차순으로 나머지 모드들에 색인값을 순차적으로 할당하게 된다. 만약 MPM 그룹에 속하는 첫 번째 방향성 모드가 mode 40이라면, mode 40은 수직으로 지향된 모드이므로, 모드 번호의 내림차순으로 나머지 모드들에 색인값을 순차적으로 할당하게 된다.
다른 실시예로서, 현재블록의 형태에 따라 non-Selected Mode 그룹 내의 각 모드들에 색인값이 할당된다. 예컨대, 현재블록이 정사각 형태이거나 또는 가로길이보다 세로길이가 긴 블록 형태인 경우, 인트라 예측모드의 모드 번호가 클수록 큰 색인값을 할당하는 방식으로 non-Selected Mode 그룹에 속하는 인트라 예측모드들에 색인값을 할당한다. 반면, 현재블록이 세로길이보다 가로길이가 긴 블록 형태를 가질 때, 인트라 예측모드의 모드 번호가 클수록 작은 색인값을 할당하는 방식으로 non-Selected Mode 그룹에 속하는 인트라 예측모드들에 색인값을 할당한다.
도 8은 본 발명의 실시예에 따른 영상 복호화 장치를 도시한 것이다.
영상 복호화 장치는 복호화부(810), 역양자화부(820), 역변환부(830), 예측부(840), 가산기(850), 필터부(860) 및 메모리(870)를 포함한다. 도 2의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
복호화부(810)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출하여 복호화하고자 하는 현재블록을 결정하고, 현재블록을 복원하기 위해 필요한 예측 정보와 잔차신호에 대한 정보 등을 추출한다.
복호화부(810)는 SPS (Sequence Parameter Set) 또는 PPS (Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할 정보를 추출함으로써 CTU를 트리 구조를 이용하여 분할한다. 예컨대, QTBT 구조를 사용하여 CTU를 분할하는 경우, 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT의 분할과 관련된 제2 플래그(BT_split_flag) 및 분할 타입 정보를 추출하여 해당 리프 노드를 BT 구조로 분할한다.
도 3의 블록 분할 구조를 예로 들면, QTBT 구조의 최상위 레이어의 노드에 대응하는 QT 분할 플래그(QT_split_flag)를 추출한다. 추출된 QT 분할 플래그(QT_split_flag)의 값은 1이므로, 최상위 레이어의 노드는 하위 레이어(QT의 layer 1)의 네 개의 노드로 분할된다. 그리고, layer 1의 첫 번째 노드에 대한 QT 분할 플래그(QT_split_flag)를 추출한다. 추출된 QT 분할 플래그(QT_split_flag) 값은 0이므로, layer 1의 첫 번째 노드는 더 이상 QT 구조로 분할되지 않는다.
QT의 layer 1의 첫 번째 노드는 QT의 리프 노드가 되므로, QT의 layer 1의 첫 번째 노드를 BT의 루트 노드로 하는 BT로 진행한다. BT의 루트 노드, 즉 (layer 0))에 대응하는 BT 분할 플래그(BT_split_flag)를 추출한다. BT 분할 플래그(BT_split_flag)는 1이므로, BT의 루트 노드는 (layer 1)의 두 개의 노드로 분할된다. BT의 루트 노드가 분할되므로, BT의 루트 노드에 대응하는 블록이 세로로 분할되는지 아니면 가로로 분할되는지 여부를 지시하는 분할 타입 정보를 추출한다. 분할 타입 정보가 1이므로, BT의 루트 노드에 대응하는 블록은 세로로 분할된다. 이후, BT의 루트 노드로부터 분할된 (layer 1)의 첫 번째 노드에 대한 BT 분할 플래그(BT_split_flag)를 추출한다. BT 분할 플래그(BT_split_flag)가 1이므로, (layer 1)의 첫 번째 노드의 블록의 분할 타입 정보를 추출한다. (layer 1)의 첫 번째 노드의 블록의 분할 타입 정보가 1이므로 (layer 1)의 첫 번째 노드의 블록은 세로로 분할된다. 이후, BT의 루트 노드로부터 분할된 (layer 1)의 두 번째 노드의 BT 분할 플래그(BT_split_flag)를 추출한다. BT 분할 플래그(BT_split_flag)가 0이므로, 더 이상 BT에 의해 분할되지 않는다.
이렇게, 복호화부(810)는 먼저 QT 분할 플래그(QT_split_flag)를 반복적으로(recursively) 추출하여 CTU를 QT 구조로 분할한다. 그리고 QT의 리프 노드에 대해서는 BT 분할 플래그(BT_split_flag)를 추출하고, BT 분할 플래그(BT_split_flag)가 분할을 지시하면 분할 타입 정보를 추출한다. 이러한 방식을 통해 복호화부(810)은 CTU가 도 3의 (a)와 같은 구조로 분할됨을 확인할 수 있다.
한편, SPS 또는 PPS에 MinQTSize, MaxBTSize, MaxBTDepth, MinBTSize 등의 정보가 추가로 정의되어 있는 경우에는, 복호화부(810)는 해당 정보를 추출하고 QT 및 BT에 대한 분할 정보를 추출할 때 이 정보를 반영할 수 있다.
예컨대, QT에서 MinQTSize 과 동일한 크기를 가지는 블록은 더 이상 분할되지 않는다. 따라서 복호화부(810)는 해당 블록의 QT에 관한 분할 정보(QT 분할 플래그)를 비트스트림으로부터 추출하지 않으며(즉, 비트스트림에는 해당 블록의 QT 분할 플래그가 존재하지 않음), 그 값을 자동으로 0으로 설정한다. 또한, QT에서 MaxBTSize보다 큰 크기를 가지는 블록은 BT가 존재하지 않는다. 따라서, 복호화부(810)는 QT에서 MaxBTSize보다 큰 크기의 블록을 가지는 리프 노드에 대한 BT 분할 플래그가 추출하지 않으며, BT 분할 플래그를 자동으로 0으로 설정한다. 또한, BT의 해당 노드의 심도(depth)가 MaxBTDepth에 도달하면, 해당 노드의 블록은 더 이상 분할되지 않는다. 따라서, 해당 노드의 BT 분할 플래그를 비트스트림으로부터 추출되지 않으며, 그 값을 자동으로 0으로 설정한다. 또한, BT에서 MinBTSize와 동일한 크기를 가지는 블록은 더 이상 분할되지 않는다. 따라서, 복호화부(810)는 MinBTSize와 동일한 크기를 가지는 블록의 BT 분할 플래그를 비트스트림으로부터 추출되지 않으며, 그 값을 자동으로 0으로 설정한다.
한편, 복호화부(810)는 트리 구조의 분할을 통해 복호화하고자 하는 현재블록을 결정하게 되면, 현재블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다.
예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(810)는 현재블록의 인트라 예측정보(인트라 예측모드)에 대한 신택스 요소를 복호화하여 인트라 예측부(842)로 전달한다. 상기 신택스 요소에는 복수의 그룹 중 현재블록의 인트라 예측모드가 속하는 그룹을 식별하기 위한 정보 및 현재블록의 인트라 예측모드가 속하는 그룹 내에서 현재블록의 인트라 예측모드를 지시하기 위한 색인정보가 포함된다. 즉, 복호화부(810)는 현재블록의 인트라 예측모드가 속하는 그룹을 식별하기 위한 정보를 복호화하고, 식별된 그룹 내에서 현재블록의 인트라 예측모드를 지시하기 위한 색인정보를 복호화한다.
일 실시예로서, 도 9를 참조하면, 복호화부(810)는 현재블록의 인트라 예측모드가 MPM 그룹 내에서 선택되는지 여부를 지시하는 제1 플래그를 복호화한다(S902). 제1 플래그가 현재블록의 인트라 예측모드가 MPM 그룹 내에서 선택됨을 지시하면(예컨대, 제1 플래그 = 1), 복호화부(810)는 MPM 그룹에 속하는 인트라 예측모드들 중 현재블록의 인트라 예측모드를 지시하는 제1 색인정보를 복호화한다(S904, S906). 반면, 제1 플래그가 현재블록의 인트라 예측모드가 MPM 그룹 내에서 선택되지 않음을 지시하면(예컨대, 제1 플래그 = 0), 복호화부(810)는 현재블록의 인트라 예측모드가 Selected Mode 그룹 내에서 선택되는지 여부를 지시하는 제2 플래그를 복호화한다(S908).
제2 플래그가 현재블록의 인트라 예측모드가 Selected Mode 그룹 내에서 선택됨을 지시하면(예컨대, 제2 플래그 = 1), 복호화부(810)는 Selected Mode 그룹 내에서 현재블록의 인트라 예측모드를 지시하기 위한 제2 색인정보를 복호화한다(S910, S912).
반면, 제2 플래그가 현재블록의 인트라 예측모드가 Selected Mode 그룹 내에서 선택되지 않음을 지시하면(예컨대, 제2 플래그 = 0), 복호화부(810)는 non-Selected Mode 그룹 내에서 현재블록의 인트라 예측모드를 지시하기 위한 제3 색인정보를 복호화한다(S910, S914).
한편, 복호화부(810)는 잔차신호에 대한 정보로서 현재블록의 양자화된 변환계수들에 대한 정보를 추출한다.
역양자화부(820)는 양자화된 변환계수들을 역양자화하고 역변환부(830)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재블록에 대한 잔차블록을 생성한다.
예측부(840)는 인트라 예측부(642) 및 인터 예측부(644)를 포함한다. 인트라 예측부(842)는 현재블록의 예측 타입인 인트라 예측일 때 활성화되고, 인터 예측부(844)는 현재블록의 예측 타입인 인트라 예측일 때 활성화된다.
인트라 예측부(842)는 복호화부(810)로부터 추출된 인트라 예측모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재블록 주변의 참조 픽셀들을 이용하여 현재블록을 예측한다. 인트라 예측부(842)는 복호화부(810)로부터 복호화된 현재블록의 인트라 예측모드가 속하는 그룹을 식별하기 위한 정보에 의해 현재블록의 인트라 예측모드가 속하는 그룹이 결정되면, 전체 인트라 예측모드들 중 일부를 해당 그룹 내에 포함시킨다. 그리고 복호화부(810)로부터 복호화된 색인정보를 이용하여 해당 그룹의 인트라 예측모드들 중에서 현재블록의 인트라 예측모드를 결정한다.
예컨대, 도 9 및 10을 참조하면, 인트라 예측부(842)는 MPM 그룹을 생성한다(S1002). 그리고, 복호화부(810)로부터 복호화된 제1 플래그가 현재블록의 인트라 예측모드가 MPM 그룹에 속함을 지시하면, 제1 색인정보를 이용하여 MPM 그룹 내의 인트라 예측모드들 중에서 현재블록의 인트라 예측모드를 결정한다(S1004, S1006).
만약 제1 플래그가 현재블록의 인트라 예측모드가 MPM 그룹에 속하지 않음을 지시하면, 인트라 예측부(842)는 Selected Mode 그룹을 생성한다(S1004, S1008). 그리고 복호화부(810)로부터 복호화된 제2 플래그가 현재블록의 인트라 예측모드가 Selected Mode 그룹에 속함을 지시하면, 제2 색인정보를 이용하여 Selected Mode 그룹 내의 인트라 예측모드들 중에서 현재블록의 인트라 예측모드를 결정한다(S1010, S1012).
만약 제2 플래그가 현재블록의 인트라 예측모드가 Selected Mode 그룹에 속하지 않음을 지시하면, 인트라 예측부(842)는 non-Selected Mode 그룹을 생성한다(S1010, S1014). 그리고, 복호화부(810)로부터 복호화된 제3 색인정보를 이용하여 non-Selected Mode 그룹 내의 인트라 예측모드들 중에서 현재블록의 인트라 예측모드를 결정한다(S1016).
인트라 예측부(842)가 MPM 그룹, Selected Mode 그룹 및 non-Selected Mode 그룹을 생성하고, 각 그룹에 색인값을 할당하는 방법은 영상 부호화 장치(200)와 동일하므로 더 이상의 상세한 설명은 생략한다.
인터 예측부(844)는 복호화부(810)로부터 추출된 인터 예측정보에 대한 신택스 요소를 이용하여 현재블록의 움직임정보를 결정하고, 결정된 움직임정보를 이용하여 현재블록을 예측한다.
가산기(850)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.
필터부(860)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(870)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 복호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조픽처로 사용된다.
현재블록의 픽셀값들은 휘도(luminance) 성분과 색차(chrominance) 성분을 포함한다. 이상에서 설명한 인트라 예측 모드 부호화는 휘도성분으로 이루어진 휘도블록(luma block)에 적용된다. 이하에서는, 색차성분으로 이루어진 색차블록(chroma block)의 인트라 예측모드를 부호화 또는 복호화하기 위한 방법에 대해 기술한다.
색차블록의 인트라 예측모드는 전체 인트라 예측모드들 중 일부를 포함하는 후보 인트라 예측모드들 중에서 결정된다. 색차블록의 후보 인트라 예측모드로는 다음의 모드들이 포함될 수 있다.
- DM (direct mode): 색차블록과 동일한 위치의 휘도블록이 가지는 인트라 예측모드
- 주변 모드 (neighboring mode): 색차블록에 인접한 주변 색차블록들의 인트라 예측모드들
본 실시예는, 하나 이상의 DM과 하나 이상의 주변 모드를 이용하여 색차블록의 인트라 예측모드를 위한 후보 그룹을 구성한다.
DM (direct mode)
CTU의 휘도성분과 색차성분은 동일한 QTBT 구조로 분할될 수 있다. 이 경우, 색차블록과 동일한 위치의 휘도블록은 하나이므로 휘도블록의 인트라 예측모드가 색차블록의 인트라 예측모드로 결정된다.
CTU의 휘도성분과 색차성분은 서로 다른 QTBT 구조로 분할될 수도 있다. 도 11의 (a)는 휘도블록의 QTBT 분할 구조를, (b)는 색차블록의 QTBT 구조를 나타낸다. 색차블록의 QTBT 구조에서 빗금친 좌측 색차블록에 대응하는 휘도블록은 도 11(a)에서 빗금친 좌측블록이다. 이 빗금친 좌측 휘도블록은 다수의 휘도블록들을 포함한다. 이 경우, 좌측 색차블록에 대응하는 좌측 휘도블록 내에서 특정 위치의 픽셀을 포함하는 휘도블록들의 인트라 예측모드를 이용하여 DM을 결정한다. 예컨대, 중심 픽셀(CR), 최좌상단 픽셀(TL), 최우상단 픽셀(TR), 죄좌하단 픽셀(BL), 최우하단 픽셀(BR)의 순서로 해당 픽셀들 포함하는 휘도블록을 체크하여 유효한 휘도블록의 인트라 예측모드를 하나 이상의 DM 모드들로 순차적으로 선정한다.
주변 모드 (neighboring mode)
주변 모드들은 현재 색차블록에 인접한 주변 색차블록들의 인트라 예측모드들로부터 유도될 수 있다. 도 6을 참조하면, 현재 색차블록의 좌측 색차블록(L), 상단 색차블록(A), 좌하단 색차블록(BL), 우상단 색차블록(AR), 좌상단 색차블록(AL)의 전부 또는 일부가 주변 색차블록들로 사용될 수 있다. 후보 그룹에 포함되는 우선순위는 좌측 색차블록(L), 상단 색차블록(A), 좌하단 색차블록(BL), 우상단 색차블록(AR), 좌상단 색차블록(AL)의 순서일 수 있다. 즉, 좌측 색차블록(L), 상단 색차블록(A), 좌하단 색차블록(BL), 우상단 색차블록(AR), 좌상단 색차블록(AL) 순서로 색인값이 증가한다.
또는, 현재 색차블록의 형태에 따라 후보 그룹에 포함되는 우선순위, 즉, 색인값을 할당하는 순서를 달리 결정할 수도 있다. 현재 색차블록이 정사각 형태이면, 위도 동일한 순서로 색인값이 할당된다. 현재 색차블록이 가로길이보다 세로길이가 길 때에는, 현재블록의 상단에 위치한 블록보다 좌측에 위치한 블록에 더 낮은 색인값을 할당한다. 반면, 세로길이보다 가로길이가 길 때 좌측에 위치한 블록의 인트라 예측모드보다 상단에 위치한 블록의 인트라 예측 모드에 더 낮은 색인값을 할당한다. 예컨대, 표 15 또는 표 16의 순서로 색인값이 할당될 수 있다. 현재 색차블록의 인트라 예측모드를 지시하는 색인값은 truncated unary 형태로 이진화될 수 있다.
1. 현재블록이 정사각 형태일 때
(L), (A), (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L), (A), (BL), (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A), (L), (AR), (BL), and (AL)
1. 현재블록이 정사각 형태일 때
(L), (A), (BL), (AR), and (AL)

2. 현재블록이 가로길이보다 세로길이가 긴 직사각 형태일 때
(L), (BL), (A), (AR), and (AL)

3. 현재블록이 세로길이보다 가로길이가 긴 직사각 형태일 때
(A), (AR), (L), (BL), and (AL)
본 실시예의 영상 부호화 장치는 하나 이상의 DM과 하나 이상의 주변 모드들을 포함하는 후보 그룹 내에서 현재 색차블록의 인트라 예측모드를 지시하기 위한 색인정보를 부호화하여 영상 복호화 장치로 전달하고, 영상 복호화 장치는 영상 부호화 장치와 동일한 방식으로 하나 이상의 DM과 하나 이상의 주변 모드들을 포함하는 후보 그룹을 생성한 이후에, 수신한 색인정보를 이용하여 현재 색차블록의 인트라 예측모드를 결정한다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 부호화 대상 블록인 현재블록의 인트라 예측모드를 부호화하는 방법에 있어서,
    상기 현재블록의 주변블록들의 인트라 예측모드를 이용하여 제1 그룹의 인트라 예측모드들을 결정하고, 상기 현재블록의 인트라 예측모드가 상기 제1 그룹에 속하는지 여부를 지시하는 제1 플래그를 부호화하는 단계;
    상기 현재블록의 인트라 예측모드가 상기 제1 그룹에 속할 때, 상기 제1 그룹에서 상기 현재블록의 인트라 예측모드를 지시하기 위한 제1 색인정보를 부호화하는 단계;
    상기 현재블록의 인트라 예측모드가 상기 제1 그룹에 속하지 않을 때, 기정의된 모드 번호를 가지는 인트라 예측모드들로 구성되거나 또는 상기 제 1그룹 내의 방향성 모드로부터 도출된 인트라 예측모드들로 구성된 제2 그룹을 결정하고 상기 현재블록의 인트라 예측모드가 상기 제2 그룹에 속하는지 여부를 지시하는 제2 플래그를 부호화 단계;
    상기 현재블록의 인트라 예측모드가 상기 제2 그룹에 속할 때 상기 제2 그룹에서 상기 현재블록의 인트라 예측모드를 지시하기 위한 제2 색인정보를 부호화하는 단계; 및
    상기 현재블록의 인트라 예측모드가 상기 제2 그룹에 속하지 않을 때, 상기 제1 그룹 및 상기 제2 그룹에 속하는 인트라 예측모드들을 제외한 나머지 인트라 예측모드들로 구성된 제3 그룹에서 상기 현재블록의 인트라 예측모드를 지시하기 위한 제3 색인정보를 부호화하는 단계를 포함하되,
    상기 제1 그룹에 속하는 인트라 예측모드들 중 가장 낮은 색인값을 가지는 방향성 모드의 예측 방향 또는 상기 현재블록의 블록 형태(shape)에 근거하여 상기 제3 그룹에 속하는 인트라 예측모드들에 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드를 부호화하는 방법.
  2. 제1항에 있어서,
    상기 제1 그룹에 속하는 인트라 예측모드들 중 가장 낮은 색인값을 가지는 방향성 모드가 수평으로 지향된 모드인 경우, 인트라 예측모드의 모드 번호가 클수록 큰 색인값을 할당하는 방식으로 상기 제3 그룹에 속하는 인트라 예측모드들에 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 부호화 방법.
  3. 제1항에 있어서,
    상기 제1 그룹에 속하는 인트라 예측모드들 중 가장 낮은 색인값을 가지는 방향성 모드가 수직으로 지향된 모드인 경우, 인트라 예측모드의 모드 번호가 클수록 작은 색인값을 할당하는 방식으로 상기 제3 그룹에 속하는 인트라 예측모드들에 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 부호화 방법.
  4. 부호화 대상 블록인 현재블록의 인트라 예측모드를 부호화하는 방법에 있어서
    전체 인트라 예측모드들 중 일부를 포함하는 후보 그룹을 생성하는 단계; 및
    상기 후보 그룹에 속하는 인트라 예측모드들 중 상기 현재블록의 인트라 예측모드를 지시하기 위한 색인정보를 부호화하는 단계를 포함하되,
    상기 현재블록의 블록 형태(shape)에 근거하여 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값이 할당되는 것을 특징으로 하는 인트라 예측모드 부호화 방법.
  5. 제4항에 있어서,
    상기 후보 그룹은 상기 현재블록의 주변블록의 인트라 예측모드들로부터 유도된 MPM(most probable mode)들로 구성된 것을 특징으로 하는 인트라 예측모드 부호화 방법.
  6. 제5항에 있어서,
    상기 현재블록이 세로길이보다 가로길이가 긴 블록 형태를 가질 때,
    상기 현재블록의 좌측블록의 인트라 예측모드보다 상단블록의 인트라 예측모드에 더 작은 색인값을 할당하고,
    좌측하단블록의 인트라 예측모드보다 우측상단블록의 인트라 예측모드에 더 작은 색인값을 할당하는 특징으로 것을 하는 인트라 예측모드 부호화 방법.
  7. 제5항에 있어서,
    상기 현재블록이 가로길이보다 세로길이가 긴 블록 형태를 가질 때,
    상기 현재블록의 상단블록의 인트라 예측모드보다 좌측블록의 인트라 예측모드에 더 작은 색인값을 할당하고,
    우측상단블록의 인트라 예측모드보다 좌측하단블록의 인트라 예측모드에 더 작은 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 부호화 방법.
  8. 제4항에 있어서,
    상기 후보 그룹은 전체 인트라 예측모드들 중 기결정된 인트라 예측모드들을 제외한 나머지 인트라 예측모드들로 구성된 것을 특징으로 하되,
    상기 기결정된 인트라 예측모드들은,
    상기 현재블록의 주변블록의 인트라 예측모드들로부터 유도된 MPM(most probable mode)들, 및
    기 정의된 모드 번호들을 가지는 인트라 예측모드들, 또는 상기 MPM(most probable mode)들 중 방향성 모드로부터 도출된 인트라 예측모드들
    을 포함하는 것을 특징으로 하는 인트라 예측모드 복호화 방법.
  9. 제8항에 있어서,
    상기 현재블록이 세로길이보다 가로길이가 긴 블록 형태를 가질 때, 인트라 예측모드의 모드 번호가 클수록 큰 색인값을 할당하는 방식으로 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 부호화 방법.
  10. 제8항에 있어서,
    상기 현재블록이 가로길이보다 세로길이가 긴 블록 형태를 가질 때, 인트라 예측모드의 모드 번호가 클수록 큰 색인값을 할당하는 방식으로 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 부호화 방법.
  11. 복호화 대상 블록인 현재블록의 인트라 예측모드를 복호화하는 방법에 있어서,
    비트스트림으로부터 상기 현재블록의 인트라 예측모드를 식별하기 위한 색인정보를 복호화하는 단계;
    전체 인트라 예측모드들 중 일부를 포함하는 후보 그룹을 생성하는 단계; 및
    상기 후보 그룹에 속하는 인트라 예측모드들 중에서 상기 색인정보에 의해 지시되는 인트라 예측모드를 상기 현재블록의 인트라 예측모드로 결정하는 단계를 포함하되,
    상기 현재블록의 블록 형태(shape)에 근거하여 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값이 할당되는 것을 특징으로 하는 인트라 예측모드 복호화 방법.
  12. 제11항에 있어서,
    상기 후보 그룹은 상기 현재블록의 주변블록의 인트라 예측모드들로부터 유도된 MPM(most probable mode)들로 구성된 것을 특징으로 하는 인트라 예측모드 복호화 방법.
  13. 제12항에 있어서,
    제5항에 있어서,
    상기 현재블록이 세로길이보다 가로길이가 긴 블록 형태를 가질 때,
    상기 현재블록의 좌측블록의 인트라 예측모드보다 상단블록의 인트라 예측모드에 더 작은 색인값을 할당하고,
    좌측하단블록의 인트라 예측모드보다 우측상단블록의 인트라 예측모드에 더 작은 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 복호화 방법.
  14. 제12항에 있어서,
    상기 현재블록이 가로길이보다 세로길이가 긴 블록 형태를 가질 때,
    상기 현재블록의 상단블록의 인트라 예측모드보다 좌측블록의 인트라 예측모드에 더 작은 색인값을 할당하고,
    우측상단블록의 인트라 예측모드보다 좌측하단블록의 인트라 예측모드에 더 작은 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 복호화 방법.
  15. 제11항에 있어서,
    상기 후보 그룹은 전체 인트라 예측모드들 중 기결정된 인트라 예측모드들을 제외한 나머지 인트라 예측모드들로 구성된 것을 특징으로 하되,
    상기 기결정된 인트라 예측모드들은,
    상기 현재블록의 주변블록의 인트라 예측모드들로부터 유도된 MPM(most probable mode)들, 및
    기 정의된 모드 번호들을 가지는 인트라 예측모드들, 또는 상기 MPM(most probable mode)들 중 방향성 모드로부터 도출된 인트라 예측모드들
    을 포함하는 것을 특징으로 하는 인트라 예측모드 복호화 방법.
  16. 제15항에 있어서,
    상기 현재블록이 세로길이보다 가로길이가 긴 블록 형태를 가질 때, 인트라 예측모드의 모드 번호가 클수록 작은 색인값을 할당하는 방식으로 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 복호화 방법.
  17. 제15항에 있어서,
    상기 현재블록이 가로길이보다 세로길이가 긴 블록 형태를 가질 때, 인트라 예측모드의 모드 번호가 클수록 큰 색인값을 할당하는 방식으로 상기 후보 그룹에 속하는 인트라 예측모드들에 색인값을 할당하는 것을 특징으로 하는 인트라 예측모드 복호화 방법.
KR1020180001598A 2017-08-31 2018-01-05 인트라 예측을 이용한 영상의 부호화 및 복호화 KR102489081B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2018/010085 WO2019045498A1 (ko) 2017-08-31 2018-08-30 인트라 예측을 이용한 영상의 부호화 및 복호화

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170111368 2017-08-31
KR20170111368 2017-08-31

Publications (2)

Publication Number Publication Date
KR20190024561A true KR20190024561A (ko) 2019-03-08
KR102489081B1 KR102489081B1 (ko) 2023-01-16

Family

ID=65800849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180001598A KR102489081B1 (ko) 2017-08-31 2018-01-05 인트라 예측을 이용한 영상의 부호화 및 복호화

Country Status (1)

Country Link
KR (1) KR102489081B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130109976A (ko) * 2010-05-30 2013-10-08 엘지전자 주식회사 향상된 인트라 예측 모드 시그날링
KR20140017014A (ko) * 2011-06-03 2014-02-10 퀄컴 인코포레이티드 방향성 파티션들에 의한 인트라 예측 모드 코딩
KR101585565B1 (ko) * 2011-06-17 2016-01-14 미디어텍 인크. 인트라 예측 모드의 코딩을 위한 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130109976A (ko) * 2010-05-30 2013-10-08 엘지전자 주식회사 향상된 인트라 예측 모드 시그날링
KR20140017014A (ko) * 2011-06-03 2014-02-10 퀄컴 인코포레이티드 방향성 파티션들에 의한 인트라 예측 모드 코딩
KR101585565B1 (ko) * 2011-06-17 2016-01-14 미디어텍 인크. 인트라 예측 모드의 코딩을 위한 방법 및 장치

Also Published As

Publication number Publication date
KR102489081B1 (ko) 2023-01-16

Similar Documents

Publication Publication Date Title
US11381815B2 (en) Apparatus and method for video encoding or decoding
KR102613966B1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN110169065B (zh) 用于对图像进行编码或解码的设备和方法
KR102488123B1 (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
CN110089113B (zh) 图像编码/解码方法、设备以及用于存储比特流的记录介质
KR20190083948A (ko) 영상을 부호화 또는 복호화하는 방법 및 장치
US11689718B2 (en) Apparatus and method for video encoding or decoding
KR20210035036A (ko) 시간적 움직임벡터 예측자 유도 방법 및 영상 복호화 장치
KR102390384B1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
KR102489081B1 (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
KR102668525B1 (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
KR20240074734A (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
KR20240074733A (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
KR20240074736A (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
KR20240074735A (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
KR20230010804A (ko) 인트라 예측을 이용한 영상의 부호화 및 복호화
KR20200084746A (ko) 화면 내 예측 방법에서 화면 내 모드를 부호화/복호화하는 방법 및 장치
KR20200081186A (ko) 시간적 후보의 움직임 벡터 유도 방법 및 이를 이용한 영상 복호화 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant