WO2021206479A1 - 움직임 벡터를 획득하기 위한 비디오 복호화 방법 및 장치, 움직임 벡터를 획득하기 위한 비디오 부호화 방법 및 장치 - Google Patents
움직임 벡터를 획득하기 위한 비디오 복호화 방법 및 장치, 움직임 벡터를 획득하기 위한 비디오 부호화 방법 및 장치 Download PDFInfo
- Publication number
- WO2021206479A1 WO2021206479A1 PCT/KR2021/004436 KR2021004436W WO2021206479A1 WO 2021206479 A1 WO2021206479 A1 WO 2021206479A1 KR 2021004436 W KR2021004436 W KR 2021004436W WO 2021206479 A1 WO2021206479 A1 WO 2021206479A1
- Authority
- WO
- WIPO (PCT)
- 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
Definitions
- 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.
- 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.
- a recursive splitting process that is uniformly divided into four coding units of the same size.
- 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.
- a video decoding method 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.
- a subblock-based inter prediction 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.
- FIG. 1 is a schematic block diagram of an image decoding apparatus according to an embodiment.
- FIG. 2 is a flowchart of an image decoding method according to an embodiment.
- FIG. 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.
- FIG. 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.
- FIG. 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.
- FIG. 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.
- 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.
- FIG. 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.
- FIG. 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
- FIG. 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.
- FIG. 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.
- FIG. 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.
- PID part index
- FIG. 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.
- FIG. 17 is a block diagram of a video decoding apparatus according to an embodiment.
- FIG. 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.
- FIG. 20 is a flowchart of a video encoding method according to an embodiment.
- FIG. 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.
- FIG. 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.
- FIG. 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.
- FIG. 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.
- a video decoding method 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.
- 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
- 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.
- 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 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.
- 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
- 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.
- the MxN size may be 8x8.
- 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.
- 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.
- the first coordinates may be the same as coordinates of a central point of the current 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.
- 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.
- 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.
- 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 a 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.
- the video decoding apparatus 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
- 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.
- a video encoding method 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.
- 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.
- 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.
- an 'image' or 'picture' may represent a still image of a video or a moving picture, that is, a video itself.
- a 'sample' refers to data assigned to a sampling position of an image and to be processed.
- 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.
- 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.
- a motion vector is in the list 0 direction may mean that it is a motion vector used to indicate a block in a reference picture included in list 0, and that a motion vector is in the list 1 direction means, It may mean that it is a motion vector used to indicate a block in the reference picture included in List 1.
- a motion vector is unidirectional may mean that it is a motion vector used to indicate a block in a reference picture included in list 0 or list 1, and that a motion vector is bidirectional means that the motion vector is in the list 0 direction This may mean including the motion vector and the motion vector in the list 1 direction.
- 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.
- 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 sub-blocks having a width and the same height as the current block, and one sub-block having a width that is 2/4 of the width of the current block and a height equal to the height of the current block may be created.
- 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.
- 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.
- 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 .
- FIGS. 1 and 2 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 .
- 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.
- FIGS. 1 and 2 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 .
- FIG. 1 is a schematic block diagram of an image decoding apparatus according to an embodiment.
- the image decoding apparatus 100 may include a receiver 110 and a decoder 120 .
- the receiver 110 and the decoder 120 may include at least one processor.
- the receiver 110 and the decoder 120 may include a memory for storing instructions to be executed by at least one processor.
- the receiver 110 may receive a bitstream.
- the bitstream includes information obtained by encoding an image by the image encoding apparatus 2200, which will be described later. Also, the bitstream may be transmitted from the image encoding apparatus 2200 .
- the image encoding apparatus 2200 and the image decoding apparatus 100 may be connected by wire or wirelessly, and the receiver 110 may receive a bitstream through a wire or wirelessly.
- the receiver 110 may receive a bitstream from a storage medium such as an optical media or a hard disk.
- the decoder 120 may reconstruct an image based on information obtained from the received bitstream.
- the decoder 120 may obtain a syntax element for reconstructing an image from the bitstream.
- the decoder 120 may reconstruct an image based on the syntax element.
- FIG. 2 is a flowchart of an image decoding method according to an embodiment.
- the receiver 110 receives a bitstream.
- the image decoding apparatus 100 performs an operation 210 of obtaining an empty string corresponding to the segmentation mode of the coding unit from the bitstream.
- the image decoding apparatus 100 performs step 220 of determining a division rule of a coding unit.
- the image decoding apparatus 100 performs an operation 230 of splitting the coding unit into a plurality of coding units based on at least one of a binstring corresponding to a splitting mode mode and the splitting rule.
- the image decoding apparatus 100 may determine a first allowable range of the size of the coding unit according to a ratio of a width and a height of the coding unit in order to determine the division rule.
- the image decoding apparatus 100 may determine a second allowable range of the size of the coding unit according to the splitting mode mode of the coding unit.
- 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).
- CTUs largest coding units
- a maximum coding block (CTB) is a concept as opposed to a maximum coding unit (CTU).
- the maximum coding block means an NxN block including NxN samples (N is an integer). Each color component may be divided into one or more largest coding blocks.
- a maximum coding unit is a maximum coding block of a luma sample, two maximum coding blocks of chroma samples corresponding thereto, and a luma.
- 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.
- the maximum coding unit is a unit including syntax structures used to encode the corresponding picture and samples of the picture.
- One largest coding block may be divided into MxN coding blocks including MxN samples (M and N are integers).
- a coding unit 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.
- 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.
- 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.
- 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.
- the present invention is not limited thereto.
- information on the maximum size of the luma coding block may be obtained from the bitstream.
- 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.
- 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.
- 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.
- the maximum size of a luma encoding block capable of binary splitting may be variably determined.
- the maximum size of a luma coding block capable of ternary splitting may be fixed.
- the maximum size of a luma coding block capable of ternary division in an I picture may be 32x32
- the maximum size of a luma coding block capable of ternary division in a P picture or a B picture may be 64x64.
- the maximum coding unit may be hierarchically split into coding units based on the split form mode information obtained from the bitstream.
- 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.
- 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.
- 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.
- the split direction information indicates that the current coding unit is split in either a horizontal direction or a vertical direction.
- the split type information indicates that the current coding unit is split into binary splitting) or ternary splitting.
- 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).
- the image decoding apparatus 100 may obtain segmentation form mode information from a bitstream from one empty string.
- the form of the bitstream received by the image decoding apparatus 100 may include a fixed length binary code, an unary code, a truncated unary code, a predetermined binary code, and the like.
- An empty string represents information as a sequence of binary numbers.
- An empty string may be composed of at least one bit.
- the image decoding apparatus 100 may obtain segmentation form mode information corresponding to an empty string based on a segmentation rule.
- the image decoding apparatus 100 may determine whether to split the coding unit into quads or not, or a splitting direction and a splitting type, based on one binstring.
- the coding unit may be smaller than or equal to the maximum coding unit.
- the largest coding unit is also a coding unit having the largest size, it is one of the coding units.
- a coding unit determined from the largest coding unit has the same size as the largest coding unit.
- the maximum coding unit may be split into coding units.
- the coding units may be split into coding units having smaller sizes.
- 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 .
- 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.
- 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.
- prediction may be performed using the coding unit as a prediction block for the coding unit.
- transformation may be performed using the coding unit as a transform block for the coding unit.
- 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.
- 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.
- FIG. 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.
- the block form may include 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN, or Nx8N.
- 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.
- the shape of the coding unit may include a square and a non-square.
- the image decoding apparatus 100 may determine the block shape information of the coding unit as a square.
- the image decoding apparatus 100 may determine the shape of the coding unit to be non-square.
- the image decoding apparatus 100 may Block shape information of the coding unit may be determined to be non-square.
- the image decoding apparatus 100 sets the ratio of width and height among the block shape information of the coding unit to 1:2, 2:1, 1:4, 4:1, and 1:8. , 8:1, 1:16, 16:1, 1:32, 32:1.
- the image decoding apparatus 100 may determine whether the coding unit is in a horizontal direction or a vertical direction. Also, the image decoding apparatus 100 may determine the size of the coding unit based on at least one of the length of the width, the length of the height, and the width of the coding unit.
- the image decoding apparatus 100 may determine a form of a coding unit by using block form information, and may determine a form in which a coding unit is split by using the split form mode information. That is, a method of dividing a coding unit indicated by the division type mode information may be determined according to which block type the block type information used by the image decoding apparatus 100 represents.
- the image decoding apparatus 100 may obtain segmentation mode information from the bitstream. However, the present invention is not limited thereto, and the image decoding apparatus 100 and the image encoding apparatus 2200 may determine predetermined segmentation form mode information based on block form information.
- the image decoding apparatus 100 may determine split form mode information previously agreed on for the largest coding unit or the smallest coding unit. For example, the image decoding apparatus 100 may determine the split form mode information for the largest coding unit as a quad split. Also, the image decoding apparatus 100 may determine that the segmentation mode information for the minimum coding unit is "not segmented". In more detail, the image decoding apparatus 100 may determine the size of the largest coding unit to be 256x256. The image decoding apparatus 100 may determine the predetermined division shape mode information as quad division.
- Quad splitting is a splitting mode in which both the width and height of a coding unit are halved.
- the image decoding apparatus 100 may obtain a coding unit having a size of 128x128 from a maximum coding unit having a size of 256x256 based on the segmentation mode information. Also, the image decoding apparatus 100 may determine the size of the minimum coding unit to be 4x4. The image decoding apparatus 100 may obtain segmentation mode information indicating "do not segment" with respect to the minimum coding unit.
- the image decoding apparatus 100 may use block shape information indicating that the current coding unit has a square shape. For example, the image decoding apparatus 100 may determine whether to split the square coding unit, whether to split it vertically, whether to split it horizontally, or whether to split it into four coding units, according to the split shape mode information. Referring to FIG. 3 , when the block shape information of the current coding unit 300 represents a square shape, the decoder 120 has the same size as the current coding unit 300 according to the split shape mode information indicating that it is not split. The coding units 310b, 310c, 310d, 310e, 310f, etc. may be determined by not splitting the coding unit 310a having
- the image decoding apparatus 100 divides the current coding unit 300 in the vertical direction into two coding units 310b based on the segmentation shape mode information indicating that it is split in the vertical direction according to an embodiment. can decide The image decoding apparatus 100 may determine the two coding units 310c obtained by dividing the current coding unit 300 in the horizontal direction based on the division shape mode information indicating the horizontal division. The image decoding apparatus 100 may determine four coding units 310d obtained by dividing the current coding unit 300 in the vertical direction and the horizontal direction based on the segmentation mode information indicating that the image is segmented in the vertical direction and the horizontal direction.
- the image decoding apparatus 100 generates three coding units 310e obtained by dividing the current coding unit 300 in the vertical direction based on the segmentation mode information indicating that the current coding unit 300 is vertically segmented according to an embodiment. can decide The image decoding apparatus 100 may determine three coding units 310f obtained by dividing the current coding unit 300 in the horizontal direction based on the division shape mode information indicating that the current coding unit 300 is horizontally divided ternary.
- the split form in which the square coding unit can be split should not be interpreted as being limited to the above-described form, and various forms that can be represented by the split form mode information may be included. Predetermined division forms in which the square coding unit is divided will be described in detail below through various embodiments.
- FIG. 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.
- the image decoding apparatus 100 may use block shape information indicating that the current coding unit has a non-square shape.
- the image decoding apparatus 100 may determine whether to split the non-square current coding unit or split it by a predetermined method according to the split shape mode information. Referring to FIG. 4 , when block shape information of the current coding unit 400 or 450 indicates a non-square shape, the image decoding apparatus 100 determines the current coding unit ( The coding units 420a, 420b, 430a, 430b, 430c, 470a that are split based on determining the coding unit 410 or 460 having the same size as 400 or 450) or based on the splitting form mode information indicating a predetermined splitting method. , 470b, 480a, 480b, 480c) may be determined.
- a predetermined splitting method in which a non-square coding unit is split will be described in detail below through various embodiments.
- the image decoding apparatus 100 may determine a form in which the coding unit is split by using the segmentation form mode information, and in this case, the segmentation form mode information includes information about at least one coding unit generated by splitting the coding unit. number can be indicated. Referring to FIG. 4 , when the split form mode information indicates that the current coding unit 400 or 450 is split into two coding units, the image decoding apparatus 100 determines the current coding unit 400 or 450 based on the split form mode information. 450) to determine two coding units 420a, 420b, or 470a, 470b included in the current coding unit.
- the image decoding apparatus 100 divides the non-square current coding unit 100 or 450 based on the division shape mode information
- the image decoding apparatus 100 divides the non-square current coding unit 100
- the current coding unit may be split in consideration of the position of the long side of the coding unit 400 or 450 .
- the image decoding apparatus 100 divides the current coding unit 400 or 450 in a direction in which the long side of the current coding unit 400 or 450 is split in consideration of the shape of the current coding unit 400 or 450 .
- a plurality of coding units may be determined.
- the image decoding apparatus 100 determines the odd number of encoding units included in the current coding unit 400 or 450 . units can be determined. For example, when the split mode information indicates that the current coding unit 400 or 450 is split into three coding units, the image decoding apparatus 100 converts the current coding unit 400 or 450 into three coding units ( 430a, 430b, 430c, 480a, 480b, 480c).
- a ratio of a width to a height of the current coding unit 400 or 450 may be 4:1 or 1:4.
- the ratio of the width and the height is 4:1, since the length of the width is longer than the length of the height, the block shape information may be in a horizontal direction.
- the ratio of the width and the height is 1:4, since the length of the width is shorter than the length of the height, the block shape information may be in a vertical direction.
- the image decoding apparatus 100 may determine to divide the current coding unit into an odd number of blocks based on the division form mode information. Also, the image decoding apparatus 100 may determine the division direction of the current coding unit 400 or 450 based on block shape information of the current coding unit 400 or 450 .
- the image decoding apparatus 100 may divide the current coding unit 400 in the horizontal direction to determine the coding units 430a, 430b, and 430c. Also, when the current coding unit 450 is in the horizontal direction, the image decoding apparatus 100 may determine the coding units 480a, 480b, and 480c by dividing the current coding unit 450 in the vertical direction.
- the image decoding apparatus 100 may determine an odd number of coding units included in the current coding unit 400 or 450 , and the sizes of the determined coding units may not all be the same. For example, the size of a predetermined coding unit 430b or 480b among the determined odd coding units 430a, 430b, 430c, 480a, 480b, and 480c is different from that of other coding units 430a, 430c, 480a, and 480c.
- a coding unit that can be determined by dividing the current coding unit 400 or 450 may have a plurality of types of sizes, and in some cases, an odd number of coding units 430a, 430b, 430c, 480a, 480b, 480c. may have different sizes.
- the image decoding apparatus 100 may determine an odd number of coding units included in the current coding unit 400 or 450, Furthermore, the image decoding apparatus 100 may place a predetermined limit on at least one coding unit among the odd-numbered coding units generated by division. Referring to FIG. 4 , the image decoding apparatus 100 provides a coding unit located at the center among three coding units 430a, 430b, 430c, 480a, 480b, and 480c generated by dividing the current coding unit 400 or 450 .
- the decoding process for (430b, 480b) may be different from that of other coding units (430a, 430c, 480a, 480c).
- the image decoding apparatus 100 restricts the coding units 430b and 480b located in the center from being further divided, unlike other coding units 430a, 430c, 480a, and 480c, or only a predetermined number of times. It can be limited to splitting.
- FIG. 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.
- the image decoding apparatus 100 may determine to split or not split the square-shaped first coding unit 500 into coding units based on at least one of block form information and split form mode information. .
- the image decoding apparatus 100 divides the first coding unit 500 in the horizontal direction to perform the second encoding.
- a unit 510 may be determined.
- the first coding unit, the second coding unit, and the third coding unit used according to an embodiment are terms used to understand the relationship before and after splitting between coding units. For example, if the first coding unit is split, a second coding unit may be determined, and if the second coding unit is split, a third coding unit may be determined.
- the relationship between the first coding unit, the second coding unit, and the third coding unit used depends on the above-described characteristics.
- the image decoding apparatus 100 may determine whether to split or not split the determined second coding unit 510 into coding units based on the split form mode information. Referring to FIG. 5 , the image decoding apparatus 100 performs at least one third encoding of the second coding unit 510 in the non-square shape determined by dividing the first coding unit 500 based on the division shape mode information. The division into units 520a, 520b, 520c, 520d, etc. may be performed or the second coding unit 510 may not be divided. The image decoding apparatus 100 may obtain segmentation form mode information, and the image decoding apparatus 100 divides the first coding unit 500 based on the obtained segmentation form mode information to split a plurality of second encodings in various forms.
- the unit (eg, 510 ) may be split, and the second coding unit 510 may be split according to a split method of the first coding unit 500 based on split form mode information.
- the second coding unit 510 when the first coding unit 500 is split into the second coding unit 510 based on the split form mode information on the first coding unit 500 , the second coding unit 510 is also It may be split into third coding units (eg, 520a, 520b, 520c, 520d, etc.) based on the split form mode information on the second coding unit 510 . That is, the coding unit may be recursively split based on the split form mode information related to each coding unit. Accordingly, a square coding unit may be determined from a non-square coding unit, and a non-square coding unit may be determined by recursively splitting the square coding unit.
- 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.
- the third coding unit 520b having a square shape which is one of the odd number of third coding units 520b, 520c, and 520d, may be horizontally split and split into a plurality of fourth coding units.
- the non-square fourth coding unit 530b or 530d which is one of the plurality of fourth coding units 530a, 530b, 530c, and 530d, may be further divided into a plurality of coding units.
- the non-square fourth coding unit 530b or 530d may be re-segmented into an odd number of coding units.
- the image decoding apparatus 100 may split each of the third coding units 520a, 520b, 520c, 520d, etc. into coding units based on the split form mode information. Also, the image decoding apparatus 100 may determine not to split the second coding unit 510 based on the split form mode information. The image decoding apparatus 100 may split the non-square-shaped second coding unit 510 into an odd number of third coding units 520b, 520c, and 520d, according to an embodiment. The image decoding apparatus 100 may place a predetermined limit on a predetermined third coding unit among the odd number of third coding units 520b, 520c, and 520d.
- the image decoding apparatus 100 limits the coding unit 520c positioned in the middle among the odd number of third coding units 520b, 520c, and 520d to not being split anymore or to be split a settable number of times. can be limited to
- the image decoding apparatus 100 includes a coding unit ( 520c is limited to no longer being split or split into a predetermined split form (for example, split into only four coding units or split into a form corresponding to the split form of the second coding unit 510), or It can be limited to dividing only by the number of times (eg, dividing only n times, n>0).
- a coding unit 520c located in the middle are merely exemplary embodiments, they should not be construed as being limited to the above-described embodiments, and the coding units 520b and 520d in which the coding unit 520c located in the center is different. ) and should be interpreted as including various restrictions that can be decrypted differently.
- the image decoding apparatus 100 may obtain information about the splitting form mode used to split the current coding unit at a predetermined position within the current coding unit.
- 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.
- segmentation mode information of the current coding units 600 and 650 is a sample at a predetermined position among a plurality of samples included in the current coding units 600 and 650 (eg, a sample located in the center ( 640, 690)).
- a predetermined position in the current coding unit 600 from which at least one of the split form mode information can be obtained should not be interpreted as being limited to the middle position shown in FIG. 6 , and the predetermined position to be included in the current coding unit 600 .
- various possible positions eg, top, bottom, left, right, top left, bottom left, top right or bottom right, etc.
- the image decoding apparatus 100 may determine whether to split the current coding unit into coding units having various shapes and sizes or not to divide the current coding unit by obtaining the split shape mode information obtained from a predetermined position.
- the image decoding apparatus 100 may select one coding unit from among them.
- Methods for selecting one of the plurality of coding units may be various, and descriptions of these methods will be described later through various embodiments below.
- the image decoding apparatus 100 may split the current coding unit into a plurality of coding units and determine a coding unit at a predetermined position.
- the image decoding apparatus 100 may use information indicating a position of each of the odd-numbered coding units in order to determine a coding unit located in the middle among the odd-numbered coding units. Referring to FIG. 6 , the image decoding apparatus 100 divides the current coding unit 600 or the current coding unit 650 into odd-numbered coding units 620a, 620b, and 620c or odd-numbered coding units 660a, 660b, 660c) can be determined. The image decoding apparatus 100 uses information about the positions of the odd-numbered coding units 620a, 620b, and 620c or the odd-numbered coding units 660a, 660b, and 660c to the middle coding unit 620b or the middle coding unit.
- the image decoding apparatus 100 determines the positions of the coding units 620a, 620b, and 620c based on information indicating the positions of predetermined samples included in the coding units 620a, 620b, and 620c. It is possible to determine the coding unit 620b located in . Specifically, the image decoding apparatus 100 determines the coding units 620a, 620b, and 620c based on information indicating the positions of the upper left samples 630a, 630b, and 630c of the coding units 620a, 620b, and 620c. By determining the position of , the coding unit 620b located in the center may be determined.
- information indicating the positions of the upper left samples 630a , 630b , and 630c included in the coding units 620a , 620b , and 620c , respectively, is in the picture of the coding units 620a , 620b , and 620c .
- information indicating the positions of the upper left samples 630a, 630b, and 630c included in the coding units 620a, 620b, and 620c, respectively, is the coding units 620a included in the current coding unit 600.
- 620b, 620c may include information indicating the width or height, and the width or height may correspond to information indicating a difference between coordinates of the coding units 620a, 620b, and 620c within a picture. That is, the image decoding apparatus 100 directly uses information on the positions or coordinates of the coding units 620a , 620b , and 620c in the picture, or information on the width or height of the coding unit corresponding to the difference between the coordinates. By using , the coding unit 620b located in the center may be determined.
- information indicating the position of the upper left sample 630a of the upper coding unit 620a may indicate (xa, ya) coordinates
- ) may indicate (xb, yb) coordinates
- information indicating the position of the upper left sample 630c of the lower coding unit 620c may indicate (xc, yc) coordinates.
- the image decoding apparatus 100 may determine the middle coding unit 620b by using the coordinates of the upper left samples 630a, 630b, and 630c included in the coding units 620a, 620b, and 620c, respectively.
- the coding unit 620b including (xb, yb), which is the coordinates of the sample 630b located in the center, 620b may be determined as a coding unit located in the middle among the coding units 620a, 620b, and 620c determined by dividing the current coding unit 600 .
- the coordinates indicating the positions of the upper left samples 630a, 630b, and 630c may indicate coordinates indicating the absolute positions in the picture, and furthermore, the position of the upper left sample 630a of the upper coding unit 620a.
- (dxb, dyb) coordinates which are information indicating the relative position of the upper left sample 630b of the middle coding unit 620b, and the lower left coding unit 620c, indicating the relative position of the upper left sample 630c (dxc, dyc) coordinates that are information may be used.
- the method of determining the coding unit of a predetermined position by using the coordinates of the sample as information indicating the position of the sample included in the coding unit should not be interpreted as being limited to the above-described method, and various arithmetic methods that can use the coordinates of the sample should not be interpreted. should be interpreted in this way.
- the image decoding apparatus 100 may split the current coding unit 600 into a plurality of coding units 620a, 620b, and 620c, and may divide the current coding unit 600 into a plurality of coding units 620a, 620b, and 620c.
- a coding unit may be selected according to a criterion. For example, the image decoding apparatus 100 may select a coding unit 620b having a different size from among the coding units 620a, 620b, and 620c.
- the image decoding apparatus 100 provides (xa, ya) coordinates that are information indicating the position of the upper left sample 630a of the upper coding unit 620a, and the upper left sample of the middle coding unit 620b.
- Coding units 620a using (xb, yb) coordinates that are information indicating the position of 630b and (xc, yc) coordinates that are information indicating the position of the upper left sample 630c of the lower coding unit 620c , 620b, 620c) may determine the respective width or height.
- the image decoding apparatus 100 uses the coding units 620a, 620b, and (xa, ya), (xb, yb), (xc, yc), which are coordinates indicating the positions of the coding units 620a, 620b, and 620c. , 620c) may determine each size. According to an embodiment, the image decoding apparatus 100 may determine the width of the upper coding unit 620a as the width of the current coding unit 600 . The image decoding apparatus 100 may determine the height of the upper coding unit 620a as yb-ya. According to an embodiment, the image decoding apparatus 100 may determine the width of the middle coding unit 620b as the width of the current coding unit 600 .
- the image decoding apparatus 100 may determine the height of the central coding unit 620b as yc-yb. According to an embodiment, the image decoding apparatus 100 may determine the width or height of the lower coding unit using the width or height of the current coding unit and the width and height of the upper coding unit 620a and the middle coding unit 620b. . The image decoding apparatus 100 may determine a coding unit having a size different from that of other coding units based on the determined widths and heights of the coding units 620a, 620b, and 620c. Referring to FIG.
- the image decoding apparatus 100 may determine a middle coding unit 620b having a size different from that of an upper coding unit 620a and a lower coding unit 620c as a coding unit at a predetermined position.
- a coding unit at a predetermined position is determined by using the size of the coding unit determined based on sample coordinates.
- various processes for determining a coding unit at a predetermined position by comparing sizes of coding units determined according to predetermined sample coordinates may be used.
- the image decoding apparatus 100 determines (xd, yd) coordinates that are information indicating the position of the upper left sample 670a of the left coding unit 660a, and the location of the upper left sample 670b of the middle coding unit 660b. Coding units 660a, 660b, and 660c using (xe, ye) coordinates, which are information indicating Each width or height can be determined.
- the image decoding apparatus 100 uses the coding units 660a and 660b by using (xd, yd), (xe, ye), (xf, yf) which are coordinates indicating the positions of the coding units 660a, 660b, and 660c. , 660c) can determine each size.
- the image decoding apparatus 100 may determine the width of the left coding unit 660a as xe-xd. The image decoding apparatus 100 may determine the height of the left coding unit 660a as the height of the current coding unit 650 . According to an embodiment, the image decoding apparatus 100 may determine the width of the central coding unit 660b as xf-xe. The image decoding apparatus 100 may determine the height of the central coding unit 660b as the height of the current coding unit 600 .
- the width or height of the right coding unit 660c is the width or height of the current coding unit 650
- the width and height of the left coding unit 660a and the middle coding unit 660b can be determined using The image decoding apparatus 100 may determine a coding unit having a size different from that of other coding units based on the determined widths and heights of the coding units 660a, 660b, and 660c. Referring to FIG. 6 , the image decoding apparatus 100 may determine a middle coding unit 660b having a size different from that of a left coding unit 660a and a right coding unit 660c as a coding unit at a predetermined position.
- a coding unit at a predetermined position is determined by using the size of the coding unit determined based on sample coordinates.
- various processes for determining a coding unit at a predetermined position by comparing sizes of coding units determined according to predetermined sample coordinates may be used.
- 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.
- the image decoding apparatus 100 may select a coding unit at a predetermined position from among an odd number of coding units determined by dividing the current coding unit in consideration of the shape of the current coding unit. For example, if the current coding unit has a non-square shape having a width longer than a height, the image decoding apparatus 100 may determine a coding unit at a predetermined position in a horizontal direction. That is, the image decoding apparatus 100 may determine one of the coding units having different positions in the horizontal direction to set a limit on the coding unit. If the current coding unit has a non-square shape having a height longer than a width, the image decoding apparatus 100 may determine a coding unit at a predetermined position in a vertical direction. That is, the image decoding apparatus 100 may determine one of the coding units having different positions in the vertical direction to set a limit on the coding unit.
- the image decoding apparatus 100 may use information indicating a position of each of the even-numbered coding units in order to determine a coding unit at a predetermined position among the even-numbered coding units.
- the image decoding apparatus 100 may determine an even number of coding units by dividing the current coding unit (binary segmentation), and may determine a coding unit at a predetermined position by using information on positions of the even number of coding units. A detailed process for this may be omitted since it may correspond to the process of determining a coding unit at a predetermined position (eg, a center position) among the odd number of coding units described above with reference to FIG. 6 .
- 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.
- the image decoding apparatus 100 stores block shape information and a split form stored in a sample included in the middle coding unit during a splitting process in order to determine a coding unit located in the middle among coding units in which the current coding unit is split into a plurality of pieces. At least one of mode information may be used.
- the image decoding apparatus 100 may split the current coding unit 600 into a plurality of coding units 620a, 620b, and 620c based on the split form mode information, and the plurality of coding units ( A coding unit 620b located in the middle among 620a, 620b, and 620c may be determined. Furthermore, the image decoding apparatus 100 may determine a coding unit 620b located in the center in consideration of a position at which segmentation mode information is obtained. That is, the split form mode information of the current coding unit 600 may be obtained from the sample 640 positioned in the middle of the current coding unit 600 , and the current coding unit 600 is determined based on the split form mode information.
- the coding unit 620b including the sample 640 may be determined as a coding unit located in the center.
- information used to determine the coding unit located in the center should not be interpreted as being limited to segmentation mode information, and various types of information may be used in the process of determining the coding unit located in the center.
- 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.
- the image decoding apparatus 100 provides a coding unit (eg, divided into a plurality of coding units) at a predetermined position among a plurality of coding units 620a, 620b, and 620c determined by dividing the current coding unit 600.
- Partition form mode information obtained from a sample at a predetermined position within the current coding unit 600 (eg, a sample located at the center of the current coding unit 600 ) in order to determine a coding unit located at the center among the coding units is available.
- the image decoding apparatus 100 may determine the sample at the predetermined position in consideration of the block shape of the current coding unit 600 , and the image decoding apparatus 100 may determine the plurality of samples determined by dividing the current coding unit 600 .
- a coding unit 620b including a sample from which predetermined information (eg, segmentation mode information) can be obtained may be determined to set a predetermined limit. .
- the image decoding apparatus 100 may determine a sample 640 located in the center of the current coding unit 600 as a sample from which predetermined information can be obtained, and the image decoding apparatus (100) may place a predetermined limitation in the decoding process of the coding unit 620b including the sample 640.
- the location of the sample from which the predetermined information can be obtained should not be interpreted as being limited to the above-described location, but may be interpreted as samples at any location included in the coding unit 620b to be determined in order to impose a limitation.
- a position of a sample from which predetermined information can be obtained may be determined according to the shape of the current coding unit 600 .
- the block shape information may determine whether the shape of the current coding unit is a square or a non-square shape, and may determine a location of a sample from which predetermined information may be obtained according to the shape.
- the image decoding apparatus 100 is located on a boundary that divides at least one of the width and the height of the current coding unit in half by using at least one of the information on the width and the height of the current coding unit.
- a sample may be determined as a sample from which predetermined information can be obtained.
- the image decoding apparatus 100 selects one of samples including a boundary dividing the long side of the current coding unit in half. It can be determined as a sample from which information of
- the image decoding apparatus 100 may use the split mode information to determine a coding unit at a predetermined position among the plurality of coding units.
- the image decoding apparatus 100 may obtain segmentation mode information from a sample at a predetermined position included in a coding unit, and the image decoding apparatus 100 may generate a plurality of encoding units generated by dividing the current coding unit.
- the units may be divided by using division form mode information obtained from a sample at a predetermined position included in each of the plurality of coding units. That is, the coding unit may be recursively split using the split form mode information obtained from a sample at a predetermined position included in each coding unit. Since the process of recursive division of the coding unit has been described above with reference to FIG. 5 , a detailed description thereof will be omitted.
- the image decoding apparatus 100 may determine at least one coding unit by dividing the current coding unit, and determine the decoding order of the at least one coding unit to a predetermined block (eg, the current coding unit). ) can be determined according to
- FIG. 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.
- the image decoding apparatus 100 divides the first coding unit 700 in the vertical direction according to the split form mode information to determine the second coding units 710a and 710b or the first coding unit 700 . to determine the second coding units 730a and 730b by horizontally dividing the have.
- the image decoding apparatus 100 may determine the order so that the second coding units 710a and 710b determined by dividing the first coding unit 700 in the vertical direction are processed in the horizontal direction 710c. .
- the image decoding apparatus 100 may determine the processing order of the second coding units 730a and 730b determined by dividing the first coding unit 700 in the horizontal direction in the vertical direction 730c.
- the image decoding apparatus 100 divides the first coding unit 700 in the vertical direction and the horizontal direction and places the second coding units 750a, 750b, 750c, and 750d in one row after the coding units are processed.
- the coding units located in the next row may be determined according to a predetermined order in which they are processed (eg, a raster scan order or a z scan order 750e ).
- the image decoding apparatus 100 may recursively split the coding units.
- the image decoding apparatus 100 may determine a plurality of coding units 710a, 710b, 730a, 730b, 750a, 750b, 750c, and 750d by dividing the first coding unit 700, Each of the determined plurality of coding units 710a, 710b, 730a, 730b, 750a, 750b, 750c, and 750d may be recursively split.
- a method of splitting the plurality of coding units 710a, 710b, 730a, 730b, 750a, 750b, 750c, and 750d may correspond to a method of splitting the first coding unit 700 . Accordingly, each of the plurality of coding units 710a, 710b, 730a, 730b, 750a, 750b, 750c, and 750d may be independently divided into a plurality of coding units. Referring to FIG. 7 , the image decoding apparatus 100 may determine the second coding units 710a and 710b by dividing the first coding unit 700 in the vertical direction, and further, the second coding units 710a and 710b, respectively. can be independently partitioned or not partitioned.
- the image decoding apparatus 100 may horizontally split the second coding unit 710a on the left and split it into third coding units 720a and 720b, and the second coding unit 710b on the right. ) may not be divided.
- the processing order of the coding units may be determined based on a splitting process of the coding units.
- 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 image decoding apparatus 100 may determine the processing order of the third coding units 720a and 720b determined by dividing the second coding unit 710a on the left side independently of the second coding unit 710b on the right side. Since the second coding unit 710a on the left is split in the horizontal direction to determine the third coding units 720a and 720b, the third coding units 720a and 720b may be processed in the vertical direction 720c.
- the processing order of the second coding unit 710a on the left and the second coding unit 710b on the right corresponds to the horizontal direction 710c
- the right coding unit 710b may be processed. Since the above description is to explain a process in which a processing order of coding units is determined according to a coding unit before splitting, it should not be construed as limited to the above-described embodiment. It should be construed as being used in a variety of ways that can be independently processed in sequence.
- 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.
- the image decoding apparatus 100 may determine that the current coding unit is split into an odd number of coding units, based on the obtained split form mode information.
- a first coding unit 800 having a square shape may be divided into second coding units 810a and 810b having a non-square shape, and the second coding units 810a and 810b may be independently formed as second coding units 810a and 810b. It may be divided into 3 coding units 820a, 820b, 820c, 820d, and 820e.
- the image decoding apparatus 100 may determine a plurality of third coding units 820a and 820b by horizontally dividing a left coding unit 810a among the second coding units, and a right coding unit 810b. ) may be divided into odd number of third coding units 820c, 820d, and 820e.
- the image decoding apparatus 100 determines whether the third coding units 820a, 820b, 820c, 820d, and 820e can be processed in a predetermined order, and determines whether there is an odd-numbered coding unit. can decide Referring to FIG. 8 , the image decoding apparatus 100 may determine third coding units 820a, 820b, 820c, 820d, and 820e by recursively dividing the first coding unit 800 . The image decoding apparatus 100 determines the first coding unit 800, the second coding units 810a, 810b, or the third coding units 820a, 820b, and 820c based on at least one of block form information and split form mode information.
- a coding unit positioned on the right among the second coding units 810a and 810b may be divided into an odd number of third coding units 820c, 820d, and 820e.
- An order in which the plurality of coding units included in the first coding unit 800 are processed may be a predetermined order (eg, a z-scan order 830 ), and the image decoding apparatus ( 100 may determine whether the third coding unit 820c, 820d, or 820e determined by dividing the right second coding unit 810b into odd numbers satisfies a condition for processing according to the predetermined order.
- the image decoding apparatus 100 satisfies a condition in which the third coding units 820a, 820b, 820c, 820d, and 820e included in the first coding unit 800 can be processed in a predetermined order. whether at least one of the widths and heights of the second coding units 810a and 810b is split in half according to the boundary of the third coding units 820a, 820b, 820c, 820d, and 820e; related For example, the third coding units 820a and 820b determined by dividing the height of the non-square left second coding unit 810a in half may satisfy the condition.
- the boundary between the third coding units 820c, 820d, and 820e determined by dividing the right second coding unit 810b into three coding units cannot divide the width or height of the right second coding unit 810b in half. Therefore, it may be determined that the third coding units 820c, 820d, and 820e do not satisfy the condition. If the condition is not satisfied, the image decoding apparatus 100 may determine that the scan order is disconnected, and determine that the right second coding unit 810b is divided into an odd number of coding units based on the determination result. According to an embodiment, when the image decoding apparatus 100 is divided into an odd number of coding units, a predetermined restriction may be placed on a coding unit at a predetermined position among the divided coding units. Since the embodiment has been described above, a detailed description thereof will be omitted.
- FIG 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.
- the image decoding apparatus 100 may split the first coding unit 900 based on the division form mode information obtained through the receiver 110 .
- the square-shaped first coding unit 900 may be divided into four coding units having a square shape or may be divided into a plurality of coding units having a non-square shape.
- the image decoding apparatus 100 selects the first coding unit 900 . It may be divided into a plurality of non-square coding units.
- the image decoding apparatus 100 may 900) may be split into second coding units 910a, 910b, and 910c determined by splitting in the vertical direction or second coding units 920a, 920b, and 920c determined by splitting in the horizontal direction as an odd number of coding units.
- the image decoding apparatus 100 may process the second coding units 910a, 910b, 910c, 920a, 920b, and 920c included in the first coding unit 900 in a predetermined order. may be determined, and the condition is whether at least one of a width and a height of the first coding unit 900 is split in half according to a boundary between the second coding units 910a, 910b, 910c, 920a, 920b, and 920c. is related to whether Referring to FIG.
- the boundary between the second coding units 910a , 910b , and 910c determined by dividing the square-shaped first coding unit 900 in the vertical direction divides the width of the first coding unit 900 in half. Therefore, it may be determined that the first coding unit 900 does not satisfy a condition for processing according to a predetermined order. Also, since the boundary between the second coding units 920a, 920b, and 920c determined by dividing the square-shaped first coding unit 900 in the horizontal direction does not split the width of the first coding unit 900 in half, the It may be determined that one coding unit 900 does not satisfy a condition for processing according to a predetermined order.
- the image decoding apparatus 100 may determine that the scan order is disconnected, and may determine that the first coding unit 900 is divided into an odd number of coding units based on the determination result. According to an embodiment, when the image decoding apparatus 100 is divided into an odd number of coding units, a predetermined restriction may be placed on a coding unit at a predetermined position among the divided coding units. Since the embodiment has been described above, a detailed description thereof will be omitted.
- the image decoding apparatus 100 may determine various types of coding units by dividing the first coding unit.
- the image decoding apparatus 100 may split a square-shaped first coding unit 900 and a non-square-shaped first coding unit 930 or 950 into coding units having various forms. .
- FIG. 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
- the image decoding apparatus 100 converts the square-shaped first coding unit 1000 to the non-square-shaped second coding unit 1010a, based on the segmentation mode information obtained through the receiving unit 110 .
- 1010b, 1020a, 1020b) may be determined.
- the second coding units 1010a, 1010b, 1020a, and 1020b may be split independently. Accordingly, the image decoding apparatus 100 may determine whether to split into a plurality of coding units or not to split based on the split form mode information related to each of the second coding units 1010a, 1010b, 1020a, and 1020b.
- the image decoding apparatus 100 horizontally divides the left second coding unit 1010a having a non-square shape determined by dividing the first coding unit 1000 in the vertical direction to obtain a third coding unit ( 1012a, 1012b) can be determined.
- the right second coding unit 1010b moves in the same horizontal direction as the split direction of the left second coding unit 1010a. It can be restricted so that it cannot be divided into . If the right second coding unit 1010b is split in the same direction to determine the third coding units 1014a and 1014b, the left second coding unit 1010a and the right second coding unit 1010b are respectively horizontally divided.
- the third coding units 1012a, 1012b, 1014a, and 1014b may be determined. However, this is the same result as when the image decoding apparatus 100 splits the first coding unit 1000 into four square-shaped second coding units 1030a, 1030b, 1030c, and 1030d based on the split shape mode information. It may be inefficient in terms of image decoding.
- the image decoding apparatus 100 divides the second coding unit 1020a or 1020b in the non-square shape determined by dividing the first coding unit 1000 in the horizontal direction in the vertical direction to obtain a third coding unit. (1022a, 1022b, 1024a, 1024b) may be determined.
- a third coding unit. (1022a, 1022b, 1024a, 1024b) may be determined.
- another second coding unit eg, the lower The coding unit 1020b
- the upper second coding unit 1020a cannot be split in the same vertical direction as the split direction.
- FIG. 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.
- the image decoding apparatus 100 may determine the second coding units 1110a, 1110b, 1120a, 1120b, etc. by dividing the first coding unit 1100 based on the segmentation shape mode information.
- the split shape mode information may include information on various shapes into which the coding unit can be split, but information for splitting the coding units into four square coding units may not be included in the information on the various shapes.
- the image decoding apparatus 100 cannot split the square-shaped first coding unit 1100 into four square-shaped second coding units 1130a, 1130b, 1130c, and 1130d.
- the image decoding apparatus 100 may determine the non-square second coding units 1110a, 1110b, 1120a, 1120b, etc., based on the division shape mode information.
- the image decoding apparatus 100 may independently split the non-square second coding units 1110a, 1110b, 1120a, 1120b, etc., respectively.
- Each of the second coding units 1110a, 1110b, 1120a, 1120b, etc. may be split in a predetermined order through a recursive method, which is based on a method in which the first coding unit 1100 is split based on the split shape mode information. It may be a corresponding partitioning method.
- the image decoding apparatus 100 may determine the square-shaped third coding units 1112a and 1112b by dividing the left second coding unit 1110a in the horizontal direction, and the right second coding unit 1110b
- the third coding units 1114a and 1114b may be divided in the horizontal direction to determine the square-shaped third coding units 1114a and 1114b.
- the image decoding apparatus 100 may determine the square-shaped third coding units 1116a, 1116b, 1116c, and 1116d by dividing both the left second coding unit 1110a and the right second coding unit 1110b in the horizontal direction. have.
- the coding unit may be determined in the same form as when the first coding unit 1100 is divided into four square-shaped second coding units 1130a, 1130b, 1130c, and 1130d.
- the image decoding apparatus 100 may determine the square-shaped third coding units 1122a and 1122b by dividing the upper second coding unit 1120a in the vertical direction, and the lower second coding unit 1120b ) may be divided in the vertical direction to determine the third coding units 1124a and 1124b having a square shape. Furthermore, the image decoding apparatus 100 may determine the square-shaped third coding units 1126a, 1126b, 1126a, and 1126b by dividing both the upper second coding unit 1120a and the lower second coding unit 1120b in the vertical direction. have. In this case, the coding unit may be determined in the same form as when the first coding unit 1100 is divided into four square-shaped second coding units 1130a, 1130b, 1130c, and 1130d.
- FIG. 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.
- the image decoding apparatus 100 may split the first coding unit 1200 based on the division shape mode information.
- the image decoding apparatus 100 When the block shape is a square and the split shape mode information indicates that the first coding unit 1200 is split in at least one of a horizontal direction and a vertical direction, the image decoding apparatus 100 generates the first coding unit 1200 .
- the second coding unit eg, 1210a, 1210b, 1220a, 1220b, etc.
- the non-square second coding units 1210a, 1210b, 1220a, and 1220b determined by dividing the first coding unit 1200 only in the horizontal direction or the vertical direction are determined based on the split form mode information for each. can be divided independently.
- the image decoding apparatus 100 divides the second coding units 1210a and 1210b generated by dividing the first coding unit 1200 in the vertical direction, respectively, in the horizontal direction to obtain the third coding units 1216a, 1216b, 1216c and 1216d) may be determined, and second coding units 1220a and 1220b generated by dividing the first coding unit 1200 in the horizontal direction are divided in the horizontal direction to respectively split the third coding units 1226a, 1226b, and 1226c. , 1226d) can be determined. Since the process of dividing the second coding units 1210a, 1210b, 1220a, and 1220b has been described above with reference to FIG. 11 , a detailed description thereof will be omitted.
- the image decoding apparatus 100 may process coding units according to a predetermined order. Since the characteristics of processing coding units according to a predetermined order have been described above with reference to FIG. 7 , a detailed description thereof will be omitted. Referring to FIG. 12 , the image decoding apparatus 100 divides the square-shaped first coding unit 1200 into four square-shaped third coding units 1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, and 1226d. ) can be determined.
- the image decoding apparatus 100 determines the processing order of the third coding units 1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, and 1226d according to the form in which the first coding unit 1200 is divided. can decide
- the image decoding apparatus 100 divides the second coding units 1210a and 1210b generated by splitting in the vertical direction, respectively, in the horizontal direction to determine the third coding units 1216a, 1216b, 1216c, and 1216d. , and the image decoding apparatus 100 first processes the third coding units 1216a and 1216c included in the left second coding unit 1210a in the vertical direction, and then includes the second coding unit 1210b on the right.
- the third coding units 1216a, 1216b, 1216c, and 1216d may be processed according to the order 1217 of processing the third coding units 1216b and 1216d in the vertical direction.
- the image decoding apparatus 100 divides the second coding units 1220a and 1220b generated by being split in the horizontal direction, respectively, in the vertical direction to determine the third coding units 1226a, 1226b, 1226c, and 1226d. , and the image decoding apparatus 100 processes the third coding units 1226a and 1226b included in the upper second coding unit 1220a in the horizontal direction first, and then includes the second coding unit 1220b at the bottom.
- the third coding units 1226a, 1226b, 1226c, and 1226d may be processed according to an order 1227 of horizontally processing the third coding units 1226c and 1226d.
- the second coding units 1210a, 1210b, 1220a, and 1220b may be split to determine the square-shaped third coding units 1216a, 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, and 1226d, respectively. have.
- the second coding units 1210a and 1210b determined by splitting in the vertical direction and the second coding units 1220a and 1220b determined by splitting in the horizontal direction are split in different shapes, but a third coding unit 1216a determined later , 1216b, 1216c, 1216d, 1226a, 1226b, 1226c, and 1226d), eventually, the first coding unit 1200 is split into coding units having the same shape.
- the image decoding apparatus 100 divides the coding units recursively through different processes based on the segmentation shape mode information to determine the coding units of the same shape as a result, but converts the plurality of coding units determined in the same shape into different coding units. can be processed in sequence.
- FIG. 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.
- the image decoding apparatus 100 may determine the depth of the coding unit according to a predetermined criterion.
- the predetermined criterion may be the length of the long side of the coding unit.
- the image decoding apparatus 100 determines that the depth of the current coding unit is greater than the depth of the coding unit before splitting. It can be determined that the depth is increased by n.
- a coding unit having an increased depth is expressed as a coding unit having a lower depth.
- the image decoding apparatus 100 displays the square shape information based on block shape information (for example, block shape information may indicate '0: SQUARE').
- a second coding unit 1302 , a third coding unit 1304 , and the like of a lower depth may be determined by dividing one coding unit 1300 . If the size of the square-shaped first coding unit 1300 is 2Nx2N, the second coding unit 1302 determined by dividing the width and height of the first coding unit 1300 by 1/2 may have a size of NxN. have. Furthermore, the third coding unit 1304 determined by dividing the width and height of the second coding unit 1302 by 1/2 size may have a size of N/2xN/2.
- the width and height of the third coding unit 1304 correspond to 1/4 times of the first coding unit 1300 .
- the depth of the first coding unit 1300 is D
- the depth of the second coding unit 1302 that is 1/2 times the width and the height of the first coding unit 1300 may be D+1
- the depth of the third coding unit 1304 that is 1/4 times the width and height of 1300 may be D+2.
- 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 image decoding apparatus 100 divides the first coding unit 1310 or 1320 having a non-square shape into a second coding unit 1312 or 1322 having a lower depth; A third coding unit 1314 or 1324 may be determined.
- the image decoding apparatus 100 may determine a second coding unit (eg, 1302, 1312, 1322, etc.) by dividing at least one of a width and a height of the first coding unit 1310 having an Nx2N size. That is, the image decoding apparatus 100 may partition the first coding unit 1310 in the horizontal direction to determine a second coding unit 1302 having a size of NxN or a second coding unit 1322 having a size of NxN/2, The second coding unit 1312 of size N/2xN may be determined by dividing in the horizontal direction and the vertical direction.
- a second coding unit eg, 1302, 1312, 1322, etc.
- the image decoding apparatus 100 determines a second coding unit (eg, 1302, 1312, 1322, etc.) by dividing at least one of a width and a height of the first coding unit 1320 having a size of 2NxN.
- a second coding unit eg, 1302, 1312, 1322, etc.
- the image decoding apparatus 100 may partition the first coding unit 1320 in the vertical direction to determine a second coding unit 1302 having a size of NxN or a second coding unit 1312 having a size of N/2xN
- the second coding unit 1322 having a size of NxN/2 may be determined by dividing in the horizontal direction and the vertical direction.
- the image decoding apparatus 100 determines a third coding unit (eg, 1304, 1314, 1324, etc.) by dividing at least one of a width and a height of the NxN second coding unit 1302 .
- a third coding unit eg, 1304, 1314, 1324, etc.
- the image decoding apparatus 100 divides the second coding unit 1302 in the vertical direction and the horizontal direction to determine the third coding unit 1304 of size N/2xN/2 or the second coding unit 1304 of size N/4xN/2.
- 3 coding units 1314 may be determined or a third coding unit 1324 having a size of N/2xN/4 may be determined.
- the image decoding apparatus 100 divides at least one of a width and a height of the N/2xN second coding unit 1312 into a third coding unit (eg, 1304, 1314, 1324, etc.) may decide That is, the image decoding apparatus 100 divides the second coding unit 1312 in the horizontal direction to obtain a third coding unit 1304 having a size of N/2xN/2 or a third coding unit 1324 having a size of N/2xN/4. ) may be determined or the third coding unit 1314 having a size of N/4xN/2 may be determined by dividing it in the vertical and horizontal directions.
- a third coding unit eg, 1304, 1314, 1324, etc.
- the image decoding apparatus 100 divides at least one of a width and a height of the second coding unit 1322 having a size of NxN/2 to a third coding unit (eg, 1304, 1314, 1324, etc.) may decide That is, the image decoding apparatus 100 divides the second coding unit 1322 in the vertical direction to obtain a third coding unit 1304 having a size of N/2xN/2 or a third coding unit 1314 having a size of N/4xN/2. .
- a third coding unit eg, 1304, 1314, 1324, etc.
- the image decoding apparatus 100 may divide the square-shaped coding units (eg, 1300 , 1302 , 1304 ) in a horizontal direction or a vertical direction.
- the first coding unit 1300 having the size of 2Nx2N is divided in the vertical direction to determine the first coding unit 1310 having the size of Nx2N, or the first coding unit 1320 having the size of 2NxN is determined by dividing the first coding unit 1320 by dividing it in the horizontal direction.
- the depth of the coding unit determined by dividing the first coding unit 1300 having a size of 2Nx2N in the horizontal or vertical direction is the first coding unit. It may be the same as the depth of the unit 1300 .
- a width and a height of the third coding unit 1314 or 1324 may correspond to 1/4 times of the first coding unit 1310 or 1320 .
- the depth of the first coding unit 1310 or 1320 is D
- the depth of the second coding unit 1312 or 1322 that is 1/2 times the width and height of the first coding unit 1310 or 1320 may be D+1.
- a depth of the third coding unit 1314 or 1324 that is 1/4 times the width and height of the first coding unit 1310 or 1320 may be D+2.
- 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.
- PID part index
- the image decoding apparatus 100 may determine a second coding unit having various shapes by dividing the first coding unit 1400 having a square shape. Referring to FIG. 14 , the image decoding apparatus 100 divides the first coding unit 1400 in at least one of a vertical direction and a horizontal direction according to segmentation mode mode information to divide the second coding unit 1402a, 1402b, 1404a. , 1404b, 1406a, 1406b, 1406c, 1406d).
- the image decoding apparatus 100 may determine the second coding units 1402a , 1402b , 1404a , 1404b , 1406a , 1406b , 1406c and 1406d based on the split form mode information on the first coding unit 1400 . .
- the second coding units 1402a , 1402b , 1404a , 1404b , 1406a , 1406b , 1406c , and 1406d determined according to the split shape mode information for the square-shaped first coding unit 1400 have a long side length.
- the depth may be determined based on .
- the first coding unit ( 1400) and the non-square second coding units 1402a, 1402b, 1404a, and 1404b may have the same depth as D.
- the image decoding apparatus 100 divides the first coding unit 1400 into four square-shaped second coding units 1406a, 1406b, 1406c, and 1406d based on the split shape mode information
- the length of one side of the second coding units 1406a, 1406b, 1406c, and 1406d is 1/2 the length of one side of the first coding unit 1400
- the length of one side of the second coding units 1406a, 1406b, 1406c, and 1406d is The depth may be a depth of D+1, which is one depth lower than D, which is a depth of the first coding unit 1400 .
- the image decoding apparatus 100 divides the first coding unit 1410 having a height longer than the width in the horizontal direction according to the split shape mode information to a plurality of second coding units 1412a, 1412b, and 1414a. , 1414b, 1414c). According to an embodiment, the image decoding apparatus 100 divides the first coding unit 1420 having a width longer than the height in the vertical direction according to the split shape mode information to a plurality of second coding units 1422a, 1422b, and 1424a. , 1424b, 1424c).
- the second coding units 1412a, 1412b, 1414a, 1414b, 1414c. 1422a, 1422b, 1424a which are determined according to the partition shape mode information on the non-square-shaped first coding unit 1410 or 1420;
- the depths of 1424b and 1424c may be determined based on the length of the long side.
- the length of one side of the square-shaped second coding units 1412a and 1412b is 1/2 the length of one side of the non-square-shaped first coding unit 1410 whose height is longer than the width, it is a square
- the depth of the second coding units 1412a and 1412b in the form is D+1, which is a depth one depth lower than the depth D of the first coding unit 1410 in the non-square form.
- the image decoding apparatus 100 may split the non-square-shaped first coding unit 1410 into an odd number of second coding units 1414a, 1414b, and 1414c based on the split shape mode information.
- the odd number of second coding units 1414a, 1414b, and 1414c may include non-square second coding units 1414a and 1414c and square second coding units 1414b.
- the length of the long side of the second coding units 1414a and 1414c in the non-square shape and the length of one side of the second coding unit 1414b in the square shape are 1/ of the length of the side of the first coding unit 1410 .
- the depths of the second coding units 1414a, 1414b, and 1414c may be a depth of D+1, which is one depth lower than the depth D of the first coding unit 1410 .
- the image decoding apparatus 100 relates to the first coding unit 1420 in a non-square shape, in which the width is longer than the height, in a method corresponding to the above method of determining the depths of the coding units related to the first coding unit 1410 . Depths of coding units may be determined.
- the image decoding apparatus 100 determines the size ratio between the coding units. Based on the index can be determined.
- a coding unit 1414b located in the middle among the coding units 1414a, 1414b, and 1414c divided into odd numbers has the same width as other coding units 1414a and 1414c but has a different height. It may be twice the height of the fields 1414a and 1414c. That is, in this case, the coding unit 1414b positioned in the center may include two other coding units 1414a and 1414c.
- the image decoding apparatus 100 may determine whether the odd-numbered coding units are not of the same size, based on whether there is a discontinuity in the index for classification between the divided coding units.
- the image decoding apparatus 100 may determine whether it is split in a specific split form based on a value of an index for classifying a plurality of coding units determined by splitting from the current coding unit. Referring to FIG. 14 , the image decoding apparatus 100 determines an even number of coding units 1412a and 1412b or an odd number of coding units 1414a and 1414b by dividing a first coding unit 1410 having a height longer than a width by dividing the first coding unit 1410 . , 1414c) can be determined. The image decoding apparatus 100 may use an index PID indicating each coding unit to distinguish each of the plurality of coding units. According to an embodiment, the PID may be obtained from a sample (eg, an upper left sample) at a predetermined position of each coding unit.
- a sample eg, an upper left sample
- the image decoding apparatus 100 may determine a coding unit at a predetermined position among the divided and determined coding units using an index for classifying coding units. According to an embodiment, when the split form mode information for the first coding unit 1410 having a height longer than a width is divided into three coding units, the image decoding apparatus 100 may display the first coding unit 1410 . may be divided into three coding units 1414a, 1414b, and 1414c. The image decoding apparatus 100 may allocate an index to each of the three coding units 1414a, 1414b, and 1414c. The image decoding apparatus 100 may compare indices for each coding unit to determine a middle coding unit among the coding units divided into odd numbers.
- the image decoding apparatus 100 encodes a coding unit 1414b having an index corresponding to a middle value among indices based on the indices of the coding units, and encodes a middle position among the coding units determined by dividing the first coding unit 1410 . can be determined as a unit. According to an embodiment, the image decoding apparatus 100 may determine the index based on a size ratio between the coding units when the coding units are not the same size when determining the index for classifying the divided coding units. . Referring to FIG. 14 , a coding unit 1414b generated by splitting a first coding unit 1410 is formed of coding units 1414a and 1414c having the same width as other coding units 1414a and 1414c but different heights.
- the image decoding apparatus 100 may determine that the image decoding apparatus 100 is divided into a plurality of coding units including coding units having different sizes from other coding units.
- the split mode information indicates that the split mode information is divided into an odd number of coding units according to The current coding unit may be split in the form.
- the image decoding apparatus 100 may determine a middle coding unit having a different size by using an index (PID) of the coding unit.
- index and the size or position of the coding unit at a predetermined position to be determined are specific for describing an embodiment, they should not be construed as being limited thereto, and various indexes and positions and sizes of coding units may be used. should be interpreted
- the image decoding apparatus 100 may use a predetermined data unit in which the recursive division of the coding unit is started.
- FIG. 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.
- 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.
- a predetermined data unit will be referred to as a reference data unit.
- the reference data unit may indicate a predetermined size and shape.
- the reference coding unit may include MxN samples.
- 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.
- the image decoding apparatus 100 may divide the current picture into a plurality of reference data units. According to an embodiment, the image decoding apparatus 100 may divide a plurality of reference data units for dividing a current picture by using division form mode information for each reference data unit. The division process of the reference data unit may correspond to the division process using a quad-tree structure.
- the image decoding apparatus 100 may determine in advance the minimum size that a reference data unit included in the current picture can have. Accordingly, the image decoding apparatus 100 may determine a reference data unit of various sizes having a size equal to or greater than the minimum size, and may determine at least one coding unit using the segmentation mode information based on the determined reference data unit. .
- the image decoding apparatus 100 may use a reference coding unit 1500 having a square shape or a reference coding unit 1502 having a non-square shape.
- the shape and size of the reference coding unit may include various data units (eg, a sequence, a picture, a slice, a slice segment) that may include at least one reference coding unit. slice segment), a tile, a tile group, a maximum coding unit, etc.).
- the receiving unit 110 of the image decoding apparatus 100 may obtain at least one of information on a shape of a reference coding unit and information on a size of a reference coding unit from a bitstream for each of the various data units. .
- the process of determining at least one coding unit included in the square-shaped reference coding unit 1500 has been described above through the process of splitting the current coding unit 300 of FIG. 3
- the non-square-shaped reference coding unit 1502 has been described above. Since the process of determining at least one coding unit included in ) has been described above through the process of splitting the current coding unit 400 or 450 of FIG. 4 , a detailed description thereof will be omitted.
- the image decoding apparatus 100 determines the size and shape of the reference coding unit according to some data units determined in advance based on a predetermined condition, and an index for identifying the size and shape of the reference coding unit. is available. That is, the receiving unit 110 receives the bitstream from the various data units (eg, a sequence, a picture, a slice, a slice segment, a tile, a tile group, a maximum coding unit, etc.) under a predetermined condition (eg, a size smaller than a slice). As a data unit that satisfies a data unit having The image decoding apparatus 100 may determine the size and shape of the reference data unit for each data unit satisfying the predetermined condition by using the index.
- the various data units eg, a sequence, a picture, a slice, a slice segment, a tile, a tile group, a maximum coding unit, etc.
- a predetermined condition eg, a size smaller than a slice.
- the information on the shape of the reference coding unit and the information on the size of the reference coding unit are obtained and used from the bitstream for each data unit having a relatively small size, use efficiency of the bitstream may be poor.
- the index may be acquired and used. In this case, at least one of the size and shape of the reference coding unit corresponding to the index indicating the size and shape of the reference coding unit may be predetermined.
- the image decoding apparatus 100 selects at least one of a size and a shape of a predetermined reference coding unit according to an index, thereby selecting at least one of a size and a shape of a reference coding unit included in a data unit serving as a reference for obtaining an index. can decide
- the image decoding apparatus 100 may use at least one reference coding unit included in one maximum coding unit. That is, at least one reference coding unit may be included in the maximum coding unit for splitting an image, and the coding unit may be determined through a recursive segmentation process of each reference coding unit. According to an embodiment, at least one of the width and the height of the maximum coding unit may correspond to an integer multiple of at least one of the width and the height of the reference coding unit. According to an embodiment, the size of the reference coding unit may be a size obtained by dividing the largest coding unit n times according to a quad tree structure.
- the image decoding apparatus 100 may determine the reference coding unit by dividing the maximum coding unit n times according to the quad tree structure, and according to various embodiments, divide the reference coding unit into at least one of block form information and split form mode information. It can be divided based on one.
- the image decoding apparatus 100 may obtain and use block shape information indicating the shape of the current coding unit or partition shape mode information indicating a method of splitting the current coding unit from the bitstream.
- the division type mode information may be included in a bitstream related to various data units.
- the image decoding apparatus 100 may include a sequence parameter set, a picture parameter set, a video parameter set, a slice header, and a slice segment header. Segmentation mode information included in a segment header, a tile header, and a tile group header may be used.
- the image decoding apparatus 100 may obtain and use a syntax element corresponding to block form information or split form mode information from a bitstream from a bitstream for each maximum coding unit, reference coding unit, and processing block.
- the image decoding apparatus 100 may determine an image division rule.
- the division rule may be predetermined between the image decoding apparatus 100 and the image encoding apparatus 2200 .
- the image decoding apparatus 100 may determine an image division rule based on information obtained from the bitstream.
- the image decoding apparatus 100 includes a sequence parameter set, a picture parameter set, a video parameter set, a slice header, a slice segment header,
- the division rule may be determined based on information obtained from at least one of a tile header and a tile group header.
- the image decoding apparatus 100 may determine a division rule differently according to a frame, a slice, a tile, a temporal layer, a maximum coding unit, or a coding unit.
- the image decoding apparatus 100 may determine a splitting rule based on a block shape of a coding unit.
- the block form may include a size, a shape, a ratio of a width and a height, and a direction of the coding unit.
- the image decoding apparatus 100 may determine in advance to determine the division rule based on the block shape of the coding unit.
- the present invention is not limited thereto.
- the image decoding apparatus 100 may determine a division rule based on information obtained from the received bitstream.
- the shape of the coding unit may include a square and a non-square.
- the image decoding apparatus 100 may determine the shape of the coding unit as a square.
- the image decoding apparatus 100 may determine the shape of the coding unit as a non-square shape.
- 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 image decoding apparatus 100 may apply the same segmentation rule to coding units classified into the same group. For example, the image decoding apparatus 100 may classify coding units having the same long side length into the same size. Also, the image decoding apparatus 100 may apply the same splitting rule to coding units having the same long side length.
- 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.
- 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.
- the image decoding apparatus 100 may adaptively determine the splitting rule based on the size of the coding unit.
- the image decoding apparatus 100 may differently determine the allowable division mode based on the size of the coding unit. For example, the image decoding apparatus 100 may determine whether splitting is permitted based on the size of the coding unit.
- the image decoding apparatus 100 may determine the division direction according to the size of the coding unit.
- the image decoding apparatus 100 may determine an allowable splitting type according to the size of the coding unit.
- Determining the division rule based on the size of the coding unit may be a division rule predetermined among the image decoding apparatuses 100 . Also, the image decoding apparatus 100 may determine a division rule based on information obtained from the bitstream.
- the image decoding apparatus 100 may adaptively determine the division rule based on the position of the coding unit.
- the image decoding apparatus 100 may adaptively determine a division rule based on a position occupied by a coding unit in an image.
- the image decoding apparatus 100 may determine a splitting rule so that coding units generated by different splitting paths do not have the same block shape.
- the present invention is not limited thereto, and coding units generated by different split paths may have the same block shape. Coding units generated through different split paths may have different decoding processing orders. Since the decoding processing sequence has been described with reference to FIG. 12, a detailed description thereof will be omitted.
- 16 is a diagram illustrating a block diagram of an image encoding and decoding system.
- the encoder 1610 of the image encoding and decoding system 1600 transmits an encoded bitstream of an image, and the decoder 1650 receives and decodes the bitstream to output a reconstructed image.
- the decoding stage 1650 may have a similar configuration to the image decoding apparatus 100 .
- the prediction encoder 1615 outputs a reference image through inter prediction and intra prediction, and the transform and quantization unit 1616 quantizes residual data between the reference image and the current input image with a quantized transform coefficient. quantize and output.
- the entropy encoder 1625 encodes and transforms the quantized transform coefficient, and outputs it as a bitstream.
- the quantized transform coefficient is reconstructed into spatial domain data through inverse quantization and inverse transform unit 1630 , and the restored spatial domain data passes through deblocking filtering unit 1635 and loop filtering unit 1640 and is output as a reconstructed image. do.
- the reconstructed image may be used as a reference image of the next input image through the prediction encoder 1615 .
- the encoded image data of the bitstream received by the decoder 1650 is restored to residual data in the spatial domain through the entropy decoder 1655 and the inverse quantization and inverse transform unit 1660 .
- the reference image and residual data output from the prediction decoding unit 1675 are combined to form image data in the spatial domain, and the deblocking filtering unit 1665 and the loop filtering unit 1670 filter the image data in the spatial domain. may be performed to output a restored image for the current original image.
- the reconstructed image may be used as a reference image for the next original image by the prediction decoder 1675 .
- the loop filtering unit 1640 of the encoding stage 1610 performs loop filtering using filter information input according to a user input or system setting.
- the filter information used by the loop filtering unit 1640 is output to the entropy encoding unit 1610 and transmitted to the decoding end 1650 together with the encoded image data.
- the loop filtering unit 1670 of the decoding stage 1650 may perform loop filtering based on filter information input from the decoding stage 1650 .
- a video encoding method and decoding method, a video encoding apparatus, and a decoding apparatus propose a method of performing prediction based on an affine model in consideration of a coding order of coding units.
- 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 .
- 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.
- 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 of a block' means whether the corresponding block is already encoded or decoded and thus information of the corresponding block can be obtained.
- 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.
- the current block may be marked as unavailable.
- the current block since the neighboring block may be decoded using the encoding information of the current block, the current block may be displayed as available.
- the current block may be displayed as not available.
- '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.
- motion information motion vector, prediction direction (L0) of the corresponding block
- -pred, L1-pred or Bi-pred it means whether the reference picture index
- 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.
- the motion information of the current block may be displayed as unavailable.
- 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.
- motion information of the current block may be displayed as unavailable.
- 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.
- 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.
- 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.
- 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
- 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).
- 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.
- 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. .
- FIG. 17 is a block diagram of a video decoding apparatus according to an embodiment.
- a video decoding apparatus 1700 may include an inter prediction unit 1710 and a restoration unit 1720 .
- the video decoding apparatus 1700 obtains a bitstream generated as a result of encoding an image, determines positions of blocks divided from a picture based on information included in the bitstream, and decodes blocks such as a maximum coding unit and a coding unit. can do.
- the video decoding apparatus 1700 may include a central processor (not shown) that controls the inter prediction unit 1710 and the reconstructor 1720 .
- the video decoding apparatus 1700 may be implemented as the inter prediction unit 1710 and the reconstructing unit 1720 are operated by their own processors (not shown), and the processors (not shown) operate organically with each other. have.
- the inter prediction unit 1710 and the restoration unit 1720 may be operated under the control of an external processor (not shown) of the video decoding apparatus 1700 .
- the video decoding apparatus 1700 may include one or more data storage units (not shown) in which input/output data of the inter prediction unit 1710 and the restoration unit 1720 are stored.
- the video decoding apparatus 1700 may include a memory controller (not shown) for controlling data input/output of a data storage unit (not shown).
- the video decoding apparatus 1700 may be included in the above-described image decoding apparatus 100 .
- the inter predictor 1710 and the reconstructor 1720 may correspond to the decoder 120 of the image decoding apparatus 100 .
- the video decoding apparatus 1700 may correspond to the decoder 1650 of the image encoding and decoding system described above with reference to FIG. 16 .
- the inter prediction unit 1710 and the reconstructor 1720 may correspond to the inter prediction encoder 1670 of the decoder 1650 .
- the video decoding apparatus 1700 receives a bitstream generated as a result of encoding an image.
- the bitstream may include information about the current picture.
- a picture may include one or more maximum coding units.
- the video decoding apparatus 1700 may determine the position of the current block in the picture based on information obtained from the bitstream.
- the current block is a block generated by being divided according to a tree structure from a picture, and may correspond to, for example, a maximum coding unit or a coding unit.
- the video decoding apparatus 1700 may determine whether the current block is further divided into sub-blocks of a lower depth, and may determine a tree structure of the current block. Compared to the current depth of the current block, the lower depth may be determined by increasing the number of divisions from the current block to the lower block.
- blocks located in the tree leaf are blocks that are no longer divided. Accordingly, the video decoding apparatus 1700 may decode the blocks by performing inverse quantization, inverse transformation, and prediction on one or more blocks that are no longer divided.
- the video decoding apparatus 1700 may generate prediction samples of the current block by performing prediction on the current block.
- the video decoding apparatus 1700 may perform inverse transform on the current block to generate residual samples of the current block.
- the video decoding apparatus 1700 may generate reconstructed samples of the current block using prediction samples of the current block and residual samples of the current block.
- the video decoding apparatus 1700 may reconstruct the current picture by reconstructing samples for each block.
- the video decoding apparatus 1700 determines a reference sample from among samples of a spatial neighboring block located in the intra prediction direction using intra prediction information of the current block, and refers Prediction samples corresponding to the current block may be determined using the sample.
- the video decoding apparatus 1700 may reconstruct the current block by using the motion vector of the current block.
- the video decoding apparatus 1700 may determine a reference block in a reference picture by using a motion vector of the current block, and determine prediction samples corresponding to the current block from reference samples included in the reference block.
- the video decoding apparatus 1700 may reconstruct transform coefficients using the transform coefficient level obtained from the bitstream, and may reconstruct residual samples by performing inverse quantization and inverse transform on the transform coefficients.
- the video decoding apparatus 1700 may determine reconstructed samples of the current block by combining prediction samples and residual samples corresponding to the current block.
- the video decoding apparatus 1700 may reconstruct the motion vector related information of the current block by using the motion vector related information of the neighboring blocks of the current block.
- the video decoding apparatus 1700 may determine a reference block in a reference picture by using a motion vector of the current block, and determine prediction samples corresponding to the current block from reference samples included in the reference block.
- the video decoding apparatus 1700 may reconstruct transform coefficients using the transform coefficient level obtained from the bitstream, and may reconstruct residual samples by performing inverse quantization and inverse transform on the transform coefficients.
- the video decoding apparatus 1700 may determine reconstructed samples of the current block by combining prediction samples and residual samples corresponding to the current block.
- 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 video decoding apparatus 1700 may determine reconstructed samples of the current block by using the prediction samples of the current block as they are.
- the merge mode 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.
- 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.
- 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.
- the residual component is not signaled in the skip triangular mode, but the residual component may be signaled in the merge triangular mode.
- the inter prediction unit 1710 may configure a merge candidate list and perform motion compensation by using motion information of a candidate indicated by a received index from among the configured candidate list as motion information of the current block.
- 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).
- HMVP history-based MVP
- PAMVP pairwise average MVP
- the inter prediction unit 1710 may store motion information of a predetermined number of blocks decoded before the current block in the HMVP table, and add the HMVP candidates stored in the HMVP table to the merge candidate list for the current block. For example, five HMVP candidates are stored in the HMVP table, and when five candidates already exist in the HMVP table, a first-in-first-out (FIFO) method may be applied to store new motion information. .
- the inter prediction unit 1710 checks the redundancy between the newly added motion information and the candidates stored in the HMVP table. Information can be appended to the last position in the HMVP table.
- the HMVP table is initialized when a new Coding Tree Unit (CTU) column of an image starts, and motion information of a block to which the subblock-based inter prediction method is applied may not be used as an HMVP candidate.
- CTU Coding Tree Unit
- the inter prediction unit 1710 sets the average value of the motion vectors of the first and second candidates in the merge candidate list as the motion vector of the PAMVP candidate, and sets the reference picture of the PAMVP as the reference picture of the first candidate. can be set the same as
- the inter prediction unit 1710 may select only merge candidates of indices 0 and 1, ie, two candidates, from the merge candidate list of the normal merge mode. The inter prediction unit 1710 determines that a motion vector of a merge candidate indicated by a received merge flag among two merge candidates becomes a base motion vector, and additionally the received MVD direction and motion distance (MVD absolute value).
- MVD motion vector difference
- the MVD direction can be horizontal (x-axis) or vertical (y-axis) only, and the movement distance is 1/4-pel, 1/2-pel, 1-pel, 2-pel, 4-pel, 8-pel, 16 It can have a range of -pel or 32-pel.
- 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.
- inter prediction unit 1710 In the case of inter prediction according to the triangular mode, a rectangular block is divided diagonally to generate two triangular regions, and the inter prediction unit 1710 independently intersects the two triangular regions using different motion information. make predictions At this time, in order to minimize the discontinuity between the prediction sample values in the boundary region caused by the difference in motion information of the two triangular regions, the inter prediction unit 1710 is induced using the motion information of the two triangular regions. A weighted sum of the prediction sample values may be determined to be a prediction sample value of the boundary region. In the triangular mode, only unidirectional prediction is allowed for the prediction direction in each triangular region.
- the inter prediction unit 1710 uses the motion information of the L0 list for a candidate having an even number of each merge index and motion information from the L1 list for a candidate having an odd number of among the general merge mode candidate lists. Triangular having only one-way motion information. A mode candidate list can be constructed. If L0 list motion information does not exist in a candidate having an even merge index, L1 list motion information may be selected. Since the merge index to be applied to each triangular region is received, inter prediction may be performed using a candidate indicated by the merge index of each triangular region in the triangular mode candidate list.
- the inter prediction unit 1710 may generate a prediction sample by dividing a block into subblocks and inducing individual motion vectors for each subblock.
- the subblock-based merge candidate list includes subblock-based TMVP (SbTMVP) similar to TMVP (Temporal MVP), which is a temporal merge and AMVP candidate among block-based merge modes, and affine-based motion vector prediction candidates to which an affine motion model is applied. have.
- 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.
- the inter prediction unit 1710 divides the current block into 8x8 subblocks, and the center positions of the subblocks of the collocated block
- a motion vector of each subblock of the current block may be derived using motion information corresponding to . Since the reference picture of SbTMVP is the picture indicated by index 0 in the L0/L1 reference picture list, as in the case of TMVP, a scaling process may be added so that the motion vector mvCol determined from the collocated block can be applied to the sbTMVP reference picture. Accordingly, the scaled motion vector mvCol is set to SbTMVP, which is a subblock unit motion vector.
- 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.
- the inter prediction unit 1710 may construct an AMVP candidate list including a spatial AMVP candidate, a temporal AMVP candidate, and an HMVP candidate, and may configure up to two motion vector prediction candidates.
- the HMVP candidate used is the same as the HMVP used in the skip mode and the merge mode.
- 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.
- 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.
- the SMVD mode cannot be applied.
- the inter prediction unit 1710 may adaptively select an MVD resolution according to AMVR technology. Applicable MVD resolutions vary according to encoding modes, and in order to ensure that the final motion vector obtained by adding MVD to the derived motion vector prediction value has the same resolution as the MVD, the inter prediction unit 1710 is configured to have the same resolution as the MVD. Rounding may be performed on the prediction motion vector. When motion compensation is performed using the final motion vector, a 6-tap interpolation filter may be applied to a 1/2-sample position and an 8-tap interpolation filter may be applied to a sample position other than a 1/2-sample position.
- the inter prediction unit 1710 may perform an affine motion model-based motion prediction technique using 4 or 6 parameters.
- the inter prediction unit 1710 according to an embodiment divides a block into 4x4 sub-block units and derives a motion vector at the center position of the sub-block for each sub-block based on the affine motion model, thereby predicting motion in sub-block units. can be performed.
- an affine merge mode to which an affine-based motion vector prediction technique is applied and an affine AMVP mode may exist.
- 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.
- 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
- 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.
- 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.
- the inter prediction unit 1710 when the inter prediction method is a subblock merge mode and subblock-based temporal motion vector predictors can be used, the subblock-based A temporal merge candidate may be determined.
- the inter prediction unit 1710 is a subblock merge candidate list including one or more combination affine CPMV merge candidates when the inter prediction method is the subblock merge mode and motion compensation based on the affine model is possible. (subblock merge candidate list) can be generated.
- 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.
- a parallel movement MV capable of only parallel movement may be added as a candidate.
- 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.
- the inter prediction unit 1710 may perform inter prediction based on the affine model on the current block.
- the video decoding apparatus 1700 may obtain an affine flag indicating whether motion compensation based on the affine model is performed to generate a prediction sample of the current block from the non-stream.
- the video decoding apparatus 1700 calls the inter prediction unit 1710, and the inter prediction unit 1710 according to an embodiment
- a control point-based affine merge candidate corresponding to control point motion vectors determined using motion vectors of neighboring blocks included in a block group of neighboring blocks represented by corners of the current block is obtained. It is possible to generate an affine merge candidate list including
- the inter prediction unit 1710 when inter prediction of the current block is performed in the affine merge mode, performs a model before constructing an affine merge candidate based on the control point based on the control point.
- An affine merge candidate list including a model-based affine merge candidate may be generated.
- the model-based affine merge candidate indicates a merge candidate corresponding to control point motion vectors determined according to an affine motion vector of an available neighboring block among neighboring blocks at a predetermined position adjacent to the current block. That is, neighboring blocks decoded before the current block may be determined as model-based affine merge candidates.
- a model-based affine merge candidate corresponding to the neighboring block is also set to be available. Conversely, when motion information of a neighboring block is not available, a model-based affine merge candidate corresponding to the neighboring block is also set to be unavailable.
- the inter prediction unit 1710 controls point-based affine merge candidates corresponding to groups of neighboring blocks represented by corners of the current block. can be determined to add a control point-based affine merge candidate to the affine merge candidate list.
- the predetermined number is the maximum number of affine merge candidates allowed to be included in the affine merge candidate list, and may be set to, for example, five.
- the model-based affine merge candidate is a corresponding merge candidate derived from one neighboring block
- 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.
- the inter prediction unit 1710 may determine the affine motion vector of the current block by using control point motion vectors corresponding to the merge candidate selected from the affine merge candidate list. Using the affine merge index obtained from the bitstream, the inter prediction unit 1710 may determine the control point motion vector of the merge candidate indicated by the affine merge index from the affine merge candidate list. The inter prediction unit 1710 may determine an affine motion model parameter of the current block using the control point motion vector and determine an affine motion vector of the current block using the affine motion model parameter of the current block. The inter prediction unit 1710 may obtain prediction samples of the current block by using a reference sample indicated by an affine motion vector of the current block.
- control point motion vectors corresponding to the model-based affine merge candidate are determined by using an affine model of one neighboring block.
- the inter prediction unit 1710 may determine the affine motion vector of the current block from control point motion vectors corresponding to the model-based affine merge candidate.
- 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.
- the inter prediction unit 1710 may determine the affine motion vector of the current block using control point motion vectors corresponding to the control point-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.
- 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.
- the video decoding apparatus 1700 may change the coding order between left and right adjacent coding units according to a split unit coding order (SUCO) method.
- the video decoding apparatus 1700 may obtain an encoding order flag indicating a direction of a lower encoding order from the bitstream.
- the coding order flag indicates the left to right direction
- the left lower coding unit may be decoded first and the right lower coding unit may be decoded later among the left and right subordinate coding units generated by splitting the current coding unit.
- the coding order flag indicates the right to left direction
- the right lower coding unit may be decoded first and the left lower coding unit may be decoded later.
- 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.
- a neighboring block from which available motion information is obtained may be determined as the representative neighboring block.
- 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.
- 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 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.
- the video decoding apparatus 1700 needs to check the availability of motion information of a neighboring block in order to include a valid merge candidate in the fine merge candidate list. This is because motion prediction has already been performed on the block, so that a valid merge candidate can be determined from a neighboring block having available motion information.
- a neighboring block on which motion prediction is performed before the current block is available for prediction of the current block. Specifically, when motion prediction is performed on the left neighboring block of the current block before the current block, motion information of the left neighboring block is available. When motion prediction is performed on the right neighboring block of the current block before the current block, motion information of the right neighboring block is available. Conversely, when motion prediction is not performed on the left neighboring block of the current block, motion information of the left neighboring block is not available. When motion prediction is not performed on the right neighboring block of the current block, motion information of the right neighboring block is not available.
- the video decoding apparatus 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 video decoding apparatus 1700 according to an embodiment considers the coding order to obtain an affine merge candidate list. need to decide
- the inter prediction unit 1710 acquires a corrected motion vector through an additional motion vector search or motion vector calculation process based on the motion vector derived in the decoding process to increase the accuracy of the prediction sample by DMVR. technique can be performed.
- 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.
- 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
- 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'.
- SAD sum of absolute difference
- 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 inter prediction unit 1710 may determine a position having a minimum SAD value by calculating an SAD value for each of 25 search positions within a search range of an integer sample unit of ⁇ 2 samples.
- the SAD value is the smallest among the surrounding subsample positions of the integer sample found by the 2D parametric error surface equation using the SAD value calculated in the integer sample unit search process.
- the position of the sub-sample may be estimated.
- a motion vector indicating the thus estimated position may be set as the final motion vector.
- 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.
- 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.
- a method of determining a location of a collocated block that may be a merge candidate or an MVP candidate of a current block suggest
- the merge candidate is included in the merge candidate list determined when the inter prediction method of the current block is the normal merge mode, the skip mode, the merge MMVD mode, or the skip MMVD mode, or the inter prediction method of the current block is the affine merge mode or the sbTMVP mode It may be included in the affine merge candidate list that may be generated in this case.
- the MVP candidate may be included in the MVP candidate list determined when the inter prediction method of the current block is the AMVP mode or the affine AMVP mode.
- the collocated block when the upper-left point of the collocated block determined by using the upper-left point of the current block is an arbitrary point within the block in the collocated picture, the collocated block It provides a method for determining which position among blocks in the collocated picture to determine the final position of .
- the video decoding apparatus 1700 includes an inter prediction unit 1710 and a restoration unit 1720 .
- the inter prediction unit 1710 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 includes the first coordinate of the collocated block. It may be determined that the second coordinate corresponding to the upper-left point of the block of size MxN becomes the coordinate of the collocated sample.
- the inter prediction unit 1710 calculates the motion vector of the block corresponding to the coordinates of the collocated sample based on the prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture. can be used to obtain a collocated motion vector.
- the inter prediction unit 1710 may obtain the motion vector of the current block by using the collocated motion vector.
- the reconstruction unit 1720 may generate a reconstruction block of the current block by using the prediction block of the current block determined by using the motion vector of the current block.
- FIG. 18 is a flowchart of a video decoding method according to an embodiment.
- the inter prediction unit 1710 may obtain 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.
- 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.
- TMVP temporal motion vector prediction
- the inter prediction unit 1710 determines from which list the collocated picture from the picture header or the slice header is determined from the L0 reference picture list or the L1 reference picture list of the slice including the current block. , and a collocated reference picture index pointing to the collocated picture in the selected reference list may be obtained. Through this, the inter prediction unit 1710 may determine the collocated picture indicated by the collocated reference picture index from the L0 reference list or the L1 reference list.
- the picture indicated by the first reference picture index in the L1 reference picture list may be used as the collocated picture.
- the picture indicated by the first reference picture index from the L0 reference picture list may be used as the collocated picture.
- the inter prediction unit 1710 may determine the position of the collocated block existing in the collocated picture based on the coordinates indicating the predetermined position of the current block. However, the position of the collocated block for obtaining information such as the prediction mode may be determined using the position of the collocated coding unit corresponding to the collocated block. The position of the collocated block for obtaining information such as a motion vector may be determined using the position of a predetermined sample of the collocated block.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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).
- 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.
- 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.
- 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.
- the inter prediction unit 1710 may determine 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.
- 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 inter prediction unit 1710 shifts the x coordinate of the first coordinate to the right by m
- the x-coordinate of the second coordinate corresponding to the upper-left point of the MxN-sized block including the first coordinate of the collocated block may be obtained.
- the inter prediction unit 1710 corresponds to the upper-left point of the MxN-sized block including the first coordinate of the collocated block by bit-shifting the number obtained by bit-shifting the y-coordinate of the first coordinate by n to the left by n.
- the y-coordinate of the second coordinate may be obtained.
- 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.
- 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.
- 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.
- the inter prediction unit 1710 performs a block corresponding to the coordinates of the collocated sample based on the prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture.
- a collocated motion vector can be obtained using the motion vector of .
- the inter prediction unit 1710 may generate a prediction block of the current block by using the motion vector of the current block determined using the collocated motion vector.
- a block of size MxN may be a block configured separately from a coding unit, a prediction block, or a subblock.
- the inter prediction unit 1710 is configured to: , the coordinates of the subblock including the second coordinates may be determined to be the coordinates of the collocated sample.
- the inter prediction unit 1710 may obtain the temporal prediction motion vector of the current block by using the motion vector of the collocated block corresponding to the coordinates of the subblock including the second coordinate.
- an MxN block may be 8x8.
- the collocated coding unit 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.
- 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.
- the inter prediction unit 1710 may scale the collocated motion vector by using the reference picture list set of the slice including the collocated coding unit. Therefore, in determining whether the picture of the collocated block is a long-term reference picture, the collocated coding unit is used and the reference picture list set of the collocated coding unit is used, whereas the motion vector scaled thereby is the collocated coding unit. It may be obtained by using a motion vector of a subblock within the coded coding unit.
- the inter prediction unit 1710 uses a motion vector and a motion vector of a block corresponding to the coordinates of the collocated sample to obtain the collocated motion vector and collo Each of the availability of a gated motion vector can be obtained.
- the inter prediction unit 1710 may generate a merge candidate list of the current block including a temporal merge candidate corresponding to the block having the collocated motion vector.
- the inter prediction unit 1710 may determine the prediction motion vector of the current block by using the motion vector of the block corresponding to the merge candidate of the current block determined from the merge candidate list.
- 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.
- the inter prediction unit 1710 when inter prediction is performed in the MVP mode of the current block, uses the motion vector and the motion vector of the block corresponding to the coordinates of the collocated sample to generate the collocated motion vector and the The availability of collocated motion vectors can each be obtained.
- the inter prediction unit 1710 may generate the MVP candidate list of the current block including the temporal motion vector prediction candidate corresponding to the block having the collocated motion vector.
- the inter prediction unit 1710 may determine 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.
- 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.
- the inter prediction unit 1710 may generate a prediction block of the current block by using the motion vector of the current block determined using the collocated motion vector.
- the reconstruction unit 1720 may generate a reconstructed block of the current block by using the prediction block of the current block determined by using the motion vector of the current block.
- the inter prediction unit 1710 may determine a prediction block of the current block by using the motion vector of the current block, and obtain prediction samples of the current block.
- the reconstruction unit 1720 may determine that the prediction samples of the prediction block of the current block become reconstructed samples of the current block, and generate a reconstructed block composed of the reconstructed samples.
- the reconstruction unit 1720 obtains a residual block including residual samples of the current block, and predicts samples of the prediction block of the current block and residual samples of the residual block. By combining them, reconstructed samples of the current block may be obtained, and a reconstructed block composed of reconstructed samples may be generated.
- 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.
- motion vector related information may be actually stored in units of 8x4 or 4x8 sample blocks.
- 16 bits are required to store each x component and y component of a motion vector
- 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.
- 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.
- UHD Ultra High-Definition
- motion vector related information 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.
- the video decoding apparatus 1700 may set the motion vector related information of a block corresponding to the MxN grid to be accessible from among the motion vector related information of the first decoded picture.
- MxN may be independent of the size of the current block. Accordingly, it is possible to determine the position of a candidate block having motion vector related information accessible for inter prediction of the current block by using MxN.
- the video decoding apparatus 1700 uses motion vector related information corresponding to the MxN grid including the position of the collocated block of the current block. , inter prediction may be performed on the current block.
- one coding unit in the collocated picture may include a plurality of MxN grids, and the current block using motion vector related information corresponding to the MxN grid closest to the position of the collocated block among the MxN grids. It may be efficient to perform inter prediction on .
- 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 video decoding apparatus 1700 according to an embodiment performs inter prediction on the current block according to a mode other than the subblock-based inter prediction mode, the position of the collocated block of the current block is that of the collocated block. If there is a subblock including the upper left point of the MxN grid among the subblocks, inter prediction is performed on the current block using the motion vector or motion vector related information of the subblock including the upper left point of the MxN grid. can Accordingly, since the motion vector of the subblock closest to the position of the collocated block may be obtained, the accuracy of the inter prediction result for the current block may be increased.
- 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.
- 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.
- 19 is a block diagram of a video encoding apparatus according to an embodiment.
- a video encoding apparatus 1900 may include a motion predictor 1910 and a motion information encoder 1920 .
- the video encoding apparatus 1900 may split a picture into one or more luma coding units and encode the coding units.
- the video encoding apparatus 1900 may include a central processor (not shown) that controls the motion predictor 1910 and the motion information encoder 1920 .
- the motion predictor 1910 and the motion information encoder 1920 may be implemented by their own processors (not shown).
- the motion predictor 1910 and the motion information encoder 1920 may be controlled under the control of an external processor (not shown) of the video encoding apparatus 1900 .
- the video encoding apparatus 1900 may include one or more data storage units (not shown) in which input/output data of the motion predictor 1910 and the motion information encoder 1920 are stored.
- the video encoding apparatus 1900 may include a memory controller (not shown) for controlling data input/output of a data storage unit (not shown).
- the video encoding apparatus 1900 may perform an image encoding operation including prediction by operating in conjunction with an internally mounted video encoding processor or an external video encoding processor for image encoding.
- the video encoding apparatus 1900 may correspond to the encoder 1600 of the image encoding and decoding system described above with reference to FIG. 16 .
- the motion information encoder 1920 may correspond to the entropy encoder 1630 of the encoder 1600 .
- the motion predictor 1910 may correspond to the inter predictor 1605 of the encoder 1600 .
- the video encoding apparatus 1900 may divide a picture into a plurality of largest coding units, and divide each largest coding unit into blocks of various sizes and shapes for encoding.
- the video encoding apparatus 1900 determines a reference sample among samples of spatial neighboring blocks located in the intra prediction direction of the current block of the current block, and uses the reference sample.
- prediction samples corresponding to the current block may be determined.
- the video encoding apparatus 1900 may determine a reference block of the current block in the reference picture and determine a motion vector pointing to the reference block from the current block.
- the video encoding apparatus 1900 may determine a neighboring block having motion vector related information similar to the motion vector related information of the current block and encode only the merge index indicating the neighboring block. . Also, in the skip mode, there is no need to encode the residual block.
- the video encoding apparatus 1900 determines a neighboring block having motion vector related information similar to the motion vector related information of the current block, and encodes a merge index indicating the neighboring block. can do. Also, unlike the skip mode, encoding of the residual block is required.
- the video encoding apparatus 1900 determines a neighboring block having a motion vector similar to motion vector related information of the current block and MVP indicating the neighboring block The index may be encoded, and motion vector difference information indicating a difference between the motion vectors of the neighboring block and the current block may be encoded.
- the video encoding apparatus 1900 provides prediction direction information indicating which mode of inter prediction of the current block is L0, L1, and Bi-pred, a reference picture index and motion vector for the L0 list according to the prediction direction, and differential motion Vector information and/or reference picture indexes and motion vectors for the L1 list, and differential motion vector information may be encoded.
- the video encoding apparatus 1900 determines a residual sample between a reference sample included in a reference block and a current sample of the current block, and performs transform and quantization on the residual sample based on a transform unit, thereby performing quantized transform coefficients. can create
- 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.
- 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.
- 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.
- the motion prediction unit 1910 constructs a merge candidate list and determines a candidate that can be used as motion information of the current block from among the configured candidate list, and the motion information encoder 1920 sets the candidate list A candidate index indicating a candidate determined from among them may be signaled.
- 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).
- HMVP history-based MVP
- PAMVP pairwise average MVP
- the motion predictor 1910 may store motion information of a predetermined number of blocks encoded before the current block in the HMVP table, and add the HMVP candidates stored in the HMVP table to the merge candidate list for the current block.
- the motion prediction unit 1910 sets the average value of the motion vectors of the first and second candidates in the merge candidate list as the motion vector of the PAMVP candidate, and sets the reference picture of the PAMVP as the reference picture of the first candidate. can be set the same as
- the motion predictor 1910 may determine a candidate corresponding to the motion vector of the current block from among the merge candidates of indices 0 and 1, that is, two candidates from the merge candidate list of the general merge mode.
- the motion predictor 1910 may encode a merge flag indicating a candidate determined from among two merge candidates.
- a motion vector of a merge candidate is determined to be a base motion vector, and MVD direction and motion distance (MVD absolute value) information may be further encoded.
- the MVD direction can be horizontal (x-axis) or vertical (y-axis) only, and the movement distance is 1/4-pel, 1/2-pel, 1-pel, 2-pel, 4-pel, 8-pel, 16 It can have a range of -pel or 32-pel.
- 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.
- the motion prediction unit 1910 may determine a weighted sum of prediction sample values derived using motion information of two triangular areas to be a prediction sample value of the boundary area.
- the motion prediction unit 1910 uses the motion information of the L0 list for a candidate having an even number of each merge index, and motion information from the L1 list for a candidate having an odd number, from among the general merge mode candidate list, a triangular having only one-way motion information.
- a mode candidate list can be constructed. If L0 list motion information does not exist in a candidate having an even merge index, L1 list motion information may be selected. For each triangular region, a merge index to be applied to each triangular region from the triangular mode candidate list may be encoded.
- the motion predictor 1910 may divide a block into subblocks and determine individual motion vectors for each subblock.
- the subblock-based merge candidate list includes subblock-based TMVP (SbTMVP) similar to TMVP (Temporal MVP), which is a temporal merge and AMVP candidate among block-based merge modes, and affine-based motion vector prediction candidates to which an affine motion model is applied. have.
- 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.
- the inter prediction unit 1710 divides the current block into 8x8 subblocks, and the center positions of the subblocks of the collocated block
- a motion vector of each subblock of the current block may be derived using motion information corresponding to . Since the reference picture of SbTMVP is the picture indicated by index 0 in the L0/L1 reference picture list, as in the case of TMVP, a scaling process may be added so that the motion vector mvCol determined from the collocated block can be applied to the sbTMVP reference picture. Accordingly, the scaled motion vector mvCol is set to SbTMVP, which is a subblock unit motion vector.
- MVD which is a difference value between a predicted motion vector obtained from a neighboring block and a final motion vector
- 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.
- the motion predictor 1910 may adaptively select the MVD resolution according to the AMVR technology. Applicable MVD resolutions vary according to encoding modes, and in order for a final motion vector obtained by adding MVD to a derived motion vector prediction value to have the same resolution as the MVD, the motion prediction unit 1910 is configured to have the same resolution as the MVD. Rounding may be performed on the prediction motion vector.
- the motion prediction unit 1910 may perform an affine motion model-based motion prediction technique using 4 or 6 parameters.
- the motion prediction unit 1910 according to an embodiment divides a block into 4x4 sub-block units and derives a motion vector at the center position of the sub-block for each sub-block based on the affine motion model, thereby predicting the motion of the sub-block unit. can be performed.
- an affine merge mode to which an affine-based motion vector prediction technique is applied and an affine AMVP mode may exist.
- the motion predictor 1910 may determine a subblock-based temporal merge candidate when the inter prediction method is a subblock merge mode and a subblock-based temporal prediction motion vector can be used.
- the inter prediction unit 1710 is a subblock merge candidate list including one or more combination affine CPMV merge candidates when the inter prediction method is the subblock merge mode and motion compensation based on the affine model is possible. can create
- 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.
- a parallel movement MV capable of only parallel movement may be added as a candidate.
- 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.
- the motion prediction unit 1910 may perform inter prediction based on the affine model on the current block.
- the motion predictor 1910 includes a control point-based affine merge candidate corresponding to control point motion vectors determined using motion vectors of neighboring blocks included in a block group of neighboring blocks represented by corners of the current block.
- An affine merge candidate list can be generated.
- the motion predictor 1910 when inter prediction of the current block is performed in the affine merge mode, performs model-based affine before constructing the affine merge candidate based on the control point.
- An affine merge candidate list including merge candidates may be generated.
- a model-based affine merge candidate corresponding to the neighboring block may be included in the affine merge candidate list.
- a model-based affine merge candidate corresponding to the neighboring block is also set to be available.
- a model-based affine merge candidate corresponding to the neighboring block is also set to be unavailable.
- the motion prediction unit 1910 controls point-based affine merge candidates corresponding to groups of neighboring blocks represented by corners of the current block. can be determined to add a control point-based affine merge candidate to the affine merge candidate list.
- the predetermined number is the maximum number of affine merge candidates allowed to be included in the affine merge candidate list, and may be set to, for example, five.
- the motion predictor 1910 may select a merge candidate having the smallest error for expressing the affine motion vector of the current block from among the merge candidates included in the affine merge candidate list.
- the motion predictor 1910 may determine the affine motion vector of the current block by using control point motion vectors corresponding to the merge candidate selected from the affine merge candidate list.
- the motion predictor 1910 may determine an affine motion model parameter of the current block using the control point motion vector, and may determine an affine motion vector of the current block using the affine motion model parameter of the current block. Prediction samples of the current block may be determined by using the reference sample indicated by the affine motion vector of the current block.
- 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.
- 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.
- An affine motion vector of the current block may be expressed using control point motion vectors corresponding to control point-based affine merge candidates.
- 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.
- 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.
- affine 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.
- the video encoding apparatus 1900 may change the encoding order between left and right adjacent coding units according to the SUCO method.
- the encoder 1920 may encode an encoding order flag indicating a direction of a lower encoding order. If the left lower coding unit is encoded first and the right lower coding unit is encoded later among the left and right lower coding units generated by splitting the current coding unit, the encoding order flag is set to indicate a left to right direction. can be coded. When the right lower coding unit is encoded first and the left lower coding unit is encoded later, the encoding order flag may be encoded to indicate a right to left direction.
- 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.
- 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.
- 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 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.
- the video encoding apparatus 1900 needs to check the availability of motion information of a neighboring block in order to include a valid merge candidate in the affine merge candidate list. This is because a valid merge candidate may be determined from a neighboring block from which motion information has already been performed and available motion information is obtained.
- a neighboring block on which motion prediction is performed before the current block is available for prediction of the current block. Specifically, when motion prediction is performed on the left neighboring block of the current block before the current block, motion information of the left neighboring block is available. When motion prediction is performed on the right neighboring block of the current block before the current block, motion information of the right neighboring block is available. Conversely, when motion prediction is not performed on the left neighboring block of the current block, motion information of the left neighboring block is not available. When motion prediction is not performed on the right neighboring block of the current block, motion information of the right neighboring block is not available.
- the video encoding apparatus 1900 calculates the affine merge candidate list in consideration of the coding order. need to decide
- the motion information encoder 1920 encodes a merge mode flag indicating whether the inter prediction mode of the current block is the merge mode, and generates a prediction sample of the current block when the merge mode is based on the affine model.
- An affine flag indicating whether motion compensation is performed may be encoded.
- the motion information encoder 1920 according to an embodiment may encode an affine merge index indicating one of the affine merge candidate lists.
- a method of determining a location of a collocated block that may be a merge candidate or an MVP candidate of a current block suggest
- the merge candidate is included in the merge candidate list determined when the inter prediction method of the current block is the normal merge mode, the skip mode, the merge MMVD mode, or the skip MMVD mode, or the inter prediction method of the current block is the affine merge mode or the sbTMVP mode It may be included in the affine merge candidate list that may be generated in this case.
- the MVP candidate may be included in the MVP candidate list determined when the inter prediction method of the current block is the AMVP mode or the affine AMVP mode.
- the collocated block determines which position among blocks in the collocated picture to determine the final position of .
- the video encoding apparatus 1900 includes a motion predictor 1910 and a motion information encoder 1920 .
- the motion prediction unit 1910 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 MxN including the first coordinate of the collocated block. It may be determined that the second coordinate corresponding to the upper-left point of the block of size becomes the coordinate of the collocated sample.
- the motion predictor 1910 calculates the motion vector of the block corresponding to the coordinates of the collocated sample. can be used to obtain a collocated motion vector.
- the motion predictor 1910 may generate a candidate list of the current block by using the motion vector of the collocated block corresponding to the coordinates of the collocated block.
- the motion information encoder 1920 may encode a motion vector of the current block using the candidate list.
- FIG. 20 is a flowchart of a video encoding method according to an embodiment.
- the motion predictor 1910 may obtain 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.
- 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.
- the motion predictor 1910 may determine the collocated picture from among pictures included in the L0 reference picture list or the L1 reference picture list of the current slice including the current block. Accordingly, the motion information encoder 1920 determines the collocated picture from information indicating which list is to be determined from the L0 reference picture list or the L1 reference picture list of the current slice including the current block, and collocated from the selected reference list.
- a collocated reference picture index pointing to a picture may be encoded and signaled through a picture header or a slice header.
- the picture indicated by the first reference picture index in the L1 reference picture list may be used as the collocated picture.
- 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.
- the motion predictor 1910 may determine the position of the collocated block existing in the collocated picture based on the coordinates indicating the predetermined position of the current block. However, the position of the collocated block for obtaining information such as the prediction mode may be determined using the position of the collocated coding unit corresponding to the collocated block. The position of the collocated block for obtaining information such as a motion vector may be determined using the position of a predetermined sample of the collocated block.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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).
- 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.
- 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.
- 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.
- the motion predictor 1910 may determine 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.
- 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 motion prediction unit 1910 shifts the x coordinate of the first coordinate to the right by m
- the x-coordinate of the second coordinate corresponding to the upper-left point of the MxN-sized block including the first coordinate of the collocated block may be obtained.
- the inter prediction unit 1710 corresponds to the upper-left point of the MxN-sized block including the first coordinate of the collocated block by bit-shifting the number obtained by bit-shifting the y-coordinate of the first coordinate by n to the left by n.
- the y-coordinate of the second coordinate may be obtained.
- 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.
- 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.
- 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.
- the motion predictor 1910 blocks the block corresponding to the coordinates of the collocated sample based on the prediction mode of the collocated coding unit including the first coordinates of the collocated block in the collocated picture. It is possible to obtain a collocated motion vector of .
- the motion predictor 1910 may generate a candidate list of the current block based on the collocated motion vector.
- the motion information encoder 1920 may encode a motion vector of the current block using the candidate list.
- a block of size MxN may be a block configured separately from a coding unit, a prediction block, or a subblock.
- the motion predictor 1910 according to an embodiment is configured to: , the coordinates of the subblock including the second coordinates may be determined to be the coordinates of the collocated sample.
- the motion predictor 1910 may obtain a temporally predicted motion vector of the current block by using the motion vector of the collocated block corresponding to the coordinates of the subblock including the second coordinate.
- MxN when a block of size MxN is a subblock, MxN may be 8x8.
- the collocated coding unit 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.
- 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.
- the motion prediction unit 1910 may scale the collocated motion vector by using the reference picture list set of the slice including the collocated coding unit. Therefore, in determining whether the picture of the collocated block is a long-term reference picture, the collocated coding unit is used and the reference picture list set of the collocated coding unit is used, whereas the motion vector scaled thereby is the collocated coding unit. It may be obtained by using a motion vector of a subblock within the coded coding unit.
- the motion predictor 1910 when the current block is inter-predicted in the merge mode or the affine merge mode, the motion predictor 1910 performs collocated motion using the motion vector and the motion vector of the block corresponding to the coordinates of the collocated sample. Availability of motion vectors and collocated motion vectors may be obtained, respectively. When the collocated motion vector is available, the motion predictor 1910 may generate a merge candidate list of the current block including a temporal merge candidate corresponding to the block having the collocated motion vector.
- the motion information encoder 1920 may encode a merge index indicating a candidate block having motion information most similar to the motion information of the current block in the merge candidate list.
- the motion information may include at least one of a reference list, a reference index, and a motion vector.
- 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.
- the motion prediction unit 1910 when inter prediction is performed in the MVP mode of the current block, the motion prediction unit 1910 according to an embodiment is collocated using the motion vector and the motion vector of the block corresponding to the coordinates of the collocated sample. A motion vector and availability of the collocated motion vector may be obtained, respectively.
- the motion predictor 1910 may generate an MVP candidate list of the current block including a temporal motion vector prediction candidate corresponding to the block having the collocated motion vector.
- the motion information encoder 1920 may encode an MVP index indicating a candidate block having a motion vector most similar to a motion vector of the current block from the MVP candidate list, and encode the reference index and reference list information of the current block.
- 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.
- 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.
- the video encoding apparatus 1900 performs inter prediction on the current block according to a mode other than the subblock-based inter prediction mode, the position of the collocated block of the current block is the position of the collocated block. If there is a subblock including the upper left point of the MxN grid among the subblocks, inter prediction is performed on the current block using the motion vector or motion vector related information of the subblock including the upper left point of the MxN grid. can Accordingly, since the motion vector of the subblock closest to the position of the collocated block may be obtained, the accuracy of the inter prediction result for the current block may be increased.
- 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.
- the motion vector may be determined in units of one subblock among subblocks constituting the collocated coding unit.
- FIG. 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.
- motion vector related information of a collocated block is obtained to obtain a temporal merge candidate or a temporal motion vector.
- 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.
- the location of the collocated block in which motion vector related information of the collocated block is stored is determined.
- 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.
- the position 2140 of the lower right collocated block may be determined using the coordinates (xColBr, yColBr) of the lower right point 2130 of the current block 2110 .
- (xColBr, yColBr) is from (xCb, yCb) of the upper-left point 2120 of the current block 2110 by the width of the current block 2110 in the x-axis direction and the height of the current block 2110 in the y-axis direction is a distant point.
- 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. 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 by the position 2140 of the lower right collocated block.
- a block including a point 2170 having the same coordinates as the coordinates of the position 2140 of the lower right collocated block of the current picture 2100 is collocated. It is determined as the colocated block 2160. Accordingly, the motion vector related information of the collocated block 2160 may be used as the motion vector related information of the lower right collocated block. Accordingly, motion vector related information stored corresponding to the upper left point 2180 of the collocated block 2160 may be called.
- FIG. 22 shows a draft of a standard document in which a method of setting coordinates for performing the operation of FIG. 21 is described.
- the coordinates (xColCb, yColCb) indicating the position of the collocated block colCb are the upper left sample of the collocated block colCb, compared to the coordinates of the upper left luma sample of the collocated picture 2150; That is, it is set as the relative coordinates of the point 2180 .
- the collocated motion vector of the current block 2110 is determined based on the coordinates (xColCb, yColCb), the relative coordinates of the point 2180 . Accordingly, a motion vector for a coding unit including an 8x8 grid corresponding to the upper-left point 2180 of the collocated block colCb may be obtained as the collocated motion vector of the current block 2110 .
- motion vector-related information can be obtained in units of 8x8 grids, in the collocated picture 2150, it corresponds to ( ( xColBr
- the motion vector related information for the 8x8 grid (block) may be different from the motion vector related information at the upper left point 2180 of the collocated block 2160 . Accordingly, the upper-left point 2180 of the collocated block 2160 is not motion vector-related information about the point 2170 exactly corresponding to the position 2140 of the lower-right collocated block of the current block 2110 . If inter prediction is performed on the current block 2110 using motion vector related information on , accuracy of a prediction sample may be reduced.
- 23 illustrates a method of determining a position of a collocated block when the collocated block is determined in units of subblocks.
- a video decoding apparatus 1700 or a video encoding apparatus 1900 determines a collocated coding unit as well as a collocated coding unit to determine a motion vector of a collocated block, that is, a collocated motion vector.
- the coordinates of the gated sample can be used.
- 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.
- motion vector related information of blocks in the collocated picture 2350 may be obtained in units of 8x8 grids.
- the position 2340 of the lower right collocated block of the current block 2310 may be determined based on the coordinates (xColBr, yColBr) of the lower right point 2330 of the current block 2310 in the current picture 2300 . . (xColBr, yColBr) is from (xCb, yCb) of the upper-left point 2320 of the current block 2310 by the width of the current block 2310 in the x-axis direction and the height of the current block 2310 in the y-axis direction is a distant point.
- the video decoding apparatus 1700 and the video encoding apparatus 1900 may determine the position of the collocated sample in units of subblocks. That is, in the collocated picture 2350 , the position of the sub-block 2375 including the sample 2370 having the same coordinates as the coordinates of the position 2340 of the lower right collocated block of the current picture 2300 is determined.
- the motion vector of the lower right collocated block of the current picture 2300 may be obtained by using it. Accordingly, the motion vector related information of the sub-block 2375 of the collocated block 2360 may be used as the motion vector related information of the lower right collocated block.
- the motion vector related information stored corresponding to the sub-block 2375 of the collocated block 2360 is called, not the upper-left point 2380 of the collocated block 2360, and among them, the sub-block ( 2375) may be used as the collocated motion vector.
- the video decoding apparatus 1700 and the video encoding apparatus 1900 perform inter prediction on the current block 2110 in the collocated picture 2350 ( ( xColBr >> 3 ) 3, ( yColBr >> 3 ) ⁇ 3 ) Since the motion vector related information of the subblock 2375 including the sample 2370 is used, the accuracy of the prediction sample according to FIG. 23 is higher than that of the prediction sample according to FIG. can be improved
- 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.
- FIG. 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 .
- the buffer 2450 is composed of pointer arrays for storing pointers pointing to each MxN grid.
- the buffer 2480 includes arrays for storing motion vector information of coding units in a collocated picture.
- the coding units CU0 2410 , CU1 2420 , and CU2 2430 have MxN grids A, B, C
- the motion vector related information can be stored in the buffer 2450 only when it corresponds to D.
- the coding units CU0(2410), CU1(2420), and CU2(2430) should include the upper left point of the MxN grids A, B, C, and D, and the coding units CU0(2410), CU1(2420), and CU2(2430)
- the motion vector related information of may correspond to MxN grids A, B, C, and D.
- the pointer 2452 of the MxN grid A, the pointer 2454 of the MxN grid B, the pointer 2456 of the MxN grid C, and the pointer 2458 of the MxN grid D may be set in the buffer 2450 .
- the buffer 2480 may store the motion vector related information 2482 of the coding unit CU0 2410 and the motion vector related information 2484 of the coding unit CU1 2420 . Since the motion vector related information of the coding unit CU2 2430 does not correspond to the MxN grid, it is not stored in the buffer 2480 .
- the pointer 2452 of the MxN grid A and the pointer 2456 of the MxN grid C may be set to point to the motion vector related information 2482 of the coding unit CU0 2410 .
- the pointer 2454 of the MxN grid B and the pointer 2458 of the MxN grid D may be set to point to the motion vector related information 2484 of the coding unit CU1 2420 .
- the motion vector related information 2484 of the coding unit CU1 2420 is related to the motion vector of the collocated block. can be used as information.
- 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 .
- the buffer 2550 is composed of pointer arrays for storing pointers pointing to each MxN grid
- the buffer 2580 is composed of arrays for storing motion vector information of coding units and subblocks in the collocated picture. have.
- the coding unit CU1 2520 includes subblocks 2521 , 2522 , 2523 , 2524 , 2525 , 2526 , 2527 , and 2528 , and the subblocks 2521 , 2522 , 2523 , 2524 , 2525 , 2526 , 2527 , and 2528 . ), inter prediction may be performed.
- Coding units CU0 2510, CU2 2530, and subblocks 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528 must include the upper left point of the MxN grid A, B, C, and D;
- the corresponding motion vector related information may correspond to MxN grids A, B, C, and D.
- the pointer 2552 of the MxN grid A, the pointer 2554 of the MxN grid B, the pointer 2556 of the MxN grid C, and the pointer 2458 of the MxN grid D may be set in the buffer 2550.
- the buffer 2580 may store the motion vector related information 2582 of the coding unit CU0 2510 , the motion vector related information 2584 of the subblock 2522 , and the motion vector related information 2586 of the subblock 2526 . have.
- Motion vector related information of the coding unit CU2 2530 and subblocks 2521 , 2523 , 2524 , 2525 , 2527 , and 2528 is not stored in the buffer 2580 because it does not correspond to the MxN grid.
- the pointer 2552 of the MxN grid A and the pointer 2556 of the MxN grid C may be set to point to the motion vector related information 2582 of the coding unit CU0 2510 .
- the pointer 2554 of the MxN grid B may be set to point to the motion vector related information 2584 of the subblock 2522 .
- the pointer 2558 of the MxN grid D may be set to point to the motion vector related information 2586 of the subblock 2526 .
- the motion vector related information of the coding unit CU1 2520 is not the motion vector related information of the subblock 2522 or 2526 .
- the motion vector related information may be used as the motion vector related information of the collocated block. Therefore, as described above with reference to FIG. 23 , in order for the video decoding apparatus 1700 and the video encoding apparatus 1900 to perform inter prediction on the current block, in the collocated picture, the lower right collocated block, the center Motion vector related information of a subblock including a location of a collocated block may be used.
- 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 .
- the buffer 2650 includes arrays for storing motion vector information of coding units and subblocks in a collocated picture in each MxN grid.
- the buffer 2650 may include storage spaces for MxN grids A, B, C, and D.
- Motion vector related information 2652 of the coding unit CU0 2610 may be stored in the MxN grid A, and motion vector related information 2654 of the subblock 2622 may be stored in the MxN grid B.
- Motion vector related information 2656 of the coding unit CU0 2610 may be stored in the MxN grid C, and motion vector related information 2658 of the subblock 2626 may be stored in the MxN grid D.
- Motion vector related information of the coding unit CU2 2530 and subblocks 2521 , 2523 , 2524 , 2525 , 2527 , and 2528 is not stored in the buffer 2650 because it does not correspond to the MxN grid.
- the subblock 2622 or 2626 is not the motion vector related information of the coding unit CU1 2620 .
- the center Motion vector related information of a subblock including a location of a collocated block may be used.
- 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 .
- 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.
- a coding unit containing a ( ( xColBr >> 3 ) ⁇ 3, ( yColBr 3, ( yColBr >>3ColBr 3 ) ⁇ collocated unit is a coding unit containing ⁇ 3C.
- coordinates (xColCb, yColCb) indicating the position of the collocated coding unit colCb are not set as relative coordinates of the upper left sample of the collocated coding unit colCb. That is, as in paragraph 2220, the coordinates (xColCb, yColCb) indicating the position of the collocated coding unit colCb are not forcibly changed to the coordinates of the upper left sample of the collocated coding unit colCb.
- the collocated motion vector of the current block is determined based on the coordinates: Therefore, among the subblocks of the collocated block, if the ( ( xColBr >> 3 ) ⁇ 3, ( yColBr 3, ( yColBr 3, ( yColBr >> yColBr 3 ) grid corresponds to the sub-block containing the point 8(x8) ⁇ 3) ⁇ 3 may be obtained as a collocated motion vector of the current block.
- 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 on the lower right of the current block.
- 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 ).
- the coordinates (xColCb, yColCb) indicating the position of the collocated coding unit colCb are not forcibly changed to the coordinates of the upper left sample of the collocated coding unit colCb as in paragraph 2220.
- the collocated motion vector of the current block is determined based on the coordinates: Therefore, among the sub-blocks of the collocated block, (If the sub-block including the corresponding point in the grid moves 8x8 may be obtained as a collocated motion vector of the current block.
- 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 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.
- 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.
- Paragraphs 2900, 2910 and 2930 show the case of the lower right collocated block.
- the x-coordinate xColBr representing the position of the lower-right collocated block is spaced apart by 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 position xCb + cbWidth , and the y-coordinate yColBr indicating the position of the lower-right collocated block is the 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. indicates.
- the coordinates ( xColCb, yColCb ) of the collocated sample are determined such that it is equal to
- a coding unit including coordinates ( xColCb, yColCb ) is determined as the collocated coding unit colCb.
- the collocated motion vector (mvLXCol) and the collocated motion vector availability (availableFlagLXCol) are to be obtained.
- the coordinates (xColCb, yColCb) of the collocated sample are not forcibly changed to the coordinates of the upper-left sample of the collocated coding unit colCb, and ( ( xColBr >> 3 ) ⁇ 3,
- the collocated motion vector (mvLXCol) and the availability of the collocated motion vector (availableFlagLXCol) can be obtained using the position of the subblock containing the collocated sample of the yColBr >> 3 ) ⁇ 3 ) coordinates. .
- the collocated sample It can be obtained as a collocated motion vector of the current block using a motion vector of .
- the prediction mode (whether encoded in intra, IBC, or palette prediction mode) of the collocated coding unit colCb and whether the reference picture of the collocated block is a long-term reference picture is determined based on the collocated coding unit colCb. can be judged.
- a coded motion vector may be obtained within the collocated coding unit colCb.
- 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 on the lower right of the current block.
- Paragraphs 2950, 2960 and 2980 show the case of a central collocated block.
- the x-coordinate xColCtr indicating the position of the central collocated block 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 distance is xCb + ( cbWidth >> 1 )
- the y-coordinate yColCtr indicating the position of the central collocated block 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. It represents the position yCb + ( cbHeight >> 1 ).
- the coordinates ( xColCb, yColCb ) of the collocated sample are determined to be equal to ( ( xColCtr >>3 3 ) ⁇ 3 3, ( 3ColCtr>).
- a coding unit including coordinates ( xColCb, yColCb ) is determined as the collocated coding unit colCb.
- a collocated motion vector (mvLXCol) and availability (availableFlagLXCol) of the collocated motion vector are obtained based on the collocated coding unit colCb and the coordinates (xColCb, yColCb) of the collocated sample. .
- the coordinates (xColCb, yColCb) of the collocated sample are not forcibly changed to the coordinates of the upper-left sample of the collocated coding unit colCb, and ( ( xColCtr >> 3 ) ⁇ 3
- the collocated motion vector (mvLXCol) and the availability of the collocated motion vector (availableFlagLXCol) can be obtained using the position of the subblock containing the collocated sample of the yColCtr >> 3 ) ⁇ 3 ) coordinates. .
- the prediction mode of the collocated coding unit colCb (whether it is coded in the intra or IBC or the palette prediction mode) and whether the reference picture of the collocated block is a long-term reference picture is determined based on the collocated coding unit colCb. can be judged.
- the collocated coding unit colCb ( ( xColCtr >> 3 ) ⁇ 3, ( yColCtr )use the collocated coordinates of the sample using the collocated coordinates ⁇ A coded motion vector may be obtained.
- 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.
- FIG. 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.
- 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 , a process for acquiring motion vector related information of a collocated block located in a collocated picture is described.
- the coordinates ( xColCb, yColCb ) of the collocated sample are determined such that it is equal to That is, the coordinates ( xColCb, yColCb ) of the collocated sample can be changed to a point matching the 8x8 grid in the collocated block.
- a coding unit including coordinates ( xColCb, yColCb ) is determined as the collocated coding unit colCb.
- motion vector information of a subblock corresponding to the coordinates (xColCb, yColCb) may be obtained separately from the collocated coding unit colCb.
- 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 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.
- the coordinates of the collocated sample ( xColCb, yColCb ) are determined such that it is equal to
- a coding unit including coordinates ( xColCb, yColCb ) may be determined as the collocated coding unit colCb.
- the collocated motion vector (mvLXCol) and the collocated motion vector availability (availableFlagLXCol) are to be obtained.
- the coordinates (xColCb, yColCb) of the collocated sample are not forcibly changed to the coordinates of the upper-left sample of the collocated coding unit colCb, and ( ( xColBr >> 3 ) ⁇ 3, yColBr >> 3 ) ⁇ 3 ).
- the collocated sample may be obtained by using the motion vector and the availability of the motion vector of .
- 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 on the lower right of the current block.
- 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.
- 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.
- Motion vector related information of the central collocated block is obtained through paragraphs 3210 and 3230
- motion vector related information of the lower collocated block is obtained through paragraphs 3250 and 3270
- side collocated through paragraphs 3310 and 3330
- Motion vector related information of a block may be obtained.
- the coordinates ( xColCb, yColCb ) of the collocated sample are determined to be equal to ( ( xColCtr >>3 3 ) 3 ⁇ 3 3, ( 3ColCtr).
- the current collocated block includes subblocks, in the subblock matching the 8x8 grid among the subblocks, that is, in the collocated block ( ( xColCtr >> 3 )
- the coordinates ( xColCb, yColCb ) of the collocated sample may be changed to be the same as the position of the subblock including ) ⁇ 3 ).
- the collocated motion vector (mvLXCol) and the availability of the collocated motion vector (availableFlagCol) are obtained. Therefore, within a collocated block, if ( ( xColCtr >> 3 ) ⁇ 3, ( yColCtr >>( yColCtr >> 3 ) corresponds to the movement of the vector in the 8x8 grid, then ⁇ 3
- the availability of the collocated motion vector and the collocated motion vector of the current block may be obtained using the availability, respectively.
- 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.
- the position of the lower collocated block may be determined in consideration of encoding order information availLR of the current block.
- the x coordinate xColBot indicating the position of the lower collocated block is the upper left of the current block.
- 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.
- the coordinates ( xColCb, yColCb ) of the collocated sample are determined such that it is equal to
- the coordinates ( xColCb, yColCb ) may be changed to be the same as the position of the sub-block.
- the collocated motion vector (mvLXCol) and the availability of the collocated motion vector (availableFlagCol) are obtained. Therefore, within a collocated block, if ( ( xColBot >> 3 ) ⁇ 3, ( yColBot >>3 ) corresponds to a movement of a vector of vectors and a subblock containing a vector of 8x8 subblocks, then The availability of the collocated motion vector and the collocated motion vector of the current block may be obtained using the availability, respectively.
- 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 collocated block below the current block.
- the position of the side collocated block may be determined in consideration of encoding order information availLR of the current block.
- the x-coordinate xColSide indicating the position of the side collocated block is the upper-left side of the current block.
- the coordinates ( xColCb, yColCb ) of the collocated sample are determined to be equal to ( ( xColSide >> 3 ) 3 ⁇ ) ⁇ 3 ⁇ ).
- ( ( xColSide >> 3 ) ⁇ 3 In the case where the current collocated block includes subblocks, ( ( xColSide >> 3 ) ⁇ 3, ( y>> The coordinates ( xColCb, yColCb ) may be changed to be the same as the position of the sub-block including ) ⁇ 3 ).
- the collocated motion vector (mvLXCol) and the availability of the collocated motion vector (availableFlagCol) are obtained. Therefore, within a collocated block, if ( ( xColSide >> 3 ) ⁇ 3, ( yColSide >>( yColSide >> 3 ) corresponds to the motion of the The availability of the collocated motion vector and the collocated motion vector of the current block may be obtained using the availability, respectively.
- 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 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.
- 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
- the coordinates of the collocated sample ( xColCb, yColCb ) are determined such that it is equal to
- the collocated motion vector (mvLXCol) and the availability of the collocated motion vector (availableFlagLXCol) are obtained. That is, as in paragraph 2220, the coordinates (xColCb, yColCb) of the collocated sample are not forcibly changed to the coordinates of the upper-left sample of the collocated coding unit colCb, and ( ( xColBl >> 3 ) yColBl >> 3 ) ⁇ 3 ).
- 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.
- 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.
- the medium may continuously store a computer executable program, or may be a temporary storage for execution or download.
- 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.
- '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
- the 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
- 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.
- 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 StoreTM) or on two user devices (eg, It can be distributed (eg downloaded or uploaded) directly, online between smartphones (eg: smartphones).
- a portion of a computer program product eg, a downloadable app
- 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.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하고, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 블록의 좌표가 되도록 결정하고, 콜로케이티드 블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 획득하고, 현재 블록의 움직임 벡터를 이용하여 결정된 현재 블록의 예측 블록을 이용하여 현재 블록의 복원 블록을 생성하기 위한 비디오 복호화 방법이 제공된다.
Description
본 개시는 영상의 부호화 및 복호화 분야에 관한 것이다. 보다 구체적으로, 본 개시는 인터 예측 모드에 따라 비디오를 부호화 또는 복호화하는 방법 및 장치에 관한 것이다.
종래의 압축방식의 경우, 픽쳐에 포함되는 부호화 단위의 크기를 결정하는 과정에서 분할할지 여부를 결정한 후 획일적으로 4개의 동일한 크기의 부호화 단위들로 분할하는 재귀적 분할 과정을 통해 정사각형의 부호화 단위들을 결정하였다. 하지만 최근 고해상도의 영상에 대하여 정사각형이라는 획일적인 형태의 부호화 단위 이용에 의해 야기되는 복원 영상의 화질열화가 문제되고 있다. 따라서, 고해상도 영상을 다양한 형태의 부호화 단위로 분할하는 방법 및 장치들이 제안되고 있다.
본 개시는 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치에 관한 것으로, 인터 예측 모드에서 콜로케이티드 블록의 움직임 벡터를 획득하기 위한 방법을 제공한다.
본 개시에서 제공하는 일 실시예에 따른 비디오 복호화 방법은, 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하는 단계; 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계; 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계; 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.
본 개시에서 제공하는 비디오 복호화 방법 또는 장치, 비디오 부호화 방법 또는 장치에 따르면, 콜로케이티드 픽쳐 중 콜로케이티드 블록에 대해 서브블록 기반의 인터 예측이 수행된 경우, 현재 블록에 대해 서브블록 기반의 인터 예측 모드가 아닌 모드에 따라 인터 예측을 수행하더라도, 콜로케이티드 샘플의 위치에 가장 가까운 서브블록의 움직임 벡터가 획득될 수 있으므로, 현재 블록에 대한 인터 예측 결과의 정확성이 높아질 수 있다.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 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)를 도출하도록 기술된 표준 문서를 도시한다.
본 개시에서 제공하는 일 실시예에 따른 비디오 복호화 방법은, 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하는 단계; 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계; 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계; 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌측상단 지점에 해당하는 제2 좌표가 상기 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계는, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 서브블록들 중에서, 상기 제2 좌표를 포함하는 서브블록의 좌표를 상기 콜로케이티드 블록의 좌표가 되도록 결정하는 단계를 포함하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 제2 좌표를 포함하는 서브블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 상기 현재 블록의 시간적 예측 움직임 벡터를 획득하는 단계를 포함할 수 있다.
일 실시예에 따라 상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는, 상기 콜로케이티드 부호화 단위가 인트라 예측 모드, IBC (intra block copy) 예측 모드 또는 팔레트 예측 모드로 복호화되지 않은 경우, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스를 획득하는 단계를 포함할 수 있다.
일 실시예에 따라 상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는, 상기 콜로케이티드 부호화 단위의 참조 픽쳐와 상기 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐이거나 상기 콜로케이티드 부호화 단위의 참조 픽쳐와 상기 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐가 아닌 경우에, 상기 콜로케이티드 부호화 단위를 포함하는 슬라이스의 참조 픽쳐 리스트 세트를 이용하여, 상기 콜로케이티드 움직임 벡터를 스케일링하는 단계를 포함할 수 있다.
일 실시예에 따라 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌측상단 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계는, M이 2의 m승이고 N인 2의 n승인 경우에, 상기 제1 좌표의 x 좌표를 m만큼 우측 비트시프트한 수를 다시 m만큼 좌측 비트시프트함으로써 상기 제2 좌표의 x 좌표를 획득하고, 상기 제1 좌표의 y 좌표를 n만큼 우측 비트시프트한 수를 다시 n만큼 좌측 비트시프트함으로써 상기 제2 좌표의 y 좌표를 획득하는 단계를 포함할 수 있다.
일 실시예에 따라 상기 MxN 크기가 8x8일 수 있다.
일 실시예에 따라 상기 콜로케이티드 블록이 우하측 콜로케이티드 블록(bottom-right collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록에 대각 방향으로 인접하는 외부 샘플의 우하측 지점의 좌표와 동일할 수 있다.
일 실시예에 따라 상기 콜로케이티드 블록이 하측 콜로케이티드 블록(bottom collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
일 실시예에 따라 상기 콜로케이티드 블록이 중앙 콜로케이티드 블록(central collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 중앙 지점의 좌표와 동일할 수 있다.
일 실시예에 따라 상기 콜로케이티드 블록이 사이드 콜로케이티드 블록(side collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 x축 방향으로 인접하는 외부 샘플 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
일 실시예에 따라 상기 콜로케이티드 블록이 좌하측 콜로케이티드 블록(bottom-left collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
일 실시예에 따라 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는, 상기 현재 블록이 머지 모드로 인터 예측될 때, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 상기 움직임 벡터를 이용하여 상기 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 획득하는 단계를 포함하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 상기 콜로케이티드 움직임 벡터를 가지는 상기 블록에 대응하는 시간적 머지 후보를 포함하는 상기 현재 블록의 머지 후보 리스트를 생성하는 단계; 및 상기 머지 후보 리스트 중에서 결정된 상기 현재 블록의 머지 후보에 대응하는 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 움직임 벡터를 결정하는 단계를 포함할 수 있다.
일 실시예에 따라 상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는, 상기 현재 블록의 MVP 모드로 인터 예측될 때, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 상기 움직임 벡터를 이용하여 상기 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 획득하는 단계를 포함하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 상기 콜로케이티드 움직임 벡터를 가지는 상기 블록에 대응하는 시간적 움직임 벡터 예측 후보를 포함하는 상기 현재 블록의 MVP 후보 리스트를 생성하는 단계; 및 상기 MVP 후보 리스트 중에서 결정된 상기 현재 블록의 예측 움직임 벡터 후보에 대응하는 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 움직임 벡터를 결정하는 단계를 포함할 수 있다.
본 개시에서 제공하는 일 실시예에 따른 비디오 복호화 장치는 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하고, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하고, 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 획득하는 인터 예측부; 및 상기 현재 블록의 움직임 벡터를 이용하여 결정된 상기 현재 블록의 예측 블록을 이용하여 상기 현재 블록의 복원 블록을 생성하는 복원부를 포함할 수 있다.
본 개시에서 제공하는 일 실시예에 따른 비디오 부호화 방법은, 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하는 단계; 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계; 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계; 및 상기 콜로케이티드 움직임 벡터에 기초하여 상기 현재 블록의 후보 리스트를 생성하고, 상기 후보 리스트를 이용하여 상기 현재 블록의 움직임 벡터를 부호화하는 단계를 포함할 수 있다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 명세서에서, '영상(image)' 또는 '픽쳐'는 비디오의 정지영상이거나 동영상, 즉 비디오 그 자체를 나타낼 수 있다.
또한, 본 명세서에서 '샘플'은, 영상의 샘플링 위치에 할당된 데이터로서 프로세싱 대상이 되는 데이터를 의미한다. 예를 들어, 공간영역의 영상에서 화소값, 변환 영역 상의 변환 계수들이 샘플들일 수 있다. 이러한 적어도 하나의 샘플들을 포함하는 단위를 블록이라고 정의할 수 있다.
또한, 본 명세서에서, '현재 블록(Current Block)'은, 부호화 또는 복호화하고자 하는 현재 영상의 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위의 블록을 의미할 수 있다.
또한, 본 명세서에서, 어느 움직임 벡터가 리스트 0 방향이라는 것은, 리스트 0에 포함된 참조 픽쳐 내 블록을 가리키기 위해 이용되는 움직임 벡터라는 것을 의미할 수 있고, 어느 움직임 벡터가 리스트 1 방향이라는 것은, 리스트 1에 포함된 참조 픽쳐 내 블록을 가리키기 위해 이용되는 움직임 벡터라는 것을 의미할 수 있다. 또한, 어느 움직임 벡터가 단방향이라는 것은 리스트 0 또는 리스트 1에 포함된 참조 픽쳐 내 블록을 가리키기 위해 이용되는 움직임 벡터라는 것을 의미할 수 있고, 어느 움직임 벡터가 양방향이라는 것은 움직임 벡터가 리스트 0 방향의 움직임 벡터와 리스트 1 방향의 움직임 벡터를 포함한다는 것을 의미할 수 있다.
또한, 본 명세서에서, 블록의 '바이너리 분할(binary split)'이란 블록의 너비 또는 높이가 절반인 2개의 하위 블록이 생성되도록 하는 분할을 의미한다. 구체적으로, 현재 블록에 '바이너리 수직 분할'이 수행되면, 현재 블록의 너비의 절반 지점에서 수직 방향(세로 방향)으로 분할이 수행되므로, 현재 블록의 너비의 절반인 너비를 가지고 현재 블록의 높이와 동일한 높이를 가지는 2개의 하위 블록이 생성될 수 있다. 현재 블록에 '바이너리 수평 분할'이 수행되면, 현재 블록의 높이의 절반 지점에서 수평 방향(가로 방향)으로 분할이 수행되므로, 현재 블록의 높이의 절반인 높이를 가지고 현재 블록의 너비는 동일한 너비를 가지는 2개의 하위 블록이 생성될 수 있다.
또한, 본 명세서에서, 블록의 '터너리 분할(ternary split)'이란 블록의 너비 또는 높이가 1:2:1 비율로 분할되어 3개의 하위 블록이 생성되도록 하는 분할을 의미한다. 구체적으로, 현재 블록에 '터너리 수직 분할'이 수행되면, 현재 블록의 너비의 1:2:1 비율 지점에서 수직 방향(세로 방향)으로 분할이 수행되므로, 현재 블록의 너비의 1/4인 너비를 가지고 현재 블록과 높이는 동일한 2개의 하위 블록과, 현재 블록의 너비의 2/4인 너비를 가지고 현재 블록의 높이와 동일한 높이를 가지는 1개의 하위 블록이 생성될 수 있다. 현재 블록에 '터너리 수평 분할'이 수행되면, 현재 블록의 높이의 1:2:1 비율 지점에서 수평 방향(가로 방향)으로 분할이 수행되므로, 현재 블록의 높이의 1/4인 높이를 가지고 현재 블록의 너비와 동일한 너비를 가지 2개의 하위 블록과, 현재 블록의 높이의 2/4인 높이를 가지고 현재 블록의 너비와 동일한 너비를 가지는 1개의 하위 블록이 생성될 수 있다.
또한, 본 명세서에서, 블록의 '쿼드 분할(quadsplit)'이란 블록의 너비 및 높이가 1:1 비율로 분할되어 4개의 하위 블록이 생성되도록 하는 분할을 의미한다. 구체적으로, 현재 블록에 '쿼드 분할'이 수행되면, 현재 블록의 너비의 절반 지점에서 수직 방향(세로 방향)으로 분할이 수행되고, 현재 블록의 높이의 절반 지점에서 수평 방향(가로 방향)으로 분할이 수행되므로, 현재 블록의 너비의 1/2인 너비를 가지고 현재 블록의 높이의 1/2인 높이를 가지는 4개의 하위 블록이 생성될 수 있다.
이하 도 1 내지 도 16를 참조하여 일 실시예에 따라 영상 부호화 장치 및 영상 복호화 장치, 영상 부호화 방법 및 영상 복호화 방법이 상술된다. 도 3 내지 도 16을 참조하여 일 실시예에 따라 영상의 데이터 단위를 결정하는 방법이 설명되고, 도 3 내지 16에 따라 결정된 데이터 단위를 이용하여 일 실시예에 따른 비디오 부호화/복호화하는 방법이 도 17 내지 도 34을 참조하여 후술된다.
이하 도 1 및 도 2를 참조하여 본 개시의 일 실시예에 따라 다양한 형태의 부호화 단위에 기초하여 적응적으로 선택하기 위한 방법 및 장치가 상술된다.
이하 도 1 내지 도 16를 참조하여 일 실시예에 따라 영상 부호화 장치 및 영상 복호화 장치, 영상 부호화 방법 및 영상 복호화 방법이 상술된다. 도 3 내지 도 16을 참조하여 일 실시예에 따라 영상의 데이터 단위를 결정하는 방법이 설명되고, 도 17 내지 도 34을 참조하여 일 실시예에 따른 인터 예측을 수행하는 비디오 부호화/복호화 방법이 후술된다.
이하 도 1 및 도 2를 참조하여 본 개시의 일 실시예에 따라 다양한 형태의 부호화 단위에 기초하여 적응적으로 선택하기 위한 방법 및 장치가 상술된다.
도 1은 일 실시예에 따라 영상 복호화 장치의 개략적인 블록도를 도시한다.
영상 복호화 장치(100)는 수신부(110) 및 복호화부(120)를 포함할 수 있다. 수신부(110) 및 복호화부(120)는 적어도 하나의 프로세서를 포함할 수 있다. 또한 수신부(110) 및 복호화부(120)는 적어도 하나의 프로세서가 수행할 명령어들을 저장하는 메모리를 포함할 수 있다.
수신부(110)는 비트스트림을 수신할 수 있다. 비트스트림은 후술되는 영상 부호화 장치(2200)가 영상을 부호화한 정보를 포함한다. 또한 비트스트림은 영상 부호화 장치(2200)로부터 송신될 수 있다. 영상 부호화 장치(2200) 및 영상 복호화 장치(100)는 유선 또는 무선으로 연결될 수 있으며, 수신부(110)는 유선 또는 무선을 통하여 비트스트림을 수신할 수 있다. 수신부(110)는 광학미디어, 하드디스크 등과 같은 저장매체로부터 비트스트림을 수신할 수 있다. 복호화부(120)는 수신된 비트스트림으로부터 획득된 정보에 기초하여 영상을 복원할 수 있다. 복호화부(120)는 영상을 복원하기 위한 신택스 엘리먼트를 비트스트림으로부터 획득할 수 있다. 복호화부(120)는 신택스 엘리먼트에 기초하여 영상을 복원할 수 있다.
영상 복호화 장치(100)의 동작에 대해서는 도 2와 함께 보다 자세히 설명한다.
도 2는 일 실시예에 따라 영상 복호화 방법의 흐름도를 도시한다.
본 개시의 일 실시예에 따르면 수신부(110)는 비트스트림을 수신한다.
영상 복호화 장치(100)는 비트스트림으로부터 부호화 단위의 분할 형태 모드에 대응하는 빈스트링을 획득하는 단계(210)를 수행한다. 영상 복호화 장치(100)는 부호화 단위의 분할 규칙을 결정하는 단계(220)를 수행한다. 또한 영상 복호화 장치(100)는 분할 형태 모드에 대응하는 빈스트링 및 상기 분할 규칙 중 적어도 하나에 기초하여, 부호화 단위를 복수의 부호화 단위들로 분할하는 단계(230)를 수행한다. 영상 복호화 장치(100)는 분할 규칙을 결정하기 위하여, 부호화 단위의 너비 및 높이의 비율에 따른, 상기 부호화 단위의 크기의 허용가능한 제 1 범위를 결정할 수 있다. 영상 복호화 장치(100)는 분할 규칙을 결정하기 위하여, 부호화 단위의 분할 형태 모드에 따른, 부호화 단위의 크기의 허용가능한 제 2 범위를 결정할 수 있다.
이하에서는 본 개시의 일 실시예에 따라 부호화 단위의 분할에 대하여 자세히 설명한다.
먼저 하나의 픽처 (Picture)는 하나 이상의 슬라이스 혹은 하나 이상의 타일로 분할될 수 있다. 하나의 슬라이스 혹은 하나의 타일은 하나 이상의 최대 부호화 단위(Coding Tree Unit; CTU)의 시퀀스일 수 있다. 최대 부호화 단위 (CTU)와 대비되는 개념으로 최대 부호화 블록 (Coding Tree Block; CTB)이 있다.
최대 부호화 블록(CTB)은 NxN개의 샘플들을 포함하는 NxN 블록을 의미한다(N은 정수). 각 컬러 성분은 하나 이상의 최대 부호화 블록으로 분할될 수 있다.
픽처가 3개의 샘플 어레이(Y, Cr, Cb 성분별 샘플 어레이)를 가지는 경우에 최대 부호화 단위(CTU)란, 루마 샘플의 최대 부호화 블록 및 그에 대응되는 크로마 샘플들의 2개의 최대 부호화 블록과, 루마 샘플, 크로마 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 모노크롬 픽처인 경우에 최대 부호화 단위란, 모노크롬 샘플의 최대 부호화 블록과 모노크롬 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 컬러 성분별로 분리되는 컬러 플레인으로 부호화되는 픽처인 경우에 최대 부호화 단위란, 해당 픽처와 픽처의 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다.
하나의 최대 부호화 블록(CTB)은 MxN개의 샘플들을 포함하는 MxN 부호화 블록(coding block)으로 분할될 수 있다 (M, N은 정수).
픽처가 Y, Cr, Cb 성분별 샘플 어레이를 가지는 경우에 부호화 단위(Coding Unit; CU)란, 루마 샘플의 부호화 블록 및 그에 대응되는 크로마 샘플들의 2개의 부호화 블록과, 루마 샘플, 크로마 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 모노크롬 픽처인 경우에 부호화 단위란, 모노크롬 샘플의 부호화 블록과 모노크롬 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다. 픽처가 컬러 성분별로 분리되는 컬러 플레인으로 부호화되는 픽처인 경우에 부호화 단위란, 해당 픽처와 픽처의 샘플들을 부호화하는데 이용되는 신택스 구조들을 포함하는 단위이다.
위에서 설명한 바와 같이, 최대 부호화 블록과 최대 부호화 단위는 서로 구별되는 개념이며, 부호화 블록과 부호화 단위는 서로 구별되는 개념이다. 즉, (최대) 부호화 단위는 해당 샘플을 포함하는 (최대) 부호화 블록과 그에 대응하는 신택스 구조를 포함하는 데이터 구조를 의미한다. 하지만 당업자가 (최대) 부호화 단위 또는 (최대) 부호화 블록가 소정 개수의 샘플들을 포함하는 소정 크기의 블록을 지칭한다는 것을 이해할 수 있으므로, 이하 명세서에서는 최대 부호화 블록과 최대 부호화 단위, 또는 부호화 블록과 부호화 단위를 특별한 사정이 없는 한 구별하지 않고 언급한다.
영상은 최대 부호화 단위(Coding Tree Unit; CTU)로 분할될 수 있다. 최대 부호화 단위의 크기는 비트스트림으로부터 획득된 정보에 기초하여 결정될 수 있다. 최대 부호화 단위의 모양은 동일 크기의 정사각형을 가질 수 있다. 하지만 이에 한정되는 것은 아니다.
예를 들어, 비트스트림으로부터 루마 부호화 블록의 최대 크기에 대한 정보가 획득될 수 있다. 예를 들어, 루마 부호화 블록의 최대 크기에 대한 정보가 나타내는 루마 부호화 블록의 최대 크기는 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256 중 하나일 수 있다.
예를 들어, 비트스트림으로부터 2분할이 가능한 루마 부호화 블록의 최대 크기와 루마 블록 크기 차이에 대한 정보가 획득될 수 있다. 루마 블록 크기 차이에 대한 정보는 루마 최대 부호화 단위와 2분할이 가능한 최대 루마 부호화 블록 간의 크기 차이를 나타낼 수 있다. 따라서, 비트스트림으로부터 획득된 2분할이 가능한 루마 부호화 블록의 최대 크기에 대한 정보와 루마 블록 크기 차이에 대한 정보를 결합하면, 루마 최대 부호화 단위의 크기가 결정될 수 있다. 루마 최대 부호화 단위의 크기를 이용하면 크로마 최대 부호화 단위의 크기도 결정될 수 있다. 예를 들어, 컬러 포맷에 따라 Y: Cb : Cr 비율이 4:2:0 이라면, 크로마 블록의 크기는 루마 블록의 크기의 절반일 수 있고, 마찬가지로 크로마 최대 부호화 단위의 크기는 루마 최대 부호화 단위의 크기의 절반일 수 있다.
일 실시예에 따르면, 바이너리 분할(binary split)이 가능한 루마 부호화 블록의 최대 크기에 대한 정보는 비트스트림으로부터 획득하므로, 바이너리 분할이 가능한 루마 부호화 블록의 최대 크기는 가변적으로 결정될 수 있다. 이와 달리, 터너리 분할(ternary split)이 가능한 루마 부호화 블록의 최대 크기는 고정될 수 있다. 예를 들어, I 픽처에서 터너리 분할이 가능한 루마 부호화 블록의 최대 크기는 32x32이고, P 픽처 또는 B 픽처에서 터너리 분할이 가능한 루마 부호화 블록의 최대 크기는 64x64일 수 있다.
또한 최대 부호화 단위는 비트스트림으로부터 획득된 분할 형태 모드 정보에 기초하여 부호화 단위로 계층적으로 분할될 수 있다. 분할 형태 모드 정보로서, 쿼드분할(quad split) 여부를 나타내는 정보, 다분할 여부를 나타내는 정보, 분할 방향 정보 및 분할 타입 정보 중 적어도 하나가 비트스트림으로부터 획득될 수 있다.
예를 들어, 쿼드분할(quad split) 여부를 나타내는 정보는 현재 부호화 단위가 쿼드분할(QUAD_SPLIT)될지 또는 쿼드분할되지 않을지를 나타낼 수 있다.
현재 부호화 단위가 쿼드분할지되 않으면, 다분할 여부를 나타내는 정보는 현재 부호화 단위가 더 이상 분할되지 않을지(NO_SPLIT) 아니면 바이너리/터너리 분할될지 여부를 나타낼 수 있다.
현재 부호화 단위가 바이너리 분할되거나 터너리 분할되면, 분할 방향 정보는 현재 부호화 단위가 수평 방향 또는 수직 방향 중 하나로 분할됨을 나타낸다.
현재 부호화 단위가 수평 또는 수직 방향으로 분할되면 분할 타입 정보는 현재 부호화 단위를 바이너리 분할) 또는 터너리 분할로 분할함을 나타낸다.
분할 방향 정보 및 분할 타입 정보에 따라, 현재 부호화 단위의 분할 모드가 결정될 수 있다. 현재 부호화 단위가 수평 방향으로 바이너리 분할되는 경우의 분할 모드는 바이너리 수평 분할(SPLIT_BT_HOR), 수평 방향으로 터너리 분할되는 경우의 터너리 수평 분할(SPLIT_TT_HOR), 수직 방향으로 바이너리 분할되는 경우의 분할 모드는 바이너리 수직 분할 (SPLIT_BT_VER) 및 수직 방향으로 터너리 분할되는 경우의 분할 모드는 터너리 수직 분할 (SPLIT_BT_VER)로 결정될 수 있다.
영상 복호화 장치(100)는 비트스트림으로부터 분할 형태 모드 정보를 하나의 빈스트링으로부터 획득할 수 있다. 영상 복호화 장치(100)가 수신한 비트스트림의 형태는 Fixed length binary code, Unary code, Truncated unary code, 미리 결정된 바이너리 코드 등을 포함할 수 있다. 빈스트링은 정보를 2진수의 나열로 나타낸 것이다. 빈스트링은 적어도 하나의 비트로 구성될 수 있다. 영상 복호화 장치(100)는 분할 규칙에 기초하여 빈스트링에 대응하는 분할 형태 모드 정보를 획득할 수 있다. 영상 복호화 장치(100)는 하나의 빈스트링에 기초하여, 부호화 단위를 쿼드분할할지 여부, 분할하지 않을지 또는 분할 방향 및 분할 타입을 결정할 수 있다.
부호화 단위는 최대 부호화 단위보다 작거나 같을 수 있다. 예를 들어 최대 부호화 단위도 최대 크기를 가지는 부호화 단위이므로 부호화 단위의 하나이다. 최대 부호화 단위에 대한 분할 형태 모드 정보가 분할되지 않음을 나타내는 경우, 최대 부호화 단위에서 결정되는 부호화 단위는 최대 부호화 단위와 같은 크기를 가진다. 최대 부호화 단위에 대한 분할 형태 모드 정보가 분할됨을 나타내는 경우 최대 부호화 단위는 부호화 단위들로 분할 될 수 있다. 또한 부호화 단위에 대한 분할 형태 모드 정보가 분할을 나타내는 경우 부호화 단위들은 더 작은 크기의 부호화 단위들로 분할 될 수 있다. 다만, 영상의 분할은 이에 한정되는 것은 아니며 최대 부호화 단위 및 부호화 단위는 구별되지 않을 수 있다. 부호화 단위의 분할에 대해서는 도 3 내지 도 16에서 보다 자세히 설명한다.
또한 부호화 단위로부터 예측을 위한 하나 이상의 예측 블록이 결정될 수 있다. 예측 블록은 부호화 단위와 같거나 작을 수 있다. 또한 부호화 단위로부터 변환을 위한 하나 이상의 변환 블록이 결정될 수 있다. 변환 블록은 부호화 단위와 같거나 작을 수 있다.
변환 블록과 예측 블록의 모양 및 크기는 서로 관련 없을 수 있다.
다른 실시예로, 부호화 단위가 예측 블록으로서 부호화 단위를 이용하여 예측이 수행될 수 있다. 또한 부호화 단위가 변환 블록으로서 부호화 단위를 이용하여 변환이 수행될 수 있다.
부호화 단위의 분할에 대해서는 도 3 내지 도 16에서 보다 자세히 설명한다. 본 개시의 현재 블록 및 주변 블록은 최대 부호화 단위, 부호화 단위, 예측 블록 및 변환 블록 중 하나를 나타낼 수 있다. 또한, 현재 블록 또는 현재 부호화 단위는 현재 복호화 또는 부호화가 진행되는 블록 또는 현재 분할이 진행되고 있는 블록이다. 주변 블록은 현재 블록 이전에 복원된 블록일 수 있다. 주변 블록은 현재 블록으로부터 공간적 또는 시간적으로 인접할 수 있다. 주변 블록은 현재 블록의 좌하측, 좌측, 좌상측, 상측, 우상측, 우측, 우하측 중 하나에 위치할 수 있다.
도 3은 일 실시예에 따라 영상 복호화 장치가 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.
블록 형태는 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN 또는 Nx8N을 포함할 수 있다. 여기서 N은 양의 정수일 수 있다. 블록 형태 정보는 부호화 단위의 모양, 방향, 너비 및 높이의 비율 또는 크기 중 적어도 하나를 나타내는 정보이다.
부호화 단위의 모양은 정사각형(square) 및 비-정사각형(non-square)을 포함할 수 있다. 부호화 단위의 너비 및 높이의 길이가 같은 경우(즉, 부호화 단위의 블록 형태가 4Nx4N 인 경우), 영상 복호화 장치(100)는 부호화 단위의 블록 형태 정보를 정사각형으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 모양을 비-정사각형으로 결정할 수 있다.
부호화 단위의 너비 및 높이의 길이가 다른 경우(즉, 부호화 단위의 블록 형태가 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)는 부호화 단위의 크기를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 블록 형태 정보를 이용하여 부호화 단위의 형태를 결정할 수 있고, 분할 형태 모드 정보를 이용하여 부호화 단위가 어떤 형태로 분할되는지를 결정할 수 있다. 즉, 영상 복호화 장치(100)가 이용하는 블록 형태 정보가 어떤 블록 형태를 나타내는지에 따라 분할 형태 모드 정보가 나타내는 부호화 단위의 분할 방법이 결정될 수 있다.
영상 복호화 장치(100)는 비트스트림으로부터 분할 형태 모드 정보를 획득할 수 있다. 하지만 이에 한정되는 것은 아니며, 영상 복호화 장치(100) 및 영상 부호화 장치(2200)는 블록 형태 정보에 기초하여 미리 약속된 분할 형태 모드 정보를 결정할 수 있다. 영상 복호화 장치(100)는 최대 부호화 단위 또는 최소 부호화 단위에 대하여 미리 약속된 분할 형태 모드 정보를 결정할 수 있다. 예를 들어 영상 복호화 장치(100)는 최대 부호화 단위에 대하여 분할 형태 모드 정보를 쿼드 분할(quad split)로 결정할 수 있다. 또한, 영상 복호화 장치(100)는 최소 부호화 단위에 대하여 분할 형태 모드 정보를 "분할하지 않음"으로 결정할 수 있다. 구체적으로 영상 복호화 장치(100)는 최대 부호화 단위의 크기를 256x256으로 결정할 수 있다. 영상 복호화 장치(100)는 미리 약속된 분할 형태 모드 정보를 쿼드 분할로 결정할 수 있다. 쿼드 분할은 부호화 단위의 너비 및 높이를 모두 이등분하는 분할 형태 모드이다. 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 256x256 크기의 최대 부호화 단위로부터 128x128 크기의 부호화 단위를 획득할 수 있다. 또한 영상 복호화 장치(100)는 최소 부호화 단위의 크기를 4x4로 결정할 수 있다. 영상 복호화 장치(100)는 최소 부호화 단위에 대하여 "분할하지 않음"을 나타내는 분할 형태 모드 정보를 획득할 수 있다.
일 실시예에 따라, 영상 복호화 장치(100)는 현재 부호화 단위가 정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 예를 들어 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 정사각형의 부호화 단위를 분할하지 않을지, 수직으로 분할할지, 수평으로 분할할지, 4개의 부호화 단위로 분할할지 등을 결정할 수 있다. 도 3을 참조하면, 현재 부호화 단위(300)의 블록 형태 정보가 정사각형의 형태를 나타내는 경우, 복호화부(120)는 분할되지 않음을 나타내는 분할 형태 모드 정보에 따라 현재 부호화 단위(300)와 동일한 크기를 가지는 부호화 단위(310a)를 분할하지 않거나, 소정의 분할방법을 나타내는 분할 형태 모드 정보에 기초하여 분할된 부호화 단위(310b, 310c, 310d, 310e, 310f 등)를 결정할 수 있다.
도 3을 참조하면 영상 복호화 장치(100)는 일 실시예에 따라 수직방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수직방향으로 분할한 두 개의 부호화 단위(310b)를 결정할 수 있다. 영상 복호화 장치(100)는 수평방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수평방향으로 분할한 두 개의 부호화 단위(310c)를 결정할 수 있다. 영상 복호화 장치(100)는 수직방향 및 수평방향으로 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수직방향 및 수평방향으로 분할한 네 개의 부호화 단위(310d)를 결정할 수 있다. 영상 복호화 장치(100)는 일 실시예에 따라 수직방향으로 터너리(ternary) 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수직방향으로 분할한 세 개의 부호화 단위(310e)를 결정할 수 있다. 영상 복호화 장치(100)는 수평방향으로 터너리 분할됨을 나타내는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(300)를 수평방향으로 분할한 세 개의 부호화 단위(310f)를 결정할 수 있다. 다만 정사각형의 부호화 단위가 분할될 수 있는 분할 형태는 상술한 형태로 한정하여 해석되어서는 안되고, 분할 형태 모드 정보가 나타낼 수 있는 다양한 형태가 포함될 수 있다. 정사각형의 부호화 단위가 분할되는 소정의 분할 형태들은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다.
도 4는 일 실시예에 따라 영상 복호화 장치가 비-정사각형의 형태인 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위가 비-정사각형 형태임을 나타내는 블록 형태 정보를 이용할 수 있다. 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 비-정사각형의 현재 부호화 단위를 분할하지 않을지 소정의 방법으로 분할할지 여부를 결정할 수 있다. 도 4를 참조하면, 현재 부호화 단위(400 또는 450)의 블록 형태 정보가 비-정사각형의 형태를 나타내는 경우, 영상 복호화 장치(100)는 분할되지 않음을 나타내는 분할 형태 모드 정보에 따라 현재 부호화 단위(400 또는 450)와 동일한 크기를 가지는 부호화 단위(410 또는 460)를 결정하거나, 소정의 분할방법을 나타내는 분할 형태 모드 정보에 따라 기초하여 분할된 부호화 단위(420a, 420b, 430a, 430b, 430c, 470a, 470b, 480a, 480b, 480c)를 결정할 수 있다. 비-정사각형의 부호화 단위가 분할되는 소정의 분할 방법은 이하에서 다양한 실시예를 통해 구체적으로 설명하도록 한다.
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보를 이용하여 부호화 단위가 분할되는 형태를 결정할 수 있고, 이 경우 분할 형태 모드 정보는 부호화 단위가 분할되어 생성되는 적어도 하나의 부호화 단위의 개수를 나타낼 수 있다. 도 4를 참조하면 분할 형태 모드 정보가 두 개의 부호화 단위로 현재 부호화 단위(400 또는 450)가 분할되는 것을 나타내는 경우, 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(400 또는 450)를 분할하여 현재 부호화 단위에 포함되는 두 개의 부호화 단위(420a, 420b, 또는 470a, 470b)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)가 분할 형태 모드 정보에 기초하여 비-정사각형의 형태의 현재 부호화 단위(400 또는 450)를 분할하는 경우, 영상 복호화 장치(100)는 비-정사각형의 현재 부호화 단위(400 또는 450)의 긴 변의 위치를 고려하여 현재 부호화 단위를 분할할 수 있다. 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)의 형태를 고려하여 현재 부호화 단위(400 또는 450)의 긴 변을 분할하는 방향으로 현재 부호화 단위(400 또는 450)를 분할하여 복수개의 부호화 단위를 결정할 수 있다.
일 실시예에 따라, 분할 형태 모드 정보가 홀수개의 블록으로 부호화 단위를 분할(터너리 분할)하는 것을 나타내는 경우, 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)에 포함되는 홀수개의 부호화 단위를 결정할 수 있다. 예를 들면, 분할 형태 모드 정보가 3개의 부호화 단위로 현재 부호화 단위(400 또는 450)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)를 3개의 부호화 단위(430a, 430b, 430c, 480a, 480b, 480c)로 분할할 수 있다.
일 실시예에 따라, 현재 부호화 단위(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)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위(400 또는 450)에 포함되는 홀수개의 부호화 단위를 결정할 수 있으며, 결정된 부호화 단위들의 크기 모두가 동일하지는 않을 수 있다. 예를 들면, 결정된 홀수개의 부호화 단위(430a, 430b, 430c, 480a, 480b, 480c) 중 소정의 부호화 단위(430b 또는 480b)의 크기는 다른 부호화 단위(430a, 430c, 480a, 480c)들과는 다른 크기를 가질 수도 있다. 즉, 현재 부호화 단위(400 또는 450)가 분할되어 결정될 수 있는 부호화 단위는 복수의 종류의 크기를 가질 수 있고, 경우에 따라서는 홀수개의 부호화 단위(430a, 430b, 430c, 480a, 480b, 480c)가 각각 서로 다른 크기를 가질 수도 있다.
일 실시예에 따라 분할 형태 모드 정보가 홀수개의 블록으로 부호화 단위가 분할되는 것을 나타내는 경우, 영상 복호화 장치(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)와 달리 더 이상 분할되지 않도록 제한하거나, 소정의 횟수만큼만 분할되도록 제한할 수 있다.
도 5는 일 실시예에 따라 영상 복호화 장치가 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나에 기초하여 부호화 단위를 분할하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(100)는 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나에 기초하여 정사각형 형태의 제1 부호화 단위(500)를 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다. 일 실시예에 따라 분할 형태 모드 정보가 수평 방향으로 제1 부호화 단위(500)를 분할하는 것을 나타내는 경우, 영상 복호화 장치(100)는 제1 부호화 단위(500)를 수평 방향으로 분할하여 제2 부호화 단위(510)를 결정할 수 있다. 일 실시예에 따라 이용되는 제1 부호화 단위, 제2 부호화 단위, 제3 부호화 단위는 부호화 단위 간의 분할 전후 관계를 이해하기 위해 이용된 용어이다. 예를 들면, 제1 부호화 단위를 분할하면 제2 부호화 단위가 결정될 수 있고, 제2 부호화 단위가 분할되면 제3 부호화 단위가 결정될 수 있다. 이하에서는 이용되는 제1 부호화 단위, 제2 부호화 단위 및 제3 부호화 단위의 관계는 상술한 특징에 따르는 것으로 이해될 수 있다.
일 실시예에 따라 영상 복호화 장치(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 등)으로 분할될 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 관련된 분할 형태 모드 정보에 기초하여 재귀적으로 분할될 수 있다. 따라서 비-정사각형 형태의 부호화 단위에서 정사각형의 부호화 단위가 결정될 수 있고, 이러한 정사각형 형태의 부호화 단위가 재귀적으로 분할되어 비-정사각형 형태의 부호화 단위가 결정될 수도 있다.
도 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)는 홀수개의 부호화 단위로 다시 분할될 수도 있다. 부호화 단위의 재귀적 분할에 이용될 수 있는 방법에 대하여는 다양한 실시예를 통해 후술하도록 한다.
일 실시예에 따라 영상 복호화 장치(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)에 대하여는 더 이상 분할되지 않는 것으로 제한하거나 또는 설정 가능한 횟수로 분할되어야 하는 것으로 제한할 수 있다.
도 5를 참조하면, 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(510)에 포함되는 홀수개의 제3 부호화 단위(520b, 520c, 520d)들 중 가운데에 위치하는 부호화 단위(520c)는 더 이상 분할되지 않거나, 소정의 분할 형태로 분할(예를 들면 4개의 부호화 단위로만 분할하거나 제2 부호화 단위(510)가 분할된 형태에 대응하는 형태로 분할)되는 것으로 제한하거나, 소정의 횟수로만 분할(예를 들면 n회만 분할, n>0)하는 것으로 제한할 수 있다. 다만 가운데에 위치한 부호화 단위(520c)에 대한 상기 제한은 단순한 실시예들에 불과하므로 상술한 실시예들로 제한되어 해석되어서는 안되고, 가운데에 위치한 부호화 단위(520c)가 다른 부호화 단위(520b, 520d)와 다르게 복호화 될 수 있는 다양한 제한들을 포함하는 것으로 해석되어야 한다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 분할하기 위해 이용되는 분할 형태 모드 정보를 현재 부호화 단위 내의 소정의 위치에서 획득할 수 있다.
도 6은 일 실시예에 따라 영상 복호화 장치가 홀수개의 부호화 단위들 중 소정의 부호화 단위를 결정하기 위한 방법을 도시한다.
도 6을 참조하면, 현재 부호화 단위(600, 650)의 분할 형태 모드 정보는 현재 부호화 단위(600, 650)에 포함되는 복수개의 샘플 중 소정 위치의 샘플(예를 들면, 가운데에 위치하는 샘플(640, 690))에서 획득될 수 있다. 다만 이러한 분할 형태 모드 정보 중 적어도 하나가 획득될 수 있는 현재 부호화 단위(600) 내의 소정 위치가 도 6에서 도시하는 가운데 위치로 한정하여 해석되어서는 안되고, 소정 위치에는 현재 부호화 단위(600)내에 포함될 수 있는 다양한 위치(예를 들면, 최상단, 최하단, 좌측, 우측, 좌측상단, 좌측하단, 우측상단 또는 우측하단 등)가 포함될 수 있는 것으로 해석되어야 한다. 영상 복호화 장치(100)는 소정 위치로부터 획득되는 분할 형태 모드 정보를 획득하여 현재 부호화 단위를 다양한 형태 및 크기의 부호화 단위들로 분할하거나 분할하지 않는 것으로 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위가 소정의 개수의 부호화 단위들로 분할된 경우 그 중 하나의 부호화 단위를 선택할 수 있다. 복수개의 부호화 단위들 중 하나를 선택하기 위한 방법은 다양할 수 있으며, 이러한 방법들에 대한 설명은 이하의 다양한 실시예를 통해 후술하도록 한다.
일 실시예에 따라 영상 복호화 장치(100) 는 현재 부호화 단위를 복수개의 부호화 단위들로 분할하고, 소정 위치의 부호화 단위를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)를 결정할 수 있다.
일 실시예에 따라 부호화 단위들(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)를 결정할 수 있다.
일 실시예에 따라, 상단 부호화 단위(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)좌표를 이용할 수도 있다. 또한 부호화 단위에 포함되는 샘플의 위치를 나타내는 정보로서 해당 샘플의 좌표를 이용함으로써 소정 위치의 부호화 단위를 결정하는 방법이 상술한 방법으로 한정하여 해석되어서는 안되고, 샘플의 좌표를 이용할 수 있는 다양한 산술적 방법으로 해석되어야 한다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위(600)를 복수개의 부호화 단위들(620a, 620b, 620c)로 분할할 수 있고, 부호화 단위들(620a, 620b, 620c) 중 소정의 기준에 따라 부호화 단위를 선택할 수 있다. 예를 들면, 영상 복호화 장치(100)는 부호화 단위들(620a, 620b, 620c) 중 크기가 다른 부호화 단위(620b)를 선택할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)가 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정하는 과정은 샘플 좌표에 기초하여 결정되는 부호화 단위의 크기를 이용하여 소정 위치의 부호화 단위를 결정하는 일 실시예에 불과하므로, 소정의 샘플 좌표에 따라 결정되는 부호화 단위의 크기를 비교하여 소정 위치의 부호화 단위를 결정하는 다양한 과정이 이용될 수 있다.
영상 복호화 장치(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) 각각의 크기를 결정할 수 있다.
일 실시예에 따라, 영상 복호화 장치(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)가 다른 부호화 단위와 다른 크기를 갖는 부호화 단위를 결정하는 과정은 샘플 좌표에 기초하여 결정되는 부호화 단위의 크기를 이용하여 소정 위치의 부호화 단위를 결정하는 일 실시예에 불과하므로, 소정의 샘플 좌표에 따라 결정되는 부호화 단위의 크기를 비교하여 소정 위치의 부호화 단위를 결정하는 다양한 과정이 이용될 수 있다.
다만 부호화 단위의 위치를 결정하기 위하여 고려하는 샘플의 위치는 상술한 좌측 상단으로 한정하여 해석되어서는 안되고 부호화 단위에 포함되는 임의의 샘플의 위치에 대한 정보가 이용될 수 있는 것으로 해석될 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위의 형태를 고려하여, 현재 부호화 단위가 분할되어 결정되는 홀수개의 부호화 단위들 중 소정 위치의 부호화 단위를 선택할 수 있다. 예를 들면, 현재 부호화 단위가 너비가 높이보다 긴 비-정사각형 형태라면 영상 복호화 장치(100)는 수평 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 수평 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다. 현재 부호화 단위가 높이가 너비보다 긴 비-정사각형 형태라면 영상 복호화 장치(100)는 수직 방향에 따라 소정 위치의 부호화 단위를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 수직 방향으로 위치를 달리 하는 부호화 단위들 중 하나를 결정하여 해당 부호화 단위에 대한 제한을 둘 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 짝수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 짝수개의 부호화 단위들 각각의 위치를 나타내는 정보를 이용할 수 있다. 영상 복호화 장치(100)는 현재 부호화 단위를 분할(바이너리 분할)하여 짝수개의 부호화 단위들을 결정할 수 있고 짝수개의 부호화 단위들의 위치에 대한 정보를 이용하여 소정 위치의 부호화 단위를 결정할 수 있다. 이에 대한 구체적인 과정은 도 6에서 상술한 홀수개의 부호화 단위들 중 소정 위치(예를 들면, 가운데 위치)의 부호화 단위를 결정하는 과정에 대응하는 과정일 수 있으므로 생략하도록 한다.
일 실시예에 따라, 비-정사각형 형태의 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여 분할 과정에서 소정 위치의 부호화 단위에 대한 소정의 정보를 이용할 수 있다. 예를 들면 영상 복호화 장치(100)는 현재 부호화 단위가 복수개로 분할된 부호화 단위들 중 가운데에 위치하는 부호화 단위를 결정하기 위하여 분할 과정에서 가운데 부호화 단위에 포함된 샘플에 저장된 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나를 이용할 수 있다.
도 6을 참조하면 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 현재 부호화 단위(600)를 복수개의 부호화 단위들(620a, 620b, 620c)로 분할할 수 있으며, 복수개의 부호화 단위들(620a, 620b, 620c) 중 가운데에 위치하는 부호화 단위(620b)를 결정할 수 있다. 나아가 영상 복호화 장치(100)는 분할 형태 모드 정보가 획득되는 위치를 고려하여, 가운데에 위치하는 부호화 단위(620b)를 결정할 수 있다. 즉, 현재 부호화 단위(600)의 분할 형태 모드 정보는 현재 부호화 단위(600)의 가운데에 위치하는 샘플(640)에서 획득될 수 있으며, 상기 분할 형태 모드 정보에 기초하여 현재 부호화 단위(600)가 복수개의 부호화 단위들(620a, 620b, 620c)로 분할된 경우 상기 샘플(640)을 포함하는 부호화 단위(620b)를 가운데에 위치하는 부호화 단위로 결정할 수 있다. 다만 가운데에 위치하는 부호화 단위로 결정하기 위해 이용되는 정보가 분할 형태 모드 정보로 한정하여 해석되어서는 안되고, 다양한 종류의 정보가 가운데에 위치하는 부호화 단위를 결정하는 과정에서 이용될 수 있다.
일 실시예에 따라 소정 위치의 부호화 단위를 식별하기 위한 소정의 정보는, 결정하려는 부호화 단위에 포함되는 소정의 샘플에서 획득될 수 있다. 도 6을 참조하면, 영상 복호화 장치(100)는 현재 부호화 단위(600)가 분할되어 결정된 복수개의 부호화 단위들(620a, 620b, 620c) 중 소정 위치의 부호화 단위(예를 들면, 복수개로 분할된 부호화 단위 중 가운데에 위치하는 부호화 단위)를 결정하기 위하여 현재 부호화 단위(600) 내의 소정 위치의 샘플(예를 들면, 현재 부호화 단위(600)의 가운데에 위치하는 샘플)에서 획득되는 분할 형태 모드 정보를 이용할 수 있다. 즉, 영상 복호화 장치(100)는 현재 부호화 단위(600)의 블록 형태를 고려하여 상기 소정 위치의 샘플을 결정할 수 있고, 영상 복호화 장치(100)는 현재 부호화 단위(600)가 분할되어 결정되는 복수개의 부호화 단위들(620a, 620b, 620c) 중, 소정의 정보(예를 들면, 분할 형태 모드 정보)가 획득될 수 있는 샘플이 포함된 부호화 단위(620b)를 결정하여 소정의 제한을 둘 수 있다. 도 6을 참조하면 일 실시예에 따라 영상 복호화 장치(100)는 소정의 정보가 획득될 수 있는 샘플로서 현재 부호화 단위(600)의 가운데에 위치하는 샘플(640)을 결정할 수 있고, 영상 복호화 장치(100)는 이러한 샘플(640)이 포함되는 부호화 단위(620b)를 복호화 과정에서의 소정의 제한을 둘 수 있다. 다만 소정의 정보가 획득될 수 있는 샘플의 위치는 상술한 위치로 한정하여 해석되어서는 안되고, 제한을 두기 위해 결정하려는 부호화 단위(620b)에 포함되는 임의의 위치의 샘플들로 해석될 수 있다.
일 실시예에 따라 소정의 정보가 획득될 수 있는 샘플의 위치는 현재 부호화 단위(600)의 형태에 따라 결정될 수 있다. 일 실시예에 따라 블록 형태 정보는 현재 부호화 단위의 형태가 정사각형인지 또는 비-정사각형인지 여부를 결정할 수 있고, 형태에 따라 소정의 정보가 획득될 수 있는 샘플의 위치를 결정할 수 있다. 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위의 너비에 대한 정보 및 높이에 대한 정보 중 적어도 하나를 이용하여 현재 부호화 단위의 너비 및 높이 중 적어도 하나를 반으로 분할하는 경계 상에 위치하는 샘플을 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다. 또다른 예를 들면, 영상 복호화 장치(100)는 현재 부호화 단위에 관련된 블록 형태 정보가 비-정사각형 형태임을 나타내는 경우, 현재 부호화 단위의 긴 변을 반으로 분할하는 경계를 포함하는 샘플 중 하나를 소정의 정보가 획득될 수 있는 샘플로 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 복수개의 부호화 단위로 분할한 경우, 복수개의 부호화 단위들 중 소정 위치의 부호화 단위를 결정하기 위하여, 분할 형태 모드 정보를 이용할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보를 부호화 단위에 포함된 소정 위치의 샘플에서 획득할 수 있고, 영상 복호화 장치(100)는 현재 부호화 단위가 분할되어 생성된 복수개의 부호화 단위들을 복수개의 부호화 단위 각각에 포함된 소정 위치의 샘플로부터 획득되는 분할 형태 모드 정보를 이용하여 분할할 수 있다. 즉, 부호화 단위는 부호화 단위 각각에 포함된 소정 위치의 샘플에서 획득되는 분할 형태 모드 정보를 이용하여 재귀적으로 분할될 수 있다. 부호화 단위의 재귀적 분할 과정에 대하여는 도 5를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정할 수 있고, 이러한 적어도 하나의 부호화 단위가 복호화되는 순서를 소정의 블록(예를 들면, 현재 부호화 단위)에 따라 결정할 수 있다.
도 7는 일 실시예에 따라 영상 복호화 장치가 현재 부호화 단위를 분할하여 복수개의 부호화 단위들을 결정하는 경우, 복수개의 부호화 단위들이 처리되는 순서를 도시한다.
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 따라 제1 부호화 단위(700)를 수직 방향으로 분할하여 제2 부호화 단위(710a, 710b)를 결정하거나 제1 부호화 단위(700)를 수평 방향으로 분할하여 제2 부호화 단위(730a, 730b)를 결정하거나 제1 부호화 단위(700)를 수직 방향 및 수평 방향으로 분할하여 제2 부호화 단위(750a, 750b, 750c, 750d)를 결정할 수 있다.
도 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) 등)에 따라 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(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) 각각을 독립적으로 분할하거나 분할하지 않는 것으로 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 좌측의 제2 부호화 단위(710a)를 수평 방향으로 분할하여 제3 부호화 단위(720a, 720b)로 분할할 수 있고, 우측의 제2 부호화 단위(710b)는 분할하지 않을 수 있다.
일 실시예에 따라 부호화 단위들의 처리 순서는 부호화 단위의 분할 과정에 기초하여 결정될 수 있다. 다시 말해, 분할된 부호화 단위들의 처리 순서는 분할되기 직전의 부호화 단위들의 처리 순서에 기초하여 결정될 수 있다. 영상 복호화 장치(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)가 처리될 수 있다. 상술한 내용은 부호화 단위들이 각각 분할 전의 부호화 단위에 따라 처리 순서가 결정되는 과정을 설명하기 위한 것이므로, 상술한 실시예에 한정하여 해석되어서는 안되고, 다양한 형태로 분할되어 결정되는 부호화 단위들이 소정의 순서에 따라 독립적으로 처리될 수 있는 다양한 방법으로 이용되는 것으로 해석되어야 한다.
도 8는 일 실시예에 따라 영상 복호화 장치가 소정의 순서로 부호화 단위가 처리될 수 없는 경우, 현재 부호화 단위가 홀수개의 부호화 단위로 분할되는 것임을 결정하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(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)로 분할할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)가 상기 소정의 순서에 따라 처리될 수 있는 조건을 만족하는지를 판단할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.
도 9은 일 실시예에 따라 영상 복호화 장치가 제1 부호화 단위를 분할하여 적어도 하나의 부호화 단위를 결정하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(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)로 분할할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)는 홀수개의 부호화 단위로 분할되는 경우 분할된 부호화 단위들 중 소정 위치의 부호화 단위에 대하여 소정의 제한을 둘 수 있으며, 이러한 제한 내용 또는 소정 위치 등에 대하여는 다양한 실시예를 통해 상술하였으므로 자세한 설명은 생략하도록 한다.
일 실시예에 따라, 영상 복호화 장치(100)는 제1 부호화 단위를 분할하여 다양한 형태의 부호화 단위들을 결정할 수 있다.
도 9을 참조하면, 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(900), 비-정사각형 형태의 제1 부호화 단위(930 또는 950)를 다양한 형태의 부호화 단위들로 분할할 수 있다.
도 10은 일 실시예에 따라 영상 복호화 장치가 제1 부호화 단위가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위가 소정의 조건을 만족하는 경우 제2 부호화 단위가 분할될 수 있는 형태가 제한되는 것을 도시한다.
일 실시예에 따라 영상 복호화 장치(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)로 분할한 것과 동일한 결과이며 이는 영상 복호화 측면에서 비효율적일 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 수평 방향으로 제1 부호화 단위(1000)가 분할되어 결정된 비-정사각형 형태의 제2 부호화 단위(1020a 또는 1020b)를 수직 방향으로 분할하여 제3 부호화 단위(1022a, 1022b, 1024a, 1024b)를 결정할 수 있다. 다만 영상 복호화 장치(100)는 제2 부호화 단위 중 하나(예를 들면 상단 제2 부호화 단위(1020a))를 수직 방향으로 분할한 경우, 상술한 이유에 따라 다른 제2 부호화 단위(예를 들면 하단 부호화 단위(1020b))는 상단 제2 부호화 단위(1020a)가 분할된 방향과 동일하게 수직 방향으로 분할될 수 없도록 제한할 수 있다.
도 11은 일 실시예에 따라 분할 형태 모드 정보가 4개의 정사각형 형태의 부호화 단위로 분할하는 것을 나타낼 수 없는 경우, 영상 복호화 장치가 정사각형 형태의 부호화 단위를 분할하는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(100)는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1100)를 분할하여 제2 부호화 단위(1110a, 1110b, 1120a, 1120b 등)를 결정할 수 있다. 분할 형태 모드 정보에는 부호화 단위가 분할될 수 있는 다양한 형태에 대한 정보가 포함될 수 있으나, 다양한 형태에 대한 정보에는 정사각형 형태의 4개의 부호화 단위로 분할하기 위한 정보가 포함될 수 없는 경우가 있다. 이러한 분할 형태 모드 정보에 따르면, 영상 복호화 장치(100)는 정사각형 형태의 제1 부호화 단위(1100)를 4개의 정사각형 형태의 제2 부호화 단위(1130a, 1130b, 1130c, 1130d)로 분할하지 못한다. 분할 형태 모드 정보에 기초하여 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(1110a, 1110b, 1120a, 1120b 등)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 비-정사각형 형태의 제2 부호화 단위(1110a, 1110b, 1120a, 1120b 등)를 각각 독립적으로 분할할 수 있다. 재귀적인 방법을 통해 제2 부호화 단위(1110a, 1110b, 1120a, 1120b 등) 각각이 소정의 순서대로 분할될 수 있으며, 이는 분할 형태 모드 정보에 기초하여 제1 부호화 단위(1100)가 분할되는 방법에 대응하는 분할 방법일 수 있다.
예를 들면 영상 복호화 장치(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)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다.
또 다른 예를 들면 영상 복호화 장치(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)로 분할된 것과 동일한 형태로 부호화 단위가 결정될 수 있다.
도 12는 일 실시예에 따라 복수개의 부호화 단위들 간의 처리 순서가 부호화 단위의 분할 과정에 따라 달라질 수 있음을 도시한 것이다.
일 실시예에 따라 영상 복호화 장치(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과 관련하여 상술하였으므로 자세한 설명은 생략하도록 한다.
일 실시예에 따라 영상 복호화 장치(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)의 처리 순서를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)를 처리할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)를 처리할 수 있다.
도 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)는 분할 형태 모드 정보에 기초하여 상이한 과정을 통해 재귀적으로 부호화 단위를 분할함으로써 결과적으로 동일한 형태의 부호화 단위들을 결정하더라도, 동일한 형태로 결정된 복수개의 부호화 단위들을 서로 다른 순서로 처리할 수 있다.
도 13은 일 실시예에 따라 부호화 단위가 재귀적으로 분할되어 복수개의 부호화 단위가 결정되는 경우, 부호화 단위의 형태 및 크기가 변함에 따라 부호화 단위의 심도가 결정되는 과정을 도시한다.
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위의 심도를 소정의 기준에 따라 결정할 수 있다. 예를 들면 소정의 기준은 부호화 단위의 긴 변의 길이가 될 수 있다. 영상 복호화 장치(100)는 현재 부호화 단위의 긴 변의 길이가 분할되기 전의 부호화 단위의 긴 변의 길이보다 2n (n>0) 배로 분할된 경우, 현재 부호화 단위의 심도는 분할되기 전의 부호화 단위의 심도보다 n만큼 심도가 증가된 것으로 결정할 수 있다. 이하에서는 심도가 증가된 부호화 단위를 하위 심도의 부호화 단위로 표현하도록 한다.
도 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일 수 있다.
일 실시예에 따라 비-정사각형 형태를 나타내는 블록 형태 정보(예를 들면 블록 형태 정보는, 높이가 너비보다 긴 비-정사각형임을 나타내는 ′1: NS_VER′ 또는 너비가 높이보다 긴 비-정사각형임을 나타내는 ′2: NS_HOR′를 나타낼 수 있음)에 기초하여, 영상 복호화 장치(100)는 비-정사각형 형태인 제1 부호화 단위(1310 또는 1320)를 분할하여 하위 심도의 제2 부호화 단위(1312 또는 1322), 제3 부호화 단위(1314 또는 1324) 등을 결정할 수 있다.
영상 복호화 장치(100)는 Nx2N 크기의 제1 부호화 단위(1310)의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 1302, 1312, 1322 등)를 결정할 수 있다. 즉, 영상 복호화 장치(100)는 제1 부호화 단위(1310)를 수평 방향으로 분할하여 NxN 크기의 제2 부호화 단위(1302) 또는 NxN/2 크기의 제2 부호화 단위(1322)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 N/2xN 크기의 제2 부호화 단위(1312)를 결정할 수도 있다.
일 실시예에 따라 영상 복호화 장치(100)는 2NxN 크기의 제1 부호화 단위(1320) 의 너비 및 높이 중 적어도 하나를 분할하여 제2 부호화 단위(예를 들면, 1302, 1312, 1322 등)를 결정할 수도 있다. 즉, 영상 복호화 장치(100)는 제1 부호화 단위(1320)를 수직 방향으로 분할하여 NxN 크기의 제2 부호화 단위(1302) 또는 N/2xN 크기의 제2 부호화 단위(1312)를 결정할 수 있고, 수평 방향 및 수직 방향으로 분할하여 NxN/2 크기의 제2 부호화 단위(1322)를 결정할 수도 있다.
일 실시예에 따라 영상 복호화 장치(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)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(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)를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 정사각형 형태의 부호화 단위(예를 들면, 1300, 1302, 1304)를 수평 방향 또는 수직 방향으로 분할할 수 있다. 예를 들면, 2Nx2N 크기의 제1 부호화 단위(1300)를 수직 방향으로 분할하여 Nx2N 크기의 제1 부호화 단위(1310)를 결정하거나 수평 방향으로 분할하여 2NxN 크기의 제1 부호화 단위(1320)를 결정할 수 있다. 일 실시예에 따라 심도가 부호화 단위의 가장 긴 변의 길이에 기초하여 결정되는 경우, 2Nx2N 크기의 제1 부호화 단위(1300)가 수평 방향 또는 수직 방향으로 분할되어 결정되는 부호화 단위의 심도는 제1 부호화 단위(1300)의 심도와 동일할 수 있다.
일 실시예에 따라 제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일 수 있다.
도 14은 일 실시예에 따라 부호화 단위들의 형태 및 크기에 따라 결정될 수 있는 심도 및 부호화 단위 구분을 위한 인덱스(part index, 이하 PID)를 도시한다.
일 실시예에 따라 영상 복호화 장치(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)를 결정할 수 있다.
일 실시예에 따라 정사각형 형태의 제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의 심도일 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 높이가 너비보다 긴 형태의 제1 부호화 단위(1410)를 분할 형태 모드 정보에 따라 수평 방향으로 분할하여 복수개의 제2 부호화 단위(1412a, 1412b, 1414a, 1414b, 1414c)로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 너비가 높이보다 긴 형태의 제1 부호화 단위(1420)를 분할 형태 모드 정보에 따라 수직 방향으로 분할하여 복수개의 제2 부호화 단위(1422a, 1422b, 1424a, 1424b, 1424c)로 분할할 수 있다.
일 실시예에 따라 비-정사각형 형태의 제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이다.
나아가 영상 복호화 장치(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)와 관련된 부호화 단위들의 심도를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 분할된 부호화 단위들의 구분을 위한 인덱스(PID)를 결정함에 있어서, 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌 경우, 부호화 단위들 간의 크기 비율에 기초하여 인덱스를 결정할 수 있다. 도 14를 참조하면, 홀수개로 분할된 부호화 단위들(1414a, 1414b, 1414c) 중 가운데에 위치하는 부호화 단위(1414b)는 다른 부호화 단위들(1414a, 1414c)와 너비는 동일하지만 높이가 다른 부호화 단위들(1414a, 1414c)의 높이의 두 배일 수 있다. 즉, 이 경우 가운데에 위치하는 부호화 단위(1414b)는 다른 부호화 단위들(1414a, 1414c)의 두 개를 포함할 수 있다. 따라서, 스캔 순서에 따라 가운데에 위치하는 부호화 단위(1414b)의 인덱스(PID)가 1이라면 그 다음 순서에 위치하는 부호화 단위(1414c)는 인덱스가 2가 증가한 3일수 있다. 즉 인덱스의 값의 불연속성이 존재할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 이러한 분할된 부호화 단위들 간의 구분을 위한 인덱스의 불연속성의 존재 여부에 기초하여 홀수개로 분할된 부호화 단위들이 서로 동일한 크기가 아닌지 여부를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위로부터 분할되어 결정된 복수개의 부호화 단위들을 구분하기 위한 인덱스의 값에 기초하여 특정 분할 형태로 분할된 것인지를 결정할 수 있다. 도 14를 참조하면 영상 복호화 장치(100)는 높이가 너비보다 긴 직사각형 형태의 제1 부호화 단위(1410)를 분할하여 짝수개의 부호화 단위(1412a, 1412b)를 결정하거나 홀수개의 부호화 단위(1414a, 1414b, 1414c)를 결정할 수 있다. 영상 복호화 장치(100)는 복수개의 부호화 단위 각각을 구분하기 위하여 각 부호화 단위를 나타내는 인덱스(PID)를 이용할 수 있다. 일 실시예에 따라 PID는 각각의 부호화 단위의 소정 위치의 샘플(예를 들면, 좌측 상단 샘플)에서 획득될 수 있다.
일 실시예에 따라 영상 복호화 장치(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)를 이용하여 다른 크기를 가지는 가운데 부호화 단위를 결정할 수 있다. 다만 상술한 인덱스, 결정하고자 하는 소정 위치의 부호화 단위의 크기 또는 위치는 일 실시예를 설명하기 위해 특정한 것이므로 이에 한정하여 해석되어서는 안되며, 다양한 인덱스, 부호화 단위의 위치 및 크기가 이용될 수 있는 것으로 해석되어야 한다.
일 실시예에 따라 영상 복호화 장치(100)는 부호화 단위의 재귀적인 분할이 시작되는 소정의 데이터 단위를 이용할 수 있다.
도 15는 일 실시예에 따라 픽쳐에 포함되는 복수개의 소정의 데이터 단위에 따라 복수개의 부호화 단위들이 결정된 것을 도시한다.
일 실시예에 따라 소정의 데이터 단위는 부호화 단위가 분할 형태 모드 정보를 이용하여 재귀적으로 분할되기 시작하는 데이터 단위로 정의될 수 있다. 즉, 현재 픽쳐를 분할하는 복수개의 부호화 단위들이 결정되는 과정에서 이용되는 최상위 심도의 부호화 단위에 해당할 수 있다. 이하에서는 설명 상 편의를 위해 이러한 소정의 데이터 단위를 기준 데이터 단위라고 지칭하도록 한다.
일 실시예에 따라 기준 데이터 단위는 소정의 크기 및 형태를 나타낼 수 있다. 일 실시예에 따라, 기준 부호화 단위는 MxN의 샘플들을 포함할 수 있다. 여기서 M 및 N은 서로 동일할 수도 있으며, 2의 승수로 표현되는 정수일 수 있다. 즉, 기준 데이터 단위는 정사각형 또는 비-정사각형의 형태를 나타낼 수 있으며, 이후에 정수개의 부호화 단위로 분할될 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 픽쳐를 복수개의 기준 데이터 단위로 분할할 수 있다. 일 실시예에 따라 영상 복호화 장치(100)는 현재 픽쳐를 분할하는 복수개의 기준 데이터 단위를 각각의 기준 데이터 단위에 대한 분할 형태 모드 정보를 이용하여 분할할 수 있다. 이러한 기준 데이터 단위의 분할 과정은 쿼드 트리(quad-tree)구조를 이용한 분할 과정에 대응될 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 픽쳐에 포함되는 기준 데이터 단위가 가질 수 있는 최소 크기를 미리 결정할 수 있다. 이에 따라, 영상 복호화 장치(100)는 최소 크기 이상의 크기를 갖는 다양한 크기의 기준 데이터 단위를 결정할 수 있고, 결정된 기준 데이터 단위를 기준으로 분할 형태 모드 정보를 이용하여 적어도 하나의 부호화 단위를 결정할 수 있다.
도 15를 참조하면, 영상 복호화 장치(100)는 정사각형 형태의 기준 부호화 단위(1500)를 이용할 수 있고, 또는 비-정사각형 형태의 기준 부호화 단위(1502)를 이용할 수도 있다. 일 실시예에 따라 기준 부호화 단위의 형태 및 크기는 적어도 하나의 기준 부호화 단위를 포함할 수 있는 다양한 데이터 단위(예를 들면, 시퀀스(sequence), 픽쳐(picture), 슬라이스(slice), 슬라이스 세그먼트(slice segment), 타일(tile), 타일 그룹(tile group), 최대부호화단위 등)에 따라 결정될 수 있다.
일 실시예에 따라 영상 복호화 장치(100)의 수신부(110)는 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보 중 적어도 하나를 상기 다양한 데이터 단위마다 비트스트림으로부터 획득할 수 있다. 정사각형 형태의 기준 부호화 단위(1500)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 3의 현재 부호화 단위(300)가 분할되는 과정을 통해 상술하였고, 비-정사각형 형태의 기준 부호화 단위(1502)에 포함되는 적어도 하나의 부호화 단위가 결정되는 과정은 도 4의 현재 부호화 단위(400 또는 450)가 분할되는 과정을 통해 상술하였으므로 자세한 설명은 생략하도록 한다.
일 실시예에 따라 영상 복호화 장치(100)는 소정의 조건에 기초하여 미리 결정되는 일부 데이터 단위에 따라 기준 부호화 단위의 크기 및 형태를 결정하기 위하여, 기준 부호화 단위의 크기 및 형태를 식별하기 위한 인덱스를 이용할 수 있다. 즉, 수신부(110)는 비트스트림으로부터 상기 다양한 데이터 단위(예를 들면, 시퀀스, 픽쳐, 슬라이스, 슬라이스 세그먼트, 타일, 타일 그룹, 최대부호화단위 등) 중 소정의 조건(예를 들면 슬라이스 이하의 크기를 갖는 데이터 단위)을 만족하는 데이터 단위로서 슬라이스, 슬라이스 세그먼트, 타일, 타일 그룹, 최대부호화 단위 등 마다, 기준 부호화 단위의 크기 및 형태의 식별을 위한 인덱스만을 획득할 수 있다. 영상 복호화 장치(100)는 인덱스를 이용함으로써 상기 소정의 조건을 만족하는 데이터 단위마다 기준 데이터 단위의 크기 및 형태를 결정할 수 있다. 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 상대적으로 작은 크기의 데이터 단위마다 비트스트림으로부터 획득하여 이용하는 경우, 비트스트림의 이용 효율이 좋지 않을 수 있으므로, 기준 부호화 단위의 형태에 대한 정보 및 기준 부호화 단위의 크기에 대한 정보를 직접 획득하는 대신 상기 인덱스만을 획득하여 이용할 수 있다. 이 경우 기준 부호화 단위의 크기 및 형태를 나타내는 인덱스에 대응하는 기준 부호화 단위의 크기 및 형태 중 적어도 하나는 미리 결정되어 있을 수 있다. 즉, 영상 복호화 장치(100)는 미리 결정된 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 인덱스에 따라 선택함으로써, 인덱스 획득의 기준이 되는 데이터 단위에 포함되는 기준 부호화 단위의 크기 및 형태 중 적어도 하나를 결정할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 하나의 최대 부호화 단위에 포함하는 적어도 하나의 기준 부호화 단위를 이용할 수 있다. 즉, 영상을 분할하는 최대 부호화 단위에는 적어도 하나의 기준 부호화 단위가 포함될 수 있고, 각각의 기준 부호화 단위의 재귀적인 분할 과정을 통해 부호화 단위가 결정될 수 있다. 일 실시예에 따라 최대 부호화 단위의 너비 및 높이 중 적어도 하나는 기준 부호화 단위의 너비 및 높이 중 적어도 하나의 정수배에 해당할 수 있다. 일 실시예에 따라 기준 부호화 단위의 크기는 최대부호화단위를 쿼드 트리 구조에 따라 n번 분할한 크기일 수 있다. 즉, 영상 복호화 장치(100)는 최대부호화단위를 쿼드 트리 구조에 따라 n 번 분할하여 기준 부호화 단위를 결정할 수 있고, 다양한 실시예들에 따라 기준 부호화 단위를 블록 형태 정보 및 분할 형태 모드 정보 중 적어도 하나에 기초하여 분할할 수 있다.
일 실시예에 따라 영상 복호화 장치(100)는 현재 부호화 단위의 형태를 나타내는 블록 형태 정보 또는 현재 부호화 단위를 분할하는 방법을 나타내는 분할 형태 모드 정보를 비트스트림으로부터 획득하여 이용할 수 있다. 분할 형태 모드 정보는 다양한 데이터 단위와 관련된 비트스트림에 포함될 수 있다. 예를 들면, 영상 복호화 장치(100)는 시퀀스 파라미터 세트(sequence parameter set), 픽쳐 파라미터 세트(picture parameter set), 비디오 파라미터 세트(video parameter set), 슬라이스 헤더(slice header), 슬라이스 세그먼트 헤더(slice segment header), 타일 헤더(tile header), 타일 그룹 헤더(tile group header)에 포함된 분할 형태 모드 정보를 이용할 수 있다. 나아가, 영상 복호화 장치(100)는 최대 부호화 단위, 기준 부호화 단위, 프로세싱 블록마다 비트스트림으로부터 블록 형태 정보 또는 분할 형태 모드 정보에 대응하는 신택스 엘리먼트를 비트스트림으로부터 획득하여 이용할 수 있다.
이하 본 개시의 일 실시예에 따른 분할 규칙을 결정하는 방법에 대하여 자세히 설명한다.
영상 복호화 장치(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), 최대 부호화 단위 또는 부호화 단위에 따라 다르게 결정할 수 있다.
영상 복호화 장치(100)는 부호화 단위의 블록 형태에 기초하여 분할 규칙을 결정할 수 있다. 블록 형태는 부호화 단위의 크기, 모양, 너비 및 높이의 비율, 방향을 포함할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 블록 형태에 기초하여 분할 규칙을 결정할 것을 미리 결정할 수 있다. 하지만 이에 한정되는 것은 아니다. 영상 복호화 장치(100)는 수신된 비트스트림으로부터 획득된 정보에 기초하여, 분할 규칙을 결정할 수 있다.
부호화 단위의 모양은 정사각형(square) 및 비-정사각형(non-square)을 포함할 수 있다. 부호화 단위의 너비 및 높이의 길이가 같은 경우, 영상 복호화 장치(100)는 부호화 단위의 모양을 정사각형으로 결정할 수 있다. 또한, . 부호화 단위의 너비 및 높이의 길이가 같지 않은 경우, 영상 복호화 장치(100)는 부호화 단위의 모양을 비-정사각형으로 결정할 수 있다.
부호화 단위의 크기는 4x4, 8x4, 4x8, 8x8, 16x4, 16x8, ... , 256x256의 다양한 크기를 포함할 수 있다. 부호화 단위의 크기는 부호화 단위의 긴변의 길이, 짧은 변의 길이또는 넓이에 따라 분류될 수 있다. 영상 복호화 장치(100)는 동일한 그룹으로 분류된 부호화 단위에 동일한 분할 규칙을 적용할 수 있다. 예를 들어 영상 복호화 장치(100)는 동일한 긴변의 길이를 가지는 부호화 단위를 동일한 크기로 분류할 수 있다. 또한 영상 복호화 장치(100)는 동일한 긴변의 길이를 가지는 부호화 단위에 대하여 동일한 분할 규칙을 적용할 수 있다.
부호화 단위의 너비 및 높이의 비율은 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 32:1 또는 1:32 등을 포함할 수 있다. 또한, 부호화 단위의 방향은 수평 방향 및 수직 방향을 포함할 수 있다. 수평 방향은 부호화 단위의 너비의 길이가 높이의 길이보다 긴 경우를 나타낼 수 있다. 수직 방향은 부호화 단위의 너비의 길이가 높이의 길이보다 짧은 경우를 나타낼 수 있다.
영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 분할 규칙을 적응적으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 허용가능한 분할 형태 모드를 다르게 결정할 수 있다. 예를 들어, 영상 복호화 장치(100)는 부호화 단위의 크기에 기초하여 분할이 허용되는지 여부를 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 따라 분할 방향을 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위의 크기에 따라 허용가능한 분할 타입을 결정할 수 있다.
부호화 단위의 크기에 기초하여 분할 규칙을 결정하는 것은 영상 복호화 장치(100) 사이에 미리 결정된 분할 규칙일 수 있다. 또한, 영상 복호화 장치(100)는 비트스트림으로부터 획득된 정보에 기초하여, 분할 규칙을 결정할 수 있다.
영상 복호화 장치(100)는 부호화 단위의 위치에 기초하여 분할 규칙을 적응적으로 결정할 수 있다. 영상 복호화 장치(100)는 부호화 단위가 영상에서 차지하는 위치에 기초하여 분할 규칙을 적응적으로 결정할 수 있다.
또한, 영상 복호화 장치(100)는 서로 다른 분할 경로로 생성된 부호화 단위가 동일한 블록 형태를 가지지 않도록 분할 규칙을 결정할 수 있다. 다만 이에 한정되는 것은 아니며 서로 다른 분할 경로로 생성된 부호화 단위는 동일한 블록 형태를 가질 수 있다. 서로 다른 분할 경로로 생성된 부호화 단위들은 서로 다른 복호화 처리 순서를 가질 수 있다. 복호화 처리 순서에 대해서는 도 12와 함께 설명하였으므로 자세한 설명은 생략한다.
도 16는 영상 부호화 및 복호화 시스템의 블록도를 나타낸 도면이다.
영상 부호화 및 복호화 시스템(1600)의 부호화단(1610)은 영상의 부호화된 비트스트림을 전송하고, 복호화단(1650)은 비트스트림을 수신하여 복호화함으로써 복원 영상을 출력한다. 여기서 복호화단(1650)은 영상 복호화 장치(100)에 유사한 구성일 수 있다.
부호화단(1610)에서, 예측 부호화부(1615)는 인터 예측 및 인트라 예측을 통해 참조 영상을 출력하고, 변환 및 양자화부(1616)는 참조 영상과 현재 입력 영상 간의 레지듀얼 데이터를 양자화된 변환 계수로 양자화하여 출력한다. 엔트로피 부호화부(1625)는 양자화된 변환 계수를 부호화하여 변환하고 비트스트림으로 출력한다. 양자화된 변환 계수는 역양자화 및 역변환부(1630)을 거쳐 공간 영역의 데이터로 복원되고, 복원된 공간 영역의 데이터는 디블로킹 필터링부(1635) 및 루프 필터링부(1640)를 거쳐 복원 영상으로 출력된다. 복원 영상은 예측 부호화부(1615)를 거쳐 다음 입력 영상의 참조 영상으로 사용될 수 있다.
복호화단(1650)으로 수신된 비트스트림 중 부호화된 영상 데이터는, 엔트로피 복호화부(1655) 및 역양자화 및 역변환부(1660)를 거쳐 공간 영역의 레지듀얼 데이터로 복원된다. 예측 복호화부(1675)로부터 출력된 참조 영상 및 레지듀얼 데이터가 조합되어 공간 영역의 영상 데이터가 구성되고, 디블로킹 필터링부(1665) 및 루프 필터링부(1670)는 공간 영역의 영상 데이터에 대해 필터링을 수행하여 현재 원본 영상에 대한 복원 영상을 출력할 수 있다. 복원 영상은 예측 복호화부(1675)에 의해 다음 원본 영상에 대한 참조 영상으로서 이용될 수 있다.
부호화단(1610)의 루프 필터링부(1640)는 사용자 입력 또는 시스템 설정에 따라 입력된 필터 정보를 이용하여 루프 필터링을 수행한다. 루프 필터링부(1640)에 의해 사용된 필터 정보는 엔트로피 부호화부(1610)로 출력되어, 부호화된 영상 데이터와 함께 복호화단(1650)으로 전송된다. 복호화단(1650)의 루프 필터링부(1670)는 복호화단(1650)으로부터 입력된 필터 정보에 기초하여 루프 필터링을 수행할 수 있다.
일 실시예에 따른 비디오 부호화 방법 및 복호화 방법, 비디오 부호화 장치 및 복호화 장치는, 부호화 단위의 부호화 순서에 고려하여 어파인 모델에 기반한 예측을 수행하는 방법을 제안한다. 이하 도 17 내지 도 34을 참조하여 본 명세서에서 개시된 일 실시예에 따라 인터 예측을 수행하여 비디오를 부호화 또는 복호화하기 위한 방법 및 장치가 상술된다.
이하, '트리 구조'는 부호화 단위의 분할 모드가 쿼드 분할, 바이너리 분할, 터너리 분할 및 비 분할인지에 따라 형성되는 하나 이상의 부호화 단위들의 계층 구조를 의미할 수 있다. 예를 들어, 도 5의 분할 과정에 따라 현재 부호화 단위로부터 생성된 블록들의 계층 구조를 트리 구조라 지칭한다.
이하, '블록의 이용 가능성(availability)'은 해당 블록이 이미 부호화되거나 복호화되어 해당 블록의 정보가 획득될 수 있는 상태인지 여부를 의미한다. 구체적으로 부호화 과정에서 현재 블록이 이미 부호화된 경우에 현재 블록의 부호화 정보를 이용하여 이웃 블록을 부호화할 수 있으므로, 현재 블록은 이용 가능한 상태로 표시될 수 있다. 현재 블록이 부호화되지 않은 경우에 현재 블록은 이용 가능하지 않은 상태로 표시될 수 있다. 마찬가지로 복호화 과정에서 현재 블록이 이미 복호화된 경우에 현재 블록의 부호화 정보를 이용하여 이웃 블록을 복호화할 수 있으므로, 현재 블록은 이용 가능한 상태로 표시될 수 있다. 현재 블록이 복호화되지 않은 경우에 현재 블록은 이용 가능하지 않은 상태로 표시될 수 있다.
이하, '블록의 움직임 정보의 이용 가능성'은 해당 블록에 대한 움직임 예측(인트라 모드 또는 인트라 블록 카피 모드에 따른 예측을 제외한 나머지 예측)이 수행되어 해당 블록의 움직임 정보(움직임 벡터, 예측 방향(L0-pred, L1-pred 또는 Bi-pred), 참조 픽쳐 인덱스)가 획득될 수 있는 상태인지 여부를 의미한다. 구체적으로 부호화 과정에서 현재 블록에 대해 이미 움직임 예측이 수행되어 현재 블록의 움직임 정보가 존재하는 경우에 현재 블록의 움직임 정보를 이용하여 이웃 블록의 움직임 예측을 수행할 수 있으므로, 현재 블록의 움직임 정보가 이용 가능한 상태로 표시될 수 있다. 부호화 과정에서 현재 블록에 대해 움직임 예측이 수행되지 않은 경우 현재 블록의 움직임 정보가 이용 가능하지 않은 상태로 표시될 수 있다. 마찬가지로 복호화 과정에서 현재 블록에 대해 이미 움직임 예측이 수행되어 현재 블록의 움직임 정보가 존재하는 경우에 현재 블록의 움직임 정보를 이용하여 이웃 블록의 움직임 예측을 수행할 수 있으므로, 현재 블록의 움직임 정보가 이용 가능한 상태로 표시될 수 있다. 복호화 과정에서 현재 블록에 대해 움직임 예측이 수행되지 않은 경우 현재 블록의 움직임 정보가 이용 가능하지 않은 상태로 표시될 수 있다.
이하, '머지 후보'는 현재 블록의 이웃 블록에 대응하는 움직임 벡터에 대응할 수 있다. 이웃 블록의 움직임 벡터로부터 현재 블록의 예측 움직임 벡터가 결정되므로, 각 예측 움직임 벡터들은 해당 이웃 블록에 대응할 수 있다. 따라서, 본 개시에서 설명의 편의상 '머지 후보'는 이웃 블록의 움직임 벡터에 대응하거나, 이웃 블록에 대응하는 것으로 기재되어 있으며, 두 표현 상에 의미 차이는 없다.
이하, '어파인 머지 후보'는 현재 블록의 이웃 블록 또는 블록 그룹에 대응하는 컨트롤 포인트 벡터들에 대응할 수 있다. 이웃 블록의 움직임 벡터로부터 컨트롤 포인트 벡터들이 결정되거나 블록 그룹에 속하는 이웃 블록들의 움직임 벡터들에 기초하여 컨트롤 포인트 벡터들이 결정되므로, 각 컨트롤 포인트 벡터들은 해당 이웃 블록 또는 해당 블록 그룹에 대응할 수 있다. 따라서, 본 개시에서 설명의 편의상 '어파인 머지 후보'는 이웃 블록 또는 블록 그룹로부터 결정된 컨트롤 포인트 벡터들에 대응하거나, 이웃 블록 또는 블록 그룹에 대응하는 것으로 기재되어 있으며, 두 표현 상에 의미 차이는 없다.
이하, 'MVP(motion vector prediction) 후보'는 현재 블록의 이웃 블록에 대응하는 움직임 벡터들에 대응할 수 있다. 이웃 블록의 움직임 벡터로부터 현재 블록의 예측 움직임 벡터가 결정되므로, 각 예측 움직임 벡터들은 해당 이웃 블록에 대응할 수 있다. 따라서, 본 개시에서 설명의 편의상 'MVP 후보'는 이웃 블록의 움직임 벡터에 대응하거나, 이웃 블록에 대응하는 것으로 기재되어 있으며, 두 표현 상에 의미 차이는 없다.
'머지 후보'는, 인터 예측 방식 중 머지 모드에서 이용되는 이웃 블록(또는 이웃 블록의 움직임 벡터)인 반면에, 'MVP 후보'는 인터 예측 방식 중 AMVP 모드에서 이용되는 이웃 블록(또는 이웃 블록의 움직임 벡터)에 대응된다. 머지 모드에서는 머지 후보의 움직임 벡터를 이용하여 현재 블록의 움직임 벡터가 결정될 뿐만 아니라, 머지 후보의 예측 방향(L0-pred, L1-pred, bi-pred) 및 참조 픽쳐 인덱스를 이용하여 현재 블록의 예측 방향 및 참조 픽쳐 인덱스가 각각 결정될 수 있다. 반면에, AMVP 모드에서는 MVP 후보의 움직임 벡터를 이용하여 현재 블록의 예측 움직임 벡터가 결정되지만, MVP 후보의 예측 방향 및 참조 픽쳐 인덱스와 별개로 현재 블록의 예측 방향 및 참조 픽쳐 인덱스가 각각 결정될 수 있다.
도 17은 일 실시예에 따른 비디오 복호화 장치의 블록도를 도시한다.
도 17을 참조하면, 일 실시예에 따른 비디오 복호화 장치(1700)는 인터 예측부(1710) 및 복원부(1720)를 포함할 수 있다.
비디오 복호화 장치(1700)는 영상의 부호화 결과 생성된 비트스트림을 획득하고, 비트스트림에 포함된 정보에 기초하여 픽쳐로부터 분할된 블록들의 위치를 파악하고, 최대 부호화 단위 및 부호화 단위 등의 블록들을 복호화할 수 있다.
일 실시예에 따른 비디오 복호화 장치(1700)는, 인터 예측부(1710) 및 복원부(1720)를 제어하는 중앙 프로세서(미도시)를 포함할 수 있다. 또는, 인터 예측부(1710) 및 복원부(1720)가 각각의 자체 프로세서(미도시)에 의해 작동되고, 프로세서(미도시)들이 상호 유기적으로 동작함에 따라 비디오 복호화 장치(1700)가 구현될 수도 있다. 또는, 비디오 복호화 장치(1700)의 외부 프로세서(미도시)의 제어에 따라, 인터 예측부(1710) 및 복원부(1720)가 동작될 수도 있다.
비디오 복호화 장치(1700)는, 인터 예측부(1710) 및 복원부(1720)의 입출력 데이터가 저장되는 하나 이상의 데이터 저장부(미도시)를 포함할 수 있다. 비디오 복호화 장치(1700)는, 데이터 저장부(미도시)의 데이터 입출력을 제어하는 메모리 제어부(미도시)를 포함할 수도 있다.
비디오 복호화 장치(1700)는 전술한 영상 복호화 장치(100)에 포함될 수 있다. 예를 들어, 인터 예측부(1710) 및 복원부(1720)는 영상 복호화 장치(100)의 복호화부(120)에 대응될 수 있다. 비디오 복호화 장치(1700)는 도 16을 참조하여 전술한 영상 부호화 및 복호화 시스템의 복호화기(1650)에 대응될 수 있다. 예를 들어, 인터 예측부(1710) 및 복원부(1720)는 복호화기(1650)의 인터 예측 부호화부(1670)에 대응될 수 있다.
비디오 복호화 장치(1700)는 영상의 부호화 결과 생성된 비트스트림을 수신한다. 비트스트림은 현재 픽쳐에 대한 정보를 포함할 수 있다. 픽쳐는 하나 이상의 최대 부호화 단위를 포함할 수 있다. 비디오 복호화 장치(1700)는, 비트스트림으로부터 획득된 정보에 기초하여 픽쳐 내에서 현재 블록의 위치를 결정할 수 있다. 현재 블록은 픽쳐로부터 트리 구조에 따라 분할되어 생성되는 블록으로서, 예를 들어, 최대 부호화 단위 또는 부호화 단위에 대응할 수 있다. 비디오 복호화 장치(1700)는, 현재 블록이 하위 뎁스의 하위 블록으로 더 분할될지 여부를 결정하며, 현재 블록의 트리 구조를 결정할 수 있다. 현재 블록의 현재 뎁스에 비해, 현재 블록으로부터 하위 블록까지 분할된 횟수만큼 증가하여 하위 뎁스가 결정될 수 있다. 현재 픽쳐에 포함된 트리 구조를 이루고 있는 블록들 중에서 트리 리프에 위치하는 블록들은 더 이상 분할되지 않는 블록들이다. 따라서 비디오 복호화 장치(1700)는, 더 이상 분할되지 않는 하나 이상의 블록들에 대해 역양자화, 역변환, 예측을 수행함으로써 블록들을 복호화할 수 있다.
비디오 복호화 장치(1700)는 현재 블록에 대해 예측을 수행하여 현재 블록의 예측 샘플들을 생성할 수 있다. 비디오 복호화 장치(1700)는 현재 블록에 대해 역변환을 수행하여 상기 현재 블록의 레지듀얼 샘플들을 생성할 수 있다. 비디오 복호화 장치(1700)는 현재 블록의 예측 샘플들과 현재 블록의 레지듀얼 샘플들을 이용하여 현재 블록의 복원 샘플들을 생성할 수 있다. 비디오 복호화 장치(1700)는 블록들마다 샘플들을 복원함으로써 현재 픽쳐를 복원할 수 있다.
예를 들어, 현재 블록의 예측 모드가 인트라 모드인 경우에 비디오 복호화 장치(1700)는 현재 블록의 인트라 예측 정보를 이용하여 인트라 예측 방향에 위치한 공간적 이웃 블록의 샘플들 중 참조 샘플을 결정하고, 참조 샘플을 이용하여 현재 블록에 대응하는 예측 샘플들을 결정할 수 있다.
예를 들어, 현재 블록의 예측 모드가 스킵 모드가 아닌 인터 모드인 경우에 비디오 복호화 장치(1700)는 현재 블록의 움직임 벡터를 이용하여 현재 블록을 복원할 수 있다. 비디오 복호화 장치(1700)는, 현재 블록의 움직임 벡터를 이용하여 참조 픽쳐 내의 참조 블록을 결정하고, 참조 블록에 포함된 참조 샘플들로부터 현재 블록에 대응하는 예측 샘플들을 결정할 수 있다. 비디오 복호화 장치(1700)는 비트스트림으로부터 획득한 변환 계수 레벨을 이용하여 변환 계수들을 복원하고, 변환 계수들에 대해 역양자화 및 역변환을 수행하여 레지듀얼 샘플들을 복원할 수 있다. 비디오 복호화 장치(1700)는 현재 블록에 대응하는 예측 샘플들과 레지듀얼 샘플들을 조합하여 현재 블록의 복원 샘플들을 결정할 수 있다.
예를 들어, 현재 블록의 예측 모드가 머지 모드인 경우에 비디오 복호화 장치(1700)는 현재 블록의 주변 블록의 움직임 벡터 관련 정보를 이용하여 현재 블록의 움직임 벡터 관련 정보를 복원할 수 있다. 비디오 복호화 장치(1700)는, 현재 블록의 움직임 벡터를 이용하여 참조 픽쳐 내의 참조 블록을 결정하고, 참조 블록에 포함된 참조 샘플들로부터 현재 블록에 대응하는 예측 샘플들을 결정할 수 있다. 비디오 복호화 장치(1700)는 비트스트림으로부터 획득한 변환 계수 레벨을 이용하여 변환 계수들을 복원하고, 변환 계수들에 대해 역양자화 및 역변환을 수행하여 레지듀얼 샘플들을 복원할 수 있다. 비디오 복호화 장치(1700)는 현재 블록에 대응하는 예측 샘플들과 레지듀얼 샘플들을 조합하여 현재 블록의 복원 샘플들을 결정할 수 있다.
현재 블록이 스킵 모드로 예측되는 경우, 머지 모드와 마찬가지로 현재 블록의 주변 블록의 움직임 벡터 관련 정보를 이용하여 현재 블록의 움직임 벡터 관련 정보를 복원할 수 있으며, 비디오 복호화 장치(1700)는 비트스트림으로부터 현재 블록의 변환 계수들을 파싱할 필요가 없다. 비디오 복호화 장치(1700)는 현재 블록의 예측 샘플들을 그대로 이용하여 현재 블록의 복원 샘플들을 결정할 수 있다.
구체적으로, 일 실시예에 따른 머지 모드는, 블록 기반 머지 모드와 서브블록 기반 머지 모드로 구분될 수 있다. 블록 기반 머지 모드는 일반 머지 모드(regular merge mode), MMVD 모드(merge motion vector difference mode), CIIP 모드(Combined Inter and Intra Prediction), 트라이앵귤러(TRIANGULAR) 모드로 구분될 수 있다. 또한, 일 실시예에 따른 스킵 모드는 CIIP 모드를 제외하고, MMVD 모드, 트라이앵귤러 모드에도 적용될 수 있다. 즉, 스킵 MMVD 모드인 경우에, 머지 인덱스와 움직임 벡터 차분의 방향 및 움직임 벡터 차분의 크기만 시그널링되고, 레지듀얼 성분은 시그널링되지 않는다. 반면에 머지 MMVD 모드인 경우에, 머지 인덱스와 움직임 벡터 차분의 방향 및 움직임 벡터 차분의 크기와 함께 레지듀얼 성분이 시그널링될 수 있다. 마찬가지로, 스킵 트라이앵귤러 모드에서는 레지듀얼 성분이 시그널링되지 않지만, 머지 트라이앵귤러 모드에서는 레지듀얼 성분이 시그널링될 수 있다.
일반 MERGE 모드인 경우, 인터 예측부(1710)는 머지 후보 리스트를 구성하고 구성된 후보 리스트 중에서 수신된 인덱스가 가리키는 후보의 움직임 정보를 현재 블록의 움직임 정보로 사용하여 움직임 보상을 수행할 수 있다.
일 실시예에 따라 머지 후보 리스트는 공간적 머지 후보(spatial merge candidate), 시간적 머지 후보(temporal merge candidate), HMVP(History-based MVP)와 PAMVP(Pairwise Average MVP)를 포함할 수 있다.
인터 예측부(1710)는 현재 블록보다 먼저 복호화된 소정 개수의 블록의 움직임 정보를 HMVP 테이블에 저장하고, 현재 블록을 위한 머지 후보 리스트에 HMVP 테이블에 저장되어 있는 HMVP 후보를 추가할 수 있다. 예를 들어, HMVP 테이블은 5개의 HMVP 후보가 저장되며, HMVP 테이블에 5개의 후보가 이미 존재하는 경우에 새로운 움직임 정보를 저장하기 위하여 선입선출(FIFO, First-In-FirstOut) 방법이 적용될 수 있다. 인터 예측부(1710)는 새로 추가되는 움직임 정보와 HMVP 테이블에 저장되어 있는 후보들과의 중복성을 확인하고, 동일한 움직임 정보가 HMVP 테이블에 존재하는 경우에는 먼저 저장되어 있던 동일한 움직임 정보를 삭제하고 새로운 움직임 정보를 HMVP 테이블의 마지막 위치에 추가할 수 있다. 또한, 영상의 새로 운 CTU(Coding Tree Unit) 열이 시작되는 시점에 HMVP 테이블은 초기화되며, 서브블록 기반 인터 예측 방법이 적용된 블록의 움직임 정보는 HMVP 후보로 사용하지 않을 수 있다.
PAMVP 후보가 이용되는 경우에, 인터 예측부(1710)는 머지 후보 리스트에서 첫 번째 후보와 두 번째 후보의 움직임 벡터의 평균값을 PAMVP 후보의 움직임 벡터로 설정하고 PAMVP의 참조 픽쳐를 첫번째 후보의 참조 픽쳐와 동일하게 설정할 수 있다.
일반 머지 모드는 전송되는 비트량을 최소화하는 반면 예측 샘플의 정확도가 떨어질 수 있다는 문제점이 있을 수 있다. 이러한 문제점을 보완하기 위하여 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의 범위를 가질 수 있다.
CIIP 모드의 경우, 인트라 예측에 의해 획득된 예측 샘플과 인터 예측에 의해 획득된 예측 샘플을 결합함으로써 추가적인 예측 샘플이 획득될 수 있다. 인터 예측 샘플은 일반 머지 모드에 의해 획득되고, 인트라 예측 샘플은 플라나(planar) 모드에 따른 인트라 예측을 통해 획득될 수 있다. 획득된 인터 예측 샘플과 인트라 예측 샘플에 가중치를 적용하여 최종 예측 샘플이 생성되며, 상단 주변 블록과 좌측 주변 블록의 인트라 예측 부호화 여부에 따라, (인트라 예측 샘플에 적용되는 가중치, 인터 예측 샘플에 적용되는 가중치)의 조합은 다음과 같이 결정될 수 있다. 상단 주변 블록과 좌측 주변 블록이 모두 인트라 예측에 의해 복원된 경우에는 (3,1), 상단 주변 블록 또는 좌측 주변 블록 중 하나의 블록만 인트라 예측에 의해 복원된 경우는 (2,2), 상단 주변 블록과 좌측 주변 블록이 모두 인트라 예측에 의해 복원된 것이 아닌 경우는 (1,3)의 가중치가 적용될 수 있다.
트라이앵귤러 모드에 따른 인터 예측의 경우, 사각형의 블록이 사선으로 분할되어 2개의 삼각 영역이 생성되고, 인터 예측부(1710)는 2개의 삼각 영역에 대해 서로 다른 움직임 정보를 이용하여 독립적으로 화면간 예측을 수행한다. 이 때, 2개 삼각 영역의 움직임 정보가 다름으로 인해 발생하는 경계영역에서의 예측 샘플값 들간의 불연속성을 최소화하기 위해, 인터 예측부(1710)는 2개 삼각 영역의 움직임 정보를 이용하여 유도된 예측 샘플값들의 가중합을, 경계영역의 예측 샘플값이 되도록 결정될 수 있다. 트라이앵귤러 모드에서 각 삼각 영역에서의 예측 방향은 단방향 예측만 허용된다. 이를 위해 인터 예측부(1710)는 일반 머지 모드 후보 리스트 중에서, 각 머지 인덱스가 짝수인 후보는 L0 리스트의 움직임 정보를, 홀수인 후보는 L1 리스트의 움직임 정보를 이용하여 단방향 움직임 정보만을 가지는 트라이앵귤러 모드 후보 리스트를 구성할 수 있다. 만약 머지 인덱스가 짝수인 후보에 L0 리스트 움직임 정보가 존재하지 않는다면 L1 리스트 움직임 정보가 선택될 수 있다. 각 삼각 영역별로 적용할 머지 인덱스가 수신되므로, 트라이앵귤러 모드 후보 리스트 중에서, 각 삼각 영역의 머지 인덱스가 가리키는 후보를 이용하여 인터 예측이 수행될 수 있다.
서브블록 기반 머지 모드에 따르면, 인터 예측부(1710)는 블록을 서브 블록으로 분할하고 서브블록별로 개별의 움직임 벡터를 유도하여 예측 샘플을 생성할 수 있다. 서브블록 기반 머지 후보 리스트는 블록 기반 머지 모드 중에서 시간적 머지 및 AMVP 후보인 TMVP(Temporal MVP)와 유사한 서브블록 기반 TMVP(SbTMVP)와, 어파인 움직임 모델을 적용한 어파인 기반 움직임 벡터 예측 후보들을 포함할 있다.
SbTMVP를 결정하기 위해, 현재 블록의 콜로케이티드 블록을 찾는 과정과 콜로케이티드 블록의 움직임 벡터로부터 현재 블록 내의 서브블록 단위의 움직임 벡터를 유도하는 과정이 수행될 수 있다. 현재 블록의 콜로케이티드 블록은 슬라이스 헤더에서 획득된 콜로케이티드 픽쳐(collocated picture)에 존재하는 블록으로, 현재 블록의 좌하단 위치(A1)의 참조 픽쳐가 콜로케이티드 픽쳐와 동일한 경우에 A1 위치의 움직임 벡터가 이용되고, 동일하지 않은 경우에는 제로 MV를 이용하여 콜로케이티드 블록 위치가 결정될 수 있다. 콜로케이티드 블록으로부터 현재 블록의 서브블록(8x8 크기) 단위 움직임 벡터를 유도하기 위해서, 인터 예측부(1710)는 현재 블록을 8x8 서브블록들로 분할하고, 콜로케이티드 블록의 서브블록들의 중심 위치에 대응되는 움직임 정보를 이용하여 현재 블록의 각 서브블록의 움직임 벡터를 유도할 수 있다. SbTMVP의 참조 픽쳐는 TMVP 경우와 동일하게 L0/L1 참조픽처 리스트 중에서 인덱스 0이 가리키는 픽쳐이므로, 콜로케이티드 블록으로부터 결정된 움직임 벡터 mvCol가 sbTMVP 참조픽처에 적용될 수 있도록 스케일링 과정이 추가될 수 있다. 따라서 스케일링된 움직임 벡터 mvCol가 서브블록 단위 움직임 벡터인 SbTMVP로 설정된다.
이하, AMVP 모드에 따른 인터 예측 방식이 상술된다. SKIP 및 MERGE 모드와 비교하여 보다 정확한 움직임 벡터를 복호 과정에서 유도될 수 있도록, AMVP 모드에서는 주변 블록으로부터 얻어진 예측 움직임 벡터과 최종 움직임 벡터 간의 차이 값인 MVD를 전송하는 모드이다. AMVP 모드는 구체적으로 일반 AMVP 모드, SMVD 모드, 어파인 AMVP 모드로 구분될 수 있다.
일반 AMVP 모드에서는 예측 샘플 생성을 위해, 예측 방향(L0-pred, L1-pred, Bi-pred), 참조 픽쳐, 움직임 벡터 예측 후보를 나타내는 플래그, MVD 정보가 시그널링될 수 있다. 또한, 일반 AMVP 모드에 따라 인터 예측부(1710)는, 공간적 AMVP 후보, 시간적 AMVP 후보, HMVP 후보를 포함하는 AMVP 후보 리스트를 구성할 수 있으며, 최대 2개의 움직임 벡터 예측 후보를 구성할 수 있다. 이때 사용되는 HMVP 후보는 스킵 모드 및 머지 모드에서 사용한 HMVP와 동일하다.
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 모드의 최종 예측 샘플이 획득될 수 있다.
일 실시예에 따른 인터 예측부(1710)는 AMVR 기술에 따라 MVD 해상도를 적응적으로 선택할 수 있다. 부호화 모드에 따라 적용 가능한 MVD 해상도는 다르며, 유도된 움직임 벡터 예측 값에 MVD를 더하여 얻어지는 최종 움직임 벡터가 MVD와 동일한 해상도를 가지도록 하기 위하여, 인터 예측부(1710)는 MVD와 동일한 해상도를 가지도록 예측 움직임 벡터에 대해 라운딩을 수행할 수 있다. 최종 움직임 벡터를 이용하여 움직임 보상이 수행될 때 1/2 샘플 위치에 대해서는 6탭 보간 필터가 적용되고 1/2 샘플 위치 이외의 샘플 위치에 대해서는 8탭 보간 필터가 적용될 수 있다.
일 실시예에 따른 인터 예측부(1710)는 4개 또는 6개 파라미터를 이용하는 어파인 움직임 모델 기반 움직임 예측 기술을 수행할 수 있다. 일 실시예에 따른 인터 예측부(1710)는 블록을 4x4 서브블록 단위로 분할하고, 서브블록별로 서브블록의 중심 위치에서의 움직임 벡터를 어파인 움직임 모델 기반으로 유도함으로써, 서브블록 단위의 움직임 예측을 수행할 수 있다.
일 실시예에 따른, 인터 예측부(1710)에서 수행되는 인터 예측 방식 중에서 어파인 기반의 움직임 벡터 예측 기술이 적용된 어파인 머지 모드와 어파인 AMVP 모드가 존재할 수 있다.
어파인 머지 모드는 서브블록 기반 머지 모드의 후보 리스트에 어파인 기반 움직임 벡터 예측 후보들을 포함시켜서 현재 블록의 움직임 예측에 적용할 수 있도록 하는 방법으로, 어파인 기반 움직임 벡터 예측 후보들은 (상속) 어파인 머지 후보들((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-파라미터 어파인 머지 후보이다.
일 실시예에 따른 인터 예측부(1710)는, 인터 예측 방식이 서브블록 머지 모드이면서 서브블록 기반의 시간적 예측 움직임 벡터(subblock-based temporal motion vector predictors)의 이용이 가능한 경우에, 서브블록 기반의 시간적 머지 후보가 결정될 수 있다.
일 실시예에 따른 인터 예측부(1710)는, 인터 예측 방식이 서브블록 머지 모드이면서 어파인 모델 기반의 움직임 보상이 가능한 경우에, 하나 이상의 조합 어파인 CPMV 머지 후보를 포함하는 서브블록 머지 후보 리스트(subblock merge candidate list)를 생성할 수 있다.
어파인 AMVP 모드는 상속 어파인 AMVP 후보, 조합 어파인 AMVP 후보, 평행이동 MV, 제로(zero) MV들로 후보 리스트를 구성한다. 상속 어파인 AMVP 후보는 상속 어파인 머지 후보와 동일하나 상속받는 블록의 참조픽처가 현재 블록의 참조픽처와 동일한 경우에만 해당 블록의 CPMV로부터 유도한 현재 블록의 CPMV를 후보 리스트에 추가한다. 조합 AMVP 후보도 조합 어파인 머지 후보와 동일하지만 모든 CPMV들의 참조 픽쳐가 현재 블록의 참조 픽쳐와 동일한 경우에만 후보 리스트에 추가한다. 상속 어파인 AMVP 후보와 조합 어파인 AMVP 후보로 구성 된 어파인 AMVP 모드의 후보들이 2개 이하인 경우에 평행이동만 가능한 평행이동 MV를 후보로 추가될 수 있다. 이 때, 평행이동 MV로는 CPMV1, CPMV2, CPMV3가 각각 사용될 수 있다. 평행이동 MV를 후보 리스트에 추가하였음에도 후보가 2개 이하인 경우에는 제로 MV가 후보 리스트에 추가될 수 있다.
인터 예측부(1710)는 현재 블록에 대해 어파인 모델 기반의 인터 예측을 수행할 수 있다. 일 실시예에 따른 비디오 복호화 장치(1700)는 비스트림으로부터, 현재 블록의 예측 샘플을 생성하기 위해 어파인 모델에 기초한 움직임 보상이 수행되는지 나타내는 어파인 플래그를 획득할 수 있다. 어파인 플래그가 어파인 모델에 기초한 움직임 보상이 수행됨을 나타내면, 일 실시예에 따른 비디오 복호화 장치(1700)는 인터 예측부(1710)를 호출하고, 일 실시예에 따른 인터 예측부(1710)는 현재 블록의 코너별로 대표하는 이웃 블록들의 블록 그룹에 포함된 이웃 블록들의 움직임 벡터들을 이용하여 결정된 컨트롤 포인트 움직임 벡터들에 대응하는 컨트롤 포인트 기반의 어파인 머지 후보(control point-based affine merge candidate)를 포함하는 어파인 머지 후보 리스트를 생성할 수 있다.
구체적으로, 현재 블록의 인터 예측이 어파인 머지 모드로 수행되는 경우에, 일 실시예에 따른 인터 예측부(1710)는 컨트롤 포인트 기반의 컨트롤 포인트 기반의 어파인 머지 후보를 구성하기 이전에, 모델 기반의 어파인 머지 후보(model-based affine merge candidate)를 포함하는 어파인 머지 후보 리스트를 생성할 수 있다. 모델 기반의 어파인 머지 후보는, 현재 블록에 인접하는 소정 위치의 이웃 블록들 중에서 이용가능한 이웃 블록의 어파인 움직임 벡터에 따라 결정된 컨트롤 포인트 움직임 벡터들에 대응하는 머지 후보를 나타낸다. 즉, 현재 블록보다 먼저 복호화된 이웃 블록들이 모델 기반의 어파인 머지 후보들로 결정될 수 있다. 이웃 블록의 움직임 정보가 이용 가능한 경우에 해당 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보도 이용 가능한 상태로 설정된다. 반대로 이웃 블록의 움직임 정보가 이용 가능하지 않은 경우에 해당 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보도 이용 가능하지 않은 상태로 설정된다. 다만, 이용 가능한 모델 기반의 어파인 머지 후보의 개수가 소정 개수보다 적은 경우에, 인터 예측부(1710)는 현재 블록의 코너별로 대표하는 이웃 블록들의 그룹에 대응하는 컨트롤 포인트 기반의 어파인 머지 후보를 결정하여, 컨트롤 포인트 기반의 어파인 머지 후보를 어파인 머지 후보 리스트에 추가할 수 있다. 소정 개수는 어파인 머지 후보 리스트에 포함되도록 허용되는 어파인 머지 후보의 최대 개수이며, 예를 들어 5개로 설정될 수 있다.
따라서, 모델 기반의 어파인 머지 후보는 하나의 이웃 블록으로부터 파생된 대응하는 머지 후보이며, 컨트롤 포인트 기반의 어파인 머지 후보는 둘 이상의 이웃 블록들의 어파인 모델들의 조합으로부터 파생된 머지 후보일 수 있다. 현재 블록의 어파인 머지 후보 리스트에 이용가능한 모델 기반의 어파인 머지 후보가 포함될 수 있는데, 현재 블록의 유효한 어파인 머지 후보가 소정 개수보다 적으면, 모자란 개수만큼 컨트롤 포인트 기반의 어파인 머지 후보가 어파인 머지 후보 리스트에 추가될 수 있다.
일 실시예에 따른 인터 예측부(1710)는, 어파인 머지 후보 리스트 중에서 선택된 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터를 결정할 수 있다. 비트스트림으로부터 획득된 어파인 머지 인덱스를 이용하여, 인터 예측부(1710)는, 어파인 머지 후보 리스트 중에서 어파인 머지 인덱스가 가리키는 머지 후보의 컨트롤 포인트 움직임 벡터를 결정할 수 있다. 인터 예측부(1710)는, 컨트롤 포인트 움직임 벡터를 이용하여 현재 블록의 어파인 모션 모델 파라미터를 결정하고, 현재 블록의 어파인 모션 모델 파라미터를 이용하여 현재 블록의 어파인 움직임 벡터를 결정할 수도 있다. 인터 예측부(1710)는, 현재 블록의 어파인 움직임 벡터가 가리키는 참조 샘플을 이용하여, 현재 블록의 예측 샘플들을 획득할 수 있다.
어파인 머지 후보 리스트 중에서 모델 기반의 어파인 머지 후보가 선택될 때, 모델 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 하나의 이웃 블록의 어파인 모델을 이용하여 결정된 것으로, 일 실시예에 따른 인터 예측부(1710)는, 모델 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 현재 블록의 어파인 움직임 벡터를 결정할 수 있다.
어파인 머지 후보 리스트 중에서 컨트롤 포인트 기반의 어파인 머지 후보가 선택될 때, 컨트롤 포인트 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터는 대응되는 블록 그룹에 포함된 이웃 블록들을 현재 블록의 컨트롤 포인트들을 이용하여 결정된 것으로, 일 실시예에 따른 인터 예측부(1710)는, 컨트롤 포인트 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 결정될 수 있다.
구체적으로, 어파인 머지 후보 리스트 중에서 모델 기반의 어파인 머지 후보가 선택되는 경우에, 모델 기반의 어파인 머지 후보에 대응하는 하나의 이웃 블록의 수직 변화량, 수평 변화량 및 움직임 벡터를 이용하여 현재 블록의 컨트롤 포인트들에 대응하는 컨트롤 포인트 움직임 벡터들이 결정될 수 있다. 더 구체적으로, 이웃 블록의 참조 인덱스, 예측 방향(L0-pred, L1-pred 또는 Bi-pred) 및 움직임 벡터를 이용하여, 모델 기반의 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들이 각각 결정될 수 있다. 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 참조 인덱스, 예측 방향 및 어파인 움직임 벡터가 각각 결정될 수 있다.
구체적으로, 어파인 머지 후보 리스트 중에서 컨트롤 포인트 기반의 어파인 머지 후보가 선택되는 경우에, 현재 블록의 컨트롤 포인트들에 인접하는 이웃 블록들의 움직임 벡터들을 이용하여 컨트롤 포인트 움직임 벡터들이 결정되고, 선택된 어파인 머지 후보에 따라 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 결정될 수 있다. 더 구체적으로, 블록 그룹에 속한 대표 이웃 블록들의 참조 인덱스, 예측 방향 및 움직임 벡터를 이용하여, 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들이 각각 결정될 수 있다. 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 참조 인덱스, 예측 방향 및 어파인 움직임 벡터가 각각 결정될 수 있다.
일 실시예에 따른 비디오 복호화 장치(1700)는 SUCO(Split Unit Coding Order) 방식에 따라 좌우로 인접하는 부호화 단위 간에 부호화 순서를 변경할 수 있다. 예를 들어, 비디오 복호화 장치(1700)가 하위 부호화 순서의 방향을 나타내는 부호화 순서 플래그를 비트스트림으로부터 획득할 수 있다. 부호화 순서 플래그가 좌우 방향(left to right)을 나타내는 경우에, 현재 부호화 단위가 분할되어 생성된 좌우로 인접하는 하위 부호화 단위들 중에서 좌측 하위 부호화 단위가 먼저 복호화되고 우측 하위 부호화 단위가 나중에 복호화될 수 있다. 부호화 순서 플래그가 우좌 방향(right to left)을 나타내는 경우에, 우측 하위 부호화 단위가 먼저 복호화되고 좌측 하위 부호화 단위가 나중에 복호화될 수 있다.
구체적인 예로, 현재 블록의 우측 블록이 먼저 복호화되어 이용 가능한 경우에, 현재 블록의 우하측 코너에 인접하는 대표 이웃 블록은, 현재 블록의 우하측 코너 및 현재 블록의 우측 외곽선에 인접하는 이웃 블록 및 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 이웃 블록 중에서, 이용 가능한 움직임 정보가 획득되는 이웃 블록을 대표 이웃 블록으로 결정될 수 있다. 이웃 블록 C1, 이웃 블록 C0의 순서로 해당 블록에서 이용 가능한 움직임 정보가 획득되는지가 확인되고, 먼저 이용 가능한 블록이 BR 대표 이웃 블록으로 결정될 수 있다.
다만, 현재 블록의 우측 블록이 이용 가능하지 않은 경우에, 현재 블록의 우하측 코너에 인접하는 대표 이웃 블록은, 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 지점에 위치하는 콜로케이티드 블록일 수 있다. 콜로케이티드 블록은 콜로케이티드 픽쳐에 포함된 블록으로서, 시간적 머지 후보로서 어파인 머지 후보 리스트에 포함될 수 있다.
다른 예로, 현재 블록의 우측 블록이 먼저 복호화되어 이용 가능한 경우에, 현재 블록의 우하측 코너에 인접하는 BR 대표 이웃 블록은, 현재 블록의 우하측 코너 및 현재 블록의 우측 외곽선에 인접하는 이웃 블록 C1, 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 이웃 블록 C0, 및 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 지점에 위치하는 콜로케이티드 블록 Col 중 먼저 움직임 정보가 이용 가능한 블록이 대표 이웃 블록으로 결정될 수 있다. 이웃 블록 C1, 이웃 블록 C0, 콜로케이티드 블록 Col의 순서로 해당 블록에서 이용 가능한 움직임 정보가 획득되는지가 확인되고, 먼저 이용 가능한 블록이 BR 대표 이웃 블록으로 결정될 수 있다.
콜로케이티드 블록은 콜로케이티드 픽쳐에 포함된 블록으로서, 시간적 머지 후보로서 어파인 머지 후보 리스트에 포함될 수 있다. 현재 블록의 우하측 코너에 인접하는 콜로케이티드 블록은, 콜로케이티드 픽쳐 내에서 현재 블록의 우하측 코너에 대응하는 좌표에 위치 블록일 수 있다.
일 실시예에 따른 비디오 복호화 장치(1700)는 어파인 머지 후보 리스트에 유효한 머지 후보를 포함시키기 위해 이웃 블록의 움직임 정보의 이용 가능성을 확인할 필요가 있다. 이미 블록에 대한 움직임 예측이 수행되어 이용 가능한 움직임 정보를 가지는 이웃 블록으로부터 유효한 머지 후보가 결정될 수 있기 때문이다. 일반적으로 현재 블록보다 먼저 움직임 예측이 수행된 이웃 블록은 현재 블록의 예측을 위해 이용 가능한 상태이다. 구체적으로 현재 블록의 좌측 이웃 블록에 대해 현재 블록보다 먼저 움직임 예측이 수행된경우에, 좌측 이웃 블록의 움직임 정보는 이용 가능한 상태이다. 현재 블록의 우측 이웃 블록에 대해 현재 블록보다 먼저 움직임 예측이 수행된 경우에, 우측 이웃 블록의 움직임 정보는 이용 가능한 상태이다. 반대로, 현재 블록의 좌측 이웃 블록에 대해 움직임 예측이 수행되지 않은 경우에, 좌측 이웃 블록의 움직임 정보가 이용 가능하지 않은 상태이다. 현재 블록의 우측 이웃 블록에 대해 움직임 예측이 수행되지 않은 경우에, 우측 이웃 블록의 움직임 정보가 이용 가능하지 않은 상태이다.
앞서 전술한 부호화 순서에 따라 이웃 블록의 좌측 이웃 블록들뿐만 아니라 우측 이웃 블록들이 먼저 복호화되어 있을 수 있으므로, 일 실시예에 따른 비디오 복호화 장치(1700)는 부호화 순서를 고려하여 어파인 머지 후보 리스트를 결정할 필요가 있다.
일 실시예에 따른 인터 예측부(1710)는, 복호화 과정에서 유도된 움직임 벡터를 기반으로 추가적인 움직임 벡터 탐색 혹은 움직 임 벡터 계산 과정을 통해 보정된 움직임 벡터를 획득하여 예측 샘플의 정확도를 높이기 위해 DMVR 기술을 수행할 수 있다.
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에서는, 움직임 벡터 보정에 의한 부호화 효율 대비 탐색 과정에서 발생하는 디코더 복잡도를 고려하여, 움직임 벡터 탐색 범위가 수평 및 수직 방향에 대해 정수 샘플 단위를 기준으로 ±2 샘플 크기로 제한될 수 있다. 주어진 탐색 범위내에서 정수 샘플 단위 탐색 및 부샘플 단위 탐색의 2단계 탐색 과정을 통해 최종 움직임 벡터가 구해질 수 있다. 인터 예측부(1710)는, ±2 샘플의 정수 샘플 단위의 탐색 범위내의 25개 탐색 위치 각각에 대해 SAD 값을 계산하여 최소 SAD 값을 가지는 위치를 결정할 수 있다. 부샘플 단위 탐색을 위해, 정수 샘플 단위 탐색 과정에서 계산한 SAD 값을 이용한 2D 파라메틱 에러 서피스 이퀘이션(parametric error surface equation)에 의해 탐색된 정수 샘플의 주변 부샘플 위치들 가운데 SAD 값이 최소가 되는 부샘플 위치가 추정될 수 있다. 이렇게 추정된 위치를 가리키는 움직임 벡터가 최종 움직임 벡터로 설정될 수 있다.
DMVR 과정에서, 블록을 16x16 크기의 서브블록으로 분할하여 서브블록 단위 움직임 벡터의 보정이 수행될 수 있다. 이로 인해 16x16 서브블록 단위로 DMVR의 병렬처리가 가능하며, 서브블록 단위로 보다 정확하게 움직임 벡터를 보정이 가능하다. 또한, 하드웨어 구현시 복호화 과정에서 움직임 벡터 보정으로 인해 지연이 발생하지 않도록 하기 위하여, 보정된 최종 움직임 벡터는 현재 블록의 예측 샘플 생성 및 시간적 움직임 벡터 후보(TMVP 및 SbTMVP)에만 사용되고, 공간적 머지 및 AMVP 후보로는 보정되지 않은 일반 머지 모드에서 유도된 기초 움직임 벡터가 사용될 수 있다.
일 실시예에 따른 비디오 복호화 장치(1700)는 상기 언급된 다양한 인터 예측 방식에 따라 인터 예측을 수행할 때, 현재 블록의 머지 후보 또는 MVP 후보가 될 수 있는 콜로케이티드 블록의 위치를 결정하는 방법을 제안한다. 머지 후보는 현재 블록의 인터 예측 방식이 일반 머지 모드, 스킵 모드, 머지 MMVD 모드 또는 스킵 MMVD 모드일 때 결정되는 머지 후보 리스트에 포함되거나, 현재 블록의 인터 예측 방식이 어파인 머지 모드 또는 sbTMVP 모드인 경우에 생성될 수 있는 어파인 머지 후보 리스트에 포함될 수 있다. MVP 후보는 현재 블록의 인터 예측 방식이 AMVP 모드 또는 어파인 AMVP 모드일 때 결정되는 MVP 후보 리스트에 포함될 수 있다.
일 실시예에 따른 비디오 복호화 장치(1700)는 현재 블록의 좌상측 지점을 이용하여 결정되는 콜로케이티드 블록의 좌상측 지점이 콜로케이티드 픽쳐 내의 블록 안에 내의 임의의 점인 경우에, 콜로케이티드 블록의 최종 위치를 콜로케이티드 픽쳐 내의 블록 중 어느 위치로 결정할 것인지에 대한 방안을 제공한다.
일 실시예에 따른 비디오 복호화 장치(1700)는 인터 예측부(1710) 및 복원부(1720)를 포함한다.
일 실시예에 따른 인터 예측부(1710)는, 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하고, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다.
인터 예측부(1710)는 콜로케이티드 픽쳐 내에서 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득할 수 있다. 인터 예측부(1710)는 콜로케이티드 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 획득할 수 있다.
일 실시예에 따른 복원부(1720)는, 현재 블록의 움직임 벡터를 이용하여 결정된 현재 블록의 예측 블록을 이용하여 현재 블록의 복원 블록을 생성할 수 있다.
이하 도 18을 참조하여 일 실시예에 따른 비디오 복호화 장치(1700)의 동작을 상술한다.
도 18은 일 실시예에 따른 비디오 복호화 방법의 흐름도를 도시한다.
단계 1810에서 인터 예측부(1710)는 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득할 수 있다.
콜로케이티드 블록은 콜로케이티드 픽쳐 내의 블록이다. 콜로케이티드 픽쳐는 현재 블록의 TMVP(temporal movtion vector prediction)을 위해 사용되는 참조 픽쳐로, 픽쳐 단위의 콜로케이티드 픽쳐 또는 슬라이스 단위 단위의 콜로케이티드 픽쳐가 결정될 수 있다.
일 실시예에 따르면, 인터 예측부(1710)는 픽쳐 헤더또는 슬라이스 헤더로부터 콜로케이티드 픽쳐를, 현재 블록을 포함하는 슬라이스의 L0 참조 픽쳐 리스트 또는 L1 참조 픽쳐 리스트 중에서 어느 리스트로부터 결정될지를 나타내는 정보, 및 선택된 참조 리스트에서 콜로케이티드 픽쳐를 가라키는 콜로케이티드 참조 픽쳐 인덱스를 획득할 수 있다. 이를 통해, 인터 예측부(1710)는 L0 참조 리스트 또는 L1 참조 리스트 중에서, 콜로케이티드 참조 픽쳐 인덱스가 가리키는 콜로케이티드 픽쳐를 결정할 수 있다.
다른 실시예에 따르면, 현재 블록을 포함하는 픽쳐가 양방향 예측이 수행되는 B 슬라이스 타입의 픽쳐인 경우에는 L1 참조 픽쳐 리스트 중에서 첫번째 참조 픽쳐 인덱스가 가리키는 픽쳐가 콜로케이티드 픽쳐로서 사용될 수 있다. 현재 블록을 포함하는 픽쳐가 단방향 예측이 수행되는 P 슬라이스 타입의 픽쳐인 경우에는 L0 참조 픽쳐 리스트 중에서 첫번째 참조 픽쳐 인덱스가 가리키는 픽쳐가 콜로케이티드 픽쳐로서 사용될 수 있다.
일 실시예에 따른 인터 예측부(1710)는 현재 블록의 소정 위치를 가리키는 좌표를 기준으로, 콜로케이티드 픽쳐 내에 존재하는 콜로케이티드 블록의 위치를 결정할 수 있다. 다만, 예측 모드 등의 정보를 획득하기 위한 콜로케이티드 블록의 위치는 콜로케이티드 블록에 대응하는 콜로케이티드 부호화 단위의 위치를 이용하여 결정될 수 있다. 움직임 벡터 등의 정보를 획득하기 위한 콜로케이티드 블록의 위치는 콜로케이티드 블록의 소정 샘플의 위치를 이용하여 결정할 수 있다.
일 실시예에 따르면, 콜로케이티드 블록의 제1 좌표는 현재 블록의 우하측 지점의 좌표와 동일하게 결정될 수 있다. 콜로케이티드 블록이 우하측 콜로케이티드 블록(bottom-right collocated block)인 경우, 제1 좌표는 현재 블록의 우하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다. 현재 블록의 우하측 지점은 현재 블록의 좌상측 지점으로부터 x축 방향으로 블록 너비만큼 떨어지고, y축 방향으로 블록 높이만큼 떨어진 지점이다. 따라서, 현재 블록의 좌상측 지점의 (x, y) 좌표와 현재 블록의 너비 및 높이를 기초로 현재 블록의 우하측 지점의 좌표가 획득될 수 있다.
구체적으로, 현재 블록의 좌상측 지점의 (x, y) 좌표가 (xCb, xCb)일 때, 콜로케이티드 블록의 제1 좌표 (xColBr, yColBr)는 현재 블록의 우하측 지점의 좌표 와 동일하게 결정될 수 있다. 현재 블록의 우하측 지점의 x 좌표는 xCb와 현재 블록의 블록 너비 cbWidth 를 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 x 좌표 xColBr는 xCb와 현재 블록의 블록 너비 cbWidth 를 합함으로써 획득된 값과 동일하게 결정될 수 있다. 마찬가지로, 현재 블록의 우하측 지점의 y 좌표는 yCb와 현재 블록의 블록 너비 cbHeight 를 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 y 좌표 yColBr는 yCb와 현재 블록의 블록 높이 cbHeigt 를 합함으로써 획득된 값과 동일하게 결정될 수 있다.
다른 예로, 콜로케이티드 블록의 제1 좌표는 현재 블록의 중앙 지점의 좌표와 동일하게 결정될 수 있다. 콜로케이티드 블록이 중앙 콜로케이티드 블록(central collocated block)인 경우, 제1 좌표는 현재 블록의 중앙 지점의 좌표와 동일할 수 있다. 현재 블록의 중앙 지점은 현재 블록의 좌상측 지점으로부터 x축 방향으로 블록 너비의 절반만큼 떨어지고, y축 방향으로 블록 높이의 절반만큼 떨어진 지점이다. 따라서, 현재 블록의 좌상측 지점의 (x, y) 좌표와 현재 블록의 너비 및 높이를 기초로 현재 블록의 중앙 지점의 좌표가 획득될 수 있다.
구체적으로, 콜로케이티드 블록의 제1 좌표 (xColCtr, yColCtr)는 현재 블록의 중앙 지점의 좌표와 동일하게 결정될 수 있다. 현재 블록의 중앙 지점의 x 좌표는 xCb와 현재 블록의 블록 너비 cbWidth 의 절반을 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 x 좌표 xColCtr는 xCb와 현재 블록의 블록 너비 cbWidth 의 절반 (cbWidth << 2)를 합함으로써 획득된 값과 동일하게 결정될 수 있다. 마찬가지로, 현재 블록의 중앙 지점의 y 좌표는 yCb와 현재 블록의 블록 너비 cbHeight 의 절반을 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 y 좌표 yColCtr는 yCb와 현재 블록의 블록 높이 cbHeigt의 절반(cbHeight << 2) 를 합함으로써 획득된 값과 동일하게 결정될 수 있다.
다른 예로, 콜로케이티드 블록이 하측 콜로케이티드 블록(bottom collocated block)인 경우, 제1 좌표는 현재 블록좌하측 지점 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
다른 예로, 콜로케이티드 블록이 사이드 콜로케이티드 블록(side collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 x축 방향으로 인접하는 외부 샘플 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
다른 예로, 콜로케이티드 블록이 좌하측 콜로케이티드 블록(bottom-left collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
단계 1820에서 인터 예측부(1710)는 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다.
구체적으로, 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 좌표를 획득할 수 있다.
일 실시예에 따르면, 콜로케이티드 픽쳐 내에서 MxN 크기의 블록(MxN 그리드)를 단위로 저장된 움직임 벡터 관련 정보만이, 현재 블록의 인터 예측을 위해 획득될 수 있다. 일 실시예에 따르면, 현재 블록의 콜로케이티드 블록의 위치에 대응하여, 콜로케이티드 픽쳐 내에 존재하는 위치가 제1 좌표라 지칭된다. 다만 콜로케이티드 블록 내에서 제1 좌표에 대해 저장된 움직임 벡터 관련 정보가 획득되지 않을 수 있으므로, 제1 좌표를 MxN 그리드 단위로 변경하는 과정이 상기 제1 좌표의 x좌표를 m만큼, y좌표를 n만큼 우측 비트쉬프트한 후 다시 좌측 비트쉬프트하는 과정이다. 따라서, 제1 좌표를 MxN 그리드 단위로 변경함으로써, 제2 좌표가 획득될 수 있다.
단계 1830에서 인터 예측부(1710)는, 콜로케이티드 픽쳐 내에서 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득할 수 있다. 단계 1840에서 인터 예측부(1710)는, 콜로케이티드 움직임 벡터를 이용하여 결정된 현재 블록의 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성할 수 있다.
MxN 크기의 블록은 부호화 단위, 예측 블록 또는 서브블록과는 별개로 설정된 블록일 수 있다. 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 일 실시예에 따른 인터 예측부(1710)는, 콜로케이티드 부호화 단위의 서브블록들 중에서, 제2 좌표를 포함하는 서브블록의 좌표를 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다. 이 경우 인터 예측부(1710)는, 제2 좌표를 포함하는 서브블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 현재 블록의 시간적 예측 움직임 벡터를 획득할 수 있다.
일 실시예에 따라 MxN 크기의 블록은 8x8일 수 있다.
일 실시예에 따라 콜로케이티드 부호화 단위가 인트라 예측 모드, IBC (intra block copy) 예측 모드 또는 팔레트 예측 모드로 복호화되지 않은 경우, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 콜로케이티드 샘플의 좌표에 대응하는 블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스를 획득할 수 있다.
따라서, 콜로케이티드 샘플의 좌표에 대응하는 블록이 콜로케이티드 부호화 단위의 서브블록들 중 하나의 서브블록인 경우에, 콜로케이티드 부호화 단위의 예측 모드가 인트라 예측 모드, IBC 예측 모드 또는 팔레트 예측 모드가 아니라면, 콜로케이티드 샘플의 좌표에 대응하는 서브블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터가 획득되고, 콜로케이티드 샘플의 좌표에 대응하는 서브블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스가 획득될 수 있다. 따라서, 예측 모드는 콜로케이티드 부호화 단위를 통해 판단되는 반면에, 움직임 벡터는 콜로케이티드 부호화 단위 내부의 서브블록을 통해 획득될 수 있다.
또한, 콜로케이티드 부호화 단위의 참조 픽쳐와 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐이거나, 콜로케이티드 부호화 단위의 참조 픽쳐와 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐가 아닌 경우에, 인터 예측부(1710)는 콜로케이티드 부호화 단위를 포함하는 슬라이스의 참조 픽쳐 리스트 세트를 이용하여, 콜로케이티드 움직임 벡터를 스케일링할 수 있다. 따라서 콜로케이티드 블록의 픽쳐가 롱텀 참조 픽쳐인지 여부를 판단하는데 있어서 콜로케이티드 부호화 단위가 이용되고 콜로케이티드 부호화 단위의 참조 픽쳐 리스트 세트가 이용되는 반면에, 그로 인해 스케일링되는 움직임 벡터는 콜로케이티드 부호화 단위 내부의 서브블록의 움직임 벡터를 이용하여 획득될 수 있다.
일 실시예에 따른 인터 예측부(1710)는, 현재 블록이 머지 모드로 인터 예측될 때, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성을 각각 획득할 수 있다. 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 인터 예측부(1710)는, 콜로케이티드 움직임 벡터를 가지는 블록에 대응하는 시간적 머지 후보를 포함하는 현재 블록의 머지 후보 리스트를 생성할 수 있다. 인터 예측부(1710)는, 머지 후보 리스트 중에서 결정된 현재 블록의 머지 후보에 대응하는 블록의 움직임 벡터를 이용하여 현재 블록의 예측 움직임 벡터를 결정할 수 있다.
일 실시예에 따르 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 콜로케이티드 샘플의 좌표에 해당하는 서브블록의 움직임 벡터가 콜로케이티드 움직임 벡터로 결정되고, 콜로케이티드 부호화 단위의 서브블록이 시간적 머지 후보로 이용될 수 있다.
일 실시예에 따른 인터 예측부(1710)는, 현재 블록의 MVP 모드로 인터 예측될 때, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 각각 획득할 수 있다. 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 인터 예측부(1710)는 콜로케이티드 움직임 벡터를 가지는 블록에 대응하는 시간적 움직임 벡터 예측 후보를 포함하는 현재 블록의 MVP 후보 리스트를 생성할 수 있다. 인터 예측부(1710)는, MVP 후보 리스트 중에서 결정된 현재 블록의 예측 움직임 벡터 후보에 대응하는 블록의 움직임 벡터를 이용하여 현재 블록의 예측 움직임 벡터를 결정할 수 있다.
일 실시예에 따르 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 콜로케이티드 샘플의 좌표에 해당하는 서브블록의 움직임 벡터가 콜로케이티드 움직임 벡터로 결정되고, 콜로케이티드 부호화 단위의 서브블록이 시간적 움직임 벡터 예측 후보로 이용될 수 있다.
단계 1840에서 인터 예측부부(1710)는, 콜로케이티드 움직임 벡터를 이용하여 결정된 현재 블록의 움직임 벡터를 이용하여 현재 블록의 예측 블록을 생성할 수 있다. 복원부(1720)는 현재 블록의 움직임 벡터를 이용하여 결정된 현재 블록의 예측 블록을 이용하여 현재 블록의 복원 블록을 생성할 수 있다.
인터 예측부(1710)는 현재 블록의 움직임 벡터를 이용하여 현재 블록의 예측 블록을 결정하고, 현재 블록의 예측 샘플들을 획득할 수 있다. 스킵 모드의 경우에는 복원부(1720)는 현재 블록의 예측 블록의 예측 샘플들이 현재 블록의 복원 샘플들을 되도록 결정하고 복원 샘플들로 구성된 복원 블록을 생성할 수 있다. 스킵 모드 이외의 인터 예측 모드의 경우에는, 복원부(1720)는 현재 블록의 레지듀얼 샘플들을 포함하는 레지듀얼 블록을 획득하고, 현재 블록의 예측 블록의 예측 샘플들과 레지듀얼 블록의 레지듀얼 샘플들을 조합함으로써 현재 블록의 복원 샘플들을 획득하고, 복원 샘플들로 구성된 복원 블록을 생성할 수 있다.
일반적인 비디오 코딩에서는 코딩 효율의 향상을 위해, 현재 픽쳐의 복원이 완료된 후, 복원 픽쳐의 움직임 벡터 관련 정보가 저장될 수 있다. 움직임 벡터 관련 정보는 L0 참조 리스트를 위한 움직임 벡터 mvL0와 참조 픽쳐 인덱스와, L1 참조 리스트를 위한 움직임 벡터 mvL1와 참조 픽쳐 인덱스를 포함할 수 있다. 복원이 완료된 블록에 대한 움직임 벡터 관련 정보는 추후 다른 블록의 복호화에 사용될 수 있다.
이 때, 움직임 벡터 관련 정보의 데이터가 방대하기 때문에, 소정 데이터 단위의 움직임 벡터 관련 정보가 저장된다. 예를 들어 종래 비디오 코덱의 경우에는 실제 8x4 또는 4x8 샘플 블록 단위로 움직임 벡터 관련 정보가 저장될 수 있는데, 예로 움직임 벡터의 x 성분 및 y 성분별로 저장하기 위해 16 비트가 필요하고, 참조 픽쳐 인덱스를 저장하기 위해 4비트가 필요하므로, 하나의 움직임 벡터 관련 정보를 저장하기 위해 (16*2+4)*2, 즉 72비트가 필요하다. 예로 4K UHD(Ultra High-Definition) 영상 (3840x2160) 한 장의 움직임 벡터 관련 정보의 저장을 위해 최대 2,332,800 바이트가 필요하다. 따라서, 소정 크기의 그리드(블록) 단위로 움직임 벡터 관련 정보에 접근하도록 규정되어 있다.
예를 들어, 인터 예측을 위해 참조 픽쳐 또는 콜로케이티드 픽쳐 내의 블록들의 움직임 벡터 관련 정보를 획득할 때, 픽쳐의 좌상측 위치가 원점(origin)으로부터 설정된 16x16 그리드로 움직임 벡터 관련 정보가 획득될 수 있다. 따라서, 픽쳐 내에서 16x16 그리드의 좌상측 위치를 포함하는 블록의 움직임 벡터 관련 정보가 획득될 수 있다. 16x16 그리드로 움직임 벡터 관련 정보가 획득된다면, 4K UHD 영상 한 장의 움직임 벡터 관련 정보를 저장하기 위해 최대 291,600 바이트가 필요하므로, 그리드 단위로 움직임 벡터 관련 정보를 저장하지 않는 케이스에 대비하여, 움직임 벡터 관련 정보의 저장 공간이 8배 정도 절약될 수 있다.
일 실시예에 따른 비디오 복호화 장치(1700)는 먼저 복호화된 픽쳐의 움직임 벡터 관련 정보 중에서 MxN 그리드에 대응하는 블록의 움직임 벡터 관련 정보가 접근 가능하도록 설정할 수 있다. MxN는 현재 블록의 크기와 무관할 수 있다. 따라서, MxN를 이용하여 현재 블록의 인터 예측을 위해 접근 가능한 움직임 벡터 관련 정보를 보유하고 있는 후보 블록의 위치를 결정할 수 있다. 이를 통해, 일 실시예에 따른 비디오 복호화 장치(1700)는 현재 블록에 대해 인터 예측을 수행할 때, 현재 블록의 콜로케이티드 블록의 위치가 포함된 MxN 그리드에 대응하는 움직임 벡터 관련 정보를 이용하여, 현재 블록에 대해 인터 예측을 수행할 수 있다. 또한, 콜로케이티드 픽쳐 내에서 하나의 부호화 단위는 다수의 MxN 그리드를 포함할 수 있고, MxN 그리드들 중 콜로케이티드 블록의 위치에 가장 가까운 MxN 그리드에 대응하는 움직임 벡터 관련 정보를 이용하여 현재 블록에 대해 인터 예측을 수행하는 것이 효율적일 수 있다.
구체적으로 콜로케이티드 픽쳐 중 콜로케이티드 블록에 대해 서브블록 기반의 인터 예측이 수행되어, 서브블록들에 대해 각각 움직임 벡터 관련 정보가 결정되어 있을 수 있다. 일 실시예에 따른 비디오 복호화 장치(1700)는, 현재 블록에 대해 서브블록 기반의 인터 예측 모드가 아닌 모드에 따라 인터 예측을 수행하더라도, 현재 블록의 콜로케이티드 블록의 위치가 콜로케이티드 블록의 서브블록들 중 MxN 그리드의 좌상측 지점을 포함하는 서브블록이 존재한다면, MxN 그리드의 좌상측 지점을 포함하는 서브블록의 움직임 벡터 또는 움직임 벡터 관련 정보를 이용하여 현재 블록에 대해 인터 예측이 수행될 수 있다. 따라서, 콜로케이티드 블록의 위치에 가장 가까운 서브블록의 움직임 벡터가 획득될 수 있으므로, 현재 블록에 대한 인터 예측 결과의 정확성이 높아질 수 있다.
또한, 콜로케이티드 부호화 단위의 예측 모드(인트라 또는 IBC 또는 팔레트 예측 모드로 부호화되었는지 여부) 및 콜로케이티드 블록의 참조 픽쳐가 롱텀 참조 픽쳐인지 여부는 콜로케이티드 샘플을 포함하는 콜로케이티드 부호화 단위를 기준으로 판단하되, 움직임 벡터 및 참조 픽쳐 인덱스 등은 콜로케이티드 부호화 단위를 구성하는 서브블록들 중 하나의 서브블록 단위의 움직임 벡터 및 참조 픽쳐 인덱스 등을 이용하여 결정될 수 있다.
서브블록 기반의 인터 예측이 수행된 경우에 서브블록별로 개별적인 움직임 벡터가 결정될 수 있다. 따라서, 콜로케이티드 부호화 단위가 아닌 서브블록으로부터 움직임 벡터를 획득함으로써, 인터 예측을 위해 보다 정밀한 움직임 정보의 획득이 가능하다. 이와 반면에 서브블록보다 큰 데이터 단위로 판단 가능한 예측 모드 및 롱텀 참조 픽쳐인지 여부는, 서브블록이 아닌 콜로케이티드 부호화 단위 기준으로 판단되므로, 현재 블록의 인터 예측시 접근해야 할 콜로케이티드 블록의 데이터량이 효율적으로 운용될 수 있다.
도 19은 일 실시예에 따른 비디오 부호화 장치의 블록도를 도시한다.
도 19을 참조하면, 일 실시예에 따른 비디오 부호화 장치(1900)는 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)를 포함할 수 있다.
일 실시예에 따른 비디오 부호화 장치(1900)는 픽쳐를 하나 이상의 루마부호화 단위들로 분할하고, 부호화 단위들을 부호화할 수 있다.
일 실시예에 따른 비디오 부호화 장치(1900)는, 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)를 제어하는 중앙 프로세서(미도시)를 포함할 수 있다. 또는, 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)가 각각의 자체 프로세서(미도시)에 의해 구현될 수도 있다. 또는, 비디오 부호화 장치(1900)의 외부 프로세서(미도시)의 제어에 따라, 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)가 제어될 수도 있다.
비디오 부호화 장치(1900)는, 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)의 입출력 데이터가 저장되는 하나 이상의 데이터 저장부(미도시)를 포함할 수 있다. 비디오 부호화 장치(1900)는, 데이터 저장부(미도시)의 데이터 입출력을 제어하는 메모리 제어부(미도시)를 포함할 수도 있다.
비디오 부호화 장치(1900)는, 영상 부호화를 위해, 내부에 탑재된 비디오 인코딩 프로세서 또는 외부의 비디오 인코딩 프로세서와 연계하여 작동함으로써, 예측을 포함한 영상 부호화 동작을 수행할 수 있다.
비디오 부호화 장치(1900)는 도 16을 참조하여 전술한 영상 부호화 및 복호화 시스템의 부호화기(1600)에 대응될 수 있다. 예를 들어, 움직임 정보 부호화부(1920)는 부호화기(1600)의 엔트로피 부호화부(1630)에 대응될 수 있다. 움직임 예측부(1910)는 부호화기(1600)의 인터 예측부(1605)에 대응될 수 있다.
일 실시예에 따른 비디오 부호화 장치(1900)는, 픽쳐를 복수 개의 최대 부호화 단위들로 분할하고, 각 최대 부호화 단위를 다양한 크기 및 다양한 형태의 블록들로 분할하여 부호화할 수 있다.
예를 들어, 현재 블록의 예측 모드가 인트라 모드인 경우에 비디오 부호화 장치(1900)는 현재 블록의 현재 블록의 인트라 예측 방향에 위치한 공간적 이웃 블록의 샘플들 중 참조 샘플을 결정하고, 참조 샘플을 이용하여 현재 블록에 대응하는 예측 샘플들을 결정할 수 있다.
예를 들어, 현재 블록의 예측 모드가 인터 모드인 경우에 비디오 부호화 장치(1900)는, 참조 픽쳐 내에서 현재 블록의 참조 블록을 결정하고, 현재 블록으로부터 참조 블록을 가리키는 움직임 벡터를 결정할 수 있다.
다만, 현재 블록이 스킵 모드로 예측되는 경우에 비디오 부호화 장치(1900)는 현재 블록의 움직임 벡터 관련 정보와 유사한 움직임 벡터 관련 정보를 가지는 주변 블록을 결정하고 주변 블록을 가리키는 머지 인덱스만을 부호화할 수 있다. 또한, 스킵 모드인 경우는 레지듀얼 블록의 부호화가 필요 없다.
예를 들어, 현재 블록이 머지 모드로 예측되는 경우에, 비디오 부호화 장치(1900)는 현재 블록의 움직임 벡터 관련 정보와 유사한 움직임 벡터 관련 정보를 가지는 주변 블록을 결정하고 주변 블록을 가리키는 머지 인덱스를 부호화할 수 있다. 또한, 스킵 모드와는 다르게 레지듀얼 블록의 부호화가 필요하다.
예를 들어, 현재 블록의 예측 모드가 스킵 모드가 아닌 인터 모드인 경우에 비디오 부호화 장치(1900)는, 현재 블록의 움직임 벡터 관련 정보와 유사한 움직임 벡터를 가지는 주변 블록을 결정하고 주변 블록을 가리키는 MVP 인덱스를 부호화하고, 주변 블록과 현재 블록의 움직임 벡터 간의 차이를 나타내는 차분 움직임 벡터 (motion vector difference) 정보를 부호화할 수 있다. 또한 구체적으로 비디오 부호화 장치(1900)는 현재 블록의 인터 예측이 L0, L1, Bi-pred 중에 어느 모드인지를 나타내는 예측 방향 정보, 예측 방향에 따라 L0 리스트를 위한 참조 픽쳐 인덱스 및 움직임 벡터, 차분 움직임 벡터 정보, 및/또는 L1 리스트를 위한 참조 픽쳐 인덱스 및 움직임 벡터, 차분 움직임 벡터 정보를 부호화할 수 있다. 비디오 부호화 장치(1900)는, 참조 블록에 포함된 참조 샘플과 현재 블록의 현재 샘플 간의 레지듀얼 샘플을 결정하고, 변환단위를 기초로 레지듀얼 샘플에 대해 변환 및 양자화를 수행함으로써, 양자화된 변환 계수를 생성할 수 있다.
구체적으로, 일 실시예에 따른 머지 모드는, 블록 기반 머지 모드와 서브블록 기반 머지 모드로 구분될 수 있다. 블록 기반 머지 모드는 일반 머지 모드(regular merge mode), MMVD 모드, CIIP 모드, 트라이앵귤러 모드로 구분될 수 있다. 또한, 일 실시예에 따른 스킵 모드는 CIIP 모드를 제외하고, MMVD 모드, 트라이앵귤러 모드에도 적용될 수 있다. 즉, 스킵 MMVD 모드인 경우에, 머지 인덱스와 움직임 벡터 차분의 방향 및 움직임 벡터 차분의 크기만 시그널링되고, 레지듀얼 성분은 시그널링되지 않는다. 반면에 머지 MMVD 모드인 경우에, 머지 인덱스와 움직임 벡터 차분의 방향 및 움직임 벡터 차분의 크기와 함께 레지듀얼 성분이 시그널링될 수 있다. 마찬가지로, 스킵 트라이앵귤러 모드에서는 레지듀얼 성분이 시그널링되지 않지만, 머지 트라이앵귤러 모드에서는 레지듀얼 성분이 시그널링될 수 있다.
일반 MERGE 모드인 경우, 움직임 예측부(1910)는 머지 후보 리스트를 구성하고 구성된 후보 리스트 중에서, 현재 블록의 움직임 정보로 이용될 수 있는 후보를 결정하고, 움직임 정보 부호화부(1920)는, 후보 리스트 중에서 결정된 후보를 가리키는 후보 인덱스를 시그널링할 수 있다.
일 실시예에 따라 머지 후보 리스트는 공간적 머지 후보(spatial merge candidate), 시간적 머지 후보(temporal merge candidate), HMVP(History-based MVP)와 PAMVP(Pairwise Average MVP)를 포함할 수 있다.
움직임 예측부(1910)는 현재 블록보다 먼저 부호화된 소정 개수의 블록의 움직임 정보를 HMVP 테이블에 저장하고, 현재 블록을 위한 머지 후보 리스트에 HMVP 테이블에 저장되어 있는 HMVP 후보를 추가할 수 있다.
PAMVP 후보가 이용되는 경우에, 움직임 예측부(1910)는 머지 후보 리스트에서 첫 번째 후보와 두 번째 후보의 움직임 벡터의 평균값을 PAMVP 후보의 움직임 벡터로 설정하고 PAMVP의 참조 픽쳐를 첫번째 후보의 참조 픽쳐와 동일하게 설정할 수 있다.
움직임 예측부(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의 범위를 가질 수 있다.
CIIP 모드의 경우, 인트라 예측에 의해 획득된 예측 샘플과 인터 예측에 의해 획득된 예측 샘플을 결합함으로써 추가적인 예측 샘플이 획득될 수 있다. 인터 예측 샘플은 일반 머지 모드에 의해 획득되고, 인트라 예측 샘플은 플라나(planar) 모드에 따른 인트라 예측을 통해 획득될 수 있다. 획득된 인터 예측 샘플과 인트라 예측 샘플에 가중치를 적용하여 최종 예측 샘플이 생성되며, 상단 주변 블록과 좌측 주변 블록의 인트라 예측 부호화 여부에 따라, (인트라 예측 샘플에 적용되는 가중치, 인터 예측 샘플에 적용되는 가중치)의 조합은 다음과 같이 결정될 수 있다. 상단 주변 블록과 좌측 주변 블록이 모두 인트라 예측에 의해 부호화된 경우에는 (3,1), 상단 주변 블록 또는 좌측 주변 블록 중 하나의 블록만 인트라 예측에 의해 부호화된 경우는 (2,2), 상단 주변 블록과 좌측 주변 블록이 모두 인트라 예측에 의해 부호화된 것이 아닌 경우는 (1,3)의 가중치가 적용될 수 있다.
트라이앵귤러 모드에 따른 인터 예측의 경우, 사각형의 블록이 사선으로 분할되어 2개의 삼각 영역이 생성되고, 움직임 예측부(1910)는 2개의 삼각 영역에 대해 서로 다른 움직임 정보를 이용하여 독립적으로 화면간 예측을 수행한다. 움직임 예측부(1910)는 2개 삼각 영역의 움직임 정보를 이용하여 유도된 예측 샘플값들의 가중합을, 경계영역의 예측 샘플값이 되도록 결정될 수 있다. 트라이앵귤러 모드에서 각 삼각 영역에서의 예측 방향은 단방향 예측만 허용된다. 이를 위해 움직임 예측부(1910)는 일반 머지 모드 후보 리스트 중에서, 각 머지 인덱스가 짝수인 후보는 L0 리스트의 움직임 정보를, 홀수인 후보는 L1 리스트의 움직임 정보를 이용하여 단방향 움직임 정보만을 가지는 트라이앵귤러 모드 후보 리스트를 구성할 수 있다. 만약 머지 인덱스가 짝수인 후보에 L0 리스트 움직임 정보가 존재하지 않는다면 L1 리스트 움직임 정보가 선택될 수 있다. 각 삼각 영역별로, 트라이앵귤러 모드 후보 리스트 중에서 각 삼각 영역에 적용될 머지 인덱스가 부호화될 수 있다.
서브블록 기반 머지 모드에 따르면, 움직임 예측부(1910)는 블록을 서브 블록으로 분할하고 서브블록별로 개별의 움직임 벡터를 결정할 수 있다. 서브블록 기반 머지 후보 리스트는 블록 기반 머지 모드 중에서 시간적 머지 및 AMVP 후보인 TMVP(Temporal MVP)와 유사한 서브블록 기반 TMVP(SbTMVP)와, 어파인 움직임 모델을 적용한 어파인 기반 움직임 벡터 예측 후보들을 포함할 있다.
SbTMVP는 결정하기 위해, 현재 블록의 콜로케이티드 블록을 찾는 과정과 콜로케이티드 블록의 움직임 벡터로부터 현재 블록 내의 서브블록 단위의 움직임 벡터를 유도하는 과정이 수행될 수 있다. 현재 블록의 콜로케이티드 블록은 슬라이스 헤더에서 획득된 콜로케이티드 픽쳐에 존재하는 블록으로, 현재 블록의 좌하단 위치(A1)의 참조 픽쳐가 콜로케이티드 픽쳐와 동일한 경우에 A1 위치의 움직임 벡터가 이용되고, 동일하지 않은 경우에는 제로 MV를 이용하여 콜로케이티드 블록 위치가 결정될 수 있다. 콜로케이티드 블록으로부터 현재 블록의 서브블록(8x8 크기) 단위 움직임 벡터를 유도하기 위해서, 인터 예측부(1710)는 현재 블록을 8x8 서브블록들로 분할하고, 콜로케이티드 블록의 서브블록들의 중심 위치에 대응되는 움직임 정보를 이용하여 현재 블록의 각 서브블록의 움직임 벡터를 유도할 수 있다. SbTMVP의 참조 픽쳐는 TMVP 경우와 동일하게 L0/L1 참조픽처 리스트 중에서 인덱스 0이 가리키는 픽쳐이므로, 콜로케이티드 블록으로부터 결정된 움직임 벡터 mvCol가 sbTMVP 참조픽처에 적용될 수 있도록 스케일링 과정이 추가될 수 있다. 따라서 스케일링된 움직임 벡터 mvCol가 서브블록 단위 움직임 벡터인 SbTMVP로 설정된다.
이하, AMVP 모드에 따른 인터 예측 방식이 상술된다. SKIP 및 MERGE 모드와 비교하여, AMVP 모드에서는 주변 블록으로부터 얻어진 예측 움직임 벡터과 최종 움직임 벡터 간의 차이 값인 MVD가 부호화되는 모드이다. AMVP 모드는 구체적으로 일반 AMVP 모드, SMVD 모드, 어파인 AMVP 모드로 구분될 수 있다. 일반 AMVP 모드, SMVD 모드에 대한 설명은 앞서 도 17을 참조하여 설명에 갈음한다.
일 실시예에 따른 움직임 예측부(1910)는 AMVR 기술에 따라 MVD 해상도를 적응적으로 선택할 수 있다. 부호화 모드에 따라 적용 가능한 MVD 해상도는 다르며, 유도된 움직임 벡터 예측 값에 MVD를 더하여 얻어지는 최종 움직임 벡터가 MVD와 동일한 해상도를 가지도록 하기 위하여, 움직임 예측부(1910)는 MVD와 동일한 해상도를 가지도록 예측 움직임 벡터에 대해 라운딩을 수행할 수 있다.
일 실시예에 따른 움직임 예측부(1910)는 4개 또는 6개 파라미터를 이용하는 어파인 움직임 모델 기반 움직임 예측 기술을 수행할 수 있다. 일 실시예에 따른 움직임 예측부(1910)는 블록을 4x4 서브블록 단위로 분할하고, 서브블록별로 서브블록의 중심 위치에서의 움직임 벡터를 어파인 움직임 모델 기반으로 유도함으로써, 서브블록 단위의 움직임 예측을 수행할 수 있다.
일 실시예에 따른, 움직임 예측부(1910)에서 수행되는 인터 예측 방식 중에서 어파인 기반의 움직임 벡터 예측 기술이 적용된 어파인 머지 모드와 어파인 AMVP 모드가 존재할 수 있다.
일 실시예에 따른 움직임 예측부(1910)는, 인터 예측 방식이 서브블록 머지 모드이면서 서브블록 기반의 시간적 예측 움직임 벡터의 이용이 가능한 경우에, 서브블록 기반의 시간적 머지 후보가 결정될 수 있다.
일 실시예에 따른 인터 예측부(1710)는, 인터 예측 방식이 서브블록 머지 모드이면서 어파인 모델 기반의 움직임 보상이 가능한 경우에, 하나 이상의 조합 어파인 CPMV 머지 후보를 포함하는 서브블록 머지 후보 리스트를 생성할 수 있다.
어파인 AMVP 모드는 상속 어파인 AMVP 후보, 조합 어파인 AMVP 후보, 평행이동 MV, 제로(zero) MV들로 후보 리스트를 구성한다. 상속 어파인 AMVP 후보는 상속 어파인 머지 후보와 동일하나 상속받는 블록의 참조픽처가 현재 블록의 참조픽처와 동일한 경우에만 해당 블록의 CPMV로부터 유도한 현재 블록의 CPMV를 후보 리스트에 추가한다. 조합 AMVP 후보도 조합 어파인 머지 후보와 동일하지만 모든 CPMV들의 참조 픽쳐가 현재 블록의 참조 픽쳐와 동일한 경우에만 후보 리스트에 추가한다. 상속 어파인 AMVP 후보와 조합 어파인 AMVP 후보로 구성 된 어파인 AMVP 모드의 후보들이 2개 이하인 경우에 평행이동만 가능한 평행이동 MV를 후보로 추가될 수 있다. 이 때, 평행이동 MV로는 CPMV1, CPMV2, CPMV3가 각각 사용될 수 있다. 평행이동 MV를 후보 리스트에 추가하였음에도 후보가 2개 이하인 경우에는 제로 MV가 후보 리스트에 추가될 수 있다.
특히, 움직임 예측부(1910)는 현재 블록에 대해 어파인 모델 기반의 인터 예측을 수행할 수 있다. 움직임 예측부(1910)는 현재 블록의 코너별로 대표하는 이웃 블록들의 블록 그룹에 포함된 이웃 블록들의 움직임 벡터들을 이용하여 결정된 컨트롤 포인트 움직임 벡터들에 대응하는 컨트롤 포인트 기반의 어파인 머지 후보를 포함하는 어파인 머지 후보 리스트를 생성할 수 있다.
구체적으로, 현재 블록의 인터 예측이 어파인 머지 모드로 수행되는 경우에, 일 실시예에 따른 움직임 예측부(1910)는 컨트롤 포인트 기반의 어파인 머지 후보를 구성하기 이전에, 모델 기반의 어파인 머지 후보를 포함하는 어파인 머지 후보 리스트를 생성할 수 있다. 현재 블록보다 먼저 이웃 블록에 대해 움직임 예측이 수행되어 이웃 블록의 움직임 정보가 이용 가능한 경우에 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보가 어파인 머지 후보 리스트에 포함될 수 있다. 이웃 블록의 움직임 정보가 이용 가능한 경우에 해당 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보도 이용 가능한 상태로 설정된다. 반대로 이웃 블록의 움직임 정보가 이용 가능하지 않은 경우에 해당 이웃 블록에 대응하는 모델 기반의 어파인 머지 후보도 이용 가능하지 않은 상태로 설정된다. 다만, 이용 가능한 모델 기반의 어파인 머지 후보의 개수가 소정 개수보다 적은 경우에, 움직임 예측부(1910)는 현재 블록의 코너별로 대표하는 이웃 블록들의 그룹에 대응하는 컨트롤 포인트 기반의 어파인 머지 후보를 결정하여, 컨트롤 포인트 기반의 어파인 머지 후보를 어파인 머지 후보 리스트에 추가할 수 있다. 소정 개수는 어파인 머지 후보 리스트에 포함되도록 허용되는 어파인 머지 후보의 최대 개수이며, 예를 들어 5개로 설정될 수 있다.
일 실시예에 따른 움직임 예측부(1910)는, 어파인 머지 후보 리스트에 포함된 머지 후보들 중에서 현재 블록의 어파인 움직임 벡터를 표현하기에 가장 에러가 작은 머지 후보를 선택할 수 있다. 움직임 예측부(1910)는, 어파인 머지 후보 리스트 중에서 선택된 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터를 결정할 수 있다. 움직임 예측부(1910)는, 컨트롤 포인트 움직임 벡터를 이용하여 현재 블록의 어파인 모션 모델 파라미터를 결정하고, 현재 블록의 어파인 모션 모델 파라미터를 이용하여 현재 블록의 어파인 움직임 벡터를 결정할 수 있다. 현재 블록의 어파인 움직임 벡터가 가리키는 참조 샘플을 이용하여, 현재 블록의 예측 샘플들이 결정될 수 있다.
어파인 머지 후보 리스트 중에서 모델 기반의 어파인 머지 후보가 선택될 때, 모델 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 하나의 이웃 블록의 어파인 모델을 이용하여 결정될 수 있다. 모델 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 표현될 수 있다.
어파인 머지 후보 리스트 중에서 컨트롤 포인트 기반의 어파인 머지 후보가 선택될 때, 컨트롤 포인트 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터는 대응되는 블록 그룹에 포함된 이웃 블록들을 현재 블록의 컨트롤 포인트들을 이용하여 결정될 수 있다. 컨트롤 포인트 기반의 어파인 머지 후보에 대응하는 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 표현될 수 있다. 구체적으로, 어파인 머지 후보 리스트 중에서 모델 기반의 어파인 머지 후보가 선택되는 경우에, 모델 기반의 어파인 머지 후보에 대응하는 하나의 이웃 블록의 수직 변화량, 수평 변화량 및 움직임 벡터를 이용하여 현재 블록의 컨트롤 포인트들에 대응하는 컨트롤 포인트 움직임 벡터들이 결정될 수 있다. 더 구체적으로, 이웃 블록의 참조 인덱스, 예측 방향 및 움직임 벡터를 이용하여, 모델 기반의 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들이 각각 결정될 수 있다. 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 참조 인덱스, 예측 방향 및 어파인 움직임 벡터가 각각 결정될 수 있다.
구체적으로, 어파인 머지 후보 리스트 중에서 컨트롤 포인트 기반의 어파인 머지 후보가 선택되는 경우에, 현재 블록의 컨트롤 포인트들에 인접하는 이웃 블록들의 움직임 벡터들이 컨트롤 포인트 움직임 벡터들로 결정되고, 현재 블록의 어파인 모델에 따라 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 어파인 움직임 벡터가 결정될 수 있다. 더 구체적으로, 블록 그룹에 속한 대표 이웃 블록 들의 참조 인덱스, 예측 방향 및 움직임 벡터를 이용하여, 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들이 각각 결정될 수 있다. 어파인 머지 후보에 대응하는 참조 인덱스, 예측 방향 및 컨트롤 포인트 움직임 벡터들을 이용하여 현재 블록의 참조 인덱스, 예측 방향 및 어파인 움직임 벡터가 각각 결정될 수 있다.
일 실시예에 따른 비디오 부호화 장치(1900)는 SUCO 방식에 따라 좌우로 인접하는 부호화 단위 간에 부호화 순서를 변경할 수 있다. 부호화부(1920)는 하위 부호화 순서의 방향을 나타내는 부호화 순서 플래그를 부호화할 수 있다. 현재 부호화 단위가 분할되어 생성된 좌우로 인접하는 하위 부호화 단위들 중에서 좌측 하위 부호화 단위가 먼저 부호화되고 우측 하위 부호화 단위가 나중에 부호화된 경우에, 좌우(left to right) 방향을 나타내도록 부호화 순서 플래그가 부호화될 수 있다. 우측 하위 부호화 단위가 먼저 부호화되고 좌측 하위 부호화 단위가 나중에 부호화된 경우에, 우좌(right to left) 방향을 나타내도록 부호화 순서 플래그가 부호화될 수 있다.
구체적인 예로, 현재 블록의 우측 블록이 먼저 부호화되어 이용 가능한 경우에, 현재 블록의 우하측 코너에 인접하는 대표 이웃 블록은, 현재 블록의 우하측 코너 및 현재 블록의 우측 외곽선에 인접하는 이웃 블록 및 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 이웃 블록 중 이용 가능한 움직임 정보가 획득되는 블록일 수 있다. 이웃 블록 C1, 이웃 블록 C0의 순서로 이용 가능한 움직임 정보가 획득되는지가 확인되고, 먼저 이용 가능한 움직임 정보가 획득되는 블록이 BR 대표 이웃 블록으로 결정될 수 있다. 다만, 현재 블록의 우측 블록이 이용 가능하지 않은 경우에, 현재 블록의 우하측 코너에 인접하는 대표 이웃 블록은, 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 지점에 위치하는 콜로케이티드 블록일 수 있다. 콜로케이티드 블록은 콜로케이티드 픽쳐에 포함된 블록으로서, 시간적 머지 후보로서 어파인 머지 후보 리스트에 포함될 수 있다.
다른 예로, 현재 블록의 우측 블록이 먼저 복호화되어 이용 가능한 경우에, 현재 블록의 우하측 코너에 인접하는 BR 대표 이웃 블록은, 현재 블록의 우하측 코너 및 현재 블록의 우측 외곽선에 인접하는 이웃 블록 C1, 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 이웃 블록 C0, 및 현재 블록의 우하측 코너에 대각선 방향으로 인접하는 지점에 위치하는 콜로케이티드 블록 Col 중 이용 가능한 움직임 정보가 획득되는 블록일 수 있다. 이웃 블록 C1, 이웃 블록 C0, 콜로케이티드 블록 Col의 순서로 이용 가능한 움직임 정보가 획득되는지가 확인되고, 먼저 이용 가능한 움직임 정보가 획득되는 블록이 BR 대표 이웃 블록으로 결정될 수 있다.
콜로케이티드 블록은 콜로케이티드 픽쳐에 포함된 블록으로서, 시간적 머지 후보로서 어파인 머지 후보 리스트에 포함될 수 있다. 현재 블록의 우하측 코너에 인접하는 콜로케이티드 블록은, 콜로케이티드 픽쳐 내에서 현재 블록의 우하측 코너에 대응하는 좌표에 위치 블록일 수 있다.
일 실시예에 따른 비디오 부호화 장치(1900)는 어파인 머지 후보 리스트에 유효한 머지 후보를 포함시키기 위해 이웃 블록의 움직임 정보의 이용 가능성을 확인할 필요가 있다. 이미 움직임 예측이 수행되어 이용 가능한 움직임 정보가 획득되는 이웃 블록으로부터 유효한 머지 후보가 결정될 수 있기 때문이다. 일반적으로 현재 블록보다 먼저 움직임 예측이 수행된 이웃 블록은 현재 블록의 예측을 위해 이용 가능한 상태이다. 구체적으로 현재 블록의 좌측 이웃 블록에 대해 현재 블록보다 먼저 움직임 예측이 수행된 경우에, 좌측 이웃 블록의 움직임 정보는 이용 가능한 상태이다. 현재 블록의 우측 이웃 블록에 대해 현재 블록보다 먼저 움직임 예측이 수행된 경우에, 우측 이웃 블록의 움직임 정보는 이용 가능한 상태이다. 반대로, 현재 블록의 좌측 이웃 블록에 대해 움직임 예측이 수행되지 않은 경우에, 좌측 이웃 블록의 움직임 정보가 이용 가능하지 않은 상태이다. 현재 블록의 우측 이웃 블록에 대해 움직임 예측이 수행되지 않은 경우에, 우측 이웃 블록의 움직임 정보는 이용 가능하지 않은 상태이다.
앞서 전술한 부호화 순서에 따라 이웃 블록의 좌측 이웃 블록들뿐만 아니라 우측 이웃 블록들이 먼저 부호화되어 있을 수 있으므로, 일 실시예에 따른 비디오 부호화 장치(1900)는 부호화 순서를 고려하여 어파인 머지 후보 리스트를 결정할 필요가 있다.
일 실시예에 따른 움직임 정보 부호화부(1920)는 현재 블록의 인터 예측 모드가 머지 모드인지 나타내는 머지 모드 플래그를 부호화하고, 머지 모드인 경우에 현재 블록의 예측 샘플을 생성하기 위해 어파인 모델에 기초한 움직임 보상이 수행되는지 나타내는 어파인 플래그를 부호화할 수 있다. 일 실시예에 따른 움직임 정보 부호화부(1920)는 어파인 머지 후보 리스트 중에 하나를 가리키는 어파인 머지 인덱스를 부호화할 수 있다.
일 실시예에 따른 비디오 부호화 장치(1900)는 상기 언급된 다양한 인터 예측 방식에 따라 인터 예측을 수행할 때, 현재 블록의 머지 후보 또는 MVP 후보가 될 수 있는 콜로케이티드 블록의 위치를 결정하는 방법을 제안한다. 머지 후보는 현재 블록의 인터 예측 방식이 일반 머지 모드, 스킵 모드, 머지 MMVD 모드 또는 스킵 MMVD 모드일 때 결정되는 머지 후보 리스트에 포함되거나, 현재 블록의 인터 예측 방식이 어파인 머지 모드 또는 sbTMVP 모드인 경우에 생성될 수 있는 어파인 머지 후보 리스트에 포함될 수 있다. MVP 후보는 현재 블록의 인터 예측 방식이 AMVP 모드 또는 어파인 AMVP 모드일 때 결정되는 MVP 후보 리스트에 포함될 수 있다.
일 실시예에 따른 비디오 부호화 장치(1900)는 현재 블록의 좌상측 지점을 이용하여 결정되는 콜로케이티드 블록의 좌상측 지점이 콜로케이티드 픽쳐 내의 블록 안에 내의 임의의 점인 경우에, 콜로케이티드 블록의 최종 위치를 콜로케이티드 픽쳐 내의 블록 중 어느 위치로 결정할 것인지에 대한 방안을 제공한다.
일 실시예에 따른 비디오 부호화 장치(1900)는 움직임 예측부(1910) 및 움직임 정보 부호화부(1920)를 포함한다.
일 실시예에 따른 움직임 예측부(1910)는 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하고, 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다.
콜로케이티드 픽쳐 내에서 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 움직임 예측부(1910)는 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득할 수 있다.
움직임 예측부(1910)는 콜로케이티드 블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 현재 블록의 후보 리스트를 생성할 수 있다.
일 실시예에 따른 움직임 정보 부호화부(1920)는, 후보 리스트를 이용하여 현재 블록의 움직임 벡터를 부호화할 수 있다.
이하 도 20을 참조하여 일 실시예에 따른 비디오 부호화 장치(1900)의 동작을 상술한다.
도 20은 일 실시예에 따른 비디오 부호화 방법의 흐름도를 도시한다.
단계 2010에서, 움직임 예측부(1910)는 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득할 수 있다.
콜로케이티드 블록은 콜로케이티드 픽쳐 내의 블록이다. 콜로케이티드 픽쳐는 현재 블록의 TMVP을 위해 사용되는 참조 픽쳐로, 픽쳐 단위의 콜로케이티드 픽쳐 또는 슬라이스 단위 단위의 콜로케이티드 픽쳐가 결정될 수 있다.
일 실시예에 따르면, 움직임 예측부(1910)는 콜로케이티드 픽쳐를, 현재 블록을 포함하는 현재 슬라이스의 L0 참조 픽쳐 리스트 또는 L1 참조 픽쳐 리스트에 포함된 픽쳐들 중에서 결정할 수 있다. 따라서 움직임 정보 부호화부(1920)는 콜로케이티드 픽쳐를, 현재 블록을 포함하는 현재 슬라이스의 L0 참조 픽쳐 리스트 또는 L1 참조 픽쳐 리스트 중에서 어느 리스트로부터 결정될지를 나타내는 정보, 및 선택된 참조 리스트에서 콜로케이티드 픽쳐를 가라키는 콜로케이티드 참조 픽쳐 인덱스를 부호화하여, 픽쳐 헤더 또는 슬라이스 헤더를 통해 시스널링할 수 있다.
다른 실시예에 따르면, 현재 블록을 포함하는 픽쳐가 양방향 예측이 수행되는 B 슬라이스 타입의 픽쳐인 경우에는 L1 참조 픽쳐 리스트 중에서 첫번째 참조 픽쳐 인덱스가 가리키는 픽쳐가 콜로케이티드 픽쳐로서 사용될 수 있다. 현재 블록을 포함하는 픽쳐가 단방향 예측이 수행되는 P 슬라이스 타입의 픽쳐인 경우에는 L0 참조 픽쳐 리스트 중에서 첫번째 참조 픽쳐 인덱스가 가리키는 픽쳐가 콜로케이티드 픽쳐로서 사용될 수 있다. 이 경우 별도의 정보가 부호화되지 않을 수 있다.
일 실시예에 따른 움직임 예측부(1910)는 현재 블록의 소정 위치를 가리키는 좌표를 기준으로, 콜로케이티드 픽쳐 내에 존재하는 콜로케이티드 블록의 위치를 결정할 수 있다. 다만, 예측 모드 등의 정보를 획득하기 위한 콜로케이티드 블록의 위치는 콜로케이티드 블록에 대응하는 콜로케이티드 부호화 단위의 위치를 이용하여 결정될 수 있다. 움직임 벡터 등의 정보를 획득하기 위한 콜로케이티드 블록의 위치는 콜로케이티드 블록의 소정 샘플의 위치를 이용하여 결정할 수 있다.
일 실시예에 따르면, 콜로케이티드 블록의 제1 좌표는 현재 블록의 우하측 지점의 좌표와 동일하게 결정될 수 있다. 콜로케이티드 블록이 우하측 콜로케이티드 블록(bottom-right collocated block)인 경우, 제1 좌표는 현재 블록의 우하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다. 현재 블록의 우하측 지점은 현재 블록의 좌상측 지점으로부터 x축 방향으로 블록 너비만큼 떨어지고, y축 방향으로 블록 높이만큼 떨어진 지점이다. 따라서, 현재 블록의 좌상측 지점의 (x, y) 좌표와 현재 블록의 너비 및 높이를 기초로 현재 블록의 우하측 지점의 좌표가 획득될 수 있다.
구체적으로, 현재 블록의 좌상측 지점의 (x, y) 좌표가 (xCb, xCb)일 때, 콜로케이티드 블록의 제1 좌표 (xColBr, yColBr)는 현재 블록의 우하측 지점의 좌표 와 동일하게 결정될 수 있다. 현재 블록의 우하측 지점의 x 좌표는 xCb와 현재 블록의 블록 너비 cbWidth 를 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 x 좌표 xColBr는 xCb와 현재 블록의 블록 너비 cbWidth 를 합함으로써 획득된 값과 동일하게 결정될 수 있다. 마찬가지로, 현재 블록의 우하측 지점의 y 좌표는 yCb와 현재 블록의 블록 너비 cbHeight 를 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 y 좌표 yColBr는 yCb와 현재 블록의 블록 높이 cbHeigt 를 합함으로써 획득된 값과 동일하게 결정될 수 있다.
다른 예로, 콜로케이티드 블록의 제1 좌표는 현재 블록의 중앙 지점의 좌표와 동일하게 결정될 수 있다. 콜로케이티드 블록이 중앙 콜로케이티드 블록(central collocated block)인 경우, 제1 좌표는 현재 블록의 중앙 지점의 좌표와 동일할 수 있다. 현재 블록의 중앙 지점은 현재 블록의 좌상측 지점으로부터 x축 방향으로 블록 너비의 절반만큼 떨어지고, y축 방향으로 블록 높이의 절반만큼 떨어진 지점이다. 따라서, 현재 블록의 좌상측 지점의 (x, y) 좌표와 현재 블록의 너비 및 높이를 기초로 현재 블록의 중앙 지점의 좌표가 획득될 수 있다.
구체적으로, 콜로케이티드 블록의 제1 좌표 (xColCtr, yColCtr)는 현재 블록의 중앙 지점의 좌표와 동일하게 결정될 수 있다. 현재 블록의 중앙 지점의 x 좌표는 xCb와 현재 블록의 블록 너비 cbWidth 의 절반을 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 x 좌표 xColCtr는 xCb와 현재 블록의 블록 너비 cbWidth 의 절반 (cbWidth << 2)를 합함으로써 획득된 값과 동일하게 결정될 수 있다. 마찬가지로, 현재 블록의 중앙 지점의 y 좌표는 yCb와 현재 블록의 블록 너비 cbHeight 의 절반을 합함으로써 획득된 값일 수 있다. 따라서, 콜로케이티드 블록의 제1 좌표의 y 좌표 yColCtr는 yCb와 현재 블록의 블록 높이 cbHeigt의 절반(cbHeight << 2) 를 합함으로써 획득된 값과 동일하게 결정될 수 있다.
다른 예로, 콜로케이티드 블록이 하측 콜로케이티드 블록(bottom collocated block)인 경우, 제1 좌표는 현재 블록의 좌하측 지점 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
다른 예로, 콜로케이티드 블록이 사이드 콜로케이티드 블록(side collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 x축 방향으로 인접하는 외부 샘플 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
다른 예로, 콜로케이티드 블록이 좌하측 콜로케이티드 블록(bottom-left collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일할 수 있다.
단계 2020에서, 움직임 예측부(1910)는 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다.
구체적으로, 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 좌표를 획득할 수 있다.
일 실시예에 따르면, 콜로케이티드 픽쳐 내에서 MxN 크기의 블록(MxN 그리드)를 단위로 저장된 움직임 벡터 관련 정보만이, 현재 블록의 인터 예측을 위해 획득될 수 있다. 일 실시예에 따르면, 현재 블록의 콜로케이티드 블록의 위치에 대응하여, 콜로케이티드 픽쳐 내에 존재하는 위치가 제1 좌표라 지칭된다. 다만 콜로케이티드 블록 내에서 제1 좌표에 대해 저장된 움직임 벡터 관련 정보가 획득되지 않을 수 있으므로, 제1 좌표를 MxN 그리드 단위로 변경하는 과정이 상기 제1 좌표의 x좌표를 m만큼, y좌표를 n만큼 우측 비트쉬프트한 후 다시 좌측 비트쉬프트하는 과정이다. 따라서, 제1 좌표를 MxN 그리드 단위로 변경함으로써, 제2 좌표가 획득될 수 있다.
단계 2030에서, 움직임 예측부(1910)는 콜로케이티드 픽쳐 내에서 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 콜로케이티드 샘플의 좌표에 대응하는 블록의 콜로케이티드 움직임 벡터를 획득할 수 있다.
움직임 예측부(1910)는 콜로케이티드 움직임 벡터에 기초하여 현재 블록의 후보 리스트를 생성할 수 있다.
단계 2040에서, 움직임 정보 부호화부(1920)는 후보 리스트를 이용하여 현재 블록의 움직임 벡터를 부호화할 수 있다.
MxN 크기의 블록은 부호화 단위, 예측 블록 또는 서브블록와는 별개로 설정된 블록일 수 있다. 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 일 실시예에 따른 움직임 예측부(1910)는, 콜로케이티드 부호화 단위의 서브블록들 중에서, 제2 좌표를 포함하는 서브블록의 좌표를 콜로케이티드 샘플의 좌표가 되도록 결정할 수 있다. 이 경우 움직임 예측부(1910)는, 제2 좌표를 포함하는 서브블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 현재 블록의 시간적 예측 움직임 벡터를 획득할 수 있다.
일 실시예에 따라, MxN 크기의 블록이 서브블록인 경우에 MxN은 8x8일 수 있다.
일 실시예에 따라 콜로케이티드 부호화 단위가 인트라 예측 모드, IBC (intra block copy) 예측 모드 또는 팔레트 예측 모드로 복호화되지 않은 경우, 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 콜로케이티드 샘플의 좌표에 대응하는 블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스를 획득할 수 있다.
따라서, 콜로케이티드 샘플의 좌표에 대응하는 블록이 콜로케이티드 부호화 단위의 서브블록들 중 하나의 서브블록인 경우에, 콜로케이티드 부호화 단위의 예측 모드가 인트라 예측 모드, IBC 예측 모드 또는 팔레트 예측 모드가 아니라면, 콜로케이티드 샘플의 좌표에 대응하는 서브블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터가 획득되고, 콜로케이티드 샘플의 좌표에 대응하는 서브블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스가 획득될 수 있다. 따라서, 예측 모드는 콜로케이티드 부호화 단위를 통해 판단되는 반면에, 움직임 벡터 및 참조 픽쳐 인덱스는 콜로케이티드 부호화 단위 내부의 서브블록을 통해 획득될 수 있다.
또한, 콜로케이티드 부호화 단위의 참조 픽쳐와 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐이거나, 콜로케이티드 부호화 단위의 참조 픽쳐와 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐가 아닌 경우에, 움직임 예측부(1910)는 콜로케이티드 부호화 단위를 포함하는 슬라이스의 참조 픽쳐 리스트 세트를 이용하여, 콜로케이티드 움직임 벡터를 스케일링할 수 있다. 따라서 콜로케이티드 블록의 픽쳐가 롱텀 참조 픽쳐인지 여부를 판단하는데 있어서 콜로케이티드 부호화 단위가 이용되고 콜로케이티드 부호화 단위의 참조 픽쳐 리스트 세트가 이용되는 반면에, 그로 인해 스케일링되는 움직임 벡터는 콜로케이티드 부호화 단위 내부의 서브블록의 움직임 벡터를 이용하여 획득될 수 있다.
일 실시예에 따라 현재 블록이 머지 모드 또는 어파인 머지 모드로 인터 예측될 때, 움직임 예측부(1910)는 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성을 각각 획득할 수 있다. 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 움직임 예측부(1910)는 콜로케이티드 움직임 벡터를 가지는 블록에 대응하는 시간적 머지 후보를 포함하는 현재 블록의 머지 후보 리스트를 생성할 수 있다. 움직임 정보 부호화부(1920)는 머지 후보 리스트 중에서 현재 블록의 움직임 정보와 가장 유사한 움직임 정보를 가지는 후보 블록을 가리키는 머지 인덱스를 부호화할 수 있다. 움직임 정보는, 참조 리스트, 참조 인덱스 및 움직임 벡터 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 콜로케이티드 샘플의 좌표에 해당하는 서브블록의 움직임 벡터가 콜로케이티드 움직임 벡터로 결정되고, 콜로케이티드 부호화 단위의 서브블록이 시간적 머지 후보로 이용될 수 있다.
일 실시예에 따라 현재 블록의 MVP 모드로 인터 예측될 때, 일 실시예에 따라 움직임 예측부(1910)는 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 각각 획득할 수 있다. 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 움직임 예측부(1910)는 콜로케이티드 움직임 벡터를 가지는 블록에 대응하는 시간적 움직임 벡터 예측 후보를 포함하는 현재 블록의 MVP 후보 리스트를 생성할 수 있다. 움직임 정보 부호화부(1920)는 MVP 후보 리스트 중에서, 현재 블록의 움직임 벡터와 가장 유사한 움직임 벡터를 가지는 후보 블록을 가리키는 MVP 인덱스를 부호화하고, 현재 블록의 참조 인덱스 및 참조 리스트 정보를 부호화할 수 있다.
일 실시예에 따르 콜로케이티드 부호화 단위가 하나 이상의 서브블록들을 포함하는 경우에, 콜로케이티드 샘플의 좌표에 해당하는 서브블록의 움직임 벡터가 콜로케이티드 움직임 벡터로 결정되고, 콜로케이티드 부호화 단위의 서브블록이 시간적 움직임 벡터 예측 후보로 이용될 수 있다.
구체적으로 콜로케이티드 픽쳐 중 콜로케이티드 블록에 대해 서브블록 기반의 인터 예측이 수행되어, 서브블록들에 대해 각각 움직임 벡터 관련 정보가 결정되어 있을 수 있다. 일 실시예에 따른 비디오 부호화 장치(1900)는, 현재 블록에 대해 서브블록 기반의 인터 예측 모드가 아닌 모드에 따라 인터 예측을 수행하더라도, 현재 블록의 콜로케이티드 블록의 위치가 콜로케이티드 블록의 서브블록들 중 MxN 그리드의 좌상측 지점을 포함하는 서브블록이 존재한다면, MxN 그리드의 좌상측 지점을 포함하는 서브블록의 움직임 벡터 또는 움직임 벡터 관련 정보를 이용하여 현재 블록에 대해 인터 예측이 수행될 수 있다. 따라서, 콜로케이티드 블록의 위치에 가장 가까운 서브블록의 움직임 벡터가 획득될 수 있으므로, 현재 블록에 대한 인터 예측 결과의 정확성이 높아질 수 있다.
또한, 콜로케이티드 부호화 단위의 예측 모드(인트라 또는 IBC 또는 팔레트 예측 모드로 부호화되었는지 여부) 및 콜로케이티드 블록의 참조 픽쳐가 롱텀 참조 픽쳐인지 여부는 콜로케이티드 샘플을 포함하는 콜로케이티드 부호화 단위를 기준으로 판단하되, 움직임 벡터는 콜로케이티드 부호화 단위를 구성하는 서브블록들 중 하나의 서브블록 단위로 결정될 수 있다.
서브블록 기반의 인터 예측이 수행된 경우에 서브블록별로 개별적인 움직임 벡터가 결정될 수 있다. 따라서, 인터 예측을 수행하는데 있어서, 콜로케이티드 부호화 단위가아닌 서브블록으로부터 움직임 벡터를 획득함으로써, 보다 정밀한 움직임 정보의 획득이 가능하다. 이와 반면에 서브블록보다 큰 데이터 단위로 판단 가능한 예측 모드 및 롱텀 참조 픽쳐인지 여부는, 서브블록이 아닌 콜로케이티드 부호화 단위 기준으로 판단되므로, 현재 블록의 인터 예측시 접근해야 할 콜로케이티드 블록의 데이터량이 효율적으로 운용될 수 있다. 이하, 도 21 및 22를 참조하여, 현재 블록의 시간적 움직임 벡터 또는 시간적 머지 후보를 결정하기 위한 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하기 위한 콜로케이티드 블록의 위치를, 서브블록이 아닌 부호화 단위의 좌상측 지점으로 결정하는 경우를 설명한다.
도 21은 현재 블록의 우하측 위치에 대응하는 콜로케이티드 블록의 움직임 벡터 정보를 획득할 수 있는 부호화 단위의 위치를 표시한다.
일 실시예에 따른 현재 픽쳐(2100)에 포함된 현재 블록(2110)에 대해 인터 예측을 수행할 때, 시간적 머지 후보 또는 시간적 움직임 벡터를 획득하기 위해 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득될 수 있다. 머지 모드 또는 스킵 모드인 경우에는 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, AMVP 모드인 경우에는 콜로케이티드 블록의 움직임 벡터만이 획득될 수 있다. 이를 위해 콜로케이티드 블록의 움직임 벡터 관련 정보가 저장되어 있는 콜로케이티드 블록의 위치가 결정된다.
콜로케이티드 픽쳐 내의 블록들의 움직임 벡터 관련 정보는 인터 블록마다 결정될 수 있지만, 인터 예측 과정에서 8x8 그리드에 대응하는 움직임 벡터 관련 정보만이 획득될 수 있다. 따라서, 8x8 그리드의 좌상측 샘플을 포함하는 블록의 움직임 벡터 관련 정보만이 현재 블록의 인터 예측을 위해 획득될 수 있다.
우하측 콜로케이티드 블록의 위치(2140)는 현재 블록(2110)의 우하측 지점(2130)의 좌표 (xColBr, yColBr)를 이용하여 결정될 수 있다. (xColBr, yColBr)는 현재 블록(2110)의 좌상측 지점(2120)의 (xCb, yCb)으로부터 x축 방향으로 현재 블록(2110)의 너비만큼, y 축 방향으로 현재 블록(2110)의 높이만큼 떨어진 지점이다.
다만, 움직임 벡터 관련 정보를 획득할 수 있는 블록이 8x8 그리드 단위로 검색 가능하므로, (xColBr, yColBr)를 8x8 그리드의 좌상측 지점에 일치시키도록 하는 작업이 필요하다. (xColBr, yColBr)의 x, y 성분별로 3만큼 우측으로 비트시프트한 후 다시 3만큼 좌측으로 비트시프트한 값 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )이 우하측 콜로케이티드 블록의 위치(2140)로 결정될 수 있다.
다만, 종래 비디오 코덱에서는, 콜로케이티드 픽쳐(2150)에서, 현재 픽쳐(2100)의 우하측 콜로케이티드 블록의 위치(2140)의 좌표와 동일한 좌표를 갖는 지점(2170)를 포함하는 블록을 콜로케이티드 블록(2160)로 결정한다 따라서, 콜로케이티드 블록(2160)의 움직임 벡터 관련 정보가 우하측 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. 이에 따라, 콜로케이티드 블록(2160)의 좌상측 지점(2180)에 대응하여 저장된 움직임 벡터 관련 정보가 호출될 수 있다.
도 22은 도 21의 동작을 수행하기 위한 좌표 설정 방법이 기술된 표준 문서의 초안을 도시한다.
단락 2210에 따르면, 콜로케이티드 픽쳐(2150) 내의 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 지점(2170)을 포함하는 부호화 단위(2160)가 콜로케이티드 블록 colCb로 결정된다.
단락 2220에 따르면, 콜로케이티드 블록 colCb 의 위치를 나타내는 좌표 (xColCb, yColCb)가, 콜로케이티드 픽쳐(2150)의 좌상측 루마 샘플의 좌표에 대비한, 콜로케이티드 블록 colCb의 좌상측 샘플, 즉 지점(2180)의 상대적인 좌표로 설정된다.
단락 2230에 따르면, 현재 블록(2110)의 콜로케이티드 움직임 벡터는, 좌표 (xColCb, yColCb), 지점(2180)의 상대적인 좌표에 기초하여 결정된다. 따라서, 콜로케이티드 블록 colCb의 좌상측 지점(2180)에 대응하는 8x8 그리드를 포함하는 부호화 단위에 대한 움직임 벡터가 현재 블록(2110)의 콜로케이티드 움직임 벡터로서 획득될 수 있다.
하지만, 움직임 벡터 관련 정보는 8x8 그리드 단위로 획득 가능하므로, 콜로케이티드 픽쳐(2150)에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 지점(2170)에 대응하는 8x8 그리드(블록)에 대한 움직임 벡터 관련 정보와, 콜로케이티드 블록(2160)의 좌상측 지점(2180)에서의 움직임 벡터 관련 정보는 상이할 수 있다. 따라서, 현재 블록(2110)의 우하측 콜로케이티드 블록의 위치(2140)에 정확히 대응하는 지점(2170)에 대한 움직임 벡터 관련 정보가 아닌, 콜로케이티드 블록(2160)의 좌상측 지점(2180)에 대한 움직임 벡터 관련 정보를 이용하여 현재 블록(2110)에 대한 인터 예측이 수행된다면, 예측 샘플의 정확도가 떨어질 수 있다.
이하 도 23을 참조하여 일 실시예에 따른 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)가 보다 정확한 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하기 위한 방법을 상술한다.
도 23은 콜로케이티드 블록이 서브블록 단위로 결정되는 경우에, 콜로케이티드 블록의 위치를 결정하는 방법을 도시한다.
도 23에 따르면, 일 실시예에 따른 비디오 복호화 장치(1700) 또는 비디오 부호화 장치(1900)가 콜로케이티드 블록의 움직임 벡터, 즉 콜로케이티드 움직임 벡터를 결정하기 위해 콜로케이티드 부호화 단위 뿐만 아니라 콜로케이티드 샘플의 좌표를 이용할 수 있다.
머지 모드 또는 스킵 모드인 경우에는 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, AMVP 모드인 경우에는 콜로케이티드 블록의 움직임 벡터만이 획득될 수 있다.
도 23에서도, 현재 블록(2310)의 인터 예측을 위해, 콜로케이티드 픽쳐(2350) 내의 블록들의 움직임 벡터 관련 정보는 8x8 그리드 단위로 획득될 수 있다.
현재 블록(2310)의 우하측 콜로케이티드 블록의 위치(2340)는, 현재 픽쳐(2300) 중 현재 블록(2310)의 우하측 지점(2330)의 좌표 (xColBr, yColBr)를 기초하여 결정될 수 있다. (xColBr, yColBr)는 현재 블록(2310)의 좌상측 지점(2320)의 (xCb, yCb)으로부터 x축 방향으로 현재 블록(2310)의 너비만큼, y 축 방향으로 현재 블록(2310)의 높이만큼 떨어진 지점이다.
(xColBr, yColBr)의 x, y 성분별로 3만큼 우측으로 비트시프트한 후 다시 3만큼 좌측으로 비트시프트한 값 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )이 우하측 콜로케이티드 블록의 위치(2340)로 결정될 수 있다.
일 실시예에 따른 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)는 서브블록 단위로 콜로케이티드 샘플의 위치를 결정할 수 있다. 즉, 콜로케이티드 픽쳐(2350)에서, 현재 픽쳐(2300)의 우하측 콜로케이티드 블록의 위치(2340)의 좌표와 동일한 좌표를 갖는 샘플(2370)를 포함하는 서브 블록(2375)의 위치를 이용하여 현재 픽쳐(2300)의 우하측 콜로케이티드 블록의 움직임 벡터를 획득할 수 있다. 따라서, 콜로케이티드 블록(2360)의 서브 블록(2375)의 움직임 벡터 관련 정보가 우하측 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. 이에 따라, 콜로케이티드 블록(2360)의 좌상측 지점(2380)가 아닌, 콜로케이티드 블록(2360)의 서브 블록(2375)에 대응하여 저장된 움직임 벡터 관련 정보가 호출되고, 그 중 서브 블록(2375)의 움직임 벡터가 콜로케이티드 움직임 벡터로서 이용될 수 있다.
도 23에 따르면, 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)는 현재 블록(2110)에 대한 인터 예측을 수행하기 위해, 콜로케이티드 픽쳐(2350)에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 샘플(2370) 을 포함하는 서브블록(2375)의 움직임 벡터 관련 정보를 이용하므로, 도 21의 따른 예측 샘플에 비해 도 23에 따른 예측 샘플의 정확도가 향상될 수 있다.
도 24 내지 26은 콜로케이티드 픽쳐 내에서, 블록들의 움직임 벡터 관련 정보를 버퍼에 저장하기 위해, 움직임 벡터 관련 정보가 저장되는 8x8 그리드와, 콜로케이티드 픽쳐 내 간에 포인터를 설정하는 다양한 방법을 도시한다.
도 24은 도 21의 동작에 따라 콜로케이티드 블록의 움직임 벡터 정보를 부호화 단위 단위로 획득하기 위한 버퍼 저장 방법을 도시한다.
버퍼(2450)는 각 MxN 그리드를 가리키는 포인터들을 저장하기 위한 포인터 어레이들로 구성되어 있다. 버퍼(2480)는 콜로케이티드 픽쳐 내의 부호화 단위들의 움직임 벡터 정보를 저장하기 위한 어레이들로 구성되어 있다.
부호화 단위 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에 대응될 수 있다.
일 실시예에 따르면, 버퍼(2450)에 MxN 그리드 A의 포인터(2452), MxN 그리드 B의 포인터(2454), MxN 그리드 C의 포인터(2456), MxN 그리드 D의 포인터(2458)가 설정될 수 있다. 버퍼(2480)는 부호화 단위 CU0(2410)의 움직임 벡터 관련 정보(2482) 및 부호화 단위 CU1(2420)의 움직임 벡터 관련 정보(2484)를 저장할 수 있다. 부호화 단위 CU2(2430)의 움직임 벡터 관련 정보는 MxN 그리드에 대응되지 않으므로 버퍼(2480)에 저장되지 않는다.
MxN 그리드 A의 포인터(2452) 및 MxN 그리드 C의 포인터(2456)가 부호화 단위 CU0(2410)의 움직임 벡터 관련 정보(2482)를 가리키도록 설정될 수 있다. MxN 그리드 B의 포인터(2454) 및 MxN 그리드 D의 포인터(2458)가 부호화 단위 CU1(2420)의 움직임 벡터 관련 정보(2484)를 가리키도록 설정될 수 있다.
따라서 도 24의 포인터 어레이에 따르면, 콜로케이티드 블록의 위치가 MxN 그리드 B 또는 D에 대응되는 경우에, 부호화 단위 CU1(2420)의 움직임 벡터 관련 정보(2484)가 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다.
도 25은, 도 23에 따라 콜로케이티드 블록의 움직임 벡터 관련 정보를 서브블록 단위로 획득하기 위한 버퍼 저장 방법의 일 실시예를 도시한다.
버퍼(2550)는 각 MxN 그리드를 가리키는 포인터들을 저장하기 위한 포인터 어레이들로 구성되고, 버퍼(2580)는 콜로케이티드 픽쳐 내의 부호화 단위 및 서브블록의 움직임 벡터 정보를 저장하기 위한 어레이들로 구성되어 있다.
부호화 단위 CU1(2520)는 서브블록들(2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528)을 포함하고, 서브블록들(2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528) 별로 인터 예측이 수행될 수 있다.
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)에 저장되지 않는다.
MxN 그리드 A의 포인터(2552) 및 MxN 그리드 C의 포인터(2556)가 부호화 단위 CU0(2510)의 움직임 벡터 관련 정보(2582)를 가리키도록 설정될 수 있다. MxN 그리드 B의 포인터(2554)는 서브블록(2522)의 움직임 벡터 관련 정보(2584)를 가리키도록 설정될 수 있다. MxN 그리드 D의 포인터(2558)가 서브블록(2526)의 움직임 벡터 관련 정보(2586)를 가리키도록 설정될 수 있다.
따라서, 도 25의 포인터 어레이에 따르면, 콜로케이티드 블록의 위치가 MxN 그리드 B 또는 D에 대응되는 경우에, 부호화 단위 CU1(2520)의 움직임 벡터 관련 정보가 아니라, 서브블록(2522 또는 2526)의 움직임 벡터 관련 정보가 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. 따라서, 도 23를 참고하여 전술한 바와 같이, 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)가 현재 블록에 대한 인터 예측을 수행하기 위해, 콜로케이티드 픽쳐에서 우하측 콜로케이티드 블록, 중앙 콜로케이티드 블록 등의 위치를 포함하는 서브블록의 움직임 벡터 관련 정보를 이용할 수 있다.
도 26은 도 23에 따라 콜로케이티드 블록의 움직임 벡터 정보를 서브블록 단위로 저장하기 위한 버퍼 저장 방법의 다른 실시예를 도시한다.
버퍼(2650)는 각 MxN 그리드에 콜로케이티드 픽쳐 내의 부호화 단위 및 서브블록의 움직임 벡터 정보를 저장하기 위한 어레이들로 구성되어 있다.
일 실시예에 따르면, 버퍼(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)에 저장되지 않는다.
따라서, 도 26의 버퍼(2650)에 따르면, 콜로케이티드 블록의 위치가 MxN 그리드 B 또는 D에 대응되는 경우에, 부호화 단위 CU1(2620)의 움직임 벡터 관련 정보가 아니라, 서브블록(2622 또는 2626)의 움직임 벡터 관련 정보가 콜로케이티드 블록의 움직임 벡터 관련 정보로서 이용될 수 있다. 따라서, 도 23를 참고하여 전술한 바와 같이, 비디오 복호화 장치(1700) 및 비디오 부호화 장치(1900)가 현재 블록에 대한 인터 예측을 수행하기 위해, 콜로케이티드 픽쳐에서 우하측 콜로케이티드 블록, 중앙 콜로케이티드 블록 등의 위치를 포함하는 서브블록의 움직임 벡터 관련 정보를 이용할 수 있다.
도 27 및 28은 도 25의 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하는 인터 예측이 기술된 표준 문서 초안의 수정안을 도시한다.
도 27은 우하측 콜로케이티드 블록의 경우를 도시한다. 우하측 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColBr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 x축 방향으로 현재 블록의 너비만큼 떨어진 위치 xCb + cbWidth 이며, 우하측 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColBr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이만큼 떨어진 위치 yCb + cbHeight을 나타낸다.
단락 2710에 따르면, 콜로케이티드 픽쳐 내의 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 지점을 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다.
단락 2720에 따르면, 콜로케이티드 부호화 단위 colCb 의 위치를 나타내는 좌표 (xColCb, yColCb)가, 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 상대적인 좌표로 설정되지 않는다. 즉, 단락 2220에서와 같이 콜로케이티드 부호화 단위 colCb 의 위치를 나타내는 좌표 (xColCb, yColCb)를 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않는다.
단락 2730에 따르면, 현재 블록의 콜로케이티드 움직임 벡터는, 좌표 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )에 기초하여 결정된다. 따라서, 콜로케이티드 블록의 서브블록들 중에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 지점을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터가 현재 블록의 콜로케이티드 움직임 벡터로서 획득될 수 있다.
따라서, 현재 블록의 우하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
도 28은 우하측 콜로케이티드 블록이 아닌 중앙 콜로케이티드 블록의 경우를 도시한다. 중앙 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColCtr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 x축 방향으로 현재 블록의 너비의 반만큼 떨어진 위치 xCb + ( cbWidth >> 1 )이며, 중앙 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColCtr는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이의 반만큼 떨어진 위치 yColCtr = yCb + ( cbHeight >> 1 )을 나타낸다.
단락 2810에 따르면, 콜로케이티드 픽쳐 내의 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 지점을 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다.
단락 2820에 따르면, 단락 2220에서와 같이 콜로케이티드 부호화 단위 colCb 의 위치를 나타내는 좌표 (xColCb, yColCb)를 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않는다.
단락 2830에 따르면, 현재 블록의 콜로케이티드 움직임 벡터는, 좌표 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )에 기초하여 결정된다. 따라서, 콜로케이티드 블록의 서브블록들 중에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 지점을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터가 현재 블록의 콜로케이티드 움직임 벡터로서 획득될 수 있다.
따라서, 현재 블록의 중앙 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
이하 도 29 내지 34를 참조하여, 최근 비디오 코덱의 표준 문서에 기재된, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보 또는 움직임 벡터 관련 정보를 결정하기 위한 과정을 상술한다.
도 29은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 시간적 예측 움직임 벡터(temporal luma motion vector prediction)를 도출하도록 기술된 표준 문서를 도시한다.
"8.5.2.11 Derivation process for temporal luma motion vector prediction" 절은 AMVP 모드 또는 AMVP 어파인 모드로 현재 블록에 대해 인터 예측이 수행되는 경우에, 콜로케이티드 픽쳐에 위치하는 콜로케이티드 블록의 움직임 벡터를 획득하기 위한 과정을 기술하고 있다.
단락 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 )와 동일해지도록 결정된다.
단락 2910에 따르면, 콜로케이티드 픽쳐 내에서, 좌표 ( xColCb, yColCb )를 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다.
단락 2930에 따르면, 콜로케이티드 부호화 단위 colCb와 콜로케이티드 샘플의 좌표 (xColCb, yColCb)에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득될 수 있다. 즉, 단락 2220에서와 같이 콜로케이티드 샘플의 좌표 (xColCb, yColCb)가 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않고, ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록의 위치를 이용하여 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득될 수 있다.
즉, 콜로케이티드 부호화 단위 내에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터를 이용하여 현재 블록의 콜로케이티드 움직임 벡터로서 획득될 수 있다.
단락 2930에서, 콜로케이티드 부호화 단위 colCb의 예측 모드(인트라 또는 IBC 또는 팔레트 예측 모드로 부호화되었는지 여부) 및 콜로케이티드 블록의 참조 픽쳐가 롱텀 참조 픽쳐인지 여부는 콜로케이티드 부호화 단위 colCb를 기준으로 판단될 수 있다. 반면에, 콜로케이티드 부호화 단위 colCb 내에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터가 획득될 수 있다.
따라서, 현재 블록의 우하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
단락 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 )와 동일해지도록 결정된다.
단락 2960에 따르면, 콜로케이티드 픽쳐 내에서, 좌표 ( xColCb, yColCb )를 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다.
단락 2980에 따르면, 콜로케이티드 부호화 단위 colCb와 콜로케이티드 샘플의 좌표 (xColCb, yColCb) 에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득된다. 즉, 단락 2220에서와 같이 콜로케이티드 샘플의 좌표 (xColCb, yColCb)가 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않고, ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록의 위치를 이용하여 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득될 수 있다.
즉, 콜로케이티드 블록 내에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터를 이용하여 현재 블록의 콜로케이티드 움직임 벡터로서 획득될 수 있다.
단락 2980에서, 콜로케이티드 부호화 단위 colCb의 예측 모드(인트라 또는 IBC 또는 팔레트 예측 모드로 부호화되었는지 여부) 및 콜로케이티드 블록의 참조 픽쳐가 롱텀 참조 픽쳐인지 여부는 콜로케이티드 부호화 단위 colCb를 기준으로 판단될 수 있다. 반면에, 콜로케이티드 부호화 단위 colCb 내에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터가 획득될 수 있다.
따라서, 현재 블록의 중앙 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
도 30은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 서브블록 기반의 시간적 머지 베이스 움직임 데이터(subblock-based temporal merging base motion data)를 도출하도록 기술된 표준 문서을 도시한다.
"8.5.5.4 Derivation process for subblock-based temporal merging base motion data" 절은 서브블록 머지 모드가 활성화되고 sbtmvp 모드가 활성화되었을 때 현재 블록에 대해 인터 예측이 수행되는 경우에, 서브블록 기반의 시간적 머지 후보로서, 콜로케이티드 픽쳐에 위치하는 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하기 위한 과정을 기술하고 있다.
단락 3000에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColCb >> 3 ) << 3, ( yColCb >> 3 ) << 3 )와 동일해지도록 결정된다. 즉, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가, 콜로케이티드 블록 내에서 8x8 그리드에 매칭되는 지점으로 변경할 수 있다.
단락 3010에 따르면, 콜로케이티드 픽쳐 내에서, 좌표 ( xColCb, yColCb )를 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정된다.
따라서, 콜로케이티드 부호화 단위colCb 와 별개로, 좌표 (xColCb, yColCb)에 대응되는 서브블록의 움직임 벡터 정보가 획득될 수 있다. 콜로케이티드 블록이 다수의 서브블록들로 구성될 때, 콜로케이티드 블록 내에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 해당 서브블록의 움직임 벡터가 현재 블록의 콜로케이티드 움직임 벡터로서 획득되고, 서브 블록 기반의 시간적 머지 후보로 이용될 수 있다.
도 31은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 우하측 컨트롤 포인트 움직임 벡터 정보(bottom-right control point motion vector)를 획득하기 위해, 어파인 컨트롤 포인트 움직임 벡터 머지 후보(affine control point motion vector merging candidates)를 도출하도록 기술된 표준 문서을 도시한다.
"8.5.5.6 Derivation process for constructed affine control point motion vector merging candidates" 절은 어파인 머지 모드로 인터 예측이 수행되는 경우에, 현재 블록의 조합 어파인 CPMV 머지 후보를 결정하기 위해, 우하측 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하는 과정을 기술한다.
단락 3110에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )와 동일해지도록 결정된다.
단락 3120에 따르면, 콜로케이티드 픽쳐 내에서, 좌표 ( xColCb, yColCb )를 포함하는 부호화 단위가 콜로케이티드 부호화 단위 colCb로 결정될 수 있다.
단락 3130에 따르면, 콜로케이티드 부호화 단위 colCb와 콜로케이티드 샘플의 좌표 (xColCb, yColCb) 에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득될 수 있다. 즉, 단락 2220에서와 같이 콜로케이티드 샘플의 좌표 (xColCb, yColCb)가 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않고, ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )을 포함하는 서브블록의 위치로 유지될 수 있다. 따라서, 콜로케이티드 부호화 단위 내에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 ) 좌표의 콜로케이티드 샘플을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.
따라서, 현재 블록의 우하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
도 32 및 33은 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 시간적 머지 후보(temporal merge candidates)를 도출하도록 기술된 표준 문서를 도시한다.
"8.5.2.3.3 Derivation process for temporal merge candidates" 절은 머지 모드 또는 어파인 머지 모드로 인터 예측이 수행되는 경우에, 현재 블록의 시간적 머지 후보를 결정하기 위해, 중앙, 하측 또는 사이드 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하는 과정을 기술한다.
중앙 콜로케이티드 블록의 움직임 벡터 관련 정보가 이용가능하지 않다면, 하측 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, 하측 콜로케이티드 블록의 움직임 벡터 관련 정보가 이용 가능하지 않다면, 사이드 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득될 수 있다.
단락 3210 및 3230을 통해 중앙 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, 단락 3250 및 3270을 통해 하측 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득되고, 단락 3310 및 3330을 통해 사이드 콜로케이티드 블록의 움직임 벡터 관련 정보가 획득될 수 있다.
단락 3210에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )와 동일해지도록 결정된다. 현재 콜로케이티드 블록이 서브블록들을 포함하는 경우에, 서브블록들 중 8x8 그리드에 매칭되는 서브블록, 즉, 콜로케이티드 블록 내에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )을 포함하는 서브블록의 위치와 동일해지도록 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 변경될 수 있다.
단락 3230에 따르면, 콜로케이티드 샘플의 좌표 (xColCb, yColCb)를 포함하는 블록에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagCol)이 획득된다. 따라서, 콜로케이티드 블록 내에서 ( ( xColCtr >> 3 ) << 3, ( yColCtr >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.
따라서, 현재 블록의 중앙 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
하측 콜로케이티드 블록의 위치는 현재 블록의 부호화 순서 정보 availLR를 고려하여 결정될 수 있다.
availLR가 LR_01인 경우, 즉 현재 블록에 비해 우측 블록이 먼저 복호화된 경우에, 식 (489) 및 (490)에 따르면, 하측 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColBot는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb) 중 x좌표 xCb와 동일하고, 우하측 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColBot는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이 nCbH 만큼 떨어진 위치 yCb + 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)을 나타낸다.
단락 3250에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColBot >> 3 ) << 3, ( yColBot >> 3 ) << 3 )와 동일해지도록 결정된다. 현재 콜로케이티드 블록이 서브블록들을 포함하는 경우에, 서브블록들 중 8x8 그리드에 매칭되는 서브블록, 즉, 콜로케이티드 블록 내에서 ( ( xColBot >> 3 ) << 3, ( yColBot >> 3 ) << 3 )을 포함하는 서브블록의 위치와 동일해지도록 좌표 ( xColCb, yColCb )가 변경될 수 있다.
단락 3270에 따르면, 콜로케이티드 샘플의 좌표 (xColCb, yColCb)를 포함하는 블록에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagCol)이 획득된다. 따라서, 콜로케이티드 블록 내에서 ( ( xColBot >> 3 ) << 3, ( yColBot >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.
따라서, 현재 블록의 하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
사이드 콜로케이티드 블록의 위치는 현재 블록의 부호화 순서 정보 availLR를 고려하여 결정될 수 있다.
availLR가 LR_01인 경우, 즉 현재 블록에 비해 우측 블록이 먼저 복호화된 경우에, 식 (495) 및 (496)에 따르면, 사이드 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColSide는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb) 중 x좌표 xCb-1와 동일하고, 사이드 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColSide는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이 nCbH-1 만큼 떨어진 위치 (yColBot = yCb + 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)을 나타낸다.
단락 3310에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColSide >> 3 ) << 3, ( yColSide >> 3 ) << 3 )와 동일해지도록 결정된다. 현재 콜로케이티드 블록이 서브블록들을 포함하는 경우에, 서브블록들 중 8x8 그리드에 매칭되는 서브블록, 즉, 콜로케이티드 블록 내에서 ( ( xColSide >> 3 ) << 3, ( yColSide >> 3 ) << 3 )을 포함하는 서브블록의 위치와 동일해지도록 좌표 ( xColCb, yColCb )가 변경될 수 있다.
단락 3330에 따르면, 콜로케이티드 샘플의 좌표 (xColCb, yColCb)를 포함하는 블록에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagCol)이 획득된다. 따라서, 콜로케이티드 블록 내에서 ( ( xColSide >> 3 ) << 3, ( yColSide >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.
따라서, 현재 블록의 사이드 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
도 34는 일 실시예에 따라, 서브블록 단위로 획득된 콜로케이티드 블록의 움직임 벡터 정보를 이용하여 좌하측 컨트롤 포인트 움직임 벡터 정보(bottom-left control point motion vector)를 획득하기 위해, 어파인 컨트롤 포인트 움직임 벡터 머지 후보(affine control point motion vector merging candidates)를 도출하도록 기술된 표준 문서를 도시한다.
"8.5.3.4 Derivation process for constructed affine control point motion vector merging candidates" 절은 어파인 머지 모드로 인터 예측이 수행되는 경우에, 현재 블록의 조합 어파인 CPMV 머지 후보를 결정하기 위해, 좌하측 콜로케이티드 블록의 움직임 벡터 관련 정보를 획득하는 과정을 기술한다.
식 (776) 및 (777)에 따르면, 좌하측 콜로케이티드 블록의 위치를 나타내는 x 좌표 xColBl는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb) 중 x좌표 xCb-1와 동일하고, 좌하측 콜로케이티드 블록의 위치를 나타내는 y 좌표 yColBl는, 현재 블록의 좌상측 샘플의 좌표 (xCb, yCb)로부터 y축 방향으로 현재 블록의 높이 cbHeight 만큼 떨어진 위치 (yColBl = yCb + cbHeight )을 나타낸다.
단락 3410에 따르면, 콜로케이티드 샘플의 좌표 ( xColCb, yColCb )가 ( ( xColBl >> 3 ) << 3, ( yColBl >> 3 ) << 3 )와 동일해지도록 결정된다.
단락 3430에 따르면, 콜로케이티드 샘플의 좌표 (xColCb, yColCb)를 포함하는 블록에 기초하여, 콜로케이티드 움직임 벡터(mvLXCol) 및 콜로케이티드 움직임 벡터의 이용 가능성(availableFlagLXCol)이 획득된다. 즉, 단락 2220에서와 같이 콜로케이티드 샘플의 좌표 (xColCb, yColCb)가 콜로케이티드 부호화 단위 colCb의 좌상측 샘플의 좌표로 강제로 변경되지 않고, ( ( xColBl >> 3 ) << 3, ( yColBl >> 3 ) << 3 )을 포함하는 서브블록의 위치로 유지될 수 있다. 따라서, 콜로케이티드 블록 내에서 ( ( xColBl >> 3 ) << 3, ( yColBl >> 3 ) << 3 )을 포함하는 서브블록이 8x8 그리드에 대응된다면, 서브블록의 움직임 벡터 및 움직임 벡터의 이용 가능성을 이용하여 현재 블록의 콜로케이티드 움직임 벡터 및 콜로케이티드 움직임 벡터의 이용 가능성이 각각 획득될 수 있다.
따라서, 현재 블록의 좌하측 콜로케이티드 블록의 위치에 정확히 대응하는 콜로케이티드 블록의 서브블록의 움직임 벡터를 이용하여 현재 블록에 대한 인터 예측이 수행될 수 있다.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.
매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상, 본 개시의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 개시의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 개시의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.
Claims (15)
- 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하는 단계;상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계;콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계;상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌측상단 지점에 해당하는 제2 좌표가 상기 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계는, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 서브블록들 중에서, 상기 제2 좌표를 포함하는 서브블록의 좌표를 상기 콜로케이티드 블록의 좌표가 되도록 결정하는 단계를 포함하고,상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 제2 좌표를 포함하는 서브블록의 좌표에 대응하는 콜로케이티드 블록의 움직임 벡터를 이용하여 상기 현재 블록의 시간적 예측 움직임 벡터를 획득하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 제 1항에 있어, 상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는,상기 콜로케이티드 부호화 단위가 인트라 예측 모드, IBC (intra block copy) 예측 모드 또는 팔레트 예측 모드로 복호화되지 않은 경우, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 참조 픽쳐 인덱스를 이용하여 콜로케이티드 참조 픽쳐 인덱스를 획득하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 제 1항에 있어, 상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는,상기 콜로케이티드 부호화 단위의 참조 픽쳐와 상기 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐이거나 상기 콜로케이티드 부호화 단위의 참조 픽쳐와 상기 현재 블록의 참조 픽쳐가 둘다 롱텀 참조 픽쳐가 아닌 경우에, 상기 콜로케이티드 부호화 단위를 포함하는 슬라이스의 참조 픽쳐 리스트 세트를 이용하여, 상기 콜로케이티드 움직임 벡터를 스케일링하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌측상단 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계는,M이 2의 m승이고 N인 2의 n승인 경우에, 상기 제1 좌표의 x 좌표를 m만큼 우측 비트시프트한 수를 다시 m만큼 좌측 비트시프트함으로써 상기 제2 좌표의 x 좌표를 획득하고, 상기 제1 좌표의 y 좌표를 n만큼 우측 비트시프트한 수를 다시 n만큼 좌측 비트시프트함으로써 상기 제2 좌표의 y 좌표를 획득하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 MxN 크기가 8x8인 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 콜로케이티드 블록이 우하측 콜로케이티드 블록(bottom-right collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 우하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 콜로케이티드 블록이 하측 콜로케이티드 블록(bottom collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 콜로케이티드 블록이 중앙 콜로케이티드 블록(central collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 중앙 지점의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 콜로케이티드 블록이 사이드 콜로케이티드 블록(side collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 x축 방향으로 인접하는 외부 샘플 또는 우하측 지점에 y축 방향으로 인접하는 외부 샘플의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 콜로케이티드 블록이 좌하측 콜로케이티드 블록(bottom-left collocated block)인 경우, 상기 제1 좌표는 상기 현재 블록의 좌하측 지점에 대각 방향으로 인접하는 외부 샘플의 좌표와 동일한 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는,상기 현재 블록이 머지 모드로 인터 예측될 때, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 상기 움직임 벡터를 이용하여 상기 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 획득하는 단계를 포함하고,상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 상기 콜로케이티드 움직임 벡터를 가지는 상기 블록에 대응하는 시간적 머지 후보를 포함하는 상기 현재 블록의 머지 후보 리스트를 생성하는 단계; 및상기 머지 후보 리스트 중에서 결정된 상기 현재 블록의 머지 후보에 대응하는 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 움직임 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계는,상기 현재 블록의 MVP 모드로 인터 예측될 때, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터 및 상기 움직임 벡터를 이용하여 상기 콜로케이티드 움직임 벡터 및 상기 콜로케이티드 움직임 벡터의 이용 가능성을 획득하는 단계를 포함하고,상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 블록을 생성하는 단계는, 상기 콜로케이티드 움직임 벡터가 이용 가능한 경우에, 상기 콜로케이티드 움직임 벡터를 가지는 상기 블록에 대응하는 시간적 움직임 벡터 예측 후보를 포함하는 상기 현재 블록의 MVP 후보 리스트를 생성하는 단계; 및상기 MVP 후보 리스트 중에서 결정된 상기 현재 블록의 예측 움직임 벡터 후보에 대응하는 블록의 움직임 벡터를 이용하여 상기 현재 블록의 예측 움직임 벡터를 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하고, 상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하고, 콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하고, 상기 콜로케이티드 움직임 벡터를 이용하여 결정된 상기 현재 블록의 움직임 벡터를 획득하는 인터 예측부; 및상기 현재 블록의 움직임 벡터를 이용하여 결정된 상기 현재 블록의 예측 블록을 이용하여 상기 현재 블록의 복원 블록을 생성하는 복원부를 포함하는 것을 특징으로 하는 비디오 복호화 장치.
- 현재 블록의 좌상측 지점으로부터 소정 거리만큼 떨어진 지점을 가리키는 콜로케이티드 블록의 제1 좌표를 획득하는 단계;상기 콜로케이티드 블록의 제1 좌표를 포함하는 MxN 크기의 블록의 좌상측 지점에 해당하는 제2 좌표가 콜로케이티드 샘플의 좌표가 되도록 결정하는 단계;콜로케이티드 픽쳐 내에서 상기 콜로케이티드 블록의 제1 좌표를 포함하는 콜로케이티드 부호화 단위의 예측 모드에 기초하여, 상기 콜로케이티드 샘플의 좌표에 대응하는 블록의 움직임 벡터를 이용하여 콜로케이티드 움직임 벡터를 획득하는 단계; 및상기 콜로케이티드 움직임 벡터에 기초하여 상기 현재 블록의 후보 리스트를 생성하고, 상기 후보 리스트를 이용하여 상기 현재 블록의 움직임 벡터를 부호화하는 단계를 포함하는 것을 특징으로 하는 비디오 부호화 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200043034 | 2020-04-08 | ||
KR10-2020-0043034 | 2020-04-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021206479A1 true WO2021206479A1 (ko) | 2021-10-14 |
Family
ID=78023458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2021/004436 WO2021206479A1 (ko) | 2020-04-08 | 2021-04-08 | 움직임 벡터를 획득하기 위한 비디오 복호화 방법 및 장치, 움직임 벡터를 획득하기 위한 비디오 부호화 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
KR (2) | KR102357294B1 (ko) |
WO (1) | WO2021206479A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018084339A1 (ko) * | 2016-11-04 | 2018-05-11 | 엘지전자(주) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
WO2019194514A1 (ko) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
WO2019194502A1 (ko) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
KR20200008179A (ko) * | 2011-02-09 | 2020-01-23 | 엘지전자 주식회사 | 영상 부호화 및 복호화 방법과 이를 이용한 장치 |
JP2020043500A (ja) * | 2018-09-12 | 2020-03-19 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置 |
-
2021
- 2021-04-08 WO PCT/KR2021/004436 patent/WO2021206479A1/ko active Application Filing
- 2021-04-08 KR KR1020210046099A patent/KR102357294B1/ko active IP Right Grant
-
2022
- 2022-01-25 KR KR1020220011052A patent/KR20220017456A/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200008179A (ko) * | 2011-02-09 | 2020-01-23 | 엘지전자 주식회사 | 영상 부호화 및 복호화 방법과 이를 이용한 장치 |
WO2018084339A1 (ko) * | 2016-11-04 | 2018-05-11 | 엘지전자(주) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
WO2019194514A1 (ko) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
WO2019194502A1 (ko) * | 2018-04-01 | 2019-10-10 | 엘지전자 주식회사 | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
JP2020043500A (ja) * | 2018-09-12 | 2020-03-19 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20220017456A (ko) | 2022-02-11 |
KR102357294B1 (ko) | 2022-02-08 |
KR20210125443A (ko) | 2021-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020076097A1 (ko) | 움직임 벡터 차분값을 이용한 비디오 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치 | |
WO2020060158A1 (ko) | 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치 | |
WO2020096389A1 (ko) | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 | |
WO2018084523A1 (ko) | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 | |
WO2016137149A1 (ko) | 폴리곤 유닛 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2017171107A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2019093598A1 (ko) | 움직임 정보의 부호화 장치 및 방법, 및 복호화 장치 및 방법 | |
WO2019054736A1 (ko) | 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치 | |
WO2021086153A1 (ko) | 어파인 모델에 따른 인터 예측을 수행하는 비디오 복호화 방법 및 그 장치, 비디오 부호화 방법 및 그 장치 | |
WO2019009504A1 (ko) | 적응적 움직임 벡터 해상도로 결정된 움직임 벡터의 부호화 장치 및 부호화 방법, 및 움직임 벡터의 복호화 장치 및 복호화 방법 | |
WO2018084339A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2019059575A2 (ko) | 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치 | |
WO2020139059A1 (ko) | 움직임 벡터 차분의 부호화 방법 및 부호화 장치, 및 움직임 벡터 차분의 복호화 방법 및 복호화 장치 | |
WO2019168347A1 (ko) | 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치 | |
WO2019135648A1 (ko) | 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치 | |
WO2021049894A1 (ko) | 툴 세트를 이용하는 영상 복호화 장치 및 이에 의한 영상 복호화 방법, 및 영상 부호화 장치 및 이에 의한 영상 부호화 방법 | |
WO2018174618A1 (ko) | 참조 블록을 사용하는 예측 방법 및 장치 | |
WO2017176092A1 (ko) | 움직임 예측 정보를 유도하는 방법 및 장치 | |
WO2019066574A1 (ko) | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 | |
WO2020005046A1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
WO2020256468A1 (ko) | 주변 움직임 정보를 이용하여 움직임 정보를 부호화 및 복호화하는 장치, 및 방법 | |
WO2020130714A1 (ko) | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 | |
WO2019093597A1 (ko) | 움직임 벡터 해상도에 기초하여 영상을 부호화하는 장치 및 방법, 및 복호화 장치 및 방법 | |
WO2019074273A1 (ko) | 인터 예측 정보를 사용하는 방법 및 장치 | |
WO2020117010A1 (ko) | 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21785422 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21785422 Country of ref document: EP Kind code of ref document: A1 |