WO2020007747A1 - Deblocking of intra-reference samples - Google Patents

Deblocking of intra-reference samples Download PDF

Info

Publication number
WO2020007747A1
WO2020007747A1 PCT/EP2019/067419 EP2019067419W WO2020007747A1 WO 2020007747 A1 WO2020007747 A1 WO 2020007747A1 EP 2019067419 W EP2019067419 W EP 2019067419W WO 2020007747 A1 WO2020007747 A1 WO 2020007747A1
Authority
WO
WIPO (PCT)
Prior art keywords
checkpoint
reference samples
filter
neighbouring
determining
Prior art date
Application number
PCT/EP2019/067419
Other languages
French (fr)
Inventor
Zhi Zhang
Kenneth Andersson
Rickard Sjöberg
Jacob STRÖM
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Publication of WO2020007747A1 publication Critical patent/WO2020007747A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Definitions

  • the present disclosure relates generally to video encoding and decoding, and more particularly to the use of a deblocking filter to improve the quality and visual appearance of video content rendered to the user.
  • Digital video is a vital part of peoples’ lives, especially with respect to the media and entertainment industry.
  • the content of the video is encoded according to one or more video compression standards known as“video codecs,” and transmitted to a remote device.
  • video codecs video compression standards
  • a decoder at the remote device decodes the encoded video for rendering to the user.
  • filters can be applied during the decoding process to improve the quality and visual appearance of the decoded video content.
  • the process of video encoding facilitates delivery of the video content to a remote device in at least two ways. First, it compresses the digital video content. This reduces the amount of bandwidth required for transmitting the video content without substantively negatively affecting the quality of the video. Second, it converts the digital video content from one format into another format. This conversion process, sometimes referred to as “transcoding,” ensures that the video content is compatible with the different remote devices.
  • Embodiments of the present disclosure reduce or eliminate internal edges along an intra-prediction direction, in which the edges originate from blocking artifacts in reference samples, by applying a deblocking filter to intra-reference samples. Additionally, the present embodiments provide both intra-reference sample deblocking filter decisions and intra-reference sample deblocking filter operations, and are operable to be implemented at an encoder or a decoder.
  • the present disclosure provides a method of applying a deblocking filter to intra-reference samples.
  • the method comprises setting a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU). Then, based on the step-size N, the method comprises: • setting a first reference sample in a top-left corner of the current CU to be a first checkpoint;
  • the method comprises:
  • the method calls for selecting deblocking filters.
  • the method further comprises:
  • the method comprises filtering the reference samples neighbouring the first, second, and third checkpoints using the selected first, second, and third deblocking filters, respectively, and determining an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters.
  • the present disclosure provides an encoder comprising communications interface circuitry and a processing circuit operatively connected to the communications interface circuitry.
  • the processing circuit is configured to set a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU). Once the step-size N is set, the processing circuit sets
  • the processing circuit is configured to:
  • the processing circuit selects deblocking filters with which to filter the reference samples.
  • the processing circuit is configured to:
  • the processing circuit is configured to filter the reference samples neighbouring the first, second, and third checkpoints using the selected first, second, and third deblocking filters, respectively, and determine an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters.
  • the present disclosure provides a decoder comprising communications interface circuitry and a processing circuit operatively connected to the communications interface circuitry.
  • the processing circuit is configured to set a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU). Once the step-size N is set, the processing circuit sets:
  • the processing circuit is configured to:
  • the processing circuit selects deblocking filters with which to filter the reference samples.
  • the processing circuit is configured to:
  • the processing circuit is configured to filter the reference samples neighbouring the first, second, and third checkpoints using the selected first, second, and third deblocking filters, respectively, and determine an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters.
  • Figure 1 illustrates an example of reference samples for an 8x8 CU according to one embodiment.
  • Figures 2A-2B illustrate examples of blocking artifacts along an intra-prediction direction according to one embodiment of the present disclosure.
  • Figures 3A-3B illustrate examples of a checkpoint and reserved samples according to one embodiment of the present disclosure.
  • Figure 4 illustrates an example of offset sizes based on whether a top-left part is filtered according to one embodiment of the present disclosure.
  • Figures 5A-5C are flow diagrams illustrating a method for applying a deblocking filter to intra-reference samples according to embodiments of the present disclosure.
  • Figures 6A-6C are flow diagrams illustrating methods for determining whether overlap occurs between reference samples according to embodiments of the present disclosure.
  • Figures 8A-8B illustrates a decision process for 5 and 7 samples deblocking on respective sides of a boundary according to one embodiment of the present disclosure.
  • Figures 9A-9B illustrate examples of subjective improvement when applying intra- reference sample deblocking according to one embodiment of the present disclosure.
  • Figure 10 is a schematic block diagram illustrating components of an encoder configured according to one embodiment of the present disclosure.
  • Figure 1 1 is a schematic block diagram illustrating some functional components of an encoder configured according to one embodiment of the present disclosure.
  • Figure 12 is a schematic block diagram illustrating components of a decoder configured according to one embodiment of the present disclosure.
  • Figure 13 is a schematic block diagram illustrating some functional components of a decoder configured according to one embodiment of the present disclosure.
  • Figure 14 is a system comprising a decoder and encoder configured according to one embodiment of the present disclosure.
  • a video sequence comprises a series of images. Each image comprises one or more components with each component comprising a two-dimensional rectangular array of sample values. Components are sometimes referred to as“color components.” Generally, an image in a video sequence comprises three components; one luma component Y and two chroma components Cb and Cr. Sample values for the luma component Y are luma values, while sample values for the chroma components Cb and Cr are chroma values. However, images can have other components. Examples of such components include, but are not limited to, Y’CbCr components, YUV components, and ICtCp components. As above, Y’ is a luma component and Ct, Cp, U, and V are all chroma components.
  • each of the aforementioned luma components Y, Y’, and I are referred to herein as ⁇ ” or simply“luma.”
  • the dimensions of the chroma components also vary with the format of the video content. For example, in a 4:2:0 format, which is a common format, the dimensions of the chroma components are smaller than the luma components by a factor of two in each dimension. For example, consider a High Definition (HD) image having a 1920x1080 pixel resolution.
  • HD High Definition
  • the luma component in the HD image would have a dimension of 1920x1080 pixels, while each of the chroma components would have a dimension of 960x540 pixels.
  • the chroma components are not always smaller than the luma components. In a 4:4:4 format, for example, the size of the chroma components is the same as that of the luma components.
  • each component is divided into blocks.
  • Each block comprises one two-dimensional array of samples and is inserted into a series of blocks called a video bitstream.
  • the image is divided into units covering a particular area of the image.
  • Each unit comprises all of the blocks from all of the components comprising the particular area, and each block belongs fully to one unit. Examples of such units are“macroblocks” defined in the widely-used H.264 video codec standard and Coding Units (CUs) defined in the High Efficiency Video Coding (HEVC) video codec standard.
  • CUs Coding Units
  • HEVC High Efficiency Video Coding
  • a CTU comprises an NxN block of luma samples and two MxM blocks of corresponding chroma samples.
  • a CTU defined in HEVC is similar to the macroblocks defined in H.264 and earlier video codec standards; however, CTUs are also distinguished from H.264 macroblocks in that the size of the CTUs is configurable. In most cases, the size of a CTU in HEVC is set to 64x64 luma samples.
  • Each CTU can be recursively quadtree split.
  • the root of the quadtree is then associated with the CTU and the quadtree is split until a“leaf” or“Coding Unit” (CU) is reached.
  • CU Cosmetic Unit
  • the particular manner of splitting each CTU is also conveyed to a receiving device in the video bitstream.
  • a CU according to the HEVC standard always comprises a luma block having equal height and width. Additionally, the CU is a root node of two other trees, a prediction tree comprising prediction units (PUs) as leaves, and a transform tree comprising transform units (TUs) as leaves - each of which can be utilized in an HEVC-compliant decoding process. Particularly, some decoding processes in HEVC are performed at the CU level, some are performed at the PU level, and some are performed at the TU level.
  • PUs prediction units
  • TUs transform units
  • discontinuities between PUs and between TUs there are discontinuities between PUs and between TUs. Such discontinuities, which form as sharp edges between the PUs and TUs, decrease the visual quality of the video.
  • the boundaries between TUs and PUs are filtered using a deblocking filter.
  • the deblocking filter smooths the sharp edges thereby improving the visual appearance of the video when rendered to the end user.
  • prediction processes for a PU in HEVC “intra-prediction” and“inter-prediction.” Intra-prediction reduces spatial redundancy using only predictions from previously decoded samples of the current picture.
  • Inter-prediction reduces temporal redundancy and uses previously decoded reference pictures to form the prediction.
  • the intra-prediction process in HEVC predicts a PU based on spatial extrapolation of reference samples from previously decoded CUs of the same (i.e., current) picture.
  • the PU width is equal to w and the PU height is equal to h
  • the total number of reference samples are equal to 2 * w + 2 * h + 1.
  • Figure 1 illustrates an example of reference samples r for an 8x8 current PU 10.
  • the corresponding reference samples r are padded from the nearest available left- bottom or right-top reference samples.
  • HEVC High Efficiency Video Coding
  • HEVC High Efficiency Video Coding
  • Each of the modes is indexed.
  • the mode having index 0 is known as the planar mode
  • the mode having index 1 is known as the DC mode.
  • the indices for the angular-prediction mode in HEVC range from 2 to 34.
  • a low-pass filter is used to smooth reference samples for some intra-prediction modes.
  • the filtered reference sample is derived from two neighboring reference samples and the current reference sample using filter coefficients [1 2 1] / 4.
  • the left-bottom and right-top reference samples are not filtered.
  • the low-pass filter is used for all directional intra-prediction modes except the vertical and horizontal modes.
  • the low-pass filter is not used for the 4 modes closest to the horizontal and vertical mode.
  • the low-pass filter is only used for diagonal modes. The low-pass filter is not used for 4 x 4 PUs.
  • Deblocking in HEVC is first applied on the vertical boundaries of reconstructed samples, and then on the horizontal boundaries of the reconstructed samples.
  • the boundaries can be either TU boundaries or PU boundaries.
  • the deblocking is performed on an 8x8 sample grid.
  • deblocking boundary strength parameter (BS) is set for each boundary.
  • the boundary strength BS is set equal to a value of 2. If not, it is determined whether a pair of blocks at the given PU boundary use inter-prediction and different reference frames, or have significantly different motion vectors. If the pair of blocks at the given PU boundary uses inter-prediction and different reference frames, or have significantly different motion vectors, the boundary strength BS is set equal to a value of 1. If not, it is determined whether at least one of the blocks at a given TU boundary has non-zero transform coefficients (e.g., code block flag (CBF) equal to 1 ). If so, the boundary strength BS is set equal to a value of 1.
  • CBF code block flag
  • This first set of checks may cause the boundary strength (BS) parameter to be set to a value greater than 0 to indicate that deblocking should be applied.
  • BS boundary strength
  • a check can be implemented for luma to determine that there are no natural structures on respective sides of the boundary.
  • gradient calculations are used on respective sides of the boundary using the following inequality:
  • the beta parameter value b is based on the quantization parameter for the block
  • pO, p1 , and p2 are samples on one side of the block boundary
  • qO, q 1 , and q2 are samples on the other side of the block boundary.
  • Chroma boundaries may always be filtered if one any of the neighboring blocks are intra-coded.
  • VVC Versatile Video Coding
  • JVET-J1001v1 The current draft of the VVC specification (i.e., - Versatile Video Coding (VVC) draft 1 JVET-J1001v1 ) defines a CTU similarly to a CTU defined in HEVC. However, there is a difference between the two. Specifically, VVC defines the CTU to have a size of 128x128 luma samples. Additionally, in VVC, the CTU can be split more flexibly such that the resulting CUs can comprise a rectangular luma block having a different height and width. Further, in VVC, there are no prediction trees as defined in HEVC. However, a CU in WC can implicitly be divided into a multiple of TUs.
  • VVC Versatile Video Coding
  • Implicit TUs can, however, only appear when the CU size has a width or height that is larger than the maximum transform size. If the CU size does not have a width or height that is larger than the maximum transform size, however, the CU has neither a prediction tree nor a transform tree.
  • Deblocking according to WC is based on the deblocking filter specified in the HEVC standard. However, VVC specifies that deblocking should first be applied to vertical CU boundaries and then to horizontal CU boundaries.
  • Figures 2A and 2B illustrate an example of blocking artifacts along the intra-prediction direction.
  • Figure 2A illustrates an example of blocking artifacts from the TL reference sample
  • Figure 2B illustrates an example of blocking artifacts from the reference samples r in a row above the current CU.
  • the CUs having boundary lines 20 are intra-predicted CUs
  • the CUs having boundary line 22 are inter-predicted CUs.
  • deblocking artifacts in previously decoded CUs can introduce blocking artifacts along the intra-prediction direction in a current CU.
  • the value discontinuity of reference samples cannot be eliminated by a [1 2 1] / 4 low-pass filter for intra-reference samples, as mentioned above.
  • Embodiments of the present disclosure reduce or eliminate internal edges along the intra-prediction direction originating from blocking artifacts in reference samples by applying a deblocking filter to intra-reference samples. Further, the present embodiments provide both intra-reference sample deblocking filter decisions and intra-reference sample deblocking filter operations, and are operable to be implemented at an encoder or at a decoder. Additionally, embodiments of the present disclosure can be applied to a single color component or to multiple or all color components. Examples of such color components include, but are not limited to, luma, Cb and Cr. Thus, embodiments of the present disclosure significantly reduce the discontinuities along the intra-prediction direction, thereby substantially improving the visual quality of a video stream rendered to a user.
  • the present embodiments provide a method for video encoding or decoding in which the boundaries in reference samples of intra-predicted CUs are filtered by an intra-reference sample deblocking filter.
  • the reference samples are divided to three parts:
  • checkpoint CP is a boundary between two reference samples r.
  • the boundary is a reference sample such as TL seen in Figure 1. In other embodiments, however, the boundary is the edges of two adjacent reference samples r.
  • embodiments of the present disclosure loop through all reference samples and apply a decision process to determine whether to apply a reference sample deblocking filter.
  • embodiments of the present disclosure start at a top-left reference sample TL and loop through the left-most column and top row reference samples.
  • the checkpoints CPs are interspersed along both the top-row and the left-most column of the CU.
  • N is greater than the number of samples to be filtered.
  • the evaluation result determines at least two things:
  • embodiments of the present disclosure are configured to determine whether a given reference sample“overlaps” with another reference sample.
  • overlap refers to a situation where a given reference sample has been, or is likely to be, filtered multiple times.
  • the filtering operation changes the content reference sample by removing edges, etc.
  • filtering the same sample again even though the filtering would be performed with respect to a different checkpoint, could possibly alter the changes already made by the first filtering operation.
  • Such“repeat” filtering operations are considered“overlap” and waste time and processing resources.
  • the loop step-size to a next checkpoint CP is set to be either N or 2 * N depending on (1 ) whether a previous checkpoint CP was filtered, and (2) whether filtering is to be applied to a current checkpoint CP. In cases where there are fewer than N samples on either side of a current checkpoint CP, there will be no filtering process on that checkpoint CP.
  • the checkpoint CP is the top-left reference sample TL.
  • the checkpoints CPs are the boundary between two reference samples r.
  • N reserved samples 34 to the left of the checkpoint CP and N reserved samples 38 to the right of the checkpoint CP For the left part - i.e., the top row - there are N reserved samples 34 to the left of the checkpoint CP and N reserved samples 38 to the right of the checkpoint CP.
  • the three above-identified process steps are applied once for each checkpoint.
  • the number of checkpoints CPs depends on the number of reference samples r, which in one embodiment, is given as CU width (w) + height (h). Therefore, in these cases, the three process steps can be applied a plurality of times until all checkpoints CPs have been evaluated.
  • the top-left part is processed first, followed by the left and top part.
  • the left part and top part may be processed in parallel.
  • whether or not to apply a filter the number of samples to be filtered, and an offset to the next checkpoint, which may vary to avoid filtering overlap, can be determined based on the process result of one checkpoint.
  • Figure 4 shows an offset example when processing an 8 x 8 CU such as CU 30 illustrated in Figures 3A and 3B, for example.
  • the number of N reserved samples 32, 34 is equal to 8.
  • a decoder or encoder may perform all or a subset of the following steps (the steps are not necessarily ordered).
  • Figures 5A-5C are flow diagrams illustrating a method 60, implemented in an encoder for applying a deblocking filter to intra-reference samples r in order to reduce or eliminate internal edges along an intra-prediction direction originating from blocking artifacts in the reference samples r.
  • a deblocking filter to intra-reference samples r in order to reduce or eliminate internal edges along an intra-prediction direction originating from blocking artifacts in the reference samples r.
  • embodiments of the present disclosure can be implemented in an encoder or a decoder.
  • method 60 can also be implemented in a decoder.
  • method 60 begins with the encoder setting a step-size N to control the granularity of checkpoints CP (box 62).
  • N is preferably set to a value that is a multiple of 4, such as 8.
  • the encoder sets top-left sample TL to be a first checkpoint CP (box 64).
  • the encoder determines whether to filter samples neighboring the checkpoint CP (box 66). If not, method 10 ends. Otherwise, the encoder determines which of a plurality of filters to use to filter the samples (box 68). As described later in more detail, the determination of which particular filter to utilize to implement the filtering according to the present embodiments is based on one or more filter decisions. Regardless of the particular filter selected, however, the encoder filters the reference samples r with the checkpoint CP being sample TL (box 70).
  • method 60 begins looping through one or more potential checkpoints CP on the top row ( Figure 5B) and the left column ( Figure 5C).
  • Figure 5B the top row
  • Figure 5C the left column
  • method 60 is described as if the samples in the top row are processed before the samples in the left column. However, this is for illustrative purposes only. Embodiments of the present disclosure can configure the device implementing method 60 to filter the samples in the left column before the samples in the top row, or alternatively, to filter the samples in both the top row and the left column in parallel.
  • the encoder begins by processing the top row of reference samples r.
  • the encoder first gets the next checkpoint CP in the top row (box 72). If no checkpoint CP is determined, method 60 begins processing the samples in the left column (see Figure 5C). If a checkpoint CP is determined, the encoder loops through the checkpoints CPs in the top row from left to right using the step size N.
  • the encoder then begins filtering the samples in the left column ( Figure 5C).
  • the encoder gets the next checkpoint CP in the left column (box 82). If no checkpoint CP is determined, method 60 ends. If a checkpoint CP is determined, however, the encoder loops through the checkpoints CPs in the left column from top to bottom using the step size N. Particularly, if filtering a given reference sample r neighboring a potential checkpoint CP is determined to overlap with a previously performed filtering of a reference sample r (box 84), no filtering is done for that potential checkpoint CP. Instead, the process returns to obtain the next checkpoint CP. If there is no overlap (box 84), however, the encoder determines whether to filter the reference samples r neighboring the checkpoint CP (box 86).
  • method 60 returns to get the next checkpoint CP. Otherwise, the encoder utilizes the filter decision process to determine which of the plurality of filters to use to filter the samples (box 88) and filters the reference samples r (box 90). The encoder then determines an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters (box 92).
  • embodiments of the present disclosure are configured to determine whether the filtering of a given sample will overlap with a previously performed filtering. As seen in Figures 6A-6C, whether an overlap will occur can be determined using one or more of the following methods.
  • an overlap occurs when the actual modifications made to a given reference sample during a first filtering operation (e.g., the reduction or removal of a sharp edge) would be changed by a second filtering operation if the given reference sample were to undergo the second filtering operation.
  • an overlap occurs when the maximum length of a filter selected for a potential checkpoint CP is equal to or exceeds the value for N.
  • an overlap occurs when a previous checkpoint CP was filtered.
  • N is equal to 8 for illustrative purposes. If the checkpoint CP 8 reference samples r away were previously filtered (box 122), then an overlap will occur (box 124). This means that the current checkpoint CP is skipped and the next checkpoint CP is processed. Otherwise, no overlap will occur (box 126).
  • the actual step size will be 2 * N when filtering was performed, and N when filtering was not performed.
  • Embodiment 1 Intra-reference sample deblocking filter decision.
  • the reserved 2 * N reference samples represent the samples in the left column and the top row, and are placed into the array on either side of a checkpoint CP for processing.
  • the N reference samples r to the left of the checkpoints CPs represent the reference samples r in the left column and are designated P0, P1 , P2 . PN.
  • the N reference samples r to the right of the checkpoints CPs represent the reference samples r in the top row and are designated Q0, Q1 , Q2 . QN.
  • the left side of the checkpoint CP is referred to as the“P-side” and the right side of the checkpoint CP is referred to as the“Q-side.”
  • the reference sample r deblocking decisions of the present embodiments are based on the variation of signal on both the P and Q sides of the array below a specified threshold.
  • the threshold depends on a quantization parameter (QP) value.
  • QP quantization parameter
  • the decision process of the present disclosure differs from HEVC deblocking in that the present embodiments perform only one check and utilize one line.
  • HEVC deblocking in contrast, checks lines 0 and 3 of four different lines. When applying a longer filter for reference samples r, instead of checking more than four lines, the decision for reference sample r deblocking is always to check one line.
  • FIGs 8A-8B One embodiment for checking deblocking decision for potential deblocking of 7 samples in P and Q, or deblocking 5 samples in P and Q, is seen in Figures 8A-8B.
  • a method 130 for making the decision on whether to apply filtering, and which filter to apply is seen in Figure 8A, while the particular equations (referred to by their respective number 1 -9) representing the conditions that are checked are seen in Figure 8B.
  • N the number of reserved samples, in this embodiment is equal to 8.
  • the beta b and tc values depend on the QP value similar to HEVC deblocking. Both the b and tc values increase with increased QP values, such that more filtering is allowed when the QP value is high.
  • method 130 begins the decision making process by solving for equations 1 , 2, and 3 of Figure 8A (box 132). If the conditions represented by equations 1 , 2, and 3 of Figure 8B are not all true, no filter is applied (box 142). If all of those conditions are true, however, method 130 solves equations 4, 5, and 6 of Figure 8B (box 84). If all of the conditions represented by equations 4, 5, and 6 are true, a 7-tap filter is applied (box 136). Otherwise, if not all of the conditions represented by equations 4, 5, and 6 are true, method 130 solves equations 8 and 9 of Figure 8B (box 138). If the conditions represented by equations 8 and 9 are both true, a 5-tap filter is applied (box 140).
  • Embodiment 2 Intra-reference sample deblocking filter operation
  • a deblocking filter that is stronger than HEVC strong deblocking filter.
  • a low-pass filter is not capable of eliminating intra-prediction blocking artifacts that get introduced by the boundaries in intra-reference samples.
  • the intra-reference sample deblocking filter should be able to achieve a linear ramp from P N to Q N .
  • one approach is to do a linear decay from a middle reference point Ref middie (close to checkpoint CP) to Refp (close to P N ) and Refg (close to QN).
  • the Refmiddie value is derived by low-pass filtering samples Po to PK-I and Qo to QK- 1.
  • the Refp value is derived by averaging PK-2 and PK-I .
  • the Refo value is derived by averaging
  • a 7 sample deblocking filter is used on respective sides of the boundary to achieve a linear ramp from P7 to Q7.
  • filter coefficients f are ⁇ 59, 50, 41 , 32, 23, 14, 5 ⁇ / 64, and the values for Ref middie , Refp and Refg are derived as follows:
  • Refmiddie (RQ + Ps + P 4 + P3 + P2 + Pi + 2 * (Po + Qo) + Q1 + Q2 + Q3 + Q 4 + Q5 + Qe) / 16;
  • Refp (P 7 + P 6 ) / 2;
  • a 5 sample deblocking filter is used on respective sides of the boundary to achieve a linear ramp from P 5 to Q 5 .
  • the filter coefficients fare ⁇ 58, 45, 32, 19, 6 ⁇ / 64, and the values for Ref middie , Refp and Refo are derived as follows:
  • Ref middle (P 4 + P3 + 2 * ( P2 + Pi + Po + Qo + Ql + Q2) + Q3 + Q 4 ) / 16;
  • the operation on the top-left reference sample TL is set as follows:
  • the deblocking filter operation performed on the reference samples on the P side is first calculated by using a two-tap filter with coefficient f, on Ref middie and (1 - f,) on Refp.
  • the result is clipped using a threshold tc, where the value of tc depends on QP.
  • the value of tc increases with increasing QP such that more filtering is allowed when QP is high.
  • the deblocking filter operation performed on the reference samples on the Q side is first calculated by using a two-tap filter with coefficient f, on Ref middie and (1 - fi) on Refo.
  • the result is clipped using a threshold tc, where the value of tc depends on QP.
  • the value of tc increases with increasing QP such that more filtering is allowed when QP is high.
  • Figures 9A-9B illustrate an example for VVC with and without intra-reference sample deblocking using a coding QP of 42.
  • the blocks with edges 144 are intra-predicted CUs, and the blocks with edges 146 are inter-predicted CUs.
  • the intra-reference sample deblocking could be applied only for blocks having both a width and a height that is equal to or greater than a threshold N.
  • a threshold N is 16.
  • This embodiment is similar to embodiments 1 and 2, where the intra-reference sample deblocking is only applied on the intra-angular prediction modes.
  • filtering according to this embodiment can be applied for intra-prediction modes 2 to 34, and not applied to the DC and planar mode. This would reduce the computational complexity.
  • An alternative for further reducing the complexity in this embodiment is to only apply intra-reference sample deblocking for a subset of the intra-angular modes where the subset depends on the CU size.
  • the intra-reference sample deblocking filter that is applied could be a single filter or more than one filter.
  • the number of reserved reference samples N on the P and Q sides in this embodiment depends on the length of the applied filter. For example, if 7 samples are modified and 8 samples on respective P and Q sides are read, the number of reference samples between checkpoints could be 16 or higher to avoid overlap in filtering between the checkpoints. For this particular case, 7 sample filtering is disabled when the number of reference samples between the checkpoints is fewer than 16. Having no overlap also enables filtering in parallel.
  • This embodiment is similar to embodiment 2, where the intra-reference sample deblocking filter coefficients f, on the P and Q sides can be adjusted when the checkpoint CP is located at the top-left to achieve a bi-linear filter effect.
  • the reason for the adjustment is that when the checkpoint CP located at the reference sample boundary on the top or on the left, the distance between ref middie and the first sample on the P side and on the Q side to be filtered is 0.5. However, when the checkpoint CP is located at the top-left, the distance between the ref middie and the first sample on the P side and on the Q side to be filtered is 1.
  • an encoder comprising one or more processors and e.g. one or more memory circuits is configured to carry out the methods according to the embodiments herein.
  • Figure 10 is a schematic diagram showing components of an encoder 200.
  • the processor 210 could be any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC) etc., capable of executing software instructions contained in a computer program 220 stored in one or more memories 230.
  • CPU central processing unit
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • the one or more memories 230 is for instance, a data buffer, Read- Write (RWM) Memory or Read-Only (ROM) memory.
  • the encoder could comprise an interface 240 with an input and/or output circuit 250 configured to transmit a bit stream, e.g., via transmitter or transceiver 260.
  • encoder 200 could have units, modules, or circuits configured to carry out methods described herein.
  • the encoder 200 in this embodiment comprises a step-size setting unit 270 that sets the value of N, as described herein.
  • the encoder 200 also comprises a filter determination unit 272 configured to determine whether to filter samples neighboring the checkpoint, and if so, which particular filters to use to implement the filtering.
  • the encoder 200 also comprises a filtering unit 274 that filters the samples according to the present embodiments, and an overlap determination unit 276 configured to determine whether overlap exists according to the previously described constraints.
  • FIG 12 is a schematic diagram showing components of decoder 300 configured according to one embodiment of the present disclosure.
  • the processor 310 could be any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC) etc., capable of executing software instructions contained in a computer program 320 stored in one or more memories 330.
  • the one or more memories 330 are for example, a data buffer, Read- Write (RWM) Memory or Read-Only (ROM) memory.
  • the decoder 300 also comprises an interface 340 with an input and/or output circuit 350 configured to receive a bit stream, e.g., via receiver or transceiver 360.
  • a decoder 300 could have units, modules, or circuits configured to carry out methods described herein.
  • the decoder 300 in this embodiment comprises a step-size setting unit 370, a filter determination unit 372, a filtering unit 374, and an overlap determination unit 376.
  • the step-size setting unit 370 sets the value of N, as described herein.
  • the filter determination unit 372 is configured to determine whether to filter samples neighboring the checkpoint CP, and if so, which particular filters to use to implement the filtering.
  • the filtering unit 374 filters the samples according to the present embodiments, and the overlap
  • determination unit 376 is configured to determine whether overlap exists according to the previously described constraints.
  • Figure 14 illustrates an example system or method 400 in which an encoder 200 and/or decoder 300 configured according to the present embodiments would be useful.
  • system 400 comprises a media source 402 (e.g., a capture, renderer or file).
  • the media source 402 is fed to a projection mapping 404 and then to a tile encoder or transcoder 406, e.g. an encoder 200 encoding according to the present embodiments as described herein.
  • the encoded information can be stored in storage 408 and then fed to a server 410. It can be transmitted over a network 420 to a viewing device 430.
  • the image is one of video
  • the viewing device 430 has a decoder 300 as described herein for decoding the image, rendering 432 the image, and a display 434 for displaying the image to a user of the viewing device 430.
  • a viewing device can be, for example, a Head Mounted Display (HMD) device or any display device.
  • HMD Head Mounted Display

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A device (200, 300) applies a deblocking filter to intra-reference samples to reduce or eliminate internal edges appearing along an intra-prediction direction. The device sets (62) a step-size N defining a granularity of checkpoints in a current coding unit (CU) (10). Based on the step-size, the device sets (64, 72, 82) a first reference sample in the CU to be a first checkpoint, a second checkpoint in a row of the CU, and a third checkpoint in a column of the CU. Based on one or more filter decisions, the device determines (66, 76, 86) whether the reference samples neighbouring the checkpoints are to be filtered, and if so, selects (68, 78, 88) first, second, and third deblocking filters. The device then filters (70, 80, 90) the reference samples neighbouring the first, second, and third checkpoints using the first, second, and third deblocking filters, respectively, and determines (92) an intra prediction of the CU based on at least one of the reference samples filtered using one of the first, second, and third deblocking filters.

Description

DEBLOCKING OF INTRA-REFERENCE SAMPLES
RELATED APPLICATIONS
This application claims priority to U.S. Application No. 62/694150, filed 5 July 2018, disclosure of which is incorporated in its entirety by reference herein.
TECHNICAL FIELD
The present disclosure relates generally to video encoding and decoding, and more particularly to the use of a deblocking filter to improve the quality and visual appearance of video content rendered to the user.
BACKGROUND
Digital video is a vital part of peoples’ lives, especially with respect to the media and entertainment industry. Generally, once a video is made, the content of the video is encoded according to one or more video compression standards known as“video codecs,” and transmitted to a remote device. Upon receipt, a decoder at the remote device decodes the encoded video for rendering to the user. Various filters can be applied during the decoding process to improve the quality and visual appearance of the decoded video content.
The process of video encoding facilitates delivery of the video content to a remote device in at least two ways. First, it compresses the digital video content. This reduces the amount of bandwidth required for transmitting the video content without substantively negatively affecting the quality of the video. Second, it converts the digital video content from one format into another format. This conversion process, sometimes referred to as “transcoding,” ensures that the video content is compatible with the different remote devices.
SUMMARY
Embodiments of the present disclosure reduce or eliminate internal edges along an intra-prediction direction, in which the edges originate from blocking artifacts in reference samples, by applying a deblocking filter to intra-reference samples. Additionally, the present embodiments provide both intra-reference sample deblocking filter decisions and intra-reference sample deblocking filter operations, and are operable to be implemented at an encoder or a decoder.
In one embodiment, the present disclosure provides a method of applying a deblocking filter to intra-reference samples. In this embodiment, the method comprises setting a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU). Then, based on the step-size N, the method comprises: • setting a first reference sample in a top-left corner of the current CU to be a first checkpoint;
• setting a second checkpoint between two reference samples in a top-row of the current CU; and
• setting a third checkpoint between two reference samples in a left-most column of the current CU.
Then, based on one or more filter decisions, the method comprises:
• determining that reference samples neighbouring the first checkpoint are to be filtered;
• determining that reference samples neighbouring the second checkpoint are to be filtered; and
• determining that reference samples neighbouring the third checkpoint are to be filtered.
In response to the determinings, the method calls for selecting deblocking filters. Particularly, the method further comprises:
• selecting a first deblocking filter from a plurality of deblocking filters to filter the reference samples neighbouring the first checkpoint responsive to determining that the reference samples neighbouring the first checkpoint are to be filtered;
• selecting a second deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the second checkpoint responsive to
determining that the reference samples neighbouring the second checkpoint are to be filtered; and
• selecting a third deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the third checkpoint responsive to determining that the reference samples neighbouring the third checkpoint are to be filtered.
So selected, the method comprises filtering the reference samples neighbouring the first, second, and third checkpoints using the selected first, second, and third deblocking filters, respectively, and determining an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters.
In another embodiment, the present disclosure provides an encoder comprising communications interface circuitry and a processing circuit operatively connected to the communications interface circuitry. In this embodiment, the processing circuit is configured to set a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU). Once the step-size N is set, the processing circuit sets
• a first reference sample in a top-left corner of the current CU to be a first checkpoint; • a second checkpoint between two reference samples in a top-row of the current CU; and
• a third checkpoint between two reference samples in a left-most column of the current CU.
Then, based on one or more filter decisions, the processing circuit is configured to:
• determine that reference samples neighbouring the first checkpoint are to be filtered;
• determine that reference samples neighbouring the second checkpoint are to be filtered; and
• determine that reference samples neighbouring the third checkpoint are to be filtered.
In response to making these determinations, the processing circuit selects deblocking filters with which to filter the reference samples. Particularly, the processing circuit is configured to:
• select a first deblocking filter from a plurality of deblocking filters to filter the
reference samples neighbouring the first checkpoint responsive to determining that the reference samples neighbouring the first checkpoint are to be filtered;
• select a second deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the second checkpoint responsive to
determining that the reference samples neighbouring the second checkpoint are to be filtered; and
• select a third deblocking filter from the plurality of deblocking filters to filter
reference samples neighbouring the third checkpoint responsive to determining that the reference samples neighbouring the third checkpoint are to be filtered.
Once the filters are selected, the processing circuit is configured to filter the reference samples neighbouring the first, second, and third checkpoints using the selected first, second, and third deblocking filters, respectively, and determine an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters.
In another embodiment, the present disclosure provides a decoder comprising communications interface circuitry and a processing circuit operatively connected to the communications interface circuitry. In this embodiment, the processing circuit is configured to set a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU). Once the step-size N is set, the processing circuit sets:
• a first reference sample in a top-left corner of the current CU to be a first checkpoint; • a second checkpoint between two reference samples in a top-row of the current CU; and
• a third checkpoint between two reference samples in a left-most column of the current CU.
Then, based on one or more filter decisions, the processing circuit is configured to:
• determine that reference samples neighbouring the first checkpoint are to be filtered;
• determine that reference samples neighbouring the second checkpoint are to be filtered; and
• determine that reference samples neighbouring the third checkpoint are to be filtered.
In response to making these determinations, the processing circuit selects deblocking filters with which to filter the reference samples. Particularly, the processing circuit is configured to:
• select a first deblocking filter from a plurality of deblocking filters to filter the
reference samples neighbouring the first checkpoint responsive to determining that the reference samples neighbouring the first checkpoint are to be filtered;
• select a second deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the second checkpoint responsive to
determining that the reference samples neighbouring the second checkpoint are to be filtered; and
• select a third deblocking filter from the plurality of deblocking filters to filter
reference samples neighbouring the third checkpoint responsive to determining that the reference samples neighbouring the third checkpoint are to be filtered.
Once the filters are selected, the processing circuit is configured to filter the reference samples neighbouring the first, second, and third checkpoints using the selected first, second, and third deblocking filters, respectively, and determine an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates an example of reference samples for an 8x8 CU according to one embodiment.
Figures 2A-2B illustrate examples of blocking artifacts along an intra-prediction direction according to one embodiment of the present disclosure.
Figures 3A-3B illustrate examples of a checkpoint and reserved samples according to one embodiment of the present disclosure. Figure 4 illustrates an example of offset sizes based on whether a top-left part is filtered according to one embodiment of the present disclosure.
Figures 5A-5C are flow diagrams illustrating a method for applying a deblocking filter to intra-reference samples according to embodiments of the present disclosure.
Figures 6A-6C are flow diagrams illustrating methods for determining whether overlap occurs between reference samples according to embodiments of the present disclosure.
Figure 7 illustrates an example of a P side and a Q side of an array for N=8 according to one embodiment of the present disclosure.
Figures 8A-8B illustrates a decision process for 5 and 7 samples deblocking on respective sides of a boundary according to one embodiment of the present disclosure.
Figures 9A-9B illustrate examples of subjective improvement when applying intra- reference sample deblocking according to one embodiment of the present disclosure.
Figure 10 is a schematic block diagram illustrating components of an encoder configured according to one embodiment of the present disclosure.
Figure 1 1 is a schematic block diagram illustrating some functional components of an encoder configured according to one embodiment of the present disclosure.
Figure 12 is a schematic block diagram illustrating components of a decoder configured according to one embodiment of the present disclosure.
Figure 13 is a schematic block diagram illustrating some functional components of a decoder configured according to one embodiment of the present disclosure.
Figure 14 is a system comprising a decoder and encoder configured according to one embodiment of the present disclosure.
DETAILED DESCRIPTION
A video sequence comprises a series of images. Each image comprises one or more components with each component comprising a two-dimensional rectangular array of sample values. Components are sometimes referred to as“color components.” Generally, an image in a video sequence comprises three components; one luma component Y and two chroma components Cb and Cr. Sample values for the luma component Y are luma values, while sample values for the chroma components Cb and Cr are chroma values. However, images can have other components. Examples of such components include, but are not limited to, Y’CbCr components, YUV components, and ICtCp components. As above, Y’ is a luma component and Ct, Cp, U, and V are all chroma components. The I, however, is an“intensity luma” component. Regardless, within the context of the present disclosure, each of the aforementioned luma components Y, Y’, and I, are referred to herein as Ύ” or simply“luma.” The dimensions of the chroma components also vary with the format of the video content. For example, in a 4:2:0 format, which is a common format, the dimensions of the chroma components are smaller than the luma components by a factor of two in each dimension. For example, consider a High Definition (HD) image having a 1920x1080 pixel resolution. In these cases, the luma component in the HD image would have a dimension of 1920x1080 pixels, while each of the chroma components would have a dimension of 960x540 pixels. However, the chroma components are not always smaller than the luma components. In a 4:4:4 format, for example, the size of the chroma components is the same as that of the luma components.
In video coding, each component is divided into blocks. Each block comprises one two-dimensional array of samples and is inserted into a series of blocks called a video bitstream. Similarly, the image is divided into units covering a particular area of the image. Each unit comprises all of the blocks from all of the components comprising the particular area, and each block belongs fully to one unit. Examples of such units are“macroblocks” defined in the widely-used H.264 video codec standard and Coding Units (CUs) defined in the High Efficiency Video Coding (HEVC) video codec standard.
In HEVC, images are referred to as“pictures,” with each HEVC picture partitioned into coding tree units (CTU). A CTU comprises an NxN block of luma samples and two MxM blocks of corresponding chroma samples. In some ways, a CTU defined in HEVC is similar to the macroblocks defined in H.264 and earlier video codec standards; however, CTUs are also distinguished from H.264 macroblocks in that the size of the CTUs is configurable. In most cases, the size of a CTU in HEVC is set to 64x64 luma samples.
Each CTU can be recursively quadtree split. The root of the quadtree is then associated with the CTU and the quadtree is split until a“leaf” or“Coding Unit” (CU) is reached. The particular manner of splitting each CTU is also conveyed to a receiving device in the video bitstream.
A CU according to the HEVC standard always comprises a luma block having equal height and width. Additionally, the CU is a root node of two other trees, a prediction tree comprising prediction units (PUs) as leaves, and a transform tree comprising transform units (TUs) as leaves - each of which can be utilized in an HEVC-compliant decoding process. Particularly, some decoding processes in HEVC are performed at the CU level, some are performed at the PU level, and some are performed at the TU level.
In some cases, there are discontinuities between PUs and between TUs. Such discontinuities, which form as sharp edges between the PUs and TUs, decrease the visual quality of the video. To reduce these discontinuities, the boundaries between TUs and PUs are filtered using a deblocking filter. The deblocking filter smooths the sharp edges thereby improving the visual appearance of the video when rendered to the end user. There are also two types of prediction processes for a PU in HEVC -“intra-prediction” and“inter-prediction.” Intra-prediction reduces spatial redundancy using only predictions from previously decoded samples of the current picture. Inter-prediction, in contrast, reduces temporal redundancy and uses previously decoded reference pictures to form the prediction.
More particularly, the intra-prediction process in HEVC predicts a PU based on spatial extrapolation of reference samples from previously decoded CUs of the same (i.e., current) picture. When the PU width is equal to w and the PU height is equal to h, the total number of reference samples are equal to 2 * w + 2 * h + 1.
For example, Figure 1 illustrates an example of reference samples r for an 8x8 current PU 10. As seen in Figure 1 , there are (w + h) reference samples from the nearest left column of the PU 10, (w + h) reference samples from the nearest top row of the PU 10, and 1 reference sample“TL” from top-left (TL) of the PU 10. When a previously decoded PU is not available, the corresponding reference samples r are padded from the nearest available left- bottom or right-top reference samples.
There are, in total, 33 directional intra-prediction modes and 35 inter-prediction modes in HEVC. Each of the modes is indexed. The mode having index 0 is known as the planar mode, and the mode having index 1 is known as the DC mode. The indices for the angular-prediction mode in HEVC range from 2 to 34.
In HEVC, a low-pass filter is used to smooth reference samples for some intra-prediction modes. When the low-pass filter is used, the filtered reference sample is derived from two neighboring reference samples and the current reference sample using filter coefficients [1 2 1] / 4. The left-bottom and right-top reference samples are not filtered. For PUs having a size of 32 x N, the low-pass filter is used for all directional intra-prediction modes except the vertical and horizontal modes. For PUs having a size of 16 x N, the low-pass filter is not used for the 4 modes closest to the horizontal and vertical mode. For PU size 8 x N, the low-pass filter is only used for diagonal modes. The low-pass filter is not used for 4 x 4 PUs.
Deblocking in HEVC is first applied on the vertical boundaries of reconstructed samples, and then on the horizontal boundaries of the reconstructed samples. The boundaries can be either TU boundaries or PU boundaries. To enable parallel friendly deblocking, the deblocking is performed on an 8x8 sample grid.
A decision on whether to apply deblocking is also performed. Particularly, a deblocking boundary strength parameter (BS) is set for each boundary. The larger the value of the boundary strength parameter BS is, the stronger the filtering. If the value of BS is greater than 0, deblocking can be applied (pending further checks for natural structures as described in more detail later). Otherwise, deblocking is not applied.
More particularly, it is first determined whether any of the blocks at a given PU boundary is an intra-predicted block. If so, the boundary strength BS is set equal to a value of 2. If not, it is determined whether a pair of blocks at the given PU boundary use inter-prediction and different reference frames, or have significantly different motion vectors. If the pair of blocks at the given PU boundary uses inter-prediction and different reference frames, or have significantly different motion vectors, the boundary strength BS is set equal to a value of 1. If not, it is determined whether at least one of the blocks at a given TU boundary has non-zero transform coefficients (e.g., code block flag (CBF) equal to 1 ). If so, the boundary strength BS is set equal to a value of 1.
This first set of checks may cause the boundary strength (BS) parameter to be set to a value greater than 0 to indicate that deblocking should be applied. To reduce or avoid removal of natural structures when deblocking, a check can be implemented for luma to determine that there are no natural structures on respective sides of the boundary. In HEVC, gradient calculations are used on respective sides of the boundary using the following inequality:
abs(p0 -2*p1 +p2) + abs(q0-2*q1 +q2) < b
where: the beta parameter value b is based on the quantization parameter for the block;
pO, p1 , and p2 are samples on one side of the block boundary; and
qO, q 1 , and q2 are samples on the other side of the block boundary.
The condition is checked at two positions along the block boundary. If both conditions are satisfied, then the luma samples are deblocked for that 4 sample part of the boundary. If both conditions are not satisfied, however, deblocking is not done for the boundary, regardless of the value of the BS parameter. Chroma boundaries may always be filtered if one any of the neighboring blocks are intra-coded.
The current draft of the VVC specification (i.e., - Versatile Video Coding (VVC) draft 1 JVET-J1001v1 ) defines a CTU similarly to a CTU defined in HEVC. However, there is a difference between the two. Specifically, VVC defines the CTU to have a size of 128x128 luma samples. Additionally, in VVC, the CTU can be split more flexibly such that the resulting CUs can comprise a rectangular luma block having a different height and width. Further, in VVC, there are no prediction trees as defined in HEVC. However, a CU in WC can implicitly be divided into a multiple of TUs. Implicit TUs can, however, only appear when the CU size has a width or height that is larger than the maximum transform size. If the CU size does not have a width or height that is larger than the maximum transform size, however, the CU has neither a prediction tree nor a transform tree. Deblocking according to WC is based on the deblocking filter specified in the HEVC standard. However, VVC specifies that deblocking should first be applied to vertical CU boundaries and then to horizontal CU boundaries.
Figures 2A and 2B illustrate an example of blocking artifacts along the intra-prediction direction. In particular, Figure 2A illustrates an example of blocking artifacts from the TL reference sample, and Figure 2B illustrates an example of blocking artifacts from the reference samples r in a row above the current CU. In Figures 2A and 2B the CUs having boundary lines 20 are intra-predicted CUs, while the CUs having boundary line 22 are inter-predicted CUs.
With conventional solutions, deblocking artifacts in previously decoded CUs can introduce blocking artifacts along the intra-prediction direction in a current CU. The value discontinuity of reference samples cannot be eliminated by a [1 2 1] / 4 low-pass filter for intra-reference samples, as mentioned above.
Embodiments of the present disclosure, however, reduce or eliminate internal edges along the intra-prediction direction originating from blocking artifacts in reference samples by applying a deblocking filter to intra-reference samples. Further, the present embodiments provide both intra-reference sample deblocking filter decisions and intra-reference sample deblocking filter operations, and are operable to be implemented at an encoder or at a decoder. Additionally, embodiments of the present disclosure can be applied to a single color component or to multiple or all color components. Examples of such color components include, but are not limited to, luma, Cb and Cr. Thus, embodiments of the present disclosure significantly reduce the discontinuities along the intra-prediction direction, thereby substantially improving the visual quality of a video stream rendered to a user.
In more detail, the present embodiments provide a method for video encoding or decoding in which the boundaries in reference samples of intra-predicted CUs are filtered by an intra-reference sample deblocking filter. The reference samples are divided to three parts:
• a top-left part;
• a left part; and
• a top part.
Because it is not generally known where the boundaries occur among the reference samples, embodiments of the present disclosure define a checkpoint CP. As defined herein, a “checkpoint” CP is a boundary between two reference samples r. In some embodiments, the boundary is a reference sample such as TL seen in Figure 1. In other embodiments, however, the boundary is the edges of two adjacent reference samples r.
For each checkpoint CP, there are three process steps:
1 ) identify whether there is a discontinuity in the reference samples;
2) identify which type of filter is to be used; and
3) filter the reference samples.
More specifically, embodiments of the present disclosure loop through all reference samples and apply a decision process to determine whether to apply a reference sample deblocking filter. In particular, embodiments of the present disclosure start at a top-left reference sample TL and loop through the left-most column and top row reference samples. The checkpoints CPs are interspersed along both the top-row and the left-most column of the CU.
At each side neighboring a checkpoint CP, there will be N reserved reference samples to evaluate the signal. In one aspect of the disclosure, N is greater than the number of samples to be filtered. The evaluation result determines at least two things:
1 ) Whether there is a boundary at the checkpoint; and
2) The type of deblocking filter that should be used.
Additionally, embodiments of the present disclosure are configured to determine whether a given reference sample“overlaps” with another reference sample. As defined herein, such “overlap” refers to a situation where a given reference sample has been, or is likely to be, filtered multiple times.
More particularly, the filtering operation, as previously described, changes the content reference sample by removing edges, etc. Thus, filtering the same sample again, even though the filtering would be performed with respect to a different checkpoint, could possibly alter the changes already made by the first filtering operation. Such“repeat” filtering operations are considered“overlap” and waste time and processing resources.
To avoid“filtering overlap” (i.e., performing more than one filtering operation on a given reference sample), the loop step-size to a next checkpoint CP is set to be either N or 2*N depending on (1 ) whether a previous checkpoint CP was filtered, and (2) whether filtering is to be applied to a current checkpoint CP. In cases where there are fewer than N samples on either side of a current checkpoint CP, there will be no filtering process on that checkpoint CP.
Figures 3A-3B illustrate an example of a checkpoint CP and N reserved samples, where N=8) on an 8 x 8 CU 30 for each part, according to one embodiment of the present disclosure. For top-left part, the checkpoint CP is the top-left reference sample TL. As seen in Figure 3A, there are N reserved samples 32 in the left-most column and N reserved samples 34 in the top row. As seen in Figure 3B, for the left and top parts, the checkpoints CPs are the boundary between two reference samples r. For the left part - i.e., the left-most column - there are N reserved samples 36 below the checkpoint CP and N reserved samples 32 above the checkpoint CP. Similarly, for the top part - i.e., the top row - there are N reserved samples 34 to the left of the checkpoint CP and N reserved samples 38 to the right of the checkpoint CP.
According to the present disclosure, the three above-identified process steps are applied once for each checkpoint. For example, given the top-left part seen in Figure 3A, there is only one checkpoint CP located at the top-left reference sample TL. Therefore, the three process steps described above will be applied only once. For the left and top parts seen in Figure 3B, however, the number of checkpoints CPs depends on the number of reference samples r, which in one embodiment, is given as CU width (w) + height (h). Therefore, in these cases, the three process steps can be applied a plurality of times until all checkpoints CPs have been evaluated. Particularly, the top-left part is processed first, followed by the left and top part. The left part and top part may be processed in parallel. In one embodiment of the present disclosure, whether or not to apply a filter, the number of samples to be filtered, and an offset to the next checkpoint, which may vary to avoid filtering overlap, can be determined based on the process result of one checkpoint. Figure 4 shows an offset example when processing an 8 x 8 CU such as CU 30 illustrated in Figures 3A and 3B, for example. For illustrative purposes, the number of N reserved samples 32, 34 is equal to 8.
As seen in method 40 of Figure 4, a decision is made as to whether to apply a filter on the top-left part (box 42). If the filter is to be applied (“YES”), the offset is set to 16 and the CPs set accordingly. The filter is then applied to the N reserved samples 32, 34, as well as the top- left reference sample TL. If, however, a decision is made not to apply the filter (“NO”), the offset is set to 8 and the CPs set accordingly and the reference samples r are not filtered.
It should be noted here that the present embodiments, including method 40, can be implemented by one or both of an encoder and a decoder of a video or image coding system. Thus, a decoder or encoder may perform all or a subset of the following steps (the steps are not necessarily ordered).
Figures 5A-5C are flow diagrams illustrating a method 60, implemented in an encoder for applying a deblocking filter to intra-reference samples r in order to reduce or eliminate internal edges along an intra-prediction direction originating from blocking artifacts in the reference samples r. However, those of ordinary skill in the art should readily appreciate that the implementation of method 60 in an encoder is illustrative only. As stated above,
embodiments of the present disclosure can be implemented in an encoder or a decoder. Thus, method 60 can also be implemented in a decoder.
As seen in Figure 5A, method 60 begins with the encoder setting a step-size N to control the granularity of checkpoints CP (box 62). In one embodiment, N is preferably set to a value that is a multiple of 4, such as 8. Once the value of N has been set, the encoder sets top-left sample TL to be a first checkpoint CP (box 64). The encoder then determines whether to filter samples neighboring the checkpoint CP (box 66). If not, method 10 ends. Otherwise, the encoder determines which of a plurality of filters to use to filter the samples (box 68). As described later in more detail, the determination of which particular filter to utilize to implement the filtering according to the present embodiments is based on one or more filter decisions. Regardless of the particular filter selected, however, the encoder filters the reference samples r with the checkpoint CP being sample TL (box 70).
Once the samples have been filtered with the checkpoint CP being the top-left sample TL, method 60 begins looping through one or more potential checkpoints CP on the top row (Figure 5B) and the left column (Figure 5C). For purposes of illustration, method 60 is described as if the samples in the top row are processed before the samples in the left column. However, this is for illustrative purposes only. Embodiments of the present disclosure can configure the device implementing method 60 to filter the samples in the left column before the samples in the top row, or alternatively, to filter the samples in both the top row and the left column in parallel.
As seen in Figure 5B, the encoder begins by processing the top row of reference samples r. In this embodiment, the encoder first gets the next checkpoint CP in the top row (box 72). If no checkpoint CP is determined, method 60 begins processing the samples in the left column (see Figure 5C). If a checkpoint CP is determined, the encoder loops through the checkpoints CPs in the top row from left to right using the step size N. During this process, if filtering a given sample neighboring a potential checkpoint CP is determined to“overlap” with a previously performed filtering of the given sample (i.e., the given sample was previously filtered with respect to a previous checkpoint CP) (box 74), no filtering is done for that potential checkpoint CP, and the process returns to obtain the next checkpoint CP. If there is no overlap, however, the encoder determines whether to filter samples neighboring the checkpoint CP (box 76). If not, method 10 returns to get the next checkpoint CP. Otherwise, the encoder utilizes the filter decision process to determine which of the plurality of filters to use to filter the samples (box 78). The encoder then filters the samples (box 80).
The encoder then begins filtering the samples in the left column (Figure 5C).
Particularly, in this embodiment, the encoder gets the next checkpoint CP in the left column (box 82). If no checkpoint CP is determined, method 60 ends. If a checkpoint CP is determined, however, the encoder loops through the checkpoints CPs in the left column from top to bottom using the step size N. Particularly, if filtering a given reference sample r neighboring a potential checkpoint CP is determined to overlap with a previously performed filtering of a reference sample r (box 84), no filtering is done for that potential checkpoint CP. Instead, the process returns to obtain the next checkpoint CP. If there is no overlap (box 84), however, the encoder determines whether to filter the reference samples r neighboring the checkpoint CP (box 86). If not, method 60 returns to get the next checkpoint CP. Otherwise, the encoder utilizes the filter decision process to determine which of the plurality of filters to use to filter the samples (box 88) and filters the reference samples r (box 90). The encoder then determines an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters (box 92).
As stated above, embodiments of the present disclosure are configured to determine whether the filtering of a given sample will overlap with a previously performed filtering. As seen in Figures 6A-6C, whether an overlap will occur can be determined using one or more of the following methods.
In the embodiment of Figure 6A, an overlap occurs when the actual modifications made to a given reference sample during a first filtering operation (e.g., the reduction or removal of a sharp edge) would be changed by a second filtering operation if the given reference sample were to undergo the second filtering operation. For example, as seen in method 100, N is equal to 8. If a checkpoint CP that is 8 reference samples r away from a current reference sample r was filtered using a filter having a filter length K that is less than N (e.g., N=5) (box 102), and if the length of the filter that is selected + K is greater than N (box 104), there is overlap (box 106). Otherwise, there is no overlap (box 108).
In the embodiment of Figure 6B, an overlap occurs when the maximum length of a filter selected for a potential checkpoint CP is equal to or exceeds the value for N. In these cases, it is possible that the selected filter will filter a reference sample r that has already been filtered. For example, as seen in method 110, N is equal to 8. If a checkpoint CP 8 reference samples r away from a current reference sample r was filtered using a filter having a filter length K that is less than N (e.g., K=3) (box 112), and if the maximum length of the selected filter + K is greater than N (e.g., K=7) (box 114), there is an overlap (box 116). Otherwise, there is no overlap (box 118).
In the embodiment of Figure 6C, an overlap occurs when a previous checkpoint CP was filtered. For example, as seen in method 120, N is equal to 8 for illustrative purposes. If the checkpoint CP 8 reference samples r away were previously filtered (box 122), then an overlap will occur (box 124). This means that the current checkpoint CP is skipped and the next checkpoint CP is processed. Otherwise, no overlap will occur (box 126). Thus, with this embodiment, the actual step size will be 2*N when filtering was performed, and N when filtering was not performed.
Embodiment 1 - Intra-reference sample deblocking filter decision.
Figure 7 illustrates an embodiment in which 2 * N reserved reference samples r are placed into an array, with N = 8. As seen in the embodiment of Figure 7, the reserved 2 * N reference samples represent the samples in the left column and the top row, and are placed into the array on either side of a checkpoint CP for processing. Particularly, the N reference samples r to the left of the checkpoints CPs represent the reference samples r in the left column and are designated P0, P1 , P2 . PN. The N reference samples r to the right of the checkpoints CPs represent the reference samples r in the top row and are designated Q0, Q1 , Q2 . QN.
When the reference samples are placed into an array, as is done in the embodiment of Figure 7, the left side of the checkpoint CP is referred to as the“P-side” and the right side of the checkpoint CP is referred to as the“Q-side.”
The reference sample r deblocking decisions of the present embodiments are based on the variation of signal on both the P and Q sides of the array below a specified threshold. The threshold depends on a quantization parameter (QP) value. The decision process of the present disclosure differs from HEVC deblocking in that the present embodiments perform only one check and utilize one line. HEVC deblocking, in contrast, checks lines 0 and 3 of four different lines. When applying a longer filter for reference samples r, instead of checking more than four lines, the decision for reference sample r deblocking is always to check one line.
One embodiment for checking deblocking decision for potential deblocking of 7 samples in P and Q, or deblocking 5 samples in P and Q, is seen in Figures 8A-8B. Particularly, a method 130 for making the decision on whether to apply filtering, and which filter to apply, is seen in Figure 8A, while the particular equations (referred to by their respective number 1 -9) representing the conditions that are checked are seen in Figure 8B. For illustrative purposes, the number of reserved samples, N, in this embodiment is equal to 8. The beta b and tc values depend on the QP value similar to HEVC deblocking. Both the b and tc values increase with increased QP values, such that more filtering is allowed when the QP value is high.
As seen in Figure 8A, method 130 begins the decision making process by solving for equations 1 , 2, and 3 of Figure 8A (box 132). If the conditions represented by equations 1 , 2, and 3 of Figure 8B are not all true, no filter is applied (box 142). If all of those conditions are true, however, method 130 solves equations 4, 5, and 6 of Figure 8B (box 84). If all of the conditions represented by equations 4, 5, and 6 are true, a 7-tap filter is applied (box 136). Otherwise, if not all of the conditions represented by equations 4, 5, and 6 are true, method 130 solves equations 8 and 9 of Figure 8B (box 138). If the conditions represented by equations 8 and 9 are both true, a 5-tap filter is applied (box 140).
Embodiment 2 - Intra-reference sample deblocking filter operation This embodiment of the present disclosure applies a deblocking filter that is stronger than HEVC strong deblocking filter. Particularly, a low-pass filter is not capable of eliminating intra-prediction blocking artifacts that get introduced by the boundaries in intra-reference samples. However, the intra-reference sample deblocking filter should be able to achieve a linear ramp from PN to QN. According to this embodiment, one approach is to do a linear decay from a middle reference point Refmiddie (close to checkpoint CP) to Refp (close to PN) and Refg (close to QN). The Refmiddie value is derived by low-pass filtering samples Po to PK-I and Qo to QK- 1. The Refp value is derived by averaging PK-2 and PK-I . The Refo value is derived by averaging
QK-2 and QK-I . The filtered P,· ( i = 0, 1 . K-1 ) is derived by using a two-tap filter on Refp and
Refmiddie with coefficients f={ fo, f 1 , . ίk-2, ίk-i } and 64-f expressed with 6 bit accuracy. The filtered Q,· (i = 0, 1 . K-1 ) is derived by using a two-tap filter on Refo and Refmiddie with coefficients f={ fo, fi , . ίk-2, ίk-i } and 64-f expressed with 6 bit accuracy.
In another embodiment, a 7 sample deblocking filter is used on respective sides of the boundary to achieve a linear ramp from P7 to Q7. In this embodiment filter coefficients f are {59, 50, 41 , 32, 23, 14, 5} / 64, and the values for Refmiddie, Refp and Refg are derived as follows:
Refmiddie = (RQ + Ps + P4 + P3 + P2 + Pi + 2 * (Po + Qo) + Q1 + Q2 + Q3 + Q4 + Q5 + Qe) / 16;
Refp =(P7 + P6) / 2; and Refo
Figure imgf000016_0001
, clipped to Pk ± tc
Figure imgf000016_0002
clipped to Qk ± tc In another embodiment, a 5 sample deblocking filter is used on respective sides of the boundary to achieve a linear ramp from P5 to Q5. The filter coefficients fare { 58, 45, 32, 19, 6 } / 64, and the values for Refmiddie, Refp and Refo are derived as follows:
Refmiddle =(P 4 + P3 + 2 * ( P2 + Pi + Po + Qo + Ql + Q2) + Q3 + Q4) / 16;
Figure imgf000016_0003
Deblocking filter operation on top-left reference sample
When the checkpoint is at the top-left reference sample, as indicated by TL in Figure 3A, the values Po to PN are from the left column, and the values Qo to QN are from the top row. In this case, the top-left should be equal to the value of Refmiddie in order to achieve a smooth transition from Po* to Qo*, where the Po* and Qo* represent the reference samples after applying an intra-reference sample deblocking filter. Therefore, in this embodiment, the operation on the top-left reference sample TL is set as follows:
TL— Refmiddie
Deblocking filter operation on the P side
In one embodiment, the deblocking filter operation performed on the reference samples on the P side is first calculated by using a two-tap filter with coefficient f, on Refmiddie and (1 - f,) on Refp. The result is clipped using a threshold tc, where the value of tc depends on QP. The value of tc increases with increasing QP such that more filtering is allowed when QP is high.
In this embodiment:
Pi' = Refmiddie * fi + Refp * (1 - fi);
Pi* = Clip3( P, - tc, P, + tc, P, ), where, i = 0, 1 ... K-1.
The Clip3(a, b, c) function returns:
• a, if c < a;
• b, if c > b; and
• c, if a <=c<=b.
With the top-left sample is equal to Refmiddie, the filter coefficients for the case of a 7 sample deblocking filter can be set equal to f = {60 51 43 34 26 17 9}/64, and for a
5 sample deblocking filter to f = {58 47 35 23 12}/64. This indicates that the distances between Refmiddie and P, are different for this case compared to other cases. Deblocking filter operation on the Q side
In this embodiment, the deblocking filter operation performed on the reference samples on the Q side is first calculated by using a two-tap filter with coefficient f, on Refmiddie and (1 - fi) on Refo. The result is clipped using a threshold tc, where the value of tc depends on QP. The value of tc increases with increasing QP such that more filtering is allowed when QP is high. In this embodiment:
Qi· = Refmiddie * fi + RefQ * (1 - fi)
Qi* = Clip3( Q, - tc, Q, + tc, Qr ), where, i = 0, 1 ... K-1
When the top-left sample is equal to Refmiddie, the filter coefficients for the case of a 7 sample deblocking filter can be set equal to f = {60 51 43 34 26 17 9}/64, and for the case of a 5 sample deblocking filter to f = {58 47 35 23 12}/64. This indicates that the distances between Refmiddie and Q, are different for this case compared to other cases.
Figures 9A-9B illustrate an example for VVC with and without intra-reference sample deblocking using a coding QP of 42. The blocks with edges 144 are intra-predicted CUs, and the blocks with edges 146 are inter-predicted CUs.
As seen in Figure 9A, the areas 150a, 152a, and 154a, prior to intra-reference sample deblocking, show sharp edges. In Figure 9B, however, the edges in those same areas, now indicated using 150b, 152b, and 154b, are either reduced or eliminated after intra-reference sample decoding according to embodiments of the present disclosure.
Embodiment 3
This embodiment is similar to embodiments 1 and 2, where the intra-reference sample deblocking could be applied on all CUs. However, considering the complexity, the intra- reference sample deblocking of this embodiment could be applied only on large CUs, where CU size w * h >= CU size threshold, and where w represents the CU width and h represents the CU height.
Alternatively, according to this embodiment, the intra-reference sample deblocking could be applied only for blocks having both a width and a height that is equal to or greater than a threshold N. One example value for a threshold N is 16.
Embodiment 4
This embodiment is similar to embodiments 1 and 2, where the intra-reference sample deblocking is only applied on the intra-angular prediction modes. Using HEVC as an example, filtering according to this embodiment can be applied for intra-prediction modes 2 to 34, and not applied to the DC and planar mode. This would reduce the computational complexity. An alternative for further reducing the complexity in this embodiment is to only apply intra-reference sample deblocking for a subset of the intra-angular modes where the subset depends on the CU size.
Embodiment 5
This embodiment is similar to embodiments 1 and 2, where the intra-reference sample deblocking filter that is applied could be a single filter or more than one filter. To avoid overlapping filtering, the number of reserved reference samples N on the P and Q sides in this embodiment depends on the length of the applied filter. For example, if 7 samples are modified and 8 samples on respective P and Q sides are read, the number of reference samples between checkpoints could be 16 or higher to avoid overlap in filtering between the checkpoints. For this particular case, 7 sample filtering is disabled when the number of reference samples between the checkpoints is fewer than 16. Having no overlap also enables filtering in parallel.
Embodiment 6
This embodiment is similar to embodiment 2, where the intra-reference sample deblocking filter coefficients f, on the P and Q sides can be adjusted when the checkpoint CP is located at the top-left to achieve a bi-linear filter effect. The reason for the adjustment is that when the checkpoint CP located at the reference sample boundary on the top or on the left, the distance between refmiddie and the first sample on the P side and on the Q side to be filtered is 0.5. However, when the checkpoint CP is located at the top-left, the distance between the refmiddie and the first sample on the P side and on the Q side to be filtered is 1.
As stated above, embodiments of the present disclosure could be implemented on either an encoder 200 or a decoder 300 using a suitable combination of hardware and/or software. Accordingly, an encoder comprising one or more processors and e.g. one or more memory circuits is configured to carry out the methods according to the embodiments herein. Figure 10 is a schematic diagram showing components of an encoder 200. The processor 210 could be any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC) etc., capable of executing software instructions contained in a computer program 220 stored in one or more memories 230. The one or more memories 230 is for instance, a data buffer, Read- Write (RWM) Memory or Read-Only (ROM) memory. The encoder could comprise an interface 240 with an input and/or output circuit 250 configured to transmit a bit stream, e.g., via transmitter or transceiver 260.
As shown in Figure 11 encoder 200 could have units, modules, or circuits configured to carry out methods described herein. For instance, the encoder 200 in this embodiment comprises a step-size setting unit 270 that sets the value of N, as described herein. The encoder 200 also comprises a filter determination unit 272 configured to determine whether to filter samples neighboring the checkpoint, and if so, which particular filters to use to implement the filtering. The encoder 200 also comprises a filtering unit 274 that filters the samples according to the present embodiments, and an overlap determination unit 276 configured to determine whether overlap exists according to the previously described constraints.
Figure 12 is a schematic diagram showing components of decoder 300 configured according to one embodiment of the present disclosure. The processor 310 could be any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC) etc., capable of executing software instructions contained in a computer program 320 stored in one or more memories 330. The one or more memories 330 are for example, a data buffer, Read- Write (RWM) Memory or Read-Only (ROM) memory. The decoder 300 also comprises an interface 340 with an input and/or output circuit 350 configured to receive a bit stream, e.g., via receiver or transceiver 360.
As shown in Figure 13, a decoder 300 could have units, modules, or circuits configured to carry out methods described herein. For instance, the decoder 300 in this embodiment comprises a step-size setting unit 370, a filter determination unit 372, a filtering unit 374, and an overlap determination unit 376.
The step-size setting unit 370 sets the value of N, as described herein. The filter determination unit 372 is configured to determine whether to filter samples neighboring the checkpoint CP, and if so, which particular filters to use to implement the filtering. The filtering unit 374 filters the samples according to the present embodiments, and the overlap
determination unit 376 is configured to determine whether overlap exists according to the previously described constraints.
Figure 14 illustrates an example system or method 400 in which an encoder 200 and/or decoder 300 configured according to the present embodiments would be useful. As seen in Figure 14, system 400 comprises a media source 402 (e.g., a capture, renderer or file). The media source 402 is fed to a projection mapping 404 and then to a tile encoder or transcoder 406, e.g. an encoder 200 encoding according to the present embodiments as described herein. The encoded information can be stored in storage 408 and then fed to a server 410. It can be transmitted over a network 420 to a viewing device 430. For example, the image is one of video, and the viewing device 430 has a decoder 300 as described herein for decoding the image, rendering 432 the image, and a display 434 for displaying the image to a user of the viewing device 430. Such a viewing device can be, for example, a Head Mounted Display (HMD) device or any display device.
Some of the embodiments contemplated herein are described more fully with reference to the accompanying drawings. Other embodiments, however, are contained within the scope of the subject matter disclosed herein. The disclosed subject matter should not be construed as limited to only the embodiments set forth herein; rather, these embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art.

Claims

CLAIMS What is claimed is:
1. A method (60) of applying a deblocking filter to intra-reference samples, the method comprising:
setting (62) a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU) (10);
based on the step-size N:
setting (64) a first reference sample in a top-left corner of the current CU to be a first checkpoint;
setting (72) a second checkpoint between two reference samples in a top-row of the current CU; and
setting (82) a third checkpoint between two reference samples in a left-most column of the current CU;
based on one or more filter decisions:
determining (66) that reference samples neighbouring the first checkpoint are to be filtered; and
selecting (68) a first deblocking filter from a plurality of deblocking filters to filter the reference samples neighbouring the first checkpoint responsive to determining that the reference samples neighbouring the first checkpoint are to be filtered; determining (76) that reference samples neighbouring the second checkpoint are to be filtered; and
selecting (78) a second deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the second checkpoint responsive to determining that the reference samples neighbouring the second checkpoint are to be filtered; determining (86) that reference samples neighbouring the third checkpoint are to be filtered;
selecting (88) a third deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the third checkpoint responsive to determining that the reference samples neighbouring the third checkpoint are to be filtered; and filtering (70, 80, 90) the reference samples neighbouring the first, second, and third checkpoints using the first, second, and third deblocking filters, respectively; and determining (92) an intra prediction of the current CU based on at least one of the reference samples that was filtered using one of the first, second, and third deblocking filters.
2. The method of claim 1 further comprising:
determining (132) the first set of one or more filter decisions based on a variation of
reference samples neighbouring the first checkpoint;
determining (134) the second set of one or more filter decisions based on a variation of reference samples neighbouring the second checkpoint; and
determining (138) the third set of one or more filter decisions based on a variation of
reference samples neighbouring the third checkpoint.
3. The method of any of claims 1-2 wherein filtering the reference samples neighbouring the second checkpoint comprises:
determining (74) whether overlap exists for the reference samples neighbouring the second checkpoint, wherein overlap exists if the reference samples were previously filtered with respect to a previous checkpoint; and
filtering the reference samples neighbouring the second checkpoint responsive to
determining that no overlap exists.
4. The method of claim 3 further comprising determining (74) that overlap exists for the reference samples neighbouring the second checkpoint responsive to determining (102, 104) that:
a previous checkpoint positioned in the top-row N reference samples away from the second checkpoint was previously filtered using a deblocking filter having a length KPREVIOUS that is less than N; and
a length of the second deblocking filter KCURRENT + KPREVIOUS is greater than N.
5. The method of claim 3 further comprising determining (74) that overlap exists for the reference samples neighbouring the second checkpoint responsive to determining (1 12, 1 14) that:
a previous checkpoint positioned in the top-row N reference samples away from the second checkpoint was previously filtered using a deblocking filter having a length KPREVIOUS that is less than N; and
a maximum filter length KMAC OΪ the second deblocking filter + KPREVIOUS is greater than N.
6. The method of claim 3 further comprising determining that overlap exists for the reference samples neighbouring the second checkpoint responsive to determining (122) that a previous checkpoint positioned in the top-row N reference samples away from the second checkpoint was previously filtered.
7. The method of any of claims 1-2 wherein filtering the reference samples neighbouring the third checkpoint comprises:
determining (84) whether overlap exists for the reference samples neighbouring the third checkpoint, wherein overlap exists if the reference samples were previously filtered with respect to a previous checkpoint; and
filtering (90) the reference samples neighbouring the third checkpoint responsive to
determining that no overlap exists.
8. The method of claim 7 further comprising determining that overlap exists for the reference samples neighbouring the third checkpoint responsive to determining (102, 104) that:
a previous checkpoint positioned in the left-most column N reference samples away from the third checkpoint was previously filtered using a deblocking filter having a length KPREVIOUS that is less than N; and
a length of the third deblocking filter KCURRENT + KPREVIOUS is greater than N.
9. The method of claim 7 further comprising determining that overlap exists for the reference samples neighbouring the third checkpoint responsive to determining (1 12, 1 14) that:
a previous checkpoint positioned in the left-most column N reference samples away from the third checkpoint was previously filtered using a deblocking filter having a length KPREVIOUS that is less than N; and
a maximum filter length KMAC OΪ the third deblocking filter + KPREVIOUS is greater than N.
10. The method of claim 7 further comprising determining (122) that overlap exists for the reference samples neighbouring the third checkpoint responsive to determining that a previous checkpoint positioned in the left-most column N reference samples away from the third checkpoint was previously filtered.
1 1. The method of any of claims 1 -10 further comprising generating an array comprising 2*N reference samples and a checkpoint, wherein there are a set of N reference samples on each side of the checkpoint, and wherein the checkpoint comprises one of the first, second, and third checkpoints.
12. The method of any of claims 1-11 wherein each of the first, second, and third sets of one or more filter decisions comprises a set of one or more equations, and wherein each equation compares a variation of a signal for a set of one or more of the N references samples on each side of the checkpoint to a corresponding threshold.
13. The method of any of claims 1 -11 further comprising executing a linear decay function modifying N reference samples from a first reference point refMWdie to each of a second reference point refp and a third reference point refo.
14. The method of claim 13 further comprising:
computing the first reference point refMWdie by low-pass filtering the 2*N reference samples in the array; and
computing the second reference point refp and the third reference point refo by averaging results of the low-pass filtering of the 2*N reference samples.
15. The method of any of claims 13 wherein when the checkpoint in the array is the first checkpoint:
the second reference point refp is derived from the set of N reference samples positioned on a first side of the checkpoint; and
the third reference point refo is derived from the set of N reference samples positioned on a second side of the checkpoint.
16. The method of claim 15 wherein the first reference point refMWdie comprises the reference sample (TL) in the top-left corner of the current CU.
17. The method of any of claims 1 -16 further comprising:
filtering the first and second reference points refMWdie and refo using the first deblocking filter with a coefficient fi; and
clipping the second reference point refp based on a threshold value.
18. The method of any of claims 1 -17 applied to all CUs.
19. The method of any of claims 1 -17 applied to one or more CUs, each having a dimension that is greater than a size threshold for the CU.
20. The method of any of claims 1-17 applied to one or more CUs having a dimension that is equal to or greater than N.
21. The method of any of claims 1-17 applied to angular prediction modes.
22. The method of claim 21 applied for a first set of intra-prediction modes, and not for a second set of intra-prediction modes.
23. An encoder (200) comprising:
communications interface circuitry (240); and
a processing circuit (210) operatively connected to the communications interface circuitry and configured to:
set (62) a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU) (10);
based on the step-size N:
set (64) a first reference sample in a top-left corner of the current CU to be a first checkpoint;
set (72) a second checkpoint between two reference samples in a top-row of the current CU; and
set (82) a third checkpoint between two reference samples in a left-most column of the current CU;
based on one or more filter decisions:
determine (66) that reference samples neighbouring the first checkpoint are to be filtered;
select (68) a first deblocking filter from a plurality of deblocking filters to filter the reference samples neighbouring the first checkpoint responsive to determining that the reference samples neighbouring the first checkpoint are to be filtered; determine (76) that reference samples neighbouring the second checkpoint are to be filtered;
select (78) a second deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the second checkpoint responsive to determining that the reference samples neighbouring the second checkpoint are to be filtered;
determine (86) that reference samples neighbouring the third checkpoint are to be filtered;
select (88) a third deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the third checkpoint responsive to determining that the reference samples neighbouring the third checkpoint are to be filtered; and
filter (70, 80, 90) the reference samples neighbouring the first, second, and third checkpoints using the first, second, and third deblocking filters, respectively; and determine (92) an intra prediction of the current CU based on at least one of the
reference samples that was filtered using one of the first, second, and third deblocking filters.
24. The encoder of claim 23 wherein the processing circuit is further configured to: determine (132) the first set of one or more filter decisions based on a variation of reference samples neighbouring the first checkpoint;
determine (134) the second set of one or more filter decisions based on a variation of
reference samples neighbouring the second checkpoint; and
determine (138) the third set of one or more filter decisions based on a variation of reference samples neighbouring the third checkpoint.
25. The encoder of any of claims 23-24 wherein the processing circuit is configured to filter the reference samples neighbouring the second checkpoint responsive to determining (74) that none of the reference samples were previously filtered with respect to a previous checkpoint.
26. The encoder of any of claims 23-24 wherein the processing circuit is configured to filter the reference samples neighbouring the third checkpoint responsive to determining (84) that none of the reference samples were previously filtered with respect to a previous checkpoint.
27. The encoder of any of claims 23-26 wherein the processing circuit is further configured to generate an array comprising 2*N reference samples and a checkpoint, wherein there are a set of N reference samples on each side of the checkpoint, and wherein the checkpoint comprises one of the first, second, and third checkpoints.
28. The encoder of any of claims 23-27 wherein the processing circuit is further configured to determine the one or more filter decisions.
29. The encoder of claim 28 wherein to determine the one or more filter decisions, the processing circuit is further configured to compare a variation of a signal for a set of one or more of the N references samples on each side of the checkpoint to a corresponding threshold.
30. The encoder of any of claims 23-27 wherein the processing circuit is further configured to execute a linear decay function modifying N reference samples from a first reference point refMiddie to each of a second reference point refp and a third reference point refo.
31. The encoder of claim 30 wherein the processing circuit is further configured to:
compute the first reference point refMiddie by low-pass filtering the 2*N reference samples in the array; and
compute the second reference point refp and the third reference point refo by averaging results of the low-pass filtering of the 2*N reference samples.
32. The encoder of any of claims 30 wherein when the checkpoint in the array is the first checkpoint:
the first reference point refMWdie comprises the reference sample in the top-left corner (TL) of the current CU;
the second reference point refp is derived from the set of N reference samples positioned on a first side of the checkpoint; and
the third reference point refo is derived from the set of N reference samples positioned on a second side of the checkpoint.
33. The encoder of any of claims 23-32 wherein the processing circuit is configured to:
filter the first and second reference points refMWdie and refo using the first deblocking filter with a coefficient fi; and
clip the second reference point refp based on a threshold value.
34. An encoding circuit (210) configured to implement the method of any of claims 1-22.
35. A computer program (220) comprising executable instructions that, when executed by a processing circuit (210) in an encoder (200), causes the encoder to perform the method of any of claims 1-22.
36. A non-transitory computer-readable storage medium (230) comprising executable instructions (220) that, when executed by a processing circuit (210) in an encoder (200), causes the encoder to perform the method of any of claims 1-22.
37. A decoder (300) comprising:
communications interface circuitry (340); and
a processing circuit (310) operatively connected to the communications interface circuitry and configured to:
set (62) a step-size N defining a granularity of one or more checkpoints in a current coding unit (CU) (10);
based on the step-size N:
set (64) a first reference sample in a top-left corner of the current CU to be a first checkpoint;
set a(72) second checkpoint between two reference samples in a top-row of the current CU; and
set (88) a third checkpoint between two reference samples in a left-most column of the current CU;
based on one or more filter decisions:
determine (66) that reference samples neighbouring the first checkpoint are to be filtered;
select (68) a first deblocking filter from a plurality of deblocking filters to filter the reference samples neighbouring the first checkpoint responsive to determining that the reference samples neighbouring the first checkpoint are to be filtered; determine (76) that reference samples neighbouring the second checkpoint are to be filtered;
select (78) a second deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the second checkpoint responsive to determining that the reference samples neighbouring the second checkpoint are to be filtered;
determine (86) that reference samples neighbouring the third checkpoint are to be filtered; and
select (88) a third deblocking filter from the plurality of deblocking filters to filter reference samples neighbouring the third checkpoint responsive to determining that the reference samples neighbouring the third checkpoint are to be filtered; and
filter (70, 80, 90) the reference samples neighbouring the first, second, and third checkpoints using the first, second, and third deblocking filters, respectively; and determine (92) an intra prediction of the current CU based on at least one of the
reference samples that was filtered using one of the first, second, and third deblocking filters.
38. The decoder of claim 37 wherein the processing circuit is further configured to: determine (132) the first set of one or more filter decisions based on a variation of reference samples neighbouring the first checkpoint;
determine (134) the second set of one or more filter decisions based on a variation of
reference samples neighbouring the second checkpoint; and
determine (138) the third set of one or more filter decisions based on a variation of reference samples neighbouring the third checkpoint.
39. The decoder of any of claims 37-38 wherein the processing circuit is configured to filter the reference samples neighbouring the second checkpoint responsive to determining (74) that none of the reference samples were previously filtered with respect to a previous checkpoint.
40. The decoder of any of claims 37-39 wherein the processing circuit is configured to filter the reference samples neighbouring the third checkpoint responsive to determining (84) that none of the reference samples were previously filtered with respect to a previous checkpoint.
41. The decoder of any of claims 37-40 wherein the processing circuit is configured to generate an array comprising 2*N reference samples and a checkpoint, wherein there are a set of N reference samples on each side of the checkpoint, and wherein the checkpoint comprises one of the first, second, and third checkpoints.
42. The decoder of any of claims 37-41 wherein the processing circuit is further configured to determine the one or more filter decisions.
43. The decoder of claim 42 wherein to determine the one or more filter decisions, the processing circuit is further configured to compare a variation of a signal for a set of one or more of the N references samples on each side of the checkpoint to a corresponding threshold.
44. The decoder of any of claims 37-41 wherein the processing circuit is further configured to execute a linear decay function modifying N reference samples from a first reference point refMiddie to each of a second reference point refp and a third reference point refo.
45. The decoder of claim 44 wherein the processing circuit is further configured to: compute the first reference point refMWdie by low-pass filtering the 2*N reference samples in the array; and
compute the second reference point refp and the third reference point refo by averaging results of the low-pass filtering of the 2*N reference samples.
46. The decoder of any of claims 44 wherein when the checkpoint in the array is the first checkpoint:
the first reference point refMWdie comprises the reference sample in the top-left (TL) corner of the current CU;
the second reference point refp is derived from the set of N reference samples positioned on a first side of the checkpoint; and
the third reference point refo is derived from the set of N reference samples positioned on a second side of the checkpoint.
47. The decoder of any of claims 37-46 wherein the processing circuit is configured to:
filter the first and second reference points refMWdie and refo using the first deblocking filter with a coefficient fi; and
clip the second reference point refp based on a threshold value.
48. A decoding circuit (310) configured to implement the method of any of claims 1 -22.
49. A computer program (320) comprising executable instructions that, when executed by a processing circuit (310) in a decoder (300), causes the decoder to perform the method of any of claims 1-22.
50. A non-transitory computer-readable medium (330) comprising computer instructions (320) stored thereon that, when executed by a processing circuit (310) of a decoding device (300), controls the decoding device to perform the method of any of claims 1-22.
PCT/EP2019/067419 2018-07-05 2019-06-28 Deblocking of intra-reference samples WO2020007747A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862694150P 2018-07-05 2018-07-05
US62/694,150 2018-07-05

Publications (1)

Publication Number Publication Date
WO2020007747A1 true WO2020007747A1 (en) 2020-01-09

Family

ID=67139747

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2019/067419 WO2020007747A1 (en) 2018-07-05 2019-06-28 Deblocking of intra-reference samples

Country Status (1)

Country Link
WO (1) WO2020007747A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210409701A1 (en) * 2018-03-30 2021-12-30 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130022107A1 (en) * 2011-07-19 2013-01-24 Qualcomm Incorporated Deblocking of non-square blocks for video coding
EP2899982A1 (en) * 2012-09-24 2015-07-29 NTT Docomo, Inc. Video prediction encoding device, video prediction encoding method, video prediction decoding device and video prediction decoding method
EP2916547A1 (en) * 2012-11-30 2015-09-09 Sony Corporation Image processing device and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130022107A1 (en) * 2011-07-19 2013-01-24 Qualcomm Incorporated Deblocking of non-square blocks for video coding
EP2899982A1 (en) * 2012-09-24 2015-07-29 NTT Docomo, Inc. Video prediction encoding device, video prediction encoding method, video prediction decoding device and video prediction decoding method
EP2916547A1 (en) * 2012-11-30 2015-09-09 Sony Corporation Image processing device and method

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ANDERSSON (ERICSSON) K ET AL: "CE2-2.1.1: Long deblocking filters and fixes", no. JVET-K0307, 3 July 2018 (2018-07-03), XP030198885, Retrieved from the Internet <URL:http://phenix.int-evry.fr/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0307-v1.zip JVET-K0307_CE2-2.1.1.docx> [retrieved on 20180703] *
STRÖM (ERICSSON) J ET AL: "CE1: Summary Report on Post-prediction and post-reconstruction filtering", no. JVET-N0021, 23 March 2019 (2019-03-23), XP030204589, Retrieved from the Internet <URL:http://phenix.int-evry.fr/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N0021-v4.zip JVET-N0021_v4.docx> [retrieved on 20190323] *
TAN T K ET AL: "Contouring artefact and solution", 11. JCT-VC MEETING; 102. MPEG MEETING; 10-10-2012 - 19-10-2012; SHANGHAI; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-K0139, 1 October 2012 (2012-10-01), XP030113021 *
ZHANG (ERICSSON) Z ET AL: "Non-CE3: Intra reference sample deblocking", no. JVET-M0138, 8 January 2019 (2019-01-08), XP030200903, Retrieved from the Internet <URL:http://phenix.int-evry.fr/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0138-v2.zip JVET-M0138-v1.docx> [retrieved on 20190108] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210409701A1 (en) * 2018-03-30 2021-12-30 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data
US11750805B2 (en) * 2018-03-30 2023-09-05 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data

Similar Documents

Publication Publication Date Title
CN113632490B (en) Nonlinear adaptive loop filtering in video processing
CN108028920B (en) Method and device for high-level deblocking filtering in video coding and decoding
US20240048775A1 (en) Using neural network filtering in video coding
TWI815927B (en) Block size restrictions for video coding
JP7291846B2 (en) Sample decision for adaptive loop filtering
WO2019147813A1 (en) Adaptive loop filtering on deblocking filter results in video coding
CN113767632A (en) Adaptive loop filtering for video coding and decoding
US9967563B2 (en) Method and apparatus for loop filtering cross tile or slice boundaries
CN112997500B (en) Improvements to region-based adaptive loop filters
US12034911B2 (en) Definition of zero unit
US20230319318A1 (en) Asymmetric deblocking in a video encoder and/or video decoder
WO2021036981A1 (en) Deblocking filtering at coding block or subblock boundary
KR20210113371A (en) Deblocking of transform sub-block boundaries
KR20220063177A (en) Adaptive loop filtering between different video units
WO2020228661A1 (en) Deblocking filter for video coding
WO2020007747A1 (en) Deblocking of intra-reference samples
US20220141464A1 (en) Deblocking in a video encoder and/or video decoder
KR20200144131A (en) Deblocking of implicit transform unit boundaries
WO2020171760A1 (en) Deblocking on 4x4 grid using long filters
JP7544921B2 (en) Deblocking filtering at coding block or sub-block boundaries
WO2020003264A2 (en) Filtering of zero unit
JP7386883B2 (en) Deblocking using subpel motion vector thresholding
RU2812618C2 (en) Nonlinear adaptive contour filtering in video data processing
WO2023197181A1 (en) Decoding method, encoding method, decoders and encoders
WO2024002168A1 (en) Padding methods for adaptive loop filter in video coding

Legal Events

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

Ref document number: 19735297

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19735297

Country of ref document: EP

Kind code of ref document: A1