WO2020180166A1 - 영상 부호화/복호화 방법 및 장치 - Google Patents
영상 부호화/복호화 방법 및 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
조건 | |
1 | dqp < 제1 문턱값 |
2 | (sp + sq) < 제2 문턱값 |
3 | spq < 제3 문턱값 |
Q 블록에 속한 필터링 영역의 길이(L) | 가중치 세트 |
L > 5 | { 59, 50, 41, 32, 23, 14, 5 } |
5 | { 58, 45, 32, 19, 6 } |
L < 5 | { 53, 32, 11 } |
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 |
direction_idx[ x0 ][ y0 ] | mvdDirection[ x0 ][ y0 ][0] | mvdDirection[ x0 ][ y0 ][1] |
0 | +1 | 0 |
1 | -1 | 0 |
2 | 0 | +1 |
3 | 0 | -1 |
Claims (14)
- 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하는 단계;상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하는 단계; 및복호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용하는 단계를 포함하는, 영상 복호화 방법.
- 제1항에 있어서,상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수인, 영상 복호화 방법.
- 제1항에 있어서,상기 복호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고,상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함하는, 영상 복호화 방법.
- 제3항에 있어서,상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고,상기 중간 필터의 필터 길이는 6이며,상기 숏 필터의 필터 길이는 2 또는 4인, 영상 복호화 방법.
- 제4항에 있어서,P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고,상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록인, 영상 복호화 방법.
- 제5항에 있어서,상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개인, 영상 복호화 방법.
- 제1항에 있어서, 상기 현재 픽쳐를 복원하는 단계는,현재 블록의 머지 후보 리스트를 구성하는 단계;상기 현재 블록의 머지 인덱스를 기반으로, 상기 머지 후보 리스트로부터 상기 현재 블록의 모션 정보를 유도하는 단계; 여기서, 상기 모션 정보는, 모션 벡터, 참조 픽쳐 인덱스 또는 예측 방향 정보 중 적어도 하나를 포함함,상기 현재 블록의 머지 모드를 위한 모션 벡터 차이값을 이용하여, 상기 현재 블록의 모션 벡터를 보정하는 단계; 및상기 보정된 모션 벡터를 기반으로 상기 현재 블록의 모션 보상을 수행하는 단계를 포함하는, 영상 복호화 방법.
- 제7항에 있어서,상기 모션 벡터를 보정하는 단계는, 상기 현재 블록의 크기가 소정의 문턱크기보다 큰 경우에 한하여 수행되는, 영상 복호화 방법.
- 인트라 예측 또는 인터 예측 중 적어도 하나를 기반으로, 현재 픽쳐를 복원하는 단계;상기 복원된 현재 픽쳐에서 디블록킹 필터가 적용되는 블록 경계를 특정하는 단계; 및부호화 장치에 기-정의된 필터 타입에 기반하여, 상기 특정된 블록 경계에 상기 디블록킹 필터를 적용하는 단계를 포함하는, 영상 부호화 방법.
- 제9항에 있어서,상기 디블록킹 필터는, 소정의 MxN 샘플 그리드(sample grid)의 단위로 적용되고, 여기서, M과 N은 4, 8 또는 그 이상의 정수인, 영상 부호화 방법.
- 제1항에 있어서,상기 부호화 장치는, 상이한 필터 길이를 가진 복수의 필터 타입을 정의하고,상기 복수의 필터 타입은 롱 필터(long filter), 중간 필터(middle filter) 또는 숏 필터(short filter) 중 적어도 하나를 포함하는, 영상 부호화 방법.
- 제11항에 있어서,상기 롱 필터의 필터 길이는 8, 10, 12 또는 14이고,상기 중간 필터의 필터 길이는 6이며,상기 숏 필터의 필터 길이는 2 또는 4인, 영상 복호화 방법.
- 제12항에 있어서,P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수와 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 서로 상이하고,상기 P 블록과 상기 Q 블록은 상기 특정된 블록 경계를 기준으로 양방향으로 인접한 블록인, 영상 부호화 방법.
- 제13항에 있어서,상기 P 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 3개이고, 상기 Q 블록에서 상기 디블록킹 필터가 적용되는 화소의 개수는 7개인, 영상 부호화 방법.
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)
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)
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)
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)
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 | 엘지전자 주식회사 | 인터 예측 기반 영상 코딩 방법 및 장치 |
-
2020
- 2020-03-09 CN CN202080019186.9A patent/CN113545041A/zh active Pending
- 2020-03-09 CA CA3132582A patent/CA3132582A1/en active Pending
- 2020-03-09 WO PCT/KR2020/003228 patent/WO2020180166A1/ko active Application Filing
- 2020-03-09 KR KR1020217027754A patent/KR20210127709A/ko unknown
- 2020-03-09 MX MX2021010704A patent/MX2021010704A/es unknown
-
2021
- 2021-06-24 US US17/357,741 patent/US11363265B2/en active Active
-
2022
- 2022-05-19 US US17/749,046 patent/US20220360776A1/en active Pending
Patent Citations (5)
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)
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 |