Video encoding / decoding method and device therefor
The adaptive deblocking filtering in QTBT structures improves image quality and enables efficient parallel processing for next-generation video content, overcoming the limitations of existing methods in handling high-resolution and high-frame-rate video.
Patent Information
- Application Number
- JP2024063240
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2016-08-21
- Filing Date
- 2024-04-10
- Publication Date
- 2025-09-29
- Estimated Expiration
- 2037-08-21
AI Technical Summary
Existing video encoding technologies face challenges in efficiently processing next-generation video content with high spatial resolution, high frame rate, and high dimensionality of scene representation, requiring significant increases in memory storage, memory access rate, and processing power, and existing deblocking filters are not effectively adaptable for QTBT structures, leading to issues with parallelization and ineffective filtering of chroma components.
A method and apparatus for deblocking filtering that adaptively applies filtering based on the width or height of blocks in a Quad-Tree Binary-Tree (QTBT) structure, determining edge types and applying deblocking filtering accordingly, allowing for efficient parallelization and improved image quality.
The proposed method enhances subjective and objective image quality and facilitates speed-up of deblocking filtering through parallelization, effectively addressing the limitations of existing methods in QTBT structures.
Smart Images

Figure 0007745688000010 
Figure 0007745688000011 
Figure 0007745688000012
Abstract
Description
[Technical Field]
[0001] The present invention relates to a method for processing still or moving images, and more particularly to a method for performing deblocking filtering and an apparatus for supporting the same. [Background technology]
[0002] Compression coding refers to a series of signal processing techniques for transmitting digitized information over communication lines or storing it in a form suitable for storage media. Media such as pictures, images, and audio can be subject to compression coding, and the technology that compresses and codes images in particular is called video image compression.
[0003] Next-generation video content will be characterized by high spatial resolution, high frame rate, and high dimensionality of scene representation, and processing such content will require enormous increases in memory storage, memory access rate, and processing power.
[0004] Therefore, there is a need to design coding tools to process next generation video content more efficiently. Summary of the Invention [Problem to be solved by the invention]
[0005] SUMMARY OF THE INVENTION The object of the present invention is to propose a method for effectively implementing a post-filter (or in-loop filter) in a Quad-Tree Binary-Tree (QTBT) structure and an apparatus for supporting the same.
[0006] Another object of the present invention is to provide a method and an apparatus for adaptively applying deblocking filtering according to conditions not only for brightness (luminance) components but also for color difference components.
[0007] The technical problems to be solved by the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by a person having ordinary skill in the art to which the present invention pertains from the description below. [Means for solving the problem]
[0008] In one aspect of the present invention, a method for filtering an image by a decoding device includes the steps of deriving boundaries of blocks divided into a quad-tree and a binary-tree structure, determining edges of the block boundaries to which deblocking filtering is applied, determining a type of deblocking filtering to be applied to the edges, and performing deblocking filtering on samples of a reconstructed picture according to the type of deblocking filtering, wherein the edges or the type of deblocking filtering can be determined taking into account the width or height of the blocks.
[0009] Another aspect of the present invention is a decoding device for filtering an image, which includes a block boundary derivation unit that derives boundaries of blocks divided into a quad-tree and a binary-tree structure, an edge determination unit that determines edges among the block boundaries to which deblocking filtering is applied, a filtering type determination unit that determines a type of deblocking filtering to be applied to the edges, and a filtering unit that performs deblocking filtering on samples of a reconstructed picture according to the type of deblocking filtering, and the edges or the type of deblocking filtering can be determined taking into account the width or height of the blocks.
[0010] Preferably, when the edge type is a vertical edge, if the width of the block is 4 or less, the edge can be determined based on pixels to which deblocking filtering has already been applied.
[0011] Preferably, when the edge type is a horizontal edge, if the height of the block is 4 or less, the edge can be determined based on pixels to which deblocking filtering has already been applied.
[0012] Preferably, when the edge type is a vertical edge, if the width of the block is 4 or less, the type of deblocking filtering can be determined based on pixels to which deblocking filtering has already been applied.
[0013] Preferably, when the edge type is a horizontal edge, if the height of the block is 4 or less, the type of deblocking filtering can be determined based on pixels to which deblocking filtering has already been applied.
[0014] Preferably, if the edge type is a vertical edge, the edge can be determined only within the boundary of a block whose width is 8 or more.
[0015] Preferably, if the edge type is a horizontal edge, the edge can only be determined within the boundaries of a block whose height is 8 or more.
[0016] Preferably, when the edge type is a vertical edge, if the block width is 4 or less, the deblocking filtering type can be determined to be weak filtering.
[0017] Preferably, when the edge type is a horizontal edge, if the block height is 4 or less, the deblocking filtering type can be determined to be weak filtering.
[0018] Preferably, when the edge type is a vertical edge, if the block width is less than or equal to 4, the type of deblocking filtering is determined to be strong filtering, and the strong filtering can be applied only to two pixel columns adjacent to the left and right sides of the edge, respectively.
[0019] Preferably, when the edge type is a horizontal edge, if the block height is 4 or less, the deblocking filtering type is determined to be strong filtering, and the strong filtering can be applied only to two pixel columns adjacent to the upper and lower sides of the edge, respectively.
[0020] Preferably, the edges can be determined on a pixel-by-pixel basis before deblocking filtering is applied.
[0021] Preferably, before deblocking filtering is applied, the type of deblocking filtering can be determined on a pixel basis.
[0022] Preferably, if the slice to which the block belongs is an intra slice (I-slice), the type of edge and deblocking filtering can be determined regardless of whether the block is a chroma block or not. [Effects of the Invention]
[0023] According to an embodiment of the present invention, the subjective and objective image quality of a still or moving image can be improved by efficiently applying a deblocking filter using a QTBT structure.
[0024] Furthermore, according to embodiments of the present invention, speed-up of deblocking filtering can be achieved through parallelization.
[0025] The effects obtained by the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art to which the present invention pertains from the following description. [Brief explanation of the drawings]
[0026] To facilitate understanding of the present invention, the accompanying drawings, which are included as part of the detailed description, provide embodiments of the present invention and, together with the detailed description, explain the technical features of the present invention. [Figure 1] FIG. 1 is a schematic block diagram of an encoder for encoding a video signal, as an embodiment to which the present invention is applied. [Figure 2] FIG. 2 is a diagram showing a schematic block diagram of a decoder for decoding a video signal as an embodiment to which the present invention is applied. [Figure 3]FIG. 3 is a diagram illustrating a division structure of a coding unit as an embodiment to which the present invention is applied. [Figure 4] FIG. 4 is a diagram illustrating a quadtree binary tree among the division structures of coding units as an embodiment to which the present invention is applied. [Figure 5] FIG. 5 shows a schematic internal block diagram of an in-loop filtering unit as an embodiment to which the present invention is applied. [Figure 6] FIG. 6 is a diagram illustrating a method for performing filtering by the HEVC deblocking filter. [Figure 7] FIG. 7 is a diagram illustrating an example of a filtering execution boundary of the deblocking filtering of HEVC. [Figure 8] FIG. 8 is a diagram illustrating a method for determining whether to perform HEVC filtering. [Figure 9] FIG. 9 is a diagram illustrating pixel regions to which HEVC deblocking filtering is applied. [Figure 10] FIG. 10 is a diagram illustrating a QTBT division structure as an embodiment to which the present invention is applied. [Figure 11] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 12] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 13] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 14] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 15]11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 16] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 17] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 18] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 19] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 20] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 21] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure. [Figure 22] FIG. 22 illustrates a method for determining the type of deblocking filter according to one embodiment of the present invention. [Figure 23] FIG. 23 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention. [Figure 24] FIG. 24 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention. [Figure 25] FIG. 25 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention. [Figure 26] FIG. 26 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention. [Figure 27]FIG. 27 is a diagram illustrating a strong filtering method according to one embodiment of the present invention. [Figure 28] FIG. 28 is a diagram illustrating a strong filtering method according to one embodiment of the present invention. [Figure 29] FIG. 29 is a diagram illustrating the results of filtering performed on a block whose horizontal length is 4 or less during vertical edge filtering. [Figure 30] FIG. 30 is a diagram illustrating whether to perform filtering and how to select a filter according to an embodiment of the present invention. [Figure 31] FIG. 31 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention. [Figure 32] FIG. 32 is a diagram for explaining a problem that occurs when HEVC deblocking filtering is similarly applied to a QTBT block partition structure. [Figure 33] FIG. 33 is a diagram illustrating a deblocking filtering method according to one embodiment of the present invention. [Figure 34] FIG. 34 is a diagram illustrating a deblocking filtering processing unit according to an embodiment of the present invention. [Figure 35] FIG. 35 is a diagram illustrating a deblocking filtering processing unit according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0027] Preferred embodiments of the present invention will now be described in detail with reference to the accompanying drawings. The detailed description disclosed below, together with the accompanying drawings, is intended to describe exemplary embodiments of the present invention and is not intended to represent the only embodiments in which the present invention may be practiced. The following detailed description includes specific details to provide a thorough understanding of the present invention. However, those skilled in the art will recognize that the present invention may be practiced without such specific details.
[0028] In some cases, in order to avoid obscuring the concept of the present invention, well-known structures and devices may be omitted or illustrated in block diagram form, focusing on the core functions of each structure and device.
[0029] In addition, the terms used in the present invention are generally selected from currently widely used terms as much as possible, but in specific cases, terms arbitrarily selected by the applicant will be used for explanation. In such cases, the meanings will be clearly stated in the detailed description of the relevant part, so it is made clear that the terms used in the description of the present invention should not be interpreted simply by their names, but should also be interpreted by understanding the meanings of the relevant terms.
[0030] The specific terms used in the following description are provided to facilitate understanding of the present invention, and the use of such specific terms may be changed to other forms without departing from the technical spirit of the present invention. For example, in the case of a signal, data, sample, picture, frame, block, etc., they may be appropriately substituted and interpreted in each coding process.
[0031] Hereinafter, in this specification, "block" or "unit" refers to a unit in which encoding / decoding processes such as prediction, transformation and / or quantization are performed, and can be composed of a multidimensional array of samples (or pixels).
[0032] The term "block" or "unit" can refer to a multidimensional array of samples for a luma component, a multidimensional array of samples for a chroma component, or a general term that includes both a multidimensional array of samples for a luma component and a multidimensional array of samples for a chroma component.
[0033] For example, "block" or "unit" can be interpreted to include a coding block (CB) that means an array of samples to be encoded / decoded, a coding tree block (CTB) that is composed of multiple coding blocks, a prediction block (PB) (or prediction unit (PU)) that means an array of samples to which the same prediction is applied, and a transform block (TB) (or transform unit (TU)) that means an array of samples to which the same transform is applied.
[0034] Furthermore, unless otherwise specified in this specification, the terms "block" and "unit" may be interpreted to include a syntax structure used in the process of encoding / decoding an arrangement of samples for luma and / or chroma components. Here, a syntax structure refers to zero or more syntax elements present in a bitstream in a specific order, and a syntax element refers to an element of data represented in the bitstream.
[0035] For example, "block" or "unit" can be interpreted to mean including a coding unit (CU) including a coding block CB and a syntax structure used for encoding the coding block CB, a coding tree unit (CU) consisting of multiple coding units, a prediction unit (PU) including a predictive block PB and a syntax structure used for predicting the predictive block PB, and a transform unit (TU) including a transform block TB and a syntax structure used for transforming the transform block TB.
[0036] Furthermore, in this specification, "block" or "unit" is not necessarily limited to an array of square or rectangular samples (or pixels), but may also refer to an array of polygonal samples (or pixels) having three or more vertices, in which case it may be called a polygon block or polygon unit.
[0037] FIG. 1 is a schematic block diagram of an encoder for encoding a video signal, as an embodiment to which the present invention is applied.
[0038] Referring to FIG. 1, the encoder 100 may include an image division unit 110, a transform unit 120, a quantization unit 130, an inverse quantization unit 140, an inverse transform unit 150, a filtering unit 160, a decoded picture buffer (DPB) 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
[0039] The image division unit 110 may divide an input image (or a picture or a frame) input to the encoder 100 into one or more processing units. For example, the processing units may be coding tree units (CTUs), coding units (CUs), prediction units (PUs), or transform units (TUs).
[0040] The encoder 100 can subtract a prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 from the input video signal to generate a residual signal, and the generated residual signal is transmitted to the conversion unit 120.
[0041] The transform unit 120 may generate transform coefficients by applying a transform technique to the remaining signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loeve transform (KLT), a graph-based transform (GBT), or a conditionally non-linear transform (CNT). Here, GBT refers to a transform obtained from a graph representing inter-pixel relationship information. CNT refers to a transform obtained based on a predicted signal generated using all previously reconstructed pixels. The transform process may be applied to pixel blocks having the same square size, or to non-square blocks of variable size.
[0042] The quantization unit 130 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoding unit 190, and the entropy encoding unit 190 entropy encodes the quantized transform coefficients and outputs the quantized transform coefficients as a bitstream.
[0043] The quantized signal output from the quantization unit 130 may be used to generate a predicted signal. For example, the quantized signal may be subjected to inverse quantization and inverse transformation via an inverse quantization unit 140 and an inverse transform unit 150 in a loop to reconstruct a residual signal. The reconstructed residual signal may be added to a predicted signal output from the inter prediction unit 180 or the intra prediction unit 185 to generate a reconstructed signal.
[0044] The filtering unit 160 applies filtering to the reconstructed signal and outputs the result to a playback device or transmits the result to the decoded picture buffer 170. The filtered signal transmitted to the decoded picture buffer 170 can be used as a reference picture by the inter prediction unit 180. By using the filtered picture as a reference picture in the inter prediction mode in this way, not only the image quality but also the coding efficiency can be improved.
[0045] The decoded picture buffer 170 can store the filtered pictures for use as reference pictures from the inter predictor 180.
[0046] The inter prediction unit 180 performs temporal prediction and / or spatial prediction to remove temporal redundancy and / or spatial redundancy with reference to a reconstructed picture, and can predict motion information based on correlation of motion information between a surrounding block and a current block to reduce the amount of motion information transmitted in the inter prediction mode.
[0047] The intra prediction unit 185 may predict a current block by referring to samples surrounding a block to be currently encoded. The intra prediction unit 185 may perform the following processes to perform intra prediction. First, reference samples necessary for generating a prediction signal may be prepared. Then, a prediction signal may be generated using the prepared reference samples. Then, a prediction mode is encoded. In this case, the reference samples may be prepared through reference sample padding and / or reference sample filtering. Since the reference samples have undergone prediction and reconstruction processes, quantization errors may exist in the reference samples. Therefore, to reduce such errors, a reference sample filtering process may be performed for each prediction mode used in intra prediction.
[0048] The prediction signal generated via the inter prediction unit 180 or the intra prediction unit 185 may be used to generate a reconstructed signal or may be used to generate a residual signal.
[0049] FIG. 2 shows a schematic block diagram of a decoder in which video signals are decoded as an embodiment to which the present invention is applied.
[0050] Referring to FIG. 2, the decoder 200 may include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, a filtering unit 240, a decoded picture buffer (DPB) 250, an inter prediction unit 260, and an intra prediction unit 265.
[0051] The restored video signal output via the decoder 200 can then be reproduced via a reproduction device.
[0052] The decoder 200 can receive the signal output from the encoder 100 of FIG. 1, and the received signal can be entropy decoded via an entropy decoding unit 210 .
[0053] The inverse quantization unit 220 obtains transform coefficients from the entropy decoded signal using the quantization step size information.
[0054] The inverse transform unit 230 performs an inverse transform on the transform coefficients to obtain the residual signal.
[0055] The obtained residual signal is added to the predicted signal output from the inter prediction unit 260 or the intra prediction unit 265 to generate a reconstructed signal.
[0056] The filtering unit 240 applies filtering to the reconstructed signal and outputs the reconstructed signal to a playback device or transmits the reconstructed signal to the decoded picture buffer unit 250. The filtered signal transmitted to the decoded picture buffer unit 250 can be used as a reference picture by the inter prediction unit 260.
[0057] In this specification, the embodiments described for the filtering unit 160, inter prediction unit 180 and intra prediction unit 185 of the encoder 100 can be similarly applied to the filtering unit 240, inter prediction unit 260 and intra prediction unit 265 of the decoder, respectively.
[0058] Image partitioning
[0059] FIG. 3 is a diagram illustrating a division structure of a coding unit as an embodiment to which the present invention is applied.
[0060] An encoder can divide an image (or picture) into rectangular coding tree units (CTUs) and encode each CTU sequentially according to raster scan order.
[0061] A CTU can be decomposed into a quadtree (hereinafter referred to as "QT") structure. For example, a CTU can be divided into four units with a square shape, each of which has a side length that decreases by half. The decomposition of such a QT structure can be performed recursively.
[0062] 3, the root node of a QT may be associated with a CTU, and the QT may be divided until a leaf node is reached, which may then be referred to as a coding unit (CU).
[0063] 3, the CTU corresponds to the root node and has the minimum depth value (i.e., level 0). Depending on the characteristics of the input video, the CTU may not be divided, in which case the CTU corresponds to a CU.
[0064] A CTU can be decomposed in a QT format, resulting in the generation of subnodes with a depth of level 1. A node (i.e., a leaf node) that is not further divided in a subnode with a depth of level 1 corresponds to a CU. For example, CU(a), CU(b), and CU(j), which correspond to nodes a, b, and j in FIG. 3(b), are divided once in a CTU and have a depth of level 1.
[0065] For each CU, information indicating whether the CU is split may be transmitted to a decoder. For example, the information may be defined as a split flag and may be expressed by a syntax element "split_CU_flag." The split flag may be included in all CUs except for SCUs. For example, if the split flag value is "1," the CU is split again into four CUs, and if the split flag value is "0," the CU is not split any further and the coding process for the CU may be performed.
[0066] In the embodiment of Figure 3, the division process of a CU was explained as an example, but the above-mentioned QT structure can also be applied to the division process of a transform unit (TU), which is the basic unit for performing transformation.
[0067] TUs can be hierarchically divided into QT structures from CUs to be coded. For example, a CU may correspond to the root node of a tree of transform units (TUs).
[0068] Since TUs are divided into QT structures, TUs divided from CUs can be further divided into smaller sub-TUs. For example, the size of a TU may be determined to be one of 32x32, 16x16, 8x8, and 4x4, but the present invention is not limited thereto, and for high-resolution images, the size of the TU may be larger or more diverse.
[0069] For a TU, information indicating whether the TU is split can be transmitted to the decoder. For example, the information can be defined as a split transform flag and expressed by a syntax element 'split_transform_flag'.
[0070] As described above, a CU is a basic unit of coding in which intra prediction or inter prediction is performed. To code an input image more efficiently, the CU can be divided into prediction units (PUs).
[0071] A PU is a basic unit for generating a prediction block, and prediction blocks may be generated differently for each PU even within one CU. A PU may be divided differently depending on whether the coding mode of a CU to which the PU belongs uses intra prediction mode or inter prediction mode.
[0072] FIG. 4 is a diagram illustrating a quadtree binary tree among the division structures of coding units as an embodiment to which the present invention is applied.
[0073] An encoder can divide an image (or picture) into rectangular coding tree units (CTUs) and encode each CTU sequentially according to raster scan order.
[0074] A CTU can be decomposed into a quadtree (hereinafter referred to as "QT") structure and a binary tree (hereinafter referred to as "BT"). For example, a CTU can be divided into four square units whose sides decrease in length by half, or into two rectangular units whose width or height decreases in length by half. The decomposition of such a QTBT structure can be performed recursively.
[0075] Referring to Figure 4, the root node of a QT may be associated with a CTU. The QT may be split until a QT leaf node is reached, and the QT leaf node may be split into BTs, which may be split further until a BT leaf node is reached.
[0076] 4, the CTU corresponds to the root node and has the minimum depth value (i.e., level 0). Depending on the characteristics of the input video, the CTU may not be divided, in which case the CTU corresponds to a CU.
[0077] A CTU can be decomposed in a QT format, and a QT leaf node can be split in a BT format. As a result, a subnode with a depth of level n can be generated. Then, a node (i.e., a leaf node) that is not further split into subnodes with a depth of level n corresponds to a CU.
[0078] For one CU, information indicating whether the CU is split may be transmitted to the decoder. For example, the information may be defined as a split flag and may be expressed by a syntax element "split_CU_flag." Furthermore, information indicating whether the CU is split into BTs from a QT leaf node may be transmitted to the decoder. For example, the information may be defined as a BT split flag and may be expressed by a syntax element "bt_split_flag." Furthermore, if the CU is split into BTs according to the split_bt_flag, the BT split shape may be transmitted to the decoder so that the CU is split into a rectangle with half the width or half the height. For example, the information may be defined as a BT split mode and may be expressed by a syntax element "bt_split_mode."
[0079] FIG. 5 shows a schematic internal block diagram of an in-loop filtering unit as an embodiment to which the present invention is applied.
[0080] The in-loop filtering unit may include at least one of a deblocking filtering unit 510 , an adaptive offset filtering unit 520 , and an adaptive loop filtering unit 530 .
[0081] The in-loop filtering unit applies filtering to the reconstructed picture and outputs the result to a playback device, or stores the result in a buffer and uses the result as a reference picture in an inter-prediction mode.
[0082] The deblocking filtering unit 510 performs a function of improving distortion occurring at boundaries of a reconstructed picture, for example, improving blocking artifacts occurring at boundaries of prediction units or transform units.
[0083] First, the deblocking filtering unit 510 checks whether the restored pixel values are discontinuous at a block boundary, and if blocking artifacts occur, performs deblocking filtering at the edge boundary. For example, even if the block boundary is an 8x8 block boundary, it may determine whether it is a boundary of a prediction unit or a transform unit, and calculate a boundary strength (BS) value based on the determination. Whether to perform filtering may be determined based on the boundary strength (BS), and filtering parameters may be used together.
[0084] A more detailed description of how the deblocking filter unit 510 performs filtering will be given later.
[0085] The adaptive offset filtering unit 520 may add an offset to a restored pixel to minimize an error between a restored image and an original image. Here, the restored image may refer to an image that has been deblocking filtered. In the case of an encoder, the adaptive offset filtering unit 520 may calculate an offset parameter for correcting an error between the restored image and the original image and transmit the calculated offset parameter to a decoder. In the case of a decoder, the adaptive offset filtering unit 520 may entropy-decode the transmitted offset parameter and then perform filtering on a pixel-by-pixel basis based on the calculated offset parameter.
[0086] The adaptive loop filtering unit 530 may calculate optimal coefficients that minimize an error between an original image and a restored image and perform filtering. In the case of an encoder, the adaptive loop filtering unit 530 may derive filter coefficients that minimize an error between an original image and a restored image, and transmit information on whether to apply adaptive loop filtering to each block and the filter coefficients to a decoder. In the case of a decoder, filtering may be performed based on the transmitted information on whether to apply adaptive loop filtering and the filter coefficients.
[0087] FIG. 6 is a diagram illustrating a method for performing filtering by the HEVC deblocking filter.
[0088] Referring to FIG. 6, the deblocking filter determines the boundaries for applying deblocking filtering.
[0089] However, at this time, the boundary determination only determines the position where deblocking filtering is required (i.e., the boundary), and whether to actually perform filtering is determined in the filter on / off step in step S604.
[0090] The types of boundaries for deblocking filters can be divided into three: a Coding Unit (CU) boundary, a Prediction Unit (PU) boundary, and a Transform Unit (TU) boundary. A CU boundary can correspond to a PU or TU boundary, and thus can be a target for filtering.
[0091] The deblocking filtering calculates a boundary strength (BS) (S602). That is, the deblocking filter determines a boundary strength (BS) in order to perform deblocking filtering of different strengths according to the characteristics of blocks adjacent to the boundary.
[0092] The deblocking filtering determines whether to perform filtering and determines parameters β and t_c used as thresholds for selecting filtering (S603).
[0093] The deblocking filtering performs a filter on / off decision (S604). That is, the deblocking filter determines whether to perform filtering for each filter unit.
[0094] The deblocking filter determines whether to apply a strong filter or a weak filter at the boundary where filtering is performed (S605).
[0095] The deblocking filter filters the pixels with a predetermined filter (S606, S607).
[0096] De-Blocking Filtering Method for QTBT (Quad-Tree Binary-Tree) Structure
[0097] Before describing the embodiments of the present invention, the characteristics of the HEVC deblocking filter and the operation of the deblocking filter in the QTBT structure will be described, and the problems of the QTBT deblocking filter will be carefully reviewed.
[0098] First, the HEVC deblocking filter filters at the boundary between prediction blocks (PB) and transform blocks (TB). However, in the case of QTBT, there is no separate boundary between transform blocks and prediction blocks, so filtering can be performed at the boundary between coding blocks (CB).
[0099] Of course, the HEVC and QTBT deblocking filters do not unconditionally filter all boundaries, but selectively perform strong or weak filtering only when certain conditions are met (determined in step S604 of Figure 6). On the other hand, if the conditions are not met, filtering is not performed even if the boundary falls into this category.
[0100] FIG. 7 is a diagram illustrating an example of a filtering execution boundary of the HEVC deblocking filter.
[0101] FIG. 7(a) illustrates a vertical edge as an execution boundary of filtering by the deblocking filter, and FIG. 7(b) illustrates a horizontal edge as an execution boundary of filtering by the deblocking filter.
[0102] As can be seen from Figure 7, the HEVC deblocking filter is performed at prediction block boundaries and transform block boundaries. However, filtering is not performed at all prediction block boundaries or transform block boundaries, but only at block boundaries of 8x8 or larger. This is thought to take into account the parallel processing of the deblocking filter.
[0103] As described above, whether to perform filtering is determined at the block boundary, and when the filtering execution condition is met, a strong filter or a weak filter is selectively executed.
[0104] At this time, the values of pixels adjacent to the block boundary are checked to determine whether filtering should be performed. For this, see FIG. 8 below for a more detailed look.
[0105] FIG. 8 is a diagram illustrating a method for determining whether to perform HEVC filtering.
[0106] In FIG. 8, solid lines indicate block boundaries, and each circle indicates one pixel (for example, a sample of a luma component or a sample of a chroma component).
[0107] Referring to Figure 8, each of the three pixels (shaded pixels in Figure 8) adjacent to the block boundary can be expressed as p(x, y) (or q(x, y)) with the X-axis and Y-axis components based on the block boundary, as shown in Figure 8. Then, the values of the variables (parameters) dp0, dp3, dq0, dq3, dpq0, dpq3, and d can be calculated based on Equation 1 below, which indicates the filtering execution conditions.
[0108]
number
[0109] The value of the variable (parameter) d calculated by Equation 1 is compared with the value of a variable (parameter) β determined based on the quantization parameter (Q), and deblocking filtering is performed only if the value of d is smaller than β.
[0110] Here, the ITU-T H.265 document is incorporated by reference herein with respect to how to determine the quantization parameter (Q) and the parameter β.
[0111] As described above, if a pixel on the block boundary satisfies a condition for filtering due to a specific condition, it is determined whether to apply a strong filter or a weak filter based on the following Equation 2.
[0112] Based on the conditions of the following Equation 2, if all the conditions of Equation 2 are satisfied, a strong filter is applied; otherwise, a weak filter is applied.
[0113]
number
[0114] In Equation 2, the variable (parameter) tc (i.e., t_c) is determined based on the quantization parameter (Q).
[0115] Here, in relation to how to determine the variable (parameter) tc (ie, t_c), the ITU-T H.265 document is incorporated by reference herein.
[0116] The pixel area to which filtering is applied varies depending on the type of filter (i.e., strong filter or weak filter) determined by the condition of Equation 2.
[0117] FIG. 9 is a diagram illustrating pixel regions to which HEVC deblocking filtering is applied.
[0118] As shown in FIG. 9, the respective pixel regions to which the strong or weak filter is applied differ based on the block boundary.
[0119] As described above, whether to apply deblocking filtering is determined based on the block boundary using three pixels on the left, right, or top and bottom. Then, at the boundary where deblocking filtering is applied, the type of deblocking filter is determined based on the block boundary using four pixels on the left, right, or top and bottom.
[0120] In connection with the HEVC deblocking filtering method described above, the ITU-T H.265 document is incorporated herein by reference.
[0121] For this reason, although HEVC can generate 4x4 prediction blocks or transform blocks, and prediction blocks of 8x4 and 4x8 sizes, deblocking filtering is only applied to block boundaries of 8x8 or larger for parallelization.
[0122] On the other hand, in the case of QTBT, the block structures of luma and chroma are different in intra slices (I-slices) (i.e., slices that are decoded using only intra prediction), and coding blocks of various shapes and sizes can be generated by quad trees and binary trees.
[0123] FIG. 10 is a diagram illustrating a QTBT division structure as an embodiment to which the present invention is applied.
[0124] As can be seen in Figure 10, the HEVC deblocking method is used in the same way, performing filtering on all block boundaries, and therefore not only is parallelization not possible, but filtering of the chroma components is also not performed effectively.
[0125] According to Figure 10, QTBT can divide an image into structures of various sizes and shapes.
[0126] Therefore, the present invention proposes a method for executing deblocking filters in parallel with various block partition structures (i.e., partition structures with various block sizes and shapes).
[0127] As illustrated in FIG. 10, the QTBT deblocking filter applies the same deblocking filter as the HEVC deblocking filter, but the deblocking filter can be performed not only on block boundaries of 8x8 or larger, but also on block boundaries such as 4x4, 4x8, 8x4, and 4x16.
[0128] However, in this case, filtering at the boundary of the block may cause a problem that the parallelization condition is not met due to a change in pixel value caused by filtering at the boundary of an adjacent block.
[0129] 11 to 21 are diagrams for explaining problems that arise when the HEVC deblocking filtering method is applied to the QTBT partition structure.
[0130] When the image is divided into a structure as shown in FIG. 11 by QTBT, the problem will be explained using an example of a vertical edge of a 4x16 block as shown in FIG.
[0131] In this case, assume that strong filtering is performed on the vertical edge of the first 4x16 block (i.e., block boundary 1) as shown in FIG.
[0132] In this case, filtering will cause changes in pixel values for the three pixels adjacent to the block boundary (the pixels shown shaded in FIG. 12). Now, assume that noise has been removed from block boundary 1 by filtering.
[0133] Next, to perform filtering at the adjacent block boundary (ie, block boundary 2), it is first determined whether to perform filtering through the pixels indicated by the dotted lines in FIG.
[0134] However, the example of Figure 12 raises the problem of having to determine whether to perform filtering by looking at the filtered pixels (pixels shown shaded in Figure 12) and the unfiltered pixels (pixels not shown shaded in Figure 12).
[0135] First, focusing on the issue of parallelization, as shown in Figure 13, filtering at block boundary 1 and block boundary 2 cannot be executed simultaneously, which causes the parallel pipeline to collapse.
[0136] Of course, even if the parallelization in FIG. 13 is not taken into consideration, the problem of overlapping and filtering occurs as shown in FIG.
[0137] As can be seen in Figure 14, if the conditions for filtering to be performed at block boundary 2 are met and the conditions for applying strong filtering are also met, the black pixels in Figure 14 will have the low-pass filter of the deblocking filter applied twice.
[0138] Also, even if weak filtering is applied to block boundary 2 instead of strong filtering as in FIG. 15, the black pixels in FIG. 15 are subjected to low-pass filtering twice, which is a problem.
[0139] Further, assume that weak filtering is applied at block boundary 1 as in FIG.
[0140] In this case, the pixels indicated by the dotted lines are referenced to determine whether or not to perform filtering at block boundary 2 as shown in FIG.
[0141] Also, even if it is determined that filtering is to be performed at block boundary 2, to determine whether to apply a strong filter or a weak filter, the determination must be made through Equation 2, with reference to the pixels indicated by the dotted line in FIG. 18.
[0142] If the conditions for performing strong filtering are not met at block boundary 2 and weak filtering is performed at block boundary 2, the problem of overlapping filtering as shown in Figure 19 does not occur. However, if the conditions for performing strong filtering are met and strong filtering is performed at block boundary 2, the problem of overlapping filtering occurs for the pixels displayed with dark shading as shown in Figure 20.
[0143] In the following description of the present invention, a vertical edge will be mainly described as an example, but this is for convenience of explanation and the present invention is not limited thereto. That is, in the case of a horizontal edge, the process may be performed in the same manner except that the pixels are located above and below the block boundary.
[0144] Embodiment 1
[0145] One embodiment of the present invention proposes a method for effectively implementing a QTBT structure deblocking filter.
[0146] As mentioned above, if the deblocking filtering method defined in HEVC is applied to the QTBT block structure as is, a problem occurs in that parallel processing may not be possible due to the problem that QTBT refers to the filtered pixels at the block boundary and calculates whether to filter or not.
[0147] To prevent this, the present invention proposes a method of performing deblocking filtering at the boundary of blocks whose horizontal width / length is 4 or less (i.e., blocks whose horizontal sample count is 4 or less) in the case of vertical edges, and at the boundary of blocks whose vertical size is 4 or less (i.e., blocks whose vertical sample count is 4 or less) in the case of horizontal edges.
[0148] Embodiment 1-1
[0149] According to one embodiment of the present invention, a method for filtering blocks whose horizontal length is 4 or less for vertical edges and blocks whose vertical length is 4 or less for horizontal edges is proposed using a QTBT structure deblocking filter.
[0150] As mentioned above, the problems that can arise when performing deblocking filtering with the QTBT structure can be divided into parallelization issues, whether to filter, and filtering of reference pixels when selecting an adaptive filter.
[0151] As in the aforementioned HEVC deblocking filtering, not performing filtering on block boundaries with specific conditions (e.g., block boundaries with a horizontal length of 4 or less or block boundaries with a vertical length of 4 or less) enables parallelization, but at the same time, since filtering is not performed on the block boundaries, problems can arise in terms of objective and subjective degradation of image quality.
[0152] For this reason, one embodiment of the present invention proposes a method for filtering at block boundaries if certain conditions are met.
[0153] Here, the specific condition means that the horizontal length of the block is 4 or less in the process of filtering a vertical edge and / or the vertical length of the block is 4 or less in the process of filtering a horizontal edge.
[0154] Under the above specific conditions, when determining whether to perform filtering as shown in FIG. 13 by referring to the filtered pixels, the pixels that have already been filtered and have had noise removed are used.
[0155] FIG. 21 illustrates a method for determining whether to perform deblocking filtering according to one embodiment of the present invention.
[0156] Referring to FIG. 21 and the equation below, d can be taken to mean the total amount of change in pixel values at the block boundary.
[0157] At this time, the pixels in the P block (i.e., the shaded pixels among the pixels indicated by the dotted lines in Figure 22) have already been filtered and smoothed, so there is a high probability that the values they produce will be smaller than the difference values of the unfiltered pixels.
[0158] Therefore, the finally calculated d value based on Equation 3 can be small, and the probability of filtering being performed can be increased when checking whether to perform filtering.
[0159]
number
[0160] Also, under the above-mentioned specific conditions, the type of filter can be determined by referring to the pixels filtered by the filtering.
[0161] FIG. 22 illustrates a method for determining the type of deblocking filter according to one embodiment of the present invention.
[0162] Referring to FIG. 22 and Equation 4, the equation used to adaptively select the strong and weak filters also takes into account the amount of change in pixel values at block boundaries.
[0163] In this case, the pixels of the P block (i.e., the shaded pixels among the pixels indicated by the dotted line in FIG. 22) have already been filtered, so the pixels are smoothed and the amount of change can be reduced. As a result, the condition for performing strong filtering as exemplified in Equation 4 is satisfied, and as a result, strong filtering can be performed more often than weak filtering.
[0164] This is because a strong filter is applied to pixels that have already been filtered, which can result in edges being blurred at block boundaries.
[0165]
number
[0166] Embodiment 1-2
[0167] In one embodiment of the present invention, in the case of a QTBT structure, a method is proposed in which a deblocking filter does not filter blocks whose horizontal length is 4 or less for vertical edge filtering or blocks whose vertical length is 4 or less for horizontal edge filtering.
[0168] As mentioned above, the current QTBT deblocking filter has many problems in the process of filtering boundaries of blocks of a specific size. To avoid these problems and enable parallelization of the deblocking filter, one embodiment of the present invention proposes a method as shown in Figure 23.
[0169] FIG. 23 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention.
[0170] Referring to FIG. 23, the decoder determines whether it corresponds to a boundary of a coding unit (or a coding block) (S2301).
[0171] If step S2301 does not correspond to a coding unit (or coding block) boundary, the decoder terminates deblocking filtering.
[0172] Meanwhile, if the boundary of a coding unit (or coding block) is found in step S2301, it is determined whether the boundary corresponds to a vertical edge (S2302).
[0173] If the boundary corresponds to a vertical edge in step S2302, it is determined whether the width of the coding unit (or coding block) is 8 or more (S2303).
[0174] On the other hand, if the boundary does not correspond to a vertical edge (i.e., corresponds to a horizontal edge) in step S2302, it is determined whether the height of the coding unit (or coding block) is 8 or more (S2304).
[0175] If the width of the coding unit (or coding block) is 8 or more in step S2303, or if the height of the coding unit (or coding block) is 8 or more in step S2304, the decoder performs conventional deblocking filtering (S2305).
[0176] For example, the decoder may perform conventional deblocking filtering, as illustrated above in FIG.
[0177] Here, in connection with conventional deblocking filtering methods, the ITU-T H.265 document is incorporated by reference herein.
[0178] On the other hand, if the width of the coding unit (or coding block) is not 8 or more in step S2303, or if the height of the coding unit (or coding block) is not 8 or more in step S2304, the decoder terminates deblocking filtering.
[0179] As illustrated in FIG. 23, if it is a vertical edge, filtering is performed only on coding units (or coding blocks) whose horizontal length is 8 or more, and if it is a horizontal edge, filtering is performed only on coding units (or coding blocks) whose vertical length is 8 or more, and filtering may not be performed on coding units (or coding blocks) whose vertical length is less than 8 or more.
[0180] As described above, in this embodiment, whether or not to apply filtering is determined taking only the block size into consideration, which has the advantage of enabling parallelization of deblocking filtering in the simplest manner.
[0181] Embodiments 1-3
[0182] According to one embodiment of the present invention, a method is proposed in which weak filtering is performed on blocks whose width is 4 or less for vertical edge filtering in a QTBT structure deblocking filter, or blocks whose height is 4 or less for horizontal edge filtering.
[0183] FIG. 24 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention.
[0184] Referring to FIG. 24, the decoder determines whether it corresponds to a boundary of a coding unit (or a coding block) (S2401).
[0185] If step S2401 does not correspond to a coding unit (or coding block) boundary, the decoder terminates deblocking filtering.
[0186] Meanwhile, if the boundary of a coding unit (or coding block) is found in step S2401, it is determined whether the boundary corresponds to a vertical edge (S2402).
[0187] If the boundary corresponds to a vertical edge in step S2402, it is determined whether the width of the coding unit (or coding block) is 8 or more (S2403).
[0188] Meanwhile, if the boundary does not correspond to a vertical edge (i.e., corresponds to a horizontal edge) in step S2402, it is determined whether the height of the coding unit (or coding block) is 8 or more (S2404).
[0189] If the width of the coding unit (or coding block) is 8 or more in step S2403, or if the height of the coding unit (or coding block) is 8 or more in step S2404, the decoder performs conventional deblocking filtering (S2405).
[0190] For example, the decoder may perform conventional deblocking filtering, as illustrated above in FIG.
[0191] Here, with regard to conventional deblocking filtering methods, the ITU-T H.265 document is incorporated herein by reference.
[0192] Meanwhile, if the width of the coding unit (or coding block) is not 8 or more in step S2403, the decoder may apply a weak filter to the vertical edge (S2406).
[0193] Also, if the height of the coding unit (or coding block) is not equal to or greater than 8 in step S2404, the decoder may apply a weak filter to the horizontal edges (S2407).
[0194] Here, for example, the ITU-T H.265 document may be incorporated by reference herein in connection with how to apply a weak filter.
[0195] As illustrated in FIG. 24, in the case of a vertical edge, conventional deblocking filtering is applied only to coding units (or coding blocks) whose horizontal length is 8 or more, and in the case of a horizontal edge, conventional deblocking filtering is applied to coding units (or coding blocks) whose vertical length is 8 or more, and a weak filter can be applied to coding units (or coding blocks) whose vertical length is not 8 or more.
[0196] As described above, according to this embodiment, there is an advantage that the degradation of subjective image quality can be minimized since filtering is not applied to small block sizes in the first and second embodiments.
[0197] Embodiments 1-4
[0198] In one embodiment of the present invention, a method is proposed in which a QTBT structure deblocking filter is used to perform a filter that is strong by two pixels on the left and right sides of block boundaries whose horizontal length is 4 or less for vertical edges, and on the top and bottom of block boundaries whose vertical length is 4 or less for horizontal edges.
[0199] In this case, we propose a method of applying strong filtering without selecting a filter set to blocks whose horizontal length is 4 or less and whose vertical length is 4 or less, as shown in Figure 25 below.
[0200] FIG. 25 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention.
[0201] Referring to FIG. 25, the decoder determines whether it corresponds to a boundary of a coding unit (or a coding block) (S2501).
[0202] If step S2501 does not correspond to a coding unit (or coding block) boundary, the decoder terminates deblocking filtering.
[0203] Meanwhile, if step S2501 corresponds to a coding unit (or coding block) boundary, the conditions for applying a deblocking filter are checked (S2502), and the decoder determines whether to apply a deblocking filter at that boundary based on the conditions for applying the deblocking filter (S2503).
[0204] At this time, the above-mentioned formula 1 is used as the application condition of the deblocking filter.
[0205] If it is determined in step S2503 that the deblocking filter should not be applied at the boundary of the coding unit (or coding block) (i.e., the conditions for applying the deblocking filter are not satisfied), the decoder terminates the deblocking filtering.
[0206] Meanwhile, if it is determined in step S2503 that deblocking filtering should be applied to the boundary of a coding unit (or coding block) (i.e., the conditions for applying deblocking filtering are satisfied), the decoder determines whether the boundary corresponds to a vertical edge (S2504).
[0207] If the boundary corresponds to a vertical edge in step S2504, it is determined whether the width of the coding unit (or coding block) is 8 or more (S2505).
[0208] Meanwhile, if the boundary does not correspond to a vertical edge (i.e., corresponds to a horizontal edge) in step S2504, it is determined whether the height of the coding unit (or coding block) is 8 or more (S2506).
[0209] If the width of the coding unit (or coding block) is not 8 or more in step S2505, or if the height of the coding unit (or coding block) is not 8 or more in step S2506, the decoder performs deblocking filtering by applying the strong filter proposed in this embodiment (S2507).
[0210] When applying the strong filter proposed in this embodiment, a strong filter is applied to two pixels on each side of the block boundary (in the case of vertical edges) or above and below (in the case of horizontal edges), and a more detailed explanation of this will be provided later.
[0211] On the other hand, if the width of the coding unit (or coding block) is 8 or more in step S2505, or if the height of the coding unit (or coding block) is 8 or more in step S2506, the decoder checks the filter set selection conditions (S2508), and determines whether to apply a strong filter at the edge based on the filter set selection conditions (S2509).
[0212] At this time, Equation 2 is used as a selection condition for the set of deblocking filters.
[0213] If it is determined in step S2509 that a strong filter should be applied (for example, if all the conditions in Equation 2 above are satisfied), the decoder can apply a conventional strong filter to the edge (S2510).
[0214] Here, for example, the ITU-T H.265 document may be incorporated herein by reference in connection with how to apply a strong filter.
[0215] On the other hand, if it is determined in step S2509 that a strong filter should not be applied (for example, if any one of the conditions in Equation 2 is not satisfied), the decoder can apply a weak filter to the edge (S2511).
[0216] Here, for example, the ITU-T H.265 document may be incorporated by reference herein in connection with how to apply a weak filter.
[0217] Furthermore, as shown in FIG. 26 below, for block boundaries where a strong filter must be applied while maintaining the conventional execution structure, a method of applying the strong filter proposed in the present invention is proposed.
[0218] FIG. 26 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention.
[0219] Referring to FIG. 26, the decoder determines whether it corresponds to a boundary of a coding unit (or a coding block) (S2601).
[0220] If step S2601 does not correspond to a coding unit (or coding block) boundary, the decoder terminates deblocking filtering.
[0221] Meanwhile, if step S2601 corresponds to a coding unit (or coding block) boundary, the decoder checks the deblocking filter application conditions (S2602), and determines whether to apply a deblocking filter at the boundary based on the deblocking filter application conditions (S2603).
[0222] At this time, the above-mentioned Equation 1 is used as a condition for applying the deblocking filter.
[0223] If it is determined in step S2603 that the deblocking filter should not be applied at the boundary of the coding unit (or coding block) (i.e., the conditions for applying the deblocking filter are not satisfied), the decoder terminates the deblocking filtering.
[0224] Meanwhile, if it is determined in step S2603 that a deblocking filter should be applied at the boundary of a coding unit (or coding block) (i.e., the conditions for applying the deblocking filter are satisfied), the decoder checks the filter set selection conditions (S2604), and determines whether to apply a strong filter at the boundary based on the filter set selection conditions (S2605).
[0225] At this time, Equation 2 is used as a selection condition for the set of deblocking filters.
[0226] If it is determined in step S2605 that a strong filter should not be applied (for example, if any one of the conditions in Equation 2 above is not satisfied), the decoder can apply a weak filter at the boundary (S2606).
[0227] Here, for example, the ITU-T H.265 document may be incorporated herein by reference in connection with how to apply a weak filter.
[0228] On the other hand, if it is determined in step S2605 that a strong filter is to be applied (for example, if all the conditions of Equation 2 above are satisfied), the decoder determines whether the boundary corresponds to a vertical edge (S2607).
[0229] If the boundary corresponds to a vertical edge in step S2607, it is determined whether the width of the coding unit (or coding block) is 8 or more (S2608).
[0230] On the other hand, if the boundary does not correspond to a vertical edge (i.e., corresponds to a horizontal edge) in step S2607, it is determined whether the height of the coding unit (or coding block) is 8 or more (S2609).
[0231] If the width of the coding unit (or coding block) is not 8 or more in step S2609, or if the height of the coding unit (or coding block) is not 8 or more in step S2608, the decoder performs deblocking filtering by applying the strong filter proposed in this embodiment (S2610).
[0232] When applying the strong filter proposed in this embodiment, a strong filter is applied to two pixels on each side of the block boundary (in the case of vertical edges) or above and below (in the case of horizontal edges), and a more detailed explanation of this will be provided later.
[0233] On the other hand, if the width of the coding unit (or coding block) is 8 or more in step S2609, or if the height of the coding unit (or coding block) is 8 or more in step S2608, the decoder can apply a conventional strong filter to the edge (S2611).
[0234] Here, for example, the ITU-T H.265 document may be incorporated herein by reference in connection with how to apply a strong filter.
[0235] Below we take a closer look at a strong filtering method according to one embodiment of the present invention.
[0236] The strong filtering method proposed in this invention utilizes the conventional HEVC filter, but can apply filtering based on the boundary (or edge) to only two pixels on each side (for vertical edges), and conversely, for horizontal edges, can apply filtering based on the boundary to only two pixels on each side.
[0237] FIG. 27 is a diagram illustrating a strong filtering method according to one embodiment of the present invention.
[0238] FIG. 27(a) illustrates pixels before filtering according to one embodiment of the present invention, and FIG. 27(b) illustrates pixels after filtering (shaded pixels) according to one embodiment of the present invention.
[0239] Referring to Figure 27 and Equation 5 below, filtering can be applied based on vertical edges, with only two pixels on each side (i.e., P(0,0), P(1,0), P(0,1), P(1,1), P(0,2), P(1,2), P(0,3), P(1,3), Q(0,0), Q(1,0), Q(0,1), Q(1,1), Q(0,2), Q(1,2), Q(0,3), Q(1,3)).
[0240]
number
[0241] For the sake of convenience, Equation 5 only shows the results of strong filtering on P(0,0), P(1,0), Q(0,0), and Q(1,0), that is, P'(0,0), P'(1,0), Q'(0,0), and Q'(1,0), but in a similar manner, P(0,1), P(1,1), P(0,2), P(1,2), P(0,3), P(1,3), Q(0,1), and Q By applying strong filtering to (1, 1), Q(0, 2), Q(1, 2), Q(0, 3), and Q(1, 3), P'(0, 1), P'(1, 1), P'(0, 2), P'(1, 2), P'(0, 3), P'(1, 3), Q'(0, 1), Q'(1, 1), Q'(0, 2), Q'(1, 2), Q'(0, 3), and Q'(1, 3) can be derived.
[0242] Alternatively, the strong filtering method proposed in this invention uses a new filter set as shown in FIG.
[0243] FIG. 28 is a diagram illustrating a strong filtering method according to one embodiment of the present invention.
[0244] FIG. 28(a) illustrates pixels before filtering according to one embodiment of the present invention, and FIG. 28(b) illustrates pixels after filtering (shaded pixels) according to one embodiment of the present invention.
[0245] Referring to Figure 28 and Equation 6 below, filtering can be applied based on vertical edges, with only two pixels on each side (i.e., P(0,0), P(1,0), P(0,1), P(1,1), P(0,2), P(1,2), P(0,3), P(1,3), Q(0,0), Q(1,0), Q(0,1), Q(1,1), Q(0,2), Q(1,2), Q(0,3), Q(1,3)).
[0246]
number
[0247] For the sake of convenience, Equation 6 shows only the strong filtering results of P(0,0), P(1,0), Q(0,0), and Q(1,0), i.e., P'(0,0), P'(1,0), Q'(0,0), and Q'(1,0), but in a similar manner, P(0,1), P(1,1), P(0,2), P(1,2), P(0,3), P(1,3), Q(0,1), and Q( By applying strong filtering to Q(0,1), Q(0,2), Q(1,2), Q(0,3), and Q(1,3), P'(0,1), P'(1,1), P'(0,2), P'(1,2), P'(0,3), P'(1,3), Q'(0,1), Q'(1,1), Q'(0,2), Q'(1,2), Q'(0,3), and Q'(1,3) can be derived.
[0248] In Equation 5 and Equation 6, p0, p1, and p2 correspond to P(0,0), P(1,0), and P(2,0), respectively, and q1, q2, and q3 correspond to Q(0,0), Q(1,0), and Q(2,0), respectively.
[0249] In addition, in Equation 5 and Equation 6, Clip3 can be calculated as in Equation 7.
[0250]
number
[0251] Also, in Equation 5 and Equation 6, x>>y means calculating the two's complement integer representation of x by y binary digits, and performing an arithmetic right shift. This function is defined only for non-negative integer values of y. As a result of the right shift, the bit shifted to the most significant bit (MSB) has the same value as the most significant bit (MSB) of x before the shift operation.
[0252] In addition, in Equation 5 and Equation 6, the variable (parameter) tc (that is, t_c) is determined based on the quantization parameter (Q).
[0253] Here, in relation to how to determine the variable (parameter) tc (ie, t_c), the ITU-T H.265 document is incorporated by reference herein.
[0254] As mentioned above, this embodiment also has the effect of minimizing subjective image quality degradation that may occur in conventional small blocks when a deblocking filter is not applied, and unlike embodiments 1-3, it has the effect of minimizing image quality degradation by enabling adaptive application of a filter.
[0255] Embodiment 2
[0256] When checking whether to perform filtering in the QTBT block division structure and selecting filtering, a problem occurs because the conditions are checked by referring to pixel values filtered at the previous block boundary.
[0257] Therefore, in one embodiment of the present invention, a method for determining whether to perform filtering and a method for determining an adaptive filter are proposed in a QTBT structure deblocking filter by referring to pixels that are not filtered at the boundaries of blocks whose horizontal length is 4 or less for vertical edge filtering and blocks whose vertical length is 4 or less for horizontal edge filtering.
[0258] In one embodiment of the present invention, a process for filtering vertical edges will be described. The process for filtering horizontal edges is the same except that it refers to pixels above and below the block boundary and takes into account the vertical length.
[0259] FIG. 29 is a diagram illustrating the results of filtering performed on a block whose horizontal length is 4 or less during vertical edge filtering.
[0260] Figure 29(a) illustrates pixels before filtering in a block with a horizontal length of 4 or less during vertical edge filtering, and Figure 29(b) illustrates pixels (shaded pixels) filtered by filtering.
[0261] In one embodiment of the present invention, we propose a method that uses unfiltered pixels as shown in FIG. 30 to determine whether to perform filtering and to select a filter.
[0262] FIG. 30 is a diagram illustrating whether to perform filtering and how to select a filter according to an embodiment of the present invention.
[0263] For blocks where the horizontal distance between the boundaries of adjacent blocks is 4 or less, the decoder uses the unfiltered pixels as shown in Figure 30(a) to check the conditions for whether to perform filtering (b) and the conditions for selecting an adaptive filter (c).
[0264] That is, when performing vertical edge filtering, for blocks whose horizontal length is 4 or less, the decoder can determine whether to perform filtering using pixels before filtering is performed as shown in Equation 8 below.
[0265]
number
[0266] In addition, when performing vertical edge filtering, for blocks with a horizontal length of 4 or less, the decoder can determine the type of filtering using pixels before filtering is performed at the boundary of other adjacent blocks, as shown in Equation 9 below.
[0267]
number
[0268] Meanwhile, whether to perform filtering and the type of filter are determined by referring to the filtered pixels. This only applies to block boundaries where the horizontal length between adjacent block boundaries is 4 or less.
[0269] For this reason, rather than determining which pixels to refer to when determining whether to perform filtering and the type of filter depending on the block size (for example, for blocks with a horizontal length of 4 or less, or for blocks with a vertical length of 4 or less), we propose a method of referring to unfiltered pixels when determining whether to perform filtering and the type of filter for all block boundaries, as shown in Figure 31 below.
[0270] FIG. 31 is a diagram illustrating a deblocking filtering method according to an embodiment of the present invention.
[0271] Referring to FIG. 31, the decoder determines whether it corresponds to a boundary of a coding unit (or a coding block) (S3101).
[0272] If step S3101 does not correspond to a coding unit (or coding block) boundary, the decoder terminates deblocking filtering.
[0273] On the other hand, if step S3101 corresponds to a coding unit (or coding block) boundary, the decoder checks the deblocking filter application conditions (S3102), and determines whether to apply a deblocking filter at the boundary based on the deblocking filter application conditions (S3103).
[0274] The decoder then uses the picture of unfiltered pixels as input to decide whether to apply a deblocking filter.
[0275] In this case, the above-mentioned Equation 8 can be used as a condition for applying the deblocking filter.
[0276] If it is determined in step S3103 that the deblocking filter should not be applied at the boundary of the coding unit (or coding block) (i.e., the conditions for applying the deblocking filter are not satisfied), the decoder terminates the deblocking filtering.
[0277] Meanwhile, if it is determined in step S3103 that a deblocking filter should be applied at the boundary of a coding unit (or coding block) (i.e., the conditions for applying the deblocking filter are satisfied), the decoder checks the filter set selection conditions (S3104), and determines whether to apply a strong filter at the boundary based on the filter set selection conditions (S3105).
[0278] The decoder then uses the picture of unfiltered pixels as input to decide whether to apply a strong filter.
[0279] At this time, Equation 9 is used as a selection condition for the set of deblocking filters.
[0280] If it is determined in step S3105 that a strong filter is to be applied (for example, if all the conditions in Equation 9 above are satisfied), the decoder can apply a strong filter to the corresponding boundary (S3106).
[0281] The decoder can then use the reconstructed picture as input to apply a strong filter.
[0282] In this case, the method proposed in the previous embodiments 1-4 can be used in connection with the application of a strong filter.
[0283] Alternatively, for example, the ITU-T H.265 document may be incorporated herein by reference in connection with how to apply a strong filter.
[0284] On the other hand, if it is determined in step S3105 that a strong filter should not be applied (for example, if any one of the conditions in Equation 9 above is not satisfied), the decoder can apply a weak filter at that boundary (S3107).
[0285] The decoder can then use the reconstructed picture as input to apply the weak filter.
[0286] Here, for example, the ITU-T H.265 document may be incorporated herein by reference in connection with how to apply a weak filter.
[0287] The pixels to which the strong filter and the weak filter are applied in steps S3106 and S3107 can be reflected in the restored picture as an output.
[0288] Thus, as illustrated in FIG. 31, the decoder can refer to the unfiltered pixels to determine whether to apply a filter and whether the conditions for selecting a filter set are met, and then perform the actual filtering on the decoded pixels.
[0289] As described above, according to this embodiment, when determining filtering at a block boundary for parallel deblocking filtering, the effect of enabling parallelization is achieved by determining whether to filter by referring to pixels to which filtering is not applied, rather than referring to pixels to which filtering has already been applied at adjacent block boundaries.
[0290] Embodiment 3
[0291] One embodiment of the present invention proposes a method for adaptively implementing deblocking filters on color components in a QTBT structure.
[0292] In the QTBT division structure, the I-Slice can be divided so that the block structures of the luma region and chroma region are different from each other. As there are different block edges between the chrominance component and the luma component, filtering is performed by checking the block boundaries to which filtering is applied separately.
[0293] However, if the conventional HEVC deblocking filtering method is used as is, a problem occurs in that after calculating BS under the same conditions as the luminance component, filtering is performed on the boundaries of blocks where BS is 2.
[0294] FIG. 32 is a diagram for explaining a problem that occurs when HEVC deblocking filtering is similarly applied to a QTBT block partition structure.
[0295] Referring to FIG. 32, the decoder starts a picture loop filter (loopFilterPic) process, and if the channel type is luma (S3201), executes a CU deblocking (xDeblockCU) process (S3202, S3203).
[0296] The process within the dotted box in Figure 32 illustrates xDeblockCU.
[0297] The decoder determines whether the slice type is I-Slice (S3204).
[0298] If the slice type is I-Slice and the channel type is chroma in step S3204 (S3205), a CU deblocking (xDeblockCU) process is performed (S3202, S3203).
[0299] On the other hand, if the slice type is not I-Slice in step S3204, the decoder terminates the picture loop filter (loopFilterPic) process.
[0300] The decoder determines whether the current block (e.g., a CTU or a block divided from a CTU into QTBTs) is divided into a quadtree (QT) structure (S3206).
[0301] If the current block is divided into a quad tree (QT) structure in step S3206, the width value is shifted to the right by 1 (width >> 1) and the height value is shifted to the right by 1 (height >> 1) (S3207). In other words, the current block is divided in half vertically and horizontally.
[0302] The decoder performs a CU deblocking (xDeblockCU) process on each of the four divided blocks (S3208, 3209).
[0303] Meanwhile, if the current block is not divided into a quad tree (QT) structure in step S3206, the decoder determines whether the current block is divided into a binary tree (BT) structure (S3210).
[0304] If the current block is divided into a binary tree (BT) structure in step S3210, the decoder determines whether the BT mode is horizontal division (S3211).
[0305] If the BT mode is horizontal split in step S3211, the decoder shifts only the height value to the right by 1 (height >> 1) (S3212), i.e., divides the current block in half horizontally. Then, the decoder performs a CU deblocking (xDeblockCU) process on each of the two divided blocks (S3213, S3214).
[0306] On the other hand, if the BT mode is not horizontal split in step S3211, the decoder shifts only the width value by 1 to the right (width >> 1) (S3215). In other words, the current block is split in half vertically. Then, the decoder performs a CU deblocking (xDeblockCU) process on each of the two split blocks (S3216, S3217).
[0307] On the other hand, if the current block is not divided into a binary tree (BT) structure in step S3210, the decoder calculates a boundary strength (BS) or boundary filtering strength (S3218).
[0308] The decoder determines whether the current block is a luminance block (S3219).
[0309] If the current block is a luma block in step S3219, the decoder performs edge filtering (xEdgeFilterLuma) on the luma block (S3220).
[0310] That is, similar to the above Equations 1 and 2, the decoder determines whether to apply a deblocking filter, and if so, determines the type of filter, and then executes the deblocking filter according to the determined type of filter.
[0311] On the other hand, if the current block is not a luminance block in step S3219, if the current block is a chroma block or not an I-Slice, and the chroma component format is not 4:0:0 (!400) (S3221), the decoder performs edge filtering of the chroma block (xEdgeFilterChroma) (S3222).
[0312] That is, similar to the above Equations 1 and 2, the decoder determines whether to apply a deblocking filter, and if a deblocking filter is to be applied, determines the type of filter, and then performs deblocking filtering according to the determined type of filter.
[0313] As illustrated in FIG. 32, when the BS value calculated under the same conditions as the luminance component is 2, the filtering process (xEdgeFilterChroma) for the edges of the chrominance blocks is performed without calculating whether to perform separate filtering for the edges of the chrominance blocks.
[0314] Therefore, a problem occurs in that the deblocking filter for the color components is not applied efficiently in I-Slice.
[0315] To solve this problem, an embodiment of the present invention proposes a method of applying a deblocking filter for chroma components as shown in FIG.
[0316] FIG. 33 is a diagram illustrating a deblocking filtering method according to one embodiment of the present invention.
[0317] Referring to FIG. 33, the decoder starts a picture loop filter (loopFilterPic) process, and if the channel type is luminance (S3301), executes a CU deblocking (xDeblockCU) process (S3302, S3303).
[0318] The process within the dotted box in Figure 33 illustrates xDeblockCU.
[0319] The decoder determines whether the slice type is I-Slice (S3304).
[0320] If the slice type is I-Slice and the channel type is chroma in step S3304 (S3305), a CU deblocking (xDeblockCU) process is performed (S3302, S3303).
[0321] On the other hand, if the slice type is not I-Slice in step S3304, the decoder terminates the picture loop filter (loopFilterPic) process.
[0322] The decoder determines whether the current block (e.g., a CTU or a block divided from a CTU into QTBTs) is divided into a quadtree (QT) structure (S3306).
[0323] If the current block is divided into a quad tree (QT) structure in step S3306, the width value is shifted to the right by 1 (width >> 1) and the height value is shifted to the right by 1 (height >> 1) (S3307). In other words, the current block is divided in half vertically and horizontally.
[0324] The decoder performs a CU deblocking (xDeblockCU) process on each of the four divided blocks (S3308, 3309).
[0325] Meanwhile, if the current block is not divided into a quad tree (QT) structure in step S3306, the decoder determines whether the current block is divided into a binary tree (BT) structure (S3310).
[0326] If the current block is divided into a binary tree (BT) structure in step S3310, the decoder determines whether the BT mode is horizontal division (S3311).
[0327] If the BT mode is horizontal split in step S3311, the decoder shifts only the height value to the right by 1 (height >> 1) (S3312), i.e., divides the current block in half horizontally. Then, the decoder performs a CU deblocking (xDeblockCU) process on each of the two divided blocks (S3313, S3314).
[0328] On the other hand, if the BT mode is not horizontal split in step S3311, the decoder shifts only the width value to the right by 1 (width >> 1) (S3315). In other words, the current block is split vertically in half. Then, the decoder performs a CU deblocking (xDeblockCU) process on each of the two split blocks (S3316, S3317).
[0329] On the other hand, if the current block is not divided into a binary tree (BT) structure in step S3310, the decoder calculates a boundary strength (BS) or boundary filtering strength (S3318).
[0330] The decoder determines whether the slice to which the current block belongs is an I-Slice (S3319).
[0331] If the slice to which the current block belongs is not an I-Slice in step S3319, the decoder determines whether the current block is a luminance block (S3320).
[0332] If the slice to which the current block belongs is an I-Slice in step S3319, or if the current block is a luma block in step S3320, the decoder performs edge filtering (xEdgeFilterLuma) of the luma (luma) block (S3221).
[0333] In other words, even if the slice to which the current block belongs is a color channel when it is an I-slice, the decoder can further calculate (determine) whether to perform filtering at the block boundary, just like the conventional luma component, and selectively apply strong filtering or weak filtering.
[0334] In this case, the method for determining whether to perform filtering and / or the method for determining the type of filtering (e.g., strong filtering or weak filtering) can be the method described in embodiment 1 and / or embodiment 2 described above.
[0335] Alternatively, ITU-T H.265 documents may be incorporated by reference herein with respect to how to determine whether to perform filtering and / or how to determine the type of filtering (e.g., strong filtering vs. weak filtering).
[0336] On the other hand, if the current block is not a luminance block in step S3320, but is a chroma block and the chrominance component format is not 4:0:0 (i.e., !400) (S3322), the decoder performs edge filtering of the chroma block (xEdgeFilterChroma) (S3223).
[0337] That is, in the case of a B-slice in which the luminance and chrominance block structures are the same, filtering can be performed at block boundaries with a BS of 2 or more, as in the conventional method.
[0338] FIG. 33 is a diagram illustrating a deblocking filtering method according to one embodiment of the present invention.
[0339] Referring to FIG. 33, the decoder derives boundaries of blocks divided into quad-tree and binary-tree structures (S3301).
[0340] The decoder determines the edges of the block boundaries to which de-blocking filtering is applied (S3302).
[0341] That is, the decoder determines the edges at which deblocking filtering is applied at the block boundaries.
[0342] In this case, the edge can be determined taking into consideration the width or height of the block.
[0343] For example, similar to the previous embodiment 1-1, if the edge type is a vertical edge, the edge may be determined based on pixels to which deblocking filtering has already been applied if the block width is 4 or less. Also, if the edge type is a horizontal edge, the edge may be determined based on pixels to which deblocking filtering has already been applied if the block height is 4 or less.
[0344] As another example, as in embodiment 1-2, if the edge type is a vertical edge, the edge can be determined only within the boundary of a block whose width is 8 or more (i.e., filtering is not applied to the boundary of a block whose width is 4 or less). Also, if the edge type is a horizontal edge, the edge can be determined only within the boundary of a block whose height is 8 or more (i.e., filtering is not applied to the boundary of a block whose height is 4 or less).
[0345] As another example, as in the second embodiment, edges may be determined based on pixels before deblocking filtering is applied.
[0346] The decoder determines the type of deblocking filtering to be applied to the edge (S3303).
[0347] For example, the decoder can decide whether strong or weak filtering is applied to the edges.
[0348] In this case, the type of deblocking filtering can be determined taking into account the width or height of the block.
[0349] For example, similar to the previous embodiment 1-1, when the edge type is a vertical edge, if the block width is 4 or less, the type of deblocking filtering can be determined based on pixels to which deblocking filtering has already been applied. Also, when the edge type is a horizontal edge, if the block height is 4 or less, the type of deblocking filtering can be determined based on pixels to which deblocking filtering has already been applied.
[0350] As another example, similar to embodiments 1-3, when the edge type is a vertical edge, the type of the deblocking filter can be determined to be weak filtering if the block width is equal to or less than 4. When the edge type is a horizontal edge, the type of the deblocking filter can be determined to be weak filtering if the block height is equal to or less than 4.
[0351] As another example, as in embodiments 1-4, when the edge type is a vertical edge, if the block width is 4 or less, the type of deblocking filter is determined to be strong filtering, and the strong filtering can be applied only to the two pixel columns adjacent to the left and right of the edge. Also, when the edge type is a horizontal edge, if the block height is 4 or less, the type of deblocking filter is determined to be strong filtering, and the strong filtering can be applied only to the two pixel columns adjacent to the top and bottom of the edge.
[0352] As another example, as in the second embodiment, the type of deblocking filtering may be determined based on pixels before the deblocking filtering is applied.
[0353] As another example, if the slice to which the block belongs is an I-slice, as in embodiment 3, the edge can be determined in step S3302 regardless of whether the block is a color block, and the type of deblocking filtering can be determined in step S3303.
[0354] The decoder performs deblocking filtering on the samples of the reconstructed picture according to the type of deblocking filtering (S3304).
[0355] FIG. 35 is a diagram illustrating a deblocking filtering unit according to an embodiment of the present invention.
[0356] Referring to Figure 35, the deblocking filtering unit implements the functions, processes, and / or methods previously proposed in Figures 6 to 34. In addition, the deblocking filtering unit may be implemented in an encoding device by combining it with all or part of the components of the encoder previously illustrated in Figure 1, or may be implemented in a decoding device by combining it with all or part of the components of the decoder previously illustrated in Figure 2.
[0357] Specifically, the deblocking filtering unit may include a block boundary derivation unit 3501, an edge determination unit 3502, a filtering type determination unit 3503, and a filtering unit 3504.
[0358] The block boundary derivation unit 3501 derives the boundaries of blocks divided into quad-tree and binary-tree structures.
[0359] The edge determination unit 3502 determines the edges of the block boundaries to which de-blocking filtering is applied.
[0360] That is, the edge determination unit 3502 determines edges to which deblocking filtering is applied at the block boundaries.
[0361] In this case, the edge can be determined taking into consideration the width or height of the block.
[0362] For example, similar to the previous embodiment 1-1, when the edge type is a vertical edge, if the block width is 4 or less, the edge may be determined based on pixels to which deblocking filtering has already been applied. Also, when the edge type is a horizontal edge, if the block height is 4 or less, the edge may be determined based on pixels to which deblocking filtering has already been applied.
[0363] As another example, as in embodiment 1-2, if the edge type is a vertical edge, the edge can be determined only within the boundary of a block whose width is 8 or more (i.e., filtering is not applied to the boundary of a block whose width is 4 or less). Also, if the edge type is a horizontal edge, the edge can be determined only within the boundary of a block whose height is 8 or more (i.e., filtering is not applied to the boundary of a block whose height is 4 or less).
[0364] As another example, as in the second embodiment, edges may be determined based on pixels before deblocking filtering is applied.
[0365] The filtering type determination unit 3503 determines the type of deblocking filtering to be applied to the edges.
[0366] For example, the filtering type determination unit 3503 can determine whether strong or weak filtering is applied to the edges.
[0367] In this case, the type of deblocking filtering can be determined taking into account the width or height of the block.
[0368] For example, as in the previous embodiment 1-1, when the edge type is a vertical edge, if the block width is 4 or less, the type of deblocking filtering can be determined based on pixels to which deblocking filtering has already been applied. Also, when the edge type is a horizontal edge, if the block height is 4 or less, the type of deblocking filtering can be determined based on pixels to which deblocking filtering has already been applied.
[0369] As another example, when the edge type is a vertical edge, as in the embodiment, the type of the deblocking filter may be determined to be weak filtering if the block width is equal to or less than 4. Also, when the edge type is a horizontal edge, the type of the deblocking filter may be determined to be weak filtering if the block height is equal to or less than 4.
[0370] As another example, as in embodiments 1-4, when the edge type is a vertical edge, if the block width is 4 or less, the type of deblocking filter is determined to be strong filtering, and the strong filtering can be applied only to the two pixel columns adjacent to the left and right of the edge. Also, when the edge type is a horizontal edge, if the block height is 4 or less, the type of deblocking filter is determined to be strong filtering, and the strong filtering can be applied only to the two pixel columns adjacent to the top and bottom of the edge.
[0371] As another example, as in the second embodiment, the type of deblocking filtering may be determined based on pixels before the deblocking filtering is applied.
[0372] As another example, if the slice to which the block belongs is an I-slice, as in embodiment 3, the edge can be determined in step S3302 regardless of whether the block is a color block, and the type of deblocking filtering can be determined in step S3303.
[0373] The filtering unit 3504 performs deblocking filtering on the samples of the reconstructed picture according to the type of deblocking filtering.
[0374] The above-described embodiments and the like represent combinations of the elements and features of the present invention in a predetermined form. Each element or feature should be considered optional unless otherwise explicitly stated. Each element or feature may be implemented without being combined with other elements or features. It is also possible to combine some elements and / or features to form an embodiment of the present invention. The order of operations described in the embodiments and the like of the present invention may be changed. Some elements or features of one embodiment may be included in another embodiment, or may be replaced with corresponding elements or features of another embodiment. It is obvious that claims that do not have an explicit citation relationship in the claims may be combined to form an embodiment, or may be included as new claims by amendment after filing.
[0375] Embodiments of the present invention may be implemented by various means, such as hardware, firmware, software, or a combination thereof. In a hardware implementation, an embodiment of the present invention may be implemented by one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, etc.
[0376] In the case of a firmware or software implementation, an embodiment of the present invention may be implemented in the form of a module, procedure, function, or the like that performs the functions or operations described above. The software code may be stored in a memory and driven by a processor. The memory may be located inside or outside the processor and may exchange data with the processor by various means known in the art.
[0377] It is obvious to those skilled in the art that the present invention can be embodied in other specific forms without departing from the essential characteristics of the present invention. Therefore, the above detailed description should not be construed as limiting in all respects, but should be considered as illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the present invention are included in the scope of the present invention. [Industrial Applicability]
[0378] The above-described preferred embodiments of the present invention have been disclosed for illustrative purposes, and those skilled in the art will be able to improve, modify, substitute, or add various other embodiments within the technical spirit and scope of the present invention as disclosed in the appended claims.
Claims
1. 1. A method for decoding video by a decoding device, comprising: deriving boundaries of luminance blocks and chrominance blocks in the current picture partitioned according to the partition structure; determining edges of the boundaries of the luminance blocks and the chrominance blocks for applying a deblocking filter; determining a type of the deblocking filter for the determined edge of the luma block based on a width or height of the luma block; determining a type of the deblocking filter for the determined edge of the chroma block based on the chroma block being an intra-predicted block in an I-slice; applying the deblocking filter of the determined type to reconstruction samples around the determined edge; determining the type of the deblocking filter for the luma block as weak filtering based on the type of the edge being a vertical edge and the width of the luma block being less than or equal to 4; determining the type of the deblocking filter for the luma block as the weak filtering based on the type of the edge being a horizontal edge and the height of the luma block being less than or equal to 4; A method, wherein the types of the deblocking filters for the luma blocks and the chroma blocks are determined based on reconstructed samples of the current picture before the deblocking filters are applied.
2. The method of claim 1 , wherein if the edge is a vertical edge, the edge is determined only among boundaries of the luminance block where the width is 8 or greater.
3. The method of claim 1 , wherein if the edge is a horizontal edge, the edge is determined only among boundaries of the luminance block where the height is 8 or greater.
4. if the edge is a vertical edge and the width of the luma block is less than or equal to 4, the type of the deblocking filter for the luma block is determined as strong filtering; The method of claim 1 , wherein the strong filtering is applied only to two adjacent pixel columns to the left and right of the edge.
5. if the edge is a horizontal edge and the height of the luma block is less than or equal to 4, the type of the deblocking filter for the luma block is determined as strong filtering; The method of claim 1 , wherein the strong filtering is applied only to two adjacent pixel rows above and below the edge.
6. A method for encoding video by an encoding device, comprising: deriving boundaries of luminance blocks and chrominance blocks in the current picture partitioned according to the partition structure; determining edges of the boundaries of the luminance blocks and the chrominance blocks for applying a deblocking filter; determining a type of the deblocking filter for the determined edge of the luma block based on a width or height of the luma block; determining a type of the deblocking filter for the determined edge of the chroma block based on the chroma block being an intra-predicted block in an I-slice; applying the deblocking filter of the determined type to reconstruction samples around the determined edge; determining the type of the deblocking filter for the luma block as weak filtering based on the type of the edge being a vertical edge and the width of the luma block being less than or equal to 4; determining the type of the deblocking filter for the luma block as the weak filtering based on the type of the edge being a horizontal edge and the height of the luma block being less than or equal to 4; A method, wherein the types of the deblocking filters for the luma blocks and the chroma blocks are determined based on reconstructed samples of the current picture before the deblocking filters are applied.
7. 1. A method of transmission for data including a bitstream including video by an apparatus, comprising: obtaining the bitstream for the video; transmitting the data including the bitstream; The bitstream comprises: deriving boundaries of luminance blocks and chrominance blocks in the current picture partitioned according to the partition structure; determining edges of the boundaries of the luminance blocks and the chrominance blocks for applying a deblocking filter; determining a type of the deblocking filter for the determined edge of the luma block based on a width or height of the luma block; determining a type of the deblocking filter for the determined edge of the chroma block based on the chroma block being an intra-predicted block in an I-slice; applying the deblocking filter of the determined type to reconstruction samples around the determined edge; determining the type of the deblocking filter for the luma block as weak filtering based on the type of the edge being a vertical edge and the width of the luma block being less than or equal to 4; determining the type of the deblocking filter for the luma block as the weak filtering based on the type of the edge being a horizontal edge and the height of the luma block being less than or equal to 4; A method, wherein the types of the deblocking filters for the luma blocks and the chroma blocks are determined based on reconstructed samples of the current picture before the deblocking filters are applied.
Citation Information
Patent Citations
Video encoding method and apparatus for performing deblocking filtering based on tree-structured coding units, and video decoding method and apparatus
JP2013524715A
Determining a low-complexity deblocking filter
JP2014526818A
Filtering blockiness artifacts for video coding
US20120287994A1
Image processing device and image processing method
WO2012077608A1
Image processing method and image processing device
WO2013076978A1