WO2020005042A1 - 디코더 측면의 움직임 보정을 사용하는 비디오 코딩 방법 및 장치 - Google Patents

디코더 측면의 움직임 보정을 사용하는 비디오 코딩 방법 및 장치 Download PDF

Info

Publication number
WO2020005042A1
WO2020005042A1 PCT/KR2019/007975 KR2019007975W WO2020005042A1 WO 2020005042 A1 WO2020005042 A1 WO 2020005042A1 KR 2019007975 W KR2019007975 W KR 2019007975W WO 2020005042 A1 WO2020005042 A1 WO 2020005042A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
motion
prediction
unit
offset
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2019/007975
Other languages
English (en)
French (fr)
Inventor
안용조
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intellectual Discovery Co Ltd
Original Assignee
Intellectual Discovery Co Ltd
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 Intellectual Discovery Co Ltd filed Critical Intellectual Discovery Co Ltd
Priority to CN202311509851.4A priority Critical patent/CN117354509A/zh
Priority to CN202311507833.2A priority patent/CN117354506A/zh
Priority to CN201980043825.2A priority patent/CN112335248B/zh
Priority to CN202311508957.2A priority patent/CN117354508A/zh
Priority to US17/256,295 priority patent/US11677970B2/en
Priority to CN202311511354.8A priority patent/CN117354510A/zh
Publication of WO2020005042A1 publication Critical patent/WO2020005042A1/ko
Anticipated expiration legal-status Critical
Priority to US18/316,873 priority patent/US12382073B2/en
Priority to US19/287,516 priority patent/US20260059131A1/en
Ceased legal-status Critical Current

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors

Definitions

  • the present invention relates to video coding techniques.
  • the present invention relates to motion compensation techniques on the decoder side of video coding techniques.
  • Video compression is largely composed of intra prediction (or intra prediction), inter prediction (or inter prediction), transform, quantization, entropy coding, and in-loop filter. Meanwhile, as the demand for high resolution video increases, the demand for stereoscopic video content also increases as a new video service. There is a discussion about a video compression technology for effectively providing high resolution and ultra high resolution stereoscopic image contents.
  • An object of the present invention is to provide an image encoding / decoding method and apparatus having improved efficiency.
  • Another object of the present invention is to provide a video coding method and apparatus for performing efficient motion compensation in a video encoding / decoding method and apparatus.
  • the image encoding / decoding method and apparatus determine whether motion correction is performed in units of sub-blocks, determine a search region for motion correction of a current block, and determine a plurality of SAD candidates for the search region. And derive the delta motion information of the current block based on the plurality of SAD candidates, and use the pre-generated motion information and the delta motion information of the current block to obtain motion information of the current block. You can correct it.
  • whether the motion compensation is performed in units of sub blocks may be determined based on the size of the current block.
  • the search region is determined as a region including at least one of a reference block or a peripheral region of the reference block, and the peripheral region is located at a boundary of the reference block. There may be neighboring N sample lines.
  • the SAD candidate is determined by an SAD value between an L0 block and an L1 block, and the L0 block is located at a position and a predetermined offset of the L0 reference block of the current block.
  • the L1 block may be determined based on the position of the L1 reference block of the current block and the predetermined offset.
  • the SAD candidate may be determined based on some samples of the L0 block and the L1 block.
  • the offset includes at least one of a non-directional offset or a directional offset
  • the directional offset includes: left, right, top, bottom, top left, top right, and left It may include an offset with respect to the direction of at least one of the bottom or bottom right.
  • the motion correction is adaptively performed based on a comparison result between a reference SAD candidate and a predetermined threshold, and the reference SAD candidate is set to a non-directional offset. It may mean a corresponding SAD candidate.
  • the motion compensation is limited in consideration of at least one of a block size, a distance between a current picture and a reference picture, an inter prediction mode, a prediction direction, a unit or resolution of motion information. It can be performed as.
  • an image encoding / decoding method and apparatus capable of efficient moving correction can be provided.
  • a computer-readable recording medium for storing a bitstream generated by the video encoding method / apparatus according to the present invention may be provided.
  • FIG. 1 is a block diagram illustrating a video encoding apparatus according to the present invention.
  • FIG. 2 is a block diagram illustrating an image decoding apparatus according to the present invention.
  • 3 is a diagram illustrating the concept of a technique for correcting motion in terms of a decoder.
  • FIG. 4 is a flowchart illustrating a motion compensation technique of the decoder side.
  • 5 is a diagram illustrating the concept of one coding block and sub-blocks of the coding block.
  • FIG. 6 is a flowchart illustrating a motion correction technique of a sub-block unit decoder side.
  • FIG. 7 is a diagram illustrating a target block performing block matching and target pixels within the block.
  • FIG. 8 is a diagram illustrating a concept of performing motion compensation on the decoder side by using a sub-sampled block.
  • 9 is a flowchart illustrating an early termination when a specific condition is satisfied in the process of performing motion compensation on the decoder side.
  • the image encoding / decoding method and apparatus determine whether motion correction is performed in units of sub-blocks, determine a search region for motion correction of a current block, and determine a plurality of SAD candidates for the search region. And derive the delta motion information of the current block based on the plurality of SAD candidates, and use the pre-generated motion information and the delta motion information of the current block to obtain motion information of the current block. You can correct it.
  • whether the motion compensation is performed in units of sub blocks may be determined based on the size of the current block.
  • the search region is determined as a region including at least one of a reference block or a peripheral region of the reference block, and the peripheral region is located at a boundary of the reference block. There may be neighboring N sample lines.
  • the SAD candidate is determined by an SAD value between an L0 block and an L1 block, and the L0 block is located at a position and a predetermined offset of the L0 reference block of the current block.
  • the L1 block may be determined based on the position of the L1 reference block of the current block and the predetermined offset.
  • the SAD candidate may be determined based on some samples of the L0 block and the L1 block.
  • the offset includes at least one of a non-directional offset or a directional offset
  • the directional offset includes: left, right, top, bottom, top left, top right, and left It may include an offset with respect to the direction of at least one of the bottom or bottom right.
  • the motion correction is adaptively performed based on a comparison result between a reference SAD candidate and a predetermined threshold, and the reference SAD candidate is set to a non-directional offset. It may mean a corresponding SAD candidate.
  • the motion compensation is limited in consideration of at least one of a block size, a distance between a current picture and a reference picture, an inter prediction mode, a prediction direction, a unit or resolution of motion information. It can be performed as.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • some of the configuration of the apparatus or some of the steps of the method may be omitted.
  • the order of some of the components of the apparatus or some of the steps of the method may be changed.
  • other configurations or other steps may be inserted into part of the device or part of the steps of the method.
  • each component shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and do not mean that each component is composed of separate hardware or one software unit. That is, each component is described by listing each component for convenience of description, and at least two of the components may be combined to form one component, or one component may be divided into a plurality of components to perform a function. The integrated and separated embodiments of each of these components are also included within the scope of the present invention without departing from the spirit of the invention.
  • the video decoding apparatus (Video Decoding Apparatus) to be described below is a civil security camera, civil security system, military security camera, military security system, personal computer (PC, Personal Computer), notebook computer, portable multimedia player (PMP, Portable MultimediaPlayer), It may be a device included in a server terminal such as a wireless communication terminal, a smart phone, a TV application server and a service server, and a communication modem for communicating with a user terminal such as various devices or a wired or wireless communication network. It may mean a variety of devices including a communication device such as an image, a memory for storing various programs and data for inter- or intra-prediction for decoding or decoding an image, a microprocessor for executing and operating a program, and the like. Can be.
  • the image encoded in the bitstream by the encoder is real-time or non-real-time through the wired or wireless communication network, such as the Internet, local area wireless communication network, wireless LAN network, WiBro network, mobile communication network or the like, cable, universal serial bus (USB, It can be transmitted to a video decoding apparatus through various communication interfaces such as a universal serial bus), decoded, reconstructed, and played back.
  • the bitstream generated by the encoder may be stored in the memory.
  • the memory may include both a volatile memory and a nonvolatile memory.
  • a memory may be represented as a recording medium storing a bitstream.
  • a video may be composed of a series of pictures, and each picture may be divided into a coding unit such as a block.
  • a coding unit such as a block.
  • FIG. 1 is a block diagram illustrating a video encoding apparatus according to the present invention.
  • the conventional video encoding apparatus 100 may include a picture splitter 110, a predictor 120 and 125, a transformer 130, a quantizer 135, a reordering unit 160, and an entropy encoder. 165, an inverse quantizer 140, an inverse transformer 145, a filter 150, and a memory 155.
  • the picture dividing unit 110 may divide the input picture into at least one processing unit.
  • the processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU).
  • a coding unit may be used as a unit for encoding or may be used as a unit for decoding.
  • the prediction unit may be split in the form of at least one square or rectangle having the same size in one coding unit, or the prediction unit of any one of the prediction units split in one coding unit is different from one another. It may be divided to have a different shape and / or size than the unit.
  • the intra prediction may be performed without splitting into a plurality of prediction units NxN.
  • the predictors 120 and 125 may include an inter predictor 120 that performs inter prediction or inter prediction, and an intra predictor 125 that performs intra prediction or intra prediction. Whether to use inter prediction or intra prediction on the prediction unit may be determined, and specific information (eg, an intra prediction mode, a motion vector, a reference picture, etc.) according to each prediction method may be determined.
  • the residual value (residual block) between the generated prediction block and the original block may be input to the transformer 130.
  • prediction mode information and motion vector information used for prediction may be encoded by the entropy encoder 165 together with the residual value and transmitted to the decoder.
  • the motion information derivation scheme of the decoder side since the prediction mode information, the motion vector information, and the like are not generated by the encoder, the corresponding information is not transmitted to the decoder. On the other hand, it is possible to signal and transmit information indicating that the motion information is derived from the decoder side and information on the technique used for deriving the motion information from the encoder.
  • the inter prediction unit 120 may predict the prediction unit based on the information of at least one of the previous picture or the next picture of the current picture. In some cases, the inter prediction unit 120 may predict the prediction unit based on the information of the partial region in which the encoding is completed in the current picture. You can also predict units.
  • the inter predictor 120 may include a reference picture interpolator, a motion predictor, and a motion compensator.
  • the reference picture interpolator may receive reference picture information from the memory 155 and generate pixel information of an integer pixel or less in the reference picture.
  • a DCT based 8-tap interpolation filter having different filter coefficients may be used to generate pixel information of integer pixels or less in units of 1/4 pixels.
  • a DCT-based interpolation filter having different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/8 pixels.
  • the motion predictor may perform motion prediction based on the reference picture interpolated by the reference picture interpolator.
  • various methods such as full search-based block matching algorithm (FBMA), three step search (TSS), and new three-step search algorithm (NTS) may be used.
  • FBMA full search-based block matching algorithm
  • TSS three step search
  • NTS new three-step search algorithm
  • the motion vector may have a motion vector value of 1/2 or 1/4 pixel units based on the interpolated pixels.
  • the motion prediction unit may predict the current prediction unit by using a different motion prediction method.
  • various methods such as a skip method, a merge method, an advanced motion vector prediction (AMVP) method, an intra block copy method, and the like may be used.
  • AMVP advanced motion vector prediction
  • the intra predictor 125 may generate a prediction unit based on reference pixel information around the current block, which is pixel information in the current picture. If the neighboring block of the current prediction unit is a block that has performed inter prediction, and the reference pixel is a pixel that has performed inter prediction, the reference pixel of the block that has performed intra prediction around the reference pixel included in the block where the inter prediction has been performed Can be used as a substitute for information. That is, when the reference pixel is not available, the unavailable reference pixel information may be replaced with at least one reference pixel among the available reference pixels.
  • a residual block may include a prediction unit performing prediction based on the prediction units generated by the prediction units 120 and 125 and residual information including residual information that is a difference from an original block of the prediction unit.
  • the generated residual block may be input to the transformer 130.
  • the transform unit 130 converts the residual block including residual information of the original block and the prediction unit generated by the prediction units 120 and 125 into a discrete cosine transform (DCT), a discrete sine transform (DST), and a KLT. You can convert using the same conversion method. Whether to apply DCT, DST, or KLT to transform the residual block may be determined based on intra prediction mode information of the prediction unit used to generate the residual block.
  • DCT discrete cosine transform
  • DST discrete sine transform
  • KLT KLT
  • the quantization unit 135 may quantize the values converted by the transformer 130 into the frequency domain.
  • the quantization coefficient may change depending on the block or the importance of the image.
  • the value calculated by the quantization unit 135 may be provided to the inverse quantization unit 140 and the reordering unit 160.
  • the reordering unit 160 may reorder coefficient values with respect to the quantized residual value.
  • the reordering unit 160 may change the two-dimensional block shape coefficients into a one-dimensional vector form through a coefficient scanning method. For example, the reordering unit 160 may scan from DC coefficients to coefficients in the high frequency region by using a Zig-Zag scan method and change them into one-dimensional vectors.
  • a vertical scan that scans two-dimensional block shape coefficients in a column direction instead of a zig-zag scan may be used, and a horizontal scan that scans two-dimensional block shape coefficients in a row direction. That is, according to the size of the transform unit and the intra prediction mode, it is possible to determine which scan method among the zig-zag scan, the vertical scan, and the horizontal scan is used.
  • the entropy encoder 165 may perform entropy encoding based on the values calculated by the reordering unit 160.
  • Entropy coding may use various coding methods such as, for example, Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • the entropy encoder 165 may encode residual value coefficient information of a coding unit from the reordering unit 160 and the predictors 120 and 125.
  • the inverse quantizer 140 and the inverse transformer 145 inverse quantize the quantized values in the quantizer 135 and inversely transform the transformed values in the transformer 130.
  • the residual value generated by the inverse quantizer 140 and the inverse transformer 145 is reconstructed by combining the prediction units predicted by the motion estimator, the motion compensator, and the intra predictor included in the predictors 120 and 125. You can create a Reconstructed Block.
  • the filter unit 150 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
  • the deblocking filter may remove block distortion caused by boundaries between blocks in the reconstructed picture.
  • the offset correction unit may correct the offset with respect to the original image on a pixel-by-pixel basis for the deblocking image.
  • the pixels included in the image are divided into a predetermined number of areas, and then, an area to be offset is determined, an offset is applied to the corresponding area, or offset considering the edge information of each pixel. You can use this method.
  • Adaptive Loop Filtering ALF
  • ALF Adaptive Loop Filtering
  • the memory 155 may store the reconstructed block or picture calculated by the filter unit 150, and the stored reconstructed block or picture may be provided to the predictors 120 and 125 when performing inter prediction.
  • FIG. 2 is a block diagram illustrating an image decoding apparatus according to the present invention.
  • the image decoder 200 includes an entropy decoder 210, a reordering unit 215, an inverse quantizer 220, an inverse transformer 225, a predictor 230, 235, and a filter unit ( 240, a memory 245 may be included.
  • the input bitstream may be decoded by a procedure opposite to that of the image encoder.
  • the entropy decoder 210 may perform entropy decoding in a procedure opposite to that of the entropy encoding performed by the entropy encoder of the image encoder. For example, various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied to the method performed by the image encoder.
  • various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied to the method performed by the image encoder.
  • the entropy decoder 210 may decode information related to intra prediction and inter prediction performed by the encoder.
  • the reordering unit 215 may reorder the entropy decoded bitstream by the entropy decoding unit 210 based on a method of rearranging the bitstream. Coefficients expressed in the form of a one-dimensional vector may be reconstructed by reconstructing the coefficients in a two-dimensional block form.
  • the inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoder and the coefficient values of the rearranged block.
  • the inverse transform unit 225 may perform an inverse transform, i.e., an inverse DCT, an inverse DST, and an inverse KLT, for a quantization result performed by the image encoder, that is, a DCT, DST, and KLT. Inverse transformation may be performed based on a transmission unit determined by the image encoder.
  • the inverse transform unit 225 of the image decoder may selectively perform a transform scheme (eg, DCT, DST, KLT) according to a plurality of pieces of information such as a prediction method, a size of a current block, and a prediction direction.
  • a transform scheme eg, DCT, DST, KLT
  • the prediction units 230 and 235 may generate the prediction block based on the prediction block generation related information provided by the entropy decoder 210 and previously decoded blocks or picture information provided by the memory 245.
  • the intra prediction when performing the intra prediction or the intra prediction in the same way as the operation of the image encoder, when the size of the prediction unit and the size of the transform unit are the same, the pixel existing on the left side and the pixel present on the upper left side
  • intra prediction is performed on a prediction unit based on the pixel present at the top, but the size of the prediction unit and the size of the transformation unit are different when performing the intra prediction, the intra prediction is performed using a reference pixel based on the transformation unit. You can make predictions.
  • intra prediction using NxN division may be used only for a minimum coding unit.
  • the predictors 230 and 235 may include a prediction unit determiner, an inter predictor, and an intra predictor.
  • the prediction unit determination unit receives various information such as prediction unit information input from the entropy decoder 210, prediction mode information of the intra prediction method, and motion prediction related information of the inter prediction method, and distinguishes the prediction unit from the current coding unit, and predicts It may be determined whether the unit performs inter prediction or intra prediction. On the other hand, if the encoder 100 does not transmit the motion prediction related information for the inter prediction, instead it transmits information indicating that the motion information is derived from the decoder side and information about the technique used for deriving the motion information. In this case, the prediction unit determination unit determines the prediction of the inter prediction unit 23 based on the information transmitted from the encoder 100.
  • the inter prediction unit 230 predicts the current prediction based on information included in at least one of a previous picture or a subsequent picture of the current picture including the current prediction unit by using information required for inter prediction of the current prediction unit provided by the image encoder. Inter prediction may be performed on a unit.
  • a motion prediction method of a prediction unit included in a coding unit based on a coding unit includes a skip mode, a merge mode, an AMVP mode, and an intra block copy mode. It can be determined whether or not.
  • the inter prediction unit 230 derives the motion information by itself from the information provided on the decoder, which indicates that the motion information is derived from the decoder, and the technique used to derive the motion information. Can be performed.
  • the intra predictor 235 may generate a prediction block based on pixel information in the current picture.
  • intra prediction may be performed based on intra prediction mode information of the prediction unit provided by the image encoder.
  • the intra predictor 235 may include an adaptive intra smoothing (AIS) filter, a reference pixel interpolator, and a DC filter.
  • the AIS filter is a part of filtering the reference pixel of the current block and determines whether to apply the filter according to the prediction mode of the current prediction unit.
  • AIS filtering may be performed on the reference pixel of the current block by using the prediction mode and the AIS filter information of the prediction unit provided by the image encoder. If the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.
  • the reference pixel interpolator may generate a reference pixel having an integer value or less by interpolating the reference pixel. If the prediction mode of the current prediction unit is a prediction mode for generating a prediction block without interpolating the reference pixel, the reference pixel may not be interpolated.
  • the DC filter may generate the prediction block through filtering when the prediction mode of the current block is the DC mode.
  • the reconstructed block or picture may be provided to the filter unit 240.
  • the filter unit 240 may include a deblocking filter, an offset correction unit, and an ALF.
  • Information about whether a deblocking filter is applied to a corresponding block or picture, and when the deblocking filter is applied to the corresponding block or picture, may be provided with information about whether a strong filter or a weak filter is applied.
  • the deblocking filter related information provided by the image encoder may be provided and the deblocking filtering of the corresponding block may be performed in the image decoder.
  • the offset correction unit may perform offset correction on the reconstructed image based on the type of offset correction and offset value information applied to the image during encoding.
  • the ALF may be applied to a coding unit based on ALF application information, ALF coefficient information, and the like provided from the encoder. Such ALF information may be provided included in a specific parameter set.
  • the memory 245 may store the reconstructed picture or block to use as a reference picture or reference block, and may provide the reconstructed picture to the output unit.
  • FIG. 3 is a diagram illustrating the concept of a technique for correcting motion in terms of a decoder.
  • FIG. 3 is a diagram illustrating a concept of a technique for correcting motion at the decoder side
  • the motion correction technique at the decoder side is a predetermined prediction method when the current block is a block predicted by bi-prediction.
  • the motion means motion information
  • the motion information may include at least one of a motion vector, a reference picture index, or a prediction direction.
  • the motion correction technique of the decoder side proposed in the present invention may be applied.
  • the current block 310 is a bidirectional prediction block.
  • the reference block 321 and the L1 direction in the L0 direction are made using the movement 340 in the L0 direction and the movement 341 in the L1 direction. Uses reference block 322 as the prediction block.
  • the bidirectional predicted prediction block is a 320 block, and means a block having the same size as the current block 310 generated by the weighted sum of the reference block 321 in the L0 direction and the reference block 322 in the L1 direction.
  • the weight for the weighted sum is n: m, n and m may be an integer other than zero.
  • the absolute value of n is a natural number greater than or equal to 1, less than or equal to 10, and n may be positive or negative.
  • m can be derived from (8-n).
  • the weight ratio is 1: 1, the 320 block may be a block having an average value of reference blocks in two different directions.
  • the bidirectional predicted prediction block 320 is used as the final prediction block of the current block.
  • the motion compensation technique of the decoder side proposed in the present invention performs motion estimation to perform an additional motion prediction within a predetermined search range in the decoder based on the bidirectional predicted prediction block 320 to correct the motion to have an optimal rate-distortion value.
  • the reference block in the L0 direction and the reference block in the L1 direction will be referred to as an L0 prediction block and an L1 prediction block, respectively.
  • a predetermined search range 360 including the L0 prediction block 321 and the L1 prediction block 322, respectively, will be described.
  • the pixels in the circuit are traversed, and the motion of minimizing the prediction block 320 and the rate-distortion value is searched for each direction.
  • the prediction block 320 and the block having the minimum motion rate-distortion value are searched in the search range in the L0 direction, so that the corrected motion information 350 in the L0 direction and the new prediction block 331 in the L0 direction are performed. Is determined.
  • the prediction block 320 and the block having the motions having the minimum rate-distortion value in the search range in the L1 direction are searched to correct the motion information 351 in the L1 direction and the prediction block in the new L1 direction. Determine (332).
  • the final bidirectional prediction block 330 obtained by performing the motion correction on the decoder side may be obtained by a weighted sum of the newly determined prediction blocks 331 and 332 in the L0 direction and the L1 direction.
  • FIG. 4 is a flowchart illustrating a motion compensation technique of the decoder side.
  • FIG. 4 is a flowchart illustrating a motion correction technique on the decoder side, wherein the motion correction technique on the decoder side is generated by a predetermined prediction method when the current block is a block predicted by bi-prediction.
  • the motion compensation technique of the decoder side is based on performing conditional operations in connection with motion compensation.
  • the flow of motion compensation using the motion correction technique of the decoder side includes a motion derivation and / or motion compensation step 400 according to a predetermined inter prediction mode, and includes a motion correction performing determination unit 410 of the decoder side; A motion correction performer 420 on the decoder side; And a corrected motion based motion compensation step 430.
  • the motion correction performance determining unit 410 of the decoder side determines whether the current block performs motion compensation. The determination is performed using the prediction direction, the block size, the distance between the current picture and the reference picture, the prediction mode, the prediction direction, the unit or resolution of the motion information, and the like. However, signaling of a sequence level for performing motion compensation on the decoder side may be performed.
  • the encoding mode information of the current coding unit may be a motion merging of a current prediction unit or a prediction of affine transform.
  • motion compensation of the decoder side may be performed.
  • the encoding mode information of the current coding unit may be a motion merging of a current prediction unit or a prediction of affine transform.
  • motion compensation of the decoder side may be performed.
  • the motion merge candidate which performs the sub-block unit motion prediction among the motion merge candidates the motion correction of the decoder side is not performed.
  • motion compensation of the decoder side is not performed.
  • the motion correction of the decoder side may be performed only when either the width or the height of the current block is greater than or equal to 8, 16, or 32. Alternatively, the motion correction of the decoder side may be performed only when the width and height of the current block are greater than or equal to 8, 16, or 32. Alternatively, motion compensation of the decoder side may be performed only when the width or the number of samples of the current block is greater than or equal to 64, 128, or 256.
  • the decoder side motion correction may be performed only when the difference in picture order count (POC) between the current picture and the L0 reference picture and the difference in POC between the current picture and the L1 reference picture are the same.
  • POC picture order count
  • the motion compensation of the decoder side may be performed only when the unit of motion is an integer pel, or the motion compensation of the decoder side may be performed only when the quarter pel or half pel is less than or equal to.
  • the mixed prediction mode is a prediction mode based on a combination of intra prediction and inter prediction.
  • the mixed prediction mode may be a mode for calculating intra prediction pixels and inter prediction pixels, and performing weighted prediction of both pixels.
  • the motion correction of the decoder side may be performed only when the current block does not perform the motion correction based on the predetermined offset information.
  • the offset information may include at least one of length, direction, or resolution (or accuracy) of the offset vector. That is, an offset vector may be specified based on the offset information, and motion compensation may be performed by applying the offset vector to a pre-restored motion vector.
  • the offset information may be signaled in an inter prediction mode in which a separate motion vector difference value mvd is not signaled, such as a merge mode.
  • the length of the offset vector is larger than a predetermined threshold length
  • motion compensation of the decoder side may be applied together with motion compensation based on offset information.
  • the threshold length may be an integer of 1, 2, 3, or more.
  • the motion correction may be performed in the order of motion correction on the side of the decoder, motion correction based on the offset information, or vice versa.
  • motion compensation on the decoder side may be applied.
  • the motion correction of the decoder side may be performed based on any of the above-described execution conditions, and the motion correction of the decoder side may be performed based on at least two combinations of the above-described execution conditions.
  • the motion correction performer 420 on the side of the decoder includes a L0 direction motion corrector 421 and a L1 direction motion corrector 422.
  • the motion compensation performing unit 420 on the decoder side performs motion prediction on the decoder side only by using only the prediction block obtained by performing the motion compensation 400 on the decoder side in the L0 and L1 directions to optimize the prediction block. Obtain a corrected motion with a rate-distortion value of.
  • the search area defined in the L0 and L1 directions refers to a pixel area that is spatially adjacent to the reference block before performing motion compensation on the decoder side.
  • the spatially adjacent pixel region may be limited to 8-neighboring pixels based on the reference block position. However, without being limited thereto, the scope is also included in the present invention.
  • the decoder side proposed by the present invention unlike obtaining the distortion value through the bit rate and block matching of the motion vector in the conventional motion prediction
  • the block having the minimum distortion value is selected as the final reference block in the motion search process using only the distortion value through block matching without considering the bit rate of the motion vector, and the motion vector is used as the final motion vector. use.
  • the decoder may determine a search region for motion compensation (S1).
  • the search area may be determined as an area including at least one of a reference block or a peripheral area of the reference block.
  • the position of the upper left sample of the reference block may be a reference position of the search.
  • the search area may be determined for the L0 direction and the L1 direction, respectively.
  • the peripheral area may mean N sample lines adjacent to the boundary of the reference block.
  • N may be an integer of 1, 2, 3 or more.
  • the peripheral area may be located in at least one of a left side, an upper end, a right side, a lower end, an upper left end, a lower left end, an upper right end, and a lower right end of the reference block.
  • the search region may be expressed as (W + 2N) x (H + 2N).
  • the peripheral area may be located only in some of the above-described directions.
  • the peripheral area may be limited to an area adjacent to at least one of the left, top, or upper left end of the reference block, and may be limited to an area adjacent to at least one of the right, bottom, or lower right end of the reference block.
  • the number N of sample lines may be a fixed value pre-defined at the decoder, or may be variably determined in consideration of block attributes.
  • the block attribute may mean a size / shape of a block, a block position, an inter prediction mode, a component type, and the like.
  • the block position may mean whether the reference block is in contact with a boundary of a picture or a predetermined fragment area.
  • the fragment area may mean a slice, a tile, a sub-tile (brick), a coding tree block column / column, or a coding tree block. For example, depending on the block attribute, either one of zero, one, or two sample lines may be selectively used.
  • the decoder may determine a sum of absolute difference (SAD) for each search position in the search region (S2).
  • the SAD for each search position will be called a SAD candidate.
  • the number of SAD candidates is M, and M may be an integer greater than or equal to two. M may be determined based on the number N of the sample lines described above. For example, if N is 1, then M may be limited to less than or equal to 9. Alternatively, if N is 2, M may be limited to less than or equal to 25. Alternatively, M may be less than or equal to 9 regardless of the number N of the sample lines described above.
  • the SAD candidate may be determined by the SAD value between the L0 block and the L1 block.
  • the SAD value may be calculated based on all samples belonging to the L0 / L1 block, or may be calculated based on some samples in the L0 / L1 block.
  • some samples belong to some areas of the L0 / L1 block, and at least one of the width or height of the some areas may be half the width or height of the L0 / L1 block. That is, the L0 and L1 blocks have a size of WxH, and the some samples may belong to some region having a size of WxH / 2, W / 2xH or W / 2xH / 2.
  • some samples may belong to the upper region (or the lower region) in the L0 / L1 block. If some region is W / 2xH, some samples may belong to the left region (or the right region) within the L0 / L1 block. When some regions are W / 2xH / 2, some samples may belong to the upper left region in the L0 / L1 block, but are not limited thereto. Alternatively, some samples may be defined as groups of even or odd sample lines (vertical or horizontal direction) of the L0 / L1 block or some region. Also, some samples may be L0 / L1 blocks or subsampled blocks in the vertical and / or horizontal directions of some regions.
  • the L0 and L1 blocks have a size of WxH
  • the block corresponding to the some samples may include a set of odd rows, a set of even rows, a set of odd columns, or an even number of samples included in the L0 / L1 block or some region. It may be at least one of a set of columns. The location of some of the samples described above will be further described with reference to FIGS. 7 and 8.
  • the position of the L0 block may be determined based on the position of the L0 reference block of the current block and a predetermined offset.
  • the offset may mean a disparity vector between the position of the L0 reference block and the search position. That is, the search position may be a position shifted by p in the x-axis direction and q in the y-axis direction at the position (x0, y0) of the L0 reference block.
  • p and q may be at least one of -1, 0, or 1.
  • the disparity vector generated by the combination of p and q may mean an offset.
  • the position of the L0 block may be determined as a position shifted by (p, q) from the position (x0, y0) of the L0 reference block.
  • the magnitude (or absolute value) of p and q is 0 or 1, but is not limited thereto.
  • the p and q may be an integer having a size of 2, 3, or more.
  • the offset may include at least one of a non-directional offset (0,0) or a directional offset.
  • the directional offset may include an offset with respect to at least one of left, right, top, bottom, top left, top right, bottom left, and bottom right.
  • the directional offset is (-1,0), (0,1), (0, -1), (0,1), (-1, -1), (-1,1), It may include at least one of (1, -1) or (1,1).
  • the position of the L1 block may be determined based on the position and the predetermined offset of the L1 reference block of the current block.
  • the offset of the L1 block may be determined based on the offset of the L0 block. For example, when the offset of the L0 block is (p, q), the offset of the L1 block may be determined as (-p, -q).
  • the information about the magnitude and / or direction of the aforementioned offset may be pre-defined at the decoder, or may be encoded at the encoder and signaled to the decoder.
  • the information may be variably determined in consideration of the aforementioned block attributes.
  • the offset may be defined as shown in Table 1 below.
  • Table 1 defines, for each index i, an offset for search position determination. However, Table 1 does not limit the position of the offset corresponding to the index i, the position of the offset for each index may be different from Table 1.
  • the offset according to Table 1 may include the aforementioned non-directional offset (0,0) and eight directional offsets.
  • the 0 th SAD candidate may be determined based on the position (x, y) and the offset (-1, -1) of the reference block. Specifically, a position shifted by an offset (-1, -1) from the position (x0, y0) of the L0 reference block may be set as the search position, and a WxH block including the search position as the upper left sample may be determined as the L0 block. have.
  • the position shifted by the offset (1,1) from the position (x1, y1) of the L1 reference block may be set as the search position, and the WxH block including the search position as the upper left sample may be determined as the L1 block.
  • the 0th SAD candidate may be determined by calculating the SAD between the L0 block and the L1 block.
  • the first to eighth SAD candidates may be determined, and an SAD array including nine SAD candidates may be determined.
  • Table 1 does not limit the number of offsets for motion compensation. Only k offsets of the nine offsets may be used. Here, k may be any value from 2 to 8. For example, in Table 1, three offsets may be used, such as [0,4,8], [1,4,7], [2,4,6], [3,4,5], and the like. Four offsets may be used, such as [0,1,3,4], [4,5,7,8], etc. [0,1,3,4,6,7], [0,1,2] Six offsets may be used.
  • the offset may be defined as shown in Table 2 below. That is, the offsets are non-directional offsets (0,0), horizontal offsets ((-1,0), (1,0)) and vertical offsets ((0, -1), (0,1) It may consist of only).
  • the offset may be defined as shown in Table 3 below.
  • Table 3 defines, for each index i, an offset for search position determination. However, Table 3 does not limit the position of the offset corresponding to the index i, the position of the offset for each index may be different from Table 3.
  • the offset according to Table 3 may include the aforementioned non-directional offset (0,0) and 24 directional offsets.
  • the 0 th SAD candidate may be determined based on the position (x, y) and the offset (-2, -2) of the reference block. Specifically, the position shifted by the offset (-2, -2) from the position (x0, y0) of the L0 reference block may be set as the search position, and the WxH block including the search position as the upper left sample may be determined as the L0 block. have.
  • the position shifted by the offset (2,2) from the position (x1, y1) of the L1 reference block may be set as the search position, and the WxH block including the search position as the upper left sample may be determined as the L1 block.
  • the 0th SAD candidate may be determined by calculating the SAD between the L0 block and the L1 block.
  • the 1st to 24th SAD candidates can be determined, and an SAD array including 25 SAD candidates can be determined.
  • the size and / or shape of the above-described search area may be variably determined, and the number of SAD candidates may be determined.
  • the decoder may perform motion correction on the current block based on the determined SAD candidate (S3).
  • a SAD candidate having a minimum value among a plurality of SAD candidates may be identified. Looking at the method for identifying the minimum SAD candidate, it is possible to compare the size between the first SAD candidate and the second SAD candidate. A smaller candidate among the first SAD candidate and the second SAD candidate may be set as a SAD candidate (mimSad) having a minimum value. A comparison between the minSad and the third SAD candidate may be performed and the minSad may be updated in the same manner. The comparison process may be performed by the number of the aforementioned offsets to determine the final minSad.
  • a plurality of SAD candidates may be grouped into two, three, or more numbers.
  • SAD candidates For convenience of explanation, a case of grouping SAD candidates into two groups will be described.
  • the plurality of SAD candidates may be grouped into a first group and a second group.
  • Each group may include at least two SAD candidates. However, the group may be limited to not include the reference SAD candidate.
  • the SAD candidate with the minimum value for each group can be extracted.
  • a SAD candidate having a minimum value among the SAD candidates extracted from the first group and the SAD candidates extracted from the second group (hereinafter, referred to as a temporary SAD candidate) may be extracted again.
  • the minimum SAD candidate may be identified based on a comparison result between the temporary SAD candidate and the reference SAD candidate. For example, when the temporary SAD candidate is smaller than the reference SAD candidate, the temporary SAD candidate may be identified as the minimum SAD candidate among the plurality of SAD candidates. On the other hand, if the temporary SAD candidate is greater than or equal to the reference SAD candidate, the reference SAD candidate may be identified as the minimum SAD candidate among the plurality of SAD candidates.
  • Delta motion information may be derived based on an offset corresponding to the identified minimum SAD candidate.
  • the pre-restored motion information may be corrected using the derived delta motion information.
  • the motion information of the current block may be obtained through at least one of motion correction at the decoder side or correction based on differential motion information.
  • the above-described motion correction on the decoder side may be adaptively performed based on a comparison result between the reference SAD candidate and a predetermined threshold.
  • the reference SAD candidate may mean a SAD candidate corresponding to an offset (0, 0).
  • the reference SAD candidate may mean a SAD candidate corresponding to a position of a reference block or a reference position changed by the first method described later.
  • the threshold value may be determined based on at least one of a width W or a height H of the current block or the reference block.
  • the current block may be determined based on at least one of the width W and the height H of the sub block.
  • the threshold is W * H, W * (H / 2), (W / 2) * H, 2 * W * H, 4 * W * H, 8 * W * H, 16 * W * H and the like can be determined.
  • delta motion information may be derived based on a method described later.
  • motion correction may not be performed.
  • a search position corresponding to the identified SAD candidate may be changed to a reference position for searching. Based on the changed reference position, the above-described SAD candidate determination and / or minimum SAD candidate identification process may be performed again, and the redundant description will be omitted. Based on the rerun result, the delta motion information may be updated.
  • motion compensation may be performed based on the sum of absolute transfrom difference (SATD) for each search position instead of the SAD.
  • SATD absolute transfrom difference
  • a SATD candidate may be determined by generating a difference block between the L0 block and the L1 block, and transforming all or some samples in the difference block into the frequency domain.
  • the conversion is performed in units of n * m subblocks, and n and m may be integers of 4, 8, or more.
  • the transformation may be performed based on a Hadamard transformation, a DCT, a DST, or the like.
  • the transform may include at least one of a first transform or a second transform.
  • the second transform may mean a secondary transform that is additionally applied to the result value of the first transform, and may be applied only to the DC component among the result values of the first transform.
  • the delta motion information is derived based on the offset corresponding to the SATD candidate of the minimum value among the SATD candidates, and the pre-restored motion information may be corrected using the delta motion information.
  • the SAD-based motion correction method may be applied to the SATD-based motion correction method in the same or similar manner, and thus a detailed description thereof will be omitted.
  • the compensated motion-based motion compensation step 430 shown in FIG. 4 is a step of performing bidirectional motion compensation based on the corrected L0 motion and L1 motion obtained through the motion correction performer 420 on the side of the decoder. .
  • FIG. 5 is a diagram illustrating the concept of one coding block and sub-blocks of the coding block.
  • FIG. 3 illustrates a concept of one coding block 500 and a sub-block 501 of the coding block.
  • a coding block having a size of 16 ⁇ 16 is illustrated as an embodiment, and the coding block is shown in FIG. 5.
  • One embodiment is shown which is divided into 16 4x4 sub-blocks in total.
  • FIG. 5 illustrates the concept of one coding block 500 and sub-blocks according to the motion correction technique of the decoder side of the sub-block unit, which is an embodiment of the motion correction technique of the decoder side proposed in the present invention.
  • a sub-block includes dividing one coding block using a fixed block size of 4x4 size.
  • the size of the sub-block may be transmitted by signaling through an additional higher-level syntax in addition to the fixed size of the 4x4 size.
  • the sub block may have the same width as the threshold size, otherwise the sub block may have the same width as the current block.
  • the threshold size may be an integer of 16, 32, 64, or more.
  • FIG. 6 is a flowchart illustrating a motion correction technique of a sub-block unit decoder side.
  • FIG. 6 is a flowchart illustrating a motion compensating technique of the sub-block unit decoder side
  • the motion compensation technique of the sub-block unit decoder side is a block in which the current block is predicted by bi-prediction.
  • a motion compensation process is performed by performing an additional motion prediction process in units of sub-blocks or blocks in a decoder by using a prediction block generated by a conventional prediction method.
  • the motion compensation technique of the decoder side is based on performing conditional operations in connection with motion compensation.
  • the motion compensation technique using the motion correction technique of the sub-block unit decoder side includes a motion derivation and / or motion compensation step 600 according to a predetermined inter prediction mode; A motion correction performance determining unit 610 of the decoder side; And a sub-block level performance determining unit 620.
  • the current coding block is divided into a plurality of sub-blocks and repeated until the last sub-block.
  • a motion correction unit 630 of the decoder side in block units; And a corrected motion based motion compensation step 640.
  • the motion compensation performance determining unit 610 of the decoder side determines whether the current block performs motion compensation. The determination is performed using the prediction direction, the block size, the distance between the current picture and the reference picture, the inter prediction mode, the prediction direction, the unit or resolution of the motion information, and the like. However, signaling of a sequence level for performing motion compensation on the decoder side may be performed.
  • the encoding mode information of the current coding unit may be a motion merging of a current prediction unit or a prediction of affine transform.
  • motion compensation of the decoder side may be performed.
  • the encoding mode information of the current coding unit may be a motion merging of a current prediction unit or a prediction of affine transform.
  • motion compensation of the decoder side may be performed.
  • the motion merge candidate which performs the sub-block unit motion prediction among the motion merge candidates the motion correction of the decoder side is not performed.
  • motion correction of the sub-block unit decoder side may be performed without further determination.
  • motion compensation of the decoder side is not performed.
  • the motion correction of the decoder side may be performed only when either the width or the height of the current block is greater than or equal to 8, 16, or 32. Alternatively, the motion correction of the decoder side may be performed only when the width and height of the current block are greater than or equal to 8, 16, or 32. Alternatively, motion compensation of the decoder side may be performed only when the width or the number of samples of the current block is greater than or equal to 64, 128, or 256.
  • the decoder side motion correction may be performed only when the difference in picture order count (POC) between the current picture and the L0 reference picture and the difference in POC between the current picture and the L1 reference picture are the same.
  • POC picture order count
  • the motion compensation of the decoder side may be performed only when the unit of motion is an integer pel, or the motion compensation of the decoder side may be performed only when the quarter pel or half pel is less than or equal to.
  • the method may include a step 620 of determining whether the current coding block performs motion correction on the decoder side of the coding block unit or sub-block motion correction. have.
  • the information of the current coding block may refer to motion merging or sub-block unit motion merging.
  • the information of the current coding block may also include motion information that is spatially and temporally adjacent to the current block.
  • whether to perform motion correction on a sub-block basis may be determined based on the size of the current block. For example, if the size of the current block is larger than the predetermined threshold size, the current block may perform motion correction in sub-block units, otherwise, the current block may not perform motion correction in sub-block units. have.
  • the size of the current block may mean at least one of the width or height of the current block.
  • the threshold size may be 16, 32 or more.
  • the current block may perform motion correction in units of sub-blocks.
  • the current block is 16x8 and the threshold size is 16, since both the width and the height of the current block are not greater than 16, the motion correction in the sub-block units may not be performed on the current block.
  • one coding block is divided into a plurality of sub-blocks.
  • the number may be defined by the size of a predefined sub-block and the size of the current coding block.
  • the size of the predefined sub-block may be 4x4. Or it may be 8x8, 16x16, which may be predefined or transmitted through higher-level syntax.
  • a division method into sub-blocks has been described with reference to FIG. 5, and a detailed description thereof will be omitted.
  • the motion correction performing unit 660 of the decoder side of the sub-block includes a L0 direction motion corrector 661 and a L1 direction motion corrector 662.
  • the motion correction performer 660 of the decoder side of the sub-block is defined in the L0 and L1 directions by using the sub-prediction blocks obtained by performing the motion compensation 600 and dividing the prediction block into a plurality of sub-blocks. Motion estimation is further performed on the decoder side only in the search area to obtain motion in units of the sub-prediction block and the corrected sub-block having an optimal rate-distortion value.
  • the search area defined in the L0 and L1 directions refers to a pixel area that is spatially adjacent to the reference block before performing motion compensation on the decoder side.
  • the spatially adjacent pixel region may be limited to 8-neighboring pixels based on the reference block position. However, without being limited thereto, the scope is also included in the present invention.
  • the decoder side proposed by the present invention unlike obtaining the distortion value through the bit rate and block matching of the motion vector in the conventional motion prediction
  • the block having the minimum distortion value is selected as the final reference block in the motion search process using only the distortion value through block matching without considering the bit rate of the motion vector, and the motion vector is used as the final motion vector. use.
  • the search area may be determined based on the sub block rather than the current block.
  • the motion compensation step 670 based on the sub-block unit shown in FIG. 6, the L0 motion of the sub-block unit obtained through the motion correction unit 660 on the side of the sub-block unit decoder is performed. And performing bidirectional motion compensation based on the L1 motion.
  • FIG. 7 is a diagram illustrating a target block performing block matching and target pixels within the block.
  • 700 illustrates a method of calculating an error between a target block and a reference block using all pixels in a block in general block matching, and 710 and 720 use only some pixels in a block to reduce the computational complexity required for block matching.
  • An example of a method of calculating an error between a target block and a reference block is shown.
  • the 710 block is classified into pixels belonging to the even row (EVEN ROWS) 711 and pixels belonging to the odd row (ODD ROWS) 712, so that the matching cost of the block,
  • computation complexity may be reduced by using only pixels in even rows or pixels in odd rows.
  • the criterion for classifying the target pixels used for matching to reduce the computation complexity is not limited to even rows and odd rows, and may also include a method of determining a target row by skipping by an integer row unit that is a multiple of two.
  • 720 block illustrated in FIG. 7 represents an embodiment using multiple rows of four.
  • FIG. 8 is a diagram illustrating a concept of performing motion compensation on the decoder side by using a sub-sampled block. As shown in FIG. 8, a process of searching for optimal motion information is performed in a process of correcting motion information on the decoder side with respect to a current block on which prediction is performed by bi-prediction, in which case, the block In calculating the distortion value of, the computational complexity may be reduced by using only some pixels in the block instead of using all pixels in the block.
  • FIG. 9 is a flowchart illustrating an early termination when a specific condition is satisfied in the process of performing motion compensation on the decoder side.
  • FIG. 9 is a diagram illustrating in detail the motion compensation performing units 420, 630, and 650 of the decoder side in the above-described motion compensation process of the decoder side. The flow diagram included is shown.
  • the motion compensation performer of the decoder side proposed by the present invention performs motion search on positions spatially adjacent to the existing reference block in the L0 direction and the L1 direction, respectively.
  • the computational complexity may be reduced by using only all or some pixels in the block.
  • the specific condition may be smaller than a constant value with respect to the distortion value of the initial reference block.
  • the constant value may be determined based on at least one of the width W or the height H of the current block or the reference block.
  • the current block may be determined based on at least one of the width W and the height H of the sub block.
  • the constant value is W * H, W * (H / 2), (W / 2) * H, 2 * W * H, 4 * W * H, 8 * W * H, 16 * W * H and the like.
  • the constant value may be expressed by a ratio of 0.9, 0.75, and the like.
  • various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof.
  • one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), General Purpose It may be implemented by a general processor, a controller, a microcontroller, a microprocessor, and the like.
  • scope of the disclosure include software or machine-executable instructions (eg, an operating system, an application, firmware, a program, etc.) to cause an operation in accordance with various embodiments of the method to be executed on an apparatus or a computer, and such software or Instructions, and the like, including non-transitory computer-readable media that are stored and executable on a device or computer.
  • software or machine-executable instructions eg, an operating system, an application, firmware, a program, etc.
  • the present invention can be used to encode / decode a video signal.

Landscapes

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

Abstract

본 발명에 따른 비디오 코딩 방법 및 장치는, 움직임 보정이 서브 블록의 단위로 수행되는지 여부를 결정하고, 현재 블록의 움직임 보정을 위한 탐색 영역을 결정하며, 탐색 영역에 대한 복수의 SAD 후보를 산출하고, 복수의 SAD 후보에 기초하여 현재 블록의 델타 움직임 정보를 유도하며, 현재 블록의 기-생성된 움직임 정보와 델타 움직임 정보를 이용하여, 현재 블록의 움직임 정보를 보정할 수 있다.

Description

디코더 측면의 움직임 보정을 사용하는 비디오 코딩 방법 및 장치
본 발명은 비디오 코딩 기술에 관한 것이다. 특히, 본 발명은 비디오 코딩 기술 중 디코더 측면의 움직임 보정 기술에 관한 것이다.
고해상도 비디오에 대한 시장의 수요가 증가하고 있으며, 이에 따라 고해상도 영상을 효율적으로 압축할 수 있는 기술이 필요하다. 이러한 시장의 요구에 따라 ISO/IEC의 MPEG (Moving Picture Expert Group)과 ITU-T의 VCEG (Video Coding Expert Group)이 공동으로 JCT-VC (Joint Collaborative Team on Video Coding)를 결성하여, HEVC (High Efficiency Video Coding) 비디오 압축 표준을 2013년 1월에 개발을 완료했으며, 차세대 압축 표준에 대한 연구 및 개발을 활발히 진행해오고 있다.
동영상 압축은 크게 화면 내 예측 (또는 인트라 예측), 화면 간 예측(또는 인터 예측), 변환, 양자화, 엔트로피(Entropy coding) 부호화, 인루프 필터(In-loop filter)로 구성된다. 한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
본 발명은 효율이 향상된 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 영상 부호화/복호화 방법 및 장치에 있어서, 효율적인 움직임 보정을 수행하는 비디오 코딩 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 상기 영상 부호화 방법/장치에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체를 제공하는 것을 목적으로 한다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 움직임 보정이 서브 블록의 단위로 수행되는지 여부를 결정하고, 현재 블록의 움직임 보정을 위한 탐색 영역을 결정하며, 상기 탐색 영역에 대한 복수의 SAD 후보를 산출하고, 상기 복수의 SAD 후보에 기초하여, 상기 현재 블록의 델타 움직임 정보를 유도하며, 상기 현재 블록의 기-생성된 움직임 정보와 상기 델타 움직임 정보를 이용하여, 상기 현재 블록의 움직임 정보를 보정할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 움직임 보정이 서브 블록의 단위로 수행되는지 여부는, 상기 현재 블록의 크기에 기초하여 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 탐색 영역은, 참조 블록 또는 상기 참조 블록의 주변 영역 중 적어도 하나를 포함하는 영역으로 결정되고, 상기 주변 영역은, 상기 참조 블록의 경계에 이웃한 N개의 샘플 라인일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 SAD 후보는, L0 블록과 L1 블록 간의 SAD 값으로 결정되고, 상기 L0 블록은, 상기 현재 블록의 L0 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정되고, 상기 L1 블록은, 상기 현재 블록의 L1 참조 블록의 위치 및 상기 소정의 오프셋에 기초하여 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 SAD 후보는, 상기 L0 블록과 상기 L1 블록의 일부 샘플을 기초로 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 오프셋은, 넌-방향성 오프셋 또는 방향성 오프셋 중 적어도 하나를 포함하고, 상기 방향성 오프셋은, 좌측, 우측, 상단, 하단, 좌상단, 우상단, 좌하단 또는 우하단 중 적어도 하나의 방향에 대한 오프셋을 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 움직임 보정은, 기준 SAD 후보와 소정의 문턱값 간의 비교 결과에 기초하여 적응적으로 수행되고, 상기 기준 SAD 후보는, 넌-방향성 오프셋에 대응하는 SAD 후보를 의미할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 움직임 보정은, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 인터 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 중 적어도 하나를 고려하여 제한적으로 수행될 수 있다.
본 발명에 따르면, 효율적인 움직인 보정이 가능한 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 따른 영상 부호화 방법/장치에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 디코더 측면에서 움직임을 보정하는 기술의 개념을 도시한 도면이다.
도 4는 디코더 측면의 움직임 보정 기술의 흐름도를 도시한 도면이다.
도 5는 하나의 부호화 블록과 해당 부호화 블록의 서브-블록의 개념을 도시한 도면이다.
도 6은 서브-블록 단위 디코더 측면의 움직임 보정 기술의 흐름도를 도시한 도면이다.
도 7은 블록 매칭을 수행하는 대상 블록과 해당 블록 내의 대상 화소들을 도시한 도면이다.
도 8은 서브-샘플링된 블록을 이용하여 디코더 측면의 움직임 보정을 수행하는 개념을 도시한 도면이다.
도 9는 디코더 측면의 움직임 보정을 수행하는 과정에서 특정 조건을 만족하는 경우 조기 종료를 수행하는 흐름도를 도시한 도면이다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 움직임 보정이 서브 블록의 단위로 수행되는지 여부를 결정하고, 현재 블록의 움직임 보정을 위한 탐색 영역을 결정하며, 상기 탐색 영역에 대한 복수의 SAD 후보를 산출하고, 상기 복수의 SAD 후보에 기초하여, 상기 현재 블록의 델타 움직임 정보를 유도하며, 상기 현재 블록의 기-생성된 움직임 정보와 상기 델타 움직임 정보를 이용하여, 상기 현재 블록의 움직임 정보를 보정할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 움직임 보정이 서브 블록의 단위로 수행되는지 여부는, 상기 현재 블록의 크기에 기초하여 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 탐색 영역은, 참조 블록 또는 상기 참조 블록의 주변 영역 중 적어도 하나를 포함하는 영역으로 결정되고, 상기 주변 영역은, 상기 참조 블록의 경계에 이웃한 N개의 샘플 라인일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 SAD 후보는, L0 블록과 L1 블록 간의 SAD 값으로 결정되고, 상기 L0 블록은, 상기 현재 블록의 L0 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정되고, 상기 L1 블록은, 상기 현재 블록의 L1 참조 블록의 위치 및 상기 소정의 오프셋에 기초하여 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 SAD 후보는, 상기 L0 블록과 상기 L1 블록의 일부 샘플을 기초로 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 오프셋은, 넌-방향성 오프셋 또는 방향성 오프셋 중 적어도 하나를 포함하고, 상기 방향성 오프셋은, 좌측, 우측, 상단, 하단, 좌상단, 우상단, 좌하단 또는 우하단 중 적어도 하나의 방향에 대한 오프셋을 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 움직임 보정은, 기준 SAD 후보와 소정의 문턱값 간의 비교 결과에 기초하여 적응적으로 수행되고, 상기 기준 SAD 후보는, 넌-방향성 오프셋에 대응하는 SAD 후보를 의미할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 움직임 보정은, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 인터 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 중 적어도 하나를 고려하여 제한적으로 수행될 수 있다.
본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부에 다른 구성 또는 다른 단계가 삽입될 수 있다.
또한, 본 발명의 제1 실시예의 일부 구성 또는 일부 단계는 본 발명의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는 일부 단계를 대체할 수 있다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
먼저, 본 출원에서 사용되는 용어를 간략히 설명하면 다음과 같다.
이하에서 후술할 복호화 장치(Video Decoding Apparatus)는 민간 보안 카메라, 민간 보안 시스템, 군용 보안 카메라, 군용 보안 시스템, 개인용 컴퓨터(PC, Personal Computer), 노트북 컴퓨터, 휴대형 멀티미디어 플레이어(PMP, Portable MultimediaPlayer), 무선 통신 단말기(Wireless Communication Terminal), 스마트 폰(Smart Phone), TV 응용 서버와 서비스 서버 등 서버 단말기에 포함된 장치일 수 있으며, 각종 기기 등과 같은 사용자 단말기, 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하거나 복호화를 위해 화면 간 또는 화면 내 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다.
또한, 부호화기에 의해 비트스트림(bitstream)으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB, Universal Serial Bus)등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 복호화되어 영상으로 복원되고 재생될 수 있다. 또는 부호화기에 의해 생성된 비트스트림은 메모리에 저장될 수 있다. 상기 메모리는 휘발성 메모리와 비휘발성 메모리를 모두 포함할 수 있다. 본 명세서에서 메모리는 비트스트림을 저장한 기록 매체로 표현될 수 있다.
통상적으로 동영상은 일련의 픽쳐(Picture)들로 구성될 수 있으며, 각 픽쳐들은 블록(Block)과 같은 코딩 유닛(coding unit)으로 분할될 수 있다. 또한, 이하에 기재된 픽쳐라는 용어는 영상(Image), 프레임(Frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다. 그리고 코딩 유닛이라는 용어는 단위 블록, 블록 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 종래 영상 부호화 장치(100)는 픽쳐 분할부(110), 예측부(120, 125), 변환부(130), 양자화부(135), 재정렬부(160), 엔트로피 부호화부(165), 역양자화부(140), 역변환부(145), 필터부(150) 및 메모리(155)를 포함할 수 있다.
픽쳐 분할부(110)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 단위(Prediction Unit: PU)일 수도 있고, 변환 단위(Transform Unit: TU)일 수도 있으며, 부호화 단위(Coding Unit: CU)일 수도 있다. 이하, 본 발명의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다. 부호화 단위를 기초로 인트라 예측을 수행하는 예측 단위를 생성시 최소 부호화 단위가 아닌 경우, 복수의 예측 단위 NxN 으로 분할하지 않고 인트라 예측을 수행할 수 있다.
예측부(120, 125)는 인터 예측 또는 화면 간 예측을 수행하는 인터 예측부(120)와 인트라 예측 또는 화면 내 예측을 수행하는 인트라 예측부(125)를 포함할 수 있다. 예측 단위에 대해 인터 예측을 사용할 것인지 또는 인트라 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 인트라 예측 모드, 모션 벡터, 참조 픽쳐 등)를 결정할 수 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(130)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 모션 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(165)에서 부호화되어 복호화기에 전달될 수 있다. 단, 본 발명에 따른 디코더 측면의 움직임 정보 유도 기법이 적용되는 경우에는, 상기 예측 모드 정보, 모션 벡터 정보 등을 부호화기에서는 생성하지 않으므로, 해당 정보가 복호화기에도 전달되지 않게 된다. 반면, 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 상기 움직임 정보 유도에 사용된 기법에 대한 정보를 상기 부호화기에서 시그널링(signaling)하여 전송하는 것이 가능하다.
인터 예측부(120)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 단위를 예측할 수도 있고, 경우에 따라서는 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로 예측 단위를 예측할 수도 있다. 인터 예측부(120)는 참조 픽쳐 보간부, 모션 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(155)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
모션 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 모션 예측을 수행할 수 있다. 모션 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 모션 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 모션 벡터값을 가질 수 있다. 모션 예측부에서는 모션 예측 방법을 다르게 하여 현재 예측 단위를 예측할 수 있다. 모션 예측 방법으로 스킵(Skip) 방법, 머지(Merge) 방법, AMVP(Advanced Motion Vector Prediction) 방법, 인트라 블록 카피(Intra Block Copy) 방법 등 다양한 방법이 사용될 수 있다. 또한, 본 발명에 따른, 디코더 측면의 움직임 정보 유도 기법을 적용시에는, 모션 예측부에서 수행되는 방법으로는 템플릿 매칭 (template matching) 방법 및 움직임 궤도(motion trajectory)를 활용한 양방향 매칭 (bilateral matching) 방법이 적용될 수 있다. 관련하여, 상기 템플릿 매칭 (template matching) 방법 및 양방향 매칭 (bilateral matching) 방법에 대해서는 도 3에서 상세히 후술하고자 한다.
인트라 예측부(125)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 단위를 생성할 수 있다. 현재 예측 단위의 주변 블록이 인터 예측을 수행한 블록이어서, 참조 픽셀이 인터 예측을 수행한 픽셀일 경우, 인터 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 인트라 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
또한, 예측부(120, 125)에서 생성된 예측 단위를 기초로 예측을 수행한 예측 단위와 예측 단위의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력될 수 있다.
변환부(130)에서는 원본 블록과 예측부(120, 125)를 통해 생성된 예측 단위의 잔차값(residual)정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지, DST를 적용할지 또는 KLT를 적용할지는 잔차 블록을 생성하기 위해 사용된 예측 단위의 인트라 예측 모드 정보를 기초로 결정할 수 있다.
양자화부(135)는 변환부(130)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(135)에서 산출된 값은 역양자화부(140)와 재정렬부(160)에 제공될 수 있다.
재정렬부(160)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.
재정렬부(160)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(160)에서는 지그-재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔 대신 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다. 관련하여, 엔트로피 부호화부(165)는 재정렬부(160) 및 예측부(120, 125)로부터 부호화 단위의 잔차값 계수 정보를 부호화 할 수 있다. 또한, 본 발명에 따라 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보를 시그널링(signaling)하여 전송하는 것이 가능하다.
역양자화부(140) 및 역변환부(145)에서는 양자화부(135)에서 양자화된 값들을 역양자화하고 변환부(130)에서 변환된 값들을 역변환한다. 역양자화부(140) 및 역변환부(145)에서 생성된 잔차값(Residual)은 예측부(120, 125)에 포함된 움직임 추정부, 움직임 보상부 및 인트라 예측부를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(150)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다. ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다.
메모리(155)는 필터부(150)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 인터 예측을 수행 시 예측부(120, 125)에 제공될 수 있다.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화기(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230, 235), 필터부(240), 메모리(245)가 포함될 수 있다.
영상 부호화기에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화기와 반대의 절차로 복호화될 수 있다.
엔트로피 복호화부(210)는 영상 부호화기의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다.
엔트로피 복호화부(210)에서는 부호화기에서 수행된 인트라 예측 및 인터 예측에 관련된 정보를 복호화할 수 있다.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다.
역양자화부(220)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화기에서 수행한 양자화 결과에 대해 변환부에서 수행한 변환 즉, DCT, DST, 및 KLT에 대해 역변환 즉, 역 DCT, 역 DST 및 역 KLT를 수행할 수 있다. 역변환은 영상 부호화기에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 복호화기의 역변환부(225)에서는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 변환 기법(예를 들어, DCT, DST, KLT)이 선택적으로 수행될 수 있다.
예측부(230, 235)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(245)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 인트라 예측 또는 화면 내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 인트라 예측을 수행하지만, 인트라 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 인트라 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 NxN 분할을 사용하는 인트라 예측을 사용할 수도 있다.
예측부(230, 235)는 예측 단위 판별부, 인터 예측부 및 인트라 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 모션 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 반면, 만약 부호화기(100)에서 상기 인터 예측을 위한 모션 예측 관련 정보를 전송하지 않고, 대신 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보를 전송하는 경우에는, 상기 예측 단위 판별부는 부호화기(100)로부터 전송된 정보를 기초로 하여, 인터 예측부(23)의 예측 수행을 판별하게 된다.
인터 예측부(230)는 영상 부호화기에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 인터 예측을 수행할 수 있다. 인터 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 모션 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode), 인트라 블록 카피 모드 중 어떠한 방법인지 여부를 판단할 수 있다. 또는, 상기 영상 부호화기에서 제공하는, 디코더 측면에서 움직임 정보를 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보로부터, 인터 예측부(230) 자체적으로 움직임 정보를 유도하여 인터 예측을 수행할 수 있다.
인트라 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 인트라 예측을 수행한 예측 단위인 경우, 영상 부호화기에서 제공된 예측 단위의 인트라 예측 모드 정보를 기초로 인트라 예측을 수행할 수 있다. 인트라 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화기로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다. ALF는 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
도 3은 디코더 측면에서 움직임을 보정하는 기술의 개념을 도시한 도면이다. 특히, 도 3은 디코더 측면에서 움직임을 보정하는 기술의 개념을 도시한 도면으로서, 디코더 측면의 움직임 보정 기술은 현재 블록이 양방향 예측 (bi-prediction)으로 예측된 블록인 경우, 소정의 예측 방법으로 생성한 예측 블록을 기반으로 디코더에서 추가적인 움직임 예측 과정을 수행하여 움직임을 보정하는 기술이다. 본 발명에서는 상기 디코더 측면의 움직임 보정 기술의 동작 및 절차에 대하여 후술하기로 한다. 본 명세서에서, 상기 움직임은 움직임 정보를 의미하며, 움직임 정보는 움직임 벡터, 참조 픽쳐 인덱스 또는 예측 방향 중 적어도 하나를 포함할 수 있다.
현재 부호화 및 복호화 대상인 현재 픽쳐(300)내의 현재 블록(310)이 양방향 예측 (bi-prediction)을 이용하여 예측을 수행하는 경우, 본 발명에서 제안하는 디코더 측면의 움직임 보정 기술을 적용할 수 있다.
도 3에서 도시한 실시예와 같이, 현재 블록(310)은 양방향 예측 블록으로, L0 방향의 움직임(340)과 L1 방향의 움직임(341)을 이용하여 L0 방향의 참조 블록 (321)과 L1 방향의 참조 블록 (322)를 예측 블록으로 사용한다.
이때, 양방향 예측된 예측 블록은 320 블록으로서, L0 방향의 참조 블록 (321)과 L1 방향의 참조 블록 (322)의 가중 합으로 생성되는 현재 블록(310)과 동일한 크기의 블록을 의미한다.
이때, 상기 가중 합을 위한 가중치는 n:m이며, n과 m은 0이 아닌 정수일 수 있다. 예를 들어, n의 절대값은 1보다 크거나 같고, 10보다 작거나 같은 자연수이며, n은 양수 또는 음수일 수 있다. m은 (8-n)으로 유도될 수 있다. 이때, 가중치의 비율이 1:1인 경우, 상기 320 블록은 서로 다른 두 방향의 참조 블록의 평균값을 가지는 블록일 수 있다.
기존의 양방향 예측의 경우, 상기 양방향 예측된 예측 블록 (320)을 현재 블록의 최종 예측 블록으로 사용한다.
본 발명에서 제안하는 디코더 측면의 움직임 보정 기술은 상기 양방향 예측된 예측 블록 (320)을 기반으로 디코더에서 일정한 탐색 범위 내에서 추가적인 움직임 예측을 수행하여 최적의 율-왜곡값을 가지도록 움직임을 보정하는 기술이다. 이하, L0 방향의 참조 블록과 L1 방향의 참조 블록을 각각 L0 예측 블록과 L1 예측 블록이라 부르기로 한다.L0 예측 블록 (321) 및 L1 예측 블록 (322)을 각각 포함한 소정의 탐색 범위 (360) 내의 화소들을 순회하며, 예측 블록(320)과 율-왜곡 값이 최소가 되는 움직임을 각 방향에 대하여 탐색한다.
이때, L0 방향의 탐색 범위에서 예측 블록 (320)과 율-왜곡 값이 최소가 되는 움직임을 가지는 블록의 탐색을 수행하여 L0 방향의 보정된 움직임 정보 (350)와 새로운 L0 방향의 예측 블록 (331)을 결정한다.
이와 동일하게, L1 방향의 탐색 범위에서 예측 블록 (320)과 율-왜곡 값이 최소가 되는 움직임을 가지는 블록의 탐색을 수행하여 L1 방향의 보정된 움직임 정보 (351)와 새로운 L1 방향의 예측 블록 (332)을 결정한다.
상기 L0 방향과 L1 방향의 새롭게 결정된 예측 블록들 (331, 332)의 가중 합으로 디코더 측면의 움직임 보정을 수행한 최종 양방향 예측 블록 (330)을 획득할 수 있다.
도 4는 디코더 측면의 움직임 보정 기술의 흐름도를 도시한 도면이다. 특히, 도 4는 디코더 측면의 움직임 보정 기술의 흐름도를 도시한 도면으로서, 디코더 측면의 움직임 보정 기술은 현재 블록이 양방향 예측 (bi-prediction)으로 예측된 블록인 경우, 소정의 예측 방법으로 생성한 예측 블록을 기반으로 디코더에서 추가적인 움직임 예측 과정을 수행하여 움직임을 보정하는 기술이다.
도 4에서 도시한 바와 같이, 디코더 측면의 움직임 보정 기술은 움직임 보상과 관련하여 조건부 동작을 수행하는 것을 기본으로 한다. 디코더 측면의 움직임 보정 기술을 사용하는 움직임 보상의 흐름은, 소정의 인터 예측 모드에 따른 움직임 유도 및/또는 움직임 보상 단계(400)를 포함하고, 디코더 측면의 움직임 보정 수행 판단부(410); 디코더 측면의 움직임 보정 수행부(420); 및 보정된 움직임 기반의 움직임 보상 단계(430)을 포함한다.
상기 디코더 측면의 움직임 보정 수행 판단부(410)는 현재 블록이 움직임 보정을 수행 여부를 판단하는 단계로 디코더 측면의 움직임 보정 수행에 대한 부호화 유닛 단위 시그널링 정보 없이 현재 부호화 유닛의 부호화 모드 정보, 화면 간 예측 방향성, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 등을 이용하여 판단을 수행한다. 단, 디코더 측면의 움직임 보정 수행에 대한 시퀀스 레벨의 시그널링은 수행될 수 있다.
이때, 화면 간 예측 방향성을 이용하는 일 실시예로 양방향 예측을 수행하지 않는 경우에는 디코더 측면의 움직임 보정 수행하지 않는다. 단, 양방향 예측을 수행하는 경우라도 시간적으로 동일한 방향을 사용하는 양방향 예측인 경우에는 디코더 측면의 움직임 보정을 수행하지 않는다.
상기 현재 부호화 유닛의 부호화 모드 정보들로는 현재 예측 단위의 움직임 병합 여부, 어파인 변환 예측 여부일 수 있다. 일 실시예로 현재 예측 단위가 움직임 병합을 수행하는 경우에는 디코더 측면의 움직임 보정을 수행 할 수 있다.
상기 현재 부호화 유닛의 부호화 모드 정보들로는 현재 예측 단위의 움직임 병합 여부, 어파인 변환 예측 여부일 수 있다.
일 실시예로 현재 예측 단위가 움직임 병합을 수행하는 경우에는 디코더 측면의 움직임 보정을 수행 할 수 있다. 단, 움직임 병합 후보 중 서브-블록 단위 움직임 예측을 수행하는 움직임 병합 후보인 경우에는 디코더 측면의 움직임 보정을 수행하지 않는다.
일 실시예로 현재 예측 단위가 어파인 변환 예측을 수행하는 경우에는 디코더 측면의 움직임 보정을 수행하지 않는다.
현재 블록의 너비 또는 높이 중 어느 하나가 8, 16 또는 32보다 크거나 같은 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다. 또는, 현재 블록의 너비 및 높이가 8, 16 또는 32보다 크거나 같은 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다. 또는, 현재 블록의 넓이 또는 샘플 개수가 64, 128 또는 256보다 크거나 같은 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수도 있다.
현재 픽쳐와 L0 참조 픽쳐 간의 POC(picture order count) 차이와 현재 픽쳐와 L1 참조 픽쳐 간의 POC 차이가 서로 동일한 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다.
전술한 양방향 예측을 위한 가중치의 비율이 1:1인 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다.
움직임의 단위가 정수펠인 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수도 있고, 쿼터펠 또는 하프펠 이하인 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수도 있다.
현재 블록의 예측 모드가 혼합 예측 모드가 아닌 경우에 한하여, 디코더 측면의 움직임 보정이 수행될 수 있다. 상기 혼합 예측 모드는, 인트라 예측과 인터 예측의 조합에 기반한 예측 모드로서, 인트라 예측된 화소와 인터 예측된 화소를 각각 산출하고, 양 화소의 가중 예측을 수행하는 모드를 의미할 수 있다.
현재 블록이 소정의 오프셋 정보에 기반한 움직임 보정을 수행하지 않는 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다. 여기서, 오프셋 정보는, 오프셋 벡터의 길이, 방향 또는 해상도(또는 정확도) 중 적어도 하나를 포함할 수 있다. 즉, 상기 오프셋 정보에 기초하여 오프셋 벡터를 특정하고, 오프셋 벡터를 기-복원된 움직임 벡터에 적용하여 움직임 보정을 수행할 수 있다. 상기 오프셋 정보는, 머지 모드와 같이 별도의 움직임 벡터 차분값(mvd)이 시그날링되지 않는 인터 예측 모드에서 시그날링될 수 있다.
다만, 상기 오프셋 벡터의 길이가 소정의 문턱길이보다 큰 경우, 디코더 측면의 움직임 보정은 오프셋 정보에 기반한 움직임 보정과 함께 적용될 수도 있다. 여기서, 문턱길이는, 1, 2, 3, 또는 그 이상의 정수일 수 있다. 이때, 움직임 보정은, 디코더 측면의 움직임 보정, 오프셋 정보에 기반한 움직임 보정의 순서로 수행되거나, 그 역순으로 수행될 수도 있다. 또는, 오프셋 벡터의 길이가 0인 경우, 디코더 측면의 움직임 보정은 적용될 수도 있다.
전술한 수행 조건 중 어느 하나에 기초하여 디코더 측면의 움직임 보정이 수행될 수도 있고, 전술한 수행 조건 중 적어도 2개의 조합에 기초하여 디코더 측면의 움직임 보정이 수행될 수도 있다.
상기 디코더 측면의 움직임 보정 수행부(420)는 L0 방향 움직임 보정부(421) 및 L1 방향 움직임 보정부(422)를 포함한다.
디코더 측면의 움직임 보정 수행부(420)는 움직임 보상(400)을 수행하여 획득한 예측 블록을 이용하여 L0 및 L1 방향에서 한정된 탐색 영역만을 디코더 측면에서 추가로 움직임 예측을 수행하여 상기 예측 블록과 최적의 율-왜곡 값을 가지는 보정된 움직임을 획득한다.
이때, L0 및 L1 방향에서 한정된 탐색 영역은 디코더 측면의 움직임 보정을 수행하기 이전의 참조 블록과 공간적으로 인접한 화소 영역을 의미한다.
상기 공간적으로 인접한 화소 영역은 해당 참조 블록 위치를 기준으로 8-neighboring 화소들로 한정할 수 있다. 하지만, 이에 국한되지 않고, 범위가 확장되는 것 또한 본 발명에 포함된다.
상기 탐색 영역에서 추가적인 움직임 예측을 수행하여 최적의 율-왜곡 값을 획득함에 있어, 기존의 움직임 예측에서 움직임 벡터의 비트율과 블록 매칭을 통한 왜곡 값을 획득하는것과 달리, 본 발명에서 제안하는 디코더 측면의 움직임 보정 방법에서는 움직임 벡터의 비트율은 고려하지 않고 블록 매칭을 통한 왜곡 값만을 사용하여 움직임 탐색 과정에서 최소의 왜곡 값을 가지는 블록을 최종 참조 블록으로 선정하고, 이때의 움직임 벡터를 최종 움직임 벡터로 사용한다.
구체적으로, 디코더는, 움직임 보정을 위한 탐색 영역을 결정할 수 있다(S1). 상기 탐색 영역은, 참조 블록 또는 상기 참조 블록의 주변 영역 중 적어도 하나를 포함하는 영역으로 결정될 수 있다. 이때, 상기 참조 블록의 좌상단 샘플의 위치가 탐색의 기준 위치가 될 수 있다. 탐색 영역은, L0 방향과 L1 방향에 대해서 각각 결정될 수 있다. 주변 영역은, 참조 블록의 경계(boundary)에 이웃한 N개의 샘플 라인을 의미할 수 있다. 여기서, N은 1, 2, 3 또는 그 이상의 정수일 수 있다.
주변 영역은, 참조 블록의 좌측, 상단, 우측, 하단, 좌상단, 좌하단, 우상단 또는 우하단 중 적어도 하나의 방향에 위치할 수 있다. 이때, 현재 블록이 WxH인 경우, 탐색 영역은 (W+2N)x(H+2N)으로 표현될 수 있다. 다만, 움직임 보정 과정의 복잡도를 줄이기 위해, 주변 영역은 전술한 방향 중 일부 방향에만 위치할 수도 있다. 예를 들어, 주변 영역은, 참조 블록의 좌측, 상단 또는 좌상단 중 적어도 하나에 인접한 영역으로 제한될 수도 있고, 참조 블록의 우측, 하단 또는 우하단 중 적어도 하나에 인접한 영역으로 제한될 수도 있다.
샘플 라인의 개수(N)는, 디코더에 기-정의된 고정된 값일 수도 있고, 블록 속성을 고려하여 가변적으로 결정될 수도 있다. 여기서, 블록 속성은, 블록의 크기/형태, 블록 위치, 인터 예측 모드, 성분 타입 등을 의미할 수 있다. 상기 블록 위치는, 참조 블록이 픽쳐 또는 소정의 조각 영역의 경계에 접하는지 여부를 의미할 수 있다. 상기 조각 영역은, 슬라이스, 타일, 서브-타일(브릭, brick), 코딩 트리 블록 열/행(CTB row/column), 또는 코딩 트리 블록을 의미할 수 있다. 예를 들어, 블록 속성에 따라, 0개, 1개 또는 2개의 샘플 라인 중 어느 하나가 선택적으로 이용될 수 있다.
디코더는, 탐색 영역 내의 탐색 위치 별 SAD(sum of absolute difference)를 결정할 수 있다(S2).
이하, 탐색 위치 별 SAD를 SAD 후보라 부르기로 한다. SAD 후보의 개수는 M개이며, M은 2보다 크거나 같은 정수일 수 있다. 상기 M은, 전술한 샘플 라인의 개수(N)에 기초하여 결정될 수 있다. 예를 들어, N이 1이면, M은 9보다 작거나 같도록 제한될 수 있다. 또는, N이 2이면, M은 25보다 작거나 같도록 제한될 수 있다. 또는, 상기 M은, 전술한 샘플 라인의 개수(N)와 관계없이, 9보다 작거나 같을 수도 있다.
SAD 후보는 L0 블록과 L1 블록 간의 SAD 값으로 결정될 수 있다. 이때, SAD 값은, L0/L1 블록에 속한 모든 샘플을 기초로 산출될 수도 있고, L0/L1 블록 내의 일부 샘플을 기초로 산출될 수도 있다. 여기서, 일부 샘플은 L0/L1 블록의 일부 영역에 속하고, 일부 영역의 너비 또는 높이 중 적어도 하나는 L0/L1 블록의 너비 또는 높이의 절반일 수 있다. 즉, L0 및 L1 블록은 WxH의 크기를 가지며, 상기 일부 샘플은 WxH/2, W/2xH 또는 W/2xH/2의 크기를 가진 일부 영역에 속할 수 있다. 이때, 일부 영역이 WxH/2인 경우, 일부 샘플은 L0/L1 블록 내에서 상단 영역(혹은 하단 영역)에 속할 수 있다. 일부 영역이 W/2xH인 경우, 일부 샘플은 L0/L1 블록 내에서 좌측 영역(혹은 우측 영역)에 속할 수 있다. 일부 영역이 W/2xH/2인 경우, 일부 샘플은 L0/L1 블록 내에서 좌상단 영역에 속할 수 있으나, 이에 한정되지 아니한다. 또는, 일부 샘플은, L0/L1 블록 또는 일부 영역의 짝수번째 또는 홀수번째 샘플 라인(수직 또는 수평 방향)의 그룹으로 정의될 수도 있다. 또한, 일부 샘플은 L0/L1 블록 또는 일부 영역의 수직 및/또는 수평 방향으로 서브 샘플링된 블록일 수 있다. 즉, L0 및 L1 블록은 WxH의 크기를 가지며, 상기 일부 샘플에 대응하는 블록은, L0/L1 블록 또는 일부 영역에 포함되는 샘플 중 홀수 행의 집합, 짝수 행의 집합, 홀수 열의 집합, 혹은 짝수 열의 집합 중 적어도 어느 하나일 수 있다. 전술한 일부 샘플의 위치에 대해서는 도 7 및 도 8을 참조하여 더 살펴보기로 한다.
상기 L0 블록의 위치는, 현재 블록의 L0 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정될 수 있다. 오프셋은, L0 참조 블록의 위치와 탐색 위치 간의 변이 벡터를 의미할 수 있다. 즉, 탐색 위치는, L0 참조 블록의 위치 (x0,y0)에서 x축 방향으로 p만큼, y축 방향으로 q만큼 쉬프트된 위치일 수 있다. 여기서, p와 q는 -1, 0, 또는 1 중 적어도 하나일 수 있다. 이때, p와 q의 조합으로 생성되는 변이 벡터가 오프셋을 의미할 수 있다. L0 블록의 위치는, L0 참조 블록의 위치 (x0,y0)에서 (p,q)만큼 쉬프트된 위치로 결정될 수 있다. 상기 p와 q의 크기(또는 절대값)은 0 또는 1이나, 이에 한정되지 아니한다. 예를 들어, 상기 p와 q는 2, 3, 또는 그 이상의 크기를 가진 정수일 수도 있다.
상기 오프셋은, 넌-방향성 오프셋 (0,0) 또는 방향성 오프셋 중 적어도 하나를 포함할 수 있다. 상기 방향성 오프셋은, 좌측, 우측, 상단, 하단, 좌상단, 우상단, 좌하단 또는 우하단 중 적어도 하나의 방향에 대한 오프셋을 포함할 수 있다. 예를 들어, 상기 방향성 오프셋은, (-1,0), (0,1), (0,-1), (0,1), (-1,-1), (-1,1), (1,-1) 또는 (1,1) 중 적어도 하나를 포함할 수 있다.
마찬가지로, 상기 L1 블록의 위치는, 현재 블록의 L1 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정될 수 있다. 여기서, L1 블록의 오프셋은 L0 블록의 오프셋에 기초하여 결정될 수 있다. 예를 들어, L0 블록의 오프셋이 (p,q)인 경우, L1 블록의 오프셋은 (-p,-q)으로 결정될 수 있다.
전술한 오프셋의 크기 및/또는 방향에 관한 정보는, 디코더에 기-정의된 것일 수도 있고, 인코더에서 부호화되어 디코더로 시그날링될 수도 있다. 상기 정보는, 전술한 블록 속성을 고려하여 가변적으로 결정될 수도 있다.
일예로, 오프셋은 다음 표 1과 같이 정의될 수 있다.
i 0 1 2 3 4 5 6 7 8
dX[ i ] -1 0 1 -1 0 1 -1 0 1
dY[ i ] -1 -1 -1 0 0 0 1 1 1
표 1은, 인덱스 i 별로, 탐색 위치 결정을 위한 오프셋을 정의한다. 다만, 표 1은 인덱스 i에 대응하는 오프셋의 위치를 한정하는 것은 아니며, 인덱스 별 오프셋의 위치는 표 1과 상이할 수 있다. 표 1에 따른 오프셋은, 전술한 넌-방향성 오프셋 (0,0) 및 8개의 방향성 오프셋을 포함할 수 있다.
이 경우, 0번째 SAD 후보는, 참조 블록의 위치 (x,y)와 오프셋 (-1,-1)에 기초하여 결정될 수 있다. 구체적으로, L0 참조 블록의 위치 (x0,y0)에서 오프셋 (-1,-1)만큼 쉬프트된 위치를 탐색 위치로 설정하고, 해당 탐색 위치를 좌상단 샘플로 포함하는 WxH 블록을 L0 블록으로 결정할 수 있다.
마찬가지로, L1 참조 블록의 위치 (x1,y1)에서 오프셋 (1,1)만큼 쉬프트된 위치를 탐색 위치로 설정하고, 해당 탐색 위치를 좌상단 샘플로 포함하는 WxH 블록을 L1 블록으로 결정할 수 있다. 상기 L0 블록과 L1 블록 간의 SAD를 산출하여 0번째 SAD 후보를 결정할 수 있다.
전술한 과정을 통해, 1번째 내지 8번째의 SAD 후보를 결정하고, 9개의 SAD 후보를 포함한 SAD 어레이(array)를 결정할 수 있다.
표 1은 움직임 보정을 위한 오프셋의 개수를 한정하는 것은 아니다. 상기 9개의 오프셋 중 k개의 오프셋만이 이용될 수도 있다. 여기서, k는 2 내지 8 중 임의의 값일 수 있다. 예를 들어, 표 1에서, [0,4,8], [1,4,7], [2,4,6], [3,4,5] 등과 같은 3개의 오프셋이 이용될 수도 있고, [0,1,3,4], [4,5,7,8] 등과 같은 4개의 오프셋이 이용될 수도 있으며, [0,1,3,4,6,7], [0,1,2,3,4,5] 등과 같은 6개의 오프셋이 이용될 수도 있다.
일예로, 오프셋은 다음 표 2와 같이 정의될 수 있다. 즉, 오프셋은 넌-방향성 오프셋 (0,0), 수평 방향의 오프셋 ((-1,0), (1,0)) 및 수직 방향의 오프셋 ((0,-1), (0,1))만으로 구성될 수도 있다.
i 0 1 2 3 4
dX[ i ] 0 -1 0 1 0
dY[ i ] -1 0 0 0 1
일예로, 오프셋은 다음 표 3과 같이 정의될 수 있다.
i 0 1 2 3 4
dX[ i ] -2 -1 0 1 2
dY[ i ] -2 -2 -2 -2 -2
i 5 6 7 8 9
dX[ i ] -2 -1 0 1 2
dY[ i ] -1 -1 -1 -1 -1
i 10 11 12 13 14
dX[ i ] -2 -1 0 1 2
dY[ i ] 0 0 0 0 0
i 15 16 17 18 19
dX[ i ] -2 -1 0 1 2
dY[ i ] 1 1 1 1 1
i 20 21 22 23 24
dX[ i ] -2 -1 0 1 2
dY[ i ] 2 2 2 2 2
표 3은, 인덱스 i 별로, 탐색 위치 결정을 위한 오프셋을 정의한다. 다만, 표 3은 인덱스 i에 대응하는 오프셋의 위치를 한정하는 것은 아니며, 인덱스 별 오프셋의 위치는 표 3과 상이할 수 있다. 표 3에 따른 오프셋은, 전술한 넌-방향성 오프셋 (0,0) 및 24개의 방향성 오프셋을 포함할 수 있다.
이 경우, 0번째 SAD 후보는, 참조 블록의 위치 (x,y)와 오프셋 (-2,-2)에 기초하여 결정될 수 있다. 구체적으로, L0 참조 블록의 위치 (x0,y0)에서 오프셋 (-2,-2)만큼 쉬프트된 위치를 탐색 위치로 설정하고, 해당 탐색 위치를 좌상단 샘플로 포함하는 WxH 블록을 L0 블록으로 결정할 수 있다.
마찬가지로, L1 참조 블록의 위치 (x1,y1)에서 오프셋 (2,2)만큼 쉬프트된 위치를 탐색 위치로 설정하고, 해당 탐색 위치를 좌상단 샘플로 포함하는 WxH 블록을 L1 블록으로 결정할 수 있다. 상기 L0 블록과 L1 블록 간의 SAD를 산출하여 0번째 SAD 후보를 결정할 수 있다.
전술한 과정을 통해, 1번째 내지 24번째의 SAD 후보를 결정하고, 25개의 SAD 후보를 포함한 SAD 어레이(array)를 결정할 수 있다.
이와 같이, 오프셋의 크기 및/또는 개수에 따라서, 전술한 탐색 영역의 크기 및/또는 형태는 가변적으로 결정되고, SAD 후보의 개수가 결정될 수 있다.
디코더는, 상기 결정된 SAD 후보에 기초하여, 현재 블록의 움직임 보정을 수행할 수 있다(S3).
먼저, 복수의 SAD 후보 중에서 최소값을 가진 SAD 후보를 식별할 수 있다. 상기 최소값의 SAD 후보를 식별하는 방법을 살펴보면, 제1 SAD 후보와 제2 SAD 후보 간의 크기를 비교할 수 있다. 제1 SAD 후보와 제2 SAD 후보 중 작은 후보를 최소값을 가진 SAD 후보(mimSad)로 설정할 수 있다. 상기 minSad와 제3 SAD 후보 간의 비교를 수행하고, 동일한 방식으로 minSad를 갱신할 수 있다. 전술한 오프셋의 개수만큼 상기 비교 과정을 수행하여, 최종 minSad를 결정할 수 있다.
또는, 일예로, 복수의 SAD 후보를 2개, 3개 또는 그 이상의 개수로 그룹핑할 수 있다. 이하 설명의 편의를 위해 SAD 후보를 2개의 그룹으로 그룹핑하는 경우를 살펴 보도록 한다.
복수의 SAD 후보는 제1 그룹과 제2 그룹으로 그룹핑될 수 있다. 각 그룹은 적어도 2개의 SAD 후보를 포함할 수 있다. 다만, 상기 그룹에는 기준 SAD 후보는 포함되지 않도록 제한될 수 있다. 각 그룹에 대해 minimum operation을 적용하여, 각 그룹 별로 최소값을 가진 SAD 후보를 추출할 수 있다.
제1 그룹으로부터 추출된 SAD 후보와 제2 그룹으로부터 추출된 SAD 후보 중 최소값을 가진 SAD 후보(이하, 임시 SAD 후보라 함)를 다시 추출할 수 있다.
상기 임시 SAD 후보와 기준 SAD 후보 간의 비교 결과에 기초하여, 상기 최소값의 SAD 후보를 식별할 수 있다. 예를 들어, 임시 SAD 후보가 기준 SAD 후보보다 작은 경우, 임시 SAD 후보가 복수의 SAD 후보 중 최소값의 SAD 후보로 식별될 수 있다. 반면, 임시 SAD 후보가 기준 SAD 후보보다 크거나 같은 경우, 기준 SAD 후보가 복수의 SAD 후보 중 최소값의 SAD 후보로 식별될 수 있다.
상기 식별된 최소값의 SAD 후보에 대응하는 오프셋을 기반으로, 델타 움직임 정보가 유도될 수 있다. 기-복원된 움직임 정보는, 상기 유도된 델타 움직임 정보를 이용하여 보정될 수 있다.
현재 블록의 움직임 정보는, 전술한 디코더 측면에서의 움직임 보정 또는 차분 움직임 정보에 기반한 보정 중 적어도 하나를 통해 획득될 수 있다.
다만, 전술한 디코더 측면에서의 움직임 보정은, 기준 SAD 후보와 소정의 문턱값 간의 비교 결과에 기초하여 적응적으로 수행될 수 있다. 상기 기준 SAD 후보는, 오프셋 (0,0)에 대응하는 SAD 후보를 의미할 수 있다. 또는, 상기 기준 SAD 후보는, 참조 블록의 위치 또는 후술하는 제1 방법에 의해 변경된 기준 위치에 대응하는 SAD 후보를 의미할 수 있다. 상기 문턱값은, 현재 블록 또는 참조 블록의 너비(W) 또는 높이(H) 중 적어도 하나에 기초하여 결정될 수 있다. 또는, 현재 블록이 서브 블록 단위로 움직임 보정을 수행하는 경우, 서브 블록의 너비(W) 또는 높이(H) 중 적어도 하나에 기초하여 결정될 수 있다. 예를 들어, 상기 문턱값은, W*H, W*(H/2), (W/2)*H, 2*W*H, 4*W*H, 8*W*H, 16*W*H 등으로 결정될 수 있다.
상기 기준 SAD 후보가 문턱값보다 크거나 같은 경우, 후술하는 방법에 기초하여 델타 움직임 정보가 유도될 수 있다. 반면, 기준 SAD 후보가 문턱값보다 작은 경우, 움직임 보정이 수행되지 않을 수 있다.
또한, 상기 식별된 SAD 후보에 대응하는 탐색 위치가 탐색을 위한 기준 위치로 변경될 수 있다. 변경된 기준 위치에 기반하여, 전술한 SAD 후보 결정 및/또는 최소값의 SAD 후보 식별 과정을 재수행할 수 있으며, 중복된 설명은 생략하기로 한다. 재수행 결과에 기초하여, 상기 델타 움직임 정보가 갱신될 수도 있다.
또한, 상기 SAD 대신에 탐색 위치 별 SATD(sum of absolute transfrom difference)를 기반으로 움직임 보정이 수행될 수도 있다. 예를 들어, L0 블록과 L1 블록 간의 차분 블록을 생성하고, 상기 차분 블록 내 전부 또는 일부 샘플을 주파수 도메인으로 변환(transform)하여 SATD 후보를 결정할 수 있다. 여기서, 일부 샘플의 영역은 전술한 바와 같으며, 자세한 설명은 생략하기로 한다. 상기 변환은 n*m 서브 블록 단위로 수행되며, n과 m은 4, 8 또는 그 이상의 정수일 수 있다. 상기 변환은, 하다마드 변환, DCT, DST 등에 기초하여 수행될 수 있다. 상기 변환은, 제1 변환 또는 제2 변환 중 적어도 하나를 포함할 수 있다. 제2 변환은 제1 변환의 결과값에 추가적으로 적용되는 2차 변환을 의미할 수 있고, 이때 제1 변환의 결과값 중 DC 성분에 대해서만 적용될 수도 있다.
그런 다음, SATD 후보 중 최소값의 SATD 후보에 대응하는 오프셋을 기반으로, 상기 델타 움직임 정보가 유도되고, 이를 이용하여 기-복원된 움직임 정보가 보정될 수 있다. 상기 SAD 기반의 움직임 보정 방법은, SATD 기반의 움직임 보정 방법에도 동일/유사하게 적용될 수 있는바, 자세한 설명은 생략하기로 한다.
도 4에서 도시한 보정된 움직임 기반의 움직임 보상 단계(430)는 상기 디코더 측면의 움직임 보정 수행부(420)을 통해 획득한 보정된 L0 움직임과 L1 움직임을 바탕으로 양방향 움직임 보상을 수행하는 단계이다.
도 5는 하나의 부호화 블록과 해당 부호화 블록의 서브-블록의 개념을 도시한 도면이다. 특히, 도 3은 하나의 부호화 블록(500)과 해당 부호화 블록의 서브-블록(501)의 개념을 도시한 도면으로 도 5에서는 16x16 크기의 부호화 블록을 일 실시예로 도시하고, 해당 부호화 블록을 총 16개의 4x4 크기의 서브-블록으로 분할한 일 실시예를 도시한다.
도 5는 본 발명에서 제안하는 디코더 측면의 움직임 보정 기술의 일 실시예인 서브-블록 단위 디코더 측면의 움직임 보정 기술의 설명에 앞서, 하나의 부호화 블록(500)과 그에 따른 서브-블록들의 개념을 도시한 도면이다.
일반적으로 서브-블록은 4x4 크기의 고정된 블록 크기를 사용하여 하나의 부호화 블록을 분할하는 것을 포함한다.
단, 서브-블록의 크기는 4x4 크기의 고정된 크기외에도 추가적인 상위-레벨 신택스를 통한 시그널링으로 전송이 가능하다.
혹은, 현재 블록의 움직임 정보, 블록의 크기 등을 고려하여 계산될 수도 있다. 예를 들어, 현재 블록의 너비가 소정의 문턱크기보다 크거나 같은 경우, 상기 서브 블록은 상기 문턱크기와 동일한 너비를 가지고, 그렇지 않은 경우, 상기 서브 블록은 현재 블록과 동일한 너비를 가질 수 있다. 마찬가지로, 현재 블록의 높이가 소정의 문턱크기보다 크거나 같은 경우, 상기 서브 블록은 상기 문턱크기와 동일한 높이를 가지고, 그렇지 않은 경우, 상기 서브 블록은 현재 블록과 동일한 높이를 가질 수 있다. 여기서, 문턱크기는, 16, 32, 64 또는 그 이상의 정수일 수 있다.
도 6은 서브-블록 단위 디코더 측면의 움직임 보정 기술의 흐름도를 도시한 도면이다. 특히, 도 6은 서브-블록 단위 디코더 측면의 움직임 보정하는 기술의 흐름도를 도시한 도면으로서, 서브-블록 단위 디코더 측면의 움직임 보정 기술은 현재 블록이 양방향 예측 (bi-prediction)으로 예측된 블록인 경우, 기존의 예측 방법으로 생성한 예측 블록을 이용하여 디코더에서 서브-블록 단위 혹은 블록 단위의 추가적인 움직임 예측 과정을 수행하여 움직임을 보정하는 기술이다.
도 6에서 도시한 바와 같이, 디코더 측면의 움직임 보정 기술은 움직임 보상과 관련하여 조건부 동작을 수행하는 것을 기본으로 한다.
서브-블록 단위 디코더 측면의 움직임 보정 기술을 사용하는 움직임 보상 기술은 소정의 인터 예측 모드에 따른 움직임 유도 및/또는 움직임 보상 단계(600); 디코더 측면의 움직임 보정 수행 판단부(610); 및 서브-블록 레벨 수행 판단부(620);을 포함하고, 서브-블록 단위 디코더 측면의 움직임 보정을 수행하는 경우에는 현재 부호화 블록을 다수개의 서브-블록들로 분할하여 마지막 서브-블록까지 반복하는 서브-블록 단위 디코더 측면의 움직임 보정 수행부(660) 및 보정된 움직임 기반의 서브-블록 단위 움직임 보상부(670)를 포함하며, 서브-블록 단위 디코더 측면의 움직임 보정을 수행하지 않는 경우에는 부호화 블록 단위의 디코더 측면의 움직임 보정 수행부(630); 및 보정된 움직임 기반의 움직임 보상 단계(640)을 포함한다.
상기 디코더 측면의 움직임 보정 수행 판단부(610)는 현재 블록이 움직임 보정을 수행 여부를 판단하는 단계로 디코더 측면의 움직임 보정 수행에 대한 부호화 유닛 단위 시그널링 정보 없이 현재 부호화 유닛의 부호화 모드 정보, 화면 간 예측 방향성, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 인터 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 등을 이용하여 판단을 수행한다. 단, 디코더 측면의 움직임 보정 수행에 대한 시퀀스 레벨의 시그널링은 수행될 수 있다.
이때, 화면 간 예측 방향성을 이용하는 일 실시예로 양방향 예측을 수행하지 않는 경우에는 디코더 측면의 움직임 보정 수행하지 않는다. 단, 양방향 예측을 수행하는 경우라도 시간적으로 동일한 방향을 사용하는 양방향 예측인 경우에는 디코더 측면의 움직임 보정을 수행하지 않는다.
상기 현재 부호화 유닛의 부호화 모드 정보들로는 현재 예측 단위의 움직임 병합 여부, 어파인 변환 예측 여부일 수 있다. 일 실시예로 현재 예측 단위가 움직임 병합을 수행하는 경우에는 디코더 측면의 움직임 보정을 수행 할 수 있다.
상기 현재 부호화 유닛의 부호화 모드 정보들로는 현재 예측 단위의 움직임 병합 여부, 어파인 변환 예측 여부일 수 있다.
일 실시예로 현재 예측 단위가 움직임 병합을 수행하는 경우에는 디코더 측면의 움직임 보정을 수행 할 수 있다. 단, 움직임 병합 후보 중 서브-블록 단위 움직임 예측을 수행하는 움직임 병합 후보인 경우에는 디코더 측면의 움직임 보정을 수행하지 않는다.
혹은, 현재 예측 단위가 서브-블록 단위 움직임 병합을 수행하는 경우에는 추가적인 판단 없이 서브-블록 단위 디코더 측면의 움직임 보정을 수행할 수 있다.
일 실시예로 현재 예측 단위가 어파인 변환 예측을 수행하는 경우에는 디코더 측면의 움직임 보정을 수행하지 않는다.
현재 블록의 너비 또는 높이 중 어느 하나가 8, 16 또는 32보다 크거나 같은 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다. 또는, 현재 블록의 너비 및 높이가 8, 16 또는 32보다 크거나 같은 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다. 또는, 현재 블록의 넓이 또는 샘플 개수가 64, 128 또는 256보다 크거나 같은 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수도 있다.
현재 픽쳐와 L0 참조 픽쳐 간의 POC(picture order count) 차이와 현재 픽쳐와 L1 참조 픽쳐 간의 POC 차이가 서로 동일한 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다.
전술한 양방향 예측을 위한 가중치의 비율이 1:1인 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수 있다.
움직임의 단위가 정수펠인 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수도 있고, 쿼터펠 또는 하프펠 이하인 경우에 한하여 디코더 측면의 움직임 보정이 수행될 수도 있다.
도 6에 도시한 바와 같이, 이후 현재 부호화 블록이 부호화 블록 단위의 디코더 측면의 움직임 보정을 수행할 것인지 혹은 서브-블록 단위 움직임 보정을 수행할 것인지에 대한 판단을 수행하는 단계(620)을 포함할 수 있다.
상기 일 실시예와 같이, 추가적인 시그널링 없이 현재 부호화 블록의 정보를 이용하여 서브-블록 단위 디코더 측면의 움직임 보정을 수행할지; 혹은 부호화 블록 단위 디코더 측면의 움직임 보정을 수행할지를 판단할 수 있다.
이때, 상기 현재 부호화 블록의 정보는 움직임 병합 여부 및 서브-블록 단위 움직임 병합 여부를 지칭할 수 있다.
또한, 상기 현재 부호화 블록의 정보는 현재 블록과 공간적 및 시간적으로 인접한 움직임 정보들도 포함할 수 있다.
또는, 서브-블록 단위의 움직임 보정을 수행하는지 여부는, 현재 블록의 크기에 기초하여 결정될 수 있다. 예를 들어, 현재 블록의 크기가 소정의 문턱크기보다 큰 경우, 현재 블록은 서브-블록 단위의 움직임 보정을 수행하고, 그렇지 않은 경우, 현재 블록은 서브-블록 단위의 움직임 보정을 수행하지 않을 수 있다. 여기서, 현재 블록의 크기는, 현재 블록의 너비 또는 높이 중 적어도 하나를 의미할 수 있다. 상기 문턱크기는, 16, 32 또는 그 이상일 수 있다.
예를 들어, 현재 블록 16x32이고, 문턱크기가 16인 경우, 현재 블록의 높이가 16보다 크므로, 현재 블록은 서브-블록 단위의 움직임 보정을 수행할 수 있다. 한편, 현재 블록이 16x8이고, 문턱크기가 16인 경우, 현재 블록의 너비와 높이 모두 16보다 크지 않으므로, 현재 블록에 대해서 서브-블록 단위의 움직임 보정이 수행되지 않을 수 있다.
서브-블록 단위 디코더 측면의 움직임 보정을 수행하는 경우, 하나의 부호화 블록을 다수개의 서브-블록들로 분할한다. 이때, 다수개라 함은 미리 정의된 서브-블록의 크기와 현재 부호화 블록의 크기에 의해 정의될 수 있다.
이때, 상기 미리 정의된 서브-블록의 크기는 4x4일 수 있다. 혹은 8x8, 16x16일 수 도 있으며, 이는 미리 정의되거나 상위-레벨 신택스를 통해 전송될 수 있다. 서브-블록으로의 분할 방법에 대해서는 도 5를 참조하여 살펴보았는바, 여기서 자세한 설명은 생략하기로 한다.
상기 서브-블록 단위 디코더 측면의 움직임 보정 수행부(660)는 L0 방향 움직임 보정부(661) 및 L1 방향 움직임 보정부(662)를 포함한다.
서브-블록 단위 디코더 측면의 움직임 보정 수행부(660)는 움직임 보상(600)을 수행하여 획득한 예측 블록을 다수개의 서브-블록들로 분할한 서브-예측 블록들 이용하여 L0 및 L1 방향에서 한정된 탐색 영역만을 디코더 측면에서 추가로 움직임 예측을 수행하여 상기 서브-예측 블록과 최적의 율-왜곡 값을 가지는 보정된 서브-블록 단위의 움직임을 획득한다.
이때, L0 및 L1 방향에서 한정된 탐색 영역은 디코더 측면의 움직임 보정을 수행하기 이전의 참조 블록과 공간적으로 인접한 화소 영역을 의미한다.
상기 공간적으로 인접한 화소 영역은 해당 참조 블록 위치를 기준으로 8-neighboring 화소들로 한정할 수 있다. 하지만, 이에 국한되지 않고, 범위가 확장되는 것 또한 본 발명에 포함된다.
상기 탐색 영역에서 추가적인 움직임 예측을 수행하여 최적의 율-왜곡 값을 획득함에 있어, 기존의 움직임 예측에서 움직임 벡터의 비트율과 블록 매칭을 통한 왜곡 값을 획득하는것과 달리, 본 발명에서 제안하는 디코더 측면의 움직임 보정 방법에서는 움직임 벡터의 비트율은 고려하지 않고 블록 매칭을 통한 왜곡 값만을 사용하여 움직임 탐색 과정에서 최소의 왜곡 값을 가지는 블록을 최종 참조 블록으로 선정하고, 이때의 움직임 벡터를 최종 움직임 벡터로 사용한다.
1) 움직임 보정을 위한 소정의 탐색 영역 결정, 2) 탐색 영역에서 SAD 후보 결정 및 3) 움직임 보정 수행 방법은, 전술한 S1 내지 S3에서 살펴본 바와 같으며, 자세한 설명은 생략하기로 한다. 다만, 현재 블록이 서브 블록 단위의 움직임 보정을 수행하는 경우, 탐색 영역은 현재 블록이 아닌 서브 블록을 기준으로 결정될 수 있다.
도 6에서 도시한 서브-블록 단위의 보정된 움직임 기반의 움직임 보상 단계(670)는 상기 서브-블록 단위 디코더 측면의 움직임 보정 수행부(660)을 통해 획득한 보정된 서브-블록 단위의 L0 움직임과 L1 움직임을 바탕으로 양방향 움직임 보상을 수행하는 단계이다.
도 7은 블록 매칭을 수행하는 대상 블록과 해당 블록 내의 대상 화소들을 도시한 도면이다. 700은 일반적인 블록 매칭에서 블록 내의 모든 화소들을 이용하여 대상 블록과 참조 블록의 오차를 계산하는 방식을 도시하며, 710과 720은 블록 매칭에 소요되는 연산 복잡도를 감소시키기 위하여 블록 내의 일부 화소들만을 이용하여 대상 블록과 참조 블록의 오차를 계산하는 방식의 일 예를 도시한다.
본 발명의 일 실시예에 따르면, 710 블록을 짝수행(EVEN ROWS)(711)에 속한 화소들과 홀수행(ODD ROWS)(712)에 속한 화소들로 분류하여, 블록의 매칭 코스트, 블록간의 오차 등을 계산함에 있어 짝수행에 속한 화소들 혹은 홀수행에 속한 화소들만을 이용하여 계산하므로써 연산 복잡도를 감소시킬 수 있다.
이때, 상기 연산 복잡도 감소를 위해 매칭에 사용되는 대상 화소들을 분류하는 기준은 짝수행과 홀수행에 국한되지 않으며, 2의 배수인 정수 행 단위로 건너띄며 대상 행을 결정하는 방법 또한 포함될 수 있다.
상기 연산 복잡도 감소를 위한 본 발명의 일 실시예에 따르면, 도 7에 도시된 720 블록은 4의 배수행을 사용하는 일 실시예를 나타낸다.
도 8은 서브-샘플링된 블록을 이용하여 디코더 측면의 움직임 보정을 수행하는 개념을 도시한 도면이다. 도 8에 도시한 바와 같이, 양방향 예측 (bi-prediction)으로 예측을 수행한 현재 블록을 대상으로 디코더 측면에서 움직임 정보를 보정하는 과정에서 최적의 움직임 정보를 탐색하는 과정을 수행하며, 이때, 블록의 왜곡 값을 계산하는 과정에서 블록 내에 포함된 모든 화소를 이용하지 아니하고, 블록 내의 일부 화소들만을 사용하여 연산 복잡도를 감소 시킬 수 있다.
도 9는 디코더 측면의 움직임 보정을 수행하는 과정에서 특정 조건을 만족하는 경우 조기 종료를 수행하는 흐름도를 도시한 도면이다. 도 9는 앞서 살펴본 디코더 측면의 움직임 보정 과정에서 디코더 측면의 움직임 보정 수행부(420, 630, 650)를 보다 자세하게 도시한 도면으로, 본 발명에서 제안하는 디코더 측면의 움직임 보정을 위한 조기 종료 방법이 포함된 흐름도를 도시한다.
본 발명에서 제안하는 디코더 측면의 움직임 보정 수행부에서는 L0 방향과 L1 방향에서 각각 기존의 참조 블록과 공간적으로 인접한 위치들에 대하여 움직임 탐색을 수행한다. 이때, 블록 내의 전부 또는 일부 화소들만을 사용하여 연산 복잡도를 감소시킬 수 있다.
이때, 상기 기존의 참조 블록과 공간적으로 인접한 위치에 대응하는 블록과 왜곡 값을 계산하여 특정한 조건을 만족하는 경우에는 추가적인 움직임 탐색을 조기 종료할 수 있다.
이때, 상기 특정한 조건은 초기 참조 블록의 왜곡 값 대비 일정한 값보다 작은 경우일 수 있다. 예를 들어, 기준 SAD 후보가 일정한 값보다 작은 경우, 디코더 측면에서의 움직임 보정은 수행되지 않으며, 조기 종료될 수 있다. 여기서, 일정한 값은, 현재 블록 또는 참조 블록의 너비(W) 또는 높이(H) 중 적어도 하나에 기초하여 결정될 수 있다. 또는, 현재 블록이 서브 블록 단위로 움직임 보정을 수행하는 경우, 서브 블록의 너비(W) 또는 높이(H) 중 적어도 하나에 기초하여 결정될 수 있다. 일예로, 상기 일정한 값은, W*H, W*(H/2), (W/2)*H, 2*W*H, 4*W*H, 8*W*H, 16*W*H 등으로 결정될 수 있다. 또는, 상기 일정한 값은, 0.9, 0.75 등의 비율로 표현될 수도 있다
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 발명은 비디오 신호를 부호화/복호화하기 위해 이용될 수 있다.

Claims (8)

  1. 움직임 보정이 서브 블록의 단위로 수행되는지 여부를 결정하는 단계;
    현재 블록의 움직임 보정을 위한 탐색 영역을 결정하는 단계;
    상기 탐색 영역에 대한 복수의 SAD 후보를 산출하는 단계;
    상기 복수의 SAD 후보에 기초하여, 상기 현재 블록의 델타 움직임 정보를 유도하는 단계; 및
    상기 현재 블록의 기-생성된 움직임 정보와 상기 델타 움직임 정보를 이용하여, 상기 현재 블록의 움직임 정보를 보정하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 움직임 보정이 서브 블록의 단위로 수행되는지 여부를 결정하는 단계는, 상기 현재 블록의 크기에 기초하여 결정되는, 영상 복호화 방법.
  3. 제1항에 있어서,
    상기 탐색 영역은, 참조 블록 또는 상기 참조 블록의 주변 영역 중 적어도 하나를 포함하는 영역으로 결정되고,
    상기 주변 영역은, 상기 참조 블록의 경계에 이웃한 N개의 샘플 라인인, 영상 복호화 방법.
  4. 제1항에 있어서,
    상기 SAD 후보는, L0 블록과 L1 블록 간의 SAD 값으로 결정되고,
    상기 L0 블록은, 상기 현재 블록의 L0 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정되고, 상기 L1 블록은, 상기 현재 블록의 L1 참조 블록의 위치 및 상기 소정의 오프셋에 기초하여 결정되는, 영상 복호화 방법.
  5. 제4항에 있어서,
    상기 SAD 후보는, 상기 L0 블록과 상기 L1 블록의 일부 샘플을 기초로 결정되는, 영상 복호화 방법.
  6. 제4항에 있어서,
    상기 오프셋은, 넌-방향성 오프셋 또는 방향성 오프셋 중 적어도 하나를 포함하고,
    상기 방향성 오프셋은, 좌측, 우측, 상단, 하단, 좌상단, 우상단, 좌하단 또는 우하단 중 적어도 하나의 방향에 대한 오프셋을 포함하는, 영상 복호화 방법.
  7. 제1항에 있어서,
    상기 움직임 보정은, 기준 SAD 후보와 소정의 문턱값 간의 비교 결과에 기초하여 적응적으로 수행되고,
    상기 기준 SAD 후보는, 넌-방향성 오프셋에 대응하는 SAD 후보를 의미하는 영상 복호화 방법.
  8. 제1항에 있어서,
    상기 움직임 보정은, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 인터 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 중 적어도 하나를 고려하여 제한적으로 수행되는, 영상 복호화 방법.
PCT/KR2019/007975 2018-06-29 2019-07-01 디코더 측면의 움직임 보정을 사용하는 비디오 코딩 방법 및 장치 Ceased WO2020005042A1 (ko)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN202311509851.4A CN117354509A (zh) 2018-06-29 2019-07-01 对图像解码和编码的方法及非暂态计算机可读存储介质
CN202311507833.2A CN117354506A (zh) 2018-06-29 2019-07-01 对图像解码和编码的方法及非暂态计算机可读存储介质
CN201980043825.2A CN112335248B (zh) 2018-06-29 2019-07-01 使用解码器侧的运动补偿的视频编码方法和装置
CN202311508957.2A CN117354508A (zh) 2018-06-29 2019-07-01 对图像解码和编码的方法及非暂态计算机可读存储介质
US17/256,295 US11677970B2 (en) 2018-06-29 2019-07-01 Video coding method and device using motion compensation of decoder side
CN202311511354.8A CN117354510A (zh) 2018-06-29 2019-07-01 对图像解码和编码的方法及非暂态计算机可读存储介质
US18/316,873 US12382073B2 (en) 2018-06-29 2023-05-12 Video coding method and device using motion compensation of decoder side
US19/287,516 US20260059131A1 (en) 2018-06-29 2025-07-31 Video coding method and device using motion compensation of decoder side

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180075932 2018-06-29
KR10-2018-0075932 2018-06-29

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US17/256,295 A-371-Of-International US11677970B2 (en) 2018-06-29 2019-07-01 Video coding method and device using motion compensation of decoder side
US18/316,873 Continuation US12382073B2 (en) 2018-06-29 2023-05-12 Video coding method and device using motion compensation of decoder side

Publications (1)

Publication Number Publication Date
WO2020005042A1 true WO2020005042A1 (ko) 2020-01-02

Family

ID=68987533

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/007975 Ceased WO2020005042A1 (ko) 2018-06-29 2019-07-01 디코더 측면의 움직임 보정을 사용하는 비디오 코딩 방법 및 장치

Country Status (4)

Country Link
US (3) US11677970B2 (ko)
KR (1) KR20200002701A (ko)
CN (5) CN117354506A (ko)
WO (1) WO2020005042A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4109882A4 (en) * 2020-03-26 2023-06-07 Huawei Technologies Co., Ltd. IMAGE PROCESSING METHOD AND ELECTRONIC DEVICE

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12568241B2 (en) * 2023-02-10 2026-03-03 Tencent America LLC Bi-prediction with CU level weight (BCW)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170131446A (ko) * 2015-03-27 2017-11-29 퀄컴 인코포레이티드 비디오 코딩에서의 모션 정보 유도 모드 결정
WO2018065296A1 (en) * 2016-10-03 2018-04-12 Thomson Licensing Method and apparatus for encoding and decoding motion information
KR20180061060A (ko) * 2016-11-28 2018-06-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20180184117A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and Apparatus of Adaptive Bi-Prediction for Video Coding

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325126A (en) * 1992-04-01 1994-06-28 Intel Corporation Method and apparatus for real time compression and decompression of a digital motion video signal
JP2004236049A (ja) * 2003-01-31 2004-08-19 Hitachi Ltd 符号化方法及び復号化方法
US9319708B2 (en) * 2006-06-16 2016-04-19 Via Technologies, Inc. Systems and methods of improved motion estimation using a graphics processing unit
KR101228020B1 (ko) * 2007-12-05 2013-01-30 삼성전자주식회사 사이드 매칭을 이용한 영상의 부호화 방법 및 장치, 그복호화 방법 및 장치
CN103222265B (zh) * 2010-09-30 2017-02-08 三菱电机株式会社 运动图像编码装置、运动图像解码装置、运动图像编码方法以及运动图像解码方法
WO2013140807A1 (ja) * 2012-03-23 2013-09-26 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
KR20170058838A (ko) * 2015-11-19 2017-05-29 한국전자통신연구원 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
US20170347094A1 (en) 2016-05-31 2017-11-30 Google Inc. Block size adaptive directional intra prediction
WO2018084339A1 (ko) * 2016-11-04 2018-05-11 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10911761B2 (en) * 2016-12-27 2021-02-02 Mediatek Inc. Method and apparatus of bilateral template MV refinement for video coding
EP3591973A4 (en) * 2017-03-22 2020-03-18 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DECODING VIDEO DATA, AND METHOD AND DEVICE FOR CODING VIDEO DATA
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US11750832B2 (en) * 2017-11-02 2023-09-05 Hfi Innovation Inc. Method and apparatus for video coding
CN119922302A (zh) * 2018-03-29 2025-05-02 世宗大学校产学协力团 用于对图像编码/解码的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170131446A (ko) * 2015-03-27 2017-11-29 퀄컴 인코포레이티드 비디오 코딩에서의 모션 정보 유도 모드 결정
WO2018065296A1 (en) * 2016-10-03 2018-04-12 Thomson Licensing Method and apparatus for encoding and decoding motion information
KR20180061060A (ko) * 2016-11-28 2018-06-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20180184117A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and Apparatus of Adaptive Bi-Prediction for Video Coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ESENLIK, SEMIH ET AL.: "Description of Core Experiment 9 (CE9): Decoder Side Motion Vector Derivation", JVET-J1029_R4. JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 1 6 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11. 10TH MEETING, no. JVET-J1029, 14 May 2018 (2018-05-14), San Diego, US, pages 1 - 34, XP030151329 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4109882A4 (en) * 2020-03-26 2023-06-07 Huawei Technologies Co., Ltd. IMAGE PROCESSING METHOD AND ELECTRONIC DEVICE

Also Published As

Publication number Publication date
US11677970B2 (en) 2023-06-13
CN112335248A (zh) 2021-02-05
CN117354510A (zh) 2024-01-05
CN112335248B (zh) 2023-12-05
US20230283795A1 (en) 2023-09-07
CN117354508A (zh) 2024-01-05
US20210185337A1 (en) 2021-06-17
US12382073B2 (en) 2025-08-05
KR20200002701A (ko) 2020-01-08
US20260059131A1 (en) 2026-02-26
CN117354509A (zh) 2024-01-05
CN117354506A (zh) 2024-01-05

Similar Documents

Publication Publication Date Title
WO2020009419A1 (ko) 병합 후보를 사용하는 비디오 코딩 방법 및 장치
WO2017039256A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017188652A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2019078581A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018174593A1 (ko) 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
WO2017222325A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018212577A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017164645A2 (ko) 비디오 신호 부호화/복호화 방법 및 장치
WO2018008904A2 (ko) 비디오 신호 처리 방법 및 장치
WO2014171713A1 (ko) 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치
WO2019194568A1 (ko) 어파인 모델 기반의 영상 부호화/복호화 방법 및 장치
WO2016052977A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019117639A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2020004979A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2017082443A1 (ko) 영상 코딩 시스템에서 임계값을 이용한 적응적 영상 예측 방법 및 장치
WO2016159610A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020013609A1 (ko) 화면내 예측 기반의 비디오 코딩 방법 및 장치
WO2018044089A1 (ko) 비디오 신호 처리 방법 및 장치
WO2016114583A1 (ko) 비디오 신호 처리 방법 및 장치
WO2016048092A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019182329A1 (ko) 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체
WO2016064123A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020130477A1 (ko) 비디오 부호화/복호화 방법 및 장치
WO2015020504A1 (ko) 병합 모드 결정 방법 및 장치
WO2016122253A1 (ko) 비디오 신호 처리 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19825197

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 21.05.2021)

122 Ep: pct application non-entry in european phase

Ref document number: 19825197

Country of ref document: EP

Kind code of ref document: A1