[go: up one dir, main page]

WO2020180166A1 - Image encoding/decoding method and apparatus - Google Patents

Image encoding/decoding method and apparatus Download PDF

Info

Publication number
WO2020180166A1
WO2020180166A1 PCT/KR2020/003228 KR2020003228W WO2020180166A1 WO 2020180166 A1 WO2020180166 A1 WO 2020180166A1 KR 2020003228 W KR2020003228 W KR 2020003228W WO 2020180166 A1 WO2020180166 A1 WO 2020180166A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
filter
current
pixels
pixel
Prior art date
Application number
PCT/KR2020/003228
Other languages
French (fr)
Korean (ko)
Inventor
안용조
Original Assignee
디지털인사이트주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디지털인사이트주식회사 filed Critical 디지털인사이트주식회사
Priority to MX2021010704A priority Critical patent/MX2021010704A/en
Priority to CN202080019186.9A priority patent/CN113545041A/en
Priority to CA3132582A priority patent/CA3132582A1/en
Priority to KR1020217027754A priority patent/KR20210127709A/en
Publication of WO2020180166A1 publication Critical patent/WO2020180166A1/en
Priority to US17/357,741 priority patent/US11363265B2/en
Priority to MX2025000107A priority patent/MX2025000107A/en
Priority to US17/749,046 priority patent/US12034923B2/en
Priority to US18/677,871 priority patent/US20240323370A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Definitions

  • the present invention relates to a video encoding/decoding method and apparatus.
  • a block splitting structure means a unit that performs encoding and decoding, and a unit to which major encoding and decoding techniques such as prediction and transformation are applied.
  • major encoding and decoding techniques such as prediction and transformation are applied.
  • the size of blocks for encoding and decoding is gradually increasing, and the block division type supports more various division types.
  • video compression is performed using not only units for encoding and decoding, but also units subdivided according to the role of blocks.
  • video encoding and decoding are performed using unit blocks that are subdivided according to a quadtree-type block splitting structure and a role for prediction and transformation.
  • various types of block division such as QTBT (QuadTree plus Binary Tree) in the form of combining a quad tree and a binary-tree, and MTT (Multi-Type-Tree) in which a triple-tree is combined. Structures have been proposed to improve video coding efficiency.
  • QTBT QuadTree plus Binary Tree
  • MTT Multi-Type-Tree
  • An image encoding/decoding method and apparatus provides an in-loop filtering method for a reconstructed picture.
  • An image encoding/decoding method and apparatus provides a motion compensation method according to a plurality of inter prediction modes.
  • An image encoding/decoding method and apparatus restores a current picture based on at least one of intra prediction or inter prediction, specifies a block boundary to which a deblocking filter is applied from the reconstructed current picture, and encodes
  • the deblocking filter may be applied to the specified block boundary based on a filter type pre-defined in the /decoding device.
  • the deblocking filter is applied in units of a predetermined MxN sample grid, where M and N may be integers of 4, 8 or more. .
  • the encoding/decoding apparatus defines a plurality of filter types having different filter lengths, and the plurality of filter types is a long filter and an intermediate filter ( It may include at least one of a middle filter or a short filter.
  • the filter length of the long filter is 8, 10, 12 or 14
  • the filter length of the intermediate filter is 6
  • the filter length of the short filter is 2 or 4
  • the number of pixels to which the deblocking filter is applied in a P block and the number of pixels to which the deblocking filter is applied in a Q block are different from each other, wherein the P The block and the Q block may be adjacent blocks in both directions based on the specified block boundary.
  • the number of pixels to which the deblocking filter is applied in the P block may be 3, and the number of pixels to which the deblocking filter is applied in the Q block may be 7 have.
  • the reconstructing of the current picture comprises: constructing a merge candidate list of a current block, deriving motion information of the current block from the merge candidate list, and And performing motion compensation of the current block based on the motion information.
  • motion compensation of the current block may be performed based on a reference region according to a current picture reference mode.
  • a motion vector among the derived motion information may be corrected by using a motion vector difference value for a merge mode.
  • correction of the motion vector may be performed only when the size of the current block is larger than a predetermined threshold size.
  • an in-loop filter is applied in a unit of a predetermined sample grid, but the efficiency of in-loop filtering may be improved by considering a boundary between prediction/transform blocks or subblocks thereof.
  • the present invention filters block boundaries based on in-loop filters having different filter lengths, so that artifacts on the boundary can be efficiently removed.
  • the efficiency of motion compensation may be improved by adaptively using a plurality of inter prediction modes according to a predetermined priority.
  • the present invention can improve the encoding efficiency of the current picture reference mode by adaptively using the reference region according to the current picture reference mode.
  • FIG. 1 is a block diagram showing an image encoding apparatus according to the present invention.
  • FIG. 2 is a block diagram showing an image decoding apparatus according to the present invention.
  • FIG. 3 is a diagram illustrating a target boundary and a target pixel of a deblocking filter in an embodiment to which the present invention is applied.
  • FIG. 4 illustrates a deblocking filtering process in the filter unit 150 of the encoding apparatus and the filter unit 240 of the decoding apparatus according to an embodiment to which the present invention is applied.
  • FIG. 5 is a diagram illustrating a concept of performing prediction and transformation by dividing one coding block into a plurality of sub-blocks.
  • FIG. 6 is a diagram illustrating an example of sub-block division for one coding block and a concept of a sub-block boundary and a deblocking filter grid.
  • FIG. 7 is a diagram illustrating a concept of a pixel currently filtered at a boundary between a P block and a Q block and a reference pixel used for filtering.
  • FIG. 8 is a diagram illustrating a concept of a pixel currently filtered at a boundary between a P block and a Q block and a sub-block boundary within a Q block and a reference pixel used for filtering.
  • FIG. 9 is a diagram for explaining a basic concept of a current picture reference mode.
  • FIG. 10 is a diagram illustrating an embodiment of a current picture reference area according to a location of a current block.
  • 11 to 14 illustrate examples of a region including a current block and a search and reference available region of a current picture reference (CPR).
  • CPR current picture reference
  • FIG. 15 illustrates an image encoding/decoding method using a merge mode based on a motion vector difference value (MVD) as an embodiment to which the present invention is applied.
  • VMD motion vector difference value
  • 16 to 21 are diagrams illustrating a method of determining an inter prediction mode of a current block based on a predetermined priority in an embodiment to which the present invention is applied.
  • An image encoding/decoding method and apparatus restores a current picture based on at least one of intra prediction or inter prediction, specifies a block boundary to which a deblocking filter is applied from the reconstructed current picture, and encodes
  • the deblocking filter may be applied to the specified block boundary based on a filter type pre-defined in the /decoding device.
  • the deblocking filter is applied in units of a predetermined MxN sample grid, where M and N may be integers of 4, 8 or more. .
  • the encoding/decoding apparatus defines a plurality of filter types having different filter lengths, and the plurality of filter types is a long filter and an intermediate filter ( It may include at least one of a middle filter or a short filter.
  • the filter length of the long filter is 8, 10, 12 or 14
  • the filter length of the intermediate filter is 6
  • the filter length of the short filter is 2 or 4
  • the number of pixels to which the deblocking filter is applied in a P block and the number of pixels to which the deblocking filter is applied in a Q block are different from each other, wherein the P The block and the Q block may be adjacent blocks in both directions based on the specified block boundary.
  • the number of pixels to which the deblocking filter is applied in the P block may be 3, and the number of pixels to which the deblocking filter is applied in the Q block may be 7 have.
  • the reconstructing of the current picture comprises: constructing a merge candidate list of a current block, deriving motion information of the current block from the merge candidate list, and And performing motion compensation of the current block based on the motion information.
  • motion compensation of the current block may be performed based on a reference region according to a current picture reference mode.
  • a motion vector among the derived motion information may be corrected by using a motion vector difference value for a merge mode.
  • correction of the motion vector may be performed only when the size of the current block is larger than a predetermined threshold size.
  • ⁇ (to) or the step of does not mean a step for.
  • terms such as first and second may be used to describe various elements, but the elements should not be limited to the terms. These terms are used only for the purpose of distinguishing one component from another component.
  • components shown in the embodiments of the present invention are independently shown to represent different characteristic functions, and it does not mean that each component is formed of separate hardware or a single software component. That is, each constituent unit is described as being listed as a respective constituent unit for convenience of explanation, and at least two constituent units of each constituent unit are combined to form a single constituent unit, or one constituent unit may be divided into a plurality of constituent units to perform a function. An integrated embodiment and a separate embodiment of each of these components are also included in the scope of the present invention unless departing from the essence of the present invention.
  • ⁇ unit ⁇ group”, “ ⁇ unit”, “ ⁇ module”, “ ⁇ block” are used to process at least one function or operation. It means a unit, which can be implemented in hardware or software, or a combination of hardware and software.
  • a coding block refers to a processing unit of a set of target pixels on which encoding and decoding are currently performed, and may be used interchangeably as a coding block and a coding unit.
  • the coding unit refers to a coding unit (CU) and may be generically referred to including a coding block (CB).
  • quadtree splitting refers to one block being divided into four independent coding units
  • binary splitting refers to one block being divided into two independent coding units
  • ternary division refers to that one block is divided into three independent coding units in a 1:2:1 ratio.
  • FIG. 1 is a block diagram showing an image encoding apparatus according to the present invention.
  • the image encoding apparatus 100 includes a picture splitter 110, a prediction unit 120, 125, a transform unit 130, a quantization unit 135, a rearrangement unit 160, and an entropy encoder ( 165, an inverse quantization unit 140, an inverse transform unit 145, a filter unit 150, and a memory 155 may be included.
  • 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 that performs encoding or a unit that performs decoding.
  • the prediction unit may be divided in a shape such as at least one square or rectangle of the same size within one coding unit, or one prediction unit among the prediction units split within one coding unit is another prediction. It may be divided to have a shape and/or size different from the unit.
  • intra prediction may be performed without dividing into a plurality of prediction units NxN.
  • the prediction units 120 and 125 may include an inter prediction unit 120 that performs inter prediction or inter prediction, and an intra prediction unit 125 that performs intra prediction or intra prediction. It is possible to determine whether to use inter prediction or to perform intra prediction for the prediction unit, and determine specific information (eg, intra prediction mode, motion vector, reference picture, etc.) according to each prediction method.
  • a residual value (residual block) between the generated prediction block and the original block may be input to the transform unit 130.
  • prediction mode information, motion vector information, etc. used for prediction may be encoded by the entropy encoder 165 together with a residual value and transmitted to a decoder.
  • the encoder since the encoder does not generate the prediction mode information and motion vector information, the corresponding information is not transmitted to the decoder.
  • the encoder it is possible for the encoder to signal and transmit information indicating that motion information is derived and used from the side of the decoder and information on a technique used for inducing the motion information.
  • the inter prediction unit 120 may predict a prediction unit based on information of at least one picture of a previous picture or a subsequent picture of the current picture. In some cases, the prediction unit may be predicted based on information of a partial region in the current picture that has been encoded. You can also predict the unit.
  • various methods such as a merge mode, an advanced motion vector prediction (AMVP) mode, an affine mode, a current picture referencing mode, and a combined prediction mode may be used.
  • AMVP advanced motion vector prediction
  • affine mode affine mode
  • a current picture referencing mode a combined prediction mode
  • the merge mode at least one motion vector among spatial/temporal merge candidates may be set as a motion vector of a current block, and inter prediction may be performed using the motion vector.
  • the pre-set motion vector may be corrected by adding an additional motion vector difference value (MVD) to the pre-set motion vector.
  • the corrected motion vector may be used as the final motion vector of the current block, which will be described in detail with reference to FIG. 15.
  • the Rane mode is a method of dividing a current block into a predetermined sub-block unit and performing inter prediction using a motion vector derived in each sub-block unit.
  • the sub-block unit is represented by NxM, and N and M may be integers of 4, 8, 16 or more, respectively.
  • the shape of the sub-block may be square or non-square.
  • the sub-block unit may be a fixed one pre-committed to the encoding apparatus, or may be variably determined in consideration of the size/shape of the current block, and the component type.
  • the current picture reference mode is an inter prediction method using a pre-restored region in the current picture to which the current block belongs and a predetermined block vector, which will be described in detail with reference to FIGS. 9 to 14.
  • a first prediction block through inter prediction and a second prediction block through intra prediction are generated for one current block, respectively, and a predetermined weight is applied to the first and second prediction blocks. This is a method of generating the final prediction block.
  • inter prediction may be performed using any one of the aforementioned inter prediction modes.
  • the intra prediction may be performed by fixedly using only an intra prediction mode (eg, any one of a planar mode, a DC mode, a vertical/horizontal mode, and a diagonal mode) pre-set in the encoding apparatus.
  • the intra prediction mode for intra prediction may be derived based on an intra prediction mode of a neighboring block (eg, at least one of left, upper, upper left, upper right, and lower right) adjacent to the current block.
  • the number of neighboring blocks used may be fixed to one or two, or may be three or more. Even if all of the aforementioned neighboring blocks are available, only one of the left neighboring blocks or the upper neighboring blocks may be limited to be used, or only the left and upper neighboring blocks may be restricted.
  • the weight may be determined in consideration of whether the aforementioned neighboring block is a block encoded in an intra mode. It is assumed that the weight w1 is applied to the first prediction block and the weight w2 is applied to the second prediction block.
  • w1 may be a natural number smaller than w2. For example, the ratio of w1 and w2 (raito) may be [1:3].
  • w1 may be a natural number greater than w2.
  • the ratio of w1 and w2 (raito) may be [3:1].
  • w1 may be set equal to w2.
  • the inter prediction unit 120 may include a reference picture interpolation unit, a motion prediction unit, and a motion compensation unit.
  • the reference picture interpolation unit may receive reference picture information from the memory 155 and generate pixel information of an integer number of pixels or less from the reference picture.
  • a DCT-based interpolation filter with different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/4 pixels.
  • a DCT-based interpolation filter with different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/8 pixels.
  • the motion prediction unit may perform motion prediction based on the reference picture interpolated by the reference picture interpolation unit.
  • Various methods such as a full search-based block matching algorithm (FBMA), three step search (TSS), and a new three-step search algorithm (NTS), can be used as a method for calculating a motion vector.
  • 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 in units of 1/2 or 1/4 pixels based on the interpolated pixels.
  • the motion prediction unit may predict the current prediction unit by differently predicting the motion.
  • the intra predictor 125 may generate a prediction unit based on reference pixel information around a current block, which is pixel information in the current picture.
  • 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 included in the block that has performed inter prediction is a reference pixel of the block that has performed intra prediction Can be used in place of information. That is, when the reference pixel is not available, information on the reference pixel that is not available may be replaced with at least one reference pixel among the available reference pixels.
  • a residual block including a prediction unit that performs prediction based on a prediction unit generated by the prediction units 120 and 125 and residual information that is a difference value from the original block of the prediction unit may be generated.
  • the generated residual block may be input to the transform unit 130.
  • the original block and the residual block including residual information of the prediction unit generated through the prediction units 120 and 125 are converted to DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), and KLT. You can convert it 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 a prediction unit used to generate the residual block.
  • DCT Discrete Cosine Transform
  • DST Discrete Sine Transform
  • KLT Discrete Sine Transform
  • the quantization unit 135 may quantize values converted into the frequency domain by the transform unit 130. Quantization coefficients may vary 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 rearrangement unit 160.
  • the rearrangement unit 160 may rearrange coefficient values on the quantized residual values.
  • the rearrangement unit 160 may change the two-dimensional block shape coefficients into a one-dimensional vector shape through a coefficient scanning method. For example, the rearrangement unit 160 may scan from a DC coefficient to a coefficient in a high frequency region using a Zig-Zag Scan method, and change it into a one-dimensional vector form.
  • a vertical scan that scans two-dimensional block shape coefficients in a column direction and a horizontal scan that scans two-dimensional block shape coefficients in a row direction may be used. That is, according to the size of the transformation unit and the intra prediction mode, it is possible to determine which scan method is to be used among zig-zag scan, vertical direction scan, and horizontal direction scan.
  • the entropy encoding unit 165 may perform entropy encoding based on values calculated by the rearrangement unit 160. Entropy coding may use various coding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC). In relation to this, the entropy encoder 165 may encode residual value coefficient information of a coding unit from the rearrangement unit 160 and the prediction units 120 and 125. In addition, according to the present invention, it is possible to signal and transmit information indicating that motion information is derived from the side of the decoder and used, and information on a technique used to induce motion information.
  • CAVLC Context-Adaptive Variable Length Coding
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • the inverse quantization unit 140 and the inverse transform unit 145 inverse quantize values quantized by the quantization unit 135 and inverse transform the values transformed by the transform unit 130.
  • the residual value generated by the inverse quantization unit 140 and the inverse transform unit 145 is reconstructed by being combined with the prediction units predicted through the motion estimation unit, motion compensation unit, and intra prediction unit included in the prediction units 120 and 125 Blocks (Reconstructed Block) can be created.
  • 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 can remove block distortion caused by the boundary between blocks in the reconstructed picture, which will be described with reference to FIGS. 3 to 8.
  • the offset correction unit may correct an offset from the original image for the deblocking image in pixel units. In order to perform offset correction for a specific picture, the pixels included in the image are divided into a certain number of areas, and then the area to be offset is determined and the offset is applied to the area, or offset by considering the edge information of each pixel. You can use the method of applying. Adaptive Loop Filtering (ALF) may be performed based on a value obtained by comparing the filtered reconstructed image and the original image. After dividing the pixels included in the image into predetermined groups, one filter to be applied to the corresponding group may be determined, and filtering may be performed differentially for each group.
  • ALF adaptive loop filter
  • the memory 155 may store the reconstructed block or picture calculated through the filter unit 150, and the stored reconstructed block or picture may be provided to the prediction units 120 and 125 when performing inter prediction.
  • FIG. 2 is a block diagram showing an image decoding apparatus according to the present invention.
  • the image decoder 200 includes an entropy decoding unit 210, a rearrangement unit 215, an inverse quantization unit 220, an inverse transform unit 225, prediction units 230 and 235, and a filter unit ( 240) and a memory 245 may be included.
  • the input bitstream may be decoded in a procedure opposite to that of the image encoder.
  • the entropy decoding unit 210 may perform entropy decoding in a procedure opposite to that performed by the entropy encoding unit 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 in response 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 in response to the method performed by the image encoder.
  • CAVLC Context-Adaptive Variable Length Coding
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • the entropy decoder 210 may decode information related to intra prediction and inter prediction performed by the encoder.
  • the rearrangement unit 215 may perform rearrangement based on a method in which the bitstream entropy-decoded by the entropy decoder 210 is rearranged by the encoder.
  • the coefficients expressed in the form of a one-dimensional vector may be reconstructed into coefficients in the form of a two-dimensional block and rearranged.
  • the inverse quantization unit 220 may perform inverse quantization based on a quantization parameter provided by an encoder and a coefficient value of a rearranged block.
  • the inverse transform unit 225 may perform an inverse transform, that is, an inverse DCT, an inverse DST, and an inverse KLT, for transforms, that is, DCT, DST, and KLT, performed by the transform unit on the quantization result performed by the image encoder.
  • the inverse transformation may be performed based on a transmission unit determined by an image encoder.
  • the inverse transform unit 225 of the image decoder may selectively perform a transformation technique (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 transformation technique eg, DCT, DST, KLT
  • the prediction units 230 and 235 may generate a prediction block based on information related to generation of a prediction block provided from the entropy decoder 210 and information on a previously decoded block or picture provided from the memory 245.
  • Intra prediction for the prediction unit is performed based on the pixel present at the top, but when the size of the prediction unit and the size of the transformation unit are different when performing intra prediction, the intra prediction is performed using a reference pixel based on the transformation unit. You can make predictions.
  • intra prediction using NxN splitting for only the smallest coding unit may be used.
  • the prediction units 230 and 235 may include a prediction unit determining unit, an inter prediction unit, and an intra prediction unit.
  • the prediction unit discrimination unit receives various information such as prediction unit information input from the entropy decoder 210, prediction mode information of the intra prediction method, motion prediction related information of the inter prediction method, and divides the prediction unit from the current coding unit, and predicts It can be determined whether the unit performs inter prediction or intra prediction.
  • the encoder 100 does not transmit motion prediction-related information for the inter prediction, instead, information indicating that motion information is derived from the side of the decoder and used, and information about a technique used for deriving motion information are transmitted. In this case, the prediction unit determination unit determines the prediction performance of the inter prediction unit 23 based on the information transmitted from the encoder 100.
  • the inter prediction unit 230 uses information necessary for inter prediction of the current prediction unit provided by the video encoder to predict the current based on information included in at least one picture of a previous picture or a subsequent picture of the current picture including the current prediction unit. Inter prediction for a unit can be performed. To perform inter prediction, an inter prediction mode of a prediction unit included in a corresponding coding unit may be determined based on a coding unit. Regarding the inter prediction mode, the above-described merge mode, AMVP mode, affine mode, current picture reference mode, combined prediction mode, and the like may be used in the same manner in the decoding apparatus, and a detailed description thereof will be omitted. The inter prediction unit 230 may determine the inter prediction mode of the current prediction unit with a predetermined priority, which will be described with reference to FIGS. 16 to 18.
  • the intra prediction unit 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 a prediction unit provided from an image encoder.
  • the intra prediction unit 235 may include an AIS (Adaptive Intra Smoothing) filter, a reference pixel interpolation unit, and a DC filter.
  • the AIS filter is a part that performs filtering on a reference pixel of the current block, and may determine whether to apply the filter according to the prediction mode of the current prediction unit and apply it.
  • AIS filtering may be performed on a reference pixel of a current block by using the prediction mode and AIS filter information of the prediction unit provided by the image encoder. When the prediction mode of the current block is a mode in which AIS filtering is not performed, the AIS filter may not be applied.
  • the reference pixel interpolator may interpolate the reference pixel to generate a reference pixel of a pixel unit having an integer value or less.
  • the prediction mode of the current prediction unit is a prediction mode that generates a prediction block without interpolating a reference pixel
  • the reference pixel may not be interpolated.
  • the DC filter may generate a 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.
  • the image decoder In the deblocking filter of the image decoder, information related to the deblocking filter provided from the image encoder is provided, and the image decoder may perform deblocking filtering on the corresponding block. This will be described with reference to FIGS. 3 to 8.
  • the offset correction unit may perform offset correction on the reconstructed image based on the type of offset correction applied to the image during encoding and information on the offset value.
  • the ALF may be applied to a coding unit based on information on whether to apply ALF and information on ALF coefficients provided from the encoder. Such ALF information may be included in a specific parameter set and provided.
  • the memory 245 can store the reconstructed picture or block so that it can be used as a reference picture or a reference block, and can provide the reconstructed picture to an output unit.
  • FIG. 3 is a diagram illustrating a target boundary and a target pixel of a deblocking filter in an embodiment to which the present invention is applied.
  • FIG. 3 is a diagram illustrating block boundaries 320 and 321 between two different blocks (P block and Q block), and the corresponding block boundaries can be classified into a vertical boundary and a horizontal boundary.
  • a Q block region refers to a region of a current target block on which encoding and/or decoding is currently performed
  • a P block region refers to a block spatially adjacent to a Q block as a reconstructed block.
  • the P block and the Q block are pre-restored blocks
  • the Q block refers to a region in which deblocking filtering is currently performed
  • the P block may refer to a block spatially adjacent to the Q block.
  • FIG. 3 conceptually shows a P block region and a Q block region to which a deblocking filter is applied, and illustrates an embodiment of pixels positioned at a boundary between a P block and a Q block to which the deblocking filter is applied.
  • the number of pixels to which the deblocking filter proposed in the present invention is applied (hereinafter, the number of target pixels) and the number of taps of the deblocking filter are not limited to FIG. 3, and the P block is based on the boundary between the P block and the Q block.
  • the number of target pixels for each of the and Q blocks may be 1, 2, 3, 4, 5, 6, 7 or more.
  • the number of target pixels of the P block may be the same as or different from the number of target pixels of the Q block.
  • the number of target pixels of the P block may be 5, and the number of target pixels of the Q block may be 5.
  • the number of target pixels of the P block may be 7 and the number of target pixels of the Q block may be 7.
  • the number of target pixels of the P block may be 3, and the number of target pixels of the Q block may be 7.
  • FIG. 3 a case where the number of target pixels of the P block and the Q block is 3, respectively, is described as an embodiment.
  • three pixels (q0, q1, q2) adjacent to the vertical boundary are target pixels on which deblocking filtering is performed.
  • the deblocking filter is applied to the first column 331 of the Q block 301 region among the exemplary embodiments of the horizontal boundary illustrated in FIG. 3, four pixels (q0) belonging to the first column are similarly applied. , q1, q2, and q3), three pixels (q0, q1, and q2) adjacent to the horizontal boundary are target pixels on which deblocking filtering is performed.
  • filtering is performed by referring to a pixel value of another pixel value (for example, q3) belonging to the first row or column other than the target pixel on which the deblocking filtering is performed.
  • filtering may be performed by referring to pixel values of a neighboring row or column of the first row or column.
  • the neighboring row or column may belong to a current target block or may belong to a block spatially adjacent to the current target block (eg, left/right, top/bottom).
  • the location of the spatially adjacent blocks may be adaptively determined in consideration of the filtering direction (or boundary direction). Through the reference, whether or not to perform filtering, filtering strength, filter coefficients, number of filter coefficients, filtering direction, etc. may be adaptively determined.
  • the above-described embodiment can be applied in the same/similar manner to the embodiments described later.
  • FIG 3 illustrates an example in which the deblocking filter is applied to the Q block region, as representative of the first row 330 and the first column 331, including the first row and subsequent rows belonging to the Q block region
  • the deblocking filter is similarly performed on subsequent columns (second column, third column, etc.) belonging to the Q block area including (second row, third row, etc.) and first column.
  • the P block region refers to a block region spatially adjacent to a vertical boundary or a horizontal boundary of a current target block on which encoding and/or decoding is currently performed, and an embodiment of the vertical boundary shown in FIG. In the middle, an example in which the deblocking filter is applied to the first row 330 of the P block 310 is shown.
  • three pixels p0, p1, and p2 adjacent to the vertical boundary are target pixels on which deblocking filtering is performed.
  • the deblocking filter is applied to the first column 331 of the P block 311 region in the embodiment of the horizontal boundary illustrated in FIG. 3, four pixels belonging to the first column (p0 , p1, p2, p3), three pixels p0, p1, and p2 adjacent to the horizontal boundary are target pixels on which deblocking filtering is performed.
  • filtering may be performed by referring to a pixel value of p3, not a target pixel on which deblocking filtering is performed.
  • FIG. 3 shows an example in which the deblocking filter is applied to the P block region.
  • the first row 330 and the first column 331 are representatively illustrated, and subsequent rows belonging to the P block region including the first row
  • the deblocking filter is similarly performed on subsequent columns (second column, third column, etc.) belonging to the P block region including (second row, third row, etc.) and first column.
  • FIG. 4 illustrates a deblocking filtering process in the filter unit 150 of the encoding apparatus and the filter unit 240 of the decoding apparatus according to an embodiment to which the present invention is applied.
  • a block boundary for deblocking filtering (hereinafter, referred to as an edge) among block boundaries of a reconstructed picture may be specified (S400).
  • the reconstructed picture may be partitioned into a predetermined NxM pixel grid.
  • the NxM pixel grid may mean a unit in which deblocking filtering is performed.
  • N and M may be 4, 8, 16 or more integers.
  • Each pixel grid may be defined for each component type. For example, when the component type is a luminance component, N and M may be set to 4, and when the component type is a color difference component, N and M may be set to 8. Regardless of the component type, a fixed-size NxM pixel grid may be used.
  • the edge is a block boundary positioned on an NxM pixel grid, and may include at least one of a boundary of a transform block, a boundary of a prediction block, or a boundary of a sub-block.
  • the sub-block may mean a sub-block according to the affine mode described above. Block boundaries to which the deblocking filter is applied will be described with reference to FIGS. 5 and 6.
  • a decision value for the specified edge may be derived (S410).
  • the edge type is a vertical edge, and a 4x4 pixel grid is applied.
  • the left block and the right block will be referred to as P blocks and Q blocks, respectively.
  • the P block and the Q block are pre-restored blocks, the Q block refers to a region in which deblocking filtering is currently performed, and the P block may refer to a block spatially adjacent to the Q block.
  • the determination value may be derived using a variable dSam for inducing the determination value.
  • dSam may be derived for at least one of a first pixel line or a fourth pixel line of the P block and the Q block.
  • dSam0 dSam0
  • dSam for the fourth pixel line (row) is referred to as dSam3.
  • dSam0 may be set to 1, otherwise, dSam0 may be set to 0.
  • dpq may be derived based on at least one of a first pixel value linearity d1 of the first pixel line of the P block or a second pixel value linearity d2 of the first pixel line of the Q block.
  • the first pixel value linearity d1 may be derived using i pixels p belonging to the first pixel line of the P block. i can be 3, 4, 5, 6, 7 or more.
  • the i pixels p may be continuous pixels adjacent to each other, or may be non-contiguous pixels spaced apart from each other. In this case, the pixel p may be i pixels closest to the edge among the pixels of the first pixel line.
  • the second pixel value linearity d2 can be derived using j pixels q belonging to the first pixel line of the Q block.
  • j may be 3, 4, 5, 6, 7 or more.
  • j is set to the same value as i, but is not limited thereto, and may be a value different from i.
  • the j pixels q may be contiguous pixels adjacent to each other, or may be non-contiguous pixels separated by a predetermined interval. In this case, the pixel q may be j pixels closest to the edge among the pixels of the first pixel line.
  • the first pixel value linearity d1 and the second pixel value linearity d2 may be derived as in Equation 1 below.
  • the first pixel value linearity d1 and the second pixel value linearity d2 can be derived as in Equation 2 below.
  • sp denotes a first pixel value gradient v1 of the first pixel line of the block P
  • sq denotes a second pixel value gradient v2 of the first pixel line of the Q block.
  • the first pixel value gradient v1 may be derived using m pixels p belonging to the first pixel line of the P block.
  • m may be 2, 3, 4, 5, 6, 7 or more.
  • the m pixels p may be contiguous pixels adjacent to each other, or may be non-contiguous pixels spaced at predetermined intervals. Alternatively, some of the m pixels p may be contiguous pixels adjacent to each other, and the others may be non-contiguous pixels separated by a predetermined interval.
  • the second pixel value gradient v2 may be derived using n pixels q belonging to the first pixel line of the Q block.
  • n may be 2, 3, 4, 5, 6, 7 or more.
  • n is set to the same value as m, but is not limited thereto, and may be a value different from m.
  • the n pixels q may be contiguous pixels adjacent to each other, or may be non-contiguous pixels separated by a predetermined interval. Alternatively, some of the n pixels q may be contiguous pixels adjacent to each other, and the others may be non-contiguous pixels separated by a predetermined interval.
  • a first pixel value gradient v1 and a second pixel value gradient v2 may be derived as in Equation 3 below.
  • the first pixel value gradient v1 and the second pixel value gradient v2 may be derived as in Equation 4 below.
  • the spq in Table 1 may be derived from the difference between the pixel p0,0 and the pixel q0,0 adjacent to the edge.
  • the first and second threshold values of Table 1 may be derived based on a predetermined parameter QP.
  • the QP may be determined using at least one of a first quantization parameter of the P block, a second quantization parameter of the Q block, or an offset for inducing QP.
  • the offset may be a value encoded and signaled by an encoding device.
  • QP may be derived by adding the offset to the average value of the first and second quantization parameters.
  • the third threshold value of Table 1 may be derived based on the above-described quantization parameter (QP) and block boundary strength (BS).
  • the BS may be variably determined in consideration of a prediction mode of a P/Q block, an inter prediction mode, the presence or absence of a non-zero transform coefficient, and a difference in motion vectors. For example, when at least one prediction mode of the P block and the Q block is an intra mode, the BS may be set to 2. When at least one of the P blocks or the Q blocks is encoded in the joint prediction mode, the BS may be set to 2. When at least one of the P block or Q block includes a non-zero transform coefficient, the BS may be set to 1.
  • the BS When the P block is coded in an inter prediction mode different from the Q block (for example, when the P block is coded in the current picture reference mode and the Q block is coded in the merge mode or AMVP mode), the BS may be set to 1. have. When both the P block and the Q block are coded in the current picture reference mode, and the difference between their block vectors is greater than or equal to a predetermined threshold difference, the BS may be set to 1.
  • the threshold difference may be a fixed value (eg, 4, 8, 16) pre-committed to the encoding/decoding device.
  • dSam3 is derived using one or more pixels belonging to the fourth pixel line through the same method as dSam0 described above, a detailed description will be omitted.
  • a determination value may be derived based on the derived dSam0 and dSam3. For example, if both dSam0 and dSam3 are 1, the decision value is set to the first value (e.g. 3), otherwise, the decision value is set to the second value (e.g. 1 or 2). Can be.
  • a filter type of a deblocking filter may be determined based on the derived determined value (S420).
  • a plurality of filter types having different filter lengths may be defined.
  • the filter type there may be a long filter having the longest filter length, a short filter having the shortest filter length, or one or more middle filters that are longer than a short filter and shorter than a long filter.
  • the number of filter types defined in the encoding/decoding apparatus may be 2, 3, 4 or more.
  • a long filter when the determined value is a first value, a long filter may be used, and when the determined value is a second value, a short filter may be used.
  • a first value when the determined value is a first value, one of a long filter or an intermediate filter may be selectively used, and when the determined value is a second value, a short filter may be used.
  • a long filter when the determined value is not the first value, either a short filter or an intermediate filter may be selectively used.
  • an intermediate filter when the determination value is 1, a short filter may be used.
  • filtering may be performed on an edge of a reconstructed picture based on a deblocking filter according to the determined filter type (S430).
  • the deblocking filter may be applied to a plurality of pixels located in both directions based on an edge and located in the same pixel line.
  • a plurality of pixels to which the deblocking filter is applied is referred to as a filtering region, and the length (or number of pixels) of the filtering region may be different for each filter type.
  • the length of the filtering region may be interpreted as having the same meaning as the filter length of the aforementioned filter type.
  • the length of the filtering region may mean a sum of the number of pixels to which the deblocking filter is applied in the P block and the number of pixels to which the deblocking filter is applied in the Q block.
  • a long filter that is, a long filter, an intermediate filter, and a short filter
  • a deblocking filtering method for each filter type will be described.
  • the present invention is not limited thereto, and only a long filter and an intermediate filter may be defined, only a long filter and a short filter may be defined, or only an intermediate filter and a short filter may be defined.
  • the edge type is a vertical edge
  • the currently filtered pixel (hereinafter, the current pixel q) belongs to the Q block unless otherwise stated.
  • the filtered pixel fq may be derived through a weighted average of the first reference value and the second reference value.
  • the first reference value may be derived using all or part of the pixels in the filtering area to which the current pixel q belongs.
  • the length (or number of pixels) of the filtering region may be an integer of 8, 10, 12, 14 or more. Some pixels in the filtering area may belong to the P block and the other pixels may belong to the Q block. For example, when the length of the filtering region is 10, 5 pixels may belong to the P block and 5 pixels may belong to the Q block. Alternatively, 3 pixels may belong to the P block and 7 pixels may belong to the Q block. Conversely, 7 pixels may belong to the P block and 3 pixels may belong to the Q block. In other words, the long filter-based deblocking filtering may be performed symmetrically or asymmetrically on the P block and the Q block.
  • all pixels belonging to the same filtering area may share one and the same first reference value. That is, the same first reference value can be used regardless of whether the currently filtered pixel is located in the P block or the Q block. The same first reference value may be used regardless of the position of the currently filtered pixel in the P block or the Q block.
  • the second reference value may be derived using at least one of a pixel farthest from an edge (hereinafter, referred to as a first pixel) among pixels of the filtering area belonging to the Q block or surrounding pixels of the filtering area.
  • the surrounding pixel may mean at least one pixel adjacent to the right side of the filtering area.
  • the second reference value may be derived as an average value between one first pixel and one neighboring pixel.
  • the second reference value may be derived as an average value between two or more first pixels and two or more neighboring pixels adjacent to the right side of the filtering area.
  • predetermined weights f1 and f2 may be applied to the first reference value and the second reference value, respectively.
  • the encoding/decoding apparatus may define a plurality of weight sets, and may set the weight f1 by selectively using any one of the plurality of weight sets. The selection may be performed in consideration of the length (or number of pixels) of the filtering region belonging to the Q block.
  • the encoding/decoding apparatus may define a weight set as shown in Table 2 below. Each weight set may consist of one or more weights corresponding to each location of the pixel to be filtered.
  • a weight corresponding to the position of the current pixel q may be selected and applied to the current pixel q.
  • the number of weights constituting the weight set may be the same as the length of the filtering region belonging to the Q block.
  • a plurality of weights constituting one weight set may be sampled at regular intervals within a range of an integer greater than 0 and less than 64.
  • 64 is only an example, and may be larger or smaller than 64.
  • the predetermined interval may be 9, 13, 17, 21, 25 or more.
  • the interval may be variably determined according to the length L of the filtering region included in the Q block. Alternatively, a fixed spacing may be used regardless of L.
  • a weight 59 may be applied to the current pixel.
  • a weight 50 may be applied to the current pixel
  • a weight 5 may be applied to the current pixel.
  • the weight f2 may be determined based on the pre-determined weight f1.
  • the weight f2 may be determined as a value obtained by subtracting the weight f1 from a pre-defined constant.
  • the pre-defined constant is a fixed value pre-defined in the encoding/decoding apparatus, and may be 64. However, this is only an example, and an integer greater than or less than 64 may be used.
  • the filter length of the intermediate filter may be smaller than the filter length of the long filter.
  • the length (or number of pixels) of the filtering region according to the intermediate filter may be smaller than the length of the filtering region according to the aforementioned long filter.
  • the length of the filtering area according to the intermediate filter may be 6, 8 or more.
  • the length of the filtering region belonging to the P block may be the same as the length of the filtering region belonging to the Q block.
  • the present invention is not limited thereto, and the length of the filtering region belonging to the P block may be longer or shorter than the length of the filtering region belonging to the Q block.
  • the filtered pixel fq may be derived using the current pixel q and at least one neighboring pixel adjacent to the current pixel q.
  • the neighboring pixels are one or more pixels adjacent to the left direction of the current pixel q (hereinafter, left peripheral pixels) or one or more pixels adjacent to the right direction of the current pixel q (hereinafter, right peripheral pixels). It may include at least one.
  • the current pixel q when the current pixel q is q0, two left peripheral pixels p0 and p1 and two right peripheral pixels q1 and q2 may be used.
  • the current pixel q is q1
  • two left peripheral pixels p0 and q0 and one right peripheral pixel q2 may be used.
  • the current pixel q is q2
  • three left peripheral pixels p0, q0, and q1 and one right peripheral pixel q3 may be used.
  • the filter length of the short filter may be smaller than that of the intermediate filter.
  • the length (or number of pixels) of the filtering region according to the short filter may be smaller than the length of the filtering region according to the above-described intermediate filter.
  • the length of the filtering region according to the short filter may be 2, 4 or more.
  • the filtered pixel fq may be derived by adding or subtracting a predetermined first offset (offset1) to the current pixel q.
  • the first offset may be determined based on a difference value between the pixels of the P block and the pixels of the Q block.
  • the first offset may be determined based on a difference value between the pixel p0 and the pixel q0 and a difference value between the pixel p1 and the pixel q1.
  • filtering for the current pixel q may be performed only when the first offset is smaller than a predetermined threshold.
  • the threshold value is derived based on the above-described quantization parameter (QP) and block boundary strength (BS), and a detailed description thereof will be omitted.
  • the filtered pixel fq may be derived by adding a predetermined second offset (offset2) to the current pixel q.
  • the second offset may be determined in consideration of at least one of a difference (or change amount) or a first offset between the current pixel q and the neighboring pixels.
  • the surrounding pixels may include at least one of a left pixel or a right pixel of the current pixel q.
  • the second offset may be determined as in Equation 6 below.
  • a method of performing deblocking filtering on a block boundary of a reconstructed picture will be described in detail with reference to FIGS. 7 and 8.
  • the above-described filtering method is not limited to being applied only to a deblocking filter, and an in-loop filter
  • the same/similarly can be applied to an adaptive sample offset (SAO), an adaptive loop filter (ALF), and the like.
  • FIG. 5 is a diagram illustrating a concept of performing prediction and transformation by dividing one coding block into a plurality of sub-blocks.
  • prediction or transformation may be performed by dividing one coding block into two or four divisions in either a horizontal direction or a vertical direction.
  • the coding block may also be understood as a decoding block.
  • prediction may be performed only by dividing the coding block into two or four divisions in either a horizontal direction or a vertical direction, or both prediction and transformation may be performed by dividing into two or four, or by dividing into two or four. You can also perform conversion only.
  • intra prediction and transformation may be performed in each division unit.
  • Block properties include block size/shape, component type (luminance, color difference), prediction mode (intra prediction or inter mode), inter prediction mode (merge mode, AMVP mode, affine mode, etc.) Means), a prediction/transformation unit, and an encoding parameter such as a position or length of a block boundary.
  • non-divided or two-divided may be selectively used, and either non-divided or four-divided may be selectively used.
  • any one of non-divided, two-divided, or four-divided may be selectively used.
  • the divided sub-blocks 510 are equally divided into two widths (W) 511 -It may include dividing the block so that the width of the block has W/2 (513), and in the case of horizontally dividing one coding block 520 into two sub-blocks, the height of the block (H) It may include dividing the block by dividing 522 equally into two so that the height of the divided sub-block has H/2 (523).
  • the width (W) 531 of the block is equally divided into four. It may include dividing the block so that the divided sub-block has a width of W/4 (533). In the case of horizontal division of one coding block 540 into four sub-blocks, It may include dividing the block so that the height (H) 542 is equally divided into four so that the height of the divided sub-block has H/4 (543).
  • the current coding block is predicted and It involves performing the transformation in the same form.
  • a transform unit may be divided to have the same size/shape as the sub-block, or a plurality of transform units may be merged.
  • a sub-block unit may be determined based on a transform unit, and intra prediction may be performed in a sub-block unit.
  • the width (W) 531 of the block is equally divided into four. It may include dividing the block so that the divided sub-block has a width of W/4 (433). In the case of horizontal division of one coding block 440 into four sub-blocks, It may include dividing the block so that the height (H) 542 is equally divided into four so that the height of the divided sub-block has H/4 (543).
  • the current coding block is predicted and It involves performing the transformation in the same form.
  • a deblocking filter may be performed at the boundary of each sub-block.
  • the deblocking filter may be selectively performed, and flag information may be used for this.
  • the flag information may indicate whether to perform filtering at the boundary of the sub-block.
  • the flag information may be encoded by the encoding device and signaled by the decoding device, or may be derived by the decoding device based on at least one block attribute of the current block or the neighboring block. Block properties are the same as described above, and detailed descriptions will be omitted.
  • a sub-block unit deblocking filter is performed inside the current block. Can be applied.
  • the current coding block is a block in which prediction and transformation have been performed through intra prediction in the sub-block unit, but the boundary of the corresponding sub-block is used for performing the deblocking filter. If it does not exist on the block grid (NxM sample grid), the deblocking filter step is skipped at the boundary of the sub-block, and the boundary of the sub-block is on the block grid for performing the deblocking filter.
  • the deblocking filter step can be performed at the boundary of the sub-block only if it exists.
  • the block grid for performing the deblocking filter means a minimum block boundary unit to which deblocking filtering can be applied, and may mean a minimum pixel interval between a previous block boundary and a next block boundary.
  • the block grid can use 8x8. However, this is not limited to 8x8 blocks, and 4x4 or 16x16 may also be used.
  • Block grids of different sizes may be used depending on the component type. For example, a block grid having a size smaller than the color difference component may be used for the luminance component. A block grid having a fixed size for each component type may be used.
  • one coding block when one coding block is divided into two in either a horizontal direction or a vertical direction, it can be divided into asymmetric sub-blocks.
  • FIG. 5 an embodiment of a case where one coding block is divided into two asymmetrically in either a horizontal direction or a vertical direction is illustrated in FIG. 5.
  • the current coding block 550 is vertically divided into two sub-blocks, so that the first sub-block is composed of a sub-block having a height of H and a width of W/4, and the second sub-block has a height of H. , It may be composed of a sub-block having a width of 3*W/4.
  • the current coding block 560 is horizontally divided into two sub-blocks, so that the first sub-block is composed of a sub-block having a height of H/4 and a width of W, and the second sub-block is 3 * It can be composed of sub-blocks with H/4 as the height and W as the width.
  • Independent transformation and/or inverse transformation may be performed in units of the sub-blocks, and transformation and/or inverse transformation may be performed only in some sub-blocks of the current coding block.
  • some sub-blocks may mean N sub-blocks located on the left or top of the current target block.
  • N may be 1, 2, 3, etc.
  • N may be a fixed value pre-committed to the decoding apparatus, or may be variably determined in consideration of the above-described block attribute.
  • the transformation process for some sub-blocks may be limited to be performed only when the shape of the current target block is a rectangle (W>H, W ⁇ H). Alternatively, it may be limited to be performed only when the size of the current target block is greater than or equal to the threshold size.
  • the above-described sub-block unit deblocking filter process may be applied in the same manner.
  • FIG. 6 is a diagram illustrating an example of sub-block division for one coding block and a concept of a sub-block boundary and a deblocking filter grid.
  • FIG. 6 a case in which one 16x8 coding block 600 is vertically divided into four 4x8 sub-blocks 610-613 is illustrated. In this case, a total of three sub-block boundaries may occur.
  • An example may be a second sub-block boundary 621 that occurs, and a third sub-block boundary 622 that occurs between the third sub-block 612 and the fourth sub-block 613.
  • the deblocking filter is performed only at the block boundary existing on the deblocking filter grid. Can be done.
  • different deblocking filters may be applied to the second sub-block boundary and the first sub-block boundary. That is, at least one of a filter coefficient, a number of taps, and an intensity of the deblocking filter may be different.
  • the block grid for performing the deblocking filter may be configured in units of N pixels, and N uses a specific predetermined integer, and one or more of 4, 8, 16, 32, etc., can be adaptively used. I can.
  • FIG. 6 For a detailed description of the present invention, the embodiment shown in FIG. 6 is used.
  • FIG. 6 shows an embodiment in which prediction and transformation are performed through intra prediction in sub-block units by vertically dividing one 16x8 coding block into four sub-blocks.
  • the single 16x8 coded block is divided into four 4x8 sub-blocks, reconstructed by performing intra prediction and transforming in a sub-block unit, and input to the deblocking filter step.
  • One coding block input through the deblocking filter step includes a first vertical boundary 621 between a first sub-block 610 and a second sub-block 611, a second sub-block 611, and There is a second vertical boundary 620 between the third sub-block 612 and a third vertical boundary 622 between the third sub-block 612 and the fourth sub-block 613 .
  • the second vertical boundary 620 is the only sub-block boundary existing on the deblocking filter grid among the sub-block boundaries.
  • the current coding block is a block that has been predicted and/or transformed through intra prediction in sub-block units, as in the second vertical direction boundary 620, on the deblocking filter grid.
  • Deblocking filters can be performed on all sub-block boundaries that do not exist on the deblocking filter grid, such as the sub-block boundary existing in the first vertical direction boundary 621 and the third vertical direction boundary 622. have.
  • the properties of the deblocking filter applied for each boundary eg, at least one of intensity, number of taps, coefficient, position/number of input pixels, etc.
  • the properties of the deblocking filter applied for each boundary may be different.
  • a deblocking filter like the second vertical boundary 620
  • the deblocking filter is performed only at the sub-block boundary existing on the grid, and the sub-block boundary not present on the deblocking filter grid, such as the first vertical boundary 621 and the third vertical boundary 622 Deblocking filter execution can be omitted at
  • the deblocking filter proposed in the present invention is a block in which the current coding block is predicted and/or transformed through intra prediction in sub-block units.
  • deblocking filtering may be performed on a pixel different from a coding block having the same size as the current coding block, a different deblocking filter strength may be used, or a different number of deblocking filter taps may be applied.
  • a deblocking filter may be performed on N pixels located in a Q block (a block currently performing a deblocking filter) located at a boundary of at least one of the transform blocks (TB).
  • a deblocking filter may be performed on (N+K) pixels located in the Q block.
  • M may mean the width or height of the block and may be 16, 32, 64, or 128.
  • N denotes the number of pixels adjacent to the block boundary included in the P block (the block currently performing the deblocking filter and the block adjacent to the block boundary) and the Q block (the block currently performing the deblocking filter). And, it may be an integer of 1, 2, 3, 4, 5, 6, 7 or more.
  • K is a pixel to be additionally subjected to deblocking filter among pixels adjacent to a block boundary included in the Q block when the current coding block is a block that has been predicted and/or transformed through intra prediction in sub-block units. It means a number, and can have a value from 0 to an integer minus N from the width and height of the current block.
  • the N pixels are assigned to the K pixels located in the Q block. It is possible to use a different deblocking filter strength than the applied filter.
  • a deblocking filter different from the filter applied to the N pixels is applied to K pixels located in the Q block.
  • the above-described different filters may mean that at least one or more of filter intensity, coefficient value, number of taps, number/position of input pixels, and the like are different.
  • FIG. 7 is a diagram illustrating a concept of a pixel currently filtered at a boundary between a P block and a Q block and a reference pixel used for filtering.
  • FIG. 7 is a diagram illustrating an example of a pixel to be subjected to deblocking filtering and a reference pixel used for filtering at a boundary between a P block and a Q block in applying a deblocking filter to a horizontal boundary.
  • FIG. 7 a Q block 700 which is a block currently subjected to deblocking filtering, a P block 710 that is spatially adjacent to the top, and a boundary 720 between the P block and the Q block are shown.
  • target pixels to which deblocking filtering is applied are a total of three pixel rows adjacent to the block boundary 720, and the concepts of reference pixels for performing filtering in each pixel row are illustrated in 713, 712, and 711 of FIG. 7. .
  • FIG. 7 shows an embodiment of a horizontal boundary.
  • all concepts of the present invention described above or below are applied to a pixel column instead of a pixel row. .
  • the target pixel for deblocking filtering is a p2 pixel, which is a pixel positioned at the third boundary from the boundary, and pixels referred to to perform deblocking filtering on the p2 pixel are p3, p2, p1, p0, and q0 pixels.
  • the p2 pixel may be set to a value of p2', which is a weighted average value using a predefined weight using five pixels of p3, p2, p1, p0, and q0.
  • the weighted averaged value p2' is used as one value within the range of a value added or subtracted by a specific offset value from the p2 value.
  • the target pixel for deblocking filtering is a p1 pixel, which is a pixel positioned at the second boundary, and pixels referred to to perform deblocking filtering on the p1 pixel are p2, p1, p0, and q0 pixels.
  • the p1 pixel may be set to a value of p1', which is a weighted average value using a weight defined in advance using four pixels p2, p1, p0, and q0.
  • the weighted averaged value p1' is used as one value within the range of a value added or subtracted by a specific offset value from the p1 value.
  • the target pixel for deblocking filtering is a p0 pixel, which is a pixel located first at the boundary, and pixels referred to to perform deblocking filtering on the p0 pixel are p2, p1, p0, q0, and q1 pixels.
  • the p0 pixel may be set to a value of p0', which is a weighted average value using a predefined weight using five pixels of p2, p1, p0, q0, and q1.
  • the weighted averaged value p0' is used as one value within the range of a value added or subtracted by a specific offset value from the p0 value.
  • target pixels to which deblocking filtering is applied in the Q block are a total of three pixel rows adjacent to the block boundary 720, and the concept of reference pixels for performing filtering in each pixel row is shown in 703, 702, and 701 of FIG. Shown.
  • FIG. 7 shows an embodiment of a horizontal boundary.
  • all concepts of the present invention described above or below are applied to a pixel column instead of a pixel row. .
  • the target pixel for deblocking filtering is a q2 pixel, which is a pixel positioned third from the boundary, and pixels q3, q2, q1, q0, and p0 are referred to to perform deblocking filtering on the q2 pixel.
  • the q2 pixel may be set to a value of p2', which is a weighted average value using a weight defined in advance using five pixels q3, q2, q1, q0, and p0.
  • the weighted averaged value q2' is used as one value within the range of a value added or subtracted by a specific offset value from the q2 value.
  • the target pixel for deblocking filtering is a q1 pixel, which is a pixel located at the second boundary from the boundary, and pixels referred to to perform deblocking filtering on the q1 pixel are q2, q1, q0, and p0 pixels.
  • the q1 pixel may be set to a value of q1' which is a weighted average value using a weight predefined by using four pixels q2, q1, q0, and p0.
  • the weighted averaged value q1' is used as one value within the range of a value added or subtracted by a specific offset value from the q1 value.
  • the target pixel for deblocking filtering is a q0 pixel, which is a pixel located first at the boundary, and pixels referenced to perform deblocking filtering on the q0 pixel are q2, q1, q0, p0, and p1 pixels.
  • the p0 pixel may be set to a value of q0', which is a weighted average value using a weight predefined using five pixels q2, q1, q0, p0, and p1.
  • the weighted averaged value q0' is used as one value within the range of a value added or subtracted by a specific offset value from the q0 value.
  • FIG. 8 is a diagram illustrating a concept of a pixel to be subjected to blocking filtering and a reference pixel used for filtering at a boundary between a P block and a Q block and a sub-block boundary within a Q block.
  • the Q block is an intra prediction or sub-block in a sub-block unit.
  • blocking artifacts may occur at the sub-block boundary, and in order to effectively remove this, an additional deblocking filter is additionally performed on pixels located at the sub-block boundary inside the Q block. It is shown in Figure 8.
  • pixels to be subjected to deblocking filtering are three pixel rows adjacent to the block boundary 720 and additional N pixel rows of the sub-block boundary 800 present in the block.
  • the concept of performing filtering on the additional N pixel rows of the sub-block boundary and the concept of a reference pixel are illustrated in 801 and 802 of FIG. 8.
  • FIG. 8 shows an embodiment of a horizontal boundary.
  • all concepts of the present invention described above or later are applied to a pixel column instead of a pixel row. .
  • N is 2
  • the present invention is not limited thereto, and the case where N is 4, 8, etc. It is an example of an example.
  • the target pixel for deblocking filtering is a q3 pixel, which is a pixel located at the top or left of the sub-block boundary 500, and pixels referenced to perform deblocking filtering on the q3 pixel are q2 and q3. , q4, q5 pixels.
  • the q3 pixel may be set to a value of q3' which is a weighted average value using a weight defined in advance using four pixels q2, q3, q4, and q5.
  • the weighted averaged value q3' is used as one value within the range of a value added or subtracted by a specific offset value from the q3 value.
  • the q2, q4, and q5 pixels are not limited to the contents shown in FIG. 8, and are +1, +2, -1, -2 or +N,-located at an integer pixel distance based on a sub-block boundary. It may mean a pixel at a predefined location such as N.
  • the target pixel for deblocking filtering is a q4 pixel, which is a pixel positioned at the bottom or the first right of the sub-block boundary 800, and pixels referred to to perform deblocking filtering on the q4 pixel are q2 and q3. , q4, q5 pixels.
  • the q4 pixel may be set to a value of q4', which is a weighted average value using a weight defined in advance using four pixels q2, q3, q4, and q5.
  • the weighted average value q4' is used as one value within the range of a value added or subtracted by a specific offset value from the q4 value.
  • the pixels q2, q3, and q5 are not limited to the contents shown in FIG. 8, and are +1, +2, -1, -2 or +N,-located at an integer pixel distance based on a sub-block boundary. It may mean a pixel at a predefined location such as N.
  • a deblocking filter for a sub-block boundary filtering using 4 pixels has been exemplified, but in the present invention, 5 pixels or 3 pixels are referred to the target pixel of the deblocking filter. Can be used as a pixel. Also, the number of reference pixels for deblocking filtering may be different from each other according to positions.
  • FIG. 9 is a diagram for explaining a basic concept of a current picture referencing mode.
  • the current picture reference technique is a technique for performing prediction on an already reconstructed region of the same picture as the current block when performing prediction on the current block.
  • a region 901 previously reconstructed according to the encoding and decoding order exists, and has pixel similarity with the current block 110. Areas may exist. Accordingly, based on the pixel similarity, a reference block 930 similar to the current block 910 exists in the region 901 of the pre-restored current picture, and prediction is performed using the reference block 930.
  • the technology is defined as the current picture reference technology.
  • Information on whether to refer to the current picture may be encoded and signaled by an encoding device, or may be derived by a decoding device.
  • the derivation is performed based on the size, shape, location, division type (eg, quad tree, binary tree, ternary tree), prediction mode, and location/type of the tile or tile group to which the block belongs.
  • the block may mean at least one of a current block or a neighboring block adjacent to the current block.
  • the pixel distance between the current block 910 and the reference block 930 is defined as a vector, and the vector is called a block vector.
  • the prediction information of the current block is a skip, merge, and difference through a block vector prediction method similar to the inter prediction of the block vector information.
  • Methods such as signal transmission can be used.
  • the block vector may be derived as a neighboring block of the current block.
  • the neighboring block may be limited to a block coded in the current picture reference mode, or may be limited to a block coded in the merge mode (or skip mode). It may be limited to blocks encoded with other prediction modes (AMVP mode, affine mode, etc.) pre-defined in other decoding devices.
  • the block vector may be derived based on information (e.g., block index) specifying the position of the reference block.
  • FIG. 10 is a diagram illustrating an embodiment of a current picture reference area according to a location of a current block.
  • FIG. 10 illustrates in detail an embodiment in which a current block belongs to a picture, a tile group, or a CTU located at the leftmost position at a boundary of a tile.
  • FIG. 9 a search range of a current picture reference for a current block of a current block, that is, a reference region, is shown.
  • FIG. 10 an embodiment of a region previously reconstructed according to a CTU including the current block and an encoding and decoding order is illustrated. Show.
  • the tile group is one of methods of dividing one picture, and a tile may also correspond to this.
  • the tile group may be composed of one or more tiles.
  • the tile group may be understood as one tile.
  • tile group A 1050 shows a tile group composed of 1001, 1002, 1006, 1007, 1011, and 1012 CTUs
  • tile group B 1060 is 1003, 1004, 1005, 1008, 1009, 1010.
  • 1013, 1014, 1015 A tile group consisting of CTUs is shown.
  • the predefined reference area for referencing the current picture may mean a partial area of an already reconstructed area 901 in the current picture 900 shown in FIG. 9.
  • the partial region may be at least one of a current CTU including a current block, a left CTU spatially adjacent to the current CTU, or a CTU positioned at the top.
  • the CTU including the current block is a current picture, a current tile group, or a CTU located at the far left of the current tile
  • a CTU including the current block and a CTU spatially adjacent to the top may be referred to.
  • BLOCK A 1051 shown in FIG. 10 is an embodiment of a case in which the current block is included in the CTU located at the far left of the current picture 1000. If the current block is a block included in BLOCK A (1051), the area that the current block can refer to to perform the current picture reference corresponds to the area previously restored according to the encoding and decoding order inside the current CTU (BLOCK A). I can.
  • the upper CTU 1006 that is spatially adjacent is used as a reference region when there is a spatially adjacent upper CTU. May include doing.
  • the current picture reference is performed using only the undone region within the current CTU, or the current picture reference is not performed. May be. Or, it may be set to refer to a specific region previously restored before the current CTU.
  • the specific region may belong to the same tile or tile group, or may be P CTUs decoded immediately before the current CTU. P can be 1, 2, 3 or more.
  • the N value may be a fixed value pre-defined in the encoding/decoding apparatus, or may be variably determined according to the position of the current block and/or the current CTU.
  • it may include using the CTU 207 previously encoded and decoded according to the encoding and decoding order as a reference region.
  • BLOCK B 1061 shown in FIG. 10 is a CTU included in Tile group B, which is the second tile group of the current picture 1000, and is located at the far left of Tile group B and is located at the tile group boundary. Yes. If the current block is a block included in BLOCK B 1061, the area that the current block can refer to to perform current picture reference corresponds to a previously restored area according to the encoding and decoding order inside the current CTU (BLOCK B). I can.
  • the upper CTU 1003 that is spatially adjacent is used as a reference region when there is a spatially adjacent upper CTU. May include doing.
  • it may include using the CTU 1005, which has been previously encoded and decoded according to the encoding and decoding order, as a reference region.
  • the current tile or tile group is limited to a tile or tile group that allows prediction between tiles or tile groups.
  • the current tile or tile group includes using the CTU located to the left of the current CTU as a reference area.
  • information on a prediction/referencing relationship between tiles or tile groups may be encoded.
  • the information includes whether reference between tiles is allowed, whether a current tile refers to another tile, the number of tiles belonging to a picture, an index specifying the location of a tile, the number/location of referenced tiles, etc. It may include at least one of information.
  • the information may be signaled at at least one level of a video sequence, a picture, a tile group, or a tile.
  • FIG 11 illustrates an embodiment of a region including a current block and a search and reference available region of a current picture reference (CPR).
  • CPR current picture reference
  • the current CTU is divided into a plurality of VPDUs.
  • the VPDU refers to a maximum unit capable of performing encoding and decoding at one time in order to reduce the cost of implementing hardware for this.
  • the VPDU may mean a block having at least one of a width or a height smaller than that of the CTU.
  • the split depth of the CTU is k
  • the VPDU may be defined as a block having a split depth of (k+1) or (k+2).
  • the shape of the VPDU may be square or rectangular, but may be limited to square as needed.
  • the size of the VPDU may use a predefined arbitrary size, or may use a size of a quarter of the CTU.
  • the predefined arbitrary size may be 64x64, 32x32, or 128x128.
  • a CTU 1110 including a current block and a CTU 1100 spatially adjacent to the left are shown.
  • a search range for referencing the current picture of the current block that is, a reference region may be predefined.
  • the current block is included in the first VPDU 1111 of the current CTU 1110, only all or some of the pixel areas of the CTU 1100 adjacent to the left may be used as the reference area.
  • 2 VPDUs 1102, 3 VPDUs 1103, 4 VPDUs 1104 and the current block excluding the 1st VPDU 1101 of the CTU 1100 adjacent to the left are A region reconstructed in advance according to an encoding and decoding order among the included VPDUs 1111 may be used as a reference region.
  • N CTUs encoded/decoded immediately before the current CTU may be used.
  • M VPDUs encoded/decoded immediately before the current VPDU according to the encoding/decoding order may be used.
  • N and M may be 1, 2, 3, 4, or more integers, and N and M may be the same or different from each other.
  • the number may be a value pre-defined in the encoding/decoding apparatus or may be variably determined based on availability of a block.
  • the M VPDUs may be limited to belonging to the same CTU (or tile, tile group). Alternatively, at least one of the M VPDUs may be limited to belonging to a CTU (or tile or tile group) different from the others.
  • At least one of the aforementioned restrictions may be set in consideration of the location and/or scan order of the current block or current VPDU.
  • the location may be interpreted in various meanings, such as a location within the CTU, a location within a tile, and a location within a tile group.
  • the current block When the current block is included in the second VPDU 1112 of the current CTU 1110, all pixel areas of the CTU 1100 adjacent to the left may not be used as a reference area, and only some zeros may be used as the reference area.
  • the third VPDU 1103 and the fourth VPDU 1104 excluding the first VPDU 1101 and the second VPDU 1102 of the CTU 1100 adjacent to the left are referenced.
  • a region reconstructed in advance according to an encoding and decoding order among the first VPDU 1111 of the current CTU 1110 and the second VPDU 1112 including the current block may be used as a reference region.
  • the current block when the current block is included in the third VPDU 1113 of the current CTU 1110, all the pixel areas of the CTU 1100 adjacent to the left are not used as a reference area, and only some zeros can be used as the reference area.
  • a region reconstructed in advance according to the encoding and decoding order can be used as a reference region. have.
  • the CTU 1100 adjacent to the left is not used as a reference area, and only a previously restored area inside the current CTU 1110 is a reference area. Can be used as
  • FIG. 12 illustrates another embodiment of an area including a current block and a search and reference available area for a current picture reference (CPR).
  • CPR current picture reference
  • FIG. 12 illustrates an additional embodiment of a case in which the current block is different from the existing z-scan order in the VPDU execution order according to the partition type of the current CTU 1210.
  • the current block is When included in the third VPDU 1213 of the CTU 1210, the second VPDU 1202 and the fourth VPDU excluding the first VPDU 1201 and the third VPDU 1203 within the CTU 1200 adjacent to the left (1204) can be used as a reference area.
  • a region reconstructed in advance according to an encoding and/or decoding order among the first VPDU 1211 of the current CTU 1210 and the third VPDU 1213 including the current block may be used as a reference region. In the above embodiment, it means that a region spatially adjacent to the current VPDU among the left CTUs is first referred.
  • a reference area can be designated.
  • the current CTU 1210 is vertically divided, so that the VPDU is performed in the first VPDU 1211, the third VPDU 1213, the second VPDU 1212, and the second VPDU 1212.
  • the CTU 1200 adjacent to the left side 1 VPDU 1201 and the second VPDU 1202 except for, the third VPDU 1203 and the fourth VPDU 1204 may be used as reference areas.
  • a region reconstructed in advance according to an encoding and decoding order among the first VPDU 1211 of the current CTU 1210 and the third VPDU 1213 including the current block may be used as a reference region.
  • the current CTU 1210 is vertically divided and the VPDU is performed in the first VPDU 1211, the third VPDU 1213, the second VPDU 1212, and the fourth VPDU 1214
  • the current block If this is included in the second VPDU 1212 of the current CTU 1210, the CTU 1200 adjacent to the left, the first VPDU 1201, the second VPDU 1202, and the third VPDU 1203 are excluded.
  • the VPDU 1204 can be used as a reference area.
  • a region reconstructed in advance according to the encoding and decoding order can be used as a reference region. have.
  • FIG 13 illustrates another embodiment of a region including a current block and a search and reference available region of a current picture reference (CPR).
  • CPR current picture reference
  • the CTU including the current block shown in FIG. 10 is located at the far left of the current picture, the current tile group, and the current tile, and can refer to the upper CTU, the CTU is located at the top of the CTU spatially adjacent to the current CTU. It shows an embodiment referring to the located CTU.
  • the current block is included in the first VPDU 1311 of the current CTU 1310, all the pixel areas of the CTU 1300 adjacent to the top may not be used as a reference area, and only a partial area may be used as a reference area.
  • the second VPDU 1302, the third VPDU 1303, the fourth VPDU 1304, and the current block excluding the first VPDU 1301 of the CTU 1300 adjacent to the top Among the included VPDUs 1311, a region reconstructed in advance according to an encoding and decoding order may be used as a reference region.
  • the current block When the current block is included in the second VPDU 1312 of the current CTU 1310, all the pixel areas of the CTU 1300 adjacent to the top are not used as a reference area, and only some zeros can be used as the reference area.
  • the third VPDU 1303 and the fourth VPDU 1304 excluding the first VPDU 1301 and the second VPDU 1302 of the CTU 1300 adjacent to the top are used as reference regions. Can be used.
  • a region reconstructed in advance according to an encoding and decoding order among the first VPDU 1311 of the current CTU 1310 and the second VPDU 1312 including the current block may be used as a reference region.
  • the current block when the current block is included in the third VPDU 1313 of the current CTU 1310, all the pixel areas of the CTU 1300 adjacent to the top are not used as a reference area, and only some zeros can be used as the reference area.
  • refer to the fourth VPDU 1304 excluding the first VPDU 1301, the second VPDU 1302 and the third VPDU 1303 of the CTU 1300 adjacent to the top Can be used as an area.
  • a region reconstructed in advance according to the encoding and decoding order can be used as a reference region. have.
  • the CTU 1300 adjacent to the top is not used as a reference area, and only the previously restored area inside the current CTU 1310 is the reference area. Can be used as
  • FIG 14 illustrates another embodiment of an area including a current block and a search and reference available area for a current picture reference (CPR).
  • CPR current picture reference
  • FIG. 14 in addition to FIG. 13, referring to a partial region of the CTU 1400 spatially adjacent to the top when the execution order of the VPDU is different from the existing z-scan order according to the current block division type of the current CTU 1410. It shows an additional embodiment.
  • the current block is When included in the 3rd VPDU 1413 of the CTU 1410, the 3rd VPDU 1403 and the 4th VPDU 1404 excluding the 1st VPDU 1401 and 2nd VPDU 1402 of the CTU 1400 adjacent to the top ) Can be used as a reference area.
  • a region reconstructed in advance according to an encoding and decoding order among the first VPDU 1411 of the current CTU 1410 and the third VPDU 1413 including the current block may be used as a reference region.
  • the current block If this is included in the second VPDU 1412 of the current CTU 1410, the fourth VPDU excluding the CTU 1400, the first VPDU 1401, the second VPDU 1402, and the third VPDU 1403 adjacent to the top (1404) can be used as a reference area.
  • a region reconstructed in advance according to the encoding and decoding order can be used as a reference region. have.
  • the current block may set the reference region based on the current CTU, based on the CTU located at least one of the left or the top. That is, the left or upper CTU may be selectively used, and the selection may be performed based on predetermined encoding information.
  • the encoding information may include information on whether to refer to a left or upper CTU, whether a left or upper CTU is available, a scan order, and a position of a current VPDU within the current CTU.
  • FIG. 15 illustrates an image encoding/decoding method using a merge mode based on a motion vector difference value (MVD) as an embodiment to which the present invention is applied.
  • VMD motion vector difference value
  • the merge mode equally uses motion information of a neighboring block as motion information of a current block, and unlike the AMVP mode, it does not require encoding/decoding a separate motion vector difference value. However, even in the merge mode, a predetermined motion vector difference value (MVD) may be used to improve the accuracy of the motion vector.
  • motion information may be understood as including at least one of a motion vector, a reference picture index, and prediction direction information.
  • the MVD may be selectively used based on a predetermined flag (hereinafter, MVD_flag).
  • MVD_flag may indicate whether a motion vector difference value (MVD) is used in the merge mode. For example, when the flag is the first value, the motion vector difference value is used in the merge mode, and if not, the motion vector difference value is not used in the merge mode. That is, when the flag is the first value, the motion vector derived according to the merge mode may be corrected by using the motion vector difference value. Otherwise, the motion vector according to the merge mode may not be corrected.
  • MVD_flag may be encoded/decoded only when at least one of the width or height of the current block is greater than or equal to 8. Alternatively, MVD_flag may be encoded/decoded only when the number of pixels belonging to the current block is greater than or equal to 64. Alternatively, MVD_flag may be encoded/decoded only when the sum of the width and height of the current block is greater than 12.
  • a merge candidate list of a current block may be configured (S1500).
  • the merge candidate list may include one or a plurality of merge candidates available to derive motion information of the current block.
  • the size of the merge candidate list may be variably determined based on information indicating the maximum number of merge candidates constituting the merge candidate list (hereinafter, size information).
  • size information may be a fixed value (eg, 2, 3, 4, 5, 6 or more integers) encoded and signaled by the encoding device or pre-committed to the decoding device.
  • the plurality of merge candidates belonging to the merge candidate list may include at least one of a spatial merge candidate or a temporal merge candidate.
  • the spatial merge candidate may mean a neighboring block spatially adjacent to the current block or motion information of the neighboring block.
  • the neighboring block may include at least one of a lower left block A0, a left block A1, an upper right block B0, an upper block B1, or an upper left block B2 of the current block.
  • available neighboring blocks among the neighboring blocks may be sequentially added to the merge candidate list.
  • the priority is B1->A1->B0->A1->B2, A1->B1->A0->B1->B2, A1->B1->B0->A0->B2, etc. It may be defined as, but is not limited thereto.
  • the temporal merge candidate may mean one or more co-located blocks belonging to a co-located picture or motion information of the collocated block.
  • the collocated picture is any one of a plurality of reference pictures included in the reference picture list, and may be a picture different from the picture to which the current block belongs.
  • the collocated picture may be the first picture or the last picture in the reference picture list.
  • the collocated picture may be specified based on an index coded to indicate the collocated picture.
  • the collocated block may include at least one of a block C1 including a center position of the current block or a neighboring block C0 adjacent to the lower right corner of the current block.
  • an available block of C0 and C1 may be sequentially added to the merge candidate list.
  • C0 may have a higher priority than C1.
  • the present invention is not limited thereto, and C1 may have a higher priority than C0.
  • the encoding/decoding apparatus may include a buffer that stores motion information of one or more blocks (hereinafter, referred to as previous blocks) for which encoding/decoding has been completed before the current block.
  • the buffer may store a list consisting of motion information of a previous block (hereinafter, a motion information list).
  • the motion information list may be initialized in units of any one of a picture, a slice, a tile, a CTU row, or a CTU.
  • Initialization may mean a state in which the motion information list is empty.
  • Motion information of the previous block is sequentially added to the motion information list according to the encoding/decoding order of the previous block, but the motion information list is updated in a first-in first-out (FIFO) method in consideration of the size of the motion information list.
  • FIFO first-in first-out
  • motion information identical to the latest motion information may be removed from the motion information list, and the latest motion information may be added to the motion information list.
  • the latest motion information may be added to the last position of the motion information list or may be added to the position of the removed motion information.
  • the previous block may include at least one of one or more neighboring blocks spatially adjacent to the current block or one or more neighboring blocks not spatially adjacent to the current block.
  • motion information of a previous block or a previous block belonging to the buffer or motion information list may be further added as a merge candidate.
  • redundancy check between the motion information list and the merge candidate list may be performed.
  • the redundancy check may be performed on all or part of the merge candidates belonging to the merge candidate list and all or part of the previous block in the motion information list.
  • the redundancy check of the present invention is performed on a part of a merge candidate belonging to a merge candidate list and a part of a previous block in the motion information list.
  • some merge candidates in the merge candidate list may include at least one of a left block or an upper block among spatial merge candidates.
  • some merge candidates may be limited to any one block among spatial merge candidates, and may further include at least one of a lower left block, an upper right block, an upper left block, or a temporal merge candidate.
  • Some previous blocks of the motion information list may mean K previous blocks recently added to the motion information list.
  • K may be 1, 2, 3 or more, and may be a fixed value pre-committed to the encoding/decoding device.
  • the previous block of the motion information list may not be added to the merge candidate list.
  • all or part of the previous block of the motion information list may be added to the last position of the merge candidate list. In this case, it may be added to the merge candidate list in the order of the previous blocks recently added from the motion information list (that is, in the order of the largest index to the smallest).
  • the previous block most recently added to the motion information list ie, the previous block having the largest index
  • the addition of the previous block may be performed in consideration of the size of the merge candidate list.
  • the merge candidate list has at most T merge candidates according to the size information of the merge candidate list described above.
  • the addition of the previous block may be limited to be performed only until the number of merge candidates included in the merge candidate list (T-n) is reached.
  • n may be an integer of 1, 2 or more.
  • the addition of the previous block may be repeatedly performed until the number of merge candidates belonging to the merge candidate list reaches T.
  • motion information of a current block may be derived based on a merge candidate list and a merge index (merge_idx) (S1510).
  • the merge index may specify any one of a plurality of merge candidates belonging to the merge candidate list.
  • the motion information of the current block may be set as motion information of the merge candidate specified by the merge index.
  • the maximum number of merge candidates for which the current block is available may be adaptively determined. If MVD_flag is 0, up to M merge candidates are used, while if MVD_flag is 1, N merge candidates may be used.
  • M may be a natural number smaller than N.
  • the maximum number of merge candidates in the merge candidate list is M
  • the maximum number of merge candidates in which the current block can be used may be two.
  • the merge index is not encoded/decoded, and instead, the merge index is set to 0, whereby the use of the first merge candidate may be forced.
  • the merge index may have a value between 0 and i, i may be an integer of 2, 3 or more, and i may be the same as (M-1).
  • a motion vector difference value (MVD) for a merge mode of a current block may be derived (S1520).
  • the MVD of the current block may be derived based on a merge offset vector (offsetMV).
  • offsetMV merge offset vector
  • the MVD includes at least one of MVD (MVD0) in the L0 direction and MVD (MVD1) in the L1 direction, and each of MVD0 and MVD1 may be derived using a merge offset vector.
  • the merge offset vector may be determined based on the length (mvdDistance) and direction (mvdDirection) of the merge offset vector.
  • the merge offset vector (offsetMV) may be determined as in Equation 7 below.
  • offsetMV[ x0 ][ y0 ][ 0] (mvdDistance[ x0 ][ y0] ⁇ 2) * mvdDirection[ x0 ][ y0 ][0]
  • offsetMV[ x0 ][ y0 ][ 1] (mvdDistance[ x0 ][ y0] ⁇ 2) * mvdDirection[ x0 ][ y0 ][1]
  • mvdDistance may be determined in consideration of at least one of a distance index (distance_idx) or a predetermined flag (pic_fpel_mmvd_enabled_flag).
  • the distance index (distance_idx) may mean an index encoded to specify the length or distance of the motion vector difference value MVD.
  • pic_fpel_mmvd_enabled_flag may indicate whether the motion vector uses integer pixel precision in the merge mode of the current block. For example, when pic_fpel_mmvd_enabled_flag is the first value, the merge mode of the current block uses integer pixel precision. That is, this may mean that the motion vector resolution of the current block is an integer pel.
  • the merge mode of the current block may use fractional pixel precision.
  • the merge mode of the current block may use integer pixel precision or decimal pixel precision.
  • the merge mode of the current block may be limited to use only fractional pixel precision. Examples of the precision of a fractional pixel may include 1/2 pel, 1/4 pel, and 1/8 pel.
  • mvdDistance may be determined as shown in Table 3 below.
  • mvdDirection indicates the direction of the merge offset vector, and may be determined based on a direction index (direction_idx).
  • the direction may include at least one of left, right, top, bottom, top left, bottom left, top right, or bottom right.
  • mvdDirection may be determined as shown in Table 4 below.
  • mvdDirection[ x0 ][ y0 ][0] means the sign of the x component of the motion vector difference value
  • mvdDirection[ x0 ][ y0 ][1] means the sign of the y component of the motion vector difference value.
  • the above-described distance index and direction index may be encoded/decoded only when MVD_flag is the first value.
  • the motion vector difference value MVD may be set equal to the previously determined merge offset vector.
  • the merge offset vector may be corrected in consideration of a POC difference (PocDiff) between a reference picture of the current block and a current picture to which the current block belongs, and the corrected merge offset vector may be set as a motion vector difference value (MVD).
  • the current block is encoded/decoded for bidirectional prediction
  • the reference picture of the current block may include a first reference picture (a reference picture in the L0 direction) and a second reference picture (a reference picture in the L1 direction).
  • the POC difference between the first reference picture and the current picture is hereinafter referred to as PocDiff0
  • the POC difference between the second reference picture and the current picture is referred to as PocDiff1.
  • MVD0 and MVD1 of the current block may be set equally as merge offset vectors, respectively.
  • MVD0 may be set equally as the merge offset vector.
  • MVD1 may be derived based on a pre-set MVD0. For example, when the first and second reference pictures are long-term reference pictures, MVD1 may be derived by applying a first scaling factor to MVD0. The first scaling factor may be determined based on PocDiff0 and PocDiff1. On the other hand, when at least one of the first or second reference pictures is a short-term reference picture, MVD1 may be derived by applying a second scaling factor to MVD0.
  • the second scaling factor may be a fixed value (eg, -1/2, -1, etc.) pre-committed to the encoding/decoding device. However, the second scaling factor can be applied only when the code of PocDiff0 and the code of PocDiff1 are different from each other. If the sign of PocDiff0 and the sign of PocDiff1 are the same, MVD1 is set to be the same as MVD0, and separate scaling may not be performed.
  • MVD1 may be set equally as the merge offset vector.
  • MVD0 may be derived based on a pre-set MVD1.
  • MVD0 may be derived by applying a first scaling factor to MVD1.
  • the first scaling factor may be determined based on PocDiff0 and PocDiff1.
  • MVD0 may be derived by applying a second scaling factor to MVD1.
  • the second scaling factor may be a fixed value (eg, -1/2, -1, etc.) pre-committed to the encoding/decoding device. However, the second scaling factor can be applied only when the code of PocDiff0 and the code of PocDiff1 are different from each other. If the sign of PocDiff0 and the sign of PocDiff1 are the same, MVD0 is set to be the same as MVD1, and separate scaling may not be performed.
  • a motion vector of a current block may be corrected using a motion vector difference value (MVD) (S1530), and motion compensation of a current block may be performed based on the corrected motion vector (S1540).
  • VMD motion vector difference value
  • 16 to 21 are diagrams illustrating a method of determining an inter prediction mode of a current block based on a predetermined priority in an embodiment to which the present invention is applied.
  • the present invention relates to a method and apparatus for parsing encoding information related to a merge mode from a coding block encoded in a skip mode and/or a merge mode among video coding techniques.
  • a current encoding and/or decoding block When a current encoding and/or decoding block is encoded and/or decoded in a skip or merge mode, a plurality of prediction methods may be used, and a method of efficiently signaling a plurality of prediction methods is required.
  • the order of the signaling and parsing syntax may be determined according to an order in which the occurrence frequency is high among a plurality of prediction methods.
  • the plurality of prediction methods include a block unit merge mode, a general CU unit merge mode (regular merge mode or CU merge mode), MMVD (MVD-based merge mode), a subblock unit merge mode, a combined prediction mode, and non- -It may include at least one of a square prediction mode or a current picture reference mode.
  • a general CU unit merge mode regular merge mode or CU merge mode
  • MMVD MVD-based merge mode
  • subblock unit merge mode a combined prediction mode
  • non- -It may include at least one of a square prediction mode or a current picture reference mode.
  • regular_merge_flag may indicate whether a general CU-based merge mode is used to generate an inter prediction parameter of a current block.
  • regular_merge_flag may be set to 0.
  • mmvd_flag[x0][y0] may indicate whether the MVD-based merge mode is used to generate the inter prediction parameter of the current block.
  • mmvd_flag[x0][y0] may be interpreted as having the same meaning as MVD_flag described above.
  • mmvd_flag may be derived based on at least one of regular_merge_flag or whether the current block is a block coded in the current picture reference mode. For example, when the current block is not a block encoded in the current picture reference mode and regular_merge_flag is not 1, mmvd_flag is derived as 1, otherwise, mmvd_flag may be derived as 0.
  • merge_subblock_flag may indicate whether an inter prediction parameter in a subblock unit for the current block is derived from a neighboring block.
  • merge_subblock_flag may be derived based on at least one of sps_ciip_enabled_flag or sps_triangle_enabled_flag.
  • sps_ciip_enabled_flag indicates whether encoding information (e.g., ciip_flag) about the combined prediction mode exists
  • sps_triangle_enabled_flag may indicate whether motion compensation based on non-rectangular partitions can be used.
  • merge_subblock_flag when at least one of sps_ciip_enabled_flag or sps_triangle_enabled_flag is 0, merge_subblock_flag is derived as 1, otherwise, merge_subblock_flag may be derived as 0.
  • ciip_flag may indicate whether the combined prediction mode is applied to the current block.
  • ciip_flag may be derived based on sps_triangle_enabled_flag. For example, when sps_triangle_enabled_flag is 0, ciip_flag may be derived as 1, otherwise, ciip_flag may be derived as 0.
  • merge_triangle_flag may indicate whether motion compensation based on non-rectangular partitions is used for the current block.
  • merge_triangle_flag may be derived based on at least one of sps_triangle_enabled_flag and ciip_flag. For example, when sps_triangle_enabled_flag is 1 and ciip_flag is 0, merge_triangle_flag is derived as 1, otherwise, merge_triangle_flag may be derived as 0.
  • regular_merge_flag may indicate whether a general CU-based merge mode is used to generate an inter prediction parameter of a current block.
  • the regular_merge_flag may be derived in consideration of whether the current block is a block coded in the current picture reference mode. For example, when the current block is a block coded in the current picture reference mode, regular_merge_flag may be derived as 1, otherwise, regular_merge_flag may be derived as 0.
  • regular_merge_flag may indicate whether a general CU-based merge mode is used to generate an inter prediction parameter of a current block.
  • regular_merge_flag may be set to 0.
  • mmvd_flag[x0][y0] may indicate whether the MVD-based merge mode is used to generate the inter prediction parameter of the current block.
  • mmvd_flag[x0][y0] may be interpreted as having the same meaning as MVD_flag described above.
  • mmvd_flag When mmvd_flag is not signaled, mmvd_flag may be derived based on at least one of regular_merge_flag or whether the current block is a block coded in the current picture reference mode. For example, when the current block is not a block encoded in the current picture reference mode and regular_merge_flag is not 1, mmvd_flag is derived as 1, otherwise, mmvd_flag may be derived as 0.
  • mmvd_flag when mmvd_flag is not signaled, mmvd_flag may be derived based on at least one of whether the current block is a block encoded in the current picture reference mode, regular_merge_flag, or the size of the current block. For example, if the current block is not a block encoded in the current picture reference mode, regular_merge_flag is not 1, and the sum of the width and height of the current block is less than or equal to 12, mmvd_flag is derived as 1, otherwise , mmvd_flag may be derived to 0.
  • merge_subblock_flag may indicate whether an inter prediction parameter in a subblock unit for the current block is derived from a neighboring block.
  • merge_subblock_flag may be derived based on at least one of sps_ciip_enabled_flag or sps_triangle_enabled_flag.
  • sps_ciip_enabled_flag indicates whether encoding information (e.g., ciip_flag) about the combined prediction mode exists
  • sps_triangle_enabled_flag may indicate whether motion compensation based on non-rectangular partitions can be used.
  • merge_subblock_flag when at least one of sps_ciip_enabled_flag or sps_triangle_enabled_flag is 0, merge_subblock_flag is derived as 1, otherwise, merge_subblock_flag may be derived as 0.
  • ciip_flag may indicate whether the combined prediction mode is applied to the current block.
  • ciip_flag may be derived based on at least one of sps_triangle_enabled_flag or slice type. For example, if sps_triangle_enabled_flag is 0 or the slice to which the current block belongs is not a B slice, ciip_flag may be derived as 1, otherwise, ciip_flag may be derived as 0.
  • merge_triangle_flag may indicate whether motion compensation based on non-rectangular partitions is used for the current block.
  • merge_triangle_flag may be derived based on at least one of sps_triangle_enabled_flag and ciip_flag. For example, when sps_triangle_enabled_flag is 1 and ciip_flag is 0, merge_triangle_flag is derived as 1, otherwise, merge_triangle_flag may be derived as 0.
  • regular_merge_flag may indicate whether a general CU-based merge mode is used to generate an inter prediction parameter of a current block.
  • the regular_merge_flag may be derived in consideration of whether the current block is a block coded in the current picture reference mode. For example, when the current block is a block coded in the current picture reference mode, regular_merge_flag may be derived as 1, otherwise, regular_merge_flag may be derived as 0.
  • the encoding apparatus may generate a bitstream by encoding at least one of the above-described merge mode-related encoding information according to a predetermined priority.
  • the decoding apparatus may decode the bitstream to obtain encoding information related to a merge mode, and perform inter prediction according to the obtained encoding information.
  • various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof.
  • one or more ASICs Application Specific Integrated Circuits
  • DSPs Digital Signal Processors
  • DSPDs Digital Signal Processing Devices
  • PLDs Programmable Logic Devices
  • FPGAs Field Programmable Gate Arrays
  • general purpose It may be implemented by a processor (general processor), a controller, a microcontroller, a microprocessor, or the like.
  • the scope of the present disclosure is software or machine-executable instructions (e.g., operating systems, applications, firmware, programs, etc.) that allow an operation according to a method of various embodiments to be executed on a device or computer, and such software or It includes a non-transitory computer-readable medium (non-transitory computer-readable medium) which stores instructions and the like and is executable on a device or a computer.
  • a non-transitory computer-readable medium non-transitory computer-readable medium
  • the present invention can be used to encode/decode an image signal.

Landscapes

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

Abstract

An image encoding/decoding method and apparatus according to the present invention may: reconstruct a current picture on the basis of at least one of intra prediction and inter prediction; specify a block boundary, to which a de-blocking filter is applied, in the reconstructed current picture; and apply a de-blocking filter to the block boundary on the basis of a filter type pre-defined in an encoding apparatus.

Description

영상 부호화/복호화 방법 및 장치Video encoding/decoding method and apparatus
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것이다.The present invention relates to a video encoding/decoding method and apparatus.
최근 고해상도, 고화질 비디오에 대한 요구가 증가함에 따라 차세대 비디오 서비스를 위한 고효율 비디오 압축 기술에 대한 필요성이 대두되었다. 이러한 필요성에 기반하여 H.264/AVC, HEVC 비디오 압축 표준을 공동으로 표준화한 ISO/IEC MPEG 과 ITU-T VCEG은 JVET (Joint Video Exploration Team)을 구성하여 2015년 10월부터 새로운 비디오 압축 표준을 제정하기 위한 연구 및 탐색을 진행하였으며, 2018년 4월 새로운 비디오 압축 표준의 CfP (Call for Proposal)에 대한 응답들에 대한 평가와 함께 새로운 비디오 압축 표준화를 시작하였다.Recently, as the demand for high-definition and high-definition video increases, the need for a high-efficiency video compression technology for next-generation video services has emerged. Based on this need, ISO/IEC MPEG and ITU-T VCEG, which jointly standardized H.264/AVC and HEVC video compression standards, formed JVET (Joint Video Exploration Team) to establish a new video compression standard from October 2015. Research and exploration for establishment were conducted, and in April 2018, a new video compression standardization was started with an evaluation of the responses to the CfP (Call for Proposal) of the new video compression standard.
비디오 압축 기술에서 블록 분할 구조는 부호화 및 복호화를 수행하는 단위 및 예측, 변환 등의 부호화 및 복호화 주요 기술이 적용되는 단위를 의미한다. 비디오 압축 기술이 발전함에 따라 부호화 및 복호화를 위한 블록의 크기는 점차 증가하고 있으며, 블록의 분할 형태는 보다 다양한 분할 형태를 지원하고 있다. 또한, 부호화 및 복호화를 위한 단위 뿐만 아니라 블록의 역할에 따라 세분화된 단위를 사용하여 비디오 압축을 수행한다.In a video compression technique, a block splitting structure means a unit that performs encoding and decoding, and a unit to which major encoding and decoding techniques such as prediction and transformation are applied. As video compression technology develops, the size of blocks for encoding and decoding is gradually increasing, and the block division type supports more various division types. In addition, video compression is performed using not only units for encoding and decoding, but also units subdivided according to the role of blocks.
HEVC 표준에서는 쿼드트리 형태의 블록 분할 구조와 예측 및 변환을 위한 역할에 따라 세분화된 단위 블록을 사용하여 비디오 부호화 및 복호화를 수행한다. 쿼드-트리 형태의 블록 분할 구조와 더불어, 쿼드트리와 바이너리-트리를 결합한 형태의 QTBT (QuadTree plus Binary Tree)와 이에 트리플-트리를 결합한 MTT (Multi-Type-Tree) 등의 다양한 형태의 블록 분할 구조들이 비디오 부호화 효율 향상을 위하여 제안되고 있다. 이러한 다양한 블록 크기와 다양한 형태의 블록 분할 구조의 지원을 통하여 하나의 픽쳐는 다수의 블록들로 분할되어 각 블록에 해당하는 부호화 모드, 모션 정보, 화면 내 예측 방향 정보 등의 부호화 유닛 단위 정보가 다양하게 표현됨에 따라 이를 표현하는 비트의 수가 크게 증가하고 있다.In the HEVC standard, video encoding and decoding are performed using unit blocks that are subdivided according to a quadtree-type block splitting structure and a role for prediction and transformation. In addition to the quad-tree type block division structure, various types of block division such as QTBT (QuadTree plus Binary Tree) in the form of combining a quad tree and a binary-tree, and MTT (Multi-Type-Tree) in which a triple-tree is combined. Structures have been proposed to improve video coding efficiency. Through the support of various block sizes and various types of block splitting structures, one picture is divided into a plurality of blocks, and information on each of the coding units such as coding mode, motion information, and intra prediction direction information corresponding to each block is diverse. As the number of bits expressing this is greatly increased.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 복원 픽쳐에 대한 인루프 필터링 방법을 제공한다.An image encoding/decoding method and apparatus according to the present invention provides an in-loop filtering method for a reconstructed picture.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 다수의 인터 예측 모드에 따른 모션 보상 방법을 제공한다.An image encoding/decoding method and apparatus according to the present invention provides a motion compensation method according to a plurality of inter prediction modes.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하고, 상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하며, 부호화/복호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용할 수 있다.An image encoding/decoding method and apparatus according to the present invention restores a current picture based on at least one of intra prediction or inter prediction, specifies a block boundary to which a deblocking filter is applied from the reconstructed current picture, and encodes The deblocking filter may be applied to the specified block boundary based on a filter type pre-defined in the /decoding device.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수일 수 있다.In the image encoding/decoding method and apparatus according to the present invention, the deblocking filter is applied in units of a predetermined MxN sample grid, where M and N may be integers of 4, 8 or more. .
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 부호화/복호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고, 상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함할 수 있다.In the video encoding/decoding method and apparatus according to the present invention, the encoding/decoding apparatus defines a plurality of filter types having different filter lengths, and the plurality of filter types is a long filter and an intermediate filter ( It may include at least one of a middle filter or a short filter.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고, 상기 중간 필터의 필터 길이는 6이며, 상기 숏 필터의 필터 길이는 2 또는 4일 수 있다.In the video encoding/decoding method and apparatus according to the present invention, the filter length of the long filter is 8, 10, 12 or 14, the filter length of the intermediate filter is 6, and the filter length of the short filter is 2 or 4 Can be
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고, 여기서, 상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록일 수 있다.In the image encoding/decoding method and apparatus according to the present invention, the number of pixels to which the deblocking filter is applied in a P block and the number of pixels to which the deblocking filter is applied in a Q block are different from each other, wherein the P The block and the Q block may be adjacent blocks in both directions based on the specified block boundary.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개일 수 있다.In the video encoding/decoding method and apparatus according to the present invention, the number of pixels to which the deblocking filter is applied in the P block may be 3, and the number of pixels to which the deblocking filter is applied in the Q block may be 7 have.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 픽쳐를 복원하는 단계는, 현재 블록의 머지 후보 리스트를 구성하는 단계, 상기 머지 후보 리스트로부터 상기 현재 블록의 모션 정보를 유도하는 단계 및 상기 모션 정보를 기반으로 상기 현재 블록의 모션 보상을 수행하는 단계를 포함할 수 있다.In the video encoding/decoding method and apparatus according to the present invention, the reconstructing of the current picture comprises: constructing a merge candidate list of a current block, deriving motion information of the current block from the merge candidate list, and And performing motion compensation of the current block based on the motion information.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 블록의 모션 보상은 현재 픽쳐 참조 모드에 따른 소정의 참조 영역을 기반으로 수행될 수 있다. In the method and apparatus for encoding/decoding an image according to the present invention, motion compensation of the current block may be performed based on a reference region according to a current picture reference mode.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 유도된 모션 정보 중 모션 벡터는, 머지 모드를 위한 모션 벡터 차이값을 이용하여 보정될 수 있다.In the method and apparatus for encoding/decoding an image according to the present invention, a motion vector among the derived motion information may be corrected by using a motion vector difference value for a merge mode.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 모션 벡터의 보정은, 상기 현재 블록의 크기가 소정의 문턱크기보다 큰 경우에 한하여 수행될 수 있다.In the image encoding/decoding method and apparatus according to the present invention, correction of the motion vector may be performed only when the size of the current block is larger than a predetermined threshold size.
본 발명은 소정의 샘플 그리드의 단위로 인루프 필터를 적용하되, 예측/변환 블록 또는 이들의 서브블록 간의 경계를 고려함으로써 인루프 필터링의 효율을 향상시킬 수 있다.In the present invention, an in-loop filter is applied in a unit of a predetermined sample grid, but the efficiency of in-loop filtering may be improved by considering a boundary between prediction/transform blocks or subblocks thereof.
또한, 본 발명은 상이한 필터 길이를 가진 인루프 필터를 기반으로 블록 경계를 필터링함으로써, 경계 상의 아티팩트(artifact)를 효율적으로 제거할 수 있다.In addition, the present invention filters block boundaries based on in-loop filters having different filter lengths, so that artifacts on the boundary can be efficiently removed.
또한, 본 발명은 다수의 인터 예측 모드를 소정의 우선순위에 따라 적응적으로 이용함으로써 모션 보상의 효율을 향상시킬 수 있다.In addition, according to the present invention, the efficiency of motion compensation may be improved by adaptively using a plurality of inter prediction modes according to a predetermined priority.
또한, 본 발명은 현재 픽쳐 참조 모드에 따른 참조 영역을 적응적으로 이용함으로써, 현재 픽쳐 참조 모드의 부호화 효율을 향상시킬 수 있다.In addition, the present invention can improve the encoding efficiency of the current picture reference mode by adaptively using the reference region according to the current picture reference mode.
또한, 본 발명은 모션 벡터 차이값 기반의 머지 모드를 선택적으로 이용함으로써, 머지 모드를 위한 인터 예측 파라미터의 정확도를 높이고 머지 모드의 부호화 효율을 향상시킬 수 있다.In addition, according to the present invention, by selectively using a merge mode based on a motion vector difference value, accuracy of an inter prediction parameter for a merge mode can be improved and encoding efficiency of the merge mode can be improved.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다. 1 is a block diagram showing an image encoding apparatus according to the present invention.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도이다.2 is a block diagram showing an image decoding apparatus according to the present invention.
도 3은 본 발명이 적용되는 일실시예로서, 디블록킹 필터의 대상 경계와 대상 화소를 도시한 것이다.3 is a diagram illustrating a target boundary and a target pixel of a deblocking filter in an embodiment to which the present invention is applied.
도 4는 본 발명이 적용되는 일실시예로서, 부호화 장치의 필터부(150) 및 복호화 장치의 필터부(240)에서의 디블록킹 필터링 과정을 도시한 것이다.4 illustrates a deblocking filtering process in the filter unit 150 of the encoding apparatus and the filter unit 240 of the decoding apparatus according to an embodiment to which the present invention is applied.
도 5는 하나의 부호화 블록을 다수개의 서브-블록으로 분할하여 예측 및 변환을 수행하는 개념을 도시한 도면이다.5 is a diagram illustrating a concept of performing prediction and transformation by dividing one coding block into a plurality of sub-blocks.
도 6은 하나의 부호화 블록에 대한 서브-블록 분할 예시와 서브-블록 경계 및 디블록킹 필터 그리드의 개념을 도시한 도면이다.6 is a diagram illustrating an example of sub-block division for one coding block and a concept of a sub-block boundary and a deblocking filter grid.
도 7은 P 블록과 Q 블록의 경계에서 현재 필터링되는 화소 및 필터링에 사용되는 참조 화소의 개념을 도시한 도면이다.7 is a diagram illustrating a concept of a pixel currently filtered at a boundary between a P block and a Q block and a reference pixel used for filtering.
도 8은 P 블록과 Q 블록의 경계와 Q 블록 내부 서브-블록 경계에서 현재 필터링되는 화소 및 필터링에 사용되는 참조 화소의 개념을 도시한 도면이다.FIG. 8 is a diagram illustrating a concept of a pixel currently filtered at a boundary between a P block and a Q block and a sub-block boundary within a Q block and a reference pixel used for filtering.
도 9는 현재 픽쳐 참조 모드의 기본 개념을 설명하기 위한 도면이다.9 is a diagram for explaining a basic concept of a current picture reference mode.
도 10은 현재 블록의 위치에 따른 현재 픽쳐 참조 영역의 일 실시예를 도시한 도면이다.10 is a diagram illustrating an embodiment of a current picture reference area according to a location of a current block.
도 11 내지 도 14는 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 일 실시예를 도시한다.11 to 14 illustrate examples of a region including a current block and a search and reference available region of a current picture reference (CPR).
도 15는 본 발명이 적용되는 일실시예로서, 모션 벡터 차이값(MVD) 기반의 머지 모드를 이용한 영상 부호화/복호화 방법을 도시한 것이다.15 illustrates an image encoding/decoding method using a merge mode based on a motion vector difference value (MVD) as an embodiment to which the present invention is applied.
도 16 내지 도 21은 본 발명이 적용되는 일실시예로서, 소정의 우선순위에 기초하여 현재 블록의 인터 예측 모드를 결정하는 방법을 도시한 것이다.16 to 21 are diagrams illustrating a method of determining an inter prediction mode of a current block based on a predetermined priority in an embodiment to which the present invention is applied.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하고, 상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하며, 부호화/복호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용할 수 있다.An image encoding/decoding method and apparatus according to the present invention restores a current picture based on at least one of intra prediction or inter prediction, specifies a block boundary to which a deblocking filter is applied from the reconstructed current picture, and encodes The deblocking filter may be applied to the specified block boundary based on a filter type pre-defined in the /decoding device.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수일 수 있다.In the image encoding/decoding method and apparatus according to the present invention, the deblocking filter is applied in units of a predetermined MxN sample grid, where M and N may be integers of 4, 8 or more. .
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 부호화/복호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고, 상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함할 수 있다.In the video encoding/decoding method and apparatus according to the present invention, the encoding/decoding apparatus defines a plurality of filter types having different filter lengths, and the plurality of filter types is a long filter and an intermediate filter ( It may include at least one of a middle filter or a short filter.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고, 상기 중간 필터의 필터 길이는 6이며, 상기 숏 필터의 필터 길이는 2 또는 4일 수 있다.In the video encoding/decoding method and apparatus according to the present invention, the filter length of the long filter is 8, 10, 12 or 14, the filter length of the intermediate filter is 6, and the filter length of the short filter is 2 or 4 Can be
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고, 여기서, 상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록일 수 있다.In the image encoding/decoding method and apparatus according to the present invention, the number of pixels to which the deblocking filter is applied in a P block and the number of pixels to which the deblocking filter is applied in a Q block are different from each other, wherein the P The block and the Q block may be adjacent blocks in both directions based on the specified block boundary.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개일 수 있다.In the video encoding/decoding method and apparatus according to the present invention, the number of pixels to which the deblocking filter is applied in the P block may be 3, and the number of pixels to which the deblocking filter is applied in the Q block may be 7 have.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 픽쳐를 복원하는 단계는, 현재 블록의 머지 후보 리스트를 구성하는 단계, 상기 머지 후보 리스트로부터 상기 현재 블록의 모션 정보를 유도하는 단계 및 상기 모션 정보를 기반으로 상기 현재 블록의 모션 보상을 수행하는 단계를 포함할 수 있다.In the video encoding/decoding method and apparatus according to the present invention, the reconstructing of the current picture comprises: constructing a merge candidate list of a current block, deriving motion information of the current block from the merge candidate list, and And performing motion compensation of the current block based on the motion information.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 블록의 모션 보상은 현재 픽쳐 참조 모드에 따른 소정의 참조 영역을 기반으로 수행될 수 있다. In the method and apparatus for encoding/decoding an image according to the present invention, motion compensation of the current block may be performed based on a reference region according to a current picture reference mode.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 유도된 모션 정보 중 모션 벡터는, 머지 모드를 위한 모션 벡터 차이값을 이용하여 보정될 수 있다.In the method and apparatus for encoding/decoding an image according to the present invention, a motion vector among the derived motion information may be corrected by using a motion vector difference value for a merge mode.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 모션 벡터의 보정은, 상기 현재 블록의 크기가 소정의 문턱크기보다 큰 경우에 한하여 수행될 수 있다.In the image encoding/decoding method and apparatus according to the present invention, correction of the motion vector may be performed only when the size of the current block is larger than a predetermined threshold size.
하기는 본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시 예를 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings in the present specification so that those of ordinary skill in the art may easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and similar reference numerals are assigned to similar parts throughout the specification.
본 명세서 전체에서 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우 뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.When it is said that a part is'connected' with another part throughout the specification, this includes not only the case that it is directly connected but also the case where it is electrically connected with another element interposed therebetween. In addition, when it is said that a certain part'includes' a certain element throughout the specification, it means that other elements may be further included rather than excluding other elements unless specifically stated to the contrary.
본 명세서 전체에서 사용되는 정도의 용어 ~(하는) 단계 또는 ~의 단계는 ~를 위한 단계를 의미하지 않는다. 또한, 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.As used throughout this specification, the term ~ (to) or the step of does not mean a step for. In addition, terms such as first and second may be used to describe various elements, but the elements should not be limited to the terms. These terms are used only for the purpose of distinguishing one component from another component.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시 예 및 분리된 실시 예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.In addition, components shown in the embodiments of the present invention are independently shown to represent different characteristic functions, and it does not mean that each component is formed of separate hardware or a single software component. That is, each constituent unit is described as being listed as a respective constituent unit for convenience of explanation, and at least two constituent units of each constituent unit are combined to form a single constituent unit, or one constituent unit may be divided into a plurality of constituent units to perform a function. An integrated embodiment and a separate embodiment of each of these components are also included in the scope of the present invention unless departing from the essence of the present invention.
이하 본 명세서에 기재된 본 발명의 다양한 실시 예에서, “~부”, “~기”, “~유닛”, “~모듈”, “~블록” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Hereinafter, in various embodiments of the present invention described herein, terms such as “~ unit”, “~ group”, “~ unit”, “~ module”, “~ block” are used to process at least one function or operation. It means a unit, which can be implemented in hardware or software, or a combination of hardware and software.
또한, 부호화 블록은 현재 부호화 및 복호화가 수행되는 대상 화소들의 집합의 처리 단위를 의미하며, 부호화 블록, 부호화 유닛으로 혼용하여 사용될 수 있다. 또한, 상기 부호화 유닛은 CU(Coding Unit)을 지칭하며, CB(Coding Block)을 포함하여 포괄적으로 지칭할 수 있다.In addition, a coding block refers to a processing unit of a set of target pixels on which encoding and decoding are currently performed, and may be used interchangeably as a coding block and a coding unit. In addition, the coding unit refers to a coding unit (CU) and may be generically referred to including a coding block (CB).
또한, 쿼드트리 분할은 하나의 블록이 사분할 되어 네 개의 독립적인 부호화 유닛으로 분할되는 것을 지칭하며, 바이너리 분할은 하나의 블록이 이분할 되어 두 개의 독립적인 부호화 유닛으로 분할되는 것을 지칭한다. 또한, 터너리 분할은 하나의 블록이 1:2:1 비율로 삼분할 되어 새 개의 독립적인 부호화 유닛으로 분할되는 것을 지칭한다.In addition, quadtree splitting refers to one block being divided into four independent coding units, and binary splitting refers to one block being divided into two independent coding units. In addition, ternary division refers to that one block is divided into three independent coding units in a 1:2:1 ratio.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다. 1 is a block diagram showing an image encoding apparatus according to the present invention.
도 1을 참조하면, 영상 부호화 장치(100)는 픽쳐 분할부(110), 예측부(120, 125), 변환부(130), 양자화부(135), 재정렬부(160), 엔트로피 부호화부(165), 역양자화부(140), 역변환부(145), 필터부(150) 및 메모리(155)를 포함할 수 있다.Referring to FIG. 1, the image encoding apparatus 100 includes a picture splitter 110, a prediction unit 120, 125, a transform unit 130, a quantization unit 135, a rearrangement unit 160, and an entropy encoder ( 165, an inverse quantization unit 140, an inverse transform unit 145, a filter unit 150, and a memory 155 may be included.
픽쳐 분할부(110)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 단위(Prediction Unit: PU)일 수도 있고, 변환 단위(Transform Unit: TU)일 수도 있으며, 부호화 단위(Coding Unit: CU)일 수도 있다. 이하, 본 발명의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.The picture dividing unit 110 may divide the input picture into at least one processing unit. In this case, the processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU). Hereinafter, in an embodiment of the present invention, a coding unit may be used as a unit that performs encoding or a unit that performs decoding.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다. 부호화 단위를 기초로 인트라 예측을 수행하는 예측 단위를 생성시 최소 부호화 단위가 아닌 경우, 복수의 예측 단위 NxN 으로 분할하지 않고 인트라 예측을 수행할 수 있다.The prediction unit may be divided in a shape such as at least one square or rectangle of the same size within one coding unit, or one prediction unit among the prediction units split within one coding unit is another prediction. It may be divided to have a shape and/or size different from the unit. When a prediction unit that performs intra prediction based on a coding unit is not a minimum coding unit, intra prediction may be performed without dividing into a plurality of prediction units NxN.
예측부(120, 125)는 인터 예측 또는 화면 간 예측을 수행하는 인터 예측부(120)와 인트라 예측 또는 화면 내 예측을 수행하는 인트라 예측부(125)를 포함할 수 있다. 예측 단위에 대해 인터 예측을 사용할 것인지 또는 인트라 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 인트라 예측 모드, 모션 벡터, 참조 픽쳐 등)를 결정할 수 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(130)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 모션 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(165)에서 부호화되어 복호화기에 전달될 수 있다. 단, 본 발명에 따른 디코더 측면의 모션 정보 유도 기법이 적용되는 경우에는, 상기 예측 모드 정보, 모션 벡터 정보 등을 부호화기에서는 생성하지 않으므로, 해당 정보가 복호화기에도 전달되지 않게 된다. 반면, 모션 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 상기 모션 정보 유도에 사용된 기법에 대한 정보를 상기 부호화기에서 시그널링(signaling)하여 전송하는 것이 가능하다. The prediction units 120 and 125 may include an inter prediction unit 120 that performs inter prediction or inter prediction, and an intra prediction unit 125 that performs intra prediction or intra prediction. It is possible to determine whether to use inter prediction or to perform intra prediction for the prediction unit, and determine specific information (eg, intra prediction mode, motion vector, reference picture, etc.) according to each prediction method. A residual value (residual block) between the generated prediction block and the original block may be input to the transform unit 130. In addition, prediction mode information, motion vector information, etc. used for prediction may be encoded by the entropy encoder 165 together with a residual value and transmitted to a decoder. However, when the motion information derivation technique from the side of the decoder according to the present invention is applied, since the encoder does not generate the prediction mode information and motion vector information, the corresponding information is not transmitted to the decoder. On the other hand, it is possible for the encoder to signal and transmit information indicating that motion information is derived and used from the side of the decoder and information on a technique used for inducing the motion information.
인터 예측부(120)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 단위를 예측할 수도 있고, 경우에 따라서는 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로 예측 단위를 예측할 수도 있다. 인터 예측 모드로서, 머지(Merge) 모드, AMVP(Advanced Motion Vector Prediction) 모드, 어파인(Affine) 모드, 현재 픽쳐 참조 (current picture referencing) 모드, 결합 예측 모드 등 다양한 방법이 사용될 수 있다. 머지 모드는, 공간적/시간적 머지 후보 중 적어도 하나의 모션 벡터를 현재 블록의 모션 벡터로 설정하고, 이를 이용하여 인터 예측을 수행할 수 있다. 다만, 머지 모드의 경우에도, 기-설정된 모션 벡터에 추가적인 모션 벡터 차이값(MVD)를 가산하여 기-설정된 모션 벡터를 보정할 수 있다. 이때, 보정된 모션 벡터가 현재 블록의 최종 모션 벡터로 이용될 수 있으며, 이에 대해서는 도 15를 참조하여 자세히 살펴 보기로 한다. 어파인 모드는, 현재 블록의 소정의 서브-블록 단위로 분할하고, 각 서브-블록 단위로 유도된 모션 벡터를 이용하여 인터 예측을 수행하는 방법이다. 여기서, 서브-블록 단위는 NxM으로 표현되며, N과 M은 각각 4, 8, 16 또는 그 이상의 정수일 수 있다. 서브-블록의 형태는 정방형 또는 비정방형일 수 있다. 서브-블록 단위는 부호화 장치에 기-약속된 고정된 것이거나, 현재 블록의 크기/형태, 성분 타입 등을 고려하여 가변적으로 결정될 수도 있다. 현재 픽쳐 참조 모드는 현재 블록이 속한 현재 픽쳐 내의 기-복원된 영역 및 소정의 블록 벡터(block vector)를 이용하는 인터 예측 방법이며, 이에 대해서는 도 9 내지 도 14를 참조하여 자세히 살펴 보기로 한다. 결합 예측 모드는, 하나의 현재 블록에 대해서 인터 예측을 통한 제1 예측 블록과 인트라 예측을 통한 제2 예측 블록을 각각 생성하고, 제1 및 제2 예측 블록에 소정의 가중치를 적용하여 현재 블록의 최종 예측 블록을 생성하는 방법이다. 여기서, 인터 예측은 전술한 인터 예측 모드 중 어느 하나를 이용하여 수행될 수 있다. 상기 인트라 예측은 부호화 장치에 기-설정된 인트라 예측 모드(예를 들어, 플래너 모드, DC 모드, 수직/수평 모드, 대각선 모드 중 어느 하나)만을 고정적으로 이용하여 수행될 수 있다. 또는, 상기 인트라 예측을 위한 인트라 예측 모드는, 현재 블록에 인접한 주변 블록(예를 들어, 좌측, 상단, 좌상단, 우상단, 우하단 중 적어도 하나)의 인트라 예측 모드를 기반으로 유도될 수도 있다. 이때, 이용되는 주변 블록의 개수는 1개 또는 2개로 고정되거나, 3개 이상일 수도 있다. 전술한 주변 블록이 모두 가용한 경우라도, 좌측 주변 블록 또는 상단 주변 블록 중 어느 하나만이 이용되도록 제한되거나, 좌측 및 상단 주변 블록만이 이용되도록 제한될 수도 있다. 상기 가중치는, 전술한 주변 블록이 인트라 모드로 부호화된 블록인지 여부를 고려하여 결정될 수 있다. 제1 예측 블록에 가중치 w1가 적용되고, 제2 예측 블록에 가중치 w2가 적용됨을 가정한다. 이때, 좌측/상단 주변 블록 모두 인트라 모드로 부호화된 블록인 경우, w1는 w2보다 작은 자연수일 수 있다. 예를 들어, w1과 w2의 비(raito)는 [1:3]일 수 있다. 좌측/상단 주변 블록 모두 인트라 모드로 부호화된 블록이 아닌 경우, w1는 w2보다 큰 자연수일 수 있다. 예를 들어, w1과 w2의 비(raito)는 [3:1]일 수 있다. 좌측/상단 주변 블록 중 어느 하나만이 인트라 모드로 부호화된 블록인 경우, w1는 w2와 동일하게 설정될 수 있다.The inter prediction unit 120 may predict a prediction unit based on information of at least one picture of a previous picture or a subsequent picture of the current picture. In some cases, the prediction unit may be predicted based on information of a partial region in the current picture that has been encoded. You can also predict the unit. As the inter prediction mode, various methods such as a merge mode, an advanced motion vector prediction (AMVP) mode, an affine mode, a current picture referencing mode, and a combined prediction mode may be used. In the merge mode, at least one motion vector among spatial/temporal merge candidates may be set as a motion vector of a current block, and inter prediction may be performed using the motion vector. However, even in the merge mode, the pre-set motion vector may be corrected by adding an additional motion vector difference value (MVD) to the pre-set motion vector. In this case, the corrected motion vector may be used as the final motion vector of the current block, which will be described in detail with reference to FIG. 15. The afine mode is a method of dividing a current block into a predetermined sub-block unit and performing inter prediction using a motion vector derived in each sub-block unit. Here, the sub-block unit is represented by NxM, and N and M may be integers of 4, 8, 16 or more, respectively. The shape of the sub-block may be square or non-square. The sub-block unit may be a fixed one pre-committed to the encoding apparatus, or may be variably determined in consideration of the size/shape of the current block, and the component type. The current picture reference mode is an inter prediction method using a pre-restored region in the current picture to which the current block belongs and a predetermined block vector, which will be described in detail with reference to FIGS. 9 to 14. In the combined prediction mode, a first prediction block through inter prediction and a second prediction block through intra prediction are generated for one current block, respectively, and a predetermined weight is applied to the first and second prediction blocks. This is a method of generating the final prediction block. Here, inter prediction may be performed using any one of the aforementioned inter prediction modes. The intra prediction may be performed by fixedly using only an intra prediction mode (eg, any one of a planar mode, a DC mode, a vertical/horizontal mode, and a diagonal mode) pre-set in the encoding apparatus. Alternatively, the intra prediction mode for intra prediction may be derived based on an intra prediction mode of a neighboring block (eg, at least one of left, upper, upper left, upper right, and lower right) adjacent to the current block. In this case, the number of neighboring blocks used may be fixed to one or two, or may be three or more. Even if all of the aforementioned neighboring blocks are available, only one of the left neighboring blocks or the upper neighboring blocks may be limited to be used, or only the left and upper neighboring blocks may be restricted. The weight may be determined in consideration of whether the aforementioned neighboring block is a block encoded in an intra mode. It is assumed that the weight w1 is applied to the first prediction block and the weight w2 is applied to the second prediction block. In this case, when both the left and upper neighboring blocks are blocks encoded in the intra mode, w1 may be a natural number smaller than w2. For example, the ratio of w1 and w2 (raito) may be [1:3]. When neither of the left/top neighboring blocks is an intra mode coded block, w1 may be a natural number greater than w2. For example, the ratio of w1 and w2 (raito) may be [3:1]. When only one of the left/top neighboring blocks is a block encoded in the intra mode, w1 may be set equal to w2.
인터 예측부(120)는 참조 픽쳐 보간부, 모션 예측부, 모션 보상부를 포함할 수 있다.The inter prediction unit 120 may include a reference picture interpolation unit, a motion prediction unit, and a motion compensation unit.
참조 픽쳐 보간부에서는 메모리(155)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.The reference picture interpolation unit may receive reference picture information from the memory 155 and generate pixel information of an integer number of pixels or less from the reference picture. In the case of a luminance pixel, a DCT-based interpolation filter with different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/4 pixels. In the case of a color difference signal, a DCT-based interpolation filter with different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/8 pixels.
모션 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 모션 예측을 수행할 수 있다. 모션 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 모션 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 모션 벡터값을 가질 수 있다. 모션 예측부에서는 모션 예측 방법을 다르게 하여 현재 예측 단위를 예측할 수 있다. The motion prediction unit may perform motion prediction based on the reference picture interpolated by the reference picture interpolation unit. Various methods, such as a full search-based block matching algorithm (FBMA), three step search (TSS), and a new three-step search algorithm (NTS), can be used as a method for calculating a motion vector. The motion vector may have a motion vector value in units of 1/2 or 1/4 pixels based on the interpolated pixels. The motion prediction unit may predict the current prediction unit by differently predicting the motion.
인트라 예측부(125)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 단위를 생성할 수 있다. 현재 예측 단위의 주변 블록이 인터 예측을 수행한 블록이어서, 참조 픽셀이 인터 예측을 수행한 픽셀일 경우, 인터 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 인트라 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.The intra predictor 125 may generate a prediction unit based on reference pixel information around a current block, which is pixel information in the current picture. When 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 included in the block that has performed inter prediction is a reference pixel of the block that has performed intra prediction Can be used in place of information. That is, when the reference pixel is not available, information on the reference pixel that is not available may be replaced with at least one reference pixel among the available reference pixels.
또한, 예측부(120, 125)에서 생성된 예측 단위를 기초로 예측을 수행한 예측 단위와 예측 단위의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력될 수 있다. In addition, a residual block including a prediction unit that performs prediction based on a prediction unit generated by the prediction units 120 and 125 and residual information that is a difference value from the original block of the prediction unit may be generated. The generated residual block may be input to the transform unit 130.
변환부(130)에서는 원본 블록과 예측부(120, 125)를 통해 생성된 예측 단위의 잔차값(residual)정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지, DST를 적용할지 또는 KLT를 적용할지는 잔차 블록을 생성하기 위해 사용된 예측 단위의 인트라 예측 모드 정보를 기초로 결정할 수 있다. In the transform unit 130, the original block and the residual block including residual information of the prediction unit generated through the prediction units 120 and 125 are converted to DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), and KLT. You can convert it 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 a prediction unit used to generate the residual block.
양자화부(135)는 변환부(130)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(135)에서 산출된 값은 역양자화부(140)와 재정렬부(160)에 제공될 수 있다.The quantization unit 135 may quantize values converted into the frequency domain by the transform unit 130. Quantization coefficients may vary 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 rearrangement unit 160.
재정렬부(160)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.The rearrangement unit 160 may rearrange coefficient values on the quantized residual values.
재정렬부(160)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(160)에서는 지그-재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔 대신 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.The rearrangement unit 160 may change the two-dimensional block shape coefficients into a one-dimensional vector shape through a coefficient scanning method. For example, the rearrangement unit 160 may scan from a DC coefficient to a coefficient in a high frequency region using a Zig-Zag Scan method, and change it into a one-dimensional vector form. Depending on the size of the transform unit and the intra prediction mode, instead of zig-zag scan, a vertical scan that scans two-dimensional block shape coefficients in a column direction and a horizontal scan that scans two-dimensional block shape coefficients in a row direction may be used. That is, according to the size of the transformation unit and the intra prediction mode, it is possible to determine which scan method is to be used among zig-zag scan, vertical direction scan, and horizontal direction scan.
엔트로피 부호화부(165)는 재정렬부(160)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다. 관련하여, 엔트로피 부호화부(165)는 재정렬부(160) 및 예측부(120, 125)로부터 부호화 단위의 잔차값 계수 정보를 부호화 할 수 있다. 또한, 본 발명에 따라 모션 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 모션 정보 유도에 사용된 기법에 대한 정보를 시그널링(signaling)하여 전송하는 것이 가능하다. The entropy encoding unit 165 may perform entropy encoding based on values calculated by the rearrangement unit 160. Entropy coding may use various coding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC). In relation to this, the entropy encoder 165 may encode residual value coefficient information of a coding unit from the rearrangement unit 160 and the prediction units 120 and 125. In addition, according to the present invention, it is possible to signal and transmit information indicating that motion information is derived from the side of the decoder and used, and information on a technique used to induce motion information.
역양자화부(140) 및 역변환부(145)에서는 양자화부(135)에서 양자화된 값들을 역양자화하고 변환부(130)에서 변환된 값들을 역변환한다. 역양자화부(140) 및 역변환부(145)에서 생성된 잔차값(Residual)은 예측부(120, 125)에 포함된 모션 추정부, 모션 보상부 및 인트라 예측부를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다. The inverse quantization unit 140 and the inverse transform unit 145 inverse quantize values quantized by the quantization unit 135 and inverse transform the values transformed by the transform unit 130. The residual value generated by the inverse quantization unit 140 and the inverse transform unit 145 is reconstructed by being combined with the prediction units predicted through the motion estimation unit, motion compensation unit, and intra prediction unit included in the prediction units 120 and 125 Blocks (Reconstructed Block) can be created.
필터부(150)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있으며, 이에 대해서는 도 3 내지 도 8을 참조하여 살펴보기로 한다. 오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다. ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. 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 can remove block distortion caused by the boundary between blocks in the reconstructed picture, which will be described with reference to FIGS. 3 to 8. The offset correction unit may correct an offset from the original image for the deblocking image in pixel units. In order to perform offset correction for a specific picture, the pixels included in the image are divided into a certain number of areas, and then the area to be offset is determined and the offset is applied to the area, or offset by considering the edge information of each pixel. You can use the method of applying. Adaptive Loop Filtering (ALF) may be performed based on a value obtained by comparing the filtered reconstructed image and the original image. After dividing the pixels included in the image into predetermined groups, one filter to be applied to the corresponding group may be determined, and filtering may be performed differentially for each group.
메모리(155)는 필터부(150)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 인터 예측을 수행 시 예측부(120, 125)에 제공될 수 있다.The memory 155 may store the reconstructed block or picture calculated through the filter unit 150, and the stored reconstructed block or picture may be provided to the prediction units 120 and 125 when performing inter prediction.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도이다. 2 is a block diagram showing an image decoding apparatus according to the present invention.
도 2를 참조하면, 영상 복호화기(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230, 235), 필터부(240), 메모리(245)가 포함될 수 있다.2, the image decoder 200 includes an entropy decoding unit 210, a rearrangement unit 215, an inverse quantization unit 220, an inverse transform unit 225, prediction units 230 and 235, and a filter unit ( 240) and a memory 245 may be included.
영상 부호화기에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화기와 반대의 절차로 복호화될 수 있다.When an image bitstream is input from the image encoder, the input bitstream may be decoded in a procedure opposite to that of the image encoder.
엔트로피 복호화부(210)는 영상 부호화기의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다. The entropy decoding unit 210 may perform entropy decoding in a procedure opposite to that performed by the entropy encoding unit 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 in response to the method performed by the image encoder.
엔트로피 복호화부(210)에서는 부호화기에서 수행된 인트라 예측 및 인터 예측에 관련된 정보를 복호화할 수 있다.The entropy decoder 210 may decode information related to intra prediction and inter prediction performed by the encoder.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. The rearrangement unit 215 may perform rearrangement based on a method in which the bitstream entropy-decoded by the entropy decoder 210 is rearranged by the encoder. The coefficients expressed in the form of a one-dimensional vector may be reconstructed into coefficients in the form of a two-dimensional block and rearranged.
역양자화부(220)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다. The inverse quantization unit 220 may perform inverse quantization based on a quantization parameter provided by an encoder and a coefficient value of a rearranged block.
역변환부(225)는 영상 부호화기에서 수행한 양자화 결과에 대해 변환부에서 수행한 변환 즉, DCT, DST, 및 KLT에 대해 역변환 즉, 역 DCT, 역 DST 및 역 KLT를 수행할 수 있다. 역변환은 영상 부호화기에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 복호화기의 역변환부(225)에서는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 변환 기법(예를 들어, DCT, DST, KLT)이 선택적으로 수행될 수 있다.The inverse transform unit 225 may perform an inverse transform, that is, an inverse DCT, an inverse DST, and an inverse KLT, for transforms, that is, DCT, DST, and KLT, performed by the transform unit on the quantization result performed by the image encoder. The inverse transformation may be performed based on a transmission unit determined by an image encoder. The inverse transform unit 225 of the image decoder may selectively perform a transformation technique (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.
예측부(230, 235)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(245)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다. The prediction units 230 and 235 may generate a prediction block based on information related to generation of a prediction block provided from the entropy decoder 210 and information on a previously decoded block or picture provided from the memory 245.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 인트라 예측 또는 화면 내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 인트라 예측을 수행하지만, 인트라 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 인트라 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 NxN 분할을 사용하는 인트라 예측을 사용할 수도 있다.As described above, when intra prediction or intra prediction is performed in the same manner as the operation of the image encoder, when the size of the prediction unit and the size of the transformation unit are the same, a pixel existing on the left side of the prediction unit and a pixel existing on the top left side , Intra prediction for the prediction unit is performed based on the pixel present at the top, but when the size of the prediction unit and the size of the transformation unit are different when performing intra prediction, the intra prediction is performed using a reference pixel based on the transformation unit. You can make predictions. In addition, intra prediction using NxN splitting for only the smallest coding unit may be used.
예측부(230, 235)는 예측 단위 판별부, 인터 예측부 및 인트라 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 모션 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 반면, 만약 부호화기(100)에서 상기 인터 예측을 위한 모션 예측 관련 정보를 전송하지 않고, 대신 모션 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 모션 정보 유도에 사용된 기법에 대한 정보를 전송하는 경우에는, 상기 예측 단위 판별부는 부호화기(100)로부터 전송된 정보를 기초로 하여, 인터 예측부(23)의 예측 수행을 판별하게 된다.The prediction units 230 and 235 may include a prediction unit determining unit, an inter prediction unit, and an intra prediction unit. The prediction unit discrimination unit receives various information such as prediction unit information input from the entropy decoder 210, prediction mode information of the intra prediction method, motion prediction related information of the inter prediction method, and divides the prediction unit from the current coding unit, and predicts It can be determined whether the unit performs inter prediction or intra prediction. On the other hand, if the encoder 100 does not transmit motion prediction-related information for the inter prediction, instead, information indicating that motion information is derived from the side of the decoder and used, and information about a technique used for deriving motion information are transmitted. In this case, the prediction unit determination unit determines the prediction performance of the inter prediction unit 23 based on the information transmitted from the encoder 100.
인터 예측부(230)는 영상 부호화기에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 인터 예측을 수행할 수 있다. 인터 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 인터 예측 모드를 결정할 수 있다. 인터 예측 모드와 관련하여, 전술한 머지 모드, AMVP 모드, 어파인 모드, 현재 픽쳐 참조 모드, 결합 예측 모드 등이 복호화 장치에서도 동일하게 이용될 수 있으며, 여기서 자세한 설명은 생략하기로 한다. 인터 예측부(230)는, 소정의 우선순위를 가지고, 현재 예측 단위의 인터 예측 모드를 결정할 수 있으며, 이에 대해서는 도 16 내지 도 18을 참조하여 살펴 보기로 한다.The inter prediction unit 230 uses information necessary for inter prediction of the current prediction unit provided by the video encoder to predict the current based on information included in at least one picture of a previous picture or a subsequent picture of the current picture including the current prediction unit. Inter prediction for a unit can be performed. To perform inter prediction, an inter prediction mode of a prediction unit included in a corresponding coding unit may be determined based on a coding unit. Regarding the inter prediction mode, the above-described merge mode, AMVP mode, affine mode, current picture reference mode, combined prediction mode, and the like may be used in the same manner in the decoding apparatus, and a detailed description thereof will be omitted. The inter prediction unit 230 may determine the inter prediction mode of the current prediction unit with a predetermined priority, which will be described with reference to FIGS. 16 to 18.
인트라 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 인트라 예측을 수행한 예측 단위인 경우, 영상 부호화기에서 제공된 예측 단위의 인트라 예측 모드 정보를 기초로 인트라 예측을 수행할 수 있다. 인트라 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.The intra prediction unit 235 may generate a prediction block based on pixel information in the current picture. When the prediction unit is a prediction unit that has performed intra prediction, intra prediction may be performed based on intra prediction mode information of a prediction unit provided from an image encoder. The intra prediction unit 235 may include an AIS (Adaptive Intra Smoothing) filter, a reference pixel interpolation unit, and a DC filter. The AIS filter is a part that performs filtering on a reference pixel of the current block, and may determine whether to apply the filter according to the prediction mode of the current prediction unit and apply it. AIS filtering may be performed on a reference pixel of a current block by using the prediction mode and AIS filter information of the prediction unit provided by the image encoder. When the prediction mode of the current block is a mode in which AIS filtering is not performed, the AIS filter may not be applied.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.When the prediction mode of the prediction unit is a prediction unit that performs intra prediction based on a pixel value obtained by interpolating a reference pixel, the reference pixel interpolator may interpolate the reference pixel to generate a reference pixel of a pixel unit having an integer value or less. When the prediction mode of the current prediction unit is a prediction mode that generates a prediction block without interpolating a reference pixel, the reference pixel may not be interpolated. The DC filter may generate a prediction block through filtering when the prediction mode of the current block is the DC mode.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.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.
영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고, 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있으며, 이에 대해서는 도 3 내지 도 8을 참조하여 살펴보기로 한다.In the deblocking filter of the image decoder, information related to the deblocking filter provided from the image encoder is provided, and the image decoder may perform deblocking filtering on the corresponding block. This will be described with reference to FIGS. 3 to 8. To
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다. ALF는 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.The offset correction unit may perform offset correction on the reconstructed image based on the type of offset correction applied to the image during encoding and information on the offset value. The ALF may be applied to a coding unit based on information on whether to apply ALF and information on ALF coefficients provided from the encoder. Such ALF information may be included in a specific parameter set and provided.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.The memory 245 can store the reconstructed picture or block so that it can be used as a reference picture or a reference block, and can provide the reconstructed picture to an output unit.
도 3은 본 발명이 적용되는 일실시예로서, 디블록킹 필터의 대상 경계와 대상 화소를 도시한 것이다.3 is a diagram illustrating a target boundary and a target pixel of a deblocking filter in an embodiment to which the present invention is applied.
도 3은 서로 다른 두 블록 (P 블록, Q 블록) 사이의 블록 경계(320, 321)를 도시한 도면으로 해당 블록 경계는 수직 방향의 경계와 수평 방향의 경계로 분류할 수 있다.3 is a diagram illustrating block boundaries 320 and 321 between two different blocks (P block and Q block), and the corresponding block boundaries can be classified into a vertical boundary and a horizontal boundary.
도 3에서 Q 블록 영역은 현재 부호화 및/또는 복호화가 수행되는 현재 대상 블록의 영역을 의미하고, P 블록 영역은 복원이 완료된 기 복원 블록으로 Q 블록과 공간적으로 인접한 블록을 의미한다. P 블록과 Q 블록은 기-복원된 블록이며, Q 블록은 현재 디블록킹 필터링이 수행되는 영역을 의미하고, P 블록은 Q 블록에 공간적으로 인접한 블록을 의미할 수 있다.In FIG. 3, a Q block region refers to a region of a current target block on which encoding and/or decoding is currently performed, and a P block region refers to a block spatially adjacent to a Q block as a reconstructed block. The P block and the Q block are pre-restored blocks, the Q block refers to a region in which deblocking filtering is currently performed, and the P block may refer to a block spatially adjacent to the Q block.
도 3에서는 디블록킹 필터가 적용되는 P 블록 영역과 Q 블록 영역을 개념적으로 도시한 도면으로, 디블록킹 필터가 적용되는 P 블록과 Q 블록의 경계에 위치하는 화소들의 일 실시예를 나타낸 것이다. 따라서, 본 발명에서 제안하는 디블록킹 필터가 적용되는 화소의 수(이하, 대상 화소의 수)와 디블록킹 필터의 탭수는 도 3에 국한되지 않으며, P 블록과 Q 블록의 경계를 기준으로 P 블록과 Q 블록 각각에 대한 대상 화소의 수는 1, 2, 3, 4, 5, 6, 7 또는 그 이상일 수 있다. P 블록의 대상 화소의 수는 Q 블록의 대상 화소의 수와 서로 동일할 수도 있고, 서로 상이할 수 있다. 예를 들어, P 블록의 대상 화소의 수는 5이고, Q 블록의 대상 화소의 수는 5일 수 있다. 또는, P 블록의 대상 화소의 수는 7이고, Q 블록의 대상 화소의 수는 7일 수 있다. 또는, P 블록의 대상 화소의 수는 3이고, Q 블록의 대상 화소의 수는 7일 수 있다.FIG. 3 conceptually shows a P block region and a Q block region to which a deblocking filter is applied, and illustrates an embodiment of pixels positioned at a boundary between a P block and a Q block to which the deblocking filter is applied. Accordingly, the number of pixels to which the deblocking filter proposed in the present invention is applied (hereinafter, the number of target pixels) and the number of taps of the deblocking filter are not limited to FIG. 3, and the P block is based on the boundary between the P block and the Q block. The number of target pixels for each of the and Q blocks may be 1, 2, 3, 4, 5, 6, 7 or more. The number of target pixels of the P block may be the same as or different from the number of target pixels of the Q block. For example, the number of target pixels of the P block may be 5, and the number of target pixels of the Q block may be 5. Alternatively, the number of target pixels of the P block may be 7 and the number of target pixels of the Q block may be 7. Alternatively, the number of target pixels of the P block may be 3, and the number of target pixels of the Q block may be 7.
도 3에서는 P 블록과 Q 블록의 대상 화소의 수가 각각 3인 경우를 일 실시예로 설명한다.In FIG. 3, a case where the number of target pixels of the P block and the Q block is 3, respectively, is described as an embodiment.
도 3에서 도시된 수직방향 경계에 대한 일 실시예 중, Q 블록(300) 영역의 첫번째 행(330)을 대상으로 디블록킹 필터가 적용되는 일 예를 도시한다.In one embodiment of the vertical boundary illustrated in FIG. 3, an example in which a deblocking filter is applied to the first row 330 of the Q block 300 region is illustrated.
첫번째 행에 속하는 4개의 화소(q0, q1, q2, q3) 중 수직방향 경계에 인접한 3개의 화소(q0, q1, q2)는 디블록킹 필터링이 수행되는 대상 화소이다.Among the four pixels (q0, q1, q2, q3) belonging to the first row, three pixels (q0, q1, q2) adjacent to the vertical boundary are target pixels on which deblocking filtering is performed.
또한, 도 3에서 도시된 수평방향 경계에 대한 일 실시예 중, Q 블록(301) 영역의 첫번째 열(331)을 대상으로 디블록킹 필터가 적용되는 일 예에서도 마찬가지로 첫번째 열에 속하는 4개의 화소(q0, q1, q2, q3) 중 수평방향 경계에 인접한 3개의 화소(q0, q1, q2)는 디블록킹 필터링이 수행되는 대상 화소이다.In addition, in an example in which the deblocking filter is applied to the first column 331 of the Q block 301 region among the exemplary embodiments of the horizontal boundary illustrated in FIG. 3, four pixels (q0) belonging to the first column are similarly applied. , q1, q2, and q3), three pixels (q0, q1, and q2) adjacent to the horizontal boundary are target pixels on which deblocking filtering is performed.
단, 상기 해당 화소들에 디블록킹 필터를 수행함에 있어 디블록킹 필터링이 수행되는 대상 화소가 아닌 상기 첫번째 행 또는 열에 속한 다른 화소값(예를 들어, q3)의 화소값을 참조하여 필터링을 수행할 수 있다. 또는, 상기 첫번째 행 또는 열의 이웃 행 또는 열의 화소값을 참조하여 필터링이 수행될 수도 있다. 여기서, 이웃 행 또는 열은, 현재 대상 블록에 속한 것일 수도 있고, 현재 대상 블록에 공간적으로 인접한 블록(예를 들어, 좌/우측, 상/하단)에 속한 것일 수도 있다. 공간적 인접 블록의 위치는, 상기 필터링 방향(혹은 경계 방향)을 고려하여 적응적으로 결정될 수 있다. 상기 참조를 통해, 필터링의 수행 여부, 필터링의 강도, 필터 계수, 필터 계수의 개수, 필터링 방향 등이 적응적으로 결정될 수 있다. 전술한 실시예는 후술하는 실시예에서도 동일/유사하게 적용될 수 있다.However, in performing the deblocking filter on the corresponding pixels, filtering is performed by referring to a pixel value of another pixel value (for example, q3) belonging to the first row or column other than the target pixel on which the deblocking filtering is performed. I can. Alternatively, filtering may be performed by referring to pixel values of a neighboring row or column of the first row or column. Here, the neighboring row or column may belong to a current target block or may belong to a block spatially adjacent to the current target block (eg, left/right, top/bottom). The location of the spatially adjacent blocks may be adaptively determined in consideration of the filtering direction (or boundary direction). Through the reference, whether or not to perform filtering, filtering strength, filter coefficients, number of filter coefficients, filtering direction, etc. may be adaptively determined. The above-described embodiment can be applied in the same/similar manner to the embodiments described later.
도 3에서는 Q 블록 영역에 디블록킹 필터가 적용되는 일 예를 도시함에 있어, 첫번째 행(330)과 첫번째 열(331)을 대표적으로 도시한 것으로서, 첫번째 행을 포함하여 Q 블록 영역에 속하는 후속 행 (두번째 행, 세번째 행, 등) 및 첫번째 열을 포함하여 Q 블록 영역에 속하는 후속 열 (두번째 열, 세번째 열, 등)에도 동일하게 디블록킹 필터가 수행된다.3 illustrates an example in which the deblocking filter is applied to the Q block region, as representative of the first row 330 and the first column 331, including the first row and subsequent rows belonging to the Q block region The deblocking filter is similarly performed on subsequent columns (second column, third column, etc.) belonging to the Q block area including (second row, third row, etc.) and first column.
도 3에서 P 블록 영역은 현재 부호화 및/또는 복호화가 수행되는 현재 대상 블록의 수직방향 경계 혹은 수평방향 경계에 공간적으로 인접한 블록 영역을 의미하고, 도 3에서 도시된 수직 방향 경계에 대한 일 실시 예 중, P 블록(310) 영역의 첫번째 행(330)을 대상으로 디블록킹 필터가 적용되는 일예를 도시한다.In FIG. 3, the P block region refers to a block region spatially adjacent to a vertical boundary or a horizontal boundary of a current target block on which encoding and/or decoding is currently performed, and an embodiment of the vertical boundary shown in FIG. In the middle, an example in which the deblocking filter is applied to the first row 330 of the P block 310 is shown.
첫번째 행에 속하는 4개의 화소(p0, p1, p2, p3) 중 수직방향 경계에 인접한 3개의 화소(p0, p1, p2)는 디블록킹 필터링이 수행되는 대상 화소이다.Among the four pixels p0, p1, p2, and p3 belonging to the first row, three pixels p0, p1, and p2 adjacent to the vertical boundary are target pixels on which deblocking filtering is performed.
또한, 도 3에서 도시된 수평방향 경계에 대한 일 실시예 중, P 블록(311) 영역의 첫번째 열(331)을 대상으로 디블록킹 필터가 적용되는 일 예에서도 마찬가지로 첫번째 열에 속하는 4개의 화소(p0, p1, p2, p3) 중 수평방향 경계에 인접한 3개의 화소(p0, p1, p2)는 디블록킹 필터링이 수행되는 대상 화소이다.In addition, in an example in which the deblocking filter is applied to the first column 331 of the P block 311 region in the embodiment of the horizontal boundary illustrated in FIG. 3, four pixels belonging to the first column (p0 , p1, p2, p3), three pixels p0, p1, and p2 adjacent to the horizontal boundary are target pixels on which deblocking filtering is performed.
단, 상기 해당 화소들에 디블록킹 필터를 수행함에 있어 디블록킹 필터링이 수행되는 대상 화소가 아닌 p3의 화소값을 참조하여 필터링을 수행할 수 있다.However, in performing the deblocking filter on the corresponding pixels, filtering may be performed by referring to a pixel value of p3, not a target pixel on which deblocking filtering is performed.
도 3에서는 P 블록 영역에 디블록킹 필터가 적용되는 일 예를 도시함에 있어, 첫번째 행(330)과 첫번째 열(331)을 대표적으로 도시한 것으로서, 첫번째 행을 포함하여 P 블록 영역에 속하는 후속 행 (두번째 행, 세번째 행, 등) 및 첫번째 열을 포함하여 P 블록 영역에 속하는 후속 열 (두번째 열, 세번째 열, 등)에도 동일하게 디블록킹 필터가 수행된다.FIG. 3 shows an example in which the deblocking filter is applied to the P block region. The first row 330 and the first column 331 are representatively illustrated, and subsequent rows belonging to the P block region including the first row The deblocking filter is similarly performed on subsequent columns (second column, third column, etc.) belonging to the P block region including (second row, third row, etc.) and first column.
도 4는 본 발명이 적용되는 일실시예로서, 부호화 장치의 필터부(150) 및 복호화 장치의 필터부(240)에서의 디블록킹 필터링 과정을 도시한 것이다.4 illustrates a deblocking filtering process in the filter unit 150 of the encoding apparatus and the filter unit 240 of the decoding apparatus according to an embodiment to which the present invention is applied.
도 4를 참조하면, 복원된 픽쳐의 블록 경계 중 디블록킹 필터링에 관한 블록 경계(이하, 엣지라 함)를 특정할 수 있다(S400).Referring to FIG. 4, a block boundary for deblocking filtering (hereinafter, referred to as an edge) among block boundaries of a reconstructed picture may be specified (S400).
복원된 픽쳐는 소정의 NxM 화소 그리드(sample grid)로 구획될 수 있다. NxM 화소 그리드는 디블록킹 필터링이 수행되는 단위를 의미할 수 있다. 여기서, N과 M은 4, 8, 16 또는 그 이상의 정수일 수 있다. 화소 그리드는 성분 타입 별로 각각 정의될 수 있다. 예를 들어, 성분 타입이 휘도 성분인 경우, N과 M은 4로 설정되고, 성분 타입이 색차 성분인 경우, N과 M은 8로 설정될 수 있다. 성분 타입과 관계없이, 고정된 크기의 NxM 화소 그리드가 이용될 수도 있다.The reconstructed picture may be partitioned into a predetermined NxM pixel grid. The NxM pixel grid may mean a unit in which deblocking filtering is performed. Here, N and M may be 4, 8, 16 or more integers. Each pixel grid may be defined for each component type. For example, when the component type is a luminance component, N and M may be set to 4, and when the component type is a color difference component, N and M may be set to 8. Regardless of the component type, a fixed-size NxM pixel grid may be used.
상기 엣지(Edge)는, NxM 화소 그리드 상에 위치한 블록 경계로서, 변환 블록의 경계, 예측 블록의 경계 또는 서브-블록의 경계 중 적어도 하나를 포함할 수 있다. 상기 서브-블록은 전술한 어파인 모드에 따른 서브-블록을 의미할 수 있다. 디블록킹 필터가 적용되는 블록 경계에 대해서는 도 5 및 도 6을 참조하여 살펴 보기로 한다.The edge is a block boundary positioned on an NxM pixel grid, and may include at least one of a boundary of a transform block, a boundary of a prediction block, or a boundary of a sub-block. The sub-block may mean a sub-block according to the affine mode described above. Block boundaries to which the deblocking filter is applied will be described with reference to FIGS. 5 and 6.
도 4를 참조하면, 상기 특정된 엣지에 대한 결정값(decision value)을 유도할 수 있다(S410).Referring to FIG. 4, a decision value for the specified edge may be derived (S410).
본 실시예에서는 엣지 타입이 수직 엣지이고, 4x4 화소 그리드가 적용됨을 가정한다. 엣지를 기준으로, 좌측 블록과 우측 블록을 각각 P 블록과 Q 블록이라 부르기로 한다. P 블록과 Q 블록은 기-복원된 블록이며, Q 블록은 현재 디블록킹 필터링이 수행되는 영역을 의미하고, P 블록은 Q 블록에 공간적으로 인접한 블록을 의미할 수 있다.In this embodiment, it is assumed that the edge type is a vertical edge, and a 4x4 pixel grid is applied. Based on the edge, the left block and the right block will be referred to as P blocks and Q blocks, respectively. The P block and the Q block are pre-restored blocks, the Q block refers to a region in which deblocking filtering is currently performed, and the P block may refer to a block spatially adjacent to the Q block.
먼저, 결정값은 상기 결정값을 유도하기 위한 변수 dSam을 이용하여 유도될 수 있다. dSam은 P 블록과 Q 블록의 첫번째 화소 라인(row) 또는 네번째 화소 라인(row) 중 적어도 하나에 대해서 유도될 수 있다. 이하, P 블록과 Q 블록의 첫번째 화소 라인(row)에 대한 dSam을 dSam0이라 부르고, 네번째 화소 라인(row)에 대한 dSam을 dSam3이라 부르기로 한다. First, the determination value may be derived using a variable dSam for inducing the determination value. dSam may be derived for at least one of a first pixel line or a fourth pixel line of the P block and the Q block. Hereinafter, dSam for the first pixel line (row) of the P block and Q block is referred to as dSam0, and dSam for the fourth pixel line (row) is referred to as dSam3.
다음 조건 중 적어도 하나를 만족하는 경우, dSam0은 1로 설정되고, 그렇지 않은 경우, dSam0은 0으로 설정될 수 있다.If at least one of the following conditions is satisfied, dSam0 may be set to 1, otherwise, dSam0 may be set to 0.
조건Condition
1One dqp < 제1 문턱값dqp <first threshold
22 (sp + sq) < 제2 문턱값(sp + sq) <second threshold
33 spq < 제3 문턱값spq <3rd threshold
표 1에서, dpq는 P 블록의 첫번째 화소 라인의 제1 화소값 선형도(d1) 또는 Q 블록의 첫번째 화소 라인의 제2 화소값 선형도(d2) 중 적어도 하나를 기반으로 유도될 수 있다. 여기서, 제1 화소값 선형도(d1)는 P 블록의 첫번째 화소 라인에 속한 i개의 화소 p를 이용하여 유도될 수 있다. i는 3, 4, 5, 6, 7 또는 그 이상일 수 있다. i개의 화소 p는 상호 인접한 연속적인 화소일 수도 있고, 일정 간격으로 떨어진 비연속적인 화소일 수도 있다. 이때, 화소 p는 첫번째 화소 라인의 화소 중 엣지에 가장 가까운 i개의 화소일 수 있다. 마찬가지로, 제2 화소값 선형도(d2)는 Q 블록의 첫번째 화소 라인에 속한 j개의 화소 q를 이용하여 유도될 수 있다. j는 3, 4, 5, 6, 7 또는 그 이상일 수 있다. j는 i와 동일한 값으로 설정되나, 이에 한정되지 아니하며, i와 상이한 값일 수도 있다. j개의 화소 q는 상호 인접한 연속적인 화소일 수도 있고, 일정 간격으로 떨어진 비연속적인 화소일 수도 있다. 이때, 화소 q는 첫번째 화소 라인의 화소 중 엣지에 가장 가까운 j개의 화소일 수 있다.In Table 1, dpq may be derived based on at least one of a first pixel value linearity d1 of the first pixel line of the P block or a second pixel value linearity d2 of the first pixel line of the Q block. Here, the first pixel value linearity d1 may be derived using i pixels p belonging to the first pixel line of the P block. i can be 3, 4, 5, 6, 7 or more. The i pixels p may be continuous pixels adjacent to each other, or may be non-contiguous pixels spaced apart from each other. In this case, the pixel p may be i pixels closest to the edge among the pixels of the first pixel line. Similarly, the second pixel value linearity d2 can be derived using j pixels q belonging to the first pixel line of the Q block. j may be 3, 4, 5, 6, 7 or more. j is set to the same value as i, but is not limited thereto, and may be a value different from i. The j pixels q may be contiguous pixels adjacent to each other, or may be non-contiguous pixels separated by a predetermined interval. In this case, the pixel q may be j pixels closest to the edge among the pixels of the first pixel line.
예를 들어, 3개의 화소 p와 3개의 화소 q가 이용되는 경우, 제1 화소값 선형도(d1) 및 제2 화소값 선형도(d2)는 다음 수학식 1과 같이 유도될 수 있다.For example, when three pixels p and three pixels q are used, the first pixel value linearity d1 and the second pixel value linearity d2 may be derived as in Equation 1 below.
[수학식 1][Equation 1]
d1 = Abs( p2,0 - 2 * p1,0 + p0,0 )d1 = Abs( p2,0-2 * p1,0 + p0,0)
d2 = Abs( q2,0 - 2 * q1,0 + q0,0 )d2 = Abs( q2,0-2 * q1,0 + q0,0)
또는, 6개의 화소 p와 6개의 화소 q가 이용되는 경우, 제1 화소값 선형도(d1) 및 제2 화소값 선형도(d2)는 다음 수학식 2와 같이 유도될 수 있다.Alternatively, when six pixels p and six pixels q are used, the first pixel value linearity d1 and the second pixel value linearity d2 can be derived as in Equation 2 below.
[수학식 2][Equation 2]
d1 = ( Abs( p2,0 - 2 * p1,0 + p0,0 ) + Abs( p5,0 - 2 * p4,0 + p3,0 ) + 1 ) >> 1d1 = (Abs( p2,0-2 * p1,0 + p0,0) + Abs( p5,0-2 * p4,0 + p3,0) + 1) >> 1
d2 = ( Abs( q2,0 - 2 * q1,0 + q0,0 ) + Abs( q5,0 - 2 * q4,0 + q3,0 ) + 1 ) >> 1d2 = (Abs( q2,0-2 * q1,0 + q0,0) + Abs( q5,0-2 * q4,0 + q3,0) + 1) >> 1
표 1에서, sp는 P 블록의 첫번째 화소 라인의 제1 화소값 변화도(v1)를, sq는 Q 블록의 첫번째 화소 라인의 제2 화소값 변화도(v2)를 각각 의미할 수 있다. 여기서, 제1 화소값 변화도(v1)는 P 블록의 첫번째 화소 라인에 속한 m개의 화소 p를 이용하여 유도될 수 있다. m은 2, 3, 4, 5, 6, 7 또는 그 이상일 수 있다. m개의 화소 p는 상호 인접한 연속적인 화소일 수도 있고, 일정 간격으로 떨어진 비연속적인 화소일 수도 있다. 또는, m개의 화소 p 중 일부는 상호 인접한 연속적인 화소고, 나머지는 일정 간격으로 떨어진 비연속적인 화소일 수 있다. 마찬가지로, 제2 화소값 변화도(v2)는 Q 블록의 첫번째 화소 라인에 속한 n개의 화소 q를 이용하여 유도될 수 있다. n은 2, 3, 4, 5, 6, 7 또는 그 이상일 수 있다. n은 m과 동일한 값으로 설정되나, 이에 한정되지 아니하며, m과 상이한 값일 수도 있다. n개의 화소 q는 상호 인접한 연속적인 화소일 수도 있고, 일정 간격으로 떨어진 비연속적인 화소일 수도 있다. 또는 n개의 화소 q 중 일부는 상호 인접한 연속적인 화소고, 나머지는 일정 간격으로 떨어진 비연속적인 화소일 수 있다.In Table 1, sp denotes a first pixel value gradient v1 of the first pixel line of the block P, and sq denotes a second pixel value gradient v2 of the first pixel line of the Q block. Here, the first pixel value gradient v1 may be derived using m pixels p belonging to the first pixel line of the P block. m may be 2, 3, 4, 5, 6, 7 or more. The m pixels p may be contiguous pixels adjacent to each other, or may be non-contiguous pixels spaced at predetermined intervals. Alternatively, some of the m pixels p may be contiguous pixels adjacent to each other, and the others may be non-contiguous pixels separated by a predetermined interval. Similarly, the second pixel value gradient v2 may be derived using n pixels q belonging to the first pixel line of the Q block. n may be 2, 3, 4, 5, 6, 7 or more. n is set to the same value as m, but is not limited thereto, and may be a value different from m. The n pixels q may be contiguous pixels adjacent to each other, or may be non-contiguous pixels separated by a predetermined interval. Alternatively, some of the n pixels q may be contiguous pixels adjacent to each other, and the others may be non-contiguous pixels separated by a predetermined interval.
예를 들어, 2개의 화소 p와 2개의 화소 q가 이용되는 경우, 제1 화소값 변화도(v1) 및 제2 화소값 변화도(v2)는 다음 수학식 3과 같이 유도될 수 있다.For example, when two pixels p and two pixels q are used, a first pixel value gradient v1 and a second pixel value gradient v2 may be derived as in Equation 3 below.
[수학식 3][Equation 3]
v1 = Abs( p3,0 - p0,0 )v1 = Abs( p3,0-p0,0)
v2 = Abs( q0,0 - q3,0 )v2 = Abs( q0,0-q3,0)
또는, 6개의 화소 p와 6개의 화소 q가 이용되는 경우, 제1 화소값 변화도(v1) 및 제2 화소값 변화도(v2)는 다음 수학식 4와 같이 유도될 수 있다.Alternatively, when six pixels p and six pixels q are used, the first pixel value gradient v1 and the second pixel value gradient v2 may be derived as in Equation 4 below.
[수학식 4][Equation 4]
v1 = Abs( p3,0 - p0,0 ) + Abs( p7,0 - p6,0 - p5,0 + p4,0)v1 = Abs( p3,0-p0,0) + Abs( p7,0-p6,0-p5,0 + p4,0)
v2 = Abs( q0,0 - q3,0 ) + Abs( q4,0 - q5,0 - q6,0 + q7,0 )v2 = Abs( q0,0-q3,0) + Abs( q4,0-q5,0-q6,0 + q7,0)
표 1의 spq는 엣지에 인접한 화소 p0,0와 화소 q0,0의 차이로 유도될 수 있다.The spq in Table 1 may be derived from the difference between the pixel p0,0 and the pixel q0,0 adjacent to the edge.
표 1의 제1 및 제2 문턱값은, 소정의 파라미터(QP)에 기초하여 유도될 수 있다. 여기서, QP는 P 블록의 제1 양자화 파라미터, Q 블록의 제2 양자화 파라미터 또는 QP를 유도하기 위한 오프셋 중 적어도 하나를 이용하여 결정될 수 있다. 상기 오프셋은 부호화 장치에서 부호화되어 시그날링된 값일 수 있다. 예를 들어, QP는 제1 및 제2 양자화 파라미터의 평균값에 상기 오프셋을 가산하여 유도될 수 있다. 표 1의 제3 문턱값은, 전술한 양자화 파라미터(QP)와 블록 경계 강도(boundary strength, BS)에 기초하여 유도될 수 있다. 여기서, BS는 P/Q 블록의 예측 모드, 인터 예측 모드, 넌-제로(non-zero) 변환 계수의 존부, 모션 벡터의 차이 등을 고려하여 가변적으로 결정될 수 있다. 예를 들어, P 블록과 Q 블록 중 적어도 하나의 예측 모드가 인트라 모드인 경우, BS는 2로 설정될 수 있다. P 블록 또는 Q 블록 중 적어도 하나가 결합 예측 모드로 부호화된 경우, BS는 2로 설정될 수 있다. P 블록 또는 Q 블록 중 적어도 하나가 넌-제로 변환 계수를 포함하는 경우, BS는 1로 설정될 수 있다. P 블록이 Q 블록과 상이한 인터 예측 모드로 부호화된 경우(예를 들어, P 블록은 현재 픽쳐 참조 모드로 부호화되고 Q 블록은 머지 모드 또는 AMVP 모드로 부호화된 경우), BS는 1로 설정될 수 있다. P 블록과 Q 블록 모두 현재 픽쳐 참조 모드로 부호화되고, 이들의 블록 벡터 간의 차이가 소정의 문턱차이보다 크거나 같은 경우, BS는 1로 설정될 수 있다. 여기서, 문턱차이는 부호화/복호화 장치에 기-약속된 고정된 값(예를 들어, 4, 8, 16)일 수 있다.The first and second threshold values of Table 1 may be derived based on a predetermined parameter QP. Here, the QP may be determined using at least one of a first quantization parameter of the P block, a second quantization parameter of the Q block, or an offset for inducing QP. The offset may be a value encoded and signaled by an encoding device. For example, QP may be derived by adding the offset to the average value of the first and second quantization parameters. The third threshold value of Table 1 may be derived based on the above-described quantization parameter (QP) and block boundary strength (BS). Here, the BS may be variably determined in consideration of a prediction mode of a P/Q block, an inter prediction mode, the presence or absence of a non-zero transform coefficient, and a difference in motion vectors. For example, when at least one prediction mode of the P block and the Q block is an intra mode, the BS may be set to 2. When at least one of the P blocks or the Q blocks is encoded in the joint prediction mode, the BS may be set to 2. When at least one of the P block or Q block includes a non-zero transform coefficient, the BS may be set to 1. When the P block is coded in an inter prediction mode different from the Q block (for example, when the P block is coded in the current picture reference mode and the Q block is coded in the merge mode or AMVP mode), the BS may be set to 1. have. When both the P block and the Q block are coded in the current picture reference mode, and the difference between their block vectors is greater than or equal to a predetermined threshold difference, the BS may be set to 1. Here, the threshold difference may be a fixed value (eg, 4, 8, 16) pre-committed to the encoding/decoding device.
dSam3은 전술한 dSam0과 동일한 방법을 통해, 네번째 화소 라인에 속한 하나 또는 그 이상의 화소를 이용하여 유도되는바, 자세한 설명은 생략하기로 한다.Since dSam3 is derived using one or more pixels belonging to the fourth pixel line through the same method as dSam0 described above, a detailed description will be omitted.
상기 유도된 dSam0과 dSam3에 기초하여 결정값이 유도될 수 있다. 예를 들어, dSam0과 dSam3 둘다 1인 경우, 결정값은 제1 값(예를 들어, 3)으로 설정되고, 그렇지 않은 경우, 결정값은 제2 값(예를 들어, 1 또는 2)으로 설정될 수 있다.A determination value may be derived based on the derived dSam0 and dSam3. For example, if both dSam0 and dSam3 are 1, the decision value is set to the first value (e.g. 3), otherwise, the decision value is set to the second value (e.g. 1 or 2). Can be.
도 4를 참조하면, 상기 유도된 결정값에 기초하여, 디블록킹 필터의 필터 타입을 결정할 수 있다(S420).Referring to FIG. 4, a filter type of a deblocking filter may be determined based on the derived determined value (S420).
부호화/복호화 장치에서, 상이한 필터 길이를 가진 복수의 필터 타입이 정의될 수 있다. 필터 타입의 예로, 필터 길이가 가장 긴 롱 필터(long filter), 필터 길이가 가장 짧은 숏 필터(short filter) 또는 숏 필터보다는 길고 롱 필터보다는 짧은 하나 이상의 중간 필터(middle filter) 등이 있을 수 있다. 부호화/복호화 장치에 정의된 필터 타입의 개수는 2개, 3개, 4개 또는 그 이상일 수 있다.In the encoding/decoding apparatus, a plurality of filter types having different filter lengths may be defined. As an example of the filter type, there may be a long filter having the longest filter length, a short filter having the shortest filter length, or one or more middle filters that are longer than a short filter and shorter than a long filter. . The number of filter types defined in the encoding/decoding apparatus may be 2, 3, 4 or more.
예를 들어, 상기 결정값이 제1 값인 경우, 롱 필터가 이용되고, 상기 결정값이 제2 값인 경우, 숏 필터가 이용될 수 있다. 또는, 상기 결정값이 제1 값인 경우, 롱 필터 또는 중간 필터 중 어느 하나가 선택적으로 이용되고, 상기 결정값이 제2 값인 경우, 숏 필터가 이용될 수 있다. 또는, 상기 결정값이 제1 값인 경우, 롱 필터가 이용되고, 상기 결정값이 제1 값이 아닌 경우, 숏 필터 또는 중간 필터 중 어느 하나가 선택적으로 이용될 수 있다. 특히, 상기 결정값이 2인 경우, 중간 필터가 이용되고, 상기 결정값이 1인 경우, 숏 필터가 이용될 수 있다.For example, when the determined value is a first value, a long filter may be used, and when the determined value is a second value, a short filter may be used. Alternatively, when the determined value is a first value, one of a long filter or an intermediate filter may be selectively used, and when the determined value is a second value, a short filter may be used. Alternatively, when the determined value is the first value, a long filter is used, and when the determined value is not the first value, either a short filter or an intermediate filter may be selectively used. In particular, when the determination value is 2, an intermediate filter may be used, and when the determination value is 1, a short filter may be used.
도 4를 참조하면, 상기 결정된 필터 타입에 따른 디블록킹 필터를 기반으로, 복원된 픽쳐의 엣지에 필터링을 수행할 수 있다(S430).Referring to FIG. 4, filtering may be performed on an edge of a reconstructed picture based on a deblocking filter according to the determined filter type (S430).
디블록킹 필터는 엣지를 기준으로 양방향으로 위치한, 그리고 동일한 화소 라인에 위치한 복수의 화소에 적용될 수 있다. 여기서, 디블록킹 필터가 적용되는 복수의 화소를 필터링 영역이라 하며, 필터링 영역의 길이(또는 화소 개수)는 상기 필터 타입 별로 상이할 수 있다. 필터링 영역의 길이는 전술한 필터 타입의 필터 길이와 동등한 의미로 해석될 수 있다. 또는, 필터링 영역의 길이는, P 블록 내 디블록킹 필터가 적용되는 화소의 수와 Q 블록 내 디블록킹 필터가 적용되는 화소의 수의 합을 의미할 수 있다.The deblocking filter may be applied to a plurality of pixels located in both directions based on an edge and located in the same pixel line. Here, a plurality of pixels to which the deblocking filter is applied is referred to as a filtering region, and the length (or number of pixels) of the filtering region may be different for each filter type. The length of the filtering region may be interpreted as having the same meaning as the filter length of the aforementioned filter type. Alternatively, the length of the filtering region may mean a sum of the number of pixels to which the deblocking filter is applied in the P block and the number of pixels to which the deblocking filter is applied in the Q block.
본 실시예에서는 부호화/복호화 장치에 3개의 필터 타입 즉, 롱 필터, 중간 필터 및 숏 필터가 정의된 경우를 가정하고, 필터 타입별 디블록킹 필터링 방법을 살펴보도록 한다. 다만, 이에 한정되지 아니하며, 롱 필터와 중간 필터만이 정의되거나, 롱 필터와 숏 필터만이 정의되거나, 중간 필터와 숏 필터만이 정의될 수도 있다.In this embodiment, it is assumed that three filter types, that is, a long filter, an intermediate filter, and a short filter, are defined in the encoding/decoding apparatus, and a deblocking filtering method for each filter type will be described. However, the present invention is not limited thereto, and only a long filter and an intermediate filter may be defined, only a long filter and a short filter may be defined, or only an intermediate filter and a short filter may be defined.
1. 롱 필터 기반의 디블록킹 필터링의 경우1. In case of long filter-based deblocking filtering
설명의 편의를 위해, 이하 별도의 언급이 없는 경우, 엣지 타입은 수직 엣지이고, 현재 필터링되는 화소(이하, 현재 화소 q)은 Q 블록에 속함을 가정한다. 필터링된 화소 fq는 제1 참조값 및 제2 참조값의 가중 평균을 통해 유도될 수 있다.For convenience of explanation, it is assumed that the edge type is a vertical edge, and the currently filtered pixel (hereinafter, the current pixel q) belongs to the Q block unless otherwise stated. The filtered pixel fq may be derived through a weighted average of the first reference value and the second reference value.
여기서, 제1 참조값은, 현재 화소 q가 속한 필터링 영역의 화소 전부 또는 일부를 이용하여 유도될 수 있다. 여기서, 필터링 영역의 길이(또는 화소 개수)는 8, 10, 12, 14 또는 그 이상의 정수일 수 있다. 필터링 영역의 일부 화소는 P 블록에, 나머지 화소는 Q 블록에 각각 속할 수 있다. 예를 들어, 필터링 영역의 길이가 10인 경우, P 블록에 5개의 화소가, Q 블록에 5개의 화소가 각각 속할 수 있다. 또는, P 블록에 3개의 화소가, Q 블록에 7개의 화소가 각각 속할 수도 있다. 역으로, P 블록에 7개의 화소가, Q 블록에 3개의 화소가 각각 속할 수도 있다. 다시 말해, 롱 필터 기반의 디블록킹 필터링은 P 블록와 Q 블록에 대칭적으로 수행될 수도 있고, 비대칭적으로 수행될 수도 있다.Here, the first reference value may be derived using all or part of the pixels in the filtering area to which the current pixel q belongs. Here, the length (or number of pixels) of the filtering region may be an integer of 8, 10, 12, 14 or more. Some pixels in the filtering area may belong to the P block and the other pixels may belong to the Q block. For example, when the length of the filtering region is 10, 5 pixels may belong to the P block and 5 pixels may belong to the Q block. Alternatively, 3 pixels may belong to the P block and 7 pixels may belong to the Q block. Conversely, 7 pixels may belong to the P block and 3 pixels may belong to the Q block. In other words, the long filter-based deblocking filtering may be performed symmetrically or asymmetrically on the P block and the Q block.
현재 화소 q의 위치에 관계없이, 동일한 필터링 영역에 속한 모든 화소는 하나의 동일한 제1 참조값을 공유할 수 있다. 즉, 현재 필터링되는 화소가 P 블록에 위치하는지 아니면 Q 블록에 위치하는지 여부에 관계없이 동일한 제1 참조값을 이용할 수 있다. P 블록 또는 Q 블록 내 현재 필터링되는 화소의 위치에 관계없이 동일한 제1 참조값을 이용할 수 있다.Regardless of the location of the current pixel q, all pixels belonging to the same filtering area may share one and the same first reference value. That is, the same first reference value can be used regardless of whether the currently filtered pixel is located in the P block or the Q block. The same first reference value may be used regardless of the position of the currently filtered pixel in the P block or the Q block.
제2 참조값은, Q 블록에 속한 필터링 영역의 화소 중 엣지로부터 가장 멀리 떨어진 화소(이하, 제1 화소) 또는 필터링 영역의 주변 화소 중 적어도 하나를 이용하여 유도될 수 있다. 상기 주변 화소는 필터링 영역의 우측 방향으로 이웃한 적어도 하나의 화소를 의미할 수 있다. 일예로, 상기 제2 참조값은, 1개의 제1 화소와 1개의 주변 화소 간의 평균값으로 유도될 수 있다. 또는, 제2 참조값은, 2개 이상의 제1 화소와 필터링 영역의 우측 방향으로 이웃한 2개 이상의 주변 화소 간의 평균값으로 유도될 수도 있다.The second reference value may be derived using at least one of a pixel farthest from an edge (hereinafter, referred to as a first pixel) among pixels of the filtering area belonging to the Q block or surrounding pixels of the filtering area. The surrounding pixel may mean at least one pixel adjacent to the right side of the filtering area. For example, the second reference value may be derived as an average value between one first pixel and one neighboring pixel. Alternatively, the second reference value may be derived as an average value between two or more first pixels and two or more neighboring pixels adjacent to the right side of the filtering area.
가중 평균을 위해, 제1 참조값과 제2 참조값에 소정의 가중치 f1 및 f2가 각각 적용될 수 있다. 구체적으로, 부호화/복호화 장치는, 복수의 가중치 세트를 정의하며, 복수의 가중치 세트 중 어느 하나를 선택적으로 이용하여 가중치 f1를 설정할 수 있다. 상기 선택은, Q 블록에 속한 필터링 영역의 길이(또는 화소 개수)를 고려하여 수행될 수 있다. 예를 들어, 부호화/복호화 장치는, 다음 표 2와 같은 가중치 세트를 정의할 수 있다. 각 가중치 세트는, 필터링되는 화소의 위치 각각에 대응하는 하나 또는 그 이상의 가중치로 구성될 수 있다. 따라서, 선택된 가중치 세트에 속한 복수의 가중치 중에서, 현재 화소 q의 위치에 대응하는 가중치를 선택하고, 이를 현재 화소 q에 적용할 수 있다. 가중치 세트를 구성하는 가중치의 개수는 Q 블록에 속한 필터링 영역의 길이와 동일할 수 있다. 하나의 가중치 세트를 구성하는 복수의 가중치는, 0보다 크고 64보다 작은 정수의 범위 내에서 일정 간격으로 샘플링된 것일 수 있다. 여기서, 64는 일예에 불과하며, 64보다 크거나 작을 수도 있다. 상기 일정 간격은 9, 13, 17, 21, 25 또는 그 이상일 수 있다. 상기 간격은 Q 블록에 속한 필터링 영역의 길이(L)에 따라 가변적으로 결정될 수 있다. 또는 L에 관계없이 고정된 간격이 이용될 수도 있다.For the weighted average, predetermined weights f1 and f2 may be applied to the first reference value and the second reference value, respectively. Specifically, the encoding/decoding apparatus may define a plurality of weight sets, and may set the weight f1 by selectively using any one of the plurality of weight sets. The selection may be performed in consideration of the length (or number of pixels) of the filtering region belonging to the Q block. For example, the encoding/decoding apparatus may define a weight set as shown in Table 2 below. Each weight set may consist of one or more weights corresponding to each location of the pixel to be filtered. Accordingly, from among a plurality of weights belonging to the selected weight set, a weight corresponding to the position of the current pixel q may be selected and applied to the current pixel q. The number of weights constituting the weight set may be the same as the length of the filtering region belonging to the Q block. A plurality of weights constituting one weight set may be sampled at regular intervals within a range of an integer greater than 0 and less than 64. Here, 64 is only an example, and may be larger or smaller than 64. The predetermined interval may be 9, 13, 17, 21, 25 or more. The interval may be variably determined according to the length L of the filtering region included in the Q block. Alternatively, a fixed spacing may be used regardless of L.
Q 블록에 속한 필터링 영역의 길이(L)Length of filtering area belonging to Q block (L) 가중치 세트Weight set
L > 5L> 5 { 59, 50, 41, 32, 23, 14, 5 }{59, 50, 41, 32, 23, 14, 5}
55 { 58, 45, 32, 19, 6 }{58, 45, 32, 19, 6}
L < 5L <5 { 53, 32, 11 }{53, 32, 11}
표 2를 참조하면, Q 블록에 속한 필터링 영역의 길이(L)가 5보다 큰 경우, 3개의 가중치 세트 중 { 59, 50, 41, 32, 23, 14, 5 }가 선택되고, L이 5인 경우, { 58, 45, 32, 19, 6 }가 선택되며, L이 5보다 작은 경우, { 53, 32, 11 }가 선택될 수 있다. 다만, 표 2는 가중치 세트의 일예에 불과하며, 부호화/복호화 장치에 정의된 가중치 세트의 개수는 2개, 4개 또는 그 이상일 수 있다.Referring to Table 2, when the length (L) of the filtering region belonging to the Q block is greater than 5, {59, 50, 41, 32, 23, 14, 5} is selected among three weight sets, and L is 5 In case of, {58, 45, 32, 19, 6} is selected, and when L is less than 5, {53, 32, 11} may be selected. However, Table 2 is only an example of a weight set, and the number of weight sets defined in the encoding/decoding apparatus may be 2, 4 or more.
또한, L이 7이고, 현재 화소가 엣지를 기준으로 첫번째 화소(q0)인 경우, 현재 화소에는 가중치 59가 적용될 수 있다. 현재 화소가 엣지를 기준으로 두번째 화소(q1)인 경우, 현재 화소에는 가중치 50이 적용될 수 있고, 현재 화소가 엣지를 기준으로 일곱번째 화소(q6)인 경우, 현재 화소에는 가중치 5가 적용될 수 있다.Also, when L is 7 and the current pixel is the first pixel q0 based on the edge, a weight 59 may be applied to the current pixel. When the current pixel is the second pixel q1 based on the edge, a weight 50 may be applied to the current pixel, and when the current pixel is the seventh pixel q6 based on the edge, a weight 5 may be applied to the current pixel. .
가중치 f2는 기-결정된 가중치 f1에 기초하여 결정될 수 있다. 예를 들어, 가중치 f2는 기-정의된 상수에서 가중치 f1를 뺀 값으로 결정될 수 있다. 여기서, 기-정의된 상수는 부호화/복호화 장치에 기-정의된 고정된 값으로서, 64일 수 있다. 다만, 이는 일예에 불과하며, 64보다 크거나 작은 정수가 이용될 수도 있다.The weight f2 may be determined based on the pre-determined weight f1. For example, the weight f2 may be determined as a value obtained by subtracting the weight f1 from a pre-defined constant. Here, the pre-defined constant is a fixed value pre-defined in the encoding/decoding apparatus, and may be 64. However, this is only an example, and an integer greater than or less than 64 may be used.
2. 중간 필터 기반의 디블록킹 필터링의 경우2. In case of intermediate filter-based deblocking filtering
중간 필터의 필터 길이는 롱 필터의 필터 길이보다 작을 수 있다. 중간 필터에 따른 필터링 영역의 길이(또는 화소 개수)는 전술한 롱 필터에 따른 필터링 영역의 길이보다 작을 수 있다. The filter length of the intermediate filter may be smaller than the filter length of the long filter. The length (or number of pixels) of the filtering region according to the intermediate filter may be smaller than the length of the filtering region according to the aforementioned long filter.
예를 들어, 중간 필터에 따른 필터링 영역의 길이는 6, 8 또는 그 이상일 수 있다. 여기서, P 블록에 속한 필터링 영역의 길이는 Q 블록에 속한 필터링 영역의 길이와 동일할 수 있다. 다만, 이에 한정되지 아니하며, P 블록에 속한 필터링 영역의 길이는 Q 블록에 속한 필터링 영역의 길이보다 길거나 짧을 수도 있다.For example, the length of the filtering area according to the intermediate filter may be 6, 8 or more. Here, the length of the filtering region belonging to the P block may be the same as the length of the filtering region belonging to the Q block. However, the present invention is not limited thereto, and the length of the filtering region belonging to the P block may be longer or shorter than the length of the filtering region belonging to the Q block.
구체적으로, 필터링된 화소 fq는 현재 화소 q 및 현재 화소 q에 인접한 적어도 하나의 주변 화소를 이용하여 유도될 수 있다. 여기서, 주변 화소는, 현재 화소 q의 좌측 방향으로 이웃한 하나 또는 그 이상의 화소(이하, 좌측 주변 화소) 또는 현재 화소 q의 우측 방향으로 이웃한 하나 또는 그 이상의 화소(이하, 우측 주변 화소) 중 적어도 하나를 포함할 수 있다. Specifically, the filtered pixel fq may be derived using the current pixel q and at least one neighboring pixel adjacent to the current pixel q. Here, the neighboring pixels are one or more pixels adjacent to the left direction of the current pixel q (hereinafter, left peripheral pixels) or one or more pixels adjacent to the right direction of the current pixel q (hereinafter, right peripheral pixels). It may include at least one.
예를 들어, 현재 화소 q가 q0인 경우, 2개의 좌측 주변 화소(p0, p1)와 2개의 우측 주변 화소(q1, q2)를 이용할 수 있다. 현재 화소 q가 q1인 경우, 2개의 좌측 주변 화소(p0, q0)와 1개의 우측 주변 화소(q2)를 이용할 수 있다. 현재 화소 q가 q2인 경우, 3개의 좌측 주변 화소(p0, q0, q1)와 1개의 우측 주변 화소(q3)를 이용할 수 있다. For example, when the current pixel q is q0, two left peripheral pixels p0 and p1 and two right peripheral pixels q1 and q2 may be used. When the current pixel q is q1, two left peripheral pixels p0 and q0 and one right peripheral pixel q2 may be used. When the current pixel q is q2, three left peripheral pixels p0, q0, and q1 and one right peripheral pixel q3 may be used.
3. 숏 필터 기반의 디블록킹 필터링의 경우3. Short filter-based deblocking filtering
숏 필터의 필터 길이는 중간 필터의 필터 길이보다 작을 수 있다. 숏 필터에 따른 필터링 영역의 길이(또는 화소 개수)는 전술한 중간 필터에 따른 필터링 영역의 길이보다 작을 수 있다. 예를 들어, 숏 필터에 따른 필터링 영역의 길이는 2, 4 또는 그 이상일 수 있다.The filter length of the short filter may be smaller than that of the intermediate filter. The length (or number of pixels) of the filtering region according to the short filter may be smaller than the length of the filtering region according to the above-described intermediate filter. For example, the length of the filtering region according to the short filter may be 2, 4 or more.
구체적으로, 필터링된 화소 fq는 현재 화소 q에 소정의 제1 오프셋(offset1)을 가산하거나 감산하여 유도될 수 있다. 여기서, 제1 오프셋은, P 블록의 화소와 Q 블록의 화소 간의 차이값에 기초하여 결정될 수 있다. 예를 들어, 다음 수학식 5와 같이, 제1 오프셋은 화소 p0와 화소 q0 간의 차이값 및 화소 p1와 화소 q1 간의 차이값에 기초하여 결정될 수 있다. 다만, 현재 화소 q에 대한 필터링은, 제1 오프셋이 소정의 문턱값보다 작은 경우에 한하여 수행될 수 있다. 여기서, 문턱값은 전술한 양자화 파라미터(QP)와 블록 경계 강도(boundary strength, BS)에 기초하여 유도되며, 자세한 설명은 생략하기로 한다.Specifically, the filtered pixel fq may be derived by adding or subtracting a predetermined first offset (offset1) to the current pixel q. Here, the first offset may be determined based on a difference value between the pixels of the P block and the pixels of the Q block. For example, as shown in Equation 5 below, the first offset may be determined based on a difference value between the pixel p0 and the pixel q0 and a difference value between the pixel p1 and the pixel q1. However, filtering for the current pixel q may be performed only when the first offset is smaller than a predetermined threshold. Here, the threshold value is derived based on the above-described quantization parameter (QP) and block boundary strength (BS), and a detailed description thereof will be omitted.
[수학식 5][Equation 5]
offset1 = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4offset1 = (9 * (q0-p0)-3 * (q1-p1) + 8) >> 4
또는, 필터링된 화소 fq는 현재 화소 q에 소정의 제2 오프셋(offset2)을 가산하여 유도될 수도 있다. 여기서, 제2 오프셋은 현재 화소 q와 주변 화소 간의 차이(또는, 변화량) 또는 제1 오프셋 중 적어도 하나를 고려하여 결정될 수 있다. 여기서, 주변 화소는 현재 화소 q의 좌측 화소 또는 우측 화소 중 적어도 하나를 포함할 수 있다. 예를 들어, 제2 오프셋은 다음 수학식 6과 같이 결정될 수 있다.Alternatively, the filtered pixel fq may be derived by adding a predetermined second offset (offset2) to the current pixel q. Here, the second offset may be determined in consideration of at least one of a difference (or change amount) or a first offset between the current pixel q and the neighboring pixels. Here, the surrounding pixels may include at least one of a left pixel or a right pixel of the current pixel q. For example, the second offset may be determined as in Equation 6 below.
[수학식 6][Equation 6]
offset2 = ((( q2 + q0 + 1 ) >> 1 ) - q1 - offset1 ) >> 1offset2 = ((( q2 + q0 + 1) >> 1)-q1-offset1) >> 1
복원된 픽쳐의 블록 경계에 디블록킹 필터링을 수행하는 방법에 대해서 도 7 및 도 8을 참조하여 자세히 살펴보기로 한다.전술한 필터링 방법은 디블록킹 필터에만 적용되는 것으로 제한되는 것은 아니며, 인루프 필터의 일예인 적응적 샘플 오프셋(SAO), 적응적 루프 필터(ALF) 등에도 동일/유사하게 적용될 수 있다.A method of performing deblocking filtering on a block boundary of a reconstructed picture will be described in detail with reference to FIGS. 7 and 8. The above-described filtering method is not limited to being applied only to a deblocking filter, and an in-loop filter The same/similarly can be applied to an adaptive sample offset (SAO), an adaptive loop filter (ALF), and the like.
도 5는 하나의 부호화 블록을 다수개의 서브-블록으로 분할하여 예측 및 변환을 수행하는 개념을 도시한 도면이다.5 is a diagram illustrating a concept of performing prediction and transformation by dividing one coding block into a plurality of sub-blocks.
도 5에서 도시한 바와 같이, 하나의 부호화 블록은 수평 방향 혹은 수직 방향 중 하나의 방향으로 2분할 혹은 4분할하여 예측 혹은 변환을 수행할 수 있다. 상기 부호화 블록은 복호화 블록으로도 이해될 수 있다. 이때, 상기 부호화 블록을 수평 방향 혹은 수직 방향 중 하나로 2분할 혹은 4분할하여 예측만을 수행할 수도 있고, 혹은 2분할 혹은 4분할하여 예측과 변환을 모두 수행할 수도 있으며, 혹은 2분할 혹은 4분할하여 변환만을 수행할 수도 있다.As shown in FIG. 5, prediction or transformation may be performed by dividing one coding block into two or four divisions in either a horizontal direction or a vertical direction. The coding block may also be understood as a decoding block. In this case, prediction may be performed only by dividing the coding block into two or four divisions in either a horizontal direction or a vertical direction, or both prediction and transformation may be performed by dividing into two or four, or by dividing into two or four. You can also perform conversion only.
이때, 상기 하나의 부호화 블록을 수평 방향 혹은 수직 방향으로 2분할 혹은 4분할하여 화면 내 예측과 변환을 각각의 분할 단위로 수행할 수 있다.In this case, by dividing the one coding block into two or four divisions in a horizontal direction or a vertical direction, intra prediction and transformation may be performed in each division unit.
도 5는 분할 개수를 한정하는 것은 아니며, 3, 5, 또는 그 이상으로 분할될 수도 있다. 여기서, 분할 개수는, 블록 속성에 기초하여 가변적으로 결정될 수 있다. 블록 속성은, 블록 크기/형태, 성분 타입(휘도, 색차), 예측 모드(인트라 예측 또는 인터 모드), 인터 예측 모드(머지 모드, AMVP 모드, 어파인 모드 등 디코더에 기-정의된 인터 예측 모드를 의미함), 예측/변환 단위, 블록 경계의 위치 또는 길이 등과 같은 부호화 파라미터를 의미할 수 있다.5 does not limit the number of divisions, and may be divided into 3, 5, or more. Here, the number of divisions may be variably determined based on block properties. Block properties include block size/shape, component type (luminance, color difference), prediction mode (intra prediction or inter mode), inter prediction mode (merge mode, AMVP mode, affine mode, etc.) Means), a prediction/transformation unit, and an encoding parameter such as a position or length of a block boundary.
또는, 비분할 또는 2분할 중 어느 하나가 선택적으로 이용될 수도 있고, 비분할 또는 4분할 중 어느 하나가 선태적으로 이용될 수도 있다. 또는, 비분할, 2분할 또는 4분할 중 어느 하나가 선택적으로 이용될 수도 있다.Alternatively, either non-divided or two-divided may be selectively used, and either non-divided or four-divided may be selectively used. Alternatively, any one of non-divided, two-divided, or four-divided may be selectively used.
도 5에 도시된 일 실시 예에 따르면, 하나의 부호화 블록(510)을 두 개의 서브-블록으로 수직 방향 분할 하는 경우에는 블록의 너비 (W) (511)를 동일하게 2분할하여 상기 분할된 서브-블록의 너비가 W/2 (513)를 가지도록 블록을 분할하는 것을 포함할 수 있으며, 하나의 부호화 블록(520)을 두 개의 서브-블록으로 수평 방향 분할 하는 경우에는 블록의 높이 (H) (522)를 동일하게 2분할하여 상기 분할된 서브-블록의 높이가 H/2 (523)를 가지도록 블록을 분할하는 것을 포함할 수 있다.According to the exemplary embodiment shown in FIG. 5, in the case of vertically dividing one coding block 510 into two sub-blocks, the divided sub-blocks 510 are equally divided into two widths (W) 511 -It may include dividing the block so that the width of the block has W/2 (513), and in the case of horizontally dividing one coding block 520 into two sub-blocks, the height of the block (H) It may include dividing the block by dividing 522 equally into two so that the height of the divided sub-block has H/2 (523).
또한, 도 5에 도시된 또 다른 일 실시 예에 따르면, 하나의 부호화 블록(530)을 네 개의 서브-블록으로 수직 방향 분할 하는 경우에는 블록의 너비 (W) (531)를 동일하게 4분할하여 상기 분할된 서브-블록의 너비가 W/4 (533)를 가지도록 블록을 분할하는 것을 포함할 수 있으며, 하나의 부호화 블록(540)을 네 개의 서브-블록으로 수평 방향 분할 하는 경우에는 블록의 높이 (H) (542)를 동일하게 4분할하여 상기 분할된 서브-블록의 높이가 H/4 (543)를 가지도록 블록을 분할하는 것을 포함할 수 있다.In addition, according to another embodiment illustrated in FIG. 5, in the case of vertically dividing one coding block 530 into four sub-blocks, the width (W) 531 of the block is equally divided into four. It may include dividing the block so that the divided sub-block has a width of W/4 (533). In the case of horizontal division of one coding block 540 into four sub-blocks, It may include dividing the block so that the height (H) 542 is equally divided into four so that the height of the divided sub-block has H/4 (543).
또한, 본 발명의 일 실시 예에서는 현재 부호화 블록을 다수개의 서브-블록으로 분할하여 예측을 수행하는 모드 중, 서브-블록 화면 내 예측 모드인 경우, 현재 부호화 블록을 예측을 수행한 서브-블록과 동일한 형태로 변환을 수행하는 것을 포함한다. 이 경우, 서브-블록과 동일한 크기/형태를 가지도록 변환 단위가 분할될 수도 있고, 복수의 변환 단위가 병합될 수도 있다. 또는, 역으로, 변환 단위를 기초로, 서브-블록 단위가 결정되고, 서브-블록 단위로 화면 내 예측이 수행될 수도 있다. 전술한 실시예는 후술하는 실시예에서도 동일/유사하게 적용될 수 있다.In addition, in an embodiment of the present invention, among modes in which prediction is performed by dividing a current coding block into a plurality of sub-blocks, in the case of a prediction mode within a sub-block screen, the current coding block is predicted and It involves performing the transformation in the same form. In this case, a transform unit may be divided to have the same size/shape as the sub-block, or a plurality of transform units may be merged. Alternatively, conversely, a sub-block unit may be determined based on a transform unit, and intra prediction may be performed in a sub-block unit. The above-described embodiment can be applied in the same/similar manner to the embodiments described later.
또한, 도 5에 도시된 또 다른 일 실시 예에 따르면, 하나의 부호화 블록(530)을 네 개의 서브-블록으로 수직 방향 분할 하는 경우에는 블록의 너비 (W) (531)를 동일하게 4분할하여 상기 분할된 서브-블록의 너비가 W/4 (433)를 가지도록 블록을 분할하는 것을 포함할 수 있으며, 하나의 부호화 블록(440)을 네 개의 서브-블록으로 수평 방향 분할 하는 경우에는 블록의 높이 (H) (542)를 동일하게 4분할하여 상기 분할된 서브-블록의 높이가 H/4 (543)를 가지도록 블록을 분할하는 것을 포함할 수 있다.In addition, according to another embodiment illustrated in FIG. 5, in the case of vertically dividing one coding block 530 into four sub-blocks, the width (W) 531 of the block is equally divided into four. It may include dividing the block so that the divided sub-block has a width of W/4 (433). In the case of horizontal division of one coding block 440 into four sub-blocks, It may include dividing the block so that the height (H) 542 is equally divided into four so that the height of the divided sub-block has H/4 (543).
또한, 본 발명의 일 실시 예에서는 현재 부호화 블록을 다수개의 서브-블록으로 분할하여 예측을 수행하는 모드 중, 서브-블록 화면 내 예측 모드인 경우, 현재 부호화 블록을 예측을 수행한 서브-블록과 동일한 형태로 변환을 수행하는 것을 포함한다.In addition, in an embodiment of the present invention, among modes in which prediction is performed by dividing a current coding block into a plurality of sub-blocks, in the case of a prediction mode within a sub-block screen, the current coding block is predicted and It involves performing the transformation in the same form.
상기 하나의 부호화 블록을 두 개 혹은 네 개의 서브-블록으로 분할하여 화면 내 예측을 수행하고 해당 서브-블록에 따라 변환을 수행하는 경우에는 해당 서브-블록의 경계에서 블록킹 아티펙트 (blocking artifact)가 발생할 수 있다. 따라서, 상기 서브-블록 단위의 화면 내 예측을 수행하는 경우에는 각각의 서브-블록의 경계에서 디블록킹 필터를 수행할 수 있다. 상기 디블록킹 필터의 수행은 선택적으로 수행될 수 있으며, 이를 위해 플래그 정보가 이용될 수 있다. 플래그 정보는, 서브-블록의 경계에 필터링 수행 여부를 지시할 수 있다. 플래그 정보는, 부호화 장치에서 부호화되어 복호화 장치로 시그날링될 수도 있고, 현재 블록 또는 이웃 블록 중 적어도 하나의 블록 속성에 기초하여 복호화 장치에서 유도될 수도 있다. 블록 속성은 전술한 바와 같으며, 자세한 설명은 생략하기로 한다.When the one coding block is divided into two or four sub-blocks to perform intra prediction and transform according to the corresponding sub-block, blocking artifacts occur at the boundary of the corresponding sub-block. I can. Accordingly, in the case of performing intra prediction in units of sub-blocks, a deblocking filter may be performed at the boundary of each sub-block. The deblocking filter may be selectively performed, and flag information may be used for this. The flag information may indicate whether to perform filtering at the boundary of the sub-block. The flag information may be encoded by the encoding device and signaled by the decoding device, or may be derived by the decoding device based on at least one block attribute of the current block or the neighboring block. Block properties are the same as described above, and detailed descriptions will be omitted.
하나의 부호화 블록에 대하여 디블록킹 필터를 수행하는 경우, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및 변환을 수행한 블록이면, 현재 블록 내부에 서브-블록 단위 디블록킹 필터 수행을 적용할 수 있다.When performing a deblocking filter on one coding block, if the current coding block is a block in which prediction and transformation have been performed through intra prediction in the sub-block unit, a sub-block unit deblocking filter is performed inside the current block. Can be applied.
하나의 부호화 블록에 대하여 디블록킹 필터를 수행하는 경우, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및 변환을 수행한 블록이지만, 해당 서브-블록의 경계가 디블록킹 필터 수행을 위한 블록 그리드 (NxM 샘플 그리드) 상에 존재하지 않는 경우에는 해당 서브-블록의 경계에서는 디블록킹 필터 단계를 건너 뛰고, 해당 서브-블록의 경계가 디블록킹 필터 수행을 위한 블록 그리드 (block grid) 상에 존재하는 경우에만 해당 서브-블록의 경계에서 디블록킹 필터 단계를 수행할 수 있다.When performing a deblocking filter on one coding block, the current coding block is a block in which prediction and transformation have been performed through intra prediction in the sub-block unit, but the boundary of the corresponding sub-block is used for performing the deblocking filter. If it does not exist on the block grid (NxM sample grid), the deblocking filter step is skipped at the boundary of the sub-block, and the boundary of the sub-block is on the block grid for performing the deblocking filter. The deblocking filter step can be performed at the boundary of the sub-block only if it exists.
이때, 상기 디블록킹 필터 수행을 위한 블록 그리드라 함은, 디블록킹 필터링이 적용될 수 있는 최소의 블록 경계 단위를 의미하며, 이전 블록 경계와 다음 블록 경계간의 최소한의 화소 간격을 의미할 수 있다. 일반적으로 해당 블록 그리드는 8x8을 사용할 수 있다. 단, 이는 8x8 블록으로 한정되지는 않으며, 4x4 또는 16x16도 사용될 수 있다. 성분 타입에 따라 상이한 크기의 블록 그리드가 이용될 수도 있다. 예를 들어, 휘도 성분에 대해서 색차 성분보다 작은 크기의 블록 그리드가 이용될 수 있다. 성분 타입 별로 고정된 크기의 블록 그리드가 이용될 수 있다.Here, the block grid for performing the deblocking filter means a minimum block boundary unit to which deblocking filtering can be applied, and may mean a minimum pixel interval between a previous block boundary and a next block boundary. In general, the block grid can use 8x8. However, this is not limited to 8x8 blocks, and 4x4 or 16x16 may also be used. Block grids of different sizes may be used depending on the component type. For example, a block grid having a size smaller than the color difference component may be used for the luminance component. A block grid having a fixed size for each component type may be used.
도 5에서 도시한 바와 같이, 하나의 부호화 블록은 수평 방향 혹은 수직 방향 중 하나의 방향으로 2분할하는 경우, 비대칭의 서브-블록으로 분할할 수 있다.As shown in FIG. 5, when one coding block is divided into two in either a horizontal direction or a vertical direction, it can be divided into asymmetric sub-blocks.
이때, 하나의 부호화 블록을 수평 방향 혹은 수직 방향 중 하나의 방향으로 비대칭 2분할 하는 경우의 일 실시 예를 도 5에서 도시하였다.In this case, an embodiment of a case where one coding block is divided into two asymmetrically in either a horizontal direction or a vertical direction is illustrated in FIG. 5.
현재 부호화 블록(550)은 두 개의 서브-블록으로 수직 방향 분할되어 제1 서브-블록은 H를 높이, W/4를 너비로 가지는 서브-블록으로 구성되고, 제2 서브-블록은 H를 높이, 3*W/4를 너비로 가지는 서브-블록으로 구성될 수 있다.The current coding block 550 is vertically divided into two sub-blocks, so that the first sub-block is composed of a sub-block having a height of H and a width of W/4, and the second sub-block has a height of H. , It may be composed of a sub-block having a width of 3*W/4.
또한, 현재 부호화 블록(560)은 두 개의 서브-블록으로 수평 방향 분할되어 제1 서브-블록은 H/4를 높이, W를 너비로 가지는 서브-블록으로 구성되고, 제2 서브-블록은 3*H/4를 높이, W를 너비로 가지는 서브-블록으로 구성될 수 있다.In addition, the current coding block 560 is horizontally divided into two sub-blocks, so that the first sub-block is composed of a sub-block having a height of H/4 and a width of W, and the second sub-block is 3 * It can be composed of sub-blocks with H/4 as the height and W as the width.
상기 서브-블록 단위로 독립적인 변환 및/또는 역변환을 수행할 수 있으며, 현재 부호화 블록 중 일부의 서브-블록에서만 변환 및/또는 역변환을 수행할 수 있다. 여기서, 일부 서브-블록은, 현재 대상 블록 내의 좌측 또는 상단에 위치한 N개의 서브-블록을 의미할 수 있다. N은 1, 2, 3 등일 수 있다. N은 복호화 장치에 기-약속된 고정된 값일 수도 있고, 전술한 블록 속성을 고려하여 가변적으로 결정될 수도 있다. Independent transformation and/or inverse transformation may be performed in units of the sub-blocks, and transformation and/or inverse transformation may be performed only in some sub-blocks of the current coding block. Here, some sub-blocks may mean N sub-blocks located on the left or top of the current target block. N may be 1, 2, 3, etc. N may be a fixed value pre-committed to the decoding apparatus, or may be variably determined in consideration of the above-described block attribute.
일부 서브-블록에 변환 과정은, 현재 대상 블록의 형태가 직사각형인 경우(W>H, W<H)에만 수행되도록 제한될 수 있다. 또는, 현재 대상 블록의 크기가 문턱크기보다 크거나 같은 경우에만 수행되도록 제한될 수도 있다.The transformation process for some sub-blocks may be limited to be performed only when the shape of the current target block is a rectangle (W>H, W<H). Alternatively, it may be limited to be performed only when the size of the current target block is greater than or equal to the threshold size.
상기 현재 부호화 블록 중 일부의 서브-블록에서만 변환 및 역변환을 수행하는 부호화 블록의 경우에도, 전술한 서브-블록 단위 디블록킹 필터 과정을 동일하게 적용할 수 있다.In the case of a coding block that performs transformation and inverse transformation only in some sub-blocks of the current coding blocks, the above-described sub-block unit deblocking filter process may be applied in the same manner.
도 6은 하나의 부호화 블록에 대한 서브-블록 분할 예시와 서브-블록 경계 및 디블록킹 필터 그리드의 개념을 도시한 도면이다.6 is a diagram illustrating an example of sub-block division for one coding block and a concept of a sub-block boundary and a deblocking filter grid.
도 6에 도시된 일 실시 예에서는 하나의 16x8 부호화 블록 (600)이 4개의 4x8 서브-블록 (610-613)으로 수직 방향 분할된 경우를 도시한다. 이때, 서브-블록 총 3개의 서브-블록 경계가 발생할 수 있다. 제1 서브-블록(610)과 제2 서브-블록(611) 사이에서 발생하는 제1 서브-블록 경계(620), 제2 서브-블록(611)과 제3 서브-블록(612) 사이에서 발생하는 제2 서브-블록 경계(621), 제3 서브-블록(612)과 제4 서브-블록(613) 사이에서 발생하는 제3 서브-블록 경계(622)를 일 예로 들 수 있다.In the embodiment illustrated in FIG. 6, a case in which one 16x8 coding block 600 is vertically divided into four 4x8 sub-blocks 610-613 is illustrated. In this case, a total of three sub-block boundaries may occur. A first sub-block boundary 620 occurring between the first sub-block 610 and the second sub-block 611, between the second sub-block 611 and the third sub-block 612 An example may be a second sub-block boundary 621 that occurs, and a third sub-block boundary 622 that occurs between the third sub-block 612 and the fourth sub-block 613.
이때, 상기 서브-블록 경계 중 디블록킹 필터 수행이 적용되는 디블록킹 필터 그리드 상에 존재하는 서브-블록 경계는 제2 서브-블록 경계(621)만이 디블록킹 필터 그리드 상에 존재한다.In this case, among the sub-block boundaries, only the second sub-block boundary 621 exists on the deblocking filter grid as the sub-block boundary existing on the deblocking filter grid to which the deblocking filter is applied.
따라서, 현재 부호화 블록이 서브-블록 분할 단위의 화면 내 예측을 통해 예측 및 변환을 수행한 블록인 경우, 디블록킹 필터링을 수행함에 있어, 디블록킹 필터 그리드 상에 존재하는 블록 경계에서만 디블록킹 필터가 수행될 수 있다. 또는, 제2 서브-블록 경계와 제1 서브-블록 경계에 서로 상이한 디블록킹 필터가 적용될 수 있다. 즉, 디블록킹 필터의 필터 계수, 탭수, 또는 강도 중 적어도 하나가 상이할 수 있다.Therefore, when the current coding block is a block that has been predicted and transformed through intra prediction in sub-block division units, in performing deblocking filtering, the deblocking filter is performed only at the block boundary existing on the deblocking filter grid. Can be done. Alternatively, different deblocking filters may be applied to the second sub-block boundary and the first sub-block boundary. That is, at least one of a filter coefficient, a number of taps, and an intensity of the deblocking filter may be different.
상기 디블록킹 필터 수행을 위한 블록 그리드는 N개 화소 단위로 구성될 수 있고, 상기 N은 미리 정의된 특정한 정수를 사용하며, 4, 8, 16, 32 등 중 하나 혹은 그 이상을 적응적으로 사용할 수 있다.The block grid for performing the deblocking filter may be configured in units of N pixels, and N uses a specific predetermined integer, and one or more of 4, 8, 16, 32, etc., can be adaptively used. I can.
상기 본 발명에 대한 상세한 설명을 위하여 도 6에서 도시한 실시 예를 이용한다. For a detailed description of the present invention, the embodiment shown in FIG. 6 is used.
도 6에서는 하나의 16x8 부호화 블록을 4개의 서브-블록으로 수직 방향 분할하여 상기 서브-블록 단위 화면 내 예측을 통해 예측 및 변환을 수행한 실시 예를 도시한다.FIG. 6 shows an embodiment in which prediction and transformation are performed through intra prediction in sub-block units by vertically dividing one 16x8 coding block into four sub-blocks.
이때, 상기 하나의 16x8 부호화 블록은 4개의 4x8 서브-블록으로 분할되어 서브-블록 단위 화면 내 예측 수행 및 변환을 수행하여 복원되어, 디블록킹 필터 단계로 입력된다.In this case, the single 16x8 coded block is divided into four 4x8 sub-blocks, reconstructed by performing intra prediction and transforming in a sub-block unit, and input to the deblocking filter step.
상기 디블록킹 필터 단계로 입력된 하나의 부호화 블록은 제1 서브-블록 (610)과 제2 서브-블록(611) 사이의 제1 수직 방향 경계(621), 제2 서브-블록(611)과 제3 서브-블록 (612) 사이의 제2 수직 방향 경계(620), 및 제3 서브-블록(612)과 제4 서브-블록(613) 사이의 제3 수직 방향 경계(622)가 존재한다.One coding block input through the deblocking filter step includes a first vertical boundary 621 between a first sub-block 610 and a second sub-block 611, a second sub-block 611, and There is a second vertical boundary 620 between the third sub-block 612 and a third vertical boundary 622 between the third sub-block 612 and the fourth sub-block 613 .
이때, 현재 디블록킹 필터를 위한 블록 그리드가 8x8인 경우, 상기 서브-블록 경계 중, 상기 디블록킹 필터 그리드 상에 존재하는 서브-블록 경계는 제2 수직 방향 경계(620)가 유일하다. In this case, when the block grid for the current deblocking filter is 8x8, the second vertical boundary 620 is the only sub-block boundary existing on the deblocking filter grid among the sub-block boundaries.
본 발명의 일 실시 예에 따르면, 현재 부호화 블록이 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, 제2 수직 방향 경계 (620)과 같이, 디블록킹 필터 그리드 상에 존재하는 서브-블록 경계와 제1 수직 방향 경계(621)과 제3 수직 방향 경계(622)과 같이, 디블록킹 필터 그리드 상에 존재하지 않는 서브-블록 경계에 모두 디블록킹 필터를 수행할 수 있다. 이때, 경계 별로 적용되는 디블록킹 필터의 속성(예를 들어, 강도, 탭수, 계수, 입력 화소의 위치/개수 등 중 적어도 하나)은 상이할 수 있다. According to an embodiment of the present invention, when the current coding block is a block that has been predicted and/or transformed through intra prediction in sub-block units, as in the second vertical direction boundary 620, on the deblocking filter grid. Deblocking filters can be performed on all sub-block boundaries that do not exist on the deblocking filter grid, such as the sub-block boundary existing in the first vertical direction boundary 621 and the third vertical direction boundary 622. have. In this case, the properties of the deblocking filter applied for each boundary (eg, at least one of intensity, number of taps, coefficient, position/number of input pixels, etc.) may be different.
본 발명의 또 다른 일 실시 예에 따르면, 현재 부호화 블록이 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, 제2 수직 방향 경계(620)과 같이, 디블록킹 필터 그리드 상에 존재하는 서브-블록 경계에서만 디블록킹 필터를 수행하고, 제1 수직 방향 경계(621)과 제3 수직 방향 경계(622)과 같이, 디블록킹 필터 그리드 상에 존재하지 않는 서브-블록 경계에서는 디블록킹 필터 수행을 생략할 수 있다.According to another embodiment of the present invention, when the current coding block is a block in which prediction and/or transformation is performed through intra prediction in sub-block units, a deblocking filter, like the second vertical boundary 620 The deblocking filter is performed only at the sub-block boundary existing on the grid, and the sub-block boundary not present on the deblocking filter grid, such as the first vertical boundary 621 and the third vertical boundary 622 Deblocking filter execution can be omitted at
이와 더불어, 본 발명에서 제안하는 디블록킹 필터는 하나의 부호화 블록에 대하여 디블록킹 필터를 수행하는 경우, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, 현재 부호화 블록과 동일한 크기의 부호화 블록과는 상이한 화소를 대상으로 디블록킹 필터링을 수행하거나, 상이한 디블록킹 필터 강도를 사용하거나, 혹은 상이한 디블록킹 필터 탭 수를 적용할 수 있다.In addition, in the case of performing the deblocking filter on one coding block, the deblocking filter proposed in the present invention is a block in which the current coding block is predicted and/or transformed through intra prediction in sub-block units. In this case, deblocking filtering may be performed on a pixel different from a coding block having the same size as the current coding block, a different deblocking filter strength may be used, or a different number of deblocking filter taps may be applied.
본 발명의 일 실시 예로, 현재 부호화 블록이 특정 블록 사이즈 M 보다 작은 경우에 대하여 상기 디블록킹 필터를 위한 블록 그리드 상에 존재하는 부호화 블록 (CB: Coding block), 예측 블록 (PB: Prediction block), 또는 변환 블록 (TB: Transform block) 중 적어도 하나의 경계에 위치하는 Q 블록 (현재 디블록킹 필터를 수행하는 블록)에 위치하는 N개의 화소에 대하여 디블록킹 필터를 수행할 수 있다.In an embodiment of the present invention, when a current coding block is smaller than a specific block size M, a coding block (CB), a prediction block (PB) existing on a block grid for the deblocking filter, Alternatively, a deblocking filter may be performed on N pixels located in a Q block (a block currently performing a deblocking filter) located at a boundary of at least one of the transform blocks (TB).
이때, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, Q 블록에 위치하는 (N+K)개의 화소에 대하여 디블록킹 필터를 수행할 수 있다.In this case, when the current coding block is a block in which prediction and/or transformation is performed through the intra prediction in sub-block units, a deblocking filter may be performed on (N+K) pixels located in the Q block. .
이때, 상기 M은 블록의 너비 혹은 높이를 의미할 수 있으며 16, 32, 64, 128 일 수 있다. In this case, M may mean the width or height of the block and may be 16, 32, 64, or 128.
또한, 이때, 상기 N은 P 블록 (현재 디블록킹 필터를 수행하는 블록과 블록 경계에 인접한 블록)과 Q 블록 (현재 디블록킹 필터를 수행하는 블록)에 포함되는 블록 경계에 인접한 화소의 수를 의미하며, 이는 1, 2, 3, 4, 5, 6, 7 또는 그 이상의 정수일 수 있다.In addition, in this case, N denotes the number of pixels adjacent to the block boundary included in the P block (the block currently performing the deblocking filter and the block adjacent to the block boundary) and the Q block (the block currently performing the deblocking filter). And, it may be an integer of 1, 2, 3, 4, 5, 6, 7 or more.
또한, K는 현재 부호화 블록이 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우 Q 블록에 포함되는 블록 경계에 인접한 화소 중 추가로 디블록킹 필터의 수행 대상이 되는 화소 수를 의미하며, 0 부터 현재 블록의 너비와 높이에서 N을 뺀 정수 중 하나의 값을 가질 수 있다.In addition, K is a pixel to be additionally subjected to deblocking filter among pixels adjacent to a block boundary included in the Q block when the current coding block is a block that has been predicted and/or transformed through intra prediction in sub-block units. It means a number, and can have a value from 0 to an integer minus N from the width and height of the current block.
본 발명의 또 다른 일 실시 예로, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, Q 블록에 위치하는 K개의 화소에 대하여 상기 N개의 화소에 적용한 필터와 상이한 디블록킹 필터 강도를 사용할 수 있다.In another embodiment of the present invention, when the current coding block is a block that has been predicted and/or transformed through the intra prediction in sub-block units, the N pixels are assigned to the K pixels located in the Q block. It is possible to use a different deblocking filter strength than the applied filter.
또한, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및 변환을 수행한 블록인 경우, Q 블록에 위치하는 K개의 화소에 대하여 상기 N개의 화소에 적용한 필터와 상이한 디블록킹 필터를 적용할 수 있다. 전술한 상이한 필터는, 필터의 강도, 계수값, 탭수, 입력 화소의 개수/위치 등 중 적어도 하나 이상이 상이한 것을 의미할 수 있다.In addition, when the current coding block is a block that has been predicted and transformed through intra-prediction of the sub-block unit, a deblocking filter different from the filter applied to the N pixels is applied to K pixels located in the Q block. can do. The above-described different filters may mean that at least one or more of filter intensity, coefficient value, number of taps, number/position of input pixels, and the like are different.
도 7은 P 블록과 Q 블록의 경계에서 현재 필터링되는 화소 및 필터링에 사용되는 참조 화소의 개념을 도시한 도면이다. 7 is a diagram illustrating a concept of a pixel currently filtered at a boundary between a P block and a Q block and a reference pixel used for filtering.
도 7에서는 디블록킹 필터를 수평 방향 경계에 적용함에 있어, P 블록과 Q 블록의 경계에서 디블록킹 필터링의 수행 대상 화소 및 필터링에 사용되는 참조 화소에 대한 예시를 나타낸 도면이다.FIG. 7 is a diagram illustrating an example of a pixel to be subjected to deblocking filtering and a reference pixel used for filtering at a boundary between a P block and a Q block in applying a deblocking filter to a horizontal boundary.
도 7에서는 현재 디블록킹 필터링되는 블록인 Q 블록(700)과 공간적으로 상단에 인접한 블록인 P 블록(710), P 블록과 Q 블록의 경계(720)을 도시하였다. P 블록에서 디블록킹 필터링이 적용되는 대상 화소는 블록 경계(720)에 인접한 총 3개의 화소 행이며, 각 화소 행에서 필터링 수행을 위한 참조 화소의 개념은 도 7의 713, 712, 711에 도시하였다. 다만, 도 7에서는 수평 경계에 대한 실시예를 도시한 것으로 본 발명에서는 상기 디블록킹 필터를 수직 경계에 적용하는 경우, 전술 혹은 후술하는 본 발명의 모든 개념을 화소 행 대신 화소 열에 적용하는 것을 포함한다.In FIG. 7, a Q block 700 which is a block currently subjected to deblocking filtering, a P block 710 that is spatially adjacent to the top, and a boundary 720 between the P block and the Q block are shown. In the P block, target pixels to which deblocking filtering is applied are a total of three pixel rows adjacent to the block boundary 720, and the concepts of reference pixels for performing filtering in each pixel row are illustrated in 713, 712, and 711 of FIG. 7. . However, FIG. 7 shows an embodiment of a horizontal boundary. In the present invention, when the deblocking filter is applied to a vertical boundary, all concepts of the present invention described above or below are applied to a pixel column instead of a pixel row. .
도 7의 713에서 디블록킹 필터링의 대상 화소는 p2 화소로 경계에서 세번째에 위치하는 화소이며, p2 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 p3, p2, p1, p0, q0 화소이다. 이때, p2 화소는 p3, p2, p1, p0, q0의 5개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 p2' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 p2'은 p2 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.In 713 of FIG. 7, the target pixel for deblocking filtering is a p2 pixel, which is a pixel positioned at the third boundary from the boundary, and pixels referred to to perform deblocking filtering on the p2 pixel are p3, p2, p1, p0, and q0 pixels. In this case, the p2 pixel may be set to a value of p2', which is a weighted average value using a predefined weight using five pixels of p3, p2, p1, p0, and q0. However, at this time, the weighted averaged value p2' is used as one value within the range of a value added or subtracted by a specific offset value from the p2 value.
도 7의 712에서 디블록킹 필터링의 대상 화소는 p1 화소로 경계에서 두번째에 위치하는 화소이며, p1 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 p2, p1, p0, q0 화소이다. 이때, p1 화소는 p2, p1, p0, q0의 4개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 p1' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 p1'은 p1 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.In 712 of FIG. 7, the target pixel for deblocking filtering is a p1 pixel, which is a pixel positioned at the second boundary, and pixels referred to to perform deblocking filtering on the p1 pixel are p2, p1, p0, and q0 pixels. In this case, the p1 pixel may be set to a value of p1', which is a weighted average value using a weight defined in advance using four pixels p2, p1, p0, and q0. However, at this time, the weighted averaged value p1' is used as one value within the range of a value added or subtracted by a specific offset value from the p1 value.
도 7의 711에서 디블록킹 필터링의 대상 화소는 p0 화소로 경계에서 첫번째에 위치하는 화소이며, p0 화소에 대한 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 p2, p1, p0, q0, q1화소이다. 이때, p0 화소는 p2, p1, p0, q0, q1의 5개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 p0' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 p0'은 p0 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.In 711 of FIG. 7, the target pixel for deblocking filtering is a p0 pixel, which is a pixel located first at the boundary, and pixels referred to to perform deblocking filtering on the p0 pixel are p2, p1, p0, q0, and q1 pixels. . In this case, the p0 pixel may be set to a value of p0', which is a weighted average value using a predefined weight using five pixels of p2, p1, p0, q0, and q1. However, at this time, the weighted averaged value p0' is used as one value within the range of a value added or subtracted by a specific offset value from the p0 value.
마찬가지로, Q 블록에서 디블록킹 필터링이 적용되는 대상 화소는 블록 경계(720)에 인접한 총 3개의 화소 행이며, 각 화소 행에서 필터링 수행을 위한 참조 화소의 개념은 도 7의 703, 702, 701에 도시하였다. 다만, 도 7에서는 수평 경계에 대한 실시예를 도시한 것으로 본 발명에서는 상기 디블록킹 필터를 수직 경계에 적용하는 경우, 전술 혹은 후술하는 본 발명의 모든 개념을 화소 행 대신 화소 열에 적용하는 것을 포함한다.Similarly, target pixels to which deblocking filtering is applied in the Q block are a total of three pixel rows adjacent to the block boundary 720, and the concept of reference pixels for performing filtering in each pixel row is shown in 703, 702, and 701 of FIG. Shown. However, FIG. 7 shows an embodiment of a horizontal boundary. In the present invention, when the deblocking filter is applied to a vertical boundary, all concepts of the present invention described above or below are applied to a pixel column instead of a pixel row. .
도 7의 703에서 디블록킹 필터링의 대상 화소는 q2 화소로 경계에서 세번째에 위치하는 화소이며, q2 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 q3, q2, q1, q0, p0 화소이다. 이때, q2 화소는 q3, q2, q1, q0, p0의 5개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 p2' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 q2'은 q2 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.In 703 of FIG. 7, the target pixel for deblocking filtering is a q2 pixel, which is a pixel positioned third from the boundary, and pixels q3, q2, q1, q0, and p0 are referred to to perform deblocking filtering on the q2 pixel. In this case, the q2 pixel may be set to a value of p2', which is a weighted average value using a weight defined in advance using five pixels q3, q2, q1, q0, and p0. However, at this time, the weighted averaged value q2' is used as one value within the range of a value added or subtracted by a specific offset value from the q2 value.
도 7의 702에서 디블록킹 필터링의 대상 화소는 q1 화소로 경계에서 두번째에 위치하는 화소이며, q1 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 q2, q1, q0, p0 화소이다. 이때, q1화소는 q2, q1, q0, p0의 4개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 q1' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 q1'은 q1 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.In 702 of FIG. 7, the target pixel for deblocking filtering is a q1 pixel, which is a pixel located at the second boundary from the boundary, and pixels referred to to perform deblocking filtering on the q1 pixel are q2, q1, q0, and p0 pixels. In this case, the q1 pixel may be set to a value of q1' which is a weighted average value using a weight predefined by using four pixels q2, q1, q0, and p0. However, at this time, the weighted averaged value q1' is used as one value within the range of a value added or subtracted by a specific offset value from the q1 value.
도 7의 701에서 디블록킹 필터링의 대상 화소는 q0 화소로 경계에서 첫번째에 위치하는 화소이며, q0 화소에 대한 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 q2, q1, q0, p0, p1화소이다. 이때, p0 화소는 q2, q1, q0, p0, p1의 5개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 q0' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 q0'은 q0 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.In 701 of FIG. 7, the target pixel for deblocking filtering is a q0 pixel, which is a pixel located first at the boundary, and pixels referenced to perform deblocking filtering on the q0 pixel are q2, q1, q0, p0, and p1 pixels. . In this case, the p0 pixel may be set to a value of q0', which is a weighted average value using a weight predefined using five pixels q2, q1, q0, p0, and p1. However, at this time, the weighted averaged value q0' is used as one value within the range of a value added or subtracted by a specific offset value from the q0 value.
도 8은 P 블록과 Q 블록의 경계와 Q 블록 내부 서브-블록 경계에서 블록킹 필터링의 수행 대상 화소 및 필터링에 사용되는 참조 화소의 개념을 도시한 도면이다. FIG. 8 is a diagram illustrating a concept of a pixel to be subjected to blocking filtering and a reference pixel used for filtering at a boundary between a P block and a Q block and a sub-block boundary within a Q block.
도 7에서 도시한 P 블록과 Q 블록의 경계에서만 디블록킹 필터링을 수행하는 방법과 달리, 디블록킹 필터의 블록 그리드 상에 위치하지 않지만, Q 블록이 서브-블록 단위의 화면 내 예측 혹은 서브-블록 단위의 변환을 수행하는 블록인 경우, 서브-블록 경계에서 블록킹 아티팩트가 발생할 수 있고, 이를 효과적으로 제거하기 위하여 Q 블록 내부 서브-블록 경계에 위치하는 화소에도 추가적으로 디블록킹 필터를 수행하는 일 실시 예를 도 8에서 도시하였다.Unlike the method of performing deblocking filtering only at the boundary between the P block and the Q block shown in FIG. 7, although it is not located on the block grid of the deblocking filter, the Q block is an intra prediction or sub-block in a sub-block unit. In the case of a block performing unit conversion, blocking artifacts may occur at the sub-block boundary, and in order to effectively remove this, an additional deblocking filter is additionally performed on pixels located at the sub-block boundary inside the Q block. It is shown in Figure 8.
도 7에 추가적으로 도 8에서는 디블록킹 필터링의 수행 대상 화소는 블록 경계(720)에 인접한 총 3개의 화소 행과 블록 내부에 존재하는 서브-블록 경계 (800)의 추가적인 N개 화소 행이다. 상기 서브-블록 경계의 추가적인 N개 화소 행에 대한 필터링 수행의 개념과 참조 화소의 개념은 도 8의 801, 802에 도시하였다. 다만, 도 8에서는 수평 경계에 대한 실시 예를 도시한 것으로 본 발명에서는 상기 디블록킹 필터를 수직 경계에 적용하는 경우, 전술 혹은 후술하는 본 발명의 모든 개념을 화소 행 대신 화소 열에 적용하는 것을 포함한다.In addition to FIG. 7, in FIG. 8, pixels to be subjected to deblocking filtering are three pixel rows adjacent to the block boundary 720 and additional N pixel rows of the sub-block boundary 800 present in the block. The concept of performing filtering on the additional N pixel rows of the sub-block boundary and the concept of a reference pixel are illustrated in 801 and 802 of FIG. 8. However, FIG. 8 shows an embodiment of a horizontal boundary. In the present invention, when the deblocking filter is applied to a vertical boundary, all concepts of the present invention described above or later are applied to a pixel column instead of a pixel row. .
또한, 도 8에서는 서브-블록 경계(800)의 추가적인 N개 화소 행에 대한 일 실시 예로 N이 2인 경우를 도시하였으나, 이에 국한되지 않고, N이 4인 경우, 8인 경우 등 또한 본 발명의 일 실시 예로 들 수 있다.In addition, in FIG. 8, as an example of an additional N pixel rows of the sub-block boundary 800, a case where N is 2 is illustrated, but the present invention is not limited thereto, and the case where N is 4, 8, etc. It is an example of an example.
도 8의 801에서 디블록킹 필터링의 대상 화소는 q3 화소로 서브-블록 경계(500)에서 상단 혹은 좌측 첫번째에 위치하는 화소이며, q3 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 q2, q3, q4, q5 화소이다. 이때, q3 화소는 q2, q3, q4, q5의 4개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 q3' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 q3'은 q3 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다. 또한, 상기 q2, q4, q5 화소는 도 8에 도시한 내용에 국한되지 않으며, 서브-블록 경계를 기준으로 정수 화소 거리에 위치하는 +1, +2, -1, -2 혹은 +N, -N과 같이 미리 정의된 위치의 화소를 의미할 수 있다.In 801 of FIG. 8, the target pixel for deblocking filtering is a q3 pixel, which is a pixel located at the top or left of the sub-block boundary 500, and pixels referenced to perform deblocking filtering on the q3 pixel are q2 and q3. , q4, q5 pixels. In this case, the q3 pixel may be set to a value of q3' which is a weighted average value using a weight defined in advance using four pixels q2, q3, q4, and q5. However, in this case, the weighted averaged value q3' is used as one value within the range of a value added or subtracted by a specific offset value from the q3 value. In addition, the q2, q4, and q5 pixels are not limited to the contents shown in FIG. 8, and are +1, +2, -1, -2 or +N,-located at an integer pixel distance based on a sub-block boundary. It may mean a pixel at a predefined location such as N.
도 8의 802에서 디블록킹 필터링의 대상 화소는 q4 화소로 서브-블록 경계(800)에서 하단 혹은 우측 첫번째에 위치하는 화소이며, q4 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 q2, q3, q4, q5 화소이다. 이때, q4 화소는 q2, q3, q4, q5의 4개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 q4' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 q4'은 q4 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다. 또한, 상기 q2, q3, q5 화소는 도 8에 도시한 내용에 국한되지 않으며, 서브-블록 경계를 기준으로 정수 화소 거리에 위치하는 +1, +2, -1, -2 혹은 +N, -N과 같이 미리 정의된 위치의 화소를 의미할 수 있다.In 802 of FIG. 8, the target pixel for deblocking filtering is a q4 pixel, which is a pixel positioned at the bottom or the first right of the sub-block boundary 800, and pixels referred to to perform deblocking filtering on the q4 pixel are q2 and q3. , q4, q5 pixels. In this case, the q4 pixel may be set to a value of q4', which is a weighted average value using a weight defined in advance using four pixels q2, q3, q4, and q5. However, at this time, the weighted average value q4' is used as one value within the range of a value added or subtracted by a specific offset value from the q4 value. In addition, the pixels q2, q3, and q5 are not limited to the contents shown in FIG. 8, and are +1, +2, -1, -2 or +N,-located at an integer pixel distance based on a sub-block boundary. It may mean a pixel at a predefined location such as N.
상기 일 실시예에서는 서브-블록 경계에 대한 디블록킹 필터의 예로 4개의 화소를 이용하는 필터링을 일 예로 들었으나, 본 발명에서는 디블록킹 필터의 대상 화소를 기준으로 5개의 화소, 혹은 3개의 화소를 참조 화소로 사용할 수 있다. 또한, 디블록킹 필터링의 참조 화소의 개수는 위치에 따라 서로 상이할 수 있다.In the above embodiment, as an example of a deblocking filter for a sub-block boundary, filtering using 4 pixels has been exemplified, but in the present invention, 5 pixels or 3 pixels are referred to the target pixel of the deblocking filter. Can be used as a pixel. Also, the number of reference pixels for deblocking filtering may be different from each other according to positions.
도 9는 현재 픽쳐 참조(current picture referencing) 모드의 기본 개념을 설명하기 위한 도면이다.9 is a diagram for explaining a basic concept of a current picture referencing mode.
도 9에서 도시한 바와 같이, 현재 픽쳐 참조 기술은 현재 블록에 대한 예측을 수행함에 있어 현재 블록과 동일한 픽쳐의 이미 복원된 영역에서 예측을 수행하는 기술이다.As shown in FIG. 9, the current picture reference technique is a technique for performing prediction on an already reconstructed region of the same picture as the current block when performing prediction on the current block.
도 9의 현재 픽쳐(900)의 현재 블록(910)을 부호화 혹은 복호화를 수행함에 있어, 부호화 및 복호화 순서에 따라 미리 복원된 영역(901)이 존재하며, 현재 블록(110)과 화소 유사성을 가지는 영역이 존재할 수 있다. 따라서, 상기 화소 유사성에 기반하여, 현재 블록(910)과 유사한 참조 블록(930)이 상기 미리 복원된 현재 픽쳐의 영역(901)에 존재하고, 해당 참조 블록(930)을 이용하여 예측을 수행하는 기술을 현재 픽쳐 참조 기술이라고 정의한다.In encoding or decoding the current block 910 of the current picture 900 of FIG. 9, a region 901 previously reconstructed according to the encoding and decoding order exists, and has pixel similarity with the current block 110. Areas may exist. Accordingly, based on the pixel similarity, a reference block 930 similar to the current block 910 exists in the region 901 of the pre-restored current picture, and prediction is performed using the reference block 930. The technology is defined as the current picture reference technology.
현재 픽쳐 참조 여부에 관한 정보는 부호화 장치에서 부호화되어 시그날링될 수도 있고, 복호화 장치에서 유도될 수도 있다. 이때, 상기 유도는, 블록의 크기, 형태, 위치, 분할 타입(예를 들어, 쿼드트리, 바이너리트리, 터너리트리), 예측 모드, 블록이 속한 타일 또는 타일 그룹의 위치/타입 등에 기초하여 수행될 수 있다. 여기서, 블록은, 현재 블록 또는 현재 블록에 인접한 주변 블록 중 적어도 하나를 의미할 수 있다.Information on whether to refer to the current picture may be encoded and signaled by an encoding device, or may be derived by a decoding device. In this case, the derivation is performed based on the size, shape, location, division type (eg, quad tree, binary tree, ternary tree), prediction mode, and location/type of the tile or tile group to which the block belongs. Can be. Here, the block may mean at least one of a current block or a neighboring block adjacent to the current block.
이때, 현재 블록(910)과 참조 블록(930)의 화소 거리를 벡터로 정의하고, 해당 벡터를 블록 벡터 (block vector)라고 한다.In this case, the pixel distance between the current block 910 and the reference block 930 is defined as a vector, and the vector is called a block vector.
현재 픽쳐 참조 모드를 부호화함에 있어, 현재 블록의 예측 정보는 상기 블록 벡터(block vector)에 대한 정보를 화면 간 예측과 유사하게 블록 벡터 예측 방법을 통한 스킵(skip), 머지(merge), 및 차분 신호 전송 등의 방법을 사용할 수 있다. 예를 들어, 블록 벡터는 현재 블록의 주변 블록으로 유도될 수 있다. 이때, 주변 블록은, 현재 픽쳐 참조 모드로 부호화된 블록으로 제한되거나, 머지 모드(또는 스킵 모드)로 부호화된 블록으로 제한될 수도 있다. 기타 복호화 장치에 기-정의된 다른 예측 모드(AMVP 모드, 어파인 모드 등)로 부호화된 블록으로 제한될 수도 있다. 또는, 블록 벡터는, 참조 블록의 위치를 특정하는 정보(e.g., 블록 인덱스)에 기초하여 유도될 수도 있다.In encoding the current picture reference mode, the prediction information of the current block is a skip, merge, and difference through a block vector prediction method similar to the inter prediction of the block vector information. Methods such as signal transmission can be used. For example, the block vector may be derived as a neighboring block of the current block. In this case, the neighboring block may be limited to a block coded in the current picture reference mode, or may be limited to a block coded in the merge mode (or skip mode). It may be limited to blocks encoded with other prediction modes (AMVP mode, affine mode, etc.) pre-defined in other decoding devices. Alternatively, the block vector may be derived based on information (e.g., block index) specifying the position of the reference block.
도 10은 현재 블록의 위치에 따른 현재 픽쳐 참조 영역의 일 실시 예를 도시한 도면이다.10 is a diagram illustrating an embodiment of a current picture reference area according to a location of a current block.
도 10에서는 현재 블록이 픽쳐, 타일 그룹, 혹은 타일의 경계에 위치하고 가장 좌측에 위치한 CTU에 속한 경우의 일 실시예를 상세하게 도시한다.FIG. 10 illustrates in detail an embodiment in which a current block belongs to a picture, a tile group, or a CTU located at the leftmost position at a boundary of a tile.
도 9에서는 현재 블록의 현재 블록에 대한 현재 픽쳐 참조의 탐색 범위, 즉, 참조 영역을 도시하였으며, 도 10에서 현재 블록이 포함된 CTU 와 부호화 및 복호화 순서에 따라 미리 복원된 영역의 일 실시예를 나타낸다.In FIG. 9, a search range of a current picture reference for a current block of a current block, that is, a reference region, is shown. In FIG. 10, an embodiment of a region previously reconstructed according to a CTU including the current block and an encoding and decoding order is illustrated. Show.
도 10에서는 현재 픽쳐(1000)가 타일 그룹 A(1050)와 타일 그룹 B(1060)으로 분할된 일 실시예를 도시하였다. 이때, 상기 타일 그룹이라 함은 하나의 픽쳐를 분할하는 방법 중 하나로 타일도 이에 해당할 수 있다. 타일 그룹은, 하나 또는 그 이상의 타일로 구성될 수 있다. 이하, 타일 그룹은 하나의 타일로 이해될 수도 있다.In FIG. 10, an example in which the current picture 1000 is divided into a tile group A 1050 and a tile group B 1060 is illustrated. In this case, the tile group is one of methods of dividing one picture, and a tile may also correspond to this. The tile group may be composed of one or more tiles. Hereinafter, the tile group may be understood as one tile.
도 10에서 타일 그룹 A(1050)은 1001, 1002, 1006, 1007, 1011, 1012 CTU들로 구성되는 타일 그룹을 도시하였으며, 타일 그룹 B(1060)은 1003, 1004, 1005, 1008, 1009, 1010, 1013, 1014, 1015 CTU들로 구성되는 타일 그룹을 도시하였다.In FIG. 10, tile group A 1050 shows a tile group composed of 1001, 1002, 1006, 1007, 1011, and 1012 CTUs, and tile group B 1060 is 1003, 1004, 1005, 1008, 1009, 1010. , 1013, 1014, 1015 A tile group consisting of CTUs is shown.
상기 미리 정의된 현재 픽쳐 참조를 위한 참조 영역이라 함은 도 9에서 도시한 현재 픽쳐(900) 내의 이미 복원된 영역(901) 중 일부 영역을 의미할 수 있다. 또한, 상기 일부 영역이라 함은 현재 블록이 포함된 현재 CTU, 현재 CTU를 기준으로 공간적으로 인접한 좌측 CTU 또는 상단에 위치한 CTU 중 적어도 하나일 수 있다.The predefined reference area for referencing the current picture may mean a partial area of an already reconstructed area 901 in the current picture 900 shown in FIG. 9. In addition, the partial region may be at least one of a current CTU including a current block, a left CTU spatially adjacent to the current CTU, or a CTU positioned at the top.
특히, 현재 블록이 포함된 CTU가 현재 픽쳐, 현재 타일 그룹, 현재 타일의 가장 좌측에 위치한 CTU인 경우에는 현재 블록이 포함된 CTU와 공간적으로 상단에 인접한 CTU를 참조할 수 있다.In particular, when the CTU including the current block is a current picture, a current tile group, or a CTU located at the far left of the current tile, a CTU including the current block and a CTU spatially adjacent to the top may be referred to.
도 10에 도시한 BLOCK A(1051)는 현재 픽쳐(1000)의 가장 좌측에 위치한 CTU에 현재 블록이 포함된 경우에 대한 일 실시예이다. 현재 블록이 BLOCK A(1051)에 포함된 블록인 경우, 현재 블록이 현재 픽쳐 참조를 수행하기 위하여 참조 가능한 영역은 현재 CTU (BLOCK A) 내부의 부호화 및 복호화 순서에 따라 미리 복원된 영역에 해당할 수 있다.BLOCK A 1051 shown in FIG. 10 is an embodiment of a case in which the current block is included in the CTU located at the far left of the current picture 1000. If the current block is a block included in BLOCK A (1051), the area that the current block can refer to to perform the current picture reference corresponds to the area previously restored according to the encoding and decoding order inside the current CTU (BLOCK A). I can.
이에 추가적으로 본 발명에서는 현재 블록이 포함된 CTU가 현재 픽쳐(1000)의 가장 좌측에 위치한 CTU인 경우, 공간적으로 인접한 상단 CTU가 존재하는 경우에 대하여 공간적으로 인접한 상단 CTU(1006)을 참조 영역으로 사용하는 것을 포함할 수 있다.In addition to this, in the present invention, when the CTU including the current block is the CTU located at the leftmost of the current picture 1000, the upper CTU 1006 that is spatially adjacent is used as a reference region when there is a spatially adjacent upper CTU. May include doing.
현재 블록이 속한 CTU(이하, 현재 CTU라 함)의 좌측에 가용한 CTU가 존재하지 않는 경우, 현재 CTU 내의 기복원된 영역만으로 이용하여 현재 픽쳐 참조를 수행하거나, 현재 픽쳐 참조를 수행하지 않도록 설정할 수도 있다. 또는, 현재 CTU 이전에 기-복원된 특정 영역을 참조하도록 설정될 수도 있다. 상기 특정 영역은, 동일 타일 또는 타일 그룹에 속한 것일 수도 있고, 현재 CTU 직전에 복호화된 P개의 CTU일 수도 있다. P는 1, 2, 3 또는 그 이상일 수 있다. N 값은, 부호화/복호화 장치에 기-정의된 고정된 값이거나, 현재 블록 및/또는 현재 CTU의 위치에 따라 가변적으로 결정될 수도 있다.If there is no available CTU to the left of the CTU to which the current block belongs (hereinafter referred to as the current CTU), the current picture reference is performed using only the undone region within the current CTU, or the current picture reference is not performed. May be. Or, it may be set to refer to a specific region previously restored before the current CTU. The specific region may belong to the same tile or tile group, or may be P CTUs decoded immediately before the current CTU. P can be 1, 2, 3 or more. The N value may be a fixed value pre-defined in the encoding/decoding apparatus, or may be variably determined according to the position of the current block and/or the current CTU.
또한, 부호화 및 복호화 순서에 따라 이전에 부호화 및 복호화가 수행된 CTU (207)을 참조 영역으로 사용하는 것을 포함할 수 있다.In addition, it may include using the CTU 207 previously encoded and decoded according to the encoding and decoding order as a reference region.
도 10에서 도시한 BLOCK B(1061)는 현재 픽쳐(1000)의 제2 타일 그룹인 Tile group B에 포함된 CTU로 Tile group B에서 가장 좌측에 위치하여 타일 그룹 경계에 위치하는 경우에 대한 일 실시예이다. 현재 블록이 BLOCK B(1061)에 포함된 블록인 경우, 현재 블록이 현재 픽쳐 참조를 수행하기 위하여 참조 가능한 영역은 현재 CTU (BLOCK B) 내부의 부호화 및 복호화 순서에 따라 미리 복원된 영역에 해당할 수 있다. BLOCK B 1061 shown in FIG. 10 is a CTU included in Tile group B, which is the second tile group of the current picture 1000, and is located at the far left of Tile group B and is located at the tile group boundary. Yes. If the current block is a block included in BLOCK B 1061, the area that the current block can refer to to perform current picture reference corresponds to a previously restored area according to the encoding and decoding order inside the current CTU (BLOCK B). I can.
이에 추가적으로 본 발명에서는 현재 블록이 포함된 CTU가 현재 타일 그룹(1060)의 가장 좌측에 위치한 CTU인 경우, 공간적으로 인접한 상단 CTU 존재하는 경우에 대하여 공간적으로 인접한 상단 CTU(1003)을 참조 영역으로 사용하는 것을 포함할 수 있다.In addition to this, in the present invention, when the CTU containing the current block is the CTU located at the far left of the current tile group 1060, the upper CTU 1003 that is spatially adjacent is used as a reference region when there is a spatially adjacent upper CTU. May include doing.
또한, 부호화 및 복호화 순서에 따라 이전에 부호화 및 복호화가 수행된 CTU(1005)을 참조 영역으로 사용하는 것을 포함할 수 있다.In addition, it may include using the CTU 1005, which has been previously encoded and decoded according to the encoding and decoding order, as a reference region.
또한 본 발명에서는 앞서 기술한 사항들 중 타일 그룹이라고 지칭한 개념을 타일이라는 개념으로 대체하여 사용하는 것을 포함한다.In addition, in the present invention, the concept referred to as a tile group among the above-described matters is substituted with the concept of a tile.
이와 더불어, 본 발명에서는 현재 블록이 포함된 CTU가 타일 혹은 타일 그룹의 좌측 경계에 위치한 CTU 인경우에 대하여, 현재 타일 혹은 타일 그룹이 타일 혹은 타일 그룹 간의 예측을 허용하는 타일 혹은 타일 그룹인 경우에 한정하여 현재 CTU의 좌측에 위치하는 CTU를 참조 영역으로 사용하는 것을 포함한다. 이를 위해 타일 또는 타일 그룹 간의 예측/참조 관계에 관한 정보가 부호화될 수 있다. 예를 들어, 상기 정보는, 타일 간의 참조가 허용되는지 여부, 현재 타일이 다른 타일을 참조하는지 여부, 픽쳐에 속한 타일의 개수, 타일의 위치를 특정하는 인덱스, 참조되는 타일의 개수/위치 등에 관한 정보 중 적어도 하나를 포함할 수 있다. 상기 정보는, 비디오 시퀀스, 픽쳐, 타일 그룹, 또는 타일 중 적어도 하나의 레벨에서 시그날링될 수 있다.In addition, in the present invention, for the case where the CTU including the current block is a CTU located at the left boundary of a tile or tile group, the current tile or tile group is limited to a tile or tile group that allows prediction between tiles or tile groups. Thus, it includes using the CTU located to the left of the current CTU as a reference area. To this end, information on a prediction/referencing relationship between tiles or tile groups may be encoded. For example, the information includes whether reference between tiles is allowed, whether a current tile refers to another tile, the number of tiles belonging to a picture, an index specifying the location of a tile, the number/location of referenced tiles, etc. It may include at least one of information. The information may be signaled at at least one level of a video sequence, a picture, a tile group, or a tile.
도 11은 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 일 실시예를 도시한다.11 illustrates an embodiment of a region including a current block and a search and reference available region of a current picture reference (CPR).
현재 CTU가 다수 개의 VPDU로 분할 됨을 도시하였다. 상기 VPDU라 함은 CTU의 크기가 증가함에 따라, 이에 대한 하드웨어 구현에 대한 비용을 감소 시키기 위하여, 한번에 부호화 및 복호화를 수행할 수 있는 최대 단위를 의미한다. 여기서, VPDU는, CTU보다 너비 또는 높이 중 적어도 하나가 작은 블록을 의미할 수 있다. CTU의 분할 뎁스가 k일 경우, VPDU는, (k+1) 또는 (k+2)의 분할 뎁스를 가진 블록으로 정의될 수도 있다. VPDU의 형태는 정사각형 또는 직사각형일 수 있으나, 필요에 따라 정사각형으로 제한될 수도 있다.It is shown that the current CTU is divided into a plurality of VPDUs. As the size of the CTU increases, the VPDU refers to a maximum unit capable of performing encoding and decoding at one time in order to reduce the cost of implementing hardware for this. Here, the VPDU may mean a block having at least one of a width or a height smaller than that of the CTU. When the split depth of the CTU is k, the VPDU may be defined as a block having a split depth of (k+1) or (k+2). The shape of the VPDU may be square or rectangular, but may be limited to square as needed.
또한, 상기 VPDU의 크기는 미리 정의된 임의의 크기를 사용할 수도 있고, CTU의 4분의 1의 크기를 사용할 수도 있다. 이때, 미리 정의된 임의의 크기라 함은 64x64, 혹은 32x32, 혹은 128x128 등이 사용될 수 있다.In addition, the size of the VPDU may use a predefined arbitrary size, or may use a size of a quarter of the CTU. At this time, the predefined arbitrary size may be 64x64, 32x32, or 128x128.
도 11에서 현재 블록이 포함된 CTU(1110)와 공간적으로 좌측에 인접한 CTU (1100)을 도시하였다. 이때, 현재 블록의 현재 픽쳐 참조를 위한 탐색 범위, 즉, 참조 영역은 미리 정의될 수 있다.In FIG. 11, a CTU 1110 including a current block and a CTU 1100 spatially adjacent to the left are shown. In this case, a search range for referencing the current picture of the current block, that is, a reference region may be predefined.
특히, 현재 블록이 현재 CTU(1110)의 제1 VPDU(1111)에 포함되는 경우에 한하여 좌측에 인접한 CTU(1100)의 모든 화소 영역의 전부 또는 일부 영역만을 참조 영역으로 사용할 수 있다. 도 11에서 도시한 일 실시 예에 따르면, 좌측에 인접한 CTU(1100)의 제1 VPDU(1101)을 제외한 2 VPDU (1102), 제3 VPDU (1103), 제4 VPDU(1104) 및 현재 블록이 포함된 VPDU(1111) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.In particular, only when the current block is included in the first VPDU 1111 of the current CTU 1110, only all or some of the pixel areas of the CTU 1100 adjacent to the left may be used as the reference area. According to the embodiment shown in FIG. 11, 2 VPDUs 1102, 3 VPDUs 1103, 4 VPDUs 1104 and the current block excluding the 1st VPDU 1101 of the CTU 1100 adjacent to the left are A region reconstructed in advance according to an encoding and decoding order among the included VPDUs 1111 may be used as a reference region.
도 11에서 도시한 바와 같이, 본 발명의 일 실시 예에 따르면, 공간적으로 인접한 CTU를 현재 픽쳐 참조 (CPR)의 탐색 및 참조 영역으로 사용하는 경우에, 공간적으로 인접한 CTU 중 일부 영역만을 사용하는 것을 포함한다.As shown in FIG. 11, according to an embodiment of the present invention, when using spatially adjacent CTUs as a search and reference area of a current picture reference (CPR), only some areas of spatially adjacent CTUs are used. Include.
부호화/복호화 순서에 따라 현재 CTU 직전에 부호화/복호화된 N개의 CTU만이 이용될 수 있다. 또는, 부호화/복호화 순서에 따라 현재 VPDU 직전에 부호화/복호화된 M개의 VPDU만이 이용될 수 있다. 여기서, N과 M은, 1, 2, 3, 4, 또는 그 이상의 정수일 수 있고, N과 M은 서로 동일하거나 상이할 수 있다. 상기 개수는, 부호화/복호화 장치에 기-정의된 값일 수도 있고, 블록의 가용성을 기반으로 가변적으로 결정될 수도 있다. 상기 M개의 VPDU는 동일한 CTU(또는, 타일, 타일 그룹) 내에 속하는 것으로 제한될 수도 있다. 또는, M개의 VPDU 중 적어도 하나는 나머지와 다른 CTU(또는, 타일, 타일 그룹)에 속하는 것으로 제한될 수도 있다. 전술한 제한 중 적어도 하나는, 현재 블록 또는 현재 VPDU의 위치 및/또는 스캔 순서를 고려하여 설정될 수 있다. 여기서, 위치는, CTU 내에서의 위치, 타일 내에서의 위치, 타일 그룹 내에서의 위치 등 다양한 의미로 해석될 수 있다. 전술한 실시예는, 이하 실시예에서도 동일/유사하게 적용될 수 있다.According to the encoding/decoding order, only N CTUs encoded/decoded immediately before the current CTU may be used. Alternatively, only M VPDUs encoded/decoded immediately before the current VPDU according to the encoding/decoding order may be used. Here, N and M may be 1, 2, 3, 4, or more integers, and N and M may be the same or different from each other. The number may be a value pre-defined in the encoding/decoding apparatus or may be variably determined based on availability of a block. The M VPDUs may be limited to belonging to the same CTU (or tile, tile group). Alternatively, at least one of the M VPDUs may be limited to belonging to a CTU (or tile or tile group) different from the others. At least one of the aforementioned restrictions may be set in consideration of the location and/or scan order of the current block or current VPDU. Here, the location may be interpreted in various meanings, such as a location within the CTU, a location within a tile, and a location within a tile group. The above-described embodiments can be applied in the same/similar manner to the following embodiments.
도 11은 현재 블록이 현재 CTU(1110)의 제2 VPDU(1112), 제3 VPDU(1113) 및 제4 VPDU(1114)에 포함되는 각각의 경우에 대하여, 좌측에 인접한 CTU(1100)에서 참조 영역의 변화됨을 도시하였다.11, for each case in which the current block is included in the second VPDU 1112, the third VPDU 1113 and the fourth VPDU 1114 of the current CTU 1110, reference is made to the CTU 1100 adjacent to the left. The change of the area is shown.
현재 블록이 현재 CTU(1110)의 제2 VPDU(1112)에 포함되는 경우에는 좌측에 인접한 CTU(1100)의 모든 화소 영역을 참조 영역으로 사용하지 않고, 일부 영만을 참조 영역으로 사용할 수 있다. 도 11에 도시한 일 실시 예에 따르면, 좌측에 인접한 CTU (1100)의 제1 VPDU(1101)과 제2 VPDU(1102)를 제외한 제3 VPDU(1103)와 제4 VPDU(1104)를 참조 영역으로 사용할 수 있다. 또한, 현재 CTU(1110)의 제1 VPDU(1111) 및 현재 블록이 포함된 제2 VPDU(1112) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.When the current block is included in the second VPDU 1112 of the current CTU 1110, all pixel areas of the CTU 1100 adjacent to the left may not be used as a reference area, and only some zeros may be used as the reference area. According to the embodiment shown in FIG. 11, the third VPDU 1103 and the fourth VPDU 1104 excluding the first VPDU 1101 and the second VPDU 1102 of the CTU 1100 adjacent to the left are referenced. Can be used as In addition, a region reconstructed in advance according to an encoding and decoding order among the first VPDU 1111 of the current CTU 1110 and the second VPDU 1112 including the current block may be used as a reference region.
또한, 현재 블록이 현재 CTU(1110)의 제3 VPDU(1113)에 포함되는 경우에는 좌측에 인접한 CTU(1100)의 모든 화소 영역을 참조 영역으로 사용하지 않고, 일부 영만을 참조 영역으로 사용할 수 있으며, 도 11에 도시한 일 실시 예에 따르면, 좌측에 인접한 CTU(1100)의 제1 VPDU(1101)과 제2 VPDU(1102) 및 제3 VPDU(1103)를 제외한 제4 VPDU(1104)를 참조 영역으로 사용할 수 있다. 또한, 현재 CTU(1110)의 제1 VPDU(1111), 제2 VPDU(1112) 및 현재 블록이 포함된 제3 VPDU(1113) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.In addition, when the current block is included in the third VPDU 1113 of the current CTU 1110, all the pixel areas of the CTU 1100 adjacent to the left are not used as a reference area, and only some zeros can be used as the reference area. , According to the embodiment shown in FIG. 11, refer to the fourth VPDU 1104 excluding the first VPDU 1101, the second VPDU 1102 and the third VPDU 1103 of the CTU 1100 adjacent to the left. Can be used as an area. In addition, among the first VPDU 1111 of the current CTU 1110, the second VPDU 1112, and the third VPDU 1113 including the current block, a region reconstructed in advance according to the encoding and decoding order can be used as a reference region. have.
또한, 현재 블록이 현재 CTU(1110)의 제4 VPDU(1113)에 포함되는 경우에는 좌측에 인접한 CTU(1100)를 참조 영역으로 사용하지 않고 현재 CTU(1110) 내부의 미리 복원된 영역만을 참조 영역으로 사용할 수 있다.In addition, when the current block is included in the 4th VPDU 1113 of the current CTU 1110, the CTU 1100 adjacent to the left is not used as a reference area, and only a previously restored area inside the current CTU 1110 is a reference area. Can be used as
도 12는 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 또 다른 일 실시예를 도시한다.12 illustrates another embodiment of an area including a current block and a search and reference available area for a current picture reference (CPR).
도 12는 현재 블록이 현재 CTU(1210)의 분할 형태에 따라 VPDU의 수행 순서가 기존의 z-scan order와 상이한 경우에 대한 추가적인 일 실시예를 도시한다.12 illustrates an additional embodiment of a case in which the current block is different from the existing z-scan order in the VPDU execution order according to the partition type of the current CTU 1210.
현재 CTU(1210)가 수직 분할되어 VPDU의 수행 순서가 제1 VPDU (1211), 제3 VPDU(1213), 제2 VPDU(1212), 제4 VPDU(1214)인 경우에 대하여, 현재 블록이 현재 CTU(1210)의 제3 VPDU(1213)에 포함되는 경우에는 좌측에 인접한 CTU(1200) 내에서 제1 VPDU(1201)과 제3 VPDU(1203)를 제외한 제2 VPDU(1202)와 제4 VPDU(1204)를 참조 영역으로 이용할 수 있다. 또한, 현재 CTU(1210)의 제1 VPDU(1211) 및 현재 블록이 포함된 제3 VPDU(1213) 중 부호화 및/또는 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다. 상기의 일 실시예에서는 좌측 CTU 중 현재 VPDU에 공간적으로 인접한 영역을 우선 참조한다는 의미를 가진다.When the current CTU 1210 is vertically divided so that the VPDU is performed in the first VPDU 1211, the third VPDU 1213, the second VPDU 1212, and the fourth VPDU 1214, the current block is When included in the third VPDU 1213 of the CTU 1210, the second VPDU 1202 and the fourth VPDU excluding the first VPDU 1201 and the third VPDU 1203 within the CTU 1200 adjacent to the left (1204) can be used as a reference area. In addition, a region reconstructed in advance according to an encoding and/or decoding order among the first VPDU 1211 of the current CTU 1210 and the third VPDU 1213 including the current block may be used as a reference region. In the above embodiment, it means that a region spatially adjacent to the current VPDU among the left CTUs is first referred.
이에 추가적으로 VPDU의 수행 순서에 따라, 좌측 CTU에서도 수직 분할로 인하여 VPDU 수행 순서가 제1 VPDU(1211), 제3 VPDU(1213), 제2 VPDU(1212), 제4 VPDU(1214) 인 경우에는 상기 방법 (도 12의 (a))과 같이 참조 영역을 지정할 수 있다.In addition, according to the VPDU execution order, if the VPDU execution order is the 1st VPDU 1211, the 3rd VPDU 1213, the 2nd VPDU 1212, and the 4th VPDU 1214 due to vertical division in the left CTU, As in the above method (Fig. 12(a)), a reference area can be designated.
앞선 도 12의 (a)의 일 실시예와 달리, 현재 CTU(1210)가 수직 분할되어 VPDU의 수행 순서가 제1 VPDU(1211), 제3 VPDU(1213), 제2 VPDU(1212), 제4 VPDU(1214)인 경우에 대하여, 현재 블록이 현재 CTU(1210)의 제3 VPDU(1213)에 포함되는 경우에는 좌측에 인접한 CTU(1200) 제1 VPDU(1201)과 제2 VPDU(1202)를 제외한 제3 VPDU(1203)와 제4 VPDU(1204)를 참조 영역으로 사용할 수 있다. 또한, 현재 CTU(1210)의 제1 VPDU(1211) 및 현재 블록이 포함된 제3 VPDU(1213) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.Unlike the previous embodiment of FIG. 12A, the current CTU 1210 is vertically divided, so that the VPDU is performed in the first VPDU 1211, the third VPDU 1213, the second VPDU 1212, and the second VPDU 1212. In the case of 4 VPDU 1214, when the current block is included in the third VPDU 1213 of the current CTU 1210, the CTU 1200 adjacent to the left side 1 VPDU 1201 and the second VPDU 1202 Except for, the third VPDU 1203 and the fourth VPDU 1204 may be used as reference areas. In addition, a region reconstructed in advance according to an encoding and decoding order among the first VPDU 1211 of the current CTU 1210 and the third VPDU 1213 including the current block may be used as a reference region.
이는 좌측 CTU에서 VPDU 수행 순서가 제1 VPDU(1211), 제2 VPDU(1212), 제3 VPDU(1213), 제4 VPDU(1214)인 경우에 대해서는 상기 방법 (도 12의 (b))과 같이 참조 영역을 지정할 수 있음을 의미한다.This is the above method (Fig. 12(b)) when the order of VPDU execution in the left CTU is the first VPDU 1211, the second VPDU 1212, the third VPDU 1213, and the fourth VPDU 1214. It means that you can designate a reference area together.
상기의 일 실시 예에서는 좌측 CTU 의 VPDU 수행 순서에 따라 나중에 부호화 및 복호화된 영역을 우선 참조한다는 의미를 가진다.In the above embodiment, it means that the encoded and decoded regions are first referred to later according to the VPDU execution order of the left CTU.
또한, 현재 CTU(1210)가 수직 분할되어 VPDU의 수행 순서가 제1 VPDU(1211), 제3 VPDU(1213), 제2 VPDU(1212), 제4 VPDU(1214) 인 경우에 대하여, 현재 블록이 현재 CTU(1210)의 제2 VPDU(1212)에 포함되는 경우에는 좌측에 인접한 CTU(1200) 제1 VPDU(1201), 제2 VPDU(1202), 및 제3 VPDU(1203)를 제외한 제4 VPDU(1204)를 참조 영역으로 사용할 수 있다. 또한, 현재 CTU(1210)의 제1 VPDU(1211), 제3 VPDU(1213) 및 현재 블록이 포함된 제2 VPDU(1212) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.In addition, when the current CTU 1210 is vertically divided and the VPDU is performed in the first VPDU 1211, the third VPDU 1213, the second VPDU 1212, and the fourth VPDU 1214, the current block If this is included in the second VPDU 1212 of the current CTU 1210, the CTU 1200 adjacent to the left, the first VPDU 1201, the second VPDU 1202, and the third VPDU 1203 are excluded. The VPDU 1204 can be used as a reference area. In addition, among the first VPDU 1211 of the current CTU 1210, the third VPDU 1213, and the second VPDU 1212 including the current block, a region reconstructed in advance according to the encoding and decoding order can be used as a reference region. have.
도 13은 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 또 다른 일 실시 예를 도시한다.13 illustrates another embodiment of a region including a current block and a search and reference available region of a current picture reference (CPR).
도 13에서는 도 10에서 도시한 현재 블록이 포함된 CTU가 현재 픽쳐, 현재 타일 그룹, 현재 타일의 가장 좌측에 위치하고, 상단 CTU를 참조할 수 있는 경우에 대하여 현재 CTU와 공간적으로 인접한 CTU 중 상단에 위치한 CTU를 참조하는 일 실시 예를 도시한다.In FIG. 13, in the case where the CTU including the current block shown in FIG. 10 is located at the far left of the current picture, the current tile group, and the current tile, and can refer to the upper CTU, the CTU is located at the top of the CTU spatially adjacent to the current CTU. It shows an embodiment referring to the located CTU.
현재 블록이 현재 CTU(1310)의 제1 VPDU(1311)에 포함되는 경우에 한하여 상단에 인접한 CTU(1300)의 모든 화소 영역을 참조 영역으로 사용하지 않고, 일부 영역만을 참조 영역으로 사용할 수 있다. 도 13에서 도시한 일 실시예에 따르면, 상단에 인접한 CTU(1300)의 제1 VPDU(1301)을 제외한 제2 VPDU(1302), 제3 VPDU(1303), 제4 VPDU(1304) 및 현재 블록이 포함된 VPDU(1311) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.As long as the current block is included in the first VPDU 1311 of the current CTU 1310, all the pixel areas of the CTU 1300 adjacent to the top may not be used as a reference area, and only a partial area may be used as a reference area. According to the embodiment shown in FIG. 13, the second VPDU 1302, the third VPDU 1303, the fourth VPDU 1304, and the current block excluding the first VPDU 1301 of the CTU 1300 adjacent to the top Among the included VPDUs 1311, a region reconstructed in advance according to an encoding and decoding order may be used as a reference region.
현재 블록이 현재 CTU(1310)의 제2 VPDU(1312)에 포함되는 경우에는 상단에 인접한 CTU(1300)의 모든 화소 영역을 참조 영역으로 사용하지 않고, 일부 영만을 참조 영역으로 사용할 수 있으며, 도 13에 도시한 일 실시예에 따르면, 상단에 인접한 CTU(1300)의 제1 VPDU(1301)과 제2 VPDU(1302)를 제외한 제3 VPDU(1303)와 제4 VPDU(1304)를 참조 영역으로 사용할 수 있다. 또한, 현재 CTU(1310)의 제1 VPDU(1311), 및 현재 블록이 포함된 제2 VPDU(1312) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.When the current block is included in the second VPDU 1312 of the current CTU 1310, all the pixel areas of the CTU 1300 adjacent to the top are not used as a reference area, and only some zeros can be used as the reference area. According to the embodiment shown in 13, the third VPDU 1303 and the fourth VPDU 1304 excluding the first VPDU 1301 and the second VPDU 1302 of the CTU 1300 adjacent to the top are used as reference regions. Can be used. In addition, a region reconstructed in advance according to an encoding and decoding order among the first VPDU 1311 of the current CTU 1310 and the second VPDU 1312 including the current block may be used as a reference region.
또한, 현재 블록이 현재 CTU(1310)의 제3 VPDU(1313)에 포함되는 경우에는 상단에 인접한 CTU(1300)의 모든 화소 영역을 참조 영역으로 사용하지 않고, 일부 영만을 참조 영역으로 사용할 수 있으며, 도 13에 도시한 일 실시예에 따르면, 상단에 인접한 CTU(1300)의 제1 VPDU(1301)과 제2 VPDU(1302) 및 제3 VPDU(1303)를 제외한 제4 VPDU(1304)를 참조 영역으로 사용할 수 있다. 또한, 현재 CTU(1310)의 제1 VPDU(1311), 제2 VPDU(1312) 및 현재 블록이 포함된 제3 VPDU(1313) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.In addition, when the current block is included in the third VPDU 1313 of the current CTU 1310, all the pixel areas of the CTU 1300 adjacent to the top are not used as a reference area, and only some zeros can be used as the reference area. , According to the embodiment shown in FIG. 13, refer to the fourth VPDU 1304 excluding the first VPDU 1301, the second VPDU 1302 and the third VPDU 1303 of the CTU 1300 adjacent to the top Can be used as an area. In addition, among the first VPDU 1311, the second VPDU 1312 of the current CTU 1310, and the third VPDU 1313 including the current block, a region reconstructed in advance according to the encoding and decoding order can be used as a reference region. have.
또한, 현재 블록이 현재 CTU(1310)의 제4 VPDU(1313)에 포함되는 경우에는 상단에 인접한 CTU(1300)를 참조 영역으로 사용하지 않고 현재 CTU(1310) 내부의 미리 복원된 영역만을 참조 영역으로 사용할 수 있다.In addition, when the current block is included in the fourth VPDU 1313 of the current CTU 1310, the CTU 1300 adjacent to the top is not used as a reference area, and only the previously restored area inside the current CTU 1310 is the reference area. Can be used as
도 14는 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 또 다른 일 실시예를 도시한다.14 illustrates another embodiment of an area including a current block and a search and reference available area for a current picture reference (CPR).
도 14에서는 도 13에 추가적으로 현재 블록이 현재 CTU(1410)의 분할 형태에 따라 VPDU의 수행 순서가 기존의 z-scan order와 상이한 경우에 대한 공간적으로 상단에 인접한 CTU(1400)의 일부 영역을 참조하는 추가적인 일 실시예를 도시한다.In FIG. 14, in addition to FIG. 13, referring to a partial region of the CTU 1400 spatially adjacent to the top when the execution order of the VPDU is different from the existing z-scan order according to the current block division type of the current CTU 1410. It shows an additional embodiment.
현재 CTU(1410)가 수직 분할되어 VPDU의 수행 순서가 제1 VPDU(1411), 제3 VPDU(1413), 제2 VPDU(1412), 제4 VPDU(1414) 인 경우에 대하여, 현재 블록이 현재 CTU(1410)의 제3 VPDU(1413)에 포함되는 경우에는 상단에 인접한 CTU(1400) 제1 VPDU(1401)과 제2 VPDU(1402)를 제외한 제3 VPDU(1403)와 제4 VPDU(1404)를 참조 영역으로 사용할 수 있다. 또한, 현재 CTU(1410)의 제1 VPDU(1411) 및 현재 블록이 포함된 제3 VPDU(1413) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.When the current CTU 1410 is vertically divided and the order of VPDU execution is the first VPDU 1411, the third VPDU 1413, the second VPDU 1412, and the fourth VPDU 1414, the current block is When included in the 3rd VPDU 1413 of the CTU 1410, the 3rd VPDU 1403 and the 4th VPDU 1404 excluding the 1st VPDU 1401 and 2nd VPDU 1402 of the CTU 1400 adjacent to the top ) Can be used as a reference area. In addition, a region reconstructed in advance according to an encoding and decoding order among the first VPDU 1411 of the current CTU 1410 and the third VPDU 1413 including the current block may be used as a reference region.
또한, 현재 CTU(1410)가 수직 분할되어 VPDU의 수행 순서가 제1 VPDU(1411), 제3 VPDU(1413), 제2 VPDU(1412), 제4 VPDU(1414)인 경우에 대하여, 현재 블록이 현재 CTU(1410)의 제2 VPDU(1412)에 포함되는 경우에는 상단에 인접한 CTU(1400) 제1 VPDU(1401), 제2 VPDU(1402) 및 제3 VPDU(1403)를 제외한 제4 VPDU(1404)를 참조 영역으로 사용할 수 있다. 또한, 현재 CTU(1410)의 제1 VPDU(1411), 제3 VPDU(1413) 및 현재 블록이 포함된 제2 VPDU(1412) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.In addition, for the case where the current CTU 1410 is vertically divided and the VPDU is performed in the first VPDU 1411, the third VPDU 1413, the second VPDU 1412, and the fourth VPDU 1414, the current block If this is included in the second VPDU 1412 of the current CTU 1410, the fourth VPDU excluding the CTU 1400, the first VPDU 1401, the second VPDU 1402, and the third VPDU 1403 adjacent to the top (1404) can be used as a reference area. In addition, among the first VPDU 1411, the third VPDU 1413 of the current CTU 1410, and the second VPDU 1412 including the current block, a region reconstructed in advance according to the encoding and decoding order can be used as a reference region. have.
전술한 바와 같이, 현재 블록은 현재 CTU를 기준으로, 좌측 또는 상단 중 적어도 하나에 위치한 CTU를 기반으로 참조 영역을 설정할 수 있다. 즉, 좌측 또는 상단 CTU를 선택적으로 사용할 수 있으며, 상기 선택은 소정의 부호화 정보에 기초하여 수행될 수도 있다. 부호화 정보는, 좌측 또는 상단 CTU를 참조하는지 여부, 좌측 또는 상단 CTU가 가용한지 여부, 스캔 순서, 현재 CTU 내에서 현재 VPDU의 위치 등에 관한 정보를 포함할 수 있다.As described above, the current block may set the reference region based on the current CTU, based on the CTU located at least one of the left or the top. That is, the left or upper CTU may be selectively used, and the selection may be performed based on predetermined encoding information. The encoding information may include information on whether to refer to a left or upper CTU, whether a left or upper CTU is available, a scan order, and a position of a current VPDU within the current CTU.
도 15는 본 발명이 적용되는 일실시예로서, 모션 벡터 차이값(MVD) 기반의 머지 모드를 이용한 영상 부호화/복호화 방법을 도시한 것이다.15 illustrates an image encoding/decoding method using a merge mode based on a motion vector difference value (MVD) as an embodiment to which the present invention is applied.
머지 모드는 주변 블록의 모션 정보를 현재 블록의 모션 정보로 동일하게 이용하며, AMVP 모드와 달리 별도의 모션 벡터 차이값을 부호화/복호화할 것을 요구하지 않는다. 다만, 머지 모드의 경우에도 모션 벡터의 정확도를 향상시키기 위하여 소정의 모션 벡터 차이값(MVD)을 이용할 수 있다. 본 발명에서, 모션 정보는, 모션 벡터, 참조 픽쳐 인덱스 또는 예측 방향 정보 중 적어도 하나를 포함하는 것으로 이해될 수 있다.The merge mode equally uses motion information of a neighboring block as motion information of a current block, and unlike the AMVP mode, it does not require encoding/decoding a separate motion vector difference value. However, even in the merge mode, a predetermined motion vector difference value (MVD) may be used to improve the accuracy of the motion vector. In the present invention, motion information may be understood as including at least one of a motion vector, a reference picture index, and prediction direction information.
상기 MVD는 소정의 플래그(이하, MVD_flag)에 기초하여 선택적으로 이용될 수 있다. MVD_flag는, 머지 모드에서 모션 벡터 차이값(MVD)을 이용하는지 여부를 나타낼 수 있다. 예를 들어, 상기 플래그가 제1 값인 경우, 머지 모드에서 모션 벡터 차이값이 이용되고, 그렇지 않은 경우, 머지 모드에서 모션 벡터 차이값이 이용되지 아니한다. 즉, 상기 플래그가 제1 값인 경우, 모션 벡터 차이값을 이용하여 머지 모드에 따라 유도된 모션 벡터를 보정하고, 그렇지 않은 경우, 머지 모드에 따른 모션 벡터를 보정하지 않을 수 있다.The MVD may be selectively used based on a predetermined flag (hereinafter, MVD_flag). MVD_flag may indicate whether a motion vector difference value (MVD) is used in the merge mode. For example, when the flag is the first value, the motion vector difference value is used in the merge mode, and if not, the motion vector difference value is not used in the merge mode. That is, when the flag is the first value, the motion vector derived according to the merge mode may be corrected by using the motion vector difference value. Otherwise, the motion vector according to the merge mode may not be corrected.
MVD_flag는 현재 블록의 너비 또는 높이 중 적어도 하나가 8보다 크거나 같은 경우에 한하여 부호화/복호화될 수 있다. 또는, MVD_flag는 현재 블록에 속한 화소의 개수가 64보다 크거나 같은 경우에 한하여 부호화/복호화될 수 있다. 또는, MVD_flag는 현재 블록의 너비와 높이의 합이 12보다 큰 경우에 한하여 부호화/복호화될 수 있다.MVD_flag may be encoded/decoded only when at least one of the width or height of the current block is greater than or equal to 8. Alternatively, MVD_flag may be encoded/decoded only when the number of pixels belonging to the current block is greater than or equal to 64. Alternatively, MVD_flag may be encoded/decoded only when the sum of the width and height of the current block is greater than 12.
도 15를 참조하면, 현재 블록의 머지 후보 리스트를 구성할 수 있다(S1500).Referring to FIG. 15, a merge candidate list of a current block may be configured (S1500).
머지 후보 리스트는, 현재 블록의 모션 정보를 유도하기 위해 이용 가능한 하나 또는 복수의 머지 후보를 포함할 수 있다. 머지 후보 리스트의 크기는, 머지 후보 리스트를 구성하는 머지 후보의 최대 개수를 지시하는 정보(이하, 크기 정보)에 기초하여 가변적으로 결정될 수 있다. 상기 크기 정보는, 부호화 장치에서 부호화되어 시그날링되거나, 복호화 장치에 기-약속된 고정된 값(예를 들어, 2, 3, 4, 5, 6 또는 그 이상의 정수)일 수도 있다.The merge candidate list may include one or a plurality of merge candidates available to derive motion information of the current block. The size of the merge candidate list may be variably determined based on information indicating the maximum number of merge candidates constituting the merge candidate list (hereinafter, size information). The size information may be a fixed value (eg, 2, 3, 4, 5, 6 or more integers) encoded and signaled by the encoding device or pre-committed to the decoding device.
머지 후보 리스트에 속한 복수의 머지 후보는, 공간적 머지 후보 또는 시간적 머지 후보 중 적어도 하나를 포함할 수 있다. The plurality of merge candidates belonging to the merge candidate list may include at least one of a spatial merge candidate or a temporal merge candidate.
공간적 머지 후보는, 현재 블록에 공간적으로 인접한 주변 블록 또는 상기 주변 블록의 모션 정보를 의미할 수 있다. 여기서, 주변 블록은, 현재 블록의 좌하단 블록(A0), 좌측 블록(A1), 우상단 블록(B0), 상단 블록(B1) 또는 좌상단 블록(B2) 중 적어도 하나를 포함할 수 있다. 소정의 우선순서에 따라, 상기 주변 블록 중 가용한 주변 블록이 순차적으로 머지 후보 리스트에 추가될 수 있다. 예를 들어, 우선순위는, B1->A1->B0->A1->B2, A1->B1->A0->B1->B2, A1->B1->B0->A0->B2 등으로 정의될 수 있으며, 다만 이에 한정되지 아니한다.The spatial merge candidate may mean a neighboring block spatially adjacent to the current block or motion information of the neighboring block. Here, the neighboring block may include at least one of a lower left block A0, a left block A1, an upper right block B0, an upper block B1, or an upper left block B2 of the current block. According to a predetermined priority order, available neighboring blocks among the neighboring blocks may be sequentially added to the merge candidate list. For example, the priority is B1->A1->B0->A1->B2, A1->B1->A0->B1->B2, A1->B1->B0->A0->B2, etc. It may be defined as, but is not limited thereto.
시간적 머지 후보는, 콜 픽쳐(co-located picture)에 속한 하나 또는 그 이상의 콜 블록(co-located block) 또는 상기 콜 블록의 모션 정보를 의미할 수 있다. 여기서, 콜 픽쳐는, 참조 픽쳐 리스트에 속한 복수의 참조 픽쳐 중 어느 하나이며, 이는 현재 블록이 속한 픽쳐와 다른 픽쳐일 수 있다. 콜 픽쳐는 참조 픽쳐 리스트에서 가장 처음에 위치한 픽쳐이거나 가장 마지막에 위치한 픽쳐일 수 있다. 또는, 콜 픽쳐는 콜 픽쳐를 지시하기 위해 부호화된 인덱스에 기초하여 특정될 수도 있다. 콜 블록은, 현재 블록의 중앙 위치를 포함하는 블록(C1) 또는 현재 블록의 우하단 코너에 인접한 주변 블록(C0) 중 적어도 하나를 포함할 수 있다. 소정의 우선순서에 따라, 상기 C0와 C1 중 가용한 블록이 순차적으로 머지 후보 리스트에 추가될 수 있다. 예를 들어, C0는 C1보다 높은 우선순위를 가질 수 있다. 다만, 이에 한정되지 아니하며, C1은 C0보다 높은 우선순위를 가질 수도 있다.The temporal merge candidate may mean one or more co-located blocks belonging to a co-located picture or motion information of the collocated block. Here, the collocated picture is any one of a plurality of reference pictures included in the reference picture list, and may be a picture different from the picture to which the current block belongs. The collocated picture may be the first picture or the last picture in the reference picture list. Alternatively, the collocated picture may be specified based on an index coded to indicate the collocated picture. The collocated block may include at least one of a block C1 including a center position of the current block or a neighboring block C0 adjacent to the lower right corner of the current block. According to a predetermined priority order, an available block of C0 and C1 may be sequentially added to the merge candidate list. For example, C0 may have a higher priority than C1. However, the present invention is not limited thereto, and C1 may have a higher priority than C0.
부호화/복호화 장치는, 현재 블록 이전에 부호화/복호화가 완료된 하나 이상의 블록(이하, 이전 블록)의 모션 정보를 저장하는 버퍼를 포함할 수 있다. 다시 말해, 버퍼는, 이전 블록의 모션 정보로 구성된 리스트(이하, 모션 정보 리스트)를 저장할 수 있다.The encoding/decoding apparatus may include a buffer that stores motion information of one or more blocks (hereinafter, referred to as previous blocks) for which encoding/decoding has been completed before the current block. In other words, the buffer may store a list consisting of motion information of a previous block (hereinafter, a motion information list).
상기 모션 정보 리스트는, 픽쳐, 슬라이스, 타일, CTU 행 또는 CTU 중 어느 하나의 단위로 초기화될 수 있다. 초기화는 모션 정보 리스트가 비어있는 상태를 의미할 수 있다. 이전 블록의 부호화/복호화 순서에 따라 순차적으로 해당 이전 블록의 모션 정보가 모션 정보 리스트에 추가되되, 모션 정보 리스트는, 모션 정보 리스트의 크기를 고려하여 FIFO(first-in first-out) 방식으로 업데이트될 수 있다. 예를 들어, 가장 최근에 부호화/복호화된 모션 정보(이하, 최근 모션 정보)가 모션 정보 리스트에 기-추가된 모션 정보와 동일한 경우, 최근 모션 정보는 모션 정보 리스트에 추가되지 않을 수 있다. 또는, 최근 모션 정보와 동일한 모션 정보를 모션 정보 리스트에서 제거하고, 최근 모션 정보를 모션 정보 리스트에 추가할 수도 있다. 이때, 최근 모션 정보는, 모션 정보 리스트의 가장 마지막 위치에 추가되거나, 제거된 모션 정보의 위치에 추가될 수 있다.The motion information list may be initialized in units of any one of a picture, a slice, a tile, a CTU row, or a CTU. Initialization may mean a state in which the motion information list is empty. Motion information of the previous block is sequentially added to the motion information list according to the encoding/decoding order of the previous block, but the motion information list is updated in a first-in first-out (FIFO) method in consideration of the size of the motion information list. Can be. For example, when the most recently encoded/decoded motion information (hereinafter, the latest motion information) is the same as motion information pre-added to the motion information list, the latest motion information may not be added to the motion information list. Alternatively, motion information identical to the latest motion information may be removed from the motion information list, and the latest motion information may be added to the motion information list. In this case, the latest motion information may be added to the last position of the motion information list or may be added to the position of the removed motion information.
이전 블록은, 현재 블록에 공간적으로 인접한 하나 또는 그 이상의 주변 블록 또는 현재 블록에 공간적으로 인접하지 않은 하나 또는 그 이상의 주변 블록 중 적어도 하나를 포함할 수 있다.The previous block may include at least one of one or more neighboring blocks spatially adjacent to the current block or one or more neighboring blocks not spatially adjacent to the current block.
머지 후보 리스트는, 버퍼 또는 모션 정보 리스트에 속한 이전 블록 또는 이전 블록의 모션 정보가 머지 후보로 더 추가될 수도 있다.In the merge candidate list, motion information of a previous block or a previous block belonging to the buffer or motion information list may be further added as a merge candidate.
구체적으로, 모션 정보 리스트와 머지 후보 리스트 간의 중복성 체크가 수행될 수 있다. 중복성 체크는, 머지 후보 리스트에 속한 머지 후보 전부 또는 일부와 모션 정보 리스트에 이전 블록 전부 또는 일부에 대해서 수행될 수 있다. 다만, 설명의 편의를 위해, 본 발명의 중복성 체크는, 머지 후보 리스트에 속한 머지 후보 일부와 모션 정보 리스트에 이전 블록 일부에 대해서 수행됨을 가정한다. 여기서, 머지 후보 리스트의 일부 머지 후보는, 공간적 머지 후보 중 좌측 블록 또는 상단 블록 중 적어도 하나를 포함할 수 있다. 다만, 이에 한정되지 아니하며, 일부 머지 후보는, 공간적 머지 후보 중 어느 하나의 블록으로 제한될 수도 있고, 좌하단 블록, 우상단 블록, 좌상단 블록 또는 시간적 머지 후보 중 적어도 하나를 더 포함할 수도 있다. 모션 정보 리스트의 일부 이전 블록은, 모션 정보 리스트에 최근에 추가된 K개의 이전 블록을 의미할 수 있다. 여기서, K는 1, 2, 3 또는 그 이상이고, 부호화/복호화 장치에 기-약속된 고정된 값일 수 있다. Specifically, redundancy check between the motion information list and the merge candidate list may be performed. The redundancy check may be performed on all or part of the merge candidates belonging to the merge candidate list and all or part of the previous block in the motion information list. However, for convenience of explanation, it is assumed that the redundancy check of the present invention is performed on a part of a merge candidate belonging to a merge candidate list and a part of a previous block in the motion information list. Here, some merge candidates in the merge candidate list may include at least one of a left block or an upper block among spatial merge candidates. However, the present invention is not limited thereto, and some merge candidates may be limited to any one block among spatial merge candidates, and may further include at least one of a lower left block, an upper right block, an upper left block, or a temporal merge candidate. Some previous blocks of the motion information list may mean K previous blocks recently added to the motion information list. Here, K may be 1, 2, 3 or more, and may be a fixed value pre-committed to the encoding/decoding device.
예를 들어, 모션 정보 리스트에 5개의 이전 블록(또는 이전 블록의 모션 정보)가 저장되어 있고, 각 이전 블록에 1 내지 5의 인덱스가 할당되어 있다고 가정한다. 인덱스가 클수록 최근에 저장된 이전 블록을 의미한다. 이때, 인덱스 5, 4 및 3을 가진 이전 블록과 머지 후보 리스트의 일부 머지 후보 간의 모션 정보의 중복성을 체크할 수 있다. 또는, 인덱스 5 및 4를 가진 이전 블록과 머지 후보 리스트의 일부 머지 후보 간의 중복성을 체크할 수도 있다. 또는, 가장 최근에 추가된 인덱스 5의 이전 블록을 제외하고, 인덱스 4 및 3을 가진 이전 블록과 머지 후보 리스트의 일부 머지 후보 간의 중복성을 체크할 수도 있다.For example, it is assumed that 5 previous blocks (or motion information of the previous block) are stored in the motion information list, and indices of 1 to 5 are allocated to each previous block. The larger the index, the more recently stored previous block. In this case, it is possible to check the redundancy of motion information between a previous block having indices 5, 4, and 3 and some merge candidates of the merge candidate list. Alternatively, redundancy between a previous block having indices 5 and 4 and some merge candidates of the merge candidate list may be checked. Alternatively, redundancy between the previous block having indexes 4 and 3 and some merge candidates of the merge candidate list may be checked, excluding the most recently added previous block of index 5.
중복성 체크 결과, 동일한 모션 정보를 가진 이전 블록이 하나라도 존재하는 경우, 모션 정보 리스트의 이전 블록은 머지 후보 리스트에 추가되지 않을 수 있다. 반면 동일한 모션 정보를 가진 이전 블록이 존재하지 않는 경우, 모션 정보 리스트의 이전 블록 전부 또는 일부는 머지 후보 리스트의 마지막 위치에 추가될 수 있다. 이때, 모션 정보 리스트에서 최근에 추가된 이전 블록의 순서(즉, 인덱스가 큰 순서부터 작은 순서로)로 머지 후보 리스트에 추가될 수 있다. 다만, 모션 정보 리스트에 가장 최근에 추가된 이전 블록(즉, 가장 큰 인덱스를 가진 이전 블록)는 머지 후보 리스트에 추가되지 않도록 제한될 수도 있다. 상기 이전 블록의 추가는, 머지 후보 리스트의 크기를 고려하여 수행될 수 있다. 예를 들어, 전술한 머지 후보 리스트의 크기 정보에 따라, 머지 후보 리스트가 최대 T개의 머지 후보를 가지는 경우를 가정한다. 이 경우, 이전 블록의 추가는, 머지 후보 리스트에 속한 머지 후보의 개수 (T-n)개가 될 때까지만 수행되도록 제한될 수 있다. 여기서, n은 1, 2 또는 그 이상의 정수일 수 있다. 또는, 이전 블록의 추가는, 머지 후보 리스트에 속한 머지 후보의 개수 T개가 될 때까지 반복적으로 수행될 수도 있다. As a result of the redundancy check, if even one previous block having the same motion information exists, the previous block of the motion information list may not be added to the merge candidate list. On the other hand, if there is no previous block having the same motion information, all or part of the previous block of the motion information list may be added to the last position of the merge candidate list. In this case, it may be added to the merge candidate list in the order of the previous blocks recently added from the motion information list (that is, in the order of the largest index to the smallest). However, the previous block most recently added to the motion information list (ie, the previous block having the largest index) may be restricted so that it is not added to the merge candidate list. The addition of the previous block may be performed in consideration of the size of the merge candidate list. For example, it is assumed that the merge candidate list has at most T merge candidates according to the size information of the merge candidate list described above. In this case, the addition of the previous block may be limited to be performed only until the number of merge candidates included in the merge candidate list (T-n) is reached. Here, n may be an integer of 1, 2 or more. Alternatively, the addition of the previous block may be repeatedly performed until the number of merge candidates belonging to the merge candidate list reaches T.
도 15를 참조하면, 머지 후보 리스트와 머지 인덱스(merge_idx)를 기반으로, 현재 블록의 모션 정보를 유도할 수 있다(S1510).Referring to FIG. 15, motion information of a current block may be derived based on a merge candidate list and a merge index (merge_idx) (S1510).
머지 인덱스는, 머지 후보 리스트에 속한 복수의 머지 후보 중 어느 하나를 특정할 수 있다. 현재 블록의 모션 정보는, 머지 인덱스에 의해 특정된 머지 후보의 모션 정보로 설정될 수 있다.The merge index may specify any one of a plurality of merge candidates belonging to the merge candidate list. The motion information of the current block may be set as motion information of the merge candidate specified by the merge index.
MVD_flag의 값에 따라, 현재 블록이 이용 가능한 머지 후보의 최대 개수가 적응적으로 결정될 수 있다. MVD_flag가 0이면, 최대 M개의 머지 후보를 사용하는 한편, MVD_flag가 1이면, N개의 머지 후보를 사용할 수 있다. 여기서, M은 N보다 작은 자연수일 수 있다.According to the value of MVD_flag, the maximum number of merge candidates for which the current block is available may be adaptively determined. If MVD_flag is 0, up to M merge candidates are used, while if MVD_flag is 1, N merge candidates may be used. Here, M may be a natural number smaller than N.
예를 들어, MVD_flag가 1인 경우, 시그날링되는 머지 인덱스는 0 또는 1의 값을 가질 수 있다. 즉, 머지 모드에서 모션 벡터 차이값이 이용되는 경우, 현재 블록의 모션 정보는 머지 후보 리스트의 첫번째 머지 후보(merge_idx=0) 또는 두번째 머지 후보(merge_idx=1) 중 어느 하나만을 사용하여 유도될 수 있다.For example, when MVD_flag is 1, the signaled merge index may have a value of 0 or 1. That is, when a motion vector difference value is used in the merge mode, the motion information of the current block may be derived using only one of the first merge candidate (merge_idx=0) or the second merge candidate (merge_idx=1) of the merge candidate list. have.
따라서, 머지 후보 리스트에 속한 머지 후보의 최대 개수가 M개인 경우라도, 머지 모드에서 모션 벡터 차이값이 사용되는 경우에는 현재 블록이 이용 가능한 머지 후보의 최대 개수는 2개일 수 있다.Accordingly, even when the maximum number of merge candidates in the merge candidate list is M, when a motion vector difference value is used in the merge mode, the maximum number of merge candidates in which the current block can be used may be two.
또는, MVD_flag가 1인 경우, 머지 인덱스가 부호화/복호화되지 않고, 대신에 머지 인덱스를 0으로 설정함으로써, 첫번째 머지 후보의 사용이 강제될 수도 있다. 또는, MVD_flag가 1인 경우, 머지 인덱스는 0 내지 i 사이의 값을 가질 수 있고, i는 2, 3 또는 그 이상의 정수일 수 있고, i는 (M-1)과 동일할 수 있다.Alternatively, when MVD_flag is 1, the merge index is not encoded/decoded, and instead, the merge index is set to 0, whereby the use of the first merge candidate may be forced. Alternatively, when MVD_flag is 1, the merge index may have a value between 0 and i, i may be an integer of 2, 3 or more, and i may be the same as (M-1).
도 15를 참조하면, 현재 블록의 머지 모드를 위한 모션 벡터 차이값(MVD)을 유도할 수 있다(S1520).Referring to FIG. 15, a motion vector difference value (MVD) for a merge mode of a current block may be derived (S1520).
현재 블록의 MVD는 머지 오프셋 벡터(offsetMV)에 기초하여 유도될 수 있다. MVD는 L0 방향의 MVD(MVD0) 또는 L1 방향의 MVD(MVD1) 중 적어도 하나를 포함하며, MVD0와 MVD1 각각은 머지 오프셋 벡터를 이용하여 유도될 수 있다.The MVD of the current block may be derived based on a merge offset vector (offsetMV). The MVD includes at least one of MVD (MVD0) in the L0 direction and MVD (MVD1) in the L1 direction, and each of MVD0 and MVD1 may be derived using a merge offset vector.
머지 오프셋 벡터는, 머지 오프셋 벡터의 길이(mvdDistance)와 방향(mvdDirection)에 기초하여 결정될 수 있다. 예를 들어, 머지 오프셋 벡터(offsetMV)는, 다음 수학식 7과 같이 결정될 수 있다.The merge offset vector may be determined based on the length (mvdDistance) and direction (mvdDirection) of the merge offset vector. For example, the merge offset vector (offsetMV) may be determined as in Equation 7 below.
[수학식 7][Equation 7]
offsetMV[ x0 ][ y0 ][ 0 ] = ( mvdDistance[ x0 ][ y0 ] << 2 ) * mvdDirection[ x0 ][ y0 ][0]offsetMV[ x0 ][ y0 ][ 0] = (mvdDistance[ x0 ][ y0] << 2) * mvdDirection[ x0 ][ y0 ][0]
offsetMV[ x0 ][ y0 ][ 1 ] = ( mvdDistance[ x0 ][ y0 ] << 2 ) * mvdDirection[ x0 ][ y0 ][1]offsetMV[ x0 ][ y0 ][ 1] = (mvdDistance[ x0 ][ y0] << 2) * mvdDirection[ x0 ][ y0 ][1]
여기서, mvdDistance는 디스턴스 인덱스(distance_idx) 또는 소정의 플래그(pic_fpel_mmvd_enabled_flag) 중 적어도 하나를 고려하여 결정될 수 있다. 디스턴스 인덱스(distance_idx)는, 모션 벡터 차이값(MVD)의 길이 또는 거리를 특정하기 위해 부호화된 인덱스를 의미할 수 있다. pic_fpel_mmvd_enabled_flag는, 현재 블록의 머지 모드에서 모션 벡터가 정수 화소 정밀도를 사용하는지 여부를 지시할 수 있다. 예를 들어, pic_fpel_mmvd_enabled_flag가 제1 값인 경우, 현재 블록의 머지 모드는 정수 화소 정밀도를 사용한다. 즉, 이는 현재 블록의 모션 벡터 해상도가 정수 펠(integer pel)임을 의미할 수 있다. 반면, pic_fpel_mmvd_enabled_flag가 제2 값인 경우, 현재 블록의 머지 모드는 소수 화소 정밀도를 사용할 수 있다. 다시 말해, pic_fpel_mmvd_enabled_flag가 제2 값인 경우, 현재 블록의 머지 모드는 정수 화소 정밀도를 사용할 수도 있고, 소수 화소 정밀도를 사용할 수도 있다. 또는, pic_fpel_mmvd_enabled_flag가 제2 값인 경우, 현재 블록의 머지 모드는 소수 화소 정밀도만을 사용하도록 제한될 수도 있다. 소수 화소 정밀도의 예로, 1/2 pel, 1/4 pel, 1/8 pel 등이 있을 수 있다.Here, mvdDistance may be determined in consideration of at least one of a distance index (distance_idx) or a predetermined flag (pic_fpel_mmvd_enabled_flag). The distance index (distance_idx) may mean an index encoded to specify the length or distance of the motion vector difference value MVD. pic_fpel_mmvd_enabled_flag may indicate whether the motion vector uses integer pixel precision in the merge mode of the current block. For example, when pic_fpel_mmvd_enabled_flag is the first value, the merge mode of the current block uses integer pixel precision. That is, this may mean that the motion vector resolution of the current block is an integer pel. On the other hand, when pic_fpel_mmvd_enabled_flag is the second value, the merge mode of the current block may use fractional pixel precision. In other words, when pic_fpel_mmvd_enabled_flag is the second value, the merge mode of the current block may use integer pixel precision or decimal pixel precision. Alternatively, when pic_fpel_mmvd_enabled_flag is the second value, the merge mode of the current block may be limited to use only fractional pixel precision. Examples of the precision of a fractional pixel may include 1/2 pel, 1/4 pel, and 1/8 pel.
예를 들어, mvdDistance는 다음 표 3과 같이 결정될 수 있다.For example, mvdDistance may be determined as shown in Table 3 below.
distance_idx[ x0 ][ y0 ]distance_idx[ x0 ][ y0 ] MmvdDistance[ x0 ][ y0 ]MmvdDistance[ x0 ][ y0 ]
pic_fpel_mmvd_enabled_flag = = 0pic_fpel_mmvd_enabled_flag = = 0 pic_fpel_mmvd_enabled_flag = = 1pic_fpel_mmvd_enabled_flag = = 1
00 1One 44
1One 22 88
22 44 1616
33 88 3232
44 1616 6464
55 3232 128128
66 6464 256256
77 128128 512512
또한, mvdDirection는, 머지 오프셋 벡터의 방향을 나타내며, 방향 인덱스(direction_idx)에 기초하여 결정될 수 있다. 여기서, 방향은, 좌, 우, 상, 하, 좌상, 좌하, 우상 또는 우하 중 적어도 하나의 방향을 포함할 수 있다. 예를 들어, mvdDirection는 다음 표 4와 같이 결정될 수 있다.Also, mvdDirection indicates the direction of the merge offset vector, and may be determined based on a direction index (direction_idx). Here, the direction may include at least one of left, right, top, bottom, top left, bottom left, top right, or bottom right. For example, mvdDirection may be determined as shown in Table 4 below.
direction_idx[ x0 ][ y0 ]direction_idx[ x0 ][ y0 ] mvdDirection[ x0 ][ y0 ][0]mvdDirection[ x0 ][ y0 ][0] mvdDirection[ x0 ][ y0 ][1]mvdDirection[ x0 ][ y0 ][1]
00 +1+1 00
1One -1-One 00
22 00 +1+1
33 00 -1-One
표 4에서, mvdDirection[ x0 ][ y0 ][0]는 모션 벡터 차이값의 x 성분의 부호를 의미하고, mvdDirection[ x0 ][ y0 ][1]는 모션 벡터 차이값의 y 성분의 부호를 의미할 수 있다. direction_idx가 0인 경우, 모션 벡터 차이값의 방향은 우 방향으로, direction_idx가 1인 경우, 모션 벡터 차이값의 방향은 좌 방향으로, direction_idx가 2인 경우, 모션 벡터 차이값의 방향은 하 방향으로, direction_idx가 3인 경우, 모션 벡터 차이값의 방향은 상 방향으로 각각 결정될 수 있다.In Table 4, mvdDirection[ x0 ][ y0 ][0] means the sign of the x component of the motion vector difference value, and mvdDirection[ x0 ][ y0 ][1] means the sign of the y component of the motion vector difference value. can do. When direction_idx is 0, the direction of the motion vector difference value is in the right direction, when direction_idx is 1, the direction of the motion vector difference value is in the left direction, and when direction_idx is 2, the direction of the motion vector difference value is in the downward direction. When, direction_idx is 3, the directions of the motion vector difference values may be respectively determined in the upward direction.
전술한 디스턴스 인덱스와 방향 인덱스는 MVD_flag가 제1 값인 경우에 한하여 부호화/복호화될 수 있다.The above-described distance index and direction index may be encoded/decoded only when MVD_flag is the first value.
한편 , 모션 벡터 차이값(MVD)는 앞서 결정된 머지 오프셋 벡터와 동일하게 설정될 수 있다. 또는, 머지 오프셋 벡터는, 현재 블록의 참조 픽쳐와 현재 블록이 속한 현재 픽쳐 간의 POC 차이(PocDiff)를 고려하여 보정될 수 있고, 보정된 머지 오프셋 벡터가 모션 벡터 차이값(MVD)으로 설정될 수도 있다. 이 경우, 현재 블록은 양방향 예측을 부호화/복호화되며, 상기 현재 블록의 참조 픽쳐는 제1 참조 픽쳐(L0 방향의 참조 픽쳐)와 제2 참조 픽쳐(L1 방향의 참조 픽쳐)를 포함할 수 있다. 설명의 편의를 위해, 이하 제1 참조 픽쳐와 현재 픽쳐 간의 POC 차이를 PocDiff0라 하고, 제2 참조 픽쳐와 현재 픽쳐 간의 POC 차이를 PocDiff1라 한다.Meanwhile, the motion vector difference value MVD may be set equal to the previously determined merge offset vector. Alternatively, the merge offset vector may be corrected in consideration of a POC difference (PocDiff) between a reference picture of the current block and a current picture to which the current block belongs, and the corrected merge offset vector may be set as a motion vector difference value (MVD). have. In this case, the current block is encoded/decoded for bidirectional prediction, and the reference picture of the current block may include a first reference picture (a reference picture in the L0 direction) and a second reference picture (a reference picture in the L1 direction). For convenience of explanation, the POC difference between the first reference picture and the current picture is hereinafter referred to as PocDiff0, and the POC difference between the second reference picture and the current picture is referred to as PocDiff1.
PocDiff0와 PocDiff1이 동일한 경우, 현재 블록의 MVD0과 MVD1은 각각 머지 오프셋 벡터로 동일하게 설정될 수 있다.When PocDiff0 and PocDiff1 are the same, MVD0 and MVD1 of the current block may be set equally as merge offset vectors, respectively.
PocDiff0와 PocDiff1이 동일하지 않은 경우에 있어서, PocDiff0의 절대값이 PocDiff1의 절대값보다 크거나 같은 경우, MVD0는 머지 오프셋 벡터로 동일하게 설정될 수 있다. 한편, MVD1은 기-설정된 MVD0에 기초하여 유도될 수 있다. 예를 들어, 제1 및 제2 참조 픽쳐가 롱텀 참조 픽쳐인 경우, MVD1은 MVD0에 제1 스케일링 팩터를 적용하여 유도될 수 있다. 제1 스케일링 팩터는 PocDiff0와 PocDiff1에 기초하여 결정될 수 있다. 반면, 제1 또는 제2 참조 픽쳐 중 적어도 하나가 숏텀 참조 픽쳐인 경우, MVD1은 MVD0에 제2 스케일링 팩터를 적용하여 유도될 수 있다. 제2 스케일링 팩터는 부호화/복호화 장치에 기-약속된 고정된 값(예를 들어, -1/2, -1 등)일 수 있다. 다만, 제2 스케일링 팩터는, PocDiff0의 부호와 PocDiff1의 부호가 서로 다른 경우에 한하여 적용될 수 있다. 만일, PocDiff0의 부호와 PocDiff1의 부호가 서로 동일한 경우, MVD1은 MVD0와 동일하게 설정되고, 별도의 스케일링이 수행되지 않을 수 있다.When PocDiff0 and PocDiff1 are not the same, when the absolute value of PocDiff0 is greater than or equal to the absolute value of PocDiff1, MVD0 may be set equally as the merge offset vector. Meanwhile, MVD1 may be derived based on a pre-set MVD0. For example, when the first and second reference pictures are long-term reference pictures, MVD1 may be derived by applying a first scaling factor to MVD0. The first scaling factor may be determined based on PocDiff0 and PocDiff1. On the other hand, when at least one of the first or second reference pictures is a short-term reference picture, MVD1 may be derived by applying a second scaling factor to MVD0. The second scaling factor may be a fixed value (eg, -1/2, -1, etc.) pre-committed to the encoding/decoding device. However, the second scaling factor can be applied only when the code of PocDiff0 and the code of PocDiff1 are different from each other. If the sign of PocDiff0 and the sign of PocDiff1 are the same, MVD1 is set to be the same as MVD0, and separate scaling may not be performed.
한편, PocDiff0와 PocDiff1이 동일하지 않은 경우에 있어서, PocDiff0의 절대값이 PocDiff1의 절대값보다 작은 경우, MVD1은 머지 오프셋 벡터로 동일하게 설정될 수 있다. 한편, MVD0은 기-설정된 MVD1에 기초하여 유도될 수 있다. 예를 들어, 제1 및 제2 참조 픽쳐가 롱텀 참조 픽쳐인 경우, MVD0은 MVD1에 제1 스케일링 팩터를 적용하여 유도될 수 있다. 제1 스케일링 팩터는 PocDiff0와 PocDiff1에 기초하여 결정될 수 있다. 반면, 제1 또는 제2 참조 픽쳐 중 적어도 하나가 숏텀 참조 픽쳐인 경우, MVD0은 MVD1에 제2 스케일링 팩터를 적용하여 유도될 수 있다. 제2 스케일링 팩터는 부호화/복호화 장치에 기-약속된 고정된 값(예를 들어, -1/2, -1 등)일 수 있다. 다만, 제2 스케일링 팩터는, PocDiff0의 부호와 PocDiff1의 부호가 서로 다른 경우에 한하여 적용될 수 있다. 만일, PocDiff0의 부호와 PocDiff1의 부호가 서로 동일한 경우, MVD0은 MVD1과 동일하게 설정되고, 별도의 스케일링이 수행되지 않을 수 있다.Meanwhile, when PocDiff0 and PocDiff1 are not the same, when the absolute value of PocDiff0 is less than the absolute value of PocDiff1, MVD1 may be set equally as the merge offset vector. Meanwhile, MVD0 may be derived based on a pre-set MVD1. For example, when the first and second reference pictures are long-term reference pictures, MVD0 may be derived by applying a first scaling factor to MVD1. The first scaling factor may be determined based on PocDiff0 and PocDiff1. On the other hand, when at least one of the first or second reference pictures is a short-term reference picture, MVD0 may be derived by applying a second scaling factor to MVD1. The second scaling factor may be a fixed value (eg, -1/2, -1, etc.) pre-committed to the encoding/decoding device. However, the second scaling factor can be applied only when the code of PocDiff0 and the code of PocDiff1 are different from each other. If the sign of PocDiff0 and the sign of PocDiff1 are the same, MVD0 is set to be the same as MVD1, and separate scaling may not be performed.
도 15를 참조하면, 모션 벡터 차이값(MVD)를 이용하여, 현재 블록의 모션 벡터를 보정하고(S1530), 보정된 모션 벡터를 기반으로 현재 블록의 모션 보상을 수행할 수 있다(S1540).Referring to FIG. 15, a motion vector of a current block may be corrected using a motion vector difference value (MVD) (S1530), and motion compensation of a current block may be performed based on the corrected motion vector (S1540).
도 16 내지 도 21은 본 발명이 적용되는 일실시예로서, 소정의 우선순위에 기초하여 현재 블록의 인터 예측 모드를 결정하는 방법을 도시한 것이다.16 to 21 are diagrams illustrating a method of determining an inter prediction mode of a current block based on a predetermined priority in an embodiment to which the present invention is applied.
본 발명은 비디오 코딩 기술 중 스킵 모드 및/또는 머지 모드로 부호화된 부호화 블록에서 머지 모드와 관련된 부호화 정보를 파싱하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for parsing encoding information related to a merge mode from a coding block encoded in a skip mode and/or a merge mode among video coding techniques.
현재 부호화 및/또는 복호화 블록이 스킵 혹은 머지 모드로 부호화 및/또는 복호화된 경우, 다수개의 예측 방법이 사용될 수 있으며, 다수개의 예측 방법을 효율적으로 시그널링하는 방법이 필요하다. 현재 부호화 및/또는 복호화 블록의 머지 모드 관련 부호화 정보를 시그널링 및 파싱을 수행함에 있어, 다수개의 예측 방법 중 발생 빈도가 높은 순서에 따라 시그널링 및 파싱하는 신택스의 순서가 결정될 수 있다.When a current encoding and/or decoding block is encoded and/or decoded in a skip or merge mode, a plurality of prediction methods may be used, and a method of efficiently signaling a plurality of prediction methods is required. In signaling and parsing the merge mode-related encoding information of the current encoding and/or decoding block, the order of the signaling and parsing syntax may be determined according to an order in which the occurrence frequency is high among a plurality of prediction methods.
상기 다수개의 예측 방법은, 블록 단위의 머지 모드, 일반적인 CU 단위의 머지 모드 (regular merge mode or CU merge mode), MMVD (MVD 기반의 머지 모드), 서브블록 단위의 머지 모드, 결합 예측 모드, 비-사각형 예측 모드 또는 현재 픽쳐 참조 모드 중 적어도 하나를 포함할 수 있다.The plurality of prediction methods include a block unit merge mode, a general CU unit merge mode (regular merge mode or CU merge mode), MMVD (MVD-based merge mode), a subblock unit merge mode, a combined prediction mode, and non- -It may include at least one of a square prediction mode or a current picture reference mode.
또한, 각 해당 신택스를 시그널링 및 파싱하는 방법, 이에 대한 조건, 혹은 해당 신택스가 표현되지 않은 경우(또는, 시그날링되지 않는 경우)에 대하여는 이하 신택스 테이블과 각 신택스에 대한 시멘틱을 통하여 설명한다. 다만, 중복적인 설명은 생략하기로 한다.In addition, a method of signaling and parsing each corresponding syntax, a condition for this, or a case in which the corresponding syntax is not expressed (or not signaled) will be described below through the syntax table and semantics for each syntax. However, redundant descriptions will be omitted.
도 16을 참조하면, regular_merge_flag는 현재 블록의 인터 예측 파라미터를 생성하기 위해 일반적인 CU 단위의 머지 모드가 사용되는지 여부를 지시할 수 있다. regular_merge_flag가 시그날링되지 않는 경우, regular_merge_flag는 0으로 설정될 수 있다.Referring to FIG. 16, regular_merge_flag may indicate whether a general CU-based merge mode is used to generate an inter prediction parameter of a current block. When regular_merge_flag is not signaled, regular_merge_flag may be set to 0.
mmvd_flag[ x0 ][ y0 ]는 현재 블록의 인터 예측 파라미터를 생성하기 위해 MVD 기반의 머지 모드가 이용되는지 여부를 지시할 수 있다. 여기서, mmvd_flag[ x0 ][ y0 ]는 전술한 MVD_flag와 동일한 의미로 해석될 수 있다. mmvd_flag가 시그날링되지 않는 경우, mmvd_flag는 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인지 여부 또는 regular_merge_flag 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록이 아니고 regular_merge_flag가 1이 아닌 경우, mmvd_flag는 1로 유도되고, 그렇지 않은 경우, mmvd_flag는 0으로 유도될 수 있다.mmvd_flag[x0][y0] may indicate whether the MVD-based merge mode is used to generate the inter prediction parameter of the current block. Here, mmvd_flag[x0][y0] may be interpreted as having the same meaning as MVD_flag described above. When mmvd_flag is not signaled, mmvd_flag may be derived based on at least one of regular_merge_flag or whether the current block is a block coded in the current picture reference mode. For example, when the current block is not a block encoded in the current picture reference mode and regular_merge_flag is not 1, mmvd_flag is derived as 1, otherwise, mmvd_flag may be derived as 0.
merge_subblock_flag는 현재 블록에 대한 서브 블록 단위의 인터 예측 파라미터가 주변 블록으로부터 유도되는지 여부를 지시할 수 있다. merge_subblock_flag가 시그날링되지 않는 경우, merge_subblock_flag는 sps_ciip_enabled_flag 또는 sps_triangle_enabled_flag 중 적어도 하나에 기초하여 유도될 수 있다. 여기서, sps_ciip_enabled_flag는 결합 예측 모드에 관한 부호화 정보(e.g., ciip_flag) 가 존재하는지 여부를 지시하고, sps_triangle_enabled_flag는 비-사각 파티션 기반의 모션 보상이 이용될 수 있는지 여부를 지시할 수 있다.The merge_subblock_flag may indicate whether an inter prediction parameter in a subblock unit for the current block is derived from a neighboring block. When merge_subblock_flag is not signaled, merge_subblock_flag may be derived based on at least one of sps_ciip_enabled_flag or sps_triangle_enabled_flag. Here, sps_ciip_enabled_flag indicates whether encoding information (e.g., ciip_flag) about the combined prediction mode exists, and sps_triangle_enabled_flag may indicate whether motion compensation based on non-rectangular partitions can be used.
예를 들어, sps_ciip_enabled_flag 또는 sps_triangle_enabled_flag 중 적어도 하나가 0인 경우, merge_subblock_flag는 1로 유도되고, 그렇지 않은 경우, merge_subblock_flag는 0으로 유도될 수 있다.For example, when at least one of sps_ciip_enabled_flag or sps_triangle_enabled_flag is 0, merge_subblock_flag is derived as 1, otherwise, merge_subblock_flag may be derived as 0.
ciip_flag는 현재 블록에 대해 결합 예측 모드가 적용되는지 여부를 지시할 수 있다. ciip_flag가 시그날링되지 않는 경우, ciip_flag는 sps_triangle_enabled_flag에 기초하여 유도될 수 있다. 예를 들어, sps_triangle_enabled_flag가 0인 경우, ciip_flag는 1로 유도되고, 그렇지 않은 경우, ciip_flag는 0으로 유도될 수 있다.ciip_flag may indicate whether the combined prediction mode is applied to the current block. When ciip_flag is not signaled, ciip_flag may be derived based on sps_triangle_enabled_flag. For example, when sps_triangle_enabled_flag is 0, ciip_flag may be derived as 1, otherwise, ciip_flag may be derived as 0.
merge_triangle_flag는 현재 블록에 대해 비-사각 파티션 기반의 모션 보상이 사용되는지 여부를 지시할 수 있다. merge_triangle_flag가 시그날링되지 않는 경우, merge_triangle_flag는 sps_triangle_enabled_flag 또는 ciip_flag 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, sps_triangle_enabled_flag가 1이고 ciip_flag가 0인 경우, merge_triangle_flag는 1로 유도되고, 그렇지 않은 경우, merge_triangle_flag는 0으로 유도될 수 있다.merge_triangle_flag may indicate whether motion compensation based on non-rectangular partitions is used for the current block. When merge_triangle_flag is not signaled, merge_triangle_flag may be derived based on at least one of sps_triangle_enabled_flag and ciip_flag. For example, when sps_triangle_enabled_flag is 1 and ciip_flag is 0, merge_triangle_flag is derived as 1, otherwise, merge_triangle_flag may be derived as 0.
cu_skip_flag는 현재 블록이 스킵 모드로 부호화된 블록인지 여부를 지시할 수 있다. 예를 들어, cu_skip_flag=1인 경우, 현재 블록에 대해 다음 신택스를 제외하고 어떠한 신택스도 파싱되지 않는다. cu_skip_flag가 시그날링되지 않는 경우, cu_skip_flag는 0으로 유도될 수 있다.cu_skip_flag may indicate whether the current block is a block encoded in the skip mode. For example, when cu_skip_flag=1, no syntax except for the following syntax for the current block is parsed. When cu_skip_flag is not signaled, cu_skip_flag may be induced to 0.
- 결합 예측 모드를 지시하는 플래그(pred_mode_ibc_flag)-Flag indicating the combined prediction mode (pred_mode_ibc_flag)
- MVD 기반의 머지 모드를 지시하는 플래그(mmvd_flag)-Flag indicating MVD-based merge mode (mmvd_flag)
- MVD 기반의 머지 모드에서의 머지 인덱스(mmvd_merge_flag)-Merge index (mmvd_merge_flag) in MVD-based merge mode
- MVD 기반의 머지 모드에서의 디스턴스 인덱스(mmvd distance_idx)-Distance index (mmvd distance_idx) in MVD-based merge mode
- MVD 기반의 머지 모드에서의 방향 인덱스(mmvd_direction_idx)-Direction index in MVD-based merge mode (mmvd_direction_idx)
- 머지 인덱스(merge_idx)-Merge index (merge_idx)
- merge_subblock_flag-merge_subblock_flag
- 서브 블록 단위의 머지 모드에서의 머지 인덱스(merge_subblock_idx)-Merge index (merge_subblock_idx) in merge mode in sub-block units
- 비-사각 파티션을 위한 분할 방향 지시자(merge_triangle_split_dir)-Split direction indicator for non-rectangular partitions (merge_triangle_split_dir)
- 비-사각 파티션의 머지 인덱스(merge_triangle_idx)-Merge index of non-rectangular partition (merge_triangle_idx)
도 17을 참조하면, regular_merge_flag는 현재 블록의 인터 예측 파라미터를 생성하기 위해 일반적인 CU 단위의 머지 모드가 사용되는지 여부를 지시할 수 있다. regular_merge_flag가 시그날링되지 않는 경우, regular_merge_flag는 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인지 여부를 고려하여 유도될 수 있다. 예를 들어, 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인 경우, regular_merge_flag는 1로 유도되고, 그렇지 않은 경우, regular_merge_flag는 0으로 유도될 수 있다.Referring to FIG. 17, regular_merge_flag may indicate whether a general CU-based merge mode is used to generate an inter prediction parameter of a current block. When the regular_merge_flag is not signaled, the regular_merge_flag may be derived in consideration of whether the current block is a block coded in the current picture reference mode. For example, when the current block is a block coded in the current picture reference mode, regular_merge_flag may be derived as 1, otherwise, regular_merge_flag may be derived as 0.
도 18을 참조하면, regular_merge_flag는 현재 블록의 인터 예측 파라미터를 생성하기 위해 일반적인 CU 단위의 머지 모드가 사용되는지 여부를 지시할 수 있다. regular_merge_flag가 시그날링되지 않는 경우, regular_merge_flag는 0으로 설정될 수 있다.Referring to FIG. 18, regular_merge_flag may indicate whether a general CU-based merge mode is used to generate an inter prediction parameter of a current block. When regular_merge_flag is not signaled, regular_merge_flag may be set to 0.
mmvd_flag[ x0 ][ y0 ]는 현재 블록의 인터 예측 파라미터를 생성하기 위해 MVD 기반의 머지 모드가 이용되는지 여부를 지시할 수 있다. 여기서, mmvd_flag[ x0 ][ y0 ]는 전술한 MVD_flag와 동일한 의미로 해석될 수 있다. mmvd_flag[x0][y0] may indicate whether the MVD-based merge mode is used to generate the inter prediction parameter of the current block. Here, mmvd_flag[x0][y0] may be interpreted as having the same meaning as MVD_flag described above.
mmvd_flag가 시그날링되지 않는 경우, mmvd_flag는 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인지 여부 또는 regular_merge_flag 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록이 아니고 regular_merge_flag가 1이 아닌 경우, mmvd_flag는 1로 유도되고, 그렇지 않은 경우, mmvd_flag는 0으로 유도될 수 있다.When mmvd_flag is not signaled, mmvd_flag may be derived based on at least one of regular_merge_flag or whether the current block is a block coded in the current picture reference mode. For example, when the current block is not a block encoded in the current picture reference mode and regular_merge_flag is not 1, mmvd_flag is derived as 1, otherwise, mmvd_flag may be derived as 0.
또는, mmvd_flag가 시그날링되지 않는 경우, mmvd_flag는 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인지 여부, regular_merge_flag 또는 현재 블록의 크기 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록이 아니고, regular_merge_flag가 1이 아니며, 현재 블록의 너비와 높이의 합이 12보다 작거나 같은 경우, mmvd_flag는 1로 유도되고, 그렇지 않은 경우, mmvd_flag는 0으로 유도될 수 있다.Alternatively, when mmvd_flag is not signaled, mmvd_flag may be derived based on at least one of whether the current block is a block encoded in the current picture reference mode, regular_merge_flag, or the size of the current block. For example, if the current block is not a block encoded in the current picture reference mode, regular_merge_flag is not 1, and the sum of the width and height of the current block is less than or equal to 12, mmvd_flag is derived as 1, otherwise , mmvd_flag may be derived to 0.
merge_subblock_flag는 현재 블록에 대한 서브 블록 단위의 인터 예측 파라미터가 주변 블록으로부터 유도되는지 여부를 지시할 수 있다. merge_subblock_flag가 시그날링되지 않는 경우, merge_subblock_flag는 sps_ciip_enabled_flag 또는 sps_triangle_enabled_flag 중 적어도 하나에 기초하여 유도될 수 있다. 여기서, sps_ciip_enabled_flag는 결합 예측 모드에 관한 부호화 정보(e.g., ciip_flag) 가 존재하는지 여부를 지시하고, sps_triangle_enabled_flag는 비-사각 파티션 기반의 모션 보상이 이용될 수 있는지 여부를 지시할 수 있다.The merge_subblock_flag may indicate whether an inter prediction parameter in a subblock unit for the current block is derived from a neighboring block. When merge_subblock_flag is not signaled, merge_subblock_flag may be derived based on at least one of sps_ciip_enabled_flag or sps_triangle_enabled_flag. Here, sps_ciip_enabled_flag indicates whether encoding information (e.g., ciip_flag) about the combined prediction mode exists, and sps_triangle_enabled_flag may indicate whether motion compensation based on non-rectangular partitions can be used.
예를 들어, sps_ciip_enabled_flag 또는 sps_triangle_enabled_flag 중 적어도 하나가 0인 경우, merge_subblock_flag는 1로 유도되고, 그렇지 않은 경우, merge_subblock_flag는 0으로 유도될 수 있다.For example, when at least one of sps_ciip_enabled_flag or sps_triangle_enabled_flag is 0, merge_subblock_flag is derived as 1, otherwise, merge_subblock_flag may be derived as 0.
ciip_flag는 현재 블록에 대해 결합 예측 모드가 적용되는지 여부를 지시할 수 있다. ciip_flag가 시그날링되지 않는 경우, ciip_flag는 sps_triangle_enabled_flag 또는 슬라이스 타입 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, sps_triangle_enabled_flag가 0이거나, 현재 블록이 속한 슬라이스가 B 슬라이스가 아닌 경우, ciip_flag는 1로 유도되고, 그렇지 않은 경우, ciip_flag는 0으로 유도될 수 있다.ciip_flag may indicate whether the combined prediction mode is applied to the current block. When ciip_flag is not signaled, ciip_flag may be derived based on at least one of sps_triangle_enabled_flag or slice type. For example, if sps_triangle_enabled_flag is 0 or the slice to which the current block belongs is not a B slice, ciip_flag may be derived as 1, otherwise, ciip_flag may be derived as 0.
merge_triangle_flag는 현재 블록에 대해 비-사각 파티션 기반의 모션 보상이 사용되는지 여부를 지시할 수 있다. merge_triangle_flag가 시그날링되지 않는 경우, merge_triangle_flag는 sps_triangle_enabled_flag 또는 ciip_flag 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, sps_triangle_enabled_flag가 1이고 ciip_flag가 0인 경우, merge_triangle_flag는 1로 유도되고, 그렇지 않은 경우, merge_triangle_flag는 0으로 유도될 수 있다.merge_triangle_flag may indicate whether motion compensation based on non-rectangular partitions is used for the current block. When merge_triangle_flag is not signaled, merge_triangle_flag may be derived based on at least one of sps_triangle_enabled_flag and ciip_flag. For example, when sps_triangle_enabled_flag is 1 and ciip_flag is 0, merge_triangle_flag is derived as 1, otherwise, merge_triangle_flag may be derived as 0.
cu_skip_flag는 현재 블록이 스킵 모드로 부호화된 블록인지 여부를 지시할 수 있다. 예를 들어, cu_skip_flag=1인 경우, 현재 블록에 대해 다음 신택스를 제외하고 어떠한 신택스도 파싱되지 않는다. cu_skip_flag가 시그날링되지 않는 경우, cu_skip_flag는 0으로 유도될 수 있다.cu_skip_flag may indicate whether the current block is a block encoded in the skip mode. For example, when cu_skip_flag=1, no syntax except for the following syntax for the current block is parsed. When cu_skip_flag is not signaled, cu_skip_flag may be induced to 0.
- 결합 예측 모드를 지시하는 플래그(pred_mode_ibc_flag)-Flag indicating the combined prediction mode (pred_mode_ibc_flag)
- MVD 기반의 머지 모드를 지시하는 플래그(mmvd_flag)-Flag indicating MVD-based merge mode (mmvd_flag)
- MVD 기반의 머지 모드에서의 머지 인덱스(mmvd_merge_flag)-Merge index (mmvd_merge_flag) in MVD-based merge mode
- MVD 기반의 머지 모드에서의 디스턴스 인덱스(mmvd distance_idx)-Distance index (mmvd distance_idx) in MVD-based merge mode
- MVD 기반의 머지 모드에서의 방향 인덱스(mmvd_direction_idx)-Direction index in MVD-based merge mode (mmvd_direction_idx)
- 머지 인덱스(merge_idx)-Merge index (merge_idx)
- merge_subblock_flag-merge_subblock_flag
- 서브 블록 단위의 머지 모드에서의 머지 인덱스(merge_subblock_idx)-Merge index (merge_subblock_idx) in merge mode in sub-block units
- 비-사각 파티션을 위한 분할 방향 지시자(merge_triangle_split_dir)-Split direction indicator for non-rectangular partitions (merge_triangle_split_dir)
- 비-사각 파티션의 머지 인덱스(merge_triangle_idx)-Merge index of non-rectangular partition (merge_triangle_idx)
도 19를 참조하면, regular_merge_flag는 현재 블록의 인터 예측 파라미터를 생성하기 위해 일반적인 CU 단위의 머지 모드가 사용되는지 여부를 지시할 수 있다. regular_merge_flag가 시그날링되지 않는 경우, regular_merge_flag는 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인지 여부를 고려하여 유도될 수 있다. 예를 들어, 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인 경우, regular_merge_flag는 1로 유도되고, 그렇지 않은 경우, regular_merge_flag는 0으로 유도될 수 있다.Referring to FIG. 19, regular_merge_flag may indicate whether a general CU-based merge mode is used to generate an inter prediction parameter of a current block. When the regular_merge_flag is not signaled, the regular_merge_flag may be derived in consideration of whether the current block is a block coded in the current picture reference mode. For example, when the current block is a block coded in the current picture reference mode, regular_merge_flag may be derived as 1, otherwise, regular_merge_flag may be derived as 0.
부호화 장치는, 전술한 머지 모드 관련 부호화 정보 중 적어도 하나를 소정의 우선순위에 따라 부호화하여 비트스트림을 생성할 수 있다. 복호화 장치는, 상기 비트스트림을 복호화하여 머지 모드 관련 부호화 정보를 획득하고, 획득된 부호화 정보에 따라 인터 예측을 수행할 수 있다.The encoding apparatus may generate a bitstream by encoding at least one of the above-described merge mode-related encoding information according to a predetermined priority. The decoding apparatus may decode the bitstream to obtain encoding information related to a merge mode, and perform inter prediction according to the obtained encoding information.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.Various embodiments of the present disclosure are not listed in all possible combinations, but are intended to describe representative aspects of the present disclosure, and matters described in the various embodiments may be applied independently or may be applied in combination of two or more.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(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), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. For implementation by hardware, one or more ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), general purpose It may be implemented by a processor (general processor), a controller, a microcontroller, a microprocessor, or the like.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.The scope of the present disclosure is software or machine-executable instructions (e.g., operating systems, applications, firmware, programs, etc.) that allow an operation according to a method of various embodiments to be executed on a device or computer, and such software or It includes a non-transitory computer-readable medium (non-transitory computer-readable medium) which stores instructions and the like and is executable on a device or a computer.
본 발명은 영상 신호를 부호화/복호화하기 위해 이용될 수 있다.The present invention can be used to encode/decode an image signal.

Claims (14)

  1. 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하는 단계;Reconstructing a current picture based on at least one of intra prediction and inter prediction;
    상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하는 단계; 및Specifying a block boundary to which a deblocking filter is applied in the restored current picture; And
    복호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용하는 단계를 포함하는, 영상 복호화 방법.And applying the deblocking filter to the specified block boundary based on a filter type pre-defined in a decoding apparatus.
  2. 제1항에 있어서,The method of claim 1,
    상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수인, 영상 복호화 방법.The deblocking filter is applied in a unit of a predetermined MxN sample grid, where M and N are integers of 4, 8 or more.
  3. 제1항에 있어서,The method of claim 1,
    상기 복호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고,The decoding device defines a plurality of filter types having different filter lengths,
    상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함하는, 영상 복호화 방법.The plurality of filter types include at least one of a long filter, a middle filter, and a short filter.
  4. 제3항에 있어서,The method of claim 3,
    상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고,The filter length of the long filter is 8, 10, 12 or 14,
    상기 중간 필터의 필터 길이는 6이며,The filter length of the intermediate filter is 6,
    상기 숏 필터의 필터 길이는 2 또는 4인, 영상 복호화 방법.The short filter has a filter length of 2 or 4, and an image decoding method.
  5. 제4항에 있어서,The method of claim 4,
    P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고,The number of pixels to which the deblocking filter is applied in the P block and the number of pixels to which the deblocking filter is applied in the Q block are different from each other,
    상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록인, 영상 복호화 방법.The P block and the Q block are blocks adjacent to each other in both directions based on the specified block boundary.
  6. 제5항에 있어서,The method of claim 5,
    상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개인, 영상 복호화 방법.The number of pixels to which the deblocking filter is applied in the P block is three, and the number of pixels to which the deblocking filter is applied in the Q block is seven.
  7. 제1항에 있어서, 상기 현재 픽쳐를 복원하는 단계는,The method of claim 1, wherein restoring the current picture comprises:
    현재 블록의 머지 후보 리스트를 구성하는 단계;Constructing a merge candidate list of the current block;
    상기 현재 블록의 머지 인덱스를 기반으로, 상기 머지 후보 리스트로부터 상기 현재 블록의 모션 정보를 유도하는 단계; 여기서, 상기 모션 정보는, 모션 벡터, 참조 픽쳐 인덱스 또는 예측 방향 정보 중 적어도 하나를 포함함,Deriving motion information of the current block from the merge candidate list based on the merge index of the current block; Here, the motion information includes at least one of a motion vector, a reference picture index, and prediction direction information,
    상기 현재 블록의 머지 모드를 위한 모션 벡터 차이값을 이용하여, 상기 현재 블록의 모션 벡터를 보정하는 단계; 및Correcting a motion vector of the current block by using a motion vector difference value for a merge mode of the current block; And
    상기 보정된 모션 벡터를 기반으로 상기 현재 블록의 모션 보상을 수행하는 단계를 포함하는, 영상 복호화 방법.And performing motion compensation of the current block based on the corrected motion vector.
  8. 제7항에 있어서,The method of claim 7,
    상기 모션 벡터를 보정하는 단계는, 상기 현재 블록의 크기가 소정의 문턱크기보다 큰 경우에 한하여 수행되는, 영상 복호화 방법.The step of correcting the motion vector is performed only when the size of the current block is larger than a predetermined threshold size.
  9. 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하는 단계;Reconstructing a current picture based on at least one of intra prediction and inter prediction;
    상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하는 단계; 및Specifying a block boundary to which a deblocking filter is applied in the restored current picture; And
    부호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용하는 단계를 포함하는, 영상 부호화 방법.And applying the deblocking filter to the specified block boundary based on a filter type pre-defined in an encoding apparatus.
  10. 제9항에 있어서,The method of claim 9,
    상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수인, 영상 부호화 방법.The deblocking filter is applied in a unit of a predetermined MxN sample grid, wherein M and N are integers of 4, 8 or more.
  11. 제1항에 있어서,The method of claim 1,
    상기 부호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고,The encoding device defines a plurality of filter types having different filter lengths,
    상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함하는, 영상 부호화 방법.The plurality of filter types include at least one of a long filter, a middle filter, and a short filter.
  12. 제11항에 있어서,The method of claim 11,
    상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고,The filter length of the long filter is 8, 10, 12 or 14,
    상기 중간 필터의 필터 길이는 6이며,The filter length of the intermediate filter is 6,
    상기 숏 필터의 필터 길이는 2 또는 4인, 영상 복호화 방법.The short filter has a filter length of 2 or 4, and an image decoding method.
  13. 제12항에 있어서,The method of claim 12,
    P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고,The number of pixels to which the deblocking filter is applied in the P block and the number of pixels to which the deblocking filter is applied in the Q block are different from each other,
    상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록인, 영상 부호화 방법.The P block and the Q block are blocks adjacent to each other in both directions based on the specified block boundary.
  14. 제13항에 있어서,The method of claim 13,
    상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개인, 영상 부호화 방법.The number of pixels to which the deblocking filter is applied in the P block is three, and the number of pixels to which the deblocking filter is applied in the Q block is seven.
PCT/KR2020/003228 2019-03-07 2020-03-09 Image encoding/decoding method and apparatus WO2020180166A1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
MX2021010704A MX2021010704A (en) 2019-03-07 2020-03-09 IMAGE ENCODING/DECODING METHOD AND APPARATUS.
CN202080019186.9A CN113545041A (en) 2019-03-07 2020-03-09 Image encoding/decoding method and apparatus
CA3132582A CA3132582A1 (en) 2019-03-07 2020-03-09 Image encoding/decoding method and apparatus
KR1020217027754A KR20210127709A (en) 2019-03-07 2020-03-09 Video encoding/decoding method and apparatus
US17/357,741 US11363265B2 (en) 2019-03-07 2021-06-24 Method and device for encoding or decoding image
MX2025000107A MX2025000107A (en) 2019-03-07 2021-09-03 Image encoding/decoding method and apparatus
US17/749,046 US12034923B2 (en) 2019-03-07 2022-05-19 Method and device for encoding or decoding image
US18/677,871 US20240323370A1 (en) 2019-03-07 2024-05-30 Method and device for encoding or decoding image

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR10-2019-0026468 2019-03-07
KR20190026468 2019-03-07
KR10-2019-0029186 2019-03-14
KR20190029186 2019-03-14
KR20190032404 2019-03-21
KR10-2019-0032404 2019-03-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/357,741 Continuation US11363265B2 (en) 2019-03-07 2021-06-24 Method and device for encoding or decoding image

Publications (1)

Publication Number Publication Date
WO2020180166A1 true WO2020180166A1 (en) 2020-09-10

Family

ID=72338041

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/003228 WO2020180166A1 (en) 2019-03-07 2020-03-09 Image encoding/decoding method and apparatus

Country Status (6)

Country Link
US (3) US11363265B2 (en)
KR (1) KR20210127709A (en)
CN (1) CN113545041A (en)
CA (1) CA3132582A1 (en)
MX (2) MX2021010704A (en)
WO (1) WO2020180166A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021045671A1 (en) * 2019-09-06 2021-03-11 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filter selection in video or image coding

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3068557A1 (en) * 2017-07-05 2019-01-04 Orange METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
WO2020197290A1 (en) * 2019-03-26 2020-10-01 인텔렉추얼디스커버리 주식회사 Image encoding/decoding method and apparatus
CN114270821B (en) * 2019-06-19 2025-01-14 Lg电子株式会社 Image decoding method and device comprising generating prediction samples by applying a determined prediction mode
US12160562B2 (en) * 2021-09-15 2024-12-03 Tencent America LLC On propagating intra prediction mode information of IBC block by using block vector
US11917144B2 (en) * 2021-09-29 2024-02-27 Mediatek Inc. Efficient in-loop filtering for video coding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160068288A (en) * 2014-12-05 2016-06-15 성균관대학교산학협력단 Video encoding and decoding method using deblocking fitering with transform skip and apparatus using the same
KR20180058649A (en) * 2016-11-24 2018-06-01 한국전자통신연구원 Method and apparatus for processing scalable video
KR20180134764A (en) * 2017-06-09 2018-12-19 한국전자통신연구원 Method and apparatus for encoding/decoding image and recording medium for storing bitstream
US20190052888A1 (en) * 2010-05-14 2019-02-14 Interdigital Vc Holdings, Inc. Methods and apparatus for intra coding a block having pixels assigned to groups
US20190052895A1 (en) * 2011-11-03 2019-02-14 Sun Patent Trust Efficient rounding for deblocking

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4224853A1 (en) * 2006-11-08 2023-08-09 InterDigital VC Holdings, Inc. Methods and apparatus for in-loop de-artifact filtering
US8724694B2 (en) * 2008-10-14 2014-05-13 Nvidia Corporation On-the spot deblocker in a decoding pipeline
US8861586B2 (en) * 2008-10-14 2014-10-14 Nvidia Corporation Adaptive deblocking in a decoding pipeline
US8867605B2 (en) * 2008-10-14 2014-10-21 Nvidia Corporation Second deblocker in a decoding pipeline
EP3748964A1 (en) * 2010-12-07 2020-12-09 Sony Corporation Image processing device and image processing method
BR122020013143B1 (en) * 2010-12-07 2022-02-22 Sony Corporation Device and image processing method
KR101640357B1 (en) * 2011-03-08 2016-07-15 가부시키가이샤 제이브이씨 켄우드 Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method, and video decoding program
WO2012175196A1 (en) * 2011-06-20 2012-12-27 Panasonic Corporation Deblocking control by individual quantization parameters
US9774851B2 (en) * 2011-11-03 2017-09-26 Sun Patent Trust Quantization parameter for blocks coded in the PCM mode
KR101934277B1 (en) * 2011-11-28 2019-01-04 에스케이텔레콤 주식회사 Video Coding Method and Apparatus using Improved Merge
US9420280B2 (en) * 2012-06-08 2016-08-16 Qualcomm Incorporated Adaptive upsampling filters
US10085038B2 (en) * 2012-09-28 2018-09-25 Sony Corporation Encoding device, encoding method, decoding device, and decoding method
EP2920962A4 (en) * 2012-11-13 2016-07-20 Intel Corp Content adaptive transform coding for next generation video
US10212387B2 (en) * 2013-03-28 2019-02-19 Irdeto B.V. Processing digital content
WO2015056955A1 (en) * 2013-10-14 2015-04-23 삼성전자 주식회사 Method and apparatus for coding multi-view video, and method and apparatus for decoding multi-view vide
US10070147B2 (en) * 2013-10-18 2018-09-04 Lg Electronics Inc. Method predicting view synthesis in multi-view video coding and method for constituting merge candidate list by using same
US20150271515A1 (en) * 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
CN104935944B (en) * 2014-03-18 2018-03-13 华为技术有限公司 A kind of video data encoding, the method and apparatus of decoding
EP3180917B1 (en) * 2014-09-01 2022-04-20 HFI Innovation Inc. Method of intra picture block copy for screen content and video coding
KR20170041220A (en) * 2014-10-09 2017-04-14 에이치에프아이 이노베이션 인크. Method of 3d or multi-view video coding including view synthesis prediction
KR101782154B1 (en) * 2015-06-05 2017-09-26 인텔렉추얼디스커버리 주식회사 Image encoding/decoding method and image decoding apparatus using motion vector precision
CN115134609B (en) * 2015-06-11 2025-02-21 杜比实验室特许公司 Method and device for encoding and decoding images using adaptive deblocking filtering
US10271064B2 (en) * 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
CN108141588A (en) * 2015-09-24 2018-06-08 Lg电子株式会社 inter-frame prediction method and device in image encoding system
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10986358B2 (en) * 2016-07-05 2021-04-20 Kt Corporation Method and apparatus for processing video signal
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
EP3301914A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for encoding and decoding a large field of view video
KR102719084B1 (en) * 2017-01-02 2024-10-16 한양대학교 산학협력단 Intraprediction method and apparatus for performing adaptive filtering on reference pixels
TW201842782A (en) * 2017-04-06 2018-12-01 美商松下電器(美國)知識產權公司 Encoding device, decoding device, encoding method, and decoding method
US11702000B2 (en) * 2017-10-10 2023-07-18 Sekisui Chemical Co., Ltd. Display device and message transmission method
US11877001B2 (en) * 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
US11889100B2 (en) * 2017-11-14 2024-01-30 Qualcomm Incorporated Affine motion vector prediction in video coding
US11153607B2 (en) * 2018-01-29 2021-10-19 Mediatek Inc. Length-adaptive deblocking filtering in video coding
US11012715B2 (en) * 2018-02-08 2021-05-18 Qualcomm Incorporated Intra block copy for video coding
CN114205621B (en) * 2018-02-28 2025-01-07 三星电子株式会社 Coding method and device thereof, and decoding method and device thereof
US10715812B2 (en) * 2018-07-13 2020-07-14 Tencent America LLC Method and apparatus for video coding
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
US11051036B2 (en) * 2018-07-14 2021-06-29 Mediatek Inc. Method and apparatus of constrained overlapped block motion compensation in video coding
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
US10924731B2 (en) * 2018-08-28 2021-02-16 Tencent America LLC Complexity constraints on merge candidates list construction
AU2019338463B2 (en) * 2018-09-12 2023-10-26 Huawei Technologies Co., Ltd. Candidate signaling for reference picture list structures
US11039157B2 (en) * 2018-09-21 2021-06-15 Tencent America LLC Techniques for simplified affine motion model coding with prediction offsets
US11146800B2 (en) * 2018-09-24 2021-10-12 Tencent America LLC Low latency local illumination compensation
US10893291B2 (en) * 2018-09-28 2021-01-12 Qualcomm Incorporated Ultimate motion vector expression with adaptive directional information set
US11070796B2 (en) * 2018-09-28 2021-07-20 Qualcomm Incorporated Ultimate motion vector expression based pruning for video coding
US20200120339A1 (en) * 2018-10-11 2020-04-16 Mediatek Inc. Intra Prediction For Multi-Hypothesis
CN111357294B (en) * 2018-10-23 2022-12-30 北京字节跳动网络技术有限公司 Reduced entropy coding and decoding based on motion information lists of sub-blocks
CN113287318B (en) * 2018-11-08 2024-11-26 瑞典爱立信有限公司 Asymmetric deblocking in a video encoder and/or video decoder
WO2020102034A1 (en) * 2018-11-14 2020-05-22 Tencent America LLC Method and apparatus for video coding
US20200169757A1 (en) * 2018-11-23 2020-05-28 Mediatek Inc. Signaling For Multi-Reference Line Prediction And Multi-Hypothesis Prediction
US11146810B2 (en) * 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
US10917636B2 (en) * 2018-12-03 2021-02-09 Tencent America LLC Method and apparatus for video coding
US11197017B2 (en) * 2018-12-06 2021-12-07 Tencent America LLC Methods and apparatuses for video coding
CN112806002B (en) * 2018-12-13 2024-05-31 腾讯美国有限责任公司 Video decoding method and video decoder
WO2020141928A1 (en) * 2019-01-04 2020-07-09 엘지전자 주식회사 Method and apparatus for decoding image on basis of prediction based on mmvd in image coding system
US11310523B2 (en) * 2019-01-15 2022-04-19 Tencent America LLC Method and apparatus for block vector prediction with integer offsets in intra picture block compensation
US10904553B2 (en) * 2019-01-22 2021-01-26 Tencent America LLC Method and apparatus for video coding
PT3912357T (en) * 2019-02-20 2023-12-26 Beijing Dajia Internet Information Tech Co Ltd Constrained motion vector derivation for long-term reference pictures in video coding
US11190797B2 (en) * 2019-03-01 2021-11-30 Qualcomm Incorporated Constraints on decoder-side motion vector refinement based on weights for bi-predicted prediction
US11432004B2 (en) * 2019-04-25 2022-08-30 Hfi Innovation Inc. Method and apparatus of constraining merge flag signaling in video coding
MX2021015530A (en) * 2019-06-14 2022-02-10 Lg Electronics Inc Inter prediction-based image coding method and device.

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190052888A1 (en) * 2010-05-14 2019-02-14 Interdigital Vc Holdings, Inc. Methods and apparatus for intra coding a block having pixels assigned to groups
US20190052895A1 (en) * 2011-11-03 2019-02-14 Sun Patent Trust Efficient rounding for deblocking
KR20160068288A (en) * 2014-12-05 2016-06-15 성균관대학교산학협력단 Video encoding and decoding method using deblocking fitering with transform skip and apparatus using the same
KR20180058649A (en) * 2016-11-24 2018-06-01 한국전자통신연구원 Method and apparatus for processing scalable video
KR20180134764A (en) * 2017-06-09 2018-12-19 한국전자통신연구원 Method and apparatus for encoding/decoding image and recording medium for storing bitstream

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021045671A1 (en) * 2019-09-06 2021-03-11 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filter selection in video or image coding
US11533481B2 (en) 2019-09-06 2022-12-20 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filter selection in video or image coding
US12003716B2 (en) 2019-09-06 2024-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking filter selection in video or image coding

Also Published As

Publication number Publication date
MX2021010704A (en) 2021-12-10
US20220360776A1 (en) 2022-11-10
MX2025000107A (en) 2025-02-10
KR20210127709A (en) 2021-10-22
CA3132582A1 (en) 2020-09-10
CN113545041A (en) 2021-10-22
US12034923B2 (en) 2024-07-09
US20210321096A1 (en) 2021-10-14
US11363265B2 (en) 2022-06-14
US20240323370A1 (en) 2024-09-26

Similar Documents

Publication Publication Date Title
WO2017176030A1 (en) Method and apparatus for processing video signal
WO2019225993A1 (en) Method and apparatus for processing video signal
WO2020111785A1 (en) Method for encoding/decoding video signal and apparatus therefor
WO2017222326A1 (en) Video signal processing method and device
WO2019172705A1 (en) Image encoding/decoding method and apparatus using sample filtering
WO2018066867A1 (en) Method and apparatus for encoding and decoding image, and recording medium for storing bitstream
WO2018026219A1 (en) Video signal processing method and device
WO2020076116A1 (en) Image encoding/decoding methods and apparatuses
WO2017204532A1 (en) Image encoding/decoding method and recording medium for same
WO2018097626A1 (en) Video signal processing method and apparatus
WO2017018664A1 (en) Intra prediction mode-based image processing method and apparatus therefor
WO2020180166A1 (en) Image encoding/decoding method and apparatus
WO2020050685A1 (en) Method and device for coding/decoding image using intra prediction
WO2012043989A2 (en) Method for partitioning block and decoding device
WO2017171370A1 (en) Method and apparatus for processing video signal
WO2020096427A1 (en) Image signal encoding/decoding method and apparatus therefor
WO2019066524A1 (en) Image encoding/decoding method and apparatus, and recording medium for storing bitstream
WO2020096428A1 (en) Method for encoding/decoding image signal and device therefor
WO2018056701A1 (en) Method and apparatus for processing video signal
WO2019182295A1 (en) Method and apparatus for processing video signal
WO2020055169A1 (en) Image encoding/decoding method and apparatus using inter prediction
WO2019190201A1 (en) Video signal processing method and device
WO2021107532A1 (en) Image encoding/decoding method and apparatus, and recording medium in which bitstream is stored
WO2019190199A1 (en) Video signal processing method and device
WO2019050291A1 (en) Method and device for processing video signal

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20217027754

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 3132582

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20766410

Country of ref document: EP

Kind code of ref document: A1