WO2020101392A1 - 인터 예측 방법 및 이를 이용한 영상 복호화 장치 - Google Patents
인터 예측 방법 및 이를 이용한 영상 복호화 장치 Download PDFInfo
- Publication number
- WO2020101392A1 WO2020101392A1 PCT/KR2019/015548 KR2019015548W WO2020101392A1 WO 2020101392 A1 WO2020101392 A1 WO 2020101392A1 KR 2019015548 W KR2019015548 W KR 2019015548W WO 2020101392 A1 WO2020101392 A1 WO 2020101392A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- offset
- current block
- motion vector
- information
- merge candidate
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 239000013598 vector Substances 0.000 claims abstract description 222
- 230000002457 bidirectional effect Effects 0.000 claims description 8
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims 5
- 230000011664 signaling Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 25
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000013139 quantization Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 208000034188 Stiff person spectrum disease Diseases 0.000 description 1
- 229920010524 Syndiotactic polystyrene Polymers 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 208000012112 ischiocoxopodopatellar syndrome Diseases 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000002490 spark plasma sintering Methods 0.000 description 1
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
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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 invention relates to encoding and decoding of an image, and to an inter prediction method and an image decoding apparatus having improved encoding and decoding efficiency.
- video data Since video data has a large amount of data compared to audio data or still image data, it requires a lot of hardware resources including memory to store or transmit itself without processing for compression.
- HVC High Efficiency Video Coding
- the present invention aims to provide an improved image encoding and decoding technology.
- one aspect of the present invention further reflects offset information in motion estimation to limit the accuracy of the conventional merge mode. By overcoming, it is related to the technology of improving the efficiency of encoding and decoding.
- One aspect of the present invention extracting the merge candidate flag (merge candidate flag) and offset (offset) information from the bitstream; Selecting a merge candidate corresponding to the extracted merge candidate flag from a merge candidate list including neighbor blocks of the current block as a merge candidate; Determining the motion vector of the current block by applying the offset information to the motion vector of the selected merge candidate; And generating a block indicated by the motion vector of the current block as a prediction block of the current block within a reference picture referenced by the selected merge candidate.
- a decoder for extracting a merge candidate flag and offset information from a bitstream;
- a selection unit for selecting a merge candidate corresponding to the extracted merge candidate flag from a merge candidate list including neighbor blocks of the current block as a merge candidate;
- a determination unit that determines the motion vector of the current block by applying the offset information to the motion vector of the selected merge candidate;
- a generator configured to generate a block indicated by a motion vector of the current block as a prediction block of the current block in a reference picture referenced by the selected merge candidate.
- more accurate motion estimation can be implemented by overcoming the limitations of the conventional method for motion estimation using offset information.
- FIG. 1 is an exemplary block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
- FIG. 2 is a diagram for explaining a method of dividing a block using a QTBTTT structure.
- 3 is a diagram for describing a plurality of intra prediction modes.
- FIG. 4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure.
- FIG. 5 is an exemplary block diagram of an inter prediction unit capable of implementing the techniques of the present disclosure.
- FIG. 6 is a flowchart illustrating an embodiment of a method for predicting a current block using offset information.
- FIG. 7 is a diagram for explaining an embodiment of a method for determining a motion vector of a current block using offset information.
- 8 and 9 are diagrams for explaining various embodiments of offset vector candidates.
- FIG. 10 is a flowchart illustrating an embodiment of a method of predicting a current block using prediction direction information and offset information.
- 11 is a view for explaining an embodiment of a method of predicting a current block using prediction direction information and offset information.
- FIG. 12 is a flowchart illustrating an embodiment of a method of constructing a merge candidate list based on prediction direction information.
- 13 and 14 are flowcharts illustrating a method of implementing the present invention in an independent mode.
- FIG. 1 is an exemplary block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
- an image encoding apparatus and sub-components of the apparatus will be described with reference to FIG. 1.
- the image encoding apparatus includes a block division unit 110, a prediction unit 120, a subtractor 130, a transformation unit 140, a quantization unit 145, an encoding unit 150, an inverse quantization unit 160, an inverse transformation unit ( 165), an adder 170, a filter unit 180 and a memory 190.
- Each component of the video encoding device may be implemented in hardware or software, or a combination of hardware and software. Further, the function of each component may be implemented in software, and the microprocessor may be implemented to execute the function of software corresponding to each component.
- One image is composed of a plurality of pictures. Each picture is divided into a plurality of regions, and encoding is performed for each region. For example, one picture is divided into one or more tiles or / and slices. Here, one or more tiles may be defined as a tile group. Each tile or / slice is divided into one or more coding tree units (CTUs). And each CTU is divided into one or more coding units (CUs) by a tree structure. Information applied to each CU is encoded as the syntax of the CU, and information commonly applied to CUs included in one CTU is encoded as the syntax of the CTU.
- CTUs coding tree units
- CUs coding units
- information commonly applied to all blocks in one tile is encoded as the syntax of a tile or encoded as a syntax of a tile group in which a plurality of tiles are collected, and information applied to all blocks constituting one picture is It is encoded in a picture parameter set (PPS) or a picture header.
- PPS picture parameter set
- PPS picture parameter set
- information commonly referred to by a plurality of pictures is encoded in a sequence parameter set (SPS).
- SPS sequence parameter set
- information commonly referenced by one or more SPSs is encoded in a video parameter set (VPS).
- the block dividing unit 110 determines the size of a coding tree unit (CTU).
- CTU size Information about the size of the CTU (CTU size) is encoded as a syntax of an SPS or a PPS and transmitted to an image decoding apparatus.
- the block dividing unit 110 divides each picture constituting an image into a plurality of coding tree units (CTUs) having a predetermined size, and then repeatedly repeats the CTU using a tree structure. (recursively) split.
- CTUs coding tree units
- a leaf node in a tree structure becomes a coding unit (CU), which is a basic unit of encoding.
- the tree structure includes a quad tree (QuadTree, QT) in which a parent node (or parent node) is divided into four sub-nodes (or child nodes) of the same size, or a binary tree (BinaryTree) in which a parent node is divided into two sub-nodes. , BT), or a ternary tree in which the upper node is divided into three lower nodes in a 1: 2: 1 ratio, or a structure using a mixture of two or more of these QT structures, BT structures, and TT structures. have.
- a QTBT QuadTree plus BinaryTree
- a QTBTTT QuadTree plus BinaryTree TernaryTree
- MTT Multiple-Type Tree
- the CTU may first be divided into a QT structure.
- the quadtree split may be repeated until the size of the splitting block reaches the minimum block size (MinQTSize) of the leaf node allowed in QT.
- the first flag (QT_split_flag) indicating whether each node of the QT structure is divided into 4 nodes of the lower layer is encoded by the encoder 150 and signaled to the video decoding apparatus. If the leaf node of QT is not larger than the maximum block size (MaxBTSize) of the root node allowed by BT, it may be further divided into any one or more of BT structure or TT structure.
- MaxBTSize maximum block size
- a plurality of split directions may exist. For example, there may be two directions in which a block of a corresponding node is horizontally divided and a vertically divided direction.
- a second flag indicating whether nodes are split
- a flag indicating additional splitting direction vertical or horizontal
- / or splitting type Boary or Ternary
- a CU split flag indicating that the block is split first and a QT split flag (split_qt_flag) indicating whether the split type is QT split is encoded 150 ) And signaled to the video decoding apparatus. If the CU split flag (split_cu_flag) value is not indicated, the block of the corresponding node becomes a leaf node in a split tree structure and becomes a coding unit (CU), which is a basic unit of encoding.
- CU coding unit
- the split type is QT or MTT through the QT split flag (split_qt_flag) value. If the split type is QT, there is no additional information, and when the split type is MTT, additionally, a flag indicating the MTT split direction (vertical or horizontal) (mtt_split_cu_vertical_flag) and / or a flag indicating the MTT split type (Binary or Ternary) (mtt_split_cu_binary_flag) is encoded by the encoding unit 150 and signaled to the video decoding apparatus.
- split_flag indicating whether each node of the BT structure is divided into blocks of a lower layer and split type information indicating a split type are encoded by the encoder 150 and transmitted to the image decoding apparatus.
- split_flag there may be additionally a type of dividing a block of a corresponding node into two blocks having an asymmetric shape.
- the asymmetric form may include a form of dividing a block of a corresponding node into two rectangular blocks having a size ratio of 1: 3, or a form of dividing a block of a corresponding node in a diagonal direction.
- CU may have various sizes according to QTBT or QTBTTT division from CTU.
- a block corresponding to a CU ie, a leaf node of QTBTTT
- a 'current block' a block corresponding to a CU (ie, a leaf node of QTBTTT) to be encoded or decoded.
- the prediction unit 120 predicts the current block to generate a prediction block.
- the prediction unit 120 includes an intra prediction unit 122 and an inter prediction unit 124.
- the current blocks in a picture can each be predictively coded.
- prediction of the current block may be performed using intra prediction technology (using data from a picture containing the current block) or inter prediction technology (using data from a picture coded before a picture containing the current block). Can be performed.
- Inter prediction includes both one-way prediction and two-way prediction.
- the intra prediction unit 122 predicts pixels in the current block using pixels (reference pixels) located around the current block in the current picture including the current block.
- the plurality of intra prediction modes may include 65 non-directional modes including a planar mode and a DC mode. Peripheral pixels to be used and expressions are defined differently according to each prediction mode.
- the intra prediction unit 122 may determine an intra prediction mode to be used to encode the current block.
- the intra prediction unit 122 may encode the current block using various intra prediction modes, and select an appropriate intra prediction mode to use from the tested modes. For example, the intra prediction unit 122 calculates rate distortion values using rate-distortion analysis for various tested intra prediction modes, and has the best rate distortion characteristics among the tested modes. The intra prediction mode can also be selected.
- the intra prediction unit 122 selects one intra prediction mode from a plurality of intra prediction modes, and predicts a current block by using a neighboring pixel (reference pixel) and an arithmetic expression determined according to the selected intra prediction mode.
- Information about the selected intra prediction mode is encoded by the encoding unit 150 and transmitted to the image decoding apparatus.
- the inter prediction unit 124 generates a prediction block for the current block through a motion compensation process.
- the block most similar to the current block is searched in the reference picture that has been encoded and decoded before the current picture, and a predicted block for the current block is generated using the searched block. Then, a motion vector corresponding to displacement between the current block in the current picture and the prediction block in the reference picture is generated.
- motion estimation is performed on luma components, and motion vectors calculated based on luma components are used for both luma components and chroma components.
- Motion information including information on a reference picture and motion vector used to predict a current block is encoded by the encoder 150 and transmitted to an image decoding apparatus.
- the subtractor 130 subtracts the prediction block generated by the intra prediction unit 122 or the inter prediction unit 124 from the current block to generate a residual block.
- the transform unit 140 converts the residual signal in the residual block having pixel values in the spatial domain into a transform coefficient in the frequency domain.
- the transform unit 140 may transform residual signals in the residual block using the entire size of the residual block as a transformation unit, or divide the residual block into two subblocks, which are a transform region and a non-transformed region, and convert the sub Residual signals can be transformed using only blocks as transform units.
- the transform region sub-block may be one of two rectangular blocks having a size ratio of 1: 1 on the horizontal axis (or vertical axis).
- a flag (cu_sbt_flag), directional (vertical / horizontal) information (cu_sbt_horizontal_flag) and / or location information (cu_sbt_pos_flag) indicating that only the sub-block has been converted is encoded by the encoder 150 and signaled to the video decoding apparatus.
- the size of the transform region sub-block may have a size ratio of 1: 3 based on the horizontal axis (or vertical axis).
- a flag (cu_sbt_quad_flag) for classifying the split is additionally encoded by the encoder 150 to decode the image. Signaled to the device.
- the quantization unit 145 quantizes transform coefficients output from the transform unit 140 and outputs the quantized transform coefficients to the encoder 150.
- the encoding unit 150 generates a bitstream by encoding quantized transform coefficients using an encoding method such as CABAC (Context-based Adaptive Binary Arithmetic Code).
- the encoder 150 encodes information such as a CTU size, a CU split flag, a QT split flag, an MTT split direction, and an MTT split type related to block splitting, so that the video decoding apparatus can split the block in the same way as the video coding apparatus. To make.
- the encoder 150 encodes information about a prediction type indicating whether the current block is encoded by intra prediction or inter prediction, and intra prediction information (that is, intra prediction mode) according to the prediction type. Information) or inter prediction information (reference picture and motion vector information).
- the inverse quantization unit 160 inverse quantizes the quantized transform coefficients output from the quantization unit 145 to generate transform coefficients.
- the inverse transform unit 165 restores the residual block by transforming transform coefficients output from the inverse quantization unit 160 from the frequency domain to the spatial domain.
- the adder 170 restores the current block by adding the reconstructed residual block and the predicted block generated by the predictor 120.
- the pixels in the reconstructed current block are used as reference pixels when intra prediction of the next block.
- the filter unit 180 filters the reconstructed pixels to reduce blocking artifacts, ringing artifacts, and blurring artifacts caused by block-based prediction and transformation / quantization. To perform.
- the filter unit 180 may include a deblocking filter 182 and a sample adaptive offset (SAO) filter 184.
- SAO sample adaptive offset
- the deblocking filter 180 filters the boundary between the restored blocks to remove blocking artifacts caused by block-level coding / decoding, and the SAO filter 184 adds additional deblocking filtered images to the deblocking filter. Filtering is performed.
- the SAO filter 184 is a filter used to compensate for a difference between a reconstructed pixel and an original pixel caused by lossy coding.
- the reconstructed blocks filtered through the deblocking filter 182 and the SAO filter 184 are stored in the memory 190.
- the reconstructed picture is used as a reference picture for inter prediction of a block in a picture to be encoded.
- FIG. 4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure.
- an image decoding apparatus and sub-components of the apparatus will be described with reference to FIG. 4.
- the image decoding apparatus may include a decoding unit 410, an inverse quantization unit 420, an inverse transform unit 430, a prediction unit 440, an adder 450, a filter unit 460, and a memory 470. have.
- each component of the video decoding apparatus may be implemented in hardware or software, or a combination of hardware and software. Further, the function of each component may be implemented in software, and the microprocessor may be implemented to execute the function of software corresponding to each component.
- the decoder 410 determines a current block to be decoded by decoding a bitstream received from an image encoding apparatus and extracting information related to block partitioning, prediction information necessary for restoring the current block, information about a residual signal, and the like. To extract.
- the decoder 410 extracts information on the CTU size from the Sequence Parameter Set (SPS) or Picture Parameter Set (PSP) to determine the size of the CTU, and divides the picture into CTUs of the determined size. Then, the CTU is determined as the top layer of the tree structure, that is, the root node, and the CTU is partitioned using the tree structure by extracting the segmentation information for the CTU.
- SPS Sequence Parameter Set
- PSP Picture Parameter Set
- the first flag (QT_split_flag) related to the splitting of the QT is extracted, and each node is divided into four nodes of a lower layer.
- the second flag (MTT_split_flag) and the split direction (vertical / horizontal) and / or split type (binary / ternary) information related to the splitting of the MTT are extracted and the corresponding leaf node is MTT.
- a CU split flag indicating whether to split the CU is first extracted, and when the corresponding block is split, a QT split flag (split_qt_flag) is extracted. . If the split type is not QT and MTT, a flag indicating the MTT splitting direction (vertical or horizontal) (mtt_split_cu_vertical_flag) and / or a flag indicating the MTT splitting type (Binary or Ternary) (mtt_split_cu_binary_flag) is additionally extracted.
- each node may have 0 or more repetitive MTT partitions after 0 or more repetitive QT partitions. For example, the CTU may directly generate an MTT split or, conversely, only multiple QT splits may occur.
- the first flag (QT_split_flag) related to the splitting of the QT is extracted to divide each node into four nodes of a lower layer. Then, a split flag (split_flag) and split direction information indicating whether or not to be further split by BT is extracted for a node corresponding to a leaf node of QT.
- the decoder 410 when determining a current block to be decoded through partitioning of a tree structure, extracts information on a prediction type indicating whether the current block is intra predicted or inter predicted. When the prediction type information indicates intra prediction, the decoder 410 extracts a syntax element for intra prediction information (intra prediction mode) of the current block. When the prediction type information indicates inter prediction, the decoder 410 extracts syntax elements for the inter prediction information, that is, information indicating a motion vector and a reference picture referenced by the motion vector.
- the decoding unit 410 extracts information about quantized transform coefficients of the current block as information about the residual signal.
- the inverse quantization unit 420 inverse quantizes the quantized transform coefficients, and the inverse transform unit 430 inversely transforms the inverse quantized transform coefficients from the frequency domain to the spatial domain to restore residual signals to generate a residual block for the current block. .
- a flag indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- vertical / horizontal information indicating that only a subblock of the transform block is transformed
- the prediction unit 440 may include an intra prediction unit 442 and an inter prediction unit 444.
- the intra prediction unit 442 is activated when the prediction type of the current block is intra prediction
- the inter prediction unit 444 is activated when the prediction type of the current block is inter prediction.
- the intra prediction unit 442 determines an intra prediction mode of a current block among a plurality of intra prediction modes from syntax elements for the intra prediction mode extracted from the decoder 410, and according to the intra prediction mode, reference pixels around the current block Use to predict the current block.
- the inter prediction unit 444 determines a motion vector of a current block and a reference picture referenced by the motion vector using a syntax element for the intra prediction mode extracted from the decoding unit 410, and uses the motion vector and the reference picture. To predict the current block.
- the adder 450 restores the current block by adding the residual block output from the inverse transform unit and the prediction block output from the inter prediction unit or the intra prediction unit.
- the pixels in the reconstructed current block are used as a reference pixel in intra prediction of a block to be decoded later.
- the filter unit 460 may include a deblocking filter 462 and a SAO filter 464.
- the deblocking filter 462 deblocks the boundary between the restored blocks in order to remove blocking artifacts caused by block-by-block decoding.
- the SAO filter 464 performs additional filtering on the reconstructed block after deblocking filtering to compensate for the difference between the reconstructed pixel and the original pixel caused by lossy coding.
- the reconstructed blocks filtered through the deblocking filter 462 and the SAO filter 464 are stored in the memory 470. When all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of a block in a picture to be encoded.
- inter prediction encoding / decoding method may be largely divided into a skip mode (skip mode), a merge mode (merge mode), and an adaptive (or advanced) motion vector predictor (AMVP) mode.
- skip mode skip mode
- merge mode merge mode
- AMVP adaptive (or advanced) motion vector predictor
- the image encoding apparatus constructs a merge candidate list using motion information of neighboring blocks, selects the most optimal motion information, and then images the index of the merge candidate having the selected motion information. Signals to the decoding device.
- the image decoding apparatus selects a merge candidate (peripheral block) corresponding to the transmitted merge candidate index from the merge candidate list, and uses motion information of the selected neighboring blocks as motion information of the current block.
- This conventional merge mode includes a plurality of information such as prediction index information, reference picture index, motion vector difference and / or motion vector predictor. It has the advantage of effectively reducing the amount of data related to motion by expressing as one of the merge candidate indexes.
- the conventional merge mode uses motion information of the selected neighboring blocks as the motion information of the current block, it can be said that it has a certain limitation in terms of accuracy for motion estimation.
- the present invention overcomes the limitations of the conventional merge mode by improving the accuracy of prediction of the current block through a method of estimating the motion of the current block by using additional information (offset information) in addition to motion information of the selected neighboring blocks. Corresponds to the invention.
- the inter prediction unit 444 capable of implementing the techniques of the present disclosure includes a selection unit 510, a determination unit 520, a generation unit 530, a determination unit 540, and a list construction unit It may be configured to include 550.
- the decoder 410 extracts (decodes) the merge index (merge_idx) and offset information (offset_idx or mvd) from the transmitted bitstream (S610).
- the merge index is information indicating any or all of one or more merge candidates included in the merge candidate list, and the merge index may be implemented in the form of a merge candidate flag (eg, mmvd_cand_flag) according to an embodiment.
- the selector 510 selects a merge candidate corresponding to the decoded merge index from the merge candidate list (S620).
- the merge candidate list is composed of one or more neighboring blocks (merged candidates) for the current block, and the process of configuring the merge candidate list is performed by the list construction unit 550.
- the determination unit 520 determines the motion vector of the current block using the 'selected merge candidate's motion vector' and the decoded 'offset information' (S630). Specifically, the determination unit 520 determines the position moved according to the offset information as the motion vector of the current block by using the position indicated by the motion vector of the selected merge candidate as the center or origin (S630).
- the motion vector of the current block is determined by applying the offset information to the 'selected merge candidate's motion vector'
- the 'selected merge candidate's motion vector' may be referred to as a first motion vector or an initial motion vector, etc.
- the motion vector of the current block may be referred to as a second motion vector or a final motion vector.
- the 'position indicated by the selected merge candidate's motion vector' may be referred to as a first position or an initial position, and a position finally indicated by offset information (by a motion vector of the current block). Position indicated) may be referred to as a second position or a final position.
- the 'offset information' is information indicating a relative position centering on a first position indicated by the first motion vector, and this relative position accurately predicts a current block compared to a first position indicated by the first motion vector. It is a more optimized location.
- the offset information may be implemented in various forms expressing direction and magnitude from the first position to the second position.
- the offset information may be implemented in the form of an offset index (offset_idx) indicating any one of preset offset vector candidates.
- the offset information may be implemented in the form of a differential motion vector (mvd) corresponding to the difference between the second motion vector and the first motion vector. Details of the implementation form of the offset information will be described later.
- the generation unit 530 When the motion vector (second motion vector) of the current block is determined, the generation unit 530 generates a block indicated by the determined second motion vector as a prediction block of the current block (S640). That is, the generator 530 performs prediction on the current block using the block indicated by the second motion vector.
- the block indicated by the second motion vector is located in the reference picture referenced by the selected merge candidate.
- FIG. 7 (a) shows an example of determining a second motion vector when the first motion vector is a unidirectional (L0) prediction
- FIG. 7 (b) shows a case where the first motion vector is a bidirectional (L0 and L1) prediction
- An example of determining the second motion vector is shown.
- each of L0 and L1 represents a reference picture list
- ref_idx # 0 represents reference picture information included in L0
- ref_idx # 1 represents reference picture information included in L1.
- the current block indicates the current block
- the current picture indicates the current picture including the current block.
- the prediction direction reference picture list
- reference picture information reference picture information
- first motion vector MV # 0, MV # 1
- the inter prediction unit 444 centers on the first motion vector MV # 0 indicating the first position 710, and the direction indicated by the offset information offset0. And by moving according to the size, it is possible to determine the second motion vector (MV 0) indicating the second position (720).
- the inter prediction unit 444 predicts the prediction directions L0 and L1, reference picture information (ref_idx # 0 and ref_idx # 1), and the first motion from the selected merge candidate motion information.
- Vectors (MV # 0 and MV # 1) can be obtained for both directions.
- the inter prediction unit 444 centers on the first motion vector MV # 0 indicating the first position 710-0, according to the direction and size indicated by the offset information offset0. By moving, the second motion vector MV 0 indicating the second position 720-0 may be determined.
- the inter-prediction unit 444 centers on the first motion vector MV # 1 indicating the first position 710-1, and the direction and magnitude of the direction indicated by the offset information offset0.
- MV 1 indicating the second position (720-1)
- -offset 0 means offset information in the reverse direction to offset information in the L0 direction (offset 0).
- offset information in the reverse direction may be applied to the L0 direction
- offset information (in the forward direction) may be applied to the L1 direction.
- the present invention when configured to perform motion estimation using offset information, more accurate motion estimation can be implemented compared to a conventional method using motion information of a neighboring block as it is.
- the offset information may be implemented in various forms expressing a direction and a magnitude from a first position to a second position.
- offset information may be implemented in an index form or a vector form.
- the offset index may indicate any one of preset offset vector candidates.
- the image encoding apparatus indexes preset offset vector candidates in an offset form, and transmits any one of the indexed results (offset index) to the image decoding apparatus.
- the offset index may indicate the motion size of the offset vector candidate and the motion direction of the offset vector candidate.
- the offset index may include an offset index (eg, mmvd_distance_idx) indicating the motion size of the offset vector candidate and an offset index (eg, mmvd_direction_idx) indicating the motion direction of the offset vector candidate.
- the image decoding apparatus may determine the second motion vector by adding the offset vector candidate indicated by the transmitted offset index to the first motion vector. If this is described again with respect to the first position and the second position, the image decoding apparatus may determine a position (second position) indicated by the offset vector candidate specified by the offset index from the first position as the second motion vector. have.
- 8 and 9 illustrate various examples of offset vector candidates that can be indicated by an offset index.
- 8 (a) and 8 (b) correspond to examples for offset vector candidates when 4-point offset motion is allowed
- FIGS. 8 (c) and 8 (d) are 8- This corresponds to an example of offset vector candidates when point offset motion is allowed.
- 8 (e) and 8 (f) correspond to examples for offset vector candidates when 12-point offset motion is allowed
- FIGS. 9 (a) to (e) show 16-point offset motion allowed Corresponds to an example for offset vector candidates.
- a grid in FIGS. 8 and 9 means 1 pixel, and a circle in which both the background and the outline are black indicates the first position indicated by the first motion vector, and the circle consisting only of the black outline is in the second motion vector.
- the possible offset vector candidates are indicated, and a triangle composed only of black outlines indicates an offset vector candidate located at 1/2 pixel position.
- each of the four positions located in each may correspond to the offset vector candidate (Fig. 8 (a )), A total of four positions located at (+1, 0), (+2, 0), (-1, 0), and (-2, 0) centered on the first position correspond to offset vector candidates It can be done (Fig. 8 (b)).
- the offset vector candidate may have more various forms in addition to the examples shown in FIGS. 8 and 9.
- the offset vector candidates may be arranged to construct an asymmetric shape, rather than to arrange a symmetric shape around the first position.
- the image encoding apparatus and the image decoding apparatus may predefine an arrangement shape to be applied to prediction of an actual current block among arrangement shapes of various offset vector candidates.
- the arrangement form of the offset vector to be actually applied may be defined at one or more positions of a higher level (sequence-level, picture-level, tile group header, tile header, CTU header, CU header), or may be defined at a block level.
- the arrangement form of offset vector candidates may be specified by the number of offset vector candidates, the magnitude of each of the offset vector candidates, and the direction of movement of each of the offset vector candidates. Accordingly, if different configurations of one or more of the number of offset vector candidates, the motion size of each of the offset vector candidates, and the motion direction of each of the offset vector candidates are configured differently, different arrangement types may be determined.
- the video encoding apparatus may transmit identification information that determines any one of various array types in a bitstream, and the video decoding apparatus may determine an array type, that is, preset offset vector candidates, by using identification information included in the bitstream. Can be.
- the inter prediction unit 444 moves by shifting according to the offset vector candidate (offset 0) indicated by the offset index around the first motion vector MV # 0 or the first motion
- the second motion vector MV 0 may be determined by adding an offset vector candidate (offset 0) indicated by the offset index to the vector MV # 0.
- the inter prediction unit 444 moves according to the offset vector candidate (offset 0) indicated by the offset index around the first motion vector (MV # 0).
- the second motion vector MV 0 may be determined by or by adding an offset vector candidate (offset 0) indicated by the offset index to the first motion vector MV # 0.
- the inter-prediction unit 444 moves based on the offset vector candidate (-offset 0) indicated by the offset index around the first motion vector (MV # 1) or the first motion vector (MV # 1) ),
- the second motion vector MV 1 may be determined by adding the offset vector candidate (-offset) indicated by the offset index.
- scaling for an offset vector may be implemented based on a time axis distance between two reference pictures ref_idx # 0, ref_idx # 1 and the current picture.
- the inter-prediction unit 444 scales the offset vector candidate based on the time axis distance (picture order count (POC) difference) between ref_idx # 0 and the current picture and the time axis distance (POC difference) between ref_idx # 1 and the current picture.
- POC picture order count
- the second motion vector (MV 1) may be determined.
- the image encoding apparatus may generate and transmit a vector corresponding to a difference between the second position value and the first position value.
- the image encoding apparatus may transmit an offset vector indicating a direction and magnitude from a position (first position) indicated by the selected merge index to a second position.
- the video decoding apparatus may determine the second motion vector by applying the transmitted offset vector to the first motion vector. Since the offset vector corresponds to information for indicating the second position with the first position as the origin, it can be understood as a difference motion vector (mvd).
- the offset vector can be expressed as syntaxes indicating magnitude and syntaxes indicating direction.
- the offset vector may be represented by various other types of syntax indicating the magnitude and direction of motion.
- Table 1 shows an example of expressing an offset vector with syntax indicating magnitude and syntax indicating direction.
- abs_mvd_greater0_flag, abs_mvd_greater1_flag and abs_mvd_minus2 are syntaxes indicating the magnitude of the offset vector (mvd), and mvd_sign_flag is a syntax indicating the direction of the offset vector.
- mv resolution means the magnitude resolution of the offset vector, and may correspond to one of 1/4 pixels, 1 pixel, and 4 pixels.
- the mv resolution information is additionally signaled from the video encoding device to the video decoding device, and may be configured in various forms (flags, indexes, etc.) indicating magnitude resolution of the offset vector.
- mv resolution is implemented in the form of a flag.
- the mv resolution is set to 1/4 pixel, and when the first flag is off, the second flag is further analyzed to determine whether it is 1 pixel or 4 pixels.
- the actual motion is determined by the determined mv resolution and magnitude. For example, if the magnitude of the vector is '2' and the mv resolution is '4 pixels', the actual motion corresponds to '8 pixels'. In addition, if the magnitude of the vector is '4' and the mv resolution is '1/4 pixel', the actual motion corresponds to '1 pixel'.
- the inter prediction unit 444 moves around the first motion vector (MV # 0) according to the magnitude and direction indicated by the offset vector (offset 0). (MV 0) can be determined.
- the inter-prediction unit 444 moves according to magnitude and direction indicated by the offset vector (offset 0) around the first motion vector (MV # 0). By doing so, the second motion vector (MV 0) can be determined.
- the inter-prediction unit 444 moves the second motion vector MV 1 by moving according to the magnitude and direction indicated by the offset vector (-offset 0) around the first motion vector MV # 1. Can decide.
- scaling for an offset vector may be implemented based on a time axis distance between two reference pictures ref_idx # 0, ref_idx # 1 and the current picture. For example, if the picture order counter (POC) between the current picture and the reference picture ref_idx # 0 in L0 is 1, and the POC between the current picture and the reference picture ref_idx # 1 in L1 is 2, the offset vector in the L0 direction is ( x, y), and the offset vector in the L1 direction may be (-2 * x, -2 * y).
- POC picture order counter
- the image encoding apparatus may be configured to separately transmit prediction direction information in addition to offset information.
- the image decoding apparatus may determine the prediction direction of the current block using the transmitted prediction direction information, and apply offset information for each direction based on this, or construct a merge candidate list using only neighboring blocks for the corresponding direction.
- the decoder 410 decodes the merge index (merge_idx) and prediction direction information (pred_idx) from the bitstream (S1010).
- the prediction direction information is not information derived from motion information of the selected merge candidate, but corresponds to information transmitted separately from the image encoding apparatus.
- merge_idx and pred_idx are transmitted from the video encoding apparatus, it is possible to implement both merge_idx first, pred_idx later, and pred_idx first and merge_idx later.
- the determination unit 540 determines the prediction direction of the current block based on the decoded prediction direction information (S1020, S1040).
- the prediction direction information may be a flag that distinguishes unidirectional or bidirectional, or may be a value indicating one of L0, L1, and bidirectional.
- the determination unit 540 When the prediction direction information is a value indicating one of L0, L1, and both directions, the determination unit 540, as shown in FIG. 10, 'process for determining whether the prediction direction information is not the same as the L1 direction (S1020)' and ' The process of determining whether the prediction direction information is not equal to the L0 direction (S1040) 'is performed to determine the prediction direction of the current block.
- the prediction direction indicated by the prediction direction information may correspond to the L0 direction or to both directions (at least to the L0 direction).
- the video encoding apparatus may transmit offset information (offset 0) for the L0 direction in the bitstream, and the video decoding apparatus may decode offset information (offset 0) for the L0 direction from the bitstream (S1030).
- offset 0 may correspond to any one of offset_idx and mvd for the L0 direction.
- the prediction direction indicated by the prediction direction information corresponds to both directions.
- the image encoding apparatus may transmit offset information (offset 1) for the L1 direction in a bitstream, and the image decoding apparatus may decode offset information (offset 1) for the L1 direction from the bitstream (S1050).
- offset 1 may correspond to any one of offset_idx and mvd for the L1 direction.
- the image encoding apparatus may transmit only the offset information for the L1 direction in the bitstream, and the image decoding apparatus may decode the offset information for the L1 direction from the bitstream (S1050).
- the video encoding apparatus may transmit only the offset information for the L0 direction in the bitstream, and the video encoding apparatus may decode the offset information for the L0 direction from the bitstream.
- the offset vector candidate indicated by the offset index for the L1 direction is applied to the first motion vector for the L1 direction, and the second motion vector for the L1 direction is applied.
- the second motion vector for the L1 direction is applied.
- a second motion vector for the L0 direction may be determined by applying an offset vector candidate indicated by the offset index for the L0 direction to the first motion vector for the L0 direction.
- FIG. 11 a case in which offset information is implemented in the form of an offset vector (mvd) is represented in FIG. 11.
- mvd 0 represents an offset vector for the L0 direction
- mvd 1 represents an offset vector for the L1 direction.
- the offset vector for the L0 direction ( mvd 0 ) to determine the second motion vector (MV 0) for the L0 direction.
- the second motion vector for the L1 direction is moved from the first position 710-1 for the L1 direction to the second position 720-1 according to the offset vector mvd 1 for the L1 direction (MV 1 ) Can be determined.
- the generation unit 530 averages two second motion vectors or performs weighted prediction on the second motion vectors to perform the current block A prediction block for can be generated.
- the prediction direction information may be used as a reference for a method of constructing a merge candidate list.
- An embodiment of a method of constructing a merge candidate list using prediction direction information is illustrated in FIG. 12.
- the process of decoding the merge index (merge_idx) and the prediction direction information (pred_idx) from the bitstream (S1210) and the process of determining whether the decoded prediction direction information is not the same as the L0 direction (S1220) This can be done.
- merge_idx and pred_idx are transmitted from the video encoding apparatus, it is possible to implement both merge_idx first, pred_idx later, and pred_idx first and merge_idx later.
- the list construction unit 550 configures a merge candidate list with one or more neighboring blocks having a prediction direction of L0 among neighboring blocks of the current block (S1230). That is, the list construction unit 550 configures a merge candidate list such that neighboring blocks having a prediction direction of L0 are included as merge candidates.
- the prediction direction of the current block may correspond to the L1 unidirectional or the bidirectional. Therefore, a process of determining whether the prediction direction information is not the same as the L1 direction (S1240) is further performed.
- the list construction unit 550 configures a merge candidate list so that neighboring blocks having a prediction direction of L1 are included as merge candidates (S1250).
- the list construction unit 550 configures a merge candidate list so that neighboring blocks having a bidirectional prediction direction are included as merge candidates (S1260).
- the merge candidate list may be configured by including only neighboring blocks having prediction directions corresponding to the prediction direction information as merge candidates. Therefore, the method of constructing the merge candidate list can be implemented more adaptively to the actual prediction direction of the current block.
- Activation / deactivation of the above-described methods is a syntax element (eg, sps_mmvd_enabled_flag) defined at one or more positions of a higher level (sequence-level, picture-level, tile group header, tile header, CTU header, CU header). It can be managed by value.
- the methods described above may be implemented in a mode in which the conventional merge mode is changed, or in a new mode (proposed mode, mmvd: merge with mvd) separate from the conventional merge mode.
- FIG. 13 shows a syntax structure for a case where the conventional merge mode and the proposed mode are divided into the same group
- FIG. 14 shows a syntax structure for a case where the conventional merge mode and the proposed mode are divided into separate groups.
- the merge flag corresponds to information indicating whether the current block is predicted as a group including a conventional merge mode and a proposed mode.
- a process of parsing and decoding flags (proposed_flag, mmvd_merge_flag) indicating whether the prediction mode is predicted ( S1330) and a process of determining mmvd_merge_flag (S1340) are performed.
- step S1320 as a result of determining the merge flag, when the current block does not correspond to the conventional merge mode or the proposed mode, parsing and decoding a flag (pred_mode_flag) that distinguishes inter prediction and intra prediction of the current block ( S1350) and a process of determining the corresponding flag (S1360) are performed.
- pred_mode_flag a flag that distinguishes inter prediction and intra prediction of the current block
- the inter mode (AMVP mode) prediction for the current block is performed, and when the current block is predicted in the intra mode, intra mode prediction for the current block is performed.
- the process of parsing and decoding the merge flag (regular_merge_flag) (S1410) and the process of determining the merge flag (S1420) are performed as described above. Since the embodiment of FIG. 14 corresponds to a case where the conventional merge mode and the proposed mode are divided into different groups, the merge flag of FIG. 14 corresponds to information indicating whether the current block is predicted as the conventional merge mode.
- prediction of the proposed mode for the current block is performed.
- the prediction of the AMVP mode or the intra mode is performed through a process of parsing and decoding pred_mode_flag (S1450) and a process of analyzing the corresponding flag (S1460).
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
인터 예측 방법 및 이를 이용한 영상 복호화 장치를 개시한다. 본 발명의 일 실시예에 의하면, 비트스트림으로부터, 머지 후보 플래그(merge candidate flag) 및 오프셋(offset) 정보를 추출하는 단계; 현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 후보 플래그에 대응되는 머지 후보를 선택하는 단계; 상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계; 및 상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법을 제공한다. 대표도: 도 5
Description
본 발명은 영상의 부호화 및 복호화에 관한 것으로서, 부호화 및 복호화의 효율을 향상시킨 인터 예측 방법 및 영상 복호화 장치에 관한 것이다.
동영상 데이터는 음성 데이터나 정지 영상 데이터 등에 비하여 많은 데이터량을 가지기 때문에, 압축을 위한 처리 없이 그 자체를 저장하거나 전송하기 위해서는 메모리를 포함하여 많은 하드웨어 자원을 필요로 한다.
따라서, 통상적으로 동영상 데이터를 저장하거나 전송할 때에는 부호화기를 사용하여 동영상 데이터를 압축하여 저장하거나 전송하며, 복호화기에서는 압축된 동영상 데이터를 수신하여 압축을 해제하고 재생한다. 이러한 동영상 압축 기술로는 H.264/AVC를 비롯하여, H.264/AVC에 비해 약 40% 정도의 부호화 효율을 향상시킨 HEVC(High Efficiency Video Coding)가 존재한다.
그러나, 영상의 크기 및 해상도, 프레임율이 점차 증가하고 있고, 이에 따라 부호화해야 하는 데이터량도 증가하고 있으므로 기존의 압축 기술보다 더 부호화 효율이 좋고 화질 개선 효과도 높은 새로운 압축 기술이 요구된다.
이러한 요구에 부응하기 위해 본 발명은 개선된 영상 부호화 및 복호화 기술을 제공하는 것을 목적으로 하며, 특히, 본 발명의 일 측면은 움직임 추정에 오프셋 정보를 더 반영하여 종래 머지 모드의 정확성에 대한 한계를 극복함으로써 부호화 및 복호화의 효율을 향상시키는 기술과 관련된다.
본 발명의 일 측면은, 비트스트림으로부터, 머지 후보 플래그(merge candidate flag) 및 오프셋(offset) 정보를 추출하는 단계; 현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 후보 플래그에 대응되는 머지 후보를 선택하는 단계; 상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계; 및 상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법을 제공한다.
본 발명의 다른 일 측면은, 비트스트림으로부터, 머지 후보 플래그(merge candidate flag) 및 오프셋(offset) 정보를 추출하는 복호화부; 현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 후보 플래그에 대응되는 머지 후보를 선택하는 선택부; 상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 결정부; 및 상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 생성부를 포함하는 것을 특징으로 하는 영상 복호화 장치를 제공한다.
이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 오프셋 정보를 이용하여 움직임 추정에 대한 종래 방법의 한계를 극복함으로써 더욱 정확한 움직임 추정을 구현할 수 있다.
또한, 본 발명의 다른 일 실시예에 의하면, 오프셋 정보를 최대한 단순화시켜 표현함으로써 오프셋 정보를 시그널링하기 위해 소요되는 비트 수를 최소화시킬 수 있다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBTTT 구조를 이용하여 블록을 분할하는 방법을 설명하기 위한 도면이다.
도 3은 복수의 인트라 예측 모드들을 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5는 본 개시의 기술들을 구현할 수 있는 인터 예측부의 예시적인 블록도이다.
도 6은 오프셋 정보를 활용하여 현재 블록을 예측하는 방법에 대한 일 실시예를 설명하기 위한 순서도이다.
도 7은 오프셋 정보를 활용하여 현재 블록의 움직임 벡터를 결정하는 방법에 대한 일 실시예를 설명하기 위한 도면이다.
도 8 및 도 9는 오프셋 벡터 후보들의 다양한 실시예를 설명하기 위한 도면이다.
도 10은 예측 방향 정보와 오프셋 정보를 활용하여 현재 블록을 예측하는 방법에 대한 일 실시예를 설명하기 위한 순서도이다.
도 11은 예측 방향 정보와 오프셋 정보를 활용하여 현재 블록을 예측하는 방법에 대한 일 실시예를 설명하기 위한 도면이다.
도 12는 예측 방향 정보를 기준으로 머지 후보 리스트를 구성하는 방법에 대한 일 실시예를 설명하기 위한 순서도이다.
도 13 및 도 14은 본 발명을 독립적인 모드로 구현하는 방법을 설명하기 위한 순서도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다. 이하에서는 도 1을 참조하여 영상 부호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
영상 부호화 장치는 블록 분할부(110), 예측부(120), 감산기(130), 변환부(140), 양자화부(145), 부호화부(150), 역양자화부(160), 역변환부(165), 가산기(170), 필터부(180) 및 메모리(190)를 포함하여 구성될 수 있다.
영상 부호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
하나의 영상(비디오)는 복수의 픽처들로 구성된다. 각 픽처들은 복수의 영역으로 분할되고 각 영역마다 부호화가 수행된다. 예를 들어, 하나의 픽처는 하나 이상의 타일(Tile) 또는/및 슬라이스(Slice)로 분할된다. 여기서, 하나 이상의 타일을 타일 그룹(Tile Group)으로 정의할 수 있다. 각 타일 또는/슬라이스는 하나 이상의 CTU(Coding Tree Unit)로 분할된다. 그리고 각 CTU는 트리 구조에 의해 하나 이상의 CU(Coding Unit)들로 분할된다. 각 CU에 적용되는 정보들은 CU의 신택스로서 부호화되고, 하나의 CTU에 포함된 CU들에 공통적으로 적용되는 정보는 CTU의 신택스로서 부호화된다. 또한, 하나의 타일 내의 모든 블록들에 공통적으로 적용되는 정보는 타일의 신택스로서 부호화되거나 다수 개의 타일을 모아 놓은 타일 그룹의 신택스로서 부호화되며, 하나의 픽처들을 구성하는 모든 블록들에 적용되는 정보는 픽처 파라미터 셋(PPS, Picture Parameter Set) 혹은 픽처 헤더에 부호화된다. 나아가, 복수의 픽처가 공통으로 참조하는 정보들은 시퀀스 파라미터 셋(SPS, Sequence Parameter Set)에 부호화된다. 그리고, 하나 이상의 SPS가 공통으로 참조하는 정보들은 비디오 파라미터 셋(VPS, Video Parameter Set)에 부호화된다.
블록 분할부(110)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS의 신택스로서 부호화되어 영상 복호화 장치로 전달된다.
블록 분할부(110)는 영상을 구성하는 각 픽처(picture)를 미리 결정된 크기를 가지는 복수의 CTU(Coding Tree Unit)들로 분할한 이후에, 트리 구조(tree structure)를 이용하여 CTU를 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU(coding unit)가 된다.
트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(QuadTree, QT), 또는 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT), 또는 상위 노드가 1:2:1 비율로 세 개의 하위 노드로 분할되는 터너리트리(TernaryTree, TT), 또는 이러한 QT 구조, BT 구조 및 TT 구조 중 둘 이상을 혼용한 구조일 수 있다. 예컨대, QTBT(QuadTree plus BinaryTree) 구조가 사용될 수 있고, 또는 QTBTTT(QuadTree plus BinaryTree TernaryTree) 구조가 사용될 수 있다. 여기서, BTTT를 합쳐서 MTT(Multiple-Type Tree)라 칭할 수 있다.
도 2는 QTBTTT 분할 트리 구조를 보인다. 도 2에서 보는 바와 같이, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달할 때까지 반복될 수 있다. QT 구조의 각 노드가 하위 레이어의 4개의 노드들로 분할되는지 여부를 지시하는 제1 플래그(QT_split_flag)는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. QT의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조 또는 TT 구조 중 어느 하나 이상으로 더 분할될 수 있다. BT 구조 및/또는 TT 구조에서는 복수의 분할 방향이 존재할 수 있다. 예컨대, 해당 노드의 블록이 가로로 분할되는 방향과 세로로 분할되는 방향 두 가지가 존재할 수 있다. 도 2와 같이, MTT 분할이 시작되면, 노드들이 분할되었는지 여부를 지시하는 제2 플래그(mtt_split_flag)와, 분할이 되었다면 추가적으로 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그 및/또는 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
트리 구조의 다른 예로서, QTBTTT 구조를 사용하여 블록을 분할하는 경우, 먼저 분할 되었음을 나타내는 CU 분할 플래그(split_cu_flag) 및 분할 타입이 QT 분할인지를 지시하는 QT 분할 플래그(split_qt_flag) 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. CU 분할 플래그(split_cu_flag) 값이 분할되지 않았음을 지시하지 않는 경우, 해당 노드의 블록이 분할 트리 구조에서의 리프 노드(leaf node)가 되어 부호화의 기본 단위인 CU(coding unit)가 된다. CU 분할 플래그(split_cu_flag) 값이 분할되었음을 지시하지 않는 경우, QT 분할 플래그(split_qt_flag) 값을 통해 분할 타입이 QT 혹은 MTT인지를 구분한다. 분할 타입이 QT인 경우에는 더 이상의 추가 정보가 없으며, 분할 타입이 MTT인 경우에는 추가적으로 MTT 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그(mtt_split_cu_vertical_flag) 및/또는 MTT 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그(mtt_split_cu_binary_flag)가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
트리 구조의 다른 예시로서 QTBT가 사용되는 경우, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. BT 구조의 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할되는 타입을 지시하는 분할 타입 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다. 한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태에는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태가 포함될 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태가 포함될 수도 있다.
CU는 CTU로부터의 QTBT 또는 QTBTTT 분할에 따라 다양한 크기를 가질 수 있다. 이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBTTT의 리프 노드)에 해당하는 블록을 '현재블록'이라 칭한다.
예측부(120)는 현재블록을 예측하여 예측블록을 생성한다. 예측부(120)는 인트라 예측부(122)와 인터 예측부(124)를 포함한다.
일반적으로, 픽처 내 현재블록들은 각각 예측적으로 코딩될 수 있다. 일반적으로 현재블록의 예측은 (현재블록을 포함하는 픽처로부터의 데이터를 사용하는) 인트라 예측 기술 또는 (현재블록을 포함하는 픽처 이전에 코딩된 픽처로부터의 데이터를 사용하는) 인터 예측 기술을 사용하여 수행될 수 있다. 인터 예측은 단방향 예측과 양방향 예측 모두를 포함한다.
인트라 예측부(122)는 현재블록이 포함된 현재 픽처 내에서 현재블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재한다. 예컨대, 도 3에서 보는 바와 같이, 복수의 인트라 예측모드는 planar 모드와 DC 모드를 포함하는 비방향성 모드와 65개의 방향성 모드를 포함할 수 있다. 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다.
인트라 예측부(122)는 현재블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(122)는 여러 인트라 예측 모드들을 사용하여 현재블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(122)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.
인트라 예측부(122)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
인터 예측부(124)는 움직임 보상 과정을 통해 현재블록에 대한 예측블록을 생성한다. 현재 픽처보다 먼저 부호화 및 복호화된 참조픽처 내에서 현재블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재블록과 참조픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 일반적으로, 움직임 추정은 루마(luma) 성분에 대해 수행되고, 루마 성분에 기초하여 계산된 모션 벡터는 루마 성분 및 크로마 성분 모두에 대해 사용된다. 현재블록을 예측하기 위해 사용된 참조픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.
감산기(130)는 현재블록으로부터 인트라 예측부(122) 또는 인터 예측부(124)에 의해 생성된 예측블록을 감산하여 잔차블록을 생성한다.
변환부(140)는 공간 영역의 픽셀 값들을 가지는 잔차블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(140)는 잔차블록의 전체 크기를 변환 단위로 사용하여 잔차블록 내의 잔차 신호들을 변환할 수 있으며, 또는 잔차블록을 변환 영역 및 비변환 영역인 두 개의 서브블록으로 구분하여, 변환 영역 서브블록만 변환 단위로 사용하여 잔차 신호들을 변환할 수 있다. 여기서, 변환 영역 서브블록은 가로축 (혹은 세로축) 기준 1:1의 크기 비율을 가지는 두 개의 직사각형 블록 중 하나일 수 있다. 이런 경우, 서브블록 만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 위치 정보(cu_sbt_pos_flag)가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다. 또한, 변환 영역 서브블록의 크기는 가로축 (혹은 세로축) 기준 1:3의 크기 비율을 가질 수 있으며, 이런 경우 해당 분할을 구분하는 플래그(cu_sbt_quad_flag)가 추가적으로 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.
양자화부(145)는 변환부(140)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(150)로 출력한다.
부호화부(150)는 양자화된 변환 계수들을 CABAC(Context-based Adaptive Binary Arithmetic Code) 등의 부호화 방식을 사용하여 부호화함으로써 비트스트림을 생성한다. 부호화부(150)는 블록 분할과 관련된 CTU size, CU 분할 플래그, QT 분할 플래그, MTT 분할 방향, MTT 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.
또한, 부호화부(150)는 현재블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보(즉, 인트라 예측 모드에 대한 정보) 또는 인터 예측정보(참조픽처 및 움직임벡터에 대한 정보)를 부호화한다.
역양자화부(160)는 양자화부(145)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(165)는 역양자화부(160)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.
가산부(170)는 복원된 잔차블록과 예측부(120)에 의해 생성된 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.
필터부(180)는 블록 기반의 예측 및 변환/양자화로 인해 발생하는 블록킹 아티팩트(blocking artifacts), 링잉 아티팩트(ringing artifacts), 블러링 아티팩트(blurring artifacts) 등을 줄이기 위해 복원된 픽셀들에 대한 필터링을 수행한다. 필터부(180)는 디블록킹 필터(182)와 SAO(Sample Adaptive Offset) 필터(184)를 포함할 수 있다.
디블록킹 필터(180)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 필터링하고, SAO 필터(184)는 디블록킹 필터링된 영상에 대해 추가적인 필터링을 수행한다. SAO 필터(184)는 손실 부호화(lossy coding)로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해 사용되는 필터이다.
디블록킹 필터(182) 및 SAO 필터(184)를 통해 필터링된 복원블록은 메모리(190)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다. 이하에서는 도 4를 참조하여 영상 복호화 장치와 이 장치의 하위 구성들에 대하여 설명하도록 한다.
영상 복호화 장치는 복호화부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450), 필터부(460) 및 메모리(470)를 포함하여 구성될 수 있다.
도 1의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
복호화부(410)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출함으로써 복호화하고자 하는 현재블록을 결정하고, 현재블록을 복원하기 위해 필요한 예측정보와 잔차신호에 대한 정보 등을 추출한다.
복호화부(410)는 SPS(Sequence Parameter Set) 또는 PPS(Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고, CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할정보를 추출함으로써 트리 구조를 이용하여 CTU를 분할한다.
예컨대, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 MTT의 분할과 관련된 제2 플래그(MTT_split_flag) 및 분할 방향(vertical / horizontal) 및/또는 분할 타입(binary / ternary) 정보를 추출하여 해당 리프 노드를 MTT 구조로 분할한다. 이를 통해 QT의 리프 노드 이하의 각 노드들을 BT 또는 TT 구조로 반복적으로(recursively) 분할한다.
또 다른 예로서, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 CU의 분할 여부를 지시하는 CU 분할 플래그(split_cu_flag)를 추출하고, 해당 블록이 분할된 경우, QT 분할 플래그(split_qt_flag)를 추출한다. 분할 타입이 QT가 아니고 MTT인 경우, MTT 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그(mtt_split_cu_vertical_flag) 및/또는 MTT 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그(mtt_split_cu_binary_flag)를 추가적으로 추출한다. 분할 과정에서 각 노드는 0번 이상의 반복적인 QT 분할 후에 0번 이상의 반복적인 MTT 분할이 발생할 수 있다. 예컨대, CTU는 바로 MTT 분할이 발생하거나, 반대로 다수 번의 QT 분할만 발생할 수도 있다.
다른 예로서, QTBT 구조를 사용하여 CTU를 분할하는 경우, QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT로 더 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할 방향 정보를 추출한다.
한편, 복호화부(410)는 트리 구조의 분할을 통해 복호화하고자 하는 현재블록을 결정하게 되면, 현재블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다. 예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(410)는 현재블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 예측 타입 정보가 인터 예측을 지시하는 경우, 복호화부(410)는 인터 예측정보에 대한 신택스 요소, 즉, 움직임벡터 및 그 움직임벡터가 참조하는 참조픽처를 나타내는 정보를 추출한다.
한편, 복호화부(410)는 잔차신호에 대한 정보로서 현재블록의 양자화된 변환계수들에 대한 정보를 추출한다.
역양자화부(420)는 양자화된 변환계수들을 역양자화하고, 역변환부(430)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재블록에 대한 잔차블록을 생성한다.
또한, 역변환부(430)는 변환블록의 일부 영역(서브블록)만 역변환하는 경우, 변환블록의 서브블록만을 변환하였음을 지시하는 플래그(cu_sbt_flag), 서브블록의 방향성(vertical/horizontal) 정보(cu_sbt_horizontal_flag) 및/또는 서브블록의 위치 정보(cu_sbt_pos_flag)를 추출하여, 해당 서브블록의 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환함으로써 잔차신호들을 복원하고, 역변환되지 않은 영역에 대해서는 잔차신호로 "0"값을 채움으로써 현재블록에 대한 최종 잔차블록을 생성한다.
예측부(440)는 인트라 예측부(442) 및 인터 예측부(444)를 포함할 수 있다. 인트라 예측부(442)는 현재블록의 예측 타입이 인트라 예측일 때 활성화되고, 인터 예측부(444)는 현재블록의 예측 타입이 인터 예측일 때 활성화된다.
인트라 예측부(442)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재블록 주변의 참조 픽셀들을 이용하여 현재블록을 예측한다.
인터 예측부(444)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소를 이용하여 현재블록의 움직임벡터와 그 움직임벡터가 참조하는 참조픽처를 결정하고, 움직임벡터와 참조픽처를 이용하여 현재블록을 예측한다.
가산기(450)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.
필터부(460)는 디블록킹 필터(462) 및 SAO 필터(464)를 포함할 수 있다. 디블록킹 필터(462)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해, 복원된 블록 간의 경계를 디블록킹 필터링한다. SAO 필터(464)는 손실 부호화(lossy coding)으로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해, 디블록킹 필터링 이후의 복원된 블록에 대해 추가적인 필터링을 수행한다. 디블록킹 필터(462) 및 SAO 필터(464)를 통해 필터링된 복원블록은 메모리(470)에 저장된다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
화면 간 예측 부호화/복호화 방법(인터 예측 방법)은 크게 skip 모드(스킵 모드), merge 모드(머지 모드) 및 AMVP(adaptive (or advanced) motion vector predictor) 모드로 구분될 수 있다.
머지 모드(종래 머지 모드)에서, 영상 부호화 장치는 주변 블록들의 움직임 정보를 이용하여 머지 후보 리스트를 구성하고, 가장 최적의 움직임 정보를 선별한 후, 선별된 움직임 정보를 가지는 머지 후보의 인덱스를 영상 복호화 장치로 시그널링한다. 영상 복호화 장치는 전송된 머지 후보 인덱스에 해당하는 머지 후보(주변 블록)를 머지 후보 리스트로부터 선별하고, 선별된 주변 블록의 움직임 정보를 그대로 현재 블록의 움직임 정보로 사용한다.
이러한 종래 머지 모드는 예측 방향에 대한 정보(prediction index), 참조 픽처에 대한 정보(reference picture index), 차분 움직임 벡터(motion vector difference) 및/또는 예측 움직임 벡터(motion vector predictor)와 같은 다수 개의 정보를 머지 후보 인덱스 하나로 표현함으로써 움직임 관련 데이터 양을 효과적으로 감소시키는 장점을 가진다.
다만, 종래 머지 모드는 선별된 주변 블록의 움직임 정보를 그대로 현재 블록의 움직임 정보로 사용하므로, 움직임 추정에 대한 정확성 측면에서 일정한 한계를 가진다고 할 수 있다.
본 발명은 선별된 주변 블록의 움직임 정보에 추가적인 정보(오프셋 정보)를 더 활용하여 현재 블록의 움직임을 추정하는 방법을 통해, 현재 블록의 예측에 대한 정확성을 향상시킴으로써 종래 머지 모드의 한계를 극복하기 위한 발명에 해당한다.
도 5에 도시된 바와 같이, 본 개시의 기술들을 구현할 수 있는 인터 예측부(444)는 선택부(510), 결정부(520), 생성부(530), 판단부(540) 및 리스트 구성부(550)를 포함하여 구성될 수 있다.
영상 부호화 장치로부터 비트스트림이 전송되면, 복호화부(410)는 전송된 비트스트림으로부터 머지 인덱스(merge_idx) 및 오프셋 정보(offset_idx 또는 mvd)를 추출(복호화)한다(S610). 머지 인덱스는 머지 후보 리스트에 포함된 하나 이상의 머지 후보들의 전부 또는 일부 중 어느 하나를 지시하는 정보로서, 이 머지 인덱스는 실시형태에 따라 머지 후보 플래그 형태(예: mmvd_cand_flag)로 구현될 수도 있다.
선택부(510)는 복호화된 머지 인덱스에 대응되는 머지 후보를 머지 후보 리스트로부터 선택한다(S620). 머지 후보 리스트는 현재 블록에 대한 하나 이상의 주변 블록들(머지 후보들)로 구성되며, 머지 후보 리스트를 구성하는 과정은 리스트 구성부(550)에 의해 수행된다.
결정부(520)는 '선택된 머지 후보의 움직임 벡터'와 복호화된 '오프셋 정보'를 이용하여 현재 블록의 움직임 벡터를 결정한다(S630). 구체적으로, 결정부(520)는 선택된 머지 후보의 움직임 벡터가 지시하는 위치를 중심 또는 원점으로 하여 오프셋 정보에 따라 이동된 위치를 현재 블록의 움직임 벡터로 결정한다(S630).
여기서, '선별된 머지 후보의 움직임 벡터'에 오프셋 정보를 적용하여 현재 블록의 움직임 벡터가 결정되므로, '선별된 머지 후보의 움직임 벡터'를 제1움직임 벡터 또는 초기 움직임 벡터 등으로 지칭할 수 있으며, 현재 블록의 움직임 벡터를 제2움직임 벡터 또는 최종 움직임 벡터 등으로 지칭할 수 있다.
이와 대응되는 관점에서, '선별된 머지 후보의 움직임 벡터가 지시하는 위치'를 제1위치 또는 초기 위치 등으로 지칭할 수 있으며, 오프셋 정보에 의해 최종적으로 지시되는 위치(현재 블록의 움직임 벡터에 의해 지시되는 위치)를 제2위치 또는 최종 위치 등으로 지칭할 수 있다.
한편, '오프셋 정보'는 제1움직임 벡터가 지시하는 제1위치를 중심으로 하여 상대적인 위치를 지시하는 정보로서, 이 상대적 위치는 제1움직임 벡터가 지시하는 제1위치에 비해 현재 블록을 정확하게 예측하는데 더욱 최적화된 위치에 해당한다.
오프셋 정보는 제1위치로부터 제2위치까지의 방향(direction)과 크기(magnitude)를 표현하는 다양한 형태로 구현될 수 있다. 예를 들어, 오프셋 정보는 미리 설정된 오프셋 벡터 후보들 중 어느 하나를 지시하는 오프셋 인덱스(offset_idx) 형태로 구현될 수 있다. 또 다른 예로, 오프셋 정보는 제2움직임 벡터와 제1움직임 벡터의 차이에 해당하는 차분 움직임 벡터(mvd) 형태로 구현될 수도 있다. 오프셋 정보의 구현 형태에 대한 상세한 내용은 후술하도록 한다.
현재 블록의 움직임 벡터(제2움직임 벡터)가 결정되면, 생성부(530)는 결정된 제2움직임 벡터가 지시하는 블록을 현재 블록의 예측 블록으로 생성한다(S640). 즉, 생성부(530)는 제2움직임 벡터가 지시하는 블록을 이용하여 현재 블록에 대한 예측을 수행한다. 제2움직임 벡터가 지시하는 블록은 선택된 머지 후보가 참조하는 참조 픽처에 자리한다.
제1움직임 벡터와 오프셋 정보를 이용하여 제2움직임 벡터를 결정하는 방법에 대한 예들이 도 7에 표현되어 있다. 도 7 (a)는 제1움직임 벡터가 단방향(L0) 예측인 경우에 제2움직임 벡터를 결정하는 예를 나타내며, 도 7 (b)는 제1움직임 벡터가 양방향(L0 및 L1) 예측인 경우에 제2움직임 벡터를 결정하는 예를 나타낸다.
도 7에서, L0 및 L1 각각은 참조 픽처 리스트를 나타내며, ref_idx #0는 L0에 포함된 참조 픽처 정보를 나타내고, ref_idx #1은 L1에 포함된 참조 픽처 정보를 나타낸다. current block은 현재 블록을 나타내고, current picture는 현재 블록이 포함된 현재 픽처를 나타낸다. 예측 방향(참조 픽처 리스트), 참조 픽처 정보 및 제1움직임 벡터(MV #0, MV #1) 등은 선택된 머지 후보의 움직임 정보로부터 파악될 수 있다.
도 7 (a)의 단방향 예측의 경우, 인터 예측부(444)는 제1위치(710)를 지시하는 제1움직임 벡터(MV #0)를 중심으로, 오프셋 정보(offset 0)가 지시하는 방향 및 크기에 따라 이동함으로써, 제2위치(720)를 지시하는 제2움직임 벡터(MV 0)를 결정할 수 있다.
도 7 (b)의 양방향 예측의 경우, 인터 예측부(444)는 선별된 머지 후보의 움직임 정보로부터 예측 방향(L0 및 L1), 참조 픽처 정보(ref_idx #0 및 ref_idx #1) 및 제1움직임 벡터(MV #0 및 MV #1)를 양방향 각각에 대해 얻을 수 있다.
L0 방향에 대해, 인터 예측부(444)는 제1위치(710-0)를 지시하는 제1움직임 벡터(MV #0)를 중심으로, 오프셋 정보(offset 0)가 지시하는 방향 및 크기에 따라 이동함으로써, 제2위치(720-0)를 지시하는 제2움직임 벡터(MV 0)를 결정할 수 있다.
L1 방향에 대해, 인터 예측부(444)는 제1위치(710-1)를 지시하는 제1움직임 벡터(MV #1)를 중심으로, 오프셋 정보(offset 0)가 지시하는 방향의 역방향 및 크기에 따라 이동함으로써 제2위치(720-1)를 지시하는 제2움직임 벡터(MV 1)를 결정할 수 있다. 여기서, -offset 0은 L0 방향의 오프셋 정보(offset 0)에 대한 역방향의 오프셋 정보를 의미한다. 실시형태에 따라, L0 방향에 대해 역방향의 오프셋 정보를 적용하고, L1 방향에 대해 (정방향의) 오프셋 정보를 적용할 수도 있다.
이와 같이, 본 발명이 오프셋 정보를 이용하여 움직임 추정을 수행하도록 구성되면, 주변 블록의 움직임 정보를 그대로 사용하는 종래 방법에 비해 더욱 정확한 움직임 추정을 구현할 수 있다.
앞서 설명된 바와 같이, 오프셋 정보는 제1위치로부터 제2위치까지의 방향(direction)과 크기(magnitude)를 표현하는 다양한 형태로 구현될 수 있다. 예를 들어, 오프셋 정보는 인덱스 형태 또는 벡터 형태 등으로 구현될 수 있다.
오프셋 정보가 인덱스 형태(오프셋 인덱스)로 구현되는 경우, 오프셋 인덱스는 미리 설정된 오프셋 벡터 후보들 중 어느 하나를 지시할 수 있다. 영상 부호화 장치는 미리 설정된 오프셋 벡터 후보들을 오프셋 형태로 인덱싱하고, 인덱싱된 결과들 중 어느 하나(오프셋 인덱스)를 영상 복호화 장치로 전송한다.
실시형태에 따라, 오프셋 인덱스는 오프셋 벡터 후보의 움직임 크기와 오프셋 벡터 후보의 움직임 방향을 지시할 수 있다. 예를 들어, 오프셋 인덱스는 오프셋 벡터 후보의 움직임 크기를 지시하는 오프셋 인덱스(예: mmvd_distance_idx) 및 오프셋 벡터 후보의 움직임 방향을 지시하는 오프셋 인덱스(예: mmvd_direction_idx)를 포함하여 구성될 수 있다.
영상 복호화 장치는 전송된 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 제1움직임 벡터에 가산함으로써 제2움직임 벡터를 결정할 수 있다. 이를 제1위치와 제2위치를 중심으로 다시 설명하면, 영상 복호화 장치는 제1위치로부터, 오프셋 인덱스에 의해 특정된 오프셋 벡터 후보가 지시하는 위치(제2위치)를 제2움직임 벡터로 결정할 수 있다.
도 8 및 도 9에는 오프셋 인덱스에 의해 지시될 수 있는 오프셋 벡터 후보들에 대한 다양한 예가 표현되어 있다. 도 8 (a) 및 도 8 (b)는 4-포인트(point)의 오프셋 움직임이 허용되는 경우에 오프셋 벡터 후보들에 대한 예에 해당하며, 도 8 (c) 및 도 8 (d)는 8-포인트 오프셋 움직임이 허용되는 경우에 오프셋 벡터 후보들에 대한 예에 해당한다. 도 8 (e) 및 도 8 (f)는 12-포인트 오프셋 움직임이 허용되는 경우에 오프셋 벡터 후보들에 대한 예에 해당하며, 도 9 (a) 내지 (e)는 16-포인트 오프셋 움직임 허용되는 경우에 오프셋 벡터 후보들에 대한 예에 해당한다.
도 8 및 도 9의 한 격자는 1 픽셀을 의미하고, 바탕과 윤곽선이 모두 검은색인 원은 제1움직임 벡터가 지시하는 제1위치를 나타내며, 검은색 윤곽선으로만 구성된 원은 제2움직임 벡터에 해당할 수 있는 오프셋 벡터 후보들을 나타내고, 검은색 윤곽선으로만 구성된 삼각형은 1/2 픽셀 위치에 자리하는 오프셋 벡터 후보를 나타낸다.
제1위치의 값을 (0,0)인 것으로 가정하면, 4-포인트의 오프셋 움직임이 허용되는 경우(도 8 (a) 및 도 8 (b)), 제1위치(0, 0)를 중심으로 (+1, 0), (-1, 0), (0, -1) 및 (0, +1) 각각에 자리하는 총 4개의 위치가 오프셋 벡터 후보에 해당할 수 있으며(도 8 (a)), 제1위치를 중심으로 (+1, 0), (+2, 0), (-1, 0) 및 (-2, 0) 각각에 자리하는 총 4개의 위치가 오프셋 벡터 후보에 해당할 수 있다(도 8 (b)).
8-포인트 오프셋 움직임이 허용되는 경우(도 8 (c) 및 도 8 (d)), 제1위치(0, 0)를 중심으로 (+1, 0), (-1, 0), (0, -1), (0, +1), (1, -1), (1, +1), (-1, -1) 및 (-1, +1) 각각에 자리하는 총 8개의 위치가 오프셋 벡터 후보에 해당할 수 있으며(도 8 (c)), 제1위치를 중심으로 (+1, 0), (+2, 0), (-1, 0), (-2, 0), (0, -1), (0, -2), (0, +1) 및 (0, +2) 각각에 자리하는 총 8개의 위치가 오프셋 벡터 후보에 해당할 수 있다(도 8 (d)).
12-포인트 오프셋 움직임이 허용되는 경우, 도 8 (e)에 표현된 바와 같이, 제1위치를 중심으로 (+1, 0), (+2, 0), (-1, 0), (-2, 0), (0, -1), (0, -2), (0, +1), (0, +2), (1, -1), (1, +1), (-1, -1) 및 (-1, +1) 각각에 자리하는 총 12개의 위치가 오프셋 벡터 후보에 해당할 수 있다.
또한, 도 8 (f)에 표현된 바와 같이, 제1위치를 중심으로 (+1, 0), (-1, 0), (0, -1), (0, +1), (+1, -1), (+1, +1), (-1, -1) 및 (-1, +1) 각각에 자리하는 8개의 위치들과, (+1/2, 0), (-1/2, 0), (0, -1/2) 및 (0, +1/2) 각각에 자리하는 4개의 위치들이 오프셋 벡터 후보에 해당할 수 있다.
도 9 (a)에 표현된 바와 같이 제1위치를 중심으로 (+2, 0), (-2, 0), (0, -2), (0, +2), (+2, -1), (+2, -2), (+1, -2), (-1, -2), (-2, -2), (-2, -1), (-2, +1), (-2, +2), (-1, +2), (+1, +2), (+2, +2) 및 (+2, +1) 각각에 자리하는 총 16개의 위치들이 오프셋 벡터 후보에 해당할 수 있다.
제1위치를 중심으로 한 상대적인 위치를 표현할 수 있다면, 오프셋 벡터 후보는 도 8 및 도 9에 표현된 예들 이외에도 더욱 다양한 형태를 가질 수 있다. 예를 들어, 오프셋 벡터 후보들이 제1위치를 중심으로 대칭적인 형태를 구성하도록 배열되는 것이 아닌, 비대칭적인 형태를 구성하도록 배열될 수도 있다.
영상 부호화 장치 및 영상 복호화 장치는 다양한 오프셋 벡터 후보들의 배열 형태들 중 실제 현재 블록의 예측에 적용될 배열 형태를 미리 정의할 수 있다. 실제 적용될 오프셋 벡터의 배열 형태는 상위 레벨(sequence-level, picture-level, tile group header, tile header, CTU header, CU header) 중 하나 이상의 위치에서 정의될 수도 있고, 블록 레벨에서 정의될 수도 있다.
오프셋 벡터 후보들의 배열 형태는 오프셋 벡터 후보의 개수, 오프셋 벡터 후보 각각의 움직임 크기(magnitude) 및 오프셋 벡터 후보 각각의 움직임 방향(direction)으로 특정될 수 있다. 따라서, 오프셋 벡터 후보의 개수, 오프셋 벡터 후보 각각의 움직임 크기 및 오프셋 벡터 후보 각각의 움직임 방향 중 하나 이상을 달리 구성하면, 서로 다른 배열 형태가 결정될 수 있다.
영상 부호화 장치는 다양한 배열 형태 중 어느 하나를 결정하는 식별정보를 비트스트림에 포함시켜 전송할 수 있으며, 영상 복호화 장치는 비트스트림에 포함된 식별정보를 이용하여 배열 형태 즉, 미리 설정된 오프셋 벡터 후보들을 결정할 수 있다.
이와 같이, 오프셋 정보가 오프셋 인덱스로 구현되는 경우에 제2움직임 벡터를 결정하는 방법을 도 7을 참조하여 설명하면 다음과 같다.
도 7 (a)의 단방향 예측의 경우, 인터 예측부(444)는 제1움직임 벡터(MV #0)를 중심으로 오프셋 인덱스가 지시하는 오프셋 벡터 후보(offset 0)에 따라 이동함으로써 또는 제1움직임 벡터(MV #0)에 오프셋 인덱스가 지시하는 오프셋 벡터 후보(offset 0)를 가산함으로써 제2움직임 벡터(MV 0)를 결정할 수 있다.
도 7 (b)의 양방향 예측의 경우, L0 방향에 대해, 인터 예측부(444)는 제1움직임 벡터(MV #0)를 중심으로 오프셋 인덱스가 지시하는 오프셋 벡터 후보(offset 0)에 따라 이동함으로써 또는 제1움직임 벡터(MV #0)에 오프셋 인덱스가 지시하는 오프셋 벡터 후보(offset 0)를 가산함으로써 제2움직임 벡터(MV 0)를 결정할 수 있다. L1 방향에 대해, 인터 예측부(444)는 제1움직임 벡터(MV #1)를 중심으로 오프셋 인덱스가 지시하는 오프셋 벡터 후보(-offset 0)에 따라 이동함으로써 또는 제1움직임 벡터(MV #1)에 오프셋 인덱스가 지시하는 오프셋 벡터 후보(-offset)를 가산함으로써 제2움직임 벡터(MV 1)를 결정할 수 있다.
실시 형태에 따라, 두 참조 픽처 ref_idx #0, ref_idx #1와 현재 픽처 사이의 시간축 거리를 기준으로 오프셋 벡터에 대한 스케일링(scaling)이 구현될 수 있다. 인터 예측부(444)는 ref_idx #0와 현재 픽처 사이의 시간축 거리(POC(picture order count) 차이) 및 ref_idx #1와 현재 픽처 사이의 시간축 거리(POC 차이)를 기준으로 오프셋 벡터 후보를 스케일링하고, 스케일링된 오프셋 벡터 후보를 제1움직임 벡터(MV #1)에 가산함으로써 제2움직임 벡터(MV 1)를 결정할 수 있다.
한편, 오프셋 정보가 오프셋 벡터로 구현되는 경우, 영상 부호화 장치는 제2위치 값과 제1위치 값 사이의 차분에 해당하는 벡터를 생성하여 전송할 수 있다. 이를 달리 표현하면, 영상 부호화 장치는 선택된 머지 인덱스가 지시하는 위치(제1위치)로부터 제2위치로의 direction 및 magnitude를 나타내는 오프셋 벡터를 전송할 수 있다.
영상 복호화 장치는 전송된 오프셋 벡터를 제1움직임 벡터에 적용하여 제2움직임 벡터를 결정할 수 있다. 오프셋 벡터는 제1위치를 원점으로 하여 제2위치를 나타내기 위한 정보에 해당하므로, 차분 움직임 벡터(motion vector difference, mvd)로 이해될 수 있다.
오프셋 벡터는 magnitude를 나타내는 신택스들과 direction을 나타내는 신택스로 표현될 수 있다. 또한, 오프셋 벡터는 움직임의 magnitude 및 direction을 나타내는 다른 다양한 형태의 신택스들로 표현될 수도 있다.
아래 표 1은 오프셋 벡터를, magnitude를 나타내는 신택스들과 direction을 나타내는 신택스로 표현하는 일 예를 보인다.
위 표 1에서, abs_mvd_greater0_flag, abs_mvd_greater1_flag 및 abs_mvd_minus2는 오프셋 벡터(mvd)의 magnitude를 나타내는 신택스들이며, mvd_sign_flag는 오프셋 벡터의 direction을 나타내는 신택스이다.
실시 형태에 따라, 오프셋 벡터에 mv resolution 정보를 추가적으로 이용하는 실시예도 구현될 수 있다. mv resolution은 오프셋 벡터의 magnitude resolution을 의미하며, 1/4 픽셀, 1 픽셀, 4 픽셀 중 하나에 해당할 수 있다.
mv resolution 정보는 영상 부호화 장치로부터 영상 복호화 장치로 추가적으로 시그널링되며, 오프셋 벡터의 magnitude resolution을 나타내는 다양한 형태(플래그, 인덱스 등)로 구성될 수 있다. 이하에서는, mv resolution이 플래그 형태로 구현되는 예에 대해 설명하도록 한다.
1/4 픽셀 여부를 지시하는 첫 번째 플래그가 on이면 mv resolution을 1/4 픽셀로 설정하고, 이 첫 번째 플래그가 off이면 두 번째 플래그를 추가적으로 분석하여 1 픽셀인지 또는 4 픽셀인지 판단한다.
이와 같은 판단 과정을 거쳐 mv resolution이 결정되면, 결정된 mv resolution 및 magnitude에 의해 실제 움직임이 정해진다. 예를 들어, 벡터의 magnitude가 '2'이고, mv resolution이 '4 픽셀'이라면, 실제 움직임은 '8 픽셀'에 해당한다. 또한, 벡터의 magnitude가 '4'이고, mv resolution이 '1/4 픽셀'이라면, 실제 움직임은 '1 픽셀'에 해당한다.
이와 같이, 오프셋 정보가 오프셋 벡터로 구현되는 경우에 제2움직임 벡터를 결정하는 방법을 도 7을 참조하여 설명하면 다음과 같다.
도 7 (a)의 단방향 예측의 경우, 인터 예측부(444)는 제1움직임 벡터(MV #0)를 중심으로 오프셋 벡터(offset 0)가 지시하는 magnitude 및 direction에 따라 이동함으로써 제2움직임 벡터(MV 0)를 결정할 수 있다.
도 7 (b)의 양방향 예측의 경우, L0 방향에 대해, 인터 예측부(444)는 제1움직임 벡터(MV #0)를 중심으로 오프셋 벡터(offset 0)가 지시하는 magnitude 및 direction에 따라 이동함으로써 제2움직임 벡터(MV 0)를 결정할 수 있다. L1 방향에 대해, 인터 예측부(444)는 제1움직임 벡터(MV #1)를 중심으로 오프셋 벡터(-offset 0)가 지시하는 magnitude 및 direction에 따라 이동함으로써 제2움직임 벡터(MV 1)를 결정할 수 있다.
실시 형태에 따라, 두 참조 픽처 ref_idx #0, ref_idx #1와 현재 픽처 사이의 시간축 거리를 기준으로 오프셋 벡터에 대한 스케일링(scaling)이 구현될 수 있다. 예를 들어, 현재 픽처와 L0의 참조 픽처 ref_idx #0 사이의 POC(picture order counter)가 1이고, 현재 픽처와 L1의 참조 픽처 ref_idx #1 사이의 POC가 2이면, L0 방향의 오프셋 벡터는 (x, y)가 될 수 있으며, L1 방향의 오프셋 벡터는 (-2*x, -2*y)가 될 수 있다.
영상 부호화 장치는 오프셋 정보에 더하여 예측 방향 정보를 별도로 전송하도록 구성될 수 있다. 영상 복호화 장치는 전송된 예측 방향 정보를 이용하여 현재 블록의 예측 방향을 판단하고, 이를 기반으로 각 방향에 대한 오프셋 정보들을 적용하거나 해당 방향에 대한 주변 블록들만으로 머지 후보 리스트를 구성할 수 있다.
이하에서는, 예측 방향 정보를 통해 판단된 예측 방향 각각에 대한 오프셋 정보들을 별도로 적용하는 실시예에 대해 도 10 및 도 11을 이용하여 먼저 설명한 후, 예측 방향 정보를 통해 판단된 예측 방향과 대응되는 주변 블록들만으로 머지 후보 리스트를 구성하는 실시예에 대해 도 12를 이용하여 후술하도록 한다.
도 10에 표현된 바와 같이, 복호화부(410)는 비트스트림으로부터 머지 인덱스(merge_idx)와 예측 방향 정보(pred_idx)를 복호화한다(S1010). 여기서, 예측 방향 정보는 선별된 머지 후보의 움직임 정보로부터 도출되는 정보가 아닌, 영상 부호화 장치로부터 별도로 전송되는 정보에 해당한다.
영상 부호화 장치로부터 merge_idx와 pred_idx가 전송되는 순서와 관련하여, merge_idx가 먼저 전송되고 pred_idx가 나중에 전송되는 경우 및 pred_idx가 먼저 전송되고 merge_idx가 나중에 전송되는 경우 모두 구현 가능하다.
판단부(540)는 복호화된 예측 방향 정보를 기초로 현재 블록의 예측 방향을 판단한다(S1020, S1040). 예측 방향 정보는 단방향 혹은 양방향을 구분하는 플래그이거나, L0, L1, 및 양방향 중 하나를 나타내는 값일 수도 있다.
예측 방향 정보가 L0, L1 및 양방향 중 하나를 나타내는 값인 경우, 판단부(540)는 도 10에 표현된 바와 같이 '예측 방향 정보가 L1 방향과 같지 않은지 여부를 판단하는 과정(S1020)'과 '예측 방향 정보가 L0 방향과 같지 않은지 여부를 판단하는 과정(S1040)'을 수행하여 현재 블록의 예측 방향을 판단한다.
S1020 과정을 통해 예측 방향 정보가 L1 방향과 같지 않다고 판단된 경우, 예측 방향 정보가 지시하는 예측 방향은 L0 방향에 해당하거나 양방향에 해당할 수 있다(적어도 L0 방향에 해당). 이 경우, 영상 부호화 장치는 L0 방향에 대한 오프셋 정보(offset 0)를 비트스트림에 포함시켜 전송하고, 영상 복호화 장치는 L0 방향에 대한 오프셋 정보(offset 0)를 비트스트림으로부터 복호화할 수 있다(S1030). 여기서, offset 0은 L0 방향에 대한 offset_idx 및 mvd 중 어느 하나에 해당할 수 있다.
S1040 과정을 통해 예측 방향 정보가 L0 방향과 같지 않다고 판단된 경우, 예측 방향 정보가 지시하는 예측 방향은 양방향에 해당한다. 이 경우, 영상 부호화 장치는 L1 방향에 대한 오프셋 정보(offset 1)를 비트스트림에 포함시켜 전송하고, 영상 복호화 장치는 L1 방향에 대한 오프셋 정보(offset 1)를 비트스트림으로부터 복호화할 수 있다(S1050). 여기서, offset 1은 L1 방향에 대한 offset_idx 및 mvd 중 어느 하나에 해당할 수 있다.
S1020 과정으로 돌아가, 예측 방향 정보가 L1 방향과 같다고 판단된 경우, 예측 방향 정보가 지시하는 예측 방향은 L1 단방향에 해당한다. 따라서, 영상 부호화 장치는 L1 방향에 대한 오프셋 정보만을 비트스트림에 포함시켜 전송하고, 영상 복호화 장치는 L1 방향에 대한 오프셋 정보를 비트스트림으로부터 복호화할 수 있다(S1050).
S1040 과정에서, 예측 방향 정보가 L0 방향과 같다고 판단된 경우, 예측 방향 정보가 지시하는 예측 방향은 L0 단방향에 해당한다. 따라서, 영상 부호화 장치는 L0 방향에 대한 오프셋 정보만을 비트스트림에 포함시켜 전송하고, 영상 부호화 장치는 L0 방향에 대한 오프셋 정보를 비트스트림으로부터 복호화할 수 있다.
S1010 내지 S1050 과정들을 통해 오프셋 정보들이 복호화되면, 머지 인덱스에 대응되는 머지 후보를 선택하는 과정, 제2움직임 벡터를 결정하는 과정들이 오프셋 정보가 해당하는 방향 각각에 대해 수행될 수 있다.
예를 들어, 오프셋 정보가 오프셋 인덱스(offset_idx) 형태로 구현되는 경우, L1 방향에 대한 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 L1 방향에 대한 제1움직임 벡터에 적용하여 L1 방향에 대한 제2움직임 벡터가 결정될 수 있다. 또한, L0 방향에 대한 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 L0 방향에 대한 제1움직임 벡터에 적용하여 L0 방향에 대한 제2움직임 벡터가 결정될 수 있다.
또 다른 예와 관련하여, 오프셋 정보가 오프셋 벡터(mvd) 형태로 구현되는 경우가 도 11에 표현되어 있다. 도 11에서, mvd
0은 L0 방향에 대한 오프셋 벡터를 나타내며, mvd
1은 L1 방향에 대한 오프셋 벡터를 나타낸다.
도 11에 표현된 바와 같이, L0 방향에 대한 제1움직임 벡터(MV #0)가 지시하는 제1위치(710-0)로부터 제2위치(720-0)까지, L0 방향에 대한 오프셋 벡터(mvd
0)에 따라 이동하여 L0 방향에 대한 제2움직임 벡터(MV 0)가 결정될 수 있다. 또한, L1 방향에 대한 제1위치(710-1)로부터 제2위치(720-1)까지, L1 방향에 대한 오프셋 벡터(mvd
1)에 따라 이동하여 L1 방향에 대한 제2움직임 벡터(MV 1)가 결정될 수 있다.
예측 방향 정보가 양방향 예측을 지시하여 제2움직임 벡터가 양방향 각각에 대해 결정된 경우, 생성부(530)는 두 개의 제2움직임 벡터들을 평균하거나 제2움직임 벡터들을 대상으로 가중 예측을 수행함으로써 현재 블록에 대한 예측 블록을 생성할 수 있다.
한편, 예측 방향 정보는 머지 후보 리스트를 구성하는 방법에 대한 기준으로 이용될 수도 있다. 예측 방향 정보를 이용하여 머지 후보 리스트를 구성하는 방법에 대한 일 실시예가 도 12에 표현되어 있다.
도 12에 표현된 바와 같이, 비트스트림으로부터 머지 인덱스(merge_idx)와 예측 방향 정보(pred_idx)를 복호화하는 과정(S1210) 및 복호화된 예측 방향 정보가 L0 방향과 같지 않은지 여부를 판단하는 과정(S1220)이 수행될 수 있다.
영상 부호화 장치로부터 merge_idx와 pred_idx가 전송되는 순서와 관련하여, merge_idx가 먼저 전송되고 pred_idx가 나중에 전송되는 경우 및 pred_idx가 먼저 전송되고 merge_idx가 나중에 전송되는 경우 모두 구현 가능하다.
예측 방향 정보가 L0 방향과 같다고 판단되는 경우, 현재 블록의 예측 방향은 L0 단방향에 해당한다. 따라서, 리스트 구성부(550)는 현재 블록의 주변 블록들 중 L0의 예측 방향을 가지는 하나 이상의 주변 블록들로 머지 후보 리스트를 구성한다(S1230). 즉, 리스트 구성부(550)는 L0의 예측 방향을 가지는 주변 블록들이 머지 후보로 포함되도록 머지 후보 리스트를 구성한다.
이와 달리, 예측 방향 정보가 L0 방향과 같지 않다고 판단된 경우, 현재 블록의 예측 방향은 L1 단방향에 해당하거나 양방향에 해당할 수 있다. 따라서, 예측 방향 정보가 L1 방향과 같지 않은지 여부를 판단하는 과정(S1240)이 더 수행된다.
예측 방향 정보가 L1 방향과 같다고 판단되는 경우, 현재 블록의 예측 방향은 L1 단방향에 해당한다. 따라서, 리스트 구성부(550)는 L1의 예측 방향을 가지는 주변 블록들이 머지 후보로 포함되도록 머지 후보 리스트를 구성한다(S1250).
이와 달리, 예측 방향 정보가 L1 방향과 같다고 판단되는 경우, 현재 블록의 예측 방향은 양방향에 해당한다. 따라서, 리스트 구성부(550)는 양방향의 예측 방향을 가지는 주변 블록들이 머지 후보로 포함되도록 머지 후보 리스트를 구성한다(S1260).
이와 같이, 머지 후보 리스트를 구성하는 기준으로 예측 방향 정보를 이용하는 경우, 예측 방향 정보와 대응되는 예측 방향을 가지는 주변 블록들만을 머지 후보로 포함시켜 머지 후보 리스트를 구성할 수 있다. 따라서, 머지 후보 리스트를 구성하는 방법이 현재 블록의 실제 예측 방향에 더욱 적응적으로 구현될 수 있다.
이상에서 설명된 방법들의 활성화/비활성화는 상위 레벨(sequence-level, picture-level, tile group header, tile header, CTU header, CU header) 중 하나 이상의 위치에서 정의되는 신택스 요소(예를 들어, sps_mmvd_enabled_flag) 값으로 관리될 수 있다. 또한, 이상에서 설명된 방법들은 종래 머지 모드(regular merge)를 변경한 모드로 구현되거나, 종래 머지 모드와는 별도의 새로운 모드(제안된 모드, mmvd: merge with mvd)로 구현될 수도 있다.
종래 머지 모드를 변경한 모드로 구현되는 경우에는 본 발명에서 제안하는 다양한 방법들을 위한 별도의 신택스가 요구되지 않는다. 그러나, 종래 머지 모드와는 별도의 새로운 모드로 구현되는 경우에는 이 다양한 방법들을 위한 별도의 신택스가 요구된다.
도 13은 종래 머지 모드와 제안된 모드가 동일한 그룹으로 구분된 경우에 대한 신택스 구조를 나타내며, 도 14는 종래 머지 모드와 제안된 모드가 별도의 그룹으로 구분된 경우에 대한 신택스 구조를 나타낸다.
먼저, 도 13에 표현된 바와 같이, 머지 플래그(regular_merge_flag)를 파싱 및 복호화하는 과정(S1310)과 이 머지 플래그를 판단하는 과정(S1320)이 수행된다. 여기서, 머지 플래그는 현재 블록이 종래 머지 모드와 제안된 모드가 포함된 그룹으로 예측되었는지 여부를 나타내는 정보에 해당한다.
머지 플래그에 대한 판단 결과, 현재 블록의 예측 모드가 종래 머지 모드 또는 제안된 모드 중 어느 하나에 해당하는 경우, 제안된 모드로 예측되었는지 여부를 나타내는 플래그(proposed_flag, mmvd_merge_flag)를 파싱 및 복호화하는 과정(S1330)과 mmvd_merge_flag를 판단하는 과정(S1340)이 수행된다.
그 결과. 현재 블록이 종래 머지 모드로 예측된 경우(mmvd_merge_flag=0), 현재 블록에 대한 종래 머지 모드(merge mode) 예측이 수행되며, 현재 블록이 제안된 모드로 예측된 경우(mmvd_merge_flag=1), 현재 블록에 대한 제안된 모드(proposed mode, mmvd mode) 예측이 수행된다.
S1320 단계로 돌아가, 머지 플래그에 대한 판단 결과, 현재 블록이 종래 머지 모드 또는 제안된 모드에 해당하지 않는 경우, 현재 블록의 인터 예측과 인트라 예측을 구분하는 플래그(pred_mode_flag)를 파싱 및 복호화하는 과정(S1350)과 해당 플래그를 판단하는 과정(S1360)이 수행된다.
현재 블록이 인터 모드(AMVP mode)로 예측된 경우에는 현재 블록에 대한 인터 모드(AMVP mode) 예측이 수행되며, 현재 블록이 인트라 모드로 예측된 경우에는 현재 블록에 대한 인트라 모드 예측이 수행된다.
다음으로, 종래 머지 모드와 제안된 모드가 별도의 그룹으로 구분된 경우에 대한 신택스 구조를 설명하면 다음과 같다.
도 14에 표현된 바와 같이, 머지 플래그(regular_merge_flag)를 파싱 및 복호화하는 과정(S1410)과 머지 플래그를 판단하는 과정(S1420)이 전술된 바와 동일하게 수행된다. 도 14의 실시예는 종래 머지 모드와 제안된 모드가 서로 다른 그룹으로 구분된 경우에 해당하므로, 도 14의 머지 플래그는 현재 블록이 종래 머지 모드로 예측되었는지 여부를 나타내는 정보에 해당한다.
머지 플래그에 대한 판단 결과, 현재 블록이 종래 머지 모드로 예측된 것으로 판단된 경우(regular_merge_flag=1), 해당 현재 블록에 대한 종래 머지 모드 예측(merge mode)이 수행된다. 이와 달리, 현재 블록이 종래 머지 모드로 예측되지 않은 것으로 판단된 경우(regular_merge_flag=0), 현재 블록이 제안된 모드로 예측되었는지 여부를 나타내는 플래그(mmvd_flag)를 파싱 및 복호화하는 과정(S1430)과 mmvd_flag를 판단하는 과정(S1440)이 수행된다.
현재 블록이 제안된 모드로 예측된 경우, 현재 블록에 대한 제안된 모드의 예측(mmvd mode)이 수행된다. 이와 달리, 현재 블록이 제안된 모드로 예측되지 않은 경우, pred_mode_flag를 파싱 및 복호화하는 과정(S1450)과 해당 플래그를 분석하는 과정(S1460)을 통해 AMVP 모드 또는 인트라 모드의 예측이 수행된다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은, 본 명세서에 그 전체가 참고로서 포함되는, 2018년 11월 14일에 한국에 출원한 특허출원번호 제10-2018-0140071호 및, 2019년 6월 10일에 한국에 출원한 특허출원번호 제10-2019-0067741호에 대해 우선권을 주장한다.
Claims (20)
- 비트스트림으로부터, 머지 후보 플래그(merge candidate flag) 및 오프셋(offset) 정보를 추출하는 단계;현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 후보 플래그에 대응되는 머지 후보를 선택하는 단계;상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계; 및상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제1항에 있어서,상기 오프셋 정보는,미리 설정된 오프셋 벡터 후보들 중 어느 하나를 지시하는 오프셋 인덱스이며,상기 결정하는 단계는,상기 머지 후보의 움직임 벡터에 상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 가산하여 상기 현재 블록의 움직임벡터를 결정하는 것을 특징으로 하는 인터 예측 방법.
- 제2항에 있어서,상기 오프셋 인덱스는,상기 오프셋 벡터 후보의 움직임 크기를 지시하는 오프셋 인덱스 및 상기 오프셋 벡터 후보의 움직임 방향을 지시하는 오프셋 인덱스를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제2항에 있어서,상기 머지 후보는,L0 및 L1의 양방향 예측을 지시하고,상기 결정하는 단계는,상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 상기 머지 후보의 특정 예측 방향에 대한 움직임벡터에 가산하여, 상기 특정 예측 방향에 대한 상기 현재 블록의 움직임벡터를 결정하고,스케일링된 오프셋 벡터 후보를 상기 머지 후보의 다른 예측 방향에 대한 움직임벡터에 가산하여, 상기 다른 예측 방향에 대한 상기 현재 블록의 움직임벡터를 결정하며,상기 스케일링된 오프셋 벡터 후보는,상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보가, 상기 특정 예측 방향의 참조 픽처와 상기 현재 픽처 사이의 시간축 거리 및 상기 다른 예측 방향의 참조 픽처와 상기 현재 픽처 사이의 시간축 거리를 기준으로 스케일링된 것을 특징으로 하는 인터 예측 방법.
- 제1항에 있어서,상기 추출하는 단계는,상기 비트스트림에 포함된 인에이블(enabled) 정보가 활성을 지시하는 경우에 수행되며,상기 인에이블 정보는,상기 비트스트림의 시퀀스 레벨 헤더(sequence-level header)에 포함되는 것을 특징으로 하는 인터 예측 방법.
- 제1항에 있어서,상기 추출하는 단계는,상기 비트스트림에 포함된 머지 플래그가 상기 현재 블록이 머지 모드 또는 mmvd(merge with mvd) 모드로 예측됨을 지시하고, 상기 비트스트림에 포함된 mmvd 플래그가 상기 현재 블록이 상기 mmvd 모드로 예측됨을 지시하는 경우에 수행되며,상기 mmvd 플래그는,상기 머지 플래그가 상기 현재 블록이 상기 머지 모드 또는 상기 mmvd 모드로 예측됨을 지시하는 경우에 상기 비트스트림에 포함되는 것을 특징으로 하는 인터 예측 방법.
- 제1항에 있어서,상기 오프셋 정보는,상기 머지 후보의 움직임 벡터가 지시하는 위치를 원점으로 하여, 상기 현재 블록의 움직임 벡터가 지시하는 위치를 나타내기 위한 오프셋 벡터인 것을 특징으로 하는 인터 예측 방법.
- 제1항에 있어서,상기 비트스트림에 포함된 예측 방향 정보를 기초로 상기 현재 블록의 예측 방향을 판단하는 단계; 및상기 주변 블록들 중 상기 판단된 예측 방향에 대응되는 예측 방향을 가지는 주변 블록으로 상기 머지 후보 리스트를 구성하는 단계를 더 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제1항에 있어서,상기 비트스트림에 포함된 예측 방향 정보를 기초로 상기 현재 블록의 예측 방향을 판단하는 단계를 더 포함하고,상기 추출하는 단계는,상기 판단된 예측 방향 각각에 대한 오프셋 정보를 추출하는 것을 특징으로 하는 인터 예측 방법.
- 비트스트림으로부터, 머지 후보 플래그(merge candidate flag) 및 오프셋(offset) 정보를 추출하는 복호화부;현재 블록의 주변 블록들을 머지 후보로 포함하는 머지 후보 리스트(merge candidate list)로부터, 상기 추출된 머지 후보 플래그에 대응되는 머지 후보를 선택하는 선택부;상기 선택된 머지 후보의 움직임 벡터에 상기 오프셋 정보를 적용하여 상기 현재 블록의 움직임 벡터를 결정하는 결정부; 및상기 선택된 머지 후보가 참조하는 참조 픽처 내에서 상기 현재 블록의 움직임 벡터가 지시하는 블록을 상기 현재 블록의 예측 블록으로 생성하는 생성부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
- 제10항에 있어서,상기 오프셋 정보는,미리 설정된 오프셋 벡터 후보들 중 어느 하나를 지시하는 오프셋 인덱스이며,상기 결정부는,상기 머지 후보의 움직임 벡터에 상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 가산하여 상기 현재 블록의 움직임 벡터를 결정하는 것을 특징으로 하는 영상 복호화 장치.
- 제11항에 있어서,상기 오프셋 인덱스는,상기 오프셋 벡터 후보의 움직임 크기를 지시하는 오프셋 인덱스 및 상기 오프셋 벡터 후보의 움직임 방향을 지시하는 오프셋 인덱스를 포함하는 것을 특징으로 하는 영상 복호화 장치.
- 제11항에 있어서,상기 머지 후보는,L0 및 L1의 양방향 예측을 지시하고,상기 결정부는,상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보를 상기 머지 후보의 특정 예측 방향에 대한 움직임벡터에 가산하여, 상기 특정 예측 방향에 대한 상기 현재 블록의 움직임벡터를 결정하고,스케일링된 오프셋 벡터 후보를 상기 머지 후보의 다른 예측 방향에 대한 움직임벡터에 가산하여, 상기 다른 예측 방향에 대한 상기 현재 블록의 움직임벡터를 결정하며,상기 스케일링된 오프셋 벡터 후보는,상기 오프셋 인덱스가 지시하는 오프셋 벡터 후보가, 상기 특정 예측 방향의 참조 픽처와 상기 현재 픽처 사이의 시간축 거리 및 상기 다른 예측 방향의 참조 픽처와 상기 현재 픽처 사이의 시간축 거리를 기준으로 스케일링된 것을 특징으로 하는 영상 복호화 장치.
- 제10항에 있어서,상기 추출부는,상기 비트스트림에 포함된 인에이블(enabled) 정보가 활성을 지시하는 경우에 상기 머지 후보 플래그 및 상기 오프셋 정보를 추출하며,상기 인에이블 정보는,상기 비트스트림의 시퀀스 레벨 헤더(sequence-level header)에 포함되는 것을 특징으로 하는 영상 복호화 장치.
- 제10항에 있어서,상기 추출부는,상기 비트스트림에 포함된 머지 플래그가 상기 현재 블록이 머지 모드 또는 mmvd(merge with mvd) 모드로 예측됨을 지시하고, 상기 비트스트림에 포함된 mmvd 플래그가 상기 현재 블록이 상기 mmvd 모드로 예측됨을 지시하는 경우에 상기 머지 후보 플래그 및 상기 오프셋 정보를 추출하며,상기 mmvd 플래그는,상기 머지 플래그가 상기 현재 블록이 머지 모드로 예측됨을 지시하는 경우에 상기 비트스트림에 포함되는 것을 특징으로 하는 영상 복호화 장치.
- 제10항에 있어서,상기 오프셋 정보는,상기 머지 후보의 움직임 벡터가 지시하는 위치를 원점으로 하여, 상기 현재 블록의 움직임 벡터가 지시하는 위치를 나타내기 위한 오프셋 벡터인 것을 특징으로 하는 영상 복호화 장치.
- 제10항에 있어서,상기 비트스트림에 포함된 예측 방향 정보를 기초로 상기 현재 블록의 예측 방향을 판단하는 판단부; 및상기 주변 블록들 중 상기 판단된 예측 방향에 대응되는 예측 방향을 가지는 주변 블록으로 상기 머지 후보 리스트를 구성하는 리스트 구성부를 더 포함하는 것을 특징으로 하는 영상 복호화 장치.
- 제10항에 있어서,상기 비트스트림에 포함된 예측 방향 정보를 기초로 상기 현재 블록의 예측 방향을 판단하는 판단부를 더 포함하고,상기 복호화부는,상기 판단된 예측 방향 각각에 대한 오프셋 정보를 추출하는 것을 특징으로 하는 영상 복호화 장치.
- 움직임 보상을 통해, 현재블록의 예측블록을 생성하는 단계;상기 현재블록과 상기 예측블록 간 변위에 해당하는 움직임 벡터를 유도하는 단계; 및상기 유도된 움직임 벡터에 대한 정보를 부호화하여 시그널링하는 단계를 포함하고,상기 유도된 움직임 벡터에 대한 정보는,머지 후보 플래그(merge candidate flag) 및, 머지 후보 리스트(merge candidate list)에 포함된 머지 후보들 중에서 상기 머지 후보 플래그에 대응되는 머지 후보의 움직임 벡터가 지시하는 위치로부터 상기 유도된 움직임 벡터가 지시하는 위치를 나타내는 오프셋(offset) 정보를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 움직임 보상을 통해 현재블록의 예측블록을 생성하고, 상기 현재블록과 상기 예측블록 간 변위에 해당하는 움직임 벡터를 유도하는 예측부; 및상기 유도된 움직임 벡터에 대한 정보를 부호화하여 시그널링하는 부호화부를 포함하고,상기 유도된 움직임 벡터에 대한 정보는,머지 후보 플래그(merge candidate flag) 및, 머지 후보 리스트(merge candidate list)에 포함된 머지 후보들 중에서 상기 머지 후보 플래그에 대응되는 머지 후보의 움직임 벡터가 지시하는 위치로부터 상기 유도된 움직임 벡터가 지시하는 위치를 나타내는 오프셋(offset) 정보를 포함하는 것을 특징으로 하는 영상 부호화 장치.
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201980088133.XA CN113273204B (zh) | 2018-11-14 | 2019-11-14 | 帧间预测方法和使用该方法的图片解码装置 |
CN202410510350.6A CN118200600A (zh) | 2018-11-14 | 2019-11-14 | 帧间预测方法和发送比特流的方法 |
CN202410510342.1A CN118200599A (zh) | 2018-11-14 | 2019-11-14 | 帧间预测设备和发送比特流的设备 |
CN202410510341.7A CN118200598A (zh) | 2018-11-14 | 2019-11-14 | 帧间预测方法和发送比特流的方法 |
CN202410510340.2A CN118200597A (zh) | 2018-11-14 | 2019-11-14 | 帧间预测设备和发送比特流的设备 |
US17/320,419 US11671584B2 (en) | 2018-11-14 | 2021-05-14 | Inter-prediction method and video decoding apparatus using the same |
US18/139,384 US11962764B2 (en) | 2018-11-14 | 2023-04-26 | Inter-prediction method and video decoding apparatus using the same |
US18/613,475 US20240236303A1 (en) | 2018-11-14 | 2024-03-22 | Inter-prediction method and video decoding apparatus using the same |
US18/613,484 US20240236304A1 (en) | 2018-11-14 | 2024-03-22 | Inter-prediction method and video decoding apparatus using the same |
US18/613,467 US20240236302A1 (en) | 2018-11-14 | 2024-03-22 | Inter-prediction method and video decoding apparatus using the same |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180140071 | 2018-11-14 | ||
KR1020190067741A KR20200056272A (ko) | 2018-11-14 | 2019-06-10 | 인터 예측 방법 및 이를 이용한 영상 복호화 장치 |
KR10-2019-0067741 | 2019-06-10 | ||
KR10-2018-0140071 | 2019-11-14 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/320,419 Continuation US11671584B2 (en) | 2018-11-14 | 2021-05-14 | Inter-prediction method and video decoding apparatus using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020101392A1 true WO2020101392A1 (ko) | 2020-05-22 |
Family
ID=70731188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/015548 WO2020101392A1 (ko) | 2018-11-14 | 2019-11-14 | 인터 예측 방법 및 이를 이용한 영상 복호화 장치 |
Country Status (3)
Country | Link |
---|---|
US (4) | US11962764B2 (ko) |
CN (4) | CN118200598A (ko) |
WO (1) | WO2020101392A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110312130B (zh) * | 2019-06-25 | 2021-10-15 | 浙江大华技术股份有限公司 | 基于三角模式的帧间预测、视频编码方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015137783A1 (ko) * | 2014-03-14 | 2015-09-17 | 삼성전자 주식회사 | 인터 레이어 비디오의 복호화 및 부호화를 위한 머지 후보 리스트 구성 방법 및 장치 |
WO2016068674A1 (ko) * | 2014-10-31 | 2016-05-06 | 삼성전자 주식회사 | 움직임 벡터 부복호화 방법 및 장치 |
WO2017183751A1 (ko) * | 2016-04-22 | 2017-10-26 | 엘지전자(주) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
KR20180061060A (ko) * | 2016-11-28 | 2018-06-07 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130114717A1 (en) | 2011-11-07 | 2013-05-09 | Qualcomm Incorporated | Generating additional merge candidates |
CN116614638A (zh) | 2016-07-12 | 2023-08-18 | 韩国电子通信研究院 | 图像编码/解码方法和用于所述方法的记录介质 |
CN114205617B (zh) * | 2018-02-28 | 2024-03-19 | 三星电子株式会社 | 编码方法及其装置以及解码方法及其装置 |
WO2019199127A1 (ko) | 2018-04-12 | 2019-10-17 | 삼성전자 주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
CN112602322B (zh) | 2018-08-28 | 2023-08-22 | 鸿颖创新有限公司 | 编码视频数据的装置和方法 |
US11070796B2 (en) | 2018-09-28 | 2021-07-20 | Qualcomm Incorporated | Ultimate motion vector expression based pruning for video coding |
US10999589B2 (en) | 2018-10-04 | 2021-05-04 | Tencent America LLC | Method and apparatus for video coding |
WO2020084461A1 (en) | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Restrictions on decoder side motion vector derivation based on coding information |
-
2019
- 2019-11-14 CN CN202410510341.7A patent/CN118200598A/zh active Pending
- 2019-11-14 WO PCT/KR2019/015548 patent/WO2020101392A1/ko active Application Filing
- 2019-11-14 CN CN202410510350.6A patent/CN118200600A/zh active Pending
- 2019-11-14 CN CN202410510340.2A patent/CN118200597A/zh active Pending
- 2019-11-14 CN CN202410510342.1A patent/CN118200599A/zh active Pending
-
2023
- 2023-04-26 US US18/139,384 patent/US11962764B2/en active Active
-
2024
- 2024-03-22 US US18/613,484 patent/US20240236304A1/en active Pending
- 2024-03-22 US US18/613,467 patent/US20240236302A1/en active Pending
- 2024-03-22 US US18/613,475 patent/US20240236303A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015137783A1 (ko) * | 2014-03-14 | 2015-09-17 | 삼성전자 주식회사 | 인터 레이어 비디오의 복호화 및 부호화를 위한 머지 후보 리스트 구성 방법 및 장치 |
WO2016068674A1 (ko) * | 2014-10-31 | 2016-05-06 | 삼성전자 주식회사 | 움직임 벡터 부복호화 방법 및 장치 |
WO2017183751A1 (ko) * | 2016-04-22 | 2017-10-26 | 엘지전자(주) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
KR20180061060A (ko) * | 2016-11-28 | 2018-06-07 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
Non-Patent Citations (1)
Title |
---|
YANG, HAITAO ET AL.: "CE4 summary report: Inter prediction and motion vector coding", JOIN VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11. JVET-K0024_R3. 11TH MEETING, 18 July 2018 (2018-07-18), Ljubljana, SI, pages 1 - 59, XP030199502, Retrieved from the Internet <URL:http://phenix.int-evry.fr/jvet> [retrieved on 20200106] * |
Also Published As
Publication number | Publication date |
---|---|
CN118200599A (zh) | 2024-06-14 |
US20240236303A1 (en) | 2024-07-11 |
US20240236304A1 (en) | 2024-07-11 |
US20240236302A1 (en) | 2024-07-11 |
CN118200598A (zh) | 2024-06-14 |
CN118200597A (zh) | 2024-06-14 |
US20230262213A1 (en) | 2023-08-17 |
CN118200600A (zh) | 2024-06-14 |
US11962764B2 (en) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020222484A1 (ko) | 인트라 예측 기반 비디오 신호 처리 방법 및 장치 | |
WO2017057953A1 (ko) | 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치 | |
WO2017069419A1 (ko) | 비디오 코딩 시스템에서 인트라 예측 방법 및 장치 | |
WO2013069932A1 (ko) | 영상의 부호화 방법 및 장치, 및 복호화 방법 및 장치 | |
WO2016204360A1 (ko) | 영상 코딩 시스템에서 조도 보상에 기반한 블록 예측 방법 및 장치 | |
WO2020185050A1 (ko) | 인트라 블록 복사를 이용하는 영상 부호화 및 복호화 | |
WO2017159901A1 (ko) | 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치 | |
WO2021025478A1 (ko) | 동영상 데이터의 인트라 예측 코딩을 위한 방법 및 장치 | |
WO2019240425A1 (ko) | 인터 예측 방법 및 영상 복호화 장치 | |
WO2020242181A1 (ko) | 인트라 모드 후보 구성 방법 및 영상 복호화 장치 | |
WO2021060804A1 (ko) | 크로마블록의 잔차블록 복원 방법 및 복호화 장치 | |
WO2022114742A1 (ko) | 비디오 부호화 및 복호화를 위한 장치 및 방법 | |
WO2020101392A1 (ko) | 인터 예측 방법 및 이를 이용한 영상 복호화 장치 | |
WO2023038447A1 (ko) | 비디오 부호화/복호화 방법 및 장치 | |
WO2023014164A1 (ko) | 비디오 부호화/복호화 방법 및 장치 | |
WO2022030980A1 (ko) | 비디오 데이터의 패치북 기반 부호화 및 복호화를 위한 방법 및 장치 | |
WO2022177380A1 (ko) | 인터 예측 기반의 비디오 부호화 및 복호화 | |
WO2022045738A1 (ko) | 딥러닝 기반 인루프 필터를 이용하는 영상 부호화 및 복호화 | |
WO2020009460A1 (ko) | 잔차신호 재배열 방법 및 영상 복호화 장치 | |
WO2024123035A1 (ko) | 기하학적 분할모드를 이용한 비디오 부호화/복호화 방법 및 장치 | |
WO2022260339A1 (ko) | 비디오 부호화/복호화 방법 및 장치 | |
WO2022177375A1 (ko) | 인트라 예측 신호와 인터 예측 신호의 가중 합을 이용하여 예측 블록을 생성하는 방법 및 이를 이용한 장치 | |
WO2024112126A1 (ko) | 코딩트리유닛의 분할구조를 예측하고 수정하는 비디오 부호화/복호화 방법 및 장치 | |
WO2023182673A1 (ko) | 컨텍스트 모델 초기화를 사용하는 비디오 코딩을 위한 방법 및 장치 | |
WO2022260341A1 (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: 19883519 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: 19883519 Country of ref document: EP Kind code of ref document: A1 |