KR20200064920A - 화면간 예측에 기반한 영상 부호화/복호화 방법 및 장치 - Google Patents

화면간 예측에 기반한 영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
KR20200064920A
KR20200064920A KR1020190151697A KR20190151697A KR20200064920A KR 20200064920 A KR20200064920 A KR 20200064920A KR 1020190151697 A KR1020190151697 A KR 1020190151697A KR 20190151697 A KR20190151697 A KR 20190151697A KR 20200064920 A KR20200064920 A KR 20200064920A
Authority
KR
South Korea
Prior art keywords
block
inter
information
motion
prediction
Prior art date
Application number
KR1020190151697A
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 KR20200064920A publication Critical patent/KR20200064920A/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 트리 구조 기반의 분할을 통해, 제1 부호화 블록을 복수의 제2 부호화 블록으로 분할하고, 제2 부호화 블록의 화면간 예측 모드를 결정하며, 화면간 예측 모드에 기초하여 제2 부호화 블록의 움직임 정보를 유도하고, 움직임 정보를 기반으로 제2 부호화 블록의 예측 블록을 생성할 수 있다.

Description

화면간 예측에 기반한 영상 부호화/복호화 방법 및 장치{METHOD AND APPARATUS FOR ENCODING/DECODING VIDEO BASED ON INTER PREDICTION}
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것이다.
고해상도 비디오에 대한 시장의 수요가 증가하고 있으며, 이에 따라 고해상도 영상을 효율적으로 압축할 수 있는 기술이 필요하다. 이러한 시장의 요구에 따라 ISO/IEC의 MPEG (Moving Picture Expert Group)과 ITU-T의 VCEG (Video Coding Expert Group)이 공동으로 JVET을 결성하여, VVC (Versatile Video Coding) 비디오 압축 표준에 대한 연구 및 개발을 활발히 진행해 오고 있다.
동영상 압축은 크게 화면 내 예측 (또는 인트라 예측), 화면 간 예측(또는 인터 예측), 변환, 양자화, 엔트로피(Entropy coding) 부호화, 인루프 필터(In-loop filter)로 구성된다. 한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 발명은 비디오 신호의 코딩 효율을 향상시키고자 함에 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 트리 구조 기반의 분할을 통해, 제1 부호화 블록을 복수의 제2 부호화 블록으로 분할하고, 상기 제2 부호화 블록의 화면간 예측 모드를 결정하며, 상기 화면간 예측 모드에 기초하여, 상기 제2 부호화 블록의 움직임 정보를 유도하고, 상기 움직임 정보를 기반으로, 상기 제2 부호화 블록의 예측 블록을 생성할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 트리 구조 기반의 분할은, 쿼드 트리 분할, 바이너리 트리 분할 또는 터너리 트리 분할 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 결정된 화면간 예측 모드가 머지 모드인 경우, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계는, 복수의 머지 후보를 포함한 머지 후보 리스트를 생성하는 단계 및 복수의 머지 후보 중 어느 하나를 이용하여, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 복수의 머지 후보는, 공간적 주변 블록의 화면간 예측 정보, 시간적 주변 블록의 화면간 예측 정보, 합성 화면간 예측 정보 또는 제로 움직임 정보 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 공간적 주변 블록은, 상기 제2 부호화 블록의 좌측 블록, 상단 블록, 좌하단 블록, 우상단 블록 또는 좌상단 블록 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 공간적 주변 블록은 소정의 우선순위에 기초하여 순차적으로 상기 머지 후보 리스트에 추가될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 합성 화면간 예측 정보는, 상기 복수의 머지 후보 중 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 움직임 벡터의 가중 평균으로 유도될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계는, 기-유도된 제2 부호화 블록의 움직임 벡터를 보정하는 단계를 더 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 움직임 벡터를 보정하는 단계는, 움직임 보정을 위한 탐색 영역을 결정하는 단계, 탐색 영역 내의 탐색 위치 별 SAD(sum of absolute difference)를 산출하는 단계, 상기 산출된 복수의 SAD 중 최소 SAD에 대응하는 오프셋을 기반으로, 델타 움직임 정보를 유도하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 SAD는 L0 블록과 L1 블록 간의 차이로 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 예측 블록을 생성하는 단계는, 소정의 참조 영역에 속한 샘플의 변화도(gradient)를 기반으로, 상기 제2 부호화 블록의 예측 블록을 보정하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 변화도는, 수평 방향의 변화도와 수직 방향의 변화도를 포함하고, 상기 수평 방향의 변화도는, 상기 참조 영역 내 현재 샘플을 기준으로 좌측 및 우측으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출되고, 상기 수직 방향의 변화도는, 상기 현재 샘플을 기준으로 상단 및 하단으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는 블록 또는 부-블록 단위 움직임 보상/보정을 통해 비디오 신호 코딩 효율을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 비디오 부호화 방법 및 장치의 구성을 나타내는 블록도를 도시한다.
도 2는 본 발명의 일 실시예에 따른 비디오 복호화 방법 및 장치의 구성을 나타내는 블록도를 도시한다.
도 3은 본 발명이 적용되는 일실시예로서, 트리 구조 기반의 분할 방법을 도시한 것이다.
도 4는 본 발명이 적용되는 일실시예로서, 부호화/복호화 장치에 기-정의된 화면간 예측 모드에 기반하여 움직임 보상을 수행하는 방법을 도시한 것이다.
도 5 내지 도 11은 본 발명이 적용되는 일실시예로서, 화면간 예측을 위해 참조되는 공간적/시간적 영역을 도시한 것이다.
도 12는 본 발명이 적용되는 일실시예로서, 복호화 장치에서 움직임 벡터를 보정하는 방법을 도시한 것이다.
본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부에 다른 구성 또는 다른 단계가 삽입될 수 있다.
또한, 본 발명의 제1 실시예의 일부 구성 또는 일부 단계는 본 발명의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는 일부 단계를 대체할 수 있다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
먼저, 본 출원에서 사용되는 용어를 간략히 설명하면 다음과 같다.
이하에서 후술할 복호화 장치(Video Decoding Apparatus)는 민간 보안 카메라, 민간 보안 시스템, 군용 보안 카메라, 군용 보안 시스템, 개인용 컴퓨터(PC, Personal Computer), 노트북 컴퓨터, 휴대형 멀티미디어 플레이어(PMP, Portable MultimediaPlayer), 무선 통신 단말기(Wireless Communication Terminal), 스마트 폰(Smart Phone), TV 응용 서버와 서비스 서버 등 서버 단말기에 포함된 장치일 수 있으며, 각종 기기 등과 같은 사용자 단말기, 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하거나 복호화를 위해 화면 간 또는 화면 내 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다.
또한, 부호화기에 의해 비트스트림(bitstream)으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB, Universal Serial Bus)등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 복호화되어 영상으로 복원되고 재생될 수 있다. 또는 부호화기에 의해 생성된 비트스트림은 메모리에 저장될 수 있다. 상기 메모리는 휘발성 메모리와 비휘발성 메모리를 모두 포함할 수 있다. 본 명세서에서 메모리는 비트스트림을 저장한 기록 매체로 표현될 수 있다.
통상적으로 동영상은 일련의 픽쳐(Picture)들로 구성될 수 있으며, 각 픽쳐들은 블록(Block)과 같은 코딩 유닛(coding unit)으로 분할될 수 있다. 또한, 이하에 기재된 픽쳐라는 용어는 영상(Image), 프레임(Frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다. 그리고 코딩 유닛이라는 용어는 단위 블록, 블록 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 비디오 부호화 방법 및 장치의 구성을 나타내는 블록도를 도시한다.
일 실시예에 따른 비디오 부호화 방법 및 장치는 화면 간 예측부(120), 화면 내 예측부(125), 감산부(130), 변환부(140), 양자화부(150), 엔트로피 부호화부(160), 역변환부(145), 역양자화부(155), 가산부(135), 양방향 필터부(180), 인루프 필터부(180), 복원 픽쳐 버퍼(190)를 포함할 수 있다.
화면 간 예측부(120)는 입력 영상(110)과 복원 픽쳐 버퍼(190)에 저장되어 있는 복원 영상을 이용하여 움직임 예측을 수행하여 예측 신호를 생성한다.
화면 내 예측부(125)는 부호화되는 현재 블록과 공간적으로 인접하는 기-복원된 주변 블록의 화소 값을 이용하여 공간적 예측을 수행하여 예측 신호를 생성한다.
감산부(130)는 입력 영상과 화면 간 예측부(120) 혹은 화면 내 예측부(125)를 통해 생성된 예측 신호를 이용하여 잔차 신호 (residual signal)를 생성한다.
변환부(140) 및 양자화부(150)는 감산부(130)를 통해 생성된 잔차 신호에 대하여 변환 및 양자화를 수행하여 양자화된 계수 (quantized coefficient)를 생성한다.
엔트로피 부호화부(160)는 비디오 압축 표준에 정의된 신택스 요소 (syntax elements) 및 양자화된 계수 등과 같은 부호화 정보에 대하여 엔트로피 부호화를 수행하여 비트스트림을 출력한다.
역변환부(145) 및 역양자화부(155)는 양자화 계수를 수신하여 역양자화 및 역변환을 차례대로 수행하고, 복원된 잔차 신호를 생성한다.
가산부(135)는 화면 간 예측부(120) 혹은 화면 내 예측부(125)를 통해 생성된 예측 신호와 복원된 잔차 신호를 이용하여 복원 신호를 생성한다.
상기 복원 신호는 인루프 필터부(180)로 전달되어 디블록킹 필터, SAO (Sample Adaptive Offset), ALF (Adaptive Loop Filter)와 같은 하나 혹은 그 이상의 인루프 필터를 적용하여 최종 복원 픽쳐를 생성하여 복원 픽쳐 버퍼(190)에 저장된다.
상기 복원 픽쳐 버퍼(190)에 저장된 복원 픽쳐는 화면 간 예측부(120)에서 참조 픽쳐로 사용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비디오 복호화 방법 및 장치의 구성을 나타내는 블록도를 도시한다.
일 실시예에 따른 비디오 복호화 장치 및 방법은 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 화면 내 예측부(240), 화면 간 예측부(250), 가산부(260), 양방향 필터부(270), 인루프 필터부(280), 복원 픽쳐 버퍼(290)를 포함할 수 있다.
엔트로피 복호화부(210)는 입력된 비트스트림(200)을 복호화하여 신택스 요소 (syntax elements) 및 양자화된 계수 등과 같은 복호화 정보를 출력한다.
역양자화부(220) 및 역변환부 (230)는 양자화 계수를 수신하여 역양자화 및 역변환을 차례대로 수행하고, 잔차 신호 (residual signal)를 출력한다.
화면 내 예측부(240)는 복호화되는 현재 블록과 인접하는 기-복호화된 주변 블록의 화소 값을 이용하여 공간적 예측을 수행하여 예측 신호를 생성한다.
화면 간 예측부(250)는 비트스트림으로부터 추출된 움직임 벡터와 복원 픽쳐 버퍼(280)에 저장되어 있는 복원 영상을 이용하여 움직임 보상을 수행하여 예측 신호를 생성한다.
가산부(260)는 화면 내 예측부(240) 혹은 화면 간 예측부(250)를 통해 생성된 예측 신호와 복원된 잔차 신호를 이용하여 복원 신호를 생성한다.
양방향 필터부(270)는 가산부(260)를 통해 생성된 복원 신호에 대하여 양방향 필터를 수행하여, 필터가 적용된 신호를 생성한다.
상기 복원 신호는 인루프 필터부(270)로 전달되어 디블록킹 필터, SAO (Sample Adaptive Offset), ALF (Adaptive Loop Filter)와 같은 하나 혹은 그 이상의 인-루프 필터를 적용하여 최종 복원 픽쳐를 생성하여 복원 픽쳐 버퍼(280)에 저장된다.
상기 복원 픽쳐 버퍼(280)에 저장된 복원 픽쳐는 화면 간 예측부(250)에서 참조 픽쳐로 사용될 수 있다.
도 3은 본 발명이 적용되는 일실시예로서, 트리 구조 기반의 분할 방법을 도시한 것이다.
트리 구조 기반의 분할은, 쿼드 트리(Quad-tree), 바이너리 트리(Binary-tree) 또는 터너리 트리(Ternary-tree) 중 적어도 하나에 기초하여 수행될 수 있다. 쿼드 트리는, 상위 부호화 블록을 4개의 하위 부호화 블록으로 분할하는 타입일 수 있다. 여기서, 하위 부호화 블록의 너비와 높이 각각은, 상위 부호화 블록의 너비와 높이의 절반일 수 있다. 바이너리 트리는, 상위 부호화 블록을 2개의 하위 부호화 블록을 분할하는 타입일 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 상위 부호화 블록은 수평 방향으로 2분할되거나, 수직 방향으로 2분할될 수 있다. 이때, 하위 부호화 블록의 너비 또는 높이는, 상위 부호화 블록의 너비 또는 높이의 절반일 수 있다. 터너리 트리는, 상위 부호화 블록을 3개의 하위 부호화 블록으로 분할하는 타입일 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 터너리 트리는, 바이너리 트리와 마찬가지로, 수평 방향 또는 수직 방향 중 어느 하나의 방향으로 3분할될 수 있다. 이때, 3개의 하위 부호화 블록의 너비 또는 높이의 비율은, 1:2:1, 1:1:2 또는 2:1:1 일 수 있다.
전술한 분할 타입은, 부호화/복호화 장치에 기-약속된 우선순위에 기초하여 적용될 수 있다. 예를 들어, 상기 바이너리 트리와 터너리 트리 중 적어도 하나는, 쿼드 트리에 기반한 블록 분할이 더 이상 수행되지 않는 경우에 한하여 허용될 수 있다. 다만, 이에 한정되지 아니하며, 바이너리 트리와 터너리 트리 중 적어도 하나에 기반한 블록 분할이 수행된 이후에, 쿼드 트리 기반의 블록 분할이 추가적으로 수행될 수도 있다.
상기 블록 분할은, 소정의 분할 정보에 기초하여 수행될 수 있다. 분할 정보는, 분할 여부를 지시하는 제1 정보, 분할 방향을 지시하는 제2 정보 또는 분할 타입 또는 분할 개수를 지시하는 제3 정보 중 적어도 하나를 포함할 수 있다. 상기 제1 정보는, 현재 부호화 블록이 전술한 트리 구조에 기반하여 분할되는지 여부를 나타내는 제1 플래그, 현재 부호화 블록이 쿼드 트리에 기반하여 분할되는지 여부를 나타내는 제2 플래그 또는 현재 부호화 블록이 쿼드 트리 외에 다른 트리 구조에 기반하여 추가적으로 분할되는지 여부를 나타내는 제3 플래그 중 적어도 하나를 포함할 수 있다. 전술한 분할 정보 중 적어도 하나는 부호화 장치에서 부호화되어 시그널링 될 수 있고, 또는 소정의 부호화 파라미터에 기반하여 복호화 장치에서 유도될 수도 있다. 여기서, 부호화 파라미터는, 블록 크기/형태, 분할 뎁스, 블록 위치(e.g., 블록이 소정의 조각 영역의 경계에 위치하는지 여부), 변환 타입(e.g., DCT, DST, 변환 스킵 등), 성분 타입(e.g, 휘도, 색차), 주변 블록의 분할 타입, 등을 포함할 수 있다.
예를 들어, 제1 플래그가 true인 경우, 쿼드 트리 분할 여부를 지시하는 제2 플래그가 시그널링되고, 제2 플래그가 false인 경우, 현재 부호화 블록은 더 이상 분할되지 않는다. 제2 플래그가 true인 경우, 현재 부호화 블록은 4개의 부호화 블록으로 분할되고, 제2 플래그가 false인 경우, 현재 부호화 블록은 바이너리 트리 또는 터너리 트리에 기반하여 분할될 수 있다. 이를 위해 분할 방향을 지시하는 제2 정보와 분할 타입을 지시하는 제3 정보가 시그널링 될 수 있다. 제2 정보가 제1 값인 경우, 수직 방향으로 분할되고, 그렇지 않은 경우, 수평 방향으로 분할될 수 있다. 제3 정보가 제1 값인 경우, 바이너리 트리가 적용되고, 그렇지 않은 경우, 터너리 트리가 적용될 수 있다. 또는, 제2 플래그가 false인 경우, 쿼드 트리 외에 다른 트리 구조에 기반하여 분할되는지 여부를 나타내는 제3 플래그가 시그널링 될 수도 있다. 이 경우 제3 플래그가 true인 경우, 분할 방향을 지시하는 제2 정보와 분할 타입을 지시하는 제3 정보에 기초하여, 바이너리 트리 또는 터너리 트리에 기반한 블록 분할을 수행할 수 있다.
한편, 현재 부호화 블록이 소정의 문턱크기보다 큰 경우에는 쿼드 트리만이 허용되고, 그렇지 않은 경우에는 쿼드 트리, 바이너리 트리 및 터너리 트리에 기반한 분할이 허용될 수 있다. 상기 문턱크기는, 부호화/복호화 장치에 기-설정된 고정된 값(e.g., 128, 64, 32)일 수도 있고, 부호화 장치에서 부호화되어 시그널링 될 수도 있다. 현재 부호화 블록이 소정의 문턱크기보다 큰 경우, 쿼드 트리 분할만이 허용되므로, 전술한 분할 정보가 시그널링되지 않을 수 있다.
이하, 블록, 부호화 블록, 현재 부호화 블록 및 현재 블록의 용어는 전술한 트리 구조 기반의 분할이 더 이상 수행되지 않는 리프 노드(leaf node)의 부호화 블록을 의미하는 것으로 이해될 수 있다. 부호화 블록은 코딩 블록과 동일한 의미로 해석될 수 있다. 부-블록은, 상기 리프 노드의 부호화 블록을 구성하는 서브-블록을 의미하는 것으로 이해될 수 있다. 화면간 예측 정보는, 현재 블록의 움직임 보상을 위한 후보 움직임 정보를 의미할 수도 있고, 해당 움직임 정보를 가진 후보 블록 정보를 의미할 수도 있다. 또는, 경우에 따라서, 화면간 예측 정보는, 후보 움직임 정보 중에서, 현재 블록의 움직임 보상에 이용되는 움직임 정보를 의미할 수도 있다. 움직임 정보는, 움직임 벡터, 참조 픽쳐 인덱스, 예측 방향(e.g., L0 예측, L1 예측), 참조 픽쳐 리스트 중 적어도 하나를 포함할 수 있다.
도 4는 본 발명이 적용되는 일실시예로서, 부호화/복호화 장치에 기-정의된 화면간 예측 모드에 기반하여 움직임 보상을 수행하는 방법을 도시한 것이다.
본 발명은, [D1] 화면간 예측 모드 선택 단계, [D2] 화면간 예측 정보 유도 단계 또는 [D3] 움직임 보상 단계 중 적어도 하나를 포함할 수 있다. 또한, 본 발명은 화면간 예측 정보를 보정하는 단계를 더 포함할 수 있다. 움직임 보상은 보정된 화면간 예측 정보를 기반으로 수행될 수 있다. 복호화 장치의 버퍼에 보정 전 화면간 예측 정보 또는 보정 후 화면간 예측 정보 중 어느 하나가 선택적으로 저장되고, 이는 현재 블록 이후에 부/복호화되는 블록에 의해 참조될 수 있다.
[D1] 화면간 예측 모드 선택 단계
화면간 예측 부/복호화에 있어 현재 부호화 블록을 화면간 예측 부호화 할 때, 전송해야 할 움직임 정보를 줄이기 위해서 주변 블록에 존재하는 움직임 정보를 이용하여 움직임 예측 정보를 유도한다. 화면간 예측 모드는 탐색된 화면간 움직임 예측 정보를 줄이기 위해 주변 블록으로부터 움직임 벡터 예측기(MV predictor)를 유도하는 AMVP 방법과 주변 블록의 화면간 예측 정보를 그대로 사용하는 Merge/Skip 방법으로 나눌 수 있다.
또한, 각 방법은 부호화(coding) 블록 단위 또는 부-블록(sub-block) 단위의 모드로 분류할 수 있다. 부-블록 단위 Merge/Skip 방법은 ATMVP, STMVP, 어파인(Affine) 모드 중 적어도 하나의 후보를 이용할 수 있고, 부-블록 단위 AMVP 모드는 ATMVP, STMVP, 어파인 모드 중 적어도 하나의 후보를 이용할 수 있다. 부-블록 단위 AMVP 모드에서는, ATMVP, STMVP 중 적어도 하나가 이용되지 않도록 제한될 수 있다.
ATMVP, 어파인 머지/어파인 AMVP 방법은 소정의 순서에 따라 공간적 주변 블록에서 움직임 정보의 가용 여부를 판단하고 필요한 움직임 정보를 유도할 수 있다. 상기 소정의 순서는, 부호화기/복호화기에 기-정의된 고정된 순서일 수도 있고, 부호화 파라미터에 기초하여 가변적으로 결정될 수도 있다.
상기 부호화 파라미터는, 블록 속성에 관한 정보를 포함할 수 있다. 여기서, 블록 속성은 위치, 크기, 형태, 너비와 높이의 비율(ratio), 너비와 높이의 길이값, 분할 기법(e.g., Quad tree, Binary tree, Ternary tree), 분할 뎁스, 화면간 예측 모드(e.g., merge mode인지 여부, 어파인 모드인지 여부), 어파인 모드 타입(4-parameter, 6-parameter) 등을 의미할 수 있다. 상기 블록 속성은, 현재 블록 및/또는 현재 블록의 주변 블록에 관한 속성을 의미할 수 있다. 상기 위치는, 블록(CU) 또는 부-블록이 소정의 조각 영역의 경계에 접하는지 여부를 의미할 수도 있고, 블록 내 부-블록의 위치를 의미할 수도 있다. 소정의 조각 영역은, 타일, 슬라이스, CTU row 또는 CTU를 의미할 수 있다. 상기 소정의 순서는, 블록 속성과 부호화기/복호화기에 기-결정된 제1 문턱값 간의 비교에 기초하여 결정될 수도 있다.
현재 블록에 대한 화면간 예측에서 STMVP(spatial-temporal motion vector prediction), ATMVP(alternative temporal motion vector prediction), 어파인 모델 중 적어도 하나 이상의 화면간 예측 정보를 유도함에 있어, 블록 단위 Merge 모드, 블록 단위 AMVP 모드, 블록 단위 Skip 모드, 부-블록 단위의 Merge 모드, 부-블록 단위의 AMVP 모드, 부-블록 단위의 Skip 모드 중 적어도 하나 이상의 예측 모드를 이용할 수 있다.
상기 STMVP 또는 ATMVP는 상기 공간적/시간적 주변 블록으로부터 하나 또는 그 이상의 움직임 정보를 받아 현재 블록의 부-블록 단위로 화면간 예측 정보를 유도할 수 있다.
공간적 주변 블록으로부터 소정의 순서에 의하여 처음 존재하는 움직임 정보에 해당하는 이전에 부/복호화가 진행된 픽쳐에서 현재 블록과 대응되는 블록의 부-블록 단위로 존재하는 움직임 정보를 현재 블록의 부-블록 단위 움직임 정보로 사용할 수 있다.
ATMVP의 경우, 콜 픽쳐에 속한 시간적 주변 블록으로부터, 현재 블록의 후보 움직임 정보를 유도할 수 있다. 상기 유도는, 현재 블록의 부-블록 단위로 수행될 수 있다. 상기 시간적 주변 블록은, 현재 블록의 center position에 기초하여 결정될 수 있다. 상기 결정은, 소정의 변이 벡터에 기초하여 시간적 주변 블록의 위치를 조정하는 과정을 더 포함할 수 있다. 변이 벡터는, 현재 블록의 공간적 주변 블록 중 선택된 어느 하나의 움직임 벡터로 설정될 수 있다. 이때, 선택은, 현재 블록의 콜 픽쳐와 공간적 주변 블록의 참조 픽쳐가 동일한지 여부를 고려하여 수행될 수 있다. 예를 들어, 공간적 주변 블록의 참조 픽쳐가 현재 블록의 콜 픽쳐와 동일한 경우, 해당 공간적 주변 블록의 움직임 벡터가 상기 변이 벡터로 설정될 수 있다. 상기 콜 픽쳐는, 참조 픽쳐 리스트에서 기-약속된 위치의 픽쳐로 설정될 수도 있고(e.g., refIdx=0), 부호화기에 시그널링되는 정보에 기초하여 결정될 수도 있다. 또는, 상기 콜 픽쳐는, 현재 블록이 속한 현재 픽쳐의 출력순서(POC)에 기초하여 결정될 수도 있다. 예를 들어, 콜 픽쳐는 현재 픽쳐의 출력순서에서 소정의 n값을 뺀 값의 출력순서를 가진 픽쳐로 결정될 수도 있다. n은 1, 2 또는 그 이상의 정수일 수 있다.
주변 블록을 통해 유도된 이전 픽쳐의 부-블록의 움직임 정보를 현재 블록에 대해 부-블록 단위로 후보 움직임 정보로 유도할 수 있다.
부-블록의 크기는, 부-블록의 크기를 나타내는 정보에 기초하여 적응적으로 결정되고, 상기 정보는 비디오 시퀀스, 픽쳐, 슬라이스, 타일, 블록 중 적어도 하나의 레벨에서 시그널링 될 수 있다. 또는, 전술한 현재 블록의 블록 속성에 따라, 현재 블록은 고정된 크기 및/또는 개수의 부-블록으로 구성될 수도 있으며, 이 경우 상기 정보의 시그널링이 생략될 수도 있다. 예를 들어, 부-블록의 크기는 4x4, 4x8, 8x4, 4x16, 16x4… 2NxN, Nx2N이 될 수 있다.
부-블록 단위의 움직임 정보를 유도함에 있어, 부-블록의 크기는 최소의 비용을 가지는 부-블록 크기로 결정할 수 있다. 이 때, 비용은 SATD, SAD, RD-cost, 이전 픽쳐의 평균 블록 사이즈 등의 방법 중 적어도 하나의 방법으로 구할 수 있다. 참조 블록의 부-블록 단위에 대해 움직임 정보가 존재하지 않는 경우, 도 5와 같이 소정의 위치에 있는 부-블록의 움직임 정보로 대체할 수 있다. 소정의 위치는, 참조 블록 내 우하단 또는 중앙 위치, 참조 블록의 우하단 코너 위치 등을 의미할 수 있다. 여기서, 우하단 코너 위치는, 참조 블록의 우하단 샘플을 기준으로, 우측, 하단, 또는 우하단에 인접한 블록의 위치를 의미할 수도 있다.
예를 들어, 현재 블록의 부-블록에 대응하는 움직임 정보가 이전 픽쳐에 존재하지 않는 경우, 도 5의 A 혹은 B의 움직임 정보로 대체하여 유도할 수 있다.
상기 STMVP는 현재 블록을 부-블록으로 나누고 각 부-블록의 공간적 주변 블록 또는 시간적 주변 블록 중 적어도 하나의 화면간 예측 정보를 이용해 유도할 수 있다. 현재 블록의 부-블록 단위에 대해 인접한 공간적 주변 블록의 움직임 정보와 시간적 주변 블록의 움직임 정보의 결합으로 유도할 수 있다. 상기 결합은, 중간값, 평균값, 최소/최대값 등의 연산에 기반하여 수행될 수 있다.
예를 들어, 현재 블록의 좌상단 서브 블록의 후보 움직임 정보는 도 10의 공간적 주변 블록 G, I와 시간적 주변 블록 P의 움직임 정보를 이용하여 유도할 수 있다.
현재 블록 내에 이전에 유도된 부-블록의 움직임 정보를 이용해 현재 부-블록 움직임 정보를 유도하는데 사용할 수 있다.
상기 어파인은 주변 블록 또는 주변 블록 내에 존재하는 부-블록의 움직임 벡터들을 이용해 현재 블록의 부-블록 단위로 화면간 예측 정보를 유도할 수 있다.
현재 블록의 좌상단, 우상단 위치의 움직임 벡터는 현재 주변 블록의 어파인 움직임 벡터를 이용하여 유도할 수 있다.
예를 들어, 도 6과 같이 주변 블록의 좌상단, 우상단 위치의 움직임 정보를 어파인 변환식을 이용해 현재 블록의 좌상단, 우상단 위치의 후보 움직임 정보를 생성할 수 있고, 해당 움직임 정보를 이용하여 부-블록 단위 움직임 정보를 유도할 수 있다.
도 6과 같이 주변 블록의 좌상단, 우상단, 좌하단 위치의 움직임 정보를 어파인 변환식을 이용해 현재 블록의 좌상단, 우상단, 좌하단 위치의 후보 움직임 정보를 생성할 수 있고, 해당 움직임 정보를 이용하여 부-블록 단위 움직임 정보를 유도할 수 있다.
예를 들어, 상기 아래와 같은 식으로 현재 블록의 좌상단, 우상단, 좌하단 움직임 벡터를 유도할 수 있다.
[수학식 1]
Figure pat00001
유도한 현재 블록의 좌상단, 우상단 혹은 좌하단 움직임 벡터를 현재 블록과 부-블록의 너비와 높이의 비율에 따라 변화량을 계산해 움직임 정보를 부-블록 단위로 유도할 수 있다. 현재 블록의 좌상단, 우상단 위치의 예측 움직임 벡터를 현재 주변 블록의 어파인 움직임 벡터를 이용하여 유도할 수 있다. 현재 블록의 주변 블록들의 움직임 정보의 결합을 통해 현재 블록의 부-블록 단위 움직임 정보를 유도할 수 있다.
예를 들어, 도 7의 A, D, F 위치의 블록의 움직임 정보를 이용해 현재 블록의 부-블록 단위 움직임 정보를 유도할 수 있다. 예를 들어, 도 7의 A, D 혹은 A, F 위치의 블록의 움직임 정보를 이용해 현재 블록의 부-블록 단위 움직임 정보를 유도할 수 있다.
[D1-1] 현재 블록의 화면간 예측 정보를 유도함에 있어 블록 단위 Merge 모드를 선택할 수 있다.
주변 블록의 움직임 정보를 현재 블록에 동일하게 적용하여 현재 블록의 예측 블록을 얻을 수 있다. 도 7에서, 제1 그룹(A, B, C), 제2 그룹(D, E) 또는 제3 그룹(F, G) 중 어느 하나를 선택하여 현재 블록의 움직임 정보를 유도할 수 있다. 또는, 제1 그룹 중 적어도 하나, 제2 그룹 중 적어도 하나 및 제3 그룹 중 적어도 하나를 선택하여 현재 블록의 움직임 정보를 유도할 수 있다.
상기 선택은, 소정의 우선순위에 기초하여 수행될 수 있다. 여기서 우선순위는, 좌측에서 우측, 하단에서 상단일 수 있으며, 그 역방향일 수도 있다. 상기 우선순위는 그룹의 위치에 관계없이 동일할 수도 있고, 그룹 별로 상이하게 설정될 수도 있다. 예를 들어, D는 E보다 우선순위를 가지고, F는 G보다 우선순위를 가질 수 있다. C는 A, B보다 우선순위를 가질 수도 있고, A는 B, C보다 우선순위를 가질 수도 있다. 또는, D는 F 또는 G보다 우선순위를 가질 수도 있다. F는 D 또는 E보다 우선순위를 가질 수 있다.
상기 유도는, 현재 블록의 부-블록 단위로 수행될 수 있다. 상기 유도 과정에서, 현재 블록 내 부-블록의 위치에 따라 특정 그룹의 이용이 제한될 수도 있다. 예를 들어, 제1/제2 그룹만이 이용되거나, 제1/제3 그룹만이 이용되거나, 제2/제3 그룹만이 이용될 수 있다. 또는, 부호화기/복호화기에 기-정의된 블록 쌍(pair)을 이용하여 현재 블록의 움직임 정보를 유도할 수 있다. 상기 블록 쌍 중 어느 하나는 제1 그룹 내지 제3 그룹 중 어느 하나에 속할 수 있고, 다른 하나는 다른 그룹에 속할 수 있다. 상기 블록 쌍은, 현재 부-블록 별로 상이하게 정의될 수 있다.
예를 들어, 도 7의 F, G위치에 존재하는 좌측 블록의 움직임 정보를 사용할 수 있다. 예를 들어, 도 7의 D, E위치에 존재하는 상단 블록의 움직임 정보를 사용할 수 있다.
주변 블록을 통해 현재 블록에 대한 예측을 수행하고, 그에 따른 잔여 블록들을 생성할 수 있다.
주변 블록들 중에 예측 정보와 잔여 블록의 부호화에 최소한의 비용이 소비되는 주변 블록의 화면간 예측 정보를 현재 블록의 부호화를 위해 사용할 수 있다.
[D1-2] 현재 블록의 화면간 예측 정보를 유도함에 있어 블록 단위 Skip모드를 선택할 수 있다.
주변 블록의 움직임 정보를 현재 블록의 화면간 예측 정보로 사용할 수 있다. Skip 모드도 전술한 Merge 모드와 동일/유사한 방식으로 움직임 정보가 유도되며, 자세한 설명은 생략하기로 한다.
예를 들어, 도 7의 F, G위치에 존재하는 좌측 블록의 움직임 정보를 사용할 수 있다. 예를 들어, 도 7의 D, E위치에 존재하는 상단 블록의 움직임 정보를 사용할 수 있다.
주변 블록을 통해 현재 블록에 대한 예측을 수행하고, 그에 따른 잔여 블록들을 생성하지 않는다.
[D1-3] 현재 블록의 화면간 예측 정보를 유도함에 있어 블록 단위 AMVP 모드를 선택할 수 있다.
주변 블록의 움직임 정보를 현재 블록에 화면간 예측 정보로 사용할 수 있다. AMVP 모드도 전술한 Merge 모드와 동일/유사한 방식으로 움직임 정보가 유도되며, 자세한 설명은 생략하기로 한다. 다만, Merge 모드는, 기-유도된 화면간 예측 정보를 동일하게 이용하는 반면, AMVP 모드는, 기-유도된 화면간 예측 정보(특히, 움직임 벡터)를 예측값으로 이용하고, 움직임 벡터 차분값, 참조 픽쳐 인덱스 등의 움직임 정보가 별도로 시그널링 될 수 있다.
예를 들어, 도 7의 F, G위치에 존재하는 좌측 블록의 움직임 정보를 사용할 수 있다. 예를 들어, 도 7의 D, E위치에 존재하는 상단 블록의 움직임 정보를 사용할 수 있다.
주변 블록을 통해 현재 블록에 대한 예측 움직임 정보를 얻고, 해당 움직임 정보를 기반으로 추가적인 수색을 통해 현재 블록에 대한 예측 블록을 얻을 수 있다.
주변 블록들 중에 예측 정보와 잔여 블록의 부호화에 최소한의 비용이 소비되는 주변 블록의 화면간 예측 정보를 현재 블록의 부호화를 위해 사용할 수 있다.
[D1-4] 현재 블록의 화면간 예측 정보를 유도함에 있어 부-블록 단위 Merge모드를 선택할 수 있다.
현재 블록의 화면간 예측 정보를 유도할 때 현재 블록을 M개의 블록으로 분할하고 각각의 분할된 블록마다 화면간 예측 정보를 유도할 수 있다. 즉, 현재 블록이 양의 정수 M개의 화면간 예측 정보를 가질 수 있다. 부-블록의 크기는 전술한 바와 같이 결정되며, 예를 들어 4x4, 4x8, 8x4, 4x16, 16x4… 2NxN, Nx2N이 될 수 있다.
현재 블록의 부-블록 단위 Merge 모드는 ATMVP, STMVP, 어파인 모드 중 적어도 하나에 기반한 화면간 예측 정보를 기반으로 수행될 수 있다.
어파인 머지 모드는 주변 블록으로부터 양의 정수 N개의 위치와 그 위치의 CPMV를 유도할 수 있다.
예를 들어, 도 7의 F, G 위치에 존재하는 좌측 블록의 좌상단, 우상단 혹은 좌하단 CPMV 중 적어도 하나를 이용해 현재 블록의 좌상단, 우상단 혹은 좌하단 CPMV(control point MV)를 유도할 수 있다. 이는, 현재 블록에 대한 복수의 후보 CPMV 중 어느 하나일 수 있다.
예를 들어, 도 7의 E, D, A 위치에 존재하는 상단 블록의 좌상단, 우상단 혹은 좌하단 CPMV 중 적어도 하나를 이용해 현재 블록의 좌상단, 우상단 혹은 좌하단 CPMV를 유도할 수 있다. 이는, 현재 블록에 대한 복수의 후보 CPMV 중 어느 하나일 수 있다. 또는, 전술한 제k 그룹(k=1, 2, 3) 중 적어도 하나의 좌상단, 우상단 혹은 좌하단 CPMV 중 적어도 하나를 이용해 현재 블록의 좌상단, 우상단 혹은 좌하단 CPMV를 유도할 수 있다. 이는, 현재 블록에 대한 복수의 후보 CPMV 중 어느 하나일 수 있다.
도 7에서, 제1 그룹(A, B, C), 제2 그룹(D, E) 또는 제3 그룹(F, G) 중 어느 하나를 선택하여 현재 블록의 CPMV를 유도할 수 있다. 또는, 제1 그룹 중 적어도 하나, 제2 그룹 중 적어도 하나 및 제3 그룹 중 적어도 하나를 선택하여 현재 블록의 CPMV를 유도할 수 있다.
상기 선택은, 소정의 우선순위에 기초하여 수행될 수 있다. 예를 들어, 제1 그룹이 제2 그룹 또는 제3 그룹보다 우선순위를 가질 수 있다. 제3 그룹이 제1 그룹 또는 제2 그룹보다 우선순위를 가질 수 있다. 각 그룹 내에서 블록 간의 우선순위는, 하단->상단 및 좌측->우측이거나, 우측->좌측 및 상단->하단일 수 있다. 또는, 좌측->우측 및 상단-> 하단이거나, 그 역방향일 수도 있다. 상기 우선순위는 그룹의 위치에 관계없이 동일할 수도 있고, 그룹 별로 상이하게 설정될 수도 있다.
상기 유도는, 현재 블록의 부-블록 단위로 수행될 수 있다. 상기 유도 과정에서, 현재 블록 내 부-블록의 위치에 따라 특정 그룹의 이용이 제한될 수도 있다. 예를 들어, 제1/제2 그룹만이 이용되거나, 제1/제3 그룹만이 이용되거나, 제2/제3 그룹만이 이용될 수 있다. 또는, 부호화기/복호화기에 기-정의된 블록 쌍(pair)을 이용하여 현재 블록의 CPMV를 유도할 수 있다. 상기 블록 쌍 중 어느 하나는 제1 그룹 내지 제3 그룹 중 어느 하나에 속할 수 있고, 다른 하나는 다른 그룹에 속할 수 있다. 상기 블록 쌍은, 현재 부-블록 별로 상이하게 정의될 수 있다.
현재 블록의 부-블록 단위 Merge 모드를 수행함에 있어, 후보 리스트에 속한 복수의 후보 움직임 정보 중 어느 하나를 특정하는 Merge 인덱스와 잔차 신호가 시그널링 될 수 있다.
주변 블록들 중에 예측 정보에 최소한의 비용이 소비되는 주변 블록의 부-블록 단위 화면간 예측 정보를 현재 블록의 부호화를 위해 사용할 수 있다.
[D1-5] 현재 블록의 화면간 예측 정보를 유도함에 있어 부-블록 단위 Skip 모드를 선택할 수 있다.
현재 블록의 화면간 예측 정보를 유도할 때 현재 블록을 N개의 블록으로 분리하고 각각의 분리된 블록 마다 화면간 예측 정보를 유도할 수 있다. 즉, 현재 블록이 양의 정수 N개의 화면간 예측 정보를 가질 수 있다. 예를 들어, 부-블록의 크기는 4x4, 4x8, 8x4, 4x16, 16x4… 2NxN, Nx2N이 될 수 있다.
현재 블록의 부-블록 단위 Skip 모드를 수행함에 있어, 후보 리스트에 속한 복수의 후보 움직임 정보 중 어느 하나를 특정하는 Merge 인덱스가 시그널링 될 수 있다.
주변 블록들 중에 예측 정보에 최소한의 비용이 소비되는 주변 블록의 부-블록 단위 화면간 예측 정보를 현재 블록의 부호화를 위해 사용할 수 있다.
주변 블록의 부-블록 단위 움직임 정보를 현재 블록의 부-블록 단위 움직임 정보로 사용하고, 그에 따른 잔여 블록을 생성하지 않을 수 있다.
[D1-6] 현재 블록의 화면간 예측 정보를 유도함에 있어 부-블록 단위 AMVP 모드를 선택할 수 있다.
현재 블록의 화면간 예측 정보를 유도할 때, 현재 블록을 N개의 블록으로 분할하고 각각의 분할된 블록 마다 화면간 예측 정보를 유도할 수 있다. 즉, 현재 블록이 양의 정수 N개의 화면간 예측 정보를 가질 수 있다. 예를 들어, 부-블록의 크기는 4x4, 4x8, 8x4, 4x16, 16x4… 2NxN, Nx2N이 될 수 있다.
현재 블록의 부-블록 단위 AMVP 모드를 수행함에 있어, 후보 리스트에 속한 후보 움직임 벡터 중 어느 하나를 특정하는 AMVP 인덱스, 움직임 벡터 차분값(MVD), 참조 픽쳐 인덱스, 참조 방향(L0, L1) 및 잔차 신호가 시그널링 될 수 있다.
주변 블록들 중에 예측 정보에 최소한의 비용이 소비되는 주변 블록의 부-블록 단위 화면간 예측 정보를 현재 블록의 부호화를 위해 사용할 수 있다.
[D2] 화면간 예측 정보 유도 단계
부호화 블록의 재귀적 분할 과정에서 코딩 블록은 4개의 동일 크기의 정사각형 블록으로 분할되거나 2개의 동일 크기의 블록 혹은 1:2:1의 비율을 가지는 3개의 블록으로 분할된다. 따라서 코딩 블록은 정사각형 뿐만 아니라 다양한 모양의 직사각형일 수 있다. 현재 코딩 블록의 모양과 분할 구조에 따라서 현재 블록과 보다 높은 상관성을 가지는 주변 블록을 선택할 수 있다.
예를 들어, 현재 블록이 이진 분할(binary-tree split) 된 블록 중 두번째 블록이라면 첫번째 블록과의 상관성이 적다고 판단할 수 있다. 또는, 현재 블록이 직사각형 블록이었을 때, 너비와 높이 중 더 긴 쪽에 인접한 블록의 상관성이 크다고 판단할 수 있다. 화면간 예측에서 공간적 인접 블록을 탐색할 때, 이러한 블록 분할 구조 또는 블록 모양 중 적어도 하나를 기준으로, 적응적으로 상관성이 높은 블록을 우선적으로 탐색한다면 현재 블록과 상관성이 높은 화면간 예측 정보를 유도할 가능성이 커지기 때문에 부호화 성능을 높일 수 있다.
부-블록 단위 화면간 예측 부/복호화에 있어, 현재 블록의 화면간 예측 정보를 유도할 때, 주변 블록들의 화면간 예측 정보를 이용하여 움직임 정보 전송 비트를 줄인다. 화면간 예측 모드는 주변 블록으로부터 움직임 벡터 예측기를 유도하는 AMVP 방법과 주변 블록의 화면간 예측 정보를 그대로 사용하는 Merge/Skip 방법으로 나눌 수 있고, 각 방법은 블록 단위 또는 부-블록 단위의 모드로 분류할 수 있다. 이 중 부-블록 단위의 모드의 경우, 어파인 화면간 예측, ATMVP 등의 방법으로 움직임 예측 후보 리스트를 구성한다. 각 화면간 예측 모드는 주변 블록의 화면간 예측 정보를 사용하기 위해서 특정 개수의 리스트를 구성할 수 있고 리스트를 채우기 위해 특정 순서대로 주변 블록을 탐색한다. 상기 개수는, 부호화기/복호화기에 기-정의된 고정된 개수일 수 있다. 예를 들어, 상기 개수는 5개, 6개, 7개, 또는 그 이상의 정수개일 수 있다. 또는, 부호화기는 리스트를 구성하는 후보의 개수를 부호화하여 시그널링할 수도 있다. 상기 개수는, 전술한 블록 속성에 기초하여 가변적으로 결정될 수도 있다.
현재 블록과 주변 블록 사이의 상관성은 현재 블록의 다양한 특성에 따라 다를 수 있는데 이러한 상관성의 고려 없이 특정 순서에 따라 리스트를 채우게 된다면 상관성이 높은 주변 블록의 화면간 예측 정보가 후보 리스트의 후순위에 위치하게 되어 보다 많은 비트가 할당되거나 후보 리스트에 들어가지 못하는 경우가 생겨 부호화 성능 저하를 유발할 수 있다.
블록 분할 과정에서 2개 혹은 3개의 블록으로 분할될 때 수평 또는 수직으로 분할되는데, 화면간 예측에서 블록이 분할됐다는 것은 분할된 블록 각각의 움직임 정보가 서로 다를 가능성이 높다는 것을 의미할 수 있다. 또한 이러한 블록 분할 정보 뿐만 아니라 블록의 깊이 정보, 블록의 사이즈와 같은 다양한 부호화 정보 또는 전술한 블록 속성에 관한 정보로부터 현재 블록의 주변 블록의 상관성을 파악할 수 있으며 상관성이 높은 주변 블록의 화면간 예측 정보를 선순위로 후보 리스트를 구성할 수 있다. 이 때, 선순위로 구성된 후보(후보 블록 또는 후보 움직임 정보)일 수록 더 낮은 비트를 할당하여 후보 리스트 인덱스를 시그널링 할 수 있다. 본 발명의 목적은 상기 후보 리스트를 구성할 때, 부호화 성능이 높을 가능성이 있는 후보를 선순위로 구성하거나 반대로 가능성이 낮은 후보를 후순위로 구성하거나 제외시켜 부호화 성능을 향상하는 것이다.
부-블록 단위 화면간 예측에서 후보 리스트는 복수의 후보를 포함하며, 여기서 후보는 현재 블록의 주변 블록 또는 주변 블록의 움직임 정보를 의미할 수 있다. 여기서, 주변 블록은, 현재 블록에 공간적으로 인접한 블록(spatial neighboring block) 또는 현재 블록에 시간적으로 인접한 블록(temporal neighboring block) 중 적어도 하나를 포함할 수 있다. spatial neighboring block은, 현재 블록의 좌측, 상단, 또는 각 코너에 인접한 블록 중 적어도 하나를 포함할 수 있다. 좌측에 복수의 주변 블록이 존재하는 경우, 최하단, center 또는 최상단 중 적어도 하나에 위치한 블록이 이용될 수 있다. 상단에 복수의 주변 블록이 존재하는 경우, 최좌측, center 또는 최우측 중 적어도 하나에 위치한 블록이 이용될 수 있다. temporal neighboring block은 콜 픽쳐(collocated picture)에 속하고, 현재 블록의 center position 또는 우하단 코너의 위치에 기초하여 결정될 수 있다. 또는, temporal neighboring block은 현재 블록의 center position 및 우하단 코너의 위치 각각에 대해서 결정되어 후보 리스트에 추가될 수 있다. 후보 리스트에 포함되는 temporal neighboring block 기반의 후보의 개수는 1개, 2개 또는 그 이상일 수 있다.
후보 리스트에서 선순위를 가진 후보일 수록 더 낮은 비트를 할당하여 전송하게 된다. 현재 블록과 상관성이 높은 주변 블록의 움직임 정보를 보다 선순위로 구성하여 더 적은 비트를 할당하고, 더 상관성이 높은 주변 블록의 움직임 정보를 현재 블록의 움직임 예측 정보로 이용하여 부호화 효율을 높일 수 있다. 즉, 부호화 성능이 높을 가능성이 큰 움직임 정보 후보를 좀 더 적은 비트를 할당함으로 해당 움직임 정보가 선택될 가능성을 높여서 부호화 성능을 높일 수 있다.
화면간 예측 정보 리스트는 공간적 주변 블록의 화면간 예측 정보, 시간적 주변 블록의 화면간 예측 정보, 합성 화면간 예측 정보, 조합 어파인 화면간 예측 정보, 상속 어파인 화면간 예측 정보 중 적어도 하나 이상을 포함할 수 있다. 상기 화면간 예측 정보는, 움직임 벡터, 참조 방향, 참조 픽쳐 인덱스, 어파인 플래그, CPMV 중 적어도 하나 이상을 포함할 수 있다. 상기 화면간 예측 정보 리스트는, 블록 속성(e.g., 크기, 형태, 블록 분할 정보, 블록 깊이 정보 등)에 기초하여 생성될 수 있다.
[D2-1] 현재 블록의 화면간 예측 정보를 유도함에 있어 양의 정수 N개의 화면간 예측 정보 후보를 가지는 블록 단위 Merge 후보 리스트를 구성하여 블록 단위 Merge모드로 이용할 수 있다.
블록 단위 MERGE 후보 리스트는 N개의 머지 후보로 구성될 수 있다. N개의 머지 후보는, 공간적 주변 블록의 화면간 예측 정보, 시간적 주변 블록의 화면간 예측 정보, 합성 화면간 예측 정보, STMVP, ATMVP, 제로 움직임 정보 중 적어도 하나 이상을 포함할 수 있다. 상기 N은 5, 6, 7, 8 또는 그 이상의 정수일 수 있다. N은 시그널링되는 정보에 기초하여 결정될 수 있다. 상기 정보는, 부호화기에서 리스트에 속한 후보의 최대 개수를 결정하고 이를 부호화 한 것일 수 있다. 상기 N은 전술한 블록 속성에 따라 가변적으로 결정될 수도 있고, 부호화기/복호화기에 기-약속된 고정된 값일 수도 있다.
공간적 주변 블록의 화면간 예측 정보는 도 8에서 A, B, ……, J, K 위치에 존재하는 블록의 화면간 예측 정보를 의미한다. 이때, 주변 블록의 크기는 MxN의 크기를 가질 수 있고, M 또는 N 은 각각 2, 4, 8, 16, 32, 64, 128 중 적어도 하나일 수 있다.
예를 들어, 주변 블록의 움직임 정보를 유도할 때, 도 8의 B, J, K, A, F 위치 블록 순으로 유도할 수 있다. 예를 들어, 주변 블록의 움직임 정보를 유도할 때, 도 8의 J, B, A, K, F 위치 블록 순으로 유도하거나, J, B, K, A, F 위치 블록 순으로 유도할 수 있다.
시간적 주변 블록의 화면간 예측 정보는 현재 픽쳐보다 이전에 부/복호화가 진행된 픽쳐에 현재 블록과 동일한 위치의 블록에 존재하는 화면간 예측 정보를 의미한다. 동일한 위치의 블록은, 현재 블록의 center position을 포함하는 블록, 현재 블록의 좌상단 샘플의 위치를 포함하는 블록, 현재 블록의 우하단 샘플의 위치를 포함하는 블록, 현재 블록의 각 코너 위치를 기준으로 좌측, 우측, 상단, 하단 또는 대각선 방향 중 적어도 하나에 인접한 블록을 의미할 수 있다.
ATMVP는 소정의 순서에 의하여 상기 공간적/시간적 주변 블록으로부터 처음 존재하는 움직임 정보에 해당하는 이전에 부/복호화가 진행된 픽쳐에서 현재 블록과 대응되는 블록을 통해 현재 블록의 움직임 정보를 부-블록 단위로 구성하는 부-블록 단위 화면간 예측 방법을 의미한다.
예를 들어, 주변 블록의 움직임 정보를 유도할 때, 도 8의 B, J, K, A, F 위치 블록 순으로 수색하며, 처음 움직임 정보가 존재하는 주변 블록의 움직임 정보를 이용할 수 있다. ATMVP는 [D1] 단계에서 자세히 살펴본 바, 여기서 자세한 설명은 생략하기로 한다.
STMVP는 현재 블록을 부-블록 단위로 공간적 주변 블록 및/또는 시간적 주변 블록의 화면간 예측 정보를 결합하여 생성한 부-블록 단위 화면간 예측 정보를 의미한다.
합성 화면간 예측 정보는 상기 후보 리스트를 구성함에 있어 존재하는 Merge 후보 리스트 내의 주변 블록의 움직임 정보를 결합으로 구할 수 있다. 합성 화면간 예측 정보의 움직임 벡터는 양의 정수 N개의 주변 움직임 벡터의 조합으로 구할 수 있다. 합성 화면간 예측 정보의 움직임 벡터는 양의 정수 N개의 주변 움직임 벡터들의 평균으로 구할 수 있다.
합성 화면간 예측 정보는, 기-생성된 후보 리스트에 속한 n개의 머지 후보를 조합하여 유도될 수 있다. 여기서, n은 2, 3, 4 또는 그 이상의 정수일 수 있다. 조합 대상인 머지 후보의 개수(n)는 부호화/복호화 장치에 기-약속된 고정된 값일 수도 있고, 부호화 장치에서 부호화되어 시그널링 될 수도 있다. 상기 시그널링은, 시퀀스, 픽쳐, 서브-픽쳐, 슬라이스, 타일 또는 소정의 블록 중 적어도 하나의 단위에서 수행될 수 있다. 조합 대상인 머지 후보의 개수(n)는, 잔여 머지 후보의 개수에 기반하여 가변적으로 결정될 수도 있다. 여기서, 잔여 머지 후보의 개수는, 머지 후보 리스트에 포함 가능한 머지 후보의 최대 개수와 머지 후보 리스트에 속한 머지머지 후보의 현재 개수 간의 차이를 의미할 수 있다. 상기 최대 개수는 부호화/복호화 장치에 기-약속된 개수이거나, 부호화 장치에서 부호화 되어 시그널링 될 수 있다. 상기 현재 개수는, 합성 화면간 예측 정보를 추가하기 전까지 구성된 머지 후보의 개수를 의미할 수 있다. 예를 들어, 잔여 머지 후보의 개수가 1인 경우, 2개의 머지 후보가 이용되고, 잔여 머지 후보의 개수가 1보다 큰 경우, 3개 또는 그 이상의 머지 후보가 이용될 수 있다.
상기 n개의 머지 후보의 위치는, 머지 후보 리스트에서 기-결정된 위치일 수 있다. 예를 들어, 머지 후보 리스트에 속한 머지 후보 별로 인덱스(0 내지 (k-1))가 할당될 수 있다. 여기서, k는 머지 후보 리스트에 속한 머지 후보의 총 개수를 의미할 수 있다. 이때, n개의 머지 후보의 위치는, 머지 후보 리스트에서 인덱스 0 내지 인덱스 (n-1)에 대응될 수 있다. 예를 들어, n=2인 경우, 조합 대상인 머지 후보는 머지 후보 리스트에서 첫번째 머지 후보(인덱스=0)와 두번째 머지 후보(인덱스=1)만을 이용하여 유도될 수 있다.
또는, 상기 n개의 머지 후보는, 머지 후보 리스트에 속한 각 머지 후보의 예측 방향을 고려하여 결정될 수 있다. 예를 들어, 머지 후보 리스트에 속한 머지 후보 중에서, 양방향 예측인 머지 후보만을 선택적으로 이용하거나, 단방향 예측인 머지 후보만을 선택적으로 이용할 수 있다. 또는, 단방향 예측인 머지 후보를 양방향 예측인 머지 후보로 변경할 수 있다. 이를 위해, L0 방향의 움직임 정보를 L1 방향의 움직임 정보로 복사하거나, 복수의 머지 후보 중 어느 하나의 움직임 정보를 다른 하나의 움직임 정보로 복사할 수 있다. 또는, 양방향 예측인 머지 후보에서, 특정 방향의 움직임 정보만을 선택적으로 이용할 수도 있다. 머지 후보 리스트에서, 짝수 번째 인덱스(인덱스 0 포함)를 가진 머지 후보는 L0 방향의 움직임 정보가 선택되고, 홀수 번째 인덱스를 가진 머지 후보는 L1 방향의 움직임 정보가 선택될 수 있다. 역으로, 상기 특정 방향이 선택될 수 있음은 물론이다.
합성 화면간 예측 정보는, 공간적 머지 후보와 시간적 머지 후보를 모두 이용하여 유도될 수도 있고, 공간적 머지 후보 또는 시간적 머지 후보 중 어느 하나만을 이용하여 유도될 수도 있다.
상기 합성 화면간 예측 정보는, 머지 후보 리스트에서 공간적/시간적 머지 후보 이후에 추가될 수 있다. 즉, 합성 화면간 예측 정보의 인덱스는 공간적/시간적 머지 후보의 인덱스보다 클 수 있다. 또는, 상기 합성 화면간 예측 정보는, 머지 후보 리스트에서 공간적 머지 후보와 시간적 머지 후보 사이에 추가될 수도 있다. 즉, 합성 화면간 예측 정보의 인덱스는 공간적 머지 후보의 인덱스보다 크고, 시간적 머지 후보의 인덱스보다 작을 수 있다. 또는, 합성 화면간 예측 정보의 위치는, 합성 화면간 예측 정보의 예측 방향을 고려하여 가변적으로 결정될 수도 있다. 합성 화면간 예측 정보의 예측 방향이 양방향 예측인지 여부에 따라, 머지 후보 리스트 내에서 합성 화면간 예측 정보의 위치가 재배열될 수 있다. 예를 들어, 합성 화면간 예측 정보가 양방향 예측인 경우, 공간적 또는 시간적 머지 후보보다 작은 인덱스가 할당될 수 있고, 그렇지 않은 경우, 공간적 또는 시간적 머지 후보보다 큰 인덱스가 할당될 수 있다.
이하, 설명의 편의를 위해 2개의 머지 후보를 기반으로 합성 화면간 예측 정보를 유도하는 방법을 살펴보기로 한다.
합성 화면간 예측 정보의 움직임 정보는, 제1 머지 후보와 제2 머지 후보의 움직임 정보를 가중 평균하여 유도될 수 있다. 예를 들어, 합성 화면간 예측 정보의 Lx 방향의 움직임 정보(x=0 또는 1)는, 제1 머지 후보의 L0 방향의 움직임 정보와 제2 머지 후보의 L1 방향의 움직임 정보를 가중 평균하여 유도될 수 있다. 또는, 합성 화면간 예측 정보의 Lx 방향의 움직임 정보(x=0 또는 1)는, 제1 머지 후보의 LX 방향의 움직임 정보와 제2 머지 후보의 Lx 방향의 움직임 정보를 가중 평균하여 유도될 수도 있다.
다만, 합성 화면간 예측 정보의 Lx 방향의 참조 픽쳐 인덱스는 제1 머지 후보 또는 제2 머지 후보 중 어느 하나의 Lx 방향의 참조 픽쳐 인덱스로 유도될 수 있다. 예를 들어, 합성 화면간 예측 정보의 Lx 방향의 참조 픽쳐 인덱스는 제1 머지 후보의 Lx 방향의 참조 픽쳐 인덱스만을 이용하여 유도될 수 있다. 여기서, 제1 머지 후보는 제2 머지 후보보다 작은 인덱스를 가진 것일 수 있다.
상기 가중 평균의 가중치는 [1:1], [1:2], [1:3] 또는 [2:3]이나, 이에 한정되지 아니한다. 상기 가중치는, 부호화/복호화 장치에 기-정의된 것일 수도 있고, 복호화 장치에서 유도될 수도 있다. 이때, 가중치는, 현재 픽쳐와 머지 후보의 참조 픽쳐 간의 거리 또는 머지 후보의 예측 방향 중 적어도 하나를 고려하여 유도될 수 있다.
1. 제1 머지 후보와 제2 머지 후보 둘다 단방향 예측인 경우
(CASE 1) 제1 머지 후보가 L0 예측이고, 제2 머지 후보가 L1 예측인 경우, 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스는, 제1 머지 후보의 참조 픽쳐 인덱스로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스는, 제2 머지 후보의 참조 픽쳐 인덱스로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 움직임 벡터는 제2 머지 후보의 움직임 벡터로 유도될 수 있다.
(CASE 2) 제1 머지 후보가 L1 예측이고, 제2 머지 후보가 L0 예측인 경우, 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스는, 제2 머지 후보의 참조 픽쳐 인덱스로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 움직임 벡터는 제2 머지 후보의 움직임 벡터로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스는, 제1 머지 후보의 참조 픽쳐 인덱스로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터로 유도될 수 있다.
(CASE 3) 제1 머지 후보 및 제2 머지 후보가 L0 예측인 경우, 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스는, 제1 머지 후보 또는 제2 머지 후보 중 어느 하나의 참조 픽쳐 인덱스로 유도될 수 있다. 예를 들어, 제1 머지 후보 및 제2 머지 후보 중 인덱스가 가장 작은 머지 후보의 참조 픽쳐 인덱스가 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스로 설정될 수 있다. 합성 화면간 예측 정보의 L0 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 가중 평균으로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스는 -1로 유도되고, L1 방향의 예측 방향 플래그는 0으로 유도되며, L1 방향의 움직임 정보는 0으로 유도될 수 있다.
(CASE 4) 제1 머지 후보 및 제2 머지 후보가 L1 예측인 경우, 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스는 -1로 유도되고, L0 방향의 예측 방향 플래그는 0으로 유도되며, L0 방향의 움직임 정보는 0으로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스는, 제1 머지 후보 또는 제2 머지 후보 중 어느 하나의 참조 픽쳐 인덱스로 유도될 수 있다. 예를 들어, 제1 머지 후보 및 제2 머지 후보 중 인덱스가 가장 작은 머지 후보의 참조 픽쳐 인덱스가 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스로 설정될 수 있다. 합성 화면간 예측 정보의 L1 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 가중 평균으로 유도될 수 있다.
2. 제1 머지 후보와 제2 머지 후보 둘다 양방향 예측인 경우
(CASE 5) 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스는, 제1 머지 후보 또는 제2 머지 후보 중 어느 하나의 참조 픽쳐 인덱스로 유도될 수 있다. 예를 들어, 제1 머지 후보 및 제2 머지 후보 중 인덱스가 가장 작은 머지 후보의 참조 픽쳐 인덱스가 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스로 설정될 수 있다. 합성 화면간 예측 정보의 L0 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 가중 평균으로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스는, 제1 머지 후보 또는 제2 머지 후보 중 어느 하나의 참조 픽쳐 인덱스로 유도될 수 있다. 예를 들어, 제1 머지 후보 및 제2 머지 후보 중 인덱스가 가장 작은 머지 후보의 참조 픽쳐 인덱스가 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스로 설정될 수 있다. 합성 화면간 예측 정보의 L1 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 가중 평균으로 유도될 수 있다.
3. 제1 머지 후보는 양방향 예측이고, 제2 머지 후보는 단방향 예측인 경우
(CASE 6) 제2 머지 후보가 L0 예측인 경우, 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스는, 제1 머지 후보 또는 제2 머지 후보 중 어느 하나의 참조 픽쳐 인덱스로 유도될 수 있다. 예를 들어, 제1 머지 후보 및 제2 머지 후보 중 인덱스가 가장 작은 머지 후보의 참조 픽쳐 인덱스가 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스로 설정될 수 있다. 합성 화면간 예측 정보의 L0 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 가중 평균으로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스는, 제1 머지 후보의 참조 픽쳐 인덱스로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터로 유도될 수 있다.
(CASE 7) 제2 머지 후보가 L1 예측인 경우, 합성 화면간 예측 정보의 L0 방향의 참조 픽쳐 인덱스는, 제1 머지 후보의 참조 픽쳐 인덱스로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L0 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스는, 제1 머지 후보 또는 제2 머지 후보 중 어느 하나의 참조 픽쳐 인덱스로 유도될 수 있다. 예를 들어, 제1 머지 후보 및 제2 머지 후보 중 인덱스가 가장 작은 머지 후보의 참조 픽쳐 인덱스가 합성 화면간 예측 정보의 L1 방향의 참조 픽쳐 인덱스로 설정될 수 있다. 합성 화면간 예측 정보의 L1 방향의 예측 방향 플래그는 1로 유도될 수 있다. 합성 화면간 예측 정보의 L1 방향의 움직임 벡터는 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 가중 평균으로 유도될 수 있다.
제로 움직임 정보는 전술한 과정을 통해 유도된 머지 후보가 Merge 모드의 후보 리스트를 채우지 못했을 경우, 제로 움직임 정보들로 후보 리스트를 채울 수 있다.
[D2-2] 현재 블록의 화면간 예측 정보를 유도함에 있어 양의 정수 N개의 화면간 예측 정보 후보를 가지는 블록 단위 Skip 후보 리스트를 구성하여 블록 단위 Skip 모드로 이용할 수 있다. 후보 리스트 구성하는 상세 내용은 블록 단위 Merge 모드의 내용과 같으며, 자세한 설명은 생략하기로 한다.
[D2-3] 현재 블록의 화면간 예측 정보를 유도함에 있어 양의 정수 N개의 화면간 예측 정보 후보를 가지는 블록 단위 AMVP 후보 리스트를 구성하여 블록 단위 AMVP 모드를 사용할 수 있다.
움직임 벡터 또는 참조 픽쳐 리스트, 참조 방향, 움직임 차분값 중 적어도 하나를 가지는 AMVP 후보 리스트를 구성한다. AMVP 후보 리스트는 공간적 주변 블록의 화면간 예측 정보, 시간적 주변 블록의 화면간 예측 정보, 제로 움직임 정보 중 적어도 하나 이상으로 구성된다.
예를 들어, AMVP 후보 리스트는 2개의 움직임 벡터 후보로 구성할 수 있다. 상기 현재 블록의 좌측 주변 블록에서 하나의 후보를 유도하고 상측 주변 블록에서 하나를 유도를 할 수 있다. 상기 AMVP 후보 리스트가 다 채워지지 않을 경우 시간적 주변 블록에서 유도할 수 있다.
공간적 주변 블록의 화면간 예측 정보는 도 8에서 A, B, ……, J, K 위치에 존재하는 블록의 화면간 예측 정보를 의미한다. 소정의 순서에 의하여 상기 공간적 주변 블록으로부터 하나 이상의 후보를 유도할 수 있다.
좌측 주변 블록은 A, B, C, D, E 중 하나 이상 위치의 블록일 수 있으며, 소정의 순서에 의하여 상기 화면간 예측 정보를 유도할 수 있다. 예를 들어, 좌측 주변 블록의 움직임 정보를 유도할 때, 도 8의 A, B 위치 블록 순으로 유도할 수 있다.
상단 주변 블록은 F, G, H, I, J, K 중 하나 이상의 위치의 블록일 수 있으며, 소정의 순서에 의하여 상기 화면간 예측 정보를 유도할 수 있다. 예를 들어, 상단 주변 블록의 움직임 정보를 유도할 때, 도 8의 K, J, F 위치 블록 순으로 유도할 수 있다.
상기 소정의 순서에 의하여 유도함에 있어, 현재 순서에 해당하는 주변 블록의 움직임 정보가 비가용한 경우, 다음 순서에 해당하는 블록의 움직임 정보를 이용할 수 있다. 이때, 상기 비가용하다는 것은 해당 주변 블록의 움직임 정보가 존재하지 않거나, 현재 블록이 슬라이스, 타일, 픽쳐, CTU row, CTU 중 적어도 하나의 경계에 위치하거나, 이미 후보에 구성된 움직임 정보와 같은 경우 중 적어도 하나를 의미할 수 있다.
시간적 주변 블록의 화면간 예측 정보는 도 9에서 현재 픽쳐보다 이전에 부/복호화가 진행된 픽쳐에 현재 블록과 동일한 위치의 블록에 존재하는 화면간 예측 정보를 의미한다. 동일한 위치의 블록은, 현재 블록의 center position을 포함하는 블록, 현재 블록의 좌상단 샘플의 위치를 포함하는 블록, 현재 블록의 우하단 샘플의 위치를 포함하는 블록, 현재 블록의 각 코너 위치를 기준으로 좌측, 우측, 상단, 하단 또는 대각선 방향 중 적어도 하나에 인접한 블록을 의미할 수 있다.
예를 들어, 상기 시간적 주변 블록의 위치는 이전 픽쳐에 존재하는 블록의 a 혹은 b 위치에 대응될 수 있다 예를 들어, 상기 시간적 주변 블록의 위치는 이전 픽쳐에 존재하는 블록의 c, d, e 위치 중 하나 혹은 다른 이전 픽쳐에 존재하는 블록의 f, g, h 위치 중 하나로 대응될 수 있다.
제로 움직임 정보는 전술한 과정을 통해 유도된 주변 블록의 화면간 예측 정보가 AMVP모드의 후보 리스트를 채우지 못했을 경우, 제로 움직임 정보로 후보 리스트를 채울 수 있다.
[D2-4] 현재 블록의 화면간 예측 정보를 유도함에 있어 양의 정수 N개의 화면간 예측 정보 후보를 가지는 부-블록 단위 Merge 후보 리스트를 구성하여 부-블록 단위 Merge 모드를 사용할 수 있다.
부-블록 단위 Merge 후보 리스트는 ATMVP, 상속 어파인 화면간 예측 정보, 조합 어파인 화면간 예측 정보, 제로 어파인 움직임 예측 정보 중 적어도 하나 이상으로 구성될 수 있다.
ATMVP는 상기 [D1]과 같이 소정의 순서에 의하여 상기 공간적 주변 블록으로부터 처음 존재하는 움직임 정보에 해당하는 이전에 부/복호화가 진행된 픽처에서 현재 블록과 대응되는 블록을 통해 현재 블록의 움직임 정보를 부-블록 단위로 구성하는 화면간 예측 방법을 의미한다.
예를 들어, 주변 블록의 움직임 정보를 유도할 때, 도 10의 B, N, O, A, H 위치 블록 순으로 유도할 수 있다. 예를 들어, 주변 블록의 움직임 정보를 유도할 때, 도 10의 A, B, O, N, H 위치 블록 순으로 유도할 수 있다.
상속 어파인 화면간 예측 정보는 도 10에서 A, B, ……, H, O 위치에 존재하는 블록의 화면간 예측 정보를 의미한다. 소정의 순서에 의하여 상기 공간적 주변 블록으로부터 하나 이상의 후보를 유도할 수 있다.
좌측 주변 블록은 A, B, C, …, F, G 중 하나 이상 위치의 블록일 수 있으며, 소정의 순서에 의하여 상기 화면간 예측 정보를 유도할 수 있다. 예를 들어, 좌측 주변 블록의 움직임 정보를 유도할 때, 도 10의 A, B 위치 블록 순으로 유도할 수 있다.
상단 주변 블록은 H, I, J, …, N, O 중 하나 이상의 위치의 블록일 수 있으며, 소정의 순서에 의하여 상기 화면간 예측 정보를 유도할 수 있다. 예를 들어, 상단 주변 블록의 움직임 정보를 유도할 때, 도 10의 O, N, H 위치 블록 순으로 유도할 수 있다.
조합 어파인 화면간 예측 정보는 도 10에서의 좌상단, 우상단, 좌하단, 우하단 위치에 인접한 주변 블록들의 조합을 이용해, 소정의 순서에 의하여 하나 이상의 후보를 유도할 수 있다.
예를 들어, {CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3} 순으로 후보를 유도할 수 있다. 예를 들어, 좌상단 위치의 움직임 벡터 CP1을 유도할 때, 도 10의 H, I, G 위치 블록 순으로 유도할 수 있다. 예를 들어, 우상단 위치의 움직임 벡터 CP2을 유도할 때, 도 10의 N, O 위치 블록 순으로 유도할 수 있다. 예를 들어, 좌하단 위치의 움직임 벡터 CP3을 유도할 때, 도 10의 B, A위치 블록 순으로 유도할 수 있다. 예를 들어, 좌상단 위치의 움직임 벡터 CP4을 유도할 때, 도 10의 P 위치 블록으로부터 유도할 수 있다.
제로 어파인 움직임 정보는 상속 어파인, 조합 어파인 화면간 예측 정보를 유도한 후, 부-블록 단위 Merge모드의 후보 리스트를 채우지 못했을 경우, 제로 움직임 정보로 후보 리스트를 채울 수 있다.
[D2-5] 현재 블록의 화면간 예측 정보를 유도함에 있어 양의 정수 N개의 화면간 예측 정보 후보를 가지는 부-블록 단위 Skip 후보 리스트를 구성하여 부-블록 단위 Skip모드로 이용할 수 있다. 후보 리스트 구성하는 상세 내용은 부-블록 단위 Merge모드의 내용과 같으며, 자세한 설명은 생략하기로 한다.
ATMVP를 이용한 후보 리스트 구성을 블록의 모양에 따라서 다르게 할 수 있다.
예를 들어, 현재 블록의 높이가 너비보다 크다면 B, N, O, A, H 혹은 A, B, O, N, H 순으로 후보 리스트를 구성할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 작다면 N, B, A, O, H 혹은 O, N, H, A, B 순으로 후보 리스트를 구성할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 클 경우 B, A, N, O, H 순으로 후보 리스트를 구성하고, 현재 블록의 높이가 너비보다 작을 경우 N, O, B, A, H 순으로 후보 리스트를 구성하고, 크기가 같은 경우 B, N, O, A, H 순으로 구성할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 클 경우 B, A, O, N, H 순으로 후보 리스트를 구성하고 현재 블록의 높이가 너비보다 작을 경우 N, O, H, A, B 순으로 후보 리스트를 구성하고 크기가 같은 경우 A, B, O, N, H 순으로 구성할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 클 경우 상측 위치의 화면간 예측 정보 (H, I, J, …, N, O )만 이용하여 후보 리스트를 구성하고, 높이가 너비보다 작을 경우 좌측 위치의 화면간 예측 정보 (A, B, C, …, F, G)만 이용하여 후보 리스트를 구성하고, 높이와 너비가 같은 경우 좌, 상측 화면간 예측 정보 모두를 이용하여 후보리스트를 구성할 수 있다. 블록의 모양에 관계없이, 전술한 후보 리스트의 배열 순서의 예시 중 어느 하나가 선택적으로 이용될 수도 있다.
ATMVP를 이용한 후보 리스트 구성을 블록의 분할 상태에 따라서 다르게 할 수 있다.
예를 들어, 현재 블록이 수직 분할의 결과라면 B, N, O, A, H 혹은 A, B, O, N, H 순으로 후보 리스트를 구성할 수 있다. 예를 들어, 현재 블록이 수평 분할의 결과라면 N, B, A, O, H 혹은 O, N, H, A, B 순으로 후보 리스트를 구성할 수 있다. 예를 들어, 현재 블록이 수직 분할의 결과인 경우 B, A, N, O, H 순으로 후보 리스트를 구성하고, 수평 분할의 결과인 경우 N, O, B, A, H 순으로 후보 리스트를 구성하고 쿼드 분할의 결과인 경우 B, N, O, A, H 순으로 구성할 수 있다. 예를 들어, 현재 블록이 수직 분할의 결과인 경우 B, A, O, N, H 순으로 후보 리스트를 구성하고, 수평 분할의 결과인 경우 N, O, H, A, B 순으로 후보 리스트를 구성하고 쿼드 분할의 결과인 경우 A, B, O, N, H 순으로 구성할 수 있다. 예를 들어, 현재 블록이 수직 분할의 결과인 경우 상측 위치의 화면간 예측 정보(H, I, J, …, N, O )만 이용하여 후보 리스트를 구성하고 수평 분할의 결과인 경우 좌측 위치의 화면간 예측 정보(A, B, C, …, F, G)만 이용하여 후보 리스트를 구성하고 쿼드 분할의 결과인 경우 좌, 상측 화면간 예측 정보 모두를 이용하여 후보리스트를 구성할 수 있다. 블록의 분할에 관계없이, 전술한 후보 리스트의 배열 순서의 예시 중 어느 하나가 선택적으로 이용될 수도 있다.
ATMVP를 이용한 후보 리스트 구성을 상기 두 구분 방법을 같이 이용하여 다르게 할 수 있다.
예를 들어, 현재 블록의 높이가 너비보다 클 때 또는 같지만 수직 분할의 결과일 때 B, N, O, A, H 혹은 A, B, O, N, H 순으로 후보 리스트를 구성할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 작을 때 또는 같지만 수평 분할의 결과일 때 N, B, A, O, H 혹은 O, N, H, A, B 순으로 후보 리스트를 구성할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 클 때 또는 같지만 수직 분할의 결과인 경우 B, A, N, O, H 순으로 후보 리스트를 구성하고, 현재 블록의 높이가 너비보다 작을 때 또는 수평 분할의 결과인 경우 N, O, B, A, H 순으로 후보 리스트를 구성하고, 현재 블록의 높이와 너비이 같으면서 쿼드 분할의 결과인 경우 B, N, O, A, H 순으로 구성할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 클 때 또는 같지만 수직 분할의 결과인 경우 B, A, O, N, H 순으로 후보 리스트를 구성하고, 현재 블록의 높이가 너비보다 작을 때 또는 수평 분할의 결과인 경우 N, O, H, A, B 순으로 후보 리스트를 구성하고, 현재 블록의 높이와 너비가 같으면서 쿼드 분할의 결과인 경우 A, B, O, N, H 순으로 구성할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 클 때 또는 같지만 수직 분할의 결과인 경우 상측 위치의 화면간 예측 정보(H, I, J, …, N, O )만 이용하여 후보 리스트를 구성하고, 현재 블록의 높이가 너비보다 작을 때 또는 수평 분할의 결과인 경우 좌측 위치의 화면간 예측 정보(A, B, C, …, F, G)만 이용하여 후보 리스트를 구성하고, 현재 블록의 높이와 너비이 같으면서 쿼드 분할의 결과인 경우 좌, 상측 화면간 예측 정보 모두를 이용하여 후보 리스트를 구성할 수 있다.
상속 어파인 화면간 예측 정보를 이용한 후보 리스트를 구성함에 있어, 상기 현재 블록의 모양 및 분할 상태에 따라서 다르게 할 수 있다.
예를 들어, 현재 블록의 높이가 너비보다 작은 경우, 수평 분할인 경우, 또는 높이와 너비가 같지만 수평 분할의 결과인 경우, 상단 주변 블록에서 하나의 화면간 예측 정보를 유도한 후 좌측 주변 블록에서 하나의 화면간 예측 정보를 유도할 수 있다.
예를 들어, 도 10의 상단 O, N, H 위치 블록 순으로 하나의 화면간 예측 정보를 유도한 후, 좌측 A, B 블록 순으로 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 도 10의 상단 N, O, H 위치 블록 순으로 하나의 화면간 예측 정보를 유도한 후, 좌측 A, B 블록 순으로 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 큰 경우, 수직 분할인 경우, 또는 높이와 너비가 같지만 수직 분할의 결과인 경우, 좌측 주변 블록에서 하나의 화면간 예측 정보를 유도한 후 좌측 주변 블록에서 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 도 10의 좌측 A, B 블록 순으로 하나의 화면간 예측 정보를 유도한 후, 상단 O, N, H 위치 블록 순으로 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 도 10의 좌측 B, A 블록 순으로 하나의 화면간 예측 정보를 유도한 후, 상단 O, N, H 위치 블록 순으로 하나의 화면간 예측 정보를 유도할 수 있다.
조합 어파인 화면간 예측 정보를 이용한 후보 리스트를 구성함에 있어, 상기 현재 블록의 모양 및 분할 상태에 따라 다르게 할 수 있다.
예를 들어, 현재 블록의 높이가 너비보다 작은 경우, 수평 분할인 경우, 또는 높이와 너비가 같지만 수평 분할의 결과인 경우, {CP1, CP2, CP3}, {CP1, CP3, CP4}, {CP1, CP2, CP4}, {CP2, CP3, CP4}, {CP1, CP3}, {CP1, CP2} 순으로 후보를 유도할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 큰 경우, 또는 높이와 너비가 같지만 수직 분할의 결과인 경우, {CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3} 순으로 후보를 유도할 수 있다.
바이너리 또는 터너리 트리로 분할된 블록의 위치에 따라, 부-블록 단위 Merge 후보 리스트 구성하는 방법을 다르게 할 수 있다.
예를 들어, 분할된 첫번째 부호화 블록의 부-블록 단위 Merge 후보 리스트에는 일괄 구성 방법을 적용하고, 분할된 두번째 또는 세번째 부호화 블록 중 적어도 하나 이상의 블록에 대하여 부-블록 단위 Merge 후보 리스트를 적응적 구성 방법을 적용할 수 있다.
현재 블록의 QT/BT/TT 분할 중 적어도 하나의 분할 깊이(depth) 정보가 소정의 범위에 해당하는 경우, 부-블록 단위 Merge 후보 리스트를 다르게 구성할 수 있다. 상기 현재 블록은 부호화 블록, 예측 블록, 변환 블록 중 적어도 하나일 수 있다.
블록의 초기 깊이 값은 0일 수 있으며, 분할이 이루어지는 경우 분할된 블록의 깊이 값은 상위 블록의 깊이 값에 1증가된 값일 수 있다.
예를 들어, 쿼드 분할에 대한 깊이를 의미하는 QT depth 또는 바이너리 또는 터너리 트리 기반의 분할에 대한 깊이를 의미하는 MTT depth 중 적어도 하나에 기반하여 부-블록 단위 Merge 후보 리스트 구성을 다르게 할 수 있다.
예를 들어, MTT Depth가 1 이하인 블록에 대해서 상기 블록 모양 기반의 구성 방법 또는 분할 상태 기반의 구성 방법 중 적어도 하나의 방법을 적용하여 적응적으로 부-블록 단위 Merge 후보 리스트를 구성할 수 있다.
예를 들어, QT Depth가 3 이상이면서 MTT Depth가 1 이하인 블록에 대해서 상기 블록 모양 기반의 구성 방법 또는 분할 상태 기반의 구성 방법 중 적어도 하나의 방법을 적용하여 적응적으로 부-블록 단위 Merge 후보 리스트를 구성할 수 있다.
예를 들어, 바이너리 또는 터너리 트리 기반으로 분할된 블록 위치와 깊이 정보에 기반하여 부-블록 단위 Merge 후보 리스트를 다르게 구성할 수 있다.
예를 들어, 현재 블록의 BT Depth가 1 이하이고 두번째 분할 블록에 해당하는 경우, 상기 블록 모양 기반의 구성 방법 또는 분할 상태 기반의 구성 방법 중 적어도 하나의 방법을 적용하여 적응적으로 부-블록 단위 Merge 후보 리스트를 구성할 수 있다.
상기 블록 모양, 분할 상태, 분할 깊이에 따른 후보 리스트 구성 변경 방법을 부-블록 단위 Skip 모드에 동일하게 적용할 수 있다.
[D2-6] 현재 블록의 화면간 예측 정보를 유도함에 있어 양의 정수 N개의 화면간 예측 정보 후보를 가지는 부-블록 단위 AMVP후보 리스트를 구성하여 부-블록 단위 AMVP모드를 사용할 수 있다.
부-블록 단위 AMVP 후보 리스트는 상속 어파인 화면간 예측 정보, 조합 어파인 화면간 예측 정보, 패딩 어파인 화면간 예측 정보, 제로 어파인 화면간 예측 정보 중 적어도 하나 이상으로 구성된다
상속 어파인 화면간 예측 정보는 도 10에서 A, B, ……, H, O 위치에 존재하는 블록의 화면간 예측 정보를 의미한다. 소정의 순서에 의하여 상기 공간적 주변 블록으로부터 하나 이상의 후보를 유도할 수 있다.
좌측 주변 블록은 A, B, C, …, F, G 중 하나 이상 위치의 블록일 수 있으며, 소정의 순서에 의하여 상기 화면간 예측 정보를 유도할 수 있다. 예를 들어, 좌측 주변 블록의 움직임 정보를 유도할 때, 도 10의 A, B 위치 블록 순으로 유도할 수 있다.
상단 주변 블록은 H, I, J, …, N, O 중 하나 이상의 위치의 블록일 수 있으며, 소정의 순서에 의하여 상기 화면간 예측 정보를 유도할 수 있다. 예를 들어, 상단 주변 블록의 움직임 정보를 유도할 때, 도 10의 O, N, H 위치 블록 순으로 유도할 수 있다.
조합 어파인 화면간 예측 정보는 도 10에서의 좌상단, 우상단, 좌하단 위치에 인접한 주변 블록들의 조합을 이용해, 소정의 순서에 의하여 하나의 후보를 유도할 수 있다.
예를 들어, 좌상단 위치의 움직임 벡터 CP1을 유도할 때, 도 10의 H, I, G 위치 블록 순으로 유도할 수 있다. 예를 들어, 우상단 위치의 움직임 벡터 CP2을 유도할 때, 도 10의 N, O 위치 블록 순으로 유도할 수 있다. 예를 들어, 좌하단 위치의 움직임 벡터 CP3을 유도할 때, 도 10의 B, A위치 블록 순으로 유도할 수 있다.
패딩 어파인 움직임 정보는 상속 어파인, 조합 어파인 화면간 예측 정보를 유도한 후, 부-블록 단위 AMVP 모드의 후보 리스트를 채우지 못했을 경우, 패딩 움직임 정보로 후보 리스트를 채울 수 있다.
예를 들어, 좌상단 위치의 움직임 벡터 CP1을 좌상단, 우상단, 좌하단, 우하단 중 적어도 하나의 CP 위치에 저장하여 후보 리스트로 구성할 수 있다. 예를 들어, 우상단 위치의 움직임 벡터 CP2을 좌상단, 우상단, 좌하단, 우하단 중 적어도 하나의 CP 위치에 저장하여 후보 리스트로 구성할 수 있다. 예를 들어, 좌하단 위치의 움직임 벡터 CP3을 좌상단, 우상단, 좌하단, 우하단 중 적어도 하나의 CP 위치에 저장하여 후보 리스트로 구성할 수 있다. 예를 들어, 우하단 위치의 움직임 벡터 CP4을 좌상단, 우상단, 좌하단, 우하단 중 적어도 하나의 CP 위치에 저장하여 후보 리스트로 구성할 수 있다.
제로 어파인 움직임 정보는 상속 어파인, 조합 어파인 화면간 예측 정보를 유도한 후, 부-블록 단위 AMVP 모드의 후보 리스트를 채우지 못했을 경우, 제로 움직임 정보로 후보 리스트를 채울 수 있다.
상속 어파인 화면간 예측 정보를 이용한 후보 리스트를 구성함에 있어, 상기 현재 블록의 모양 및 분할 상태에 따라서 다르게 할 수 있다.
예를 들어, 현재 블록의 높이가 너비보다 작은 경우, 수평 분할인 경우, 또는 높이와 너비가 같지만 수평 분할의 결과인 경우, 상단 주변 블록에서 하나의 화면간 예측 정보를 유도한 후 좌측 주변 블록에서 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 도 10의 상단 O, N, H 위치 블록 순으로 하나의 화면간 예측 정보를 유도한 후, 좌측 A, B 블록 순으로 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 도 10의 상단 N, O, H 위치 블록 순으로 하나의 화면간 예측 정보를 유도한 후, 좌측 A, B 블록 순으로 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 큰 경우, 수직 분할인 경우, 또는 높이와 너비가 같지만 수직 분할의 결과인 경우, 좌측 주변 블록에서 하나의 화면간 예측 정보를 유도한 후 좌측 주변 블록에서 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 도 10의 좌측 A, B 블록 순으로 하나의 화면간 예측 정보를 유도한 후, 상단 O, N, H 위치 블록 순으로 하나의 화면간 예측 정보를 유도할 수 있다. 예를 들어, 도 10의 좌측 B, A 블록 순으로 하나의 화면간 예측 정보를 유도한 후, 상단 O, N, H 위치 블록 순으로 하나의 화면간 예측 정보를 유도할 수 있다.
패딩 어파인 화면간 예측 정보를 이용한 후보 리스트를 구성함에 있어, 상기 현재 블록의 모양 및 분할 상태에 따라 다르게 할 수 있다.
예를 들어, 현재 블록의 높이가 너비보다 작은 경우, 수평분할인 경우, 또는 높이와 너비가 같지만 수평 분할의 결과인 경우, CP1, CP3, CP2, CP4 순으로 후보를 유도할 수 있다. 예를 들어, 현재 블록의 높이가 너비보다 큰 경우, 또는 높이와 너비가 같지만 수직 분할의 결과인 경우, CP1, CP2, CP3, CP4 순으로 후보를 유도할 수 있다.
바이너리 또는 터너리 트리 기반으로 분할된 블록의 위치에 따라, 부-블록 단위 AMVP 후보 리스트 구성하는 방법을 다르게 할 수 있다.
예를 들어, 분할된 첫번째 부호화 블록의 부-블록 단위 AMVP 후보 리스트에는 일괄 구성 방법을 적용하고, 분할된 두번째 또는 세번째 부호화 블록 중 적어도 하나 이상의 블록에 대하여 부-블록 단위 AMVP후보 리스트를 적응적 구성 방법을 적용할 수 있다.
현재 블록의 QT/BT/TT 분할 중 적어도 하나의 분할 깊이(depth) 정보가 소정의 범위에 해당하는 경우, 부-블록 단위 AMVP후보 리스트를 다르게 구성할 수 있다. 상기 현재 블록은 부호화 블록, 예측 블록, 변환 블록 중 적어도 하나일 수 있다.
블록의 초기 깊이 값은 0일 수 있으며, 분할이 이루어지는 경우 분할된 블록의 깊이 값은 상위 블록의 깊이 값에 1증가된 값일 수 있다.
예를 들어, 쿼드 분할에 대한 깊이를 의미하는 QT depth 또는 이진 혹은 삼진 분할에 대한 깊이를 의미하는 MTT depth 중 적어도 하나에 기반하여 부-블록 단위 AMVP 후보 리스트 구성을 다르게 할 수 있다.
예를 들어, MTT Depth가 p 이하인 블록에 대해서 상기 블록 모양 기반의 구성 방법 또는 분할 상태 기반의 구성 방법 중 적어도 하나의 방법을 적용하여 적응적으로 부-블록 단위 AMVP 후보 리스트를 구성할 수 있다.
예를 들어, QT Depth가 q 이상이면서 MTT Depth가 p 이하인 블록에 대해서 상기 블록 모양 기반의 구성 방법 또는 분할 상태 기반의 구성 방법 중 적어도 하나의 방법을 적용하여 적응적으로 부-블록 단위 AMVP 후보 리스트를 구성할 수 있다. p와 q는 부호화기/복호화기에 기-결정된 문턱값일 수 있다. p는 1, 2, 3, 또는 그 이상의 정수이며, q는 p보다 큰 정수일 수 있다.
예를 들어, 바이너리 또는 터너리 트리 기반으로 분할된 블록 위치와 깊이 정보에 기반하여 부-블록 단위 AMVP 후보 리스트를 다르게 구성할 수 있다.
예를 들어, 현재 블록의 BT Depth가 1 이하이고, 두번째 분할 블록에 해당하는 경우, 상기 블록 모양 기반의 구성 방법 또는 분할 상태 기반의 구성 방법 중 적어도 하나의 방법을 적용하여 적응적으로 부-블록 단위 AMVP 후보 리스트를 구성할 수 있다.
전술한 과정을 통해, 복수의 후보로 구성된 후보 리스트를 생성할 수 있다. 부호화 장치에서 시그널링된 인덱스에 기초하여, 복수의 후보 중 적어도 하나를 특정할 수 있다. 특정된 후보는, 현재 블록의 움직임 정보로 동일하게 설정되거나, 현재 블록의 움직임 벡터 예측값으로 설정될 수 있다.
상기 설정된 움직임 정보를 이용하여 현재 블록의 움직임 보상을 수행할 수도 있다. 또는, 상기 설정된 움직임 정보를 보정한 후, 보정된 움직임 정보를 이용하여 현재 블록의 움직임 보상을 수행할 수도 있으며, 이는 도 12를 참조하여 자세히 살펴보도록 한다.
[D3] 화면간 예측 및 움직임 보상/보정 단계
현재 블록에 대한 화면간 예측에서 움직임 보상, 밝기 보상(IC), OBMC (Overlapped block motion compensation), BIO (Bi-directional optical flow) 또는 어파인 공간 움직임 예측 및 보상 중 적어도 하나를 이용하여 화면간 예측 및 움직임 보상/보정을 할 수 있다.
[D3-1] 현재 블록의 화면간 예측 및 움직임 보상/보정에 있어 움직임 보상을 할 수 있다.
상기 유도된 화면간 예측 정보(움직임 벡터, 참조 픽쳐 리스트, 참조 픽쳐 인덱스)를 이용하여 현재 블록에 대한 예측 블록을 생성한다.
움직임 보상에 있어 단방향 움직임 정보 보상을 할 수 있다.
예를 들어, 1개의 참조 픽쳐 리스트 L0의 한 픽쳐 안의 하나의 블록으로 움직임 보상을 할 수 있다. 예를 들어, 1개의 참조 픽쳐 리스트 L0의 한 픽쳐 안의 두 개 이상의 블록을 혼합하여 움직임 보상을 할 수 있다. 예를 들어, 1개의 참조 픽쳐 리스트 L0의 두 개 이상의 픽쳐 안의 두 개 이상의 블록을 혼합하여 움직임 보상을 할 수 있다. 예를 들어, 1개의 참조 픽쳐 리스트 L1의 한 픽쳐 안의 하나의 블록으로 움직임 보상을 할 수 있다. 예를 들어, 1개의 참조 픽쳐 리스트 L1의 한 픽쳐 안의 두 개 이상의 블록을 혼합하여 움직임 보상을 할 수 있다. 예를 들어, 1개의 참조 픽쳐 리스트 L1의 두 개 이상의 픽쳐 안의 두 개 이상의 블록을 혼합하여 움직임 보상을 할 수 있다.
움직임 보상에 있어 양방향 움직임 정보 보상을 할 수 있다.
예를 들어, 2개의 참조 픽쳐 리스트 L0, L1의 각각 한 개의 블록을 혼합하여 움직임 보상할 수 있다. 예를 들어, 2개의 참조 픽쳐 리스트 L0, L1의 각각 두 개 이상의 블록을 혼합하여 움직임 보상할 수 있다. 예를 들어, 2개의 참조 픽쳐 리스트 L0, L1마다 두 개 이상의 픽쳐 안의 각각 두개 이상의 블록을 혼합하여 움직임 보상할 수 있다.
[D3-2] 현재 블록의 화면간 예측 및 움직임 보상/보정에 있어 밝기 보상을 할 수 있다.
상기 움직임 보상에 있어 움직임 보상에 사용하는 블록이 존재하는 참조 픽쳐와 현재 블록이 존재하는 참조 픽쳐의 밝기/조명 변화를 보상할 수 있다.
예를 들어, 현재 블록의 주변 샘플과 참조 블록의 주변 샘플의 변화를 임의의 정수 N개 이상의 선형 모델로 근사화하고 상기 선형 모델을 움직임 보상된 블록에 적용하여 밝기 보상을 할 수 있다.
[D3-3] 현재 블록의 화면간 예측 및 움직임 보상/보정에 있어 OBMC (Overlapped block motion compensation) 할 수 있다.
현재 블록에서 현재 블록의 화면간 예측 정보로 보상한 블록과 현재 블록 주변 블록 중 적어도 하나 이상의 블록의 화면간 예측 정보로 보상한 하나 이상의 블록을 혼합하여 예측 블록을 생성할 수 있다.
예를 들어, 현재 블록을 중심으로 좌, 우의 블록을 혼합하여 예측 블록을 생성할 수 있다.
예를 들어, 현재 블록을 중심으로 상,하,좌, 우의 블록을 혼합하여 예측 블록을 생성할 수 있다.
예를 들어, 현재 블록을 중심으로 주변 블록 중 하나를 혼합하여 예측 블록을 생성할 수 있다.
도 11과 같이, 현재 블록에서 현재 블록의 부-블록 단위의 화면간 예측 정보로 보상한 블록과 해당 부-블록의 좌, 우, 상, 하 위치의 부-블록 중 적어도 하나 이상의 블록의 화면간 예측 정보로 보상한 하나 이상의 블록을 혼합하여 예측 블록을 생성할 수 있다.
예를 들어, 현재 블록 내부 경계 위치에 존재하는 부-블록만 수행할 수 있다. 예를 들어, 현재 블록 내부 모든 부-블록에 수행될 수 있다. 예를 들어, 현재 블록 내부 좌측 경계 위치에 존재하는 부-블록만 수행할 수 있다. 예를 들어, 현재 블록 내부 우측 경계 위치에 존재하는 부-블록만 수행할 수 있다. 또는, 현재 블록 내 상단 또는 하단 경계 위치에 존재하는 부-블록에 대해서만 수행될 수도 있다. 또는, 현재 블록 내 상단, 하단, 좌측 또는 우측 중 적어도 2개의 경계에 대해서만 수행될 수도 있다.
[D3-4] 현재 블록의 화면간 예측 및 움직임 보상/보정에 있어 BIO (Bi-directional optical flow)에 기반하여 움직임 보상을 보정할 수 있다.
현재 블록의 움직임 벡터를 단방향 위치의 블록의 Optical flow로 구할 수 있다. 현재 블록의 움직임 벡터를 디스플레이 순서상 현재 픽쳐의 이전 픽쳐와 이후 픽쳐에 존재하는 블록을 이용한 양방향 Optical flow로 구할 수 있다. 상기 이전, 이후 픽쳐에 존재하는 블록은 서로 반대의 움직임을 가지는 현재 픽쳐와 유사한 블록일 수 있다.
복호화 장치는, 소정의 참조 영역에 속한 샘플의 변화도(gradient)를 고려하여 예측 블록을 보정할 수 있으며, 이하 BIO 방법이라 한다.
부호화/복호화 장치는, BIO 방법을 위한 소정의 참조 영역을 결정할 수 있다. 상기 참조 영역은, 현재 블록의 참조 블록 또는 상기 참조 블록의 인접 영역 중 적어도 하나를 포함하는 영역으로 결정될 수 있다. 참조 영역은, L0 방향과 L1 방향에 대해서 각각 결정될 수 있다. 인접 영역은, 참조 블록의 경계(boundary)를 기준으로 K개의 샘플 라인만큼 확장된 영역을 의미할 수 있다. 여기서, K은 1, 2, 3 또는 그 이상의 정수일 수 있다.
인접 영역은, 참조 블록의 좌측, 상단, 우측, 하단, 좌상단, 좌하단, 우상단 또는 우하단 중 적어도 하나의 방향에 위치할 수 있다. 이때, 현재 블록이 WxH인 경우, 참조 영역은 (W+2K)x(H+2K)으로 표현될 수 있다. 여기서 W, H는 각각 4, 8, 16, 32, 64 또는 그 이상의 2의 배수 크기를 가지는 정수일 수 있다. 다만, 보정 과정의 복잡도를 줄이기 위해, 인접 영역은 전술한 방향 중 일부 방향에만 위치할 수도 있다. 예를 들어, 참조 블록의 좌측 및 상단에 인접한 영역으로 제한될 수도 있고, 참조 블록의 우측 및 하단에 인접한 영역으로 제한될 수도 있다.
복호화 장치는, 상기 참조 영역에 속한 샘플의 변화도(gradient)를 산출할 수 있다. 현재 샘플의 변화도는, 현재 샘플에 인접한 복수의 이웃 샘플 간의 차이로 산출될 수 있다. 상기 복수의 이웃 샘플은, 현재 샘플과 동일한 수평 라인 및/또는 수직 라인에 위치할 수 있다. 또는, 복수의 이웃 샘플은, 현재 샘플과 동일한 대각선 라인에 위치할 수도 있다. 또는, 복수의 이웃 샘플 중 어느 하나는 다른 하나와 상이한 라인에 위치할 수도 있다. 상기 복수의 이웃 샘플의 개수는, 2개, 3개, 4개 또는 그 이상일 수 있다.
상기 변화도는, L0 참조 영역 또는 L1 참조 영역 중 적어도 하나에 대해서 산출될 수 있다. 이때, L0/L1 참조 영역에 대한 변화도는, 수평 방향(H) 또는 수직 방향(V) 중 적어도 하나에 대해서 산출될 수 있다.
예를 들어, L0 참조 영역에 대한 수평 방향의 변화도(gradientHL0)는, 현재 샘플에 좌측 및 우측으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출될 수 있다. L0 참조 영역에 대한 수직 방향의 변화도(gradientVL0)는, 현재 샘플에 상단 및 하단으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출될 수 있다. L1 참조 영역에 대한 수평/수직 방향의 변화도(gradientHL1, gradientVL1)는, 전술한 방식과 동일한 방식으로 산출될 수 있다.
전술한 방법을 통해, 참조 영역 내의 샘플에 대해서 변화도를 각각 산출할 수 있다. 다만, 상기 참조 영역의 경계에 위치한 샘플(이하, 경계 샘플이라 함)의 변화도는, 해당 경계 샘플에 인접한 이웃 샘플의 변화도를 공유할 수 있다.
예를 들어, 참조 영역의 상단 경계 샘플의 변화도는, 상단 경계 샘플 아래로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 하단 경계 샘플의 변화도는, 하단 경계 샘플 위로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 좌측 경계 샘플의 변화도는, 좌측 경계 샘플 왼쪽으로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 우측 경계 샘플의 변화도는, 우측 경계 샘플 오른쪽으로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 코너 경계 샘플은, 코너 경계 샘플에 대각선 방향으로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 각 코너에 위치한 2x2 영역의 샘플들은 동일한 변화도를 공유할 수 있다.
부호화/복호화 장치는, BIO 방법을 위한 하나 또는 그 이상의 파라미터를 결정할 수 있다. 상기 파라미터는, L0/L1 참조 영역의 샘플값 또는 샘플의 변화도 중 적어도 하나에 기초하여 유도될 수 있다. 구체적으로, 제1 파라미터(diff)는, L0 참조 영역과 L1 참조 영역 간의 샘플값 차이에 기초하여 유도될 수 있다. 제2 파라미터(tempH)는, 전술한 gradientHL0 또는 gradientHL1 중 적어도 하나에 기초하여 유도되고, 제3 파라미터(tempV)는, 전술한 gradientVL0 또는 gradientVL1 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, 상기 파라미터는 다음 수학식 2와 같이 유도될 수 있다.
[수학식 2]
diff[x][y]=(predSamplesL0[hx][vy]>>shift2)-(predSamplesL1[hx][vy]>>4)
tempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>1
tempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>1
수학식 2에서, (x,y) 위치의 샘플에 대한 제1 파라미터(diff)는, L0/L1 참조 영역 내의 (hx,vy) 위치에 대응하는 샘플에 기초하여 유도되며, 여기서 hx,vy는 다음 수학식 3과 같이 결정될 수 있다. 수학식 3에서, nCbW와 nCbH는 현재 블록(또는 참조 블록)의 너비와 높이를 각각 의미한다.
[수학식 3]
hx = Clip3( 1, nCbW, x )
vy = Clip3( 1, nCbH, y )
복호화 장치는, 앞서 결정된 변화도 또는 파라미터 중 적어도 하나에 기초하여, 움직임 보상의 보정을 위한 보상값을 유도할 수 있다.
구체적으로, 상기 보상값은, 움직임 오프셋과 상기 변화도에 기초하여 유도될 수 있다. 상기 움직임 오프셋은, 수평 방향의 움직임 오프셋(Vx) 또는 수직 방향의 움직임 오프셋(Vy) 중 적어도 하나로 정의될 수 있다. 여기서, 상기 변화도는, gradientHL0, gradientHL1, gradientVL0, 또는 gradientVL1 중 적어도 하나를 포함할 수 있다.
예를 들어, 보상값(mcOffset)은 다음 수학식 4와 같이 유도될 수 있다.
[수학식 4]
mcOffset = Vx * ( gradientHL1[ x + 1 ][ y + 1 ] - gradientHL0[ x + 1 ][ y + 1 ] ) + Vy * (gradientVL1[ x + 1 ][ y + 1 ] - gradientVL0[ x + 1 ][ y + 1 ] )
수학식 4에서, Vx는 수평 방향의 움직임 오프셋을 의미할 수 있다. 이는, 전술한 제1 파라미터(diff) 또는 제2 파라미터(tempH) 중 적어도 하나에 기초하여 결정될 수 있다. Vy는 수직 방향의 움직임 오프셋을 의미할 수 있다. 이는, 수평 방향의 움직임 오프셋(Vx), 제1 파라미터(diff), 제2 파라미터(tempH) 또는 제3 파라미터(tempW) 중 적어도 하나에 기초하여 유도될 수 있다.
복호화 장치는, 현재 블록의 참조 블록 및 상기 보상값(mcOffset)을 이용하여 현재 블록의 예측 샘플을 생성할 수 있다. 여기서, 참조 블록은, L0 참조 블록 또는 L1 참조 블록 중 적어도 하나를 포함할 수 있다.
전술한 BIO 방법은, 소정의 부호화 파라미터에 기초하여 선택적으로 이용될 수 있다. 여기서, 부호화 파라미터는, 블록 크기/형태, 참조 픽쳐의 위치, 인터 예측 모드, 예측 방향, 성분 타입, 참조 블록 간의 차이 등을 의미할 수 있다. 부호화 파라미터는, 인코더에서 부호화되어 시그널링되는 정보뿐만 아니라 부호화/복호화 장치에서 유도되는 정보를 포함할 수 있다.
예를 들어, 현재 블록이 소정의 문턱크기보다 작거나 혹은 큰 경우에 한하여 적용될 수 있다. 상기 문턱크기는, BIO 방법이 허용되는 블록의 최소크기 또는 최대크기로 정의될 수 있다. 상기 문턱크기의 너비 또는 높이 중 적어도 하나는, 8, 16, 32 또는 64일 수 있다. 또는, 현재 블록의 형태가 정사각형인 경우에 한하여 적용될 수도 있다. 또는, L0/L1 참조 픽쳐 중 어느 하나는 현재 픽쳐보다 작은 POC를 가지고, 나머지 하나는 큰 POC를 가지는 경우에만 적용될 수도 있다. 또는, L0 참조 블록과 L1 참조 블록 간의 샘플값 차이가 소정의 문턱값보다 크거나 같은 경우에 한하여 적용될 수 있다. 여기서, 문턱값은, 비트 뎁스 또는 참조 블록(또는 현재 블록)의 너비와 높이 중 적어도 하나에 기초하여 결정될 수 있다.
BIO 방법은, 전술한 제한 조건 중 어느 하나에 기초하여 선택적으로 수행될 수도 있고, 전술한 제한 조건 중 적어도 2개의 조합에 기초하여 선택적으로 수행될 수도 있다.
전술한 BIO 방법에 따른 움직임 보상의 보정은, 복호화 장치에서만 수행되는 것으로 한정되지 아니하며, 부호화 장치에서도 동일한 방식으로 움직임 보상의 보정이 수행될 수 있다.
[D3-5] 현재 블록의 화면간 예측 및 움직임 보상/보정에 있어 어파인 공간 움직임 예측 및 보상할 수 있다.
현재 블록의 좌상단, 우상단 위치의 움직임 벡터를 어파인 변환 식을 이용하여 현재 블록 픽셀 별로의 움직임 벡터를 생성할 수 있고 해당 움직임 벡터를 이용하여 움직임 보상을 할 수 있다.
현재 블록의 좌상단, 우상단 위치의 움직임 벡터를 어파인 변환 식을 이용하여 현재 블록의 부-블록 단위로 움직임 벡터를 생성할 수 있고 해당 움직임 벡터를 이용하여 움직임 보상을 할 수 있다.
현재 블록의 좌상단, 우상단 위치의 움직임 벡터를 전송할 수 있다. 현재 블록의 좌상단, 우상단 위치의 움직임 벡터를 해당 벡터의 주변 움직임 벡터와의 차이만을 전송할 수 있다. 현재 블록의 좌상단, 우상단 위치의 움직임 벡터를 현재 주변 블록의 어파인 움직임 벡터를 이용하여 전송없이 유도할 수 있다.
좌상단, 우상단 위치뿐만 아니라 좌하단, 우하단의 움직임 벡터 중 적어도 하나를 적응적으로 이용해 어파인 공간 움직임 보상을 할 수 있다.
현재 블록의 좌상단, 우상단 위치의 움직임 벡터를 이용해 좌하단 위치의 움직임 벡터를 이용해 적응적으로 어파인 공간 움직임 보상을 할 수 있다. 현재 블록의 좌상단, 우상단 위치의 움직임 벡터 중 적어도 하나를 이용하여, 좌하단 또는 우하단 위치의 움직임 벡터를 유도할 수도 있다. 이를 통해, 어파인 공간 움직임 보상을 수행할 수도 있다.
도 12는 본 발명이 적용되는 일실시예로서, 복호화 장치에서 움직임 벡터를 보정하는 방법을 도시한 것이다.
현재 블록에서 복호화 장치에 전송된 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 보정할 수 있다.
예를 들어, 도 12와 같이, 상기 구해진 MV0와 MV1가 가리키는 블록 주변을 탐색하며 가장 잘 부합하는 블록으로 현재 블록의 움직임 벡터를 개선할 수 있다.
Bilateral Matching에 대해 화면간 예측 정보 수정을 수행함에 있어, SAD를 기반으로 블록의 부합 정도를 판단할 수 있다. 예를 들어, SAD가 가장 작은 두개의 블록이 가장 잘 부합함을 나타낼 수 있다.
구체적으로, 복호화 장치는, 움직임 보정을 위한 탐색 영역을 결정할 수 있다(S1). 상기 탐색 영역은, 참조 블록 또는 상기 참조 블록의 주변 영역 중 적어도 하나를 포함하는 영역으로 결정될 수 있다. 이때, 상기 참조 블록의 좌상단 샘플의 위치가 탐색의 기준 위치가 될 수 있다. 탐색 영역은, L0 방향과 L1 방향에 대해서 각각 결정될 수 있다. 주변 영역은, 참조 블록의 경계(boundary)에 이웃한 N개의 샘플 라인을 의미할 수 있다. 여기서, N은 1, 2, 3 또는 그 이상의 정수일 수 있다.
주변 영역은, 참조 블록의 좌측, 상단, 우측, 하단, 좌상단, 좌하단, 우상단 또는 우하단 중 적어도 하나의 방향에 위치할 수 있다. 이때, 현재 블록이 WxH인 경우, 탐색 영역은 (W+2N)x(H+2N)으로 표현될 수 있다. 다만, 움직임 보정 과정의 복잡도를 줄이기 위해, 주변 영역은 전술한 방향 중 일부 방향에만 위치할 수도 있다. 예를 들어, 주변 영역은, 참조 블록의 좌측, 상단 또는 좌상단 중 적어도 하나에 인접한 영역으로 제한될 수도 있고, 참조 블록의 우측, 하단 또는 우하단 중 적어도 하나에 인접한 영역으로 제한될 수도 있다.
샘플 라인의 개수(N)는, 복호화 장치에 기-정의된 고정된 값일 수도 있고, 블록 속성을 고려하여 가변적으로 결정될 수도 있다. 여기서, 블록 속성은, 블록의 크기/형태, 블록 위치, 인터 예측 모드, 성분 타입 등을 의미할 수 있다. 상기 블록 위치는, 참조 블록이 픽쳐 또는 소정의 조각 영역의 경계에 접하는지 여부를 의미할 수 있다. 상기 조각 영역은, 슬라이스, 타일, 서브-타일(브릭, brick), 코딩 트리 블록 열/행(CTB row/column), 또는 코딩 트리 블록을 의미할 수 있다. 예를 들어, 블록 속성에 따라, 0개, 1개 또는 2개의 샘플 라인 중 어느 하나가 선택적으로 이용될 수 있다.
복호화 장치는, 탐색 영역 내의 탐색 위치 별 SAD(sum of absolute difference)를 결정할 수 있다(S2).
이하, 탐색 위치 별 SAD를 SAD 후보라 부르기로 한다. SAD 후보의 개수는 M개이며, M은 2보다 크거나 같은 정수일 수 있다. 상기 M은, 전술한 샘플 라인의 개수(N)에 기초하여 결정될 수 있다. 예를 들어, N이 1이면, M은 9보다 작거나 같도록 제한될 수 있다. 또는, N이 2이면, M은 25보다 작거나 같도록 제한될 수 있다. 또는, 상기 M은, 전술한 샘플 라인의 개수(N)와 관계없이, 9보다 작거나 같을 수도 있다.
SAD 후보는 L0 블록과 L1 블록 간의 SAD 값으로 결정될 수 있다. 이때, SAD 값은, L0/L1 블록에 속한 모든 샘플을 기초로 산출될 수도 있고, L0/L1 블록 내의 일부 샘플을 기초로 산출될 수도 있다. 여기서, 일부 샘플은 L0/L1 블록의 일부 영역에 속하고, 일부 영역의 너비 또는 높이 중 적어도 하나는 L0/L1 블록의 너비 또는 높이의 절반일 수 있다. 즉, L0 및 L1 블록은 WxH의 크기를 가지며, 상기 일부 샘플은 WxH/2, W/2xH 또는 W/2xH/2의 크기를 가진 일부 영역에 속할 수 있다. 이때, 일부 영역이 WxH/2인 경우, 일부 샘플은 L0/L1 블록 내에서 상단 영역(혹은 하단 영역)에 속할 수 있다. 일부 영역이 W/2xH인 경우, 일부 샘플은 L0/L1 블록 내에서 좌측 영역(혹은 우측 영역)에 속할 수 있다. 일부 영역이 W/2xH/2인 경우, 일부 샘플은 L0/L1 블록 내에서 좌상단 영역에 속할 수 있으나, 이에 한정되지 아니한다. 또는, 일부 샘플은, L0/L1 블록 또는 일부 영역의 짝수 번째 또는 홀수 번째 샘플 라인(수직 또는 수평 방향)의 그룹으로 정의될 수도 있다. 또한, 일부 샘플은 L0/L1 블록 또는 일부 영역의 수직 및/또는 수평 방향으로 서브 샘플링 된 블록일 수 있다. 즉, L0 및 L1 블록은 WxH의 크기를 가지며, 상기 일부 샘플에 대응하는 블록은, L0/L1 블록 또는 일부 영역에 포함되는 샘플 중 홀수 행의 집합, 짝수 행의 집합, 홀수 열의 집합, 혹은 짝수 열의 집합 중 적어도 어느 하나일 수 있다.
상기 L0 블록의 위치는, 현재 블록의 L0 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정될 수 있다. 오프셋은, L0 참조 블록의 위치와 탐색 위치 간의 변이 벡터를 의미할 수 있다. 즉, 탐색 위치는, L0 참조 블록의 위치 (x0,y0)에서 x축 방향으로 p만큼, y축 방향으로 q만큼 쉬프트된 위치일 수 있다. 여기서, p와 q는 -1, 0, 또는 1 중 적어도 하나일 수 있다. 이때, p와 q의 조합으로 생성되는 변이 벡터가 오프셋을 의미할 수 있다. L0 블록의 위치는, L0 참조 블록의 위치 (x0, y0)에서 (p,q)만큼 쉬프트된 위치로 결정될 수 있다. 상기 p와 q의 크기(또는 절대값)은 0 또는 1이나, 이에 한정되지 아니한다. 예를 들어, 상기 p와 q는 2, 3, 또는 그 이상의 크기를 가진 정수일 수도 있다.
상기 오프셋은, 넌-방향성 오프셋 (0,0) 또는 방향성 오프셋 중 적어도 하나를 포함할 수 있다. 상기 방향성 오프셋은, 좌측, 우측, 상단, 하단, 좌상단, 우상단, 좌하단 또는 우하단 중 적어도 하나의 방향에 대한 오프셋을 포함할 수 있다. 예를 들어, 상기 방향성 오프셋은, (-1, 0), (0, 1), (0, -1), (0, 1), (-1, -1), (-1, 1), (1, -1) 또는 (1, 1) 중 적어도 하나를 포함할 수 있다.
마찬가지로, 상기 L1 블록의 위치는, 현재 블록의 L1 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정될 수 있다. 여기서, L1 블록의 오프셋은 L0 블록의 오프셋에 기초하여 결정될 수 있다. 예를 들어, L0 블록의 오프셋이 (p, q)인 경우, L1 블록의 오프셋은 (-p, -q)으로 결정될 수 있다.
전술한 오프셋의 크기 및/또는 방향에 관한 정보는, 복호화 장치에 기-정의된 것일 수도 있고, 인코더에서 부호화되어 복호화 장치로 시그널링 될 수도 있다. 상기 정보는, 전술한 블록 속성을 고려하여 가변적으로 결정될 수도 있다.
일예로, 오프셋은 다음 표 1과 같이 정의될 수 있다.
i 0 1 2 3 4 5 6 7 8
dX[ i ] -1 0 1 -1 0 1 -1 0 1
dY[ i ] -1 -1 -1 0 0 0 1 1 1
표 1은, 인덱스 i 별로, 탐색 위치 결정을 위한 오프셋을 정의한다. 다만, 표 1은 인덱스 i에 대응하는 오프셋의 위치를 한정하는 것은 아니며, 인덱스 별 오프셋의 위치는 표 1과 상이할 수 있다. 표 1에 따른 오프셋은, 전술한 넌-방향성 오프셋 (0,0) 및 8개의 방향성 오프셋을 포함할 수 있다.
이 경우, 0번째 SAD 후보는, 참조 블록의 위치 (x, y)와 오프셋 (-1, -1)에 기초하여 결정될 수 있다. 구체적으로, L0 참조 블록의 위치 (x0, y0)에서 오프셋 (-1, -1)만큼 쉬프트된 위치를 탐색 위치로 설정하고, 해당 탐색 위치를 좌상단 샘플로 포함하는 WxH 블록을 L0 블록으로 결정할 수 있다.
마찬가지로, L1 참조 블록의 위치 (x1, y1)에서 오프셋 (1, 1)만큼 쉬프트된 위치를 탐색 위치로 설정하고, 해당 탐색 위치를 좌상단 샘플로 포함하는 WxH 블록을 L1 블록으로 결정할 수 있다. 상기 L0 블록과 L1 블록 간의 SAD를 산출하여 0번째 SAD 후보를 결정할 수 있다.
전술한 과정을 통해, 1번째 내지 9번째의 SAD 후보를 결정하고, 9개의 SAD 후보를 포함한 SAD 어레이(array)를 결정할 수 있다.
표 1은 움직임 보정을 위한 오프셋의 개수를 한정하는 것은 아니다. 상기 9개의 오프셋 중 k개의 오프셋만이 이용될 수도 있다. 여기서, k는 2 내지 8 중 임의의 값일 수 있다. 예를 들어, 표 1에서, [0, 4, 8], [1, 4, 7], [2, 4, 6], [3, 4, 5] 등과 같은 3개의 오프셋이 이용될 수도 있고, [0, 1, 3, 4], [4, 5, 7, 8] 등과 같은 4개의 오프셋이 이용될 수도 있으며, [0, 1, 3, 4, 6, 7], [0, 1, 2, 3, 4, 5] 등과 같은 6개의 오프셋이 이용될 수도 있다.
복호화 장치는, 상기 결정된 SAD 후보에 기초하여, 현재 블록의 움직임 보정을 수행할 수 있다(S3).
먼저, 복수의 SAD 후보 중에서 최소값을 가진 SAD 후보를 식별할 수 있다. 상기 최소값의 SAD 후보를 식별하는 방법을 살펴보면, 제1 SAD 후보와 제2 SAD 후보 간의 크기를 비교할 수 있다. 제1 SAD 후보와 제2 SAD 후보 중 작은 후보를 최소값을 가진 SAD 후보(mimSad)로 설정할 수 있다. 상기 minSad와 제3 SAD 후보 간의 비교를 수행하고, 동일한 방식으로 minSad를 갱신할 수 있다. 전술한 오프셋의 개수만큼 상기 비교 과정을 수행하여, 최종 minSad를 결정할 수 있다.
상기 식별된 최소값의 SAD 후보에 대응하는 오프셋을 기반으로, 델타 움직임 정보가 유도될 수 있다. 기-유도된 움직임 벡터 또는 움직임 벡터 예측 값은, 상기 유도된 델타 움직임 정보를 이용하여 보정될 수 있다.
다만, 전술한 복호화 장치 측면에서의 움직임 보정은, 기준 SAD 후보와 소정의 문턱값 간의 비교 결과에 기초하여 적응적으로 수행될 수 있다. 상기 기준 SAD 후보는, 오프셋 (0,0)에 대응하는 SAD 후보를 의미할 수 있다. 상기 문턱값은, 현재 블록 또는 참조 블록의 너비(W) 또는 높이(H) 중 적어도 하나에 기초하여 결정될 수 있다. 또는, 현재 블록이 서브 블록 단위로 움직임 보정을 수행하는 경우, 서브 블록의 너비(W) 또는 높이(H) 중 적어도 하나에 기초하여 결정될 수 있다. 예를 들어, 상기 문턱값은, W*H, W*(H/2), (W/2)*H, 2*W*H, 4*W*H, 8*W*H, 16*W*H 등으로 결정될 수 있다.
상기 기준 SAD 후보가 문턱값보다 크거나 같은 경우, 델타 움직임 정보가 유도될 수 있다. 반면, 기준 SAD 후보가 문턱값보다 작은 경우, 움직임 보정이 수행되지 않을 수 있다.
전술한 움직임 보정은, 움직임 보정 여부를 지시하는 정보에 기초하여 선택적으로 수행될 수 있다. 상기 정보는, 부호화 장치에서 부호화되어 시그널링 될 수 있다. 또는, 상기 정보는, 현재 부호화 유닛의 부호화 모드 정보, 화면 간 예측 방향성, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 등에 기초하여, 복호화 장치에서 유도될 수도 있다.
이때, 현재 블록이 양방향 예측을 수행하지 않는 경우에는 전술한 복호화 장치에서의 움직임 보정을 수행하지 않는다. 양방향 예측을 수행하는 경우라도 시간적으로 동일한 방향을 사용하는 양방향 예측인 경우에는 복호화 장치에서의 움직임 보정을 수행하지 않는다.
상기 현재 블록의 화면간 예측 모드가 머지 모드인 경우에는 복호화 장치에서의 움직임 보정을 수행할 수 있다. 현재 블록의 화면간 예측 모드가 부-블록 단위의 머지 모드 또는 어파인 모드인 경우에는 복호화 장치에서의 움직임 보정을 수행하지 않는다.
현재 블록의 너비 또는 높이 중 어느 하나가 8, 16 또는 32보다 크거나 같은 경우에 한하여 복호화 장치에서의 움직임 보정이 수행될 수 있다. 또는, 현재 블록의 너비 및 높이가 8, 16 또는 32보다 크거나 같은 경우에 한하여 복호화 장치에서의 움직임 보정이 수행될 수 있다. 또는, 현재 블록의 넓이 또는 샘플 개수가 64, 128 또는 256보다 크거나 같은 경우에 한하여 복호화 장치에서의 움직임 보정이 수행될 수도 있다.
현재 픽쳐와 L0 참조 픽쳐 간의 POC(picture order count) 차이와 현재 픽쳐와 L1 참조 픽쳐 간의 POC 차이가 서로 동일한 경우에 한하여 복호화 장치에서의 움직임 보정이 수행될 수 있다.
움직임 벡터의 해상도가 정수 화소(integer pel)인 경우에 한하여 복호화 장치에서의 움직임 보정이 수행될 수도 있고, 소수 화소(e.g., 1/2 화소, 1/4 화소) 이하인 경우에 한하여 복호화 장치에서의 움직임 보정이 수행될 수도 있다.
전술한 수행 조건 중 어느 하나에 기초하여 복호화 장치에서의 움직임 보정이 수행될 수도 있고, 전술한 수행 조건 중 적어도 2개의 조합에 기초하여 복호화 장치에서의 움직임 보정이 수행될 수도 있다.
전술한 움직임 벡터에 대한 보정은, 복호화 장치에서만 수행되는 것으로 한정되지 아니하며, 부호화 장치에서도 동일한 방식으로 움직임 벡터에 대한 보정이 수행될 수 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(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 (20)

  1. 트리 구조 기반의 분할을 통해, 제1 부호화 블록을 복수의 제2 부호화 블록으로 분할하는 단계;
    상기 제2 부호화 블록의 화면간 예측 모드를 결정하는 단계;
    상기 화면간 예측 모드에 기초하여, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계; 및
    상기 움직임 정보를 기반으로, 상기 제2 부호화 블록의 예측 블록을 생성하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 트리 구조 기반의 분할은, 쿼드 트리 분할, 바이너리 트리 분할 또는 터너리 트리 분할 중 적어도 하나를 포함하는, 영상 복호화 방법.
  3. 제1항에 있어서,
    상기 결정된 화면간 예측 모드가 머지 모드인 경우, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계는,
    복수의 머지 후보를 포함한 머지 후보 리스트를 생성하는 단계; 및
    복수의 머지 후보 중 어느 하나를 이용하여, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계를 포함하는, 영상 복호화 방법.
  4. 제3항에 있어서,
    상기 복수의 머지 후보는, 공간적 주변 블록의 화면간 예측 정보, 시간적 주변 블록의 화면간 예측 정보, 합성 화면간 예측 정보 또는 제로 움직임 정보 중 적어도 하나를 포함하는, 영상 복호화 방법.
  5. 제4항에 있어서,
    상기 공간적 주변 블록은, 상기 제2 부호화 블록의 좌측 블록, 상단 블록, 좌하단 블록, 우상단 블록 또는 좌상단 블록 중 적어도 하나를 포함하는, 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 상단 블록은 상기 좌측 블록보다 우선순위를 가지고 상기 머지 후보 리스트에 추가되는, 영상 복호화 방법.
  7. 제4항에 있어서,
    상기 합성 화면간 예측 정보는, 상기 복수의 머지 후보 중 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 움직임 벡터의 가중 평균으로 유도되는, 영상 복호화 방법.
  8. 제3항에 있어서,
    상기 제2 부호화 블록의 움직임 정보를 유도하는 단계는,
    기-유도된 제2 부호화 블록의 움직임 벡터를 보정하는 단계를 더 포함하는, 영상 복호화 방법.
  9. 제8항에 있어서,
    상기 움직임 벡터를 보정하는 단계는,
    움직임 보정을 위한 탐색 영역을 결정하는 단계;
    탐색 영역 내의 탐색 위치 별 SAD(sum of absolute difference)를 산출하는 단계; 여기서, SAD는 L0 블록과 L1 블록 간의 차이로 결정됨, 및
    상기 산출된 복수의 SAD 중 최소 SAD에 대응하는 오프셋을 기반으로, 델타 움직임 정보를 유도하는 단계를 포함하는, 영상 복호화 방법.
  10. 제1항에 있어서,
    상기 예측 블록을 생성하는 단계는,
    소정의 참조 영역에 속한 샘플의 변화도(gradient)를 기반으로, 상기 제2 부호화 블록의 예측 블록을 보정하는 단계를 포함하되,
    상기 변화도는, 수평 방향의 변화도와 수직 방향의 변화도를 포함하고,
    상기 수평 방향의 변화도는, 상기 참조 영역 내 현재 샘플을 기준으로 좌측 및 우측으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출되고,
    상기 수직 방향의 변화도는, 상기 현재 샘플을 기준으로 상단 및 하단으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출되는, 영상 복호화 방법.
  11. 트리 구조 기반의 분할을 통해, 제1 부호화 블록을 복수의 제2 부호화 블록으로 분할하는 단계;
    상기 제2 부호화 블록의 화면간 예측 모드를 결정하는 단계;
    상기 화면간 예측 모드에 기초하여, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계; 및
    상기 움직임 정보를 기반으로, 상기 제2 부호화 블록의 예측 블록을 생성하는 단계를 포함하는, 영상 부호화 방법.
  12. 제11항에 있어서,
    상기 트리 구조 기반의 분할은, 쿼드 트리 분할, 바이너리 트리 분할 또는 터너리 트리 분할 중 적어도 하나를 포함하는, 영상 부호화 방법.
  13. 제11항에 있어서,
    상기 결정된 화면간 예측 모드가 머지 모드인 경우, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계는,
    복수의 머지 후보를 포함한 머지 후보 리스트를 생성하는 단계; 및
    복수의 머지 후보 중 어느 하나를 이용하여, 상기 제2 부호화 블록의 움직임 정보를 유도하는 단계를 포함하는, 영상 부호화 방법.
  14. 제13항에 있어서,
    상기 복수의 머지 후보는, 공간적 주변 블록의 화면간 예측 정보, 시간적 주변 블록의 화면간 예측 정보, 합성 화면간 예측 정보 또는 제로 움직임 정보 중 적어도 하나를 포함하는, 영상 부호화 방법.
  15. 제14항에 있어서,
    상기 공간적 주변 블록은, 상기 제2 부호화 블록의 좌측 블록, 상단 블록, 좌하단 블록, 우상단 블록 또는 좌상단 블록 중 적어도 하나를 포함하는, 영상 부호화 방법.
  16. 제15항에 있어서,
    상기 상단 블록은 상기 좌측 블록보다 우선순위를 가지고 상기 머지 후보 리스트에 추가되는, 영상 부호화 방법.
  17. 제14항에 있어서,
    상기 합성 화면간 예측 정보는, 상기 복수의 머지 후보 중 제1 머지 후보의 움직임 벡터와 제2 머지 후보의 움직임 벡터의 가중 평균으로 유도되는, 영상 부호화 방법.
  18. 제13항에 있어서,
    상기 제2 부호화 블록의 움직임 정보를 유도하는 단계는,
    기-유도된 제2 부호화 블록의 움직임 벡터를 보정하는 단계를 더 포함하는, 영상 부호화 방법.
  19. 제18항에 있어서,
    상기 움직임 벡터를 보정하는 단계는,
    움직임 보정을 위한 탐색 영역을 결정하는 단계;
    탐색 영역 내의 탐색 위치 별 SAD(sum of absolute difference)를 산출하는 단계; 여기서, SAD는 L0 블록과 L1 블록 간의 차이로 결정됨, 및
    상기 산출된 복수의 SAD 중 최소 SAD에 대응하는 오프셋을 기반으로, 델타 움직임 정보를 유도하는 단계를 포함하는, 영상 부호화 방법.
  20. 제11항에 있어서,
    상기 예측 블록을 생성하는 단계는,
    소정의 참조 영역에 속한 샘플의 변화도(gradient)를 기반으로, 상기 제2 부호화 블록의 예측 블록을 보정하는 단계를 포함하되,
    상기 변화도는, 수평 방향의 변화도와 수직 방향의 변화도를 포함하고,
    상기 수평 방향의 변화도는, 상기 참조 영역 내 현재 샘플을 기준으로 좌측 및 우측으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출되고,
    상기 수직 방향의 변화도는, 상기 현재 샘플을 기준으로 상단 및 하단으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출되는, 영상 부호화 방법.
KR1020190151697A 2018-11-29 2019-11-22 화면간 예측에 기반한 영상 부호화/복호화 방법 및 장치 KR20200064920A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180151159 2018-11-29
KR20180151159 2018-11-29

Publications (1)

Publication Number Publication Date
KR20200064920A true KR20200064920A (ko) 2020-06-08

Family

ID=71089681

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190151697A KR20200064920A (ko) 2018-11-29 2019-11-22 화면간 예측에 기반한 영상 부호화/복호화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20200064920A (ko)

Similar Documents

Publication Publication Date Title
US11070820B2 (en) Condition dependent inter prediction with geometric partitioning
US20210037240A1 (en) Extended merge prediction
KR102147614B1 (ko) 비디오 코딩에서 아핀 모션 모델들을 위한 모션 벡터 예측
CN111919449B (zh) 使用运动补偿的视频信号处理方法及设备
EP4376406A1 (en) Combination of inter-prediction and intra-prediction in video coding
US9794587B2 (en) Image encoding method and image decoding method
KR20210089147A (ko) 인터-예측을 위한 대역폭 제어 방법
CN113454990B (zh) 帧间预测编解码方法及装置
TW202013966A (zh) 色度解碼器側運動向量細化
KR20190040476A (ko) 인터 예측 정보를 사용하는 방법 및 장치
WO2020061094A1 (en) Affine motion prediction
KR20210089149A (ko) 인터 및 인트라 통합 예측 모드 가중치
US11792419B2 (en) Image encoding/decoding method and device for performing prediction, and method for transmitting bitstream involving weighted prediction and bidirectional optical flow
KR20180016390A (ko) 비디오 코딩을 위한 조명 보상 상태를 결정하는 시스템들 및 방법들
CN115002458A (zh) 图像编码和解码方法和图像解码设备
KR101782154B1 (ko) 움직임 벡터 차분치를 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
EP4035382A1 (en) History-based motion vector prediction
CN112534820A (zh) 信令通知子预测单元运动矢量预测器
KR20160146590A (ko) 적응적인 디블록킹 필터링을 이용하는 영상 부호화 방법과 영상 복호화 방법 및 장치
KR101782153B1 (ko) 움직임 벡터 후보 선택 방법 및 이를 이용하는 영상 부호화/복호화 방법
KR20200064920A (ko) 화면간 예측에 기반한 영상 부호화/복호화 방법 및 장치
US20210185337A1 (en) Video coding method and device using motion compensation of decoder side
KR20200145778A (ko) 어파인 변환을 이용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
KR101782155B1 (ko) 움직임 벡터 정밀성을 이용하는 영상 부호화 및 복호화 방법과 영상 복호화 장치
CN113994682A (zh) 具有默认参数的基于历史的运动矢量预测