WO2013077714A1 - Procédé et appareil de codage/décodage d'informations d'image - Google Patents
Procédé et appareil de codage/décodage d'informations d'image Download PDFInfo
- Publication number
- WO2013077714A1 WO2013077714A1 PCT/KR2012/010120 KR2012010120W WO2013077714A1 WO 2013077714 A1 WO2013077714 A1 WO 2013077714A1 KR 2012010120 W KR2012010120 W KR 2012010120W WO 2013077714 A1 WO2013077714 A1 WO 2013077714A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- value
- deblocking filtering
- boundary
- determined
- 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/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
-
- 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/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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates to image information compression technology, and more particularly, to a method of applying a deblocking filter as an in-loop filter.
- High-efficiency image compression technology can be used to effectively transmit, store, and reproduce high-resolution, high-quality video information.
- inter prediction and intra prediction may be used.
- the pixel value of the current picture is predicted by referring to information of another picture
- the intra prediction method the pixel value is predicted by using the correlation between pixels in the same picture. do.
- Various methods for making an image identical to an original may be applied to a processing unit, eg, a block, of a predicted image. This allows the decoding apparatus to decode the image more accurately (more consistent with the original), and the encoding apparatus can encode the image so that it can be more accurately reconstructed.
- An object of the present invention is to provide a method and apparatus for effectively reconstructing an image close to an original by effectively removing deblocking artifacts in applying deblocking filtering.
- An object of the present invention is to provide a method and apparatus that can increase the compression efficiency by reducing the complexity in applying the deblocking filtering.
- An object of the present invention is to provide a method and apparatus that can reduce complexity by effectively setting a unit block for determining boundary strength (bS) in applying deblocking filtering.
- An object of the present invention is to provide a method and apparatus that can reduce the complexity by effectively setting the bS values for the luma component and the chroma component in applying deblocking filtering.
- the method of determining bS according to the present invention includes deriving a boundary of a deblocking filtering block, which is a unit block to which deblocking filtering is applied, and bS, a unit block for setting boundary strength (bS, hereinafter 'bS').
- BS setting for each block, and in the bS setting step a bS value may be set for a target boundary corresponding to a boundary of the deblocking filtering unit block as a boundary of the bS setting unit block.
- the value may be a criterion for determining whether deblocking filtering is applied to the luma component and whether or not deblocking filtering is applied to the chroma component.
- the bS value of the target boundary is set to bS2, and at least one of the two blocks bordering the target boundary is intra coding. If the target boundary is the target of deblocking filtering, the bS value of the target boundary is set to bS1. If the target boundary is not the target of deblocking filtering, the bS value of the target boundary is not applied. May be set to bS0, and bS0, bS1, and bS2 may have a relationship of bS0 ⁇ bS1 ⁇ bS2.
- bS when bS is set to bS1, the case where at least one of two blocks bordering the target boundary is not intra-coded, at least one of two blocks bordering the target boundary is not 0 It may include a case including a coefficient and a case in which two blocks bordering the target boundary have different reference pictures or different motion vectors.
- the bS value When deblocking filtering may be applied to the luma component, the bS value may be determined to be greater than bS0. In addition, when the deblocking filtering may be applied to the chroma component, the bS value may be determined to be larger than bS1.
- a quantization parameter may be determined by the set bS value, and a range of sample values to which deblocking filtering is applied may be determined based on the quantization parameter.
- the deblocking filtering method includes deriving a boundary of a deblocking filtering block, which is a unit block to which deblocking filtering is applied, and a unit block for setting a boundary strength (bS).
- the method may include setting bS for each bS block and applying deblocking filtering based on the bS on the basis of the deblocking filtering block.
- the bS setting unit block may be used as a boundary of the bS setting unit block.
- a bS value may be set for a target boundary corresponding to the boundary of the deblocking filtering unit block, and in the applying of the deblocking filtering step, it is determined whether to apply deblocking filtering to the luma component based on the bS value at the target boundary. In addition, it may be determined whether deblocking filtering is applied to the chroma component.
- the bS value of the target boundary is set to bS2, and at least one of the two blocks bordering the target boundary is intra coding. If the target boundary is the target of deblocking filtering, the bS value of the target boundary is set to bS1. If the target boundary is not the target of deblocking filtering, the bS value of the target boundary is not applied. Can be set to bS0, in which case bS0, bS1 and bS2 have a relationship of bS0 ⁇ bS1 ⁇ bS2.
- the bS value is larger than bS0 at the block boundary, it may be determined that deblocking filtering may be applied to the luma component. In addition, when the bS value is greater than bS1 at the block boundary, it may be determined that deblocking filtering may be applied to the chroma component.
- a sample value to which the deblocking filter is applied is within a range determined by a range parameter, and the range parameter may be determined based on a quantization parameter.
- the quantization parameter may be determined based on a bS value.
- the present invention in applying the deblocking filtering, it is possible to effectively remove the deblocking artifacts and to reconstruct the image closer to the original.
- the complexity may be reduced to increase the compression efficiency.
- the complexity in applying the deblocking filtering, the complexity can be reduced by effectively setting the bS values for the luma component and the chroma component.
- FIG. 1 is a block diagram schematically illustrating an encoding apparatus (video encoding apparatus) according to an embodiment of the present invention.
- FIG. 2 is a block diagram schematically illustrating an image decoding apparatus according to an embodiment of the present invention.
- FIG. 3 is a flowchart schematically illustrating a method of applying a deblocking filter according to the present invention.
- FIG. 4 is a diagram schematically illustrating a method of deblocking filtering according to the present invention.
- FIG. 5 is a flowchart schematically illustrating an example of a method of obtaining bS.
- FIG. 6 is a diagram schematically illustrating an example of a method of determining a bS value.
- FIG. 7 and 8 schematically illustrate another example of a method of determining a bS value.
- FIG. 9 schematically illustrates an example of a method of determining bS when a boundary of a deblocking application unit block coincides with a boundary of a bS determination unit block.
- FIG. 10 is a diagram schematically illustrating another example of a method of determining a representative bS value in a unit block for performing deblocking filtering.
- FIG. 11 is a flowchart schematically illustrating another example of a method of determining bS.
- 12 to 14 are flowcharts schematically illustrating examples of a method of determining a bS value as one of three values.
- 15 and 16 are examples of a bS decision tree applied when OMBC is applied, and are flowcharts schematically illustrating a method of determining bS.
- 17 and 18 are diagrams schematically illustrating examples of a method of determining bS to apply deblocking filtering.
- 19 is a flowchart schematically illustrating an example of a method of determining a representative bS.
- 20 is a flowchart schematically illustrating another example of a method of determining a representative bS.
- 21 is a flowchart schematically illustrating a method of simplifying a bS decision tree.
- 22 is a flowchart schematically illustrating a method of encoding an image according to the present invention.
- 23 is a flowchart schematically illustrating a method of decoding an image according to the present invention.
- 24 is a flowchart schematically illustrating an example of a method of deriving bS and applying deblocking filtering according to the present invention.
- each of the components in the drawings described in the present invention are shown independently for the convenience of description of different characteristic functions in the image encoding apparatus / decoding apparatus, each component is a separate hardware or separate software It does not mean that it is implemented.
- two or more of each configuration may be combined to form one configuration, or one configuration may be divided into a plurality of configurations.
- Embodiments in which each configuration is integrated and / or separated are also included in the scope of the present invention without departing from the spirit of the present invention.
- the encoding apparatus 100 may include a picture divider 105, a predictor 110, a transformer 115, a quantizer 120, a reordering unit 125, an entropy encoding unit 130, An inverse quantization unit 135, an inverse transform unit 140, a filter unit 145, and a memory 150 are provided.
- the picture dividing unit 105 may divide the input picture into at least one processing unit block.
- the block as the processing unit may be a prediction unit (hereinafter referred to as a PU), a transform unit (hereinafter referred to as a TU), or a coding unit (hereinafter referred to as "CU"). It may be called.
- the processing unit blocks divided by the picture divider 105 may have a quad-tree structure.
- the predictor 110 includes an inter predictor for performing inter prediction and an intra predictor for performing intra prediction, as described below.
- the prediction unit 110 generates a prediction block by performing prediction on the processing unit of the picture in the picture division unit 105.
- the processing unit of the picture in the prediction unit 110 may be a CU, a TU, or a PU.
- the prediction unit 110 may determine whether the prediction performed on the processing unit is inter prediction or intra prediction, and determine specific contents (eg, prediction mode, etc.) of each prediction method.
- the processing unit in which the prediction is performed and the processing unit in which the details of the prediction method and the prediction method are determined may be different.
- the prediction method and the prediction mode may be determined in units of PUs, and the prediction may be performed in units of TUs.
- a prediction block may be generated by performing prediction based on information of at least one picture of a previous picture and / or a subsequent picture of the current picture.
- a prediction block may be generated by performing prediction based on pixel information in a current picture.
- a skip mode, a merge mode, a motion vector prediction (MVP), and the like can be used.
- a reference picture may be selected for a PU and a reference block having the same size as the PU may be selected.
- the reference block may be selected in integer pixel units.
- a prediction block is generated in which a residual signal with the current PU is minimized and the size of the motion vector is also minimized.
- the prediction block may be generated in integer sample units, or may be generated in sub-pixel units such as 1/2 pixel unit or 1/4 pixel unit.
- the motion vector may also be expressed in units of integer pixels or less. For example, it may be expressed in units of 1/4 pixels for luminance samples and in units of 1/8 pixels for chrominance samples.
- the residual may be used as the reconstructed block, and thus the residual may not be generated, transformed, quantized, or transmitted.
- a prediction mode When performing intra prediction, a prediction mode may be determined in units of PUs, and prediction may be performed in units of PUs. In addition, a prediction mode may be determined in units of PUs, and intra prediction may be performed in units of TUs.
- the prediction mode may have 33 directional prediction modes and at least two non-directional modes.
- the non-directional mode may include a DC prediction mode and a planner mode (Planar mode).
- a prediction block may be generated after applying a filter to a reference sample.
- whether to apply the filter to the reference sample may be determined according to the intra prediction mode and / or the size of the current block.
- the PU may be a block of various sizes / types, for example, in the case of inter prediction, the PU may be a 2N ⁇ 2N block, a 2N ⁇ N block, an N ⁇ 2N block, an N ⁇ N block (N is an integer), or the like.
- the PU In the case of intra prediction, the PU may be a 2N ⁇ 2N block or an N ⁇ N block (where N is an integer).
- the PU of the N ⁇ N block size may be set to apply only in a specific case.
- the NxN block size PU may be used only for the minimum size CU or only for intra prediction.
- PUs such as N ⁇ mN blocks, mN ⁇ N blocks, 2N ⁇ mN blocks, or mN ⁇ 2N blocks (m ⁇ 1) may be further defined and used.
- the residual value (the residual block or the residual signal) between the generated prediction block and the original block is input to the converter 115.
- the prediction mode information, the motion vector information, etc. used for the prediction are encoded by the entropy encoding unit 130 together with the residual value and transmitted to the decoding apparatus.
- the transform unit 115 performs transform on the residual block in units of transform blocks and generates transform coefficients.
- the transform block is a rectangular block of samples to which the same transform is applied.
- the transform block can be a transform unit (TU) and can have a quad tree structure.
- the transformer 115 may perform the transformation according to the prediction mode applied to the residual block and the size of the block.
- the residual block is transformed using a discrete sine transform (DST), otherwise the residual block is transformed into a discrete cosine transform (DCT). Can be converted using.
- DST discrete sine transform
- DCT discrete cosine transform
- the transform unit 115 may generate a transform block of transform coefficients by the transform.
- the quantization unit 120 may generate quantized transform coefficients by quantizing the residual values transformed by the transform unit 115, that is, the transform coefficients.
- the value calculated by the quantization unit 120 is provided to the inverse quantization unit 135 and the reordering unit 125.
- the reordering unit 125 rearranges the quantized transform coefficients provided from the quantization unit 120. By rearranging the quantized transform coefficients, the encoding efficiency of the entropy encoding unit 130 may be increased.
- the reordering unit 125 may rearrange the quantized transform coefficients in the form of a 2D block into a 1D vector form through a coefficient scanning method.
- the reordering unit 125 may increase the entropy encoding efficiency of the entropy encoding unit 130 by changing the order of coefficient scanning based on probabilistic statistics of coefficients transmitted from the quantization unit.
- the entropy encoding unit 130 may perform entropy encoding on the quantized transform coefficients rearranged by the reordering unit 125.
- Entropy encoding may include, for example, encoding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
- the entropy encoding unit 130 may include quantized transform coefficient information, block type information, prediction mode information, partition unit information, PU information, transmission unit information, and motion vector of the CUs received from the reordering unit 125 and the prediction unit 110.
- Various information such as information, reference picture information, interpolation information of a block, and filtering information may be encoded.
- the entropy encoding unit 130 may apply a constant change to a parameter set or syntax to be transmitted.
- the inverse quantizer 135 inversely quantizes the quantized values (quantized transform coefficients) in the quantizer 120, and the inverse transformer 140 inversely transforms the inverse quantized values in the inverse quantizer 135.
- the reconstructed block may be generated by combining the residual values generated by the inverse quantizer 135 and the inverse transform unit 140 and the prediction blocks predicted by the prediction unit 110.
- a reconstructed block is generated by adding a residual block and a prediction block through an adder.
- the adder may be viewed as a separate unit (restore block generation unit) for generating a reconstruction block.
- the filter unit 145 may apply a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) to the reconstructed picture.
- ALF adaptive loop filter
- SAO sample adaptive offset
- the deblocking filter may remove distortion generated at the boundary between blocks in the reconstructed picture.
- the adaptive loop filter may perform filtering based on a value obtained by comparing the reconstructed image with the original image after the block is filtered through the deblocking filter. ALF may be performed only when high efficiency is applied.
- the SAO restores the offset difference from the original image on a pixel-by-pixel basis to the residual block to which the deblocking filter is applied, and is applied in the form of a band offset and an edge offset.
- the filter unit 145 may not apply filtering to the reconstructed block used for inter prediction.
- the memory 150 may store the reconstructed block or the picture calculated by the filter unit 145.
- the reconstructed block or picture stored in the memory 150 may be provided to the predictor 110 that performs inter prediction.
- the image decoding apparatus 200 may include an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, a prediction unit 230, and a filter unit 235.
- Memory 240 may be included.
- the input bitstream may be decoded according to a procedure in which image information is processed in the image encoding apparatus.
- variable length coding such as CAVLC (VLC)
- VLC variable length coding
- the entropy decoding unit 210 also uses the VLC used in the encoding apparatus. Entropy decoding may be performed by implementing the same VLC table as the table.
- CABAC CABAC is used to perform entropy encoding in the image encoding apparatus
- the entropy decoding unit 210 may perform entropy decoding using CABAC correspondingly.
- Information for generating the prediction block among the information decoded by the entropy decoding unit 210 is provided to the predictor 230, and a residual value where entropy decoding is performed by the entropy decoding unit 210, that is, a quantized transform coefficient It may be input to the reordering unit 215.
- the reordering unit 215 may reorder the information of the bitstream entropy decoded by the entropy decoding unit 210, that is, the quantized transform coefficients, based on the reordering method in the encoding apparatus.
- the reordering unit 215 may reorder the coefficients expressed in the form of a one-dimensional vector by restoring the coefficients in the form of a two-dimensional block.
- the reordering unit 215 may generate an array of coefficients (quantized transform coefficients) in the form of a 2D block by scanning coefficients based on the prediction mode applied to the current block (transform block) and the size of the transform block.
- the inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoding apparatus and the coefficient values of the rearranged block.
- the inverse transform unit 225 may perform inverse DCT and / or inverse DST on the DCT and the DST performed by the transform unit of the encoding apparatus with respect to the quantization result performed by the image encoding apparatus.
- the inverse transformation may be performed based on a transmission unit determined by the encoding apparatus or a division unit of an image.
- the DCT and / or DST in the encoding unit of the encoding apparatus may be selectively performed according to a plurality of pieces of information, such as a prediction method, a size and a prediction direction of the current block, and the inverse transform unit 225 of the decoding apparatus is configured in the transformation unit of the encoding apparatus.
- Inverse transformation may be performed based on the performed transformation information.
- the prediction unit 230 may generate the prediction block based on the prediction block generation related information provided by the entropy decoding unit 210 and the previously decoded block and / or picture information provided by the memory 240.
- intra prediction for generating a prediction block based on pixel information in the current picture may be performed.
- inter prediction on the current PU may be performed based on information included in at least one of a previous picture or a subsequent picture of the current picture.
- motion information required for inter prediction of the current PU provided by the image encoding apparatus for example, a motion vector, a reference picture index, and the like, may be derived by checking a skip flag, a merge flag, and the like received from the encoding apparatus.
- the reconstruction block may be generated using the prediction block generated by the predictor 230 and the residual block provided by the inverse transform unit 225.
- FIG. 2 it is described that the reconstructed block is generated by combining the prediction block and the residual block in the adder.
- the adder may be viewed as a separate unit (restore block generation unit) for generating a reconstruction block.
- the residual is not transmitted and the prediction block may be a reconstruction block.
- the reconstructed block and / or picture may be provided to the filter unit 235.
- the filter unit 235 may apply deblocking filtering, sample adaptive offset (SAO), and / or ALF to the reconstructed block and / or picture.
- SAO sample adaptive offset
- the memory 240 may store the reconstructed picture or block to use as a reference picture or reference block and provide the reconstructed picture to the output unit.
- the filter unit of the encoding device and the decoding device may apply a deblocking filter, an adaptive loop filter (ALF), and a sample adaptive offset (SAO) as an in-loop filter.
- ALF adaptive loop filter
- SAO sample adaptive offset
- the deblocking filter removes artifacts between blocks due to block-by-block prediction, transformation, and quantization.
- the deblocking filter is applied to the prediction unit edge or the transform unit edge, and can set a predetermined minimum block size for applying the deblocking filter.
- a block boundary strength (hereinafter, referred to as bS) of a horizontal or vertical filter boundary is determined. Based on the bS, whether to perform filtering is determined in units of blocks and a threshold for determining filtering boundaries is derived. If you decide to perform filtering, decide which filter to apply.
- the filter to be applied may be selected from a weak filter and a strong filter.
- the filtering unit applies the selected filter to the boundary of the corresponding block.
- the adaptive loop filter may be applied after performing the SAO described later.
- ALF compensates for encoding errors by using a Wiener filter, and unlike SAO, ALF is applied globally in a slice.
- ALF may be applied only in the case of HE (High Efficiency).
- SAO is a procedure for restoring the offset difference from the original image on a pixel-by-pixel basis for the deblocking filtering image.
- a coding error may be compensated for through SAO, and the coding error may be due to quantization.
- SAO There are two types of SAO: band offset and edge offset.
- block distortion may occur at a boundary between reconstructed blocks.
- the deblocking filter may be applied to prevent block distortion, and the deblocking filter may be applied by distinguishing a position where block distortion easily occurs and a position where block distortion does not easily occur within the same image or picture.
- the deblocking filter may be applied in different ways to positions where block distortion is likely to occur and positions where block distortion is unlikely to occur.
- the bS for the boundary between blocks is determined in consideration of whether the boundary between blocks corresponds to a boundary to which the deblocking filter is to be applied, whether neighboring blocks are intra coded blocks, and the like. Filtering can be applied.
- the CU is an I_PCM CU, that is, a PCM (Pulse Coding Modulation) CU to which intra prediction is applied
- deblocking filtering may not be applied.
- the current block is not reconstructed through the prediction using the neighboring block.
- the I_PCM mode since the quantization and transformation processes are not performed, the same value as the original data is restored.
- the in-loop filter may not be applied to the CU to which the I_PCM mode is applied (I_PCM CU).
- the deblocking filtering process may set the quantization parameter qP for the I_PCM CU to zero to prevent the deblocking filter from being applied to the I_PCM CU.
- whether to apply the deblocking filter may be transmitted to the decoding apparatus. For example, a flag indicating whether to apply an in-loop filter for the PCM mode in a sequence parameter set (SPS) may be transmitted.
- SPS sequence parameter set
- FIG. 3 is a flowchart schematically illustrating a method of applying a deblocking filter according to the present invention.
- the deblocking filtering described in FIG. 3 may be performed in the encoding apparatus and the decoding apparatus.
- the filtering unit of FIGS. 1 and 2 may perform the deblocking filtering described in FIG. 3.
- Deblocking filtering is applied first to a vertical edge between blocks in the current picture and then to a horizontal edge between blocks in the current picture. Deblocking filtering is applied to the horizontal edges in the current picture with the modified sample by deblocking filtering of vertical edges.
- the deblocking filtering procedure described in FIG. 3 may be applied to the vertical edge in the current picture and then to the horizontal edge in the current picture.
- a block boundary is derived to apply deblocking filtering (S310).
- the filter unit sets the size of a current coding block or a current large coding unit (LCU) (hereinafter, referred to as a coding block in the present specification for convenience of description), and the boundary of the current coding block is It may be determined whether the boundary of the current coding block is not the picture boundary, the boundary of the current coding block is the boundary to which the deblocking filter is applied as the boundary of the tile, and the boundary of the current coding block is the boundary to which the deblocking filter is applied as the boundary of the slice.
- LCU current large coding unit
- the left boundary of the current coding block may be excluded from the object of the deblocking filtering. If the left boundary of the current coding block is the left boundary of the current tile and you decide not to apply a filter to the edges of the current tile, or if the left boundary of the current coding block is the left boundary of the current slice and you decide not to apply the filter to the edges of the current slice. In this case, the left boundary of the current coding block may be excluded from the object of deblocking filtering. Therefore, in the deblocking filtering for the vertical edge, the deblocking filtering may be applied to the left boundary of the current coding block if not the case.
- the deblocking filter when the deblocking filter is applied to the horizontal edge, if a top boundary of the current coding block is an upper boundary of the current picture, the upper boundary of the current coding block may be excluded from the object of the deblocking filtering. If the upper boundary of the current coding block is the upper boundary of the current tile and you decide not to apply a filter to the edges of the current tile, or the upper boundary of the current coding block is the upper boundary of the current slice and you decide not to apply the filter to the edges of the current slice. In this case, the upper boundary of the current coding block may be excluded from the object of deblocking filtering. In the deblocking filtering on the horizontal edge, if not the case, the deblocking filtering may be applied to the upper boundary of the current coding block.
- applying filtering to a boundary means performing filtering on predetermined samples located at both sides of the boundary.
- the filter unit may induce a block boundary with respect to the vertical edges of the transform block and the prediction block when the deblocking filtering is applied to the vertical edges in the picture, and when the deblocking filtering is applied to the horizontal edges in the picture, the filter block And a block boundary for the horizontal edge of the prediction block.
- the edge of the transform block may be derived depending on whether the deblocking filtering is applied to the corresponding edge of the coding block.
- a boundary may be derived for each block to be divided.
- the filter unit may induce a boundary for each partition of the prediction block.
- the partitions of the prediction block are 2NxN pixel blocks, NxN pixel blocks, 2NxnU pixel blocks, 2NxnD pixel blocks (N, U, and D are integers corresponding to the number of pixels, and n is an integer corresponding to the number of prediction blocks in the coding block. ), Edges can be derived for each partition.
- bS for a block boundary to which the deblocking filter is applied is derived (S320).
- bS is determined for each edge in the current coding block.
- bS may be derived for each vertical edge.
- bS may be derived for each horizontal edge.
- bS may be derived per edge of the transform block or may be derived per edge of the prediction block.
- bS may be derived in units of blocks of a predetermined size, for example, in units of 8x8 pixel blocks or 4x4 pixel blocks.
- bS may be derived for an edge of a block satisfying a specific condition among a transform block, a prediction block, and a predetermined size block in the current coding block.
- bS may be derived for the smaller of the transform block (e.g., TU) and the predictive block (e.g., PU) and the larger of the predetermined sized block (e.g., 8x8 pixel block).
- bS is a pixel unit corresponding to the size of a block that is a unit of bS determination at the boundary of a block to which deblocking is applied (for example, L pixel unit if the unit of bS determination is an LxL pixel block (L is an integer)). Can be determined. Derivation of specific values of bS will be described later.
- deblocking filtering may not be applied to the edge.
- deblocking filtering may not be applied to the edge.
- deblocking filtering may not be applied to the edge.
- the reference bS bS th1 and bS th2 may be set identically or differently.
- an additional threshold value (called Th1 for convenience of description) may be set. For example, when the reference bS value is set to 0, when the bS value for the target edge is larger than 0, Th1 may be used to determine whether to turn on / off the deblocking filtering at the block level. For example, the deblocking filter may be applied to the target edge when the value derived from the target edge is larger than Th1.
- deblocking filtering is applied to vertical edges in a picture is a value derived from the target vertical edge for comparison with Th1, which is defined in two blocks bounded by the corresponding vertical edge in a specific sample row.
- the difference between the samples to be filtered may be considered. For example, for samples in the k th sample row (k is an integer), the sum of the differences between the samples to be filtered adjacent to the vertical edge in the left block of the vertical edge, DL k (eg, a deblocking filter is applied).
- the sum of the difference between the first sample from the vertical edge and the second sample from the vertical edge and the difference between the third sample from the vertical edge and the second sample from the vertical edge The sum of the difference between the samples to be filtered adjacent to the vertical edge in the right block (current block) of the vertical edge DR k (e.g., if the deblocking filter is applied, three samples from the vertical edge are subject to filtering).
- the first sample from the vertical edge and the second sample from the vertical edge and the third sample from the vertical edge and the second sample from the vertical edge The sum of the differences of the players).
- the sum D k of the DL k and the DR k may be compared with the Th1 to apply the deblocking filtering to the corresponding vertical edge when the D k is smaller than the Th1. If D k is less than Th1, then considering the quantization parameter, it is considered that the vertical boundary is not an effective boundary (e.g., the actual boundary of the image in the original picture, etc.) and does not apply the deblocking filter. It can be judged to be close to the original.
- the D value may be derived by collecting the absolute values of the sums of the differences between the samples to be filtered for each sample row and each block.
- the D value considering the k th sample row and the k + j th sample rows of the left block L and the right block R with respect to the vertical edge may be derived as in Equation 1 below.
- DL K is the sum of the differences between the samples to be filtered adjacent to the vertical edge in the k th sample row of the left block. If deblocking filtering is applied to three samples adjacent to the vertical edge, then DL K is perpendicular to the difference between the first sample from the vertical edge and the second sample from the vertical edge in the kth sample row of the left block of the vertical edge. It can be derived as the sum of the difference between the third sample from the edge and the second sample from the vertical edge. DR K is the sum of the differences between samples to be filtered adjacent to the vertical edge in the k th sample row of the right block.
- DR K is the difference between the first sample from the vertical edge and the second sample from the vertical edge in the kth sample row of the right edge of the vertical edge. And the sum of the difference between the third sample from the vertical edge and the second sample from the vertical edge.
- D k may be defined as Equation 2 considering only k sample rows.
- D is less than Th1 and D k and k + 3 for the k th sample row. If D k + 3 for the first sample row is smaller than half of Th1 (Th1 / 2), respectively, strong filtering may be applied to the corresponding vertical edge. Alternatively, if D is less than Th1, but D k is not less than Th1 / 2 or D k + 3 is not less than Th1 / 2, weak filtering may be applied to the corresponding vertical edge.
- the filtering may be applied only to a specific sample among the samples to be filtered, and in this case, the filter coefficient may be different from the strong filtering.
- the samples to be filtered are six samples (three samples on the left and three samples on the right) positioned to the left and right of the vertical edge, while the strong filtering is applied to all the samples to be filtered.
- the filtering may be applied to two samples located on the left side of the target edge and two samples located on the right side of the target edge.
- the filter coefficients of the strong filtering and the weak filtering may also be different.
- the sum DT k of the difference between the samples to be filtered adjacent to the horizontal edge in the upper block of the horizontal edge e.g, If a deblocking filter is applied, the difference between the first sample from the horizontal edge and the second sample from the horizontal edge and the third sample from the horizontal edge and the second sample from the horizontal edge, The sum of the differences) and the sum of the differences between the samples to be filtered adjacent to the horizontal edge in the lower block (current block) of the horizontal edge DB k (e.g., three samples from the horizontal edge if a deblocking filter is applied).
- the samples are three times from the horizontal edge and the difference between the first sample from the horizontal edge and the second sample from the horizontal edge. From the sample and a horizontal edge it can be derived the sum of two difference in the second sample). Compare DT k D k and the sum of k and the DB Th1, it could be to apply a deblocking filter to the horizontal edges in the case where D k is less than Th1.
- the sample row considered for the vertical edge and the sample column considered for the horizontal edge may be the sample row and the sample column corresponding to each other. For example, if the 0th sample row and the 3rd sample row are targeted for the vertical edge, the 0th sample column and the 3rd sample column may be targeted for the horizontal edge.
- an absolute value may be respectively applied to the sums of differences between the sample column and the sample to be filtered for each block.
- the D value considering the k-th sample column and the k + j-th sample column of the upper block T and the lower block B with respect to the horizontal edge may be derived as in Equation 3 below.
- DT K is the sum of the differences between the samples to be filtered adjacent to the horizontal edges in the k-th sample column of the upper block. If deblocking filtering is applied to three samples adjacent to the horizontal edge, DT K is the horizontal difference between the first sample from the horizontal edge and the second sample from the horizontal edge in the kth sample column of the block above the horizontal edge. It can be derived as the sum of the difference between the third sample from the edge and the second sample from the horizontal edge. DB K is the sum of the differences between the samples to be filtered adjacent to the horizontal edge in the k th sample column of the lower block.
- DB K is the difference between the first sample from the horizontal edge and the second sample from the horizontal edge in the kth sample column of the horizontal edge lower block. And the sum of the difference between the third sample from the horizontal edge and the second sample from the horizontal edge.
- the deblocking filtering can be applied more effectively by considering the sum of the differences between adjacent samples to be filtered for each sample column.
- D k may be defined as Equation 4 by considering only k sample columns.
- the filtering may be applied only to a specific sample among the samples to be filtered.
- the filter coefficient may be applied differently from the strong filter. For example, consider the case where the samples to be filtered are six samples located above and below the horizontal edge (three samples on the edge and three samples on the edge), while strong filtering is applied to all the samples to be filtered. The filtering may be applied to two samples located above the target edge and two samples located below the target edge. In this case, the filter coefficients of the strong filtering and the weak filtering may also be different.
- Strong and weak filtering may be applied to the vertical and horizontal edges in the same way (eg, with the same filter coefficients or offsets).
- a predetermined method for example, , Deblocking filter can be applied according to the filter coefficient or offset.
- Deblocking filter can be applied according to the filter coefficient or offset.
- FIG. 3 illustrates a method of applying deblocking filtering in large steps such as derivation of block boundaries (S310), derivation of bS (S320), and filtering application (S330), a process of applying filtering from determination of bS is described. The above description may be divided into more detailed steps.
- the bS determination target edge is the edge for the smaller block of the TU and the PU. It may be an edge of a predetermined unit block (eg, an 8 ⁇ 8 pixel block), and may be an edge of a small unit block among TUs and a PU and a large block among predetermined unit blocks.
- a predetermined sample row of blocks on either side of the boundary (edge) as described above. (E.g., second and fifth sample rows) may be used.
- the bS determination target edge may be the edge for the smaller block of the TU and the PU. It may be an edge of a predetermined unit block (eg, an 8 ⁇ 8 pixel block), or an edge of a smaller unit block of a TU or a PU and a larger block of a predetermined unit block.
- a predetermined sample sequence of blocks on either side of the boundary (edge) can be used.
- deblocking filtering is performed 401 on an edge within a coding block in units of a coding block (eg, LCU). As described above, after performing deblocking filtering (horizontal filtering) on the vertical edge of the entire current picture, deblocking filtering (vertical filtering) on the horizontal edge is performed on the entire current picture.
- deblocking filtering horizontal filtering
- vertical filtering vertical filtering
- FIG. 5 is a flowchart schematically illustrating an example of a method of obtaining bS.
- a current block is represented as a Q block
- a block encoded / decoded before the current block as a block neighboring the current block is represented as a block P.
- FIG. For example, in the case of performing deblocking filtering on the vertical edge, the left block is called block P and the right block is called block Q with respect to the vertical edge.
- the upper block is called block P and the lower block is called block Q with the horizontal edge as a boundary.
- the sample which belongs to the block P is represented by p
- the sample which belongs to the block Q is represented by q.
- a boundary between block P and block Q is a CU boundary (S520).
- the CU boundary may be a boundary of the LCU.
- block P and / or block Q is not intra coded, it is determined whether block P and / or block Q includes a non-zero coefficient (transform coefficient) (S550).
- the filter unit may determine whether the presence of the non-zero transform coefficient is based on the transform coefficient before dequantization. In addition, the filter unit may determine whether a non-zero transform coefficient exists based on the transform coefficient after dequantization.
- step S550 when the block P and / or the block Q includes a coefficient (a nonzero transform coefficient), bS for a boundary between the block P and the block Q is determined as 2 (S560).
- bS for the boundary between the block P and the block Q is set to 0 (S590).
- S590 a case in which all of the above conditions are not described is described as an example for convenience of description.
- values of variables required for deblocking filtering may be set according to the bS value.
- t C offset is a value set by the user to determine the t C value optimized for the image characteristic.
- t C is one of a threshold value used to quantify the blocking artifact according to the degree of quantization to determine a parameter related to deblocking filtering.
- the block unit and the determination method for determining bS described above with reference to FIGS. 3 and 5 may be modified and applied.
- the bS may be determined in a unit equal to or smaller than a block unit performing the actual deblocking filtering.
- bS when the actual deblocking filtering is performed on a luma sample in units of 8x8 pixels, bS may be determined in units of 4x4 pixels.
- BS can be determined only at the boundary corresponding to In other words, when determining bS for each LxL (L is integer) pixel block, bS is determined in L pixel units at the boundary of a unit block for performing deblocking filtering.
- bS is 4 pixels at the boundary of the 8x8 pixel block in which the deblocking filtering is performed. Determined in units. Therefore, it is not necessary to determine bS for the edge of the 4x4 pixel block inside the 8x8 pixel block, which is a unit of deblocking filtering.
- FIG. 6 is a diagram schematically illustrating an example of a method of determining a bS value.
- the unit block 600 of the deblocking filtering is an 8x8 pixel block and the unit block of the bS determination is a 4x4 pixel block will be described as an example.
- a vertical edge which is a boundary (edge) of the 4x4 pixel block that becomes the unit block of the determination of bS and a boundary of the unit block 600 of the deblocking filtering and There is a horizontal edge.
- the vertical edge in the unit block 600 of the deblocking filtering, there are two vertical edges 610 and 620 to be subjected to bS determination.
- the bS of the first vertical edge 610 and the bS of the second vertical edge 620 are compared to determine the larger bS as the representative bS for the vertical edge of the unit block 600 of the deblocking filtering. .
- the unit block 600 of the deblocking filtering is 2, which is the bS value of the second vertical edge 620. This can be determined by the representative bS value for the vertical edge that is the left boundary of.
- one of the two bS values may be used as the representative bS value.
- the method does not induce bS for the boundary located inside the unit block to which the deblocking filtering is applied, that is, the boundary (edge) of the unit block to which the deblocking filtering is applied and the unit block for determining the bS.
- bS for the boundary located inside the unit block to which the deblocking filtering is applied, that is, the boundary (edge) of the unit block to which the deblocking filtering is applied and the unit block for determining the bS.
- Other examples of the method of deriving bS only for the boundary case will be described in detail.
- FIGS. 7 and 8 are views schematically illustrating another example of a method of determining a bS value.
- a method of allocating a bS value through a two-step process will be described as an example.
- the 4x4 pixel block is a unit of bS determination and the 8x8 pixel block is a deblocking filtering application unit
- bS is determined in 4x4 pixel units
- 8x8 pixel block units Describe how to reallocate.
- FIG. 7 is a diagram schematically illustrating an example of a method of setting bS for each bS determination unit.
- a 4x4 pixel block eg, a TU
- a 16x16 pixel block eg, a CU
- the bS value may be determined for each boundary of each 4x4 pixel block.
- step 1 An example of a specific process (step 1) for determining the bS for every 4x4 pixel block is as follows.
- the position of the luma sample on the upper left side of the current block for example, CU
- CU position of the luma sample on the upper left side of the current picture
- log2CUSize A variable specifying the size of a CU that is the current block
- horEdgeFlags and verEdgeFlags the vertical and horizontal edges at which bS is determined.
- step 1 counting how many 4x4 pixel blocks, which are bS determination units, in the current CU (current block) (how many times the width and length of the current CU are 4 pixels) ((1 ⁇ log2CUSize) >> 2) and assign it as the nE value. Therefore, in step 1, En bSs can be set horizontally and vertically in units of 4 pixels with respect to the current block.
- the bS value set for each bS determination unit may be reassigned for each deblocking filter application unit (step 2).
- bS value may be set for every 8x8 deblocking application unit block.
- step 2 described in FIG. 8 the bSs of the 4 ⁇ 4 pixel block units determined in step 1 are compared to use any one of the bSs for two adjacent edges as the representative bS for the deblocking filter application unit of 8 ⁇ 8.
- a larger value is compared by comparing bS v1 , bS of the upper edge, and bS v2 , bS of the lower edge. It can be used as the bS value (bS v ) for the left vertical edge of 810.
- bS v the bS value
- bS h bS value for the upper horizontal edge of.
- the bS value for the edge located in the 8x8 pixel block, which is a unit block to which the deblocking filter is applied, among the bSs determined in step 1, is not allocated.
- step 2 An example of a specific process (step 2) of reallocating bS for every 8x8 pixel block to perform deblocking filtering is as follows.
- the position of the luma sample on the upper left side of the current block for example, CU
- CU position of the luma sample on the upper left side of the current picture
- log2CUSize variable specifying the size of the CU, which is the current block
- array bS specifies the boundary filtering strength
- Deblocking filtering on the luma edge of the current block may be performed in the following steps.
- the boundary filtering strength bSVer for the vertical edge is derived as follows.
- bSVer Max (bS [0] [xD k ] [yD m + i]). I is 0,. , Seven.
- bS [0] [xD k ] [yD m + i] means a bS value defined based on (xD k , yD m + i) as the boundary filtering intensity for the vertical edge.
- the decision process for the block edge is performed to determine dEdge [0] [k] [m] and an array dS of size 8x8 indicating whether to apply strong or weak filtering as the information about the decision.
- the boundary filtering strength bSHor for the horizontal edge is derived as follows.
- bSHor Max (bS [1] [xD k + i] [yD m ]). I is 0,... , 7.
- bS [0] [xD k + i] [yD m ] means a bS value defined based on (xD k + i, yD m ) as the boundary filtering intensity for the horizontal edge.
- the decision process on the block edge is performed to determine dEdge [1] [k] [m] and an array dS of size 8x8 indicating whether to apply strong filtering or weak filtering as information about the decision.
- dSample [1] [m] [(k ⁇ 3) + i] for determining the dEdge value is set to dS [i]. I is 0,. , Seven.
- Deblocking filtering is performed on edges determined to apply deblocking filtering based on a bS value, a dEdge value, and a dSample value.
- log2CUSize-3 is used when deriving nD representing the number of deblocking filtering unit blocks in the current block. That is, in units of 8x8 pixel blocks, the deblocking filter may be applied to the vertical edge and the horizontal edge with respect to the current block (current CU) by the number of 8x8 pixel blocks.
- the bS value for the vertical edge and the bS value for the horizontal edge are set to the largest bS value by contrast for every eight pixels.
- bSVer, bS for the vertical edge is set to Max (bS [0] [xD k ] [yD m + i])
- bSHor, bS for the horizontal edge is Max (bS [1] [xD k + i ] (yD m ]), where i is 0,. , 7
- the largest bS may be set as the bS for the current deblocking filter applied block.
- the largest bS is set to bS for the vertical edge of the current deblocking filtering block, and eight pixels along the horizontal edge.
- the largest bS may be set as the bS for the horizontal edge of the current deblocking filtering applied block.
- step 1 bS is determined at the boundaries of all 4x4 pixel blocks (bS decision unit blocks), but in step 2, bSVer and horizontal edges are bS for vertical edges at the boundaries of 8x8 pixel blocks (deblocking filtering applied unit blocks). Since bSHor is set to bS for, it uses bS determined at the boundary of an 8x8 pixel block.
- a relationship such as j + 4 is used, the present invention is not limited to these equations.
- the bS can be set for each bS determination unit even by applying another relationship indicating this.
- Step 2 of FIG. 7 and FIG. 8 a formula such as log2CUSize-3 is used to clearly describe processing in units of 8 pixels, but the present invention is not limited to these formulas.
- deblocking filtering is applied to a predetermined deblocking filtering unit (8x8 pixel block in the above example), and thus, when bS can be allocated, bS is applied to each deblocking filtering unit even if another bS is applied. Can be reassigned.
- the case in which the current block is a CU as a luma sample is described as an example, but the present invention is not limited thereto, and the case in which the chroma block or the current block is a processing unit other than the CU (eg, a PU or a TU) The same may apply to).
- step 1 the bS value is determined / assigned for every 4x4 pixel block boundary, but in step 2, bSVer and bSHor are obtained at the boundary of the 8x8 pixel block. Therefore, in the examples of FIGS. 7 and 8, it is unnecessary to determine bS for the edge inside the 8 ⁇ 8 pixel block.
- methods for deriving bS may be considered only at the boundary of the deblocking filtering applied unit block and at the boundary of the bS determination unit block.
- a method of determining a bS in a bS determination unit for each deblocking filtering unit block (bS derivation method 1), and a condition for determining a bS for each bS determination unit, but having the bS determination unit at the boundary of the deblocking filtering unit block
- the method of adding (bS derivation method 2) can be considered.
- an example of a method of determining bS in a bS determination unit for each deblocking filtering applied unit block is as follows.
- the position of the luma sample on the upper left side of the current block for example, CU
- CU position of the luma sample on the upper left side of the current picture
- log2CUSize A variable specifying the size of a CU that is the current block
- horEdgeFlags and verEdgeFlags the vertical and horizontal edges at which bS is determined.
- bS may be determined based on (E k , E j ). For example, bS may be determined as bS [filterDir] [E k ] [E j ].
- set bS based on (xE k + r , yEj) for the horizontal edge specify the sample to apply deblocking filtering
- set bS based on (Ek, yE j + r ) for the vertical edge Blocking filtering samples are specified, but r values are limited to 0 and 1.
- bS is determined for an edge that is a boundary of an 8x8 pixel block and a boundary of a 4x4 pixel.
- bS is determined in units of 4 pixels (bS determination unit) at a boundary of an 8x8 pixel block (deblocking filtering applied unit block).
- the position of the luma sample on the upper left side of the current block for example, CU
- CU position of the luma sample on the upper left side of the current picture
- log2CUSize A variable specifying the size of a CU that is the current block
- horEdgeFlags and verEdgeFlags the vertical and horizontal edges at which bS is determined.
- a sample to which deblocking filtering is applied to the horizontal edge and the vertical edge may be determined based on (xE k , yE j ) specifying a set of edge sample positions.
- yE j % 2 is 0,
- p 0 is set as (xC + xE k , yC + yE j -1) of the reconstructed picture after prediction, and ( x 0 can be set by xC + xE k , yC + yE j ), and (3) the deblocking filtering direction becomes a vertical direction.
- yE j % 2 means the remainder obtained by dividing yE j by 2.
- bS may be determined based on (E k , E j ). For example, bS may be determined as bS [filterDir] [E k ] [E j ].
- Method 2 also does not perform bS determination on the edges inside the deblocking application unit block (8x8 pixel block).
- the process of determining bS in units of a 4x4 pixel block (bS decision unit block) is performed, but the bS is determined only when the index of the 4x4 block is even, that is, when the boundary of the 4x4 block becomes the boundary of the 8x8 block.
- bS at each boundary may be determined by the bS determination method described in the example of FIG. 5, or may be determined by a more concise bS determination method as described later.
- FIG. 9 schematically illustrates an example of a method of determining bS when a boundary of a deblocking application unit block coincides with a boundary of a bS determination unit block.
- the example of FIG. 9 schematically illustrates the application results of Method 1 and Method 2 above.
- bS is not determined at an edge located inside the block 910. .
- the edges of the unit block of the deblocking filtering may be derived by deriving only bS for one of the edges of the unit block of the deblocking filtering.
- One may consider applying as a representative bS for the corresponding edge.
- FIG. 10 is a diagram schematically illustrating another example of a method of determining a representative bS value in a unit block for performing deblocking filtering. Also in FIG. 10, the case where the unit block 1000 of the deblocking filtering is an 8x8 pixel block and the unit block of the bS determination is a 4x4 pixel block will be described as an example.
- bS is determined only for the 0 th edge 1010 of the two vertical edges 1010 and 1020 to be determined in the unit block 1000 of the deblocking filtering.
- bS is calculated only for the vertical edge and the horizontal edge of the unit block of the 0th bS determination for each unit block of deblocking filtering, and the calculated bS is used as the representative bS for the unit block of the deblocking filtering.
- the unit block of the deblocking filtering is an 8x8 pixel block and the unit block of the bS determination is a 4x4 pixel block
- bS can be determined only for the vertical edge and the horizontal edge of the 0th block (the upper left block) and used as the representative bS for the unit block of the deblocking filtering.
- the process of determining the bS may be simplified to determine the bS as a process corresponding to one fourth of the existing process, and the memory for storing the bS may be one-quarter of the existing process. Can be reduced.
- the position (edge) for determining bS may be determined using any of the methods described with reference to FIGS. 6 to 10 as described above. In this case, a method of specifically determining bS at the position at which bS is set is as described with reference to FIG. 5.
- the method of determining bS may also be applied to a method simpler than that of FIG. 5.
- the bS values are derived from 0 to 4 as in the example of FIG. 5, the deblocking filtering process may not use the values of bS in detail. For example, only bS> 0 may be determined, only bS> 1 may be determined, or only bS> 2 may be determined.
- the deblocking filtering may be performed by further simplifying the bS decision tree as in the example of FIG. 5.
- FIG. 11 is a flowchart schematically illustrating another example of a method of determining bS.
- block P and / or block Q are intra coded (S1110).
- bS for the boundary between the block P and the block Q is determined as bS3 (S1120).
- the transform coefficient may be a transform coefficient before inverse quantization is applied or a transform coefficient to which inverse quantization is applied.
- the bS value for the boundary between P and Q is determined as bS2 (S1140).
- block P and / or block Q does not include coefficients (non-zero transform coefficients) in step S1130, block P and block Q have different reference pictures or block P and block Q may have different motion vectors. It is determined whether to have (S1150).
- bS for the boundary between block P and block Q is determined as bS1 (S1160).
- bS for the boundary between the block P and the block Q is set to bS0 (S1170).
- the bS values determined in steps S1120, S1140, S1160, and S1170 are represented as bS3, bS2, bS1, and bS0, respectively, but are for convenience of description.
- bS3 is determined to be 3/4 in step S1120.
- the bS decision tree may be used to set values of variables required for deblocking filtering.
- t C offset is set to a specific value (for example, 2) for the largest bS value and 0 for other bS values.
- the deblocking filtering may be used by reducing the bS values from three (bS0, bS1, bS2) instead of four (bS0, bS1, bS2, bS3) as in the example of FIG.
- the case where block P and / or block Q is intra coded is determined as bS2, which is the largest bS value, and the bS value for the case where other deblocking filtering can be applied is determined as bS1, and deblocking filtering is applied.
- FIG. 12 is a flowchart schematically illustrating a method of determining a bS value as one of three values as described above.
- block P and / or block Q are intra coded (S1210).
- bS for the boundary between block P and block Q is determined as bS2 (S1220).
- block P and block Q contain nonzero coefficients (transform coefficients), P and Q have different reference pictures, or block P and block Q have different motions It is determined whether the vector has a state (S1230).
- the transform coefficient may be a transform coefficient before inverse quantization is applied or a transform coefficient to which inverse quantization is applied.
- block P and block Q contain nonzero coefficients (transform coefficients) in step S1230, or block P and block Q have different reference pictures or block P and block Q have different motion vectors
- block P and block BS for the boundary between Q is set to bS1 (S1240).
- bS1 is a value of bS for the case where the block P and the block Q are not intra-coded and the deblocking filter can be applied.
- the value of bS1 can be set to, for example, 1.
- bS is set to bS0 (S1240).
- the bS decision tree may be used to set values of variables required for deblocking filtering.
- t C offset simply setting t C offset to a specific value (for example, 2) for the largest bS value and 0 for other bS values is simply illustrated as an example.
- FIG. 13 is a flowchart schematically illustrating another method of determining a bS value as one of three values.
- bS determination method bS decision tree
- FIG. 12 an example in which three values bS1, bS2, and bS3 of bS are explicitly set to 0, 1, and 2 is shown for understanding of the invention.
- block P and / or block Q are intra coded (S1310).
- a value of bS for a boundary between block P and block Q is determined as 2 (S1320).
- block P and block Q contain nonzero coefficients (transform coefficients) or block P and block Q have different reference pictures or block P and block Q It is determined whether there is a different motion vector (S1330).
- the transform coefficient may be a transform coefficient before inverse quantization is applied or a transform coefficient to which inverse quantization is applied.
- block P and block Q include non-zero coefficients (transform coefficients), block P and block Q have different reference pictures, or block P and block Q have different motion vectors in step S1330, block P and block Q
- the value of bS for the boundary between Q is set to 1 (S1340).
- bS is 1, it is a bS value when the block P and the block Q are not intra-coded and the deblocking filter can be applied.
- the bS decision tree may be used to set values of variables required for deblocking filtering.
- t C offset is set to a specific value (for example, 2) for the largest bS value and 0 for other bS values.
- block P and Q determined in one step in FIG. 12 and FIG. 13 include nonzero coefficients (transform coefficients), P and Q have different reference pictures, or block P and block Q have different motion vectors. It may be possible to divide the judgment as to whether
- FIG. 14 is a flowchart schematically illustrating another method of determining a bS value as one of three values.
- block P and / or block Q are intra coded (S1410).
- the value of bS for the boundary between block P and block Q is determined as 2 (S1420).
- block P and / or block Q are not intra coded, it is determined whether block P and block Q include non-zero coefficients (transform coefficients) (S1430).
- the transform coefficient may be a transform coefficient before inverse quantization is applied or a transform coefficient to which inverse quantization is applied.
- the value of bS for the boundary between the block P and the block Q is set to 1 (S1440).
- bS is 1
- the bS value for the case where the block P and the block Q are not intra coded and the deblocking filter can be applied corresponds to the case where bS is 2 in the example of FIG. 5.
- block P and the block Q do not include nonzero coefficients (transform coefficients)
- step S1450 the value of bS for the boundary between block P and block Q is set to 1 (S1460).
- bS is 1
- the case where bS is 1 is a bS value for the case where the block P and the block Q are not intra coded and the deblocking filter can be applied, and corresponds to the case where the bS value is 1 in the example of FIG. 5.
- the bS decision tree may be used to set values of variables required for deblocking filtering.
- t C offset is set to a specific value (for example, 2) for the largest bS value and 0 for other bS values.
- bS specifies the edge to be determined.
- the specification of the edge to determine the bS may be performed using any of the methods described with reference to FIGS. 6 to 10.
- p 0 and q 0 are determined based on (xE k , yE j ) as described above.
- variable bS [filterDir] [xE k ] [yE j ] indicating the boundary filtering strength is determined according to the derived deblocking filtering direction. For example, a value of filterDir of 1 indicates filtering in the vertical direction, and thus bS for a horizontal edge is derived. A value of 0 for filterDir indicates filtering in the horizontal direction, and thus bS for the vertical edge is derived.
- xE k and yE j specify the edges that determine bS.
- the edge that determines bS is between p 0 set to (xC + xE k , yC + yE j ⁇ 1) and q 0 set to (xC + xE k , yC + yE j ) for the horizontal edge.
- bS If the block edge targeted for bS determination is a CU edge, and sample p 0 or q 0 belongs to a CU coded in the intra prediction mode, bS, that is, bS [filterDir] [xE k ] [yE j ] values are set to 4 do.
- the value of bS [filterDir] [xE k ] [yE j ] when deblocking filtering is applied is set to one.
- the deblocking filter is applied.
- BS may be set.
- bS specifies the edge to be determined.
- the specification of the edge to determine the bS may be performed using any of the methods described with reference to FIGS. 6 to 10.
- the reference position (xE k , yE j ) to determine bS, the p left and right samples p 0 and q 0 , the direction of deblocking filtering, and the like, are determined by the specification of the edge at which bS is to be determined.
- variable bS [filterDir] [xE k ] [yE j ] indicating the boundary filtering strength is determined according to the derived deblocking filtering direction. For example, a value of filterDir of 1 indicates filtering in the vertical direction, and thus bS for a horizontal edge is derived. A value of 0 for filterDir indicates filtering in the horizontal direction, and thus bS for the vertical edge is derived.
- xE k and yE j specify the edges that determine bS.
- the edge that determines bS is between p 0 set to (xC + xE k , yC + yE j ⁇ 1) and q 0 set to (xC + xE k , yC + yE j ) for the horizontal edge.
- the value of bS [filterDir] [xE k ] [yE j ] when deblocking filtering is applied is set to one.
- the absolute value difference between the vertical components or the horizontal components of the motion vector used for the PU including p 0 and the motion vector used for the PU including q 0 is 1/4 pixel unit.
- the same bS value may be derived in the same step without inducing bS in four steps.
- Another example of a method of deriving a bS value to any one of three bS values is as follows.
- bS specifies the edge to be determined.
- the specification of the edge to determine the bS may be performed using any of the methods described with reference to FIGS. 6 to 10.
- the reference position (xE k , yE j ) to determine bS, the p left and right samples p 0 and q 0 , the direction of deblocking filtering, and the like, are determined by the specification of the edge at which bS is to be determined.
- variable bS [filterDir] [xE k ] [yE j ] indicating the boundary filtering strength is determined according to the derived deblocking filtering direction. For example, a value of filterDir of 1 indicates filtering in the vertical direction, and thus bS for a horizontal edge is derived. A value of 0 for filterDir indicates filtering in the horizontal direction, and thus bS for the vertical edge is derived.
- xE k and yE j specify the edges that determine bS.
- the edge that determines bS is between p 0 set to (xC + xE k , yC + yE j ⁇ 1) and q 0 set to (xC + xE k , yC + yE j ) for the horizontal edge.
- the value of bS [filterDir] [xE k ] [yE j ] when deblocking filtering is applied is set to one. For example, if the block edges target bS crystal belonging to the TU, including yet TU edge (i) sample p 0 or q transform coefficient level 0 is not zero (level), PU or q 0 containing (ii) p 0 When a PU comprising a has different reference pictures or has a different number of motion vectors, (iii) the vertical component of the motion vector used for the PU including p 0 and the motion vector used for the PU including q 0 (Iv) two motion vectors are used in a PU containing p 0 , and two motion vectors are q 0 if the absolute difference between them or the absolute difference between horizontal components differs by 4 or more in units of 1/4 pixels .
- the absolute difference between the vertical components of the motion vector or the absolute difference between the horizontal components is 1/4 pixel unit. 4 by Difference I can be set to such bS [filterDir] [xE k] [yE j] value 1 if.
- the case where the bS value is derived to 1 may not be limited to the case where the block edge to be bS determination is the edge of the TU.
- Another example of a method of deriving a bS value to any one of three values is as follows.
- bS specifies the edge to be determined.
- the specification of the edge to determine the bS may be performed using any of the methods described with reference to FIGS. 6 to 10.
- the reference position (xE k , yE j ) to determine bS, the p left and right samples p 0 and q 0 , the direction of deblocking filtering, and the like, are determined by the specification of the edge at which bS is to be determined.
- variable bS [filterDir] [xE k ] [yE j ] indicating the boundary filtering strength is determined according to the derived deblocking filtering direction. For example, a value of filterDir of 1 indicates filtering in the vertical direction, and thus bS for a horizontal edge is derived. A value of 0 for filterDir indicates filtering in the horizontal direction, and thus bS for the vertical edge is derived.
- xE k and yE j specify the edges that determine bS.
- the edge that determines bS is between p 0 set to (xC + xE k , yC + yE j ⁇ 1) and q 0 set to (xC + xE k , yC + yE j ) for the horizontal edge.
- the value of bS [filterDir] [xE k ] [yE j ] when deblocking filtering is applied is set to one. For example, (i) If the block edges target bS crystal belonging to the TU, including TU edge while sample p 0 or q transform coefficient level 0 is not zero (level), PU or q 0 containing (ii) p 0 .
- a PU comprising a has different reference pictures or has a different number of motion vectors
- two motion vectors are used in a PU containing p 0 , and the two motion vectors are close to q 0 if the absolute difference between them or the absolute difference between the horizontal components differs by more than 4 in units of 1/4 pixels .
- the absolute difference between the vertical components of the motion vector or the absolute difference between the horizontal components is 1/4 pixel unit. 4 by Difference I can be set to such bS [filterDir] [xE k] [yE j] value 1 if.
- the reference picture is different in the PU including p0 and the PU including q0, which reference picture list is used, and the reference picture index of the reference picture list. Is determined according to which picture is referenced.
- the bS derived as described above can also be applied to the chroma sample.
- the deblocking filtering method for chroma components needs to be modified.
- variable t C is a value that quantifies the blocking artifact according to the degree of quantization, and may be set to be derived based on t C offset or to be mapped on a predetermined table based on other deblocking parameters.
- t C may be determined according to a quantization parameter Q, ⁇ as a reference value for determining whether to apply deblocking filtering, or the like.
- Table 1 shows an example of the correspondence relationship between Q, ⁇ , t C.
- Deblocking filtering for the chroma samples may be performed using the specified parameters based on the values in Table 1.
- deblocking filtering is performed as follows.
- k may have values of 0, ..., 3.
- the deblocking filtering method for chroma samples may be applied as follows.
- variable t C is a value that quantifies the blocking artifact according to the degree of quantization and may be set to be derived based on t C offset or to be mapped on a predetermined table based on other deblocking parameters.
- t C may be determined according to a quantization parameter Q, ⁇ as a reference value for determining whether to apply deblocking filtering, or the like.
- Table 2 shows an example of the correspondence relationship between Q, ⁇ , t C.
- Deblocking filtering for chroma samples may also be performed using specified parameters based on the values in Table 2.
- deblocking filtering is performed as follows.
- k may have values of 0, ..., 3.
- deblocking filtering on the luma sample and deblocking filtering on the chroma sample are more effective and lower. Can be done in complexity
- bS0 may be 0, the value of bS1 may be 1, and the value of bS2 may be 2.
- deblocking filtering may be applied for each block of deblocking filtering applied unit.
- bS> bS0 it is possible to determine whether to apply deblocking to that edge, whether to apply weak filtering or strong filtering, etc.
- Deblocking filtering may be applied. If bS is bS0, deblocking filtering is not applied.
- the value of bS0 may be 0, the value of bS1 may be 1, and the value of bS2 may be 2, so the condition of bS> bS0 may be bS> 0. have.
- deblocking filtering may be applied for each deblocking applied unit block.
- the chroma sample Deblocking filtering (blocking for horizontal edges and deblocking filtering for vertical edges) for the block edges of the above may be applied when the value of bS is greater than bS1.
- the value of bS0 may be 0, the value of bS1 may be 1, and the value of bS2 may be 2, so the condition that the value of bS is greater than bS1 may be The value may be greater than one.
- examples of a method of applying deblocking filtering to a luma sample and examples of a method of applying deblocking filtering to a chroma sample may be applied together.
- deblocking filtering For example, based on the bS value at the target boundary, it may be determined whether deblocking filtering is applied to the luma component, and whether to apply deblocking filtering to the chroma component. In examples using three bS values (bS0, bS1, bS2), it may be determined whether to apply deblocking filtering on the luma component when the bS value at the block boundary is greater than zero. In addition, when the bS value at the block boundary is greater than 1, deblocking filtering may be applied to the chroma component. When the bS value at the block boundary is 0, deblocking filtering is not applied to the luma component or the chroma component.
- the bS value when the bS value is greater than 0 at the block boundary, it may be determined whether to apply strong filtering or weak filtering to the luma component. If the conditions for applying strong filtering and the conditions for applying weak filtering are not satisfied, filtering may not be applied. In this case, when the bS value is greater than 1 at the block boundary, deblocking filtering may be applied to the block boundary for the chroma component.
- deblocking filtering is not applied to the chroma component and deblocking filtering may be applied to the luma component.
- OBMC overlapped block motion compensation
- the above-described bS determination process needs to be modified to suit the OBMC. For example, if motion information between blocks is different, block artifacts may be severe, and one of the criteria for determining values 0 and 1 of bS may be similarity of motion information. However, when using the OBMC technique, block artifacts are reduced at the boundary of the region performing the motion compensation. As a result, unnecessary deblocking filtering can be reduced, but the bS decision process (bS decision tree) needs to be modified to reflect this.
- 15 is a flowchart schematically illustrating a method of determining bS as an example of a bS decision tree applied when OMBC is applied.
- block P and / or block Q are intra coded (S1500).
- the coding block includes a CU and an LCU.
- block P and block Q are not intra coded at step S1500, it is determined whether block P and block Q are in a rectangular or asymmetric partition within a single coding block (eg, CU) (S1540).
- step S1540 if the block P and the block Q are not in a rectangular or asymmetric partition in a single coding block (eg, CU), it is determined whether the block P and / or the block Q include a coefficient (a nonzero transform coefficient) ( S1550).
- the transform coefficient may be a transform coefficient before inverse quantization is applied or a transform coefficient after inverse quantization is applied.
- bS is set to bS0
- step S1540 the block P and the block Q are not in a rectangular or asymmetric partition in a single coding block (e.g., CU), or in step S1570, the block P and the block Q have different reference pictures or movements. This includes the case without a vector.
- t C offset is set to a specific value (for example, 2) for the two largest bS values, and t C offset is set to 0 for other bS values.
- block P and block Q are in the same coding block (e.g., CU), while being in a rectangular partition (e.g., prediction block, PU, etc.) or an asymmetric partition (e.g., predictive block, PU, etc.), the value of bS for the boundary between block P and block Q can be determined as 0.
- a rectangular partition e.g., prediction block, PU, etc.
- an asymmetric partition e.g., predictive block, PU, etc.
- block P and block Q are in the same coding block (e.g., CU) and are in a rectangular partition (e.g., prediction block, PU, etc.) or in an asymmetric partition (e.g., predictive block, PU, etc.), If the difference between the motion information and the motion information of the block Q is large, the bS value for the boundary between the block P and the block Q is set to 1; if the difference between the motion information of the block P and the motion information of the block Q is small, The bS for the boundary between the blocks Q may be determined to be zero.
- FIG. 16 is a flowchart schematically illustrating a method of determining bS as another example of a bS decision tree applied when OMBC is applied.
- the coding block includes a CU and an LCU.
- step S1600 when the block P and the block Q are not intra coded, it is determined whether the block P and the block Q are in a rectangular or asymmetric partition in a single coding block (eg, CU) (S1640).
- a single coding block eg, CU
- the transform coefficient may be a transform coefficient before inverse quantization is applied or a transform coefficient after inverse quantization is applied.
- step S1640 if block P and block Q are in a rectangular or asymmetric partition in a single coding block (e.g., CU), or in step S1650, block P and / or block Q include coefficients (non-zero transform coefficients). If not, it is determined whether the block P and the block Q have different reference pictures or motion vectors (S1670).
- bS the value of bS.
- the target boundary is the boundary of the coding block (eg, CU)
- bS is determined to be 4. If bS is determined to be 3 on the other boundary, the value of bS is 3 or 4 for all I slices.
- 17 is a diagram schematically illustrating an example of a method of determining bS and applying deblocking filtering.
- bS is determined to apply deblocking filtering (S1710), block-based filtering on / off is determined according to the determined bS (S1720), and a strong filter is applied to a predetermined bS. It is determined whether to apply a weak filter (S1730), and performs a filtering operation (S1740).
- the method of applying the deblocking filter may be the same as or similar to the method described above with reference to FIG. 3.
- the bS value may be determined by distinguishing whether the target boundary is the boundary of the coding block. .
- FIG. 18 is a diagram schematically illustrating another example of a method of determining bS to apply deblocking filtering.
- bS is not separately determined when block P and / or block Q is intra coded (in the case of an I slice).
- block P and / or block Q are intra coded (I slice) in order to apply deblocking filtering (S1810).
- bS is determined as one value (for example, 4), unlike the example of FIG. 17 (S1830).
- the block-based filtering on / off is determined according to the determined bS (S1840), and whether to apply a strong filter or a weak filter to a predetermined bS is determined (S1450).
- a filtering operation is performed (S1860).
- another method of modifying and applying the method of deblocking filtering described above may be considered to perform deblocking filtering by modifying the method of using the representative bS described in the example of FIG. 6.
- 19 is a flowchart schematically illustrating an example of a method of determining a representative bS.
- step S1910 If bS1 is greater than bS2 in step S1910, the representative bS is determined as bS1 (S1920). On the contrary, if bS2 is greater than bS1 in step S1910, the representative bS is determined as bS2 (S1930).
- bS1 and bS2 may be bSs for two vertical edges in a unit block of deblocking filtering, or bSs for two horizontal edges.
- the method of FIG. 15 is performed in the deblocking filtering process for the vertical edge and used to determine the representative bS for the vertical edge, and then used in the deblocking filtering process for the horizontal edge to determine the representative bS for the horizontal edge. Can be.
- the filtering unit may perform deblocking filtering using the determined representative bS.
- FIG. 19 illustrates a method of using bS having a large value as the representative bS as in the example of FIG. 6.
- the method of determining the representative bS may be different to reduce excessive deblocking filtering and reduce the amount of filtering.
- 20 is a flowchart schematically illustrating another example of a method of determining a representative bS.
- step S2010 If bS1 is less than bS2 in step S2010, the representative bS is determined as bS1 (S2020). On the contrary, if bS2 is smaller than bS1 in step S2010, the representative bS is determined as bS2 (S2030).
- bS1 and bS2 may be bSs for two vertical edges in a unit block of deblocking filtering, or bSs for two horizontal edges.
- the method of FIG. 20 is also performed in the deblocking filtering process for the vertical edge and used to determine the representative bS for the vertical edge, and then used in the deblocking filtering process for the horizontal edge to determine the representative bS for the horizontal edge. Can be.
- the filtering unit may perform deblocking filtering using the determined representative bS.
- FIG. 21 is a flowchart schematically illustrating another method of simplifying the bS decision tree (bS decision method).
- a value of bS for a boundary between block P and block Q is determined as 2 (S2120).
- block P and block Q contain nonzero coefficients (transform coefficients) or block P and block Q have different reference pictures or block P and block Q It is determined whether there is a different motion vector (S2130).
- step S2130 If block P and block Q contain nonzero coefficients (transform coefficients) or P and Q have different reference pictures or block P and Q have different motion vectors in step S2130, between block P and block Q The value of bS for the boundary of is set to 1 (S2140).
- the value of bS is set to 0 (S2140).
- the block P and the block Q are predicted in the inter prediction mode. If the motion information is similar, the bS value may be determined as 0. In other cases, that is, when the motion information is not similar or when the block P and / or block Q are coded in the intra prediction mode, bS may be determined to be 1 or 2.
- the deblocking filtering is not applied even if bS is determined to be 0 because the motion information of the blocks P and Q is similar. You may need it. This is because if the non-zero transform coefficient is present and motion information is similar and the application of the deblocking filtering is excluded, subjective loss of the user and objective loss of data may occur.
- the motion information is similar when the reference pictures of two blocks P and Q having the edges are the same and the difference between the motion vector components of the blocks P and Q are smaller than four.
- bS is not zero. If that is, or the difference between the x-component of the MV P MV P0 and MV Q of the x component MV Q0 at least 4, at least the difference between the MV P y component MV P1 and MV Q a y component MV Q1 4, bS is It is set to a nonzero value, for example 1.
- an arbitrary threshold may be set and then the difference between the components of the motion vector may be compared with the threshold. For example, the difference between the x-component of the MV P MV P0 and MV Q of the x component MV Q0 or the threshold value Th or more 0, the difference between the y-component of the MV P MV P1 and MV Q a y component MV Q1 threshold Th If it is 1 or more, bS may be set to 1 (2 when block P and / or block Q is coded in the intra prediction mode). At this time, Th 0 and Th 1 may be the same.
- the threshold value is small, the case where the value of bS becomes 0 is reduced, so that the threshold value Th 0 / Th 1 is set to a value smaller than 4 (2 or 3), thereby reducing the case where the value of bS becomes 0. Can be.
- Equation 7 shows an example of a method for determining whether to set the bS value to 0 or 1 according to the above method.
- Equation 3 (1) calculates the difference between the x component and the y component for the motion vector of the block P and the motion vector of the block Q, and (2) determines whether the difference of each component is greater than the threshold value. It is.
- t C _ offset may be removed.
- the bS value is a predetermined value (for example, Greater than 2, or 1)
- the predetermined value eg, 2 or 1
- a corresponding relationship between the quantization parameter Q value and t C may be specified through a table.
- Table 3 shows an example of a correspondence relationship between the deblocking parameters Q, t C and ⁇ .
- Table 3 refers to Table 8-13 of WD3: Working Draft 3 of High-Efficiency Video Coding (JCTVC-E603_d2).
- the relationship between the deblocking parameters may be represented as in Table 4 below.
- Table 4 shows the relationship between the deblocking parameters (Q, tC, ⁇ ), and refers to Table 8-10 of High Efficiency Video Coding (HEVC) text specification draft 9 (JCTVC-K1003_v9).
- HEVC High Efficiency Video Coding
- t C and ⁇ may be criteria for determining whether to apply strong filtering, and t C may define a range of sample values to which deblocking filtering is applied, as in Equation 6.
- abs (p 3 -p 0 ) + abs (q 0 -q with the additional consideration of samples other than p 0 , p 1 , p 2 and q 0 , q 1 , q 2 , such as p 3 and q 3 3 ) can be judged to be smaller than ( ⁇ >> 3).
- abs (p 0 -q 0 ) is smaller than (5 * t C +1) >> 1.
- the determination may be performed by taking a plurality of columns or rows in the block. For example, a plurality of rows may be selected for vertical edges to determine (1) to (3) for each row, and a plurality of columns for horizontal edges may be selected to determine (1) to (3) for each column. ) Can be judged.
- the quantization parameter Q Clip3 (0, 55, qP L +2) can be set, and t C corresponding to the quantization parameters Q and ⁇ values.
- the values can be obtained from Table 3.
- Q qP L may be set, and t C values corresponding to quantization parameters Q and ⁇ values may be obtained from Table 3.
- the quantization parameter Q value determined after determining the quantization Q value as one value regardless of the bS value is determined.
- the t C value corresponding to the ⁇ value can be obtained from Table 3.
- the quantization parameter Q Clip3 (0, 55, qP L + 2 * bS -2) is determined and the determined quantization parameter is determined.
- the t C values corresponding to the Q and ⁇ values can be obtained from Table 3.
- a more accurate t C value may be obtained by considering the value of t C _offset in addition to the bS value, the quantization parameter of the block P and the block Q, and the bS value.
- the decoder may determine the quantization parameter Q value by reflecting t C _offset information transmitted in the slice header.
- the t C _offset information transmitted in the slice header is a value transmitted for applying an optimized deblocking filter for each slice, and may be represented as slice_tc_offset_div2 as t C _offset information for a slice including q samples adjacent to an edge.
- slice_tc_offset_div2 specifies the value of the default deblocking parameter offset for t C.
- the quantization parameter Q Clip3 (0, 55, qP L + 2 * bS-2 + slice_tc_offset_div2 ⁇ 1) is set, and the variable t C may be determined based on the set quantization parameter Q value and ⁇ value.
- t C may be determined using a table that defines a relationship between quantization parameters Q, ⁇ , and t C , as shown in Table 3, based on the quantization parameter Q and ⁇ value.
- the Q value may be determined as described above based on the t C _offset information (slice_tc_offset_div2) transmitted in the slice header, and the t C value may also be determined based on the ⁇ value and the Q value transmitted from the encoding apparatus.
- the t C value is a value for quantifying the blocking artifact according to the degree of quantization and may be used as a criterion for determining whether to apply strong filtering or weak filtering when deblocking filtering is applied.
- the t C value may be used as a criterion for determining the range (clipping range) of the filtered pixel value, i.
- the deblocking filtered sample value may be determined based on a filtering offset determined within an integer multiple of t C based on the offset reference value.
- the offset reference value may be 0 or may be a sample value before deblocking filtering of the sample to be deblocked filtered.
- the deblocking filtered sample value may be determined within a filtering offset range that is determined within an integer multiple of t C about an offset reference value. That is, if the sample value before the deblocking filtering is used as the offset reference value, the value of the deblocking filtered luma sample within N (N is an integer) times the value of t C based on the luma sample value before the deblocking filtering is performed. Can be determined.
- the luma sample value before deblocking filtering is S
- the deblocking filtered luma sample value S ' may have a relationship of S-t C ⁇ S' ⁇ S + t C.
- N may have a relationship of S ⁇ 2t C ⁇ S ′ ⁇ S + 2t C.
- the deblocking filtered luma sample value may be determined as a value obtained by adding an offset determined within an integer multiple of t C values based on the offset reference value.
- the offset applied to the weak filtering may be determined separately from the offset range applied to the strong filtering. That is, if the offset reference value is set to 0, an offset determined within a range of N (N is an integer) times the value of t C based on 0 and the original luma sample may be determined as the filtered sample value.
- the offset may be determined based on sample values of the sample to be filtered and the surrounding samples.
- the offset ⁇ Y may be determined in the range of ⁇ t C ⁇ ⁇ Y ⁇ t C , and the offset reference value If 0 and the value of N is 2, the offset ⁇ Y may be determined in the range of ⁇ 2t C ⁇ ⁇ Y ⁇ 2t C.
- the deblocking filtered luma sample value is obtained by adding an offset determined within an integer multiple of t C value based on an offset reference value (for example, 0) as shown in Equation 6. Can be determined by a value.
- the offset applied may be determined separately from the offset range for the luma sample applied to the strong filtering and the offset for the luma sample applied to the weak filtering.
- an offset determined within a range of N (N is an integer) times the value of t C based on 0 and the original chroma sample value may be determined as the filtered chroma sample value.
- the offset may be determined based on sample values of the chroma sample to be filtered and the surrounding chroma samples.
- the reference offset value is 0 and if the value of N is 1, the offset ⁇ C may be determined in a range of -t C ⁇ ⁇ C ⁇ t C , offset reference If the value is 0 and the value of N 2, ⁇ offset C may be determined in the range of -2t C ⁇ ⁇ C ⁇ 2t C .
- 22 is a flowchart schematically illustrating a method of encoding an image according to the present invention.
- the encoding apparatus splits an input image and performs prediction on a current block (S2210). Prediction on the current block may be performed by the prediction unit of the encoding apparatus.
- the prediction unit may perform intra prediction on the current block or may perform inter prediction. Whether to perform intra prediction or inter prediction may be determined in consideration of Rate Distortion Optimization (RDO).
- RDO Rate Distortion Optimization
- the prediction unit may generate a prediction signal and generate a residual signal that is a difference between the original signal and the prediction signal.
- the encoding apparatus may convert and quantize the residual signal (S2220). Transformation of the residual signal may be performed in the transform unit, and quantization of the transformed signal (eg, transform coefficient) may be performed in the quantization unit.
- Transformation of the residual signal may be performed in the transform unit, and quantization of the transformed signal (eg, transform coefficient) may be performed in the quantization unit.
- the transformed and quantized signal may be transmitted through an entropy encoding process.
- the encoding apparatus restores the current block by inverse quantization and inverse transformation of the transformed and quantized signal (S2230).
- the inverse quantized and inversely converted signal is added to the residual signal to recover the original signal.
- the encoding apparatus may apply deblocking filtering to the recovered signal (S2240).
- the recovered signal may be recovered to a signal closer to the original by deblocking filtering.
- the deblocking filtering may be performed in the filter unit, and the filter unit may apply SAO (Sample Adaptive Offset) after applying the deblocking filtering.
- the signal to which deblocking filtering is applied is stored in a memory such as a decoded picture buffer (DPB), and may be referred to for prediction of another block or another picture.
- DPB decoded picture buffer
- the generation and transmission of the residual signal by the prediction has been described. However, when the skip mode is applied, the residual signal is not generated / transmitted.
- 23 is a flowchart schematically illustrating a method of decoding an image according to the present invention.
- the decoding apparatus entropy decodes a received bitstream and performs prediction for a current block (S2310). Prediction on the current block may be performed by a prediction unit in the decoding apparatus.
- the prediction unit may perform inter prediction or intra prediction on the current block based on the information signaled from the encoding apparatus.
- the prediction unit generates a prediction signal (prediction block) for the current block by prediction.
- the decoding apparatus reconstructs the current block based on the prediction for the current block (S2320).
- the decoding apparatus generates a residual signal (residual block) from the bitstream received from the encoding apparatus through inverse quantization / inverse transformation, and adds the prediction signal (prediction block) and the residual signal (prediction block) to the reconstruction signal (restored block). ) Can be created.
- the prediction signal is not transmitted, and the prediction signal may be used as a reconstruction signal.
- the decoding apparatus applies deblocking filtering to the reconstruction signal (restoration block) (S2330).
- Deblocking filtering may be performed in a filter unit in the decoding apparatus.
- the filter unit applies the deblocking filtering to the reconstruction block to modify the reconstruction block closer to the reconstruction block.
- the filter unit may apply SAO (Sample Adaptive Offset) to the reconstruction block based on the information received from the encoding apparatus after applying the deblocking filtering.
- SAO Sample Adaptive Offset
- the signal reconstructed through the filter unit may be stored in a memory such as a decoded picture buffer (DPB) to be referred to prediction of another block or another picture, or may be output as a reconstructed picture.
- a decoded picture buffer DPB
- the deblocking filtering may be performed in the encoding apparatus, the decoding apparatus, or may be performed in the filtering unit in the encoding apparatus and the decoding apparatus.
- the filtering unit performs the following operation related to the deblocking filtering.
- the filtering unit induces a boundary for determining bS (S2410).
- the boundary for determining the bS may be a boundary of a unit block to which deblocking filtering is applied.
- the boundary for determining bS may be a boundary of a unit block for determining bS.
- the boundary for determining bS may be a boundary of a unit block to which deblocking filtering is applied and a boundary of a unit block for determining bS.
- the filtering unit sets the bS for each bS setting unit (S2420).
- the bS may be set for each edge corresponding to the boundary of the bS determination unit block while determining the bS.
- the bS may be set for an edge corresponding to the boundary for the bS and corresponding to the boundary of the unit block to which the deblocking filtering is applied.
- the bS may be set for the boundary for determining the bS.
- the method of setting the bS may induce a bS for the boundary with any one of the five bS values, and induce the bS for the boundary with any one of the three bS values. You may.
- methods for inducing bS by reducing complexity may be applied. Specific methods for inducing / determining bS are as described above.
- the filtering unit performs deblocking filtering on the block boundary based on the bS (S2430).
- the filtering unit deblocking filtering on a block boundary based on the derived bS value.
- deblocking filtering is not applied to a block boundary having a bS value of bS0.
- a luma component luma sample
- a chroma component chroma sample
- deblocking filtering may be applied.
- a value of samples to which the deblocking filter is applied may be determined within a range determined by the range parameter t C.
- the range parameter t C may be determined based on the quantization parameter Q as described above.
- the quantization parameter Q may be determined based on the bS value.
- bS is determined with respect to an edge that is a boundary of a bS determination unit block and a boundary of a deblocking filtering applied unit block.
- BS may be determined using a method or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
La présente invention concerne un procédé de filtrage de déblocage, un procédé pour induire une puissance limite (ci-après, bs) pour celui-ci, et un procédé et un appareil de codage/décodage utilisant celui-ci. Le procédé pour induire la bs selon la présente invention comprend les étapes consistant à : induire la limite du bloc de filtrage de déblocage en tant que bloc unitaire pour appliquer le filtrage de déblocage; et régler la bs dans chaque bloc de bs en tant que bloc unitaire pour régler la bs, l'étape consistant à régler la bs comprenant une étape consistant à régler une valeur de bs par rapport à une limite cible correspondant à la limite du bloc unitaire de filtrage de déblocage en tant que limite du bloc unitaire pour régler la bs, et la valeur de bs réglée peut être la référence pour déterminer s'il faut ou non appliquer le filtrage de déblocage pour un composant de luminance et s'il faut ou non appliquer le filtrage de déblocage pour un composant de chrominance.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161563820P | 2011-11-27 | 2011-11-27 | |
US61/563,820 | 2011-11-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013077714A1 true WO2013077714A1 (fr) | 2013-05-30 |
Family
ID=48470088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2012/010120 WO2013077714A1 (fr) | 2011-11-27 | 2012-11-27 | Procédé et appareil de codage/décodage d'informations d'image |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2013077714A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3598760A1 (fr) * | 2015-06-11 | 2020-01-22 | Intellectual Discovery Co., Ltd. | Procédé d'encodage et de décodage d'image utilisant un filtre de dégroupage adaptatif et appareil associé |
CN111903124A (zh) * | 2018-03-29 | 2020-11-06 | 索尼公司 | 图像处理装置和图像处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050047871A (ko) * | 2003-11-18 | 2005-05-23 | 삼성전자주식회사 | 동영상 디코딩에서 고속 필터링 방법과 이를 위한 장치 |
KR20080005210A (ko) * | 2005-03-18 | 2008-01-10 | 샤프 래보라토리스 오브 아메리카 인크. | 공간 계위 강화 계층 내의 인접 블록들 간의 블록 경계를특징화하는 방법 및 그 시스템 |
KR20090045035A (ko) * | 2007-11-01 | 2009-05-07 | 경희대학교 산학협력단 | 디블록킹 필터링을 포함하는 코덱 사이의 트랜스코딩 방법 및 장치 |
KR20100014581A (ko) * | 2007-03-27 | 2010-02-10 | 프리스케일 세미컨덕터, 인크. | 메모리 액세스 및 계산적 복잡성을 감소시키기 위한 간략화된 디블록 필터링 |
KR20110114498A (ko) * | 2010-04-13 | 2011-10-19 | 삼성전자주식회사 | 트리 구조 부호화 단위에 기반한 디블록킹 필터링을 수행하는 비디오 부호화 방법과 그 장치 및 복호화 방법과 그 장치 |
-
2012
- 2012-11-27 WO PCT/KR2012/010120 patent/WO2013077714A1/fr active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050047871A (ko) * | 2003-11-18 | 2005-05-23 | 삼성전자주식회사 | 동영상 디코딩에서 고속 필터링 방법과 이를 위한 장치 |
KR20080005210A (ko) * | 2005-03-18 | 2008-01-10 | 샤프 래보라토리스 오브 아메리카 인크. | 공간 계위 강화 계층 내의 인접 블록들 간의 블록 경계를특징화하는 방법 및 그 시스템 |
KR20100014581A (ko) * | 2007-03-27 | 2010-02-10 | 프리스케일 세미컨덕터, 인크. | 메모리 액세스 및 계산적 복잡성을 감소시키기 위한 간략화된 디블록 필터링 |
KR20090045035A (ko) * | 2007-11-01 | 2009-05-07 | 경희대학교 산학협력단 | 디블록킹 필터링을 포함하는 코덱 사이의 트랜스코딩 방법 및 장치 |
KR20110114498A (ko) * | 2010-04-13 | 2011-10-19 | 삼성전자주식회사 | 트리 구조 부호화 단위에 기반한 디블록킹 필터링을 수행하는 비디오 부호화 방법과 그 장치 및 복호화 방법과 그 장치 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3598760A1 (fr) * | 2015-06-11 | 2020-01-22 | Intellectual Discovery Co., Ltd. | Procédé d'encodage et de décodage d'image utilisant un filtre de dégroupage adaptatif et appareil associé |
CN113473120A (zh) * | 2015-06-11 | 2021-10-01 | 英迪股份有限公司 | 使用自适应去块滤波编码和解码图像的方法及其装置 |
US11849152B2 (en) | 2015-06-11 | 2023-12-19 | Dolby Laboratories Licensing Corporation | Method for encoding and decoding image using adaptive deblocking filtering, and apparatus therefor |
CN111903124A (zh) * | 2018-03-29 | 2020-11-06 | 索尼公司 | 图像处理装置和图像处理方法 |
CN111903124B (zh) * | 2018-03-29 | 2023-08-01 | 索尼公司 | 图像处理装置和图像处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6950055B2 (ja) | 映像情報符号化/復号方法及び装置 | |
KR102047491B1 (ko) | 영상 정보 인코딩/디코딩 방법 및 장치 | |
WO2013077714A1 (fr) | Procédé et appareil de codage/décodage d'informations d'image |
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: 12851872 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12851872 Country of ref document: EP Kind code of ref document: A1 |