KR20230067502A - Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus - Google Patents
Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus Download PDFInfo
- Publication number
- KR20230067502A KR20230067502A KR1020220118151A KR20220118151A KR20230067502A KR 20230067502 A KR20230067502 A KR 20230067502A KR 1020220118151 A KR1020220118151 A KR 1020220118151A KR 20220118151 A KR20220118151 A KR 20220118151A KR 20230067502 A KR20230067502 A KR 20230067502A
- Authority
- KR
- South Korea
- Prior art keywords
- motion vector
- candidate
- reference frame
- motion
- block
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하고, 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하고, 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하고, 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하고, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 비디오 복호화 방법 및 장치를 제안한다.A plurality of steps for obtaining information on a first motion vector of the current block from a bitstream, determining the first motion vector based on the information on the first motion vector, and determining a second motion vector of the current block. Determines a candidate list including candidate motion vectors of <RTI ID=0.0>and assigns one of the plurality of candidate motion vectors to the second motion based on the distance between the plurality of candidate motion vectors and the first motion vector. vector, and using the first motion vector and the second motion vector to determine the motion vector of the current block, a video decoding method and apparatus are proposed.
Description
본 개시는 비디오 복호화 방법 및 장치, 및 비디오 부호화 방법 및 장치에 관한 것으로서, 구체적으로, 양방향 예측에 있어서, 2개의 움직임 벡터 정보 (제1 움직임 벡터 정보 및 제2 움직임 벡터 정보) 중 제1 움직임 벡터 정보에 대해서만 관련 정보를 전송하고, 제2 움직임 벡터 정보는 전송된 제1 움직임 벡터 정보를 이용하여 획득된 제1 움직임 벡터와 제2 움직임 벡터에 대한 움직임 벡터 후보 리스트를 이용하여 도출하는 비디오 복호화 및 부호화 방법 및 장치에 관한 것이다.The present disclosure relates to a video decoding method and apparatus, and a video encoding method and apparatus, and more specifically, in bi-directional prediction, a first motion vector among two pieces of motion vector information (first motion vector information and second motion vector information). Video decoding in which related information is transmitted only for information, and second motion vector information is derived using a first motion vector obtained using the transmitted first motion vector information and a motion vector candidate list for the second motion vector; and It relates to an encoding method and apparatus.
H.264 AVC(Advanced Video Coding), HEVC(High Efficiency Video Coding), 및 VVC(Versatile Video Coding)와 같은 코덱에서는, 영상을 블록으로 분할하고, 인터 예측(inter prediction) 또는 인트라 예측(intra prediction)을 통해 각각의 블록을 예측 부호화 및 예측 복호화한다.In codecs such as H.264 Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC), and Versatile Video Coding (VVC), an image is divided into blocks and inter prediction or intra prediction is performed. Each block is predicted-encoded and predicted-decoded through.
인트라 예측은 영상 내의 공간적인 중복성을 제거하여 영상을 압축하는 방법이고, 인터 예측은 영상들 사이의 시간적인 중복성을 제거하여 영상을 압축하는 방법이다. Intra prediction is a method of compressing an image by removing spatial redundancy in images, and inter prediction is a method of compressing an image by removing temporal redundancy between images.
부호화 과정에서는, 인트라 예측 또는 인터 예측을 통해 예측 블록을 생성하고, 현재 블록으로부터 예측 블록을 감산하여 잔차 블록을 생성하고, 잔차 블록의 잔차 샘플들을 변환 및 양자화한다.In the encoding process, a prediction block is generated through intra prediction or inter prediction, a residual block is generated by subtracting the prediction block from a current block, and residual samples of the residual block are transformed and quantized.
복호화 과정에서는, 잔차 블록의 양자화된 변환 계수들을 역양자화 및 역변환하여 잔차 블록의 잔차 샘플들을 생성하고, 인트라 예측 또는 인터 예측을 통해 생성된 예측 블록을 잔차 블록에 합하여 현재 블록을 복원한다. 복원된 현재 블록은 하나 이상의 필터링 알고리즘에 따라 처리된 후 출력될 수 있다.In the decoding process, residual samples of the residual block are generated by inverse quantization and inverse transformation of quantized transform coefficients of the residual block, and a prediction block generated through intra prediction or inter prediction is combined with the residual block to reconstruct the current block. The restored current block may be output after being processed according to one or more filtering algorithms.
H.264 AVC, HEVC, 및 VVC와 같은 코덱에서는 양방향 예측의 경우, 양방향에 대한 움직임 정보를 모두 전송 받아, 2개의 참조 블록을 찾기 위해 2번의 움직임 추정이 수행된다. In codecs such as H.264 AVC, HEVC, and VVC, in the case of bi-directional prediction, motion information for both directions is transmitted and motion estimation is performed twice to find two reference blocks.
실시간으로 전송되는 동영상의 해상도가 4K, 8K UHD 또는 그 이상으로 커지는 추세이므로, 복잡도 측면에서 실시간 전송에 유리한 양방향 예측 방법이 요구될 수 있다.Since the resolution of video transmitted in real time tends to increase to 4K, 8K UHD or higher, a bi-directional prediction method advantageous to real-time transmission may be required in terms of complexity.
일 실시예에 따른 비디오 복호화 방법은, 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하는 단계; 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하는 단계; 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계를 포함할 수 있다.A video decoding method according to an embodiment includes obtaining information on a first motion vector of a current block from a bitstream; determining the first motion vector based on information on the first motion vector; determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block; determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between the plurality of candidate motion vectors and the first motion vector; and determining a motion vector of the current block using the first motion vector and the second motion vector.
일 실시예에 따른 비디오 복호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는, 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득할 수 있다. 적어도 하나의 프로세서는, 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정할 수 있다. 적어도 하나의 프로세서는, 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정할 수 있다. 적어도 하나의 프로세서는, 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정할 수 있다. 적어도 하나의 프로세서는, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정할 수 있다.A video decoding apparatus according to an embodiment includes a memory for storing one or more instructions; and at least one processor operating according to the one or more instructions. At least one processor may obtain information about a first motion vector of a current block from a bitstream. At least one processor may determine the first motion vector based on information on the first motion vector. At least one processor may determine a candidate list including a plurality of candidate prediction motion vectors for determining the second motion vector of the current block. At least one processor may determine one of the plurality of candidate motion vectors as the second motion vector based on a distance between the plurality of candidate motion vectors and the first motion vector. At least one processor may determine the motion vector of the current block using the first motion vector and the second motion vector.
일 실시예에 따른 비디오 부호화 방법은, 현재 블록의 제1 움직임 벡터에 대한 정보를 생성하는 단계; 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하는 단계; 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화하는 단계를 포함할 수 있다.A video encoding method according to an embodiment includes generating information about a first motion vector of a current block; determining the first motion vector based on information on the first motion vector; determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block; determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between the plurality of candidate motion vectors and the first motion vector; and determining a motion vector of the current block by using the first motion vector and the second motion vector, and encoding information on the first motion vector.
일 실시예에 따른 AI에 기반한 비디오 부호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는 현재 블록의 제1 움직임 벡터에 대한 정보를 생성할 수 있다. 적어도 하나의 프로세서는 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정할 수 있다. 적어도 하나의 프로세서는 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정할 수 있다. 적어도 하나의 프로세서는 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정할 수 있다. 적어도 하나의 프로세서는 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화할 수 있다.A video encoding apparatus based on AI according to an embodiment includes a memory for storing one or more instructions; and at least one processor operating according to the one or more instructions. At least one processor may generate information about the first motion vector of the current block. At least one processor may determine the first motion vector based on information on the first motion vector. At least one processor may determine a candidate list including a plurality of candidate prediction motion vectors for determining the second motion vector of the current block. At least one processor may determine one of the plurality of candidate motion vectors as the second motion vector based on a distance between the plurality of candidate motion vectors and the first motion vector. At least one processor may determine a motion vector of the current block using the first motion vector and the second motion vector, and encode information on the first motion vector.
도 1은 영상의 부호화 및 복호화 과정을 도시하는 도면이다.
도 2는 영상으로부터 트리 구조에 따라 분할된 블록들을 도시하는 도면이다.
도 3a는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3b는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3c는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3d는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3e는 양방향 예측에서 참조 블록을 이용하여 현재 블록을 획득하는 방법을 설명하기 위한 도면이다.
도 4a는 본 개시의 일 실시예에 따른 움직임 추정을 통해 현재 블록의 제1 참조 블록을 획득하는 방법을 설명하기 위한 도면이다.
도 4b는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 5a는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 5b는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 비디오 복호화 방법의 순서도이다.
도 7은 본 개시의 일 실시예에 따른 비디오 복호화 장치의 구성을 도시하는 도면이다.
도 8은 본 개시의 일 실시예에 따른 비디오 부호화 방법의 순서도이다.
도 9는 본 개시의 일 실시예에 따른 비디오 부호화 장치의 구성을 도시하는 도면이다.1 is a diagram illustrating a process of encoding and decoding an image.
2 is a diagram illustrating blocks divided from an image according to a tree structure.
3A is a diagram for explaining an example of a reference block in bi-directional prediction.
3B is a diagram for explaining an example of a reference block in bidirectional prediction.
3C is a diagram for explaining an example of a reference block in bidirectional prediction.
3D is a diagram for explaining an example of a reference block in bi-directional prediction.
3E is a diagram for explaining a method of obtaining a current block by using a reference block in bi-directional prediction.
4A is a diagram for explaining a method of obtaining a first reference block of a current block through motion estimation according to an embodiment of the present disclosure.
4B is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
5A is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
5B is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
6 is a flowchart of a video decoding method according to an embodiment of the present disclosure.
7 is a diagram showing the configuration of a video decoding apparatus according to an embodiment of the present disclosure.
8 is a flowchart of a video encoding method according to an embodiment of the present disclosure.
9 is a diagram showing the configuration of a video encoding apparatus according to an embodiment of the present disclosure.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.In this disclosure, the expression “at least one of a, b, or c” means “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b” and c”, or variations thereof.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present disclosure may have various changes and various embodiments, specific embodiments are illustrated in the drawings, and will be described in detail through detailed description. However, this is not intended to limit the embodiments of the present disclosure, and it should be understood that the present disclosure includes all modifications, equivalents, and substitutes included in the spirit and scope of the various embodiments.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the embodiments, if it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the present disclosure, the detailed description will be omitted. In addition, numbers (eg, 1st, 2nd, etc.) used in the description process of the specification are only identifiers for distinguishing one component from another.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in the present disclosure, when one component is referred to as "connected" or "connected" to another component, the one component may be directly connected or directly connected to the other component, but in particular Unless otherwise described, it should be understood that they may be connected or connected via another component in the middle.
또한, 본 개시에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, in the present disclosure, components expressed as '~ unit (unit)', 'module', etc., are two or more components combined into one component, or one component is divided into two or more for each function. may be differentiated into In addition, each of the components to be described below may additionally perform some or all of the functions of other components in addition to its own main function, and some of the main functions of each component may be different from other components. Of course, it may be performed exclusively by a component.
또한, 본 개시에서, '영상(image) 또는 픽처(picture)'는 정지영상(또는 프레임), 복수의 연속된 정지영상으로 구성된 동영상, 또는 비디오를 의미할 수 있다.Also, in the present disclosure, an 'image or picture' may mean a still image (or frame), a motion picture composed of a plurality of continuous still images, or a video.
또한, 본 개시에서 '현재 블록'은 현재의 처리 대상인 블록을 의미한다. 현재 블록은 현재 영상으로부터 분할된 슬라이스, 타일, 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위일 수 있다.Also, in the present disclosure, 'current block' means a block that is currently a processing target. The current block may be a slice, tile, maximum coding unit, coding unit, prediction unit, or transformation unit divided from the current image.
또한, 본 개시에서, '샘플'은 영상 또는 블록 등의 데이터 내 샘플링 위치에 할당된 데이터로서 처리 대상이 되는 데이터를 의미한다. 예를 들어, 샘플은 2차원의 영상 내 픽셀을 포함할 수 있다.In addition, in the present disclosure, 'sample' refers to data to be processed as data allocated to a sampling position within data such as an image or a block. For example, a sample may include a pixel in a 2D image.
일 실시예에 따른 영상 복호화 방법, 영상 복호화 장치, 영상 부호화 방법, 및 영상 부호화 장치에 대해 설명하기에 앞서, 도 1 및 도 2를 참조하여 영상의 부호화 및 복호화 과정에 대해 설명한다.Prior to describing an image decoding method, an image decoding apparatus, an image encoding method, and an image encoding apparatus according to an exemplary embodiment, video encoding and decoding processes will be described with reference to FIGS. 1 and 2 .
도 1은 영상의 부호화 및 복호화 과정을 도시하는 도면이다.1 is a diagram illustrating a process of encoding and decoding an image.
부호화 장치(110)는 영상에 대한 부호화를 통해 생성된 비트스트림을 복호화 장치(150)로 전송하고, 복호화 장치(150)는 비트스트림을 수신 및 복호화하여 영상을 복원한다 The
구체적으로, 부호화 장치(110)에서, 예측 부호화부(115)는 인터 예측 및 인트라 예측을 통해 예측 블록을 출력하고, 변환 및 양자화부(120)는 예측 블록과 현재 블록 사이의 잔차 블록의 잔차 샘플들을 변환 및 양자화하여 양자화된 변환 계수를 출력한다. 엔트로피 부호화부(125)는 양자화된 변환 계수를 부호화하여 비트스트림으로 출력한다. Specifically, in the
양자화된 변환 계수는 역양자화 및 역변환부(130)을 거쳐 공간 영역의 잔차 샘플들을 포함하는 잔차 블록으로 복원된다. 예측 블록과 잔차 블록이 합해진 복원 블록은 디블로킹 필터링부(135) 및 루프 필터링부(140)를 거쳐 필터링된 블록으로 출력된다. 필터링된 블록을 포함하는 복원 영상은 예측 부호화부(115)에서 다음 입력 영상의 참조 영상으로 사용될 수 있다. The quantized transform coefficient is reconstructed into a residual block including residual samples in the spatial domain through the inverse quantization and
복호화 장치(150)로 수신된 비트스트림은 엔트로피 복호화부(155) 및 역양자화 및 역변환부(160)를 거쳐 공간 영역의 잔차 샘플들을 포함하는 잔차 블록으로 복원된다. 예측 복호화부(175)로부터 출력된 예측 블록과 잔차 블록이 조합되어 복원 블록이 생성되고, 복원 블록은 디블로킹 필터링부(165) 및 루프 필터링부(170)를 거쳐 필터링된 블록으로 출력된다. 필터링된 블록을 포함하는 복원 영상은 예측 복호화부(175)에서 다음 영상에 대한 참조 영상으로 이용될 수 있다. The bitstream received by the
부호화 장치(110)의 루프 필터링부(140)는 사용자 입력 또는 시스템 설정에 따라 입력된 필터 정보를 이용하여 루프 필터링을 수행한다. 루프 필터링부(140)에 의해 사용된 필터 정보는 엔트로피 부호화부(125)를 통해 복호화 장치(150)로 전송된다. 복호화 장치(150)의 루프 필터링부(170)는 엔트로피 복호화부(155)로부터 입력된 필터 정보에 기초하여 루프 필터링을 수행할 수 있다.The
영상의 부호화 및 복호화 과정에서는 영상이 계층적으로 분할되고, 영상으로부터 분할된 블록에 대해 부호화 및 복호화가 수행된다. 영상으로부터 분할된 블록에 대해 도 2를 참조하여 설명한다.In the process of encoding and decoding an image, an image is hierarchically segmented, and encoding and decoding are performed on blocks divided from the image. A block segmented from an image will be described with reference to FIG. 2 .
도 2는 영상(200)으로부터 트리 구조에 따라 분할된 블록들을 도시하는 도면이다.FIG. 2 is a diagram showing blocks divided from the
하나의 영상(200)은 하나 이상의 슬라이스(Slice) 혹은 하나 이상의 타일(Tile)로 분할될 수 있다. 하나의 슬라이스는 복수의 타일을 포함할 수 있다.One
하나의 슬라이스 혹은 하나의 타일은 하나 이상의 최대 부호화 단위(Maximum Coding Unit; Maximum CU)의 시퀀스일 수 있다.One slice or one tile may be a sequence of one or more Maximum Coding Units (Maximum CUs).
하나의 최대 부호화 단위는 하나 이상의 부호화 단위로 분할될 수 있다. 부호화 단위는 예측 모드를 결정하기 위한 기준 블록일 수 있다. 다시 말하면, 각각의 부호화 단위에 대해 인트라 예측 모드가 적용되는지, 인터 예측 모드가 적용되는지가 결정될 수 있다. 본 개시에서 최대 부호화 단위는 최대 부호화 블록으로 참조될 수 있고, 부호화 단위는 부호화 블록으로 참조될 수 있다.One maximum coding unit may be divided into one or more coding units. A coding unit may be a reference block for determining a prediction mode. In other words, it may be determined whether the intra prediction mode or the inter prediction mode is applied to each coding unit. In the present disclosure, a maximum coding unit may be referred to as a maximum coding block, and a coding unit may be referred to as a coding block.
부호화 단위의 크기는 최대 부호화 단위와 동일하거나, 최대 부호화 단위보다 작을 수 있다. 최대 부호화 단위는 최대 크기를 가지는 부호화 단위이므로, 부호화 단위로 참조될 수도 있다. The size of the coding unit may be equal to or smaller than the maximum coding unit. Since a maximum coding unit is a coding unit having a maximum size, it may be referred to as a coding unit.
부호화 단위로부터 인트라 예측 또는 인터 예측을 위한 하나 이상의 예측 단위가 결정될 수 있다. 예측 단위의 크기는 부호화 단위와 동일하거나, 부호화 단위보다 작을 수 있다. One or more prediction units for intra prediction or inter prediction may be determined from the coding unit. The size of the prediction unit may be equal to or smaller than the coding unit.
또한, 부호화 단위로부터 변환 및 양자화를 위한 하나 이상의 변환 단위가 결정될 수 있다. 변환 단위의 크기는 부호화 단위와 동일하거나, 부호화 단위보다 작을 수 있다. 변환 단위는 변환 및 양자화를 위한 기준 블록으로서, 부호화 단위의 잔차 샘플들이 부호화 단위 내의 변환 단위별로 변환 및 양자화될 수 있다.Also, one or more transform units for transform and quantization may be determined from the coding unit. The size of the conversion unit may be equal to or smaller than the coding unit. A transform unit is a reference block for transform and quantization, and residual samples of a coding unit may be transformed and quantized for each transform unit within the coding unit.
본 개시에서 현재 블록은 영상(200)으로부터 분할된 슬라이스, 타일, 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위일 수 있다. 또한, 현재 블록의 하위 블록은 현재 블록으로부터 분할된 블록으로서, 예를 들어, 현재 블록이 최대 부호화 단위이면, 하위 블록은 부호화 단위, 예측 단위 또는 변환 단위일 수 있다. 또한, 현재 블록의 상위 블록은 현재 블록을 일부로 포함하는 블록으로서, 예를 들어, 현재 블록이 최대 부호화 단위이면, 상위 블록은 픽처 시퀀스, 픽처, 슬라이스 또는 타일일 수 있다.In the present disclosure, a current block may be a slice, a tile, a maximum coding unit, a coding unit, a prediction unit, or a transformation unit divided from the
이하에서는, 도 3a 내지 도 9를 참조하여, 일 실시예에 따른 비디오 복호화 방법, 비디오 복호화 장치, 비디오 부호화 방법, 및 비디오 부호화 장치에 대해 설명한다.Hereinafter, a video decoding method, a video decoding apparatus, a video encoding method, and a video encoding apparatus according to an exemplary embodiment will be described with reference to FIGS. 3A to 9 .
도 3a는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.3A is a diagram for explaining an example of a reference block in bi-directional prediction.
도 3a를 참고하면, 양방향 예측에 따라, 제1 참조 프레임 (310) 내에서 2개의 참조 블록, 즉 제1 참조 블록(315) 및 제2 참조 블록(325)을 획득하고 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 현재 프레임(300) 내의 현재 블록(305)이 예측될 수 있다.Referring to FIG. 3A, according to bi-directional prediction, two reference blocks, that is, a
도 3b는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.3B is a diagram for explaining an example of a reference block in bidirectional prediction.
도 3b를 참고하면, 양방향 예측에 따라, 현재 프레임 (300)의 과거 시점의 제1 참조 프레임 (320) 내의 제1 참조 블록(315)과 현재 프레임 (300)의 미래 시점의 제2 참조 프레임(330) 내의 제2 참조 블록(325)을 획득하고 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 현재 프레임(300) 내의 현재 블록(305)이 예측될 수 있다.Referring to FIG. 3B , according to bidirectional prediction, a
도 3c는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.3C is a diagram for explaining an example of a reference block in bidirectional prediction.
도 3c를 참고하면, 양방향 예측에 따라, 현재 프레임 (300)의 과거 시점의 제1 참조 프레임 (340) 내의 제1 참조 블록(315)과 현재 프레임 (300)의 과거 시점의 제2 참조 프레임(350) 내의 제2 참조 블록(325)을 획득하고 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 현재 프레임(300) 내의 현재 블록(305)이 예측될 수 있다.Referring to FIG. 3C , according to bidirectional prediction, a
도 3d는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.3D is a diagram for explaining an example of a reference block in bi-directional prediction.
도 3d를 참고하면, 양방향 예측에 따라, 현재 프레임 (300)의 미래 시점의 제1 참조 프레임 (360) 내의 제1 참조 블록(315)과 현재 프레임 (300)의 미래 시점의 제2 참조 프레임(370) 내의 제2 참조 블록(325)을 획득하고 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 현재 프레임(300) 내의 현재 블록(305)이 예측될 수 있다.Referring to FIG. 3D , according to bidirectional prediction, a
도 3e는 양방향 예측에서 참조 블록을 이용하여 현재 블록을 획득하는 방법을 설명하기 위한 도면이다.3E is a diagram for explaining a method of obtaining a current block by using a reference block in bi-directional prediction.
도 3e를 참고하면, 도 3a 내지 도 3d에 따라 획득된 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 참조 이미지(335)가 획득되고, 참조 이미지(335)가 현재 블록(305)으로 결정될 수 있다.Referring to FIG. 3E , a
도 3a 내지 도 3e에 따라, 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 참조 이미지(335)를 복호화 측에서 획득하기 위해서는, 제1 참조 블록(315) 및 제2 참조 블록(325)에 대한 정보가 전송되어야 한다. 참조 블록에 대한 정보는 참조 블록이 포함된 참조 프레임에 대한 정보(예를 들면, 참조 인덱스)와 현재 블록의 위치를 기준으로 하는 참조 블록의 위치 정보(예를 들면, 움직임 벡터)를 포함할 수 있다. 예를 들어, 움직임 벡터는 현재 블록의 좌상단 픽셀의 위치를 기준으로 x축 및 y축 별 변위(displacement)를 특정 분수 픽셀(fractional pixel) 또는 특정 정수 픽셀(interger pixel) 단위로 표현될 수 있다. 또한, 움직임 벡터 전송에 있어서, 주변 블록의 움직임 벡터 정보를 이용하여 주변 움직임 벡터 정보와 현재 움직임 벡터 정보의 차이인 움직임 벡터 차분값이 전송될 수 있다. 또한, 여러 개의 주변 블록의 정보를 하나를 선택하여 사용하는 경우에 사용되는 정보에 대한 움직임 벡터 예측 인덱스도 추가로 전송될 수 있다. 즉, 하나의 참조 블록을 획득하기 위해서는 참조 프레임 정보, 움직임 벡터 예측 인덱스, 움직임 벡터 차분값이 전송되어야 하고, 양방향 예측의 경우에는 2개의 참조 블록을 이용하므로, 참조 프레임 정보, 움직임 벡터 예측 인덱스, 움직임 벡터 차분값이 2개씩 필요하다. 이에 따라 2개의 참조 블록을 획득하기 위해 움직임 추정이 각 참조 블록에 대해서 수행되므로, 2번의 움직임 추정이 필요하여 복잡도 측면에서 실시간 저지연 (low-delay 또는 low latency) 동영상 전송이 요구되는 시스템과 같은 실시간 전송에는 적합하지 않을 수 있다.3A to 3E, in order to obtain the
실시간 전송을 위해 제2 참조 블록의 움직임 벡터 차분값이 전송되지 않는 방법이 고려될 수 있다. 이러한 방법은 제1 참조 블록에 대해서만 제1 참조 블록에 대한 정보가 전송되어 움직임 추정이 수행되고, 제2 참조 블록에 대해서는 움직임 추정이 수행되지 않는다. 따라서, 압축 효율 측면에서는 다소 손실이 있을 수 있지만, 복잡도 측면에서 실시간 전송의 응용에 유리하다. For real-time transmission, a method in which the motion vector difference value of the second reference block is not transmitted may be considered. In this method, motion estimation is performed by transmitting information on the first reference block only for the first reference block, and motion estimation is not performed on the second reference block. Therefore, although there may be some loss in terms of compression efficiency, it is advantageous for real-time transmission applications in terms of complexity.
구체적으로, 양방향 예측을 수행하는 블록에 대하여, 제1 참조 블록에 대한 움직임 벡터 차분값을 전송하고, 제2 참조 블록에 대한 움직임 벡터 차분값은 전송하지 않고, 제2 참조 블록에 대한 움직임 벡터 예측 후보를 이용하여 제2 참조 블록의 움직임 벡터가 결정될 수 있다. 이 경우에, 제2 참조 블록에 대해 선택 가능한 움직임 벡터 예측 후보의 개수가 복수 개이면, 복수 개의 움직임 벡터 예측 후보들 중 하나를 선택하기 위해 플래그나 인덱스가 시그널링되어야 하므로, 부호화 측에서 추가적으로 움직임 벡터 예측 후보들 중 하나를 선택하기 위한 결정 과정이 수행되어야 한다. 일반적으로, 이러한 결정 과정을 위해서, 선택 가능한 움직임 벡터 예측 후보 각각에 대해 움직임 벡터 예측 후보 각각이 참조하는 참조 픽처로부터 해당 위치의 참조 블록을 꺼내와(fetch) 제1 참조 블록의 움직임 벡터를 통해 획득된 제1 참조 블록과 평균내어 현재 블록의 예측 블록을 생성한 뒤 SAD(sum of absolute differences)와 같은 코스트 함수를 사용해서 코스트를 계산한 뒤, 코스트가 작은 것이 선택된다. 이러한 경우에는 움직임 벡터 예측 후보들의 개수만큼 외부 메모리에 존재하는 참조 픽처로부터 데이터를 꺼내와야(fetch) 하므로, 필요로 하는 외부 메모리 대역폭이 커지게 되어 실시간 전송에는 바람직하지 않다.Specifically, for a block that performs bi-directional prediction, a motion vector difference value for a first reference block is transmitted, and a motion vector difference value for a second reference block is not transmitted, and motion vector prediction for a second reference block is performed. A motion vector of the second reference block may be determined using the candidate. In this case, if the number of motion vector prediction candidates selectable for the second reference block is plural, since a flag or index must be signaled to select one of the plurality of motion vector prediction candidates, the encoding side additionally predicts the motion vector. A decision process must be performed to select one of the candidates. In general, for this determination process, for each of the selectable motion vector prediction candidates, a reference block at a corresponding location is fetched from a reference picture referred to by each of the motion vector prediction candidates and obtained through the motion vector of the first reference block. A predicted block of the current block is generated by averaging with the first reference block, and then a cost is calculated using a cost function such as sum of absolute differences (SAD), and then a block with a small cost is selected. In this case, since data must be fetched from reference pictures existing in the external memory as much as the number of motion vector prediction candidates, the required external memory bandwidth increases, which is not desirable for real-time transmission.
이를 해결하기 위한 방법으로, 선택할 수 있는 제2 참조 블록에 대한 움직임 벡터 예측 후보들 중에서 특정한 인덱스 위치의 값으로 무조건 전송하도록 설정될 수 있다. 구체적으로, 움직임 벡터 예측 후보의 첫번?? 인덱스를 항상 가지도록 설정될 수 있다. 이에 따라, 부호화 측에서 제2 참조 블록의 움직임 벡터 예측 후보의 플래그를 항상 0으로 설정하여 전송될 수 있다. 이러한 경우, 움직임 벡터 예측 후보 결정을 위해 여러 개의 참조 블록을 꺼내올(fetch) 필요가 없어 복잡도 측면에서 장점을 가지나, 압축 효율 측면에서 성능이 떨어질 수 있다.As a method for solving this problem, it may be configured to unconditionally transmit a value of a specific index position among motion vector prediction candidates for the selectable second reference block. Specifically, the first of motion vector prediction candidates?? It can be set to always have an index. Accordingly, on the encoding side, the flag of the motion vector prediction candidate of the second reference block may be always set to 0 and transmitted. In this case, there is no need to fetch several reference blocks to determine motion vector prediction candidates, which has an advantage in terms of complexity, but may degrade performance in terms of compression efficiency.
이를 해결하기 위해, 본 개시의 일 실시예에 따라, 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들과의 관계를 고려하여 제2 참조 블록의 움직임 벡터 예측 후보들 중 하나가 제2 참조 블록으로 선택될 수 있다. 이 경우, 외부 메모리로부터 여러 개의 참조 블록을 꺼내올(fetch) 필요가 없어 복잡도 측면에서 장점을 가지고, 압축 효율 측면에서는 단순하게 특정 인덱스를 이용하는 것과 비교하면 성능이 향상된다. 즉, 화질 측면에서 손실이 최소화되면서 복잡도 측면에서 효율적이다.To solve this problem, according to an embodiment of the present disclosure, one of the motion vector prediction candidates of the second reference block is determined by considering the relationship between the motion vector of the first reference block and the motion vector prediction candidates of the second reference block. 2 can be selected as a reference block. In this case, there is no need to fetch several reference blocks from the external memory, so it has an advantage in terms of complexity, and in terms of compression efficiency, performance is improved compared to simply using a specific index. That is, it is efficient in terms of complexity while minimizing loss in terms of image quality.
도 4a는 본 개시의 일 실시예에 따른 움직임 추정을 통해 현재 블록의 제1 참조 블록을 획득하는 방법을 설명하기 위한 도면이다.4A is a diagram for explaining a method of obtaining a first reference block of a current block through motion estimation according to an embodiment of the present disclosure.
도 4a를 참고하면, 현재 프레임(300)의 현재 블록(305)의 제1 참조 프레임(310) 내의 제1 참조 블록(315)을 찾기 위해, 제1 참조 블록에 대한 정보를 이용하여 움직임 검색 영역(400) 내에서의 움직임 검색(motion search)이 수행되고, 움직임 보상을 수행하여 제1 참조 블록(315)이 획득될 수 있다.Referring to FIG. 4A , in order to find the
도 4b는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.4B is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
도 4b를 참고하면, 도 4a에서와 같이 움직임 보상에 따라 제1 참조 블록(315)이 먼저 획득된다. 제1 참조 블록(315)과 제2 참조 블록의 동일한 프레임인 제1 참조 프레임 (310)에 포함되는 경우, 현재 프레임(300)의 현재 블록(305)의 주변 블록들로부터 제1 참조 프레임 (310) 내의 제2 참조 블록의 후보 위치들(405, 410)이 획득된다. 제2 참조 블록의 제1 후보 블록(405)과 제2 후보 블록(410)들 각각과 제1 참조 블록(315) 사이의 거리를 식별하여 가장 거리가 먼 후보 블록인 제1 후보 블록(405)이 제2 참조 블록으로 결정될 수 있다.Referring to FIG. 4B , a
제2 참조 블록의 제1 후보 블록(405)과 제2 후보 블록(410)들 각각과 제1 참조 블록(315) 사이의 거리는 유클리드(Euclidean) 거리 측정 방식 또는 맨하튼(Manhattan) 거리 측정 방식 등을 이용하여 식별될 수 있다.The distance between each of the
구체적으로, 제1 참조 블록의 움직임 벡터가 (x0, y0)이고, 제2 참조 블록의 움직임 벡터가 (x1, y1)이고, 제2 참조 블록(MV1)의 움직임 벡터 예측 후보가 2개이고, 제2 참조 블록의 제1 후보(MVP_1_1)가 (x11, y11)이고, 제2 참조 블록의 제2 후보(MVP_1_2)가 (x12, y12)이면, 각 후보와 제1 참조 블록의 맨하튼 거리를 측정한 값을 비교하여 아래 수학식 1과 같은 슈도 코드(pseudo code)에 따라 제2 참조 블록이 결정될 수 있다.Specifically, the motion vector of the first reference block is (x0, y0), the motion vector of the second reference block is (x1, y1), the motion vector prediction candidates of the second reference block MV1 are two, 2 If the first candidate (MVP_1_1) of the reference block is (x11, y11) and the second candidate (MVP_1_2) of the second reference block is (x12, y12), the Manhattan distance between each candidate and the first reference block is measured By comparing the values, the second reference block may be determined according to a pseudo code such as
[수학식 1][Equation 1]
동일한 프레임 내에서 제2 참조 블록을 선택할 때, 제1 참조 블록과 비교하여 가까운 블록을 선택할 경우 제1 참조 블록 만을 이용하는 것과 비슷한 형태의 이미지가 생성되지만, 제1 참조 블록으로부터 먼 블록을 선택할 경우 새로운 형태의 참조 이미지가 생성될 수 잇으므로, 참조 이미지를 다양하게 이용하여 코딩 효율이 향상될 수 있다.When selecting a second reference block within the same frame, when a block close to the first reference block is selected, an image similar to using only the first reference block is created, but when a block far from the first reference block is selected, a new image is created. Since a reference image of the form can be generated, coding efficiency can be improved by using the reference image in various ways.
즉, 복호화 측은 제1 참조 블록에 대한 움직임 정보(움직임 벡터 차분값, 움직임 벡터 예측 후보 인덱스)을 전송받고, 전송된 움직임 정보를 이용하여 제1 참조 블록의 움직임 벡터를 결정하고, 현재 블록의 주변 블록을 이용하여 제2 참조 블록에 대한 후보 블록들을 포함하는 후보 리스트를 결정하고, 제2 참조 블록에 대한 후보 블록들 중 제1 참조 블록의 위치로부터 가장 거리가 먼 블록을 제2 참조 블록으로 결정하여 이용한다. 이에 따라 제1 참조 블록에 대한 움직임 정보만 전송되고, 제2 참조 블록에 대한 움직임 정보에 대한 전송 없이 전송된 제1 참조 블록에 대한 움직임 정보를 이용하여 제2 참조 블록에 대한 움직임 벡터를 결정함으로써, 전송 정보에 대한 크기가 줄고 효율적인 참조 블록이 선택되어 압축 효율이 향상될 수 있다.That is, the decoding side receives motion information (motion vector difference value, motion vector prediction candidate index) for the first reference block, determines the motion vector of the first reference block using the transmitted motion information, and determines the motion vector of the current block. A candidate list including candidate blocks for the second reference block is determined using the block, and a block farthest from the location of the first reference block among the candidate blocks for the second reference block is determined as the second reference block. and use it Accordingly, only the motion information for the first reference block is transmitted, and the motion vector for the second reference block is determined using the transmitted motion information for the first reference block without transmission of the motion information for the second reference block. , compression efficiency can be improved by reducing the size of transmission information and selecting an efficient reference block.
구체적으로, 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 획득한다. 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다. 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 이용하여 제1 참조 블록의 움직임 벡터를 획득하고, 제2 참조 블록의 움직임 벡터 예측 후보들을 포함하는 후보 리스트를 결정한다. 복호화 측은 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 거리를 식별한다. 거리는 제1 참조 블록의 움직임 벡터가 (x0, y0)이고 움직임 벡터 예측 후보의 움직임 벡터가 (x1, y1)라 하면, |x0 - x1| + |y0 - y1|으로 측정된다. 측정된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 먼 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정된다.Specifically, the decoding side obtains information on the motion vector of the first reference block. The information on the motion vector of the first reference block includes an index indicating one of motion vector prediction candidates for the first reference block and a motion vector difference value. The decoding side obtains the motion vector of the first reference block by using information on the motion vector of the first reference block, and determines a candidate list including motion vector prediction candidates of the second reference block. The decoding side identifies a distance between a motion vector of the first reference block and motion vectors of motion vector prediction candidates of the second reference block. If the motion vector of the first reference block is (x0, y0) and the motion vector of the motion vector prediction candidate is (x1, y1), |x0 - x1| + |y0 - y1| Based on the measured distance, a motion vector of a motion vector prediction candidate having the furthest distance from the motion vector of the first reference block is determined as the motion vector of the second reference block.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 거리 중 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수도 있다.According to an embodiment, among the distances between the motion vector of the first reference block and motion vectors of the motion vector prediction candidates of the second reference block, the motion vector prediction candidate of the candidate block having the shortest distance is the motion vector of the second reference block. may be determined by
또한, 제1 참조 블록 (315) 대신에 현재 블록(305)과 제2 참조 블록의 제1 후보 블록(405)과 제2 후보 블록(410)들 각각의 거리를 식별하여 가장 거리가 먼 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정되거나 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수도 있다.In addition, instead of the
또한, 제1 참조 블록 (315)과 현재 블록(305)의 거리를 기준으로, 제1 참조 블록 (315)과 가장 거리가 먼 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정되거나 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수도 있다. 구체적으로, 제1 참조 블록 (315)과 현재 블록(305)의 거리가 미리 결정된 크기 K이하인 경우에는 제1 참조 블록 (315)과 가장 거리가 먼 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정되고, 제1 참조 블록 (315)과 현재 블록(305)의 거리가 K보다 큰 경우에는 제1 참조 블록 (315)과 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수 있다. 또한, 제1 참조 블록 (315)과 현재 블록(305)의 거리가 미리 결정된 크기 K보다 작은 경우에는 제1 참조 블록 (315)과 가장 거리가 먼 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정되고, 제1 참조 블록 (315)과 현재 블록(305)의 거리가 K이상인 경우에는 제1 참조 블록 (315)과 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수 있다. 이 경우에도 외부 메모리로부터 여러 개의 참조 블록을 불러올 필요가 없기 때문에, 복잡도 측면에서 장점을 가지고 압축 효율 측면에서는 단순히 특정 인덱스를 사용하는 것에 비해 성능이 향상될 수 있다.In addition, based on the distance between the
일 실시예에 따라, 제2 참조 블록의 움직임 벡터 후보들은 2개 이상일 수 있다.According to an embodiment, there may be two or more motion vector candidates of the second reference block.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터를 위한 움직임 벡터 후보가 2개인 경우에, 제2 참조 블록의 움직임 벡터를 위한 움직임 벡터 후보는 2개 이상일 수 있다.According to an embodiment, when there are two motion vector candidates for the motion vector of the first reference block, there may be two or more motion vector candidates for the motion vector of the second reference block.
일 실시예에 따라, 특정 픽처 또는 특정 블록에서는 제2 참조 블록에 대한 움직임 벡터 차분값이 전송되는 경우, 제2 참조 블록의 움직임 벡터 후보들에 대해, 인덱스나 플래그가 시그널링되도록 구성되거나, 시그널링 없이 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 거리에 기초하여 제2 참조 블록의 움직임 벡터가 결정되도록 구성될 수 있다.According to an embodiment, when a motion vector difference value with respect to a second reference block is transmitted in a specific picture or specific block, an index or a flag may be signaled for motion vector candidates of the second reference block, or a first signal may be signaled without signaling. The motion vector of the second reference block may be determined based on the distance between the motion vector of the first reference block and the motion vectors of the motion vector prediction candidates of the second reference block.
도 5a는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.5A is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
도 5a를 참고하면, 움직임 보상에 따라 제1 참조 블록(315)이 먼저 획득된다. 제1 참조 블록(315)은 제1 참조 프레임(320)에 포함되고 제2 참조 블록은 제1 참조 프레임(320)과 상이한 시점의 제2 참조 프레임(330)에 포함되는 경우, 현재 프레임(300)의 현재 블록(305)의 주변 블록들로부터 제2 참조 프레임(330) 내의 제2 참조 블록의 후보 위치들(505, 510)이 획득된다. 제2 참조 블록의 제1 후보 블록(505)과 제2 후보 블록(510)들 각각과 제1 참조 블록(315) 사이의 거리를 식별하여 제1 후보 블록(505)과 제2 후보 블록(510)들 중 가장 거리가 가까운 후보 블록이 제2 참조 블록으로 결정될 수 있다.Referring to FIG. 5A , a
양 방향 예측에 있어서, 2개의 참조 블록이 각각 서로 다른 참조 프레임에 있는 경우, 2개의 참조 블록 사이의 거리가 가까운 경우에 동일한 오브젝트를 가리킬 확률이 높으므로, 움직임 벡터에 대한 정보를 이용하여 획득된 제1 참조 블록과 제2 참조 블록의 후보 블록들 각각 사이의 거리에 기초하여, 거리가 가까운 후보 블록이 제2 참조 블록으로 결정됨으로써, 코딩 효율이 향상될 수 있다.In bi-prediction, when two reference blocks are located in different reference frames, the probability of pointing to the same object is high when the distance between the two reference blocks is short. Based on the distance between each of the candidate blocks of the first reference block and the second reference block, a candidate block having a short distance is determined as the second reference block, so that coding efficiency may be improved.
구체적으로, 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 획득한다. 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록이 속한 제1 참조 프레임의 방향, 즉 현재 프레임 기준으로 과거 시점인지 미래 시점인지를 나타내는 방향 인덱스, 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다. 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 이용하여 제1 참조 블록의 움직임 벡터를 획득한다. 복호화 측은 방향 인덱스를 이용하여 제2 참조 블록의 움직임 벡터 예측 후보들 중 제1 참조 블록의 움직임 벡터와 다른 방향을 가지는 제2 참조 블록의 움직임 벡터 예측 후보들을 포함하는 후보 리스트를 결정한다. 복호화 측은 참조 인덱스를 이용하여 참조 프레임의 picture order count (POC)를 획득한다. POC는 픽처의 디스플레이 순서에 따라 넘버링한 값을 의미한다. 복호화 측은 POC를 이용하여 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들 중 제1 참조 블록과 다른 방향을 가지는 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 스케일링된 거리를 식별한다. 스케일링된 거리는 제1 참조 블록의 움직임 벡터와 POC가 (x0, y0, POC0)이고 움직임 벡터 예측 후보의 움직임 벡터와 POC가 (x1, y1, POC1)라 하면, 수학식 2에 따라 측정된다. Specifically, the decoding side obtains information on the motion vector of the first reference block. Information on the motion vector of the first reference block includes the direction of the first reference frame to which the first reference block belongs, that is, a direction index indicating whether it is a past view or a future view based on the current frame, a reference index indicating the first reference frame, and a first reference frame. 1 includes an index indicating one of motion vector prediction candidates for a reference block and a motion vector difference value. The decoding side obtains a motion vector of the first reference block by using information on the motion vector of the first reference block. The decoding side determines a candidate list including motion vector prediction candidates of the second reference block having a direction different from that of the motion vector of the first reference block among motion vector prediction candidates of the second reference block by using the direction index. The decoding side obtains the picture order count (POC) of the reference frame using the reference index. POC means a value numbered according to the display order of pictures. The decoding side identifies a scaled distance between a motion vector of the first reference block and motion vectors of motion vector prediction candidates having a direction different from that of the first reference block among motion vector prediction candidates of the second reference block by using the POC. The scaled distance is measured according to Equation 2 when the motion vector and POC of the first reference block are (x0, y0, POC0) and the motion vector and POC of the motion vector prediction candidate are (x1, y1, POC1).
[수학식 2][Equation 2]
측정된 거리(dist), 즉 스케일링된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 가까운 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정된다.A motion vector of a motion vector prediction candidate having the closest distance from the motion vector of the first reference block based on the measured distance (dist), that is, the scaled distance, is determined as the motion vector of the second reference block.
일 실시예에 따라, 스케일링된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 먼 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.일 실시예에 따라, POC0를 기준으로 먼 POC를 가지는 움직임 벡터가 하나이면, 해당 움직임 벡터가 그대로 이용될 수 있다. According to an embodiment, a motion vector of a motion vector prediction candidate having the furthest distance from the motion vector of the first reference block based on the scaled distance may be determined as the motion vector of the second reference block. If there is one motion vector having a POC distant from POC0, the corresponding motion vector may be used as it is.
일 실시예에 따라, POC0를 기준으로 먼 POC를 가지는 움직임 벡터가 복수 개이면, 복수개의 POC0를 기준으로 먼 POC를 가지는 움직임 벡터 후보들 중 제1 참조 블록의 움직임 벡터와의 거리가 가장 먼 움직임 벡터가 이용될 수 있다.According to an embodiment, if there are a plurality of motion vectors having POCs distant from POC0, the motion vector having the farthest distance from the motion vector of the first reference block among motion vector candidates having POCs farther from POC0 can be used
일 실시예에 따라, POC0를 기준으로 가까운 POC를 가지는 움직임 벡터가 하나이면, 해당 움직임 벡터가 그대로 이용될 수 있다. According to an embodiment, if there is one motion vector having a POC close to POC0, the corresponding motion vector may be used as it is.
일 실시예에 따라, POC0를 기준으로 가까운 POC를 가지는 움직임 벡터가 복수 개이면, 복수개의 POC0를 기준으로 가까운 POC를 가지는 움직임 벡터 후보들 중 제1 참조 블록의 움직임 벡터와의 거리가 가장 가까운 움직임 벡터가 이용될 수 있다.According to an embodiment, if there are a plurality of motion vectors having POCs that are close to POC0, the motion vector having the closest distance to the motion vector of the first reference block among motion vector candidates having POCs that are close to POC0 is the motion vector. can be used
도 5b는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.5B is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
도 5b를 참고하면, 움직임 보상에 따라 제1 참조 블록(315)이 먼저 획득된다. 제1 참조 블록(315)은 제1 참조 프레임(340)에 포함되고 제2 참조 블록은 제1 참조 프레임(340)과 동일한 시점의 제2 참조 프레임(350)에 포함되는 경우, 현재 프레임(300)의 현재 블록(305)의 주변 블록들로부터 제2 참조 프레임(350) 내의 제2 참조 블록의 후보 위치들(515, 520)이 획득된다. 제2 참조 블록의 제1 후보 블록(515)과 제2 후보 블록(520)들 각각과 제1 참조 블록(315) 사이의 거리를 식별하여 제1 후보 블록(515)과 제2 후보 블록(520)들 중 가장 거리가 가까운 후보 블록이 제2 참조 블록으로 결정될 수 있다.Referring to FIG. 5B , a
구체적으로, 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 획득한다. 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록이 속한 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다. 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 이용하여 제1 참조 블록의 움직임 벡터를 획득하고, 제2 참조 블록의 움직임 벡터 예측 후보들을 포함하는 후보 리스트를 결정한다. 복호화 측은 참조 인덱스를 이용하여 참조 프레임의 picture order count (POC)를 획득한다. 복호화 측은 POC를 이용하여 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 스케일링된 거리를 식별한다. 스케일링된 거리는 제1 참조 블록의 움직임 벡터와 POC가 (x0, y0, POC0)이고 움직임 벡터 예측 후보의 움직임 벡터와 POC가 (x1, y1, POC1)라 하면, 수학식 3에 따라 측정된다. Specifically, the decoding side obtains information on the motion vector of the first reference block. The information on the motion vector of the first reference block includes a reference index indicating a first reference frame to which the first reference block belongs, an index indicating one of motion vector prediction candidates for the first reference block, and a motion vector difference value. The decoding side obtains the motion vector of the first reference block by using information on the motion vector of the first reference block, and determines a candidate list including motion vector prediction candidates of the second reference block. The decoding side obtains the picture order count (POC) of the reference frame using the reference index. The decoding side identifies a scaled distance between a motion vector of the first reference block and motion vectors of motion vector prediction candidates of the second reference block by using the POC. The scaled distance is measured according to Equation 3 when the motion vector and POC of the first reference block are (x0, y0, POC0) and the motion vector and POC of the motion vector prediction candidate are (x1, y1, POC1).
[수학식 3][Equation 3]
측정된 거리(dist), 즉 스케일링된 거릴를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 가까운 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정된다.A motion vector of a motion vector prediction candidate having the closest distance to the motion vector of the first reference block based on the measured distance (dist), that is, the scaled distance, is determined as the motion vector of the second reference block.
일 실시예에 따라, 스케일링된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 먼 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.According to an embodiment, a motion vector of a motion vector prediction candidate having the furthest distance from the motion vector of the first reference block based on the scaled distance may be determined as the motion vector of the second reference block.
일 실시예에 따라, POC0를 기준으로 먼 POC를 가지는 움직임 벡터가 하나이면, 해당 움직임 벡터가 그대로 이용될 수 있다.According to an embodiment, if there is one motion vector having a far POC based on POC0, the corresponding motion vector may be used as it is.
일 실시예에 따라, POC0를 기준으로 먼 POC를 가지는 움직임 벡터가 복수 개이면, 복수개의 POC0를 기준으로 먼 POC를 가지는 움직임 벡터 후보들 중 제1 참조 블록의 움직임 벡터와의 거리가 가장 먼 움직임 벡터가 이용될 수 있다.According to an embodiment, if there are a plurality of motion vectors having POCs distant from POC0, the motion vector having the farthest distance from the motion vector of the first reference block among motion vector candidates having POCs farther from POC0 can be used
일 실시예에 따라, POC0를 기준으로 가까운 POC를 가지는 움직임 벡터가 하나이면, 해당 움직임 벡터가 그대로 이용될 수 있다. According to an embodiment, if there is one motion vector having a POC close to POC0, the corresponding motion vector may be used as it is.
일 실시예에 따라, POC0를 기준으로 가까운 POC를 가지는 움직임 벡터가 복수 개이면, 복수개의 POC0를 기준으로 가까운 POC를 가지는 움직임 벡터 후보들 중 제1 참조 블록의 움직임 벡터와의 거리가 가장 가까운 움직임 벡터가 이용될 수 있다.According to an embodiment, if there are a plurality of motion vectors having POCs that are close to POC0, the motion vector having the closest distance to the motion vector of the first reference block among motion vector candidates having POCs that are close to POC0 is the motion vector. can be used
일 실시예에 따라, 참조 픽처 또는 참조 프레임이 복수 개인 경우, 제1 참조 블록의 움직임 벡터를 기준으로 제1 참조 블록이 속한 제1 참조 픽처와 현재 픽처 사이의 거리와 제2 참조 블록의 움직임 벡터 후보가 속한 제2 참조 픽처 사이의 거리를 기초로 스케일링하여 제1 참조 블록과 제2 참조 블록의 움직임 벡터 후보 사이의 거리를 식별함으로써 제2 참조 블록의 후보 블록이 획득될 수 있다.According to an embodiment, when there are a plurality of reference pictures or reference frames, a distance between the current picture and the first reference picture to which the first reference block belongs based on the motion vector of the first reference block and the motion vector of the second reference block A candidate block of the second reference block may be obtained by identifying a distance between motion vector candidates of the first reference block and the second reference block by scaling based on the distance between the second reference pictures to which the candidate belongs.
구체적으로, 아래 수학식 4의 코스트 함수 f(N)에 따라 거리가 식별될 수 있다.Specifically, the distance may be identified according to the cost function f(N) of Equation 4 below.
[수학식 4] [Equation 4]
POCc는 현재 블록의 속한 현재 픽처의 POC이고, 제1 참조 블록의 움직임 벡터를 MvL0라 하면 MvL0[0]는 제1 참조 블록의 움직임 벡터의 x성분이고, MvL0[1]는 제1 참조 블록의 움직임 벡터의 y성분이고, POCL0는 제1 참조 블록이 속한 제1 참조 픽처의 POC이고, 제2 참조 블록의 움직임 벡터 후보를 MvL1[N]이라 하면, MvL1[N][0]는 제2 참조 블록의 움직임 벡터 후보의 x성분이고, MvL1[N][1]는 제2 참조 블록의 움직임 벡터 후보의 y성분이고, POCL1은 제2 참조 블록의 움직임 벡터 후보가 속한 제2 참조 픽처의 POC이고, N은 특정 움직임 벡터 예측 후보를 의미하는 인덱스로 1개 이상 M개 이하이다.POC c is the POC of the current picture belonging to the current block, and if the motion vector of the first reference block is MvL0, MvL0[0] is the x-component of the motion vector of the first reference block, and MvL0[1] is the first reference block is the y component of the motion vector of , POC L0 is the POC of the first reference picture to which the first reference block belongs, and the motion vector candidate of the second reference block is MvL1[N], MvL1[N][0] is 2 is the x component of the motion vector candidate of the reference block, MvL1[N][1] is the y component of the motion vector candidate of the second reference block, and POC L1 is the second reference picture to which the motion vector candidate of the second reference block belongs. is a POC of , and N is an index indicating a specific motion vector prediction candidate, which is 1 or more and M or less.
상기 수학식 4의 코스트 함수 f(N)를 이용하여 아래 수학식 5에 따라 코스트가 가장 큰 최종 후보 NF가 결정되고, 최종 후보 NF가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.A final candidate N F having the greatest cost is determined according to Equation 5 below using the cost function f(N) of Equation 4 above, and the final candidate N F may be determined as a motion vector of the second reference block.
[수학식 5] [Equation 5]
일 실시예에 따라, 상기 수학식 4의 코스트 함수 f(N)를 이용하여 수학식 5와 다르게 코스트가 가장 작은 최종 후보가 결정되고, 최종 후보가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.According to an embodiment, a final candidate having the smallest cost is determined using the cost function f(N) of Equation 4, unlike Equation 5, and the final candidate may be determined as a motion vector of the second reference block.
일 실시예에 따라, 참조 픽처가 1개인 경우에는 POC를 비교하는 항이 제거되어 아래 수학식 6과 같이 표현될 수 있다.According to an embodiment, when there is only one reference picture, the term for comparing the POC may be removed and expressed as in Equation 6 below.
[수학식 6][Equation 6]
일 실시예에 따라, 제2 참조 블록의 움직임 벡터 후보가 가리키는 제2 참조 픽처가 제1 참조 블록의 움직임 벡터가 가리키는 제1 참조 픽처로부터 거리가 가장 먼 순서로 후보가 선택될 수 있다. 또한, 거리가 가장 먼 제2 참조 픽처에 포함된 움직임 벡터 후보가 1개인 경우에는 해당 후보가 제2 참조 블록의 움직임 벡터로 선택될 수 있다.According to an embodiment, candidates may be selected in the order in which the second reference picture indicated by the motion vector candidate of the second reference block has the farthest distance from the first reference picture indicated by the motion vector of the first reference block. In addition, when there is only one motion vector candidate included in the second reference picture having the farthest distance, the corresponding candidate may be selected as the motion vector of the second reference block.
일 실시예에 따라, 제2 참조 블록의 움직임 벡터 후보가 가리키는 제2 참조 픽처가 제1 참조 블록의 움직임 벡터가 가리키는 제1 참조 픽처로부터 거리가 가장 가까운 순서로 후보가 선택될 수 있다. 또한, 거리가 가장 가까운 제2 참조 픽처에 포함된 움직임 벡터 후보가 1개인 경우에는 해당 후보가 제2 참조 블록의 움직임 벡터로 선택될 수 있다.According to an embodiment, candidates may be selected in the order in which the second reference picture indicated by the motion vector candidate of the second reference block has the shortest distance from the first reference picture indicated by the motion vector of the first reference block. In addition, when there is only one motion vector candidate included in the second reference picture having the shortest distance, the candidate may be selected as the motion vector of the second reference block.
일 실시예에 따라, 제2 참조 블록의 움직임 벡터 후보가 가리키는 제2 참조 픽처가 제1 참조 블록의 움직임 벡터가 가리키는 제1 참조 픽처로부터 거리가 가장 먼 제2 참조 픽처에 포함된 움직임 벡터 후보가 복수 개이면, 수학식 7에 따라 거리가 식별될 수 있다.According to an embodiment, a second reference picture indicated by the motion vector candidate of the second reference block is a motion vector candidate included in the second reference picture that is the furthest away from the first reference picture indicated by the motion vector of the first reference block. If there are a plurality, the distance may be identified according to Equation 7.
[수학식 7][Equation 7]
POCc는 현재 블록의 속한 현재 픽처의 POC이고, 제1 참조 블록의 움직임 벡터를 MvL0라 하면 MvL0[0]는 제1 참조 블록의 움직임 벡터의 x성분이고, MvL0[1]는 제1 참조 블록의 움직임 벡터의 y성분이고, POCL0는 제1 참조 블록이 속한 제1 참조 픽처의 POC이고, 제2 참조 블록의 움직임 벡터 후보를 MvL1[N]이라 하면, MvL1[N][0]는 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 먼 제2 참조 픽처에 속한 움직임 벡터 후보의 x성분이고, MvL1[N][1]는 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 먼 제2 참조 픽처에 속한 움직임 벡터 후보의 y성분이고, POCL1은 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 먼 제2 참조 픽처의 POC이고, N은 특정 움직임 벡터 예측 후보를 의미하는 인덱스로 2개 이상 M개 이하이다.POC c is the POC of the current picture belonging to the current block, and if the motion vector of the first reference block is MvL0, MvL0[0] is the x-component of the motion vector of the first reference block, and MvL0[1] is the first reference block is the y component of the motion vector of , POC L0 is the POC of the first reference picture to which the first reference block belongs, and the motion vector candidate of the second reference block is MvL1[N], MvL1[N][0] is 2 is an x-component of a motion vector candidate belonging to a second reference picture farthest from the first reference picture among reference pictures to which the reference block belongs, and MvL1[N][1] is among the reference pictures to which the second reference block belongs. A y-component of a motion vector candidate belonging to a second reference picture farthest from the first reference picture, and POC L1 is the second reference picture furthest from the first reference picture among reference pictures to which the second reference block belongs. POC, and N is an index meaning a specific motion vector prediction candidate, which is 2 or more and M or less.
상기 수학식 7의 코스트 함수 f(N)를 이용하여 아래 수학식 8에 따라 코스트가 가장 큰 최종 후보 NF가 결정되고, 최종 후보 NF가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.A final candidate N F having the greatest cost is determined according to Equation 8 below using the cost function f(N) of Equation 7, and the final candidate N F may be determined as a motion vector of the second reference block.
[수학식 8] [Equation 8]
일 실시예에 따라, 상기 수학식 7에서 MvL1[N][0]는 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 가까운 제2 참조 픽처에 속한 움직임 벡터 후보의 x성분이고, MvL1[N][1]는 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 가까운 제2 참조 픽처에 속한 움직임 벡터 후보의 y성분이고, POCL1은 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 가까운 제2 참조 픽처의 POC일 수 있다. 이에 따라, 상기 수학식 7의 코스트 함수 f(N)를 이용하여 수학식 8과 다르게 코스트가 가장 작은 최종 후보가 결정되고, 최종 후보가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.According to an embodiment, in Equation 7, MvL1[N][0] is an x-component of a motion vector candidate belonging to a second reference picture having the closest distance from the first reference picture among reference pictures to which the second reference block belongs. , MvL1[N][1] is a y-component of a motion vector candidate belonging to a second reference picture having the closest distance from the first reference picture among reference pictures to which the second reference block belongs, and POC L1 is the second reference block It may be the POC of a second reference picture that is closest to the first reference picture among the reference pictures to which it belongs. Accordingly, unlike Equation 8, a final candidate having the lowest cost is determined using the cost function f(N) of Equation 7, and the final candidate may be determined as a motion vector of the second reference block.
일 실시예에 따라, 아래 수학식 9와 같이, 제1 참조 블록의 움직임 벡터에 대해서 스케일링하여 거리가 식별될 수 있다. 이 경우, 제1 참조 블록의 움직임 벡터에 대해서 1번만 스케일링을 수행하면 되는 장점이 있다.According to an embodiment, as shown in Equation 9 below, the distance may be identified by scaling the motion vector of the first reference block. In this case, there is an advantage in that scaling is performed only once for the motion vector of the first reference block.
[수학식 9][Equation 9]
일 실시예에 따라, 상기 수학식 1의 맨하탄 거리 측정 방식 대신에 아래 수학식 10과 같이 유클리드 거리 측정 방식이 이용될 수 있다.According to an embodiment, the Euclidean distance measurement method as shown in Equation 10 below may be used instead of the Manhattan distance measurement method of
[수학식 10][Equation 10]
여기서, 제1 참조 블록의 움직임 벡터를 MvL0라 하면 MvL0[0]는 제1 참조 블록의 움직임 벡터의 x성분이고, MvL0[1]는 제1 참조 블록의 움직임 벡터의 y성분이고, 제2 참조 블록의 움직임 벡터 후보를 MvL1[N]이라 하면, MvL1[N][0]는 제2 참조 블록의 움직임 벡터 후보의 x성분이고, MvL1[N][1]는 제2 참조 블록의 움직임 벡터 후보의 y성분이다.Here, if the motion vector of the first reference block is MvL0, MvL0[0] is the x component of the motion vector of the first reference block, MvL0[1] is the y component of the motion vector of the first reference block, and the second reference block If the motion vector candidate of the block is MvL1[N], MvL1[N][0] is the x-component of the motion vector candidate of the second reference block, and MvL1[N][1] is the motion vector candidate of the second reference block. is the y component of
도 6은 본 개시의 일 실시예에 따른 비디오 복호화 방법의 순서도이다.6 is a flowchart of a video decoding method according to an embodiment of the present disclosure.
S610에서, 비디오 복호화 장치(700)는 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득할 수 있다.In S610, the
일 실시예에 따라, 현재 블록의 제1 움직임 벡터에 대한 정보는 부호화 측에서 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산을 통해 결정되어 비트스트림을 통해 전달된 것일 수 있다.According to an embodiment, information on the first motion vector of the current block may be determined through SATD (Sum of Transform Difference) or RDO (Rate Distortion Optimization) calculation at the encoding side and transmitted through the bitstream.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터에 대한 정보에 포함된 정보에 따라 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임 사이의 관계가 판단될 수 있다.According to an embodiment, between a first reference frame including the first reference block and a second reference frame including motion vector candidates of the second reference block according to information included in the motion vector information of the first reference block. relationship can be judged.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함하면, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 동일하다.According to an embodiment, when the information on the motion vector of the first reference block includes an index indicating one of motion vector prediction candidates for the first reference block and a motion vector difference value, the first reference block including the first reference block The reference frame and the second reference frame including motion vector candidates of the second reference block are the same.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함하면, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 상이하고, 제1 참조 프레임과 제2 참조 프레임의 시점은 현재 블록이 포함된 현재 프레임을 기준으로 동일한 시점이다.According to an embodiment, if the information on the motion vector of the first reference block includes a reference index indicating the first reference frame, an index indicating one of motion vector prediction candidates for the first reference block, and a motion vector difference value, The first reference frame including the first reference block and the second reference frame including motion vector candidates of the second reference block are different, and the viewpoints of the first reference frame and the second reference frame are the current frame including the current block. It is the same point in time based on .
일 실시예에 따라, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록이 속한 제1 참조 프레임의 방향, 즉 현재 프레임 기준으로 과거 시점인지 미래 시점인지를 나타내는 방향 인덱스, 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함하면, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 상이하고, 제1 참조 프레임과 제2 참조 프레임의 시점은 현재 블록이 포함된 현재 프레임을 기준으로 상이한 시점이다.According to an embodiment, the information on the motion vector of the first reference block includes the direction of the first reference frame to which the first reference block belongs, that is, a direction index indicating whether it is a past view or a future view based on the current frame, and the first reference frame. If a reference index indicating , an index indicating one of the motion vector prediction candidates for the first reference block, and a motion vector difference value are included, the motion vector candidates of the first reference frame including the first reference block and the second reference block are Included second reference frames are different, and viewpoints of the first reference frame and the second reference frame are different viewpoints based on the current frame including the current block.
S630에서, 비디오 복호화 장치(700)는 제1 움직임 벡터에 대한 정보에 기초하여 제1 움직임 벡터를 결정할 수 있다.In S630, the
S650에서, 비디오 복호화 장치(700)는 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정할 수 있다.In S650, the
S670에서, 비디오 복호화 장치(700)는 복수의 후보 예측 움직임 벡터들과 제1 움직임 벡터 사이의 거리를 기초로, 복수의 후보 예측 움직임 벡터들 중 하나를 제2 움직임 벡터로 결정할 수 있다.In operation S670, the
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that has the furthest distance from the 2 motion vectors.
일 실시예에 따라, 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들의 x 성분과 상기 제1 움직임 벡터의 y 성분을 이용하여 상기 거리가 식별될 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate motion vectors, an x component of the plurality of candidate motion vectors and a y of the first motion vector The distance can be identified using a component.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same. , the distance may be identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of the plurality of candidate predictive motion vectors, and the POC of the current block. there is.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different. , second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, the POC of the first reference frame, the POC of the second candidate motion vectors, and the distance may be identified by scaling the second candidate predictive motion vectors based on the POC of the current block.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임은 복수 개의 제2 참조 프레임인 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate motion vectors are a plurality of second reference frames, the POC of the first reference frame, the POC of the second candidate prediction motion vectors, and the POC of the current block The distance may be identified by scaling the second candidate predictive motion vectors based on .
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames A third reference frame may be determined, and the second motion vector may be determined based on a distance between a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames When a third reference frame is determined and the third candidate motion vector included in the third reference frame is one, the third candidate motion vector motion vector may be determined as the second motion vector.
S690에서, 비디오 복호화 장치(700)는 제1 움직임 벡터 및 제2 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다.In S690, the
도 7은 본 개시의 일 실시예에 따른 비디오 복호화 장치의 구성을 도시하는 도면이다.7 is a diagram showing the configuration of a video decoding apparatus according to an embodiment of the present disclosure.
도 7을 참고하면, 비디오 복호화 장치(700)는 수신부(710) 및 복호화부(720)를 포함할 수 있다.Referring to FIG. 7 , a
수신부(710) 및 복호화부(720)는 하나 이상의 프로세서로 구현될 수 있다. 수신부(710) 및 복호화부(720)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.The
도 7은 수신부(710) 및 복호화부(720)를 개별적으로 도시하고 있으나, 수신부(710) 및 복호화부(720)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 수신부(710) 및 복호화부(720)는 전용 프로세서로 구현될 수도 있고, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다. Although FIG. 7 shows the
수신부(710) 및 복호화부(720)는 복수의 프로세서로 구성될 수도 있다. 이 경우, 전용 프로세서들의 조합으로 구현될 수도 있고, AP, CPU, 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다. The receiving
수신부(710)는 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득한다. The receiving
일 실시예에 따라, 현재 블록의 제1 움직임 벡터에 대한 정보는 부호화 측에서 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산을 통해 결정되어 비트스트림을 통해 전달된 것일 수 있다According to an embodiment, information on the first motion vector of the current block may be determined through SATD (Sum of Transform Difference) or RDO (Rate Distortion Optimization) calculation at the encoding side and transmitted through the bitstream.
복호화부(720)는 제1 움직임 벡터에 대한 정보에 기초하여 제1 움직임 벡터를 결정한다.The
복호화부(720)는 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정한다.The
복호화부(720)는 복수의 후보 예측 움직임 벡터들과 제1 움직임 벡터 사이의 거리를 기초로, 복수의 후보 예측 움직임 벡터들 중 하나를 제2 움직임 벡터로 결정한다.The
복호화부(720)는 제1 움직임 벡터 및 제2 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정한다.The
도 8은 본 개시의 일 실시예에 따른 비디오 부호화 방법의 순서도이다.8 is a flowchart of a video encoding method according to an embodiment of the present disclosure.
S810에서, 비디오 부호화 장치(900)는 현재 블록의 제1 움직임 벡터에 대한 정보를 생성할 수 있다.In S810, the
일 실시예에 따라, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임 사이의 관계에 따라 제1 참조 블록의 움직임 벡터에 대한 정보에 포함되는 정보가 결정될 수 있다.According to an embodiment, according to a relationship between a first reference frame including the first reference block and a second reference frame including motion vector candidates of the second reference block, motion vectors of the first reference block are included in the information. information can be determined.
일 실시예에 따라, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 동일하면, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다.According to an embodiment, if the first reference frame including the first reference block and the second reference frame including motion vector candidates of the second reference block are the same, information on the motion vector of the first reference block is It includes an index indicating one of the motion vector prediction candidates for the reference block and a motion vector difference value.
일 실시예에 따라, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 상이하고, 제1 참조 프레임과 제2 참조 프레임의 시점이 현재 블록이 포함된 현재 프레임을 기준으로 동일한 시점이면, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다.According to an embodiment, the first reference frame including the first reference block and the second reference frame including motion vector candidates of the second reference block are different, and views of the first reference frame and the second reference frame are currently If it is the same view based on the current frame including the block, information on the motion vector of the first reference block includes a reference index indicating the first reference frame, an index indicating one of motion vector prediction candidates for the first reference block, and motion Contains vector difference values.
일 실시예에 따라, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 상이하고, 제1 참조 프레임과 제2 참조 프레임의 시점이 현재 블록이 포함된 현재 프레임을 기준으로 상이한 시점이면, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록이 속한 제1 참조 프레임의 방향, 즉 현재 프레임 기준으로 과거 시점인지 미래 시점인지를 나타내는 방향 인덱스, 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다.According to an embodiment, the first reference frame including the first reference block and the second reference frame including motion vector candidates of the second reference block are different, and views of the first reference frame and the second reference frame are currently If it is a different view based on the current frame including the block, the information on the motion vector of the first reference block indicates the direction of the first reference frame to which the first reference block belongs, that is, whether it is a past view or a future view based on the current frame. It includes a direction index, a reference index indicating the first reference frame, an index indicating one of motion vector prediction candidates for the first reference block, and a motion vector difference value.
S830에서, 비디오 부호화 장치(900)는 제1 움직임 벡터에 대한 정보에 기초하여 제1 움직임 벡터를 결정할 수 있다.In S830, the
S850에서, 비디오 부호화 장치(900)는 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정할 수 있다.In S850, the
S870에서, 비디오 부호화 장치(900)는 복수의 후보 예측 움직임 벡터들과 제1 움직임 벡터 사이의 거리를 기초로, 복수의 후보 예측 움직임 벡터들 중 제하나를 제2 움직임 벡터로 결정할 수 있다.In operation S870, the
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that has the furthest distance from the 2 motion vectors.
일 실시예에 따라, 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들의 x 성분과 상기 제1 움직임 벡터의 y 성분을 이용하여 상기 거리가 식별될 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate motion vectors, an x component of the plurality of candidate motion vectors and a y of the first motion vector The distance can be identified using a component.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector and a second reference frame of the plurality of candidate predicted motion vectors are different, and directions of the first reference frame and directions of the second reference frame are the same. , the distance may be identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of the plurality of candidate predictive motion vectors, and the POC of the current block. there is.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different. , second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, the POC of the first reference frame, the POC of the second candidate motion vectors, and the distance may be identified by scaling the second candidate predictive motion vectors based on the POC of the current block.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임은 복수 개의 제2 참조 프레임인 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate motion vectors are a plurality of second reference frames, the POC of the first reference frame, the POC of the second candidate prediction motion vectors, and the POC of the current block The distance may be identified by scaling the second candidate predictive motion vectors based on .
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames A third reference frame may be determined, and the second motion vector may be determined based on a distance between a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames When a third reference frame is determined and the third candidate motion vector included in the third reference frame is one, the third candidate motion vector motion vector may be determined as the second motion vector.
S890에서, 비디오 부호화 장치(900)는 제1 움직임 벡터 및 제2 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정함으로써 제1 움직임 벡터에 대한 정보를 부호화할 수 있다.In S890, the
일 실시예에 따라, 현재 블록의 제1 움직임 벡터에 대한 정보는 부호화 측에서 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산을 통해 결정되어 시그널링될 수 있다.According to an embodiment, information on the first motion vector of the current block may be determined and signaled through calculation of Sum of Transform Difference (SATD) or Rate Distortion Optimization (RDO) at the encoding side.
도 9는 본 개시의 일 실시예에 따른 비디오 부호화 장치의 구성을 도시하는 도면이다.9 is a diagram showing the configuration of a video encoding apparatus according to an embodiment of the present disclosure.
도 9를 참고하면, 비디오 부호화 장치(900)는 생성부(910) 및 부호화부(920)를 포함할 수 있다.Referring to FIG. 9 , a
생성부(910) 및 부호화부(920)는 하나 이상의 프로세서로 구현될 수 있다. 생성부(910) 및 부호화부(920)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.The
도 9는 생성부(910) 및 부호화부(920)를 개별적으로 도시하고 있으나, 생성부(910) 및 부호화부(920)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 생성부(910) 및 부호화부(920)는 전용 프로세서로 구현될 수도 있고, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다. Although FIG. 9 shows the
생성부(910) 및 부호화부(920)는 복수의 프로세서로 구성될 수도 있다. 이 경우, 전용 프로세서들의 조합으로 구현될 수도 있고, AP, CPU, 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다. The generating
생성부(910)는 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 생성한다. The
부호화부(920)는 제1 움직임 벡터에 대한 정보에 기초하여 제1 움직임 벡터를 결정한다.The
부호화부(920)는 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정한다.The
부호화부(920)는 복수의 후보 예측 움직임 벡터들과 제1 움직임 벡터 사이의 거리를 기초로, 복수의 후보 예측 움직임 벡터들 중 하나를 제2 움직임 벡터로 결정한다.The
부호화부(920)는 제1 움직임 벡터 및 제2 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정함으로써 제1 움직임 벡터에 대한 정보를 부호화한다.The
일 실시예에 따라, 현재 블록의 제1 움직임 벡터에 대한 정보는 부호화 측에서 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산을 통해 결정되어 시그널링될 수 있다.According to an embodiment, information on the first motion vector of the current block may be determined and signaled through calculation of Sum of Transform Difference (SATD) or Rate Distortion Optimization (RDO) at the encoding side.
일 실시예에 따른 비디오 복호화 방법은, 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하는 단계; 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하는 단계; 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계를 포함할 수 있다.A video decoding method according to an embodiment includes obtaining information on a first motion vector of a current block from a bitstream; determining the first motion vector based on information on the first motion vector; determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block; determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between the plurality of candidate motion vectors and the first motion vector; and determining a motion vector of the current block using the first motion vector and the second motion vector.
본 개시의 일 실시예에 따른 비디오 복호화 방법은 제2 움직임 벡터에 대한 정보에 대한 시그널링 없이 제1 움직임 벡터와 복수의 후보 예측 움직임 벡터들 사이의 거리에 기초하여 제2 움직임 벡터를 결정함으로써 움직임 보상이 1번만 수행되어 외부 메모리로부터 여러 참조 블록을 불러올 필요가 없어 복잡도 측면에서 장점을 가질 수 있다.A video decoding method according to an embodiment of the present disclosure performs motion compensation by determining a second motion vector based on a distance between a first motion vector and a plurality of candidate predicted motion vectors without signaling information on the second motion vector. Since this is performed only once, there is no need to load multiple reference blocks from external memory, which can have an advantage in terms of complexity.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that has the furthest distance from the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들의 x 성분과 상기 제1 움직임 벡터의 y 성분을 이용하여 상기 거리가 식별될 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate motion vectors, an x component of the plurality of candidate motion vectors and the first motion vector The distance can be identified using the y component.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same. , the distance may be identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of the plurality of candidate predictive motion vectors, and the POC of the current block. there is.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different. , second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, the POC of the first reference frame, the POC of the second candidate motion vectors, and the distance may be identified by scaling the second candidate predictive motion vectors based on the POC of the current block.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임은 복수 개의 제2 참조 프레임인 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate motion vectors are a plurality of second reference frames, the POC of the first reference frame, the POC of the second candidate prediction motion vectors, and the POC of the current block The distance may be identified by scaling the second candidate predictive motion vectors based on .
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames A third reference frame may be determined, and the second motion vector may be determined based on a distance between a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames When a third reference frame is determined and the third candidate motion vector included in the third reference frame is one, the third candidate motion vector motion vector may be determined as the second motion vector.
본 개시의 일 실시예에 따른 비디오 복호화 방법은, 제2 움직임 벡터에 대한 정보에 대한 시그널링 없이 제1 참조 프레임과 제2 참조 프레임 사이의 관계에 따라 제2 움직임 벡터를 결정함으로써 현재 블록에 대한 코딩 효율이 향상될 수 있다.A video decoding method according to an embodiment of the present disclosure performs coding for a current block by determining a second motion vector according to a relationship between a first reference frame and a second reference frame without signaling information on the second motion vector. Efficiency can be improved.
일 실시예에 따른 비디오 복호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하고, 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하고, 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하고, 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하고, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정할 수 있다.A video decoding apparatus according to an embodiment includes a memory for storing one or more instructions; and at least one processor operating according to the one or more instructions, wherein the at least one processor obtains information on a first motion vector of a current block from a bitstream, and provides information on the first motion vector. to determine the first motion vector, determine a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block, and determine the plurality of candidate predictive motion vectors and the first motion vector. Based on the distance between the motion vectors, one of the plurality of candidate predicted motion vectors is determined as the second motion vector, and the motion vector of the current block is determined using the first motion vector and the second motion vector. can decide
본 개시의 일 실시예에 따른 비디오 복호화 장치는 제2 움직임 벡터에 대한 정보에 대한 시그널링 없이 제1 움직임 벡터와 복수의 후보 예측 움직임 벡터들 사이의 거리에 기초하여 제2 움직임 벡터를 결정함으로써 움직임 보상이 1번만 수행되어 외부 메모리로부터 여러 참조 블록을 불러올 필요가 없어 복잡도 측면에서 장점을 가질 수 있다.A video decoding apparatus according to an embodiment of the present disclosure performs motion compensation by determining a second motion vector based on a distance between a first motion vector and a plurality of candidate predicted motion vectors without signaling information on the second motion vector. Since this is performed only once, there is no need to load multiple reference blocks from external memory, which can have an advantage in terms of complexity.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that has the furthest distance from the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들의 x 성분과 상기 제1 움직임 벡터의 y 성분을 이용하여 상기 거리가 식별될 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate motion vectors to be predicted, an x component of the plurality of candidate motion vectors to be predicted and the first motion vector The distance can be identified using the y component.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same. , the distance may be identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of the plurality of candidate predictive motion vectors, and the POC of the current block. there is.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different. , second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, the POC of the first reference frame, the POC of the second candidate motion vectors, and the distance may be identified by scaling the second candidate predictive motion vectors based on the POC of the current block.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임은 복수 개의 제2 참조 프레임인 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate motion vectors are a plurality of second reference frames, the POC of the first reference frame, the POC of the second candidate prediction motion vectors, and the POC of the current block The distance may be identified by scaling the second candidate predictive motion vectors based on .
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames A third reference frame may be determined, and the second motion vector may be determined based on a distance between a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames When a third reference frame is determined and the third candidate motion vector included in the third reference frame is one, the third candidate motion vector motion vector may be determined as the second motion vector.
본 개시의 일 실시예에 따른 비디오 복호화 장치는, 제2 움직임 벡터에 대한 정보에 대한 시그널링 없이 제1 참조 프레임과 제2 참조 프레임 사이의 관계에 따라 제2 움직임 벡터를 결정함으로써 현재 블록에 대한 코딩 효율이 향상될 수 있다.A video decoding apparatus according to an embodiment of the present disclosure performs coding for a current block by determining a second motion vector according to a relationship between a first reference frame and a second reference frame without signaling information on the second motion vector. Efficiency can be improved.
일 실시예에 따른 비디오 부호화 방법은, 현재 블록의 제1 움직임 벡터에 대한 정보를 생성하는 단계; 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하는 단계; 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화하는 단계를 포함할 수 있다.A video encoding method according to an embodiment includes generating information about a first motion vector of a current block; determining the first motion vector based on information on the first motion vector; determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block; determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between the plurality of candidate motion vectors and the first motion vector; and determining a motion vector of the current block by using the first motion vector and the second motion vector, and encoding information on the first motion vector.
본 개시의 일 실시예에 따른 비디오 부호화 방법은 제2 움직임 벡터에 대한 정보를 생성하지 않고, 제1 움직임 벡터와 복수의 후보 예측 움직임 벡터들 사이의 거리에 기초하여 제2 움직임 벡터를 결정함으로써 복호화 측에 전송되는 정보의 크기를 줄여 압축 효율이 향상될 수 있다.A video encoding method according to an embodiment of the present disclosure performs decoding by determining a second motion vector based on distances between a first motion vector and a plurality of candidate predicted motion vectors without generating information on the second motion vector. Compression efficiency can be improved by reducing the size of information transmitted to the side.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that has the furthest distance from the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들의 x 성분과 상기 제1 움직임 벡터의 y 성분을 이용하여 상기 거리가 식별될 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate motion vectors, an x component of the plurality of candidate motion vectors and the first motion vector The distance can be identified using the y component.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same. , the distance may be identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of the plurality of candidate predictive motion vectors, and the POC of the current block. there is.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different. , second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, the POC of the first reference frame, the POC of the second candidate motion vectors, and the distance may be identified by scaling the second candidate predictive motion vectors based on the POC of the current block.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임은 복수 개의 제2 참조 프레임인 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate motion vectors are a plurality of second reference frames, the POC of the first reference frame, the POC of the second candidate prediction motion vectors, and the POC of the current block The distance may be identified by scaling the second candidate predictive motion vectors based on .
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames A third reference frame may be determined, and the second motion vector may be determined based on a distance between a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames When a third reference frame is determined and the third candidate motion vector included in the third reference frame is one, the third candidate motion vector motion vector may be determined as the second motion vector.
본 개시의 일 실시예에 따른 비디오 부호화 방법은, 제2 움직임 벡터에 대한 정보에 대한 생성 없이 제1 참조 프레임과 제2 참조 프레임 사이의 관계에 따라 제2 움직임 벡터를 결정함으로써 현재 블록에 대한 코딩 효율이 향상될 수 있다.In a video encoding method according to an embodiment of the present disclosure, coding of a current block is performed by determining a second motion vector according to a relationship between a first reference frame and a second reference frame without generating information on the second motion vector. Efficiency can be improved.
일 실시예에 따른 비디오 부호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 현재 블록의 제1 움직임 벡터에 대한 정보를 생성하고, 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하고, 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하고, 상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하고, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화할 수 있다.A video encoding apparatus according to an embodiment includes a memory for storing one or more instructions; and at least one processor that operates according to the one or more instructions, wherein the at least one processor generates information about a first motion vector of a current block, and based on the information about the first motion vector, the at least one processor A first motion vector is determined, a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block is determined, and a distance between the plurality of candidate predictive motion vectors and the first motion vector is determined. Based on the distance of , one of the plurality of candidate predicted motion vectors is determined as the second motion vector, and a motion vector of the current block is determined using the first motion vector and the second motion vector to obtain a second motion vector. 1 Information on a motion vector can be encoded.
본 개시의 일 실시예에 따른 비디오 부호화 장치는 제2 움직임 벡터에 대한 정보를 생성하지 않고, 제1 움직임 벡터와 복수의 후보 예측 움직임 벡터들 사이의 거리에 기초하여 제2 움직임 벡터를 결정함으로써 복호화 측에 전송되는 정보의 크기를 줄여 압축 효율이 향상될 수 있다.A video encoding apparatus according to an embodiment of the present disclosure performs decoding by determining a second motion vector based on a distance between a first motion vector and a plurality of candidate predicted motion vectors without generating information on the second motion vector. Compression efficiency can be improved by reducing the size of information transmitted to the side.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that has the furthest distance from the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들의 x 성분과 상기 제1 움직임 벡터의 y 성분을 이용하여 상기 거리가 식별될 수 있다.According to an embodiment, when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate motion vectors, an x component of the plurality of candidate motion vectors and the first motion vector The distance can be identified using the y component.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.According to an embodiment, when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to the 2 motion vectors.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same. , the distance may be identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of the plurality of candidate predictive motion vectors, and the POC of the current block. there is.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different. , second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, the POC of the first reference frame, the POC of the second candidate motion vectors, and the distance may be identified by scaling the second candidate predictive motion vectors based on the POC of the current block.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임은 복수 개의 제2 참조 프레임인 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate motion vectors are a plurality of second reference frames, the POC of the first reference frame, the POC of the second candidate prediction motion vectors, and the POC of the current block The distance may be identified by scaling the second candidate predictive motion vectors based on .
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames A third reference frame may be determined, and the second motion vector may be determined based on a distance between a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.According to an embodiment, when the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames, a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames When a third reference frame is determined and the third candidate motion vector included in the third reference frame is one, the third candidate motion vector motion vector may be determined as the second motion vector.
본 개시의 일 실시예에 따른 비디오 부호화 장치는, 제2 움직임 벡터에 대한 정보에 대한 생성 없이 제1 참조 프레임과 제2 참조 프레임 사이의 관계에 따라 제2 움직임 벡터를 결정함으로써 현재 블록에 대한 코딩 효율이 향상될 수 있다.A video encoding apparatus according to an embodiment of the present disclosure performs coding for a current block by determining a second motion vector according to a relationship between a first reference frame and a second reference frame without generating information on the second motion vector. Efficiency can be improved.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as . For example, a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in this document may be provided by being included in a computer program product. Computer program products may be traded between sellers and buyers as commodities. A computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store or between two user devices (eg smartphones). It can be distributed (e.g., downloaded or uploaded) directly or online. In the case of online distribution, at least a part of a computer program product (eg, a downloadable app) is stored on a device-readable storage medium such as a memory of a manufacturer's server, an application store server, or a relay server. It can be temporarily stored or created temporarily.
Claims (15)
상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정(S630)하는 단계;
상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정(S650)하는 단계;
상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정(S670)하는 단계; 및
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정(S690)하는 단계를 포함하는, 비디오 복호화 방법.obtaining information on a first motion vector of a current block from a bitstream (S610);
determining the first motion vector based on information on the first motion vector (S630);
determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block (S650);
determining one of the plurality of candidate motion vectors as the second motion vector based on the distance between the plurality of candidate motion vectors and the first motion vector (S670); and
and determining a motion vector of the current block by using the first motion vector and the second motion vector (S690).
상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우,
상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터인, 비디오 복호화 방법.According to claim 1,
When the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predicted motion vectors,
The second motion vector is a candidate prediction motion vector having the furthest distance from the second motion vector among the plurality of candidate motion vectors.
상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우,
상기 복수의 후보 예측 움직임 벡터들의 x 성분과 상기 제1 움직임 벡터의 y 성분을 이용하여 상기 거리가 식별되는, 비디오 복호화 방법.According to claim 1 or 2,
When the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predicted motion vectors,
The video decoding method of claim 1 , wherein the distance is identified using an x component of the plurality of candidate motion vectors and a y component of the first motion vector.
상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우,
상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터인, 비디오 복호화 방법.According to any one of claims 1 to 3,
When a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors,
The second motion vector is a candidate prediction motion vector having the closest distance to the second motion vector among the plurality of candidate motion vectors.
상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우,
상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별되는, 비디오 복호화 방법.According to any one of claims 1 to 4,
When a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and directions of the first reference frame and directions of the second reference frame are the same,
video decoding, wherein the distance is identified by scaling the plurality of candidate predictive motion vectors based on a Picture Order Count (POC) of the first reference frame, the POC of the plurality of candidate predictive motion vectors, and the POC of the current block. method.
상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우,
상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고,
상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별되는, 비디오 복호화 방법.According to any one of claims 1 to 5,
When a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different,
Among the plurality of candidate motion vectors, second candidate prediction motion vectors having a direction different from that of the first motion vector are determined;
and the distance is identified by scaling the second candidate predictive motion vectors based on the POC of the first reference frame, the POC of the second candidate predictor motion vectors, and the POC of the current block.
상기 복수의 후보 예측 움직임 벡터들의 참조 프레임은 복수 개의 제2 참조 프레임인 경우,
상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별되는, 비디오 복호화 방법.According to any one of claims 1 to 6,
When the reference frames of the plurality of candidate predictive motion vectors are a plurality of second reference frames,
and the distance is identified by scaling the second candidate predictive motion vectors based on the POC of the first reference frame, the POC of the second candidate predictor motion vectors, and the POC of the current block.
상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우,
상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고,
상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정되는, 비디오 복호화 방법.According to any one of claims 1 to 7,
When the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames,
Among the plurality of second reference frames, a third reference frame having the closest distance from the first reference frame of the first motion vector is determined;
Wherein the second motion vector is determined based on a distance between a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
상기 복수의 후보 예측 움직임 벡터들의 참조 프레임이 복수 개의 제2 참조 프레임인 경우,
상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고,
상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우,
상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정되는, 비디오 복호화 방법.According to any one of claims 1 to 8,
When the reference frames of the plurality of candidate predicted motion vectors are a plurality of second reference frames,
Among the plurality of second reference frames, a third reference frame having the closest distance from the first reference frame of the first motion vector is determined;
When the third candidate predicted motion vector included in the third reference frame is one,
The video decoding method of claim 1 , wherein the third candidate predicted motion vector is determined as the second motion vector.
상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로세서는,
비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하고,
상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하고,
상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하고,
상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하고,
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는, 비디오 복호화 장치.a memory that stores one or more instructions; and
at least one processor operating in accordance with the one or more instructions;
The at least one processor,
obtaining information on a first motion vector of a current block from a bitstream;
determining the first motion vector based on information on the first motion vector;
determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block;
determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between the plurality of candidate motion vectors and the first motion vector;
and determining a motion vector of the current block by using the first motion vector and the second motion vector.
상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우,
상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터인, 비디오 복호화 장치.According to claim 10,
When the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predicted motion vectors,
The second motion vector is a candidate prediction motion vector having the furthest distance from the second motion vector among the plurality of candidate motion vectors.
상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우,
상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터인, 비디오 복호화 장치.According to claim 10 or 11,
When a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors,
The second motion vector is a candidate predictive motion vector having the closest distance to the second motion vector among the plurality of candidate predictive motion vectors.
상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정(S830)하는 단계;
상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정(S850)하는 단계;
상기 복수의 후보 예측 움직임 벡터들과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정(S870)하는 단계; 및
상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화(S890)하는 단계를 포함하는, 비디오 부호화 방법.Generating information on a first motion vector of a current block (S810);
determining the first motion vector based on information on the first motion vector (S830);
determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block (S850);
determining one of the plurality of candidate motion vectors as the second motion vector based on the distance between the plurality of candidate motion vectors and the first motion vector (S870); and
and encoding information on the first motion vector by determining a motion vector of the current block using the first motion vector and the second motion vector (S890).
상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우,
상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터인, 비디오 부호화 방법.According to claim 13,
When the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predicted motion vectors,
The video encoding method of claim 1 , wherein the second motion vector is a candidate prediction motion vector having the furthest distance from the second motion vector among the plurality of candidate motion vectors.
상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우,
상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제2 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터인, 비디오 부호화 방법.
The method of claim 13 or 14,
When a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors,
The second motion vector is a candidate predictive motion vector having the closest distance to the second motion vector among the plurality of candidate predictive motion vectors.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/KR2022/017321 WO2023085704A1 (en) | 2021-11-09 | 2022-11-07 | Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus |
| US17/984,063 US20230145364A1 (en) | 2021-11-09 | 2022-11-09 | Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020210153307 | 2021-11-09 | ||
| KR20210153307 | 2021-11-09 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20230067502A true KR20230067502A (en) | 2023-05-16 |
Family
ID=86546353
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020220118151A Pending KR20230067502A (en) | 2021-11-09 | 2022-09-19 | Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR20230067502A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025084867A1 (en) * | 2023-10-18 | 2025-04-24 | 주식회사 윌러스표준기술연구소 | Video signal processing method and device therefor |
-
2022
- 2022-09-19 KR KR1020220118151A patent/KR20230067502A/en active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025084867A1 (en) * | 2023-10-18 | 2025-04-24 | 주식회사 윌러스표준기술연구소 | Video signal processing method and device therefor |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110809887B (en) | Method and apparatus for motion vector modification for multi-reference prediction | |
| JP5859691B2 (en) | Motion vector predictive encoding method, predictive encoding apparatus, predictive encoding program, motion vector predictive decoding method, predictive decoding apparatus, and predictive decoding program | |
| WO2017148345A1 (en) | Method and apparatus of video coding with affine motion compensation | |
| US11917157B2 (en) | Image encoding/decoding method and device for performing PROF, and method for transmitting bitstream | |
| US9473787B2 (en) | Video coding apparatus and video coding method | |
| US12166969B2 (en) | Method and device for subpicture-based image encoding/decoding, and method for transmitting bitstream | |
| US11539941B2 (en) | Image decoding method for deriving predicted sample by using merge candidate and device therefor | |
| KR20200038541A (en) | Image decoding method and apparatus based on motion prediction on a sub-block basis in an image coding system | |
| CN114208171A (en) | Image decoding method and apparatus for deriving weight index information for generating predicted samples | |
| KR102553665B1 (en) | Inter prediction method and apparatus in video coding system | |
| KR20230067502A (en) | Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus | |
| US20230145364A1 (en) | Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus | |
| KR102513585B1 (en) | Inter prediction method and apparatus in video processing system | |
| US11330269B2 (en) | Moving image coding device, moving image coding method and moving image coding program | |
| US11831900B2 (en) | Video encoding/decoding using detected pattern of pixel intensity differences | |
| RU2833007C2 (en) | Method and apparatus for encoding/decoding images based on subframes and method for transmitting bitstream | |
| JP2013077865A (en) | Image encoding apparatus, image decoding apparatus, image encoding method and image decoding method | |
| JP2013121163A (en) | Image encoding device, image encoding method, and image encoding program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20220919 |
|
| PG1501 | Laying open of application |