GB2599314A - Method and apparatus for deblocking filtering a block of pixels - Google Patents
Method and apparatus for deblocking filtering a block of pixels Download PDFInfo
- Publication number
- GB2599314A GB2599314A GB2118556.6A GB202118556A GB2599314A GB 2599314 A GB2599314 A GB 2599314A GB 202118556 A GB202118556 A GB 202118556A GB 2599314 A GB2599314 A GB 2599314A
- Authority
- GB
- United Kingdom
- Prior art keywords
- value
- control parameter
- block
- filtering
- clipping
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
A method of filtering a block of pixels in an image comprises obtaining a first clipping control parameter (tC) value based second clipping control value (tC’) and filtering the block so that the filtered sample value is limited to a range based on the first clipping control value. The second clipping control value is obtained based on a quantization parameter for the block. The first clipping control parameter is obtained by bit-shifting the second clipping control parameter to the right by M bits, where M is dependent on a bit depth of the image. An offset, which may be dependent on the bit-depth, may be added to the second clipping control parameter prior to the bit shifting. The method may be used for removing blocking artefacts when decoding an encoded image and the quantisation parameter may be a quantisation used in encoding the block.
Description
METHOD AND APPARATUS FOR DEBLOCKING FILTERING A BLOCK OF
PIXELS
The present disclosure concerns a method and a device for deblocking a reconstructed image in the context of image encoding or decoding. It concerns more particularly the control parameters used in the deblocking in-loop filtering.
Figure 1 illustrates a block diagram of a decoder 100, which may be used to receive data from an encoder according to an embodiment of the invention.
The decoder is represented by connected modules, each module being adapted to implement, for example in the form of programming instructions to be executed by a CPU (not represented here), a corresponding step of a method implemented by the decoder 100.
The decoder 100 receives a bitstream 101 comprising encoded coding units, each one being composed of a header containing information on coding parameters and a body containing the encoded video data. Said encoded video data is entropy encoded, and the motion vector predictors' indexes are encoded, for a given block, on a predetermined number of bits. The received encoded video data is entropy decoded by module 102. The residual data are then dequantized by module 103 and then a reverse transform is applied by module 104 to obtain pixel values.
It should be clarified at this point that transform unit or transform block and coding unit or coding block are loosely interchangeable, and similarly when the block relates to samples of pixels. In the above, the residual data is made of the differences between reference samples and prediction samples, said samples belonging to one component. By extension, a transform block or unit is usually associated to samples, whereas a coding block or unit can refer to either samples, or pixels. Indeed, a pixel has several components, e.g. Y, U and V. In all cases, processing a block of pixels consists in applying a predetermined process to each corresponding block of samples.
The mode data indicating the coding mode are also entropy decoded, and based on the mode, an INTRA type decoding or an INTER type decoding is performed on the encoded blocks of image data.
In the case of INTRA mode, an INTRA predictor is determined by intra reverse prediction module 105 based on the intra prediction mode specified in the bitstream.
If the mode is INTER, the motion prediction information is extracted from the bitstream to find the reference area used by the encoder. The motion prediction information is composed of the reference frame index and the motion vector residual. The motion vector predictor is added to the motion vector residual in order to obtain the motion vector by motion vector decoding module 110.
Motion vector decoding module 110 applies motion vector decoding for each current block encoded by motion prediction. Once an index of the motion vector predictor, for the current block has been obtained the actual value of the motion vector associated with the current block can be decoded and used to apply reverse motion compensation by module 106. The reference image portion indicated by the decoded motion vector is extracted from a reference image 108 to apply the reverse motion compensation 106. The motion vector field data 111 is updated with the decoded motion vector in order to be used for the inverse prediction of subsequent decoded motion vectors.
Finally, a decoded block is obtained. Post filtering is applied by post filtering module 107. Among the various possible known post filtering techniques, HEVC, for instance, employs two tools known respectively as "Sample Adaptive Offset" and as "Deblocking Filter', the later being of interest here and described in the following. A decoded video signal 109 is finally provided by the decoder 100.
It should be noted that usually, some modules are also present in the encoder, such as post-filtering module 107, or dequantization module 103 or reverse transform module 104. During decoding, the decoding of a coding unit is generally based on previously decoded content for prediction. The decoded do 5 not have access to original non-coded coding units. This means that the encoder needs to have access to the decoded version of these coding units. Consequently, after encoding a coding unit, the encoder proceeds to its decoding to store the decoded version of the coding unit to be used for the encoding of the next coding units. In summary, the encoder comprises a decoder and its 10 corresponding modules.
The goal of a deblocking filter is to reduce blocking artefacts usually due to transform coding. As transform coefficients are quantized on a block basis, imperfect reconstruction occurs on steps 103 and 104 of Figure 1. This leads to discontinuities at the boundaries of transform and/or prediction blocks, and is considered as one of the most distracting artefacts, besides reducing coding efficiency.
In HEVC, as well as its candidate successor currently under study under the name JVET, that deblocking filter is made of three mains steps.
In a first step, a filtering type determination occurs at a vertical or horizontal boundary between two blocks, usually based on whether one of the sides of the boundary is INTRA coded, or motion discontinuity on this boundary.
In a second step, gradients are compared to thresholds, to determine whether to filter a set of pixels, and to select the filter to use.
In a third step, once a filter has been selected, actual filtering of said pixels is performed, usually through linear combinations of their values, and restrictions of the range of the linear combination result around said value.
In order to control the deblocking filter process, a set of control parameters are defined and used in the process. These control parameters comprise the boundary strength (bs), a control parameter 13 and a clipping control parameter tc In particular, the clipping control parameter tc is used in one of the conditions to determine between a strong and a weak deblocking filter for luminance component. It is also used in conditions to determine if a filtering is to be done or not, and in the computation of the bounds to the range clipping of the filtering operation.
It appears that, especially when using images with bitdepth greater than 8, the definition of the clipping control parameter tc appears to be too coarse and leading to too large range in clipping the filtering.
The present invention has been devised to address one or more of the foregoing concerns. It concerns a deblocking filtering method with an improved definition of the control parameter tc and/or an improved use of the control parameter tc.
According to an aspect of the invention there is provided a method of filtering as set out in accompanying claim 1. In other aspects there is provided a computer program product and a computer-readable storage medium as set out in claims 5 and 6 respectively. In a further aspect there is provided a device as set out in claim 7.
According to an aspect of the invention there is provided a method of filtering a block of pixels in an image, comprising: obtaining a first clipping control parameter (tc) value based on a quantization parameter of the block; comparing a first value of a first pixel located on one side of an edge in said block and a second value of a second pixel located on the other side of the edge in said block with a predetermined threshold derived from the first clipping control parameter value; and determining whether to apply a strong filtering to the first pixel based on the result of the comparison, wherein: -the strong filtering comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a range value based on the clipping control parameter (tc), the ration between two range values corresponding to successive values of bitdepths being strictly lower than 2.
According to an embodiment, the strong filtering comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a second parameter value that is strictly less than two times the first clipping control parameter value.
According to an embodiment, both the first pixel and the second pixel are adjacent to said edge in said block.
According to an embodiment, if the difference between the first value and the second value is equal to or greater than the predetermined threshold, applying a weak filtering to the first pixel so that a filtering difference between the filtered first pixel value and the first pixel value is equal to or less than a half of the first clipping control parameter value.
According to an embodiment, when the first clipping control parameter value is tc, the predetermined threshold is (51c + 1)»1, and the second parameter value is tc/n, wherein n is an integer greater or equal to 2.
According to an embodiment, the strong filtering comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a second parameter value that is equal or less than the first clipping control parameter value.
According to an embodiment, the weak filtering comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a second parameter value that is striclty less than the first clipping control parameter value.
According to an embodiment, the filtering of a chrominance value comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a second parameter value that is striclty less than the first clipping control parameter value.
According to an embodiment, second parameter value is dependent on the space-frequency transforms used in the block of pixels.
According to an embodiment, obtaining the first clipping control parameter (to) comprises: obtaining a second clipping control parameter (to') corresponding to a maximum bitdepth MaxBitDepth; and obtaining the first clippling control parameter (to) by dividing the second clipping control parameter by a factor stricly lower than 2(McaBitDepth-BitDepthY) for a bitdepth BitDepthY.
According to an embodiment, the first clipping control parameter tC is given by: - tc = (tc' + R(BitDepthY)) » (MaxBitDepth-BitDepthY)/2; - where R(BitDepthY) is a rounding function.
According to an embodiment, the first clipping control parameter tc is given by: - tc = (tc' * g(BitDepthY)) » N; where R is a rounding positive integer value and N a positive integer value and wherein g(bitdepth+1) < 2*g(bitdepth) for all bitdepth values.
According to an embodiment, the function g is given in a table.
According to an embodiment, the values of g are 11, 21, 33, 63 and 115 for respective bitdepth values of 8, 9, 10, 11 and 12.
According to another aspect of the invention there is provided a computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to the invention, when loaded into and executed by the programmable apparatus.
According to another aspect of the invention there is provided a computer-readable storage medium storing instructions of a computer program for implementing a method according to the invention.
According to another aspect of the invention there is provided a device 20 comprising a processor configured for executing all the steps of the method according to the invention.
At least parts of the methods according to the invention may be computer implemented. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit", "module" or "system". Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
Since the present invention can be implemented in software, the present invention can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible, non-transitory carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like. A transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RE signal.
Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which: Figure 1 illustrates a block diagram of a decoder with deblocking filtering; Figure 2 illustrates the deblocking filtering of a boundary between two 4x4 block of pixels P and Q; Figure 3 illustrates an embodiment of a conditional reduced clipping range filtering method according to an embodiment of the invention; Figure 4 is a schematic block diagram of a computing device for implementation of one or more embodiments of the invention.
Deblocking filtering concerns the filtering of samples values, and by extension pixels values, in the neighbourhood of the boundary of two blocks of pixels. The blocks of pixel may be coding blocks or transform blocks. A coding block is a block of pixels used as a basic entity in coding, while a transform block is a block of samples used as a basic entity for quantization. In some embodiments, a coding block may be divided into several transform blocks for quantization. The boundary may be vertical between the currently decoded block and the previously decoded block located on its left. The boundary may also be horizontal between the currently decoded block and the previously decoded block located on its top.
Each sample is typically a triplet of three values, Y, U and V, where Y is the luminance of the sample, U and V are the two chrominance of the sample. The block may therefore be seen as forming three blocks of values, one block for each component, Y, U and V. In a first step, the control parameter bS, for boundary strength, is determined according to a set of criteria. This is typically performed on an 8x8 block basis, although some of the other processing in the deblocking loop-filter occurs on 4 sets of columns or rows at a time along the edges of said 8x8 blocks.
The value of bS is determined to be "2" when at least one of the two blocks lying to both sides of the boundary is encoded according to an INTRA coding mode. INTRA coding modes are coding modes where the block predictor for encoding the current block is determined from pixels values within the current image.
The value of bS is determined to be "1" if any one of the following condition is met: * At least one of the two blocks has non-zero coded residual coefficient and boundary is a transform boundary. A transform boundary being a boundary between two transform units.
* The absolute difference between corresponding spatial motion vector components of the two blocks are greater or equal to 1 in units of integer pixels.
* The motion compensated prediction for the two blocks refers to different reference pictures or the number of motion vectors is different for the two blocks The value of bS is determined to be zero if none of these conditions are met.
It is to be noted that the boundary strength does not depend on actual pixel values but on coding information like coding mode, residual presence, or motion information. When the boundary strength is determined to be zero, no filtering occurs on this boundary. The invention does not use the boundary strength and may apply to embodiments where the definition of the boundary strength is modified compared to the herein description.
Once the boundary strength bS has been determined, the control parameters p and tc must be determined. These control parameters are determined for the luminance value of pixels and also, with different results, for chrominance values of pixels.
The determination of P and Tc is based on the following parameters: * the boundary strength bS that has been determined, * some offsets value which are determined at the frame or slice level, meaning that their values are defined at encoding and found as parameter in the bitstream, namely slice_beta_offset_div2 and slice_tc_offset_div2, * the quantization parameters of the two blocks P and Q separated by the current boundary and noted QPp and QPq, * the bitdepth of the luminance component of the pixel, BitDepthy, meaning the number of bits used to code the luminance value of a pixel.
In a first step, a value qPL is computed according to: qPL = ((QPq + QPp + 1) >> 1) where X » y, means integer value X shifted to the right by y bits, i.e. divided by 2, the result of which is still an integer.
It is to be noted that qPL is representative of the mean value of the quantization parameter of the two blocks.
From the value qPL, a first Q value is computed for 13 according to: Q = Clip3(0, 51, qPL + (slice_beta_offset_div2 << 1)) Where Clip3(X, Y, Z) = X if Z a W, Y if Z >= Y, Z if X<Z<Y; and X << y, means integer value X shifted to the left by y bits, i.e. multiplied by 2, the result of which is still an integer.
It is to be noted that the function Clip3 is the clipping of value Z in the range [X, Y] meaning that this first Q value is comprised between 0 and 51.
From the value qPL, a second 0 value is computed for tc according to: Q = Clip3(0, 53, qPL + 2 * (bS -1) (slice_tc_of fset_div2 << 1)) This second Q value is representative of the average of the quantization parameter of the two blocks plus an offset value.
It is to be noted that the second Q value is comprised between 0 and 53.
The first and the second Q values are used, respectively, to get 13' and tc' in the following table: Q 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 IV 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 7 8 tc' 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Q 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 13' 9 10 11 12 13 14 15 16 17 18 20 22 24 26 28 30 32 34 36 tc' 1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 Q 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 13' 38 40 42 44 46 48 50 52 54 56 58 60 62 64 tc' 5 5 6 6 7 8 9 10 11 13 14 16 18 20 22 24 Finally, the control parameters [3 and tc are obtained from pi and tc' according to: fl = 13' * ( 1 << (BitDepthY -8) ) tC = tC' * ( 1 << (BitDepthY -8) ) For a bitdepth of 8 bits, we get tc = tc'. The tabulated value tc' correspond to the clippling control parameter tc, used in particular in the previously mentioned clipping operations and in filtering criterion, for a bitdepth having the value 8. When the bitdepth increases, tc corresponds to tc' multiplied by a multiplying factor that increases with the bitdepth. According to this equation, the multiplying factor corresponds to 2 (BitDepthy-It is to be noted that the above p and tc values are given for the luminance component. For the chrominance component, 13 and tc values are computed similarly with the quantization parameters defined for chrominance and the bitdepth BitDepthc of the chrominance component.
Control parameter bS is defined at the level of each boundary as its computation depends on the particular encoding modes and parameter of the two blocks surrounding the boundary. Control parameters 13 and tc are defined at the level of the transform unit as the presence of residuals (usually represented by a coded block flag, organized in a quadtree for HEVC) may vary from transform unit to transform unit. Similarly, the quantization parameter may vary between two neighbouring coding units.
Figure 2 illustrates the deblocking filtering of a boundary between two 4x4 block of pixels P and Q. Pixels of blocks P and Q are identified as the set of pixels 200. Per convention, the pixels pi; are in block P, which has been coded before block Q, which contains pixels qii. "i" indicates the column and "j" the line index of the pixel in the block. The converse horizontal boundary where P is on top of Q works the same with obvious adaptations.
On step 210, it is checked whether the boundary for a set of pixels lies on a PU (prediction unit) or a TU (transform unit) boundary. The test is true on a PU or on a TU boundary, and false when not on such a boundary. This step is here to invoke the algorithm only on PU or TU boundaries.
Step 211 checks whether the boundary strength bS, as determined above, is non-null. If it is non-null, the boundary is to be filtered.
Various gradient strengths are to be measured on step 212. Also, please note that for simplicity sake, the determination of control parameters 13 and to can be seen as performed here, as the parameters depend on the exact position on the boundary, because the QPs on the P side may vary.
The sum of these gradients is measured and compared to p. For HEVC, and so far for JVET, this corresponds to the following equation: p20 -2p lo + pOo 1+ 1P23 -2p 13 + p03 q20 -2q lo + q0o 1 ± q23 -2q13 + q03 <p If this sum is low enough, the blocks on each side are considered susceptible enough to noticeable blocking artefacts, and deblocking continues with step 213, otherwise the set of pixels is considered not to need filtering, and its deblocking ends on step 218.
Step 213 starts the iteration over 10 subsets of pixels: lines for a vertical boundary as illustrated on Figure 2 and similarly columns for a horizontal boundary. Therefore, the first said 1D subset is selected on this step by setting an index i to 0. Please note that several operations irrelevant to the invention, further checking what to filter based on further comparing gradient top, or coding parameters (e.g. IPCM or lossless), have been omitted.
Step 214 determines whether so-called strong or weak filtering is to be applied to the 10 subset. For this purpose, gradients on each side of the 25 boundary are measured. For HEVC, and so far for JVET, the corresponding comparisons to 13 are used as criteria for the decision: 1 p2i -2p + pOi + q2i -2q1i + q0i 1 < f3/8 P3i -POi 1+ q0i -(Pi <f3/4 Another criterion of greater relevance relies on to: poi -q01 1< ((1+5*tc) » 1) The choice of the strong or weak filter is made by comparing the gradient to a threshold based on the clipping control parameter tc. As tc is an integer, the above computation performs a rounding to an integer, e.g. for tc=3, the result is 8 and for tc=4, it is 10.
If all these criteria are satisfied, strong filtering can be applied on the 1D subset at step 216, otherwise weak filtering is applied on the 1D subset at step 215.
Whether this was the last 1D subset to filter is checked on step 217. For HEVC, and JVET so far, the number of 1D subset is 4. If it is the case, all pixels of the set have been filtered, and filtering stops on step 218. Otherwise, next 1D subset is selected on step 219 by incrementing i.
It is to be noted that the whole process of Figure 2 only apply to luminance component. For chrominance component, the only criterion checked to enable the filtering is whether bS is strictly greater than 1.
The strong filtering for the luminance component will now be described.
For pixels p2, to p0, and q0, to q2,, a linear combination of itself with its two neighbours on each side (total 4) is computed. If one of them would not belong to set 200, it is omitted and the weights of the linear combination are modified accordingly. Without listing all of them (they are symmetrical for qj,), this results in the following computations for HEVC (and JVET so far): p2, = Clip3(p2; -retc, p2; +29c, (2*p31 + 3*p2; + p 1, + p01 + q0, + 4)>>3) ph = Clip3(p 1 -rtc, p1 i +29c, (p2, + ph + p0 + q0, + 2)>>2) p0, = Clip3(p0; -retc, p0, +29c, (p2, + 2*p + 2 p0, + 2*q0, + ql, + 4) » 3) The weak filtering for the luminance component will now be described. The filtering of the complete 1D subset is conditioned to: A-(9 *(q0,-p0,)-3*(q1,-p1,)+ 8) >> 4 < 10*tc If the condition is met, filtering for q0, and p0, can be performed as follows: A = Clip3( -tc, tc, A) pOi = CliplY( pOi + A) q0i = CliplY( q0 -A) with Clip1Y(val) the equivalent of Clip3(minY, maxY, val) and minY and maxY being respectively the minimal and maximal sample values, i.e. 0 and 255 for 8 bits content.
Then, if p1, is to be filtered (according to conditions irrelevant to the invention as depending on p), the following applies: Ap = Clip3( -( tc » 1), tc >> 1, ( ( ( p2 + pOi + 1) » 1) -pl i+ A) » 1) ph' = CliplY( ph+ Ap) Similarly, if q1, is to be filtered, the following applies: Aq = Clip3( -( tc » l),tc » 1, ( ( ( q2i + q0i + 1) » 1) -qli-A) » 1) qlit= Cliply( qli+ Aq) Regarding the filtering of the chrominance component, when bS > 1, when at least one of blocks P and Q is coded as INTRA. In this case, the simplified filtering obeys: A= Clip3( tc, ( ( ( ( q0i -p0i) c< 2)+pli-gli+ 4) >> 3)) pOit = Clip1C( pEh + A) = Clip1C( q0 -A) The derivation and use of the control parameter tc suffers from a number of inefficiencies or inaccuracies, in particular its derivation from bitdepth is way too coarse and, at least in JVET, the range of allowed variations in the filtered output is too large, especially when considering the quantization error distribution at a given quantizer step, which has narrowed due to the improvements in JVET.
Indeed, the clipping applied can be considered to be the maximum range above which it is uncertain which part is a blocking artefact due to quantization, and actual details such as an edge.
According to a first aspect of the invention, the derivation of the clipping control parameter tc is not modified. The clipping control parameter tc is still determined as in the prior art based on the quantization parameter of the block.
Regarding the conditions used to determine between the strong filtering and the weak filtering of the pixels, the main condition is the equation: pOi -(Oil< ((1+5*(c) » 1) This condition is still used and is not amended, meaning that the difference between a pixel value located on one side of a boundary and a pixel located on the other side of the boundary is compared to a threshold derived from the control parameter tc.
We have seen that the clipping used in the strong filtering that limit the extent of the filtering is given by equations: p2i = Clip3(p2i -2*tc, p2i +29c, (2*p3i + 3*p2i + pij + pOi + qO + 4)>>3) ph = Clip3(pli -2*tc, ph +29c, (p2i + ph + pOi + q0i + 2)>>2) pth = Clip3(p0; -2*tc, pth +29c, (p2; + 2*p1i + 2 pOi + 2*(10; + gli + 4) » 3) Meaning that, for all pixels, the filtered pixel value differs from the original pixel value by no more than 21c.
According to this first aspect, the clipping range is reduced to [-tc, tc], meaning that the filtered pixel value differs from the original pixel value by no more than tc. This may be achieved by replacing the clipping control parameter tc in the clipping equation of the strong filtering by a second clipping control parameter t02 which is lower or equal to tc/2.
While this is the preferred embodiment, as soon as the clipping range becomes strictly lower than 21c, the results are improved. This means that the invention covers a reduction of the clipping range for the strong filter to bring the range strictly lower than rtc, and similarly strictly lower than tc for the weak filter and the chrominance when applied to these also.
We have seen that the clipping control parameter tc is increased by a multiplying factor 2(BitDePthY-8) compared to tc' when the bitdepth is greater than 8. Using a second clipping control parameter tc2 corresponding to tc/2 for clipping has the effect of using a multiplying factor 2(8aDepthy-13-1)i dividing by 2 the evolution of the clipping control parameter with the bitdepth. This is because the evolution by 2(8itDepthy-8) has been found in experiments to be too strong. This corresponds to having the ratio between two range clipping values corresponding to two successive values of bitdepth strictly lower than 2.
In some embodiments, tc2=tc/2.
In some embodiments, tc2=tc/N, with N an integer greater or equal to 2.
In some embodiments, tc2 = tc/2N, with N an integer greater or equal to In some embodiments, tc2 is given by a table indexed by tc values. For example, tc2 = TcTable2[tc], with TcTable2[tc] lower or equal to tc for all tc values.
In some embodiments, the second control parameter tc2 is used also for clipping in the weak filtering. Namely, the clipping equation of the weak filtering A = Clip3( -tc, tc, A) is replaced by A = Clip3( -tc2, tc2, A).
Similarly, the equations can be modified as follows: Ap = Clip3( -( tc2 >> 1), to. >> 1, ( ( ( p2 + p0 + 1) >> 1) -pl + ) >> 1) Aq = Clip3( -( tc2 » I), » 1, ( ( ( q2 + q0i + 1) » 1) -qli -A) » 1) In further embodiments, the second clipping control parameter tc2 used is adaptive and signaled, possibly at the CTB, slice, tile or image level. This signalization level can be arbitrary, i.e. declared in number of samples or CTB, and can be independent for luma and chroma. The adaptiveness can rely on signaling the value of N, or as the offset into the sets of available clip range modifiers (e.g. 1/2, 3/4, 1/4, . ).
In yet further embodiments, the second control parameter tc2 is dependent of the space-frequency transforms used in the block. In JVET, for instance, these transforms are separable into a vertical 1D pass and another horizontal 1D pass. The sets of available transform for each pass can differ according to the coding mode, signaled information and whether it is a horizontal or vertical pass, as is the case for JVET. For instance, DST-IV, DST-VII, DCT-II and DCT-IV are known transform functions classically used there. Accordingly, the second control parameter tc2 may depend on whether it is a vertical or horizontal boundary, and thus which transforms have been used in each pass.
The previous embodiments concern the reduction of the range clipping for 20 filtering the luminance component. In some embodiment, the range clipping used in filtering the chrominance component may be also reduced. Typically, the clipping equation: A = Clip3(-tc, tc, ( ( ( ( q0i -pOi) << 2) + pli -cili+ 4) >> 3)); becomes: A = Clip3( tc2, ( ( ( ( q0; -pOi) << 2)+pli-ci1i+ 4) >> 3) ).
In some embodiments, the use of the reduced clipping range in filtering may be conditioned to some criterion. The used criterion may be based on specific coding properties, such as the activation of some other in-loop filters, in particular the Adaptive Loop Filter (ALF). The used criterion may also be based on the use for either or both of the P and Q block of specific coding tools, in particular Overlapped Block Motion Compensation or Reference Sample Adaptive Filtering. In some embodiments, the criterion may be based on the kind of codec used, for example regular range may be used for HEVC while reduced range may be used for JVET.
Adaptive Loop Filter (ALF) is an adaptive convolution filter, the shape and coefficients of which can be adapted throughout the image, with their signaling implicit (with or without prediction). Currently in JVET, the shape is usually a square turned 45° sideways, but can be a cross, and the length in one dimension varies from 3 to 9. ALF has seen extensive change through its design, but the prevalent property is the adaptive convolution and its location after deblocking filtering (and SAO).
Overlapped Block Motion Compensation is a probabilistic prediction model for motion information that render the prediction of motion information more continuous on the boundaries of blocks.
Reference Sample Adaptive Filtering is a technique used in JVET to filter the reference samples used in generating the predictor blocks in INTRA coding mode prediction. The actual filter used may be signaled in the bitstream. This technique allows an improved continuity in the prediction generated in JVET.
The adaptive multiple transforms, like DST, DCT, are the transforms that can be used for transforming block values into blocks of transform coefficients which are then subject to quantization.
Figure 3 illustrates an embodiment of a conditional reduced clipping range filtering method as described above.
It is an updated version of Figure 2, steps 310 to 318 are respectively identical to steps 210 to 218, while new step 320 and 321 implements aspects of the invention.
Step 320 checks whether the clipping range should be modified according to a criterion as described above.
Step 321 then modifies said clipping range. In the preferred embodiment, it consists in scaling down (i.e., produce a lower value) the tc value used for clipping operations. Typically, this is where the second control parameter tc2 is computed from the control parameter tc. This second control parameter tc2 is then used in some or all of the clipping operations in filtering comprising the strong filtering of the luminance component.
We have seen that the evolution by 2(BitDepthy-8) of the clipping control parameter tc compared to tc' has been found in experiments to be too strong. The evolution has been reduced to 2(B1tDepthy-8-1) for the clipping operations in the preferred first embodiment. According to experiments, an intermediate result gives the best results. Moreover, by defining the clipping control parameter for a bitdepth of 8 and multiplying it for greater bitdepth, the resulting value lacks of precision for these greater values of bitdepth. This embodiment is an alternative method for reducing the clipping range regarding the prior art.
According to this embodiment, the tabulated value tc' corresponds to the maximum envisaged bitdepth, MaxBitDepth = 16 in the exemplary embodiment, and the actual clipping control parameter is obtained by dividing this tabulated value by a dividing factor to get the final value of the clipping control parameter to fo lower values of bitdepth. By keeping the dividing factor strictly lower than 2(MaxEntDepth-13(tDepth1) for an actual bitdepth of BitDepthY, we guarantee that the multiplying factor between two values of tc corresponding to successive values of bitdepth is strictly lower than2, and advantageously greater or equal to 1, and that the clipping range of the strong filtering is reduced to a range strictly lower than rtc. This correspond to having the ratio between two range clipping values corresponding to two successive values of bitdepth strictly lower than 2. By defining the tabulated value tc' for a maximum bitdepth, its extension in value is greater and it allows to define the values of tc', and therefore the values of the clipping control parameter tc, with a better precision. By keeping this multiplying factor between tc and tc' strictly lower than 2(BitDepthy-8), we guarantee that the clipping range is actually reduced compared to the prior art where this multiplying factor is equal to 2(ElitDepthy-13).
Embodiments modifying this formula may consist in the following modifications. Currently, the equation to obtain the clippling control parameter tc for the tabulated value tc' consists in multiplying by 2(BitDepthy-8) a value in the table. Wien operating at 10 or even 12 bits, this exhibits a significant quantization, e.g. several items maybe at 4 and then the following ones being 8 without any intermediate values.
The preferred embodiment here is to increase the precision in the table, e.g. by modelling said table, then increase the precision by premultiplying the values provided by the model with a constant. An example of this is:
TcTable[Q] = 8 *
where the table was modelled as an exponential law between a given Q value and the target tc' value, and the pre-multiplier being 8 This results in the following table: Q 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 tcr 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 3 3 3 4 Q 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 te' 4 5 6 6 7 8 9 10 12 13 15 16 18 21 23 26 29 33 37 Q 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 te 41 46 52 58 65 73 82 92 103 115 129 144 162 181 203 227 Compared to HEVC, the precision of its elements has been increased from to 8 bits: this is a reasonable change on the storage size. Also please note that this is only a starting point: the model, or particular points can be optimized under visual inspection.
Finally, to obtain the final value of tC, following equations may be used: tC = (tC' + R(BitDepthY)) >> f(BitDepthY), Or tC = (tC * g(BitDepthY) + B) >> N, with the condition. g(BitDepth + 1) < 2 * g(BitDepth) In the preferred embodiments are functions R, f and g are: f( BitDepthY) = (16 -BitDepthY) / 2 g( BitDepthY) = 16* 2(B* BitDepthY + with B = 0.857 and C = -7.44 R(BitDepthY) = R = 0 It should be noted that B<1, as expected with the observation that g(BitDepth + 1) < 2g(BitDepth).
The later equation for g, similarly to TcTable, is ideally precomputed and stored in a table. As the storage needed for the table is a classical problem in implementation cost, N is usually a compromise between the size of the table for g, and precision, also dictated by TcTable. Therefore, and for the sake of example, if values in TcTable were to be doubled for precision purposes, then N would be increased by 1. An example for the above TcTable and N=6 (allowing here values in the table for g to fit in 8 bits) is: BitDepthy 8 9 10 11 12 9 11 21 33 63 115 It is to be noted that the equation using function g corresponds to dividing tc' by 2N and then to mutiply by g with a potential additive correction by R. The condition g(BitDepth + 1) < 2 * g(BitDepth) guarentees that the multiplicative factor between the values of tc corresponding to two successive value of bitdepth is strictly lower that 2(BitDepthy- and consequently that the clipping range for the strong filter is strictly lower than rtc.
It is to be noted that the first alternative using function f, with function R being null, gives tc = tc' for bitdepth = 16. And a multiplying factor between tc and tc corresponding to 2(16 -BitDepthY) / 2 corresponding to 2(B1tDepthy-8-1). The R function may be used to bring the multiplicative factor between 2(8itDept1y-8-1) and strictly lower than 2(BitDepthy-8). This correspond to having the ratio between two range clipping values corresponding to two successive values of bitdepth strictly lower than 2.
This second embodiment brings a reduction of the clipping range with an improved precision of the values of the clipping control parameter, especially for bitdepth values greater than 8.
Figure 4 is a schematic block diagram of a computing device 4.0 for implementation of one or more embodiments of the invention. The computing device 4.0 may be a device such as a micro-computer, a workstation or a light portable device. The computing device 4.0 comprises a communication bus connected to: - a central processing unit 4.1, such as a microprocessor, denoted CPU; - a random access memory 4.2, denoted RAM, for storing the executable code of the method of embodiments of the invention as well as the registers adapted to record variables and parameters necessary for implementing the method according to embodiments of the invention, the memory capacity thereof can be expanded by an optional RAM connected to an expansion port for example; -a read only memory 4.3, denoted ROM, for storing computer programs for implementing embodiments of the invention; - a network interface 4.4 is typically connected to a communication network over which digital data to be processed are transmitted or received. The network interface 4.4 can be a single network interface, or composed of a set of different network interfaces (for instance wired and wireless interfaces, or different kinds of wired or wireless interfaces). Data packets are written to the network interface for transmission or are read from the network interface for reception under the control of the software application running in the CPU 4.1; - a user interface 4.5 may be used for receiving inputs from a user or to display information to a user; -a hard disk 4.6 denoted HD may be provided as a mass storage device; - an I/O module 4.7 may be used for receiving/sending data from/to external devices such as a video source or display.
The executable code may be stored either in read only memory 4.3, on the hard disk 4.6 or on a removable digital medium such as for example a disk.
According to a variant, the executable code of the programs can be received by means of a communication network, via the network interface 4.4, in order to be stored in one of the storage means of the communication device 4.0, such as the hard disk 4.6, before being executed.
The central processing unit 4.1 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to embodiments of the invention, which instructions are stored in one of the aforementioned storage means. After powering on, the CPU 4.1 is capable of executing instructions from main RAM memory 4.2 relating to a software application after those instructions have been loaded from the program ROM 4.3 or the hard-disc (HD) 4.6 for example. Such a software application, when executed by the CPU 4.1, causes the steps of the flowcharts of the invention to be performed.
Any step of the algorithms of the invention may be implemented in software by execution of a set of instructions or program by a programmable computing machine, such as a PC ("Personal Computer"), a DSP ("Digital Signal Processor") or a microcontroller; or else implemented in hardware by a machine or a dedicated component, such as an FPGA ("Field-Programmable Gate Array") or an ASIC ("Application-Specific Integrated Circuit").
Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention.
Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate.
In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used.
The following statements form part of the description. The claims are appended hereto and are labelled as such.
Statement 1 A method of filtering a block of pixels in an image, comprising: obtaining a first clipping control parameter (tc) value based on a quantization parameter of the block; comparing a first value of a first pixel located on one side of an edge in said block and a second value of a second pixel located on the other side of the edge in said block with a predetermined threshold derived from the first clipping control parameter value; and determining whether to apply a strong filtering to the first pixel based on the result of the comparison, wherein: the strong filtering comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a range value based on the clipping control parameter (tc), the ration between two range values corresponding to successive values of bitdepths being strictly lower than 2.
Statement 2. A method according to statement 1 wherein: -the strong filtering comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a second parameter value that is strictly less than two times the first clipping control parameter value.
Statement 3. The method of statement 1 wherein both the first pixel and the second pixel are adjacent to said edge in said block.
Statement 4. The method of statement 2 or 3, wherein if the difference between the first value and the second value is equal to or greater than the predetermined threshold, applying a weak filtering to the first pixel so that a filtering difference between the filtered first pixel value and the first pixel value is equal to or less than a half of the first clipping control parameter value.
Statement 5. The method of any statements 2 to 4, wherein when the first clipping control parameter value is tc, the predetermined threshold is (51c + 1)»1, and the second parameter value is tc/n, wherein n is an integer greater or equal to 2.
Statement 6. The method of statement 2 wherein the strong filtering comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a second parameter value that is equal or less than the first clipping control parameter value.
Statement 7. The method of any one statements 2 to 6, wherein the weak filtering comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a second parameter value that is strictly less than the first clipping control parameter value.
Statement 8. The method of any one of statements 2 to 6, wherein the filtering of a chrominance value comprises filtering the first pixel value so that the filtered first pixel value differs from the first pixel value by no more than a second parameter value that is strictly less than the first clipping control parameter value.
Statement 9. The method of any one of statements 2 to 8, wherein second parameter value is dependent on the space-frequency transforms used in the block of pixels.
Statement 10. The method of statement 1 wherein obtaining the first clipping control parameter (tc) comprises: obtaining a second clipping control parameter (to') corresponding to a maximum bitdepth MaxBitDepth; and obtaining the first clippling control parameter (to) by dividing the second clipping control parameter by a factor strictly lower than 2(McaBitDepth-BitDepthY) for a bitdepth BitDepthY.
Statement 11. The method of statement 10, wherein the first clipping control parameter tc is given by: - tc = (tc' + R(BitDepthY)) » (MaxBitDepth-BitDepthY)/2; - where R(BitDepthY) is a rounding function.
Statement 12. The method of statement 10, wherein the first clipping control parameter tc is given by: - tc = (tc' * g(BitDepthY)) » N; where R is a rounding positive integer value and N a positive integer value and wherein g(bitdepth+1) < 2*g(bitdepth) for all bitdepth values.
Statement 13. The method of statement 12 where the function g is given in
a table.
Statement 14. The method of statement 13 where the values of g are 11, 21, 33, 63 and 115 for respective bitdepth values of 8, 9, 10, 11 and 12.
Statement 15. A computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to any one of statements 1 to 14, when loaded into and executed by the programmable apparatus.
Statement 16. A computer-readable storage medium storing instructions of a computer program for implementing a method according to any one of statements 1 to 14.
Statement 17. A device comprising a processor configured for executing all the steps of the method according to statements 1 to 14.
Claims (7)
- CLAIMS1 A method of filtering a block of samples of an image, comprising: obtaining a first clipping control parameter (tc) value based on a second clipping control parameter (tc') value; filtering the block using the first clipping control parameter value, the filtered sample value being limited by a range based on the first clipping control parameter value, wherein obtaining the first clipping control parameter (tc) value comprises: obtaining the second clipping control parameter (tc') value based on a quantization parameter for the block of samples; and obtaining the first clipping control parameter (tc) value by adding an offset to the second clipping control parameter (tc') value, and bit-shifting the result of the adding to the right by N bits, where N is dependent on a bit-depth of the image.
- 2. The method of claim 1 where the offset R is dependent on the bit-depth of the samples of the block.
- 3 The method of claim 2, wherein an equation for obtaining the first clipping control parameter tc value is given by: tC = (tC' + R(BitDepth)) >> f( BitDepth), where BitDepth is the bit-depth of the samples of the block.
- 4. The method of claim 1 wherein the second clipping control parameter (tc') value is obtained from a table associating second clipping control parameter (tc') values with quantization parameter values.
- 5. A computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to any one of claims 1 to 4, when loaded into and executed by the programmable apparatus.
- 6. A computer-readable storage medium storing instructions of a computer program for implementing a method according to any one of claims 1 to 4.
- 7. A device comprising a processor configured for executing the steps of the method according to any one of claims 1 to 4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2118556.6A GB2599314B (en) | 2017-10-09 | 2017-10-09 | Method and apparatus for deblocking filtering a block of pixels |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1716537.4A GB2567248B (en) | 2017-10-09 | 2017-10-09 | Method and apparatus for deblocking filtering a block of pixels |
GB2118556.6A GB2599314B (en) | 2017-10-09 | 2017-10-09 | Method and apparatus for deblocking filtering a block of pixels |
Publications (2)
Publication Number | Publication Date |
---|---|
GB2599314A true GB2599314A (en) | 2022-03-30 |
GB2599314B GB2599314B (en) | 2022-06-15 |
Family
ID=60326960
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB2118556.6A Active GB2599314B (en) | 2017-10-09 | 2017-10-09 | Method and apparatus for deblocking filtering a block of pixels |
GB1716537.4A Active GB2567248B (en) | 2017-10-09 | 2017-10-09 | Method and apparatus for deblocking filtering a block of pixels |
GB2118557.4A Active GB2599315B (en) | 2017-10-09 | 2017-10-09 | Method and apparatus for deblocking filtering a block of pixels |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1716537.4A Active GB2567248B (en) | 2017-10-09 | 2017-10-09 | Method and apparatus for deblocking filtering a block of pixels |
GB2118557.4A Active GB2599315B (en) | 2017-10-09 | 2017-10-09 | Method and apparatus for deblocking filtering a block of pixels |
Country Status (1)
Country | Link |
---|---|
GB (3) | GB2599314B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019072582A1 (en) | 2017-10-09 | 2019-04-18 | Canon Kabushiki Kaisha | Method and apparatus for deblocking filtering a block of pixels |
GB2607692B (en) * | 2019-08-23 | 2023-08-02 | Imagination Tech Ltd | Random accessible image data compression |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2775711A1 (en) * | 2011-11-04 | 2014-09-10 | LG Electronics Inc. | Method and apparatus for encoding/decoding image information |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9161046B2 (en) * | 2011-10-25 | 2015-10-13 | Qualcomm Incorporated | Determining quantization parameters for deblocking filtering for video coding |
US9445130B2 (en) * | 2013-01-09 | 2016-09-13 | Qualcomm Incorporated | Blockiness metric for large HEVC block artifacts |
US20180091812A1 (en) * | 2016-09-23 | 2018-03-29 | Apple Inc. | Video compression system providing selection of deblocking filters parameters based on bit-depth of video data |
-
2017
- 2017-10-09 GB GB2118556.6A patent/GB2599314B/en active Active
- 2017-10-09 GB GB1716537.4A patent/GB2567248B/en active Active
- 2017-10-09 GB GB2118557.4A patent/GB2599315B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2775711A1 (en) * | 2011-11-04 | 2014-09-10 | LG Electronics Inc. | Method and apparatus for encoding/decoding image information |
Also Published As
Publication number | Publication date |
---|---|
GB2599314B (en) | 2022-06-15 |
GB2567248B (en) | 2022-02-23 |
GB2599315B (en) | 2022-06-15 |
GB201716537D0 (en) | 2017-11-22 |
GB2567248A (en) | 2019-04-10 |
GB2599315A (en) | 2022-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12081804B2 (en) | Method and apparatus for deblocking filtering a block of pixels | |
US11102515B2 (en) | In loop chroma deblocking filter | |
US20160100175A1 (en) | Residual colour transform signalled at sequence level for specific coding modes | |
GB2575090A (en) | Method and apparatus for deblocking filtering a block of pixels | |
US10469876B2 (en) | Non-local adaptive loop filter combining multiple denoising technologies and grouping image patches in parallel | |
KR102357283B1 (en) | Method and apparatus for encoding/decoding an image | |
US20230188733A1 (en) | Video display preference filtering | |
US20210160541A1 (en) | Signaling Multiple Transmission Selection | |
WO2021238828A1 (en) | Indication of multiple transform matrices in coded video | |
EP3878185A1 (en) | Asymmetric deblocking in a video encoder and/or video decoder | |
JP7271723B2 (en) | Deblocking filter for video coding | |
GB2599314A (en) | Method and apparatus for deblocking filtering a block of pixels | |
US20220141464A1 (en) | Deblocking in a video encoder and/or video decoder | |
KR102612977B1 (en) | Deblocking between block boundaries and sub-block boundaries in a video encoder and/or video decoder | |
EP3711297A1 (en) | Image and video processing apparatuses and methods | |
CN118525512A (en) | Filtering for image encoding and decoding |