KR20210125443A - Method of decoding a video to obtain a motion vector and an apparatus thereof, method of encoding a video to obtain a motion vector and an apparatus thereof - Google Patents
Method of decoding a video to obtain a motion vector and an apparatus thereof, method of encoding a video to obtain a motion vector and an apparatus thereof Download PDFInfo
- Publication number
- KR20210125443A KR20210125443A KR1020210046099A KR20210046099A KR20210125443A KR 20210125443 A KR20210125443 A KR 20210125443A KR 1020210046099 A KR1020210046099 A KR 1020210046099A KR 20210046099 A KR20210046099 A KR 20210046099A KR 20210125443 A KR20210125443 A KR 20210125443A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- collocated
- motion vector
- coding unit
- current block
- Prior art date
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/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/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/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/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- 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/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
Description
본 개시는 영상의 부호화 및 복호화 분야에 관한 것이다. 보다 구체적으로, 본 개시는 인터 예측 모드에 따라 비디오를 부호화 또는 복호화하는 방법 및 장치에 관한 것이다.The present disclosure relates to the field of encoding and decoding of an image. More specifically, the present disclosure relates to a method and apparatus for encoding or decoding a video according to an inter prediction mode.
종래의 압축방식의 경우, 픽쳐에 포함되는 부호화 단위의 크기를 결정하는 과정에서 분할할지 여부를 결정한 후 획일적으로 4개의 동일한 크기의 부호화 단위들로 분할하는 재귀적 분할 과정을 통해 정사각형의 부호화 단위들을 결정하였다. 하지만 최근 고해상도의 영상에 대하여 정사각형이라는 획일적인 형태의 부호화 단위 이용에 의해 야기되는 복원 영상의 화질열화가 문제되고 있다. 따라서, 고해상도 영상을 다양한 형태의 부호화 단위로 분할하는 방법 및 장치들이 제안되고 있다.In the case of the conventional compression method, after determining whether to split in the process of determining the size of the coding unit included in the picture, the square coding units are divided into four coding units of the same size through a recursive splitting process that is uniformly divided into four coding units of the same size. decided. However, in recent years, there has been a problem in the image quality deterioration of the reconstructed image caused by the use of a uniform coding unit of a square shape for a high-resolution image. Accordingly, methods and apparatuses for dividing a high-resolution image into various types of coding units have been proposed.
본 개시는 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치에 관한 것으로, 인터 예측 모드에서 콜로케이티드 블록의 움직임 벡터를 획득하기 위한 방법을 제공한다.The present disclosure relates to a video decoding method and apparatus, and a video encoding method and apparatus, and provides a method for obtaining a motion vector of a collocated block in an inter prediction mode.
본 개시에서 제공하는 일 실시예에 따른 비디오 복호화 방법은, 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하는 단계; 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계; 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계; 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다. A video decoding method according to an embodiment provided in the present disclosure includes: obtaining first coordinates of a collocated block pointing to a point separated by a predetermined distance from an upper-left point of a current block; determining that second coordinates corresponding to the upper-left point of the MxN-sized block including the first coordinates of the collocated block become the coordinates of the collocated sample; Based on the prediction mode of the collocated coding unit including the first coordinate of the collocated block in the collocated picture, the collocated using the motion vector of the block corresponding to the coordinate of the collocated sample is used. obtaining a motion vector; and generating the prediction block of the current block using the motion vector of the current block determined using the collocated motion vector.
일 실시예에 따라, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌측상단 지점에 해당하는 제2 좌표가 상기 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계는, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 서브블록들 중에서, 상기 제2 좌표를 포함하는 서브블록의 좌표를 상기 콜로케이티드 블록의 좌표가 되도록 결정하는 단계를 포함하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 제2 좌표를 포함하는 서브블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 상기 현재 블록의 시간적 예측 움직임 벡터를 획득하는 단계를 포함할 수 있다. According to an embodiment, the step of determining that the second coordinate corresponding to the upper left point of the MxN block including the first coordinate of the collocated block becomes the coordinate of the collocated sample comprises: determining a coordinate of a subblock including the second coordinate from among subblocks of a collocated coding unit including the first coordinate of the collocated block to be the coordinate of the collocated block; The generating of the prediction block of the current block using the motion vector of the current block determined using the kated motion vector may include a motion vector of a collocated block corresponding to the coordinates of a subblock including the second coordinates. and obtaining a temporal prediction motion vector of the current block using
일 실시예에 따라 상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는, 상기 콜로케이티드 부호화 단위가 인트라 예측 모드, IBC (intra block copy) 예측 모드 또는 팔레트 예측 모드로 복호화되지 않은 경우, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스를 획득하는 단계를 포함할 수 있다. A motion vector of a block corresponding to the coordinates of the collocated sample, based on a prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture according to an embodiment The acquiring of the collocated motion vector using obtaining a collocated motion vector using a motion vector of a block corresponding to can
일 실시예에 따라 상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는, 상기 콜로케이티드 부호화 단위의 참조 픽쳐와 상기 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐이거나 상기 콜로케이티드 부호화 단위의 참조 픽쳐와 상기 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐가 아닌 경우에, 상기 콜로케이티드 부호화 단위를 포함하는 슬라이스의 참조 픽쳐 리스트 세트를 이용하여, 상기 콜로케이티드 움직임 벡터를 스케일링하는 단계를 포함할 수 있다. A motion vector of a block corresponding to the coordinates of the collocated sample, based on a prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture according to an embodiment The acquiring of the collocated motion vector using The method may include scaling the collocated motion vector by using a reference picture list set of a slice including the collocated coding unit when both reference pictures are not long-term reference pictures.
일 실시예에 따라 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌측상단 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계는, M이 2의 m승이고 N인 2의 n승인 경우에, 상기 제1 좌표의 x 좌표를 m만큼 우측 비트시프트한 수를 다시 m만큼 좌측 비트시프트함으로써 상기 제2 좌표의 x 좌표를 획득하고, 상기 제1 좌표의 y 좌표를 n만큼 우측 비트시프트한 수를 다시 n만큼 좌측 비트시프트함으로써 상기 제2 좌표의 y 좌표를 획득하는 단계를 포함할 수 있다. According to an embodiment, the step of determining that the second coordinate corresponding to the upper left point of the block of size MxN including the first coordinate of the collocated block becomes the coordinate of the collocated sample includes: M equal to 2 m In the case of the nth power of 2, which is the power of N, the x coordinate of the second coordinate is obtained by bit-shifting the x-coordinate of the first coordinate to the right by m by m again, and the x-coordinate of the first coordinate is and obtaining the y-coordinate of the second coordinate by bit-shifting the y-coordinate by right bit-shifted by n again by n.
일 실시예에 따라 상기 MxN 크기가 8x8일 수 있다. According to an embodiment, the MxN size may be 8x8.
일 실시예에 따라 상기 콜로케이티드 블록이 우하측 콜로케이티드 블록(bottom-right collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록에 대각 방향으로 인접하는 외부 샘플의 우하측 지점의 좌표와 동일할 수 있다. According to an embodiment, when the collocated block is a bottom-right collocated block, the first coordinates are the coordinates of the lower-right point of the external sample diagonally adjacent to the current block and may be the same.
일 실시예에 따라 상기 콜로케이티드 블록이 하측 콜로케이티드 블록(bottom collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다. According to an embodiment, when the collocated block is a bottom collocated block, the first coordinate is the lower left point or the lower right point of the current block of an external sample adjacent to the y-axis direction. It can be the same as the coordinates.
일 실시예에 따라 상기 콜로케이티드 블록이 중앙 콜로케이티드 블록(central collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 중앙 지점의 좌표와 동일할 수 있다. According to an embodiment, when the collocated block is a central collocated block, the first coordinates may be the same as coordinates of a central point of the current block.
일 실시예에 따라 상기 콜로케이티드 블록이 사이드 콜로케이티드 블록(side collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 x축 방향으로 인접하는 외부 샘플 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다. According to an embodiment, when the collocated block is a side collocated block, the first coordinate is an external sample or a lower right point adjacent to the lower left point of the current block in the x-axis direction. It may be the same as the coordinates of an external sample adjacent in the y-axis direction.
일 실시예에 따라 상기 콜로케이티드 블록이 좌하측 콜로케이티드 블록(bottom-left collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다. According to an embodiment, when the collocated block is a bottom-left collocated block, the first coordinates are the coordinates of an external sample diagonally adjacent to the lower-left point of the current block and may be the same.
일 실시예에 따라 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는, 상기 현재 블록이 머지 모드로 인터 예측될 때, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 상기 움직임 벡터를 이용하여 상기 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 획득하는 단계를 포함하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 상기 콜로케이티드 움직임 벡터를 가지는 상기 블록에 대응하는 시간적 머지 후보를 포함하는 상기 현재 블록의 머지 후보 리스트를 생성하는 단계; 및 상기 머지 후보 리스트 중에서 결정된 상기 현재 블록의 머지 후보에 대응하는 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 움직임 벡터를 결정하는 단계를 포함할 수 있다. According to an embodiment, the obtaining of a collocated motion vector using a motion vector of a block corresponding to the coordinates of the collocated sample may include: when the current block is inter-predicted in a merge mode, the collocated sample obtaining the collocated motion vector and the availability of the collocated motion vector by using the motion vector and the motion vector of the block corresponding to the coordinates of The generating of the prediction block of the current block by using the motion vector of the current block includes selecting a temporal merge candidate corresponding to the block having the collocated motion vector when the collocated motion vector is available. generating a merge candidate list of the current block including; and determining a predicted motion vector of the current block by using a motion vector of a block corresponding to the merge candidate of the current block determined from the merge candidate list.
일 실시예에 따라 상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는, 상기 현재 블록의 MVP 모드로 인터 예측될 때, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 상기 움직임 벡터를 이용하여 상기 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 획득하는 단계를 포함하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 상기 콜로케이티드 움직임 벡터를 가지는 상기 블록에 대응하는 시간적 움직임 벡터 예측 후보를 포함하는 상기 현재 블록의 MVP 후보 리스트를 생성하는 단계; 및 상기 MVP 후보 리스트 중에서 결정된 상기 현재 블록의 예측 움직임 벡터 후보에 대응하는 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 움직임 벡터를 결정하는 단계를 포함할 수 있다. A motion vector of a block corresponding to the coordinates of the collocated sample, based on a prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture according to an embodiment The step of obtaining the collocated motion vector using A method comprising: obtaining a coordinated motion vector and availability of the collocated motion vector; generating a predictive block of the current block using the motion vector of the current block determined using the collocated motion vector when the collocated motion vector is available, generating an MVP candidate list of the current block including a temporal motion vector prediction candidate corresponding to the block having the collocated motion vector; and determining the predicted motion vector of the current block by using a motion vector of a block corresponding to the predicted motion vector candidate of the current block determined from the MVP candidate list.
본 개시에서 제공하는 일 실시예에 따른 비디오 복호화 장치는 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하고, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하고, 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 획득하는 인터 예측부; 및 상기 현재 블록의 움직임 벡터를 이용하여 결정된 상기 현재 블록의 예측 블록을 이용하여 상기 현재 블록의 복원 블록을 생성하는 복원부를 포함할 수 있다.The video decoding apparatus according to an embodiment provided in the present disclosure obtains the first coordinates of the collocated block pointing to a point separated by a predetermined distance from the upper-left point of the current block, and obtains the first coordinates of the collocated block. Collocated encoding including the first coordinate of the collocated block in the collocated picture is determined so that the second coordinate corresponding to the upper left point of the included MxN block becomes the coordinate of the collocated sample Based on the unit prediction mode, a collocated motion vector is obtained using a motion vector of a block corresponding to the coordinates of the collocated sample, and a motion vector of the current block determined using the collocated motion vector an inter prediction unit to obtain and a reconstruction unit configured to generate a reconstructed block of the current block by using the prediction block of the current block determined using the motion vector of the current block.
본 개시에서 제공하는 일 실시예에 따른 비디오 부호화 방법은, 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하는 단계; 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계; 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계; 및 상기 콜로케이티드 움직임 벡터에 기초하여 상기 현재 블록의 후보 리스트를 생성하고, 상기 후보 리스트를 이용하여 상기 현재 블록의 움직임 벡터를 부호화하는 단계를 포함할 수 있다.A video encoding method according to an embodiment provided in the present disclosure includes: obtaining first coordinates of a collocated block pointing to a point separated by a predetermined distance from an upper-left point of a current block; determining that second coordinates corresponding to the upper-left point of the MxN-sized block including the first coordinates of the collocated block become the coordinates of the collocated sample; Based on the prediction mode of the collocated coding unit including the first coordinate of the collocated block in the collocated picture, the collocated using the motion vector of the block corresponding to the coordinate of the collocated sample is used. obtaining a motion vector; and generating a candidate list of the current block based on the collocated motion vector, and encoding the motion vector of the current block using the candidate list.
본 개시에서 제공하는 비디오 복호화 방법 또는 장치, 비디오 부호화 방법 또는 장치에 따르면, 콜로케이티드 픽쳐 중 콜로케이티드 블록에 대해 서브블록 기반의 인터 예측이 수행된 경우, 현재 블록에 대해 서브블록 기반의 인터 예측 모드가 아닌 모드에 따라 인터 예측을 수행하더라도, 콜로케이티드 샘플의 위치에 가장 가까운 서브블록의 움직임 벡터가 획득될 수 있으므로, 현재 블록에 대한 인터 예측 결과의 정확성이 높아질 수 있다.According to the video decoding method or apparatus or the video encoding method or apparatus provided in the present disclosure, when subblock-based inter prediction is performed on a collocated block among collocated pictures, a subblock-based inter prediction is performed with respect to a current block. Even if inter prediction is performed according to a mode other than the prediction mode, the motion vector of the subblock closest to the position of the collocated sample may be obtained, so that the accuracy of the inter prediction result for the current block may be increased.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일 실시예에 따라 영상 복호화 장치의 개략적인 블록도를 도시한다.
도 2는 일 실시예에 따라 영상 복호화 방법의 흐름도를 도시한다.
도 3은 일 실시예에 따라 영상 복호화 장치가 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.
도 4는 일 실시예에 따라 영상 복호화 장치가 비-정사각형의 형태인 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.
도 5는 일 실시예에 따라 영상 복호화 장치가 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나에 기초하여 부호화 단위를 분할하는 과정을 도시한다.
도 6은 일 실시예에 따라 영상 복호화 장치가 홀수개의 부호화 단위들 중 소정의 부호화 단위를 결정하기 위한 방법을 도시한다.
도 7은 일 실시예에 따라 영상 복호화 장치가 현재 부호화 단위를 분할하여 복수개의 부호화 단위들을 결정하는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.
도 8은 일 실시예에 따라 영상 복호화 장치가 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것임을 결정하는 과정을 도시한다.
도 9는 일 실시예에 따라 영상 복호화 장치가 제1 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.
도 10은 일 실시예에 따라 영상 복호화 장치가 제1 부호화 단위가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.
도 11은 일 실시예에 따라 분할 형태 모드 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 영상 복호화 장치가 정사각형 형태의 부호화 단위를 분할하는 과정을 도시한다.
도 12는 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.
도 13은 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위의 심도가 결정되는 과정을 도시한다.
도 14은 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.
도 15는 일 실시예에 따라 픽쳐에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.
도 16은 영상 부호화 및 복호화 시스템의 블록도를 나타낸 도면이다.
도 17은 일 실시예에 따른 비디오 복호화 장치의 블록도를 도시한다.
도 18은 일 실시예에 따른 비디오 복호화 방법의 흐름도를 도시한다.
도 19은 일 실시예에 따른 비디오 부호화 장치의 블록도를 도시한다.
도 20은 일 실시예에 따른 비디오 부호화 방법의 흐름도를 도시한다.
도 21은 현재 블록의 우하측 위치에 대응하는 콜로케이티드 블록의 움직임 벡터 정보를 획득할 수 있는 부호화 단위의 위치를 표시한다.
도 22은 도 21의 동작을 수행하기 위한 좌표 설정 방법이 기술된 표준 문서의 초안을 도시한다.
도 23은 콜로케이티드 블록이 서브블록 단위로 결정되는 경우에, 콜로케이티드 블록의 위치를 결정하는 방법을 도시한다.
도 24은 도 21의 동작에 따라 콜로케이티드 블록의 움직임 벡터 정보를 부호화 단위 단위로 획득하기 위한 버퍼 저장 방법을 도시한다.
도 25은, 도 23에 따라 콜로케이티드 블록의 움직임 벡터 관련 정보를 서브블록 단위로 획득하기 위한 버퍼 저장 방법의 일 실시예를 도시한다.
도 26은 도 23에 따라 콜로케이티드 블록의 움직임 벡터 정보를 서브블록 단위로 저장하기 위한 버퍼 저장 방법의 다른 실시예를 도시한다.
도 27 및 28은 도 25의 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하는 인터 예측이 기술된 표준 문서 초안의 수정안을 도시한다.
도 29은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 시간적 예측 움직임 벡터(temporal luma motion vector prediction)를 도출하도록 기술된 표준 문서를 도시한다.
도 30은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 서브블록 기반의 시간적 머지 베이스 움직임 데이터(subblock-based temporal merging base motion data)를 도출하도록 기술된 표준 문서을 도시한다.
도 31은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 우하측 컨트롤 포인트 움직임 벡터 정보(bottom-right control point motion vector)를 획득하기 위해, 어파인 컨트롤 포인트 움직임 벡터 머지 후보(affine control point motion vector merging candidates)를 도출하도록 기술된 표준 문서을 도시한다.
도 32 및 33은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 시간적 머지 후보(temporal merge candidates)를 도출하도록 기술된 표준 문서를 도시한다.
도 34는 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 좌하측 컨트롤 포인트 움직임 벡터 정보(bottom-left control point motion vector)를 획득하기 위해, 어파인 컨트롤 포인트 움직임 벡터 머지 후보(affine control point motion vector merging candidates)를 도출하도록 기술된 표준 문서를 도시한다.In order to more fully understand the drawings cited herein, a brief description of each drawing is provided.
1 is a schematic block diagram of an image decoding apparatus according to an embodiment.
2 is a flowchart of an image decoding method according to an embodiment.
3 is a diagram illustrating a process in which an image decoding apparatus determines at least one coding unit by dividing a current coding unit, according to an embodiment.
4 is a diagram illustrating a process in which an image decoding apparatus determines at least one coding unit by dividing a coding unit having a non-square shape, according to an exemplary embodiment.
5 is a diagram illustrating a process in which an image decoding apparatus divides a coding unit based on at least one of block shape information and division shape mode information, according to an embodiment.
FIG. 6 illustrates a method for determining, by an image decoding apparatus, a predetermined coding unit from among an odd number of coding units, according to an embodiment.
7 illustrates an order in which a plurality of coding units are processed when an image decoding apparatus determines a plurality of coding units by dividing a current coding unit according to an embodiment.
8 illustrates a process of determining, by the image decoding apparatus, that the current coding unit is to be split into an odd number of coding units when the coding units cannot be processed in a predetermined order, according to an embodiment.
9 is a diagram illustrating a process in which an image decoding apparatus determines at least one coding unit by dividing a first coding unit, according to an embodiment.
10 is a diagram illustrating a form in which a second coding unit can be split when a non-square second coding unit determined by splitting a first coding unit by an image decoding apparatus satisfies a predetermined condition according to an embodiment; show that
11 illustrates a process in which the image decoding apparatus splits the square-shaped coding unit when the division mode information cannot indicate that the division form mode information is divided into four square-shaped coding units, according to an embodiment.
12 is a diagram illustrating that a processing order between a plurality of coding units may vary according to a division process of a coding unit, according to an embodiment.
13 illustrates a process of determining a depth of a coding unit according to a change in a form and size of a coding unit when a coding unit is recursively split to determine a plurality of coding units, according to an embodiment.
FIG. 14 illustrates a depth that may be determined according to shapes and sizes of coding units and a part index (hereinafter referred to as PID) for classifying coding units, according to an embodiment.
15 illustrates that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture, according to an embodiment.
16 is a diagram illustrating a block diagram of an image encoding and decoding system.
17 is a block diagram of a video decoding apparatus according to an embodiment.
18 is a flowchart of a video decoding method according to an embodiment.
19 is a block diagram of a video encoding apparatus according to an embodiment.
20 is a flowchart of a video encoding method according to an embodiment.
21 illustrates a position of a coding unit from which motion vector information of a collocated block corresponding to a lower right position of a current block can be obtained.
22 shows a draft of a standard document in which a method of setting coordinates for performing the operation of FIG. 21 is described.
23 illustrates a method of determining a position of a collocated block when the collocated block is determined in units of subblocks.
24 illustrates a buffer storage method for acquiring motion vector information of a collocated block in units of coding units according to the operation of FIG. 21 .
FIG. 25 shows an embodiment of a buffer storage method for acquiring motion vector related information of a collocated block in units of subblocks according to FIG. 23 .
FIG. 26 shows another embodiment of a buffer storage method for storing motion vector information of a collocated block in units of subblocks according to FIG. 23 .
27 and 28 show a revised draft of a standard document in which inter prediction using motion vector information of a collocated block obtained in units of subblocks is described according to the embodiment of FIG. 25 .
29 illustrates a standard document described for deriving a temporal prediction motion vector (temporal luma motion vector prediction) using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment.
30 is a description of deriving subblock-based temporal merging base motion data using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment. Shows standard documents.
31 is an affine control for obtaining bottom-right control point motion vector information using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment. Shows a standard document describing how to derive affine control point motion vector merging candidates.
32 and 33 show a standard document described for deriving temporal merge candidates using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment.
34 is an affine control for obtaining bottom-left control point motion vector information using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment. Shows a standard document describing how to derive affine control point motion vector merging candidates.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present disclosure can make various changes and can have various embodiments, specific embodiments are illustrated in the drawings and will be described in detail through the 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 various embodiments.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the embodiment, 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 thereof will be omitted. In addition, numbers (eg, first, second, etc.) used in the description process of the specification are only identifiers for distinguishing one component from other components.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in this specification, when a component is referred to as "connected" or "connected" with another component, the component may be directly connected or directly connected to the other component, but in particular It should be understood that, unless there is a description to the contrary, it may be connected or connected through another element in the middle.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, in the present specification, components expressed as '~ unit (unit)', 'module', etc. are two or more components combined into one component, or two or more components for each more subdivided 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 the main functions that each component is responsible for, and some of the main functions of each of the components are different It goes without saying that it may be performed exclusively by the component.
또한, 본 명세서에서, '영상(image)' 또는 '픽쳐'는 비디오의 정지영상이거나 동영상, 즉 비디오 그 자체를 나타낼 수 있다.Also, in this specification, an 'image' or 'picture' may represent a still image of a video or a moving picture, that is, a video itself.
또한, 본 명세서에서 '샘플'은, 영상의 샘플링 위치에 할당된 데이터로서 프로세싱 대상이 되는 데이터를 의미한다. 예를 들어, 공간영역의 영상에서 화소값, 변환 영역 상의 변환 계수들이 샘플들일 수 있다. 이러한 적어도 하나의 샘플들을 포함하는 단위를 블록이라고 정의할 수 있다.Also, in the present specification, a 'sample' refers to data assigned to a sampling position of an image and to be processed. For example, pixel values in an image in the spatial domain and transform coefficients in the transform domain may be samples. A unit including at least one such sample may be defined as a block.
또한, 본 명세서에서, '현재 블록(Current Block)'은, 부호화 또는 복호화하고자 하는 현재 영상의 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위의 블록을 의미할 수 있다.Also, in the present specification, a 'current block' may mean a block of a maximum coding unit, a coding unit, a prediction unit, or a transformation unit of a current image to be encoded or decoded.
또한, 본 명세서에서, 어느 움직임 벡터가 리스트 0 방향이라는 것은, 리스트 0에 포함된 참조 픽쳐 내 블록을 가리키기 위해 이용되는 움직임 벡터라는 것을 의미할 수 있고, 어느 움직임 벡터가 리스트 1 방향이라는 것은, 리스트 1에 포함된 참조 픽쳐 내 블록을 가리키기 위해 이용되는 움직임 벡터라는 것을 의미할 수 있다. 또한, 어느 움직임 벡터가 단방향이라는 것은 리스트 0 또는 리스트 1에 포함된 참조 픽쳐 내 블록을 가리키기 위해 이용되는 움직임 벡터라는 것을 의미할 수 있고, 어느 움직임 벡터가 양방향이라는 것은 움직임 벡터가 리스트 0 방향의 움직임 벡터와 리스트 1 방향의 움직임 벡터를 포함한다는 것을 의미할 수 있다.Also, in the present specification, that a motion vector is in the
또한, 본 명세서에서, 블록의 '바이너리 분할(binary split)'이란 블록의 너비 또는 높이가 절반인 2개의 하위 블록이 생성되도록 하는 분할을 의미한다. 구체적으로, 현재 블록에 '바이너리 수직 분할'이 수행되면, 현재 블록의 너비의 절반 지점에서 수직 방향(세로 방향)으로 분할이 수행되므로, 현재 블록의 너비의 절반인 너비를 가지고 현재 블록의 높이와 동일한 높이를 가지는 2개의 하위 블록이 생성될 수 있다. 현재 블록에 '바이너리 수평 분할'이 수행되면, 현재 블록의 높이의 절반 지점에서 수평 방향(가로 방향)으로 분할이 수행되므로, 현재 블록의 높이의 절반인 높이를 가지고 현재 블록의 너비는 동일한 너비를 가지는 2개의 하위 블록이 생성될 수 있다.Also, in the present specification, the term 'binary split' of a block refers to a split such that two sub-blocks having half the width or height of the block are generated. Specifically, when 'binary vertical division' is performed on the current block, the division is performed in the vertical direction (vertical direction) at half the width of the current block. Two sub-blocks having the same height can be created. When 'binary horizontal division' is performed on the current block, the division is performed in the horizontal direction (horizontal direction) at half the height of the current block. A branch can create two sub-blocks.
또한, 본 명세서에서, 블록의 '터너리 분할(ternary split)'이란 블록의 너비 또는 높이가 1:2:1 비율로 분할되어 3개의 하위 블록이 생성되도록 하는 분할을 의미한다. 구체적으로, 현재 블록에 '터너리 수직 분할'이 수행되면, 현재 블록의 너비의 1:2:1 비율 지점에서 수직 방향(세로 방향)으로 분할이 수행되므로, 현재 블록의 너비의 1/4인 너비를 가지고 현재 블록과 높이는 동일한 2개의 하위 블록과, 현재 블록의 너비의 2/4인 너비를 가지고 현재 블록의 높이와 동일한 높이를 가지는 1개의 하위 블록이 생성될 수 있다. 현재 블록에 '터너리 수평 분할'이 수행되면, 현재 블록의 높이의 1:2:1 비율 지점에서 수평 방향(가로 방향)으로 분할이 수행되므로, 현재 블록의 높이의 1/4인 높이를 가지고 현재 블록의 너비와 동일한 너비를 가지 2개의 하위 블록과, 현재 블록의 높이의 2/4인 높이를 가지고 현재 블록의 너비와 동일한 너비를 가지는 1개의 하위 블록이 생성될 수 있다.Also, in the present specification, the term 'ternary split' of a block refers to a division in which the width or height of a block is divided in a 1:2:1 ratio to generate three sub-blocks. Specifically, when 'Tunary vertical division' is performed on the current block, the division is performed in the vertical direction (vertical direction) at a 1:2:1 ratio point of the width of the current block, so it is 1/4 of the width of the current block. Two subblocks having a width equal to the height of the current block and one subblock having a width equal to 2/4 of the width of the current block and a height equal to the height of the current block may be created. If 'Tunary horizontal division' is performed on the current block, the division is performed in the horizontal direction (horizontal direction) at a 1:2:1 ratio point of the current block's height, so it has a height that is 1/4 of the current block's height. Two sub-blocks having a width equal to the width of the current block and one sub-block having a height equal to 2/4 of the height of the current block and having a width equal to the width of the current block may be created.
또한, 본 명세서에서, 블록의 '쿼드 분할(quadsplit)'이란 블록의 너비 및 높이가 1:1 비율로 분할되어 4개의 하위 블록이 생성되도록 하는 분할을 의미한다. 구체적으로, 현재 블록에 '쿼드 분할'이 수행되면, 현재 블록의 너비의 절반 지점에서 수직 방향(세로 방향)으로 분할이 수행되고, 현재 블록의 높이의 절반 지점에서 수평 방향(가로 방향)으로 분할이 수행되므로, 현재 블록의 너비의 1/2인 너비를 가지고 현재 블록의 높이의 1/2인 높이를 가지는 4개의 하위 블록이 생성될 수 있다.Also, in the present specification, the term 'quadsplit' of a block refers to division in which the width and height of a block are divided in a 1:1 ratio to generate four sub-blocks. Specifically, when 'quad division' is performed on the current block, division is performed in the vertical direction (vertical direction) at half the width of the current block, and division is performed in the horizontal direction (horizontal direction) at half the height of the current block Since this is performed, four sub-blocks having a width equal to 1/2 the width of the current block and a height equal to 1/2 the height of the current block may be generated.
이하 도 1 내지 도 16를 참조하여 일 실시예에 따라 영상 부호화 장치 및 영상 복호화 장치, 영상 부호화 방법 및 영상 복호화 방법이 상술된다. 도 3 내지 도 16을 참조하여 일 실시예에 따라 영상의 데이터 단위를 결정하는 방법이 설명되고, 도 3 내지 16에 따라 결정된 데이터 단위를 이용하여 일 실시예에 따른 비디오 부호화/복호화하는 방법이 도 17 내지 도 34을 참조하여 후술된다.Hereinafter, an image encoding apparatus and an image decoding apparatus, an image encoding method, and an image decoding method according to an embodiment will be described with reference to FIGS. 1 to 16 . A method of determining a data unit of an image according to an embodiment will be described with reference to FIGS. 3 to 16 , and a method of video encoding/decoding according to an embodiment using the data unit determined according to FIGS. 3 to 16 is shown. It will be described later with reference to FIGS. 17 to 34 .
이하 도 1 및 도 2를 참조하여 본 개시의 일 실시예에 따라 다양한 형태의 부호화 단위에 기초하여 적응적으로 선택하기 위한 방법 및 장치가 상술된다.Hereinafter, a method and an apparatus for adaptive selection based on coding units of various types according to an embodiment of the present disclosure will be described with reference to FIGS. 1 and 2 .
이하 도 1 내지 도 16를 참조하여 일 실시예에 따라 영상 부호화 장치 및 영상 복호화 장치, 영상 부호화 방법 및 영상 복호화 방법이 상술된다. 도 3 내지 도 16을 참조하여 일 실시예에 따라 영상의 데이터 단위를 결정하는 방법이 설명되고, 도 17 내지 도 34을 참조하여 일 실시예에 따른 인터 예측을 수행하는 비디오 부호화/복호화 방법이 후술된다.Hereinafter, an image encoding apparatus and an image decoding apparatus, an image encoding method, and an image decoding method according to an embodiment will be described with reference to FIGS. 1 to 16 . A method of determining a data unit of an image according to an embodiment will be described with reference to FIGS. 3 to 16 , and a video encoding/decoding method for performing inter prediction according to an embodiment will be described with reference to FIGS. 17 to 34 . do.
이하 도 1 및 도 2를 참조하여 본 개시의 일 실시예에 따라 다양한 형태의 부호화 단위에 기초하여 적응적으로 선택하기 위한 방법 및 장치가 상술된다.Hereinafter, a method and an apparatus for adaptive selection based on coding units of various types according to an embodiment of the present disclosure will be described with reference to FIGS. 1 and 2 .
도 1은 일 실시예에 따라 영상 복호화 장치의 개략적인 블록도를 도시한다. 1 is a schematic block diagram of an image decoding apparatus according to an embodiment.
영상 복호화 장치(100)는 수신부(110) 및 복호화부(120)를 포함할 수 있다. 수신부(110) 및 복호화부(120)는 적어도 하나의 프로세서를 포함할 수 있다. 또한 수신부(110) 및 복호화부(120)는 적어도 하나의 프로세서가 수행할 명령어들을 저장하는 메모리를 포함할 수 있다.The
수신부(110)는 비트스트림을 수신할 수 있다. 비트스트림은 후술되는 영상 부호화 장치(2200)가 영상을 부호화한 정보를 포함한다. 또한 비트스트림은 영상 부호화 장치(2200)로부터 송신될 수 있다. 영상 부호화 장치(2200) 및 영상 복호화 장치(100)는 유선 또는 무선으로 연결될 수 있으며, 수신부(110)는 유선 또는 무선을 통하여 비트스트림을 수신할 수 있다. 수신부(110)는 광학미디어, 하드디스크 등과 같은 저장매체로부터 비트스트림을 수신할 수 있다. 복호화부(120)는 수신된 비트스트림으로부터 획득된 정보에 기초하여 영상을 복원할 수 있다. 복호화부(120)는 영상을 복원하기 위한 신택스 엘리먼트를 비트스트림으로부터 획득할 수 있다. 복호화부(120)는 신택스 엘리먼트에 기초하여 영상을 복원할 수 있다.The
영상 복호화 장치(100)의 동작에 대해서는 도 2와 함께 보다 자세히 설명한다.An operation of the
도 2는 일 실시예에 따라 영상 복호화 방법의 흐름도를 도시한다.2 is a flowchart of an image decoding method according to an embodiment.
본 개시의 일 실시예에 따르면 수신부(110)는 비트스트림을 수신한다. According to an embodiment of the present disclosure, the
영상 복호화 장치(100)는 비트스트림으로부터 부호화 단위의 분할 형태 모드에 대응하는 빈스트링을 획득하는 단계(210)를 수행한다. 영상 복호화 장치(100)는 부호화 단위의 분할 규칙을 결정하는 단계(220)를 수행한다. 또한 영상 복호화 장치(100)는 분할 형태 모드에 대응하는 빈스트링 및 상기 분할 규칙 중 적어도 하나에 기초하여, 부호화 단위를 복수의 부호화 단위들로 분할하는 단계(230)를 수행한다. 영상 복호화 장치(100)는 분할 규칙을 결정하기 위하여, 부호화 단위의 너비 및 높이의 비율에 따른, 상기 부호화 단위의 크기의 허용가능한 제 1 범위를 결정할 수 있다. 영상 복호화 장치(100)는 분할 규칙을 결정하기 위하여, 부호화 단위의 분할 형태 모드에 따른, 부호화 단위의 크기의 허용가능한 제 2 범위를 결정할 수 있다.The
이하에서는 본 개시의 일 실시예에 따라 부호화 단위의 분할에 대하여 자세히 설명한다. Hereinafter, the division of a coding unit according to an embodiment of the present disclosure will be described in detail.
먼저 하나의 픽처 (Picture)는 하나 이상의 슬라이스 혹은 하나 이상의 타일로 분할될 수 있다. 하나의 슬라이스 혹은 하나의 타일은 하나 이상의 최대 부호화 단위(Coding Tree Unit; CTU)의 시퀀스일 수 있다. 최대 부호화 단위 (CTU)와 대비되는 개념으로 최대 부호화 블록 (Coding Tree Block; CTB)이 있다. First, one picture may be divided into one or more slices or one or more tiles. One slice or one tile may be a sequence of one or more largest coding units (CTUs). A maximum coding block (CTB) is a concept as opposed to a maximum coding unit (CTU).
최대 부호화 블록(CTB)은 NxN개의 샘플들을 포함하는 NxN 블록을 의미한다(N은 정수). 각 컬러 성분은 하나 이상의 최대 부호화 블록으로 분할될 수 있다. The maximum coding block (CTB) means an NxN block including NxN samples (N is an integer). Each color component may be divided into one or more largest coding blocks.
픽처가 3개의 샘플 어레이(Y, Cr, Cb 성분별 샘플 어레이)를 가지는 경우에 최대 부호화 단위(CTU)란, 루마 샘플의 최대 부호화 블록 및 그에 대응되는 크로마 샘플들의 2개의 최대 부호화 블록과, 루마 샘플, 크로마 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 모노크롬 픽처인 경우에 최대 부호화 단위란, 모노크롬 샘플의 최대 부호화 블록과 모노크롬 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 컬러 성분별로 분리되는 컬러 플레인으로 부호화되는 픽처인 경우에 최대 부호화 단위란, 해당 픽처와 픽처의 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다.When a picture has three sample arrays (sample arrays for each Y, Cr, and Cb component), a maximum coding unit (CTU) is a maximum coding block of a luma sample, two maximum coding blocks of chroma samples corresponding thereto, and a luma. A unit including syntax structures used to encode samples and chroma samples. When the picture is a monochrome picture, the maximum coding unit is a unit including the maximum coding block of the monochrome sample and syntax structures used to encode the monochrome samples. When the picture is a picture encoded using a color plane separated for each color component, the maximum coding unit is a unit including syntax structures used to encode the corresponding picture and samples of the picture.
하나의 최대 부호화 블록(CTB)은 MxN개의 샘플들을 포함하는 MxN 부호화 블록(coding block)으로 분할될 수 있다 (M, N은 정수). One largest coding block (CTB) may be divided into MxN coding blocks including MxN samples (M and N are integers).
픽처가 Y, Cr, Cb 성분별 샘플 어레이를 가지는 경우에 부호화 단위(Coding Unit; CU)란, 루마 샘플의 부호화 블록 및 그에 대응되는 크로마 샘플들의 2개의 부호화 블록과, 루마 샘플, 크로마 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 모노크롬 픽처인 경우에 부호화 단위란, 모노크롬 샘플의 부호화 블록과 모노크롬 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 컬러 성분별로 분리되는 컬러 플레인으로 부호화되는 픽처인 경우에 부호화 단위란, 해당 픽처와 픽처의 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다.When a picture has a sample array for each Y, Cr, and Cb component, a coding unit (CU) is a coding block of a luma sample, two coding blocks of chroma samples corresponding thereto, and a luma sample and chroma samples. It is a unit containing syntax structures used for When the picture is a monochrome picture, a coding unit is a unit including a coding block of a monochrome sample and syntax structures used to encode the monochrome samples. When the picture is a picture encoded using a color plane separated for each color component, a coding unit is a unit including syntax structures used to encode the corresponding picture and samples of the picture.
위에서 설명한 바와 같이, 최대 부호화 블록과 최대 부호화 단위는 서로 구별되는 개념이며, 부호화 블록과 부호화 단위는 서로 구별되는 개념이다. 즉, (최대) 부호화 단위는 해당 샘플을 포함하는 (최대) 부호화 블록과 그에 대응하는 신택스 구조를 포함하는 데이터 구조를 의미한다. 하지만 당업자가 (최대) 부호화 단위 또는 (최대) 부호화 블록가 소정 개수의 샘플들을 포함하는 소정 크기의 블록을 지칭한다는 것을 이해할 수 있으므로, 이하 명세서에서는 최대 부호화 블록과 최대 부호화 단위, 또는 부호화 블록과 부호화 단위를 특별한 사정이 없는 한 구별하지 않고 언급한다.As described above, the maximum coding block and the maximum coding unit are distinct concepts, and the coding block and the coding unit are distinct concepts. That is, the (maximum) coding unit means a data structure including a (maximum) coding block including a corresponding sample and a syntax structure corresponding thereto. However, since one of ordinary skill in the art can understand that a (maximum) coding unit or (maximum) coding block refers to a block of a predetermined size including a predetermined number of samples, the following specification will describe the largest coding block and the largest coding unit, or the coding block and the coding unit. are mentioned without distinction, unless there are special circumstances.
영상은 최대 부호화 단위(Coding Tree Unit; CTU)로 분할될 수 있다. 최대 부호화 단위의 크기는 비트스트림으로부터 획득된 정보에 기초하여 결정될 수 있다. 최대 부호화 단위의 모양은 동일 크기의 정사각형을 가질 수 있다. 하지만 이에 한정되는 것은 아니다. An image may be divided into a largest coding unit (Coding Tree Unit; CTU). The size of the maximum coding unit may be determined based on information obtained from the bitstream. The shape of the largest coding unit may have a square having the same size. However, the present invention is not limited thereto.
예를 들어, 비트스트림으로부터 루마 부호화 블록의 최대 크기에 대한 정보가 획득될 수 있다. 예를 들어, 루마 부호화 블록의 최대 크기에 대한 정보가 나타내는 루마 부호화 블록의 최대 크기는 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256 중 하나일 수 있다.For example, information on the maximum size of the luma coding block may be obtained from the bitstream. For example, the maximum size of the luma coding block indicated by the information on the maximum size of the luma coding block may be one of 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, and 256x256.
예를 들어, 비트스트림으로부터 2분할이 가능한 루마 부호화 블록의 최대 크기와 루마 블록 크기 차이에 대한 정보가 획득될 수 있다. 루마 블록 크기 차이에 대한 정보는 루마 최대 부호화 단위와 2분할이 가능한 최대 루마 부호화 블록 간의 크기 차이를 나타낼 수 있다. 따라서, 비트스트림으로부터 획득된 2분할이 가능한 루마 부호화 블록의 최대 크기에 대한 정보와 루마 블록 크기 차이에 대한 정보를 결합하면, 루마 최대 부호화 단위의 크기가 결정될 수 있다. 루마 최대 부호화 단위의 크기를 이용하면 크로마 최대 부호화 단위의 크기도 결정될 수 있다. 예를 들어, 컬러 포맷에 따라 Y: Cb : Cr 비율이 4:2:0 이라면, 크로마 블록의 크기는 루마 블록의 크기의 절반일 수 있고, 마찬가지로 크로마 최대 부호화 단위의 크기는 루마 최대 부호화 단위의 크기의 절반일 수 있다. For example, information on a difference between a maximum size of a luma coding block capable of being divided into two and a luma block size may be obtained from the bitstream. The information on the difference in the luma block size may indicate the difference in size between the largest luma coding unit and the largest luma coding block that can be split into two. Accordingly, when information on a maximum size of a luma coding block that can be split into two obtained from a bitstream and information on a difference in luma block size are combined, the size of the maximum luma coding unit may be determined. If the size of the maximum luma coding unit is used, the size of the maximum chroma coding unit may also be determined. For example, if the Y:Cb:Cr ratio is 4:2:0 according to the color format, the size of the chroma block may be half the size of the luma block, and similarly, the size of the maximum chroma coding unit is that of the maximum luma coding unit. It can be half the size.
일 실시예에 따르면, 바이너리 분할(binary split)이 가능한 루마 부호화 블록의 최대 크기에 대한 정보는 비트스트림으로부터 획득하므로, 바이너리 분할이 가능한 루마 부호화 블록의 최대 크기는 가변적으로 결정될 수 있다. 이와 달리, 터너리 분할(ternary split)이 가능한 루마 부호화 블록의 최대 크기는 고정될 수 있다. 예를 들어, I 픽처에서 터너리 분할이 가능한 루마 부호화 블록의 최대 크기는 32x32이고, P 픽처 또는 B 픽처에서 터너리 분할이 가능한 루마 부호화 블록의 최대 크기는 64x64일 수 있다. According to an embodiment, since information on the maximum size of a luma encoding block capable of binary splitting is obtained from a bitstream, the maximum size of a luma encoding block capable of binary splitting may be variably determined. Alternatively, the maximum size of a luma coding block capable of ternary splitting may be fixed. For example, the maximum size of a luma coding block capable of ternary division in an I picture may be 32x32, and the maximum size of a luma coding block capable of ternary division in a P picture or a B picture may be 64x64.
또한 최대 부호화 단위는 비트스트림으로부터 획득된 분할 형태 모드 정보에 기초하여 부호화 단위로 계층적으로 분할될 수 있다. 분할 형태 모드 정보로서, 쿼드분할(quad split) 여부를 나타내는 정보, 다분할 여부를 나타내는 정보, 분할 방향 정보 및 분할 타입 정보 중 적어도 하나가 비트스트림으로부터 획득될 수 있다. In addition, the maximum coding unit may be hierarchically split into coding units based on the split form mode information obtained from the bitstream. As the division form mode information, at least one of information indicating whether to perform quad split, information indicating whether to multi-split, split direction information, and split type information may be obtained from the bitstream.
예를 들어, 쿼드분할(quad split) 여부를 나타내는 정보는 현재 부호화 단위가 쿼드분할(QUAD_SPLIT)될지 또는 쿼드분할되지 않을지를 나타낼 수 있다. For example, information indicating whether a quad split is performed may indicate whether a current coding unit is to be quad split (QUAD_SPLIT) or not to be quad split.
현재 부호화 단위가 쿼드분할지되 않으면, 다분할 여부를 나타내는 정보는 현재 부호화 단위가 더 이상 분할되지 않을지(NO_SPLIT) 아니면 바이너리/터너리 분할될지 여부를 나타낼 수 있다.When the current coding unit is not divided into quads, information indicating whether the current coding unit is divided into quads may indicate whether the current coding unit is not to be divided any more (NO_SPLIT) or whether to be divided into binary/ternary division.
현재 부호화 단위가 바이너리 분할되거나 터너리 분할되면, 분할 방향 정보는 현재 부호화 단위가 수평 방향 또는 수직 방향 중 하나로 분할됨을 나타낸다. When the current coding unit is binary split or ternary split, the split direction information indicates that the current coding unit is split in either a horizontal direction or a vertical direction.
현재 부호화 단위가 수평 또는 수직 방향으로 분할되면 분할 타입 정보는 현재 부호화 단위를 바이너리 분할) 또는 터너리 분할로 분할함을 나타낸다. When the current coding unit is split in the horizontal or vertical direction, the split type information indicates that the current coding unit is split into binary splitting) or ternary splitting.
분할 방향 정보 및 분할 타입 정보에 따라, 현재 부호화 단위의 분할 모드가 결정될 수 있다. 현재 부호화 단위가 수평 방향으로 바이너리 분할되는 경우의 분할 모드는 바이너리 수평 분할(SPLIT_BT_HOR), 수평 방향으로 터너리 분할되는 경우의 터너리 수평 분할(SPLIT_TT_HOR), 수직 방향으로 바이너리 분할되는 경우의 분할 모드는 바이너리 수직 분할 (SPLIT_BT_VER) 및 수직 방향으로 터너리 분할되는 경우의 분할 모드는 터너리 수직 분할 (SPLIT_BT_VER)로 결정될 수 있다. The splitting mode of the current coding unit may be determined according to the splitting direction information and the splitting type information. The splitting mode when the current coding unit is binary split in the horizontal direction is binary horizontal splitting (SPLIT_BT_HOR), ternary horizontal splitting (SPLIT_TT_HOR) when the current coding unit is ternary split in the horizontal direction, and the splitting mode when binary splitting in the vertical direction is The binary vertical division (SPLIT_BT_VER) and the division mode in the case of ternary division in the vertical direction may be determined as the ternary vertical division (SPLIT_BT_VER).
영상 복호화 장치(100)는 비트스트림으로부터 분할 형태 모드 정보를 하나의 빈스트링으로부터 획득할 수 있다. 영상 복호화 장치(100)가 수신한 비트스트림의 형태는 Fixed length binary code, Unary code, Truncated unary code, 미리 결정된 바이너리 코드 등을 포함할 수 있다. 빈스트링은 정보를 2진수의 나열로 나타낸 것이다. 빈스트링은 적어도 하나의 비트로 구성될 수 있다. 영상 복호화 장치(100)는 분할 규칙에 기초하여 빈스트링에 대응하는 분할 형태 모드 정보를 획득할 수 있다. 영상 복호화 장치(100)는 하나의 빈스트링에 기초하여, 부호화 단위를 쿼드분할할지 여부, 분할하지 않을지 또는 분할 방향 및 분할 타입을 결정할 수 있다.The
부호화 단위는 최대 부호화 단위보다 작거나 같을 수 있다. 예를 들어 최대 부호화 단위도 최대 크기를 가지는 부호화 단위이므로 부호화 단위의 하나이다. 최대 부호화 단위에 대한 분할 형태 모드 정보가 분할되지 않음을 나타내는 경우, 최대 부호화 단위에서 결정되는 부호화 단위는 최대 부호화 단위와 같은 크기를 가진다. 최대 부호화 단위에 대한 분할 형태 모드 정보가 분할됨을 나타내는 경우 최대 부호화 단위는 부호화 단위들로 분할 될 수 있다. 또한 부호화 단위에 대한 분할 형태 모드 정보가 분할을 나타내는 경우 부호화 단위들은 더 작은 크기의 부호화 단위들로 분할 될 수 있다. 다만, 영상의 분할은 이에 한정되는 것은 아니며 최대 부호화 단위 및 부호화 단위는 구별되지 않을 수 있다. 부호화 단위의 분할에 대해서는 도 3 내지 도 16에서 보다 자세히 설명한다.The coding unit may be smaller than or equal to the maximum coding unit. For example, since the largest coding unit is also a coding unit having the largest size, it is one of the coding units. When the split form mode information for the largest coding unit indicates that it is not split, a coding unit determined from the largest coding unit has the same size as the largest coding unit. When it indicates that the split form mode information for the maximum coding unit is split, the maximum coding unit may be split into coding units. Also, when the split form mode information on the coding unit indicates split, the coding units may be split into coding units having smaller sizes. However, the division of the image is not limited thereto, and the maximum coding unit and the coding unit may not be distinguished. The division of the coding unit will be described in more detail with reference to FIGS. 3 to 16 .
또한 부호화 단위로부터 예측을 위한 하나 이상의 예측 블록이 결정될 수 있다. 예측 블록은 부호화 단위와 같거나 작을 수 있다. 또한 부호화 단위로부터 변환을 위한 하나 이상의 변환 블록이 결정될 수 있다. 변환 블록은 부호화 단위와 같거나 작을 수 있다. Also, one or more prediction blocks for prediction may be determined from the coding unit. The prediction block may be equal to or smaller than the coding unit. In addition, one or more transform blocks for transformation may be determined from the coding unit. The transform block may be equal to or smaller than the coding unit.
변환 블록과 예측 블록의 모양 및 크기는 서로 관련 없을 수 있다. The shape and size of the transform block and the prediction block may not be related to each other.
다른 실시예로, 부호화 단위가 예측 블록으로서 부호화 단위를 이용하여 예측이 수행될 수 있다. 또한 부호화 단위가 변환 블록으로서 부호화 단위를 이용하여 변환이 수행될 수 있다. As another embodiment, prediction may be performed using the coding unit as a prediction block for the coding unit. In addition, transformation may be performed using the coding unit as a transform block for the coding unit.
부호화 단위의 분할에 대해서는 도 3 내지 도 16에서 보다 자세히 설명한다. 본 개시의 현재 블록 및 주변 블록은 최대 부호화 단위, 부호화 단위, 예측 블록 및 변환 블록 중 하나를 나타낼 수 있다. 또한, 현재 블록 또는 현재 부호화 단위는 현재 복호화 또는 부호화가 진행되는 블록 또는 현재 분할이 진행되고 있는 블록이다. 주변 블록은 현재 블록 이전에 복원된 블록일 수 있다. 주변 블록은 현재 블록으로부터 공간적 또는 시간적으로 인접할 수 있다. 주변 블록은 현재 블록의 좌하측, 좌측, 좌상측, 상측, 우상측, 우측, 우하측 중 하나에 위치할 수 있다.The division of the coding unit will be described in more detail with reference to FIGS. 3 to 16 . The current block and neighboring blocks of the present disclosure may represent one of a largest coding unit, a coding unit, a prediction block, and a transform block. In addition, the current block or current coding unit is a block currently being decoded or encoded or a block currently being split. The neighboring block may be a block reconstructed before the current block. A neighboring block may be spatially or temporally adjacent to the current block. The neighboring block may be located in one of the lower left, left, upper left, upper, right, right, and lower right of the current block.
도 3은 일 실시예에 따라 영상 복호화 장치가 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.3 is a diagram illustrating a process in which an image decoding apparatus determines at least one coding unit by dividing a current coding unit, according to an embodiment.
블록 형태는 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN 또는 Nx8N을 포함할 수 있다. 여기서 N은 양의 정수일 수 있다. 블록 형태 정보는 부호화 단위의 모양, 방향, 너비 및 높이의 비율 또는 크기 중 적어도 하나를 나타내는 정보이다. The block form may include 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN, or Nx8N. Here, N may be a positive integer. The block form information is information indicating at least one of a ratio or size of a shape, direction, width, and height of a coding unit.
부호화 단위의 모양은 정사각형(square) 및 비-정사각형(non-square)을 포함할 수 있다. 부호화 단위의 너비 및 높이의 길이가 같은 경우(즉, 부호화 단위의 블록 형태가 4Nx4N 인 경우), 영상 복호화 장치(100)는 부호화 단위의 블록 형태 정보를 정사각형으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 모양을 비-정사각형으로 결정할 수 있다. The shape of the coding unit may include a square and a non-square. When the width and height of the coding unit are the same length (ie, the block shape of the coding unit is 4Nx4N), the
부호화 단위의 너비 및 높이의 길이가 다른 경우(즉, 부호화 단위의 블록 형태가 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN 또는 Nx8N인 경우), 영상 복호화 장치(100)는 부호화 단위의 블록 형태 정보를 비-정사각형으로 결정할 수 있다. 부호화 단위의 모양이 비-정사각형인 경우, 영상 복호화 장치(100)는 부호화 단위의 블록 형태 정보 중 너비 및 높이의 비율을 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 1:32, 32:1 중 적어도 하나로 결정할 수 있다. 또한, 부호화 단위의 너비의 길이 및 높이의 길이에 기초하여, 영상 복호화 장치(100)는 부호화 단위가 수평 방향인지 수직 방향인지 결정할 수 있다. 또한, 부호화 단위의 너비의 길이, 높이의 길이 또는 넓이 중 적어도 하나에 기초하여, 영상 복호화 장치(100)는 부호화 단위의 크기를 결정할 수 있다. When the coding unit has different widths and different heights (that is, when the coding unit has a block shape of 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN, or Nx8N), the
일 실시예에 따라 영상 복호화 장치(100)는 블록 형태 정보를 이용하여 부호화 단위의 형태를 결정할 수 있고, 분할 형태 모드 정보를 이용하여 부호화 단위가 어떤 형태로 분할되는지를 결정할 수 있다. 즉, 영상 복호화 장치(100)가 이용하는 블록 형태 정보가 어떤 블록 형태를 나타내는지에 따라 분할 형태 모드 정보가 나타내는 부호화 단위의 분할 방법이 결정될 수 있다. According to an embodiment, the
영상 복호화 장치(100)는 비트스트림으로부터 분할 형태 모드 정보를 획득할 수 있다. 하지만 이에 한정되는 것은 아니며, 영상 복호화 장치(100) 및 영상 부호화 장치(2200)는 블록 형태 정보에 기초하여 미리 약속된 분할 형태 모드 정보를 결정할 수 있다. 영상 복호화 장치(100)는 최대 부호화 단위 또는 최소 부호화 단위에 대하여 미리 약속된 분할 형태 모드 정보를 결정할 수 있다. 예를 들어 영상 복호화 장치(100)는 최대 부호화 단위에 대하여 분할 형태 모드 정보를 쿼드 분할(quad split)로 결정할 수 있다. 또한, 영상 복호화 장치(100)는 최소 부호화 단위에 대하여 분할 형태 모드 정보를 "분할하지 않음"으로 결정할 수 있다. 구체적으로 영상 복호화 장치(100)는 최대 부호화 단위의 크기를 256x256으로 결정할 수 있다. 영상 복호화 장치(100)는 미리 약속된 분할 형태 모드 정보를 쿼드 분할로 결정할 수 있다. 쿼드 분할은 부호화 단위의 너비 및 높이를 모두 이등분하는 분할 형태 모드이다. 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 256x256 크기의 최대 부호화 단위로부터 128x128 크기의 부호화 단위를 획득할 수 있다. 또한 영상 복호화 장치(100)는 최소 부호화 단위의 크기를 4x4로 결정할 수 있다. 영상 복호화 장치(100)는 최소 부호화 단위에 대하여 "분할하지 않음"을 나타내는 분할 형태 모드 정보를 획득할 수 있다.The
일 실시예에 따라, 영상 복호화 장치(100)는 현재 부호화 단위가 정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 예를 들어 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 정사각형의 부호화 단위를 분할하지 않을지, 수직으로 분할할지, 수평으로 분할할지, 4개의 부호화 단위로 분할할지 등을 결정할 수 있다. 도 3을 참조하면, 현재 부호화 단위(300)의 블록 형태 정보가 정사각형의 형태를 나타내는 경우, 복호화부(120)는 분할되지 않음을 나타내는 분할 형태 모드 정보에 따라 현재 부호화 단위(300)와 동일한 크기를 가지는 부호화 단위(310a)를 분할하지 않거나, 소정의 분할방법을 나타내는 분할 형태 모드 정보에 기초하여 분할된 부호화 단위(310b, 310c, 310d, 310e, 310f 등)를 결정할 수 있다. According to an embodiment, the
도 3을 참조하면 영상 복호화 장치(100)는 일 실시예에 따라 수직방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수직방향으로 분할한 두 개의 부호화 단위(310b)를 결정할 수 있다. 영상 복호화 장치(100)는 수평방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수평방향으로 분할한 두 개의 부호화 단위(310c)를 결정할 수 있다. 영상 복호화 장치(100)는 수직방향 및 수평방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수직방향 및 수평방향으로 분할한 네 개의 부호화 단위(310d)를 결정할 수 있다. 영상 복호화 장치(100)는 일 실시예에 따라 수직방향으로 터너리(ternary) 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수직방향으로 분할한 세 개의 부호화 단위(310e)를 결정할 수 있다. 영상 복호화 장치(100)는 수평방향으로 터너리 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수평방향으로 분할한 세 개의 부호화 단위(310f)를 결정할 수 있다. 다만 정사각형의 부호화 단위가 분할될 수 있는 분할 형태는 상술한 형태로 한정하여 해석되어서는 안되고, 분할 형태 모드 정보가 나타낼 수 있는 다양한 형태가 포함될 수 있다. 정사각형의 부호화 단위가 분할되는 소정의 분할 형태들은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다. Referring to FIG. 3 , the
도 4는 일 실시예에 따라 영상 복호화 장치가 비-정사각형의 형태인 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.4 is a diagram illustrating a process in which an image decoding apparatus determines at least one coding unit by dividing a coding unit having a non-square shape, according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위가 비-정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 비-정사각형의 현재 부호화 단위를 분할하지 않을지 소정의 방법으로 분할할지 여부를 결정할 수 있다. 도 4를 참조하면, 현재 부호화 단위(400 또는 450)의 블록 형태 정보가 비-정사각형의 형태를 나타내는 경우, 영상 복호화 장치(100)는 분할되지 않음을 나타내는 분할 형태 모드 정보에 따라 현재 부호화 단위(400 또는 450)와 동일한 크기를 가지는 부호화 단위(410 또는 460)를 결정하거나, 소정의 분할방법을 나타내는 분할 형태 모드 정보에 따라 기초하여 분할된 부호화 단위(420a, 420b, 430a, 430b, 430c, 470a, 470b, 480a, 480b, 480c)를 결정할 수 있다. 비-정사각형의 부호화 단위가 분할되는 소정의 분할 방법은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보를 이용하여 부호화 단위가 분할되는 형태를 결정할 수 있고, 이 경우 분할 형태 모드 정보는 부호화 단위가 분할되어 생성되는 적어도 하나의 부호화 단위의 개수를 나타낼 수 있다. 도 4를 참조하면 분할 형태 모드 정보가 두 개의 부호화 단위로 현재 부호화 단위(400 또는 450)가 분할되는 것을 나타내는 경우, 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(400 또는 450)를 분할하여 현재 부호화 단위에 포함되는 두 개의 부호화 단위(420a, 420b, 또는 470a, 470b)를 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 비-정사각형의 형태의 현재 부호화 단위(400 또는 450)를 분할하는 경우, 영상 복호화 장치(100)는 비-정사각형의 현재 부호화 단위(400 또는 450)의 긴 변의 위치를 고려하여 현재 부호화 단위를 분할할 수 있다. 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)의 형태를 고려하여 현재 부호화 단위(400 또는 450)의 긴 변을 분할하는 방향으로 현재 부호화 단위(400 또는 450)를 분할하여 복수개의 부호화 단위를 결정할 수 있다. According to an embodiment, when the
일 실시예에 따라, 분할 형태 모드 정보가 홀수개의 블록으로 부호화 단위를 분할(터너리 분할)하는 것을 나타내는 경우, 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)에 포함되는 홀수개의 부호화 단위를 결정할 수 있다. 예를 들면, 분할 형태 모드 정보가 3개의 부호화 단위로 현재 부호화 단위(400 또는 450)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)를 3개의 부호화 단위(430a, 430b, 430c, 480a, 480b, 480c)로 분할할 수 있다. According to an embodiment, when the partitioning mode information indicates that the coding unit is divided into an odd number of blocks (ternary division), the
일 실시예에 따라, 현재 부호화 단위(400 또는 450)의 너비 및 높이의 비율이 4:1 또는 1:4 일 수 있다. 너비 및 높이의 비율이 4:1 인 경우, 너비의 길이가 높이의 길이보다 길므로 블록 형태 정보는 수평 방향일 수 있다. 너비 및 높이의 비율이 1:4 인 경우, 너비의 길이가 높이의 길이보다 짧으므로 블록 형태 정보는 수직 방향일 수 있다. 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 현재 부호화 단위를 홀수개의 블록으로 분할할 것을 결정할 수 있다. 또한 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)의 블록 형태 정보에 기초하여 현재 부호화 단위(400 또는 450)의 분할 방향을 결정할 수 있다. 예를 들어 현재 부호화 단위(400)가 수직 방향인 경우, 영상 복호화 장치(100)는 현재 부호화 단위(400)를 수평 방향으로 분할 하여 부호화 단위(430a, 430b, 430c)를 결정할 수 있다. 또한 현재 부호화 단위(450)가 수평 방향인 경우, 영상 복호화 장치(100)는 현재 부호화 단위(450)를 수직 방향으로 분할 하여 부호화 단위(480a, 480b, 480c)를 결정할 수 있다.According to an embodiment, a ratio of a width to a height of the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)에 포함되는 홀수개의 부호화 단위를 결정할 수 있으며, 결정된 부호화 단위들의 크기 모두가 동일하지는 않을 수 있다. 예를 들면, 결정된 홀수개의 부호화 단위(430a, 430b, 430c, 480a, 480b, 480c) 중 소정의 부호화 단위(430b 또는 480b)의 크기는 다른 부호화 단위(430a, 430c, 480a, 480c)들과는 다른 크기를 가질 수도 있다. 즉, 현재 부호화 단위(400 또는 450)가 분할되어 결정될 수 있는 부호화 단위는 복수의 종류의 크기를 가질 수 있고, 경우에 따라서는 홀수개의 부호화 단위(430a, 430b, 430c, 480a, 480b, 480c)가 각각 서로 다른 크기를 가질 수도 있다.According to an embodiment, the
일 실시예에 따라 분할 형태 모드 정보가 홀수개의 블록으로 부호화 단위가 분할되는 것을 나타내는 경우, 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)에 포함되는 홀수개의 부호화 단위를 결정할 수 있고, 나아가 영상 복호화 장치(100)는 분할하여 생성되는 홀수개의 부호화 단위들 중 적어도 하나의 부호화 단위에 대하여 소정의 제한을 둘 수 있다. 도 4을 참조하면 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)가 분할되어 생성된 3개의 부호화 단위(430a, 430b, 430c, 480a, 480b, 480c)들 중 중앙에 위치하는 부호화 단위(430b, 480b)에 대한 복호화 과정을 다른 부호화 단위(430a, 430c, 480a, 480c)와 다르게 할 수 있다. 예를 들면, 영상 복호화 장치(100)는 중앙에 위치하는 부호화 단위(430b, 480b)에 대하여는 다른 부호화 단위(430a, 430c, 480a, 480c)와 달리 더 이상 분할되지 않도록 제한하거나, 소정의 횟수만큼만 분할되도록 제한할 수 있다.According to an embodiment, when the split mode information indicates that the coding unit is split into an odd number of blocks, the
도 5는 일 실시예에 따라 영상 복호화 장치가 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나에 기초하여 부호화 단위를 분할하는 과정을 도시한다.5 is a diagram illustrating a process in which an image decoding apparatus divides a coding unit based on at least one of block shape information and division shape mode information, according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나에 기초하여 정사각형 형태의 제1 부호화 단위(500)를 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 일 실시예에 따라 분할 형태 모드 정보가 수평 방향으로 제1 부호화 단위(500)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(100)는 제1 부호화 단위(500)를 수평 방향으로 분할하여 제2 부호화 단위(510)를 결정할 수 있다. 일 실시예에 따라 이용되는 제1 부호화 단위, 제2 부호화 단위, 제3 부호화 단위는 부호화 단위 간의 분할 전후 관계를 이해하기 위해 이용된 용어이다. 예를 들면, 제1 부호화 단위를 분할하면 제2 부호화 단위가 결정될 수 있고, 제2 부호화 단위가 분할되면 제3 부호화 단위가 결정될 수 있다. 이하에서는 이용되는 제1 부호화 단위, 제2 부호화 단위 및 제3 부호화 단위의 관계는 상술한 특징에 따르는 것으로 이해될 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 결정된 제2 부호화 단위(510)를 분할 형태 모드 정보에 기초하여 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 도 5를 참조하면 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(500)를 분할하여 결정된 비-정사각형의 형태의 제2 부호화 단위(510)를 적어도 하나의 제3 부호화 단위(520a, 520b, 520c, 520d 등)로 분할하거나 제2 부호화 단위(510)를 분할하지 않을 수 있다. 영상 복호화 장치(100)는 분할 형태 모드 정보를 획득할 수 있고 영상 복호화 장치(100)는 획득한 분할 형태 모드 정보에 기초하여 제1 부호화 단위(500)를 분할하여 다양한 형태의 복수개의 제2 부호화 단위(예를 들면, 510)를 분할할 수 있으며, 제2 부호화 단위(510)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(500)가 분할된 방식에 따라 분할될 수 있다. 일 실시예에 따라, 제1 부호화 단위(500)가 제1 부호화 단위(500)에 대한 분할 형태 모드 정보에 기초하여 제2 부호화 단위(510)로 분할된 경우, 제2 부호화 단위(510) 역시 제2 부호화 단위(510)에 대한 분할 형태 모드 정보에 기초하여 제3 부호화 단위(예를 들면, 520a, 520b, 520c, 520d 등)으로 분할될 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 관련된 분할 형태 모드 정보에 기초하여 재귀적으로 분할될 수 있다. 따라서 비-정사각형 형태의 부호화 단위에서 정사각형의 부호화 단위가 결정될 수 있고, 이러한 정사각형 형태의 부호화 단위가 재귀적으로 분할되어 비-정사각형 형태의 부호화 단위가 결정될 수도 있다. According to an embodiment, the
도 5를 참조하면, 비-정사각형 형태의 제2 부호화 단위(510)가 분할되어 결정되는 홀수개의 제3 부호화 단위(520b, 520c, 520d) 중 소정의 부호화 단위(예를 들면, 가운데에 위치하는 부호화 단위 또는 정사각형 형태의 부호화 단위)는 재귀적으로 분할될 수 있다. 일 실시예에 따라 홀수개의 제3 부호화 단위(520b, 520c, 520d) 중 하나인 정사각형 형태의 제3 부호화 단위(520b)는 수평 방향으로 분할되어 복수개의 제4 부호화 단위로 분할될 수 있다. 복수개의 제4 부호화 단위(530a, 530b, 530c, 530d) 중 하나인 비-정사각형 형태의 제4 부호화 단위(530b 또는 530d)는 다시 복수개의 부호화 단위들로 분할될 수 있다. 예를 들면, 비-정사각형 형태의 제4 부호화 단위(530b 또는 530d)는 홀수개의 부호화 단위로 다시 분할될 수도 있다. 부호화 단위의 재귀적 분할에 이용될 수 있는 방법에 대하여는 다양한 실시예를 통해 후술하도록 한다.Referring to FIG. 5 , a predetermined coding unit (e.g., located in the middle A coding unit or a coding unit having a square shape) may be recursively divided. According to an embodiment, the square-shaped
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제3 부호화 단위(520a, 520b, 520c, 520d 등) 각각을 부호화 단위들로 분할할 수 있다. 또한 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제2 부호화 단위(510)를 분할하지 않는 것으로 결정할 수 있다. 영상 복호화 장치(100)는 일 실시예에 따라 비-정사각형 형태의 제2 부호화 단위(510)를 홀수개의 제3 부호화 단위(520b, 520c, 520d)로 분할할 수 있다. 영상 복호화 장치(100)는 홀수개의 제3 부호화 단위(520b, 520c, 520d) 중 소정의 제3 부호화 단위에 대하여 소정의 제한을 둘 수 있다. 예를 들면 영상 복호화 장치(100)는 홀수개의 제3 부호화 단위(520b, 520c, 520d) 중 가운데에 위치하는 부호화 단위(520c)에 대하여는 더 이상 분할되지 않는 것으로 제한하거나 또는 설정 가능한 횟수로 분할되어야 하는 것으로 제한할 수 있다. According to an embodiment, the
도 5를 참조하면, 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(510)에 포함되는 홀수개의 제3 부호화 단위(520b, 520c, 520d)들 중 가운데에 위치하는 부호화 단위(520c)는 더 이상 분할되지 않거나, 소정의 분할 형태로 분할(예를 들면 4개의 부호화 단위로만 분할하거나 제2 부호화 단위(510)가 분할된 형태에 대응하는 형태로 분할)되는 것으로 제한하거나, 소정의 횟수로만 분할(예를 들면 n회만 분할, n>0)하는 것으로 제한할 수 있다. 다만 가운데에 위치한 부호화 단위(520c)에 대한 상기 제한은 단순한 실시예들에 불과하므로 상술한 실시예들로 제한되어 해석되어서는 안되고, 가운데에 위치한 부호화 단위(520c)가 다른 부호화 단위(520b, 520d)와 다르게 복호화 될 수 있는 다양한 제한들을 포함하는 것으로 해석되어야 한다.Referring to FIG. 5 , the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 분할하기 위해 이용되는 분할 형태 모드 정보를 현재 부호화 단위 내의 소정의 위치에서 획득할 수 있다. According to an embodiment, the
도 6은 일 실시예에 따라 영상 복호화 장치가 홀수개의 부호화 단위들 중 소정의 부호화 단위를 결정하기 위한 방법을 도시한다. FIG. 6 illustrates a method for determining, by an image decoding apparatus, a predetermined coding unit from among an odd number of coding units, according to an embodiment.
도 6을 참조하면, 현재 부호화 단위(600, 650)의 분할 형태 모드 정보는 현재 부호화 단위(600, 650)에 포함되는 복수개의 샘플 중 소정 위치의 샘플(예를 들면, 가운데에 위치하는 샘플(640, 690))에서 획득될 수 있다. 다만 이러한 분할 형태 모드 정보 중 적어도 하나가 획득될 수 있는 현재 부호화 단위(600) 내의 소정 위치가 도 6에서 도시하는 가운데 위치로 한정하여 해석되어서는 안되고, 소정 위치에는 현재 부호화 단위(600)내에 포함될 수 있는 다양한 위치(예를 들면, 최상단, 최하단, 좌측, 우측, 좌측상단, 좌측하단, 우측상단 또는 우측하단 등)가 포함될 수 있는 것으로 해석되어야 한다. 영상 복호화 장치(100)는 소정 위치로부터 획득되는 분할 형태 모드 정보를 획득하여 현재 부호화 단위를 다양한 형태 및 크기의 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다.Referring to FIG. 6 , segmentation mode information of the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위가 소정의 개수의 부호화 단위들로 분할된 경우 그 중 하나의 부호화 단위를 선택할 수 있다. 복수개의 부호화 단위들 중 하나를 선택하기 위한 방법은 다양할 수 있으며, 이러한 방법들에 대한 설명은 이하의 다양한 실시예를 통해 후술하도록 한다.According to an embodiment, when the current coding unit is divided into a predetermined number of coding units, the
일 실시예에 따라 영상 복호화 장치(100) 는 현재 부호화 단위를 복수개의 부호화 단위들로 분할하고, 소정 위치의 부호화 단위를 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 홀수개의 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 홀수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 도 6을 참조하면, 영상 복호화 장치(100)는 현재 부호화 단위(600) 또는 현재 부호화 단위(650)를 분할하여 홀수개의 부호화 단위들(620a, 620b, 620c) 또는 홀수개의 부호화 단위들(660a, 660b, 660c)을 결정할 수 있다. 영상 복호화 장치(100)는 홀수개의 부호화 단위들(620a, 620b, 620c) 또는 홀수개의 부호화 단위들(660a, 660b, 660c)의 위치에 대한 정보를 이용하여 가운데 부호화 단위(620b)또는 가운데 부호화 단위(660b)를 결정할 수 있다. 예를 들면 영상 복호화 장치(100)는 부호화 단위들(620a, 620b, 620c)에 포함되는 소정의 샘플의 위치를 나타내는 정보에 기초하여 부호화 단위들(620a, 620b, 620c)의 위치를 결정함으로써 가운데에 위치하는 부호화 단위(620b)를 결정할 수 있다. 구체적으로, 영상 복호화 장치(100)는 부호화 단위들(620a, 620b, 620c)의 좌측 상단의 샘플(630a, 630b, 630c)의 위치를 나타내는 정보에 기초하여 부호화 단위들(620a, 620b, 620c)의 위치를 결정함으로써 가운데에 위치하는 부호화 단위(620b)를 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 부호화 단위들(620a, 620b, 620c)에 각각 포함되는 좌측 상단의 샘플(630a, 630b, 630c)의 위치를 나타내는 정보는 부호화 단위들(620a, 620b, 620c)의 픽쳐 내에서의 위치 또는 좌표에 대한 정보를 포함할 수 있다. 일 실시예에 따라 부호화 단위들(620a, 620b, 620c)에 각각 포함되는 좌측 상단의 샘플(630a, 630b, 630c)의 위치를 나타내는 정보는 현재 부호화 단위(600)에 포함되는 부호화 단위들(620a, 620b, 620c)의 너비 또는 높이를 나타내는 정보를 포함할 수 있고, 이러한 너비 또는 높이는 부호화 단위들(620a, 620b, 620c)의 픽쳐 내에서의 좌표 간의 차이를 나타내는 정보에 해당할 수 있다. 즉, 영상 복호화 장치(100)는 부호화 단위들(620a, 620b, 620c)의 픽쳐 내에서의 위치 또는 좌표에 대한 정보를 직접 이용하거나 좌표간의 차이값에 대응하는 부호화 단위의 너비 또는 높이에 대한 정보를 이용함으로써 가운데에 위치하는 부호화 단위(620b)를 결정할 수 있다. According to an embodiment, information indicating the positions of the upper
일 실시예에 따라, 상단 부호화 단위(620a)의 좌측 상단의 샘플(630a)의 위치를 나타내는 정보는 (xa, ya) 좌표를 나타낼 수 있고, 가운데 부호화 단위(620b)의 좌측 상단의 샘플(530b)의 위치를 나타내는 정보는 (xb, yb) 좌표를 나타낼 수 있고, 하단 부호화 단위(620c)의 좌측 상단의 샘플(630c)의 위치를 나타내는 정보는 (xc, yc) 좌표를 나타낼 수 있다. 영상 복호화 장치(100)는 부호화 단위들(620a, 620b, 620c)에 각각 포함되는 좌측 상단의 샘플(630a, 630b, 630c)의 좌표를 이용하여 가운데 부호화 단위(620b)를 결정할 수 있다. 예를 들면, 좌측 상단의 샘플(630a, 630b, 630c)의 좌표를 오름차순 또는 내림차순으로 정렬하였을 때, 가운데에 위치하는 샘플(630b)의 좌표인 (xb, yb)를 포함하는 부호화 단위(620b)를 현재 부호화 단위(600)가 분할되어 결정된 부호화 단위들(620a, 620b, 620c) 중 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 좌측 상단의 샘플(630a, 630b, 630c)의 위치를 나타내는 좌표는 픽쳐 내에서의 절대적인 위치를 나타내는 좌표를 나타낼 수 있고, 나아가 상단 부호화 단위(620a)의 좌측 상단의 샘플(630a)의 위치를 기준으로, 가운데 부호화 단위(620b)의 좌측 상단의 샘플(630b)의 상대적 위치를 나타내는 정보인 (dxb, dyb)좌표, 하단 부호화 단위(620c)의 좌측 상단의 샘플(630c)의 상대적 위치를 나타내는 정보인 (dxc, dyc)좌표를 이용할 수도 있다. 또한 부호화 단위에 포함되는 샘플의 위치를 나타내는 정보로서 해당 샘플의 좌표를 이용함으로써 소정 위치의 부호화 단위를 결정하는 방법이 상술한 방법으로 한정하여 해석되어서는 안되고, 샘플의 좌표를 이용할 수 있는 다양한 산술적 방법으로 해석되어야 한다.According to an embodiment, information indicating the position of the upper
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위(600)를 복수개의 부호화 단위들(620a, 620b, 620c)로 분할할 수 있고, 부호화 단위들(620a, 620b, 620c) 중 소정의 기준에 따라 부호화 단위를 선택할 수 있다. 예를 들면, 영상 복호화 장치(100)는 부호화 단위들(620a, 620b, 620c) 중 크기가 다른 부호화 단위(620b)를 선택할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 상단 부호화 단위(620a)의 좌측 상단의 샘플(630a)의 위치를 나타내는 정보인 (xa, ya) 좌표, 가운데 부호화 단위(620b)의 좌측 상단의 샘플(630b)의 위치를 나타내는 정보인 (xb, yb) 좌표, 하단 부호화 단위(620c)의 좌측 상단의 샘플(630c)의 위치를 나타내는 정보인 (xc, yc) 좌표를 이용하여 부호화 단위들(620a, 620b, 620c) 각각의 너비 또는 높이를 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위들(620a, 620b, 620c)의 위치를 나타내는 좌표인 (xa, ya), (xb, yb), (xc, yc)를 이용하여 부호화 단위들(620a, 620b, 620c) 각각의 크기를 결정할 수 있다. 일 실시예에 따라, 영상 복호화 장치(100)는 상단 부호화 단위(620a)의 너비를 현재 부호화 단위(600)의 너비로 결정할 수 있다. 영상 복호화 장치(100)는 상단 부호화 단위(620a)의 높이를 yb-ya로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 가운데 부호화 단위(620b)의 너비를 현재 부호화 단위(600)의 너비로 결정할 수 있다. 영상 복호화 장치(100)는 가운데 부호화 단위(620b)의 높이를 yc-yb로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 하단 부호화 단위의 너비 또는 높이는 현재 부호화 단위의 너비 또는 높이와 상단 부호화 단위(620a) 및 가운데 부호화 단위(620b)의 너비 및 높이를 이용하여 결정할 수 있다. 영상 복호화 장치(100)는 결정된 부호화 단위들(620a, 620b, 620c)의 너비 및 높이에 기초하여 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정할 수 있다. 도 6을 참조하면, 영상 복호화 장치(100)는 상단 부호화 단위(620a) 및 하단 부호화 단위(620c)의 크기와 다른 크기를 가지는 가운데 부호화 단위(620b)를 소정 위치의 부호화 단위로 결정할 수 있다. 다만 상술한 영상 복호화 장치(100)가 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정하는 과정은 샘플 좌표에 기초하여 결정되는 부호화 단위의 크기를 이용하여 소정 위치의 부호화 단위를 결정하는 일 실시예에 불과하므로, 소정의 샘플 좌표에 따라 결정되는 부호화 단위의 크기를 비교하여 소정 위치의 부호화 단위를 결정하는 다양한 과정이 이용될 수 있다. According to an embodiment, the
영상 복호화 장치(100)는 좌측 부호화 단위(660a)의 좌측 상단의 샘플(670a)의 위치를 나타내는 정보인 (xd, yd) 좌표, 가운데 부호화 단위(660b)의 좌측 상단의 샘플(670b)의 위치를 나타내는 정보인 (xe, ye) 좌표, 우측 부호화 단위(660c)의 좌측 상단의 샘플(670c)의 위치를 나타내는 정보인 (xf, yf) 좌표를 이용하여 부호화 단위들(660a, 660b, 660c) 각각의 너비 또는 높이를 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위들(660a, 660b, 660c)의 위치를 나타내는 좌표인 (xd, yd), (xe, ye), (xf, yf)를 이용하여 부호화 단위들(660a, 660b, 660c) 각각의 크기를 결정할 수 있다.The
일 실시예에 따라, 영상 복호화 장치(100)는 좌측 부호화 단위(660a)의 너비를 xe-xd로 결정할 수 있다. 영상 복호화 장치(100)는 좌측 부호화 단위(660a)의 높이를 현재 부호화 단위(650)의 높이로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 가운데 부호화 단위(660b)의 너비를 xf-xe로 결정할 수 있다. 영상 복호화 장치(100)는 가운데 부호화 단위(660b)의 높이를 현재 부호화 단위(600)의 높이로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 우측 부호화 단위(660c)의 너비 또는 높이는 현재 부호화 단위(650)의 너비 또는 높이와 좌측 부호화 단위(660a) 및 가운데 부호화 단위(660b)의 너비 및 높이를 이용하여 결정할 수 있다. 영상 복호화 장치(100)는 결정된 부호화 단위들(660a, 660b, 660c)의 너비 및 높이에 기초하여 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정할 수 있다. 도 6을 참조하면, 영상 복호화 장치(100)는 좌측 부호화 단위(660a) 및 우측 부호화 단위(660c)의 크기와 다른 크기를 가지는 가운데 부호화 단위(660b)를 소정 위치의 부호화 단위로 결정할 수 있다. 다만 상술한 영상 복호화 장치(100)가 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정하는 과정은 샘플 좌표에 기초하여 결정되는 부호화 단위의 크기를 이용하여 소정 위치의 부호화 단위를 결정하는 일 실시예에 불과하므로, 소정의 샘플 좌표에 따라 결정되는 부호화 단위의 크기를 비교하여 소정 위치의 부호화 단위를 결정하는 다양한 과정이 이용될 수 있다. According to an embodiment, the
다만 부호화 단위의 위치를 결정하기 위하여 고려하는 샘플의 위치는 상술한 좌측 상단으로 한정하여 해석되어서는 안되고 부호화 단위에 포함되는 임의의 샘플의 위치에 대한 정보가 이용될 수 있는 것으로 해석될 수 있다. However, the position of the sample considered to determine the position of the coding unit should not be interpreted as being limited to the above-mentioned upper left corner, but it may be interpreted that information on the position of any sample included in the coding unit can be used.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위의 형태를 고려하여, 현재 부호화 단위가 분할되어 결정되는 홀수개의 부호화 단위들 중 소정 위치의 부호화 단위를 선택할 수 있다. 예를 들면, 현재 부호화 단위가 너비가 높이보다 긴 비-정사각형 형태라면 영상 복호화 장치(100)는 수평 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 수평 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다. 현재 부호화 단위가 높이가 너비보다 긴 비-정사각형 형태라면 영상 복호화 장치(100)는 수직 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 수직 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 짝수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 짝수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 영상 복호화 장치(100)는 현재 부호화 단위를 분할(바이너리 분할)하여 짝수개의 부호화 단위들을 결정할 수 있고 짝수개의 부호화 단위들의 위치에 대한 정보를 이용하여 소정 위치의 부호화 단위를 결정할 수 있다. 이에 대한 구체적인 과정은 도 6에서 상술한 홀수개의 부호화 단위들 중 소정 위치(예를 들면, 가운데 위치)의 부호화 단위를 결정하는 과정에 대응하는 과정일 수 있으므로 생략하도록 한다.According to an embodiment, the
일 실시예에 따라, 비-정사각형 형태의 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 분할 과정에서 소정 위치의 부호화 단위에 대한 소정의 정보를 이용할 수 있다. 예를 들면 영상 복호화 장치(100)는 현재 부호화 단위가 복수개로 분할된 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 분할 과정에서 가운데 부호화 단위에 포함된 샘플에 저장된 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나를 이용할 수 있다. According to an embodiment, when a current coding unit having a non-square shape is divided into a plurality of coding units, a predetermined value for a coding unit at a predetermined position is determined during the splitting process in order to determine a coding unit at a predetermined position among the plurality of coding units. information is available. For example, the
도 6을 참조하면 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(600)를 복수개의 부호화 단위들(620a, 620b, 620c)로 분할할 수 있으며, 복수개의 부호화 단위들(620a, 620b, 620c) 중 가운데에 위치하는 부호화 단위(620b)를 결정할 수 있다. 나아가 영상 복호화 장치(100)는 분할 형태 모드 정보가 획득되는 위치를 고려하여, 가운데에 위치하는 부호화 단위(620b)를 결정할 수 있다. 즉, 현재 부호화 단위(600)의 분할 형태 모드 정보는 현재 부호화 단위(600)의 가운데에 위치하는 샘플(640)에서 획득될 수 있으며, 상기 분할 형태 모드 정보에 기초하여 현재 부호화 단위(600)가 복수개의 부호화 단위들(620a, 620b, 620c)로 분할된 경우 상기 샘플(640)을 포함하는 부호화 단위(620b)를 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 가운데에 위치하는 부호화 단위로 결정하기 위해 이용되는 정보가 분할 형태 모드 정보로 한정하여 해석되어서는 안되고, 다양한 종류의 정보가 가운데에 위치하는 부호화 단위를 결정하는 과정에서 이용될 수 있다.Referring to FIG. 6 , the
일 실시예에 따라 소정 위치의 부호화 단위를 식별하기 위한 소정의 정보는, 결정하려는 부호화 단위에 포함되는 소정의 샘플에서 획득될 수 있다. 도 6을 참조하면, 영상 복호화 장치(100)는 현재 부호화 단위(600)가 분할되어 결정된 복수개의 부호화 단위들(620a, 620b, 620c) 중 소정 위치의 부호화 단위(예를 들면, 복수개로 분할된 부호화 단위 중 가운데에 위치하는 부호화 단위)를 결정하기 위하여 현재 부호화 단위(600) 내의 소정 위치의 샘플(예를 들면, 현재 부호화 단위(600)의 가운데에 위치하는 샘플)에서 획득되는 분할 형태 모드 정보를 이용할 수 있다. 즉, 영상 복호화 장치(100)는 현재 부호화 단위(600)의 블록 형태를 고려하여 상기 소정 위치의 샘플을 결정할 수 있고, 영상 복호화 장치(100)는 현재 부호화 단위(600)가 분할되어 결정되는 복수개의 부호화 단위들(620a, 620b, 620c) 중, 소정의 정보(예를 들면, 분할 형태 모드 정보)가 획득될 수 있는 샘플이 포함된 부호화 단위(620b)를 결정하여 소정의 제한을 둘 수 있다. 도 6을 참조하면 일 실시예에 따라 영상 복호화 장치(100)는 소정의 정보가 획득될 수 있는 샘플로서 현재 부호화 단위(600)의 가운데에 위치하는 샘플(640)을 결정할 수 있고, 영상 복호화 장치(100)는 이러한 샘플(640)이 포함되는 부호화 단위(620b)를 복호화 과정에서의 소정의 제한을 둘 수 있다. 다만 소정의 정보가 획득될 수 있는 샘플의 위치는 상술한 위치로 한정하여 해석되어서는 안되고, 제한을 두기 위해 결정하려는 부호화 단위(620b)에 포함되는 임의의 위치의 샘플들로 해석될 수 있다.According to an embodiment, predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in a coding unit to be determined. Referring to FIG. 6 , the
일 실시예에 따라 소정의 정보가 획득될 수 있는 샘플의 위치는 현재 부호화 단위(600)의 형태에 따라 결정될 수 있다. 일 실시예에 따라 블록 형태 정보는 현재 부호화 단위의 형태가 정사각형인지 또는 비-정사각형인지 여부를 결정할 수 있고, 형태에 따라 소정의 정보가 획득될 수 있는 샘플의 위치를 결정할 수 있다. 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위의 너비에 대한 정보 및 높이에 대한 정보 중 적어도 하나를 이용하여 현재 부호화 단위의 너비 및 높이 중 적어도 하나를 반으로 분할하는 경계 상에 위치하는 샘플을 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다. 또다른 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위에 관련된 블록 형태 정보가 비-정사각형 형태임을 나타내는 경우, 현재 부호화 단위의 긴 변을 반으로 분할하는 경계를 포함하는 샘플 중 하나를 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다. According to an embodiment, a position of a sample from which predetermined information can be obtained may be determined according to the shape of the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여, 분할 형태 모드 정보를 이용할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보를 부호화 단위에 포함된 소정 위치의 샘플에서 획득할 수 있고, 영상 복호화 장치(100)는 현재 부호화 단위가 분할되어 생성된 복수개의 부호화 단위들을 복수개의 부호화 단위 각각에 포함된 소정 위치의 샘플로부터 획득되는 분할 형태 모드 정보를 이용하여 분할할 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 포함된 소정 위치의 샘플에서 획득되는 분할 형태 모드 정보를 이용하여 재귀적으로 분할될 수 있다. 부호화 단위의 재귀적 분할 과정에 대하여는 도 5를 통해 상술하였으므로 자세한 설명은 생략하도록 한다. According to an embodiment, when the current coding unit is split into a plurality of coding units, the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정할 수 있고, 이러한 적어도 하나의 부호화 단위가 복호화되는 순서를 소정의 블록(예를 들면, 현재 부호화 단위)에 따라 결정할 수 있다. According to an embodiment, the
도 7는 일 실시예에 따라 영상 복호화 장치가 현재 부호화 단위를 분할하여 복수개의 부호화 단위들을 결정하는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.7 illustrates an order in which the plurality of coding units are processed when the image decoding apparatus determines the plurality of coding units by dividing the current coding unit according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 제1 부호화 단위(700)를 수직 방향으로 분할하여 제2 부호화 단위(710a, 710b)를 결정하거나 제1 부호화 단위(700)를 수평 방향으로 분할하여 제2 부호화 단위(730a, 730b)를 결정하거나 제1 부호화 단위(700)를 수직 방향 및 수평 방향으로 분할하여 제2 부호화 단위(750a, 750b, 750c, 750d)를 결정할 수 있다. According to an embodiment, the
도 7를 참조하면, 영상 복호화 장치(100)는 제1 부호화 단위(700)를 수직 방향으로 분할하여 결정된 제2 부호화 단위(710a, 710b)를 수평 방향(710c)으로 처리되도록 순서를 결정할 수 있다. 영상 복호화 장치(100)는 제1 부호화 단위(700)를 수평 방향으로 분할하여 결정된 제2 부호화 단위(730a, 730b)의 처리 순서를 수직 방향(730c)으로 결정할 수 있다. 영상 복호화 장치(100)는 제1 부호화 단위(700)를 수직 방향 및 수평 방향으로 분할하여 결정된 제2 부호화 단위(750a, 750b, 750c, 750d)를 하나의 행에 위치하는 부호화 단위들이 처리된 후 다음 행에 위치하는 부호화 단위들이 처리되는 소정의 순서(예를 들면, 래스터 스캔 순서((raster scan order) 또는 z 스캔 순서(z scan order)(750e) 등)에 따라 결정할 수 있다. Referring to FIG. 7 , the
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위들을 재귀적으로 분할할 수 있다. 도 7를 참조하면, 영상 복호화 장치(100)는 제1 부호화 단위(700)를 분할하여 복수개의 부호화 단위들(710a, 710b, 730a, 730b, 750a, 750b, 750c, 750d)을 결정할 수 있고, 결정된 복수개의 부호화 단위들(710a, 710b, 730a, 730b, 750a, 750b, 750c, 750d) 각각을 재귀적으로 분할할 수 있다. 복수개의 부호화 단위들(710a, 710b, 730a, 730b, 750a, 750b, 750c, 750d)을 분할하는 방법은 제1 부호화 단위(700)를 분할하는 방법에 대응하는 방법이 될 수 있다. 이에 따라 복수개의 부호화 단위들(710a, 710b, 730a, 730b, 750a, 750b, 750c, 750d)은 각각 독립적으로 복수개의 부호화 단위들로 분할될 수 있다. 도 7를 참조하면 영상 복호화 장치(100)는 제1 부호화 단위(700)를 수직 방향으로 분할하여 제2 부호화 단위(710a, 710b)를 결정할 수 있고, 나아가 제2 부호화 단위(710a, 710b) 각각을 독립적으로 분할하거나 분할하지 않는 것으로 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 좌측의 제2 부호화 단위(710a)를 수평 방향으로 분할하여 제3 부호화 단위(720a, 720b)로 분할할 수 있고, 우측의 제2 부호화 단위(710b)는 분할하지 않을 수 있다. According to an embodiment, the
일 실시예에 따라 부호화 단위들의 처리 순서는 부호화 단위의 분할 과정에 기초하여 결정될 수 있다. 다시 말해, 분할된 부호화 단위들의 처리 순서는 분할되기 직전의 부호화 단위들의 처리 순서에 기초하여 결정될 수 있다. 영상 복호화 장치(100)는 좌측의 제2 부호화 단위(710a)가 분할되어 결정된 제3 부호화 단위(720a, 720b)가 처리되는 순서를 우측의 제2 부호화 단위(710b)와 독립적으로 결정할 수 있다. 좌측의 제2 부호화 단위(710a)가 수평 방향으로 분할되어 제3 부호화 단위(720a, 720b)가 결정되었으므로 제3 부호화 단위(720a, 720b)는 수직 방향(720c)으로 처리될 수 있다. 또한 좌측의 제2 부호화 단위(710a) 및 우측의 제2 부호화 단위(710b)가 처리되는 순서는 수평 방향(710c)에 해당하므로, 좌측의 제2 부호화 단위(710a)에 포함되는 제3 부호화 단위(720a, 720b)가 수직 방향(720c)으로 처리된 후에 우측 부호화 단위(710b)가 처리될 수 있다. 상술한 내용은 부호화 단위들이 각각 분할 전의 부호화 단위에 따라 처리 순서가 결정되는 과정을 설명하기 위한 것이므로, 상술한 실시예에 한정하여 해석되어서는 안되고, 다양한 형태로 분할되어 결정되는 부호화 단위들이 소정의 순서에 따라 독립적으로 처리될 수 있는 다양한 방법으로 이용되는 것으로 해석되어야 한다.According to an embodiment, the processing order of the coding units may be determined based on a splitting process of the coding units. In other words, the processing order of the split coding units may be determined based on the processing order of the coding units immediately before being split. The
도 8는 일 실시예에 따라 영상 복호화 장치가 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것임을 결정하는 과정을 도시한다.FIG. 8 illustrates a process of determining, by the image decoding apparatus, that the current coding unit is to be split into an odd number of coding units when the coding units cannot be processed in a predetermined order, according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 획득된 분할 형태 모드 정보에 기초하여 현재 부호화 단위가 홀수개의 부호화 단위들로 분할되는 것을 결정할 수 있다. 도 8를 참조하면 정사각형 형태의 제1 부호화 단위(800)가 비-정사각형 형태의 제2 부호화 단위(810a, 810b)로 분할될 수 있고, 제2 부호화 단위(810a, 810b)는 각각 독립적으로 제3 부호화 단위(820a, 820b, 820c, 820d, 820e)로 분할될 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 제2 부호화 단위 중 좌측 부호화 단위(810a)는 수평 방향으로 분할하여 복수개의 제3 부호화 단위(820a, 820b)를 결정할 수 있고, 우측 부호화 단위(810b)는 홀수개의 제3 부호화 단위(820c, 820d, 820e)로 분할할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 제3 부호화 단위들(820a, 820b, 820c, 820d, 820e)이 소정의 순서로 처리될 수 있는지 여부를 판단하여 홀수개로 분할된 부호화 단위가 존재하는지를 결정할 수 있다. 도 8를 참조하면, 영상 복호화 장치(100)는 제1 부호화 단위(800)를 재귀적으로 분할하여 제3 부호화 단위(820a, 820b, 820c, 820d, 820e)를 결정할 수 있다. 영상 복호화 장치(100)는 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나에 기초하여, 제1 부호화 단위(800), 제2 부호화 단위(810a, 810b) 또는 제3 부호화 단위(820a, 820b, 820c, 820d, 820e)가 분할되는 형태 중 홀수개의 부호화 단위로 분할되는지 여부를 결정할 수 있다. 예를 들면, 제2 부호화 단위(810a, 810b) 중 우측에 위치하는 부호화 단위가 홀수개의 제3 부호화 단위(820c, 820d, 820e)로 분할될 수 있다. 제1 부호화 단위(800)에 포함되는 복수개의 부호화 단위들이 처리되는 순서는 소정의 순서(예를 들면, z-스캔 순서(z-scan order)(830))가 될 수 있고, 영상 복호화 장치(100)는 우측 제2 부호화 단위(810b)가 홀수개로 분할되어 결정된 제3 부호화 단위(820c, 820d, 820e)가 상기 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 판단할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 제1 부호화 단위(800)에 포함되는 제3 부호화 단위(820a, 820b, 820c, 820d, 820e)가 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 결정할 수 있으며, 상기 조건은 제3 부호화 단위(820a, 820b, 820c, 820d, 820e)의 경계에 따라 제2 부호화 단위(810a, 810b)의 너비 및 높이 중 적어도 하나를 반으로 분할되는지 여부와 관련된다. 예를 들면 비-정사각형 형태의 좌측 제2 부호화 단위(810a)의 높이를 반으로 분할하여 결정되는 제3 부호화 단위(820a, 820b)는 조건을 만족할 수 있다. 우측 제2 부호화 단위(810b)를 3개의 부호화 단위로 분할하여 결정되는 제3 부호화 단위(820c, 820d, 820e)들의 경계가 우측 제2 부호화 단위(810b)의 너비 또는 높이를 반으로 분할하지 못하므로 제3 부호화 단위(820c, 820d, 820e)는 조건을 만족하지 못하는 것으로 결정될 수 있다. 영상 복호화 장치(100)는 이러한 조건 불만족의 경우 스캔 순서의 단절(disconnection)로 판단하고, 판단 결과에 기초하여 우측 제2 부호화 단위(810b)는 홀수개의 부호화 단위로 분할되는 것으로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an embodiment, the
도 9은 일 실시예에 따라 영상 복호화 장치가 제1 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다. 9 illustrates a process in which an image decoding apparatus determines at least one coding unit by dividing a first coding unit, according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 수신부(110)를 통해 획득한 분할 형태 모드 정보에 기초하여 제1 부호화 단위(900)를 분할할 수 있다. 정사각형 형태의 제1 부호화 단위(900)는 4개의 정사각형 형태를 가지는 부호화 단위로 분할되거나 또는 비-정사각형 형태의 복수개의 부호화 단위로 분할할 수 있다. 예를 들면 도 9을 참조하면, 제1 부호화 단위(900)는 정사각형이고 분할 형태 모드 정보가 비-정사각형의 부호화 단위로 분할됨을 나타내는 경우 영상 복호화 장치(100)는 제1 부호화 단위(900)를 복수개의 비-정사각형의 부호화 단위들로 분할할 수 있다. 구체적으로, 분할 형태 모드 정보가 제1 부호화 단위(900)를 수평 방향 또는 수직 방향으로 분할하여 홀수개의 부호화 단위를 결정하는 것을 나타내는 경우, 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(900)를 홀수개의 부호화 단위들로서 수직 방향으로 분할되어 결정된 제2 부호화 단위(910a, 910b, 910c) 또는 수평 방향으로 분할되어 결정된 제2 부호화 단위(920a, 920b, 920c)로 분할할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 제1 부호화 단위(900)에 포함되는 제2 부호화 단위(910a, 910b, 910c, 920a, 920b, 920c)가 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 결정할 수 있으며, 상기 조건은 제2 부호화 단위(910a, 910b, 910c, 920a, 920b, 920c)의 경계에 따라 제1 부호화 단위(900)의 너비 및 높이 중 적어도 하나를 반으로 분할되는지 여부와 관련된다. 도 9를 참조하면 정사각형 형태의 제1 부호화 단위(900)를 수직 방향으로 분할하여 결정되는 제2 부호화 단위(910a, 910b, 910c)들의 경계가 제1 부호화 단위(900)의 너비를 반으로 분할하지 못하므로 제1 부호화 단위(900)는 소정의 순서에 따라 처리될 수 있는 조건을 만족하지 못하는 것으로 결정될 수 있다. 또한 정사각형 형태의 제1 부호화 단위(900)를 수평 방향으로 분할하여 결정되는 제2 부호화 단위(920a, 920b, 920c)들의 경계가 제1 부호화 단위(900)의 너비를 반으로 분할하지 못하므로 제1 부호화 단위(900)는 소정의 순서에 따라 처리될 수 있는 조건을 만족하지 못하는 것으로 결정될 수 있다. 영상 복호화 장치(100)는 이러한 조건 불만족의 경우 스캔 순서의 단절(disconnection)로 판단하고, 판단 결과에 기초하여 제1 부호화 단위(900)는 홀수개의 부호화 단위로 분할되는 것으로 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an embodiment, the
일 실시예에 따라, 영상 복호화 장치(100)는 제1 부호화 단위를 분할하여 다양한 형태의 부호화 단위들을 결정할 수 있다.According to an embodiment, the
도 9을 참조하면, 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(900), 비-정사각형 형태의 제1 부호화 단위(930 또는 950)를 다양한 형태의 부호화 단위들로 분할할 수 있다. Referring to FIG. 9 , the
도 10은 일 실시예에 따라 영상 복호화 장치가 제1 부호화 단위가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.10 is a diagram illustrating a form in which a second coding unit can be split when a non-square second coding unit determined by splitting a first coding unit by an image decoding apparatus satisfies a predetermined condition according to an embodiment; show that
일 실시예에 따라 영상 복호화 장치(100)는 수신부(110)를 통해 획득한 분할 형태 모드 정보에 기초하여 정사각형 형태의 제1 부호화 단위(1000)를 비-정사각형 형태의 제2 부호화 단위(1010a, 1010b, 1020a, 1020b)로 분할하는 것으로 결정할 수 있다. 제2 부호화 단위(1010a, 1010b, 1020a, 1020b)는 독립적으로 분할될 수 있다. 이에 따라 영상 복호화 장치(100)는 제2 부호화 단위(1010a, 1010b, 1020a, 1020b) 각각에 관련된 분할 형태 모드 정보에 기초하여 복수개의 부호화 단위로 분할하거나 분할하지 않는 것을 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 수직 방향으로 제1 부호화 단위(1000)가 분할되어 결정된 비-정사각형 형태의 좌측 제2 부호화 단위(1010a)를 수평 방향으로 분할하여 제3 부호화 단위(1012a, 1012b)를 결정할 수 있다. 다만 영상 복호화 장치(100)는 좌측 제2 부호화 단위(1010a)를 수평 방향으로 분할한 경우, 우측 제2 부호화 단위(1010b)는 좌측 제2 부호화 단위(1010a)가 분할된 방향과 동일하게 수평 방향으로 분할될 수 없도록 제한할 수 있다. 만일 우측 제2 부호화 단위(1010b)가 동일한 방향으로 분할되어 제3 부호화 단위(1014a, 1014b)가 결정된 경우, 좌측 제2 부호화 단위(1010a) 및 우측 제2 부호화 단위(1010b)가 수평 방향으로 각각 독립적으로 분할됨으로써 제3 부호화 단위(1012a, 1012b, 1014a, 1014b)가 결정될 수 있다. 하지만 이는 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1000)를 4개의 정사각형 형태의 제2 부호화 단위(1030a, 1030b, 1030c, 1030d)로 분할한 것과 동일한 결과이며 이는 영상 복호화 측면에서 비효율적일 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 수평 방향으로 제1 부호화 단위(1000)가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(1020a 또는 1020b)를 수직 방향으로 분할하여 제3 부호화 단위(1022a, 1022b, 1024a, 1024b)를 결정할 수 있다. 다만 영상 복호화 장치(100)는 제2 부호화 단위 중 하나(예를 들면 상단 제2 부호화 단위(1020a))를 수직 방향으로 분할한 경우, 상술한 이유에 따라 다른 제2 부호화 단위(예를 들면 하단 부호화 단위(1020b))는 상단 제2 부호화 단위(1020a)가 분할된 방향과 동일하게 수직 방향으로 분할될 수 없도록 제한할 수 있다. According to an embodiment, the
도 11은 일 실시예에 따라 분할 형태 모드 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 영상 복호화 장치가 정사각형 형태의 부호화 단위를 분할하는 과정을 도시한다.11 illustrates a process in which the image decoding apparatus splits the square-shaped coding unit when the division mode information cannot indicate that the division form mode information is divided into four square-shaped coding units, according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1100)를 분할하여 제2 부호화 단위(1110a, 1110b, 1120a, 1120b 등)를 결정할 수 있다. 분할 형태 모드 정보에는 부호화 단위가 분할될 수 있는 다양한 형태에 대한 정보가 포함될 수 있으나, 다양한 형태에 대한 정보에는 정사각형 형태의 4개의 부호화 단위로 분할하기 위한 정보가 포함될 수 없는 경우가 있다. 이러한 분할 형태 모드 정보에 따르면, 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(1100)를 4개의 정사각형 형태의 제2 부호화 단위(1130a, 1130b, 1130c, 1130d)로 분할하지 못한다. 분할 형태 모드 정보에 기초하여 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(1110a, 1110b, 1120a, 1120b 등)를 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(1110a, 1110b, 1120a, 1120b 등)를 각각 독립적으로 분할할 수 있다. 재귀적인 방법을 통해 제2 부호화 단위(1110a, 1110b, 1120a, 1120b 등) 각각이 소정의 순서대로 분할될 수 있으며, 이는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1100)가 분할되는 방법에 대응하는 분할 방법일 수 있다. According to an embodiment, the
예를 들면 영상 복호화 장치(100)는 좌측 제2 부호화 단위(1110a)가 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1112a, 1112b)를 결정할 수 있고, 우측 제2 부호화 단위(1110b)가 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1114a, 1114b)를 결정할 수 있다. 나아가 영상 복호화 장치(100)는 좌측 제2 부호화 단위(1110a) 및 우측 제2 부호화 단위(1110b) 모두 수평 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1116a, 1116b, 1116c, 1116d)를 결정할 수도 있다. 이러한 경우 제1 부호화 단위(1100)가 4개의 정사각형 형태의 제2 부호화 단위(1130a, 1130b, 1130c, 1130d)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다. For example, the
또 다른 예를 들면 영상 복호화 장치(100)는 상단 제2 부호화 단위(1120a)가 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1122a, 1122b)를 결정할 수 있고, 하단 제2 부호화 단위(1120b)가 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1124a, 1124b)를 결정할 수 있다. 나아가 영상 복호화 장치(100)는 상단 제2 부호화 단위(1120a) 및 하단 제2 부호화 단위(1120b) 모두 수직 방향으로 분할되어 정사각형 형태의 제3 부호화 단위(1126a, 1126b, 1126a, 1126b)를 결정할 수도 있다. 이러한 경우 제1 부호화 단위(1100)가 4개의 정사각형 형태의 제2 부호화 단위(1130a, 1130b, 1130c, 1130d)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다. As another example, the
도 12는 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.12 is a diagram illustrating that a processing order between a plurality of coding units may vary according to a division process of a coding unit, according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1200)를 분할할 수 있다. 블록 형태가 정사각형이고, 분할 형태 모드 정보가 제1 부호화 단위(1200)가 수평 방향 및 수직 방향 중 적어도 하나의 방향으로 분할됨을 나타내는 경우, 영상 복호화 장치(100)는 제1 부호화 단위(1200)를 분할하여 제2 부호화 단위(예를 들면, 1210a, 1210b, 1220a, 1220b 등)를 결정할 수 있다. 도 12를 참조하면 제1 부호화 단위1200)가 수평 방향 또는 수직 방향만으로 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(1210a, 1210b, 1220a, 1220b)는 각각에 대한 분할 형태 모드 정보에 기초하여 독립적으로 분할될 수 있다. 예를 들면 영상 복호화 장치(100)는 제1 부호화 단위(1200)가 수직 방향으로 분할되어 생성된 제2 부호화 단위(1210a, 1210b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(1216a, 1216b, 1216c, 1216d)를 결정할 수 있고, 제1 부호화 단위(1200)가 수평 방향으로 분할되어 생성된 제2 부호화 단위(1220a, 1220b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(1226a, 1226b, 1226c, 1226d)를 결정할 수 있다. 이러한 제2 부호화 단위(1210a, 1210b, 1220a, 1220b)의 분할 과정은 도 11과 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 소정의 순서에 따라 부호화 단위를 처리할 수 있다. 소정의 순서에 따른 부호화 단위의 처리에 대한 특징은 도 7와 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다. 도 12를 참조하면 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(1200)를 분할하여 4개의 정사각형 형태의 제3 부호화 단위(1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, 1226d)를 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 제1 부호화 단위(1200)가 분할되는 형태에 따라 제3 부호화 단위(1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, 1226d)의 처리 순서를 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 수직 방향으로 분할되어 생성된 제2 부호화 단위(1210a, 1210b)를 수평 방향으로 각각 분할하여 제3 부호화 단위(1216a, 1216b, 1216c, 1216d)를 결정할 수 있고, 영상 복호화 장치(100)는 좌측 제2 부호화 단위(1210a)에 포함되는 제3 부호화 단위(1216a, 1216c)를 수직 방향으로 먼저 처리한 후, 우측 제2 부호화 단위(1210b)에 포함되는 제3 부호화 단위(1216b, 1216d)를 수직 방향으로 처리하는 순서(1217)에 따라 제3 부호화 단위(1216a, 1216b, 1216c, 1216d)를 처리할 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 수평 방향으로 분할되어 생성된 제2 부호화 단위(1220a, 1220b)를 수직 방향으로 각각 분할하여 제3 부호화 단위(1226a, 1226b, 1226c, 1226d)를 결정할 수 있고, 영상 복호화 장치(100)는 상단 제2 부호화 단위(1220a)에 포함되는 제3 부호화 단위(1226a, 1226b)를 수평 방향으로 먼저 처리한 후, 하단 제2 부호화 단위(1220b)에 포함되는 제3 부호화 단위(1226c, 1226d)를 수평 방향으로 처리하는 순서(1227)에 따라 제3 부호화 단위(1226a, 1226b, 1226c, 1226d)를 처리할 수 있다.According to an embodiment, the
도 12를 참조하면, 제2 부호화 단위(1210a, 1210b, 1220a, 1220b)가 각각 분할되어 정사각형 형태의 제3 부호화 단위(1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, 1226d)가 결정될 수 있다. 수직 방향으로 분할되어 결정된 제2 부호화 단위(1210a, 1210b) 및 수평 방향으로 분할되어 결정된 제2 부호화 단위(1220a, 1220b)는 서로 다른 형태로 분할된 것이지만, 이후에 결정되는 제3 부호화 단위(1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, 1226d)에 따르면 결국 동일한 형태의 부호화 단위들로 제1 부호화 단위(1200)가 분할된 결과가 된다. 이에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 상이한 과정을 통해 재귀적으로 부호화 단위를 분할함으로써 결과적으로 동일한 형태의 부호화 단위들을 결정하더라도, 동일한 형태로 결정된 복수개의 부호화 단위들을 서로 다른 순서로 처리할 수 있다.Referring to FIG. 12 , the
도 13은 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위의 심도가 결정되는 과정을 도시한다.13 illustrates a process of determining a depth of a coding unit according to a change in a form and size of a coding unit when a coding unit is recursively split to determine a plurality of coding units, according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위의 심도를 소정의 기준에 따라 결정할 수 있다. 예를 들면 소정의 기준은 부호화 단위의 긴 변의 길이가 될 수 있다. 영상 복호화 장치(100)는 현재 부호화 단위의 긴 변의 길이가 분할되기 전의 부호화 단위의 긴 변의 길이보다 2n (n>0) 배로 분할된 경우, 현재 부호화 단위의 심도는 분할되기 전의 부호화 단위의 심도보다 n만큼 심도가 증가된 것으로 결정할 수 있다. 이하에서는 심도가 증가된 부호화 단위를 하위 심도의 부호화 단위로 표현하도록 한다.According to an embodiment, the
도 13을 참조하면, 일 실시예에 따라 정사각형 형태임을 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는 ′0: SQUARE′를 나타낼 수 있음)에 기초하여 영상 복호화 장치(100)는 정사각형 형태인 제1 부호화 단위(1300)를 분할하여 하위 심도의 제2 부호화 단위(1302), 제3 부호화 단위(1304) 등을 결정할 수 있다. 정사각형 형태의 제1 부호화 단위(1300)의 크기를 2Nx2N이라고 한다면, 제1 부호화 단위(1300)의 너비 및 높이를 1/2배로 분할하여 결정된 제2 부호화 단위(1302)는 NxN의 크기를 가질 수 있다. 나아가 제2 부호화 단위(1302)의 너비 및 높이를 1/2크기로 분할하여 결정된 제3 부호화 단위(1304)는 N/2xN/2의 크기를 가질 수 있다. 이 경우 제3 부호화 단위(1304)의 너비 및 높이는 제1 부호화 단위(1300)의 1/4배에 해당한다. 제1 부호화 단위(1300)의 심도가 D인 경우 제1 부호화 단위(1300)의 너비 및 높이의 1/2배인 제2 부호화 단위(1302)의 심도는 D+1일 수 있고, 제1 부호화 단위(1300)의 너비 및 높이의 1/4배인 제3 부호화 단위(1304)의 심도는 D+2일 수 있다. Referring to FIG. 13 , according to an exemplary embodiment, the
일 실시예에 따라 비-정사각형 형태를 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는, 높이가 너비보다 긴 비-정사각형임을 나타내는 ′1: NS_VER′ 또는 너비가 높이보다 긴 비-정사각형임을 나타내는 ′2: NS_HOR′를 나타낼 수 있음)에 기초하여, 영상 복호화 장치(100)는 비-정사각형 형태인 제1 부호화 단위(1310 또는 1320)를 분할하여 하위 심도의 제2 부호화 단위(1312 또는 1322), 제3 부호화 단위(1314 또는 1324) 등을 결정할 수 있다. According to an embodiment, block shape information indicating a non-square shape (eg, block shape information is '1: NS_VER' indicating that the height is a non-square having a height longer than the width or ' indicating that the width is a non-square shape longer than the height) 2: NS_HOR′), the
영상 복호화 장치(100)는 Nx2N 크기의 제1 부호화 단위(1310)의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 1302, 1312, 1322 등)를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 제1 부호화 단위(1310)를 수평 방향으로 분할하여 NxN 크기의 제2 부호화 단위(1302) 또는 NxN/2 크기의 제2 부호화 단위(1322)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 N/2xN 크기의 제2 부호화 단위(1312)를 결정할 수도 있다.The
일 실시예에 따라 영상 복호화 장치(100)는 2NxN 크기의 제1 부호화 단위(1320) 의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 1302, 1312, 1322 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제1 부호화 단위(1320)를 수직 방향으로 분할하여 NxN 크기의 제2 부호화 단위(1302) 또는 N/2xN 크기의 제2 부호화 단위(1312)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 NxN/2 크기의 제2 부호화 단위(1322)를 결정할 수도 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 NxN 크기의 제2 부호화 단위(1302) 의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 1304, 1314, 1324 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제2 부호화 단위(1302)를 수직 방향 및 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(1304)를 결정하거나 N/4xN/2 크기의 제3 부호화 단위(1314)를 결정하거나 N/2xN/4 크기의 제3 부호화 단위(1324)를 결정할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 N/2xN 크기의 제2 부호화 단위(1312)의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 1304, 1314, 1324 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제2 부호화 단위(1312)를 수평 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(1304) 또는 N/2xN/4 크기의 제3 부호화 단위(1324)를 결정하거나 수직 방향 및 수평 방향으로 분할하여 N/4xN/2 크기의 제3 부호화 단위(1314)를 결정할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 NxN/2 크기의 제2 부호화 단위(1322)의 너비 및 높이 중 적어도 하나를 분할하여 제3 부호화 단위(예를 들면, 1304, 1314, 1324 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제2 부호화 단위(1322)를 수직 방향으로 분할하여 N/2xN/2 크기의 제3 부호화 단위(1304) 또는 N/4xN/2 크기의 제3 부호화 단위(1314)를 결정하거나 수직 방향 및 수평 방향으로 분할하여 N/2xN/4크기의 제3 부호화 단위(1324)를 결정할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 정사각형 형태의 부호화 단위(예를 들면, 1300, 1302, 1304)를 수평 방향 또는 수직 방향으로 분할할 수 있다. 예를 들면, 2Nx2N 크기의 제1 부호화 단위(1300)를 수직 방향으로 분할하여 Nx2N 크기의 제1 부호화 단위(1310)를 결정하거나 수평 방향으로 분할하여 2NxN 크기의 제1 부호화 단위(1320)를 결정할 수 있다. 일 실시예에 따라 심도가 부호화 단위의 가장 긴 변의 길이에 기초하여 결정되는 경우, 2Nx2N 크기의 제1 부호화 단위(1300)가 수평 방향 또는 수직 방향으로 분할되어 결정되는 부호화 단위의 심도는 제1 부호화 단위(1300)의 심도와 동일할 수 있다.According to an embodiment, the
일 실시예에 따라 제3 부호화 단위(1314 또는 1324)의 너비 및 높이는 제1 부호화 단위(1310 또는 1320)의 1/4배에 해당할 수 있다. 제1 부호화 단위(1310 또는 1320)의 심도가 D인 경우 제1 부호화 단위(1310 또는 1320)의 너비 및 높이의 1/2배인 제2 부호화 단위(1312 또는 1322)의 심도는 D+1일 수 있고, 제1 부호화 단위(1310 또는 1320)의 너비 및 높이의 1/4배인 제3 부호화 단위(1314 또는 1324)의 심도는 D+2일 수 있다. According to an embodiment, a width and a height of the
도 14은 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.FIG. 14 illustrates a depth that may be determined according to shapes and sizes of coding units and a part index (hereinafter referred to as PID) for classifying coding units, according to an embodiment.
일 실시예에 따라 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(1400)를 분할하여 다양한 형태의 제2 부호화 단위를 결정할 수 있다. 도 14를 참조하면, 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 제1 부호화 단위(1400)를 수직 방향 및 수평 방향 중 적어도 하나의 방향으로 분할하여 제2 부호화 단위(1402a, 1402b, 1404a, 1404b, 1406a, 1406b, 1406c, 1406d)를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 제1 부호화 단위(1400)에 대한 분할 형태 모드 정보에 기초하여 제2 부호화 단위(1402a, 1402b, 1404a, 1404b, 1406a, 1406b, 1406c, 1406d)를 결정할 수 있다. According to an embodiment, the
일 실시예에 따라 정사각형 형태의 제1 부호화 단위(1400)에 대한 분할 형태 모드 정보에 따라 결정되는 제2 부호화 단위(1402a, 1402b, 1404a, 1404b, 1406a, 1406b, 1406c, 1406d)는 긴 변의 길이에 기초하여 심도가 결정될 수 있다. 예를 들면, 정사각형 형태의 제1 부호화 단위(1400)의 한 변의 길이와 비-정사각형 형태의 제2 부호화 단위(1402a, 1402b, 1404a, 1404b)의 긴 변의 길이가 동일하므로, 제1 부호화 단위(1400)와 비-정사각형 형태의 제2 부호화 단위(1402a, 1402b, 1404a, 1404b)의 심도는 D로 동일하다고 볼 수 있다. 이에 반해 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1400)를 4개의 정사각형 형태의 제2 부호화 단위(1406a, 1406b, 1406c, 1406d)로 분할한 경우, 정사각형 형태의 제2 부호화 단위(1406a, 1406b, 1406c, 1406d)의 한 변의 길이는 제1 부호화 단위(1400)의 한 변의 길이의 1/2배 이므로, 제2 부호화 단위(1406a, 1406b, 1406c, 1406d)의 심도는 제1 부호화 단위(1400)의 심도인 D보다 한 심도 하위인 D+1의 심도일 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 높이가 너비보다 긴 형태의 제1 부호화 단위(1410)를 분할 형태 모드 정보에 따라 수평 방향으로 분할하여 복수개의 제2 부호화 단위(1412a, 1412b, 1414a, 1414b, 1414c)로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 너비가 높이보다 긴 형태의 제1 부호화 단위(1420)를 분할 형태 모드 정보에 따라 수직 방향으로 분할하여 복수개의 제2 부호화 단위(1422a, 1422b, 1424a, 1424b, 1424c)로 분할할 수 있다.According to an embodiment, the
일 실시예에 따라 비-정사각형 형태의 제1 부호화 단위(1410 또는 1420)에 대한 분할 형태 모드 정보에 따라 결정되는 제2 부호화 단위(1412a, 1412b, 1414a, 1414b, 1414c. 1422a, 1422b, 1424a, 1424b, 1424c)는 긴 변의 길이에 기초하여 심도가 결정될 수 있다. 예를 들면, 정사각형 형태의 제2 부호화 단위(1412a, 1412b)의 한 변의 길이는 높이가 너비보다 긴 비-정사각형 형태의 제1 부호화 단위(1410)의 한 변의 길이의 1/2배이므로, 정사각형 형태의 제2 부호화 단위(1412a, 1412b)의 심도는 비-정사각형 형태의 제1 부호화 단위(1410)의 심도 D보다 한 심도 하위의 심도인 D+1이다. According to an embodiment, the
나아가 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 비-정사각형 형태의 제1 부호화 단위(1410)를 홀수개의 제2 부호화 단위(1414a, 1414b, 1414c)로 분할할 수 있다. 홀수개의 제2 부호화 단위(1414a, 1414b, 1414c)는 비-정사각형 형태의 제2 부호화 단위(1414a, 1414c) 및 정사각형 형태의 제2 부호화 단위(1414b)를 포함할 수 있다. 이 경우 비-정사각형 형태의 제2 부호화 단위(1414a, 1414c)의 긴 변의 길이 및 정사각형 형태의 제2 부호화 단위(1414b)의 한 변의 길이는 제1 부호화 단위(1410)의 한 변의 길이의 1/2배 이므로, 제2 부호화 단위(1414a, 1414b, 1414c)의 심도는 제1 부호화 단위(1410)의 심도인 D보다 한 심도 하위인 D+1의 심도일 수 있다. 영상 복호화 장치(100)는 제1 부호화 단위(1410)와 관련된 부호화 단위들의 심도를 결정하는 상기 방식에 대응하는 방식으로, 너비가 높이보다 긴 비-정사각형 형태의 제1 부호화 단위(1420)와 관련된 부호화 단위들의 심도를 결정할 수 있다.Furthermore, the
일 실시예에 따라 영상 복호화 장치(100)는 분할된 부호화 단위들의 구분을 위한 인덱스(PID)를 결정함에 있어서, 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 14를 참조하면, 홀수개로 분할된 부호화 단위들(1414a, 1414b, 1414c) 중 가운데에 위치하는 부호화 단위(1414b)는 다른 부호화 단위들(1414a, 1414c)와 너비는 동일하지만 높이가 다른 부호화 단위들(1414a, 1414c)의 높이의 두 배일 수 있다. 즉, 이 경우 가운데에 위치하는 부호화 단위(1414b)는 다른 부호화 단위들(1414a, 1414c)의 두 개를 포함할 수 있다. 따라서, 스캔 순서에 따라 가운데에 위치하는 부호화 단위(1414b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(1414c)는 인덱스가 2가 증가한 3일수 있다. 즉 인덱스의 값의 불연속성이 존재할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 이러한 분할된 부호화 단위들 간의 구분을 위한 인덱스의 불연속성의 존재 여부에 기초하여 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌지 여부를 결정할 수 있다. According to an embodiment, in determining the index (PID) for distinguishing the divided coding units, when the odd-numbered coding units are not of the same size, the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위로부터 분할되어 결정된 복수개의 부호화 단위들을 구분하기 위한 인덱스의 값에 기초하여 특정 분할 형태로 분할된 것인지를 결정할 수 있다. 도 14를 참조하면 영상 복호화 장치(100)는 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(1410)를 분할하여 짝수개의 부호화 단위(1412a, 1412b)를 결정하거나 홀수개의 부호화 단위(1414a, 1414b, 1414c)를 결정할 수 있다. 영상 복호화 장치(100)는 복수개의 부호화 단위 각각을 구분하기 위하여 각 부호화 단위를 나타내는 인덱스(PID)를 이용할 수 있다. 일 실시예에 따라 PID는 각각의 부호화 단위의 소정 위치의 샘플(예를 들면, 좌측 상단 샘플)에서 획득될 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위의 구분을 위한 인덱스를 이용하여 분할되어 결정된 부호화 단위들 중 소정 위치의 부호화 단위를 결정할 수 있다. 일 실시예에 따라 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(1410)에 대한 분할 형태 모드 정보가 3개의 부호화 단위로 분할됨을 나타내는 경우 영상 복호화 장치(100)는 제1 부호화 단위(1410)를 3개의 부호화 단위(1414a, 1414b, 1414c)로 분할할 수 있다. 영상 복호화 장치(100)는 3개의 부호화 단위(1414a, 1414b, 1414c) 각각에 대한 인덱스를 할당할 수 있다. 영상 복호화 장치(100)는 홀수개로 분할된 부호화 단위 중 가운데 부호화 단위를 결정하기 위하여 각 부호화 단위에 대한 인덱스를 비교할 수 있다. 영상 복호화 장치(100)는 부호화 단위들의 인덱스에 기초하여 인덱스들 중 가운데 값에 해당하는 인덱스를 갖는 부호화 단위(1414b)를, 제1 부호화 단위(1410)가 분할되어 결정된 부호화 단위 중 가운데 위치의 부호화 단위로서 결정할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 분할된 부호화 단위들의 구분을 위한 인덱스를 결정함에 있어서, 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 14를 참조하면, 제1 부호화 단위(1410)가 분할되어 생성된 부호화 단위(1414b)는 다른 부호화 단위들(1414a, 1414c)와 너비는 동일하지만 높이가 다른 부호화 단위들(1414a, 1414c)의 높이의 두 배일 수 있다. 이 경우 가운데에 위치하는 부호화 단위(1414b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(1414c)는 인덱스가 2가 증가한 3일수 있다. 이러한 경우처럼 균일하게 인덱스가 증가하다가 증가폭이 달라지는 경우, 영상 복호화 장치(100)는 다른 부호화 단위들과 다른 크기를 가지는 부호화 단위를 포함하는 복수개의 부호화 단위로 분할된 것으로 결정할 수 있다, 일 실시예에 따라 분할 형태 모드 정보가 홀수개의 부호화 단위로 분할됨을 나타내는 경우, 영상 복호화 장치(100)는 홀수개의 부호화 단위 중 소정 위치의 부호화 단위(예를 들면 가운데 부호화 단위)가 다른 부호화 단위와 크기가 다른 형태로 현재 부호화 단위를 분할할 수 있다. 이 경우 영상 복호화 장치(100)는 부호화 단위에 대한 인덱스(PID)를 이용하여 다른 크기를 가지는 가운데 부호화 단위를 결정할 수 있다. 다만 상술한 인덱스, 결정하고자 하는 소정 위치의 부호화 단위의 크기 또는 위치는 일 실시예를 설명하기 위해 특정한 것이므로 이에 한정하여 해석되어서는 안되며, 다양한 인덱스, 부호화 단위의 위치 및 크기가 이용될 수 있는 것으로 해석되어야 한다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위의 재귀적인 분할이 시작되는 소정의 데이터 단위를 이용할 수 있다. According to an embodiment, the
도 15는 일 실시예에 따라 픽쳐에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.15 illustrates that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture, according to an embodiment.
일 실시예에 따라 소정의 데이터 단위는 부호화 단위가 분할 형태 모드 정보를 이용하여 재귀적으로 분할되기 시작하는 데이터 단위로 정의될 수 있다. 즉, 현재 픽쳐를 분할하는 복수개의 부호화 단위들이 결정되는 과정에서 이용되는 최상위 심도의 부호화 단위에 해당할 수 있다. 이하에서는 설명 상 편의를 위해 이러한 소정의 데이터 단위를 기준 데이터 단위라고 지칭하도록 한다. According to an exemplary embodiment, a predetermined data unit may be defined as a data unit in which a coding unit starts to be recursively divided by using the division form mode information. That is, it may correspond to a coding unit of the highest depth used in a process in which a plurality of coding units for splitting the current picture are determined. Hereinafter, for convenience of description, such a predetermined data unit will be referred to as a reference data unit.
일 실시예에 따라 기준 데이터 단위는 소정의 크기 및 형태를 나타낼 수 있다. 일 실시예에 따라, 기준 부호화 단위는 MxN의 샘플들을 포함할 수 있다. 여기서 M 및 N은 서로 동일할 수도 있으며, 2의 승수로 표현되는 정수일 수 있다. 즉, 기준 데이터 단위는 정사각형 또는 비-정사각형의 형태를 나타낼 수 있으며, 이후에 정수개의 부호화 단위로 분할될 수 있다. According to an embodiment, the reference data unit may indicate a predetermined size and shape. According to an embodiment, the reference coding unit may include MxN samples. Here, M and N may be the same as each other, and may be an integer expressed as a multiplier of 2. That is, the reference data unit may have a square or non-square shape, and may then be divided into an integer number of coding units.
일 실시예에 따라 영상 복호화 장치(100)는 현재 픽쳐를 복수개의 기준 데이터 단위로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 현재 픽쳐를 분할하는 복수개의 기준 데이터 단위를 각각의 기준 데이터 단위에 대한 분할 형태 모드 정보를 이용하여 분할할 수 있다. 이러한 기준 데이터 단위의 분할 과정은 쿼드 트리(quad-tree)구조를 이용한 분할 과정에 대응될 수 있다. According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 현재 픽쳐에 포함되는 기준 데이터 단위가 가질 수 있는 최소 크기를 미리 결정할 수 있다. 이에 따라, 영상 복호화 장치(100)는 최소 크기 이상의 크기를 갖는 다양한 크기의 기준 데이터 단위를 결정할 수 있고, 결정된 기준 데이터 단위를 기준으로 분할 형태 모드 정보를 이용하여 적어도 하나의 부호화 단위를 결정할 수 있다. According to an embodiment, the
도 15를 참조하면, 영상 복호화 장치(100)는 정사각형 형태의 기준 부호화 단위(1500)를 이용할 수 있고, 또는 비-정사각형 형태의 기준 부호화 단위(1502)를 이용할 수도 있다. 일 실시예에 따라 기준 부호화 단위의 형태 및 크기는 적어도 하나의 기준 부호화 단위를 포함할 수 있는 다양한 데이터 단위(예를 들면, 시퀀스(sequence), 픽쳐(picture), 슬라이스(slice), 슬라이스 세그먼트(slice segment), 타일(tile), 타일 그룹(tile group), 최대부호화단위 등)에 따라 결정될 수 있다. Referring to FIG. 15 , the
일 실시예에 따라 영상 복호화 장치(100)의 수신부(110)는 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보 중 적어도 하나를 상기 다양한 데이터 단위마다 비트스트림으로부터 획득할 수 있다. 정사각형 형태의 기준 부호화 단위(1500)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 3의 현재 부호화 단위(300)가 분할되는 과정을 통해 상술하였고, 비-정사각형 형태의 기준 부호화 단위(1502)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 4의 현재 부호화 단위(400 또는 450)가 분할되는 과정을 통해 상술하였으므로 자세한 설명은 생략하도록 한다.According to an embodiment, the receiving
일 실시예에 따라 영상 복호화 장치(100)는 소정의 조건에 기초하여 미리 결정되는 일부 데이터 단위에 따라 기준 부호화 단위의 크기 및 형태를 결정하기 위하여, 기준 부호화 단위의 크기 및 형태를 식별하기 위한 인덱스를 이용할 수 있다. 즉, 수신부(110)는 비트스트림으로부터 상기 다양한 데이터 단위(예를 들면, 시퀀스, 픽쳐, 슬라이스, 슬라이스 세그먼트, 타일, 타일 그룹, 최대부호화단위 등) 중 소정의 조건(예를 들면 슬라이스 이하의 크기를 갖는 데이터 단위)을 만족하는 데이터 단위로서 슬라이스, 슬라이스 세그먼트, 타일, 타일 그룹, 최대부호화 단위 등 마다, 기준 부호화 단위의 크기 및 형태의 식별을 위한 인덱스만을 획득할 수 있다. 영상 복호화 장치(100)는 인덱스를 이용함으로써 상기 소정의 조건을 만족하는 데이터 단위마다 기준 데이터 단위의 크기 및 형태를 결정할 수 있다. 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 상대적으로 작은 크기의 데이터 단위마다 비트스트림으로부터 획득하여 이용하는 경우, 비트스트림의 이용 효율이 좋지 않을 수 있으므로, 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 직접 획득하는 대신 상기 인덱스만을 획득하여 이용할 수 있다. 이 경우 기준 부호화 단위의 크기 및 형태를 나타내는 인덱스에 대응하는 기준 부호화 단위의 크기 및 형태 중 적어도 하나는 미리 결정되어 있을 수 있다. 즉, 영상 복호화 장치(100)는 미리 결정된 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 인덱스에 따라 선택함으로써, 인덱스 획득의 기준이 되는 데이터 단위에 포함되는 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 결정할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 하나의 최대 부호화 단위에 포함하는 적어도 하나의 기준 부호화 단위를 이용할 수 있다. 즉, 영상을 분할하는 최대 부호화 단위에는 적어도 하나의 기준 부호화 단위가 포함될 수 있고, 각각의 기준 부호화 단위의 재귀적인 분할 과정을 통해 부호화 단위가 결정될 수 있다. 일 실시예에 따라 최대 부호화 단위의 너비 및 높이 중 적어도 하나는 기준 부호화 단위의 너비 및 높이 중 적어도 하나의 정수배에 해당할 수 있다. 일 실시예에 따라 기준 부호화 단위의 크기는 최대부호화단위를 쿼드 트리 구조에 따라 n번 분할한 크기일 수 있다. 즉, 영상 복호화 장치(100)는 최대부호화단위를 쿼드 트리 구조에 따라 n 번 분할하여 기준 부호화 단위를 결정할 수 있고, 다양한 실시예들에 따라 기준 부호화 단위를 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나에 기초하여 분할할 수 있다.According to an embodiment, the
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위의 형태를 나타내는 블록 형태 정보 또는 현재 부호화 단위를 분할하는 방법을 나타내는 분할 형태 모드 정보를 비트스트림으로부터 획득하여 이용할 수 있다. 분할 형태 모드 정보는 다양한 데이터 단위와 관련된 비트스트림에 포함될 수 있다. 예를 들면, 영상 복호화 장치(100)는 시퀀스 파라미터 세트(sequence parameter set), 픽쳐 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header), 타일 헤더(tile header), 타일 그룹 헤더(tile group header)에 포함된 분할 형태 모드 정보를 이용할 수 있다. 나아가, 영상 복호화 장치(100)는 최대 부호화 단위, 기준 부호화 단위, 프로세싱 블록마다 비트스트림으로부터 블록 형태 정보 또는 분할 형태 모드 정보에 대응하는 신택스 엘리먼트를 비트스트림으로부터 획득하여 이용할 수 있다.According to an embodiment, the
이하 본 개시의 일 실시예에 따른 분할 규칙을 결정하는 방법에 대하여 자세히 설명한다.Hereinafter, a method of determining a division rule according to an embodiment of the present disclosure will be described in detail.
영상 복호화 장치(100)는 영상의 분할 규칙을 결정할 수 있다. 분할 규칙은 영상 복호화 장치(100) 및 영상 부호화 장치(2200) 사이에 미리 결정되어 있을 수 있다. 영상 복호화 장치(100)는 비트스트림으로부터 획득된 정보에 기초하여 영상의 분할 규칙을 결정할 수 있다. 영상 복호화 장치(100)는 시퀀스 파라미터 세트(sequence parameter set), 픽쳐 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header), 타일 헤더(tile header), 타일 그룹 헤더(tile group header) 중 적어도 하나로부터 획득된 정보에 기초하여 분할 규칙을 결정할 수 있다. 영상 복호화 장치(100)는 분할 규칙을 프레임, 슬라이스, 타일, 템포럴 레이어(Temporal layer), 최대 부호화 단위 또는 부호화 단위에 따라 다르게 결정할 수 있다. The
영상 복호화 장치(100)는 부호화 단위의 블록 형태에 기초하여 분할 규칙을 결정할 수 있다. 블록 형태는 부호화 단위의 크기, 모양, 너비 및 높이의 비율, 방향을 포함할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 블록 형태에 기초하여 분할 규칙을 결정할 것을 미리 결정할 수 있다. 하지만 이에 한정되는 것은 아니다. 영상 복호화 장치(100)는 수신된 비트스트림으로부터 획득된 정보에 기초하여, 분할 규칙을 결정할 수 있다. The
부호화 단위의 모양은 정사각형(square) 및 비-정사각형(non-square)을 포함할 수 있다. 부호화 단위의 너비 및 높이의 길이가 같은 경우, 영상 복호화 장치(100)는 부호화 단위의 모양을 정사각형으로 결정할 수 있다. 또한, . 부호화 단위의 너비 및 높이의 길이가 같지 않은 경우, 영상 복호화 장치(100)는 부호화 단위의 모양을 비-정사각형으로 결정할 수 있다.The shape of the coding unit may include a square and a non-square. When the lengths of the width and height of the coding unit are the same, the
부호화 단위의 크기는 4x4, 8x4, 4x8, 8x8, 16x4, 16x8, ... , 256x256의 다양한 크기를 포함할 수 있다. 부호화 단위의 크기는 부호화 단위의 긴변의 길이, 짧은 변의 길이또는 넓이에 따라 분류될 수 있다. 영상 복호화 장치(100)는 동일한 그룹으로 분류된 부호화 단위에 동일한 분할 규칙을 적용할 수 있다. 예를 들어 영상 복호화 장치(100)는 동일한 긴변의 길이를 가지는 부호화 단위를 동일한 크기로 분류할 수 있다. 또한 영상 복호화 장치(100)는 동일한 긴변의 길이를 가지는 부호화 단위에 대하여 동일한 분할 규칙을 적용할 수 있다.The size of the coding unit may include various sizes of 4x4, 8x4, 4x8, 8x8, 16x4, 16x8, ..., 256x256. The size of the coding unit may be classified according to the length of the long side, the length of the short side, or the width of the coding unit. The
부호화 단위의 너비 및 높이의 비율은 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 32:1 또는 1:32 등을 포함할 수 있다. 또한, 부호화 단위의 방향은 수평 방향 및 수직 방향을 포함할 수 있다. 수평 방향은 부호화 단위의 너비의 길이가 높이의 길이보다 긴 경우를 나타낼 수 있다. 수직 방향은 부호화 단위의 너비의 길이가 높이의 길이보다 짧은 경우를 나타낼 수 있다.The ratio of width and height of coding units is 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 32:1, or 1:32. may include Also, the direction of the coding unit may include a horizontal direction and a vertical direction. The horizontal direction may indicate a case in which the length of the width of the coding unit is longer than the length of the height. The vertical direction may indicate a case in which the length of the width of the coding unit is shorter than the length of the height.
영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 분할 규칙을 적응적으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 허용가능한 분할 형태 모드를 다르게 결정할 수 있다. 예를 들어, 영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 분할이 허용되는지 여부를 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 따라 분할 방향을 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 따라 허용가능한 분할 타입을 결정할 수 있다.The
부호화 단위의 크기에 기초하여 분할 규칙을 결정하는 것은 영상 복호화 장치(100) 사이에 미리 결정된 분할 규칙일 수 있다. 또한, 영상 복호화 장치(100)는 비트스트림으로부터 획득된 정보에 기초하여, 분할 규칙을 결정할 수 있다. Determining the division rule based on the size of the coding unit may be a division rule predetermined among the
영상 복호화 장치(100)는 부호화 단위의 위치에 기초하여 분할 규칙을 적응적으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위가 영상에서 차지하는 위치에 기초하여 분할 규칙을 적응적으로 결정할 수 있다.The
또한, 영상 복호화 장치(100)는 서로 다른 분할 경로로 생성된 부호화 단위가 동일한 블록 형태를 가지지 않도록 분할 규칙을 결정할 수 있다. 다만 이에 한정되는 것은 아니며 서로 다른 분할 경로로 생성된 부호화 단위는 동일한 블록 형태를 가질 수 있다. 서로 다른 분할 경로로 생성된 부호화 단위들은 서로 다른 복호화 처리 순서를 가질 수 있다. 복호화 처리 순서에 대해서는 도 12와 함께 설명하였으므로 자세한 설명은 생략한다.Also, the
도 16는 영상 부호화 및 복호화 시스템의 블록도를 나타낸 도면이다.16 is a diagram illustrating a block diagram of an image encoding and decoding system.
영상 부호화 및 복호화 시스템(1600)의 부호화단(1610)은 영상의 부호화된 비트스트림을 전송하고, 복호화단(1650)은 비트스트림을 수신하여 복호화함으로써 복원 영상을 출력한다. 여기서 복호화단(1650)은 영상 복호화 장치(100)에 유사한 구성일 수 있다. The
부호화단(1610)에서, 예측 부호화부(1615)는 인터 예측 및 인트라 예측을 통해 참조 영상을 출력하고, 변환 및 양자화부(1616)는 참조 영상과 현재 입력 영상 간의 레지듀얼 데이터를 양자화된 변환 계수로 양자화하여 출력한다. 엔트로피 부호화부(1625)는 양자화된 변환 계수를 부호화하여 변환하고 비트스트림으로 출력한다. 양자화된 변환 계수는 역양자화 및 역변환부(1630)을 거쳐 공간 영역의 데이터로 복원되고, 복원된 공간 영역의 데이터는 디블로킹 필터링부(1635) 및 루프 필터링부(1640)를 거쳐 복원 영상으로 출력된다. 복원 영상은 예측 부호화부(1615)를 거쳐 다음 입력 영상의 참조 영상으로 사용될 수 있다. In the
복호화단(1650)으로 수신된 비트스트림 중 부호화된 영상 데이터는, 엔트로피 복호화부(1655) 및 역양자화 및 역변환부(1660)를 거쳐 공간 영역의 레지듀얼 데이터로 복원된다. 예측 복호화부(1675)로부터 출력된 참조 영상 및 레지듀얼 데이터가 조합되어 공간 영역의 영상 데이터가 구성되고, 디블로킹 필터링부(1665) 및 루프 필터링부(1670)는 공간 영역의 영상 데이터에 대해 필터링을 수행하여 현재 원본 영상에 대한 복원 영상을 출력할 수 있다. 복원 영상은 예측 복호화부(1675)에 의해 다음 원본 영상에 대한 참조 영상으로서 이용될 수 있다. The encoded image data of the bitstream received by the
부호화단(1610)의 루프 필터링부(1640)는 사용자 입력 또는 시스템 설정에 따라 입력된 필터 정보를 이용하여 루프 필터링을 수행한다. 루프 필터링부(1640)에 의해 사용된 필터 정보는 엔트로피 부호화부(1610)로 출력되어, 부호화된 영상 데이터와 함께 복호화단(1650)으로 전송된다. 복호화단(1650)의 루프 필터링부(1670)는 복호화단(1650)으로부터 입력된 필터 정보에 기초하여 루프 필터링을 수행할 수 있다.The
일 실시예에 따른 비디오 부호화 방법 및 복호화 방법, 비디오 부호화 장치 및 복호화 장치는, 부호화 단위의 부호화 순서에 고려하여 어파인 모델에 기반한 예측을 수행하는 방법을 제안한다. 이하 도 17 내지 도 34을 참조하여 본 명세서에서 개시된 일 실시예에 따라 인터 예측을 수행하여 비디오를 부호화 또는 복호화하기 위한 방법 및 장치가 상술된다. A video encoding method and decoding method, a video encoding apparatus, and a decoding apparatus according to an embodiment propose a method of performing prediction based on an affine model in consideration of a coding order of coding units. Hereinafter, a method and apparatus for encoding or decoding a video by performing inter prediction according to an embodiment disclosed herein will be described with reference to FIGS. 17 to 34 .
이하, '트리 구조'는 부호화 단위의 분할 모드가 쿼드 분할, 바이너리 분할, 터너리 분할 및 비 분할인지에 따라 형성되는 하나 이상의 부호화 단위들의 계층 구조를 의미할 수 있다. 예를 들어, 도 5의 분할 과정에 따라 현재 부호화 단위로부터 생성된 블록들의 계층 구조를 트리 구조라 지칭한다.Hereinafter, the 'tree structure' may mean a hierarchical structure of one or more coding units formed according to whether the coding unit split mode is quad split, binary split, ternary split, or non-split. For example, a hierarchical structure of blocks generated from a current coding unit according to the partitioning process of FIG. 5 is referred to as a tree structure.
이하, '블록의 이용 가능성(availability)'은 해당 블록이 이미 부호화되거나 복호화되어 해당 블록의 정보가 획득될 수 있는 상태인지 여부를 의미한다. 구체적으로 부호화 과정에서 현재 블록이 이미 부호화된 경우에 현재 블록의 부호화 정보를 이용하여 이웃 블록을 부호화할 수 있으므로, 현재 블록은 이용 가능한 상태로 표시될 수 있다. 현재 블록이 부호화되지 않은 경우에 현재 블록은 이용 가능하지 않은 상태로 표시될 수 있다. 마찬가지로 복호화 과정에서 현재 블록이 이미 복호화된 경우에 현재 블록의 부호화 정보를 이용하여 이웃 블록을 복호화할 수 있으므로, 현재 블록은 이용 가능한 상태로 표시될 수 있다. 현재 블록이 복호화되지 않은 경우에 현재 블록은 이용 가능하지 않은 상태로 표시될 수 있다.Hereinafter, 'availability of a block' means whether the corresponding block is already encoded or decoded and thus information of the corresponding block can be obtained. Specifically, when the current block is already encoded in the encoding process, the neighboring block may be encoded using the encoding information of the current block, so that the current block may be displayed in an available state. When the current block is not encoded, the current block may be marked as unavailable. Similarly, when the current block has already been decoded in the decoding process, since the neighboring block may be decoded using the encoding information of the current block, the current block may be displayed as available. When the current block is not decoded, the current block may be displayed as not available.
이하, '블록의 움직임 정보의 이용 가능성'은 해당 블록에 대한 움직임 예측(인트라 모드 또는 인트라 블록 카피 모드에 따른 예측을 제외한 나머지 예측)이 수행되어 해당 블록의 움직임 정보(움직임 벡터, 예측 방향(L0-pred, L1-pred 또는 Bi-pred), 참조 픽쳐 인덱스)가 획득될 수 있는 상태인지 여부를 의미한다. 구체적으로 부호화 과정에서 현재 블록에 대해 이미 움직임 예측이 수행되어 현재 블록의 움직임 정보가 존재하는 경우에 현재 블록의 움직임 정보를 이용하여 이웃 블록의 움직임 예측을 수행할 수 있으므로, 현재 블록의 움직임 정보가 이용 가능한 상태로 표시될 수 있다. 부호화 과정에서 현재 블록에 대해 움직임 예측이 수행되지 않은 경우 현재 블록의 움직임 정보가 이용 가능하지 않은 상태로 표시될 수 있다. 마찬가지로 복호화 과정에서 현재 블록에 대해 이미 움직임 예측이 수행되어 현재 블록의 움직임 정보가 존재하는 경우에 현재 블록의 움직임 정보를 이용하여 이웃 블록의 움직임 예측을 수행할 수 있으므로, 현재 블록의 움직임 정보가 이용 가능한 상태로 표시될 수 있다. 복호화 과정에서 현재 블록에 대해 움직임 예측이 수행되지 않은 경우 현재 블록의 움직임 정보가 이용 가능하지 않은 상태로 표시될 수 있다.Hereinafter, 'availability of motion information of a block' means that motion prediction (prediction other than prediction according to intra mode or intra block copy mode) is performed on the corresponding block, and motion information (motion vector, prediction direction (L0) of the corresponding block) is performed. -pred, L1-pred or Bi-pred), it means whether the reference picture index) can be obtained. Specifically, in the case where motion information of the current block exists because motion prediction has already been performed on the current block in the encoding process, motion prediction of a neighboring block can be performed using the motion information of the current block, so that the motion information of the current block is may be marked as available. When motion prediction is not performed on the current block during the encoding process, the motion information of the current block may be displayed as unavailable. Similarly, when motion information of the current block exists because motion prediction has already been performed on the current block in the decoding process, the motion information of the current block can be used because motion prediction of a neighboring block can be performed using the motion information of the current block. It can be marked as possible. When motion prediction is not performed on the current block in the decoding process, motion information of the current block may be displayed as unavailable.
이하, '머지 후보'는 현재 블록의 이웃 블록에 대응하는 움직임 벡터에 대응할 수 있다. 이웃 블록의 움직임 벡터로부터 현재 블록의 예측 움직임 벡터가 결정되므로, 각 예측 움직임 벡터들은 해당 이웃 블록에 대응할 수 있다. 따라서, 본 개시에서 설명의 편의상 '머지 후보'는 이웃 블록의 움직임 벡터에 대응하거나, 이웃 블록에 대응하는 것으로 기재되어 있으며, 두 표현 상에 의미 차이는 없다. Hereinafter, a 'merge candidate' may correspond to a motion vector corresponding to a neighboring block of the current block. Since the predicted motion vector of the current block is determined from the motion vector of the neighboring block, each predicted motion vector may correspond to the corresponding neighboring block. Therefore, in the present disclosure, for convenience of description, a 'merge candidate' is described as corresponding to a motion vector of a neighboring block or corresponding to a neighboring block, and there is no difference in meaning between the two expressions.
이하, '어파인 머지 후보'는 현재 블록의 이웃 블록 또는 블록 그룹에 대응하는 컨트롤 포인트 벡터들에 대응할 수 있다. 이웃 블록의 움직임 벡터로부터 컨트롤 포인트 벡터들이 결정되거나 블록 그룹에 속하는 이웃 블록들의 움직임 벡터들에 기초하여 컨트롤 포인트 벡터들이 결정되므로, 각 컨트롤 포인트 벡터들은 해당 이웃 블록 또는 해당 블록 그룹에 대응할 수 있다. 따라서, 본 개시에서 설명의 편의상 '어파인 머지 후보'는 이웃 블록 또는 블록 그룹로부터 결정된 컨트롤 포인트 벡터들에 대응하거나, 이웃 블록 또는 블록 그룹에 대응하는 것으로 기재되어 있으며, 두 표현 상에 의미 차이는 없다. Hereinafter, an 'affine merge candidate' may correspond to control point vectors corresponding to a neighboring block or block group of the current block. Since control point vectors are determined from a motion vector of a neighboring block or control point vectors are determined based on motion vectors of neighboring blocks belonging to a block group, each control point vector may correspond to a corresponding neighboring block or a corresponding block group. Therefore, in the present disclosure, for convenience of description, an 'affine merge candidate' is described as corresponding to control point vectors determined from a neighboring block or block group, or as corresponding to a neighboring block or block group, and the difference in meaning between the two expressions is none.
이하, 'MVP(motion vector prediction) 후보'는 현재 블록의 이웃 블록에 대응하는 움직임 벡터들에 대응할 수 있다. 이웃 블록의 움직임 벡터로부터 현재 블록의 예측 움직임 벡터가 결정되므로, 각 예측 움직임 벡터들은 해당 이웃 블록에 대응할 수 있다. 따라서, 본 개시에서 설명의 편의상 'MVP 후보'는 이웃 블록의 움직임 벡터에 대응하거나, 이웃 블록에 대응하는 것으로 기재되어 있으며, 두 표현 상에 의미 차이는 없다. Hereinafter, a 'motion vector prediction (MVP) candidate' may correspond to motion vectors corresponding to a neighboring block of the current block. Since the predicted motion vector of the current block is determined from the motion vector of the neighboring block, each predicted motion vector may correspond to the corresponding neighboring block. Therefore, in the present disclosure, for convenience of description, it is described that the 'MVP candidate' corresponds to the motion vector of the neighboring block or corresponds to the neighboring block, and there is no difference in meaning between the two expressions.
'머지 후보'는, 인터 예측 방식 중 머지 모드에서 이용되는 이웃 블록(또는 이웃 블록의 움직임 벡터)인 반면에, 'MVP 후보'는 인터 예측 방식 중 AMVP 모드에서 이용되는 이웃 블록(또는 이웃 블록의 움직임 벡터)에 대응된다. 머지 모드에서는 머지 후보의 움직임 벡터를 이용하여 현재 블록의 움직임 벡터가 결정될 뿐만 아니라, 머지 후보의 예측 방향(L0-pred, L1-pred, bi-pred) 및 참조 픽쳐 인덱스를 이용하여 현재 블록의 예측 방향 및 참조 픽쳐 인덱스가 각각 결정될 수 있다. 반면에, AMVP 모드에서는 MVP 후보의 움직임 벡터를 이용하여 현재 블록의 예측 움직임 벡터가 결정되지만, MVP 후보의 예측 방향 및 참조 픽쳐 인덱스와 별개로 현재 블록의 예측 방향 및 참조 픽쳐 인덱스가 각각 결정될 수 있다.A 'merge candidate' is a neighboring block (or a motion vector of a neighboring block) used in the merge mode among the inter prediction schemes, whereas the 'MVP candidate' is a neighboring block (or a neighboring block of the neighboring block) used in the AMVP mode among the inter prediction schemes. motion vector). In the merge mode, not only the motion vector of the current block is determined using the motion vector of the merge candidate, but also the prediction of the current block using the prediction direction (L0-pred, L1-pred, bi-pred) and the reference picture index of the merge candidate. A direction and a reference picture index may be determined, respectively. On the other hand, in the AMVP mode, the prediction motion vector of the current block is determined using the motion vector of the MVP candidate, but the prediction direction and the reference picture index of the current block may be determined separately from the prediction direction and the reference picture index of the MVP candidate. .
도 17은 일 실시예에 따른 비디오 복호화 장치의 블록도를 도시한다.17 is a block diagram of a video decoding apparatus according to an embodiment.
도 17을 참조하면, 일 실시예에 따른 비디오 복호화 장치(1700)는 인터 예측부(1710) 및 복원부(1720)를 포함할 수 있다.Referring to FIG. 17 , a
비디오 복호화 장치(1700)는 영상의 부호화 결과 생성된 비트스트림을 획득하고, 비트스트림에 포함된 정보에 기초하여 픽쳐로부터 분할된 블록들의 위치를 파악하고, 최대 부호화 단위 및 부호화 단위 등의 블록들을 복호화할 수 있다.The
일 실시예에 따른 비디오 복호화 장치(1700)는, 인터 예측부(1710) 및 복원부(1720)를 제어하는 중앙 프로세서(미도시)를 포함할 수 있다. 또는, 인터 예측부(1710) 및 복원부(1720)가 각각의 자체 프로세서(미도시)에 의해 작동되고, 프로세서(미도시)들이 상호 유기적으로 동작함에 따라 비디오 복호화 장치(1700)가 구현될 수도 있다. 또는, 비디오 복호화 장치(1700)의 외부 프로세서(미도시)의 제어에 따라, 인터 예측부(1710) 및 복원부(1720)가 동작될 수도 있다.The
비디오 복호화 장치(1700)는, 인터 예측부(1710) 및 복원부(1720)의 입출력 데이터가 저장되는 하나 이상의 데이터 저장부(미도시)를 포함할 수 있다. 비디오 복호화 장치(1700)는, 데이터 저장부(미도시)의 데이터 입출력을 제어하는 메모리 제어부(미도시)를 포함할 수도 있다.The
비디오 복호화 장치(1700)는 전술한 영상 복호화 장치(100)에 포함될 수 있다. 예를 들어, 인터 예측부(1710) 및 복원부(1720)는 영상 복호화 장치(100)의 복호화부(120)에 대응될 수 있다. 비디오 복호화 장치(1700)는 도 16을 참조하여 전술한 영상 부호화 및 복호화 시스템의 복호화기(1650)에 대응될 수 있다. 예를 들어, 인터 예측부(1710) 및 복원부(1720)는 복호화기(1650)의 인터 예측 부호화부(1670)에 대응될 수 있다.The
비디오 복호화 장치(1700)는 영상의 부호화 결과 생성된 비트스트림을 수신한다. 비트스트림은 현재 픽쳐에 대한 정보를 포함할 수 있다. 픽쳐는 하나 이상의 최대 부호화 단위를 포함할 수 있다. 비디오 복호화 장치(1700)는, 비트스트림으로부터 획득된 정보에 기초하여 픽쳐 내에서 현재 블록의 위치를 결정할 수 있다. 현재 블록은 픽쳐로부터 트리 구조에 따라 분할되어 생성되는 블록으로서, 예를 들어, 최대 부호화 단위 또는 부호화 단위에 대응할 수 있다. 비디오 복호화 장치(1700)는, 현재 블록이 하위 뎁스의 하위 블록으로 더 분할될지 여부를 결정하며, 현재 블록의 트리 구조를 결정할 수 있다. 현재 블록의 현재 뎁스에 비해, 현재 블록으로부터 하위 블록까지 분할된 횟수만큼 증가하여 하위 뎁스가 결정될 수 있다. 현재 픽쳐에 포함된 트리 구조를 이루고 있는 블록들 중에서 트리 리프에 위치하는 블록들은 더 이상 분할되지 않는 블록들이다. 따라서 비디오 복호화 장치(1700)는, 더 이상 분할되지 않는 하나 이상의 블록들에 대해 역양자화, 역변환, 예측을 수행함으로써 블록들을 복호화할 수 있다. The
비디오 복호화 장치(1700)는 현재 블록에 대해 예측을 수행하여 현재 블록의 예측 샘플들을 생성할 수 있다. 비디오 복호화 장치(1700)는 현재 블록에 대해 역변환을 수행하여 상기 현재 블록의 레지듀얼 샘플들을 생성할 수 있다. 비디오 복호화 장치(1700)는 현재 블록의 예측 샘플들과 현재 블록의 레지듀얼 샘플들을 이용하여 현재 블록의 복원 샘플들을 생성할 수 있다. 비디오 복호화 장치(1700)는 블록들마다 샘플들을 복원함으로써 현재 픽쳐를 복원할 수 있다. The
예를 들어, 현재 블록의 예측 모드가 인트라 모드인 경우에 비디오 복호화 장치(1700)는 현재 블록의 인트라 예측 정보를 이용하여 인트라 예측 방향에 위치한 공간적 이웃 블록의 샘플들 중 참조 샘플을 결정하고, 참조 샘플을 이용하여 현재 블록에 대응하는 예측 샘플들을 결정할 수 있다. For example, when the prediction mode of the current block is the intra mode, the
예를 들어, 현재 블록의 예측 모드가 스킵 모드가 아닌 인터 모드인 경우에 비디오 복호화 장치(1700)는 현재 블록의 움직임 벡터를 이용하여 현재 블록을 복원할 수 있다. 비디오 복호화 장치(1700)는, 현재 블록의 움직임 벡터를 이용하여 참조 픽쳐 내의 참조 블록을 결정하고, 참조 블록에 포함된 참조 샘플들로부터 현재 블록에 대응하는 예측 샘플들을 결정할 수 있다. 비디오 복호화 장치(1700)는 비트스트림으로부터 획득한 변환 계수 레벨을 이용하여 변환 계수들을 복원하고, 변환 계수들에 대해 역양자화 및 역변환을 수행하여 레지듀얼 샘플들을 복원할 수 있다. 비디오 복호화 장치(1700)는 현재 블록에 대응하는 예측 샘플들과 레지듀얼 샘플들을 조합하여 현재 블록의 복원 샘플들을 결정할 수 있다.For example, when the prediction mode of the current block is the inter mode instead of the skip mode, the
예를 들어, 현재 블록의 예측 모드가 머지 모드인 경우에 비디오 복호화 장치(1700)는 현재 블록의 주변 블록의 움직임 벡터 관련 정보를 이용하여 현재 블록의 움직임 벡터 관련 정보를 복원할 수 있다. 비디오 복호화 장치(1700)는, 현재 블록의 움직임 벡터를 이용하여 참조 픽쳐 내의 참조 블록을 결정하고, 참조 블록에 포함된 참조 샘플들로부터 현재 블록에 대응하는 예측 샘플들을 결정할 수 있다. 비디오 복호화 장치(1700)는 비트스트림으로부터 획득한 변환 계수 레벨을 이용하여 변환 계수들을 복원하고, 변환 계수들에 대해 역양자화 및 역변환을 수행하여 레지듀얼 샘플들을 복원할 수 있다. 비디오 복호화 장치(1700)는 현재 블록에 대응하는 예측 샘플들과 레지듀얼 샘플들을 조합하여 현재 블록의 복원 샘플들을 결정할 수 있다.For example, when the prediction mode of the current block is the merge mode, the
현재 블록이 스킵 모드로 예측되는 경우, 머지 모드와 마찬가지로 현재 블록의 주변 블록의 움직임 벡터 관련 정보를 이용하여 현재 블록의 움직임 벡터 관련 정보를 복원할 수 있으며, 비디오 복호화 장치(1700)는 비트스트림으로부터 현재 블록의 변환 계수들을 파싱할 필요가 없다. 비디오 복호화 장치(1700)는 현재 블록의 예측 샘플들을 그대로 이용하여 현재 블록의 복원 샘플들을 결정할 수 있다.When the current block is predicted in the skip mode, like the merge mode, motion vector related information of the current block may be reconstructed using motion vector related information of neighboring blocks of the current block. There is no need to parse the transform coefficients of the current block. The
구체적으로, 일 실시예에 따른 머지 모드는, 블록 기반 머지 모드와 서브블록 기반 머지 모드로 구분될 수 있다. 블록 기반 머지 모드는 일반 머지 모드(regular merge mode), MMVD 모드(merge motion vector difference mode), CIIP 모드(Combined Inter and Intra Prediction), 트라이앵귤러(TRIANGULAR) 모드로 구분될 수 있다. 또한, 일 실시예에 따른 스킵 모드는 CIIP 모드를 제외하고, MMVD 모드, 트라이앵귤러 모드에도 적용될 수 있다. 즉, 스킵 MMVD 모드인 경우에, 머지 인덱스와 움직임 벡터 차분의 방향 및 움직임 벡터 차분의 크기만 시그널링되고, 레지듀얼 성분은 시그널링되지 않는다. 반면에 머지 MMVD 모드인 경우에, 머지 인덱스와 움직임 벡터 차분의 방향 및 움직임 벡터 차분의 크기와 함께 레지듀얼 성분이 시그널링될 수 있다. 마찬가지로, 스킵 트라이앵귤러 모드에서는 레지듀얼 성분이 시그널링되지 않지만, 머지 트라이앵귤러 모드에서는 레지듀얼 성분이 시그널링될 수 있다. Specifically, the merge mode according to an embodiment may be divided into a block-based merge mode and a subblock-based merge mode. The block-based merge mode may be divided into a regular merge mode, a merge motion vector difference mode (MMVD), a Combined Inter and Intra Prediction (CIIP) mode, and a TRIANGULAR mode. Also, the skip mode according to an embodiment may be applied to the MMVD mode and the triangular mode, except for the CIIP mode. That is, in the skip MMVD mode, only the merge index and the direction of the motion vector difference and the magnitude of the motion vector difference are signaled, and the residual component is not signaled. On the other hand, in the merge MMVD mode, the residual component may be signaled together with the merge index and the direction of the motion vector difference and the magnitude of the motion vector difference. Similarly, the residual component is not signaled in the skip triangular mode, but the residual component may be signaled in the merge triangular mode.
일반 MERGE 모드인 경우, 인터 예측부(1710)는 머지 후보 리스트를 구성하고 구성된 후보 리스트 중에서 수신된 인덱스가 가리키는 후보의 움직임 정보를 현재 블록의 움직임 정보로 사용하여 움직임 보상을 수행할 수 있다. In the normal MERGE mode, the
일 실시예에 따라 머지 후보 리스트는 공간적 머지 후보(spatial merge candidate), 시간적 머지 후보(temporal merge candidate), HMVP(History-based MVP)와 PAMVP(Pairwise Average MVP)를 포함할 수 있다. According to an embodiment, the merge candidate list may include a spatial merge candidate, a temporal merge candidate, a history-based MVP (HMVP), and a pairwise average MVP (PAMVP).
인터 예측부(1710)는 현재 블록보다 먼저 복호화된 소정 개수의 블록의 움직임 정보를 HMVP 테이블에 저장하고, 현재 블록을 위한 머지 후보 리스트에 HMVP 테이블에 저장되어 있는 HMVP 후보를 추가할 수 있다. 예를 들어, HMVP 테이블은 5개의 HMVP 후보가 저장되며, HMVP 테이블에 5개의 후보가 이미 존재하는 경우에 새로운 움직임 정보를 저장하기 위하여 선입선출(FIFO, First-In-FirstOut) 방법이 적용될 수 있다. 인터 예측부(1710)는 새로 추가되는 움직임 정보와 HMVP 테이블에 저장되어 있는 후보들과의 중복성을 확인하고, 동일한 움직임 정보가 HMVP 테이블에 존재하는 경우에는 먼저 저장되어 있던 동일한 움직임 정보를 삭제하고 새로운 움직임 정보를 HMVP 테이블의 마지막 위치에 추가할 수 있다. 또한, 영상의 새로 운 CTU(Coding Tree Unit) 열이 시작되는 시점에 HMVP 테이블은 초기화되며, 서브블록 기반 인터 예측 방법이 적용된 블록의 움직임 정보는 HMVP 후보로 사용하지 않을 수 있다.The
PAMVP 후보가 이용되는 경우에, 인터 예측부(1710)는 머지 후보 리스트에서 첫 번째 후보와 두 번째 후보의 움직임 벡터의 평균값을 PAMVP 후보의 움직임 벡터로 설정하고 PAMVP의 참조 픽쳐를 첫번째 후보의 참조 픽쳐와 동일하게 설정할 수 있다.When the PAMVP candidate is used, the
일반 머지 모드는 전송되는 비트량을 최소화하는 반면 예측 샘플의 정확도가 떨어질 수 있다는 문제점이 있을 수 있다. 이러한 문제점을 보완하기 위하여 MMVD 모드에서는 일반 머지 모드에 따라 유도된 움직임 벡터에 움직임 벡터 차분(MVD)을 더하여 보다 정확한 움직임 벡터가 획득될 수 있다. 인터 예측부(1710)는 MMVD 모드에서, 일반 머지 모드의 머지 후보 리스트 중에서 인덱스 0 및 1의 머지 후보, 즉 2개의 후보만 선택될 수 있다. 인터 예측부(1710)는 2개 머지 후보 중에서 수신된 머지 플래그가 가리키는 머지 후보의 움직임 벡터가 기초 움직임 벡터(base motion vector)가 되도록 결정하고, 추가로 수신된 MVD 방향과 움직임 거리(MVD 절대값) 정보로부터 결정된 MVD를 기초 움직임 벡터에 더함으로써, 최종 움직임 벡터를 획득할 수 있다. MVD 방향은 수평(x축) 또는 수직(y축) 방향만 가능하고, 움직임 거리는 1/4-pel, 1/2-pel, 1-pel, 2-pel, 4-pel, 8-pel, 16-pel, 32-pel의 범위를 가질 수 있다.While the general merge mode minimizes the amount of transmitted bits, there may be a problem in that the accuracy of a prediction sample may be deteriorated. In order to compensate for this problem, in the MMVD mode, a more accurate motion vector may be obtained by adding a motion vector difference (MVD) to a motion vector derived according to the general merge mode. In the MMVD mode, the
CIIP 모드의 경우, 인트라 예측에 의해 획득된 예측 샘플과 인터 예측에 의해 획득된 예측 샘플을 결합함으로써 추가적인 예측 샘플이 획득될 수 있다. 인터 예측 샘플은 일반 머지 모드에 의해 획득되고, 인트라 예측 샘플은 플라나(planar) 모드에 따른 인트라 예측을 통해 획득될 수 있다. 획득된 인터 예측 샘플과 인트라 예측 샘플에 가중치를 적용하여 최종 예측 샘플이 생성되며, 상단 주변 블록과 좌측 주변 블록의 인트라 예측 부호화 여부에 따라, (인트라 예측 샘플에 적용되는 가중치, 인터 예측 샘플에 적용되는 가중치)의 조합은 다음과 같이 결정될 수 있다. 상단 주변 블록과 좌측 주변 블록이 모두 인트라 예측에 의해 복원된 경우에는 (3,1), 상단 주변 블록 또는 좌측 주변 블록 중 하나의 블록만 인트라 예측에 의해 복원된 경우는 (2,2), 상단 주변 블록과 좌측 주변 블록이 모두 인트라 예측에 의해 복원된 것이 아닌 경우는 (1,3)의 가중치가 적용될 수 있다. In the CIIP mode, an additional prediction sample may be obtained by combining a prediction sample obtained by intra prediction and a prediction sample obtained by inter prediction. The inter prediction sample may be obtained by normal merge mode, and the intra prediction sample may be obtained through intra prediction according to the planar mode. A final prediction sample is generated by applying a weight to the obtained inter prediction sample and the intra prediction sample, and depending on whether the upper neighboring block and the left neighboring block are intra prediction encoded (weight applied to the intra prediction sample, applied to the inter prediction sample) The combination of weights) can be determined as follows. When both the upper neighboring block and the left neighboring block are reconstructed by intra prediction, (3,1), when only one block of the upper neighboring block or the left neighboring block is reconstructed by intra prediction, (2,2), the upper When both the neighboring block and the left neighboring block are not reconstructed by intra prediction, a weight of (1,3) may be applied.
트라이앵귤러 모드에 따른 인터 예측의 경우, 사각형의 블록이 사선으로 분할되어 2개의 삼각 영역이 생성되고, 인터 예측부(1710)는 2개의 삼각 영역에 대해 서로 다른 움직임 정보를 이용하여 독립적으로 화면간 예측을 수행한다. 이 때, 2개 삼각 영역의 움직임 정보가 다름으로 인해 발생하는 경계영역에서의 예측 샘플값 들간의 불연속성을 최소화하기 위해, 인터 예측부(1710)는 2개 삼각 영역의 움직임 정보를 이용하여 유도된 예측 샘플값들의 가중합을, 경계영역의 예측 샘플값이 되도록 결정될 수 있다. 트라이앵귤러 모드에서 각 삼각 영역에서의 예측 방향은 단방향 예측만 허용된다. 이를 위해 인터 예측부(1710)는 일반 머지 모드 후보 리스트 중에서, 각 머지 인덱스가 짝수인 후보는 L0 리스트의 움직임 정보를, 홀수인 후보는 L1 리스트의 움직임 정보를 이용하여 단방향 움직임 정보만을 가지는 트라이앵귤러 모드 후보 리스트를 구성할 수 있다. 만약 머지 인덱스가 짝수인 후보에 L0 리스트 움직임 정보가 존재하지 않는다면 L1 리스트 움직임 정보가 선택될 수 있다. 각 삼각 영역별로 적용할 머지 인덱스가 수신되므로, 트라이앵귤러 모드 후보 리스트 중에서, 각 삼각 영역의 머지 인덱스가 가리키는 후보를 이용하여 인터 예측이 수행될 수 있다. In the case of inter prediction according to the triangular mode, a rectangular block is divided diagonally to generate two triangular regions, and the
서브블록 기반 머지 모드에 따르면, 인터 예측부(1710)는 블록을 서브 블록으로 분할하고 서브블록별로 개별의 움직임 벡터를 유도하여 예측 샘플을 생성할 수 있다. 서브블록 기반 머지 후보 리스트는 블록 기반 머지 모드 중에서 시간적 머지 및 AMVP 후보인 TMVP(Temporal MVP)와 유사한 서브블록 기반 TMVP(SbTMVP)와, 어파인 움직임 모델을 적용한 어파인 기반 움직임 벡터 예측 후보들을 포함할 있다. According to the subblock-based merge mode, the
SbTMVP를 결정하기 위해, 현재 블록의 콜로케이티드 블록을 찾는 과정과 콜로케이티드 블록의 움직임 벡터로부터 현재 블록 내의 서브블록 단위의 움직임 벡터를 유도하는 과정이 수행될 수 있다. 현재 블록의 콜로케이티드 블록은 슬라이스 헤더에서 획득된 콜로케이티드 픽쳐(collocated picture)에 존재하는 블록으로, 현재 블록의 좌하단 위치(A1)의 참조 픽쳐가 콜로케이티드 픽쳐와 동일한 경우에 A1 위치의 움직임 벡터가 이용되고, 동일하지 않은 경우에는 제로 MV를 이용하여 콜로케이티드 블록 위치가 결정될 수 있다. 콜로케이티드 블록으로부터 현재 블록의 서브블록(8x8 크기) 단위 움직임 벡터를 유도하기 위해서, 인터 예측부(1710)는 현재 블록을 8x8 서브블록들로 분할하고, 콜로케이티드 블록의 서브블록들의 중심 위치에 대응되는 움직임 정보를 이용하여 현재 블록의 각 서브블록의 움직임 벡터를 유도할 수 있다. SbTMVP의 참조 픽쳐는 TMVP 경우와 동일하게 L0/L1 참조픽처 리스트 중에서 인덱스 0이 가리키는 픽쳐이므로, 콜로케이티드 블록으로부터 결정된 움직임 벡터 mvCol가 sbTMVP 참조픽처에 적용될 수 있도록 스케일링 과정이 추가될 수 있다. 따라서 스케일링된 움직임 벡터 mvCol가 서브블록 단위 움직임 벡터인 SbTMVP로 설정된다.In order to determine SbTMVP, a process of finding a collocated block of the current block and a process of deriving a motion vector in units of subblocks in the current block from the motion vector of the collocated block may be performed. The collocated block of the current block is a block existing in the collocated picture obtained from the slice header, and when the reference picture at the lower left position (A1) of the current block is the same as the collocated picture, the A1 position motion vectors of are used, and if they are not the same, the collocated block position may be determined using zero MV. In order to derive a subblock (8x8 size) unit motion vector of the current block from the collocated block, the
이하, AMVP 모드에 따른 인터 예측 방식이 상술된다. SKIP 및 MERGE 모드와 비교하여 보다 정확한 움직임 벡터를 복호 과정에서 유도될 수 있도록, AMVP 모드에서는 주변 블록으로부터 얻어진 예측 움직임 벡터과 최종 움직임 벡터 간의 차이 값인 MVD를 전송하는 모드이다. AMVP 모드는 구체적으로 일반 AMVP 모드, SMVD 모드, 어파인 AMVP 모드로 구분될 수 있다. Hereinafter, an inter prediction method according to the AMVP mode will be described in detail. Compared to the SKIP and MERGE modes, the AMVP mode transmits the MVD, which is the difference value between the predicted motion vector obtained from the neighboring block and the final motion vector, so that a more accurate motion vector can be derived in the decoding process. The AMVP mode may be specifically divided into a general AMVP mode, an SMVD mode, and an affine AMVP mode.
일반 AMVP 모드에서는 예측 샘플 생성을 위해, 예측 방향(L0-pred, L1-pred, Bi-pred), 참조 픽쳐, 움직임 벡터 예측 후보를 나타내는 플래그, MVD 정보가 시그널링될 수 있다. 또한, 일반 AMVP 모드에 따라 인터 예측부(1710)는, 공간적 AMVP 후보, 시간적 AMVP 후보, HMVP 후보를 포함하는 AMVP 후보 리스트를 구성할 수 있으며, 최대 2개의 움직임 벡터 예측 후보를 구성할 수 있다. 이때 사용되는 HMVP 후보는 스킵 모드 및 머지 모드에서 사용한 HMVP와 동일하다.In the normal AMVP mode, prediction directions (L0-pred, L1-pred, Bi-pred), a reference picture, a flag indicating a motion vector prediction candidate, and MVD information may be signaled to generate a prediction sample. Also, according to the general AMVP mode, the
SMVD 모드에서는, 양방향 예측(bi-directional prediction)의 경우에 L0 방향과 L1 방향의 MVD 값이 대칭을 이룰 수 있다. 이로 인해, 일반 AMVP 모드에 비해 전송되는 비트량을 줄이면서 스킵 및 머지 모드에 비해 예측샘플의 정확도가 높아질 수 있다. SMVD 모드에서는, L0 방향과 대칭을 이루는 L1 방향 MVD 정보는 전송하지 않으며, L0 및 L1 참조 픽쳐 정보도 전송하지 않고 다른 정보로부터 유도될 수 있다. SMVD는 양방향 예측에 제한적으로 적용되는 모드이기 때문에 현재 픽쳐를 기준으로 디스플레이 순서상 서로 반대 방향에 위치하는 L0 참조 픽쳐와 L1 참조 픽쳐 조합을 찾아 SMVD 모드의 L0 및 L1 참조 픽쳐로 설정될 수 있다. 따라서, 현재 픽쳐를 기준으로 디스플레이 순서상 서로 반대 방향에 위치하는 L0 참조 픽쳐와 L1 참조 픽쳐의 조합이 존재하지 않는 경우에는 SMVD 모드가 적용될 수 없다. 서로 반대 방향에 위치하는 L0 및 L1 참조 픽쳐, AMVP 후보 리스트로부터 유도된 L0 및 L1 방향의 예측 움직임 벡터와, 수신된 L0 방향 MVD(MVD0)과, MVD0를 이용하여 유도한 L1 방향 MVD(MVD1=-MVD0)을 적용하여 SMVD 모드의 최종 예측 샘플이 획득될 수 있다.In the SMVD mode, in the case of bi-directional prediction, MVD values in the L0 direction and the L1 direction may be symmetric. For this reason, the accuracy of the prediction sample may be increased compared to the skip and merge modes while reducing the amount of transmitted bits compared to the general AMVP mode. In the SMVD mode, MVD information in the L1-direction symmetrical to the L0 direction is not transmitted, and L0 and L1 reference picture information is not transmitted and may be derived from other information. Since SMVD is a mode that is limitedly applied to bidirectional prediction, a combination of the L0 reference picture and the L1 reference picture located in opposite directions in the display order with respect to the current picture may be found and set as the L0 and L1 reference pictures of the SMVD mode. Accordingly, when there is no combination of the L0 reference picture and the L1 reference picture positioned in opposite directions in the display order with respect to the current picture, the SMVD mode cannot be applied. L0 and L1 reference pictures located in opposite directions, predicted motion vectors in L0 and L1 directions derived from the AMVP candidate list, received L0 direction MVD (MVD0), and L1 direction MVD derived using MVD0 (MVD1 = -MVD0), the final prediction sample of the SMVD mode may be obtained.
일 실시예에 따른 인터 예측부(1710)는 AMVR 기술에 따라 MVD 해상도를 적응적으로 선택할 수 있다. 부호화 모드에 따라 적용 가능한 MVD 해상도는 다르며, 유도된 움직임 벡터 예측 값에 MVD를 더하여 얻어지는 최종 움직임 벡터가 MVD와 동일한 해상도를 가지도록 하기 위하여, 인터 예측부(1710)는 MVD와 동일한 해상도를 가지도록 예측 움직임 벡터에 대해 라운딩을 수행할 수 있다. 최종 움직임 벡터를 이용하여 움직임 보상이 수행될 때 1/2 샘플 위치에 대해서는 6탭 보간 필터가 적용되고 1/2 샘플 위치 이외의 샘플 위치에 대해서는 8탭 보간 필터가 적용될 수 있다.The
일 실시예에 따른 인터 예측부(1710)는 4개 또는 6개 파라미터를 이용하는 어파인 움직임 모델 기반 움직임 예측 기술을 수행할 수 있다. 일 실시예에 따른 인터 예측부(1710)는 블록을 4x4 서브블록 단위로 분할하고, 서브블록별로 서브블록의 중심 위치에서의 움직임 벡터를 어파인 움직임 모델 기반으로 유도함으로써, 서브블록 단위의 움직임 예측을 수행할 수 있다. The
일 실시예에 따른, 인터 예측부(1710)에서 수행되는 인터 예측 방식 중에서 어파인 기반의 움직임 벡터 예측 기술이 적용된 어파인 머지 모드와 어파인 AMVP 모드가 존재할 수 있다. According to an embodiment, among the inter prediction methods performed by the
어파인 머지 모드는 서브블록 기반 머지 모드의 후보 리스트에 어파인 기반 움직임 벡터 예측 후보들을 포함시켜서 현재 블록의 움직임 예측에 적용할 수 있도록 하는 방법으로, 어파인 기반 움직임 벡터 예측 후보들은 (상속) 어파인 머지 후보들((inherited) affine merge candidates)과 조합 어파인 머지 후보들(constructed affine merge candidates)로 구성될 수 있다. (상속) 어파인 머지 후보는 현재 블록의 상단 또는 좌측 주변 블록이 어파인 기반 움직임 벡터 예측 기술을 적용하여 복호화된 경우에 해당 블록의 컨트롤 포인트 움직임 벡터(CPMV, control point motion vector)로부터 유도한 현재 블록의 CPMV를 의미한다. 조합 어파인 머지 후보는 주변의 움직임 벡터를 결합하여 유도한 현재 블록의 CPMV를 의미한다. 구체적으로, 에서 이웃블록 B2 --> 이웃블록 B3 --> 이웃블록 A2 순서로 움직임 벡터 존재여부를 확인하여 첫 번째로 가용한 움직임 벡터를 CPMV1로 설정하고, 유사하게 이웃블록 B1 --> 이웃블록 B0 순서로 움직임 벡터를 CPMV2로 설정하고, 이웃블록 A1 --> 이웃블록 A0 순서로 움직임 벡터를 확인하여 CPMV3, 시간적 예측 움직임 벡터(TMVP, temporal motion vector predictor)를 CPMV4로 각각 설정한다. 설정된 CPMV들을 다음 과 같이 조합하여 조합 어파인 머지 후보로 사용한다. 이 때, 3개의 CPMV들로 구성된 후보 {CPMV1, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV4}, {CPMV1, CPMV3, CPMV4}, {CPMV2, CPMV3, CPMV4}는 6-파라미터 어파인 머지 후보이며, 2개의 CPMV들로 구성된 후보 {CPMV1, CPMV2}, {CPMV1, CPMV3}는 4-파라미터 어파인 머지 후보이다. The affine merge mode is a method for including affine-based motion vector prediction candidates in the candidate list of the subblock-based merge mode to be applied to the motion prediction of the current block. The affine-based motion vector prediction candidates are (inherited) It may be composed of in-merge candidates (inherited affine merge candidates) and combined affine merge candidates (constructed affine merge candidates). The (inherited) affine merge candidate is a current block derived from the control point motion vector (CPMV) of the current block when the upper or left neighboring block of the current block is decoded by applying the affine-based motion vector prediction technique. It means the CPMV of the block. Combination affine merge candidate refers to the CPMV of the current block derived by combining neighboring motion vectors. Specifically, in the neighbor block B2 --> neighbor block B3 --> neighbor block A2, the existence of the motion vector is checked in the order, and the first available motion vector is set as CPMV1, and similarly, the neighbor block B1 --> neighbor block A2. A motion vector is set to CPMV2 in the order of block B0, a motion vector is checked in the order of neighboring block A1 --> neighboring block A0, and CPMV3 and a temporal motion vector predictor (TMVP) are set to CPMV4, respectively. The set CPMVs are combined as follows and used as a combination affine merge candidate. At this time, candidates {CPMV1, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV4}, {CPMV1, CPMV3, CPMV4}, {CPMV2, CPMV3, CPMV4} composed of three CPMVs are 6-parameter affinity merge candidates. , {CPMV1, CPMV2}, {CPMV1, CPMV3} composed of two CPMVs are 4-parameter affine merge candidates.
일 실시예에 따른 인터 예측부(1710)는, 인터 예측 방식이 서브블록 머지 모드이면서 서브블록 기반의 시간적 예측 움직임 벡터(subblock-based temporal motion vector predictors)의 이용이 가능한 경우에, 서브블록 기반의 시간적 머지 후보가 결정될 수 있다. The
일 실시예에 따른 인터 예측부(1710)는, 인터 예측 방식이 서브블록 머지 모드이면서 어파인 모델 기반의 움직임 보상이 가능한 경우에, 하나 이상의 조합 어파인 CPMV 머지 후보를 포함하는 서브블록 머지 후보 리스트(subblock merge candidate list)를 생성할 수 있다.The
어파인 AMVP 모드는 상속 어파인 AMVP 후보, 조합 어파인 AMVP 후보, 평행이동 MV, 제로(zero) MV들로 후보 리스트를 구성한다. 상속 어파인 AMVP 후보는 상속 어파인 머지 후보와 동일하나 상속받는 블록의 참조픽처가 현재 블록의 참조픽처와 동일한 경우에만 해당 블록의 CPMV로부터 유도한 현재 블록의 CPMV를 후보 리스트에 추가한다. 조합 AMVP 후보도 조합 어파인 머지 후보와 동일하지만 모든 CPMV들의 참조 픽쳐가 현재 블록의 참조 픽쳐와 동일한 경우에만 후보 리스트에 추가한다. 상속 어파인 AMVP 후보와 조합 어파인 AMVP 후보로 구성 된 어파인 AMVP 모드의 후보들이 2개 이하인 경우에 평행이동만 가능한 평행이동 MV를 후보로 추가될 수 있다. 이 때, 평행이동 MV로는 CPMV1, CPMV2, CPMV3가 각각 사용될 수 있다. 평행이동 MV를 후보 리스트에 추가하였음에도 후보가 2개 이하인 경우에는 제로 MV가 후보 리스트에 추가될 수 있다.In the affine AMVP mode, the candidate list is composed of inherited affine AMVP candidates, combined affine AMVP candidates, translation MVs, and zero MVs. The inherited-affine AMVP candidate is the same as the inherited-affine merge candidate, but only when the reference picture of the inherited block is the same as the reference picture of the current block, the CPMV of the current block derived from the CPMV of the corresponding block is added to the candidate list. The combination AMVP candidate is also the same as the combination affine merge candidate, but is added to the candidate list only when the reference pictures of all CPMVs are identical to the reference pictures of the current block. When there are two or less candidates of the affine AMVP mode consisting of an inherited affine AMVP candidate and a combined affine AMVP candidate, a parallel movement MV capable of only parallel movement may be added as a candidate. In this case, CPMV1, CPMV2, and CPMV3 may be used as the translation MVs, respectively. Even though the translation MV is added to the candidate list, when there are two or less candidates, a zero MV may be added to the candidate list.
인터 예측부(1710)는 현재 블록에 대해 어파인 모델 기반의 인터 예측을 수행할 수 있다. 일 실시예에 따른 비디오 복호화 장치(1700)는 비스트림으로부터, 현재 블록의 예측 샘플을 생성하기 위해 어파인 모델에 기초한 움직임 보상이 수행되는지 나타내는 어파인 플래그를 획득할 수 있다. 어파인 플래그가 어파인 모델에 기초한 움직임 보상이 수행됨을 나타내면, 일 실시예에 따른 비디오 복호화 장치(1700)는 인터 예측부(1710)를 호출하고, 일 실시예에 따른 인터 예측부(1710)는 현재 블록의 코너별로 대표하는 이웃 블록들의 블록 그룹에 포함된 이웃 블록들의 움직임 벡터들을 이용하여 결정된 컨트롤 포인트 움직임 벡터들에 대응하는 컨트롤 포인트 기반의 어파인 머지 후보(control point-based affine merge candidate)를 포함하는 어파인 머지 후보 리스트를 생성할 수 있다.The
구체적으로, 현재 블록의 인터 예측이 어파인 머지 모드로 수행되는 경우에, 일 실시예에 따른 인터 예측부(1710)는 컨트롤 포인트 기반의 컨트롤 포인트 기반의 어파인 머지 후보를 구성하기 이전에, 모델 기반의 어파인 머지 후보(model-based affine merge candidate)를 포함하는 어파인 머지 후보 리스트를 생성할 수 있다. 모델 기반의 어파인 머지 후보는, 현재 블록에 인접하는 소정 위치의 이웃 블록들 중에서 이용가능한 이웃 블록의 어파인 움직임 벡터에 따라 결정된 컨트롤 포인트 움직임 벡터들에 대응하는 머지 후보를 나타낸다. 즉, 현재 블록보다 먼저 복호화된 이웃 블록들이 모델 기반의 어파인 머지 후보들로 결정될 수 있다. 이웃 블록의 움직임 정보가 이용 가능한 경우에 해당 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보도 이용 가능한 상태로 설정된다. 반대로 이웃 블록의 움직임 정보가 이용 가능하지 않은 경우에 해당 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보도 이용 가능하지 않은 상태로 설정된다. 다만, 이용 가능한 모델 기반의 어파인 머지 후보의 개수가 소정 개수보다 적은 경우에, 인터 예측부(1710)는 현재 블록의 코너별로 대표하는 이웃 블록들의 그룹에 대응하는 컨트롤 포인트 기반의 어파인 머지 후보를 결정하여, 컨트롤 포인트 기반의 어파인 머지 후보를 어파인 머지 후보 리스트에 추가할 수 있다. 소정 개수는 어파인 머지 후보 리스트에 포함되도록 허용되는 어파인 머지 후보의 최대 개수이며, 예를 들어 5개로 설정될 수 있다. Specifically, when inter prediction of the current block is performed in the affine merge mode, the
따라서, 모델 기반의 어파인 머지 후보는 하나의 이웃 블록으로부터 파생된 대응하는 머지 후보이며, 컨트롤 포인트 기반의 어파인 머지 후보는 둘 이상의 이웃 블록들의 어파인 모델들의 조합으로부터 파생된 머지 후보일 수 있다. 현재 블록의 어파인 머지 후보 리스트에 이용가능한 모델 기반의 어파인 머지 후보가 포함될 수 있는데, 현재 블록의 유효한 어파인 머지 후보가 소정 개수보다 적으면, 모자란 개수만큼 컨트롤 포인트 기반의 어파인 머지 후보가 어파인 머지 후보 리스트에 추가될 수 있다. Accordingly, the model-based affine merge candidate is a corresponding merge candidate derived from one neighboring block, and the control point-based affine merge candidate may be a merge candidate derived from a combination of affine models of two or more neighboring blocks. . Available model-based affine merge candidates may be included in the affine merge candidate list of the current block. It can be added to the affine merge candidate list.
일 실시예에 따른 인터 예측부(1710)는, 어파인 머지 후보 리스트 중에서 선택된 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터를 결정할 수 있다. 비트스트림으로부터 획득된 어파인 머지 인덱스를 이용하여, 인터 예측부(1710)는, 어파인 머지 후보 리스트 중에서 어파인 머지 인덱스가 가리키는 머지 후보의 컨트롤 포인트 움직임 벡터를 결정할 수 있다. 인터 예측부(1710)는, 컨트롤 포인트 움직임 벡터를 이용하여 현재 블록의 어파인 모션 모델 파라미터를 결정하고, 현재 블록의 어파인 모션 모델 파라미터를 이용하여 현재 블록의 어파인 움직임 벡터를 결정할 수도 있다. 인터 예측부(1710)는, 현재 블록의 어파인 움직임 벡터가 가리키는 참조 샘플을 이용하여, 현재 블록의 예측 샘플들을 획득할 수 있다. The
어파인 머지 후보 리스트 중에서 모델 기반의 어파인 머지 후보가 선택될 때, 모델 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 하나의 이웃 블록의 어파인 모델을 이용하여 결정된 것으로, 일 실시예에 따른 인터 예측부(1710)는, 모델 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 현재 블록의 어파인 움직임 벡터를 결정할 수 있다. When a model-based affine merge candidate is selected from the affine merge candidate list, control point motion vectors corresponding to the model-based affine merge candidate are determined by using an affine model of one neighboring block. The
어파인 머지 후보 리스트 중에서 컨트롤 포인트 기반의 어파인 머지 후보가 선택될 때, 컨트롤 포인트 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터는 대응되는 블록 그룹에 포함된 이웃 블록들을 현재 블록의 컨트롤 포인트들을 이용하여 결정된 것으로, 일 실시예에 따른 인터 예측부(1710)는, 컨트롤 포인트 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 결정될 수 있다. When a control point-based affine merge candidate is selected from the affine merge candidate list, the control point motion vector corresponding to the control point-based affine merge candidate sets neighboring blocks included in the corresponding block group as the control point of the current block. As determined using , the
구체적으로, 어파인 머지 후보 리스트 중에서 모델 기반의 어파인 머지 후보가 선택되는 경우에, 모델 기반의 어파인 머지 후보에 대응하는 하나의 이웃 블록의 수직 변화량, 수평 변화량 및 움직임 벡터를 이용하여 현재 블록의 컨트롤 포인트들에 대응하는 컨트롤 포인트 움직임 벡터들이 결정될 수 있다. 더 구체적으로, 이웃 블록의 참조 인덱스, 예측 방향(L0-pred, L1-pred 또는 Bi-pred) 및 움직임 벡터를 이용하여, 모델 기반의 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들이 각각 결정될 수 있다. 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 참조 인덱스, 예측 방향 및 어파인 움직임 벡터가 각각 결정될 수 있다.Specifically, when a model-based affine merge candidate is selected from the affine merge candidate list, the current block using the vertical change amount, the horizontal change amount, and the motion vector of one neighboring block corresponding to the model-based affine merge candidate Control point motion vectors corresponding to the control points of may be determined. More specifically, the reference index, prediction direction, and control point corresponding to the model-based affine merge candidate using the reference index, prediction direction (L0-pred, L1-pred, or Bi-pred) and motion vector of the neighboring block. Each of the motion vectors may be determined. A reference index, a prediction direction, and an affine motion vector of the current block may be determined using the reference index, prediction direction, and control point motion vectors corresponding to the affine merge candidate, respectively.
구체적으로, 어파인 머지 후보 리스트 중에서 컨트롤 포인트 기반의 어파인 머지 후보가 선택되는 경우에, 현재 블록의 컨트롤 포인트들에 인접하는 이웃 블록들의 움직임 벡터들을 이용하여 컨트롤 포인트 움직임 벡터들이 결정되고, 선택된 어파인 머지 후보에 따라 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 결정될 수 있다. 더 구체적으로, 블록 그룹에 속한 대표 이웃 블록들의 참조 인덱스, 예측 방향 및 움직임 벡터를 이용하여, 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들이 각각 결정될 수 있다. 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 참조 인덱스, 예측 방향 및 어파인 움직임 벡터가 각각 결정될 수 있다.Specifically, when a control point-based affine merge candidate is selected from the affine merge candidate list, control point motion vectors are determined using motion vectors of neighboring blocks adjacent to the control points of the current block, and the selected affine An affine motion vector of the current block may be determined using control point motion vectors according to the in-merge candidate. More specifically, reference indexes, prediction directions, and control point motion vectors corresponding to an affine merge candidate may be determined using reference indexes, prediction directions, and motion vectors of representative neighboring blocks belonging to a block group, respectively. A reference index, a prediction direction, and an affine motion vector of the current block may be determined using the reference index, prediction direction, and control point motion vectors corresponding to the affine merge candidate, respectively.
일 실시예에 따른 비디오 복호화 장치(1700)는 SUCO(Split Unit Coding Order) 방식에 따라 좌우로 인접하는 부호화 단위 간에 부호화 순서를 변경할 수 있다. 예를 들어, 비디오 복호화 장치(1700)가 하위 부호화 순서의 방향을 나타내는 부호화 순서 플래그를 비트스트림으로부터 획득할 수 있다. 부호화 순서 플래그가 좌우 방향(left to right)을 나타내는 경우에, 현재 부호화 단위가 분할되어 생성된 좌우로 인접하는 하위 부호화 단위들 중에서 좌측 하위 부호화 단위가 먼저 복호화되고 우측 하위 부호화 단위가 나중에 복호화될 수 있다. 부호화 순서 플래그가 우좌 방향(right to left)을 나타내는 경우에, 우측 하위 부호화 단위가 먼저 복호화되고 좌측 하위 부호화 단위가 나중에 복호화될 수 있다.The
구체적인 예로, 현재 블록의 우측 블록이 먼저 복호화되어 이용 가능한 경우에, 현재 블록의 우하측 코너에 인접하는 대표 이웃 블록은, 현재 블록의 우하측 코너 및 현재 블록의 우측 외곽선에 인접하는 이웃 블록 및 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 이웃 블록 중에서, 이용 가능한 움직임 정보가 획득되는 이웃 블록을 대표 이웃 블록으로 결정될 수 있다. 이웃 블록 C1, 이웃 블록 C0의 순서로 해당 블록에서 이용 가능한 움직임 정보가 획득되는지가 확인되고, 먼저 이용 가능한 블록이 BR 대표 이웃 블록으로 결정될 수 있다. As a specific example, when the right block of the current block is first decoded and available, the representative neighboring block adjacent to the lower right corner of the current block includes the neighboring block adjacent to the lower right corner of the current block and the right edge of the current block and the current block. Among neighboring blocks diagonally adjacent to the lower right corner of the block, a neighboring block from which available motion information is obtained may be determined as the representative neighboring block. In the order of the neighboring block C1 and the neighboring block C0, it may be checked whether available motion information is obtained from the corresponding block, and the first available block may be determined as the BR representative neighboring block.
다만, 현재 블록의 우측 블록이 이용 가능하지 않은 경우에, 현재 블록의 우하측 코너에 인접하는 대표 이웃 블록은, 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 지점에 위치하는 콜로케이티드 블록일 수 있다. 콜로케이티드 블록은 콜로케이티드 픽쳐에 포함된 블록으로서, 시간적 머지 후보로서 어파인 머지 후보 리스트에 포함될 수 있다. However, when the right block of the current block is not available, the representative neighboring block adjacent to the lower right corner of the current block is a collocated block located at a point diagonally adjacent to the lower right corner of the current block. can The collocated block is a block included in the collocated picture, and may be included in the affine merge candidate list as a temporal merge candidate.
다른 예로, 현재 블록의 우측 블록이 먼저 복호화되어 이용 가능한 경우에, 현재 블록의 우하측 코너에 인접하는 BR 대표 이웃 블록은, 현재 블록의 우하측 코너 및 현재 블록의 우측 외곽선에 인접하는 이웃 블록 C1, 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 이웃 블록 C0, 및 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 지점에 위치하는 콜로케이티드 블록 Col 중 먼저 움직임 정보가 이용 가능한 블록이 대표 이웃 블록으로 결정될 수 있다. 이웃 블록 C1, 이웃 블록 C0, 콜로케이티드 블록 Col의 순서로 해당 블록에서 이용 가능한 움직임 정보가 획득되는지가 확인되고, 먼저 이용 가능한 블록이 BR 대표 이웃 블록으로 결정될 수 있다. As another example, when the right block of the current block is first decoded and available, the BR representative neighboring block adjacent to the lower right corner of the current block is the lower right corner of the current block and the neighboring block C1 adjacent to the right edge of the current block , the neighboring block C0 that is diagonally adjacent to the lower right corner of the current block, and the collocated block Col located at a point diagonally adjacent to the lower right corner of the current block, the first block for which motion information is available is the representative neighbor. Blocks can be determined. It is checked whether motion information available in the corresponding block is obtained in the order of the neighboring block C1, the neighboring block C0, and the collocated block Col, and first, the available block may be determined as the BR representative neighboring block.
콜로케이티드 블록은 콜로케이티드 픽쳐에 포함된 블록으로서, 시간적 머지 후보로서 어파인 머지 후보 리스트에 포함될 수 있다. 현재 블록의 우하측 코너에 인접하는 콜로케이티드 블록은, 콜로케이티드 픽쳐 내에서 현재 블록의 우하측 코너에 대응하는 좌표에 위치 블록일 수 있다. The collocated block is a block included in the collocated picture, and may be included in the affine merge candidate list as a temporal merge candidate. The collocated block adjacent to the lower right corner of the current block may be a block located at coordinates corresponding to the lower right corner of the current block in the collocated picture.
일 실시예에 따른 비디오 복호화 장치(1700)는 어파인 머지 후보 리스트에 유효한 머지 후보를 포함시키기 위해 이웃 블록의 움직임 정보의 이용 가능성을 확인할 필요가 있다. 이미 블록에 대한 움직임 예측이 수행되어 이용 가능한 움직임 정보를 가지는 이웃 블록으로부터 유효한 머지 후보가 결정될 수 있기 때문이다. 일반적으로 현재 블록보다 먼저 움직임 예측이 수행된 이웃 블록은 현재 블록의 예측을 위해 이용 가능한 상태이다. 구체적으로 현재 블록의 좌측 이웃 블록에 대해 현재 블록보다 먼저 움직임 예측이 수행된경우에, 좌측 이웃 블록의 움직임 정보는 이용 가능한 상태이다. 현재 블록의 우측 이웃 블록에 대해 현재 블록보다 먼저 움직임 예측이 수행된 경우에, 우측 이웃 블록의 움직임 정보는 이용 가능한 상태이다. 반대로, 현재 블록의 좌측 이웃 블록에 대해 움직임 예측이 수행되지 않은 경우에, 좌측 이웃 블록의 움직임 정보가 이용 가능하지 않은 상태이다. 현재 블록의 우측 이웃 블록에 대해 움직임 예측이 수행되지 않은 경우에, 우측 이웃 블록의 움직임 정보가 이용 가능하지 않은 상태이다.The
앞서 전술한 부호화 순서에 따라 이웃 블록의 좌측 이웃 블록들뿐만 아니라 우측 이웃 블록들이 먼저 복호화되어 있을 수 있으므로, 일 실시예에 따른 비디오 복호화 장치(1700)는 부호화 순서를 고려하여 어파인 머지 후보 리스트를 결정할 필요가 있다. Since the right neighboring blocks as well as the left neighboring blocks of the neighboring block may be first decoded according to the above-described coding order, the
일 실시예에 따른 인터 예측부(1710)는, 복호화 과정에서 유도된 움직임 벡터를 기반으로 추가적인 움직임 벡터 탐색 혹은 움직 임 벡터 계산 과정을 통해 보정된 움직임 벡터를 획득하여 예측 샘플의 정확도를 높이기 위해 DMVR 기술을 수행할 수 있다. The
DMVR은 일반 머지 모드에서 유도한 양방향 움직임 벡터를 복호 과정에서 추가정보 전송 없이 BM(Bi-lateral Matching) 기반 움직임 벡터 탐색 과정을 통해 보정하여 일반 머지 모드의 예측 정확도를 높이는 기술이다. BM 기반 움직임 벡터 보정은 L0 방향 움직임 벡 터와 L1 방향 움직임 벡터를 대칭으로 탐색하면서 L0 방향 예측 샘플과 L1 방향 예측 샘플 사이의 왜곡을 최소화하는 L0 및 L1 방향 움직임 벡터가 최종 움직임 벡터로 유도될 수 있다. MV0와 MV1은 일반 머지 모드에서 유도한 L0 및 L1 방향 움직임 벡터이며, MV0'는 L0 방향 움직임 벡터인 MV0를 MVdiff만큼 보정한 움직임 벡터이다. MV1'는 L1 방향 움직임 벡터인 MV1을 MV0'와 대칭으로 보정하기 위해 -MVdiff 만큼 보정한 움직임 벡터이다. 이 때, L0 참조 픽쳐에서 MV0'가 가리키는 영역과 L1 참조 픽쳐에서 MV1'가 가리키는 영역 간의 왜곡(SAD, Sum of Absolute Difference)이 최소가 되면 MV0'와 MV1'가 최종 움직임 벡터로 설정될 수 있다. DMVR is a technology that improves the prediction accuracy of the general merge mode by correcting the bi-directional motion vector derived in the general merge mode through a BM (Bi-lateral Matching)-based motion vector search process without transmitting additional information in the decoding process. In BM-based motion vector correction, the L0 and L1 direction motion vectors that minimize distortion between the L0 direction prediction sample and the L1 direction prediction sample while searching the L0 direction motion vector and the L1 direction motion vector symmetrically can be derived as the final motion vector. have. MV0 and MV1 are motion vectors in the L0 and L1 directions derived in the general merge mode, and MV0' is a motion vector obtained by correcting MV0, which is a motion vector in the L0 direction, by MVdiff. MV1' is a motion vector corrected by -MVdiff to symmetrically correct MV1, which is a motion vector in the L1 direction, with MV0'. In this case, when the SAD (sum of absolute difference) between the region indicated by MV0' in the L0 reference picture and the region indicated by MV1' in the L1 reference picture is minimized, MV0' and MV1' may be set as final motion vectors. .
DMVR에서는, 움직임 벡터 보정에 의한 부호화 효율 대비 탐색 과정에서 발생하는 디코더 복잡도를 고려하여, 움직임 벡터 탐색 범위가 수평 및 수직 방향에 대해 정수 샘플 단위를 기준으로 ±2 샘플 크기로 제한될 수 있다. 주어진 탐색 범위내에서 정수 샘플 단위 탐색 및 부샘플 단위 탐색의 2단계 탐색 과정을 통해 최종 움직임 벡터가 구해질 수 있다. 인터 예측부(1710)는, ±2 샘플의 정수 샘플 단위의 탐색 범위내의 25개 탐색 위치 각각에 대해 SAD 값을 계산하여 최소 SAD 값을 가지는 위치를 결정할 수 있다. 부샘플 단위 탐색을 위해, 정수 샘플 단위 탐색 과정에서 계산한 SAD 값을 이용한 2D 파라메틱 에러 서피스 이퀘이션(parametric error surface equation)에 의해 탐색된 정수 샘플의 주변 부샘플 위치들 가운데 SAD 값이 최소가 되는 부샘플 위치가 추정될 수 있다. 이렇게 추정된 위치를 가리키는 움직임 벡터가 최종 움직임 벡터로 설정될 수 있다. In DMVR, the motion vector search range may be limited to a size of ±2 samples based on an integer sample unit in the horizontal and vertical directions in consideration of the decoder complexity generated in the search process versus the encoding efficiency by the motion vector correction. A final motion vector may be obtained through a two-step search process of searching in units of integer samples and searching in units of subsamples within a given search range. The
DMVR 과정에서, 블록을 16x16 크기의 서브블록으로 분할하여 서브블록 단위 움직임 벡터의 보정이 수행될 수 있다. 이로 인해 16x16 서브블록 단위로 DMVR의 병렬처리가 가능하며, 서브블록 단위로 보다 정확하게 움직임 벡터를 보정이 가능하다. 또한, 하드웨어 구현시 복호화 과정에서 움직임 벡터 보정으로 인해 지연이 발생하지 않도록 하기 위하여, 보정된 최종 움직임 벡터는 현재 블록의 예측 샘플 생성 및 시간적 움직임 벡터 후보(TMVP 및 SbTMVP)에만 사용되고, 공간적 머지 및 AMVP 후보로는 보정되지 않은 일반 머지 모드에서 유도된 기초 움직임 벡터가 사용될 수 있다.In the DMVR process, the subblock unit motion vector may be corrected by dividing the block into subblocks having a size of 16x16. Due to this, parallel processing of DMVR is possible in units of 16x16 sub-blocks, and motion vectors can be more accurately corrected in units of sub-blocks. In addition, in hardware implementation, in order to prevent delay due to motion vector correction in the decoding process, the corrected final motion vector is used only for generation of prediction samples of the current block and temporal motion vector candidates (TMVP and SbTMVP), and spatial merge and AMVP As a candidate, a basic motion vector derived from an uncorrected general merge mode may be used.
일 실시예에 따른 비디오 복호화 장치(1700)는 상기 언급된 다양한 인터 예측 방식에 따라 인터 예측을 수행할 때, 현재 블록의 머지 후보 또는 MVP 후보가 될 수 있는 콜로케이티드 블록의 위치를 결정하는 방법을 제안한다. 머지 후보는 현재 블록의 인터 예측 방식이 일반 머지 모드, 스킵 모드, 머지 MMVD 모드 또는 스킵 MMVD 모드일 때 결정되는 머지 후보 리스트에 포함되거나, 현재 블록의 인터 예측 방식이 어파인 머지 모드 또는 sbTMVP 모드인 경우에 생성될 수 있는 어파인 머지 후보 리스트에 포함될 수 있다. MVP 후보는 현재 블록의 인터 예측 방식이 AMVP 모드 또는 어파인 AMVP 모드일 때 결정되는 MVP 후보 리스트에 포함될 수 있다.When the
일 실시예에 따른 비디오 복호화 장치(1700)는 현재 블록의 좌상측 지점을 이용하여 결정되는 콜로케이티드 블록의 좌상측 지점이 콜로케이티드 픽쳐 내의 블록 안에 내의 임의의 점인 경우에, 콜로케이티드 블록의 최종 위치를 콜로케이티드 픽쳐 내의 블록 중 어느 위치로 결정할 것인지에 대한 방안을 제공한다.In the
일 실시예에 따른 비디오 복호화 장치(1700)는 인터 예측부(1710) 및 복원부(1720)를 포함한다. The
일 실시예에 따른 인터 예측부(1710)는, 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하고, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다. The
인터 예측부(1710)는 콜로케이티드 픽쳐 내에서 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득할 수 있다. 인터 예측부(1710)는 콜로케이티드 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 획득할 수 있다. The
일 실시예에 따른 복원부(1720)는, 현재 블록의 움직임 벡터를 이용하여 결정된 현재 블록의 예측 블록을 이용하여 현재 블록의 복원 블록을 생성할 수 있다. The
이하 도 18을 참조하여 일 실시예에 따른 비디오 복호화 장치(1700)의 동작을 상술한다.Hereinafter, an operation of the
도 18은 일 실시예에 따른 비디오 복호화 방법의 흐름도를 도시한다.18 is a flowchart of a video decoding method according to an embodiment.
단계 1810에서 인터 예측부(1710)는 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득할 수 있다. In
콜로케이티드 블록은 콜로케이티드 픽쳐 내의 블록이다. 콜로케이티드 픽쳐는 현재 블록의 TMVP(temporal movtion vector prediction)을 위해 사용되는 참조 픽쳐로, 픽쳐 단위의 콜로케이티드 픽쳐 또는 슬라이스 단위 단위의 콜로케이티드 픽쳐가 결정될 수 있다.A collocated block is a block within a collocated picture. The collocated picture is a reference picture used for temporal motion vector prediction (TMVP) of the current block, and a collocated picture in a picture unit or a collocated picture in a slice unit unit may be determined.
일 실시예에 따르면, 인터 예측부(1710)는 픽쳐 헤더또는 슬라이스 헤더로부터 콜로케이티드 픽쳐를, 현재 블록을 포함하는 슬라이스의 L0 참조 픽쳐 리스트 또는 L1 참조 픽쳐 리스트 중에서 어느 리스트로부터 결정될지를 나타내는 정보, 및 선택된 참조 리스트에서 콜로케이티드 픽쳐를 가라키는 콜로케이티드 참조 픽쳐 인덱스를 획득할 수 있다. 이를 통해, 인터 예측부(1710)는 L0 참조 리스트 또는 L1 참조 리스트 중에서, 콜로케이티드 참조 픽쳐 인덱스가 가리키는 콜로케이티드 픽쳐를 결정할 수 있다.According to an embodiment, the
다른 실시예에 따르면, 현재 블록을 포함하는 픽쳐가 양방향 예측이 수행되는 B 슬라이스 타입의 픽쳐인 경우에는 L1 참조 픽쳐 리스트 중에서 첫번째 참조 픽쳐 인덱스가 가리키는 픽쳐가 콜로케이티드 픽쳐로서 사용될 수 있다. 현재 블록을 포함하는 픽쳐가 단방향 예측이 수행되는 P 슬라이스 타입의 픽쳐인 경우에는 L0 참조 픽쳐 리스트 중에서 첫번째 참조 픽쳐 인덱스가 가리키는 픽쳐가 콜로케이티드 픽쳐로서 사용될 수 있다.According to another embodiment, when the picture including the current block is a B slice type picture for which bidirectional prediction is performed, the picture indicated by the first reference picture index in the L1 reference picture list may be used as the collocated picture. When the picture including the current block is a P slice type picture for which unidirectional prediction is performed, the picture indicated by the first reference picture index from the L0 reference picture list may be used as the collocated picture.
일 실시예에 따른 인터 예측부(1710)는 현재 블록의 소정 위치를 가리키는 좌표를 기준으로, 콜로케이티드 픽쳐 내에 존재하는 콜로케이티드 블록의 위치를 결정할 수 있다. 다만, 예측 모드 등의 정보를 획득하기 위한 콜로케이티드 블록의 위치는 콜로케이티드 블록에 대응하는 콜로케이티드 부호화 단위의 위치를 이용하여 결정될 수 있다. 움직임 벡터 등의 정보를 획득하기 위한 콜로케이티드 블록의 위치는 콜로케이티드 블록의 소정 샘플의 위치를 이용하여 결정할 수 있다.The
일 실시예에 따르면, 콜로케이티드 블록의 제1 좌표는 현재 블록의 우하측 지점의 좌표와 동일하게 결정될 수 있다. 콜로케이티드 블록이 우하측 콜로케이티드 블록(bottom-right collocated block)인 경우, 제1 좌표는 현재 블록의 우하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다. 현재 블록의 우하측 지점은 현재 블록의 좌상측 지점으로부터 x축 방향으로 블록 너비만큼 떨어지고, y축 방향으로 블록 높이만큼 떨어진 지점이다. 따라서, 현재 블록의 좌상측 지점의 (x, y) 좌표와 현재 블록의 너비 및 높이를 기초로 현재 블록의 우하측 지점의 좌표가 획득될 수 있다. According to an embodiment, the first coordinates of the collocated block may be determined to be the same as the coordinates of the lower right point of the current block. When the collocated block is a bottom-right collocated block, the first coordinates may be the same as coordinates of an external sample diagonally adjacent to the lower-right point of the current block. The lower-right point of the current block is a point apart from the upper-left point of the current block by the block width in the x-axis direction and the block height in the y-axis direction. Accordingly, the coordinates of the lower right point of the current block may be obtained based on the (x, y) coordinates of the upper left point of the current block and the width and height of the current block.
구체적으로, 현재 블록의 좌상측 지점의 (x, y) 좌표가 (xCb, xCb)일 때, 콜로케이티드 블록의 제1 좌표 (xColBr, yColBr)는 현재 블록의 우하측 지점의 좌표 와 동일하게 결정될 수 있다. 현재 블록의 우하측 지점의 x 좌표는 xCb와 현재 블록의 블록 너비 cbWidth 를 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 x 좌표 xColBr는 xCb와 현재 블록의 블록 너비 cbWidth 를 합함으로써 획득된 값과 동일하게 결정될 수 있다. 마찬가지로, 현재 블록의 우하측 지점의 y 좌표는 yCb와 현재 블록의 블록 너비 cbHeight 를 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 y 좌표 yColBr는 yCb와 현재 블록의 블록 높이 cbHeigt 를 합함으로써 획득된 값과 동일하게 결정될 수 있다. Specifically, when the (x, y) coordinate of the upper-left point of the current block is (xCb, xCb), the first coordinate (xColBr, yColBr) of the collocated block is the same as the coordinate of the lower-right point of the current block can be decided. The x coordinate of the lower right point of the current block may be a value obtained by summing xCb and the block width cbWidth of the current block. Accordingly, the x-coordinate xColBr of the first coordinate of the collocated block may be determined to be equal to a value obtained by summing xCb and the block width cbWidth of the current block. Similarly, the y-coordinate of the lower-right point of the current block may be a value obtained by summing yCb and the block width cbHeight of the current block. Accordingly, the y-coordinate yColBr of the first coordinate of the collocated block may be determined to be the same as a value obtained by summing yCb and the block height cbHeigt of the current block.
다른 예로, 콜로케이티드 블록의 제1 좌표는 현재 블록의 중앙 지점의 좌표와 동일하게 결정될 수 있다. 콜로케이티드 블록이 중앙 콜로케이티드 블록(central collocated block)인 경우, 제1 좌표는 현재 블록의 중앙 지점의 좌표와 동일할 수 있다. 현재 블록의 중앙 지점은 현재 블록의 좌상측 지점으로부터 x축 방향으로 블록 너비의 절반만큼 떨어지고, y축 방향으로 블록 높이의 절반만큼 떨어진 지점이다. 따라서, 현재 블록의 좌상측 지점의 (x, y) 좌표와 현재 블록의 너비 및 높이를 기초로 현재 블록의 중앙 지점의 좌표가 획득될 수 있다. As another example, the first coordinates of the collocated block may be determined to be the same as the coordinates of the center point of the current block. When the collocated block is a central collocated block, the first coordinates may be the same as the coordinates of the central point of the current block. The center point of the current block is a point that is half the block width in the x-axis direction and half the block height in the y-axis direction from the upper-left point of the current block. Accordingly, the coordinates of the center point of the current block may be obtained based on the (x, y) coordinates of the upper left point of the current block and the width and height of the current block.
구체적으로, 콜로케이티드 블록의 제1 좌표 (xColCtr, yColCtr)는 현재 블록의 중앙 지점의 좌표와 동일하게 결정될 수 있다. 현재 블록의 중앙 지점의 x 좌표는 xCb와 현재 블록의 블록 너비 cbWidth 의 절반을 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 x 좌표 xColCtr는 xCb와 현재 블록의 블록 너비 cbWidth 의 절반 (cbWidth << 2)를 합함으로써 획득된 값과 동일하게 결정될 수 있다. 마찬가지로, 현재 블록의 중앙 지점의 y 좌표는 yCb와 현재 블록의 블록 너비 cbHeight 의 절반을 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 y 좌표 yColCtr는 yCb와 현재 블록의 블록 높이 cbHeigt의 절반(cbHeight << 2) 를 합함으로써 획득된 값과 동일하게 결정될 수 있다. Specifically, the first coordinates (xColCtr, yColCtr) of the collocated block may be determined to be the same as the coordinates of the center point of the current block. The x-coordinate of the center point of the current block may be a value obtained by summing xCb and half of the block width cbWidth of the current block. Accordingly, the x-coordinate xColCtr of the first coordinate of the collocated block may be determined to be equal to a value obtained by summing xCb and half of the block width cbWidth ? of the current block (cbWidth ? << 2). Similarly, the y-coordinate of the center point of the current block may be a value obtained by summing yCb and half of the block width cbHeight of the current block. Accordingly, the y-coordinate yColCtr of the first coordinate of the collocated block may be determined to be equal to a value obtained by summing yCb and half of the block height cbHeigt of the current block (cbHeight << 2).
다른 예로, 콜로케이티드 블록이 하측 콜로케이티드 블록(bottom collocated block)인 경우, 제1 좌표는 현재 블록좌하측 지점 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.As another example, when the collocated block is a bottom collocated block, the first coordinates may be the same as the coordinates of an external sample adjacent to the lower-left point or lower-right point of the current block in the y-axis direction. .
다른 예로, 콜로케이티드 블록이 사이드 콜로케이티드 블록(side collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 x축 방향으로 인접하는 외부 샘플 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.As another example, when the collocated block is a side collocated block, the first coordinate is an external sample adjacent to the lower left point of the current block in the x-axis direction or the lower right point of the current block in the y-axis direction. may be the same as the coordinates of an adjacent external sample.
다른 예로, 콜로케이티드 블록이 좌하측 콜로케이티드 블록(bottom-left collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.As another example, if the collocated block is a bottom-left collocated block, the first coordinate may be the same as the coordinate of an external sample diagonally adjacent to the lower-left point of the current block. have.
단계 1820에서 인터 예측부(1710)는 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다. In
구체적으로, M, N, m, n는 각각 양의 정수이고, M이 2의 m승이고 N인 2의 n승인 경우에, 인터 예측부(1710)는 제1 좌표의 x 좌표를 m만큼 우측 비트시프트한 수를 m만큼 좌측 비트시프트함으로써, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표의 x 좌표를 획득할 수 있다. 인터 예측부(1710)는 제1 좌표의 y 좌표를 n만큼 우측 비트시프트한 수를 n만큼 좌측 비트시프트함으로써, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표의 y 좌표를 획득할 수 있다.Specifically, M, N, m, and n are positive integers, respectively, and when M is 2 to the mth power and N is 2 to the nth power, the
일 실시예에 따르면, 콜로케이티드 픽쳐 내에서 MxN 크기의 블록(MxN 그리드)를 단위로 저장된 움직임 벡터 관련 정보만이, 현재 블록의 인터 예측을 위해 획득될 수 있다. 일 실시예에 따르면, 현재 블록의 콜로케이티드 블록의 위치에 대응하여, 콜로케이티드 픽쳐 내에 존재하는 위치가 제1 좌표라 지칭된다. 다만 콜로케이티드 블록 내에서 제1 좌표에 대해 저장된 움직임 벡터 관련 정보가 획득되지 않을 수 있으므로, 제1 좌표를 MxN 그리드 단위로 변경하는 과정이 상기 제1 좌표의 x좌표를 m만큼, y좌표를 n만큼 우측 비트쉬프트한 후 다시 좌측 비트쉬프트하는 과정이다. 따라서, 제1 좌표를 MxN 그리드 단위로 변경함으로써, 제2 좌표가 획득될 수 있다. According to an embodiment, only motion vector related information stored in units of MxN blocks (MxN grids) in the collocated picture may be obtained for inter prediction of the current block. According to an embodiment, a position existing in the collocated picture corresponding to the position of the collocated block of the current block is referred to as a first coordinate. However, since the motion vector related information stored for the first coordinate in the collocated block may not be obtained, the process of changing the first coordinate in MxN grid units changes the x-coordinate of the first coordinate by m and the y-coordinate It is a process of bit-shifting right bit by n and then bit-shifting left again. Accordingly, by changing the first coordinates in units of MxN grids, the second coordinates may be obtained.
단계 1830에서 인터 예측부(1710)는, 콜로케이티드 픽쳐 내에서 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득할 수 있다. 단계 1840에서 인터 예측부(1710)는, 콜로케이티드 움직임 벡터를 이용하여 결정된 현재 블록의 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성할 수 있다. In
MxN 크기의 블록은 부호화 단위, 예측 블록 또는 서브블록과는 별개로 설정된 블록일 수 있다. 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 일 실시예에 따른 인터 예측부(1710)는, 콜로케이티드 부호화 단위의 서브블록들 중에서, 제2 좌표를 포함하는 서브블록의 좌표를 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다. 이 경우 인터 예측부(1710)는, 제2 좌표를 포함하는 서브블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 현재 블록의 시간적 예측 움직임 벡터를 획득할 수 있다. A block of size MxN may be a block configured separately from a coding unit, a prediction block, or a subblock. When the collocated coding unit including the first coordinates of the collocated block includes one or more subblocks, the
일 실시예에 따라 MxN 크기의 블록은 8x8일 수 있다.According to an embodiment, an MxN block may be 8x8.
일 실시예에 따라 콜로케이티드 부호화 단위가 인트라 예측 모드, IBC (intra block copy) 예측 모드 또는 팔레트 예측 모드로 복호화되지 않은 경우, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 콜로케이티드 샘플의 좌표에 대응하는 블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스를 획득할 수 있다. According to an embodiment, when the collocated coding unit is not decoded in the intra prediction mode, the intra block copy (IBC) prediction mode, or the palette prediction mode, the collocated coding unit is collocated using the motion vector of the block corresponding to the coordinates of the collocated sample. A colocated motion vector may be obtained, and a collocated reference picture index may be obtained by using the reference picture index of the block corresponding to the coordinates of the collocated sample.
따라서, 콜로케이티드 샘플의 좌표에 대응하는 블록이 콜로케이티드 부호화 단위의 서브블록들 중 하나의 서브블록인 경우에, 콜로케이티드 부호화 단위의 예측 모드가 인트라 예측 모드, IBC 예측 모드 또는 팔레트 예측 모드가 아니라면, 콜로케이티드 샘플의 좌표에 대응하는 서브블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터가 획득되고, 콜로케이티드 샘플의 좌표에 대응하는 서브블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스가 획득될 수 있다. 따라서, 예측 모드는 콜로케이티드 부호화 단위를 통해 판단되는 반면에, 움직임 벡터는 콜로케이티드 부호화 단위 내부의 서브블록을 통해 획득될 수 있다.Accordingly, when the block corresponding to the coordinates of the collocated sample is one of the subblocks of the collocated coding unit, the prediction mode of the collocated coding unit is the intra prediction mode, the IBC prediction mode, or the palette prediction. If not, a collocated motion vector is obtained using the motion vector of the subblock corresponding to the coordinates of the collocated sample, and collocated using the reference picture index of the subblock corresponding to the coordinates of the collocated sample. A referenced reference picture index may be obtained. Accordingly, while the prediction mode is determined through the collocated coding unit, the motion vector may be obtained through the subblock inside the collocated coding unit.
또한, 콜로케이티드 부호화 단위의 참조 픽쳐와 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐이거나, 콜로케이티드 부호화 단위의 참조 픽쳐와 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐가 아닌 경우에, 인터 예측부(1710)는 콜로케이티드 부호화 단위를 포함하는 슬라이스의 참조 픽쳐 리스트 세트를 이용하여, 콜로케이티드 움직임 벡터를 스케일링할 수 있다. 따라서 콜로케이티드 블록의 픽쳐가 롱텀 참조 픽쳐인지 여부를 판단하는데 있어서 콜로케이티드 부호화 단위가 이용되고 콜로케이티드 부호화 단위의 참조 픽쳐 리스트 세트가 이용되는 반면에, 그로 인해 스케일링되는 움직임 벡터는 콜로케이티드 부호화 단위 내부의 서브블록의 움직임 벡터를 이용하여 획득될 수 있다.In addition, when both the reference picture of the collocated coding unit and the reference picture of the current block are long-term reference pictures, or the reference picture of the collocated coding unit and the reference picture of the current block are both not long-term reference pictures, the
일 실시예에 따른 인터 예측부(1710)는, 현재 블록이 머지 모드로 인터 예측될 때, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성을 각각 획득할 수 있다. 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 인터 예측부(1710)는, 콜로케이티드 움직임 벡터를 가지는 블록에 대응하는 시간적 머지 후보를 포함하는 현재 블록의 머지 후보 리스트를 생성할 수 있다. 인터 예측부(1710)는, 머지 후보 리스트 중에서 결정된 현재 블록의 머지 후보에 대응하는 블록의 움직임 벡터를 이용하여 현재 블록의 예측 움직임 벡터를 결정할 수 있다. When the current block is inter-predicted in the merge mode, the
일 실시예에 따르 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 콜로케이티드 샘플의 좌표에 해당하는 서브블록의 움직임 벡터가 콜로케이티드 움직임 벡터로 결정되고, 콜로케이티드 부호화 단위의 서브블록이 시간적 머지 후보로 이용될 수 있다.According to an embodiment, when the collocated coding unit includes one or more subblocks, a motion vector of the subblock corresponding to the coordinates of the collocated sample is determined as the collocated motion vector, and the collocated coding unit A subblock of may be used as a temporal merge candidate.
일 실시예에 따른 인터 예측부(1710)는, 현재 블록의 MVP 모드로 인터 예측될 때, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 각각 획득할 수 있다. 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 인터 예측부(1710)는 콜로케이티드 움직임 벡터를 가지는 블록에 대응하는 시간적 움직임 벡터 예측 후보를 포함하는 현재 블록의 MVP 후보 리스트를 생성할 수 있다. 인터 예측부(1710)는, MVP 후보 리스트 중에서 결정된 현재 블록의 예측 움직임 벡터 후보에 대응하는 블록의 움직임 벡터를 이용하여 현재 블록의 예측 움직임 벡터를 결정할 수 있다. The
일 실시예에 따르 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 콜로케이티드 샘플의 좌표에 해당하는 서브블록의 움직임 벡터가 콜로케이티드 움직임 벡터로 결정되고, 콜로케이티드 부호화 단위의 서브블록이 시간적 움직임 벡터 예측 후보로 이용될 수 있다.According to an embodiment, when the collocated coding unit includes one or more subblocks, a motion vector of the subblock corresponding to the coordinates of the collocated sample is determined as the collocated motion vector, and the collocated coding unit A subblock of may be used as a temporal motion vector prediction candidate.
단계 1840에서 인터 예측부부(1710)는, 콜로케이티드 움직임 벡터를 이용하여 결정된 현재 블록의 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성할 수 있다. 복원부(1720)는 현재 블록의 움직임 벡터를 이용하여 결정된 현재 블록의 예측 블록을 이용하여 현재 블록의 복원 블록을 생성할 수 있다. In
인터 예측부(1710)는 현재 블록의 움직임 벡터를 이용하여 현재 블록의 예측 블록을 결정하고, 현재 블록의 예측 샘플들을 획득할 수 있다. 스킵 모드의 경우에는 복원부(1720)는 현재 블록의 예측 블록의 예측 샘플들이 현재 블록의 복원 샘플들을 되도록 결정하고 복원 샘플들로 구성된 복원 블록을 생성할 수 있다. 스킵 모드 이외의 인터 예측 모드의 경우에는, 복원부(1720)는 현재 블록의 레지듀얼 샘플들을 포함하는 레지듀얼 블록을 획득하고, 현재 블록의 예측 블록의 예측 샘플들과 레지듀얼 블록의 레지듀얼 샘플들을 조합함으로써 현재 블록의 복원 샘플들을 획득하고, 복원 샘플들로 구성된 복원 블록을 생성할 수 있다.The
일반적인 비디오 코딩에서는 코딩 효율의 향상을 위해, 현재 픽쳐의 복원이 완료된 후, 복원 픽쳐의 움직임 벡터 관련 정보가 저장될 수 있다. 움직임 벡터 관련 정보는 L0 참조 리스트를 위한 움직임 벡터 mvL0와 참조 픽쳐 인덱스와, L1 참조 리스트를 위한 움직임 벡터 mvL1와 참조 픽쳐 인덱스를 포함할 수 있다. 복원이 완료된 블록에 대한 움직임 벡터 관련 정보는 추후 다른 블록의 복호화에 사용될 수 있다.In general video coding, in order to improve coding efficiency, motion vector related information of a reconstructed picture may be stored after the current picture is reconstructed. The motion vector related information may include a motion vector mvL0 and a reference picture index for the L0 reference list, and a motion vector mvL1 and a reference picture index for the L1 reference list. The motion vector related information on the restored block may be used for decoding of another block later.
이 때, 움직임 벡터 관련 정보의 데이터가 방대하기 때문에, 소정 데이터 단위의 움직임 벡터 관련 정보가 저장된다. 예를 들어 종래 비디오 코덱의 경우에는 실제 8x4 또는 4x8 샘플 블록 단위로 움직임 벡터 관련 정보가 저장될 수 있는데, 예로 움직임 벡터의 x 성분 및 y 성분별로 저장하기 위해 16 비트가 필요하고, 참조 픽쳐 인덱스를 저장하기 위해 4비트가 필요하므로, 하나의 움직임 벡터 관련 정보를 저장하기 위해 (16*2+4)*2, 즉 72비트가 필요하다. 예로 4K UHD(Ultra High-Definition) 영상 (3840x2160) 한 장의 움직임 벡터 관련 정보의 저장을 위해 최대 2,332,800 바이트가 필요하다. 따라서, 소정 크기의 그리드(블록) 단위로 움직임 벡터 관련 정보에 접근하도록 규정되어 있다. At this time, since the data of the motion vector related information is huge, the motion vector related information of a predetermined data unit is stored. For example, in the case of a conventional video codec, motion vector related information may be actually stored in units of 8x4 or 4x8 sample blocks. For example, 16 bits are required to store each x component and y component of a motion vector, and a reference picture index is Since 4 bits are required for storage, (16*2+4)*2, that is, 72 bits, is required to store one motion vector related information. For example, a maximum of 2,332,800 bytes is required to store motion vector related information on one 4K Ultra High-Definition (UHD) image (3840x2160). Therefore, it is prescribed to access motion vector related information in units of a grid (block) of a predetermined size.
예를 들어, 인터 예측을 위해 참조 픽쳐 또는 콜로케이티드 픽쳐 내의 블록들의 움직임 벡터 관련 정보를 획득할 때, 픽쳐의 좌상측 위치가 원점(origin)으로부터 설정된 16x16 그리드로 움직임 벡터 관련 정보가 획득될 수 있다. 따라서, 픽쳐 내에서 16x16 그리드의 좌상측 위치를 포함하는 블록의 움직임 벡터 관련 정보가 획득될 수 있다. 16x16 그리드로 움직임 벡터 관련 정보가 획득된다면, 4K UHD 영상 한 장의 움직임 벡터 관련 정보를 저장하기 위해 최대 291,600 바이트가 필요하므로, 그리드 단위로 움직임 벡터 관련 정보를 저장하지 않는 케이스에 대비하여, 움직임 벡터 관련 정보의 저장 공간이 8배 정도 절약될 수 있다.For example, when obtaining motion vector related information of blocks in a reference picture or collocated picture for inter prediction, motion vector related information can be obtained with a 16x16 grid in which the upper left position of the picture is set from the origin. have. Accordingly, motion vector related information of a block including the upper left position of the 16x16 grid in the picture may be obtained. If motion vector related information is acquired in a 16x16 grid, up to 291,600 bytes are required to store motion vector related information on one 4K UHD image. Information storage space can be saved up to 8 times.
일 실시예에 따른 비디오 복호화 장치(1700)는 먼저 복호화된 픽쳐의 움직임 벡터 관련 정보 중에서 MxN 그리드에 대응하는 블록의 움직임 벡터 관련 정보가 접근 가능하도록 설정할 수 있다. MxN는 현재 블록의 크기와 무관할 수 있다. 따라서, MxN를 이용하여 현재 블록의 인터 예측을 위해 접근 가능한 움직임 벡터 관련 정보를 보유하고 있는 후보 블록의 위치를 결정할 수 있다. 이를 통해, 일 실시예에 따른 비디오 복호화 장치(1700)는 현재 블록에 대해 인터 예측을 수행할 때, 현재 블록의 콜로케이티드 블록의 위치가 포함된 MxN 그리드에 대응하는 움직임 벡터 관련 정보를 이용하여, 현재 블록에 대해 인터 예측을 수행할 수 있다. 또한, 콜로케이티드 픽쳐 내에서 하나의 부호화 단위는 다수의 MxN 그리드를 포함할 수 있고, MxN 그리드들 중 콜로케이티드 블록의 위치에 가장 가까운 MxN 그리드에 대응하는 움직임 벡터 관련 정보를 이용하여 현재 블록에 대해 인터 예측을 수행하는 것이 효율적일 수 있다.The
구체적으로 콜로케이티드 픽쳐 중 콜로케이티드 블록에 대해 서브블록 기반의 인터 예측이 수행되어, 서브블록들에 대해 각각 움직임 벡터 관련 정보가 결정되어 있을 수 있다. 일 실시예에 따른 비디오 복호화 장치(1700)는, 현재 블록에 대해 서브블록 기반의 인터 예측 모드가 아닌 모드에 따라 인터 예측을 수행하더라도, 현재 블록의 콜로케이티드 블록의 위치가 콜로케이티드 블록의 서브블록들 중 MxN 그리드의 좌상측 지점을 포함하는 서브블록이 존재한다면, MxN 그리드의 좌상측 지점을 포함하는 서브블록의 움직임 벡터 또는 움직임 벡터 관련 정보를 이용하여 현재 블록에 대해 인터 예측이 수행될 수 있다. 따라서, 콜로케이티드 블록의 위치에 가장 가까운 서브블록의 움직임 벡터가 획득될 수 있으므로, 현재 블록에 대한 인터 예측 결과의 정확성이 높아질 수 있다. Specifically, subblock-based inter prediction may be performed on collocated blocks among collocated pictures, and motion vector related information may be determined for each of the subblocks. Even if the
또한, 콜로케이티드 부호화 단위의 예측 모드(인트라 또는 IBC 또는 팔레트 예측 모드로 부호화되었는지 여부) 및 콜로케이티드 블록의 참조 픽쳐가 롱텀 참조 픽쳐인지 여부는 콜로케이티드 샘플을 포함하는 콜로케이티드 부호화 단위를 기준으로 판단하되, 움직임 벡터 및 참조 픽쳐 인덱스 등은 콜로케이티드 부호화 단위를 구성하는 서브블록들 중 하나의 서브블록 단위의 움직임 벡터 및 참조 픽쳐 인덱스 등을 이용하여 결정될 수 있다. In addition, the prediction mode (whether encoded in the intra or IBC or palette prediction mode) of the collocated coding unit and whether the reference picture of the collocated block is a long-term reference picture is determined by the collocated coding unit including the collocated sample. , but the motion vector and reference picture index may be determined using a motion vector and reference picture index of one subblock unit among subblocks constituting the collocated coding unit.
서브블록 기반의 인터 예측이 수행된 경우에 서브블록별로 개별적인 움직임 벡터가 결정될 수 있다. 따라서, 콜로케이티드 부호화 단위가 아닌 서브블록으로부터 움직임 벡터를 획득함으로써, 인터 예측을 위해 보다 정밀한 움직임 정보의 획득이 가능하다. 이와 반면에 서브블록보다 큰 데이터 단위로 판단 가능한 예측 모드 및 롱텀 참조 픽쳐인지 여부는, 서브블록이 아닌 콜로케이티드 부호화 단위 기준으로 판단되므로, 현재 블록의 인터 예측시 접근해야 할 콜로케이티드 블록의 데이터량이 효율적으로 운용될 수 있다. When subblock-based inter prediction is performed, individual motion vectors may be determined for each subblock. Accordingly, by obtaining a motion vector from a subblock rather than a collocated coding unit, it is possible to obtain more precise motion information for inter prediction. On the other hand, whether the prediction mode and the long-term reference picture that can be determined by the data unit larger than the subblock are determined based on the collocated coding unit rather than the subblock. The amount of data can be efficiently operated.
도 19은 일 실시예에 따른 비디오 부호화 장치의 블록도를 도시한다.19 is a block diagram of a video encoding apparatus according to an embodiment.
도 19을 참조하면, 일 실시예에 따른 비디오 부호화 장치(1900)는 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)를 포함할 수 있다.Referring to FIG. 19 , a
일 실시예에 따른 비디오 부호화 장치(1900)는 픽쳐를 하나 이상의 루마부호화 단위들로 분할하고, 부호화 단위들을 부호화할 수 있다. The
일 실시예에 따른 비디오 부호화 장치(1900)는, 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)를 제어하는 중앙 프로세서(미도시)를 포함할 수 있다. 또는, 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)가 각각의 자체 프로세서(미도시)에 의해 구현될 수도 있다. 또는, 비디오 부호화 장치(1900)의 외부 프로세서(미도시)의 제어에 따라, 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)가 제어될 수도 있다.The
비디오 부호화 장치(1900)는, 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)의 입출력 데이터가 저장되는 하나 이상의 데이터 저장부(미도시)를 포함할 수 있다. 비디오 부호화 장치(1900)는, 데이터 저장부(미도시)의 데이터 입출력을 제어하는 메모리 제어부(미도시)를 포함할 수도 있다.The
비디오 부호화 장치(1900)는, 영상 부호화를 위해, 내부에 탑재된 비디오 인코딩 프로세서 또는 외부의 비디오 인코딩 프로세서와 연계하여 작동함으로써, 예측을 포함한 영상 부호화 동작을 수행할 수 있다. The
비디오 부호화 장치(1900)는 도 16을 참조하여 전술한 영상 부호화 및 복호화 시스템의 부호화기(1600)에 대응될 수 있다. 예를 들어, 움직임 정보 부호화부(1920)는 부호화기(1600)의 엔트로피 부호화부(1630)에 대응될 수 있다. 움직임 예측부(1910)는 부호화기(1600)의 인터 예측부(1605)에 대응될 수 있다.The
일 실시예에 따른 비디오 부호화 장치(1900)는, 픽쳐를 복수 개의 최대 부호화 단위들로 분할하고, 각 최대 부호화 단위를 다양한 크기 및 다양한 형태의 블록들로 분할하여 부호화할 수 있다. The
예를 들어, 현재 블록의 예측 모드가 인트라 모드인 경우에 비디오 부호화 장치(1900)는 현재 블록의 현재 블록의 인트라 예측 방향에 위치한 공간적 이웃 블록의 샘플들 중 참조 샘플을 결정하고, 참조 샘플을 이용하여 현재 블록에 대응하는 예측 샘플들을 결정할 수 있다. For example, when the prediction mode of the current block is the intra mode, the
예를 들어, 현재 블록의 예측 모드가 인터 모드인 경우에 비디오 부호화 장치(1900)는, 참조 픽쳐 내에서 현재 블록의 참조 블록을 결정하고, 현재 블록으로부터 참조 블록을 가리키는 움직임 벡터를 결정할 수 있다. For example, when the prediction mode of the current block is the inter mode, the
다만, 현재 블록이 스킵 모드로 예측되는 경우에 비디오 부호화 장치(1900)는 현재 블록의 움직임 벡터 관련 정보와 유사한 움직임 벡터 관련 정보를 가지는 주변 블록을 결정하고 주변 블록을 가리키는 머지 인덱스만을 부호화할 수 있다. 또한, 스킵 모드인 경우는 레지듀얼 블록의 부호화가 필요 없다.However, when the current block is predicted in the skip mode, the
예를 들어, 현재 블록이 머지 모드로 예측되는 경우에, 비디오 부호화 장치(1900)는 현재 블록의 움직임 벡터 관련 정보와 유사한 움직임 벡터 관련 정보를 가지는 주변 블록을 결정하고 주변 블록을 가리키는 머지 인덱스를 부호화할 수 있다. 또한, 스킵 모드와는 다르게 레지듀얼 블록의 부호화가 필요하다. For example, when the current block is predicted in the merge mode, the
예를 들어, 현재 블록의 예측 모드가 스킵 모드가 아닌 인터 모드인 경우에 비디오 부호화 장치(1900)는, 현재 블록의 움직임 벡터 관련 정보와 유사한 움직임 벡터를 가지는 주변 블록을 결정하고 주변 블록을 가리키는 MVP 인덱스를 부호화하고, 주변 블록과 현재 블록의 움직임 벡터 간의 차이를 나타내는 차분 움직임 벡터 (motion vector difference) 정보를 부호화할 수 있다. 또한 구체적으로 비디오 부호화 장치(1900)는 현재 블록의 인터 예측이 L0, L1, Bi-pred 중에 어느 모드인지를 나타내는 예측 방향 정보, 예측 방향에 따라 L0 리스트를 위한 참조 픽쳐 인덱스 및 움직임 벡터, 차분 움직임 벡터 정보, 및/또는 L1 리스트를 위한 참조 픽쳐 인덱스 및 움직임 벡터, 차분 움직임 벡터 정보를 부호화할 수 있다. 비디오 부호화 장치(1900)는, 참조 블록에 포함된 참조 샘플과 현재 블록의 현재 샘플 간의 레지듀얼 샘플을 결정하고, 변환단위를 기초로 레지듀얼 샘플에 대해 변환 및 양자화를 수행함으로써, 양자화된 변환 계수를 생성할 수 있다. For example, when the prediction mode of the current block is the inter mode instead of the skip mode, the
구체적으로, 일 실시예에 따른 머지 모드는, 블록 기반 머지 모드와 서브블록 기반 머지 모드로 구분될 수 있다. 블록 기반 머지 모드는 일반 머지 모드(regular merge mode), MMVD 모드, CIIP 모드, 트라이앵귤러 모드로 구분될 수 있다. 또한, 일 실시예에 따른 스킵 모드는 CIIP 모드를 제외하고, MMVD 모드, 트라이앵귤러 모드에도 적용될 수 있다. 즉, 스킵 MMVD 모드인 경우에, 머지 인덱스와 움직임 벡터 차분의 방향 및 움직임 벡터 차분의 크기만 시그널링되고, 레지듀얼 성분은 시그널링되지 않는다. 반면에 머지 MMVD 모드인 경우에, 머지 인덱스와 움직임 벡터 차분의 방향 및 움직임 벡터 차분의 크기와 함께 레지듀얼 성분이 시그널링될 수 있다. 마찬가지로, 스킵 트라이앵귤러 모드에서는 레지듀얼 성분이 시그널링되지 않지만, 머지 트라이앵귤러 모드에서는 레지듀얼 성분이 시그널링될 수 있다. Specifically, the merge mode according to an embodiment may be divided into a block-based merge mode and a subblock-based merge mode. The block-based merge mode may be divided into a regular merge mode, an MMVD mode, a CIIP mode, and a triangular mode. Also, the skip mode according to an embodiment may be applied to the MMVD mode and the triangular mode, except for the CIIP mode. That is, in the skip MMVD mode, only the merge index and the direction of the motion vector difference and the magnitude of the motion vector difference are signaled, and the residual component is not signaled. On the other hand, in the merge MMVD mode, the residual component may be signaled together with the merge index and the direction of the motion vector difference and the magnitude of the motion vector difference. Similarly, the residual component is not signaled in the skip triangular mode, but the residual component may be signaled in the merge triangular mode.
일반 MERGE 모드인 경우, 움직임 예측부(1910)는 머지 후보 리스트를 구성하고 구성된 후보 리스트 중에서, 현재 블록의 움직임 정보로 이용될 수 있는 후보를 결정하고, 움직임 정보 부호화부(1920)는, 후보 리스트 중에서 결정된 후보를 가리키는 후보 인덱스를 시그널링할 수 있다. In the normal MERGE mode, the
일 실시예에 따라 머지 후보 리스트는 공간적 머지 후보(spatial merge candidate), 시간적 머지 후보(temporal merge candidate), HMVP(History-based MVP)와 PAMVP(Pairwise Average MVP)를 포함할 수 있다. According to an embodiment, the merge candidate list may include a spatial merge candidate, a temporal merge candidate, a history-based MVP (HMVP), and a pairwise average MVP (PAMVP).
움직임 예측부(1910)는 현재 블록보다 먼저 부호화된 소정 개수의 블록의 움직임 정보를 HMVP 테이블에 저장하고, 현재 블록을 위한 머지 후보 리스트에 HMVP 테이블에 저장되어 있는 HMVP 후보를 추가할 수 있다. The
PAMVP 후보가 이용되는 경우에, 움직임 예측부(1910)는 머지 후보 리스트에서 첫 번째 후보와 두 번째 후보의 움직임 벡터의 평균값을 PAMVP 후보의 움직임 벡터로 설정하고 PAMVP의 참조 픽쳐를 첫번째 후보의 참조 픽쳐와 동일하게 설정할 수 있다.When the PAMVP candidate is used, the
움직임 예측부(1910)는 MMVD 모드에서, 일반 머지 모드의 머지 후보 리스트 중에서 인덱스 0 및 1의 머지 후보, 즉 2개의 후보 중에서 현재 블록의 움직임 벡터에 대응하는 후보를 결정할 수 있다. 움직임 예측부(1910)는 2개 머지 후보 중에서 결정된 후보를 가리키는 머지 플래그를 부호화할 수 있다. 머지 후보의 움직임 벡터가 기초 움직임 벡터(base motion vector)가 되도록 결정하고, 추가로 MVD 방향과 움직임 거리(MVD 절대값) 정보가 부호화될 수 있다. MVD 방향은 수평(x축) 또는 수직(y축) 방향만 가능하고, 움직임 거리는 1/4-pel, 1/2-pel, 1-pel, 2-pel, 4-pel, 8-pel, 16-pel, 32-pel의 범위를 가질 수 있다.In the MMVD mode, the
CIIP 모드의 경우, 인트라 예측에 의해 획득된 예측 샘플과 인터 예측에 의해 획득된 예측 샘플을 결합함으로써 추가적인 예측 샘플이 획득될 수 있다. 인터 예측 샘플은 일반 머지 모드에 의해 획득되고, 인트라 예측 샘플은 플라나(planar) 모드에 따른 인트라 예측을 통해 획득될 수 있다. 획득된 인터 예측 샘플과 인트라 예측 샘플에 가중치를 적용하여 최종 예측 샘플이 생성되며, 상단 주변 블록과 좌측 주변 블록의 인트라 예측 부호화 여부에 따라, (인트라 예측 샘플에 적용되는 가중치, 인터 예측 샘플에 적용되는 가중치)의 조합은 다음과 같이 결정될 수 있다. 상단 주변 블록과 좌측 주변 블록이 모두 인트라 예측에 의해 부호화된 경우에는 (3,1), 상단 주변 블록 또는 좌측 주변 블록 중 하나의 블록만 인트라 예측에 의해 부호화된 경우는 (2,2), 상단 주변 블록과 좌측 주변 블록이 모두 인트라 예측에 의해 부호화된 것이 아닌 경우는 (1,3)의 가중치가 적용될 수 있다. In the CIIP mode, an additional prediction sample may be obtained by combining a prediction sample obtained by intra prediction and a prediction sample obtained by inter prediction. The inter prediction sample may be obtained by normal merge mode, and the intra prediction sample may be obtained through intra prediction according to the planar mode. A final prediction sample is generated by applying a weight to the obtained inter prediction sample and the intra prediction sample, and depending on whether the upper neighboring block and the left neighboring block are intra prediction encoded (weight applied to the intra prediction sample, applied to the inter prediction sample) The combination of weights) can be determined as follows. When both the upper neighboring block and the left neighboring block are coded by intra prediction, (3,1), when only one of the upper neighboring block or the left neighboring block is coded by intra prediction, (2,2), the upper When both the neighboring block and the left neighboring block are not coded by intra prediction, a weight of (1,3) may be applied.
트라이앵귤러 모드에 따른 인터 예측의 경우, 사각형의 블록이 사선으로 분할되어 2개의 삼각 영역이 생성되고, 움직임 예측부(1910)는 2개의 삼각 영역에 대해 서로 다른 움직임 정보를 이용하여 독립적으로 화면간 예측을 수행한다. 움직임 예측부(1910)는 2개 삼각 영역의 움직임 정보를 이용하여 유도된 예측 샘플값들의 가중합을, 경계영역의 예측 샘플값이 되도록 결정될 수 있다. 트라이앵귤러 모드에서 각 삼각 영역에서의 예측 방향은 단방향 예측만 허용된다. 이를 위해 움직임 예측부(1910)는 일반 머지 모드 후보 리스트 중에서, 각 머지 인덱스가 짝수인 후보는 L0 리스트의 움직임 정보를, 홀수인 후보는 L1 리스트의 움직임 정보를 이용하여 단방향 움직임 정보만을 가지는 트라이앵귤러 모드 후보 리스트를 구성할 수 있다. 만약 머지 인덱스가 짝수인 후보에 L0 리스트 움직임 정보가 존재하지 않는다면 L1 리스트 움직임 정보가 선택될 수 있다. 각 삼각 영역별로, 트라이앵귤러 모드 후보 리스트 중에서 각 삼각 영역에 적용될 머지 인덱스가 부호화될 수 있다.In the case of inter prediction according to the triangular mode, a rectangular block is divided diagonally to generate two triangular regions, and the
서브블록 기반 머지 모드에 따르면, 움직임 예측부(1910)는 블록을 서브 블록으로 분할하고 서브블록별로 개별의 움직임 벡터를 결정할 수 있다. 서브블록 기반 머지 후보 리스트는 블록 기반 머지 모드 중에서 시간적 머지 및 AMVP 후보인 TMVP(Temporal MVP)와 유사한 서브블록 기반 TMVP(SbTMVP)와, 어파인 움직임 모델을 적용한 어파인 기반 움직임 벡터 예측 후보들을 포함할 있다. According to the subblock-based merge mode, the
SbTMVP는 결정하기 위해, 현재 블록의 콜로케이티드 블록을 찾는 과정과 콜로케이티드 블록의 움직임 벡터로부터 현재 블록 내의 서브블록 단위의 움직임 벡터를 유도하는 과정이 수행될 수 있다. 현재 블록의 콜로케이티드 블록은 슬라이스 헤더에서 획득된 콜로케이티드 픽쳐에 존재하는 블록으로, 현재 블록의 좌하단 위치(A1)의 참조 픽쳐가 콜로케이티드 픽쳐와 동일한 경우에 A1 위치의 움직임 벡터가 이용되고, 동일하지 않은 경우에는 제로 MV를 이용하여 콜로케이티드 블록 위치가 결정될 수 있다. 콜로케이티드 블록으로부터 현재 블록의 서브블록(8x8 크기) 단위 움직임 벡터를 유도하기 위해서, 인터 예측부(1710)는 현재 블록을 8x8 서브블록들로 분할하고, 콜로케이티드 블록의 서브블록들의 중심 위치에 대응되는 움직임 정보를 이용하여 현재 블록의 각 서브블록의 움직임 벡터를 유도할 수 있다. SbTMVP의 참조 픽쳐는 TMVP 경우와 동일하게 L0/L1 참조픽처 리스트 중에서 인덱스 0이 가리키는 픽쳐이므로, 콜로케이티드 블록으로부터 결정된 움직임 벡터 mvCol가 sbTMVP 참조픽처에 적용될 수 있도록 스케일링 과정이 추가될 수 있다. 따라서 스케일링된 움직임 벡터 mvCol가 서브블록 단위 움직임 벡터인 SbTMVP로 설정된다.To determine the SbTMVP, a process of finding a collocated block of the current block and a process of deriving a motion vector in units of subblocks within the current block from the motion vector of the collocated block may be performed. The collocated block of the current block is a block that exists in the collocated picture obtained from the slice header. used, and if not identical, the collocated block position may be determined using zero MV. In order to derive a subblock (8x8 size) unit motion vector of the current block from the collocated block, the
이하, AMVP 모드에 따른 인터 예측 방식이 상술된다. SKIP 및 MERGE 모드와 비교하여, AMVP 모드에서는 주변 블록으로부터 얻어진 예측 움직임 벡터과 최종 움직임 벡터 간의 차이 값인 MVD가 부호화되는 모드이다. AMVP 모드는 구체적으로 일반 AMVP 모드, SMVD 모드, 어파인 AMVP 모드로 구분될 수 있다. 일반 AMVP 모드, SMVD 모드에 대한 설명은 앞서 도 17을 참조하여 설명에 갈음한다.Hereinafter, an inter prediction method according to the AMVP mode will be described in detail. Compared to the SKIP and MERGE modes, in the AMVP mode, MVD, which is a difference value between a predicted motion vector obtained from a neighboring block and a final motion vector, is encoded. The AMVP mode may be specifically divided into a general AMVP mode, an SMVD mode, and an affine AMVP mode. The description of the general AMVP mode and the SMVD mode is replaced with the description with reference to FIG. 17 above.
일 실시예에 따른 움직임 예측부(1910)는 AMVR 기술에 따라 MVD 해상도를 적응적으로 선택할 수 있다. 부호화 모드에 따라 적용 가능한 MVD 해상도는 다르며, 유도된 움직임 벡터 예측 값에 MVD를 더하여 얻어지는 최종 움직임 벡터가 MVD와 동일한 해상도를 가지도록 하기 위하여, 움직임 예측부(1910)는 MVD와 동일한 해상도를 가지도록 예측 움직임 벡터에 대해 라운딩을 수행할 수 있다. The
일 실시예에 따른 움직임 예측부(1910)는 4개 또는 6개 파라미터를 이용하는 어파인 움직임 모델 기반 움직임 예측 기술을 수행할 수 있다. 일 실시예에 따른 움직임 예측부(1910)는 블록을 4x4 서브블록 단위로 분할하고, 서브블록별로 서브블록의 중심 위치에서의 움직임 벡터를 어파인 움직임 모델 기반으로 유도함으로써, 서브블록 단위의 움직임 예측을 수행할 수 있다. The
일 실시예에 따른, 움직임 예측부(1910)에서 수행되는 인터 예측 방식 중에서 어파인 기반의 움직임 벡터 예측 기술이 적용된 어파인 머지 모드와 어파인 AMVP 모드가 존재할 수 있다. According to an embodiment, among the inter prediction methods performed by the
일 실시예에 따른 움직임 예측부(1910)는, 인터 예측 방식이 서브블록 머지 모드이면서 서브블록 기반의 시간적 예측 움직임 벡터의 이용이 가능한 경우에, 서브블록 기반의 시간적 머지 후보가 결정될 수 있다. The
일 실시예에 따른 인터 예측부(1710)는, 인터 예측 방식이 서브블록 머지 모드이면서 어파인 모델 기반의 움직임 보상이 가능한 경우에, 하나 이상의 조합 어파인 CPMV 머지 후보를 포함하는 서브블록 머지 후보 리스트를 생성할 수 있다.The
어파인 AMVP 모드는 상속 어파인 AMVP 후보, 조합 어파인 AMVP 후보, 평행이동 MV, 제로(zero) MV들로 후보 리스트를 구성한다. 상속 어파인 AMVP 후보는 상속 어파인 머지 후보와 동일하나 상속받는 블록의 참조픽처가 현재 블록의 참조픽처와 동일한 경우에만 해당 블록의 CPMV로부터 유도한 현재 블록의 CPMV를 후보 리스트에 추가한다. 조합 AMVP 후보도 조합 어파인 머지 후보와 동일하지만 모든 CPMV들의 참조 픽쳐가 현재 블록의 참조 픽쳐와 동일한 경우에만 후보 리스트에 추가한다. 상속 어파인 AMVP 후보와 조합 어파인 AMVP 후보로 구성 된 어파인 AMVP 모드의 후보들이 2개 이하인 경우에 평행이동만 가능한 평행이동 MV를 후보로 추가될 수 있다. 이 때, 평행이동 MV로는 CPMV1, CPMV2, CPMV3가 각각 사용될 수 있다. 평행이동 MV를 후보 리스트에 추가하였음에도 후보가 2개 이하인 경우에는 제로 MV가 후보 리스트에 추가될 수 있다.In the affine AMVP mode, the candidate list is composed of inherited affine AMVP candidates, combined affine AMVP candidates, translation MVs, and zero MVs. The inherited-affine AMVP candidate is the same as the inherited-affine merge candidate, but only when the reference picture of the inherited block is the same as the reference picture of the current block, the CPMV of the current block derived from the CPMV of the corresponding block is added to the candidate list. The combination AMVP candidate is also the same as the combination affine merge candidate, but is added to the candidate list only when the reference pictures of all CPMVs are identical to the reference pictures of the current block. When there are two or less candidates of the affine AMVP mode consisting of an inherited affine AMVP candidate and a combined affine AMVP candidate, a parallel movement MV capable of only parallel movement may be added as a candidate. In this case, CPMV1, CPMV2, and CPMV3 may be used as the translation MVs, respectively. Even though the translation MV is added to the candidate list, when there are two or less candidates, a zero MV may be added to the candidate list.
특히, 움직임 예측부(1910)는 현재 블록에 대해 어파인 모델 기반의 인터 예측을 수행할 수 있다. 움직임 예측부(1910)는 현재 블록의 코너별로 대표하는 이웃 블록들의 블록 그룹에 포함된 이웃 블록들의 움직임 벡터들을 이용하여 결정된 컨트롤 포인트 움직임 벡터들에 대응하는 컨트롤 포인트 기반의 어파인 머지 후보를 포함하는 어파인 머지 후보 리스트를 생성할 수 있다.In particular, the
구체적으로, 현재 블록의 인터 예측이 어파인 머지 모드로 수행되는 경우에, 일 실시예에 따른 움직임 예측부(1910)는 컨트롤 포인트 기반의 어파인 머지 후보를 구성하기 이전에, 모델 기반의 어파인 머지 후보를 포함하는 어파인 머지 후보 리스트를 생성할 수 있다. 현재 블록보다 먼저 이웃 블록에 대해 움직임 예측이 수행되어 이웃 블록의 움직임 정보가 이용 가능한 경우에 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보가 어파인 머지 후보 리스트에 포함될 수 있다. 이웃 블록의 움직임 정보가 이용 가능한 경우에 해당 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보도 이용 가능한 상태로 설정된다. 반대로 이웃 블록의 움직임 정보가 이용 가능하지 않은 경우에 해당 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보도 이용 가능하지 않은 상태로 설정된다. 다만, 이용 가능한 모델 기반의 어파인 머지 후보의 개수가 소정 개수보다 적은 경우에, 움직임 예측부(1910)는 현재 블록의 코너별로 대표하는 이웃 블록들의 그룹에 대응하는 컨트롤 포인트 기반의 어파인 머지 후보를 결정하여, 컨트롤 포인트 기반의 어파인 머지 후보를 어파인 머지 후보 리스트에 추가할 수 있다. 소정 개수는 어파인 머지 후보 리스트에 포함되도록 허용되는 어파인 머지 후보의 최대 개수이며, 예를 들어 5개로 설정될 수 있다. Specifically, when inter prediction of the current block is performed in the affine merge mode, the
일 실시예에 따른 움직임 예측부(1910)는, 어파인 머지 후보 리스트에 포함된 머지 후보들 중에서 현재 블록의 어파인 움직임 벡터를 표현하기에 가장 에러가 작은 머지 후보를 선택할 수 있다. 움직임 예측부(1910)는, 어파인 머지 후보 리스트 중에서 선택된 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터를 결정할 수 있다. 움직임 예측부(1910)는, 컨트롤 포인트 움직임 벡터를 이용하여 현재 블록의 어파인 모션 모델 파라미터를 결정하고, 현재 블록의 어파인 모션 모델 파라미터를 이용하여 현재 블록의 어파인 움직임 벡터를 결정할 수 있다. 현재 블록의 어파인 움직임 벡터가 가리키는 참조 샘플을 이용하여, 현재 블록의 예측 샘플들이 결정될 수 있다. The
어파인 머지 후보 리스트 중에서 모델 기반의 어파인 머지 후보가 선택될 때, 모델 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 하나의 이웃 블록의 어파인 모델을 이용하여 결정될 수 있다. 모델 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 표현될 수 있다. When a model-based affine merge candidate is selected from the affine merge candidate list, control point motion vectors corresponding to the model-based affine merge candidate may be determined using an affine model of one neighboring block. An affine motion vector of the current block may be expressed using control point motion vectors corresponding to model-based affine merge candidates.
어파인 머지 후보 리스트 중에서 컨트롤 포인트 기반의 어파인 머지 후보가 선택될 때, 컨트롤 포인트 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터는 대응되는 블록 그룹에 포함된 이웃 블록들을 현재 블록의 컨트롤 포인트들을 이용하여 결정될 수 있다. 컨트롤 포인트 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 표현될 수 있다. 구체적으로, 어파인 머지 후보 리스트 중에서 모델 기반의 어파인 머지 후보가 선택되는 경우에, 모델 기반의 어파인 머지 후보에 대응하는 하나의 이웃 블록의 수직 변화량, 수평 변화량 및 움직임 벡터를 이용하여 현재 블록의 컨트롤 포인트들에 대응하는 컨트롤 포인트 움직임 벡터들이 결정될 수 있다. 더 구체적으로, 이웃 블록의 참조 인덱스, 예측 방향 및 움직임 벡터를 이용하여, 모델 기반의 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들이 각각 결정될 수 있다. 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 참조 인덱스, 예측 방향 및 어파인 움직임 벡터가 각각 결정될 수 있다.When a control point-based affine merge candidate is selected from the affine merge candidate list, the control point motion vector corresponding to the control point-based affine merge candidate sets neighboring blocks included in the corresponding block group as the control point of the current block. can be determined using An affine motion vector of the current block may be expressed using control point motion vectors corresponding to control point-based affine merge candidates. Specifically, when a model-based affine merge candidate is selected from the affine merge candidate list, the current block using the vertical change amount, the horizontal change amount, and the motion vector of one neighboring block corresponding to the model-based affine merge candidate Control point motion vectors corresponding to the control points of may be determined. More specifically, the reference index, the prediction direction, and the control point motion vectors corresponding to the model-based affine merge candidate may be determined by using the reference index, the prediction direction, and the motion vector of the neighboring block, respectively. A reference index, a prediction direction, and an affine motion vector of the current block may be determined using the reference index, prediction direction, and control point motion vectors corresponding to the affine merge candidate, respectively.
구체적으로, 어파인 머지 후보 리스트 중에서 컨트롤 포인트 기반의 어파인 머지 후보가 선택되는 경우에, 현재 블록의 컨트롤 포인트들에 인접하는 이웃 블록들의 움직임 벡터들이 컨트롤 포인트 움직임 벡터들로 결정되고, 현재 블록의 어파인 모델에 따라 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 결정될 수 있다. 더 구체적으로, 블록 그룹에 속한 대표 이웃 블록 들의 참조 인덱스, 예측 방향 및 움직임 벡터를 이용하여, 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들이 각각 결정될 수 있다. 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 참조 인덱스, 예측 방향 및 어파인 움직임 벡터가 각각 결정될 수 있다. Specifically, when a control point-based affine merge candidate is selected from the affine merge candidate list, motion vectors of neighboring blocks adjacent to the control points of the current block are determined as control point motion vectors, and According to the affine model, the affine motion vector of the current block may be determined using control point motion vectors. More specifically, reference indexes, prediction directions, and control point motion vectors corresponding to an affine merge candidate may be determined using reference indexes, prediction directions, and motion vectors of representative neighboring blocks belonging to a block group, respectively. A reference index, a prediction direction, and an affine motion vector of the current block may be determined using the reference index, prediction direction, and control point motion vectors corresponding to the affine merge candidate, respectively.
일 실시예에 따른 비디오 부호화 장치(1900)는 SUCO 방식에 따라 좌우로 인접하는 부호화 단위 간에 부호화 순서를 변경할 수 있다. 부호화부(1920)는 하위 부호화 순서의 방향을 나타내는 부호화 순서 플래그를 부호화할 수 있다. 현재 부호화 단위가 분할되어 생성된 좌우로 인접하는 하위 부호화 단위들 중에서 좌측 하위 부호화 단위가 먼저 부호화되고 우측 하위 부호화 단위가 나중에 부호화된 경우에, 좌우(left to right) 방향을 나타내도록 부호화 순서 플래그가 부호화될 수 있다. 우측 하위 부호화 단위가 먼저 부호화되고 좌측 하위 부호화 단위가 나중에 부호화된 경우에, 우좌(right to left) 방향을 나타내도록 부호화 순서 플래그가 부호화될 수 있다.The
구체적인 예로, 현재 블록의 우측 블록이 먼저 부호화되어 이용 가능한 경우에, 현재 블록의 우하측 코너에 인접하는 대표 이웃 블록은, 현재 블록의 우하측 코너 및 현재 블록의 우측 외곽선에 인접하는 이웃 블록 및 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 이웃 블록 중 이용 가능한 움직임 정보가 획득되는 블록일 수 있다. 이웃 블록 C1, 이웃 블록 C0의 순서로 이용 가능한 움직임 정보가 획득되는지가 확인되고, 먼저 이용 가능한 움직임 정보가 획득되는 블록이 BR 대표 이웃 블록으로 결정될 수 있다. 다만, 현재 블록의 우측 블록이 이용 가능하지 않은 경우에, 현재 블록의 우하측 코너에 인접하는 대표 이웃 블록은, 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 지점에 위치하는 콜로케이티드 블록일 수 있다. 콜로케이티드 블록은 콜로케이티드 픽쳐에 포함된 블록으로서, 시간적 머지 후보로서 어파인 머지 후보 리스트에 포함될 수 있다. As a specific example, when the right block of the current block is first encoded and available, the representative neighboring block adjacent to the lower right corner of the current block includes the neighboring block adjacent to the lower right corner of the current block and the right edge of the current block and the current block. It may be a block from which available motion information is obtained among neighboring blocks diagonally adjacent to the lower right corner of the block. It may be checked whether available motion information is acquired in the order of the neighboring block C1 and the neighboring block C0, and a block from which the available motion information is acquired first may be determined as the BR representative neighboring block. However, when the right block of the current block is not available, the representative neighboring block adjacent to the lower right corner of the current block is a collocated block located at a point diagonally adjacent to the lower right corner of the current block. can The collocated block is a block included in the collocated picture, and may be included in the affine merge candidate list as a temporal merge candidate.
다른 예로, 현재 블록의 우측 블록이 먼저 복호화되어 이용 가능한 경우에, 현재 블록의 우하측 코너에 인접하는 BR 대표 이웃 블록은, 현재 블록의 우하측 코너 및 현재 블록의 우측 외곽선에 인접하는 이웃 블록 C1, 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 이웃 블록 C0, 및 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 지점에 위치하는 콜로케이티드 블록 Col 중 이용 가능한 움직임 정보가 획득되는 블록일 수 있다. 이웃 블록 C1, 이웃 블록 C0, 콜로케이티드 블록 Col의 순서로 이용 가능한 움직임 정보가 획득되는지가 확인되고, 먼저 이용 가능한 움직임 정보가 획득되는 블록이 BR 대표 이웃 블록으로 결정될 수 있다. As another example, when the right block of the current block is first decoded and available, the BR representative neighboring block adjacent to the lower right corner of the current block is the lower right corner of the current block and the neighboring block C1 adjacent to the right edge of the current block , a neighboring block C0 diagonally adjacent to the lower right corner of the current block, and a collocated block Col located at a point diagonally adjacent to the lower right corner of the current block, the block from which available motion information is obtained have. It is checked whether available motion information is obtained in the order of the neighboring block C1, the neighboring block C0, and the collocated block Col, and a block from which the available motion information is obtained first may be determined as the BR representative neighboring block.
콜로케이티드 블록은 콜로케이티드 픽쳐에 포함된 블록으로서, 시간적 머지 후보로서 어파인 머지 후보 리스트에 포함될 수 있다. 현재 블록의 우하측 코너에 인접하는 콜로케이티드 블록은, 콜로케이티드 픽쳐 내에서 현재 블록의 우하측 코너에 대응하는 좌표에 위치 블록일 수 있다. The collocated block is a block included in the collocated picture, and may be included in the affine merge candidate list as a temporal merge candidate. The collocated block adjacent to the lower right corner of the current block may be a block located at coordinates corresponding to the lower right corner of the current block in the collocated picture.
일 실시예에 따른 비디오 부호화 장치(1900)는 어파인 머지 후보 리스트에 유효한 머지 후보를 포함시키기 위해 이웃 블록의 움직임 정보의 이용 가능성을 확인할 필요가 있다. 이미 움직임 예측이 수행되어 이용 가능한 움직임 정보가 획득되는 이웃 블록으로부터 유효한 머지 후보가 결정될 수 있기 때문이다. 일반적으로 현재 블록보다 먼저 움직임 예측이 수행된 이웃 블록은 현재 블록의 예측을 위해 이용 가능한 상태이다. 구체적으로 현재 블록의 좌측 이웃 블록에 대해 현재 블록보다 먼저 움직임 예측이 수행된 경우에, 좌측 이웃 블록의 움직임 정보는 이용 가능한 상태이다. 현재 블록의 우측 이웃 블록에 대해 현재 블록보다 먼저 움직임 예측이 수행된 경우에, 우측 이웃 블록의 움직임 정보는 이용 가능한 상태이다. 반대로, 현재 블록의 좌측 이웃 블록에 대해 움직임 예측이 수행되지 않은 경우에, 좌측 이웃 블록의 움직임 정보가 이용 가능하지 않은 상태이다. 현재 블록의 우측 이웃 블록에 대해 움직임 예측이 수행되지 않은 경우에, 우측 이웃 블록의 움직임 정보는 이용 가능하지 않은 상태이다.The
앞서 전술한 부호화 순서에 따라 이웃 블록의 좌측 이웃 블록들뿐만 아니라 우측 이웃 블록들이 먼저 부호화되어 있을 수 있으므로, 일 실시예에 따른 비디오 부호화 장치(1900)는 부호화 순서를 고려하여 어파인 머지 후보 리스트를 결정할 필요가 있다. Since the right neighboring blocks as well as the left neighboring blocks of the neighboring block may be coded first according to the above-described coding order, the
일 실시예에 따른 움직임 정보 부호화부(1920)는 현재 블록의 인터 예측 모드가 머지 모드인지 나타내는 머지 모드 플래그를 부호화하고, 머지 모드인 경우에 현재 블록의 예측 샘플을 생성하기 위해 어파인 모델에 기초한 움직임 보상이 수행되는지 나타내는 어파인 플래그를 부호화할 수 있다. 일 실시예에 따른 움직임 정보 부호화부(1920)는 어파인 머지 후보 리스트 중에 하나를 가리키는 어파인 머지 인덱스를 부호화할 수 있다. The
일 실시예에 따른 비디오 부호화 장치(1900)는 상기 언급된 다양한 인터 예측 방식에 따라 인터 예측을 수행할 때, 현재 블록의 머지 후보 또는 MVP 후보가 될 수 있는 콜로케이티드 블록의 위치를 결정하는 방법을 제안한다. 머지 후보는 현재 블록의 인터 예측 방식이 일반 머지 모드, 스킵 모드, 머지 MMVD 모드 또는 스킵 MMVD 모드일 때 결정되는 머지 후보 리스트에 포함되거나, 현재 블록의 인터 예측 방식이 어파인 머지 모드 또는 sbTMVP 모드인 경우에 생성될 수 있는 어파인 머지 후보 리스트에 포함될 수 있다. MVP 후보는 현재 블록의 인터 예측 방식이 AMVP 모드 또는 어파인 AMVP 모드일 때 결정되는 MVP 후보 리스트에 포함될 수 있다.When the
일 실시예에 따른 비디오 부호화 장치(1900)는 현재 블록의 좌상측 지점을 이용하여 결정되는 콜로케이티드 블록의 좌상측 지점이 콜로케이티드 픽쳐 내의 블록 안에 내의 임의의 점인 경우에, 콜로케이티드 블록의 최종 위치를 콜로케이티드 픽쳐 내의 블록 중 어느 위치로 결정할 것인지에 대한 방안을 제공한다.In the
일 실시예에 따른 비디오 부호화 장치(1900)는 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)를 포함한다.The
일 실시예에 따른 움직임 예측부(1910)는 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하고, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다. The
콜로케이티드 픽쳐 내에서 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 움직임 예측부(1910)는 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득할 수 있다. Based on the prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture, the
움직임 예측부(1910)는 콜로케이티드 블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 현재 블록의 후보 리스트를 생성할 수 있다. The
일 실시예에 따른 움직임 정보 부호화부(1920)는, 후보 리스트를 이용하여 현재 블록의 움직임 벡터를 부호화할 수 있다. The
이하 도 20을 참조하여 일 실시예에 따른 비디오 부호화 장치(1900)의 동작을 상술한다. Hereinafter, an operation of the
도 20은 일 실시예에 따른 비디오 부호화 방법의 흐름도를 도시한다.20 is a flowchart of a video encoding method according to an embodiment.
단계 2010에서, 움직임 예측부(1910)는 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득할 수 있다. In
콜로케이티드 블록은 콜로케이티드 픽쳐 내의 블록이다. 콜로케이티드 픽쳐는 현재 블록의 TMVP을 위해 사용되는 참조 픽쳐로, 픽쳐 단위의 콜로케이티드 픽쳐 또는 슬라이스 단위 단위의 콜로케이티드 픽쳐가 결정될 수 있다.A collocated block is a block within a collocated picture. The collocated picture is a reference picture used for TMVP of the current block, and a collocated picture in a picture unit or a collocated picture in a slice unit unit may be determined.
일 실시예에 따르면, 움직임 예측부(1910)는 콜로케이티드 픽쳐를, 현재 블록을 포함하는 현재 슬라이스의 L0 참조 픽쳐 리스트 또는 L1 참조 픽쳐 리스트에 포함된 픽쳐들 중에서 결정할 수 있다. 따라서 움직임 정보 부호화부(1920)는 콜로케이티드 픽쳐를, 현재 블록을 포함하는 현재 슬라이스의 L0 참조 픽쳐 리스트 또는 L1 참조 픽쳐 리스트 중에서 어느 리스트로부터 결정될지를 나타내는 정보, 및 선택된 참조 리스트에서 콜로케이티드 픽쳐를 가라키는 콜로케이티드 참조 픽쳐 인덱스를 부호화하여, 픽쳐 헤더 또는 슬라이스 헤더를 통해 시스널링할 수 있다. According to an embodiment, the
다른 실시예에 따르면, 현재 블록을 포함하는 픽쳐가 양방향 예측이 수행되는 B 슬라이스 타입의 픽쳐인 경우에는 L1 참조 픽쳐 리스트 중에서 첫번째 참조 픽쳐 인덱스가 가리키는 픽쳐가 콜로케이티드 픽쳐로서 사용될 수 있다. 현재 블록을 포함하는 픽쳐가 단방향 예측이 수행되는 P 슬라이스 타입의 픽쳐인 경우에는 L0 참조 픽쳐 리스트 중에서 첫번째 참조 픽쳐 인덱스가 가리키는 픽쳐가 콜로케이티드 픽쳐로서 사용될 수 있다. 이 경우 별도의 정보가 부호화되지 않을 수 있다.According to another embodiment, when the picture including the current block is a B slice type picture for which bidirectional prediction is performed, the picture indicated by the first reference picture index in the L1 reference picture list may be used as the collocated picture. When the picture including the current block is a P slice type picture for which unidirectional prediction is performed, the picture indicated by the first reference picture index from the L0 reference picture list may be used as the collocated picture. In this case, separate information may not be encoded.
일 실시예에 따른 움직임 예측부(1910)는 현재 블록의 소정 위치를 가리키는 좌표를 기준으로, 콜로케이티드 픽쳐 내에 존재하는 콜로케이티드 블록의 위치를 결정할 수 있다. 다만, 예측 모드 등의 정보를 획득하기 위한 콜로케이티드 블록의 위치는 콜로케이티드 블록에 대응하는 콜로케이티드 부호화 단위의 위치를 이용하여 결정될 수 있다. 움직임 벡터 등의 정보를 획득하기 위한 콜로케이티드 블록의 위치는 콜로케이티드 블록의 소정 샘플의 위치를 이용하여 결정할 수 있다.The
일 실시예에 따르면, 콜로케이티드 블록의 제1 좌표는 현재 블록의 우하측 지점의 좌표와 동일하게 결정될 수 있다. 콜로케이티드 블록이 우하측 콜로케이티드 블록(bottom-right collocated block)인 경우, 제1 좌표는 현재 블록의 우하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다. 현재 블록의 우하측 지점은 현재 블록의 좌상측 지점으로부터 x축 방향으로 블록 너비만큼 떨어지고, y축 방향으로 블록 높이만큼 떨어진 지점이다. 따라서, 현재 블록의 좌상측 지점의 (x, y) 좌표와 현재 블록의 너비 및 높이를 기초로 현재 블록의 우하측 지점의 좌표가 획득될 수 있다. According to an embodiment, the first coordinates of the collocated block may be determined to be the same as the coordinates of the lower right point of the current block. When the collocated block is a bottom-right collocated block, the first coordinates may be the same as coordinates of an external sample diagonally adjacent to the lower-right point of the current block. The lower-right point of the current block is a point apart from the upper-left point of the current block by the block width in the x-axis direction and the block height in the y-axis direction. Accordingly, the coordinates of the lower right point of the current block may be obtained based on the (x, y) coordinates of the upper left point of the current block and the width and height of the current block.
구체적으로, 현재 블록의 좌상측 지점의 (x, y) 좌표가 (xCb, xCb)일 때, 콜로케이티드 블록의 제1 좌표 (xColBr, yColBr)는 현재 블록의 우하측 지점의 좌표 와 동일하게 결정될 수 있다. 현재 블록의 우하측 지점의 x 좌표는 xCb와 현재 블록의 블록 너비 cbWidth 를 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 x 좌표 xColBr는 xCb와 현재 블록의 블록 너비 cbWidth 를 합함으로써 획득된 값과 동일하게 결정될 수 있다. 마찬가지로, 현재 블록의 우하측 지점의 y 좌표는 yCb와 현재 블록의 블록 너비 cbHeight 를 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 y 좌표 yColBr는 yCb와 현재 블록의 블록 높이 cbHeigt 를 합함으로써 획득된 값과 동일하게 결정될 수 있다. Specifically, when the (x, y) coordinate of the upper-left point of the current block is (xCb, xCb), the first coordinate (xColBr, yColBr) of the collocated block is the same as the coordinate of the lower-right point of the current block can be decided. The x coordinate of the lower right point of the current block may be a value obtained by summing xCb and the block width cbWidth of the current block. Accordingly, the x-coordinate xColBr of the first coordinate of the collocated block may be determined to be equal to a value obtained by summing xCb and the block width cbWidth of the current block. Similarly, the y-coordinate of the lower-right point of the current block may be a value obtained by summing yCb and the block width cbHeight of the current block. Accordingly, the y-coordinate yColBr of the first coordinate of the collocated block may be determined to be the same as a value obtained by summing yCb and the block height cbHeigt of the current block.
다른 예로, 콜로케이티드 블록의 제1 좌표는 현재 블록의 중앙 지점의 좌표와 동일하게 결정될 수 있다. 콜로케이티드 블록이 중앙 콜로케이티드 블록(central collocated block)인 경우, 제1 좌표는 현재 블록의 중앙 지점의 좌표와 동일할 수 있다. 현재 블록의 중앙 지점은 현재 블록의 좌상측 지점으로부터 x축 방향으로 블록 너비의 절반만큼 떨어지고, y축 방향으로 블록 높이의 절반만큼 떨어진 지점이다. 따라서, 현재 블록의 좌상측 지점의 (x, y) 좌표와 현재 블록의 너비 및 높이를 기초로 현재 블록의 중앙 지점의 좌표가 획득될 수 있다. As another example, the first coordinates of the collocated block may be determined to be the same as the coordinates of the center point of the current block. When the collocated block is a central collocated block, the first coordinates may be the same as the coordinates of the central point of the current block. The center point of the current block is a point that is half the block width in the x-axis direction and half the block height in the y-axis direction from the upper-left point of the current block. Accordingly, the coordinates of the center point of the current block may be obtained based on the (x, y) coordinates of the upper left point of the current block and the width and height of the current block.
구체적으로, 콜로케이티드 블록의 제1 좌표 (xColCtr, yColCtr)는 현재 블록의 중앙 지점의 좌표와 동일하게 결정될 수 있다. 현재 블록의 중앙 지점의 x 좌표는 xCb와 현재 블록의 블록 너비 cbWidth 의 절반을 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 x 좌표 xColCtr는 xCb와 현재 블록의 블록 너비 cbWidth 의 절반 (cbWidth << 2)를 합함으로써 획득된 값과 동일하게 결정될 수 있다. 마찬가지로, 현재 블록의 중앙 지점의 y 좌표는 yCb와 현재 블록의 블록 너비 cbHeight 의 절반을 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 y 좌표 yColCtr는 yCb와 현재 블록의 블록 높이 cbHeigt의 절반(cbHeight << 2) 를 합함으로써 획득된 값과 동일하게 결정될 수 있다. Specifically, the first coordinates (xColCtr, yColCtr) of the collocated block may be determined to be the same as the coordinates of the center point of the current block. The x-coordinate of the center point of the current block may be a value obtained by summing xCb and half of the block width cbWidth of the current block. Accordingly, the x-coordinate xColCtr of the first coordinate of the collocated block may be determined to be equal to a value obtained by summing xCb and half of the block width cbWidth ? of the current block (cbWidth ? << 2). Similarly, the y-coordinate of the center point of the current block may be a value obtained by summing yCb and half of the block width cbHeight of the current block. Accordingly, the y-coordinate yColCtr of the first coordinate of the collocated block may be determined to be equal to a value obtained by summing yCb and half of the block height cbHeigt of the current block (cbHeight << 2).
다른 예로, 콜로케이티드 블록이 하측 콜로케이티드 블록(bottom collocated block)인 경우, 제1 좌표는 현재 블록의 좌하측 지점 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.As another example, if the collocated block is a bottom collocated block, the first coordinates may be the same as the coordinates of the external sample adjacent to the lower left or lower right point of the current block in the y-axis direction. have.
다른 예로, 콜로케이티드 블록이 사이드 콜로케이티드 블록(side collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 x축 방향으로 인접하는 외부 샘플 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.As another example, when the collocated block is a side collocated block, the first coordinate is an external sample adjacent to the lower left point of the current block in the x-axis direction or the lower right point of the current block in the y-axis direction. may be the same as the coordinates of an adjacent external sample.
다른 예로, 콜로케이티드 블록이 좌하측 콜로케이티드 블록(bottom-left collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.As another example, if the collocated block is a bottom-left collocated block, the first coordinate may be the same as the coordinate of an external sample diagonally adjacent to the lower-left point of the current block. have.
단계 2020에서, 움직임 예측부(1910)는 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다. In
구체적으로, M, N, m, n는 각각 양의 정수이고, M이 2의 m승이고 N인 2의 n승인 경우에, 움직임 예측부(1910)는 제1 좌표의 x 좌표를 m만큼 우측 비트시프트한 수를 m만큼 좌측 비트시프트함으로써, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표의 x 좌표를 획득할 수 있다. 인터 예측부(1710)는 제1 좌표의 y 좌표를 n만큼 우측 비트시프트한 수를 n만큼 좌측 비트시프트함으로써, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표의 y 좌표를 획득할 수 있다.Specifically, M, N, m, and n are positive integers, respectively, and when M is 2 to the mth power and N is 2 to the nth power, the
일 실시예에 따르면, 콜로케이티드 픽쳐 내에서 MxN 크기의 블록(MxN 그리드)를 단위로 저장된 움직임 벡터 관련 정보만이, 현재 블록의 인터 예측을 위해 획득될 수 있다. 일 실시예에 따르면, 현재 블록의 콜로케이티드 블록의 위치에 대응하여, 콜로케이티드 픽쳐 내에 존재하는 위치가 제1 좌표라 지칭된다. 다만 콜로케이티드 블록 내에서 제1 좌표에 대해 저장된 움직임 벡터 관련 정보가 획득되지 않을 수 있으므로, 제1 좌표를 MxN 그리드 단위로 변경하는 과정이 상기 제1 좌표의 x좌표를 m만큼, y좌표를 n만큼 우측 비트쉬프트한 후 다시 좌측 비트쉬프트하는 과정이다. 따라서, 제1 좌표를 MxN 그리드 단위로 변경함으로써, 제2 좌표가 획득될 수 있다. According to an embodiment, only motion vector related information stored in units of MxN blocks (MxN grids) in the collocated picture may be obtained for inter prediction of the current block. According to an embodiment, a position existing in the collocated picture corresponding to the position of the collocated block of the current block is referred to as a first coordinate. However, since the motion vector related information stored for the first coordinate in the collocated block may not be obtained, the process of changing the first coordinate in MxN grid units changes the x-coordinate of the first coordinate by m and the y-coordinate It is a process of bit-shifting right bit by n and then bit-shifting left again. Accordingly, by changing the first coordinates in units of MxN grids, the second coordinates may be obtained.
단계 2030에서, 움직임 예측부(1910)는 콜로케이티드 픽쳐 내에서 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 콜로케이티드 샘플의 좌표에 대응하는 블록의 콜로케이티드 움직임 벡터를 획득할 수 있다. In
움직임 예측부(1910)는 콜로케이티드 움직임 벡터에 기초하여 현재 블록의 후보 리스트를 생성할 수 있다. The
단계 2040에서, 움직임 정보 부호화부(1920)는 후보 리스트를 이용하여 현재 블록의 움직임 벡터를 부호화할 수 있다. In
MxN 크기의 블록은 부호화 단위, 예측 블록 또는 서브블록와는 별개로 설정된 블록일 수 있다. 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 일 실시예에 따른 움직임 예측부(1910)는, 콜로케이티드 부호화 단위의 서브블록들 중에서, 제2 좌표를 포함하는 서브블록의 좌표를 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다. 이 경우 움직임 예측부(1910)는, 제2 좌표를 포함하는 서브블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 현재 블록의 시간적 예측 움직임 벡터를 획득할 수 있다. A block of size MxN may be a block configured separately from a coding unit, a prediction block, or a subblock. When the collocated coding unit including the first coordinates of the collocated block includes one or more subblocks, the
일 실시예에 따라, MxN 크기의 블록이 서브블록인 경우에 MxN은 8x8일 수 있다.According to an embodiment, when a block of size MxN is a subblock, MxN may be 8x8.
일 실시예에 따라 콜로케이티드 부호화 단위가 인트라 예측 모드, IBC (intra block copy) 예측 모드 또는 팔레트 예측 모드로 복호화되지 않은 경우, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 콜로케이티드 샘플의 좌표에 대응하는 블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스를 획득할 수 있다. According to an embodiment, when the collocated coding unit is not decoded in the intra prediction mode, the intra block copy (IBC) prediction mode, or the palette prediction mode, the collocated coding unit is collocated using a motion vector of a block corresponding to the coordinates of the collocated sample. A colocated motion vector may be obtained, and a collocated reference picture index may be obtained by using the reference picture index of the block corresponding to the coordinates of the collocated sample.
따라서, 콜로케이티드 샘플의 좌표에 대응하는 블록이 콜로케이티드 부호화 단위의 서브블록들 중 하나의 서브블록인 경우에, 콜로케이티드 부호화 단위의 예측 모드가 인트라 예측 모드, IBC 예측 모드 또는 팔레트 예측 모드가 아니라면, 콜로케이티드 샘플의 좌표에 대응하는 서브블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터가 획득되고, 콜로케이티드 샘플의 좌표에 대응하는 서브블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스가 획득될 수 있다. 따라서, 예측 모드는 콜로케이티드 부호화 단위를 통해 판단되는 반면에, 움직임 벡터 및 참조 픽쳐 인덱스는 콜로케이티드 부호화 단위 내부의 서브블록을 통해 획득될 수 있다.Accordingly, when the block corresponding to the coordinates of the collocated sample is one of the subblocks of the collocated coding unit, the prediction mode of the collocated coding unit is the intra prediction mode, the IBC prediction mode, or the palette prediction. If not, a collocated motion vector is obtained using the motion vector of the subblock corresponding to the coordinates of the collocated sample, and collocated using the reference picture index of the subblock corresponding to the coordinates of the collocated sample. A referenced reference picture index may be obtained. Accordingly, while the prediction mode is determined through the collocated coding unit, the motion vector and the reference picture index may be obtained through a subblock inside the collocated coding unit.
또한, 콜로케이티드 부호화 단위의 참조 픽쳐와 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐이거나, 콜로케이티드 부호화 단위의 참조 픽쳐와 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐가 아닌 경우에, 움직임 예측부(1910)는 콜로케이티드 부호화 단위를 포함하는 슬라이스의 참조 픽쳐 리스트 세트를 이용하여, 콜로케이티드 움직임 벡터를 스케일링할 수 있다. 따라서 콜로케이티드 블록의 픽쳐가 롱텀 참조 픽쳐인지 여부를 판단하는데 있어서 콜로케이티드 부호화 단위가 이용되고 콜로케이티드 부호화 단위의 참조 픽쳐 리스트 세트가 이용되는 반면에, 그로 인해 스케일링되는 움직임 벡터는 콜로케이티드 부호화 단위 내부의 서브블록의 움직임 벡터를 이용하여 획득될 수 있다.In addition, when both the reference picture of the collocated coding unit and the reference picture of the current block are long-term reference pictures, or the reference picture of the collocated coding unit and the reference picture of the current block are both not long-term reference pictures, the
일 실시예에 따라 현재 블록이 머지 모드 또는 어파인 머지 모드로 인터 예측될 때, 움직임 예측부(1910)는 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성을 각각 획득할 수 있다. 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 움직임 예측부(1910)는 콜로케이티드 움직임 벡터를 가지는 블록에 대응하는 시간적 머지 후보를 포함하는 현재 블록의 머지 후보 리스트를 생성할 수 있다. 움직임 정보 부호화부(1920)는 머지 후보 리스트 중에서 현재 블록의 움직임 정보와 가장 유사한 움직임 정보를 가지는 후보 블록을 가리키는 머지 인덱스를 부호화할 수 있다. 움직임 정보는, 참조 리스트, 참조 인덱스 및 움직임 벡터 중 적어도 하나를 포함할 수 있다. According to an embodiment, when the current block is inter-predicted in the merge mode or the affine merge mode, the
일 실시예에 따르 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 콜로케이티드 샘플의 좌표에 해당하는 서브블록의 움직임 벡터가 콜로케이티드 움직임 벡터로 결정되고, 콜로케이티드 부호화 단위의 서브블록이 시간적 머지 후보로 이용될 수 있다.According to an embodiment, when the collocated coding unit includes one or more subblocks, a motion vector of the subblock corresponding to the coordinates of the collocated sample is determined as the collocated motion vector, and the collocated coding unit A subblock of may be used as a temporal merge candidate.
일 실시예에 따라 현재 블록의 MVP 모드로 인터 예측될 때, 일 실시예에 따라 움직임 예측부(1910)는 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 각각 획득할 수 있다. 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 움직임 예측부(1910)는 콜로케이티드 움직임 벡터를 가지는 블록에 대응하는 시간적 움직임 벡터 예측 후보를 포함하는 현재 블록의 MVP 후보 리스트를 생성할 수 있다. 움직임 정보 부호화부(1920)는 MVP 후보 리스트 중에서, 현재 블록의 움직임 벡터와 가장 유사한 움직임 벡터를 가지는 후보 블록을 가리키는 MVP 인덱스를 부호화하고, 현재 블록의 참조 인덱스 및 참조 리스트 정보를 부호화할 수 있다. According to an embodiment, when inter prediction is performed in the MVP mode of the current block, the
일 실시예에 따르 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 콜로케이티드 샘플의 좌표에 해당하는 서브블록의 움직임 벡터가 콜로케이티드 움직임 벡터로 결정되고, 콜로케이티드 부호화 단위의 서브블록이 시간적 움직임 벡터 예측 후보로 이용될 수 있다.According to an embodiment, when the collocated coding unit includes one or more subblocks, a motion vector of the subblock corresponding to the coordinates of the collocated sample is determined as the collocated motion vector, and the collocated coding unit A subblock of may be used as a temporal motion vector prediction candidate.
구체적으로 콜로케이티드 픽쳐 중 콜로케이티드 블록에 대해 서브블록 기반의 인터 예측이 수행되어, 서브블록들에 대해 각각 움직임 벡터 관련 정보가 결정되어 있을 수 있다. 일 실시예에 따른 비디오 부호화 장치(1900)는, 현재 블록에 대해 서브블록 기반의 인터 예측 모드가 아닌 모드에 따라 인터 예측을 수행하더라도, 현재 블록의 콜로케이티드 블록의 위치가 콜로케이티드 블록의 서브블록들 중 MxN 그리드의 좌상측 지점을 포함하는 서브블록이 존재한다면, MxN 그리드의 좌상측 지점을 포함하는 서브블록의 움직임 벡터 또는 움직임 벡터 관련 정보를 이용하여 현재 블록에 대해 인터 예측이 수행될 수 있다. 따라서, 콜로케이티드 블록의 위치에 가장 가까운 서브블록의 움직임 벡터가 획득될 수 있으므로, 현재 블록에 대한 인터 예측 결과의 정확성이 높아질 수 있다. Specifically, subblock-based inter prediction may be performed on collocated blocks among collocated pictures, and motion vector related information may be determined for each of the subblocks. Although the
또한, 콜로케이티드 부호화 단위의 예측 모드(인트라 또는 IBC 또는 팔레트 예측 모드로 부호화되었는지 여부) 및 콜로케이티드 블록의 참조 픽쳐가 롱텀 참조 픽쳐인지 여부는 콜로케이티드 샘플을 포함하는 콜로케이티드 부호화 단위를 기준으로 판단하되, 움직임 벡터는 콜로케이티드 부호화 단위를 구성하는 서브블록들 중 하나의 서브블록 단위로 결정될 수 있다. In addition, the prediction mode (whether encoded in the intra or IBC or palette prediction mode) of the collocated coding unit and whether the reference picture of the collocated block is a long-term reference picture is determined by the collocated coding unit including the collocated sample. , but the motion vector may be determined in units of one subblock among subblocks constituting the collocated coding unit.
서브블록 기반의 인터 예측이 수행된 경우에 서브블록별로 개별적인 움직임 벡터가 결정될 수 있다. 따라서, 인터 예측을 수행하는데 있어서, 콜로케이티드 부호화 단위가아닌 서브블록으로부터 움직임 벡터를 획득함으로써, 보다 정밀한 움직임 정보의 획득이 가능하다. 이와 반면에 서브블록보다 큰 데이터 단위로 판단 가능한 예측 모드 및 롱텀 참조 픽쳐인지 여부는, 서브블록이 아닌 콜로케이티드 부호화 단위 기준으로 판단되므로, 현재 블록의 인터 예측시 접근해야 할 콜로케이티드 블록의 데이터량이 효율적으로 운용될 수 있다. 이하, 도 21 및 22를 참조하여, 현재 블록의 시간적 움직임 벡터 또는 시간적 머지 후보를 결정하기 위한 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하기 위한 콜로케이티드 블록의 위치를, 서브블록이 아닌 부호화 단위의 좌상측 지점으로 결정하는 경우를 설명한다.When subblock-based inter prediction is performed, individual motion vectors may be determined for each subblock. Accordingly, in performing inter prediction, more precise motion information may be obtained by obtaining a motion vector from a subblock rather than a collocated coding unit. On the other hand, whether the prediction mode and the long-term reference picture that can be determined in a data unit larger than the subblock are determined based on the collocated coding unit rather than the subblock. The amount of data can be efficiently operated. Hereinafter, with reference to FIGS. 21 and 22 , the location of the collocated block for obtaining the temporal motion vector of the current block or the motion vector related information of the collocated block for determining the temporal merge candidate is encoded, not the subblock. A case in which the unit is determined by the upper left point will be described.
도 21은 현재 블록의 우하측 위치에 대응하는 콜로케이티드 블록의 움직임 벡터 정보를 획득할 수 있는 부호화 단위의 위치를 표시한다.21 illustrates a position of a coding unit from which motion vector information of a collocated block corresponding to a lower right position of a current block can be obtained.
일 실시예에 따른 현재 픽쳐(2100)에 포함된 현재 블록(2110)에 대해 인터 예측을 수행할 때, 시간적 머지 후보 또는 시간적 움직임 벡터를 획득하기 위해 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득될 수 있다. 머지 모드 또는 스킵 모드인 경우에는 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, AMVP 모드인 경우에는 콜로케이티드 블록의 움직임 벡터만이 획득될 수 있다. 이를 위해 콜로케이티드 블록의 움직임 벡터 관련 정보가 저장되어 있는 콜로케이티드 블록의 위치가 결정된다. When inter prediction is performed on the
콜로케이티드 픽쳐 내의 블록들의 움직임 벡터 관련 정보는 인터 블록마다 결정될 수 있지만, 인터 예측 과정에서 8x8 그리드에 대응하는 움직임 벡터 관련 정보만이 획득될 수 있다. 따라서, 8x8 그리드의 좌상측 샘플을 포함하는 블록의 움직임 벡터 관련 정보만이 현재 블록의 인터 예측을 위해 획득될 수 있다.Although motion vector related information of blocks in a collocated picture may be determined for each inter block, only motion vector related information corresponding to an 8x8 grid may be obtained in an inter prediction process. Accordingly, only motion vector related information of a block including the upper left sample of the 8x8 grid may be obtained for inter prediction of the current block.
우하측 콜로케이티드 블록의 위치(2140)는 현재 블록(2110)의 우하측 지점(2130)의 좌표 (xColBr, yColBr)를 이용하여 결정될 수 있다. (xColBr, yColBr)는 현재 블록(2110)의 좌상측 지점(2120)의 (xCb, yCb)으로부터 x축 방향으로 현재 블록(2110)의 너비만큼, y 축 방향으로 현재 블록(2110)의 높이만큼 떨어진 지점이다.The
다만, 움직임 벡터 관련 정보를 획득할 수 있는 블록이 8x8 그리드 단위로 검색 가능하므로, (xColBr, yColBr)를 8x8 그리드의 좌상측 지점에 일치시키도록 하는 작업이 필요하다. (xColBr, yColBr)의 x, y 성분별로 3만큼 우측으로 비트시프트한 후 다시 3만큼 좌측으로 비트시프트한 값 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )이 우하측 콜로케이티드 블록의 위치(2140)로 결정될 수 있다. However, since blocks from which motion vector-related information can be obtained are searchable in units of 8x8 grids, it is necessary to match (xColBr, yColBr) to the upper left point of the 8x8 grid. For each x and y component of (xColBr, yColBr), the value is bit shifted to the right by 3 and then bit shifted to the left by 3. It may be determined by the
다만, 종래 비디오 코덱에서는, 콜로케이티드 픽쳐(2150)에서, 현재 픽쳐(2100)의 우하측 콜로케이티드 블록의 위치(2140)의 좌표와 동일한 좌표를 갖는 지점(2170)를 포함하는 블록을 콜로케이티드 블록(2160)로 결정한다 따라서, 콜로케이티드 블록(2160)의 움직임 벡터 관련 정보가 우하측 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. 이에 따라, 콜로케이티드 블록(2160)의 좌상측 지점(2180)에 대응하여 저장된 움직임 벡터 관련 정보가 호출될 수 있다. However, in the conventional video codec, in the collocated
도 22은 도 21의 동작을 수행하기 위한 좌표 설정 방법이 기술된 표준 문서의 초안을 도시한다. 22 shows a draft of a standard document in which a method of setting coordinates for performing the operation of FIG. 21 is described.
단락 2210에 따르면, 콜로케이티드 픽쳐(2150) 내의 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 지점(2170)을 포함하는 부호화 단위(2160)가 콜로케이티드 블록 colCb로 결정된다.According to
단락 2220에 따르면, 콜로케이티드 블록 colCb 의 위치를 나타내는 좌표 (xColCb, yColCb)가, 콜로케이티드 픽쳐(2150)의 좌상측 루마 샘플의 좌표에 대비한, 콜로케이티드 블록 colCb의 좌상측 샘플, 즉 지점(2180)의 상대적인 좌표로 설정된다.According to
단락 2230에 따르면, 현재 블록(2110)의 콜로케이티드 움직임 벡터는, 좌표 (xColCb, yColCb), 지점(2180)의 상대적인 좌표에 기초하여 결정된다. 따라서, 콜로케이티드 블록 colCb의 좌상측 지점(2180)에 대응하는 8x8 그리드를 포함하는 부호화 단위에 대한 움직임 벡터가 현재 블록(2110)의 콜로케이티드 움직임 벡터로서 획득될 수 있다.According to
하지만, 움직임 벡터 관련 정보는 8x8 그리드 단위로 획득 가능하므로, 콜로케이티드 픽쳐(2150)에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 지점(2170)에 대응하는 8x8 그리드(블록)에 대한 움직임 벡터 관련 정보와, 콜로케이티드 블록(2160)의 좌상측 지점(2180)에서의 움직임 벡터 관련 정보는 상이할 수 있다. 따라서, 현재 블록(2110)의 우하측 콜로케이티드 블록의 위치(2140)에 정확히 대응하는 지점(2170)에 대한 움직임 벡터 관련 정보가 아닌, 콜로케이티드 블록(2160)의 좌상측 지점(2180)에 대한 움직임 벡터 관련 정보를 이용하여 현재 블록(2110)에 대한 인터 예측이 수행된다면, 예측 샘플의 정확도가 떨어질 수 있다.However, since motion vector-related information can be obtained in units of 8x8 grids, in the collocated
이하 도 23을 참조하여 일 실시예에 따른 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)가 보다 정확한 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하기 위한 방법을 상술한다.Hereinafter, a method for the
도 23은 콜로케이티드 블록이 서브블록 단위로 결정되는 경우에, 콜로케이티드 블록의 위치를 결정하는 방법을 도시한다.23 illustrates a method of determining a position of a collocated block when the collocated block is determined in units of subblocks.
도 23에 따르면, 일 실시예에 따른 비디오 복호화 장치(1700) 또는 비디오 부호화 장치(1900)가 콜로케이티드 블록의 움직임 벡터, 즉 콜로케이티드 움직임 벡터를 결정하기 위해 콜로케이티드 부호화 단위 뿐만 아니라 콜로케이티드 샘플의 좌표를 이용할 수 있다.Referring to FIG. 23 , a
머지 모드 또는 스킵 모드인 경우에는 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, AMVP 모드인 경우에는 콜로케이티드 블록의 움직임 벡터만이 획득될 수 있다.In the merge mode or skip mode, motion vector related information of the collocated block may be obtained, and in the AMVP mode, only the motion vector of the collocated block may be obtained.
도 23에서도, 현재 블록(2310)의 인터 예측을 위해, 콜로케이티드 픽쳐(2350) 내의 블록들의 움직임 벡터 관련 정보는 8x8 그리드 단위로 획득될 수 있다. 23 , for inter prediction of the
현재 블록(2310)의 우하측 콜로케이티드 블록의 위치(2340)는, 현재 픽쳐(2300) 중 현재 블록(2310)의 우하측 지점(2330)의 좌표 (xColBr, yColBr)를 기초하여 결정될 수 있다. (xColBr, yColBr)는 현재 블록(2310)의 좌상측 지점(2320)의 (xCb, yCb)으로부터 x축 방향으로 현재 블록(2310)의 너비만큼, y 축 방향으로 현재 블록(2310)의 높이만큼 떨어진 지점이다.The
(xColBr, yColBr)의 x, y 성분별로 3만큼 우측으로 비트시프트한 후 다시 3만큼 좌측으로 비트시프트한 값 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )이 우하측 콜로케이티드 블록의 위치(2340)로 결정될 수 있다. Value shifted to the right by 3 for each x and y component of (xColBr, yColBr) and then bit shifted to the left by 3 again It may be determined as the
일 실시예에 따른 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)는 서브블록 단위로 콜로케이티드 샘플의 위치를 결정할 수 있다. 즉, 콜로케이티드 픽쳐(2350)에서, 현재 픽쳐(2300)의 우하측 콜로케이티드 블록의 위치(2340)의 좌표와 동일한 좌표를 갖는 샘플(2370)를 포함하는 서브 블록(2375)의 위치를 이용하여 현재 픽쳐(2300)의 우하측 콜로케이티드 블록의 움직임 벡터를 획득할 수 있다. 따라서, 콜로케이티드 블록(2360)의 서브 블록(2375)의 움직임 벡터 관련 정보가 우하측 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. 이에 따라, 콜로케이티드 블록(2360)의 좌상측 지점(2380)가 아닌, 콜로케이티드 블록(2360)의 서브 블록(2375)에 대응하여 저장된 움직임 벡터 관련 정보가 호출되고, 그 중 서브 블록(2375)의 움직임 벡터가 콜로케이티드 움직임 벡터로서 이용될 수 있다. The
도 23에 따르면, 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)는 현재 블록(2110)에 대한 인터 예측을 수행하기 위해, 콜로케이티드 픽쳐(2350)에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 샘플(2370) 을 포함하는 서브블록(2375)의 움직임 벡터 관련 정보를 이용하므로, 도 21의 따른 예측 샘플에 비해 도 23에 따른 예측 샘플의 정확도가 향상될 수 있다.According to FIG. 23 , the
도 24 내지 26은 콜로케이티드 픽쳐 내에서, 블록들의 움직임 벡터 관련 정보를 버퍼에 저장하기 위해, 움직임 벡터 관련 정보가 저장되는 8x8 그리드와, 콜로케이티드 픽쳐 내 간에 포인터를 설정하는 다양한 방법을 도시한다.24 to 26 show various methods of setting a pointer between an 8x8 grid in which motion vector related information is stored and a pointer within a collocated picture in order to store motion vector related information of blocks in a buffer in a collocated picture. do.
도 24은 도 21의 동작에 따라 콜로케이티드 블록의 움직임 벡터 정보를 부호화 단위 단위로 획득하기 위한 버퍼 저장 방법을 도시한다.24 illustrates a buffer storage method for acquiring motion vector information of a collocated block in units of coding units according to the operation of FIG. 21 .
버퍼(2450)는 각 MxN 그리드를 가리키는 포인터들을 저장하기 위한 포인터 어레이들로 구성되어 있다. 버퍼(2480)는 콜로케이티드 픽쳐 내의 부호화 단위들의 움직임 벡터 정보를 저장하기 위한 어레이들로 구성되어 있다.The
부호화 단위 CU0(2410), CU1(2420), CU2(2430)별로 움직임 벡터 관련 정보가 존재하더라도, 부호화 단위 CU0(2410), CU1(2420), CU2(2430)가 MxN 그리드 A, B, C, D에 대응되어야 움직임 벡터 관련 정보가 버퍼(2450)에 저장될 수 있다. MxN 그리드 A, B, C, D의 좌상측 지점을 부호화 단위 CU0(2410), CU1(2420), CU2(2430)가 포함하여야, 부호화 단위 CU0(2410), CU1(2420), CU2(2430)의 움직임 벡터 관련 정보가 MxN 그리드 A, B, C, D에 대응될 수 있다.Even if motion vector-related information exists for each
일 실시예에 따르면, 버퍼(2450)에 MxN 그리드 A의 포인터(2452), MxN 그리드 B의 포인터(2454), MxN 그리드 C의 포인터(2456), MxN 그리드 D의 포인터(2458)가 설정될 수 있다. 버퍼(2480)는 부호화 단위 CU0(2410)의 움직임 벡터 관련 정보(2482) 및 부호화 단위 CU1(2420)의 움직임 벡터 관련 정보(2484)를 저장할 수 있다. 부호화 단위 CU2(2430)의 움직임 벡터 관련 정보는 MxN 그리드에 대응되지 않으므로 버퍼(2480)에 저장되지 않는다.According to an embodiment, the
MxN 그리드 A의 포인터(2452) 및 MxN 그리드 C의 포인터(2456)가 부호화 단위 CU0(2410)의 움직임 벡터 관련 정보(2482)를 가리키도록 설정될 수 있다. MxN 그리드 B의 포인터(2454) 및 MxN 그리드 D의 포인터(2458)가 부호화 단위 CU1(2420)의 움직임 벡터 관련 정보(2484)를 가리키도록 설정될 수 있다. The
따라서 도 24의 포인터 어레이에 따르면, 콜로케이티드 블록의 위치가 MxN 그리드 B 또는 D에 대응되는 경우에, 부호화 단위 CU1(2420)의 움직임 벡터 관련 정보(2484)가 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. Therefore, according to the pointer array of FIG. 24 , when the location of the collocated block corresponds to the MxN grid B or D, the motion vector related
도 25은, 도 23에 따라 콜로케이티드 블록의 움직임 벡터 관련 정보를 서브블록 단위로 획득하기 위한 버퍼 저장 방법의 일 실시예를 도시한다.FIG. 25 shows an embodiment of a buffer storage method for acquiring motion vector related information of a collocated block in units of subblocks according to FIG. 23 .
버퍼(2550)는 각 MxN 그리드를 가리키는 포인터들을 저장하기 위한 포인터 어레이들로 구성되고, 버퍼(2580)는 콜로케이티드 픽쳐 내의 부호화 단위 및 서브블록의 움직임 벡터 정보를 저장하기 위한 어레이들로 구성되어 있다.The
부호화 단위 CU1(2520)는 서브블록들(2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528)을 포함하고, 서브블록들(2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528) 별로 인터 예측이 수행될 수 있다.The
MxN 그리드 A, B, C, D의 좌상측 지점을 부호화 단위 CU0(2510), CU2(2530), 서브블록들(2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528)가 포함하여야, 해당 움직임 벡터 관련 정보가 MxN 그리드 A, B, C, D에 대응될 수 있다.
일 실시예에 따르면, 버퍼(2550)에 MxN 그리드 A의 포인터(2552), MxN 그리드 B의 포인터(2554), MxN 그리드 C의 포인터(2556), MxN 그리드 D의 포인터(2458)가 설정될 수 있다. 버퍼(2580)는 부호화 단위 CU0(2510)의 움직임 벡터 관련 정보(2582), 서브블록(2522)의 움직임 벡터 관련 정보(2584) 및 서브블록(2526) 의 움직임 벡터 관련 정보(2586)를 저장할 수 있다. 부호화 단위 CU2(2530), 서브블록(2521, 2523, 2524, 2525, 2527, 2528)의 움직임 벡터 관련 정보는 MxN 그리드에 대응되지 않으므로 버퍼(2580)에 저장되지 않는다.According to an embodiment, the
MxN 그리드 A의 포인터(2552) 및 MxN 그리드 C의 포인터(2556)가 부호화 단위 CU0(2510)의 움직임 벡터 관련 정보(2582)를 가리키도록 설정될 수 있다. MxN 그리드 B의 포인터(2554)는 서브블록(2522)의 움직임 벡터 관련 정보(2584)를 가리키도록 설정될 수 있다. MxN 그리드 D의 포인터(2558)가 서브블록(2526)의 움직임 벡터 관련 정보(2586)를 가리키도록 설정될 수 있다. The
따라서, 도 25의 포인터 어레이에 따르면, 콜로케이티드 블록의 위치가 MxN 그리드 B 또는 D에 대응되는 경우에, 부호화 단위 CU1(2520)의 움직임 벡터 관련 정보가 아니라, 서브블록(2522 또는 2526)의 움직임 벡터 관련 정보가 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. 따라서, 도 23를 참고하여 전술한 바와 같이, 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)가 현재 블록에 대한 인터 예측을 수행하기 위해, 콜로케이티드 픽쳐에서 우하측 콜로케이티드 블록, 중앙 콜로케이티드 블록 등의 위치를 포함하는 서브블록의 움직임 벡터 관련 정보를 이용할 수 있다. Therefore, according to the pointer array of FIG. 25 , when the position of the collocated block corresponds to the MxN grid B or D, the motion vector related information of the
도 26은 도 23에 따라 콜로케이티드 블록의 움직임 벡터 정보를 서브블록 단위로 저장하기 위한 버퍼 저장 방법의 다른 실시예를 도시한다.FIG. 26 shows another embodiment of a buffer storage method for storing motion vector information of a collocated block in units of subblocks according to FIG. 23 .
버퍼(2650)는 각 MxN 그리드에 콜로케이티드 픽쳐 내의 부호화 단위 및 서브블록의 움직임 벡터 정보를 저장하기 위한 어레이들로 구성되어 있다.The
일 실시예에 따르면, 버퍼(2650)는 MxN 그리드 A, B, C, D를 위한 저장공간을 포함할 수 있다. MxN 그리드 A에 부호화 단위 CU0(2610)의 움직임 벡터 관련 정보(2652)가 저장되고, MxN 그리드 B에 서브블록(2622)의 움직임 벡터 관련 정보(2654)가 저장될 수 있다. MxN 그리드 C에 부호화 단위 CU0(2610)의 움직임 벡터 관련 정보(2656)가 저장되고, MxN 그리드 D에 서브블록(2626)의 움직임 벡터 관련 정보(2658)가 저장될 수 있다. 부호화 단위 CU2(2530), 서브블록(2521, 2523, 2524, 2525, 2527, 2528)의 움직임 벡터 관련 정보는 MxN 그리드에 대응되지 않으므로 버퍼(2650)에 저장되지 않는다.According to an embodiment, the
따라서, 도 26의 버퍼(2650)에 따르면, 콜로케이티드 블록의 위치가 MxN 그리드 B 또는 D에 대응되는 경우에, 부호화 단위 CU1(2620)의 움직임 벡터 관련 정보가 아니라, 서브블록(2622 또는 2626)의 움직임 벡터 관련 정보가 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. 따라서, 도 23를 참고하여 전술한 바와 같이, 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)가 현재 블록에 대한 인터 예측을 수행하기 위해, 콜로케이티드 픽쳐에서 우하측 콜로케이티드 블록, 중앙 콜로케이티드 블록 등의 위치를 포함하는 서브블록의 움직임 벡터 관련 정보를 이용할 수 있다. Therefore, according to the
도 27 및 28은 도 25의 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하는 인터 예측이 기술된 표준 문서 초안의 수정안을 도시한다.27 and 28 show a revised draft of a standard document in which inter prediction using motion vector information of a collocated block obtained in units of subblocks is described according to the embodiment of FIG. 25 .
도 27은 우하측 콜로케이티드 블록의 경우를 도시한다. 우하측 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColBr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 x축 방향으로 현재 블록의 너비만큼 떨어진 위치 xCb + cbWidth 이며, 우하측 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColBr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이만큼 떨어진 위치 yCb + cbHeight을 나타낸다.Fig. 27 shows the case of the lower right collocated block. The x-coordinate xColBr indicating the position of the lower-right collocated block is a position xCb + cbWidth that is separated from the coordinates (xCb, yCb) of the upper-left sample of the current block by the width of the current block in the x-axis direction. The y-coordinate yColBr indicating the position of the block indicates a position yCb + cbHeight separated by the height of the current block in the y-axis direction from the coordinates (xCb, yCb) of the upper-left sample of the current block.
단락 2710에 따르면, 콜로케이티드 픽쳐 내의 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 지점을 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다.According to
단락 2720에 따르면, 콜로케이티드 부호화 단위 colCb 의 위치를 나타내는 좌표 (xColCb, yColCb)가, 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 상대적인 좌표로 설정되지 않는다. 즉, 단락 2220에서와 같이 콜로케이티드 부호화 단위 colCb 의 위치를 나타내는 좌표 (xColCb, yColCb)를 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않는다.According to
단락 2730에 따르면, 현재 블록의 콜로케이티드 움직임 벡터는, 좌표 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )에 기초하여 결정된다. 따라서, 콜로케이티드 블록의 서브블록들 중에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 지점을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터가 현재 블록의 콜로케이티드 움직임 벡터로서 획득될 수 있다.According to
따라서, 현재 블록의 우하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed by using the motion vector of the subblock of the collocated block exactly corresponding to the position of the lower right collocated block of the current block.
도 28은 우하측 콜로케이티드 블록이 아닌 중앙 콜로케이티드 블록의 경우를 도시한다. 중앙 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColCtr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 x축 방향으로 현재 블록의 너비의 반만큼 떨어진 위치 xCb + ( cbWidth >> 1 )이며, 중앙 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColCtr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이의 반만큼 떨어진 위치 yColCtr = yCb + ( cbHeight >> 1 )을 나타낸다.Fig. 28 shows the case of the central collocated block rather than the lower right collocated block. The x-coordinate xColCtr indicating the position of the central collocated block is a position xCb + ( cbWidth >> 1 ) that is half the width of the current block in the x-axis direction from the coordinates (xCb, yCb) of the upper-left sample of the current block. , the y-coordinate yColCtr indicating the position of the central collocated block is a position that is half the height of the current block in the y-axis direction from the coordinates (xCb, yCb) of the upper-left sample of the current block. 1 ).
단락 2810에 따르면, 콜로케이티드 픽쳐 내의 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 지점을 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다.According to
단락 2820에 따르면, 단락 2220에서와 같이 콜로케이티드 부호화 단위 colCb 의 위치를 나타내는 좌표 (xColCb, yColCb)를 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않는다.According to
단락 2830에 따르면, 현재 블록의 콜로케이티드 움직임 벡터는, 좌표 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )에 기초하여 결정된다. 따라서, 콜로케이티드 블록의 서브블록들 중에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 지점을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터가 현재 블록의 콜로케이티드 움직임 벡터로서 획득될 수 있다.According to
따라서, 현재 블록의 중앙 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed using the motion vector of the subblock of the collocated block that exactly corresponds to the position of the central collocated block of the current block.
이하 도 29 내지 34를 참조하여, 최근 비디오 코덱의 표준 문서에 기재된, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보 또는 움직임 벡터 관련 정보를 결정하기 위한 과정을 상술한다.Hereinafter, a process for determining motion vector information or motion vector related information of a collocated block obtained in units of subblocks, described in a standard document of a recent video codec, will be described with reference to FIGS. 29 to 34 .
도 29은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 시간적 예측 움직임 벡터(temporal luma motion vector prediction)를 도출하도록 기술된 표준 문서를 도시한다.29 illustrates a standard document described for deriving a temporal prediction motion vector (temporal luma motion vector prediction) using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment.
"8.5.2.11 Derivation process for temporal luma motion vector prediction" 절은 AMVP 모드 또는 AMVP 어파인 모드로 현재 블록에 대해 인터 예측이 수행되는 경우에, 콜로케이티드 픽쳐에 위치하는 콜로케이티드 블록의 움직임 벡터를 획득하기 위한 과정을 기술하고 있다.The "8.5.2.11 Derivation process for temporal luma motion vector prediction" clause refers to a motion vector of a collocated block located in a collocated picture when inter prediction is performed on a current block in AMVP mode or AMVP affine mode. Describes the process for obtaining it.
단락 2900, 2910 및 2930은 우하측 콜로케이티드 블록의 경우를 도시한다. 식 (583) 및 (584)에 따르면, 우하측 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColBr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 x축 방향으로 현재 블록의 너비만큼 떨어진 위치 xCb + cbWidth 이며, 우하측 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColBr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이만큼 떨어진 위치 yCb + cbHeight을 나타낸다.
단락 2900에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )와 동일해지도록 결정된다. According to
단락 2910에 따르면, 콜로케이티드 픽쳐 내에서, 좌표 ( xColCb, yColCb )를 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다. According to
단락 2930에 따르면, 콜로케이티드 부호화 단위 colCb와 콜로케이티드 샘플의 좌표 (xColCb, yColCb)에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득될 수 있다. 즉, 단락 2220에서와 같이 콜로케이티드 샘플의 좌표 (xColCb, yColCb)가 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않고, ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록의 위치를 이용하여 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득될 수 있다.According to
즉, 콜로케이티드 부호화 단위 내에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터를 이용하여 현재 블록의 콜로케이티드 움직임 벡터로서 획득될 수 있다.That is, within the collocated coding unit, if the coordinates of the ( ( xColBr >> 3 ) << 3, ( yColBr >>( yColBr >> 3 ) grid correspond to the coordinates of the subblock including 8, the collocated sample It can be obtained as a collocated motion vector of the current block using a motion vector of .
단락 2930에서, 콜로케이티드 부호화 단위 colCb의 예측 모드(인트라 또는 IBC 또는 팔레트 예측 모드로 부호화되었는지 여부) 및 콜로케이티드 블록의 참조 픽쳐가 롱텀 참조 픽쳐인지 여부는 콜로케이티드 부호화 단위 colCb를 기준으로 판단될 수 있다. 반면에, 콜로케이티드 부호화 단위 colCb 내에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터가 획득될 수 있다.In
따라서, 현재 블록의 우하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed by using the motion vector of the subblock of the collocated block exactly corresponding to the position of the lower right collocated block of the current block.
단락 2950, 2960 및 2980은 중앙 콜로케이티드 블록의 경우를 도시한다. 식 (587) 및 (588)에 따르면, 중앙 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColCtr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 x축 방향으로 현재 블록의 너비의 반만큼 떨어진 위치 xCb + ( cbWidth >> 1 )이며, 중앙 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColCtr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이의 반만큼 떨어진 위치 yCb + ( cbHeight >> 1 )을 나타낸다.
단락 2950에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )와 동일해지도록 결정된다. According to
단락 2960에 따르면, 콜로케이티드 픽쳐 내에서, 좌표 ( xColCb, yColCb )를 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다. According to
단락 2980에 따르면, 콜로케이티드 부호화 단위 colCb와 콜로케이티드 샘플의 좌표 (xColCb, yColCb) 에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득된다. 즉, 단락 2220에서와 같이 콜로케이티드 샘플의 좌표 (xColCb, yColCb)가 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않고, ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록의 위치를 이용하여 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득될 수 있다.According to
즉, 콜로케이티드 블록 내에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터를 이용하여 현재 블록의 콜로케이티드 움직임 벡터로서 획득될 수 있다.That is, within a collocated block, if ( ( xColCtr >> 3 ) << 3, ( yColCtr >>( yColCtr >>( yColCtr )>>( 3 ), if the coordinates of the sub-block in the grid containing the coordinates of 8, the collocated sample of the grid) is <x<3 It can be obtained as a collocated motion vector of the current block using the motion vector.
단락 2980에서, 콜로케이티드 부호화 단위 colCb의 예측 모드(인트라 또는 IBC 또는 팔레트 예측 모드로 부호화되었는지 여부) 및 콜로케이티드 블록의 참조 픽쳐가 롱텀 참조 픽쳐인지 여부는 콜로케이티드 부호화 단위 colCb를 기준으로 판단될 수 있다. 반면에, 콜로케이티드 부호화 단위 colCb 내에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터가 획득될 수 있다.In
따라서, 현재 블록의 중앙 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed using the motion vector of the subblock of the collocated block that exactly corresponds to the position of the central collocated block of the current block.
도 30은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 서브블록 기반의 시간적 머지 베이스 움직임 데이터(subblock-based temporal merging base motion data)를 도출하도록 기술된 표준 문서을 도시한다.30 is a description of deriving subblock-based temporal merging base motion data using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment. Shows standard documents.
"8.5.5.4 Derivation process for subblock-based temporal merging base motion data" 절은 서브블록 머지 모드가 활성화되고 sbtmvp 모드가 활성화되었을 때 현재 블록에 대해 인터 예측이 수행되는 경우에, 서브블록 기반의 시간적 머지 후보로서, 콜로케이티드 픽쳐에 위치하는 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하기 위한 과정을 기술하고 있다.The "8.5.5.4 Derivation process for subblock-based temporal merging base motion data" clause states that when inter prediction is performed on the current block when subblock merge mode is activated and sbtmvp mode is activated, subblock-based temporal merge candidate As , a process for acquiring motion vector related information of a collocated block located in a collocated picture is described.
단락 3000에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColCb >> 3 ) << 3, ( yColCb >> 3 ) << 3 )와 동일해지도록 결정된다. 즉, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가, 콜로케이티드 블록 내에서 8x8 그리드에 매칭되는 지점으로 변경할 수 있다. According to
단락 3010에 따르면, 콜로케이티드 픽쳐 내에서, 좌표 ( xColCb, yColCb )를 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다. According to
따라서, 콜로케이티드 부호화 단위colCb 와 별개로, 좌표 (xColCb, yColCb)에 대응되는 서브블록의 움직임 벡터 정보가 획득될 수 있다. 콜로케이티드 블록이 다수의 서브블록들로 구성될 때, 콜로케이티드 블록 내에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 해당 서브블록의 움직임 벡터가 현재 블록의 콜로케이티드 움직임 벡터로서 획득되고, 서브 블록 기반의 시간적 머지 후보로 이용될 수 있다.Accordingly, motion vector information of a subblock corresponding to the coordinates (xColCb, yColCb) may be obtained independently of the collocated coding unit colCb. When a collocated block is composed of multiple subblocks, within the collocated block, a grid containing 8x , the motion vector of the corresponding subblock may be obtained as a collocated motion vector of the current block, and may be used as a subblock-based temporal merge candidate.
도 31은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 우하측 컨트롤 포인트 움직임 벡터 정보(bottom-right control point motion vector)를 획득하기 위해, 어파인 컨트롤 포인트 움직임 벡터 머지 후보(affine control point motion vector merging candidates)를 도출하도록 기술된 표준 문서을 도시한다.31 is an affine control for obtaining bottom-right control point motion vector information using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment. Shows a standard document describing how to derive affine control point motion vector merging candidates.
"8.5.5.6 Derivation process for constructed affine control point motion vector merging candidates" 절은 어파인 머지 모드로 인터 예측이 수행되는 경우에, 현재 블록의 조합 어파인 CPMV 머지 후보를 결정하기 위해, 우하측 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하는 과정을 기술한다. In the section "8.5.5.6 Derivation process for constructed affine control point motion vector merging candidates", when inter prediction is performed in the affine merge mode, to determine the combined affine CPMV merge candidate of the current block, the lower right collocated A process for acquiring motion vector related information of a block is described.
단락 3110에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )와 동일해지도록 결정된다. According to
단락 3120에 따르면, 콜로케이티드 픽쳐 내에서, 좌표 ( xColCb, yColCb )를 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정될 수 있다. According to
단락 3130에 따르면, 콜로케이티드 부호화 단위 colCb와 콜로케이티드 샘플의 좌표 (xColCb, yColCb) 에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득될 수 있다. 즉, 단락 2220에서와 같이 콜로케이티드 샘플의 좌표 (xColCb, yColCb)가 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않고, ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )을 포함하는 서브블록의 위치로 유지될 수 있다. 따라서, 콜로케이티드 부호화 단위 내에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.According to
따라서, 현재 블록의 우하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed by using the motion vector of the subblock of the collocated block exactly corresponding to the position of the lower right collocated block of the current block.
도 32 및 33은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 시간적 머지 후보(temporal merge candidates)를 도출하도록 기술된 표준 문서를 도시한다.32 and 33 show a standard document described for deriving temporal merge candidates using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment.
"8.5.2.3.3 Derivation process for temporal merge candidates" 절은 머지 모드 또는 어파인 머지 모드로 인터 예측이 수행되는 경우에, 현재 블록의 시간적 머지 후보를 결정하기 위해, 중앙, 하측 또는 사이드 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하는 과정을 기술한다. In the "8.5.2.3.3 Derivation process for temporal merge candidates" clause, when inter prediction is performed in merge mode or affine merge mode, in order to determine a temporal merge candidate of the current block, the center, lower or side collocated A process for acquiring motion vector related information of a block is described.
중앙 콜로케이티드 블록의 움직임 벡터 관련 정보가 이용가능하지 않다면, 하측 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, 하측 콜로케이티드 블록의 움직임 벡터 관련 정보가 이용 가능하지 않다면, 사이드 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득될 수 있다. If the motion vector related information of the central collocated block is not available, the motion vector related information of the lower collocated block is obtained, and if the motion vector related information of the lower collocated block is not available, the side collocated block is not available. Motion vector related information of a block may be obtained.
단락 3210 및 3230을 통해 중앙 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, 단락 3250 및 3270을 통해 하측 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, 단락 3310 및 3330을 통해 사이드 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득될 수 있다.Motion vector related information of the central collocated block is obtained through
단락 3210에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )와 동일해지도록 결정된다. 현재 콜로케이티드 블록이 서브블록들을 포함하는 경우에, 서브블록들 중 8x8 그리드에 매칭되는 서브블록, 즉, 콜로케이티드 블록 내에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )을 포함하는 서브블록의 위치와 동일해지도록 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 변경될 수 있다.According to
단락 3230에 따르면, 콜로케이티드 샘플의 좌표 (xColCb, yColCb)를 포함하는 블록에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagCol)이 획득된다. 따라서, 콜로케이티드 블록 내에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.According to
따라서, 현재 블록의 중앙 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed using the motion vector of the subblock of the collocated block that exactly corresponds to the position of the central collocated block of the current block.
하측 콜로케이티드 블록의 위치는 현재 블록의 부호화 순서 정보 availLR를 고려하여 결정될 수 있다. The position of the lower collocated block may be determined in consideration of encoding order information availLR of the current block.
availLR가 LR_01인 경우, 즉 현재 블록에 비해 우측 블록이 먼저 복호화된 경우에, 식 (489) 및 (490)에 따르면, 하측 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColBot는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb) 중 x좌표 xCb와 동일하고, 우하측 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColBot는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이 nCbH 만큼 떨어진 위치 yCb + nCbH 을 나타낸다.When availLR is LR_01, that is, when the right block is decoded first compared to the current block, according to equations (489) and (490), the x coordinate xColBot indicating the position of the lower collocated block is the upper left of the current block. Among the coordinates (xCb, yCb) of the sample, the y-coordinate yColBot, which is the same as the x-coordinate xCb and indicates the position of the lower-right collocated block, is the current in the y-axis direction from the coordinates (xCb, yCb) of the upper-left sample of the current block. It represents the position yCb + nCbH separated by the block height nCbH.
하지만, availLR가 LR_01이 아닌 경우, 즉 현재 블록에 비해 우측 블록이 먼저 복호화되지 않은 경우에, 식 (491) 및 (492)에 따르면, 하측 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColBot는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 x 축 방향으로 현재 블록의 너비(nCbW-1)만큼 떨어진 위치 (xColBot = xCb + nCbW - 1)이고, 우하측 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColBot는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이 nCbH 만큼 떨어진 위치(yColBot = yCb + nCbH)을 나타낸다.However, if availLR is not LR_01, that is, when the right block is not decoded first compared to the current block, according to equations (491) and (492), the x-coordinate xColBot indicating the position of the lower collocated block is It is a position (xColBot = xCb + nCbW - 1) away from the coordinates (xCb, yCb) of the upper-left sample of the block in the x-axis direction by the width (nCbW-1) of the current block, indicating the position of the lower-right collocated block. The y-coordinate yColBot indicates a position (yColBot = yCb + nCbH) away from the coordinates (xCb, yCb) of the upper-left sample of the current block by the height nCbH of the current block in the y-axis direction.
단락 3250에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColBot >> 3 ) << 3, ( yColBot >> 3 ) << 3 )와 동일해지도록 결정된다. 현재 콜로케이티드 블록이 서브블록들을 포함하는 경우에, 서브블록들 중 8x8 그리드에 매칭되는 서브블록, 즉, 콜로케이티드 블록 내에서 ( ( xColBot >> 3 ) << 3, ( yColBot >> 3 ) << 3 )을 포함하는 서브블록의 위치와 동일해지도록 좌표 ( xColCb, yColCb )가 변경될 수 있다.According to
단락 3270에 따르면, 콜로케이티드 샘플의 좌표 (xColCb, yColCb)를 포함하는 블록에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagCol)이 획득된다. 따라서, 콜로케이티드 블록 내에서 ( ( xColBot >> 3 ) << 3, ( yColBot >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.According to
따라서, 현재 블록의 하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed using the motion vector of the subblock of the collocated block that exactly corresponds to the position of the collocated block below the current block.
사이드 콜로케이티드 블록의 위치는 현재 블록의 부호화 순서 정보 availLR를 고려하여 결정될 수 있다. The position of the side collocated block may be determined in consideration of encoding order information availLR of the current block.
availLR가 LR_01인 경우, 즉 현재 블록에 비해 우측 블록이 먼저 복호화된 경우에, 식 (495) 및 (496)에 따르면, 사이드 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColSide는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb) 중 x좌표 xCb-1와 동일하고, 사이드 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColSide는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이 nCbH-1 만큼 떨어진 위치 (yColBot = yCb + nCbH -1)을 나타낸다.When availLR is LR_01, that is, when the right block is decoded first compared to the current block, according to equations (495) and (496), the x-coordinate xColSide indicating the position of the side collocated block is the upper-left side of the current block. Among the sample coordinates (xCb, yCb), the y coordinate yColSide, which is the same as the x coordinate xCb-1 and indicates the position of the side collocated block, is in the y-axis direction from the coordinates (xCb, yCb) of the upper-left sample of the current block. It indicates the position (yColBot = yCb + nCbH -1) away from the current block height by nCbH-1.
하지만, availLR가 LR_01이 아닌 경우, 즉 현재 블록에 비해 우측 블록이 먼저 복호화되지 않은 경우에, 식 (497) 및 (498)에 따르면, 사이드 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColSide는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 x 축 방향으로 현재 블록의 너비 nCbW만큼 떨어진 위치(xColSide = xCb + nCbW - 1)이고, 사이드 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColSide는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이 nCbH-1 만큼 떨어진 위치 (yColBot = yCb + nCbH -1)을 나타낸다.However, when availLR is not LR_01, that is, when the right block is not decoded first compared to the current block, according to equations (497) and (498), the x coordinate xColSide indicating the position of the side collocated block is It is a position (xColSide = xCb = + nCbW - 1) away from the coordinates (xCb, yCb) of the upper-left sample of the block in the x-axis direction by the width of the current block (xColSide = xCb + nCbW - 1), and the y-coordinate yColSide indicating the position of the side collocated block is, It indicates a position (yColBot = yCb + nCbH -1) away from the coordinates (xCb, yCb) of the upper-left sample of the current block by the height nCbH-1 of the current block in the y-axis direction.
단락 3310에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColSide >> 3 ) << 3, ( yColSide >> 3 ) << 3 )와 동일해지도록 결정된다. 현재 콜로케이티드 블록이 서브블록들을 포함하는 경우에, 서브블록들 중 8x8 그리드에 매칭되는 서브블록, 즉, 콜로케이티드 블록 내에서 ( ( xColSide >> 3 ) << 3, ( yColSide >> 3 ) << 3 )을 포함하는 서브블록의 위치와 동일해지도록 좌표 ( xColCb, yColCb )가 변경될 수 있다.According to
단락 3330에 따르면, 콜로케이티드 샘플의 좌표 (xColCb, yColCb)를 포함하는 블록에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagCol)이 획득된다. 따라서, 콜로케이티드 블록 내에서 ( ( xColSide >> 3 ) << 3, ( yColSide >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.According to
따라서, 현재 블록의 사이드 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed using the motion vector of the subblock of the collocated block that exactly corresponds to the position of the side collocated block of the current block.
도 34는 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 좌하측 컨트롤 포인트 움직임 벡터 정보(bottom-left control point motion vector)를 획득하기 위해, 어파인 컨트롤 포인트 움직임 벡터 머지 후보(affine control point motion vector merging candidates)를 도출하도록 기술된 표준 문서를 도시한다.34 is an affine control for obtaining bottom-left control point motion vector information using motion vector information of a collocated block obtained in units of subblocks, according to an embodiment. Shows a standard document describing how to derive affine control point motion vector merging candidates.
"8.5.3.4 Derivation process for constructed affine control point motion vector merging candidates" 절은 어파인 머지 모드로 인터 예측이 수행되는 경우에, 현재 블록의 조합 어파인 CPMV 머지 후보를 결정하기 위해, 좌하측 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하는 과정을 기술한다. In the section "8.5.3.4 Derivation process for constructed affine control point motion vector merging candidates", when inter prediction is performed in the affine merge mode, in order to determine the combined affine CPMV merge candidate of the current block, the lower left collocated A process for acquiring motion vector related information of a block is described.
식 (776) 및 (777)에 따르면, 좌하측 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColBl는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb) 중 x좌표 xCb-1와 동일하고, 좌하측 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColBl는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이 cbHeight 만큼 떨어진 위치 (yColBl = yCb + cbHeight )을 나타낸다.According to Equations (776) and (777), the x-coordinate xColBl indicating the position of the lower-left collocated block is the same as the x-coordinate xCb-1 among the coordinates (xCb, yCb) of the upper-left sample of the current block, and The y-coordinate yColBl indicating the position of the side collocated block indicates a position (yColBl = yCb + cbHeight ) away from the coordinates (xCb, yCb) of the upper-left sample of the current block by the height cbHeight of the current block in the y-axis direction.
단락 3410에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColBl >> 3 ) << 3, ( yColBl >> 3 ) << 3 )와 동일해지도록 결정된다. According to paragraph 3410, the coordinates of the collocated sample ( xColCb, yColCb ) are determined such that it is equal to
단락 3430에 따르면, 콜로케이티드 샘플의 좌표 (xColCb, yColCb)를 포함하는 블록에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득된다. 즉, 단락 2220에서와 같이 콜로케이티드 샘플의 좌표 (xColCb, yColCb)가 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않고, ( ( xColBl >> 3 ) << 3, ( yColBl >> 3 ) << 3 )을 포함하는 서브블록의 위치로 유지될 수 있다. 따라서, 콜로케이티드 블록 내에서 ( ( xColBl >> 3 ) << 3, ( yColBl >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.According to
따라서, 현재 블록의 좌하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.Accordingly, inter prediction for the current block may be performed by using the motion vector of the subblock of the collocated block exactly corresponding to the position of the lower left collocated block of the current block.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.Meanwhile, the above-described embodiments of the present disclosure can be written as a program that can be executed on a computer, and the written program can be stored in a medium.
매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.The medium may be to continuously store a computer executable program, or to temporarily store it for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or several hardware combined, it is not limited to a medium directly connected to any computer system, and may exist distributed on a network. Examples of the medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floppy disk, and those configured to store program instructions, including ROM, RAM, flash memory, and the like. The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory storage medium' is a tangible device and only means that it does not contain a signal (eg, electromagnetic wave). It does not distinguish the case where it is stored as For example, the 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.In addition, examples of other media may include recording media or storage media managed by an app store that distributes applications, sites that supply or distribute various other software, and servers.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in this document may be provided as included in a computer program product. Computer program products may be traded between sellers and buyers as commodities. The 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 (eg Play Store™) or on two user devices (eg, It can be distributed (eg downloaded or uploaded) directly, online between smartphones (eg: smartphones). In the case of online distribution, at least a portion of a computer program product (eg, a downloadable app) is stored at least in a machine-readable storage medium, such as a memory of a manufacturer's server, a server of an application store, or a relay server. It may be temporarily stored or temporarily created.
이상, 본 개시의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 개시의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 개시의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.Above, the technical idea of the present disclosure has been described in detail with reference to preferred embodiments, but the technical idea of the present disclosure is not limited to the above embodiments, and those of ordinary skill in the art within the scope of the technical spirit of the present disclosure Various modifications and changes are possible by the person.
Claims (15)
상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계;
콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계;
상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.obtaining first coordinates of the collocated block pointing to a point separated by a predetermined distance from the upper-left point of the current block;
determining that second coordinates corresponding to the upper-left point of the MxN-sized block including the first coordinates of the collocated block become the coordinates of the collocated sample;
Based on the prediction mode of the collocated coding unit including the first coordinate of the collocated block in the collocated picture, the collocated using the motion vector of the block corresponding to the coordinate of the collocated sample is used. obtaining a motion vector;
and generating a prediction block of the current block using the motion vector of the current block determined using the collocated motion vector.
상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌측상단 지점에 해당하는 제2 좌표가 상기 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계는, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 서브블록들 중에서, 상기 제2 좌표를 포함하는 서브블록의 좌표를 상기 콜로케이티드 블록의 좌표가 되도록 결정하는 단계를 포함하고,
상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 제2 좌표를 포함하는 서브블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 상기 현재 블록의 시간적 예측 움직임 벡터를 획득하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.According to claim 1,
The step of determining that the second coordinate corresponding to the upper left point of the MxN block including the first coordinate of the collocated block becomes the coordinate of the collocated sample includes the first coordinate of the collocated block determining, among subblocks of a collocated coding unit including
The generating of the prediction block of the current block using the motion vector of the current block determined using the collocated motion vector may include: and obtaining a temporal prediction motion vector of the current block by using a motion vector.
상기 콜로케이티드 부호화 단위가 인트라 예측 모드, IBC (intra block copy) 예측 모드 또는 팔레트 예측 모드로 복호화되지 않은 경우, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스를 획득하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.The motion of a block corresponding to the coordinates of the collocated sample according to claim 1, wherein the block corresponding to the coordinates of the collocated sample is based on the prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture. The step of obtaining a collocated motion vector using a vector is,
When the collocated coding unit is not decoded in an intra prediction mode, an intra block copy (IBC) prediction mode, or a palette prediction mode, collocated motion is performed using a motion vector of a block corresponding to the coordinates of the collocated sample. A video decoding method comprising: obtaining a vector and obtaining a collocated reference picture index by using a reference picture index of a block corresponding to the coordinates of the collocated sample.
상기 콜로케이티드 부호화 단위의 참조 픽쳐와 상기 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐이거나 상기 콜로케이티드 부호화 단위의 참조 픽쳐와 상기 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐가 아닌 경우에, 상기 콜로케이티드 부호화 단위를 포함하는 슬라이스의 참조 픽쳐 리스트 세트를 이용하여, 상기 콜로케이티드 움직임 벡터를 스케일링하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.The motion of a block corresponding to the coordinates of the collocated sample according to claim 1, wherein the block corresponding to the coordinates of the collocated sample is based on the prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture. The step of obtaining a collocated motion vector using a vector is,
When both the reference picture of the collocated coding unit and the reference picture of the current block are long-term reference pictures, or when the reference picture of the collocated coding unit and the reference picture of the current block are both not long-term reference pictures, the colo A video decoding method comprising: scaling the collocated motion vector by using a reference picture list set of a slice including a kated coding unit.
M이 2의 m승이고 N인 2의 n승인 경우에, 상기 제1 좌표의 x 좌표를 m만큼 우측 비트시프트한 수를 다시 m만큼 좌측 비트시프트함으로써 상기 제2 좌표의 x 좌표를 획득하고, 상기 제1 좌표의 y 좌표를 n만큼 우측 비트시프트한 수를 다시 n만큼 좌측 비트시프트함으로써 상기 제2 좌표의 y 좌표를 획득하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.The method of claim 1, wherein the step of determining that the second coordinate corresponding to the upper left point of the MxN block including the first coordinate of the collocated block becomes the coordinate of the collocated sample,
When M is 2 to the mth power and N is 2 to the nth power, the x coordinate of the second coordinate is obtained by bit-shifting the number of the first coordinate by m to the right bit-shifted by m again, and obtaining the y-coordinate of the second coordinate by bit-shifting the y-coordinate of the first coordinate by n to the left by n again.
상기 MxN 크기가 8x8인 것을 특징으로 하는 비디오 복호화 방법.According to claim 1,
The video decoding method, characterized in that the MxN size is 8x8.
상기 콜로케이티드 블록이 우하측 콜로케이티드 블록(bottom-right collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 우하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.According to claim 1,
When the collocated block is a bottom-right collocated block, the first coordinate is the same as the coordinate of an external sample diagonally adjacent to the lower right point of the current block How to decrypt video.
상기 콜로케이티드 블록이 하측 콜로케이티드 블록(bottom collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.According to claim 1,
When the collocated block is a bottom collocated block, the first coordinate is the same as the coordinates of an external sample adjacent to the lower left or lower right point of the current block in the y-axis direction video decoding method.
상기 콜로케이티드 블록이 중앙 콜로케이티드 블록(central collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 중앙 지점의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.According to claim 1,
When the collocated block is a central collocated block, the first coordinate is the same as a coordinate of a center point of the current block.
상기 콜로케이티드 블록이 사이드 콜로케이티드 블록(side collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 x축 방향으로 인접하는 외부 샘플 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.According to claim 1,
When the collocated block is a side collocated block, the first coordinate is an external sample adjacent to the lower left point of the current block in the x-axis direction or adjacent to the lower right point in the y-axis direction. A video decoding method, characterized in that it is the same as the coordinates of the external sample.
상기 콜로케이티드 블록이 좌하측 콜로케이티드 블록(bottom-left collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.According to claim 1,
When the collocated block is a bottom-left collocated block, the first coordinate is the same as the coordinate of an external sample diagonally adjacent to the lower-left point of the current block How to decrypt video.
상기 현재 블록이 머지 모드로 인터 예측될 때, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 상기 움직임 벡터를 이용하여 상기 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 획득하는 단계를 포함하고,
상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 상기 콜로케이티드 움직임 벡터를 가지는 상기 블록에 대응하는 시간적 머지 후보를 포함하는 상기 현재 블록의 머지 후보 리스트를 생성하는 단계; 및
상기 머지 후보 리스트 중에서 결정된 상기 현재 블록의 머지 후보에 대응하는 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 움직임 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.According to claim 1, wherein the step of obtaining a collocated motion vector by using a motion vector of a block corresponding to the coordinates of the collocated sample,
When the current block is inter-predicted in the merge mode, the availability of the collocated motion vector and the collocated motion vector is determined using the motion vector and the motion vector of the block corresponding to the coordinates of the collocated sample. comprising the steps of obtaining
The generating of the prediction block of the current block using the motion vector of the current block determined using the collocated motion vector may include: when the collocated motion vector is available, the collocated motion vector generating a merge candidate list of the current block including temporal merge candidates corresponding to the branch; and
and determining a predicted motion vector of the current block by using a motion vector of a block corresponding to the merge candidate of the current block determined from the merge candidate list.
상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는,
상기 현재 블록의 MVP 모드로 인터 예측될 때, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 상기 움직임 벡터를 이용하여 상기 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 획득하는 단계를 포함하고,
상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 상기 콜로케이티드 움직임 벡터를 가지는 상기 블록에 대응하는 시간적 움직임 벡터 예측 후보를 포함하는 상기 현재 블록의 MVP 후보 리스트를 생성하는 단계; 및
상기 MVP 후보 리스트 중에서 결정된 상기 현재 블록의 예측 움직임 벡터 후보에 대응하는 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 움직임 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.According to claim 1,
Based on the prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture, the collocated using the motion vector of the block corresponding to the coordinates of the collocated sample is used. The step of obtaining the tid motion vector is,
When inter prediction is performed in the MVP mode of the current block, the availability of the collocated motion vector and the collocated motion vector is determined using the motion vector and the motion vector of the block corresponding to the coordinates of the collocated sample. comprising the steps of obtaining
The generating of the prediction block of the current block using the motion vector of the current block determined using the collocated motion vector may include: when the collocated motion vector is available, the collocated motion vector generating an MVP candidate list of the current block including temporal motion vector prediction candidates corresponding to the block; and
and determining the predicted motion vector of the current block by using the motion vector of the block corresponding to the predicted motion vector candidate of the current block determined from the MVP candidate list.
상기 현재 블록의 움직임 벡터를 이용하여 결정된 상기 현재 블록의 예측 블록을 이용하여 상기 현재 블록의 복원 블록을 생성하는 복원부를 포함하는 것을 특징으로 하는 비디오 복호화 장치.First coordinates of the collocated block pointing to a point separated by a predetermined distance from the upper left point of the current block are obtained, and the first coordinate corresponding to the upper left point of the MxN block including the first coordinate of the collocated block is obtained. 2 coordinates are determined to be the coordinates of the collocated sample, and based on the prediction mode of the collocated coding unit including the first coordinate of the collocated block in the collocated picture, an inter prediction unit obtaining a collocated motion vector using a motion vector of a block corresponding to a coordinate, and obtaining a motion vector of the current block determined using the collocated motion vector; and
and a reconstruction unit configured to generate a reconstructed block of the current block by using the prediction block of the current block determined using the motion vector of the current block.
상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계;
콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계; 및
상기 콜로케이티드 움직임 벡터에 기초하여 상기 현재 블록의 후보 리스트를 생성하고, 상기 후보 리스트를 이용하여 상기 현재 블록의 움직임 벡터를 부호화하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 방법.obtaining first coordinates of the collocated block pointing to a point separated by a predetermined distance from the upper-left point of the current block;
determining that second coordinates corresponding to the upper-left point of the MxN-sized block including the first coordinates of the collocated block become the coordinates of the collocated sample;
Based on the prediction mode of the collocated coding unit including the first coordinate of the collocated block in the collocated picture, the collocated using the motion vector of the block corresponding to the coordinate of the collocated sample is used. obtaining a motion vector; and
generating a candidate list of the current block based on the collocated motion vector, and encoding the motion vector of the current block using the candidate list.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220011052A KR20220017456A (en) | 2020-04-08 | 2022-01-25 | Method of decoding a video to obtain a motion vector and an apparatus thereof, method of encoding a video to obtain a motion vector and an apparatus thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200043034 | 2020-04-08 | ||
KR20200043034 | 2020-04-08 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220011052A Division KR20220017456A (en) | 2020-04-08 | 2022-01-25 | Method of decoding a video to obtain a motion vector and an apparatus thereof, method of encoding a video to obtain a motion vector and an apparatus thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210125443A true KR20210125443A (en) | 2021-10-18 |
KR102357294B1 KR102357294B1 (en) | 2022-02-08 |
Family
ID=78023458
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210046099A KR102357294B1 (en) | 2020-04-08 | 2021-04-08 | Method of decoding a video to obtain a motion vector and an apparatus thereof, method of encoding a video to obtain a motion vector and an apparatus thereof |
KR1020220011052A KR20220017456A (en) | 2020-04-08 | 2022-01-25 | Method of decoding a video to obtain a motion vector and an apparatus thereof, method of encoding a video to obtain a motion vector and an apparatus thereof |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220011052A KR20220017456A (en) | 2020-04-08 | 2022-01-25 | Method of decoding a video to obtain a motion vector and an apparatus thereof, method of encoding a video to obtain a motion vector and an apparatus thereof |
Country Status (2)
Country | Link |
---|---|
KR (2) | KR102357294B1 (en) |
WO (1) | WO2021206479A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018084339A1 (en) * | 2016-11-04 | 2018-05-11 | 엘지전자(주) | Inter prediction mode-based image processing method and device therefor |
WO2019194514A1 (en) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | Image processing method based on inter prediction mode, and device therefor |
KR20200008179A (en) * | 2011-02-09 | 2020-01-23 | 엘지전자 주식회사 | Method for encoding and decoding image and device using same |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019194502A1 (en) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | Inter prediction mode based image processing method and apparatus therefor |
JP2020043500A (en) * | 2018-09-12 | 2020-03-19 | シャープ株式会社 | Video encoding device and video decoding device |
-
2021
- 2021-04-08 WO PCT/KR2021/004436 patent/WO2021206479A1/en active Application Filing
- 2021-04-08 KR KR1020210046099A patent/KR102357294B1/en active IP Right Grant
-
2022
- 2022-01-25 KR KR1020220011052A patent/KR20220017456A/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200008179A (en) * | 2011-02-09 | 2020-01-23 | 엘지전자 주식회사 | Method for encoding and decoding image and device using same |
WO2018084339A1 (en) * | 2016-11-04 | 2018-05-11 | 엘지전자(주) | Inter prediction mode-based image processing method and device therefor |
WO2019194514A1 (en) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | Image processing method based on inter prediction mode, and device therefor |
Also Published As
Publication number | Publication date |
---|---|
KR102357294B1 (en) | 2022-02-08 |
KR20220017456A (en) | 2022-02-11 |
WO2021206479A1 (en) | 2021-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102332528B1 (en) | Video encoding and decoding method using motion vector difference value, and motion information encoding and decoding apparatus | |
KR102292620B1 (en) | A method for encoding and decoding motion information, and an apparatus for encoding and decoding motion information | |
KR102366261B1 (en) | Apparatus and method for encoding motion information, and apparatus and method for decoding motion information | |
KR102332529B1 (en) | Apparatus and method for encoding and decoding motion information by using neighboring motion information | |
KR20210055781A (en) | Motion vector difference encoding method and encoding device, and motion vector difference decoding method and decoding device | |
KR20220046656A (en) | Video decoding method and apparatus for performing inter prediction according to an affine model, video encoding method and apparatus thereof | |
KR20210030890A (en) | Image decoding apparatus and method using tool set, and image encoding apparatus and method | |
KR20240101757A (en) | Encoding apparatus and method of motion vector, and decoding apparatus and method of motion vector | |
KR102185370B1 (en) | Apparatus and method for encoding a motion vector using a basic motion vector, and a decoding apparatus and method | |
KR102516068B1 (en) | Method and apparatus for video encoding including in an affine model-inter prediction considering coding order, method and apparatus for video decoding including in an affine model-inter prediction considering coding order | |
KR102546695B1 (en) | Apparatus and method for encoding and decoding motion information by using neighboring motion information | |
KR102357294B1 (en) | Method of decoding a video to obtain a motion vector and an apparatus thereof, method of encoding a video to obtain a motion vector and an apparatus thereof | |
KR20220051842A (en) | Motion information encoding apparatus and method, and decoding apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |