KR20210035036A - Method and apparatus for deriving temporal motion vector predictor - Google Patents

Method and apparatus for deriving temporal motion vector predictor Download PDF

Info

Publication number
KR20210035036A
KR20210035036A KR1020200055649A KR20200055649A KR20210035036A KR 20210035036 A KR20210035036 A KR 20210035036A KR 1020200055649 A KR1020200055649 A KR 1020200055649A KR 20200055649 A KR20200055649 A KR 20200055649A KR 20210035036 A KR20210035036 A KR 20210035036A
Authority
KR
South Korea
Prior art keywords
block
motion vector
collocated
col
picture
Prior art date
Application number
KR1020200055649A
Other languages
Korean (ko)
Inventor
김재일
이선영
고경환
나태영
신재섭
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Publication of KR20210035036A publication Critical patent/KR20210035036A/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/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
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

The present invention relates to a method for deriving a temporal motion vector and an image decoding device. Provided according to an embodiment of the present invention is a method for deriving a temporal motion vector predictor for each of one or more sub blocks in a collocated block corresponding to the current block. The method includes: a step of determining the collocated block in a collocated picture based on the motion information and availability of a target surrounding block as one of surrounding blocks neighboring the current block; a step of setting the base motion vector of the collocated block in accordance with the prediction mode of the collocated block; and a step of deriving the temporal motion vector predictor from the base motion vector or the motion vector of the sub blocks in the collocated block in accordance with the prediction mode of at least one sub block in the collocated block.

Description

시간적 움직임벡터 예측자 유도 방법 및 영상 복호화 장치{METHOD AND APPARATUS FOR DERIVING TEMPORAL MOTION VECTOR PREDICTOR}Method for deriving temporal motion vector predictor and image decoding apparatus {METHOD AND APPARATUS FOR DERIVING TEMPORAL MOTION VECTOR PREDICTOR}

본 발명은 영상의 부호화 및 복호화에 관한 것으로서, 더욱 구체적으로는 서브블록 기반 인터 예측에 이용되는 시간적 움직임벡터 예측자를 효율적으로 유도함으로써, 부호화 및 복호화의 효율을 향상시킨 시간적 움직임벡터 예측자 유도 방법 및 영상 복호화 장치에 관한 것이다.The present invention relates to encoding and decoding of an image, and more specifically, a method for deriving a temporal motion vector predictor in which the efficiency of encoding and decoding is improved by efficiently deriving a temporal motion vector predictor used for subblock-based inter prediction, and It relates to a video decoding apparatus.

동영상 데이터는 음성 데이터나 정지 영상 데이터 등에 비하여 많은 데이터량을 가지기 때문에, 압축을 위한 처리 없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다. Since moving picture data has a larger amount of data than audio data or still image data, it requires a lot of hardware resources including memory in order to store or transmit itself without processing for compression.

따라서, 통상적으로 동영상 데이터를 저장하거나 전송할 때에는 부호화기를 사용하여 동영상 데이터를 압축하여 저장하거나 전송하며, 복호화기에서는 압축된 동영상 데이터를 수신하여 압축을 해제하고 재생한다. 이러한 동영상 압축 기술로는 H.264/AVC를 비롯하여, H.264/AVC에 비해 약 40% 정도의 부호화 효율을 향상시킨 HEVC(High Efficiency Video Coding)가 존재한다. Accordingly, when moving or transmitting moving picture data, the moving picture data is compressed and stored or transmitted using an encoder, and the decoder receives the compressed moving picture data, decompresses and plays the compressed moving picture data. As such video compression techniques, there are H.264/AVC and HEVC (High Efficiency Video Coding), which improves coding efficiency by about 40% compared to H.264/AVC.

그러나, 영상의 크기 및 해상도, 프레임율이 점차 증가하고 있고, 이에 따라 부호화해야 하는 데이터량도 증가하고 있으므로 기존의 압축 기술보다 더 부호화 효율이 좋고 화질 개선 효과도 높은 새로운 압축 기술이 요구된다.However, the size, resolution, and frame rate of an image are gradually increasing, and accordingly, the amount of data to be encoded is also increasing. Accordingly, a new compression technique having higher encoding efficiency and higher quality improvement effect than the existing compression technique is required.

이러한 요구에 부응하기 위해 본 발명은 개선된 영상 부호화 및 복호화 기술을 제공하는 것을 목적으로 하며, 특히, 본 발명의 일 측면은 서브블록 단위로 움직임을 예측함으로써 부호화 및 복호화의 효율을 향상시키는 기술과 관련된다.In order to meet these demands, the present invention aims to provide an improved video encoding and decoding technology. In particular, an aspect of the present invention is a technology for improving encoding and decoding efficiency by predicting motion in units of subblocks. It is related.

본 발명의 일 측면은, 현재블록에 대응하는 collocated 블록 내 하나 이상의 서브블록 별로 시간적 움직임벡터 예측자(temporal motion vector predictor)를 유도하는 방법으로서, 상기 현재블록에 이웃하는 주변블록들 중에서 어느 하나인 대상 주변블록의 사용 가능성 여부 및 움직임정보에 기초하여, collocated 픽처 내에서 상기 collocated 블록을 결정하는 단계; 상기 collocated 블록의 예측 모드에 따라, 상기 collocated 블록의 베이스 움직임벡터를 설정하는 단계; 및 상기 collocated 블록 내 하나 이상의 서브블록들 각각의 예측 모드에 따라, 상기 collocated 블록 내 서브블록들의 움직임벡터 또는 상기 베이스 움직임벡터로부터 상기 시간적 움직임벡터 예측자를 유도하는 단계를 포함하는, 시간적 움직임벡터 예측자 유도 방법을 제공한다.An aspect of the present invention is a method of inducing a temporal motion vector predictor for each of one or more subblocks in a collocated block corresponding to a current block, which is one of neighboring blocks adjacent to the current block. Determining the collocated block in the collocated picture based on the availability of the target neighboring block and motion information; Setting a base motion vector of the collocated block according to the prediction mode of the collocated block; And deriving the temporal motion vector predictor from a motion vector of the subblocks in the collocated block or the base motion vector according to a prediction mode of each of the one or more subblocks in the collocated block. Provides a method of induction.

본 발명의 다른 일 측면은, 현재블록에 대응하는 collocated 블록 내 하나 이상의 서브블록 별로 시간적 움직임벡터 예측자(temporal motion vector predictor)를 유도하는 영상 복호화 장치로서, 상기 현재블록에 이웃하는 주변블록들 중에서 어느 하나인 대상 주변블록의 사용 가능성 여부 및 움직임정보에 기초하여, collocated 픽처 내에서 상기 collocated 블록을 결정하는 결정부; 상기 collocated 블록의 예측 모드에 따라, 상기 collocated 블록의 베이스 움직임벡터를 설정하는 설정부; 및 상기 collocated 블록 내 하나 이상의 서브블록들 각각의 예측 모드에 따라, 상기 collocated 블록 내 서브블록들의 움직임벡터 또는 상기 베이스 움직임벡터로부터 상기 시간적 움직임벡터 예측자를 유도하는 유도부를 포함하는, 영상 복호화 장치를 제공한다.Another aspect of the present invention is an image decoding apparatus for inducing a temporal motion vector predictor for each of one or more subblocks in a collocated block corresponding to a current block, comprising: A determination unit that determines the collocated block in the collocated picture based on whether any one of the target neighboring blocks is available and motion information; A setting unit for setting a base motion vector of the collocated block according to the prediction mode of the collocated block; And a derivation unit for inducing the temporal motion vector predictor from a motion vector of subblocks in the collocated block or the base motion vector according to a prediction mode of each of one or more subblocks in the collocated block. do.

이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 서브블록 단위로 시간적 움직임벡터 예측자를 유도함으로써 압축 성능과 영상의 화질을 개선시키는 효과를 제공할 수 있다.As described above, according to an embodiment of the present invention, it is possible to provide an effect of improving compression performance and image quality by deriving a temporal motion vector predictor in units of subblocks.

도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다.
도 3은 복수의 인트라 예측 모드들을 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5는 공간적 후보블록 및 시간적 후보블록들의 위치를 설명하기 위한 도면이다.
도 6은 collocated 블록의 움직임벡터 예측자를 스케일링하여 현재블록의 예측을 위한 움직임벡터 후보를 유도하는 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 기술들을 구현할 수 있는 예측부의 예시적인 블록도이다.
도 8은 시간적 움직임벡터 예측자를 유도하는 일 예를 설명하기 위한 순서도이다.
도 9는 collocated 블록을 결정하는 일 예를 설명하기 위한 순서도이다.
도 10은 collocated 블록을 결정하는 일 예를 설명하기 위한 도면이다.
도 11은 collocated 블록의 베이스 움직임벡터를 설정하는 일 예를 설명하기 위한 순서도이다.
도 12는 collocated 블록의 중앙부와 collocated 서브블록의 중앙부를 설명하기 위한 도면이다.
도 13은 시간적 움직임벡터 예측자를 유도하는 일 예를 설명하기 위한 순서도이다.
도 14 및 도 15는 베이스 움직임벡터를 업데이트하는 예들을 설명하기 위한 순서도이다.
도 16은 시간적 움직임벡터 예측자 모드의 적용 여부를 결정하는 일 예를 설명하기 위한 순서도이다.
1 is an exemplary block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
2 is a diagram for explaining a method of dividing a block using a QTBTTT structure.
3 is a diagram for describing a plurality of intra prediction modes.
4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure.
5 is a diagram for explaining positions of spatial candidate blocks and temporal candidate blocks.
6 is a diagram for describing a method of deriving a motion vector candidate for prediction of a current block by scaling a motion vector predictor of a collocated block.
7 is an exemplary block diagram of a prediction unit that may implement the techniques of this disclosure.
8 is a flowchart illustrating an example of inducing a temporal motion vector predictor.
9 is a flowchart illustrating an example of determining a collocated block.
10 is a diagram for describing an example of determining a collocated block.
11 is a flowchart illustrating an example of setting a base motion vector of a collocated block.
12 is a diagram illustrating a central portion of a collocated block and a central portion of a collocated sub-block.
13 is a flowchart illustrating an example of inducing a temporal motion vector predictor.
14 and 15 are flowcharts illustrating examples of updating a base motion vector.
16 is a flowchart illustrating an example of determining whether to apply a temporal motion vector predictor mode.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail through exemplary drawings. In adding identification symbols to elements of each drawing, it should be noted that the same elements are to have the same symbols as possible even if they are indicated on different drawings. In addition, in describing the present invention, when it is determined that a detailed description of a related known configuration or function may obscure the subject matter of the present invention, a detailed description thereof will be omitted.

도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다. 이하에서는 도 1을 참조하여 영상 부호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.1 is an exemplary block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure. Hereinafter, an image encoding apparatus and sub-elements of the apparatus will be described with reference to FIG. 1.

영상 부호화 장치는 블록 분할부(110), 예측부(120), 감산기(130), 변환부(140), 양자화부(145), 부호화부(150), 역양자화부(160), 역변환부(165), 가산기(170), 필터부(180) 및 메모리(190)를 포함하여 구성될 수 있다.The image encoding apparatus includes a block division unit 110, a prediction unit 120, a subtractor 130, a transform unit 140, a quantization unit 145, an encoding unit 150, an inverse quantization unit 160, and an inverse transform unit ( 165, an adder 170, a filter unit 180, and a memory 190 may be included.

영상 부호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.Each component of the image encoding apparatus may be implemented as hardware or software, or may be implemented as a combination of hardware and software. In addition, functions of each component may be implemented as software, and a microprocessor may be implemented to execute a function of software corresponding to each component.

하나의 영상(비디오)는 복수의 픽처들로 구성된다. 각 픽처들은 복수의 영역으로 분할되고 각 영역마다 부호화가 수행된다. 예를 들어, 하나의 픽처는 하나 이상의 타일(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)에 부호화된다.One image (video) is composed of a plurality of pictures. Each picture is divided into a plurality of regions, and encoding is performed for each region. For example, one picture is divided into one or more tiles or/and slices. Here, one or more tiles may be defined as a tile group. Each tile or/slice is divided into one or more Coding Tree Units (CTUs). And each CTU is divided into one or more CUs (Coding Units) by a tree structure. Information applied to each CU is encoded as the syntax of the CU, and information commonly applied to CUs included in one CTU is encoded as the syntax of the CTU. In addition, information commonly applied to all blocks in one tile is encoded as the syntax of a tile or is encoded as a syntax of a tile group in which a plurality of tiles are collected, and information applied to all blocks constituting one picture is It is encoded in a picture parameter set (PPS) or a picture header. Furthermore, information commonly referred to by a plurality of pictures is encoded in a sequence parameter set (SPS). In addition, information commonly referred to by one or more SPSs is encoded in a video parameter set (VPS).

블록 분할부(110)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS의 신택스로서 부호화되어 영상 복호화 장치로 전달된다. The block dividing unit 110 determines the size of a coding tree unit (CTU). Information on the size of the CTU (CTU size) is encoded as the syntax of the SPS or PPS and transmitted to the video decoding apparatus.

블록 분할부(110)는 영상을 구성하는 각 픽처(picture)를 미리 결정된 크기를 가지는 복수의 CTU(Coding Tree Unit)들로 분할한 이후에, 트리 구조(tree structure)를 이용하여 CTU를 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU(coding unit)가 된다. The block dividing unit 110 divides each picture constituting an image into a plurality of coding tree units (CTUs) having a predetermined size, and then repeatedly divides the CTU using a tree structure. Split (recursively). A leaf node in a tree structure becomes a coding unit (CU), which is a basic unit of coding.

트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(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)라 칭할 수 있다. In a tree structure, a quadtree (QuadTree, QT) in which an upper node (or parent node) is divided into four lower nodes (or child nodes) of the same size, or a binary tree (BinaryTree) in which an upper node is divided into two lower nodes. , BT), or a ternary tree (TT) in which an upper node is divided into three lower nodes in a 1:2:1 ratio, or a structure in which two or more of these QT structures, BT structures, and TT structures are mixed. have. For example, a QTBT (QuadTree plus BinaryTree) structure may be used, or a QTBTTT (QuadTree plus BinaryTree TernaryTree) structure may be used. Here, BTTT may be collectively referred to as 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)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.2 shows a QTBTTT split tree structure. As shown in FIG. 2, the CTU may be first divided into a QT structure. The quadtree division may be repeated until the size of a splitting block reaches the minimum block size (MinQTSize) of a leaf node allowed in QT. A first flag (QT_split_flag) indicating whether each node of the QT structure is divided into four nodes of a lower layer is encoded by the encoder 150 and signaled to the image decoding apparatus. If the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in BT, it may be further divided into one or more of a BT structure or a TT structure. In the BT structure and/or the TT structure, a plurality of division directions may exist. For example, there may be two directions in which a block of a corresponding node is divided horizontally and a direction vertically divided. As shown in FIG. 2, when MTT splitting starts, a second flag (mtt_split_flag) indicating whether nodes are split, and if split, a flag indicating a split direction (vertical or horizontal) and/or a split type (Binary or Ternary). A flag indicating) is encoded by the encoder 150 and signaled to the image decoding apparatus.

트리 구조의 다른 예로서, 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)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.As another example of the tree structure, when a block is divided using a QTBTTT structure, information about a CU split flag (split_cu_flag) indicating that the block has been split first and a QT split flag (split_qt_flag) indicating whether the split type is QT splitting is information from the encoding unit 150 ) And signaled to the video decoding apparatus. When it is indicated that the value of the CU split flag (split_cu_flag) is not split, the block of the corresponding node becomes a leaf node in the split tree structure and becomes a coding unit (CU), which is a basic unit of encoding. When indicating that the value of the CU split flag (split_cu_flag) is split, whether the split type is QT or MTT is distinguished through the value of the QT split flag (split_qt_flag). If the split type is QT, there is no additional information, and if the split type is MTT, a flag indicating the MTT split direction (vertical or horizontal) (mtt_split_cu_vertical_flag) and/or a flag indicating the MTT split type (Binary or Ternary) (mtt_split_cu_binary_flag) is encoded by the encoder 150 and signaled to the video decoding apparatus.

트리 구조의 다른 예시로서 QTBT가 사용되는 경우, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. BT 구조의 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할되는 타입을 지시하는 분할 타입 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다. 한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태에는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태가 포함될 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태가 포함될 수도 있다.When QTBT is used as another example of the tree structure, there are two types of horizontally splitting a block of the node into two blocks of the same size (i.e., symmetric horizontal splitting) and a type splitting vertically (i.e., symmetric vertical splitting). Branches can exist. A split flag indicating whether each node of the BT structure is divided into blocks of a lower layer and split type information indicating a type to be divided are encoded by the encoder 150 and transmitted to the image decoding apparatus. Meanwhile, there may be additional types of dividing the block of the corresponding node into two blocks of an asymmetric form. The asymmetric form may include a form of dividing a block of a corresponding node into two rectangular blocks having a size ratio of 1:3, or a form of dividing a block of a corresponding node in a diagonal direction.

CU는 CTU로부터의 QTBT 또는 QTBTTT 분할에 따라 다양한 크기를 가질 수 있다. 이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBTTT의 리프 노드)에 해당하는 블록을 '현재블록'이라 칭한다.The CU may have various sizes according to the QTBT or QTBTTT split from the CTU. Hereinafter, a block corresponding to a CU to be encoded or decoded (ie, a leaf node of QTBTTT) is referred to as a'current block'.

예측부(120)는 현재블록을 예측하여 예측블록을 생성한다. 예측부(120)는 인트라 예측부(122)와 인터 예측부(124)를 포함한다. The prediction unit 120 predicts the current block and generates a prediction block. The prediction unit 120 includes an intra prediction unit 122 and an inter prediction unit 124.

일반적으로, 픽처 내 현재블록들은 각각 예측적으로 코딩될 수 있다. 일반적으로 현재블록의 예측은 (현재블록을 포함하는 픽처로부터의 데이터를 사용하는) 인트라 예측 기술 또는 (현재블록을 포함하는 픽처 이전에 코딩된 픽처로부터의 데이터를 사용하는) 인터 예측 기술을 사용하여 수행될 수 있다. 인터 예측은 단방향 예측과 양방향 예측 모두를 포함한다.In general, each of the current blocks in a picture can be predictively coded. In general, prediction of the current block is performed using an intra prediction technique (using data from a picture containing the current block) or an inter prediction technique (using data from a picture coded before a picture containing the current block). Can be done. Inter prediction includes both one-way prediction and two-way prediction.

인트라 예측부(122)는 현재블록이 포함된 현재 픽처 내에서 현재블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재한다. 예컨대, 도 3에서 보는 바와 같이, 복수의 인트라 예측모드는 planar 모드와 DC 모드를 포함하는 비방향성 모드와 65개의 방향성 모드를 포함할 수 있다. 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다.The intra prediction unit 122 predicts pixels in the current block by using pixels (reference pixels) located around the current block in the current picture including the current block. There are a plurality of intra prediction modes according to the prediction direction. For example, as shown in FIG. 3, the plurality of intra prediction modes may include a non-directional mode including a planar mode and a DC mode, and 65 directional modes. Depending on each prediction mode, the surrounding pixels to be used and the equation are defined differently.

인트라 예측부(122)는 현재블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(122)는 여러 인트라 예측 모드들을 사용하여 현재블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(122)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.The intra prediction unit 122 may determine an intra prediction mode to be used to encode the current block. In some examples, the intra prediction unit 122 may encode the current block using several intra prediction modes, and select an appropriate intra prediction mode to use from the tested modes. For example, the intra prediction unit 122 calculates rate distortion values using rate-distortion analysis for several tested intra prediction modes, and has the best rate distortion characteristics among the tested modes. It is also possible to select an intra prediction mode.

인트라 예측부(122)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.The intra prediction unit 122 selects one intra prediction mode from among a plurality of intra prediction modes, and predicts the current block by using a neighboring pixel (reference pixel) and an equation determined according to the selected intra prediction mode. Information on the selected intra prediction mode is encoded by the encoder 150 and transmitted to the image decoding apparatus.

인터 예측부(124)는 움직임 보상 과정을 통해 현재블록에 대한 예측블록을 생성한다. 현재 픽처보다 먼저 부호화 및 복호화된 참조픽처 내에서 현재블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재블록과 참조픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 일반적으로, 움직임 추정은 루마(luma) 성분에 대해 수행되고, 루마 성분에 기초하여 계산된 모션 벡터는 루마 성분 및 크로마 성분 모두에 대해 사용된다. 현재블록을 예측하기 위해 사용된 참조픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.The inter prediction unit 124 generates a prediction block for the current block through a motion compensation process. A block that is most similar to a current block is searched for in a reference picture that is coded and decoded before the current picture, and a prediction block for the current block is generated using the searched block. Then, a motion vector corresponding to a displacement between the current block in the current picture and the prediction block in the reference picture is generated. In general, motion estimation is performed on a luma component, and a motion vector calculated based on the luma component is used for both the luma component and the chroma component. Motion information including information on a reference picture used to predict a current block and information on a motion vector is encoded by the encoder 150 and transmitted to an image decoding apparatus.

감산기(130)는 현재블록으로부터 인트라 예측부(122) 또는 인터 예측부(124)에 의해 생성된 예측블록을 감산하여 잔차블록을 생성한다.The subtractor 130 generates a residual block by subtracting the prediction block generated by the intra prediction unit 122 or the inter prediction unit 124 from the current block.

변환부(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)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. The transform unit 140 converts the residual signal in the residual block having pixel values in the spatial domain into transform coefficients in the frequency domain. The transform unit 140 may transform residual signals in the residual block using the total size of the residual block as a transform unit, or divide the residual block into two sub-blocks, which are transform regions and non-transform regions, Residual signals can be transformed using only a block as a transform unit. Here, the transform region subblock may be one of two rectangular blocks having a size ratio of 1:1 based on the horizontal axis (or vertical axis). In this case, a flag indicating that only the subblock has been transformed (cu_sbt_flag), directional (vertical/horizontal) information (cu_sbt_horizontal_flag), and/or location information (cu_sbt_pos_flag) are encoded by the encoder 150 and signaled to the video decoding apparatus. . In addition, the size of the transform region subblock may have a size ratio of 1:3 based on the horizontal axis (or vertical axis), and in this case, a flag (cu_sbt_quad_flag) that separates the division is additionally encoded by the encoder 150 to decode the image. Signaled to the device.

양자화부(145)는 변환부(140)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(150)로 출력한다.The quantization unit 145 quantizes the transform coefficients output from the transform unit 140 and outputs the quantized transform coefficients to the encoding unit 150.

부호화부(150)는 양자화된 변환 계수들을 CABAC(Context-based Adaptive Binary Arithmetic Code) 등의 부호화 방식을 사용하여 부호화함으로써 비트스트림을 생성한다. 부호화부(150)는 블록 분할과 관련된 CTU size, CU 분할 플래그, QT 분할 플래그, MTT 분할 방향, MTT 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.The encoding unit 150 generates a bitstream by encoding the quantized transform coefficients using an encoding method such as Context-based Adaptive Binary Arithmetic Code (CABAC). The encoder 150 encodes information such as a CTU size related to block division, a CU division flag, a QT division flag, an MTT division direction, and an MTT division type, so that the video decoding apparatus can divide the block in the same manner as the video encoding apparatus. To be there.

또한, 부호화부(150)는 현재블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보(즉, 인트라 예측 모드에 대한 정보) 또는 인터 예측정보(참조픽처 및 움직임벡터에 대한 정보)를 부호화한다.In addition, the encoder 150 encodes information on a prediction type indicating whether the current block is encoded by intra prediction or inter prediction, and intra prediction information (ie, intra prediction mode) according to the prediction type. Information) or inter prediction information (information on a reference picture and a motion vector) is encoded.

역양자화부(160)는 양자화부(145)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(165)는 역양자화부(160)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.The inverse quantization unit 160 inverse quantizes the quantized transform coefficients output from the quantization unit 145 to generate transform coefficients. The inverse transform unit 165 converts transform coefficients output from the inverse quantization unit 160 from the frequency domain to the spatial domain to restore the residual block.

가산부(170)는 복원된 잔차블록과 예측부(120)에 의해 생성된 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.The addition unit 170 restores the current block by adding the reconstructed residual block and the prediction block generated by the prediction unit 120. The pixels in the reconstructed current block are used as reference pixels when intra-predicting the next block.

필터부(180)는 블록 기반의 예측 및 변환/양자화로 인해 발생하는 블록킹 아티팩트(blocking artifacts), 링잉 아티팩트(ringing artifacts), 블러링 아티팩트(blurring artifacts) 등을 줄이기 위해 복원된 픽셀들에 대한 필터링을 수행한다. 필터부(180)는 디블록킹 필터(182)와 SAO(Sample Adaptive Offset) 필터(184)를 포함할 수 있다.The filter unit 180 filters reconstructed pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc. that occur due to block-based prediction and transformation/quantization. Perform. The filter unit 180 may include a deblocking filter 182 and a sample adaptive offset (SAO) filter 184.

디블록킹 필터(180)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 필터링하고, SAO 필터(184)는 디블록킹 필터링된 영상에 대해 추가적인 필터링을 수행한다. SAO 필터(184)는 손실 부호화(lossy coding)로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해 사용되는 필터이다.The deblocking filter 180 filters the boundary between reconstructed blocks to remove blocking artifacts caused by block-based encoding/decoding, and the SAO filter 184 is additionally applied to the deblocking filtered image. Perform filtering. The SAO filter 184 is a filter used to compensate for a difference between a reconstructed pixel and an original pixel caused by lossy coding.

디블록킹 필터(182) 및 SAO 필터(184)를 통해 필터링된 복원블록은 메모리(190)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The reconstructed block filtered through the deblocking filter 182 and the SAO filter 184 is stored in the memory 190. When all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of a block in a picture to be encoded later.

도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다. 이하에서는 도 4를 참조하여 영상 복호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure. Hereinafter, an image decoding apparatus and sub-elements of the apparatus will be described with reference to FIG. 4.

영상 복호화 장치는 복호화부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450), 필터부(460) 및 메모리(470)를 포함하여 구성될 수 있다. The image decoding apparatus may include a decoding unit 410, an inverse quantization unit 420, an inverse transform unit 430, a prediction unit 440, an adder 450, a filter unit 460, and a memory 470. have.

도 1의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.Like the image encoding apparatus of FIG. 1, each component of the image decoding apparatus may be implemented as hardware or software, or may be implemented as a combination of hardware and software. In addition, functions of each component may be implemented as software, and a microprocessor may be implemented to execute a function of software corresponding to each component.

복호화부(410)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출함으로써 복호화하고자 하는 현재블록을 결정하고, 현재블록을 복원하기 위해 필요한 예측정보와 잔차신호에 대한 정보 등을 추출한다.The decoding unit 410 determines the current block to be decoded by decoding the bitstream received from the video encoding apparatus and extracting information related to block division, and information on prediction information and residual signals necessary to restore the current block, etc. Extract.

복호화부(410)는 SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고, CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할정보를 추출함으로써 트리 구조를 이용하여 CTU를 분할한다. The decoder 410 determines the size of the CTU by extracting information on the CTU size from a sequence parameter set (SPS) or a picture parameter set (PPS), and divides the picture into CTUs of the determined size. Then, the CTU is determined as the highest layer of the tree structure, that is, the root node, and the CTU is divided using the tree structure by extracting the partition information for the CTU.

예컨대, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 MTT의 분할과 관련된 제2 플래그(MTT_split_flag) 및 분할 방향(vertical / horizontal) 및/또는 분할 타입(binary / ternary) 정보를 추출하여 해당 리프 노드를 MTT 구조로 분할한다. 이를 통해 QT의 리프 노드 이하의 각 노드들을 BT 또는 TT 구조로 반복적으로(recursively) 분할한다.For example, in the case of splitting the CTU using the QTBTTT structure, a first flag (QT_split_flag) related to the splitting of the QT is first extracted, and each node is split into four nodes of a lower layer. And, for the node corresponding to the leaf node of QT, the second flag (MTT_split_flag) related to the splitting of the MTT and the splitting direction (vertical / horizontal) and/or split type (binary / ternary) information are extracted and the corresponding leaf node is MTT. Divide into structure Through this, each node below the leaf node of the QT is recursively divided into a BT or TT structure.

또 다른 예로서, 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 분할만 발생할 수도 있다. As another example, when a CTU is split using a QTBTTT structure, first, a CU split flag indicating whether to split a CU (split_cu_flag) is extracted, and when the corresponding block is split, a QT split flag (split_qt_flag) is extracted. . If the split type is not QT but MTT, a flag indicating the MTT split direction (vertical or horizontal) (mtt_split_cu_vertical_flag) and/or a flag indicating the MTT split type (Binary or Ternary) (mtt_split_cu_binary_flag) is additionally extracted. In the partitioning process, each node may have zero or more repetitive MTT partitions after zero or more repetitive QT partitions. For example, in the CTU, MTT division may occur immediately, or, conversely, only multiple QT divisions may occur.

다른 예로서, QTBT 구조를 사용하여 CTU를 분할하는 경우, QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT로 더 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할 방향 정보를 추출한다.As another example, when the CTU is divided using the QTBT structure, each node is divided into four nodes of a lower layer by extracting the first flag (QT_split_flag) related to the division of the QT. In addition, a split flag indicating whether or not the node corresponding to the leaf node of the QT is further split into BT and split direction information are extracted.

한편, 복호화부(410)는 트리 구조의 분할을 통해 복호화하고자 하는 현재블록을 결정하게 되면, 현재블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다. 예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(410)는 현재블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 예측 타입 정보가 인터 예측을 지시하는 경우, 복호화부(410)는 인터 예측정보에 대한 신택스 요소, 즉, 움직임벡터 및 그 움직임벡터가 참조하는 참조픽처를 나타내는 정보를 추출한다.On the other hand, when determining the current block to be decoded through division of the tree structure, the decoder 410 extracts information on a prediction type indicating whether the current block is intra predicted or inter predicted. When the prediction type information indicates intra prediction, the decoder 410 extracts a syntax element for intra prediction information (intra prediction mode) of the current block. When the prediction type information indicates inter prediction, the decoder 410 extracts a syntax element for the inter prediction information, that is, information indicating a motion vector and a reference picture referenced by the motion vector.

한편, 복호화부(410)는 잔차신호에 대한 정보로서 현재블록의 양자화된 변환계수들에 대한 정보를 추출한다.Meanwhile, the decoding unit 410 extracts information on quantized transform coefficients of the current block as information on the residual signal.

역양자화부(420)는 양자화된 변환계수들을 역양자화하고, 역변환부(430)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재블록에 대한 잔차블록을 생성한다.The inverse quantization unit 420 inverse quantizes the quantized transform coefficients, and the inverse transform unit 430 inversely transforms the inverse quantized transform coefficients from the frequency domain to the spatial domain to restore residual signals to generate a residual block for the current block. .

또한, 역변환부(430)는 변환블록의 일부 영역(서브블록)만 역변환하는 경우, 변환블록의 서브블록만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 서브블록의 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 서브블록의 위치 정보(cu_sbt_pos_flag)를 추출하여, 해당 서브블록의 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환함으로써 잔차신호들을 복원하고, 역변환되지 않은 영역에 대해서는 잔차신호로 "0" 값을 채움으로써 현재블록에 대한 최종 잔차블록을 생성한다.In addition, when the inverse transform unit 430 inverse transforms only a partial region (subblock) of the transform block, a flag indicating that only the subblock of the transform block has been transformed (cu_sbt_flag), and the direction (vertical/horizontal) information of the subblock (cu_sbt_horizontal_flag) ) And/or sub-block location information (cu_sbt_pos_flag), and inverse transform coefficients of the sub-block from the frequency domain to the spatial domain to restore residual signals. By filling in, the final residual block for the current block is created.

예측부(440)는 인트라 예측부(442) 및 인터 예측부(444)를 포함할 수 있다. 인트라 예측부(442)는 현재블록의 예측 타입이 인트라 예측일 때 활성화되고, 인터 예측부(444)는 현재블록의 예측 타입이 인터 예측일 때 활성화된다.The prediction unit 440 may include an intra prediction unit 442 and an inter prediction unit 444. The intra prediction unit 442 is activated when the prediction type of the current block is intra prediction, and the inter prediction unit 444 is activated when the prediction type of the current block is inter prediction.

인트라 예측부(442)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재블록 주변의 참조 픽셀들을 이용하여 현재블록을 예측한다.The intra prediction unit 442 determines an intra prediction mode of the current block among a plurality of intra prediction modes from a syntax element for the intra prediction mode extracted from the decoder 410, and a reference pixel around the current block according to the intra prediction mode. The current block is predicted by using them.

인터 예측부(444)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소를 이용하여 현재블록의 움직임벡터와 그 움직임벡터가 참조하는 참조픽처를 결정하고, 움직임벡터와 참조픽처를 이용하여 현재블록을 예측한다.The inter prediction unit 444 determines a motion vector of the current block and a reference picture referenced by the motion vector using the syntax element for the intra prediction mode extracted from the decoding unit 410, and uses the motion vector and the reference picture. To predict the current block.

가산기(450)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.The adder 450 restores the current block by adding the residual block output from the inverse transform unit and the prediction block output from the inter prediction unit or the intra prediction unit. The pixels in the reconstructed current block are used as reference pixels for intra prediction of a block to be decoded later.

필터부(460)는 디블록킹 필터(462) 및 SAO 필터(464)를 포함할 수 있다. 디블록킹 필터(462)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해, 복원된 블록 간의 경계를 디블록킹 필터링한다. SAO 필터(464)는 손실 부호화(lossy coding)으로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해, 디블록킹 필터링 이후의 복원된 블록에 대해 추가적인 필터링을 수행한다. 디블록킹 필터(462) 및 SAO 필터(464)를 통해 필터링된 복원블록은 메모리(470)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The filter unit 460 may include a deblocking filter 462 and an SAO filter 464. The deblocking filter 462 performs deblocking filtering on the boundary between reconstructed blocks in order to remove blocking artifacts occurring due to block-by-block decoding. The SAO filter 464 performs additional filtering on the reconstructed block after deblocking filtering in order to compensate for the difference between the reconstructed pixel and the original pixel caused by lossy coding. The reconstructed block filtered through the deblocking filter 462 and the SAO filter 464 is stored in the memory 470. When all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of a block in a picture to be encoded later.

인터 예측 방법은 크게 skip 모드(스킵 모드), merge 모드(머지 모드) 및 AMVP(adaptive (or advanced) motion vector predictor) 모드로 구분될 수 있다.The inter prediction method can be largely divided into a skip mode (skip mode), a merge mode (merge mode), and an adaptive (or advanced) motion vector predictor (AMVP) mode.

스킵 모드에서는 현재블록의 주변에 위치한 주변블록들의 움직임정보 후보들 중 어느 하나의 움직임정보가 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다. 머지 모드에서는 주변블록의 움직임정보 후보들 중 어느 하나의 움직임정보와 예측 후 잔차(residual)를 부호화한 정보가 시그널링된다. AMVP 모드에서는 현재블록의 움직임정보와, 예측 후 잔차를 부호화한 정보가 시그널링된다.In the skip mode, motion information of any one of motion information candidates of neighboring blocks located in the vicinity of the current block is signaled from the video encoding apparatus to the video decoding apparatus. In the merge mode, motion information of any one of motion information candidates of a neighboring block and information obtained by encoding a residual after prediction are signaled. In the AMVP mode, motion information of a current block and information obtained by encoding a residual after prediction are signaled.

스킵 모드 및 머지 모드에서 시그널링되는 움직임정보는 움직임정보 후보들 중 어느 하나(후보 리스트에 포함된 움직임정보 후보들 중 어느 하나)를 지시하는 인덱스(머지 인덱스) 값으로 표현된다. AMVP 모드에서 시그널링되는 움직임정보는 주변블록의 움직임정보와 현재블록의 움직임정보 사이의 차이 값(mvd, motion vector difference)으로 표현된다.The motion information signaled in the skip mode and the merge mode is expressed as an index (merge index) value indicating any one of the motion information candidates (any one of the motion information candidates included in the candidate list). The motion information signaled in the AMVP mode is expressed as a difference value (mvd, motion vector difference) between motion information of a neighboring block and motion information of a current block.

스킵 모드와 머지 모드를 구별하는 플래그들(cu_skip_flag, merge_flag) 각각이 영상 부호화 장치로부터 영상 복호화 장치로 시그널링되며, 이 플래그들의 값에 따라 머지 인덱스(merge_idx)가 영상 복호화 장치로 시그널링된다.Each of the flags cu_skip_flag and merge_flag that distinguishes the skip mode and the merge mode is signaled from the video encoding apparatus to the video decoding apparatus, and a merge index (merge_idx) is signaled to the video decoding apparatus according to the values of these flags.

스킵 모드 및 머지 모드에서, 영상 부호화 장치로부터 영상 복호화 장치로 시그널링되는 정보들을 표현하면 표 1 및 표 2와 같다.In the skip mode and merge mode, information signaled from the video encoding device to the video decoding device is shown in Tables 1 and 2.

Figure pat00001
Figure pat00001

Figure pat00002
Figure pat00002

한편, 스킵 모드 및 머지 모드를 위한 후보 리스트를 구성하는 방법은 공간적 후보(spatial candidates)를 탐색하여 후보 리스트에 추가하는 과정, 시간적 후보(temporal candidates)를 탐색하여 후보 리스트에 추가하는 과정, 후보 리스트에 추가된 후보들을 조합(combined bi-directional candidate)하여 후보 리스트에 추가하는 과정 및, 제로 움직임 벡터(zero motion vector candidate)를 후보 리스트에 추가하는 과정 등을 거칠 수 있다. 여기서, ‘후보들을 후보 리스트에 추가’하는 것은 ‘해당 블록들 자체 또는 해당 블록들의 움직임정보를 후보로 설정’하는 것을 의미할 수 있다.On the other hand, the method of constructing a candidate list for skip mode and merge mode is the process of searching for spatial candidates and adding them to the candidate list, the process of searching for temporal candidates and adding them to the candidate list, and the candidate list. A process of adding candidates added to the candidate list by combining (combined bi-directional candidates) and adding a zero motion vector candidate to the candidate list may be performed. Here, “adding candidates to the candidate list” may mean “setting the blocks themselves or motion information of the corresponding blocks as candidates”.

후보 리스트에 추가되는 공간적 후보들의 위치가 도 5 (a)에 나타나 있다. 영상 부호화/복호화 장치는 A1→B1→B0→A0→B2 순서대로 후보블록들을 탐색하여 최대 4개의 후보들을 후보 리스트에 포함시킬 수 있다. Locations of spatial candidates added to the candidate list are shown in FIG. 5 (a). The image encoding/decoding apparatus may search for candidate blocks in the order of A1→B1→B0→A0→B2 and include up to four candidates in the candidate list.

후보 리스트에 추가되는 시간적 후보들의 위치가 도 5 (b)에 나타나 있다. 영상 부호화/복호화 장치는 BR→CT 순서대로 후보블록들을 탐색하여 최대 1개의 후보를 후보 리스트에 포함시킬 수 있다. 후보 리스트를 설정하는 과정에서, 동일한 움직임정보가 이미 후보 리스트에 포함되어 있는 경우에는 해당 후보가 리스트에 추가되지 않는다. 즉, 움직임정보의 중복은 허용되지 않는다.Locations of temporal candidates added to the candidate list are shown in FIG. 5 (b). The image encoding/decoding apparatus may search for candidate blocks in the order of BR→CT and include at most one candidate in the candidate list. In the process of setting the candidate list, if the same motion information is already included in the candidate list, the corresponding candidate is not added to the list. That is, overlapping motion information is not allowed.

후보 리스트에 추가되는 시간적 후보는 특정 픽처 내 특정 블록의 움직임벡터 값을 현재블록을 위한 참조픽처 상으로 맵핑(mapping)하여 결정된다. 여기서, 특정 픽처는 collocated 픽처(col 픽처)를 의미하며, 특정 블록은 collocated 블록(col 블록)을 의미하고, 움직임벡터의 맵핑 과정은 움직임벡터 스케일링(MV scaling)를 의미한다.The temporal candidate added to the candidate list is determined by mapping a motion vector value of a specific block in a specific picture onto a reference picture for the current block. Here, a specific picture means a collocated picture (col picture), a specific block means a collocated block (col block), and a motion vector mapping process means motion vector scaling (MV scaling).

col 픽처에 대한 정보는 슬라이스 단위로 결정되어 슬라이스 헤더에 명시적으로 기록된다. 표 3에 나타낸 바와 같이, col 픽처의 인덱스를 나타내는 collocated_ref_idx 신택스 요소 및, 해당 col 픽처가 속한 참조픽처 리스트를 나타내는 collocated_from_l0_flag 신택스 요소가 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다.Information on the col picture is determined in units of slices and is explicitly recorded in the slice header. As shown in Table 3, a collocated_ref_idx syntax element indicating the index of the col picture and a collocated_from_l0_flag syntax element indicating a reference picture list to which the col picture belongs are signaled from the image encoding device to the image decoding device.

Figure pat00003
Figure pat00003

collocated_from_l0_flag=1은 해당 col 픽처가 참조픽처 리스트 0(L0)에 포함됨을 나타내며, collocated_from_l0_flag=0은 해당 col 픽처가 참조픽처 리스트 1(L1)에 포함됨을 나타낸다. collocated_from_l0_flag에 따라 참조픽처 리스트가 결정되면, collocated_ref_idx 신택스 요소에 의해 col 픽처가 정확히 결정될 수 있다. 이와 같이, collocated_from_l0_flag 신택스 요소 및 collocated_ref_idx 신택스 요소를 통해, L0 또는 L1 중에서 어느 하나의 참조픽처 리스트에 속한 참조픽처가 col 픽처로 결정됨을 알 수 있다. 즉, col 픽처를 양방향으로 지정하지는 않는다.collocated_from_l0_flag=1 indicates that the corresponding col picture is included in the reference picture list 0 (L0), and collocated_from_l0_flag=0 indicates that the corresponding col picture is included in the reference picture list 1 (L1). When the reference picture list is determined according to collocated_from_l0_flag, the col picture may be accurately determined by the collocated_ref_idx syntax element. As described above, through the collocated_from_l0_flag syntax element and the collocated_ref_idx syntax element, it can be seen that a reference picture belonging to any one reference picture list among L0 or L1 is determined as a col picture. That is, the col picture is not designated in both directions.

col 블록은 col 픽처 내에서 현재블록의 현재픽처 내 위치와 같은 위치에 자리하는 블록으로 결정된다. 즉, 도 5 (b)에서, col 블록의 최좌상측(top-left) 픽셀의 위치는 현재픽처 내에서 현재블록의 최좌상측 픽셀의 위치와 같다.The col block is determined as a block located at the same position in the current picture of the current block in the col picture. That is, in FIG. 5B, the position of the top-left pixel of the col block is the same as the position of the top-left pixel of the current block in the current picture.

collocated BR 블록 (xColBr, yColBr)은 최좌상측 픽셀의 위치 (xPb, yPb)로부터 현재블록의 너비(nPbW) 및 높이(nPbH)만큼 이동한 픽셀을 커버하는 블록으로 결정된다(수학식 1). collocated CT 블록 (xColCt, yColCt)은 (xPb, yPb)로부터 nPbWx(1/2) 및 nPbHx(1/2)만큼 이동한 픽셀을 커버하는 블록으로 결정된다(수학식 2).The collocated BR block (xColBr, yColBr) is determined as a block covering a pixel moved by the width (nPbW) and height (nPbH) of the current block from the position (xPb, yPb) of the uppermost left pixel (Equation 1). The collocated CT block (xColCt, yColCt) is determined as a block covering a pixel moved by nPbWx(1/2) and nPbHx(1/2) from (xPb, yPb) (Equation 2).

Figure pat00004
Figure pat00004

Figure pat00005
Figure pat00005

col 픽처와 col 블록이 결정되면, col 블록의 움직임벡터 값을 현재블록에 적합한 움직임벡터 값으로 변환하기 위한 스케일링 과정이 수행된다.When the col picture and the col block are determined, a scaling process for converting the motion vector value of the col block into a motion vector value suitable for the current block is performed.

스케일링 과정을 설명하기 위한 도면이 도 6에 나타나 있다. 도 6에서, curr_pic는 현재픽처를 나타내며, curr_block는 현재블록을 나타낸다. col_pic는 col 픽처를 나타내고, col_block는 curr_block과 같은 자리에 위치하는 col 블록을 나타낸다. ref_pic는 현재블록의 참조픽처를 나타내며, col_ref_pic는 col 블록의 참조픽처를 나타낸다. ref_pic에 대한 정보는, 머지 모드인 경우에 참조픽처 리스트 내 첫 번째 픽처(0의 인덱스가 할당된 픽처)로 결정되며, AMVP 모드인 경우에는 ref_idx가 지시하는 픽처로 결정된다. ref_idx는 영상 부호화 장치로부터 영상 복호화 장치로 시그널링된다.A diagram for explaining the scaling process is shown in FIG. 6. In FIG. 6, curr_pic represents a current picture, and curr_block represents a current block. col_pic represents a col picture, and col_block represents a col block located at the same place as curr_block. ref_pic represents the reference picture of the current block, and col_ref_pic represents the reference picture of the col block. The information on ref_pic is determined as the first picture in the reference picture list (a picture to which an index of 0 is allocated) in the merge mode, and is determined as a picture indicated by ref_idx in the AMVP mode. ref_idx is signaled from the image encoding device to the image decoding device.

col_block의 움직임벡터(mv, 점선 화살표)가 획득되면, 획득된 mv를 현재블록에 적합한 형태로 스케일링하여 현재블록을 위한 움직임벡터(scaled_mv, 이점 쇄선 화살표)가 유도될 수 있다. 이 때, 스케일링 과정은 'col_pic와 col_ref_pic 사이의 POC(picture order count) 값 차이(수학식 3)' 및 'curr_pic와 ref_pic 사이의 POC 값 차이(수학식 4)' 간의 비율을 이용하여 구현될 수 있다.When a motion vector (mv, dotted arrow) of the col_block is obtained, a motion vector (scaled_mv, a two-dot chain arrow) for the current block can be derived by scaling the obtained mv in a form suitable for the current block. In this case, the scaling process may be implemented using the ratio between the'picture order count (POC) value difference between col_pic and col_ref_pic (Equation 3)' and'the POC value difference between curr_pic and ref_pic (Equation 4)'. have.

Figure pat00006
Figure pat00006

Figure pat00007
Figure pat00007

본 명세서에서는 인터 예측에서 사용되는 서브블록 기반 시간적 움직임벡터 예측자(subblock-based temporal motion vector predictor, SbTMVP)를 유도하는 방법과, SbTMVP 모드를 위한 신택스 요소들의 시그널링 방법이 제시된다.In this specification, a method of deriving a subblock-based temporal motion vector predictor (SbTMVP) used in inter prediction, and a method of signaling syntax elements for the SbTMVP mode are presented.

SbTMVP 모드는 부호화/복호화 대상 블록(현재블록)을 미리 결정된 크기의 다수 개의 서브블록들로 구획하고, 각 서브블록 별로 시간적 움직임벡터 예측자(TMVP)를 유도한 후에, 유도된 TMVP 값들로 서브블록들을 움직임 보상(motion compensation, MC)하는 인터 예측 방법이다.In the SbTMVP mode, an encoding/decoding target block (current block) is divided into a plurality of subblocks of a predetermined size, a temporal motion vector predictor (TMVP) is derived for each subblock, and then the subblocks are derived using TMVP values This is an inter prediction method for motion compensation (MC).

본 명세서를 통해 제안되는 SbTMVP 모드는 현재블록을 다수 개의 서브블록들로 나누고 해당 서브블록들 별로 TMVP를 유도하는 점에서 종래의 TMVP 모드와 차이점을 가진다.The SbTMVP mode proposed through the present specification is different from the conventional TMVP mode in that the current block is divided into a plurality of subblocks and TMVP is induced for each of the corresponding subblocks.

SbTMVP 모드는 1) col 블록을 결정하는 단계(MV shifting), 2) col 블록의 움직임정보(base MV)를 설정하는 단계, 3) col 블록 내 서브블록들의 움직임정보(subblock MV)를 유도하는 단계, 4) 움직임정보를 스케일링하는 단계(MV scaling) 및, 5) 스케일링된 움직임정보를 이용하여 현재블록 내 서브블록들의 움직임을 보상하는 단계(MC)로 이루어질 수 있다.In the SbTMVP mode, 1) determining a col block (MV shifting), 2) setting motion information (base MV) of the col block, 3) inducing motion information (subblock MV) of subblocks in the col block , 4) scaling motion information (MV scaling), and 5) compensating motion of subblocks in the current block by using the scaled motion information (MC).

위 5가지의 단계들 중에서 4) 단계와 5) 단계는 앞에서 설명하였으므로, 이하에서는 1) 단계 내지 3) 단계에 대해 중심적으로 설명하도록 한다.Among the five steps above, steps 4) and 5) have been described above, and thus steps 1) to 3) will be mainly described below.

본 개시의 기술들을 구현할 수 있는 예측부(120/440)의 예시적인 블록도가 도 7에 나타나 있다. 예측부(120/440)는 결정부(710), 설정부(720), 유도부(730) 및 업데이트부(740)를 포함하여 구성될 수 있다.An exemplary block diagram of a prediction unit 120/440 capable of implementing the techniques of the present disclosure is shown in FIG. 7. The prediction unit 120/440 may include a determination unit 710, a setting unit 720, an induction unit 730, and an update unit 740.

결정부(710)는 대상 주변블록의 사용 가능성 여부 및 움직임정보에 기초하여 현재블록에 대응하는 col 블록을 결정 또는 유도할 수 있다(S810).The determiner 710 may determine or derive a col block corresponding to the current block based on the availability of the target neighboring block and motion information (S810).

대상 주변블록은 현재블록에 이웃하는 공간적 주변블록들(도 5 (a)의 A0, A1, B0, B1 및 B2) 중에서 어느 하나에 해당할 수 있다. 본 명세서에서는 A1 블록을 대상 주변블록으로 하여 본 발명에 대해 설명하도록 한다.The target neighboring block may correspond to any one of spatial neighboring blocks (A0, A1, B0, B1, and B2 in FIG. 5A) neighboring the current block. In the present specification, the present invention will be described with the A1 block as the target neighboring block.

대상 주변블록의 사용 가능성 여부는 대상 주변블록이 인터 예측되어 움직임정보가 존재하는지 여부를 의미할 수 있다. 대상 주변블록이 인터로 예측된 경우에는 대상 주변블록이 사용 가능한 것으로 판단되며, 대상 주변블록이 인터로 예측되지 않은 경우에는 대상 주변블록이 사용 가능하지 않은 것으로 판단될 수 있다.The availability of the target neighboring block may mean whether or not motion information exists due to inter prediction of the target neighboring block. When the target neighboring block is predicted as inter, it is determined that the target neighboring block is usable, and when the target neighboring block is not predicted as inter, it may be determined that the target neighboring block is not usable.

대상 주변블록의 움직임정보에는 대상 주변블록의 예측 방향(L0 또는 L1), 대상 주변블록의 참조픽처 인덱스 및, 대상 주변블록의 움직임벡터가 포함될 수 있다.The motion information of the target neighboring block may include a prediction direction (L0 or L1) of the target neighboring block, a reference picture index of the target neighboring block, and a motion vector of the target neighboring block.

현재블록에 대응하는 col 블록(이하 'col 블록'이라 지칭한다)은 'col 픽처 내에서 현재블록의 현재픽처 내 위치와 같은 위치에 자리하는 블록'이거나, 'col 픽처 내에서 대상 주변블록의 움직임정보(움직임벡터)가 지시하는 블록'일 수 있다. 여기서, 대상 주변블록의 움직임벡터가 지시하는 블록은 대상 주변블록의 움직임벡터가 지시하는 위치를 커버하는 블록일 수 있다.The col block corresponding to the current block (hereinafter referred to as'col block') is'a block located in the same position as the current picture of the current block in the col picture' or'the movement of the target neighboring block in the col picture. It may be a block indicated by information (motion vector). Here, the block indicated by the motion vector of the target neighboring block may be a block covering a position indicated by the motion vector of the target neighboring block.

col 픽처에 대한 정보(collocated_from_l0_flag 및 collocated_ref_idx)는 슬라이스 단위로 결정되어 슬라이스 헤더에 명시적으로 기록될 수 있다. 예를 들어, collocated_from_l0_flag=1이고 collocated_ref_idx=2이면 L0 내 2의 인덱스가 할당된 참조픽처가 col 픽처로 결정되며, collocated_from_l0_flag=0이고 collocated_ref_idx=3이면 L1 내 3의 인덱스가 할당된 참조픽처가 col 픽처로 결정된다. Information about the col picture (collocated_from_l0_flag and collocated_ref_idx) may be determined in a slice unit and explicitly recorded in a slice header. For example, if collocated_from_l0_flag=1 and collocated_ref_idx=2, the reference picture to which the index of 2 in L0 is allocated is determined as the col picture, and if collocated_from_l0_flag=0 and collocated_ref_idx=3, the reference picture to which the index of 3 in L1 is allocated is a col picture Is determined by

col 블록이 결정되면, 설정부(720)는 col 블록의 예측 모드에 따라 col 블록의 베이스 움직임정보를 설정 또는 유도할 수 있다(S820).When the col block is determined, the setting unit 720 may set or derive the base motion information of the col block according to the prediction mode of the col block (S820).

베이스 움직임정보는 col 블록의 우하측 샘플을 커버하는 블록의 움직임정보 또는 col 블록의 중심부 샘플을 커버하는 중심부 블록(col 중심부 블록)의 움직임정보일 수 있다. 베이스 움직임정보에는 해당 블록의 예측 방향(베이스 예측 방향), 참조픽처 인덱스(베이스 참조픽처 인덱스) 및, 움직임벡터(베이스 움직임벡터)가 포함될 수 있다. The base motion information may be motion information of a block covering the lower right sample of the col block or motion information of a central block (col center block) covering the central sample of the col block. The base motion information may include a prediction direction (base prediction direction) of a corresponding block, a reference picture index (base reference picture index), and a motion vector (base motion vector).

베이스 움직임정보가 설정되면, 유도부(730)는 col 블록 내 하나 이상의 서브블록들(col 서브블록들) 각각의 예측 모드에 따라, col 서브블록들 각각의 움직임정보 또는 베이스 움직임정보로부터 SbTMVP(스케일링되기 전 SbTMVP)를 유도할 수 있다(S830).When the base motion information is set, the derivation unit 730 is SbTMVP (scaled from motion information or base motion information of each of the col subblocks) according to a prediction mode of each of one or more subblocks (col subblocks) in the col block. All SbTMVP) can be induced (S830).

서브블록들의 크기는 서브블록들의 움직임정보를 SbTMVP 모드에서 이용하기 위해 메모리(190/470)에 저장되는 단위 크기와 같을 수 있다. 예를 들어, 움직임정보가 메모리(190/470)에 8x8 단위로 저장된다면, SbTMVP 모드를 위한 서브블록들의 크기도 8x8일 수 있다.The size of the subblocks may be the same as the unit size stored in the memory 190/470 to use motion information of the subblocks in the SbTMVP mode. For example, if motion information is stored in the memory 190/470 in units of 8x8, the size of subblocks for the SbTMVP mode may also be 8x8.

col 서브블록들의 움직임정보는 col 서브블록 내 특정 위치의 샘플을 커버하는 블록의 움직임정보일 수 있다. 예를 들어, col 서브블록의 움직임정보는 col 서브블록의 중심부에 위치하는 샘플을 커버하는 중심부 블록(서브 중심부 블록)의 움직임정보일 수 있다. 서브 중심부 블록의 움직임정보에는 해당 블록의 예측 방향(서브 예측 방향), 참조픽처 인덱스(서브 참조픽처 인덱스) 및, 움직임벡터(서브 움직임벡터)가 포함될 수 있다.The motion information of the col subblocks may be motion information of a block covering a sample at a specific position in the col subblock. For example, the motion information of the col subblock may be motion information of a center block (sub center block) covering a sample located at the center of the col subblock. The motion information of the sub-center block may include a prediction direction (sub prediction direction), a reference picture index (sub reference picture index), and a motion vector (sub motion vector) of the corresponding block.

col 서브블록 별로 SbTMVP가 유도되면, 유도된 SbTMVP는 현재블록의 참조픽처에 적합한 형태로 스케일링되며, 스케일링된 SbTMVP가 현재블록 내 서브블록들을 위한 TMVP로 사용될 수 있다. 현재블록의 참조픽처는 collocated_from_l0_flag가 가리키는 참조픽처 리스트 내 첫 번째 픽처(0의 인덱스가 할당된 픽처)에 해당할 수 있다.When SbTMVP is derived for each col subblock, the derived SbTMVP is scaled in a form suitable for the reference picture of the current block, and the scaled SbTMVP can be used as TMVP for subblocks in the current block. The reference picture of the current block may correspond to the first picture (a picture to which an index of 0 is allocated) in the reference picture list indicated by collocated_from_l0_flag.

실시예 1 - SbTMVP 유도Example 1-SbTMVP induction

실시예 1은 SbTMVP를 유도하는 방법이다. 실시예 1은 MV shifting, base MV, 서브블록 MV 및 base MV 업데이트로 구분될 수 있다.Example 1 is a method of inducing SbTMVP. Embodiment 1 may be divided into MV shifting, base MV, subblock MV, and base MV update.

실시예 1-1 (MV shifting)Example 1-1 (MV shifting)

실시예 1-1은 대상 주변블록의 사용 가능성 여부 및 움직임정보에 기초하여 col 블록을 결정하는 방법이다.Embodiment 1-1 is a method of determining a col block based on the availability of a target neighboring block and motion information.

영상 부호화/복호화 장치는 대상 주변블록(예를 들어, A1 블록)을 파악 또는 확인하고(S910), A1 블록의 사용 가능성 여부(block_A1=available?) 및 움직임정보를 판단할 수 있다(S920, S940).The image encoding/decoding apparatus may identify or check a target neighboring block (eg, A1 block) (S910), and determine whether the A1 block is available (block_A1=available?) and motion information (S920, S940). ).

A1 블록이 사용 가능하면서 A1 블록의 L0 방향 참조픽처(ref_pic_L0_A1)가 col 픽처(col_pic)와 같으면(S920), col 픽처 내에서 A1 블록의 L0 방향 움직임정보(mvL0_A1)가 지시하는 블록(mvL0_A1에 따라 이동한 위치의 블록)이 col 블록으로 결정될 수 있다(S930).If the A1 block is available and the L0 direction reference picture (ref_pic_L0_A1) of the A1 block is the same as the col picture (col_pic) (S920), the block indicated by the L0 direction motion information (mv L0 _A1) of the A1 block within the col picture (mv block diagram of a mobile position, depending on _A1 L0) it can be determined by col block (S930).

S920 과정의 조건이 만족되지 않는 경우에는 S940 과정의 조건이 판단될 수 있다. 구체적으로, A1 블록이 사용 가능하면서 A1 블록의 L1 방향 참조픽처(ref_pic_L1_A1)가 col 픽처와 같으면(S940), col 픽처 내에서 A1 블록의 L1 방향 움직임정보(mvL1_A1)가 지시하는 블록(mvL1_A1에 따라 이동한 위치의 블록)이 col 블록으로 결정될 수 있다(S950).If the condition of the process S920 is not satisfied, the condition of the process S940 may be determined. Specifically, if the A1 block is available and the L1 direction reference picture (ref_pic_L1_A1) of the A1 block is the same as the col picture (S940), the block indicated by the L1 direction motion information (mv L1 _A1) of the A1 block within the col picture (mv block diagram of a mobile position, depending on _A1 L1) it can be determined by col block (S950).

S940 과정의 조건도 만족되지 않는 경우에는 col 픽처 내에서 현재블록의 현재픽처 내 위치와 같은 위치에 자리하는 블록이 col 블록으로 결정될 수 있다(S960).If the condition of the process S940 is also not satisfied, a block located in the same position as the current picture of the current block in the col picture may be determined as the col block (S960).

S920 과정과 S940 과정에서, A1 블록의 특정 방향 참조픽처와 col 픽처가 같은지 여부는 A1 블록의 특정 방향 참조픽처와 col 픽처 사이의 POC 차이가 "0"인지 여부로 판단될 수 있다. 또한, col 픽처 내에서 현재블록의 현재픽처 내 위치와 같은 위치에 자리하는 블록을 기준으로 하면, A1 블록의 특정 방향 움직임정보가 지시하는 블록이 col 블록으로 결정되는 것은, A1 블록의 특정 방향 움직임정보가 지시하는 방향과 크기만큼 MV shifting되는 것일 수 있다.In steps S920 and S940, whether the specific direction reference picture of the A1 block and the col picture are the same may be determined as whether the POC difference between the specific direction reference picture of the A1 block and the col picture is "0". In addition, based on a block located at the same position in the current picture as the current block in the col picture, the block indicated by the motion information in the specific direction of the A1 block is determined as the col block. It may be MV shifted by the direction and size indicated by the information.

MV shifting을 통해 col 픽처(col_pic) 내에서 col 블록(col_block)을 결정하는 방법에 대한 일 예가 도 10에 나타나 있다. 도 10 (a)는 MV shifting된 col 블록을 나타내며, 도 10 (b)는 현재픽처(curr_pic) 내 현재블록(curr_block)을 나타낸다.An example of a method of determining a col block (col_block) within a col picture (col_pic) through MV shifting is shown in FIG. 10. FIG. 10(a) shows the MV shifted col block, and FIG. 10(b) shows the current block (curr_block) in the current picture (curr_pic).

현재블록에 이웃하는 A1 블록이 사용 가능하며 A1 블록의 참조픽처가 col 픽처와 같은 경우에, 현재블록의 현재픽처 내 위치로부터 A1 블록의 움직임벡터(mvLX_A1)만큼 이동한 col 픽처 내 위치가 col 블록으로 결정될 수 있다. 즉, col 블록의 col 픽처 내 위치는 현재블록의 현재픽처 내 위치로부터 mvLX_A1만큼 shifting된 위치일 수 있다.Available the A1 block neighboring the current block, when the reference picture of the A1 block, such as col picture, the location to move by the motion vector (mv LX _A1) of A1 block from the location of the current block, the current picture col picture It can be determined with a col block. That is, the location of the picture col col block may be a shifting by mv LX _A1 from within the current picture block position of the current position.

실시예 1-2 (base MV)Example 1-2 (base MV)

실시예 1-2는 col 블록의 예측 모드에 따라 col 블록의 베이스 움직임정보를 설정하는 방법이다.Embodiment 1-2 is a method of configuring base motion information of a col block according to a prediction mode of a col block.

col 블록의 우하측 샘플을 커버하는 블록(col 우하측 블록)의 움직임정보 또는 col 블록의 중심부 샘플을 커버하는 중심부 블록(col 중심부 블록, col_ctr 블록)의 움직임정보가 베이스 움직임정보로 설정될 수 있다. 이하에서는 col_ctr 블록의 움직임정보가 베이스 움직임정보로 설정되는 예를 기준으로 하여 실시예 2에 대해 설명하도록 한다.Motion information of a block covering the lower right sample of the col block (lower right block of col) or the motion information of a central block covering the center sample of the col block (col center block, col_ctr block) may be set as the base motion information. . Hereinafter, the second embodiment will be described based on an example in which motion information of a col_ctr block is set as base motion information.

col_ctr 블록에 대한 일 예가 도 12에 나타나 있다. 도 12에 나타낸 바와 같이, col 블록은 다수 개의 서브블록들(col 서브블록들)로 구획될 수 있다. col_ctr은 col 블록의 중심부에 위치한 샘플을 나타내며, “x” 표시는 col 서브블록들 각각의 중심부에 위치한 샘플(sb_ctr)을 나타낸다.An example of the col_ctr block is shown in FIG. 12. As shown in FIG. 12, the col block may be divided into a plurality of subblocks (col subblocks). col_ctr represents a sample located at the center of the col block, and “x” represents a sample (sb_ctr) located at the center of each of the col subblocks.

영상 부호화/복호화 장치는 col_ctr 블록의 예측 모드를 판단할 수 있다(S1110).The image encoding/decoding apparatus may determine a prediction mode of the col_ctr block (S1110).

col_ctr 블록의 예측 모드가 인터인 경우에는 col_ctr 블록의 움직임정보가 존재할 수 있으며, col_ctr 블록의 예측 모드가 인터가 아닌 경우에는 col_ctr 블록의 움직임정보가 존재하지 않을 수 있다.When the prediction mode of the col_ctr block is inter, motion information of the col_ctr block may exist, and when the prediction mode of the col_ctr block is not inter, motion information of the col_ctr block may not exist.

따라서, 영상 부호화/복호화 장치는 col_ctr 블록의 예측 모드가 인터인 경우에 col_ctr 블록의 움직임정보(mvcol_ctr)를 col 블록의 베이스 움직임정보로 설정할 수 있다(S1120). 이와 달리, 영상 부호화/복호화 장치는 col_ctr 블록의 예측 모드가 인터가 아닌 경우에 미리 설정된 움직임정보(미리 설정된 움직임벡터)를 col 블록의 베이스 움직임정보로 설정할 수 있다(S1130). 여기서, 미리 설정된 움직임벡터는 제로 움직임벡터 (0, 0)일 수 있다.Accordingly, when the prediction mode of the col_ctr block is inter, the image encoding/decoding apparatus may set the motion information mv col_ctr of the col_ctr block as the base motion information of the col block (S1120). In contrast, when the prediction mode of the col_ctr block is not inter, the image encoding/decoding apparatus may set preset motion information (a preset motion vector) as the base motion information of the col block (S1130). Here, the preset motion vector may be a zero motion vector (0, 0).

실시형태에 따라, 영상 부호화/복호화 장치는 col 블록의 예측 모드에 무관하게 미리 설정된 움직임정보를 col 블록의 베이스 움직임정보로 설정할 수도 있다. 즉, col 블록의 예측 모드가 인터인 경우에도 미리 설정된 움직임정보가 베이스 움직임정보로 설정될 수 있다.According to an embodiment, the image encoding/decoding apparatus may set preset motion information as the base motion information of the col block irrespective of the prediction mode of the col block. That is, even when the prediction mode of the col block is inter, preset motion information may be set as the base motion information.

실시예 1-3 (서브블록 MV)Example 1-3 (Subblock MV)

실시예 1-3은 col 서브블록들의 예측 모드에 따라 SbTMVP(스케일링되기 전 SbTMVP=서브블록 MV)를 유도하는 방법이다.Embodiment 1-3 is a method of deriving SbTMVP (SbTMVP before scaling = subblock MV) according to prediction modes of col subblocks.

영상 부호화/복호화 장치는 col 서브블록 내 중심부에 위치하는 샘플(sb_ctr)을 커버하는 중심부 블록(sb_ctr 블록)의 예측 모드를 판단할 수 있다(S1310).The apparatus for encoding/decoding an image may determine a prediction mode of a central block (sb_ctr block) covering a sample sb_ctr located at the center of the col subblock (S1310).

sb_ctr 블록의 예측 모드가 인터인 경우에는 sb_ctr 블록의 움직임정보가 존재(메모리에 저장)할 수 있으며, sb_ctr 블록의 예측 모드가 인터가 아닌 경우에는 sb_ctr 블록의 움직임정보가 존재하지 않을 수 있다.When the prediction mode of the sb_ctr block is inter, motion information of the sb_ctr block may exist (stored in the memory), and when the prediction mode of the sb_ctr block is not inter, motion information of the sb_ctr block may not exist.

따라서, 영상 부호화/복호화 장치는 sb_ctr 블록의 예측 모드가 인터인 경우에 sb_ctr 블록의 움직임정보(mvsb_ctr)를 SbTMVP(mvsb)로 유도할 수 있다(S1320). 이와 달리, 영상 부호화/복호화 장치는 sb_ctr 블록의 예측 모드가 인터가 아닌 경우에 베이스 움직임정보(mvbase)를 SbTMVP로 유도할 수 있다(S1330).Accordingly, when the prediction mode of the sb_ctr block is inter, the video encoding/decoding apparatus may derive the motion information (mv sb_ctr ) of the sb_ctr block as SbTMVP (mv sb ) (S1320). In contrast, the apparatus for encoding/decoding an image may derive the base motion information mv base as SbTMVP when the prediction mode of the sb_ctr block is not inter (S1330).

col 서브블록들의 SbTMVP를 유도하는 과정은 다양한 스캐닝 타입에 따라 수행될 수 있다. 예를 들어, SbTMVP를 유도하는 과정은 horizontal 스캐닝 타입에 따라 서브블록들에 대해 순차적으로 수행될 수 있다.The process of inducing SbTMVP of col subblocks may be performed according to various types of scanning. For example, the process of inducing SbTMVP may be sequentially performed on subblocks according to a horizontal scanning type.

실시예 1-4 (base MV 업데이트)Example 1-4 (base MV update)

실시예 1-4는 베이스 움직임정보를 업데이트하는 방법이다.Embodiment 1-4 is a method of updating base motion information.

실시예 1-2에서는 col 중심부 블록(col 블록의 중심부에 위치하는 샘플을 커버하는 블록)의 움직임정보 또는, 미리 설정된 움직임정보를 베이스 움직임정보로 설정하였다. 실시예 1-4에서는 실시예 1-2에서 설정된 베이스 움직임정보를 서브 중심부 블록(sb_ctr 블록, col 서브블록들의 중심부에 위치하는 샘플을 커버하는 블록)의 움직임정보로 업데이트하는 방법을 제안한다.In Example 1-2, motion information of a col center block (a block covering a sample located in the center of the col block) or preset motion information is set as the base motion information. Embodiment 1-4 proposes a method of updating the base motion information set in Embodiment 1-2 with motion information of a sub center block (sb_ctr block, a block covering a sample located at the center of col subblocks).

영상 부호화/복호화 장치는 sb_ctr 블록의 예측 모드를 판단하고(S1410), 판단 결과에 따라 SbTMVP(mvsb)를 유도할 수 있다(S1420, S1440). sb_ctr 블록의 예측 모드가 인터인 경우에는 sb_ctr 블록의 움직임정보(mvsb_ctr)가 SbTMVP로 유도되며(S1420), sb_ctr 블록의 예측 모드가 인터가 아닌 경우에는 베이스 움직임정보(mvbase)가 SbTMVP로 유도될 수 있다(S1440).The image encoding/decoding apparatus may determine the prediction mode of the sb_ctr block (S1410), and may derive SbTMVP(mv sb ) according to the determination result (S1420, S1440). When the prediction mode of the sb_ctr block is inter, the motion information (mv sb_ctr ) of the sb_ctr block is derived as SbTMVP (S1420), and when the prediction mode of the sb_ctr block is not inter, the base motion information (mv base ) is derived as SbTMVP. It can be done (S1440).

영상 부호화/복호화 장치(업데이트부)는 sb_ctr 블록의 예측 모드가 인터인 경우(sb_ctr 블록의 움직임정보(mvsb_ctr)가 SbTMVP로 유도된 경우)에, 베이스 움직임정보(mvbase)를 유도된 SbTMVP(즉, sb_ctr 블록의 움직임정보(mvsb_ctr)로 업데이트할 수 있다(S1430).The image encoding / decoding apparatus of (update unit) in the case where the prediction mode of sb_ctr block inter (motion information sb_ctr blocks (mv sb_ctr) if induced by SbTMVP), derived base motion information (mv base) SbTMVP ( That is, the motion information (mv sb_ctr ) of the sb_ctr block may be updated (S1430).

업데이트된 베이스 움직임정보는 다음 번째의 col 서브블록에 대한 SbTMVP를 유도하는 과정에 이용될 수 있다. 예를 들어, t-1 번째 col 서브블록의 업데이트된 베이스 움직임정보가 t 번째 col 서브블록의 SbTMVP를 유도하는 과정에 이용될 수 있다. The updated base motion information may be used in a process of inducing SbTMVP for the next col subblock. For example, the updated base motion information of the t-1 th col subblock may be used in a process of inducing the SbTMVP of the t th col subblock.

실시예 1-5 (base MV 업데이트)Example 1-5 (base MV update)

실시예 1-5도 베이스 움직임정보를 업데이트하는 방법이다.Embodiment 1-5 is also a method of updating base motion information.

영상 부호화/복호화 장치는 sb_ctr 블록의 예측 모드를 판단하고(S1510), 판단 결과에 따라 SbTMVP(mvsb)를 유도할 수 있다(S1520, S1550). sb_ctr 블록의 예측 모드가 인터인 경우에는 sb_ctr 블록의 움직임정보(mvsb_ctr)가 SbTMVP로 유도되며(S1520), sb_ctr 블록의 예측 모드가 인터가 아닌 경우에는 베이스 움직임정보(mvbase)가 SbTMVP로 유도될 수 있다(S1550).The image encoding/decoding apparatus may determine the prediction mode of the sb_ctr block (S1510), and may derive SbTMVP(mv sb ) according to the determination result (S1520, S1550). When the prediction mode of the sb_ctr block is inter, the motion information (mv sb_ctr ) of the sb_ctr block is derived as SbTMVP (S1520), and when the prediction mode of the sb_ctr block is not inter, the base motion information (mv base ) is derived as SbTMVP. Can be (S1550).

영상 부호화/복호화 장치는 sb_ctr 블록의 예측 모드가 인터인 경우(sb_ctr 블록의 움직임정보(mvsb_ctr)가 SbTMVP로 유도된 경우)에, 베이스 움직임정보(mvbase)가 미리 설정된 움직임정보(예를 들어, 제로 움직임벡터를 가지는 움직임정보)와 같은지 여부를 판단하고(S1530), 판단 결과에 따라 베이스 움직임정보의 업데이트 여부를 결정할 수 있다.The image encoding / decoding apparatus, if the prediction mode of sb_ctr block inter (when the motion information (mv sb_ctr) of sb_ctr block is guided to SbTMVP), the base motion information (mv base) is pre-set motion information (e. G. , Motion information having a zero motion vector) may be determined (S1530), and whether to update the base motion information may be determined according to the determination result.

베이스 움직임정보가 미리 설정된 움직임정보와 같지 않은 경우에는 베이스 움직임정보에 대한 업데이트 과정이 수행되지 않으며, 베이스 움직임정보가 미리 설정된 움직임정보와 같은 경우에 베이스 움직임정보에 대한 업데이트 과정이 수행될 수 있다. If the base motion information is not the same as the preset motion information, the update process for the base motion information is not performed, and if the base motion information is the same as the preset motion information, the update process for the base motion information may be performed.

후자의 경우, 영상 부호화/복호화 장치는 베이스 움직임정보를 유도된 SbTMVP(즉, sb_ctr 블록의 움직임정보(mvsb_ctr)로 업데이트할 수 있다(S1540). 여기서, SbTMVP는 스캐닝 순서 상 첫 번째로 사용 가능한 sb_ctr 블록(인터 모드로 예측된 첫 번째 sb_ctr 블록)의 움직임정보에 해당할 수 있다. In the latter case, the image encoding/decoding apparatus may update the base motion information to the derived SbTMVP (ie, motion information (mv sb_ctr ) of the sb_ctr block (S1540)). It may correspond to motion information of the sb_ctr block (the first sb_ctr block predicted in the inter mode).

베이스 움직임정보가 업데이트되면, 베이스 움직임정보를 업데이트하는 과정은 이후에 수행되지 않을 수 있다. 즉, 인터 모드로 예측된 첫 번째 sb_ctr 블록의 움직임정보를 이용하여 베이스 움직임정보에 대한 업데이트가 수행되면, 더 이상의 업데이트 과정이 수행되지 않고, 업데이트된 베이스 움직임정보가 다른 col 서브블록들의 SbTMVP를 유도하는 과정에 이용될 수 있다.When the base motion information is updated, the process of updating the base motion information may not be performed later. That is, when the base motion information is updated using the motion information of the first sb_ctr block predicted in the inter mode, no further update process is performed, and the updated base motion information induces SbTMVP of other col subblocks. It can be used in the process of doing.

실시예 2 - SbTMVP 모드를 위한 신택스 요소들Example 2-Syntax elements for SbTMVP mode

실시예 2에서는 SbTMVP 모드를 위한 신택스 요소들이 제안된다. 실시예 2는 1) SbTMVP 모드의 적용 여부를 전용 신택스 요소를 이용하여 지시하는 경우, 2) 어파인 머지 후보 리스트(affine merge candidates list) 내에 포함된 SbTMVP를 지시하는 경우 및, 3) 일반 머지 후보 리스트(regular merge candidates list) 내에 포함된 SbTMVP를 지시하는 경우로 구분될 수 있다.In Embodiment 2, syntax elements for the SbTMVP mode are proposed. Example 2 is a case where 1) whether to apply the SbTMVP mode is indicated using a dedicated syntax element, 2) a case where SbTMVP included in an affine merge candidates list is indicated, and 3) a general merge candidate It can be classified as a case of indicating SbTMVP included in the regular merge candidates list.

실시예 2-1 (전용 신택스 요소)Example 2-1 (dedicated syntax element)

실시예 2-1은 SbTMVP 모드의 적용 여부를 지시하는 전용 신택스 요소를 시그널링하는 방법이다. 실시예 2-1에서는 SbTMVP 모드를 어파인 모드 또는 일반 머지 모드를 위한 하나의 후보로 취급하지 않고, 별도의 단독적인 모드로 취급한다.Embodiment 2-1 is a method of signaling a dedicated syntax element indicating whether the SbTMVP mode is applied. In Example 2-1, the SbTMVP mode is not treated as a single candidate for the affine mode or the general merge mode, but is treated as a separate single mode.

영상 부호화 장치는 SbTMVP 모드의 인에이블(enabled) 여부를 지시하는 플래그(sbtmvp_enabled_flag)를 부호화하여 시그널링할 수 있다. sbtmvp_enabled_flag는 SPS, PPS, slice와 같은 상위 레벨의 헤더에서 정의되어 시그널링될 수 있다. 영상 복호화 장치는 비트스트림으로부터 sbtmvp_enabled_flag를 복호화할 수 있다.The video encoding apparatus may encode and signal a flag (sbtmvp_enabled_flag) indicating whether the SbTMVP mode is enabled. sbtmvp_enabled_flag may be defined and signaled in a higher level header such as SPS, PPS, and slice. The video decoding apparatus may decode sbtmvp_enabled_flag from the bitstream.

영상 부호화 장치는 sbtmvp_enabled_flag=1인 경우에 sbtmvp_flag를 부호화하여 시그널링할 수 있다. sbtmvp_flag는 현재블록에 SbTMVP 모드가 적용되는지 여부를 지시하는 전용 신택스 요소로서, sbtmvp_flag=0은 SbTMVP 모드가 적용되지 않음을 지시하며, sbtmvp_flag=1은 SbTMVP 모드가 적용됨을 지시할 수 있다. 영상 복호화 장치는 sbtmvp_enabled_flag=1인 경우에(S1610) sbtmvp_flag를 비트스트림으로부터 복호화할 수 있다(S1620).The video encoding apparatus may encode and signal sbtmvp_flag when sbtmvp_enabled_flag=1. sbtmvp_flag is a dedicated syntax element indicating whether the SbTMVP mode is applied to the current block, sbtmvp_flag=0 indicates that the SbTMVP mode is not applied, and sbtmvp_flag=1 may indicate that the SbTMVP mode is applied. When sbtmvp_enabled_flag=1 (S1610), the video decoding apparatus may decode sbtmvp_flag from the bitstream (S1620).

영상 부호화 장치는 sbtmvp_flag=1인 경우에 SbTMVP 모드가 적용되므로 추가적인 신택스 요소들(merge_subblock_flag 및 merge_subblock_idx)을 시그널링하지 않는다. 영상 복호화 장치는 sbtmvp_flag=1인 경우에 현재블록을 SbTMVP 모드로 예측할 수 있다.The video encoding apparatus does not signal additional syntax elements (merge_subblock_flag and merge_subblock_idx) because the SbTMVP mode is applied when sbtmvp_flag=1. The video decoding apparatus may predict the current block in the SbTMVP mode when sbtmvp_flag=1.

영상 부호화 장치는 sbtmvp_flag=0인 경우에 어파인 머지 모드의 적용 여부를 지시하는 merge_subblock_flag를 부호화하여 시그널링하고, merge_subblock_flag=1인 경우에 어파인 머지 후보 리스트 내 어느 하나의 후보를 지시하는 merge_subblock_idx를 부호화하여 시그널링할 수 있다. 영상 복호화 장치는 sbtmvp_flag=0인 경우에 비트스트림으로부터 merge_subblock_flag를 복호화하며(S1640), merge_subblock_flag=1인 경우에(S1650) 비트스트림으로부터 merge_subblock_idx를 복호화할 수 있다(S1660). 이 후, 영상 복호화 장치는 merge_subblock_idx가 지시하는 후보의 움직임정보에 기초하여 현재블록을 어파인 모드로 예측할 수 있다.When sbtmvp_flag=0, the video encoding apparatus encodes and signals the merge_subblock_flag indicating whether to apply the affine merge mode, and when merge_subblock_flag=1, the video encoding apparatus encodes the merge_subblock_idx indicating any one candidate in the affine merge candidate list. It can be signaled. The video decoding apparatus may decode merge_subblock_flag from the bitstream when sbtmvp_flag=0 (S1640), and decode merge_subblock_idx from the bitstream when merge_subblock_flag=1 (S1650) (S1660). Thereafter, the video decoding apparatus may predict the current block in an affine mode based on motion information of a candidate indicated by merge_subblock_idx.

이상에서 설명된 실시예 2-1의 신택스 구조를 나타내면 표 4와 같다.Table 4 shows the syntax structure of Example 2-1 described above.

Figure pat00008
Figure pat00008

실시예 2-1에서, 어파인 머지 후보 리스트에는 SbTMVP 후보를 제외한 1) inherited 후보들, 2) constructed 후보들 및, 3) 제로 움직임 벡터 후보들이 포함될 수 있다.In the embodiment 2-1, the affine merge candidate list may include 1) inherited candidates, 2) constructed candidates, and 3) zero motion vector candidates excluding the SbTMVP candidate.

inherited 후보들이란, 어파인 모드로 예측된 주변블록들(또는, 어파인 모드로 예측된 블록들의 움직임정보)을 의미할 수 있다. 어파인 머지 후보 리스트에는 최대 2개의 inherited 후보들이 포함될 수 있다. 현재블록의 좌측 주변블록들(A0, A1) 중에서 어파인 모드로 예측된 어느 하나와, 현재블록의 상측 주변블록들(B0, B1, B2) 중에서 어파인 모드로 예측된 어느 하나가 어파인 머지 후보 리스트에 inherited 후보로 포함될 수 있다. The inherited candidates may mean neighboring blocks predicted in the afine mode (or motion information of blocks predicted in the afine mode). Up to two inherited candidates may be included in the affine merge candidate list. One of the left neighboring blocks (A0, A1) of the current block, predicted as afine mode, and one of the upper neighboring blocks (B0, B1, B2) of the current block, predicted as afine mode, are merged It may be included as an inherited candidate in the candidate list.

constructed 후보들이란, 일반 인터 모드로 예측된 블록들로부터 도출되는 후보를 의미할 수 있다. 어파인 머지 후보 리스트에는 최대 6개의 constructed 후보들이 포함될 수 있다. 현재블록의 주변블록들 중에서 일반 인터 모드로 예측된 블록들로부터 어파인 모델이 생성될 수 있으며, 생성된 어파인 모델이 어파인 머지 후보 리스트에 constructed 후보로 포함될 수 있다.Constructed candidates may mean candidates derived from blocks predicted in a general inter mode. Up to six constructed candidates can be included in the affine merge candidate list. An affine model may be generated from blocks predicted in a general inter mode among neighboring blocks of the current block, and the generated affine model may be included as a constructed candidate in the afine merge candidate list.

이와 같이, 실시예 2-1에서는 실제 어파인 모델에 대한 후보들만이 어파인 머지 후보 리스트에 포함될 수 있다.As described above, in Example 2-1, only candidates for the actual affine model may be included in the affine merge candidate list.

실시예 2-2 (어파인 머지 후보 리스트 내에 포함)Example 2-2 (included in affine merge candidate list)

실시예 2-2는 SbTMVP를 어파인 머지 후보 리스트에 포함시키고, SbTMVP 모드의 적용 여부는 merge_subblock_idx의 값에 의해 결정하는 방법이다.Example 2-2 is a method of including SbTMVP in the affine merge candidate list, and determining whether to apply the SbTMVP mode based on the value of merge_subblock_idx.

실시예 2-2에서, 어파인 머지 후보 리스트에는 1) SbTMVP 후보, 2) inherited 후보들, 3) constructed 후보들 및, 4) 제로 움직임 벡터 후보들이 포함될 수 있다.In Example 2-2, the affine merge candidate list may include 1) SbTMVP candidates, 2) inherited candidates, 3) constructed candidates, and 4) zero motion vector candidates.

영상 부호화 장치는 merge_subblock_flag를 부호화하여 시그널링하고, merge_subblock_flag=1인 경우에 merge_subblock_idx를 부호화하여 시그널링할 수 있다. 영상 복호화 장치는 비트스트림으로부터 merge_subblock_flag를 복호화하며, merge_subblock_flag=1인 경우에 비트스트림으로부터 merge_subblock_idx를 복호화할 수 있다. The video encoding apparatus may encode and signal merge_subblock_flag, and may encode and signal merge_subblock_idx when merge_subblock_flag=1. The video decoding apparatus may decode merge_subblock_flag from the bitstream, and may decode merge_subblock_idx from the bitstream when merge_subblock_flag=1.

merge_subblock_idx가 SbTMVP 후보를 지시하는 경우에는 SbTMVP 모드에 따라 현재블록의 예측이 수행되며, merge_subblock_idx가 어파인 후보를 지시하는 경우에는 어파인 모드에 따라 현재블록의 예측이 수행될 수 있다.When merge_subblock_idx indicates the SbTMVP candidate, prediction of the current block is performed according to the SbTMVP mode, and when merge_subblock_idx indicates the affine candidate, prediction of the current block may be performed according to the affine mode.

이상에서 설명된 실시예 2-2의 신택스 구조를 나타내면 표 5와 같다.Table 5 shows the syntax structure of Example 2-2 described above.

Figure pat00009
Figure pat00009

sbtmvp_enabled_flag는 SPS, PPS, slice와 같은 상위 레벨의 헤더에서 정의되어 시그널링될 수 있다. sbtmvp_enabled_flag의 값은 어파인 모드의 인에이블 여부를 지시하는 신택스 요소(affine_enabled_flag)의 값에 따라 달라질 수 있다. 예를 들어, 어파인 모드가 "off"된 경우(affine_enabled_flag=0), sbtmvp_enabled_flag도 "off"로 설정될 수 있다(sbtmvp_enabled_flag=0). 즉, 이 경우, sbtmvp_enabled_flag의 값이 "off"로 업데이트 또는 유도될 수 있다.sbtmvp_enabled_flag may be defined and signaled in a higher level header such as SPS, PPS, and slice. The value of sbtmvp_enabled_flag may vary according to a value of a syntax element (affine_enabled_flag) indicating whether the affine mode is enabled. For example, when the afine mode is "off" (affine_enabled_flag=0), sbtmvp_enabled_flag may also be set to "off" (sbtmvp_enabled_flag=0). That is, in this case, the value of sbtmvp_enabled_flag may be updated or induced to “off”.

실시예 2-3 (일반 머지 후보 리스트 내에 포함)Example 2-3 (included in the general merge candidate list)

실시예 2-3은 SbTMVP를 일반 머지 후보 리스트에 포함시키고, SbTMVP 모드의 적용 여부는 merge_idx의 값에 의해 결정하는 방법이다.In Example 2-3, SbTMVP is included in the general merge candidate list, and whether or not to apply the SbTMVP mode is determined by the value of merge_idx.

실시예 2-3에서, 일반 머지 후보 리스트에는 1) 공간적 후보들, 2) 시간적 후보들, 3) SbTMVP 후보(sbtmvp_enabled_flag=1인 경우에 포함), 4) HMVP(history-based MVP) 후보, 5) 쌍-평균(pairwise average) 및, 6) 제로 움직임 벡터 후보들이 포함될 수 있다. 여기서, 2) 후보 내지 6) 후보는 '일반 머지 후보'로 지칭될 수 있다.In Example 2-3, the general merge candidate list includes 1) spatial candidates, 2) temporal candidates, 3) SbTMVP candidate (included in the case of sbtmvp_enabled_flag=1), 4) HMVP (history-based MVP) candidate, 5) pair -A pairwise average and 6) zero motion vector candidates may be included. Here, 2) candidates to 6) candidates may be referred to as'general merge candidates'.

영상 부호화 장치는 머지 모드의 적용 여부를 지시하는 regular_merge_flag를 부호화하여 시그널링하고, regular_merge_flag=1인 경우에 merge_idx를 부호화하여 시그널링할 수 있다. 영상 복호화 장치는 비트스트림으로부터 regular_merge_flag를 복호화하며, regular_merge_flag=1인 경우에 비트스트림으로부터 merge_idx를 복호화할 수 있다. The video encoding apparatus may encode and signal regular_merge_flag indicating whether the merge mode is applied, and may encode and signal merge_idx when regular_merge_flag=1. The video decoding apparatus decodes regular_merge_flag from the bitstream, and may decode merge_idx from the bitstream when regular_merge_flag=1.

merge_idx가 SbTMVP 후보를 지시하는 경우에는 SbTMVP 모드에 따라 현재블록의 예측이 수행되며, merge_idx가 일반 머지 후보를 지시하는 경우에는 머지 모드에 따라 현재블록의 예측이 수행될 수 있다.When merge_idx indicates the SbTMVP candidate, prediction of the current block is performed according to the SbTMVP mode, and when merge_idx indicates the general merge candidate, prediction of the current block may be performed according to the merge mode.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present embodiment, and those of ordinary skill in the technical field to which the present embodiment belongs will be able to make various modifications and variations without departing from the essential characteristics of the present embodiment. Accordingly, the present embodiments are not intended to limit the technical idea of the present embodiment, but to explain the technical idea, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of this embodiment should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present embodiment.

120, 440: 예측부 130: 감산기
170, 450: 가산기 180, 460: 필터부
120, 440: prediction unit 130: subtractor
170, 450: adder 180, 460: filter unit

Claims (14)

현재블록에 대응하는 collocated 블록 내 하나 이상의 서브블록 별로 시간적 움직임벡터 예측자(temporal motion vector predictor)를 유도하는 방법으로서,
상기 현재블록에 이웃하는 주변블록들 중에서 어느 하나인 대상 주변블록의 사용 가능성 여부 및 움직임정보에 기초하여, collocated 픽처 내에서 상기 collocated 블록을 결정하는 단계;
상기 collocated 블록의 예측 모드에 따라, 상기 collocated 블록의 베이스 움직임벡터를 설정하는 단계; 및
상기 collocated 블록 내 하나 이상의 서브블록들 각각의 예측 모드에 따라, 상기 collocated 블록 내 서브블록들의 움직임벡터 또는 상기 베이스 움직임벡터로부터 상기 시간적 움직임벡터 예측자를 유도하는 단계를 포함하는, 시간적 움직임벡터 예측자 유도 방법.
As a method of deriving a temporal motion vector predictor for each of one or more subblocks in a collocated block corresponding to a current block,
Determining the collocated block in a collocated picture based on whether or not a target neighboring block, which is one of neighboring blocks adjacent to the current block, is available and motion information;
Setting a base motion vector of the collocated block according to the prediction mode of the collocated block; And
Deriving a temporal motion vector predictor from the base motion vector or the motion vector of the sub-blocks in the collocated block according to the prediction mode of each of the one or more sub-blocks in the collocated block. Way.
제1항에 있어서,
상기 결정하는 단계는,
상기 대상 주변블록이 사용 가능하며 상기 대상 주변블록의 참조픽처가 상기 collocated 픽처와 같은 경우, 상기 collocated 픽처 내에서 상기 대상 주변블록의 움직임벡터에 따라 이동한 위치의 블록을 상기 collocated 블록으로 결정하는, 시간적 움직임벡터 예측자 유도 방법.
The method of claim 1,
The determining step,
When the target neighboring block is available and the reference picture of the target neighboring block is the same as the collocated picture, determining a block at a position moved according to the motion vector of the target neighboring block within the collocated picture as the collocated block, Temporal motion vector predictor derivation method.
제1항에 있어서,
상기 설정하는 단계는,
상기 collocated 블록의 중심부를 커버하는 중심부 블록의 예측 모드가 인터인 경우, 상기 중심부 블록의 움직임벡터를 상기 베이스 움직임벡터로 설정하는, 시간적 움직임벡터 예측자 유도 방법.
The method of claim 1,
The setting step,
When the prediction mode of the center block covering the center of the collocated block is inter, the motion vector of the center block is set as the base motion vector.
제3항에 있어서,
상기 설정하는 단계는,
상기 중심부 블록의 예측 모드가 인터가 아닌 경우, 미리 설정된 움직임벡터를 상기 베이스 움직임벡터로 설정하는, 시간적 움직임벡터 예측자 유도 방법.
The method of claim 3,
The setting step,
When the prediction mode of the center block is not inter, a motion vector set in advance is set as the base motion vector.
제1항에 있어서,
상기 유도하는 단계는,
상기 collocated 블록 내 서브블록들의 중심부를 커버하는 중심부 블록의 예측 모드가 인터인 경우, 상기 중심부 블록의 움직임벡터로부터 상기 시간적 움직임벡터 예측자를 유도하는, 시간적 움직임벡터 예측자 유도 방법.
The method of claim 1,
The inducing step,
When the prediction mode of the center block covering the center of the subblocks in the collocated block is inter, the temporal motion vector predictor derivation method is derived from the motion vector of the center block.
제5항에 있어서,
상기 베이스 움직임벡터를 상기 중심부 블록의 움직임벡터로 업데이트하는 단계를 더 포함하는, 시간적 움직임벡터 예측자 유도 방법.
The method of claim 5,
The method of deriving a temporal motion vector predictor further comprising the step of updating the base motion vector to a motion vector of the central block.
제6항에 있어서,
상기 업데이트하는 단계는,
상기 베이스 움직임벡터가 미리 설정된 움직임벡터인 경우, 상기 베이스 움직임벡터를 상기 중심부 블록의 움직임벡터로 업데이트하는, 시간적 움직임벡터 예측자 유도 방법.
The method of claim 6,
The updating step,
When the base motion vector is a preset motion vector, the base motion vector is updated to a motion vector of the central block.
현재블록에 대응하는 collocated 블록 내 하나 이상의 서브블록 별로 시간적 움직임벡터 예측자(temporal motion vector predictor)를 유도하는 영상 복호화 장치로서,
상기 현재블록에 이웃하는 주변블록들 중에서 어느 하나인 대상 주변블록의 사용 가능성 여부 및 움직임정보에 기초하여, collocated 픽처 내에서 상기 collocated 블록을 결정하는 결정부;
상기 collocated 블록의 예측 모드에 따라, 상기 collocated 블록의 베이스 움직임벡터를 설정하는 설정부; 및
상기 collocated 블록 내 하나 이상의 서브블록들 각각의 예측 모드에 따라, 상기 collocated 블록 내 서브블록들의 움직임벡터 또는 상기 베이스 움직임벡터로부터 상기 시간적 움직임벡터 예측자를 유도하는 유도부를 포함하는, 영상 복호화 장치.
As an image decoding apparatus for inducing a temporal motion vector predictor for each of one or more subblocks in a collocated block corresponding to a current block,
A determination unit for determining the collocated block in a collocated picture based on the availability of a target neighboring block, which is one of neighboring blocks adjacent to the current block, and motion information;
A setting unit for setting a base motion vector of the collocated block according to the prediction mode of the collocated block; And
A video decoding apparatus comprising a derivation unit for inducing the temporal motion vector predictor from a motion vector of subblocks in the collocated block or the base motion vector according to a prediction mode of each of one or more subblocks in the collocated block.
제8항에 있어서,
상기 결정부는,
상기 대상 주변블록이 사용 가능하며 상기 대상 주변블록의 참조픽처가 상기 collocated 픽처와 같은 경우, 상기 collocated 픽처 내에서 상기 대상 주변블록의 움직임벡터에 따라 이동한 위치의 블록을 상기 collocated 블록으로 결정하는, 영상 복호화 장치.
The method of claim 8,
The determination unit,
When the target neighboring block is available and the reference picture of the target neighboring block is the same as the collocated picture, determining a block at a position moved according to the motion vector of the target neighboring block within the collocated picture as the collocated block, Video decoding device.
제8항에 있어서,
상기 설정부는,
상기 collocated 블록의 중심부를 커버하는 중심부 블록의 예측 모드가 인터인 경우, 상기 중심부 블록의 움직임벡터를 상기 베이스 움직임벡터로 설정하는, 영상 복호화 장치.
The method of claim 8,
The setting unit,
When the prediction mode of the center block covering the center of the collocated block is inter, the motion vector of the center block is set as the base motion vector.
제10항에 있어서,
상기 설정부는,
상기 중심부 블록의 예측 모드가 인터가 아닌 경우, 미리 설정된 움직임벡터를 상기 베이스 움직임벡터로 설정하는, 영상 복호화 장치.
The method of claim 10,
The setting unit,
When the prediction mode of the center block is not inter, a preset motion vector is set as the base motion vector.
제8항에 있어서,
상기 유도부는,
상기 collocated 블록 내 서브블록들의 중심부를 커버하는 중심부 블록의 예측 모드가 인터인 경우, 상기 중심부 블록의 움직임벡터로부터 상기 시간적 움직임벡터 예측자를 유도하는, 영상 복호화 장치.
The method of claim 8,
The induction part,
When the prediction mode of the center block covering the center of the subblocks in the collocated block is inter, the temporal motion vector predictor is derived from the motion vector of the center block.
제12항에 있어서,
상기 베이스 움직임벡터를 상기 중심부 블록의 움직임벡터로 업데이트하는 업데이트부를 더 포함하는, 영상 복호화 장치.
The method of claim 12,
The image decoding apparatus further comprising an update unit for updating the base motion vector to the motion vector of the central block.
제13항에 있어서,
상기 업데이트부는,
상기 베이스 움직임벡터가 미리 설정된 움직임벡터인 경우, 상기 베이스 움직임벡터를 상기 중심부 블록의 움직임벡터로 업데이트하는, 영상 복호화 장치.
The method of claim 13,
The update unit,
When the base motion vector is a preset motion vector, the base motion vector is updated to a motion vector of the central block.
KR1020200055649A 2019-09-23 2020-05-11 Method and apparatus for deriving temporal motion vector predictor KR20210035036A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190116796 2019-09-23
KR1020190116796 2019-09-23

Publications (1)

Publication Number Publication Date
KR20210035036A true KR20210035036A (en) 2021-03-31

Family

ID=75237832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200055649A KR20210035036A (en) 2019-09-23 2020-05-11 Method and apparatus for deriving temporal motion vector predictor

Country Status (1)

Country Link
KR (1) KR20210035036A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211492A1 (en) * 2021-04-02 2022-10-06 현대자동차주식회사 Video coding method and device using decoder-side motion compensation
WO2024005456A1 (en) * 2022-06-27 2024-01-04 현대자동차주식회사 Image encoding/decoding method and device, and recording medium on which bitstream is stored
WO2024005616A1 (en) * 2022-07-01 2024-01-04 엘지전자 주식회사 Image encoding/decoding method and device, and recording medium having bitstream stored thereon

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211492A1 (en) * 2021-04-02 2022-10-06 현대자동차주식회사 Video coding method and device using decoder-side motion compensation
WO2024005456A1 (en) * 2022-06-27 2024-01-04 현대자동차주식회사 Image encoding/decoding method and device, and recording medium on which bitstream is stored
WO2024005616A1 (en) * 2022-07-01 2024-01-04 엘지전자 주식회사 Image encoding/decoding method and device, and recording medium having bitstream stored thereon

Similar Documents

Publication Publication Date Title
CN109804626B (en) Method and apparatus for encoding and decoding image and recording medium for storing bit stream
US11838544B2 (en) Prediction method using current picture referencing mode, and video decoding device therefor
US11671584B2 (en) Inter-prediction method and video decoding apparatus using the same
KR20210035036A (en) Method and apparatus for deriving temporal motion vector predictor
KR20210000635A (en) Method and apparatus for deriving a block vector of chroma block
US11997255B2 (en) Video encoding and decoding using intra block copy
KR20200110164A (en) Video Encoding and Decoding Using Intra Block Copy
KR20210002321A (en) Method and apparatus for adaptively setting resolution
US11962764B2 (en) Inter-prediction method and video decoding apparatus using the same
US20240236304A1 (en) Inter-prediction method and video decoding apparatus using the same
US20240236303A1 (en) Inter-prediction method and video decoding apparatus using the same
US20240236302A1 (en) Inter-prediction method and video decoding apparatus using the same
KR102648468B1 (en) Level setting method and apparatus using the same
US20220360768A1 (en) Method for deriving bidirectional prediction weight index and video decoding apparatus
US20220353516A1 (en) Method for adaptively setting resolution, and image decoding apparatus
KR20200110138A (en) Method and apparatus for deriving motion information using shared candidate list
KR20200081186A (en) Method for deriving motion vector of temporal candidate and apparatus using the same
KR20230156005A (en) Level setting method and apparatus using the same
KR20210043436A (en) Method and apparatus for constructing reference picture list
CN117461312A (en) Video encoding and decoding method and device