KR20200110235A - Method and apparatus for deriving delta motion vector - Google Patents

Method and apparatus for deriving delta motion vector Download PDF

Info

Publication number
KR20200110235A
KR20200110235A KR1020200031115A KR20200031115A KR20200110235A KR 20200110235 A KR20200110235 A KR 20200110235A KR 1020200031115 A KR1020200031115 A KR 1020200031115A KR 20200031115 A KR20200031115 A KR 20200031115A KR 20200110235 A KR20200110235 A KR 20200110235A
Authority
KR
South Korea
Prior art keywords
unit
motion vector
integer
samples
flag
Prior art date
Application number
KR1020200031115A
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 KR20200110235A publication Critical patent/KR20200110235A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

Disclosed are a method for deriving a delta motion vector and an image decoding device. According to one embodiment of the present invention, provided is a method for deriving a delta motion vector used for decoder-side motion vector refinement (DMVR). The method comprises the steps of: acquiring, from a bitstream, an application flag related to whether the DMVR is applied, a motion vector of a current sub-block, and a reference picture of the current sub-block; deriving the delta motion vector in integer units from a position indicated by the motion vector using an integer sample offset indicating an integer sample having a minimum sum of absolute differences (SAD) of candidate integer samples corresponding to the current sub-block; and refining, in fractional units, the delta motion vector derived in integer units by using a fractional sample offset derived from the candidate integer samples wherein whether the refining step is performed is determined according to a value of the application flag. According to the present invention, complexity of a decoding process can be reduced.

Description

델타 움직임벡터를 유도하는 방법 및 영상 복호화 장치{METHOD AND APPARATUS FOR DERIVING DELTA MOTION VECTOR}A method for deriving a delta motion vector and an image decoding apparatus {METHOD AND APPARATUS FOR DERIVING DELTA MOTION VECTOR}

본 발명은 영상의 부호화 및 복호화에 관한 것으로서, 더욱 구체적으로는 델타 움직임벡터를 유도하는 과정의 복잡도를 유기적으로 조절하여 부호화 및 복호화의 효율을 향상시킨 델타 움직임벡터 유도 방법 및 영상 복호화 장치에 관한 것이다.The present invention relates to encoding and decoding of an image, and more particularly, to a delta motion vector derivation method and an image decoding apparatus in which the efficiency of encoding and decoding is improved by organically controlling the complexity of the process of deriving the delta motion vector. .

동영상 데이터는 음성 데이터나 정지 영상 데이터 등에 비하여 많은 데이터량을 가지기 때문에, 압축을 위한 처리 없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다. 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.

이러한 요구에 부응하기 위해 본 발명은 개선된 영상 부호화 및 복호화 기술을 제공하는 것을 목적으로 하며, 특히, 본 발명의 일 측면은 적용 플래그가 지시하는 바에 따라, DMVR의 전체 과정 또는 일부 과정에 대한 수행 여부를 선택적으로 결정함으로써, 부호화 및 복호화의 효율을 향상시키는 기술과 관련된다.In order to meet these demands, the present invention aims to provide an improved video encoding and decoding technology, and in particular, one aspect of the present invention is to perform the entire process or partial process of the DMVR as indicated by the application flag. It relates to a technique for improving the efficiency of encoding and decoding by selectively determining whether or not.

본 발명의 일 측면은, DMVR(decoder-side motion vector refinement)에 이용되는 델타(delta) 움직임벡터를 유도하는 방법으로서, 비트스트림으로부터, 상기 DMVR의 적용 여부에 관련된 적용 플래그, 현재 서브블록의 움직임벡터 및 상기 현재 서브블록의 참조픽처를 획득하는 단계; 상기 움직임벡터에 의해 지시되는 위치로부터, 상기 현재 서브블록에 대응되는 후보 정수샘플들 중 최소의 SAD(sum of absolute differences)를 가지는 정수샘플을 지시하는 정수샘플 오프셋을 이용하여, 상기 델타 움직임벡터를 정수 단위로 유도하는 단계; 및 상기 후보 정수샘플들로부터 유도되는 소수샘플 오프셋을 이용하여, 상기 정수 단위로 유도된 델타 움직임벡터를 소수 단위로 개선(refinement)하는 단계를 포함하고, 상기 개선하는 단계는, 상기 적용 플래그의 값에 따라 수행 여부가 결정되는, 델타 움직임벡터 유도 방법을 제공한다.An aspect of the present invention is a method of deriving a delta motion vector used for decoder-side motion vector refinement (DMVR), comprising, from a bitstream, an application flag related to whether or not the DMVR is applied, and a current subblock motion Obtaining a vector and a reference picture of the current subblock; From the position indicated by the motion vector, the delta motion vector is calculated using an integer sample offset indicating an integer sample having a minimum sum of absolute differences (SAD) among candidate integer samples corresponding to the current subblock. Deriving in integer units; And refinement of the delta motion vector derived in integer units in decimal units by using the decimal sample offset derived from the candidate integer samples, wherein the improving comprises a value of the applied flag A method of deriving a delta motion vector is provided, in which the performance is determined according to the method.

본 발명의 다른 일 측면은, DMVR(decoder-side motion vector refinement)에 이용되는 델타(delta) 움직임벡터를 유도하는 영상 복호화 장치로서, 비트스트림으로부터, 상기 DMVR의 적용 여부에 관련된 적용 플래그, 현재 서브블록의 움직임벡터 및 상기 현재 서브블록의 참조픽처를 획득하는 획득부; 상기 움직임벡터에 의해 지시되는 위치로부터, 상기 현재 서브블록에 대응되는 후보 정수샘플들 중 최소의 SAD(sum of absolute differences)를 가지는 정수샘플을 지시하는 정수샘플 오프셋을 이용하여, 상기 델타 움직임벡터를 정수 단위로 유도하는 유도부; 및 상기 후보 정수샘플들로부터 유도되는 소수샘플 오프셋을 이용하여, 상기 정수 단위로 유도된 델타 움직임벡터를 소수 단위로 개선(refinement)하는 개선부를 포함하고, 상기 개선부는, 상기 적용 플래그의 값에 따라 상기 소수 단위 개선의 수행 여부를 결정하는, 영상 복호화 장치를 제공한다.Another aspect of the present invention is an image decoding apparatus that induces a delta motion vector used for decoder-side motion vector refinement (DMVR), from a bitstream, an application flag related to whether or not the DMVR is applied, a current sub An acquisition unit acquiring a motion vector of a block and a reference picture of the current subblock; From the position indicated by the motion vector, the delta motion vector is calculated using an integer sample offset indicating an integer sample having a minimum sum of absolute differences (SAD) among candidate integer samples corresponding to the current subblock. An induction unit for guiding in integer units; And an improvement unit for refinement of the delta motion vector derived in the integer unit by the decimal unit by using the decimal sample offset derived from the candidate integer samples, wherein the improvement unit includes: It provides an apparatus for decoding an image, which determines whether to perform the fractional improvement.

이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, DMVR의 전체 과정 또는 일부 과정에 대한 수행 여부를 선택적으로 결정할 수 있으므로, 디코딩 과정의 복잡도를 감소시켜 효율성을 향상시킬 수 있다.As described above, according to an embodiment of the present invention, since it is possible to selectively determine whether to perform all or part of the DMVR process, it is possible to improve efficiency by reducing the complexity of the decoding process.

도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다.
도 3a는 복수의 인트라 예측 모드들을 나타낸 도면이다.
도 3b는 광각 인트라 예측모드들을 포함한 복수의 인트라 예측 모드들을 나타낸 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5는 RDPCM을 설명하기 위한 도면이다.
도 6은 DMVR을 설명하기 위한 도면이다.
도 7은 본 개시의 기술들을 구현할 수 있는 인터 예측부의 예시적인 블록도이다.
도 8은 델타 움직임벡터를 유도하는 방법에 대한 일 예를 설명하기 위한 순서도이다.
도 9는 후보 정수샘플들을 설명하기 위한 도면이다.
도 10은 정수 단위 개선의 수행 여부를 결정하는 방법에 대한 일 예를 설명하기 위한 순서도이다.
도 11은 후보 소수샘플들의 보간 여부를 결정하는 방법에 대한 일 예를 설명하기 위한 순서도이다.
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.
3A is a diagram illustrating a plurality of intra prediction modes.
3B is a diagram illustrating a plurality of intra prediction modes including wide-angle intra prediction modes.
4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure.
5 is a diagram for describing RDPCM.
6 is a diagram for describing a DMVR.
7 is an exemplary block diagram of an inter prediction unit capable of implementing the techniques of this disclosure.
8 is a flowchart illustrating an example of a method of inducing a delta motion vector.
9 is a diagram for explaining candidate integer samples.
10 is a flowchart illustrating an example of a method of determining whether to perform integer unit improvement.
11 is a flowchart illustrating an example of a method of determining whether to interpolate candidate prime samples.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.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), 엔트로피 부호화부(155), 역양자화부(160), 역변환부(165), 가산기(170), 필터부(180) 및 메모리(190)를 포함하여 구성될 수 있다.The image encoding apparatus includes a picture segmentation unit 110, a prediction unit 120, a subtractor 130, a transform unit 140, a quantization unit 145, a rearrangement unit 150, an entropy encoding unit 155, an inverse quantization unit. (160), 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 slice is encoded as the syntax of the slice header, and information applied to all blocks constituting one picture is a picture parameter set (PPS) or picture. It is coded in the 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). Also, information commonly applied to one tile or tile group may be encoded as syntax of a tile or tile group header.

픽처 분할부(110)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS의 신택스로서 부호화되어 영상 복호화 장치로 전달된다. The picture 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 an image into a plurality of CTUs (Coding Tree Units) having a predetermined size, the picture 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, by combining BTTT, it may be referred to as MTT (Multiple-Type Tree).

도 2는 QTBTTT 분할 트리 구조를 보인다. 도 2에서 보는 바와 같이, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달할 때까지 반복될 수 있다. QT 구조의 각 노드가 하위 레이어의 4개의 노드들로 분할되는지 여부를 지시하는 제1 플래그(QT_split_flag)는 엔트로피 부호화부(155)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. QT의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조 또는 TT 구조 중 어느 하나 이상으로 더 분할될 수 있다. BT 구조 및/또는 TT 구조에서는 복수의 분할 방향이 존재할 수 있다. 예컨대, 해당 노드의 블록이 가로로 분할되는 방향과 세로로 분할되는 방향 두 가지가 존재할 수 있다. 도 2와 같이, MTT 분할이 시작되면, 노드들이 분할되었는지 여부를 지시하는 제2 플래그(mtt_split_flag)와, 분할이 되었다면 추가적으로 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그 및/또는 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그가 엔트로피 부호화부(155)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. 대안적으로, 각 노드가 하위 레이어의 4개의 노드들로 분할되는지 여부를 지시하는 제1 플래그(QT_split_flag)를 부호화하기에 앞서, 그 노드가 분할되는지 여부를 지시하는 CU 분할 플래그(split_cu_flag)가 부호화될 수도 있다. CU 분할 플래그(split_cu_flag) 값이 분할되지 않았음을 지시하는 경우, 해당 노드의 블록이 분할 트리 구조에서의 리프 노드(leaf node)가 되어 부호화의 기본 단위인 CU(coding unit)가 된다. CU 분할 플래그(split_cu_flag) 값이 분할됨을 지시하는 경우, 영상 부호화 장치는 전술한 방식으로 제1 플래그부터 부호화를 시작한다.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 entropy encoder 155 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 entropy encoder 155 and signaled to the image decoding apparatus. Alternatively, before encoding the first flag (QT_split_flag) indicating whether each node is divided into four nodes of a lower layer, a CU split flag (split_cu_flag) indicating whether the node is divided is encoded. It could be. 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 to be split, the video encoding apparatus starts encoding from the first flag in the above-described manner.

트리 구조의 다른 예시로서 QTBT가 사용되는 경우, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. BT 구조의 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할되는 타입을 지시하는 분할 타입 정보가 엔트로피 부호화부(155)에 의해 부호화되어 영상 복호화 장치로 전달된다. 한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태에는 해당 노드의 블록을 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 entropy encoder 155 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의 리프 노드)에 해당하는 블록을 '현재블록'이라 칭한다. 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'. According to the adoption of the QTBTTT division, the shape of the current block may be not only square but also rectangular.

예측부(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)는 현재블록이 포함된 현재 픽처 내에서 현재블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재한다. 예컨대, 도 3a에서 보는 바와 같이, 복수의 인트라 예측모드는 planar 모드와 DC 모드를 포함하는 2개의 비방향성 모드와 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. 3A, the plurality of intra prediction modes may include two non-directional modes 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 calculation expression are defined differently.

직사각형 모양의 현재블록에 대한 효율적인 방향성 예측을 위해, 도 3b에 점선 화살표로 도시된 방향성 모드들(67 ~ 80번, -1 ~ -14 번 인트라 예측모드들)이 추가로 사용될 수 있다. 이들은 "광각 인트라 예측모드들(wide angle intra-prediction modes)"로 지칭될 수 있다. 도 3b에서 화살표들은 예측에 사용되는 대응하는 참조샘플들을 가리키는 것이며, 예측 방향을 나타내는 것이 아니다. 예측 방향은 화살표가 가리키는 방향과 반대이다. 광각 인트라 예측모드들은 현재블록이 직사각형일 때 추가적인 비트 전송 없이 특정 방향성 모드를 반대방향으로 예측을 수행하는 모드이다. 이때 광각 인트라 예측모드들 중에서, 직사각형의 현재블록의 너비와 높이의 비율에 의해, 현재블록에 이용 가능한 일부 광각 인트라 예측모드들이 결정될 수 있다. 예컨대, 45도보다 작은 각도를 갖는 광각 인트라 예측모드들(67 ~ 80번 인트라 예측모드들)은 현재블록이 높이가 너비보다 작은 직사각형 형태일 때 이용 가능하고, -135도보다 큰 각도를 갖는 광각 인트라 예측모드들(-1 ~ -14 번 인트라 예측모드들)은 현재블록이 높이가 너비보다 큰 직사각형 형태일 때 이용 가능하다.For efficient directional prediction for the rectangular-shaped current block, directional modes (67 to 80, intra prediction modes -1 to -14) shown by dotted arrows in FIG. 3B may be additionally used. These may be referred to as "wide angle intra-prediction modes". Arrows in FIG. 3B indicate corresponding reference samples used for prediction, and do not indicate a prediction direction. The prediction direction is opposite to the direction indicated by the arrow. In the wide-angle intra prediction modes, when the current block is a rectangular shape, a specific directional mode is predicted in the opposite direction without additional bit transmission. In this case, among the wide-angle intra prediction modes, some wide-angle intra prediction modes available for the current block may be determined based on a ratio of the width and height of the rectangular current block. For example, wide-angle intra prediction modes with an angle less than 45 degrees (intra prediction modes 67 to 80) can be used when the current block has a rectangular shape with a height smaller than the width, and wide-angle with an angle greater than -135 degrees. The intra prediction modes (intra prediction modes -1 to -14) can be used when the current block has a rectangular shape whose height is greater than the width.

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

인터 예측부(124)는 움직임 보상 과정을 통해 현재블록에 대한 예측블록을 생성한다. 인터 예측부(124)는 현재 픽처보다 먼저 부호화 및 복호화된 참조픽처 내에서 현재블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재블록과 참조픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 일반적으로, 움직임 추정은 루마(luma) 성분에 대해 수행되고, 루마 성분에 기초하여 계산된 모션 벡터는 루마 성분 및 크로마 성분 모두에 대해 사용된다. 현재블록을 예측하기 위해 사용된 참조픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 엔트로피 부호화부(155)에 의해 부호화되어 영상 복호화 장치로 전달된다.The inter prediction unit 124 generates a prediction block for the current block through a motion compensation process. The inter prediction unit 124 searches for a block most similar to the current block in the coded and decoded reference picture prior to the current picture, and generates a prediction block for the current block 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 the current block and information on a motion vector is encoded by the entropy encoder 155 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)는 잔차블록을 하나 이상의 변환블록들로 나누고, 변환을 하나 이상의 변환 블록들에 적용하여, 변환블록들의 잔차 값들을 픽셀 도메인에서 주파수 도메인으로 변환한다. 주파수 도메인에서, 변환된 블록들은 하나 이상의 변환 계수 값들을 포함하는 계수 블록들이라고 지칭된다. 변환에는 2차원 변환 커널이 사용될 수 있으며, 수평 방향 변환과 수직 방향 변환에 각각 1차원 변환 커널이 사용될 수도 있다. 변환 커널은 이산 코사인 변환(DCT), 이산 사인 변환(DST) 등에 기반할 수 있다.The transform unit 140 divides the residual block into one or more transform blocks, applies the transform to one or more transform blocks, and transforms residual values of the transform blocks from the pixel domain to the frequency domain. In the frequency domain, transformed blocks are referred to as coefficient blocks comprising one or more transform coefficient values. A 2D transformation kernel may be used for transformation, and a 1D transformation kernel may be used for horizontal and vertical transformation respectively. The transform kernel may be based on discrete cosine transform (DCT), discrete sine transform (DST), or the like.

변환부(140)는 잔차블록의 전체 크기를 변환 단위로 사용하여 잔차블록 내의 잔차 신호들을 변환할 수 있다. 또한, 변환부(140)는 잔차블록을 수평 혹은 수직 방향으로 2개의 서브블록으로 분할하고, 변환을 2개의 서브블록 중 하나에만 수행할 수 있다. 따라서, 변환 블록의 사이즈는 잔차 블록의 사이즈(따라서 예측블록의 사이즈)와 상이할 수도 있다. 변환이 수행되지 않는 서브블록에는 논-제로 잔차 샘플 값들이 존재하지 않거나 매우 희소할 수 있다. 변환이 수행되지 않는 서브블록의 잔차 샘플들은 시그널링되지 않으며, 영상 복호화 장치에 의해 모두 "0"으로 간주될 수 있다. 분할 방향과 분할 비율에 따라 여러 파티션 타입들이 존재할 수 있다. 변환부(140)는 잔차블록의 코딩 모드(혹은 변환 모드)에 관한 정보(예컨대, 잔차 블록을 변환하였는지 아니면 잔차 서브블록을 변환하였는지를 나타내는 정보, 잔차블록을 서브블록들로 분할하기 위해 선택된 파티션 타입을 나타내는 정보, 변환이 수행되는 서브블록을 식별하는 정보 등을 포함하는 정보)를 엔트로피 부호화부(155)에 제공할 수 있다. 엔트로피 부호화부(155)는 잔차블록의 코딩 모드(혹은 변환 모드)에 관한 정보를 부호화할 수 있다. The transform unit 140 may transform residual signals in the residual block by using the entire size of the residual block as a transform unit. In addition, the transform unit 140 may divide the residual block into two sub-blocks in a horizontal or vertical direction, and may perform transformation on only one of the two sub-blocks. Accordingly, the size of the transform block may be different from the size of the residual block (and thus the size of the prediction block). Non-zero residual sample values may not exist or may be very sparse in a subblock on which transformation is not performed. The residual samples of the subblock on which the transformation is not performed are not signaled, and may be regarded as "0" by the image decoding apparatus. There can be several partition types depending on the partitioning direction and partitioning ratio. The transform unit 140 includes information on the coding mode (or transform mode) of the residual block (e.g., information indicating whether the residual block is transformed or the residual subblock is transformed, and a partition type selected to divide the residual block into subblocks) The entropy encoding unit 155 may be provided with information indicating information and information identifying a subblock on which transformation is performed. The entropy encoder 155 may encode information about a coding mode (or transform mode) of the residual block.

양자화부(145)는 변환부(140)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 엔트로피 부호화부(155)로 출력한다. 양자화부(145)는, 어떤 블록 혹은 프레임에 대해, 변환 없이, 관련된 잔차 블록을 곧바로 양자화할 수도 있다.The quantization unit 145 quantizes the transform coefficients output from the transform unit 140 and outputs the quantized transform coefficients to the entropy encoding unit 155. The quantization unit 145 may immediately quantize a related residual block for a certain block or frame without transformation.

재정렬부(150)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다. 재정렬부(150)는 계수 스캐닝(coefficient scanning)을 통해 2차원의 계수 어레이를 1차원의 계수 시퀀스로 변경할 수 있다. 예를 들어, 재정렬부(150)에서는 지그-재그 스캔(zig-zag scan) 또는 대각선 스캔(diagonal scan)을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원의 계수 시퀀스를 출력할 수 있다. 변환 단위의 크기 및 인트라 예측모드에 따라 지그-재그 스캔 대신 2차원의 계수 어레이를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 인트라 예측모드에 따라 지그-재그 스캔, 대각선 스캔, 수직 방향 스캔 및 수평 방향 스캔 중에서 사용될 스캔 방법이 결정될 수도 있다.The rearrangement unit 150 may rearrange coefficient values on the quantized residual values. The rearrangement unit 150 may change a two-dimensional coefficient array into a one-dimensional coefficient sequence through coefficient scanning. For example, the rearrangement unit 150 may scan from a DC coefficient to a coefficient in a high frequency region using a zig-zag scan or a diagonal scan to output a one-dimensional coefficient sequence. . Depending on the size of the transform unit and the intra prediction mode, instead of zig-zag scan, a vertical scan that scans a two-dimensional coefficient array in a column direction or a horizontal scan that scans a two-dimensional block shape coefficient in a row direction may be used. That is, a scan method to be used may be determined from among zig-zag scan, diagonal scan, vertical scan, and horizontal scan according to the size of the transform unit and the intra prediction mode.

엔트로피 부호화부(155)는, CABAC(Context-based Adaptive Binary Arithmetic Code), 지수 골롬(Exponential Golomb) 등의 다양한 부호화 방식을 사용하여, 재정렬부(150)로부터 출력된 1차원의 양자화된 변환 계수들의 시퀀스를 부호화함으로써 비트스트림을 생성한다. The entropy encoding unit 155 uses various encoding methods such as Context-based Adaptive Binary Arithmetic Code (CABAC), Exponential Golomb, and the like, and the quantized transform coefficients of 1D output from the reordering unit 150 are A bitstream is generated by encoding the sequence.

또한, 엔트로피 부호화부(155)는 블록 분할과 관련된 CTU size, CU 분할 플래그, QT 분할 플래그, MTT 분할 타입, MTT 분할 방향 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다. 또한, 엔트로피 부호화부(155)는 현재블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보(즉, 인트라 예측모드에 대한 정보) 또는 인터 예측정보(참조픽처 및 움직임벡터에 대한 정보)를 부호화한다.In addition, the entropy encoder 155 encodes information such as a CTU size related to block division, a CU division flag, a QT division flag, an MTT division type, and an MTT division direction, so that the video decoding apparatus performs the same block as the video encoding apparatus. Make it possible to divide. In addition, the entropy encoder 155 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) according to the prediction type. Mode information) or inter prediction information (reference picture and motion vector information) 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 may be 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), 재정렬부(415), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450), 필터부(460) 및 메모리(470)를 포함하여 구성될 수 있다. The image decoding apparatus includes an entropy decoding unit 410, a rearrangement unit 415, 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. ) Can be included.

도 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 entropy decoding unit 410 determines the current block to be decoded by decoding the bitstream generated by the image encoding apparatus and extracting information related to block division, and predicting information and residual signals necessary to restore the current block. Extract information, etc.

엔트로피 복호화부(410)는 SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고, CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할정보를 추출함으로써 트리 구조를 이용하여 CTU를 분할한다. The entropy 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)를 추출하고, 해당 블록이 분할된 경우, 제1 플래그(QT_split_flag)를 추출할 수도 있다. 분할 과정에서 각 노드는 0번 이상의 반복적인 QT 분할 후에 0번 이상의 반복적인 MTT 분할이 발생할 수 있다. 예컨대, CTU는 바로 MTT 분할이 발생하거나, 반대로 다수 번의 QT 분할만 발생할 수도 있다. As another example, when splitting the CTU using the QTBTTT structure, first extract the CU split flag (split_cu_flag) indicating whether to split the CU, and if the corresponding block is split, the first flag (QT_split_flag) is extracted. May be. 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 entropy 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 entropy 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 entropy 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)는 잔차블록의 코딩 모드에 관한 정보(예컨대, 잔차블록이 부호화되었는지 잔차블록의 서브블록만이 부호화되었는지 여부에 관한 정보, 잔차블록을 서브블록들로 분할하기 위해 선택된 파티션 타입을 나타내는 정보, 부호화된 잔차 서브블록을 식별하는 정보, 양자화 파라미터 등)를 비트스트림으로부터 추출한다. 또한, 엔트로피 복호화부(410)는 잔차신호에 대한 정보로서 현재블록의 양자화된 변환계수들에 대한 정보를 추출한다.On the other hand, the entropy decoder 410 includes information on the coding mode of the residual block (e.g., information on whether the residual block is encoded or only the subblocks of the residual block are encoded, and is selected to divide the residual block into subblocks). Information indicating the partition type, information identifying the encoded residual subblock, quantization parameters, etc.) are extracted from the bitstream. In addition, the entropy decoder 410 extracts information on quantized transform coefficients of the current block as information on the residual signal.

재정렬부(415)는, 영상 부호화 장치에 의해 수행된 계수 스캐닝 순서의 역순으로, 엔트로피 복호화부(410)에서 엔트로피 복호화된 1차원의 양자화된 변환계수들의 시퀀스를 다시 2차원의 계수 어레이(즉, 블록)로 변경할 수 있다.The rearrangement unit 415, in the reverse order of the coefficient scanning order performed by the image encoding apparatus, reconverts the sequence of one-dimensional quantized transform coefficients entropy-decoded by the entropy decoder 410 into a two-dimensional coefficient array (i.e., Block).

역양자화부(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 based on information on the coding mode of the residual block By reconstructing the signals, a reconstructed residual block for the current block is generated.

역변환부(430)는, 잔차블록의 코딩 모드에 관한 정보가 영상 부호화 장치에서 현재블록의 잔차블록이 부호화되었다고 지시하는 경우에, 역양자화된 변환계수들에 대해 현재블록의 사이즈(따라서, 복원될 잔차블록의 사이즈)를 변환 단위로 사용하여 역변환을 수행하여 현재블록에 대한 복원된 잔차블록을 생성한다. When the information on the coding mode of the residual block indicates that the residual block of the current block is coded in the image encoding apparatus, the inverse transform unit 430 determines the size of the current block (and thus, to be reconstructed) with respect to the inverse quantized transformation coefficients. A reconstructed residual block for the current block is generated by performing inverse transformation using the residual block size) as a transformation unit.

또한, 역변환부(430)는, 잔차블록의 코딩 모드에 관한 정보가 영상 부호화 장치에서 잔차블록의 하나의 서브블록만이 부호화되었다고 지시하는 경우에, 역양자화된 변환계수들에 대해, 변환된 서브블록의 사이즈를 변환 단위로 사용하여, 역변환을 수행하여 변환된 서브블록에 대한 잔차신호들을 복원하고, 비변환된 서브블록에 대한 잔차신호들을 "0" 값으로 채움으로써, 현재블록에 대한 복원된 잔차블록을 생성한다.In addition, when the information on the coding mode of the residual block indicates that only one subblock of the residual block is coded in the image encoding apparatus, the inverse transform unit 430 performs the transformed sub-blocks on the inverse quantized transform coefficients. By using the size of the block as a transformation unit, performing inverse transformation to restore residual signals for the transformed subblock, and filling the residual signals for untransformed subblocks with a value of "0", the reconstructed current block Create a residual 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 the syntax element for the intra prediction mode extracted from the entropy decoding unit 410, and references around the current block according to the intra prediction mode. Predict the current block using pixels.

인터 예측부(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 entropy decoding unit 410, and determines the motion vector and the reference picture. Is used to predict the current block.

가산기(450)는 역변환부(430)로부터 출력되는 잔차블록과 인터 예측부(444) 또는 인트라 예측부(442)로부터 출력되는 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.The adder 450 adds the residual block output from the inverse transform unit 430 and the prediction block output from the inter prediction unit 444 or the intra prediction unit 442 to restore the current block. 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.

차세대 비디오 코딩 표준(VVC; Versatile Video Coding)에 대한 논의에서, HEVC(High Efficiency Video Coding) 표준과 비교하여 더 나은 코딩 성능을 가능하게 하는 몇 가지 새로운 코딩 도구들이 도입되었다.In the discussion of the next-generation video coding standard (VVC; Versatile Video Coding), several new coding tools have been introduced that enable better coding performance compared to the High Efficiency Video Coding (HEVC) standard.

MTS(multiple transform set or multiple transform selection)는 가로 방향과 세로 방향 각각에 대해 변환커널(변환타입)을 적용하여 잔차샘플들에 대한 변환을 수행하는 방법이다. TS 모드(transform skip mode)는 잔차샘플들에 대해 변환을 적용하지 않고, 픽셀 레벨에서 양자화 및 엔트로피 코딩을 수행하는 모드이다.MTS (multiple transform set or multiple transform selection) is a method of performing transformation on residual samples by applying a transformation kernel (transform type) in each of the horizontal and vertical directions. The TS mode (transform skip mode) is a mode in which quantization and entropy coding are performed at the pixel level without applying transformation to residual samples.

MTS와 TS 모드는 잔차샘플들의 변환 과정에 대해 서로 관련성을 가지고 있으며, VVC 표준화 논의 과정에서 이 관련성에 대해 새로운 아이디어들이 제안되고 있다. MTS 및 TS 모드에 대한 새로운 아이디어들 중 하나와 종래 VVC draft를 비교한 내용이 표 1에 나타나 있다.MTS and TS modes have a relationship with each other in the conversion process of residual samples, and new ideas are proposed for this relationship in the process of VVC standardization discussion. Table 1 shows a comparison between one of the new ideas for the MTS and TS mode with a conventional VVC draft.

Figure pat00001
Figure pat00001

종래 VVC draft는 MTS에 대한 신택스 요소들을 transform_unit() 구문 내에서 정의한다. MTS가 적용될 수 있는 변환블록의 최대 사이즈는 32×32이고, 이 조건이 만족되는 경우에 해당 변환블록에 MTS가 적용되는지 여부를 나타내는 신택스 요소인 tu_mts_flag가 시그널링된다. TS 모드에 대한 신택스 요소들은 residual_coding() 구문 내에서 정의된다. TS 모드가 적용될 수 있는 변환블록의 최대 사이즈는 4×4이고, 이 조건이 만족되는 경우에 해당 변환블록에 변환이 스킵되는지 여부를 지시하는 신택스 요소인 transform_skip_flag가 시그널링된다. 만약, 해당 변환블록에 MTS가 적용되고(tu_mts_flag = 1) 해당 변환블록이 루마 변환블록이라면(cIdx = 0), mts_idx가 시그널링된다. mts_idx는 해당 변환블록의 수평 방향 및 수직 방향을 따라 잔차샘플들에 적용되는 변환커널을 지시하는 인덱스이다.The conventional VVC draft defines syntax elements for MTS in transform_unit() syntax. The maximum size of a transform block to which MTS can be applied is 32×32, and when this condition is satisfied, a syntax element tu_mts_flag indicating whether MTS is applied to the corresponding transform block is signaled. Syntax elements for the TS mode are defined in the residual_coding() syntax. The maximum size of a transform block to which the TS mode can be applied is 4×4, and when this condition is satisfied, transform_skip_flag, which is a syntax element indicating whether transform is skipped, is signaled in the corresponding transform block. If MTS is applied to the corresponding transform block (tu_mts_flag = 1) and the corresponding transform block is a luma transform block (cIdx = 0), mts_idx is signaled. mts_idx is an index indicating a transform kernel applied to residual samples along the horizontal and vertical directions of the corresponding transform block.

새로운 아이디어는 tu_mts_idx를 이용하여 MTS 및 TS 모드를 transform_unit() 구문 내에서 통합 정의한다. 또한, 새로운 아이디어는 최대 4×4 사이즈의 변환블록에 적용되던 TS 모드를 최대 32×32 사이즈의 변환블록까지 확대하여 적용 가능한 것으로 정의한다. 이는, MTS와의 신택스 코딩의 중복을 방지하기 위함이다.The new idea is to unify the MTS and TS modes in the transform_unit() syntax using tu_mts_idx. In addition, the new idea defines that the TS mode, which was applied to a transform block having a maximum 4x4 size, can be extended to a transform block having a maximum of 32x32 and applied. This is to prevent duplication of syntax coding with MTS.

tu_mts_idx를 이용하여 MTS 및 TS 모드를 선택하는 일 예가 표 2에 나타나 있다. Table 2 shows an example of selecting the MTS and TS modes using tu_mts_idx.

Figure pat00002
Figure pat00002

표 2에 나타낸 바와 같이, tu_mts_idx는 0~5의 값을 가질 수 있으며, 0~5 값은 truncated unary binarization을 이용하여 이진화된다. tu_mts_idx의 각 값에 의해 MTS와 TS 모드 중에서 어느 하나가 선택되고, 변환블록에 적용될 변환커널들이 지정될 수 있다.As shown in Table 2, tu_mts_idx can have a value of 0-5, and values 0-5 are binarized using truncated unary binarization. Any one of the MTS and TS modes may be selected by each value of tu_mts_idx, and transform kernels to be applied to the transform block may be designated.

새로운 아이디어는 수정된 VVC draft에 반영되었으며, 그 예가 표 3에 나타나 있다.The new idea was reflected in the revised VVC draft, an example of which is shown in Table 3.

Figure pat00003
Figure pat00003

표 3에 나타낸 바와 같이, 표 2의 MTS enabled를 표현하는 tu_mts_idx 및 TS 모드를 표현하는 transform_skip_flag가 VVC draft에 반영되었음을 알 수 있다.As shown in Table 3, it can be seen that tu_mts_idx representing MTS enabled in Table 2 and transform_skip_flag representing TS mode are reflected in the VVC draft.

한편, RDPCM(residual differential pulse-code modulation)은 인트라 예측 후에 도출된 잔차샘플들을 추가적으로 예측하여 무손실 압축 성능을 향상시키는 방법이다. RDPCM은 잔차샘플들을 가장 가까운 화소(샘플)로부터 수직 방향 또는 수평 방향으로 추가적으로 예측한다.Meanwhile, RDPCM (residual differential pulse-code modulation) is a method of improving lossless compression performance by additionally predicting residual samples derived after intra prediction. RDPCM additionally predicts residual samples in a vertical direction or a horizontal direction from the nearest pixel (sample).

HEVC extension에서는, 손실 압축이면서 TS 모드로 부호화된 경우에, 인트라 예측 및 인터 예측 후의 잔차샘플들에 대해 RDPCM이 수행된다. TS 모드에서는 잔차샘플들에 대한 변환이 수행되지 않고 직접 엔트로피 부호화가 적용되므로, DCT 대비 RDPCM의 부호화 성능이 뛰어나지 않다고 할 수 있다. 하지만, 특정의 영상들(예를 들어, 스크린 콘텐츠)에 대해서는 RDPCM의 부호화 성능이 높아 압축에 유용하게 사용될 수 있다. 이 특정의 영상들은 색대비가 높은 그래픽 요소의 경계에서 발생하는 높은 주파수 영역대의 잔차샘플들이 많이 존재하기 때문이다. 따라서, RDPCM은 TS 모드에서 엔트로피 부호화를 위한 잔차샘플들의 에너지 총량을 감소시켜 보다 뛰어난 압축 성능을 제공할 수 있다.In the HEVC extension, RDPCM is performed on residual samples after intra-prediction and inter-prediction, when lossy compression is performed in TS mode. In the TS mode, since transformation is not performed on the residual samples and entropy encoding is directly applied, it can be said that the encoding performance of RDPCM is not excellent compared to DCT. However, for specific images (eg, screen content), RDPCM has a high encoding performance, so it can be usefully used for compression. This is because there are a lot of residual samples in the high frequency range that occur at the boundary of graphic elements with high color contrast in this specific image. Accordingly, RDPCM can provide superior compression performance by reducing the total amount of energy of residual samples for entropy encoding in the TS mode.

RDPCM에는 인트라 예측 후 수평 방향 및 수직 방향으로 예측이 수행되는 implicit RDPCM 방식과, 인터 예측 후 수평 방향 또는 수직 방향으로 예측이 수행되는 explicit 방식의 두 가지 방식이 존재한다. explicit 방식에서는 RDPCM의 예측 방향에 대한 정보가 비트스트림을 통해 영상 복호화 장치로 시그널링된다.There are two types of RDPCM: an implicit RDPCM method in which prediction is performed in a horizontal direction and a vertical direction after intra prediction, and an explicit method in which prediction is performed in a horizontal direction or a vertical direction after inter prediction. In the explicit method, information on the prediction direction of the RDPCM is signaled to the image decoding apparatus through a bitstream.

손실 압축의 경우에 4×4 잔차블록에 대한 RDPCM의 일 예가 도 5에 나타나 있다. 도 5 (a)는 RDPCM의 수평 방향 예측을 나타내며, 도 5 (b)는 RDPCM의 수직 방향 예측을 나타낸다.In the case of lossy compression, an example of an RDPCM for a 4×4 residual block is shown in FIG. 5. FIG. 5(a) shows the horizontal direction prediction of RDPCM, and FIG. 5(b) shows the vertical direction prediction of RDPCM.

도 5에 나타낸 바와 같이, 잔차샘플들 중에서 예측 방향에 따라 가장 인접한 좌측 열 또는 상측 행의 잔차 성분을 이용하여 RDPCM이 수행된다. N×N 크기의 블록 내 잔차신호 ri,j에 대해, 수직 방향 예측이 수행되면, 예측 후의 결과인 2차 잔차신호

Figure pat00004
가 수학식 1과 같이 표현될 수 있다.As shown in FIG. 5, RDPCM is performed using the residual components of the nearest left column or upper row according to the prediction direction among residual samples. When vertical prediction is performed for the residual signal r i,j in the block of size N×N, the second residual signal is the result after prediction
Figure pat00004
May be expressed as in Equation 1.

Figure pat00005
Figure pat00005

수학식 1에서, Q(r)은 양자화 잡음을 포함하는 복원된 잔차신호이다. 수직 방향의 RDPCM의 경우, 영상 부호화 장치는 2차 잔차신호를 엔트로피 부호화한 후에 영상 복호화 장치로 시그널링하고, 다음 행의 잔차신호 예측을 위해 2차 잔차신호를 복원하여 예비(저장)한다. 수직 방향의 RDPCM은 잔차블록 내 모든 행에 대해 순차적으로 진행되며, 영상 복호화 장치는 수학식 2에 나타낸 바와 같이 복원된 2차 잔차신호들을 순차적으로 합산하여 i번째 행의 잔차신호를 복원한다.In Equation 1, Q(r) is a reconstructed residual signal including quantization noise. In the case of RDPCM in the vertical direction, the image encoding apparatus entropy-encodes the second residual signal, then signals it to the image decoding apparatus, and restores (stores) the second residual signal to predict the residual signal of the next row. RDPCM in the vertical direction sequentially proceeds for all rows in the residual block, and the image decoding apparatus restores the residual signal of the i-th row by sequentially summing the reconstructed secondary residual signals as shown in Equation (2).

Figure pat00006
Figure pat00006

RDPCM의 예측 방향 정보는 implicit RDPCM의 경우에 사전에 복호화된 인트라 예측 정보로부터 추정되지만, explicit RDPCM의 경우에는 비트스트림으로부터 RDPCM 예측 모드 정보를 복호화하여 결정한다.In the case of implicit RDPCM, the prediction direction information of RDPCM is estimated from intra prediction information decoded in advance, but in the case of explicit RDPCM, RDPCM prediction mode information is decoded from the bitstream and determined.

한편, DMVR(decoder-side motion vector derivation)은 영상 복호화 장치에서 움직임벡터(MV)를 개선(refinement)하여 머지 모드에 이용되는 움직임벡터의 정확성을 향상시키는 방법이다.Meanwhile, a decoder-side motion vector derivation (DMVR) is a method of improving the accuracy of a motion vector used in a merge mode by refinement of a motion vector (MV) in an image decoding apparatus.

DMVR에 대한 일 예가 도 6에 나타나 있다. 먼저, 영상 복호화 장치는 움직임정보를 비트스트림으로부터 복호화하고, 복호화된 움직임정보에 기초하여 현재 픽처(currPic) 내 현재 서브블록(currSb)에 대한 초기 MV(MV0, MV1)를 유도한다. An example of DMVR is shown in FIG. 6. First, the video decoding apparatus decodes motion information from a bitstream, and derives an initial MV (MV 0 , MV 1 ) for a current subblock (currSb) in a current picture (currPic) based on the decoded motion information.

영상 복호화 장치는 초기 MV가 지시하는 참조픽처(refPicL0, refPicL1) 내 위치를 중심으로 하여, 현재 서브블록에 대응되는 예측블록 내 샘플들(후보 샘플들)을 구성한다. 후보 샘플들에는 정수샘플들(후보 정수샘플들)과 소수샘플들(후보 소수샘플들)이 포함된다.The video decoding apparatus configures samples (candidate samples) in a prediction block corresponding to a current subblock based on a location within a reference picture (refPicL0, refPicL1) indicated by the initial MV. Candidate samples include integer samples (candidate integer samples) and decimal samples (candidate decimal samples).

후보 샘플들의 구성이 완료되면, 영상 복호화 장치는 초기 MV의 주변을 탐색하여 최소의 SAD(sum of absolute differences)를 가지는 후보 샘플을 결정한다. 최소의 SAD를 가지는 후보 샘플이 결정되면, 초기 MV가 지시하는 위치와 탐색된 후보 샘플의 위치 사이의 변위를 나타내는 델타 움직임벡터(MVdiff)가 유도되고, 초기 MV와 델타 MV를 이용하여 '개선된 MV(MV0', MV1')'가 최종적으로 유도된다.When the configuration of the candidate samples is completed, the video decoding apparatus determines a candidate sample having a minimum sum of absolute differences (SAD) by searching around the initial MV. When the candidate sample with the minimum SAD is determined, a delta motion vector (MV diff ) representing the displacement between the position indicated by the initial MV and the position of the searched candidate sample is derived, and'improvements' using the initial MV and the delta MV The MV (MV 0 ', MV 1 ')' is finally derived.

최소의 SAD를 가지는 후보 샘플을 결정하는 과정에 대해 더욱 구체적으로 설명하면, 미리 설정된 개수 및 위치의 후보 정수샘플들에 대한 리스트(sadList[i])가 설정되고, 이 리스트를 활용하여 델타 MV에 해당하는 dMvLx가 정수 단위로 유도된 후에, 정수 단위로 유도된 dMvLx가 소수 단위로 개선된다. 소수 단위 개선이 수행되는 특정의 조건은 정수 단위 유도에서 최소의 SAD를 가지는 후보 샘플(bestIdx)이 초기 MV가 지시하는 위치에 해당하는 경우(sadList[4])이다.To explain in more detail the process of determining the candidate sample having the minimum SAD, a list (sadList[i]) of candidate integer samples of a preset number and position is set, and the delta MV is calculated using this list. After the corresponding dMvLx is derived in integer units, dMvLx derived in integer units is improved in decimal units. A specific condition in which the fractional unit improvement is performed is when the candidate sample (bestIdx) having the smallest SAD in the derivation of the integer unit corresponds to a position indicated by the initial MV (sadList[4]).

그러나, 스크린 콘텐츠와 같이 일반적으로 sub-pel을 사용하지 않는 영상의 경우에도 소수 단위 개선이 무조건적으로 수행된다면, 디코딩 복잡도가 증가하여 영상 복호화 장치에 병목 현상을 발생시키는 주요 원인으로 작용할 수 있다.However, even in the case of an image that does not generally use sub-pels, such as screen content, if the fractional improvement is unconditionally performed, decoding complexity may increase, which may act as a major cause of a bottleneck in the image decoding apparatus.

본 발명은 DMVR에서 소수 단위 개선이 무조건적으로 수행되는 문제 인식을 기반으로 하여, 영상의 특성에 따라 소수 단위 개선이 선택적으로 수행될 수 있도록 하는 새로운 방안을 제안하고자 한다.The present invention proposes a new method for selectively performing the fractional improvement according to the characteristics of an image based on the recognition of a problem in which the improvement of the fractional unit is unconditionally performed in the DMVR.

본 개시의 기술들을 구현할 수 있는 인터 예측부(444)의 예시적인 블록도가 도 7에 나타나 있다. 도 7에 나타낸 바와 같이, 인터 예측부(444)는 획득부(710), 구성부(720), 유도부(730), 개선부(740), 도출부(750) 및 예측 실행부(760)를 포함하여 구성될 수 있다. 또한, 구성부(720)는 정수샘플 구성부(722) 및 보간부(724)를 포함하여 구성될 수 있으며, 유도부(730)는 결정부(732) 및 정수단위 유도부(734)를 포함하여 구성될 수 있다. 이하, 도 8 내지 도 11을 참조하여, 각 구성요소들의 기능을 설명한다.An exemplary block diagram of an inter prediction unit 444 capable of implementing the techniques of the present disclosure is shown in FIG. 7. As shown in FIG. 7, the inter prediction unit 444 includes an acquisition unit 710, a configuration unit 720, a derivation unit 730, an improvement unit 740, a derivation unit 750, and a prediction execution unit 760. It can be configured to include. In addition, the configuration unit 720 may be configured to include an integer sample configuration unit 722 and an interpolation unit 724, and the derivation unit 730 includes a determination unit 732 and an integer unit derivation unit 734. Can be. Hereinafter, functions of each component will be described with reference to FIGS. 8 to 11.

영상 부호화 장치는 현재 서브블록에 대한 인터 예측을 수행하고, 현재 서브블록의 예측블록에 대한 움직임정보를 부호화하여 시그널링할 수 있다. 또한, 영상 부호화 장치는 소수 단위 개선의 필요성을 판단하고, 판단 결과를 적용 플래그의 값으로 설정하여 시그널링할 수 있다. The apparatus for encoding an image may perform inter prediction on a current subblock, encode motion information on a prediction block of the current subblock, and signal. In addition, the image encoding apparatus may determine the necessity of improvement in a fractional unit, and set the determination result as a value of an application flag to signal.

엔트로피 복호화부(410)는 적용 플래그 및 현재 서브블록의 움직임정보를 비트스트림으로부터 복호화할 수 있다. 획득부(710)는 비트스트림으로부터 복호화된 움직임정보에 기초하여, 현재 서브블록의 움직임벡터 및 현재 서브블록의 참조픽처를 획득할 수 있다(S810). 결국, 획득부(710)는 적용 플래그, 현재 서브블록의 움직임벡터 및 현재 서브블록의 참조픽처를 비트스트림으로부터 획득할 수 있다. 획득부(710)에서 획득되는 움직임벡터는 DMVR에 이용되는 초기 MV에 해당할 수 있으며, 적용 플래그는 DMVR의 적용 여부에 관련된 정보들을 나타내는 신택스 요소일 수 있다.The entropy decoder 410 may decode the applied flag and motion information of the current subblock from the bitstream. The acquisition unit 710 may acquire a motion vector of the current subblock and a reference picture of the current subblock based on the motion information decoded from the bitstream (S810). As a result, the acquisition unit 710 may acquire the applied flag, the motion vector of the current subblock, and the reference picture of the current subblock from the bitstream. The motion vector acquired by the acquisition unit 710 may correspond to an initial MV used for the DMVR, and the application flag may be a syntax element indicating information related to whether or not the DMVR is applied.

초기 MV가 획득되면, 델타 MV를 정수 단위로 유도하는 과정(S820 내지 S840)과, 정수 단위로 유도된 델타 MV를 소수 단위로 개선하는 과정(S860)이 수행될 수 있다. 델타 MV를 정수 단위로 유도하는 과정(S820 내지 S840)은 현재 서브블록에 대응되는 예측샘플들을 구성하는 과정(S820), 예측샘플들 중에서 최소의 SAD를 가지는 정수샘플을 결정하는 과정(S830) 및, 결정된 정수샘플로부터 도출되는 정수샘플 오프셋을 이용하여 델타 MV를 정수 단위로 유도하는 과정(S840)을 포함하여 이루어질 수 있다.When the initial MV is obtained, a process of deriving the delta MV into an integer unit (S820 to S840) and a process of improving the delta MV derived by an integer unit into a decimal unit (S860) may be performed. The process of deriving the delta MV in an integer unit (S820 to S840) is a process of constructing prediction samples corresponding to the current subblock (S820), a process of determining an integer sample having a minimum SAD from among the prediction samples (S830), and , A process of deriving the delta MV in integer units by using the integer sample offset derived from the determined integer sample (S840).

먼저, 구성부(720)는 참조픽처 내에서 초기 MV에 의해 지시되는 위치를 중심으로 하여, 현재 서브블록의 예측블록에 대한 샘플들(현재 서브블록에 대응되는 예측샘플들)을 구성할 수 있다(S820). 예측샘플들에는 정수샘플들(후보 정수샘플들) 및/또는 소수샘플들(후보 소수샘플들)이 포함될 수 있다.First, the configuration unit 720 may configure samples (prediction samples corresponding to the current subblock) for the prediction block of the current subblock, centering on the position indicated by the initial MV in the reference picture. (S820). The prediction samples may include integer samples (candidate integer samples) and/or decimal samples (candidate decimal samples).

예측샘플들의 구성이 완료되면, 결정부(732)는 예측샘플들 중에서 미리 설정된 위치에 자리하는 후보 정수샘플들을 탐색하여, 최소의 SAD를 가지는 정수샘플을 결정할 수 있다(S830). 결정부(732)는 최소의 SAD를 가지는 정수샘플을 도출하기 위해, 후보 정수샘플들을 모두 탐색하거나, 후보 정수샘플들 중에서 일부만을 탐색할 수도 있다. When the configuration of the prediction samples is completed, the determiner 732 may search for candidate integer samples located at a preset position among the prediction samples and determine an integer sample having the minimum SAD (S830). The determiner 732 may search all candidate integer samples or search only some of the candidate integer samples in order to derive an integer sample having a minimum SAD.

최소의 SAD를 가지는 정수샘플이 결정되면, 정수단위 유도부(734)는 정수샘플 오프셋을 이용하여 델타 MV를 정수 단위로 유도할 수 있다(S840). 정수샘플 오프셋은 초기 MV가 지시하는 참조픽처 내 위치와 최소의 SAD를 가지는 정수샘플의 위치 사이의 변위일 수 있다. 예를 들어, 정수샘플 오프셋은 초기 MV가 지시하는 참조픽처 내 위치로부터 최소의 SAD를 가지는 정수샘플을 지시할 수 있다. 초기 MV가 지시하는 위치에 정수샘플 오프셋을 (해상도 조정 후) 합산하면, 델타 MV가 정수 단위로 유도될 수 있다.When the integer sample having the minimum SAD is determined, the integer unit derivation unit 734 may derive the delta MV in integer units by using the integer sample offset (S840). The integer sample offset may be a displacement between the position in the reference picture indicated by the initial MV and the position of the integer sample having the minimum SAD. For example, the integer sample offset may indicate an integer sample having a minimum SAD from a position in a reference picture indicated by an initial MV. When the integer sample offset (after resolution adjustment) is added to the position indicated by the initial MV, the delta MV can be derived in integer units.

정수 단위 유도가 완료되면, 델타 MV를 소수 단위로 개선하는 과정(S860)이 수행될 수 있다. 다만, 앞서 설명된 바와 같이, 본 발명은 소수 단위 개선의 수행 여부를 선택적으로 결정하도록 구성되므로, 소수 단위 개선을 수행할지 여부를 판단하는 과정이 먼저 수행될 수 있다.When the derivation of the integer unit is completed, a process of improving the delta MV to a decimal unit (S860) may be performed. However, as described above, since the present invention is configured to selectively determine whether to perform fractional improvement, the process of determining whether to perform fractional improvement may be performed first.

개선부(740)는 비트스트림으로부터 복호화된 적용 플래그에 기초하여, 소수 단위 개선의 수행 여부를 결정할 수 있다(S850).The enhancement unit 740 may determine whether to perform fractional enhancement based on the application flag decoded from the bitstream (S850).

소수 단위 개선이 수행되는 것으로 결정되면, 개선부(740)는 후보 정수샘플들로부터 유도되는 소수샘플 오프셋을 이용하여, 정수 단위로 유도된 델타 MV를 소수 단위로 개선할 수 있다(S860). 이와 달리, 소수 단위 개선이 수행되지 않는 것으로 결정되면, 정수 단위로 유도된 델타 MV 자체가 개선된 MV를 도출하는 과정(S870)에 이용될 수 있다.If it is determined that the fractional unit improvement is to be performed, the improvement unit 740 may improve the delta MV derived in the integer unit in the decimal unit by using the decimal sample offset derived from the candidate integer samples (S860). In contrast, if it is determined that the improvement in decimal units is not performed, the delta MV itself derived in integer units may be used in the process of deriving the improved MV (S870).

도출부(750)는 개선된 MV를 초기 MV와 델타 MV로부터 도출할 수 있다(S870). 예를 들어, 개선된 MV는 초기 MV와 델타 MV를 합산하여 도출될 수 있다. 여기서, 델타 MV는 정수 단위 유도 및 소수 단위 개선이 모두 적용된 델타 MV이거나, 정수 단위 유도만 적용된 델타 MV일 수 있다. The derivation unit 750 may derive the improved MV from the initial MV and the delta MV (S870). For example, the improved MV can be derived by summing the initial MV and the delta MV. Here, the delta MV may be a delta MV to which both integer unit derivation and decimal unit improvement are applied, or delta MV to which only integer unit derivation is applied.

개선된 MV가 도출되면, 예측 실행부(760)는 개선된 MV를 기초로 하여 현재 서브블록을 예측할 수 있다(S880). 즉, 예측 실행부(760)는 현재 서브블록에 대한 예측블록을 생성 또는 유도할 수 있다.When the improved MV is derived, the prediction execution unit 760 may predict the current subblock based on the improved MV (S880). That is, the prediction execution unit 760 may generate or induce a prediction block for the current subblock.

후보 정수샘플들Candidate integer samples

앞서 설명된 바와 같이, DMVR에 이용되는 후보 정수샘플들은 참조픽처 내 미리 설정된 위치에 자리할 수 있다.As described above, candidate integer samples used for the DMVR may be placed at a preset position in the reference picture.

후보 정수샘플들이 자리하는 위치는 초기 MV가 지시하는 위치를 중심으로 하여 미리 설정될 수 있다. 예를 들어, 도 9에 나타낸 바와 같이, 초기 MV가 참조픽처 내에서 C(center)로 표시된 위치를 지시하면, 후보 정수샘플들은 C 위치를 중심으로 하여 C 위치, 좌측, 우측, 상측 및 하측에 자리할 수 있다. The positions where candidate integer samples are located may be preset based on the position indicated by the initial MV. For example, as shown in FIG. 9, when the initial MV indicates a position indicated by C (center) in the reference picture, candidate integer samples are at position C, left, right, upper and lower, centering on position C. Can be seated.

또한, 후보 정수샘플들이 자리하는 위치는 미리 설정된 탐색 범위(search range) 내에 포함될 수 있다. 예를 들어, 탐색 범위가 2로 설정된 경우에는 C 위치를 중심으로 좌측으로 2열, 우측으로 2열, 상측으로 2행 및 하측으로 2행을 포함하는 총 25개의 정수샘플들이 후보 정수샘플들에 해당할 수 있다.In addition, a position where candidate integer samples are located may be included within a preset search range. For example, if the search range is set to 2, a total of 25 integer samples including 2 columns to the left, 2 columns to the right, 2 rows to the top, and 2 rows to the bottom centered at the C position are included in the candidate integer samples. May be applicable.

정수샘플 탐색Integer Sample Search

앞서 설명된 바와 같이, 결정부(732)는 후보 정수샘플들을 탐색하여 후보 정수샘플들 중에서 최소의 SAD를 가지는 정수샘플을 결정할 수 있다. 또한, 결정부(732)는 최소의 SAD를 가지는 정수샘플을 도출하기 위해, 후보 정수샘플들을 모두 탐색하거나 후보 정수샘플들 중에서 일부만을 탐색할 수도 있다.As described above, the determiner 732 may search for candidate integer samples to determine an integer sample having a minimum SAD among candidate integer samples. In addition, the determiner 732 may search all of the candidate integer samples or only a part of the candidate integer samples in order to derive an integer sample having a minimum SAD.

후보 정수샘플들을 모두 탐색하는 예의 경우, 결정부(732)는 C 위치의 SAD를 연산하고, 연산된 SAD가 임계 값보다 작으면 C 위치를 최소의 SAD를 가지는 정수샘플로 결정하며, 정수샘플 탐색 단계를 종료할 수 있다. 이와 달리, 결정부(732)는 C 위치의 SAD가 임계 값 이상인 경우라면, 나머지 24개 후보 정수샘플들의 SAD를 연산하여, 이들 중에서 최소의 SAD를 가지는 정수샘플을 도출할 수 있다. In the case of searching all candidate integer samples, the determination unit 732 calculates the SAD of the C position, and if the calculated SAD is less than the threshold value, determines the C position as an integer sample having the minimum SAD, and searches for integer samples. You can end the step. Alternatively, if the SAD of the C position is greater than or equal to the threshold value, the determiner 732 may calculate the SAD of the remaining 24 candidate integer samples and derive an integer sample having the smallest SAD among them.

후보 정수샘플들 중에서 일부만을 탐색하는 예의 경우, 결정부(732)는 C 위치, P1 위치, P2 위치, P3 위치 및 P4 위치의 SAD를 연산하고, C 위치의 SAD가 최소인 경우에는 C 위치를 최소의 SAD를 가지는 정수샘플로 결정하며, 정수샘플 탐색 단계를 종료할 수 있다(제1단계). 이와 달리, 결정부(732)는 C 위치의 SAD가 최소가 아닌 경우에, P1 위치, P2 위치, P3 위치, P4 위치 및 P5 위치 중에서 최소의 SAD를 가지는 위치를 새로운 C 위치로 설정하여 앞의 제1단계를 한번 더 수행할 수도 있다(제2단계).In the case of searching only some of the candidate integer samples, the determination unit 732 calculates the SAD of the C position, the P1 position, the P2 position, the P3 position and the P4 position, and when the SAD of the C position is the minimum, the C position is It is determined as an integer sample having a minimum SAD, and the integer sample search step can be finished (step 1). In contrast, when the SAD of the C position is not the minimum, the determination unit 732 sets the position having the smallest SAD among the P1 position, P2 position, P3 position, P4 position, and P5 position as the new C position. The first step may be performed once more (step 2).

소수 단위 개선 과정의 수행 여부 - 적용 플래그Whether to perform the improvement process in decimal units-applied flag

도 10에 나타낸 바와 같이, 개선부(740)는 적용 플래그에 기초하여, 소수 단위 개선의 수행 여부를 결정할 수 있다.As shown in FIG. 10, the improvement unit 740 may determine whether to perform the improvement in decimal units based on the application flag.

적용 플래그는 소수 단위 개선이 적용 또는 수행되는지 여부를 직접적으로 지시하거나, 현재 서브블록 또는 현재 서브블록이 포함된 상위 영역(블록, 타일, 슬라이스, 픽처, 시퀀스 등)이 일반적으로 sub-pel을 사용하지 않는 특정의 영상에 포함되는지 여부를 지시할 수도 있다. 여기서, 특정의 영상에는 스크린 콘텐츠가 포함될 수 있다.The application flag directly indicates whether or not fractional improvement is applied or performed, or the current subblock or the upper region (block, tile, slice, picture, sequence, etc.) containing the current subblock is generally used as a sub-pel. It is also possible to indicate whether it is included in a specific image that is not included. Here, the screen content may be included in the specific image.

개선부(740)는 적용 플래그가 '델타 MV의 소수 단위 개선이 적용됨'을 지시하거나, '현재 서브블록 또는 현재 서브블록이 포함된 상위 영역이 특정의 영상에 포함됨'을 지시하는 경우에, 소수 단위 개선을 수행할 수 있다. 이와 달리, 개선부(740)는 적용 플래그가 '델타 MV의 소수 단위 개선이 적용되지 않음'을 지시하거나, '현재 서브블록 또는 현재 서브블록이 포함된 상위 영역이 특정의 영상에 포함되지 않음'을 지시하는 경우에, 소수 단위 개선을 수행하지 않을 수 있다(skip).When the application flag indicates'improvement in a fractional unit of delta MV is applied' or indicates'the current subblock or an upper region including the current subblock is included in a specific image', the Unit improvement can be performed. In contrast, the enhancement unit 740 indicates that the application flag indicates'the fractional improvement of the delta MV is not applied', or'the current subblock or the upper region including the current subblock is not included in a specific image' In the case of indicating, it is possible not to perform fractional improvement (skip).

적용 플래그는 비트스트림의 SPS(sequence parameter set)로부터 복호화되거나, 비트스트림의 타일 그룹 헤더(tile group header)로부터 복호화될 수 있다. 적용 플래그(tile_group_scc_subpel_disabled_flag)가 비트스트림의 타일 그룹 헤더에서 정의되어 영상 부호화 장치로부터 영상 복호화 장치로 시그널링되는 예가 표 4에 나타나 있다.The application flag may be decoded from a sequence parameter set (SPS) of the bitstream or may be decoded from a tile group header of the bitstream. Table 4 shows an example in which the application flag (tile_group_scc_subpel_disabled_flag) is defined in the tile group header of the bitstream and is signaled from the video encoding apparatus to the video decoding apparatus.

Figure pat00007
Figure pat00007

tile_group_scc_subpel_disabled_flag는 적용 플래그가 '현재 서브블록 또는 현재 서브블록이 포함된 상위 영역이 스크린 콘텐츠에 포함되는지 여부'를 지시하는 신택스 요소로 구현된 예이다. tile_group_scc_subpel_disabled_flag=0인 경우에 소수 단위 개선이 수행되며, tile_group_scc_subpel_disabled_flag=1인 경우에 소수 단위 개선이 수행되지 않을 수 있다.The tile_group_scc_subpel_disabled_flag is an example in which the application flag is implemented as a syntax element indicating'whether a current subblock or an upper region including the current subblock is included in the screen content'. When tile_group_scc_subpel_disabled_flag=0, improvement in decimal units may be performed, and when tile_group_scc_subpel_disabled_flag=1, improvement in decimal units may not be performed.

소수 단위 개선Decimal unit improvement

앞서 설명된 바와 같이, 개선부(740)는 후보 정수샘플들로부터 유도되는 소수샘플 오프셋을 이용하여, 정수 단위로 유도된 델타 MV를 소수 단위로 개선할 수 있다.As described above, the improvement unit 740 may improve the delta MV derived in the integer unit in the decimal unit by using the decimal sample offset derived from the candidate integer samples.

소수 단위 개선은 후보 정수샘플들로부터 소수샘플 오프셋을 유도하는 과정과, 정수 단위로 유도된 델타 MV를 소수샘플 오프셋을 이용하여 소수 단위로 개선 또는 조절하는 과정을 포함할 수 있다. 개선부(740)는 소수 단위 개선 과정의 복잡도를 감소시키기 위해 후보들 간의 SAD를 비교하는 대신에, 파라메트릭 에러 평면 방정식(parametric error surface equation)을 이용하여 소수 단위 개선을 수행할 수 있다.The fractional improvement may include a process of deriving a fractional sample offset from candidate integer samples, and a process of improving or adjusting a delta MV derived in an integer unit by using a fractional sample offset in a fractional unit. Instead of comparing SADs between candidates in order to reduce the complexity of the improvement process in decimal units, the refiner 740 may perform fractional improvement using a parametric error surface equation.

정수 단위 유도 과정의 수행 여부Whether to perform integer unit derivation process

이상에서 설명된 예는 소수 단위 개선 과정의 수행 여부만이 적용 플래그의 값에 따라 결정되는 실시예에 해당한다. 실시형태에 따라, 본 발명은 정수 단위 유도 과정의 수행 여부도 적용 플래그의 값에 의존하여 결정될 수 있다. 즉, 본 발명은 DMVR 자체(정수 단위 개선 및 소수 단위 개선)의 수행 여부를 적용 플래그의 값에 따라 선택적으로 결정할 수 있다.The example described above corresponds to an embodiment in which only whether or not to perform the improvement process in a fractional unit is determined according to the value of the application flag. Depending on the embodiment, the present invention may determine whether to perform an integer unit derivation process depending on the value of the application flag. That is, the present invention may selectively determine whether to perform DMVR itself (integer unit improvement and decimal unit improvement) according to the value of the applied flag.

획득부(710)는 적용 플래그, 초기 MV 및 현재 서브블록의 참조픽처를 비트스트림으로부터 획득할 수 있다(S1010). The acquisition unit 710 may acquire the applied flag, the initial MV, and the reference picture of the current subblock from the bitstream (S1010).

초기 MV가 획득되면, 유도부(730)는 적용 플래그의 값에 따라 델타 MV를 정수 단위로 유도할지 여부를 판단할 수 있다(S1020). 정수 단위 유도가 수행되는 것으로 결정되면, 예측샘플들을 구성하는 과정(S1030), 예측샘플들 중에서 최소의 SAD를 가지는 정수샘플을 결정하는 과정(S1040), 정수샘플을 이용하여 델타 MV를 정수 단위로 유도하는 과정(S1050)이 수행될 수 있다. 이와 달리, 정수 단위 유도가 수행되지 않는 것으로 결정되면, S1030 과정 내지 S1050 과정이 수행되지 않을 수 있다.When the initial MV is obtained, the induction unit 730 may determine whether to induce the delta MV in integer units according to the value of the application flag (S1020). If it is determined that the derivation of the integer unit is to be performed, the process of constructing the prediction samples (S1030), the process of determining the integer sample having the smallest SAD among the prediction samples (S1040), and the delta MV by using the integer sample The inducing process (S1050) may be performed. In contrast, if it is determined that the derivation of the integer unit is not performed, the processes S1030 to S1050 may not be performed.

앞서 설명된 바와 같이, 델타 MV의 소수 단위 개선은 소수샘플 오프셋을 이용하여 수행되며, 이 소수샘플 오프셋은 S1030 과정과 S1040 과정으로부터 도출되는 후보 정수샘플들을 이용하여 수행될 수 있다. 따라서, 적용 플래그의 값에 의해 정수 단위 유도가 수행되지 않는 경우에는 소수 단위 개선도 수행되지 않도록 설정되는 것이 바람직하다. 따라서, 정수 단위 유도가 수행되지 않는 경우에는 델타 MV를 소수 단위로 개선하는 과정(S1060)과 개선된 MV를 도출하는 과정(S1070)도 수행되지 않을 수 있다. As described above, the fractional unit improvement of the delta MV is performed using a fractional sample offset, and the fractional sample offset may be performed using candidate integer samples derived from the processes S1030 and S1040. Therefore, when the derivation of the integer unit is not performed by the value of the application flag, it is preferable to set so that the fractional unit improvement is not performed. Accordingly, when the derivation of the integer unit is not performed, the process of improving the delta MV to the decimal unit (S1060) and the process of deriving the improved MV (S1070) may not be performed.

결국, 정수 단위 유도가 수행되지 않는 것으로 결정되는 것은 DMVR 자체가 수행되지 않는 것을 의미할 수 있다. 이를 확장하면, 적용 플래그의 값에 따라 델타 MV를 정수 단위로 유도할지 여부를 판단하는 과정(S1020)은 해당 현재 서브블록에 대해 DMVR의 적용 여부를 결정하는 과정으로 이해될 수 있다.After all, determining that the derivation of the integer unit is not performed may mean that the DMVR itself is not performed. If this is expanded, the process of determining whether to induce delta MV in integer units according to the value of the application flag (S1020) may be understood as a process of determining whether to apply the DMVR to the current subblock.

예측 실행부(760)는 정수 단위 유도가 수행된 경우에는 개선된 MV를 기초로 현재 서브블록을 예측하며, 정수 단위 유도가 수행되지 않은 경우에는 초기 MV를 기초로 현재 서브블록을 예측할 수 있다(S1080).The prediction execution unit 760 may predict the current subblock based on the improved MV when the integer unit derivation is performed, and may predict the current subblock based on the initial MV when the integer unit derivation is not performed ( S1080).

후보 샘플들 구성Composition of candidate samples

한편, 후보 샘플들을 구성하는 과정에는, 후보 정수샘플들을 구성하는 과정(S1110)과, 후보 정수샘플들의 값을 이용한 보간(interpolation)을 통해 후보 소수샘플들을 구성하는 과정(S1130)이 포함될 수 있다.Meanwhile, the process of configuring candidate samples may include a process of configuring candidate integer samples (S1110) and a process of configuring candidate decimal samples through interpolation using values of the candidate integer samples (S1130).

그러나, 적용 플래그에 의해 소수 단위 개선이 수행되지 않는 경우에는, 소수 단위 개선을 위한 '후보 소수샘플들을 구성하는 과정'이 불필요할 수도 있다. 즉, 적용 플래그에 의해 소수 단위 개선이 수행되지 않는 경우에는, 후보 샘플들을 구성하는 과정이 '후보 정수샘플들을 구성하는 과정'만으로 이루어질 수 있다. However, when the improvement in decimal units is not performed by the application flag, a'process of configuring candidate decimal samples' for improvement in the decimal unit may be unnecessary. That is, when the fractional improvement is not performed by the application flag, the process of configuring the candidate samples may consist of only the process of configuring the candidate integer samples.

이를 판단하기 위해, 구성부(720)는 비트스트림으로부터 복호화된 적용 플래그에 기초하여, 후보 소수샘플들을 보간하는 과정의 수행 여부를 결정할 수 있다(S1120).In order to determine this, the configuration unit 720 may determine whether to perform a process of interpolating candidate prime samples based on the application flag decoded from the bitstream (S1120).

구성부(720)는 후보 소수샘플들을 보간하는 과정이 수행되는 것으로 결정된 경우에, 후보 정수샘플들의 값을 이용하여 후보 소수샘플들을 구성할 수 있다(S1130). 이와 달리, 구성부(720)는 후보 소수샘플들을 보간하는 과정이 수행되지 않는 것으로 결정되면, 후보 소수샘플들의 구성을 위한 보간 과정을 수행하지 않을 수 있다. 이 경우, 후보 정수샘플들만이 이용 가능하므로, DMVR은 델타 MV에 대한 정수 단위 유도만이 수행될 수 있다.When it is determined that the process of interpolating the candidate prime samples is determined, the constructing unit 720 may construct candidate prime samples using values of the candidate integer samples (S1130). In contrast, if it is determined that the process of interpolating the candidate prime samples is not performed, the constructing unit 720 may not perform the interpolation process for constructing the candidate prime samples. In this case, since only candidate integer samples are available, DMVR can only perform integer unit derivation for delta MV.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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: 필터부
720: 구성부 730: 유도부
120, 440: prediction unit 130: subtractor
170, 450: adder 180, 460: filter unit
720: configuration unit 730: guidance unit

Claims (12)

DMVR(decoder-side motion vector refinement)에 이용되는 델타(delta) 움직임벡터를 유도하는 방법으로서,
비트스트림으로부터, 상기 DMVR의 적용 여부에 관련된 적용 플래그, 현재 서브블록의 움직임벡터 및 상기 현재 서브블록의 참조픽처를 획득하는 단계;
상기 움직임벡터에 의해 지시되는 위치로부터, 상기 현재 서브블록에 대응되는 후보 정수샘플들 중 최소의 SAD(sum of absolute differences)를 가지는 정수샘플을 지시하는 정수샘플 오프셋을 이용하여, 상기 델타 움직임벡터를 정수 단위로 유도하는 단계; 및
상기 후보 정수샘플들로부터 유도되는 소수샘플 오프셋을 이용하여, 상기 정수 단위로 유도된 델타 움직임벡터를 소수 단위로 개선(refinement)하는 단계를 포함하고,
상기 개선하는 단계는,
상기 적용 플래그의 값에 따라 수행 여부가 결정되는, 델타 움직임벡터 유도 방법.
As a method of deriving a delta motion vector used in a decoder-side motion vector refinement (DMVR),
Obtaining an application flag related to whether or not the DMVR is applied, a motion vector of a current subblock, and a reference picture of the current subblock from a bitstream;
From the position indicated by the motion vector, the delta motion vector is calculated using an integer sample offset indicating an integer sample having a minimum sum of absolute differences (SAD) among candidate integer samples corresponding to the current subblock. Deriving in integer units; And
Using a fractional sample offset derived from the candidate integer samples, refinement of the delta motion vector derived in an integer unit in a decimal unit,
The improving step,
A method of deriving a delta motion vector in which whether to perform is determined according to a value of the applied flag.
제1항에 있어서,
상기 적용 플래그는,
상기 현재 서브블록이 스크린 콘텐츠(screen content)에 해당하는지 여부를 지시하고,
상기 개선하는 단계는,
상기 적용 플래그가 상기 현재 서브블록이 스크린 콘텐츠에 해당함을 지시하면, 수행되지 않는, 델타 움직임벡터 유도 방법.
The method of claim 1,
The applied flag is,
Indicate whether the current subblock corresponds to screen content,
The improving step,
If the application flag indicates that the current subblock corresponds to screen content, the delta motion vector derivation method is not performed.
제1항에 있어서,
상기 적용 플래그는,
상기 정수 단위로 유도된 델타 움직임벡터의 개선이 적용되는지 여부를 지시하며,
상기 개선하는 단계는,
상기 적용 플래그가 상기 정수 단위로 유도된 델타 움직임벡터의 개선이 적용되지 않음을 지시하면, 수행되지 않는, 델타 움직임벡터 유도 방법.
The method of claim 1,
The applied flag is,
Indicating whether or not the improvement of the delta motion vector derived in the integer unit is applied,
The improving step,
If the application flag indicates that the improvement of the delta motion vector derived in the integer unit is not applied, the delta motion vector derivation method is not performed.
제1항에 있어서,
상기 유도하는 단계는,
상기 적용 플래그의 값에 따라 수행 여부가 결정되는, 델타 움직임벡터 유도 방법.
The method of claim 1,
The inducing step,
A method of deriving a delta motion vector in which whether to perform is determined according to a value of the applied flag.
제1항에 있어서,
상기 적용 플래그는,
상기 비트스트림의 SPS(sequence parameter set) 또는 타일 그룹 헤더로부터 획득되는, 델타 움직임벡터 유도 방법.
The method of claim 1,
The applied flag is,
A method of deriving a delta motion vector obtained from a sequence parameter set (SPS) of the bitstream or a tile group header.
제1항에 있어서,
상기 현재 서브블록에 대응되는 예측샘플들 중에서 미리 설정된 위치에 자리하는 예측샘플들을 상기 후보 정수샘플들로 구성하는 단계; 및
상기 후보 정수샘플들의 값을 이용하여 후보 소수샘플들을 보간(interpolation)하는 단계를 더 포함하고,
상기 보간하는 단계는,
상기 적용 플래그의 값에 따라 수행 여부가 결정되는, 델타 움직임벡터 유도 방법.
The method of claim 1,
Configuring prediction samples located at a preset position among prediction samples corresponding to the current subblock as the candidate integer samples; And
Further comprising the step of interpolating the candidate prime samples using the values of the candidate integer samples,
The interpolating step,
A method of deriving a delta motion vector in which whether to perform is determined according to a value of the applied flag.
DMVR(decoder-side motion vector refinement)에 이용되는 델타(delta) 움직임벡터를 유도하는 영상 복호화 장치로서,
비트스트림으로부터, 상기 DMVR의 적용 여부에 관련된 적용 플래그, 현재 서브블록의 움직임벡터 및 상기 현재 서브블록의 참조픽처를 획득하는 획득부;
상기 움직임벡터에 의해 지시되는 위치로부터, 상기 현재 서브블록에 대응되는 후보 정수샘플들 중 최소의 SAD(sum of absolute differences)를 가지는 정수샘플을 지시하는 정수샘플 오프셋을 이용하여, 상기 델타 움직임벡터를 정수 단위로 유도하는 유도부; 및
상기 후보 정수샘플들로부터 유도되는 소수샘플 오프셋을 이용하여, 상기 정수 단위로 유도된 델타 움직임벡터를 소수 단위로 개선(refinement)하는 개선부를 포함하고,
상기 개선부는,
상기 적용 플래그의 값에 따라 상기 소수 단위 개선의 수행 여부를 결정하는, 영상 복호화 장치.
An image decoding apparatus for inducing a delta motion vector used in a decoder-side motion vector refinement (DMVR), comprising:
An acquisition unit that obtains an application flag related to whether or not the DMVR is applied, a motion vector of the current subblock, and a reference picture of the current subblock from the bitstream;
From the position indicated by the motion vector, the delta motion vector is calculated using an integer sample offset indicating an integer sample having a minimum sum of absolute differences (SAD) among candidate integer samples corresponding to the current subblock. An induction unit for guiding in integer units; And
An improvement unit that refines the delta motion vector derived in the integer unit to the decimal unit by using the decimal sample offset derived from the candidate integer samples,
The improvement unit,
The image decoding apparatus, which determines whether to perform the fractional improvement according to the value of the application flag.
제7항에 있어서,
상기 적용 플래그는,
상기 현재 서브블록이 스크린 콘텐츠(screen content)에 해당하는지 여부를 지시하고,
상기 개선부는,
상기 적용 플래그가 상기 현재 서브블록이 스크린 콘텐츠에 해당함을 지시하면, 상기 소수 단위 개선을 수행하지 않는, 영상 복호화 장치.
The method of claim 7,
The applied flag is,
Indicate whether the current subblock corresponds to screen content,
The improvement unit,
When the application flag indicates that the current sub-block corresponds to the screen content, the image decoding apparatus does not perform the fractional improvement.
제7항에 있어서,
상기 적용 플래그는,
상기 정수 단위로 유도된 델타 움직임벡터의 개선이 적용되는지 여부를 지시하며,
상기 개선부는,
상기 적용 플래그가 상기 정수 단위로 유도된 델타 움직임벡터의 개선이 적용되지 않음을 지시하면, 상기 소수 단위 개선을 수행하지 않는, 영상 복호화 장치.
The method of claim 7,
The applied flag is,
Indicating whether or not the improvement of the delta motion vector derived in the integer unit is applied,
The improvement unit,
When the application flag indicates that the improvement of the delta motion vector derived in the integer unit is not applied, the improvement in the fractional unit is not performed.
제7항에 있어서,
상기 유도부는,
상기 적용 플래그의 값에 따라, 상기 정수 단위 유도의 수행 여부를 결정하는, 영상 복호화 장치.
The method of claim 7,
The induction part,
The video decoding apparatus for determining whether to perform the derivation of the integer unit according to the value of the application flag.
제7항에 있어서,
상기 적용 플래그는,
상기 비트스트림의 SPS(sequence parameter set) 또는 타일 그룹 헤더로부터 획득되는, 영상 복호화 장치.
The method of claim 7,
The applied flag is,
A video decoding apparatus obtained from a sequence parameter set (SPS) of the bitstream or a tile group header.
제7항에 있어서,
상기 현재 서브블록에 대응되는 예측샘플들 중에서 미리 설정된 위치에 자리하는 예측샘플들을 상기 후보 정수샘플들로 구성하는 정수샘플 구성부; 및
상기 후보 정수샘플들의 값을 이용하여 후보 소수샘플들을 보간(interpolation)하는 보간부를 더 포함하고,
상기 보간부는,
상기 적용 플래그의 값에 따라, 상기 후보 소수샘플들의 보간 여부를 결정하는, 영상 복호화 장치.
The method of claim 7,
An integer sample construction unit configured to configure prediction samples located at a predetermined position among prediction samples corresponding to the current subblock as the candidate integer samples; And
Further comprising an interpolation unit for interpolating the candidate prime samples using values of the candidate integer samples,
The interpolation unit,
The video decoding apparatus, determining whether to interpolate the candidate prime samples according to the value of the applied flag.
KR1020200031115A 2019-03-13 2020-03-13 Method and apparatus for deriving delta motion vector KR20200110235A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190028991 2019-03-13
KR1020190028991 2019-03-13

Publications (1)

Publication Number Publication Date
KR20200110235A true KR20200110235A (en) 2020-09-23

Family

ID=72426396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200031115A KR20200110235A (en) 2019-03-13 2020-03-13 Method and apparatus for deriving delta motion vector

Country Status (2)

Country Link
KR (1) KR20200110235A (en)
WO (1) WO2020185034A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101601813B1 (en) * 2015-06-30 2016-03-11 에스케이텔레콤 주식회사 A Video Decoding Method and Apparatus Using Inter Prediction
EP3560202A4 (en) * 2016-12-27 2020-07-29 MediaTek Inc. Method and apparatus of bilateral template mv refinement for video coding
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding

Also Published As

Publication number Publication date
WO2020185034A1 (en) 2020-09-17

Similar Documents

Publication Publication Date Title
CN109661819B (en) Method and apparatus for processing video signal
CN109479149B (en) Video signal processing method and apparatus
CN113873243B (en) Method for decoding video and method for encoding video
KR20180109817A (en) Encoding method and apparatus, and decoding method and apparatus of image
CN113905238A (en) Method and computer readable medium for decoding or encoding video
US11671584B2 (en) Inter-prediction method and video decoding apparatus using the same
KR20180041578A (en) Image encoding method/apparatus, image decoding method/apparatus and and recording medium for storing bitstream
KR20220098114A (en) Image encoding method/apparatus, image decoding method/apparatus and and recording medium for storing bitstream
US11962764B2 (en) Inter-prediction method and video decoding apparatus using the same
US20220182604A1 (en) Video encoding and decoding using intra block copy
KR20200113173A (en) Method and Apparatus for Intra Prediction Based on Deriving Prediction Mode
KR20200110220A (en) Method and apparatus for efficiently coding residual block
US20230048262A1 (en) Decoding device and method for predicting block partitioned into random shape
KR20200110236A (en) Method and apparatus for efficiently applying transform skip mode to video data block
KR20200110235A (en) Method and apparatus for deriving delta motion vector
US20220286686A1 (en) Video encoding and decoding using differential modulation
EP4068777A1 (en) Video encoding and decoding using differential modulation
US20220150470A1 (en) Method and apparatus for intra predictionbased on deriving prediction mode
EP4013058A1 (en) Video encoding and decoding using differential coding
KR20200081186A (en) Method for deriving motion vector of temporal candidate and apparatus using the same
KR20220126232A (en) Video Coding Method And Apparatus Using Arbitrary Block Partitioning
KR20200110237A (en) Method and Apparatus for Video Decoder Using Differential Coding
KR20220118334A (en) Video Coding Method and Apparatus Using Intra Prediction Based on Subblock Partitioning
KR20240021107A (en) Method and Apparatus for Video Coding Using Rearranging Prediction Signals in Intra Block Copy Mode
KR20220017372A (en) Method for Predicting Quantization Parameter Used in Image Encoding/Decoding Device

Legal Events

Date Code Title Description
A201 Request for examination