WO2020005032A1 - Inter-prediction method using motion information compression, and device for same - Google Patents

Inter-prediction method using motion information compression, and device for same Download PDF

Info

Publication number
WO2020005032A1
WO2020005032A1 PCT/KR2019/007925 KR2019007925W WO2020005032A1 WO 2020005032 A1 WO2020005032 A1 WO 2020005032A1 KR 2019007925 W KR2019007925 W KR 2019007925W WO 2020005032 A1 WO2020005032 A1 WO 2020005032A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion information
block
candidate
storage unit
prediction
Prior art date
Application number
PCT/KR2019/007925
Other languages
French (fr)
Korean (ko)
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 WO2020005032A1 publication Critical patent/WO2020005032A1/en

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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • 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

Definitions

  • the present invention relates to an image coding technology, and more particularly, to an inter prediction method and apparatus using motion information compression in an image coding system.
  • the demand for high resolution and high quality images such as high definition (HD) images and ultra high definition (UHD) images is increasing in various fields.
  • the higher the resolution and the higher quality of the image data the more information or bit rate is transmitted than the existing image data. Therefore, the image data can be transmitted by using a medium such as a conventional wired / wireless broadband line or by using a conventional storage medium. In the case of storage, the transmission cost and the storage cost are increased.
  • a high efficiency image compression technique is required to effectively transmit, store, and reproduce high resolution, high quality image information.
  • An object of the present invention is to provide a method and apparatus for improving image coding efficiency.
  • Another object of the present invention is to provide a method and apparatus for improving the efficiency of image coding based on inter prediction.
  • Another technical problem of the present invention is to provide an inter prediction method and apparatus using motion information compression.
  • Another technical problem of the present invention is to provide a method and apparatus for reducing the memory capacity by compressing and storing information for deriving temporal motion information.
  • Another technical problem of the present invention is to provide a method and apparatus for reducing computation complexity and improving compression performance in motion information compression.
  • an image decoding method performed by a decoding apparatus.
  • the method may include deriving temporal motion information for the current block based on a temporal neighboring block of the current block, constructing a motion information candidate list for the current block including the temporal motion information, Deriving motion information of the current block based on a motion information candidate list, and performing prediction on the current block based on motion information of the current block, wherein the temporal neighboring block includes: a reference picture; It is a col block (collocated block) positioned corresponding to the current block in the, wherein the temporal motion information is stored corresponding to the col block among the representative motion information stored by compressing the reference picture in a predetermined storage unit And representative motion information stored in the unit.
  • an image encoding method performed by an encoding apparatus may include deriving temporal motion information for the current block based on a temporal neighboring block of the current block, constructing a motion information candidate list for the current block including the temporal motion information, Deriving motion information of the current block based on a motion information candidate list, performing prediction on the current block based on motion information of the current block, and encoding motion information of the current block
  • the temporal neighboring block is a col block (located block) positioned corresponding to the current block in the reference picture, and the temporal motion information is stored in a predetermined storage unit with respect to the reference picture.
  • a table stored in a storage unit corresponding to the col block.
  • table motion information is a table motion information.
  • the overall video / video compression efficiency can be improved.
  • the efficiency of image coding based on inter prediction can be improved.
  • the efficiency of inter prediction and image coding using motion information compression can be improved.
  • FIG. 1 is a diagram schematically illustrating a configuration of a video encoding apparatus to which the present invention may be applied.
  • FIG. 2 is a diagram schematically illustrating a configuration of a video decoding apparatus to which the present invention may be applied.
  • FIG. 3 exemplarily illustrates a neighboring block referred to to derive motion information of a current block.
  • FIG. 4 is a diagram schematically illustrating a method of compressing and storing motion information that may be applied when constructing a motion information candidate list according to the present invention.
  • 5 exemplarily shows blocks partitioned for prediction within a picture.
  • FIG. 6 is a diagram schematically illustrating a method of storing motion information in units of a minimum prediction block.
  • FIG. 7 is a diagram schematically illustrating a method of compressing and storing motion information in a predetermined storage unit according to the present invention.
  • FIG. 8 exemplarily illustrates a case in which one or more prediction blocks are included in a storage unit having a predetermined size.
  • FIG. 9 exemplarily shows spatial position candidates used to determine representative motion information stored on behalf of one storage unit according to the present invention.
  • FIG. 10 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit having a predetermined size based on a spatial position candidate according to the present invention.
  • FIG. 11 is a flowchart illustrating another embodiment of a method of determining representative motion information in a storage unit of a predetermined size based on a spatial position candidate according to the present invention.
  • FIG. 12 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit having a predetermined size with reference to an optimized spatial position candidate among spatial position candidates according to the present invention.
  • FIG. 13 is a flowchart illustrating another embodiment of a method of determining representative motion information in a storage unit having a predetermined size with reference to an optimized spatial position candidate among spatial position candidates according to the present invention.
  • FIG. 14 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit of a predetermined size with reference to two optimized spatial position candidates among spatial position candidates according to the present invention.
  • FIG. 15 exemplarily illustrates prediction blocks included in one storage unit to illustrate a method of determining representative motion information based on an area of prediction blocks in a storage unit having a predetermined size according to the present invention.
  • 16 is a diagram illustrating an embodiment of exception processing for representative motion information stored on behalf of one storage unit according to the present invention.
  • 17 is a flowchart schematically illustrating an image encoding method by an encoding apparatus according to the present invention.
  • FIG. 18 is a flowchart schematically illustrating an image decoding method by a decoding apparatus according to the present invention.
  • FIG. 19 exemplarily shows a structure diagram of a content streaming system to which the present invention is applied.
  • each configuration in the drawings described in the present invention are shown independently for the convenience of description of the different characteristic functions, it does not mean that each configuration is implemented by separate hardware or separate software.
  • two or more of each configuration may be combined to form one configuration, or one configuration may be divided into a plurality of configurations.
  • Embodiments in which each configuration is integrated and / or separated are also included in the scope of the present invention without departing from the spirit of the present invention.
  • the present invention relates to video / image coding.
  • the methods / embodiments disclosed in the present invention may include a versatile video coding (VVC) standard, an essential video coding (ECC) standard, an AOMedia Video 1 (AV1) standard, a second generation of audio video coding standard (AVS2), or next-generation video.
  • VVC versatile video coding
  • ECC essential video coding
  • AV1 AOMedia Video 1
  • AVS2 second generation of audio video coding standard
  • next-generation video e.g., H.267, H.268, etc.
  • a video may mean a series of images over time.
  • a picture generally refers to a unit representing one image in a specific time zone, and a slice is a unit constituting a part of a picture in coding.
  • One picture may be composed of a plurality of slices, and if necessary, the picture and the slice may be mixed with each other.
  • a pixel or a pel may refer to a minimum unit constituting one picture (or image). Also, 'sample' may be used as a term corresponding to a pixel.
  • a sample may generally represent a pixel or a value of a pixel, and may only represent pixel / pixel values of the luma component, or only pixel / pixel values of the chroma component.
  • a unit represents the basic unit of image processing.
  • the unit may include at least one of a specific region of the picture and information related to the region.
  • the unit may be used interchangeably with terms such as block or area in some cases.
  • an M ⁇ N block may represent a set of samples or transform coefficients composed of M columns and N rows.
  • FIG. 1 is a diagram schematically illustrating a configuration of a video encoding apparatus to which the present invention may be applied.
  • the video encoding apparatus 100 may include a picture splitter 105, a predictor 110, a residual processor 120, an entropy encoder 130, an adder 140, and a filter 150. ) And memory 160.
  • the residual processing unit 120 may include a subtraction unit 121, a conversion unit 122, a quantization unit 123, a reordering unit 124, an inverse quantization unit 125, and an inverse conversion unit 126.
  • the picture divider 105 may divide the input picture into at least one processing unit.
  • the processing unit may be called a coding unit (CU).
  • the coding unit may be recursively split from the largest coding unit (LCU) according to a quad-tree binary-tree (QTBT) structure.
  • LCU largest coding unit
  • QTBT quad-tree binary-tree
  • one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad tree structure and / or a binary tree structure.
  • the quad tree structure may be applied first and the binary tree structure may be applied later.
  • the binary tree structure may be applied first.
  • the coding procedure according to the present invention may be performed based on the final coding unit that is no longer split.
  • the maximum coding unit may be used as the final coding unit immediately based on coding efficiency according to the image characteristic, or if necessary, the coding unit is recursively divided into coding units of lower depths and optimized.
  • a coding unit of size may be used as the final coding unit.
  • the coding procedure may include a procedure of prediction, transform, and reconstruction, 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 depths along the quad tree structure.
  • LCU largest coding unit
  • the maximum coding unit may be used as the final coding unit immediately based on coding efficiency according to the image characteristic, or if necessary, the coding unit is recursively divided into coding units of lower depths and optimized.
  • a coding unit of size may be used as the final coding unit. If a smallest coding unit (SCU) is set, the coding unit may not be split into smaller coding units than the minimum coding unit.
  • the final coding unit refers to a coding unit that is the basis of partitioning or partitioning into a prediction unit or a transform unit.
  • the prediction unit is a unit partitioning from the coding unit and may be a unit of sample prediction. In this case, the prediction unit may be divided into sub blocks.
  • the transform unit may be divided along the quad tree structure from the coding unit, and may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from the transform coefficient.
  • a coding unit may be called a coding block (CB)
  • a prediction unit is a prediction block (PB)
  • a transform unit may be called a transform block (TB).
  • a prediction block or prediction unit may mean a specific area in the form of a block within a picture, and may include an array of prediction samples.
  • a transform block or a transform unit may mean a specific area in a block form within a picture, and may include an array of transform coefficients or residual samples.
  • the prediction unit 110 may perform a prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples of the current block.
  • the unit of prediction performed by 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. As an example, the prediction unit 110 may determine whether intra prediction or inter prediction is applied on a CU basis.
  • the prediction unit 110 may derive a prediction sample for the current block based on reference samples outside the current block in the picture to which the current block belongs (hereinafter, referred to as the current picture). In this case, the prediction unit 110 may (i) derive the prediction sample based on the average or interpolation of neighboring reference samples of the current block, and (ii) the neighbor reference of the current block.
  • the prediction sample may be derived based on a reference sample present in a specific (prediction) direction with respect to the prediction sample among the samples. In case of (i), it may be called non-directional mode or non-angle mode, and in case of (ii), it may be called directional mode or 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 planner mode (Planar mode).
  • the prediction unit 110 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
  • the prediction unit 110 may derive the prediction sample for the current block based on the sample specified by the motion vector on the reference picture.
  • the prediction unit 110 may apply one of a skip mode, a merge mode, and a motion vector prediction (MVP) mode to derive a prediction sample for the current block.
  • the prediction unit 110 may use the motion information of the neighboring block as the motion information of the current block.
  • the skip mode unlike the merge mode, the difference (residual) between the prediction sample and the original sample is not transmitted.
  • the MVP mode the motion vector of the current block may be derived using the motion vector of the neighboring block as a motion vector predictor.
  • the neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block present in the reference picture.
  • a reference picture including the temporal neighboring block may be called 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 encoded (entropy) and output in the form of a bitstream.
  • the highest picture on the reference picture list may be used as the reference picture.
  • Reference pictures included in a reference picture list may be sorted based on a difference in a picture order count (POC) between a current picture and a corresponding reference picture.
  • POC picture order count
  • the subtraction unit 121 generates a residual sample which is a difference between the original sample and the prediction sample.
  • residual samples may not be generated as described above.
  • the transform unit 122 generates transform coefficients by transforming the residual sample in units of transform blocks.
  • the transform unit 122 may perform the transform according to the size of the transform block and the prediction mode applied to the coding block or the prediction block that spatially overlaps the transform block. For example, if intra prediction is applied to the coding block or the prediction block that overlaps the transform block, and the transform block is a residual array of 4 ⁇ 4, the residual sample is obtained by using a discrete sine transform (DST) transform kernel. In other cases, the residual sample may be transformed using a discrete cosine transform (DCT) transform kernel.
  • DST discrete sine transform
  • DCT discrete cosine 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 reorder the quantized transform coefficients in the form of a block into a one-dimensional vector form through a coefficient scanning method. Although the reordering unit 124 has been described in a separate configuration, the reordering unit 124 may be part of the quantization unit 123.
  • the entropy encoding unit 130 may perform entropy encoding on the quantized transform coefficients.
  • Entropy encoding may include, for example, encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and the like.
  • the entropy encoding unit 130 may encode information necessary for video reconstruction other than the quantized transform coefficients (for example, a value of a syntax element) together or separately according to entropy encoding or a predetermined method.
  • the encoded information may be transmitted or stored in units of network abstraction layer (NAL) units in the form of bitstreams.
  • the bitstream may be transmitted over a network or may be stored in a digital storage medium.
  • the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like.
  • the inverse quantization unit 125 inverse quantizes the quantized values (quantized transform coefficients) in the quantization unit 123, and the inverse transformer 126 inverse transforms the inverse quantized values in the inverse quantization unit 125 to generate a residual sample.
  • the adder 140 reconstructs the picture by combining the residual sample and the predictive sample.
  • the residual sample and the predictive sample may be added in units of blocks to generate a reconstructed block.
  • the adder 140 may be part of the predictor 110.
  • the adder 140 may be called a restoration unit or a restoration block generation unit.
  • the filter unit 150 may apply a deblocking filter and / or a sample adaptive offset to the reconstructed picture. Through deblocking filtering and / or sample adaptive offset, the artifacts of the block boundaries in the reconstructed picture or the distortion in the quantization process can be corrected.
  • the sample adaptive offset may be applied on a sample basis and may be applied after the process of deblocking filtering is completed.
  • the filter unit 150 may apply an adaptive loop filter (ALF) to the reconstructed picture. ALF may be applied to the reconstructed picture after the deblocking filter and / or sample adaptive offset is applied.
  • ALF adaptive loop filter
  • the memory 160 may store reconstructed pictures (decoded pictures) or information necessary for encoding / decoding.
  • the reconstructed picture may be a reconstructed picture after the filtering process is completed by the filter unit 150.
  • the stored reconstructed 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.
  • pictures used for inter prediction may be designated by a reference picture set or a reference picture list.
  • FIG. 2 is a diagram schematically illustrating a configuration of a video decoding apparatus to which the present invention may be applied.
  • the video decoding apparatus 200 may include an entropy decoding unit 210, a residual processor 220, a predictor 230, an adder 240, a filter 250, and a memory 260. It may include.
  • the residual processor 220 may include a rearrangement unit 221, an inverse quantization unit 222, and an inverse transform unit 223.
  • the video decoding apparatus 200 may restore video in response to a process in which video information is processed in the video encoding apparatus.
  • the video decoding apparatus 200 may perform video decoding using a processing unit applied in the video encoding apparatus.
  • the processing unit block of video decoding may be, for example, a coding unit, and in another example, a coding unit, a prediction unit, or a transform unit.
  • the coding unit may be split along the quad tree structure and / or binary tree structure from the largest coding unit.
  • the prediction unit and the transform unit may be further used in some cases, 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 point, the prediction unit may be divided into subblocks.
  • the transform unit may be divided along the quad tree structure from the coding unit, and may be a unit for deriving a transform coefficient or a unit for deriving a residual signal from the transform coefficient.
  • the entropy decoding unit 210 may parse the bitstream and output information necessary for video reconstruction or picture reconstruction. 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, quantized values of syntax elements necessary for video reconstruction, and residual coefficients. Can be output.
  • a coding method such as exponential Golomb coding, CAVLC, or CABAC, quantized values of syntax elements necessary for video reconstruction, and residual coefficients. Can be output.
  • the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and decodes syntax element information and decoding information of neighboring and decoding target blocks or information of symbols / bins decoded in a previous step.
  • the context model may be determined using the context model, the probability of occurrence of a bin may be predicted according to the determined context model, and arithmetic decoding of the bin may be performed to generate a symbol corresponding to the value of each syntax element. have.
  • the CABAC entropy decoding method may update the context model by using the information of the decoded symbol / bin for the context model of the next symbol / bean after determining the context model.
  • the information related to the prediction among the information decoded by the entropy decoding unit 210 is provided to the prediction unit 230, and the residual value on which the entropy decoding has been performed by the entropy decoding unit 210, that is, the quantized transform coefficient, is used as a reordering unit ( 221 may be input.
  • the reordering unit 221 may rearrange the quantized transform coefficients in a two-dimensional block form.
  • the reordering unit 221 may perform reordering in response to coefficient scanning performed by the encoding apparatus.
  • the rearrangement unit 221 has been described in a separate configuration, but the rearrangement unit 221 may be part of the inverse quantization unit 222.
  • the inverse quantization unit 222 may dequantize the quantized transform coefficients based on the (inverse) quantization parameter and output the transform coefficients.
  • information for deriving a quantization parameter may be signaled from the encoding apparatus.
  • the inverse transform unit 223 may inversely transform transform coefficients to derive residual samples.
  • the prediction unit 230 may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
  • the unit of prediction performed by the prediction unit 230 may be a coding block, a transform block, or a prediction block.
  • the prediction unit 230 may determine whether to apply intra prediction or inter prediction based on the information about the prediction.
  • a unit for determining which of intra prediction and inter prediction is to be applied and a unit for generating a prediction sample may be different.
  • the unit for generating a prediction sample in inter prediction and intra prediction may also be different.
  • whether to apply inter prediction or intra prediction may be determined in units of CUs.
  • a prediction mode may be determined and a prediction sample may be generated in PU units
  • intra prediction a prediction mode may be determined in PU units and a prediction sample may be generated in TU units.
  • the prediction unit 230 may derive the prediction sample for the current block based on the neighbor reference samples in the current picture.
  • the prediction unit 230 may derive the prediction sample for the current block by applying the directional mode or the non-directional mode based on the neighbor reference samples of the current block.
  • the 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 the prediction sample for the current block based on the sample specified on the reference picture by the motion vector on the reference picture.
  • the prediction unit 230 may apply any one of a skip mode, a merge mode, and an MVP mode to derive a prediction sample for the current block.
  • motion information required for inter prediction of the current block provided by the video encoding apparatus for example, information about a motion vector, a reference picture index, and the like may be obtained or derived based on the prediction information.
  • the motion information of the neighboring block may be used as the 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 motion information of available neighboring blocks, and may use information indicated by the merge index on the merge candidate list as a motion vector of the current block.
  • the merge index may be signaled from the encoding device.
  • the motion information may include a motion vector and a reference picture. When the motion information of the temporal neighboring block is used in the skip mode and the merge mode, the highest picture on the reference picture list may be used as the reference picture.
  • the difference (residual) between the prediction sample and the original sample is not transmitted.
  • the motion vector of the current block may be derived using the motion vector of the 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 by using a motion vector of a reconstructed spatial neighboring block and / or a motion vector corresponding to a Col block, which is a temporal neighboring block.
  • the motion vector of the candidate block selected from the merge candidate list is used as the motion vector of the current block.
  • the information about the prediction may include a merge index indicating a candidate block having an optimal motion vector selected from candidate blocks included in the merge candidate list.
  • the prediction unit 230 may derive the motion vector of the current block by using the merge index.
  • a motion vector predictor candidate list may be generated using a motion vector of a reconstructed spatial neighboring block and / or a motion vector corresponding to a Col block, which is a temporal neighboring block.
  • the prediction information may include a prediction motion vector index indicating an optimal motion vector selected from the motion vector candidates included in the list.
  • the prediction unit 230 may select the predicted motion vector of the current block from the motion vector candidates included in the motion vector candidate list using the motion vector index.
  • the prediction unit of the encoding apparatus may obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, and may encode the output vector in a bitstream form. That is, MVD may be obtained by subtracting the motion vector predictor from the motion vector of the current block.
  • the prediction unit 230 may obtain a motion vector difference included in the information about the prediction, and derive the motion vector of the current block by adding the motion vector difference and the motion vector predictor.
  • the prediction unit may also obtain or derive a reference picture index or the like indicating a reference picture from the information about the prediction.
  • the adder 240 may reconstruct the current block or the current picture by adding the residual sample and the predictive sample.
  • the adder 240 may reconstruct the current picture by adding the residual sample and the predictive sample in block units. Since the residual is not transmitted when the skip mode is applied, the prediction sample may be a reconstruction sample.
  • the adder 240 has been described in a separate configuration, the adder 240 may be part of the predictor 230. On the other hand, the adder 240 may be called a restoration unit or a restoration block generation unit.
  • the filter unit 250 may apply the deblocking filtering sample adaptive offset, and / or ALF to the reconstructed picture.
  • the sample adaptive offset may be applied in units of samples and may be applied after deblocking filtering.
  • ALF may be applied after deblocking filtering and / or sample adaptive offset.
  • the memory 260 may store reconstructed pictures (decoded pictures) or information necessary for decoding.
  • the reconstructed picture may be a reconstructed picture after the filtering process is completed by the filter unit 250.
  • the memory 260 may store pictures used for inter prediction.
  • 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 reconstructed picture in an output order.
  • the prediction unit 110 of the video encoding apparatus 100 and / or the prediction unit 230 of the video decoding apparatus 200 may derive the prediction sample by performing inter prediction on the current block.
  • inter prediction in order to derive motion information of the current block, not only motion information of neighboring blocks (i.e., spatial neighboring blocks) spatially adjacent to the current block, but also neighboring blocks (i.e., the previously decoded reference picture)
  • the motion information candidate list may be configured based on the motion information of the temporal neighboring block).
  • the motion information may include a motion vector and a reference picture index
  • the motion information candidate list may indicate a merge candidate list or a motion vector predictor (MVP) candidate list.
  • MVP motion vector predictor
  • a memory for storing the reference picture i.e., a decoded picture buffer (DPB)
  • DPB decoded picture buffer
  • the present invention proposes a method of saving memory and improving performance in storing motion information of predicted blocks in a decoded reference picture.
  • FIG. 3 exemplarily illustrates a neighboring block referred to to derive motion information of a current block.
  • (A), (b) and (c) of FIG. 3 may represent spatial neighboring blocks, and (d) of FIG. 3 may represent temporal neighboring blocks.
  • the spatial neighboring blocks include the left neighboring block A, the upper neighboring block B, the upper right corner peripheral block C, and the lower left corner neighboring. Block D and / or block E in the upper left corner.
  • the left neighboring block A is (-1, 2N-1) coordinates.
  • the upper peripheral block (B) is a block containing a sample of (2N-1, -1) coordinates
  • the upper right corner peripheral block (C) is a sample of (2N, -1) coordinates.
  • a lower left corner peripheral block (D) is a block including a sample of (-1, 2N) coordinates
  • an upper left corner peripheral block (E) is a sample of (-1, -1) coordinates. It may be a containing block.
  • the spatial neighboring blocks are the upper neighboring block A, the upper right corner peripheral block B, the lower left corner peripheral block C, and / or The upper left corner peripheral block D may be included.
  • the upper peripheral block A is (N-1, -1) coordinates.
  • the upper right corner peripheral block (B) is a block containing a sample of (N, -1) coordinates
  • a lower left corner peripheral block (C) is a sample of (-1, 2N) coordinates.
  • the block containing the upper left corner peripheral block (D) may be a block containing a sample of the (-1, -1) coordinates.
  • the spatial neighboring blocks may include the left neighboring block A, the upper right corner peripheral block B, the lower left corner peripheral block C, and / or The upper left corner peripheral block D may be included.
  • the left neighboring block A is (-1, N-1) coordinates.
  • the upper right corner peripheral block (B) is a block containing a sample of (2N, -1) coordinates
  • a lower left corner peripheral block (C) is a sample of (-1, N) coordinates.
  • the block containing the upper left corner peripheral block (D) may be a block containing a sample of the (-1, -1) coordinates.
  • the temporal neighboring block may represent a block located at the same position as the current block in a picture different from the current picture including the current block (ie, the reference picture).
  • another picture may be before or after the current picture on a picture order count (POC).
  • a reference picture used when deriving a temporal neighboring block may be referred to as a collocated picture.
  • a collocated block may indicate a block located at a position in a col picture corresponding to the position of the current block, and may be referred to as a col block.
  • the temporal neighboring block may include an A block located in the col picture corresponding to the lower right corner peripheral block and / or a B block located corresponding to the center lower right block of the current block.
  • FIG. 4 is a diagram schematically illustrating a method of compressing and storing motion information that may be applied when constructing a motion information candidate list according to the present invention.
  • the encoding apparatus 100 and / or the video decoding apparatus 200 may derive the spatial motion information candidate based on the spatial neighboring blocks of the current block as described with reference to FIG. 3 (S400).
  • the encoding apparatus 100 and / or the video decoding apparatus 200 may derive the temporal motion information candidate based on the temporal neighboring block of the current block as described with reference to FIG. 3 (S410).
  • the encoding apparatus 100 and / or the video decoding apparatus 200 may compress and store motion information of pictures that are already decoded (S415). For example, when prediction is performed on a reference picture (ie, col picture), predicted blocks may be generated and motion information for each predicted block may be derived. In this case, instead of storing all the motion information for each predicted block, the motion information in the reference picture may be compressed and stored in a predetermined storage unit.
  • a reference picture ie, col picture
  • predicted blocks may be generated and motion information for each predicted block may be derived.
  • the motion information in the reference picture may be compressed and stored in a predetermined storage unit.
  • the encoding apparatus 100 and / or the video decoding apparatus 200 may use motion information of a reference picture (ie, col picture) compressed and stored in a memory.
  • a reference picture ie, col picture
  • the encoding apparatus 100 and / or the video decoding apparatus 200 may be candidates for constructing a motion information candidate list based on the number of current candidates (spatial motion information candidates and temporal motion information candidates) derived in steps S100 to S110. Compared to the number, the combined bi-predictive candidate and the zero vector candidate may be added to the motion information candidate list according to the comparison result (S420 and S430).
  • the motion information compressed and stored in a predetermined storage unit as described above may be used in an inter prediction method of deriving a temporal motion information candidate with reference to a temporal neighboring block.
  • a merge candidate list may be generated using a motion vector corresponding to a col block which is a temporal neighboring block.
  • the temporal merge candidate in the merge candidate list may use motion information compressed and stored for the col block in the col picture.
  • a motion vector predictor candidate list may be generated using a motion vector corresponding to a col block which is a temporal neighboring block.
  • the temporal motion vector predictor candidate in the motion vector predictor candidate list may use the motion information compressed and stored for the col block in the col picture.
  • 5 exemplarily shows blocks partitioned for prediction within a picture.
  • the picture 500 illustrated in FIG. 5 represents a decoded picture, and the decoded picture may be stored in the memories 160 and 260 of the encoding apparatus 100 and / or the video decoding apparatus 200.
  • the decoded picture stored in the memory 160, 260 may be used as a reference picture (col picture) to derive motion information of the current block.
  • the picture 500 may be partitioned or divided into prediction blocks (ie, prediction units) to perform prediction in the decoding process as shown in FIG. 5.
  • prediction blocks ie, prediction units
  • inter prediction or intra prediction may be performed on the partitioned or divided prediction blocks, and prediction related information about each prediction block may be derived as a prediction result.
  • prediction related information of the prediction block 510 may be derived.
  • the prediction related information of the prediction block 510 may include motion information regarding a motion vector, a reference picture index, and the like.
  • FIG. 6 is a diagram schematically illustrating a method of storing motion information in units of a minimum prediction block.
  • a picture may be partitioned or partitioned into prediction blocks to perform prediction.
  • motion information may be stored in units of prediction blocks according to an implementation method of a decoder.
  • the motion information of each of the prediction blocks having different sizes in this way, in order to manage and use the motion information of each prediction block, not only the motion information but also the block partitioning information must be stored together. In this case, the computational complexity that occurs in the process of using the overhead of the amount of data to be stored and the motion information of the corresponding prediction block is considerable.
  • the minimum prediction block refers to the prediction block having the smallest size. For example, if the minimum prediction block has a 4x4 size, motion information may be stored in units of 4x4 size as shown in FIG. 6. However, even when the motion information is stored in the minimum prediction block unit, there is a considerable amount of data to be stored in the picture.
  • the high efficiency video coding (HEVC) standard which is one of the techniques related to video coding, requires 74 bits to store motion information in units of minimum prediction blocks, and stores it in 128-bit storage according to a hardware specification of the decoder.
  • HEVC high efficiency video coding
  • the present invention proposes a method of compressing and storing motion information in a storage unit larger than the size of the minimum prediction block, as shown in FIG. 6.
  • FIG. 7 is a diagram schematically illustrating a method of compressing and storing motion information in a predetermined storage unit according to the present invention.
  • the motion information of the prediction blocks split to perform the prediction in the picture may be compressed and stored in a storage unit having a size larger than the minimum prediction block size as shown in FIG. 7.
  • the storage unit for storing the motion information according to the present invention may be set to a block of size NxN larger than 4x4 size.
  • N may be an integer.
  • the storage unit of NxN size may be set to a block having a size of 8x8, 16x16, 32x32, 64x64.
  • the table below shows the results of experimental verification of the case where the motion information is compressed in a storage unit larger than the minimum predicted block size proposed in the present invention.
  • Table 1 shows the performance when the 16x16 storage unit proposed by the present invention is compressed as compared with the 4x4 unit, which is the minimum prediction block size.
  • Table 2 shows the performance of the 32x32 storage unit proposed by the present invention when compared to the 4x4 unit, which is the minimum prediction block size.
  • Table 3 shows the performance in the case of compressing in the 64x64 storage unit proposed by the present invention, compared to the result of compressing in the 4x4 unit, which is the minimum predicted block size.
  • FIG. 8 exemplarily illustrates a case in which one or more prediction blocks are included in a storage unit having a predetermined size.
  • one storage unit may include one or more prediction blocks.
  • each of the one or more prediction blocks includes motion information.
  • an n th prediction block in a storage unit may include an n th motion vector (eg, MV n ) as motion information.
  • n 0, 1, ..., 10 may be.
  • the present invention proposes a method of determining representative motion information to be stored on behalf of a corresponding storage unit among motion information of prediction blocks included in a storage unit having a predetermined size.
  • FIG. 9 exemplarily shows spatial position candidates used to determine representative motion information stored on behalf of one storage unit according to the present invention.
  • the spatial location candidate may designate a specific location within one storage unit and be determined based on the designated location.
  • a spatial location candidate includes a block including a sample located at a center in a storage unit (C candidate block) and a block including a sample located at a top-left. (TL candidate block), a block located at the top-right (TR candidate block), a block located at the bottom-left (BL candidate block) and a block located at the bottom-right It may include at least one of (BR candidate block).
  • the spatial position candidate may be predefined.
  • FIG. 10 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit having a predetermined size based on a spatial position candidate according to the present invention.
  • the method of FIG. 10 may be performed by the encoding apparatus 100 and the decoding apparatus 200. However, the method of FIG. 10 will be described as being performed by the decoding apparatus 200 for convenience of description.
  • the decoding apparatus 200 iterates in accordance with a predetermined order for the spatial position candidates in the storage unit, and determines whether the corresponding spatial position candidates are available, and determines the motion information of the available spatial position candidates.
  • the spatial position candidates may include a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block as illustrated in FIG. 9.
  • the predetermined traversal order of the spatial position candidates may be a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block.
  • the decoding apparatus 200 may determine whether a C candidate block in a storage unit having a predetermined size is an available spatial position candidate (S1000). According to an embodiment, the decoding apparatus 200 may determine whether the C candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the C candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1005). In this case, the decoding apparatus 200 may not perform a process of determining whether an available spatial position candidate is available for the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block.
  • the decoding apparatus 200 may determine whether the TL candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1010). In an embodiment, the decoding apparatus 200 may determine whether the TL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the TL candidate block as representative motion information in the storage unit, and compress and store the motion information of the TL candidate block in operation S1015. In this case, the decoding apparatus 200 may not perform a process of determining whether an available spatial position candidate is available for the TR candidate block, the BL candidate block, and the BR candidate block.
  • the decoding apparatus 200 may determine whether the TR candidate block in the storage unit having a predetermined size is an available spatial position candidate (S1020). According to an embodiment, the decoding apparatus 200 may determine whether the TR candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the TR candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1025). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the BL candidate block and the BR candidate block.
  • the decoding apparatus 200 may determine whether the BL candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1030). In an embodiment, the decoding apparatus 200 may determine whether the BL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the BL candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1035). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the BR candidate block.
  • the decoding apparatus 200 may determine whether the BR candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1040). According to an embodiment, the decoding apparatus 200 may determine whether the BR candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is a block predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the BR candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1045).
  • the decoding apparatus 200 may determine that there are no available candidates among the spatial position candidates, and set a default value as the representative motion information in the storage unit (S1050).
  • the default value may be a motion vector having a value of zero.
  • the decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit while iterating in the order of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block. There is (S1060).
  • FIG. 11 is a flowchart illustrating another embodiment of a method of determining representative motion information in a storage unit of a predetermined size based on a spatial position candidate according to the present invention.
  • the method of FIG. 11 may be performed by the encoding apparatus 100 and the decoding apparatus 200, the method of FIG. 11 will be described as being performed by the decoding apparatus 200 for convenience of description.
  • the decoding apparatus 200 iterates in accordance with a predetermined order for the spatial position candidates in the storage unit, and determines whether the corresponding spatial position candidates are available, and determines the motion information of the available spatial position candidates.
  • the spatial position candidates may include a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block as illustrated in FIG. 9.
  • the predetermined traversal order of the spatial position candidates may be in the order of the TL candidate block, the C candidate block, the BL candidate block, the TR candidate block, and the BR candidate block.
  • the decoding apparatus 200 may determine whether a TL candidate block in a storage unit having a predetermined size is an available spatial position candidate (S1100). In an embodiment, the decoding apparatus 200 may determine whether the TL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the TL candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1105). In this case, the decoding apparatus 200 may not perform a process of determining whether an available spatial position candidate is available for the C candidate block, the BL candidate block, the TR candidate block, and the BR candidate block.
  • the decoding apparatus 200 may determine whether the C candidate block in the storage unit having a predetermined size is an available spatial position candidate (S1110). According to an embodiment, the decoding apparatus 200 may determine whether the C candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the C candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1115). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the BL candidate block, the TR candidate block, and the BR candidate block.
  • the decoding apparatus 200 may determine whether the BL candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1120). In an embodiment, the decoding apparatus 200 may determine whether the BL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the BL candidate block as the representative motion information in the storage unit, and compress and store the motion information (S1125). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the TR candidate block and the BR candidate block.
  • the decoding apparatus 200 may determine whether the TR candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1130). According to an embodiment, the decoding apparatus 200 may determine whether the TR candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the TR candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1135). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the BR candidate block.
  • the decoding apparatus 200 may determine whether the BR candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1140). According to an embodiment, the decoding apparatus 200 may determine whether the BR candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is a block predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the BR candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1145).
  • the decoding apparatus 200 may determine that there are no available candidates among the spatial position candidates, and set a default value as the representative motion information in the storage unit (S1150).
  • the default value may be a motion vector having a value of zero.
  • the decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit while circulating in the order of the TL candidate block, the C candidate block, the BL candidate block, the TR candidate block, and the BR candidate block. There is (S1160).
  • the above-described traversal order of the spatial position candidates in FIGS. 10 and 11 is merely an example, and the spatial position candidates may be traversed in a different order from that of FIGS. 10 and 11.
  • all spatial position candidates shown in FIG. 9 may be traversed in a predetermined order, and the motion information of the first available spatial position candidates may be determined and stored as representative motion information of the corresponding storage unit.
  • the representative motion information may be determined with reference to the optimized spatial position candidate in consideration of hardware complexity.
  • the table below shows the results of the experimental verification of the case of determining the representative motion information for the storage unit of the predetermined size using the optimized spatial position candidate proposed in the present invention.
  • Table 4 shows the performance of using the spatial position candidate (TL candidate block) optimized for the 16x16 storage unit proposed by the present invention, compared to the compression result of the 4x4 unit, which is the minimum prediction block size.
  • Table 5 shows the performance when the spatial position candidate (C candidate block) optimized for the 16x16 storage unit proposed by the present invention is compared with the result of compressing the 4x4 unit, which is the minimum prediction block size.
  • TL candidate blocks and C candidate blocks may be used as optimized spatial position candidates.
  • FIG. 12 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit having a predetermined size with reference to an optimized spatial position candidate among spatial position candidates according to the present invention.
  • the method of FIG. 12 may be performed by the encoding apparatus 100 and the decoding apparatus 200, the method of FIG. 12 will be described as being performed by the decoding apparatus 200 for convenience of description.
  • the decoding apparatus 200 may determine the representative motion information using the TL candidate block among the spatial position candidates.
  • the decoding apparatus 200 may determine whether a TL candidate block in a storage unit of a predetermined size is an available spatial position candidate (S1200). In an embodiment, the decoding apparatus 200 may determine whether the TL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the TL candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1205).
  • the decoding apparatus 200 may set a default value as the representative motion information in the storage unit (S1210).
  • the default value may be a motion vector having a value of zero.
  • the decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit (S1220).
  • FIG. 13 is a flowchart illustrating another embodiment of a method of determining representative motion information in a storage unit having a predetermined size with reference to an optimized spatial position candidate among spatial position candidates according to the present invention.
  • the method of FIG. 13 may be performed by the encoding apparatus 100 and the decoding apparatus 200, the method of FIG. 13 will be described as being performed by the decoding apparatus 200 for convenience of description.
  • the decoding apparatus 200 may determine the representative motion information using the C candidate block among the spatial position candidates.
  • the decoding apparatus 200 may determine whether a C candidate block in a storage unit having a predetermined size is an available spatial position candidate (S1300). According to an embodiment, the decoding apparatus 200 may determine whether the C candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the C candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1305).
  • the decoding apparatus 200 may set a default value as the representative motion information in the storage unit (S1310).
  • the default value may be a motion vector having a value of zero.
  • the decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit in operation S1320.
  • one optimized spatial position candidate may be used in consideration of hardware complexity, but one or more optimized spatial position candidates may be used in consideration of a trade-off condition of compression performance and complexity. have.
  • the table below shows the results of the experimental verification of the case of determining the representative motion information for the storage unit of the predetermined size using one or more optimized spatial position candidates proposed in the present invention.
  • Table 6 shows the performance of using two optimized spatial position candidates (C candidate block and TL candidate block) in the 16x16 storage unit proposed by the present invention, compared with the compression result of 4x4 unit, which is the minimum prediction block size. It is shown.
  • the traversal order of the spatial candidate blocks is a C candidate block and a TL candidate block.
  • Table 7 shows all spatial position candidates (C candidate block, TL candidate block, TR candidate block, BL candidate block, It shows the performance when using the BR candidate block).
  • the traversal order of the spatial candidate blocks is a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block.
  • FIG. 14 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit of a predetermined size with reference to two optimized spatial position candidates among spatial position candidates according to the present invention.
  • the method of FIG. 14 may be performed by the encoding apparatus 100 and the decoding apparatus 200, it is described in FIG. 14 as being performed by the decoding apparatus 200 for convenience of description.
  • the decoding apparatus 200 may determine the representative motion information using the C candidate block and the TL candidate block among the spatial position candidates. In this case, the traversal order of the spatial position candidates may be searched in the order of the C candidate block and the TL candidate block.
  • the decoding apparatus 200 may determine whether a C candidate block in a storage unit having a predetermined size is an available spatial position candidate (S1400). According to an embodiment, the decoding apparatus 200 may determine whether the C candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the C candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1405). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the TL candidate block.
  • the decoding apparatus 200 may determine whether the TL candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1410). In an embodiment, the decoding apparatus 200 may determine whether the TL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
  • the decoding apparatus 200 may determine the motion information of the TL candidate block as representative motion information in the storage unit, and compress and store the motion information of the TL candidate block in operation S1415.
  • the decoding apparatus 200 may determine that there are no available candidates among the spatial position candidates, and set a default value as the representative motion information in the storage unit (S1420).
  • the default value may be a motion vector having a value of zero.
  • the decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit while iterating in the order of the C candidate block and the TL candidate block (S1430).
  • the present invention may determine the representative motion information stored on behalf of the storage unit based on the spatial position candidate (s) as described above, and based on the area of the prediction blocks included in the storage unit of the predetermined size, the representative motion information may be determined. You can also decide.
  • FIG. 15 exemplarily illustrates prediction blocks included in one storage unit to illustrate a method of determining representative motion information based on an area of prediction blocks in a storage unit having a predetermined size according to the present invention.
  • One storage unit may include prediction blocks, and the areas of each prediction block may be different as shown in FIG. 15.
  • the motion information of the prediction block having the largest area among the prediction blocks included in the storage unit having a predetermined size may be used as the representative motion information to be stored in the storage unit.
  • the prediction block including the motion vector of MV 0 occupies about 25% of the largest area in the storage unit.
  • the motion vector of MV 0 may be used as the representative motion information in the corresponding storage unit.
  • the method of determining the representative motion information based on the area of the prediction blocks included in the storage unit may be more effective in terms of hardware implementation than the process of searching for the spatial position candidate. That is, in the hardware implementation, it is possible to remove the position computation complexity required to find a predefined position (ie, spatial position candidate), and to read the area information of the prediction block by performing a simple read operation. In terms of hardware, there is an advantage.
  • FIG. 16 is a diagram illustrating an embodiment of exception processing for representative motion information stored on behalf of one storage unit according to the present invention. Although the method of FIG. 16 may be performed by the encoding apparatus 100 and the decoding apparatus 200, the method of FIG. 16 is described as being performed by the decoding apparatus 200 for convenience of description.
  • the decoding apparatus 200 traverses the spatial position candidates in a predetermined order and determines whether the corresponding spatial position candidates are available, and represents the motion information of the available spatial position candidates as representative motion information.
  • the spatial position candidates may include a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block as illustrated in FIG. 9.
  • the predetermined traversal order of the spatial position candidates may be a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block.
  • the decoding apparatus 200 When the decoding apparatus 200 iterates in the order of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block, and determines that all spatial position candidates are not available, the decoding device 200 makes an exception to the corresponding storage unit. You can do it. That is, since it is determined that all the spatial position candidates are not the blocks predicted in the inter prediction mode, the decoding apparatus 200 may set the representative motion information of the corresponding storage unit to the intra prediction mode. In other words, since all spatial position candidates are blocks predicted in the intra prediction mode (rather than the inter prediction mode), unlike the case in which the representative motion information in the storage unit is set to the motion vector having a value of 0 in the above-described embodiments, Intra prediction mode may be set.
  • 17 is a flowchart schematically illustrating an image encoding method by an encoding apparatus according to the present invention.
  • the method of FIG. 17 may be performed by the encoding apparatus 100 of FIG. 1. More specifically, steps S1700 to S1730 may be performed by the prediction unit 110 or the memory 160 disclosed in FIG. 1, and step S1740 may be performed by the entropy encoding unit 130 illustrated in FIG. 1. In addition, the detailed description overlapping with the contents described with reference to FIGS. 1 to 16 will be omitted or simplified. In addition, the encoding apparatus 100 of FIG. 17 may perform operations corresponding to the decoding apparatus 200 of FIG. 18, which will be described later.
  • the encoding apparatus 100 may derive temporal motion information on the current block based on the temporal neighboring block of the current block (S1700).
  • the temporal neighboring block indicates a col block located corresponding to the current block in the reference picture.
  • the temporal neighboring block is an A block located in the reference picture (ie, the col picture) corresponding to the lower right corner peripheral block of the current block and / or the lower right block of the current block. It may include a B block located corresponding to.
  • the encoding apparatus 100 may first determine whether an A block is available as a col block of a current block in a reference picture. That is, availability may be determined by determining whether the A block is used only for intra prediction or outside a picture boundary. Only when the A block is not available, the encoding apparatus 100 may use the B block as the col block of the current block in the reference picture.
  • the temporal motion information includes representative motion information stored in a storage unit corresponding to the temporal neighboring block (ie, col block) among the representative motion information stored by compressing the reference picture (ie, col picture) into a storage unit having a predetermined size. It may be the same motion information.
  • the storage unit having a predetermined size may be a block having a size larger than the minimum prediction block size.
  • the minimum prediction block size is 4x4 size
  • the storage unit having a predetermined size may be an NxN size block larger than the 4x4 size
  • the NxN size may be 8x8, 16x16, 32x32, 64x64.
  • the size of the storage unit may be predetermined or may be information signaled from the encoding apparatus 110 to the decoding apparatus 200.
  • one picture when it is decoded, it may be stored in the DPB, and the picture stored in the DPB may be used as a reference picture referenced when decoding another picture.
  • the picture stored in the DPB ie, the reference picture
  • one picture may include representative motion information as many as the number of storage units in the picture.
  • temporal motion information derived based on temporal neighboring blocks refers to representative motion information stored on behalf of a storage unit including temporal neighboring blocks (ie, col blocks) in a reference picture.
  • the encoding apparatus 100 compresses and stores the representative motion information for a block (that is, prediction blocks) in the reference picture in a storage unit having a predetermined size. May be determined and the determined representative motion information may be stored as motion information of blocks included in a storage unit having a predetermined size.
  • the encoding apparatus 100 may determine an available spatial position candidate among the spatial position candidates included in the storage unit of the predetermined size, and may represent the motion information of the available spatial position candidate in the storage unit of the predetermined size. Can be determined by the motion information.
  • the spatial position candidates include a C candidate block located in C (Center) in a storage unit of a predetermined size, a TL candidate block located in Top-Left (TL), a TR candidate block located in Top-Right (TR), It may include at least one of a BL candidate block located in bottom-left (BL) and a BR candidate block located in bottom-right (BR).
  • the spatial position candidates may be predefined.
  • the encoding apparatus 100 includes a spatial position including at least one of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block. It is possible to traverse the candidates in a predetermined order to determine whether the corresponding spatial position candidates are available.
  • the encoding apparatus 100 may determine the representative motion information stored in the storage unit of the predetermined size as a default value.
  • the default value may be a motion vector or intra mode with a value of zero.
  • the encoding apparatus 100 may determine the representative motion information stored in the storage unit of the predetermined size based on the area of blocks (that is, the prediction blocks) included in the storage unit of the predetermined size.
  • a method of compressing and storing representative motion information for each reference unit for each storage unit has been described in detail with reference to FIGS. 7 to 16. Therefore, a detailed description thereof will be omitted.
  • various methods of compressing and storing the representative motion information for each of the storage units for the reference picture disclosed in FIGS. 7 to 16 may be applied.
  • the encoding apparatus 100 may construct a motion information candidate list for the current block including temporal motion information (S1710).
  • the encoding apparatus 100 may generate a merge candidate list using a motion vector corresponding to a col block which is a temporal neighboring block. That is, when the merge mode is applied, the merge candidate list may be configured as the motion information candidate list.
  • a temporal merge candidate (ie, temporal motion information) in the merge candidate list may use motion information compressed and stored for the col block in the col picture.
  • the temporal merge candidate ie, temporal motion information refers to representative motion information stored by compressing and storing the corresponding storage unit including the col block in the col picture.
  • the encoding apparatus 100 may generate a motion vector predictor candidate list using a motion vector corresponding to a col block which is a temporal neighboring block. That is, when the MVP mode is applied, the motion vector predictor candidate list may be configured as the motion information candidate list.
  • the temporal motion vector predictor candidate (ie, temporal motion information) in the motion vector predictor candidate list may use motion information compressed and stored for the col block in the col picture.
  • the temporal motion vector predictor candidate ie, temporal motion information refers to representative motion information compressed and stored with respect to the corresponding storage unit including the col block in the col picture.
  • the encoding apparatus 100 may derive motion information of the current block based on the motion information candidate list in operation S1720.
  • the encoding apparatus 100 may select an optimal motion information candidate from among motion information candidates included in the motion information candidate list based on a rate-distortion (RD) cost, and use the selected motion information candidate as the motion of the current block. Can be derived from information.
  • RD rate-distortion
  • the encoding apparatus 100 may perform prediction on the current block based on the motion information of the current block (S1730).
  • the encoding apparatus 100 may derive the prediction samples of the current block by performing inter prediction on the current block based on the motion information of the current block.
  • the encoding apparatus 100 may derive residual samples of the current block based on prediction samples of the current block.
  • the encoding apparatus 100 may encode residual information regarding the residual samples and signal the decoding apparatus 200 to the decoding apparatus 200.
  • the encoding apparatus 100 may encode motion information of the current block (S1740).
  • the encoding apparatus 100 may encode information about a motion information candidate selected in a motion information candidate list based on a rate-distortion (RD) cost.
  • the encoding apparatus 100 may encode and index the candidate index information indicating the motion information candidate to be used as the motion information of the current block in the motion information candidate list and to the decoding apparatus 200.
  • RD rate-distortion
  • FIG. 18 is a flowchart schematically illustrating an image decoding method by a decoding apparatus according to the present invention.
  • the method of FIG. 18 may be performed by the decoding apparatus 200 of FIG. 2. More specifically, steps S1800 to S1830 may be performed by the predictor 230 or the memory 260 disclosed in FIG. 2. In addition, some operations may be performed by the entropy decoding unit 210 disclosed in FIG. 2. In addition, the detailed description overlapping with the contents described with reference to FIGS. 1 to 16 will be omitted or simplified. In addition, the decoding apparatus 200 of FIG. 18 may perform operations corresponding to the encoding apparatus 100 of FIG. 17.
  • the decoding apparatus 200 may derive temporal motion information on the current block based on the temporal neighboring block of the current block (S1800).
  • the temporal neighboring block indicates a col block located corresponding to the current block in the reference picture.
  • the temporal neighboring block is an A block located in the reference picture (ie, the col picture) corresponding to the lower right corner peripheral block of the current block and / or the lower right block of the current block. It may include a B block located corresponding to.
  • the decoding apparatus 200 may first determine whether an A block is available as a col block of a current block in a reference picture. That is, availability may be determined by determining whether the A block is used only for intra prediction or outside a picture boundary. Only when the A block is not available, the decoding apparatus 200 may use the B block as the col block of the current block in the reference picture.
  • the temporal motion information includes representative motion information stored in a storage unit corresponding to the temporal neighboring block (ie, col block) among the representative motion information stored by compressing the reference picture (ie, col picture) into a storage unit having a predetermined size. It may be the same motion information.
  • the storage unit having a predetermined size may be a block having a size larger than the minimum prediction block size.
  • the minimum prediction block size is 4x4 size
  • the storage unit having a predetermined size may be an NxN size block larger than the 4x4 size
  • the NxN size may be 8x8, 16x16, 32x32, 64x64.
  • the size of the storage unit may be predetermined or may be information signaled from the encoding apparatus 110 to the decoding apparatus 200.
  • one picture when it is decoded, it may be stored in the DPB, and the picture stored in the DPB may be used as a reference picture referred to when decoding another picture.
  • the picture stored in the DPB ie, the reference picture
  • one picture may include representative motion information as many as the number of storage units in the picture.
  • temporal motion information derived based on temporal neighboring blocks refers to representative motion information stored on behalf of a storage unit including temporal neighboring blocks (ie, col blocks) in a reference picture.
  • the decoding apparatus 200 compresses and stores the representative motion information in a storage unit having a predetermined size with respect to blocks (ie, prediction blocks) in the reference picture. May be determined and the determined representative motion information may be stored as motion information of blocks included in a storage unit having a predetermined size.
  • the decoding apparatus 200 may determine an available spatial position candidate among the spatial position candidates included in the storage unit having a predetermined size, and may represent the motion information of the available spatial position candidate in the storage unit having the predetermined size. Can be determined by the motion information.
  • the spatial position candidates include a C candidate block located in C (Center) in a storage unit of a predetermined size, a TL candidate block located in Top-Left (TL), a TR candidate block located in Top-Right (TR), It may include at least one of a BL candidate block located in bottom-left (BL) and a BR candidate block located in bottom-right (BR).
  • the spatial position candidates may be predefined.
  • the decoding apparatus 200 includes a spatial position including at least one of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block. It is possible to traverse the candidates in a predetermined order to determine whether the corresponding spatial position candidates are available.
  • the decoding apparatus 200 may determine the representative motion information stored in the storage unit of the predetermined size as a default value.
  • the default value may be a motion vector or intra mode with a value of zero.
  • the decoding apparatus 200 may determine the representative motion information stored in the storage unit of the predetermined size based on the area of the blocks (that is, the prediction blocks) included in the storage unit of the predetermined size.
  • a method of compressing and storing representative motion information for each reference unit for each storage unit has been described in detail with reference to FIGS. 7 to 16. Therefore, a detailed description thereof will be omitted.
  • various methods of compressing and storing the representative motion information for each of the storage units for the reference picture disclosed in FIGS. 7 to 16 may be applied.
  • the decoding apparatus 200 may construct a motion information candidate list for the current block including temporal motion information (S1810).
  • the decoding apparatus 200 may generate a merge candidate list using a motion vector corresponding to a col block which is a temporal neighboring block. That is, when the merge mode is applied, the merge candidate list may be configured as the motion information candidate list.
  • a temporal merge candidate (ie, temporal motion information) in the merge candidate list may use motion information compressed and stored for the col block in the col picture.
  • the temporal merge candidate ie, temporal motion information refers to representative motion information stored by compressing and storing the corresponding storage unit including the col block in the col picture.
  • the decoding apparatus 200 may generate a motion vector predictor candidate list using a motion vector corresponding to a col block which is a temporal neighboring block. That is, when the MVP mode is applied, the motion vector predictor candidate list may be configured as the motion information candidate list.
  • the temporal motion vector predictor candidate (ie, temporal motion information) in the motion vector predictor candidate list may use motion information compressed and stored for the col block in the col picture.
  • the temporal motion vector predictor candidate ie, temporal motion information refers to representative motion information compressed and stored with respect to the corresponding storage unit including the col block in the col picture.
  • the decoding apparatus 200 may derive the motion information of the current block based on the motion information candidate list (S1820).
  • the decoding apparatus 200 may select the motion information candidate indicated by the candidate index from the motion information candidates included in the motion information candidate list and derive the motion information candidate indicated by the current block.
  • candidate index information may be signaled from the encoding apparatus 100.
  • the decoding apparatus 200 may perform prediction on the current block based on the motion information of the current block (S1830).
  • the decoding apparatus 200 may derive the prediction samples of the current block by performing inter prediction on the current block based on the motion information of the current block.
  • the decoding apparatus 200 may derive the residual samples based on the residual information of the current block, and generate a reconstructed picture based on the derived residual samples and the prediction samples.
  • the residual information may be signaled from the encoding apparatus 100.
  • the embodiments described herein may be implemented and performed on a processor, microprocessor, controller, or chip.
  • the functional units shown in each drawing may be implemented and performed on a computer, processor, microprocessor, controller, or chip.
  • information for implementation (ex. Information on instructions) or an algorithm may be stored in a digital storage medium.
  • the decoding apparatus and encoding apparatus to which the present invention is applied include a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, a real time communication device such as video communication, and mobile streaming.
  • the OTT video device may include a game console, a Blu-ray player, an internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), and the like.
  • the processing method to which the present invention is applied can be produced in the form of a program executed by a computer, and can be stored in a computer-readable recording medium.
  • Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium.
  • the computer readable recording medium includes all kinds of storage devices and distributed storage devices in which computer readable data is stored.
  • the computer-readable recording medium may be, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical disc. It may include a data storage device.
  • the computer-readable recording medium also includes media embodied in the form of a carrier wave (for example, transmission over the Internet).
  • the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.
  • an embodiment of the present invention may be implemented as a computer program product by program code, which may be performed on a computer by an embodiment of the present invention.
  • the program code may be stored on a carrier readable by a computer.
  • FIG. 19 exemplarily shows a structure diagram of a content streaming system to which the present invention is applied.
  • the content streaming system to which the present invention is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
  • the encoding server compresses content input from multimedia input devices such as a smart phone, a camera, a camcorder, etc. into digital data to generate a bitstream and transmit the bitstream to the streaming server.
  • multimedia input devices such as smart phones, cameras, camcorders, etc. directly generate a bitstream
  • the encoding server may be omitted.
  • the bitstream may be generated by an encoding method or a bitstream generation method to which the present invention is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
  • the streaming server transmits the multimedia data to the user device based on the user's request through the web server, and the web server serves as a medium for informing the user of what service.
  • the web server delivers it to a streaming server, and the streaming server transmits multimedia data to the user.
  • the content streaming system may include a separate control server.
  • the control server plays a role of controlling a command / response between devices in the content streaming system.
  • the streaming server may receive content from a media store and / or an encoding server. For example, when the content is received from the encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.
  • Examples of the user device include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), navigation, a slate PC, Tablet PCs, ultrabooks, wearable devices, such as smartwatches, glass glasses, head mounted displays, digital TVs, desktops Computer, digital signage, and the like.
  • PDA personal digital assistant
  • PMP portable multimedia player
  • slate PC slate PC
  • Tablet PCs ultrabooks
  • wearable devices such as smartwatches, glass glasses, head mounted displays, digital TVs, desktops Computer, digital signage, and the like.
  • Each server in the content streaming system may be operated as a distributed server, in which case data received from each server may be distributed.

Landscapes

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

Abstract

A video decoding method performed by a decoding device according to the present invention comprises: a step for deriving temporal motion information about a current block on the basis of a temporally adjacent block of the current block; a step for compiling a motion information candidate list for the current block, the list including the temporal motion information; a step for deriving motion information about the current block on the basis of the motion information candidate list; and a step for making a prediction about the current block on the basis of the motion information about the current block, wherein the temporally adjacent block is a collocated block (col block) which is positioned corresponding to the current block in a reference picture, and the temporal motion information is the same as representative motion information stored in storage units corresponding to the col block among pieces of representative motion information compressed and stored in prescribed storage units with respect to the reference picture.

Description

움직임 정보 압축을 이용한 인터 예측 방법 및 그 장치Inter prediction method using motion information compression and its device
본 발명은 영상 코딩 기술에 관한 것으로서, 보다 상세하게는 영상 코딩 시스템에서 움직임 정보 압축을 이용한 인터 예측 방법 및 그 장치에 관한 것이다. The present invention relates to an image coding technology, and more particularly, to an inter prediction method and apparatus using motion information compression in an image coding system.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다. Recently, the demand for high resolution and high quality images such as high definition (HD) images and ultra high definition (UHD) images is increasing in various fields. The higher the resolution and the higher quality of the image data, the more information or bit rate is transmitted than the existing image data. Therefore, the image data can be transmitted by using a medium such as a conventional wired / wireless broadband line or by using a conventional storage medium. In the case of storage, the transmission cost and the storage cost are increased.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위해 고효율의 영상 압축 기술이 요구된다.Accordingly, a high efficiency image compression technique is required to effectively transmit, store, and reproduce high resolution, high quality image information.
본 발명의 기술적 과제는 영상 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.An object of the present invention is to provide a method and apparatus for improving image coding efficiency.
본 발명의 다른 기술적 과제는 인터 예측에 기반한 영상 코딩의 효율을 높이는 방법 및 장치를 제공함에 있다. Another object of the present invention is to provide a method and apparatus for improving the efficiency of image coding based on inter prediction.
본 발명의 또 다른 기술적 과제는 움직임 정보 압축을 이용한 인터 예측 방법 및 장치를 제공함에 있다.Another technical problem of the present invention is to provide an inter prediction method and apparatus using motion information compression.
본 발명의 또 다른 기술적 과제는 시간적 움직임 정보를 도출하기 위한 정보를 압축 저장하여 메모리의 용량을 절감하는 방법 및 장치를 제공함에 있다.Another technical problem of the present invention is to provide a method and apparatus for reducing the memory capacity by compressing and storing information for deriving temporal motion information.
본 발명의 또 다른 기술적 과제는 움직임 정보 압축 시에 계산 복잡도를 줄이고 압축 성능을 향상시키는 방법 및 장치를 제공함에 있다. Another technical problem of the present invention is to provide a method and apparatus for reducing computation complexity and improving compression performance in motion information compression.
본 발명의 일 실시예에 따르면, 디코딩 장치에 의하여 수행되는 영상 디코딩 방법이 제공된다. 상기 방법은 현재 블록의 시간적(temporal) 주변 블록을 기반으로 상기 현재 블록에 대한 시간적 움직임 정보를 도출하는 단계, 상기 시간적 움직임 정보를 포함하는 상기 현재 블록에 대한 움직임 정보 후보 리스트를 구성하는 단계, 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계, 및 상기 현재 블록의 움직임 정보를 기반으로 상기 현재 블록에 대한 예측을 수행하는 단계를 포함하며, 상기 시간적 주변 블록은, 참조 픽처 내에서 상기 현재 블록에 대응하여 위치하는 col 블록(collocated block)이며, 상기 시간적 움직임 정보는, 상기 참조 픽처에 대해 소정의 저장 단위로 압축하여 저장된 대표 움직임 정보들 중에서, 상기 col 블록에 대응하는 저장 단위에 저장된 대표 움직임 정보와 같은 것을 특징으로 한다. According to an embodiment of the present invention, there is provided an image decoding method performed by a decoding apparatus. The method may include deriving temporal motion information for the current block based on a temporal neighboring block of the current block, constructing a motion information candidate list for the current block including the temporal motion information, Deriving motion information of the current block based on a motion information candidate list, and performing prediction on the current block based on motion information of the current block, wherein the temporal neighboring block includes: a reference picture; It is a col block (collocated block) positioned corresponding to the current block in the, wherein the temporal motion information is stored corresponding to the col block among the representative motion information stored by compressing the reference picture in a predetermined storage unit And representative motion information stored in the unit.
본 발명의 다른 일 실시예에 따르면, 인코딩 장치에 의하여 수행되는 영상 인코딩 방법이 제공된다. 상기 방법은 현재 블록의 시간적(temporal) 주변 블록을 기반으로 상기 현재 블록에 대한 시간적 움직임 정보를 도출하는 단계, 상기 시간적 움직임 정보를 포함하는 상기 현재 블록에 대한 움직임 정보 후보 리스트를 구성하는 단계, 상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계, 상기 현재 블록의 움직임 정보를 기반으로 상기 현재 블록에 대한 예측을 수행하는 단계, 및 상기 현재 블록의 움직임 정보를 인코딩하는 단계를 포함하며, 상기 시간적 주변 블록은, 참조 픽처 내에서 상기 현재 블록에 대응하여 위치하는 col 블록(collocated block)이며, 상기 시간적 움직임 정보는, 상기 참조 픽처에 대해 소정의 저장 단위로 압축하여 저장된 대표 움직임 정보들 중에서, 상기 col 블록에 대응하는 저장 단위에 저장된 대표 움직임 정보와 같은 것을 특징으로 한다. According to another embodiment of the present invention, an image encoding method performed by an encoding apparatus is provided. The method may include deriving temporal motion information for the current block based on a temporal neighboring block of the current block, constructing a motion information candidate list for the current block including the temporal motion information, Deriving motion information of the current block based on a motion information candidate list, performing prediction on the current block based on motion information of the current block, and encoding motion information of the current block And the temporal neighboring block is a col block (located block) positioned corresponding to the current block in the reference picture, and the temporal motion information is stored in a predetermined storage unit with respect to the reference picture. Among information, a table stored in a storage unit corresponding to the col block. And table motion information.
본 발명에 따르면 전반적인 영상/비디오 압축 효율을 높일 수 있다.According to the present invention, the overall video / video compression efficiency can be improved.
본 발명에 따르면 인터 예측에 기반한 영상 코딩의 효율을 높일 수 있다.According to the present invention, the efficiency of image coding based on inter prediction can be improved.
본 발명에 따르면 움직임 정보 압축을 이용한 인터 예측 및 영상 코딩의 효율을 높일 수 있다.According to the present invention, the efficiency of inter prediction and image coding using motion information compression can be improved.
본 발명에 따르면 움직임 정보 압축 시의 계산 복잡도를 줄이고 압축 성능을 높일 수 있다. According to the present invention, it is possible to reduce the computational complexity in motion information compression and to increase the compression performance.
본 발명에 따르면 움직임 정보 압축을 수행함에 따라 메모리 용량을 절감하여 하드웨어 비용을 절감할 수 있다. According to the present invention, hardware cost can be reduced by reducing memory capacity as motion information compression is performed.
본 발명에 따르면 움직임 정보 압축을 위한 공간적 위치를 적응적으로 사용함으로써 움직임 정보 압축으로 인한 성능 감소를 최소화할 수 있다. According to the present invention, it is possible to minimize the performance reduction due to motion information compression by adaptively using spatial location for motion information compression.
도 1은 본 발명이 적용될 수 있는 비디오 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.1 is a diagram schematically illustrating a configuration of a video encoding apparatus to which the present invention may be applied.
도 2는 본 발명이 적용될 수 있는 비디오 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.2 is a diagram schematically illustrating a configuration of a video decoding apparatus to which the present invention may be applied.
도 3은 현재 블록의 움직임 정보를 도출하기 위하여 참조되는 주변 블록을 예시적으로 나타낸다. 3 exemplarily illustrates a neighboring block referred to to derive motion information of a current block.
도 4는 본 발명에 따라서 움직임 정보 후보 리스트를 구성할 때 적용될 수 있는 움직임 정보를 압축하여 저장하는 방법을 개략적으로 설명하기 위한 도면이다. 4 is a diagram schematically illustrating a method of compressing and storing motion information that may be applied when constructing a motion information candidate list according to the present invention.
도 5는 픽처 내에서 예측을 위해 분할된 블록들을 예시적으로 나타낸다.5 exemplarily shows blocks partitioned for prediction within a picture.
도 6은 최소 예측 블록 단위로 움직임 정보를 저장하는 방법을 개략적으로 설명하기 위한 도면이다. FIG. 6 is a diagram schematically illustrating a method of storing motion information in units of a minimum prediction block.
도 7은 본 발명에 따라서 소정의 저장 단위로 움직임 정보를 압축하여 저장하는 방법을 개략적으로 설명하기 위한 도면이다. 7 is a diagram schematically illustrating a method of compressing and storing motion information in a predetermined storage unit according to the present invention.
도 8은 소정 크기의 저장 단위 내 하나 이상의 예측 블록을 포함하고 있는 경우를 예시적으로 나타낸다. 8 exemplarily illustrates a case in which one or more prediction blocks are included in a storage unit having a predetermined size.
도 9는 본 발명에 따라 하나의 저장 단위를 대표하여 저장되는 대표 움직임 정보를 결정하기 위해서 사용되는 공간적 위치 후보들을 예시적으로 나타낸다.FIG. 9 exemplarily shows spatial position candidates used to determine representative motion information stored on behalf of one storage unit according to the present invention.
도 10은 본 발명에 따라서 공간적 위치 후보를 기반으로 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 일 실시예를 나타내는 흐름도이다.10 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit having a predetermined size based on a spatial position candidate according to the present invention.
도 11은 본 발명에 따라서 공간적 위치 후보를 기반으로 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 다른 실시예를 나타내는 흐름도이다.11 is a flowchart illustrating another embodiment of a method of determining representative motion information in a storage unit of a predetermined size based on a spatial position candidate according to the present invention.
도 12는 본 발명에 따라서 공간적 위치 후보들 중에서 최적화된 공간적 위치 후보를 참조하여 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 일 실시예를 나타내는 흐름도이다.12 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit having a predetermined size with reference to an optimized spatial position candidate among spatial position candidates according to the present invention.
도 13은 본 발명에 따라서 공간적 위치 후보들 중에서 최적화된 공간적 위치 후보를 참조하여 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 다른 실시예를 나타내는 흐름도이다.FIG. 13 is a flowchart illustrating another embodiment of a method of determining representative motion information in a storage unit having a predetermined size with reference to an optimized spatial position candidate among spatial position candidates according to the present invention.
도 14는 본 발명에 따라서 공간적 위치 후보들 중에서 2개의 최적화된 공간적 위치 후보를 참조하여 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 일 실시예를 나타내는 흐름도이다.14 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit of a predetermined size with reference to two optimized spatial position candidates among spatial position candidates according to the present invention.
도 15는 본 발명에 따라서 소정 크기의 저장 단위 내 예측 블록들의 면적을 기반으로 대표 움직임 정보를 결정하는 방법을 설명하기 위하여 도시된 하나의 저장 단위 내에 포함된 예측 블록들을 예시적으로 나타낸다. FIG. 15 exemplarily illustrates prediction blocks included in one storage unit to illustrate a method of determining representative motion information based on an area of prediction blocks in a storage unit having a predetermined size according to the present invention.
도 16은 본 발명에 따라서 하나의 저장 단위를 대표하여 저장되는 대표 움직임 정보에 대한 예외 처리의 일 실시예를 나타내는 도면이다.16 is a diagram illustrating an embodiment of exception processing for representative motion information stored on behalf of one storage unit according to the present invention.
도 17은 본 발명에 따른 인코딩 장치에 의한 영상 인코딩 방법을 개략적으로 나타내는 흐름도이다. 17 is a flowchart schematically illustrating an image encoding method by an encoding apparatus according to the present invention.
도 18은 본 발명에 따른 디코딩 장치에 의한 영상 디코딩 방법을 개략적으로 나타내는 흐름도이다. 18 is a flowchart schematically illustrating an image decoding method by a decoding apparatus according to the present invention.
도 19는 본 발명이 적용되는 컨텐츠 스트리밍 시스템 구조도를 예시적으로 나타낸다. 19 exemplarily shows a structure diagram of a content streaming system to which the present invention is applied.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정 실시예에 한정하려고 하는 것이 아니다. 본 명세서에서 상용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 도는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.As the present invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the invention to the specific embodiments. The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the spirit of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. The terms "comprise" or "having" in this specification are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features It is to be understood that the numbers, steps, operations, components, parts or figures do not exclude in advance the presence or possibility of adding them.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.On the other hand, each configuration in the drawings described in the present invention are shown independently for the convenience of description of the different characteristic functions, it does not mean that each configuration is implemented by separate hardware or separate software. For example, two or more of each configuration may be combined to form one configuration, or one configuration may be divided into a plurality of configurations. Embodiments in which each configuration is integrated and / or separated are also included in the scope of the present invention without departing from the spirit of the present invention.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and redundant description of the same components is omitted.
한편, 본 발명은 비디오/영상 코딩에 관한 것이다. 예를 들어, 본 발명에서 개시된 방법/실시예는 VVC (versatile video coding) 표준, EVC (Essential Video Coding) 표준, AV1 (AOMedia Video 1) 표준, AVS2 (2nd generation of audio video coding standard) 또는 차세대 비디오/이미지 코딩 표준(예를 들어, H.267, H.268 등)에 개시된 방법에 적용될 수 있다.On the other hand, the present invention relates to video / image coding. For example, the methods / embodiments disclosed in the present invention may include a versatile video coding (VVC) standard, an essential video coding (ECC) standard, an AOMedia Video 1 (AV1) standard, a second generation of audio video coding standard (AVS2), or next-generation video. / Image coding standards (e.g., H.267, H.268, etc.).
본 명세서에서 비디오(video)는 시간의 흐름에 따른 일련의 영상(image)들의 집합을 의미할 수 있다. 픽처(picture)는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)는 코딩에 있어서 픽처의 일부를 구성하는 단위이다. 하나의 픽처는 복수의 슬라이스로 구성될 수 있으며, 필요에 따라서 픽처 및 슬라이스는 서로 혼용되어 사용될 수 있다.In the present specification, a video may mean a series of images over time. A picture generally refers to a unit representing one image in a specific time zone, and a slice is a unit constituting a part of a picture in coding. One picture may be composed of a plurality of slices, and if necessary, the picture and the slice may be mixed with each other.
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.A pixel or a pel may refer to a minimum unit constituting one picture (or image). Also, 'sample' may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a value of a pixel, and may only represent pixel / pixel values of the luma component, or only pixel / pixel values of the chroma component.
유닛(unit)은 영상 처리의 기본 단위를 나타낸다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다.A unit represents the basic unit of image processing. The unit may include at least one of a specific region of the picture and information related to the region. The unit may be used interchangeably with terms such as block or area in some cases. In a general case, an M × N block may represent a set of samples or transform coefficients composed of M columns and N rows.
도 1은 본 발명이 적용될 수 있는 비디오 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.1 is a diagram schematically illustrating a configuration of a video encoding apparatus to which the present invention may be applied.
도 1을 참조하면, 비디오 인코딩 장치(100)는 픽처 분할부(105), 예측부(110), 레지듀얼 처리부(120), 엔트로피 인코딩부(130), 가산부(140), 필터부(150) 및 메모리(160)을 포함할 수 있다. 레지듀얼 처리부(120)는 감산부(121), 변환부(122), 양자화부(123), 재정렬부(124), 역양자화부(125) 및 역변환부(126)를 포함할 수 있다.Referring to FIG. 1, the video encoding apparatus 100 may include a picture splitter 105, a predictor 110, a residual processor 120, an entropy encoder 130, an adder 140, and a filter 150. ) And memory 160. The residual processing unit 120 may include a subtraction unit 121, a conversion unit 122, a quantization unit 123, a reordering unit 124, an inverse quantization unit 125, and an inverse conversion unit 126.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 유닛(processing unit)으로 분할할 수 있다. The picture divider 105 may divide the input picture into at least one processing unit.
일 예로, 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 최대 코딩 유닛(largest coding unit, LCU)으로부터 QTBT (Quad-tree binary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조 및/또는 바이너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조가 나중에 적용될 수 있다. 또는 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 발명에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다.As an example, the processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively split from the largest coding unit (LCU) according to a quad-tree binary-tree (QTBT) structure. For example, one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad tree structure and / or a binary tree structure. In this case, for example, the quad tree structure may be applied first and the binary tree structure may be applied later. Alternatively, the binary tree structure may be applied first. The coding procedure according to the present invention may be performed based on the final coding unit that is no longer split. In this case, the maximum coding unit may be used as the final coding unit immediately based on coding efficiency according to the image characteristic, or if necessary, the coding unit is recursively divided into coding units of lower depths and optimized. A coding unit of size may be used as the final coding unit. Here, the coding procedure may include a procedure of prediction, transform, and reconstruction, which will be described later.
다른 예로, 처리 유닛은 코딩 유닛(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)를 포함할 수 있다. 또한, 변환 블록 또는 변환 유닛은 픽처 내에서 블록 형태의 특정 영역을 의미할 수 있고, 변환 계수 또는 레지듀얼 샘플의 어레이를 포함할 수 있다.As another example, 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 depths along the quad tree structure. In this case, the maximum coding unit may be used as the final coding unit immediately based on coding efficiency according to the image characteristic, or if necessary, the coding unit is recursively divided into coding units of lower depths and optimized. A coding unit of size may be used as the final coding unit. If a smallest coding unit (SCU) is set, the coding unit may not be split into smaller coding units than the minimum coding unit. Here, the final coding unit refers to a coding unit that is the basis of partitioning or partitioning into a prediction unit or a transform unit. The prediction unit is a unit partitioning from the coding unit and may be a unit of sample prediction. In this case, the prediction unit may be divided into sub blocks. The transform unit may be divided along the quad tree structure from the coding unit, and may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from the transform coefficient. Hereinafter, a coding unit may be called a coding block (CB), a prediction unit is a prediction block (PB), and a transform unit may be called a transform block (TB). A prediction block or prediction unit may mean a specific area in the form of a block within a picture, and may include an array of prediction samples. In addition, a transform block or a transform unit may mean a specific area in a block form within a picture, and may include an array of transform coefficients or residual samples.
예측부(110)는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부(110)에서 수행되는 예측의 단위는 코딩 블록일 수 있고, 변환 블록일 수도 있고, 예측 블록일 수도 있다.The prediction unit 110 may perform a prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples of the current block. The unit of prediction performed by the prediction unit 110 may be a coding block, a transform block, or a prediction block.
예측부(110)는 현재 블록에 인트라 예측이 적용되는지 인터 예측이 적용되는지를 결정할 수 있다. 일 예로, 예측부(110)는 CU 단위로 인트라 예측 또는 인터 예측이 적용되는지를 결정할 수 있다.The prediction unit 110 may determine whether intra prediction or inter prediction is applied to the current block. As an example, the prediction unit 110 may determine whether intra prediction or inter prediction is applied on a CU basis.
인트라 예측의 경우에, 예측부(110)는 현재 블록이 속하는 픽처(이하, 현재 픽처) 내의 현재 블록 외부의 참조 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이 때, 예측부(110)는 (i) 현재 블록의 주변(neighboring) 참조 샘플들의 평균(average) 혹은 인터폴레이션(interpolation)을 기반으로 예측 샘플을 유도할 수 있고, (ii) 현재 블록의 주변 참조 샘플들 중 예측 샘플에 대하여 특정 (예측) 방향에 존재하는 참조 샘플을 기반으로 상기 예측 샘플을 유도할 수도 있다. (i)의 경우는 비방향성 모드 또는 비각도 모드, (ii)의 경우는 방향성(directional) 모드 또는 각도(angular) 모드라고 불릴 수 있다. 인트라 예측에서 예측 모드는 예를 들어 33개의 방향성 예측 모드와 적어도 2개 이상의 비방향성 모드를 가질 수 있다. 비방향성 모드는 DC 예측 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 예측부(110)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.In the case of intra prediction, the prediction unit 110 may derive a prediction sample for the current block based on reference samples outside the current block in the picture to which the current block belongs (hereinafter, referred to as the current picture). In this case, the prediction unit 110 may (i) derive the prediction sample based on the average or interpolation of neighboring reference samples of the current block, and (ii) the neighbor reference of the current block. The prediction sample may be derived based on a reference sample present in a specific (prediction) direction with respect to the prediction sample among the samples. In case of (i), it may be called non-directional mode or non-angle mode, and in case of (ii), it may be called directional mode or angular mode. In intra prediction, the prediction mode may have, for example, 33 directional prediction modes and at least two non-directional modes. The non-directional mode may include a DC prediction mode and a planner mode (Planar mode). The prediction unit 110 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
인터 예측의 경우에, 예측부(110)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 샘플을 기반으로, 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(110)는 스킵(skip) 모드, 머지(merge) 모드, 및 MVP(motion vector prediction) 모드 중 어느 하나를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 스킵 모드와 머지 모드의 경우에, 예측부(110)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 예측 샘플과 원본 샘플 사이의 차(레지듀얼)가 전송되지 않는다. MVP 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(Motion Vector Predictor)로 이용하여 현재 블록의 움직임 벡터 예측자로 이용하여 현재 블록의 움직임 벡터를 유도할 수 있다.In the case of inter prediction, the prediction unit 110 may derive the prediction sample for the current block based on the sample specified by the motion vector on the reference picture. The prediction unit 110 may apply one of a skip mode, a merge mode, and a motion vector prediction (MVP) mode to derive a prediction sample for the current block. In the skip mode and the merge mode, the prediction unit 110 may use the motion information of the neighboring block as the motion information of the current block. In the skip mode, unlike the merge mode, the difference (residual) between the prediction sample and the original sample is not transmitted. In the MVP mode, the motion vector of the current block may be derived using the motion vector of the neighboring block as a motion vector predictor.
인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처(reference picture)에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 움직임 정보(motion information)는 움직임 벡터와 참조 픽처 인덱스를 포함할 수 있다. 예측 모드 정보와 움직임 정보 등의 정보는 (엔트로피) 인코딩되어 비트스트림 형태로 출력될 수 있다.In the case of inter prediction, the neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block present in the reference picture. A reference picture including the temporal neighboring block may be called 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 encoded (entropy) and output in the form of a bitstream.
스킵 모드와 머지 모드에서 시간적 주변 블록의 움직임 정보가 이용되는 경우에, 참조 픽처 리스트(reference picture list) 상의 최상위 픽처가 참조 픽처로서 이용될 수도 있다. 참조 픽처 리스트(Picture Order Count)에 포함되는 참조 픽처들은 현재 픽처와 해당 참조 픽처 간의 POC(Picture order count) 차이 기반으로 정렬될 수 있다. POC는 픽처의 디스플레이 순서에 대응하며, 코딩 순서와 구분될 수 있다.When the motion information of the temporal neighboring block is used in the skip mode and the merge mode, the highest picture on the reference picture list may be used as the reference picture. Reference pictures included in a reference picture list may be sorted based on a difference in a picture order count (POC) between a current picture and a corresponding reference picture. The POC corresponds to the display order of the pictures and may be distinguished from the coding order.
감산부(121)는 원본 샘플과 예측 샘플 간의 차이인 레지듀얼 샘플을 생성한다. 스킵 모드가 적용되는 경우에는, 상술한 바와 같이 레지듀얼 샘플을 생성하지 않을 수 있다.The subtraction unit 121 generates a residual sample which is a difference between the original sample and the prediction sample. When the skip mode is applied, residual samples may not be generated as described above.
변환부(122)는 변환 블록 단위로 레지듀얼 샘플을 변환하여 변환 계수(transform coefficient)를 생성한다. 변환부(122)는 해당 변환 블록의 사이즈와, 해당 변환 블록과 공간적으로 겹치는 코딩 블록 또는 예측 블록에 적용된 예측 모드에 따라서 변환을 수행할 수 있다. 예컨대, 상기 변환 블록과 겹치는 상기 코딩 블록 또는 상기 예측 블록에 인트라 예측이 적용되었고, 상기 변환 블록이 4Х4의 레지듀얼 어레이(array)라면, 레지듀얼 샘플은 DST(Discrete Sine Transform) 변환 커널을 이용하여 변환되고, 그 외의 경우라면 레지듀얼 샘플은 DCT(Discrete Cosine Transform) 변환 커널을 이용하여 변환할 수 있다.The transform unit 122 generates transform coefficients by transforming the residual sample in units of transform blocks. The transform unit 122 may perform the transform according to the size of the transform block and the prediction mode applied to the coding block or the prediction block that spatially overlaps the transform block. For example, if intra prediction is applied to the coding block or the prediction block that overlaps the transform block, and the transform block is a residual array of 4Х4, the residual sample is obtained by using a discrete sine transform (DST) transform kernel. In other cases, the residual sample may be transformed using a discrete cosine transform (DCT) transform kernel.
양자화부(123)는 변환 계수들을 양자화하여, 양자화된 변환 계수를 생성할 수 있다.The quantization unit 123 may quantize the transform coefficients to generate quantized transform coefficients.
재정렬부(124)는 양자화된 변환 계수를 재정렬한다. 재정렬부(124)는 계수들 스캐닝(scanning) 방법을 통해 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있다. 여기서 재정렬부(124)는 별도의 구성으로 설명하였으나, 재정렬부(124)는 양자화부(123)의 일부일 수 있다.The reordering unit 124 rearranges the quantized transform coefficients. The reordering unit 124 may reorder the quantized transform coefficients in the form of a block into a one-dimensional vector form through a coefficient scanning method. Although the reordering unit 124 has been described in a separate configuration, the reordering unit 124 may be part of the quantization unit 123.
엔트로피 인코딩부(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 등 다양한 저장매체를 포함할 수 있다.The entropy encoding unit 130 may perform entropy encoding on the quantized transform coefficients. Entropy encoding may include, for example, encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and the like. The entropy encoding unit 130 may encode information necessary for video reconstruction other than the quantized transform coefficients (for example, a value of a syntax element) together or separately according to entropy encoding or a predetermined method. The encoded information may be transmitted or stored in units of network abstraction layer (NAL) units in the form of bitstreams. The bitstream may be transmitted over a network or may be stored in a digital storage medium. The network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like.
역양자화부(125)는 양자화부(123)에서 양자화된 값(양자화된 변환 계수)들을 역양자화하고, 역변환부(126)는 역양자화부(125)에서 역양자화된 값들을 역변환하여 레지듀얼 샘플을 생성한다.The inverse quantization unit 125 inverse quantizes the quantized values (quantized transform coefficients) in the quantization unit 123, and the inverse transformer 126 inverse transforms the inverse quantized values in the inverse quantization unit 125 to generate a residual sample. Create
가산부(140)는 레지듀얼 샘플과 예측 샘플을 합쳐서 픽처를 복원한다. 레지듀얼 샘플과 예측 샘플은 블록 단위로 더해져서 복원 블록이 생성될 수 있다. 여기서 가산부(140)는 별도의 구성으로 설명하였으나, 가산부(140)는 예측부(110)의 일부일 수 있다. 한편, 가산부(140)는 복원부 또는 복원 블록 생성부로 불릴 수도 있다.The adder 140 reconstructs the picture by combining the residual sample and the predictive sample. The residual sample and the predictive sample may be added in units of blocks to generate a reconstructed block. Although the adder 140 has been described in a separate configuration, the adder 140 may be part of the predictor 110. On the other hand, the adder 140 may be called a restoration unit or a restoration block generation unit.
복원된 픽처(reconstructed picture)에 대하여 필터부(150)는 디블록킹 필터 및/또는 샘플 적응적 오프셋(sample adaptive offset)을 적용할 수 있다. 디블록킹 필터링 및/또는 샘플 적응적 오프셋을 통해, 복원 픽처 내 블록 경계의 아티팩트나 양자화 과정에서의 왜곡이 보정될 수 있다. 샘플 적응적 오프셋은 샘플 단위로 적용될 수 있으며, 디블록킹 필터링의 과정이 완료된 후 적용될 수 있다. 필터부(150)는 ALF(Adaptive Loop Filter)를 복원된 픽처에 적용할 수도 있다. ALF는 디블록킹 필터 및/또는 샘플 적응적 오프셋이 적용된 후의 복원된 픽처에 대하여 적용될 수 있다.The filter unit 150 may apply a deblocking filter and / or a sample adaptive offset to the reconstructed picture. Through deblocking filtering and / or sample adaptive offset, the artifacts of the block boundaries in the reconstructed picture or the distortion in the quantization process can be corrected. The sample adaptive offset may be applied on a sample basis and may be applied after the process of deblocking filtering is completed. The filter unit 150 may apply an adaptive loop filter (ALF) to the reconstructed picture. ALF may be applied to the reconstructed picture after the deblocking filter and / or sample adaptive offset is applied.
메모리(160)는 복원 픽처(디코딩된 픽처) 또는 인코딩/디코딩에 필요한 정보를 저장할 수 있다. 여기서 복원 픽처는 상기 필터부(150)에 의하여 필터링 절차가 완료된 복원 픽처일 수 있다. 상기 저장된 복원 픽처는 다른 픽처의 (인터) 예측을 위한 참조 픽처로 활용될 수 있다. 예컨대, 메모리(160)는 인터 예측에 사용되는 (참조) 픽처들을 저장할 수 있다. 이 때, 인터 예측에 사용되는 픽처들은 참조 픽처 세트(reference picture set) 혹은 참조 픽처 리스트(reference picture list)에 의해 지정될 수 있다.The memory 160 may store reconstructed pictures (decoded pictures) or information necessary for encoding / decoding. Here, the reconstructed picture may be a reconstructed picture after the filtering process is completed by the filter unit 150. The stored reconstructed picture may be used as a reference picture for (inter) prediction of another picture. For example, the memory 160 may store (reference) pictures used for inter prediction. In this case, pictures used for inter prediction may be designated by a reference picture set or a reference picture list.
도 2는 본 발명이 적용될 수 있는 비디오 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.2 is a diagram schematically illustrating a configuration of a video decoding apparatus to which the present invention may be applied.
도 2를 참조하면, 비디오 디코딩 장치(200)는 엔트로피 디코딩부(210), 레지듀얼 처리부(220), 예측부(230), 가산부(240), 필터부(250) 및 메모리(260)을 포함할 수 있다. 여기서 레지듀얼 처리부(220)는 재정렬부(221), 역양자화부(222), 역변환부(223)을 포함할 수 있다.Referring to FIG. 2, the video decoding apparatus 200 may include an entropy decoding unit 210, a residual processor 220, a predictor 230, an adder 240, a filter 250, and a memory 260. It may include. Here, the residual processor 220 may include a rearrangement unit 221, an inverse quantization unit 222, and an inverse transform unit 223.
비디오 정보를 포함하는 비트스트림이 입력되면, 비디오 디코딩 장치(200)는 비디오 인코딩 장치에서 비디오 정보가 처리된 프로세스에 대응하여 비디오를 복원할 수 있다.When a bitstream including video information is input, the video decoding apparatus 200 may restore video in response to a process in which video information is processed in the video encoding apparatus.
예컨대, 비디오 디코딩 장치(200)는 비디오 인코딩 장치에서 적용된 처리 유닛을 이용하여 비디오 디코딩을 수행할 수 있다. 따라서 비디오 디코딩의 처리 유닛 블록은 일 예로 코딩 유닛일 수 있고, 다른 예로 코딩 유닛, 예측 유닛 또는 변환 유닛일 수 있다. 코딩 유닛은 최대 코딩 유닛으로부터 쿼드 트리 구조 및/또는 바이너리 트리 구조를 따라서 분할될 수 있다.For example, the video decoding apparatus 200 may perform video decoding using a processing unit applied in the video encoding apparatus. Thus, 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 transform unit. The coding unit may be split along the quad tree structure and / or binary tree structure from the largest coding unit.
예측 유닛 및 변환 유닛이 경우에 따라 더 사용될 수 있으며, 이 경우 예측 블록은 코딩 유닛으로부터 도출 또는 파티셔닝되는 블록으로서, 샘플 예측의 유닛일 수 있다. 이 때, 예측 유닛은 서브 블록으로 나뉠 수도 있다. 변환 유닛은 코딩 유닛으로부터 쿼드 트리 구조를 따라서 분할 될 수 있으며, 변환 계수를 유도하는 유닛 또는 변환 계수로부터 레지듀얼 신호를 유도하는 유닛일 수 있다. The prediction unit and the transform unit may be further used in some cases, 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 point, the prediction unit may be divided into subblocks. The transform unit may be divided along the quad tree structure from the coding unit, and may be a unit for deriving a transform coefficient or a unit for deriving a residual signal from the transform coefficient.
엔트로피 디코딩부(210)는 비트스트림을 파싱하여 비디오 복원 또는 픽처 복원에 필요한 정보를 출력할 수 있다. 예컨대, 엔트로피 디코딩부(210)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 비디오 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다.The entropy decoding unit 210 may parse the bitstream and output information necessary for video reconstruction or picture reconstruction. 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, quantized values of syntax elements necessary for video reconstruction, and residual coefficients. Can be output.
보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다.More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and decodes syntax element information and decoding information of neighboring and decoding target blocks or information of symbols / bins decoded in a previous step. The context model may be determined using the context model, the probability of occurrence of a bin may be predicted according to the determined context model, and arithmetic decoding of the bin may be performed to generate a symbol corresponding to the value of each syntax element. have. In this case, the CABAC entropy decoding method may update the context model by using the information of the decoded symbol / bin for the context model of the next symbol / bean after determining the context model.
엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(230)로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수는 재정렬부(221)로 입력될 수 있다.The information related to the prediction among the information decoded by the entropy decoding unit 210 is provided to the prediction unit 230, and the residual value on which the entropy decoding has been performed by the entropy decoding unit 210, that is, the quantized transform coefficient, is used as a reordering unit ( 221 may be input.
재정렬부(221)는 양자화되어 있는 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 재정렬부(221)는 인코딩 장치에서 수행된 계수 스캐닝에 대응하여 재정렬을 수행할 수 있다. 여기서 재정렬부(221)는 별도의 구성으로 설명하였으나, 재정렬부(221)는 역양자화부(222)의 일부일 수 있다.The reordering unit 221 may rearrange the quantized transform coefficients in a two-dimensional block form. The reordering unit 221 may perform reordering in response to coefficient scanning performed by the encoding apparatus. Here, the rearrangement unit 221 has been described in a separate configuration, but the rearrangement unit 221 may be part of the inverse quantization unit 222.
역양자화부(222)는 양자화되어 있는 변환 계수들을 (역)양자화 파라미터를 기반으로 역양자화하여 변환 계수를 출력할 수 있다. 이 때, 양자화 파라미터를 유도하기 위한 정보는 인코딩 장치로부터 시그널링될 수 있다.The inverse quantization unit 222 may dequantize the quantized transform coefficients based on the (inverse) quantization parameter and output the transform coefficients. In this case, information for deriving a quantization parameter may be signaled from the encoding apparatus.
역변환부(223)는 변환 계수들을 역변환하여 레지듀얼 샘플들을 유도할 수 있다. The inverse transform unit 223 may inversely transform transform coefficients to derive residual samples.
예측부(230)는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부(230)에서 수행되는 예측의 단위는 코딩 블록일 수도 있고, 변환 블록일 수도 있고, 예측 블록일 수도 있다.The prediction unit 230 may perform prediction on the current block and generate a predicted block including prediction samples for the current block. The unit of prediction performed by the prediction unit 230 may be a coding block, a transform block, or a prediction block.
예측부(230)는 상기 예측에 관한 정보를 기반으로 인트라 예측을 적용할 것인지 인터 예측을 적용할 것인지를 결정할 수 있다. 이 때, 인트라 예측과 인터 예측 중 어느 것을 적용할 것인지를 결정하는 단위와 예측 샘플을 생성하는 단위는 상이할 수 있다. 아울러, 인터 예측과 인트라 예측에 있어서 예측 샘플을 생성하는 단위 또한 상이할 수 있다. 예를 들어, 인터 예측과 인트라 예측 중 어느 것을 적용할 것인지는 CU 단위로 결정할 수 있다. 또한 예를 들어, 인터 예측에 있어서 PU 단위로 예측 모드를 결정하고 예측 샘플을 생성할 수 있고, 인트라 예측에 있어서 PU 단위로 예측 모드를 결정하고 TU 단위로 예측 샘플을 생성할 수도 있다. The prediction unit 230 may determine whether to apply intra prediction or inter prediction based on the information about the prediction. In this case, a unit for determining which of intra prediction and inter prediction is to be applied and a unit for generating a prediction sample may be different. In addition, the unit for generating a prediction sample in inter prediction and intra prediction may also be different. For example, whether to apply inter prediction or intra prediction may be determined in units of CUs. In addition, for example, in inter prediction, a prediction mode may be determined and a prediction sample may be generated in PU units, and in intra prediction, a prediction mode may be determined in PU units and a prediction sample may be generated in TU units.
인트라 예측의 경우에, 예측부(230)는 현재 픽처 내의 주변 참조 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(230)는 현재 블록의 주변 참조 샘플을 기반으로 방향성 모드 또는 비방향성 모드를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이 때, 주변 블록의 인트라 예측 모드를 이용하여 현재 블록에 적용할 예측 모드가 결정될 수도 있다.In the case of intra prediction, the prediction unit 230 may derive the prediction sample for the current block based on the neighbor reference samples in the current picture. The prediction unit 230 may derive the prediction sample for the current block by applying the directional mode or the non-directional mode based on the neighbor reference samples of the current block. In this case, the prediction mode to be applied to the current block may be determined using the intra prediction mode of the neighboring block.
인터 예측의 경우에, 예측부(230)는 참조 픽처 상에서 움직임 벡터에 의해 참조 픽처 상에서 특정되는 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(230)는 스킵(skip) 모드, 머지(merge) 모드 및 MVP 모드 중 어느 하나를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이때, 비디오 인코딩 장치에서 제공된 현재 블록의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보는 상기 예측에 관한 정보를 기반으로 획득 또는 유도될 수 있다In the case of inter prediction, the prediction unit 230 may derive the prediction sample for the current block based on the sample specified on the reference picture by the motion vector on the reference picture. The prediction unit 230 may apply any one of a skip mode, a merge mode, and an MVP mode to derive a prediction sample for the current block. In this case, motion information required for inter prediction of the current block provided by the video encoding apparatus, for example, information about a motion vector, a reference picture index, and the like may be obtained or derived based on the prediction information.
스킵 모드와 머지 모드의 경우에, 주변 블록의 움직임 정보가 현재 블록의 움직임 정보로 이용될 수 있다. 이 때, 주변 블록은 공간적 주변 블록과 시간적 주변 블록을 포함할 수 있다.In the skip mode and the merge mode, the motion information of the neighboring block may be used as the motion information of the current block. In this case, the neighboring block may include a spatial neighboring block and a temporal neighboring block.
예측부(230)는 가용한 주변 블록의 움직임 정보로 머지 후보 리스트를 구성하고, 머지 인덱스가 머지 후보 리스트 상에서 지시하는 정보를 현재 블록의 움직임 벡터로 사용할 수 있다. 머지 인덱스는 인코딩 장치로부터 시그널링될 수 있다. 움직임 정보는 움직임 벡터와 참조 픽처를 포함할 수 있다. 스킵 모드와 머지 모드에서 시간적 주변 블록의 움직임 정보가 이용되는 경우에, 참조 픽처 리스트 상의 최상위 픽처가 참조 픽처로서 이용될 수 있다.The prediction unit 230 may construct a merge candidate list using motion information of available neighboring blocks, and may use information indicated by the merge index on the merge candidate list as a motion vector of the current block. The merge index may be signaled from the encoding device. The motion information may include a motion vector and a reference picture. When the motion information of the temporal neighboring block is used in the skip mode and the merge mode, the highest picture on the reference picture list may be used as the reference picture.
스킵 모드의 경우, 머지 모드와 달리 예측 샘플과 원본 샘플 사이의 차이(레지듀얼)이 전송되지 않는다.In the skip mode, unlike the merge mode, the difference (residual) between the prediction sample and the original sample is not transmitted.
MVP 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하여 현재 블록의 움직임 벡터가 유도될 수 있다. 이 때, 주변 블록은 공간적 주변 블록과 시간적 주변 블록을 포함할 수 있다.In the MVP mode, the motion vector of the current block may be derived using the motion vector of the neighboring block as a motion vector predictor. In this case, the neighboring block may include a spatial neighboring block and a temporal neighboring block.
일 예로, 머지 모드가 적용되는 경우, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 머지 후보 리스트가 생성될 수 있다. 머지 모드에서는 머지 후보 리스트에서 선택된 후보 블록의 움직임 벡터가 현재 블록의 움직임 벡터로 사용된다. 상기 예측에 관한 정보는 상기 머지 후보 리스트에 포함된 후보 블록들 중에서 선택된 최적의 움직임 벡터를 갖는 후보 블록을 지시하는 머지 인덱스를 포함할 수 있다. 이 때, 예측부(230)는 상기 머지 인덱스를 이용하여, 현재 블록의 움직임 벡터를 도출할 수 있다.For example, when the merge mode is applied, a merge candidate list may be generated by using a motion vector of a reconstructed spatial neighboring block and / or a motion vector corresponding to a Col block, which is a temporal neighboring block. In the merge mode, the motion vector of the candidate block selected from the merge candidate list is used as the motion vector of the current block. The information about the prediction may include a merge index indicating a candidate block having an optimal motion vector selected from candidate blocks included in the merge candidate list. In this case, the prediction unit 230 may derive the motion vector of the current block by using the merge index.
다른 예로, MVP(Motion Vector Prediction) 모드가 적용되는 경우, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 움직임 벡터 예측자 후보 리스트가 생성될 수 있다. 즉, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터는 움직임 벡터 후보로 사용될 수 있다. 상기 예측에 관한 정보는 상기 리스트에 포함된 움직임 벡터 후보 중에서 선택된 최적의 움직임 벡터를 지시하는 예측 움직임 벡터 인덱스를 포함할 수 있다. 이 때, 예측부(230)는 상기 움직임 벡터 인덱스를 이용하여, 움직임 벡터 후보 리스트에 포함된 움직임 벡터 후보 중에서, 현재 블록의 예측 움직임 벡터를 선택할 수 있다. 인코딩 장치의 예측부는 현재 블록의 움직임 벡터와 움직임 벡터 예측자 간의 움직임 벡터 차분(MVD)을 구할 수 있고, 이를 인코딩하여 비트스트림 형태로 출력할 수 있다. 즉, MVD는 현재 블록의 움직임 벡터에서 상기 움직임 벡터 예측자를 뺀 값으로 구해질 수 있다. 이 때, 예측부(230)는 상기 예측에 관한 정보에 포함된 움직임 벡터 차분을 획득하고, 상기 움직임 벡터 차분과 상기 움직임 벡터 예측자의 가산을 통해 현재 블록의 상기 움직임 벡터를 도출할 수 있다. 예측부는 또한 참조 픽처를 지시하는 참조 픽처 인덱스 등을 상기 예측에 관한 정보로부터 획득 또는 유도할 수 있다.As another example, when the Motion Vector Prediction (MVP) mode is applied, a motion vector predictor candidate list may be generated using a motion vector of a reconstructed spatial neighboring block and / or a motion vector corresponding to a Col block, which is a temporal neighboring block. Can be. That is, the motion vector of the reconstructed spatial neighboring block and / or the Col vector, which is a temporal neighboring block, may be used as a motion vector candidate. The prediction information may include a prediction motion vector index indicating an optimal motion vector selected from the motion vector candidates included in the list. In this case, the prediction unit 230 may select the predicted motion vector of the current block from the motion vector candidates included in the motion vector candidate list using the motion vector index. The prediction unit of the encoding apparatus may obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, and may encode the output vector in a bitstream form. That is, MVD may be obtained by subtracting the motion vector predictor from the motion vector of the current block. In this case, the prediction unit 230 may obtain a motion vector difference included in the information about the prediction, and derive the motion vector of the current block by adding the motion vector difference and the motion vector predictor. The prediction unit may also obtain or derive a reference picture index or the like indicating a reference picture from the information about the prediction.
가산부(240)는 레지듀얼 샘플과 예측 샘플을 더하여 현재 블록 혹은 현재 픽처를 복원할 수 있다. 가산부(240)는 레지듀얼 샘플과 예측 샘플을 블록 단위로 더하여 현재 픽처를 복원할 수도 있다. 스킵 모드가 적용된 경우에는 레지듀얼이 전송되지 않으므로, 예측 샘플이 복원 샘플이 될 수 있다. 여기서는 가산부(240)를 별도의 구성으로 설명하였으나, 가산부(240)는 예측부(230)의 일부일 수도 있다. 한편, 가산부(240)는 복원부 또는 복원 블록 생성부로 불릴 수도 있다.The adder 240 may reconstruct the current block or the current picture by adding the residual sample and the predictive sample. The adder 240 may reconstruct the current picture by adding the residual sample and the predictive sample in block units. Since the residual is not transmitted when the skip mode is applied, the prediction sample may be a reconstruction sample. Although the adder 240 has been described in a separate configuration, the adder 240 may be part of the predictor 230. On the other hand, the adder 240 may be called a restoration unit or a restoration block generation unit.
필터부(250)는 복원된 픽처에 디블록킹 필터링 샘플 적응적 오프셋, 및/또는 ALF 등을 적용할 수 있다. 이 때, 샘플 적응적 오프셋은 샘플 단위로 적용될 수 있으며, 디블록킹 필터링 이후 적용될 수도 있다. ALF는 디블록킹 필터링 및/또는 샘플 적응적 오프셋 이후 적용될 수도 있다.The filter unit 250 may apply the deblocking filtering sample adaptive offset, and / or ALF to the reconstructed picture. In this case, the sample adaptive offset may be applied in units of samples and may be applied after deblocking filtering. ALF may be applied after deblocking filtering and / or sample adaptive offset.
메모리(260)는 복원 픽처(디코딩된 픽처) 또는 디코딩에 필요한 정보를 저장할 수 있다. 여기서 복원 픽처는 상기 필터부(250)에 의하여 필터링 절차가 완료된 복원 픽처일 수 있다. 예컨대, 메모리(260)는 인터 예측에 사용되는 픽처들을 저장할 수 있다. 이 때, 인터 예측에 사용되는 픽처들은 참조 픽처 세트 혹은 참조 픽처 리스트에 의해 지정될 수도 있다. 복원된 픽처는 다른 픽처에 대한 참조 픽처로서 이용될 수 있다. 또한, 메모리(260)는 복원된 픽처를 출력 순서에 따라서 출력할 수도 있다.The memory 260 may store reconstructed pictures (decoded pictures) or information necessary for decoding. Here, the reconstructed picture may be a reconstructed picture after the filtering process is completed by the filter unit 250. For example, the memory 260 may store pictures used for inter prediction. In this case, 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. In addition, the memory 260 may output the reconstructed picture in an output order.
한편, 상술한 바와 같이 비디오 인코딩 장치(100)의 예측부(110) 및/또는 비디오 디코딩 장치(200)의 예측부(230)는 현재 블록에 대하여 인터 예측을 수행하여 예측 샘플을 도출할 수 있다. 현재 블록에 대하여 인터 예측이 적용되는 경우, 현재 블록의 움직임 정보를 도출하기 위하여 현재 블록에 공간적으로 인접한 주변 블록(즉, 공간적 주변 블록)의 움직임 정보뿐만 아니라 이미 디코딩된 참조 픽처의 주변 블록(즉, 시간적 주변 블록)의 움직임 정보를 기반으로 움직임 정보 후보 리스트가 구성될 수 있다. 여기서, 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있고, 움직임 정보 후보 리스트는 머지 후보 리스트 또는 MVP(Motion Vector Predictor) 후보 리스트를 나타낼 수 있다.Meanwhile, as described above, the prediction unit 110 of the video encoding apparatus 100 and / or the prediction unit 230 of the video decoding apparatus 200 may derive the prediction sample by performing inter prediction on the current block. . When inter prediction is applied to the current block, in order to derive motion information of the current block, not only motion information of neighboring blocks (i.e., spatial neighboring blocks) spatially adjacent to the current block, but also neighboring blocks (i.e., the previously decoded reference picture) The motion information candidate list may be configured based on the motion information of the temporal neighboring block). Here, the motion information may include a motion vector and a reference picture index, and the motion information candidate list may indicate a merge candidate list or a motion vector predictor (MVP) candidate list.
특히, 인터 예측 시에 이미 디코딩된 참조 픽처를 참조하여 현재 블록의 움직임 정보를 도출하는 경우, 참조 픽처 내 예측된 블록들의 모든 움직임 정보를 저장하여야 한다. 그러나, 이러한 참조 픽처 내의 모든 움직임 정보를 저장하는데 상당한 데이터량이 필요하고, 이에 따라 참조 픽처를 저장하는 메모리(즉, DPB: Decoded Picture Buffer) 역시 상당한 용량이 필요하게 되어 하드웨어 비용을 증가시키는 원인이 될 수 있다. In particular, when deriving motion information of a current block by referring to a reference picture that is already decoded during inter prediction, all motion information of predicted blocks in the reference picture should be stored. However, a significant amount of data is required to store all the motion information in such a reference picture, and therefore, a memory for storing the reference picture (i.e., a decoded picture buffer (DPB)) also needs a considerable amount of capacity, which may increase hardware costs. Can be.
이에, 본 발명에서는 이미 디코딩된 참조 픽처 내 예측된 블록들의 움직임 정보를 저장함에 있어서 메모리 절약 및 성능 향상의 효과를 얻을 수 있는 방안을 제안한다. Accordingly, the present invention proposes a method of saving memory and improving performance in storing motion information of predicted blocks in a decoded reference picture.
도 3은 현재 블록의 움직임 정보를 도출하기 위하여 참조되는 주변 블록을 예시적으로 나타낸다. 3 exemplarily illustrates a neighboring block referred to to derive motion information of a current block.
도 3의 (a), (b), (c)는 공간적 주변 블록들을 나타낸 것이고, 도 3의 (d)는 시간적 주변 블록들을 나타낸 것일 수 있다. (A), (b) and (c) of FIG. 3 may represent spatial neighboring blocks, and (d) of FIG. 3 may represent temporal neighboring blocks.
도 3의 (a)를 참조하면, 현재 블록의 사이즈가 2Nx2N 인 경우, 공간적 주변 블록들은 좌측 주변 블록(A), 상측 주변 블록(B), 우상측 코너 주변 블록(C), 좌하측 코너 주변 블록(D) 및/또는 좌상측 코너 주변 블록(E)을 포함할 수 있다. Referring to FIG. 3A, when the size of the current block is 2N × 2N, the spatial neighboring blocks include the left neighboring block A, the upper neighboring block B, the upper right corner peripheral block C, and the lower left corner neighboring. Block D and / or block E in the upper left corner.
예컨대, 현재 블록의 사이즈가 2Nx2N 이고, 현재 블록의 좌상단(top-left) 샘플 포지션의 x성분이 0 및 y성분이 0인 경우, 좌측 주변 블록(A)은 (-1, 2N-1) 좌표의 샘플을 포함하는 블록이고, 상측 주변 블록(B)은 (2N-1, -1) 좌표의 샘플을 포함하는 블록이고, 우상측 코너 주변 블록(C)은 (2N, -1) 좌표의 샘플을 포함하는 블록이고, 좌하측 코너 주변 블록(D)은 (-1, 2N) 좌표의 샘플을 포함하는 블록이고, 좌상측 코너 주변 블록(E)은 (-1, -1) 좌표의 샘플을 포함하는 블록일 수 있다.For example, if the size of the current block is 2Nx2N, and the x component of the top-left sample position of the current block is 0 and the y component is 0, the left neighboring block A is (-1, 2N-1) coordinates. The upper peripheral block (B) is a block containing a sample of (2N-1, -1) coordinates, and the upper right corner peripheral block (C) is a sample of (2N, -1) coordinates. And a lower left corner peripheral block (D) is a block including a sample of (-1, 2N) coordinates, and an upper left corner peripheral block (E) is a sample of (-1, -1) coordinates. It may be a containing block.
도 3의 (b)를 참조하면, 현재 블록의 사이즈가 2NxN 인 경우, 공간적 주변 블록들은 상측 주변 블록(A), 우상측 코너 주변 블록(B), 좌하측 코너 주변 블록(C) 및/또는 좌상측 코너 주변 블록(D)을 포함할 수 있다. Referring to FIG. 3B, when the size of the current block is 2N × N, the spatial neighboring blocks are the upper neighboring block A, the upper right corner peripheral block B, the lower left corner peripheral block C, and / or The upper left corner peripheral block D may be included.
예컨대, 현재 블록의 사이즈가 2NxN 이고, 현재 블록의 좌상단(top-left) 샘플 포지션의 x성분이 0 및 y성분이 0인 경우, 상측 주변 블록(A)은 (N-1, -1) 좌표의 샘플을 포함하는 블록이고, 우상측 코너 주변 블록(B)은 (N, -1) 좌표의 샘플을 포함하는 블록이고, 좌하측 코너 주변 블록(C)은 (-1, 2N) 좌표의 샘플을 포함하는 블록이고, 좌상측 코너 주변 블록(D)은 (-1, -1) 좌표의 샘플을 포함하는 블록일 수 있다.For example, if the size of the current block is 2NxN, and the x component of the top-left sample position of the current block is 0 and the y component is 0, the upper peripheral block A is (N-1, -1) coordinates. Is a block containing a sample of, and the upper right corner peripheral block (B) is a block containing a sample of (N, -1) coordinates, and a lower left corner peripheral block (C) is a sample of (-1, 2N) coordinates. The block containing the upper left corner peripheral block (D) may be a block containing a sample of the (-1, -1) coordinates.
도 3의 (c)를 참조하면, 현재 블록의 사이즈가 Nx2N 인 경우, 공간적 주변 블록들은 좌측 주변 블록(A), 우상측 코너 주변 블록(B), 좌하측 코너 주변 블록(C) 및/또는 좌상측 코너 주변 블록(D)을 포함할 수 있다. Referring to FIG. 3C, when the size of the current block is Nx2N, the spatial neighboring blocks may include the left neighboring block A, the upper right corner peripheral block B, the lower left corner peripheral block C, and / or The upper left corner peripheral block D may be included.
예컨대, 현재 블록의 사이즈가 Nx2N 이고, 현재 블록의 좌상단(top-left) 샘플 포지션의 x성분이 0 및 y성분이 0인 경우, 좌측 주변 블록(A)은 (-1, N-1) 좌표의 샘플을 포함하는 블록이고, 우상측 코너 주변 블록(B)은 (2N, -1) 좌표의 샘플을 포함하는 블록이고, 좌하측 코너 주변 블록(C)은 (-1, N) 좌표의 샘플을 포함하는 블록이고, 좌상측 코너 주변 블록(D)은 (-1, -1) 좌표의 샘플을 포함하는 블록일 수 있다.For example, when the size of the current block is Nx2N, and the x component of the top-left sample position of the current block is 0 and the y component is 0, the left neighboring block A is (-1, N-1) coordinates. Is a block containing a sample of, and the upper right corner peripheral block (B) is a block containing a sample of (2N, -1) coordinates, and a lower left corner peripheral block (C) is a sample of (-1, N) coordinates. The block containing the upper left corner peripheral block (D) may be a block containing a sample of the (-1, -1) coordinates.
도 3의 (d)를 참조하면, 시간적 주변 블록은 현재 블록을 포함하는 현재 픽처와 다른 픽처(즉, 참조 픽처) 내에서 현재 블록과 동일한 위치의 블록(collocated block)을 나타낼 수 있다. 여기서, 다른 픽처는 POC(Picture Order Count) 상으로 현재 픽처보다 이전이거나 이후일 수 있다. 또한, 시간적 주변 블록의 유도 시에 사용되는 참조 픽처는 col 픽처(collocated picture)라 지칭할 수 있다. 또한, 동일한 위치의 블록(collocated block)은 현재 블록의 포지션과 대응하는 col 픽처 내 포지션에 위치하는 블록을 나타낼 수 있으며, col 블록이라 지칭할 수 있다. Referring to FIG. 3D, the temporal neighboring block may represent a block located at the same position as the current block in a picture different from the current picture including the current block (ie, the reference picture). Here, another picture may be before or after the current picture on a picture order count (POC). In addition, a reference picture used when deriving a temporal neighboring block may be referred to as a collocated picture. In addition, a collocated block may indicate a block located at a position in a col picture corresponding to the position of the current block, and may be referred to as a col block.
예컨대, 시간적 주변 블록은 col 픽처 내에서 현재 블록의 우하측 코너 주변 블록에 대응하여 위치하는 A 블록 및/또는 현재 블록의 센터 우하단 블록에 대응하여 위치하는 B 블록을 포함할 수 있다. For example, the temporal neighboring block may include an A block located in the col picture corresponding to the lower right corner peripheral block and / or a B block located corresponding to the center lower right block of the current block.
도 4는 본 발명에 따라서 움직임 정보 후보 리스트를 구성할 때 적용될 수 있는 움직임 정보를 압축하여 저장하는 방법을 개략적으로 설명하기 위한 도면이다. 4 is a diagram schematically illustrating a method of compressing and storing motion information that may be applied when constructing a motion information candidate list according to the present invention.
도 4를 참조하면, 인코딩 장치(100) 및/또는 비디오 디코딩 장치(200)는 도 3에서 설명한 바와 같은 현재 블록의 공간적 주변 블록을 기반으로 공간적 움직임 정보 후보를 도출할 수 있다(S400).Referring to FIG. 4, the encoding apparatus 100 and / or the video decoding apparatus 200 may derive the spatial motion information candidate based on the spatial neighboring blocks of the current block as described with reference to FIG. 3 (S400).
인코딩 장치(100) 및/또는 비디오 디코딩 장치(200)는 도 3에서 설명한 바와 같은 현재 블록의 시간적 주변 블록을 기반으로 시간적 움직임 정보 후보를 도출할 수 있다(S410).The encoding apparatus 100 and / or the video decoding apparatus 200 may derive the temporal motion information candidate based on the temporal neighboring block of the current block as described with reference to FIG. 3 (S410).
이때, 움직임 정보 압축이 적용될 경우, 인코딩 장치(100) 및/또는 비디오 디코딩 장치(200)는 이미 디코딩된 픽처들의 움직임 정보를 압축하여 저장하여 둘 수 있다(S415). 예를 들어, 참조 픽처(즉, col 픽처)에 대해 예측을 수행하면, 예측된 블록들이 생성되고 각 예측된 블록들에 대한 움직임 정보가 도출될 수 있다. 이 경우, 각 예측된 블록들에 대한 움직임 정보를 모두 저장하는 것이 아니라, 참조 픽처 내의 움직임 정보들을 소정의 저장 단위로 압축하여 저장할 수 있다. In this case, when motion information compression is applied, the encoding apparatus 100 and / or the video decoding apparatus 200 may compress and store motion information of pictures that are already decoded (S415). For example, when prediction is performed on a reference picture (ie, col picture), predicted blocks may be generated and motion information for each predicted block may be derived. In this case, instead of storing all the motion information for each predicted block, the motion information in the reference picture may be compressed and stored in a predetermined storage unit.
따라서 시간적 움직임 후보를 도출함에 있어서, 인코딩 장치(100) 및/또는 비디오 디코딩 장치(200)는 메모리에 압축되어 저장된 참조 픽처(즉, col 픽처)의 움직임 정보를 이용할 수 있다. Therefore, in deriving a temporal motion candidate, the encoding apparatus 100 and / or the video decoding apparatus 200 may use motion information of a reference picture (ie, col picture) compressed and stored in a memory.
인코딩 장치(100) 및/또는 비디오 디코딩 장치(200)는 상기 단계 S100 ~ S110에서 도출된 현재 후보들(공간적 움직임 정보 후보 및 시간적 움직임 정보 후보)의 개수를 기초로 움직임 정보 후보 리스트를 구성하는데 필요한 후보 개수와 비교하고, 비교 결과에 따라 결합된 쌍예측(combined bi-predictive) 후보, 영벡터 후보를 움직임 정보 후보 리스트에 추가할 수 있다(S420, S430).The encoding apparatus 100 and / or the video decoding apparatus 200 may be candidates for constructing a motion information candidate list based on the number of current candidates (spatial motion information candidates and temporal motion information candidates) derived in steps S100 to S110. Compared to the number, the combined bi-predictive candidate and the zero vector candidate may be added to the motion information candidate list according to the comparison result (S420 and S430).
상술한 바와 같은 소정의 저장 단위로 압축하여 저장된 움직임 정보는, 시간적 주변 블록을 참조하여 시간적 움직임 정보 후보를 도출하는 인터 예측 방식에서 사용될 수 있다. The motion information compressed and stored in a predetermined storage unit as described above may be used in an inter prediction method of deriving a temporal motion information candidate with reference to a temporal neighboring block.
예를 들어, 머지 모드가 적용되는 경우, 시간적 주변 블록인 col 블록에 대응하는 움직임 벡터를 이용하여 머지 후보 리스트를 생성할 수 있다. 이때, 머지 후보 리스트 내 시간적 머지 후보는, col 픽처 내에서 col 블록에 대해 압축하여 저장된 움직임 정보를 이용할 수 있다. 또한, MVP(Motion Vector Prediction) 모드가 적용되는 경우, 시간적 주변 블록인 col 블록에 대응하는 움직임 벡터를 이용하여 움직임 벡터 예측자 후보 리스트를 생성할 수 있다. 이때, 움직임 벡터 예측자 후보 리스트 내 시간적 움직임 벡터 예측자 후보는, col 픽처 내에서 col 블록에 대해 압축하여 저장된 움직임 정보를 이용할 수 있다.For example, when the merge mode is applied, a merge candidate list may be generated using a motion vector corresponding to a col block which is a temporal neighboring block. In this case, the temporal merge candidate in the merge candidate list may use motion information compressed and stored for the col block in the col picture. In addition, when a motion vector prediction (MVP) mode is applied, a motion vector predictor candidate list may be generated using a motion vector corresponding to a col block which is a temporal neighboring block. In this case, the temporal motion vector predictor candidate in the motion vector predictor candidate list may use the motion information compressed and stored for the col block in the col picture.
도 5는 픽처 내에서 예측을 위해 분할된 블록들을 예시적으로 나타낸다.5 exemplarily shows blocks partitioned for prediction within a picture.
도 5에 도시된 픽처(500)는 디코딩된 픽처를 나타낸 것으로, 디코딩된 픽처는 인코딩 장치(100) 및/또는 비디오 디코딩 장치(200)의 메모리(160, 260)에 저장될 수 있다. 메모리(160, 260)에 저장된 디코딩된 픽처는 현재 블록의 움직임 정보를 도출하기 위해 참조 픽처(col 픽처)로서 사용될 수 있다. The picture 500 illustrated in FIG. 5 represents a decoded picture, and the decoded picture may be stored in the memories 160 and 260 of the encoding apparatus 100 and / or the video decoding apparatus 200. The decoded picture stored in the memory 160, 260 may be used as a reference picture (col picture) to derive motion information of the current block.
픽처(500)는 도 5에 도시된 것처럼 디코딩 과정에서 예측을 수행하기 위해 예측 블록들(즉, 예측 유닛)로 파티셔닝 또는 분할될 수 있다. 이와 같이 파티셔닝 또는 분할된 예측 블록들에 대해 인터 예측 또는 인트라 예측이 수행될 수 있으며, 예측 결과로서 각 예측 블록들에 대한 예측 관련 정보가 도출될 수 있다. 예를 들어, 픽처(500) 내 예측 블록(510)에 대해 인터 예측이 적용될 경우, 예측 블록(510)의 예측 관련 정보가 도출될 수 있다. 이때, 예측 블록(510)의 예측 관련 정보는 움직임 벡터, 참조 픽처 인덱스 등에 관한 움직임 정보를 포함할 수 있다. The picture 500 may be partitioned or divided into prediction blocks (ie, prediction units) to perform prediction in the decoding process as shown in FIG. 5. In this way, inter prediction or intra prediction may be performed on the partitioned or divided prediction blocks, and prediction related information about each prediction block may be derived as a prediction result. For example, when inter prediction is applied to the prediction block 510 in the picture 500, prediction related information of the prediction block 510 may be derived. In this case, the prediction related information of the prediction block 510 may include motion information regarding a motion vector, a reference picture index, and the like.
도 6은 최소 예측 블록 단위로 움직임 정보를 저장하는 방법을 개략적으로 설명하기 위한 도면이다. FIG. 6 is a diagram schematically illustrating a method of storing motion information in units of a minimum prediction block.
상술한 바와 같이, 픽처는 예측을 수행하기 위해 예측 블록들로 파티셔닝 또는 분할될 수 있다. 도 5에 도시된 것처럼 픽처 내 예측 블록들이 분할된 경우, 디코더의 구현방법에 따라 각 예측 블록 단위로 움직임 정보를 저장할 수 있다. 그러나, 이와 같이 상이한 크기를 가지는 예측 블록들 각각의 움직임 정보를 저장할 경우, 각 예측 블록들의 움직임 정보를 관리하고 이용하기 위해서는 움직임 정보뿐만 아니라 블록 분할 정보도 같이 저장해야 한다. 이 경우, 저장해야할 데이터량의 오버헤드(overhead)와 해당 예측 블록의 움직임 정보를 이용하는 과정에서 발생하는 연산 복잡도가 상당하다. As described above, a picture may be partitioned or partitioned into prediction blocks to perform prediction. When prediction blocks in a picture are divided as illustrated in FIG. 5, motion information may be stored in units of prediction blocks according to an implementation method of a decoder. However, when storing the motion information of each of the prediction blocks having different sizes in this way, in order to manage and use the motion information of each prediction block, not only the motion information but also the block partitioning information must be stored together. In this case, the computational complexity that occurs in the process of using the overhead of the amount of data to be stored and the motion information of the corresponding prediction block is considerable.
따라서, 대부분의 디코더는 도 5와 같이 실제 분할된 예측 블록 단위로 움직임 정보를 저장하는 것이 아니라, 도 6에 도시된 것과 같이 최소 예측 블록 단위로 움직임 정보를 저장한다. 최소 예측 블록은 가장 작은 크기를 가지는 예측 블록을 말한다. 예를 들어, 최소 예측 블록이 4x4 크기를 가지는 경우라면, 도 6과 같이 4x4 크기 단위로 움직임 정보를 저장할 수 있다. 그러나, 최소 예측 블록 단위로 움직임 정보를 저장하는 경우에도 픽처 내에서 저장해야할 상당한 양의 데이터를 가지게 된다. Therefore, most decoders do not store motion information in units of prediction blocks that are actually divided as shown in FIG. 5, but store motion information in units of minimum prediction blocks as shown in FIG. 6. The minimum prediction block refers to the prediction block having the smallest size. For example, if the minimum prediction block has a 4x4 size, motion information may be stored in units of 4x4 size as shown in FIG. 6. However, even when the motion information is stored in the minimum prediction block unit, there is a considerable amount of data to be stored in the picture.
예를 들어, 비디오 코딩에 관한 기술 중 하나인 HEVC(High efficiency video coding) 표준에서는 최소 예측 블록 단위로 움직임 정보를 저장하는데 74 비트가 요구되며 디코더의 하드웨어 스펙에 따라 128 비트 저장장치에 저장한다. 픽셀값을 예로 들어 설명할 경우, 8 비트 영상이 8bit*16=128bit 가 되는 것과 동일한 양이다. 이러한 양의 데이터가 메모리(즉, DPB)에 저장되므로, 디코더의 하드웨어 비용을 증가시키는 원인이 될 수 있다. For example, the high efficiency video coding (HEVC) standard, which is one of the techniques related to video coding, requires 74 bits to store motion information in units of minimum prediction blocks, and stores it in 128-bit storage according to a hardware specification of the decoder. In the case of explaining the pixel value as an example, an 8-bit image is equivalent to 8 bits * 16 = 128 bits. Since this amount of data is stored in memory (i.e., DPB), it can be a cause of increasing the hardware cost of the decoder.
이를 해결하기 위하여 본 발명에서는 도 6에서와 같이 최소 예측 블록 단위로 움직임 정보를 저장하는 것이 아니라, 최소 예측 블록의 크기보다 큰 저장 단위로 움직임 정보를 압축하여 저장하는 방법을 제안한다. In order to solve this problem, the present invention proposes a method of compressing and storing motion information in a storage unit larger than the size of the minimum prediction block, as shown in FIG. 6.
도 7은 본 발명에 따라서 소정의 저장 단위로 움직임 정보를 압축하여 저장하는 방법을 개략적으로 설명하기 위한 도면이다. 7 is a diagram schematically illustrating a method of compressing and storing motion information in a predetermined storage unit according to the present invention.
픽처 내에서 예측을 수행하기 위해 분할된 예측 블록들의 움직임 정보는 도 7에 도시된 바와 같이 최소 예측 블록 크기보다 큰 크기의 저장 단위로 압축되어 저장될 수 있다. The motion information of the prediction blocks split to perform the prediction in the picture may be compressed and stored in a storage unit having a size larger than the minimum prediction block size as shown in FIG. 7.
예를 들어, 최소 예측 블록 크기가 4x4 크기인 경우, 본 발명에 따른 움직임 정보를 저장하는 저장 단위는 4x4 크기보다 큰 NxN 크기의 블록으로 설정될 수 있다. 여기서, N은 정수일 수 있다. 예컨대, NxN 크기의 저장 단위는 8x8, 16x16, 32x32, 64x64 등의 크기를 가지는 블록으로 설정될 수 있다. For example, when the minimum prediction block size is 4x4 size, the storage unit for storing the motion information according to the present invention may be set to a block of size NxN larger than 4x4 size. Here, N may be an integer. For example, the storage unit of NxN size may be set to a block having a size of 8x8, 16x16, 32x32, 64x64.
아래 표는 본 발명에서 제안하는 최소 예측 블록 크기보다 큰 크기의 저장 단위로 움직임 정보를 압축한 경우를 실험적으로 검증한 결과를 나타낸 것이다. The table below shows the results of experimental verification of the case where the motion information is compressed in a storage unit larger than the minimum predicted block size proposed in the present invention.
표 1은 최소 예측 블록 크기인 4x4 단위로 압축한 결과와 대비하여, 본 발명에서 제안하는 16x16 크기의 저장 단위로 압축한 경우의 성능을 나타낸 것이다. Table 1 shows the performance when the 16x16 storage unit proposed by the present invention is compressed as compared with the 4x4 unit, which is the minimum prediction block size.
YY UU VV
Class A1Class A1 0.01%0.01% -0.13%-0.13% 0.00%0.00%
Class A2Class A2 0.00%0.00% -0.08%-0.08% -0.02%-0.02%
Class BClass B -0.01%-0.01% 0.14%0.14% -0.08%-0.08%
Class CClass C -0.05%-0.05% 0.12%0.12% -0.03%-0.03%
Class DClass D -0.19%-0.19% -0.14%-0.14% -0.31%-0.31%
OverallOverall -0.05%-0.05% 0.00%0.00% -0.09%-0.09%
표 2는 최소 예측 블록 크기인 4x4 단위로 압축한 결과와 대비하여, 본 발명에서 제안하는 32x32 크기의 저장 단위로 압축한 경우의 성능을 나타낸 것이다. Table 2 shows the performance of the 32x32 storage unit proposed by the present invention when compared to the 4x4 unit, which is the minimum prediction block size.
YY UU VV
Class A1Class A1 0.06%0.06% -0.27%-0.27% 0.08%0.08%
Class A2Class A2 0.07%0.07% 0.08%0.08% 0.14%0.14%
Class BClass B 0.12%0.12% 0.13%0.13% 0.12%0.12%
Class CClass C 0.19%0.19% 0.23%0.23% 0.32%0.32%
Class DClass D 0.38%0.38% 0.39%0.39% 0.28%0.28%
OverallOverall 0.17%0.17% 0.13%0.13% 0.19%0.19%
표 3은 최소 예측 블록 크기인 4x4 단위로 압축한 결과와 대비하여, 본 발명에서 제안하는 64x64 크기의 저장 단위로 압축한 경우의 성능을 나타낸 것이다. Table 3 shows the performance in the case of compressing in the 64x64 storage unit proposed by the present invention, compared to the result of compressing in the 4x4 unit, which is the minimum predicted block size.
YY UU VV
Class A1Class A1 0.26%0.26% 0.25%0.25% 0.28%0.28%
Class A2Class A2 0.45%0.45% 0.47%0.47% 0.61%0.61%
Class BClass B 0.53%0.53% 0.43%0.43% 0.32%0.32%
Class CClass C 0.78%0.78% 0.70%0.70% 0.68%0.68%
Class DClass D 0.98%0.98% 0.79%0.79% 0.68%0.68%
OverallOverall 0.62%0.62% 0.54%0.54% 0.51%0.51%
도 8은 소정 크기의 저장 단위 내 하나 이상의 예측 블록을 포함하고 있는 경우를 예시적으로 나타낸다. 8 exemplarily illustrates a case in which one or more prediction blocks are included in a storage unit having a predetermined size.
본 발명에 따르면, 움직임 정보를 저장하는 저장 단위는 최소 예측 블록 크기보다 큰 크기를 가지기 때문에, 도 8에 도시된 것과 같이 하나의 저장 단위에는 하나 이상의 예측 블록을 포함할 수 있다. 이때, 하나 이상의 예측 블록은 각자 움직임 정보를 포함하고 있다. 예컨대, 도 8을 참조하면 저장 단위 내 제n 예측 블록은 제n 움직임 벡터(예: MVn)를 움직임 정보로서 포함할 수 있다. 여기서, n = 0, 1, ... , 10 일 수 있다. According to the present invention, since the storage unit for storing the motion information has a size larger than the minimum prediction block size, as illustrated in FIG. 8, one storage unit may include one or more prediction blocks. In this case, each of the one or more prediction blocks includes motion information. For example, referring to FIG. 8, an n th prediction block in a storage unit may include an n th motion vector (eg, MV n ) as motion information. Here, n = 0, 1, ..., 10 may be.
즉, 소정 크기의 저장 단위 내 하나 이상의 예측 블록을 포함하는 경우, 하나 이상의 예측 블록 중에서 어느 예측 블록의 움직임 정보를 압축하여 저장할 것인지를 결정하는 것이 중요하다. 이에, 본 발명에서는 소정 크기의 저장 단위 내에 포함된 예측 블록들의 움직임 정보 중에서 해당 저장 단위를 대표하여 저장될 대표 움직임 정보를 결정하는 방법을 제안한다. That is, when one or more prediction blocks are included in a storage unit of a predetermined size, it is important to determine which prediction block of one or more prediction blocks is to be compressed and stored. Accordingly, the present invention proposes a method of determining representative motion information to be stored on behalf of a corresponding storage unit among motion information of prediction blocks included in a storage unit having a predetermined size.
도 9는 본 발명에 따라 하나의 저장 단위를 대표하여 저장되는 대표 움직임 정보를 결정하기 위해서 사용되는 공간적 위치 후보들을 예시적으로 나타낸다.FIG. 9 exemplarily shows spatial position candidates used to determine representative motion information stored on behalf of one storage unit according to the present invention.
일 실시예로, 공간적 위치 후보는 하나의 저장 단위 내에서 특정 위치를 지정하고, 지정된 위치를 기초로 정해질 수 있다. 예를 들어, 도 9에 도시된 것처럼, 공간적 위치 후보는 저장 단위 내 센터(Center)에 위치하는 샘플을 포함하는 블록(C 후보 블록), 좌상단(Top-Left)에 위치하는 샘플을 포함하는 블록(TL 후보 블록), 우상단(Top-Right)에 위치하는 블록(TR 후보 블록), 좌하단(Bottom-Left)에 위치하는 블록(BL 후보 블록) 및 우하단(Bottom- Right)에 위치하는 블록(BR 후보 블록) 중 적어도 하나를 포함할 수 있다. 이때, 공간적 위치 후보는 미리 정의되어 있을 수 있다.In one embodiment, the spatial location candidate may designate a specific location within one storage unit and be determined based on the designated location. For example, as shown in FIG. 9, a spatial location candidate includes a block including a sample located at a center in a storage unit (C candidate block) and a block including a sample located at a top-left. (TL candidate block), a block located at the top-right (TR candidate block), a block located at the bottom-left (BL candidate block) and a block located at the bottom-right It may include at least one of (BR candidate block). In this case, the spatial position candidate may be predefined.
이하에서는 도 9에 도시된 것과 같은 저장 단위 내의 공간적 위치 후보를 기반으로 저장 단위를 대표하여 저장될 대표 움직임 정보를 결정하는 방법을 상세히 설명한다. Hereinafter, a method of determining representative motion information to be stored on behalf of the storage unit based on the spatial position candidate in the storage unit as illustrated in FIG. 9 will be described in detail.
도 10은 본 발명에 따라서 공간적 위치 후보를 기반으로 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 일 실시예를 나타내는 흐름도이다. 도 10의 방법은 인코딩 장치(100) 및 디코딩 장치(200)에서 수행될 수 있으나, 도 10에서는 설명의 편의 상 디코딩 장치(200)에서 수행되는 것으로 설명한다. 10 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit having a predetermined size based on a spatial position candidate according to the present invention. The method of FIG. 10 may be performed by the encoding apparatus 100 and the decoding apparatus 200. However, the method of FIG. 10 will be described as being performed by the decoding apparatus 200 for convenience of description.
일 실시예로, 디코딩 장치(200)는 해당 저장 단위 내의 공간적 위치 후보들에 대해 정해진 순서에 따라 순회하면서 해당 공간적 위치 후보가 가용한지(available) 여부를 결정하고, 가용한 공간적 위치 후보의 움직임 정보를 대표 움직임 정보로 설정한다. 이때, 공간적 위치 후보들은, 도 9에 도시된 것과 같은 C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록을 포함할 수 있다. 공간적 위치 후보들의 정해진 순회 순서는, C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록 순일 수 있다.In one embodiment, the decoding apparatus 200 iterates in accordance with a predetermined order for the spatial position candidates in the storage unit, and determines whether the corresponding spatial position candidates are available, and determines the motion information of the available spatial position candidates. Set as representative motion information. In this case, the spatial position candidates may include a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block as illustrated in FIG. 9. The predetermined traversal order of the spatial position candidates may be a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block.
도 10을 참조하여 구체적으로 설명하면, 디코딩 장치(200)는 소정 크기의 저장 단위 내 C 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1000). 일 실시예로, 디코딩 장치(200)는 C 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. 10, the decoding apparatus 200 may determine whether a C candidate block in a storage unit having a predetermined size is an available spatial position candidate (S1000). According to an embodiment, the decoding apparatus 200 may determine whether the C candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
C 후보 블록이 가용한 경우, 디코딩 장치(200)는 C 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1005). 이 경우, 디코딩 장치(200)는 TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다. If the C candidate block is available, the decoding apparatus 200 may determine the motion information of the C candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1005). In this case, the decoding apparatus 200 may not perform a process of determining whether an available spatial position candidate is available for the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block.
C 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 TL 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1010). 일 실시예로, 디코딩 장치(200)는 TL 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the C candidate block is not available, the decoding apparatus 200 may determine whether the TL candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1010). In an embodiment, the decoding apparatus 200 may determine whether the TL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
TL 후보 블록이 가용한 경우, 디코딩 장치(200)는 TL 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1015). 이 경우, 디코딩 장치(200)는 TR 후보 블록, BL 후보 블록, BR 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다. When the TL candidate block is available, the decoding apparatus 200 may determine the motion information of the TL candidate block as representative motion information in the storage unit, and compress and store the motion information of the TL candidate block in operation S1015. In this case, the decoding apparatus 200 may not perform a process of determining whether an available spatial position candidate is available for the TR candidate block, the BL candidate block, and the BR candidate block.
TL 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 TR 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1020). 일 실시예로, 디코딩 장치(200)는 TR 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the TL candidate block is not available, the decoding apparatus 200 may determine whether the TR candidate block in the storage unit having a predetermined size is an available spatial position candidate (S1020). According to an embodiment, the decoding apparatus 200 may determine whether the TR candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
TR 후보 블록이 가용한 경우, 디코딩 장치(200)는 TR 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1025). 이 경우, 디코딩 장치(200)는 BL 후보 블록, BR 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다. If the TR candidate block is available, the decoding apparatus 200 may determine the motion information of the TR candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1025). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the BL candidate block and the BR candidate block.
TR 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 BL 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1030). 일 실시예로, 디코딩 장치(200)는 BL 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the TR candidate block is not available, the decoding apparatus 200 may determine whether the BL candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1030). In an embodiment, the decoding apparatus 200 may determine whether the BL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
BL 후보 블록이 가용한 경우, 디코딩 장치(200)는 BL 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1035). 이 경우, 디코딩 장치(200)는 BR 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다.If the BL candidate block is available, the decoding apparatus 200 may determine the motion information of the BL candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1035). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the BR candidate block.
BL 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 BR 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1040). 일 실시예로, 디코딩 장치(200)는 BR 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the BL candidate block is not available, the decoding apparatus 200 may determine whether the BR candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1040). According to an embodiment, the decoding apparatus 200 may determine whether the BR candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is a block predicted in the inter prediction mode.
BR 후보 블록이 가용한 경우, 디코딩 장치(200)는 BR 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1045). When the BR candidate block is available, the decoding apparatus 200 may determine the motion information of the BR candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1045).
BR 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 공간적 위치 후보 중에서 가용한 후보가 존재하지 않는 것으로 판단하여, 저장 단위 내 대표 움직임 정보로 디폴트 값을 설정할 수 있다(S1050). 일 실시예로, 디폴트 값은 0 값을 가지는 움직임 벡터일 수 있다. If the BR candidate block is not available, the decoding apparatus 200 may determine that there are no available candidates among the spatial position candidates, and set a default value as the representative motion information in the storage unit (S1050). In one embodiment, the default value may be a motion vector having a value of zero.
디코딩 장치(200)는 상술한 바와 같이 C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록의 순서로 순회하면서 최종적으로 결정된 대표 움직임 정보를 해당 저장 단위에 대해 압축하여 저장할 수 있다(S1060).As described above, the decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit while iterating in the order of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block. There is (S1060).
도 11은 본 발명에 따라서 공간적 위치 후보를 기반으로 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 다른 실시예를 나타내는 흐름도이다. 도 11의 방법은 인코딩 장치(100) 및 디코딩 장치(200)에서 수행될 수 있으나, 도 11에서는 설명의 편의 상 디코딩 장치(200)에서 수행되는 것으로 설명한다. 11 is a flowchart illustrating another embodiment of a method of determining representative motion information in a storage unit of a predetermined size based on a spatial position candidate according to the present invention. Although the method of FIG. 11 may be performed by the encoding apparatus 100 and the decoding apparatus 200, the method of FIG. 11 will be described as being performed by the decoding apparatus 200 for convenience of description.
일 실시예로, 디코딩 장치(200)는 해당 저장 단위 내의 공간적 위치 후보들에 대해 정해진 순서에 따라 순회하면서 해당 공간적 위치 후보가 가용한지(available) 여부를 결정하고, 가용한 공간적 위치 후보의 움직임 정보를 대표 움직임 정보로 설정한다. 이때, 공간적 위치 후보들은, 도 9에 도시된 것과 같은 C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록을 포함할 수 있다. 공간적 위치 후보들의 정해진 순회 순서는, TL 후보 블록, C 후보 블록, BL 후보 블록, TR 후보 블록, BR 후보 블록 순일 수 있다.In one embodiment, the decoding apparatus 200 iterates in accordance with a predetermined order for the spatial position candidates in the storage unit, and determines whether the corresponding spatial position candidates are available, and determines the motion information of the available spatial position candidates. Set as representative motion information. In this case, the spatial position candidates may include a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block as illustrated in FIG. 9. The predetermined traversal order of the spatial position candidates may be in the order of the TL candidate block, the C candidate block, the BL candidate block, the TR candidate block, and the BR candidate block.
도 11을 참조하여 구체적으로 설명하면, 디코딩 장치(200)는 소정 크기의 저장 단위 내 TL 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1100). 일 실시예로, 디코딩 장치(200)는 TL 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. Specifically, referring to FIG. 11, the decoding apparatus 200 may determine whether a TL candidate block in a storage unit having a predetermined size is an available spatial position candidate (S1100). In an embodiment, the decoding apparatus 200 may determine whether the TL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
TL 후보 블록이 가용한 경우, 디코딩 장치(200)는 TL 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1105). 이 경우, 디코딩 장치(200)는 C 후보 블록, BL 후보 블록, TR 후보 블록, BR 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다. When the TL candidate block is available, the decoding apparatus 200 may determine the motion information of the TL candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1105). In this case, the decoding apparatus 200 may not perform a process of determining whether an available spatial position candidate is available for the C candidate block, the BL candidate block, the TR candidate block, and the BR candidate block.
TL 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 C 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1110). 일 실시예로, 디코딩 장치(200)는 C 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the TL candidate block is not available, the decoding apparatus 200 may determine whether the C candidate block in the storage unit having a predetermined size is an available spatial position candidate (S1110). According to an embodiment, the decoding apparatus 200 may determine whether the C candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
C 후보 블록이 가용한 경우, 디코딩 장치(200)는 C 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1115). 이 경우, 디코딩 장치(200)는 BL 후보 블록, TR 후보 블록, BR 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다. If the C candidate block is available, the decoding apparatus 200 may determine the motion information of the C candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1115). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the BL candidate block, the TR candidate block, and the BR candidate block.
C 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 BL 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1120). 일 실시예로, 디코딩 장치(200)는 BL 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the C candidate block is not available, the decoding apparatus 200 may determine whether the BL candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1120). In an embodiment, the decoding apparatus 200 may determine whether the BL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
BL 후보 블록이 가용한 경우, 디코딩 장치(200)는 BL 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1125). 이 경우, 디코딩 장치(200)는 TR 후보 블록, BR 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다. When the BL candidate block is available, the decoding apparatus 200 may determine the motion information of the BL candidate block as the representative motion information in the storage unit, and compress and store the motion information (S1125). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the TR candidate block and the BR candidate block.
BL 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 TR 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1130). 일 실시예로, 디코딩 장치(200)는 TR 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the BL candidate block is not available, the decoding apparatus 200 may determine whether the TR candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1130). According to an embodiment, the decoding apparatus 200 may determine whether the TR candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
TR 후보 블록이 가용한 경우, 디코딩 장치(200)는 TR 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1135). 이 경우, 디코딩 장치(200)는 BR 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다.When the TR candidate block is available, the decoding apparatus 200 may determine the motion information of the TR candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1135). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the BR candidate block.
TR 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 BR 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1140). 일 실시예로, 디코딩 장치(200)는 BR 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the TR candidate block is not available, the decoding apparatus 200 may determine whether the BR candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1140). According to an embodiment, the decoding apparatus 200 may determine whether the BR candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is a block predicted in the inter prediction mode.
BR 후보 블록이 가용한 경우, 디코딩 장치(200)는 BR 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1145). When the BR candidate block is available, the decoding apparatus 200 may determine the motion information of the BR candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1145).
BR 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 공간적 위치 후보 중에서 가용한 후보가 존재하지 않는 것으로 판단하여, 저장 단위 내 대표 움직임 정보로 디폴트 값을 설정할 수 있다(S1150). 일 실시예로, 디폴트 값은 0 값을 가지는 움직임 벡터일 수 있다. If the BR candidate block is not available, the decoding apparatus 200 may determine that there are no available candidates among the spatial position candidates, and set a default value as the representative motion information in the storage unit (S1150). In one embodiment, the default value may be a motion vector having a value of zero.
디코딩 장치(200)는 상술한 바와 같이 TL 후보 블록, C 후보 블록, BL 후보 블록, TR 후보 블록, BR 후보 블록의 순서로 순회하면서 최종적으로 결정된 대표 움직임 정보를 해당 저장 단위에 대해 압축하여 저장할 수 있다(S1160).As described above, the decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit while circulating in the order of the TL candidate block, the C candidate block, the BL candidate block, the TR candidate block, and the BR candidate block. There is (S1160).
상술한 도 10 및 도 11에서의 공간적 위치 후보들의 순회 순서는 하나의 예시일 뿐이며, 도 10 및 도 11의 순서와는 다른 순서로 공간적 위치 후보들을 순회할 수도 있다. The above-described traversal order of the spatial position candidates in FIGS. 10 and 11 is merely an example, and the spatial position candidates may be traversed in a different order from that of FIGS. 10 and 11.
본 발명에서는 상술한 바와 같이 도 9에 도시된 모든 공간적 위치 후보들을 정해진 순서에 따라 순회하면서 가장 먼저 탐색되는 가용한 공간적 위치 후보의 움직임 정보를 해당 저장 단위의 대표 움직임 정보로 결정하여 저장할 수도 있다. 이때, 모든 공간적 위치 후보들을 순서에 따라 순회하게 될 경우, 하드웨어 복잡도가 증가할 수도 있다. 이에, 본 발명에서는 하드웨어 복잡도를 고려하여 최적화된 공간적 위치 후보를 참조하여 대표 움직임 정보를 결정할 수도 있다. In the present invention, as described above, all spatial position candidates shown in FIG. 9 may be traversed in a predetermined order, and the motion information of the first available spatial position candidates may be determined and stored as representative motion information of the corresponding storage unit. In this case, when all spatial position candidates are traversed in order, hardware complexity may increase. Accordingly, in the present invention, the representative motion information may be determined with reference to the optimized spatial position candidate in consideration of hardware complexity.
아래 표는 본 발명에서 제안하는 최적화된 공간적 위치 후보를 이용하여 소정 크기의 저장 단위에 대한 대표 움직임 정보를 결정하는 경우를 실험적으로 검증한 결과를 나타낸 것이다. The table below shows the results of the experimental verification of the case of determining the representative motion information for the storage unit of the predetermined size using the optimized spatial position candidate proposed in the present invention.
표 4는 최소 예측 블록 크기인 4x4 단위로 압축한 결과와 대비하여, 본 발명에서 제안하는 16x16 크기의 저장 단위로 최적화된 공간적 위치 후보(TL 후보 블록)를 사용할 경우의 성능을 나타낸 것이다. Table 4 shows the performance of using the spatial position candidate (TL candidate block) optimized for the 16x16 storage unit proposed by the present invention, compared to the compression result of the 4x4 unit, which is the minimum prediction block size.
YY UU VV
Class A1Class A1 0.06%0.06% -0.15%-0.15% 0.13%0.13%
Class A2Class A2 0.04%0.04% 0.12%0.12% 0.10%0.10%
Class BClass B 0.05%0.05% 0.13%0.13% -0.11%-0.11%
Class CClass C 0.02%0.02% -0.01%-0.01% 0.10%0.10%
Class DClass D 0.01%0.01% 0.09%0.09% 0.00%0.00%
OverallOverall 0.03%0.03% 0.05%0.05% 0.03%0.03%
표 5는 최소 예측 블록 크기인 4x4 단위로 압축한 결과와 대비하여, 본 발명에서 제안하는 16x16 크기의 저장 단위로 최적화된 공간적 위치 후보(C 후보 블록)을 사용할 경우의 성능을 나타낸 것이다. Table 5 shows the performance when the spatial position candidate (C candidate block) optimized for the 16x16 storage unit proposed by the present invention is compared with the result of compressing the 4x4 unit, which is the minimum prediction block size.
YY UU VV
Class A1Class A1 0.07%0.07% -0.06%-0.06% 0.25%0.25%
Class A2Class A2 0.02%0.02% 0.05%0.05% 0.07%0.07%
Class BClass B 0.05%0.05% 0.23%0.23% 0.00%0.00%
Class CClass C -0.06%-0.06% -0.08%-0.08% 0.09%0.09%
Class DClass D -0.03%-0.03% 0.09%0.09% -0.19%-0.19%
OverallOverall 0.01%0.01% 0.06%0.06% 0.03%0.03%
상기 표 4 및 표 5의 실험적 검증 결과에서 보는 바와 같이, 최적화된 공간적 위치 후보로 TL 후보 블록 및 C 후보 블록을 사용할 수 있다. As shown in the experimental verification results of Tables 4 and 5, TL candidate blocks and C candidate blocks may be used as optimized spatial position candidates.
도 12는 본 발명에 따라서 공간적 위치 후보들 중에서 최적화된 공간적 위치 후보를 참조하여 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 일 실시예를 나타내는 흐름도이다. 도 12의 방법은 인코딩 장치(100) 및 디코딩 장치(200)에서 수행될 수 있으나, 도 12에서는 설명의 편의 상 디코딩 장치(200)에서 수행되는 것으로 설명한다. 12 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit having a predetermined size with reference to an optimized spatial position candidate among spatial position candidates according to the present invention. Although the method of FIG. 12 may be performed by the encoding apparatus 100 and the decoding apparatus 200, the method of FIG. 12 will be described as being performed by the decoding apparatus 200 for convenience of description.
일 실시예로, 디코딩 장치(200)는 공간적 위치 후보들 중에서 TL 후보 블록을 사용하여 대표 움직임 정보를 결정할 수 있다. In an embodiment, the decoding apparatus 200 may determine the representative motion information using the TL candidate block among the spatial position candidates.
도 12를 참조하면, 디코딩 장치(200)는 소정 크기의 저장 단위 내 TL 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1200). 일 실시예로, 디코딩 장치(200)는 TL 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. Referring to FIG. 12, the decoding apparatus 200 may determine whether a TL candidate block in a storage unit of a predetermined size is an available spatial position candidate (S1200). In an embodiment, the decoding apparatus 200 may determine whether the TL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
TL 후보 블록이 가용한 경우, 디코딩 장치(200)는 TL 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1205).If the TL candidate block is available, the decoding apparatus 200 may determine the motion information of the TL candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1205).
TL 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 저장 단위 내 대표 움직임 정보로 디폴트 값을 설정할 수 있다(S1210). 일 실시예로, 디폴트 값은 0 값을 가지는 움직임 벡터일 수 있다. If the TL candidate block is not available, the decoding apparatus 200 may set a default value as the representative motion information in the storage unit (S1210). In one embodiment, the default value may be a motion vector having a value of zero.
디코딩 장치(200)는 최종적으로 결정된 대표 움직임 정보를 해당 저장 단위에 대해 압축하여 저장할 수 있다(S1220).The decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit (S1220).
도 13은 본 발명에 따라서 공간적 위치 후보들 중에서 최적화된 공간적 위치 후보를 참조하여 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 다른 실시예를 나타내는 흐름도이다. 도 13의 방법은 인코딩 장치(100) 및 디코딩 장치(200)에서 수행될 수 있으나, 도 13에서는 설명의 편의 상 디코딩 장치(200)에서 수행되는 것으로 설명한다. FIG. 13 is a flowchart illustrating another embodiment of a method of determining representative motion information in a storage unit having a predetermined size with reference to an optimized spatial position candidate among spatial position candidates according to the present invention. Although the method of FIG. 13 may be performed by the encoding apparatus 100 and the decoding apparatus 200, the method of FIG. 13 will be described as being performed by the decoding apparatus 200 for convenience of description.
일 실시예로, 디코딩 장치(200)는 공간적 위치 후보들 중에서 C 후보 블록을 사용하여 대표 움직임 정보를 결정할 수 있다. In an embodiment, the decoding apparatus 200 may determine the representative motion information using the C candidate block among the spatial position candidates.
도 13을 참조하면, 디코딩 장치(200)는 소정 크기의 저장 단위 내 C 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1300). 일 실시예로, 디코딩 장치(200)는 C 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. Referring to FIG. 13, the decoding apparatus 200 may determine whether a C candidate block in a storage unit having a predetermined size is an available spatial position candidate (S1300). According to an embodiment, the decoding apparatus 200 may determine whether the C candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
C 후보 블록이 가용한 경우, 디코딩 장치(200)는 C 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1305).If the C candidate block is available, the decoding apparatus 200 may determine the motion information of the C candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1305).
C 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 저장 단위 내 대표 움직임 정보로 디폴트 값을 설정할 수 있다(S1310). 일 실시예로, 디폴트 값은 0 값을 가지는 움직임 벡터일 수 있다. If the C candidate block is not available, the decoding apparatus 200 may set a default value as the representative motion information in the storage unit (S1310). In one embodiment, the default value may be a motion vector having a value of zero.
디코딩 장치(200)는 최종적으로 결정된 대표 움직임 정보를 해당 저장 단위에 대해 압축하여 저장할 수 있다(S1320).The decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit in operation S1320.
본 발명에서는 상술한 바와 같이 하드웨어 복잡도를 고려하여 1개의 최적화된 공간적 위치 후보를 이용할 수도 있으나, 압축 성능과 복잡도의 트레이드 오프(trade off) 조건을 고려하여 1개 이상의 최적화된 공간적 위치 후보를 이용할 수도 있다. In the present invention, as described above, one optimized spatial position candidate may be used in consideration of hardware complexity, but one or more optimized spatial position candidates may be used in consideration of a trade-off condition of compression performance and complexity. have.
아래 표는 본 발명에서 제안하는 1개 이상의 최적화된 공간적 위치 후보를 이용하여 소정 크기의 저장 단위에 대한 대표 움직임 정보를 결정하는 경우를 실험적으로 검증한 결과를 나타낸 것이다. The table below shows the results of the experimental verification of the case of determining the representative motion information for the storage unit of the predetermined size using one or more optimized spatial position candidates proposed in the present invention.
표 6은 최소 예측 블록 크기인 4x4 단위로 압축한 결과와 대비하여, 본 발명에서 제안하는 16x16 크기의 저장 단위로 2개의 최적화된 공간적 위치 후보(C 후보 블록 및 TL 후보 블록)을 사용할 경우의 성능을 나타낸 것이다. 이때, 공간적 후보 블록의 순회 순서는 C 후보 블록, TL 후보 블록의 순서이다.Table 6 shows the performance of using two optimized spatial position candidates (C candidate block and TL candidate block) in the 16x16 storage unit proposed by the present invention, compared with the compression result of 4x4 unit, which is the minimum prediction block size. It is shown. In this case, the traversal order of the spatial candidate blocks is a C candidate block and a TL candidate block.
YY UU VV
Class A1Class A1 0.06%0.06% -0.19%-0.19% -0.02%-0.02%
Class A2Class A2 -0.01%-0.01% -0.01%-0.01% 0.01%0.01%
Class BClass B 0.03%0.03% 0.01%0.01% -0.17%-0.17%
Class CClass C -0.03%-0.03% 0.06%0.06% 0.12%0.12%
Class DClass D -0.08%-0.08% -0.13%-0.13% -0.44%-0.44%
OverallOverall 0.00%0.00% -0.04%-0.04% -0.11%-0.11%
표 7은 최소 예측 블록 크기인 4x4 단위로 압축한 결과와 대비하여, 본 발명에서 제안하는 16x16 크기의 저장 단위로 모든 공간적 위치 후보(C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록)을 사용할 경우의 성능을 나타낸 것이다. 이때, 공간적 후보 블록의 순회 순서는 C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록이 순서이다. Table 7 shows all spatial position candidates (C candidate block, TL candidate block, TR candidate block, BL candidate block, It shows the performance when using the BR candidate block). In this case, the traversal order of the spatial candidate blocks is a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block.
YY UU VV
Class A1Class A1 0.01%0.01% -0.13%-0.13% 0.00%0.00%
Class A2Class A2 0.00%0.00% -0.08%-0.08% -0.02%-0.02%
Class BClass B -0.01%-0.01% 0.14%0.14% -0.08%-0.08%
Class CClass C -0.05%-0.05% 0.12%0.12% -0.03%-0.03%
Class DClass D -0.19%-0.19% -0.14%-0.14% -0.31%-0.31%
OverallOverall -0.05%-0.05% 0.00%0.00% -0.09%-0.09%
도 14는 본 발명에 따라서 공간적 위치 후보들 중에서 2개의 최적화된 공간적 위치 후보를 참조하여 소정 크기의 저장 단위 내 대표 움직임 정보를 결정하는 방법의 일 실시예를 나타내는 흐름도이다. 도 14의 방법은 인코딩 장치(100) 및 디코딩 장치(200)에서 수행될 수 있으나, 도 14에서는 설명의 편의 상 디코딩 장치(200)에서 수행되는 것으로 설명한다. 14 is a flowchart illustrating an embodiment of a method of determining representative motion information in a storage unit of a predetermined size with reference to two optimized spatial position candidates among spatial position candidates according to the present invention. Although the method of FIG. 14 may be performed by the encoding apparatus 100 and the decoding apparatus 200, it is described in FIG. 14 as being performed by the decoding apparatus 200 for convenience of description.
일 실시예로, 디코딩 장치(200)는 공간적 위치 후보들 중에서 C 후보 블록, TL 후보 블록을 사용하여 대표 움직임 정보를 결정할 수 있다. 이때, 공간적 위치 후보의 순회 순서는 C 후보 블록, TL 후보 블록의 순서로 탐색될 수 있다. In an embodiment, the decoding apparatus 200 may determine the representative motion information using the C candidate block and the TL candidate block among the spatial position candidates. In this case, the traversal order of the spatial position candidates may be searched in the order of the C candidate block and the TL candidate block.
도 14를 참조하면, 디코딩 장치(200)는 소정 크기의 저장 단위 내 C 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1400). 일 실시예로, 디코딩 장치(200)는 C 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. Referring to FIG. 14, the decoding apparatus 200 may determine whether a C candidate block in a storage unit having a predetermined size is an available spatial position candidate (S1400). According to an embodiment, the decoding apparatus 200 may determine whether the C candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
C 후보 블록이 가용한 경우, 디코딩 장치(200)는 C 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1405). 이 경우, 디코딩 장치(200)는 TL 후보 블록에 대해서 가용한 공간적 위치 후보인지를 판단하는 과정을 수행하지 않을 수 있다. If the C candidate block is available, the decoding apparatus 200 may determine the motion information of the C candidate block as the representative motion information in the storage unit, and may compress and store the motion information (S1405). In this case, the decoding apparatus 200 may not perform a process of determining whether it is an available spatial position candidate for the TL candidate block.
C 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 소정 크기의 저장 단위 내 TL 후보 블록이 가용한 공간적 위치 후보인지 여부를 결정할 수 있다(S1410). 일 실시예로, 디코딩 장치(200)는 TL 후보 블록이 인터 예측 모드로 예측된 블록인지를 판단하고, 인터 예측 모드로 예측된 블록일 경우 가용한 공간적 위치 후보로 결정할 수 있다. If the C candidate block is not available, the decoding apparatus 200 may determine whether the TL candidate block in the storage unit of the predetermined size is an available spatial position candidate (S1410). In an embodiment, the decoding apparatus 200 may determine whether the TL candidate block is a block predicted in the inter prediction mode, and determine the available spatial position candidate when the block is predicted in the inter prediction mode.
TL 후보 블록이 가용한 경우, 디코딩 장치(200)는 TL 후보 블록의 움직임 정보를 저장 단위 내 대표 움직임 정보로 결정하고, 이를 압축하여 저장할 수 있다(S1415).When the TL candidate block is available, the decoding apparatus 200 may determine the motion information of the TL candidate block as representative motion information in the storage unit, and compress and store the motion information of the TL candidate block in operation S1415.
TL 후보 블록이 가용하지 않은 경우, 디코딩 장치(200)는 공간적 위치 후보 중에서 가용한 후보가 존재하지 않는 것으로 판단하여, 저장 단위 내 대표 움직임 정보로 디폴트 값을 설정할 수 있다(S1420). 일 실시예로, 디폴트 값은 0 값을 가지는 움직임 벡터일 수 있다. If the TL candidate block is not available, the decoding apparatus 200 may determine that there are no available candidates among the spatial position candidates, and set a default value as the representative motion information in the storage unit (S1420). In one embodiment, the default value may be a motion vector having a value of zero.
디코딩 장치(200)는 상술한 바와 같이 C 후보 블록, TL 후보 블록의 순서로 순회하면서 최종적으로 결정된 대표 움직임 정보를 해당 저장 단위에 대해 압축하여 저장할 수 있다(S1430).As described above, the decoding apparatus 200 may compress and store the finally determined representative motion information for the corresponding storage unit while iterating in the order of the C candidate block and the TL candidate block (S1430).
본 발명은 상술한 바와 같이 공간적 위치 후보(들)을 기반으로 저장 단위를 대표하여 저장되는 대표 움직임 정보를 결정할 수도 있고, 소정 크기의 저장 단위에 포함된 예측 블록들의 면적을 기반으로 대표 움직임 정보를 결정할 수도 있다. The present invention may determine the representative motion information stored on behalf of the storage unit based on the spatial position candidate (s) as described above, and based on the area of the prediction blocks included in the storage unit of the predetermined size, the representative motion information may be determined. You can also decide.
도 15는 본 발명에 따라서 소정 크기의 저장 단위 내 예측 블록들의 면적을 기반으로 대표 움직임 정보를 결정하는 방법을 설명하기 위하여 도시된 하나의 저장 단위 내에 포함된 예측 블록들을 예시적으로 나타낸다. FIG. 15 exemplarily illustrates prediction blocks included in one storage unit to illustrate a method of determining representative motion information based on an area of prediction blocks in a storage unit having a predetermined size according to the present invention.
하나의 저장 단위 내에는 예측 블록들을 포함할 수 있으며, 각 예측 블록들의 면적은 도 15에 도시된 것과 같이 상이할 수 있다. One storage unit may include prediction blocks, and the areas of each prediction block may be different as shown in FIG. 15.
일 실시예로, 소정 크기의 저장 단위에 포함된 예측 블록들 중에서 가장 넓은 면적의 예측 블록에 대한 움직임 정보를 해당 저장 단위에 저장될 대표 움직임 정보로 사용할 수 있다. 예를 들어, 도 15에서는 MV0의 움직임 벡터를 포함하고 있는 예측 블록이 해당 저장 단위 내에서 가장 넓은 면적인 약 25%의 면적을 차지하고 있다. 이 경우, MV0의 움직임 벡터를 해당 저장 단위 내의 대표 움직임 정보로 사용할 수 있다. In an embodiment, the motion information of the prediction block having the largest area among the prediction blocks included in the storage unit having a predetermined size may be used as the representative motion information to be stored in the storage unit. For example, in FIG. 15, the prediction block including the motion vector of MV 0 occupies about 25% of the largest area in the storage unit. In this case, the motion vector of MV 0 may be used as the representative motion information in the corresponding storage unit.
이와 같이 저장 단위에 포함된 예측 블록들의 면적을 기반으로 대표 움직임 정보를 결정하는 방법은, 공간적 위치 후보를 탐색하는 과정에 비해서 하드웨어 구현 측면에서 효과적일 수 있다. 즉, 하드웨어 구현을 하였을 경우, 미리 정의된 위치(즉, 공간적 위치 후보)를 찾기 위하여 필요한 위치 계산 복잡도를 제거할 수 있고, 예측 블록의 면적 정보를 단순 읽기(read) 동작을 수행하여 판독 가능하므로, 하드웨어 측면에서 장점이 있다. As such, the method of determining the representative motion information based on the area of the prediction blocks included in the storage unit may be more effective in terms of hardware implementation than the process of searching for the spatial position candidate. That is, in the hardware implementation, it is possible to remove the position computation complexity required to find a predefined position (ie, spatial position candidate), and to read the area information of the prediction block by performing a simple read operation. In terms of hardware, there is an advantage.
상기 본 발명에서 제안된 방법에 의해서 해당 저장 단위 내에서 대표 움직임 정보를 결정하지 못하였을 경우, 해당 저장 단위에 대해 예외 처리를 할 수 있다. 이에 관해서 도 16을 참조하여 설명하도록 한다. When the representative motion information is not determined in the storage unit by the method proposed in the present invention, an exception may be processed for the storage unit. This will be described with reference to FIG. 16.
도 16은 본 발명에 따라서 하나의 저장 단위를 대표하여 저장되는 대표 움직임 정보에 대한 예외 처리의 일 실시예를 나타내는 도면이다. 도 16의 방법은 인코딩 장치(100) 및 디코딩 장치(200)에서 수행될 수 있으나, 도 16에서는 설명의 편의 상 디코딩 장치(200)에서 수행되는 것으로 설명한다. 16 is a diagram illustrating an embodiment of exception processing for representative motion information stored on behalf of one storage unit according to the present invention. Although the method of FIG. 16 may be performed by the encoding apparatus 100 and the decoding apparatus 200, the method of FIG. 16 is described as being performed by the decoding apparatus 200 for convenience of description.
도 16을 참조하면, 디코딩 장치(200)는 공간적 위치 후보들에 대해 정해진 순서에 따라 순회하면서 해당 공간적 위치 후보가 가용한지(available) 여부를 결정하고, 가용한 공간적 위치 후보의 움직임 정보를 대표 움직임 정보로 설정한다. 이때, 공간적 위치 후보들은, 도 9에 도시된 것과 같은 C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록을 포함할 수 있다. 공간적 위치 후보들의 정해진 순회 순서는, C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록 순일 수 있다.Referring to FIG. 16, the decoding apparatus 200 traverses the spatial position candidates in a predetermined order and determines whether the corresponding spatial position candidates are available, and represents the motion information of the available spatial position candidates as representative motion information. Set to. In this case, the spatial position candidates may include a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block as illustrated in FIG. 9. The predetermined traversal order of the spatial position candidates may be a C candidate block, a TL candidate block, a TR candidate block, a BL candidate block, and a BR candidate block.
디코딩 장치(200)는 C 후보 블록, TL 후보 블록, TR 후보 블록, BL 후보 블록, BR 후보 블록의 순서로 순회한 결과, 모든 공간적 위치 후보가 가용하지 않는 것으로 판단한 경우에 해당 저장 단위에 대해 예외 처리를 할 수 있다. 즉, 모든 공간적 위치 후보가 인터 예측 모드로 예측된 블록이 아닌 것으로 판단한 경우이므로, 디코딩 장치(200)는 해당 저장 단위의 대표 움직임 정보를 인트라 예측 모드로 설정할 수 있다. 다시 말해, 모든 공간적 위치 후보가 (인터 예측 모드가 아니라) 인트라 예측 모드로 예측된 블록이기 때문에, 해당 저장 단위 내 대표 움직임 정보를 상술한 실시예들에서는 0 값을 가지는 움직임 벡터로 설정한 것과 달리, 인트라 예측 모드로 설정할 수 있다. When the decoding apparatus 200 iterates in the order of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block, and determines that all spatial position candidates are not available, the decoding device 200 makes an exception to the corresponding storage unit. You can do it. That is, since it is determined that all the spatial position candidates are not the blocks predicted in the inter prediction mode, the decoding apparatus 200 may set the representative motion information of the corresponding storage unit to the intra prediction mode. In other words, since all spatial position candidates are blocks predicted in the intra prediction mode (rather than the inter prediction mode), unlike the case in which the representative motion information in the storage unit is set to the motion vector having a value of 0 in the above-described embodiments, Intra prediction mode may be set.
도 17은 본 발명에 따른 인코딩 장치에 의한 영상 인코딩 방법을 개략적으로 나타내는 흐름도이다. 17 is a flowchart schematically illustrating an image encoding method by an encoding apparatus according to the present invention.
도 17의 방법은 도 1의 인코딩 장치(100)에 의하여 수행될 수 있다. 보다 구체적으로, 단계 S1700 ~ S1730은 도 1에 개시된 예측부(110) 또는 메모리(160)에 의하여 수행될 수 있고, 단계 S1740는 도 1에 개시된 엔트로피 인코딩부(130)에 의하여 수행될 수 있다. 또한, 도 1 내지 도 16을 참조하여 설명한 내용과 중복되는 구체적인 내용은 설명을 생략하거나 간단히 하기로 한다. 또한, 도 17에 따른 인코딩 장치(100)는 후술하는 도 18에 따른 디코딩 장치(200)와 대응되는 동작들을 수행할 수 있다.The method of FIG. 17 may be performed by the encoding apparatus 100 of FIG. 1. More specifically, steps S1700 to S1730 may be performed by the prediction unit 110 or the memory 160 disclosed in FIG. 1, and step S1740 may be performed by the entropy encoding unit 130 illustrated in FIG. 1. In addition, the detailed description overlapping with the contents described with reference to FIGS. 1 to 16 will be omitted or simplified. In addition, the encoding apparatus 100 of FIG. 17 may perform operations corresponding to the decoding apparatus 200 of FIG. 18, which will be described later.
인코딩 장치(100)는 현재 블록의 시간적 주변 블록을 기반으로 현재 블록에 대한 시간적 움직임 정보를 도출할 수 있다(S1700).The encoding apparatus 100 may derive temporal motion information on the current block based on the temporal neighboring block of the current block (S1700).
시간적 주변 블록은 참조 픽처 내에서 현재 블록에 대응하여 위치하는 col 블록을 나타낸다. 일 실시예로, 도 3에서 설명한 바와 같이, 시간적 주변 블록은 참조 픽처(즉, col 픽처) 내에서 현재 블록의 우하측 코너 주변 블록에 대응하여 위치하는 A 블록 및/또는 현재 블록의 우하단 블록에 대응하여 위치하는 B 블록을 포함할 수 있다. 예를 들어, 인코딩 장치(100)는 먼저 참조 픽처 내에서 현재 블록의 col 블록으로서 A 블록의 가용성 여부를 판단할 수 있다. 즉, A 블록이 인트라 예측에만 이용되는지, 또는 픽처 경계(picture boundary)를 벗어나는지 등을 판단하여 가용성 여부를 판단할 수 있다. A 블록이 가용하지 않은 경우에 한해서 인코딩 장치(100)는 참조 픽처 내에서 현재 블록의 col 블록으로서 B 블록을 사용할 수 있다. The temporal neighboring block indicates a col block located corresponding to the current block in the reference picture. In one embodiment, as described with reference to FIG. 3, the temporal neighboring block is an A block located in the reference picture (ie, the col picture) corresponding to the lower right corner peripheral block of the current block and / or the lower right block of the current block. It may include a B block located corresponding to. For example, the encoding apparatus 100 may first determine whether an A block is available as a col block of a current block in a reference picture. That is, availability may be determined by determining whether the A block is used only for intra prediction or outside a picture boundary. Only when the A block is not available, the encoding apparatus 100 may use the B block as the col block of the current block in the reference picture.
시간적 움직임 정보는 참조 픽처(즉, col 픽처)에 대해 소정 크기의 저장 단위로 압축하여 저장된 대표 움직임 정보들 중에서, 상기 시간적 주변 블록(즉, col 블록)에 대응하는 저장 단위에 저장된 대표 움직임 정보와 동일한 움직임 정보일 수 있다.The temporal motion information includes representative motion information stored in a storage unit corresponding to the temporal neighboring block (ie, col block) among the representative motion information stored by compressing the reference picture (ie, col picture) into a storage unit having a predetermined size. It may be the same motion information.
여기서, 소정 크기의 저장 단위는 최소 예측 블록 크기보다 큰 크기를 가지는 블록일 수 있다. 예컨대, 최소 예측 블록 크기가 4x4 크기인 경우, 소정 크기의 저장 단위는 4x4 크기보다 큰 NxN 크기의 블록일 수 있으며, NxN 크기는 8x8, 16x16, 32x32, 64x64 등의 크기일 수 있다. 또한, 저장 단위의 크기는 미리 정해져 있을 수도 있고, 인코딩 장치(110)에서 디코딩 장치(200)로 시그널링되는 정보일 수 있다. Here, the storage unit having a predetermined size may be a block having a size larger than the minimum prediction block size. For example, when the minimum prediction block size is 4x4 size, the storage unit having a predetermined size may be an NxN size block larger than the 4x4 size, and the NxN size may be 8x8, 16x16, 32x32, 64x64. In addition, the size of the storage unit may be predetermined or may be information signaled from the encoding apparatus 110 to the decoding apparatus 200.
한편, 하나의 픽처가 디코딩되면 DPB에 저장될 수 있고, DPB에 저장된 픽처는 다른 픽처의 디코딩 시에 참조되는 참조 픽처로서 사용될 수 있다. 이때 움직임 정보 압축이 적용될 경우, DPB에 저장된 픽처(즉, 참조 픽처)는 픽처 내 모든 움직임 정보들을 저장하는 대신에 소정 크기의 저장 단위별로 움직임 정보를 압축하여 저장한다. 다시 말해, 하나의 픽처는 픽처 내 저장 단위의 개수만큼 대표 움직임 정보를 포함할 수 있다. On the other hand, when one picture is decoded, it may be stored in the DPB, and the picture stored in the DPB may be used as a reference picture referenced when decoding another picture. In this case, when motion information compression is applied, the picture stored in the DPB (ie, the reference picture) compresses and stores the motion information for each storage unit having a predetermined size instead of storing all the motion information in the picture. In other words, one picture may include representative motion information as many as the number of storage units in the picture.
따라서 시간적 주변 블록을 기반으로 도출되는 시간적 움직임 정보라 함은, 참조 픽처 내에서 시간적 주변 블록(즉, col 블록)을 포함하는 저장 단위를 대표하여 저장된 대표 움직임 정보를 말한다. Therefore, temporal motion information derived based on temporal neighboring blocks refers to representative motion information stored on behalf of a storage unit including temporal neighboring blocks (ie, col blocks) in a reference picture.
참조 픽처에 대해 저장 단위별로 대표 움직임 정보를 압축하여 저장함에 있어서, 인코딩 장치(100)는 참조 픽처 내의 블록들(즉, 예측 블록들)에 대하여 소정 크기의 저장 단위로 압축하여 저장되는 대표 움직임 정보를 결정하고, 결정된 대표 움직임 정보를 소정 크기의 저장 단위에 포함된 블록들의 움직임 정보로 저장할 수 있다. In compressing and storing the representative motion information for each reference unit for each storage unit, the encoding apparatus 100 compresses and stores the representative motion information for a block (that is, prediction blocks) in the reference picture in a storage unit having a predetermined size. May be determined and the determined representative motion information may be stored as motion information of blocks included in a storage unit having a predetermined size.
일 실시예로, 인코딩 장치(100)는 소정 크기의 저장 단위에 포함된 공간적 위치 후보들 중에서 가용한 공간적 위치 후보를 결정하고, 가용한 공간적 위치 후보의 움직임 정보를 소정 크기의 저장 단위에 저장되는 대표 움직임 정보로 결정할 수 있다. In an embodiment, the encoding apparatus 100 may determine an available spatial position candidate among the spatial position candidates included in the storage unit of the predetermined size, and may represent the motion information of the available spatial position candidate in the storage unit of the predetermined size. Can be determined by the motion information.
여기서, 공간적 위치 후보들은, 소정 크기의 저장 단위 내 C(Center)에 위치하는 C 후보 블록, TL(Top-Left)에 위치하는 TL 후보 블록, TR(Top-Right)에 위치하는 TR 후보 블록, BL(Bottom-Left)에 위치하는 BL 후보 블록 및 BR(Bottom- Right)에 위치하는 BR 후보 블록 중 적어도 하나를 포함할 수 있다. 또한, 공간적 위치 후보들은 미리 정의되어 있을 수 있다. Here, the spatial position candidates include a C candidate block located in C (Center) in a storage unit of a predetermined size, a TL candidate block located in Top-Left (TL), a TR candidate block located in Top-Right (TR), It may include at least one of a BL candidate block located in bottom-left (BL) and a BR candidate block located in bottom-right (BR). In addition, the spatial position candidates may be predefined.
또한, 가용한 공간적 위치 후보를 결정함에 있어서, 인코딩 장치(100)는 상기 C 후보 블록, 상기 TL 후보 블록, 상기 TR 후보 블록, 상기 BL 후보 블록 및 상기 BR 후보 블록 중 적어도 하나를 포함하는 공간적 위치 후보에 대해 정해진 순서에 따라 순회하면서 해당 공간적 위치 후보가 가용한지 여부를 결정할 수 있다. In addition, in determining an available spatial position candidate, the encoding apparatus 100 includes a spatial position including at least one of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block. It is possible to traverse the candidates in a predetermined order to determine whether the corresponding spatial position candidates are available.
소정 크기의 저장 단위에 포함된 공간적 위치 후보들 중에서 가용한 공간적 위치 후보가 존재하는 않는 경우, 인코딩 장치(100)는 디폴트 값으로 소정 크기의 저장 단위에 저장되는 대표 움직임 정보를 결정할 수 있다. 예를 들어, 디폴트 값은 0 값을 가지는 움직임 벡터 또는 인트라 모드일 수 있다. If there are no available spatial position candidates among the spatial position candidates included in the storage unit of the predetermined size, the encoding apparatus 100 may determine the representative motion information stored in the storage unit of the predetermined size as a default value. For example, the default value may be a motion vector or intra mode with a value of zero.
다른 실시예로, 인코딩 장치(100)는 소정 크기의 저장 단위에 포함된 블록들(즉, 예측 블록들)의 면적을 기반으로 소정 크기의 저장 단위에 저장되는 대표 움직임 정보를 결정할 수 있다. In another embodiment, the encoding apparatus 100 may determine the representative motion information stored in the storage unit of the predetermined size based on the area of blocks (that is, the prediction blocks) included in the storage unit of the predetermined size.
참조 픽처에 대해 저장 단위별로 대표 움직임 정보를 압축하여 저장하는 방법에 관해서는 도 7 내지 도 16을 참조하여 상세히 설명하였으므로, 본 실시예에서는 이에 관한 상세한 설명을 생락하도록 한다. 물론, 본 실시예에서도 도 7 내지 도 16에 개시된 참조 픽처에 대해 저장 단위별로 대표 움직임 정보를 압축하여 저장하는 다양한 방식들이 적용될 수 있다. A method of compressing and storing representative motion information for each reference unit for each storage unit has been described in detail with reference to FIGS. 7 to 16. Therefore, a detailed description thereof will be omitted. Of course, in the present embodiment, various methods of compressing and storing the representative motion information for each of the storage units for the reference picture disclosed in FIGS. 7 to 16 may be applied.
인코딩 장치(100)는 시간적 움직임 정보를 포함하는 현재 블록에 대한 움직임 정보 후보 리스트를 구성할 수 있다(S1710). The encoding apparatus 100 may construct a motion information candidate list for the current block including temporal motion information (S1710).
일 실시예로, 머지 모드가 적용되는 경우, 인코딩 장치(100)는 시간적 주변 블록인 col 블록에 대응하는 움직임 벡터를 이용하여 머지 후보 리스트를 생성할 수 있다. 즉, 머지 모드가 적용되는 경우, 움직임 정보 후보 리스트로서 머지 후보 리스트가 구성될 수 있다. 머지 후보 리스트 내 시간적 머지 후보(즉, 시간적 움직임 정보)는, col 픽처 내에서 col 블록에 대해 압축하여 저장된 움직임 정보를 이용할 수 있다. 다시 말해, 시간적 머지 후보(즉, 시간적 움직임 정보)는 col 픽처 내에서 col 블록을 포함하고 있는 해당 저장 단위에 대해 압축하여 저장된 대표 움직임 정보를 말한다. In an embodiment, when the merge mode is applied, the encoding apparatus 100 may generate a merge candidate list using a motion vector corresponding to a col block which is a temporal neighboring block. That is, when the merge mode is applied, the merge candidate list may be configured as the motion information candidate list. A temporal merge candidate (ie, temporal motion information) in the merge candidate list may use motion information compressed and stored for the col block in the col picture. In other words, the temporal merge candidate (ie, temporal motion information) refers to representative motion information stored by compressing and storing the corresponding storage unit including the col block in the col picture.
다른 실시예로, MVP(Motion Vector Prediction) 모드가 적용되는 경우, 인코딩 장치(100)는 시간적 주변 블록인 col 블록에 대응하는 움직임 벡터를 이용하여 움직임 벡터 예측자 후보 리스트를 생성할 수 있다. 즉, MVP 모드가 적용되는 경우, 움직임 정보 후보 리스트로서 움직임 벡터 예측자 후보 리스트가 구성될 수 있다. 움직임 벡터 예측자 후보 리스트 내 시간적 움직임 벡터 예측자 후보(즉, 시간적 움직임 정보)는, col 픽처 내에서 col 블록에 대해 압축하여 저장된 움직임 정보를 이용할 수 있다. 다시 말해, 시간적 움직임 벡터 예측자 후보(즉, 시간적 움직임 정보)는 col 픽처 내에서 col 블록을 포함하고 있는 해당 저장 단위에 대해 압축하여 저장된 대표 움직임 정보를 말한다. In another embodiment, when a motion vector prediction (MVP) mode is applied, the encoding apparatus 100 may generate a motion vector predictor candidate list using a motion vector corresponding to a col block which is a temporal neighboring block. That is, when the MVP mode is applied, the motion vector predictor candidate list may be configured as the motion information candidate list. The temporal motion vector predictor candidate (ie, temporal motion information) in the motion vector predictor candidate list may use motion information compressed and stored for the col block in the col picture. In other words, the temporal motion vector predictor candidate (ie, temporal motion information) refers to representative motion information compressed and stored with respect to the corresponding storage unit including the col block in the col picture.
인코딩 장치(100)는 움직임 정보 후보 리스트를 기반으로 현재 블록의 움직임 정보를 도출할 수 있다(S1720).The encoding apparatus 100 may derive motion information of the current block based on the motion information candidate list in operation S1720.
일 실시예로, 인코딩 장치(100)는 RD(rate-distortion) cost 기반으로 움직임 정보 후보 리스트에 포함된 움직임 정보 후보들 중에서 최적의 움직임 정보 후보를 선택할 수 있으며, 선택된 움직임 정보 후보를 현재 블록의 움직임 정보로 도출할 수 있다. According to an embodiment, the encoding apparatus 100 may select an optimal motion information candidate from among motion information candidates included in the motion information candidate list based on a rate-distortion (RD) cost, and use the selected motion information candidate as the motion of the current block. Can be derived from information.
인코딩 장치(100)는 현재 블록의 움직임 정보를 기반으로 현재 블록에 대한 예측을 수행할 수 있다(S1730).The encoding apparatus 100 may perform prediction on the current block based on the motion information of the current block (S1730).
즉, 인코딩 장치(100)는 현재 블록의 움직임 정보를 기반으로 현재 블록에 대해 인터 예측을 수행하여, 현재 블록의 예측 샘플들을 도출할 수 있다. 또한, 인코딩 장치(100)는 현재 블록의 예측 샘플들을 기반으로 현재 블록의 레지듀얼 샘플들을 도출할 수 있다. 이때, 인코딩 장치(100)는 레지듀얼 샘플들에 관한 레지듀얼 정보를 인코딩하여 디코딩 장치(200)로 시그널링할 수 있다. That is, the encoding apparatus 100 may derive the prediction samples of the current block by performing inter prediction on the current block based on the motion information of the current block. In addition, the encoding apparatus 100 may derive residual samples of the current block based on prediction samples of the current block. In this case, the encoding apparatus 100 may encode residual information regarding the residual samples and signal the decoding apparatus 200 to the decoding apparatus 200.
인코딩 장치(100)는 현재 블록의 움직임 정보를 인코딩할 수 있다(S1740). The encoding apparatus 100 may encode motion information of the current block (S1740).
일 실시예로, 인코딩 장치(100)는 RD(rate-distortion) cost 기반으로 움직임 정보 후보 리스트 내에서 선택된 움직임 정보 후보에 관한 정보를 인코딩할 수 있다. 예컨대, 인코딩 장치(100)는 움직임 정보 후보 리스트 내에서 현재 블록의 움직임 정보로서 사용될 움직임 정보 후보를 가리키는 후보 인덱스 정보를 인코딩하고 디코딩 장치(200)로 시그널링할 수 있다. According to an embodiment, the encoding apparatus 100 may encode information about a motion information candidate selected in a motion information candidate list based on a rate-distortion (RD) cost. For example, the encoding apparatus 100 may encode and index the candidate index information indicating the motion information candidate to be used as the motion information of the current block in the motion information candidate list and to the decoding apparatus 200.
도 18은 본 발명에 따른 디코딩 장치에 의한 영상 디코딩 방법을 개략적으로 나타내는 흐름도이다. 18 is a flowchart schematically illustrating an image decoding method by a decoding apparatus according to the present invention.
도 18의 방법은 도 2의 디코딩 장치(200)에 의하여 수행될 수 있다. 보다 구체적으로, 단계 S1800 ~ S1830은 도 2에 개시된 예측부(230) 또는 메모리(260)에 의하여 수행될 수 있다. 또한 일부 동작은 도 2에 개시된 엔트로피 디코딩부(210)에 의하여 수행될 수 있다. 또한, 도 1 내지 도 16을 참조하여 설명한 내용과 중복되는 구체적인 내용은 설명을 생략하거나 간단히 하기로 한다. 또한, 도 18에 따른 디코딩 장치(200)는 도 17에 따른 인코딩 장치(100)와 대응되는 동작들을 수행할 수 있다. The method of FIG. 18 may be performed by the decoding apparatus 200 of FIG. 2. More specifically, steps S1800 to S1830 may be performed by the predictor 230 or the memory 260 disclosed in FIG. 2. In addition, some operations may be performed by the entropy decoding unit 210 disclosed in FIG. 2. In addition, the detailed description overlapping with the contents described with reference to FIGS. 1 to 16 will be omitted or simplified. In addition, the decoding apparatus 200 of FIG. 18 may perform operations corresponding to the encoding apparatus 100 of FIG. 17.
디코딩 장치(200)는 현재 블록의 시간적 주변 블록을 기반으로 현재 블록에 대한 시간적 움직임 정보를 도출할 수 있다(S1800).The decoding apparatus 200 may derive temporal motion information on the current block based on the temporal neighboring block of the current block (S1800).
시간적 주변 블록은 참조 픽처 내에서 현재 블록에 대응하여 위치하는 col 블록을 나타낸다. 일 실시예로, 도 3에서 설명한 바와 같이, 시간적 주변 블록은 참조 픽처(즉, col 픽처) 내에서 현재 블록의 우하측 코너 주변 블록에 대응하여 위치하는 A 블록 및/또는 현재 블록의 우하단 블록에 대응하여 위치하는 B 블록을 포함할 수 있다. 예를 들어, 디코딩 장치(200)는 먼저 참조 픽처 내에서 현재 블록의 col 블록으로서 A 블록의 가용성 여부를 판단할 수 있다. 즉, A 블록이 인트라 예측에만 이용되는지, 또는 픽처 경계(picture boundary)를 벗어나는지 등을 판단하여 가용성 여부를 판단할 수 있다. A 블록이 가용하지 않은 경우에 한해서 디코딩 장치(200)는 참조 픽처 내에서 현재 블록의 col 블록으로서 B 블록을 사용할 수 있다. The temporal neighboring block indicates a col block located corresponding to the current block in the reference picture. In one embodiment, as described with reference to FIG. 3, the temporal neighboring block is an A block located in the reference picture (ie, the col picture) corresponding to the lower right corner peripheral block of the current block and / or the lower right block of the current block. It may include a B block located corresponding to. For example, the decoding apparatus 200 may first determine whether an A block is available as a col block of a current block in a reference picture. That is, availability may be determined by determining whether the A block is used only for intra prediction or outside a picture boundary. Only when the A block is not available, the decoding apparatus 200 may use the B block as the col block of the current block in the reference picture.
시간적 움직임 정보는 참조 픽처(즉, col 픽처)에 대해 소정 크기의 저장 단위로 압축하여 저장된 대표 움직임 정보들 중에서, 상기 시간적 주변 블록(즉, col 블록)에 대응하는 저장 단위에 저장된 대표 움직임 정보와 동일한 움직임 정보일 수 있다.The temporal motion information includes representative motion information stored in a storage unit corresponding to the temporal neighboring block (ie, col block) among the representative motion information stored by compressing the reference picture (ie, col picture) into a storage unit having a predetermined size. It may be the same motion information.
여기서, 소정 크기의 저장 단위는 최소 예측 블록 크기보다 큰 크기를 가지는 블록일 수 있다. 예컨대, 최소 예측 블록 크기가 4x4 크기인 경우, 소정 크기의 저장 단위는 4x4 크기보다 큰 NxN 크기의 블록일 수 있으며, NxN 크기는 8x8, 16x16, 32x32, 64x64 등의 크기일 수 있다. 또한, 저장 단위의 크기는 미리 정해져 있을 수도 있고, 인코딩 장치(110)에서 디코딩 장치(200)로 시그널링되는 정보일 수 있다. Here, the storage unit having a predetermined size may be a block having a size larger than the minimum prediction block size. For example, when the minimum prediction block size is 4x4 size, the storage unit having a predetermined size may be an NxN size block larger than the 4x4 size, and the NxN size may be 8x8, 16x16, 32x32, 64x64. In addition, the size of the storage unit may be predetermined or may be information signaled from the encoding apparatus 110 to the decoding apparatus 200.
한편, 하나의 픽처가 디코딩되면 DPB에 저장될 수 있고, DPB에 저장된 픽처는 다른 픽처의 디코딩 시에 참조되는 참조 픽처로서 사용될 수 있다. 이때 움직임 정보 압축이 적용될 경우, DPB에 저장된 픽처(즉, 참조 픽처)는 픽처 내 모든 움직임 정보들을 저장하는 대신에 소정 크기의 저장 단위별로 움직임 정보를 압축하여 저장한다. 다시 말해, 하나의 픽처는 픽처 내 저장 단위의 개수만큼 대표 움직임 정보를 포함할 수 있다. On the other hand, when one picture is decoded, it may be stored in the DPB, and the picture stored in the DPB may be used as a reference picture referred to when decoding another picture. In this case, when motion information compression is applied, the picture stored in the DPB (ie, the reference picture) compresses and stores the motion information for each storage unit having a predetermined size instead of storing all the motion information in the picture. In other words, one picture may include representative motion information as many as the number of storage units in the picture.
따라서 시간적 주변 블록을 기반으로 도출되는 시간적 움직임 정보라 함은, 참조 픽처 내에서 시간적 주변 블록(즉, col 블록)을 포함하는 저장 단위를 대표하여 저장된 대표 움직임 정보를 말한다. Therefore, temporal motion information derived based on temporal neighboring blocks refers to representative motion information stored on behalf of a storage unit including temporal neighboring blocks (ie, col blocks) in a reference picture.
참조 픽처에 대해 저장 단위별로 대표 움직임 정보를 압축하여 저장함에 있어서, 디코딩 장치(200)는 참조 픽처 내의 블록들(즉, 예측 블록들)에 대하여 소정 크기의 저장 단위로 압축하여 저장되는 대표 움직임 정보를 결정하고, 결정된 대표 움직임 정보를 소정 크기의 저장 단위에 포함된 블록들의 움직임 정보로 저장할 수 있다. In compressing and storing the representative motion information for each reference unit for each storage unit, the decoding apparatus 200 compresses and stores the representative motion information in a storage unit having a predetermined size with respect to blocks (ie, prediction blocks) in the reference picture. May be determined and the determined representative motion information may be stored as motion information of blocks included in a storage unit having a predetermined size.
일 실시예로, 디코딩 장치(200)는 소정 크기의 저장 단위에 포함된 공간적 위치 후보들 중에서 가용한 공간적 위치 후보를 결정하고, 가용한 공간적 위치 후보의 움직임 정보를 소정 크기의 저장 단위에 저장되는 대표 움직임 정보로 결정할 수 있다. In an embodiment, the decoding apparatus 200 may determine an available spatial position candidate among the spatial position candidates included in the storage unit having a predetermined size, and may represent the motion information of the available spatial position candidate in the storage unit having the predetermined size. Can be determined by the motion information.
여기서, 공간적 위치 후보들은, 소정 크기의 저장 단위 내 C(Center)에 위치하는 C 후보 블록, TL(Top-Left)에 위치하는 TL 후보 블록, TR(Top-Right)에 위치하는 TR 후보 블록, BL(Bottom-Left)에 위치하는 BL 후보 블록 및 BR(Bottom- Right)에 위치하는 BR 후보 블록 중 적어도 하나를 포함할 수 있다. 또한, 공간적 위치 후보들은 미리 정의되어 있을 수 있다.Here, the spatial position candidates include a C candidate block located in C (Center) in a storage unit of a predetermined size, a TL candidate block located in Top-Left (TL), a TR candidate block located in Top-Right (TR), It may include at least one of a BL candidate block located in bottom-left (BL) and a BR candidate block located in bottom-right (BR). In addition, the spatial position candidates may be predefined.
또한, 가용한 공간적 위치 후보를 결정함에 있어서, 디코딩 장치(200)는 상기 C 후보 블록, 상기 TL 후보 블록, 상기 TR 후보 블록, 상기 BL 후보 블록 및 상기 BR 후보 블록 중 적어도 하나를 포함하는 공간적 위치 후보에 대해 정해진 순서에 따라 순회하면서 해당 공간적 위치 후보가 가용한지 여부를 결정할 수 있다. In addition, in determining an available spatial position candidate, the decoding apparatus 200 includes a spatial position including at least one of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block. It is possible to traverse the candidates in a predetermined order to determine whether the corresponding spatial position candidates are available.
소정 크기의 저장 단위에 포함된 공간적 위치 후보들 중에서 가용한 공간적 위치 후보가 존재하는 않는 경우, 디코딩 장치(200)는 디폴트 값으로 소정 크기의 저장 단위에 저장되는 대표 움직임 정보를 결정할 수 있다. 예를 들어, 디폴트 값은 0 값을 가지는 움직임 벡터 또는 인트라 모드일 수 있다. When there are no spatial position candidates available among the spatial position candidates included in the storage unit of the predetermined size, the decoding apparatus 200 may determine the representative motion information stored in the storage unit of the predetermined size as a default value. For example, the default value may be a motion vector or intra mode with a value of zero.
다른 실시예로, 디코딩 장치(200)는 소정 크기의 저장 단위에 포함된 블록들(즉, 예측 블록들)의 면적을 기반으로 소정 크기의 저장 단위에 저장되는 대표 움직임 정보를 결정할 수 있다. In another embodiment, the decoding apparatus 200 may determine the representative motion information stored in the storage unit of the predetermined size based on the area of the blocks (that is, the prediction blocks) included in the storage unit of the predetermined size.
참조 픽처에 대해 저장 단위별로 대표 움직임 정보를 압축하여 저장하는 방법에 관해서는 도 7 내지 도 16을 참조하여 상세히 설명하였으므로, 본 실시예에서는 이에 관한 상세한 설명을 생락하도록 한다. 물론, 본 실시예에서도 도 7 내지 도 16에 개시된 참조 픽처에 대해 저장 단위별로 대표 움직임 정보를 압축하여 저장하는 다양한 방식들이 적용될 수 있다. A method of compressing and storing representative motion information for each reference unit for each storage unit has been described in detail with reference to FIGS. 7 to 16. Therefore, a detailed description thereof will be omitted. Of course, in the present embodiment, various methods of compressing and storing the representative motion information for each of the storage units for the reference picture disclosed in FIGS. 7 to 16 may be applied.
디코딩 장치(200)는 시간적 움직임 정보를 포함하는 현재 블록에 대한 움직임 정보 후보 리스트를 구성할 수 있다(S1810). The decoding apparatus 200 may construct a motion information candidate list for the current block including temporal motion information (S1810).
일 실시예로, 머지 모드가 적용되는 경우, 디코딩 장치(200)는 시간적 주변 블록인 col 블록에 대응하는 움직임 벡터를 이용하여 머지 후보 리스트를 생성할 수 있다. 즉, 머지 모드가 적용되는 경우, 움직임 정보 후보 리스트로서 머지 후보 리스트가 구성될 수 있다. 머지 후보 리스트 내 시간적 머지 후보(즉, 시간적 움직임 정보)는, col 픽처 내에서 col 블록에 대해 압축하여 저장된 움직임 정보를 이용할 수 있다. 다시 말해, 시간적 머지 후보(즉, 시간적 움직임 정보)는 col 픽처 내에서 col 블록을 포함하고 있는 해당 저장 단위에 대해 압축하여 저장된 대표 움직임 정보를 말한다. In one embodiment, when the merge mode is applied, the decoding apparatus 200 may generate a merge candidate list using a motion vector corresponding to a col block which is a temporal neighboring block. That is, when the merge mode is applied, the merge candidate list may be configured as the motion information candidate list. A temporal merge candidate (ie, temporal motion information) in the merge candidate list may use motion information compressed and stored for the col block in the col picture. In other words, the temporal merge candidate (ie, temporal motion information) refers to representative motion information stored by compressing and storing the corresponding storage unit including the col block in the col picture.
다른 실시예로, MVP(Motion Vector Prediction) 모드가 적용되는 경우, 디코딩 장치(200)는 시간적 주변 블록인 col 블록에 대응하는 움직임 벡터를 이용하여 움직임 벡터 예측자 후보 리스트를 생성할 수 있다. 즉, MVP 모드가 적용되는 경우, 움직임 정보 후보 리스트로서 움직임 벡터 예측자 후보 리스트가 구성될 수 있다. 움직임 벡터 예측자 후보 리스트 내 시간적 움직임 벡터 예측자 후보(즉, 시간적 움직임 정보)는, col 픽처 내에서 col 블록에 대해 압축하여 저장된 움직임 정보를 이용할 수 있다. 다시 말해, 시간적 움직임 벡터 예측자 후보(즉, 시간적 움직임 정보)는 col 픽처 내에서 col 블록을 포함하고 있는 해당 저장 단위에 대해 압축하여 저장된 대표 움직임 정보를 말한다. In another embodiment, when the Motion Vector Prediction (MVP) mode is applied, the decoding apparatus 200 may generate a motion vector predictor candidate list using a motion vector corresponding to a col block which is a temporal neighboring block. That is, when the MVP mode is applied, the motion vector predictor candidate list may be configured as the motion information candidate list. The temporal motion vector predictor candidate (ie, temporal motion information) in the motion vector predictor candidate list may use motion information compressed and stored for the col block in the col picture. In other words, the temporal motion vector predictor candidate (ie, temporal motion information) refers to representative motion information compressed and stored with respect to the corresponding storage unit including the col block in the col picture.
디코딩 장치(200)는 움직임 정보 후보 리스트를 기반으로 현재 블록의 움직임 정보를 도출할 수 있다(S1820).The decoding apparatus 200 may derive the motion information of the current block based on the motion information candidate list (S1820).
일 실시예로, 디코딩 장치(200)는 움직임 정보 후보 리스트에 포함된 움직임 정보 후보들 중에서 후보 인덱스가 가리키는 움직임 정보 후보를 선택하여 현재 블록의 움직임 정보로 도출할 수 있다. 이때, 후보 인덱스 정보는 인코딩 장치(100)로부터 시그널링될 수 있다. In an embodiment, the decoding apparatus 200 may select the motion information candidate indicated by the candidate index from the motion information candidates included in the motion information candidate list and derive the motion information candidate indicated by the current block. In this case, candidate index information may be signaled from the encoding apparatus 100.
디코딩 장치(200)는 현재 블록의 움직임 정보를 기반으로 현재 블록에 대한 예측을 수행할 수 있다(S1830).The decoding apparatus 200 may perform prediction on the current block based on the motion information of the current block (S1830).
즉, 디코딩 장치(200)는 현재 블록의 움직임 정보를 기반으로 현재 블록에 대해 인터 예측을 수행하여, 현재 블록의 예측 샘플들을 도출할 수 있다. 또한, 디코딩 장치(200)는 현재 블록의 레지듀얼 정보를 기반으로 레지듀얼 샘플들을 도출하고, 도출된 레지듀얼 샘플들 및 예측 샘플들을 기반으로 복원 픽처를 생성할 수 있다. 이때, 레지듀얼 정보는 인코딩 장치(100)로부터 시그널링될 수 있다. That is, the decoding apparatus 200 may derive the prediction samples of the current block by performing inter prediction on the current block based on the motion information of the current block. In addition, the decoding apparatus 200 may derive the residual samples based on the residual information of the current block, and generate a reconstructed picture based on the derived residual samples and the prediction samples. In this case, the residual information may be signaled from the encoding apparatus 100.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타내어진 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the above-described embodiment, the methods are described based on a flowchart as a series of steps or blocks, but the present invention is not limited to the order of steps, and any steps may occur in a different order or simultaneously from other steps as described above. have. In addition, those skilled in the art will appreciate that the steps shown in the flowcharts are not exclusive and that other steps may be included or one or more steps in the flowcharts may be deleted without affecting the scope of the present invention.
본 문서에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 이 경우 구현을 위한 정보(ex. information on instructions) 또는 알고리즘이 디지털 저장 매체에 저장될 수 있다. The embodiments described herein may be implemented and performed on a processor, microprocessor, controller, or chip. For example, the functional units shown in each drawing may be implemented and performed on a computer, processor, microprocessor, controller, or chip. In this case, information for implementation (ex. Information on instructions) or an algorithm may be stored in a digital storage medium.
또한, 본 발명이 적용되는 디코딩 장치 및 인코딩 장치는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 운송 수단 단말 (ex. 차량 단말, 비행기 단말, 선박 단말 등) 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recoder) 등을 포함할 수 있다.In addition, the decoding apparatus and encoding apparatus to which the present invention is applied include a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video chat device, a real time communication device such as video communication, and mobile streaming. Devices, storage media, camcorders, video on demand (VoD) service providing devices, OTT video (Over the top video) devices, internet streaming service providing devices, 3D (3D) video devices, video telephony video devices, vehicle terminals (ex Vehicle terminals, airplane terminals, ship terminals, etc.) and medical video devices, etc., and may be used to process video signals or data signals. For example, the OTT video device may include a game console, a Blu-ray player, an internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), and the like.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.In addition, the processing method to which the present invention is applied can be produced in the form of a program executed by a computer, and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium. The computer readable recording medium includes all kinds of storage devices and distributed storage devices in which computer readable data is stored. The computer-readable recording medium may be, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical disc. It may include a data storage device. The computer-readable recording medium also includes media embodied in the form of a carrier wave (for example, transmission over the Internet). In addition, the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.
또한, 본 발명의 실시예는 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 있고, 상기 프로그램 코드는 본 발명의 실시예에 의해 컴퓨터에서 수행될 수 있다. 상기 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.In addition, an embodiment of the present invention may be implemented as a computer program product by program code, which may be performed on a computer by an embodiment of the present invention. The program code may be stored on a carrier readable by a computer.
도 19는 본 발명이 적용되는 컨텐츠 스트리밍 시스템 구조도를 예시적으로 나타낸다. 19 exemplarily shows a structure diagram of a content streaming system to which the present invention is applied.
본 발명이 적용되는 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.The content streaming system to which the present invention is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.The encoding server compresses content input from multimedia input devices such as a smart phone, a camera, a camcorder, etc. into digital data to generate a bitstream and transmit the bitstream to the streaming server. As another example, when multimedia input devices such as smart phones, cameras, camcorders, etc. directly generate a bitstream, the encoding server may be omitted.
상기 비트스트림은 본 발명이 적용되는 인코딩 방법 또는 비트스트림 생성 방법에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.The bitstream may be generated by an encoding method or a bitstream generation method to which the present invention is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기초하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송한다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 한다.The streaming server transmits the multimedia data to the user device based on the user's request through the web server, and the web server serves as a medium for informing the user of what service. When a user requests a desired service from the web server, the web server delivers it to a streaming server, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include a separate control server. In this case, the control server plays a role of controlling a command / response between devices in the content streaming system.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하게 되는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.The streaming server may receive content from a media store and / or an encoding server. For example, when the content is received from the encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.Examples of the user device include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), navigation, a slate PC, Tablet PCs, ultrabooks, wearable devices, such as smartwatches, glass glasses, head mounted displays, digital TVs, desktops Computer, digital signage, and the like.
상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.Each server in the content streaming system may be operated as a distributed server, in which case data received from each server may be distributed.

Claims (11)

  1. 디코딩 장치에 의하여 수행되는 영상 디코딩 방법에 있어서,In the image decoding method performed by the decoding apparatus,
    현재 블록의 시간적(temporal) 주변 블록을 기반으로 상기 현재 블록에 대한 시간적 움직임 정보를 도출하는 단계;Deriving temporal motion information for the current block based on a temporal neighboring block of the current block;
    상기 시간적 움직임 정보를 포함하는 상기 현재 블록에 대한 움직임 정보 후보 리스트를 구성하는 단계;Constructing a motion information candidate list for the current block including the temporal motion information;
    상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계; 및Deriving motion information of the current block based on the motion information candidate list; And
    상기 현재 블록의 움직임 정보를 기반으로 상기 현재 블록에 대한 예측을 수행하는 단계를 포함하며,Performing prediction on the current block based on the motion information of the current block,
    상기 시간적 주변 블록은, 참조 픽처 내에서 상기 현재 블록에 대응하여 위치하는 col 블록(collocated block)이며,The temporal neighboring block is a col block (collocated block) positioned corresponding to the current block in a reference picture,
    상기 시간적 움직임 정보는, 상기 참조 픽처에 대해 소정의 저장 단위로 압축하여 저장된 대표 움직임 정보들 중에서, 상기 col 블록에 대응하는 저장 단위에 저장된 대표 움직임 정보와 같은 것을 특징으로 하는 영상 디코딩 방법. The temporal motion information is the same as the representative motion information stored in the storage unit corresponding to the col block among the representative motion information compressed and stored in a predetermined storage unit for the reference picture.
  2. 제1항에 있어서,The method of claim 1,
    상기 참조 픽처 내의 블록들에 대하여 상기 소정의 저장 단위로 대표하여 저장되는 대표 움직임 정보를 결정하는 단계; 및Determining representative motion information stored on a representative basis in the predetermined storage unit with respect to blocks in the reference picture; And
    상기 결정된 대표 움직임 정보를 상기 소정의 저장 단위에 포함된 블록들의 움직임 정보로 저장하는 단계를 더 포함하며,Storing the determined representative motion information as motion information of blocks included in the predetermined storage unit,
    상기 대표 움직임 정보를 결정하는 단계는, The determining of the representative motion information,
    상기 소정의 저장 단위에 포함된 공간적 위치 후보들 중에서 가용한(available) 공간적 위치 후보를 결정하고, 상기 가용한 공간적 위치 후보의 움직임 정보를 상기 소정의 저장 단위에 저장되는 대표 움직임 정보로 결정하는 것을 특징으로 하는 영상 디코딩 방법.Determining available spatial position candidates among spatial position candidates included in the predetermined storage unit, and determining motion information of the available spatial position candidates as representative motion information stored in the predetermined storage unit. A video decoding method.
  3. 제2항에 있어서,The method of claim 2,
    상기 공간적 위치 후보들은,The spatial position candidates are
    상기 소정의 저장 단위 내 C(Center)에 위치하는 C 후보 블록, TL(Top-Left)에 위치하는 TL 후보 블록, TR(Top-Right)에 위치하는 TR 후보 블록, BL(Bottom-Left)에 위치하는 BL 후보 블록 및 BR(Bottom- Right)에 위치하는 BR 후보 블록 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 디코딩 방법.In the C candidate block located in C (Center) in the predetermined storage unit, the TL candidate block located in Top-Left (TL), the TR candidate block located in Top-Right (TR), and Bottom-Left (BL). And at least one of a BL candidate block located and a BR candidate block located at bottom-right (BR).
  4. 제3항에 있어서,The method of claim 3,
    상기 대표 움직임 정보를 결정하는 단계는, The determining of the representative motion information,
    상기 C 후보 블록, 상기 TL 후보 블록, 상기 TR 후보 블록, 상기 BL 후보 블록 및 상기 BR 후보 블록 중 적어도 하나를 포함하는 상기 공간적 위치 후보들에 대해 정해진 순서에 따라 순회하면서 해당 공간적 위치 후보가 가용한지 여부를 결정하는 것을 특징으로 하는 영상 디코딩 방법. Whether the spatial position candidate is available while traversing in a predetermined order for the spatial position candidates including at least one of the C candidate block, the TL candidate block, the TR candidate block, the BL candidate block, and the BR candidate block. The image decoding method, characterized in that for determining.
  5. 제2항에 있어서,The method of claim 2,
    상기 대표 움직임 정보를 결정하는 단계는,The determining of the representative motion information,
    상기 소정의 저장 단위에 포함된 공간적 위치 후보들 중에서 가용한 공간적 위치 후보가 존재하지 않는 경우, 디폴트 값으로 상기 소정의 저장 단위에 저장되는 대표 움직임 정보를 결정하는 것을 특징으로 하는 영상 디코딩 방법. And if there are no available spatial position candidates among the spatial position candidates included in the predetermined storage unit, the representative motion information stored in the predetermined storage unit is determined as a default value.
  6. 제5항에 있어서,The method of claim 5,
    상기 디폴트 값은, 0 또는 인트라 모드인 것을 특징으로 하는 영상 디코딩 방법. The default value is a video decoding method, characterized in that 0 or intra mode.
  7. 제1항에 있어서,The method of claim 1,
    상기 참조 픽처 내의 블록들에 대하여 상기 소정의 저장 단위로 대표하여 저장되는 대표 움직임 정보를 결정하는 단계; 및Determining representative motion information stored on a representative basis in the predetermined storage unit with respect to blocks in the reference picture; And
    상기 결정된 대표 움직임 정보를 상기 소정의 저장 단위에 포함된 블록들의 움직임 정보로 저장하는 단계를 더 포함하며,Storing the determined representative motion information as motion information of blocks included in the predetermined storage unit,
    상기 대표 움직임 정보를 결정하는 단계는, The determining of the representative motion information,
    상기 소정의 저장 단위에 포함된 블록들의 면적을 기반으로 상기 소정의 저장 단위에 저장될 대표 움직임 정보를 결정하는 것을 특징으로 하는 영상 디코딩 방법. And determining representative motion information to be stored in the predetermined storage unit based on an area of blocks included in the predetermined storage unit.
  8. 제7항에 있어서,The method of claim 7, wherein
    상기 대표 움직임 정보를 결정하는 단계는, The determining of the representative motion information,
    상기 소정의 저장 단위에 포함된 블록들 중에서 가장 넓은 면적의 블록을 결정하고, 상기 가장 넓은 면적의 블록에 대한 움직임 정보를 상기 소정의 저장 단위에 저장되는 대표 움직임 정보로 결정하는 것을 특징으로 하는 영상 디코딩 방법.And determining the block having the largest area among the blocks included in the predetermined storage unit, and determining the motion information of the block having the largest area as the representative motion information stored in the predetermined storage unit. Decoding method.
  9. 제1항에 있어서,The method of claim 1,
    상기 소정의 저장 단위는, 최소 예측 유닛의 크기보다 큰 크기인 것을 특징으로 하는 영상 디코딩 방법. The predetermined storage unit is a video decoding method, characterized in that the size larger than the size of the minimum prediction unit.
  10. 제1항에 있어서,The method of claim 1,
    상기 소정의 저장 단위는, 4x4 크기보다 큰 크기인 것을 특징으로 하는 영상 디코딩 방법.The predetermined storage unit is a video decoding method, characterized in that the size larger than 4x4.
  11. 인코딩 장치에 의하여 수행되는 영상 인코딩 방법에 있어서,In the video encoding method performed by the encoding device,
    현재 블록의 시간적(temporal) 주변 블록을 기반으로 상기 현재 블록에 대한 시간적 움직임 정보를 도출하는 단계;Deriving temporal motion information for the current block based on a temporal neighboring block of the current block;
    상기 시간적 움직임 정보를 포함하는 상기 현재 블록에 대한 움직임 정보 후보 리스트를 구성하는 단계;Constructing a motion information candidate list for the current block including the temporal motion information;
    상기 움직임 정보 후보 리스트를 기반으로 상기 현재 블록의 움직임 정보를 도출하는 단계;Deriving motion information of the current block based on the motion information candidate list;
    상기 현재 블록의 움직임 정보를 기반으로 상기 현재 블록에 대한 예측을 수행하는 단계; 및Performing prediction on the current block based on the motion information of the current block; And
    상기 현재 블록의 움직임 정보를 인코딩하는 단계를 포함하며,Encoding motion information of the current block;
    상기 시간적 주변 블록은, 참조 픽처 내에서 상기 현재 블록에 대응하여 위치하는 col 블록(collocated block)이며,The temporal neighboring block is a col block (collocated block) positioned corresponding to the current block in a reference picture,
    상기 시간적 움직임 정보는, 상기 참조 픽처에 대해 소정의 저장 단위로 압축하여 저장된 대표 움직임 정보들 중에서, 상기 col 블록에 대응하는 저장 단위에 저장된 대표 움직임 정보와 같은 것을 특징으로 하는 영상 인코딩 방법.The temporal motion information is the same as the representative motion information stored in the storage unit corresponding to the col block among the representative motion information stored by compressing the reference picture in a predetermined storage unit.
PCT/KR2019/007925 2018-06-28 2019-06-28 Inter-prediction method using motion information compression, and device for same WO2020005032A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2018-0074830 2018-06-28
KR20180074830 2018-06-28
KR20180076748 2018-07-02
KR10-2018-0076748 2018-07-02

Publications (1)

Publication Number Publication Date
WO2020005032A1 true WO2020005032A1 (en) 2020-01-02

Family

ID=68987507

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/007925 WO2020005032A1 (en) 2018-06-28 2019-06-28 Inter-prediction method using motion information compression, and device for same

Country Status (1)

Country Link
WO (1) WO2020005032A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5807402B2 (en) * 2011-06-15 2015-11-10 富士通株式会社 Moving picture decoding apparatus, moving picture encoding apparatus, moving picture decoding method, moving picture encoding method, moving picture decoding program, and moving picture encoding program
KR101671507B1 (en) * 2015-06-26 2016-11-17 에스케이 텔레콤주식회사 Method and Apparatus for Encoding or Decoding Motion Vector
KR101760760B1 (en) * 2014-01-28 2017-07-24 주식회사 케이티 Method and video transmission server for transmitting motion vector, and method and device for reproducing video
JP2017200215A (en) * 2017-06-16 2017-11-02 株式会社東芝 Moving image encoding method and moving image decoding method
KR101796192B1 (en) * 2011-12-06 2017-11-10 연세대학교 산학협력단 Transcoding method and apparatus according to prediction motion vector selection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5807402B2 (en) * 2011-06-15 2015-11-10 富士通株式会社 Moving picture decoding apparatus, moving picture encoding apparatus, moving picture decoding method, moving picture encoding method, moving picture decoding program, and moving picture encoding program
KR101796192B1 (en) * 2011-12-06 2017-11-10 연세대학교 산학협력단 Transcoding method and apparatus according to prediction motion vector selection
KR101760760B1 (en) * 2014-01-28 2017-07-24 주식회사 케이티 Method and video transmission server for transmitting motion vector, and method and device for reproducing video
KR101671507B1 (en) * 2015-06-26 2016-11-17 에스케이 텔레콤주식회사 Method and Apparatus for Encoding or Decoding Motion Vector
JP2017200215A (en) * 2017-06-16 2017-11-02 株式会社東芝 Moving image encoding method and moving image decoding method

Similar Documents

Publication Publication Date Title
WO2020218793A1 (en) Bdpcm-based image coding method and device therefor
WO2020246849A1 (en) Transform-based image coding method and device for same
WO2020017892A1 (en) Method for predicting subblock-based temporal motion vector and apparatus therefor
WO2020017861A1 (en) Inter-prediction method for temporal motion information prediction in sub-block unit, and device therefor
WO2021137597A1 (en) Image decoding method and device using dpb parameter for ols
WO2020141879A1 (en) Affine motion prediction-based video decoding method and device using subblock-based temporal merge candidate in video coding system
WO2020141886A1 (en) Sbtmvp-based inter prediction method and apparatus
WO2021125700A1 (en) Prediction weighted table-based image/video coding method and apparatus
WO2020141932A1 (en) Inter prediction method and apparatus using cpr-based mmvd
WO2019225933A1 (en) Method and apparatus for decoding image by using mvd derived on basis of lut in image coding system
WO2020197274A1 (en) Transform-based image coding method and device therefor
WO2020076069A1 (en) Apparatus for performing image coding on basis of atmvp candidate
WO2024005616A1 (en) Image encoding/decoding method and device, and recording medium having bitstream stored thereon
WO2020013497A1 (en) Image decoding method and device using intra prediction information in image coding system
WO2019245228A1 (en) Method and device for processing video signal using affine motion prediction
WO2019199071A1 (en) Image decoding method and device in accordance with inter-prediction in image coding system
WO2020149616A1 (en) Method and device for decoding image on basis of cclm prediction in image coding system
WO2020060259A1 (en) Method for decoding image by using block partitioning in image coding system, and device therefor
WO2020071672A1 (en) Method for compressing motion vector and apparatus therefor
WO2020005032A1 (en) Inter-prediction method using motion information compression, and device for same
WO2018222020A1 (en) Method and apparatus for processing video signal through target area modification
WO2023128648A1 (en) Image encoding/decoding method and device, and recording medium on which bitstream is stored
WO2023182634A1 (en) Image decoding method and device
WO2024080706A1 (en) Image encoding/decoding method and apparatus, and recording medium on which bitstream is stored
WO2023146164A1 (en) Image decoding method and device

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

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

Country of ref document: EP

Kind code of ref document: A1