KR20210000637A - Method and apparatus for deriving motion information - Google Patents

Method and apparatus for deriving motion information Download PDF

Info

Publication number
KR20210000637A
KR20210000637A KR1020190136825A KR20190136825A KR20210000637A KR 20210000637 A KR20210000637 A KR 20210000637A KR 1020190136825 A KR1020190136825 A KR 1020190136825A KR 20190136825 A KR20190136825 A KR 20190136825A KR 20210000637 A KR20210000637 A KR 20210000637A
Authority
KR
South Korea
Prior art keywords
motion information
block
prediction
target candidate
candidate block
Prior art date
Application number
KR1020190136825A
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 KR20210000637A publication Critical patent/KR20210000637A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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

Disclosed are a method for deriving motion information and an image decoding device. According to one embodiment of the present invention, in a method for deriving motion information of a triangular block, provided is the method for deriving motion information including: a step of decoding an index indicating any one of candidate blocks included in a candidate list from a bitstream; a step of determining whether or not a reference direction of a target candidate block, which is a candidate block indicated by the index, is bi-prediction; and a step of deriving one of the bidirectional motion information of the target candidate block as the motion information of the triangular block when the reference direction of the target candidate block is bidirectional. The present invention efficiently derives motion information for predicting the triangular block.

Description

움직임정보 유도 방법 및 영상 복호화 장치{METHOD AND APPARATUS FOR DERIVING MOTION INFORMATION}Motion information derivation method and video decoding device {METHOD AND APPARATUS FOR DERIVING MOTION INFORMATION}

본 발명은 영상의 부호화 및 복호화에 관한 것으로서, 더욱 구체적으로는 양방향의 예측 정보로부터 단방향의 예측 정보를 유도하여 부호화 및 복호화의 효율을 향상시킨 움직임정보 유도 방법 및 영상 복호화 장치에 관한 것이다.The present invention relates to encoding and decoding of an image, and more particularly, to a motion information derivation method and an image decoding apparatus in which unidirectional prediction information is derived from bidirectional prediction information to improve encoding and decoding efficiency.

동영상 데이터는 음성 데이터나 정지 영상 데이터 등에 비하여 많은 데이터량을 가지기 때문에, 압축을 위한 처리 없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다. Since moving picture data has a large amount of data compared to 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 reproduces the compressed moving picture data. As such video compression technologies, 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 with higher encoding efficiency and higher quality improvement effect than the existing compression technique is required.

이러한 요구에 부응하기 위해 본 발명은 개선된 영상 부호화 및 복호화 기술을 제공하는 것을 목적으로 하며, 특히, 본 발명의 일 측면은 삼각형블록의 예측을 위한 움직임정보를 효율적으로 유도함으로써 부호화 및 복호화의 효율을 향상시키는 기술과 관련된다.In order to meet these needs, the present invention aims to provide an improved video encoding and decoding technology. In particular, an aspect of the present invention is to efficiently derive motion information for prediction of a triangular block, thereby improving the efficiency of encoding and decoding. It is related to technology that improves.

본 발명의 일 측면은, 삼각형블록의 움직임정보를 유도하는 방법으로서, 비트스트림으로부터, 후보 리스트(candidate list)에 포함된 후보블록들 중에서 어느 하나를 지시하는 인덱스를 복호화하는 단계; 상기 인덱스에 의해 지시되는 후보블록인 대상 후보블록의 참조 방향이 양방향(bi-prediction)인지 여부를 판단하는 단계; 및 상기 대상 후보블록의 참조 방향이 양방향인 경우, 상기 대상 후보블록의 양방향 움직임정보들 중 어느 하나를 상기 삼각형블록의 움직임정보로 유도하는 단계를 포함하는, 움직임정보 유도 방법을 제공한다.An aspect of the present invention is a method of deriving motion information of a triangular block, the method comprising: decoding an index indicating any one of candidate blocks included in a candidate list from a bitstream; Determining whether a reference direction of a target candidate block, which is a candidate block indicated by the index, is bi-prediction; And when the reference direction of the target candidate block is bidirectional, deriving one of the two-way motion information of the target candidate block as the motion information of the triangular block.

본 발명의 다른 일 측면은, 비트스트림으로부터, 후보 리스트(candidate list)에 포함된 후보블록들 중에서 어느 하나를 지시하는 인덱스를 복호화하는 복호화부; 및 상기 인덱스에 의해 지시되는 후보블록인 대상 후보블록의 참조 방향이 양방향(bi-prediction)인지 여부를 판단하고, 상기 대상 후보블록의 참조 방향이 양방향인 경우 상기 대상 후보블록의 양방향 움직임정보들 중 어느 하나를 삼각형블록의 움직임정보로 유도하는 예측부를 포함하는, 영상 복호화 장치를 제공한다.Another aspect of the present invention is a decoder for decoding an index indicating any one of candidate blocks included in a candidate list from a bitstream; And determining whether a reference direction of a target candidate block, which is a candidate block indicated by the index, is bi-prediction, and when the reference direction of the target candidate block is bi-directional, among bidirectional motion information of the target candidate block It provides an image decoding apparatus including a prediction unit for inducing any one into motion information of a triangular block.

이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 움직임정보를 더욱 정확하고 효율적으로 유도할 수 있어, 부호화 및 복호화의 정확성과 효율성이 향상될 수 있다. As described above, according to an embodiment of the present invention, motion information can be derived more accurately and efficiently, and thus accuracy and efficiency of encoding and decoding can be improved.

도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다.
도 3은 복수의 인트라 예측 모드들을 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5는 예측 모드들을 구분하는 종래 방법을 설명하기 위한 순서도이다.
도 6은 후보 리스트에 포함되는 후보 블록들의 위치를 설명하기 위한 도면이다.
도 7은 후보 리스트 구성에 이용되는 후보블록들의 위치를 설명하기 위한 도면이다.
도 8은 움직임정보를 유도하는 일 실시예를 설명하기 위한 순서도이다.
도 9는 삼각형블록에 대한 예들을 설명하기 위한 도면이다.
도 10 및 도 11은 가중치를 기준으로 움직임정보를 유도하는 실시예들을 설명하기 위한 순서도이다.
도 12는 픽처들 사이의 거리 차이를 기준으로 움직임정보를 유도하는 실시예를 설명하기 위한 순서도이다.
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 flowchart illustrating a conventional method of classifying prediction modes.
6 is a diagram for describing locations of candidate blocks included in a candidate list.
7 is a diagram for explaining positions of candidate blocks used to construct a candidate list.
8 is a flowchart illustrating an embodiment of inducing motion information.
9 is a diagram for explaining examples of triangular blocks.
10 and 11 are flowcharts illustrating exemplary embodiments in which motion information is derived based on a weight.
12 is a flowchart for describing an embodiment of inducing motion information based on a distance difference between pictures.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail through exemplary drawings. In adding identification codes to elements of each drawing, it should be noted that the same elements have the same symbols as possible even if they are indicated on different drawings. In addition, in describing the present invention, if 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 by hardware or software, or by 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 the tile or is encoded as the 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. Further, 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)가 된다. After dividing each picture constituting the image into a plurality of coding tree units (CTUs) having a predetermined size, the block dividing unit 110 repetitively divides the CTU using a tree structure. (recursively) split. A leaf node in the 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)라 칭할 수 있다. As a tree structure, a quad tree (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 a 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 identified 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 additional MTT split direction (vertical or horizontal) (mtt_split_cu_vertical_flag) and/or a flag indicating 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, two types of horizontally splitting a block of the corresponding 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, a type of dividing the block of the corresponding node into two blocks having an asymmetric shape may further exist. 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 can 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 encoded 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 by 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 converted using only a block as a conversion 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 distinguishes 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 encoder 150 generates a bitstream by encoding the quantized transform coefficients using a coding method such as a context-based adaptive binary arithmetic code (CABAC). The encoder 150 encodes information such as CTU size, CU split flag, QT split flag, MTT split direction, and MTT split type related to block splitting, so that the video decoding apparatus can split the block in the same way as the video encoding device. To be.

또한, 부호화부(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 restored 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 adds additional information to the deblocking-filtered image. Filtering is performed. 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-components 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 decoder 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 decoding unit 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 uppermost layer of the tree structure, that is, the root node, and the CTU is divided using the tree structure by extracting 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, first, a first flag (QT_split_flag) related to the splitting of the QT is 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, a CU split flag indicating whether to split a CU (split_cu_flag) is first extracted, and when the corresponding block is split, a QT split flag (split_qt_flag) is extracted. . When the split type is not QT but MTT, a flag (mtt_split_cu_vertical_flag) indicating the MTT split direction (vertical or horizontal) and/or a flag (mtt_split_cu_binary_flag) indicating the MTT split type (Binary or Ternary) is additionally extracted. In the segmentation process, each node may have 0 or more repetitive MTT segmentation after 0 or more repetitive QT segmentation. 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)는 인터 예측정보에 대한 신택스 요소, 즉, 움직임벡터 및 그 움직임벡터가 참조하는 참조픽처를 나타내는 정보를 추출한다.Meanwhile, when determining the current block to be decoded through the division of the tree structure, the decoder 410 extracts information on a prediction type indicating whether the current block is intra-prediction or inter-prediction. 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 performs inverse transform of 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 inversely transforming the transform coefficients of the sub-block from the frequency domain to the spatial domain to restore residual signals. Fill in to create the final residual block for the current block.

예측부(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 using

인터 예측부(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 caused by decoding in units of blocks. 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 around 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 image encoding apparatus to the image decoding apparatus, and a merge index (merge_idx) is signaled to the image decoding apparatus according to the values of these flags. A method of constructing a candidate list or a method of signaling a merge index may be performed in the same manner in the skip mode and the merge mode.

스킵 모드인 경우에 현재블록의 크기는 2Nx2N인 반면, 머지 모드인 경우에 현재블록의 크기는 2Nx2N 뿐만 아니라 2NxN, Nx2N, asymmetric partition일 수 있다. 현재블록이 2Nx2N의 크기를 가지면서 all zero 변환 계수를 가지는 경우에 현재블록은 스킵 모드로 분류된다. In the case of the skip mode, the size of the current block is 2Nx2N, whereas in the case of the merge mode, the size of the current block may be 2NxN, Nx2N, or asymmetric partition as well as 2Nx2N. When the current block has a size of 2Nx2N and all zero transform coefficients, the current block is classified as a skip mode.

따라서, 2Nx2N의 크기를 가지는 현재블록이 머지 모드로 예측되기 위해서는 현재블록이 최소 1개 이상의 non zero 변환 계수를 가지고 있어야 한다. 현재블록이 하나 이상의 non zero 변환 계수를 가지는지 여부는 rqt_root_cbf를 통해 지시될 수 있다. 스킵 모드인 경우에는 rqt_root_cbf가 시그널링되지 않고 그 값이 “0”으로 설정되며, 머지 모드이면서 현재블록의 크기가 2Nx2N인 경우에는 rqt_root_cbf가 시그널링되지 않고 그 값이 “1”로 설정된다. 머지 모드이면서 현재블록의 크기가 2Nx2N이 아닌 경우에는 rqt_root_cbf가 명시적으로 시그널링된다.Therefore, in order for a current block having a size of 2Nx2N to be predicted in the merge mode, the current block must have at least one non zero transform coefficient. Whether the current block has one or more non zero transform coefficients may be indicated through rqt_root_cbf. In the case of skip mode, rqt_root_cbf is not signaled and its value is set to “0”. In merge mode and the current block size is 2Nx2N, rqt_root_cbf is not signaled and its value is set to “1”. In the merge mode and the current block size is not 2Nx2N, rqt_root_cbf is explicitly signaled.

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

[표 1][Table 1]

Figure pat00001
Figure pat00001

[표 2][Table 2]

Figure pat00002
Figure pat00002

[표 3][Table 3]

Figure pat00003
Figure pat00003

영상 복호화 장치는 표 1 내지 표 3에서 나타낸 정보들을 이용하여 현재블록의 인터 예측에 대한 모드를 구분하고, 구분된 모드를 기반으로 현재블록을 예측할 수 있다.The image decoding apparatus may classify a mode for inter prediction of a current block by using the information shown in Tables 1 to 3, and predict a current block based on the divided mode.

예측 모드들을 구분하는 종래 방법이 도 13에 나타나 있다.A conventional method of classifying prediction modes is shown in FIG. 13.

현재블록의 인터 예측 모드가 스킵 모드에 해당하는지 여부를 지시하는 정보(cu_skip_flag)가 비트스트림으로부터 복호화된다(S510). cu_skip_flag가 스킵 모드를 지시하는 경우(S520)에 머지 인덱스(merge_idx)가 복호화되며(S522), rqt_root_flag는 시그널링되지 않고 그 값이 “0”으로 설정된다(S524).Information (cu_skip_flag) indicating whether the inter prediction mode of the current block corresponds to the skip mode is decoded from the bitstream (S510). When cu_skip_flag indicates the skip mode (S520), the merge index (merge_idx) is decoded (S522), and rqt_root_flag is not signaled and its value is set to “0” (S524).

cu_skip_flag가 스킵 모드를 지시하지 않는 경우에(S520), 현재블록이 인트라 예측되었는지 여부를 지시하는 정보(pred_mode_flag)가 복호화된다(S530). pred_mode_flag가 인터 예측됨을 지시하는 경우에는(S540) rqt_root_cbf가 시그널링되지 않고 그 값이 “1”로 설정된다(S570). 이와 달리, pred_mode_flag가 인트라 예측되지 않음을 지시하는 경우(인터 예측됨을 지시하는 경우)(S540), 현재블록(CU)이 예측블록(PU)으로 분할되는 방식에 대한 정보(part_mode) 및, 현재블록의 인터 예측 모드가 머지 모드에 해당하는지 여부를 지시하는 정보(merge_flag)가 복호화된다(S542, S544).When cu_skip_flag does not indicate the skip mode (S520), information indicating whether the current block is intra predicted (pred_mode_flag) is decoded (S530). When pred_mode_flag indicates inter prediction (S540), rqt_root_cbf is not signaled and its value is set to “1” (S570). On the contrary, when pred_mode_flag indicates that intra prediction is not performed (indicates that inter prediction is performed) (S540), information about a method in which the current block CU is divided into prediction blocks PU, and the current block Information (merge_flag) indicating whether the inter prediction mode of is corresponding to the merge mode is decoded (S542 and S544).

merge_flag가 머지 모드를 지시하지 않는 경우(AMVP 모드를 지시하는 경우)(S546), rqt_root_cbf가 복호화된다(S560). 이와 달리, merge_flag가 머지 모드를 지시하는 경우(S546), 머지 인덱스가 복호화된다(S548). 머지 모드이면서 해당 블록의 크기가 2Nx2N인 경우에는(S550) rqt_root_cbf가 시그널링되지 않고 그 값이 “1”로 설정된다(S552). 머지 모드이면서 해당 블록의 크기가 2Nx2N이 아닌 경우에는(S550) rqt_root_cbf가 명시적으로 시그널링되므로 비트스트림으로부터 복호화된다(S554).When the merge_flag does not indicate the merge mode (in the case of indicating the AMVP mode) (S546), the rqt_root_cbf is decoded (S560). In contrast, when merge_flag indicates a merge mode (S546), the merge index is decoded (S548). In the merge mode and when the size of the corresponding block is 2Nx2N (S550), rqt_root_cbf is not signaled and its value is set to “1” (S552). In the merge mode and if the size of the corresponding block is not 2Nx2N (S550), since rqt_root_cbf is explicitly signaled, it is decoded from the bitstream (S554).

한편, 스킵 모드 및 머지 모드를 위한 후보 리스트를 구성하는 방법은 공간적 후보(spatial candidates)를 탐색하여 후보 리스트에 추가하는 단계, 시간적 후보(temporal candidates)를 탐색하여 후보 리스트에 추가하는 단계, 후보 리스트에 추가된 후보들을 조합(combined bi-directional candidate)하여 후보 리스트에 추가하는 단계 및, 제로 움직임 벡터(zero motion vector candidate)를 후보 리스트에 추가하는 단계 등을 거칠 수 있다. 여기서, '후보들을 후보 리스트에 추가'하는 것은 '해당 블록들 자체 또는 해당 블록들의 움직임정보를 후보로 설정'하는 것을 의미할 수 있다.On the other hand, a method of constructing a candidate list for skip mode and merge mode includes searching for spatial candidates and adding them to the candidate list, searching for temporal candidates and adding them to the candidate list, candidate list A step of adding the candidates added to the candidate list to a 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”.

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

후보 리스트에 추가되는 시간적 후보들의 위치가 도 6 (b)에 나타나 있다. 영상 부호화/복호화 장치는 BR→CT 순서대로 후보블록들을 탐색하여 최대 1개의 후보를 후보 리스트에 포함시킬 수 있다. 후보 리스트를 설정하는 과정에서, 동일한 움직임정보가 있는 경우에는 해당 후보는 리스트에 추가되지 않는다. 즉, 움직임정보의 중복은 허용되지 않는다.Locations of temporal candidates added to the candidate list are shown in FIG. 6(b). The apparatus for encoding/decoding an image 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 a candidate list, if the same motion information exists, the corresponding candidate is not added to the list. That is, overlapping motion information is not allowed.

후보 리스트에 포함될 수 있는 후보들의 개수에 대한 정보(five_minus_max_num_merge_cand)는 slice header에 기록되며, 이 정보를 통해 최대 5개까지의 후보들이 지정 또는 설정될 수 있다. 후보들의 인덱싱을 위한 이진화 방법으로 TU(truncated unary) 방식이 사용되며, 표 4는 후보들의 최대 개수가 5개인 경우에 각 후보 인덱스를 표현하는 codeword를 나타낸다.Information on the number of candidates that may be included in the candidate list (five_minus_max_num_merge_cand) is recorded in the slice header, and up to five candidates may be designated or set through this information. A TU (truncated unary) method is used as a binarization method for indexing candidates, and Table 4 shows a codeword representing each candidate index when the maximum number of candidates is five.

[표 4][Table 4]

Figure pat00004
Figure pat00004

본 발명은 현재블록의 인터 예측에 사용되는 후보 리스트로부터 단방향의 예측정보(움직임정보)를 유도하는 방법을 제안한다. The present invention proposes a method of deriving unidirectional prediction information (motion information) from a candidate list used for inter prediction of a current block.

현재블록의 인터 예측에 사용되는 후보 리스트는 공간적 또는 시간적 주변 블록들로 구성되므로, 이 후보 리스트에는 단방향 움직임정보와 양방향 움직임정보가 모두 포함될 수 있다. 이와 같은 경우, 본 발명에서 제안하는 방법들을 통해 후보 리스트에 포함된 양방향 움직임정보로부터 단방향 움직임정보가 유도될 수 있다. Since the candidate list used for inter prediction of the current block is composed of spatial or temporal neighboring blocks, this candidate list may include both unidirectional motion information and bidirectional motion information. In this case, unidirectional motion information may be derived from bidirectional motion information included in the candidate list through the methods proposed in the present invention.

본 발명에서 제안하는 유도 방법은 단방향 움직임정보가 요구되는 모든 경우에 적용될 수 있다. 또한, 본 발명에서 제안하는 유도 방법은 단방향 예측만이 허용되는 블록에 대해서도 적용될 수 있다. 단방향 예측만이 허용되는 블록은 삼각형블록이거나 특정의 크기(예: 4x8, 8x4 등)를 가지는 블록일 수 있다. The derivation method proposed in the present invention can be applied in all cases where unidirectional motion information is required. In addition, the derivation method proposed in the present invention can be applied to blocks in which only one-way prediction is allowed. A block in which only unidirectional prediction is allowed may be a triangular block or a block having a specific size (eg, 4x8, 8x4, etc.).

본 명세서에서는, 단방향 움직임정보를 유도하는 방법이 삼각형블록에 적용되는 예를 중심으로 하여 본 발명에 대해 설명하도록 한다.In the present specification, the present invention will be described centering on an example in which a method of inducing unidirectional motion information is applied to a triangular block.

후보 리스트Candidate list

후보 리스트는 삼각형블록들이 포함된 현재블록의 인터 예측에 사용되는 리스트를 의미할 수 있다. 영상 부호화/복호화 장치는 동일한 방법을 이용하여 후보 리스트를 구성할 수 있다.The candidate list may mean a list used for inter prediction of a current block including triangular blocks. An image encoding/decoding apparatus may construct a candidate list using the same method.

후보 리스트에는 1) 공간적 후보, 2) 시간적 후보, 3) 히스토리(history) 기반 후보, 4) 쌍-평균(pair-wise average) 후보, 5) 제로 움직임벡터 후보 등이 포함될 수 있다. The candidate list may include 1) a spatial candidate, 2) a temporal candidate, 3) a history-based candidate, 4) a pair-wise average candidate, 5) a zero motion vector candidate, and the like.

공간적 후보와 시간적 후보를 위한 후보블록들의 위치가 도 7에 나타나 있다. 1번 블록은 현재블록(current block)의 좌측에 위치하며, 2번 블록은 현재블록의 상측에 위치하고, 3번 블록은 현재블록의 우상측에 위치하며, 4번 블록은 현재블록의 좌하측에 위치하고, 5번 블록은 현재블록의 좌상측에 위치한다. 또한, 6번 블록은 collocated 블록의 우하측에 위치하며, 7번 블록은 collocated 블록의 중앙부에 위치한다. 여기서, collocated 블록은 collocated 픽처 내에 위치하되, 현재블록의 현재픽처 내 위치와 동일한 위치에 자리하는 블록을 의미한다.Positions of candidate blocks for a spatial candidate and a temporal candidate are shown in FIG. 7. Block 1 is located on the left side of the current block, Block 2 is located above the current block, Block 3 is located on the top right of the current block, and Block 4 is located on the bottom left of the current block. And block 5 is located on the upper left of the current block. Also, block 6 is located at the lower right of the collocated block, and block 7 is located at the center of the collocated block. Here, the collocated block refers to a block located in the collocated picture, but located at the same position as the current picture of the current block.

영상 부호화/복호화 장치는 2번 블록→1번 블록→3번 블록→4번 블록→5번 블록 순서로 후보블록들을 탐색하여 최대 5개의 공간적 후보를 후보 리스트에 포함시킬 수 있다. 또한, 영상 부호화/복호화 장치는 6번 블록→7번 블록 순서로 후보블록들을 탐색하여 최대 1개의 시간적 후보를 후보 리스트에 포함시킬 수 있다. The apparatus for encoding/decoding an image may search for candidate blocks in the order of block 2 → block 1 → block 3 → block 4 → block 5 and include up to 5 spatial candidates in the candidate list. In addition, the apparatus for encoding/decoding an image may search for candidate blocks in the order of block 6 → block 7 and include at most one temporal candidate in the candidate list.

영상 부호화/복호화 장치는 히스토리 기반 테이블에 저장된 움직임정보들 중 하나 이상을 후보 리스트에 더 포함시킬 수 있다. 히스토리 기반 테이블은 현재블록의 복원이 수행되기 이전에 이미 복원이 완료된 블록들의 움직임정보가 FIFO(first input first output) 구조로 저장되는 테이블을 의미한다. The image encoding/decoding apparatus may further include one or more of motion information stored in the history-based table in the candidate list. The history-based table refers to a table in which motion information of blocks that have already been reconstructed before restoration of the current block is performed is stored in a first input first output (FIFO) structure.

영상 부호화/복호화 장치는 히스토리 기반 테이블에 저장된 움직임정보들을 저장된 순서의 역순으로 선별하여 후보 리스트에 포함시킬 수 있다. 후보 리스트에 포함되는 히스토리 기반 후보의 개수는 후보 리스트에 포함될 수 있는 후보들의 최대 개수보다 하나 적을 수 있다. 예를 들어, 후보 리스트에 포함될 수 있는 후보들의 최대 개수가 "6"이고, 후보 리스트에 현재 포함되어 있는 후보들의 개수가 "3"이라면, "2"개의 히스토리 기반 후보들이 후보 리스트에 포함될 수 있다.The image encoding/decoding apparatus may select motion information stored in the history-based table in the reverse order of the stored order and include it in the candidate list. The number of history-based candidates included in the candidate list may be one less than the maximum number of candidates that may be included in the candidate list. For example, if the maximum number of candidates that can be included in the candidate list is "6" and the number of candidates currently included in the candidate list is "3", "2" history-based candidates may be included in the candidate list. .

영상 부호화/복호화 장치는 후보 리스트에 포함되어 있는 후보들 중 미리 설정된 위치의 후보들을 평균하여 후보 리스트에 더 포함시킬 수 있다(쌍-평균 후보). 후보 리스트에 포함될 수 있는 후보들의 최대 개수가 만족되지 못하는 경우, 제로 움직임벡터가 후보 리스트에 더 포함될 수 있다.The image encoding/decoding apparatus may average candidates at a preset position among candidates included in the candidate list and further include them in the candidate list (pair-averaged candidates). When the maximum number of candidates that can be included in the candidate list is not satisfied, a zero motion vector may be further included in the candidate list.

삼각형블록Triangle block

도 9에 나타낸 바와 같이, 사각형의 현재블록(current block)이 두 개의 삼각형블록들(PU1, PU2)로 구분되고, 이 두 개의 삼각형블록들이 예측 유닛(prediction unit)으로 정의된다. 구분된 삼각형블록들 각각을 대상으로 스킵 모드 또는 머지 모드가 적용되어 각 삼각형블록들이 예측될 수 있다. As shown in FIG. 9, a rectangular current block is divided into two triangular blocks PU 1 and PU 2 , and these two triangular blocks are defined as a prediction unit. Each triangular block may be predicted by applying a skip mode or a merge mode to each of the divided triangular blocks.

현재블록은 단일의 후보 리스트를 이용하여 예측이 수행되고, 삼각형블록은 단방향 예측만 허용되며, 삼각형블록들 각각에 대해 별도의 인덱스가 시그널링되는 것으로 가정한다. 즉, 삼각형블록들은 후보 리스트를 공유하지만, 인덱스를 공유하지는 않는 것으로 가정한다. 이하에서는, 위와 같은 가정들이 적용되는 예측 모드를 '삼각형 예측 모드(triangle prediction)'라 지칭하도록 한다.It is assumed that prediction is performed using a single candidate list for the current block, only unidirectional prediction is allowed for the triangle block, and a separate index is signaled for each of the triangle blocks. That is, it is assumed that the triangular blocks share the candidate list, but do not share the index. Hereinafter, a prediction mode to which the above assumptions are applied will be referred to as a'triangle prediction mode'.

삼각형 예측 모드를 위한 신택스들을 표 5에서 보인다.Syntaxes for the triangular prediction mode are shown in Table 5.

[표 5][Table 5]

Figure pat00005
Figure pat00005

merge_triangle_flag는 삼각형 예측 모드의 적용 여부(om/off)를 지시하는 정보로서, 영상 부호화 장치로부터 영상 복호화 장치로 명시적으로 시그널링되거나, 미리 설정된 값으로 유도될 수 있다. 영상 복호화 장치는 merge_triangle_flag의 값에 따라 삼각형 예측 모드의 적용 여부를 판단할 수 있다.The merge_triangle_flag is information indicating whether the triangle prediction mode is applied (om/off), and may be explicitly signaled from the image encoding device to the image decoding device or derived to a preset value. The image decoding apparatus may determine whether to apply the triangle prediction mode according to the value of merge_triangle_flag.

merge_triangle_flag는 삼각형 예측 모드의 활성/비활성 여부를 지시하는 인에이블 정보(triangle_enabled_flag)가 활성을 지시하는 경우에 시그널링되거나 미리 설정된 값으로 유도될 수 있다. triangle_enabled_flag는 sequence-level, picture-level, slice-level, 및/또는 tile group-level 등과 같은 high-level header에서 정의될 수 있다. The merge_triangle_flag may be signaled when enable information (triangle_enabled_flag) indicating whether or not the triangle prediction mode is active/inactive indicates activity, or may be derived to a preset value. The triangle_enabled_flag may be defined in a high-level header such as sequence-level, picture-level, slice-level, and/or tile group-level.

merge_triangle_flag는 슬라이스 타입 또는 타일 그룹 타입이 “B 타입(bi-prediction)”이며, 삼각형 예측을 위한 후보들의 최대 개수가 2 이상이고, 현재블록의 인터 예측 모드가 머지 모드인 경우에, 시그널링되거나 “1” 값으로 유도될 수 있다. 다른 예로, merge_triangle_flag는 현재블록의 크기(Width*Height)가 미리 설정된 임계 값 이상인 경우에, 시그널링되거나 “1” 값으로 유도될 수 있다. 여기서, 미리 설정된 임계 값은 “64”일 수 있다. 또 다른 예로, merge_triangle_flag는 슬라이스 타입 또는 타일 그룹 타입이 “P 타입”인 경우에, 시그널링되거나 “1” 값으로 유도될 수 있다.merge_triangle_flag is signaled or “1” when the slice type or tile group type is “B type (bi-prediction)”, the maximum number of candidates for triangle prediction is 2 or more, and the inter prediction mode of the current block is the merge mode. Can be derived by value. As another example, merge_triangle_flag may be signaled or derived to a value of “1” when the size (Width*Height) of the current block is greater than or equal to a preset threshold. Here, the preset threshold value may be “64”. As another example, merge_triangle_flag may be signaled or derived as a value of “1” when the slice type or tile group type is “P type”.

merge_triangle_flag가 삼각형 예측 모드의 적용됨을 지시하는 경우, 도 9에 나타낸 바와 같은 삼각형블록의 두 가지 분할 방향 또는 모양에 대한 정보(merge_triangle_split_flag 또는 merge_triangle_split_dir)가 영상 부호화 장치로부터 영상 복호화 장치로 시그널링될 수 있다. merge_triangle_split_flag=0은 도 9 (a)와 같이 우하향 방향의 분할 모양을 지시할 수 있으며, merge_triangle_split_flag=1은 도 9 (b)와 같이 우상향 방향의 분할 모양을 지시할 수 있다. 영상 복호화 장치는 merge_triangle_split_flag를 이용하여 삼각형블록의 분할 모양을 판단할 수 있다.When merge_triangle_flag indicates that the triangular prediction mode is applied, information (merge_triangle_split_flag or merge_triangle_split_dir) about two division directions or shapes of the triangular block as shown in FIG. 9 may be signaled from the video encoding apparatus to the video decoding apparatus. merge_triangle_split_flag=0 may indicate a split shape in the downward-right direction as shown in FIG. 9(a), and merge_triangle_split_flag=1 may indicate a division shape in the upward-right direction as shown in FIG. 9(b). The image decoding apparatus may determine the split shape of the triangular block using merge_triangle_split_flag.

삼각형블록들 각각에 대한 인덱스(merge_triangle_idx0, merge_triangle_idx1)가 영상 부호화 장치로부터 영상 복호화 장치로 시그널링될 수 있다. merge_triangle_idx0는 후보 리스트에 포함된 후보들 중에서 PU1의 삼각형 예측 모드에 적용되는 후보를 지시하며, merge_triangle_idx1은 후보 리스트에 포함된 후보들 중에서 PU2의 삼각형 예측 모드에 적용되는 후보를 지시할 수 있다. merge_triangle_idx0와 merge_triangle_idx1 각각이 지시하는 후보들은 서로 다르다. merge_triangle_idx0와 merge_triangle_idx1 각각이 지시하는 후보들이 서로 같다면(PU1과 PU2의 예측에 동일한 움직임정보가 이용된다면), 삼각형블록으로 분할할 필요가 없기 때문이다. 영상 복호화 장치(복호화부)는 인덱스를 비트스트림으로부터 복호화하고(S810), 복호화된 인덱스에 의해 지시되는 후보를 특정할 수 있다(S820). 여기서, 인덱스에 의해 지시되는 후보를 '대상 후보' 또는 '대상 후보블록'이라 지칭하도록 한다.Indexes (merge_triangle_idx0, merge_triangle_idx1) for each of the triangular blocks may be signaled from the image encoding apparatus to the image decoding apparatus. merge_triangle_idx0 indicates a candidate applied to the triangle prediction mode of PU 1 from among candidates included in the candidate list, and merge_triangle_idx1 may indicate a candidate applied to the triangle prediction mode of PU 2 from among candidates included in the candidate list. Candidates indicated by merge_triangle_idx0 and merge_triangle_idx1 are different from each other. This is because if the candidates indicated by merge_triangle_idx0 and merge_triangle_idx1 are the same (if the same motion information is used for prediction of PU 1 and PU 2 ), it is not necessary to divide into triangular blocks. The video decoding apparatus (decoder) may decode the index from the bitstream (S810) and specify a candidate indicated by the decoded index (S820). Here, the candidate indicated by the index is referred to as a'target candidate' or a'target candidate block'.

영상 부호화/복호화 장치(인터예측부)는 특정된 대상 후보블록의 참조 방향이 양방향인지 여부를 판단할 수 있다(S830). 즉, 영상 부호화/복호화 장치는 대상 후보블록이 양방향 예측되었는지 여부를 판단할 수 있다. 양방향 예측된 대상 후보블록의 움직임정보에는 L0 리스트에 포함된 참조픽처를 참조하는 L0 움직임정보와 L1 리스트에 포함된 참조픽처를 참조하는 L1 움직임정보가 포함될 수 있다.The image encoding/decoding apparatus (inter prediction unit) may determine whether the reference direction of the specified target candidate block is bidirectional (S830). That is, the image encoding/decoding apparatus may determine whether the target candidate block is bidirectionally predicted. The motion information of the bi-predicted target candidate block may include L0 motion information referring to a reference picture included in the L0 list and L1 motion information referring to a reference picture included in the L1 list.

대상 후보블록이 단방향(L0 방향 또는 L1 방향) 예측된 경우(S830)에는 대상 후보블록의 움직임정보(단방향)가 삼각형블록의 움직임정보로 유도될 수 있다(S840). 이와 달리, 대상 후보블록이 양방향 예측된 경우(S830)에는 L0 움직임정보와 L1 움직임정보 중에서 어느 하나가 삼각형블록의 움직임정보로 유도될 수 있다(S850). 삼각형블록은 단방향 예측만 허용되는 것으로 가정하였기 때문이다.When the target candidate block is predicted in one direction (L0 direction or L1 direction) (S830), motion information (unidirectional) of the target candidate block may be derived as motion information of the triangular block (S840). In contrast, when the target candidate block is bidirectionally predicted (S830), either of the L0 motion information and the L1 motion information may be derived as the motion information of the triangular block (S850). This is because it is assumed that only one-way prediction is allowed for the triangular block.

삼각형블록의 움직임정보로 유도되는 움직임정보는 '대상 후보블록의 양방향 예측에 적용되는 가중치들'을 기준으로 결정되거나 '참조픽처들과 현재픽처 사이의 거리'를 기준으로 결정될 수 있다.The motion information derived from the motion information of the triangular block may be determined based on'weights applied to bidirectional prediction of the target candidate block' or may be determined based on the'distance between reference pictures and the current picture'.

이와 같이, 본 발명은 대상 후보블록이 단방향 예측된 경우에는 해당 움직임정보를 그대로 이용하고, 대상 후보블록이 양방향 예측된 경우에는 양방향 중 어느 한 방향의 움직임정보를 이용함으로써, 단방향 움직임정보를 유도할 수 있다. As described above, in the present invention, when the target candidate block is predicted in one direction, the motion information is used as it is, and when the target candidate block is predicted in both directions, motion information in either direction is used to induce one-way motion information. I can.

한편, 영상 부호화 장치는 유도된 움직임정보들(단방향 움직임정보들)을 이용하여 삼각형블록의 인터 예측에 사용되는 별도의 후보 리스트를 구성할 수 있다. 현재블록에 대한 후보 리스트와 삼각형블록에 대한 후보 리스트를 구분하기 위하여, 현재블록에 대한 후보 리스트를 '일반 후보 리스트'로 지칭하고, 삼각형블록에 대한 후보 리스트를 '삼각형 후보 리스트'로 지칭하도록 한다.Meanwhile, the image encoding apparatus may construct a separate candidate list used for inter prediction of a triangular block by using the derived motion information (unidirectional motion information). In order to distinguish the candidate list for the current block and the candidate list for the triangle block, the candidate list for the current block is referred to as a'general candidate list', and the candidate list for the triangle block is referred to as a'triangular candidate list'. .

삼각형 후보 리스트에는 하나 이상의 후보들이 포함될 수 있다. 삼각형 후보 리스트에 포함되는 후보들의 최대 개수에 대한 정보(삼각형 예측 모드에 사용되는 후보들의 최대 개수에 대한 정보, 최대 개수에 대한 정보)는 영상 부호화 장치로부터 영상 복호화 장치로 시그널링될 수 있다. One or more candidates may be included in the triangular candidate list. Information on the maximum number of candidates included in the triangular candidate list (information on the maximum number of candidates used in the triangular prediction mode, information on the maximum number) may be signaled from the video encoding device to the video decoding device.

최대 개수에 대한 정보는 다양한 형태로 구현될 수 있다. 예를 들어, 1) 최대 개수에 대한 정보는 삼각형 예측 모드에 사용되는 후보들의 개수 자체를 지시할 수 있다(예: max_num_triangle_cand). 다른 예로, 2) 최대 개수에 대한 정보는 특정 상수 값에서 최대 개수를 뺀 값일 수 있다(예: six_minus_max_num_triangle_cand). 또 다른 예로, 3) 최대 개수에 대한 정보는 현재블록의 merge 모드 예측에 이용되는 후보들의 최대 개수(일반 후보 리스트에 포함되는 최대 개수)에서 삼각형 예측 모드에 사용되는 후보들의 최대 개수(삼각형 후보 리스트에 포함되는 최대 개수)를 뺀 값일 수 있다(예: max_num_merge_cand_minus_max_num_triangle_cand).The information on the maximum number can be implemented in various forms. For example, 1) The information on the maximum number may indicate the number of candidates used in the triangle prediction mode (eg, max_num_triangle_cand). As another example, 2) The information on the maximum number may be a value obtained by subtracting the maximum number from a specific constant value (eg, six_minus_max_num_triangle_cand). As another example, 3) information on the maximum number is the maximum number of candidates used in the triangular prediction mode (triangle candidate list) from the maximum number of candidates used for the merge mode prediction of the current block (the maximum number included in the general candidate list). It may be a value obtained by subtracting the maximum number included in (eg, max_num_merge_cand_minus_max_num_triangle_cand).

삼각형 예측 모드에 사용되는 후보들의 최대 개수가 “4”이고, 현재블록의 merge 모드 예측에 사용되는 후보들의 최대 개수가 “6”이며, 특정 상수 값이 “5”이라고 가정하면, 최대 개수에 대한 정보는 1)의 예에서는 max_num_triangle_cand=4가 되고, 2)의 예에서는 six_minus_max_num_triangle_cand=1(5-4=1)이 되며, 3)의 예에서는 max_num_merge_cand_minus_max_num_triangle_cand=2(6-4=2)가 될 수 있다.Assuming that the maximum number of candidates used in the triangular prediction mode is “4”, the maximum number of candidates used in the merge mode prediction of the current block is “6”, and the specific constant value is “5”, the maximum number The information may be max_num_triangle_cand=4 in the example 1), six_minus_max_num_triangle_cand=1 (5-4=1) in the example 2), and max_num_merge_cand_minus_max_num_triangle_cand=2 (6-4=2) in the example 3). .

최대 개수에 대한 정보는 sequence-level, picture-level, slice-level, 및/또는 tile group-level 등과 같은 high-level header 중 하나 이상의 위치에서 정의되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링될 수 있다. 또한, 최대 개수에 대한 정보는 triangle_enabled_flag가 삼각형 예측 모드의 활성을 지시하는 경우에 시그널링될 수 있다. 나아가, 최대 개수에 대한 정보가 3)의 예와 같은 형태로 구현되는 경우, 최대 개수에 대한 정보는 triangle_enabled_flag가 삼각형 예측 모드의 활성을 지시하면서 현재블록의 merge 모드 예측에 이용되는 후보들의 최대 개수가 2 이상인 경우에, 시그널링될 수 있다.The information on the maximum number may be defined at one or more positions among high-level headers such as sequence-level, picture-level, slice-level, and/or tile group-level, and may be signaled from the image encoding device to the image decoding device. . Also, information on the maximum number may be signaled when triangle_enabled_flag indicates activation of the triangle prediction mode. Furthermore, when the information on the maximum number is implemented in the same form as in the example of 3), the maximum number of candidates used for the merge mode prediction of the current block while the triangle_enabled_flag indicates the activity of the triangle prediction mode is In the case of 2 or more, it may be signaled.

가중치weight

양방향 움직임정보(L0 움직임정보 및 L1 움직임정보) 중에서 삼각형블록의 예측에 이용될 움직임정보는 대상 후보블록의 양방향 예측에 적용되는 가중치들을 기준으로 선택 또는 유도될 수 있다. 여기서, L0 방향의 예측에 적용되는(참조샘플에 적용되는) 가중치(w0)를 제1가중치로 지칭하고, L1 방향의 예측에 적용되는(참조샘플에 적용되는) 가중치(w1)를 제2가중치로 지칭할 수 있다. 이와 반대로, w0를 제2가중치로 지칭하고 w1을 제1가중치로 지칭할 수도 있다.Among the two-way motion information (L0 motion information and L1 motion information), motion information to be used for prediction of a triangle block may be selected or derived based on weights applied to two-way prediction of a target candidate block. Here, the weight (w0) applied to prediction in the L0 direction (applied to the reference sample) is referred to as the first weight, and the weight (w1) applied to prediction in the L1 direction (applied to the reference sample) is referred to as the second weight. It can be referred to as Conversely, w0 may be referred to as a second weight and w1 may be referred to as a first weight.

기준이 되는 가중치들에는 1) 가중 예측(weighted prediction, WP)에 적용되는 가중치들과, 2) CU 레벨 가중치를 사용하는 양방향 예측(bi-prediction with CU-level weights, BCW)에 적용되는 가중치들이 포함될 수 있다. WP 기능과 BCW 기능은 서로 배타적으로 구현될 수 있다. WP 기능과 BCW 기능 중 어느 하나가 적용 또는 구현되도록, sequence-level 및/또는 picture-level에서 정의될 수 있다. Standard weights include 1) weights applied to weighted prediction (WP), and 2) weights applied to bi-prediction with CU-level weights (BCW). Can be included. The WP function and the BCW function can be implemented exclusively from each other. It may be defined in a sequence-level and/or a picture-level so that any one of the WP function and the BCW function is applied or implemented.

1) WP란 슬라이스 또는 타입 그룹 단위로 가중치를 설정하여 가중 예측을 수행하는 방법으로서, 슬라이스 헤더에 WP를 위한 가중치 값(weight)과 오프셋 값(offset)이 정의될 수 있다. 정의된 가중치 값과 오프셋 값은 현재 슬라이스(현재블록 또는 삼각형블록이 포함된 슬라이스)에서 참조하는 모든 참조픽처들 각각에 대해 설정될 수 있다.1) WP is a method of performing weighted prediction by setting weights in units of slices or type groups, and a weight value and an offset value for WP may be defined in a slice header. The defined weight value and offset value may be set for each of all reference pictures referenced in the current slice (the slice including the current block or the triangle block).

WP의 일 예로, 슬라이스에 WP가 적용(on)되며, 슬라이스 타입이 B 타입이고, 슬라이스에 포함된 현재블록이 양방향 예측되었으며, 현재블록의 참조픽처가 L0 리스트 내 0-번째 참조픽처 및 L1 리스트 내 1-번째 참조픽처인 경우, 현재블록의 예측샘플은 아래 수학식 1과 같이 유도될 수 있다.As an example of WP, WP is applied (on) to a slice, the slice type is B type, the current block included in the slice is bidirectionally predicted, and the reference picture of the current block is the 0-th reference picture and the L1 list in the L0 list. In the case of the 1-th reference picture, the prediction sample of the current block can be derived as in Equation 1 below.

[수학식 1][Equation 1]

Figure pat00006
Figure pat00006

수학식 1에서, pdSamples는 가중 예측된 예측샘플의 값이다. pdSamplesL0는 L0 방향의 예측샘플 값이며, w0는 L0 리스트 내 0-번째 참조픽처에 대한 가중치 값이고, o0는 L0 리스트 내 0-번째 참조픽처에 대한 오프셋 값이다. pdSamplesL1은 L1 방향의 예측샘플 값이고, w1은 L1 리스트 내 1-번째 참조픽처에 대한 가중치 값이며, o1은 L1 리스트 내 1-번째 참조픽처에 대한 오프셋 값이다.In Equation 1, pdSamples is a value of a weighted predicted prediction sample. pdSamplesL0 is a prediction sample value in the L0 direction, w0 is a weight value for the 0-th reference picture in the L0 list, and o0 is an offset value for the 0-th reference picture in the L0 list. pdSamplesL1 is a prediction sample value in the L1 direction, w1 is a weight value for the 1-th reference picture in the L1 list, and o1 is an offset value for the 1-th reference picture in the L1 list.

2) BCW란 복호화 대상 블록 단위로 가중치를 설정하는 방법으로서, 가중치 인덱스(bcw_idx)에 의해 가중치가 특정될 수 있다. bcw_idx는 low delay picture인 경우에 5개로 설정되고, low delay picture가 아닌 경우에 3개로 설정될 수 있다. bcw_idx와 각 bcw_idx에 대해 설정된 가중치(적용 가능한 후보 가중치들) 값들이 표 6에 나타나 있다.2) BCW is a method of setting a weight in units of a block to be decoded, and a weight may be specified by a weight index (bcw_idx). In the case of a low delay picture, bcw_idx may be set to 5, and in the case of a non-low delay picture, bcw_idx may be set to 3. Table 6 shows bcw_idx and weights (applicable candidate weights) set for each bcw_idx.

[표 6][Table 6]

Figure pat00007
Figure pat00007

표 6처럼, low delay picture인 경우에 bcw_idx는 0 내지 4의 값을 가질 수 있으며, low delay picture가 아닌 경우에 0 내지 2의 값을 가질 수 있다. 표 6을 통해, bcw_idx가 짝수(even)이면 w0가 w1에 비해 크며, bcw_idx가 홀수(odd)이면 w0가 w1에 비해 작고, bcw_idx가 0이면 w0과 w1가 동일하고, w0와 w1 사이에는 수학식 2와 같은 관계가 성립함을 알 수 있다. As shown in Table 6, bcw_idx may have a value of 0 to 4 in the case of a low delay picture, and may have a value of 0 to 2 in the case of a non-low delay picture. From Table 6, if bcw_idx is even, w0 is greater than w1, if bcw_idx is odd, w0 is smaller than w1, and if bcw_idx is 0, w0 and w1 are the same, and between w0 and w1 is mathematical It can be seen that the relationship shown in Equation 2 holds.

[수학식 2][Equation 2]

Figure pat00008
Figure pat00008

현재블록이 양방향 예측되었으며, BCW 기능이 high-level header에서 enabled되고(sps_bcw_enabled_flag = “on”), WP 기능이 “off”이면서, 현재블록의 크기(Width * Height)가 미리 설정된 임계 값(예: 256) 이상이면, bcw_idx가 영상 부호화 장치로부터 영상 복호화 장치로 시그널링될 수 있다. 영상 복호화 장치는 시그널링된 bcw_idx 값을 통해 L0 방향의 예측에 적용되는 가중치 값(w0)과 L1 방향의 예측에 적용되는 가중치 값(w1)을 유도할 수 있다.The current block is predicted in both directions, the BCW function is enabled in the high-level header (sps_bcw_enabled_flag = “on”), the WP function is “off”, and the size of the current block (Width * Height) is preset threshold (eg: 256) or more, bcw_idx may be signaled from the image encoding device to the image decoding device. The image decoding apparatus may derive a weight value w0 applied to prediction in the L0 direction and a weight value w1 applied to prediction in the L1 direction through the signaled bcw_idx value.

BCW의 일 예로, bcw_idx 값이 “2”인 경우, L0 방향의 예측에 적용되는 가중치 값(w0)이 “5/8”로 설정 또는 유도되며, L1 방향의 예측에 적용되는 가중치 값(w1)이 “3/8”로 설정 또는 유도될 수 있다.As an example of BCW, when the bcw_idx value is “2”, the weight value (w0) applied to prediction in the L0 direction is set or derived as “5/8”, and the weight value applied to prediction in the L1 direction (w1) This “3/8” can be set or derived.

유도된 가중치 값들을 이용하여 현재블록의 예측샘플이 아래 수학식 3과 같이 유도될 수 있다.Using the derived weight values, a prediction sample of the current block can be derived as shown in Equation 3 below.

[수학식 3][Equation 3]

Figure pat00009
Figure pat00009

영상 부호화/복호화 장치는 w0와 w1 중에서 어느 하나와 대응되는 방향의 움직임정보를 삼각형블록의 움직임정보로 유도할 수 있다. 예를 들어, w0와 w1 중에서 더욱 큰 값을 가지는 가중치에 대응되는 방향의 움직임정보가 삼각형블록의 움직임정보로 유도될 수 있다. 다른 예로, w0와 w1 중에서 더욱 작은 값을 가지는 가중치에 대응되는 방향의 움직임정보가 삼각형블록의 움직임정보로 유도될 수 있다. 또 다른 예로, w0와 w1이 동일한 경우에는 L0 움직임정보 또는 L1 움직임정보가 삼각형블록의 움직임정보로 유도될 수 있다.The video encoding/decoding apparatus may derive motion information in a direction corresponding to any one of w0 and w1 as motion information of a triangular block. For example, motion information in a direction corresponding to a weight having a larger value among w0 and w1 may be derived as motion information of a triangular block. As another example, motion information in a direction corresponding to a weight having a smaller value among w0 and w1 may be derived as motion information of a triangular block. As another example, when w0 and w1 are the same, L0 motion information or L1 motion information may be derived as motion information of a triangular block.

참조픽처들과 현재픽처 사이의 거리Distance between reference pictures and current picture

양방향 움직임정보(L0 움직임정보 및 L1 움직임정보) 중에서 삼각형블록의 예측에 이용될 움직임정보는 대상 후보블록의 참조픽처들 각각과 현재픽처(삼각형블록이 포함된 픽처) 사이의 거리 차이를 기준으로 선택 또는 유도될 수 있다. Among the two-way motion information (L0 motion information and L1 motion information), the motion information to be used for the prediction of the triangle block is selected based on the distance difference between each of the reference pictures of the target candidate block and the current picture (picture including the triangle block). Or can be derived.

예를 들어, L0 방향의 참조픽처 및 L1 방향의 참조픽처 중에서, 현재픽처와 더욱 가까운 참조픽처의 방향에 해당하는 움직임정보가 삼각형블록의 움직임정보로 유도될 수 있다. 다른 예로, L0 방향의 참조픽처 및 L1 방향의 참조픽처 중에서, 현재픽처와 더욱 먼 참조픽처의 방향에 해당하는 움직임정보가 삼각형블록의 움직임정보로 유도될 수 있다.For example, among the reference pictures in the L0 direction and the reference pictures in the L1 direction, motion information corresponding to the direction of the reference picture closer to the current picture may be derived as the motion information of the triangular block. As another example, among the reference pictures in the L0 direction and the reference pictures in the L1 direction, motion information corresponding to a direction of a reference picture farther from the current picture may be derived as the motion information of the triangular block.

참조픽처들 각각과 현재픽처 사이의 거리는 참조픽처들 각각과 현재픽처 사이의 POC(picture order count) 차이 값일 수 있다. 예를 들어, 대상 후보블록이 양방향 예측되었으며, L0 참조픽처의 POC=3이고, L1 참조픽처의 POC=6이며, 현재픽처의 POC=5인 경우, L0 참조픽처와 현재픽처의 POC 차이인 “2” 및, L1 참조픽처와 현재픽처의 POC 차이인 “1”을 기준으로, L0 움직임정보와 L1 움직임정보 중 어느 하나가 삼각형블록의 움직임정보로 유도될 수 있다.The distance between each of the reference pictures and the current picture may be a difference value of a picture order count (POC) between each of the reference pictures and the current picture. For example, if the target candidate block is bidirectionally predicted, POC of the L0 reference picture is 3, POC of the L1 reference picture is 6, and POC of the current picture is 5, the difference between the POC of the L0 reference picture and the current picture is “ 2” and “1”, which is a POC difference between the L1 reference picture and the current picture, one of the L0 motion information and the L1 motion information may be derived as the motion information of the triangular block.

위에서 설명된 다양한 방법들을 통해 삼각형블록의 움직임정보가 유도되면, 영상 부호화/복호화 장치는 유도된 움직임정보를 기반으로 삼각형블록을 예측할 수 있다(S860). When the motion information of the triangular block is derived through the various methods described above, the image encoding/decoding apparatus may predict the triangular block based on the derived motion information (S860).

실시예 1Example 1

실시예 1은 WP 기능에 이용되는 가중치들을 기준으로 삼각형블록의 움직임정보를 유도하는 방법이다. 두 개의 삼각형블록들(PU1 및 PU2) 중에서 PU1의 움직임정보를 유도하는 방법에 대한 일 예가 도 10에 나타나 있다. w0와 w1은 수학식 1에서 설명된 가중치 값들을 의미한다.Embodiment 1 is a method of deriving motion information of a triangular block based on weights used in the WP function. An example of a method for deriving motion information of PU 1 from among two triangular blocks PU 1 and PU 2 is shown in FIG. 10. w0 and w1 denote weight values described in Equation 1.

영상 복호화 장치는 merge_triangle_idx0를 비트스트림으로부터 복호화하고(S1010), 일반 후보 리스트에 포함된 후보들 중에서 merge_triangle_idx0가 지시하는 대상 후보블록(A)을 특정할 수 있다(S1020).The image decoding apparatus may decode merge_triangle_idx0 from the bitstream (S1010), and may specify a target candidate block A indicated by merge_triangle_idx0 from among candidates included in the general candidate list (S1020).

영상 복호화 장치는 대상 후보블록의 참조 방향이 양방향인 경우(S1030)에 대상 후보블록의 가중 예측에 적용되는 가중치 값(w0, w1)들을 파악하고(S1040), 가중치 값들의 비교를 통해 PU1의 움직임정보를 유도할 수 있다. 구체적으로, w0 > w1인 경우에(S1050)는 L0 움직임정보가 PU1의 움직임정보로 유도될 수 있고(S1060), w0 < w1인 경우에(S1050)는 L1 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1080). 또한, w0 = w1인 경우에(S1050)는 L1 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1080). When the reference direction of the target candidate block is bidirectional (S1030), the video decoding apparatus identifies weight values (w0, w1) applied to the weighted prediction of the target candidate block (S1040), and compares the weight values of PU 1 Motion information can be derived. Specifically, when w0> w1 (S1050), the L0 motion information may be derived as the motion information of PU 1 (S1060), and when w0 <w1 (S1050), the L1 motion information is the motion information of PU 1 It can be induced by (S1080). In addition, when w0 = w1 (S1050), the L1 motion information may be derived as the motion information of the PU 1 (S1080).

영상 복호화 장치는 대상 후보블록의 참조 방향이 단방향(L0 또는 L1)인 경우에(S1030), 대상 후보블록의 참조 방향과 동일한 방향의 움직임정보를 PU1의 움직임정보로 유도할 수 있다. 구체적으로, 대상 후보블록의 참조 방향이 L0의 단방향인 경우(S1070)에는 L0의 움직임정보가 PU1의 움직임정보로 유도될 수 있으며(S1060), 대상 후보블록의 참조 방향이 L1의 단방향인 경우(S1070)에는 L1의 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1080).When the reference direction of the target candidate block is one direction (L0 or L1) (S1030), the video decoding apparatus may derive motion information in the same direction as the reference direction of the target candidate block as the motion information of PU 1 . Specifically, when the reference direction of the target candidate block is one direction of L0 (S1070), the motion information of L0 may be derived as the motion information of PU 1 (S1060), and when the reference direction of the target candidate block is one direction of L1 In S1070, the motion information of L1 may be derived as the motion information of PU 1 (S1080).

도 10에는 PU1의 움직임정보를 유도하는 일 예만이 나타나 있으나, PU2의 움직임정보도 도 10에 나타난 과정들을 통해 유도될 수 있다.Although only an example of deriving the motion information of PU 1 is shown in FIG. 10, the motion information of PU 2 may also be derived through the processes shown in FIG. 10.

한편, 실시예 1은 w0 및 w1을 수학식 1에서 설명된 오프셋 값들(o0, o1)로 대체하여 구현될 수도 있다. 즉, 오프셋들 중에서 더욱 큰 값을 가지는 오프셋의 방향과 동일한 방향의 움직임정보가 삼각형블록의 움직임정보로 유도될 수 있다. 또한, 가중치 값들(w0, w1)과 오프셋 값들(o0, o1)을 모두 이용하여 삼각형블록의 움직임정보가 유도될 수도 있다.Meanwhile, Embodiment 1 may be implemented by replacing w0 and w1 with offset values o0 and o1 described in Equation 1. That is, motion information in the same direction as the direction of the offset having a larger value among the offsets may be derived as the motion information of the triangular block. In addition, motion information of a triangular block may be derived using both the weight values w0 and w1 and the offset values o0 and o1.

실시예 2Example 2

실시예 2는 BCW 기능에 이용되는 가중치들을 기준으로 삼각형블록의 움직임정보를 유도하는 방법이다. 두 개의 삼각형블록들(PU1 및 PU2) 중에서 PU1의 움직임정보를 유도하는 방법에 대한 일 예가 도 11에 나타나 있다. w0와 w1은 수학식 2 및 3에서 설명된 가중치 값들을 의미한다. Embodiment 2 is a method of deriving motion information of a triangular block based on weights used for the BCW function. An example of a method of inducing motion information of PU 1 among two triangular blocks PU 1 and PU 2 is shown in FIG. 11. w0 and w1 denote weight values described in Equations 2 and 3.

영상 복호화 장치는 merge_triangle_idx0를 비트스트림으로부터 복호화하고(S1110), 일반 후보 리스트에 포함된 후보들 중에서 merge_triangle_idx0가 지시하는 대상 후보블록(A)을 특정할 수 있다(S1120).The video decoding apparatus may decode merge_triangle_idx0 from the bitstream (S1110), and specify a target candidate block A indicated by merge_triangle_idx0 from among candidates included in the general candidate list (S1120).

영상 복호화 장치는 대상 후보블록의 참조 방향이 양방향인 경우에(S1130) 대상 후보블록의 가중 예측에 적용되는 bcw_idx 값을 파악할 수 있다(S1140). bcw_idx가 짝수인 경우(S1150), w0가 w1에 비해 큰 값을 가지므로 L0 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1160). 이와 달리, bcw_idx가 홀수인 경우(S1150), w0가 w1에 비해 작은 값을 가지므로 L1 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1180). bcw_idx가 0인 경우에는(S1150) w0 = w1이므로, L1 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1180). When the reference direction of the target candidate block is bidirectional (S1130), the video decoding apparatus may determine a bcw_idx value applied to the weighted prediction of the target candidate block (S1140). When bcw_idx is an even number (S1150), since w0 has a larger value than w1, the L0 motion information may be derived as the motion information of PU 1 (S1160). In contrast, when bcw_idx is an odd number (S1150), since w0 has a smaller value than w1, the L1 motion information may be derived as the motion information of PU 1 (S1180). When bcw_idx is 0 (S1150), since w0 = w1, the L1 motion information may be derived as the motion information of PU 1 (S1180).

영상 복호화 장치는 대상 후보블록의 참조 방향이 단방향(L0 또는 L1)인 경우(S1130) 대상 후보블록의 참조 방향과 동일한 방향의 움직임정보를 PU1의 움직임정보로 유도할 수 있다. 구체적으로, 대상 후보블록의 참조 방향이 L0의 단방향인 경우(S1170)에는 L0의 움직임정보가 PU1의 움직임정보로 유도될 수 있으며(S1160), 대상 후보블록의 참조 방향이 L1의 단방향인 경우(S1170)에는 L1의 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1180).When the reference direction of the target candidate block is unidirectional (L0 or L1) (S1130), the video decoding apparatus may derive motion information in the same direction as the reference direction of the target candidate block as the motion information of PU 1 . Specifically, when the reference direction of the target candidate block is one direction of L0 (S1170), the motion information of L0 may be derived as the motion information of PU 1 (S1160), and when the reference direction of the target candidate block is one direction of L1 In (S1170), the motion information of L1 may be derived as the motion information of PU 1 (S1180).

도 11에는 PU1의 움직임정보를 유도하는 일 예만이 나타나 있으나, PU2의 움직임정보도 도 11에 나타난 과정들을 통해 유도될 수 있다.Although only an example of deriving the motion information of PU 1 is shown in FIG. 11, the motion information of PU 2 may also be derived through the processes shown in FIG. 11.

실시예 3Example 3

실시예 3은 참조픽처들 각각과 현재픽처 사이의 거리를 기준으로 삼각형블록의 움직임정보를 유도하는 방법이다. 여기서, 참조픽처들 각각과 현재픽처 사이의 거리는 참조픽처들 각각과 현재픽처 사이의 POC(picture order count) 차이 값일 수 있다. 두 개의 삼각형블록들(PU1 및 PU2) 중에서 PU1의 움직임정보를 유도하는 방법에 대한 일 예가 도 12에 나타나 있다. Embodiment 3 is a method of deriving motion information of a triangular block based on the distance between each of the reference pictures and the current picture. Here, the distance between each of the reference pictures and the current picture may be a difference value of a picture order count (POC) between each of the reference pictures and the current picture. An example of a method of deriving motion information of PU 1 among two triangular blocks PU 1 and PU 2 is shown in FIG. 12.

영상 복호화 장치는 merge_triangle_idx0를 비트스트림으로부터 복호화하고(S1210), 일반 후보 리스트에 포함된 후보들 중에서 merge_triangle_idx0가 지시하는 대상 후보블록(A)을 특정할 수 있다(S1220).The image decoding apparatus may decode merge_triangle_idx0 from the bitstream (S1210), and may specify a target candidate block A indicated by merge_triangle_idx0 from among candidates included in the general candidate list (S1220).

영상 복호화 장치는 대상 후보블록의 참조 방향이 양방향인 경우에(S1230), L0 참조픽처의 POC 값(POCL0)과 현재픽처의 POC 값(POCcurr) 사이의 차이(diff.POC0) 및, L1 참조픽처의 POC 값(POCL1)과 현재픽처의 POC 값(POCcurr) 사이의 차이(diff.POC1)를 연산하고(S1240), diff.POC0와 diff.POC1를 비교하여(S1250), PU1의 움직임정보를 유도할 수 있다.When the reference direction of the target candidate block is bidirectional (S1230), the video decoding apparatus includes a difference (diff.POC0) between the POC value (POCL0) of the L0 reference picture and the POC value (POCcurr) of the current picture (diff.POC0), and the L1 reference picture. The difference (diff.POC1) between the POC value of (POCL1) and the current picture's POC value (POCcurr) is calculated (S1240), and diff.POC0 and diff.POC1 are compared (S1250), and the motion information of PU 1 is obtained. You can induce.

구체적으로, diff.POC0 < diff.POC1인 경우(S1250)에는 L0 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1260). diff.POC0 > diff.POC1인 경우(S1250)에는 L1 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1280). diff.POC0 = diff.POC1인 경우(S1250)에는 L1 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1280).Specifically, when diff.POC0 <diff.POC1 (S1250), the L0 motion information may be derived as the motion information of the PU 1 (S1260). If diff.POC0> diff.POC1 (S1250), the L1 motion information may be derived as the motion information of the PU 1 (S1280). If diff.POC0 = diff.POC1 (S1250), the L1 motion information may be derived as the motion information of the PU 1 (S1280).

대상 후보블록의 참조 방향이 단방향(L0 또는 L1)인 경우(S1230), 영상 복호화 장치는 대상 후보블록의 참조 방향과 동일한 방향의 움직임정보를 PU1의 움직임정보로 유도할 수 있다. 구체적으로, 대상 후보블록의 참조 방향이 L0의 단방향인 경우(S1270)에는 L0의 움직임정보가 PU1의 움직임정보로 유도될 수 있으며(S1260), 대상 후보블록의 참조 방향이 L1의 단방향인 경우(S1270)에는 L1의 움직임정보가 PU1의 움직임정보로 유도될 수 있다(S1280).When the reference direction of the target candidate block is one direction (L0 or L1) (S1230), the video decoding apparatus may derive motion information in the same direction as the reference direction of the target candidate block as the motion information of PU 1 . Specifically, when the reference direction of the target candidate block is one direction of L0 (S1270), the motion information of L0 may be derived as the motion information of PU 1 (S1260), and when the reference direction of the target candidate block is one direction of L1 In S1270, the motion information of L1 may be derived as the motion information of PU 1 (S1280).

도 12에는 PU1의 움직임정보를 유도하는 일 예만이 나타나 있으나, PU2의 움직임정보도 도 12에 나타난 과정들을 통해 유도될 수 있다.Although only an example of deriving the motion information of PU 1 is shown in FIG. 12, the motion information of PU 2 may also be derived through the processes shown in FIG. 12.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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 exemplary embodiments are not intended to limit the technical idea of the present exemplary embodiment, but are illustrative, and the scope of the technical idea of the present exemplary embodiment is not limited by these exemplary 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 (12)

삼각형블록의 움직임정보를 유도하는 방법으로서,
비트스트림으로부터, 후보 리스트(candidate list)에 포함된 후보블록들 중에서 어느 하나를 지시하는 인덱스를 복호화하는 단계;
상기 인덱스에 의해 지시되는 후보블록인 대상 후보블록의 참조 방향이 양방향(bi-prediction)인지 여부를 판단하는 단계; 및
상기 대상 후보블록의 참조 방향이 양방향인 경우, 상기 대상 후보블록의 양방향 움직임정보들 중 어느 하나를 상기 삼각형블록의 움직임정보로 유도하는 단계를 포함하는, 움직임정보 유도 방법.
As a method of inducing the motion information of a triangular block,
Decoding an index indicating any one of candidate blocks included in a candidate list from the bitstream;
Determining whether a reference direction of a target candidate block, which is a candidate block indicated by the index, is bi-prediction; And
And inducing any one of the two-way motion information of the target candidate block into motion information of the triangular block when the reference direction of the target candidate block is bidirectional.
제1항에 있어서,
상기 유도하는 단계는,
상기 대상 후보블록의 가중 예측에 적용되는 가중치들을 기준으로, 상기 대상 후보블록의 움직임정보들 중 어느 하나를 상기 삼각형블록의 움직임정보로 유도하는, 움직임정보 유도 방법.
The method of claim 1,
The inducing step,
A method of inducing motion information, in which one of motion information of the target candidate block is derived as motion information of the triangular block based on weights applied to weighted prediction of the target candidate block.
제2항에 있어서,
상기 가중치들은,
제1방향의 예측에 적용되는 제1가중치 및 제2방향의 예측에 적용되는 제2가중치를 포함하고,
상기 유도하는 단계는,
상기 제1가중치가 상기 제2가중치에 비해 큰 경우, 상기 대상 후보블록의 움직임정보들 중, 상기 제1방향의 움직임정보를 상기 삼각형블록의 움직임정보로 유도하는, 움직임정보 유도 방법.
The method of claim 2,
The weights are,
A first weight applied to prediction in the first direction and a second weight applied to prediction in the second direction,
The inducing step,
When the first weight is greater than the second weight, the motion information in the first direction is derived from motion information of the target candidate block as motion information of the triangular block.
제2항에 있어서,
상기 가중치들은,
상기 대상 후보블록이 포함된 슬라이스(slice) 단위로 설정되는, 움직임정보 유도 방법.
The method of claim 2,
The weights are,
The motion information derivation method, which is set in a slice unit including the target candidate block.
제2항에 있어서,
상기 가중치들은,
적용 가능한 후보 가중치들 중에서, 상기 대상 후보블록에 설정된 가중치 인덱스에 의해 지시되는, 움직임정보 유도 방법.
The method of claim 2,
The weights are,
Among applicable candidate weights, motion information derivation method indicated by a weight index set in the target candidate block.
제1항에 있어서,
상기 유도하는 단계는,
상기 대상 후보블록의 참조픽처들 각각과 상기 삼각형블록이 포함된 현재픽처 사이의 거리 차이를 기준으로, 상기 대상 후보블록의 움직임정보들 중 어느 하나를 상기 삼각형블록의 움직임정보로 유도하는, 움직임정보 유도 방법.
The method of claim 1,
The inducing step,
Motion information for deriving any one of motion information of the target candidate block as motion information of the triangle block based on a distance difference between each of the reference pictures of the target candidate block and the current picture including the triangle block Induction method.
비트스트림으로부터, 후보 리스트(candidate list)에 포함된 후보블록들 중에서 어느 하나를 지시하는 인덱스를 복호화하는 복호화부; 및
상기 인덱스에 의해 지시되는 후보블록인 대상 후보블록의 참조 방향이 양방향(bi-prediction)인지 여부를 판단하고, 상기 대상 후보블록의 참조 방향이 양방향인 경우 상기 대상 후보블록의 양방향 움직임정보들 중 어느 하나를 삼각형블록의 움직임정보로 유도하는 예측부를 포함하는, 영상 복호화 장치.
A decoder for decoding an index indicating any one of candidate blocks included in a candidate list from the bitstream; And
It is determined whether the reference direction of the target candidate block, which is the candidate block indicated by the index, is bi-prediction, and when the reference direction of the target candidate block is bi-directional, any of the two-way motion information of the target candidate block A video decoding apparatus comprising a prediction unit for inducing one into motion information of a triangular block.
제7항에 있어서,
상기 예측부는,
상기 대상 후보블록의 양방향 예측에 적용되는 가중치들을 기준으로, 상기 대상 후보블록의 움직임정보들 중 어느 하나를 상기 삼각형블록의 움직임정보로 유도하는, 영상 복호화 장치.
The method of claim 7,
The prediction unit,
An image decoding apparatus for inducing any one of motion information of the target candidate block as motion information of the triangular block based on weights applied to bidirectional prediction of the target candidate block.
제8항에 있어서,
상기 가중치들은,
상기 대상 후보블록의 양방향 중, 제1방향의 예측에 적용되는 제1가중치 및 제2방향의 예측에 적용되는 제2가중치를 포함하고,
상기 예측부는,
상기 제1가중치가 상기 제2가중치에 비해 큰 경우, 상기 대상 후보블록의 움직임정보들 중, 상기 제1방향의 움직임정보를 상기 삼각형블록의 움직임정보로 유도하는, 영상 복호화 장치.
The method of claim 8,
The weights are,
Among the two directions of the target candidate block, a first weight applied to prediction in a first direction and a second weight applied to prediction in a second direction are included,
The prediction unit,
When the first weight value is greater than the second weight value, the motion information in the first direction among motion information of the target candidate block is derived as motion information of the triangular block.
제8항에 있어서,
상기 가중치들은,
상기 대상 후보블록이 포함된 슬라이스(slice) 단위로 설정되는, 영상 복호화 장치.
The method of claim 8,
The weights are,
The image decoding apparatus, which is set in a slice unit including the target candidate block.
제8항에 있어서,
상기 가중치들은,
적용 가능한 후보 가중치들 중에서, 상기 대상 후보블록에 설정된 가중치 인덱스에 의해 지시되는, 영상 복호화 장치.
The method of claim 8,
The weights are,
Among applicable candidate weights, the video decoding apparatus is indicated by a weight index set in the target candidate block.
제7항에 있어서,
상기 예측부는,
상기 대상 후보블록의 참조픽처들 각각과 상기 삼각형블록이 포함된 현재픽처 사이의 POC(picture order count) 차이를 기준으로, 상기 대상 후보블록의 움직임정보들 중 어느 하나를 상기 삼각형블록의 움직임정보로 유도하는, 영상 복호화 장치.
The method of claim 7,
The prediction unit,
Based on a picture order count (POC) difference between each of the reference pictures of the target candidate block and the current picture including the triangle block, one of the motion information of the target candidate block is used as the motion information of the triangle block. Inducing, video decoding device.
KR1020190136825A 2019-06-25 2019-10-30 Method and apparatus for deriving motion information KR20210000637A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190075909 2019-06-25
KR1020190075909 2019-06-25

Publications (1)

Publication Number Publication Date
KR20210000637A true KR20210000637A (en) 2021-01-05

Family

ID=74140932

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190136825A KR20210000637A (en) 2019-06-25 2019-10-30 Method and apparatus for deriving motion information

Country Status (1)

Country Link
KR (1) KR20210000637A (en)

Similar Documents

Publication Publication Date Title
KR102643116B1 (en) Method and apparatus for encoding/decoding image, recording medium for stroing bitstream
US9955167B1 (en) Video encoding/decoding method using motion information candidate group for batch mode
KR102103004B1 (en) Method and apparatus for image encoding/decoding
KR102328179B1 (en) Method and apparatus for encoding/decoding image and recording medium for storing bitstream
KR102383105B1 (en) Method and apparatus for processing a video signal
KR102233820B1 (en) Method and apparatus for processing a video signal
KR20170058838A (en) Method and apparatus for encoding/decoding of improved inter prediction
CN109716775B (en) Method and apparatus for processing video signal
KR102619133B1 (en) Method and apparatus for encoding/decoding image and recording medium for storing bitstream
US20210274164A1 (en) Inter-prediction method and video decoding apparatus using the same
KR20210000635A (en) Method and apparatus for deriving a block vector of chroma block
KR20230133262A (en) Prediction method and apparatus using the current picture referencing mode
KR20210035036A (en) Method and apparatus for deriving temporal motion vector predictor
KR20150048637A (en) Method and apparatus for inter color component prediction
US20240236302A1 (en) Inter-prediction method and video decoding apparatus using the same
KR20190142717A (en) Inter prediction method and apparatus using the same
KR20210000637A (en) Method and apparatus for deriving motion information
KR20210001852A (en) Method and apparatus for deriving bi-prediction weight index
KR20200081207A (en) Method for representing motion information and apparatus using the same
KR20210002321A (en) Method and apparatus for adaptively setting resolution
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
KR20130124920A (en) Method and apparatus for image encoding/decoding