Joint Coding of Chroma Residuals and Filtering in Video Processing
Optimized deblocking filter processes and cross-component adaptive loop filters address challenges in video coding, improving compression and parallel processing efficiency by aligning chroma quantization with luma parameters and adapting filter strength, reducing visual artifacts and complexity in video codecs like HEVC and VVC.
Patent Information
- Application Number
- JP2022522384
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-10-14
- Filing Date
- 2020-10-13
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2040-10-13
AI Technical Summary
Current video coding technologies face challenges in achieving better compression ratios and parallel implementations, with complexities in motion vector management and deblocking filter processes, particularly in handling chroma components and joint coding residuals, leading to inaccurate motion information and visual artifacts.
The proposed methods involve optimizing deblocking filter processes by determining chroma quantization parameters based on joint coding modes, using chroma QP offsets at various video unit levels, and adapting filter strength based on luma and chroma quantization parameters, while integrating cross-component adaptive loop filters to enhance video coding efficiency.
This approach improves video coding efficiency by reducing visual artifacts and complexity, enabling better compression and parallel processing, particularly in handling chroma components and joint coding residuals, thus enhancing the performance of video codecs like HEVC and VVC.
Smart Images

Figure 0007704745000034 
Figure 0007704745000035 
Figure 0007704745000036
Abstract
Description
[Technical field]
[0001] This patent document relates to video coding techniques, devices and systems. [Background technology]
[0002] Currently, efforts are ongoing to improve the performance of current video codec technologies in order to provide video encoding and decoding schemes that provide better compression ratios or that allow for less complex or parallel implementations. Industry experts have proposed several new video coding tools in recent years, and tests are currently underway to determine their effectiveness. Summary of the Invention
[0003] Devices, systems, and methods related to digital video coding, and in particular to motion vector management, are described. The methods described may be applied to existing video coding standards (e.g., High Efficiency Video Coding (HEVC) or Versatile Video Coding) and future video coding standards or video codecs.
[0004] In one exemplary aspect, the disclosed techniques may be used to provide a method of video processing that includes determining applicability of a deblocking filter process for at least some samples at edges of a chroma block based on a mode of joint coding of a chroma residual of the chroma block for conversion between a chroma block of a video and a bitstream representation of the video. The method also includes performing the conversion based on the determination.
[0005] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes determining a chroma quantization parameter used in a deblocking filter process applied to at least some samples at an edge of a current block, based on information of a corresponding transform block of the current block, for conversion between the current block of the video and a bitstream representation of the video. The method also includes performing the conversion based on the determination.
[0006] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes performing a conversion between a current block of the video and a bitstream representation of the video. During the conversion, a first chroma quantization parameter used in a deblocking filter process applied to at least some samples along an edge of the current block is based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to a bit depth.
[0007] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes performing a conversion between a video including one or more coding units and a bitstream representation of the video. The bitstream representation follows the format rule that specifies that a chroma quantization parameter is included in the bitstream representation at a coding unit level or a transform unit level according to the format rule.
[0008] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes performing a conversion between a block of the video and a bitstream representation of the video. The bitstream representation follows the format rule that specifies that whether a mode of joint coding of chroma residuals is applicable to the block is indicated at a coding unit level in the bitstream representation.
[0009] In another representative aspect, the disclosed technology may be used to provide a method of video processing. The method includes performing a conversion between a video unit and a coded representation of the video unit, during which a deblocking filter is used at the boundary of the video unit, such that when a chroma quantization parameter (QP) is used to derive the parameters of the deblocking filter, processing by a chroma QP table is performed for individual chroma QP values.
[0010] In another representative aspect, the disclosed technology may be used to provide another method of video processing. The method includes performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used at the boundary of the video unit, such that a chroma QP offset is used in the deblocking filter, and the chroma QP offset is at the picture / slice / tile / brick / sub-picture level.
[0011] In another representative aspect, the disclosed technology may be used to provide another method of video processing. The method includes performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used at the boundary of the video unit, such that a chroma QP offset is used in the deblocking filter, and information related to the same luma coding unit is used in the deblocking filter and to derive the chroma QP offset.
[0012] In another representative aspect, the disclosed technology may be used to provide another method of video processing. The method includes performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used at the boundary of the video unit, such that a chroma QP offset is used in the deblocking filter, and an indication enabling the use of the chroma QP offset is signaled in the bitstream representation.
[0013] In another representative aspect, the disclosed technology may be used to provide other methods of video processing. This method includes the step of performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used at the boundary of the video unit, whereby a chroma QP offset is used in the deblocking filter, and the chroma QP offset used in the deblocking filter is the same whether the JCCR coding method is to be applied at the boundary of the video unit or a method different from the JCCR coding method is to be applied at the boundary of the video unit.
[0014] In another representative aspect, the disclosed technology may be used to provide other methods of video processing. This method includes the step of performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used at the boundary of the video unit, whereby a chroma QP offset is used in the deblocking filter, and the boundary strength (BS) of the deblocking filter is calculated without comparing the number of reference pictures and / or motion vectors (MVs) associated with the video unit at the P-side boundary with the reference pictures of the video unit at the Q-side boundary.
[0015] Further, in a representative aspect, a device within a video system having a processor and a temporary memory having instructions is disclosed. The instructions, when executed by the processor, cause the processor to implement any one or more of the disclosed methods.
[0016] Further, in a representative aspect, a video decoding device having a processor configured to implement any one or more of the disclosed methods is disclosed.
[0017] In another representative aspect, a video encoding device having a processor configured to implement any one or more of the disclosed methods is disclosed.
[0018] Also disclosed is a computer program product stored in a non-transitory computer-readable medium, the computer program product including program code for executing any one or more of the disclosed methods.
[0019] The above and other aspects and features of the disclosed technology are described in more detail in the drawings, the specification, and the claims.
Brief Description of the Drawings
[0020]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9A
Figure 9B
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14A
Figure 14B
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
DETAILED DESCRIPTION OF THE INVENTION
[0021] [1. Video Coding in HEVC / H.265] Video coding standards have mainly evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T created H.261 and H.263, ISO / IEC created MPEG-1 and MPEG-4 Visual, and the two organizations jointly created the H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Coding (AVC), and H.265 / HEVC standards. Since H.262, video coding standards have been based on a hybrid video coding structure that uses time prediction plus transform coding. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, many new techniques have been adopted by JVET and placed in a reference software called the Joint Exploration Model (JEM). In April 2018, between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG), JVET was created to study the VVC standard, which aims for a 50% bitrate reduction compared to HEVC.
[0022] [2.1 Deblocking Scheme in HEVC] The deblocking filter process is executed for each CU in the same order as the deblocking process. First, vertical edges are filtered (horizontal filtering), and then horizontal edges are filtered (vertical filtering). Filtering is applied to the 8×8 block boundaries that are determined to be filtered for both the luma and chroma components. 4×4 block boundaries are not processed to reduce complexity.
[0023] Figure 1 shows the overall processing flow of the deblocking filter process. The boundaries can have three filtering statuses, namely, no filtering, weak filtering, and strong filtering. Each filtering decision is based on the boundary strength Bs, and the thresholds β and tC is based on
[0024] Three types of boundaries, namely, CU boundary, TU boundary, and PU boundary, may be involved in the filtering process. The CU boundary is the outer edge of the CU and is always involved in filtering. This is because the CU boundary is always also a TU boundary or a PU boundary. When the PU shape is 2N×N (N>4) and the RQT depth is equal to 1, the TU boundary in the 8×8 block grid and the PU boundary between each PU within the CU are involved in filtering. One exception is that when the PU boundary is within the TU, that boundary is not filtered.
[0025] [2.2.1 Calculation of boundary strength] Generally speaking, the boundary strength (Bs) reflects how strong filtering is required at the boundary. When Bs is large, strong filtering should be considered.
[0026] Assume that P and Q are defined as blocks involved in filtering. P represents the block located on the left side (in the case of a vertical edge) or the upper side (in the case of a horizontal edge) of the boundary, and Q represents the block located on the right (in the case of a vertical edge) or the lower side (in the case of a horizontal edge) of the boundary. Figure 2 shows how Bs is calculated based on the intra-coding mode, the presence of non-zero transform coefficients and motion information, the reference picture, the number of motion vectors, and the motion vector difference.
[0027] Bs is calculated in 4×4 block units but remapped to an 8×8 grid. The maximum value of two Bs values corresponding to eight pixels consisting of lines within a 4×4 grid is selected as Bs for the boundary within the 8×8 grid.
[0028] To reduce the line buffer memory requirement, for the CTU boundary only, the information within every other block (4×4 grid) on the left or upper side is reused as shown in Figure 3.
[0029] [2.1.2 Determination of β and t C Filter on / off decision, strong and weak filter selection, and thresholds β and t involved in the weak filtering process C are derived based on the luma quantization parameters QP of the P and Q blocks P and QP Q respectively. Q used to derive β and t C is as follows: Q = ((QP P + QP Q + 1) >> 1)
[0030] The variable β is derived as shown in Table 1 based on Q. When Bs is greater than 1, the variable t C is specified as in Table 1 using Clip3(0, 55, Q + 2) as the input. Otherwise (when Bs is 1 or less), the variable t C is specified as in Table 1 using Q as the input.
Table 1
[0031] [2.1.3. Filter on / off decision for 4 lines] The filter on / off decision is made for 4 lines as a unit. Figure 4 shows the pixels involved in the filter on / off decision. The 6 pixels in the two red boxes of the first 4 lines are used to determine the filter on / off for those 4 lines. The 6 pixels in the two red boxes of the second 4 lines are used to determine the filter on / off for the second 4 lines.
[0032] When dp0 + dq0 + dp3 + dq3 < β, filtering for the first 4 lines is turned on and the strong / weak filter selection process is applied. Each variable is 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 |
[0033] If the condition is not satisfied, filtering is not performed on the first four lines. Furthermore, if the condition is satisfied, 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, dEq1 is set equal to 1.
[0034] For the second four lines, the determination is made in the same manner as above.
[0035] [2.1.4. Strong / Weak Filter Selection for 4 Lines] After the first four lines are determined to be filtered on in the filter on / off decision, if two of the following conditions are satisfied, a strong filter is used for filtering the first four lines. Otherwise, a weak filter is used for filtering. The pixels involved are the same as those 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
[0036] Similarly, if the following two conditions are satisfied, a strong filter is used for filtering the second four lines. Otherwise, a weak filter is used for filtering. 1) 2×(dp4 + dq4) < (β >> 2), |p30 - 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
[0037] [2.1.4.1. Strong Filtering] For strong filtering, the filtered pixel values are obtained by the following formula. Note that for each of the P block and the Q block, three pixels are changed using four pixels as input. 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
[0038] [2.1.4.2. Weak Filtering] Assume that Δ is defined as follows: Δ=(9×(q0 - p0) - 3×(q1 - p1) + 8) >> 4 When abs(Δ) is less than t C ×10, Δ = Clip3(-t C , t C , Δ) p0’ = Clip1 Y (p0 + Δ) q0’ = Clip1 Y (q0 - Δ) If dEp1 is equal to 1, Δp = Clip3(-(t C >> 1), t C >> 1, (((p2 + p0 + 1) >> 1) - p1 + Δ) >> 1) p1’ = Clip1 Y (p1 + Δp) If dEp1 is equal to 1, Δq = Clip3(-(t C >> 1), t C >> 1, (((q2 + q0 + 1) >> 1) - q1 - Δ) >> 1) q1’ = Clip1 Y (q1 + Δq)
[0039] Note that for each of the P block and the Q block, up to two pixels are modified using three pixels as input.
[0040] [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 are no other filtering decisions. Also, only one filter is applied for chroma. The filter selection process for chroma is not used. The filtered sample values p0’ and q0’ are derived as follows: Δ = Clip3(-t C , t C , ((((q0 - p0) << 2) + p1 - q1 + 4) >> 3)) p0’ = Clip1 C (p0 + Δ) q0’ = Clip1 C (q0 - Δ)
[0041] [2.2 Deblocking Scheme in VVC] In VTM6, the deblocking filter process is mostly the same as those in HEVC. However, the following changes have been made. A) Filter strength of the deblocking filter depending on the averaged luma level of the reconstructed samples B) Extension and adaptation of the deblocking tC table for 10-bit video C) Blocking in 4×4 grid for luma D) Stronger deblocking filter for luma E) Stronger deblocking filter for chroma F) Deblocking filter for sub-block boundaries G) Deblocking decision adapted to smaller motion differences
[0042] FIG. 5 shows a flowchart of the deblocking filter process in VVC for a coding unit.
[0043] [2.2.1. Filter strength dependent on the reconstructed average luma] In HEVC, the filter strength of the deblocking filter is controlled by variables β and t L derived from the averaged quantization parameter qP C In VTM6, the deblocking filter controls the strength of the deblocking filter by adding an offset to qP L according to the reconstructed sample normal level when the SPS flag of this method is true. 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) At this time, sample values p i,k and q i,k (i = 0 ··· 3, k = 0 and 3) can be derived. Then, LL is used to determine the offset qpOffset based on the threshold notified in the SPS. Thereafter, qP L derived as follows is used to derive β and tC: qP L = ((Qp Q + Qp P + 1) >> 1) + qpOffset (3-2) At this time, Qp Q and Qp P represent the quantization parameters of the coding unit including samples q 0,0 and p 0,0 respectively. In the current VVC, this method is only applied to the luma deblocking process.
[0044] [2.2.2. 4×4 Deblocking Grid for Luma] HEVC uses an 8×8 deblocking grid for both luma and chroma. In VTM6, deblocking with a 4×4 grid for luma boundaries was introduced to handle blocking artifacts from rectangular transform shapes. Parallel-friendly luma deblocking with a 4×4 grid is achieved by limiting the number of samples to be deblocked to 1 sample per side of a vertical luma boundary with a width of 4 or less on each side, or 1 sample per piece of a horizontal luma boundary with a height of 4 or less on each piece.
[0045] [2.2.3. Derivation of Boundary Strength for Luma] The detailed derivation of the boundary strength can be found in Table 2. The conditions in Table 2 are checked in order.
Table 2
[0046] [2.2.4. Stronger Deblocking Filter for Luma] The proposal is to use a bilinear filter when samples on either side of the boundary belong to a large block. Samples belonging to a large block are defined as having a width >= 32 for vertical edges and a height >= 32 for horizontal edges.
[0047] The bilinear filter is listed below.
[0048] Block boundary samples pi for i = 0 to Sp - 1 and block boundary samples qj for j = 0 to Sq - 1 (pi and qj follow the definitions in the above HEVC deblocking) are, in that case, replaced by linear interpolation as follows: - p i ’=(f i ×Middle s,t +(64 - f i )×P s +32)>>6), p i ±t C PD i is clipped to -q j ’=(g j × Middle s,t +(64 - g j )×Q s + 32) >> 6), q j ±t C PD j is clipped to At this time, t C PD i and t C PD j terms are position - dependent clipping as described in Section 2.2.5, and g j , f i , Middle s,t , P s and Q s are given below:
Table 3
[0049] [2.2.5. Deblocking Control for Luma] The deblocking decision process is described in this subsection.
[0050] A wider and stronger luma filter is a filter that is used only when all of Condition 1, Condition 2, and Condition 3 are true.
[0051] Condition 1 is the “large block condition”. This condition detects whether the samples on the P - side and Q - side belong to large blocks. This is represented by the variables bSidePisLargeBlk and bSideQisLargeBlk respectively. bSidePisLargeBlk and bSideQisLargeBlk are defined as follows. bSidePisLargeBlk = ((the edge type is vertical and p0 belongs to a CU with a width >= 32) || (the edge type is horizontal and p0 belongs to a CU with a height >= 32))? TRUE : FALSE bSideQisLargeBlk = ((the edge type is vertical and q0 belongs to a CU with a width >= 32) || (the edge type is horizontal and q0 belongs to a CU with a height >= 32))? TRUE : FALSE
[0052] Based on bSidePisLargeBlk and bSideQisLargeBlk, Condition 1 is defined as follows. Condition 1 = (bSidePisLargeBlk || bSideQisLargeBlk)? TRUE : FALSE
[0053] Next, when Condition 1 is true, Condition 2 will be further checked. First, the following variables are derived: - dp0, dp3, dq0, dq3 are first derived as seen in HEVC - if (the p side 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 (the q side 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 seen in HEVC.
[0054] Next, Condition 2 is defined as follows. Condition 2 = (d < β)? TRUE : FALSE At this time, as shown in Section 2.1.4, d = dp0 + dq0 + dp3 + dq3.
[0055] When Conditions 1 and 2 are valid, it is further checked whether any of the blocks use sub - blocks:
Equation
[0056] Finally, when both Conditions 1 and 2 are valid, the proposed de - blocking method will check Condition 3 (Large Block Strong Filter Condition) defined as follows. In the strong filter condition (StrongFolterCondition) of Condition 3, the following variables are derived: - dpq is derived as seen in HEVC - sp3 = Abs(p3 - p0) derived as seen in HEVC - if (the p - side is 32 or more) if (Sp == 5) sp3 = (sp3 + Abs(p5 - p3) + 1) >> 1 else sp3 = (sp3 + Abs(p77 - p3) + 1) >> 1 - sq33 = Abs(q0 - q3) derived as seen in HEVC - if (the q - side is 32 or more) if (Sp == 5) sq3 = (sq3 + Abs(q5 - q3) + 1) >> 1 else sq3 = (sq3 + Abs(q7 - q3) + 1) >> 1
[0057] As seen in HEVC, StrongFilterCondition = (dpq is smaller than (β >> 2), sp3 + sq3 is smaller than (3 × β >> 5), and Abs(p0 - q0) is smaller than (5 × t C + 1) >> 1)? TRUE : FALSE.
[0058] Figure 6 represents a flowchart of the luma deblocking filter process.
[0059] [Strong Deblocking Filter for Chroma] The following 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
[0060] The proposed chroma filter performs deblocking on a 4 × 4 chroma sample grid.
[0061] [2.2.7. Deblocking Control for Chroma] The above chroma filter performs deblocking on an 8 × 8 chroma sample grid. The chroma strong filter is used on both sides of the block boundary. Here, the chroma filter is selected when both sides of the chroma edge are 8 (in units of chroma samples) or more and the following decisions in three conditions are satisfied. The first condition relates to the determination of the large block and boundary strength. The second and third conditions are basically the same as in the case of the HEVC luma determination, which are the on / off determination and the strong filter determination, respectively.
[0062] Figure 7 represents a flowchart of the chroma deblocking filter process.
[0063] [2.2.8. Position-Dependent Clipping] The proposal also introduces a position-dependent clipping tcPD that is applied to the output samples of the rum filtering process that changes 7, 5, and 3 samples at the boundaries and includes a strong and long filter. Assuming a quantization error distribution, it is proposed to increase the clipping value of the samples. This is expected to have a higher deviation of the reconstructed sample values from the true sample values since it is expected to have higher quantization noise.
[0064] For each P or Q boundary filtered by the proposed asymmetric filter, depending on the result of the decision-making process described in 2.2, the position-dependent threshold table is selected from the tables of Tc7 and Tc3 that are supplied 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;
[0065] When a P or Q boundary is filtered using a short symmetric filter, a lower-order position-dependent threshold is applied: Tc3 = {3, 2, 1};
[0066] Following the definition of the thresholds, the sample values of the filtered p’i and q’j 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 ); At this time, p’ i and q’ j are filtered sample values, and p” i and q” j are output sample values after clipping, where tcP i and tcQ j are clipping thresholds derived from the tc parameters of VVC and tcPD and tcQD. The Clip3 term is a clipping function defined in VVC.
[0067] [2.2.9. Sub-block Deblocking Adjustment] To enable parallel-friendly deblocking using both long filters and sub-block deblocking, the long filter is limited to changing at most five samples on the side using sub-block deblocking (AFFINE or ATMVP), as indicated by the luma control for the long filter. Further, the sub-block deblocking is adjusted such that the sub-block boundaries on an 8×8 grid close to the CU or implicit TU boundary change at most two samples on each side.
[0068] The following applies to sub-block boundaries not aligned with the CU boundary:
Equation
[0069] When an edge equal to 0 corresponds to the CU boundary, an edge equal to 2 or orthogonalLength - 2 corresponds to a sub-block boundary of 8 samples from the CU boundary etc. When the implicit splitting of the TU is used, the implicit TU is true. Figure 8 shows a flowchart of the decision process for the TU boundary and sub-PU boundary.
[0070] Filtering of the horizontal boundary limits Sp = 3 for luma and Sp = 1 and Sq = 1 for chroma when the horizontal boundary is aligned with the CTU boundary.
[0071] [2.2.10. Deblocking Decision Adapted to Smaller Motion Differences] HEVC enables deblocking at the prediction unit boundary when the difference of at least one motion vector component between blocks on each side of the boundary is greater than or equal to a threshold of 1 sample. In VTM6, a threshold of half a luma sample is introduced to also enable removal of blocking artifacts arising from boundaries between inter-prediction units with small motion vector differences.
[0072] [2.3. Inter and Intra Combined 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 × 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 the Combined Inter / Intra Prediction (CIIP) mode is currently applied to the CU. As its name indicates, CIIP prediction combines an inter-prediction signal with an intra-prediction signal. The inter-prediction signal P inter in CIIP mode is derived using the same inter-prediction process applied to the normal merge mode, and the intra-prediction signal P intra is derived according to the normal intra-prediction process in planar mode. Then, the intra-prediction signal and the inter-prediction signal are combined using weighted averaging. At this time, the weight values are calculated according to the coding modes of the upper adjacent block and the left adjacent block as follows: - Set isIntraTop to 1 if the upper adjacent block is available and is intra-coded, and set isIntraTop to 0 otherwise. - Set isIntraLeft to 1 if the left adjacent block is available and is intra-coded, and set isIntraLeft to 0 otherwise. - When (isIntraLeft + isIntraTop) is equal to 2, wt is set to 3. - Otherwise, when (isIntraLeft + isIntraTop) is equal to 1, wt is set to 2. - In other cases, set wt to 1.
[0073] The CIIP prediction is formed as follows:
Number
[0074] [2.4. Chroma QP Table Design in VTM6.0] In some embodiments, a chroma QP table is used. In some embodiments, the signaling mechanism is used for the chroma QP table, thereby ensuring that it is flexible enough to provide the encoder with an opportunity to optimize the table for SDR and HDR content. It supports signaling separate tables for the Cb and Cr components. The proposed mechanism signals the chroma QP table as a piece-wise linear function.
[0075] [2.5. Transform Skip (TS)] As seen in HEVC, the residual of a block can be coded by the transform skip mode. To avoid the redundancy of syntax coding, the transform skip flag is not signaled if the CU-level MTS_CU_flag is not equal to zero. The block size information of the transform skip is the same as that of MTS in JEM4. This indicates that the transform skip is applicable to the CU when the width and height of the block are 32 or less. Note that the implicit MTS transform is set to DCT2 when LFNST or MIP is active for the current CU. Also, the implicit MTS can still be enabled when MTS is enabled for an inter-coded block.
[0076] Furthermore, for the conversion skip block, the maximum allowable quantization parameter (QP) is defined as 6×(internalBitDepth - inputBitDepth)+4.
[0077] [2.6. Joint Coding of Chroma Residuals (JCCR)] In some embodiments, the chroma residuals are jointly coded. The utilization (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. The flag tu_joint_cbcr_residual_flag exists when either or both of the chroma CBFs for the TU are equal to 1. In the PPS and slice headers, the chroma QP offset values are signaled for the joint chroma residual coding mode to distinguish them from the normal chroma QP offsets signaled for the normal chroma residual coding mode. These chroma QP offset values are used to derive the chroma QP values for the blocks coded using the joint chroma residual coding mode. When the corresponding joint chroma coding mode (mode 2 in Table 3) is active for the TU, this chroma QP offset is added to the applied luma-derived chroma QP during quantization and decoding of that TU. For the other modes (modes 1 and 3 in Table 3), the chroma QP is derived in the same way as for conventional Cb or Cr blocks. The reconstruction process of the chroma residuals (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 blocks for Cb (resCb) and Cr (resCr) are derived considering information such as tu_cbf_cb, tu_cbf_cr, and Csign (the sign value specified in the slice header).
[0078] On the encoder side, the joint chroma components are derived as described below. Depending on the mode (listed in the above table), resJointC{1,2} is generated by the encoder as follows: ● When the mode is equal to 2 (reconstruction Cb = Cr, single residual by Cr = CSign × C), the joint residual is resJointC[x][y]=(resCb[x][y]+CSign×resCr[x][y]) / 2 determined according to ● Otherwise, when the mode is equal to 1 (reconstruction Cb = Cr, single residual by Cr = (CSign × C) / 2), the joint residual is resJointC[x][y]=(4×resCb[x][y]+2×CSign×resCr[x][y]) / 5 determined according to ● In other cases (mode equal to 3, i.e., reconstruction Cb = Cr, single residual by Cb = (CSign × C) / 2), the joint residual is resJointC[x][y]=(4×resCr[x][y]+2×CSign×resCb[x][y]) / 5 determined according to [Table 4]
[0079] Different QPs are used in the above three modes. For mode 2, the QP offset notified in the PPS for the JCCR-coded blocks is applied, while for the remaining two modes, it is not applied. Instead, the QP offset notified in the PPS for the non-JCCR-coded blocks is applied.
[0080] The corresponding specifications are as follows: [Table 5] TIFF0007704745000009.tif51156
[0081] [2.7. Cross-Component Adaptive Loop Filter (CC-ALF)] Figure 14A shows the placement of the CC-ALF (Cross-Component Adaptive Loop Filter) with respect to other loop filters. The CC-ALF operates by applying a linear diamond-shaped filter (Figure 14B) to the luma channel for each chroma component. This is expressed as follows. [Equation] At this time, (x, y) is the position of the chroma component i to be refined, (x C , y C ) is the luma position based on (x, y), S i is the filter support in luma for chroma component i, c i (x0, y0) represents the filter coefficient.
[0082] The main features of the CC-ALF are as follows: - The luma position (x C , y C ) at the center of the support region is calculated based on the spatial scaling coefficient between the luma plane and the chroma plane. - All filter coefficients are transmitted in the APS and have an 8-bit dynamic range. - The APS can be referenced in the slice header. - The CC-ALF coefficients used for each chroma component of a slice are also stored in a buffer corresponding to the temporal sublayer. The reuse of these sets of temporal sublayer filter coefficients is facilitated using a slice-level flag. - The application of the CC-ALF filter is controlled in variable blocks and is signaled by the context-coded flags received for each block of samples. The block size is received at slice level for each chroma component, together with the CC-ALF enable flag. - For horizontal virtual boundaries, boundary padding uses repetition. For the remaining boundaries, the same type of padding as normal ALF is used.
[0083] [3. Drawbacks of Existing Implementations] During the refinement of motion vectors, DMVR and BIO do not utilize the original signal. This may result in coding blocks with inaccurate motion information. Also, DMVR and BIO sometimes use fractional motion vectors after motion refinement, while screen video usually has integer motion vectors. This makes the current motion information more inaccurate and degrades the coding performance.
[0084] 1. The interaction between the chroma QP table and chroma deblocking may be problematic. For example, the chroma QP table should be applied to individual QPs and not to the weighted sum of QPs. 2. The logic of the luma deblocking filtering process makes the hardware design complex. 3. The logic for deriving boundary strength is too complex for both software and hardware designs. 4. In the BS decision process, JCCR is treated separately from the blocks coded without applying JCCT. However, JCCR is just a special way of coding the residual. Thus, such a design may introduce additional complexity without clear advantages. 5. In chroma edge design, Qp Q and Qp P are the Qp of the coding unit containing the coding blocks including the samples q 0,0 and p 0,0 respectively. YIt is set equal to the value. However, in the quantization / inverse quantization process, the QP of the chroma sample is derived from the QP of the luma block covering the corresponding luma sample at the center position of the current chroma CU. When the dual tree is enabled, different positions of the luma block may result in different QPs. Therefore, in the chroma deblocking process, an inappropriate QP may be used for filter determination. Such misalignment may cause visual artifacts. Examples are shown in FIGS. 9A - B. FIG. 9A shows the corresponding CTB partitioning of the luma block, and FIG. 9B shows the chroma CTB partitioning under the dual tree. CU C When determining the QP for the chroma block represented by CU C 1, the center position of CU C 1 is first derived. Then, the corresponding luma sample at the center position of CU Y 1 is identified, and the luma QP related to the luma CU covering the corresponding luma sample, that is, CU C 3, is then used to derive the QP of CU Y 1. However, when performing filter determination for the three samples (solid circles) shown, the QP of the CU covering the corresponding three samples is selected. Therefore, for the first, second, and third chroma samples (see FIG. 9B), the QPs of CU Y 2, CU Y 3, and CU 4 are used respectively. That is, chroma samples within the same CU may use different QPs for filter determination, which may result in inappropriate decisions.6. Different picture level QP offsets (i.e., pps_joint_cbcr_qp_offset) are applied to JCCR-coded blocks, which are different from the picture level offsets of Cb / Cr applied to non-JCCR-coded blocks (e.g., pps_cb_qp_offset and pps_cr_qp_offset). However, in the chroma deblocking filter determination process, only the offsets of non-JCCR-coded blocks are utilized. If the consideration of the coded mode is missing, incorrect filter determination may occur. 7. For inverse quantization process, different QPs are used for TS-coded blocks and non-TS-coded blocks. This may also be considered in the deblocking process. 8. Different QPs are used in the scaling process (quantization / inverse quantization) for JCCR-coded blocks with different modes. Such a design lacks consistency. 9. Chroma deblocking of Cb / Cr can be integrated for parallel design.
[0085] [4. Example Technologies and Embodiments] The detailed embodiments described below should be regarded as examples for explaining general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any manner.
[0086] The methods described below may be applicable to other decoder motion information derivations in addition to the DMVR and BIO described later.
[0087] In the following example, MVM[i].x and MVM[i].y represent the horizontal and vertical components of the motion vector within the reference picture list i (where i is 0 or 1) of the block on the M (where M is P or Q) side. Abs represents the operation of obtaining the absolute value of the input, and "&&" and "||" represent the logical operations AND and OR. Referring to FIG. 10, P can represent the samples on the P side, and Q can represent the samples on the Q side. The blocks on the P side and the Q side can represent the blocks marked by the dashed lines.
[0088] Regarding the chroma QP in deblocking 1. When the chroma QP table is used to derive the parameters for controlling chroma deblocking (e.g., in the process of determining the chroma block edge), the chroma QP offset may be applied after applying the chroma QP table. a. In one example, the chroma QP offset may be added to the value calculated by the chroma QP table. b. Alternatively, the chroma QP offset may not be regarded as an input to the chroma QP table. c. In one example, the chroma QP offset may be the chroma quantization parameter offset at the picture level or other video unit levels (slice / tile / brick / sub-picture) (e.g., in this specification, pps_cb_qp_offset and pps_cr_qp_offset). 2. QP clipping may not be applied to the input of the chroma QP offset. 3. It is proposed that the deblocking process of the chroma component may be based on the mapped chroma QP (by the chroma QP table) on each side. a. In one example, it is proposed that the chroma deblocking parameters (e.g., β and t C ) may be based on the QP derived from the luma QP on each side. b. In one example, the chroma deblocking parameters may depend on the chroma QP table values using QpP as the table index. At this time, QpP is the luma QP value on the P side. c. In one example, the chroma deblocking parameter may depend on the chroma QP table value using QpQ as a table index. At this time, QpQ is the luma QP value on the Q side. 4. It is proposed that the deblocking process of the chroma component can be obtained based on the QP applied to the quantization / inverse quantization of the chroma block. a. In one example, the QP of the deblocking process is equal to the QP of the inverse quantization. 5. It is proposed to consider the quantization parameter offset at the picture / slice / tile / brick / sub-picture level used for different coding methods in the deblocking filter determination process. a. In one example, the selection of the quantization parameter offset at the picture / slice / tile / brick / sub-picture level for filter determination (e.g., chroma edge determination in the deblocking filter process) may depend on the coding method for each side. b. In one example, the filtering process (e.g., chroma edge determination process) that needs to use the quantization parameter of the chroma block may depend on whether the block uses JCCR. i. Alternatively, furthermore, the picture / slice level QP offset (e.g., pps_joint_cbcr_qp_offset) applied to the JCCR-coded block may be further considered in the deblocking filter process. ii. In one example, T C And cQpPicOffset used to determine the setting of β may be set to pps_joint_cbcr_qp_offset instead of pps_cb_qp_offset or pps_cr_qp_offset under specific conditions: 1. In one example, when any block on the P or Q side uses JCCR. 2. In one example, when both blocks on the P or Q side use JCCR. iii. Alternatively, further, the filtering process may depend on the mode of the JCCR (e.g., whether the mode is equal to 2). 6. A chroma filtering process (e.g., a chroma edge determination process) that needs to access the decoded information of the luma block may utilize information related to the same luma coding block used to derive the chroma QP in the quantization / inverse quantization process. a. In one example, a chroma filtering process (e.g., a chroma edge determination process) that needs to use the quantization parameter of the luma block may utilize a luma coding unit that covers the corresponding luma sample at the center position of the current chroma CU. b. Examples are shown in FIGS. 9A - B, and the decoded information of CT Y 3 may be used for the filtering decision of the three chroma samples (the first, the second, and the third) in FIG. 9B. 7. The chroma filtering process (e.g., a chroma edge determination process) may depend on the quantization parameter applied to the scaling process of the chroma block (e.g., quantization / inverse quantization). a. In one example, the QP used to derive β and T C may depend on the QP applied to the scaling process of the chroma block. b. Alternatively, further, the QP used in the scaling process of the chroma block may take into account the QP offset at the chroma CU level. 8. Whether to call the above bullet may depend on whether the sample to be filtered is within a block on the P or Q side. a. For example, whether to use the information of the luma coding unit that covers the corresponding luma sample of the current chroma sample, or whether to use the information of the luma coding block that covers the corresponding luma sample at the center position of the chroma coding block that covers the current chroma sample may depend on the block position. i. In one example, when 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 of the chroma coding block covering the current chroma sample may be used. ii. In one example, when the current chroma sample is within a block on the P side, the QP information of the luma coding block covering the corresponding luma sample of the chroma sample may be used. 9. The chroma QP used for deblocking may depend on the information of the corresponding transform block. a. In one example, the chroma QP for deblocking on the P side may depend on the mode of the transform block on the P side. i. In one example, the chroma QP for deblocking on the P side may depend on whether the transform block on the P side is coded by applying JCCR. ii. In one example, the chroma QP for deblocking on the P side may depend on whether the transform block on the P side is coded in the joint_cb_cr mode and whether the mode of JCCR is equal to 2. b. In one example, the chroma QP for deblocking on the Q side may depend on the transform block on the Q side. i. In one example, the chroma QP for deblocking on the Q side may depend on whether the transform block on the Q side is coded by applying JCCR. ii. In one example, the chroma QP for deblocking on the Q side may depend on whether the transform block on the Q side is coded by applying JCCR and whether the mode of JCCR is equal to 2. 10. The signaling of the chroma QP may be at the coding unit. a. In one example, when the coding unit size is larger than the maximum transform block size, i.e., larger than maxTB, the chroma QP may be signaled at the CU level. Alternatively, it may also be signaled at the TU level. b. In one example, when the coding unit size is larger than the size of the 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 a block in joint_cb_cr mode may be indicated at the coding unit level. a. In one example, whether a transform block is a block in joint_cb_cr mode may inherit the information of the coding unit containing the transform block. 12. The chroma QP used for deblocking may depend on subtracting the QP offset by bit depth from the chroma QP used in the scaling process. a. In one example, the chroma QP used for deblocking on the P side is set to the JCCR chroma QP used in the scaling process, that is, Qp' minus QpBdOffsetC when TuCResMode[xTb][yTb] is equal to 2. At this time, (xTb, yTb) represents the first sample on the P side, that is, p CbCr, including the transform blocking. 0,0 b. In one example, the chroma QP used for deblocking on the P side is set to the Cb chroma QP used in the scaling process, that is, Qp' minus QpBdOffsetC when TuCResMode[xTb][yTb] is equal to 2. At this time, (xTb, yTb) represents the first sample on the P side, that is, p Cb, including the transform blocking. 0,0 c. In one example, the chroma QP used for deblocking on the P side is set to the Cr chroma QP used in the scaling process, that is, Qp' minus QpBdOffsetC when TuCResMode[xTb][yTb] is equal to 2. At this time, (xTb, yTb) represents the first sample on the P side, that is, p Cr, including the transform blocking. 0,0 d. In one example, the chroma QP used for deblocking at the Q side is set to the JCCR chroma QP used in the scaling process, i.e., Qp' minus QpBdOffsetC when TuCResMode[xTb][yTb] is equal to 2. At this time, (xTb, yTb) represents the conversion blocking including the last sample at the Q side, i.e., q CbCr, from which QpBdOffsetC is subtracted. At this time, (xTb, yTb) represents the conversion blocking including the last sample at the Q side, i.e., q 0,0 including the conversion blocking including. e. In one example, the chroma QP used for deblocking at the Q side is set to the Cb chroma QP used in the scaling process, i.e., Qp' minus QpBdOffsetC when TuCResMode[xTb][yTb] is equal to 2. At this time, (xTb, yTb) represents the conversion blocking including the last sample at the Q side, i.e., q Cb, from which QpBdOffsetC is subtracted. At this time, (xTb, yTb) represents the conversion blocking including the last sample at the Q side, i.e., q 0,0 including the conversion blocking including. 13. In one example, the chroma QP used for deblocking at the Q side is set to the Cr chroma QP used in the scaling process, i.e., Qp' minus QpBdOffsetC when TuCResMode[xTb][yTb] is equal to 2. At this time, (xTb, yTb) represents the conversion blocking including the last sample at the Q side, i.e., q Cr, from which QpBdOffsetC is subtracted. At this time, (xTb, yTb) represents the conversion blocking including the last sample at the Q side, i.e., q 0,0 including the conversion blocking including.
[0089] Regarding QP setting 14. It is proposed to signal an instruction (e.g., slice_cu_chroma_qp_offset_enabled_flag) to enable the block-level chroma QP offset at the slice / tile / brick / sub-picture level. a. Alternatively, such signaling of the instruction may be conditionally signaled. i. In one example, it may be signaled under the condition of the JCCR enable flag. ii. In one example, it may be signaled under the condition of the block-level chroma QP offset enable flag at the picture level. iii. Alternatively, such an instruction may instead be derived. b. In one example, slice_cu_chroma_qp_offset_enabled may be signaled only when the PPS flag for the chroma QP offset (e.g., pps_cu_chroma_qp_offset_enabled_flag) is true. c. In one example, slice_cu_chroma_qp_offset_enabled_flag may be inferred as false only when the PPS flag for the chroma QP offset (e.g., pps_cu_chroma_qp_offset_enabled_flag) is false. d. In one example, whether to use a chroma QP offset for a block may be based on the chroma QP offset flag at the PPS level and / or slice level. 15. The same QP derivation method is used in the scaling process (quantization / inverse quantization) for blocks coded with JCCR in different modes. a. In one example, for JCCR by modes 1 and 3, the QP depends on the QP offsets signaled at the picture / slice level (e.g., pps_cbcr_qp_offset, slice_cbcr_qp_offset).
[0090] Filtering procedure 16. Deblocking for all color components except the first color component may follow the deblocking process of the first color component. a. In one example, when the color format is 4:4:4, the deblocking processes for the second and third components may follow the deblocking process of the first component. b. In one example, when the color format is 4:4:4 in the RGB color space, the deblocking processes for the second and third components may follow the deblocking process of the first component. c. In one example, when the color format is 4:2:2, the deblocking processes for the second and third components may follow the vertical deblocking process of the first component. d. In the above example, the deblocking process may refer to a deblocking decision process and / or a deblocking filtering process. 17. The method for calculating the slope used in the deblocking filter process may depend on the coded mode information and / or quantization parameter. a. In one example, the slope calculation may only consider the slope of one side, in which case the samples on that side are not reversibly coded. b. In one example, when both sides are reversibly coded or approximately reversibly coded (e.g., the quantization parameter is equal to 4), the slope may be directly set to 0. i. Alternatively, when both sides are reversibly coded or approximately reversibly coded (e.g., the quantization parameter is equal to 4), the boundary strength (e.g., BS) may be set to 0. c. In one example, when the samples on the P side are reversibly coded and the samples on the Q side are not reversibly coded, the slope used in the deblocking on / off decision and / or the strong filter on / off decision may only include the slope of the samples on the Q side, and vice versa. i. Alternatively, furthermore, the slope of one side may be scaled by N. 1. N is an integer (e.g., 2) and may depend on the following: a. Video content (e.g., screen content or natural content) b. DPS / SPS / VPS / PPS / APS / picture header / slice header / tile group header / largest coding unit (LCU) / coding unit (CU) / LCU row / group of LCUs / TU / PU block / message notified in the video coding unit c. The position of the CU / PU / TU / block / video coding unit d. The coding mode of the block including the samples along the edge e. The transform matrix applied to the block including the samples along the edge f. Block dimensions / block shape of the current block and / or its adjacent blocks g. Indication of color format (e.g., 4:2:0, 4:4:4, RGB, or YUV) h. Coding tree structure (e.g., dual tree or single tree) i. Slice / tile group type and / or picture type j. Color component (e.g., may only apply to Cb or Cr) k. Temporal layer ID l. Profile / level / tier of the standard specification m. Alternatively, N may be notified to the decoder.
[0091] Regarding the operation of boundary strength 18. In the boundary strength determination process, it is proposed to treat JCCR-coded blocks as non-JCCR-coded blocks. a. In one example, the determination of the boundary strength (BS) may be independent of the confirmation of the use of JCCR for 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 coded with JCCR. 19. It is proposed to derive the boundary strength (BS) without comparing the number of reference pictures and / or MVs related to the blocks on the P side with the reference pictures of the blocks on the Q side. a. In one example, the deblocking filter may be disabled even when two blocks have different reference pictures. b. In one example, the deblocking filter may be disabled even when two blocks have different numbers of MVs (e.g., one is uni-predicted and the other is bi-predicted). c. In one example, the value of BS may be set to 1 when the motion vector difference of one or all reference pictures between the blocks on the P side and the Q side is greater than or equal to the threshold Th. i. Alternatively, further, the value of BS may be set to 0 when the motion vector difference of one or all reference pictures between blocks at the P side and the Q side is less than or equal to a threshold Th. d. In one example, that the difference between the motion vectors of two blocks is greater than the threshold Th may be defined as (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, that the difference between the motion vectors of two blocks is greater than the threshold Th may be defined as (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, that the difference between the motion vectors of two blocks is greater than the threshold Th may be defined as (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, that the difference between the motion vectors of two blocks is greater than the threshold Th may be defined as (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 having no motion vector within a given list may 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 the following: v. Video content (e.g., screen content or natural content) vi. DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Largest Coding Unit (LCU) / Coding Unit (CU) / LCU Row / Group of LCUs / TU / PU Block / Messages Signaled by Video Coding Unit vii. Position of CU / PU / TU / Block / Video Coding Unit viii. Coding Mode of Block Containing Samples Along Edge ix. Transformation Matrix Applied to Block Containing Samples Along Edge x. Block Size / Block Shape of Current Block and / or Its Adjacent Blocks xi. Indication of Color Format (e.g., 4:2:0, 4:4:4, RGB or YUV) xii. Coding Tree Structure (e.g., Dual Tree or Single Tree) xiii. Slice / Tile Group Type and / or Picture Type xiv. Color Component (e.g., may only be applied to Cb or Cr) xv. Temporal Layer ID xvi. Profile / Level / Tier of Standard xvii. Alternatively, Th may be signaled to the decoder. h. The above examples may apply under specific 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 with respect to the luma component. xx. In one example, the condition is that blkP and blkQ are not coded in CPPI mode. xxi. In one example, the condition is that blkP and blkQ are coded in the same prediction mode (e.g., IBC or inter).
[0092] Regarding the luma deblocking filtering process 20. Deblocking may use different QPs for TS-coded blocks and non-TS-coded blocks. a. In one example, the QP for TS may be used for TS-coded blocks, while the QP for non-TS may be used for non-TS-coded blocks. 21. The luma filtering process (e.g., the luma edge determination process) may depend on the quantization parameter applied to the luma block scaling process. a. In one example, β and T C The QP used to derive may depend on the clipping range of transform skip, as indicated by, for example, QpOrimeTsMin. 22. It is proposed that the same slope calculation be used for large block boundaries and smaller block boundaries. a. In one example, the deblocking filter on / off determination described in Section 2.1.4 may also be applied to large block boundaries. i. In one example, the threshold β in the determination may be changed for large block boundaries. 1. In one example, β may depend on the quantization parameter. 2. In one example, β used for the deblocking filter on / off determination for large block boundaries is smaller than that for smaller block boundaries. a. Alternatively, in one example, β used for the deblocking filter on / off determination for large block boundaries is larger than that for smaller block boundaries. b. Alternatively, in one example, β used for the deblocking filter on / off determination for large block boundaries is equal to that for smaller block boundaries. 3. In one example, β is an integer and may be based on: a. Video content (e.g., screen content or natural content) b. DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Maximum Coding Unit (LCU) / Coding Unit (CU) / LCU Row / Group of LCUs / TU / PU Block / Messages Notified by Video Coding Unit c. Positions of CU / PU / TU / Block / Video Coding Unit d. Coding Mode of Blocks Containing Samples Along Edges e. Transformation Matrix Applied to Blocks Containing Samples Along Edges f. Block Dimensions of Current Block and / or Its Adjacent Blocks g. Block Shapes of Current Block and / or Its Adjacent Blocks h. Indication of Color Format (e.g., 4:2:0, 4:4:4, RGB, or YUV) i. Coding Tree Structure (e.g., Dual Tree or Single Tree) j. Slice / Tile Group Type and / or Picture Type k. Color Component (e.g., may only be applied to Cb or Cr) l. Temporal Layer ID m. Profile / Level / Tier of Standard Specification n. Alternatively, β may be notified to the decoder.
[0093] Regarding the scaling matrix (inverse quantization matrix) 23. The values for specific positions of the quantization matrix may be set to constants. a. In one example, the position may be a position of (x, y), where x and y are two integer variables (e.g., x = y = 0), and (x, y) are coordinates for TU / TB / PU / PB / CU / CB. i. In one example, the position may be the position of DC. b. In one example, the constant value may be 16. c. In one example, for these positions, signaling of matrix values may not be utilized. 24. A constraint gusset may be imposed that the average / weighted average at some positions of the quantization matrix can be a constant. a. In one example, the deblocking process may depend on a constant value. b. In one example, the constant value may be indicated in the DPS / VPS / SPS / PPS / slice / picture / tile / brick header. 25. One or more indications may be signaled in the picture header to inform the scaling matrix selected in the picture related to the picture header.
[0094] Regarding the component - common adaptive loop filter (CCALF) 26. CCALF (Cross Component Adaptive Loop Filter) may be applied before any loop filtering process in the decoder. a. In one example, CCALF may be applied before the deblocking process in the decoder. b. In one example, CCALF may be applied before SAO in the decoder. c. In one example, CCALF may be applied before ALF in the decoder. d. Alternatively, the order of different filters (e.g., CCALF, ALF, SAO, deblocking filter) may not be fixed. i. In one example, the activation of CCALF may be before one filtering process for one video unit or after another filtering process for another video unit. ii. In one example, the video unit may be a CTU / CTB / slice / tile / brick / picture / sequence. e. Alternatively, the indication of the order of different filters (e.g., CCALF, ALF, SAO, deblocking filter) may be signaled or derived on-the-fly. i. Alternatively, the indication of the activation of CCALF may be signaled or derived on-the-fly. Explicit instructions (e.g., notifications from the encoder to the decoder) or implicit instructions (e.g., derivations at both the encoder and the decoder) for controlling CCALF may be separated for different color components (e.g., Cb and Cr). g. Whether and / or how to apply CCALF may depend on the color format (e.g., RGB and YCbCr) and / or the color sampling format (e.g., 4:2:0, 4:2:2, and 4:4:4) and / or the color downsampling position or phase.
[0095] Regarding the chroma QP offset list 27. The notification and / or selection of the chroma QP offset list may depend on the coded prediction mode / picture type / slice or tile or brick type. h. The chroma QP offset lists, e.g., 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 the chroma QP offset list may depend on whether the current block is coded in the intra mode. j. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in the 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 the palette mode. l. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in the 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 the return 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. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in transform_quant_skip or reversible mode.
[0096] Regarding chroma deblocking at the CTU boundary 28. The method of selecting the QP used in the deblocking filter process (e.g., using the corresponding luma or chroma inverse quantized QP) may depend on the position of the sample relative to the CTU / CTB / VPDU boundary. 29. The method of selecting the QP used in the deblocking filter process (e.g., using the corresponding luma or chroma inverse quantized QP) may depend on the color format (e.g., RGB or YCbCr) and / or color sampling format (e.g., 4:2:0, 4:2:2, and 4:4:4) and / or color downsampling position or phase. 30. For edges at the CTU boundary, deblocking may be based on the luma QP of the corresponding block. p. In one example, for horizontal edges at the CTU boundary, deblocking may be based on the luma QP of the corresponding block. i. In one example, deblocking may be based on the luma QP of the corresponding block on the P side. ii. In one example, deblocking may be based on the luma QP of the corresponding block on the Q side. q. In one example, for vertical edges at the CTU boundary, deblocking may be based on the luma QP of the corresponding block. i. In one example, deblocking may be based on the luma QP of the corresponding block on the P side. ii. In one example, deblocking may be based on the luma QP of the corresponding block on the Q side. r. In one example, for the edges at the CTU boundary, deblocking can be based on the luma QP on the P side and the chroma QP on the Q side. s. In one example, for the edges at the CTU boundary, deblocking can be based on the luma QP on the Q side and the chroma QP on the P side. t. In this burette, "CTU boundary" can refer to a specific CTU boundary such as the upper CTU boundary or the lower CTU boundary. 31. For the horizontal edges at the CTU boundary, deblocking can be based on a function of the chroma QP on the P side. u. In one example, deblocking can be based on an average function of the chroma QP on the P side. i. In one example, the function can be based on the average of the chroma QP for every 8 luma samples. ii. In one example, the function can be based on the average of the chroma QP for every 16 luma samples. iii. In one example, the function can be based on the average of the chroma QP for every 32 luma samples. iv. In one example, the function can be based on the average of the chroma QP for every 64 luma samples. v. In one example, the function can be based on the average of the chroma QP for each CTU. v. In one example, deblocking can be based on a maximum function of the chroma QP on the P side. i. In one example, the function can be based on the maximum value of the chroma QP for every 8 luma samples. ii. In one example, the function can be based on the maximum value of the chroma QP for every 16 luma samples. iii. In one example, the function can be based on the maximum value of the chroma QP for every 32 luma samples. iv. In one example, the function can be based on the maximum value of the chroma QP for every 64 luma samples. v. In one example, the function can be based on the maximum value of the chroma QP for each CTU. w. In one example, deblocking can be based on a minimum function of the chroma QP on the P side. i. In one example, the function can be based on the minimum value of the chroma QP for every 8 luma samples. ii. In one example, the function can be obtained based on the minimum value of the chroma QP for every 16 luma samples. iii. In one example, the function can be obtained based on the minimum value of the chroma QP for every 32 luma samples. iv. In one example, the function can be obtained based on the minimum value of the chroma QP for every 64 luma samples. v. In one example, the function can be obtained based on the minimum value of the chroma QP for each CTU. x. In one example, deblocking can be obtained based on a chroma QP subsampling function on the P side. i. In one example, the function can be obtained based on the chroma QP of the k-th chroma sample for every 8 luma samples. 1. In one example, the k-th sample can be the first sample. 2. In one example, the k-th sample can be the last sample. 3. In one example, the k-th sample can be the third sample. 4. In one example, the k-th sample can be the fourth sample. ii. In one example, the function can be obtained based on the chroma QP of the k-th chroma sample for every 16 luma samples. 1. In one example, the k-th sample can be the first sample. 2. In one example, the k-th sample can be the last sample. 3. In one example, the k-th sample can be the seventh sample. 4. In one example, the k-th sample can be the eighth sample. iii. In one example, the function can be obtained based on the chroma QP of the k-th chroma sample for every 32 luma samples. 1. In one example, the k-th sample can be the first sample. 2. In one example, the k-th sample can be the last sample. 3. In one example, the k-th sample can be the fifteenth sample. 4. In one example, the k-th sample can be the sixteenth sample. iv. In one example, the function can be obtained based on the chroma QP of the k-th chroma sample for every 64 luma samples. 1. In one example, the k-th sample may be the first sample. 2. In one example, the k-th sample may be the last sample. 3. In one example, the k-th sample may be the 31st sample. 4. In one example, the k-th sample may be the 32nd sample. v. In one example, the function may be obtained based on the chroma QP of the k-th chroma sample for each CTU. y. Alternatively, the above items may be applied to the chroma QP on the Q side for the deblocking process. 32. It may be restricted that the QP of the chroma component can be the same for a chroma line segment starting from (4×m×x, 2y) with a length of 4×m with respect to the upper left of the picture. At this time, x and y are non-negative integers, and m is a positive integer. z. In one example, m may be equal to 1. aa. In one example, the width of the quantization group of the chroma component should be 4×m or more. 33. It may be restricted that the QP of the chroma component can be the same for a chroma column segment starting from (2×x, 4×n×y) with a length of 4×n with respect to the upper left of the picture. At this time, 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 the quantization group of the chroma component should be 4×n or more.
[0097] Regarding the chroma deblocking filtering process 34. The first syntax element that controls the use of coding tool X may be notified in the first video unit (e.g., picture header) according to the second syntax element notified in the second video unit (e.g., SPS or PPS, or VPS). a. In one example, the first syntax element is notified only when the second syntax element indicates that coding tool X is enabled. b. In one example, X is Bi-Directional Optical Flow (BDOF). c. In one example, X is Prediction Refinement Optical Flow (PROF). d. In one example, X is Decode-side Motion Vector Refinement (DMVR). e. In one example, the notification of the use of coding tool X may be under the condition check of the slice type (e.g., P or B slice, non-I slice).
[0098] Regarding the chroma deblocking filtering process 35. The deblocking filter determination process for two chroma blocks may be combined into one so that it is called only once, and the determination is applied to the two chroma blocks. b. In one example, the determination of whether to execute the deblocking filter may be the same for the Cb and Cr components. c. In one example, when it is determined that the deblocking filter is to be applied, the determination of whether to execute a stronger deblocking filter may be the same for the Cb and Cr components. d. In one example, the deblocking conditions and strong filter on / off conditions described in Section 2.2.7 may not be checked only once. However, it may be changed to check the information of both chroma components. i. In one example, the average of the slopes of the Cb and Cr components may be used in the above determination for both the Cb and Cr components. ii. In one example, the stronger chroma filter may be executed only when the strong filter condition is satisfied for both the Cb and Cr components. 1. Alternatively, in one example, the chroma weak filter may be executed only when the strong filter condition is not satisfied for at least one chroma component.
[0099] Overview 36. The proposed method may be applied under specific conditions. a. In one example, the condition is that the color format is 4:2:0 and / or 4:2:2. i. Alternatively, further, for the 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 using the above method may be notified at the sequence / picture / slice / tile / brick / video region level such as SPS / PPS / picture header / slice header. c. In one example, the use of the above method may depend on the following: i. Video content (e.g., screen content or natural content) ii. Messages notified by DPS / SPS / VPS / PPS / APS / picture header / slice header / tile group header / maximum coding unit (LCU) / coding unit (CU) / LCU row / group of LCUs / TU / PU block / video coding unit iii. Positions of CU / PU / TU / block / video coding unit a. In one example, for filtering samples along the CTU / CTB boundary (e.g., the first K samples (e.g., K = 4 / 8) at the top / left / right / bottom boundary), the existing design may be applied. On the other hand, for other samples, the proposed method (e.g., bullet 3 / 4) may be applied instead. v. Coding mode of a block including samples along an edge vi. Transformation matrix applied to a block including samples along an edge vii. Block dimensions of the current block and / or its adjacent blocks viii. Block shapes of the current block and / or its adjacent blocks ix. Indication of color format (e.g., 4:2:0, 4:4:4, RGB or YUV) x. Coding tree structure (e.g., dual tree or single tree) xi. Slice / Tile Group Type and / or Picture Type xii. Color Component (e.g., may only apply to Cb or Cr) xiii. Temporal Layer ID xiv. Standard Profile / Level / Tier xv. Alternatively, m and / or n may be notified to the decoder.
[0100] [5. Additional Embodiments] Newly added text is shown in underlined bold italic. Deleted text is marked by [[ ]].
[0101] [5.1. Embodiment #1 Regarding Chroma QP in Deblocking] [Table 6]
[0102] [5.2. Embodiment #2 Regarding Derivation of Boundary Strength] [Table 7] TIFF0007704745000013.tif254141TIFF0007704745000014.tif24150
[0103] [5.3. Embodiment #3 Regarding Derivation of Boundary Strength] [Table 8] TIFF0007704745000016.tif254146
[0104] [5.4. Embodiment #4 Regarding Luma Deblocking Filtering Process] [Table 9]
[0105] [Embodiment #5 Regarding Chroma Deblocking Filtering Process #5]
Table 10
[0106] [Embodiment #6 Regarding Chroma QP in Deblocking #6]
Table 11
[0107] [Embodiment #7 Regarding Chroma QP in Deblocking #7]
Table 12
[0108] [Embodiment #8 Regarding Chroma QP in Deblocking #8] When making a filter decision for the three samples (solid circles) shown, the QP of the luma CU covering the center position of the chroma CU containing the three samples is selected. Therefore, for the first, second, and third chroma samples (see Fig. 11), only the QP of CU Y 3 is used.
[0109] In this way, the method of selecting the luma CU for the chroma quantization / inverse quantization process is aligned with that for the chroma filter decision process.
[0110] [Embodiment #9 Regarding QP Used for JCCR-Coded Blocks #9]
Table 13
[0111] [Embodiment #10 Regarding QP Used for JCCR-Coded Blocks#10]
Table 14
[0112] [5.11 Embodiment #11]
Table 15
[0113] [5.12 Embodiment #12]
Table 16
[0114] [6. Examples of the Disclosed Technology] FIG. 12 is a block diagram of a video processing apparatus 1200. The apparatus 1200 may be used to implement one or more of the methods described herein. The apparatus 1200 may be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. The apparatus 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 of the methods described herein. The memory (or memories) 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 of the techniques described herein in a hardware circuit. In some embodiments, the video processing hardware 1206 may be, in part or in whole, part of the processor 1202 (e.g., a graphics processing unit core GPU or other signal processing circuit).
[0115] As used herein, the term “video processing” may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion from the pixel representation of a video to the corresponding bitstream representation, or vice versa. The bitstream representation of the current video block may correspond to bits that are either at the same position within the bitstream or spread out at different locations, as defined by the syntax, for example. For example, a macroblock may be encoded using the transformed and coded error residual values, and further, bits in the header and other fields within the bitstream.
[0116] It will be appreciated that the disclosed methods and techniques may be for video encoder and / or decoder embodiments incorporated within video processing devices such as smartphones, laptops, desktops, and similar devices by allowing the use of the techniques disclosed herein.
[0117] Figure 13 is a flowchart of an exemplary method 1300 of video processing. The method includes, at 1310, performing a conversion between a video unit and a bitstream representation of the video unit, during which a deblocking filter is used for the boundaries of the video unit, such that when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, processing by the chroma QP table is performed for individual chroma QP values.
[0118] Some embodiments may be described in the following bullet format.
[0119] (Appendix 1) A method of video processing, comprising performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used for the boundaries of the video unit, such that when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, processing by the chroma QP table is performed for individual chroma QP values. Method.
[0120] (Appendix 2) A chroma QP offset is added to the individual chroma QP values following processing by the chroma QP table, The method according to Appendix 1.
[0121] (Appendix 3) A chroma QP offset is added to the values output by the chroma QP table, The method according to Appendix 1 or 2.
[0122] (Appendix 4) The chroma QP offset is not regarded as an input to the chroma QP table, The method according to Appendix 1 or 2.
[0123] (Appendix 5) The chroma QP offset is at the picture level or at the video unit level, The method according to claim 2.
[0124] (Appendix 6) A method of video processing, comprising a step of performing conversion between a video unit and a bitstream representation of the video unit, During the conversion, a deblocking filter is used for the boundary of the video unit, whereby a chroma QP offset is used with the deblocking filter, The chroma QP offset is at the picture / slice / tile / block / sub-picture level, Method.
[0125] (Appendix 7) The chroma QP offset used with the deblocking filter is related to the coding method applied to the boundary of the video unit, The method according to Appendix 6.
[0126] (Appendix 8) The coding method is the JCCR (Joint Coding of Chrominance Residuals) method, The method according to Appendix 7.
[0127] (Appendix 9) A method of video processing, comprising a step of performing conversion between a video unit and a bitstream representation of the video unit, During the conversion, a deblocking filter is used for the boundary of the video unit, whereby a chroma QP offset is used with the deblocking filter, Information regarding the same luma coding unit is used with the deblocking filter and for deriving the chroma QP offset, Method.
[0128] (Appendix 10) The same luma coding unit covers the corresponding luma sample at the center position of the video unit, and the video unit is a chroma coding unit. The method according to Appendix 9.
[0129] (Appendix 11) A scaling process is applied to the video unit. One or more parameters of the deblocking filter depend at least in part on the quantization / inverse quantization parameters of the scaling process. The method according to Appendix 9.
[0130] (Appendix 12) The quantization / inverse quantization parameters of the scaling process include the chroma QP offset. The method according to Appendix 11.
[0131] (Appendix 13) The luma samples within the video unit are on the P side or the Q side. The method according to any one of Appendices 9 to 12.
[0132] (Appendix 14) The information regarding the same luma coding unit depends on the relative position of the coding unit with respect to the same luma coding unit. The method according to Appendix 13.
[0133] (Appendix 15) A method for video processing, comprising the step of performing a conversion between a video unit and a bitstream representation of the video unit. During the conversion, a deblocking filter is used for the boundary of the video unit, such that a chroma QP offset is used in the deblocking filter. An instruction enabling use of the chroma QP offset is signaled in the bitstream representation, Method.
[0134] (Appendix 16) The instruction is signaled conditionally in response to deletion of one or more flags, The method described in Appendix 15.
[0135] (Appendix 17) The one or more flags relate to a JCCR enable flag or a chroma QP offset enable flag, The method described in Appendix 16.
[0136] (Appendix 18) The instruction is signaled based on derivation, The method described in Appendix 15.
[0137] (Appendix 19) A method of video processing, comprising performing a conversion between a video unit and a bitstream representation of the video unit, during the conversion, a deblocking filter is used for a boundary of the video unit, such that a chroma QP offset is used with the deblocking filter, the chroma QP offset used with the deblocking filter is the same whether the JCCR coding method is to be applied to the boundary of the video unit or a method different from the JCCR coding method is to be applied to the boundary of the video unit, Method.
[0138] (Appendix 20) A method of video processing, comprising performing a conversion between a video unit and a bitstream representation of the video unit, during the conversion, a deblocking filter is used for a boundary of the video unit, such that a chroma QP offset is used with the deblocking filter, The boundary strength (BS) of the deblocking filter is calculated without comparing the number of reference pictures and / or motion vectors (MVs) associated with the video unit at the P-side boundary with the number of reference pictures and / or motion vectors (MVs) associated with the video unit at the Q-side boundary, Method.
[0139] (Appendix 21) The deblocking filter is disabled under one or more conditions, The method according to Appendix 20.
[0140] (Appendix 22) The one or more conditions are related to the magnitude of the motion vector (MV) or a threshold value, The method according to Appendix 20.
[0141] (Appendix 23) The threshold value is i. The content of the video unit, ii. Messages notified by DPS / SPS / VPS / PPS / APS / picture header / slice header / tile group header / maximum coding unit (LCU) / coding unit (CU) / LCU row / group of LCUs / TU / PU block / video coding unit, iii. The position of the CU / PU / TU / block / video coding unit, iv. The coding mode of the block including samples along the boundary, v. The transformation matrix applied to the video unit including samples along the boundary, vi. The shape or dimensions of the video unit, vii. Indication of the color format, viii. Coding tree structure, ix. Slice / tile group type and / or picture type, x. Color component, xi. Temporal layer ID, or xii Standard profile / level / tier related to at least one of the method described in Appendix 22.
[0142] (Appendix 24) different QP offsets are used for TS-coded video units and non-TS-coded video units, the method described in Appendix 20.
[0143] (Appendix 25) the QP used in the loop filter filtering step is related to the QP used in the scaling process of the loop block, the method described in Appendix 20.
[0144] (Appendix 26) A video decoding device having a processor configured to implement the method described in one or more of Appendices 1 to 25.
[0145] (Appendix 27) A video encoding device having a processor configured to implement the method described in one or more of Appendices 1 to 25.
[0146] (Appendix 28) A computer program product storing computer code, wherein when the computer code is executed by a processor, the processor is caused to implement the method described in any one of Appendices 1 to 25, computer program product.
[0147] (Appendix 29) The method, apparatus, or system described herein.
[0148] FIG. 15 is a block diagram illustrating an example video coding system 100 that can utilize the technology of the present disclosure.
[0149] As shown in FIG. 15, the video coding system 100 may include a source device 110 and a destination device 120. The source device 110 generates encoded video data and may be referred to as a video encoding device. The destination device 120 can decode the encoded video data generated by the source device 110 and may be referred to as a video decoding device.
[0150] The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.
[0151] 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 that generates video data, or a combination of such sources. The video data may have 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 forms a coded representation of the video data. The bitstream may also include coded pictures and associated data. The coded picture is a coded representation of the 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 through the network 130a to the destination device 120 via the I / O interface 116. The encoded video data may also be stored in the storage medium / server 130b for access by the destination device 120.
[0152] The destination device 120 may include an I / O interface 126, a video decoder 124, and a display device 122.
[0153] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain 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 the user. The display device 122 may be integrated with the destination device 120, or may be configured to interface with an external display device and be outside the destination device 120.
[0154] The video encoder 114 and the video decoder 124 may operate according to video compression standards such as the HEVC (High Efficiency Video Coding) standard, the VVC (Versatile Video Coding) standard, and other current and / or further standard specifications.
[0155] FIG. 16 is a block representing an example of the video encoder 200, and may be the video encoder 114 of the system 100 shown in FIG. 15.
[0156] The video encoder 200 may be configured to execute any or all of the techniques of the present disclosure. In the example of FIG. 16, the video encoder 200 includes a plurality of functional components. The techniques described in the present disclosure may be shared among various components of the video encoder 200. In some examples, the processor may be configured to execute any or all of the techniques described in the present disclosure.
[0157] The functional components of the video encoder 200 may include a partitioning unit 201, a prediction unit 202 that may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206, a residual generation unit 207, a conversion unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse conversion unit 211, a reconstruction unit 212, a buffer 213, and an entropy encoding unit 214.
[0158] In other examples, video encoder 200 may include more, fewer, or different functional components. In an example, 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.
[0159] Furthermore, some components such as motion estimation unit 204 and motion compensation unit 205 may be highly integrated, but are shown separately in the example of FIG. 16 for illustrative purposes.
[0160] Partition unit 201 may partition a picture into one or more video blocks. Video encoder 200 and video decoder 300 may support various video block sizes.
[0161] Mode selection unit 203 may select one of an intra or inter coding mode, for example, based on an error result, and supply the resulting intra or inter coded block to residual generation unit 207 that generates residual block data, and to reconstruction unit 212 that reconstructs the coded block for use as a reference picture. In some examples, mode selection unit 203 may select an Intra and Inter Prediction (CIIP) mode where prediction is based on an inter prediction signal and an intra prediction signal. Mode selection unit 203 may also select the resolution (e.g., sub-pixel or integer pixel accuracy) for the motion vector of a block in the case of inter prediction.
[0162] To perform inter prediction on the current video block, the motion estimation unit 204 may generate motion information of the current video block by comparing one or more reference frames from the buffer 213 with the current video block. The motion compensation unit 205 may determine a predicted video block of the current video block based on the motion information and the decoded samples of the pictures from the buffer 213 other than the picture related to the current video block.
[0163] The motion estimation unit 204 and the motion compensation unit 205 may perform different operations for the current video block, for example, depending on whether the current video block is an I slice, a P slice, or a B slice.
[0164] In some examples, the motion estimation unit 204 may perform uni-directional prediction for the current video block. The motion estimation unit 204 may search for a reference video block for the current video block from the reference pictures in list 0 or list 1. The motion estimation unit 204 may then generate a reference index indicating the reference picture within list 0 or list 1 that includes the reference video block, and a motion vector indicating the spatial displacement between the current video block and the reference video block. The motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as the motion information of the current video block. The motion compensation unit 205 may generate a predicted video block of the current block based on the reference video block indicated by the motion information of the current video block.
[0165] In other examples, the motion estimation unit 204 may perform bidirectional prediction for the current video block. The motion estimation unit 204 may search for a reference video block for the current video block from the reference pictures in list 0, and may also search for another reference video block for the current video block from the reference pictures in list 1. The motion estimation unit 204 may then generate a reference index indicating the reference pictures in list 0 and list 1 that include the reference video block, and a motion vector indicating the spatial displacement between the reference video block and the current video block. The motion estimation unit 204 may output the reference index and the motion vector of the current video block as the motion information of the current video block. The motion compensation unit 205 may generate a predicted video block of the current video block based on the reference video block indicated by the motion information of the current video block.
[0166] In some examples, the motion estimation unit 204 may output a full set of motion information for decoder decoding processing.
[0167] In some examples, the motion estimation unit 204 may not output a full set of motion information of the current video. Rather, the motion estimation unit 204 may refer to the motion information of other video blocks to notify the motion information of the current video block. For example, the motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of adjacent video blocks.
[0168] In one example, the motion estimation unit 204 may indicate a value to the video decoder 300 indicating that the current video block has the same motion information as other video blocks in the syntax structure related to the current video block.
[0169] In other examples, the motion estimation unit 204 may identify other video blocks and motion vector differences (MVDs) in the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the identified video block. The video decoder 300 may use the motion vector of the identified video block and the motion vector difference to determine the motion vector of the current video block.
[0170] As described above, the video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by the video encoder 200 are advanced motion vector prediction (AMVP) and merge mode signaling.
[0171] The intra prediction unit 206 may perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 may generate predicted data for the current video block based on the decoded samples of other video blocks within the same picture. The predicted data for the current video block may include the predicted video block and various syntax elements.
[0172] The residual generation unit 207 may generate residual data for the current video block by subtracting the predicted video block of the current video block from the current video block (e.g., indicated by a negative sign). The residual data for the current video block may include residual video blocks corresponding to different sample components of the samples within the current video block.
[0173] In other examples, for instance, in skip mode, there may be no residual data for the current video block, and the residual generation unit 207 may not need to perform a subtraction operation.
[0174] The transform processing unit 208 may generate one or more transform coefficient video blocks of the current video block by applying one or more transforms to the residual video block associated with the current video block.
[0175] After the transform processing unit 208 generates the 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.
[0176] The inverse quantization unit 210 and the inverse transform unit 211 may each apply inverse quantization and inverse transform to the transform coefficient video block to reconstruct the residual video block from the transform coefficient video block. The reconstruction unit 212 may add the reconstructed residual video block to the corresponding samples from one or more predicted video blocks generated by the prediction unit 202 and generate a reconstructed video block associated with the current block for storage in the buffer 213.
[0177] After the reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video blocking artifacts in the video block.
[0178] The entropy encoding unit 214 may receive data from other functional components of the video encoder 200. When 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 generate a bitstream including the entropy encoded data.
[0179] FIG. 17 is a block diagram representing an example of a video decoder 300, which may be the video decoder 124 of the system 100 represented in FIG. 15.
[0180] The video decoder 300 may be configured to perform any or all of the techniques of the present disclosure. In the example of FIG. 17, the video decoder 300 includes a plurality of functional components. The techniques described in the present disclosure may be shared among various components of the video decoder 300. In some examples, the processor may be configured to perform any or all of the techniques described in the present disclosure.
[0181] In the example of FIG. 10, 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 generally inverse to the encoding path described with respect to the video encoder 200 (FIG. 16).
[0182] The entropy decoding unit 301 may extract the encoded bitstream. The encoded bitstream may include entropy-coded video data (e.g., an encoded block of video data). The entropy decoding unit 301 may decode the entropy-coded video data, and from the entropy-decoded video data, the motion compensation unit 302 may determine motion information including a motion vector, motion vector precision, a reference picture list index, and other motion information. The motion compensation unit 302 may determine such information, for example, by performing AMVP and merge mode.
[0183] The motion compensation unit 302 may optionally perform interpolation based on an interpolation filter to generate a motion-compensated block. An identifier for the interpolation filter used at sub-pixel precision may be included in the syntax element.
[0184] The motion compensation unit 302 may use the interpolation filter used by the video encoder 200 during the encoding of the video block to calculate the interpolation values for the sub-integer pixels of the reference block. The motion compensation unit 302 may determine the interpolation filter used by the video encoder 200 according to the received syntax information, and use the interpolation filter to generate a prediction block.
[0185] 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, the partition information describing how each macroblock of the pictures of the encoded video sequence is partitioned, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the encoded video sequence.
[0186] The intra prediction unit 303 may use, for example, the intra prediction mode received in the bitstream to form a prediction block from spatially adjacent blocks. The inverse quantization unit 304 inverse quantizes, i.e., dequantizes, the quantized video block coefficients supplied in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 305 applies an inverse transform.
[0187] The reconstruction unit 306 may add the corresponding prediction block generated by the motion compensation unit 302 or the intra prediction unit 303 to the residual block to form the decoded block. If desired, a deblocking filter may also be applied to filter the decoded block to remove blocking artifacts. DecodingThe video block that has been decoded is then stored in buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction and further generates the decoded video for presentation on a display device.
[0188] FIG. 18 is a block diagram illustrating an exemplary video processing system 1800 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 1800. System 1800 may include an input section 1802 that receives video content. The video content may be received in a raw or uncompressed format, such as 8- or 10-bit multi-component pixel values, or may be in a compressed or encoded format. Input section 1802 may correspond to 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), etc., and wireless interfaces such as Wi-Fi or cellular networks.
[0189] System 1800 may include a coding component 1804 that can implement various coding or encoding methods described herein. The coding component 1804 may reduce the average bitrate of a video from the input section 1802 to the output section of the coding component 1804 so as to generate a coded representation of the video. Coding techniques are thus sometimes referred to as video compression or video transcoding techniques. The output of the coding component 1804 may be stored or transmitted via a connected communication as represented by the component 1806. The stored or communicated bitstream (or coded) representation of the video received at the input section 1802 may be used by a component 1808 to generate a displayable video that is sent to the pixel values or the display interface 1810. The process of generating a video that a user can view from a bitstream representation is sometimes referred to as video decompression. Further, while certain video processing operations are called "coding" operations or tools, it will be understood that such coding tools or operations are used in an encoder and the corresponding decoding tools or operations that reverse the results of the coding are to be performed by a decoder.
[0190] Examples of a peripheral bus interface or a display interface may include a Universal Serial Bus (USB) or a High-Definition Multimedia Interface (HDMI (registered trademark)) or Displayport (registered trademark), etc. Examples of a storage interface include SATA (Serial Advanced Technology Attachment), PCI, an IDE interface, etc. The techniques described herein may be embodied in various electronic devices such as a cellular phone, a laptop, a smartphone, or other devices capable of performing digital data processing and / or video display.
[0191] FIG. 19 is a flowchart representation of a method 1900 for video processing according to the present technology. The method 1900 includes, in operation 1910, determining the applicability of a deblocking filter process to at least some samples at the edges of a chroma block based on a mode of joint coding of chroma residuals of the chroma block for conversion between the chroma block of the video and a bitstream representation of the video. The method 1900 also includes, in operation 1920, performing the conversion based on the determination.
[0192] In some embodiments, the value indicating the mode of joint coding of chroma residuals is equal to 2. In some embodiments, the deblocking filter process further uses one or more quantization parameter offsets at the video unit level, and the video unit includes a picture, slice, tile, brick, or subpicture.
[0193] FIG. 20 is a flowchart representation of a method 2000 for video processing according to the present technology. The method 2000 includes, in operation 2110, determining a chroma quantization parameter used in a deblocking filter process applied to at least some samples at the edges of a current block based on information of a corresponding transform block of the current block for conversion between the current block of the video and a bitstream representation of the video. The method 2000 also includes, in operation 2120, performing the conversion based on the determination.
[0194] In some embodiments, the chroma quantization parameter is used to deblock samples along a first side of an edge of the current block, and the chroma quantization parameter is based on a mode of a transform block on the first side. In some embodiments, the first side is referred to as the P side, and the P side includes samples located above the edge when the edge is a horizontal boundary, or includes samples located to the left of the edge when the edge is a vertical boundary. In some embodiments, the chroma quantization parameter is used to deblock samples along a second side of an edge of the current block, and the chroma quantization parameter is based on a mode of the transform block on the second side. In some embodiments, the second side is referred to as the Q side, and the Q side includes samples located below the edge when the edge is a horizontal boundary, or includes samples located to the right of the edge when the edge is a vertical boundary.
[0195] In some embodiments, the chroma quantization parameter is determined based on whether a mode of joint coding of chroma residuals is applied. In some embodiments, the chroma quantization parameter is determined based on whether the mode of joint coding of chroma residuals is equal to 2.
[0196] FIG. 21 is a flowchart representation of a method 2100 for video processing according to the present technology. Method 2100 includes, in operation 2110, performing a conversion between a current block of video and a bitstream representation of the video. During the conversion, a first chroma quantization parameter used in a deblocking filter process applied to at least some samples along an edge of the current block is based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to the bit depth.
[0197] In some embodiments, the first chroma quantization parameter is equal to the second chroma quantization parameter used in the scaling process minus a quantization parameter offset related to the bit depth. In some embodiments, the first chroma quantization parameter is used to deblock samples along a first side of an edge of the current block. In some embodiments, the first side is referred to as the P side, and the P side includes samples located above the edge when the edge is a horizontal boundary, or includes samples located to the left of the edge when the edge is a vertical boundary. In some embodiments, the first chroma quantization parameter is used to deblock samples along a second side of an edge of the current block. In some embodiments, the second side is referred to as the Q side, and the Q side includes samples located below the edge when the edge is a horizontal boundary, or includes samples located to the right of the edge when the edge is a vertical boundary.
[0198] In some embodiments, the first chroma quantization parameter is equal to the second chroma quantization parameter for the joint coding of chroma residuals used in the scaling process minus the quantization parameter offset related to the bit depth. In some embodiments, the first chroma quantization parameter is equal to the second chroma quantization parameter for the chroma Cb component used in the scaling process minus the quantization parameter offset related to the bit depth. In some embodiments, the first chroma quantization parameter is equal to the second chroma quantization parameter for the chroma Cr component used in the scaling process minus the quantization parameter offset related to the bit depth.
[0199] FIG. 22 is a flowchart representation of a video processing method 2200 according to the present technology. Method 2200 includes, in operation 2210, performing a conversion between a video including one or more coding units and a bitstream representation of the video. The bitstream representation follows a format rule that specifies that a chroma quantization parameter is included in the bitstream representation at a coding unit level or a transform unit level according to the format rule.
[0200] In some embodiments, the format rule specifies that the chroma quantization parameter is included at the coding unit level when the size of the coding unit is larger than a virtual pipeline data unit. In some embodiments, the format rule specifies that the chroma quantization parameter is included at the transform unit level when the size of the coding unit is greater than or equal to a virtual pipeline data unit. In some embodiments, the format rule specifies that the chroma quantization parameter is included at the coding unit level when the size of the coding unit is larger than a maximum transform block size. In some embodiments, the format rule specifies that the chroma quantization parameter is included at the transform unit level when the size of the coding unit is greater than or equal to a maximum transform block size. In some embodiments, the format rule further specifies that whether a common coding mode of chroma residuals is applied to a first coding unit among one or more coding units is indicated at the coding unit level. In some embodiments, a transform block within the first coding unit inherits information regarding whether the mode of common coding of chroma residuals is applicable at the level of the first coding unit.
[0201] FIG. 23 is a flowchart representation of a video processing method 2300 according to the present technique. Method 2300 includes, in operation 2310, performing a conversion between a block of video and a bitstream representation of the video. The bitstream representation follows formatting rules that specify that whether a mode of joint coding of chroma residuals is applicable to the block is indicated at the coding unit level in the bitstream representation.
[0202] In some embodiments, during the conversion, the transform block within the coding unit inherits information regarding whether a mode of joint coding of chroma residuals is applicable at the level of the coding unit.
[0203] 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.
[0204] Some embodiments of the disclosed technology include making a determination or decision as to enabling a video processing tool or mode. In an example, when a video processing tool or mode is enabled, the encoder will use or implement that tool or mode in processing a block of video, but based on the use of the tool or mode, it is not necessarily required to change the resulting bitstream. That is, the conversion from a block of video to a bitstream representation of the video will use that tool or mode when the video processing tool or mode is enabled based on a determination or decision. In other examples, when a video processing tool or mode is enabled, the decoder will process the bitstream after knowing that the bitstream has been changed based on that video processing tool or mode. That is, the conversion from a bitstream representation of the video to a block of video will be performed using a video processing tool or mode enabled based on a determination or decision.
[0205] Some embodiments of the disclosed technology involve making a decision or determination to disable a video processing tool or mode. For example, if a video processing tool or mode is disabled, the encoder does not use that tool or mode in converting a block of video to a video bitstream representation. In other examples, if a video processing tool or mode is disabled, the decoder will process the bitstream knowing that the bitstream has not been modified using the disabled video processing tool or mode based on the decision or determination.
[0206] The disclosed and other solutions, examples, embodiments, modules, and functional operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in a combination of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or a combination of one or more of them. The term "data processing apparatus" includes, by way of example, all apparatus, devices, and machines for processing data, including programmable processors, computers, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor hardware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., an electrical, optical, or electromagnetic signal generated by a machine, that is generated to encode information for transmission to an appropriate receiver device.
[0207] 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. The program can be stored in a single file dedicated to the program in question, or in multiple cooperating files (e.g., files that store one or more modules, subprograms, or portions of code), and can be stored in portions of files that hold other programs or data (e.g., one or more scripts stored in a markup language document). A computer program can be executed on one computer or deployed to be executed on multiple computers located in one place or distributed across multiple places and interconnected by a communication network.
[0208] The processes and logic flows described herein can be executed by one or more programmable processors that execute one or more computer programs to perform functions by operating on input data to generate output. The processes and logic flows can also be executed by dedicated logic circuits, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC), and the apparatus can be implemented as such.
[0209] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, as well as any one or more processors of any kind of digital computer. In general, a processor will receive instructions and data from a read only memory or a random access memory or both. Essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. In general, a computer will also include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or will be operatively coupled to receive data from or transfer data to one or more such mass storage devices or both. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include, by way of example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and all forms of nonvolatile memory, media, and memory devices including CD ROM and DVD-ROM disks. The processor and the memory may be enhanced or incorporated in a dedicated logic circuit.
[0210] This specification includes a number of details, but they are to be construed not as limitations on the scope of any subject or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of a particular technology. The particular features described herein in connection with separate embodiments may be implemented in combination with a single embodiment. Conversely, the various features described in connection with a single embodiment may also be implemented separately in multiple embodiments or in any suitable sub-combination. Further, features may have been previously described as operating in a particular combination and even initially claimed as such, but in some cases, one or more features from the claimed combination may be removable from that combination, and the claimed combination may be directed to a sub-combination or a variation of a sub-combination.
[0211] Similarly, operations are represented in the drawings in a particular order, but this is not to be understood as requiring that such operations be performed in that particular order or in a sequential order, or that all of the operations shown be performed, to achieve the desired result. Further, the separation of various system components in the embodiments described herein is not to be understood as requiring such separation in all embodiments.
[0212] Only a few implementations and examples have been described, and other implementations, enhancements, and variations may be made based on what is described and illustrated in this patent document.
[0213] [Cross - reference to related applications] This This application claims the priority and benefit of International Patent Application No. PCT / CN2019 / 111115, filed on October 14, 2019 Claims based on International Patent Application No. PCT / US2020 / 055329 filed on October 13, 2020 which is 。Above hereby All patents incorporated Wish by Their full texts reference In this application and relied upon.
Claims
Claim 1 A method for processing video data, comprising: determining a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to bit depth during conversion between the current coding unit of the video and the bitstream of the video; performing the conversion based on the determination; and wherein the scaling process comprises applying quantization to at least some of the coefficients representing the current coding unit during encoding; and the bitstream follows a formatting rule that permits one or more syntax elements related to the second chroma quantization parameter to be included in the bitstream at the coding unit level or the conversion unit level when the size of the current coding unit is larger than the size of the virtual pipeline data unit. Claim 2 The method according to claim 1, wherein the first chroma quantization parameter is equal to the second chroma quantization parameter used in the scaling process minus the quantization parameter offset related to the bit depth. The method according to claim 1. Claim 3 The first chroma quantization parameter is used to deblock samples along a first side of the edge of the current coding unit, the first side being called the P side, which includes samples located above the edge when the edge is a horizontal boundary, or includes samples located to the left of the edge when the edge is a vertical boundary, or The first chroma quantization parameter is used to deblock samples along a second side of the edge of the current coding unit, the second side being called the Q side, which includes samples located below the edge when the edge is a horizontal boundary, or includes samples located to the right of the edge when the edge is a vertical boundary. The method according to claim 1 or 2. Claim 4 When the value of the first variable indicating the mode of the joint coding of the chroma Cb residual and the chroma Cr residual is equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the mode of the joint coding of the chroma Cb residual and the chroma Cr residual used in the scaling process minus the quantization parameter offset related to the bit depth. The method according to any one of claims 1 to 3.
5. The second chroma quantization parameter is Clip3(−QpBdOffset C , 63, qP CbCr +pps_cbc r_qp_offset+slice_cbc r_qp_offset+CuQpOffset CbCr ) + QpBdOffset C and is equal to, the first chroma quantization parameter is Clip3(−QpBdOffset C , 63, qP CbCr +pps_cbc r_qp_offset+slice_cbc r_qp_offset+CuQpOffset CbCr ) and is equal to, qP for the P side or Q side CbCr is the output of chroma quantization parameter table operations based on the lumacroma quantization parameters, pps_cbcry_qp_offset for the P side or Q side is the chroma quantization parameter offset at the picture level, slice_cbcry_qp_offset for the P side or Q side is the chroma quantization parameter offset at the slice level, and CuQpOffset for the P side or Q side CbCr is the chroma quantization parameter offset at the block level, and QpBdOffset C is the quantization parameter offset related to the bit depth The method according to claim 1.
6. Deblocking variables β and t C The second variable used to derive is equal to (the first chroma quantization parameter on the P side + the first chroma quantization parameter on the Q side + 1) >> 1, The method according to claim 5.
7. When the value of the first variable indicating the mode of the joint coding of the chroma Cb residual and the chroma Cr residual is not equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the first chroma Cb component used in the scaling process minus the quantization parameter offset related to the bit depth, or the first chroma quantization parameter is equal to the second chroma quantization parameter for the second chroma Cr component used in the scaling process minus the quantization parameter offset related to the bit depth. The method according to claim 4.
8. The second chroma quantization parameter used in the scaling process is derived based on at least the chroma quantization parameter offset at the picture level, slice level, and block level. The method according to any one of claims 1 to 7.
9. The format rule further defines that whether the combined coding mode for the chroma Cb residual and the chroma Cr residual is applicable to the coding unit is indicated at the coding unit level or the conversion unit level. The method according to claim 1.
10. The conversion includes encoding the video into the bitstream. The method according to any one of claims 1 to 9.
11. A method for processing video data, comprising: During conversion between the current coding unit of the video and the bitstream of the video, determining a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to the bit depth; executing the conversion based on the determination; comprising: The scaling process comprises applying inverse quantization to at least some of the coefficients from the bitstream during decoding; The bitstream follows a formatting rule that permits one or more syntax elements related to the second chroma quantization parameter to be included in the bitstream at the coding unit level or the transform unit level when the size of the current coding unit is larger than the size of the virtual pipeline data unit. Claim 12. The first chroma quantization parameter is equal to the second chroma quantization parameter used in the scaling process minus the quantization parameter offset related to the bit depth. The method according to claim 11. Claim 13. The first chroma quantization parameter is used to deblock samples along a first side of the edge of the current coding unit. The first side is called the P side. When the edge is a horizontal boundary, the P side includes samples located above the edge. When the edge is a vertical boundary, the P side includes samples located to the left of the edge. Or The first chroma quantization parameter is used to deblock samples along a second side of the edge of the current coding unit. The second side is called the Q side. When the edge is a horizontal boundary, the Q side includes samples located below the edge. When the edge is a vertical boundary, the Q side includes samples located to the right of the edge. The method according to claim 11 or 12. When the value of the first variable indicating the mode of the joint coding of the chroma Cb residual and the chroma Cr residual is equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the mode of the joint coding of the chroma Cb residual and the chroma Cr residual used in the scaling process minus the quantization parameter offset related to the bit depth. The method according to any one of claims 11 to 13. When the value of the first variable indicating the mode of the joint coding of the chroma Cb residual and the chroma Cr residual is not equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the first chroma Cb component used in the scaling process minus the quantization parameter offset related to the bit depth, or the first chroma quantization parameter is equal to the second chroma quantization parameter for the second chroma Cr component used in the scaling process minus the quantization parameter offset related to the bit depth. The method according to claim 14. The second chroma quantization parameter used in the scaling process is derived based on at least a chroma quantization parameter offset at the picture level, slice level, and block level. The method according to any one of claims 11 to 15.
17. The conversion includes decoding the video from the bitstream. The method according to any one of claims 11 to 16.
18. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions, wherein the instructions, when executed by the processor, cause the processor to: During the conversion between the current coding unit of the video and the bitstream of the video, determine the first chroma quantization parameter used in the deblocking filter process applied to at least one sample along the edge of the current coding unit based on the second chroma quantization parameter used in the scaling process and the quantization parameter offset related to the bit depth; and Execute the conversion based on the determination. The scaling process comprises applying quantization to at least some of the coefficients representing the current coding unit during encoding, a device that complies with a formatting rule that permits one or more syntax elements related to the second chroma quantization parameter to be included in the bitstream at a coding unit level or a transform unit level when the size of the current coding unit is larger than the size of the virtual pipeline data unit. **Claim 19** The first chroma quantization parameter is equal to the second chroma quantization parameter used in the scaling process minus the quantization parameter offset related to the bit depth, The first chroma quantization parameter is used to deblock samples along a first side of the edge of the current coding unit, the first side being called the P side, which includes samples located above the edge when the edge is a horizontal boundary, or includes samples located to the left of the edge when the edge is a vertical boundary, or the first chroma quantization parameter is used to deblock samples along a second side of the edge of the current coding unit, the second side being called the Q side, which includes samples located below the edge when the edge is a horizontal boundary, or includes samples located to the right of the edge when the edge is a vertical boundary, when the value of a first variable indicating a mode of joint coding of chroma Cb residuals and chroma Cr residuals is equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the mode of joint coding of chroma Cb residuals and chroma Cr residuals used in the scaling process minus the quantization parameter offset related to the bit depth, The second chroma quantization parameter is Clip3( - QpBdOffset C , 63, qP CbCr + pps_cbc_r_qp_offset + slice_cbc_r_qp_offset + CuQpOffset CbCr ) + QpBdOffset C equals, and the first chroma quantization parameter is Clip3( - QpBdOffset C , 63, qP CbCr + pps_cbc_r_qp_offset + slice_cbc_r_qp_offset + CuQpOffset CbCr ), qP for the P side or Q side CbCr is the output of chroma quantization parameter table operation based on the luma chroma quantization parameter, pps_cbc_r_qp_offset for the P side or Q side is the chroma quantization parameter offset at the picture level, slice_cbc_r_qp_offset for the P side or Q side is the chroma quantization parameter offset at the slice level, and CuQpOffset for the P side or Q side CbCr is the chroma quantization parameter offset at the block level, and QpBdOffset C is the quantization parameter offset related to the bit depth, Deblocking variables β and t C The second variable used to derive (P-side first chroma quantization parameter + Q-side first chroma quantization parameter + 1) >> 1 is equal to, When the value of the first variable indicating the mode of the joint coding of the chroma Cb residual and the chroma Cr residual is not equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the first chroma Cb component used in the scaling process minus the quantization parameter offset related to the bit depth, or the first chroma quantization parameter is equal to the second chroma quantization parameter for the second chroma Cr component used in the scaling process minus the quantization parameter offset related to the bit depth, The second chroma quantization parameter used in the scaling process is derived based at least on the chroma quantization parameter offset at the picture level, slice level and block level, The apparatus according to claim 18. **Claim 20** An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions, wherein the instructions, when executed by the processor, cause the processor to determine a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit during conversion between the current coding unit of the video and the bitstream of the video, based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to the bit depth; and execute the conversion based on the determination; and the scaling process comprises applying inverse quantization to at least some of the coefficients from the bitstream during decoding, and the bitstream follows a format rule that permits one or more syntax elements related to the second chroma quantization parameter to be included in the bitstream at the coding unit level or the transform unit level when the size of the current coding unit is larger than the size of the virtual pipeline data unit.
21. The first chroma quantization parameter is equal to the second chroma quantization parameter used in the scaling process minus the quantization parameter offset related to the bit depth. The first chroma quantization parameter is used to deblock samples along the first side of the edge of the current coding unit. The first side is called the P side. When the edge is a horizontal boundary, the P side includes samples located above the edge. When the edge is a vertical boundary, the P side includes samples located to the left of the edge. Alternatively, the first chroma quantization parameter is used to deblock samples along the second side of the edge of the current coding unit. The second side is called the Q side. When the edge is a horizontal boundary, the Q side includes samples located below the edge. When the edge is a vertical boundary, the Q side includes samples located to the right of the edge. When the value of a first variable indicating the mode of joint coding of chroma Cb residuals and chroma Cr residuals is equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the mode of joint coding of chroma Cb residuals and chroma Cr residuals used in the scaling process minus the quantization parameter offset related to the bit depth. The second chroma quantization parameter is equal to Clip3(−QpBdOffset C, 63, qP CbCr + pps_cbc r_qp_offset + slice_cbc r_qp_offset + CuQpOffset CbCr)+QpBdOffset C, the first chroma quantization parameter is equal to Clip3(−QpBdOffset C, 63, qP CbCr + pps_cbc r_qp_offset + slice_cbc r_qp_offset + CuQpOffset CbCr), qP CbCr for the P side or the Q side is the output of chroma quantization parameter table operation based on the luma chroma quantization parameter, pps_cbc r_qp_offset for the P side or the Q side is the chroma quantization parameter offset at the picture level, slice_cbc r_qp_offset for the P side or the Q side is the chroma quantization parameter offset at the slice level, CuQpOffset CbCr for the P side or the Q side is the chroma quantization parameter offset at the block level, and QpBdOffset C is the quantization parameter offset related to the bit depth. The second variable used to derive the deblocking variables β and t C is equal to (the first chroma quantization parameter on the P side+the first chroma quantization parameter on the Q side + 1)>>1. When the value of the first variable indicating the mode of the joint coding of the chroma Cb residual and the chroma Cr residual is not equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the first chroma Cb component used in the scaling process minus the quantization parameter offset related to the bit depth, or the first chroma quantization parameter is equal to the second chroma quantization parameter for the second chroma Cr component used in the scaling process minus the quantization parameter offset related to the bit depth. The second chroma quantization parameter used in the scaling process is derived based on at least chroma quantization parameter offsets at the picture level, slice level and block level. The apparatus according to claim 20. Claim 22 A non-transitory computer-readable storage medium storing instructions, wherein the instructions cause a processor to during conversion between a current coding unit of a video and the bitstream of the video, determine a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to bit depth; and perform the conversion based on the determination; wherein the scaling process includes applying quantization to at least some of the coefficients representing the current coding unit during encoding; the bitstream is in a format compliant with formatting rules that permit one or more syntax elements related to the second chroma quantization parameter to be included in the bitstream at a coding unit level or a transform unit level when the size of the current coding unit is larger than the size of a virtual pipeline data unit. A non-transitory computer-readable storage medium Claim 23 A non-transitory computer-readable storage medium storing instructions, wherein the instructions cause a processor to during conversion between a current coding unit of a video and the bitstream of the video, determine a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to bit depth; and perform the conversion based on the determination; wherein the scaling process includes applying inverse quantization to at least some of the coefficients from the bitstream during decoding A non-transitory computer-readable storage medium that follows a formatting rule that determines that when the size of the current coding unit of the bitstream is larger than the size of the virtual pipeline data unit, one or more syntax elements related to the second chroma quantization parameter are allowed to be included in the bitstream at the coding unit level or the transform unit level.
24. A method for storing a video bitstream, comprising: determining, for the current coding unit of the video, a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit, based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to the bit depth; generating the bitstream based on the determination; recording the bitstream on a non-transitory computer-readable recording medium and having wherein the scaling process comprises applying quantization to at least some of the coefficients representing the current coding unit during encoding, and the method, wherein the bitstream follows a formatting rule that determines that when the size of the current coding unit is larger than the size of the virtual pipeline data unit, one or more syntax elements related to the second chroma quantization parameter are allowed to be included in the bitstream at the coding unit level or the transform unit level.
25. A method for storing a video bitstream, comprising: determining, for the current coding unit of the video, a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit, based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset related to the bit depth; generating the bitstream based on the determination; recording the bitstream on a non-transitory computer-readable recording medium and having wherein the scaling process performing inverse quantization on at least some of the coefficients from the bitstream during decoding, wherein the bitstream complies with a format rule that permits one or more syntax elements related to the second chroma quantization parameter to be included in the bitstream at a coding unit level or a transform unit level when the size of the current coding unit is larger than the size of a virtual pipeline data unit.