Video deblocking filtering method and device based on spatial continuity estimation
The method addresses the issue of information loss at discontinuities in video deblocking by considering spatial continuity, improving filtering decisions and intensities, thereby enhancing video decoding quality.
Patent Information
- Application Number
- PCT/KR2025/015969
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-10-10
- Filing Date
- 2025-10-10
- Publication Date
- 2026-04-16
Smart Images

Figure KR2025015969_16042026_PF_FP_ABST
Abstract
Description
Video deblocking filtering method and device based on spatial continuity estimation
[0001] The present disclosure may be a technique for improving information preservation performance at discontinuities by considering spatial continuity when performing deblocking filtering on video.
[0002] During the picture decoding process, deblocking filtering can be performed at the boundaries of prediction blocks or transform blocks. Deblocking filtering can apply a smoothing effect to pixels close to the boundaries.
[0003] Unlike prior art, the present disclosure may aim to improve information preservation performance at discontinuities by considering spatial continuity when performing deblocking filtering on video.
[0004] The present disclosure may aim for a video deblocking filtering method and apparatus based on spatial continuity estimation.
[0005] The image encoding / decoding method, apparatus, and recording medium according to the present disclosure comprise the step of obtaining a restored current picture by predicting a current picture by referring to a picture identical to the current picture or a different picture, wherein the restored current picture includes restored pixels; and the step of performing deblocking filtering on the restored pixels of the surrounding area of the current unit boundary at the current unit boundary of a specific unit of the current picture, wherein the current unit boundary may be divided into a vertical boundary or a horizontal boundary depending on the boundary direction.
[0006] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, in response to the fact that the current unit boundary is a vertical boundary, the surrounding area of the current unit boundary may include a right area and a left area of the current unit boundary.
[0007] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, in response to the fact that the current unit boundary is a horizontal boundary, the surrounding area of the current unit boundary may include an upper area and a lower area of the current unit boundary.
[0008] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, whether or not to perform the deblocking filtering may be determined by a flag signaled at the hierarchical level of the specific unit.
[0009] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, whether or not to perform deblocking filtering at the boundary of the specific unit can be determined for each unit boundary of the specific unit.
[0010] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, the filter attributes of the deblocking filtering applied to both surrounding regions based on the current unit boundary may be different from each other.
[0011] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, the filtering strength of the deblocking filtering can be determined according to the extraction position of the filtering strength of the deblocking filtering.
[0012] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, in response to the fact that the current unit boundary is a vertical boundary, the filtering intensity of the deblocking filtering extracted from the right region of the current unit boundary and the filtering intensity of the deblocking filtering extracted from the left region of the current unit boundary may be different from each other.
[0013] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, in response to the fact that the current unit boundary is a horizontal boundary, the filtering intensity of the deblocking filtering extracted from the upper region of the current unit boundary and the filtering intensity of the deblocking filtering extracted from the lower region of the current unit boundary may be different from each other.
[0014] In the image encoding / decoding method, apparatus, and recording medium according to the present disclosure, the specific unit may include a large coding unit.
[0015] The present disclosure can improve information preservation performance at discontinuities by considering spatial continuity when performing deblocking filtering on video.
[0016] FIG. 1 illustrates an embodiment of the decoding device of the present invention.
[0017] Figure 2 shows an example of the result of deriving a tile division structure using an equal division method.
[0018] Figure 3 shows an example of the result of deriving a tile division structure using a non-uniform division method.
[0019] Figure 4 illustrates an example of the division of tiles and tile groups.
[0020] Figure 5 illustrates an example of a segment index map.
[0021] FIG. 6 illustrates an embodiment in which the segment index of the current coding unit is restored independently of the segment index of the previous frame.
[0022] Figure 7 illustrates an example of the predicted index of the current coding unit.
[0023] FIG. 8 illustrates one example of a final index value.
[0024] FIG. 9 illustrates an example of candidate boundaries on which deblocking filtering can be performed.
[0025] FIG. 10 illustrates an example of a process for performing filtering.
[0026] FIG. 11 illustrates one example of the maximum number of pixels to be filtered.
[0027] FIG. 12 illustrates an example of the maximum number of pixels to be filtered derived by the process of FIG. 18 from an arbitrary number of unit boundaries.
[0028] FIG. 13 illustrates an example of a result in which the number of filtering target pixels in each area on both sides is derived for each sub-boundary.
[0029] FIG. 14 illustrates an example of an index assigned to pixels in both sub-boundary regions.
[0030] Figure 15 illustrates an example of a judgment condition for a specific pixel.
[0031] FIG. 16 illustrates an example in which the indices of the pixels to be filtered are assigned based on sub-boundaries.
[0032] Figure 17 illustrates an example of the selection result of a set of inter-screen prediction information in the left region of an arbitrary vertical unit boundary.
[0033] FIG. 18 illustrates an example of the process of the step of deriving the maximum number of pixels to be filtered.
[0034] Figure 19 illustrates an example of a weight matrix of a prediction unit to which an arbitrary pixel line group in the left region belongs.
[0035] The present invention is susceptible to various modifications and may have various embodiments; specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the invention to specific embodiments, and it should be understood that the invention includes all modifications, equivalents, and substitutions that fall within the spirit and scope of the invention. Similar reference numerals have been used for similar components in the description of each drawing.
[0036] Terms such as "first," "second," etc., may be used to describe various components, but said components should not be limited by said terms. These terms are used solely for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be named the second component, and similarly, the second component may be named the first component. The term "and / or" includes a combination of a plurality of related described items or any of a plurality of related described items.
[0037] When it is stated that one component is "connected" or "connected" to another component, it should be understood that while it may be directly connected or connected to that other component, there may also be other components in between. On the other hand, when it is stated that one component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between.
[0038] The terms used in this application are used merely to describe specific embodiments and are not intended to limit the invention. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, terms such as "comprising" or "having" are intended to specify the existence of the features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, and should be understood as not precluding the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.
[0039] Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the attached drawings. Hereinafter, the same reference numerals are used for identical components in the drawings, and redundant descriptions of identical components are omitted.
[0040]
[0041] FIG. 1 illustrates an embodiment of the decoding device of the present invention.
[0042] The entropy decoder of FIG. 1 can entropy decode information that can be used in the decoding process of various hierarchical units that may exist within the sequence, such as sequences, pictures, slices, tiles, Largest Coding Units (LCU), coding units, prediction units, and transformation units.
[0043] The inverse quantization unit of FIG. 1 can perform inverse quantization on the quantization coefficients of the transform block. Here, the quantization coefficients of the transform block may be obtained from the entropy decoder.
[0044] The inverse transform unit of FIG. 1 can perform an inverse transform on the inverse quantized transform coefficients of the transform block. Various types of transforms, such as DCT, DST, and KLT, can be performed, and the type of transform kernel can be transmitted or derived according to a defined rule. The inverse quantized transform coefficients of the transform block can be obtained by inversely quantizing the quantization coefficients of the transform block in the inverse quantization unit.
[0045] The intra prediction unit of Fig. 1 can perform predictions using information restored within the same picture in units of prediction blocks.
[0046] The inter-prediction unit of Fig. 1 can perform predictions using information restored within different pictures in units of prediction blocks. In some cases, information restored within the same picture can be used together.
[0047] The filtering unit of FIG. 1 can perform filtering on the restored pixel values. Low-pass filtering can be performed for the purpose of deblocking at specific unit boundaries. Alternatively, pixels can be grouped according to a predetermined criterion within a specific unit, and a certain offset can be summed for pixels belonging to each group. Alternatively, the unit can be classified into specific groups, and filtering can be performed using a transmitted or predetermined filter. The specific unit may be any one of the various hierarchical units of the present disclosure. That is, the specific unit may be any one of a sequence, picture, slice, tile, Largest Coding Unit (LCU), coding unit, prediction unit, and transformation unit.
[0048] The upper layer information decoding unit of FIG. 1 can decode information transmitted from one or more layers corresponding to the upper layer among the hierarchical units of syntax transmission or decoding performance within the video. The upper layer may include, for example, a video, a sub-video, a frame group, a frame, a tile group, etc.
[0049] The video may refer to the frame from the start frame to the last frame that is the target of decoding, and at the video layer, the number of sub-videos within the video and the index of the transmitted sub-videos can be restored.
[0050] A sub-video can refer to a video subsampled along the temporal or spatial axis, and in the sub-video layer, the sub-video index, the video index containing the sub-video, the maximum width or maximum height of the frame, etc., can be restored.
[0051] A frame group may refer to a grouping of multiple frames within a sub-video in display order. A frame group may consist of one or more intra-frame predicted frames or inter-frame predicted frames. Inter-frame predicted frames may be restored by referencing restored frames within a frame group or another frame group.
[0052] A frame can refer to a single frame that constitutes a frame group, and in the frame hierarchy, frame width / height, frame index, tile information within the frame, segment information within the frame, etc., can be restored.
[0053] A tile group may be a grouping of one or more tiles within a frame, and the received tile group header may include information specifying one or more tiles included within the tile group. For example, it may include information specifying the top-left tile or the center tile within the tile group.
[0054] The process of restoring the tile and tile group partitioning structure within a frame using tile partitioning information received from the frame layer and tile specification information within the tile group received from the tile group layer can be performed as follows.
[0055] The process of restoring the tile division structure using tile division information received from the frame layer can be performed as follows. A tile division method can be received, and the tile division method may include, for example, an even division method, an uneven division method, etc. If the tile division method is an even division method, the number of tiles in the horizontal direction of the frame (number of tile columns) and the number of tiles in the vertical direction of the frame (number of tile rows) can be received (num_tile_cols_log2, num_tile_rows_log2 among Equations (1) to (6)). The received number of tiles in the horizontal and vertical directions may be a value of logN of the number, where N may be, for example, 0, 2, etc. The process of deriving the width and height of the tiles in the horizontal and vertical directions using the number of tiles in the horizontal and vertical directions can be performed as a process as shown in Equations (1) to (6). In formulas (1) to (6), 'Btile_width' represents the width of the right boundary tile of the picture, 'Btile_height' represents the height of the bottom boundary tile of the picture, and 'NBtile_width' and 'NBtile_height' represent the width and height of tiles that are not the right or bottom boundary of the picture.
[0056] Figure 2 shows an example of the result of deriving a tile division structure using an equal division method.
[0057] Figure 3 shows an example of the result of deriving a tile division structure using a non-uniform division method.
[0058] If the tile division method is a non-uniform division method, one or more tile heights in the longitudinal direction of the frame or tile widths in the transverse direction of the frame may be transmitted (tile_width_in_sb_minus_1_N, tile_height_in_sb_minus_1_N in Equations (7) to (8). The transmitted tile width and height may each be the width and height of a large coding unit, and may be values obtained by subtracting a specific constant value (e.g., 1). The process of deriving tile width and height values in pixel units using the transmitted tile width and height may be as in Equations (7) to (8).
[0059] Formula (1)
[0060] NBtile_height_sb = (num_sb_rows + (1 << num_tile_rows_log2) - 1) >> num_tile_rows_log2
[0061] Formula (2)
[0062] NBtile_height = NBtile_height_sb * sb_height
[0063] Formula (3)
[0064] Btile_height = picture_height - NBtile_height * (1 << num_tile_rows_log2 - 1)
[0065] Formula (4)
[0066] NBtile_width_sb = (num_sb_cols + (1 << num_tile_cols_log2) - 1) >> num_tile_cols_log2
[0067] Formula (5)
[0068] NBtile_width = NBtile_width_sb * sb_width
[0069] Formula (6)
[0070] Btile_width = picture_width - NBtile_width * (1 << num_tile_cols_log2 - 1)
[0071] Formula (7)
[0072] tile_width_N = (tile_width_in_sb_minus_1_N + 1) * sb_width
[0073] Formula (8)
[0074] tile_height_M = (tile_height_in_sb_minus_1_M + 1) * sb_width
[0075] For convenience of explanation, the present disclosure is described based on the decoding device of FIG. 1, but the present disclosure can also be performed on an encoding device.
[0076] For example, the encoding device of the present disclosure may include an inter-prediction unit, an intra-prediction unit, a reference picture buffer, and a filtering unit, in the same way as the decoding device.
[0077] Additionally, a residual block can be obtained using the original block with a prediction block obtained through intra-prediction or inter-prediction, and said residual block can be encoded into a bitstream by passing through a conversion unit, a quantization unit, an entropy encoding unit, a coding unit layer information encoding unit, and an upper layer information encoding unit. Here, the conversion unit, the quantization unit, and the entropy decoding unit may correspond to the inverse conversion unit, the inverse quantization unit, the entropy decoding unit, the coding unit layer information decoding unit, and the upper layer information decoding unit of the decoding device. For example, the upper layer information decoding unit of the decoding device can decode information transmitted from one or more layers corresponding to the upper layer among the hierarchical units of syntax transmission or decoding performance within the video, whereas the upper layer information encoding unit of the encoding device can encode information transmitted from one or more layers corresponding to the upper layer among the hierarchical units of syntax transmission or decoding performance within the video.
[0078] The process of restoring the tile and tile group partitioning structure within a frame using tile specification information within a tile group received from the tile group hierarchy can be performed as follows. Information specifying one or more tiles included in the current tile group can be received from the tile group header, and such information may be, for example, the indices of the start tile and the end tile of the tile group. One or more tiles having indices within the range from the start tile index up to the end tile index down to constitute a tile group.
[0079] Figure 4 illustrates an example of the division of tiles and tile groups.
[0080] Figure 4 illustrates a case where one frame is divided into 16 tiles and then divided into three tile groups. Referring to Figure 4, it can be seen that among the divided tiles, tiles 0 through 5 form tile group 0, tiles 6 through 9 form tile group 1, and tiles 10 through 15 form tile group 2.
[0081] Information related to a segment can be restored at the frame layer as follows. The segment may be a layer that shares a specific type of coding parameter within a frame, and the specific type of coding parameter may be received for each segment, and the segment index may be received in units of coding units. A set of coding units having any identical segment index within a frame may constitute a single segment. At the frame layer, the coding parameters of each segment can be restored for up to max_segment_num segments within the current frame. The segment-unit coding parameter set may include, for example, quantization parameters, prediction modes, residual signal coding modes, deblocking filter strength offsets, etc. The coding parameters within the coding parameter set restored from any segment may be used in the process of restoring the coding units included in that segment.
[0082] The above quantization parameter may be a residual quantization parameter and may be used in the process of restoring the quantization parameter of a coding unit included in the corresponding segment.
[0083] The above prediction mode may be an index indicating a prediction mode for generating a prediction signal in the inter-prediction unit or intra-prediction unit of the present disclosure on a coding unit basis, or a flag indicating whether to use a specific prediction mode defined identically in the encoder / decoder. The above specific prediction mode may be one of all prediction modes supported by the decoder and may be defined, for example, as an inter-frame prediction mode, a global motion usage mode, etc.
[0084] The above residual signal coding mode may be a flag indicating whether to restore the residual signal generated as a difference of the prediction signal at the coding unit level through processes such as the inverse quantization unit and inverse transform unit of FIG. 1. If the flag value is true, the residual signal of the coding unit may not be restored and may be guided to a specific value such as 0. Alternatively, if the flag value is true, the residual signal of the coding unit may not be restored, and the prediction mode of the coding unit may also be guided to a specific fixed mode. If the flag value is false, the residual signal of the coding unit may be restored or not restored.
[0085] The above deblocking filter strength offset can be used to derive parameter values involved in determining the deblocking filtering strength in the deblocking filtering step of the filtering unit of FIG. 1.
[0086] A flag indicating whether to restore the current frame independently or by referencing the segment index in the coding unit layer of the current frame and the coding parameter set of max_segment_num segments of the current frame can be parsed. If the current frame satisfies one or more of the following multiple conditions, the flag is not parsed and may be implicitly derived as a value meaning 'independent'. The decision process for all of the following conditions may be performed, or the decision process for only one or more of the following conditions may be performed. For example, only conditions 1 and 2 may be evaluated, and condition 3 may be excluded from the decision process.
[0087] Condition 1: Is the current frame the first frame in a sequence or frame group?
[0088] Condition 2: Is the current frame an intra-type picture?
[0089] Condition 3: Is the current frame encoded with a changed resolution?
[0090] If the above flag indicates dependent restoration, the sets of coding parameters for each of the max_segment_num segments of the previous (e.g., immediately preceding) frame in terms of decoding order or display order can be used identically in the current frame. If the above flag indicates independent restoration, the sets of coding parameters for each of the max_segment_num segments of the current frame can be restored through the following process. For the max_segment_num segments, the usage status of each coding parameter within the coding parameter set of each segment can be parsed, and if the usage status indicates true, the corresponding coding parameter value can be parsed.
[0091]
[0092] The coding unit layer information decoding unit of Fig. 1 can restore information to be used in the decoding process of the coding unit, and at this time, restoration can be performed by combining values parsed through the entropy encoding unit of Fig. 1 or derived through a specific process. The coding unit layer information may include quantization parameters to be used in the inverse quantization process of Fig. 1 for the current coding unit, types of transformation kernels to be used in the inverse transformation unit of Fig. 1, prediction modes to be used in the intra prediction unit or inter prediction unit of Fig. 1, information related to multiple types of filtering to be used in the filtering unit of Fig. 1, and segment indices of the current coding unit.
[0093] The segment index of the current coding unit can be restored through the following process. A flag indicating whether it is possible to restore the segment index of the current coding unit by referencing the segment index of the previous frame may have been restored at the frame layer. If the value of the aforementioned possibility flag is true, a flag indicating whether to restore the segment index of the current coding unit by referencing the segment index of the previous frame can be parsed. If the value of the aforementioned possibility flag is false, the segment index of the current coding unit can be restored without referencing the segment index of the previous frame.
[0094] The process of restoring a segment index by referencing the segment index of a previous frame may be as follows. The segment index restored from the previous frame in units of coding units may be stored in memory in raster scan order, starting from the top-left unit of the frame of the said unit, in units of (seg_unit_width) x (seg_unit_height) pixels. A unit-unit listing of the segment index of any restored frame may constitute a segment index map.
[0095] Figure 5 illustrates an example of a segment index map.
[0096] FIG. 5(a) may represent a segment index map of a previous frame, FIG. 5(b) may represent a segment index map when no resolution change is performed on the current frame, and FIG. 5(c) may represent a segment index map when a resolution change is performed on the current frame. When a resolution change is performed on the current frame, after the current frame is restored, the resolution of the segment index map may be downsampled to the original resolution and stored in memory.
[0097] Within the previous frame, the location of the corresponding region of the current coding unit's region can be derived, and a representative value of one or more segment indices included within that corresponding region can be designated as the segment index of the current coding unit. The representative value may, for example, be one of the maximum, minimum, average, median, and mode for all or some of the segment indices corresponding to the pixel regions within the corresponding region. If the resolutions of the current frame and the previous frame differ, the resolution of the segment index map of the previous frame may be downsampled (or upsampled) to be equal to the resolution of the segment index map of the current frame based on the resolution ratio of the previous frame and the current frame. For example, downsampling of the segment index map of the previous frame may be performed as follows: In the segment index map of the previous frame, a non-overlapping scale starting from the top-left corner x x scale y Downsampling can be performed for each region by assigning a representative value of one or more segment indices to each region. The representative value may be the minimum, maximum, or mode of all or some of the segment indices corresponding to pixel regions within the region.
[0098] The process of deriving the above representative value can be performed as the process of Equation (9), and Equation (9) may be a case where the above minimum value is used as the representative value. In Equation (9), seg_idx_map_ref may be the segment index map of the previous frame, seg_unit_height and seg_unit_width may be the height and width of the base unit where the segment index is stored, respectively, and CU_sub_y[i] and CU_sub_x[i] may be the y-coordinate and x-coordinate of the top-left coordinate of an arbitrary base unit within the current coding unit, respectively. scale in Equation (9). y is the ratio of the current frame height to the previous frame height, scale xcan mean the ratio of the width of the current frame to the width of the previous frame. If the segment index map resolution of the current frame and the previous frame are the same by changing the segment index map resolution of the previous frame, the scale of Equation (9) y and scale x ...can be omitted.
[0099] Formula (9)
[0100]
[0101]
[0102] FIG. 6 illustrates an embodiment in which the segment index of the current coding unit is restored independently of the segment index of the previous frame.
[0103] The process of restoring the segment index of the current coding unit independently of the segment index of the previous frame can be performed as shown in Fig. 6.
[0104] The prediction index derivation step of FIG. 6 can derive a prediction index by referencing the segment indices of one or more spatially adjacent blocks of the current coding unit. The one or more adjacent blocks may refer to a previously restored coding unit that includes a pixel at a specific location adjacent to the left or right boundary of the current coding unit. For example, when the top-left pixel coordinates of the current coding unit are (x, y) = (0, 0), it may be a coding unit that includes a pixel at the location (0, -1), (-1, 0), or (-1, -1). It is determined whether the segment indices of the corresponding previously restored coding units are available for use in the current coding unit, and the prediction index can be determined based on the result of the determination. If the left boundary of the current coding unit is a tile or frame boundary, the segment indices of previously restored coding units adjacent to the left boundary may not be usable, and if the top boundary of the current coding unit is a tile or frame boundary, the segment indices of previously restored coding units adjacent to the top boundary may not be usable, and if both the left and top boundaries of the current coding unit are tile or frame boundaries, the segment indices of adjacent previously restored coding units may not be usable.
[0105] Figure 7 illustrates an example of the predicted index of the current coding unit.
[0106] For example, the predicted index of the current coding unit based on the availability of adjacent coding units may be as shown in Fig. 7.
[0107] The residual index parsing step of FIG. 6 can parse the residual index of the segment index of the current coding unit from the bitstream. The residual index can be restored using a context-adaptive M-ary arithmetic coding method, and the range of the restored value can be, for example, 0 to (max_segment_num-1).
[0108] The final index restoration step of Fig. 6 can finally derive the segment index of the current coding unit using the prediction index derived in the prediction index derivation step of Fig. 6 and the residual index restored in the residual index parsing step of Fig. 6.
[0109] FIG. 8 illustrates one example of a final index value.
[0110] The detailed execution process can derive the value of the final index as shown in Fig. 8, based on the relationship between the maximum value of the valid segment index in the current frame, the prediction index, and the residual index.
[0111] The inverse quantization unit of FIG. 1 can perform inverse quantization on the quantization level values parsed from the bitstream. Inverse quantization can be performed as in Equation (10) using values based on quantization parameters and frequency-specific weights. In Equation (10), level[i] and recon_coeff[i] may be the i-th inversely quantized level and the restored transformation coefficient resulting from the inverse quantization within the current coding unit, QP may be the quantization parameter of the current coding unit, and Qweight[i] may represent a weight corresponding to the frequency corresponding to the i-th inversely quantized level. If the transformation type of the current transformation unit has the characteristics of an identity matrix, frequency-specific weights may not be used.
[0112] Formula (10)
[0113] recon_coeff[i] = level[i] × QP × Qweight[i]
[0114] The quantization parameter of the current coding unit (e.g., the quantization parameter of Equation (10)) can be derived by summing the difference quantization parameter received from one or more layers to the basic quantization parameter. The basic quantization parameter may be information from the frame layer, a received value, or a value that references the quantization parameter of a previously decoded frame. The difference quantization parameter may be received from the sequence layer, frame layer, segment layer, or quantization unit layer, and may be received from one or more of the layers listed above. The quantization unit may be a unit in which the width and height are each multiples or divisors of the width and height of the large coding unit. The size of the quantization unit may be fixed identically to the coding / decoding unit, for example, the quantization unit may be defined as having the same size as the large coding unit. Alternatively, the width and height of the quantization unit may be received. Alternatively, the quantization unit may be a large coding unit partitioned into a quadtree partition structure, and the width and height of the quantization unit can be derived by receiving the partition depth. During the decoding process of the coding unit with the earliest decoding order among the coding units included in the region of an arbitrary quantization unit, the differential quantization parameters of the quantization unit hierarchy can be parsed, and the parsed differential quantization parameters can be shared among the coding units within the quantization unit.
[0115] The quantization parameters of the current coding unit can be derived, for example, through a process such as Equation (11). In Equation (11), the quantization parameters can be restored to separate values for color components (Y, U, V, etc.) or frequency components (DC, AC) within the current coding unit. BaseQP of Equation (11) frame can be the basic quantization parameter received from the frame layer, and △QP sequence may be a difference quantization parameter received from the sequence layer to which the current coding unit belongs, and △QPframe may be a difference quantization parameter received from the frame layer to which the current coding unit belongs, and △QP sequence may be a difference quantization parameter received from the segment layer to which the current coding unit belongs, and △QP superblock may be a difference quantization parameter received from the quantization unit to which the current coding unit belongs.
[0116] Formula (11)
[0117] QP codingunit [Y,U,V][DC,AC] = BaseQP frame + △QP sequence [Y,U,V][DC] + △QP frame [Y,U,V][DC,AC] + △QP sequence [segment id of CU] + △QP superblock [superblock id]
[0118] △QP frame ACDCY-△QP Y,DC U△QP U,AC △QP U,DC V△QP V,AC △QP V,DC
[0119] The frequency-specific weights of the current conversion unit (e.g., Qweight[i] in Equation (10)) may be a group of weights mapped to each frequency corresponding to the quantization level within the conversion unit, and said weight group may include weights according to the size or color component of the conversion unit. A plurality of types of said weight group may be defined identically in the decoding / encoding unit, or the weight group may be transmitted at the tile group or frame or frame group layer. The index of the weight group to be used among the plurality of types of weight groups may be received at the tile group or frame layer.
[0120] The filtering unit of Fig. 1 can perform one or more types of filtering on the restored pixel values, and the filtered pixel values can be stored in the frame memory.
[0121] Types of filtering may include deblocking filtering, direction-based filtering, and image feature-adaptive filtering. Whether each filtering step is performed can be determined by flag values received from layers such as sequences, frames, tiles, and coding units, or through specific decision processes at each layer. The execution order of each filtering step may be one of several possible sequence combinations.
[0122] Deblocking filtering within the filtering unit of Fig. 1 can be performed on pixels close to the vertical or horizontal boundary of the prediction unit or transformation unit.
[0123] FIG. 9 illustrates an example of candidate boundaries on which deblocking filtering can be performed.
[0124] FIG. 10 illustrates an example of a process for performing filtering.
[0125] FIG. 9(a) may represent candidate boundaries where deblocking filtering can be performed for any four adjacent coding units within a frame. In the process of performing deblocking filtering on prediction unit boundaries or transformation unit boundaries existing within a region after one frame, one large coding unit, or one coding unit is decoded, deblocking filtering can be performed for each unit boundary in the vertical or horizontal direction using the process of FIG. 10.
[0126] The above-mentioned vertical unit boundary may have a fixed length in the vertical direction, and multiple vertical unit boundaries may not overlap in the vertical direction. The above-mentioned horizontal unit boundary may have a fixed length in the horizontal direction, and multiple horizontal unit boundaries may not overlap in the horizontal direction.
[0127] The length of the vertical unit boundary and the length of the horizontal unit boundary may be defined as the same value in the encoder / decoder. The length of the vertical unit boundary and the length of the horizontal unit boundary may have multiple values of N pixels. For example, the length of the vertical unit boundary and the length of the horizontal unit boundary may be lengths that are multiples of 4 pixels, such as 4 pixels or 8 pixels.
[0128] Based on the direction of the current unit boundary, the area that can be referenced during the entire deblocking filtering process and the area where pixel values can be changed through deblocking filtering can be determined.
[0129] In one embodiment, when the current unit boundary is in the vertical direction, the left area of the current unit boundary is an area that can be referenced before the deblocking filtering process, and the right area of the current unit boundary may be an area where pixel values can be changed by performing deblocking filtering.
[0130] In one embodiment, when the current unit boundary is in the vertical direction, among the left regions of the current unit boundary, some regions adjacent to the left of the current unit boundary are regions where pixel values can be changed by performing deblocking filtering, and the remaining regions of the left region of the current unit boundary and the right region may be regions that can be referenced during the deblocking filtering process.
[0131] In one embodiment, when the current unit boundary is in the vertical direction, among the right regions of the current unit boundary, some regions adjacent to the right of the current unit boundary are regions where pixel values can be changed by performing deblocking filtering, and the remaining regions of the right region of the current unit boundary and the left region may be regions that can be referenced during the deblocking filtering process.
[0132] In one embodiment, when the current unit boundary is in the vertical direction, a portion of the left area of the current unit boundary adjacent to the left of the current unit boundary and a portion of the right area of the current unit boundary adjacent to the right of the current unit boundary are areas where pixel values can be changed by performing deblocking filtering, and the remaining areas of the left and right areas of the current unit boundary may be areas that can be referenced during the deblocking filtering process. Here, the sizes of the portion adjacent to the left and the portion adjacent to the right may be the same or different.
[0133] In one embodiment, when the current unit boundary is in the horizontal direction, the upper area of the current unit boundary is an area that can be referenced before the deblocking filtering process, and the lower area of the current unit boundary may be an area where pixel values can be changed by performing deblocking filtering.
[0134] In one embodiment, when the current unit boundary is in a horizontal direction, some of the upper regions of the current unit boundary adjacent to the top of the current unit boundary are regions where pixel values can be changed by performing deblocking filtering, and the remaining regions of the upper region of the current unit boundary and the lower region may be regions that can be referenced during the deblocking filtering process.
[0135] In one embodiment, when the current unit boundary is in a horizontal direction, among the lower regions of the current unit boundary, some regions adjacent to the bottom of the current unit boundary are regions where pixel values can be changed by performing deblocking filtering, and the remaining regions of the lower region of the current unit boundary and the upper region may be regions that can be referenced during the deblocking filtering process.
[0136] In one embodiment, when the current unit boundary is in the horizontal direction, a portion of the upper area of the current unit boundary adjacent to the top of the current unit boundary and a portion of the lower area of the current unit boundary adjacent to the bottom of the current unit boundary are areas where pixel values can be changed by performing deblocking filtering, and the remaining portions of the upper and lower areas of the current unit boundary may be areas that can be referenced during the deblocking filtering process. Here, the sizes of the portion adjacent to the top and the portion adjacent to the bottom may be the same or different.
[0137] In the above embodiments, the y-axis range of the left / right area of the current vertical unit boundary is the same as the range of the current vertical unit boundary, and the x-axis range may be a range that does not extend beyond other unit boundaries in the left / right direction.
[0138] In the above embodiments, the x-axis range of the upper / lower area of the current horizontal unit boundary is the same as the range of the current horizontal unit boundary, and the y-axis range may be a range that does not exceed other unit boundaries in the upper / lower direction.
[0139] Figure 9(b) may represent an arbitrary vertical unit boundary to be deblocked filtered by the process of Figure 10, and the left and right regions of the unit boundary.
[0140] If the current deblocking target boundary is the horizontal boundary of a superblock or the vertical boundary of a tile, an asymmetric deblocking filter with different numbers of left / right or top / bottom taps relative to the boundary may be applied.
[0141] In one embodiment, when the current deblocking target boundary is a vertical boundary of a superblock, the number of taps in the left deblocking filter and the number of taps in the right deblocking filter may differ based on the boundary.
[0142] In one embodiment, when the current deblocking target boundary is a horizontal boundary of a superblock, the number of taps of the upper deblocking filter and the number of taps of the lower deblocking filter may differ based on the boundary.
[0143] For example, the difference in the number of taps between the two deblocking filters can be n, and n can be a natural number such as 1, 2, 3, 4, 5.
[0144] The filtering parameter derivation step of FIG. 10 can derive one or more parameters that can be used in the process of determining elements related to filtering of unit boundaries and performing filtering in subsequent steps of FIG. 10.
[0145] The above parameters can be derived based on the deblocking filtering strength indices of one or more surrounding regions of the current unit boundary. There may be one or more types of parameters, and the process of performing the mapping may be defined differently depending on the type. For a single type, one or more parameters can be derived depending on the location where the deblocking filtering strength is extracted.
[0146] In one embodiment, the value or type of the parameter may be determined differently depending on the type of one or more surrounding areas of the current unit boundary.
[0147] In one embodiment, the parameter may be derived based on the deblocking filtering strength index of one or more surrounding regions of the current unit boundary.
[0148] The location for extracting the deblocking filtering strength may be the left or upper area of the unit boundary, the right or lower area of the unit boundary, the left and right areas of the unit boundary, or the upper and lower areas of the unit boundary. The value of the parameter may be derived depending on the type of the parameter and the location of the area to be referenced to derive the parameter. For example, the value of the parameter may be derived through the process of Equation (12).
[0149] The parameter values derived depending on the extraction location of the deblocking filtering intensity may differ based on the unit boundary.
[0150] One or more factors determining the deblocking filtering strength index may include partial values of quantization parameters, a prediction mode, detailed information according to each prediction mode, whether residual signals are restored, the direction of deblocking filtering, and a segment-unit filtering strength offset. Each of the above factors may be mapped to a predetermined value, and the deblocking filtering strength index may be derived by summing the values mapped to each factor. The partial value of the quantization parameter, or the current region, may be all or part of the quantization parameter value used to perform inverse quantization in the inverse quantization unit of FIG. 1. The said partial value may be the sum of one or more basic quantization parameters or difference quantization parameters used during the process in which the quantization parameter is restored in the inverse quantization unit of FIG. 1.
[0151] If the area referenced to derive the deblocking filtering strength index consists of two or more of the left, right, bottom, and top areas of the current unit boundary, the deblocking filtering strength can be derived by summing the representative values (e.g., average values) of the values mapped to each element extracted from each area. Alternatively, for example, the final deblocking filtering strength value can be derived by averaging (or weighted average) the deblocking filtering strength values derived from each area.
[0152] Formula (12) can be a parameter for an arbitrary type and an arbitrary decryption information extraction location, and Mapping_Function type can be a mapping function based on an arbitrary type, and DF_strength area may be an index mapped to a deblocking filtering strength based on an arbitrary decryption information extraction location, and offset type and shift typecan be an offset value and the number of shift operations depending on the type. Depending on the type, the offset value may be 0 or excluded from the operation.
[0153] Formula (12)
[0154]
[0155] The filtering permission determination step of FIG. 10 can determine whether to allow deblocking filtering to be performed or to omit deblocking filtering for any unit boundary. If deblocking filtering is allowed, it may mean that deblocking filtering can be performed on boundaries included in the unit boundary, and if deblocking filtering is not allowed, it may mean that deblocking filtering is not performed on all boundaries included in the unit boundary, and the subsequent process of FIG. 10 may be omitted.
[0156] One or more conditions used in the process of determining whether filtering is allowed for unit boundaries may be defined identically in the encoder / decoder. The above conditions may be classified into one or more categories.
[0157] <Condition Category 1>: Condition Category 1 may include conditions for determining the possibility of blocking phenomena due to the compression process at the current unit boundary, and may include, for example, the following conditions 1, 2, 5, 7, 9, and 6.
[0158] Condition 1: Is the current unit boundary the boundary of any transformation unit or sub-transformation unit?
[0159] Condition 2: Is the current unit boundary an arbitrary prediction unit or sub-prediction unit boundary?
[0160] Condition 5: Was the residual signal received and restored from one or more of the two regions of the unit boundary?
[0161] Condition 7: Is the difference between the sets of predicted information between screens in both regions of the current unit boundary greater than or equal to the threshold?
[0162] Condition 7 may be determined to be true if one or more of the detailed conditions (Conditions 7-1 to 7-3) dependent on Condition 7 are judged and all are satisfied. The above-mentioned inter-frame prediction information set may include motion vectors, reference frame indices, weights, etc., used to generate inter-frame prediction signals in the inter-prediction unit of FIG. 1, and there may be up to two inter-frame prediction information sets in one area. For each of the two areas, the inter-frame prediction information set to be used in the judgment process of Condition 7 can be selected, and the selection process can be performed as follows. In the process of generating an inter-frame prediction signal of any of the two areas in the inter-prediction unit of FIG. 1, if a final prediction signal is derived by weighted summing prediction signals generated from two or more inter-frame prediction information sets, or from one or more inter-frame prediction information sets and one or more intra-frame prediction information sets, the inter-frame prediction information set can be selected based on the weights used in the weighted summing process. The detailed execution process of the selection process for the inter-frame prediction information set of the arbitrary area may be as follows. A region within the current region where the distance from a unit boundary is less than or equal to a threshold can be called a boundary-adjacent region, and the sum of the weights included in the range of the boundary-adjacent region can be calculated from the weight matrix contained in each inter-screen prediction information set. If the sum derived from an arbitrary weight matrix is greater than or equal to the threshold, the corresponding inter-screen prediction information set may be used in Condition 7, and if it is less than the threshold, the corresponding inter-screen prediction information set may not be used in Condition 7. Alternatively, if there are two or more inter-screen prediction information sets, and the ratio of the sums derived from each weight matrix is greater than or equal to the threshold, the inter-screen prediction information set with the smaller sum may not be used in Condition 7.
[0163] Figure 17 illustrates an example of the selection result of a set of inter-screen prediction information in the left region of an arbitrary vertical unit boundary.
[0164] As screening is performed, an example can be shown where the number and content of the sets of prediction information between the screens of the left and right regions of the current unit boundary become identical.
[0165] Condition 7-1: Are the number of cross-screen prediction information sets the same in both regions of the current unit boundary?
[0166] Condition 7-2: Is the difference in reference frame indices within the inter-frame prediction information set having the same index in both regions of the current unit boundary below a threshold, or is the same?
[0167] Condition 7-3: Is the difference in motion vectors within the set of prediction information between frames having the same index in both regions of the current unit boundary less than or equal to a threshold?
[0168] Condition 9: In the process of generating a prediction signal of a pixel adjacent to the unit boundary among the two regions of the current unit boundary, was the prediction signal correction performed through filtering having low-pass characteristics? The prediction signal may have been generated in the intra prediction unit or the inter prediction unit of FIG. 1.
[0169] Condition 6: Is the difference between the quantization parameters of the two regions of the current unit boundary greater than or equal to a threshold?
[0170] <Condition Category 2> : Condition Category 2 may include conditions for determining the degree of compression degradation in each area, and may include, for example, the following conditions 3 and 4.
[0171] Condition 3: The first and second parameters derived from the combination of decoding parameters of the left or upper region among the two regions of the current unit boundary are not zero.
[0172] Condition 4: The first and second parameters derived from the combination of decoding parameters of the right or bottom region among the two regions of the current unit boundary are not zero.
[0173] <Condition Category 3>: Condition Category 3 may include conditions for determining the possibility that the current unit boundary is a major actual boundary within the frame, and may include, for example, the following conditions 8 and 10.
[0174] Condition 8: Are the segment indices of both regions of the current unit boundary the same? The above segment index may be the segment index restored in the coding unit layer information decoding unit of FIG. 1 for each coding unit including both regions.
[0175] Condition 10: If the segment indices of both regions of the current unit boundary are identical, the prediction mode included in the coding parameter set of the corresponding segment refers to a specific single mode, and the residual signal coding mode indicates that residual signal coding is not performed
[0176] One or more conditions defined in the decoder can be evaluated, and depending on the evaluation result, whether filtering of the current unit boundary is allowed can be determined. The evaluation result of the above conditions for determining that the filtering status is 'allowed' may be defined in the decoder and may be defined as one of all combinations of the type of condition to be evaluated, the truth / falsity of each condition, and the evaluation order. For example, the evaluation result of the above conditions for determining that the filtering status is 'allowed' may be defined as one of the following.
[0177] Judgment Result 1: Condition 1 or Condition 2 is true, Condition 3 or Condition 4 is true, and Condition 5 is true or Condition 5 is false while Condition 2 is true and Condition 7 is true
[0178] Judgment Result 2: Includes Judgment Result 1, and Condition 9 is false
[0179] Judgment Result 3: Contains Judgment Result 1, Condition 8 is true, and Condition 9 is false
[0180] Judgment Result 4: Including Judgment Result 1 and Condition 10 is true
[0181]
[0182] The step of deriving the maximum number of pixels to be filtered in Fig. 10 can derive how many pixels, starting from adjacent pixels of the current unit boundary, will be subjected to deblocking filtering.
[0183] FIG. 18 illustrates an example of the process of the step of deriving the maximum number of pixels to be filtered.
[0184] The maximum number of pixels to be filtered in each area on both sides of the current unit boundary can be derived through the process of FIG. 18, and each step may be omitted. Deriving the maximum number of pixels to be filtered through the process of FIG. 18 can be performed in units of multiple pixel lines within the area or in units of a single pixel line. The multiple pixel lines can be referred to as a pixel line group and, for example, may include all pixel lines in any area.
[0185] The step of deriving the effective length for each region of FIG. 18 can derive the effective length of each region on both sides of the current unit boundary. In each region, for each pixel line or pixel line group, the minimum value of one or more of the following values (i) the width or height value of the current region and ii) a value based on an arbitrary weighted sum matrix of the prediction unit containing the pixel line or pixel line group) can be designated as the effective length.
[0186] i) Width or height value of the current area
[0187] If the current unit boundary is in the vertical direction, the width value of the current area is used, and if it is in the horizontal direction, the height value of the current area can be used.
[0188] The width or height value of the current region may be equal to the minimum value between the width or height of the prediction unit and the transformation unit containing the current region.
[0189] The width or height value of the current area can be derived as the same value for all pixel lines.
[0190] ii) Values based on an arbitrary weighted sum matrix of prediction units containing pixel lines or groups of pixel lines
[0191] Values based on an arbitrary weighted sum matrix of a prediction unit containing a pixel line or a group of pixel lines can be derived by the following sub-procedure.
[0192] If there is one or more weighted sum matrices in the prediction unit, the weighted sum matrix with a larger weight value corresponding to pixel locations adjacent to the current unit boundary in the current pixel line or pixel line group can be selected.
[0193] In the selected weighted sum matrix, weights whose weight values are greater than or equal to a threshold can be selected in the region corresponding to the current pixel line or pixel line group position.
[0194] For each pixel line, a continuous pixel length value with selected weights can be derived starting from a pixel position close to the unit boundary. When FIG. 18 is being performed on a pixel line group, the minimum value among the values derived from each pixel line can be selected.
[0195] Figure 19 illustrates an example of a weight matrix of a prediction unit to which an arbitrary group of pixel lines in the left region belongs.
[0196] In the weight matrix, weights marked with 'o' may indicate that they are above a threshold. In each pixel line, there are 2, 3, 4, and 6 consecutive weights above the threshold, respectively, and among them, the minimum value of 2 may be the value derived from the current pixel line group.
[0197] The effective length adjustment step for each region in Fig. 18 can adjust the effective length derived through the effective length derivation step for each region in Fig. 18 in each region. The effective length of each region can be changed to the minimum value among the effective lengths derived in each region.
[0198] FIG. 11 illustrates one example of the maximum number of pixels to be filtered.
[0199] The step of mapping the maximum number of pixels to be filtered in FIG. 18 can derive the maximum number of pixels to be filtered that are pre-mapped to the effective length of each region. The maximum number of pixels to be filtered that are mapped to the effective length that is similarly pre-defined in the encoder / decoder may be defined, for example, as in FIG. 11.
[0200] FIG. 12 illustrates an example of the maximum number of pixels to be filtered derived by the process of FIG. 18 from an arbitrary number of unit boundaries.
[0201] FIG. 12(a) may represent a case where the region-specific effective length adjustment step of FIG. 18 is performed at each unit boundary so that the maximum number of pixels to be filtered in both regions is the same, and FIG. 12(b) may represent a case where the region-specific effective length adjustment step of FIG. 18 is omitted at each unit boundary so that the maximum number of pixels to be filtered in both regions may be different. FIG. 12(c) may represent a case where the maximum number of pixels to be filtered is derived in pixel line units, and the region-specific effective length adjustment step of FIG. 18 is omitted at each unit boundary so that the maximum number of pixels to be filtered in both regions may be different. Additionally, in each right region of unit boundaries 0 to 3 of FIG. 12(c), an example may be shown where the maximum number of pixels to be filtered is derived differently in pixel line units based on the weighted sum matrix of the prediction unit including each right region.
[0202] The step of deriving the number of pixels to be filtered in FIG. 10 may derive the number of pixels to be filtered in pixel line units for both areas of the sub-boundary within the unit boundary. The sub-boundaries may not overlap each other and may have a length of 1 or more. The number of pixels to be filtered may be a value less than or equal to the maximum number of pixels to be filtered for each pixel line of each area on both sides of the current unit boundary in the step of deriving the maximum number of pixels to be filtered in FIG. 10. The number of pixels to be filtered for both areas of the sub-boundary may be forced to be the same value or different values may be allowed.
[0203] FIG. 13 illustrates an example of a result in which the number of filtering target pixels in each area on both sides is derived for each sub-boundary.
[0204] FIG. 13(a) may illustrate an example where the maximum number of pixels to be filtered is forced to have the same value in both regions and is derived in pixel line group units, and the number of pixels to be filtered is also forced to have the same value in both regions. FIG. 13(b) may illustrate an example where the maximum number of pixels to be filtered is allowed to have different values in both regions and is derived in pixel line group units, and the number of pixels to be filtered is also allowed to have different values in both regions. FIG. 13(c) may illustrate an example where the maximum number of pixels to be filtered is allowed to have different values in both regions and is derived in pixel line units, and the number of pixels to be filtered is also allowed to have different values in both regions.
[0205] For each pixel in each region on both sides of the sub-boundary, it is determined whether a defined condition is satisfied, and starting from a pixel adjacent to the sub-boundary, the number of consecutive pixels satisfying the said condition can be designated as the number of pixels to be filtered. The said specific condition may be a criterion regarding the trend and degree of change of pixel values in a specific range among the regions on both sides of the sub-boundary, and the trend and degree of change of pixel values may be derived by a combination of convolution operations between one or more pixels in the specific range and a specified filter coefficient. The trend and degree of change of pixel values may be, for example, second derivatives.
[0206] A set of conditions including multiple types of specific conditions may be defined identically in the decoding / coding unit, and multiple conditions within the set of conditions may include, for example, condition 1, condition 2, condition 3, and condition 4, each of which may be defined by formulas (13), (14), (15), and (16). Depending on the distance between the pixel to be filtered and the sub-boundary, and whether the current pixel is located up, down, left, or right relative to the sub-boundary, the type of condition to be determined within the set of conditions and parameters within the conditions may be determined.
[0207] Among formulas (13), (14), (15), and (16), p[i] may be the value of the pixel with index i among the pixels of both sub-boundary regions, and the index of the first pixel of the right or bottom region relative to the sub-boundary may be 0, and as the distance to the right or bottom relative to the sub-boundary increases, the index may increase monotonically, and as the distance to the left or top relative to the sub-boundary increases, the index may decrease monotonically.
[0208] FIG. 14 illustrates an example of an index assigned to pixels in both sub-boundary regions.
[0209] In formulas (13), (14), (15), and (16), a, b, and c may be fixed to a specific index regardless of pixel index i, which is currently determining whether to filter. The value of a can be, for example, 1 or -2, and the values of b and c can be, for example, -1 or 0. Among formulas (13), (14), (15), and (16 , , may be the first parameter or the second parameter derived in the filtering parameter derivation step of FIG. 10. weight among equations (13), (14), (15), (16). i A value based on pixel index i, which is determining whether to filter, may be defined, and can be a fixed specific value.
[0210] Depending on the distance between the current pixel and the sub-boundary for which filtering is to be determined, the combination of the type of condition used in the determination process and whether the condition for determining whether filtering is true can be as follows. The process of determining whether filtering is true for each pixel can be performed independently through the following process. Alternatively, the determination of whether filtering is true for two pixels with the same distance from the sub-boundary (two pixels with indices i and -i-1 in Fig. 14) can be performed dependently on each other's results. For example, if the filtering status is determined to be true for both two pixels with the same distance from the sub-boundary through the process below, the filtering status for those two pixels can be finally determined to be true; and if the filtering status for even one pixel is determined to be false, the filtering status for those two pixels can be finally determined to be false. Alternatively, for pixels whose distance from the sub-boundary is greater than a certain value, the filtering status of a representative pixel among a specific number of consecutive pixels may be the filtering status for those consecutive pixels.
[0211] Figure 15 illustrates an example of a judgment condition for a specific pixel.
[0212] If the distance between the current pixel and the sub-boundary for which filtering is to be determined is less than or equal to the first threshold, it may be determined as a target for filtering if Condition 1 (Equation (13)) is true. As a detailed condition, for example, if both the case where a=1 and the case where a=-2 in Condition 1 are satisfied, it may be determined as a target for filtering. For example, in Condition 1 may be the second parameter derived in the filtering parameter derivation step of FIG. 10. For example, weight in condition 1 i The value of may be 1. FIG. 15 (a) may show an example of a judgment condition for a pixel whose distance from the sub-boundary is less than or equal to the first threshold when the value of the first threshold is 1.
[0213] If the distance between the current pixel and the sub-boundary for which filtering is to be determined exceeds the first threshold and is less than or equal to the second threshold, and if both Condition 1 (Equation (13)) and Condition 2 (Equation (14)) are true, it may be determined as a target for filtering. As a detailed condition, for example, if both the case where a=1 and the case where a=-2 in Condition 1 are satisfied, it may be determined as a target for filtering. For example, in Condition 1 may be the second parameter derived in the filtering parameter derivation step of FIG. 10. For example, weight in condition 1 i The value of can be 1 / 4. For example, in condition 2, b=-1 and c=0. For example, in condition 2 may be the first parameter derived in the filtering parameter derivation step of FIG. 10. For example, in condition 2, weight iThe value of can be 4. FIG. 15 (b) may show an example of a judgment condition for a pixel whose distance from the sub-boundary is greater than the first threshold and less than or equal to the second threshold when the value of the first threshold is 1 and the value of the second threshold is 2.
[0214] If the distance between the current pixel and the sub-boundary, for which filtering is to be determined, exceeds the second threshold, then both Condition 1 (Equation (13)) and Condition 2 (Equation (14)) are true, and if the current pixel is located to the left or top of the sub-boundary, Condition 4 (Equation (16)) is satisfied, and if the current pixel is located to the right or bottom of the sub-boundary, Condition 3 (Equation (15)) is satisfied, then it may be determined as a target for filtering. As a detailed condition, for example, if both the case where a=1 and the case where a=-2 in Condition 1 are satisfied, then it may be determined as a target for filtering. For example, in Condition 1 may be the second parameter derived in the filtering parameter derivation step of FIG. 10. For example, in condition 2, b=-1 and c=0. For example, in condition 2 may be the first parameter derived in the filtering parameter derivation step of FIG. 10. For example, of conditions 3 and 4. may be a second parameter derived in the filtering parameter derivation step of FIG. 10. FIG. 15 (c) may show an example of a judgment condition for a pixel whose distance from the sub-boundary exceeds the second threshold when the value of the second threshold is 2.
[0215] Formula (13)
[0216]
[0217] Formula (14)
[0218]
[0219] Formula (15)
[0220]
[0221] Formula (16)
[0222]
[0223] The filtering step of Fig. 10 can perform deblocking filtering on pixels determined to be filtered in both sub-boundary regions.
[0224] In the filtering process, an offset value can be derived from one or more specified pixel values within both areas of the sub-boundary, and the offset value can be added to the value of the pixel to be filtered. The same offset value can be added to pixels that are the same distance from the sub-boundary.
[0225] FIG. 16 illustrates an example in which the indices of the pixels to be filtered are assigned based on sub-boundaries.
[0226] A pixel with index i and a pixel with index (-i-1) may indicate that they are the same distance from the sub-boundary. Formula (17) may represent a process of performing deblocking filtering on pixels located in the left or upper region relative to the sub-boundary, and Formula (18) may represent a process of performing deblocking filtering on pixels located in the right or lower region relative to the sub-boundary.
[0227] The above offset value can be derived through the following process and can be expressed, for example, by formula (19).
[0228] The first offset value may be the difference between two pixel values that are located in different directions relative to the sub-boundary and are the same distance from the sub-boundary.
[0229] The second offset value can be derived by weighted summing one or more first offset values derived with different distances. For example, the second offset included in FIG. 19 may be derived by weighted summing the first offset derived from two pixel values (pixel with index 0 and pixel with -1) with a distance of 1 from the sub-boundary, and two pixel values (pixel with index 1 and pixel with -2) with a distance of 2 from the sub-boundary.
[0230] A third offset can be derived by performing clipping on the second offset value. The upper threshold of the clipping process may be, for example, a value obtained by multiplying the first parameter derived in the filtering parameter derivation step of FIG. 10 by a weight, and the weight may be a value corresponding to the width or height of the transformation unit or prediction unit containing the pixel currently to be filtered. The lower threshold may be a negative value that has the same absolute value as the upper threshold.
[0231] A final offset value to be used can be derived by multiplying the third offset by a weight. The weight can be derived by multiplying one or more weights. The one or more weights may be, for example, a weight corresponding to the width or height of a transformation unit or prediction unit containing the current filtering target pixel, or a weight corresponding to the distance between a sub-boundary and the current pixel.
[0232] If the process of deriving the n-th offset is omitted, the n-1th offset can be used as the input to the process of deriving the n+1th offset.
[0233] Formula (17)
[0234]
[0235] Formula (18)
[0236]
[0237] Formula (19)
[0238]
[0239] The exemplary methods of the present disclosure are described as a series of operations for clarity of description, but this is not intended to limit the order in which the steps are performed, and if necessary, each step may be performed simultaneously or in a different order. To implement the method according to the present disclosure, additional steps may be included in addition to the steps exemplified, steps excluding some steps and including the remaining steps, or steps excluding some steps and including additional steps.
[0240] The various embodiments of the present disclosure are not intended to list all possible combinations but to describe representative aspects of the present disclosure, and the matters described in the various embodiments may be applied independently or in combination of two or more.
[0241] In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, it may be implemented by one or more ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), general processors, controllers, microcontrollers, microprocessors, etc.
[0242] The scope of the present disclosure includes software or machine-executable instructions (e.g., operating system, application, firmware, program, etc.) that enable an operation according to a method of various embodiments to be executed on a device or computer, and a non-transitory computer-readable medium on which such software or instructions, etc. are stored and executable on a device or computer.
[0243] The present disclosure may be available in the video codec industry for performing deblocking filtering on video.
Claims
1. A step of obtaining a restored current picture by predicting the current picture by referring to a picture identical to the current picture or a different picture, wherein the restored current picture includes restored pixels; and The method includes the step of performing deblocking filtering on restored pixels in the surrounding area of the current unit boundary at the current unit boundary of a specific unit of the current picture, wherein An image decoding method characterized in that the above-mentioned current unit boundary is divided into a vertical boundary or a horizontal boundary depending on the boundary direction.
2. In Paragraph 1, An image decoding method characterized in that, in response to the fact that the current unit boundary is a vertical boundary, the surrounding area of the current unit boundary includes the right area and the left area of the current unit boundary.
3. In Paragraph 1, An image decoding method characterized in that, in response to the fact that the current unit boundary is a horizontal boundary, the surrounding area of the current unit boundary includes the upper area and the lower area of the current unit boundary.
4. In Paragraph 1, A video decoding method characterized in that whether or not to perform the above-mentioned deblocking filtering is determined by a flag signaled at the layer level of the above-mentioned specific unit.
5. In Paragraph 1, An image decoding method characterized in that whether to perform deblocking filtering at the boundary of the specific unit is determined for each unit boundary of the specific unit.
6. In Paragraph 1, An image decoding method characterized in that the filter attributes of the deblocking filtering applied to both surrounding regions based on the above current unit boundary are different from each other.
7. In Paragraph 1, An image decoding method characterized in that the filtering strength of the above deblocking filtering is determined according to the extraction position of the filtering strength of the above deblocking filtering.
8. In Paragraph 7, An image decoding method characterized in that, in response to the fact that the current unit boundary is a vertical boundary, the filtering strength of the deblocking filtering extracted from the right region of the current unit boundary and the filtering strength of the deblocking filtering extracted from the left region of the current unit boundary are different from each other.
9. In Paragraph 7, A video decoding method characterized in that, in response to the fact that the current unit boundary is a horizontal boundary, the filtering strength of the deblocking filtering extracted from the upper region of the current unit boundary and the filtering strength of the deblocking filtering extracted from the lower region of the current unit boundary are different from each other.
10. In Paragraph 1, A video decoding method characterized in that the above-mentioned specific unit includes a large coding unit.
11. A step of obtaining a restored current picture by predicting the current picture by referring to a picture identical to the current picture or a different picture, wherein the restored current picture includes restored pixels; and The method includes the step of performing deblocking filtering on restored pixels in the surrounding area of the current unit boundary at the current unit boundary of a specific unit of the current picture, wherein An image encoding method characterized in that the above-mentioned current unit boundary is divided into a vertical boundary or a horizontal boundary depending on the boundary direction.
12. A non-transient computer-readable recording medium storing a bitstream generated by a video encoding method, The above encoding method is, A step of obtaining a restored current picture by predicting the current picture by referring to a picture identical to the current picture or a different picture, wherein the restored current picture includes restored pixels; and The method includes the step of performing deblocking filtering on restored pixels in the surrounding area of the current unit boundary at the current unit boundary of a specific unit of the current picture, wherein A non-transient computer-readable recording medium characterized in that the above-mentioned current unit boundary is divided into a vertical boundary or a horizontal boundary depending on the boundary direction.
Citation Information
Patent Citations
Magnetic contactor main contact automatic screw tightening device and method
KR1020210013853A
Organic electroluminescent materials and devices
KR1020220068169A
Order and payment system using tablet order, qr order and metaverse
KR1020250012453A
Soil nailing structure for reinforcing a slope and construction method using the same
KR1020260054974A
Method and device for encoding or decoding video
KR102553147B1