WO2019009567A1 - 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 - Google Patents

영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 Download PDF

Info

Publication number
WO2019009567A1
WO2019009567A1 PCT/KR2018/007396 KR2018007396W WO2019009567A1 WO 2019009567 A1 WO2019009567 A1 WO 2019009567A1 KR 2018007396 W KR2018007396 W KR 2018007396W WO 2019009567 A1 WO2019009567 A1 WO 2019009567A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
motion information
reference point
block
current block
Prior art date
Application number
PCT/KR2018/007396
Other languages
English (en)
French (fr)
Inventor
서정동
김승환
임재현
장형문
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of WO2019009567A1 publication Critical patent/WO2019009567A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Definitions

  • the present invention relates to a video coding technique, and more particularly, to a video decoding method and apparatus according to inter prediction in a video coding system.
  • HD high definition
  • UHD ultra high definition
  • the present invention provides a method and apparatus for enhancing video coding efficiency.
  • Another aspect of the present invention is to provide a method and apparatus for calculating modified motion information of a subblock of a current block in a receiver and updating motion information of the current block based on the modified motion information.
  • Another aspect of the present invention is to provide a method and apparatus for terminating a process of updating motion information of a current block based on a specific condition.
  • an image decoding method performed by a decoding apparatus includes generating a motion information candidate list of the current block based on neighboring blocks of the current block, deriving motion information of the current block based on the motion information candidate list, The method includes deriving at least one next search reference point sequentially from a first search reference point based on the search pattern and the motion information, , And updating the motion information of the current block based on the modified motion information.
  • a decoding apparatus for performing image decoding.
  • the decoding apparatus includes an entropy decoding unit that obtains information on inter prediction of a current block through a bitstream, and a motion information candidate list generation unit that generates a motion information candidate list of the current block based on neighboring blocks of the current block, Derives at least one next search reference point sequentially from a first search reference point based on a search pattern of the current block and the motion information, And a predictor for deriving the motion information indicating the search reference point as the modified motion information of the current block and updating the motion information of the current block based on the modified motion information .
  • a video encoding method performed by an encoding apparatus.
  • the method includes generating a motion information candidate list of the current block based on neighboring blocks of the current block, determining motion information of the current block based on the motion information candidate list,
  • the method includes deriving at least one next search reference point sequentially from a first search reference point based on the search pattern and the motion information, Updating the motion information of the current block based on the modified motion information, and encoding and outputting information about the inter prediction of the current block. do.
  • a video encoding apparatus generates a motion information candidate list of the current block based on neighboring blocks of the current block, determines motion information of the current block based on the motion information candidate list, pattern and at least one next search reference point sequentially from a first search reference point based on the motion information and derives motion information indicating a finally derived search reference point as modified motion information of the current block
  • a prediction unit for updating the motion information of the current block based on the modified motion information
  • an entropy encoding unit for encoding and outputting information about inter prediction of the current block .
  • the motion information of the current block can be updated with more accurate motion information by calculating the corrected motion information of the current block, thereby improving the prediction efficiency.
  • the present invention it is possible to update the motion information of the current block with more accurate motion information by calculating the modified motion information of the current block according to various search patterns, thereby improving the prediction efficiency.
  • the present invention it is possible to reduce the complexity by limiting the number of searches in the process of updating the motion information of the current block based on various conditions, thereby improving the overall coding efficiency.
  • FIG. 1 is a view for schematically explaining a configuration of a video encoding apparatus to which the present invention can be applied.
  • FIG. 2 is a schematic view illustrating a configuration of a video decoding apparatus to which the present invention can be applied.
  • FIG. 3 illustrates an example of deriving motion information of the current block through the template matching method.
  • FIG. 4 illustrates an example of deriving motion information of the current block through the bi-directional matching method.
  • FIG 5 shows an example of searching for motion information of the current block in the process of updating DMVD motion information.
  • FIG. 7 shows an example of deriving the neighbor search points of the search round of the current sequence, excluding the neighbor search points of the previous search round.
  • FIG. 8 schematically shows a video encoding method by an encoding apparatus according to the present invention.
  • FIG. 9 schematically shows a video decoding method by a decoding apparatus according to the present invention.
  • a picture generally refers to a unit that represents one image in a specific time zone
  • a slice is a unit that constitutes a part of a picture in coding.
  • One picture may be composed of a plurality of slices, and pictures and slices may be used in combination if necessary.
  • a pixel or a pel may mean a minimum unit of a picture (or image). Also, a 'sample' may be used as a term corresponding to a pixel.
  • a sample may generally represent a pixel or pixel value and may only represent a pixel / pixel value of a luma component or only a pixel / pixel value of a chroma component.
  • a unit represents a basic unit of image processing.
  • a unit may include at least one of a specific area of a picture and information related to the area.
  • the unit may be used in combination with terms such as a block or an area in some cases.
  • an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows.
  • FIG. 1 is a view for schematically explaining a configuration of a video encoding apparatus to which the present invention can be applied.
  • the video encoding apparatus 100 includes a picture dividing unit 105, a predicting unit 110, a residual processing unit 120, an entropy encoding unit 130, an adding unit 140, a filter unit 150 And a memory 160.
  • the residual processing unit 120 may include a subtracting unit 121, a transforming unit 122, a quantizing unit 123, a reordering unit 124, an inverse quantizing unit 125 and an inverse transforming unit 126.
  • the picture dividing unit 105 may divide the inputted picture into at least one processing unit.
  • the processing unit may be referred to as a coding unit (CU).
  • the coding unit may be recursively partitioned according to a quad-tree binary-tree (QTBT) structure from the largest coding unit (LCU).
  • QTBT quad-tree binary-tree
  • LCU largest coding unit
  • one coding unit may be divided into a plurality of coding units of deeper depth based on a quadtree structure and / or a binary tree structure.
  • the quadtree structure is applied first and the binary tree structure can be applied later.
  • a binary tree structure may be applied first.
  • the coding procedure according to the present invention can be performed based on the final coding unit which is not further divided.
  • the maximum coding unit may be directly used as the final coding unit based on the coding efficiency or the like depending on the image characteristics, or the coding unit may be recursively divided into lower-depth coding units Lt; / RTI > may be used as the final coding unit.
  • the coding procedure may include a procedure such as prediction, conversion, and restoration, which will be described later.
  • the processing unit may include a coding unit (CU) prediction unit (PU) or a transform unit (TU).
  • the coding unit may be split from the largest coding unit (LCU) into coding units of deeper depth along the quad tree structure.
  • LCU largest coding unit
  • the maximum coding unit may be directly used as the final coding unit based on the coding efficiency or the like depending on the image characteristics, or the coding unit may be recursively divided into lower-depth coding units Lt; / RTI > may be used as the final coding unit.
  • SCU smallest coding unit
  • the coding unit can not be divided into smaller coding units than the minimum coding unit.
  • the term " final coding unit " means a coding unit on which the prediction unit or the conversion unit is partitioned or divided.
  • a prediction unit is a unit that is partitioned from a coding unit, and may be a unit of sample prediction. At this time, the prediction unit may be divided into sub-blocks.
  • the conversion unit may be divided along the quad-tree structure from the coding unit, and may be a unit for deriving a conversion coefficient and / or a unit for deriving a residual signal from the conversion factor.
  • the coding unit may be referred to as a coding block (CB)
  • the prediction unit may be referred to as a prediction block (PB)
  • the conversion unit may be referred to as a transform block (TB).
  • the prediction block or prediction unit may refer to a specific area in the form of a block in a picture and may include an array of prediction samples.
  • a transform block or transform unit may refer to a specific region in the form of a block within a picture, and may include an array of transform coefficients or residual samples.
  • the prediction unit 110 may perform a prediction on a current block to be processed (hereinafter, referred to as a current block), and may generate a predicted block including prediction samples for the current block.
  • the unit of prediction performed in the prediction unit 110 may be a coding block, a transform block, or a prediction block.
  • the prediction unit 110 may determine whether intra prediction or inter prediction is applied to the current block. For example, the prediction unit 110 may determine whether intra prediction or inter prediction is applied in units of CU.
  • the prediction unit 110 may derive a prediction sample for a current block based on a reference sample outside the current block in a picture to which the current block belongs (hereinafter referred to as a current picture). At this time, the prediction unit 110 may derive a prediction sample based on (i) an average or interpolation of neighboring reference samples of the current block, (ii) The prediction sample may be derived based on a reference sample existing in a specific (prediction) direction with respect to the prediction sample among the samples. (i) may be referred to as a non-directional mode or a non-angle mode, and (ii) may be referred to as a directional mode or an angular mode.
  • 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 planar mode (Planar mode).
  • the prediction unit 110 may determine a prediction mode applied to a current block using a prediction mode applied to a neighboring block.
  • the prediction unit 110 may derive a prediction sample for a current block based on a sample specified by a motion vector on a reference picture.
  • the prediction unit 110 may derive a prediction sample for a current block by applying one of a skip mode, a merge mode, and a motion vector prediction (MVP) mode.
  • the prediction unit 110 can use motion information of a neighboring block as motion information of a current block.
  • difference residual between the predicted sample and the original sample is not transmitted unlike the merge mode.
  • MVP mode a motion vector of a current block can be derived by using a motion vector of a neighboring block as a motion vector predictor to use as a motion vector predictor of a current block.
  • a neighboring block may include a spatial neighboring block existing in a current picture and a temporal neighboring block existing in a reference picture.
  • the reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic).
  • the motion information may include a motion vector and a reference picture index.
  • Information such as prediction mode information and motion information may be (entropy) encoded and output in the form of a bit stream.
  • the highest picture on the reference picture list may be used as a reference picture.
  • the reference pictures included in the picture order count can be sorted on the basis of the picture order count (POC) difference between the current picture and the corresponding reference picture.
  • POC picture order count
  • the POC corresponds to the display order of the pictures and can be distinguished from the coding order.
  • the subtraction unit 121 generates residual samples that are the difference between the original sample and the predicted sample. When the skip mode is applied, a residual sample may not be generated as described above.
  • the transforming unit 122 transforms the residual samples on a transform block basis to generate a transform coefficient.
  • the transforming unit 122 can perform the transform according to the size of the transform block and a prediction mode applied to the coding block or the prediction block spatially overlapping the transform block. For example, if intraprediction is applied to the coding block or the prediction block that overlaps the transform block and the transform block is a 4 ⁇ 4 residue array, the residual sample is transformed into a discrete sine transform (DST) In other cases, the residual samples can be converted using a DCT (Discrete Cosine Transform) conversion kernel.
  • DST discrete sine transform
  • the quantization unit 123 may quantize the transform coefficients to generate quantized transform coefficients.
  • the reordering unit 124 rearranges the quantized transform coefficients.
  • the reordering unit 124 may rearrange the block-shaped quantized transform coefficients into a one-dimensional vector form through a scanning method of coefficients.
  • the reordering unit 124 may be a part of the quantization unit 123, although the reordering unit 124 is described as an alternative configuration.
  • the entropy encoding unit 130 may perform entropy encoding on the quantized transform coefficients.
  • Entropy encoding may include, for example, an encoding method such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC)
  • CAVLC context-adaptive variable length coding
  • CABAC context-adaptive binary arithmetic coding
  • the entropy encoding unit 130 may encode the information necessary for video restoration (such as the value of a syntax element) together with the quantized transform coefficient or separately.
  • the entropy encoded information may be transmitted or stored in units of NAL (network abstraction layer) units in the form of a bit stream.
  • NAL network abstraction layer
  • the inverse quantization unit 125 inversely quantizes the quantized values (quantized transform coefficients) in the quantization unit 123 and the inverse transformation unit 126 inversely quantizes the inversely quantized values in the inverse quantization unit 125, .
  • the adder 140 combines the residual sample and the predicted sample to reconstruct the picture.
  • the residual samples and the prediction samples are added in units of blocks so that a reconstruction block can be generated.
  • the adding unit 140 may be a part of the predicting unit 110, Meanwhile, the addition unit 140 may be referred to as a restoration unit or a restoration block generation unit.
  • the filter unit 150 may apply a deblocking filter and / or a sample adaptive offset. Through deblocking filtering and / or sample adaptive offsets, artifacts in the block boundary in the reconstructed picture or distortion in the quantization process can be corrected.
  • the sample adaptive offset can be applied on a sample-by-sample basis and can be applied after the process of deblocking filtering is complete.
  • the filter unit 150 may apply an ALF (Adaptive Loop Filter) to the restored picture.
  • the ALF may be applied to the reconstructed picture after the deblocking filter and / or sample adaptive offset is applied.
  • the memory 160 may store restored pictures (decoded pictures) or information necessary for encoding / decoding.
  • the reconstructed picture may be a reconstructed picture whose filtering procedure has been completed by the filter unit 150.
  • the stored restored picture may be used as a reference picture for (inter) prediction of another picture.
  • the memory 160 may store (reference) pictures used for inter prediction. At this time, the pictures used for inter prediction can be designated by a reference picture set or a reference picture list.
  • FIG. 2 is a schematic view illustrating a configuration of a video decoding apparatus to which the present invention can be applied.
  • the video decoding apparatus 200 includes an entropy decoding unit 210, a residual processing unit 220, a predicting unit 230, an adding unit 240, a filter unit 250, and a memory 260 .
  • the residual processing unit 220 may include a rearrangement unit 221, an inverse quantization unit 222, and an inverse transformation unit 223.
  • the video decoding apparatus 200 can restore video in response to a process in which video information is processed in the video encoding apparatus.
  • the video decoding apparatus 200 can perform video decoding using a processing unit applied in the video encoding apparatus.
  • the processing unit block of video decoding may be, for example, a coding unit and, in another example, a coding unit, a prediction unit or a conversion unit.
  • the coding unit may be partitioned along the quad tree structure and / or the binary tree structure from the maximum coding unit.
  • a prediction unit and a conversion unit may be further used as the case may be, in which case the prediction block is a block derived or partitioned from the coding unit and may be a unit of sample prediction. At this time, the prediction unit may be divided into sub-blocks.
  • the conversion unit may be divided along the quad tree structure from the coding unit and may be a unit that derives the conversion factor or a unit that derives the residual signal from the conversion factor.
  • the entropy decoding unit 210 may parse the bitstream and output information necessary for video restoration or picture restoration. For example, the entropy decoding unit 210 decodes information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and calculates a value of a syntax element necessary for video restoration, a quantized value Lt; / RTI >
  • a coding method such as exponential Golomb coding, CAVLC, or CABAC
  • the CABAC entropy decoding method includes receiving a bean corresponding to each syntax element in a bitstream, decoding decoding target information of the decoding target syntax element, decoding information of a surrounding and decoding target block, or information of a symbol / A context model is determined and an occurrence probability of a bin is predicted according to the determined context model to perform arithmetic decoding of the bean to generate a symbol corresponding to the value of each syntax element have.
  • the CABAC entropy decoding method can update the context model using the information of the decoded symbol / bin for the context model of the next symbol / bean after determining the context model.
  • the residual value i.e., the quantized transform coefficient, which is entropy-decoded in the entropy decoding unit 210, 221).
  • the reordering unit 221 may rearrange the quantized transform coefficients into a two-dimensional block form.
  • the reordering unit 221 may perform reordering in response to the coefficient scanning performed in the encoding apparatus.
  • the rearrangement unit 221 may be a part of the inverse quantization unit 222, although the rearrangement unit 221 has been described as an alternative configuration.
  • the inverse quantization unit 222 may dequantize the quantized transform coefficients based on the (inverse) quantization parameters, and output the transform coefficients. At this time, the information for deriving the quantization parameter may be signaled from the encoding device.
  • the inverse transform unit 223 may invert the transform coefficients to derive the residual samples.
  • the prediction unit 230 may predict a current block and may generate a predicted block including prediction samples of the current block.
  • the unit of prediction performed in the prediction unit 230 may be a coding block, a transform block, or a prediction block.
  • the prediction unit 230 may determine whether intra prediction or inter prediction is to be applied based on the prediction information.
  • a unit for determining whether to apply intra prediction or inter prediction may differ from a unit for generating a prediction sample.
  • units for generating prediction samples in inter prediction and intra prediction may also be different.
  • whether inter prediction or intra prediction is to be applied can be determined in units of CU.
  • the prediction mode may be determined in units of PU to generate prediction samples.
  • a prediction mode may be determined in units of PU, and prediction samples may be generated in units of TU.
  • the prediction unit 230 may derive a prediction sample for the current block based on the surrounding reference samples in the current picture.
  • the prediction unit 230 may apply a directional mode or a non-directional mode based on the neighbor reference samples of the current block to derive a prediction sample for the current block.
  • a prediction mode to be applied to the current block may be determined using the intra prediction mode of the neighboring block.
  • the prediction unit 230 may derive a prediction sample for a current block based on a sample specified on a reference picture by a motion vector on a reference picture.
  • the prediction unit 230 may derive a prediction sample for a current block by applying a skip mode, a merge mode, or an MVP mode.
  • motion information necessary for inter-prediction of a current block provided in the video encoding apparatus for example, information on a motion vector, a reference picture index, and the like may be acquired or derived based on the prediction information
  • motion information of a neighboring block can be used as motion information of the current block.
  • the neighboring block may include a spatial neighboring block and a temporal neighboring block.
  • the prediction unit 230 may construct a merge candidate list using the motion information of the available neighboring blocks and use the information indicated by the merge index on the merge candidate list as the motion vector of the current block.
  • the merge index may be signaled from the encoding device.
  • the motion information may include a motion vector and a reference picture. When the motion information of temporal neighboring blocks is used in the skip mode and the merge mode, the highest picture on the reference picture list can be used as a reference picture.
  • the difference between the predicted sample and the original sample is not transmitted.
  • a motion vector of a current block can be derived using a motion vector of a neighboring block as a motion vector predictor.
  • the neighboring block may include a spatial neighboring block and a temporal neighboring block.
  • a merge candidate list may be generated using a motion vector of the reconstructed spatial neighboring block and / or a motion vector corresponding to a Col block that is a temporally neighboring block.
  • the motion vector of the candidate block selected in the merge candidate list is used as the motion vector of the current block.
  • the prediction information may include a merge index indicating a candidate block having an optimal motion vector selected from the candidate blocks included in the merge candidate list.
  • the predicting unit 230 can derive the motion vector of the current block using the merge index.
  • a motion vector predictor candidate list is generated by using a motion vector of the reconstructed spatial neighboring block and / or a motion vector corresponding to a Col block which is a temporally neighboring block . That is, the motion vector of the reconstructed spatial neighboring block and / or the motion vector corresponding to the neighboring block Col may be used as a motion vector candidate.
  • the information on the prediction may include a predicted motion vector index indicating an optimal motion vector selected from the motion vector candidates included in the list.
  • the predicting unit 230 can use the motion vector index to select a predictive motion vector of the current block from the motion vector candidates included in the motion vector candidate list.
  • the predicting unit of the encoding apparatus can obtain the motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, and can output it as a bit stream. That is, MVD can be obtained by subtracting the motion vector predictor from the motion vector of the current block.
  • the predicting unit 230 may obtain the motion vector difference included in the information on the prediction, and derive the motion vector of the current block through addition of the motion vector difference and the motion vector predictor.
  • the prediction unit may also acquire or derive a reference picture index or the like indicating the reference picture from the information on the prediction.
  • the adder 240 may add a residual sample and a prediction sample to reconstruct a current block or a current picture.
  • the adder 240 may add the residual samples and the prediction samples on a block-by-block basis to reconstruct the current picture.
  • the adder 240 has been described as an alternative configuration, but the adder 240 may be a part of the predictor 230.
  • the addition unit 240 may be referred to as a restoration unit or a restoration block generation unit.
  • the filter unit 250 may apply deblocking filtered sample adaptive offsets, and / or ALFs, to the reconstructed pictures.
  • the sample adaptive offset may be applied on a sample-by-sample basis and may be applied after deblocking filtering.
  • the ALF may be applied after deblocking filtering and / or sample adaptive offsets.
  • the memory 260 may store restored pictures (decoded pictures) or information necessary for decoding.
  • the reconstructed picture may be a reconstructed picture whose filtering procedure has been completed by the filter unit 250.
  • the memory 260 may store pictures used for inter prediction.
  • the pictures used for inter prediction may be designated by a reference picture set or a reference picture list.
  • the reconstructed picture can be used as a reference picture for another picture.
  • the memory 260 may output the restored picture according to the output order.
  • the decoding apparatus can obtain the prediction information on the current block through the bitstream and perform the prediction on the current block based on the prediction information .
  • the prediction information may include motion information of the current block, and the motion information may indicate L0 motion information for the L0 direction and / or L1 motion information for the L1 direction.
  • the L0 motion information may include an L0 reference picture index and a motion vector L0 (Motion Vector L0, MVL0) indicating an L0 reference picture included in a reference picture list L0 (List 0, L0) for the current block
  • the L1 motion information may include an L1 reference picture index and an MVL1 indicating an L1 reference picture included in a reference picture list L1 (List 1, L1) for the current block.
  • the L0 direction may be referred to as a past direction or a forward direction.
  • the L1 direction may be referred to as a future direction or a reverse direction.
  • the reference picture list L0 may include previous pictures in the output order than the current picture, and the reference picture list L1 may include pictures after the current picture in the output order.
  • the MVL0 may be referred to as an L0 motion vector
  • the MVL1 may be referred to as an L1 motion vector.
  • inter prediction may be referred to as LO prediction when inter prediction is performed based on L0 motion information, and may be referred to as L1 prediction when inter prediction is performed based on L1 motion information, Prediction may be referred to as bi-prediction when inter prediction is performed based on the L0 motion information and the L1 motion information.
  • the decoding apparatus can perform inter-prediction of the current block based on the motion information of the current block obtained through the bitstream. However, And may perform decoding of the current block based on the motion information. That is, when inter prediction is performed on the current block, the decoding apparatus can estimate the motion information of the current block without transmitting the motion information of the current block, and based on the estimated motion information, A prediction sample can be generated.
  • the inter prediction method performed by estimating the motion information on the decoding apparatus side may be referred to as a decoder side motion vector derivation (DMVD). Also, the DMVD may be referred to as FRUC (Frame Rate Up Conversion).
  • the DMVD can estimate motion information through the same process in both the encoding apparatus and the decoding apparatus without transmitting additional information about the prediction of the current block and predict the current block based on the estimated motion information As a result, more accurate motion information can be obtained, and the accuracy of inter prediction can be improved, and the amount of data for transmitting the additional information for the inter prediction can be reduced or eliminated, thereby improving overall coding efficiency.
  • a cost function based method May be used for searching for the motion information. Specifically, the following two methods, a bi-lateral matching method or a template matching method can be used.
  • FIG. 3 illustrates an example of deriving motion information of the current block through the template matching method.
  • the template matching method may represent a method of deriving motion information based on sample values of neighboring samples of the current block.
  • the neighboring samples of the current block may include left neighboring samples and upper neighboring samples that are causal in the current block.
  • an arbitrary peripheral region of the current block may be set as a template of the current block, and motion of the current block using a template of the same type as the template of the current block, Information search can be performed.
  • the left neighboring samples and the upper neighboring samples of the current block may have already been decoded at the decoding time of the current block, and thus may be used for the motion estimation process in the decoding apparatus,
  • the upper neighbor samples may be included in the template of the current block. That is, the template of the current block may be a specific region including the left surrounding samples and the upper surrounding samples.
  • a template having a minimum difference from the template of the current block among the templates of the blocks in the reference picture i.e., the template most similar to the template of the current block
  • a motion vector indicating a reference block of the current block may be derived as a motion vector of the current block.
  • the difference may be called a cost.
  • the cost may be derived as the sum of the absolute values of the differences between the templates of the current block and the corresponding samples of the blocks in the reference picture.
  • a cost function for deriving the MV of the current block can be expressed by the following equation. That is, the cost can be derived based on the following equation.
  • i, j denotes the position (i, j) of a sample block
  • Cost distortion is the cost
  • Temp ref is the sample values of the template of the reference block wherein the reference picture
  • Temp cur is a sample of a template of the current block Value.
  • FIG. 4 illustrates an example of deriving motion information of the current block through the bi-directional matching method. Meanwhile, the bidirectional matching method may be applied to a case where a pair prediction is performed on the current block.
  • a reference block indicated by the unidirectional motion information may be derived, and a reference block A corresponding block that is symmetric with respect to the reference block, such as a shape mirrored to the reference block, may be selected, and a corresponding block that is symmetric to the unidirectional motion information indicating the corresponding block may be selected
  • the motion information can be derived as motion information of the current block.
  • the block having the smallest difference from the reference block indicated by the unidirectional motion information in the reference picture for the other direction may be selected as the corresponding block.
  • the decoding apparatus decides a reference block having a minimum difference from the L0 reference block indicated by the motion vector L0 (Motion Vector L0, MVL0) of the L0 motion information among the reference blocks in the L1 direction to the L1 reference block .
  • the difference may be called a cost.
  • the cost may be derived as the sum of the absolute values of the differences between the corresponding samples of the L0 reference block and the L1 reference block.
  • the decoding apparatus may derive a motion vector indicating the L1 reference block as a motion vector L1 (Motion Vector L1, MVL1) of the current block.
  • the decoding apparatus can derive L1 motion information including MVL1 indicating the L1 reference block and a reference picture index indicating a reference picture including the L1 reference block.
  • the L0 motion information for the current block may be derived based on one of the neighboring blocks of the current block. For example, based on the priority of the available neighboring blocks of the current block, the motion information of the neighboring block having the highest priority can be used as the L0 motion information of the current block. Or motion information of a neighboring block in a predefined position among neighboring blocks of the current block may be used as the L0 motion information.
  • the decoding apparatus decides a reference block having a minimum difference from the L1 reference block indicated by the motion vector L1 (Motion Vector L1, MVL1) of the L1 motion information among the reference blocks in the L0 direction to the L0 reference block .
  • the difference may be called a cost.
  • the cost may be derived as the sum of the absolute values of the differences between corresponding samples of the L1 reference block and the L0 reference block. The cost can be derived based on the following equation.
  • i, j denotes the position (i, j) of a sample block
  • Cost distortion is the cost
  • Block L0 is the sample value of the reference block in the L0 direction
  • Block L1 is a sample value of the reference block in the L1 direction .
  • a difference between corresponding samples between the reference block in the L0 direction and the reference block in the L1 direction can be accumulated and the accumulation of the difference can be used as a cost function for deriving the motion vector of the current block.
  • the decoding apparatus may derive a motion vector indicating the L0 reference block by MVL0 of the current block. That is, the decoding apparatus can derive L0 motion information including MVL0 indicating the L0 reference block and a reference picture index indicating a reference picture including the L0 reference block.
  • the L1 motion information for the current block may be derived based on one of the neighboring blocks of the current block. For example, based on the priority of the available neighboring blocks of the current block, motion information of a neighboring block having the highest priority may be used as the L1 motion information of the current block. Or motion information of a neighboring block in a predefined position among neighboring blocks of the current block may be used as the L1 motion information.
  • inter prediction of the current block is performed based on the DMVD
  • inter prediction may be performed in the following order.
  • a block-based motion information candidate list when inter prediction of the current block is performed based on the DMVD, a block-based motion information candidate list can be generated.
  • the block-based motion information candidate list may be generated according to a cost function calculation method based on an existing merge candidate list. That is, the motion information candidate list for the current block may be generated based on the motion information of the reconstructed spatial neighboring block of the current block and / or the motion information corresponding to the Col block which is temporally neighboring block.
  • the motion information of the block for the block-based motion information candidate list among the motion information candidates of the block-based motion information candidate list may be selected.
  • a motion information candidate having the smallest cost function value (i.e., cost) among the motion information candidates of the block unit motion information candidate list may be selected as the motion information of the block for the block unit motion information candidate list.
  • a motion information candidate for a reference block having the smallest cost from the template of the current block among the templates of the reference blocks indicated by the motion information candidates may be selected as the motion information of the current block.
  • a motion information candidate having the smallest cost between the L0 reference block and the L1 reference block among the motion information candidates may be selected as motion information of the current block.
  • the motion information refinement is a process of enhancing the accuracy of the motion information.
  • the encoding / decoding device searches the periphery of the motion information based on the position indicated by the selected motion information, Information, and can replace the modified motion information with the motion information of the current block. Further, the search for updating the motion information can be repeatedly performed.
  • the search round may be initialized to zero and peripheral search points may be defined according to a selected one of search patterns such as cruciform, diamond, hexagonal, and N-angular. Detailed explanations of the surrounding search points according to the search patterns and the search patterns will be described later.
  • the cost of the location indicated by the selected motion information and the cost of the neighboring search points may be calculated.
  • the position indicated by the selected motion information may be referred to as a search reference point.
  • the cost of the search reference point may represent the cost of the template of the reference block with respect to the search reference point and the template of the current block
  • the cost of the neighbor search points may correspond to the template of the reference blocks And the cost of the template of the current block.
  • the reference block for the neighbor search point may be a reference block including the neighbor search point as the upper left sample.
  • the cost of the search reference point may represent the cost of the reference block to the search reference point and the reference block in the opposite direction to the search reference point
  • a modified search reference point can be derived by comparing the cost of the peripheral search points with the cost of the search reference point.
  • the cost of the specific peripheral search point is the smallest among the costs of the peripheral search points and the cost of the search reference point among the costs of the peripheral search points, have.
  • the modified search reference point may not be derived.
  • neighbor search points for the modified search reference point may be defined, and the search number of the search process for the current block may be increased by one.
  • the search process for updating the motion information may be terminated.
  • the search process may be performed based on the modified search reference point. That is, the peripheral search points for the modified search reference point can be defined, the costs of the peripheral search points can be calculated, and the cost for the modified search reference point and the cost of the surrounding search points are compared .
  • the search process performed based on the search reference point may be referred to as a search round.
  • the search range of the search process for updating the motion information of the current block can be derived as 8 samples.
  • the search pattern of the current block may be derived as a mixed search pattern of cross and diamond shapes, and the neighbor search points according to the search pattern of the current block may include eight neighboring samples . ≪ / RTI > Also, among the neighboring search points with respect to the search reference point, the neighbor search points overlapping the neighbor search points with respect to the search reference point before the search reference point have already been searched in the previous search round, Can be excluded. Referring to FIG.
  • the neighboring search points according to the search pattern of the first search round in which the position indicated by the motion information of the current block is the search reference point may be derived as eight neighboring samples.
  • the number of peripheral search points may be selected to be five or three according to the search direction, and a total of sixteen search rounds may be performed.
  • the search direction may be determined based on the position of the search reference point of the next search number.
  • the right neighbor search point may be derived as a search reference point of the second search round (i.e., a modified search reference point).
  • a search reference point of the second search round i.e., a modified search reference point.
  • Five surrounding samples excluding the three surrounding samples may be derived as the peripheral search points of the second search round.
  • the upper right side neighbor search point may be derived as the search reference point (i.e., the modified search reference point) of the sixth search round.
  • the search reference point of the sixth search round five neighboring samples among the eight neighboring samples of the search reference point of the sixth search round are included in the search range of the fifth search round, that is, the search reference point of the fifth search round and the neighbor search points So that three surrounding samples excluding the five surrounding samples can be derived as the peripheral search points of the sixth search round.
  • the cost of the neighboring search point is not limited to the distortion value (i.e., cost function value) by the template matching method or the bidirectional matching method, And a motion vector (MV) cost which is a difference between a vector and a motion vector indicating the neighbor search point. That is, a comparison of the MV cost of the neighboring search points may also be performed. For example, a neighbor search point in which the MV cost of the neighbor search points with respect to the search reference point is larger than a specific value may not be derived as a search reference point (i.e., a modified search reference point) of the next search round. In this way, it is possible to prevent the motion information updating process from being excessive.
  • a neighbor search point in which the MV cost of the neighbor search points with respect to the search reference point is larger than a specific value may not be derived as a search reference point (i.e., a modified search reference point) of the next search round. In this way, it is possible to prevent the motion information updating process from being excessive.
  • the above-described motion information update method may be performed in a cascade form in each of the search processes for a plurality of search patterns without ending the process.
  • a three-step motion information update process may be performed in which a search process in which a search pattern is diamond-shaped, a search process in which a search pattern is a cross shape, and a search process in which a search pattern is a cross shape.
  • Block motion information is updated through the above process, a sub-block motion information candidate list can be generated similarly to the method in which the block motion information is selected, and motion information of the sub-block motion information candidate list
  • the motion information of the target sub-block for the sub-block-based motion information candidate list among the candidates can be selected.
  • the sub-block-based motion information candidate list may include updated block-based motion information as motion information candidates.
  • the motion information updating process for the selected sub-block-based motion information may be performed similarly to the updating process for the block-based motion information.
  • the encoding / decoding apparatus derives a position indicated by the selected motion information of the current sub-block of the current block as a search reference point, searches the surroundings based on the search reference point, Information, and can replace the modified motion information with the motion information of the current block. Further, the search for updating the motion information can be repeatedly performed.
  • the search round may be initialized to zero and peripheral search points may be defined according to a selected one of search patterns such as cruciform, diamond, hexagonal, and N-angular.
  • the encoding / decoding apparatus can calculate the search reference point and the cost of the neighbor search points, and compare the costs to derive a search reference point of the next search round.
  • the motion information indicating the derived search reference point may be derived as the modified motion information, and the modified motion information may be replaced with the motion information of the current block.
  • the cost of the search reference point and the neighbor search points may be calculated based on a template matching method or a bidirectional matching method
  • the cost of the search reference point is set such that the cost of the template of the reference block with respect to the search reference point and the template of the target sub-
  • the costs of the neighboring search points may represent the costs of the templates of the reference blocks for the neighbor search points and the template of the current block.
  • the reference block for the neighbor search point may be a reference block including the neighbor search point as the upper left sample. If the target sub-block is the lower right sub-block of the current block, the neighboring blocks in the lower right sub-block are not decoded at the decoding time of the lower right sub-block, Restoration samples may not exist.
  • the updating process of the sub-block-based motion information is not performed and the updated motion information of the block unit, May be used as motion information of the target sub-block. Accordingly, the prediction of the current sub-block may be performed based on the updated motion information of the current block.
  • the cost of the search reference point may indicate a cost between the reference block to the search reference point and the reference block in the opposite direction
  • the cost of the peripheral search points may represent the cost of reference blocks for neighbor search points and the reference block in the opposite direction.
  • a modified search reference point can be derived by comparing the cost of the peripheral search points with the cost of the search reference point.
  • the cost of the specific peripheral search point is the smallest among the costs of the peripheral search points and the cost of the search reference point among the costs of the peripheral search points, have.
  • the modified search reference point may not be derived.
  • the neighbor search points for the modified search reference point can be defined, and the search number of the search process for the target sub-block can be increased by one.
  • the search process for updating the motion information may be terminated.
  • the search process may be performed based on the modified search reference point. That is, the peripheral search points for the modified search reference point can be defined, the costs of the peripheral search points can be calculated, and the cost for the modified search reference point and the cost of the surrounding search points are compared .
  • the cost of the peripheral search points is not only a distortion value (i.e., a cost function value) by the template matching method or the bidirectional matching method, but also a motion vector indicating a search reference point And a motion vector (MV) cost which is a difference between motion vectors indicating the neighbor search points. That is, a comparison of the MV cost of the neighboring search points may also be performed. For example, a neighbor search point in which the MV cost of the neighbor search points with respect to the search reference point is larger than a specific value may not be derived as a search reference point (i.e., a modified search reference point) of the next search round.
  • a distortion value i.e., a cost function value
  • MV motion vector
  • the search process for a plurality of search patterns may be performed in a cascade form without ending the process of updating the sub-block-based motion information.
  • a three-step sub-block unit motion information update process may be performed in which a search process in which a search pattern is diamond-shaped, a search process in which a search pattern is a cross shape, and a search process in which a search pattern is a cross shape.
  • the present invention proposes various search patterns that can be used in the above-described motion information update process.
  • the motion information update process described above can be performed based on the search patterns as described below.
  • FIG. 6 exemplarily shows search patterns that can be used in the motion information update process.
  • the search patterns may include a full search search pattern, a cross search pattern, a diamond search pattern, a hexagon search pattern, and a hybrid search pattern.
  • the search patterns may include an N-ary search pattern and a spiral search pattern.
  • FIG. 6 (a) shows neighboring search points according to the full search search pattern.
  • the full search search pattern may represent a search pattern that derives all the positions within the search range around the search reference point as the surrounding search points.
  • the encoding / decoding apparatus can calculate the cost function of all positions within the search range centered on the position indicated by the motion information of the current block selected from the candidates in the motion information candidate list of the current block, i.e., the search reference point,
  • the motion information of the current block can be updated with the motion information indicating the position having the lowest cost function.
  • the search range can be derived as a rectangular area having a height and a width of 2x around the search reference point, and x can represent the maximum value of the motion vector offset of the current block.
  • FIG. 6 (b) shows neighboring search points according to the cross-shaped search pattern.
  • the cross-shaped search pattern may indicate a search pattern for deriving four neighboring samples of upper, lower, left, and right around the search reference point as the surrounding search points.
  • the encoding / decoding device can calculate the cost function of the neighboring search points by deriving four neighboring samples of the upper, lower, left, And may update the motion information of the current block with motion information indicating a position having the lowest cost function.
  • the upper surrounding search point is a surrounding sample of the coordinates (a, b + y)
  • the lower surrounding search point is a surrounding sample of the (a
  • the left neighbor search point can be derived as a neighbor sample of (ay, b) coordinates
  • the right neighbor search point can be a neighbor sample of (a + y, b) coordinates.
  • x may represent the maximum value of the motion vector offset of the current block.
  • FIG. 6 (c) shows neighboring search points according to the diamond-shaped search pattern.
  • the diamond-shaped search pattern may represent a search pattern for deriving four neighboring samples located in a diagonal direction around the search reference point to the neighbor search points. That is, if the position of the peripheral search points according to the cross-shaped search pattern is rotated by 45 degrees, the positions of the peripheral search points of the diamond-shaped search pattern may be the same.
  • the encoding / decoding device derives the four surrounding samples in the diagonal direction around the search reference point as the neighbor search points to determine a cost function of the neighbor search points And can update the motion information of the current block with motion information indicating a position having the lowest cost function.
  • the upper left side surrounding search point is a neighbor sample of (a + y / 2, b + y / 2) (ay / 2, b / y / 2)
  • the surrounding sample of the coordinates, and the surrounding search point of the lower left side are (ay / ) ≪ / RTI > coordinates.
  • FIG. 6 (d) shows neighboring search points according to the hexagonal search pattern.
  • the hexagonal search pattern may represent a search pattern for deriving six neighboring samples around the search reference point to the neighbor search points. That is, the neighboring search points may be located at the vertexes of the hexagon centering on the search reference point.
  • the encoding / decoding apparatus may calculate the cost function of the neighbor search points by deriving six neighboring samples around the search reference point as the neighbor search points, The motion information of the current block can be updated with the motion information indicating the position having the lowest cost function.
  • the upper-side neighbor search point is a neighbor sample of (a + y / 2, b + y / 2) y / 2, by / 2)
  • the lower left peripheral search point is (ay / 2, by / 2)
  • the left peripheral search point can be derived as a peripheral sample of (ay, b) coordinates
  • the left upper peripheral search point can be a peripheral sample of (ay / 2, b + y / 2) coordinates.
  • FIGS. 6 (e) and 6 (f) may show neighboring search points according to the hybrid search patterns.
  • the hybrid search pattern may represent a search pattern combining two or more search patterns.
  • the hybrid search pattern may be a search pattern that derives surrounding search points according to two or more search patterns in one search round.
  • FIG. 6 (e) shows neighboring search points according to the mixed search pattern in which the cross-shaped search pattern and the diamond-shaped search pattern are combined.
  • the upper surrounding search point is a sample of (a, y + 2, b + y / 2) (A + y / 2, by / 2) and the lower surrounding search point are ((a + y, the surrounding sample of the coordinates (ay / 2), the surrounding sample of the coordinates (ay / b), the surrounding sample of the coordinates (ay / 2, b + y / 2) coordinates.
  • FIG. 6 (f) shows neighboring search points according to a mixed search pattern combining two cross-shaped search patterns and a diamond-shaped search pattern.
  • the first upper-side surrounding search point is the vicinity sample of the coordinates (a, b + y)
  • the upper right side search point of the sample is a neighbor sample of the coordinates (a + y / 2, b + y / 2)
  • the first right neighbor search point is a neighbor sample of the coordinates (a + y, b) (A + y, 2)
  • the first lower surrounding search point is the (a, b) coordinate of the surrounding sample.
  • the lower left peripheral search point is (ay / 2, by / 2) surrounding sample
  • the first left peripheral search point is (ay, b) the surrounding samples of the coordinates
  • the second left peripheral search point can be derived as a peripheral sample of the (az, b) coordinate
  • the left upper peripheral search point can be a peripheral sample of (ay / 2, b + y / 2) .
  • the hybrid search pattern may be a search pattern for deriving neighboring search points according to different search patterns for each search round. For example, in the hybrid search pattern, neighbor search points according to the cross-shaped search pattern are derived in the 2n-th search round, and neighbor search points according to the diamond search pattern are derived from the 2n + have.
  • the hybrid search pattern may indicate a search pattern in which the positions of neighboring search points are variously adjusted for each search round.
  • neighboring samples which are samples of K / 2 unit, can be derived as neighboring search points around the search reference point of the second round.
  • K / 4 Neighboring samples that are samples of the unit can be derived as the peripheral search points. If K is 1, neighboring samples that are integer samples around the search reference point in the first search round can be derived to the neighbor search points.
  • 1/2 fractional samples The neighboring samples of the unit can be derived as the neighboring search points, and the neighboring samples of the 1/4 fractional sample unit can be derived to the neighboring search points around the search reference point of the third round in the third round.
  • FIG. 7 shows an example of deriving the neighbor search points of the search round of the current sequence, excluding the neighbor search points of the previous search round.
  • a motion information update process according to a cross-shaped search pattern may be performed.
  • the position indicated by the motion information selected based on the motion information candidate list of the current block can be derived as a search reference point of the first search round, and based on the search reference point of the first search round
  • Four peripheral samples may be derived to the peripheral search points of the first search round so that the costs for the peripheral search points may be calculated.
  • the search reference point of the first search round and the right neighbor search point of the neighbor search points may have the smallest cost.
  • the right neighbor search point may be derived as the search reference point of the second search round.
  • Four neighboring samples can be derived around the search reference point of the second search round in the second search round according to the cross-shaped search pattern, but the left neighbor sample is the search reference point of the first search round
  • the cost function may be a position at which the cost function is already calculated. Accordingly, the neighboring search points of the second search round are adjacent to each other excluding the neighboring samples (i.e., the left neighboring sample) calculated in the previous search round among the neighboring samples derived based on the cross-shaped search pattern and the search reference point of the second search round. Samples can be derived. In addition, as shown in FIG.
  • the encoding / decoding apparatus may weight a selected search direction, and then perform a motion information update process by adding a neighbor search point in a search direction selected in a search round.
  • the right neighbor search point may be selected as the second search reference point in the first search round, in which case the search direction may be derived to the right direction.
  • the weight for the search direction is w and the coordinates of the second search reference point is (a, b)
  • the neighbor samples of (a, b + w * y) are additionally derived .
  • a method of ending the motion information update process based on a search range may be proposed.
  • a maximum search range for updating the motion information of the current block can be set, and a cost smaller than the cost of the search reference point of the search round can be set without departing from the maximum search range among neighbor search points of the search round
  • the motion information updating process may be terminated.
  • the cost of the neighbor search point may not be calculated.
  • the motion information indicating the search reference point of the last search round of the motion information updating process may be derived as the corrected motion information, and the motion information of the current block may be replaced with the corrected motion information.
  • the motion information update process may be terminated.
  • the motion information indicating the search reference point of the last search round of the motion information updating process may be derived as the corrected motion information, and the motion information of the current block may be replaced with the corrected motion information.
  • the motion information update process may be terminated, and among the search points within the maximum search range Motion information indicating a search point having a minimum cost can be derived as the modified motion information.
  • the maximum search range may be defined as 64. That is, the maximum search range may be set to a rectangular area having a center point and a height and a width of 128, which is indicated by the motion information derived based on the motion information candidate list of the current block.
  • the memory bandwidth required in the worst case of the motion information updating process can be determined according to the size of the maximum search range and it is advantageous from a memory viewpoint that the maximum search range is set to a small size as small as possible.
  • the maximum search range for the process of updating the motion information of each block and the maximum search range of the process of updating the motion information of each subblock may be preset.
  • a common maximum search range may be set for both the motion information update process on a block-by-block basis and the motion information update process on a subblock-by-subblock basis. That is, the same maximum search range may be set for the process of updating the motion information of each block and the process of updating the motion information of each subblock.
  • the block may represent a prediction unit (PU).
  • the maximum search range may be pre-set, and thus the maximum search range fixed to the encoding / decoding device may be used.
  • information on the maximum search range may be transmitted through a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS) such that a different maximum search range is used depending on the image characteristics.
  • a maximum search range may be set for each slice, and information on the maximum search range may be transmitted through a slice header or a syntax below.
  • the decoding apparatus can derive the maximum search range of the current block based on the information on the maximum search range.
  • the maximum search range may be derived based on a size of the current block, a temporal ID, a quantization parameter (QP), a picture type of a current picture including the current block, and the like .
  • QP quantization parameter
  • a method of ending the motion information update process based on a search round may be proposed. Specifically, when the maximum search frequency can be set and the search frequency of the search round is equal to the maximum search frequency, the process of updating the motion information of the current block can be ended and the motion information indicating the finally derived search reference point can be terminated And may be derived from the modified motion information.
  • the modified motion information may be replaced with motion information of the current block. That is, the prediction of the current block may be performed based on the modified motion information. For example, the maximum number of searches may be set to five.
  • the search frequency of the motion information update process of the current block can be initialized to 0 before the first search round, and when the search reference point of the next search round is derived, the search frequency is increased by 1 can do. Accordingly, when the search reference point for the sixth search round is derived through the fifth search round, the search frequency can be derived as 5, and thus the process of updating the motion information of the current block is ended, The motion information indicating the search reference point for the current block may be derived as the corrected motion information of the current block.
  • the value of the maximum search number may be related to the complexity of the worst case of the motion information update process.
  • the complexity of the worst case may be lowered, but the prediction accuracy may be lowered and the coding performance may be lowered.
  • the value of the maximum search frequency is set to a large value, the complexity of the worst case can be increased. Therefore, it may be important to set the maximum number of searches in consideration of both the complexity and the coding performance of the worst case.
  • the maximum search number may be preset, and the maximum search range fixed to the encoding / decoding apparatus may be used.
  • information on the maximum number of searches may be transmitted through a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS) such that a different maximum search frequency is used depending on the image characteristics.
  • the maximum number of search times may be set for each slice, and information on the maximum search number may be transmitted through a slice header or a syntax below.
  • the decoding apparatus can derive the maximum search number of the current block based on the information on the maximum search number.
  • the maximum number of searches may be derived based on the size of the current block, the temporal ID, the quantization parameter (QP), or the picture type of the current picture including the current block And the maximum number of searches may be variably applied based on the current block size, the temporal ID, the QP, or the picture type of the current picture including the current block.
  • QP quantization parameter
  • the search point may include a search reference point and a surrounding search point.
  • the motion information update process can be terminated, Motion information indicating a reference point may be derived as the modified motion information.
  • the number of the maximum search points when the number of the maximum search points is set to 20, a search point of the nth search round is derived, and when the number of search points derived from the first search round to the nth search round is larger than 20, The information updating process may be terminated and the motion information indicating the search reference point of the nth search round may be derived as the corrected motion information of the current block.
  • the number of maximum search points may be related to the complexity of the worst case of the motion information updating process as well as the maximum search range and the maximum search number. Meanwhile, the maximum number of search points may have the advantage that the maximum execution time of the motion update process can be most assured compared to the maximum search range and the maximum search number.
  • the maximum number of search points for the motion information updating process on a block-by-block basis and the maximum number of search points for the motion information updating process for each subblock can be separately set.
  • the same maximum number of search points may be set for the process of updating the motion information of the block unit and the process of updating the motion information of the subblock unit.
  • it may be adaptively set according to the search pattern of the current block. For example, if the search pattern of the current block is a cross-shaped search pattern, the maximum number of search points may be set to a value of 4 + 3 * n.
  • the number of search points derived from the first search round through the (n-1) th search round is 4 + 3 * n
  • the number of maximum search points is set to 4 + 3 * n, , (n-1) th search round) can be performed.
  • a maximum search point of the current block is determined based on the search pattern so that even if the search pattern of the current block is a search pattern other than the crossed search pattern, The number can be set.
  • the information on the maximum number of search points may be transmitted through a high level syntax such as a sequence parameter set (SPS) or a picture parameter set (PPS).
  • SPS sequence parameter set
  • PPS picture parameter set
  • information on the maximum number of search points may be transmitted through a slice header or a syntax below.
  • the decoding apparatus can derive the maximum number of search points of the current block based on the information on the maximum number of search points.
  • the maximum number of search points is derived based on the size of the current block, the temporal ID, the quantization parameter (QP), the picture type of the current picture including the current block, and the like
  • the maximum number of search points may be variably applied based on the size of the current block, the temporal ID, the QP, or the picture type of the current picture including the current block have.
  • a method of ending the process of updating the motion information based on the cost function value, that is, the cost may be proposed.
  • the minimum cost function value that is, the minimum cost can be predicted, and the cost of the peripheral search points of the search round is less than or equal to the minimum cost
  • Motion information indicating the derived search reference point may be derived as the modified motion information.
  • the predicted minimum cost may be referred to as a cost threshold.
  • the motion information update process is performed according to the cross-shaped search pattern of the current block, if the cost of the four neighbor search points in the search round is smaller than a preset cost threshold value, .
  • the cost threshold may be related to the average complexity of the motion information update process. In particular, when the cost threshold is set high, the average complexity of the motion information updating process may be reduced, but the prediction accuracy and coding performance may be reduced. On the contrary, when the cost threshold value is set low, the average complexity of the motion information updating process may not be greatly reduced, but the prediction accuracy and the coding performance can be maintained.
  • the cost of the search point may represent the difference between the template of the current block and the template of the reference block for the search point. That is, the cost may be derived as a sum of absolute values of differences between corresponding samples of the template of the current block and the template of the reference block.
  • the cost of the search point is determined by summing the absolute values of the differences between the corresponding samples of the bidirectional reference blocks, i.e., the reference block for the search point and the reference block in the opposite direction Absolute Differences, or Sum of Squared Differences.
  • the cost of the search point may be derived as Distortion + lambda * bitrate that reflects the bit rate.
  • the cost threshold value may be derived as a predetermined value, or may be adaptively updated in the encoding process. If the cost threshold value is derived as a preset value, the cost threshold value for the motion information updating process on a block-by-block basis and the cost threshold value for the motion information updating process on the subblock-by-subblock basis can be separately set, The same cost threshold value may be set for the motion information updating process and the motion information updating process for each subblock.
  • the process of updating the motion information on the subblocks of the current block is omitted .
  • the current block may be a prediction unit (PU), and whether or not the process of updating the motion information in units of subblocks may be omitted may be derived based on the following equation.
  • the cost PU min may represent the cost of the search reference point derived at the end of the current block, i.e., the minimum cost of the current block
  • the cost PU threshold may represent the cost threshold, .
  • a block-based motion information candidate list can be generated, and motion information of the corresponding block for the block-based motion information candidate list among the candidates of the block-based motion information candidate list can be selected.
  • the block unit motion information updating process for the motion information of the corresponding block may be performed, and the corrected motion information for the corresponding block may be derived. If the cost of the search point indicated by the modified motion information is less than or equal to a specific rate of the cost threshold value and the cost of the search point is less than or equal to a specific rate of the cost threshold value, The process of updating the sub-block-based motion information with respect to the sub-block may be omitted.
  • a sub-block-unit motion information candidate list for each of the sub-blocks of the corresponding block can be generated, and motion information for each sub-block among the sub-block unit motion information candidate list can be selected.
  • the motion information for each sub-block may be updated according to whether or not the sub-block-based motion information updating process is omitted.
  • the cost threshold value may be set to a high level such as a sequence parameter set (SPS) or a picture parameter set syntax.
  • the information on the cost threshold value may be transmitted through a slice header or a syntax below.
  • the decoding device may derive the cost threshold value of the current block based on the information on the cost threshold value.
  • a method of terminating the motion information updating process by considering the above-mentioned search round, search point, search range, and a plurality of conditions among costs may be proposed. That is, if one or more end conditions of the plurality of end conditions are satisfied, the encoding / decoding device can stop the motion information update process and update the motion information of the corresponding block based on the last selected search reference point.
  • a maximum number of search points and a cost threshold value for the block may be set. If the number of search points derived in the process of updating motion information exceeds the maximum number of search points, If the costs are less than or equal to the cost threshold, the motion information update process may end.
  • the maximum number of search points, the cost threshold, the maximum search number, and the maximum search range for the block can be set, and the number of search points derived in the motion information update process can be set to the maximum search point number
  • the cost of the peripheral search points in the search round is less than or equal to the cost threshold value and the search frequency of the search round is equal to the maximum search frequency and the search frequency of the search round is equal to the maximum search frequency
  • the search frequency of the search round is equal to the maximum search frequency
  • FIG. 8 schematically shows a video encoding method by an encoding apparatus according to the present invention.
  • the method disclosed in FIG. 8 can be performed by the encoding apparatus disclosed in FIG. Specifically, for example, S800 to S840 in FIG. 8 may be performed by the predicting unit of the decoding apparatus, and S850 may be performed by the entropy encoding unit of the encoding apparatus.
  • the encoding apparatus generates a motion information candidate list of the current block based on neighboring blocks of the current block (S800).
  • the encoding apparatus may generate a motion information candidate list based on neighboring blocks of the current block.
  • the encoding apparatus may generate a motion information candidate list for the current block based on motion information of the reconstructed spatial neighboring block of the current block and / or motion information corresponding to a Col block that is temporally neighboring block.
  • the motion information candidate list may include motion information of the restored spatial neighboring blocks and / or motion information corresponding to a Col block that is temporally neighboring blocks as motion information candidates.
  • the encoding apparatus determines motion information of the current block based on the motion information candidate list (S810).
  • the encoding apparatus can select the motion information of the current block among the motion information candidates of the motion information candidate list. Specifically, the motion information candidate having the smallest cost function value (i.e., cost) among the motion information candidates of the motion information candidate list may be selected as the motion information of the current block.
  • a motion information candidate for a reference block of a template having a smallest cost from a template of the current block among templates of reference blocks indicated by the motion information candidates may be selected as motion information of the current block.
  • the reference blocks indicated by the motion information candidates may include an L0 reference block for the reference picture list L0 and an L1 reference block for the reference picture list L1.
  • a motion information candidate having the smallest cost between the L0 reference block and the L1 reference block among the motion information candidates may be selected as motion information of the current block.
  • the encoding apparatus derives at least one next search reference point sequentially from the first search reference point based on the search pattern of the current block and the motion information (S820).
  • the encoding apparatus may derive at least one search reference point sequentially from a first search reference point of the current block.
  • the first search reference point may be a position indicated by the motion information.
  • the encoding apparatus can derive the peripheral search points for the Nth search reference point based on the search pattern, and derive the cost of the Nth search reference point and the peripheral search points.
  • the encoding apparatus may compare the Nth search reference point and the cost of the neighbor search points to determine whether to derive an (N + 1) th search reference point. If the smallest cost among the costs of the neighboring search points is smaller than the cost of the Nth search reference point, the encoding apparatus can derive the (N + 1) th search reference point from the neighbor search point having the smallest cost.
  • the encoding apparatus may not derive the (N + 1) th search reference point, As a search reference point.
  • the N may be an integer of 1 or more.
  • the cost of each neighboring search point with respect to the Nth search reference point may be a cost between a template of the reference block for each neighbor search point and a template of the current block. That is, the cost of each of the neighboring search points may be derived based on a comparison between the reference block template and the current block template for each of the neighbor search points.
  • the template of the current block may represent a specific region including neighboring samples of the current block
  • the template of the reference block may be a specific block including neighboring samples of the reference block corresponding to neighboring samples of the current block, Area. ≪ / RTI >
  • the reference block may be a block in which each of the neighboring search points is an upper left sample.
  • the cost can be derived based on Equation (1).
  • the cost of each of the neighbor search points with respect to the Nth search reference point may be derived based on the absolute value of the difference between the reference block in the opposite direction and the corresponding sample between the reference blocks to the respective neighbor search points have. That is, the cost of each of the neighboring search points with respect to the Nth search reference point may be an absolute value of a difference between a reference block in the opposite direction and a corresponding sample between the reference blocks to the neighbor search points. Alternatively, the cost of each of the neighboring search points with respect to the Nth search reference point may be the sum of squares of differences between reference blocks in the opposite direction and corresponding samples between the reference blocks to the neighbor search points.
  • the reference block in the opposite direction may indicate a reference block in a direction opposite to the direction of the reference block with respect to each of the peripheral search points.
  • positions along the search pattern with respect to the Nth search reference point may be derived as the neighbor search points with respect to the Nth search reference point. If the position of the (N-1) th detection reference point or the position of the neighboring search point with respect to the (N-1) th detection reference point is included, The position of the peripheral search point of the reference point may not be derived as a peripheral search point for the Nth search reference point.
  • the positions along the search pattern are derived as the neighbor search points for the Nth search reference point with reference to the Nth search reference point, and the positions include a position out of the maximum search range of the current block
  • a position out of the maximum search range of the current block may not be derived as a neighbor search point for the Nth search reference point, and search reference points in the order after the (N + 1) th search reference point may not be derived , And the (N + 1) th search reference point may be the last derived search reference point.
  • the decoding apparatus may derive the peripheral search points for the (N + 1) th search reference point based on the search pattern, and may search for the peripheral search of the (N + 1) If the number of points is greater than the maximum number of search points for the current block, a search reference point in the sequence after the (N + 1) th search reference point may not be derived, and if the Lt; / RTI >
  • a search reference point in the sequence after the (N + 1) th search reference point may not be derived, And the (N + 1) th search reference point may be the last derived search reference point.
  • a search reference point in the sequence after the (N + 1) th search reference point based on a plurality of conditions. For example, if the number of neighbor search points of the (N + 1) th search reference point to the (N + 1) th search reference point is greater than the maximum number of search points for the current block, or if N is the maximum search number
  • the search reference point in the sequence after the (N + 1) th search reference point may not be derived, and the (N + 1) th search reference point may be the last derived search reference point.
  • the number of neighbor search points of the (N + 1) th search reference point to the (N + 1) th search reference point is larger than the maximum number of search points for the current block, if N is equal to the maximum search number for the current block.
  • the positions along the search pattern based on the Nth search reference point include a position out of the maximum search range of the current block or when the cost of the neighbor search points with respect to the Nth search reference point is less than
  • the search reference point in the sequence after the (N + 1) th search reference point may not be derived, and the (N + 1) th search reference point may be the finally derived search reference point.
  • the maximum search range can be preset.
  • the information indicating the maximum search range may be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a PU unit syntax.
  • SPS sequence parameter set
  • PPS picture parameter set
  • the maximum search range may be a size of the current block, a temporal ID, a quantization parameter (QP), or a picture type of a current picture (picture type), and the like.
  • the maximum number of search points may be preset.
  • the information indicating the maximum number of search points may be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a unit of a CU, or a syntax of a unit of PU.
  • the device may signal information indicating the maximum number of search points through a bitstream.
  • the maximum number of search points may be a size of the current block, a temporal ID, a quantization parameter (QP) A picture type of a picture, and the like.
  • the maximum search frequency may be set in advance.
  • the information indicating the maximum search number can be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit or a PU unit syntax.
  • SPS sequence parameter set
  • PPS picture parameter set
  • the maximum number of search times may be determined based on a size of the current block, a temporal ID, a quantization parameter (QP), or a picture type of a current picture (picture type), and the like.
  • the cost threshold value may be preset.
  • the information indicating the cost threshold value may be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit or a PU unit syntax.
  • SPS sequence parameter set
  • PPS picture parameter set
  • the cost threshold value may be a size of the current block, a temporal ID, a quantization parameter (QP), or a picture type of a current picture (picture type), and the like.
  • the search pattern of the current block may be a cross shape search pattern, a diamond shape search pattern, a hexagon search pattern, an N square search pattern, a spiral search pattern, or a hybrid search pattern.
  • positions along the search pattern with respect to the Nth search reference point may be four positions of the Nth search reference point.
  • the positions are the upper positions of the coordinates (a, b + y) , by) coordinates, a left position of (ay, b) coordinates, and a right position of (a + y, b) coordinates.
  • the positions along the search pattern with respect to the Nth search reference point may be four positions in the diagonal direction of the Nth search reference point.
  • the positions are (a + y / 2, b + y / The upper left position of the coordinates (ay + 2 / by / 2), the lower left position of the (ay / 2, by / 2) Lt; / RTI >
  • positions along the search pattern with respect to the Nth search reference point may be vertex positions of a hexagon centered on the Nth search reference point.
  • the positions are (a + y / 2, b + y / (A + y / 2, by / 2), the lower left position of the (ay / 2, by / 2) coordinate, ay, b) the left position of the coordinates and the upper left position of the (ay, b + y) coordinates.
  • positions along the search pattern with respect to the Nth search reference point may be spiral positions centered on the Nth search reference point.
  • positions along the search pattern with respect to the Nth search reference point may be positions of a plurality of search patterns.
  • the search pattern of the current block is a mixed search pattern in which the cross-shaped search pattern and the diamond-shaped search pattern are combined, and the coordinate of the Nth search reference point is (a, b) (a + y / 2) by (a + y / 2), the upper right position of the coordinates (Ay, b + y), the lower left position of the (ay / 2, by / 2) coordinate, the left position of the (ay, b) ) Coordinates of the upper left corner.
  • positions along the search pattern with respect to the Nth search reference point may be positions of the search pattern based on the N.
  • the positions may be the upper position of the coordinates (a, b + y), the lower position of the (a, by) coordinate, the left position of the (ay, b) coordinate and the right position of the coordinates (A + y / 2, by / 2), (ay / 2, b + y / 2) when the N is an even number, by / 2) coordinates and the upper left position of (ay, b + y) coordinates.
  • a neighbor search point for the Nth search reference point may additionally be derived.
  • the search direction may be a direction indicating an Nth search base point to an Nth search base point.
  • the search direction may be the right direction.
  • the neighboring search point may be additionally derived based on the weight for the search direction. (A, b + w * y) is additionally derived as a peripheral search point for the Nth search reference point when the weight for the search direction is w and the coordinates of the Nth search reference point are (a, b) .
  • the encoding apparatus derives the motion information indicating the finally derived search reference point as the modified motion information of the current block (S830).
  • the encoding apparatus may derive the motion information indicating the finally derived search reference point as the modified motion information of the current block.
  • the search reference point in the sequence after the (N + 1) th search reference point may not be derived, and the (N + 1) th search reference point may be the last derived search reference point.
  • the encoding apparatus may derive the motion information indicating the (N + 1) th search reference point as the modified motion information of the current block.
  • the encoding apparatus updates the motion information of the current block based on the modified motion information (S840).
  • the encoding apparatus can update and store the motion information of the current block based on the modified motion information.
  • the encoding apparatus may update the motion information of the current block by replacing the motion information of the current block with the corrected motion information. If the current block is divided into sub-blocks, the updated motion information may be used for motion information of sub-blocks of the current block.
  • the encoding apparatus may generate a reconstructed sample based on the prediction sample and the residual sample, and may derive a reconstructed block or a reconstructed picture based on the reconstructed sample. It is as described above that the encoding apparatus can apply an in-loop filtering procedure such as deblocking filtering and / or SAO procedures to the restored picture to improve subjective / objective picture quality as needed.
  • an in-loop filtering procedure such as deblocking filtering and / or SAO procedures
  • the encoding apparatus can divide the current block into subblocks.
  • the encoding apparatus can generate the motion information candidate list of each sub-block based on the neighboring blocks of each sub-block.
  • the motion information candidate list of each sub-block may include the updated motion information as a motion information candidate.
  • the encoding apparatus can determine the motion information of each sub-block based on the motion information candidate list of each sub-block. Specifically, the motion information candidate having the smallest cost function value (i.e., cost) among the motion information candidates of the motion information candidate list may be selected as the motion information of the current block.
  • cost cost
  • the encoding apparatus may derive at least one next search reference point sequentially from a first search reference point of each sub-block based on the search pattern of each sub-block and the motion information, Can be derived as the modified motion information of each sub-block, and the motion information of each sub-block can be updated based on the modified motion information.
  • the process of deriving the search reference point for each sub-block may be the same as the process for deriving the search reference point for the current block.
  • the maximum search range of each sub-block can be preset.
  • the maximum search range of each sub-block may be set equal to the maximum search range of the current block, or may be set differently.
  • the information indicating the maximum search range of each sub-block may be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a PU unit syntax
  • SPS sequence parameter set
  • PPS picture parameter set
  • the maximum search range of each sub-block may be the size of each sub-block, the temporal ID of each sub-block, a temporal ID, a quantization parameter (QP), a picture type of a current picture, and the like.
  • the maximum number of search points for each sub-block may be preset.
  • the maximum number of search points for each sub-block may be set equal to the maximum number of search points for the current block, or may be set differently.
  • information indicating the maximum number of search points for each sub-block may be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a PU unit syntax
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice segment header a CU unit
  • PU unit syntax The encoding apparatus can signal information indicating the maximum number of search points for each sub-block through a bitstream, or the maximum number of search points for each sub- A temporal ID, a quantization parameter (QP), a picture type of a current picture, and the like.
  • the maximum search frequency of each sub-block may be set in advance.
  • the maximum search number of each sub-block may be set to be equal to the maximum search number of the current block, or may be set differently.
  • the information indicating the maximum number of search times of each sub-block may be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a PU unit syntax
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice segment header a CU unit
  • PU unit syntax The maximum number of search times of each sub-block may be determined based on a size of each sub-block, a temporal ID a temporal ID, a quantization parameter (QP), a picture type of a current picture, and the like.
  • the cost threshold value of each sub-block may be preset.
  • the cost threshold value of each sub-block may be set equal to the cost threshold value of the current block, or may be set differently.
  • information indicating the cost threshold value of each sub-block may be transmitted through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a PU unit syntax
  • SPS sequence parameter set
  • PPS picture parameter set
  • the cost threshold value of each sub-block may be the size of each sub-block, the temporal ID of each sub-block, a temporal ID, a quantization parameter (QP), a picture type of a current picture, and the like.
  • the motion information of each sub-block may not be updated if a specific ratio of the cost threshold of the current block is less than or equal to a specific ratio of the cost threshold of the current block. Block, the motion information of the lower-right sub-block may not be updated. [0051] In addition, The updated motion information of the current block may be derived as motion information of the lower-right sub-block.
  • the encoding apparatus generates information about the inter prediction of the current block, encodes and outputs the information (S850).
  • the encoding apparatus may encode information on the inter prediction of the current block and output the encoded information in the form of a bit stream.
  • the information on the inter prediction of the current block may include information on the maximum search range of the current block, information on the maximum number of search points, information on the maximum search number, and / or information on the cost threshold.
  • Information on the maximum search range, information on the maximum number of search points, information on the maximum search number, and / or information on the cost threshold value are stored in a video parameter set (VPS), a sequence parameter set (SPS) a picture parameter set, a slice segment header, or a block level.
  • VPS video parameter set
  • SPS sequence parameter set
  • the encoding apparatus may encode information on inter prediction of each sub-block of the current block and output it as a bit stream.
  • the information on the inter prediction of each sub-block may include information on the maximum search range of each sub-block, information on the maximum number of search points, information on the maximum search number, and / or cost threshold value. have.
  • Information on the maximum search range, information on the maximum number of search points, information on the maximum search number, and / or information on the cost threshold value are stored in a video parameter set (VPS), a sequence parameter set (SPS) a picture parameter set, a slice segment header, or a block level.
  • VPS video parameter set
  • SPS sequence parameter set
  • FIG. 9 schematically shows a video decoding method by a decoding apparatus according to the present invention.
  • the method disclosed in Fig. 9 can be performed by the decoding apparatus disclosed in Fig. Specifically, for example, S900 to S940 of FIG. 9 may be performed by the predicting unit of the decoding apparatus.
  • the decoding apparatus generates a motion information candidate list of the current block based on neighboring blocks of the current block (S900).
  • the decoding apparatus can generate a motion information candidate list based on the neighboring blocks of the current block.
  • the decoding apparatus may generate a motion information candidate list for the current block based on the motion information of the reconstructed spatial neighboring block of the current block and / or the motion information corresponding to the Col block which is temporally neighboring block.
  • the motion information candidate list may include motion information of the restored spatial neighboring blocks and / or motion information corresponding to a Col block that is temporally neighboring blocks as motion information candidates.
  • the decoding apparatus derives motion information of the current block based on the motion information candidate list (S910).
  • the decoding apparatus can select the motion information of the current block among the motion information candidates of the motion information candidate list.
  • the motion information candidate having the smallest cost function value (i.e., cost) among the motion information candidates of the motion information candidate list may be selected as the motion information of the current block.
  • a motion information candidate for a reference block of a template having a smallest cost from a template of the current block among templates of reference blocks indicated by the motion information candidates may be selected as motion information of the current block.
  • the reference blocks indicated by the motion information candidates may include an L0 reference block for the reference picture list L0 and an L1 reference block for the reference picture list L1.
  • a motion information candidate having the smallest cost between the L0 reference block and the L1 reference block among the motion information candidates may be selected as motion information of the current block.
  • the decoding apparatus derives at least one next search reference point sequentially from the first search reference point based on the search pattern of the current block and the motion information (S920).
  • the decoding apparatus may derive at least one search reference point sequentially from a first search reference point of the current block.
  • the first search reference point may be a position indicated by the motion information.
  • the decoding apparatus can derive the peripheral search points for the Nth search reference point based on the search pattern, and derive the cost of the Nth search reference point and the peripheral search points.
  • the decoding apparatus may compare the Nth search reference point and the cost of the neighbor search points to determine whether to derive an (N + 1) th search reference point.
  • the decoding apparatus can derive the (N + 1) th search reference point from the neighbor search point having the smallest cost.
  • the decoding apparatus may not derive the N + 1th search reference point if the lowest cost among the costs of the peripheral search points is not smaller than the cost of the Nth search reference point, As a search reference point.
  • the N may be an integer of 1 or more.
  • the cost of each neighboring search point with respect to the Nth search reference point may be a cost between a template of the reference block for each neighbor search point and a template of the current block. That is, the cost of each of the neighboring search points may be derived based on a comparison between the reference block template and the current block template for each of the neighbor search points.
  • the template of the current block may represent a specific region including neighboring samples of the current block
  • the template of the reference block may be a specific block including neighboring samples of the reference block corresponding to neighboring samples of the current block, Area. ≪ / RTI >
  • the reference block may be a block in which each of the neighboring search points is an upper left sample.
  • the cost can be derived based on Equation (1).
  • the cost of each of the neighbor search points with respect to the Nth search reference point may be derived based on the absolute value of the difference between the reference block in the opposite direction and the corresponding sample between the reference blocks to the respective neighbor search points have. That is, the cost of each of the neighboring search points with respect to the Nth search reference point may be an absolute value of a difference between a reference block in the opposite direction and a corresponding sample between the reference blocks to the neighbor search points. Alternatively, the cost of each of the neighboring search points with respect to the Nth search reference point may be the sum of squares of differences between reference blocks in the opposite direction and corresponding samples between the reference blocks to the neighbor search points.
  • the reference block in the opposite direction may indicate a reference block in a direction opposite to the direction of the reference block with respect to each of the peripheral search points.
  • positions along the search pattern with respect to the Nth search reference point may be derived as the neighbor search points with respect to the Nth search reference point. If the position of the (N-1) th detection reference point or the position of the neighboring search point with respect to the (N-1) th detection reference point is included, The position of the peripheral search point of the reference point may not be derived as a peripheral search point for the Nth search reference point.
  • the positions along the search pattern are derived as the neighbor search points for the Nth search reference point with reference to the Nth search reference point, and the positions include a position out of the maximum search range of the current block
  • a position out of the maximum search range of the current block may not be derived as a neighbor search point for the Nth search reference point, and search reference points in the order after the (N + 1) th search reference point may not be derived , And the (N + 1) th search reference point may be the last derived search reference point.
  • a search reference point in the order after the (N + 1) th search reference point may not be derived, and if the May be the derived search reference point.
  • the decoding apparatus may derive the peripheral search points for the (N + 1) th search reference point based on the search pattern, and may search for the peripheral search of the (N + 1) If the number of points is greater than the maximum number of search points for the current block, a search reference point in the sequence after the (N + 1) th search reference point may not be derived, and if the Lt; / RTI >
  • a search reference point in the sequence after the (N + 1) th search reference point may not be derived, And the (N + 1) th search reference point may be the last derived search reference point.
  • a search reference point in the sequence after the (N + 1) th search reference point based on a plurality of conditions. For example, if the number of neighbor search points of the (N + 1) th search reference point to the (N + 1) th search reference point is greater than the maximum number of search points for the current block, or if N is the maximum search number
  • the search reference point in the sequence after the (N + 1) th search reference point may not be derived, and the (N + 1) th search reference point may be the last derived search reference point.
  • the number of neighbor search points of the (N + 1) th search reference point to the (N + 1) th search reference point is larger than the maximum number of search points for the current block, if N is equal to the maximum search number for the current block.
  • the positions along the search pattern based on the Nth search reference point include a position out of the maximum search range of the current block or when the cost of the neighbor search points with respect to the Nth search reference point is less than
  • the search reference point in the sequence after the (N + 1) th search reference point may not be derived, and the (N + 1) th search reference point may be the finally derived search reference point.
  • the maximum search range can be preset.
  • the information indicating the maximum search range may be received via a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a syntax in units of PU.
  • SPS sequence parameter set
  • PPS picture parameter set
  • the maximum search range may be derived based on the information indicating the maximum search range, or the maximum search range may be the current search range, A temporal ID, a quantization parameter (QP), a picture type of a current picture, and the like.
  • QP quantization parameter
  • the maximum number of search points may be preset.
  • information indicating the maximum number of search points may be received via a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a syntax in units of PU.
  • SPS sequence parameter set
  • PPS picture parameter set
  • the apparatus can obtain information indicating the maximum number of search points through a bit stream, wherein the maximum number of search points can be derived based on information indicating the maximum number of search points.
  • the number of points may be derived based on the size of the current block, a temporal ID, a quantization parameter (QP), a picture type of a current picture, or the like.
  • QP quantization parameter
  • the maximum search frequency may be set in advance.
  • the information indicating the maximum search number may be received through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit or a PU unit syntax.
  • SPS sequence parameter set
  • PPS picture parameter set
  • the maximum search number may be derived based on the information indicating the maximum search number, or the maximum search number may be the current search number, A temporal ID, a quantization parameter (QP), a picture type of a current picture, and the like.
  • QP quantization parameter
  • the cost threshold value may be preset.
  • the information indicating the cost threshold value may be received through a syntax parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a PU unit syntax.
  • SPS syntax parameter set
  • PPS picture parameter set
  • the cost threshold value may be derived based on the information indicating the cost threshold value, or the cost threshold value may be the current cost threshold value, A temporal ID, a quantization parameter (QP), a picture type of a current picture, and the like.
  • QP quantization parameter
  • the search pattern of the current block may be a cross shape search pattern, a diamond shape search pattern, a hexagon search pattern, an N square search pattern, a spiral search pattern, or a hybrid search pattern.
  • positions along the search pattern with respect to the Nth search reference point may be four positions of the Nth search reference point.
  • the positions are the upper positions of the coordinates (a, b + y) , by) coordinates, a left position of (ay, b) coordinates, and a right position of (a + y, b) coordinates.
  • the positions along the search pattern with respect to the Nth search reference point may be four positions in the diagonal direction of the Nth search reference point.
  • the positions are (a + y / 2, b + y / The upper left position of the coordinates (ay + 2 / by / 2), the lower left position of the (ay / 2, by / 2) Lt; / RTI >
  • positions along the search pattern with respect to the Nth search reference point may be vertex positions of a hexagon centered on the Nth search reference point.
  • the positions are (a + y / 2, b + y / (A + y / 2, by / 2), the lower left position of the (ay / 2, by / 2) coordinate, ay, b) the left position of the coordinates and the upper left position of the (ay, b + y) coordinates.
  • positions along the search pattern with respect to the Nth search reference point may be spiral positions centered on the Nth search reference point.
  • positions along the search pattern with respect to the Nth search reference point may be positions of a plurality of search patterns.
  • the search pattern of the current block is a mixed search pattern in which the cross-shaped search pattern and the diamond-shaped search pattern are combined, and the coordinate of the Nth search reference point is (a, b) (a + y / 2) by (a + y / 2), the upper right position of the coordinates (Ay, b + y), the lower left position of the (ay / 2, by / 2) coordinate, the left position of the (ay, b) ) Coordinates of the upper left corner.
  • positions along the search pattern with respect to the Nth search reference point may be positions of the search pattern based on the N.
  • the positions may be the upper position of the coordinates (a, b + y), the lower position of the (a, by) coordinate, the left position of the (ay, b) coordinate and the right position of the coordinates (A + y / 2, by / 2), (ay / 2, b + y / 2) when the N is an even number, by / 2) coordinates and the upper left position of (ay, b + y) coordinates.
  • a neighbor search point for the Nth search reference point may additionally be derived.
  • the search direction may be a direction indicating an Nth search base point to an Nth search base point.
  • the search direction may be the right direction.
  • the neighboring search point may be additionally derived based on the weight for the search direction. (A, b + w * y) is additionally derived as a peripheral search point for the Nth search reference point when the weight for the search direction is w and the coordinates of the Nth search reference point are (a, b) .
  • the decoding apparatus derives the motion information indicating the finally derived search reference point as the modified motion information of the current block (S930).
  • the decoding apparatus may derive the motion information indicating the finally derived search reference point as the modified motion information of the current block.
  • the search reference point in the sequence after the (N + 1) th search reference point may not be derived, and the (N + 1) th search reference point may be the last derived search reference point.
  • the decoding apparatus may derive the motion information indicating the (N + 1) th detection reference point as the modified motion information of the current block.
  • the decoding apparatus updates the motion information of the current block based on the modified motion information (S940).
  • the decoding apparatus can update and store the motion information of the current block based on the modified motion information.
  • the decoding apparatus may update the motion information of the current block by replacing the motion information of the current block with the corrected motion information. If the current block is divided into sub-blocks, the updated motion information may be used for motion information of sub-blocks of the current block.
  • the decoding apparatus can acquire information on the inter prediction of the current block through the bit stream.
  • the information on the inter prediction of the current block may include information on the maximum search range of the current block, information on the maximum number of search points, information on the maximum search number, and / or information on the cost threshold.
  • Information on the maximum search range, information on the maximum number of search points, information on the maximum search number, and / or information on the cost threshold value are stored in a video parameter set (VPS), a sequence parameter set (SPS) (picture parameter set), a slice segment header, or a block level.
  • VPS video parameter set
  • SPS sequence parameter set
  • slice segment header a slice segment header
  • block level a block level
  • the decoding apparatus may obtain information on inter prediction of each sub-block of the current block through the bit stream.
  • the information on the inter prediction of each sub-block may include information on the maximum search range of each sub-block, information on the maximum number of search points, information on the maximum search number, and / or cost threshold value. have.
  • Information on the maximum search range, information on the maximum number of search points, information on the maximum search number, and / or information on the cost threshold value are stored in a video parameter set (VPS), a sequence parameter set (SPS) (picture parameter set), a slice segment header, or a block level.
  • VPS video parameter set
  • SPS sequence parameter set
  • slice segment header a slice segment header
  • block level a block level
  • a prediction block of the current block can be derived based on the updated motion information, and a reconstruction block can be derived based on the prediction block.
  • the decoding apparatus can generate a prediction sample based on the updated motion information, and can directly use the prediction sample as a reconstructed sample according to a prediction mode, or add a residual sample to the predicted sample, May be generated.
  • the decoding apparatus may receive information on a residual from the bitstream, if there is a residual sample for the current block, for the current block.
  • the information on the residual may include a transform coefficient relating to the residual sample.
  • the decoding apparatus may derive the residual sample (or residual sample array) for the current block based on the residual information.
  • the decoding apparatus may generate a reconstructed sample based on the prediction sample and the residual sample, and may derive a reconstructed block or a reconstructed picture based on the reconstructed sample.
  • the decoding apparatus can apply an in-loop filtering procedure such as deblocking filtering and / or SAO procedure to the restored picture in order to improve subjective / objective picture quality as necessary.
  • the decoding apparatus may divide the current block into subblocks.
  • the decoding apparatus can generate the motion information candidate list of each sub-block based on the neighboring blocks of each sub-block.
  • the motion information candidate list of each sub-block may include the updated motion information as a motion information candidate.
  • the decoding apparatus can derive the motion information of each sub-block based on the motion information candidate list of each sub-block.
  • the motion information candidate having the smallest cost function value (i.e., cost) among the motion information candidates of the motion information candidate list may be selected as the motion information of the current block.
  • the decoding apparatus may derive at least one next search reference point sequentially from a first search reference point of each sub-block based on the search pattern of each sub-block and the motion information, Can be derived as the modified motion information of each sub-block, and the motion information of each sub-block can be updated based on the modified motion information.
  • the process of deriving the search reference point for each sub-block may be the same as the process for deriving the search reference point for the current block.
  • the maximum search range of each sub-block can be preset.
  • the maximum search range of each sub-block may be set equal to the maximum search range of the current block, or may be set differently.
  • the information indicating the maximum search range of each sub-block may be received through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit or a PU unit syntax
  • the maximum search range of each sub-block may include information indicating the maximum search range based on the information of the maximum search range,
  • the maximum search range of each of the subblocks may be a size of each of the subblocks, a temporal ID, a quantization parameter (QP), a picture type of a current picture, or the like. . ≪ / RTI >
  • the maximum number of search points for each sub-block may be preset.
  • the maximum number of search points for each sub-block may be set equal to the maximum number of search points for the current block, or may be set differently.
  • information indicating the maximum number of search points for each sub-block may be received through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit or a unit of PU
  • SPS sequence parameter set
  • PPS picture parameter set
  • the decoding apparatus can obtain information indicating the maximum number of search points for each sub-block through a bitstream.
  • the maximum number of search points for each sub-block may be determined based on the size of each sub-block, the temporal ID, a quantization parameter (QP) A picture type of a picture, and the like.
  • QP quantization parameter
  • the maximum search frequency of each sub-block may be set in advance.
  • the maximum search number of each sub-block may be set to be equal to the maximum search number of the current block, or may be set differently.
  • the information indicating the maximum number of search times of each sub-block may be received through a sequence parameter set (SPS), a picture parameter set (PPS), a slice segment header, a CU unit, or a PU unit syntax
  • SPS sequence parameter set
  • PPS picture parameter set
  • slice segment header e.g., a CU unit
  • PU unit syntax e.g.
  • the motion information of the current block can be updated with more accurate motion information by calculating the modified motion information of the current block, thereby improving the prediction efficiency.
  • motion information of the current block can be updated with more accurate motion information by calculating modified motion information of the current block according to various search patterns, thereby improving prediction efficiency.
  • the above-described method according to the present invention can be implemented in software, and the encoding apparatus and / or decoding apparatus according to the present invention can perform image processing of, for example, a TV, a computer, a smart phone, a set- Device.
  • the above-described method may be implemented by a module (a process, a function, and the like) that performs the above-described functions.
  • the module is stored in memory and can be executed by the processor.
  • the memory may be internal or external to the processor and may be coupled to the processor by any of a variety of well known means.
  • the processor may comprise an application-specific integrated circuit (ASIC), other chipset, logic circuitry and / or a data processing device.
  • the memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices.

Abstract

본 발명에 따른 디코딩 장치에 의하여 수행되는 영상 디코딩 방법은 현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계, 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계, 상기 현재 블록의 탐색 패턴 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출하는 단계, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출하는 단계, 및 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)하는 단계를 포함함을 특징으로 한다.

Description

영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
본 발명은 영상 코딩 기술에 관한 것으로서 보다 상세하게는 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위해 고효율의 영상 압축 기술이 요구된다.
본 발명의 기술적 과제는 영상 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 수신단에서 현재 블록의 수정된 움직임 정보를 계산하고, 수정된 움직임 정보를 기반으로 상기 현재 블록의 움직임 정보를 갱신하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 수신단에서 현재 블록의 서브 블록의 수정된 움직임 정보를 계산하고, 수정된 움직임 정보를 기반으로 상기 현재 블록의 움직임 정보를 갱신하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 특정 조건을 기반으로 현재 블록의 움직임 정보를 갱신하는 과정을 종료하는 방법 및 장치를 제공함에 있다.
본 발명의 일 실시예에 따르면, 디코딩 장치에 의하여 수행되는 영상 디코딩 방법이 제공된다. 상기 방법은 현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계, 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계, 상기 현재 블록의 탐색 패턴(search pattern) 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출하는 단계, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출하는 단계, 및 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)하는 단계를 포함함을 특징으로 한다.
본 발명의 다른 일 실시예에 따르면, 영상 디코딩을 수행하는 디코딩 장치가 제공된다. 상기 디코딩 장치는 비트스트림을 통하여 현재 블록의 인터 예측에 대한 정보를 획득하는 엔트로피 디코딩부, 및 상기 현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성하고, 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하고, 상기 현재 블록의 탐색 패턴(search pattern) 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출하고, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출하고, 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)하는 예측부를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 일 실시예에 따르면, 인코딩 장치에 의하여 수행되는 비디오 인코딩 방법을 제공한다. 상기 방법은 현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계, 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 결정하는 단계, 상기 현재 블록의 탐색 패턴(search pattern) 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출하는 단계, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출하는 단계, 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)하는 단계, 및 상기 현재 블록의 인터 예측에 대한 정보를 인코딩하여 출력하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 일 실시예에 따르면, 비디오 인코딩 장치를 제공한다. 상기 인코딩 장치는 현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성하고, 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 결정하고, 상기 현재 블록의 탐색 패턴(search pattern) 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출하고, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출하고, 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)하는 예측부, 및 상기 현재 블록의 인터 예측에 대한 정보를 인코딩하여 출력하는 엔트로피 인코딩부를 포함하는 것을 특징으로 한다.
본 발명에 따르면 상기 현재 블록의 수정된 움직임 정보를 계산하여 상기 현재 블록의 움직임 정보를 더욱 정확한 움직임 정보로 갱신할 수 있고, 이를 통하여 예측 효율을 향상시킬 수 있다.
본 발명에 따르면 다양한 탐색 패턴에 따라 상기 현재 블록의 수정된 움직임 정보를 계산하여 상기 현재 블록의 움직임 정보를 더욱 정확한 움직임 정보로 갱신할 수 있고, 이를 통하여 예측 효율을 향상시킬 수 있다.
본 발명에 따르면 다양한 조건을 기반으로 현재 블록의 움직임 정보를 갱신하는 과정의 탐색 회수를 제한하여 복잡도를 줄일 수 있고, 이를 통하여 전체적인 코딩 효율을 향상시킬 수 있다.
도 1은 본 발명이 적용될 수 있는 비디오 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 2는 본 발명이 적용될 수 있는 비디오 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 3은 상기 템플릿 정합 방법을 통하여 상기 현재 블록의 움직임 정보를 도출하는 일 예를 나타낸다.
도 4는 상기 양방향 정합 방법을 통하여 상기 현재 블록의 움직임 정보를 도출하는 일 예를 나타낸다.
도 5는 DMVD 의 움직임 정보 갱신 과정에서 상기 현재 블록의 움직임 정보를 탐색하는 일 예를 나타낸다.
도 6은 움직임 정보 갱신 과정에서 사용될 수 있는 탐색 패턴들을 예시적으로 나타낸다.
도 7은 이전 탐색 라운드의 주변 탐색점을 제외하고 현재 순서의 탐색 라운드의 주변 탐색점을 도출하는 일 예를 나타낸다.
도 8은 본 발명에 따른 인코딩 장치에 의한 비디오 인코딩 방법을 개략적으로 나타낸다.
도 9는 본 발명에 따른 디코딩 장치에 의한 비디오 디코딩 방법을 개략적으로 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정 실시예에 한정하려고 하는 것이 아니다. 본 명세서에서 상용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 도는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.
본 명세서에서 픽처(picture)는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)는 코딩에 있어서 픽처의 일부를 구성하는 단위이다. 하나의 픽처는 복수의 슬라이스로 구성될 수 있으며, 필요에 따라서 픽처 및 슬라이스는 서로 혼용되어 사용될 수 있다.
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.
유닛(unit)은 영상 처리의 기본 단위를 나타낸다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다.
도 1은 본 발명이 적용될 수 있는 비디오 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 1을 참조하면, 비디오 인코딩 장치(100)는 픽처 분할부(105), 예측부(110), 레지듀얼 처리부(120), 엔트로피 인코딩부(130), 가산부(140), 필터부(150) 및 메모리(160)을 포함할 수 있다. 레지듀얼 처리부(120)는 감산부(121), 변환부(122), 양자화부(123), 재정렬부(124), 역양자화부(125) 및 역변환부(126)를 포함할 수 있다.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 유닛(processing unit)으로 분할할 수 있다.
일 예로, 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 최대 코딩 유닛(largest coding unit, LCU)으로부터 QTBT (Quad-tree binary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조 및/또는 바이너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조가 나중에 적용될 수 있다. 또는 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 발명에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다.
다른 예로, 처리 유닛은 코딩 유닛(coding unit, CU) 예측 유닛(prediction unit, PU) 또는 변환 유닛(transform unit, TU)을 포함할 수도 있다. 코딩 유닛은 최대 코딩 유닛(largest coding unit, LCU)으로부터 쿼드 트리 구조를 따라서 하위(deeper) 뎁스의 코딩 유닛들로 분할(split)될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 최소 코딩 유닛(smallest coding unit, SCU)이 설정된 경우 코딩 유닛은 최소 코딩 유닛보다 더 작은 코딩 유닛으로 분할될 수 없다. 여기서 최종 코딩 유닛이라 함은 예측 유닛 또는 변환 유닛으로 파티셔닝 또는 분할되는 기반이 되는 코딩 유닛을 의미한다. 예측 유닛은 코딩 유닛으로부터 파티셔닝(partitioning)되는 유닛으로서, 샘플 예측의 유닛일 수 있다. 이 때, 예측 유닛은 서브 블록(sub block)으로 나뉠 수도 있다. 변환 유닛은 코딩 유닛으로부터 쿼드 트리 구조를 따라서 분할 될 수 있으며, 변환 계수를 유도하는 유닛 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 유닛일 수 있다. 이하, 코딩 유닛은 코딩 블록(coding block, CB), 예측 유닛은 예측 블록(prediction block, PB), 변환 유닛은 변환 블록(transform block, TB) 으로 불릴 수 있다. 예측 블록 또는 예측 유닛은 픽처 내에서 블록 형태의 특정 영역을 의미할 수 있고, 예측 샘플의 어레이(array)를 포함할 수 있다. 또한, 변환 블록 또는 변환 유닛은 픽처 내에서 블록 형태의 특정 영역을 의미할 수 있고, 변환 계수 또는 레지듀얼 샘플의 어레이를 포함할 수 있다.
예측부(110)는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부(110)에서 수행되는 예측의 단위는 코딩 블록일 수 있고, 변환 블록일 수도 있고, 예측 블록일 수도 있다.
예측부(110)는 현재 블록에 인트라 예측이 적용되는지 인터 예측이 적용되는지를 결정할 수 있다. 일 예로, 예측부(110)는 CU 단위로 인트라 예측 또는 인터 예측이 적용되는지를 결정할 수 있다.
인트라 예측의 경우에, 예측부(110)는 현재 블록이 속하는 픽처(이하, 현재 픽처) 내의 현재 블록 외부의 참조 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이 때, 예측부(110)는 (i) 현재 블록의 주변(neighboring) 참조 샘플들의 평균(average) 혹은 인터폴레이션(interpolation)을 기반으로 예측 샘플을 유도할 수 있고, (ii) 현재 블록의 주변 참조 샘플들 중 예측 샘플에 대하여 특정 (예측) 방향에 존재하는 참조 샘플을 기반으로 상기 예측 샘플을 유도할 수도 있다. (i)의 경우는 비방향성 모드 또는 비각도 모드, (ii)의 경우는 방향성(directional) 모드 또는 각도(angular) 모드라고 불릴 수 있다. 인트라 예측에서 예측 모드는 예를 들어 33개의 방향성 예측 모드와 적어도 2개 이상의 비방향성 모드를 가질 수 있다. 비방향성 모드는 DC 예측 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 예측부(110)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측의 경우에, 예측부(110)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 샘플을 기반으로, 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(110)는 스킵(skip) 모드, 머지(merge) 모드, 및 MVP(motion vector prediction) 모드 중 어느 하나를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 스킵 모드와 머지 모드의 경우에, 예측부(110)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 예측 샘플과 원본 샘플 사이의 차(레지듀얼)가 전송되지 않는다. MVP 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(Motion Vector Predictor)로 이용하여 현재 블록의 움직임 벡터 예측자로 이용하여 현재 블록의 움직임 벡터를 유도할 수 있다.
인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처(reference picture)에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 움직임 정보(motion information)는 움직임 벡터와 참조 픽처 인덱스를 포함할 수 있다. 예측 모드 정보와 움직임 정보 등의 정보는 (엔트로피) 인코딩되어 비트스트림 형태로 출력될 수 있다.
스킵 모드와 머지 모드에서 시간적 주변 블록의 움직임 정보가 이용되는 경우에, 참조 픽처 리스트(reference picture list) 상의 최상위 픽처가 참조 픽처로서 이용될 수도 있다. 참조 픽처 리스트(Picture Order Count)에 포함되는 참조 픽처들은 현재 픽처와 해당 참조 픽처 간의 POC(Picture order count) 차이 기반으로 정렬될 수 있다. POC는 픽처의 디스플레이 순서에 대응하며, 코딩 순서와 구분될 수 있다.
감산부(121)는 원본 샘플과 예측 샘플 간의 차이인 레지듀얼 샘플을 생성한다. 스킵 모드가 적용되는 경우에는, 상술한 바와 같이 레지듀얼 샘플을 생성하지 않을 수 있다.
변환부(122)는 변환 블록 단위로 레지듀얼 샘플을 변환하여 변환 계수(transform coefficient)를 생성한다. 변환부(122)는 해당 변환 블록의 사이즈와, 해당 변환 블록과 공간적으로 겹치는 코딩 블록 또는 예측 블록에 적용된 예측 모드에 따라서 변환을 수행할 수 있다. 예컨대, 상기 변환 블록과 겹치는 상기 코딩 블록 또는 상기 예측 블록에 인트라 예측이 적용되었고, 상기 변환 블록이 4×4의 레지듀얼 어레이(array)라면, 레지듀얼 샘플은 DST(Discrete Sine Transform) 변환 커널을 이용하여 변환되고, 그 외의 경우라면 레지듀얼 샘플은 DCT(Discrete Cosine Transform) 변환 커널을 이용하여 변환할 수 있다.
양자화부(123)는 변환 계수들을 양자화하여, 양자화된 변환 계수를 생성할 수 있다.
재정렬부(124)는 양자화된 변환 계수를 재정렬한다. 재정렬부(124)는 계수들 스캐닝(scanning) 방법을 통해 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있다. 여기서 재정렬부(124)는 별도의 구성으로 설명하였으나, 재정렬부(124)는 양자화부(123)의 일부일 수 있다.
엔트로피 인코딩부(130)는 양자화된 변환 계수들에 대한 엔트로피 인코딩을 수행할 수 있다. 엔트로피 인코딩은 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 인코딩 방법을 포함할 수 있다. 엔트로피 인코딩부(130)는 양자화된 변환 계수 외 비디오 복원에 필요한 정보들(예컨대 신택스 요소(syntax element)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 엔트로피 인코딩된 정보들은 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다.
역양자화부(125)는 양자화부(123)에서 양자화된 값(양자화된 변환 계수)들을 역양자화하고, 역변환부(126)는 역양자화부(125)에서 역양자화된 값들을 역변환하여 레지듀얼 샘플을 생성한다.
가산부(140)는 레지듀얼 샘플과 예측 샘플을 합쳐서 픽처를 복원한다. 레지듀얼 샘플과 예측 샘플은 블록 단위로 더해져서 복원 블록이 생성될 수 있다. 여기서 가산부(140)는 별도의 구성으로 설명하였으나, 가산부(140)는 예측부(110)의 일부일 수 있다. 한편, 가산부(140)는 복원부 또는 복원 블록 생성부로 불릴 수도 있다.
복원된 픽처(reconstructed picture)에 대하여 필터부(150)는 디블록킹 필터 및/또는 샘플 적응적 오프셋(sample adaptive offset)을 적용할 수 있다. 디블록킹 필터링 및/또는 샘플 적응적 오프셋을 통해, 복원 픽처 내 블록 경계의 아티팩트나 양자화 과정에서의 왜곡이 보정될 수 있다. 샘플 적응적 오프셋은 샘플 단위로 적용될 수 있으며, 디블록킹 필터링의 과정이 완료된 후 적용될 수 있다. 필터부(150)는 ALF(Adaptive Loop Filter)를 복원된 픽처에 적용할 수도 있다. ALF는 디블록킹 필터 및/또는 샘플 적응적 오프셋이 적용된 후의 복원된 픽처에 대하여 적용될 수 있다.
메모리(160)는 복원 픽처(디코딩된 픽처) 또는 인코딩/디코딩에 필요한 정보를 저장할 수 있다. 여기서 복원 픽처는 상기 필터부(150)에 의하여 필터링 절차가 완료된 복원 픽처일 수 있다. 상기 저장된 복원 픽처는 다른 픽처의 (인터) 예측을 위한 참조 픽처로 활용될 수 있다. 예컨대, 메모리(160)는 인터 예측에 사용되는 (참조) 픽처들을 저장할 수 있다. 이 때, 인터 예측에 사용되는 픽처들은 참조 픽처 세트(reference picture set) 혹은 참조 픽처 리스트(reference picture list)에 의해 지정될 수 있다.
도 2는 본 발명이 적용될 수 있는 비디오 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 2를 참조하면, 비디오 디코딩 장치(200)는 엔트로피 디코딩부(210), 레지듀얼 처리부(220), 예측부(230), 가산부(240), 필터부(250) 및 메모리(260)을 포함할 수 있다. 여기서 레지듀얼 처리부(220)는 재정렬부(221), 역양자화부(222), 역변환부(223)을 포함할 수 있다.
비디오 정보를 포함하는 비트스트림이 입력되면, 비디오 디코딩 장치는(200)는 비디오 인코딩 장치에서 비디오 정보가 처리된 프로세스에 대응하여 비디오를 복원할 수 있다.
예컨대, 비디오 디코딩 장치(200)는 비디오 인코딩 장치에서 적용된 처리 유닛을 이용하여 비디오 디코딩을 수행할 수 있다. 따라서 비디오 디코딩의 처리 유닛 블록은 일 예로 코딩 유닛일 수 있고, 다른 예로 코딩 유닛, 예측 유닛 또는 변환 유닛일 수 있다. 코딩 유닛은 최대 코딩 유닛으로부터 쿼드 트리 구조 및/또는 바이너리 트리 구조를 따라서 분할될 수 있다.
예측 유닛 및 변환 유닛이 경우에 따라 더 사용될 수 있으며, 이 경우 예측 블록은 코딩 유닛으로부터 도출 또는 파티셔닝되는 블록으로서, 샘플 예측의 유닛일 수 있다. 이 때, 예측 유닛은 서브 블록으로 나뉠 수도 있다. 변환 유닛은 코딩 유닛으로부터 쿼드 트리 구조를 따라서 분할 될 수 있으며, 변환 계수를 유도하는 유닛 또는 변환 계수로부터 레지듀얼 신호를 유도하는 유닛일 수 있다.
엔트로피 디코딩부(210)는 비트스트림을 파싱하여 비디오 복원 또는 픽처 복원에 필요한 정보를 출력할 수 있다. 예컨대, 엔트로피 디코딩부(210)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 비디오 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다.
보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다.
엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(230)로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수는 재정렬부(221)로 입력될 수 있다.
재정렬부(221)는 양자화되어 있는 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 재정렬부(221)는 인코딩 장치에서 수행된 계수 스캐닝에 대응하여 재정렬을 수행할 수 있다. 여기서 재정렬부(221)는 별도의 구성으로 설명하였으나, 재정렬부(221)는 역양자화부(222)의 일부일 수 있다.
역양자화부(222)는 양자화되어 있는 변환 계수들을 (역)양자화 파라미터를 기반으로 역양자화하여 변환 계수를 출력할 수 있다. 이 때, 양자화 파라미터를 유도하기 위한 정보는 인코딩 장치로부터 시그널링될 수 있다.
역변환부(223)는 변환 계수들을 역변환하여 레지듀얼 샘플들을 유도할 수 있다.
예측부(230)는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부(230)에서 수행되는 예측의 단위는 코딩 블록일 수도 있고, 변환 블록일 수도 있고, 예측 블록일 수도 있다.
예측부(230)는 상기 예측에 관한 정보를 기반으로 인트라 예측을 적용할 것인지 인터 예측을 적용할 것인지를 결정할 수 있다. 이 때, 인트라 예측과 인터 예측 중 어느 것을 적용할 것인지를 결정하는 단위와 예측 샘플을 생성하는 단위는 상이할 수 있다. 아울러, 인터 예측과 인트라 예측에 있어서 예측 샘플을 생성하는 단위 또한 상이할 수 있다. 예를 들어, 인터 예측과 인트라 예측 중 어느 것을 적용할 것인지는 CU 단위로 결정할 수 있다. 또한 예를 들어, 인터 예측에 있어서 PU 단위로 예측 모드를 결정하고 예측 샘플을 생성할 수 있고, 인트라 예측에 있어서 PU 단위로 예측 모드를 결정하고 TU 단위로 예측 샘플을 생성할 수도 있다.
인트라 예측의 경우에, 예측부(230)는 현재 픽처 내의 주변 참조 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(230)는 현재 블록의 주변 참조 샘플을 기반으로 방향성 모드 또는 비방향성 모드를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이 때, 주변 블록의 인트라 예측 모드를 이용하여 현재 블록에 적용할 예측 모드가 결정될 수도 있다.
인터 예측의 경우에, 예측부(230)는 참조 픽처 상에서 움직임 벡터에 의해 참조 픽처 상에서 특정되는 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(230)는 스킵(skip) 모드, 머지(merge) 모드 및 MVP 모드 중 어느 하나를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이때, 비디오 인코딩 장치에서 제공된 현재 블록의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보는 상기 예측에 관한 정보를 기반으로 획득 또는 유도될 수 있다
스킵 모드와 머지 모드의 경우에, 주변 블록의 움직임 정보가 현재 블록의 움직임 정보로 이용될 수 있다. 이 때, 주변 블록은 공간적 주변 블록과 시간적 주변 블록을 포함할 수 있다.
예측부(230)는 가용한 주변 블록의 움직임 정보로 머지 후보 리스트를 구성하고, 머지 인덱스가 머지 후보 리스트 상에서 지시하는 정보를 현재 블록의 움직임 벡터로 사용할 수 있다. 머지 인덱스는 인코딩 장치로부터 시그널링될 수 있다. 움직임 정보는 움직임 벡터와 참조 픽처를 포함할 수 있다. 스킵 모드와 머지 모드에서 시간적 주변 블록의 움직임 정보가 이용되는 경우에, 참조 픽처 리스트 상의 최상위 픽처가 참조 픽처로서 이용될 수 있다.
스킵 모드의 경우, 머지 모드와 달리 예측 샘플과 원본 샘플 사이의 차이(레지듀얼)이 전송되지 않는다.
MVP 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하여 현재 블록의 움직임 벡터가 유도될 수 있다. 이 때, 주변 블록은 공간적 주변 블록과 시간적 주변 블록을 포함할 수 있다.
일 예로, 머지 모드가 적용되는 경우, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 머지 후보 리스트가 생성될 수 있다. 머지 모드에서는 머지 후보 리스트에서 선택된 후보 블록의 움직임 벡터가 현재 블록의 움직임 벡터로 사용된다. 상기 예측에 관한 정보는 상기 머지 후보 리스트에 포함된 후보 블록들 중에서 선택된 최적의 움직임 벡터를 갖는 후보 블록을 지시하는 머지 인덱스를 포함할 수 있다. 이 때, 예측부(230)는 상기 머지 인덱스를 이용하여, 현재 블록의 움직임 벡터를 도출할 수 있다.
다른 예로, MVP(Motion Vector Prediction) 모드가 적용되는 경우, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 움직임 벡터 예측자 후보 리스트가 생성될 수 있다. 즉, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터는 움직임 벡터 후보로 사용될 수 있다. 상기 예측에 관한 정보는 상기 리스트에 포함된 움직임 벡터 후보 중에서 선택된 최적의 움직임 벡터를 지시하는 예측 움직임 벡터 인덱스를 포함할 수 있다. 이 때, 예측부(230)는 상기 움직임 벡터 인덱스를 이용하여, 움직임 벡터 후보 리스트에 포함된 움직임 벡터 후보 중에서, 현재 블록의 예측 움직임 벡터를 선택할 수 있다. 인코딩 장치의 예측부는 현재 블록의 움직임 벡터와 움직임 벡터 예측자 간의 움직임 벡터 차분(MVD)을 구할 수 있고, 이를 인코딩하여 비트스트림 형태로 출력할 수 있다. 즉, MVD는 현재 블록의 움직임 벡터에서 상기 움직임 벡터 예측자를 뺀 값으로 구해질 수 있다. 이 때, 예측부(230)는 상기 예측에 관한 정보에 포함된 움직임 벡터 차분을 획득하고, 상기 움직임 벡터 차분과 상기 움직임 벡터 예측자의 가산을 통해 현재 블록의 상기 움직임 벡터를 도출할 수 있다. 예측부는 또한 참조 픽처를 지시하는 참조 픽처 인덱스 등을 상기 예측에 관한 정보로부터 획득 또는 유도할 수 있다.
가산부(240)는 레지듀얼 샘플과 예측 샘플을 더하여 현재 블록 혹은 현재 픽처를 복원할 수 있다. 가산부(240)는 레지듀얼 샘플과 예측 샘플을 블록 단위로 더하여 현재 픽처를 복원할 수도 있다. 스킵 모드가 적용된 경우에는 레지듀얼이 전송되지 않으므로, 예측 샘플이 복원 샘플이 될 수 있다. 여기서는 가산부(240)를 별도의 구성으로 설명하였으나, 가산부(240)는 예측부(230)의 일부일 수도 있다. 한편, 가산부(240)는 복원부 또는 복원 블록 생성부로 불릴 수도 있다.
필터부(250)는 복원된 픽처에 디블록킹 필터링 샘플 적응적 오프셋, 및/또는 ALF 등을 적용할 수 있다. 이 때, 샘플 적응적 오프셋은 샘플 단위로 적용될 수 있으며, 디블록킹 필터링 이후 적용될 수도 있다. ALF는 디블록킹 필터링 및/또는 샘플 적응적 오프셋 이후 적용될 수도 있다.
메모리(260)는 복원 픽처(디코딩된 픽처) 또는 디코딩에 필요한 정보를 저장할 수 있다. 여기서 복원 픽처는 상기 필터부(250)에 의하여 필터링 절차가 완료된 복원 픽처일 수 있다. 예컨대, 메모리(260)는 인터 예측에 사용되는 픽처들을 저장할 수 있다. 이 때, 인터 예측에 사용되는 픽처들은 참조 픽처 세트 혹은 참조 픽처 리스트에 의해 지정될 수도 있다. 복원된 픽처는 다른 픽처에 대한 참조 픽처로서 이용될 수 있다. 또한, 메모리(260)는 복원된 픽처를 출력 순서에 따라서 출력할 수도 있다.
상술한 내용과 같이 현재 블록에 대하여 인터 예측이 수행되는 경우, 디코딩 장치는 비트스트림을 통하여 상기 현재 블록에 대한 예측 정보를 획득할 수 있고, 상기 예측 정보를 기반으로 상기 현재 블록의 예측을 수행할 수 있다. 상기 예측 정보는 상기 현재 블록의 움직임 정보를 포함할 수 있는바, 상기 움직임 정보는 L0 방향에 대한 L0 움직임 정보 및/또는 L1 방향에 대한 L1 움직임 정보를 나타낼 수 있다. 여기서, 상기 L0 움직임 정보는 상기 현재 블록에 대한 참조 픽처 리스트 L0(List 0, L0)에 포함된 L0 참조 픽처를 가리키는 L0 참조 픽처 인덱스 및 움직임 벡터 L0(Motion Vector L0, MVL0)를 포함할 수 있고, 상기 L1 움직임 정보는 상기 현재 블록에 대한 참조 픽처 리스트 L1(List 1, L1)에 포함된 L1 참조 픽처를 가리키는 L1 참조 픽처 인덱스 및 MVL1를 포함할 수 있다. 여기서, 상기 L0 방향은 과거 방향 또는 순방향이라고 불릴 수도 있다. 또한, 상기 L1 방향은 미래 방향 또는 역방향이라고 불릴 수도 있다. 또한, 상기 참조 픽처 리스트 L0는 상기 현재 픽처보다 출력 순서상 이전 픽처들을 포함할 수 있고, 상기 참조 픽처 리스트 L1는 상기 현재 픽처보다 출력 순서상 이후 픽처들을 포함할 수 있다. 또한, 상기 MVL0는 L0 움직임 벡터라고 불릴 수 있고, 상기 MVL1는 L1 움직임 벡터라고 불릴 수 있다.
또한, 현재 블록에 대한 예측을 수행함에 있어, L0 움직임 정보를 기반으로 인터 예측을 수행하는 경우 LO 예측이라고 불릴 수 있고, L1 움직임 정보를 기반으로 인터 예측을 수행하는 경우 L1 예측이라고 불릴 수 있으며, 상기 L0 움직임 정보 및 L1 움직임 정보를 기반으로 인터 예측을 수행하는 경우 쌍예측(bi-prediction)이라고 불릴 수 있다.
한편, 상술한 내용과 같이 디코딩 장치는 상기 비트스트림을 통하여 획득된 상기 현재 블록의 움직임 정보를 기반으로 상기 현재 블록의 인터 예측을 수행할 수 있지만, 인코딩 장치와 동일한 방법을 통하여 상기 현재 블록의 움직임 정보를 추정하고, 상기 움직임 정보를 기반으로 상기 현재 블록의 디코딩을 수행할 수도 있다. 즉, 상기 현재 블록에 대하여 인터 예측이 수행되는 경우, 디코딩 장치는 상기 현재 블록의 움직임 정보의 전송 없이 상기 현재 블록의 움직임 정보를 추정할 수 있고, 상기 추정된 움직임 정보를 기반으로 상기 현재 블록의 예측 샘플을 생성할 수 있다. 상기 디코딩 장치 측에서 움직임 정보를 추정하여 수행되는 인터 예측 방법은 수신단측 움직임 정보 유도 방법(Decoder side Motion Vector Derivation, DMVD) 라고 나타낼 수 있다. 또한, 상기 DMVD 는 FRUC(Frame Rate Up Conversion)이라고 불릴 수도 있다.
상기 DMVD 는 상기 현재 블록의 예측에 대한 추가적인 정보의 전송없이 인코딩 장치 및 디코딩 장치에서 모두 동일한 과정을 통하여 움직임 정보가 추정될 수 있고, 상기 추정된 움직임 정보를 기반으로 상기 현재 블록의 예측이 수행될 수 있는바, 보다 정확한 움직임 정보가 도출되어 인터 예측의 정확도를 향상시킬 수 있고, 상기 인터 예측에 대한 부가 정보를 전송하기 위한 데이터량을 줄이거나 없앨 수 있어 전반적인 코딩효율을 향상시킬 수 있다.
한편, DMVD 를 통하여 상기 움직임 정보가 도출되는 경우, 디코딩 장치는 상기 현재 블록의 복원 샘플에 대한 정보가 존재하지 않으므로, 인코딩 장치의 움직임 정보 탐색 과정에서 일반적으로 사용되는 비용함수(cost function) 기반 방법과 다른 방법이 상기 움직임 정보의 탐색을 위하여 사용할 수 있다. 구체적으로, 다음의 두 가지 방법, 양방향 정합(Bi-lateral matching) 방법 또는 템플릿 정합(template matching) 방법이 사용될 수 있다.
도 3은 상기 템플릿 정합 방법을 통하여 상기 현재 블록의 움직임 정보를 도출하는 일 예를 나타낸다. 상기 템플릿 정합 방법은 상기 현재 블록의 주변 샘플들의 샘플값들을 기반으로 움직임 정보를 도출하는 방법을 나타낼 수 있다. 상기 현재 블록의 상기 주변 샘플들은 상기 현재 블록에서 참조될 수 있는(causal) 좌측 주변 샘플들 및 상측 주변 샘플들을 포함할 수 있다. 도 3을 참조하면 상기 현재 블록의 임의의 주변 영역이 상기 현재 블록의 템플릿(template)으로 설정될 수 있고, 참조 픽처 상에서 상기 현재 블록의 상기 템플릿과 동일한 형태의 템플릿을 이용하여 상기 현재 블록의 움직임 정보 탐색이 수행될 수 있다. 예를 들어, 상기 현재 블록의 상기 좌측 주변 샘플들 및 상기 상측 주변 샘플들은 상기 현재 블록의 디코딩 시점에 이미 디코딩되어 있을 수 있고, 따라서 디코딩 장치에서의 움직임 추정 과정에 사용될 수 있으므로 상기 좌측 주변 샘플들 및 상기 상측 주변 샘플들은 상기 현재 블록의 템플릿에 포함될 수 있다. 즉, 상기 현재 블록의 템플릿은 상기 좌측 주변 샘플들 및 상기 상측 주변 샘플들을 포함하는 특정 영역일 수 있다. 구체적으로, 예를 들어 상기 참조 픽처 내 블록들의 템플릿들 중 상기 현재 블록의 템플릿과의 차이가 최소인 템플릿(즉, 상기 현재 블록의 템플릿과 가장 유사한 템플릿)이 도출될 수 있고, 상기 도출된 템플릿의 참조 블록을 가리키는 움직임 벡터는 상기 현재 블록의 움직임 벡터로 도출될 수 있다. 여기서, 상기 차이는 코스트라고 불릴 수 있다. 상기 코스트는 상기 현재 블록의 템플릿과 상기 참조 픽처 내 블록의 대응하는 샘플들간 차이의 절대값의 합으로 도출될 수 있다. 또한, 상기 현재 블록의 상기 MV를 도출하기 위한 비용함수는 다음과 같은 수학식으로 나타낼 수 있다. 즉, 상기 코스트는 다음과 같은 수학식을 기반으로 도출될 수 있다.
Figure PCTKR2018007396-appb-M000001
여기서, i, j는 블록 내 샘플의 위치 (i, j)를 나타내고, Costdistortion은 상기 코스트, Tempref는 상기 참조 픽처 내 참조 블록의 템플릿의 샘플값, Tempcur는 상기 현재 블록의 템플릿의 샘플값을 나타낸다. 상기 참조 블록의 템플릿 및 상기 현재 블록의 템플릿 사이의 대응하는 샘플들 간의 차이를 누적할 수 있고, 상기 차이의 누적은 상기 현재 블록의 상기 움직임 벡터를 도출하기 위한 비용함수로 사용될 수 있다.
도 4는 상기 양방향 정합 방법을 통하여 상기 현재 블록의 움직임 정보를 도출하는 일 예를 나타낸다. 한편, 상기 양방향 정합 방법은 상기 현재 블록에 쌍예측이 수행되는 경우에 적용될 수 있다.
예를 들어, 상기 현재 블록의 단방향 움직임 정보(L0 움직임 정보 또는 L1 움직임 정보)가 존재하는 경우, 상기 단방향 움직임 정보가 가리키는 참조 블록이 도출될 수 있고, 상기 단방향 움직임 정보와 다른 방향에 대한 참조 픽처 내에서 거울 대칭(mirror symmetric)한 성질을 만족하는 대응 블록, 즉, 참조 블록에 대하여 거울에 비친 형태와 같이 대칭하는 대응 블록이 선택될 수 있고, 상기 대응 블록을 가리키는 상기 단방향 움직임 정보에 대칭하는 움직임 정보가 현재 블록의 움직임 정보로 도출될 수 있다. 여기서, 상기 다른 방향에 대한 참조 픽처 내 상기 단방향 움직임 정보가 가리키는 참조 블록과 차이가 가장 작은 블록이 상기 대응 블록으로 선택될 수 있다.
구체적으로, 예를 들어, 상기 현재 블록에 대한 L0 움직임 정보가 존재할 수 있고, 상기 L0 움직임 정보를 기반으로 L0 참조 블록이 도출될 수 있다. 이 경우, 디코딩 장치는 L1 방향의 참조 블록들 중 상기 L0 움직임 정보의 움직임 벡터 L0(Motion Vector L0, MVL0)가 가리키는 상기 L0 참조 블록과의 차이가 최소인 참조 블록을 상기 현재 블록의 L1 참조 블록으로 도출할 수 있다. 여기서, 상기 차이는 코스트(cost)라고 불릴 수 있다. 상기 코스트는 상기 L0 참조 블록과 상기 L1 참조 블록의 대응하는 샘플들간 차이의 절대값의 합으로 도출될 수 있다. 디코딩 장치는 상기 L1 참조 블록을 가리키는 움직임 벡터를 상기 현재 블록의 움직임 벡터 L1(Motion Vector L1, MVL1)으로 도출할 수 있다. 즉, 디코딩 장치는 상기 L1 참조 블록을 가리키는 MVL1 및 상기 L1 참조 블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 포함한 L1 움직임 정보를 도출할 수 있다. 한편, 이 경우, 상기 현재 블록에 대한 L0 움직임 정보는 상기 현재 블록의 주변 블록들 중 하나의 움직임 정보를 기반으로 도출될 수 있다. 예를 들어 상기 현재 블록의 가용한 주변 블록들의 위치에 따른 우선순위를 기반으로 가장 우선순위가 높은 주변 블록의 움직임 정보가 상기 현재 블록의 상기 L0 움직임 정보로 사용될 수 있다. 또는 상기 현재 블록의 주변 블록들 중에서 미리 정의된 위치에 있는 주변 블록의 움직임 정보가 상기 L0 움직임 정보로 사용될 수 있다.
또는, 다른 예로, 상기 현재 블록에 대한 L1 움직임 정보가 존재할 수 있고, 상기 L1 움직임 정보를 기반으로 L1 참조 블록이 도출될 수 있다. 이 경우, 디코딩 장치는 L0 방향의 참조 블록들 중 상기 L1 움직임 정보의 움직임 벡터 L1(Motion Vector L1, MVL1)가 가리키는 상기 L1 참조 블록과의 차이가 최소인 참조 블록을 상기 현재 블록의 L0 참조 블록으로 도출할 수 있다. 여기서, 상기 차이는 코스트(cost)라고 불릴 수 있다. 상기 코스트는 상기 L1 참조 블록과 상기 L0 참조 블록의 대응하는 샘플들간 차이의 절대값의 합으로 도출될 수 있다. 상기 코스트는 다음의 수학식을 기반으로 도출될 수 있다.
Figure PCTKR2018007396-appb-M000002
여기서, i, j는 블록 내 샘플의 위치 (i, j)를 나타내고, Costdistortion은 상기 코스트, BlockL0는 상기 L0 방향의 참조 블록의 샘플값, BlockL1는 상기 L1 방향의 참조 블록의 샘플값을 나타낸다. 상기 L0 방향의 참조 블록 및 상기 L1 방향의 참조 블록 사이의 대응하는 샘플들 간의 차이를 누적할 수 있고, 상기 차이의 누적은 상기 현재 블록의 상기 움직임 벡터를 도출하기 위한 비용함수로 사용될 수 있다.
디코딩 장치는 상기 L0 참조 블록을 가리키는 움직임 벡터를 상기 현재 블록의 MVL0로 도출할 수 있다. 즉, 디코딩 장치는 상기 L0 참조 블록을 가리키는 MVL0 및 상기 L0 참조 블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 포함한 L0 움직임 정보를 도출할 수 있다. 한편, 이 경우, 상기 현재 블록에 대한 L1 움직임 정보는 상기 현재 블록의 주변 블록들 중 하나의 움직임 정보를 기반으로 도출될 수 있다. 예를 들어 상기 현재 블록의 가용한 주변 블록들의 위치에 따른 우선순위를 기반으로 가장 우선순위가 높은 주변 블록의 움직임 정보가 상기 현재 블록의 상기 L1 움직임 정보로 사용될 수 있다. 또는 상기 현재 블록의 주변 블록들 중에서 미리 정의된 위치에 있는 주변 블록의 움직임 정보가 상기 L1 움직임 정보로 사용될 수 있다.
상기 DMVD 를 기반으로 상기 현재 블록의 인터 예측이 수행되는 경우, 다음과 같은 단계의 순서로 인터 예측이 수행될 수 있다.
- 블록 단위 움직임 정보 후보 리스트 생성
- 블록 단위 움직임 정보 후보 리스트 내 움직임 정보 후보들 중 블록 단위 움직임 정보 선택
- 선택된 블록 단위 움직임 정보의 갱신(refinement)
- 서브 블록(sub block) 단위 움직임 정보 후보 리스트 생성
- 서브 블록 단위 움직임 정보 후보 리스트 내 움직임 정보 후보들 중 서브 블록 단위 움직임 정보 선택
- 선택된 서브 블록 단위 움직임 정보의 갱신
상술한 내용과 같이 첫째로, 상기 DMVD 를 기반으로 상기 현재 블록의 인터 예측이 수행되는 경우, 블록 단위 움직임 정보 후보 리스트가 생성될 수 있다. 구체적으로, 상기 블록 단위 움직임 정보 후보 리스트는 기존의 머지 후보 리스트(merge candidate list) 등을 기반으로 비용함수 계산 방법에 따라 생성될 수 있다. 즉, 상기 현재 블록의 복원된 공간적 주변 블록의 움직임 정보 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 정보를 기반으로 상기 현재 블록에 대한 움직임 정보 후보 리스트가 생성될 수 있다.
다음으로, 상기 블록 단위 움직임 정보 후보 리스트의 움직임 정보 후보들 중 상기 블록 단위 움직임 정보 후보 리스트에 대한 블록의 움직임 정보가 선택될 수 있다. 구체적으로, 상기 블록 단위 움직임 정보 후보 리스트의 움직임 정보 후보들 중 가장 작은 비용함수 값(즉, 코스트)을 가지는 움직임 정보 후보가 상기 블록 단위 움직임 정보 후보 리스트에 대한 블록의 움직임 정보로 선택될 수 있다. 예를 들어, 상기 움직임 정보 후보들이 가리키는 참조 블록들의 템플릿들 중 상기 현재 블록의 템플릿과의 코스트가 가장 작은 참조 블록에 대한 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다. 또는, 상기 움직임 정보 후보들 중 L0 참조 블록 및 L1 참조 블록간의 코스트가 가장 작은 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다.
다음으로, 상기 선택된 움직임 정보가 갱신(refinement)될 수 있다. 움직임 정보 갱신(refinement)은 움직임 정보의 정확도를 높이는 과정으로, 인코딩/디코딩 장치는 상기 선택된 움직임 정보가 가리키는 위치에 기반을 두고 그 주변을 탐색하여 더 낮은 비용 함수 값을 가지는 움직임 정보를 수정된 움직임 정보로 도출할 수 있고, 상기 수정된 움직임 정보를 현재 블록의 움직임 정보로 대체할 수 있다. 또한, 움직임 정보 갱신을 위한 탐색은 반복적으로 수행될 수 있다. 구체적으로, 탐색 횟수(search round)가 0으로 초기화될 수 있고, 십자형, 다이아몬드형, 육각형, 및 N각형 등의 탐색 패턴들 중 선택된 탐색 패턴에 따라 주변 탐색점들이 정의될 수 있다. 상기 탐색 패턴들 및 상기 탐색 패턴들에 따른 주변 탐색점들에 대한 구체적인 설명은 후술한다.
상기 주변 탐색점들이 정의된 경우, 상기 선택된 움직임 정보가 가리키는 위치의 코스트 및 상기 주변 탐색점들의 코스트들이 계산될 수 있다. 상기 선택된 움직임 정보가 가리키는 위치는 탐색 기준점이라고 나타낼 수 있다.
예를 들어, 상기 탐색 기준점의 코스트는 상기 탐색 기준점에 대한 참조 블록의 템플릿과 상기 현재 블록의 템플릿과의 코스트를 나타낼 수 있고, 상기 주변 탐색점들의 코스트들은 주변 탐색점들에 대한 참조 블록들의 템플릿들과 상기 현재 블록의 템플릿과의 코스트들을 나타낼 수 있다. 여기서, 주변 탐색점에 대한 참조 블록은 상기 주변 탐색점을 좌상단 샘플로 포함하는 참조 블록일 수 있다.
또는, 상기 탐색 기준점의 코스트는 상기 탐색 기준점에 대한 참조 블록과 반대 방향의 참조 블록과의 코스트를 나타낼 수 있고, 상기 주변 탐색점들의 코스트들은 주변 탐색점들에 대한 참조 블록들과 상기 반대 방향의 참조 블록과의 코스트들을 나타낼 수 있다.
상기 탐색 기준점의 코스트와 상기 주변 탐색점들의 코스트가 도출된 경우, 상기 주변 탐색점들의 코스트들과 상기 탐색 기준점의 코스트와의 비교를 통하여 수정된 탐색 기준점이 도출될 수 있다. 상기 주변 탐색점들의 코스트들 중 특정 주변 탐색점의 코스트가 상기 주변 탐색점들의 코스트들 및 상기 탐색 기준점의 코스트 중 가장 작은 경우, 상기 특정 주변 탐색점의 코스트가 상기 수정된 탐색 기준점으로 도출될 수 있다. 한편, 상기 기존의 상기 탐색 기준점의 코스트가 상기 주변 탐색점들의 코스트들 및 상기 탐색 기준점의 코스트 중 가장 작은 경우, 수정된 탐색 기준점은 도출되지 않을 수 있다.
상기 수정된 탐색 기준점이 도출된 경우, 상기 수정된 탐색 기준점에 대한 주변 탐색점들이 정의될 수 있고, 상기 현재 블록에 대한 탐색 과정의 탐색 횟수가 1 증가할 수 있다. 이 경우, 상기 현재 블록에 대한 탐색 횟수가 최대 탐색 횟수와 동일하면 움직임 정보를 갱신하기 위한 탐색 과정은 종료될 수 있다. 또한, 상기 현재 블록에 대한 탐색 횟수가 상기 최대 탐색 횟수와 동일하지 않으면 상기 수정된 탐색 기준점을 기준으로 탐색 과정이 수행될 수 있다. 즉, 상기 수정된 탐색 기준점에 대한 주변 탐색점들이 정의될 수 있고, 상기 주변 탐색점들의 코스트들이 계산될 수 있고, 상기 수정된 탐색 기준점에 대한 코스트 및 상기 주변 탐색점들의 코스트들을 비교하는 과정이 수행될 수 있다. 한편, 탐색 기준점을 기준으로 수행되는 탐색 과정은 탐색 라운드(search round)라고 나타낼 수도 있다.
도 5는 DMVD 의 움직임 정보 갱신 과정에서 상기 현재 블록의 움직임 정보를 탐색하는 일 예를 나타낸다. 도 5를 참조하면 상기 현재 블록의 움직임 정보를 갱신하기 위한 탐색 과정의 탐색 범위는 8개의 샘플들로 도출될 수 있다. 즉, 도 5를 참조하면 상기 현재 블록의 탐색 패턴(search pattern)은 십자형 및 다이아몬드형이 혼합된 탐색 패턴으로 도출될 수 있고, 상기 현재 블록의 탐색 패턴에 따른 주변 탐색점들은 8개의 주변 샘플들로 도출될 수 있다. 또한, 탐색 기준점에 대한 주변 탐색점들 중 상기 탐색 기준점 이전의 탐색 기준점에 대한 주변 탐색점들과 중복되는 주변 탐색점들은 이미 이전 탐색 라운드에서 탐색된바, 상기 탐색 기준점에 대한 주변 탐색점들에서 제외될 수 있다. 이에, 도 5를 참조하면 상기 현재 블록의 움직임 정보가 가리키는 위치를 탐색 기준점으로 하는 첫번째 탐색 라운드의 탐색 패턴에 따른 주변 탐색점들은 8개의 주변 샘플들로 도출될 수 있다. 상기 첫번째 탐색 라운드 이후의 탐색 라운드에서는 탐색 방향에 따라서 주변 탐색점들의 개수가 5개 또는 3개로 선택될 수 있고, 총 16번의 탐색 라운드가 수행될 수 있다. 상기 탐색 방향은 다음 탐색 횟수의 탐색 기준점의 위치를 기반으로 결정될 수 있다.
예를 들어, 도 5를 참조하면 상기 첫번째 탐색 라운드에서 우측 주변 탐색점이 두번째 탐색 라운드의 탐색 기준점(즉, 수정된 탐색 기준점)으로 도출될 수 있다. 이 경우, 상기 두번째 탐색 라운드의 탐색 기준점의 8개의 주변 샘플들 중 3개의 주변 샘플들은 상기 첫번째 탐색 라운드의 탐색 범위에 포함하므로, 즉, 상기 첫번째 탐색 라운드의 탐색 기준점 및 주변 탐색점들과 중복되므로, 상기 3개의 주변 샘플들을 제외한 5개의 주변 샘플들이 상기 두번째 탐색 라운드의 주변 탐색점들로 도출될 수 있다.
또한, 도 5를 참조하면 다섯번째 탐색 라운드에서 우상측 주변 탐색점이 여섯번째 탐색 라운드의 탐색 기준점(즉, 수정된 탐색 기준점)으로 도출될 수 있다. 이 경우, 상기 여섯번째 탐색 라운드의 탐색 기준점의 8개의 주변 샘플들 중 5개의 주변 샘플들은 상기 다섯번째 탐색 라운드의 탐색 범위에 포함하므로, 즉, 상기 다섯번째 탐색 라운드의 탐색 기준점 및 주변 탐색점들과 중복되므로, 상기 5개의 주변 샘플들을 제외한 3개의 주변 샘플들이 상기 여섯번째 탐색 라운드의 주변 탐색점들로 도출될 수 있다.
한편, 블록 단위 움직임 정보의 갱신을 위한 탐색 과정에서 주변 탐색점의 코스트는 상술한 템플릿 정합 방법이나 양방향 정합 방법에 의한 디스토션(distortion) 값(즉, 비용함수 값)뿐만 아니라, 탐색 기준점을 가리키는 움직임 벡터와 상기 주변 탐색점을 가리키는 움직임 벡터의 차이인 MV(motion vector) 코스트를 포함할 수 있다. 즉, 상기 주변 탐색점의 MV 코스트에 대한 비교도 수행될 수 있다. 예를 들어, 상기 탐색 기준점에 대한 주변 탐색점들 중 MV 코스트가 특정값보다 큰 주변 탐색점은 다음 탐색 라운드의 탐색 기준점(즉, 수정된 탐색 기준점)으로 도출되지 않을 수 있다. 이를 통하여, 움직임 정보 갱신 과정이 과도하게 이루어지는 것을 막을 수 있다. 한편, 상술한 움직임 정보 갱신 방법은 한 번에 끝나지 않고 복수의 탐색 패턴에 대한 탐색 과정들이 각각 연속적으로(cascade form) 수행될 수도 있다. 예를 들어, 탐색 패턴이 다이아몬드형인 탐색 과정 - 탐색 패턴이 십자형인 탐색 과정 - 탐색 패턴이 십자형인 탐색 과정을 포함하는 3단계의 움직임 정보 갱신 과정이 수행될 수 있다.
상술한 과정을 통하여 블록 단위 움직임 정보가 갱신된 경우, 상기 블록 단위 움직임 정보가 선택되는 방법과 유사하게 서브 블록 단위 움직임 정보 후보 리스트를 생성될 수 있고, 상기 서브 블록 단위 움직임 정보 후보 리스트의 움직임 정보 후보들 중 상기 서브 블록 단위 움직임 정보 후보 리스트에 대한 대상 서브 블록의 움직임 정보가 선택될 수 있다. 상기 서브 블록 단위 움직임 정보 후보 리스트는 갱신된 블록 단위 움직임 정보를 움직임 정보 후보로 포함할 수 있다. 또한, 상술한 블록 단위 움직임 정보에 대한 갱신 과정과 유사하게 상기 선택된 서브 블록 단위 움직임 정보에 대한 움직임 정보 갱신 과정이 수행될 수 있다.
구체적으로, 인코딩/디코딩 장치는 현재 블록의 대상 서브 블록의 선택된 움직임 정보가 가리키는 위치를 탐색 기준점으로 도출하고, 상기 탐색 기준점을 기준으로 그 주변을 탐색하여 더 낮은 코스트를 가지는 움직임 정보를 수정된 움직임 정보로 도출할 수 있고, 상기 수정된 움직임 정보를 현재 블록의 움직임 정보로 대체할 수 있다. 또한, 움직임 정보 갱신을 위한 탐색은 반복적으로 수행될 수 있다. 구체적으로, 탐색 횟수(search round)가 0으로 초기화될 수 있고, 십자형, 다이아몬드형, 육각형, 및 N각형 등의 탐색 패턴들 중 선택된 탐색 패턴에 따라 주변 탐색점들이 정의될 수 있다. 인코딩/디코딩 장치는 상기 탐색 기준점 및 상기 주변 탐색점들의 코스트들을 계산할 수 있고, 상기 코스트들을 비교하여 다음 탐색 라운드의 탐색 기준점을 도출할 수 있다. 이 경우, 마지막으로, 도출된 탐색 기준점을 가리키는 움직임 정보가 상기 수정된 움직임 정보로 도출될 수 있고, 상기 수정된 움직임 정보를 현재 블록의 움직임 정보로 대체할 수 있다. 한편, 상기 탐색 패턴들 및 상기 탐색 패턴들에 따른 주변 탐색점들에 대한 구체적인 설명은 후술한다.
한편, 상기 탐색 기준점 및 상기 주변 탐색점들의 코스트들은 템플릿 정합 방법 또는 양방향 정합 방법을 기반으로 계산될 수 있다
예를 들어, 상기 템플릿 정합 방법을 통하여 상기 탐색 기준점 및 상기 주변 탐색점들의 코스트들이 계산되는 경우, 상기 탐색 기준점의 코스트는 상기 탐색 기준점에 대한 참조 블록의 템플릿과 상기 대상 서브 블록의 템플릿과의 코스트를 나타낼 수 있고, 상기 주변 탐색점들의 코스트들은 주변 탐색점들에 대한 참조 블록들의 템플릿들과 상기 현재 블록의 템플릿과의 코스트들을 나타낼 수 있다. 여기서, 주변 탐색점에 대한 참조 블록은 상기 주변 탐색점을 좌상단 샘플로 포함하는 참조 블록일 수 있다. 한편, 상기 대상 서브 블록이 상기 현재 블록의 우하단 서브 블록인 경우, 상기 우하단 서브 블록에 주변 블록들은 상기 우하단 서브 블록의 디코딩 시점에 디코딩되지 않은바, 상기 대상 서브 블록의 템플릿에 포함된 복원 샘플들이 존재하지 않을 수 있다. 따라서, 상기 대상 서브 블록이 상기 현재 블록의 우하단 서브 블록인 경우, 서브 블록 단위 움직임 정보의 갱신 과정이 수행되지 않고, 상기 블록 단위의 갱신된 움직임 정보, 즉, 상기 현재 블록의 갱신된 움직임 정보가 상기 대상 서브 블록의 움직임 정보로 사용될 수 있다. 따라서, 상기 현재 블록의 갱신된 움직임 정보를 기반으로 상기 대상 서브 블록의 예측이 수행될 수 있다.
또는, 상기 양방향 정합 방법을 통하여 상기 탐색 기준점 및 상기 주변 탐색점들의 코스트들이 계산되는 경우, 상기 탐색 기준점의 코스트는 상기 탐색 기준점에 대한 참조 블록과 반대 방향의 참조 블록과의 코스트를 나타낼 수 있고, 상기 주변 탐색점들의 코스트들은 주변 탐색점들에 대한 참조 블록들과 상기 반대 방향의 참조 블록과의 코스트들을 나타낼 수 있다.
상기 탐색 기준점의 코스트와 상기 주변 탐색점들의 코스트가 도출된 경우, 상기 주변 탐색점들의 코스트들과 상기 탐색 기준점의 코스트와의 비교를 통하여 수정된 탐색 기준점이 도출될 수 있다. 상기 주변 탐색점들의 코스트들 중 특정 주변 탐색점의 코스트가 상기 주변 탐색점들의 코스트들 및 상기 탐색 기준점의 코스트 중 가장 작은 경우, 상기 특정 주변 탐색점의 코스트가 상기 수정된 탐색 기준점으로 도출될 수 있다. 한편, 상기 기존의 상기 탐색 기준점의 코스트가 상기 주변 탐색점들의 코스트들 및 상기 탐색 기준점의 코스트 중 가장 작은 경우, 수정된 탐색 기준점은 도출되지 않을 수 있다.
상기 수정된 탐색 기준점이 도출된 경우, 상기 수정된 탐색 기준점에 대한 주변 탐색점들이 정의될 수 있고, 상기 대상 서브 블록에 대한 탐색 과정의 탐색 횟수가 1 증가할 수 있다. 이 경우, 상기 대상 서브 블록에 대한 탐색 횟수가 최대 탐색 횟수와 동일하면 움직임 정보를 갱신하기 위한 탐색 과정은 종료될 수 있다. 또한, 상기 대상 서브 블록에 대한 탐색 횟수가 상기 최대 탐색 횟수와 동일하지 않으면 상기 수정된 탐색 기준점을 기준으로 탐색 과정이 수행될 수 있다. 즉, 상기 수정된 탐색 기준점에 대한 주변 탐색점들이 정의될 수 있고, 상기 주변 탐색점들의 코스트들이 계산될 수 있고, 상기 수정된 탐색 기준점에 대한 코스트 및 상기 주변 탐색점들의 코스트들을 비교하는 과정이 수행될 수 있다.
또한, 상기 서브 블록 단위 움직임 정보 갱신 과정에서도 주변 탐색점의 코스트는 상술한 템플릿 정합 방법이나 양방향 정합 방법에 의한 디스토션(distortion) 값(즉, 비용함수 값)뿐만 아니라, 탐색 기준점을 가리키는 움직임 벡터와 상기 주변 탐색점을 가리키는 움직임 벡터의 차이인 MV(motion vector) 코스트를 포함할 수 있다. 즉, 상기 주변 탐색점의 MV 코스트에 대한 비교도 수행될 수 있다. 예를 들어, 상기 탐색 기준점에 대한 주변 탐색점들 중 MV 코스트가 특정값보다 큰 주변 탐색점은 다음 탐색 라운드의 탐색 기준점(즉, 수정된 탐색 기준점)으로 도출되지 않을 수 있다. 이를 통하여, 움직임 정보 갱신 과정이 과도하게 이루어지는 것을 막을 수 있다. 한편, 상기 서브 블록 단위 움직임 정보 갱신 과정도 한 번에 끝나지 않고 복수의 탐색 패턴에 대한 탐색 과정들이 각각 연속적으로(cascade form) 수행될 수 있다. 예를 들어, 탐색 패턴이 다이아몬드형인 탐색 과정 - 탐색 패턴이 십자형인 탐색 과정 - 탐색 패턴이 십자형인 탐색 과정을 포함하는 3단계의 서브 블록 단위 움직임 정보 갱신 과정이 수행될 수 있다.
한편, 본 발명은 상술한 움직임 정보 갱신 과정에서 사용될 수 있는 다양한 탐색 패턴들을 제안한다. 후술하는 내용과 같은 탐색 패턴들을 기반으로 상술한 움직임 정보 갱신 과정이 수행될 수 있다.
도 6은 움직임 정보 갱신 과정에서 사용될 수 있는 탐색 패턴들을 예시적으로 나타낸다. 도 6을 참조하면 상기 탐색 패턴들은 풀 서치(full search) 탐색 패턴, 십자형 탐색 패턴, 다이아몬드 탐색 패턴, 육각형 탐색 패턴 및 혼합형 탐색 패턴을 포함할 수 있다. 또한, 상기 탐색 패턴들은 N각형 탐색 패턴, 나선형(spiral) 탐색 패턴을 포함할 수 있다.
도 6의 (a)는 상기 풀 서치(full search) 탐색 패턴에 따른 주변 탐색점들을 나타낼 수 있다. 상기 풀 서치 탐색 패턴은 탐색 기준점을 중심으로 탐색 범위 내 모든 위치를 상기 주변 탐색점들로 도출하는 탐색 패턴을 나타낼 수 있다. 이 경우, 인코딩/디코딩 장치는 상기 현재 블록의 움직임 정보 후보 리스트 내 후보들 중 선택된 상기 현재 블록의 움직임 정보가 가리키는 위치, 즉, 탐색 기준점을 중심으로 탐색 범위 내의 모든 위치들의 비용함수를 계산할 수 있고, 가장 낮은 비용함수를 갖는 위치를 가리키는 움직임 정보로 상기 현재 블록의 움직임 정보를 갱신할 수 있다. 여기서, 상기 탐색 범위는 상기 탐색 기준점을 중심으로 하고, 높이 및 폭이 2x 인 사각형 형태의 영역으로 도출될 수 있고, 상기 x 는 상기 현재 블록의 움직임 벡터 오프셋의 최대값을 나타낼 수 있다.
도 6의 (b)는 상기 십자형 탐색 패턴에 따른 주변 탐색점들을 나타낼 수 있다. 상기 십자형 탐색 패턴은 탐색 기준점을 중심으로 상하좌우 4개의 주변 샘플들을 상기 주변 탐색점들로 도출하는 탐색 패턴을 나타낼 수 있다. 상기 십자형 탐색 패턴에 따른 움직임 갱신 과정이 수행되는 경우, 인코딩/디코딩 장치는 상기 탐색 기준점을 중심으로 상하좌우 4개의 주변 샘플들을 상기 주변 탐색점들로 도출하여 상기 주변 탐색점들의 비용함수를 계산할 수 있고, 가장 낮은 비용함수를 갖는 위치를 가리키는 움직임 정보로 상기 현재 블록의 움직임 정보를 갱신할 수 있다. 예를 들어, 상기 탐색 기준점의 좌표가 (a, b) 인 경우, 상측 주변 탐색점은 (a, b+y) 좌표의 주변 샘플, 하측 주변 탐색점은 (a, b-y) 좌표의 주변 샘플, 좌측 주변 탐색점은 (a-y, b) 좌표의 주변 샘플, 우측 주변 탐색점은 (a+y, b) 좌표의 주변 샘플로 도출될 수 있다. 여기서, 상기 x 는 상기 현재 블록의 움직임 벡터 오프셋의 최대값을 나타낼 수 있다.
도 6의 (c)는 상기 다이아몬드형 탐색 패턴에 따른 주변 탐색점들을 나타낼 수 있다. 상기 다이아몬드형 탐색 패턴은 탐색 기준점을 중심으로 대각선 방향에 위치하는 4개의 주변 샘플들을 상기 주변 탐색점들로 도출하는 탐색 패턴을 나타낼 수 있다. 즉, 상기 십자형 탐색 패턴에 따른 주변 탐색점들의 위치를 45도만큼 회전하면 상기 다이아몬드형 탐색 패턴의 주변 탐색점들의 위치와 동일할 수 있다. 상기 다이아몬드형 탐색 패턴에 따른 움직임 갱신 과정이 수행되는 경우, 인코딩/디코딩 장치는 상기 탐색 기준점을 중심으로 대각선 방향의 4개의 주변 샘플들을 상기 주변 탐색점들로 도출하여 상기 주변 탐색점들의 비용함수를 계산할 수 있고, 가장 낮은 비용함수를 갖는 위치를 가리키는 움직임 정보로 상기 현재 블록의 움직임 정보를 갱신할 수 있다. 예를 들어, 상기 탐색 기준점의 좌표가 (a, b) 인 경우, 우상측 주변 탐색점은 (a+y/2, b+y/2) 좌표의 주변 샘플, 우하측 주변 탐색점은 (a+y/2, b-y/2) 좌표의 주변 샘플, 좌하측 주변 탐색점은 (a-y/2, b-y/2) 좌표의 주변 샘플, 좌상측 주변 탐색점은 (a-y/2, b+y/2) 좌표의 주변 샘플로 도출될 수 있다.
도 6의 (d)는 상기 육각형 탐색 패턴에 따른 주변 탐색점들을 나타낼 수 있다. 상기 육각형 탐색 패턴은 탐색 기준점을 중심으로 6개의 주변 샘플들을 상기 주변 탐색점들로 도출하는 탐색 패턴을 나타낼 수 있다. 즉, 상기 주변 탐색점들은 상기 탐색 기준점을 중심으로 하는 육각형의 꼭지점들에 위치할 수 있다. 상기 육각형 탐색 패턴에 따른 움직임 갱신 과정이 수행되는 경우, 인코딩/디코딩 장치는 상기 탐색 기준점을 중심으로 6개의 주변 샘플들을 상기 주변 탐색점들로 도출하여 상기 주변 탐색점들의 비용함수를 계산할 수 있고, 가장 낮은 비용함수를 갖는 위치를 가리키는 움직임 정보로 상기 현재 블록의 움직임 정보를 갱신할 수 있다. 예를 들어, 상기 탐색 기준점의 좌표가 (a, b) 인 경우, 우상측 주변 탐색점은 (a+y/2, b+y/2) 좌표의 주변 샘플, 우측 주변 탐색점은 (a+y, b) 좌표의 주변 샘플, 우하측 주변 탐색점은 (a+y/2, b-y/2) 좌표의 주변 샘플, 좌하측 주변 탐색점은 (a-y/2, b-y/2) 좌표의 주변 샘플, 좌측 주변 탐색점은 (a-y, b) 좌표의 주변 샘플, 좌상측 주변 탐색점은 (a-y/2, b+y/2) 좌표의 주변 샘플로 도출될 수 있다.
도 6의 (e) 및 (f)는 상기 혼합형 탐색 패턴들에 따른 주변 탐색점들을 나타낼 수 있다. 상기 혼합형 탐색 패턴은 2개 혹은 그 이상의 탐색 패턴들을 조합한 탐색 패턴을 나타낼 수 있다. 일 예로, 상기 혼합형 탐색 패턴은 하나의 탐색 라운드에서 2개 이상의 탐색 패턴들에 따른 주변 탐색점들을 도출하는 탐색 패턴일 수 있다. 도 6의 (e)는 상기 십자형 탐색 패턴 및 다이아몬드형 탐색 패턴을 조합한 혼합형 탐색 패턴에 따른 주변 탐색점들을 나타낼 수 있다. 상기 탐색 기준점의 좌표가 (a, b) 인 경우, 상측 주변 탐색점은 (a, b+y) 좌표의 주변 샘플, 우상측 주변 탐색점은 (a+y/2, b+y/2) 좌표의 주변 샘플, 우측 주변 탐색점은 (a+y, b) 좌표의 주변 샘플, 우하측 주변 탐색점은 (a+y/2, b-y/2) 좌표의 주변 샘플, 하측 주변 탐색점은 (a, b-y) 좌표의 주변 샘플, 좌하측 주변 탐색점은 (a-y/2, b-y/2) 좌표의 주변 샘플, 좌측 주변 탐색점은 (a-y, b) 좌표의 주변 샘플, 좌상측 주변 탐색점은 (a-y/2, b+y/2) 좌표의 주변 샘플로 도출될 수 있다. 또한, 도 6의 (f)는 2개의 십자형 탐색 패턴들 및 다이아몬드형 탐색 패턴을 조합한 혼합형 탐색 패턴에 따른 주변 탐색점들을 나타낼 수 있다. 상기 탐색 기준점의 좌표가 (a, b) 인 경우, 제1 상측 주변 탐색점은 (a, b+y) 좌표의 주변 샘플, 제2 상측 주변 탐색점은 (a, b+z) 좌표의 주변 샘플, 우상측 주변 탐색점은 (a+y/2, b+y/2) 좌표의 주변 샘플, 제1 우측 주변 탐색점은 (a+y, b) 좌표의 주변 샘플, 제2 우측 주변 탐색점은 (a+z, b) 좌표의 주변 샘플, 우하측 주변 탐색점은 (a+y/2, b-y/2) 좌표의 주변 샘플, 제1 하측 주변 탐색점은 (a, b-y) 좌표의 주변 샘플, 제2 하측 주변 탐색점은 (a, b-z) 좌표의 주변 샘플, 좌하측 주변 탐색점은 (a-y/2, b-y/2) 좌표의 주변 샘플, 제1 좌측 주변 탐색점은 (a-y, b) 좌표의 주변 샘플, 제2 좌측 주변 탐색점은 (a-z, b) 좌표의 주변 샘플, 좌상측 주변 탐색점은 (a-y/2, b+y/2) 좌표의 주변 샘플로 도출될 수 있다.
또한, 다른 예로, 상기 혼합형 탐색 패턴은 탐색 라운드마다 다른 탐색 패턴에 따른 주변 탐색점들을 도출하는 탐색 패턴일 수 있다. 예를 들어, 상기 혼합형 탐색 패턴은 2n번째 탐색 라운드에서는 상기 십자형 탐색 패턴에 따른 주변 탐색점들이 도출되고, 2n+1 번째 탐색 라운드에서는 상기 다이아몬드 탐색 패턴에 따른 주변 탐색점들이 도출되는 탐색 패턴일 수 있다.
또한, 상기 혼합형 탐색 패턴은 탐색 라운드마다 주변 탐색점들의 위치가 다양하게 조절되는 탐색 패턴을 나타낼 수 있다. 예를 들어, 첫번째 탐색 라운드에서 탐색 기준점을 중심으로 K-포인트(K-point, K=2,3,4,5...) 단위의 정수 샘플인 주변 샘플들을 상기 주변 탐색점들로 도출할 수 있고, 두번째 라운드에서 상기 두번째 라운드의 탐색 기준점을 중심으로 K/2 단위의 샘플인 주변 샘플들을 주변 탐색점들로 도출할 수 있고, 세번째 라운드에서 상기 세번째 라운드의 탐색 기준점을 중심으로 K/4 단위의 샘플인 주변 샘플들을 상기 주변 탐색점들로 도출할 수 있다. 상기 K가 1인 경우, 첫번째 탐색 라운드에서 탐색 기준점을 중심으로 정수 샘플인 주변 샘플들을 상기 주변 탐색점들로 도출할 수 있고, 두번째 라운드에서 상기 두번째 라운드의 탐색 기준점을 중심으로 1/2 분수 샘플 단위의 주변 샘플들을 주변 탐색점들로 도출할 수 있고, 세번째 라운드에서 상기 세번째 라운드의 탐색 기준점을 중심으로 1/4 분수 샘플 단위의 주변 샘플들을 상기 주변 탐색점들로 도출할 수 있다.
한편, 탐색 라운드의 주변 탐색점의 비용함수를 계산할 때, 이전 탐색 라운드에서 이미 계산된 위치의 주변 탐색점의 비용함수를 다시 계산하는 과정을 피하기 위하여 이전 탐색 라운드의 주변 탐색점은 제외하고 현재 순서의 탐색 라운드의 주변 탐색점을 선택하는 방법이 제안될 수 있다.
도 7은 이전 탐색 라운드의 주변 탐색점을 제외하고 현재 순서의 탐색 라운드의 주변 탐색점을 도출하는 일 예를 나타낸다. 도 7을 참조하면 십자형 탐색 패턴에 따른 움직임 정보 갱신 과정이 수행될 수 있다. 이 경우, 도 7에 도시된 것과 같이 상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 선택된 움직임 정보가 가리키는 위치가 첫번째 탐색 라운드의 탐색 기준점으로 도출될 수 있고, 상기 첫번째 탐색 라운드의 탐색 기준점을 기준으로 4개의 주변 샘플들이 상기 첫번째 탐색 라운드의 주변 탐색점들로 도출되어 상기 주변 탐색점들에 대한 코스트들이 계산될 수 있다. 상기 첫번째 탐색 라운드의 탐색 기준점 및 상기 주변 탐색점들 중 우측 주변 탐색점이 가장 작은 코스트를 가질 수 있고, 이 경우, 상기 우측 주변 탐색점이 두번째 탐색 라운드의 탐색 기준점으로 도출될 수 있다. 상기 십자형 탐색 패턴에 따른 두번째 탐색 라운드의 주변 탐색점들은 상기 두번째 탐색 라운드의 탐색 기준점을 중심으로 4개의 주변 샘플들이 도출될 수 있지만, 상기 주변 샘플들 중 좌측 주변 샘플은 상기 첫번째 탐색 라운드의 탐색 기준점에 위치하는 샘플로 이미 비용함수가 계산된 위치에 해당할 수 있다. 따라서, 상기 두번째 탐색 라운드의 주변 탐색점들은 상기 십자형 탐색 패턴 및 상기 두번째 탐색 라운드의 탐색 기준점을 기반으로 도출된 주변 샘플들 중 이전 탐색 라운드에서 계산된 주변 샘플(즉, 좌측 주변 샘플)을 제외한 주변 샘플들로 도출될 수 있다. 또한, 도 7에 도시된 것과 같이 인코딩/디코딩 장치는 선택된 탐색 방향으로 가중치를 두어 이후 탐색 라운드에서는 선택된 탐색 방향으로 주변 탐색점을 추가하여 움직임 정보 갱신 과정을 수행할 수도 있다. 예를 들어, 상기 첫번째 탐색 라운드에서 두번째 탐색 기준점으로 우측 주변 탐색점이 선택될 수 있고, 이 경우, 탐색 방향은 우측 방향으로 도출될 수 있다. 상기 탐색 방향에 대한 가중치가 w 이고, 상기 두번째 탐색 기준점의 좌표가 (a, b) 인 경우, (a, b+w*y) 의 주변 샘플이 상기 두번째 탐색 라운드에 대한 주변 탐색점으로 추가적으로 도출될 수 있다.
한편, 본 발명에서는 움직임 정보 갱신 과정의 다양한 종료 조건들에 대하여 제안한다. 움직임 정보 갱신 과정은 종료 조건이 명확해야 최대 수행 시간에 대한 보장이 가능해질 수 있고, 상기 움직임 정보 갱신 과정의 워스트 케이스(worst case)에서의 메모리 대역폭이나 수행 복잡도와 관련하여 유리한 측면을 가질 수 있다. 여기서, 워스트 케이스는 움직임 정보 탐색 과정이 최대 탐색 횟수로 수행되는 경우를 나타낼 수 있다. 상기 움직임 정보 갱신 과정에 있어서 움직임 정보의 탐색 횟수를 제한하지 않으면 디코딩 장치의 수행 복잡도를 증가시킬 수 있고, 또한, 하드웨어 구현 과정에서 고려해야 할 최대 동작 사이클(cycle)의 증가로 인하여 하드웨어 비용의 증가 또는 하드웨어의 정해진 사이클 내에서 디코딩 과정 수행 가능 여부가 보장되지 못하여 파이프라인을 효율적으로 구성하지 못하는 문제가 발생할 수 있다. 이 경우, 상기 DMDV를 기반으로 인터 예측을 수행하는 하드웨어를 원활하게 구현할 수 없는 문제를 초래할 수 있다. 이에, 본 발명은 DMDV의 움직임 정보 갱신 과정에 대한 움직임 정보의 탐색 횟수를 제한하는 다양한 종료 조건을 제안한다.
일 예로, 탐색 범위(search range)를 기반으로 움직임 정보 갱신 과정을 종료하는 방법이 제안될 수 있다. 구체적으로, 상기 현재 블록의 움직임 정보 갱신에 대한 최대 탐색 범위가 설정될 수 있는바, 탐색 라운드의 주변 탐색점들 중 상기 최대 탐색 범위를 벗어나지 않고, 상기 탐색 라운드의 탐색 기준점의 코스트보다 작은 코스트를 갖는 주변 탐색점이 존재하지 않는 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있다. 예를 들어, 상기 탐색 라운드의 주변 탐색점들 중 상기 최대 탐색 범위를 벗어나는 주변 탐색점이 존재하는 경우, 상기 주변 탐색점의 코스트는 계산되지 않을 수 있다. 이 경우, 상기 움직임 정보 갱신 과정의 최종 탐색 라운드의 탐색 기준점을 가리키는 움직임 정보가 상기 수정된 움직임 정보로 도출될 수 있고, 상기 현재 블록의 움직임 정보는 상기 수정된 움직임 정보로 대체될 수 있다.
또는, 상기 탐색 라운드의 주변 탐색점들 중 상기 최대 탐색 범위를 벗어나는 주변 탐색점이 존재하는 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있다. 이 경우, 상기 움직임 정보 갱신 과정의 최종 탐색 라운드의 탐색 기준점을 가리키는 움직임 정보가 상기 수정된 움직임 정보로 도출될 수 있고, 상기 현재 블록의 움직임 정보는 상기 수정된 움직임 정보로 대체될 수 있다.
또는, 탐색 라운드의 주변 탐색점들 중 다음 탐색 라운드의 탐색 기준점으로 도출된 주변 탐색점이 상기 최대 탐색 범위를 벗어나는 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있고, 상기 최대 탐색 범위 내 탐색점들 중 최소 코스트를 갖는 탐색점을 가리키는 움직임 정보가 상기 수정된 움직임 정보로 도출될 수 있다.
한편, 예를 들어, 상기 최대 탐색 범위는 64로 정의될 수 있다. 즉, 상기 최대 탐색 범위는 상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 도출된 움직임 정보가 가리키는 위치가 중점이고, 높이 및 폭이 128인 사각형의 영역으로 설정될 수 있다.
상기 최대 탐색 범위의 사이즈에 따라 상기 움직임 정보 갱신 과정의 워스트 케이스(worst case)에서 필요한 메모리 대역폭이 결정될 수 있고, 이에, 상기 최대 탐색 범위가 가능한 작은 사이즈로 설정되는 것이 메모리 관점에서는 유리할 수 있다. 하지만, 상기 최대 탐색 범위가 가능한 작은 사이즈로 설정되는 것은 인코딩 성능 저하와 직접적으로 연결될 수 있고, 이에, 상술한 효과 간의 트레이드 오프(trade-off)를 고려한 적절한 최대 탐색 범위로 설정되는 것이 중요할 수 있다.
또한, 최대 탐색 범위의 설정과 관련하여 블록 단위의 움직임 정보 갱신 과정에 대한 최대 탐색 범위와 서브 블록 단위의 움직임 정보 갱신 과정에 대한 최대 탐색 범위가 기설정될 수 있다. 또한, 블록 단위의 움직임 정보 갱신 과정 및 서브 블록 단위의 움직임 정보 갱신 과정 모두에 대한 공통의 최대 탐색 범위가 설정될 수도 있다. 즉, 블록 단위의 움직임 정보 갱신 과정 및 서브 블록 단위의 움직임 정보 갱신 과정에 대하여 동일한 최대 탐색 범위가 설정될 수도 있다. 한편, 상기 블록은 PU(prediction unit)를 나타낼 수도 있다.
상기 최대 탐색 범위는 기설정될 수 있고, 이에, 인코딩/디코딩 장치에 고정된 상기 최대 탐색 범위가 사용될 수 있다. 또는, 영상 특성에 따라 다른 최대 탐색 범위가 사용되도록 상기 최대 탐색 범위에 대한 정보가 SPS(sequence parameter set) 또는 PPS(picture parameter set) 등의 high level syntax 를 통하여 전송될 수 있다. 또는, 각 슬라이스(slice)마다 최대 탐색 범위가 설정될 수 있고, 이에 상기 최대 탐색 범위에 대한 정보가 슬라이스 헤더(slice header) 혹은 그 이하 신텍스(syntax)를 통하여 전송될 수도 있다. 상기 최대 탐색 범위에 대한 정보가 전송되는 경우, 디코딩 장치는 상기 최대 탐색 범위에 대한 정보를 기반으로 상기 현재 블록의 상기 최대 탐색 범위를 도출할 수 있다. 또한, 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter), 상기 현재 블록이 포함된 현재 픽처의 픽처 타입(picture type) 등을 기반으로 상기 최대 탐색 범위가 도출될 수도 있다.
또한, 다른 일 예로, 탐색 라운드(search round)를 기반으로 움직임 정보 갱신 과정을 종료하는 방법이 제안될 수 있다. 구체적으로, 최대 탐색 횟수가 설정될 수 있고, 탐색 라운드의 탐색 횟수가 최대 탐색 횟수와 동일한 경우, 상기 현재 블록의 움직임 정보 갱신 과정은 종료될 수 있고, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보가 상기 수정된 움직임 정보로 도출될 수 있다. 상기 수정된 움직임 정보는 상기 현재 블록의 움직임 정보로 대체될 수 있다. 즉, 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 예측이 수행될 수 있다. 예를 들어, 상기 최대 탐색 횟수가 5로 설정될 수 있다. 한편, 상술한 내용과 같이 첫번째 탐색 라운드 이전에 상기 현재 블록의 움직임 정보 갱신 과정의 탐색 횟수는 0으로 초기화될 수 있고, 다음 순서의 탐색 라운드의 탐색 기준점이 도출되는 경우에 상기 탐색 횟수가 1 증가할 수 있다. 따라서, 5번째 탐색 라운드를 통하여 6번째 탐색 라운드에 대한 탐색 기준점이 도출되는 경우, 상기 탐색 횟수는 5로 도출될 수 있고, 따라서, 상기 현재 블록의 움직임 정보 갱신 과정은 종료되고 상기 6번째 탐색 라운드에 대한 탐색 기준점을 가리키는 움직임 정보가 상기 현재 블록의 수정된 움직임 정보로 도출될 수 있다.
상기 최대 탐색 횟수의 값은 상기 움직임 정보 갱신 과정의 워스트 케이스(worst case)의 복잡도에 관련이 있을 수 있다. 상기 최대 탐색 횟수의 값이 작게 설정되는 경우, 상기 워스트 케이스의 복잡도는 낮아질 수 있으나, 예측 정확도를 낮춰 코딩 성능을 저하시킬 수 있다. 이와 달리, 상기 최대 탐색 횟수의 값이 크게 설정되는 경우, 상기 워스트 케이스의 복잡도는 증가할 수 있다. 따라서, 상기 워스트 케이스의 복잡도 및 코딩 성능을 모두 고려하여 적절한 최대 탐색 횟수로 설정되는 것이 중요할 수 있다.
한편, 상기 최대 탐색 횟수는 기설정될 수 있고, 이에, 인코딩/디코딩 장치에 고정된 상기 최대 탐색 범위가 사용될 수 있다. 또는, 영상 특성에 따라 다른 최대 탐색 횟수가 사용되도록 상기 최대 탐색 횟수에 대한 정보가 SPS(sequence parameter set) 또는 PPS(picture parameter set) 등의 high level syntax 를 통하여 전송될 수 있다. 또는, 각 슬라이스(slice)마다 최대 탐색 횟수가 설정될 수 있고, 이에, 상기 최대 탐색 횟수에 대한 정보가 슬라이스 헤더(slice header) 혹은 그 이하 신텍스(syntax)를 통하여 전송될 수도 있다. 상기 최대 탐색 횟수에 대한 정보가 전송되는 경우, 디코딩 장치는 상기 최대 탐색 횟수에 대한 정보를 기반으로 상기 현재 블록의 상기 최대 탐색 횟수를 도출할 수 있다. 또한, 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter), 또는 상기 현재 블록이 포함된 현재 픽처의 픽처 타입(picture type) 등을 기반으로 상기 최대 탐색 횟수가 도출될 수 있고, 이에, 상기 현재 블록의 사이즈, 상기 템포럴 ID, 상기 QP, 또는 상기 현재 블록이 포함된 상기 현재 픽처의 픽처 타입(picture type) 등을 기반으로 상기 최대 탐색 횟수가 가변적으로 적용될 수도 있다.
또한, 다른 일 예로, 탐색점(search point)을 기반으로 움직임 정보 갱신 과정을 종료하는 방법이 제안될 수 있다. 여기서, 상기 탐색점은 탐색 기준점 및 주변 탐색점을 포함할 수 있다. 구체적으로, 최대 탐색점 개수가 설정될 수 있고, 움직임 정보 갱신 과정에서 도출된 탐색점의 개수가 상기 최대 탐색점 개수를 넘는 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있고, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보가 상기 수정된 움직임 정보로 도출될 수 있다. 예를 들어, 상기 최대 탐색점 개수가 20으로 설정된 경우, n번째 탐색 라운드의 탐색점이 도출되고, 첫번째 탐색 라운드 내지 상기 n번째 탐색 라운드에서 도출된 탐색점의 개수가 20개보다 큰 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있고, 상기 n번째 탐색 라운드의 탐색 기준점을 가리키는 움직임 정보는 상기 현재 블록의 수정된 움직임 정보로 도출될 수 있다. 상기 최대 탐색점 개수는 상기 최대 탐색 범위 및 상기 최대 탐색 횟수와 마찬가지로 상기 움직임 정보 갱신 과정의 워스트 케이스의 복잡도와 관련이 있을 수 있다. 한편, 상기 최대 탐색점 개수는 상기 최대 탐색 범위 및 상기 최대 탐색 횟수에 비하여 움직임 갱신 과정의 최대 수행시간을 가장 확실하게 보장할 수 있다는 장점을 가질 수 있다.
한편, 블록 단위의 움직임 정보 갱신 과정에 대한 최대 탐색점 개수와 서브 블록 단위의 움직임 정보 갱신 과정에 대한 최대 탐색점 개수는 별도로 각각 설정될 수 있다. 또는, 상기 블록 단위의 움직임 정보 갱신 과정 및 상기 서브 블록 단위의 움직임 정보 갱신 과정에 대하여 동일한 최대 탐색점 개수가 설정될 수도 있다. 또한, 상기 현재 블록의 탐색 패턴에 따라 적응적으로 설정될 수도 있다. 예를 들어, 상기 현재 블록의 탐색 패턴이 십자형 탐색 패턴인 경우, 상기 최대 탐색점 개수는 4+3*n의 값으로 설정될 수 있다. 첫번째 탐색 라운드 내지 n-1번째 탐색 라운드를 통하여 도출되는 탐색점의 개수는 4+3*n의 값이므로, 상기 최대 탐색점 개수는 4+3*n의 값으로 설정됨을 통하여 마지막 탐색 라운드(즉, n-1번째 탐색 라운드)에 대한 움직임 정보 탐색 과정이 모두 수행될 수 있다. 상기 현재 블록의 탐색 패턴이 상기 십자형 탐색 패턴 이외의 탐색 패턴인 경우에도 마지막 탐색 라운드의 상기 탐색 패턴에 따른 탐색점에 대한 탐색 과정이 모두 수행되도록 상기 탐색 패턴을 기반으로 상기 현재 블록의 최대 탐색점 개수가 설정될 수 있다.
또는, 상기 최대 탐색점 개수에 대한 정보는 SPS(sequence parameter set) 또는 PPS(picture parameter set) 등의 high level syntax 를 통하여 전송될 수 있다. 또는, 상기 최대 탐색점 개수에 대한 정보는 슬라이스 헤더(slice header) 혹은 그 이하 신텍스(syntax)를 통하여 전송될 수도 있다. 상기 최대 탐색점 개수에 대한 정보가 전송되는 경우, 디코딩 장치는 상기 최대 탐색점 개수에 대한 정보를 기반으로 상기 현재 블록의 상기 최대 탐색점 개수를 도출할 수 있다. 또한, 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter), 또는 상기 현재 블록이 포함된 현재 픽처의 픽처 타입(picture type) 등을 기반으로 상기 최대 탐색점 개수가 도출될 수 있고, 이에, 상기 현재 블록의 사이즈, 상기 템포럴 ID, 상기 QP, 또는 상기 현재 블록이 포함된 상기 현재 픽처의 픽처 타입(picture type) 등을 기반으로 상기 최대 탐색점 개수가 가변적으로 적용될 수도 있다.
또한, 다른 일 예로, 비용함수 값, 즉, 코스트를 기반으로 움직임 정보 갱신 과정을 종료하는 방법이 제안될 수 있다. 구체적으로, 최소 비용함수 값, 즉, 최소 코스트가 예측될 수 있고, 해당 탐색 라운드의 주변 탐색점들의 코스트들이 상기 최소 코스트보다 작거나 같은 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있고, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보가 상기 수정된 움직임 정보로 도출될 수 있다. 여기서, 상기 예측된 최소 코스트는 코스트 임계값(threshold)이라고 나타낼 수 있다. 예를 들어, 상기 현재 블록의 십자형 탐색 패턴에 따른 움직임 정보 갱신 과정이 수행되는 경우, 해당 탐색 라운드의 4개의 주변 탐색점들의 코스트들이 기설정된 코스트 임계값보다 작은 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있다.
상기 코스트 임계값은 움직임 정보 갱신 과정의 평균적 복잡도와 관련이 있을 수 있다. 구체적으로, 상기 코스트 임계값이 높게 설정되는 경우, 상기 움직임 정보 갱신 과정의 평균적인 복잡도는 줄어들 수 있지만, 예측 정확도 및 코딩 성능이 줄어들 수 있다. 반대로, 상기 코스트 임계값이 낮게 설정되는 경우, 상기 움직임 정보 갱신 과정의 평균적인 복잡도는 크게 줄지 않을 수 있지만, 예측 정확도 및 코딩 성능은 유지될 수 있다.
한편, 템플릿(template) 정합 방법이 사용되는 경우, 탐색점의 코스트는 현재 블록의 템플릿과 상기 탐색점에 대한 참조 블록의 템플릿과의 차이를 나타낼 수 있다. 즉, 상기 코스트는 상기 현재 블록의 템플릿과 참조 블록의 템플릿의 대응하는 샘플들간 차이의 절대값의 합으로 도출될 수 있다.
또는, 양방향 정합 방법이 사용되는 경우, 상기 탐색점의 코스트는 양방향 참조 블록들, 즉, 상기 탐색점에 대한 참조 블록 및 반대 방향의 참조 블록의 대응하는 샘플들간 차이의 절대값의 합(Sum of Absolute Differences) 또는 상기 차이의 제곱의 합(Sum of Squared Differences)일 수 있다. 또는, 상기 탐색점의 코스트는 비트율(bitrate)이 반영된 Distortion + lambda * bitrate 로 도출될 수 있다.
한편, 상기 코스트 임계값은 기설정된 값으로 도출될 수 있고, 또는 인코딩 과정에서 적응적으로 갱신될 수 있다. 상기 코스트 임계값이 기설정된 값으로 도출되는 경우, 블록 단위의 움직임 정보 갱신 과정에 대한 코스트 임계값과 서브 블록 단위의 움직임 정보 갱신 과정에 대한 코스트 임계값이 별도로 설정될 수 있고, 또는 블록 단위의 움직임 정보 갱신 과정 및 서브 블록 단위의 움직임 정보 갱신 과정에 대하여 동일한 코스트 임계값이 설정될 수도 있다.
한편, 상기 코스트 임계값이 블록 단위로 설정되고, 현재 블록의 마지막으로 도출된 탐색 기준점의 코스트가 상기 코스트 임계값의 특정 비율 이하인 경우, 상기 현재 블록의 서브 블록들에 대한 움직임 정보 갱신 과정은 생략될 수 있다. 여기서, 상기 현재 블록은 예측 유닛(Prediction Unit, PU) 일 수 있고, 상기 서브 블록 단위의 움직임 정보 갱신 과정의 생략 여부는 다음의 수학식을 기반으로 도출될 수 있다.
Figure PCTKR2018007396-appb-M000003
여기서, Cost PUmin 는 현재 블록의 마지막으로 도출된 탐색 기준점의 코스트, 즉, 상기 현재 블록의 최소 코스트를 나타낼 수 있고, Cost PUthreshold 는 상기 코스트 임계값을 나타낼 수 있고, α 는 상기 특정 비율을 나타낼 수 있다.
이 경우, 블록 단위 움직임 정보 후보 리스트가 생성될 수 있고, 상기 블록 단위 움직임 정보 후보 리스트의 후보들 중 상기 블록 단위 움직임 정보 후보 리스트에 대한 해당 블록의 움직임 정보가 선택될 수 있다. 다음으로, 상기 해당 블록의 상기 움직임 정보에 대한 블록 단위 움직임 정보 갱신 과정이 수행될 수 있고, 상기 해당 블록에 대한 수정된 움직임 정보가 도출될 수 있다. 이후, 상기 수정된 움직임 정보가 가리키는 탐색점의 코스트가 상기 코스트 임계값의 특정 비율 이하인지 판단될 수 있고, 상기 탐색점의 코스트가 상기 코스트 임계값의 특정 비율 이하인 경우, 상기 해당 블록의 서브 블록들에 대한 서브 블록 단위 움직임 정보 갱신 과정은 생략될 수 있다. 다음으로, 상기 해당 블록의 상기 서브 블록들 각각에 대한 서브 블록 단위 움직임 정보 후보 리스트 생성될 수 있고, 상기 서브 블록 단위 움직임 정보 후보 리스트 중 각 서브 블록에 대한 움직임 정보가 선택될 수 있다. 또한, 상기 서브 블록 단위 움직임 정보 갱신 과정의 생략 여부에 따라서 상기 각 서브 블록에 대한 움직임 정보가 갱신될 수 있다.
한편, 상기 블록 단위 또는 상기 서브 블록 단위의 움직임 정보 갱신 과정을 위한 코스트 임계값이 설정되는 경우, 상기 코스트 임계값에 대한 정보는 SPS(sequence parameter set) 또는 PPS(picture parameter set) 등의 high level syntax 를 통하여 전송될 수 있다. 또는, 상기 코스트 임계값에 대한 정보는 슬라이스 헤더(slice header) 혹은 그 이하 신텍스(syntax)를 통하여 전송될 수도 있다. 상기 코스트 임계값에 대한 정보가 전송되는 경우, 디코딩 장치는 상기 코스트 임계값에 대한 정보를 기반으로 상기 현재 블록의 상기 코스트 임계값을 도출할 수 있다.
한편, 상술한 탐색 라운드(search round), 탐색점(search point), 탐색 범위(search range) 및 코스트 중 복수의 조건들을 고려하여 상기 움직임 정보 갱신 과정을 종료하는 방법이 제안될 수 있다. 즉, 복수의 종료 조건들 중 하나 이상의 종료 조건이 만족되는 경우, 인코딩/디코딩 장치는 상기 움직임 정보 갱신 과정을 멈추고 마지막으로 선택된 탐색 기준점을 기준으로 해당 블록의 움직임 정보를 갱신할 수 있다.
일 예로, 해당 블록에 대한 최대 탐색점 개수 및 코스트 임계값이 설정될 수 있고, 움직임 정보 갱신 과정에서 도출된 탐색점의 개수가 상기 최대 탐색점 개수를 넘는 경우 또는 해당 탐색 라운드의 주변 탐색점들의 코스트들이 상기 코스트 임계값보다 작거나 같은 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있다.
또한, 다른 일 예로, 해당 블록에 대한 최대 탐색점 개수, 코스트 임계값, 최대 탐색 횟수 및 최대 탐색 범위가 설정될 수 있고, 움직임 정보 갱신 과정에서 도출된 탐색점의 개수가 상기 최대 탐색점 개수를 넘는 경우, 해당 탐색 라운드의 주변 탐색점들의 코스트들이 상기 코스트 임계값보다 작거나 같은 경우, 탐색 라운드의 탐색 횟수가 최대 탐색 횟수와 동일한 경우, 해당 탐색 라운드의 탐색 횟수가 상기 최대 탐색 횟수와 동일한 경우 또는 해당 탐색 라운드의 주변 탐색점들 중 상기 최대 탐색 범위를 벗어나지 않고, 상기 해당 탐색 라운드의 탐색 기준점의 코스트보다 작은 코스트를 갖는 주변 탐색점이 존재하지 않는 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있다.
한편, 코스트의 변화량을 기반으로 움직임 정보 갱신 과정을 종료하는 방법이 제안될 수 있다. 여기서, 상기 코스트의 변화량은 n-1번째 탐색 라운드의 탐색 기준점의 코스트와 n번째 탐색 라운드의 코스트의 차이를 나타낼 수 있다. 구체적으로, 해당 탐색 라운드의 탐색 기준점의 코스트와 상기 해당 탐색 라운드의 탐색 과정을 통하여 도출된 수정된 탐색 기준점의 코스트와의 차이가 특정값보다 작거나 같은 경우, 상기 움직임 정보 갱신 과정은 종료될 수 있고, 상기 수정된 탐색 기준점을 가리키는 움직임 정보가 수정된 움직임 정보로 도출될 수 있다.
도 8은 본 발명에 따른 인코딩 장치에 의한 비디오 인코딩 방법을 개략적으로 나타낸다. 도 8에서 개시된 방법은 도 1에서 개시된 인코딩 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 8의 S800 내지 S840은 상기 디코딩 장치의 예측부, S850은 상기 인코딩 장치의 엔트로피 인코딩부에 의하여 수행될 수 있다.
인코딩 장치는 현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성한다(S800). 인코딩 장치는 상기 현재 블록의 주변 블록들을 기반으로 움직임 정보 후보 리스트를 생성할 수 있다. 인코딩 장치는 상기 현재 블록의 복원된 공간적 주변 블록의 움직임 정보 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 정보를 기반으로 상기 현재 블록에 대한 움직임 정보 후보 리스트를 생성할 수 있다. 상기 움직임 정보 후보 리스트는 복원된 공간적 주변 블록의 움직임 정보 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 정보를 움직임 정보 후보로 포함할 수 있다.
인코딩 장치는 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 결정한다(S810). 인코딩 장치는 상기 움직임 정보 후보 리스트의 움직임 정보 후보들 중 상기 현재 블록의 움직임 정보가 선택할 수 있다. 구체적으로, 상기 움직임 정보 후보 리스트의 움직임 정보 후보들 중 가장 작은 비용 함수 값(즉, 코스트)을 가지는 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다.
예를 들어, 상기 움직임 정보 후보들이 가리키는 참조 블록들의 템플릿들 중 상기 현재 블록의 템플릿과의 코스트가 가장 작은 템플릿의 참조 블록에 대한 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다. 상기 움직임 정보 후보들이 가리키는 참조 블록들은 참조 픽처 리스트 L0에 대한 L0 참조 블록 및 참조 픽처 리스트 L1에 대한 L1 참조 블록을 포함할 수 있다. 또는, 상기 움직임 정보 후보들 중 L0 참조 블록 및 L1 참조 블록간의 코스트가 가장 작은 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다.
인코딩 장치는 상기 현재 블록의 탐색 패턴 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출한다(S820). 인코딩 장치는 상기 현재 블록의 제1 탐색 기준점부터 순차적으로 적어도 하나의 탐색 기준점을 도출할 수 있다. 상기 제1 탐색 기준점은 상기 움직임 정보가 가리키는 위치일 수 있다.
구체적으로, 인코딩 장치는 상기 탐색 패턴을 기반으로 제N 탐색 기준점에 대한 주변 탐색점들을 도출할 수 있고, 상기 제N 탐색 기준점 및 상기 주변 탐색점들의 코스트를 도출할 수 있다. 인코딩 장치는 상기 제N 탐색 기준점 및 상기 주변 탐색점들의 코스트들을 비교하여 제N+1 탐색 기준점 도출 여부를 판단할 수 있다. 상기 주변 탐색점들의 코스트들 중 가장 작은 코스트가 상기 제N 탐색 기준점의 코스트보다 작은 경우, 인코딩 장치는 상기 가장 작은 코스트를 갖는 주변 탐색점을 제N+1 탐색 기준점을 도출할 수 있다. 또한, 상기 주변 탐색점들의 코스트들 중 가장 작은 코스트가 상기 제N 탐색 기준점의 코스트보다 작지 않은 경우, 인코딩 장치는 상기 제N+1 탐색 기준점을 도출하지 않을 수 있고, 상기 제N 탐색 기준점이 마지막으로 도출된 탐색 기준점으로 이용될 수 있다. 여기서, 상기 N은 1 이상의 정수일 수 있다.
한편, 일 예로, 상기 제N 탐색 기준점에 대한 각 주변 탐색점의 코스트는 상기 각 주변 탐색점에 대한 참조 블록의 템플릿과 상기 현재 블록의 템플릿과의 코스트일 수 있다. 즉 상기 각 주변 탐색점의 코스트는 상기 각 주변 탐색점에 대한 상기 참조 블록의 템플릿과 상기 현재 블록의 템플릿과의 비교를 기반으로 도출될 수 있다. 여기서, 상기 현재 블록의 템플릿은 상기 현재 블록의 주변 샘플들을 포함하는 특정 영역을 나타낼 수 있고, 상기 참조 블록의 템플릿은 상기 현재 블록의 주변 샘플들에 대응하는 상기 참조 블록의 주변 샘플들을 포함하는 특정 영역을 나타낼 수 있다. 상기 참조 블록은 상기 각 주변 탐색점이 좌상단 샘플인 블록일 수 있다. 상기 코스트는 상술한 수학식 1을 기반으로 도출될 수 있다.
또는, 다른 예로, 상기 제N 탐색 기준점에 대한 상기 각 주변 탐색점의 코스트는 반대 방향의 참조 블록 및 상기 각 주변 탐색점에 대한 참조 블록간 대응하는 샘플들의 차이의 절대값을 기반으로 도출될 수 있다. 즉, 상기 제N 탐색 기준점에 대한 상기 각 주변 탐색점의 코스트는 반대 방향의 참조 블록 및 상기 각 주변 탐색점에 대한 참조 블록간 대응하는 샘플들의 차이의 절대값의 합일 수 있다. 또는, 상기 제N 탐색 기준점에 대한 상기 각 주변 탐색점의 코스트는 반대 방향의 참조 블록 및 상기 각 주변 탐색점에 대한 참조 블록간 대응하는 샘플들의 차이의 제곱의 합일 수 있다. 여기서, 상기 반대 방향의 참조 블록은 상기 각 주변 탐색점에 대한 상기 참조 블록의 방향과 반대 방향의 참조 블록을 나타낼 수 있다.
한편, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들로 도출될 수 있다. 또한, 상기 위치들 중 제N-1 탐색 기준점의 위치 또는 상기 제N-1 탐색 기준점에 대한 주변 탐색점의 위치가 포함된 경우, 상기 제N-1 탐색 기준점의 위치 또는 상기 제N-1 탐색 기준점의 상기 주변 탐색점의 위치는 상기 제N 탐색 기준점에 대한 주변 탐색점으로 도출되지 않을 수 있다.
한편, 상기 현재 블록의 최대 탐색 범위, 최대 탐색점 개수, 최대 탐색 횟수 및/또는 코스트 임계값을 기반으로 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점의 도출 여부가 판단될 수 있다.
예를 들어, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들로 도출되되, 상기 위치들이 상기 현재 블록의 최대 탐색 범위를 벗어난 위치를 포함하는 경우, 상기 현재 블록의 상기 최대 탐색 범위를 벗어난 위치는 상기 제N 탐색 기준점에 대한 주변 탐색점으로 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
또한, 다른 일 예로, 상기 N 이 상기 현재 블록에 대한 최대 탐색 횟수와 동일한 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
또한, 다른 일 예로, 디코딩 장치는 상기 탐색 패턴을 기반으로 제N+1 탐색 기준점에 대한 주변 탐색점들을 도출할 수 있고, 상기 제N+1 탐색 기준점 내지 상기 제N+1 탐색 기준점의 주변 탐색점들의 개수가 상기 현재 블록에 대한 최대 탐색점 개수보다 큰 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
또한, 다른 일 예로, 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들의 코스트들이 상기 현재 블록의 코스트 임계값보다 작은 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
또한, 다른 일 예로, 복수의 조건들을 기반으로 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점 도출 여부가 판단될 수 있다. 예를 들어, 상기 제N+1 탐색 기준점 내지 상기 제N+1 탐색 기준점의 주변 탐색점들의 개수가 상기 현재 블록에 대한 최대 탐색점 개수보다 큰 경우 또는 상기 N 이 상기 현재 블록에 대한 최대 탐색 횟수와 동일한 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다. 또는, 상기 제N+1 탐색 기준점 내지 상기 제N+1 탐색 기준점의 주변 탐색점들의 개수가 상기 현재 블록에 대한 최대 탐색점 개수보다 큰 경우, 상기 N 이 상기 현재 블록에 대한 최대 탐색 횟수와 동일한 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 현재 블록의 최대 탐색 범위를 벗어난 위치를 포함하는 경우 또는 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들의 코스트들이 상기 현재 블록의 코스트 임계값보다 작은 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
한편, 상기 최대 탐색 범위는 기설정될 수 있다. 또한, 상기 최대 탐색 범위를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 전송될 수 있다. 즉, 인코딩 장치는 비트스트림을 통하여 상기 최대 탐색 범위를 나타내는 정보를 시그널링할 수 있다. 또는, 상기 최대 탐색 범위는 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 최대 탐색점 개수는 기설정될 수 있다. 또한, 상기 최대 탐색점 개수를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 전송될 수 있다. 즉, 인코딩 장치는 비트스트림을 통하여 상기 최대 탐색점 개수를 나타내는 정보를 시그널링할 수 있다. 또는, 상기 최대 탐색점 개수는 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 최대 탐색 횟수는 기설정될 수 있다. 또한, 상기 최대 탐색 횟수를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 전송될 수 있다. 즉, 인코딩 장치는 비트스트림을 통하여 상기 최대 탐색 횟수를 나타내는 정보를 시그널링할 수 있다. 또는, 상기 최대 탐색 횟수는 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 코스트 임계값은 기설정될 수 있다. 또한, 상기 코스트 임계값을 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 전송될 수 있다. 즉, 인코딩 장치는 비트스트림을 통하여 상기 코스트 임계값을 나타내는 정보를 시그널링할 수 있다. 또는, 상기 코스트 임계값은 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
한편, 상기 현재 블록의 상기 탐색 패턴은 십자형 탐색 패턴, 다이아몬드형 탐색 패턴, 육각형 탐색 패턴, N각형 탐색 패턴, 나선형(spiral) 탐색 패턴 또는 혼합형 탐색 패턴일 수 있다.
예를 들어, 상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 제N 탐색 기준점의 상하좌우의 4개의 위치들일 수 있다. 구체적으로, 상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a, b+y) 좌표의 상측 위치, (a, b-y) 좌표의 하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a+y, b) 좌표의 우측 위치일 수 있다.
다른 예로, 상기 현재 블록의 상기 탐색 패턴이 상기 다이아몬드형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 제N 탐색 기준점의 대각선 방향의 4개의 위치들일 수 있다. 구체적으로, 상기 현재 블록의 상기 탐색 패턴이 상기 다이아몬드형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a+y/2, b+y/2) 좌표의 우상측 위치, (a+y/2, b-y/2) 좌표의 우하측 위치, (a-y/2, b-y/2) 좌표의 좌하측 위치 및 (a-y, b+y) 좌표의 좌상측 위치일 수 있다.
다른 예로, 상기 현재 블록의 상기 탐색 패턴이 상기 육각형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 제N 탐색 기준점이 중심인 육각형의 꼭지점 위치들일 수 있다. 구체적으로, 상기 현재 블록의 상기 탐색 패턴이 상기 육각형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a+y/2, b+y/2) 좌표의 우상측 위치, (a+y, b) 좌표의 우측 위치, (a+y/2, b-y/2) 좌표의 우하측 위치, (a-y/2, b-y/2) 좌표의 좌하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a-y, b+y) 좌표의 좌상측 위치일 수 있다.
다른 예로, 상기 현재 블록의 상기 탐색 패턴이 상기 나선형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 제N 탐색 기준점이 중심인 나선 형태의 위치들일 수 있다.
다른 예로, 상기 현재 블록의 상기 탐색 패턴이 상기 혼합형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 복수의 탐색 패턴들의 위치들일 수 있다. 예를 들어, 상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴 및 상기 다이아몬드형 탐색 패턴이 조합된 혼합형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a, b+y) 좌표의 상측 위치, (a+y/2, b+y/2) 좌표의 우상측 위치, (a+y, b) 좌표의 우측 위치, (a+y/2, b-y/2) 좌표의 우하측 위치, (a, b-y) 좌표의 하측 위치, (a-y/2, b-y/2) 좌표의 좌하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a-y, b+y) 좌표의 좌상측 위치일 수 있다.
또는, 상기 현재 블록의 상기 탐색 패턴이 상기 혼합형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 N을 기반으로 도출된 탐색 패턴의 위치들일 수 있다. 예를 들어, 상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴 및 상기 다이아몬드형 탐색 패턴이 조합된 혼합형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 N 이 홀수이면 상기 위치들은 (a, b+y) 좌표의 상측 위치, (a, b-y) 좌표의 하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a+y, b) 좌표의 우측 위치일 수 있고, 상기 N 이 짝수이면 상기 위치들은 (a+y/2, b+y/2) 좌표의 우상측 위치, (a+y/2, b-y/2) 좌표의 우하측 위치, (a-y/2, b-y/2) 좌표의 좌하측 위치 및 (a-y, b+y) 좌표의 좌상측 위치일 수 있다.
한편, 제N 탐색 기준점의 탐색 방향을 기반으로 제N 탐색 기준점에 대한 주변 탐색점이 추가적으로 도출될 수 있다. 상기 탐색 방향은 제N-1 탐색 기준점에서 제N 탐색 기준점을 가리키는 방향일 수 있다. 예를 들어, 제N-1 탐색 기준점의 주변 탐색점들 중 우측 위치의 주변 탐색점이 상기 제N 탐색 기준점으로 도출된 경우, 상기 탐색 방향은 우측 방향일 수 있다. 이 경우, 상기 탐색 방향에 대한 가중치를 기반으로 상기 주변 탐색점이 추가적으로 도출될 수 있다. 상기 탐색 방향에 대한 가중치가 w 이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, (a, b+w*y) 의 위치가 제N 탐색 기준점에 대한 주변 탐색점으로 추가적으로 도출될 수 있다.
인코딩 장치는 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출한다(S830). 인코딩 장치는 상기 마지막으로 도출된 탐색 기준점을 가리키는 상기 움직임 정보를 상기 현재 블록의 상기 수정된(modified) 움직임 정보로 도출할 수 있다. 예를 들어, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다. 이 경우, 인코딩 장치는 상기 제N+1 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 상기 수정된 움직임 정보로 도출할 수 있다.
인코딩 장치는 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)한다(S840). 인코딩 장치는 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신할 수 있고, 저장할 수 있다. 인코딩 장치는 상기 현재 블록의 상기 움직임 정보를 상기 수정된 움직임 정보로 대체하여 상기 현재 블록의 상기 움직임 정보를 갱신할 수 있다. 상기 현재 블록이 서브 블록들로 분할되는 경우, 상기 갱신된 움직임 정보는 상기 현재 블록의 서브 블록의 움직임 정보를 위하여 사용될 수 있다.
한편, 상기 갱신된 움직임 정보를 기반으로 상기 현재 블록의 예측 블록이 도출될 수 있고, 상기 예측 블록을 기반으로 복원 블록이 도출될 수 있다. 구체적으로, 인코딩 장치는 상기 갱신된 움직임 정보를 기반으로 예측 샘플을 생성할 수 있고, 예측 모드에 따라 상기 예측 샘플을 바로 복원 샘플로 이용할 수도 있고, 또는 상기 예측 샘플에 레지듀얼 샘플을 더하여 복원 샘플을 생성할 수도 있다. 인코딩 장치는 상기 현재 블록에 대한 레지듀얼 샘플이 존재하는 경우, 상기 비트스트림을 통하여 상기 현재 블록에 대한 레지듀얼에 관한 정보를 전송할 수 있다. 상기 레지듀얼에 관한 정보는 상기 레지듀얼 샘플에 관한 변환 계수를 포함할 수 있다. 상기 레지듀얼 정보는 상기 예측 블록과 상기 현재 블록의 원본 블록간의 차이를 기반으로 도출될 수 있다. 인코딩 장치는 상기 예측 샘플과 상기 레지듀얼 샘플을 기반으로 복원 샘플을 생성할 수 있고, 상기 복원 샘플을 기반으로 복원 블록 또는 복원 픽처를 도출할 수 있다. 이후 인코딩 장치는 필요에 따라 주관적/객관적 화질을 향상시키기 위하여 디블록킹 필터링 및/또는 SAO 절차와 같은 인루프 필터링 절차를 상기 복원 픽처에 적용할 수 있음은 상술한 바와 같다.
한편, 인코딩 장치는 상기 현재 블록을 서브 블록들로 분할할 수 있다. 이 경우, 인코딩 장치는 각 서브 블록의 주변 블록들을 기반으로 상기 각 서브 블록의 움직임 정보 후보 리스트를 생성할 수 있다. 또한, 상기 각 서브 블록의 움직임 정보 후보 리스트는 상기 갱신된 움직임 정보를 움직임 정보 후보로 포함할 수 있다.
다음으로, 인코딩 장치는 상기 각 서브 블록의 움직임 정보 후보 리스트를 기반으로 상기 각 서브 블록의 움직임 정보를 결정할 수 있다. 구체적으로, 상기 움직임 정보 후보 리스트의 움직임 정보 후보들 중 가장 작은 비용 함수 값(즉, 코스트)을 가지는 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다.
다음으로, 인코딩 장치는 상기 각 서브 블록의 탐색 패턴 및 상기 움직임 정보를 기반으로 상기 각 서브 블록의 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출할 수 있고, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 각 서브 블록의 수정된 움직임 정보로 도출할 수 있고, 상기 수정된 움직임 정보를 기반으로 상기 각 서브 블록의 움직임 정보를 갱신할 수 있다. 상기 각 서브 블록에 대한 탐색 기준점을 도출하는 과정은 상기 현재 블록에 대한 탐색 기준점을 도출하는 과정과 동일할 수 있다.
한편, 상기 각 서브 블록의 최대 탐색 범위는 기설정될 수 있다. 상기 각 서브 블록의 상기 최대 탐색 범위는 상기 현재 블록의 최대 탐색 범위와 동일하게 설정될 수 있고, 또는 다르게 설정될 수 있다. 또한, 상기 각 서브 블록의 상기 최대 탐색 범위를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 전송될 수 있다. 즉, 인코딩 장치는 비트스트림을 통하여 상기 각 서브 블록의 상기 최대 탐색 범위를 나타내는 정보를 시그널링할 수 있다. 또는, 상기 각 서브 블록의 상기 최대 탐색 범위는 상기 각 서브 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 각 서브 블록에 대한 최대 탐색점 개수는 기설정될 수 있다. 상기 각 서브 블록에 대한 상기 최대 탐색점 개수는 상기 현재 블록에 대한 최대 탐색점 개수와 동일하게 설정될 수 있고, 또는 다르게 설정될 수 있다. 또는, 상기 각 서브 블록에 대한 상기 최대 탐색점 개수를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 전송될 수 있다. 즉, 인코딩 장치는 비트스트림을 통하여 상기 각 서브 블록에 대한 상기 최대 탐색점 개수를 나타내는 정보를 시그널링할 수 있다. 또는, 상기 각 서브 블록에 대한 상기 최대 탐색점 개수는 상기 각 서브 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 각 서브 블록의 상기 최대 탐색 횟수는 기설정될 수 있다. 상기 각 서브 블록의 상기 최대 탐색 횟수는 상기 현재 블록의 최대 탐색 횟수와 동일하게 설정될 수 있고, 또는 다르게 설정될 수 있다. 또한, 상기 각 서브 블록의 상기 최대 탐색 횟수를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 전송될 수 있다. 즉, 인코딩 장치는 비트스트림을 통하여 상기 각 서브 블록의 상기 최대 탐색 횟수를 나타내는 정보를 시그널링할 수 있다. 또는, 상기 각 서브 블록의 상기 최대 탐색 횟수는 상기 각 서브 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 각 서브 블록의 상기 코스트 임계값은 기설정될 수 있다. 상기 각 서브 블록의 상기 코스트 임계값은 상기 현재 블록의 코스트 임계값과 동일하게 설정될 수 있고, 또는 다르게 설정될 수 있다. 또는, 상기 각 서브 블록의 상기 코스트 임계값을 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 전송될 수 있다. 즉, 인코딩 장치는 비트스트림을 통하여 상기 각 서브 블록의 상기 코스트 임계값을 나타내는 정보를 시그널링할 수 있다. 또는, 상기 각 서브 블록의 상기 코스트 임계값은 상기 각 서브 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다. 한편, 상기 마지막으로 도출된 탐색 기준점의 코스트를 기반으로 상기 현재 블록의 상기 서브 블록들의 움직임 정보들의 갱신 여부가 판단될 수 있다. 예를 들어, 상기 현재 블록의 상기 마지막으로 도출된 탐색 기준점이 상기 현재 블록의 코스트 임계값의 특정 비율보다 작거나 같은 경우, 상기 각 서브 블록의 상기 움직임 정보는 갱신되지 않을 수 있다. 또한, 상기 현재 블록의 우하단 서브 블록의 주변 블록들은 상기 우하단 서브 블록의 디코딩 시점에 디코딩되지 않은바, 상기 우하단 서브 블록의 템플릿에 포함된 복원 샘플들이 존재하지 않을 수 있다. 따라서, 상기 서브 블록들 중 상기 우하단 서브 블록의 움직임 정보는 갱신되지 않을 수 있다. 또한, 상기 현재 블록의 갱신된 움직임 정보가 상기 우하단 서브 블록의 움직임 정보로 도출될 수 있다.
인코딩 장치는 상기 현재 블록의 인터 예측에 대한 정보를 생성하고 인코딩하여 출력한다(S850). 인코딩 장치는 상기 현재 블록의 인터 예측에 대한 정보를 인코딩하여 비트스트림 형태로 출력할 수 있다. 상기 현재 블록의 인터 예측에 대한 정보는 상기 현재 블록의 최대 탐색 범위에 대한 정보, 최대 탐색점 개수에 대한 정보, 최대 탐색 횟수에 대한 정보 및/또는 코스트 임계값에 대한 정보를 포함할 수 있다. 상기 최대 탐색 범위에 대한 정보, 상기 최대 탐색점 개수에 대한 정보, 상기 최대 탐색 횟수에 대한 정보 및/또는 상기 코스트 임계값에 대한 정보는 VPS(video parameter set), SPS(sequence parameter set), PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), 또는 블록 레벨에서 전송될 수 있다.
또한, 인코딩 장치는 상기 현재 블록의 각 서브 블록의 인터 예측에 대한 정보를 인코딩하여 비트스트림 형태로 출력할 수 있다. 상기 각 서브 블록의 인터 예측에 대한 정보는 상기 각 서브 블록의 최대 탐색 범위에 대한 정보, 최대 탐색점 개수에 대한 정보, 최대 탐색 횟수에 대한 정보 및/또는 코스트 임계값에 대한 정보를 포함할 수 있다. 상기 최대 탐색 범위에 대한 정보, 상기 최대 탐색점 개수에 대한 정보, 상기 최대 탐색 횟수에 대한 정보 및/또는 상기 코스트 임계값에 대한 정보는 VPS(video parameter set), SPS(sequence parameter set), PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), 또는 블록 레벨에서 전송될 수 있다.
도 9는 본 발명에 따른 디코딩 장치에 의한 비디오 디코딩 방법을 개략적으로 나타낸다. 도 9에서 개시된 방법은 도 2에서 개시된 디코딩 장치에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 9의 S900 내지 S940은 상기 디코딩 장치의 예측부에 의하여 수행될 수 있다.
디코딩 장치는 현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성한다(S900). 디코딩 장치는 상기 현재 블록의 주변 블록들을 기반으로 움직임 정보 후보 리스트를 생성할 수 있다. 디코딩 장치는 상기 현재 블록의 복원된 공간적 주변 블록의 움직임 정보 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 정보를 기반으로 상기 현재 블록에 대한 움직임 정보 후보 리스트를 생성할 수 있다. 상기 움직임 정보 후보 리스트는 복원된 공간적 주변 블록의 움직임 정보 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 정보를 움직임 정보 후보로 포함할 수 있다.
디코딩 장치는 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출한다(S910). 디코딩 장치는 상기 움직임 정보 후보 리스트의 움직임 정보 후보들 중 상기 현재 블록의 움직임 정보가 선택할 수 있다. 구체적으로, 상기 움직임 정보 후보 리스트의 움직임 정보 후보들 중 가장 작은 비용 함수 값(즉, 코스트)을 가지는 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다.
예를 들어, 상기 움직임 정보 후보들이 가리키는 참조 블록들의 템플릿들 중 상기 현재 블록의 템플릿과의 코스트가 가장 작은 템플릿의 참조 블록에 대한 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다. 상기 움직임 정보 후보들이 가리키는 참조 블록들은 참조 픽처 리스트 L0에 대한 L0 참조 블록 및 참조 픽처 리스트 L1에 대한 L1 참조 블록을 포함할 수 있다. 또는, 상기 움직임 정보 후보들 중 L0 참조 블록 및 L1 참조 블록간의 코스트가 가장 작은 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다.
디코딩 장치는 상기 현재 블록의 탐색 패턴 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출한다(S920). 디코딩 장치는 상기 현재 블록의 제1 탐색 기준점부터 순차적으로 적어도 하나의 탐색 기준점을 도출할 수 있다. 상기 제1 탐색 기준점은 상기 움직임 정보가 가리키는 위치일 수 있다.
구체적으로, 디코딩 장치는 상기 탐색 패턴을 기반으로 제N 탐색 기준점에 대한 주변 탐색점들을 도출할 수 있고, 상기 제N 탐색 기준점 및 상기 주변 탐색점들의 코스트를 도출할 수 있다. 디코딩 장치는 상기 제N 탐색 기준점 및 상기 주변 탐색점들의 코스트들을 비교하여 제N+1 탐색 기준점 도출 여부를 판단할 수 있다. 상기 주변 탐색점들의 코스트들 중 가장 작은 코스트가 상기 제N 탐색 기준점의 코스트보다 작은 경우, 디코딩 장치는 상기 가장 작은 코스트를 갖는 주변 탐색점을 제N+1 탐색 기준점을 도출할 수 있다. 또한, 상기 주변 탐색점들의 코스트들 중 가장 작은 코스트가 상기 제N 탐색 기준점의 코스트보다 작지 않은 경우, 디코딩 장치는 상기 제N+1 탐색 기준점을 도출하지 않을 수 있고, 상기 제N 탐색 기준점이 마지막으로 도출된 탐색 기준점으로 이용될 수 있다. 여기서, 상기 N은 1 이상의 정수일 수 있다.
한편, 일 예로, 상기 제N 탐색 기준점에 대한 각 주변 탐색점의 코스트는 상기 각 주변 탐색점에 대한 참조 블록의 템플릿과 상기 현재 블록의 템플릿과의 코스트일 수 있다. 즉 상기 각 주변 탐색점의 코스트는 상기 각 주변 탐색점에 대한 상기 참조 블록의 템플릿과 상기 현재 블록의 템플릿과의 비교를 기반으로 도출될 수 있다. 여기서, 상기 현재 블록의 템플릿은 상기 현재 블록의 주변 샘플들을 포함하는 특정 영역을 나타낼 수 있고, 상기 참조 블록의 템플릿은 상기 현재 블록의 주변 샘플들에 대응하는 상기 참조 블록의 주변 샘플들을 포함하는 특정 영역을 나타낼 수 있다. 상기 참조 블록은 상기 각 주변 탐색점이 좌상단 샘플인 블록일 수 있다. 상기 코스트는 상술한 수학식 1을 기반으로 도출될 수 있다.
또는, 다른 예로, 상기 제N 탐색 기준점에 대한 상기 각 주변 탐색점의 코스트는 반대 방향의 참조 블록 및 상기 각 주변 탐색점에 대한 참조 블록간 대응하는 샘플들의 차이의 절대값을 기반으로 도출될 수 있다. 즉, 상기 제N 탐색 기준점에 대한 상기 각 주변 탐색점의 코스트는 반대 방향의 참조 블록 및 상기 각 주변 탐색점에 대한 참조 블록간 대응하는 샘플들의 차이의 절대값의 합일 수 있다. 또는, 상기 제N 탐색 기준점에 대한 상기 각 주변 탐색점의 코스트는 반대 방향의 참조 블록 및 상기 각 주변 탐색점에 대한 참조 블록간 대응하는 샘플들의 차이의 제곱의 합일 수 있다. 여기서, 상기 반대 방향의 참조 블록은 상기 각 주변 탐색점에 대한 상기 참조 블록의 방향과 반대 방향의 참조 블록을 나타낼 수 있다.
한편, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들로 도출될 수 있다. 또한, 상기 위치들 중 제N-1 탐색 기준점의 위치 또는 상기 제N-1 탐색 기준점에 대한 주변 탐색점의 위치가 포함된 경우, 상기 제N-1 탐색 기준점의 위치 또는 상기 제N-1 탐색 기준점의 상기 주변 탐색점의 위치는 상기 제N 탐색 기준점에 대한 주변 탐색점으로 도출되지 않을 수 있다.
한편, 상기 현재 블록의 최대 탐색 범위, 최대 탐색점 개수, 최대 탐색 횟수 및/또는 코스트 임계값을 기반으로 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점의 도출 여부가 판단될 수 있다.
예를 들어, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들로 도출되되, 상기 위치들이 상기 현재 블록의 최대 탐색 범위를 벗어난 위치를 포함하는 경우, 상기 현재 블록의 상기 최대 탐색 범위를 벗어난 위치는 상기 제N 탐색 기준점에 대한 주변 탐색점으로 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
또한, 다른 일 예로, 상기 N 이 상기 현재 블록에 대한 최대 탐색 횟수와 동일한 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
또한, 다른 일 예로, 디코딩 장치는 상기 탐색 패턴을 기반으로 제N+1 탐색 기준점에 대한 주변 탐색점들을 도출할 수 있고, 상기 제N+1 탐색 기준점 내지 상기 제N+1 탐색 기준점의 주변 탐색점들의 개수가 상기 현재 블록에 대한 최대 탐색점 개수보다 큰 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
또한, 다른 일 예로, 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들의 코스트들이 상기 현재 블록의 코스트 임계값보다 작은 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
또한, 다른 일 예로, 복수의 조건들을 기반으로 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점 도출 여부가 판단될 수 있다. 예를 들어, 상기 제N+1 탐색 기준점 내지 상기 제N+1 탐색 기준점의 주변 탐색점들의 개수가 상기 현재 블록에 대한 최대 탐색점 개수보다 큰 경우 또는 상기 N 이 상기 현재 블록에 대한 최대 탐색 횟수와 동일한 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다. 또는, 상기 제N+1 탐색 기준점 내지 상기 제N+1 탐색 기준점의 주변 탐색점들의 개수가 상기 현재 블록에 대한 최대 탐색점 개수보다 큰 경우, 상기 N 이 상기 현재 블록에 대한 최대 탐색 횟수와 동일한 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 현재 블록의 최대 탐색 범위를 벗어난 위치를 포함하는 경우 또는 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들의 코스트들이 상기 현재 블록의 코스트 임계값보다 작은 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다.
한편, 상기 최대 탐색 범위는 기설정될 수 있다. 또는, 상기 최대 탐색 범위를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 수신될 수 있다. 즉, 디코딩 장치는 비트스트림을 통하여 상기 최대 탐색 범위를 나타내는 정보를 획득할 수 있다. 이 경우, 상기 최대 탐색 범위는 상기 최대 탐색 범위를 나타내는 정보를 기반으로 도출될 수 있다. 또는, 상기 최대 탐색 범위는 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 최대 탐색점 개수는 기설정될 수 있다. 또는, 상기 최대 탐색점 개수를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 수신될 수 있다. 즉, 디코딩 장치는 비트스트림을 통하여 상기 최대 탐색점 개수를 나타내는 정보를 획득할 수 있다. 이 경우, 상기 최대 탐색점 개수는 상기 최대 탐색점 개수를 나타내는 정보를 기반으로 도출될 수 있다. 또는, 상기 최대 탐색점 개수는 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 최대 탐색 횟수는 기설정될 수 있다. 또는, 상기 최대 탐색 횟수를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 수신될 수 있다. 즉, 디코딩 장치는 비트스트림을 통하여 상기 최대 탐색 횟수를 나타내는 정보를 획득할 수 있다. 이 경우, 상기 최대 탐색 횟수는 상기 최대 탐색 횟수를 나타내는 정보를 기반으로 도출될 수 있다. 또는, 상기 최대 탐색 횟수는 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 코스트 임계값은 기설정될 수 있다. 또는, 상기 코스트 임계값을 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 수신될 수 있다. 즉, 디코딩 장치는 비트스트림을 통하여 상기 코스트 임계값을 나타내는 정보를 획득할 수 있다. 이 경우, 상기 코스트 임계값은 상기 코스트 임계값을 나타내는 정보를 기반으로 도출될 수 있다. 또는, 상기 코스트 임계값은 상기 현재 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
한편, 상기 현재 블록의 상기 탐색 패턴은 십자형 탐색 패턴, 다이아몬드형 탐색 패턴, 육각형 탐색 패턴, N각형 탐색 패턴, 나선형(spiral) 탐색 패턴 또는 혼합형 탐색 패턴일 수 있다.
예를 들어, 상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 제N 탐색 기준점의 상하좌우의 4개의 위치들일 수 있다. 구체적으로, 상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a, b+y) 좌표의 상측 위치, (a, b-y) 좌표의 하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a+y, b) 좌표의 우측 위치일 수 있다.
다른 예로, 상기 현재 블록의 상기 탐색 패턴이 상기 다이아몬드형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 제N 탐색 기준점의 대각선 방향의 4개의 위치들일 수 있다. 구체적으로, 상기 현재 블록의 상기 탐색 패턴이 상기 다이아몬드형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a+y/2, b+y/2) 좌표의 우상측 위치, (a+y/2, b-y/2) 좌표의 우하측 위치, (a-y/2, b-y/2) 좌표의 좌하측 위치 및 (a-y, b+y) 좌표의 좌상측 위치일 수 있다.
다른 예로, 상기 현재 블록의 상기 탐색 패턴이 상기 육각형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 제N 탐색 기준점이 중심인 육각형의 꼭지점 위치들일 수 있다. 구체적으로, 상기 현재 블록의 상기 탐색 패턴이 상기 육각형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a+y/2, b+y/2) 좌표의 우상측 위치, (a+y, b) 좌표의 우측 위치, (a+y/2, b-y/2) 좌표의 우하측 위치, (a-y/2, b-y/2) 좌표의 좌하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a-y, b+y) 좌표의 좌상측 위치일 수 있다.
다른 예로, 상기 현재 블록의 상기 탐색 패턴이 상기 나선형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 제N 탐색 기준점이 중심인 나선 형태의 위치들일 수 있다.
다른 예로, 상기 현재 블록의 상기 탐색 패턴이 상기 혼합형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 복수의 탐색 패턴들의 위치들일 수 있다. 예를 들어, 상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴 및 상기 다이아몬드형 탐색 패턴이 조합된 혼합형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a, b+y) 좌표의 상측 위치, (a+y/2, b+y/2) 좌표의 우상측 위치, (a+y, b) 좌표의 우측 위치, (a+y/2, b-y/2) 좌표의 우하측 위치, (a, b-y) 좌표의 하측 위치, (a-y/2, b-y/2) 좌표의 좌하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a-y, b+y) 좌표의 좌상측 위치일 수 있다.
또는, 상기 현재 블록의 상기 탐색 패턴이 상기 혼합형 탐색 패턴인 경우, 상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들은 상기 N을 기반으로 도출된 탐색 패턴의 위치들일 수 있다. 예를 들어, 상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴 및 상기 다이아몬드형 탐색 패턴이 조합된 혼합형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 N 이 홀수이면 상기 위치들은 (a, b+y) 좌표의 상측 위치, (a, b-y) 좌표의 하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a+y, b) 좌표의 우측 위치일 수 있고, 상기 N 이 짝수이면 상기 위치들은 (a+y/2, b+y/2) 좌표의 우상측 위치, (a+y/2, b-y/2) 좌표의 우하측 위치, (a-y/2, b-y/2) 좌표의 좌하측 위치 및 (a-y, b+y) 좌표의 좌상측 위치일 수 있다.
한편, 제N 탐색 기준점의 탐색 방향을 기반으로 제N 탐색 기준점에 대한 주변 탐색점이 추가적으로 도출될 수 있다. 상기 탐색 방향은 제N-1 탐색 기준점에서 제N 탐색 기준점을 가리키는 방향일 수 있다. 예를 들어, 제N-1 탐색 기준점의 주변 탐색점들 중 우측 위치의 주변 탐색점이 상기 제N 탐색 기준점으로 도출된 경우, 상기 탐색 방향은 우측 방향일 수 있다. 이 경우, 상기 탐색 방향에 대한 가중치를 기반으로 상기 주변 탐색점이 추가적으로 도출될 수 있다. 상기 탐색 방향에 대한 가중치가 w 이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, (a, b+w*y) 의 위치가 제N 탐색 기준점에 대한 주변 탐색점으로 추가적으로 도출될 수 있다.
디코딩 장치는 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출한다(S930). 디코딩 장치는 상기 마지막으로 도출된 탐색 기준점을 가리키는 상기 움직임 정보를 상기 현재 블록의 상기 수정된(modified) 움직임 정보로 도출할 수 있다. 예를 들어, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않을 수 있고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점일 수 있다. 이 경우, 디코딩 장치는 상기 제N+1 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 상기 수정된 움직임 정보로 도출할 수 있다.
디코딩 장치는 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)한다(S940). 디코딩 장치는 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신할 수 있고, 저장할 수 있다. 디코딩 장치는 상기 현재 블록의 상기 움직임 정보를 상기 수정된 움직임 정보로 대체하여 상기 현재 블록의 상기 움직임 정보를 갱신할 수 있다. 상기 현재 블록이 서브 블록들로 분할되는 경우, 상기 갱신된 움직임 정보는 상기 현재 블록의 서브 블록의 움직임 정보를 위하여 사용될 수 있다.
한편, 비록 도면에는 도시되지 않았지만 디코딩 장치는 비트스트림을 통하여 현재 블록의 인터 예측에 대한 정보를 획득할 수 있다. 상기 현재 블록의 인터 예측에 대한 정보는 상기 현재 블록의 최대 탐색 범위에 대한 정보, 최대 탐색점 개수에 대한 정보, 최대 탐색 횟수에 대한 정보 및/또는 코스트 임계값에 대한 정보를 포함할 수 있다. 상기 최대 탐색 범위에 대한 정보, 상기 최대 탐색점 개수에 대한 정보, 상기 최대 탐색 횟수에 대한 정보 및/또는 상기 코스트 임계값에 대한 정보는 VPS(video parameter set), SPS(sequence parameter set), PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), 또는 블록 레벨에서 수신될 수 있다.
또한, 디코딩 장치는 상기 비트스트림을 통하여 상기 현재 블록의 각 서브 블록의 인터 예측에 대한 정보를 획득할 수 있다. 상기 각 서브 블록의 인터 예측에 대한 정보는 상기 각 서브 블록의 최대 탐색 범위에 대한 정보, 최대 탐색점 개수에 대한 정보, 최대 탐색 횟수에 대한 정보 및/또는 코스트 임계값에 대한 정보를 포함할 수 있다. 상기 최대 탐색 범위에 대한 정보, 상기 최대 탐색점 개수에 대한 정보, 상기 최대 탐색 횟수에 대한 정보 및/또는 상기 코스트 임계값에 대한 정보는 VPS(video parameter set), SPS(sequence parameter set), PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), 또는 블록 레벨에서 수신될 수 있다.
한편, 상기 갱신된 움직임 정보를 기반으로 상기 현재 블록의 예측 블록이 도출될 수 있고, 상기 예측 블록을 기반으로 복원 블록이 도출될 수 있다. 구체적으로, 디코딩 장치는 상기 갱신된 움직임 정보를 기반으로 예측 샘플을 생성할 수 있고, 예측 모드에 따라 상기 예측 샘플을 바로 복원 샘플로 이용할 수도 있고, 또는 상기 예측 샘플에 레지듀얼 샘플을 더하여 복원 샘플을 생성할 수도 있다. 디코딩 장치는 상기 현재 블록에 대한 레지듀얼 샘플이 존재하는 경우, 상기 비트스트림으로부터 상기 현재 블록에 대한 레지듀얼에 관한 정보를 수신할 수 있다. 상기 레지듀얼에 관한 정보는 상기 레지듀얼 샘플에 관한 변환 계수를 포함할 수 있다. 디코딩 장치는 상기 레지듀얼 정보를 기반으로 상기 현재 블록에 대한 상기 레지듀얼 샘플(또는 레지듀얼 샘플 어레이)을 도출할 수 있다. 디코딩 장치는 상기 예측 샘플과 상기 레지듀얼 샘플을 기반으로 복원 샘플을 생성할 수 있고, 상기 복원 샘플을 기반으로 복원 블록 또는 복원 픽처를 도출할 수 있다. 이후 디코딩 장치는 필요에 따라 주관적/객관적 화질을 향상시키기 위하여 디블록킹 필터링 및/또는 SAO 절차와 같은 인루프 필터링 절차를 상기 복원 픽처에 적용할 수 있음은 상술한 바와 같다.
한편, 디코딩 장치는 상기 현재 블록을 서브 블록들로 분할할 수 있다. 이 경우, 디코딩 장치는 각 서브 블록의 주변 블록들을 기반으로 상기 각 서브 블록의 움직임 정보 후보 리스트를 생성할 수 있다. 또한, 상기 각 서브 블록의 움직임 정보 후보 리스트는 상기 갱신된 움직임 정보를 움직임 정보 후보로 포함할 수 있다.
다음으로, 디코딩 장치는 상기 각 서브 블록의 움직임 정보 후보 리스트를 기반으로 상기 각 서브 블록의 움직임 정보를 도출할 수 있다. 구체적으로, 상기 움직임 정보 후보 리스트의 움직임 정보 후보들 중 가장 작은 비용 함수 값(즉, 코스트)을 가지는 움직임 정보 후보가 상기 현재 블록의 움직임 정보로 선택될 수 있다.
다음으로, 디코딩 장치는 상기 각 서브 블록의 탐색 패턴 및 상기 움직임 정보를 기반으로 상기 각 서브 블록의 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출할 수 있고, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 각 서브 블록의 수정된 움직임 정보로 도출할 수 있고, 상기 수정된 움직임 정보를 기반으로 상기 각 서브 블록의 움직임 정보를 갱신할 수 있다. 상기 각 서브 블록에 대한 탐색 기준점을 도출하는 과정은 상기 현재 블록에 대한 탐색 기준점을 도출하는 과정과 동일할 수 있다.
한편, 상기 각 서브 블록의 최대 탐색 범위는 기설정될 수 있다. 상기 각 서브 블록의 상기 최대 탐색 범위는 상기 현재 블록의 최대 탐색 범위와 동일하게 설정될 수 있고, 또는 다르게 설정될 수 있다. 또는, 상기 각 서브 블록의 상기 최대 탐색 범위를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 수신될 수 있다. 즉, 디코딩 장치는 비트스트림을 통하여 상기 각 서브 블록의 상기 최대 탐색 범위를 나타내는 정보를 획득할 수 있다. 이 경우, 상기 각 서브 블록의 상기 최대 탐색 범위는 상기 최대 탐색 범위를 나타내는 정보를 기반으로 도출될 수 있다. 또는, 상기 각 서브 블록의 상기 최대 탐색 범위는 상기 각 서브 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 각 서브 블록에 대한 최대 탐색점 개수는 기설정될 수 있다. 상기 각 서브 블록에 대한 상기 최대 탐색점 개수는 상기 현재 블록에 대한 최대 탐색점 개수와 동일하게 설정될 수 있고, 또는 다르게 설정될 수 있다. 또는, 상기 각 서브 블록에 대한 상기 최대 탐색점 개수를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 수신될 수 있다. 즉, 디코딩 장치는 비트스트림을 통하여 상기 각 서브 블록에 대한 상기 최대 탐색점 개수를 나타내는 정보를 획득할 수 있다. 이 경우, 상기 각 서브 블록에 대한 상기 최대 탐색점 개수는 상기 최대 탐색점 개수를 나타내는 정보를 기반으로 도출될 수 있다. 또는, 상기 각 서브 블록에 대한 상기 최대 탐색점 개수는 상기 각 서브 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 각 서브 블록의 상기 최대 탐색 횟수는 기설정될 수 있다. 상기 각 서브 블록의 상기 최대 탐색 횟수는 상기 현재 블록의 최대 탐색 횟수와 동일하게 설정될 수 있고, 또는 다르게 설정될 수 있다. 또는, 상기 각 서브 블록의 상기 최대 탐색 횟수를 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 수신될 수 있다. 즉, 디코딩 장치는 비트스트림을 통하여 상기 각 서브 블록의 상기 최대 탐색 횟수를 나타내는 정보를 획득할 수 있다. 이 경우, 상기 각 서브 블록의 상기 최대 탐색 횟수는 상기 최대 탐색 횟수를 나타내는 정보를 기반으로 도출될 수 있다. 또는, 상기 각 서브 블록의 상기 최대 탐색 횟수는 상기 각 서브 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다.
또한, 상기 각 서브 블록의 상기 코스트 임계값은 기설정될 수 있다. 상기 각 서브 블록의 상기 코스트 임계값은 상기 현재 블록의 코스트 임계값과 동일하게 설정될 수 있고, 또는 다르게 설정될 수 있다. 또는, 상기 각 서브 블록의 상기 코스트 임계값을 나타내는 정보는 SPS(sequence parameter set, PPS(picture parameter set), 슬라이스 세그먼트 헤더(slice segment header), CU 단위 또는 PU 단위의 신텍스를 통하여 수신될 수 있다. 즉, 디코딩 장치는 비트스트림을 통하여 상기 각 서브 블록의 상기 코스트 임계값을 나타내는 정보를 획득할 수 있다. 이 경우, 상기 각 서브 블록의 상기 코스트 임계값은 상기 코스트 임계값을 나타내는 정보를 기반으로 도출될 수 있다. 또는, 상기 각 서브 블록의 상기 코스트 임계값은 상기 각 서브 블록의 사이즈, 템포럴 ID(temporal ID), QP(quantization parameter) 또는 현재 픽처의 픽처 타입(picture type) 등을 기반으로 도출될 수 있다. 한편, 상기 마지막으로 도출된 탐색 기준점의 코스트를 기반으로 상기 현재 블록의 상기 서브 블록들의 움직임 정보들의 갱신 여부가 판단될 수 있다. 예를 들어, 상기 현재 블록의 상기 마지막으로 도출된 탐색 기준점이 상기 현재 블록의 코스트 임계값의 특정 비율보다 작거나 같은 경우, 상기 각 서브 블록의 상기 움직임 정보는 갱신되지 않을 수 있다. 또한, 상기 현재 블록의 우하단 서브 블록의 주변 블록들은 상기 우하단 서브 블록의 디코딩 시점에 디코딩되지 않은바, 상기 우하단 서브 블록의 템플릿에 포함된 복원 샘플들이 존재하지 않을 수 있다. 따라서, 상기 서브 블록들 중 상기 우하단 서브 블록의 움직임 정보는 갱신되지 않을 수 있다. 또한, 상기 현재 블록의 갱신된 움직임 정보가 상기 우하단 서브 블록의 움직임 정보로 도출될 수 있다.
상술한 본 발명에 따르면 상기 현재 블록의 수정된 움직임 정보를 계산하여 상기 현재 블록의 움직임 정보를 더욱 정확한 움직임 정보로 갱신할 수 있고, 이를 통하여 예측 효율을 향상시킬 수 있다.
또한, 본 발명에 따르면 다양한 탐색 패턴에 따라 상기 현재 블록의 수정된 움직임 정보를 계산하여 상기 현재 블록의 움직임 정보를 더욱 정확한 움직임 정보로 갱신할 수 있고, 이를 통하여 예측 효율을 향상시킬 수 있다.
또한, 본 발명에 따르면 다양한 조건을 기반으로 현재 블록의 움직임 정보를 갱신하는 과정의 탐색 회수를 제한하여 복잡도를 줄일 수 있고, 이를 통하여 전체적인 코딩 효율을 향상시킬 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타내어진 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 본 발명에 따른 방법은 소프트웨어 형태로 구현될 수 있으며, 본 발명에 따른 인코딩 장치 및/또는 디코딩 장치는 예를 들어 TV, 컴퓨터, 스마트폰, 셋톱박스, 디스플레이 장치 등의 영상 처리를 수행하는 장치에 포함될 수 있다.
본 발명에서 실시예들이 소프트웨어로 구현될 때, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다. 메모리는 프로세서 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 프로세서는 ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리는 ROM(read-only memory), RAM(random access memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다.

Claims (15)

  1. 디코딩 장치에 의하여 수행되는 영상 디코딩 방법에 있어서,
    현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계;
    상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계;
    상기 현재 블록의 탐색 패턴(search pattern) 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출하는 단계;
    마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출하는 단계; 및
    상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)하는 단계를 포함하는 것을 특징으로 하는 영상 디코딩 방법.
  2. 제1항에 있어서,
    상기 현재 블록의 상기 탐색 패턴 및 상기 움직임 정보를 기반으로 상기 제1 탐색 기준점부터 순차적으로 적어도 하나의 탐색 기준점을 도출하는 단계는,
    상기 탐색 패턴을 기반으로 제N 탐색 기준점에 대한 주변 탐색점들을 도출하는 단계;
    상기 제N 탐색 기준점 및 상기 주변 탐색점들의 코스트를 도출하는 단계;
    상기 주변 탐색점들의 코스트들 중 가장 작은 코스트가 상기 제N 탐색 기준점의 코스트보다 작은 경우, 상기 가장 작은 코스트를 갖는 주변 탐색점을 제N+1 탐색 기준점을 도출하는 단계를 포함하고,
    상기 주변 탐색점들의 코스트들 중 가장 작은 코스트가 상기 제N 탐색 기준점의 코스트보다 작지 않은 경우, 상기 제N+1 탐색 기준점을 도출하지 않고, 상기 제N 탐색 기준점이 상기 마지막으로 도출된 탐색 기준점으로 이용되며,
    상기 N은 1 이상의 정수고, 제1 탐색 기준점은 상기 움직임 정보가 가리키는 위치인 것을 특징으로 하는 영상 디코딩 방법.
  3. 제2항에 있어서,
    각 주변 탐색점의 코스트는 상기 각 주변 탐색점에 대한 참조 블록의 템플릿과 상기 현재 블록의 템플릿과의 비교를 기반으로 도출되고,
    상기 현재 블록의 템플릿은 상기 현재 블록의 주변 샘플들을 포함하는 특정 영역을 나타내고, 상기 참조 블록의 템플릿은 상기 현재 블록의 주변 샘플들에 대응하는 상기 참조 블록의 주변 샘플들을 포함하는 특정 영역을 나타내고, 상기 참조 블록은 상기 각 주변 탐색점이 좌상단 샘플인 블록인 것을 특징으로 하는 영상 디코딩 방법.
  4. 제3항에 있어서,
    상기 코스트는 다음의 수학식을 기반으로 도출되고,
    Figure PCTKR2018007396-appb-I000001
    여기서, Costdistortion 은 상기 코스트, Tempcur(i, j)는 상기 현재 블록의 상기 템플릿 내 (i, j) 좌표의 복원 샘플, Tempref(i, j)는 상기 참조 블록의 상기 템플릿 내 (i, j) 좌표의 복원 샘플을 나타내는 것을 특징으로 하는 영상 디코딩 방법.
  5. 제2항에 있어서,
    각 주변 탐색점의 코스트는 반대 방향의 참조 블록 및 상기 각 주변 탐색점에 대한 참조 블록간 대응하는 샘플들의 차이의 절대값을 기반으로 도출되고,
    상기 반대 방향의 참조 블록은 상기 각 주변 탐색점에 대한 상기 참조 블록의 방향과 반대 방향의 참조 블록을 나타내는 것을 특징으로 하는 영상 디코딩 방법.
  6. 제2항에 있어서,
    상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들로 도출되되,
    상기 위치들 중 제N-1 탐색 기준점의 위치 또는 상기 제N-1 탐색 기준점에 대한 주변 탐색점의 위치가 포함된 경우, 상기 제N-1 탐색 기준점의 위치 또는 상기 제N-1 탐색 기준점의 상기 주변 탐색점의 위치는 상기 제N 탐색 기준점에 대한 주변 탐색점으로 도출되지 않는 것을 특징으로 하는 영상 디코딩 방법.
  7. 제2항에 있어서,
    상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들로 도출되되,
    상기 위치들이 상기 현재 블록의 최대 탐색 범위를 벗어난 위치를 포함하는 경우, 상기 현재 블록의 상기 최대 탐색 범위를 벗어난 위치는 상기 제N 탐색 기준점에 대한 주변 탐색점으로 도출되지 않는 것을 특징으로 하는 영상 디코딩 방법.
  8. 제7항에 있어서,
    상기 위치들이 상기 현재 블록의 최대 탐색 범위를 벗어난 위치를 포함하는 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점인 것을 특징으로 하는 영상 디코딩 방법.
  9. 제2항에 있어서,
    상기 N 이 상기 현재 블록에 대한 최대 탐색 횟수와 동일한 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점인 것을 특징으로 하는 영상 디코딩 방법.
  10. 제2항에 있어서,
    상기 탐색 패턴을 기반으로 제N+1 탐색 기준점에 대한 주변 탐색점들을 도출하는 단계를 더 포함하고,
    상기 제N+1 탐색 기준점 내지 상기 제N+1 탐색 기준점의 주변 탐색점들의 개수가 상기 현재 블록에 대한 최대 탐색점 개수보다 큰 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점인 것을 특징으로 하는 영상 디코딩 방법.
  11. 제2항에 있어서,
    상기 주변 탐색점들의 코스트들이 상기 현재 블록의 코스트 임계값보다 작은 경우, 상기 제N+1 탐색 기준점 이후 순서의 탐색 기준점은 도출되지 않고, 상기 제N+1 탐색 기준점이 마지막으로 도출된 탐색 기준점인 것을 특징으로 하는 영상 디코딩 방법.
  12. 제2항에 있어서,
    상기 제N 탐색 기준점을 기준으로 상기 탐색 패턴에 따른 위치들이 상기 제N 탐색 기준점에 대한 상기 주변 탐색점들로 도출되고,
    상기 현재 블록의 상기 탐색 패턴이 상기 십자형 탐색 패턴이고, 상기 제N 탐색 기준점의 좌표가 (a, b) 인 경우, 상기 위치들은 (a, b+y) 좌표의 상측 위치, (a, b-y) 좌표의 하측 위치, (a-y, b) 좌표의 좌측 위치 및 (a+y, b) 좌표의 우측 위치인 것을 특징으로 하는 영상 디코딩 방법.
  13. 제2항에 있어서,
    상기 현재 블록을 서브 블록들로 분할하는 단계;
    각 서브 블록의 주변 블록들을 기반으로 상기 각 서브 블록의 움직임 정보 후보 리스트를 생성하는 단계;
    상기 각 서브 블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 각 서브 블록의 움직임 정보를 도출하는 단계;
    상기 각 서브 블록의 탐색 패턴 및 상기 움직임 정보를 기반으로 상기 각 서브 블록의 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출하는 단계;
    마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 각 서브 블록의 수정된 움직임 정보로 도출하는 단계; 및
    상기 수정된 움직임 정보를 기반으로 상기 각 서브 블록의 상기 움직임 정보를 갱신(update)하는 단계를 더 포함하는 것을 특징으로 하는 영상 디코딩 방법.
  14. 제13항에 있어서,
    상기 현재 블록의 상기 마지막으로 도출된 탐색 기준점이 상기 현재 블록의 코스트 임계값의 특정 비율보다 작거나 같은 경우, 상기 각 서브 블록의 상기 움직임 정보는 갱신되지 않는 것을 특징으로 하는 영상 디코딩 방법.
  15. 영상 디코딩을 수행하는 디코딩 장치에 있어서,
    비트스트림을 통하여 현재 블록의 인터 예측에 대한 정보를 획득하는 엔트로피 디코딩부; 및
    상기 현재 블록의 주변 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보 리스트를 생성하고, 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하고, 상기 현재 블록의 탐색 패턴(search pattern) 및 상기 움직임 정보를 기반으로 제1 탐색 기준점부터 순차적으로 적어도 하나의 다음 탐색 기준점을 도출하고, 마지막으로 도출된 탐색 기준점을 가리키는 움직임 정보를 상기 현재 블록의 수정된(modified) 움직임 정보로 도출하고, 상기 수정된 움직임 정보를 기반으로 상기 현재 블록의 상기 움직임 정보를 갱신(update)하는 예측부를 포함하는 것을 특징으로 하는 디코딩 장치.
PCT/KR2018/007396 2017-07-03 2018-06-29 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 WO2019009567A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762528418P 2017-07-03 2017-07-03
US62/528,418 2017-07-03
US201762534646P 2017-07-19 2017-07-19
US62/534,646 2017-07-19

Publications (1)

Publication Number Publication Date
WO2019009567A1 true WO2019009567A1 (ko) 2019-01-10

Family

ID=64950202

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/007396 WO2019009567A1 (ko) 2017-07-03 2018-06-29 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2019009567A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120096471A (ko) * 2009-10-20 2012-08-30 톰슨 라이센싱 움직임 벡터 예측 및 미세조정
KR20140076586A (ko) * 2011-11-07 2014-06-20 인포브릿지 피티이 엘티디 영상 복호화 장치
US20150078451A1 (en) * 2005-04-14 2015-03-19 Fastvdo Llc Device and Method for Fast Block-Matching Motion Estimation in Video Encoders
US20160286229A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Motion vector derivation in video coding
US20170094305A1 (en) * 2015-09-28 2017-03-30 Qualcomm Incorporated Bi-directional optical flow for video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150078451A1 (en) * 2005-04-14 2015-03-19 Fastvdo Llc Device and Method for Fast Block-Matching Motion Estimation in Video Encoders
KR20120096471A (ko) * 2009-10-20 2012-08-30 톰슨 라이센싱 움직임 벡터 예측 및 미세조정
KR20140076586A (ko) * 2011-11-07 2014-06-20 인포브릿지 피티이 엘티디 영상 복호화 장치
US20160286229A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Motion vector derivation in video coding
US20170094305A1 (en) * 2015-09-28 2017-03-30 Qualcomm Incorporated Bi-directional optical flow for video coding

Similar Documents

Publication Publication Date Title
WO2018221817A1 (ko) 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치
WO2017164645A2 (ko) 비디오 신호 부호화/복호화 방법 및 장치
WO2017188566A1 (ko) 영상 코딩 시스템에서 인터 예측 방법 및 장치
WO2017222325A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018105757A1 (ko) 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
WO2017179835A1 (ko) 인트라 예측 기반의 비디오 신호 처리 방법 및 장치
WO2020166897A1 (ko) Dmvr 기반의 인터 예측 방법 및 장치
WO2017164441A1 (ko) 비디오 코딩 시스템에서 인터 예측 방법 및 장치
WO2018236051A1 (ko) 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치
WO2018008905A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019117634A1 (ko) 2차 변환에 기반한 영상 코딩 방법 및 그 장치
WO2019117639A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2019117640A1 (ko) 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
WO2011096770A2 (ko) 영상 부호화/복호화 장치 및 방법
WO2017082443A1 (ko) 영상 코딩 시스템에서 임계값을 이용한 적응적 영상 예측 방법 및 장치
WO2016159610A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018044089A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018021585A1 (ko) 영상 코딩 시스템에서 인트라 예측 방법 및 장치
WO2016085231A1 (ko) 비디오 신호 처리 방법 및 장치
WO2021137597A1 (ko) Ols에 대한 dpb 파라미터를 사용하는 영상 디코딩 방법 및 그 장치
WO2016122253A1 (ko) 비디오 신호 처리 방법 및 장치
WO2016122251A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019182329A1 (ko) 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체
WO2019013363A1 (ko) 영상 코딩 시스템에서 주파수 도메인 잡음 감소 방법 및 장치
WO2017195917A1 (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: 18828875

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: 18828875

Country of ref document: EP

Kind code of ref document: A1