KR20210124069A - 영상 부호화 및 복호화 방법 및 장치 - Google Patents

영상 부호화 및 복호화 방법 및 장치 Download PDF

Info

Publication number
KR20210124069A
KR20210124069A KR1020210043214A KR20210043214A KR20210124069A KR 20210124069 A KR20210124069 A KR 20210124069A KR 1020210043214 A KR1020210043214 A KR 1020210043214A KR 20210043214 A KR20210043214 A KR 20210043214A KR 20210124069 A KR20210124069 A KR 20210124069A
Authority
KR
South Korea
Prior art keywords
block
split
mode
prediction
prediction mode
Prior art date
Application number
KR1020210043214A
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 KR20210124069A publication Critical patent/KR20210124069A/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/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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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

본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 현재 블록에 분할 블록 예측이 적용되는 경우, 상기 현재 블록의 분할 블록 예측 모드를 결정하고, 상기 분할 블록 예측 모드에 따라 분할된 분할 유닛들의 움직임 정보를 유도하고, 상기 움직임 정보에 기초하여 상기 분할 유닛들 각각에 대한 움직임 보상을 수행함으로써 상기 현재 블록의 예측 블록을 생성할 수 있다.

Description

영상 부호화 및 복호화 방법 및 장치{METHOD AND APPARATUS FOR ENCODING AND DECODING IMAGE}
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것이다.
고해상도 비디오에 대한 시장의 수요가 증가하고 있으며, 이에 따라 고해상도 영상을 효율적으로 압축할 수 있는 기술이 필요하다. 이러한 시장의 요구에 따라 ISO/IEC의 MPEG (Moving Picture Expert Group)과 ITU-T의 VCEG (Video Coding Expert Group)이 공동으로 JCT-VC (Joint Collaborative Team on Video Coding)를 결성하여, HEVC (High Efficiency Video Coding) 비디오 압축 표준을 2013년 1월에 개발을 완료했으며, 차세대 압축 표준에 대한 연구 및 개발을 활발히 진행해오고 있다.
동영상 압축은 크게 화면 내 예측, 화면 간 예측, 변환, 양자화, 엔트로피(Entropy coding) 부호화, 인루프 필터(In-loop filter)로 구성된다. 이 중, 화면 내 예측은 현재 블록 주변에 존재하는 복원된 화소들을 이용하여 현재 블록을 위한 예측 블록을 생성하는 기술을 말한다. 부호화기는 화면 내 예측에 사용된 화면 내 예측 모드를 부호화하고, 복호화기는 부호화된 화면 내 예측 모드를 복원하여 화면 내 예측을 수행한다.
본 발명은 보다 효율적인 화면간 예측 방법을 제공하고자 한다.
또한, 본 발명은 분할 블록 예측에 기반한 화면간 예측 방법을 제공하고자 한다.
또한, 본 발명은 분할 블록 예측 모드를 지시하는 부호화 정보를 각도 및 거리로 분할하여 부호화/복호화하는 방법을 제공하고자 한다.
본 발명에 따른 영상 부호화 방법 및 장치는, 현재 블록의 분할 블록 예측 모드를 결정하고, 상기 분할 블록 예측 모드에 따라 분할된 분할 유닛들의 움직임 정보를 유도하고, 상기 움직임 정보에 기초하여 상기 분할 유닛들 각각에 대한 움직임 보상을 수행함으로써 상기 현재 블록의 예측 블록을 생성할 수 있다.
본 발명에 따른 영상 복호화 방법 및 장치는, 현재 블록에 분할 블록 예측이 적용되는 경우, 상기 현재 블록의 분할 블록 예측 모드를 결정하고, 상기 분할 블록 예측 모드에 따라 분할된 분할 유닛들의 움직임 정보를 유도하고, 상기 움직임 정보에 기초하여 상기 분할 유닛들 각각에 대한 움직임 보상을 수행함으로써 상기 현재 블록의 예측 블록을 생성할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 분할 블록 예측이 적용되는 경우, 상기 현재 블록은 상기 현재 블록 내 특정 라인에 기초하여 2개의 분할 유닛들로 분할되고, 상기 현재 블록 내 특정 라인은 상기 분할 블록 예측 모드에 의해 식별될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 분할 블록 예측 모드를 결정하는 단계는, 기-정의된 조건을 만족하는 경우, 상기 분할 블록 예측 모드의 분할 각도 및 분할 거리의 조합들 중 특정 조합을 지시하는 조합 인덱스를 획득하는 단계를 포함하고, 상기 기-정의된 조건을 만족하지 않는 경우, 상기 조합 인덱스는 0의 값으로 추론될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 조합 인덱스는 고정 길이 부호화 기법을 이용하여 이진화될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 분할 블록 예측 모드를 결정하는 단계는, 상기 분할 블록 예측 모드의 분할 각도를 지시하는 분할 각도 인덱스를 획득하는 단계; 및 상기 분할 블록 예측 모드의 분할 거리를 지시하는 분할 거리 인덱스를 획득하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 분할 각도는 또는 상기 분할 거리 중 적어도 하나는, 부호화 파라미터에 따라 가변적으로 정의되고, 상기 부호화 파라미터는 양자화 파라미터, 슬라이스 타입, 색 성분, 블록의 크기, 블록의 형태 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 분할 블록 예측 모드는 적어도 하나의 가장 빈번한 모드(most frequent mode, MFM)를 포함하고, 상기 MFM은 상기 현재 블록의 공간적 또는 시간적으로 이웃하는 블록의 분할 블록 예측 모드들에 기초하여 유도되는 모드를 나타낼 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 분할 블록 예측 모드를 결정하는 단계는, 상기 MFM이 상기 현재 블록의 분할 블록 예측에 이용되는지 여부를 지시하는 MFM 플래그를 획득하는 단계; 및 상기 MFM이 복수 개인 경우, 상기 복수의 MFM 중에서 상기 현재 블록의 분할 블록 예측에 이용되는 MFM을 지시하는 MFM 인덱스를 획득하는 단계를 포함할 수 있다.
본 발명에 따른 비디오 신호 처리 방법 및 장치는 분할 블록 예측에 기반한 화면간 예측을 통해 예측의 정확도 및 영상 코딩 효율을 향상시킬 수 있다.
또한, 본 발명에 따른 비디오 신호 처리 방법 및 장치는 분할 블록 예측 모드를 지시하는 부호화 정보를 각도 및 거리로 분할하여 각 정보의 발생 확률을 집중시킴으로써 코딩 효율을 높이고 엔트로피 부호화 성능을 향상시킬 수 있다.
또한, 본 발명에 따른 비디오 신호 처리 방법 및 장치는 분할 블록 예측을 위한 가장 빈번한 모드 리스트(most frequent mode list)를 구성하여 가장 빈번한 모드에 기존보다 더 적은 비트를 할당함으로써 비트 오버헤드를 줄이고, 비디오 신호 코딩 효율을 향상시킬 수 있다.
도 1은 본 개시에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 개시에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 본 개시의 일 실시예에 따른 분할 블록 예측 방법을 나타내는 흐름도이다.
도 4 내지 도 8은 본 개시의 일 실시예에 따른 분할 블록 예측 모드를 도시한다.
도 9는 본 개시의 일 실시예에 따른 서브블록 단위로 가장 빈번한 모드(Most Frequent Mode)를 유도하는 방법을 예시하는 도면이다.
도 10 내지 도 13은 본 개시의 일 실시예에 따른 주변 블록의 분할 블록 예측 모드를 기반으로 가장 빈번한 모드(Most Frequent Mode)를 유도하는 방법을 설명하기 위한 도면이다.
도 14는 본 개시의 일 실시예에 따른 가장 빈번한 모드(Most Frequent Mode) 및 가능성 높은 모드(Most Probable Mode)에 대한 복호화 흐름도를 예시하는 도면이다.
도 15 및 도 16은 본 개시의 일 실시예에 따른 분할 블록 예측 방법을 설명하기 위한 도면이다.
도 17은 본 개시의 일 실시예에 따른 분할 블록 예측 방법이 적용되는 신택스 구조를 예시하는 도면이다.
본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부에 다른 구성 또는 다른 단계가 삽입될 수 있다.
또한, 본 발명의 제1 실시예의 일부 구성 또는 일부 단계는 본 발명의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는 일부 단계를 대체할 수 있다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
본 명세서에서, 블록은 단위, 영역, 유닛, 파티션 등으로 다양하게 표현될 수 있고, 샘플은 화소, 펠(pel), 픽셀 등으로 다양하게 표현될 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 개시에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 픽쳐 분할부(110), 예측부(120, 125), 변환부(130), 양자화부(135), 재정렬부(160), 엔트로피 부호화부(165), 역양자화부(140), 역변환부(145), 필터부(150) 및 메모리(155)를 포함할 수 있다.
픽쳐 분할부(110)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 단위(Prediction Unit: PU)일 수도 있고, 변환 단위(Transform Unit: TU)일 수도 있으며, 부호화 단위(Coding Unit: CU)일 수도 있다. 이하, 본 개시의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다. 부호화 단위를 기초로 인트라 예측을 수행하는 예측 단위를 생성시 최소 부호화 단위가 아닌 경우, 복수의 예측 단위 NxN으로 분할하지 않고 인트라 예측을 수행할 수 있다.
예측부(120, 125)는 인터 예측 또는 화면 간 예측을 수행하는 인터 예측부(120)와 인트라 예측 또는 화면 내 예측을 수행하는 인트라 예측부(125)를 포함할 수 있다. 예측 단위에 대해 인터 예측을 사용할 것인지 또는 인트라 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 인트라 예측 모드, 움직임 벡터, 참조 픽쳐 등)를 결정할 수 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(130)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(165)에서 부호화되어 복호화기에 전달될 수 있다.
인터 예측부(120)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 단위를 예측할 수도 있고, 경우에 따라서는 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로 예측 단위를 예측할 수도 있다. 인터 예측부(120)는 참조 픽쳐 보간부, 움직임 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(155)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
움직임 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 움직임 예측을 수행할 수 있다. 움직임 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 움직임 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 움직임 벡터값을 가질 수 있다. 움직임 예측부에서는 움직임 예측 방법을 다르게 하여 현재 예측 단위를 예측할 수 있다. 움직임 예측 방법으로 스킵 모드(Skip Mode), 병합 모드(Merge 모드), AMVP 모드(AMVP Mode), 인트라 블록 카피(Intra Block Copy) 모드, 어파인 모드(Affine mode) 등 다양한 방법이 사용될 수 있다.
인트라 예측부(125)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 단위를 생성할 수 있다. 현재 예측 단위의 주변 블록이 인터 예측을 수행한 블록이어서, 참조 픽셀이 인터 예측을 수행한 픽셀일 경우, 인터 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 인트라 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
또한, 예측부(120, 125)에서 생성된 예측 단위를 기초로 예측을 수행한 예측 단위와 예측 단위의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력될 수 있다.
변환부(130)에서는 원본 블록과 예측부(120, 125)를 통해 생성된 예측 단위의 잔차값(residual)정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지, DST를 적용할지 또는 KLT를 적용할지는 잔차 블록을 생성하기 위해 사용된 예측 단위의 인트라 예측 모드 정보를 기초로 결정할 수 있다.
양자화부(135)는 변환부(130)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(135)에서 산출된 값은 역양자화부(140)와 재정렬부(160)에 제공될 수 있다.
재정렬부(160)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.
재정렬부(160)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(160)에서는 지그-재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔 대신 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다. 관련하여, 엔트로피 부호화부(165)는 재정렬부(160) 및 예측부(120, 125)로부터 부호화 단위의 잔차값 계수 정보를 부호화 할 수 있다. 또한, 본 개시에 따라 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보를 시그널링(signaling)하여 전송하는 것이 가능하다.
역양자화부(140) 및 역변환부(145)에서는 양자화부(135)에서 양자화된 값들을 역양자화하고 변환부(130)에서 변환된 값들을 역변환한다. 역양자화부(140) 및 역변환부(145)에서 생성된 잔차값(Residual)은 예측부(120, 125)에 포함된 움직임 추정부, 움직임 보상부 및 인트라 예측부를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(150)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다. ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다.
메모리(155)는 필터부(150)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 인터 예측을 수행 시 예측부(120, 125)에 제공될 수 있다.
도 2는 본 개시에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화 장치(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230, 235), 필터부(240), 메모리(245)를 포함할 수 있다.
영상 부호화 장치에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화 장치와 반대의 절차로 복호화될 수 있다.
엔트로피 복호화부(210)는 영상 부호화기의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다.
엔트로피 복호화부(210)에서는 부호화기에서 수행된 인트라 예측 및 인터 예측에 관련된 정보를 복호화할 수 있다.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다.
역양자화부(220)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화기에서 수행한 양자화 결과에 대해 변환부에서 수행한 변환 즉, DCT, DST, 및 KLT에 대해 역변환 즉, 역 DCT, 역 DST 및 역 KLT를 수행할 수 있다. 역변환은 영상 부호화기에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 복호화기의 역변환부(225)에서는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 변환 기법(예를 들어, DCT, DST, KLT)이 선택적으로 수행될 수 있다.
예측부(230, 235)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(245)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 인트라 예측 또는 화면 내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 인트라 예측을 수행하지만, 인트라 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 인트라 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 NxN 분할을 사용하는 인트라 예측을 사용할 수도 있다.
예측부(230, 235)는 예측 단위 판별부, 인터 예측부 및 인트라 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 움직임 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 반면, 만약 부호화기(100)에서 상기 인터 예측을 위한 움직임 예측 관련 정보를 전송하지 않고, 대신 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보를 전송하는 경우에는, 상기 예측 단위 판별부는 부호화기(100)로부터 전송된 정보를 기초로 하여, 인터 예측부(230)의 예측 수행을 판별하게 된다.
인터 예측부(230)는 영상 부호화기에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 인터 예측을 수행할 수 있다. 인터 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 움직임 예측 방법이 스킵 모드(Skip Mode), 병합 모드(Merge 모드), AMVP 모드(AMVP Mode), 인트라 블록 카피 모드(Intra block copy mode), 어파인 모드(Affine mode) 중 어떠한 방법인지 여부를 판단할 수 있다.
인트라 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 인트라 예측을 수행한 예측 단위인 경우, 영상 부호화기에서 제공된 예측 단위의 인트라 예측 모드 정보를 기초로 인트라 예측을 수행할 수 있다.
인트라 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화 장치로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다. ALF는 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
본 개시는 비디오 코딩 기술 중 화면간 예측을 사용하는 방법 및 장치에 관한 것이다. 보다 상세하게는 화면간 예측 기술 중 분할 블록 예측 기반 화면간 예측을 적용함에 있어서, 효율적인 분할 블록 예측 모드 부호화/복호화 방법 및 장치에 관한 것이다. 본 명세서에서, 분할 블록 예측은 부호화 블록을 특정 라인(예를 들어, 대각선)을 기준으로 두 개의 영역으로 분할하고, 분할된 각각의 영역에 대한 화면간 예측을 수행하는 기법이다. 본 명세서의 분할 블록 예측은 그 명칭에 제한되지 않으며, 분할 예측, 기하학적 분할(geometric partitioning), 기하학적 분할 예측(geometric partitioning prediction), 기하학적 머지 모드(geometric merge mode), 기하학적 머지 예측(geometric merge prediction), 폴리곤 분할(polygon partitioning), 폴리곤 분할 예측(polygon partitioning prediction) 등으로 지칭될 수 있다. 또한, 본 명세서에서, 상기 분할된 영역은 분할 영역, 분할 유닛, 분할 블록, 파티션, 기하학적 파티션, 폴리곤 파티션 등으로 지칭될 수 있다. 또한, 본 명세서에서, 분할 블록 예측 모드는 분할 블록 예측의 분할 정보를 나타내며, 상기 분할 정보는 분할 블록 예측 정보, 분할 예측 정보, 분할 예측 모드, 분할 모드, 분할 인덱스, 분할 예측 모드 인덱스, 분할 모드 인덱스, 파티션 인덱스, 기하학적 파티션 인덱스, 폴리곤 파티션 인덱스 등으로 지칭될 수 있다.
본 개시에 따른 일 실시예에서, 분할 블록 예측이 수행되는 경우, 분할의 각도 및 중심으로부터의 거리 정보의 조합으로 분할 블록 예측 모드가 정의될 수 있고, 상기 조합 내에서 특정 모드를 지시하는 모드 인덱스가 부호화/복호화될 수 있고, 각 분할된 영역에 대한 움직임 벡터의 후보(또는 후보 인덱스)가 부호화/복호화될 수 있다. 예를 들어, 분할 블록 예측 모드는 20 개의 각도 및 4 개의 거리의 조합으로 총 64 가지의 모드로 구성될 수 있다. 64 가지의 모드 중에서 율-왜곡 비용 비교를 수행하여 분할 블록 예측을 위한 최적의 모드가 결정될 수 있다. 예를 들어, 상기 결정된 최적의 모드는 6 비트 절삭된 단항 이진화를 통해 부호화될 수 있다. 상기 분할 블록 예측 모드는 최소 6 비트로 부호화될 수 있다.
이때, 분할 블록 예측 모드를 부호화하기 위해 최소 6비트가 필요하므로 시그널링 오버헤드가 발생할 수 있다. 또한, 상술한 바와 같이, 20 개의 각도 및 4 개의 거리의 조합으로 모드를 구성하는 경우, 각도 및 거리에 대한 발생 확률과 관계없이 부호화/복호화가 수행될 수 있다. 이러한 분할 블록 예측 모드의 발생 확률 미반영으로 인해 부호화 효율이 감소될 수 있다.
따라서, 본 개시에서는, 분할 블록 예측 모드를 보다 효율적으로 부호화/복호화하기 위한 방법 및 장치를 제안한다. 본 개시에 따르면, 조합으로 정의되는 모드를 각도 및 거리를 분할하여 각각에 대하여 부호화/복호화를 수행함으로써, 신택스의 발생 확률을 높여 엔트로피 부호화 효율을 높이고, 부호화/복호화 효율을 높일 수 있다. 또한, 가장 빈번한 모드를 기반으로 모드 리스트를 구성함으로써, 상대적으로 적은 비트를 이용하여 분할 블록 예측 모드를 부호화/복호화할 수 있다.
도 3은 본 개시의 일 실시예에 따른 분할 블록 예측 방법을 나타내는 흐름도이다.
본 실시예에 따른 분할 블록 예측 방법은 영상 부호화/복호화 장치(100, 200)의 화면간 예측부(120, 230)에 의해 수행될 수 있다. 또는, 본 실시예에 따른 분할 블록 예측 방법은 영상 부호화/복호화 장치(100, 200)의 화면내 예측부(125, 235)에 의해 수행될 수도 있다. 일 예로, 후술하는 실시예에서 화면간 예측 용어는 화면내 예측으로 대체될 수도 있다. 도 3의 실시예는 일 예로서, 분할 블록 예측 수행 단계(S301)와 분할 블록 예측 모드 부호화/복호화 단계(S302)간 순서가 한정되는 것은 아니다. 예를 들어, S302 단계 이후 S301 단계가 수행될 수도 있다. 예를 들어, 인코더는 현재 블록에 대하여 분할 블록 예측을 수행하고(S301), 결정된 최적의 분할 블록 예측 모드를 부호화(S302)할 수 있고, 디코더는 비트스트림을 통해 수신된 분할 블록 예측 모드를 복호화(S302)하고, 복호화된 분할 블록 예측 모드에 기초하여 현재 블록에 대하여 분할 블록 예측을 수행할 수 있다(S320).
일 실시예로서, 분할 블록 예측 모드 부호화/복호화 단계(S302)에서, 인코더/디코더는 분할 블록 예측에 이용되는 부호화 정보(coding information)를 부호화/복호화할 수 있다. 상기 부호화 정보는 분할 블록 예측 (모드, 부호화) 동작 플래그, 분할 블록 예측 모드 인덱스, 분할 블록 예측 각도, 분할 블록 예측 거리, 분할 블록 예측 모드 리스트 플래그, 분할 블록 예측 모드 리스트 인덱스 또는 조합 순서에 대한 신택스(또는 신택스 요소) 중 적어도 하나를 포함할 수 있다. 인코더/디코더는 분할 블록 예측에 이용되는 부호화 정보에 대한 엔트로피 부호화/복호화를 수행할 수 있다. 여기서, 엔트로피 부호화/복호화는 정보(또는 신택스 요소)에 대한 이진화, CABAC(Context Adaptive Binary Arithmetic Coding) 또는 바이패스 부호화(bypass coding) 중 적어도 하나를 포함할 수 있다.
여기서, 상기 분할 블록 예측 동작 플래그는 현재 부호화 블록에서 분할 블록 예측이 수행되는지 여부를 의미할 수 있다. 특정 화면간 예측 모드 동작 플래그가 1일 경우, 즉, 상기 특정 화면간 예측 모드가 적용되는 경우, 상기 분할 블록 예측 부호화 동작 플래그의 부호화/복호화를 생략할 수 있고, 그 값은 0 또는 1로 추론될 수 있다. 또는, 상기 특정 화면간 예측 모드 동작 플래그가 1일 경우, 분할 블록 예측 동작 플래그가 별도로 시그날링될 수도 있다. 또는, 상기 특정 화면간 예측 모드 동작 플래그가 1일 경우, 분할 블록 예측 동작 플래그는 부호화 파라미터에 기초하여 가변적으로 결정될 수 있다. 일 예로서, 상기 부호화 파라미터는, 슬라이스 타입, 블록의 크기/형태, 화면내 예측인지 여부, 화면간 예측 모드, 움직임 정보, 양자화 파라미터(Quantized Parameter, QP) 또는 성분 타입 중 적어도 하나를 포함할 수 있다. 상기 움직임 정보는, 움직임 벡터, 참조 픽쳐 인덱스, 예측 방향 플래그, 가중 예측 정보 또는 양방향 예측 여부 중 적어도 하나를 포함할 수 있다. 여기서, 상기 특정 화면간 예측 모드는 분할 블록 예측 외에 다른 화면간 예측을 포함할 수 있다. 예를 들어, 상기 다른 화면간 예측은 일반 머지(merge), 서브블록 머지, MMVD(Merge with MVD), CIIP(Combined inter/intra prediction), 어파인(Affine), AMVP, DMVR(Decoder-side motion vector refinement) 등 화면간 예측을 수행하는 예측 방법들 중 적어도 하나일 수 있다.
또한, 부호화/복호화 장치에 기-정의된 다른 화면간 예측 모드 동작 플래그들 중 적어도 하나가 0일 경우, 분할 블록 예측 동작 플래그의 부호화/복호화는 생략할 수 있으며 암시적으로 1이 될 수 있다. 부호화/복호화 장치에 기-정의된 다른 화면간 예측 모드 동작 플래그 중 적어도 하나가 0일 경우, 분할 블록 예측 동작 플래그는 시그날링될 수 있다. 또는, 부호화/복호화 장치에 기-정의된 다른 화면간 예측 모드 동작 플래그 중 적어도 하나가 0일 경우, 분할 블록 예측 동작 플래그는 전술한 부호화 파라미터에 기초하여 가변적으로 결정될 수 있다. 또는, 다른 화면간 예측 모드 동작 플래그 이전에 분할 블록 예측 동작 플래그가 시그날링될 수도 있다.
또한, 일 실시예로서, 분할 블록 예측 모드 부호화/복호화 단계(S302)에서, 인코더/디코더는 분할 각도 및 분할 거리의 조합, 분할 각도, 분할 거리 중 적어도 하나를 이용하여 분할 블록 예측 모드에 대한 분할 정보를 구성할 수 있다. 다시 말해, 상기 분할 정보는 분할 각도 및 분할 거리의 조합, 분할 각도, 분할 거리 중 적어도 하나를 포함할 수 있다.
예를 들어, 인코더/디코더는 분할 정보를 구성함에 있어, 기-정의된 개수(예를 들어, L개)의 분할 블록 예측 모드 중 적어도 하나의 모드를 이용하여 예측 정보를 구성할 수 있다.
여기서, 기-정의된 개수의 분할 블록 예측 모드는 부호화 정보에 따라 가변적으로 결정될 수 있다. 이때, 상기 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다. 이용 가능한 분할 블록 예측 모드의 개수 또는 타입 중 적어도 하나는 부호화/복호화 장치에 기-정의된 것으로서 부호화 파라미터에 관계없이 고정된 개수/타입을 가질 수 있다. 또는, 이용 가능한 분할 블록 모드의 개수 또는 타입 중 적어도 하나는 전술한 부호화 파라미터에 기초하여 가변적으로 결정될 수 있다.
일 실시예로서, 블록의 크기에 따라 분할 블록 예측 모드의 개수가 기-정의될 수 있다. 예를 들어, 상기 4x4 블록은 16개의 모드, 8x8 블록은 32개의 모드, 나머지 블록은 64개의 모드를 가질 수 있다. 예를 들어, 블록 크기가 소정의 문턱크기보다 작거나 같은 경우, n개 모드를, 그렇지 않은 경우 m개 모드를 각각 가질 수 있다. 문턱크기는, 블록의 너비, 높이, 너비와 높이의 합/곱, 너비와 높이의 최소값/최대값 등으로 표현될 수 있다. 문턱크기는 부호화/복호화 장치에 기-약속된 고정된 값일 수 있다. 문턱크기는 4, 8, 16, 32, 64, 128 또는 그 이상일 수 있다. n과 m은 16보다 작거나 같은 정수이거나, 32보다 작거나 같은 정수이거나, 64보다 작거나 같은 정수일 수 있다. 여기서, n은 m보다 작을 수 있다.
도 4 내지 도 8은 본 개시의 일 실시예에 따른 분할 블록 예측 모드를 도시한다.
일 실시예로서, 전술한 기-정의된 개수의 분할 블록 예측 모드는 기-정의된 분할 블록 예측 모드들로 구성될 수 있다. 예를 들어, 기-정의된 분할 블록 예측 모드는 도 4에 도시된 바와 같은 임의의 블록 분할일 수 있다. 이때, 기-정의된 개수의 분할 블록 예측 모드는 분할 각도 및 분할 거리의 조합으로 구성될 수 있다.
이 때, 분할 각도 또는 분할 거리 중 적어도 하나는 다양한 여러 방법으로 정의될 수 있다. 예를 들어, 분할 각도는 도 5에 도시된 바와 같이 등각도를 갖는 기-정의된 개수(예를 들어, M개)의 각도 중 적어도 하나 이상 일 수 있다. 또는, 예를 들어, 분할 각도는 도 6에 도시된 바와 같이 일정 비를 갖는 기-정의된 개수(예를 들어, M개)의 각도 중 적어도 하나 이상일 수 있다. 그리고, 분할 거리는 결정된 분할 각도에서 블록 내에서 평행 이동되는 거리로 정의될 수 있다.
예를 들어, 20개의 분할 각도와 4개의 분할 거리의 경우, 20x4(분할 각도x분할 거리) - 10(중복 분할) = 70 가지의 모드가 정의될 수 있다. 또는, 예를 들어, 20개의 분할 각도와 4개의 분할 거리이고, n개의 제외되는 분할이 존재하는 경우, 20x4(분할 각도x분할 거리) - 10(중복 분할) - n = 70 - n 가지의 모드가 정의될 수 있다. 이 때, n은 양의 정수로 1, 2, 3, … 중 적어도 하나일 수 있다.
상기 20개의 분할 각도는 일 예에 불과하며, 20개보다 적거나 많은 개수의 분할 각도가 정의될 수도 있다. 예를 들어, 기-정의된 분할 각도의 개수는 18개, 16개, 14개 또는 그 이하일 수 있다. 또는, 기-정의된 분할 각도의 개수는 22개, 24개, 26개 또는 그 이상일 수 있다. 기-정의된 분할 각도는, 수평 방향성을 가진 분할 각도와 수직 방향성을 가진 분할 각도를 포함할 수 있다. 수평 방향성을 가진 분할 각도의 개수는 수직 방향성을 가진 분할 각도의 개수보다 많을 수 있다. 또는, 수평 방향성을 가진 분할 각도의 개수는 수직 방향성을 가진 분할 각도의 개수와 동일할 수 있다. 또는, 수평 방향성을 가진 분할 각도의 개수는 수직 방향성을 가진 분할 각도의 개수보다 적을 수 있다.
이때, 특정 조합을 지시하는 분할 인덱스는 후술하는 도 15의 실시예와 같이 구성될 수 있으며, 부호화 정보에 따라 인덱스의 개수, 순서 등은 다르게 구성될 수 있다. 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다.
또한, 일 실시예로서, 인코더/디코더는 분할 정보를 구성함에 있어서, 기-정의된 개수(예를 들어, M개)의 분할 각도 중 적어도 하나의 모드로 분할 정보를 구성할 수 있다. 여기서, M개의 분할 각도는 부호화 정보에 따라 가변적으로 결정될 수 있다. 이때, 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다.
일 실시예로서, 블록의 크기에 따라 분할 각도의 개수가 기-정의될 수 있다. 예를 들어, 4x4 블록은 16개의 각도, 8x8 블록은 32개의 각도, 나머지 블록은 64개의 각도를 가질 수 있다. 예를 들어, 블록 크기가 소정의 문턱크기보다 작거나 같은 경우, n개 각도를, 그렇지 않은 경우 m개 각도를 각각 가질 수 있다. 문턱크기는, 블록의 너비, 높이, 너비와 높이의 합/곱, 너비와 높이의 최소값/최대값 등으로 표현될 수 있다. 문턱크기는 부호화/복호화 장치에 기-약속된 고정된 값일 수 있다. 문턱크기는 4, 8, 16, 32, 64, 128 또는 그 이상일 수 있다. n과 m은 16보다 작거나 같은 정수이거나, 32보다 작거나 같은 정수이거나, 64보다 작거나 같은 정수일 수 있다. 여기서, n은 m보다 작을 수 있다.
기-정의된 분할 각도의 개수는 다양한 여러 방법으로 정의될 수 있다. 예를 들어, M개의 분할 각도는 도 5에 도시된 바와 같이 등각도로 구성될 수 있다. 이때, 등각도는 1도 이상의 실수 각도일 수 있으며, 경우에 따라 일부 각도는 사용되는 분할 각도에서 제외될 수 있다. 예를 들어, 10도의 각도로 균등 분할되는 경우 36개의 분할 각도가 존재할 수 있고, 각 분할 각도는 10도의 차이로 구성될 수 있다. 또는, 예를 들어, 11.25도의 각도로 균등 분할되는 경우 32개의 분할 각도가 존재할 수 있고, 각 분할 각도는 11.25도의 차이로 구성될 수 있다. 또는, 예를 들어, 12도의 각도로 균등 분할되는 경우 30개의 분할 각도가 존재할 수 있고, 각 분할 각도는 12도의 차이로 구성될 수 있다. 또는, 예를 들어, 도 5(b)와 같이 11.25도의 각도로 균등 분할 되고, 일부 분할 각도는 제외될 수 있다.
또한, 일 실시예로서, M개의 분할 각도는 도 6에 도시된 바와 같이 일정 비를 갖도록 구성될 수 있다. 이때, M개의 분할 각도는 기-정의된 일정 비에 따라 구성될 수 있으며, 경우에 따라 일부 각도는 사용되는 분할 각도에서 제외될 수 있다. 예를 들어, 일정 비는 1:n 또는 n:1 일 수 있고, n은 양의 실수 중 하나 이상일 수 있다. 또는, 예를 들어, 도 6(a)에 도시된 바와 같이 2의 m 지수승의 블록 크기를 갖는 블록에서의 연산의 용이성을 위해, n은 {1, 2, 4, 8, 16, …} 과 같이 2의 m지수승일 수 있다. 또는, 예를 들어, n은 1, 2, 4로 정의될 수 있으며 1:4 분할 각도는 사용하지 않고, 20개의 각도로 도 6(a)와 같이 구성될 수 있다. 또는, 예를 들어, n은 1,2로 정의될 수 있으며, 16개의 각도로 4(b)와 같이 구성될 수 있다.
일 실시예로서, M개의 분할 각도를 지시하는 인덱스는 분할 각도의 미리 정해진 순서대로 구성될 수 있으며, 부호화 정보에 따라 가변적으로 결정될 수 있다. 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다. 예를 들어, 16개의 일정 비의 각도에 대한 인덱스는 후술하는 도 16과 같이 정의될 수 있다. 그리고, 인코더/디코더는 상술한 M개의 분할 각도 인덱스에 대한 엔트로피 부호화/복호화를 수행할 수 있다.
또한, 일 실시예로서, 인코더/디코더는 분할 정보를 구성함에 있어서, 기-정의된 개수(예를 들어, N개)의 분할 거리 중 적어도 하나의 모드로 분할 정보를 구성할 수 있다. 여기서, N개의 분할 거리는 부호화 정보에 따라 가변적으로 결정될 수 있다. 이때, 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다.
일 실시예로서, 블록의 크기에 따라 분할 거리의 개수가 기-정의될 수 있다. 예를 들어, 4x4 블록은 16개의 거리, 8x8 블록은 32개의 거리, 나머지 블록은 64개의 거리를 가질 수 있다. 예를 들어, 블록 크기가 소정의 문턱크기보다 작거나 같은 경우, n개 거리를, 그렇지 않은 경우 m개 거리를 각각 가질 수 있다. 문턱크기는, 블록의 너비, 높이, 너비와 높이의 합/곱, 너비와 높이의 최소값/최대값 등으로 표현될 수 있다. 문턱크기는 부호화/복호화 장치에 기-약속된 고정된 값일 수 있다. 문턱크기는 4, 8, 16, 32, 64, 128 또는 그 이상일 수 있다. n과 m은 16보다 작거나 같은 정수이거나, 32보다 작거나 같은 정수이거나, 64보다 작거나 같은 정수일 수 있다. 여기서, n은 m보다 작을 수 있다.
기-정의된 분할 거리의 개수는 다양한 여러 방법으로 정의될 수 있다. 예를 들어, N개의 분할 거리는 도 7에 도시된 바와 같이 블록 내의 가용한 거리 범위 내에서 등간격으로 구성될 수 있다. 예를 들어, N=4일 때, 4개의 분할 거리는 도 7(a)와 같이 분할 각도(예를 들어, 전술한 실시예에서 정의되는 분할 각도)에 따라 블록 내의 가용한 거리 내에서 등간격으로 구성될 수 있다. 또는, 예를 들어, N=3일 때, 3개의 분할 거리는 도 7(b)와 같이 분할 각도에 따라 블록 내의 가용한 거리 내에서 등간격으로 구성될 수 있다.
또한, 예를 들어, N개의 분할 거리는 도 8에 도시된 바와 같이 블록 내의 가용한 거리 내에서 비등간격으로 구성될 수 있다. 예를 들어, N=4일 때, 4개의 분할 거리는 도 8(a)와 같이 분할 각도(예를 들어, 전술한 실시예에서 정의되는 분할 각도)에 따라 블록 내의 가용한 거리 내에서 비등간격으로 구성될 수 있다. 또는, 예를 들어, N=3일 때, 3개의 분할 거리는 도 8(b)와 같이 분할 각도에 따라 블록 내의 가용한 거리 내에서 비등간격으로 구성될 수 있다. 일 예로서, N개의 분할 거리에 대한 분할 거리 인덱스는 {0, 1, 2, 3, …, N-1} 로 지정될 수 있다. 그리고, 인코더/디코더는 분할 거리 인덱스에 대한 엔트로피 부호화/복호화를 수행할 수 있다.
분할 거리의 개수는 분할 각도 별로 상이할 수도 있고, 분할 각도와 관계없이 동일할 수도 있다. 분할 거리의 개수는 2개, 3개, 4개 또는 그 이상의 개수 중 어느 하나로 제한될 수 있다. 분할 거리의 개수는 블록의 크기에 따라 상이하게 결정될 수도 있다. 블록의 크기가 전술한 문턱크기보다 작은 경우, 분할 거리의 개수는 1개 또는 2개로 제한되고, 그렇지 않은 경우, 분할 거리의 개수는 3개 또는 그 이상일 수 있다. 또는, 분할 거리의 개수는 블록의 형태에 따라 상이하게 결정될 수도 있다. 여기서, 블록의 형태는, 블록의 너비와 높이의 비율, 너비와 높이의 비율과 소정의 임계값 간의 비교, 너비 또는 높이 중 적어도 하나와 문턱크기 간의 비교, 너비와 높이 간의 길이 비교 등으로 정의될 수 있다. 예를 들어, 블록의 형태에 따라, 분할 거리의 개수는 1개 또는 2개로 제한되거나, 3개 또는 그 이상의 개수가 이용될 수 있다.
본 개시의 일 실시예에 따르면, 인코더/디코더는 전술한 실시예에 따른 분할 정보에 대하여 이진화, 엔트로피 부호화/복호화를 수행할 수 있다. 분할 정보에 대한 이진화 및 엔트로피 부호화/복호화는 MPM, 지수골롬코드 부호화(Exponential-Golomb Coding), 절삭된 단항 이진 부호화(Truncated Unary Coding), 고정 길이 이진 부호화(Fixed Length Coding), 절삭된 이진 부호화(Truncated Binary Coding) 중 적어도 하나를 이용하여 수행될 수 있다.
일 실시예로서, 인코더/디코더는 소정의 모드(예를 들어, P개) 및/또는 주변 블록의 분할 블록 모드를 이용하여 이진화 및 엔트로피 부호화/복호화를 수행할 수 있다. 소정의 모드는 가용한 분할 블록 예측 모드, 분할 각도, 분할 거리 중 적어도 하나로부터 P개를 선택한 모드일 수 있다. 주변 블록의 분할 블록 모드는 공간적/시간적으로 인접한 주변 블록의 분할 블록 예측 모드, 각도, 거리 중 적어도 하나 이상일 수 있다.
인코더/디코더는 소정의 모드 및/또는 주변 블록의 모드를 이용하여 가장 빈번한 모드(Most Frequent Mode, MFM)을 구성(또는 유도)할 수 있다. 본 명세서에서, MFM은 블록 분할 예측을 수행함에 있어서 이용되는 분할 정보로서, 상대적으로(또는 통계적으로) 자주 발생하는 모드를 의미할 수 있으며, 본 개시가 이러한 명칭에 제한되는 것은 아니다. 예를 들어, MFM은 통계 모드, 주변 모드, 후보 등으로 지칭될 수도 있다. 또한, 일 예로서, MFM은 하나 이상의 분할 블록 모드로 유도될 수 있으며, 부호화 정보에 따라 개수 또는 유도 방법이 다르게 결정될 수도 있다. 부호화 정보는 현재 블록의 크기/형태, 색 성분, 슬라이스 타입 중 적어도 하나를 포함할 수 있다.
인코더/디코더는 현재 블록의 분할 블록 예측 모드를 유도하는데 있어, 주변 블록으로부터 MFM을 유도할 수 있다. MFM은 하나 이상일 수 있으며, 각 MFM은 하나 이상의 분할 블록 예측 모드로 구성될 수 있다. 또한, 일 예로서, 인코더/디코더는 주변 블록으로부터 기-정의된 개수(예를 들어, P개)의 분할 블록 예측 모드를 유도함에 있어, 서브블록 단위로 MFM을 유도할 수도 있다. 예를 들어, 주변 블록의 패턴을 탐색하여 P개의 MFM을 유도하여 분할 블록 예측 모드로 사용할 수 있다. 또는, 예를 들어, 주변 블록의 그라디언트(gradient) 값에 따라 특정 모드를 MFM으로 정의하여 분할 블록 예측 모드로 사용할 수 있다. 또는, 예를 들어, 주변 블록의 분할 블록 예측 모드를 탐색하여 P개의 MFM을 유도하여 분할 블록 모드로 사용할 수 있다. 다음의 도면을 참조하여 서브블록 단위로 MFM을 유도하는 방법을 설명한다.
도 9는 본 개시의 일 실시예에 따른 서브블록 단위로 가장 빈번한 모드(Most Frequent Mode)를 유도하는 방법을 예시하는 도면이다.
도 9를 참조하면, 인코더/디코더는 현재 블록의 주변 블록(들)의 분할 블록 예측 모드를 기반으로 MFM을 유도할 수 있으며, 이때, 도 9에 도시된 바와 같은 좌측, 상단, 우측의 주변 블록이 서브블록 단위로 이용될 수 있다. 이하 상세한 설명에서는, 설명의 편의를 좌측과 상단의 주변 블록이 이용되는 경우를 위주로 설명하나, 본 개시가 이에 제한되는 것은 아니며, 좌측, 상단, 우측, 하단의 주변 블록이 실질적으로 동일한 방법으로 이용될 수 있다. 서브블록의 크기는 기-정의될 수 있다. 예를 들어, 서브블록의 크기는 최소 CU 크기보다 크거나 같은 W_subXH_sub(서브블록의 너비와 높이의 곱)로 정의될 수 있으며, W_sub(서브블록의 너비) 및 H_sub(서브블록의 높이)는 각각 양의 정수(예를 들어, a·2^n(a=1,2,3,…, n=0,1,2,3,4,…))로 정의될 수 있다.
인코더/디코더는 서브블록 단위로 MFM을 유도함에 있어서, 도 9에 도시된 바와 같은 좌측, 상단, 우측의 서브블록을 탐색하고, 탐색된 서브블록들의 분할 블록 모드를 기반으로 MFM을 결정(또는 유도)할 수 있다. 이때, 서브블록을 탐색하는 범위는 부호화 정보에 따라 가변적으로 결정될 수 있다. 예를 들어, 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다. 상기 탐색은 주변의 하나 이상의 서브 블록의 분할 블록 모드를 유도하는 것을 의미할 수 있다.
일 실시예로서, MFM을 유도하기 위해 탐색되는 서브블록의 탐색 범위는 미리 정해질 수 있다. 도 9(b)를 참조하면, 현재 블록의 크기가 16x16이고, 서브 블록의 크기가 4x4인 경우를 가정하고, 도 9(c)를 참조하면, 현재 블록의 크기가 16x8이고, 서브 블록의 크기가 4x4인 경우를 가정한다. 예를 들어, 인코더/디코더는 도 9(b), 도 9(c)와 같이 현재 블록의 n, m배수(nWxmH+1, n=0,1,2,3,…, m=0,1,2,3,…) 만큼의 서브블록을 탐색하여 분할 블록 예측 모드를 유도할 수 있다. 또는, 예를 들어, 도 9(b)과 도 9(c)와 같이 현재 블록의 n, m배수, d깊이(dx(nWxmH)+d^2, n=0,1,2,3,…, m=0,1,2,3,…, d=0,1.2.3,…)만큼의 서브블록을 탐색하여 분할 블록 예측 모드가 유도될 수 있다. 또는, 예를 들어, 도 9(c)와 같이 현재 블록이 비정방형 형태일 경우, n>m, n<m, n=m 중 적어도 하나 일 수 있다. 또는, 예를 들어, 도 9(c)와 같이 현재 블록이 예측 형태일 경우, d_v>d_h, d_v<d_h, d_v=d_h 중 적어도 하나 일 수 있다.
또한, 상기 서브블록의 크기 및/또는 탐색 범위는 색 성분에 따라 가변적으로 정의될 수 있다. 예를 들어, 색차 블록의 경우 휘도 블록의 서브블록을 1:x(x=1,2,3,…)으로 서브 샘플링하여 사용될 수 있다.
인코더/디코더는 상기 하나 이상의 주변 블록으로부터 유도된 분할 블록 예측 모드 중 소정의 모드를 MFM으로 유도할 수 있다. 상기 소정의 모드는 가장 많이 발생하는 모드, 소정의 위치에 해당하는 모드, 하나 이상의 화면내 예측 모드 조합 중 적어도 하나의 모드를 의미할 수 있다. MFM을 유도함에 있어, 현재 블록의 부호화 정보에 기반하여 MFM 유도 방법이 가변적으로 결정될 수 있다. 부호화 정보는 색 성분, 크기/형태, 주변 블록의 크기/형태, 화면내 예측 모드 중 적어도 하나를 포함할 수 있다. 일 예로서, P가 2이상인 경우, 인코더/디코더는 복수의 모드 중에서 현재 블록의 분할 블록 예측에 이용되는 모드를 지시하는 MFM 인덱스를 부호화/복호화할 수 있다.
도 10 내지 도 13은 본 개시의 일 실시예에 따른 주변 블록의 분할 블록 예측 모드를 기반으로 가장 빈번한 모드(Most Frequent Mode)를 유도하는 방법을 설명하기 위한 도면이다.
도 10을 참조하면, n=1, m=1, d=1의 경우의 예로, MFM을 결정하는 방법을 위한 예시이다. 예를 들어, 도 10(a)와 같이 가장 많이 발생하는 모드가 대각선 모드일 경우 MFM은 대각선 모드로 유도될 수 있다. 또한, 예를 들어, 도 10(b)와 같이 주변 블록의 CTU, CU, PU, TU 중 적어도 하나의 크기에 기반하여 MFM 유도 방법을 다르게 할 수 있다. 서브블록으로 유도된 모드의 빈도수가 같을 경우, 주변 블록의 크기에 따라 가중치가 가변적으로 결정될 수 있고, 이에 기초하여 MFM이 유도될 수 있다. 예를 들어, 주변 블록의 크기가 큰 블록에 상대적으로 높은 가중치가 적용되어 대각선 모드가 MFM으로 유도될 수 있다. 또는, 예를 들어, 주변 블록의 크기가 작은 블록에 높은 가중치가 적용되어 수평 모드가 MFM으로 유도될 수 있다.
예를 들어, 도 10(c)과 같이 주변 블록의 크기는 도 10(b)와 같지만, 현재 블록이 비정방형일 경우, 서브블록 단위로 유도된 예측 모드의 빈도수가 수평 모드가 크므로 MFM은 수평 모드로 유도될 수 있다.
또한, 일 실시예로서, 인코더/디코더는 현재 블록 분할 예측 모드를 유도함에 있어, MPM(Most Probable Mode)(또는 MPM 리스트, MPM 후보 리스트)을 구성할 수 있다. MPM 후보 리스트가 구성되는 경우, MFM은 MPM 후보 리스트 구성에서 제외될 수 있다. 예를 들어, MFM이 대각선 모드로 유도되는 경우, 대각선 모드를 제외하고 MPM 후보 리스트가 구성될 수 있다. 이때, 화면간 예측 모드를 유도함에 있어서, MFM인지 여부를 판단하는 지시자(또는 플래그, 신택스 요소)가 부호화/복호화될 수 있다. 예를 들어, MFM 지시자가 1인 경우, 유도된 MFM이 현재 블록의 분할 블록 예측 모드로 유도(또는 결정)될 수 있다. 또는, 예를 들어, MFM 후보가 2 이상일 경우, 추가적으로 MFM 인덱스를 부호화/복호화하여 분할 블록 모드를 유도할 수 있다. 예를 들어, MFM 지시자가 0인 경우, 인코더/디코더는 MPM(Most Probable Mode) 지시자를 부호화/복호화 할 수 있다.
또한, 인코더/디코더는 서브블록 단위로 모드를 예측함에 있어서, 이미 부호화/복호화된 주변블록의 소정의 위치로부터 화면간 예측 모드를 유도할 수 있다. 소정의 위치는 부호화 정보에 따라 가변적으로 결정될 수 있다. 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 인코더/디코더는 임의의 하나 이상의 위치로부터 상기 MFM 유도 방법에 따라 분할 블록 모드를 유도할 수 있다. 예를 들어, I 슬라이스의 경우, 상기 예와 같이 지정된 위치에서 MFM을 유도하고, P, B 슬라이스의 경우, 지정된 위치를 상이하게 설정할 수 있다. 또는, 예를 들어, 휘도 성분의 경우, 상기 예와 같이 지정된 위치에서 MFM을 유도하고, 색차 성분의 경우, 지정된 위치를 상이하게 설정할 수 있다. 또는, 예를 들어, 현재 블록의 형태가 정방형일 경우, 도 11에 도시된 바와 같은 지정된 위치에서 MFM을 유도하고, 현재 블록의 형태가 비정방형일 경우, 지정된 위치를 상이하게 설정할 수 있다. 또는, 예를 들어, 현재 블록의 형태가 비정방형일 경우, 도 11에 도시된 바와 같은 지정된 위치에서 MFM을 유도하고, 현재 블록의 형태가 정방형일 경우, 지정된 위치를 상이하게 설정할 수 있다.
일 실시예로서, 서브블록 단위의 모드 예측에 있어서, 주변 블록 전체 탐색 혹은 주변 블록의 부분 탐색 중 적어도 하나의 방법으로부터 분할 모드가 유도될 수 있다.
도 12를 참조하면, 현재 블록의 화면간 예측 모드를 유도함에 있어, 참조 블록의 공간적 주변 블록으로부터 서브블록 단위로 현재 블록의 MFM을 유도할 수 있다. 이때, 현재 블록의 공간적 주변 블록은 이미 부호화/복호화가 완료된 블록일 수 있다. 예를 들어, 도 12(a)와 같이 주변 블록이 모두 분할 블록 예측 모드로 부호화/복호화가 완료된 블록(본 실시예에서, a 내지 m 블록)의 경우, 주변 블록을 서브블록 단위로 분할하여 현재 블록의 MFM이 유도될 수 있다. 또는, 예를 들어, 도 12(b)와 같이 주변 블록 중 일부가 분할 블록 예측 모드로 부호화/복호화가 완료된 블록(a, b, d, g, i, j, k, m)의 경우, 분할 블록 예측 모드로 부호화/복호화된 주변 블록에 대해서만, 서브블록 단위로 현재 블록의 MFM이 유도될 수 있다. 또는, 예를 들어, 도 12(b)와 같이 공간적 주변 블록 중 일부가 분할 블록 예측 모드가 아닌 모드로 부호화/복호화가 완료된 블록(c, e, f, h, l)의 경우, 해당 블록의 참조 픽쳐(reference picture)로부터 분할 블록 예측 모드를 탐색하고, 탐색된 모드가 현재 블록의 예측 모드를 유도하기 위한 분할 블록 예측 모드로 구성될 수 있다. 구성된 분할 블록 예측 모드를 포함하여, 서브블록 단위로 현재 블록의 MFM이 유도될 수 있다.
도 13을 참조하면, 서브블록 단위로 모드를 예측함에 있어서, 시간적 주변 블록으로부터 화면간 예측 모드 또는 분할 블록 예측 모드가 유도될 수 있다. 현재 블록의 시간적 주변 블록은 이미 부호화/복호화가 완료된 참조 픽쳐(reference picture) 내부에 존재할 수 있다. 상기 참조 픽처는 복호화 픽쳐 버퍼(Decoded Picture Buffer, DPB)에 저장된 하나 이상의 픽쳐일 수 있다. 현재 블록의 시간적 주변 블록은 상기 참조 픽쳐 내부에 존재하는 참조 블록(reference block)일 수 있다.
또한, 일 실시예로서, 서브블록 단위로 분할 블록 모드를 유도함에 있어서, 공간적/시간적 템플릿 매칭을 통해 분할 블록 예측 모드가 유도될 수 있다. 상기 템플릿 매칭을 통해 분할 블록 모드를 유도함에 있어, 템플릿 매칭 수행 여부에 대한 지시자가 부호화/복호화될 수 있다. 예를 들어, 템플릿 매칭 지시자가 1인 경우, 템플릿 매칭에 따라 탐색된 블록으로부터 서브블록 단위로 현재 블록의 MFM이 유도될 수 있다. 예를 들어, 템플릿 매칭 지시자가 0인 경우, 현재 블록의 공간적/시간적 주변 블록으로부터 서브블록 단위로 현재 블록의 MFM이 유도될 수 있다. 이때, 인코더/디코더는 공간적/시간적 템플릿 매칭 중 적어도 하나의 매칭 방법을 사용할 수 있다. 공간적/시간적 템플릿 매칭이 모두 수행되는 경우, 특정 매칭 방법에 대한 사용 여부를 지시하는 인덱스가 부호화/복호화될 수 있다. 예를 들어, 템플릿 매칭 인덱스가 0인 경우, 공간적 템플릿 매칭(또는 시간적 템플릿 매칭)이 수행할 수 있다. 예를 들어, 템플릿 매칭 인덱스가 1인 경우, 시간적 템플릿 매칭(또는 공간적 템플릿 매칭)이 수행될 수 있다.
공간적 템플릿 매칭을 수행하여, 분할 블록 모드를 유도함에 있어서, 현재 픽쳐 내에서 현재 블록의 이전 블록은 이미 부호화/복호화가 완료된 블록일 수 있다. 템플릿은 현재 블록의 주변 블록 전부 또는 일부 영역으로 구성될 수 있으며, 도 9의 서브블록 구성과 같이 다양한 크기 및/또는 깊이로 구성될 수 있다. 구성된 템플릿을 이용하여, 이미 부호화/복호화된 블록들로부터 탐색 범위 내에서 가장 유사한 템플릿을 갖는 영역이 탐색될 수 있다. 이때, 예를 들어, 탐색 범위는 픽쳐, 슬라이스, CTU, 주변 영역 등으로 지정될 수 있다. 일 예로서, 현재 픽쳐 내에서 가장 유사한 템플릿을 갖는 영역이 탐색될 수 있다. 또는, 예를 들어, 현재 슬라이스 내에서 가장 유사한 템플릿을 갖는 영역이 탐색될 수 있다. 또는, 예를 들어, 현재 CTU 내에서 가장 유사한 템플릿을 갖는 영역이 탐색될 수 있다. 또는, 예를 들어, 현재 CTU의 주변 소정의 CTU까지의 범위 내에서 가장 유사한 템플릿을 갖는 영역이 탐색될 수 있다. 이 경우, 주변 CTU를 지시하는 인덱스가 부호화/복호화 될 수 있다. 예를 들어, CTU_index = 0인 경우, CTU 0 내에서 가장 유사한 템플릿을 갖는 영역이 탐색될 수 있다. 예를 들어, 현재 블록의 주변 영역 내에서 가장 유사한 템플릿을 갖는 영역이 탐색될 수 있다. 상기 영역은 하나 이상의 블록으로 지정될 수 있다. 이 때, 상기 영역을 지시하는 인덱스가 부호화/복호화될 수 있다. 예를 들어, Region_index = 0인 경우, Region 0 내에서 가장 유사한 템플릿을 갖는 영역이 탐색될 수 있다. 가장 유사한 템플릿을 탐색함에 있어서, 현재 블록의 템플릿과 탐색 블록의 템플릿간 차이가 가장 작은 영역(또는 블록)이 탐색될 수 있다. 템플릿간 차이는 SAD(Sum of Absolute Difference) 등의 방법이 이용될 수 있다.
템플릿 매칭을 통해 결정된 블록으로부터 서브블록 단위로 현재 블록의 MFM이 유도될 수 있다. 유도 과정은 상기 공간적/시간적 주변 블록으로부터 MFM을 유도하는 방법과 동일할 수 있으며, 관련하여 중복되는 설명은 생략한다. 시간적 템플릿 매칭을 통해 분할 블록 예측 모드를 유도함에 있어서, 현재 블록의 시간적 템플릿은 이미 부호화/복호화가 완료된 참조 픽쳐(reference picture) 내부에 존재할 수 있다. 상기 참조 픽처는 복호화 픽쳐 버퍼(Decoded Picture Buffer, DPB)에 저장된 하나 이상의 픽쳐일 수 있다. 템플릿은 현재 블록의 시간적 블록으로 구성될 수 있으며, 도 9의 서브블록 구성과 같이 다양한 크기와 깊이로 구성될 수 있다. 또한, 템플릿은 참조 픽쳐 내부에 존재하는 참조 블록(reference block)의 주변 영역일 수 있다. 구성된 템플릿을 이용하여, 참조 픽처의 현재 블록에 대응되는 위치의 주변으로부터 가장 유사한 템플릿이 탐색될 수 있다.
본 개시의 일 실시예에 따르면, 분할 블록 예측 모드를 유도함에 있어서, 분할 블록 예측 모드 중 기-정의된 개수(예를 들어, P개)의 소정의 모드가 MFM으로 유도될 수 있다. MFM은 분할 각도, 분할 거리, 분할 각도 및 분할 거리의 조합 중 적어도 하나 이상으로 결정되는 모드일 수 있다. 일 예로서, P개의 소정의 모드는 모드 특성에 따라 선택될 수 있다. 예를 들어, P개의 특정 각도가 MFM으로 선택될 수 있다. 예를 들어, 45도 각도를 갖는 분할 블록 예측 모드가 MFM으로 선택될 수 있다. 예를 들어, 0도 각도를 갖는 분할 블록 예측 모드가 MFM으로 선택될 수 있다. 예를 들어, 가용한 블록 분할 모드 중 범용적으로(또는 통계적으로) 많이 선택되는 모드가 P개의 MFM으로 선택될 수 있다. 예를 들어, 수직, 수평, 대각선 모드가 범용적으로 많이 선택된다면, 해당 모드들 중 적어도 하나가 MFM으로 선택될 수 있다. 이때, P개의 모드 중 특정 모드를 지시하는 인덱스가 부호화/복호화될 수 있다.
일 실시예로서, 범용적으로 많이 선택되는 모드는 부호화/복호화기에서 미리 정의될 수 있다. 또는, 범용적으로 많이 선택되는 모드는 소정의 단위마다 업데이트될 수 있다. 상기 소정의 단위는 비디오, 시퀀스, 픽처, 슬라이스, 타일 또는 CTU 중 적어도 하나일 수 있다. 상기 업데이트를 위해, 각 모드가 사용된 빈도가 기록될 수 있다. 상기 소정의 단위가 변경될 때마다, 기록된 빈도에 기초하여 범용적으로 많이 선택되는 모드가 1개 이상 결정될 수 있다. 다른 실시예로서, 범용적으로 많이 선택되는 1개 이상의 모드에 관한 정보가, 예컨대, 상기 소정의 단위에서 시그널링될 수 있다. 이때, MFM은 MPM 후보 리스트 구성에서 제외될 수 있다. 예를 들어, MFM이 대각선 모드로 선택될 경우, MPM 후보 리스트는 대각선 모드를 제외하고 구성될 수 있다.
인코더/디코더는 MFM과 현재 블록의 분할 블록 예측 모드가 매칭되는지 여부를 판단할 수 있다. 예를 들어, MFM이 대각선 모드인 경우, 현재 블록의 분할 블록 예측 모드가 대각선 모드인지 판단되며, 매칭되면 현재 블록의 분할 블록 예측 모드는 대각선 모드로 유도될 수 있다. 한편, MFM 과 매칭되지 않는 경우, MPM 후보 리스트가 구성되며, MPM 후보 리스트 내 후보들과 현재 블록의 분할 블록 예측 모드와의 매칭 여부가 판단될 수 있다. MPM 후보 리스트에 현재 블록의 분할 블록 예측 모드와 매칭하는 모드가 존재하는 경우, MPM 인덱스에 기반하여 현재 블록의 분할 블록 예측 모드가 유도될 수 있다. 분할 블록 예측 모드를 유도함에 있어서, MFM인지 여부를 판단하는(또는 지시하는) 지시자가 부호화/복호화될 수 있다. MFM 지시자는 매칭 여부에 따라 0 또는 1로 결정될 수 있다. 예를 들어, 매칭되는 경우를 0이면 매칭이 안되는 경우 1일 수 있다. 또는, 예를 들어, 매칭되는 경우를 1 이면 매칭이 안되는 경우를 0일 수 있다. 이하의 실시예는 MFM 지시자가 매칭되는 경우 1이라 가정한다.
도 14는 본 개시의 일 실시예에 따른 가장 빈번한 모드(Most Frequent Mode) 및 가능성 높은 모드(Most Probable Mode)에 대한 복호화 흐름도를 예시하는 도면이다.
도 14를 참조하여 본 실시예를 설명함에 있어서, 설명의 편의를 위해 디코더를 위주로 설명하나, 본 개시가 이에 한정되는 것은 아니며, 실질적으로 동일한 방법이 인코더(즉, 부호화 프로세스)에 적용될 수 있다. 전술한 소정의 모드의 기-정의된 개수(P)가 2 이상일 경우, MFM 지시자 복호화 이후에 추가적으로 MFM 인덱스의 복호화를 통해 분할 블록 예측 모드가 유도될 수 있다.
일 실시예로서, 도 14(a)를 참조하면, MFM 지시자는 MPM 지시자 이후에 복호화(또는 판단)될 수 있다. 디코더는 MPM 지시자가 1인 경우 MFM 지시자를 복호화할 수 있다. MFM 지시자가 1일 경우, 디코더는 전술한 소정의 모드를 현재 블록의 분할 블록 예측 모드로 유도할 수 있다. 예를 들어, 소정의 모드(N=1)가 수평 또는 수직 모드일 경우, 분할 블록 예측 모드는 수평 또는 수직 모드로 유도될 수 있다. 또는, 예를 들어, 소정의 모드(N=2)가 수평, 수직 모드일 경우, 디코더는 MFM 인덱스를 복호화하여 수평 또는 수직 모드로 MFM을 유도할 수 있다. MFM 지시자가 0일 경우, 디코더는 소정의 모드를 제외한 MPM 후보 리스트 내 특정 호부를 지시하는 인덱스를 복호화하여 현재 블록의 분할 블록 모드 예측 모드를 유도할 수 있다.
다른 일 실시예로서, 도 14(b)를 참조하면, MFM 지시자는 MPM 지시자 이전에 복호화(또는 판단)될 수 있다. MFM 지시자가 1일 경우, 디코더는 소정의 모드로 분할 블록 예측 모드를 유도할 수 있다. 예를 들어, 소정의 모드(N=1)가 수평 또는 수직 모드일 경우, MFM은 수평 또는 수직 모드로 유도될 수 있다. 예를 들어, 소정의 모드(N=2)가 수평, 수직 모드일 경우, 디코더는 MFM 인덱스를 복호화하여 수평 또는 수직 모드로 MFM을 유도할 수 있다. 예를 들어, MFM 지시자가 0일 경우 디코더는 MPM 지시자를 판단할 수 있다. MPM 지시자가 1일 경우, 소정의 모드를 제외한 MPM 후보 리스트 내 특정 후보를 지시하는 인덱스를 복호화하여 현재 블록의 분할 블록 예측 모드를 유도할 수 있다.
살펴본 바와 같이, 분할 블록 모드를 유도를 위해 MPM(Most Probable Mode)이 이용될 수 있다. MPM(Most Probable Mode)이 이용될 수 있다. MPM(Most Probable Mode)은 분할 블록 예측 모드들을 후보로서 포함할 수도 있고, 화면내 예측 모드들을 후보로서 포함할 수도 있다. 이하에서는, MPM이 화면내 예측 모드들을 후보로서 포함하는 경우를 위주로 설명한다.
MPM을 이용함에 있어서, 양의 정수 개수(예를 들어, Q개)의 분할 블록 예측 모드를 가지는 MPM 후보 리스트가 구성될 수 있다. MPM 후보 리스트에 포함되는 후보는 이미 부호화/복호화된 주변 블록의 화면내 예측 모드에 기반하여 구성될 수 있다. 상기 MPM 후보의 개수는 부호화 정보에 따라 가변적으로 결정될 수 있다. 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다. 하나의 블록이 복수의 분할 블록으로 분할되는 경우, 분할 블록 별로 MPM 리스트가 유도될 수도 있고, 하나의 동일한 MPM 리스트를 공유할 수도 있다. MPM 후보 리스트는 후보로서 가장 빈번한 모드를 포함할 수 있다. 여기서, 가장 빈번한 모드는 부호화 정보에 따라 가변적으로 결정될 수 있다. 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다.
예를 들어, 대각선 모드와 수직, 수평 모드가 자주 발생하는 경우, 대각선, 수직, 수평 모드로 이뤄진 MPM 후보를 구성할 수 있다. 자주 발생하는 모드는 부호화/복호화 장치에 기-정의된 것일 수 있다. 예를 들어, 자주 발생하는 모드는, 플래너(Planar) 모드, DC 모드, 수직/수평 모드, 대각선 모드 중 적어도 하나를 포함할 수 있다. 또는, 자주 발생하는 모드로 1개만이 정의되거나 복수개가 정의될 수도 있고, 이 중 어느 하나가 선택적으로 이용될 수도 있다. 이를 위해 소정의 플래그가 이용될 수 있다. 상기 플래그는 부호화 장치에서 시그날링될 수도 있고, 부호화 파라미터에 기초하여 유도될 수도 있다. 또한, 제1 MPM 리스트는 자주 발생하는 모드만 구성되고, 제2 MPM 리스트는 주변 블록의 화면내 예측 모드에 기초하여 유도된 모드로만 구성될 수도 있다. 제1 MPM 리스트에 속한 후보의 개수는 제2 MPM 리스트에 속한 후보의 개수보다 작거나 같을 수 있다. 제2 MPM 리스트에 속한 후보의 개수는 k개이며, k는 2, 3, 4, 5, 6 또는 그 이상의 정수일 수 있다.
일 실시예로서, 다양한 위치의 주변 블록으로부터 MPM 후보가 유도될 수 있다. 예를 들어, 주변 블록의 화면내 예측 모드를 참조함에 있어서, 도 9(a)의 서브블록 위치 중 적어도 하나의 위치로부터 유도되는 예측 모드를 이용하여 MPM 리스트가 구성될 수 있다. 유도 순서는 부호화 정보에 따라 다르게 결정될 수 있다. 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다.
예를 들어, 도 11(a)와 같이 현재 블록의 위치를 (xCB, yCB)라 가정하면, MPM을 유도하는 상단 이웃 블록(A)의 위치는 (xCB, yCB - 1), 왼쪽 이웃 블록(L)의 위치는 (xCB - 1, yCB)일 수 있다. 예를 들어, 도 11(a)와 다르게 도 11(b)과 같이 현재 블록의 위치를 (xCB, yCB)라 가정하면, MPM을 유도하는 상단 이웃 블록(A)의 위치는 (xCB + W - 1, yCB - 1), 왼쪽 이웃 블록(L)의 위치는 (xCB - 1, yCB + H - 1)일 수 있다.
예를 들어, 양의 정수 M이 3일 경우, 도 11(b)와 같이 L, A, AL 위치의 이미 부호화/복호화된 예측 모드를 사용할 수 있으며, 유도 순서는 {L, A}로 구성 가능한 모든 조합 중 적어도 하나를 이용하여 MPM 리스트가 구성될 수 있다. 예를 들어, 현재 블록의 형태가 가로가 긴 비정방형일 경우 A -> L 의 순서로 MPM 리스트가 구성될 수 있다. 또는 L -> A 의 순서로 MPM 리스트가 구성될 수 있다.
또한, 예를 들어, 주변에 분할 블록 예측 모드가 존재하지 않을 경우, MPM 후보는 자주 발생하는 모드로 후보가 구성될 수 있다. 예를 들어, 주변에 분할 블록 예측 모드가 한 개만 존재하는 경우, 존재하는 모드를 포함한 -1, +1, -2, +2, -3, -4, … 등 가까운 모드들로 후보가 구성될 수 있다. 예를 들어, 주변에 분할 블록 예측 모드가 한 개만 존재하는 경우, 존재하는 모드를 포함한 자주 발생하는 모드들로 후보가 구성될 수 있다. 또는, 예를 들어, 주변에 분할 블록 예측 모드가 복수 개 존재하는 경우, 존재하는 모드를 포함한 -1, +1, -2, +2, -3, -4, … 등 가까운 모드들로 후보가 구성될 수 있다. 예를 들어, 주변에 분할 블록 모드가 복수 개 존재하는 경우, 존재하는 모드를 포함한 자주 발생하는 모드들로 후보가 구성될 수 있다.
일 실시예로서, MFM(Most Frequent Mode)가 사용되는 경우, MFM에 관계없이 N개의 후보를 포함하는 MPM 리스트가 구성될 수 있다. 즉, MFM이 특정 모드로 유도되는 경우에도, MPM 리스트는 MFM 모드를 포함하여 구성될 수 있다. 예를 들어, MFM이 대각선 모드일 경우, MPM 리스트는 대각선 모드를 포함하여 구성될 수 있다. 다른 실시예로서, MFM(Most Frequent Mode)를 사용하는 경우, MPM 리스트를 구성함에 있어, N개의 MFM(Most Frequent Mode)를 제외한 모드로 MPM 리스트를 구성할 수 있다. 예를 들어, MFM이 수평/수직/대각선 모드 중 적어도 하나일 경우, MPM 리스트는 수평/수직/대각선 모드를 제외한 모드로 구성될 수 있다. 또는, MPM 리스트는 서브블록으로부터 N개의 MFM을 유도하는 방법과 유사하게 구성될 수 있다. 예를 들어, 이미 부호화/복호화된 주변 서브블록의 예측 모드 빈도에 따라 N개의 모드를 유도하여 MPM 리스트가 구성될 수 있다. 예컨대, 현재 블록의 주변 서브블록의 예측 모드가 도 10(a)와 같이 구성되어 있고, N=2 일 때, 대각선 모드와 수평 모드가 MPM 리스트로 구성될 수 있다.
예를 들어, 서브블록의 예측 모드 빈도가 동일한 경우, 해당 서브블록이 포함되는 부호화/복호화된 블록 크기에 따라 선호도(또는 우선 순위)가 결정될 수 있다. 또는, 서브블록의 예측 모드 빈도가 동일한 경우, 작은 인덱스를 가진 모드가 이용되거나, 특정 위치의 모드가 고정적으로 이용될 수 있다. MPM 리스트는 분할 블록 예측 모드 중 N개의 모드를 선택하여 MFM을 유도하는 방법과 유사하게 구성될 수 있다. 예를 들어, 분할 블록 예측 모드 중 자주 발생하는 모드 N개를 선택하여 MPM 리스트가 구성될 수 있다.
또한, 일 실시예로서, MPM 리스트는 시간적/공간적 주변 블록의 예측 모드를 포함될 수 있다. 예를 들어, 하나 이상의 공간적 이웃 블록의 분할 블록 예측 모드가 상기 MPM 리스트에 포함되는 후보일 수 있다. 일 예로서, 6개의 MPM 모드를 구성함에 있어, 도 9에서 현재 블록 주변에 인접한 블록(또는 서브블록)의 분할 블록 예측 모드가 MPM 후보로 이용될 수 있다. 일 예로서, 공간적 주변 블록의 하나 이상의 분할 블록 예측 모드의 조합을 이용하여 MPM 리스트가 구성될 수 있다. 예를 들어, 하나 이상의 시간적 주변 블록의 분할 블록 예측 모드가 MPM 리스트에 포함되는 후보일 수 있다. 일 예로서, 6개의 MPM 모드를 구성함에 있어, M개의 참조 블록에 해당하는 분할 블록 예측 모드가 이용될 수 있다. 상기 M개의 참조 블록은 POC 상 현재 픽처와 가까운 참조 픽처에 존재하는 참조 블록 순서로 결정될 수 있다.
또한, 일 예로서, 시간적 주변 블록의 하나 이상의 분할 블록 예측 모드의 조합을 이용하여 MPM 리스트가 구성될 수 있다. 예를 들어, 하나 이상의 공간적/시간적 주변 블록의 분할 블록 예측 모드가 MPM 리스트에 포함되는 후보일 수 있다. 예를 들어, 6개의 MPM 후보를 포함하는 MPM 리스트를 구성함에 있어, 현재 블록의 공간적 주변 블록의 분할 블록 예측 모드와 참조 블록의 분할 블록 예측 모드가 이용될 수 있다. 공간적 주변 블록의 분할 블록 예측 모드가 존재하지 않는 경우, 주변 블록과 동일한 위치에 존재하는 참조 블록의 분할 블록 예측 모드로 대체될 수 있다. 또는 주변 블록의 움직임 정보에 대응하는 참조 블록의 분할 블록 예측 모드로 대체될 수 있다. 일 예로서, 공간적 주변 블록, 시간적 주변 블록의 하나 이상의 분할 블록 예측 모드의 조합을 이용하여 MPM 리스트가 구성될 수 있다.
상술한 실시예에 따라 MPM 후보를 추가하였음에도 MPM 리스트가 모두 채워지지 않은 경우, 각각의 방법의 조합 혹은 유사 모드로 MPM 리스트를 채워질 수 있다. 또한, 상술한 실시예의 MPM 후보 구성 순서는 변경될 수 있다. 예를 들어, 부호화/복호화 장치에 기-정의된 디폴트 모드가 MPM 리스트에 추가될 수도 있다. 디폴트 모드는, 좌하단 대각선 모드와 수평 모드 사이의 제1 모드, 수평 모드와 좌상단 대각선 모드 사이의 제2 모드, 좌상단 대각선 모드와 수직 모드 사이의 제3 모드 또는 수직 모드와 우상단 대각선 모드 사이의 제4 모드 중 적어도 하나를 포함할 수 있다. 제1 내지 제4 모드 각각은 하나 또는 복수의 방향성 모드를 포함할 수 있다. 또는, 디폴트 모드로 플래너 모드와 DC 모드가 아닌 다른 비방향성 모드가 이용될 수도 있다. 여기서, 비방향성 모드는, 복수의 주변 샘플에 보간 필터를 적용하여 예측 샘플을 유도하는 모드일 수 있고, 이때 이용되는 주변 샘플의 개수는 2개, 3개, 4개, 5개 또는 그 이상일 수 있다. 주변 샘플은 특정 위치의 1개 주변 블록에 속한 것일 수도 있고, 복수의 주변 블록(예를 들어, 좌, 상, 좌하, 좌상 또는 우상 중 적어도 2개)에 속할 수도 있다. 보간 필터의 가중치는, 블록 크기, 예측 대상 샘플의 위치, 주변 샘플의 위치 등을 고려하여 가변적으로 결정될 수 있다. 또는, 예를 들어, [상술한 실시예에 따라 MPM 후보를 추가하였음에도 MPM 리스트가 모두 채워지지 않은 경우 방향성 모드의 +a, -a(a=1,2,3,…) 중 적어도 하나의 모드를 추가하여 MPM 리스트가 채워질 수 있다. MPM 리스트 구성을 위한 MPM 후보 유도 순서는 부호화 정보에 따라 가변적으로 결정될 수 있다. 부호화 정보는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다.
또한, 예를 들어, 현재 블록(WxH)의 형태가 W>H 인 비정방형인 경우, 전술한 공간적/시간적 주변 블록의 모드를 유도함에 있어, 인코더/디코더는 상단의 주변 블록을 우선적으로 고려하여 MPM 리스트를 구성할 수 있다. 예를 들어, 현재 블록(WxH)의 형태가 W>H 인 비정방형인 경우, 전술한 공간적/시간적 주변 블록의 모드를 유도함에 있어, 인코더/디코더는 좌측의 주변 블록을 우선적으로 고려하여 MPM 리스트를 구성할 수 있다. 또한, 예를 들어, 현재 블록(WxH)의 형태가 W<H 인 비정방형인 경우, 전술한 공간적/시간적 주변 블록의 모드를 유도함에 있어, 인코더/디코더는 좌측의 주변 블록을 우선적으로 고려하여 MPM 리스트를 구성할 수 있다. 현재 블록(WxH)의 형태가 W<H 인 비정방형인 경우, 공간적/시간적 주변 블록의 모드를 유도함에 있어, 인코더/디코더는 상단의 주변 블록을 우선적으로 고려하여 MPM 리스트를 구성할 수 있다. 이때, 상단, 좌측, 우측 중 적어도 하나의 부호화/복호화된 블록이 존재할 수 있으며, 이미 부호화/복호화된 블록의 위치에 따라 MPM 리스트를 다르게 구성할 수 있다. 예를 들어, 이미 부호화/복호화된 블록이 우측 및 상단에 위치한다면, MPM 리스트는 우측 및 상단 중 적어도 하나의 공간적/시간적 후보를 포함하여 구성될 수 있다. 또는, 예를 들어, 이미 부호화/복호화된 블록이 우측, 상단, 좌측 모두에 위치한다면, MPM 리스트는 우측, 상단, 좌측 중 적어도 하나의 공간적/시간적 후보를 포함하여 구성될 수 있다.
이 경우, MPM 리스트에 포함된 후보의 개수는 하나 이상일 수 있다. 예를 들어, 제1 MPM 리스트, 제2 MPM 리스트, 제3 MPM 리스트 3개의 MPM 리스트를 구성할 수 있다. 이때, 각 MPM 리스트에 포함되는 분할 블록 예측 모드는 중복되지 않을 수 있다. 일 예로서, MPM 후보의 개수는 슬라이스 타입에 따라 다르게 설정될 수 있다. 예를 들어, I 슬라이스인 경우 MPM 후보의 개수는 6개로 설정되고, P 또는 B 슬라이스인 경우 MPM 후보의 개수는 3개로 설정될 수 있다. 또는, I 슬라이스인 경우 MPM 후보의 개수는 3개로 설정되고, P 또는 B 슬라이스인 경우 MPM 후보의 개수는 6개로 설정될 수 있다. 또한, MPM 후보의 개수는 색 성분에 따라 다르게 설정될 수 있다. 예를 들어, 휘도 성분인 경우 MPM 후보의 개수는 6개로 설정되고, 색차 성분인 경우 MPM 후보의 개수는 3개로 설정될 수 있다. 또는, 휘도 성분인 경우 MPM 후보의 개수는 3개로 설정되고, 색차 성분인 경우 MPM 후보드의 개수는 6개로 설정될 수 있다. MPM 리스트를 구성하여 모드를 부호화/복호화하는 경우, MPM 지시자 또는 MPM 인덱스 정보 중 적어도 하나에 대한 이진화 및 엔트로피 부호화/복호화가 수행될 수 있다.
도 15 및 도 16은 본 개시의 일 실시예에 따른 분할 블록 예측 방법을 설명하기 위한 도면이다.
분할 블록 예측은 부호화 블록을 특정 라인(예를 들어, 대각선)을 기준으로 두 개의 영역으로 분할하고, 분할된 각각의 영역에 대한 화면간 예측을 수행하는 방법이다. 분할 블록 예측 방법은 CU(coding unit), CB(coding block)을 분할하는 방법일 수 있다. 예를 들어, 정사각형 또는 직사각형의 CU 또는 CB를 정사각형이나 직사각형이 아닌 파티션(partition)으로 나누는 방법일 수 있다. 직사각형의 CU가 삼각형과 사다리꼴의 파티션(또는 다각형)으로 나뉠 수 있다. 또한, 분할 블록 예측에 대한 정보는 CU 레벨에서 시그날링될 수 있다. 분할 블록 예측 모드에 따라 분할된 두 개의 분할 유닛의 움직임 정보에 기초하여 움직임 보상, 예측이 수행될 수 있다. 또한, 두 개의 움직임 정보는 머지 후보로부터 유도될 수 있다.
일 실시예로서, 분할 블록 예측을 위하여, 도 15에 도시된 바와 같이, 64개의 분할 모드가 정의될 수 있고, 각각의 분할 모드에 대응되는 분할 인덱스가 할당될 수 있다. 그리고, 각각의 분할 모드에 대응되는 분할 각도의 인덱스, 분할 거리의 인덱스가 정의될 수 있다. 분할 라인(즉, 상기 특정 라인)의 위치는 분할 각도 및 분할 거리 파라미터로부터 수학적으로 유도될 수 있다.
일 실시예로서, 분할 블록 예측에서 사용하는 두 개의 모션 정보를 지시하기 위한 신택스 요소가 merge_triangle_idx0, merge_triangle_idx1일 수 있다. 이 경우, 신택스 요소로부터 두 개의 변수 m, n이 유도될 수 있다. 예를 들어, 아래의 수학식과 같이 유도될 수 있다.
m = merge_triangle_idx0
n = merge_triangle_idx1 + (( merge_triangle_idx1 >= m ) ? 1 : 0)
즉, 인덱스 m은 merge_triangle_idx0와 같을 수 있다. 또한, index n은 merge_triangle_idx1이 merge_triangle_idx0보다 크거나 같은 경우 merge_triangle_idx1 + 1 이고, merge_triangle_idx1이 merge_triangle_idx0보다 작은 경우 merge_triangle_idx1일 수 있다.
또한, 전술한 바와 같이, 특정 분할 각도를 지시하는 인덱스는 분할 각도의 미리 정해진 순서대로 구성될 수 있으며, 16개의 일정 비의 각도에 대한 인덱스는 도 16에 도시된 바와 같이 정의될 수 있다.
본 개시의 일 실시예에 따르면, 분할 블록 예측 모드에 대한 이진화 및 엔트로피 부호화/복호화가 수행될 수 있다. 전술한 바와 같이, 분할 블록 예측 모드에 대한 분할 정보는 분할 블록 예측 수행 지시자, 기정의된 분할 블록 모드, 분할 블록 예측 모드의 조합, 분할 각도, 분할 거리 또는 2개의 분할 블록 움직임 벡터 중 적어도 하나의 정보일 수 있다. 여기서, 분할 정보의 전송 순서는 부호화 파라미터에 따라 가변적으로 결정될 수 있다. 부호화 파라미터는 QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나에 따라 결정될 수 있다. 다음의 도면을 참조하여 분할 정보에 대한 신택스 구조를 설명한다.
도 17은 본 개시의 일 실시예에 따른 분할 블록 예측 방법이 적용되는 신택스 구조를 예시하는 도면이다.
도 17을 참조하여 본 실시예를 설명함에 있어서, 설명의 편의를 위해 디코더를 위주로 설명하나, 본 개시가 이에 한정되는 것은 아니며, 실질적으로 동일한 방법이 인코더(즉, 부호화 프로세스)에 적용될 수 있다.
일 실시예로서, 도 17(a)에 도시된 바와 같이, 디코더는 분할 블록 예측 수행 지시자(즉, gpm flag) - 분할 블록 예측 모드 조합을 지시하는 인덱스(즉, merge_gpm_idx0) - 첫 번째 분할 유닛(또는, 파티션, 분할 블록)의 움직임 벡터 인덱스(즉, merge_gpm_idx0) - 두 번째 분할 유닛의 움직임 벡터 인덱스(즉, merge_gpm_idx0)의 순서로 신택스 엘리먼트를 복호화(또는 파싱)할 수 있다.
또는, 예를 들어, 도 17(b)에 도시된 바와 같이, 디코더는 분할 블록 예측 수행 지시자 - 분할 각도(즉, merge_gpm_angle_idx) - 분할 거리(즉, merge_gpm_distance_idx) - 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다.
또는, 예를 들어, 디코더는 분할 블록 예측 수행 지시자 - 기-정의된 분할 블록 모드의 인덱스 - 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다.
또는, 예를 들어, 디코더는 분할 블록 예측 수행 지시자 - 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스 - 분할 블록 예측 모드 조합을 지시하는 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다.
또는, 예를 들어, 디코더는 분할 블록 예측 수행 지시자 - 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스 - 분할 각도 - 분할 거리의 순서로 신택스 엘리먼트를 복호화할 수 있다.
일 실시예로서, 분할 정보의 전송은 부호화 파라미터에 따라 일부 또는 전부가 생략되어 유도될 수 있다. 부호화 파라미터는 예측 모드 지시자, QP, 슬라이스 타입, 색 성분, 블록의 크기/형태 중 적어도 하나를 포함할 수 있다.
예를 들어, 도 17(a)에 도시된 바와 같이, 디코더는 분할 블록 예측 모드 조합을 지시하는 인덱스 - 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다. 또는, 예를 들어, 도 17(b)에 도시된 바와 같이, 디코더는 분할 각도 - 분할 거리 - 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다.
또는, 예를 들어, 디코더는 기-정의된 분할 블록 모드의 인덱스 - 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다. 또는, 예를 들어, 디코더는 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스 - 분할 블록 모드 조합의 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다. 또는, 예를 들어, 디코더는 첫 번째 분할 유닛의 움직임 벡터 인덱스 - 두 번째 분할 유닛의 움직임 벡터 인덱스 - 분할 각도 - 분할 거리의 순서로 신택스 엘리먼트를 복호화할 수 있다. 이때, 두 번째 분할 유닛의 움직임 벡터 인덱스는 첫 번째 분할 유닛의 움직임 벡터 인덱스를 통해 유도되어 생략될 수 있다.
예를 들어, 디코더는 분할 블록 모드 조합의 인덱스 - 첫 번째 분할 유닛의 움직임 벡터 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다. 또는, 예를 들어, 디코더는 분할 각도 - 분할 거리 - 첫 번째 분할 유닛의 움직임 벡터 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다. 또는, 예를 들어, 디코더는 기정의된 분할 블록 모드의 인덱스 - 첫 번째 분할 유닛의 움직임 벡터 인덱스의 순서로 신택스 엘리먼트를 복호화할 수 있다. 여기서, 분할 정보 중 적어도 하나의 정보는 전술한 바와 같이, 소정의 모드 및 주변 블록의 분할 블록 모드를 이용하여 이진화 및 엔트로피 부호화/복호화가 수행될 수 있다.
예를 들어, 분할 각도 - 분할 거리 - 첫 번째 분할 블록의 움직임 벡터 인덱스 - 두 번째 분할 블록의 움직임 벡터 인덱스의 순서의 분할 정보 전송에서 분할 각도는 소정의 모드 및 주변 블록의 분할 블록 모드를 이용하여 이진화 및 엔트로피 부호화/복호화가 수행될 수 있고, 분할 거리는 별도의 이진화 및 엔트로피 부호화/복호화가 수행될 수 있다.
분할 정보에 대한 이진화 및 엔트로피 부호화/복호화는 MPM, 지수골롬코드 부호화(Exponential-Golomb Coding), 절삭된 단항 이진 부호화(Truncated Unary Coding), 고정 길이 이진 부호화(Fixed Length Coding), 절삭된 이진 부호화(Truncated Binary Coding) 중 적어도 하나에 따라 수행될 수 있다. 이 경우, 블록 단위로 분할 정보에 대한 엔트로피 부호화/복호화가 수행될 수 있다. 예를 들어, 분할 정보는 아래의 정보들 중 적어도 하나를 포함할 수 있다.
- 분할 블록 예측의 수행 여부를 나타내는 플래그: 예) merge_gpm_flag
- 분할 블록 예측 모드 조합을 지시하는 인덱스: 예) merge_gpm_partition_idx
- 분할 블록 각도 인덱스: 예) merge_gpm_angle_idx
- 분할 블록 거리 인덱스: 예) merge_gpm_distance_idx
- 첫 번째 분할 유닛의 움직임 벡터 인덱스: 예) merge_gpm_idx0
- 두 번째 분할 유닛의 움직임 벡터 인덱스: 예) merge_gpm_idx1
- MFM(Most Frequent Mode) 매칭 여부를 지시하는 플래그: 예) mfm_flag
- 복수의 MFM 모드 내 선택된 MFM 모드를 지시하는 인덱스: 예) mfm_idx
- 탬플릿 매칭 여부를 지시하는 플래그
- 탬플릿 매칭 탐색 영역을 지시하는 인덱스
- MPM(Most Probable Mode) 매칭 여부를 지시하는 플래그: 예) mpm_flag
- MPM 리스트 내 MPM 후보를 지시하는 인덱스: 예) mpm_idx
상술한 분할 정보들 중 적어도 하나는 슬라이스 타입, 블록의 크기, 형태 중 적어도 하나에 기초하여 시그날링되지 않을 수 있다. 시그날링이 생략된 분할 정보는, 시그날링된 다른 분할 정보 또는 전술한 부호화 파라미터 중 적어도 하나에 기초하여 유도될 수도 있다. 예를 들어, 현재 블록의 크기가 소정의 크기(또는 크기 범위)에 해당하는 경우, 현재 블록에 대한 분할 정보들 중 적어도 하나의 분할 정보는 시그날링되지 않고, 이전에 부호화/복호화된 블록(또는 상위 블록)의 분할 정보에 관한 하나 이상의 정보가 이용될 수 있다. 예를 들어, 현재 블록의 형태가 비정방형인 경우, 현재 블록에 대한 분할 정보들 중 적어도 하나의 분할 정보는 시그날링되지 않고, 이전에 부호화/복호화된 블록(또는 상위 블록) 크기에 해당하는 분할 정보에 관한 하나 이상의 정보가 이용될 수 있다.
상술한 분할 정보들 중 적어도 하나의 분할 정보에 대한 엔트로피 부호화/복호화가 수행되는 경우, 아래의 이진화(binarization) 방법 중 적어도 하나가 이용될 수 있다.
- 절삭된 라이스(Truncated Rice) 이진화 방법
- K차수 지수-골롬(K-th order Exp_Golomb) 이진화 방법
- 제한된 K차수 지수-골롬(K-th order Exp_Golomb) 이진화 방법
- 고정 길이(Fixed-length) 이진화 방법
- 단항(Unary) 이진화 방법
- 절삭된 단항(Truncated Unary) 이진화 방법
- 절삭된 이진(Truncated Binary) 이진화 방법
상술한 분할 정보 또는 상기 이진화를 통해 발생한 이진 정보에 대한 엔트로피 부호화/복호화를 수행함에 있어, 아래의 방법들 중 적어도 하나가 이용될 수 있다.
- 문맥 기반 적응적 이진 산술 부호화(CABAC, Contest-Adaptive Binary Arithmetic Coding)
- 문맥 기반 적응적 가변길이 부호화(CAVLC, Context-Adaptive Variable Length Coding)
- 우회 부호화 (bypass coding)
상기 분할 블록 모드 정보 또는 상기 이진화를 통해 발생한 이진 정보에 대한 엔트로피 부호화/복호화를 수행함에 있어, 부호화 파라미터에 따라 적응적으로 엔트로피 부호화/복호화가 수행될 수 있다. 부호화 파라미터는 슬라이스 타입, 현재 블록의 크기/형태, 주변 블록의 예측 모드 중 적어도 하나를 포함할 수 있다. 예를 들어, 좌측 주변 블록의 분할 정보와 상단 주변 블록의 분할 정보가 같은 경우 CABAC이 적용되고, 좌측과 상단 주변 블록의 분할 블록 모드 정보가 다른 경우 우회 부호화가 수행될 수 있다. 또는, 예를 들어, 좌측과 상단 주변 블록의 분할 정보가 같은 경우 제1 문맥 모델을 사용하는 CABAC이 적용되고, 좌측과 상단 주변 블록의 분할 정보가 다른 경우 제2 문맥 모델을 사용하는 CABAC이 적용될 수 있다. 또는, 예를 들어, 현재 블록의 슬라이스 타입이 I-슬라이스인 경우 제1 문맥 모델을 사용하는 CABAC이 적용되고, P-슬라이스인 경우 제2 문맥 모델을 사용하는 CABAC이 적용되고, B-슬라이스인 경우 제3 문맥 모델을 사용하는 CABAC이 적용될 수 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 발명은 비디오 신호를 부호화/복호화하기 위해 이용될 수 있다.

Claims (8)

  1. 현재 블록에 분할 블록 예측이 적용되는 경우, 상기 현재 블록의 분할 블록 예측 모드를 결정하는 단계;
    상기 분할 블록 예측 모드에 따라 분할된 분할 유닛들의 움직임 정보를 유도하는 단계; 및
    상기 움직임 정보에 기초하여 상기 분할 유닛들 각각에 대한 움직임 보상을 수행함으로써 상기 현재 블록의 예측 블록을 생성하는 단계를 포함하고,
    상기 분할 블록 예측이 적용되는 경우, 상기 현재 블록은 상기 현재 블록 내 특정 라인에 기초하여 2개의 분할 유닛들로 분할되고,
    상기 현재 블록 내 특정 라인은 상기 분할 블록 예측 모드에 의해 식별되는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 분할 블록 예측 모드를 결정하는 단계는,
    기-정의된 조건을 만족하는 경우, 상기 분할 블록 예측 모드의 분할 각도 및 분할 거리의 조합들 중 특정 조합을 지시하는 조합 인덱스를 획득하는 단계를 포함하고,
    상기 기-정의된 조건을 만족하지 않는 경우, 상기 조합 인덱스는 0의 값으로 추론되는, 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 조합 인덱스는 고정 길이 부호화 기법을 이용하여 이진화되는, 영상 복호화 방법.
  4. 제1항에 있어서,
    상기 분할 블록 예측 모드를 결정하는 단계는,
    상기 분할 블록 예측 모드의 분할 각도를 지시하는 분할 각도 인덱스를 획득하는 단계; 및
    상기 분할 블록 예측 모드의 분할 거리를 지시하는 분할 거리 인덱스를 획득하는 단계를 포함하는, 영상 복호화 방법.
  5. 제4항에 있어서,
    상기 분할 각도는 또는 상기 분할 거리 중 적어도 하나는, 부호화 파라미터에 따라 가변적으로 정의되고,
    상기 부호화 파라미터는 양자화 파라미터, 슬라이스 타입, 색 성분, 블록의 크기, 블록의 형태 중 적어도 하나를 포함하는, 영상 복호화 방법.
  6. 제1항에 있어서,
    상기 분할 블록 예측 모드는 적어도 하나의 가장 빈번한 모드(most frequent mode, MFM)를 포함하고,
    상기 MFM은 상기 현재 블록의 공간적 또는 시간적으로 이웃하는 블록의 분할 블록 예측 모드들에 기초하여 유도되는 모드를 나타내는, 영상 복호화 방법.
  7. 제6항에 있어서,
    상기 분할 블록 예측 모드를 결정하는 단계는,
    상기 MFM이 상기 현재 블록의 분할 블록 예측에 이용되는지 여부를 지시하는 MFM 플래그를 획득하는 단계; 및
    상기 MFM이 복수 개인 경우, 상기 복수의 MFM 중에서 상기 현재 블록의 분할 블록 예측에 이용되는 MFM을 지시하는 MFM 인덱스를 획득하는 단계를 포함하는, 영상 복호화 방법.
  8. 현재 블록의 분할 블록 예측 모드를 결정하는 단계;
    상기 분할 블록 예측 모드에 따라 분할된 분할 유닛들의 움직임 정보를 유도하는 단계; 및
    상기 움직임 정보에 기초하여 상기 분할 유닛들 각각에 대한 움직임 보상을 수행함으로써 상기 현재 블록의 예측 블록을 생성하는 단계를 포함하고,
    상기 분할 블록 예측이 적용되는 경우, 상기 현재 블록은 상기 현재 블록 내 특정 라인에 기초하여 2개의 분할 유닛들로 분할되고,
    상기 현재 블록 내 특정 라인은 상기 분할 블록 예측 모드에 의해 식별되는, 영상 부호화 방법.
KR1020210043214A 2020-04-03 2021-04-02 영상 부호화 및 복호화 방법 및 장치 KR20210124069A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200040960 2020-04-03
KR1020200040960 2020-04-03

Publications (1)

Publication Number Publication Date
KR20210124069A true KR20210124069A (ko) 2021-10-14

Family

ID=78151631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210043214A KR20210124069A (ko) 2020-04-03 2021-04-02 영상 부호화 및 복호화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20210124069A (ko)

Similar Documents

Publication Publication Date Title
KR102531738B1 (ko) 영상 부호화/복호화 방법 및 장치
KR102625959B1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR102383107B1 (ko) 비디오 신호 처리 방법 및 장치
CN109845269B (zh) 影像处理方法、利用其的影像解码及编码方法
KR102424419B1 (ko) 비디오 신호 처리 방법 및 장치
KR102383105B1 (ko) 비디오 신호 처리 방법 및 장치
KR102383106B1 (ko) 비디오 신호 처리 방법 및 장치
KR102424418B1 (ko) 비디오 신호 처리 방법 및 장치
KR20170058838A (ko) 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
KR101997681B1 (ko) 양자화 파라미터 기반의 잔차 블록 부호화/복호화 방법 및 장치
KR20140134255A (ko) 예측 단위의 파티션 모드에 기초한 계수 스캔 방법 및 장치
KR20200028860A (ko) 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
KR20190110044A (ko) 비디오 신호 처리 방법 및 장치
KR20190113652A (ko) 비디오 신호 처리 방법 및 장치
KR20230110701A (ko) 영상 신호 부호화/복호화 방법 및 장치
US20230063859A1 (en) Method and apparatus for encoding/decoding image signal
KR20180033030A (ko) 적응적 블록 분할에 기반한 비디오 신호 처리 방법 및 장치
KR20230113243A (ko) 영상 신호 부호화/복호화 방법 및 장치
KR20210124069A (ko) 영상 부호화 및 복호화 방법 및 장치
KR102525555B1 (ko) 양자화 파라미터 기반의 잔차 블록 부호화/복호화 방법 및 장치
KR102557740B1 (ko) 영상 신호 부호화/복호화 방법 및 장치
KR102557797B1 (ko) 영상 신호 부호화/복호화 방법 및 장치
KR20230074682A (ko) 영상 부호화/복호화 방법 및 장치
KR20220134476A (ko) 영상 신호 부호화/복호화 방법 및 이를 기초로 생성된 비트스트림을 저장하는 기록 매체
KR20210103763A (ko) 비디오 신호 처리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination