WO2017048008A1 - 영상 코딩 시스템에서 인터 예측 방법 및 장치 - Google Patents
영상 코딩 시스템에서 인터 예측 방법 및 장치 Download PDFInfo
- Publication number
- WO2017048008A1 WO2017048008A1 PCT/KR2016/010240 KR2016010240W WO2017048008A1 WO 2017048008 A1 WO2017048008 A1 WO 2017048008A1 KR 2016010240 W KR2016010240 W KR 2016010240W WO 2017048008 A1 WO2017048008 A1 WO 2017048008A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- motion
- vector
- current block
- candidate
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—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 picture, frame or field
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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/55—Motion estimation with spatial constraints, e.g. at image or region borders
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates to image coding technology, and more particularly, to an inter prediction method and apparatus in an image coding system.
- the demand for high resolution and high quality images such as high definition (HD) images and ultra high definition (UHD) images is increasing in various fields.
- the higher the resolution and the higher quality of the image data the more information or bit rate is transmitted than the existing image data. Therefore, the image data can be transmitted by using a medium such as a conventional wired / wireless broadband line or by using a conventional storage medium. In the case of storage, the transmission cost and the storage cost are increased.
- a high efficiency image compression technique is required to effectively transmit, store, and reproduce high resolution, high quality image information.
- An object of the present invention is to provide a method and apparatus for improving image coding efficiency.
- Another object of the present invention is to provide a method and apparatus for improving the efficiency of inter prediction.
- Another technical problem of the present invention is to provide an efficient motion vector derivation method and apparatus based on the modified inter prediction mode.
- Another technical problem of the present invention is to provide a matching method and apparatus for deriving a more accurate motion vector among motion vector candidates.
- Another technical problem of the present invention is to provide a method and apparatus for selecting a motion vector candidate derived based on a neighboring block to derive a more accurate motion vector while reducing computational complexity.
- an image decoding method performed by a decoding apparatus.
- the method may include deriving a motion information candidate list of the current block based on neighboring blocks of the current block, selecting a specific candidate based on a comparison of candidates in the motion information candidate list, and based on the specific candidate. Deriving a motion vector of the current block, and generating a predictive sample of the current block based on the motion vector of the current block.
- a decoding apparatus for performing inter prediction.
- the decoding apparatus derives a motion information candidate list of the current block based on neighboring blocks of the current block, selects a specific candidate based on a comparison of candidates in the motion information candidate list, and based on the specific candidate And a prediction unit for deriving a motion vector of the block and generating a prediction sample of the current block based on the motion vector of the current block.
- a video encoding method performed by an encoding apparatus may include deriving a motion information candidate list of the current block based on neighboring blocks of the current block, selecting a specific candidate based on a comparison of candidates in the motion information candidate list, and based on the specific candidate. Deriving a motion vector of the current block, generating a prediction sample of the current block based on the motion vector of the current block, and encoding and outputting prediction mode information indicating the inter prediction mode. It is characterized by.
- a video encoding apparatus derives a motion information candidate list of the current block based on neighboring blocks of the current block, selects a specific candidate based on a comparison of candidates in the motion information candidate list, and based on the specific candidate
- the data amount of prediction mode information indicating the inter prediction mode can be reduced, thereby improving the overall coding efficiency.
- the process of searching for the motion vector of the current block by selecting the motion vector candidate of the current block can be reduced, thereby reducing the computational complexity and improving the overall coding efficiency.
- FIG. 1 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
- FIG. 2 is a block diagram schematically illustrating a video decoding apparatus according to an embodiment of the present invention.
- 3 exemplarily shows an encoding method of a current block to which a modified inter prediction mode is applied.
- FIG. 4 exemplarily illustrates a decoding method of a current block to which a modified inter prediction mode is applied.
- FIG. 5 illustrates an example of comparing a motion vector through a bilateral matching method.
- FIG. 6 illustrates an example of comparing a motion vector through a template matching method.
- FIG. 7 illustrates an example of a method of deriving motion vector candidates.
- FIG. 8 illustrates an example of a method of deriving a motion vector of a current block based on motion information of a neighboring block.
- FIG. 9 illustrates an example of a method of deriving motion vector candidates.
- FIG. 10 illustrates an example of a method of deriving a motion vector of a current block based on motion information of a neighboring block.
- 11 illustrates an example of a method of deriving motion vector candidates.
- FIG. 12 illustrates an example of a method of deriving a motion vector of a current block based on motion information of a neighboring block.
- FIG. 13 schematically illustrates a video encoding method by an encoding device according to the present invention.
- FIG. 14 schematically illustrates a video decoding method by a decoding apparatus according to the present invention.
- each of the components in the drawings described in the present invention are shown independently for the convenience of description of the different characteristic functions in the video encoding apparatus / decoding apparatus, each component is a separate hardware or separate software It does not mean that it is implemented.
- two or more of each configuration may be combined to form one configuration, or one configuration may be divided into a plurality of configurations.
- Embodiments in which each configuration is integrated and / or separated are also included in the present invention without departing from the spirit of the present invention.
- FIG. 1 is a block diagram schematically illustrating a video encoding apparatus according to an embodiment of the present invention.
- the encoding apparatus 100 may include a picture divider 105, a predictor 110, a transformer 115, a quantizer 120, a reordering unit 125, an entropy encoding unit 130, An inverse quantization unit 135, an inverse transform unit 140, a filter unit 145, and a memory 150 are provided.
- the picture dividing unit 105 may divide the input picture into at least one processing unit block.
- the block as the processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU).
- a picture may be composed of a plurality of coding tree units (CTUs), and each CTU may be split into CUs in a quad-tree structure.
- a CU may be divided into quad tree structures with CUs of a lower depth.
- PU and TU may be obtained from a CU.
- a PU may be partitioned from a CU into a symmetrical or asymmetrical square structure.
- the TU may also be divided into quad tree structures from the CU.
- the predictor 110 includes an inter predictor for performing inter prediction and an intra predictor for performing intra prediction, as described below.
- the prediction unit 110 performs prediction on the processing unit of the picture in the picture division unit 105 to generate a prediction block including a prediction sample (or a prediction sample array).
- the processing unit of the picture in the prediction unit 110 may be a CU, a TU, or a PU.
- the prediction unit 110 may determine whether the prediction performed on the processing unit is inter prediction or intra prediction, and determine specific contents (eg, prediction mode, etc.) of each prediction method.
- the processing unit in which the prediction is performed and the processing unit in which the details of the prediction method and the prediction method are determined may be different.
- the method of prediction and the prediction mode may be determined in units of PUs, and the prediction may be performed in units of TUs.
- a prediction block may be generated by performing prediction based on information of at least one picture of a previous picture and / or a subsequent picture of the current picture.
- a prediction block may be generated by performing prediction based on pixel information in a current picture.
- a skip mode, a merge mode, an advanced motion vector prediction (AMVP), and the like can be used.
- a reference picture may be selected for a PU and a reference block corresponding to the PU may be selected.
- the reference block may be selected in units of integer pixels (or samples) or fractional pixels (or samples).
- a predictive block is generated in which a residual signal with the PU is minimized and the size of the motion vector is also minimized.
- the prediction block may be generated in integer pixel units, or may be generated in sub-pixel units such as 1/2 pixel unit or 1/4 pixel unit.
- the motion vector may also be expressed in units of integer pixels or less.
- Information such as an index of a reference picture selected through inter prediction, a motion vector difference (MDV), a motion vector predictor (MVP), a residual signal, and the like may be entropy encoded and transmitted to a decoding apparatus.
- MDV motion vector difference
- MVP motion vector predictor
- the residual may be used as the reconstructed block, and thus the residual may not be generated, transformed, quantized, or transmitted.
- a prediction mode When performing intra prediction, a prediction mode may be determined in units of PUs, and prediction may be performed in units of PUs. In addition, a prediction mode may be determined in units of PUs, and intra prediction may be performed in units of TUs.
- the prediction mode may have, for example, 33 directional prediction modes and at least two non-directional modes.
- the non-directional mode may include a DC prediction mode and a planner mode (Planar mode).
- a prediction block may be generated after applying a filter to a reference sample.
- whether to apply the filter to the reference sample may be determined according to the intra prediction mode and / or the size of the current block.
- the residual value (the residual block or the residual signal) between the generated prediction block and the original block is input to the converter 115.
- the prediction mode information, the motion vector information, etc. used for the prediction are encoded by the entropy encoding unit 130 together with the residual value and transmitted to the decoding apparatus.
- the transform unit 115 performs transform on the residual block in units of transform blocks and generates transform coefficients.
- the transform block is a rectangular block of samples to which the same transform is applied.
- the transform block can be a transform unit (TU) and can have a quad tree structure.
- the transformer 115 may perform the transformation according to the prediction mode applied to the residual block and the size of the block.
- the residual block is transformed using a discrete sine transform (DST), otherwise the residual block is transformed into a DCT (Discrete). Can be transformed using Cosine Transform.
- DST discrete sine transform
- DCT Discrete
- the transform unit 115 may generate a transform block of transform coefficients by the transform.
- the quantization unit 120 may generate quantized transform coefficients by quantizing the residual values transformed by the transform unit 115, that is, the transform coefficients.
- the value calculated by the quantization unit 120 is provided to the inverse quantization unit 135 and the reordering unit 125.
- the reordering unit 125 rearranges the quantized transform coefficients provided from the quantization unit 120. By rearranging the quantized transform coefficients, the encoding efficiency of the entropy encoding unit 130 may be increased.
- the reordering unit 125 may rearrange the quantized transform coefficients in the form of a 2D block into a 1D vector form through a coefficient scanning method.
- the entropy encoding unit 130 entropy-codes a symbol according to a probability distribution based on the quantized transform values rearranged by the reordering unit 125 or the encoding parameter value calculated in the coding process, thereby performing a bitstream. You can output The entropy encoding method receives a symbol having various values and expresses it as a decodable column while removing statistical redundancy.
- the symbol means a syntax element, a coding parameter, a value of a residual signal, etc., to be encoded / decoded.
- An encoding parameter is a parameter necessary for encoding and decoding, and may include information that may be inferred in the encoding or decoding process as well as information encoded by an encoding device and transmitted to the decoding device, such as a syntax element. It means the information you need when you do.
- the encoding parameter may be, for example, a value such as an intra / inter prediction mode, a moving / motion vector, a reference image index, a coding block pattern, a residual signal presence, a transform coefficient, a quantized transform coefficient, a quantization parameter, a block size, block partitioning information, or the like. May include statistics.
- the residual signal may mean a difference between the original signal and the prediction signal, and a signal in which the difference between the original signal and the prediction signal is transformed or a signal in which the difference between the original signal and the prediction signal is converted and quantized It may mean.
- the residual signal may be referred to as a residual block in the block unit, and the residual sample in the sample unit.
- Encoding methods such as exponential golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC) may be used for entropy encoding.
- the entropy encoding unit 130 may store a table for performing entropy encoding, such as a variable length coding (VLC) table, and the entropy encoding unit 130 may store the variable length coding. Entropy encoding can be performed using the (VLC) table.
- the entropy encoding unit 130 derives the binarization method of the target symbol and the probability model of the target symbol / bin, and then uses the derived binarization method or the probability model to entropy. You can also perform encoding.
- the entropy encoding unit 130 may apply a constant change to a parameter set or syntax to be transmitted.
- the inverse quantizer 135 inversely quantizes the quantized values (quantized transform coefficients) in the quantizer 120, and the inverse transformer 140 inversely transforms the inverse quantized values in the inverse quantizer 135.
- the residual value (or the residual sample or the residual sample array) generated by the inverse quantizer 135 and the inverse transform unit 140 and the prediction block predicted by the predictor 110 are added together to reconstruct the sample (or the reconstructed sample array).
- a reconstructed block including a may be generated.
- a reconstructed block is generated by adding a residual block and a prediction block through an adder.
- the adder may be viewed as a separate unit (restore block generation unit) for generating a reconstruction block.
- the filter unit 145 may apply a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) to the reconstructed picture.
- ALF adaptive loop filter
- SAO sample adaptive offset
- the deblocking filter may remove distortion generated at the boundary between blocks in the reconstructed picture.
- the adaptive loop filter may perform filtering based on a value obtained by comparing the reconstructed image with the original image after the block is filtered through the deblocking filter. ALF may be performed only when high efficiency is applied.
- the SAO restores the offset difference from the original image on a pixel-by-pixel basis for the residual block to which the deblocking filter is applied, and is applied in the form of a band offset and an edge offset.
- the filter unit 145 may not apply filtering to the reconstructed block used for inter prediction.
- the memory 150 may store the reconstructed block or the picture calculated by the filter unit 145.
- the reconstructed block or picture stored in the memory 150 may be provided to the predictor 110 that performs inter prediction.
- the video decoding apparatus 200 includes an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, a prediction unit 230, and a filter unit 235.
- Memory 240 may be included.
- the input bitstream may be decoded according to a procedure in which image information is processed in the video encoding apparatus.
- the entropy decoding unit 210 may entropy decode the input bitstream according to a probability distribution to generate symbols including symbols in the form of quantized coefficients.
- the entropy decoding method is a method of generating each symbol by receiving a binary string.
- the entropy decoding method is similar to the entropy encoding method described above.
- VLC variable length coding
- 'VLC' variable length coding
- CABAC CABAC
- the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and decodes syntax element information and decoding information of neighboring and decoding target blocks or information of symbols / bins decoded in a previous step.
- the context model may be determined using the context model, the probability of occurrence of a bin may be predicted according to the determined context model, and arithmetic decoding of the bin may be performed to generate a symbol corresponding to the value of each syntax element. have.
- the CABAC entropy decoding method may update the context model by using the information of the decoded symbol / bin for the context model of the next symbol / bean after determining the context model.
- Information for generating the prediction block among the information decoded by the entropy decoding unit 210 is provided to the predictor 230, and a residual value where entropy decoding is performed by the entropy decoding unit 210, that is, a quantized transform coefficient It may be input to the reordering unit 215.
- the reordering unit 215 may reorder the information of the bitstream entropy decoded by the entropy decoding unit 210, that is, the quantized transform coefficients, based on the reordering method in the encoding apparatus.
- the reordering unit 215 may reorder the coefficients expressed in the form of a one-dimensional vector by restoring the coefficients in the form of a two-dimensional block.
- the reordering unit 215 scans the coefficients based on the prediction mode applied to the current block (transform block) and the size of the transform block to generate an array of coefficients (quantized transform coefficients) in the form of a two-dimensional block. Can be.
- the inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoding apparatus and the coefficient values of the rearranged block.
- the inverse transform unit 225 may perform inverse DCT and / or inverse DST on the DCT and the DST performed by the transform unit of the encoding apparatus with respect to the quantization result performed by the video encoding apparatus.
- the inverse transformation may be performed based on a transmission unit determined by the encoding apparatus or a division unit of an image.
- the DCT and / or DST in the encoding unit of the encoding apparatus may be selectively performed according to a plurality of pieces of information, such as a prediction method, a size and a prediction direction of the current block, and the inverse transform unit 225 of the decoding apparatus is configured in the transformation unit of the encoding apparatus.
- Inverse transformation may be performed based on the performed transformation information.
- the prediction unit 230 may include prediction samples (or prediction sample arrays) based on prediction block generation related information provided by the entropy decoding unit 210 and previously decoded block and / or picture information provided by the memory 240.
- a prediction block can be generated.
- intra prediction for generating a prediction block based on pixel information in the current picture may be performed.
- inter prediction on the current PU may be performed based on information included in at least one of a previous picture or a subsequent picture of the current picture.
- motion information required for inter prediction of the current PU provided by the video encoding apparatus for example, a motion vector, a reference picture index, and the like, may be derived by checking a skip flag, a merge flag, and the like received from the encoding apparatus.
- a prediction block may be generated such that a residual signal with a current block is minimized and a motion vector size is also minimized.
- the motion information derivation scheme may vary depending on the prediction mode of the current block.
- Prediction modes applied for inter prediction may include an advanced motion vector prediction (AMVP) mode, a merge mode, and the like.
- AMVP advanced motion vector prediction
- the encoding apparatus and the decoding apparatus may generate a merge candidate list by using the motion vector of the reconstructed spatial neighboring block and / or the motion vector corresponding to the Col block, which is a temporal neighboring block.
- the motion vector of the candidate block selected from the merge candidate list is used as the motion vector of the current block.
- the encoding apparatus may transmit, to the decoding apparatus, a merge index indicating a candidate block having an optimal motion vector selected from candidate blocks included in the merge candidate list. In this case, the decoding apparatus may derive the motion vector of the current block by using the merge index.
- the encoding device and the decoding device use a motion vector corresponding to a motion vector of a reconstructed spatial neighboring block and / or a Col block, which is a temporal neighboring block, and a motion vector.
- a predictor candidate list may be generated. That is, the motion vector of the reconstructed spatial neighboring block and / or the Col vector, which is a temporal neighboring block, may be used as a motion vector candidate.
- the encoding apparatus may transmit the predicted motion vector index indicating the optimal motion vector selected from the motion vector candidates included in the list to the decoding apparatus. In this case, the decoding apparatus may select the predicted motion vector of the current block among the motion vector candidates included in the motion information candidate list using the motion vector index.
- the encoding apparatus may obtain a motion vector difference MVD between the motion vector MV of the current block and the motion vector predictor MVP, and may encode the same and transmit the encoded motion vector to the decoding device. That is, MVD may be obtained by subtracting MVP from MV of the current block.
- the decoding apparatus may decode the received motion vector difference and derive the motion vector of the current block through the addition of the decoded motion vector difference and the motion vector predictor.
- the encoding apparatus may also transmit a reference picture index or the like indicating the reference picture to the decoding apparatus.
- the decoding apparatus may predict the motion vector of the current block using the motion information of the neighboring block, and may derive the motion vector for the current block using the residual received from the encoding apparatus.
- the decoding apparatus may generate a prediction block for the current block based on the derived motion vector and the reference picture index information received from the encoding apparatus.
- the encoding apparatus and the decoding apparatus may generate the merge candidate list using the motion information of the reconstructed neighboring block and / or the motion information of the call block. That is, the encoding apparatus and the decoding apparatus may use this as a merge candidate for the current block when there is motion information of the reconstructed neighboring block and / or the call block.
- the encoding apparatus may select a merge candidate capable of providing an optimal encoding efficiency among the merge candidates included in the merge candidate list as motion information for the current block.
- a merge index indicating the selected merge candidate may be included in the bitstream and transmitted to the decoding apparatus.
- the decoding apparatus may select one of the merge candidates included in the merge candidate list by using the transmitted merge index, and determine the selected merge candidate as motion information of the current block. Therefore, when the merge mode is applied, motion information corresponding to the reconstructed neighboring block and / or the call block may be used as the motion information of the current block.
- the decoding apparatus may reconstruct the current block by adding the prediction block and the residual transmitted from the encoding apparatus.
- the motion information of the reconstructed neighboring block and / or the motion information of the call block may be used to derive the motion information of the current block.
- the encoding apparatus does not transmit syntax information such as residual to the decoding apparatus other than information indicating which block motion information to use as the motion information of the current block.
- the encoding apparatus and the decoding apparatus may generate the prediction block of the current block by performing motion compensation on the current block based on the derived motion information.
- the prediction block may mean a motion compensated block generated as a result of performing motion compensation on the current block.
- the plurality of motion compensated blocks may constitute one motion compensated image.
- the reconstruction block may be generated using the prediction block generated by the predictor 230 and the residual block provided by the inverse transform unit 225.
- the reconstructed block is generated by combining the prediction block and the residual block in the adder.
- the adder may be viewed as a separate unit (restore block generation unit) for generating a reconstruction block.
- the reconstruction block includes a reconstruction sample (or reconstruction sample array) as described above
- the prediction block includes a prediction sample (or a prediction sample array)
- the residual block is a residual sample (or a residual sample). Array).
- a reconstructed sample (or reconstructed sample array) may be expressed as the sum of the corresponding predictive sample (or predictive sample array) and the residual sample (residual sample array).
- the residual is not transmitted for the block to which the skip mode is applied, and the prediction block may be a reconstruction block.
- the reconstructed block and / or picture may be provided to the filter unit 235.
- the filter unit 235 may apply deblocking filtering, sample adaptive offset (SAO), and / or ALF to the reconstructed block and / or picture.
- SAO sample adaptive offset
- the memory 240 may store the reconstructed picture or block to use as a reference picture or reference block and provide the reconstructed picture to the output unit.
- Components directly related to the decoding of an image for example, an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, a prediction unit 230, and a filter unit ( 235) and the like may be distinguished from other components by a decoder or a decoder.
- the decoding apparatus 200 may further include a parsing unit (not shown) for parsing information related to the encoded image included in the bitstream.
- the parsing unit may include the entropy decoding unit 210 or may be included in the entropy decoding unit 210. Such a parser may also be implemented as one component of the decoder.
- a method of deriving the motion vector of the current block coded in the inter prediction mode is obtained by correctly receiving the motion vector of the neighboring block of the current block and information on the motion vector of the current block.
- a method of deriving the motion vector of the current block may include a merge mode and an AMVP mode.
- the merge mode information for indicating one of neighbor candidate blocks (ex. Merge index) should be transmitted
- the AMVP mode information for indicating one of candidates derived based on neighbor blocks (ex. MVP flag) and additional MVD (motion vector difference) should still be transmitted.
- the present invention proposes a modified inter prediction mode that eliminates or minimizes transmission of the side information.
- Applying the modified inter prediction mode according to the present invention can reduce or eliminate the amount of data for the side information, thereby improving the overall coding efficiency.
- the present invention provides the modified inter prediction mode for deriving motion vectors of neighboring blocks of the current block and deriving a motion vector of the current block based on a comparison between motion vectors of the neighboring blocks.
- the modified inter prediction mode may be referred to as a frame rate up-conversion (FRUC) mode.
- FRUC frame rate up-conversion
- the image may be coded assuming that the object moves at a constant speed in the image, and there is no change in the pixel value (sample value).
- motion information of the current block may be derived based on motion information of neighboring blocks of the current block.
- the motion information may include at least one of a motion vector and a reference picture index.
- the encoding apparatus may derive the motion information candidate list of the current block based on the neighboring blocks (S300).
- the motion vector candidate of the neighboring block may be a bi-predicted motion vector candidate or may be a L0 or L1 predicted motion vector candidate.
- the L0 / or L1 predicted motion vector candidate may also be referred to as a unipredicted motion vector candidate.
- the bi-predicted motion vector candidate may include a motion vector in the L0 direction and a motion vector in the L1 direction, and the unipredicted motion vector candidate may include only one of the L0 direction motion vector and the L1 direction motion vector.
- L0 represents a reference picture list L0 (list 0)
- L1 represents a reference picture list L1 (list 1).
- the motion vector information of the neighboring block is bi-predictive motion vector information
- the motion vector associated with the L0 reference picture index and the reference picture included in L0 the motion vector associated with the L1 reference picture index and the reference picture included in L1. It may include.
- Bi-predictive motion vector information of the neighboring block may be derived as a (bipredictive) motion vector candidate of the current block.
- the motion vector may include an L0 reference picture index and a motion vector associated with a reference picture included in L0, or the L1 reference picture index and a reference picture included in L1. It may include an associated motion vector.
- the short-predicted motion vector information of the neighboring block may be derived as the (unipredictive) motion vector candidate of the current block, or based on the short-predicted motion vector candidate of the neighboring block, It can also be derived.
- motion vectors included in the motion vector candidate may be divided into L0 and L1 directions.
- the encoding apparatus may derive an optimal motion vector among the motion vectors by comparing the separated motion vectors through a bilateral matching method (S310), and compare the motion vectors through a template matching method.
- an optimal motion vector among the motion vectors may be derived.
- the encoding apparatus may select a better matching method among the bilateral matching method and the template matching method and derive an optimal motion vector (S330).
- the motion vector may be derived through one of the above-described methods of deriving the motion vector or a combination of the above methods (S340). In this case, the motion vectors of the sub-blocks in the current block may be more precisely derived by refining the motion vectors (S350).
- the encoding apparatus may generate flag information about the selection of the bilateral matching method or the template matching method, and may encode the flag information and output it in a bitstream form.
- the decoding apparatus may select a matching method based on the value of the flag information.
- the bilateral matching method and the template matching method will be described later.
- a motion vector of the current block may be derived based on motion vectors of neighboring blocks of the current block.
- the decoding apparatus may derive a motion information candidate list of the current block based on the neighboring blocks (S400).
- the motion vector candidate of the neighboring block may be a bi-prediction motion vector candidate or a uni-prediction motion vector candidate.
- motion vectors included in the motion vector candidate may be divided into L0 and L1 directions.
- the decoding apparatus may obtain information about a matching method for deriving an optimal motion vector from the encoding apparatus, and may derive an optimal motion vector according to the matching method (S410).
- the matching method may be the above-described bilateral matching method or template matching method.
- the decoding apparatus may obtain a flag for selecting the bilateral matching method or template matching method through a bitstream.
- the flag may also be referred to as a bilateral / template selection flag.
- the decoding apparatus may select a matching method based on the value of the bilateral / template selection flag. For example, when the value of the bilateral / template selection flag is 1, the bilateral matching method may be performed. When the value of the flag information is 1, the template matching method may be performed.
- the bilateral matching method and the template matching method will be described later.
- the decoding apparatus may derive the motion vector of the current block based on the motion vector (S420). In this case, finer motion vectors for each subblock in the current block may be derived by refining the motion vector (S430). Meanwhile, the S430 procedure may be omitted in some cases.
- a bilateral matching method and / or a template matching method may be used as a method of searching for an optimal motion vector.
- motion vectors included in information about motion vectors of the neighboring blocks may be divided into L0 and L1 directions.
- the divided motion vectors are sequentially selected one by one, and then interpolated around a picture to which the current block belongs to correspond to the motion vectors in a direction different from the direction associated with the motion vectors among the L0 and L1 directions.
- Motion vectors can be derived. For example, when the motion vector candidate of the current block is a motion vector in the L0 direction, the motion vector candidate may be scaled in the L1 direction based on a temporal distance between the motion vector and the picture to which the current block belongs.
- a motion vector in the L1 direction corresponding to the motion vector can be derived.
- the reference picture including the reference region indicated by the motion vector in the L1 direction includes a difference value from the reference region indicated by the motion vector in the L0 direction among the reference pictures included in the L1, that is, a reference region having the smallest residual. Can be derived as a reference picture. If the motion vector candidate of the current block is a motion vector in the L1 direction, the motion vector candidate may be scaled in the L0 direction based on a temporal distance between the motion vector and the picture to which the current block belongs, and the motion vector A motion vector in the L0 direction corresponding to may be derived.
- the reference picture including the reference region indicated by the motion vector in the L0 direction includes a difference value from the reference region indicated by the motion vector in the L1 direction among the reference pictures included in the L0, that is, the reference region having the smallest residual. Can be derived as a reference picture.
- a motion vector having the smallest difference between the reference region indicated by the motion vector and the reference region indicated by the motion vector corresponding to the motion vector among the motion vectors included in the motion vector candidate of the current block may be derived as the optimal motion vector.
- the motion vector may be derived as an optimal motion vector of the current block.
- one of a motion vector candidate of the motion vector candidate of the current block may be selected to compare neighboring samples of the reference region indicated by the motion vector with neighboring samples of the current block.
- motion vectors included in information about motion vectors of the neighboring blocks may be divided into L0 and L1 directions.
- the divided motion vectors may be sequentially selected to derive a reference region indicated by the selected motion vector.
- the value of the neighboring samples 600 of the reference region may be compared with the value of the neighboring samples 610 of the current block.
- the difference (or residual) of the neighboring samples 600 of the reference region (reference block) and the neighboring samples 610 of the current block may be derived and compared, and the reference region for the case where the difference is minimum is compared.
- the pointing motion vector can be derived as an optimal motion vector for the current block.
- the decoding apparatus may not receive from the encoding apparatus what motion vector is used as the motion vector of the current block. Therefore, in order to derive the optimal motion vector described above, the decoding apparatus may need to find the optimal motion vector in the same manner as the encoding apparatus.
- the optimal motion vector is found in the same manner as the encoding apparatus, the sophisticated motion can be found and predicted without any additional signaling.
- it is necessary to search for all possible motion vector candidates which can significantly increase the computational complexity of the decoding apparatus. Accordingly, the present invention additionally provides a method for efficiently reducing motion vector candidates to be considered.
- the decoding apparatus may select an optimal motion vector of the current block by using motion information of neighboring blocks of the current block.
- the decoding apparatus may derive a preliminary motion information candidate list including bipredicted motion vector candidates based on the neighboring block (S700).
- the decoding apparatus may derive one of the motion vectors included in the candidate list as the first anchor vector (S710).
- the first anchor vector may be an L0 direction motion vector or an L1 direction motion vector.
- the decoding apparatus may derive a second anchor vector by linearly interpolating the first anchor vector in another direction (S720).
- the second anchor vector may be derived by scaling the first anchor vector in a direction different from the direction associated with the first anchor vector among the L0 direction and the L1 direction.
- the first anchor vector when the first anchor vector is an L0 direction motion vector, the first anchor vector may be scaled in the L1 direction to be derived as a second anchor vector that is an L1 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value that includes a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the first anchor vector when the first anchor vector is an L1 direction motion vector, the first anchor vector may be scaled in the L0 direction to be derived as a second anchor vector that is an L0 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value having a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the decoding apparatus After deriving the second anchor vector, the decoding apparatus performs motion vectors in a direction different from the first anchor vector among the motion vectors included in the preliminary motion information candidate list, that is, the motion in the same direction as the second anchor vector.
- Vectors may be compared with the second anchor vector, and a difference value between the value of the second anchor vector and the values of the motion vectors in the same direction may be derived (S730). For example, when the first anchor vector is an L0 direction motion vector, L1 direction motion vectors may be derived, and a difference value between the value of each motion vector and the value of the second anchor vector may be derived. Meanwhile, when the first anchor vector is an L0 direction motion vector, L1 direction motion vectors may be derived, and a difference value between the value of each motion vector and the value of the second anchor vector may be derived.
- the decoding apparatus When deriving difference values between the second anchor vector and the motion vectors, the decoding apparatus derives a motion information candidate list of the current block including motion vectors having difference values equal to or less than a predetermined threshold value among the difference values. It may be (S740). The decoding apparatus may search for an optimal motion vector by deriving motion vectors of some of the motion vector information of the neighboring block through the above-described method.
- the optimal motion vector may be searched after selecting the motion vectors satisfying a predetermined condition instead of finding the optimal motion vector from all motion vectors of the neighboring blocks. Therefore, the above-described method can reduce the process of searching for the optimal motion vector.
- an optimal motion vector of the current block may be selected by using motion information of neighboring blocks of the current block.
- the decoding apparatus may derive a preliminary motion information candidate list including bipredicted motion vector candidates based on the neighboring block (S800).
- the decoding apparatus may derive one of the motion vectors included in the candidate list as the first anchor vector (S810).
- the first anchor vector may be an L0 direction motion vector or an L1 direction motion vector.
- the decoding apparatus may linearly interpolate the first anchor vector in another direction to derive a second anchor vector (S820).
- the second anchor vector may be derived by scaling the first anchor vector in a direction different from the direction associated with the first anchor vector among the L0 direction and the L1 direction.
- the first anchor vector when the first anchor vector is an L0 direction motion vector, the first anchor vector may be scaled in the L1 direction to be derived as a second anchor vector that is an L1 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value that includes a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the first anchor vector when the first anchor vector is an L1 direction motion vector, the first anchor vector may be scaled in the L0 direction to be derived as a second anchor vector that is an L0 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value having a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the decoding apparatus After deriving the second anchor vector, the decoding apparatus performs motion vectors in a direction different from the first anchor vector among the motion vectors included in the preliminary motion information candidate list, that is, the motion in the same direction as the second anchor vector.
- Vectors may be compared with the second anchor vector, and a difference value between the value of the second anchor vector and the values of the motion vectors in the same direction may be derived (S830). For example, when the first anchor vector is an L0 direction motion vector, L1 direction motion vectors may be derived, and a difference value between the value of each motion vector and the value of the second anchor vector may be derived. Meanwhile, when the first anchor vector is an L0 direction motion vector, L1 direction motion vectors may be derived, and a difference value between the value of each motion vector and the value of the second anchor vector may be derived.
- the decoding apparatus may derive a motion vector having the minimum difference value among the difference values as the motion vector of the current block (S840).
- a motion vector having the minimum difference value may be derived as an optimal motion vector.
- a motion vector satisfying a predetermined condition may be derived as an optimal motion vector. Therefore, the above-described method can reduce the process of searching for the optimal motion vector.
- an optimal motion vector of the current block may be selected by using motion information of neighboring blocks of the current block.
- the decoding apparatus may derive a preliminary motion information candidate list including bipredicted motion vector candidates based on the neighboring block (S900).
- a difference value between the absolute value of the L0 direction motion vector and the absolute value of the L1 direction motion vector included in the bi-predicted motion vector candidate may be derived (S910).
- the decoding apparatus may compare the values of the difference values with a preset threshold, and include motion vectors having a difference value less than or equal to the threshold value of the current block.
- the motion information candidate list may be derived (S920).
- the L0 direction motion vector and the L1 direction motion vector of the motion vector information of the neighboring blocks are not vectors having a size of 0, and the absolute value of the L0 direction motion vector and the L1 direction motion vector are described above.
- the optimal motion vector may be searched by deriving bi-predicted motion vector candidates whose difference between the absolute values of is less than or equal to the threshold.
- the optimal motion vector may be searched after selecting the motion vectors satisfying a predetermined condition instead of finding the optimal motion vector from all motion vectors of the neighboring blocks. Therefore, the above-described method can reduce the process of searching for the optimal motion vector.
- an optimal motion vector of the current block may be selected by using motion information of neighboring blocks of the current block.
- a preliminary motion information candidate list including bipredicted motion vector candidates may be derived based on the neighboring block (S1000).
- a difference value between the absolute value of the L0 direction motion vector and the absolute value of the L1 direction motion vector included in the bi-predicted motion vector candidate may be derived (S1010).
- the decoding apparatus may derive the bi-prediction motion vector candidate having the minimum difference value as the optimal motion vector (S1020).
- the decoding apparatus is a bi-predictive motion in which the L0 direction motion vector and the L1 direction motion vector are not vectors having a magnitude of zero, and the difference value between the absolute value of the L0 direction motion vector and the absolute value of the L1 direction motion vector is minimum.
- Vector candidates can be derived.
- a motion vector satisfying a predetermined condition may be derived as an optimal motion vector. Therefore, the above-described method can reduce the process of searching for the optimal motion vector.
- an optimal motion vector of the current block may be selected by using motion information of neighboring blocks of the current block.
- the decoding apparatus may derive a preliminary motion information candidate list including unipredicted motion vector candidates based on the neighboring block (S1100).
- an absolute value of a motion vector included in each of the single predictive motion vector candidates may be compared with a preset threshold value, and the motion of the current block including short predictive motion vector candidates having the absolute value less than or equal to the threshold value may be compared.
- the information candidate list may be derived (S1110).
- the motion vector of each of the short prediction motion vector candidates may be a L0 direction motion vector or an L1 direction motion vector.
- the modified inter prediction mode when the motion prediction is performed, ideally, the motion of the object in the image is constant and the sample value does not change. In this case, it can be said that the vector having small motion is most likely to meet the above condition.
- the optimal motion vector may be searched after selecting the motion vectors satisfying a predetermined condition instead of finding the optimal motion vector from all motion vectors of the neighboring blocks. Therefore, the above-described method can reduce the process of searching for the optimal motion vector.
- an optimal motion vector of the current block may be selected by using motion information of neighboring blocks of the current block.
- a preliminary motion information candidate list including unipredicted motion vector candidates may be derived based on the neighboring block (S1200).
- absolute values of the motion vectors of the single predicted motion vector candidates may be compared, and a motion vector having a minimum absolute value may be derived as a motion vector of the current block (S1210).
- the motion vector of each of the short prediction motion vector candidates may be a L0 direction motion vector or an L1 direction motion vector.
- the modified inter prediction mode when the motion prediction is performed, ideally, the motion of the object in the image is constant and the sample value does not change. In this case, it can be said that the vector having small motion is most likely to meet the above condition.
- a motion vector satisfying a predetermined condition may be derived as an optimal motion vector. Therefore, the above-described method can reduce the process of searching for the optimal motion vector.
- the methods shown in FIGS. 7 to 10 may be implemented in consideration of only the bi-predicted motion vector candidates of neighboring blocks.
- the short predicted motion vector candidate of the neighboring block may be additionally considered.
- the single predicted motion vector candidate may be derived and executed in the same form as the bipredicted motion vector candidate.
- a motion vector corresponding to the motion vector may be derived by scaling a motion vector included in the single predicted motion vector candidate in a direction different from a direction associated with the motion vector among the L0 direction and the L1 direction. .
- the L0 direction motion vector may be scaled in the L1 direction to derive an L1 direction motion vector corresponding to the L0 direction motion vector.
- a reference picture including a reference region indicated by the L1 direction motion vector includes a reference value that is a difference value from the reference region indicated by the L0 direction motion vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the L1 direction motion vector may be scaled in the L0 direction to derive an L0 direction motion vector corresponding to the L1 direction motion vector.
- the reference picture including the reference region indicated by the L0 direction motion vector includes a reference value that is a difference value from the reference region indicated by the L1 direction motion vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the single-predicted motion vector candidate may be added as a candidate of the motion information candidate list of the current block of the methods shown in FIGS. 7 to 10 without any separate selection process.
- the short-predicted motion vector candidates are selected through the methods shown in FIGS. 11 to 12 and the selected short-predicted motion vector candidates are candidates for the motion information candidate list of the current block of the methods shown in FIGS. 7 to 10. You can add
- FIGS. 11 to 12 may be implemented in consideration of only a single predictive motion vector candidate of a neighboring block.
- the prediction may be performed in consideration of the bi-predicted motion vector candidate of the neighboring block as well as the single-predicted motion vector candidate.
- all of the bi-predicted motion vector candidates may be added as candidates for the motion information candidate list of the current block without a separate selection process.
- all the motion vectors included in the bi-predicted motion vector candidate that is, both the L0 direction motion vector and the L1 direction motion vector may be used in a method for deriving an optimal motion vector.
- the bi-predicted motion vector candidate is selected through the methods shown in FIGS. 7 to 10 described above, and the selected bi-predicted motion vector candidate is selected as a candidate of the motion information candidate list of the current block of the methods shown in FIGS. 11 to 12. You can add
- the encoding apparatus may transmit a flag indicating whether the modified inter prediction mode is applied to the decoding apparatus.
- the flag may also be referred to as a FRUC flag.
- the encoding apparatus may transmit information indicating whether the modified prediction mode of the current block is applied through the flag. For example, if the value of the flag is 1, the modified inter prediction mode may be applied to derive an optimal motion vector of the current block. For example, if the value of the FRUC flag is 0, the merge mode or the AMVP mode may be used. Accordingly, the motion vector of the current block can be derived.
- FIG. 13 schematically illustrates a video encoding method by an encoding device according to the present invention.
- the method disclosed in FIG. 13 may be performed by the encoding apparatus disclosed in FIG. 1.
- S1300 to S1330 of FIG. 13 may be performed by the prediction unit of the encoding apparatus
- S1340 may be performed by the entropy encoding unit of the encoding apparatus.
- the encoding apparatus derives the motion information candidate list of the current block based on the neighboring blocks of the current block (S1300).
- the motion vector candidate of the neighboring block may be a bi-prediction motion vector candidate or a uni-prediction motion vector candidate.
- the bi-predicted motion vector candidate may include a motion vector in the L0 direction and a motion vector in the L1 direction
- the unipredicted motion vector candidate may include only one of the L0 direction motion vector and the L1 direction motion vector.
- the encoding apparatus may derive all motion vector information as a candidate to construct the motion information candidate list.
- the encoding apparatus may construct the motion information candidate list by selectively deriving a candidate from the motion vector information of the neighboring block.
- the encoding apparatus may derive a first motion information candidate list including bipredicted motion vector candidates based on the neighboring block, and the encoding apparatus may generate a motion vector of one of the first motion information candidate lists first.
- the first anchor vector may be an L0 direction motion vector or an L1 direction motion vector.
- the encoding apparatus may scale the first anchor vector in a direction different from a direction associated with the first anchor vector among the L0 direction and the L1 direction to derive a second anchor vector.
- the first anchor vector may be scaled in the L1 direction to be derived as a second anchor vector that is an L1 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value that includes a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the first anchor vector when the first anchor vector is an L1 direction motion vector, the first anchor vector may be scaled in the L0 direction to be derived as a second anchor vector that is an L0 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value having a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the encoding apparatus After deriving the second anchor vector, the encoding apparatus performs the current block based on the motion vector having the same direction as the second anchor vector in the first motion information candidate list and a magnitude difference from the second anchor vector is equal to or less than a preset threshold.
- the motion information candidate list can be derived. For example, when the second anchor vector is a L0 direction motion vector, the motion information candidate list of the current block based on a motion vector whose magnitude difference from the second anchor vector among the L0 direction motion vectors is equal to or less than a preset threshold. Can be derived.
- a motion information candidate list of the current block is derived based on a motion vector whose magnitude difference from the second anchor vector in the L1 direction is less than or equal to a preset threshold. can do.
- the encoding apparatus may derive a first motion information candidate list based on the neighboring block, and the absolute value and the L1 direction of the L0 direction motion vector of each bi-predicted motion vector candidate included in the first motion information candidate list.
- the difference between the absolute values of the motion vectors can be derived.
- the encoding apparatus may derive a motion information candidate list of the current block based on the bi-predicted motion vector candidate having the difference value equal to or less than a preset threshold.
- the encoding apparatus is further configured to associate the first motion vector included in the short predicted motion vector candidate with the first motion vector in the L0 direction and the L1 direction.
- a second motion vector may be derived by scaling in a direction different from a direction, and the single-predicted motion vector candidate is derived as a bi-predicted motion vector candidate including the first motion vector and the second motion vector.
- One method can be applied.
- a second motion vector that is an L1 direction motion vector may be derived by scaling in the L1 direction.
- a second motion vector that is a L0 direction motion vector may be derived by scaling in the L0 direction.
- the reference picture associated with the second motion vector includes the second reference area having a minimum residual between the first reference area indicated by the first motion vector and the second reference area indicated by the second motion vector. It may be a picture to include.
- the encoding apparatus may derive a first motion information candidate list based on the neighboring block, and determine whether an absolute value of a motion vector of each motion vector candidate is less than or equal to a preset threshold in the first motion information candidate list. can do.
- the encoding apparatus may derive a motion information candidate list of the current block based on the motion vector candidate whose absolute value of the motion vector is less than or equal to the threshold.
- the motion vector candidate is a unidirectional motion vector candidate
- the motion vector of the short prediction motion vector candidate may be a L0 direction motion vector or an L1 direction motion vector.
- the encoding apparatus may additionally consider the bi-prediction motion vector candidate.
- the encoding apparatus may determine each motion vector by dividing the L0 direction motion vector and the L1 direction motion vector included in the bi-predicted motion vector candidate, and include each motion vector as a candidate of the motion information candidate list. .
- the encoding apparatus may derive the motion information candidate list based on the above-described method, and generate a FRUC flag.
- the value of the FRUC flag may appear as 1.
- the encoding apparatus selects a specific candidate based on the comparison of the candidates in the motion information candidate list (S1310). For example, the encoding apparatus may compare candidates in the motion information candidate list through a bilateral matching method. The encoding apparatus may divide the motion vectors included in the motion information candidate list into the L0 direction and the L1 direction. The encoding apparatus may sequentially select the divided motion vectors as the first motion vector. The encoding apparatus scales the first motion vector included in the motion information candidate list in a direction different from a direction associated with the first motion vector among the L0 direction and the L1 direction to correspond to the first motion vector. We can derive 2 motion vectors.
- the first motion vector when the first motion vector is a motion vector in the L0 direction, the first motion vector may be scaled in the L1 direction based on a temporal distance between the current picture and a reference picture associated with the first motion vector.
- the second motion vector in the L1 direction corresponding to the first motion vector may be derived.
- the reference picture including the reference region indicated by the second motion vector includes a reference value that is a difference value from the reference region indicated by the first motion vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the first motion vector when the first motion vector is a motion vector in the L1 direction, the first motion vector may be scaled in the L0 direction based on a temporal distance between the current picture and a reference picture associated with the first motion vector.
- the second motion vector in the L0 direction corresponding to the vector may be derived.
- the reference picture including the reference region indicated by the second motion vector includes a reference value that is a difference value from the reference region indicated by the first motion vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the encoding apparatus may derive a residual of the reference region indicated by the first motion vector and the reference region indicated by the second motion vector, and encodes the first motion vector and the second motion vector having the minimum residual.
- the encoding apparatus may compare candidates in the motion information candidate list through a template matching method.
- the encoding apparatus may derive the reference block indicated by the motion vector 1 included in the motion information candidate list.
- the encoding apparatus may derive a difference value between the value of the neighboring sample of the reference block and the value of the neighboring sample of the current block corresponding to the neighboring sample.
- the encoding apparatus may select the motion vector 1 as the specific candidate when the difference value is the minimum among the difference values of the motion vectors included in the motion information candidate list.
- the encoding apparatus may select a specific candidate based on an anchor vector.
- the encoding apparatus may derive one motion vector of the motion information candidate list as a first anchor vector.
- the first anchor vector may be an L0 direction motion vector or an L1 direction motion vector.
- the encoding apparatus may scale the first anchor vector in a direction different from a direction associated with the first anchor vector among the L0 direction and the L1 direction to derive a second anchor vector. Can be.
- the first anchor vector is an L0 direction motion vector
- the first anchor vector may be scaled in the L1 direction to be derived as a second anchor vector that is an L1 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value that includes a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the first anchor vector when the first anchor vector is an L1 direction motion vector, the first anchor vector may be scaled in the L0 direction to be derived as a second anchor vector that is an L0 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value having a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the encoding apparatus may select, as the specific candidate, a motion vector having the same direction as the second anchor vector in the motion information candidate list and having a minimum size difference from the second anchor vector. For example, when the second anchor vector is a L0 direction motion vector, a motion vector having a minimum difference in magnitude from the second anchor vector among the L0 direction motion vectors may be derived as the specific candidate. Meanwhile, when the second anchor vector is an L1 direction motion vector, a motion vector having a minimum size difference from the second anchor vector among the motion vectors in the L1 direction may be derived as the specific candidate.
- the encoding apparatus may select the specific candidate based on a comparison between the absolute value of the absolute value of the L0 direction motion vector and the absolute value of the L1 direction motion vector of each bi-predicted motion vector candidate included in the vector candidate list. .
- the encoding apparatus may derive a difference value between the absolute value of the L0 direction motion vector and the absolute value of the L1 direction motion vector of each bi-predicted motion vector candidate included in the motion information candidate list.
- the encoding apparatus may select the bi-predicted motion vector candidate having the minimum difference value as the specific candidate.
- the encoding apparatus may determine a first motion vector included in the short predicted motion vector candidate and a direction associated with the first motion vector among the L0 direction and the L1 direction.
- a second motion vector can be derived by scaling in a different direction, and the method described above by deriving the single predicted motion vector candidate as a bi-predicted motion vector candidate including the first motion vector and the second motion vector. Can be applied.
- the first motion vector is a L0 direction motion vector
- a second motion vector that is an L1 direction motion vector may be derived by scaling in the L1 direction.
- a second motion vector that is a L0 direction motion vector may be derived by scaling in the L0 direction.
- the reference picture associated with the second motion vector includes the second reference area having a minimum residual between the first reference area indicated by the first motion vector and the second reference area indicated by the second motion vector. It may be a picture to include.
- the encoding apparatus may select the specific candidate based on a comparison of magnitudes of absolute values of the motion vectors.
- the encoding apparatus may compare the magnitude of the absolute value of the motion vector of each motion vector candidate to the motion information candidate list.
- the encoding apparatus may select a motion vector candidate having a minimum absolute value of the motion vector as a specific candidate.
- the motion vector candidate is a unidirectional motion vector candidate
- the motion vector of the short prediction motion vector candidate may be a L0 direction motion vector or an L1 direction motion vector.
- the encoding apparatus may additionally consider the bi-prediction motion vector candidate.
- the encoding apparatus may determine each motion vector by dividing the L0 direction motion vector and the L1 direction motion vector included in the bi-predicted motion vector candidate, and include each motion vector as a candidate of the motion information candidate list. .
- the encoding apparatus may generate a bilateral / template selection flag indicating information on the selection of the above-described matching method.
- the value of the bilateral / template selection flag may correspond to the bilateral matching method and the template matching method.
- the encoding apparatus derives the motion vector of the current block based on the specific candidate (S1320).
- the motion vector of the current block may be one of a bi-prediction motion vector and a uni-prediction motion vector.
- the encoding apparatus generates a prediction sample of the current block based on the motion vector of the current block (S1330).
- the encoding apparatus may obtain a predictive sample value on the reference picture indicated by the motion vector, and generate the predictive sample.
- the encoding apparatus encodes and outputs prediction mode information indicating the inter prediction mode (S1340).
- the encoding apparatus may entropy-encode the prediction mode information indicating the modified inter prediction mode that derives the motion vector of the current block based on the neighboring blocks of the current block and output the result in a bitstream form.
- the encoding apparatus may generate, encode, and output the FRUC flag for determining whether the modified inter prediction mode is applied to the current block, in the form of the bitstream.
- the encoding apparatus may generate a bilateral / template selection flag for selecting a matching method for comparing candidates in the motion information candidate list, and may encode and output the bilateral / template selection flag.
- the prediction mode information, the FRUC flag, and the bilateral / template selection flag may be transmitted to the decoding apparatus in the bitstream form.
- the bitstream may be transmitted to a decoding apparatus via a network or a storage medium.
- the encoding apparatus may encode and output information about the residual sample for the current block.
- the information about the residual sample may include transform coefficients regarding the residual sample.
- FIG. 14 schematically illustrates a video decoding method by a decoding apparatus according to the present invention.
- the method disclosed in FIG. 14 may be performed by the decoding apparatus disclosed in FIG. 2.
- S1400 to S1430 of FIG. 14 may be performed by the prediction unit of the decoding apparatus.
- the decoding apparatus derives a motion information candidate list of the current block based on the neighboring blocks of the current block (S1400).
- the motion vector candidate of the neighboring block may be a bi-prediction motion vector candidate or a uni-prediction motion vector candidate.
- the bi-predicted motion vector candidate may include a motion vector in the L0 direction and a motion vector in the L1 direction
- the unipredicted motion vector candidate may include only one of the L0 direction motion vector and the L1 direction motion vector.
- the decoding apparatus may derive all motion vector information as a candidate to construct the motion information candidate list.
- the decoding apparatus may construct the motion information candidate list by selectively deriving a candidate from the motion vector information of the neighboring block.
- the decoding apparatus may derive a first motion information candidate list including bi-predicted motion vector candidates based on the neighboring block, and the decoding apparatus may determine a first motion vector of one of the first motion information candidate lists.
- the first anchor vector may be an L0 direction motion vector or an L1 direction motion vector.
- the decoding apparatus may scale the first anchor vector in a direction different from a direction associated with the first anchor vector among the L0 direction and the L1 direction to derive a second anchor vector.
- the first anchor vector may be scaled in the L1 direction to be derived as a second anchor vector that is an L1 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value that includes a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the first anchor vector when the first anchor vector is an L1 direction motion vector, the first anchor vector may be scaled in the L0 direction to be derived as a second anchor vector that is an L0 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value having a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the decoding apparatus determines the current block based on the motion vector having the same direction as the second anchor vector in the first motion information candidate list and having a magnitude difference from the second anchor vector less than or equal to a preset threshold.
- the motion information candidate list can be derived. For example, when the second anchor vector is a L0 direction motion vector, the motion information candidate list of the current block based on a motion vector whose magnitude difference from the second anchor vector among the L0 direction motion vectors is equal to or less than a preset threshold. Can be derived.
- a motion information candidate list of the current block is derived based on a motion vector whose magnitude difference from the second anchor vector in the L1 direction is less than or equal to a preset threshold. can do.
- the decoding apparatus may derive a first motion information candidate list based on the neighboring block, and the absolute value and the L1 direction of the L0 direction motion vector of each bi-predicted motion vector candidate included in the first motion information candidate list.
- the difference between the absolute values of the motion vectors can be derived.
- the decoding apparatus may derive a motion information candidate list of the current block based on the bi-predicted motion vector candidate having the difference value equal to or less than a preset threshold.
- the decoding apparatus is further configured to associate the first motion vector included in the short predicted motion vector candidate with the first motion vector in the L0 direction and the L1 direction.
- a second motion vector may be derived by scaling in a direction different from a direction, and the single-predicted motion vector candidate is derived as a bi-predicted motion vector candidate including the first motion vector and the second motion vector.
- One method can be applied.
- a second motion vector that is an L1 direction motion vector may be derived by scaling in the L1 direction.
- a second motion vector that is a L0 direction motion vector may be derived by scaling in the L0 direction.
- the reference picture associated with the second motion vector includes the second reference area having a minimum residual between the first reference area indicated by the first motion vector and the second reference area indicated by the second motion vector. It may be a picture to include.
- the decoding apparatus may derive a first motion information candidate list based on the neighboring block, and determine whether an absolute value of a motion vector of each motion vector candidate is less than or equal to a preset threshold in the first motion information candidate list. can do.
- the decoding apparatus may derive a motion information candidate list of the current block based on the motion vector candidate whose absolute value of the motion vector is less than or equal to the threshold.
- the motion vector candidate is a unidirectional motion vector candidate
- the motion vector of the short prediction motion vector candidate may be a L0 direction motion vector or an L1 direction motion vector.
- the decoding apparatus may additionally consider and consider a bi-prediction motion vector candidate.
- the decoding apparatus may determine each motion vector by dividing the L0 direction motion vector and the L1 direction motion vector included in the bi-predicted motion vector candidate, and include each motion vector as a candidate of the motion information candidate list. .
- the decoding apparatus may obtain the FRUC flag through the bitstream, and when the value of the FRUC flag is 1, it may determine that the modified inter prediction mode is applied to the current block.
- the decoding apparatus may derive the motion information candidate list through the above-described method.
- the decoding apparatus selects a specific candidate based on the comparison of the candidates in the motion information candidate list (S1410). For example, the decoding apparatus may compare candidates in the motion information candidate list through a bilateral matching method. The decoding apparatus may divide the motion vectors included in the motion information candidate list into the L0 direction and the L1 direction. The decoding apparatus may sequentially select the divided motion vectors as the first motion vector. The decoding apparatus scales the first motion vector included in the motion information candidate list in a direction different from a direction associated with the first motion vector among the L0 direction and the L1 direction to correspond to the first motion vector. We can derive 2 motion vectors.
- the first motion vector when the first motion vector is a motion vector in the L0 direction, the first motion vector may be scaled in the L1 direction based on a temporal distance between the current picture and a reference picture associated with the first motion vector.
- the second motion vector in the L1 direction corresponding to the first motion vector may be derived.
- the reference picture including the reference region indicated by the second motion vector includes a reference value that is a difference value from the reference region indicated by the first motion vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the first motion vector when the first motion vector is a motion vector in the L1 direction, the first motion vector may be scaled in the L0 direction based on a temporal distance between the current picture and a reference picture associated with the first motion vector.
- the second motion vector in the L0 direction corresponding to the vector may be derived.
- the reference picture including the reference region indicated by the second motion vector includes a reference value that is a difference value from the reference region indicated by the first motion vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the decoding apparatus may derive the residuals of the reference region indicated by the first motion vector and the reference region indicated by the second motion vector, and include the first motion vector and the second motion vector having the minimum residual.
- the decoding apparatus may compare candidates in the motion information candidate list through a template matching method.
- the decoding apparatus may derive the reference block indicated by the motion vector 1 included in the motion information candidate list.
- the decoding apparatus may derive a difference value between the value of the neighboring sample of the reference block and the value of the neighboring sample of the current block corresponding to the neighboring sample. If the difference value is the minimum among the difference values of the motion vectors included in the motion information candidate list, the decoding device may select the motion vector 1 as the specific candidate.
- the decoding apparatus may select a specific candidate based on an anchor vector.
- the decoding apparatus may derive one motion vector of the motion information candidate list as a first anchor vector.
- the first anchor vector may be an L0 direction motion vector or an L1 direction motion vector.
- the decoding apparatus may scale the first anchor vector in a direction different from a direction associated with the first anchor vector among the L0 direction and the L1 direction to derive a second anchor vector. Can be.
- the first anchor vector is an L0 direction motion vector
- the first anchor vector may be scaled in the L1 direction to be derived as a second anchor vector that is an L1 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value that includes a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L1, that is, a reference region having the smallest residual. It can be derived as a picture.
- the first anchor vector when the first anchor vector is an L1 direction motion vector, the first anchor vector may be scaled in the L0 direction to be derived as a second anchor vector that is an L0 direction motion vector.
- the reference picture including the reference region indicated by the second anchor vector includes a reference value having a difference value from the reference region indicated by the first anchor vector among the reference pictures included in the L0, that is, a reference region having the smallest residual. It can be derived as a picture.
- the decoding apparatus may select, as the specific candidate, a motion vector having the same direction as that of the second anchor vector in the motion information candidate list and having a minimum size difference from the second anchor vector. For example, when the second anchor vector is a L0 direction motion vector, a motion vector having a minimum difference in magnitude from the second anchor vector among the L0 direction motion vectors may be derived as the specific candidate. Meanwhile, when the second anchor vector is an L1 direction motion vector, a motion vector having a minimum size difference from the second anchor vector among the motion vectors in the L1 direction may be derived as the specific candidate.
- the decoding apparatus may select the specific candidate based on a comparison between the absolute value of the L0 direction motion vector and the absolute value of the L1 direction motion vector of each bi-predicted motion vector candidate included in the vector candidate list. .
- the decoding apparatus may derive a difference value between the absolute value of the L0 direction motion vector and the absolute value of the L1 direction motion vector of each bi-predicted motion vector candidate included in the motion information candidate list.
- the decoding apparatus may select the bi-predicted motion vector candidate having the minimum difference value as the specific candidate.
- the decoding apparatus may determine a first motion vector included in the short predicted motion vector candidate and a direction associated with the first motion vector among the L0 direction and the L1 direction.
- a second motion vector can be derived by scaling in a different direction, and the method described above by deriving the single predicted motion vector candidate as a bi-predicted motion vector candidate including the first motion vector and the second motion vector. Can be applied.
- the first motion vector is a L0 direction motion vector
- a second motion vector that is an L1 direction motion vector may be derived by scaling in the L1 direction.
- a second motion vector that is a L0 direction motion vector may be derived by scaling in the L0 direction.
- the reference picture associated with the second motion vector includes the second reference area having a minimum residual between the first reference area indicated by the first motion vector and the second reference area indicated by the second motion vector. It may be a picture to include.
- the decoding apparatus may select the specific candidate based on a comparison of magnitudes of absolute values of the motion vectors.
- the decoding apparatus may compare the magnitude of the absolute value of the motion vector of each motion vector candidate to the motion information candidate list.
- the decoding apparatus may select a motion vector candidate having a minimum absolute value of the motion vector as a specific candidate.
- the motion vector candidate is a unidirectional motion vector candidate
- the motion vector of the short prediction motion vector candidate may be a L0 direction motion vector or an L1 direction motion vector.
- the decoding apparatus may additionally consider and consider a bi-prediction motion vector candidate.
- the decoding apparatus may determine each motion vector by dividing the L0 direction motion vector and the L1 direction motion vector included in the bi-predicted motion vector candidate, and include each motion vector as a candidate of the motion information candidate list. .
- the decoding apparatus may acquire a bilateral / template selection flag through a bitstream, and select a matching method for comparing candidates of the motion information candidate list based on the value of the bilateral / template selection flag.
- the decoding apparatus derives the motion vector of the current block based on the specific candidate (S1420).
- the motion vector of the current block may be one of a bi-prediction motion vector and a uni-prediction motion vector.
- the decoding apparatus generates a predictive sample of the current block based on the motion vector of the current block (S1430).
- the decoding apparatus may obtain a predictive sample value on the reference picture indicated by the motion vector, and generate the predictive sample.
- the decoding apparatus may generate a reconstructed sample for the current sample based on the prediction value.
- the decoding apparatus may obtain a residual signal from the bitstream received from the encoding apparatus, and generate a residual sample for the current sample.
- the decoding apparatus may generate the reconstructed sample based on the prediction sample and the residual sample.
- the decoding apparatus may generate a reconstructed picture based on the reconstructed sample.
- the data amount of prediction mode information indicating the inter prediction mode can be reduced, thereby improving the overall coding efficiency.
- the process of searching for the motion vector of the current block by selecting the motion vector candidate of the current block can be reduced, thereby reducing the computational complexity and improving the overall coding efficiency.
- the above-described method according to the present invention may be implemented in software, and the encoding device and / or the decoding device according to the present invention may perform image processing of, for example, a TV, a computer, a smartphone, a set-top box, a display device, and the like. It can be included in the device.
- the above-described method may be implemented as a module (process, function, etc.) for performing the above-described function.
- the module may be stored in memory and executed by a processor.
- the memory may be internal or external to the processor and may be coupled to the processor by various well known means.
- the processor may include application-specific integrated circuits (ASICs), other chipsets, logic circuits, and / or data processing devices.
- the memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory card, storage medium and / or other storage device.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명에 따른 디코딩 장치에 의하여 수행되는 인터 예측 방법은 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계, 상기 움직임 정보 후보 리스트 내의 후보들의 비교를 기반으로 특정 후보를 선택하는 단계, 상기 특정 후보를 기반으로 상기 현재 블록의 움직임 벡터를 도출하는 단계, 및 상기 현재 블록의 상기 움직임 벡터를 기반으로 상기 현재 블록의 예측 샘플을 생성하는 단계를 포함함을 특징으로 한다. 본 발명에 따르면 인터 예측 모드를 나타내는 예측 모드 정보의 데이터량을 줄일 수 있고, 현재 블록의 움직임 벡터 후보를 선별하여 현재 블록의 움직임 벡터를 탐색하는 과정을 줄일 수 있어, 계산 복잡도를 줄일 수 있고 전반적인 코딩 효율을 향상시킬 수 있다.
Description
본 발명은 영상 코딩 기술에 관한 것으로서 보다 상세하게는 영상 코딩 시스템에서 인터 예측 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위해 고효율의 영상 압축 기술이 요구된다.
본 발명의 기술적 과제는 영상 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.
본 발명의 다른 기술적 과제는 인터 예측(inter prediction)의 효율을 향상시키기 위한 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 수정된 인터 예측 모드에 기반한 효율적인 움직임 벡터 도출(derive) 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 움직임 벡터 후보들 중 보다 정확한 움직임 벡터를 도출 하기 위한 매칭(matching) 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 주변 블록을 기반으로 도출된 움직임 벡터 후보를 선별하여 계산 복잡도를 줄이면서 보다 정확한 움직임 벡터를 도출하는 방법 및 장치를 제공함에 있다.
본 발명의 일 실시예에 따르면, 디코딩 장치에 의하여 수행되는 영상 디코딩 방법이 제공된다. 상기 방법은 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계, 상기 움직임 정보 후보 리스트 내의 후보들의 비교를 기반으로 특정 후보를 선택하는 단계, 상기 특정 후보를 기반으로 상기 현재 블록의 움직임 벡터를 도출하는 단계, 및 상기 현재 블록의 상기 움직임 벡터를 기반으로 상기 현재 블록의 예측 샘플을 생성하는 단계를 포함함을 특징으로 한다.
본 발명의 다른 일 실시예에 따르면, 인터 예측을 수행하는 디코딩 장치가 제공된다. 상기 디코딩 장치는 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하고, 상기 움직임 정보 후보 리스트 내의 후보들의 비교를 기반으로 특정 후보를 선택하고, 상기 특정 후보를 기반으로 상기 현재 블록의 움직임 벡터를 도출하고, 상기 현재 블록의 상기 움직임 벡터를 기반으로 상기 현재 블록의 예측 샘플을 생성하는 예측부를 포함함을 특징으로 한다.
본 발명의 또 다른 일 실시예에 따르면, 인코딩 장치에 의하여 수행되는 비디오 인코딩 방법을 제공한다. 상기 방법은 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계, 상기 움직임 정보 후보 리스트 내의 후보들의 비교를 기반으로 특정 후보를 선택하는 단계, 상기 특정 후보를 기반으로 상기 현재 블록의 움직임 벡터를 도출하는 단계, 상기 현재 블록의 상기 움직임 벡터를 기반으로 상기 현재 블록의 예측 샘플을 생성하는 단계, 및 상기 인터 예측 모드를 나타내는 예측 모드 정보를 인코딩하여 출력하는 단계를 포함함을 특징으로 한다.
본 발명의 또 다른 일 실시예에 따르면, 비디오 인코딩 장치를 제공한다. 상기 인코딩 장치는 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하고, 상기 움직임 정보 후보 리스트 내의 후보들의 비교를 기반으로 특정 후보를 선택하고, 상기 특정 후보를 기반으로 상기 현재 블록의 움직임 벡터를 도출하고, 상기 현재 블록의 상기 움직임 벡터를 기반으로 상기 현재 블록의 예측 샘플을 생성하는 예측부, 및 상기 인터 예측 모드를 나타내는 예측 모드 정보를 인코딩하여 출력하는 엔트로피 인코딩부를 포함함을 특징으로 한다.
본 발명에 따르면 인터 예측 모드를 나타내는 예측 모드 정보의 데이터량을 줄일 수 있어 전반적인 코딩 효율을 향상시킬 수 있다.
본 발명에 따르면 현재 블록의 움직임 벡터 후보를 선별하여 현재 블록의 움직임 벡터를 탐색하는 과정을 줄일 수 있어 계산 복잡도를 줄일 수 있고, 전반적인 코딩 효율을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 비디오 인코딩 장치를 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 비디오 디코딩 장치를 개략적으로 도시한 블록도이다.
도 3은 수정된 인터 예측 모드가 적용된 현재 블록의 인코딩 방법을 예시적으로 나타낸다.
도 4는 수정된 인터 예측 모드가 적용된 현재 블록의 디코딩 방법을 예시적으로 나타낸다.
도 5는 bilateral 매칭 방법을 통한 움직임 벡터를 비교하는 일 예를 예시적으로 나타낸다.
도 6은 template 매칭 방법을 통한 움직임 벡터를 비교하는 일 예를 예시적으로 나타낸다.
도 7은 움직임 벡터 후보들을 도출하는 방법의 일 예를 예시적으로 나타낸다.
도 8은 주변 블록의 움직임 정보를 기반으로 현재 블록의 움직임 벡터를 도출하는 방법의 일 예를 예시적으로 나타낸다.
도 9는 움직임 벡터 후보들을 도출하는 방법의 일 예를 예시적으로 나타낸다.
도 10은 주변 블록의 움직임 정보를 기반으로 현재 블록의 움직임 벡터를 도출하는 방법의 일 예를 예시적으로 나타낸다.
도 11은 움직임 벡터 후보들을 도출하는 방법의 일 예를 예시적으로 나타낸다.
도 12는 주변 블록의 움직임 정보를 기반으로 현재 블록의 움직임 벡터를 도출하는 방법의 일 예를 예시적으로 나타낸다.
도 13은 본 발명에 따른 인코딩 장치에 의한 비디오 인코딩 방법을 개략적으로 나타낸다.
도 14는 본 발명에 따른 디코딩 장치에 의한 비디오 디코딩 방법을 개략적으로 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니다. 본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 비디오 인코딩 장치/디코딩 장치에서 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다.
도 1은 본 발명의 일 실시예에 따른 비디오 인코딩 장치를 개략적으로 도시한 블록도이다.
도 1을 참조하면, 인코딩 장치(100)는 픽처 분할부(105), 예측부(110), 변환부(115), 양자화부(120), 재정렬부(125), 엔트로피 인코딩부(130), 역양자화부(135), 역변환부(140), 필터부(145) 및 메모리(150)를 구비한다.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 단위 블록으로 분할할 수 있다. 이때, 처리 단위로서의 블록은 예측 유닛(Prediction Unit, PU)일 수도 있고, 변환 유닛(Transform Unit, TU)일 수도 있으며, 코딩 유닛(Coding Unit, CU)일 수도 있다. 픽처는 복수의 코딩 트리 유닛(Coding Tree Unit, CTU)들로 구성될 수 있으며, 각각의 CTU는 쿼드 트리(quad-tree) 구조로 CU들로 분할(split)될 수 있다. CU는 보다 하위(deeper) 뎁스의 CU들로 쿼드 트리 구조로 분할될 수도 있다. PU 및 TU는 CU로부터 획득될 수 있다. 예를 들어, PU는 CU로부터 대칭 또는 비대칭 사각형 구조로 파티셔닝(partitioning)될 수 있다. 또한 TU는 CU로부터 쿼드 트리 구조로 분할될 수도 있다.
예측부(110)는 후술하는 바와 같이, 인터 예측을 수행하는 인터 예측부와 인트라 예측을 수행하는 인트라 예측부를 포함한다. 예측부(110)는, 픽처 분할부(105)에서 픽처의 처리 단위에 대하여 예측을 수행하여 예측 샘플(또는 예측 샘플 어레이)을 포함하는 예측 블록을 생성한다. 예측부(110)에서 픽처의 처리 단위는 CU일 수도 있고, TU일 수도 있고, PU일 수도 있다. 또한, 예측부(110)는 해당 처리 단위에 대하여 실시되는 예측이 인터 예측인지 인트라 예측인지를 결정하고, 각 예측 방법의 구체적인 내용(예컨대, 예측 모드 등)을 정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 예측 방법의 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 PU 단위로 결정되고, 예측의 수행은 TU 단위로 수행될 수도 있다.
인터 예측을 통해서는 현재 픽처의 이전 픽처 및/또는 이후 픽처 중 적어도 하나의 픽처의 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다. 또한, 인트라 예측을 통해서는 현재 픽처 내의 픽셀 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 예측의 방법으로서, 스킵(skip) 모드, 머지(merge) 모드, AMVP(Advanced Motion Vector Prediction) 등을 이용할 수 있다. 인터 예측에서는 PU에 대하여, 참조 픽처를 선택하고 PU에 대응하는 참조 블록을 선택할 수 있다. 참조 블록은 정수 픽셀(또는 샘플) 또는 분수 픽셀(또는 샘플) 단위로 선택될 수 있다. 이어서, PU와의 레지듀얼(residual) 신호가 최소화되며 움직임 벡터 크기 역시 최소가 되는 예측 블록이 생성된다.
예측 블록은 정수 픽셀 단위로 생성될 수도 있고, 1/2 픽셀 단위 또는 1/4 픽셀 단위와 같이 정수 이하 픽셀 단위로 생성될 수도 있다. 이때, 움직임 벡터 역시 정수 픽셀 이하의 단위로 표현될 수 있다.
인터 예측을 통해 선택된 참조 픽처의 인덱스, 움직임 벡터 차분(motion vector difference, MDV), 움직임 벡터 예측자(motion vector predictor, MVP), 레지듀얼 신호 등의 정보는 엔트로피 인코딩되어 디코딩 장치에 전달될 수 있다. 스킵 모드가 적용되는 경우에는 레지듀얼을 예측 블록을 복원 블록으로 할 수 있으므로, 레지듀얼을 생성, 변환, 양자화, 전송하지 않을 수 있다.
인트라 예측을 수행하는 경우에는, PU 단위로 예측 모드가 정해져서 PU 단위로 예측이 수행될 수 있다. 또한, PU 단위로 예측 모드가 정해지고 TU 단위로 인트라 예측이 수행될 수도 있다.
인트라 예측에서 예측 모드는 예를 들어 33개의 방향성 예측 모드와 적어도 2개 이상의 비방향성 모드를 가질 수 있다. 비방향성 모드는 DC 예측 모드 및 플래너 모드(Planar 모드)을 포함할 수 있다.
인트라 예측에서는 참조 샘플에 필터를 적용한 후 예측 블록을 생성할 수 있다. 이때, 참조 샘플에 필터를 적용할 것인지는 현재 블록의 인트라 예측 모드 및/또는 사이즈에 따라 결정될 수 있다.
생성된 예측 블록과 원본 블록 사이의 레지듀얼 값(레지듀얼 블록 또는 레지듀얼 신호)은 변환부(115)로 입력된다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 레지듀얼 값과 함께 엔트로피 인코딩부(130)에서 인코딩되어 디코딩 장치에 전달된다.
변환부(115)는 변환 블록 단위로 레지듀얼 블록에 대한 변환을 수행하고 변환 계수를 생성한다.
변환 블록은 샘플들의 직사각형 블록으로서 동일한 변환이 적용되는 블록이다. 변환 블록은 변환 유닛(TU)일 수 있으며, 쿼드 트리(quad tree) 구조를 가질 수 있다.
변환부(115)는 레지듀얼 블록에 적용된 예측 모드와 블록의 크기에 따라서 변환을 수행할 수 있다.
예컨대, 레지듀얼 블록에 인트라 예측이 적용되었고 블록이 4x4의 레지듀얼 배열(array)이라면, 레지듀얼 블록을 DST(Discrete Sine Transform)를 이용하여 변환하고, 그 외의 경우라면 레지듀얼 블록을 DCT(Discrete Cosine Transform)를 이용하여 변환할 수 있다.
변환부(115)는 변환에 의해 변환 계수들의 변환 블록을 생성할 수 있다.
양자화부(120)는 변환부(115)에서 변환된 레지듀얼 값들, 즉 변환 계수들을 양자화하여 양자화된 변환 계수를 생성할 수 있다. 양자화부(120)에서 산출된 값은 역양자화부(135)와 재정렬부(125)에 제공된다.
재정렬부(125)는 양자화부(120)로부터 제공된 양자화된 변환 계수를 재정렬한다. 양자화된 변환 계수를 재정렬함으로써 엔트로피 인코딩부(130)에서의 인코딩 효율을 높일 수 있다.
재정렬부(125)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원 블록 형태의 양자화된 변환 계수들을 1차원의 벡터 형태로 재정렬할 수 있다.
엔트로피 인코딩부(130)는 재정렬부(125)에 의해 재정렬된 양자화된 변환 값들 또는 코딩 과정에서 산출된 인코딩 파라미터 값 등을 기초로 심볼(symbol)을 확률 분포에 따라 엔트로피 코딩하여 비트스트림(bitstream)을 출력할 수 있다. 엔트로피 인코딩 방법은 다양한 값을 갖는 심볼을 입력 받아, 통계적 중복성을 제거하면서, 디코딩 가능한 2진수의 열로 표현하는 방법이다.
여기서, 심볼이란 인코딩/디코딩 대상 구문 요소(syntax element) 및 코딩 파라미터(coding parameter), 레지듀얼 신호(residual signal)의 값 등을 의미한다. 인코딩 파라미터는 인코딩 및 디코딩에 필요한 매개변수로서, 구문 요소와 같이 인코딩 장치에서 인코딩되어 디코딩 장치로 전달되는 정보뿐만 아니라, 인코딩 혹은 디코딩 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 인코딩하거나 디코딩할 때 필요한 정보를 의미한다. 인코딩 파라미터는 예를 들어 인트라/인터 예측모드, 이동/움직임 벡터, 참조 영상 색인, 코딩 블록 패턴, 잔여 신호 유무, 변환 계수, 양자화된 변환 계수, 양자화 파라미터, 블록 크기, 블록 분할 정보 등의 값 또는 통계를 포함할 수 있다. 또한 잔여 신호는 원신호와 예측 신호의 차이를 의미할 수 있고, 또한 원신호와 예측 신호의 차이가 변환(transform)된 형태의 신호 또는 원신호와 예측 신호의 차이가 변환되고 양자화된 형태의 신호를 의미할 수도 있다. 잔여 신호는 블록 단위에서는 잔여 블록이라 할 수 있고, 샘플 단위에서는 잔여 샘플이라고 할 수 있다.
엔트로피 인코딩이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 인코딩 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 인코딩을 통해서 영상 인코딩의 압축 성능이 높아질 수 있다.
엔트로피 인코딩을 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 인코딩 방법이 사용될 수 있다. 예를 들어, 엔트로피 인코딩부(130)에는 가변 길이 코딩(VLC: Variable Length Coding/Code) 테이블과 같은 엔트로피 인코딩을 수행하기 위한 테이블이 저장될 수 있고, 엔트로피 인코딩부(130)는 저장된 가변 길이 코딩(VLC) 테이블을 사용하여 엔트로피 인코딩을 수행할 수 있다. 또한 엔트로피 인코딩부(130)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출(derive)한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 인코딩을 수행할 수도 있다.
또한, 엔트로피 인코딩부(130)는 필요한 경우에, 전송하는 파라미터 셋(parameter set) 또는 신택스에 일정한 변경을 가할 수도 있다.
역양자화부(135)는 양자화부(120)에서 양자화된 값(양자화된 변환 계수)들을 역양자화하고, 역변환부(140)는 역양자화부(135)에서 역양자화된 값들을 역변환한다.
역양자화부(135) 및 역변환부(140)에서 생성된 레지듀얼 값(또는 레지듀얼 샘플 또는 레지듀얼 샘플 어레이)과 예측부(110)에서 예측된 예측 블록이 합쳐져 복원 샘플(또는 복원 샘플 어레이)를 포함하는 복원 블록(Reconstructed Block)이 생성될 수 있다.
도 1에서는 가산기를 통해서, 레지듀얼 블록과 예측 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수도 있다.
필터부(145)는 디블록킹 필터, ALF(Adaptive Loop Filter), SAO(Sample Adaptive Offset)를 복원된 픽처에 적용할 수 있다.
디블록킹 필터는 복원된 픽처에서 블록 간의 경계에 생긴 왜곡을 제거할 수 있다. ALF(Adaptive Loop Filter)는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. ALF는 고효율을 적용하는 경우에만 수행될 수도 있다. SAO는 디블록킹 필터가 적용된 레지듀얼 블록에 대하여, 픽셀 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band Offset), 엣지 오프셋(Edge Offset) 등의 형태로 적용된다.
한편, 인터 예측에 사용되는 복원 블록에 대해서 필터부(145)는 필터링을 적용하지 않을 수도 있다.
메모리(150)는 필터부(145)를 통해 산출된 복원 블록 또는 픽처를 저장할 수 있다. 메모리(150)에 저장된 복원 블록 또는 픽처는 인터 예측을 수행하는 예측부(110)에 제공될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비디오 디코딩 장치를 개략적으로 나타낸 블록도이다. 도 2를 참조하면, 비디오 디코딩 장치(200)는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 메모리(240)를 포함할 수 있다.
비디오 인코딩 장치에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 비디오 인코딩 장치에서 영상 정보가 처리된 절차에 따라서 디코딩될 수 있다.
엔트로피 디코딩부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 디코딩하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 디코딩 방법은 2진수의 열을 입력 받아 각 심볼들을 생성하는 방법이다. 엔트로피 디코딩 방법은 상술한 엔트로피 인코딩 방법과 유사하다.
예컨대, 비디오 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CAVLC 등의 가변 길이 코딩(Variable Length Coding: VLC, 이하 'VLC' 라 함)가 사용된 경우에, 엔트로피 디코딩부(210)도 인코딩 장치에서 사용한 VLC 테이블과 동일한 VLC 테이블로 구현하여 엔트로피 디코딩을 수행할 수 있다. 또한, 비디오 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CABAC을 이용한 경우에, 엔트로피 디코딩부(210)는 이에 대응하여 CABAC을 이용한 엔트로피 디코딩을 수행할 수 있다.
보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다.
엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측 블록을 생성하기 위한 정보는 예측부(230)로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수는 재정렬부(215)로 입력될 수 있다.
재정렬부(215)는 엔트로피 디코딩부(210)에서 엔트로피 디코딩된 비트스트림의 정보, 즉 양자화된 변환 계수를 인코딩 장치에서 재정렬한 방법을 기초로 재정렬할 수 있다.
재정렬부(215)는 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부(215)는 현재 블록(변환 블록)에 적용된 예측 모드와 변환 블록의 크기를 기반으로 계수에 대한 스캐닝을 수행하여 2 차원 블록 형태의 계수(양자화된 변환 계수) 배열(array)을 생성할 수 있다.
역양자화부(220)는 인코딩 장치에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 비디오 인코딩 장치에서 수행된 양자화 결과에 대해, 인코딩 장치의 변환부가 수행한 DCT 및 DST에 대해 역DCT 및/또는 역DST를 수행할 수 있다.
역변환은 인코딩 장치에서 결정된 전송 단위 또는 영상의 분할 단위를 기초로 수행될 수 있다. 인코딩 장치의 변환부에서 DCT 및/또는 DST는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 선택적으로 수행될 수 있고, 디코딩 장치의 역변환부(225)는 인코딩 장치의 변환부에서 수행된 변환 정보를 기초로 역변환을 수행할 수 있다.
예측부(230)는 엔트로피 디코딩부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(240)에서 제공된 이전에 디코딩된 블록 및/또는 픽처 정보를 기초로 예측 샘플(또는 예측 샘플 어레이)를 포함하는 예측 블록을 생성할 수 있다.
현재 PU에 대한 예측 모드가 인트라 예측(intra prediction) 모드인 경우에, 현재 픽처 내의 픽셀 정보를 기초로 예측 블록을 생성하는 인트라 예측을 수행할 수 있다.
현재 PU에 대한 예측 모드가 인터 예측(inter prediction) 모드인 경우에, 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처에 포함된 정보를 기초로 현재 PU에 대한 인터 예측을 수행할 수 있다. 이때, 비디오 인코딩 장치에서 제공된 현재 PU의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보는 인코딩 장치로부터 수신한 스킵 플래그, 머지 플래그 등을 확인하고 이에 대응하여 유도될 수 있다.
현재 픽처에 대한 인터 예측 시, 현재 블록과의 레지듀얼(residual) 신호가 최소화되며 움직임 벡터 크기 역시 최소가 되도록 예측 블록을 생성할 수 있다.
한편, 움직임 정보 도출 방식은 현재 블록의 예측 모드에 따라 달라질 수 있다. 인터 예측을 위해 적용되는 예측 모드에는 AMVP(Advanced Motion Vector Prediction) 모드, 머지(merge) 모드 등이 있을 수 있다.
일 예로, 머지 모드가 적용되는 경우, 인코딩 장치 및 디코딩 장치는 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 머지 후보 리스트를 생성할 수 있다. 머지 모드에서는 머지 후보 리스트에서 선택된 후보 블록의 움직임 벡터가 현재 블록의 움직임 벡터로 사용된다. 인코딩 장치는 상기 머지 후보 리스트에 포함된 후보 블록들 중에서 선택된 최적의 움직임 벡터를 갖는 후보 블록을 지시하는 머지 인덱스를 디코딩 장치로 전송할 수 있다. 이 때, 디코딩 장치는 상기 머지 인덱스를 이용하여, 현재 블록의 움직임 벡터를 도출할 수 있다.
다른 예로, AMVP(Advanced Motion Vector Prediction) 모드가 적용되는 경우, 인코딩 장치 및 디코딩 장치는 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 움직임 벡터 예측자 후보 리스트를 생성할 수 있다. 즉, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터는 움직임 벡터 후보로 사용될 수 있다. 인코딩 장치는 상기 리스트에 포함된 움직임 벡터 후보 중에서 선택된 최적의 움직임 벡터를 지시하는 예측 움직임 벡터 인덱스를 디코딩 장치로 전송할 수 있다. 이 때, 디코딩 장치는 상기 움직임 벡터 인덱스를 이용하여, 움직임 정보 후보 리스트에 포함된 움직임 벡터 후보 중에서, 현재 블록의 예측 움직임 벡터를 선택할 수 있다.
인코딩 장치는 현재 블록의 움직임 벡터(MV)와 움직임 벡터 예측자(MVP) 간의 움직임 벡터 차분(MVD)을 구할 수 있고, 이를 인코딩하여 디코딩 장치로 전송할 수 있다. 즉, MVD는 현재 블록의 MV에서 MVP를 뺀 값으로 구해질 수 있다. 이 때, 디코딩 장치는 수신된 움직임 벡터 차분을 디코딩할 수 있고, 디코딩된 움직임 벡터 차분과 움직임 벡터 예측자의 가산을 통해 현재 블록의 움직임 벡터를 도출할 수 있다.
인코딩 장치는 또한 참조 픽처를 지시하는 참조 픽처 인덱스 등을 디코딩 장치에 전송할 수 있다.
디코딩 장치는 주변 블록의 움직임 정보들을 이용하여 현재 블록의 움직임 벡터를 예측하고, 인코딩 장치로부터 수신한 레지듀얼을 이용하여 현재 블록에 대한 움직임 벡터를 유도할 수 있다. 디코딩 장치는 유도한 움직임 벡터와 인코딩 장치로부터 수신한 참조 픽처 인덱스 정보를 기반으로 현재 블록에 대한 예측 블록을 생성할 수 있다.
다른 예로, 머지(merge) 모드가 적용되는 경우, 인코딩 장치 및 디코딩 장치는 복원된 주변 블록의 움직임 정보 및/또는 콜 블록의 움직임 정보를 이용하여, 머지 후보 리스트를 생성할 수 있다. 즉, 인코딩 장치 및 디코딩 장치는 복원된 주변 블록 및/또는 콜 블록의 움직임 정보가 존재하는 경우, 이를 현재 블록에 대한 머지 후보로 사용할 수 있다.
인코딩 장치는 머지 후보 리스트에 포함된 머지 후보 중에서 최적의 인코딩 효율을 제공할 수 있는 머지 후보를 현재 블록에 대한 움직임 정보로 선택할 수 있다. 이 때, 상기 선택된 머지 후보를 지시하는 머지 인덱스가 비트스트림에 포함되어 디코딩 장치로 전송될 수 있다. 디코딩 장치는 상기 전송된 머지 인덱스를 이용하여, 머지 후보 리스트에 포함된 머지 후보 중에서 하나를 선택할 수 있으며, 상기 선택된 머지 후보를 현재 블록의 움직임 정보로 결정할 수 있다. 따라서, 머지 모드가 적용되는 경우, 복원된 주변 블록 및/또는 콜 블록에 대응하는 움직임 정보가 현재 블록의 움직임 정보로 그대로 사용될 수 있다. 디코딩 장치는 예측 블록과 인코딩 장치로부터 전송되는 레지듀얼을 더하여 현재 블록을 복원할 수 있다.
상술한 AMVP 및 머지 모드에서는, 현재 블록의 움직임 정보를 도출하기 위해, 복원된 주변 블록의 움직임 정보 및/또는 콜 블록의 움직임 정보가 사용될 수 있다.
화면 간 예측에 이용되는 다른 모드 중 하나인 스킵 모드의 경우에, 주변 블록의 정보를 그대로 현재 블록에 이용할 수 있다. 따라서 스킵 모드의 경우에, 인코딩 장치는 현재 블록의 움직임 정보로서 어떤 블록의 움직임 정보를 이용할 것인지를 지시하는 정보 외에 레지듀얼 등과 같은 신택스 정보를 디코딩 장치에 전송하지 않는다.
인코딩 장치 및 디코딩 장치는 상기 도출된 움직임 정보에 기반하여 현재 블록에 대한 움직임 보상을 수행함으로써, 현재 블록의 예측 블록을 생성할 수 있다. 여기서, 예측 블록은 현재 블록에 대한 움직임 보상 수행 결과 생성된, 움직임 보상된 블록을 의미할 수 있다. 또한, 복수의 움직임 보상된 블록은 하나의 움직임 보상된 영상을 구성할 수 있다.
복원 블록은 예측부(230)에서 생성된 예측 블록과 역변환부(225)에서 제공된 레지듀얼 블록을 이용해 생성될 수 있다. 도 2에서는 가산기에서 예측 블록과 레지듀얼 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수 있다. 여기서 상기 복원 블록은 상술한 바와 같이 복원 샘플(또는 복원 샘플 어레이)를 포함하고, 상기 예측 블록은 예측 샘플(또는 예측 샘플 어레이)를 포함하고, 상기 레지듀얼 블록은 레지듀얼 샘플(또는 레지듀얼 샘플 어레이)를 포함할 수 있다. 따라서, 복원 샘플(또는 복원 샘플 어레이)은 대응하는 예측 샘플(또는 예측 샘플 어레이)과 레지듀얼 샘플(레지듀얼 샘플 어레이)이 합쳐서 생성된다고 표현될 수도 있다.
스킵 모드가 적용되는 블록에 대하여는 레지듀얼이 전송되지 않으며 예측 블록을 복원 블록으로 할 수 있다.
복원된 블록 및/또는 픽처는 필터부(235)로 제공될 수 있다. 필터부(235)는 복원된 블록 및/또는 픽처에 디블록킹 필터링, SAO(Sample Adaptive Offset) 및/또는 ALF 등을 적용할 수 있다.
메모리(240)는 복원된 픽처 또는 블록을 저장하여 참조 픽처 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽처를 출력부로 제공할 수 있다.
디코딩 장치(200)에 포함되어 있는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 및 메모리(240) 중 영상의 디코딩에 직접적으로 관련된 구성요소들, 예컨대, 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 등을 다른 구성요소와 구분하여 디코더 또는 디코딩부로 표현할 수 있다.
또한, 디코딩 장치(200)는 비트스트림에 포함되어 있는 인코딩된 영상에 관련된 정보를 파싱(parsing)하는 도시되지 않은 파싱부를 더 포함할 수 있다. 파싱부는 엔트로피 디코딩부(210)를 포함할 수도 있고, 엔트로피 디코딩부(210)에 포함될 수도 있다. 이러한 파싱부는 또한 디코딩부의 하나의 구성요소로 구현될 수도 있다.
상술한 내용과 같이 인터 예측 모드로 코딩된 현재 블록의 움직임 벡터를 도출하는 방법은 상기 현재 블록의 주변 블록의 움직임 벡터를 그대로 사용하는 모드와 상기 현재 블록의 움직임 벡터에 대한 정보를 정확히 수신하여 도출하는 모드로 나눌 수 있다. 구체적으로 상기 현재 블록의 움직임 벡터를 도출하는 방법으로 머지 모드와 AMVP 모드 등이 있을 수 있다. 다만 상기 머지 모드의 경우 주변 후보 블록들 중 하나를 지시하기 위한 정보(ex. 머지 인덱스)가 전송되어야 하고, 또한 상기 AMVP 모드의 경우 주변 블록들을 기반으로 도출된 후보들 중 하나를 지시하기 위한 정보(ex. MVP 플래그) 및 추가적인 MVD(motion vector difference)가 여전히 전송되어야 한다.
따라서, 상기 인터 예측 모드를 수행하는 경우, 상기 인터 예측 모드에 관련된 부가 정보를 전송하기 위한 데이터량이 필요하며, 본 발명에서는 부가 정보의 전송을 없애거나 최소화한 수정된 인터 예측 모드를 제안한다. 본 발명에 따른 수정된 인터 예측 모드를 적용하면 상기 부가 정보에 대한 데이터량을 줄이거나 없앨 수 있어 전반적인 코딩효율을 향상시킬 수 있다. 본 발명에서는 상기 현재 블록의 주변 블록들의 움직임 벡터들을 유도하고, 상기 주변 블록의 움직임 벡터들 간 비교를 기반으로 상기 현재 블록의 움직임 벡터를 도출하는 상기 수정된 인터 예측 모드를 제공한다. 상기 수정된 인터 예측 모드는 FRUC(Frame Rate Up-Conversion) 모드라고 할 수도 있다. 상기 수정된 인터 예측 모드에서는 예를 들어 영상 내에서 객체가 일정한 속도로 움직이며, 이 때 픽셀값(샘플값)에 변화가 없음을 가정하여 영상의 코딩을 수행할 수 있다.
도 3은 수정된 인터 예측 모드가 적용된 현재 블록의 인코딩 방법을 예시적으로 나타낸다. 도 3을 참조하면 상기 현재 블록의 주변 블록들의 움직임 정보들을 기반으로 상기 현재 블록의 움직임 정보를 도출할 수 있다. 여기서 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스 중 적어도 하나를 포함할 수 있다. 인코딩 장치는 상기 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다(S300). 상기 주변 블록의 움직임 벡터 후보는 쌍예측(bi-predicted) 움직임 벡터 후보일 수 있고, 또는 L0 또는 L1 예측 움직임 벡터 후보일 수 있다. 상기 L0/ 또는 L1 예측 움직임 벡터 후보는 단예측 움직임 벡터 후보라고도 할 수 있다. 상기 쌍예측 움직임 벡터 후보는 L0 방향의 움직임 벡터 및 L1 방향의 움직임 벡터를 포함할 수 있고, 상기 단예측 움직임 벡터 후보는 상기 L0 방향 움직임 벡터 및 상기 L1 방향 움직임 벡터 중 하나만을 포함할 수 있다. 상기 L0은 참조 픽처 리스트 L0(list 0)를 나타내고, 상기 L1은 참조 픽처 리스트 L1(list 1)을 나타낸다. 구체적으로, 상기 주변 블록의 움직임 벡터 정보가 쌍예측 움직임 벡터 정보인 경우, L0 참조 픽처 인덱스 및 L0에 포함되는 참조 픽처와 연관된 움직임 벡터, L1 참조 픽처 인덱스 및 L1에 포함되는 참조 픽처와 연관된 움직임 벡터를 포함할 수 있다. 상기 주변 블록의 쌍예측 움직임 벡터 정보는 상기 현재 블록의 (쌍예측) 움직임 벡터 후보로 도출될 수 있다. 상기 주변 블록의 움직임 벡터 정보가 단예측 움직임 벡터 정보인 경우, L0 참조 픽처 인덱스 및 L0에 포함되는 참조 픽처와 연관된 움직임 벡터를 포함할 수 있고, 또는 L1 참조 픽처 인덱스 및 L1에 포함되는 참조 픽처와 연관된 움직임 벡터를 포함할 수 있다. 상기 주변 블록의 단예측 움직임 벡터 정보는 상기 현재 블록의 (단예측) 움직임 벡터 후보로 도출될 수도 있고, 또는 상기 주변 블록의 단예측 움직임 벡터 정보를 기반으로 상기 현재 블록의 쌍예측 움직임 벡터 후보를 도출할 수도 있다.
상기 현재 블록에 수정된 인터 예측 모드가 적용된 경우, 상기 움직임 벡터 후보에 포함된 움직임 벡터들을 L0 방향과 L1 방향으로 나눠 구분할 수 있다.
인코딩 장치는 bilateral 매칭(matching) 방법을 통해 상기 구분된 움직임 벡터들을 비교하여 상기 움직임 벡터들 중 최적의 움직임 벡터를 도출할 수 있고(S310), template 매칭(matching) 방법을 통해 상기 움직임 벡터들을 비교하여 상기 움직임 벡터들 중 최적의 움직임 벡터를 도출할 수 있다(S320). 또한, 인코딩 장치는 상기 bilateral 매칭 방법 및 상기 template 매칭 방법 중 더 나은 매칭 방법을 선택하고 최적의 움직임 벡터를 도출할 수 있다(S330). 상술한 움직임 벡터를 도출하는 방법 중 하나의 방법 또는 상기 방법들의 조합을 통하여 움직임 벡터를 도출할 수 있다(S340). 이 경우, 상기 움직임 벡터를 리파인하여 상기 현재 블록 내 각 서브 블록들의 움직임 벡터들을 보다 정밀하게 도출할 수 있다(S350). 한편 비록 도 3에서는 bilateral 매칭 방법 및 template 매칭 방법 둘 다가 도시되었으나, 이는 예시로서 상기 두 매칭 방법들 중 하나만 사용될 수고 있고, 이 경우 상기 S310 및 S320 중 하나 및 더 나은 매칭 방법을 선택하는 상기 S330 절차는 생략될 수 있다. 한편 S350 절차는 경우에 따라 생략될 수도 있다. 한편, 인코딩 장치는 상기 bilateral 매칭 방법 또는 template 매칭 방법의 선택에 대한 플래그 정보를 생성할 수 있고, 상기 플래그 정보를 인코딩하여 비트스트림 형태로 출력할 수 있다. 상기 플래그 정보의 값에 기반하여 디코딩 장치는 매칭 방법을 선택할 수 있다. 상기 bilateral 매칭 방법 및 상기 template 매칭 방법에 대하여는 후술한다.
도 4는 수정된 인터 예측 모드가 적용된 현재 블록의 디코딩 방법을 예시적으로 나타낸다. 도 4를 참조하면 상기 현재 블록의 주변 블록들의 움직임 벡터들을 기반으로 상기 현재 블록의 움직임 벡터를 도출할 수 있다. 디코딩 장치는 상기 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다(S400). 상기 주변 블록의 움직임 벡터 후보는 쌍예측 움직임 벡터 후보 또는 단예측 움직임 벡터 후보일 수 있다.
상기 현재 블록에 수정된 인터 예측 모드가 적용된 경우, 상기 움직임 벡터 후보에 포함된 움직임 벡터들을 L0 방향과 L1 방향으로 나눠 구분할 수 있다.
디코딩 장치는 인코딩 장치로부터 최적의 움직임 벡터를 도출하기 위한 매칭 방법에 대한 정보를 획득할 수 있고, 상기 매칭 방법에 따라 최적의 움직임 벡터를 도출할 수 있다(S410). 상기 매칭 방법은 상술한 bilateral 매칭 방법 또는 template 매칭 방법일 수 있다. 디코딩 장치는 상기 bilateral 매칭 방법 또는 template 매칭 방법의 선택에 대한 플래그를 비트스트림을 통하여 획득할 수 있다. 상기 플래그는 bilateral/template 선택 플래그라고 할 수도 있다. 상기 bilateral/template 선택 플래그의 값을 기반으로 디코딩 장치는 매칭 방법을 선택할 수 있다. 예를 들어, 상기 bilateral/template 선택 플래그의 값이 1인 경우, 상기 bilateral 매칭 방법을 수행할 수 있고, 또는 상기 플래그 정보의 값이 1인 경우, 상기 template 매칭 방법을 수행할 수 있다. 상기 bilateral 매칭 방법 및 상기 template 매칭 방법에 대하여는 후술한다. 디코딩 장치는 상기 움직임 벡터를 기반으로 상기 현재 블록의 움직임 벡터를 도출할 수 있다(S420). 이 경우, 상기 움직임 벡터를 리파인하여 상기 현재 블록 내 각 서브 블록들에 대한 보다 정밀한 움직임 벡터들을 도출할 수도 있다(S430). 한편 S430 절차는 경우에 따라 생략될 수도 있다.
최적의 움직임 벡터를 탐색하는 방법으로 예를 들어 bilateral 매칭 방법 및/또는 template 매칭 방법이 사용될 수 있다.
도 5는 bilateral 매칭 방법을 통한 움직임 벡터를 비교하는 일 예를 예시적으로 나타낸다. 상기 현재 블록에 수정된 인터 예측 모드가 적용된 경우, 상기 주변 블록들의 움직임 벡터에 대한 정보들에 포함된 움직임 벡터들을 L0 방향과 L1 방향으로 나눠 구분할 수 있다. 상기 구분된 움직임 벡터들을 순차적으로 하나씩 고른 후, 상기 현재 블록이 속한 픽처를 중심으로 보간(interpolation)하여 상기 L0 방향 및 L1 방향 중 상기 움직임 벡터들과 연관된 방향과 다른 방향의 상기 움직임 벡터들에 대응되는 움직임 벡터들을 도출할 수 있다. 예를 들어, 상기 현재 블록의 움직임 벡터 후보가 L0 방향의 움직임 벡터인 경우, 상기 움직임 벡터와 상기 현재 블록이 속한 픽처 사이의 시간적 거리(Temporal distance)를 기반으로 L1 방향으로 스케일링할 수 있고, 상기 움직임 벡터와 대응되는 L1 방향의 움직임 벡터를 도출할 수 있다. 상기 L1 방향의 움직임 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 L0 방향의 움직임 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 또한, 상기 현재 블록의 움직임 벡터 후보가 L1 방향의 움직임 벡터인 경우, 상기 움직임 벡터와 상기 현재 블록이 속한 픽처 사이의 시간적 거리(Temporal distance)를 기반으로 L0 방향으로 스케일링할 수 있고, 상기 움직임 벡터와 대응되는 L0 방향의 움직임 벡터를 도출할 수 있다. 상기 L0 방향의 움직임 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 L1 방향의 움직임 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
다음으로 상기 현재 블록의 움직임 벡터 후보에 포함된 움직임 벡터들 중 움직임 벡터가 가리키는 참조 영역과 상기 움직임 벡터에 대응되는 움직임 벡터가 가리키는 참조 영역의 차이가 가장 작은 움직임 벡터를 최적의 움직임 벡터로 도출할 수 있다. 즉, 상기 움직임 벡터가 가리키는 참조 영역과 상기 움직임 벡터에 대응되는 움직임 벡터가 가리키는 참조 영역의 위상(phase)에 따른 샘플들 간의 차분 값, 즉 레지듀얼을 도출할 수 있고, 상기 레지듀얼이 최소인 움직임 벡터를 상기 현재 블록의 최적의 움직임 벡터로 도출할 수 있다.
도 6은 template 매칭 방법을 통한 움직임 벡터를 비교하는 일 예를 예시적으로 나타낸다. 도 6을 참조하면 상기 현재 블록의 움직임 벡터 후보 중 하나의 움직임 벡터를 선택하여 상기 움직임 벡터가 가리키는 참조 영역의 주변 샘플들과 상기 현재 블록의 주변 샘플들을 비교할 수 있다. 상기 현재 블록에 수정된 인터 예측 모드가 적용된 경우, 상기 주변 블록들의 움직임 벡터에 대한 정보들에 포함된 움직임 벡터들을 L0 방향과 L1 방향으로 나눠 구분할 수 있다. 상기 구분된 움직임 벡터들을 순차적으로 선택하여 선택된 움직임 벡터가 가리키는 참조 영역을 도출할 수 있다. 상기 참조 영역의 주변 샘플들(600)의 값과 상기 현재 블록의 주변 샘플들(610)의 값을 비교할 수 있다. 상기 참조 영역(참조 블록)의 주변 샘플들(600)과 상기 현재 블록의 주변 샘플들(610)의 차분(또는 레지듀얼)을 도출하여 비교할 수 있고, 차분이 최소인 경우에 대한 상기 참조 영역을 가리키는 움직임 벡터를 현재 블록을 위한 최적의 움직임 벡터로 도출할 수 있다.
상술한 방법에 따르면 디코딩 장치는 상기 현재 블록의 움직임 벡터로 어떠한 움직임 벡터를 사용하였는지 인코딩 장치로부터 전송 받지 않을 수 있다. 따라서 상술한 최적의 움직임 벡터를 도출하기 위하여 디코딩 장치는 인코딩 장치와 동일한 방법으로 최적의 움직임 벡터를 찾을 필요가 있을 수 있다. 인코딩 장치와 동일한 방법으로 최적의 움직임 벡터를 찾을 경우, 정교한 움직임을 별도의 시그널링없이 찾아내어 예측할 수 있는 장점이 있다. 다만, 가능한 움직임 벡터 후보들을 모두 탐색해야 할 필요가 있어 디코딩 장치의 계산 복잡도가 상당히 증가할 수 있다. 따라서, 본 발명에서는 고려되어야 하는 움직임 벡터 후보들을 효율적으로 줄이는 방법을 추가적으로 제공한다.
도 7은 움직임 벡터 후보들을 도출하는 방법의 일 예를 예시적으로 나타낸다. 도 7을 참조하면 디코딩 장치는 현재 블록의 주변 블록의 움직임 정보를 활용하여 상기 현재 블록의 최적의 움직임 벡터를 선택할 수 있다. 디코딩 장치는 상기 주변 블록을 기반으로 쌍예측 움직임 벡터 후보들을 포함한 예비 움직임 정보 후보 리스트를 도출할 수 있다(S700). 디코딩 장치는 상기 후보 리스트에 포함된 움직임 벡터들 중 하나를 제1 앵커 벡터로 도출할 수 있다(S710). 상기 제1 앵커 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 상기 제1 앵커 벡터를 도출한 다음, 디코딩 장치는 상기 제1 앵커 벡터를 다른 방향으로 선형적으로 보간(interpolation)하여 제2 앵커 벡터를 도출할 수 있다(S720). 즉, 상기 제1 앵커 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 앵커 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 상기 제2 앵커 벡터를 도출할 수 있다. 예를 들어, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L1 방향으로 스케일링하여 L1방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 한편, 상기 제1 앵커 벡터가 L1 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
상기 제2 앵커 벡터를 도출한 후에 디코딩 장치는 상기 예비 움직임 정보 후보 리스트에 포함된 움직임 벡터들 중 상기 제1 앵커 벡터와 다른 방향의 움직임 벡터들, 즉, 상기 제2 앵커 벡터와 같은 방향의 움직임 벡터들을 상기 제2 앵커 벡터와 비교할 수 있고, 상기 제2 앵커 벡터의 값과 상기 같은 방향의 움직임 벡터들의 값 간의 차분 값을 도출할 수 있다(S730). 예를 들어, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, L1 방향 움직임 벡터들을 도출할 수 있고, 각 움직임 벡터의 값과 상기 제2 앵커 벡터의 값 사이의 차분 값을 도출할 수 있다. 한편, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, L1 방향 움직임 벡터들을 도출할 수 있고, 각 움직임 벡터의 값과 상기 제2 앵커 벡터의 값 사이의 차분 값을 도출할 수 있다.
상기 제2 앵커 벡터와 상기 움직임 벡터들 사이의 차분 값들을 도출한 경우, 디코딩 장치는 상기 차분 값들 중 기 설정된 임계값 이하인 차분 값들을 갖는 움직임 벡터들을 포함하여 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다(S740). 디코딩 장치는 상술한 방법을 통하여 주변 블록의 움직임 벡터 정보들 중 일부의 움직임 벡터들을 도출하여 최적의 움직임 벡터를 탐색할 수 있다.
상술한 방법을 이용할 경우, 상기 주변 블록의 모든 움직임 벡터로부터 최적의 움직임 벡터를 찾는 것이 아니라 일정 조건에 부합되는 움직임 벡터들을 선별한 후에 상기 움직임 벡터들 중 최적의 움직임 벡터를 탐색할 수 있다. 따라서, 상술한 방법을 이용하면 상기 최적의 움직임 벡터를 탐색하는 과정을 축소할 수 있다.
도 8은 주변 블록의 움직임 정보를 기반으로 현재 블록의 움직임 벡터를 도출하는 방법의 일 예를 예시적으로 나타낸다. 도 8을 참조하면 현재 블록의 주변 블록의 움직임 정보를 활용하여 상기 현재 블록의 최적의 움직임 벡터를 선택할 수 있다. 디코딩 장치는 상기 주변 블록을 기반으로 쌍예측 움직임 벡터 후보들을 포함한 예비 움직임 정보 후보 리스트를 도출할 수 있다(S800). 디코딩 장치는 상기 후보 리스트에 포함된 움직임 벡터들 중 하나를 제1 앵커 벡터로 도출할 수 있다(S810). 상기 제1 앵커 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 상기 제1 앵커 벡터를 도출한 다음, 디코딩 장치는 상기 제1 앵커 벡터를 다른 방향으로 선형적으로 보간(interpolation)하여 제2 앵커 벡터를 도출할 수 있다(S820). 즉, 상기 제1 앵커 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 앵커 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 상기 제2 앵커 벡터를 도출할 수 있다. 예를 들어, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L1 방향으로 스케일링하여 L1방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 한편, 상기 제1 앵커 벡터가 L1 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
상기 제2 앵커 벡터를 도출한 후에 디코딩 장치는 상기 예비 움직임 정보 후보 리스트에 포함된 움직임 벡터들 중 상기 제1 앵커 벡터와 다른 방향의 움직임 벡터들, 즉, 상기 제2 앵커 벡터와 같은 방향의 움직임 벡터들을 상기 제2 앵커 벡터와 비교할 수 있고, 상기 제2 앵커 벡터의 값과 상기 같은 방향의 움직임 벡터들의 값 간의 차분 값을 도출할 수 있다(S830). 예를 들어, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, L1 방향 움직임 벡터들을 도출할 수 있고, 각 움직임 벡터의 값과 상기 제2 앵커 벡터의 값 사이의 차분 값을 도출할 수 있다. 한편, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, L1 방향 움직임 벡터들을 도출할 수 있고, 각 움직임 벡터의 값과 상기 제2 앵커 벡터의 값 사이의 차분 값을 도출할 수 있다.
상기 제2 앵커 벡터와 상기 움직임 벡터들 사이의 차분 값들을 도출한 경우, 디코딩 장치는 상기 차분 값들 중 최소의 차분 값을 갖는 움직임 벡터를 상기 현재 블록의 움직임 벡터로 도출할 수 있다(S840). 상기 차분 값이 최소인 움직임 벡터를 최적의 움직임 벡터로 도출할 수 있다.
상술한 방법을 이용할 경우, 상기 주변 블록의 모든 움직임 벡터로부터 최적의 움직임 벡터를 찾는 것이 아니라 일정 조건에 부합되는 움직임 벡터를 최적의 움직임 벡터로 도출할 수 있다. 따라서, 상술한 방법을 이용하면 상기 최적의 움직임 벡터를 탐색하는 과정을 축소할 수 있다.
도 9는 움직임 벡터 후보들을 도출하는 방법의 일 예를 예시적으로 나타낸다. 도 9를 참조하면 현재 블록의 주변 블록의 움직임 정보를 활용하여 상기 현재 블록의 최적의 움직임 벡터를 선택할 수 있다. 디코딩 장치는 상기 주변 블록을 기반으로 쌍예측 움직임 벡터 후보들을 포함한 예비 움직임 정보 후보 리스트를 도출할 수 있다(S900). 다음으로 상기 쌍예측 움직임 벡터 후보에 포함된 L0 방향 움직임 벡터의 절대값과 L1 방향 움직임 벡터의 절대값 사이의 차분 값을 도출할 수 있다(S910). 각 쌍예측 움직임 벡터 후보의 차분 값을 도출한 경우, 디코딩 장치는 상기 차분 값들의 값을 기 설정된 임계값과 비교할 수 있고, 상기 임계값 이하의 차분 값을 갖는 움직임 벡터들을 포함하여 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다(S920). 디코딩 장치는 상술한 방법을 통하여 주변 블록의 움직임 벡터 정보들 중 상기 L0 방향 움직임 벡터 및 상기 L1 방향 움직임 벡터가 크기가 0인 벡터가 아니고, 상기 L0 방향 움직임 벡터의 절대값과 상기 L1 방향 움직임 벡터의 절대값 사이의 차분 값이 상기 임계값 이하인 쌍예측 움직임 벡터 후보들을 도출하여 최적의 움직임 벡터를 탐색할 수 있다.
상술한 방법을 이용할 경우, 상기 주변 블록의 모든 움직임 벡터로부터 최적의 움직임 벡터를 찾는 것이 아니라 일정 조건에 부합되는 움직임 벡터들을 선별한 후에 상기 움직임 벡터들 중 최적의 움직임 벡터를 탐색할 수 있다. 따라서, 상술한 방법을 이용하면 상기 최적의 움직임 벡터를 탐색하는 과정을 축소할 수 있다.
도 10은 주변 블록의 움직임 정보를 기반으로 현재 블록의 움직임 벡터를 도출하는 방법의 일 예를 예시적으로 나타낸다. 도 10을 참조하면 현재 블록의 주변 블록의 움직임 정보를 활용하여 상기 현재 블록의 최적의 움직임 벡터를 선택할 수 있다. 상기 주변 블록을 기반으로 쌍예측 움직임 벡터 후보들을 포함한 예비 움직임 정보 후보 리스트를 도출할 수 있다(S1000). 다음으로 상기 쌍예측 움직임 벡터 후보에 포함된 L0 방향 움직임 벡터의 절대값과 L1 방향 움직임 벡터의 절대값 사이의 차분 값을 도출할 수 있다(S1010). 쌍예측 움직임 벡터 후보들의 차분 값을 도출한 경우, 디코딩 장치는 최소의 차분 값을 갖는 쌍예측 움직임 벡터 후보를 최적의 움직임 벡터로 도출할 수 있다(S1020). 디코딩 장치는 상기 L0 방향 움직임 벡터 및 상기 L1 방향 움직임 벡터가 크기가 0인 벡터가 아니고, 상기 L0 방향 움직임 벡터의 절대값과 상기 L1 방향 움직임 벡터의 절대값 사이의 차분 값이 최소인 쌍예측 움직임 벡터 후보를 도출할 수 있다.
상술한 방법을 이용할 경우, 상기 주변 블록의 모든 움직임 벡터로부터 최적의 움직임 벡터를 찾는 것이 아니라 일정 조건에 부합되는 움직임 벡터를 최적의 움직임 벡터로 도출할 수 있다. 따라서, 상술한 방법을 이용하면 상기 최적의 움직임 벡터를 탐색하는 과정을 축소할 수 있다.
도 11은 움직임 벡터 후보들을 도출하는 방법의 일 예를 예시적으로 나타낸다. 도 11을 참조하면 현재 블록의 주변 블록의 움직임 정보를 활용하여 상기 현재 블록의 최적의 움직임 벡터를 선택할 수 있다. 디코딩 장치는 상기 주변 블록을 기반으로 단예측 움직임 벡터 후보들을 포함한 예비 움직임 정보 후보 리스트를 도출할 수 있다(S1100). 다음으로 상기 각 단예측 움직임 벡터 후보에 포함된 움직임 벡터의 절대값과 기 설정된 임계값을 비교할 수 있고, 상기 임계값 이하의 상기 절대값을 갖는 단예측 움직임 벡터 후보들을 포함하여 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다(S1110). 상기 각 단예측 움직임 벡터 후보의 움직임 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 수정된 인터 예측 모드가 적용되는 경우, 움직임 예측을 수행할 때 이상적으로 영상 내 객체의 움직임이 일정하고 샘플 값이 변하지 않는다고 가정할 수 있다. 이 경우, 움직임이 작은 벡터가 상술한 조건에 부합할 가능성이 가장 높다고 할 수 있다.
상술한 방법을 이용할 경우, 상기 주변 블록의 모든 움직임 벡터로부터 최적의 움직임 벡터를 찾는 것이 아니라 일정 조건에 부합되는 움직임 벡터들을 선별한 후에 상기 움직임 벡터들 중 최적의 움직임 벡터를 탐색할 수 있다. 따라서, 상술한 방법을 이용하면 상기 최적의 움직임 벡터를 탐색하는 과정을 축소할 수 있다.
도 12는 주변 블록의 움직임 정보를 기반으로 현재 블록의 움직임 벡터를 도출하는 방법의 일 예를 예시적으로 나타낸다. 도 12를 참조하면 현재 블록의 주변 블록의 움직임 정보를 활용하여 상기 현재 블록의 최적의 움직임 벡터를 선택할 수 있다. 상기 주변 블록을 기반으로 단예측 움직임 벡터 후보들을 포함한 예비 움직임 정보 후보 리스트를 도출할 수 있다(S1200). 다음으로 상기 단예측 움직임 벡터 후보들의 움직임 벡터들의 절대값을 비교할 수 있고, 최소의 절대값을 갖는 움직임 벡터를 상기 현재 블록의 움직임 벡터로 도출할 수 있다(S1210). 상기 각 단예측 움직임 벡터 후보의 움직임 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 수정된 인터 예측 모드가 적용되는 경우, 움직임 예측을 수행할 때 이상적으로 영상 내 객체의 움직임이 일정하고 샘플 값이 변하지 않는다고 가정할 수 있다. 이 경우, 움직임이 작은 벡터가 상술한 조건에 부합할 가능성이 가장 높다고 할 수 있다.
상술한 방법을 이용할 경우, 상기 주변 블록의 모든 움직임 벡터로부터 최적의 움직임 벡터를 찾는 것이 아니라 일정 조건에 부합되는 움직임 벡터를 최적의 움직임 벡터로 도출할 수 있다. 따라서, 상술한 방법을 이용하면 상기 최적의 움직임 벡터를 탐색하는 과정을 축소할 수 있다.
상술한 실시 예들 중 도 7 내지 도 10에 나타난 방법들의 경우, 주변 블록의 쌍예측 움직임 벡터 후보만을 고려하여 실시할 수 있다. 또한, 상기 쌍예측 움직임 벡터 후보뿐만 아니라 주변 블록의 단예측 움직임 벡터 후보를 추가적으로 고려하여 실시할 수도 있다. 이 경우, 상기 단예측 움직임 벡터 후보를 상기 쌍예측 움직임 벡터 후보와 같은 형태로 도출하여 실시할 수 있다. 구체적으로, 상기 단예측 움직임 벡터 후보에 포함된 움직임 벡터를 상기 L0 방향 및 L1 방향 중 상기 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 상기 움직임 벡터에 대응되는 움직임 벡터를 도출할 수 있다. 예를 들어, 상기 단예측 움직임 벡터 후보에 포함된 움직임 벡터가 L0 방향 움직임 벡터인 경우, 상기 L0 방향 움직임 벡터를 L1 방향으로 스케일링하여 상기 L0 방향 움직임 벡터에 대응되는 L1방향 움직임 벡터를 도출할 수 있다. 상기 L1 방향 움직임 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 L0 방향 움직임 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 한편, 단예측 움직임 벡터 후보에 포함된 움직임 벡터가 L1 방향 움직임 벡터인 경우, 상기 L1 방향 움직임 벡터를 L0 방향으로 스케일링하여 상기 L1 방향 움직임 벡터에 대응되는 L0 방향 움직임 벡터를 도출할 수 있다. 상기 L0 방향 움직임 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 L1 방향 움직임 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
또한, 상기 단예측 움직임 벡터 후보는 별도의 선별 과정 없이 모두 도 7 내지 도 10에 나타난 방법들의 현재 블록의 움직임 정보 후보 리스트의 후보로 추가될 수 있다. 또한, 상술한 도 11 내지 도 12에 나타난 방법들을 통해 단예측 움직임 벡터 후보를 선별하고, 선별된 단예측 움직임 벡터 후보를 도 7 내지 도 10에 나타난 방법들의 현재 블록의 움직임 정보 후보 리스트의 후보로 추가할 수 있다.
상술한 실시 예들 중 도 11 내지 도 12에 나타난 방법들의 경우, 주변 블록의 단예측 움직임 벡터 후보만을 고려하여 실시할 수 있다.
또한, 상기 단예측 움직임 벡터 후보뿐만 아니라 주변 블록의 쌍예측 움직임 벡터 후보를 추가적으로 고려하여 실시할 수도 있다. 이 경우, 상기 쌍예측 움직임 벡터 후보를 별도의 선별 과정 없이 모두 현재 블록의 움직임 정보 후보 리스트의 후보로 추가할 수 있다. 이 때, 상기 쌍예측 움직임 벡터 후보에 포함된 모든 움직임 벡터들, 즉, L0 방향 움직임 벡터 및 L1 방향 움직임 벡터 모두 최적의 움직임 벡터를 도출하기 위한 방법에 사용할 수 있다.
또한, 상술한 도 7 내지 도 10에 나타난 방법들을 통해 쌍예측 움직임 벡터 후보를 선별하고, 선별된 쌍예측 움직임 벡터 후보를 도 11 내지 도 12에 나타난 방법들의 현재 블록의 움직임 정보 후보 리스트의 후보로 추가할 수 있다.
한편, 인코딩 장치는 수정된 인터 예측 모드의 적용 여부를 나타내는 플래그를 디코딩 장치로 전송할 수 있다. 상기 플래그는 FRUC 플래그라고 할 수도 있다. 인코딩 장치는 현재 블록의 수정된 예측 모드의 적용 여부를 나타내는 정보를 상기 플래그를 통해 전송할 수 있다. 예를 들어, 상기 플래그의 값이 1이면 수정된 인터 예측 모드를 적용하여 상기 현재 블록의 최적의 움직임 벡터를 도출할 수 있고, 예를 들어 상기 FRUC 플래그의 값이 0이면 머지 모드 또는 AMVP 모드에 따라 상기 현재 블록의 움직임 벡터를 도출할 수 있다.
도 13은 본 발명에 따른 인코딩 장치에 의한 비디오 인코딩 방법을 개략적으로 나타낸다. 도 13에서 개시된 방법은 도 1에서 개시된 인코딩 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 13의 S1300 내지 S1330은 상기 인코딩 장치의 예측부에 의하여 수행될 수 있고, 상기 S1340은 상기 인코딩 장치의 엔트로피 인코딩부에 의하여 수행될 수 있다.
인코딩 장치는 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출한다(S1300). 상기 주변 블록의 움직임 벡터 후보는 쌍예측 움직임 벡터 후보 또는 단예측 움직임 벡터 후보일 수 있다. 상기 쌍예측 움직임 벡터 후보는 L0 방향의 움직임 벡터 및 L1 방향의 움직임 벡터를 포함할 수 있고, 상기 단예측 움직임 벡터 후보는 상기 L0 방향 움직임 벡터 및 상기 L1 방향 움직임 벡터 중 하나만을 포함할 수 있다.
인코딩 장치는 모든 움직임 벡터 정보를 후보로 도출하여 상기 움직임 정보 후보 리스트를 구성할 수 있다. 또한, 인코딩 장치는 상기 주변 블록의 움직임 벡터 정보 중 선별적으로 후보를 도출하여 상기 움직임 정보 후보 리스트를 구성할 수 있다.
예를 들어, 인코딩 장치는 상기 주변 블록을 기반으로 쌍예측 움직임 벡터 후보들을 포함한 제1 움직임 정보 후보 리스트를 도출할 수 있고, 인코딩 장치는 상기 제1 움직임 정보 후보 리스트 중 하나의 움직임 벡터를 제1 앵커 벡터로 도출할 수 있다. 상기 제1 앵커 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 상기 제1 앵커 벡터를 도출한 다음, 인코딩 장치는 상기 제1 앵커 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 앵커 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 앵커 벡터를 도출할 수 있다. 예를 들어, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L1 방향으로 스케일링하여 L1방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 한편, 상기 제1 앵커 벡터가 L1 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
상기 제2 앵커 벡터를 도출한 후에 인코딩 장치는 상기 제1 움직임 정보 후보 리스트 중 상기 제2 앵커 벡터와 동일한 방향이고 상기 제2 앵커 벡터와 크기 차가 기 설정된 임계값 이하인 움직임 벡터를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다. 예를 들어, 상기 제2 앵커 벡터가 L0 방향 움직임 벡터인 경우, L0 방향의 움직임 벡터들 중 상기 제2 앵커 벡터와 크기 차가 기 설정된 임계값 이하인 움직임 벡터를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다. 한편, 상기 제2 앵커 벡터가 L1 방향 움직임 벡터인 경우, L1 방향의 움직임 벡터들 중 상기 제2 앵커 벡터와 크기 차가 기 설정된 임계값 이하인 움직임 벡터를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다.
다른 예로, 인코딩 장치는 상기 주변 블록을 기반으로 제1 움직임 정보 후보 리스트를 도출할 수 있고, 제1 움직임 정보 후보 리스트에 포함된 각 쌍예측 움직임 벡터 후보의 L0 방향 움직임 벡터의 절대값 및 L1 방향 움직임 벡터의 절대값 간 차분 값을 도출할 수 있다. 인코딩 장치는 상기 차분 값이 기 설정된 임계값 이하인 상기 쌍예측 움직임 벡터 후보를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다. 상기 제1 움직임 정보 후보 리스트에 포함된 단예측 움직임 벡터 후보의 경우, 인코딩 장치는 상기 단예측 움직임 벡터 후보에 포함된 제1 움직임 벡터를 상기 L0 방향 및 상기 L1 방향 중 상기 제1 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 움직임 벡터를 도출할 수 있고, 상기 단예측 움직임 벡터 후보를 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 포함하는 쌍예측 움직임 벡터 후보로 도출하여 상술한 방법을 적용할 수 있다. 구체적으로, 상기 제1 움직임 벡터가 L0 방향 움직임 벡터인 경우, L1 방향으로 스케일링하여 L1 방향 움직임 벡터인 제2 움직임 벡터를 도출할 수 있다. 또한, 상기 제1 움직임 벡터가 L1 방향 움직임 벡터인 경우, L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 움직임 벡터를 도출할 수 있다. 이 경우, 상기 제2 움직임 벡터와 연관된 참조 픽처는 상기 제1 움직임 벡터가 가리키는 제1 참조 영역과 상기 제2 움직임 벡터가 가리키는 제2 참조 영역과의 레지듀얼이 최소가 되는 상기 제2 참조 영역을 포함하는 픽처일 수 있다.
다른 예로, 인코딩 장치는 상기 주변 블록을 기반으로 제1 움직임 정보 후보 리스트를 도출할 수 있고, 상기 제1 움직임 정보 후보 리스트에 각 움직임 벡터 후보의 움직임 벡터의 절대값이 기 설정된 임계값 이하인지 판단할 수 있다. 인코딩 장치는 상기 움직임 벡터의 절대값이 상기 임계값 이하인 움직임 벡터 후보를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다. 상기 움직임 벡터 후보가 단예측 움직임 벡터 후보인 경우, 상기 단예측 움직임 벡터 후보의 움직임 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 인코딩 장치는 쌍예측 움직임 벡터 후보를 추가적으로 고려하여 실시할 수도 있다. 인코딩 장치는 상기 쌍예측 움직임 벡터 후보에 포함된 L0 방향 움직임 벡터 및 L1 방향 움직임 벡터를 나눠서 각각의 움직임 벡터를 판단할 수 있고, 각각의 움직임 벡터를 상기 움직임 정보 후보 리스트의 후보로 포함할 수 있다.
한편, 인코딩 장치는 상기 현재 블록에 수정된 인터 예측 모드가 적용되는 경우, 상술한 방법을 기반으로 상기 움직임 정보 후보 리스트를 도출할 수 있고, FRUC 플래그를 생성할 수 있다. 상기 현재 블록의 수정된 인터 예측 모드가 적용되는 경우, 상기 FRUC 플래그의 값은 1로 나타날 수 있다.
인코딩 장치는 상기 움직임 정보 후보 리스트 내 후보들의 비교를 기반으로 특정 후보를 선택한다(S1310). 일 예로, 인코딩 장치는 bilateral 매칭 방법을 통하여 상기 움직임 정보 후보 리스트 내 후보들을 비교할 수 있다. 인코딩 장치는 상기 움직임 정보 후보 리스트에 포함된 움직임 벡터들을 L0 방향과 L1 방향으로 나눠 구분할 수 있다. 인코딩 장치는 상기 구분된 움직임 벡터들을 순차적으로 제1 움직임 벡터로 선택할 수 있다. 인코딩 장치는 상기 움직임 정보 후보 리스트에 포함된 상기 제1 움직임 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 상기 제1 움직임 벡터에 대응되는 제2 움직임 벡터를 도출할 수 있다. 예를 들어, 상기 제1 움직임 벡터가 L0 방향의 움직임 벡터인 경우, 상기 제1 움직임 벡터와 연관된 참조 픽처와 현재 픽처 사이의 시간적 거리(Temporal distance)를 기반으로 L1 방향으로 스케일링할 수 있고, 상기 제1 움직임 벡터에 대응되는 L1 방향의 상기 제2 움직임 벡터를 도출할 수 있다. 상기 제2 움직임 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 제1 움직임 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 또한, 제1 움직임 벡터가 L1 방향의 움직임 벡터인 경우, 상기 제1 움직임 벡터와 연관된 참조 픽처와 현재 픽처 사이의 시간적 거리(Temporal distance)를 기반으로 L0 방향으로 스케일링할 수 있고, 상기 제1 움직임 벡터와 대응되는 L0 방향의 상기 제2 움직임 벡터를 도출할 수 있다. 상기 제2 움직임 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 제1 움직임 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
다음으로 인코딩 장치는 상기 제1 움직임 벡터가 가리키는 참조 영역과 상기 제2 움직임 벡터가 가리키는 참조 영역의 레지듀얼을 도출할 수 있고, 상기 레지듀얼이 최소인 제1 움직임 벡터 및 제2 움직임 벡터를 상기 특정 후보로 선택할 수 있다. 즉, 상기 제1 움직임 벡터가 가리키는 참조 영역과 상기 제2 움직임 벡터가 가리키는 참조 영역의 위상(phase)에 따른 샘플들 간의 차분 값이 최소인 제1 움직임 벡터 및 제2 움직임 벡터를 상기 특정 후보로 도출할 수 있다.
다른 예로, 인코딩 장치는 template 매칭 방법을 통하여 상기 움직임 정보 후보 리스트 내 후보들을 비교할 수 있다. 인코딩 장치는 상기 움직임 정보 후보 리스트에 포함된 움직임 벡터1이 가리키는 참조 블록을 도출할 수 있다. 인코딩 장치는 상기 참조 블록의 주변 샘플의 값과 상기 주변 샘플에 대응되는 현재 블록의 주변 샘플의 값의 차분 값을 도출할 수 있다. 인코딩 장치는 상기 차분 값이 상기 움직임 정보 후보 리스트에 포함된 움직임 벡터들의 차분 값 중 최소인 경우, 상기 움직임 벡터1을 상기 특정 후보로 선택할 수 있다.
다른 예로, 인코딩 장치는 앵커(anchor) 벡터를 기반으로 특정 후보를 선택할 수 있다. 구체적으로, 인코딩 장치는 상기 움직임 정보 후보 리스트 중 하나의 움직임 벡터를 제1 앵커 벡터로 도출할 수 있다. 상기 제1 앵커 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 상기 제1 앵커 벡터를 도출한 다음, 인코딩 장치는 상기 제1 앵커 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 앵커 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 앵커 벡터를 도출할 수 있다. 예를 들어, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L1 방향으로 스케일링하여 L1방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 한편, 상기 제1 앵커 벡터가 L1 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
상기 제2 앵커 벡터를 도출한 후에 인코딩 장치는 상기 움직임 정보 후보 리스트 중 상기 제2 앵커 벡터와 동일한 방향이고 상기 제2 앵커 벡터와 크기 차가 최소인 움직임 벡터를 상기 특정 후보로 선택할 수 있다. 예를 들어, 상기 제2 앵커 벡터가 L0 방향 움직임 벡터인 경우, L0 방향의 움직임 벡터들 중 상기 제2 앵커 벡터와 크기 차가 최소인 움직임 벡터를 상기 특정 후보로 도출할 수 있다. 한편, 상기 제2 앵커 벡터가 L1 방향 움직임 벡터인 경우, L1 방향의 움직임 벡터들 중 상기 제2 앵커 벡터와 크기 차가 최소인 움직임 벡터를 상기 특정 후보로 도출할 수 있다.
다른 예로, 인코딩 장치는 상기 벡터 후보 리스트에 포함된 각 쌍예측 움직임 벡터 후보의 L0 방향 움직임 벡터의 절대값 및 L1 방향 움직임 벡터의 절대값 간 차분 값의 비교를 기반으로 상기 특정 후보를 선택할 수 있다. 인코딩 장치는 상기 움직임 정보 후보 리스트에 포함된 각 쌍예측 움직임 벡터 후보의 L0 방향 움직임 벡터의 절대값 및 L1 방향 움직임 벡터의 절대값 간 차분 값을 도출할 수 있다. 인코딩 장치는 상기 차분 값이 최소인 상기 쌍예측 움직임 벡터 후보를 상기 특정 후보로 선택할 수 있다. 상기 움직임 정보 후보 리스트에 포함된 단예측 움직임 벡터 후보의 경우, 인코딩 장치는 상기 단예측 움직임 벡터 후보에 포함된 제1 움직임 벡터를 상기 L0 방향 및 상기 L1 방향 중 상기 제1 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 움직임 벡터를 도출할 수 있고, 상기 단예측 움직임 벡터 후보를 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 포함하는 쌍예측 움직임 벡터 후보로 도출하여 상술한 방법을 적용할 수 있다. 구체적으로, 상기 제1 움직임 벡터가 L0 방향 움직임 벡터인 경우, L1 방향으로 스케일링하여 L1 방향 움직임 벡터인 제2 움직임 벡터를 도출할 수 있다. 또한, 상기 제1 움직임 벡터가 L1 방향 움직임 벡터인 경우, L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 움직임 벡터를 도출할 수 있다. 이 경우, 상기 제2 움직임 벡터와 연관된 참조 픽처는 상기 제1 움직임 벡터가 가리키는 제1 참조 영역과 상기 제2 움직임 벡터가 가리키는 제2 참조 영역과의 레지듀얼이 최소가 되는 상기 제2 참조 영역을 포함하는 픽처일 수 있다.
다른 예로, 인코딩 장치는 움직임 벡터의 절대값의 크기의 비교를 기반으로 상기 특정 후보를 선택할 수 있다. 인코딩 장치는 상기 움직임 정보 후보 리스트에 각 움직임 벡터 후보의 움직임 벡터의 절대값의 크기를 비교할 수 있다. 인코딩 장치는 상기 움직임 벡터의 절대값이 최소인 움직임 벡터 후보를 특정 후보로 선택할 수 있다. 상기 움직임 벡터 후보가 단예측 움직임 벡터 후보인 경우, 상기 단예측 움직임 벡터 후보의 움직임 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 인코딩 장치는 쌍예측 움직임 벡터 후보를 추가적으로 고려하여 실시할 수도 있다. 인코딩 장치는 상기 쌍예측 움직임 벡터 후보에 포함된 L0 방향 움직임 벡터 및 L1 방향 움직임 벡터를 나눠서 각각의 움직임 벡터를 판단할 수 있고, 각각의 움직임 벡터를 상기 움직임 정보 후보 리스트의 후보로 포함할 수 있다.
한편, 인코딩 장치는 상술한 매칭 방법의 선택에 대한 정보를 나타내는 bilateral/template 선택 플래그를 생성할 수 있다. 상기 bilateral/template 선택 플래그의 값은 상기 bilateral 매칭 방법 및 상기 template 매칭 방법에 대응될 수 있다.
인코딩 장치는 상기 특정 후보를 기반으로 상기 현재 블록의 움직임 벡터를 도출한다(S1320). 상기 현재 블록의 움직임 벡터는 쌍예측 움직임 벡터 및 단예측 움직임 벡터 중 하나일 수 있다.
인코딩 장치는 상기 현재 블록의 움직임 벡터를 기반으로 상기 현재 블록의 예측 샘플을 생성한다(S1330). 인코딩 장치는 상기 움직임 벡터가 가리키는 참조 픽처 상에서 예측 샘플 값을 획득하고, 상기 예측 샘플을 생성할 수 있다.
인코딩 장치는 상기 인터 예측 모드를 나타내는 예측 모드 정보를 인코딩하여 출력한다(S1340). 인코딩 장치는 상기 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 벡터를 도출하는 수정된 인터 예측 모드를 나타내는 상기 예측 모드 정보를 엔트로피 인코딩하고 비트스트림 형태로 출력할 수 있다. 또한, 인코딩 장치는 상기 현재 블록의 상기 수정된 인터 예측 모드 적용 여부를 판단할 수 있는 FRUC 플래그를 생성하고, 인코딩하여 상기 비트스트림 형태로 출력할 수 있다. 또한, 인코딩 장치는 상기 움직임 정보 후보 리스트 내 후보들의 비교를 위한 매칭 방법을 선택하는 bilateral/template 선택 플래그를 생성하고, 인코딩하여 상기 비트스트림 형태로 출력할 수 있다. 상기 상기 예측 모드 정보 및 상기 FRUC 플래그 및 상기 bilateral/template 선택 플래그는 상기 비트스트림 형태로 디코딩 장치로 전송될 수 있다. 상기 비트스트림은 네트워크 또는 저장 매체를 통하여 디코딩 장치로 전송될 수 있다.
비록 도시되지는 않았으나 인코딩 장치는 상기 현재 블록에 대한 레지듀얼 샘플에 관한 정보를 인코딩하여 출력할 수도 있다. 상기 레지듀얼 샘플에 관한 정보는 상기 레지듀얼 샘플에 관한 변환 계수들을 포함할 수 있다.
도 14는 본 발명에 따른 디코딩 장치에 의한 비디오 디코딩 방법을 개략적으로 나타낸다. 도 14에서 개시된 방법은 도 2에서 개시된 디코딩 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 14의 S1400 내지 S1430은 상기 디코딩 장치의 예측부에 의하여 수행될 수 있다.
디코딩 장치는 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출한다(S1400). 상기 주변 블록의 움직임 벡터 후보는 쌍예측 움직임 벡터 후보 또는 단예측 움직임 벡터 후보일 수 있다. 상기 쌍예측 움직임 벡터 후보는 L0 방향의 움직임 벡터 및 L1 방향의 움직임 벡터를 포함할 수 있고, 상기 단예측 움직임 벡터 후보는 상기 L0 방향 움직임 벡터 및 상기 L1 방향 움직임 벡터 중 하나만을 포함할 수 있다.
디코딩 장치는 모든 움직임 벡터 정보를 후보로 도출하여 상기 움직임 정보 후보 리스트를 구성할 수 있다. 또한, 디코딩 장치는 상기 주변 블록의 움직임 벡터 정보 중 선별적으로 후보를 도출하여 상기 움직임 정보 후보 리스트를 구성할 수 있다.
예를 들어, 디코딩 장치는 상기 주변 블록을 기반으로 쌍예측 움직임 벡터 후보들을 포함한 제1 움직임 정보 후보 리스트를 도출할 수 있고, 디코딩 장치는 상기 제1 움직임 정보 후보 리스트 중 하나의 움직임 벡터를 제1 앵커 벡터로 도출할 수 있다. 상기 제1 앵커 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 상기 제1 앵커 벡터를 도출한 다음, 디코딩 장치는 상기 제1 앵커 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 앵커 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 앵커 벡터를 도출할 수 있다. 예를 들어, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L1 방향으로 스케일링하여 L1방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 한편, 상기 제1 앵커 벡터가 L1 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
상기 제2 앵커 벡터를 도출한 후에 디코딩 장치는 상기 제1 움직임 정보 후보 리스트 중 상기 제2 앵커 벡터와 동일한 방향이고 상기 제2 앵커 벡터와 크기 차가 기 설정된 임계값 이하인 움직임 벡터를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다. 예를 들어, 상기 제2 앵커 벡터가 L0 방향 움직임 벡터인 경우, L0 방향의 움직임 벡터들 중 상기 제2 앵커 벡터와 크기 차가 기 설정된 임계값 이하인 움직임 벡터를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다. 한편, 상기 제2 앵커 벡터가 L1 방향 움직임 벡터인 경우, L1 방향의 움직임 벡터들 중 상기 제2 앵커 벡터와 크기 차가 기 설정된 임계값 이하인 움직임 벡터를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다.
다른 예로, 디코딩 장치는 상기 주변 블록을 기반으로 제1 움직임 정보 후보 리스트를 도출할 수 있고, 제1 움직임 정보 후보 리스트에 포함된 각 쌍예측 움직임 벡터 후보의 L0 방향 움직임 벡터의 절대값 및 L1 방향 움직임 벡터의 절대값 간 차분 값을 도출할 수 있다. 디코딩 장치는 상기 차분 값이 기 설정된 임계값 이하인 상기 쌍예측 움직임 벡터 후보를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다. 상기 제1 움직임 정보 후보 리스트에 포함된 단예측 움직임 벡터 후보의 경우, 디코딩 장치는 상기 단예측 움직임 벡터 후보에 포함된 제1 움직임 벡터를 상기 L0 방향 및 상기 L1 방향 중 상기 제1 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 움직임 벡터를 도출할 수 있고, 상기 단예측 움직임 벡터 후보를 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 포함하는 쌍예측 움직임 벡터 후보로 도출하여 상술한 방법을 적용할 수 있다. 구체적으로, 상기 제1 움직임 벡터가 L0 방향 움직임 벡터인 경우, L1 방향으로 스케일링하여 L1 방향 움직임 벡터인 제2 움직임 벡터를 도출할 수 있다. 또한, 상기 제1 움직임 벡터가 L1 방향 움직임 벡터인 경우, L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 움직임 벡터를 도출할 수 있다. 이 경우, 상기 제2 움직임 벡터와 연관된 참조 픽처는 상기 제1 움직임 벡터가 가리키는 제1 참조 영역과 상기 제2 움직임 벡터가 가리키는 제2 참조 영역과의 레지듀얼이 최소가 되는 상기 제2 참조 영역을 포함하는 픽처일 수 있다.
다른 예로, 디코딩 장치는 상기 주변 블록을 기반으로 제1 움직임 정보 후보 리스트를 도출할 수 있고, 상기 제1 움직임 정보 후보 리스트에 각 움직임 벡터 후보의 움직임 벡터의 절대값이 기 설정된 임계값 이하인지 판단할 수 있다. 디코딩 장치는 상기 움직임 벡터의 절대값이 상기 임계값 이하인 움직임 벡터 후보를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출할 수 있다. 상기 움직임 벡터 후보가 단예측 움직임 벡터 후보인 경우, 상기 단예측 움직임 벡터 후보의 움직임 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 디코딩 장치는 쌍예측 움직임 벡터 후보를 추가적으로 고려하여 실시할 수도 있다. 디코딩 장치는 상기 쌍예측 움직임 벡터 후보에 포함된 L0 방향 움직임 벡터 및 L1 방향 움직임 벡터를 나눠서 각각의 움직임 벡터를 판단할 수 있고, 각각의 움직임 벡터를 상기 움직임 정보 후보 리스트의 후보로 포함할 수 있다.
한편, 디코딩 장치는 비트스트림을 통하여 FRUC 플래그를 획득할 수 있고, 상기 FRUC 플래그의 값이 1인 경우, 상기 현재 블록에 수정된 인터 예측 모드가 적용된 것으로 판단할 수 있다. 상기 현재 블록에 상기 수정된 인터 예측 모드가 적용되는 경우, 디코딩 장치는 상기 움직임 정보 후보 리스트를 상술한 방법을 통하여 도출할 수 있다.
디코딩 장치는 상기 움직임 정보 후보 리스트 내 후보들의 비교를 기반으로 특정 후보를 선택한다(S1410). 일 예로, 디코딩 장치는 bilateral 매칭 방법을 통하여 상기 움직임 정보 후보 리스트 내 후보들을 비교할 수 있다. 디코딩 장치는 상기 움직임 정보 후보 리스트에 포함된 움직임 벡터들을 L0 방향과 L1 방향으로 나눠 구분할 수 있다. 디코딩 장치는 상기 구분된 움직임 벡터들을 순차적으로 제1 움직임 벡터로 선택할 수 있다. 디코딩 장치는 상기 움직임 정보 후보 리스트에 포함된 상기 제1 움직임 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 상기 제1 움직임 벡터에 대응되는 제2 움직임 벡터를 도출할 수 있다. 예를 들어, 상기 제1 움직임 벡터가 L0 방향의 움직임 벡터인 경우, 상기 제1 움직임 벡터와 연관된 참조 픽처와 현재 픽처 사이의 시간적 거리(Temporal distance)를 기반으로 L1 방향으로 스케일링할 수 있고, 상기 제1 움직임 벡터에 대응되는 L1 방향의 상기 제2 움직임 벡터를 도출할 수 있다. 상기 제2 움직임 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 제1 움직임 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 또한, 제1 움직임 벡터가 L1 방향의 움직임 벡터인 경우, 상기 제1 움직임 벡터와 연관된 참조 픽처와 현재 픽처 사이의 시간적 거리(Temporal distance)를 기반으로 L0 방향으로 스케일링할 수 있고, 상기 제1 움직임 벡터와 대응되는 L0 방향의 상기 제2 움직임 벡터를 도출할 수 있다. 상기 제2 움직임 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 제1 움직임 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
다음으로 디코딩 장치는 상기 제1 움직임 벡터가 가리키는 참조 영역과 상기 제2 움직임 벡터가 가리키는 참조 영역의 레지듀얼을 도출할 수 있고, 상기 레지듀얼이 최소인 제1 움직임 벡터 및 제2 움직임 벡터를 상기 특정 후보로 선택할 수 있다. 즉, 상기 제1 움직임 벡터가 가리키는 참조 영역과 상기 제2 움직임 벡터가 가리키는 참조 영역의 위상(phase)에 따른 샘플들 간의 차분 값이 최소인 제1 움직임 벡터 및 제2 움직임 벡터를 상기 특정 후보로 도출할 수 있다.
다른 예로, 디코딩 장치는 template 매칭 방법을 통하여 상기 움직임 정보 후보 리스트 내 후보들을 비교할 수 있다. 디코딩 장치는 상기 움직임 정보 후보 리스트에 포함된 움직임 벡터1이 가리키는 참조 블록을 도출할 수 있다. 디코딩 장치는 상기 참조 블록의 주변 샘플의 값과 상기 주변 샘플에 대응되는 현재 블록의 주변 샘플의 값의 차분 값을 도출할 수 있다. 디코딩 장치는 상기 차분 값이 상기 움직임 정보 후보 리스트에 포함된 움직임 벡터들의 차분 값 중 최소인 경우, 상기 움직임 벡터1을 상기 특정 후보로 선택할 수 있다.
다른 예로, 디코딩 장치는 앵커(anchor) 벡터를 기반으로 특정 후보를 선택할 수 있다. 구체적으로, 디코딩 장치는 상기 움직임 정보 후보 리스트 중 하나의 움직임 벡터를 제1 앵커 벡터로 도출할 수 있다. 상기 제1 앵커 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 상기 제1 앵커 벡터를 도출한 다음, 디코딩 장치는 상기 제1 앵커 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 앵커 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 앵커 벡터를 도출할 수 있다. 예를 들어, 상기 제1 앵커 벡터가 L0 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L1 방향으로 스케일링하여 L1방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L1에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다. 한편, 상기 제1 앵커 벡터가 L1 방향 움직임 벡터인 경우, 상기 제1 앵커 벡터를 L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 앵커 벡터로 도출할 수 있다. 상기 제2 앵커 벡터가 가리키는 참조 영역을 포함하는 참조 픽처는 상기 L0에 포함된 참조 픽처들 중 상기 제1 앵커 벡터가 가리키는 참조 영역과의 차분 값, 즉 레지듀얼이 가장 작은 참조 영역을 포함하는 참조 픽처로 도출될 수 있다.
상기 제2 앵커 벡터를 도출한 후에 디코딩 장치는 상기 움직임 정보 후보 리스트 중 상기 제2 앵커 벡터와 동일한 방향이고 상기 제2 앵커 벡터와 크기 차가 최소인 움직임 벡터를 상기 특정 후보로 선택할 수 있다. 예를 들어, 상기 제2 앵커 벡터가 L0 방향 움직임 벡터인 경우, L0 방향의 움직임 벡터들 중 상기 제2 앵커 벡터와 크기 차가 최소인 움직임 벡터를 상기 특정 후보로 도출할 수 있다. 한편, 상기 제2 앵커 벡터가 L1 방향 움직임 벡터인 경우, L1 방향의 움직임 벡터들 중 상기 제2 앵커 벡터와 크기 차가 최소인 움직임 벡터를 상기 특정 후보로 도출할 수 있다.
다른 예로, 디코딩 장치는 상기 벡터 후보 리스트에 포함된 각 쌍예측 움직임 벡터 후보의 L0 방향 움직임 벡터의 절대값 및 L1 방향 움직임 벡터의 절대값 간 차분 값의 비교를 기반으로 상기 특정 후보를 선택할 수 있다. 디코딩 장치는 상기 움직임 정보 후보 리스트에 포함된 각 쌍예측 움직임 벡터 후보의 L0 방향 움직임 벡터의 절대값 및 L1 방향 움직임 벡터의 절대값 간 차분 값을 도출할 수 있다. 디코딩 장치는 상기 차분 값이 최소인 상기 쌍예측 움직임 벡터 후보를 상기 특정 후보로 선택할 수 있다. 상기 움직임 정보 후보 리스트에 포함된 단예측 움직임 벡터 후보의 경우, 디코딩 장치는 상기 단예측 움직임 벡터 후보에 포함된 제1 움직임 벡터를 상기 L0 방향 및 상기 L1 방향 중 상기 제1 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 움직임 벡터를 도출할 수 있고, 상기 단예측 움직임 벡터 후보를 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 포함하는 쌍예측 움직임 벡터 후보로 도출하여 상술한 방법을 적용할 수 있다. 구체적으로, 상기 제1 움직임 벡터가 L0 방향 움직임 벡터인 경우, L1 방향으로 스케일링하여 L1 방향 움직임 벡터인 제2 움직임 벡터를 도출할 수 있다. 또한, 상기 제1 움직임 벡터가 L1 방향 움직임 벡터인 경우, L0 방향으로 스케일링하여 L0 방향 움직임 벡터인 제2 움직임 벡터를 도출할 수 있다. 이 경우, 상기 제2 움직임 벡터와 연관된 참조 픽처는 상기 제1 움직임 벡터가 가리키는 제1 참조 영역과 상기 제2 움직임 벡터가 가리키는 제2 참조 영역과의 레지듀얼이 최소가 되는 상기 제2 참조 영역을 포함하는 픽처일 수 있다.
다른 예로, 디코딩 장치는 움직임 벡터의 절대값의 크기의 비교를 기반으로 상기 특정 후보를 선택할 수 있다. 디코딩 장치는 상기 움직임 정보 후보 리스트에 각 움직임 벡터 후보의 움직임 벡터의 절대값의 크기를 비교할 수 있다. 디코딩 장치는 상기 움직임 벡터의 절대값이 최소인 움직임 벡터 후보를 특정 후보로 선택할 수 있다. 상기 움직임 벡터 후보가 단예측 움직임 벡터 후보인 경우, 상기 단예측 움직임 벡터 후보의 움직임 벡터는 L0 방향 움직임 벡터일 수 있고, L1 방향 움직임 벡터일 수도 있다. 디코딩 장치는 쌍예측 움직임 벡터 후보를 추가적으로 고려하여 실시할 수도 있다. 디코딩 장치는 상기 쌍예측 움직임 벡터 후보에 포함된 L0 방향 움직임 벡터 및 L1 방향 움직임 벡터를 나눠서 각각의 움직임 벡터를 판단할 수 있고, 각각의 움직임 벡터를 상기 움직임 정보 후보 리스트의 후보로 포함할 수 있다.
한편, 디코딩 장치는 비트스트림을 통하여 bilateral/template 선택 플래그를 획득할 수 있고, 상기 bilateral/template 선택 플래그의 값을 기반으로 상기 움직임 정보 후보 리스트의 후보들의 비교를 위한 매칭 방법을 선택할 수 있다.
디코딩 장치는 상기 특정 후보를 기반으로 상기 현재 블록의 움직임 벡터를 도출한다(S1420). 상기 현재 블록의 움직임 벡터는 쌍예측 움직임 벡터 및 단예측 움직임 벡터 중 하나일 수 있다.
디코딩 장치는 상기 현재 블록의 움직임 벡터를 기반으로 상기 현재 블록의 예측 샘플을 생성한다(S1430). 디코딩 장치는 상기 움직임 벡터가 가리키는 참조 픽처 상에서 예측 샘플 값을 획득하고, 상기 예측 샘플을 생성할 수 있다.
디코딩 장치는 상기 예측 값을 기반으로 상기 현재 샘플에 대한 복원 샘플을 생성할 수 있다. 디코딩 장치는 인코딩 장치로부터 수신한 비트스트림으로부터 레지듀얼 신호를 획득하고, 상기 현재 샘플에 대한 레지듀얼 샘플을 생성할 수 있다. 이 경우 디코딩 장치는 상기 예측 샘플 및 상기 레지듀얼 샘플을 기반으로 상기 복원 샘플을 생성할 수 있다. 디코딩 장치는 상기 복원 샘플을 기반으로 복원 픽처를 생성할 수 있다.
상술한 본 발명에 따르면 인터 예측 모드를 나타내는 예측 모드 정보의 데이터량을 줄일 수 있어 전반적인 코딩 효율을 향상시킬 수 있다.
또한, 본 발명에 따르면 현재 블록의 움직임 벡터 후보를 선별하여 현재 블록의 움직임 벡터를 탐색하는 과정을 줄일 수 있어 계산 복잡도를 줄일 수 있고, 전반적인 코딩 효율을 향상시킬 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타내어진 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 본 발명에 따른 방법은 소프트웨어 형태로 구현될 수 있으며, 본 발명에 따른 인코딩 장치 및/또는 디코딩 장치는 예를 들어 TV, 컴퓨터, 스마트폰, 셋톱박스, 디스플레이 장치 등의 영상 처리를 수행하는 장치에 포함될 수 있다.
본 발명에서 실시예들이 소프트웨어로 구현될 때, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다. 메모리는 프로세서 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 프로세서는 ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리는 ROM(read-only memory), RAM(random access memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다.
Claims (12)
- 디코딩 장치에 의하여 수행되는 인터 예측 방법에 있어서,현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계;상기 움직임 정보 후보 리스트 내의 후보들의 비교를 기반으로 특정 후보를 선택하는 단계;상기 특정 후보를 기반으로 상기 현재 블록의 움직임 벡터를 도출하는 단계; 및상기 현재 블록의 상기 움직임 벡터를 기반으로 상기 현재 블록의 예측 샘플을 생성하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제1항에 있어서,상기 움직임 정보 후보 리스트는 쌍예측 움직임 벡터 후보 또는 단예측 움직임 벡터 후보를 포함하되,상기 쌍예측 움직임 벡터 후보는 L0 방향의 움직임 벡터 및 L1 방향의 움직임 벡터를 포함하고, 상기 단예측 움직임 벡터 후보는 상기 L0 방향 움직임 벡터 및 상기 L1 방향 움직임 벡터 중 하나만을 포함하고,상기 L0 방향 움직임 벡터는 참조 픽처 리스트 L0에 포함되는 참조 픽처에 관한 움직임 벡터를 나타내고, 상기 L1 방향 움직임 벡터는 참조 픽처 리스트 L1에 포함되는 참조 픽처에 관한 움직임 벡터인 것을 특징으로 하는 인터 예측 방법.
- 제2항에 있어서,상기 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계는,상기 주변 블록을 기반으로 제1 움직임 정보 후보 리스트를 도출하는 단계;상기 제1 움직임 정보 후보 리스트 중 하나의 움직임 벡터를 제1 앵커(anchor) 벡터로 도출하는 단계; 및상기 제1 앵커 벡터를 상기 L0 방향 및 L1 방향 중 상기 제1 앵커 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 앵커 벡터를 도출하는 단계; 및상기 제1 움직임 정보 후보 리스트 중 상기 제2 앵커 벡터와 동일한 방향이고 상기 제2 앵커 벡터와의 크기 차가 기 설정된 임계값 이하인 움직임 벡터를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제3항에 있어서,상기 특정 후보는 상기 움직임 정보 후보 리스트 중 상기 제2 앵커 벡터와의 차가 최소인 움직임 벡터로 선택됨을 특징으로 하는 인터 예측 방법.
- 제2항에 있어서,상기 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계는,상기 주변 블록을 기반으로 제1 움직임 정보 후보 리스트를 도출하는 단계;상기 제1 움직임 정보 후보 리스트에 포함된 각 쌍예측 움직임 벡터 후보의 L0 방향 움직임 벡터의 절대값 및 L1 방향 움직임 벡터의 절대값 간 차분 값을 도출하는 단계; 및상기 차분 값이 기 설정된 임계값 이하인 상기 쌍예측 움직임 벡터 후보를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제5항에 있어서,상기 제1 움직임 정보 후보 리스트에 포함된 단예측 움직임 벡터 후보에 포함된 제1 움직임 벡터를 상기 L0 방향 및 상기 L1 방향 중 상기 제1 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 제2 움직임 벡터를 도출하는 단계; 및상기 단예측 움직임 벡터 후보를 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 포함하는 쌍예측 움직임 벡터 후보로 도출하는 단계를 더 포함하되,상기 제2 움직임 벡터와 연관된 참조 픽처는 상기 제1 움직임 벡터가 가리키는 제1 참조 영역과 상기 제2 움직임 벡터가 가리키는 제2 참조 영역과의 레지듀얼이 최소가 되는 상기 제2 참조 영역을 포함하는 픽처인 것을 특징으로 하는 인터 예측 방법.
- 제5항에 있어서,상기 특정 후보는 상기 차분 값이 최소인 쌍예측 움직임 벡터 후보로 선택됨을 특징으로 하는 인터 예측 방법.
- 제2항에 있어서,상기 현재 블록의 주변 블록을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계는,상기 주변 블록을 기반으로 제1 움직임 정보 후보 리스트를 도출하는 단계;상기 제1 움직임 정보 후보 리스트에 포함된 각 움직임 벡터 후보의 움직임 벡터의 절대값이 기 설정된 임계값 이하인지 판단하는 단계; 및상기 움직임 벡터의 절대값이 상기 임계값 이하인 움직임 벡터 후보를 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 도출하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제8항에 있어서,상기 특정 후보는 상기 움직임 벡터의 절대값이 최소인 움직임 벡터를 포함한 움직임 벡터 후보로 선택됨을 특징으로 하는 인터 예측 방법.
- 제2항에 있어서,상기 움직임 정보 후보 리스트 중 특정 후보를 선택하는 단계는,상기 움직임 정보 후보 리스트에 포함된 제1 움직임 벡터를 상기 L0 방향 및 상기 L1 방향 중 상기 제1 움직임 벡터와 연관된 방향과 다른 방향으로 스케일링(scaling)하여 상기 제1 움직임 벡터에 대응되는 제2 움직임 벡터를 도출하는 단계;상기 제1 움직임 벡터가 가리키는 참조 영역과 상기 제2 움직임 벡터가 가리키는 참조 영역의 레지듀얼을 도출하는 단계; 및상기 레지듀얼이 최소인 제1 움직임 벡터 및 제2 움직임 벡터를 상기 특정 후보로 선택하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제2항에 있어서,상기 움직임 정보 후보 리스트 중 특정 후보를 선택하는 단계는,상기 움직임 정보 후보 리스트에 포함된 움직임 벡터1이 가리키는 참조 블록을 도출하는 단계;상기 참조 블록의 주변 샘플의 값과 상기 주변 샘플에 대응되는 현재 블록의 주변 샘플의 값의 차분 값을 도출하는 단계; 및상기 차분 값이 상기 움직임 정보 후보 리스트에 포함된 움직임 벡터들의 차분 값 중 최소인 경우, 상기 움직임 벡터1을 상기 특정 후보로 선택하는 단계를 포함하는 것을 특징으로 하는 인터 예측 방법.
- 제1항에 있어서,비트스트림을 통하여 FRUC(Frame rate up-conversion) 모드 플래그를 수신하는 단계; 및상기 현재 블록의 FRUC 모드 적용 여부를 판단하는 단계를 더 포함하되,상기 FRUC 모드 플래그의 값이 1인 경우, 상기 현재 블록에 FRUC 모드가 적용되는 것으로 판단되는 것을 특징으로 하는 인터 예측 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562219673P | 2015-09-17 | 2015-09-17 | |
US62/219,673 | 2015-09-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017048008A1 true WO2017048008A1 (ko) | 2017-03-23 |
Family
ID=58289296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2016/010240 WO2017048008A1 (ko) | 2015-09-17 | 2016-09-12 | 영상 코딩 시스템에서 인터 예측 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2017048008A1 (ko) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019112072A1 (ko) * | 2017-12-04 | 2019-06-13 | 엘지전자 주식회사 | 영상 코딩 시스템에서 수정된 움직임 정보 후보 리스트에 기반한 영상 디코딩 방법 및 장치 |
CN110248188A (zh) * | 2018-03-07 | 2019-09-17 | 华为技术有限公司 | 预测运动矢量生成方法以及相关设备 |
WO2019199071A1 (ko) * | 2018-04-13 | 2019-10-17 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 |
CN110868601A (zh) * | 2018-08-28 | 2020-03-06 | 华为技术有限公司 | 帧间预测方法、装置以及视频编码器和视频解码器 |
WO2020114407A1 (en) * | 2018-12-03 | 2020-06-11 | Beijing Bytedance Network Technology Co., Ltd. | Partial pruning method for hmvp mode |
CN111669592A (zh) * | 2019-03-05 | 2020-09-15 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN112055220A (zh) * | 2019-06-05 | 2020-12-08 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN112514394A (zh) * | 2018-07-17 | 2021-03-16 | 松下电器(美国)知识产权公司 | 用于视频编码的系统和方法 |
CN113056908A (zh) * | 2019-01-29 | 2021-06-29 | 深圳市欢太科技有限公司 | 视频字幕合成方法、装置、存储介质及电子设备 |
CN113992914A (zh) * | 2019-09-24 | 2022-01-28 | Oppo广东移动通信有限公司 | 帧间预测方法及装置、设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150045982A (ko) * | 2015-04-14 | 2015-04-29 | 삼성전자주식회사 | 영상 복호화 방법 |
KR20150083826A (ko) * | 2015-06-30 | 2015-07-20 | 에스케이텔레콤 주식회사 | 인터 예측을 이용한 영상 복호화 방법 및 장치 |
US20150208093A1 (en) * | 2011-09-09 | 2015-07-23 | Kt Corporation | Method for deriving a temporal predictive motion vector, and apparatus using the method |
US20150229947A1 (en) * | 2011-01-07 | 2015-08-13 | Lg Electronics Inc. | Method for encoding and decoding image information and device using same |
US20150256847A1 (en) * | 2009-01-23 | 2015-09-10 | Sk Telecom Co., Ltd. | Apparatus and method for motion vector encoding/decoding, and apparatus and method for image encoding/decoding using same |
-
2016
- 2016-09-12 WO PCT/KR2016/010240 patent/WO2017048008A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150256847A1 (en) * | 2009-01-23 | 2015-09-10 | Sk Telecom Co., Ltd. | Apparatus and method for motion vector encoding/decoding, and apparatus and method for image encoding/decoding using same |
US20150229947A1 (en) * | 2011-01-07 | 2015-08-13 | Lg Electronics Inc. | Method for encoding and decoding image information and device using same |
US20150208093A1 (en) * | 2011-09-09 | 2015-07-23 | Kt Corporation | Method for deriving a temporal predictive motion vector, and apparatus using the method |
KR20150045982A (ko) * | 2015-04-14 | 2015-04-29 | 삼성전자주식회사 | 영상 복호화 방법 |
KR20150083826A (ko) * | 2015-06-30 | 2015-07-20 | 에스케이텔레콤 주식회사 | 인터 예측을 이용한 영상 복호화 방법 및 장치 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019112072A1 (ko) * | 2017-12-04 | 2019-06-13 | 엘지전자 주식회사 | 영상 코딩 시스템에서 수정된 움직임 정보 후보 리스트에 기반한 영상 디코딩 방법 및 장치 |
CN110248188A (zh) * | 2018-03-07 | 2019-09-17 | 华为技术有限公司 | 预测运动矢量生成方法以及相关设备 |
WO2019199071A1 (ko) * | 2018-04-13 | 2019-10-17 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 |
CN112514394A (zh) * | 2018-07-17 | 2021-03-16 | 松下电器(美国)知识产权公司 | 用于视频编码的系统和方法 |
CN110868601A (zh) * | 2018-08-28 | 2020-03-06 | 华为技术有限公司 | 帧间预测方法、装置以及视频编码器和视频解码器 |
US12015780B2 (en) | 2018-08-28 | 2024-06-18 | Huawei Technologies Co., Ltd. | Inter prediction method and apparatus, video encoder, and video decoder |
CN110868601B (zh) * | 2018-08-28 | 2024-03-15 | 华为技术有限公司 | 帧间预测方法、装置以及视频编码器和视频解码器 |
US11412212B2 (en) | 2018-12-03 | 2022-08-09 | Beijing Bytedance Network Technology Co., Ltd. | Partial pruning method for inter prediction |
WO2020114407A1 (en) * | 2018-12-03 | 2020-06-11 | Beijing Bytedance Network Technology Co., Ltd. | Partial pruning method for hmvp mode |
US11856185B2 (en) | 2018-12-03 | 2023-12-26 | Beijing Bytedance Network Technology Co., Ltd | Pruning method in different prediction mode |
US11284068B2 (en) | 2018-12-03 | 2022-03-22 | Beijing Bytedance Network Technology Co., Ltd. | Indication method of maximum number of candidates |
CN113056908A (zh) * | 2019-01-29 | 2021-06-29 | 深圳市欢太科技有限公司 | 视频字幕合成方法、装置、存储介质及电子设备 |
CN113056908B (zh) * | 2019-01-29 | 2024-04-05 | 深圳市欢太科技有限公司 | 视频字幕合成方法、装置、存储介质及电子设备 |
CN111669592B (zh) * | 2019-03-05 | 2022-11-25 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN111669592A (zh) * | 2019-03-05 | 2020-09-15 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN112055220A (zh) * | 2019-06-05 | 2020-12-08 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN113992914B (zh) * | 2019-09-24 | 2023-04-14 | Oppo广东移动通信有限公司 | 帧间预测方法及装置、设备、存储介质 |
CN113992914A (zh) * | 2019-09-24 | 2022-01-28 | Oppo广东移动通信有限公司 | 帧间预测方法及装置、设备、存储介质 |
US11924459B2 (en) | 2019-09-24 | 2024-03-05 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for inter prediction method, video picture encoder and decoder |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017052081A1 (ko) | 영상 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2017069590A1 (ko) | 영상 코딩 시스템에서 모델링 기반 영상 디코딩 방법 및 장치 | |
WO2020071829A1 (ko) | 히스토리 기반 영상 코딩 방법 및 그 장치 | |
WO2017048008A1 (ko) | 영상 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2017057953A1 (ko) | 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치 | |
WO2017069419A1 (ko) | 비디오 코딩 시스템에서 인트라 예측 방법 및 장치 | |
WO2017034331A1 (ko) | 영상 코딩 시스템에서 크로마 샘플 인트라 예측 방법 및 장치 | |
WO2016204360A1 (ko) | 영상 코딩 시스템에서 조도 보상에 기반한 블록 예측 방법 및 장치 | |
WO2017014412A1 (ko) | 비디오 코딩 시스템에서 인트라 예측 방법 및 장치 | |
WO2018070632A1 (ko) | 영상 코딩 시스템에서 영상 디코딩 방법 및 장치 | |
WO2016200043A1 (ko) | 비디오 코딩 시스템에서 가상 참조 픽처 기반 인터 예측 방법 및 장치 | |
WO2017057877A1 (ko) | 영상 코딩 시스템에서 영상 필터링 방법 및 장치 | |
WO2017082443A1 (ko) | 영상 코딩 시스템에서 임계값을 이용한 적응적 영상 예측 방법 및 장치 | |
WO2018056709A1 (ko) | 영상 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2020091213A1 (ko) | 영상 코딩 시스템에서 인트라 예측 방법 및 장치 | |
WO2019194507A1 (ko) | 어파인 움직임 예측에 기반한 영상 코딩 방법 및 그 장치 | |
WO2017061671A1 (ko) | 영상 코딩 시스템에서 적응적 변환에 기반한 영상 코딩 방법 및 장치 | |
WO2017159901A1 (ko) | 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치 | |
WO2017195914A1 (ko) | 비디오 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2018128222A1 (ko) | 영상 코딩 시스템에서 영상 디코딩 방법 및 장치 | |
WO2018066791A1 (ko) | 영상 코딩 시스템에서 영상 디코딩 방법 및 장치 | |
WO2017052272A1 (ko) | 비디오 코딩 시스템에서 인트라 예측 방법 및 장치 | |
WO2020141932A1 (ko) | Cpr 기반 mmvd를 이용하는 인터 예측 방법 및 장치 | |
WO2018128223A1 (ko) | 영상 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2016178485A1 (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: 16846829 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: 16846829 Country of ref document: EP Kind code of ref document: A1 |