WO2020180166A1 - 영상 부호화/복호화 방법 및 장치 - Google Patents

영상 부호화/복호화 방법 및 장치 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
English (en)
French (fr)
Inventor
안용조
Original Assignee
디지털인사이트주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디지털인사이트주식회사 filed Critical 디지털인사이트주식회사
Priority to CA3132582A priority Critical patent/CA3132582A1/en
Priority to KR1020217027754A priority patent/KR20210127709A/ko
Priority to MX2021010704A priority patent/MX2021010704A/es
Priority to CN202080019186.9A priority patent/CN113545041A/zh
Publication of WO2020180166A1 publication Critical patent/WO2020180166A1/ko
Priority to US17/357,741 priority patent/US11363265B2/en
Priority to US17/749,046 priority patent/US20220360776A1/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.

Abstract

본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로 현재 픽쳐를 복원하고, 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하며, 부호화 장치에 기-정의된 필터 타입에 기반하여 블록 경계에 디블록킹 필터를 적용할 수 있다.

Description

영상 부호화/복호화 방법 및 장치
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것이다.
최근 고해상도, 고화질 비디오에 대한 요구가 증가함에 따라 차세대 비디오 서비스를 위한 고효율 비디오 압축 기술에 대한 필요성이 대두되었다. 이러한 필요성에 기반하여 H.264/AVC, HEVC 비디오 압축 표준을 공동으로 표준화한 ISO/IEC MPEG 과 ITU-T VCEG은 JVET (Joint Video Exploration Team)을 구성하여 2015년 10월부터 새로운 비디오 압축 표준을 제정하기 위한 연구 및 탐색을 진행하였으며, 2018년 4월 새로운 비디오 압축 표준의 CfP (Call for Proposal)에 대한 응답들에 대한 평가와 함께 새로운 비디오 압축 표준화를 시작하였다.
비디오 압축 기술에서 블록 분할 구조는 부호화 및 복호화를 수행하는 단위 및 예측, 변환 등의 부호화 및 복호화 주요 기술이 적용되는 단위를 의미한다. 비디오 압축 기술이 발전함에 따라 부호화 및 복호화를 위한 블록의 크기는 점차 증가하고 있으며, 블록의 분할 형태는 보다 다양한 분할 형태를 지원하고 있다. 또한, 부호화 및 복호화를 위한 단위 뿐만 아니라 블록의 역할에 따라 세분화된 단위를 사용하여 비디오 압축을 수행한다.
HEVC 표준에서는 쿼드트리 형태의 블록 분할 구조와 예측 및 변환을 위한 역할에 따라 세분화된 단위 블록을 사용하여 비디오 부호화 및 복호화를 수행한다. 쿼드-트리 형태의 블록 분할 구조와 더불어, 쿼드트리와 바이너리-트리를 결합한 형태의 QTBT (QuadTree plus Binary Tree)와 이에 트리플-트리를 결합한 MTT (Multi-Type-Tree) 등의 다양한 형태의 블록 분할 구조들이 비디오 부호화 효율 향상을 위하여 제안되고 있다. 이러한 다양한 블록 크기와 다양한 형태의 블록 분할 구조의 지원을 통하여 하나의 픽쳐는 다수의 블록들로 분할되어 각 블록에 해당하는 부호화 모드, 모션 정보, 화면 내 예측 방향 정보 등의 부호화 유닛 단위 정보가 다양하게 표현됨에 따라 이를 표현하는 비트의 수가 크게 증가하고 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 복원 픽쳐에 대한 인루프 필터링 방법을 제공한다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 다수의 인터 예측 모드에 따른 모션 보상 방법을 제공한다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하고, 상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하며, 부호화/복호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 부호화/복호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고, 상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고, 상기 중간 필터의 필터 길이는 6이며, 상기 숏 필터의 필터 길이는 2 또는 4일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고, 여기서, 상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 픽쳐를 복원하는 단계는, 현재 블록의 머지 후보 리스트를 구성하는 단계, 상기 머지 후보 리스트로부터 상기 현재 블록의 모션 정보를 유도하는 단계 및 상기 모션 정보를 기반으로 상기 현재 블록의 모션 보상을 수행하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 블록의 모션 보상은 현재 픽쳐 참조 모드에 따른 소정의 참조 영역을 기반으로 수행될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 유도된 모션 정보 중 모션 벡터는, 머지 모드를 위한 모션 벡터 차이값을 이용하여 보정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 모션 벡터의 보정은, 상기 현재 블록의 크기가 소정의 문턱크기보다 큰 경우에 한하여 수행될 수 있다.
본 발명은 소정의 샘플 그리드의 단위로 인루프 필터를 적용하되, 예측/변환 블록 또는 이들의 서브블록 간의 경계를 고려함으로써 인루프 필터링의 효율을 향상시킬 수 있다.
또한, 본 발명은 상이한 필터 길이를 가진 인루프 필터를 기반으로 블록 경계를 필터링함으로써, 경계 상의 아티팩트(artifact)를 효율적으로 제거할 수 있다.
또한, 본 발명은 다수의 인터 예측 모드를 소정의 우선순위에 따라 적응적으로 이용함으로써 모션 보상의 효율을 향상시킬 수 있다.
또한, 본 발명은 현재 픽쳐 참조 모드에 따른 참조 영역을 적응적으로 이용함으로써, 현재 픽쳐 참조 모드의 부호화 효율을 향상시킬 수 있다.
또한, 본 발명은 모션 벡터 차이값 기반의 머지 모드를 선택적으로 이용함으로써, 머지 모드를 위한 인터 예측 파라미터의 정확도를 높이고 머지 모드의 부호화 효율을 향상시킬 수 있다.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 본 발명이 적용되는 일실시예로서, 디블록킹 필터의 대상 경계와 대상 화소를 도시한 것이다.
도 4는 본 발명이 적용되는 일실시예로서, 부호화 장치의 필터부(150) 및 복호화 장치의 필터부(240)에서의 디블록킹 필터링 과정을 도시한 것이다.
도 5는 하나의 부호화 블록을 다수개의 서브-블록으로 분할하여 예측 및 변환을 수행하는 개념을 도시한 도면이다.
도 6은 하나의 부호화 블록에 대한 서브-블록 분할 예시와 서브-블록 경계 및 디블록킹 필터 그리드의 개념을 도시한 도면이다.
도 7은 P 블록과 Q 블록의 경계에서 현재 필터링되는 화소 및 필터링에 사용되는 참조 화소의 개념을 도시한 도면이다.
도 8은 P 블록과 Q 블록의 경계와 Q 블록 내부 서브-블록 경계에서 현재 필터링되는 화소 및 필터링에 사용되는 참조 화소의 개념을 도시한 도면이다.
도 9는 현재 픽쳐 참조 모드의 기본 개념을 설명하기 위한 도면이다.
도 10은 현재 블록의 위치에 따른 현재 픽쳐 참조 영역의 일 실시예를 도시한 도면이다.
도 11 내지 도 14는 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 일 실시예를 도시한다.
도 15는 본 발명이 적용되는 일실시예로서, 모션 벡터 차이값(MVD) 기반의 머지 모드를 이용한 영상 부호화/복호화 방법을 도시한 것이다.
도 16 내지 도 21은 본 발명이 적용되는 일실시예로서, 소정의 우선순위에 기초하여 현재 블록의 인터 예측 모드를 결정하는 방법을 도시한 것이다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하고, 상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하며, 부호화/복호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 부호화/복호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고, 상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고, 상기 중간 필터의 필터 길이는 6이며, 상기 숏 필터의 필터 길이는 2 또는 4일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고, 여기서, 상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 픽쳐를 복원하는 단계는, 현재 블록의 머지 후보 리스트를 구성하는 단계, 상기 머지 후보 리스트로부터 상기 현재 블록의 모션 정보를 유도하는 단계 및 상기 모션 정보를 기반으로 상기 현재 블록의 모션 보상을 수행하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 블록의 모션 보상은 현재 픽쳐 참조 모드에 따른 소정의 참조 영역을 기반으로 수행될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 유도된 모션 정보 중 모션 벡터는, 머지 모드를 위한 모션 벡터 차이값을 이용하여 보정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 모션 벡터의 보정은, 상기 현재 블록의 크기가 소정의 문턱크기보다 큰 경우에 한하여 수행될 수 있다.
하기는 본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시 예를 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우 뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본 명세서 전체에서 사용되는 정도의 용어 ~(하는) 단계 또는 ~의 단계는 ~를 위한 단계를 의미하지 않는다. 또한, 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시 예 및 분리된 실시 예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
이하 본 명세서에 기재된 본 발명의 다양한 실시 예에서, “~부”, “~기”, “~유닛”, “~모듈”, “~블록” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, 부호화 블록은 현재 부호화 및 복호화가 수행되는 대상 화소들의 집합의 처리 단위를 의미하며, 부호화 블록, 부호화 유닛으로 혼용하여 사용될 수 있다. 또한, 상기 부호화 유닛은 CU(Coding Unit)을 지칭하며, CB(Coding Block)을 포함하여 포괄적으로 지칭할 수 있다.
또한, 쿼드트리 분할은 하나의 블록이 사분할 되어 네 개의 독립적인 부호화 유닛으로 분할되는 것을 지칭하며, 바이너리 분할은 하나의 블록이 이분할 되어 두 개의 독립적인 부호화 유닛으로 분할되는 것을 지칭한다. 또한, 터너리 분할은 하나의 블록이 1:2:1 비율로 삼분할 되어 새 개의 독립적인 부호화 유닛으로 분할되는 것을 지칭한다.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 픽쳐 분할부(110), 예측부(120, 125), 변환부(130), 양자화부(135), 재정렬부(160), 엔트로피 부호화부(165), 역양자화부(140), 역변환부(145), 필터부(150) 및 메모리(155)를 포함할 수 있다.
픽쳐 분할부(110)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 단위(Prediction Unit: PU)일 수도 있고, 변환 단위(Transform Unit: TU)일 수도 있으며, 부호화 단위(Coding Unit: CU)일 수도 있다. 이하, 본 발명의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다. 부호화 단위를 기초로 인트라 예측을 수행하는 예측 단위를 생성시 최소 부호화 단위가 아닌 경우, 복수의 예측 단위 NxN 으로 분할하지 않고 인트라 예측을 수행할 수 있다.
예측부(120, 125)는 인터 예측 또는 화면 간 예측을 수행하는 인터 예측부(120)와 인트라 예측 또는 화면 내 예측을 수행하는 인트라 예측부(125)를 포함할 수 있다. 예측 단위에 대해 인터 예측을 사용할 것인지 또는 인트라 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 인트라 예측 모드, 모션 벡터, 참조 픽쳐 등)를 결정할 수 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(130)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 모션 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(165)에서 부호화되어 복호화기에 전달될 수 있다. 단, 본 발명에 따른 디코더 측면의 모션 정보 유도 기법이 적용되는 경우에는, 상기 예측 모드 정보, 모션 벡터 정보 등을 부호화기에서는 생성하지 않으므로, 해당 정보가 복호화기에도 전달되지 않게 된다. 반면, 모션 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 상기 모션 정보 유도에 사용된 기법에 대한 정보를 상기 부호화기에서 시그널링(signaling)하여 전송하는 것이 가능하다.
인터 예측부(120)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 단위를 예측할 수도 있고, 경우에 따라서는 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로 예측 단위를 예측할 수도 있다. 인터 예측 모드로서, 머지(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와 동일하게 설정될 수 있다.
인터 예측부(120)는 참조 픽쳐 보간부, 모션 예측부, 모션 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(155)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
모션 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 모션 예측을 수행할 수 있다. 모션 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 모션 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 모션 벡터값을 가질 수 있다. 모션 예측부에서는 모션 예측 방법을 다르게 하여 현재 예측 단위를 예측할 수 있다.
인트라 예측부(125)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 단위를 생성할 수 있다. 현재 예측 단위의 주변 블록이 인터 예측을 수행한 블록이어서, 참조 픽셀이 인터 예측을 수행한 픽셀일 경우, 인터 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 인트라 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
또한, 예측부(120, 125)에서 생성된 예측 단위를 기초로 예측을 수행한 예측 단위와 예측 단위의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력될 수 있다.
변환부(130)에서는 원본 블록과 예측부(120, 125)를 통해 생성된 예측 단위의 잔차값(residual)정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지, DST를 적용할지 또는 KLT를 적용할지는 잔차 블록을 생성하기 위해 사용된 예측 단위의 인트라 예측 모드 정보를 기초로 결정할 수 있다.
양자화부(135)는 변환부(130)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(135)에서 산출된 값은 역양자화부(140)와 재정렬부(160)에 제공될 수 있다.
재정렬부(160)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.
재정렬부(160)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(160)에서는 지그-재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔 대신 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다. 관련하여, 엔트로피 부호화부(165)는 재정렬부(160) 및 예측부(120, 125)로부터 부호화 단위의 잔차값 계수 정보를 부호화 할 수 있다. 또한, 본 발명에 따라 모션 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 모션 정보 유도에 사용된 기법에 대한 정보를 시그널링(signaling)하여 전송하는 것이 가능하다.
역양자화부(140) 및 역변환부(145)에서는 양자화부(135)에서 양자화된 값들을 역양자화하고 변환부(130)에서 변환된 값들을 역변환한다. 역양자화부(140) 및 역변환부(145)에서 생성된 잔차값(Residual)은 예측부(120, 125)에 포함된 모션 추정부, 모션 보상부 및 인트라 예측부를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(150)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있으며, 이에 대해서는 도 3 내지 도 8을 참조하여 살펴보기로 한다. 오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다. ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다.
메모리(155)는 필터부(150)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 인터 예측을 수행 시 예측부(120, 125)에 제공될 수 있다.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화기(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230, 235), 필터부(240), 메모리(245)가 포함될 수 있다.
영상 부호화기에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화기와 반대의 절차로 복호화될 수 있다.
엔트로피 복호화부(210)는 영상 부호화기의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다.
엔트로피 복호화부(210)에서는 부호화기에서 수행된 인트라 예측 및 인터 예측에 관련된 정보를 복호화할 수 있다.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다.
역양자화부(220)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화기에서 수행한 양자화 결과에 대해 변환부에서 수행한 변환 즉, DCT, DST, 및 KLT에 대해 역변환 즉, 역 DCT, 역 DST 및 역 KLT를 수행할 수 있다. 역변환은 영상 부호화기에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 복호화기의 역변환부(225)에서는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 변환 기법(예를 들어, DCT, DST, KLT)이 선택적으로 수행될 수 있다.
예측부(230, 235)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(245)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 인트라 예측 또는 화면 내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 인트라 예측을 수행하지만, 인트라 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 인트라 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 NxN 분할을 사용하는 인트라 예측을 사용할 수도 있다.
예측부(230, 235)는 예측 단위 판별부, 인터 예측부 및 인트라 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 모션 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 반면, 만약 부호화기(100)에서 상기 인터 예측을 위한 모션 예측 관련 정보를 전송하지 않고, 대신 모션 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 모션 정보 유도에 사용된 기법에 대한 정보를 전송하는 경우에는, 상기 예측 단위 판별부는 부호화기(100)로부터 전송된 정보를 기초로 하여, 인터 예측부(23)의 예측 수행을 판별하게 된다.
인터 예측부(230)는 영상 부호화기에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 인터 예측을 수행할 수 있다. 인터 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 인터 예측 모드를 결정할 수 있다. 인터 예측 모드와 관련하여, 전술한 머지 모드, AMVP 모드, 어파인 모드, 현재 픽쳐 참조 모드, 결합 예측 모드 등이 복호화 장치에서도 동일하게 이용될 수 있으며, 여기서 자세한 설명은 생략하기로 한다. 인터 예측부(230)는, 소정의 우선순위를 가지고, 현재 예측 단위의 인터 예측 모드를 결정할 수 있으며, 이에 대해서는 도 16 내지 도 18을 참조하여 살펴 보기로 한다.
인트라 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 인트라 예측을 수행한 예측 단위인 경우, 영상 부호화기에서 제공된 예측 단위의 인트라 예측 모드 정보를 기초로 인트라 예측을 수행할 수 있다. 인트라 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고, 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있으며, 이에 대해서는 도 3 내지 도 8을 참조하여 살펴보기로 한다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다. ALF는 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
도 3은 본 발명이 적용되는 일실시예로서, 디블록킹 필터의 대상 경계와 대상 화소를 도시한 것이다.
도 3은 서로 다른 두 블록 (P 블록, Q 블록) 사이의 블록 경계(320, 321)를 도시한 도면으로 해당 블록 경계는 수직 방향의 경계와 수평 방향의 경계로 분류할 수 있다.
도 3에서 Q 블록 영역은 현재 부호화 및/또는 복호화가 수행되는 현재 대상 블록의 영역을 의미하고, P 블록 영역은 복원이 완료된 기 복원 블록으로 Q 블록과 공간적으로 인접한 블록을 의미한다. P 블록과 Q 블록은 기-복원된 블록이며, Q 블록은 현재 디블록킹 필터링이 수행되는 영역을 의미하고, P 블록은 Q 블록에 공간적으로 인접한 블록을 의미할 수 있다.
도 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일 수 있다.
도 3에서는 P 블록과 Q 블록의 대상 화소의 수가 각각 3인 경우를 일 실시예로 설명한다.
도 3에서 도시된 수직방향 경계에 대한 일 실시예 중, Q 블록(300) 영역의 첫번째 행(330)을 대상으로 디블록킹 필터가 적용되는 일 예를 도시한다.
첫번째 행에 속하는 4개의 화소(q0, q1, q2, q3) 중 수직방향 경계에 인접한 3개의 화소(q0, q1, q2)는 디블록킹 필터링이 수행되는 대상 화소이다.
또한, 도 3에서 도시된 수평방향 경계에 대한 일 실시예 중, Q 블록(301) 영역의 첫번째 열(331)을 대상으로 디블록킹 필터가 적용되는 일 예에서도 마찬가지로 첫번째 열에 속하는 4개의 화소(q0, q1, q2, q3) 중 수평방향 경계에 인접한 3개의 화소(q0, q1, q2)는 디블록킹 필터링이 수행되는 대상 화소이다.
단, 상기 해당 화소들에 디블록킹 필터를 수행함에 있어 디블록킹 필터링이 수행되는 대상 화소가 아닌 상기 첫번째 행 또는 열에 속한 다른 화소값(예를 들어, q3)의 화소값을 참조하여 필터링을 수행할 수 있다. 또는, 상기 첫번째 행 또는 열의 이웃 행 또는 열의 화소값을 참조하여 필터링이 수행될 수도 있다. 여기서, 이웃 행 또는 열은, 현재 대상 블록에 속한 것일 수도 있고, 현재 대상 블록에 공간적으로 인접한 블록(예를 들어, 좌/우측, 상/하단)에 속한 것일 수도 있다. 공간적 인접 블록의 위치는, 상기 필터링 방향(혹은 경계 방향)을 고려하여 적응적으로 결정될 수 있다. 상기 참조를 통해, 필터링의 수행 여부, 필터링의 강도, 필터 계수, 필터 계수의 개수, 필터링 방향 등이 적응적으로 결정될 수 있다. 전술한 실시예는 후술하는 실시예에서도 동일/유사하게 적용될 수 있다.
도 3에서는 Q 블록 영역에 디블록킹 필터가 적용되는 일 예를 도시함에 있어, 첫번째 행(330)과 첫번째 열(331)을 대표적으로 도시한 것으로서, 첫번째 행을 포함하여 Q 블록 영역에 속하는 후속 행 (두번째 행, 세번째 행, 등) 및 첫번째 열을 포함하여 Q 블록 영역에 속하는 후속 열 (두번째 열, 세번째 열, 등)에도 동일하게 디블록킹 필터가 수행된다.
도 3에서 P 블록 영역은 현재 부호화 및/또는 복호화가 수행되는 현재 대상 블록의 수직방향 경계 혹은 수평방향 경계에 공간적으로 인접한 블록 영역을 의미하고, 도 3에서 도시된 수직 방향 경계에 대한 일 실시 예 중, P 블록(310) 영역의 첫번째 행(330)을 대상으로 디블록킹 필터가 적용되는 일예를 도시한다.
첫번째 행에 속하는 4개의 화소(p0, p1, p2, p3) 중 수직방향 경계에 인접한 3개의 화소(p0, p1, p2)는 디블록킹 필터링이 수행되는 대상 화소이다.
또한, 도 3에서 도시된 수평방향 경계에 대한 일 실시예 중, P 블록(311) 영역의 첫번째 열(331)을 대상으로 디블록킹 필터가 적용되는 일 예에서도 마찬가지로 첫번째 열에 속하는 4개의 화소(p0, p1, p2, p3) 중 수평방향 경계에 인접한 3개의 화소(p0, p1, p2)는 디블록킹 필터링이 수행되는 대상 화소이다.
단, 상기 해당 화소들에 디블록킹 필터를 수행함에 있어 디블록킹 필터링이 수행되는 대상 화소가 아닌 p3의 화소값을 참조하여 필터링을 수행할 수 있다.
도 3에서는 P 블록 영역에 디블록킹 필터가 적용되는 일 예를 도시함에 있어, 첫번째 행(330)과 첫번째 열(331)을 대표적으로 도시한 것으로서, 첫번째 행을 포함하여 P 블록 영역에 속하는 후속 행 (두번째 행, 세번째 행, 등) 및 첫번째 열을 포함하여 P 블록 영역에 속하는 후속 열 (두번째 열, 세번째 열, 등)에도 동일하게 디블록킹 필터가 수행된다.
도 4는 본 발명이 적용되는 일실시예로서, 부호화 장치의 필터부(150) 및 복호화 장치의 필터부(240)에서의 디블록킹 필터링 과정을 도시한 것이다.
도 4를 참조하면, 복원된 픽쳐의 블록 경계 중 디블록킹 필터링에 관한 블록 경계(이하, 엣지라 함)를 특정할 수 있다(S400).
복원된 픽쳐는 소정의 NxM 화소 그리드(sample grid)로 구획될 수 있다. NxM 화소 그리드는 디블록킹 필터링이 수행되는 단위를 의미할 수 있다. 여기서, N과 M은 4, 8, 16 또는 그 이상의 정수일 수 있다. 화소 그리드는 성분 타입 별로 각각 정의될 수 있다. 예를 들어, 성분 타입이 휘도 성분인 경우, N과 M은 4로 설정되고, 성분 타입이 색차 성분인 경우, N과 M은 8로 설정될 수 있다. 성분 타입과 관계없이, 고정된 크기의 NxM 화소 그리드가 이용될 수도 있다.
상기 엣지(Edge)는, NxM 화소 그리드 상에 위치한 블록 경계로서, 변환 블록의 경계, 예측 블록의 경계 또는 서브-블록의 경계 중 적어도 하나를 포함할 수 있다. 상기 서브-블록은 전술한 어파인 모드에 따른 서브-블록을 의미할 수 있다. 디블록킹 필터가 적용되는 블록 경계에 대해서는 도 5 및 도 6을 참조하여 살펴 보기로 한다.
도 4를 참조하면, 상기 특정된 엣지에 대한 결정값(decision value)을 유도할 수 있다(S410).
본 실시예에서는 엣지 타입이 수직 엣지이고, 4x4 화소 그리드가 적용됨을 가정한다. 엣지를 기준으로, 좌측 블록과 우측 블록을 각각 P 블록과 Q 블록이라 부르기로 한다. P 블록과 Q 블록은 기-복원된 블록이며, Q 블록은 현재 디블록킹 필터링이 수행되는 영역을 의미하고, P 블록은 Q 블록에 공간적으로 인접한 블록을 의미할 수 있다.
먼저, 결정값은 상기 결정값을 유도하기 위한 변수 dSam을 이용하여 유도될 수 있다. dSam은 P 블록과 Q 블록의 첫번째 화소 라인(row) 또는 네번째 화소 라인(row) 중 적어도 하나에 대해서 유도될 수 있다. 이하, P 블록과 Q 블록의 첫번째 화소 라인(row)에 대한 dSam을 dSam0이라 부르고, 네번째 화소 라인(row)에 대한 dSam을 dSam3이라 부르기로 한다.
다음 조건 중 적어도 하나를 만족하는 경우, dSam0은 1로 설정되고, 그렇지 않은 경우, dSam0은 0으로 설정될 수 있다.
조건
1 dqp < 제1 문턱값
2 (sp + sq) < 제2 문턱값
3 spq < 제3 문턱값
표 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개의 화소일 수 있다.
예를 들어, 3개의 화소 p와 3개의 화소 q가 이용되는 경우, 제1 화소값 선형도(d1) 및 제2 화소값 선형도(d2)는 다음 수학식 1과 같이 유도될 수 있다.
[수학식 1]
d1 = Abs( p2,0 - 2 * p1,0 + p0,0 )
d2 = Abs( q2,0 - 2 * q1,0 + q0,0 )
또는, 6개의 화소 p와 6개의 화소 q가 이용되는 경우, 제1 화소값 선형도(d1) 및 제2 화소값 선형도(d2)는 다음 수학식 2와 같이 유도될 수 있다.
[수학식 2]
d1 = ( 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 ) >> 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 중 일부는 상호 인접한 연속적인 화소고, 나머지는 일정 간격으로 떨어진 비연속적인 화소일 수 있다.
예를 들어, 2개의 화소 p와 2개의 화소 q가 이용되는 경우, 제1 화소값 변화도(v1) 및 제2 화소값 변화도(v2)는 다음 수학식 3과 같이 유도될 수 있다.
[수학식 3]
v1 = Abs( p3,0 - p0,0 )
v2 = Abs( q0,0 - q3,0 )
또는, 6개의 화소 p와 6개의 화소 q가 이용되는 경우, 제1 화소값 변화도(v1) 및 제2 화소값 변화도(v2)는 다음 수학식 4와 같이 유도될 수 있다.
[수학식 4]
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 )
표 1의 spq는 엣지에 인접한 화소 p0,0와 화소 q0,0의 차이로 유도될 수 있다.
표 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)일 수 있다.
dSam3은 전술한 dSam0과 동일한 방법을 통해, 네번째 화소 라인에 속한 하나 또는 그 이상의 화소를 이용하여 유도되는바, 자세한 설명은 생략하기로 한다.
상기 유도된 dSam0과 dSam3에 기초하여 결정값이 유도될 수 있다. 예를 들어, dSam0과 dSam3 둘다 1인 경우, 결정값은 제1 값(예를 들어, 3)으로 설정되고, 그렇지 않은 경우, 결정값은 제2 값(예를 들어, 1 또는 2)으로 설정될 수 있다.
도 4를 참조하면, 상기 유도된 결정값에 기초하여, 디블록킹 필터의 필터 타입을 결정할 수 있다(S420).
부호화/복호화 장치에서, 상이한 필터 길이를 가진 복수의 필터 타입이 정의될 수 있다. 필터 타입의 예로, 필터 길이가 가장 긴 롱 필터(long filter), 필터 길이가 가장 짧은 숏 필터(short filter) 또는 숏 필터보다는 길고 롱 필터보다는 짧은 하나 이상의 중간 필터(middle filter) 등이 있을 수 있다. 부호화/복호화 장치에 정의된 필터 타입의 개수는 2개, 3개, 4개 또는 그 이상일 수 있다.
예를 들어, 상기 결정값이 제1 값인 경우, 롱 필터가 이용되고, 상기 결정값이 제2 값인 경우, 숏 필터가 이용될 수 있다. 또는, 상기 결정값이 제1 값인 경우, 롱 필터 또는 중간 필터 중 어느 하나가 선택적으로 이용되고, 상기 결정값이 제2 값인 경우, 숏 필터가 이용될 수 있다. 또는, 상기 결정값이 제1 값인 경우, 롱 필터가 이용되고, 상기 결정값이 제1 값이 아닌 경우, 숏 필터 또는 중간 필터 중 어느 하나가 선택적으로 이용될 수 있다. 특히, 상기 결정값이 2인 경우, 중간 필터가 이용되고, 상기 결정값이 1인 경우, 숏 필터가 이용될 수 있다.
도 4를 참조하면, 상기 결정된 필터 타입에 따른 디블록킹 필터를 기반으로, 복원된 픽쳐의 엣지에 필터링을 수행할 수 있다(S430).
디블록킹 필터는 엣지를 기준으로 양방향으로 위치한, 그리고 동일한 화소 라인에 위치한 복수의 화소에 적용될 수 있다. 여기서, 디블록킹 필터가 적용되는 복수의 화소를 필터링 영역이라 하며, 필터링 영역의 길이(또는 화소 개수)는 상기 필터 타입 별로 상이할 수 있다. 필터링 영역의 길이는 전술한 필터 타입의 필터 길이와 동등한 의미로 해석될 수 있다. 또는, 필터링 영역의 길이는, P 블록 내 디블록킹 필터가 적용되는 화소의 수와 Q 블록 내 디블록킹 필터가 적용되는 화소의 수의 합을 의미할 수 있다.
본 실시예에서는 부호화/복호화 장치에 3개의 필터 타입 즉, 롱 필터, 중간 필터 및 숏 필터가 정의된 경우를 가정하고, 필터 타입별 디블록킹 필터링 방법을 살펴보도록 한다. 다만, 이에 한정되지 아니하며, 롱 필터와 중간 필터만이 정의되거나, 롱 필터와 숏 필터만이 정의되거나, 중간 필터와 숏 필터만이 정의될 수도 있다.
1. 롱 필터 기반의 디블록킹 필터링의 경우
설명의 편의를 위해, 이하 별도의 언급이 없는 경우, 엣지 타입은 수직 엣지이고, 현재 필터링되는 화소(이하, 현재 화소 q)은 Q 블록에 속함을 가정한다. 필터링된 화소 fq는 제1 참조값 및 제2 참조값의 가중 평균을 통해 유도될 수 있다.
여기서, 제1 참조값은, 현재 화소 q가 속한 필터링 영역의 화소 전부 또는 일부를 이용하여 유도될 수 있다. 여기서, 필터링 영역의 길이(또는 화소 개수)는 8, 10, 12, 14 또는 그 이상의 정수일 수 있다. 필터링 영역의 일부 화소는 P 블록에, 나머지 화소는 Q 블록에 각각 속할 수 있다. 예를 들어, 필터링 영역의 길이가 10인 경우, P 블록에 5개의 화소가, Q 블록에 5개의 화소가 각각 속할 수 있다. 또는, P 블록에 3개의 화소가, Q 블록에 7개의 화소가 각각 속할 수도 있다. 역으로, P 블록에 7개의 화소가, Q 블록에 3개의 화소가 각각 속할 수도 있다. 다시 말해, 롱 필터 기반의 디블록킹 필터링은 P 블록와 Q 블록에 대칭적으로 수행될 수도 있고, 비대칭적으로 수행될 수도 있다.
현재 화소 q의 위치에 관계없이, 동일한 필터링 영역에 속한 모든 화소는 하나의 동일한 제1 참조값을 공유할 수 있다. 즉, 현재 필터링되는 화소가 P 블록에 위치하는지 아니면 Q 블록에 위치하는지 여부에 관계없이 동일한 제1 참조값을 이용할 수 있다. P 블록 또는 Q 블록 내 현재 필터링되는 화소의 위치에 관계없이 동일한 제1 참조값을 이용할 수 있다.
제2 참조값은, Q 블록에 속한 필터링 영역의 화소 중 엣지로부터 가장 멀리 떨어진 화소(이하, 제1 화소) 또는 필터링 영역의 주변 화소 중 적어도 하나를 이용하여 유도될 수 있다. 상기 주변 화소는 필터링 영역의 우측 방향으로 이웃한 적어도 하나의 화소를 의미할 수 있다. 일예로, 상기 제2 참조값은, 1개의 제1 화소와 1개의 주변 화소 간의 평균값으로 유도될 수 있다. 또는, 제2 참조값은, 2개 이상의 제1 화소와 필터링 영역의 우측 방향으로 이웃한 2개 이상의 주변 화소 간의 평균값으로 유도될 수도 있다.
가중 평균을 위해, 제1 참조값과 제2 참조값에 소정의 가중치 f1 및 f2가 각각 적용될 수 있다. 구체적으로, 부호화/복호화 장치는, 복수의 가중치 세트를 정의하며, 복수의 가중치 세트 중 어느 하나를 선택적으로 이용하여 가중치 f1를 설정할 수 있다. 상기 선택은, Q 블록에 속한 필터링 영역의 길이(또는 화소 개수)를 고려하여 수행될 수 있다. 예를 들어, 부호화/복호화 장치는, 다음 표 2와 같은 가중치 세트를 정의할 수 있다. 각 가중치 세트는, 필터링되는 화소의 위치 각각에 대응하는 하나 또는 그 이상의 가중치로 구성될 수 있다. 따라서, 선택된 가중치 세트에 속한 복수의 가중치 중에서, 현재 화소 q의 위치에 대응하는 가중치를 선택하고, 이를 현재 화소 q에 적용할 수 있다. 가중치 세트를 구성하는 가중치의 개수는 Q 블록에 속한 필터링 영역의 길이와 동일할 수 있다. 하나의 가중치 세트를 구성하는 복수의 가중치는, 0보다 크고 64보다 작은 정수의 범위 내에서 일정 간격으로 샘플링된 것일 수 있다. 여기서, 64는 일예에 불과하며, 64보다 크거나 작을 수도 있다. 상기 일정 간격은 9, 13, 17, 21, 25 또는 그 이상일 수 있다. 상기 간격은 Q 블록에 속한 필터링 영역의 길이(L)에 따라 가변적으로 결정될 수 있다. 또는 L에 관계없이 고정된 간격이 이용될 수도 있다.
Q 블록에 속한 필터링 영역의 길이(L) 가중치 세트
L > 5 { 59, 50, 41, 32, 23, 14, 5 }
5 { 58, 45, 32, 19, 6 }
L < 5 { 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개 또는 그 이상일 수 있다.
또한, L이 7이고, 현재 화소가 엣지를 기준으로 첫번째 화소(q0)인 경우, 현재 화소에는 가중치 59가 적용될 수 있다. 현재 화소가 엣지를 기준으로 두번째 화소(q1)인 경우, 현재 화소에는 가중치 50이 적용될 수 있고, 현재 화소가 엣지를 기준으로 일곱번째 화소(q6)인 경우, 현재 화소에는 가중치 5가 적용될 수 있다.
가중치 f2는 기-결정된 가중치 f1에 기초하여 결정될 수 있다. 예를 들어, 가중치 f2는 기-정의된 상수에서 가중치 f1를 뺀 값으로 결정될 수 있다. 여기서, 기-정의된 상수는 부호화/복호화 장치에 기-정의된 고정된 값으로서, 64일 수 있다. 다만, 이는 일예에 불과하며, 64보다 크거나 작은 정수가 이용될 수도 있다.
2. 중간 필터 기반의 디블록킹 필터링의 경우
중간 필터의 필터 길이는 롱 필터의 필터 길이보다 작을 수 있다. 중간 필터에 따른 필터링 영역의 길이(또는 화소 개수)는 전술한 롱 필터에 따른 필터링 영역의 길이보다 작을 수 있다.
예를 들어, 중간 필터에 따른 필터링 영역의 길이는 6, 8 또는 그 이상일 수 있다. 여기서, P 블록에 속한 필터링 영역의 길이는 Q 블록에 속한 필터링 영역의 길이와 동일할 수 있다. 다만, 이에 한정되지 아니하며, P 블록에 속한 필터링 영역의 길이는 Q 블록에 속한 필터링 영역의 길이보다 길거나 짧을 수도 있다.
구체적으로, 필터링된 화소 fq는 현재 화소 q 및 현재 화소 q에 인접한 적어도 하나의 주변 화소를 이용하여 유도될 수 있다. 여기서, 주변 화소는, 현재 화소 q의 좌측 방향으로 이웃한 하나 또는 그 이상의 화소(이하, 좌측 주변 화소) 또는 현재 화소 q의 우측 방향으로 이웃한 하나 또는 그 이상의 화소(이하, 우측 주변 화소) 중 적어도 하나를 포함할 수 있다.
예를 들어, 현재 화소 q가 q0인 경우, 2개의 좌측 주변 화소(p0, p1)와 2개의 우측 주변 화소(q1, q2)를 이용할 수 있다. 현재 화소 q가 q1인 경우, 2개의 좌측 주변 화소(p0, q0)와 1개의 우측 주변 화소(q2)를 이용할 수 있다. 현재 화소 q가 q2인 경우, 3개의 좌측 주변 화소(p0, q0, q1)와 1개의 우측 주변 화소(q3)를 이용할 수 있다.
3. 숏 필터 기반의 디블록킹 필터링의 경우
숏 필터의 필터 길이는 중간 필터의 필터 길이보다 작을 수 있다. 숏 필터에 따른 필터링 영역의 길이(또는 화소 개수)는 전술한 중간 필터에 따른 필터링 영역의 길이보다 작을 수 있다. 예를 들어, 숏 필터에 따른 필터링 영역의 길이는 2, 4 또는 그 이상일 수 있다.
구체적으로, 필터링된 화소 fq는 현재 화소 q에 소정의 제1 오프셋(offset1)을 가산하거나 감산하여 유도될 수 있다. 여기서, 제1 오프셋은, P 블록의 화소와 Q 블록의 화소 간의 차이값에 기초하여 결정될 수 있다. 예를 들어, 다음 수학식 5와 같이, 제1 오프셋은 화소 p0와 화소 q0 간의 차이값 및 화소 p1와 화소 q1 간의 차이값에 기초하여 결정될 수 있다. 다만, 현재 화소 q에 대한 필터링은, 제1 오프셋이 소정의 문턱값보다 작은 경우에 한하여 수행될 수 있다. 여기서, 문턱값은 전술한 양자화 파라미터(QP)와 블록 경계 강도(boundary strength, BS)에 기초하여 유도되며, 자세한 설명은 생략하기로 한다.
[수학식 5]
offset1 = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4
또는, 필터링된 화소 fq는 현재 화소 q에 소정의 제2 오프셋(offset2)을 가산하여 유도될 수도 있다. 여기서, 제2 오프셋은 현재 화소 q와 주변 화소 간의 차이(또는, 변화량) 또는 제1 오프셋 중 적어도 하나를 고려하여 결정될 수 있다. 여기서, 주변 화소는 현재 화소 q의 좌측 화소 또는 우측 화소 중 적어도 하나를 포함할 수 있다. 예를 들어, 제2 오프셋은 다음 수학식 6과 같이 결정될 수 있다.
[수학식 6]
offset2 = ((( q2 + q0 + 1 ) >> 1 ) - q1 - offset1 ) >> 1
복원된 픽쳐의 블록 경계에 디블록킹 필터링을 수행하는 방법에 대해서 도 7 및 도 8을 참조하여 자세히 살펴보기로 한다.전술한 필터링 방법은 디블록킹 필터에만 적용되는 것으로 제한되는 것은 아니며, 인루프 필터의 일예인 적응적 샘플 오프셋(SAO), 적응적 루프 필터(ALF) 등에도 동일/유사하게 적용될 수 있다.
도 5는 하나의 부호화 블록을 다수개의 서브-블록으로 분할하여 예측 및 변환을 수행하는 개념을 도시한 도면이다.
도 5에서 도시한 바와 같이, 하나의 부호화 블록은 수평 방향 혹은 수직 방향 중 하나의 방향으로 2분할 혹은 4분할하여 예측 혹은 변환을 수행할 수 있다. 상기 부호화 블록은 복호화 블록으로도 이해될 수 있다. 이때, 상기 부호화 블록을 수평 방향 혹은 수직 방향 중 하나로 2분할 혹은 4분할하여 예측만을 수행할 수도 있고, 혹은 2분할 혹은 4분할하여 예측과 변환을 모두 수행할 수도 있으며, 혹은 2분할 혹은 4분할하여 변환만을 수행할 수도 있다.
이때, 상기 하나의 부호화 블록을 수평 방향 혹은 수직 방향으로 2분할 혹은 4분할하여 화면 내 예측과 변환을 각각의 분할 단위로 수행할 수 있다.
도 5는 분할 개수를 한정하는 것은 아니며, 3, 5, 또는 그 이상으로 분할될 수도 있다. 여기서, 분할 개수는, 블록 속성에 기초하여 가변적으로 결정될 수 있다. 블록 속성은, 블록 크기/형태, 성분 타입(휘도, 색차), 예측 모드(인트라 예측 또는 인터 모드), 인터 예측 모드(머지 모드, AMVP 모드, 어파인 모드 등 디코더에 기-정의된 인터 예측 모드를 의미함), 예측/변환 단위, 블록 경계의 위치 또는 길이 등과 같은 부호화 파라미터를 의미할 수 있다.
또는, 비분할 또는 2분할 중 어느 하나가 선택적으로 이용될 수도 있고, 비분할 또는 4분할 중 어느 하나가 선태적으로 이용될 수도 있다. 또는, 비분할, 2분할 또는 4분할 중 어느 하나가 선택적으로 이용될 수도 있다.
도 5에 도시된 일 실시 예에 따르면, 하나의 부호화 블록(510)을 두 개의 서브-블록으로 수직 방향 분할 하는 경우에는 블록의 너비 (W) (511)를 동일하게 2분할하여 상기 분할된 서브-블록의 너비가 W/2 (513)를 가지도록 블록을 분할하는 것을 포함할 수 있으며, 하나의 부호화 블록(520)을 두 개의 서브-블록으로 수평 방향 분할 하는 경우에는 블록의 높이 (H) (522)를 동일하게 2분할하여 상기 분할된 서브-블록의 높이가 H/2 (523)를 가지도록 블록을 분할하는 것을 포함할 수 있다.
또한, 도 5에 도시된 또 다른 일 실시 예에 따르면, 하나의 부호화 블록(530)을 네 개의 서브-블록으로 수직 방향 분할 하는 경우에는 블록의 너비 (W) (531)를 동일하게 4분할하여 상기 분할된 서브-블록의 너비가 W/4 (533)를 가지도록 블록을 분할하는 것을 포함할 수 있으며, 하나의 부호화 블록(540)을 네 개의 서브-블록으로 수평 방향 분할 하는 경우에는 블록의 높이 (H) (542)를 동일하게 4분할하여 상기 분할된 서브-블록의 높이가 H/4 (543)를 가지도록 블록을 분할하는 것을 포함할 수 있다.
또한, 본 발명의 일 실시 예에서는 현재 부호화 블록을 다수개의 서브-블록으로 분할하여 예측을 수행하는 모드 중, 서브-블록 화면 내 예측 모드인 경우, 현재 부호화 블록을 예측을 수행한 서브-블록과 동일한 형태로 변환을 수행하는 것을 포함한다. 이 경우, 서브-블록과 동일한 크기/형태를 가지도록 변환 단위가 분할될 수도 있고, 복수의 변환 단위가 병합될 수도 있다. 또는, 역으로, 변환 단위를 기초로, 서브-블록 단위가 결정되고, 서브-블록 단위로 화면 내 예측이 수행될 수도 있다. 전술한 실시예는 후술하는 실시예에서도 동일/유사하게 적용될 수 있다.
또한, 도 5에 도시된 또 다른 일 실시 예에 따르면, 하나의 부호화 블록(530)을 네 개의 서브-블록으로 수직 방향 분할 하는 경우에는 블록의 너비 (W) (531)를 동일하게 4분할하여 상기 분할된 서브-블록의 너비가 W/4 (433)를 가지도록 블록을 분할하는 것을 포함할 수 있으며, 하나의 부호화 블록(440)을 네 개의 서브-블록으로 수평 방향 분할 하는 경우에는 블록의 높이 (H) (542)를 동일하게 4분할하여 상기 분할된 서브-블록의 높이가 H/4 (543)를 가지도록 블록을 분할하는 것을 포함할 수 있다.
또한, 본 발명의 일 실시 예에서는 현재 부호화 블록을 다수개의 서브-블록으로 분할하여 예측을 수행하는 모드 중, 서브-블록 화면 내 예측 모드인 경우, 현재 부호화 블록을 예측을 수행한 서브-블록과 동일한 형태로 변환을 수행하는 것을 포함한다.
상기 하나의 부호화 블록을 두 개 혹은 네 개의 서브-블록으로 분할하여 화면 내 예측을 수행하고 해당 서브-블록에 따라 변환을 수행하는 경우에는 해당 서브-블록의 경계에서 블록킹 아티펙트 (blocking artifact)가 발생할 수 있다. 따라서, 상기 서브-블록 단위의 화면 내 예측을 수행하는 경우에는 각각의 서브-블록의 경계에서 디블록킹 필터를 수행할 수 있다. 상기 디블록킹 필터의 수행은 선택적으로 수행될 수 있으며, 이를 위해 플래그 정보가 이용될 수 있다. 플래그 정보는, 서브-블록의 경계에 필터링 수행 여부를 지시할 수 있다. 플래그 정보는, 부호화 장치에서 부호화되어 복호화 장치로 시그날링될 수도 있고, 현재 블록 또는 이웃 블록 중 적어도 하나의 블록 속성에 기초하여 복호화 장치에서 유도될 수도 있다. 블록 속성은 전술한 바와 같으며, 자세한 설명은 생략하기로 한다.
하나의 부호화 블록에 대하여 디블록킹 필터를 수행하는 경우, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및 변환을 수행한 블록이면, 현재 블록 내부에 서브-블록 단위 디블록킹 필터 수행을 적용할 수 있다.
하나의 부호화 블록에 대하여 디블록킹 필터를 수행하는 경우, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및 변환을 수행한 블록이지만, 해당 서브-블록의 경계가 디블록킹 필터 수행을 위한 블록 그리드 (NxM 샘플 그리드) 상에 존재하지 않는 경우에는 해당 서브-블록의 경계에서는 디블록킹 필터 단계를 건너 뛰고, 해당 서브-블록의 경계가 디블록킹 필터 수행을 위한 블록 그리드 (block grid) 상에 존재하는 경우에만 해당 서브-블록의 경계에서 디블록킹 필터 단계를 수행할 수 있다.
이때, 상기 디블록킹 필터 수행을 위한 블록 그리드라 함은, 디블록킹 필터링이 적용될 수 있는 최소의 블록 경계 단위를 의미하며, 이전 블록 경계와 다음 블록 경계간의 최소한의 화소 간격을 의미할 수 있다. 일반적으로 해당 블록 그리드는 8x8을 사용할 수 있다. 단, 이는 8x8 블록으로 한정되지는 않으며, 4x4 또는 16x16도 사용될 수 있다. 성분 타입에 따라 상이한 크기의 블록 그리드가 이용될 수도 있다. 예를 들어, 휘도 성분에 대해서 색차 성분보다 작은 크기의 블록 그리드가 이용될 수 있다. 성분 타입 별로 고정된 크기의 블록 그리드가 이용될 수 있다.
도 5에서 도시한 바와 같이, 하나의 부호화 블록은 수평 방향 혹은 수직 방향 중 하나의 방향으로 2분할하는 경우, 비대칭의 서브-블록으로 분할할 수 있다.
이때, 하나의 부호화 블록을 수평 방향 혹은 수직 방향 중 하나의 방향으로 비대칭 2분할 하는 경우의 일 실시 예를 도 5에서 도시하였다.
현재 부호화 블록(550)은 두 개의 서브-블록으로 수직 방향 분할되어 제1 서브-블록은 H를 높이, W/4를 너비로 가지는 서브-블록으로 구성되고, 제2 서브-블록은 H를 높이, 3*W/4를 너비로 가지는 서브-블록으로 구성될 수 있다.
또한, 현재 부호화 블록(560)은 두 개의 서브-블록으로 수평 방향 분할되어 제1 서브-블록은 H/4를 높이, W를 너비로 가지는 서브-블록으로 구성되고, 제2 서브-블록은 3*H/4를 높이, W를 너비로 가지는 서브-블록으로 구성될 수 있다.
상기 서브-블록 단위로 독립적인 변환 및/또는 역변환을 수행할 수 있으며, 현재 부호화 블록 중 일부의 서브-블록에서만 변환 및/또는 역변환을 수행할 수 있다. 여기서, 일부 서브-블록은, 현재 대상 블록 내의 좌측 또는 상단에 위치한 N개의 서브-블록을 의미할 수 있다. N은 1, 2, 3 등일 수 있다. N은 복호화 장치에 기-약속된 고정된 값일 수도 있고, 전술한 블록 속성을 고려하여 가변적으로 결정될 수도 있다.
일부 서브-블록에 변환 과정은, 현재 대상 블록의 형태가 직사각형인 경우(W>H, W<H)에만 수행되도록 제한될 수 있다. 또는, 현재 대상 블록의 크기가 문턱크기보다 크거나 같은 경우에만 수행되도록 제한될 수도 있다.
상기 현재 부호화 블록 중 일부의 서브-블록에서만 변환 및 역변환을 수행하는 부호화 블록의 경우에도, 전술한 서브-블록 단위 디블록킹 필터 과정을 동일하게 적용할 수 있다.
도 6은 하나의 부호화 블록에 대한 서브-블록 분할 예시와 서브-블록 경계 및 디블록킹 필터 그리드의 개념을 도시한 도면이다.
도 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)를 일 예로 들 수 있다.
이때, 상기 서브-블록 경계 중 디블록킹 필터 수행이 적용되는 디블록킹 필터 그리드 상에 존재하는 서브-블록 경계는 제2 서브-블록 경계(621)만이 디블록킹 필터 그리드 상에 존재한다.
따라서, 현재 부호화 블록이 서브-블록 분할 단위의 화면 내 예측을 통해 예측 및 변환을 수행한 블록인 경우, 디블록킹 필터링을 수행함에 있어, 디블록킹 필터 그리드 상에 존재하는 블록 경계에서만 디블록킹 필터가 수행될 수 있다. 또는, 제2 서브-블록 경계와 제1 서브-블록 경계에 서로 상이한 디블록킹 필터가 적용될 수 있다. 즉, 디블록킹 필터의 필터 계수, 탭수, 또는 강도 중 적어도 하나가 상이할 수 있다.
상기 디블록킹 필터 수행을 위한 블록 그리드는 N개 화소 단위로 구성될 수 있고, 상기 N은 미리 정의된 특정한 정수를 사용하며, 4, 8, 16, 32 등 중 하나 혹은 그 이상을 적응적으로 사용할 수 있다.
상기 본 발명에 대한 상세한 설명을 위하여 도 6에서 도시한 실시 예를 이용한다.
도 6에서는 하나의 16x8 부호화 블록을 4개의 서브-블록으로 수직 방향 분할하여 상기 서브-블록 단위 화면 내 예측을 통해 예측 및 변환을 수행한 실시 예를 도시한다.
이때, 상기 하나의 16x8 부호화 블록은 4개의 4x8 서브-블록으로 분할되어 서브-블록 단위 화면 내 예측 수행 및 변환을 수행하여 복원되어, 디블록킹 필터 단계로 입력된다.
상기 디블록킹 필터 단계로 입력된 하나의 부호화 블록은 제1 서브-블록 (610)과 제2 서브-블록(611) 사이의 제1 수직 방향 경계(621), 제2 서브-블록(611)과 제3 서브-블록 (612) 사이의 제2 수직 방향 경계(620), 및 제3 서브-블록(612)과 제4 서브-블록(613) 사이의 제3 수직 방향 경계(622)가 존재한다.
이때, 현재 디블록킹 필터를 위한 블록 그리드가 8x8인 경우, 상기 서브-블록 경계 중, 상기 디블록킹 필터 그리드 상에 존재하는 서브-블록 경계는 제2 수직 방향 경계(620)가 유일하다.
본 발명의 일 실시 예에 따르면, 현재 부호화 블록이 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, 제2 수직 방향 경계 (620)과 같이, 디블록킹 필터 그리드 상에 존재하는 서브-블록 경계와 제1 수직 방향 경계(621)과 제3 수직 방향 경계(622)과 같이, 디블록킹 필터 그리드 상에 존재하지 않는 서브-블록 경계에 모두 디블록킹 필터를 수행할 수 있다. 이때, 경계 별로 적용되는 디블록킹 필터의 속성(예를 들어, 강도, 탭수, 계수, 입력 화소의 위치/개수 등 중 적어도 하나)은 상이할 수 있다.
본 발명의 또 다른 일 실시 예에 따르면, 현재 부호화 블록이 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, 제2 수직 방향 경계(620)과 같이, 디블록킹 필터 그리드 상에 존재하는 서브-블록 경계에서만 디블록킹 필터를 수행하고, 제1 수직 방향 경계(621)과 제3 수직 방향 경계(622)과 같이, 디블록킹 필터 그리드 상에 존재하지 않는 서브-블록 경계에서는 디블록킹 필터 수행을 생략할 수 있다.
이와 더불어, 본 발명에서 제안하는 디블록킹 필터는 하나의 부호화 블록에 대하여 디블록킹 필터를 수행하는 경우, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, 현재 부호화 블록과 동일한 크기의 부호화 블록과는 상이한 화소를 대상으로 디블록킹 필터링을 수행하거나, 상이한 디블록킹 필터 강도를 사용하거나, 혹은 상이한 디블록킹 필터 탭 수를 적용할 수 있다.
본 발명의 일 실시 예로, 현재 부호화 블록이 특정 블록 사이즈 M 보다 작은 경우에 대하여 상기 디블록킹 필터를 위한 블록 그리드 상에 존재하는 부호화 블록 (CB: Coding block), 예측 블록 (PB: Prediction block), 또는 변환 블록 (TB: Transform block) 중 적어도 하나의 경계에 위치하는 Q 블록 (현재 디블록킹 필터를 수행하는 블록)에 위치하는 N개의 화소에 대하여 디블록킹 필터를 수행할 수 있다.
이때, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, Q 블록에 위치하는 (N+K)개의 화소에 대하여 디블록킹 필터를 수행할 수 있다.
이때, 상기 M은 블록의 너비 혹은 높이를 의미할 수 있으며 16, 32, 64, 128 일 수 있다.
또한, 이때, 상기 N은 P 블록 (현재 디블록킹 필터를 수행하는 블록과 블록 경계에 인접한 블록)과 Q 블록 (현재 디블록킹 필터를 수행하는 블록)에 포함되는 블록 경계에 인접한 화소의 수를 의미하며, 이는 1, 2, 3, 4, 5, 6, 7 또는 그 이상의 정수일 수 있다.
또한, K는 현재 부호화 블록이 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우 Q 블록에 포함되는 블록 경계에 인접한 화소 중 추가로 디블록킹 필터의 수행 대상이 되는 화소 수를 의미하며, 0 부터 현재 블록의 너비와 높이에서 N을 뺀 정수 중 하나의 값을 가질 수 있다.
본 발명의 또 다른 일 실시 예로, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및/또는 변환을 수행한 블록인 경우, Q 블록에 위치하는 K개의 화소에 대하여 상기 N개의 화소에 적용한 필터와 상이한 디블록킹 필터 강도를 사용할 수 있다.
또한, 현재 부호화 블록이 상기 서브-블록 단위 화면 내 예측을 통해 예측 및 변환을 수행한 블록인 경우, Q 블록에 위치하는 K개의 화소에 대하여 상기 N개의 화소에 적용한 필터와 상이한 디블록킹 필터를 적용할 수 있다. 전술한 상이한 필터는, 필터의 강도, 계수값, 탭수, 입력 화소의 개수/위치 등 중 적어도 하나 이상이 상이한 것을 의미할 수 있다.
도 7은 P 블록과 Q 블록의 경계에서 현재 필터링되는 화소 및 필터링에 사용되는 참조 화소의 개념을 도시한 도면이다.
도 7에서는 디블록킹 필터를 수평 방향 경계에 적용함에 있어, P 블록과 Q 블록의 경계에서 디블록킹 필터링의 수행 대상 화소 및 필터링에 사용되는 참조 화소에 대한 예시를 나타낸 도면이다.
도 7에서는 현재 디블록킹 필터링되는 블록인 Q 블록(700)과 공간적으로 상단에 인접한 블록인 P 블록(710), P 블록과 Q 블록의 경계(720)을 도시하였다. P 블록에서 디블록킹 필터링이 적용되는 대상 화소는 블록 경계(720)에 인접한 총 3개의 화소 행이며, 각 화소 행에서 필터링 수행을 위한 참조 화소의 개념은 도 7의 713, 712, 711에 도시하였다. 다만, 도 7에서는 수평 경계에 대한 실시예를 도시한 것으로 본 발명에서는 상기 디블록킹 필터를 수직 경계에 적용하는 경우, 전술 혹은 후술하는 본 발명의 모든 개념을 화소 행 대신 화소 열에 적용하는 것을 포함한다.
도 7의 713에서 디블록킹 필터링의 대상 화소는 p2 화소로 경계에서 세번째에 위치하는 화소이며, p2 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 p3, p2, p1, p0, q0 화소이다. 이때, p2 화소는 p3, p2, p1, p0, q0의 5개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 p2' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 p2'은 p2 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.
도 7의 712에서 디블록킹 필터링의 대상 화소는 p1 화소로 경계에서 두번째에 위치하는 화소이며, p1 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 p2, p1, p0, q0 화소이다. 이때, p1 화소는 p2, p1, p0, q0의 4개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 p1' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 p1'은 p1 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.
도 7의 711에서 디블록킹 필터링의 대상 화소는 p0 화소로 경계에서 첫번째에 위치하는 화소이며, p0 화소에 대한 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 p2, p1, p0, q0, q1화소이다. 이때, p0 화소는 p2, p1, p0, q0, q1의 5개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 p0' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 p0'은 p0 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.
마찬가지로, Q 블록에서 디블록킹 필터링이 적용되는 대상 화소는 블록 경계(720)에 인접한 총 3개의 화소 행이며, 각 화소 행에서 필터링 수행을 위한 참조 화소의 개념은 도 7의 703, 702, 701에 도시하였다. 다만, 도 7에서는 수평 경계에 대한 실시예를 도시한 것으로 본 발명에서는 상기 디블록킹 필터를 수직 경계에 적용하는 경우, 전술 혹은 후술하는 본 발명의 모든 개념을 화소 행 대신 화소 열에 적용하는 것을 포함한다.
도 7의 703에서 디블록킹 필터링의 대상 화소는 q2 화소로 경계에서 세번째에 위치하는 화소이며, q2 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 q3, q2, q1, q0, p0 화소이다. 이때, q2 화소는 q3, q2, q1, q0, p0의 5개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 p2' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 q2'은 q2 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.
도 7의 702에서 디블록킹 필터링의 대상 화소는 q1 화소로 경계에서 두번째에 위치하는 화소이며, q1 화소에 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 q2, q1, q0, p0 화소이다. 이때, q1화소는 q2, q1, q0, p0의 4개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 q1' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 q1'은 q1 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.
도 7의 701에서 디블록킹 필터링의 대상 화소는 q0 화소로 경계에서 첫번째에 위치하는 화소이며, q0 화소에 대한 디블록킹 필터링을 수행하기 위하여 참조하는 화소는 q2, q1, q0, p0, p1화소이다. 이때, p0 화소는 q2, q1, q0, p0, p1의 5개 화소를 이용하여 미리 정의된 가중치를 이용하여 가중 평균된 값인 q0' 값으로 설정될 수 있다. 단, 이때 상기 가중 평균된 값인 q0'은 q0 값에서 특정한 오프셋 값 만큼을 더하거나 뺀 값의 범위 내의 하나의 값으로 사용한다.
도 8은 P 블록과 Q 블록의 경계와 Q 블록 내부 서브-블록 경계에서 블록킹 필터링의 수행 대상 화소 및 필터링에 사용되는 참조 화소의 개념을 도시한 도면이다.
도 7에서 도시한 P 블록과 Q 블록의 경계에서만 디블록킹 필터링을 수행하는 방법과 달리, 디블록킹 필터의 블록 그리드 상에 위치하지 않지만, Q 블록이 서브-블록 단위의 화면 내 예측 혹은 서브-블록 단위의 변환을 수행하는 블록인 경우, 서브-블록 경계에서 블록킹 아티팩트가 발생할 수 있고, 이를 효과적으로 제거하기 위하여 Q 블록 내부 서브-블록 경계에 위치하는 화소에도 추가적으로 디블록킹 필터를 수행하는 일 실시 예를 도 8에서 도시하였다.
도 7에 추가적으로 도 8에서는 디블록킹 필터링의 수행 대상 화소는 블록 경계(720)에 인접한 총 3개의 화소 행과 블록 내부에 존재하는 서브-블록 경계 (800)의 추가적인 N개 화소 행이다. 상기 서브-블록 경계의 추가적인 N개 화소 행에 대한 필터링 수행의 개념과 참조 화소의 개념은 도 8의 801, 802에 도시하였다. 다만, 도 8에서는 수평 경계에 대한 실시 예를 도시한 것으로 본 발명에서는 상기 디블록킹 필터를 수직 경계에 적용하는 경우, 전술 혹은 후술하는 본 발명의 모든 개념을 화소 행 대신 화소 열에 적용하는 것을 포함한다.
또한, 도 8에서는 서브-블록 경계(800)의 추가적인 N개 화소 행에 대한 일 실시 예로 N이 2인 경우를 도시하였으나, 이에 국한되지 않고, N이 4인 경우, 8인 경우 등 또한 본 발명의 일 실시 예로 들 수 있다.
도 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과 같이 미리 정의된 위치의 화소를 의미할 수 있다.
도 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과 같이 미리 정의된 위치의 화소를 의미할 수 있다.
상기 일 실시예에서는 서브-블록 경계에 대한 디블록킹 필터의 예로 4개의 화소를 이용하는 필터링을 일 예로 들었으나, 본 발명에서는 디블록킹 필터의 대상 화소를 기준으로 5개의 화소, 혹은 3개의 화소를 참조 화소로 사용할 수 있다. 또한, 디블록킹 필터링의 참조 화소의 개수는 위치에 따라 서로 상이할 수 있다.
도 9는 현재 픽쳐 참조(current picture referencing) 모드의 기본 개념을 설명하기 위한 도면이다.
도 9에서 도시한 바와 같이, 현재 픽쳐 참조 기술은 현재 블록에 대한 예측을 수행함에 있어 현재 블록과 동일한 픽쳐의 이미 복원된 영역에서 예측을 수행하는 기술이다.
도 9의 현재 픽쳐(900)의 현재 블록(910)을 부호화 혹은 복호화를 수행함에 있어, 부호화 및 복호화 순서에 따라 미리 복원된 영역(901)이 존재하며, 현재 블록(110)과 화소 유사성을 가지는 영역이 존재할 수 있다. 따라서, 상기 화소 유사성에 기반하여, 현재 블록(910)과 유사한 참조 블록(930)이 상기 미리 복원된 현재 픽쳐의 영역(901)에 존재하고, 해당 참조 블록(930)을 이용하여 예측을 수행하는 기술을 현재 픽쳐 참조 기술이라고 정의한다.
현재 픽쳐 참조 여부에 관한 정보는 부호화 장치에서 부호화되어 시그날링될 수도 있고, 복호화 장치에서 유도될 수도 있다. 이때, 상기 유도는, 블록의 크기, 형태, 위치, 분할 타입(예를 들어, 쿼드트리, 바이너리트리, 터너리트리), 예측 모드, 블록이 속한 타일 또는 타일 그룹의 위치/타입 등에 기초하여 수행될 수 있다. 여기서, 블록은, 현재 블록 또는 현재 블록에 인접한 주변 블록 중 적어도 하나를 의미할 수 있다.
이때, 현재 블록(910)과 참조 블록(930)의 화소 거리를 벡터로 정의하고, 해당 벡터를 블록 벡터 (block vector)라고 한다.
현재 픽쳐 참조 모드를 부호화함에 있어, 현재 블록의 예측 정보는 상기 블록 벡터(block vector)에 대한 정보를 화면 간 예측과 유사하게 블록 벡터 예측 방법을 통한 스킵(skip), 머지(merge), 및 차분 신호 전송 등의 방법을 사용할 수 있다. 예를 들어, 블록 벡터는 현재 블록의 주변 블록으로 유도될 수 있다. 이때, 주변 블록은, 현재 픽쳐 참조 모드로 부호화된 블록으로 제한되거나, 머지 모드(또는 스킵 모드)로 부호화된 블록으로 제한될 수도 있다. 기타 복호화 장치에 기-정의된 다른 예측 모드(AMVP 모드, 어파인 모드 등)로 부호화된 블록으로 제한될 수도 있다. 또는, 블록 벡터는, 참조 블록의 위치를 특정하는 정보(e.g., 블록 인덱스)에 기초하여 유도될 수도 있다.
도 10은 현재 블록의 위치에 따른 현재 픽쳐 참조 영역의 일 실시 예를 도시한 도면이다.
도 10에서는 현재 블록이 픽쳐, 타일 그룹, 혹은 타일의 경계에 위치하고 가장 좌측에 위치한 CTU에 속한 경우의 일 실시예를 상세하게 도시한다.
도 9에서는 현재 블록의 현재 블록에 대한 현재 픽쳐 참조의 탐색 범위, 즉, 참조 영역을 도시하였으며, 도 10에서 현재 블록이 포함된 CTU 와 부호화 및 복호화 순서에 따라 미리 복원된 영역의 일 실시예를 나타낸다.
도 10에서는 현재 픽쳐(1000)가 타일 그룹 A(1050)와 타일 그룹 B(1060)으로 분할된 일 실시예를 도시하였다. 이때, 상기 타일 그룹이라 함은 하나의 픽쳐를 분할하는 방법 중 하나로 타일도 이에 해당할 수 있다. 타일 그룹은, 하나 또는 그 이상의 타일로 구성될 수 있다. 이하, 타일 그룹은 하나의 타일로 이해될 수도 있다.
도 10에서 타일 그룹 A(1050)은 1001, 1002, 1006, 1007, 1011, 1012 CTU들로 구성되는 타일 그룹을 도시하였으며, 타일 그룹 B(1060)은 1003, 1004, 1005, 1008, 1009, 1010, 1013, 1014, 1015 CTU들로 구성되는 타일 그룹을 도시하였다.
상기 미리 정의된 현재 픽쳐 참조를 위한 참조 영역이라 함은 도 9에서 도시한 현재 픽쳐(900) 내의 이미 복원된 영역(901) 중 일부 영역을 의미할 수 있다. 또한, 상기 일부 영역이라 함은 현재 블록이 포함된 현재 CTU, 현재 CTU를 기준으로 공간적으로 인접한 좌측 CTU 또는 상단에 위치한 CTU 중 적어도 하나일 수 있다.
특히, 현재 블록이 포함된 CTU가 현재 픽쳐, 현재 타일 그룹, 현재 타일의 가장 좌측에 위치한 CTU인 경우에는 현재 블록이 포함된 CTU와 공간적으로 상단에 인접한 CTU를 참조할 수 있다.
도 10에 도시한 BLOCK A(1051)는 현재 픽쳐(1000)의 가장 좌측에 위치한 CTU에 현재 블록이 포함된 경우에 대한 일 실시예이다. 현재 블록이 BLOCK A(1051)에 포함된 블록인 경우, 현재 블록이 현재 픽쳐 참조를 수행하기 위하여 참조 가능한 영역은 현재 CTU (BLOCK A) 내부의 부호화 및 복호화 순서에 따라 미리 복원된 영역에 해당할 수 있다.
이에 추가적으로 본 발명에서는 현재 블록이 포함된 CTU가 현재 픽쳐(1000)의 가장 좌측에 위치한 CTU인 경우, 공간적으로 인접한 상단 CTU가 존재하는 경우에 대하여 공간적으로 인접한 상단 CTU(1006)을 참조 영역으로 사용하는 것을 포함할 수 있다.
현재 블록이 속한 CTU(이하, 현재 CTU라 함)의 좌측에 가용한 CTU가 존재하지 않는 경우, 현재 CTU 내의 기복원된 영역만으로 이용하여 현재 픽쳐 참조를 수행하거나, 현재 픽쳐 참조를 수행하지 않도록 설정할 수도 있다. 또는, 현재 CTU 이전에 기-복원된 특정 영역을 참조하도록 설정될 수도 있다. 상기 특정 영역은, 동일 타일 또는 타일 그룹에 속한 것일 수도 있고, 현재 CTU 직전에 복호화된 P개의 CTU일 수도 있다. P는 1, 2, 3 또는 그 이상일 수 있다. N 값은, 부호화/복호화 장치에 기-정의된 고정된 값이거나, 현재 블록 및/또는 현재 CTU의 위치에 따라 가변적으로 결정될 수도 있다.
또한, 부호화 및 복호화 순서에 따라 이전에 부호화 및 복호화가 수행된 CTU (207)을 참조 영역으로 사용하는 것을 포함할 수 있다.
도 10에서 도시한 BLOCK B(1061)는 현재 픽쳐(1000)의 제2 타일 그룹인 Tile group B에 포함된 CTU로 Tile group B에서 가장 좌측에 위치하여 타일 그룹 경계에 위치하는 경우에 대한 일 실시예이다. 현재 블록이 BLOCK B(1061)에 포함된 블록인 경우, 현재 블록이 현재 픽쳐 참조를 수행하기 위하여 참조 가능한 영역은 현재 CTU (BLOCK B) 내부의 부호화 및 복호화 순서에 따라 미리 복원된 영역에 해당할 수 있다.
이에 추가적으로 본 발명에서는 현재 블록이 포함된 CTU가 현재 타일 그룹(1060)의 가장 좌측에 위치한 CTU인 경우, 공간적으로 인접한 상단 CTU 존재하는 경우에 대하여 공간적으로 인접한 상단 CTU(1003)을 참조 영역으로 사용하는 것을 포함할 수 있다.
또한, 부호화 및 복호화 순서에 따라 이전에 부호화 및 복호화가 수행된 CTU(1005)을 참조 영역으로 사용하는 것을 포함할 수 있다.
또한 본 발명에서는 앞서 기술한 사항들 중 타일 그룹이라고 지칭한 개념을 타일이라는 개념으로 대체하여 사용하는 것을 포함한다.
이와 더불어, 본 발명에서는 현재 블록이 포함된 CTU가 타일 혹은 타일 그룹의 좌측 경계에 위치한 CTU 인경우에 대하여, 현재 타일 혹은 타일 그룹이 타일 혹은 타일 그룹 간의 예측을 허용하는 타일 혹은 타일 그룹인 경우에 한정하여 현재 CTU의 좌측에 위치하는 CTU를 참조 영역으로 사용하는 것을 포함한다. 이를 위해 타일 또는 타일 그룹 간의 예측/참조 관계에 관한 정보가 부호화될 수 있다. 예를 들어, 상기 정보는, 타일 간의 참조가 허용되는지 여부, 현재 타일이 다른 타일을 참조하는지 여부, 픽쳐에 속한 타일의 개수, 타일의 위치를 특정하는 인덱스, 참조되는 타일의 개수/위치 등에 관한 정보 중 적어도 하나를 포함할 수 있다. 상기 정보는, 비디오 시퀀스, 픽쳐, 타일 그룹, 또는 타일 중 적어도 하나의 레벨에서 시그날링될 수 있다.
도 11은 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 일 실시예를 도시한다.
현재 CTU가 다수 개의 VPDU로 분할 됨을 도시하였다. 상기 VPDU라 함은 CTU의 크기가 증가함에 따라, 이에 대한 하드웨어 구현에 대한 비용을 감소 시키기 위하여, 한번에 부호화 및 복호화를 수행할 수 있는 최대 단위를 의미한다. 여기서, VPDU는, CTU보다 너비 또는 높이 중 적어도 하나가 작은 블록을 의미할 수 있다. CTU의 분할 뎁스가 k일 경우, VPDU는, (k+1) 또는 (k+2)의 분할 뎁스를 가진 블록으로 정의될 수도 있다. VPDU의 형태는 정사각형 또는 직사각형일 수 있으나, 필요에 따라 정사각형으로 제한될 수도 있다.
또한, 상기 VPDU의 크기는 미리 정의된 임의의 크기를 사용할 수도 있고, CTU의 4분의 1의 크기를 사용할 수도 있다. 이때, 미리 정의된 임의의 크기라 함은 64x64, 혹은 32x32, 혹은 128x128 등이 사용될 수 있다.
도 11에서 현재 블록이 포함된 CTU(1110)와 공간적으로 좌측에 인접한 CTU (1100)을 도시하였다. 이때, 현재 블록의 현재 픽쳐 참조를 위한 탐색 범위, 즉, 참조 영역은 미리 정의될 수 있다.
특히, 현재 블록이 현재 CTU(1110)의 제1 VPDU(1111)에 포함되는 경우에 한하여 좌측에 인접한 CTU(1100)의 모든 화소 영역의 전부 또는 일부 영역만을 참조 영역으로 사용할 수 있다. 도 11에서 도시한 일 실시 예에 따르면, 좌측에 인접한 CTU(1100)의 제1 VPDU(1101)을 제외한 2 VPDU (1102), 제3 VPDU (1103), 제4 VPDU(1104) 및 현재 블록이 포함된 VPDU(1111) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
도 11에서 도시한 바와 같이, 본 발명의 일 실시 예에 따르면, 공간적으로 인접한 CTU를 현재 픽쳐 참조 (CPR)의 탐색 및 참조 영역으로 사용하는 경우에, 공간적으로 인접한 CTU 중 일부 영역만을 사용하는 것을 포함한다.
부호화/복호화 순서에 따라 현재 CTU 직전에 부호화/복호화된 N개의 CTU만이 이용될 수 있다. 또는, 부호화/복호화 순서에 따라 현재 VPDU 직전에 부호화/복호화된 M개의 VPDU만이 이용될 수 있다. 여기서, N과 M은, 1, 2, 3, 4, 또는 그 이상의 정수일 수 있고, N과 M은 서로 동일하거나 상이할 수 있다. 상기 개수는, 부호화/복호화 장치에 기-정의된 값일 수도 있고, 블록의 가용성을 기반으로 가변적으로 결정될 수도 있다. 상기 M개의 VPDU는 동일한 CTU(또는, 타일, 타일 그룹) 내에 속하는 것으로 제한될 수도 있다. 또는, M개의 VPDU 중 적어도 하나는 나머지와 다른 CTU(또는, 타일, 타일 그룹)에 속하는 것으로 제한될 수도 있다. 전술한 제한 중 적어도 하나는, 현재 블록 또는 현재 VPDU의 위치 및/또는 스캔 순서를 고려하여 설정될 수 있다. 여기서, 위치는, CTU 내에서의 위치, 타일 내에서의 위치, 타일 그룹 내에서의 위치 등 다양한 의미로 해석될 수 있다. 전술한 실시예는, 이하 실시예에서도 동일/유사하게 적용될 수 있다.
도 11은 현재 블록이 현재 CTU(1110)의 제2 VPDU(1112), 제3 VPDU(1113) 및 제4 VPDU(1114)에 포함되는 각각의 경우에 대하여, 좌측에 인접한 CTU(1100)에서 참조 영역의 변화됨을 도시하였다.
현재 블록이 현재 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
또한, 현재 블록이 현재 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
또한, 현재 블록이 현재 CTU(1110)의 제4 VPDU(1113)에 포함되는 경우에는 좌측에 인접한 CTU(1100)를 참조 영역으로 사용하지 않고 현재 CTU(1110) 내부의 미리 복원된 영역만을 참조 영역으로 사용할 수 있다.
도 12는 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 또 다른 일 실시예를 도시한다.
도 12는 현재 블록이 현재 CTU(1210)의 분할 형태에 따라 VPDU의 수행 순서가 기존의 z-scan order와 상이한 경우에 대한 추가적인 일 실시예를 도시한다.
현재 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에 공간적으로 인접한 영역을 우선 참조한다는 의미를 가진다.
이에 추가적으로 VPDU의 수행 순서에 따라, 좌측 CTU에서도 수직 분할로 인하여 VPDU 수행 순서가 제1 VPDU(1211), 제3 VPDU(1213), 제2 VPDU(1212), 제4 VPDU(1214) 인 경우에는 상기 방법 (도 12의 (a))과 같이 참조 영역을 지정할 수 있다.
앞선 도 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
이는 좌측 CTU에서 VPDU 수행 순서가 제1 VPDU(1211), 제2 VPDU(1212), 제3 VPDU(1213), 제4 VPDU(1214)인 경우에 대해서는 상기 방법 (도 12의 (b))과 같이 참조 영역을 지정할 수 있음을 의미한다.
상기의 일 실시 예에서는 좌측 CTU 의 VPDU 수행 순서에 따라 나중에 부호화 및 복호화된 영역을 우선 참조한다는 의미를 가진다.
또한, 현재 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
도 13은 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 또 다른 일 실시 예를 도시한다.
도 13에서는 도 10에서 도시한 현재 블록이 포함된 CTU가 현재 픽쳐, 현재 타일 그룹, 현재 타일의 가장 좌측에 위치하고, 상단 CTU를 참조할 수 있는 경우에 대하여 현재 CTU와 공간적으로 인접한 CTU 중 상단에 위치한 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
현재 블록이 현재 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
또한, 현재 블록이 현재 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
또한, 현재 블록이 현재 CTU(1310)의 제4 VPDU(1313)에 포함되는 경우에는 상단에 인접한 CTU(1300)를 참조 영역으로 사용하지 않고 현재 CTU(1310) 내부의 미리 복원된 영역만을 참조 영역으로 사용할 수 있다.
도 14는 현재 블록이 포함된 영역과 현재 픽쳐 참조 (CPR)의 탐색 및 참조 가능 영역의 또 다른 일 실시예를 도시한다.
도 14에서는 도 13에 추가적으로 현재 블록이 현재 CTU(1410)의 분할 형태에 따라 VPDU의 수행 순서가 기존의 z-scan order와 상이한 경우에 대한 공간적으로 상단에 인접한 CTU(1400)의 일부 영역을 참조하는 추가적인 일 실시예를 도시한다.
현재 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
또한, 현재 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) 중 부호화 및 복호화 순서에 따라 미리 복원된 영역을 참조 영역으로 사용할 수 있다.
전술한 바와 같이, 현재 블록은 현재 CTU를 기준으로, 좌측 또는 상단 중 적어도 하나에 위치한 CTU를 기반으로 참조 영역을 설정할 수 있다. 즉, 좌측 또는 상단 CTU를 선택적으로 사용할 수 있으며, 상기 선택은 소정의 부호화 정보에 기초하여 수행될 수도 있다. 부호화 정보는, 좌측 또는 상단 CTU를 참조하는지 여부, 좌측 또는 상단 CTU가 가용한지 여부, 스캔 순서, 현재 CTU 내에서 현재 VPDU의 위치 등에 관한 정보를 포함할 수 있다.
도 15는 본 발명이 적용되는 일실시예로서, 모션 벡터 차이값(MVD) 기반의 머지 모드를 이용한 영상 부호화/복호화 방법을 도시한 것이다.
머지 모드는 주변 블록의 모션 정보를 현재 블록의 모션 정보로 동일하게 이용하며, AMVP 모드와 달리 별도의 모션 벡터 차이값을 부호화/복호화할 것을 요구하지 않는다. 다만, 머지 모드의 경우에도 모션 벡터의 정확도를 향상시키기 위하여 소정의 모션 벡터 차이값(MVD)을 이용할 수 있다. 본 발명에서, 모션 정보는, 모션 벡터, 참조 픽쳐 인덱스 또는 예측 방향 정보 중 적어도 하나를 포함하는 것으로 이해될 수 있다.
상기 MVD는 소정의 플래그(이하, MVD_flag)에 기초하여 선택적으로 이용될 수 있다. MVD_flag는, 머지 모드에서 모션 벡터 차이값(MVD)을 이용하는지 여부를 나타낼 수 있다. 예를 들어, 상기 플래그가 제1 값인 경우, 머지 모드에서 모션 벡터 차이값이 이용되고, 그렇지 않은 경우, 머지 모드에서 모션 벡터 차이값이 이용되지 아니한다. 즉, 상기 플래그가 제1 값인 경우, 모션 벡터 차이값을 이용하여 머지 모드에 따라 유도된 모션 벡터를 보정하고, 그렇지 않은 경우, 머지 모드에 따른 모션 벡터를 보정하지 않을 수 있다.
MVD_flag는 현재 블록의 너비 또는 높이 중 적어도 하나가 8보다 크거나 같은 경우에 한하여 부호화/복호화될 수 있다. 또는, MVD_flag는 현재 블록에 속한 화소의 개수가 64보다 크거나 같은 경우에 한하여 부호화/복호화될 수 있다. 또는, MVD_flag는 현재 블록의 너비와 높이의 합이 12보다 큰 경우에 한하여 부호화/복호화될 수 있다.
도 15를 참조하면, 현재 블록의 머지 후보 리스트를 구성할 수 있다(S1500).
머지 후보 리스트는, 현재 블록의 모션 정보를 유도하기 위해 이용 가능한 하나 또는 복수의 머지 후보를 포함할 수 있다. 머지 후보 리스트의 크기는, 머지 후보 리스트를 구성하는 머지 후보의 최대 개수를 지시하는 정보(이하, 크기 정보)에 기초하여 가변적으로 결정될 수 있다. 상기 크기 정보는, 부호화 장치에서 부호화되어 시그날링되거나, 복호화 장치에 기-약속된 고정된 값(예를 들어, 2, 3, 4, 5, 6 또는 그 이상의 정수)일 수도 있다.
머지 후보 리스트에 속한 복수의 머지 후보는, 공간적 머지 후보 또는 시간적 머지 후보 중 적어도 하나를 포함할 수 있다.
공간적 머지 후보는, 현재 블록에 공간적으로 인접한 주변 블록 또는 상기 주변 블록의 모션 정보를 의미할 수 있다. 여기서, 주변 블록은, 현재 블록의 좌하단 블록(A0), 좌측 블록(A1), 우상단 블록(B0), 상단 블록(B1) 또는 좌상단 블록(B2) 중 적어도 하나를 포함할 수 있다. 소정의 우선순서에 따라, 상기 주변 블록 중 가용한 주변 블록이 순차적으로 머지 후보 리스트에 추가될 수 있다. 예를 들어, 우선순위는, B1->A1->B0->A1->B2, A1->B1->A0->B1->B2, A1->B1->B0->A0->B2 등으로 정의될 수 있으며, 다만 이에 한정되지 아니한다.
시간적 머지 후보는, 콜 픽쳐(co-located picture)에 속한 하나 또는 그 이상의 콜 블록(co-located block) 또는 상기 콜 블록의 모션 정보를 의미할 수 있다. 여기서, 콜 픽쳐는, 참조 픽쳐 리스트에 속한 복수의 참조 픽쳐 중 어느 하나이며, 이는 현재 블록이 속한 픽쳐와 다른 픽쳐일 수 있다. 콜 픽쳐는 참조 픽쳐 리스트에서 가장 처음에 위치한 픽쳐이거나 가장 마지막에 위치한 픽쳐일 수 있다. 또는, 콜 픽쳐는 콜 픽쳐를 지시하기 위해 부호화된 인덱스에 기초하여 특정될 수도 있다. 콜 블록은, 현재 블록의 중앙 위치를 포함하는 블록(C1) 또는 현재 블록의 우하단 코너에 인접한 주변 블록(C0) 중 적어도 하나를 포함할 수 있다. 소정의 우선순서에 따라, 상기 C0와 C1 중 가용한 블록이 순차적으로 머지 후보 리스트에 추가될 수 있다. 예를 들어, C0는 C1보다 높은 우선순위를 가질 수 있다. 다만, 이에 한정되지 아니하며, C1은 C0보다 높은 우선순위를 가질 수도 있다.
부호화/복호화 장치는, 현재 블록 이전에 부호화/복호화가 완료된 하나 이상의 블록(이하, 이전 블록)의 모션 정보를 저장하는 버퍼를 포함할 수 있다. 다시 말해, 버퍼는, 이전 블록의 모션 정보로 구성된 리스트(이하, 모션 정보 리스트)를 저장할 수 있다.
상기 모션 정보 리스트는, 픽쳐, 슬라이스, 타일, CTU 행 또는 CTU 중 어느 하나의 단위로 초기화될 수 있다. 초기화는 모션 정보 리스트가 비어있는 상태를 의미할 수 있다. 이전 블록의 부호화/복호화 순서에 따라 순차적으로 해당 이전 블록의 모션 정보가 모션 정보 리스트에 추가되되, 모션 정보 리스트는, 모션 정보 리스트의 크기를 고려하여 FIFO(first-in first-out) 방식으로 업데이트될 수 있다. 예를 들어, 가장 최근에 부호화/복호화된 모션 정보(이하, 최근 모션 정보)가 모션 정보 리스트에 기-추가된 모션 정보와 동일한 경우, 최근 모션 정보는 모션 정보 리스트에 추가되지 않을 수 있다. 또는, 최근 모션 정보와 동일한 모션 정보를 모션 정보 리스트에서 제거하고, 최근 모션 정보를 모션 정보 리스트에 추가할 수도 있다. 이때, 최근 모션 정보는, 모션 정보 리스트의 가장 마지막 위치에 추가되거나, 제거된 모션 정보의 위치에 추가될 수 있다.
이전 블록은, 현재 블록에 공간적으로 인접한 하나 또는 그 이상의 주변 블록 또는 현재 블록에 공간적으로 인접하지 않은 하나 또는 그 이상의 주변 블록 중 적어도 하나를 포함할 수 있다.
머지 후보 리스트는, 버퍼 또는 모션 정보 리스트에 속한 이전 블록 또는 이전 블록의 모션 정보가 머지 후보로 더 추가될 수도 있다.
구체적으로, 모션 정보 리스트와 머지 후보 리스트 간의 중복성 체크가 수행될 수 있다. 중복성 체크는, 머지 후보 리스트에 속한 머지 후보 전부 또는 일부와 모션 정보 리스트에 이전 블록 전부 또는 일부에 대해서 수행될 수 있다. 다만, 설명의 편의를 위해, 본 발명의 중복성 체크는, 머지 후보 리스트에 속한 머지 후보 일부와 모션 정보 리스트에 이전 블록 일부에 대해서 수행됨을 가정한다. 여기서, 머지 후보 리스트의 일부 머지 후보는, 공간적 머지 후보 중 좌측 블록 또는 상단 블록 중 적어도 하나를 포함할 수 있다. 다만, 이에 한정되지 아니하며, 일부 머지 후보는, 공간적 머지 후보 중 어느 하나의 블록으로 제한될 수도 있고, 좌하단 블록, 우상단 블록, 좌상단 블록 또는 시간적 머지 후보 중 적어도 하나를 더 포함할 수도 있다. 모션 정보 리스트의 일부 이전 블록은, 모션 정보 리스트에 최근에 추가된 K개의 이전 블록을 의미할 수 있다. 여기서, K는 1, 2, 3 또는 그 이상이고, 부호화/복호화 장치에 기-약속된 고정된 값일 수 있다.
예를 들어, 모션 정보 리스트에 5개의 이전 블록(또는 이전 블록의 모션 정보)가 저장되어 있고, 각 이전 블록에 1 내지 5의 인덱스가 할당되어 있다고 가정한다. 인덱스가 클수록 최근에 저장된 이전 블록을 의미한다. 이때, 인덱스 5, 4 및 3을 가진 이전 블록과 머지 후보 리스트의 일부 머지 후보 간의 모션 정보의 중복성을 체크할 수 있다. 또는, 인덱스 5 및 4를 가진 이전 블록과 머지 후보 리스트의 일부 머지 후보 간의 중복성을 체크할 수도 있다. 또는, 가장 최근에 추가된 인덱스 5의 이전 블록을 제외하고, 인덱스 4 및 3을 가진 이전 블록과 머지 후보 리스트의 일부 머지 후보 간의 중복성을 체크할 수도 있다.
중복성 체크 결과, 동일한 모션 정보를 가진 이전 블록이 하나라도 존재하는 경우, 모션 정보 리스트의 이전 블록은 머지 후보 리스트에 추가되지 않을 수 있다. 반면 동일한 모션 정보를 가진 이전 블록이 존재하지 않는 경우, 모션 정보 리스트의 이전 블록 전부 또는 일부는 머지 후보 리스트의 마지막 위치에 추가될 수 있다. 이때, 모션 정보 리스트에서 최근에 추가된 이전 블록의 순서(즉, 인덱스가 큰 순서부터 작은 순서로)로 머지 후보 리스트에 추가될 수 있다. 다만, 모션 정보 리스트에 가장 최근에 추가된 이전 블록(즉, 가장 큰 인덱스를 가진 이전 블록)는 머지 후보 리스트에 추가되지 않도록 제한될 수도 있다. 상기 이전 블록의 추가는, 머지 후보 리스트의 크기를 고려하여 수행될 수 있다. 예를 들어, 전술한 머지 후보 리스트의 크기 정보에 따라, 머지 후보 리스트가 최대 T개의 머지 후보를 가지는 경우를 가정한다. 이 경우, 이전 블록의 추가는, 머지 후보 리스트에 속한 머지 후보의 개수 (T-n)개가 될 때까지만 수행되도록 제한될 수 있다. 여기서, n은 1, 2 또는 그 이상의 정수일 수 있다. 또는, 이전 블록의 추가는, 머지 후보 리스트에 속한 머지 후보의 개수 T개가 될 때까지 반복적으로 수행될 수도 있다.
도 15를 참조하면, 머지 후보 리스트와 머지 인덱스(merge_idx)를 기반으로, 현재 블록의 모션 정보를 유도할 수 있다(S1510).
머지 인덱스는, 머지 후보 리스트에 속한 복수의 머지 후보 중 어느 하나를 특정할 수 있다. 현재 블록의 모션 정보는, 머지 인덱스에 의해 특정된 머지 후보의 모션 정보로 설정될 수 있다.
MVD_flag의 값에 따라, 현재 블록이 이용 가능한 머지 후보의 최대 개수가 적응적으로 결정될 수 있다. MVD_flag가 0이면, 최대 M개의 머지 후보를 사용하는 한편, MVD_flag가 1이면, N개의 머지 후보를 사용할 수 있다. 여기서, M은 N보다 작은 자연수일 수 있다.
예를 들어, MVD_flag가 1인 경우, 시그날링되는 머지 인덱스는 0 또는 1의 값을 가질 수 있다. 즉, 머지 모드에서 모션 벡터 차이값이 이용되는 경우, 현재 블록의 모션 정보는 머지 후보 리스트의 첫번째 머지 후보(merge_idx=0) 또는 두번째 머지 후보(merge_idx=1) 중 어느 하나만을 사용하여 유도될 수 있다.
따라서, 머지 후보 리스트에 속한 머지 후보의 최대 개수가 M개인 경우라도, 머지 모드에서 모션 벡터 차이값이 사용되는 경우에는 현재 블록이 이용 가능한 머지 후보의 최대 개수는 2개일 수 있다.
또는, MVD_flag가 1인 경우, 머지 인덱스가 부호화/복호화되지 않고, 대신에 머지 인덱스를 0으로 설정함으로써, 첫번째 머지 후보의 사용이 강제될 수도 있다. 또는, MVD_flag가 1인 경우, 머지 인덱스는 0 내지 i 사이의 값을 가질 수 있고, i는 2, 3 또는 그 이상의 정수일 수 있고, i는 (M-1)과 동일할 수 있다.
도 15를 참조하면, 현재 블록의 머지 모드를 위한 모션 벡터 차이값(MVD)을 유도할 수 있다(S1520).
현재 블록의 MVD는 머지 오프셋 벡터(offsetMV)에 기초하여 유도될 수 있다. MVD는 L0 방향의 MVD(MVD0) 또는 L1 방향의 MVD(MVD1) 중 적어도 하나를 포함하며, MVD0와 MVD1 각각은 머지 오프셋 벡터를 이용하여 유도될 수 있다.
머지 오프셋 벡터는, 머지 오프셋 벡터의 길이(mvdDistance)와 방향(mvdDirection)에 기초하여 결정될 수 있다. 예를 들어, 머지 오프셋 벡터(offsetMV)는, 다음 수학식 7과 같이 결정될 수 있다.
[수학식 7]
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는 디스턴스 인덱스(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 등이 있을 수 있다.
예를 들어, mvdDistance는 다음 표 3과 같이 결정될 수 있다.
distance_idx[ x0 ][ y0 ] MmvdDistance[ x0 ][ y0 ]
pic_fpel_mmvd_enabled_flag = = 0 pic_fpel_mmvd_enabled_flag = = 1
0 1 4
1 2 8
2 4 16
3 8 32
4 16 64
5 32 128
6 64 256
7 128 512
또한, mvdDirection는, 머지 오프셋 벡터의 방향을 나타내며, 방향 인덱스(direction_idx)에 기초하여 결정될 수 있다. 여기서, 방향은, 좌, 우, 상, 하, 좌상, 좌하, 우상 또는 우하 중 적어도 하나의 방향을 포함할 수 있다. 예를 들어, mvdDirection는 다음 표 4와 같이 결정될 수 있다.
direction_idx[ x0 ][ y0 ] mvdDirection[ x0 ][ y0 ][0] mvdDirection[ x0 ][ y0 ][1]
0 +1 0
1 -1 0
2 0 +1
3 0 -1
표 4에서, mvdDirection[ x0 ][ y0 ][0]는 모션 벡터 차이값의 x 성분의 부호를 의미하고, mvdDirection[ x0 ][ y0 ][1]는 모션 벡터 차이값의 y 성분의 부호를 의미할 수 있다. direction_idx가 0인 경우, 모션 벡터 차이값의 방향은 우 방향으로, direction_idx가 1인 경우, 모션 벡터 차이값의 방향은 좌 방향으로, direction_idx가 2인 경우, 모션 벡터 차이값의 방향은 하 방향으로, direction_idx가 3인 경우, 모션 벡터 차이값의 방향은 상 방향으로 각각 결정될 수 있다.
전술한 디스턴스 인덱스와 방향 인덱스는 MVD_flag가 제1 값인 경우에 한하여 부호화/복호화될 수 있다.
한편 , 모션 벡터 차이값(MVD)는 앞서 결정된 머지 오프셋 벡터와 동일하게 설정될 수 있다. 또는, 머지 오프셋 벡터는, 현재 블록의 참조 픽쳐와 현재 블록이 속한 현재 픽쳐 간의 POC 차이(PocDiff)를 고려하여 보정될 수 있고, 보정된 머지 오프셋 벡터가 모션 벡터 차이값(MVD)으로 설정될 수도 있다. 이 경우, 현재 블록은 양방향 예측을 부호화/복호화되며, 상기 현재 블록의 참조 픽쳐는 제1 참조 픽쳐(L0 방향의 참조 픽쳐)와 제2 참조 픽쳐(L1 방향의 참조 픽쳐)를 포함할 수 있다. 설명의 편의를 위해, 이하 제1 참조 픽쳐와 현재 픽쳐 간의 POC 차이를 PocDiff0라 하고, 제2 참조 픽쳐와 현재 픽쳐 간의 POC 차이를 PocDiff1라 한다.
PocDiff0와 PocDiff1이 동일한 경우, 현재 블록의 MVD0과 MVD1은 각각 머지 오프셋 벡터로 동일하게 설정될 수 있다.
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와 동일하게 설정되고, 별도의 스케일링이 수행되지 않을 수 있다.
한편, 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과 동일하게 설정되고, 별도의 스케일링이 수행되지 않을 수 있다.
도 15를 참조하면, 모션 벡터 차이값(MVD)를 이용하여, 현재 블록의 모션 벡터를 보정하고(S1530), 보정된 모션 벡터를 기반으로 현재 블록의 모션 보상을 수행할 수 있다(S1540).
도 16 내지 도 21은 본 발명이 적용되는 일실시예로서, 소정의 우선순위에 기초하여 현재 블록의 인터 예측 모드를 결정하는 방법을 도시한 것이다.
본 발명은 비디오 코딩 기술 중 스킵 모드 및/또는 머지 모드로 부호화된 부호화 블록에서 머지 모드와 관련된 부호화 정보를 파싱하는 방법 및 장치에 관한 것이다.
현재 부호화 및/또는 복호화 블록이 스킵 혹은 머지 모드로 부호화 및/또는 복호화된 경우, 다수개의 예측 방법이 사용될 수 있으며, 다수개의 예측 방법을 효율적으로 시그널링하는 방법이 필요하다. 현재 부호화 및/또는 복호화 블록의 머지 모드 관련 부호화 정보를 시그널링 및 파싱을 수행함에 있어, 다수개의 예측 방법 중 발생 빈도가 높은 순서에 따라 시그널링 및 파싱하는 신택스의 순서가 결정될 수 있다.
상기 다수개의 예측 방법은, 블록 단위의 머지 모드, 일반적인 CU 단위의 머지 모드 (regular merge mode or CU merge mode), MMVD (MVD 기반의 머지 모드), 서브블록 단위의 머지 모드, 결합 예측 모드, 비-사각형 예측 모드 또는 현재 픽쳐 참조 모드 중 적어도 하나를 포함할 수 있다.
또한, 각 해당 신택스를 시그널링 및 파싱하는 방법, 이에 대한 조건, 혹은 해당 신택스가 표현되지 않은 경우(또는, 시그날링되지 않는 경우)에 대하여는 이하 신택스 테이블과 각 신택스에 대한 시멘틱을 통하여 설명한다. 다만, 중복적인 설명은 생략하기로 한다.
도 16을 참조하면, regular_merge_flag는 현재 블록의 인터 예측 파라미터를 생성하기 위해 일반적인 CU 단위의 머지 모드가 사용되는지 여부를 지시할 수 있다. regular_merge_flag가 시그날링되지 않는 경우, regular_merge_flag는 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으로 유도될 수 있다.
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는 비-사각 파티션 기반의 모션 보상이 이용될 수 있는지 여부를 지시할 수 있다.
예를 들어, sps_ciip_enabled_flag 또는 sps_triangle_enabled_flag 중 적어도 하나가 0인 경우, merge_subblock_flag는 1로 유도되고, 그렇지 않은 경우, merge_subblock_flag는 0으로 유도될 수 있다.
ciip_flag는 현재 블록에 대해 결합 예측 모드가 적용되는지 여부를 지시할 수 있다. ciip_flag가 시그날링되지 않는 경우, ciip_flag는 sps_triangle_enabled_flag에 기초하여 유도될 수 있다. 예를 들어, sps_triangle_enabled_flag가 0인 경우, ciip_flag는 1로 유도되고, 그렇지 않은 경우, ciip_flag는 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으로 유도될 수 있다.
cu_skip_flag는 현재 블록이 스킵 모드로 부호화된 블록인지 여부를 지시할 수 있다. 예를 들어, cu_skip_flag=1인 경우, 현재 블록에 대해 다음 신택스를 제외하고 어떠한 신택스도 파싱되지 않는다. cu_skip_flag가 시그날링되지 않는 경우, cu_skip_flag는 0으로 유도될 수 있다.
- 결합 예측 모드를 지시하는 플래그(pred_mode_ibc_flag)
- MVD 기반의 머지 모드를 지시하는 플래그(mmvd_flag)
- MVD 기반의 머지 모드에서의 머지 인덱스(mmvd_merge_flag)
- MVD 기반의 머지 모드에서의 디스턴스 인덱스(mmvd distance_idx)
- MVD 기반의 머지 모드에서의 방향 인덱스(mmvd_direction_idx)
- 머지 인덱스(merge_idx)
- merge_subblock_flag
- 서브 블록 단위의 머지 모드에서의 머지 인덱스(merge_subblock_idx)
- 비-사각 파티션을 위한 분할 방향 지시자(merge_triangle_split_dir)
- 비-사각 파티션의 머지 인덱스(merge_triangle_idx)
도 17을 참조하면, regular_merge_flag는 현재 블록의 인터 예측 파라미터를 생성하기 위해 일반적인 CU 단위의 머지 모드가 사용되는지 여부를 지시할 수 있다. regular_merge_flag가 시그날링되지 않는 경우, regular_merge_flag는 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인지 여부를 고려하여 유도될 수 있다. 예를 들어, 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인 경우, regular_merge_flag는 1로 유도되고, 그렇지 않은 경우, regular_merge_flag는 0으로 유도될 수 있다.
도 18을 참조하면, regular_merge_flag는 현재 블록의 인터 예측 파라미터를 생성하기 위해 일반적인 CU 단위의 머지 모드가 사용되는지 여부를 지시할 수 있다. regular_merge_flag가 시그날링되지 않는 경우, regular_merge_flag는 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가 시그날링되지 않는 경우, mmvd_flag는 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인지 여부, regular_merge_flag 또는 현재 블록의 크기 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록이 아니고, regular_merge_flag가 1이 아니며, 현재 블록의 너비와 높이의 합이 12보다 작거나 같은 경우, mmvd_flag는 1로 유도되고, 그렇지 않은 경우, mmvd_flag는 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는 비-사각 파티션 기반의 모션 보상이 이용될 수 있는지 여부를 지시할 수 있다.
예를 들어, sps_ciip_enabled_flag 또는 sps_triangle_enabled_flag 중 적어도 하나가 0인 경우, merge_subblock_flag는 1로 유도되고, 그렇지 않은 경우, merge_subblock_flag는 0으로 유도될 수 있다.
ciip_flag는 현재 블록에 대해 결합 예측 모드가 적용되는지 여부를 지시할 수 있다. ciip_flag가 시그날링되지 않는 경우, ciip_flag는 sps_triangle_enabled_flag 또는 슬라이스 타입 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, sps_triangle_enabled_flag가 0이거나, 현재 블록이 속한 슬라이스가 B 슬라이스가 아닌 경우, ciip_flag는 1로 유도되고, 그렇지 않은 경우, ciip_flag는 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으로 유도될 수 있다.
cu_skip_flag는 현재 블록이 스킵 모드로 부호화된 블록인지 여부를 지시할 수 있다. 예를 들어, cu_skip_flag=1인 경우, 현재 블록에 대해 다음 신택스를 제외하고 어떠한 신택스도 파싱되지 않는다. cu_skip_flag가 시그날링되지 않는 경우, cu_skip_flag는 0으로 유도될 수 있다.
- 결합 예측 모드를 지시하는 플래그(pred_mode_ibc_flag)
- MVD 기반의 머지 모드를 지시하는 플래그(mmvd_flag)
- MVD 기반의 머지 모드에서의 머지 인덱스(mmvd_merge_flag)
- MVD 기반의 머지 모드에서의 디스턴스 인덱스(mmvd distance_idx)
- MVD 기반의 머지 모드에서의 방향 인덱스(mmvd_direction_idx)
- 머지 인덱스(merge_idx)
- merge_subblock_flag
- 서브 블록 단위의 머지 모드에서의 머지 인덱스(merge_subblock_idx)
- 비-사각 파티션을 위한 분할 방향 지시자(merge_triangle_split_dir)
- 비-사각 파티션의 머지 인덱스(merge_triangle_idx)
도 19를 참조하면, regular_merge_flag는 현재 블록의 인터 예측 파라미터를 생성하기 위해 일반적인 CU 단위의 머지 모드가 사용되는지 여부를 지시할 수 있다. regular_merge_flag가 시그날링되지 않는 경우, regular_merge_flag는 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인지 여부를 고려하여 유도될 수 있다. 예를 들어, 현재 블록이 현재 픽쳐 참조 모드로 부호화된 블록인 경우, regular_merge_flag는 1로 유도되고, 그렇지 않은 경우, regular_merge_flag는 0으로 유도될 수 있다.
부호화 장치는, 전술한 머지 모드 관련 부호화 정보 중 적어도 하나를 소정의 우선순위에 따라 부호화하여 비트스트림을 생성할 수 있다. 복호화 장치는, 상기 비트스트림을 복호화하여 머지 모드 관련 부호화 정보를 획득하고, 획득된 부호화 정보에 따라 인터 예측을 수행할 수 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 발명은 영상 신호를 부호화/복호화하기 위해 이용될 수 있다.

Claims (14)

  1. 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하는 단계;
    상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하는 단계; 및
    복호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수인, 영상 복호화 방법.
  3. 제1항에 있어서,
    상기 복호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고,
    상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함하는, 영상 복호화 방법.
  4. 제3항에 있어서,
    상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고,
    상기 중간 필터의 필터 길이는 6이며,
    상기 숏 필터의 필터 길이는 2 또는 4인, 영상 복호화 방법.
  5. 제4항에 있어서,
    P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고,
    상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록인, 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개인, 영상 복호화 방법.
  7. 제1항에 있어서, 상기 현재 픽쳐를 복원하는 단계는,
    현재 블록의 머지 후보 리스트를 구성하는 단계;
    상기 현재 블록의 머지 인덱스를 기반으로, 상기 머지 후보 리스트로부터 상기 현재 블록의 모션 정보를 유도하는 단계; 여기서, 상기 모션 정보는, 모션 벡터, 참조 픽쳐 인덱스 또는 예측 방향 정보 중 적어도 하나를 포함함,
    상기 현재 블록의 머지 모드를 위한 모션 벡터 차이값을 이용하여, 상기 현재 블록의 모션 벡터를 보정하는 단계; 및
    상기 보정된 모션 벡터를 기반으로 상기 현재 블록의 모션 보상을 수행하는 단계를 포함하는, 영상 복호화 방법.
  8. 제7항에 있어서,
    상기 모션 벡터를 보정하는 단계는, 상기 현재 블록의 크기가 소정의 문턱크기보다 큰 경우에 한하여 수행되는, 영상 복호화 방법.
  9. 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하는 단계;
    상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하는 단계; 및
    부호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용하는 단계를 포함하는, 영상 부호화 방법.
  10. 제9항에 있어서,
    상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수인, 영상 부호화 방법.
  11. 제1항에 있어서,
    상기 부호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고,
    상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함하는, 영상 부호화 방법.
  12. 제11항에 있어서,
    상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고,
    상기 중간 필터의 필터 길이는 6이며,
    상기 숏 필터의 필터 길이는 2 또는 4인, 영상 복호화 방법.
  13. 제12항에 있어서,
    P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고,
    상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록인, 영상 부호화 방법.
  14. 제13항에 있어서,
    상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개인, 영상 부호화 방법.
PCT/KR2020/003228 2019-03-07 2020-03-09 영상 부호화/복호화 방법 및 장치 WO2020180166A1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CA3132582A CA3132582A1 (en) 2019-03-07 2020-03-09 Image encoding/decoding method and apparatus
KR1020217027754A KR20210127709A (ko) 2019-03-07 2020-03-09 영상 부호화/복호화 방법 및 장치
MX2021010704A MX2021010704A (es) 2019-03-07 2020-03-09 Metodo y aparato de codificacion/decodificacion de imagenes.
CN202080019186.9A CN113545041A (zh) 2019-03-07 2020-03-09 图像编码/解码方法和设备
US17/357,741 US11363265B2 (en) 2019-03-07 2021-06-24 Method and device for encoding or decoding image
US17/749,046 US20220360776A1 (en) 2019-03-07 2022-05-19 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
KR10-2019-0032404 2019-03-21
KR20190032404 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 (ko) 2020-09-10

Family

ID=72338041

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/003228 WO2020180166A1 (ko) 2019-03-07 2020-03-09 영상 부호화/복호화 방법 및 장치

Country Status (6)

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

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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3068557A1 (fr) * 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2020256453A1 (ko) * 2019-06-19 2020-12-24 엘지전자 주식회사 결정된 예측 모드를 적용하여 예측 샘플들을 생성하는 영상 디코딩 방법 및 그 장치
US20230079960A1 (en) * 2021-09-15 2023-03-16 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 (ko) * 2014-12-05 2016-06-15 성균관대학교산학협력단 변환생략을 참조하는 디블록킹 필터링을 이용한 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR20180058649A (ko) * 2016-11-24 2018-06-01 한국전자통신연구원 스케일러블 비디오를 처리하기 위한 방법 및 장치
KR20180134764A (ko) * 2017-06-09 2018-12-19 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20190052895A1 (en) * 2011-11-03 2019-02-14 Sun Patent Trust Efficient rounding for deblocking
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

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2082583A2 (en) * 2006-11-08 2009-07-29 THOMSON Licensing 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
US8867605B2 (en) * 2008-10-14 2014-10-21 Nvidia Corporation Second deblocker in a decoding pipeline
US8861586B2 (en) * 2008-10-14 2014-10-14 Nvidia Corporation Adaptive deblocking in a decoding pipeline
CA2815817C (en) * 2010-12-07 2019-01-15 Sony Corporation Image processing device and image processing method
MX2013006131A (es) * 2010-12-07 2013-06-28 Sony Corp Dispositivo de procesamiento de imagenes y metodo de procesamiento de imagenes.
CN105915902B (zh) * 2011-03-08 2017-09-22 Jvc 建伍株式会社 动图像编码装置以及动图像编码方法
WO2012175196A1 (en) * 2011-06-20 2012-12-27 Panasonic Corporation Deblocking control by individual quantization parameters
EP2774362B1 (en) * 2011-11-03 2023-07-26 Sun Patent Trust Quantization parameter for blocks coded in the pcm mode
KR101934277B1 (ko) * 2011-11-28 2019-01-04 에스케이텔레콤 주식회사 개선된 머지를 이용한 영상 부호화/복호화 방법 및 장치
US9420280B2 (en) * 2012-06-08 2016-08-16 Qualcomm Incorporated Adaptive upsampling filters
BR112015006313A2 (pt) * 2012-09-28 2017-07-04 Sony Corp dispositivos de codificação e de decodificação, e, método de decodificação
KR20150056811A (ko) * 2012-11-13 2015-05-27 인텔 코포레이션 차세대 비디오를 위한 콘텐츠 적응적 변환 코딩
EP2885911B1 (en) * 2013-03-28 2021-03-10 Irdeto B.V. Processing digital content
KR102250092B1 (ko) * 2013-10-14 2021-05-10 삼성전자주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치
WO2015057039A1 (ko) * 2013-10-18 2015-04-23 엘지전자 주식회사 멀티-뷰 비디오 코딩에 있어서, 뷰 합성 예측 방법 및 이를 이용한 머지 후보 리스트 구성 방법
US20150271515A1 (en) * 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
CN104935944B (zh) * 2014-03-18 2018-03-13 华为技术有限公司 一种视频数据编码、解码的方法和装置
WO2016034058A1 (en) * 2014-09-01 2016-03-10 Mediatek Inc. Method of intra picture block copy for screen content and video coding
KR20170041220A (ko) * 2014-10-09 2017-04-14 에이치에프아이 이노베이션 인크. 뷰 합성 예측을 포함하는 3d 또는 다중뷰 비디오 코딩 방법
US10271064B2 (en) * 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
WO2017052081A1 (ko) * 2015-09-24 2017-03-30 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
ES2737845B2 (es) * 2016-07-05 2021-05-19 Kt Corp Metodo y aparato para procesar senal de video
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
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
CN114205618B (zh) * 2018-02-28 2023-07-25 三星电子株式会社 编码方法及其装置以及解码方法及其装置
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
BR112021004662A2 (pt) * 2018-09-12 2021-06-01 Huawei Technologies Co., Ltd. codificador de vídeo, decodificador de vídeo e métodos correspondentes
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
US11070796B2 (en) * 2018-09-28 2021-07-20 Qualcomm Incorporated Ultimate motion vector expression based pruning for video coding
US10893291B2 (en) * 2018-09-28 2021-01-12 Qualcomm Incorporated Ultimate motion vector expression with adaptive directional information set
US20200120339A1 (en) * 2018-10-11 2020-04-16 Mediatek Inc. Intra Prediction For Multi-Hypothesis
CN111357294B (zh) * 2018-10-23 2022-12-30 北京字节跳动网络技术有限公司 基于子块的运动信息列表的简化熵编解码
US11197032B2 (en) * 2018-11-08 2021-12-07 Telefonaktiebolaget Lm Ericsson (Publ) Asymmetric deblocking in a video encoder and/or video decoder
EP3881533A4 (en) * 2018-11-14 2022-09-07 Tencent America LLC VIDEO CODING METHOD AND APPARATUS
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
WO2020123998A1 (en) * 2018-12-13 2020-06-18 Tencent America LLC Video decoding by determining block reconstruction based on signaling information
WO2020141928A1 (ko) * 2019-01-04 2020-07-09 엘지전자 주식회사 영상 코딩 시스템에서 mmvd 에 따른 예측에 기반한 영상 디코딩 방법 및 장치
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 (pt) * 2019-02-20 2023-12-26 Beijing Dajia Internet Information Tech Co Ltd Derivação de vetor de movimento constrangido para imagens de referência de longo prazo em codificação de vídeo
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
KR102622468B1 (ko) * 2019-06-14 2024-01-09 엘지전자 주식회사 인터 예측 기반 영상 코딩 방법 및 장치

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 (ko) * 2014-12-05 2016-06-15 성균관대학교산학협력단 변환생략을 참조하는 디블록킹 필터링을 이용한 영상의 부호화/복호화 방법 및 이를 이용하는 장치
KR20180058649A (ko) * 2016-11-24 2018-06-01 한국전자통신연구원 스케일러블 비디오를 처리하기 위한 방법 및 장치
KR20180134764A (ko) * 2017-06-09 2018-12-19 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Cited By (2)

* 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

Also Published As

Publication number Publication date
CN113545041A (zh) 2021-10-22
KR20210127709A (ko) 2021-10-22
US11363265B2 (en) 2022-06-14
CA3132582A1 (en) 2020-09-10
US20210321096A1 (en) 2021-10-14
US20220360776A1 (en) 2022-11-10
MX2021010704A (es) 2021-12-10

Similar Documents

Publication Publication Date Title
WO2017171370A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017176030A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017222326A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018026219A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018066867A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2017204532A1 (ko) 영상 부호화/복호화 방법 및 이를 위한 기록 매체
WO2020111785A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019172705A1 (ko) 샘플 필터링을 이용한 영상 부호화/복호화 방법 및 장치
WO2017018664A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2019225993A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020180166A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018097626A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020076116A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020050685A1 (ko) 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2012043989A2 (ko) 블록 분할 방법 및 복호화 장치
WO2020096428A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019066524A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019050292A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019190201A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020055169A1 (ko) 인터 예측을 이용한 영상 부호화/복호화 방법 및 장치
WO2021107532A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020096427A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019182295A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018056701A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020067709A1 (ko) 인터 모드 기반의 영상 부호화/복호화 방법 및 장치

Legal Events

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

Ref document number: 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