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

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

Info

Publication number
WO2019066602A1
WO2019066602A1 PCT/KR2018/011615 KR2018011615W WO2019066602A1 WO 2019066602 A1 WO2019066602 A1 WO 2019066602A1 KR 2018011615 W KR2018011615 W KR 2018011615W WO 2019066602 A1 WO2019066602 A1 WO 2019066602A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion information
block
current block
sub
search range
Prior art date
Application number
PCT/KR2018/011615
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 WO2019066602A1 publication Critical patent/WO2019066602A1/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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 method and apparatus for inter prediction in a video coding system.
  • the image data has high resolution and high quality, the amount of information or bits to be transmitted increases relative to the existing image data. Therefore, the image data can be transmitted using a medium such as a wired / wireless broadband line, When stored, the transmission cost and the storage cost are increased.
  • 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 an apparatus for efficiently deriving motion information in performing modified inter prediction.
  • Another aspect of the present invention is to provide a method and apparatus for setting a search range for deriving motion information in deriving motion information to perform modified inter prediction.
  • an image decoding method performed by a decoding apparatus includes generating a motion information candidate list of the current block including motion information candidates of the current block based on neighboring blocks of the current block, The method of claim 1, further comprising: deriving motion information of the current block; setting a search range of the current block based on the motion information of the current block; setting the search range of the current block and the motion of the current block And generating a motion information candidate list of a sub-block of the current block based on the motion information of the current block, wherein the motion information candidate list of the sub- The motion information candidates of the block include the refined motion of the current block And extracting motion information of the subblock based on the motion information candidate list of the subblock, calculating motion information of the subblock based on the motion information and the motion information of the subblock, Generating refined motion information of the sub-block based on the search range, generating prediction samples in the sub-block based on the refined motion information of the sub-block
  • a decoding apparatus for performing image decoding.
  • the decoding apparatus generates a motion information candidate list of the current block including motion information candidates of the current block based on neighboring blocks of the current block,
  • the search range of the current block is determined based on the motion information of the current block and the motion information of the current block is determined based on the motion information of the current block,
  • And generating motion information candidate lists of subblocks of the current block wherein the motion information candidate list of the current block includes motion information of the subblocks included in the motion information candidate list of the subblock,
  • the candidates are classified into the refined motion information of the current block and the motion information of the sub- Block based on the motion information candidate list of the sub-block, derives the motion information of the sub-block based on the motion information candidate list of the sub-block, and generates motion information of the sub-block based on the motion information of the sub-
  • a prediction unit for deriving refined motion information of the sub-block and generating prediction samples in the sub-block based on the refined
  • an image encoding method performed by an encoding apparatus includes generating a motion information candidate list of the current block including motion information candidates of the current block based on neighboring blocks of the current block, The method of claim 1, further comprising: deriving motion information of the current block; setting a search range of the current block based on the motion information of the current block; setting the search range of the current block and the motion of the current block And generating a motion information candidate list of a sub-block of the current block based on the motion information of the current block, wherein the motion information candidate list of the sub- The motion information candidates of the block include the refined motion of the current block And extracting motion information of the subblock based on the motion information candidate list of the subblock, calculating motion information of the subblock based on the motion information and the motion information of the subblock, Deriving the refined motion information of the sub-block based on the search range, and encoding the image information including the refined motion information of the sub-block.
  • an encoding apparatus for performing image encoding.
  • the encoding apparatus generates a motion information candidate list of the current block including motion information candidates of the current block based on neighboring blocks of the current block,
  • the search range of the current block is derived based on the motion information of the current block and the search range of the current block is determined based on the search range of the current block and the motion information of the current block
  • a motion information candidate list of subblocks of the current block is generated, and motion information candidates of subblocks included in the motion information candidate list of the subblock are generated, Of the current block and the refined motion information of the current block Block based on the motion information candidate list of the sub-block and derives the motion information of the sub-block based on the motion information candidate list of the sub-block, and based on the motion information of the sub-block and the search range for the sub-
  • an entropy encoding unit that encodes the image information including the refined motion information of the sub-block.
  • the present invention it is possible to reduce the memory access for setting the search range in the process of deriving the motion information based on the modified inter prediction mode.
  • FIGS. 1A to 1C are views schematically illustrating the configuration and operation of an encoding apparatus to which the present invention can be applied.
  • FIGS. 2A to 2C are views for schematically explaining the configuration and operation of a decoding apparatus to which the present invention can be applied.
  • FIGS. 3A and 3B are diagrams illustrating examples of deriving motion information candidates of subblocks of a current block based on a search range according to an embodiment.
  • 4A to 4C are diagrams illustrating an example in which a search range of a current block and a search range of a sub-block according to an embodiment are set.
  • FIG. 5 is a diagram illustrating an example in which a search range of a current block and a search range of a sub-block according to another embodiment are set.
  • FIG. 6 is a flowchart illustrating a method of encoding an image by an encoding apparatus according to an embodiment.
  • FIG. 7 is a flowchart illustrating an image decoding method by a decoding apparatus according to an embodiment.
  • 8A and 8B are flowcharts illustrating a process of generating a motion information candidate list of a sub-block according to an embodiment.
  • FIG. 9 is a flowchart illustrating a process of deriving motion information of a sub-block according to an embodiment.
  • an image decoding method performed by a decoding apparatus includes generating a motion information candidate list of the current block including motion information candidates of the current block based on neighboring blocks of the current block, The method of claim 1, further comprising: deriving motion information of the current block; setting a search range of the current block based on the motion information of the current block; setting the search range of the current block and the motion of the current block And generating a motion information candidate list of a sub-block of the current block based on the motion information of the current block, wherein the motion information candidate list of the sub- The motion information candidates of the block include the refined motion of the current block And extracting motion information of the subblock based on the motion information candidate list of the subblock, calculating motion information of the subblock based on the motion information and the motion information of the subblock, Generating refined motion information of the sub-block based on the search range, generating prediction samples in the sub-block based on the refined motion information of the sub-block
  • 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.
  • FIGS. 1A to 1C are views schematically illustrating the configuration and operation of an encoding apparatus to which the present invention can be applied.
  • FIG. 1A is a schematic view illustrating a configuration of an encoding apparatus to which the present invention can be applied.
  • FIG. 1A is a schematic view illustrating a configuration of an encoding apparatus to which the present invention can be applied.
  • an 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, as shown in FIG.
  • 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
  • a motion vector of a current block can be derived using a motion vector of a neighboring block as a motion vector predictor.
  • 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 reference picture list 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.
  • the entropy encoding unit 130 may derive residual information on the quantized transform coefficients and entropy-encode the residual information.
  • 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)
  • 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 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 bitstream may be transmitted over a network or stored in a digital storage medium.
  • the network may include a broadcasting network and / or a communication network
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
  • 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.
  • Embodiments of the present invention may be embodied in the art relating to inter-prediction, with reference to the flow diagram of FIG. 1B and the block diagram of FIG. 1C below.
  • FIG. 1B is a flowchart showing an example of an image encoding procedure based on inter prediction
  • FIG. 1C is a block diagram showing an example of an inter prediction unit included in the encoding apparatus
  • the prediction unit 110 may include an inter-prediction unit 170 according to an embodiment of the present invention.
  • Step 192 may be performed by the inter-prediction unit 170 of the encoding apparatus, and step 194 may be performed by the residual processing unit of the encoding apparatus. Specifically, step 194 may be performed by the subtracting unit 121 of the encoding apparatus.
  • the prediction information is derived by the inter prediction unit 170 and can be encoded by the entropy encoding unit 130.
  • the residual information is derived by the residual processing unit and can be encoded by the entropy encoding unit 130.
  • the residual information is information on the residual samples.
  • the residual information may include information on quantized transform coefficients for the residual samples.
  • the residual samples are derived as transform coefficients through the transform unit 122 of the encoding apparatus, and the transform coefficients can be derived as quantized transform coefficients through the quantization unit 123.
  • Information regarding the quantized transform coefficients may be encoded in the entropy encoding unit 130 through a residual coding procedure.
  • the encoding device performs an inter prediction on the current block (step 192).
  • the encoding apparatus can derive the inter prediction mode and motion information of the current block and generate prediction samples of the current block.
  • the inter prediction mode decision, the motion information derivation, and the prediction samples generation procedure may be performed simultaneously, and one procedure may be performed before the other procedure.
  • the inter-prediction unit 170 of the encoding apparatus may include a prediction mode determination unit 171, a motion information derivation unit 172, and a prediction sample derivation unit 173,
  • the motion information deriving unit 172 derives the motion information of the current block
  • the prediction sample deriving unit 173 derives motion samples of the current block.
  • the inter-prediction unit 170 of the encoding apparatus searches for a block similar to the current block in a certain area (search area) of reference pictures through motion estimation, It is possible to derive a reference block having a minimum or a predetermined reference or less.
  • a reference picture index indicating a reference picture in which the reference block is located may be derived and a motion vector may be derived based on a difference between the reference block and the current block.
  • the encoding apparatus may determine a mode to be applied to the current block among various prediction modes.
  • the encoding device may compare the RD cost for the various prediction modes and determine an optimal prediction mode for the current block.
  • the encoding apparatus constructs a merge candidate list, which will be described later, and sets the merged candidate list to be merged with the current block among the reference blocks indicated by merge candidates included in the merge candidate list It is possible to derive a reference block whose difference from the current block is a minimum or a predetermined reference or less.
  • the merged candidate associated with the derived reference block is selected, and merge index information indicating the selected merge candidate is generated and signaled to the decoding device.
  • the motion information of the current block can be derived using the motion information of the selected merge candidate.
  • the encoding apparatus constructs a (A) MVP candidate list, which will be described later, and selects among mvp (motion vector predictor) candidates included in the (A) MVP candidate list
  • the motion vector of the selected mvp candidate can be used as the mvp of the current block.
  • a motion vector indicating a reference block derived by the above-described motion estimation may be used as a motion vector of the current block, and a difference between the mvp candidates and the motion vector of the current block is the smallest
  • An mvp candidate having a motion vector may become the selected mvp candidate.
  • a motion vector difference which is a difference obtained by subtracting the mvp from the motion vector of the current block can be derived.
  • the information on the MVD can be signaled to the decoding apparatus.
  • the value of the reference picture index may be signaled to the decoding apparatus separately from reference picture index information.
  • the encoding device may derive residual samples based on the prediction samples (step 194).
  • the encoding apparatus may derive the residual samples through comparison of the original samples of the current block and the prediction samples.
  • the encoding apparatus encodes the image information including the prediction information and the residual information (step 196).
  • the encoding apparatus can output the encoded image information in the form of a bit stream.
  • the prediction information may include prediction mode information such as a skip flag, a merge flag or a mode index, and information on motion information.
  • the information on the motion information may include candidate selection information (e.g., merge index, mvp flag or mvp index) for deriving a motion vector.
  • the information on the motion information may include the MVD information and / or the reference picture index information.
  • the information on the motion information may include information indicating whether L0 prediction, L1 prediction, or bi prediction is applied.
  • the residual information is information on the residual samples.
  • the residual information may include information on quantized transform coefficients for the residual samples.
  • the output bitstream may be stored in a (digital) storage medium and transferred to a decoding device, or may be transferred to a decoding device via a network.
  • the encoding apparatus may generate a reconstructed picture (including reconstructed samples and reconstruction blocks) based on the reference samples and the residual samples. This is because the same prediction result as that performed in the decoding apparatus is derived from the encoding apparatus, and coding efficiency can be increased through this. Accordingly, the encoding apparatus stores the reconstructed picture (or reconstructed samples, reconstructed block) in a memory and can utilize it as a reference picture for inter prediction. An in-loop filtering procedure may be further applied to the reconstructed picture as described above.
  • the inter-prediction unit 170 may generate a motion information candidate list of a current block including motion information candidates of the current block based on neighboring blocks of the current block.
  • the inter-prediction unit 170 may derive motion information of the current block based on the motion information candidate list of the current block.
  • the inter prediction unit 170 can set the search range of the current block based on the motion information of the current block.
  • the inter-prediction unit 170 may derive refined motion information of the current block based on the search range of the current block and the motion information of the current block.
  • the inter-prediction unit 170 may generate a motion information candidate list of sub-blocks of the current block.
  • the motion information candidates of the sub-blocks included in the motion information candidate list of the sub-block may be derived based on the refined motion information of the current block and neighboring blocks of the sub-block.
  • the inter-prediction unit 170 may generate the motion information candidate list of the sub-block based on the refined motion information of the current block and the neighboring blocks of the sub-block, while considering the search range for the sub-block.
  • the search range for the sub-block may be the same as the search range of the current block.
  • the inter-prediction unit 170 predicts motion information of the sub-block based on the refined motion information of the current block and the motion information candidates of the sub-block derived based on the neighboring blocks of the sub-
  • the motion information candidate list of the sub-block can be generated based on whether or not the motion information candidate list is included in the search range.
  • a motion information candidate in which the position indicated by the motion vector is included in the search range for the sub-block among the motion information candidates of the sub-block may be included in the motion information candidate list of the sub-block.
  • the motion information candidate derived based on the neighboring block of the sub- May be included in the motion information candidate list.
  • the inter-prediction unit 170 may derive the motion information of the sub-block based on the motion information candidate list of the sub-block.
  • the inter-prediction unit 170 may derive refined motion information of the sub-block based on the motion information of the sub-block and the search range for the sub-block.
  • the entropy encoding unit 130 of the encoding apparatus 100 may encode image information including motion information of a refined sub-block.
  • the encoded image information may be transmitted from the encoding apparatus 100 to the decoding apparatus.
  • the encoding apparatus 100 can derive the search range of the current block based on the motion information of the current block and the search range of the subblock of the current block can be set equal to the search range of the current block . That is, since the encoding apparatus 100 according to the embodiment does not perform a separate operation for deriving the search range of the sub-block, the memory access required to derive the search range of the sub-block can be reduced, The coding efficiency of the information can be improved overall.
  • FIGS. 2A to 2C are views for schematically explaining the configuration and operation of a decoding apparatus to which the present invention can be applied.
  • FIG. 2A schematically illustrates a configuration of a decoding apparatus to which the present invention can be applied.
  • the 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 can do.
  • the residual processing unit 220 may include a rearrangement unit 221, an inverse quantization unit 222, and an inverse transformation unit 223.
  • the decoding apparatus 200 can restore video in response to a process in which video information is processed in the encoding apparatus.
  • the decoding apparatus 200 can perform video decoding using a processing unit applied in the 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 required for inter prediction of a current block provided in the 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.
  • 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 inter prediction performed by the prediction units 110 and 230 may include modified inter prediction.
  • the modified inter prediction may include, but is not limited to, Frame Rate-Up Conversion (FRUC), Decoder Side Motion Vector Derivation (DMVD), and the like.
  • Embodiments of the present invention may be embodied in the art relating to inter prediction, through the description of the flow of FIG. 2B and the block diagram of FIG. 2C below.
  • FIG. 2B is a flowchart showing an example of an image decoding procedure based on inter prediction
  • FIG. 2C is a block diagram showing an example of an inter prediction unit included in the decoding apparatus
  • the prediction unit 230 may include an inter-prediction unit 270 according to an embodiment of the present invention.
  • the decoding apparatus can perform an operation corresponding to the operation performed in the encoding apparatus.
  • the decoding apparatus can perform prediction on the current block based on the received prediction information and derive prediction samples.
  • Steps 291 to 293 may be performed by the inter-prediction unit 270 of the decoding apparatus, and the residual information of step 294 may be obtained from the bit stream by the entropy decoding unit 210 of the decoding apparatus.
  • the residual processing unit of the decoding apparatus can derive residual samples for the current block based on the residual information.
  • the inverse quantization unit 222 of the residual processing unit performs inverse quantization based on the quantized transform coefficients derived based on the residual information to derive the transform coefficients, and outputs the transform coefficients to the inverse transform unit 223 may perform inverse transform on the transform coefficients to derive residual samples for the current block.
  • Step 295 may be performed by the adder 240 or the reconstruction unit of the decoding apparatus.
  • the decoding apparatus may determine a prediction mode for the current block based on the received prediction information (step 291).
  • the decoding apparatus can determine which inter prediction mode is applied to the current block based on the prediction mode information in the prediction information.
  • the merge mode is applied to the current block or (A) the MVP mode is determined based on the merge flag.
  • one of various inter prediction mode candidates based on the mode index may include a skip mode, a merge mode, and / or an (A) MVP mode, or may include various inter prediction modes described below.
  • the decoding apparatus derives motion information of the current block based on the determined inter prediction mode (step 292). For example, when a skip mode or merge mode is applied to the current block, the decoding apparatus can construct a merge candidate list, which will be described later, and select one merge candidate among merge candidates included in the merge candidate list. The selection may be performed based on the above-described merge index.
  • the motion information of the current block can be derived using the motion information of the selected merge candidate.
  • the motion information of the selected merge candidate may be used as motion information of the current block.
  • the decoding apparatus constructs a (A) MVP candidate list, which will be described later, and decodes the MVP candidates included in the MVP candidate list
  • the motion vector of the selected mvp candidate can be used as the mvp of the current block.
  • the selection may be performed based on the above-described selection information (mvp flag or mvp index).
  • the MVD of the current block can be derived based on the MVD information
  • the motion vector of the current block can be derived based on the mvp of the current block and the MVD.
  • the reference picture index of the current block can be derived based on the reference picture index information.
  • a picture indicated by the reference picture index in the reference picture list related to the current block may be derived as a reference picture referred to for inter-prediction of the current block.
  • motion information of the current block can be derived without a candidate list configuration as described later.
  • motion information of the current block can be derived according to a procedure started in a prediction mode described later.
  • the candidate list configuration as described above may be omitted.
  • the decoding apparatus may generate prediction samples for the current block based on motion information of the current block (S1120).
  • the reference picture may be derived based on the reference picture index of the current block, and the prediction samples of the current block may be derived using samples of the reference block indicated by the motion vector of the current block on the reference picture.
  • a prediction sample filtering procedure for all or some of the prediction samples of the current block may be further performed.
  • the inter-prediction unit 270 of the decoding apparatus may include a prediction mode determination unit 271, a motion information derivation unit 272, and a prediction sample derivation unit 273, (Motion vector and / or motion vector) of the current block on the basis of the information on the motion information received by the motion information deriving unit 272.
  • a prediction mode determination unit 271 a motion information derivation unit 272
  • a prediction sample derivation unit 273, Motion vector and / or motion vector of the current block on the basis of the information on the motion information received by the motion information deriving unit 272.
  • a reference picture index, and the like can derive prediction samples of the current block.
  • the decoding apparatus generates residual samples for the current block based on the received residual information (step 294).
  • the decoding apparatus may generate reconstruction samples for the current block based on the prediction samples and the residual samples, and may generate reconstructed pictures based on the reconstructed samples. (Step 295). Thereafter, an in-loop filtering procedure or the like may be further applied to the reconstructed picture as described above.
  • the inter prediction process may include an inter prediction mode determination step, a motion information derivation step according to the determined prediction mode, and a prediction execution (prediction sample generation) step based on the derived motion information.
  • the inter-prediction unit 270 may generate a motion information candidate list of a current block including motion information candidates of the current block based on neighboring blocks of the current block.
  • the inter prediction unit 270 can derive motion information of the current block based on the motion information candidate list of the current block.
  • the inter prediction unit 270 can set the search range of the current block based on the motion information of the current block.
  • the inter-prediction unit 270 may derive refined motion information of the current block based on the search range of the current block and the motion information of the current block.
  • the inter prediction unit 270 can generate a motion information candidate list of sub-blocks of the current block.
  • the motion information candidates of the sub-blocks included in the motion information candidate list of the sub-block may be derived based on the refined motion information of the current block and neighboring blocks of the sub-block.
  • the inter prediction unit 270 may generate the motion information candidate list of the sub-block based on the refined motion information of the current block and the neighboring blocks of the sub-block, while considering the search range for the sub-block.
  • the search range for the sub-block may be the same as the search range of the current block.
  • the inter-prediction unit 270 predicts motion information of the sub-block based on the refined motion information of the current block and the motion information candidates of the sub-block derived based on the neighboring blocks of the sub-
  • the motion information candidate list of the sub-block can be generated based on whether or not the motion information candidate list is included in the search range.
  • a motion information candidate in which the position indicated by the motion vector is included in the search range for the sub-block among the motion information candidates of the sub-block may be included in the motion information candidate list of the sub-block.
  • the motion information candidate derived based on the neighboring block of the sub- May be included in the motion information candidate list.
  • the inter prediction unit 270 may derive the motion information of the sub-block based on the motion information candidate list of the sub-block.
  • the inter-prediction unit 270 may derive the refined motion information of the sub-block based on the motion information of the sub-block and the search range for the sub-block.
  • the inter-prediction unit 270 may generate prediction samples in the sub-block based on the refined motion information of the sub-block.
  • the reconstruction unit 240 of the decoding apparatus 200 may generate a reconstructed picture based on the predicted samples.
  • the decoding apparatus 200 can derive the search range of the current block based on the motion information of the current block and the search range of the subblock of the current block can be set equal to the search range of the current block . That is, since the decoding apparatus 200 according to the embodiment does not perform a separate operation for deriving the search range of the sub-block, the memory access required for deriving the search range of the sub-block can be reduced, The coding efficiency of the information can be improved overall.
  • the inter-prediction units 170 and 270 may set a search range for deriving the motion information.
  • various embodiments related to the search range of the current block or the current block will be described with reference to FIG. 3A to FIG.
  • FIGS. 3A and 3B are diagrams illustrating examples of deriving motion information candidates of subblocks of a current block based on a search range according to an embodiment.
  • search range may refer to an area located in a reference picture of a processing unit, which is a reference in deriving the motion information of the processing unit.
  • the processing unit may be, for example, a coding unit, a prediction unit, a current block, a sub-block of the current block, and the like, as described above, but is not limited thereto.
  • motion information may mean information necessary for inter prediction. More specifically, the motion information may mean information necessary for detecting a prediction block for inter prediction of the processing unit, but the motion information is not limited thereto.
  • the motion information may include, for example, a motion vector, a reference picture index, a flag, and the like.
  • 3A shows a case where motion information candidates of a sub-block 310 are positioned at positions 331 (see FIG. 3A) indicated in a reference picture 320 based on the search range 330 and the position of a sub-block 310 in a sub- , 332, 333, 334, 335, 336).
  • the search range 330 of the sub-block 310 may be set based on the search range of the current block.
  • the search range 330 of the sub-block 310 may be the same as the search range of the current block.
  • the motion information candidates of sub-block 310 include motion information based on a spatial candidate block of sub-block 310, unilateral motion information, temporal motion (TMVP) Vector Prediction) motion information, Advanced Temporal Motion Vector Prediction (ATMVP) motion information, and / or Advanced Temporal Motion Vector Prediction Extended (ATMVP-ext) motion information.
  • TMVP temporal motion
  • ATMVP Advanced Temporal Motion Vector Prediction
  • ATMVP-ext Advanced Temporal Motion Vector Prediction Extended
  • the object to which the motion information candidates of the sub-block 310 can include is not limited thereto.
  • the TMVP motion information may include motion information based on a right-bottom block of the sub-block 310 or motion information of a temporal reference block based on a center position of the sub-block 310, It can mean that The ATMVP motion information may refer to motion information of a temporal reference block at a position indicated by motion information of a neighboring block of the subblock 310.
  • the ATMVP-ext motion information may be motion information acquired on a sub-block basis using two spatial neighboring blocks and two temporal neighboring blocks of the sub-block 310.
  • the motion information of the temporal reference block at the position indicated by the motion information of the neighboring block of the sub-block 310 is defined as " ATMVP motion information ".
  • ATMVP motion information may be replaced by various terms such as ATMVP information, motion information derived through the ATMVP method, TMVP-advanced motion information, and the like.
  • the third motion candidate and the fourth motion candidate of the sub-block 310 based on the position of the sub-block 310 without being included in the search range 330 of the sub-block 310, , 333, and 334 are included in the search range 330 of the sub-block 310.
  • FIG. 3B illustrates an example in which the motion information candidates of the sub-block 310 are classified based on the search range 320 of the sub-block 310.
  • the fifth motion candidate, and the sixth motion candidate of the sub-block 310 are classified as unselected candidates because they are not included in the search range 330 of the search block 310 of FIG.
  • the positions 332, 333, and 334 indicated by the second motion candidate, the third motion candidate, and the fourth motion candidate of the sub-block 310 on the basis of the position of the sub- It is confirmed that the second motion candidate, the third motion candidate, and the fourth motion candidate of the sub-block 310 are classified as selection candidates because they are included in the search range 330.
  • the motion information candidate list of the sub-block 310 may be a list in which motion information candidates of the sub-block 310 are classified based on the search range 320 of the sub-block 310. 3B, positions 332, 333, and 334 indicated by the second motion candidate, the third motion candidate, and the fourth motion candidate of the sub-block 310 are stored in the search range 330 of the sub-block 310
  • the second motion candidate, the third motion candidate, and the fourth motion candidate of the sub-block 310 may be included in the motion information candidate list of the sub-block 310.
  • the motion information of the sub-block 310 may be derived from motion information candidates included in the motion information candidate list of the sub-block 310. A more detailed process of deriving the motion information of the sub-block 310 will be described later with reference to FIG.
  • the search range 320 of the sub-block 310 is not always used.
  • 3A and 3B are embodiments related to the case where the search range 320 of the sub-block 310 is the same as the search range of the current block.
  • the search range 320 of the sub- The search range of the current block need not be separately set or generated in units of the search block 310 and can be used as the search range 320 of the sub block 310.
  • the search range 320 of the sub-block 310 when the search range 320 of the sub-block 310 is not the same as the search range of the current block, when generating the motion information candidate list of the sub-block 310, the search range 320 of the sub- The search range 320 of the sub-block 310 may not be considered in generating the motion information candidate list of the sub-block 310. In this case,
  • 4A to 4C are diagrams illustrating an example in which a search range of a current block and a search range of a sub-block according to an embodiment are set.
  • 4A and 4B illustrate an example in which the search range of the current block is derived based on the motion information of the current block, and the search range of the sub-block is separately derived based on the motion information of the sub-block.
  • the search range 412 of the current block in the reference picture 410 is derived based on the motion information of the current block, and the search range 414 of the sub-block is separately derived from the motion information 415 of the sub- .
  • the search range 412 of the current block is partially overlapped with the search range 414 of the sub-block but is different from each other.
  • the search range 422 of the current block in the reference picture 420 is derived based on the motion information of the current block, and the search range 424 of the sub-block is separately derived from the motion information 425 of the sub- .
  • the search range 422 of the current block is different from that of the search range 424 of the sub-block.
  • the decoding apparatus 200 performs memory access in the process of setting the search range of the current block, and in the process of setting the search range of the sub-block, , It is possible to request memory access twice as close as in the case of performing memory access only in the process of setting the search range of the current block.
  • the search range 432 of the current block and the search range 432 of the sub-block in the reference picture 430 are identical.
  • the search range 432 of the current block is derived based on the motion information of the current block, and the search range 432 of the sub-block is not derived separately in units of sub-blocks and is the same as the search range 432 of the current block Can be set.
  • the motion information 433 of the subblock can be derived in the search range 432 of the subblock and the prediction can be performed in the search range 432 of the subblock based on the derived motion information 433 .
  • the derived motion information 433 may be refined in the search range 432 of the sub-block, and a more detailed description of the refinement of the motion information will be described later with reference to FIG.
  • the decoding device 200 performs the memory access and sets the search range of the sub-block,
  • the search range of the subblock can be set to be the same as the search range of the current block after performing the memory access only in the process of setting the search range of the current block.
  • the decoding apparatus 200 performs memory access in the process of setting the search range of the current block and performs memory access again in the process of setting the search range of the sub-block Only about half of the memory accesses may be required, as compared to the embodiment of Figures 4A or 4B.
  • the memory accesses of the decoding apparatus 200 according to the embodiment of FIG. 4C and the memory accesses of the decoding apparatus 200 according to the embodiment of FIG. 4A or 4B can be compared, for example, as shown in Table 1 below.
  • a memory access of 210 KB is required for the decoding apparatus 200
  • a memory access of 420 KB is required for the decoding apparatus 200 according to the embodiment of FIG. 4A or 4B . That is, referring to Table 1, it can be seen that according to the embodiment of FIG. 4C, the decoding apparatus 200 can reduce memory access by about half when compared to the embodiment of FIG. 4A or FIG. 4B.
  • the memory access comparison according to Table 1 is merely an example, and one of ordinary skill in the art will readily understand that, in some cases, the result values of Table 1 may be derived with some error.
  • FIG. 5 is a diagram illustrating an example in which a search range of a current block and a search range of a sub-block according to another embodiment are set.
  • the search range 510 of the current block in the reference picture 500 is derived on the basis of the motion information 512 of the current block, and the search range 520 of the sub-block, separately from the motion information 512 of the current block, (522). ≪ / RTI > At this time, it can be seen that the size of the search range 510 of the current block is different from the size of the search range 520 of the sub-block.
  • the size of the search range 520 of the sub-block in FIG. 5 may be smaller than the size of the search range 510 of the current block. If the search range of each sub-block of the current block is to be set, if the size of the search range 520 of the sub-block is large, the decoding apparatus 200 may have to perform an excessive memory access. 5, by setting the size of the search range 520 of the sub-block to be smaller than the size of the search range 510 of the current block, an excessive memory access is required to the decoding device 200 Can be prevented.
  • the size of the search range 520 of the sub-block does not necessarily have to be smaller than the size of the search range 510 of the current block. Even if the size of the search range 510 of the current block is reduced, Access can be reduced.
  • the memory access of the decoding apparatus 200 can be efficiently performed by adjusting the size of the search range 510 of the current block and the size of the search range 520 of the sub-block as necessary .
  • FIG. 6 is a flowchart illustrating a method of encoding an image by an encoding apparatus according to an embodiment.
  • Each step disclosed in FIG. 6 may be performed by the encoding apparatus 100 disclosed in FIG. 1A. 6 may be performed by the predicting unit 110 of the encoding apparatus 100 and step 670 of FIG. 6 may be performed by the entropy encoding unit 130 of the encoding apparatus 100 ). Therefore, in describing each step of FIG. 6, detailed description overlapping with the above-described contents in FIGS. 1A to 1C will be omitted or simply omitted.
  • steps 600 to 660 of FIG. 6 can be performed based on the same principle as the operations of the decoding apparatus 200 described later in steps 700 to 760 of FIG. 7 , And a detailed description of steps 600 to 660 of FIG. 6 will be described later in steps 700 to 760 of FIG.
  • the encoding apparatus 100 may generate a motion information candidate list of the current block including motion information candidates of the current block based on neighboring blocks of the current block.
  • the encoding apparatus 100 may derive the motion information of the current block based on the motion information candidate list of the current block.
  • the encoding apparatus 100 may set the search range of the current block based on motion information of the current block.
  • the encoding apparatus 100 may derive refined motion information of the current block based on the search range of the current block and the motion information of the current block.
  • the encoding apparatus 100 may generate a motion information candidate list of subblocks of the current block.
  • the motion information candidates of the sub-blocks included in the motion information candidate list of the sub-block may be derived based on the refined motion information of the current block and neighboring blocks of the sub-block.
  • the encoding apparatus 100 may generate the motion information candidate list of the subblock based on the refined motion information of the current block and the neighboring blocks of the subblock, taking into account the search range for the subblock.
  • the search range for the sub-block may be the same as the search range of the current block.
  • the encoding apparatus 100 determines whether motion information candidates of subblocks derived based on refined motion information of the current block and neighboring blocks of the subblock are located in a reference picture of the subblock,
  • the motion information candidate list of the sub-block can be generated based on whether or not the sub-block is included in the range.
  • a motion information candidate in which the position indicated by the motion vector is included in the search range for the sub-block among the motion information candidates of the sub-block may be included in the motion information candidate list of the sub-block.
  • the motion information candidate derived based on the neighboring block of the sub- May be included in the motion information candidate list.
  • the encoding apparatus 100 may derive the motion information of the sub-block based on the motion information candidate list of the sub-block.
  • the encoding apparatus 100 may derive the refined motion information of the sub-block based on the motion information of the sub-block and the search range for the sub-block.
  • the encoding apparatus 100 may encode image information including prediction information indicating refined motion information of a sub-block.
  • the prediction information may include a flag indicating whether the modified inter-prediction mode is applied.
  • the prediction information may include a FRUC mode flag indicating whether the FRUC mode is applied or not. When the FRUC mode flag indicates 1, the FRUC mode can be applied to the current block or the sub-block of the current block, and when the FRUC mode flag does not indicate 1, the FRUC mode is not applied to the current block or the sub- .
  • the embodiment is not limited to this, and the prediction information may not include a flag indicating whether or not the modified inter prediction mode is applied.
  • the decoding apparatus 200 can determine whether the modified inter prediction mode is applied based on the stored rule. More specifically, when the current block satisfies the pre-stored rule, the decoding apparatus 200 may apply the modified inter-prediction mode when decoding is performed. For example, when the current block is True Bi, the decoding apparatus 200 may apply a modified decoder-side motion vector refinement (DMVR), which is a modified inter-prediction mode, at the time of decoding.
  • DMVR modified decoder-side motion vector refinement
  • the encoded image information may be transferred (or signaled) from the encoding apparatus 100 to the decoding apparatus 200.
  • the image information may be implemented, for example, as a bitstream.
  • the encoding apparatus 100 can derive the search range of the current block based on the motion information of the current block, and the search range of the sub-block of the current block is the same as the search range of the current block . That is, since the encoding apparatus 100 according to the embodiment of FIG. 6 does not perform a separate operation for deriving the search range of the sub-block, the memory access required for deriving the search range of the sub-block can be reduced, The coding efficiency of the image information can be improved overall.
  • FIG. 7 is a flowchart illustrating an image decoding method by a decoding apparatus according to an embodiment.
  • Each step disclosed in FIG. 7 can be performed by the decoding apparatus 200 disclosed in FIG. 2A. 7 may be performed by the predicting unit 230 of the decoding apparatus 200 and the step 780 of FIG. 7 may be performed by the reconstructing unit 240 of the decoding apparatus 200.
  • Lt; / RTI > Therefore, in the description of each step of FIG. 7, the detailed description overlapping with the above-described contents in FIGS. 2A to 2C will be omitted or simply omitted.
  • the decoding apparatus 200 may generate a motion information candidate list of a current block including motion information candidates of the current block based on neighboring blocks of the current block.
  • the neighboring blocks of the current block may include, for example, a spatial candidate block, a temporal candidate block, and the like.
  • the motion information candidates of the current block include at least one of motion information based on the spatial candidate block of the current block, unary letter motion information, scaled TMVP motion information, ATMVP motion information, and ATMVP-ext motion information can do.
  • the decoding apparatus 200 may derive the motion information of the current block based on the motion information candidate list of the current block.
  • the motion information of the current block can be derived from the motion information candidates of the current block included in the motion information candidate list of the current block based on bi-linear matching or template matching.
  • By-Literally matching is a method of performing motion estimation by setting a difference between information between a corresponding block at a position indicated by past motion information of the current block and a corresponding block at a position indicated by motion information at a future point in the current block as a cost function . ≪ / RTI > In this case, for example, the sum of the difference values of the pixel values of the block corresponding to the position indicated by the motion information of the past block of the current block and the block corresponding to the position indicated by the motion information of the future block of the current block, have.
  • what the bi-letteral matching means is not limited to this.
  • Template matching may refer to a method of performing motion estimation using information of a region already decoded in the vicinity of a current block. At this time, for example, the sum of the difference values of the pixel values of the template and the area already decoded in the vicinity of the current block may be used for the cost calculation.
  • the meaning of the template matching is not limited to this.
  • the decoding apparatus 200 may apply bi-letter matching or template matching to each motion information candidate of the current block included in the motion information candidate list of the current block,
  • the motion information of the current block can be derived through comparison of the Rate-Distortion Cost derived based on the RD cost. That is, the motion information candidate having the minimum RD cost value derived based on the bi-letteral matching or the template matching can be determined as the motion information of the current block.
  • the RD cost may be based on Sum of Absolute Difference (SAD), Mean-Removed Sum of Absolute Difference (MR-SAD), Sum of Absolute Transform Difference (SATD)
  • the decoding apparatus 200 may set the search range of the current block based on the motion information of the current block. For example, the decoding apparatus 200 can set a predetermined size area having a center indicated by the motion information of the current block as a reference with respect to the current block as the search range of the current block.
  • the decoding apparatus 200 may derive the refined motion information of the current block based on the search range of the current block and the motion information of the current block. More specifically, the decoding apparatus 200 can refine the motion information of the current block in the search range of the current block.
  • a refinement algorithm may refer to a prediction process that refines motion information.
  • the decoding apparatus 200 may refine the motion information of the current block in the search range of the current block, based on a preset refinement algorithm.
  • the preset refinement algorithm is set in advance in the reference picture in the direction of the upper, left, upper, right, left, lower left, lower and / or right and left directions in the reference picture based on the position indicated by the motion information of the current block
  • An algorithm for deriving the refined motion information of the current block by comparing movement information corresponding to the moved positions after moving by a distance.
  • the predetermined refinement algorithm is not limited to the above example, and may be variously implemented by, for example, a full-search algorithm, a three-step search algorithm, a diamond search algorithm, and the like.
  • a motion information candidate list of subblocks of the current block of the decoding apparatus 200 may be generated.
  • the motion information candidates of the sub-blocks included in the motion information candidate list of the sub-block may be derived based on the refined motion information of the current block and neighboring blocks of the sub-block.
  • the decoding apparatus 200 can generate a list of motion information candidates of subblocks based on the refined motion information of the current block and the neighboring blocks of the subblock while considering the search range for the subblock .
  • the search range for the sub-block may be the same as the search range of the current block.
  • the decoding apparatus 200 determines whether the positions indicated by the motion information candidates of the subblock derived based on the refined motion information of the current block and the neighboring blocks of the subblock, in the reference picture of the subblock,
  • the motion information candidate list of the sub-block can be generated based on whether or not the sub-block is included in the range.
  • a motion information candidate in which the position indicated by the motion vector is included in the search range for the sub-block among the motion information candidates of the sub-block may be included in the motion information candidate list of the sub-block.
  • the motion information candidate derived based on the neighboring block of the sub- May be included in the motion information candidate list.
  • the decoding apparatus 200 may derive the motion information of the sub-block based on the motion information candidate list of the sub-block.
  • the decoding apparatus 200 may apply bi-directional matching or template matching to motion information candidates of sub-blocks included in a motion information candidate list of a sub-block, and may perform bi-
  • the motion information of the sub-block can be derived through comparison of the RD cost calculated based on the motion vector of the sub-block.
  • the RD cost may be based on SAD.
  • the decoding apparatus 200 may derive the refined motion information of the sub-block based on the motion information of the sub-block and the search range for the sub-block.
  • the decoding apparatus 200 can refine the motion information of the sub-block within the search range for the sub-block.
  • the decoding apparatus 200 may refine the motion information of the subblock in the search range for the subblock based on a preset refinement algorithm.
  • the predetermined refinement algorithm is preset in the reference picture in the direction of the upper, left, upper, right, left, lower and / And then derive the refined motion information of the sub-block by comparing the moved positions and the corresponding motion information with each other.
  • the preset refinement algorithm can be variously implemented without being limited to the above example.
  • the motion information of the subblock may be refined, and the number of refine application times may be variously combined to be applied to the operation of the decoding apparatus 200 according to step 760.
  • the decoding device 200 may generate prediction samples in the sub-block based on the refined motion information of the sub-block.
  • the decoding device 200 may generate a reconstructed picture based on the prediction samples.
  • the decoding apparatus 200 can derive the search range of the current block based on the motion information of the current block, and the search range of the sub-block of the current block is the same as the search range of the current block . That is, since the decoding apparatus 200 according to the embodiment of FIG. 7 does not perform a separate operation for deriving the search range of the sub-block, the memory access required for deriving the search range of the sub-block can be reduced, The coding efficiency of the image information can be improved overall.
  • 8A and 8B are flowcharts illustrating a process of generating a motion information candidate list of a sub-block according to an embodiment.
  • 8A and 8B are merely examples of generating a motion information candidate list of subblocks, and embodiments of the present invention can be variously extended to the extent that ordinary arts in the technical field can perceive.
  • the decoding apparatus 200 may add the refined motion information of the current block to the motion information candidate list of the sub-block.
  • step 805 the decoding apparatus 200 can determine whether the position indicated by the motion information based on the spatial candidate block of the sub-block is included in the search range of the current block.
  • the decoding apparatus 200 immediately performs the operation according to step 815 according to the determination result of the decoding apparatus 200 as to whether or not the position indicated by the motion information based on the spatial candidate block of the subblock is included in the search range of the current block Or it may be determined whether to perform the operation according to step 810 after first performing the operation according to step 810.
  • the decoding apparatus 200 decodes the motion information based on the spatial candidate block of the subblock in step 810, You can add it to the list.
  • step 815 the decoding apparatus 200 can determine whether or not the position indicated by the unilateral motion information is included in the search range of the current block.
  • the decoding apparatus 200 determines whether the decoding apparatus 200 performs the operation according to step 825 immediately or not according to the determination result of the decoding apparatus 200 as to whether or not the position indicated by the unilateral motion information is included in the search range of the current block. Or it may be determined whether to perform an operation according to step 820 and then an operation according to step 825. [
  • the decoding apparatus 200 may add the unaltered motion information to the motion information candidate list of the sub-block in step 820.
  • step 825 the decoding apparatus 200 can determine whether or not the position indicated by the scaled TMVP motion information is included in the search range of the current block.
  • the decoding apparatus 200 determines whether the decoding apparatus 200 performs the operation according to step 835 immediately or not according to the determination result of the decoding apparatus 200 as to whether or not the position indicated by the scaled TMVP motion information is included in the search range of the current block, It may be determined whether or not to perform the operation according to step 835.
  • the decoding apparatus 200 may add the scaled TMVP motion information to the motion information candidate list of the sub-block in step 830.
  • step 835 the decoding apparatus 200 can determine whether or not the position indicated by the ATMVP motion information is included in the search range of the current block.
  • step 845 It is determined whether the decoding apparatus 200 directly performs the operation according to step 845 or not according to the determination result of the decoding apparatus 200 as to whether or not the position indicated by the ATMVP motion information is included in the search range of the current block, It may be determined whether to perform the operation according to step 845 after first performing the operation.
  • the decoding apparatus 200 may add the ATMVP motion information to the motion information candidate list of the subblock in step 840.
  • step 8045 the decoding apparatus 200 can determine whether or not the position indicated by the ATMVP-ext motion information is included in the search range of the current block.
  • the decoding apparatus 200 may add the ATMVP-ext motion information to the motion information candidate list of the subblock in step 850.
  • FIG. 9 is a flowchart illustrating a process of deriving motion information of a sub-block according to an embodiment.
  • Each step disclosed in FIG. 9 can be performed by the decoding apparatus 200 disclosed in FIG. 2A. Specifically, for example, steps 905 to 940 of FIG. 9 may be performed by the predicting unit 230 of the decoding apparatus 200 of FIG. 2A. Therefore, in describing each step of FIG. 9, the detailed description overlapping with the above-described contents in FIGS. 2A to 2C will be omitted or simplified.
  • steps 905 to 935 of FIG. 9 correspond to the operations of the decoding apparatus 200 described above in steps 700 to 760 of FIG. 7, The detailed description of the contents overlapping with the contents will be omitted.
  • the decoding apparatus 200 may generate a motion information candidate list of a current block including motion information candidates of the current block based on neighboring blocks of the current block.
  • the decoding apparatus 200 may derive the motion information of the current block based on the motion information candidate list of the current block.
  • the decoding apparatus 200 may set the search range of the current block based on the motion information of the current block.
  • the decoding apparatus 200 may derive the refined motion information of the current block based on the search range of the current block and the motion information of the current block.
  • the decoding apparatus 200 may generate a motion information candidate list of the i-th sub-block of the current block.
  • the motion information candidates of the i-th sub-block included in the motion information candidate list of the i-th sub-block may be derived based on the refined motion information of the current block and neighboring blocks of the i-th sub-block. i may be initially assigned a zero.
  • the decoding apparatus 200 may derive the motion information of the i-th sub-block based on the motion information candidate list of the i-th sub-block.
  • the decoding apparatus 200 may derive the refined motion information of the i-th sub-block based on the motion information of the i-th sub-block and the search range of the i-th sub-block.
  • the decoding apparatus 200 may determine whether the ith sub-block is the last sub-block of the current block. In other words, the decoding apparatus 200 can determine whether i is equal to n-1 (where n is the total number of subblocks in the current block). When i is equal to n-1, the decoding apparatus 200 may terminate the process of deriving refined motion information of the sub-blocks of the current block. If i is smaller than n-1, It is possible to perform operations according to steps 925 to 935 in association with the (i + 1) -th sub-block of the block.
  • i may be initially 0, and after the determination operation of the decoding apparatus 200 according to step 940, i is incremented by 1, and finally a positive integer n-1 (where n is the number of sub- Total number).
  • n is the number of sub- Total number.
  • a Z-scanning order may be applied between the plurality of sub-blocks. That is, the refined motion information of the upper left sub-block among the plurality of sub-blocks of the current block can be derived first, and the refined motion information of the lower right sub-block can be derived finally.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명에 따른 디코딩 장치에 의하여 수행되는 영상 디코딩 방법은, 현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계, 상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계, 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하는 단계, 상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하는 단계, 상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출되는 단계, 상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하는 단계, 상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하는 단계, 상기 서브블록의 상기 리파인된 움직임 정보를 기반으로 상기 서브블록 내의 예측 샘플들을 생성하는 단계 및 상기 예측 샘플들을 기반으로 복원 픽처를 생성하는 단계를 포함할 수 있다.

Description

영상 코딩 시스템에서 인터 예측 방법 및 장치
본 발명은 영상 코딩 기술에 관한 것으로서 보다 상세하게는 영상 코딩 시스템에서 인터 예측 방법 및 장치에 관한 것이다.
최근 고해상도, 고품질의 영상에 대한 요구가 다양한 응용 분야에서 증가하고 있다. FHD(Full High Definition) 해상도를 가지는 방송이 서비스되면서 많은 사용자들은 이미 고해상도, 고화질의 영상에 익숙해지고 있고, 서비스 제공자와 사용자들은 FHD와 더불어 UHD(Ultra High Definition) 이상의 서비스에도 관심을 기울이고 있다.
영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송, 저장 및 재생하기 위해 고효율의 영상 압축 기술이 요구된다.
본 발명의 기술적 과제는 영상 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.
본 발명의 다른 기술적 과제는 인터 예측(inter prediction)의 효율을 향상시키기 위한 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 수정된 인터 예측을 수행함에 있어서 효율적으로 움직임 정보를 도출(derive)하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 수정된 인터 예측을 수행하기 위해 움직임 정보를 도출하는 과정에서, 움직임 정보의 도출을 위한 서치 레인지(search range)를 설정하는 방법 및 장치를 제공함에 있다.
본 발명의 일 실시예에 따르면, 디코딩 장치에 의하여 수행되는 영상 디코딩 방법이 제공된다. 상기 영상 디코딩 방법은 현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계, 상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계, 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하는 단계, 상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하는 단계, 상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출되는 단계, 상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하는 단계, 상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하는 단계, 상기 서브블록의 상기 리파인된 움직임 정보를 기반으로 상기 서브블록 내의 예측 샘플들을 생성하는 단계 및 상기 예측 샘플들을 기반으로 복원 픽처를 생성하는 단계를 포함할 수 있다.
본 발명의 다른 일 실시예에 따르면, 영상 디코딩을 수행하는 디코딩 장치가 제공된다. 상기 디코딩 장치는, 현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하고, 상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하고, 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하고, 상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하고, 상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출하고, 상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하고, 상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하고, 상기 서브블록의 상기 리파인된 움직임 정보를 기반으로 상기 서브블록 내의 예측 샘플들을 생성하는 예측부; 및 상기 예측 샘플들을 기반으로 복원 픽처를 생성하는 복원부를 포함할 수 있다.
본 발명의 또 다른 일 실시예에 따르면, 인코딩 장치에 의하여 수행되는 영상 인코딩 방법이 제공된다. 상기 영상 인코딩 방법은 현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계, 상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계, 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하는 단계, 상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하는 단계, 상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출되는 단계, 상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하는 단계, 상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하는 단계 및 상기 리파인된 상기 서브블록의 움직임 정보를 포함하는 영상 정보를 인코딩하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 실시예에 따르면, 영상 인코딩을 수행하는 인코딩 장치가 제공된다. 상기 인코딩 장치는 현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하고, 상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하고, 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하고, 상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하고, 상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출되고, 상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하며, 상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하는 예측부 및 상기 리파인된 상기 서브블록의 움직임 정보를 포함하는 영상 정보를 인코딩하는 엔트로피 인코딩부를 포함할 수 있다.
본 발명에 따르면 수정된 인터 예측 모드를 기반으로 효율적으로 움직임 정보를 도출할 수 있다.
본 발명에 따르면 수정된 인터 예측 모드에 기반하여 움직임 정보를 도출하는 과정에서 서치 레인지를 설정하기 위한 메모리 액세스(memory access)를 감소시킬 수 있다.
도 1a 내지 도 1c는 본 발명이 적용될 수 있는 인코딩 장치의 구성 및 동작을 개략적으로 설명하는 도면이다.
도 2a 내지 도 2c는 본 발명이 적용될 수 있는 디코딩 장치의 구성 및 동작을 개략적으로 설명하는 도면이다.
도 3a 및 도 3b는 일 실시예에 따라 서치 레인지를 기반으로 현재 블록의 서브블록의 움직임 정보 후보들을 도출하는 예시를 도시하는 도면이다.
도 4a 내지 도 4c는 일 실시예에 따른 현재 블록의 서치 레인지와 서브블록의 서치 레인지가 설정되는 예시를 도시하는 도면이다.
도 5는 다른 일 실시예에 따른 현재 블록의 서치 레인지와 서브블록의 서치 레인지가 설정되는 예시를 도시하는 도면이다.
도 6은 일 실시예에 따른 인코딩 장치에 의한 영상 인코딩 방법을 도시하는 흐름도이다.
도 7은 일 실시예에 따른 디코딩 장치에 의한 영상 디코딩 방법을 도시하는 흐름도이다.
도 8a 및 도 8b는 일 실시예에 따른 서브블록의 움직임 정보 후보 리스트가 생성되는 과정을 도시하는 흐름도이다.
도 9는 일 실시예에 따른 서브블록의 움직임 정보가 도출되는 과정을 도시하는 흐름도이다.
본 발명의 일 실시예에 따르면, 디코딩 장치에 의하여 수행되는 영상 디코딩 방법이 제공된다. 상기 영상 디코딩 방법은 현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계, 상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계, 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하는 단계, 상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하는 단계, 상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출되는 단계, 상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하는 단계, 상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하는 단계, 상기 서브블록의 상기 리파인된 움직임 정보를 기반으로 상기 서브블록 내의 예측 샘플들을 생성하는 단계 및 상기 예측 샘플들을 기반으로 복원 픽처를 생성하는 단계를 포함할 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정 실시예에 한정하려고 하는 것이 아니다. 본 명세서에서 상용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 도는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.
본 명세서에서 픽처(picture)는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)는 코딩에 있어서 픽처의 일부를 구성하는 단위이다. 하나의 픽처는 복수의 슬라이스로 구성될 수 있으며, 필요에 따라서 픽처 및 슬라이스는 서로 혼용되어 사용될 수 있다.
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.
유닛(unit)은 영상 처리의 기본 단위를 나타낸다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다.
도 1a 내지 도 1c는 본 발명이 적용될 수 있는 인코딩 장치의 구성 및 동작을 개략적으로 설명하는 도면이다.
도 1a는 본 발명이 적용될 수 있는 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 1a를 참조하면, 인코딩 장치(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) 상의 최상위 픽처가 참조 픽처로서 이용될 수도 있다. 참조 픽처 리스트에 포함되는 참조 픽처들은 현재 픽처와 해당 참조 픽처 간의 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)는 양자화된 변환 계수들에 대한 엔트로피 인코딩을 수행할 수 있다. 엔트로피 인코딩부(130)는 양자화된 변환 계수들에 대한 레지듀얼 정보를 도출하고, 이를 엔트로피 인코딩할 수 있다. 엔트로피 인코딩은 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 인코딩 방법을 포함할 수 있다. 엔트로피 인코딩부(130)는 양자화된 변환 계수 외 비디오 복원에 필요한 정보들(예컨대 신택스 요소(syntax element)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보들은 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 상기 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다.
역양자화부(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)에 의해 지정될 수 있다.
본 발명의 실시예들은 인터 예측과 관련된 기술로, 아래의 도 1b의 플로우 및 도 1c의 블록도와 관련된 설명을 통해 구체화될 수 있다.
도 1b는 인터 예측에 기반한 영상 인코딩 절차의 예시를 도시하는 흐름도이고, 도 1c는 인코딩 장치에 포함된 인터 예측부의 예시를 도시하는 블록도이다.
일 실시예에 따른 예측부(110)는 인터 예측부(170)를 포함할 수 있다.
단계 192는 인코딩 장치의 인터 예측부(170)에 의하여 수행될 수 있고, 단계 194는 인코딩 장치의 레지듀얼 처리부에 의하여 수행될 수 있다. 구체적으로 단계 194는 인코딩 장치의 감산부(121)에 의하여 수행될 수 있다. 단계 196에서 예측 정보는 인터 예측부(170)에 의하여 도출되고, 엔트로피 인코딩부(130)에 의하여 인코딩될 수 있다. 단계 196에서 레지듀얼 정보는 레지듀얼 처리부에 의하여 도출되고, 엔트로피 인코딩부(130)에 의하여 인코딩될 수 있다. 상기 레지듀얼 정보는 상기 레지듀얼 샘플들에 관한 정보이다. 상기 레지듀얼 정보는 상기 레지듀얼 샘플들에 대한 양자화된 변환 계수들에 관한 정보를 포함할 수 있다. 상술한 바와 같이 상기 레지듀얼 샘플들은 인코딩 장치의 변환부(122)를 통하여 변환 계수들로 도출되고, 상기 변환 계수들은 양자화부(123)를 통하여 양자화된 변환 계수들로 도출될 수 있다. 상기 양자화된 변환 계수들에 관한 정보가 레지듀얼 코딩 절차를 통하여 엔트로피 인코딩부(130)에서 인코딩될 수 있다.
인코딩 장치는 현재 블록에 대한 인터 예측을 수행한다(단계 192). 인코딩 장치는 현재 블록의 인터 예측 모드 및 움직임 정보를 도출하고, 상기 현재 블록의 예측 샘플들을 생성할 수 있다. 여기서 인터 예측 모드 결정, 움직임 정보 도출 및 예측 샘플들 생성 절차는 동시에 수행될 수도 있고, 어느 한 절차가 다른 절차보다 먼저 수행될 수도 있다. 예를 들어, 인코딩 장치의 인터 예측부(170)는 예측 모드 결정부(171), 움직임 정보 도출부(172), 예측 샘플 도출부(173)를 포함할 수 있으며, 예측 모드 결정부(171)에서 상기 현재 블록에 대한 예측 모드를 결정하고, 움직임 정보 도출부(172)에서 상기 현재 블록의 움직임 정보를 도출하고, 예측 샘플 도출부(173)에서 상기 현재 블록의 움직임 샘플들을 도출할 수 있다. 예를 들어, 인코딩 장치의 인터 예측부(170)는 움직임 추정(motion estimation)을 통하여 참조 픽처들의 일정 영역(서치 영역) 내에서 상기 현재 블록과 유사한 블록을 서치하고, 상기 현재 블록과의 차이가 최소 또는 일정 기준 이하인 참조 블록을 도출할 수 있다. 이를 기반으로 상기 참조 블록이 위치하는 참조 픽처를 가리키는 참조 픽처 인덱스를 도출하고, 상기 참조 블록과 상기 현재 블록의 위치 차이를 기반으로 움직임 벡터를 도출할 수 있다. 인코딩 장치는 다양한 예측 모드들 중 상기 현재 블록에 대하여 적용되는 모드를 결정할 수 있다. 인코딩 장치는 상기 다양한 예측 모드들에 대한 RD cost를 비교하고 상기 현재 블록에 대한 최적의 예측 모드를 결정할 수 있다.
예를 들어, 인코딩 장치는 상기 현재 블록에 스킵 모드 또는 머지 모드가 적용되는 경우, 후술하는 머지 후보 리스트를 구성하고, 상기 머지 후보 리스트에 포함된 머지 후보들이 가리키는 참조 블록들 중 상기 현재 블록과 중 상기 현재 블록과의 차이가 최소 또는 일정 기준 이하인 참조 블록을 도출할 수 있다. 이 경우 상기 도출된 참조 블록과 연관된 머지 후보가 선택되며, 상기 선택된 머지 후보를 가리키는 머지 인덱스 정보가 생성되어 디코딩 장치로 시그널링될 수 있다. 상기 선택된 머지 후보의 움직임 정보를 이용하여 상기 현재 블록의 움직임 정보가 도출할 수 있다.
다른 예로, 인코딩 장치는 상기 현재 블록에 (A)MVP 모드가 적용되는 경우, 후술하는 (A)MVP 후보 리스트를 구성하고, 상기 (A)MVP 후보 리스트에 포함된 mvp (motion vector predictor) 후보들 중 선택된 mvp 후보의 움직임 벡터를 상기 현재 블록의 mvp로 이용할 수 있다. 이 경우, 예를 들어, 상술한 움직임 추정에 의하여 도출된 참조 블록을 가리키는 움직임 벡터가 상기 현재 블록의 움직임 벡터로 이용될 수 있으며, 상기 mvp 후보들 중 상기 현재 블록의 움직임 벡터와의 차이가 가장 작은 움직임 벡터를 갖는 mvp 후보가 상기 선택된 mvp 후보가 될 있다. 상기 현재 블록의 움직임 벡터에서 상기 mvp를 뺀 차분인 MVD(motion vector difference)가 도출될 수 있다. 이 경우 상기 MVD에 관한 정보가 디코딩 장치로 시그널링될 수 있다. 또한, (A)MVP 모드가 적용되는 경우, 상기 참조 픽처 인덱스의 값은 참조 픽처 인덱스 정보 구성되어 별도로 상기 디코딩 장치로 시그널링될 수 있다.
인코딩 장치는 상기 예측 샘플들을 기반으로 레지듀얼 샘플들을 도출할 수 있다(단계 194). 인코딩 장치는 상기 현재 블록의 원본 샘플들과 상기 예측 샘플들의 비교를 통하여 상기 레지듀얼 샘플들을 도출할 수 있다.
인코딩 장치는 예측 정보 및 레지듀얼 정보를 포함하는 영상 정보를 인코딩한다(단계 196). 인코딩 장치는 인코딩된 영상 정보를 비트스트림 형태로 출력할 수 있다. 상기 예측 정보는 상기 예측 절차에 관련된 정보들로 예측 모드 정보(ex. skip flag, merge flag or mode index 등) 및 움직임 정보에 관한 정보를 포함할 수 있다. 상기 움직임 정보에 관한 정보는 움직임 벡터를 도출하기 위한 정보인 후보 선택 정보(ex. merge index, mvp flag or mvp index)를 포함할 수 있다. 또한 상기 움직임 정보에 관한 정보는 상술한 MVD에 관한 정보 및/또는 참조 픽처 인덱스 정보를 포함할 수 있다. 또한 상기 움직임 정보에 관한 정보는 L0 예측, L1 예측, 또는 쌍(bi) 예측이 적용되는지 여부를 나타내는 정보를 포함할 수 있다. 상기 레지듀얼 정보는 상기 레지듀얼 샘플들에 관한 정보이다. 상기 레지듀얼 정보는 상기 레지듀얼 샘플들에 대한 양자화된 변환 계수들에 관한 정보를 포함할 수 있다.
출력된 비트스트림은 (디지털) 저장매체에 저장되어 디코딩 장치로 전달될 수 있고, 또는 네트워크를 통하여 디코딩 장치로 전달될 수도 있다.
한편, 상술한 바와 같이 인코딩 장치는 상기 참조 샘플들 및 상기 레지듀얼 샘플들을 기반으로 복원 픽처(복원 샘플들 및 복원 블록 포함)를 생성할 수 있다. 이는 디코딩 장치에서 수행되는 것과 동일한 예측 결과를 인코딩 장치에서 도출하기 위함이며, 이를 통하여 코딩 효율을 높일 수 있기 때문이다. 따라서, 인코딩 장치는 복원 픽처(또는 복원 샘플들, 복원 블록)을 메모리에 저장하고, 인터 예측을 위한 참조 픽처로 활용할 수 있다. 상기 복원 픽처에 인루프 필터링 절차 등이 더 적용될 수 있음은 상술한 바와 같다.
한편, 본 발명의 실시예들을 구현하기 위해 인코딩 장치(100)의 각 구성 요소들이 동작하는 과정을 보다 구체적으로 설명하면 아래와 같다.
일 실시예에 따른 인터 예측부(170)는, 현재 블록의 주변 블록들(neighboring blocks)을 기반으로 현재 블록의 움직임 정보 후보들을 포함하는 현재 블록의 움직임 정보 후보 리스트를 생성할 수 있다.
또한, 인터 예측부(170)는 현재 블록의 움직임 정보 후보 리스트를 기반으로 현재 블록의 움직임 정보를 도출할 수 있다.
또한, 인터 예측부(170)는 현재 블록의 움직임 정보를 기반으로 현재 블록의 서치 레인지를 설정할 수 있다.
또한, 인터 예측부(170)는 현재 블록의 서치 레인지 및 현재 블록의 움직임 정보를 기반으로 현재 블록의 리파인된 움직임 정보를 도출할 수 있다.
또한, 인터 예측부(170)는 현재 블록의 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 이때, 서브블록의 움직임 정보 후보 리스트에 포함된 서브블록의 움직임 정보 후보들은 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 도출될 수 있다.
이때 인터 예측부(170)는, 서브블록에 대한 서치 레인지를 고려하면서, 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 서브블록에 대한 서치 레인지는 현재 블록의 서치 레인지와 동일할 수 있다.
보다 구체적으로, 인터 예측부(170)는 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 도출된 서브블록의 움직임 정보 후보들이 서브블록의 참조 픽처 내에서 가리키는 위치들이 서브블록에 대한 서치 레인지 내에 포함되는지 여부를 기반으로, 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 서브블록의 움직임 정보 후보들 중, 움직임 벡터가 가리키는 위치가 서브블록에 대한 서치 레인지 내에 포함되는 움직임 정보 후보가 서브블록의 움직임 정보 후보 리스트에 포함될 수 있다. 예를 들어, 서브블록의 주변 블록을 기반으로 도출되는 움직임 정보 후보는, 서브블록의 위치를 기준으로 상기 주변 블록의 움직임 벡터가 가리키는 위치가 현재 블록의 서치 레인지 내에 위치하는 경우에, 서브블록의 상기 움직임 정보 후보 리스트에 포함될 수 있다.
또한, 인터 예측부(170)는 서브블록의 움직임 정보 후보 리스트를 기반으로 서브블록의 움직임 정보를 도출할 수 있다.
또한, 인터 예측부(170)는 서브블록의 움직임 정보 및 서브블록에 대한 서치 레인지를 기반으로 서브블록의 리파인된 움직임 정보를 도출할 수 있다.
일 실시예에 따른 인코딩 장치(100)의 엔트로피 인코딩부(130)는, 리파인된 서브블록의 움직임 정보를 포함하는 영상 정보를 인코딩할 수 있다. 인코딩된 영상 정보는 인코딩 장치(100)에서 디코딩 장치로 전송될 수 있다.
일 실시예에 따른 인코딩 장치(100)는 현재 블록의 서치 레인지를 현재 블록의 움직임 정보를 기반으로 도출할 수 있고, 현재 블록의 서브블록의 서치 레인지는 현재 블록의 서치 레인지와 동일하게 설정할 수 있다. 즉, 일 실시예에 따른 인코딩 장치(100)는 서브블록의 서치 레인지를 도출하기 위한 별도의 동작을 수행하지 않으므로 서브블록의 서치 레인지를 도출하기 위해 필요한 메모리 액세스를 감소시킬 수 있고, 이를 통해 영상 정보의 코딩 효율을 전반적으로 향상시킬 수 있다.
도 2a 내지 도 2c는 본 발명이 적용될 수 있는 디코딩 장치의 구성 및 동작을 개략적으로 설명하는 도면이다.
도 2a는 본 발명이 적용될 수 있는 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 2a를 참조하면, 디코딩 장치(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)는 복원된 픽처를 출력 순서에 따라서 출력할 수도 있다.
상술한 내용에 있어서, 예측부(110, 230)가 수행하는 인터 예측에는 수정된(modified) 인터 예측이 포함될 수 있다. 수정된 인터 예측은, 예를 들어 FRUC(Frame Rate-Up Conversion), DMVD(Decoder side Motion Vector Derivation) 등을 포함할 수 있으나, 이에 한정되지 않는다.
본 발명의 실시예들은 인터 예측과 관련된 기술로, 아래의 도 2b의 플로우 및 도 2c의 블록도와 관련된 설명을 통해 구체화될 수 있다.
도 2b는 인터 예측에 기반한 영상 디코딩 절차의 예시를 도시하는 흐름도이고, 도 2c는 디코딩 장치에 포함된 인터 예측부의 예시를 도시하는 블록도이다.
일 실시예에 따른 예측부(230)는 인터 예측부(270)를 포함할 수 있다.
디코딩 장치는 상기 인코딩 장치에서 수행된 동작과 대응되는 동작을 수행할 수 있다. 디코딩 장치는 수신된 예측 정보를 기반으로 현재 블록에 예측을 수행하고 예측 샘플들을 도출할 수 있다.
단계 291 내지 단계 293은 디코딩 장치의 인터 예측부(270)에 의하여 수행될 수 있고, 단계 294의 레지듀얼 정보는 디코딩 장치의 엔트로피 디코딩부(210)에 의하여 비트스트림으로부터 획득될 수 있다. 디코딩 장치의 레지듀얼 처리부는 상기 레지듀얼 정보를 기반으로 현재 블록에 대한 레지듀얼 샘플들을 도출할 수 있다. 구체적으로 상기 레지듀얼 처리부의 역양자화부(222)는 상기 레지듀얼 정보를 기반으로 도출된 양자화된 변환 계수들을 기반으로, 역양자화를 수행하여 변환 계수들을 도출하고, 상기 레지듀얼 처리부의 역변환부(223)은 상기 변환 계수들에 대한 역변환을 수행하여 상기 현재 블록에 대한 레지듀얼 샘플들을 도출할 수 있다. 단계 295는 디코딩 장치의 가산부(240) 또는 복원부에 의하여 수행될 수 있다.
구체적으로 디코딩 장치는 수신된 예측 정보를 기반으로 상기 현재 블록에 대한 예측 모드를 결정할 수 있다(단계 291). 디코딩 장치는 상기 예측 정보 내의 예측 모드 정보를 기반으로 상기 현재 블록에 어떤 인터 예측 모드가 적용되는지 결정할 수 있다.
예를 들어, 상기 merge flag를 기반으로 상기 현재 블록에 상기 머지 모드가 적용되지 또는 (A)MVP 모드가 결정되는지 여부를 결정할 수 있다. 또는 상기 mode index를 기반으로 다양한 인터 예측 모드 후보들 중 하나를 선택할 수 있다. 상기 인터 예측 모드 후보들은 스킵 모드, 머지 모드 및/또는 (A)MVP 모드를 포함할 수 있고, 또는 후술하는 다양한 인터 예측 모드들을 포함할 수 있다.
디코딩 장치는 상기 결정된 인터 예측 모드를 기반으로 상기 현재 블록의 움직임 정보를 도출한다(단계 292). 예를 들어, 디코딩 장치는 상기 현재 블록에 스킵 모드 또는 머지 모드가 적용되는 경우, 후술하는 머지 후보 리스트를 구성하고, 상기 머지 후보 리스트에 포함된 머지 후보들이 중 하나의 머지 후보를 선택할 수 있다. 상기 선택은 상술한 선택 정보(merge index)를 기반으로 수행될 수 있다. 상기 선택된 머지 후보의 움직임 정보를 이용하여 상기 현재 블록의 움직임 정보가 도출할 수 있다. 상기 선택된 머지 후보의 움직임 정보가 상기 현재 블록의 움직임 정보로 이용될 수 있다.
다른 예로, 디코딩 장치는 상기 현재 블록에 (A)MVP 모드가 적용되는 경우, 후술하는 (A)MVP 후보 리스트를 구성하고, 상기 (A)MVP 후보 리스트에 포함된 mvp (motion vector predictor) 후보들 중 선택된 mvp 후보의 움직임 벡터를 상기 현재 블록의 mvp로 이용할 수 있다. 상기 선택은 상술한 선택 정보(mvp flag or mvp index)를 기반으로 수행될 수 있다. 이 경우 상기 MVD에 관한 정보를 기반으로 상기 현재 블록의 MVD를 도출할 수 있으며, 상기 현재 블록의 mvp와 상기 MVD를 기반으로 상기 현재 블록의 움직임 벡터를 도출할 수 있다. 또한, 상기 참조 픽처 인덱스 정보를 기반으로 상기 현재 블록의 참조 픽처 인덱스를 도출할 수 있다. 상기 현재 블록에 관한 참조 픽처 리스트 내에서 상기 참조 픽처 인덱스가 가리키는 픽처가 상기 현재 블록의 인터 예측을 위하여 참조되는 참조 픽처로 도출될 수 있다.
한편, 후술하는 바와 같이 후보 리스트 구성 없이 상기 현재 블록의 움직임 정보가 도출될 수 있으며, 이 경우 후술하는 예측 모드에서 개시된 절차에 따라 상기 현재 블록의 움직임 정보가 도출될 수 있다. 이 경우 상술한 바와 같은 후보 리스트 구성은 생략될 수 있다.
디코딩 장치는 상기 현재 블록의 움직임 정보를 기반으로 상기 현재 블록에 대한 예측 샘플들을 생성할 수 있다(S1120). 이 경우 상기 현재 블록의 참조 픽처 인덱스를 기반으로 상기 참조 픽처를 도출하고, 상기 현재 블록의 움직임 벡터가 상기 참조 픽처 상에서 가리키는 참조 블록의 샘플들을 이용하여 상기 현재 블록의 예측 샘플들을 도출할 수 있다. 이 경우 후술하는 바와 같이 경우에 따라 상기 현재 블록의 예측 샘플들 중 전부 또는 일부에 대한 예측 샘플 필터링 절차가 더 수행될 수 있다.
예를 들어, 디코딩 장치의 인터 예측부(270)는 예측 모드 결정부(271), 움직임 정보 도출부(272), 예측 샘플 도출부(273)를 포함할 수 있으며, 예측 모드 결정부(271)에서 수신된 예측 모드 정보를 기반으로 상기 현재 블록에 대한 예측 모드를 결정하고, 움직임 정보 도출부(272)에서 수신된 움직임 정보에 관한 정보를 기반으로 상기 현재 블록의 움직임 정보(움직임 벡터 및/또는 참조 픽처 인덱스 등)를 도출하고, 예측 샘플 도출부(273)에서 상기 현재 블록의 예측 샘플들을 도출할 수 있다.
디코딩 장치는 수신된 레지듀얼 정보를 기반으로 상기 현재 블록에 대한 레지듀얼 샘플들을 생성한다(단계 294). 디코딩 장치는 상기 예측 샘플들 및 상기 레지듀얼 샘플들을 기반으로 상기 현재 블록에 대한 복원 샘플들을 생성하고, 이를 기반으로 복원 픽처를 생성할 수 있다. (단계 295). 이후 상기 복원 픽처에 인루프 필터링 절차 등이 더 적용될 수 있음은 상술한 바와 같다.
상술한 바와 같이 인터 예측 절차는 인터 예측 모드 결정 단계, 결정된 예측 모드에 따른 움직임 정보 도출 단계, 도출된 움직임 정보에 기반한 예측 수행(예측 샘플 생성) 단계를 포함할 수 있다.
한편, 본 발명의 실시예들을 구현하기 위해 디코딩 장치(200)의 각 구성 요소들이 동작하는 과정을 보다 구체적으로 설명하면 아래와 같다.
일 실시예에 따른 인터 예측부(270)는, 현재 블록의 주변 블록들(neighboring blocks)을 기반으로 현재 블록의 움직임 정보 후보들을 포함하는 현재 블록의 움직임 정보 후보 리스트를 생성할 수 있다.
또한, 인터 예측부(270)는 현재 블록의 움직임 정보 후보 리스트를 기반으로 현재 블록의 움직임 정보를 도출할 수 있다.
또한, 인터 예측부(270)는 현재 블록의 움직임 정보를 기반으로 현재 블록의 서치 레인지를 설정할 수 있다.
또한, 인터 예측부(270)는 현재 블록의 서치 레인지 및 현재 블록의 움직임 정보를 기반으로 현재 블록의 리파인된 움직임 정보를 도출할 수 있다.
또한, 인터 예측부(270)는 현재 블록의 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 이때, 서브블록의 움직임 정보 후보 리스트에 포함된 서브블록의 움직임 정보 후보들은 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 도출될 수 있다.
이때 인터 예측부(270)는, 서브블록에 대한 서치 레인지를 고려하면서, 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 서브블록에 대한 서치 레인지는 현재 블록의 서치 레인지와 동일할 수 있다.
보다 구체적으로, 인터 예측부(270)는 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 도출된 서브블록의 움직임 정보 후보들이 서브블록의 참조 픽처 내에서 가리키는 위치들이 서브블록에 대한 서치 레인지 내에 포함되는지 여부를 기반으로, 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 서브블록의 움직임 정보 후보들 중, 움직임 벡터가 가리키는 위치가 서브블록에 대한 서치 레인지 내에 포함되는 움직임 정보 후보가 서브블록의 움직임 정보 후보 리스트에 포함될 수 있다. 예를 들어, 서브블록의 주변 블록을 기반으로 도출되는 움직임 정보 후보는, 서브블록의 위치를 기준으로 상기 주변 블록의 움직임 벡터가 가리키는 위치가 현재 블록의 서치 레인지 내에 위치하는 경우에, 서브블록의 상기 움직임 정보 후보 리스트에 포함될 수 있다.
또한, 인터 예측부(270)는 서브블록의 움직임 정보 후보 리스트를 기반으로 서브블록의 움직임 정보를 도출할 수 있다.
또한, 인터 예측부(270)는 서브블록의 움직임 정보 및 서브블록에 대한 서치 레인지를 기반으로 서브블록의 리파인된 움직임 정보를 도출할 수 있다.
또한, 인터 예측부(270)는 서브블록의 리파인된 움직임 정보를 기반으로 서브블록 내의 예측 샘플들을 생성할 수 있다.
일 실시예에 따른 디코딩 장치(200)의 복원부(240)는, 예측 샘플들을 기반으로 복원 픽처를 생성할 수 있다.
일 실시예에 따른 디코딩 장치(200)는 현재 블록의 서치 레인지를 현재 블록의 움직임 정보를 기반으로 도출할 수 있고, 현재 블록의 서브블록의 서치 레인지는 현재 블록의 서치 레인지와 동일하게 설정할 수 있다. 즉, 일 실시예에 따른 디코딩 장치(200)는 서브블록의 서치 레인지를 도출하기 위한 별도의 동작을 수행하지 않으므로 서브블록의 서치 레인지를 도출하기 위해 필요한 메모리 액세스를 감소시킬 수 있고, 이를 통해 영상 정보의 코딩 효율을 전반적으로 향상시킬 수 있다.
인터 예측부(170, 270)가 수정된 인터 예측을 수행하기 위해 움직임 정보를 도출하는 과정에서, 움직임 정보의 도출을 위해 서치 레인지(search range)가 설정될 수 있다. 이하 도 3a 내지 도 5에서는 현재 블록 또는 현재 블록의 서치 레인지와 관련한 다양한 실시예들에 대해 설명하기로 한다.
도 3a 및 도 3b는 일 실시예에 따라 서치 레인지를 기반으로 현재 블록의 서브블록의 움직임 정보 후보들을 도출하는 예시를 도시하는 도면이다.
본 명세서에서 "서치 레인지(search range)"는 처리 유닛의 움직임 정보를 도출함에 있어서 기준이 되는, 처리 유닛의 참조 픽처(reference picture) 내에 위치하는 영역을 의미할 수 있다. 여기서 처리 유닛은 전술한 바와 같이, 예를 들어 코딩 유닛, 예측 유닛, 현재 블록, 현재 블록의 서브블록 등을 의미할 수 있으나 이에 한정되지 않는다.
본 명세서에서 "움직임 정보(motion information)"는 인터 예측을 위해 필요한 정보를 의미할 수 있다. 보다 구체적으로, 움직임 정보는 처리 유닛의 인터 예측을 위한 예측 블록을 검출하기 위해 필요한 정보를 의미할 수 있으나, 움직임 정보가 의미하는 바는 이에 한정되지 않는다. 움직임 정보는, 예를 들어 움직임 벡터, 참조 픽처 인덱스, 플래그 등을 포함할 수 있다.
도 3a는 현재 블록의 서브블록(310)의 서치 레인지(330) 및 서브블록(310)의 위치를 기준으로 서브블록(310)의 움직임 정보 후보들이 참조 픽처(320) 내에서 가리키는 위치들(331, 332, 333, 334, 335, 336)의 일 예시에 관해 도시하고 있다.
도 3a에서, 서브블록(310)의 서치 레인지(330)는 현재 블록의 서치 레인지를 기반으로 설정된 것일 수 있다. 예를 들어, 서브블록(310)의 서치 레인지(330)는 현재 블록의 서치 레인지와 동일할 수 있다.
일 실시예에서, 서브블록(310)의 움직임 정보 후보들은, 서브블록(310)의 공간적 후보 블록(spatial candidate block)에 기반한 움직임 정보, 유니레터럴(unilateral) 움직임 정보, 스케일링된 TMVP(Temporal Motion Vector Prediction) 움직임 정보, ATMVP(Advanced Temporal Motion Vector Prediction) 움직임 정보 및/또는 ATMVP-ext(Advanced Temporal Motion Vector Prediction - extended) 움직임 정보 중 적어도 하나를 포함할 수 있다. 다만, 서브블록(310)의 움직임 정보 후보들이 포함할 수 있는 대상은 이에 한정되지 않는다.
여기서, TMVP 움직임 정보는 서브블록(310)의 우하단(right-bottom) 블록을 기반으로 하는 움직임 정보 또는 서브블록(310)의 중앙(center) 위치를 기반으로 하는 시간적 참조 블록의 움직임 정보가 스케일링된 것을 의미할 수 있다. ATMVP 움직임 정보는, 서브블록(310)의 주변 블록의 움직임 정보가 가리키는 위치의 시간적 참조 블록의 움직임 정보를 의미할 수 있다. ATMVP-ext 움직임 정보는, 서브블록(310)의 2개의 공간적 주변 블록과 2개의 시간적 주변 블록을 이용하여 서브블록 단위로 획득하는 움직임 정보를 의미할 수 있다.
한편, 본 명세서에서는 특정 정보 또는 개념을 정의하기 위한 용어 또는 문장을 사용하고 있다. 예를 들어, 본 명세서에서는 전술한 바와 같이, 서브블록(310)의 주변 블록의 움직임 정보가 가리키는 위치의 시간적 참조 블록의 움직임 정보를 "ATMVP 움직임 정보"라고 정의하고 있다. 그러나, "ATMVP 움직임 정보"는 ATMVP 정보, ATMVP 방법을 통해 도출된 움직임 정보, TMVP-advanced 움직임 정보 등 다양한 용어로 대체될 수 있는 바, 본 명세서에서 특정 정보 또는 개념을 정의하기 위해 사용된 용어 또는 문장을 명세서 전반에서 해석함에 있어서 그 명칭에 국한된 해석을 하여서는 안 되고, 상기 용어가 의미하는 바에 따른 다양한 동작, 기능 및 효과에 주목하여 해석할 필요가 있다.
도 3a를 참조하면, 서브블록(310)의 위치를 기준으로 서브블록(310)의 제1 움직임 후보, 제5 움직임 후보 및 제6 움직임 후보가 가리키는 위치들(331, 335, 336)은 서브블록(310)의 서치 레인지(330)에 포함되지 않고, 서브블록(310)의 위치를 기준으로 서브블록(310)의 제2 움직임 후보, 제3 움직임 후보 및 제4 움직임 후보가 가리키는 위치들(332, 333, 334)은 서브블록(310)의 서치 레인지(330)에 포함되는 것을 확인할 수 있다.
도 3b는 서브블록(310)의 서치 레인지(320)를 기반으로 서브블록(310)의 움직임 정보 후보들이 분류되는 일 예시에 관해 도시하고 있다.
도 3b를 참조하면, 서브블록(310)의 위치를 기준으로 서브블록(310)의 제1 움직임 후보, 제5 움직임 후보 및 제6 움직임 후보가 가리키는 위치들(331, 335, 336)은 서브블록(310)의 서치 레인지(330)에 포함되지 않으므로, 서브블록(310)의 제1 움직임 후보, 제5 움직임 후보 및 제6 움직임 후보는 미 선택 후보자로 분류되는 것을 확인할 수 있다. 또한, 서브블록(310)의 위치를 기준으로 서브블록(310)의 제2 움직임 후보, 제3 움직임 후보 및 제4 움직임 후보가 가리키는 위치들(332, 333, 334)은 서브블록(310)의 서치 레인지(330)에 포함되므로, 서브블록(310)의 제2 움직임 후보, 제3 움직임 후보 및 제4 움직임 후보는 선택 후보자로 분류되는 것을 확인할 수 있다.
일 실시예에서, 서브블록(310)의 움직임 정보 후보 리스트는 서브블록(310)의 움직임 정보 후보들을 서브블록(310)의 서치 레인지(320)를 기반으로 분류한 리스트를 의미할 수 있다. 도 3b를 참조하면, 서브블록(310)의 제2 움직임 후보, 제3 움직임 후보 및 제4 움직임 후보가 가리키는 위치들(332, 333, 334)은 서브블록(310)의 서치 레인지(330)에 포함되므로, 서브블록(310)의 제2 움직임 후보, 제3 움직임 후보 및 제4 움직임 후보는 서브블록(310)의 움직임 정보 후보 리스트에 포함될 수 있다.
일 실시예에서, 서브블록(310)의 움직임 정보는 서브블록(310)의 움직임 정보 후보 리스트에 포함된 움직임 정보 후보들 중에서 도출될 수 있다. 서브블록(310)의 움직임 정보가 도출되는 보다 구체적인 과정은 도 8에 대한 설명에서 후술하기로 한다.
다만, 서브블록(310)의 움직임 정보 후보 리스트를 생성함에 있어서 서브블록(310)의 서치 레인지(320)가 항상 이용되는 것은 아니다. 도 3a 및 도 3b는 서브블록(310)의 서치 레인지(320)가 현재 블록의 서치 레인지와 동일한 경우에 관한 실시예이므로, 상기 실시예에서는 서브블록(310)의 서치 레인지(320)는 서브블록(310) 단위에서 별도로 설정 또는 생성될 필요가 없으며, 현재 블록의 서치 레인지를 서브블록(310)의 서치 레인지(320)로서 이용할 수 있었다. 그러나, 서브블록(310)의 서치 레인지(320)가 현재 블록의 서치 레인지와 동일하지 않은 경우에는, 서브블록(310)의 움직임 정보 후보 리스트를 생성할 때 서브블록(310)의 서치 레인지(320)가 아직 설정 또는 생성되어 있지 않을 수 있으므로, 서브블록(310)의 움직임 정보 후보 리스트를 생성함에 있어서 서브블록(310)의 서치 레인지(320)가 고려되지 않을 수 있다.
도 4a 내지 도 4c는 일 실시예에 따른 현재 블록의 서치 레인지와 서브블록의 서치 레인지가 설정되는 예시를 도시하는 도면이다.
도 4a 및 도 4b는 현재 블록의 서치 레인지는 현재 블록의 움직임 정보를 기반으로 도출되고, 이와는 별도로 서브블록의 서치 레인지는 서브블록의 움직임 정보를 기반으로 도출되는 예시를 도시하고 있다.
도 4a에서, 참조 픽처(410) 내에서 현재 블록의 서치 레인지(412)는 현재 블록의 움직임 정보를 기반으로 도출되고, 이와는 별도로 서브블록의 서치 레인지(414)는 서브블록의 움직임 정보(415)를 기반으로 도출되고 있다. 이때 현재 블록의 서치 레인지(412)는 서브블록의 서치 레인지(414)와 일부 겹치지만 서로 상이한 것을 확인할 수 있다.
도 4b에서, 참조 픽처(420) 내에서 현재 블록의 서치 레인지(422)는 현재 블록의 움직임 정보를 기반으로 도출되고, 이와는 별도로 서브블록의 서치 레인지(424)는 서브블록의 움직임 정보(425)를 기반으로 도출되고 있다. 이때 현재 블록의 서치 레인지(422)는 서브블록의 서치 레인지(424)와 겹치는 부분 없이 서로 상이한 것을 확인할 수 있다.
도 4a 및 도 4b에 따르면, 디코딩 장치(200)는 현재 블록의 서치 레인지를 설정하기 위한 과정에서 메모리 액세스(memory access)를 수행하고, 서브블록의 서치 레인지를 설정하기 위한 과정에서 또 다시 메모리 액세스를 수행해야 하므로, 현재 블록의 서치 레인지를 설정하는 과정에서만 메모리 액세스를 수행하는 경우와 비교할 때 두 배 가까운 메모리 액세스가 요구될 수 있다.
도 4c를 참조하면, 참조 픽처(430) 내에서 현재 블록의 서치 레인지(432)와 서브블록의 서치 레인지(432)가 동일한 것을 확인할 수 있다. 이때, 현재 블록의 서치 레인지(432)는 현재 블록의 움직임 정보를 기반으로 도출되고 서브블록의 서치 레인지(432)는 서브블록 단위에서 별도로 도출될 필요 없이 현재 블록의 서치 레인지(432)와 동일하게 설정될 수 있다. 서브블록의 움직임 정보(433)는 서브블록의 서치 레인지(432) 내에서 도출될 수 있고, 도출된 움직임 정보(433)를 기반으로 서브블록의 서치 레인지(432) 내에서 예측이 수행될 수 있다. 도출된 움직임 정보(433)는 서브블록의 서치 레인지(432) 내에서 리파인(refine)될 수도 있으며, 움직임 정보의 리파인에 관한 보다 구체적인 설명은 도 8에서 후술하기로 한다.
도 4c에 따르면, 디코딩 장치(200)는 현재 블록의 서치 레인지를 설정하기 위한 과정에서 메모리 액세스를 수행하고 서브블록의 서치 레인지를 설정하기 위한 과정에서 또 다시 메모리 액세스를 수행할 필요 없이, 현재 블록의 서치 레인지를 설정하는 과정에서만 메모리 액세스를 수행한 후 서브블록의 서치 레인지는 현재 블록의 서치 레인지와 동일하게 설정할 수 있다. 다시 말해, 도 4c의 실시예에 따르면 디코딩 장치(200)는, 현재 블록의 서치 레인지를 설정하기 위한 과정에서 메모리 액세스를 수행하고 서브블록의 서치 레인지를 설정하기 위한 과정에서 또 다시 메모리 액세스를 수행하는 도 4a 또는 도 4b의 실시예와 비교할 때, 약 절반의 메모리 액세스만이 요구될 수 있다.
도 4c의 실시예에 따른 디코딩 장치(200)의 메모리 액세스와 도 4a 또는 도 4b의 실시예에 따른 디코딩 장치(200)의 메모리 액세스는, 예를 들어 아래의 표 1과 같이 비교될 수 있다.
메모리 액세스 비교 (서치 레인지 설정: -128~+128)
도 4a 또는 도 4b 도 4c
현재 블록 (64*64)*(8+4+9)*2*2*10bit (64*64)*(8+4+9)*2*2*10bit
서브블록 (64*64)*(8+4+9)*2*2*10bit -
Total 420KB 210KB
표 1을 참조하면, 도 4c의 실시예에 따르면 디코딩 장치(200)에 210KB의 메모리 액세스가 요구되고, 도 4a 또는 도 4b의 실시예에 따르면 디코딩 장치(200)에 420KB의 메모리 액세스가 요구되는 것을 확인할 수 있다. 즉 표 1을 참조하면, 도 4c의 실시예에 따르면 디코딩 장치(200)는 도 4a 또는 도 4b의 실시예와 비교할 때 메모리 액세스를 약 절반을 줄일 수 있음을 확인할 수 있다. 다만 표 1에 따른 메모리 액세스 비교는 일 예시에 불과하며, 당해 기술 분야의 통상의 기술자는 경우에 따라 표 1의 결과값들과 다소 오차가 있는 결과값들이 도출될 수도 있음을 용이하게 이해할 것이다.
도 5는 다른 일 실시예에 따른 현재 블록의 서치 레인지와 서브블록의 서치 레인지가 설정되는 예시를 도시하는 도면이다.
도 5에서, 참조 픽처(500) 내에서 현재 블록의 서치 레인지(510)는 현재 블록의 움직임 정보(512)를 기반으로 도출되고, 이와는 별도로 서브블록의 서치 레인지(520)는 서브블록의 움직임 정보(522)를 기반으로 도출되고 있다. 이때 현재 블록의 서치 레인지(510)의 사이즈와 서브블록의 서치 레인지(520)의 사이즈는 서로 상이한 것을 확인할 수 있다.
보다 구체적으로, 도 5에서 서브블록의 서치 레인지(520)의 사이즈는 현재 블록의 서치 레인지(510)의 사이즈보다 작을 수 있다. 만약 현재 블록의 서브블록들 각각의 서치 레인지를 설정해야 하는 경우에 서브블록의 서치 레인지(520)의 사이즈가 크면, 디코딩 장치(200)는 과도한 메모리 액세스를 수행해야 될 수 있다. 이러한 경우를 고려하여, 도 5에 따른 실시예에서는 서브블록의 서치 레인지(520)의 사이즈를 현재 블록의 서치 레인지(510)의 사이즈보다 작게 설정함으로써 디코딩 장치(200)에 과도한 메모리 액세스가 요구되는 것을 방지(prevent)할 수 있다.
다만 서브블록의 서치 레인지(520)의 사이즈가 현재 블록의 서치 레인지(510)의 사이즈보다 반드시 작아야 하는 것은 아니며, 현재 블록의 서치 레인지(510)의 사이즈의 감소를 통해서도 디코딩 장치(200)의 메모리 액세스를 감소시킬 수 있다.
즉, 도 5와 관련한 일부 실시예들에 따르면, 현재 블록의 서치 레인지(510)의 사이즈 및 서브블록의 서치 레인지(520)의 사이즈를 필요에 따라 조정함으로써 디코딩 장치(200)의 메모리 액세스를 효율적으로 조정할 수 있다.
도 6은 일 실시예에 따른 인코딩 장치에 의한 영상 인코딩 방법을 도시하는 흐름도이다.
도 6에 개시된 각 단계는 도 1a에 개시된 인코딩 장치(100)에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 6의 단계 600 내지 단계 660은 인코딩 장치(100)의 예측부(110)에 의하여 수행될 수 있고, 도 6의 단계 670은 인코딩 장치(100)의 엔트로피 인코딩부(130)에 의하여 수행될 수 있다. 따라서, 도 6의 각 단계를 설명함에 있어서, 도 1a 내지 도 1c에서 전술된 내용과 중복되는 구체적인 내용은 설명을 생략하거나 간단히 하기로 한다.
또한, 도 6의 단계 600 내지 단계 660에 따른 인코딩 장치(100)의 동작들은, 도 7의 단계 700 내지 단계 760에서 후술될 디코딩 장치(200)의 동작들과 동일한 원리를 기반으로 동작할 수 있으므로, 도 6의 단계 600 내지 단계 660에 대한 구체적인 설명은 도 7의 단계 700 내지 단계 760에서 후술하기로 한다.
단계 600에서, 인코딩 장치(100)는 현재 블록의 주변 블록들(neighboring blocks)을 기반으로 현재 블록의 움직임 정보 후보들을 포함하는 현재 블록의 움직임 정보 후보 리스트를 생성할 수 있다.
단계 610에서, 인코딩 장치(100)는 현재 블록의 움직임 정보 후보 리스트를 기반으로 현재 블록의 움직임 정보를 도출할 수 있다.
단계 620에서, 인코딩 장치(100)는 현재 블록의 움직임 정보를 기반으로 현재 블록의 서치 레인지를 설정할 수 있다.
단계 630에서, 인코딩 장치(100)는 현재 블록의 서치 레인지 및 현재 블록의 움직임 정보를 기반으로 현재 블록의 리파인된 움직임 정보를 도출할 수 있다.
단계 640에서, 인코딩 장치(100)는 현재 블록의 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 이때, 서브블록의 움직임 정보 후보 리스트에 포함된 서브블록의 움직임 정보 후보들은 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 도출될 수 있다.
이때 인코딩 장치(100)는, 서브블록에 대한 서치 레인지를 고려하면서, 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 서브블록에 대한 서치 레인지는 현재 블록의 서치 레인지와 동일할 수 있다.
보다 구체적으로, 인코딩 장치(100)는 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 도출된 서브블록의 움직임 정보 후보들이 서브블록의 참조 픽처 내에서 가리키는 위치들이 서브블록에 대한 서치 레인지 내에 포함되는지 여부를 기반으로, 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 서브블록의 움직임 정보 후보들 중, 움직임 벡터가 가리키는 위치가 서브블록에 대한 서치 레인지 내에 포함되는 움직임 정보 후보가 서브블록의 움직임 정보 후보 리스트에 포함될 수 있다. 예를 들어, 서브블록의 주변 블록을 기반으로 도출되는 움직임 정보 후보는, 서브블록의 위치를 기준으로 상기 주변 블록의 움직임 벡터가 가리키는 위치가 현재 블록의 서치 레인지 내에 위치하는 경우에, 서브블록의 상기 움직임 정보 후보 리스트에 포함될 수 있다.
단계 650에서, 인코딩 장치(100)는 서브블록의 움직임 정보 후보 리스트를 기반으로 서브블록의 움직임 정보를 도출할 수 있다.
단계 660에서, 인코딩 장치(100)는 서브블록의 움직임 정보 및 서브블록에 대한 서치 레인지를 기반으로 서브블록의 리파인된 움직임 정보를 도출할 수 있다.
단계 670에서, 인코딩 장치(100)는 서브블록의 리파인된 움직임 정보를 나타내는 예측 정보를 포함하는 영상 정보를 인코딩 할 수 있다.
일 실시예에서, 예측 정보는 수정된 인터 예측 모드의 적용 여부를 나타내는 플래그를 포함할 수 있다. 예를 들어, 예측 정보는 FRUC 모드의 적용 여부를 나타내는 FRUC 모드 플래그를 포함할 수도 있다. FRUC 모드 플래그가 1을 지시하는 경우 현재 블록 또는 현재 블록의 서브블록에 FRUC 모드가 적용될 수 있고, FRUC 모드 플래그가 1을 지시하지 않는 경우 현재 블록 또는 현재 블록의 서브블록에 FRUC 모드가 적용되지 않을 수 있다.
다만 실시예는 이에 한정되지 않으며, 예측 정보는 수정된 인터 예측 모드의 적용 여부를 나타내는 플래그를 포함하지 않을 수도 있다. 이러한 경우에는, 디코딩 장치(200)는 기 저장된 규칙을 기반으로 수정된 인터 예측 모드의 적용 여부를 판단할 수 있다. 보다 구체적으로, 디코딩 장치(200)는 현재 블록이 기 저장된 규칙을 만족하는 경우, 디코딩을 수행할 시에 수정된 인터 예측 모드를 적용할 수 있다. 예를 들어, 현재 블록이 True Bi인 경우, 디코딩 장치(200)는 디코딩을 수행할 시에 수정된 인터 예측 모드인 DMVR(Decoder-side Motion Vector Refinement)을 적용할 수 있다.
단계 670에서 인코딩된 영상 정보는 인코딩 장치(100)에서 디코딩 장치(200)로 전달(또는 시그널링)될 수 있다. 영상 정보는, 예를 들어 비트스트림(bitstream)으로 구현될 수 있다.
도 6의 각 단계들에 의하면, 인코딩 장치(100)는 현재 블록의 서치 레인지를 현재 블록의 움직임 정보를 기반으로 도출할 수 있고, 현재 블록의 서브블록의 서치 레인지는 현재 블록의 서치 레인지와 동일하게 설정할 수 있다. 즉, 도 6의 실시예에 따른 인코딩 장치(100)는 서브블록의 서치 레인지를 도출하기 위한 별도의 동작을 수행하지 않으므로 서브블록의 서치 레인지를 도출하기 위해 필요한 메모리 액세스를 감소시킬 수 있고, 이를 통해 영상 정보의 코딩 효율을 전반적으로 향상시킬 수 있다.
도 7은 일 실시예에 따른 디코딩 장치에 의한 영상 디코딩 방법을 도시하는 흐름도이다.
도 7에 개시된 각 단계는 도 2a에 개시된 디코딩 장치(200)에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 7의 단계 700 내지 단계 770은 디코딩 장치(200)의 예측부(230)에 의하여 수행될 수 있고, 도 7의 단계 780은 디코딩 장치(200)의 복원부(240)에 의하여 수행될 수 있다. 따라서, 도 7의 각 단계를 설명함에 있어서, 도 2a 내지 도 2c에서 전술된 내용과 중복되는 구체적인 내용은 설명을 생략하거나 간단히 하기로 한다.
단계 700에서, 디코딩 장치(200)는 현재 블록의 주변 블록들을 기반으로 현재 블록의 움직임 정보 후보들을 포함하는 현재 블록의 움직임 정보 후보 리스트를 생성할 수 있다. 현재 블록의 주변 블록들은, 예를 들어 공간적 후보 블록, 시간적 후보 블록 등을 포함할 수 있다.
일 실시예에서, 현재 블록의 움직임 정보 후보들은, 현재 블록의 공간적 후보 블록에 기반한 움직임 정보, 유니레터럴 움직임 정보, 스케일링 된 TMVP 움직임 정보, ATMVP 움직임 정보 및 ATMVP-ext 움직임 정보 중 적어도 하나를 포함할 수 있다.
단계 710에서, 디코딩 장치(200)는 현재 블록의 움직임 정보 후보 리스트를 기반으로 현재 블록의 움직임 정보를 도출할 수 있다. 이때 현재 블록의 움직임 정보는, 바이레터럴 매칭(bilateral matching) 또는 템플릿 매칭(template matching)을 기반으로, 현재 블록의 움직임 정보 후보 리스트에 포함된 현재 블록의 움직임 정보 후보들 중에서 도출될 수 있다.
바이레터럴 매칭은 현재 블록의 과거 시점의 움직임 정보가 가리키는 위치의 대응 블록과 현재 블록의 미래 시점의 움직임 정보가 가리키는 위치의 대응 블록 간의 정보의 차이를 비용 함수로 설정하여 움직임 추정을 수행하는 방식을 의미할 수 있다. 이때, 예를 들어, 현재 블록의 과거 시점의 움직임 정보가 가리키는 위치의 대응 블록과 현재 블록의 미래 시점의 움직임 정보가 가리키는 위치의 대응 블록의 픽셀값들의 차분값들의 합이 비용 계산에 이용될 수 있다. 다만, 바이레터럴 매칭이 의미하는 바는 이에 한정되지 않는다.
템플릿 매칭은 현재 블록의 주변에서 이미 복호화된 영역의 정보를 이용하여 움직임 추정을 수행하는 방식을 의미할 수 있다. 이때, 예를 들어, 현재 블록의 주변에서 이미 복호화된 영역과 템플릿의 픽셀값들의 차분값들의 합이 비용 계산에 이용될 수 있다. 다만, 템플릿 매칭이 의미하는 바는 이에 한정되지 않는다.
일 실시예에 따른 디코딩 장치(200)는 현재 블록의 움직임 정보 후보 리스트에 포함된 현재 블록의 움직임 정보 후보들 각각에 대하여 바이레터럴 매칭 또는 템플릿 매칭을 적용할 수 있고, 바이레터럴 매칭 또는 템플릿 매칭을 기반으로 도출된 RD 코스트(Rate-Distortion Cost) 비교를 통해 현재 블록의 움직임 정보를 도출할 수 있다. 즉, 바이레터럴 매칭 또는 템플릿 매칭을 기반으로 도출된 RD 코스트 값이 최소인 움직임 정보 후보를 현재 블록의 움직임 정보로 결정할 수 있다. 이때 RD 코스트는 SAD(Sum of Absolute Difference), MR-SAD(Mean-Removed Sum of Absolute Difference), SATD(Sum of Absolute Transform Difference) 등에 기반할 수 있다.
단계 720에서, 디코딩 장치(200)는 현재 블록의 움직임 정보를 기반으로 현재 블록의 서치 레인지를 설정할 수 있다. 예를 들어, 디코딩 장치(200)는 현재 블록을 기준으로 현재 블록의 움직임 정보가 가리키는 위치를 중심(center)으로 하는 기 설정된 크기의 영역을 현재 블록의 서치 레인지로 설정할 수 있다.
단계 730에서, 디코딩 장치(200)는 현재 블록의 서치 레인지 및 현재 블록의 움직임 정보를 기반으로 현재 블록의 리파인된 움직임 정보를 도출할 수 있다. 보다 구체적으로, 디코딩 장치(200)는 현재 블록의 서치 레인지 내에서 현재 블록의 움직임 정보를 리파인할 수 있다.
리파인먼트 알고리즘(refinement algorithm)은 움직임 정보를 리파인하는 예측 과정을 의미할 수 있다. 일 실시예에서, 디코딩 장치(200)는 기 설정된 리파인먼트 알고리즘(refinement algorithm)을 기반으로, 현재 블록의 서치 레인지 내에서 현재 블록의 움직임 정보를 리파인할 수 있다. 기 설정된 리파인먼트 알고리즘은, 예를 들어 현재 블록의 움직임 정보가 가리키는 위치를 기준으로, 참조 픽처 내에서 상측, 좌상측, 우상측, 좌측, 우측, 좌하측, 하측 및/또는 좌우측 방향으로 기 설정된 거리만큼 이동한 후, 이동된 위치들과 대응되는 움직임 정보들을 상호 비교함으로써 현재 블록의 리파인된 움직임 정보를 도출하기 위한 알고리즘을 의미할 수 있다. 기 설정된 리파인먼트 알고리즘이 상기 예시에 국한되지 않으며, 예를 들어 풀 서치(full-search) 알고리즘, 3스텝(3-step) 서치 알고리즘, 다이아몬드(diamond) 서치 알고리즘 등으로 다양하게 구현될 수 있다.
현재 블록의 움직임 정보를 리파인할 지 여부, 리파인 적용 횟수 등이 다양하게 조합되어 단계 730에 따른 디코딩 장치(200)의 동작에 적용될 수 있음은 당해 기술 분야의 통상의 기술자에게 용이하게 이해될 것이다.
단계 740에서, 디코딩 장치(200) 현재 블록의 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 이때, 서브블록의 움직임 정보 후보 리스트에 포함된 서브블록의 움직임 정보 후보들은 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 도출될 수 있다.
일 실시예에 따른 디코딩 장치(200)는, 서브블록에 대한 서치 레인지를 고려하면서, 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 이때, 서브블록에 대한 서치 레인지는 현재 블록의 서치 레인지와 동일할 수 있다.
보다 구체적으로, 디코딩 장치(200)는 현재 블록의 리파인된 움직임 정보 및 서브블록의 주변 블록들을 기반으로 도출된 서브블록의 움직임 정보 후보들이 서브블록의 참조 픽처 내에서 가리키는 위치들이 서브블록에 대한 서치 레인지 내에 포함되는지 여부를 기반으로, 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 서브블록의 움직임 정보 후보들 중, 움직임 벡터가 가리키는 위치가 서브블록에 대한 서치 레인지 내에 포함되는 움직임 정보 후보가 서브블록의 움직임 정보 후보 리스트에 포함될 수 있다. 예를 들어, 서브블록의 주변 블록을 기반으로 도출되는 움직임 정보 후보는, 서브블록의 위치를 기준으로 상기 주변 블록의 움직임 벡터가 가리키는 위치가 현재 블록의 서치 레인지 내에 위치하는 경우에, 서브블록의 상기 움직임 정보 후보 리스트에 포함될 수 있다.
단계 750에서, 디코딩 장치(200)는 서브블록의 움직임 정보 후보 리스트를 기반으로 서브블록의 움직임 정보를 도출할 수 있다.
일 실시예에 따른 디코딩 장치(200)는 서브블록의 움직임 정보 후보 리스트에 포함된 서브블록의 움직임 정보 후보들 각각에 대하여 바이레터럴 매칭 또는 템플릿 매칭을 적용할 수 있고, 바이레터럴 매칭 또는 템플릿 매칭을 기반으로 도출된 RD 코스트 비교를 통해 서브블록의 움직임 정보를 도출할 수 있다. 이때 RD 코스트는 SAD에 기반할 수 있다.
단계 760에서, 디코딩 장치(200)는 서브블록의 움직임 정보 및 서브블록에 대한 서치 레인지를 기반으로 서브블록의 리파인된 움직임 정보를 도출할 수 있다.
보다 구체적으로, 디코딩 장치(200)는 서브블록에 대한 서치 레인지 내에서 서브블록의 움직임 정보를 리파인할 수 있다.
일 실시예에서, 디코딩 장치(200)는 기 설정된 리파인먼트 알고리즘을 기반으로, 서브블록에 대한 서치 레인지 내에서 서브블록의 움직임 정보를 리파인할 수 있다. 기 설정된 리파인먼트 알고리즘은, 예를 들어 서브블록의 움직임 정보가 가리키는 위치를 기준으로, 참조 픽처 내에서 상측, 좌상측, 우상측, 좌측, 우측, 좌하측, 하측 및/또는 좌우측 방향으로 기 설정된 거리만큼 이동한 후, 이동된 위치들과 대응되는 움직임 정보들을 상호 비교함으로써 서브블록의 리파인된 움직임 정보를 도출하기 위한 알고리즘을 의미할 수 있다. 기 설정된 리파인먼트 알고리즘이 상기 예시에 국한되지 않고 다양하게 구현될 수 있다.
서브블록의 움직임 정보를 리파인할 지 여부, 리파인 적용 횟수 등이 다양하게 조합되어 단계 760에 따른 디코딩 장치(200)의 동작에 적용될 수 있음은 당해 기술 분야의 통상의 기술자에게 용이하게 이해될 것이다.
단계 770에서, 디코딩 장치(200)는 서브블록의 리파인된 움직임 정보를 기반으로 서브블록 내의 예측 샘플들을 생성할 수 있다.
단계 780에서, 디코딩 장치(200)는 예측 샘플들을 기반으로 복원 픽처(reconstructed picture)를 생성할 수 있다.
도 7의 각 단계들에 의하면, 디코딩 장치(200)는 현재 블록의 서치 레인지를 현재 블록의 움직임 정보를 기반으로 도출할 수 있고, 현재 블록의 서브블록의 서치 레인지는 현재 블록의 서치 레인지와 동일하게 설정할 수 있다. 즉, 도 7의 실시예에 따른 디코딩 장치(200)는 서브블록의 서치 레인지를 도출하기 위한 별도의 동작을 수행하지 않으므로 서브블록의 서치 레인지를 도출하기 위해 필요한 메모리 액세스를 감소시킬 수 있고, 이를 통해 영상 정보의 코딩 효율을 전반적으로 향상시킬 수 있다.
도 8a 및 도 8b는 일 실시예에 따른 서브블록의 움직임 정보 후보 리스트가 생성되는 과정을 도시하는 흐름도이다. 도 8a 및 도 8b는 서브블록의 움직임 정보 후보 리스트가 생성되는 일 예시에 불과하며, 본 발명의 실시예는 당해 기술 분야의 통상의 기술자가 유추할 수 있는 범위 내에서 다양하게 확장될 수 있다.
단계 800에서, 디코딩 장치(200)는 현재 블록의 리파인된 움직임 정보를 서브블록의 움직임 정보 후보 리스트에 추가할 수 있다.
단계 805에서, 디코딩 장치(200)는 서브블록의 공간적 후보 블록에 기반한 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부를 판단할 수 있다.
서브블록의 공간적 후보 블록에 기반한 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부에 대한 디코딩 장치(200)의 판단 결과에 따라, 디코딩 장치(200)가 단계 815에 따른 동작을 곧바로 수행할지, 또는 단계 810에 따른 동작을 먼저 수행한 후 단계 815에 따른 동작을 수행할지 여부가 결정될 수 있다.
서브블록의 공간적 후보 블록에 기반한 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는 경우, 단계 810에서 디코딩 장치(200)는 서브블록의 공간적 후보 블록에 기반한 움직임 정보를 서브블록의 움직임 정보 후보 리스트에 추가할 수 있다.
단계 815에서, 디코딩 장치(200)는 유니레터럴(unilateral) 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부를 판단할 수 있다.
유니레터럴(unilateral) 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부에 대한 디코딩 장치(200)의 판단 결과에 따라, 디코딩 장치(200)가 단계 825에 따른 동작을 곧바로 수행할지, 또는 단계 820에 따른 동작을 먼저 수행한 후 단계 825에 따른 동작을 수행할지 여부가 결정될 수 있다.
유니레터럴(unilateral) 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는 경우, 단계 820에서 디코딩 장치(200)는 유니레터럴 움직임 정보를 서브블록의 움직임 정보 후보 리스트에 추가할 수 있다.
단계 825에서, 디코딩 장치(200)는 스케일링 된 TMVP 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부를 판단할 수 있다.
스케일링 된 TMVP 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부에 대한 디코딩 장치(200)의 판단 결과에 따라, 디코딩 장치(200)가 단계 835에 따른 동작을 곧바로 수행할지, 또는 단계 830에 따른 동작을 먼저 수행한 후 단계 835에 따른 동작을 수행할지 여부가 결정될 수 있다.
스케일링 된 TMVP 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는 경우, 단계 830에서 디코딩 장치(200)는 스케일링 된 TMVP 움직임 정보를 서브블록의 움직임 정보 후보 리스트에 추가할 수 있다.
단계 835에서, 디코딩 장치(200)는 ATMVP 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부를 판단할 수 있다.
ATMVP 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부에 대한 디코딩 장치(200)의 판단 결과에 따라, 디코딩 장치(200)가 단계 845에 따른 동작을 곧바로 수행할지, 또는 단계 840에 따른 동작을 먼저 수행한 후 단계 845에 따른 동작을 수행할지 여부가 결정될 수 있다.
ATMVP 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는 경우, 단계 840에서 디코딩 장치(200)는 ATMVP 움직임 정보를 서브블록의 움직임 정보 후보 리스트에 추가할 수 있다.
단계 8045에서, 디코딩 장치(200)는 ATMVP-ext 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부를 판단할 수 있다.
ATMVP-ext 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는지 여부에 대한 디코딩 장치(200)의 판단 결과에 따라, 디코딩 장치(200)가 단계 850에 따른 동작을 수행할 지 여부가 결정될 수 있다.
ATMVP-ext 움직임 정보가 가리키는 위치가 현재 블록의 서치 레인지 내에 포함되는 경우, 단계 850에서 디코딩 장치(200)는 ATMVP-ext 움직임 정보를 서브블록의 움직임 정보 후보 리스트에 추가할 수 있다.
도 9는 일 실시예에 따른 서브블록의 움직임 정보가 도출되는 과정을 도시하는 흐름도이다.
도 9에 개시된 각 단계는 도 2a에 개시된 디코딩 장치(200)에 의하여 수행될 수 있다. 구체적으로 예를 들어, 도 9의 단계 905 내지 단계 940은 도 2a의 디코딩 장치(200)의 예측부(230)에 의하여 수행될 수 있다. 따라서, 도 9의 각 단계를 설명함에 있어서, 도 2a 내지 도 2c에서 전술된 내용과 중복되는 구체적인 내용은 설명을 생략하거나 간단히 하기로 한다.
또한, 도 9의 단계 905 내지 935에 따른 디코딩 장치(200)의 동작들은, 도 7의 단계 700 내지 단계 760에서 전술된 디코딩 장치(200)의 동작들과 대응되므로, 도 9에서는 도 7에서 전술된 내용과 중복되는 내용에 관한 상세한 설명을 생략하기로 한다.
단계 905에서, 디코딩 장치(200)는 현재 블록의 주변 블록들을 기반으로 현재 블록의 움직임 정보 후보들을 포함하는 현재 블록의 움직임 정보 후보 리스트를 생성할 수 있다.
단계 910에서, 디코딩 장치(200)는 현재 블록의 움직임 정보 후보 리스트를 기반으로 현재 블록의 움직임 정보를 도출할 수 있다.
단계 915에서, 디코딩 장치(200)는 현재 블록의 움직임 정보를 기반으로 현재 블록의 서치 레인지를 설정할 수 있다.
단계 920에서, 디코딩 장치(200)는 현재 블록의 서치 레인지 및 현재 블록의 움직임 정보를 기반으로 현재 블록의 리파인된 움직임 정보를 도출할 수 있다.
단계 925에서, 디코딩 장치(200)는 현재 블록의 i번째 서브블록의 움직임 정보 후보 리스트를 생성할 수 있다. 이때, i번째 서브블록의 움직임 정보 후보 리스트에 포함된 i번째 서브블록의 움직임 정보 후보들은 현재 블록의 리파인된 움직임 정보 및 i번째 서브블록의 주변 블록들을 기반으로 도출될 수 있다. i에는 최초에 0이 할당될 수 있다.
단계 930에서, 디코딩 장치(200)는 i번째 서브블록의 움직임 정보 후보 리스트를 기반으로 i번째 서브블록의 움직임 정보를 도출할 수 있다.
단계 935에서, 디코딩 장치(200)는 i번째 서브블록의 움직임 정보 및 i번째 서브블록에 대한 서치 레인지를 기반으로 i번째 서브블록의 리파인된 움직임 정보를 도출할 수 있다.
단계 940에서, 디코딩 장치(200)는 i번째 서브블록이 현재 블록의 마지막 서브블록인지 여부를 판단할 수 있다. 다시 말해, 디코딩 장치(200)는 i가 n-1(여기서 n은 현재 블록의 서브블록의 총 개수)과 일치하는지 여부를 판단할 수 있다. i가 n-1과 일치하는 경우 디코딩 장치(200)는 현재 블록의 서브블록들의 리파인된 움직임 정보들을 도출하는 과정을 종료할 수 있고, i가 n-1보다 작은 경우 디코딩 장치(200)는 현재 블록의 i+1번째 서브블록과 관련하여 단계 925 내지 단계 935에 따른 동작을 수행할 수 있다. 즉, i는 최초에 0이 될 수 있고, 단계 940에 따른 디코딩 장치(200)의 판단 동작 이후 i는 1만큼씩 증가하다가 최종적으로 양의 정수 n-1(여기서 n은 현재 블록의 서브블록의 총 개수)까지 증가할 수 있다. 도 9에 따른 디코딩 장치(200)의 처리 동작이 완료되는 경우, 현재 블록의 모든 서브블록들의 리파인된 움직임 정보들이 도출될 수 있다.
한편, 현재 블록의 복수의 서브블록들의 리파인된 움직임 정보들을 도출함에 있어서, 복수의 서브블록들간에 Z 스캐닝 순서(Z-Scanning Order)가 적용될 수 있다. 즉, 현재 블록의 복수의 서브블록들 중 좌측 상단의 서브블록의 리파인된 움직임 정보가 가장 먼저 도출될 수 있고, 우측 하단의 서브블록의 리파인된 움직임 정보가 마지막에 도출될 수 있다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타내어진 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 본 발명에 따른 방법은 소프트웨어 형태로 구현될 수 있으며, 본 발명에 따른 인코딩 장치 및/또는 디코딩 장치는 예를 들어 TV, 컴퓨터, 스마트폰, 셋톱박스, 디스플레이 장치 등의 영상 처리를 수행하는 장치에 포함될 수 있다.
본 발명에서 실시예들이 소프트웨어로 구현될 때, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다. 메모리는 프로세서 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 프로세서는 ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리는 ROM(read-only memory), RAM(random access memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다.

Claims (11)

  1. 디코딩 장치에 의하여 수행되는 영상 디코딩 방법에 있어서,
    현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계;
    상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계;
    상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하는 단계;
    상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하는 단계;
    상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출되는 단계;
    상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하는 단계;
    상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하는 단계;
    상기 서브블록의 상기 리파인된 움직임 정보를 기반으로 상기 서브블록 내의 예측 샘플들을 생성하는 단계; 및
    상기 예측 샘플들을 기반으로 복원 픽처를 생성하는 단계를 포함하는 영상 디코딩 방법.
  2. 제 1 항에 있어서,
    상기 서브블록에 대한 상기 서치 레인지는 상기 현재 블록의 상기 서치 레인지와 동일한 것을 특징으로 하는, 영상 디코딩 방법.
  3. 제 2 항에 있어서,
    상기 서브블록의 주변 블록을 기반으로 도출되는 움직임 정보 후보는, 상기 서브블록의 위치를 기준으로 상기 주변 블록의 움직임 벡터가 가리키는 위치가 상기 현재 블록의 상기 서치 레인지 내에 위치하는 경우에, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함되는 것을 특징으로 하는, 영상 디코딩 방법.
  4. 제 1 항에 있어서,
    상기 서브블록에 대한 상기 서치 레인지의 사이즈는 상기 현재 블록의 상기 서치 레인지의 사이즈와 상이한 것을 특징으로 하는, 영상 디코딩 방법.
  5. 제 1 항에 있어서,
    상기 현재 블록의 상기 움직임 정보는 바이레터럴 매칭(bilateral matching) 또는 템플릿 매칭(template matching)을 기반으로 상기 현재 블록의 상기 움직임 정보 후보들 중에서 도출되는 것을 특징으로 하는, 영상 디코딩 방법.
  6. 제 5 항에 있어서,
    상기 서브블록의 상기 움직임 정보는 상기 바이레터럴 매칭 또는 상기 템플릿 매칭을 기반으로 상기 서브블록의 상기 움직임 정보 후보들 중에서 도출되는 것을 특징으로 하는, 영상 디코딩 방법.
  7. 제 1 항에 있어서,
    상기 현재 블록의 상기 움직임 정보 후보들은, 상기 현재 블록의 공간적 후보 블록에 기반한 움직임 정보, 유니레터럴(unilateral) 움직임 정보, 스케일링 된 TMVP 움직임 정보, ATMVP 움직임 정보 및 ATMVP-ext 움직임 정보 중 적어도 하나를 포함하는 것을 특징으로 하는, 영상 디코딩 방법.
  8. 제 1 항에 있어서,
    상기 서브블록의 상기 움직임 정보 후보들은, 상기 서브블록의 공간적 후보 블록에 기반한 움직임 정보, 유니레터럴(unilateral) 움직임 정보, 스케일링 된 TMVP 움직임 정보, ATMVP 움직임 정보 및 ATMVP-ext 움직임 정보 중 적어도 하나를 포함하는 것을 특징으로 하는, 영상 디코딩 방법.
  9. 영상 디코딩을 수행하는 디코딩 장치에 있어서,
    현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하고,
    상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하고,
    상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하고,
    상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하고,
    상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출하고,
    상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하고,
    상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하고,
    상기 서브블록의 상기 리파인된 움직임 정보를 기반으로 상기 서브블록 내의 예측 샘플들을 생성하는 예측부; 및
    상기 예측 샘플들을 기반으로 복원 픽처를 생성하는 복원부를 포함하는 디코딩 장치.
  10. 인코딩 장치에 의하여 수행되는 영상 인코딩 방법에 있어서,
    현재 블록의 주변(neighboring) 블록들을 기반으로 상기 현재 블록의 움직임 정보 후보들을 포함하는 상기 현재 블록의 움직임 정보 후보 리스트를 생성하는 단계;
    상기 현재 블록의 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계;
    상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 서치 레인지(search range)를 설정하는 단계;
    상기 현재 블록의 상기 서치 레인지 및 상기 현재 블록의 상기 움직임 정보를 기반으로 상기 현재 블록의 리파인된 움직임 정보를 도출하는 단계;
    상기 현재 블록의 서브블록(sub block)의 움직임 정보 후보 리스트를 생성하되, 상기 서브블록의 상기 움직임 정보 후보 리스트에 포함된 상기 서브블록의 움직임 정보 후보들은 상기 현재 블록의 리파인된 움직임 정보 및 상기 서브블록의 주변 블록들을 기반으로 도출되는 단계;
    상기 서브블록의 상기 움직임 정보 후보 리스트를 기반으로 상기 서브블록의 움직임 정보를 도출하는 단계;
    상기 서브블록의 움직임 정보 및 상기 서브블록에 대한 서치 레인지를 기반으로 상기 서브블록의 리파인된 움직임 정보를 도출하는 단계; 및
    상기 리파인된 상기 서브블록의 움직임 정보를 포함하는 영상 정보를 인코딩하는 단계를 포함하는 것을 특징으로 하는 영상 인코딩 방법.
  11. 제 10 항의 상기 영상 인코딩 방법에 의하여 생성되는 상기 인코딩된 영상 정보를 저장하는 디코더로 판독 가능한 저장 매체.
PCT/KR2018/011615 2017-09-29 2018-10-01 영상 코딩 시스템에서 인터 예측 방법 및 장치 WO2019066602A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762565114P 2017-09-29 2017-09-29
US62/565,114 2017-09-29

Publications (1)

Publication Number Publication Date
WO2019066602A1 true WO2019066602A1 (ko) 2019-04-04

Family

ID=65902160

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/011615 WO2019066602A1 (ko) 2017-09-29 2018-10-01 영상 코딩 시스템에서 인터 예측 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2019066602A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113841398A (zh) * 2019-06-17 2021-12-24 韩国电子通信研究院 一种基于子块划分的图像编码/解码方法及装置
WO2023098899A1 (en) * 2021-12-03 2023-06-08 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016008408A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Method of motion vector derivation for video coding
US20160286229A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Motion vector derivation in video coding
KR20170020746A (ko) * 2014-06-20 2017-02-24 소니 주식회사 화상 부호화 장치 및 방법 및 화상 복호 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170020746A (ko) * 2014-06-20 2017-02-24 소니 주식회사 화상 부호화 장치 및 방법 및 화상 복호 장치 및 방법
WO2016008408A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Method of motion vector derivation for video coding
US20160286229A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Motion vector derivation in video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHEN, JIANLE ET AL.: "Algorithm Description of Joint Exploration Test Model 7 (JEM 7)", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, 7TH MEETING, no. JVET-G1001, 21 July 2017 (2017-07-21), Torino , IT, pages 1 - 51, XP055576095 *
ROSEWARNE, CHRIS ET AL.: "High Efficiency Video Coding (HEVC) Test Model 16 ( HM 16) Improved Encoder Description Update 9", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP3 AND ISO/IEC JTC1/SC29/WG1 1, 28TH MEETING, no. JCTVC-AB1002, 21 July 2017 (2017-07-21), Torino, IT, XP030118276 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113841398A (zh) * 2019-06-17 2021-12-24 韩国电子通信研究院 一种基于子块划分的图像编码/解码方法及装置
WO2023098899A1 (en) * 2021-12-03 2023-06-08 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Similar Documents

Publication Publication Date Title
WO2020166897A1 (ko) Dmvr 기반의 인터 예측 방법 및 장치
WO2017188566A1 (ko) 영상 코딩 시스템에서 인터 예측 방법 및 장치
WO2019117636A1 (ko) 비분리 2차 변환에 기반한 영상 코딩 방법 및 그 장치
WO2018105757A1 (ko) 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
WO2019117634A1 (ko) 2차 변환에 기반한 영상 코딩 방법 및 그 장치
WO2017052081A1 (ko) 영상 코딩 시스템에서 인터 예측 방법 및 장치
WO2019117640A1 (ko) 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
WO2017065357A1 (ko) 영상 코딩 시스템에서 예측 향상을 위한 필터링 방법 및 장치
WO2019177429A1 (ko) 인트라 예측 기반 영상/비디오 코딩 방법 및 그 장치
WO2018021585A1 (ko) 영상 코딩 시스템에서 인트라 예측 방법 및 장치
WO2020184991A1 (ko) Ibc 모드를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2017082443A1 (ko) 영상 코딩 시스템에서 임계값을 이용한 적응적 영상 예측 방법 및 장치
WO2016114583A1 (ko) 비디오 신호 처리 방법 및 장치
WO2021137597A1 (ko) Ols에 대한 dpb 파라미터를 사용하는 영상 디코딩 방법 및 그 장치
WO2021125700A1 (ko) 예측 가중 테이블 기반 영상/비디오 코딩 방법 및 장치
WO2020141886A1 (ko) Sbtmvp 기반 인터 예측 방법 및 장치
WO2020141831A2 (ko) 인트라 블록 카피 예측을 이용한 영상 코딩 방법 및 장치
WO2019013363A1 (ko) 영상 코딩 시스템에서 주파수 도메인 잡음 감소 방법 및 장치
WO2017195917A1 (ko) 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
WO2019199071A1 (ko) 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
WO2019117659A1 (ko) 움직임 벡터 도출을 기반으로 하는 영상 코딩 방법 및 그 장치
WO2021125702A1 (ko) 가중된 예측에 기반한 영상/비디오 코딩 방법 및 장치
WO2015083988A1 (ko) 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
WO2019066602A1 (ko) 영상 코딩 시스템에서 인터 예측 방법 및 장치
WO2019066175A1 (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: 18862154

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

Country of ref document: EP

Kind code of ref document: A1