Nothing Special   »   [go: up one dir, main page]

KR102728144B1 - Method and apparatus for video decoder with motion vector refinement - Google Patents

Method and apparatus for video decoder with motion vector refinement Download PDF

Info

Publication number
KR102728144B1
KR102728144B1 KR1020160049485A KR20160049485A KR102728144B1 KR 102728144 B1 KR102728144 B1 KR 102728144B1 KR 1020160049485 A KR1020160049485 A KR 1020160049485A KR 20160049485 A KR20160049485 A KR 20160049485A KR 102728144 B1 KR102728144 B1 KR 102728144B1
Authority
KR
South Korea
Prior art keywords
motion vector
current block
compensation
information
block
Prior art date
Application number
KR1020160049485A
Other languages
Korean (ko)
Other versions
KR20170121383A (en
Inventor
박시내
심동규
류호찬
Original Assignee
인텔렉추얼디스커버리 주식회사
Filing date
Publication date
Priority to KR1020160049485A priority Critical patent/KR102728144B1/en
Application filed by 인텔렉추얼디스커버리 주식회사 filed Critical 인텔렉추얼디스커버리 주식회사
Priority to PCT/KR2017/003082 priority patent/WO2017164645A2/en
Priority to US16/087,787 priority patent/US10778987B2/en
Priority to EP22177043.1A priority patent/EP4072141A1/en
Priority to CN201780029821.XA priority patent/CN109155847A/en
Priority to CN202210296042.9A priority patent/CN114615493A/en
Priority to EP17770615.7A priority patent/EP3435673A4/en
Publication of KR20170121383A publication Critical patent/KR20170121383A/en
Priority to US16/993,628 priority patent/US11388420B2/en
Priority to US17/836,347 priority patent/US11770539B2/en
Priority to US17/836,236 priority patent/US11973960B2/en
Priority to US18/350,040 priority patent/US20230353757A1/en
Application granted granted Critical
Publication of KR102728144B1 publication Critical patent/KR102728144B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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

본 발명은 비디오 복호화기에서 부호화기로부터 전송받은 움직임 정보에 대해 선택적으로 복호화기에서 움직임 보정을 수행하고 이를 이용하여 움직임 보상을 수행하는 방법을 포함하는 장치 및 방법에 대한 것이다.The present invention relates to a device and method including a method for selectively performing motion compensation on motion information received from an encoder in a video decoder and performing motion compensation using the same.

Description

움직임 백터 보정을 통한 비디오 복호화 방법 및 장치{METHOD AND APPARATUS FOR VIDEO DECODER WITH MOTION VECTOR REFINEMENT}{METHOD AND APPARATUS FOR VIDEO DECODER WITH MOTION VECTOR REFINEMENT}

본 발명은 비디오 부호화 기술에 관한 것으로서, 보다 상세하게는 복호화기에서 움직임 백터를 보정하는 방법을 통해 효과적으로 비디오를 부/복호화하기 위한 방법에 관한 것이다.The present invention relates to video encoding technology, and more particularly, to a method for effectively encoding/decoding a video by correcting a motion vector in a decoder.

최근 FHD (Full High Definition) 및 UHD (Ultra High Definition) 와 같은 고해상도의 영상 서비스 수요와 고품질의 영상 서비스 수요가 증가하였다.Recently, the demand for high-resolution video services such as FHD (Full High Definition) and UHD (Ultra High Definition) and high-quality video services has increased.

본 발명은 FHD (Full High Definition) 및 UHD (Ultra High Definition)오 같은 고해상도의 영상을 위한 비디오 부/복호화기에서 움직임 정보의 전송을 효과적으로 하기 위해 복호화기에서 부호화기로부터 전송된 움직임 백터 정보에 추가적인 보정을 통해 효과적으로 비디오 부/복호화가 가능한 방법 및 장치를 제공하는 것을 그 목적으로 한다.The purpose of the present invention is to provide a method and device capable of effectively transmitting motion information in a video encoder/decoder for high-resolution images such as FHD (Full High Definition) and UHD (Ultra High Definition), by additionally correcting motion vector information transmitted from an encoder to a decoder.

상기 과제를 해결하기 위한 본 발명의 일 실시 예에서 비디오 복호화 장치 및 방법은 움직임 백터 보정을 위한 정보 추출 단계를 가지게 되며, 부호화기로 부터 직접적으로 전송받은 움직임 백터의 정보에 보정 움직임 백터를 더하여 복호화기에서 움직임 보상을 실시할 수 있다.In one embodiment of the present invention for solving the above problem, a video decoding device and method have an information extraction step for motion vector compensation, and can perform motion compensation in a decoder by adding a compensation motion vector to information of a motion vector directly transmitted from an encoder.

전술한 본 발명의 과제 해결 수단에 의하면, 복호화기에서 움직임 정보 보정 장치 혹은 단계를 통해 전송받은 움직임 백터에 대해 추가적인 보정을 통해 세밀해진 비디오 복호화가 가능하도록 하고 비디오 부/복호화 효율을 향상시킬 수 있다.According to the problem solving means of the present invention described above, it is possible to enable detailed video decoding through additional correction of a motion vector transmitted through a motion information correction device or step in a decoder, thereby improving the efficiency of video encoding/decoding.

도 1은 본 발명의 실시 예에 따른 복호화 장치의 블록도이다.
도 2는 화면 간 예측에서 본 발명이 선택적으로 적용되는 실시 예에서 움직임 백터를 구하고 이를 통해 움직임 보상을 수행하는 경우에서의 순서도이다.
도 3은 도 2에서 설명한 실시 예에서 움직임 백터 보정이 반복적으로 이루어 지는 경우에서의 순서도이다.
도 4는 도 3의 실시 예에서 움직임 백터 보정이 반복적으로 수행되는 경우 움직임 백터의 보정이 이루어지는 다수의 단계에서 움직임 백터를 보정하는 유닛의 크기가 변화하는 경우에 대한 도면이다.
도 5는 움직임 백터의 보정이 반복적으로 수행되면서 각 단계에서 블록이 분할되어 그 크기가 바뀔 때, 블록이 분할되면서 변하는 움직임 백터 보정의 수행 블록의 크기를 나타낸 도면이다.
도 6은 도 2의 실시 예에서 차분 움직임 백터가 선택적으로 전송되는 경우가 추가된 실시예에 대한 도면이다.
도 7은 도 6의 실시 예에서 움직임 백터 보정 단계가 반복적으로 수행되는 실시예에서의 순서도 이다.
FIG. 1 is a block diagram of a decryption device according to an embodiment of the present invention.
FIG. 2 is a flowchart of a case in which a motion vector is obtained and motion compensation is performed using the motion vector in an embodiment in which the present invention is selectively applied in inter-screen prediction.
FIG. 3 is a flowchart of a case in which motion vector correction is performed repeatedly in the embodiment described in FIG. 2.
FIG. 4 is a diagram illustrating a case in which the size of a unit correcting a motion vector changes in a number of steps in which motion vector correction is performed repeatedly in the embodiment of FIG. 3.
Figure 5 is a diagram showing the size of a block of motion vector correction that changes as the block is divided and its size changes at each step while motion vector correction is performed repeatedly.
FIG. 6 is a diagram for an embodiment in which a differential motion vector is optionally transmitted in the embodiment of FIG. 2.
FIG. 7 is a flowchart of an embodiment in which a motion vector correction step is repeatedly performed in the embodiment of FIG. 6.

이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시 예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, embodiments of the present invention will be specifically described with reference to the drawings. In describing embodiments of this specification, if it is determined that a detailed description of a related known configuration or function may obscure the gist of this specification, the detailed description will be omitted.

본 발명에서 특정 구성을 "포함" 한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다. The description in the present invention of "comprising" a particular configuration does not exclude configurations other than the configuration, and means that additional configurations may be included within the scope of the practice of the present invention or the technical idea of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.

또한 본 발명의 실시 예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.In addition, the components shown in the embodiments of the present invention are independently depicted to indicate different characteristic functions, and do not mean that each component is formed as a separate hardware or software configuration unit. That is, each component is included by listing each component for convenience of explanation, and at least two components among each component may be combined to form a single component, or one component may be divided into multiple components to perform a function, and such integrated embodiments and separated embodiments of each component are also included in the scope of the present invention as long as they do not deviate from the essence of the present invention.

또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.In addition, some components may not be essential components that perform essential functions in the present invention, but may be optional components that are merely used to improve performance. The present invention may be implemented by including only essential components for implementing the essence of the present invention, excluding components that are merely used to improve performance, and a structure that includes only essential components, excluding optional components that are merely used to improve performance, is also included in the scope of the present invention.

발명에 사용되는 블록은 복호화의 기본 블록 단위, 예측 블록 단위, 변환 블록 단위가 될 수 있다. 또한 블록 경계는 복호화 블록의 경계, 예측 블록의 경계, 변환 블록의 경계가 될 수 있다.The block used in the invention can be a basic block unit of decoding, a prediction block unit, or a transform block unit. In addition, the block boundary can be a boundary of a decoding block, a boundary of a prediction block, or a boundary of a transform block.

도 1은 본 발명의 실시 예에 따른 복호화 장치의 블록도이다. 부호화기로부터 비트스트림을 전송 받은 복호화기는 크게 화면 간 예측(115) 및 화면내 예측(114)을 통해 복호화를 수행하게 된다. 복호화 시 화면 간 예측을 수행할 때 본 발명의 실시 예에 따라 부호화기로부터 전송 받은 움직임 정보와 예측 움직임 백터 정보만을 이용(115-1)하여 화면 간 예측을 수행할 수도 있고, 전송 받은 움직임 백터 및 예측 움직임 백터를 이용하여 움직임 백터를 구하고(115-2), 추가적인 보정을 한 후(131)에 보정된 움직임 백터를 이용하여 화면 간 예측을 수행할 수도 있다. 복호화기는 어떠한 방법을 통해 화면 간 예측을 수행할 것인지에 대한 선택 정보를 전송 받고 선택 정보에 따라 움직임 백터 보정(131)을 선택적으로 적용할 수 있다. 현재 복호화 하는 코딩 유닛이 추가적인 보정을 한 후(131)에 화면 간 예측을 수행하는 경우, 복호확 기에서는 보정된 움직임 백터를 저장하기 위한 별도의 움직임 백터 저장(130)이 필요하다. 도 2는 화면 간 예측에서 본 발명이 선택적으로 적용되는 실시 예에서 움직임 백터를 구하고 이를 통해 움직임 보상을 수행하는 경우에서의 순서도 이다. 복호화기는 부호화기로부터 전송받은 비트스트림(200)에서 현재 코딩 유닛에 대한 정보를 추출한다. 현재 코딩 유닛에 대한 정보에서 움직임 백터 보정을 수행하는 단위 및 선택여부, 수행하는 횟수 등의 움직임 백터 보정과 관련된 정보를 추출(210)하고, 움직임 백터 보정이 선택된 경우 움직임 백터 보정(220)을 수행한다. FIG. 1 is a block diagram of a decoding device according to an embodiment of the present invention. The decoder, which receives a bitstream from an encoder, performs decoding largely through inter-screen prediction (115) and intra-screen prediction (114). When performing inter-screen prediction during decoding, the inter-screen prediction may be performed using only the motion information and predicted motion vector information transmitted from the encoder (115-1) according to an embodiment of the present invention, or the motion vector may be obtained using the transmitted motion vector and predicted motion vector (115-2), and then the inter-screen prediction may be performed using the corrected motion vector after additional correction (131). The decoder may receive selection information regarding a method for performing inter-screen prediction, and may selectively apply motion vector correction (131) according to the selection information. If the currently decoded coding unit performs inter-screen prediction after additional correction (131), the decoding unit requires separate motion vector storage (130) to store the corrected motion vector. FIG. 2 is a flowchart of a case in which a motion vector is obtained and motion compensation is performed using the motion vector in an embodiment in which the present invention is selectively applied in inter-screen prediction. The decoder extracts information about the current coding unit from the bitstream (200) transmitted from the encoder. Information related to motion vector compensation, such as the unit for performing motion vector compensation, whether to select it, and the number of times to perform it, is extracted (210) from the information about the current coding unit, and if motion vector compensation is selected, motion vector compensation (220) is performed.

움직임 백터 보정과 관련된 정보는 코딩 유닛 별로 부호화기로부터 전송 받을 수도 있지만, 정보의 특성 혹은 부/복호화기 간의 약속에 따라 영상 그룹, 영상, 프레임 그룹, 슬라이스 그룹, 슬라이스, 타일, 코딩 유닛 등 다양한 레벨에서 전송 받을 수 있으며, 부/복호화기 간의 약속에 의해 전송이 생략될 수도 있고, 하이레벨신텍스(HLS)를 통해 전송받을 수도 있다. 도 2의 순서도에서 현재 코딩 유닛에서의 움직임백터 보정과 관련된 정보는 해당 정보가 전송된 단위에서 파싱/복호화를 통해 얻어질 수 있으므로 현재 코딩 유닛의 복호화 단계에서만 추출되지 않을 수 있음은 본 분야의 일반적인 지식에서 충분이 유추 가능하다. Information related to motion vector compensation can be transmitted from the encoder for each coding unit, but can also be transmitted at various levels such as a picture group, a picture, a frame group, a slice group, a slice, a tile, and a coding unit depending on the characteristics of the information or an agreement between a sub-processor and a decoder. Transmission can also be omitted depending on an agreement between a sub-processor and a decoder, and can also be transmitted via a high-level syntax (HLS). In the flowchart of Fig. 2, it can be sufficiently inferred from general knowledge in the field that information related to motion vector compensation in the current coding unit may not be extracted only at the decoding stage of the current coding unit, since it can be obtained through parsing/decoding in the unit to which the information is transmitted.

움직임 백터 보정 시 복호화기는 전송받은 움직임백터 차분값과 예측 움직임 백터(PMV)통해 일차적으로 움직임 보상(241)을 수행한다. 이때 움직임 백터는 다음 식으로 계산된다.When performing motion vector compensation, the decoder primarily performs motion compensation (241) using the received motion vector differential value and predicted motion vector (PMV). At this time, the motion vector is calculated by the following equation.

Figure 112016039048948-pat00001
Figure 112016039048948-pat00001

(식 1)에서 i,j는 현재 코딩 유닛의 위치를 t는 현재 복호화가 수행되는 프레임 혹은 슬라이스의 시간을 나타낸다. (In Equation 1), i and j represent the position of the current coding unit, and t represents the time of the frame or slice in which decoding is currently performed.

이후 움직임 보상이 수행된 영상 값을 이용하여 움직임 백터 보정(220)을 수행하고, 수행하여 변경된 움직임 백터(231)를 이용하여 움직임보상(242)를 하게 된다. 이때 움직임백터는 다음의 식으로 계산된다.Afterwards, motion vector correction (220) is performed using the image value on which motion compensation has been performed, and motion compensation (242) is performed using the changed motion vector (231). At this time, the motion vector is calculated using the following equation.

Figure 112016039048948-pat00002
Figure 112016039048948-pat00002

그리고 움직임 백터가 보정(220)된 경우 이는 복호화기에 저장(130)하게 된다. 변경하여 저장된 움직임 백터는 차후 주변 블록 혹은 다음 영상에서 예측 움직임 백터(PMV) 계산시에 사용되기 때문에 움직임 백터 보정 수행 이후에 반드시 저장(130)이 필요하다. 예컨대, 보정된 움직임 백터는 후순위로 부호화/복호화되는 블록 혹은 픽처의 움직임 백터를 결정하는데 이용되고, 보정전 모션 벡터는 후순위로 부호화/복호화되는 주변 블록의 모션 벡터를 결정하는데 이용될 수 있다. 움직임 백터 보정이 선택되지 않은 경우 현재 코딩 유닛은 기존의 움직임 백터 계산 방법(232)에 의해 계산이 가능하고, 이는 예측 움직임 백터의 값과 전송 받은 차분 움직임백터 의 값으로 계산 가능하기 때문에 별도의 저장 단계가 요구되지는 않는다.And when the motion vector is corrected (220), it is stored (130) in the decoder. Since the changed and stored motion vector is used when calculating the predicted motion vector (PMV) in the surrounding block or the next image, it is necessary to store (130) after performing the motion vector correction. For example, the corrected motion vector is used to determine the motion vector of the block or picture to be encoded/decoded in the subsequent order, and the motion vector before correction can be used to determine the motion vector of the surrounding block to be encoded/decoded in the subsequent order. If the motion vector correction is not selected, the current coding unit can be calculated by the existing motion vector calculation method (232), and since this can be calculated with the value of the predicted motion vector and the value of the transmitted differential motion vector, a separate storage step is not required.

도 3은 도 2에서 설명한 실시예에서 움직임 백터 보정이 반복적으로 이루어 지는 경우에서의 순서도이다. 부호화기에서 움직임 백터 보정을 반복적으로 수행한 경우 부호화기는 관련 정보(310)을 복호화기로 전송할 수 있다. 이는 움직임백터 보정에 대한 깊이 정보로 전송가능한데, 움직임백터 보정 플래그(311)이 1인 경우 즉 움짐임 백터 보정 방법이 선택된 경우 반드시 한번은 수행되기 때문에 깊이 정보는 반복횟수(MV_refine_Count)는 깊이 정보에 1을 더한 값이 된다. 물론 복호화기와 부호화기가 움직임 백터 보정 반복횟수를 약속한 경우나 움직임 백터 보정 반복을 마치는 조건을 복호화기에서 계산 가능한 경우에 움직임백터 보정 깊이정보(반복횟수) 정보에 대한 부호화기에서 복호화기로의 전송은 생략될 수 있다. 도 3의 다른 단계에 대한 설명은 도 2와 같으므로 생략한다. 다만 움직임 백터의 보정이 반복적으로 수행되는 경우 최종의 움직임 백터 뿐 아니라 구현 혹은 실시 예에 따라 저장(130) 또한 반복적으로 수행될 수 있다.FIG. 3 is a flowchart of a case where motion vector compensation is repeatedly performed in the embodiment described in FIG. 2. When motion vector compensation is repeatedly performed in the encoder, the encoder can transmit related information (310) to the decoder. This can be transmitted as depth information for motion vector compensation. If the motion vector compensation flag (311) is 1, that is, if the motion vector compensation method is selected, it is necessarily performed once, so the depth information repetition count (MV_refine_Count) becomes a value that adds 1 to the depth information. Of course, if the decoder and the encoder agree on the number of repetitions of motion vector compensation or if the decoder can calculate the condition for completing the motion vector compensation repetition, the transmission of motion vector compensation depth information (repetition count) information from the encoder to the decoder can be omitted. Since the description of other steps in FIG. 3 is the same as in FIG. 2, it is omitted. However, if the correction of the motion vector is performed repeatedly, not only the final motion vector but also the storage (130) depending on the implementation or embodiment may be performed repeatedly.

도 4는 도 3의 실시 예에서 움직임백터 보정이 반복적으로 수행되는 경우 움직임 백터의 보정이 이루어지는 다수의 단계에서 움직임 백터를 보정하는 유닛의 크기가 변화하는 경우에 대한 도면이다. N×M 의 크기(N과 M은 부/복호화의 약속에 따라 같을 수도 있음.)를 갖고 두 장의 참조 영상을 참조하는 현재 코딩 유닛에서 반복적으로 움직임 백터 보정이 이루어지는 경우 반복 횟수 단계별로 움직임 백터 보정 유닛의 크기가 (400)처럼 변화 할 수 있다. 도 4에서는 첫 번째 움직임 백터 보정 단계에서는 (N/2)×(M/2)의 크기로 보정이 수행되고, 두 번째 움직임 백터 보정 단계에서는 좌상측 블록(402)에 대해서만 (N/4)×(M/4)의 크기로 한 번 더 분할된 형태로 수행되고, 다른 블록(403)에 대해서는 동일 크기로 수행된다. 이전 보정 단계와 동일한 크기 블록(즉 분할이 수행되지 않은 블록)에 대해 움직임 보정을 반복적으로 수행할 것인지에 대해서는 움직임 백터 보정 관련 정보를 통해 부호화기에서 복호화기로 전송될 수도 있고, 부/복호화기간의 약속에 의해 결정될 수 있다. 도 5는 움직임 백터의 보정이 반복적으로 수행되면서 각 단계에서 블록이 분할되어 그 크기가 바뀔 때, 블록이 분할되면서 변하는 움직임 백터 보정의 수행 블록의 크기를 나타낸 도면이다. 도 5-(a)와 같이 분할 깊이 정보에 따라 수행 블록의 크기가 일정할 수도 있고, 도 5-(e)와 같이 직방형일 수도 있다. 그리고 (b)와 같이 직방과 정방이 혼합된 형태가 될 수 있으며, 5-(c)와 같이 모든 블록이 동일 횟수로 분할되지 않을 수도 있고, 5-(d)와 같이 그 비율이 달라질 수도 있다. 도5-(e), (f),(g)는 분할의 모양이 사각의 형태가 아닌 경우로 삼각형 혹은 사각형과 삼각형이 조합되어 분할된 모습의 도면이다. 도 5는 실시 예 중의 일부를 도식화 한 것으로, 그 조합에 의해 다양한 형태로 존재할 수 있으며, 해당 분할과 관련한 모양, 크기, 비율, 횟수 등의 정보는 움직임 보정 정보들로 부호화기에서 복호화기로 전송하거나, 부/복호화기 간의 약속에 의해 수행이 가능하다. 또한 분할의 최소 단위는 픽셀단위까지 가능하며, 움직임 보정 정보가 동일한 블록들은 다시 합쳐지는(merge) 것도 가능하다. 또한 최초 코딩 유닛의 형태가 직사각형이 아닌 경우에도 도 5의 실시 예와 같이 다양한 형태로 분할 가능할 것이다. 4에서 움직임 백터를 보정하기 위해 두 장의 참조 영상을 이용하였지만, 실시 예에 따라 참조 영상은 1장 혹은 3장 이상이 될 수도 있다. 또한 반복적으로 수행되면서 참조 영상이 달라질 수도 있고 참조 영상에서 움직임 백터 보정 정보를 구하기 위해 사용하는 방법 또한 달라질 수 있다. 해당 정보는 모두 부호화기에서 복호화기로 전송되거나, 부/복호화기 간의 약속에 의해 수행될 수 있다. FIG. 4 is a diagram illustrating a case in which the size of a unit for correcting a motion vector changes in a number of steps in which motion vector correction is performed when motion vector correction is repeatedly performed in the embodiment of FIG. 3. When motion vector correction is repeatedly performed in a current coding unit that refers to two reference images and has a size of N×M (N and M may be the same depending on the convention of encoding/decoding), the size of the motion vector correction unit may change as in (400) for each repetition number step. In FIG. 4, in the first motion vector correction step, correction is performed in a size of (N/2)×(M/2), and in the second motion vector correction step, correction is performed in a form that is further divided into a size of (N/4)×(M/4) only for the upper left block (402), and is performed in the same size for other blocks (403). Whether motion compensation will be repeatedly performed on blocks of the same size as the previous compensation step (i.e., blocks for which segmentation has not been performed) can be transmitted from the encoder to the decoder through information related to motion vector compensation, or can be determined by a promise of the encoding/decoding period. Fig. 5 is a diagram showing the size of a block of motion vector compensation that changes as the block is segmented and its size changes at each step while motion vector compensation is repeatedly performed. The size of the block of performance may be constant according to the segmentation depth information, as in Fig. 5-(a), or may be rectangular, as in Fig. 5-(e). In addition, it may be a mixed shape of rectangular and square, as in (b), and not all blocks may be segmented the same number of times, as in 5-(c), or the ratio may vary, as in 5-(d). Figs. 5-(e), (f), and (g) are diagrams showing a case where the shape of the segmentation is not a square, but a triangle or a combination of a square and a triangle. FIG. 5 is a diagram illustrating a part of the embodiment, which may exist in various forms by combination thereof, and information such as shape, size, ratio, and number of times related to the division may be transmitted from the encoder to the decoder as motion compensation information, or may be performed by an agreement between the sub/decoder. In addition, the minimum unit of division may be down to a pixel unit, and blocks with the same motion compensation information may be merged again. In addition, even if the shape of the initial coding unit is not rectangular, it may be divided into various forms as in the embodiment of FIG. 5. In 4, two reference images were used to compensate for the motion vector, but depending on the embodiment, the reference images may be one or three or more. In addition, the reference images may change as they are repeatedly performed, and the method used to obtain the motion vector compensation information from the reference images may also change. All of the information may be transmitted from the encoder to the decoder, or may be performed by an agreement between the sub/decoder.

도 6은 도 2의 실시예에서 차분 움직임백터가 선택적으로 전송되는 경우가 추가된 실시예에 대한 도면이다. 보통의 복호화기에서 차분 움직임 백터는 다음 식과 같이 예측 움직임 백터에 더해져 해당 코딩 유닛의 실제 움직임 백터로 계산된다.FIG. 6 is a diagram for an embodiment in which a differential motion vector is optionally transmitted in the embodiment of FIG. 2. In a typical decoder, the differential motion vector is added to the predicted motion vector as in the following equation and calculated as the actual motion vector of the corresponding coding unit.

Figure 112016039048948-pat00003
Figure 112016039048948-pat00003

하지만 본 발명은 복호화기에서 움직임 백터의 보정을 통해 코딩 유닛의 움직임 백터가 변화하며 이 과정에서 구해지는 값이 차분 움직임 백터와 동일하다면, 결과적으로 차분 움직임 백터 없이 기존의 복호화가 가능해지며, 차분 움직임 백터의 전송이 생략되면서 부호화 효율을 얻을 수 있다.However, in the present invention, if the motion vector of the coding unit changes through correction of the motion vector in the decoder and the value obtained in this process is identical to the differential motion vector, conventional decoding becomes possible without the differential motion vector, and encoding efficiency can be obtained while omitting transmission of the differential motion vector.

Figure 112016039048948-pat00004
Figure 112016039048948-pat00004

Figure 112016039048948-pat00005
Figure 112016039048948-pat00005

Figure 112016039048948-pat00006
Figure 112016039048948-pat00006

도 6은 부호화기에서 차분 움직임 백터의 값을 선택적으로 복호화기로 전송하는 실시 예로, 각각의 경우 움직임 백터는 다음 (식 6), (식 7)로 계산될 수 있다.Fig. 6 is an example of selectively transmitting the value of the differential motion vector from the encoder to the decoder, and in each case, the motion vector can be calculated as follows (Equation 6) and (Equation 7).

Figure 112016039048948-pat00007
Figure 112016039048948-pat00007

Figure 112016039048948-pat00008
Figure 112016039048948-pat00008

(634), (633)과 같이 계산될 수 있다. 이렇게 계산된 움직임 백터가 움직임 백터 보정을 통해 (640)과(641)의 형태가 될 수 있으며, 이 값은 다음 움직임 백터 예측을 위해 저장(130)된다. 이후 보정된 움직임 백터 값으로 움직임 보상이 수행된다. 도 6의 실시예에서 움직임백터 차분 값의 전송에 대한 선택 정보는 영상 그룹, 영상, 프레임 그룹, 슬라이스 그룹, 슬라이스, 타일, 코딩 유닛 등 다양한 레벨에서 전송가능하며, 부/복호화기 간에 약속이 된 경우 생략가능하다. 예를 들어 움직임 백터 보정 블록에 대해서는 무조건 움직임 백터 차분 값을 전송하기 않는다는 약속이 부/복호화기 사이에 있다면, 해당 선택정보(620)은 생략될 수 있을 것이다. 해당 선택 정보(620)의 약속과 생략은 다양한 조건에 의해 가능할 수 있고, 조건은 부/복호화기 간의 약속이므로 실시 예 또한 다양해 질 수 있다. (634), (633) can be calculated. The motion vector calculated in this way can be in the form of (640) and (641) through motion vector compensation, and this value is stored (130) for the next motion vector prediction. Thereafter, motion compensation is performed with the compensated motion vector value. In the embodiment of Fig. 6, the selection information for the transmission of the motion vector difference value can be transmitted at various levels such as an image group, an image, a frame group, a slice group, a slice, a tile, a coding unit, etc., and can be omitted if there is an agreement between the sub/decoder. For example, if there is an agreement between the sub/decoder not to unconditionally transmit the motion vector difference value for the motion vector compensation block, the corresponding selection information (620) can be omitted. The agreement and omission of the corresponding selection information (620) can be possible under various conditions, and since the conditions are agreements between the sub/decoder, the embodiments can also be diverse.

도 7은 도 6의 실시예에서 움직임 백터 보정 단계가 반복적으로 수행되는 실시예에서의 순서도 이다. 해당 방법은 도 6과 도 3의 실시 예가 조합된 형태로 반복 수행 시 블록의 형태는 모든 단계에서 동일 할 수도 있고 도 4와 5에서와 같이 다양한 형태로 분할 되어 나타날 수도 있다. Fig. 7 is a flowchart of an embodiment in which the motion vector correction step is repeatedly performed in the embodiment of Fig. 6. The method is a combined form of the embodiments of Fig. 6 and Fig. 3, and when repeatedly performed, the shape of the block may be the same in all stages, or may be divided into various shapes as in Figs. 4 and 5.

Claims (5)

인터 예측 방법으로서,
현재 블록의 움직임 벡터 보정 정보를 획득하는 단계;
상기 현재 블록의 움직임 벡터를 생성하는 단계;
상기 움직임 벡터 보정 정보에 기반하여 상기 현재 블록의 움직임 벡터를 보정하는 단계; 및
상기 보정된 움직임 벡터를 이용하여 상기 현재 블록에 대한 움직임 보상을 수행하는 단계를 포함하고,
상기 보정된 움직임 벡터는 상기 현재 블록 이전에 디코딩된 복원 블록을 이용하여 유도되는, 인터 예측 방법.
As an inter prediction method,
A step of obtaining motion vector correction information of the current block;
A step of generating a motion vector of the current block;
A step of correcting the motion vector of the current block based on the above motion vector correction information; and
A step of performing motion compensation for the current block using the above-mentioned compensated motion vector is included,
An inter prediction method in which the above-described compensated motion vector is derived using a reconstructed block decoded before the current block.
제1항에 있어서,
상기 보정된 움직임 벡터는 이후에 디코딩되는 영상의 움직임 벡터 결정에 이용되는, 인터 예측 방법.
In the first paragraph,
An inter prediction method in which the above-mentioned corrected motion vector is used to determine the motion vector of an image to be decoded later.
제1항에 있어서,
상기 움직임 벡터의 보정은 상기 현재 블록의 사이즈에 기반하여 수행되는, 인터 예측 방법.
In the first paragraph,
An inter prediction method in which the correction of the above motion vector is performed based on the size of the current block.
인터 예측 방법으로서,
현재 블록의 움직임 벡터를 생성하는 단계;
상기 현재 블록의 움직임 벡터에 기반하여 상기 현재 블록의 움직임 벡터 보정 정보를 결정하는 단계; 및
상기 움직임 벡터 보정 정보를 부호화하는 단계를 포함하고,
상기 움직임 벡터 보정 정보는 디코딩 프로세스에서 상기 현재 블록의 움직임 벡터를 보정하는데 이용되고,
상기 디코딩 프로세스 내 상기 현재 블록의 보정된 움직임 벡터는 상기 디코딩 프로세스에서 상기 현재 블록 이전에 복호화된 복원 블록을 이용하여 유도되는, 인터 예측 방법.
As an inter prediction method,
Step of generating a motion vector of the current block;
A step of determining motion vector compensation information of the current block based on the motion vector of the current block; and
Comprising a step of encoding the above motion vector correction information,
The above motion vector compensation information is used to compensate the motion vector of the current block in the decoding process,
An inter prediction method, wherein the corrected motion vector of the current block in the decoding process is derived using a reconstructed block decoded before the current block in the decoding process.
부호화 장치를 이용한 영상 부호화 방법에 의해 생성된 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능한 기록 매체로서, 상기 영상 부호화 방법은,
현재 블록의 움직임 벡터를 생성하는 단계;
상기 현재 블록의 움직임 벡터에 기반하여 상기 현재 블록의 움직임 벡터 보정 정보를 결정하는 단계; 및
상기 움직임 벡터 보정 정보를 부호화하는 단계를 포함하고,
상기 움직임 벡터 보정 정보는 디코딩 프로세스에서 상기 현재 블록의 움직임 벡터를 보정하는데 이용되고,
상기 디코딩 프로세스 내 상기 현재 블록의 보정된 움직임 벡터는 상기 디코딩 프로세스에서 상기 현재 블록 이전에 복호화된 복원 블록을 이용하여 유도되는, 기록 매체.
A non-transitory computer-readable recording medium storing a bitstream generated by an image encoding method using an encoding device, wherein the image encoding method comprises:
Step of generating a motion vector of the current block;
A step of determining motion vector compensation information of the current block based on the motion vector of the current block; and
Comprising a step of encoding the above motion vector correction information,
The above motion vector compensation information is used to compensate the motion vector of the current block in the decoding process,
A recording medium, wherein the corrected motion vector of the current block in the decoding process is derived using a restored block decoded before the current block in the decoding process.
KR1020160049485A 2016-03-24 2016-04-22 Method and apparatus for video decoder with motion vector refinement KR102728144B1 (en)

Priority Applications (11)

Application Number Priority Date Filing Date Title
KR1020160049485A KR102728144B1 (en) 2016-04-22 Method and apparatus for video decoder with motion vector refinement
US16/087,787 US10778987B2 (en) 2016-03-24 2017-03-22 Method and apparatus for encoding/decoding video signal
EP22177043.1A EP4072141A1 (en) 2016-03-24 2017-03-22 Method and apparatus for encoding/decoding video signal
CN201780029821.XA CN109155847A (en) 2016-03-24 2017-03-22 Method and apparatus for encoding/decoding video signal
PCT/KR2017/003082 WO2017164645A2 (en) 2016-03-24 2017-03-22 Method and apparatus for encoding/decoding video signal
CN202210296042.9A CN114615493A (en) 2016-03-24 2017-03-22 Video decoding method, video encoding method, and readable recording medium
EP17770615.7A EP3435673A4 (en) 2016-03-24 2017-03-22 Method and apparatus for encoding/decoding video signal
US16/993,628 US11388420B2 (en) 2016-03-24 2020-08-14 Method and apparatus for encoding/decoding video signal
US17/836,347 US11770539B2 (en) 2016-03-24 2022-06-09 Method and apparatus for encoding/decoding video signal
US17/836,236 US11973960B2 (en) 2016-03-24 2022-06-09 Method and apparatus for encoding/decoding video signal
US18/350,040 US20230353757A1 (en) 2016-03-24 2023-07-11 Method and apparatus for encoding/decoding video signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160049485A KR102728144B1 (en) 2016-04-22 Method and apparatus for video decoder with motion vector refinement

Publications (2)

Publication Number Publication Date
KR20170121383A KR20170121383A (en) 2017-11-02
KR102728144B1 true KR102728144B1 (en) 2024-11-11

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244927A (en) * 1999-02-23 2000-09-08 Matsushita Electric Ind Co Ltd Moving picture transforming device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244927A (en) * 1999-02-23 2000-09-08 Matsushita Electric Ind Co Ltd Moving picture transforming device

Similar Documents

Publication Publication Date Title
US11722688B2 (en) Block size restrictions for DMVR
US11109061B2 (en) Method and apparatus of motion compensation based on bi-directional optical flow techniques for video coding
US20200404331A1 (en) Method for Deriving a Motion Vector
KR102114641B1 (en) Method of video coding by prediction of the partitioning of a current block, method of decoding, coding and decoding devices and computer programs corresponding thereto
JP6706357B2 (en) Method, coding device and corresponding computer program for coding a current block of a first image component with respect to a reference block of at least one second image component
KR102554364B1 (en) Method and apparatus for encoding/decoding video
JPWO2012131895A1 (en) Image coding apparatus, method and program, image decoding apparatus, method and program
US20150189276A1 (en) Video encoding method and apparatus, video decoding method and apparatus, and programs therefor
JP6409516B2 (en) Picture coding program, picture coding method, and picture coding apparatus
US20150271527A1 (en) Video encoding method and apparatus, video decoding method and apparatus, and programs therefor
KR101806949B1 (en) Method for coding a depth lookup table
JP2022514802A (en) Resolution-adaptive video coding
JP2014507857A (en) Method and apparatus for forming predictive values
KR102728144B1 (en) Method and apparatus for video decoder with motion vector refinement
KR101668133B1 (en) Method for predicting a block of image data, decoding and coding devices implementing said method
CN112997497B (en) Method and apparatus for intra prediction
US20160286212A1 (en) Video encoding apparatus and method, and video decoding apparatus and method
KR102700756B1 (en) apparatus and method for TRANSMITTING AND RECEIVING ADDITIONAL INFORMATION FOR 3D IMAGE
KR20170121383A (en) Method and apparatus for video decoder with motion vector refinement
US20230388484A1 (en) Method and apparatus for asymmetric blending of predictions of partitioned pictures
US20170019683A1 (en) Video encoding apparatus and method and video decoding apparatus and method
JP6294810B2 (en) Moving picture encoding apparatus, moving picture decoding apparatus, and computer program
US10972751B2 (en) Video encoding apparatus and method, and video decoding apparatus and method
JP2022087335A (en) Image decoder, image decoding method, and program
KR20170109095A (en) Method and apparatus for decoding video with motion vector derivation