Using Quantization Groups in Video Coding

The methods address the challenges in video coding by applying a deblocking filter with intensity determined by specific rules and optimizing quantization parameters, enhancing video processing efficiency and compatibility with various standards.

JP7662142B2Active Publication Date: 2025-04-15BYTEDANCE INC

Patent Information

Application Number
JP2023201186
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-12-31
Filing Date
2023-11-29
Publication Date
2025-04-15
Estimated Expiration
2040-12-08

AI Technical Summary

Technical Problem

Current video coding technologies face challenges in achieving optimal deblocking filter intensity and quantization parameter determination, particularly in managing motion vectors and adapting to different video coding standards.

Method used

The proposed methods involve applying a deblocking filter with intensity determined by specific rules to video blocks, performing conversions between video units and bitstream representations, and determining quantization parameters based on Transform Skip or Adaptive Color Transform modes.

Benefits of technology

These methods enhance video processing by improving deblocking filter efficiency, optimizing quantization parameters, and ensuring compatibility with existing and future video coding standards, thereby improving compression ratios and reducing complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007662142000070
    Figure 0007662142000070
  • Figure 0007662142000071
    Figure 0007662142000071
  • Figure 0007662142000072
    Figure 0007662142000072
Patent Text Reader

Abstract

To provide a video processing method, an apparatus, and a system applicable to high-efficiency video coding or versatile video coding and future video coding standards or video codecs.SOLUTION: The method includes performing a conversion between a video unit and a bitstream representation of the video unit. Here, during this conversion, a deblocking filter is used at the boundaries of the video units. when a chroma quantization parameter (QP) table is used to derive parameters for the deblocking filter, processing with the chroma QP table is performed on the individual chroma QP values.SELECTED DRAWING: Figure 13
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to video coding techniques, devices and systems.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a divisional application of Japanese Patent Application No. 2022-534625 and is based on International Patent Application No. PCT / US2020 / 063746 filed on December 8, 2020. This application claims the benefit of priority to International Patent Application No. PCT / CN2019 / 123951 filed on December 9, 2019, and International Patent Application No. PCT / CN2019 / 130851 filed on December 31, 2019. All of the foregoing patent applications are incorporated herein by reference in their entirety. [Background technology]

[0003] Efforts are currently underway to improve the performance of current video codec technology in order to provide better compression ratios or to provide video coding and decoding schemes that have lower complexity or allow for parallelized implementation. Industry experts have recently proposed several new video coding tools, and testing to determine their effectiveness is currently underway. Summary of the Invention

[0004] Apparatuses, systems, and methods related to digital video coding, and in particular, motion vector management, are described. The described methods may be applied to existing video coding standards (e.g., High Efficiency Video Coding or Versatile Video Coding) and future video coding standards or video codecs.

[0005] In one exemplary aspect, the disclosed techniques may be used to provide a method of video processing, the method including applying a deblocking filter to video blocks of a plurality of components in a conversion between a video including a plurality of components and a bitstream representation of the video, wherein a deblocking filter strength for the deblocking filter of each of the plurality of components is determined according to a rule, the rule specifying the use of a different method for determining the deblocking filter strength for the video blocks of each of the plurality of components.

[0006] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including performing a conversion between a first video unit of a video and a bitstream representation of the video. During the conversion, a deblocking filtering process is applied to the first video unit. A deblocking control offset for the first video unit is determined based on accumulating one or more deblocking control offset values ​​at other video unit levels.

[0007] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including determining a quantization parameter to be used in a deblocking process for converting between a block of video and a bitstream representation of the video based on the use of a transform skip (TS) mode or an adaptive color transform (ACT) mode for coding the block, the method also including performing the conversion based on the determination.

[0008] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, comprising performing a conversion between blocks of color components of a video and a bitstream representation of the video, the bitstream representation following a rule that specifies that a size of a quantization group of chroma components is greater than a threshold K, the quantization group including one or more coding units carrying a quantization parameter.

[0009] In one exemplary aspect, the disclosed techniques can be used to provide a method of video processing that includes performing a conversion between a video unit and a coded representation of the video unit, during which a deblocking filter is used on video unit boundaries, such that when a chroma quantization parameter table is used to derive parameters of the deblocking filter, processing by a chroma QP table is performed on individual chroma QP values.

[0010] In another representative aspect, the disclosed techniques may be used to provide a method of video processing that includes performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used on boundaries of the video unit such that a chroma QP offset is used within the deblocking filter, where the chroma QP offset is used at the picture / slice / tile / brick / subpicture level.

[0011] In another representative aspect, the disclosed techniques can be used to provide a method of video processing that includes performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used on boundaries of the video units such that chroma QP offsets are used in the deblocking filter, where information about the same luma coding unit is used in the deblocking filter and to derive the chroma QP offsets.

[0012] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, comprising performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used on boundaries of the video unit such that a chroma QP offset is used in the deblocking filter, where an indication enabling the use of the chroma QP offset is signaled in the bitstream representation.

[0013] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, comprising performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used on video unit boundaries such that a chroma QP offset is used in the deblocking filter, where the chroma QP offset used in the deblocking filter is either the same as a JCCR coding method applied on the video unit boundaries or a method different from a JCCR coding method is applied on the video unit boundaries.

[0014] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, comprising performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used on a boundary of the video unit such that a chroma QP offset is used in the deblocking filter, where a boundary strength (BS) of the deblocking filter is calculated without comparing a reference picture and / or a number of motion vectors (MVs) associated with the video unit at the P-side boundary to a reference picture of the video unit at the Q-side boundary.

[0015] In another exemplary aspect, another method of video processing is disclosed that includes determining a size of a quantization group of a video unit based on a constraint rule specifying that for a conversion between a video unit associated with a component of a video and a coded representation of the video, the size must be greater than K, where K is a positive number, and performing the conversion based on the determination.

[0016] Additionally, in a representative aspect, an apparatus in a video system is disclosed that includes a processor and a non-transitory memory containing instructions thereon that, when executed by the processor, cause the processor to perform any one or more of the disclosed methods.

[0017] Additionally, in a representative aspect, a video decoding device is disclosed that comprises a processor configured to perform any one or more of the disclosed methods.

[0018] In another representative aspect, a video coding apparatus is disclosed that comprises a processor configured to perform any one or more of the disclosed methods.

[0019] Also disclosed is a computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for performing any one or more of the disclosed methods.

[0020] The above aspects and features of the disclosed technology are described in more detail in the drawings, specification, and claims. [Brief description of the drawings]

[0021] [Figure 1] Figure 1 shows an example of the overall processing flow of the blocking and deblocking filter process. [Diagram 2] FIG. 2 shows an example of a flow diagram for calculating Bs. [Diagram 3]FIG. 3 shows an example of the information referenced for Bs calculation at the CTU boundary. [Figure 4] FIG. 4 shows one example of pixels that are included in the filter on / off decision and strong / weak filter selection. [Diagram 5] FIG. 5 shows an example of the overall processing flow of the deblocking filter process in VVC. [Figure 6] FIG. 6 shows an example of a luma deblocking filter process in VVC. [Figure 7] FIG. 7 shows an example of a chroma deblocking filter process in VVC. [Figure 8] FIG. 8 shows an example of determining the filter length for a sub-PU boundary. [Figure 9A] FIG. 9A shows an example of the center position of a chroma block. [Figure 9B] FIG. 9B shows another example of the center location of the chroma blocks. [Figure 10] FIG. 10 shows an example with blocks on the P and Q sides. [Figure 11] FIG. 11 shows an example of the use of the decoded information of the luma block. [Figure 12] FIG. 12 is a block diagram of an example hardware platform for implementing the visual media decoding or coding techniques described herein. [Figure 13] FIG. 13 shows a flow chart of one exemplary method for video coding. [Figure 14A] FIG. 14A shows one example of the placement of CC-ALF with respect to another loop filter (b) a diamond-shaped filter. [Figure 14B] FIG. 14B shows an example of the placement of CC-ALF with respect to a diamond-shaped filter. [Figure 15] FIG. 15 shows an exemplary flow chart for the adaptive color transformation (ACT) process. [Figure 16] FIG. 16 shows an exemplary flow chart for high-level deblocking control. [Figure 17] FIG. 17 shows an exemplary flow chart for the high-level deblocking control mechanism. [Figure 18] FIG. 18 is a block diagram illustrating an example video coding system. [Figure 19] FIG. 19 is a block diagram illustrating an encoder according to some embodiments of the disclosure. [Figure 20] FIG. 20 is a block diagram illustrating a decoder according to some embodiments of the disclosure. [Figure 21] FIG. 21 is a block diagram of an example video processing system in which the disclosed techniques may be implemented. [Figure 22] FIG. 22 is a flow chart representation of a method for video processing in accordance with the present technology. [Diagram 23] FIG. 23 is a flow chart representation of another method for video processing in accordance with the present technique. [Figure 24] FIG. 24 is a flow chart representation of another method for video processing in accordance with the present technique. [Diagram 25] FIG. 25 is a flow chart representation of yet another method for video processing in accordance with the present technique. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] 1. Video Coding in HEVC / H.265 Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, ISO / IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Coding (AVC), and H.265 / HEVC standards. Starting with H.262, video coding standards have been based on a hybrid video coding structure in which temporal prediction and transform coding are utilized. To explore future video coding technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, many new methods have been adopted by JVET and put into reference software named JEM (Joint Exploration Model). In April 2018, the Joint Video Experts Team (JVET) was established by VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) to work on the VVC standard, which aims to reduce the bitrate by 50% compared to HEVC.

[0023] 2.1. Deblocking Scheme in HEVC The deblocking filter process is performed for each CU in the same order as the decoding process. First, the vertical edges are filtered (horizontal filtering), and then the horizontal edges are filtered (vertical filtering). Filtering is applied to the 8x8 block boundaries that are determined to be filtered for both the luma and chroma components. The 4x4 block boundaries are not processed to reduce complexity.

[0024] Figure 1 shows the overall processing flow of the deblocking filter process. The boundary can have three filtering statuses: no filtering, weak filtering, and strong filtering. Each filtering decision is determined by the boundary strength, Bs, and thresholds, β and tC It is based on.

[0025] Three types of boundaries may be included in the filtering process: CU boundaries, TU boundaries, and PU boundaries. CU boundaries, the outer edges of a CU, are always included in filtering because a CU boundary is always also a TU or PU boundary. If the PU shape is 2N×N (N>4) and the RQT depth is equal to 1, then TU boundaries in the 8×8 block grid and PU boundaries between each PU inside a CU are included in filtering. One exception is that if a PU boundary is inside a TU, it is not filtered.

[0026] 2.1.1. Boundary strength calculation Generally speaking, the boundary strength (Bs) reflects how strong filtering is needed for the boundary: if Bs is large, strong filtering should be considered.

[0027] Define P and Q as the blocks involved in filtering, where P represents the blocks located to the left (for vertical edges) or above (for horizontal edges) of the boundary, and Q represents the blocks located to the right (for vertical edges) or above (for horizontal edges) of the boundary. Figure 2 is a diagram showing how the Bs value is calculated based on the intra-coding mode, the presence of non-zero transform coefficients and motion information, reference pictures, the number of motion vectors, and the motion vector difference.

[0028] Bs is calculated for a 4x4 block, but remapped to an 8x8 grid: the maximum of the two values ​​of Bs corresponding to the 8 pixels that make up a line in the 4x4 grid is selected as the boundary Bs in the 8x8 grid.

[0029] To reduce line buffer memory requirements, only for CTU boundaries, information for every second block (4x4 grid) on the left or top side is reused as shown in FIG.

[0030] 2.1.2 β and t C Decision The thresholds β and t that determine whether the filter is on or off C The selection of the strong and weak filters and the weak filtering process are determined by the luma quantization parameters, QP P and QP Q , respectively, are derived based on β and t C Q, which is used to derive Q, is calculated as follows: Q=((QP P +QP Q +1)>>1)

[0031] Based on Q, β is derived as shown in Table 1. If Bs is greater than 1, the variable t C Otherwise (BS is less than or equal to 1), the variable t C is the input of Q, as shown in Table 1. C is specified. Table 1 Threshold variables β and t from input Q C Derivation of [Table 1]

[0032] 2.1.3. Filter on / off decision for 4 lines The filter is turned on / off in units of 4 lines. Figure 4 shows the pixels involved in the filter on / off decision. The 6 pixels in the 2 red boxes for the 14th line are used to decide the filter on / off for the 4th line. The 6 pixels in the 2 red boxes for the 24th line are used to decide the filter on / off for the 24th line.

[0033] If dp0+dq0+dp3+dq3<β, then filtering is turned on for the 14th line, and the strong / weak filter selection process is applied. The variables are derived as follows: dp0=|p 2,0 -2*p 1,0 +p 0,0 |,dp3=|p 2,3 -2*p 1,3 +p 0,3 |,dp4=|p 2,4 -2*p 1,4 +p 0,4 |,dp7=|p 2,7 -2*p 1,7 +p 0,7 | dq0=|q 2,0 -2*q 1,0 +q 0,0 |,dq3=|q 2,3 -2*q 1,3 +q 0,3 |,dq4=|q 2,4 -2*q 1,4 +q 0,4 |,dq7=|q 2,7 -2*q 1,7 +q 0,7 |

[0034] If the condition is not met, no filtering is performed for the 14th line. In addition, if the condition is met, dE, dEp1, and dEp2 are derived for the weak filtering process. The variable dE is set equal to 1. If dp0+dp3<(β+(β>>1))>>3, the variable dEp1 is set equal to 1. If dq0+dq3<(β+(β>>1))>>3, the variable dEq1 is set equal to 1.

[0035] The 24th line is determined in the same manner as above.

[0036] 2.1.4. Select strong or weak filter for 4 lines After it is decided to filter the 14th line in the filter on / off decision, if the following two conditions are met, a strong filter is used to filter the 14th line. Otherwise, a weak filter is used to filter. The pixels involved are the same as the pixels used in the filter on / off decision, as shown in Figure 4. 1)2*(dp0+dq0)<(β>>2),|p30-p00|+|q00-q30|<(β>>3)and|p00-q00|<(5*t C +1)>>1 2)2*(dp3+dq3)<(β>>2),|p33-p03|+|q03-q33|<(β>>3)and|p03-q03|<(5*t C +1)>>1

[0037] Similarly, a strong filter is used for filtering the 24th line if the following two conditions are met, otherwise a weak filter is used for filtering: 1)2*(dp4+dq4)<(β>>2),|p34-p04|+|q04-q34|<(β>>3)and|p04-q04|<(5*t C +1)>>1 2)2*(dp7+dq7)<(β>>2),|p37-p07|+|q07-q37|<(β>>3)and|p07-q07|<(5*t C +1)>>1

[0038] 2.1.4.1. Strong filtering For strong filtering, the filtered pixel value is obtained by the following formula: It is worth noting that three pixels are modified using four pixels as input for each P and Q block, respectively. p0'=(p2+2*p1+2*p0+2*q0+q1+4)>>3 q0'=(p1+2*p0+2*q0+2*q1+q2+4)>>3 p1'=(p2+p1+p0+q0+2)>>2 q1'=(p0+q0+q1+q2+2)>>2 p2'=(2*p3+3*p2+p1+p0+q0+4)>>3 q2'=(p0+q0+q1+3*q2+2*q3+4)>>3

[0039] 2.1.4.2. Weak filtering Let D be defined as follows: D=(9*(q0-p0)-3*(q1-p1)+8)>>4 abs(D) is t C *If less than 10, D=Clip3(-t C ,t C ,D) p0'=Clip1 Y (p0+D) q0'=Clip1 Y (q0-D) If dEp1 is equal to 1, Dp=Clip3(-(t C >>1),t C >>1,(((p2+p0+1)>>1)-p1+D)>>1) p1'=Clip1 Y (p1+Dp) If dEq1 is equal to 1, Dq=Clip3(-(t C >>1),t C >>1,(((q2+q0+1)>>1)-q1-D)>>1) q1'=Clip1 Y (q1+Dq)

[0040] It is worth noting that a maximum of two pixels are modified for each P and Q block, respectively, using three pixels as input.

[0041] 2.1.4.3. Chroma filtering Bs for chroma filtering is inherited from luma. If Bs>1 or there are coded chroma coefficients, chroma filtering is performed. There is no other filtering decision, and only one filter is applied for chroma. No filter selection process is used for chroma. The filtered sample values ​​p0' and q0' are derived as follows: D=Clip3(-t C ,t C ,((((q0-p0)<<2)+p1-q1+4)>>3)) p0'=Clip1 C (p0+D) q0'=Clip1 C (q0-D)

[0042] 2.2 Deblocking Scheme in VVC In VTM6, the deblocking filtering process is almost the same as in HEVC, however, the following changes have been made:

[0043] A) The filter strength of the deblocking filter depending on the average luma level of the reconstructed samples.

[0044] B) Extending the deblocking tC table and adapting it to 10-bit video.

[0045] C) 4x4 grid deblocking for luma.

[0046] D) A stronger deblocking filter for luma.

[0047] E) A stronger deblocking filter for chroma.

[0048] F) Deblocking filter for sub-block boundaries.

[0049] G) Deblocking decisions adapted for smaller differences in motion.

[0050] FIG. 5 shows a flow chart of the deblocking filter process in VVC for a coding unit.

[0051] 2.2.1. Filter strength depending on reconstructed average luma In HEVC, the filter strength of the deblocking filter is determined by the average quantization parameter qP L The variables β and t C In VTM6, if the SPS flag for this method is true, the deblocking filter adjusts the qP L The strength of the deblocking filter is controlled by adding an offset to . The reconstructed luma level LL is derived as follows: LL=((p 0,0 +p 0,3 +q 0,0 +q 0,3 )>>2) / (1< <bitDepth) (3-1) where i=0..3 and sample value p for k=0 and 3. i,k , q i,k Then, LL is used to determine an offset qpOffset based on the threshold signaled in the SPS. Then, qP L Using β and t C Derive. qP L =((Qp Q +Qp P +1)>>1)+qpOffset (3-2) Here, Qp Q and Qp P are sample q 0,0 and p 0,0 In the current VVC, this method is only applied to the luma deblocking process.

[0052] 2.2.2 Luma 4x4 Deblocking Grid HEVC uses an 8x8 deblocking grid for both luma and chroma. In VTM6, deblocking on a 4x4 grid lattice for the luma boundary was introduced to address blocking artifacts from the rectangular transform geometry. Parallel friendly luma deblocking on a 4x4 grid is achieved by limiting the number of deblocked samples to one sample on each side of a vertical luma boundary with a width of no more than 4 on either side, or one sample on each side of a horizontal luma boundary with a height of no more than 4 on either side.

[0053] 2.2.3. Derivation of boundary strength for Luma The detailed boundary strength derivation can be seen in Table 2. The conditions in Table 2 are checked sequentially. Table 2 Derivation of boundary strength [Table 2] TIFF0007662142000003.tif235142

[0054] 2.2.4. Stronger deblocking filter for luma If samples on one side of the boundary belong to a large block, the proposal uses a bilinear filter, where samples belong to a large block, defined as those with width>=32 for vertical edges and height>=32 for horizontal edges.

[0055] The bilinear filters are listed below.

[0056] Block boundary samples pi for i=0 to Sp-1 and block boundary samples qi for j=0 to Sq-1 (pi and qi follow the definitions in HEVC deblocking above) are replaced by linear interpolation as follows:

number

number

[0057] 2.2.5. Luma Deblocking Control The deblocking decision process is described in this subsection.

[0058] A stronger luma filter is Condition 1 , Condition 2 , and Condition 3 is used only if all of are TRUE.

[0059] Condition 1 is the “large block condition”. This condition detects whether the P-side and Q-side samples belong to a large block. They are represented by the variables bSidePisLargeBlk and bSideQisLargeBlk, respectively. bSidePisLargeBlk and bSideQisLargeBlk are defined as follows: bSidePisLargeBlk=((edge ​​type is vertical and p0 belongs to CU and width>=32)||(edge ​​type is horizontal and p0 belongs to CU and width>=32))?TRUE:FALSE bSideQisLargeBlk=((edge ​​type is vertical and q0 belongs to CU and width>=32)||(edge ​​type is horizontal and q0 belongs to CU and width>=32))?TRUE:FALSE

[0060] Based on bSidePisLargeBlk and bSideQisLargeBlk, Condition 1 is defined as follows: Condition 1 =(bSidePisLargeBlk||bSidePisLargeBlk)?TRUE:FALSE

[0061] next, Condition 1 If is true, then condition 2 is further checked. First, the following variables are derived: dp0, dp3, dq0, dq3 are first derived similarly to HEVC if (p is 32 or more) dp0=(dp0+Abs(p 5,0 -2*p 4,0 +p 3,0 )+1)>>1 dp3=(dp3+Abs(p 5,3 -2*p 4,3 +p 3,3 )+1)>>1 if(q is 32 or more) dq0=(dq0+Abs(q 5,0 -2*q 4,0 +q 3,0 )+1)>>1 dq3=(dq3+Abs(q 5,3 -2*q 4,3 +q 3,3 )+1)>>1 dpq0, dpq3, dp, dq, d are then derived as in HEVC.

[0062] Condition 2 is defined as follows: Condition 2 =(d<β) ?TRUE:FALSE where d = dp0 + dq0 + dp3 + dq3, as shown in Section 2.1.4.

[0063] If conditions 1 and 2 are valid, a check is made to see if any blocks use subblocks. If(bSidePisLargeBlk) If(mode blockP==SUBBLOCKMODE) Sp=5 else Sp=7 else Sp=3 If(bSideQisLargeBlk) If(modeblockQ==SUBBLOCKMODE) Sq=5 else Sq=7 else Sq=3

[0064] Finally, if both condition 1 and condition 2 are valid, the proposed deblocking method checks condition 3 (large block strong filter condition), which is defined as follows: Condition 3 In StrongFilterCondition, the following variables are derived: Dpq is derived like HEVC sp3=Abs(p3-p0), derived as in HEVC if (p is 32 or more) if(Sp==5) sp3=(sp3+Abs(p5-p3)+1)>>1 else sp3=(sp3+Abs(p7-p3)+1)>>1 sq3=Abs(q0-q3), derived as in HEVC if(q is 32 or more) If(Sq==5) sq3=(sq3+Abs(q5-q3)+1)>>1 else sq3=(sq3+Abs(q7-q3)+1)>>1

[0065] As in HEVC, StrongFilterCondition=(dpqislessthan(β>>2),sp3+sq3islessthan(3*β>>5),andAbs(p0-q0)islessthan(5*tC+1)>>1)?TRUE:FALSE It is.

[0066] FIG. 6 shows a flow chart of the luma deblocking filter process.

[0067] 2.2.6. Chroma's powerful deblocking filter Below, a strong deblocking filter for chroma is defined. p2′=(3*p3+2*p2+p1+p0+q0+4)>>3 p1′=(2*p3+p2+2*p1+p0+q0+q1+4)>>3 p0′=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3

[0068] The proposed chroma filter performs deblocking on a 4x4 chroma sample grid.

[0069] 2.2.7. Deblocking control for chroma The above chroma filters perform deblocking on an 8x8 chroma sample grid. A strong chroma filter is used on both sides of the block boundary, where a chroma filter is selected if either side of the chroma edge is 8 or more (in units of chroma samples) and the following decision with three conditions is satisfied: the first is the boundary strength as well as the large block decision; the second and third conditions are essentially the same as the HEVC luma decision, which are the on / off decision and the strong filter decision, respectively.

[0070] FIG. 7 shows a flow chart of the chroma deblocking filter process.

[0071] Position-dependent clipping The proposal also introduces a position-dependent clipping tcPD applied to the output samples of the luma filtering process, which includes a strong and long filter that modifies 7, 5, and 3 samples at the boundaries. Given the quantization error distribution, it is proposed to increase the clipping value for samples that are expected to have higher quantization noise and therefore higher deviations of the reconstructed sample values ​​from the true sample values.

[0072] Depending on the outcome of the decision-making process described in Section 2.2, for each P or Q boundary filtered with the proposed asymmetric filter, a position dependent threshold table is selected from the Tc7 and Tc3 tables, which are provided to the decoder as side information. Tc7={6,5,4,3,2,1,1}; Tc3={6,4,2}; tcPD=(SP==3)?Tc3:Tc7; tcQD=(SQ==3)?Tc3:Tc7;

[0073] For P or Q boundaries that are filtered with short symmetric filters, a position-dependent threshold of lower magnitude is applied. Tc3={3,2,1};

[0074] After defining the thresholds, the filtered sample values ​​of p'i and q'i are clipped according to the clipping values ​​of tcP and tcQ. p'' i =clip3(p' i +tcP i ,p' i -tcP i ,p' i ); q'' j =clip3(q' j +tcQ j ,q' j -tcQ j ,q' j); Here, p' i andq' i is the filtered sample value, and p'' i andq'' ij is the output sample value after clipping, and tcP i and tcP i is the clipping threshold derived from the VVCtc parameters tcPD and tcQD. The term clip3 is the clipping function specified in VVC.

[0075] 2.2.9. Sub-block deblocking adjustments To allow for parallel friendly deblocking using both the long filter and sub-block deblocking, the long filter is limited to modifying at most 5 samples on the side using sub-block deblocking (AFFINE or ATMVP) as shown in the luma control for the long filter. In addition, sub-block deblocking is adjusted such that sub-block boundaries on an 8x8 grid close to a CU or implicit TU boundary are limited to modifying at most 2 samples on each side.

[0076] The following applies for sub-block boundaries that are not aligned with CU boundaries: If(modeblockQ==SUBBLOCKMODE&&edge!=0){ if(!(implicitTU&&(edge==(64 / 4)))) if(edge==2||edge==(orthogonalLength-2)||edge==(56 / 4)||edge==(72 / 4)) Sp=Sq=2; else Sp=Sq=3; else Sp=Sq=bSideQisLargeBlk?5:3 }

[0077] If an edge equal to 0 corresponds to a CU boundary, an edge equal to 2 or orthogonalLength-2 corresponds to 8 samples of a subblock boundary from a CU boundary, etc. Here, implicit TU is true if implicit division of TUs is used. Figure 8 shows a flowchart of the decision process for TU boundaries and sub-PU boundaries.

[0078] Horizontal boundary filtering is limited to Sp=3 for luma, Sp=1 and Sq=1 for chroma if the horizontal boundary is aligned with a CTU boundary.

[0079] 2.2.10. Deblocking decision adapted to smaller differential movements HEVC allows deblocking of prediction unit boundaries when the difference in at least one motion vector component between blocks on each side of the boundary is equal to or greater than a threshold of one sample. In VTM6, a half luma sample threshold is introduced to also allow removal of block artifacts resulting from boundaries between inter prediction units with small differences in motion vectors.

[0080] 2.3. Combined Inter and Intra Prediction (CIIP) In VTM6, when a CU is coded in merge mode, if the CU contains at least 64 luma samples (i.e., CU width x CU height is 64 or more) and both the CU width and CU height are less than 128 luma samples, an additional flag is signaled to indicate whether a combined inter / intra prediction (CIIP) mode is currently applied to the CU. As the name suggests, CIIP prediction combines an inter prediction signal and an intra prediction signal. The inter prediction signal P in CIIP mode inter is derived using the same inter prediction process as applied in the normal merge mode, and the intra prediction signal P intrais derived according to the normal intra prediction process in planar mode. The intra and inter prediction signals are then combined using a weighted average, where the weighting values ​​are calculated depending on the coding modes of the above and left neighboring blocks as follows: - If the top neighbor is available and is intra-coded, set isIntraTop to 1, otherwise set isIntraTop to 0 - If the left adjacent pixel is available and is intra-coded, set isIntraLeft to 1, otherwise set isIntraLeft to 0. If -(isIntraLeft+isIntraLeft) is equal to 2, then wt is set to 3. - Else, if (isIntraLeft+isIntraLeft) is equal to 1, then wt is set to 2. - Otherwise, set wt to 1.

[0081] The CIIP forecast is formed as follows. P CIIP =((4-wt)*P inter +wt*P intra +2)>>2

[0082] 2.4. Chroma QP table design in VTM-6.0 In some implementations, a chroma QP table is used. In some implementations, a signaling mechanism is used for the chroma QP table, which allows the encoder to flexibly provide the opportunity to optimize the table for SDR and HDR content. It supports signaling of separate tables for Cb and Cr components. The proposed mechanism signals the chroma QP table as a piece-wise linear function.

[0083] 2.5. Conversion Skip (TS) Similar to HEVC, the residual of a block can be coded using transform skip mode. To avoid redundancy in syntax coding, the transform skip flag is not signaled if the CU level MTS_CU_flag is not equal to zero. The block size restriction for transform skip is the same as for MTS in JEM4, which indicates that transform skip can be applied for a CU if both block width and height are less than or equal to 32. Note that if LFNST or MIP is currently active for a CU, the implicit MTS transform is set to DCT2. Also, implicit MTS can still be enabled even if MTS is enabled for inter-coded blocks.

[0084] In addition, for a transform skip block, the minimum allowed quantization parameter (QP) is defined as follows: 6*(internalBitDepth-inputBitDepth)+4

[0085] 2.6. Joint Coding of Chroma Residuals (JCCR) In some embodiments, the chroma residuals are jointly coded. The use (activation) of the joint chroma coding mode is indicated by the TU-level flag tu_joint_cbcr_residual_flag, and the selected mode is implicitly indicated by the chroma CBF. tu_joint_cbcr_residual_flag is present if one or both of the chroma CBFs are equal to 1 for a TU. In the PPS and slice header, a chroma QP offset value is signaled for the joint chroma residual coding mode to differentiate it from the regular chroma QP offset value signaled for the regular chroma residual coding mode. These chroma QP offset values ​​are used to derive a chroma QP value for blocks coded using the joint chroma residual coding mode. If the corresponding joint chroma coding mode (mode 2 in Table 3) is active in the TU, this chroma QP offset is added to the applied luma-derived chroma QP during quantization and decoding of that TU. For other modes (mode 1 and mode 3 in Table 3, Table 3 Reconstruction of Chroma Residual. The value CSign is a sign value (+1 or -1), which is specified in the slice header, and resJointC[][] is the residual to be transmitted), the chroma QP is derived in the same way as for conventional Cb or Cr blocks. The reconstruction process of chroma residual (resCb and resCr) from the transmitted transform block is shown in Table 3. When this mode is activated, one single joint chroma residual block (resJointC[x][y] in Table 3) is signaled, and the residual block of Cb (resCb), the residual block of Cr (resCr) are derived taking into account the information such as tu_cbf_cb, tu_cbf_cr, and Csign, which is the sign value specified in the slice header.

[0086] On the encoder side, the joint chroma components are derived as described below: Depending on the mode (listed in the table above), resJointC{1,2} is generated by the encoder as follows: If mode is equal to 2 (single residual with reconstruction Cb=C, Cr=CSign*C), the joint residual is determined according to: resJointC[x][y]=(resCb[x][y]+CSign*resCr[x][y]) / 2 Otherwise, if mode is equal to 1 (single residual at reconstruction Cb=C, Cr=(CSign*C) / 2), the joint residual is determined according to: resJointC[x][y]=(4*resCb[x][y]+2*CSign*resCr[x][y]) / 5 Otherwise (mode equals 3, i.e. single residual, reconstruction Cr=C, Cb=(CSign*C) / 2), the joint residual is determined according to: resJointC[x][y]=(4*resCr[x][y]+2*CSign*resCb[x][y]) / 5 Table 3. Chroma residual reconstruction The value CSign is the sign value (+1 or -1) specified in the slice header, and resJointC[][] is the transmitted residual. [Table 4]

[0087] In the above three modes, different QPs are utilized: in mode 2, the QP offset signaled in the PPS for JCCR coded blocks is applied, while in the other two modes, it is not applied, and alternatively, the QP offset signaled in the PPS for non-JCCR coded blocks is applied.

[0088] The corresponding specifications are as follows: [Table 5] TIFF0007662142000010.tif112150

[0089] 2.7 Cross-Component Adaptive Loop Filter (CC-ALF) Figure 14A shows the placement of the CC-ALF with respect to the other loop filters. The CC-ALF operates by applying a linear, diamond-shaped filter (Figure 14B) to the luma channel of each chroma component, and is expressed as follows:

number

[0090] Key features of the CC-ALF process include:

[0091] - Luma position (x) around which the support region is centered C ,y C ) is calculated based on the spatial scaling factor between the luma and chroma planes.

[0092] -All filter coefficients are transmitted in APS and have a dynamic range of 8 bits.

[0093] - The APS may be referenced in the slice header.

[0094] The CC-ALF coefficients used for each chroma component of the slice are also stored in a buffer corresponding to the temporal sub-layer. Reuse of these sets of temporal sub-layer filter coefficients is facilitated using slice-level flags.

[0095] The application of the CC-ALF filter is controlled by variable block sizes and is signaled by context coding flags received for each block of samples. The block sizes are received at slice level for each chroma component together with the CC-ALF enable flag.

[0096] -Border padding for the horizontal virtual border uses repetition, for the remaining borders the same type of padding is used as in regular ALF.

[0097] 2.8 Quantization Parameter Derivation Process The QP is derived based on the neighboring QPs and the decoded delta QP. An example text on QP derivation is provided below. [Table 6] TIFF0007662142000013.tif227152TIFF0007662142000014.tif169150

[0098] 2.9 Adaptive Color Transformation (ACT) Figure 15 shows a decoding flow chart in which ACT is applied. As shown in Figure 15, color space conversion is performed in the residual domain. Specifically, one additional decoding module, namely, inverse AC, is introduced after the inverse transform for converting from the YCgCo domain back to the original domain.

[0099] In VVC, one coding unit (CU) leaf node is also used as a unit of transform processing, unless the maximum transform size is smaller than the width or height of one CU. Therefore, in the proposed implementation, an ACT flag is signaled for one CU to select a color space for coding the residual. In addition, according to the HEVC ACT design, for inter and IBC CUs, ACT is enabled only if there is at least one non-zero coefficient in the CU. For intra CUs, ACT is enabled only if the chroma components select the same intra prediction mode (e.g., DM mode) of the luma component. [Table 7]

[0100] 2.10 Exemplary High-Level Deblocking Control The control mechanism is shown in FIG.

[0101] 3. Shortcomings of existing implementations DMVR and BIO do not include the original signal when refining the motion vector, which may result in coding blocks with inaccurate motion information. Also, DMVR and BIO sometimes adopt fractional motion vectors after motion refinement, but screen videos mostly have integer motion vectors, which makes the current motion information more inaccurate and worsens the coding mode performance. 1. There can be problems with the interaction between the chroma QP table and chroma deblocking, e.g. the chroma QP table should be applied to the individual QPs but not to the weighted sum of the QPs. 2. The logic of the luma deblocking filtering process is complicated for hardware design. 3. The logic of boundary strength derivation is too complicated for both software and hardware design. 4. In the BS decision process, JCCR is treated separately from blocks coded without applying JCCT. However, JCCR is just a special way to code the residual. Therefore, such a design may bring additional complexity without any clear advantage. 5. In determining the chroma edge, Qp Q and Qp P are sample q 0,0 and p 0,0 Qp of the coding unit including the coding block Y However, in the quantization / dequantization process, the QP of a chroma sample is derived from the QP of the luma block that covers the corresponding luma sample at the center position of the current chroma CU. When enabling the dual tree, different positions of the luma block may have different QPs. Thus, in the chroma deblocking process, the wrong QP may be used for the filter decision. Such misalignment may cause visual artifacts. An example is shown in Figure 9A-9B. Figure 9A shows the corresponding CTB partitioning for a luma block, and Figure 9B shows the chroma CTB partitioning under the dual tree. CU C When determining the QP of a chroma block, as shown in 1, C The center position of CU 1 is derived first. Then, C The corresponding luma sample of the center position of CU 1 is identified, and the corresponding luma sample, i.e., CU Y The luma QP associated with the luma CU that covers 3 is C However, when making a filter decision for the three samples shown (solid circles), the QP of the CU that covers the corresponding three samples is selected. Thus, for the first, second, and third chroma samples (shown in FIG. 9B), the QP of the CU Y 2. CU Y 3, and C.U. YA QP of 4 is used, which means that chroma samples within the same CU may use different QPs for the filter decision, which may lead to erroneous decisions. 6. Different picture level QP offsets (i.e., pps_joint_cbcr_qp_offset) are applied to JCCR coded blocks and are different from the picture level offsets for Cb / Cr (e.g., pps_cb_qp_offset and pps_cr_qp_offset) applied to non-JCCR coded blocks. However, the chroma deblocking filter decision process only utilizes those offsets for non-JCCR coded blocks. Lack of consideration of the coded mode may result in incorrect filter decisions. 7. TS and non-TS coding blocks adopt different QPs in the dequantization process, which may also be taken into account in the deblocking process. 8. Different QPs are used in the scaling process (quantization / dequantization) of JCCR coding blocks with different modes. Such designs are inconsistent. 9. Chroma deblocking for Cb / Cr could be unified due to parallel design. 10. The chroma QP in deblocking is derived based on the QP (e.g., qP) used in the chroma dequantization process. However, when used in the deblocking process, qP should be clipped or minus 5 for TS and ACT blocks. 11. When both BDPCM and ACT are enabled, the prediction processes of the three components do not have to be the same.

[0102] 4. Exemplary Techniques and Embodiments The detailed embodiments described below should be considered as examples to illustrate the general concept. These embodiments should not be construed in a narrow sense. Moreover, these embodiments can be combined in any manner.

[0103] The methods described below are applicable to other decoder performance information derivation techniques in addition to the DMVR and BIO described below.

[0104] In the following example, MVM[i].x and MVM[i].y denote the horizontal and vertical components of the motion vector in reference picture list i (i is 0 or 1) of a block on side M (M is P or Q). Abs denotes the operation of taking the absolute value of the input, and "&&" and "||" denote the logical operations AND and OR. With reference to FIG. 10, P may denote a sample on side P, and Q may denote a sample on side Q. The blocks on side P and side Q may denote the blocks indicated by dashed lines. About Chroma QP in Deblocking 1. If a chroma QP table is used to derive parameters that control chroma deblocking (e.g., in the chroma block edge determination process), a chroma QP offset may be applied after applying the chroma QP table. In one example, a chroma QP offset may be added to the value output by the chroma QP table. b. Alternatively, the chroma QP offset may not be considered as an input to the chroma QP table. c. In one example, the chroma QP offset may be a picture level or other video unit level (slice / tile / brick / subpicture) chroma quantization parameter offset (eg, pps_cb_qp_offset, pps_cr_qp_offset in the specification). 2. Chroma QP table inputs may not have QP clipping applied. 3. It is proposed that the deblocking process for the chroma components may be based on the mapped chroma QP (via a chroma QP table) on each side. In one example, it is proposed that the chroma deblocking parameters (eg, β and tC) may be based on a QP derived from the luma QP on each side. In one example, the chroma deblocking parameters may depend on a chroma QP table value with QpP as the table index, where QpP is the luma QP value of the P side. c. In one example, the chroma deblocking parameters may depend on a chroma QP table value with QpQ as the table index, where QpQ is the luma QP value of the Q side. 4. It is proposed that the deblocking process for chroma components may be based on the QP applied to the quantization / dequantization for the chroma blocks. In one example, the QP of the dequantization process may be equal to the QP of the dequantization. b. In one example, the QP selection for the deblocking process may depend on the indication of TS and / or ACT block usage. In one example, the QP of the deblocking process may be derived by Max(QpPrimeTsMin, qP)-(cu_act_enabled_flag[xTbY][yTbY]? N:0), where QpPrimeTsMin is the minimum QP for TS blocks, and cu_act_enabled_flag is a flag for the use of ACT. 1. In one example, qP is the Qp' given in Section 2.8. Cb or Qp' Cr It is. ii. In one example, the QP of the deblocking process may be derived by Max(QpPrimeTsMin, qP(cu_act_enabled_flag[xTbY][yTbY]? N:0]), where QpPrimeTsMin is the minimum QP of TS blocks, and cu_act_enabled_flag is a flag for the use of ACT. 1. In one example, qP is the Qp' given in Section 2.8. Cb or Qp' Cr It is. iii. In the above example, N may be set to the same or different values ​​for each color component. 1. In one example, for the Cb / B / G / U / components, N may be set to 5, and / or alternatively, for the Cr / R / B / V components, N may be set to 3. c. In one example, the QP of a block used in the deblocking process may be derived by the process described in Section 2.8 with a delta QP (eg, CuQpDeltaVal) equal to 0. iv. In one example, the above derivation may be applied only if the block's coded block flag (cbf) is equal to 0. d. In one example, the above example may be applied for luma blocks and / or chroma blocks. e. In one example, the QP of the first block used in the deblocking process may be set equal to the saved QP and used to predict the second block. v. In one example, for a block with all-zero coefficients, the associated QP used in the deblocking process may be set equal to the saved QP and used to predict the second block. 5. It is proposed to consider picture / slice / tile / brick / sub-picture level quantization parameter offsets used for various coding methods in the deblocking filter decision process. In one example, the selection of picture / slice / tile / brick / sub-picture level quantization parameter offsets for filter decisions (e.g., chroma edge decisions in a deblocking filter process) may depend on how each aspect is coded. b. In one example, a filtering process that requires the use of a quantization parameter for a chroma block (eg, a chroma edge determination process) may depend on whether the block uses JCCR or not. i. Alternatively, in addition, the picture / slice level QP offset (eg, pps_joint_cbcr_qp_offset) applied to the JCCR coding block may be further taken into account in the deblocking filtering process. ii. In one example, T C And the cQpPicOffset used to determine the β setting may be set to pps_joint_cbcr_qp_offset instead of pps_cb_qp_offset or pps_cr_qp_offset under certain conditions. 1. In one example, either the P-side or Q-side blocks use JCCR. 2. In one example, both blocks on the P or Q side use JCCR. iii. Alternatively, the filtering process may further depend on the mode of the JCCR (eg, whether the mode is equal to 2 or not). 6. Chroma filtering processes that require access to decoded information of the luma block (e.g., chroma edge decision processes) can utilize the information associated with the same luma coding block used to derive the chroma QP in the dequantization / quantization process. a. In one example, a chroma filtering process (e.g., a chroma edge determination process) that requires using a quantization parameter for a luma block can utilize the luma coding unit that covers the corresponding luma sample at the center position of the current chroma CU. b. One example is shown in FIG. 9A-9B, where CU Y The decoded information of 3 can be used. 7. The chroma filtering process (eg, chroma edge determination process) may depend on the quantization parameters (eg, quantization / dequantization) applied to the chroma block scaling process. In one example, β and TC The QP used to derive H may depend on the QP applied to the scaling process of the chroma blocks. b. Alternatively, the QP used in the scaling process of a chroma block may also take into account a chroma CU level QP offset. 8. Whether or not the above bullets are invoked may depend on whether the sample being filtered is in a block on the P or Q side. For example, whether to use information of a luma coding block covering a corresponding luma sample of a current chroma sample or information of a luma coding block covering a corresponding luma sample at the center position of the chroma coding block covering the current chroma sample depends on the block position. i. In one example, if the current chroma sample is within a block on the Q side, the QP information of the luma coding block covering the corresponding luma sample at the center position of the chroma coding block covering the current chroma sample may be used. ii. In one example, if the current chroma sample is within a block on the P side, the QP information of the luma coding block that covers the corresponding luma sample of the chroma sample may be used. 9. The chroma QP used in deblocking may depend on the information of the corresponding transform block. In one example, the chroma QP for deblocking at the P-side may depend on the mode of the transform block at the P-side. i. In one example, the chroma QP for deblocking at the P side may depend on whether the transform blocks at the P side are coded with JCCR applied. ii. In one example, the chroma QP for deblocking at the P side may depend on whether the transform blocks at the P side are coded in joint_cb_cr mode and the mode of JCCR is equal to 2. b. In one example, the chroma QP for deblocking at the Q side may depend on the mode of the transform block at the Q side. i. In one example, the chroma QP for deblocking at the Q side may depend on whether the transform blocks at the Q side are coded with JCCR applied. ii. In one example, the chroma QP for Q-side deblocking may depend on whether the transform blocks at the Q-side are coded with JCCR applied and the mode of JCCR is equal to 2. 10. Chroma QP signaling may be within the coding unit. In one example, if the size of a coding unit is larger than the maximum size of a transform block, i.e., maxTB, the chroma QP may be signaled at the CU level. Alternatively, it may be signaled at the TU level. In one example, when the size of a coding unit is larger than the size of a VPDU, the chroma QP may be signaled at the CU level. Alternatively, it may be signaled at the TU level. 11. Whether a block is in joint_cb_cr mode or not can be indicated at the coding unit level. In one example, whether a transform block is in joint_cb_cr mode may be inherited from the coding unit that contains the transform block. 12. The chroma QP used in deblocking may depend on the chroma QP used in the scaling process minus the QP offset by the bit depth. In one example, the chroma QP used for deblocking on the P side is the JCCR chroma QP used in the scaling process, i.e., Qp', when TuCResMode[xTb][yTb] is equal to 2. CbCr minus QpBdOffsetC, where (xTb, yTb) is the transform block containing the first sample on the P side, i.e., p 0,0 This shows that. b. In one example, the chroma QP used for deblocking on the P side is the Cb chroma QP used in the scaling process, i.e., Qp', when TuCResMode[xTb][yTb] is equal to 2. Cbminus QpBdOffsetC, where (xTb, yTb) is the transform block containing the first sample on the P side, i.e., p 0,0 This shows that. c. In one example, the chroma QP used for deblocking on the P side is the Cr chroma QP used in the scaling process, i.e., Qp', when TuCResMode[xTb][yTb] is equal to 2. Cr minus QpBdOffsetC, where (xTb, yTb) is the transform block containing the first sample on the P side, i.e., p 0,0 This shows that. d. In one example, the chroma QP used for deblocking on the Q side is set to the JCCR chroma QP used in the scaling process, i.e., Qp'CbCr minus QpBdOffsetC, when TuCResMode[xTb][yTb] is equal to 2, where (xTb, yTb) is the transform block containing the final sample on the Q side, i.e., q 0,0 This shows that. e. In one example, the chroma QP used for deblocking on the Q side is the Cb chroma QP used in the scaling process, i.e., Qp', when TuCResMode[xTb][yTb] is equal to 2. Cb minus QpBdOffsetC, where (xTb, yTb) is the transform block containing the final sample on the Q side, i.e., q 0,0 This shows that. f. In one example, the chroma QP used for deblocking on the Q side is the Cr chroma QP used in the scaling process, i.e., Qp', when TuCResMode[xTb][yTb] is equal to 2. Cr minus QpBdOffsetC, where (xTb, yTb) is the transform block containing the final sample on the Q side, i.e., q 0,0 This shows that. 13. Different color components may have different deblocking strength controls. a. In one example, each component may have pps_β_offset_div2, pps_tc_offset_div2, and / or pic_β_offset_div2, pc_tc_offset_div2, and / or slice_β_offset_div2, slice_tc_offset_div2. b. In one example, for joint_cb_cr mode, a different set of β_offset_div2, tc_offset_div2 may be applied in the PPS and / or picture header and / or slice header. 14. Instead of using an override mechanism, the deblocking control offsets can be accumulated, taking into account offsets at different levels. a. In one example, pps_beta_offset_div2 and / or pic_beta_offset_div2 and / or slice_beta_offset_div2 may be accumulated to obtain a deblocking offset at the slice level. b. In one example, pps_tc_offset_div2 and / or pic_tc_offset_div2 and / or slice_tc_offset_div2 may be accumulated to obtain a deblocking offset at the slice level. QP settings 15. It is proposed to signal an indication of enabling block-level chroma QP offsets (eg, slice_cu_chroma_qp_offset_enabled_flag) at slice / tile / brick / subpicture level. Alternatively, the signal of such indication may be conditionally signaled. i. In one example, a signal may be sent under the condition of the JCCR enable flag. ii. In one example, it can enable a flag at the picture level, subject to block-level chroma QP offset. iii. Alternatively, such instructions may be alternatively derived. b. In one example, slice_cu_chroma_qp_offset_enabled_flag may be signaled only if the chroma QP offset PPS flag is present (e.g., slice_cu_chroma_qp_offset_enabled_flag is true). c. In one example, slice_cu_chroma_qp_offset_enabled_flag may be inferred to false only if the PPS flag for chroma QP offset is present (e.g., slice_cu_chroma_qp_offset_enabled_flag is false). d. In one example, whether to use a chroma QP offset on a block may be based on the chroma QP offset flag at the PPS level and / or slice level. 16. The same QP derivation method is used in the scaling process (quantization / dequantization) of JCCR coding blocks with different modes. In one example, for JCCR with modes 1 and 3, the QP depends on the QP offset signaled at the picture / slice level (eg, pps_cbcr_qp_offset, slice_cbcr_qp_offset). Filtering Procedure 17. Deblocking for all color components except the first color component may follow the deblocking process for the first color component. In one example, if the color format is 4:4:4, the deblocking process for the second and third components may follow the deblocking process for the first component. b. In one example, if the color format is 4:4:4 in RGB color space, the deblocking process for the second and third components may follow the deblocking process for the first component. c. In one example, if the color format is 4:2:2, the vertical deblocking process of the second and third components may follow the vertical deblocking process of the first component. d. In the above examples, the deblocking process may refer to a deblocking decision process and / or a deblocking filtering process. 18. The method of calculating the gradient used in the deblocking filter process may depend on the coding mode information and / or the quantization parameters. In one example, the gradient calculation may only consider the gradient of the side where the samples on that side are not lossless coded. b. In one example, if both sides are lossless or nearly lossless coded (eg, the quantization parameter is equal to 4), the gradient may be set directly to 0. Alternatively, if both sides are lossless or nearly lossless coded (eg, the quantization parameter is equal to 4), the boundary strength (eg, BS) may be set to 0. c. In one example, if the P side samples are losslessly coded and the Q side samples are lossy coded, the gradients used in the deblocking on / off decision and / or the strong filter on / off decision may include only the gradients of the Q side samples, and vice versa. i. Alternatively, the gradient of one side can also be scaled by N. 1. N is an integer (e.g., 2) and may depend on: a. Video content (e.g., screen content or natural content) b. Messages signaled by DPS / SPS / VPS / PPS / PPS / APS / picture header / slice header / tile group header / Largest coding unit (LCU) / Coding unit (CU) / LCU row / group of LCUs / TU / PU block / Video coding unit c. Location of CU / PU / TU / block / Video coding unit d. Coding mode for blocks containing samples along edges e. The transformation matrix applied to the block containing the samples along the edge f. Block size / block shape of current block and / or adjacent blocks g. Display color format (4:2:0, 4:4:4, RGB or YUV, etc.) h. Coding tree structure (dual tree or single tree, etc.) i. Slice / tile group type and / or picture type j. Color components (e.g., may only apply to Cb or Cr) k.Time Layer ID l. Standard profile / level / tier m. Alternatively, N can be signaled to the decoder. On the derivation of boundary strength 19. It is proposed to treat JCCR coding blocks as non-JCCR coding blocks in the boundary strength determination process. In one example, the determination of boundary strength (BS) may be independent of the check of the use of JCCR for the two blocks on the P and Q sides. b. In one example, the boundary strength (BS) of a block may be determined regardless of whether the block is JCCR coded or not. 20. It is proposed to derive the boundary strength (BS) without comparing the reference picture and / or MV number associated with the block on the P side with the reference picture of the block on the Q side. In one example, the deblocking filter may be disabled even if two blocks have different reference pictures. b. In one example, the deblocking filter may be disabled even if two blocks have different MV numbers (eg, one is uni-predicted and the other is bi-predicted). c. In one example, the value of BS may be set to 1 if the motion vector difference of one or all reference picture lists between the blocks on the P side and the Q side is greater than or equal to a threshold Th. i. Alternatively, further, the value of BS may be set to 0 if the motion vector difference of one or all reference picture lists between the blocks on the P side and the Q side is less than or equal to a threshold Th. d. In one example, the difference between the motion vectors of two blocks that is greater than a threshold Th may be defined as follows: (Abs(MVP[0].x-MVQ[0].x)>Th||Abs(MVP[0].y-MVQ[0].y)>Th|| Abs(MVP[1].x-MVQ[1].x)>Th)||Abs(MVP[1].y-MVQ[1].y)>Th) ii. Alternatively, the difference between the motion vectors of two blocks that is greater than a threshold Th may be defined as follows: (Abs(MVP[0].x-MVQ[0].x)>Th&&Abs(MVP[0].y-MVQ[0].y)>Th&& Abs(MVP[1].x-MVQ[1].x)>Th)&&Abs(MVP[1].y-MVQ[1].y)>Th) iii. Alternatively, in one example, the difference between the motion vectors of two blocks that is greater than a threshold Th may be defined as follows: (Abs(MVP[0].x-MVQ[0].x)>Th||Abs(MVP[0].y-MVQ[0].y)>Th)&& (Abs(MVP[1].x-MVQ[1].x)>Th)||Abs(MVP[1].y-MVQ[1].y)>Th) iv. Alternatively, in one example, the difference between the motion vectors of two blocks that is greater than a threshold Th may be defined as follows: (Abs(MVP[0].x-MVQ[0].x)>Th&&Abs(MVP[0].y-MVQ[0].y)>Th)|| (Abs(MVP[1].x-MVQ[1].x)>Th)&&Abs(MVP[1].y-MVQ[1].y)>Th) e. In one example, a block that does not have a motion vector in a given list can be treated as having a zero motion vector in that list. f. In the above example, Th is an integer (e.g., 4, 8, or 16). g. In the above example, Th may depend on: v. Visual content (e.g., screen content or natural content) vi. Messages signaled in DPS / SPS / VPS / PPS / PPS / APS / picture header / slice header / tile group header / Largest coding unit (LCU) / Coding unit (CU) / LCU row / group of LCUs / TU / PU block / Video coding unit vii. Location of CU / PU / TU / block / Video coding unit viii. Coding modes for blocks containing samples along edges ix. The transformation matrix applied to the block containing the samples along the edge x. Block size / block shape of current block and / or adjacent blocks xi. Display color format (4:2:0, 4:4:4, RGB or YUV, etc.) xii. Coding tree structure (dual tree or single tree, etc.) xiii. Slice / Tile Group Type and / or Picture Type xiv. Color components (e.g., may only apply to Cb or Cr) xv. Time Layer ID xvi. Standard Profile / Level / Tier xvii. Alternatively, Th can be signaled to the decoder h. The above examples may be applicable under certain conditions. xviii. In one example, the condition is that blkP and blkQ are not coded in intra mode. xix. In one example, the condition is that blkP and blkQ have zero coefficients in the luma component. xx. In one example, the condition is that blkP and blkQ are not coded in CIIP mode. xxi. In one example, the condition is that blkP and blkQ are coded in the same prediction mode (eg, IBC or Inter). About the Luma Deblocking Filtering Process 21. Deblocking may use different QPs for TS and non-TS coded blocks. In one example, a TS QP is used for TS coded blocks and a non-TS QP is used for non-TS coded blocks. 22. The luma filtering process (eg, the luma edge determination process) may depend on the quantization parameter applied to the luma block scaling process. In one example, beta and T C The QP used to derive QpPrimeTsMin may depend on the clipping range of the transform skip, as indicated by, for example, QpPrimeTsMin. 23. It is proposed to use the same gradient calculation for the large and small block boundaries. In one example, the deblocking filter on / off decision described in Section 2.1.4 can also be applied to large block boundaries. i. In one example, the threshold beta in the decision can be modified for large block boundaries. 1. In one example, beta may depend on the quantization parameter. 2. In one example, the beta used in the filter on / off decision for large block boundaries may be smaller than the beta for small block boundaries. Alternatively, in one example, the beta used in the filter on / off decision for large block boundaries may be larger than the beta for small block boundaries. b. Alternatively, in one example, the beta used in the filter on / off decision for the major block boundaries may be equal to that for the minor block boundaries. 3. In one example, beta is an integer and may be based on the following: a. Video content (e.g., screen content or natural content) b. Messages signaled in DPS / SPS / VPS / PPS / PPS / APS / picture header / slice header / tile group header / Largest coding unit (LCU) / Coding unit (CU) / LCU row / group of LCUs / TU / PU block / Video coding unit c. Location of CU / PU / TU / block / Video coding unit d. Coding modes for blocks containing samples along edges e. The transformation matrix applied to the block containing the samples along the edge f. Block dimensions of the current block and / or its adjacent blocks g. Block size / block shape of current block and / or adjacent blocks h. Display color format (4:2:0, 4:4:4, RGB or YUV, etc.) i. Coding tree structure (dual tree or single tree, etc.) j. Slice / tile group type and / or picture type k. Color component (e.g., may only apply to Cb or Cr) l.Time Layer ID m. Standard profile / level / tier Alternatively, beta can be signaled to the decoder. About scaling matrices (dequantization matrices) 24. The value for a particular position in the quantization matrix may be set to a constant. In one example, the location can be a (x,y) location, where x and y are two integer variables (e.g., x=y=0) and (x,y) is the coordinate for TU / TB / PU / PB / CU / CB. i. In one example, the location can be the location of a DC. b. In one example, the constant may be 16. c. In one example, for these locations, matrix value signaling may not be used. 25. Constraints may be set so that the average / weighted average of some positions in the quantization matrix may be constant. In one example, the deblocking process may depend on a constant value. b. In one example, the constants can be indicated in the DPS / VPS / SPS / PPS / Slice / Picture / Tile / Brick headers. 26. One or more indications may be signaled in a picture header to inform the scaling matrix selected in the picture associated with the picture header. About Cross-Component Adaptive Loop Filter (CCALF) 27. CCALF may be applied before some loop filtering process in the decoder. In one example, CCALF may be applied before the deblocking process at the decoder. b. In one example, CCALF may be applied before SAO at the decoder. c. In one example, CCALF may be applied before ALF at the decoder. d. Alternatively, the order of the different filters (eg, CCALF, ALF, SAO, deblocking filter) may not be fixed. i. In one example, the invocation of CCLAF may be before one filtering process for one video unit or after another filtering process for another video unit. ii. In one example, a video unit can be a CTU / CTB / slice / tile / brick / picture / sequence. e. Alternatively, an indication of the order of the different filters (eg, CCALF, ALF, SAO, deblocking filters) may be signaled or derived on the fly. i. Alternatively, an indication of a CCALF call may be signaled or derived on the fly. f. Explicit (e.g., signaling from the encoder to the decoder) or implicit (e.g., derived at both the encoder and the decoder) indication of how to control CCALF can be separated for different color components (e.g., Cb and Cr). g. Whether and / or how CCALF is applied may depend on the color format (such as RGB and YCbCr) and / or the color sampling format (such as 4:2:0, 4:2:2 and 4:4:4), and / or the color downsampling position or phase. About Chroma QP Offset List 28. The selection of signaling and / or chroma QP offset list may depend on the coded prediction mode / picture type / slice or tile or brick type. h. Chroma QP offset lists, eg, cb_qp_offset_list[i], cr_qp_offset_list[i], and joint_cbcr_qp_offset_list[i], may be different for different coding modes. i. In one example, whether and how to apply a chroma QP offset list may depend on whether the current block is coded in intra mode. j. In one example, whether and how to apply a chroma QP offset list may depend on whether the current block is coded in inter mode. k. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in palette mode. l. In one example, whether and how to apply a chroma QP offset list may depend on whether the current block is coded in IBC mode. m. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in transform skip mode. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in BDPCM mode. o. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded with transform_quant_skip or lossless mode. Chroma deblocking at CTU boundaries 29. The selection method of the QP used in the deblocking filter process (e.g., using the corresponding luma or chroma dequantization QP) may depend on the location of the sample relative to the CTU / CTB / VPDU boundary. 30. The method of selecting the QP used in the deblocking filter process (e.g., using the corresponding luma or chroma dequantization QP) may depend on the color format (such as RGB and YCbCr), and / or the color sampling format (such as 4:2:0, 4:2:2, and 4:4:4), and / or the color downsampling position or phase. 31. For edges at CTU boundaries, deblocking may be based on the luma QP of the corresponding block. p. In one example, for horizontal edges at CTU boundaries, deblocking may be based on the luma QP of the corresponding block. i. In one example, the deblocking may be based on the luma QP of the corresponding block on the P side. ii. In one example, the deblocking may be based on the luma QP of the corresponding block on the Q side. q. In one example, for vertical edges at CTU boundaries, deblocking may be based on the luma QP of the corresponding block. i. In one example, the deblocking may be based on the luma QP of the corresponding block on the P side. ii. In one example, the deblocking may be based on the luma QP of the corresponding block on the Q side. r. In one example, for edges at CTU boundaries, deblocking may be based on luma QP on the P side and chroma QP on the Q side. s. In one example, for edges at CTU boundaries, deblocking may be based on luma QP on the Q side and chroma QP on the P side. t. In this bullet, "CTU boundary" may refer to a specific CTU boundary, such as an upper CTU boundary or a lower CTU boundary. 32. For horizontal edges at CTU boundaries, deblocking may be based on a function of chroma QP on the P side. u. In one example, deblocking may be based on an averaging function of chroma QP on the P side. i. In one example, the function may be based on the average of the chroma QP for each of the 8 luma samples. ii. In one example, the function may be based on the average of the chroma QP for each of the 16 luma samples. iii. In one example, the function may be based on the average of the chroma QP for each of the 32 luma samples. iv. In one example, the function may be based on the average of the chroma QP for each of the 64 luma samples. v. In one example, the function may be based on the average of the chroma QP of each CTU. v. In one example, deblocking may be based on a maximum function of chroma QP on the P side. i. In one example, the function may be based on the maximum value of chroma QP for each of the 8 luma samples. ii. In one example, the function may be based on the maximum value of chroma QP for each of the 16 luma samples. iii. In one example, the function may be based on the maximum value of chroma QP for each of the 32 luma samples. iv. In one example, the function may be based on the maximum value of chroma QP for each of the 64 luma samples. v. In one example, the function may be based on the maximum value of the chroma QP for each CTU. In one example, deblocking may be based on a minimum function of chroma QP on the P side. i. In one example, the function may be based on the minimum of the chroma QP for each of the 8 luma samples. ii. In one example, the function may be based on the minimum value of chroma QP for each of the 16 luma samples. iii. In one example, the function may be based on the minimum value of chroma QP for each of the 32 luma samples. iv. In one example, the function may be based on the minimum value of chroma QP for each of the 64 luma samples. v. In one example, the function may be based on the minimum value of the chroma QP of each CTU. x. In one example, deblocking may be based on a subsampling function of the chroma QP on the P side. i. In one example, the function may be based on the chroma QP of the kth chroma sample for each of the 8 luma samples. 1. In one example, the kth sample may be the first sample. 2. In one example, the kth sample may be the last sample. 3. In one example, the kth sample may be the third sample. 4. In one example, the kth sample may be the 4th sample. ii. In one example, the function may be based on the chroma QP of the kth chroma sample for each of the 16 luma samples. 1. In one example, the kth sample may be the first sample. 2. In one example, the kth sample may be the last sample. 3. In one example, the kth sample may be the 7th sample. 4. In one example, the kth sample may be the 8th sample. iii. In one example, the function may be based on the chroma QP of the kth chroma sample for each of the 32 luma samples. 1. In one example, the kth sample may be the first sample. 2. In one example, the kth sample may be the last sample. 3. In one example, the kth sample may be the 15th sample. 4. In one example, the kth sample may be the 16th sample. iv. In one example, the function may be based on the chroma QP of the kth chroma sample for each of the 64 luma samples. 1. In one example, the kth sample may be the first sample. 2. In one example, the kth sample may be the last sample. 3. In one example, the kth sample may be the 31st sample. 4. In one example, the kth sample may be the 32nd sample. v. In one example, the function may be based on the chroma QP of the kth chroma sample of each CTU. y. Alternatively, the above items may be applied to the chroma QP on the Q side for the deblocking process. 33. There may be a constraint that the quantization group of a chroma component must be larger than a certain size. A quantization group is a set of (one or more) coding units that carry a quantization parameter. In one example, the width of a quantization group of chroma components may be constrained to be greater than a certain value, K. In one example, K is equal to 4. 34. There may be a constraint that the quantization groups of the luma components must be larger than a certain size. In one example, the width of the quantization group for the luma component may be constrained to be greater than a certain value, K. In one example, K is equal to 8. 35. There may be a constraint that the QP of a chroma component may be the same for a chroma row segment of length 4*m starting at (4*m*x, 2y) relative to the top-left of the picture, where x and y are non-negative integers, and m is a positive integer. z. In one example, m may be equal to 1. In one example, the width of a quantization group of chroma components must be greater than or equal to 4*m. 36. There may be a constraint that the QP of a chroma component may be the same for a chroma column segment of length 4*n starting at (2*x, 4*n*y) relative to the top-left of the picture, where x and y are non-negative integers, and n is a positive integer. bb. In one example, n may be equal to 1. cc. In one example, the height of a quantization group of a chroma component must be greater than or equal to 4*n. About the Chroma Deblocking Filtering Process 37. A first syntax element that controls the use of coding tool X may be signaled in a first video unit (such as a picture header) depending on a second syntax element that is signaled in a second video unit (such as an SPS or PPS, or VPS). In one example, a first syntax element is signaled only if a second syntax element indicates that coding tool X is enabled. b. In one example, X is the bidirectional optical flow (BDOF). c. In one example, X is the predicted refined optical flow (PROF). d. In one example, X is the decoder-side motion vector refinement (DMVR). e. In one example, the signaling of the use of coding tool X may be subject to a condition check of slice type (eg, P slice or B slice, non-I slice). About the Chroma Deblocking Filtering Process 38. The deblocking filter decision process for the two chroma blocks can be unified so that it is called only once, and the decision is applied to the two chroma blocks. b. In one example, the decision of whether to run a deblocking filter may be the same for the Cb and Cr components. c. In one example, if it is decided that a deblocking filter is to be applied, the decision of whether to perform a stronger deblocking filter may be the same for the Cb and Cr components. d. In one example, the deblocking condition and the strong filter on / off condition may be checked only once, as described in Section 2.2.7, but may be modified to check the information of both chroma components. i. In one example, the average of the gradients of the Cb and Cr components may be used in the above determination for both the Cb and Cr components. ii. In one example, a stronger filter of chroma may be performed only if the stronger filter condition is met for both the Cb and Cr components. 1. Alternatively, in one example, a weak chroma filter may be performed only if the strong filter condition is not met for at least one chroma component. About ACT 39. Whether the deblocking QP is equal to the dequantization QP may depend on whether ACT is applied or not. In one example, when ACT is applied to a block, the deblocking QP value may depend on the QP value before the ACT QP adjustment. b. In one example, if ACT is not applied to a block, the deblocking QP value may always be equal to the dequantization QP value. c. In one example, if neither ACT nor TS is applied to a block, the deblocking QP value may always be equal to the dequantization QP value. 40. ACT and BDPCM may be applied exclusively at the block level. In one example, if ACT is applied to a block, then luma BDPCM is not applied for that block. b. In one example, if ACT is applied to a block, then chroma BDPCM is not applied for that block. c. In one example, if ACT is applied to a block, then both luma BDPCM and chroma BDPCM are not applied for that block. d. In one example, if luma BDPCM and / or chroma BDPCM are applied to a block, then ACT is not applied for that block. 41. Whether or not to enable BDPCM mode may be inferred based on ACT usage (eg, cu_act_enabled_flag). a. In one example, the estimate of chroma BDPCM mode may be defined as (cu_act_enabled_flag && intra_bdpcm_luma_flag && sps_bdpcm_croma_enabled_flag? true:false). b. In one example, if sps_bdpcm_croma_enabled_flag is false, then intra_bdpcm_luma_flag may be inferred to be false when it is not signaled and cu_act_enabled_flag is true. c. In one example, cu_act_enabled_flag may be inferred to be false when intra_bdpcm_luma_flag is true and sps_bdpcm_croma_enabled_flag is false. d. In one example, intra_bdpcm_luma_flag may be inferred to be false when cu_act_enabled_flag is true and sps_bdpcm_chroma_enabled_flag is false. general 42. The above method can be applied under certain conditions. In one example, the condition is that the color format is 4:2:0 and / or 4:2:2. i. Alternatively, furthermore, in the case of 4:4:4 color format, the method of applying the deblocking filter to the two color chroma components may follow the current design. b. In one example, the indication of use of the above method may be signaled at the sequence / picture / slice / tile / brick / video region level, e.g., SPS / PPS / picture header / slice header. c. In one example, use of the above method may depend on: ii. Visual content (e.g., screen content or natural content) iii. Messages signaled in DPS / SPS / VPS / PPS / PPS / APS / picture header / slice header / tile group header / Largest coding unit (LCU) / Coding unit (CU) / LCU row / group of LCUs / TU / PU block / Video coding unit iv. Location of CU / PU / TU / block / Video coding unit In one example, the existing design can be applied to filter samples along the CTU / CTB boundaries (e.g., from the first K (e.g., K=4 / 8) to the top / left / right / bottom boundaries), while for other samples, the proposed method (e.g., item 3 / 4) can be applied instead. v. Coding mode for blocks containing samples along edges vi. The transformation matrix applied to the block containing the samples along the edge vii. Block dimensions of the current block and / or its adjacent blocks viii. Block dimensions / block shape of current block and / or adjacent blocks ix. Display color format (4:2:0, 4:4:4, RGB or YUV, etc.) x. Coding tree structure (dual tree or single tree, etc.) xi. Slice / Tile Group Type and / or Picture Type xii. Color components (e.g., may only apply to Cb or Cr) xiii. Time Layer ID xiv. Standard Profile / Level / Tier xv. Alternatively, m and / or n may be signaled to the decoder.

[0105] 5. Additional Embodiments Newly added text is underlined and in bold italics, removed text is marked with [[ ]].

[0106] 5.1. Example #1 on Chroma QP in Deblocking [Table 8] TIFF0007662142000017.tif53148

[0107] 5.2. Example #2 on Derivation of Boundary Strength [Table 9] TIFF0007662142000019.tif227150TIFF0007662142000020.tif144149

[0108] 5.3. Example #3 for Derivation of Boundary Strength [Table 10] TIFF0007662142000022.tif227150TIFF0007662142000023.tif132149

[0109] 5.4. Example #4 on the Luma Deblocking Filtering Process [Table 11] TIFF0007662142000025.tif59129

[0110] 5.5. Example #5 on Chroma Deblocking Filtering Process [Table 12] TIFF0007662142000027.tif227152TIFF0007662142000028.tif111150

[0111] 5.6. Example #6 on Chroma QP in Deblocking [Table 13] TIFF0007662142000030.tif141151

[0112] 5.7. Example #7 of Chroma QP in Deblocking [Table 14] TIFF0007662142000032.tif221152

[0113] 5.8. Example #8 on Chroma QP in Deblocking

[0114] When making filter decisions for the three samples shown (solid circles), the QP of the luma CU that covers the center position of the chroma CU that contains the three samples is selected. Thus, for the first, second, and third chroma samples (shown in FIG. 11), the QP of the luma CU that covers the center position of the chroma CU that contains the three samples is selected. Y Only 3 QPs are used.

[0115] In this way, the method of selecting luma CUs for the chroma quantization / dequantization process is consistent with that of the chroma filter decision process.

[0116] 5.9. Example #9 for QP used in JCCR coded blocks [Table 15]

[0117] 5.10 Example #10 for QP used in JCCR coded blocks [Table 16] TIFF0007662142000035.tif239151TIFF0007662142000036.tif240151TIFF0007662142000037.tif241150TIFF0007662142000038.tif242151TIFF0007662142000039.tif233150TIFF0007662142000040.tif240150TIFF0007662142000041.tif239150TIFF0007662142000042.tif121150TIFF0007662142000043.tif240151TIFF0007662142000044.tif240152TIFF0007662142000045.tif239151TIFF0007662142000046.tif237151TIFF0007662142000047.tif237151TIFF0007662142000048.tif237151TIFF0007662142000049.tif233150TIFF0007662142000050.tif237150

[0118] 5.11 Example #11

Table 17

[0119] 5.12 Example #12

Table 18

[0120] 5.13 Example #13

Table 19

[0121] 5.14 Example #14

Table 20

[0122] 5.15 Example #15

[0123] An exemplary control logic is shown in FIG. [Table 21]

[0124] 5.16 Example #16 [Table 22] TIFF0007662142000059.tif244161TIFF0007662142000060.tif239150TIFF0007662142000061.tif126150

[0125] 5.17 Example #17

[0126] This embodiment is based on Example #15. [Table 23] TIFF0007662142000063.tif239150TIFF0007662142000064.tif111148

[0127] 5.18 Example #18 This embodiment is based on Example #17. [Table 24] TIFF0007662142000066.tif201151

[0128] 5.19 Example #19

[0129] This embodiment relates to ACT. [Table 25]

[0130] 5.20 Example #20

[0131] This embodiment relates to QP derivation for deblocking.

[0132] [Table 26] TIFF0007662142000069.tif247150

[0133] 6. Examples of the Disclosed Technology FIG. 12 is a block diagram of a video processing device 1200. The device 1200 may be used to implement one or more methods described herein. The device 1200 may be realized in a smartphone, a tablet, a computer, an Internet of Things (IoT) receiver, etc. The device 1200 may include one or more processors 1202, one or more memories 1204, and video processing hardware 1206. The processor 1202 may be configured to implement one or more methods described herein. The memory(s) 1204 may be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 1206 may be used to implement some techniques described herein in a hardware circuit and may be partially or completely part of the processor 1202 (e.g., a graphics processor core GPU, or other signal processing circuit).

[0134] In this document, the term "video processing" can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion from a pixel representation of a video to a corresponding bitstream representation or vice versa. The bitstream representation of a current video block may correspond to bits that are co-located or spread to different locations within the bitstream, e.g., as defined by a syntax. For example, a macroblock may be encoded in terms of transformed and coded error residual values ​​and using bits in the header and other fields within the bitstream.

[0135] It will be appreciated that the disclosed methods and techniques are beneficial in embodiments of video encoders and / or decoders integrated within video processing devices such as smartphones, laptops, desktops, and similar devices, by enabling the use of the techniques disclosed herein.

[0136] 13 is a flow chart for an example method 1300 of video processing. The method 1300 includes, at 1310, performing a conversion between a video unit and a bitstream representation of the video unit, where during the conversion, a deblocking filter is used at video unit boundaries, and thus, when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, processing through the chroma QP table is performed on individual chroma QP values.

[0137] Some embodiments may be described using the following clause-based format.

[0138] 1. A method of video processing, comprising:

[0139] A step of performing a conversion between a video unit and a bitstream representation of a video unit, wherein during the conversion, when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, a deblocking filter is used at boundaries of the video unit such that processing by the chroma QP table is performed on individual chroma QP values.

[0140] 2. The method of claim 1, wherein a chroma QP offset is added to each individual chroma QP value after processing with the chroma QP table.

[0141] 3. The method of claim 1 or 2, wherein a chroma QP offset is added to the value output by the chroma QP table.

[0142] 4. The method according to clause 1 or 2, wherein the chroma QP offset is not considered as an input to the chroma QP table.

[0143] 5. The method according to clause 2, wherein the chroma QP offset is at a picture level or a video unit level.

[0144] 6. A method of video processing, comprising:

[0145] A step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at boundaries of the video unit and the chroma offsets are used at picture / slice / tile / brick / subpicture level, such that a chroma QP offset is used in the deblocking filter.

[0146] 7. The method of claim 6, wherein a chroma QP offset used in the deblocking filter is associated with a coding method applied to boundaries of the video units.

[0147] 8. The method according to clause 7, wherein the coding method is a joint coding of chroma residuals (JCCR) method.

[0148] 9. A method of video processing, comprising:

[0149] A step of performing a conversion between a video unit and a bitstream representation of a video unit, wherein during the conversion, a deblocking filter is used at boundaries of the video unit, and information related to the same luma coding unit is used in the deblocking filter to derive chroma offsets, such that chroma QP offsets are used in the deblocking filter.

[0150] 10. The method according to clause 9, wherein the same luma coding unit covers corresponding luma samples at the center position of a video unit, and the video unit is a chroma coding unit.

[0151] 11. The method of claim 9, wherein a scaling process is applied to the video unit, and one or more parameters of the deblocking filter depend, at least in part, on quantization / dequantization parameters of the scaling process.

[0152] 12. The method of claim 11, wherein the quantization / dequantization parameters of the scaling process include the chroma QP offset.

[0153] 13. The method according to any of clauses 9-12, wherein the luma samples in a video unit are in the P-side or the Q-side.

[0154] 14. The method of claim 13, wherein the information about the same luma coding unit depends on a relative position of the coding unit with respect to the same luma coding unit.

[0155] 15. A method of video processing, comprising:

[0156] A step of performing a conversion between a video unit and a bitstream representation of a video unit, wherein during the conversion, a deblocking filter is used at a boundary of the video unit and an indication to enable the use of a chroma offset is signaled in the bitstream representation such that a chroma QP offset is used in the deblocking filter.

[0157] 16. The method of claim 15, wherein the indication is conditionally signaled in response to detecting one or more flags.

[0158] 17. The method of claim 16, wherein the one or more flags relate to a JCCR enable flag or a chroma QP offset enable flag.

[0159] 18. The method of claim 15, wherein the instruction is signaled based on a derivation.

[0160] 19. A method of video processing, comprising:

[0161] performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used on boundaries of the video unit and a chroma QP offset is used for the deblocking filter, where the chroma QP offset used for the deblocking filter is the same as either a JCCR coding method applied on boundaries of the video unit or a method different from a JCCR coding method is applied on boundaries of the video unit;

[0162] 20. A method of video processing, comprising:

[0163] A step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at a boundary of the video unit such that a chroma QP offset is used within the deblocking filter, and a boundary strength (BS) of the deblocking filter is calculated without comparing a number of motion vectors (MV) associated with a reference picture and / or the video unit with a number of motion vectors (MV) associated with a reference picture and / or the video unit on the Q side at a P-side boundary.

[0164] 21. The method of clause 20, wherein the deblocking filter is disabled under one or more conditions.

[0165] 22. The method of claim 21, wherein the one or more conditions relate to a magnitude or a threshold of the motion vector.

[0166] 23. The method of clause 22, wherein the threshold is associated with at least one of the following: i. content of the video unit, ii. messages signaled in a DPS / SPS / VPS / PPS / PPS / APS / picture header / slice header / tile group header / largest coding unit (LCU) / coding unit (CU) / LCU row / LCU group / TU / PU block / video coding unit, iii. position of a CU / PU / TU / block / video coding unit, iv. coding mode of a block with samples along its boundary, v. a transformation matrix applied to a video unit with samples along its boundary, vi. shape or dimensions of a video unit, vii. color format indication, viii. coding tree structure, ix. slice / tile group type and / or picture type, x. color components, xi. temporal layer ID, or xii. profile / level / hierarchy of a standard.

[0167] 24. The method of claim 20, wherein different QP offsets are used for TS coded video units and non-TS coded video units.

[0168] 25. The method of claim 20, wherein the QP used in the luma filtering step is related to the QP used in the scaling process of the luma block.

[0169] 26. A video decoding apparatus comprising a processor configured to implement the methods described in one or more of clauses 1-25.

[0170] 27. A video coding apparatus comprising a processor configured to implement a method according to one or more of clauses 1-25.

[0171] 28. A computer program product having computer code stored thereon, which code, when executed by a processor, causes the processor to perform a method according to any of clauses 1-25.

[0172] 29. Any method, apparatus, or system described herein.

[0173] FIG. 18 is a block diagram illustrating an example video coding system 100 that can utilize the techniques of this disclosure.

[0174] 18, video coding system 100 may include a source device 110 and a destination device 120. Source device 110 generates encoded video data and may be referred to as a video coding device. Destination device 120 can decode the encoded video data generated by source device 110 and may be referred to as a video decoding device.

[0175] The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0176] The video source 112 may include a source such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of such sources. The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a sequence of bits that form a coded representation of the video data. The bitstream may include coded pictures and associated data. A coded picture is a coded representation of a picture. The associated data may include a sequence parameter set, a picture parameter set, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The encoded video data may be transmitted directly to the destination device 120 via the I / O interface 116 over the network 130a. The encoded video data may also be stored on a storage medium / server 130b for access by the destination device 120.

[0177] The destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .

[0178] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain the encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to a user. The display device 122 may be integrated with the destination device 120 or may be external to the destination device 120 configured to interface with an external display device.

[0179] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVM) standard, and other current and / or future standards.

[0180] FIG. 19 is a block diagram illustrating an example of a video encoder 200, which may be the video encoder 114 in the system 100 shown in FIG.

[0181] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 19, video encoder 200 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0182] Functional components of the video encoder 200 may include a partition unit 201, a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, an intra prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.

[0183] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra block copy (IBC) unit. The IBC unit may perform prediction in an IBC mode, where at least one reference picture is the picture in which the current video block is located.

[0184] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are shown separately in the example of FIG. 25 for illustrative purposes.

[0185] The partition unit 201 may divide an image into one or more video blocks. The video encoder 200 and the video decoder 300 may support a variety of video block sizes.

[0186] The mode selection unit 203 may select one of the coding modes, intra or inter, for example, based on the error result, and may provide the resulting intra- or inter-coded block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 to reconstruct the coded block for use as a reference picture. In some examples, the mode selection unit 203 may select a combined intra- and inter-prediction (CIIP) mode, where prediction is based on an inter-prediction signal and an intra-prediction signal. The mode selection unit 203 may also select the resolution of the motion vector for the block (e.g., sub-pixel or integer pixel precision) in the case of inter-prediction.

[0187] To perform inter prediction for the current video block, motion estimation unit 204 may generate motion information for the current video block by comparing one or more reference frames from buffer 213 to the current video block. Motion compensation unit 205 may determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture associated with the current video block.

[0188] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block depending on whether the current video block is in an I slice, a P slice, or a B slice, for example.

[0189] In some examples, motion estimation unit 204 may perform unidirectional prediction on the current video block, and motion estimation unit 204 may search reference pictures in list 0 or list 1 for a reference video block for the current video block. Motion estimation unit 204 may then generate a reference index indicating a reference picture in list 0 or list 1, including the reference video block and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as motion information for the current video block. Motion compensation unit 205 may generate a prediction video block for the current block based on the reference video block indicated by the motion information of the current video block.

[0190] In another example, motion estimation unit 204 may perform bidirectional prediction for the current video block, and motion estimation unit 204 may search reference pictures in list 0 for a reference video block for the current video block and may also search reference pictures in list 1 for another reference video block for the current video block. Motion estimation unit 204 may then generate a reference index indicating the reference pictures in list 0 and list 1, which includes the reference video block and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index and the motion vector of the current video block as motion information of the current video block. Motion compensation unit 205 may generate a predictive video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0191] In some examples, the motion estimation unit 204 may output a full set of motion information for the decoding process of the decoder.

[0192] In some examples, motion estimation unit 204 may not output a complete set of motion information for the current video. Rather, motion estimation unit 204 may signal the motion information of the current video block with reference to motion information of other video blocks. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.

[0193] In one example, motion estimation unit 204 may indicate, in a syntax structure associated with the current video block, a value that indicates to video decoder 300 that the current video block has the same motion information as another video block.

[0194] In another example, motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates a difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 may determine the motion vector of the current video block using the motion vector of the indicated video block and the motion vector difference.

[0195] As described above, the video encoder 200 can predictively signal the motion vectors. Two examples of predictive signaling techniques can be implemented.

[0196] The video encoder 200 includes advanced motion vector prediction (AMVP) and merge mode signaling.

[0197] Intra prediction unit 206 may perform intra prediction on the current video block. When intra prediction unit 206 performs intra prediction on the current video block, intra prediction unit 206 may generate predictive data for the current video block based on decoded samples of other video blocks in the same picture. The predictive data for the current video block may include the video block to be predicted and various syntax elements.

[0198] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the prediction video block for the current video block from the current video block. The residual data for the current video block may include residual video blocks that correspond to different sample components of the samples in the current video block.

[0199] In other examples, for example, in skip mode, residual data for the current video block may not exist and residual generation unit 207 may not perform a subtraction operation.

[0200] Transform processing unit 208 may generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video block associated with the current video block.

[0201] After the transform processing unit 208 generates a transform coefficient video block associated with the current video block, the quantization unit 209 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values ​​associated with the current video block.

[0202] Inverse quantization unit 210 and inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. Reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by prediction unit 202 to generate a reconstructed video block related to the current block for storage in buffer 213.

[0203] After reconstruction unit 212 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.

[0204] The entropy encoding unit 214 may receive data from other functional components of the video encoder 200. Once the entropy encoding unit 214 receives the data, the entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream that includes the entropy encoded data.

[0205] FIG. 20 is a block diagram illustrating an example of a video decoder 300, which may be the video decoder 124 in the system 100 shown in FIG.

[0206] The video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 20, the video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared among various components of the video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0207] In the example of Figure 20, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. The video decoder 300 may, in some examples, perform a decoding path that is generally reciprocal to the encoding path described with respect to the video encoder 200 (Figure 19).

[0208] The entropy decoding unit 301 may retrieve an encoded bitstream. The encoded bitstream may include entropy encoded video data (e.g., coded blocks of video data). The entropy decoding unit 301 may decode the entropy encoded video data, and from the entropy decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list index, and other motion information. The motion compensation unit 302 may determine such information, for example, by implementing AMVP and merge mode.

[0209] The motion compensation unit 302 may generate motion compensation blocks, possibly performing interpolation based on a compensation filter. An identifier for the interpolation filter used with sub-pixel accuracy may be included in the syntax element.

[0210] The motion compensation unit 302 may calculate interpolated values ​​for sub-integer pixels of the reference block using the interpolation filters used by video encoder 200 during encoding of the video block. The motion compensation unit 302 may determine the interpolation filters used by video encoder 200 according to received syntax information and use the interpolation filters to generate the predictive block.

[0211] The motion compensation unit 302 may use some of the syntax information to determine the size of the blocks used to encode the frames and / or slices of the encoded video sequence, partitioning information describing how each macroblock of the images of the encoded video sequence is partitioned, a mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the encoded video sequence.

[0212] The intra prediction unit 303 may form a prediction block from spatially neighboring blocks, for example, using an intra prediction mode received in the bitstream. The inverse quantization unit 303 inverse quantizes, i.e., de-quantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 applies an inverse transform.

[0213] Reconstruction unit 306 may sum the residual blocks with corresponding prediction blocks generated by motion compensation unit 202 or intra prediction unit 303 to form decoded blocks. If desired, a deblocking filter may also be applied to filter the decoded blocks to remove blockiness artifacts. The decoded video blocks are then stored in a buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction, and also generates the decoded video for presentation on a display device.

[0214] FIG. 21 is a block diagram illustrating an example video processing system 2100 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 2100. System 2100 may include an input 2102 for receiving video content. The video content may be received in raw or uncompressed format, e.g., 8 or 10 bit multi-component pixel values, or may be received in a compressed or encoded format. Input 2102 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, passive optical network (PON), and wireless interfaces such as Wi-Fi or cellular interfaces.

[0215] The system 2100 may include a coding component 2104 that may implement various coding or encoding methods described in this document. The coding component 2104 may reduce the average bit rate of the video from the input 2102 to the output of the coding component 2104, generating a bitstream representation of the video. Thus, the coding techniques are sometimes referred to as video compression or video transcoding techniques. The output of the coding component 2104 may be stored or transmitted via a connected communication, as represented by component 2106. The stored or communicated bitstream (or coded) representation of the video received at the input 2102 may be used by component 2108 to generate pixel values ​​or displayable video that is transmitted to the display interface 2110. The process of generating user-viewable video from the bitstream representation is sometimes referred to as video decompression. Furthermore, although certain video processing operations are referred to as “coding” operations or tools, it will be understood that the coding tools or operations are used in an encoder and that a corresponding decoding tool or operation, which reverses the result of the coding, is performed in a decoder.

[0216] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI), or DisplayPort, etc. Examples of storage interfaces may include SATA (serial advanced technology attachment), PCI, IDE interfaces, etc. The techniques described herein may be embodied in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.

[0217] 22 is a flowchart representation of a video processing method in accordance with the present technology. The method 2200 includes, in operation 2210, applying a deblocking filter to video blocks of the plurality of components in converting between a video including the plurality of components and a bitstream representation of the video. A deblocking filter strength for the deblocking filter of each of the plurality of components is determined according to a rule that specifies using a different method for determining the deblocking filter strength for the video blocks of each of the plurality of components.

[0218] In some implementations, the plurality of color components includes at least a Cb component and a Cr component. In some embodiments, each of the plurality of color components is associated with deblocking parameters offset beta and tc, including a first syntax element beta_offset_div2 and a second syntax element tc_offset_div2 in the video unit. In some embodiments, the video unit includes a portion corresponding to a picture parameter set. In some embodiments, the video unit includes a portion corresponding to a picture header. In some embodiments, the video unit further includes a portion corresponding to a slice header. In some embodiments, different syntax elements are applicable to the video blocks of the color components when joint coding of a chroma residual mode is applied to the video blocks.

[0219] 23 is a flowchart representation of a video processing method in accordance with the present technology. The method 2300 includes, in operation 2310, performing a conversion between a first video unit of a video and a bitstream representation of the video. During the conversion, a deblocking filtering process is applied to the first video unit. A deblocking control offset for the first video unit is determined based on accumulating one or more deblocking control offset values ​​at other video unit levels.

[0220] In some embodiments, the deblocking control offset includes at least beta_offset_div2 or tc_offset_div2.In some embodiments, the first video unit includes a slice, and the other video unit level includes at least a picture parameter set or a picture.

[0221] 24 is a flowchart representation of a video processing method in accordance with the present technology. The method 2400 includes, in operation 2410, determining a quantization parameter to be used in a deblocking process based on the use of a transform skip (TS) mode or an adaptive color transform (ACT) mode for coding the block for conversion between a block of video and a bitstream representation of the video. The method 2400 also includes, in operation 2420, performing the conversion based on the determination.

[0222] In some embodiments, the quantization parameter is determined based on Max(QpPrimeTsMin, qP)-(cu_act_enabled_flag[xTbY][yTbY]?N:0), where N is a positive integer, and qP is a real number. QpPrimeTsMin represents a minimum quantization parameter for blocks encoded in TS mode, and cu_act_enabled_flag is a flag indicating the use of ACT mode. In some embodiments, the quantization parameter is determined based on Max(QpPrimeTsMin, qP-(cu_act_enabled_flag[xTbY][yTbY]?N:0]), where N is a positive integer, and qP is a real number. QpPrimeTsMin represents a minimum quantization parameter for blocks encoded in TS mode, and cu_act_enabled_flag is a flag indicating the use of ACT mode. In some implementations, qP is equal to the chroma quantization parameter of the Cb or Cr component. In some embodiments, N is different for blocks of different color components. In some embodiments, if the block is a Cb, B, G, or U component, N is equal to 5. In some embodiments, if the block is a Cr, R, B, or V component, N is equal to 3.

[0223] 25 is a flow chart representation of a video processing method in accordance with the present technology. The method 2500 includes, in operation 2510, performing a conversion between blocks of color components of a video and a bitstream representation of the video. The bitstream representation follows a rule that specifies that the size of a quantization group of a chroma component is greater than a threshold K. The quantization group includes one or more coding units that carry a quantization parameter.

[0224] In some embodiments, the size comprises a width of a quantization group. In some embodiments, the color components are chroma components. In some embodiments, K is 4. In some embodiments, the color components are luma components. In some embodiments, K is 8.

[0225] In some embodiments, the conversion includes encoding the video into a bitstream representation. In some embodiments, the conversion includes decoding the bitstream representation into the video.

[0226] Some embodiments of the disclosed techniques include making a decision or determination to enable a video processing tool or mode. In one example, if a video processing tool or mode is enabled, the encoder uses or implements the tool or mode in processing blocks of video, but may not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, conversion of blocks of video to a bitstream representation of video uses the video processing tool or mode when enabled based on the decision or determination. In another example, if a video processing tool or mode is enabled, the decoder processes the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, conversion of a bitstream representation of video to blocks of video is performed using the video processing tool or mode enabled based on the decision or determination.

[0227] Some embodiments of the disclosed techniques include making a decision or determination to disable a video processing tool or mode. In one example, when a video processing tool or mode is disabled, an encoder does not use the tool or mode in converting blocks of video to a bitstream representation of the video. In another example, when a video processing tool or mode is disabled, a decoder processes the bitstream knowing that the bitstream has not been modified using a video processing tool or mode that was enabled based on the decision or determination.

[0228] The implementation and functional operation of the subject matter described in this patent document can be implemented in various systems, digital electronic circuits, or computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in one or more combinations thereof. The implementation of the subject matter described herein can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible and non-transitory computer-readable medium for controlling the operation of a data processing apparatus by or on a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a machine-readable composition of matter affecting a propagated signal, or one or more combinations thereof. The term "data processing unit" or "data processing apparatus" encompasses all apparatuses, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. An apparatus may include, in addition to hardware, code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these.

[0229] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., a file that stores one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on multiple computers that are located on one computer or at one site, or distributed across multiple sites and interconnected by a communication network.

[0230] The processes and logic flows described in this document may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and apparatus may also be performed by, special purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0231] Processors suitable for executing computer programs include, for example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor receives instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer is also operatively coupled to receive data from, or transfer data to, one or more mass storage devices, such as magnetic disks, magneto-optical disks, or optical disks, for storing data. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices. Examples include semiconductor memory devices, such as EPROMs, EEPROMs, and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, such as CD-ROMs and DVD-ROMs. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0232] Although this patent document contains many details, these should not be construed as limiting the scope of any invention or what may be claimed, but rather as descriptions of features specific to particular embodiments of a particular invention. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination and initially claimed as such, one or more features from a claimed combination may, in some cases, be carved out of the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0233] Similarly, although the figures depict acts in a particular order, this should not be understood as requiring such acts to be performed in a particular order or sequential order, or to perform all of the acts illustrated, to achieve desired results. Furthermore, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0234] Only a few embodiments and examples have been described; other embodiments, extensions and variations may be made based on what is described and explained in this patent document.

Claims

1. 1. A video processing method comprising the steps of: applying a deblocking filter to at least some samples on boundaries of the video units during conversion between video units of a video and a bitstream of the video; A deblocking quantization parameter (QP) value used in the deblocking filter is determined according to a first rule. Steps and performing the transformation based on the deblocking QP value; Including, The first rule specifies that a relationship between the deblocking QP value and a dequantization QP value used in a quantization or dequantization process for the video unit is based on whether an adaptive color transformation mode is applied to the video unit; and In the adaptive color conversion mode, For an encoding operation, a visual signal is transformed from a first color domain to a second color domain, or For a decoding operation, the visual signal is transformed from the second color domain to the first color domain. method.

2. The first rule, when the adaptive color conversion mode is applied to the video unit, Before applying a QP adjustment according to the adaptive color transformation mode, the deblocking QP value is derived based on a QP value; and the dequantization QP value being the QP value to which the QP adjustment is applied; The method of claim 1 , further comprising:

3. The first rule is, when the adaptive color conversion mode is not applied to the video unit, the deblocking QP value is derived based on the dequantization QP value for the video unit; The method according to claim 1 or 2, wherein

4. The first rule is, when the adaptive color conversion mode is not applied to the video unit, the deblocking QP value is equal to the dequantization QP value for the video unit; The method of claim 3 , further comprising:

5. The first rule is, when both the adaptive color transform mode and a transform skip (TS) mode are not applied to the video unit, the deblocking QP value is derived based on the dequantization QP value for the video unit; The method according to any one of claims 1 to 4, further comprising:

6. The first rule is, when neither the adaptive color conversion mode nor the TS mode is applied to the video unit, the deblocking QP value is equal to the dequantization QP value for the video unit; The method of claim 5 , further comprising:

7. the video unit is a chroma coding block, and The first rule is, when the adaptive color transformation mode is applied to the chroma coding block, providing that no differential coding tools are applied to the chroma coding blocks; and In a differential coding mode, the residuals of the samples of the chroma coding block are represented in the bitstream using a difference between a quantized residual and a predictor of the quantized residual.

7. The method according to any one of claims 1 to 6.

8. The method of claim 7, wherein the difference between a quantized residual and a predictor of the quantized residual is represented using a block-based differential pulse coding modulation representation. The method of claim 7.

9. the video unit includes a luma coding block or a chroma coding block; 9. The method according to any one of claims 1 to 8.

10. The method further comprises: applying the deblocking filter to video blocks of a plurality of color components of the video; a deblocking filter strength for the deblocking filter for the video block for each of the plurality of color components is determined according to a second rule; The second rule specifies using a different method to determine a deblocking filter strength for each video block of a plurality of color components. The plurality of color components includes at least a Cb component and a Cr component; and each of the plurality of color components is associated with a deblocking parameter offset for the variables beta and tC at a different video unit level used to determine the deblocking filter strength; The different method is that the deblocking filter strengths for different color components are determined independently by respective syntax elements.

10. The method according to any one of claims 1 to 9.

11. The different video unit levels include a picture parameter set (PPS), a first syntax element associated with the Cb component indicating the deblocking parameter offset for the variable beta in the PPS is pps_cb_beta_offset_div2; and a first syntax element associated with the Cr component indicating the deblocking parameter offset for the variable beta in the PPS is pps_cr_beta_offset_div2; A second syntax element associated with the Cb component indicating the deblocking parameter offset for the variable tC in the PPS is pps_cb_tc_offset_div2; and A second syntax element associated with the Cr component indicating the deblocking parameter offset for the variable tC in the PPS is pps_cr_tc_offset_div2. The method of claim 10.

12. pps_cb_beta_offset_div2 and pps_cb_tc_offset_div2 specify the default deblocking parameter offsets for the variables beta and tC (divided by 2) that are applied to the Cb component for slices that reference the PPS, unless the default deblocking parameter offset is overridden by a deblocking parameter offset present in a slice header of a slice that references the PPS, and pps_cr_beta_offset_div2 and pps_cr_tc_offset_div2 specify the default deblocking parameter offsets for the variables beta and tC (divided by 2) that are applied to the Cr component for slices that reference the PPS, unless the default deblocking parameter offsets are overridden by a deblocking parameter offset present in a slice header of a slice that references the PPS; The method of claim 11.

13. The different video unit levels include a picture header level, A third syntax element associated with the Cb component indicating the deblocking parameter offset for the variable beta in a picture header is pic_cb_beta_offset_div2; and A third syntax element associated with the Cr component indicating the deblocking parameter offset for the variable beta in the picture header is pic_cr_beta_offset_div2; A fourth syntax element associated with the Cb component indicating the deblocking parameter offset for the variable tC in the picture header is pic_cb_tc_offset_div2; and A fourth syntax element associated with the Cr component indicating the deblocking parameter offset for the variable tC in the picture header is pic_cr_tc_offset_div2.

13. The method according to any one of claims 10 to 12.

14. pic_cb_beta_offset_div2 and pic_cb_tc_offset_div2 specify the deblocking parameter offsets for the beta and tC variables (divided by 2) to be applied to the Cb component for the slice associated with the picture header; pic_cr_beta_offset_div2 and pic_cr_tc_offset_div2 specify the deblocking parameter offsets for the beta and tC (divided by 2) applied to the Cr component for the slice associated with the picture header; The method of claim 13.

15. the different video unit levels include a slice header level, A fifth syntax element associated with the Cb component indicating the deblocking parameter offset for the variable beta in a slice header is slice_cb_beta_offset_div2; and A fifth syntax element associated with the Cr component indicating the deblocking parameter offset for the variable beta in the slice header is slice_cr_beta_offset_div2; A sixth syntax element associated with the Cb component indicating the deblocking parameter offset for the variable tC in the slice header is slice_cb_tc_offset_div2; and A sixth syntax element associated with the Cr component indicating the deblocking parameter offset for the variable tC in the slice header is slice_cr_tc_offset_div2.

15. The method according to any one of claims 10 to 14.

16. slice_cb_beta_offset_div2 and slice_cb_tc_offset_div2 specify the deblocking parameter offsets for the beta and tC variables (divided by 2) applied to the Cb component for the current slice, and slice_cr_beta_offset_div2 and slice_cr_tc_offset_div2 specify the deblocking parameter offsets for the variables beta and tC (divided by 2) applied to the Cb component for the current slice. The method of claim 15.

17. the converting includes encoding the video into the bitstream; 17. The method of any one of claims 1 to 16.

18. the converting includes decoding the video from the bitstream.

17. The method of any one of claims 1 to 16.

19. 1. An apparatus for processing video data, comprising: a processor and a non-transitory memory containing instructions; The instructions, when executed by the processor, cause the processor to: applying a deblocking filter to at least some samples on boundaries of the video units during conversion between a video unit of a video and a bitstream of the video; A deblocking quantization parameter (QP) value used in the deblocking filter is determined according to a first rule; performing the transformation based on the deblocking QP value. Let them do so, The first rule specifies that a relationship between the deblocking QP value and a dequantization QP value used in a quantization or dequantization process for the video unit is based on whether an adaptive color transformation mode is applied to the video unit; and In the adaptive color conversion mode, For an encoding operation, a visual signal is transformed from a first color domain to a second color domain, or For a decoding operation, the visual signal is transformed from the second color domain to the first color domain. Device.

20. A non-transitory computer-readable storage medium having instructions stored thereon, The instructions, when executed, cause a processor to: applying a deblocking filter to at least some samples on boundaries of the video units during conversion between a video unit of a video and a bitstream of the video; A deblocking quantization parameter (QP) value used in the deblocking filter is determined according to a first rule; performing the transformation based on the deblocking QP value. Let them do so, The first rule specifies that a relationship between the deblocking QP value and a dequantization QP value used in a quantization or dequantization process for the video unit is based on whether an adaptive color transformation mode is applied to the video unit; and In the adaptive color conversion mode, For an encoding operation, a visual signal is transformed from a first color domain to a second color domain, or For a decoding operation, the visual signal is transformed from the second color domain to the first color domain. A non-transitory computer-readable storage medium.

21. A method for archiving a video bitstream, comprising the steps of: For a video unit of a video, applying a deblocking filter to at least some samples on boundaries of the video unit; A deblocking quantization parameter (QP) value used in the deblocking filter is determined according to a first rule. Steps and generating the bitstream based on the deblocking QP value; storing the bitstream on a non-transitory computer readable medium; Including, The first rule specifies that a relationship between the deblocking QP value and a dequantization QP value used in a quantization or dequantization process for the video unit is based on whether an adaptive color transformation mode is applied to the video unit; and In the adaptive color conversion mode, For an encoding operation, a visual signal is transformed from a first color domain to a second color domain, or For a decoding operation, the visual signal is transformed from the second color domain to the first color domain. method.

Citation Information

Patent Citations

  • qp derivation and offset for adaptive color transformation in video coding

    JP2017536730A

  • JPP7508558B

Cited By

  • Signaling of quantization parameters in video coding

    US12666024B2