KR20200056272A - 인터 예측 방법 및 이를 이용한 영상 복호화 장치 - Google Patents

인터 예측 방법 및 이를 이용한 영상 복호화 장치 Download PDF

Info

Publication number
KR20200056272A
KR20200056272A KR1020190067741A KR20190067741A KR20200056272A KR 20200056272 A KR20200056272 A KR 20200056272A KR 1020190067741 A KR1020190067741 A KR 1020190067741A KR 20190067741 A KR20190067741 A KR 20190067741A KR 20200056272 A KR20200056272 A KR 20200056272A
Authority
KR
South Korea
Prior art keywords
offset
current block
merge
motion vector
information
Prior art date
Application number
KR1020190067741A
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 에스케이텔레콤 주식회사
Priority to PCT/KR2019/015548 priority Critical patent/WO2020101392A1/ko
Priority to CN201980088133.XA priority patent/CN113273204B/zh
Publication of KR20200056272A publication Critical patent/KR20200056272A/ko
Priority to US17/320,419 priority patent/US11671584B2/en
Priority to US18/139,384 priority patent/US11962764B2/en

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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

인터 예측 방법 및 이를 이용한 영상 복호화 장치를 개시한다.
본 발명의 일 실시예에 의하면, 비트스트림으로부터, 머지 인덱스(merge index) 및 오프셋(offset) 정보를 추출하는 단계; 현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 인덱스에 대응되는 머지 후보를 선택하는 단계; 상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계; 및 상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법을 제공한다.

Description

인터 예측 방법 및 이를 이용한 영상 복호화 장치{INTER PREDICTION METHOD AND APPARATUS USING THE SAME}
본 발명은 영상의 부호화 및 복호화에 관한 것으로서, 부호화 및 복호화의 효율을 향상시킨 인터 예측 방법 및 영상 복호화 장치에 관한 것이다.
동영상 데이터는 음성 데이터나 정지 영상 데이터 등에 비하여 많은 데이터량을 가지기 때문에, 압축을 위한 처리 없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다.
따라서, 통상적으로 동영상 데이터를 저장하거나 전송할 때에는 부호화기를 사용하여 동영상 데이터를 압축하여 저장하거나 전송하며, 복호화기에서는 압축된 동영상 데이터를 수신하여 압축을 해제하고 재생한다. 이러한 동영상 압축 기술로는 H.264/AVC를 비롯하여, H.264/AVC에 비해 약 40% 정도의 부호화 효율을 향상시킨 HEVC(High Efficiency Video Coding)가 존재한다.
그러나, 영상의 크기 및 해상도, 프레임율이 점차 증가하고 있고, 이에 따라 부호화해야 하는 데이터량도 증가하고 있으므로 기존의 압축 기술보다 더 부호화 효율이 좋고 화질 개선 효과도 높은 새로운 압축 기술이 요구된다.
이러한 요구에 부응하기 위해 본 발명은 개선된 영상 부호화 및 복호화 기술을 제공하는 것을 목적으로 하며, 특히, 본 발명의 일 측면은 움직임 추정에 오프셋 정보를 더 반영하여 종래 머지 모드의 정확성에 대한 한계를 극복함으로써 부호화 및 복호화의 효율을 향상시키는 기술과 관련된다.
본 발명의 일 측면은, 비트스트림으로부터, 머지 인덱스(merge index) 및 오프셋(offset) 정보를 추출하는 단계; 현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 인덱스에 대응되는 머지 후보를 선택하는 단계; 상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계; 및 상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법을 제공한다.
본 발명의 다른 일 측면은, 비트스트림으로부터, 머지 인덱스(merge index) 및 오프셋(offset) 정보를 추출하는 복호화부; 현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 인덱스에 대응되는 머지 후보를 선택하는 선택부; 상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 결정부; 및 상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 생성부를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 오프셋 정보를 이용하여 움직임 추정에 대한 종래 방법의 한계를 극복함으로써 더욱 정확한 움직임 추정을 구현할 수 있다.
또한, 본 발명의 다른 일 실시예에 의하면, 오프셋 정보를 최대한 단순화시켜 표현함으로써 오프셋 정보를 시그널링하기 위해 소요되는 비트 수를 최소화시킬 수 있다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다.
도 3은 복수의 인트라 예측 모드들을 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5는 본 개시의 기술들을 구현할 수 있는 인터 예측부의 예시적인 블록도이다.
도 6은 오프셋 정보를 활용하여 현재 블록을 예측하는 방법에 대한 일 실시예를 설명하기 위한 순서도이다.
도 7은 오프셋 정보를 활용하여 현재 블록의 움직임 벡터를 결정하는 방법에 대한 일 실시예를 설명하기 위한 도면이다.
도 8 및 도 9는 오프셋 벡터 후보들의 다양한 실시예를 설명하기 위한 도면이다.
도 10은 예측 방향 정보와 오프셋 정보를 활용하여 현재 블록을 예측하는 방법에 대한 일 실시예를 설명하기 위한 순서도이다.
도 11은 예측 방향 정보와 오프셋 정보를 활용하여 현재 블록을 예측하는 방법에 대한 일 실시예를 설명하기 위한 도면이다.
도 12는 예측 방향 정보를 기준으로 머지 후보 리스트를 구성하는 방법에 대한 일 실시예를 설명하기 위한 순서도이다.
도 13 및 도 14은 본 발명을 독립적인 모드로 구현하는 방법을 설명하기 위한 순서도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다. 이하에서는 도 1을 참조하여 영상 부호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
영상 부호화 장치는 블록 분할부(110), 예측부(120), 감산기(130), 변환부(140), 양자화부(145), 부호화부(150), 역양자화부(160), 역변환부(165), 가산기(170), 필터부(180) 및 메모리(190)를 포함하여 구성될 수 있다.
영상 부호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
하나의 영상(비디오)는 복수의 픽처들로 구성된다. 각 픽처들은 복수의 영역으로 분할되고 각 영역마다 부호화가 수행된다. 예를 들어, 하나의 픽처는 하나 이상의 타일(Tile) 또는/및 슬라이스(Slice)로 분할된다. 여기서, 하나 이상의 타일을 타일 그룹(Tile Group)으로 정의할 수 있다. 각 타일 또는/슬라이스는 하나 이상의 CTU(Coding Tree Unit)로 분할된다. 그리고 각 CTU는 트리 구조에 의해 하나 이상의 CU(Coding Unit)들로 분할된다. 각 CU에 적용되는 정보들은 CU의 신택스로서 부호화되고, 하나의 CTU에 포함된 CU들에 공통적으로 적용되는 정보는 CTU의 신택스로서 부호화된다. 또한, 하나의 타일 내의 모든 블록들에 공통적으로 적용되는 정보는 타일의 신택스로서 부호화되거나 다수 개의 타일을 모아 놓은 타일 그룹의 신택스로서 부호화되며, 하나의 픽처들을 구성하는 모든 블록들에 적용되는 정보는 픽처 파라미터 셋(PPS, Picture Parameter Set) 혹은 픽처 헤더에 부호화된다. 나아가, 복수의 픽처가 공통으로 참조하는 정보들은 시퀀스 파라미터 셋(SPS, Sequence Parameter Set)에 부호화된다. 그리고, 하나 이상의 SPS가 공통으로 참조하는 정보들은 비디오 파라미터 셋(VPS, Video Parameter Set)에 부호화된다.
블록 분할부(110)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS의 신택스로서 부호화되어 영상 복호화 장치로 전달된다.
블록 분할부(110)는 영상을 구성하는 각 픽처(picture)를 미리 결정된 크기를 가지는 복수의 CTU(Coding Tree Unit)들로 분할한 이후에, 트리 구조(tree structure)를 이용하여 CTU를 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU(coding unit)가 된다.
트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(QuadTree, QT), 또는 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT), 또는 상위 노드가 1:2:1 비율로 세 개의 하위 노드로 분할되는 터너리트리(TernaryTree, TT), 또는 이러한 QT 구조, BT 구조 및 TT 구조 중 둘 이상을 혼용한 구조일 수 있다. 예컨대, QTBT(QuadTree plus BinaryTree) 구조가 사용될 수 있고, 또는 QTBTTT(QuadTree plus BinaryTree TernaryTree) 구조가 사용될 수 있다. 여기서, BTTT를 합쳐서 MTT(Multiple-Type Tree)라 칭할 수 있다.
도 2는 QTBTTT 분할 트리 구조를 보인다. 도 2에서 보는 바와 같이, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달할 때까지 반복될 수 있다. QT 구조의 각 노드가 하위 레이어의 4개의 노드들로 분할되는지 여부를 지시하는 제1 플래그(QT_split_flag)는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. QT의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조 또는 TT 구조 중 어느 하나 이상으로 더 분할될 수 있다. BT 구조 및/또는 TT 구조에서는 복수의 분할 방향이 존재할 수 있다. 예컨대, 해당 노드의 블록이 가로로 분할되는 방향과 세로로 분할되는 방향 두 가지가 존재할 수 있다. 도 2와 같이, MTT 분할이 시작되면, 노드들이 분할되었는지 여부를 지시하는 제2 플래그(mtt_split_flag)와, 분할이 되었다면 추가적으로 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그 및/또는 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
트리 구조의 다른 예로서, QTBTTT 구조를 사용하여 블록을 분할하는 경우, 먼저 분할 되었음을 나타내는 CU 분할 플래그(split_cu_flag) 및 분할 타입이 QT 분할인지를 지시하는 QT 분할 플래그(split_qt_flag) 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. CU 분할 플래그(split_cu_flag) 값이 분할되지 않았음을 지시하지 않는 경우, 해당 노드의 블록이 분할 트리 구조에서의 리프 노드(leaf node)가 되어 부호화의 기본 단위인 CU(coding unit)가 된다. CU 분할 플래그(split_cu_flag) 값이 분할되었음을 지시하지 않는 경우, QT 분할 플래그(split_qt_flag) 값을 통해 분할 타입이 QT 혹은 MTT인지를 구분한다. 분할 타입이 QT인 경우에는 더 이상의 추가 정보가 없으며, 분할 타입이 MTT인 경우에는 추가적으로 MTT 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그(mtt_split_cu_vertical_flag) 및/또는 MTT 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그(mtt_split_cu_binary_flag)가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
트리 구조의 다른 예시로서 QTBT가 사용되는 경우, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. BT 구조의 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할되는 타입을 지시하는 분할 타입 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다. 한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태에는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태가 포함될 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태가 포함될 수도 있다.
CU는 CTU로부터의 QTBT 또는 QTBTTT 분할에 따라 다양한 크기를 가질 수 있다. 이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBTTT의 리프 노드)에 해당하는 블록을 '현재블록'이라 칭한다.
예측부(120)는 현재블록을 예측하여 예측블록을 생성한다. 예측부(120)는 인트라 예측부(122)와 인터 예측부(124)를 포함한다.
일반적으로, 픽처 내 현재블록들은 각각 예측적으로 코딩될 수 있다. 일반적으로 현재블록의 예측은 (현재블록을 포함하는 픽처로부터의 데이터를 사용하는) 인트라 예측 기술 또는 (현재블록을 포함하는 픽처 이전에 코딩된 픽처로부터의 데이터를 사용하는) 인터 예측 기술을 사용하여 수행될 수 있다. 인터 예측은 단방향 예측과 양방향 예측 모두를 포함한다.
인트라 예측부(122)는 현재블록이 포함된 현재 픽처 내에서 현재블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재한다. 예컨대, 도 3에서 보는 바와 같이, 복수의 인트라 예측모드는 planar 모드와 DC 모드를 포함하는 비방향성 모드와 65개의 방향성 모드를 포함할 수 있다. 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다.
인트라 예측부(122)는 현재블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(122)는 여러 인트라 예측 모드들을 사용하여 현재블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(122)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.
인트라 예측부(122)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
인터 예측부(124)는 움직임 보상 과정을 통해 현재블록에 대한 예측블록을 생성한다. 현재 픽처보다 먼저 부호화 및 복호화된 참조픽처 내에서 현재블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재블록과 참조픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 일반적으로, 움직임 추정은 루마(luma) 성분에 대해 수행되고, 루마 성분에 기초하여 계산된 모션 벡터는 루마 성분 및 크로마 성분 모두에 대해 사용된다. 현재블록을 예측하기 위해 사용된 참조픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
감산기(130)는 현재블록으로부터 인트라 예측부(122) 또는 인터 예측부(124)에 의해 생성된 예측블록을 감산하여 잔차블록을 생성한다.
변환부(140)는 공간 영역의 픽셀 값들을 가지는 잔차블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(140)는 잔차블록의 전체 크기를 변환 단위로 사용하여 잔차블록 내의 잔차 신호들을 변환할 수 있으며, 또는 잔차블록을 변환 영역 및 비변환 영역인 두 개의 서브블록으로 구분하여, 변환 영역 서브블록만 변환 단위로 사용하여 잔차 신호들을 변환할 수 있다. 여기서, 변환 영역 서브블록은 가로축 (혹은 세로축) 기준 1:1의 크기 비율을 가지는 두 개의 직사각형 블록 중 하나일 수 있다. 이런 경우, 서브블록 만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 위치 정보(cu_sbt_pos_flag)가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. 또한, 변환 영역 서브블록의 크기는 가로축 (혹은 세로축) 기준 1:3의 크기 비율을 가질 수 있으며, 이런 경우 해당 분할을 구분하는 플래그(cu_sbt_quad_flag)가 추가적으로 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
양자화부(145)는 변환부(140)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(150)로 출력한다.
부호화부(150)는 양자화된 변환 계수들을 CABAC(Context-based Adaptive Binary Arithmetic Code) 등의 부호화 방식을 사용하여 부호화함으로써 비트스트림을 생성한다. 부호화부(150)는 블록 분할과 관련된 CTU size, CU 분할 플래그, QT 분할 플래그, MTT 분할 방향, MTT 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.
또한, 부호화부(150)는 현재블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보(즉, 인트라 예측 모드에 대한 정보) 또는 인터 예측정보(참조픽처 및 움직임벡터에 대한 정보)를 부호화한다.
역양자화부(160)는 양자화부(145)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(165)는 역양자화부(160)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.
가산부(170)는 복원된 잔차블록과 예측부(120)에 의해 생성된 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.
필터부(180)는 블록 기반의 예측 및 변환/양자화로 인해 발생하는 블록킹 아티팩트(blocking artifacts), 링잉 아티팩트(ringing artifacts), 블러링 아티팩트(blurring artifacts) 등을 줄이기 위해 복원된 픽셀들에 대한 필터링을 수행한다. 필터부(180)는 디블록킹 필터(182)와 SAO(Sample Adaptive Offset) 필터(184)를 포함할 수 있다.
디블록킹 필터(180)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 필터링하고, SAO 필터(184)는 디블록킹 필터링된 영상에 대해 추가적인 필터링을 수행한다. SAO 필터(184)는 손실 부호화(lossy coding)로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해 사용되는 필터이다.
디블록킹 필터(182) 및 SAO 필터(184)를 통해 필터링된 복원블록은 메모리(190)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다. 이하에서는 도 4를 참조하여 영상 복호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
영상 복호화 장치는 복호화부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450), 필터부(460) 및 메모리(470)를 포함하여 구성될 수 있다.
도 1의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
복호화부(410)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출함으로써 복호화하고자 하는 현재블록을 결정하고, 현재블록을 복원하기 위해 필요한 예측정보와 잔차신호에 대한 정보 등을 추출한다.
복호화부(410)는 SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고, CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할정보를 추출함으로써 트리 구조를 이용하여 CTU를 분할한다.
예컨대, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 MTT의 분할과 관련된 제2 플래그(MTT_split_flag) 및 분할 방향(vertical / horizontal) 및/또는 분할 타입(binary / ternary) 정보를 추출하여 해당 리프 노드를 MTT 구조로 분할한다. 이를 통해 QT의 리프 노드 이하의 각 노드들을 BT 또는 TT 구조로 반복적으로(recursively) 분할한다.
또 다른 예로서, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 CU의 분할 여부를 지시하는 CU 분할 플래그(split_cu_flag)를 추출하고, 해당 블록이 분할된 경우, QT 분할 플래그(split_qt_flag)를 추출한다. 분할 타입이 QT가 아니고 MTT인 경우, MTT 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그(mtt_split_cu_vertical_flag) 및/또는 MTT 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그(mtt_split_cu_binary_flag)를 추가적으로 추출한다. 분할 과정에서 각 노드는 0번 이상의 반복적인 QT 분할 후에 0번 이상의 반복적인 MTT 분할이 발생할 수 있다. 예컨대, CTU는 바로 MTT 분할이 발생하거나, 반대로 다수 번의 QT 분할만 발생할 수도 있다.
다른 예로서, QTBT 구조를 사용하여 CTU를 분할하는 경우, QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT로 더 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할 방향 정보를 추출한다.
한편, 복호화부(410)는 트리 구조의 분할을 통해 복호화하고자 하는 현재블록을 결정하게 되면, 현재블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다. 예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(410)는 현재블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 예측 타입 정보가 인터 예측을 지시하는 경우, 복호화부(410)는 인터 예측정보에 대한 신택스 요소, 즉, 움직임벡터 및 그 움직임벡터가 참조하는 참조픽처를 나타내는 정보를 추출한다.
한편, 복호화부(410)는 잔차신호에 대한 정보로서 현재블록의 양자화된 변환계수들에 대한 정보를 추출한다.
역양자화부(420)는 양자화된 변환계수들을 역양자화하고, 역변환부(430)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재블록에 대한 잔차블록을 생성한다.
또한, 역변환부(430)는 변환블록의 일부 영역(서브블록)만 역변환하는 경우, 변환블록의 서브블록만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 서브블록의 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 서브블록의 위치 정보(cu_sbt_pos_flag)를 추출하여, 해당 서브블록의 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환함으로써 잔차신호들을 복원하고, 역변환되지 않은 영역에 대해서는 잔차신호로 "0"값을 채움으로써 현재블록에 대한 최종 잔차블록을 생성한다.
예측부(440)는 인트라 예측부(442) 및 인터 예측부(444)를 포함할 수 있다. 인트라 예측부(442)는 현재블록의 예측 타입이 인트라 예측일 때 활성화되고, 인터 예측부(444)는 현재블록의 예측 타입이 인터 예측일 때 활성화된다.
인트라 예측부(442)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재블록 주변의 참조 픽셀들을 이용하여 현재블록을 예측한다.
인터 예측부(444)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소를 이용하여 현재블록의 움직임벡터와 그 움직임벡터가 참조하는 참조픽처를 결정하고, 움직임벡터와 참조픽처를 이용하여 현재블록을 예측한다.
가산기(450)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.
필터부(460)는 디블록킹 필터(462) 및 SAO 필터(464)를 포함할 수 있다. 디블록킹 필터(462)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해, 복원된 블록 간의 경계를 디블록킹 필터링한다. SAO 필터(464)는 손실 부호화(lossy coding)으로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해, 디블록킹 필터링 이후의 복원된 블록에 대해 추가적인 필터링을 수행한다. 디블록킹 필터(462) 및 SAO 필터(464)를 통해 필터링된 복원블록은 메모리(470)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
화면 간 예측 부호화/복호화 방법(인터 예측 방법)은 크게 skip 모드(스킵 모드), merge 모드(머지 모드) 및 AMVP(adaptive (or advanced) motion vector predictor) 모드로 구분될 수 있다.
머지 모드(종래 머지 모드)에서, 영상 부호화 장치는 주변 블록들의 움직임 정보를 이용하여 머지 후보 리스트를 구성하고, 가장 최적의 움직임 정보를 선별한 후, 선별된 움직임 정보를 가지는 머지 후보의 인덱스를 영상 복호화 장치로 시그널링한다. 영상 복호화 장치는 전송된 머지 후보 인덱스에 해당하는 머지 후보(주변 블록)를 머지 후보 리스트로부터 선별하고, 선별된 주변 블록의 움직임 정보를 그대로 현재 블록의 움직임 정보로 사용한다.
이러한 종래 머지 모드는 예측 방향에 대한 정보(prediction index), 참조 픽처에 대한 정보(reference picture index), 차분 움직임 벡터(motion vector difference) 및/또는 예측 움직임 벡터(motion vector predictor)와 같은 다수 개의 정보를 머지 후보 인덱스 하나로 표현함으로써 움직임 관련 데이터 양을 효과적으로 감소시키는 장점을 가진다.
다만, 종래 머지 모드는 선별된 주변 블록의 움직임 정보를 그대로 현재 블록의 움직임 정보로 사용하므로, 움직임 추정에 대한 정확성 측면에서 일정한 한계를 가진다고 할 수 있다.
본 발명은 선별된 주변 블록의 움직임 정보에 추가적인 정보(오프셋 정보)를 더 활용하여 현재 블록의 움직임을 추정하는 방법을 통해, 현재 블록의 예측에 대한 정확성을 향상시킴으로써 종래 머지 모드의 한계를 극복하기 위한 발명에 해당한다.
도 5에 도시된 바와 같이, 본 개시의 기술들을 구현할 수 있는 인터 예측부(444)는 선택부(510), 결정부(520), 생성부(530), 판단부(540) 및 리스트 구성부(550)를 포함하여 구성될 수 있다.
영상 부호화 장치로부터 비트스트림이 전송되면, 복호화부(410)는 전송된 비트스트림으로부터 머지 인덱스(merge_idx) 및 오프셋 정보(offset_idx 또는 mvd)를 추출(복호화)한다(S610). 머지 인덱스는 머지 후보 리스트에 포함된 하나 이상의 머지 후보들의 전부 또는 일부 중 어느 하나를 지시하는 정보로서, 이 머지 인덱스는 실시형태에 따라 플래그 형태(예: mmvd_cand_flag)로 구현될 수도 있다.
선택부(510)는 복호화된 머지 인덱스에 대응되는 머지 후보를 머지 후보 리스트로부터 선택한다(S620). 머지 후보 리스트는 현재 블록에 대한 하나 이상의 주변 블록들(머지 후보들)로 구성되며, 머지 후보 리스트를 구성하는 과정은 리스트 구성부(550)에 의해 수행된다.
결정부(520)는 '선택된 머지 후보의 움직임 벡터'와 복호화된 '오프셋 정보'를 이용하여 현재 블록의 움직임 벡터를 결정한다(S630). 구체적으로, 결정부(520)는 선택된 머지 후보의 움직임 벡터가 지시하는 위치를 중심 또는 원점으로 하여 오프셋 정보에 따라 이동된 위치를 현재 블록의 움직임 벡터로 결정한다(S630).
여기서, '선별된 머지 후보의 움직임 벡터'에 오프셋 정보를 적용하여 현재 블록의 움직임 벡터가 결정되므로, '선별된 머지 후보의 움직임 벡터'를 제1움직임 벡터 또는 초기 움직임 벡터 등으로 지칭할 수 있으며, 현재 블록의 움직임 벡터를 제2움직임 벡터 또는 최종 움직임 벡터 등으로 지칭할 수 있다.
이와 대응되는 관점에서, '선별된 머지 후보의 움직임 벡터가 지시하는 위치'를 제1위치 또는 초기 위치 등으로 지칭할 수 있으며, 오프셋 정보에 의해 최종적으로 지시되는 위치(현재 블록의 움직임 벡터에 의해 지시되는 위치)를 제2위치 또는 최종 위치 등으로 지칭할 수 있다.
한편, '오프셋 정보'는 제1움직임 벡터가 지시하는 제1위치를 중심으로 하여 상대적인 위치를 지시하는 정보로서, 이 상대적 위치는 제1움직임 벡터가 지시하는 제1위치에 비해 현재 블록을 정확하게 예측하는데 더욱 최적화된 위치에 해당한다.
오프셋 정보는 제1위치로부터 제2위치까지의 방향(direction)과 크기(magnitude)를 표현하는 다양한 형태로 구현될 수 있다. 예를 들어, 오프셋 정보는 미리 설정된 오프셋 벡터 후보들 중 어느 하나를 지시하는 오프셋 인덱스(offset_idx) 형태로 구현될 수 있다. 또 다른 예로, 오프셋 정보는 제2움직임 벡터와 제1움직임 벡터의 차이에 해당하는 차분 움직임 벡터(mvd) 형태로 구현될 수도 있다. 오프셋 정보의 구현 형태에 대한 상세한 내용은 후술하도록 한다.
현재 블록의 움직임 벡터(제2움직임 벡터)가 결정되면, 생성부(530)는 결정된 제2움직임 벡터가 지시하는 블록을 현재 블록의 예측 블록으로 생성한다(S640). 즉, 생성부(530)는 제2움직임 벡터가 지시하는 블록을 이용하여 현재 블록에 대한 예측을 수행한다. 제2움직임 벡터가 지시하는 블록은 선택된 머지 후보가 참조하는 참조 픽처에 자리한다.
제1움직임 벡터와 오프셋 정보를 이용하여 제2움직임 벡터를 결정하는 방법에 대한 예들이 도 7에 표현되어 있다. 도 7 (a)는 제1움직임 벡터가 단방향(L0) 예측인 경우에 제2움직임 벡터를 결정하는 예를 나타내며, 도 7 (b)는 제1움직임 벡터가 양방향(L0 및 L1) 예측인 경우에 제2움직임 벡터를 결정하는 예를 나타낸다.
도 7에서, L0 및 L1 각각은 참조 픽처 리스트를 나타내며, ref_idx #0는 L0에 포함된 참조 픽처 정보를 나타내고, ref_idx #1은 L1에 포함된 참조 픽처 정보를 나타낸다. current block은 현재 블록을 나타내고, current picture는 현재 블록이 포함된 현재 픽처를 나타낸다. 예측 방향(참조 픽처 리스트), 참조 픽처 정보 및 제1움직임 벡터(MV #0, MV #1) 등은 선택된 머지 후보의 움직임 정보로부터 파악될 수 있다.
도 7 (a)의 단방향 예측의 경우, 인터 예측부(444)는 제1위치(710)를 지시하는 제1움직임 벡터(MV #0)를 중심으로, 오프셋 정보(offset 0)가 지시하는 방향 및 크기에 따라 이동함으로써, 제2위치(720)를 지시하는 제2움직임 벡터(MV 0)를 결정할 수 있다.
도 7 (b)의 양방향 예측의 경우, 인터 예측부(444)는 선별된 머지 후보의 움직임 정보로부터 예측 방향(L0 및 L1), 참조 픽처 정보(ref_idx #0 및 ref_idx #1) 및 제1움직임 벡터(MV #0 및 MV #1)를 양방향 각각에 대해 얻을 수 있다.
L0 방향에 대해, 인터 예측부(444)는 제1위치(710-0)를 지시하는 제1움직임 벡터(MV #0)를 중심으로, 오프셋 정보(offset 0)가 지시하는 방향 및 크기에 따라 이동함으로써, 제2위치(720-0)를 지시하는 제2움직임 벡터(MV 0)를 결정할 수 있다.
L1 방향에 대해, 인터 예측부(444)는 제1위치(710-1)를 지시하는 제1움직임 벡터(MV #1)를 중심으로, 오프셋 정보(offset 0)가 지시하는 방향의 역방향 및 크기에 따라 이동함으로써 제2위치(720-1)를 지시하는 제2움직임 벡터(MV 1)를 결정할 수 있다. 여기서, -offset 0은 L0 방향의 오프셋 정보(offset 0)에 대한 역방향의 오프셋 정보를 의미한다. 실시형태에 따라, L0 방향에 대해 역방향의 오프셋 정보를 적용하고, L1 방향에 대해 (정방향의) 오프셋 정보를 적용할 수도 있다.
이와 같이, 본 발명이 오프셋 정보를 이용하여 움직임 추정을 수행하도록 구성되면, 주변 블록의 움직임 정보를 그대로 사용하는 종래 방법에 비해 더욱 정확한 움직임 추정을 구현할 수 있다.
앞서 설명된 바와 같이, 오프셋 정보는 제1위치로부터 제2위치까지의 방향(direction)과 크기(magnitude)를 표현하는 다양한 형태로 구현될 수 있다. 예를 들어, 오프셋 정보는 인덱스 형태 또는 벡터 형태 등으로 구현될 수 있다.
오프셋 정보가 인덱스 형태(오프셋 인덱스)로 구현되는 경우, 오프셋 인덱스는 미리 설정된 오프셋 벡터 후보들 중 어느 하나를 지시할 수 있다. 영상 부호화 장치는 미리 설정된 오프셋 벡터 후보들을 오프셋 형태로 인덱싱하고, 인덱싱된 결과들 중 어느 하나(오프셋 인덱스)를 영상 복호화 장치로 전송한다.
실시형태에 따라, 오프셋 인덱스는 오프셋 벡터 후보의 움직임 크기와 오프셋 벡터 후보의 움직임 방향을 지시할 수 있다. 예를 들어, 오프셋 인덱스는 오프셋 벡터 후보의 움직임 크기를 지시하는 오프셋 인덱스(예: mmvd_distance_idx) 및 오프셋 벡터 후보의 움직임 방향을 지시하는 오프셋 인덱스(예: mmvd_direction_idx)를 포함하여 구성될 수 있다.
영상 복호화 장치는 전송된 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 제1움직임 벡터에 가산함으로써 제2움직임 벡터를 결정할 수 있다. 이를 제1위치와 제2위치를 중심으로 다시 설명하면, 영상 복호화 장치는 제1위치로부터, 오프셋 인덱스에 의해 특정된 오프셋 벡터 후보가 지시하는 위치(제2위치)를 제2움직임 벡터로 결정할 수 있다.
도 8 및 도 9에는 오프셋 인덱스에 의해 지시될 수 있는 오프셋 벡터 후보들에 대한 다양한 예가 표현되어 있다. 도 8 (a) 및 도 8 (b)는 4-포인트(point)의 오프셋 움직임이 허용되는 경우에 오프셋 벡터 후보들에 대한 예에 해당하며, 도 8 (c) 및 도 8 (d)는 8-포인트 오프셋 움직임이 허용되는 경우에 오프셋 벡터 후보들에 대한 예에 해당한다. 도 8 (e) 및 도 8 (f)는 12-포인트 오프셋 움직임이 허용되는 경우에 오프셋 벡터 후보들에 대한 예에 해당하며, 도 9 (a) 내지 (e)는 16-포인트 오프셋 움직임 허용되는 경우에 오프셋 벡터 후보들에 대한 예에 해당한다.
도 8 및 도 9의 한 격자는 1 픽셀을 의미하고, 바탕과 윤곽선이 모두 검은색인 원은 제1움직임 벡터가 지시하는 제1위치를 나타내며, 검은색 윤곽선으로만 구성된 원은 제2움직임 벡터에 해당할 수 있는 오프셋 벡터 후보들을 나타내고, 검은색 윤곽선으로만 구성된 삼각형은 1/2 픽셀 위치에 자리하는 오프셋 벡터 후보를 나타낸다.
제1위치의 값을 (0,0)인 것으로 가정하면, 4-포인트의 오프셋 움직임이 허용되는 경우(도 8 (a) 및 도 8 (b)), 제1위치(0, 0)를 중심으로 (+1, 0), (-1, 0), (0, -1) 및 (0, +1) 각각에 자리하는 총 4개의 위치가 오프셋 벡터 후보에 해당할 수 있으며(도 8 (a)), 제1위치를 중심으로 (+1, 0), (+2, 0), (-1, 0) 및 (-2, 0) 각각에 자리하는 총 4개의 위치가 오프셋 벡터 후보에 해당할 수 있다(도 8 (b)).
8-포인트 오프셋 움직임이 허용되는 경우(도 8 (c) 및 도 8 (d)), 제1위치(0, 0)를 중심으로 (+1, 0), (-1, 0), (0, -1), (0, +1), (1, -1), (1, +1), (-1, -1) 및 (-1, +1) 각각에 자리하는 총 8개의 위치가 오프셋 벡터 후보에 해당할 수 있으며(도 8 (c)), 제1위치를 중심으로 (+1, 0), (+2, 0), (-1, 0), (-2, 0), (0, -1), (0, -2), (0, +1) 및 (0, +2) 각각에 자리하는 총 8개의 위치가 오프셋 벡터 후보에 해당할 수 있다(도 8 (d)).
12-포인트 오프셋 움직임이 허용되는 경우, 도 8 (e)에 표현된 바와 같이, 제1위치를 중심으로 (+1, 0), (+2, 0), (-1, 0), (-2, 0), (0, -1), (0, -2), (0, +1), (0, +2), (1, -1), (1, +1), (-1, -1) 및 (-1, +1) 각각에 자리하는 총 12개의 위치가 오프셋 벡터 후보에 해당할 수 있다.
또한, 도 8 (f)에 표현된 바와 같이, 제1위치를 중심으로 (+1, 0), (-1, 0), (0, -1), (0, +1), (+1, -1), (+1, +1), (-1, -1) 및 (-1, +1) 각각에 자리하는 8개의 위치들과, (+1/2, 0), (-1/2, 0), (0, -1/2) 및 (0, +1/2) 각각에 자리하는 4개의 위치들이 오프셋 벡터 후보에 해당할 수 있다.
도 9 (a)에 표현된 바와 같이 제1위치를 중심으로 (+2, 0), (-2, 0), (0, -2), (0, +2), (+2, -1), (+2, -2), (+1, -2), (-1, -2), (-2, -2), (-2, -1), (-2, +1), (-2, +2), (-1, +2), (+1, +2), (+2, +2) 및 (+2, +1) 각각에 자리하는 총 16개의 위치들이 오프셋 벡터 후보에 해당할 수 있다.
제1위치를 중심으로 한 상대적인 위치를 표현할 수 있다면, 오프셋 벡터 후보는 도 8 및 도 9에 표현된 예들 이외에도 더욱 다양한 형태를 가질 수 있다. 예를 들어, 오프셋 벡터 후보들이 제1위치를 중심으로 대칭적인 형태를 구성하도록 배열되는 것이 아닌, 비대칭적인 형태를 구성하도록 배열될 수도 있다.
영상 부호화 장치 및 영상 복호화 장치는 다양한 오프셋 벡터 후보들의 배열 형태들 중 실제 현재 블록의 예측에 적용될 배열 형태를 미리 정의할 수 있다. 실제 적용될 오프셋 벡터의 배열 형태는 상위 레벨(sequence-level, picture-level, tile group header, tile header, CTU header, CU header) 중 하나 이상의 위치에서 정의될 수도 있고, 블록 레벨에서 정의될 수도 있다.
오프셋 벡터 후보들의 배열 형태는 오프셋 벡터 후보의 개수, 오프셋 벡터 후보 각각의 움직임 크기(magnitude) 및 오프셋 벡터 후보 각각의 움직임 방향(direction)으로 특정될 수 있다. 따라서, 오프셋 벡터 후보의 개수, 오프셋 벡터 후보 각각의 움직임 크기 및 오프셋 벡터 후보 각각의 움직임 방향 중 하나 이상을 달리 구성하면, 서로 다른 배열 형태가 결정될 수 있다.
영상 부호화 장치는 다양한 배열 형태 중 어느 하나를 결정하는 식별정보를 비트스트림에 포함시켜 전송할 수 있으며, 영상 복호화 장치는 비트스트림에 포함된 식별정보를 이용하여 배열 형태 즉, 미리 설정된 오프셋 벡터 후보들을 결정할 수 있다.
이와 같이, 오프셋 정보가 오프셋 인덱스로 구현되는 경우에 제2움직임 벡터를 결정하는 방법을 도 7을 참조하여 설명하면 다음과 같다.
도 7 (a)의 단방향 예측의 경우, 인터 예측부(444)는 제1움직임 벡터(MV #0)를 중심으로 오프셋 인덱스가 지시하는 오프셋 벡터 후보(offset 0)에 따라 이동함으로써 또는 제1움직임 벡터(MV #0)에 오프셋 인덱스가 지시하는 오프셋 벡터 후보(offset 0)를 가산함으로써 제2움직임 벡터(MV 0)를 결정할 수 있다.
도 7 (b)의 양방향 예측의 경우, L0 방향에 대해, 인터 예측부(444)는 제1움직임 벡터(MV #0)를 중심으로 오프셋 인덱스가 지시하는 오프셋 벡터 후보(offset 0)에 따라 이동함으로써 또는 제1움직임 벡터(MV #0)에 오프셋 인덱스가 지시하는 오프셋 벡터 후보(offset 0)를 가산함으로써 제2움직임 벡터(MV 0)를 결정할 수 있다. L1 방향에 대해, 인터 예측부(444)는 제1움직임 벡터(MV #1)를 중심으로 오프셋 인덱스가 지시하는 오프셋 벡터 후보(-offset 0)에 따라 이동함으로써 또는 제1움직임 벡터(MV #1)에 오프셋 인덱스가 지시하는 오프셋 벡터 후보(-offset)를 가산함으로써 제2움직임 벡터(MV 1)를 결정할 수 있다.
실시 형태에 따라, 두 참조 픽처 ref_idx #0, ref_idx #1와 현재 픽처 사이의 시간축 거리를 기준으로 오프셋 벡터에 대한 스케일링(scaling)이 구현될 수 있다. 인터 예측부(444)는 ref_idx #0와 현재 픽처 사이의 시간축 거리(POC(picture order count) 차이) 및 ref_idx #1와 현재 픽처 사이의 시간축 거리(POC 차이)를 기준으로 오프셋 벡터 후보를 스케일링하고, 스케일링된 오프셋 벡터 후보를 제1움직임 벡터(MV #1)에 가산함으로써 제2움직임 벡터(MV 1)를 결정할 수 있다.
한편, 오프셋 정보가 오프셋 벡터로 구현되는 경우, 영상 부호화 장치는 제2위치 값과 제1위치 값 사이의 차분에 해당하는 벡터를 생성하여 전송할 수 있다. 이를 달리 표현하면, 영상 부호화 장치는 선택된 머지 인덱스가 지시하는 위치(제1위치)로부터 제2위치로의 direction 및 magnitude를 나타내는 오프셋 벡터를 전송할 수 있다.
영상 복호화 장치는 전송된 오프셋 벡터를 제1움직임 벡터에 적용하여 제2움직임 벡터를 결정할 수 있다. 오프셋 벡터는 제1위치를 원점으로 하여 제2위치를 나타내기 위한 정보에 해당하므로, 차분 움직임 벡터(motion vector difference, mvd)로 이해될 수 있다.
오프셋 벡터는 magnitude를 나타내는 신택스들과 direction을 나타내는 신택스로 표현될 수 있다. 또한, 오프셋 벡터는 움직임의 magnitude 및 direction을 나타내는 다른 다양한 형태의 신택스들로 표현될 수도 있다.
아래 표 1은 오프셋 벡터를, magnitude를 나타내는 신택스들과 direction을 나타내는 신택스로 표현하는 일 예를 보인다.
Figure pat00001
위 표 1에서, abs_mvd_greater0_flag, abs_mvd_greater1_flag 및 abs_mvd_minus2는 오프셋 벡터(mvd)의 magnitude를 나타내는 신택스들이며, mvd_sign_flag는 오프셋 벡터의 direction을 나타내는 신택스이다.
실시 형태에 따라, 오프셋 벡터에 mv resolution 정보를 추가적으로 이용하는 실시예도 구현될 수 있다. mv resolution은 오프셋 벡터의 magnitude resolution을 의미하며, 1/4 픽셀, 1 픽셀, 4 픽셀 중 하나에 해당할 수 있다.
mv resolution 정보는 영상 부호화 장치로부터 영상 복호화 장치로 추가적으로 시그널링되며, 오프셋 벡터의 magnitude resolution을 나타내는 다양한 형태(플래그, 인덱스 등)로 구성될 수 있다. 이하에서는, mv resolution이 플래그 형태로 구현되는 예에 대해 설명하도록 한다.
1/4 픽셀 여부를 지시하는 첫 번째 플래그가 on이면 mv resolution을 1/4 픽셀로 설정하고, 이 첫 번째 플래그가 off이면 두 번째 플래그를 추가적으로 분석하여 1 픽셀인지 또는 4 픽셀인지 판단한다.
이와 같은 판단 과정을 거쳐 mv resolution이 결정되면, 결정된 mv resolution 및 magnitude에 의해 실제 움직임이 정해진다. 예를 들어, 벡터의 magnitude가 '2'이고, mv resolution이 '4 픽셀'이라면, 실제 움직임은 '8 픽셀'에 해당한다. 또한, 벡터의 magnitude가 '4'이고, mv resolution이 '1/4 픽셀'이라면, 실제 움직임은 '1 픽셀'에 해당한다.
이와 같이, 오프셋 정보가 오프셋 벡터로 구현되는 경우에 제2움직임 벡터를 결정하는 방법을 도 7을 참조하여 설명하면 다음과 같다.
도 7 (a)의 단방향 예측의 경우, 인터 예측부(444)는 제1움직임 벡터(MV #0)를 중심으로 오프셋 벡터(offset 0)가 지시하는 magnitude 및 direction에 따라 이동함으로써 제2움직임 벡터(MV 0)를 결정할 수 있다.
도 7 (b)의 양방향 예측의 경우, L0 방향에 대해, 인터 예측부(444)는 제1움직임 벡터(MV #0)를 중심으로 오프셋 벡터(offset 0)가 지시하는 magnitude 및 direction에 따라 이동함으로써 제2움직임 벡터(MV 0)를 결정할 수 있다. L1 방향에 대해, 인터 예측부(444)는 제1움직임 벡터(MV #1)를 중심으로 오프셋 벡터(-offset 0)가 지시하는 magnitude 및 direction에 따라 이동함으로써 제2움직임 벡터(MV 1)를 결정할 수 있다.
실시 형태에 따라, 두 참조 픽처 ref_idx #0, ref_idx #1와 현재 픽처 사이의 시간축 거리를 기준으로 오프셋 벡터에 대한 스케일링(scaling)이 구현될 수 있다. 예를 들어, 현재 픽처와 L0의 참조 픽처 ref_idx #0 사이의 POC(picture order counter)가 1이고, 현재 픽처와 L1의 참조 픽처 ref_idx #1 사이의 POC가 2이면, L0 방향의 오프셋 벡터는 (x, y)가 될 수 있으며, L1 방향의 오프셋 벡터는 (-2*x, -2*y)가 될 수 있다.
영상 부호화 장치는 오프셋 정보에 더하여 예측 방향 정보를 별도로 전송하도록 구성될 수 있다. 영상 복호화 장치는 전송된 예측 방향 정보를 이용하여 현재 블록의 예측 방향을 판단하고, 이를 기반으로 각 방향에 대한 오프셋 정보들을 적용하거나 해당 방향에 대한 주변 블록들만으로 머지 후보 리스트를 구성할 수 있다.
이하에서는, 예측 방향 정보를 통해 판단된 예측 방향 각각에 대한 오프셋 정보들을 별도로 적용하는 실시예에 대해 도 10 및 도 11을 이용하여 먼저 설명한 후, 예측 방향 정보를 통해 판단된 예측 방향과 대응되는 주변 블록들만으로 머지 후보 리스트를 구성하는 실시예에 대해 도 12를 이용하여 후술하도록 한다.
도 10에 표현된 바와 같이, 복호화부(410)는 비트스트림으로부터 머지 인덱스(merge_idx)와 예측 방향 정보(pred_idx)를 복호화한다(S1010). 여기서, 예측 방향 정보는 선별된 머지 후보의 움직임 정보로부터 도출되는 정보가 아닌, 영상 부호화 장치로부터 별도로 전송되는 정보에 해당한다.
영상 부호화 장치로부터 merge_idx와 pred_idx가 전송되는 순서와 관련하여, merge_idx가 먼저 전송되고 pred_idx가 나중에 전송되는 경우 및 pred_idx가 먼저 전송되고 merge_idx가 나중에 전송되는 경우 모두 구현 가능하다.
판단부(540)는 복호화된 예측 방향 정보를 기초로 현재 블록의 예측 방향을 판단한다(S1020, S1040). 예측 방향 정보는 단방향 혹은 양방향을 구분하는 플래그이거나, L0, L1, 및 양방향 중 하나를 나타내는 값일 수도 있다.
예측 방향 정보가 L0, L1 및 양방향 중 하나를 나타내는 값인 경우, 판단부(540)는 도 10에 표현된 바와 같이 '예측 방향 정보가 L1 방향과 같지 않은지 여부를 판단하는 과정(S1020)'과 '예측 방향 정보가 L0 방향과 같지 않은지 여부를 판단하는 과정(S1040)'을 수행하여 현재 블록의 예측 방향을 판단한다.
S1020 과정을 통해 예측 방향 정보가 L1 방향과 같지 않다고 판단된 경우, 예측 방향 정보가 지시하는 예측 방향은 L0 방향에 해당하거나 양방향에 해당할 수 있다(적어도 L0 방향에 해당). 이 경우, 영상 부호화 장치는 L0 방향에 대한 오프셋 정보(offset 0)를 비트스트림에 포함시켜 전송하고, 영상 복호화 장치는 L0 방향에 대한 오프셋 정보(offset 0)를 비트스트림으로부터 복호화할 수 있다(S1030). 여기서, offset 0은 L0 방향에 대한 offset_idx 및 mvd 중 어느 하나에 해당할 수 있다.
S1040 과정을 통해 예측 방향 정보가 L0 방향과 같지 않다고 판단된 경우, 예측 방향 정보가 지시하는 예측 방향은 양방향에 해당한다. 이 경우, 영상 부호화 장치는 L1 방향에 대한 오프셋 정보(offset 1)를 비트스트림에 포함시켜 전송하고, 영상 복호화 장치는 L1 방향에 대한 오프셋 정보(offset 1)를 비트스트림으로부터 복호화할 수 있다(S1050). 여기서, offset 1은 L1 방향에 대한 offset_idx 및 mvd 중 어느 하나에 해당할 수 있다.
S1020 과정으로 돌아가, 예측 방향 정보가 L1 방향과 같다고 판단된 경우, 예측 방향 정보가 지시하는 예측 방향은 L1 단방향에 해당한다. 따라서, 영상 부호화 장치는 L1 방향에 대한 오프셋 정보만을 비트스트림에 포함시켜 전송하고, 영상 복호화 장치는 L1 방향에 대한 오프셋 정보를 비트스트림으로부터 복호화할 수 있다(S1050).
S1040 과정에서, 예측 방향 정보가 L0 방향과 같다고 판단된 경우, 예측 방향 정보가 지시하는 예측 방향은 L0 단방향에 해당한다. 따라서, 영상 부호화 장치는 L0 방향에 대한 오프셋 정보만을 비트스트림에 포함시켜 전송하고, 영상 부호화 장치는 L0 방향에 대한 오프셋 정보를 비트스트림으로부터 복호화할 수 있다.
S1010 내지 S1050 과정들을 통해 오프셋 정보들이 복호화되면, 머지 인덱스에 대응되는 머지 후보를 선택하는 과정, 제2움직임 벡터를 결정하는 과정들이 오프셋 정보가 해당하는 방향 각각에 대해 수행될 수 있다.
예를 들어, 오프셋 정보가 오프셋 인덱스(offset_idx) 형태로 구현되는 경우, L1 방향에 대한 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 L1 방향에 대한 제1움직임 벡터에 적용하여 L1 방향에 대한 제2움직임 벡터가 결정될 수 있다. 또한, L0 방향에 대한 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 L0 방향에 대한 제1움직임 벡터에 적용하여 L0 방향에 대한 제2움직임 벡터가 결정될 수 있다.
또 다른 예와 관련하여, 오프셋 정보가 오프셋 벡터(mvd) 형태로 구현되는 경우가 도 11에 표현되어 있다. 도 11에서, mvd0은 L0 방향에 대한 오프셋 벡터를 나타내며, mvd1은 L1 방향에 대한 오프셋 벡터를 나타낸다.
도 11에 표현된 바와 같이, L0 방향에 대한 제1움직임 벡터(MV #0)가 지시하는 제1위치(710-0)로부터 제2위치(720-0)까지, L0 방향에 대한 오프셋 벡터(mvd0)에 따라 이동하여 L0 방향에 대한 제2움직임 벡터(MV 0)가 결정될 수 있다. 또한, L1 방향에 대한 제1위치(710-1)로부터 제2위치(720-1)까지, L1 방향에 대한 오프셋 벡터(mvd1)에 따라 이동하여 L1 방향에 대한 제2움직임 벡터(MV 1)가 결정될 수 있다.
예측 방향 정보가 양방향 예측을 지시하여 제2움직임 벡터가 양방향 각각에 대해 결정된 경우, 생성부(530)는 두 개의 제2움직임 벡터들을 평균하거나 제2움직임 벡터들을 대상으로 가중 예측을 수행함으로써 현재 블록에 대한 예측 블록을 생성할 수 있다.
한편, 예측 방향 정보는 머지 후보 리스트를 구성하는 방법에 대한 기준으로 이용될 수도 있다. 예측 방향 정보를 이용하여 머지 후보 리스트를 구성하는 방법에 대한 일 실시예가 도 12에 표현되어 있다.
도 12에 표현된 바와 같이, 비트스트림으로부터 머지 인덱스(merge_idx)와 예측 방향 정보(pred_idx)를 복호화하는 과정(S1210) 및 복호화된 예측 방향 정보가 L0 방향과 같지 않은지 여부를 판단하는 과정(S1220)이 수행될 수 있다.
영상 부호화 장치로부터 merge_idx와 pred_idx가 전송되는 순서와 관련하여, merge_idx가 먼저 전송되고 pred_idx가 나중에 전송되는 경우 및 pred_idx가 먼저 전송되고 merge_idx가 나중에 전송되는 경우 모두 구현 가능하다.
예측 방향 정보가 L0 방향과 같다고 판단되는 경우, 현재 블록의 예측 방향은 L0 단방향에 해당한다. 따라서, 리스트 구성부(550)는 현재 블록의 주변 블록들 중 L0의 예측 방향을 가지는 하나 이상의 주변 블록들로 머지 후보 리스트를 구성한다(S1230). 즉, 리스트 구성부(550)는 L0의 예측 방향을 가지는 주변 블록들이 머지 후보로 포함되도록 머지 후보 리스트를 구성한다.
이와 달리, 예측 방향 정보가 L0 방향과 같지 않다고 판단된 경우, 현재 블록의 예측 방향은 L1 단방향에 해당하거나 양방향에 해당할 수 있다. 따라서, 예측 방향 정보가 L1 방향과 같지 않은지 여부를 판단하는 과정(S1240)이 더 수행된다.
예측 방향 정보가 L1 방향과 같다고 판단되는 경우, 현재 블록의 예측 방향은 L1 단방향에 해당한다. 따라서, 리스트 구성부(550)는 L1의 예측 방향을 가지는 주변 블록들이 머지 후보로 포함되도록 머지 후보 리스트를 구성한다(S1250).
이와 달리, 예측 방향 정보가 L1 방향과 같다고 판단되는 경우, 현재 블록의 예측 방향은 양방향에 해당한다. 따라서, 리스트 구성부(550)는 양방향의 예측 방향을 가지는 주변 블록들이 머지 후보로 포함되도록 머지 후보 리스트를 구성한다(S1260).
이와 같이, 머지 후보 리스트를 구성하는 기준으로 예측 방향 정보를 이용하는 경우, 예측 방향 정보와 대응되는 예측 방향을 가지는 주변 블록들만을 머지 후보로 포함시켜 머지 후보 리스트를 구성할 수 있다. 따라서, 머지 후보 리스트를 구성하는 방법이 현재 블록의 실제 예측 방향에 더욱 적응적으로 구현될 수 있다.
이상에서 설명된 방법들의 활성화/비활성화는 상위 레벨(sequence-level, picture-level, tile group header, tile header, CTU header, CU header) 중 하나 이상의 위치에서 정의되는 신택스 요소(예를 들어, sps_mmvd_enabled_flag) 값으로 관리될 수 있다. 또한, 이상에서 설명된 방법들은 종래 머지 모드(regular merge)를 변경한 모드로 구현되거나, 종래 머지 모드와는 별도의 새로운 모드(제안된 모드, mmvd: merge with mvd)로 구현될 수도 있다.
종래 머지 모드를 변경한 모드로 구현되는 경우에는 본 발명에서 제안하는 다양한 방법들을 위한 별도의 신택스가 요구되지 않는다. 그러나, 종래 머지 모드와는 별도의 새로운 모드로 구현되는 경우에는 이 다양한 방법들을 위한 별도의 신택스가 요구된다.
도 13은 종래 머지 모드와 제안된 모드가 동일한 그룹으로 구분된 경우에 대한 신택스 구조를 나타내며, 도 14는 종래 머지 모드와 제안된 모드가 별도의 그룹으로 구분된 경우에 대한 신택스 구조를 나타낸다.
먼저, 도 13에 표현된 바와 같이, 머지 플래그(merge_flag)를 파싱 및 복호화하는 과정(S1310)과 이 머지 플래그를 판단하는 과정(S1320)이 수행된다. 여기서, 머지 플래그는 현재 블록이 종래 머지 모드와 제안된 모드가 포함된 그룹으로 예측되었는지 여부를 나타내는 정보에 해당한다.
머지 플래그에 대한 판단 결과, 현재 블록의 예측 모드가 종래 머지 모드 또는 제안된 모드 중 어느 하나에 해당하는 경우, 제안된 모드로 예측되었는지 여부를 나타내는 플래그(proposed_flag, mmvd_flag)를 파싱 및 복호화하는 과정(S1330)과 mmvd_flag를 판단하는 과정(S1340)이 수행된다.
그 결과. 현재 블록이 종래 머지 모드로 예측된 경우에는 현재 블록에 대한 종래 머지 모드(merge mode) 예측이 수행되며, 현재 블록이 제안된 모드로 예측된 경우 현재 블록에 대한 제안된 모드(proposed mode, mmvd mode) 예측이 수행된다.
S1320 단계로 돌아가, 머지 플래그에 대한 판단 결과, 현재 블록이 종래 머지 모드 또는 제안된 모드에 해당하지 않는 경우, 현재 블록의 인터 예측과 인트라 예측을 구분하는 플래그(pred_mode_flag)를 파싱 및 복호화하는 과정(S1350)과 해당 플래그를 판단하는 과정(S1360)이 수행된다.
현재 블록이 인터 모드(AMVP mode)로 예측된 경우에는 현재 블록에 대한 인터 모드(AMVP mode) 예측이 수행되며, 현재 블록이 인트라 모드로 예측된 경우에는 현재 블록에 대한 인트라 모드 예측이 수행된다.
다음으로, 종래 머지 모드와 제안된 모드가 별도의 그룹으로 구분된 경우에 대한 신택스 구조를 설명하면 다음과 같다.
도 14에 표현된 바와 같이, 머지 플래그(regular_merge_flag)를 파싱 및 복호화하는 과정(S1410)과 머지 플래그를 판단하는 과정(S1420)이 전술된 바와 동일하게 수행된다. 도 14의 실시예는 종래 머지 모드와 제안된 모드가 서로 다른 그룹으로 구분된 경우에 해당하므로, 도 14의 머지 플래그는 현재 블록이 종래 머지 모드로 예측되었는지 여부를 나타내는 정보에 해당한다.
머지 플래그에 대한 판단 결과, 현재 블록이 종래 머지 모드로 예측된 것으로 판단된 경우(regular_merge_flag=1), 해당 현재 블록에 대한 종래 머지 모드 예측(merge mode)이 수행된다. 이와 달리, 현재 블록이 종래 머지 모드로 예측되지 않은 것으로 판단된 경우(regular_merge_flag=0), 현재 블록이 제안된 모드로 예측되었는지 여부를 나타내는 플래그(mmvd_flag)를 파싱 및 복호화하는 과정(S1430)과 mmvd_flag를 판단하는 과정(S1440)이 수행된다.
현재 블록이 제안된 모드로 예측된 경우, 현재 블록에 대한 제안된 모드의 예측(mmvd mode)이 수행된다. 이와 달리, 현재 블록이 제안된 모드로 예측되지 않은 경우, pred_mode_flag를 파싱 및 복호화하는 과정(S1450)과 해당 플래그를 분석하는 과정(S1460)을 통해 AMVP 모드 또는 인트라 모드의 예측이 수행된다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
130: 감산기 170, 450: 가산기
120, 440: 예측부 180, 460: 필터부

Claims (18)

  1. 비트스트림으로부터, 머지 인덱스(merge index) 및 오프셋(offset) 정보를 추출하는 단계;
    현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 인덱스에 대응되는 머지 후보를 선택하는 단계;
    상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계; 및
    상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법.
  2. 제1항에 있어서,
    상기 오프셋 정보는,
    미리 설정된 오프셋 벡터 후보들 중 어느 하나를 지시하는 오프셋 인덱스이며,
    상기 결정하는 단계는,
    상기 머지 후보의 움직임 벡터에 상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 가산하여 상기 현재 블록의 움직임벡터를 결정하는 것을 특징으로 하는 인터 예측 방법.
  3. 제2항에 있어서,
    상기 오프셋 인덱스는,
    상기 오프셋 벡터 후보의 움직임 크기를 지시하는 오프셋 인덱스 및 상기 오프셋 벡터 후보의 움직임 방향을 지시하는 오프셋 인덱스를 포함하는 것을 특징으로 하는 인터 예측 방법.
  4. 제2항에 있어서,
    상기 머지 후보는,
    L0 및 L1 의 양방향 예측을 지시하고,
    상기 결정하는 단계는,
    상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 상기 머지 후보의 특정 예측 방향에 대한 움직임벡터에 가산하여, 상기 특정 예측 방향에 대한 상기 현재 블록의 움직임벡터를 결정하고,
    스케일링된 오프셋 벡터 후보를 상기 머지 후보의 다른 예측 방향에 대한 움직임벡터에 가산하여, 상기 다른 예측 방향에 대한 상기 현재 블록의 움직임벡터를 결정하며,
    상기 스케일링된 오프셋 벡터 후보는,
    상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보가, 상기 특정 예측 방향의 참조 픽처와 상기 현재 픽처 사이의 시간축 거리 및 상기 다른 예측 방향의 참조 픽처와 상기 현재 픽처 사이의 시간축 거리를 기준으로 스케일링된 것을 특징으로 하는 인터 예측 방법.
  5. 제1항에 있어서,
    상기 추출하는 단계는,
    상기 비트스트림에 포함된 인에이블(enabled) 정보가 활성을 지시하는 경우에 수행되며,
    상기 인에이블 정보는,
    상기 비트스트림의 시퀀스 레벨 헤더(sequence-level header)에 포함되는 것을 특징으로 하는 인터 예측 방법.
  6. 제1항에 있어서,
    상기 추출하는 단계는,
    상기 비트스트림에 포함된 머지 플래그가 상기 현재 블록이 머지 모드로 예측되지 않음을 지시하고, 상기 비트스트림에 포함된 mmvd 플래그가 상기 현재 블록이 mmvd 모드로 예측됨을 지시하는 경우에 수행되며,
    상기 mmvd 플래그는,
    상기 머지 플래그가 상기 현재 블록이 머지 모드로 예측되지 않음을 지시하는 경우에 상기 비트스트림에 포함되는 것을 특징으로 하는 인터 예측 방법.
  7. 제1항에 있어서,
    상기 오프셋 정보는,
    상기 머지 후보의 움직임 벡터가 지시하는 위치를 원점으로 하여, 상기 현재 블록의 움직임 벡터가 지시하는 위치를 나타내기 위한 오프셋 벡터인 것을 특징으로 하는 인터 예측 방법.
  8. 제1항에 있어서,
    상기 비트스트림에 포함된 예측 방향 정보를 기초로 상기 현재 블록의 예측 방향을 판단하는 단계; 및
    상기 주변 블록들 중 상기 판단된 예측 방향에 대응되는 예측 방향을 가지는 주변 블록으로 상기 머지 후보 리스트를 구성하는 단계를 더 포함하는 것을 특징으로 하는 인터 예측 방법.
  9. 제1항에 있어서,
    상기 비트스트림에 포함된 예측 방향 정보를 기초로 상기 현재 블록의 예측 방향을 판단하는 단계를 더 포함하고,
    상기 추출하는 단계는,
    상기 판단된 예측 방향 각각에 대한 오프셋 정보를 추출하는 것을 특징으로 하는 인터 예측 방법.
  10. 비트스트림으로부터, 머지 인덱스(merge index) 및 오프셋(offset) 정보를 추출하는 복호화부;
    현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 인덱스에 대응되는 머지 후보를 선택하는 선택부;
    상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 결정부; 및
    상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 생성부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  11. 제10항에 있어서,
    상기 오프셋 정보는,
    미리 설정된 오프셋 벡터 후보들 중 어느 하나를 지시하는 오프셋 인덱스이며,
    상기 결정부는,
    상기 머지 후보의 움직임 벡터에 상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 가산하여 상기 현재 블록의 움직임 벡터를 결정하는 것을 특징으로 하는 영상 복호화 장치.
  12. 제11항에 있어서,
    상기 오프셋 인덱스는,
    상기 오프셋 벡터 후보의 움직임 크기를 지시하는 오프셋 인덱스 및 상기 오프셋 벡터 후보의 움직임 방향을 지시하는 오프셋 인덱스를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  13. 제11항에 있어서,
    상기 머지 후보는,
    L0 및 L1 의 양방향 예측을 지시하고,
    상기 결정부는,
    상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 상기 머지 후보의 특정 예측 방향에 대한 움직임벡터에 가산하여, 상기 특정 예측 방향에 대한 상기 현재 블록의 움직임벡터를 결정하고,
    스케일링된 오프셋 벡터 후보를 상기 머지 후보의 다른 예측 방향에 대한 움직임벡터에 가산하여, 상기 다른 예측 방향에 대한 상기 현재 블록의 움직임벡터를 결정하며,
    상기 스케일링된 오프셋 벡터 후보는,
    상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보가, 상기 특정 예측 방향의 참조 픽처와 상기 현재 픽처 사이의 시간축 거리 및 상기 다른 예측 방향의 참조 픽처와 상기 현재 픽처 사이의 시간축 거리를 기준으로 스케일링된 것을 특징으로 하는 영상 복호화 장치.
  14. 제10항에 있어서,
    상기 추출부는,
    상기 비트스트림에 포함된 인에이블(enabled) 정보가 활성을 지시하는 경우에 상기 머지 인덱스 및 상기 오프셋 정보를 추출하며,
    상기 인에이블 정보는,
    상기 비트스트림의 시퀀스 레벨 헤더(sequence-level header)에 포함되는 것을 특징으로 하는 영상 복호화 장치.
  15. 제10항에 있어서,
    상기 추출부는,
    상기 비트스트림에 포함된 머지 플래그가 상기 현재 블록이 머지 모드로 예측되지 않음을 지시하고, 상기 비트스트림에 포함된 mmvd 플래그가 상기 현재 블록이 mmvd 모드로 예측됨을 지시하는 경우에 상기 머지 인덱스 및 상기 오프셋 정보를 추출하며,
    상기 mmvd 플래그는,
    상기 머지 플래그가 상기 현재 블록이 머지 모드로 예측되지 않음을 지시하는 경우에 상기 비트스트림에 포함되는 것을 특징으로 하는 영상 복호화 장치.
  16. 제10항에 있어서,
    상기 오프셋 정보는,
    상기 머지 후보의 움직임 벡터가 지시하는 위치를 원점으로 하여, 상기 현재 블록의 움직임 벡터가 지시하는 위치를 나타내기 위한 오프셋 벡터인 것을 특징으로 하는 영상 복호화 장치.
  17. 제10항에 있어서,
    상기 비트스트림에 포함된 예측 방향 정보를 기초로 상기 현재 블록의 예측 방향을 판단하는 판단부; 및
    상기 주변 블록들 중 상기 판단된 예측 방향에 대응되는 예측 방향을 가지는 주변 블록으로 상기 머지 후보 리스트를 구성하는 리스트 구성부를 더 포함하는 것을 특징으로 하는 영상 복호화 장치.
  18. 제10항에 있어서,
    상기 비트스트림에 포함된 예측 방향 정보를 기초로 상기 현재 블록의 예측 방향을 판단하는 판단부를 더 포함하고,
    상기 복호화부는,
    상기 판단된 예측 방향 각각에 대한 오프셋 정보를 추출하는 것을 특징으로 하는 영상 복호화 장치.
KR1020190067741A 2018-11-14 2019-06-10 인터 예측 방법 및 이를 이용한 영상 복호화 장치 KR20200056272A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/KR2019/015548 WO2020101392A1 (ko) 2018-11-14 2019-11-14 인터 예측 방법 및 이를 이용한 영상 복호화 장치
CN201980088133.XA CN113273204B (zh) 2018-11-14 2019-11-14 帧间预测方法和使用该方法的图片解码装置
US17/320,419 US11671584B2 (en) 2018-11-14 2021-05-14 Inter-prediction method and video decoding apparatus using the same
US18/139,384 US11962764B2 (en) 2018-11-14 2023-04-26 Inter-prediction method and video decoding apparatus using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180140071 2018-11-14
KR1020180140071 2018-11-14

Publications (1)

Publication Number Publication Date
KR20200056272A true KR20200056272A (ko) 2020-05-22

Family

ID=70913981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190067741A KR20200056272A (ko) 2018-11-14 2019-06-10 인터 예측 방법 및 이를 이용한 영상 복호화 장치

Country Status (2)

Country Link
US (1) US11671584B2 (ko)
KR (1) KR20200056272A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021230661A1 (ko) 2020-05-12 2021-11-18 주식회사 엘지에너지솔루션 리튬 이차전지용 전해액 및 이를 포함하는 리튬 이차전지
WO2023200233A1 (ko) * 2022-04-12 2023-10-19 엘지전자 주식회사 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019151093A1 (en) * 2018-01-30 2019-08-08 Sharp Kabushiki Kaisha Systems and methods for performing motion vector prediction for video coding using motion vector predictor origins

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102329126B1 (ko) 2014-03-14 2021-11-19 삼성전자주식회사 인터 레이어 비디오의 복호화 및 부호화를 위한 머지 후보 리스트 구성 방법 및 장치
CN111741310B (zh) 2014-10-31 2024-03-19 三星电子株式会社 用于对运动矢量进行编码/解码的方法和装置
WO2017183751A1 (ko) 2016-04-22 2017-10-26 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
CN117528107A (zh) 2016-11-28 2024-02-06 英迪股份有限公司 图像编码方法、图像解码方法及用于传送比特流的方法
CN114205620B (zh) * 2018-02-28 2023-07-25 三星电子株式会社 编码方法及其装置以及解码方法及其装置
KR20200133327A (ko) * 2018-04-12 2020-11-27 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
EP3844950A4 (en) * 2018-08-28 2022-05-25 FG Innovation Company Limited DEVICE AND METHOD FOR ENCODING VIDEO DATA
US11070796B2 (en) * 2018-09-28 2021-07-20 Qualcomm Incorporated Ultimate motion vector expression based pruning for video coding
US10999589B2 (en) * 2018-10-04 2021-05-04 Tencent America LLC Method and apparatus for video coding
WO2020084461A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Restrictions on decoder side motion vector derivation based on coding information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021230661A1 (ko) 2020-05-12 2021-11-18 주식회사 엘지에너지솔루션 리튬 이차전지용 전해액 및 이를 포함하는 리튬 이차전지
WO2023200233A1 (ko) * 2022-04-12 2023-10-19 엘지전자 주식회사 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Also Published As

Publication number Publication date
CN113273204A (zh) 2021-08-17
US11671584B2 (en) 2023-06-06
US20210274164A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
AU2016253620B2 (en) Method and apparatus for encoding image and method and apparatus for decoding image
KR20210134554A (ko) 영상 부호화 또는 복호화를 위한 장치 및 방법
US11671584B2 (en) Inter-prediction method and video decoding apparatus using the same
KR20230154413A (ko) 인터 예측 방법 및 영상 복호화 장치
KR20210018137A (ko) 동영상 데이터의 인트라 예측 코딩을 위한 방법 및 장치
KR20210035036A (ko) 시간적 움직임벡터 예측자 유도 방법 및 영상 복호화 장치
KR20210000635A (ko) 크로마블록의 블록 벡터 유도 방법 및 영상 복호화 장치
US11962764B2 (en) Inter-prediction method and video decoding apparatus using the same
KR20200110164A (ko) 인트라 블록 복사를 이용하는 영상 부호화 및 복호화
KR20190142717A (ko) 인터 예측 방법 및 이를 이용한 영상 복호화 장치
KR20220071939A (ko) 비디오 부호화 및 복호화를 위한 장치 및 방법
KR20220071131A (ko) 서브블록단위 인트라 예측을 이용하는 영상 부호화 및 복호화 방법과 장치
CN116134820A (zh) 基于补丁本的视频数据编码和解码的方法和装置
KR20210002321A (ko) 해상도를 적응적으로 설정하는 방법 및 영상 복호화 장치
KR20210001852A (ko) 양방향 예측 가중치 인덱스를 유도하는 방법 및 영상 복호화 장치
CN113273204B (zh) 帧间预测方法和使用该方法的图片解码装置
KR20200081207A (ko) 움직임정보 표현 방법 및 이를 이용한 영상 복호화 장치
KR20220017373A (ko) 비디오 데이터의 패치북 기반 부호화 및 복호화를 위한 방법 및 장치
KR20200081186A (ko) 시간적 후보의 움직임 벡터 유도 방법 및 이를 이용한 영상 복호화 장치
KR20210038289A (ko) 참조샘플 구성 방법 및 영상 복호화 장치
KR20210037506A (ko) 크로마블록의 잔차블록 복원 방법 및 영상 복호화 장치
KR20220118351A (ko) 인트라 예측 신호와 인터 예측 신호의 가중 합을 이용한 예측 블록을 생성하는 방법 및 이를 이용한 장치
KR20220071129A (ko) 적응적 참조화소 선택을 이용한 영상 부호화 및 복호화 방법
CN114009031A (zh) 用于还原色度块的方法和用于解码影像的装置
KR20220077096A (ko) 블록병합을 이용하는 비디오 코딩 방법 및 장치