Using Chroma Quantization Parameters in Video Processing

KR103020302B1Active Publication Date: 2026-09-16BYTEDANCE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
KR1020227010299
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-10-14
Filing Date
2020-10-13
Publication Date
2026-09-16
Estimated Expiration
2040-10-13

Smart Images

  • Figure R1020227010299_ABST
    Figure R1020227010299_ABST
Patent Text Reader

Abstract

An exemplary method of video processing includes the step of performing a conversion between a video containing one or more coding units and a bitstream representation of the video. The bitstream representation follows a format rule that specifies that chroma quantization parameters are included in the bitstream representation at the coding unit level or the transform unit level according to the format rule.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] This patent document relates to video coding technology, devices, and systems.

[0002] This application is based on international patent application PCT / US2020 / 055332 filed on October 13, 2020, claiming priority and benefits of international patent application PCT / CN2019 / 111115 filed on October 14, 2019. All of the foregoing patent applications are incorporated herein by reference in their entirety. Background Technology

[0003] Currently, efforts are underway to improve the performance of current video codec technologies to provide video coding and decoding methods that offer better compression ratios or allow for lower complexity or parallel implementation. Industry experts have recently proposed several new video coding tools, and testing to verify their effectiveness is currently in progress. means of solving the problem

[0004] Devices, systems, and methods related to digital video coding, particularly the management of motion vectors, are described. The described methods 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.

[0005] In one representative aspect, the disclosed technique can be used to provide a video processing method. The method comprises the step of determining the applicability of a deblocking filter process to at least some samples at the edges of a chroma block based on a joint coding mode of chroma residuals for the chroma block for a conversion between a chroma block of a video and a bitstream representation of the video. The method also comprises the step of performing the conversion based on the determining step.

[0006] In another representative aspect, the disclosed technique can be used to provide a video processing method. The method includes the step of determining chroma quantization parameters used in a deblocking filtering process applied to at least some samples at the edge of the current block based on information from a corresponding transform block of the current block for a conversion between the current block of the video and the bitstream representation of the video. The method also includes the step of performing a conversion based on the determining step.

[0007] In another representative aspect, the disclosed technique can be used to provide a video processing method. This method includes the step of 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 filtering process applied to at least some samples along the edge of the current block is based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset associated with bit depth.

[0008] In another representative aspect, the disclosed technology can be used to provide a video processing method. This method includes the step of performing a conversion between a video comprising one or more coding units and a bitstream representation of the video. The bitstream representation follows a format rule that specifies that chroma quantization parameters are included in the bitstream representation at the coding unit level or the transform unit level according to the format rule.

[0009] In another representative aspect, the disclosed technology can be used to provide a video processing method. This method includes the step of performing a conversion between a block of video and a bitstream representation of video. The bitstream representation follows a format rule that specifies whether co-coding of chroma residual modes is applicable to the block is indicated at the coding unit level of the bitstream representation.

[0010] In another representative aspect, the disclosed technology can be used to provide a video processing method. This method comprises the step of performing a conversion between a video unit and a coded representation of the video unit, wherein during the conversion, a deblocking filter is used at the boundary of the video unit such that processing by the chroma QP table is performed for individual chroma QP values ​​when the chroma quantization parameter (QP) table is used to derive the parameters of the deblocking filter.

[0011] In another representative aspect, the disclosed technique can be used to provide other video processing methods. This method includes the step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein, during the conversion, a deblocking filter is used at 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.

[0012] In another representative aspect, the disclosed technique can be used to provide other video processing methods. This method includes the step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein, during the conversion, a deblocking filter is used at the boundary of the video unit so that a chroma QP offset is used in the deblocking filter, and wherein information regarding the same luma coding unit is used in the deblocking filter and is used to derive the chroma QP offset.

[0013] In another representative aspect, the disclosed technique can be used to provide other video processing methods. This method includes the step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein, during the conversion, a deblocking filter is used at the boundary of the video unit so that a chroma QP offset is used in the deblocking filter, and a signal enabling the use of the chroma QP offset is signaled in the bitstream representation.

[0014] In another representative aspect, the disclosed technique may be used to provide other video processing methods. This method includes the step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at the boundary of the video unit such that a chroma QP offset is used in the deblocking filter, and the chroma QP offset used in the deblocking filter is the same as whether a JCCR coding method is applied at the boundary of the video unit or whether a method other than JCCR coding is applied at the boundary of the video unit.

[0015] In another representative aspect, the disclosed technique may be used to provide other video processing methods. This method comprises the step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein, during the conversion, a deblocking filter is used at the boundary of the video unit such that a chroma QP offset is used in the deblocking filter, wherein the boundary strength (BS) of the deblocking filter is calculated without comparing the reference picture and / or a plurality of motion vectors (MV) associated with the video unit at the P-side boundary with the reference picture of the video unit at the Q-side boundary.

[0016] In addition, in a representative aspect, an apparatus of a video system comprising a processor and non-transient memory having instructions is disclosed. When executed by the processor, the instructions cause the processor to implement any one or more of the disclosed methods.

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

[0018] In another representative aspect, a video encoding device comprising a processor configured to implement any one or more of the disclosed methods.

[0019] A computer program stored on a non-transient computer-readable medium, comprising program code for performing any one of the methods of solutions F1 to F15.

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

[0021] Figure 1 illustrates an example of the overall processing flow of the blocking and deblocking filter process. Figure 2 illustrates an example of a flowchart for Bs calculation. Figure 3 illustrates an example of reference information for Bs calculation at the CTU boundary. Figure 4 illustrates an example of a pixel including filter on / off determination and strong / weak filter selection. Figure 5 illustrates an example of the overall processing flow of the deblocking filter process in the VVC. Figure 6 illustrates an example of the luminance deblocking filter process in the VVC. Figure 7 illustrates an example of the chroma deblocking filter process in the VVC. Figure 8 illustrates an example of filter length determination for the sub-PU boundary. Figure 9a illustrates an example of the center position of the chroma block. Figure 9b illustrates another example of the center position of the chroma block. Figure 10 illustrates examples of P-side and Q-side blocks. Figure 11 illustrates an example of the use of decoded information of the luminance block. FIG. 12 is a block diagram of an example of a hardware platform for implementing the visual media decoding or visual media encoding technology described in this document. FIG. 13 shows a flowchart of an exemplary method for video coding. FIG. 14a shows an example of the arrangement of a CC-ALF for another loop filter (b) diamond filter. FIG. 14b shows an example of the arrangement of a CC-ALF for a diamond filter. FIG. 15 is a block diagram illustrating an exemplary video coding system. FIG. 16 is a block diagram illustrating an encoder according to some embodiments of the present disclosure. FIG. 17 is a block diagram illustrating a decoder according to some embodiments of the present disclosure. FIG. 18 is a block diagram of an exemplary video processing system in which the disclosed technology may be implemented. FIG. 19 is a flowchart representation of a video processing method according to the present technology. FIG. 20 is a flowchart representation of another method for video processing according to the present technology. FIG. 21 is a flowchart representation of another method for video processing according to the present technology. FIG. 22 is a flowchart representation of another method for video processing according to the present technology.Figure 23 is a flowchart representation of another method for video processing according to the present technology. Specific details for implementing the invention

[0022] 1. HEVC / H.265 Video Coding

[0023] Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, while ISO / IEC produced MPEG-1 and MPEG-4 Visual; the two organizations jointly produced 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 utilizes temporal prediction and transform coding. To research 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 methods have been adopted by the JVET and applied to reference picture software named the Joint Exploration Model (JEM). In April 2018, the Joint Video Expert Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to work on the VVC standard, aiming for a 50% reduction in bitrate compared to HEVC.

[0024] 2.1. HEVC Deblocking scheme

[0025] The deblocking filter process is performed for each CU in the same order as the decoding process. First, vertical edges are filtered (horizontal filtering), and then horizontal edges are filtered (vertical filtering). Filtering is applied to 8x8 block boundaries determined to be filtered for both the Luma and Chroma components. To reduce complexity, 4x4 block boundaries are not processed.

[0026] Figure 1 illustrates the overall processing flow of the deblocking filtering process. Boundaries can have three filtering states: no filtering, weak filtering, and strong filtering. Each filtering decision is determined by boundary strengths Bs and threshold values ​​β and t C It is based on.

[0027] The filtering process can include three types of boundaries: CU boundaries, TU boundaries, and PU boundaries. Since a CU boundary is always either a TU boundary or a PU boundary, the CU boundary, which is the outer edge of a CU, is always included in the filtering. When the PU shape is 2NxN (N > 4) and the RQT depth is 1, the PU boundaries between the TU boundary and each PU inside the CU in an 8x8 block grid are included in the filtering. One exception is that the boundary is not filtered when the PU boundary is inside the TU.

[0028] 2.1.1. Boundary strength calculation

[0029] Generally, boundary strength (B) reflects how strong filtering is required for the boundary. If B is large, strong filtering should be considered.

[0030] P and Q can be defined as blocks involved in filtering, where P represents a block on the left side (vertical edge case) or above (horizontal edge case) of the boundary, and Q represents a block on the right side (vertical edge case) or above (horizontal edge case) of the boundary. FIG. 2 illustrates a method in which BS values ​​are calculated based on the intra-coding mode, non-zero transform coefficients and motion information, reference picture, number of motion vectors and the existence of motion vector differences.

[0031] Bs is calculated based on 4x4 blocks but is mapped back to an 8x8 grid. The maximum of the two values ​​of Bs corresponding to 8 pixels consisting of lines of a 4x4 grid is selected as B for the boundary of the 8x8 grid.

[0032] To reduce the line buffer memory requirements, information from all second blocks (4x4 grids) on the left or top side is reused only for the CTU boundary as shown in Fig. 3.

[0033] 2.1.2. β and tC determination

[0034] Thresholds β and t, including filter on / off decision, selection of strong and weak filters, and the weak filtering process. C are P and Q blocks, QP respectively. P and QP Q It is derived based on the luminance quantization parameters of . β and t C Q used to derive is calculated as follows:

[0035] Q = ( ( QPP + QPQ + 1 ) >> 1 ).

[0036] The variable β is derived based on Q as shown in Table 1. If Bs is greater than 1, the variable t C is specified as shown in Table 1 with Clip3(0, 55, Q + 2) as input. Otherwise (if BS is less than or equal to 1), the variable t CIt is specified as shown in Table 1 using Q as input.

[0037] In input Q, threshold variables β and t C induction Q 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 β 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 7 8 t C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Q 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 β 9 10 11 12 13 14 15 16 17 18 20 22 24 26 28 30 32 34 36 t C 1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 Q 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 β 38 40 42 44 46 48 50 52 54 56 58 60 62 64 64 64 64 64 t C 5 5 6 6 7 8 9 9 10 10 11 11 12 12 13 13 14 14

[0038] 2.1.3. Filter On / Off Decision for Four Lines

[0039] Filter on / off determination is performed using four-line units. Figure 4 illustrates the pixels related to the filter on / off determination. The six pixels in the two red boxes for the first four lines are used to determine the filter on / off for the four lines. The six pixels in the two red boxes for the second four lines are used to determine the filter on / off for the second four lines.

[0040] If dp0+dq0+dp3+dq3 < β, turn on filtering for the first four lines and apply the strong / weak filter selection process. Each variable is derived as follows:

[0041] 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 |

[0042] 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 |

[0043] If the condition is not met, filtering is not performed on the first four lines. Additionally, if the condition is met, dE, dEp1, and dEp2 are derived for the weak filtering process. The variable dE is set to 1. If dp0 + dp3 < (β + ( β >> 1 )) >> 3, the variable dEp1 is set to 1. If dq0 + dq3 < (β + ( β >> 1 )) >> 3, the variable dEq1 is set to 1.

[0044] For the second four lines, make a judgment in the same way as above.

[0045] 2.1.4. Strong / weak filter selection for 4 lines

[0046] After the first four lines are determined to be filtered on in the filter on / off decision, if the following two conditions are met, a strong filter is used for filtering the first four lines. Otherwise, a weak filter is used for filtering. The relevant pixels are the same as the pixels used for the filter on / off decision as depicted in Fig. 4.

[0047] 1) 2*(dp0+dq0) < ( β >> 2 ), | p30 - p00 | + | q00 - q30 | < ( β >> 3 ) and | p00 - q00 | < ( 5* t C + 1 ) >> 1

[0048] 2) 2*(dp3+dq3) < ( β >> 2 ), | p33 - p03 | + | q03 - q33 | < ( β >> 3 ) and | p03 - q03 | < ( 5* t C + 1 ) >> 1

[0049] In the same way, if the following two conditions are met, a strong filter is used for filtering the second four lines. Otherwise, a weak filter is used for filtering.

[0050] 1) 2*(dp4+dq4) < ( β >> 2 ), | p34 - p04 | + | q04 - q34 | < ( β >> 3 ) and | p04 - q04 | < ( 5* t C + 1 ) >> 1

[0051] 2) 2*(dp7+dq7) < ( β >> 2 ), | p37 - p07 | + | q07 - q37 | < ( β >> 3 ) and | p07 - q07 | < ( 5* t C + 1 ) >> 1

[0052] 2.1.4.1. Strong filtering

[0053] For strong filtering, the filtered pixel values ​​are obtained by the following equation. It is worth noting that three pixels are modified using four pixels as inputs for each P and Q block, respectively.

[0054] p0' = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3

[0055] q0' = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3

[0056] p1' = ( p2 + p1 + p0 + q0 + 2 ) >> 2

[0057] q1' = ( p0 + q0 + q1 + q2 + 2 ) >> 2

[0058] p2' = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3

[0059] q2' = ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3

[0060] 2.1.4.2. Weak filtering

[0061] It is defined as follows.

[0062] Δ = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4

[0063] abs(Δ) is t C If less than *10,

[0064] Δ = Clip3( - t C , t C , Δ )

[0065] p0' = Clip1 Y ( p0 + Δ )

[0066] q0' = Clip1 Y ( q0 - Δ )

[0067] If dEp1 is equal to 1,

[0068] Δp = Clip3( -( tC >> 1), tC >> 1, ( ( ( p2 + p0 + 1 ) >> 1 ) - p1 + Δ ) >>1 )

[0069] p1' = Clip1 Y ( p1 + Δp )

[0070] If dEq1 is equal to 1,

[0071] Δ= Clip3 (-(tC >> 1), tC >> 1, (((q2 + q0 + 1) >> 1) - q1 - ) Δ >>1)

[0072] q1' = Clip1 Y ( q1 + Δq )

[0073] It is worth noting that for each P and Q block, three pixels are used as input, and up to two pixels are modified.

[0074] 2.1.4.3. Chroma filtering

[0075] B for chroma filtering is inherited from luminance. Chroma filtering is performed if Bs > 1 or if coded chroma coefficients exist. There are no other filtering decisions. Furthermore, only one filter is applied to chroma. The filter selection process for chroma is not used. The filtered sample values ​​p0' and q0' are derived as follows:

[0076] Δ = Clip3( -t C , t C , ( ( ( ( q0 - p0 ) << 2 ) + p1 - q1 + 4 ) >> 3 ) )

[0077] p0' = Clip1 C ( p0 + Δ )

[0078] q0' = Clip1 C ( q0 - Δ )

[0079] 2.2 VVC deblocking method

[0080] The deblocking filtering process in VTM6 is almost identical to HEVC. However, the following modifications are added.

[0081] A) Filter strength of the deblocking filter depending on the average luminance level of the reconstructed sample.

[0082] B) Deblocking tC table expansion and adaptation for 10-bit video.

[0083] C) 4x4 grid deblocking for Luma.

[0084] D) A more powerful deblocking filter for Luma.

[0085] E) A more powerful deblocking filter for chroma.

[0086] F) Deblocking filter for subblock boundaries.

[0087] G) Deblocking judgment adapted to smaller differences in motion.

[0088] Figure 5 illustrates a flowchart of the deblocking filter process in VVC for a coding unit.

[0089] 2.2.1. Filter strength based on reconstructed average luma

[0090] In HEVC, the filter strength of a deblocking filter is the average quantization parameter qP L Variables β and t derived from C It is controlled by. In VTM6, the deblocking filter is controlled by qP according to the luminance level of the reconstructed sample if the SPS flag of this method is true. L An offset is added to control the strength of the deblocking filter. The reconstructed luma level LL is derived as follows:

[0091] LL= ( ( p 0,0 + p 0,3 + q 0,0 + q 0,3 ) >> 2 ) / ( 1 << bitDepth ) (3-1)

[0092] Here, sample values ​​p for i = 0..3 and k = 0 and 3. i,k and q i,k can be derived. Then, LL is used to determine the offset qpOffset based on the threshold signaled from the SPS. Subsequently, qP is derived as follows. L Using β and t C Induces.

[0093] qP L = ( ( Qp Q + Qp P +1 ) >> 1 ) + qpOffset (3-2)

[0094] Here, Qp Q and Qp P are each sample q 0,0 and p 0,0 Represents the quantization parameters of the coding unit including. In current VVC, this method applies only to the luma deblocking process.

[0095] 2.2.2. 4x4 Deblocking Grid for Luma

[0096] HEVC uses an 8x8 deblocking grid for both luminance and chroma. In VTM6, deblocking of a 4x4 grid for luminance boundaries was introduced to handle blocking artifacts in the shape of rectangular transforms. Parallel-friendly luminance deblocking in a 4x4 grid is achieved by limiting the number of samples to be deblocked to one sample on each side of a vertical luminance boundary with a width of 4 or less on one side, or one sample on each side of a horizontal luminance boundary with a height of 4 or less on one side.

[0097] 2.2.3. Induction of boundary intensity for Luma

[0098] Detailed derivation of boundary strengths can be found in Table 2. The conditions in Table 2 are verified sequentially.

[0099] Boundary strength induction condition Y U V P and Q are BDPCM. 0 Not applicable Not applicable P or Q is an intra. 2 2 2 Transform block edge, and P or Q is CIIP. 2 2 2 It is a transform block edge and has a transform coefficient where P or Q is not zero. 1 1 1 It is a transform block edge, and P or Q is JCCR. Not applicable 1 1 P and Q are in different coding modes. 1 1 1 One or more of the following conditions are true: 1. P and Q are both IBCs, and the BV distance from x- or y-di is >= half-pel. 2. P and Q have different reference pictures* or different MV numbers. 3. P and Q both have one mv, and the MV distance from x- or y-dir is >= half-pel. 4. P has two MVs pointing to two different reference pictures, P and Q have the same reference picture in list 0, and the MV pairs in list 0 or list 1 have a distance from x- or y-dir is >= half-pel. 5. P has two MVs pointing to two different reference pictures, and P and Q have different reference pictures in list 0, and the MV of P in list 0 and the MV of Q in list 1 are at a distance of >= half-pel in x- or y-dir, or the MV of P in list 1 and the MV of Q in list 0 are at a distance of >= half-pel in x- or y-dir. 6. Both P and Q have two MVs pointing to the same reference picture, and both of the following two conditions are satisfied: o The MV of P in list 0 and the MV of Q in list 0 are at a distance of >= half-pel in x- or y-dir, or the MV of P in list 1 and the MV of Q in list 1 are at a distance of >= half-pel in x- or y-dir. o The distance between the MV of P in list 0 and the MV of Q in list 1 is greater than or equal to half-pel in x- or y-dir, or the distance between the MV of P in list 1 and the MV of Q in list 0 is greater than or equal to half-pel in x- or y-dir.*Note: The determination of whether the reference pictures used in two coding sublocks are the same or different is based solely on which picture is referenced, regardless of whether a prediction is formed using the index for reference picture list 0 or the index for the reference picture list, and also regardless of whether the index positions within the reference picture list are different. 1 Not applicable Not applicable otherwise 0 0 0

[0100] 2.2.4. A more powerful deblocking filter for Luma

[0101] The proposal uses a bilinear filter when a sample on one side of the boundary belongs to a large block. Samples belonging to a large block are defined as having width >= 32 for vertical edges and height >= 32 for horizontal edges.

[0102] The bilinear filter is as follows.

[0103] The block boundary samples pi for i=0 ~ Sp-1 and qi for j=0 ~ Sq-1 (where pi and qi follow the definition of HEVC deblocking described above) are replaced by linear interpolation as follows:

[0104]

[0105] Here, the term tcPD i and tcPD j is the position-dependent clipping described in Section 2.2.5, and term g j , f i , Middles,t , P s and Q s is given as follows:

[0106]

[0107] 2.2.5. Deblocking control for Luma

[0108] The deblocking decision process is described in this subsection.

[0109] A stronger luminance filter is used only when Condition1, Condition2, and Condition3 are all true.

[0110] Condition 1 is the "Large Block Condition." This condition detects whether P-side and Q-side samples belong to a large block represented by the variables bSidePisLargeBlk and bSideQisLargeBlk, respectively. bSidePisLargeBlk and bSideQisLargeBlk are defined as follows.

[0111] bSidePisLargeBlk = ((edge ​​type is vertical and p0belongs to CU with width >= 32) | | (edge ​​type is horizontal and p0belongs to CU with height >= 32))? TRUE: FALSE

[0112] bSideQisLargeBlk = ((edge ​​type is vertical and q0belongs to CU with width >= 32) | | (edge ​​type is horizontal and q0belongs to CU with height >= 32))? TRUE: FALSE

[0114] Based on bSidePisLargeBlk and bSideQisLargeBlk, Condition 1 is defined as follows.

[0115] Condition1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? TRUE: FALSE

[0116] Next, if Condition 1 is true, Condition 2 is checked further. First, the following variable is derived:

[0117] dp0, dp3, dq0, and dq3 are first derived as in HEVC.

[0118] (If p is greater than or equal to 32)

[0119] dp0 = ( dp0 + Abs( p 5,0 - 2 * p 4,0 + p 3,0 ) + 1 ) >> 1

[0120] dp3 = ( dp3 + Abs( p 5,3 - 2 * p 4,3 + p 3,3 ) + 1 ) >> 1

[0121] (If q is greater than or equal to 32)

[0122] dq0 = ( dq0 + Abs( q 5,0 - 2 * q 4,0 + q 3,0 ) + 1 ) >> 1

[0123] dq3 = ( dq3 + Abs( q 5,3 - 2 * q 4,3 + q 3,3 ) + 1 ) >> 1

[0124] dpq0, dpq3, dp, dq, and d are derived as in HEVC.

[0125] Then, Condition 2 is defined as follows.

[0126] Condition2 = (d < β) ? TRUE: FALSE

[0127] Here, as shown in Section 2.1.4, d=dp0+dq0+dp3+dq3.

[0128] If Condition1 and Condition2 are valid, check if there is a block using a subblock:

[0129] If(bSidePisLargeBlk)

[0130] If(mode block P == SUBBLOCKMODE)

[0131] Sp = 5

[0132] else

[0133] Sp =7

[0134] else

[0135] Sp = 3

[0136] If(bSideQisLargeBlk)

[0137] If(mode block Q == SUBBLOCKMODE)

[0138] Sq = 5

[0139] else

[0140] Sq =7

[0141] else

[0142] Sq = 3

[0143] Finally, if both Condition 1 and Condition 2 are valid, the proposed deblocking method checks Condition 3 (large block strong filter condition), which is defined as follows.

[0144] In Condition3 StrongFilterCondition, the following variables are derived:

[0145] dpq is derived as in HEVC.

[0146] SP3 = Abs(p3-p0) derived from HEVC,

[0147] (If p is greater than or equal to 32)

[0148] if(Sp==5)

[0149] sp3 = ( sp3 + Abs( p5 - p3 ) + 1) >> 1

[0150] else

[0151] sp3 = ( sp3 + Abs( p7 - p3 ) + 1) >> 1

[0152] sq3 = Abs( q0 - q3 ), derived as in HEVC

[0153] (If q is greater than or equal to 32)

[0154] If(Sq==5)

[0155] sq3 = ( sq3 + Abs( q5 - q3 ) + 1) >> 1

[0156] else

[0157] sq3 = ( sq3 + Abs( q7 - q3 ) + 1) >> 1

[0158] As in the HEVC derivation, StrongFilterCondition = (dpq is less than ( β >> 2 ), sp3 + sq3 is less than ( 3*β >> 5 ), and Abs( p0 - q0 ) is less than ( 5 * tC + 1 )>> 1 ) ) TRUE: FALSE

[0159] Figure 6 illustrates a flowchart of the luma deblocking filtering process.

[0160] 2.2.6. Powerful deblocking filter for chroma

[0161] The following powerful deblocking filters are defined for chroma:

[0162] p2' = (3*p3+2*p2+p1+p0+q0+4) >> 3

[0163] p1' = (2*p3+p2+2*p1+p0+q0+q1+4) >> 3

[0164] p0'= (p3+p2+p1+2*p0+q0+q1+q2+4) >> 3

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

[0166] 2.2.7. Deblocking control for Chroma

[0167] The chroma filter above performs deblocking on an 8x8 chroma sample grid. A chroma strong filter is used on both sides of the block boundaries. Here, the chroma filter is selected when both sides of the chroma edge are 8 (chroma sample units) or more, and the determination is satisfied by the following three conditions. The first is to determine boundary intensity as well as large blocks. The second and third are basically the same as the HEVC luminance determination, and are the on / off determination and the strong filter determination, respectively.

[0168] Figure 7 illustrates a flowchart of the chroma deblocking filtering process.

[0169] 2.2.8. Position-dependent clipping

[0170] The proposal also introduces a position-dependent clipping tcPD applied to the output samples of a luminance filtering process that includes strong, long filters that correct samples 7, 5, and 3 at the boundaries. Assuming a quantization error distribution, high quantization noise is expected, so it is proposed to increase the clipping value for samples where the deviation from the actual sample value to the reconstructed sample value is expected to be larger.

[0171] For each P or Q boundary filtered by the proposed asymmetric filter, a position-dependent threshold table is selected from the Tc7 and Tc3 tables, which are provided as additional information to the decoder according to the result of the decision-making process described in Section 2.2.

[0172] Tc7 = { 6, 5, 4, 3, 2, 1, 1};

[0173] Tc3 = { 6, 4, 2};

[0174] tcPD = (SP == 3) ? Tc3 : Tc7;

[0175] tcQD = (SQ == 3) ? Tc3 : Tc7;

[0176] For P or Q boundaries filtered by a short symmetric filter, a lower size position-dependent threshold is applied:

[0177] Tc3 = { 3, 2, 1};

[0178] After defining the threshold, the filtered p'i and q'i sample values ​​are clipped according to the tcP and tcQ clipping values:

[0179] p'' i = clip3(p' i + tcP i , p' i - tcP i , p' i );

[0180] q'' j = clip3(q' j + tcQ j , q' j - tcQ j , q' j );

[0181] Here, p' i and q' i is the filtered sample value, and p'' i and q'' j is the output sample value after clipping and tcP i tcP i is the clipping threshold derived from the VVC tc parameter, tcPD, and tcQD. The term clip3 is the clipping function as specified in VVC.

[0182] 2.2.9. Sub-block deblocking adjustment

[0183] To enable parallel-friendly deblocking using both long filters and subblock deblocking, the long filter is limited to modifying at most 5 samples on the side using subblock deblocking (affine or ATMVP) as indicated in the luma control for the long filter. Additionally, subblock deblocking is adjusted so that the subblock boundaries of an 8x8 grid near the CU or implicit TU boundary are limited to modifying at most 2 samples on each side.

[0184] The following applies to CU boundaries and unaligned subblock boundaries.

[0185] If(mode block Q == SUBBLOCKMODE && edge!=0){

[0186] if (!(implicitTU && (edge ​​== (64 / 4))))

[0187] if (edge ​​== 2 || edge == (orthogonalLength - 2) || edge == (56 / 4) || edge == (72 / 4))

[0188] Sp = Sq = 2;

[0189] else

[0190] Sp = Sq = 3;

[0191] else

[0192] Sp = Sq = bSideQisLargeBlk? 5:3

[0193] }

[0194] If an edge equal to 0 corresponds to a CU boundary, then edges equal to 2 or orthogonalLength-2 correspond to 8 samples of subblock boundaries such as CU boundaries. If implicit partitioning of TU is used, implicit TU is true. Figure 8 shows a flowchart of the decision process for TU boundaries and sub-PU boundaries.

[0195] Filtering of horizontal boundaries is restricted to Sp=3 for Luma and Sp=1 and Sq=1 for Chroma when the horizontal boundary is aligned with the CTU boundary.

[0196] 2.2.10. Deblocking decision adapted to smaller difference in motion

[0197] HEVC enables deblocking of prediction unit boundaries when the difference between 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 1 / 2 luminance samples was introduced to remove blocking artifacts occurring at boundaries between prediction units where the difference in motion vectors is small.

[0198] 2.3. Combined inter and intra prediction (CIIP)

[0199] In VTM6, when a CU is coded in merge mode, if the CU contains 6 or more luminal samples (i.e., CU width multiplied by CU height is greater than or equal to 64) and both the CU width and CU height are less than 128 luminal samples, an additional flag is signaled to indicate whether the Combined Inter / Intra Prediction (CIIP) mode is applied to the current CU. As the name suggests, CIIP prediction combines the inter prediction signal and the intra prediction signal. CIIP mode P inter The inter-prediction signal of is derived using the same inter-prediction process applied to the general merge mode; and the intra-prediction signal P intraIt is derived according to a normal intra prediction process using Planar modes. Then, the intra and inter prediction signals are combined using a weighted average, where the weight values ​​are calculated as follows based on the coding modes of the top and left surrounding blocks:

[0200] If the top neighbor is available and intra-coded, set isIntraTop to 1, otherwise set isIntraTop to 0;

[0201] If the left neighbor is available and intra-coded, set isIntraLeft to 1, otherwise set isIntraLeft to 0;

[0202] If (isIntraLeft + isIntraLeft) is equal to 2, wt is set to be equal to 3;

[0203] Otherwise, if (isIntraLeft + isIntraLeft) is equal to 1, wt is set to 2;

[0204] Otherwise, set wt to 1.

[0205] CIIP forecasting is composed as follows:

[0206]

[0207] 2.4. VTM-6.0 Chroma QP Table Design

[0208] In some embodiments, a chroma QP table is used. In some embodiments, a signaling mechanism is used for the chroma QP table, which allows the encoder to flexibly provide the opportunity to optimize the table for SDR and HDR content. Separate table signaling is supported for Cb and Cr components. The proposed mechanism signals the chroma QP table as a piecewise linear function.

[0209] 2.5. Transform Skip (TS)

[0210] As in HEVC, the residuals of a block can be coded in transform skip mode. To avoid duplication of syntax coding, the transform skip flag does not signal when the CU-level AMT flag is not 0. The block size limit for transform skip is the same as JEM4's MTS, indicating that transform skip is applicable to the CU when the block width and height are less than 32. If LFNST or MIP is enabled for the current CU, the implicit MTS transform is set to DCT2. Additionally, implicit MTS can be enabled even if MTS is enabled for an intercoded block.

[0211] In addition, for the transform skip block, the minimum allowable quantization parameter (QP) is defined as 6*(internalBitDepth - inputBitDepth) + 4.

[0212] 2.6. Joint coding of chroma residuals (JCCR)

[0213] In some embodiments, chroma residuals are co-coded. The use (enablement) 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 one or both of the chroma CBFs for the TU are 1. In the PPS and slice headers, chroma QP offset values ​​are signaled for the joint chroma residual coding mode to distinguish them from the general chroma QP offset values ​​signaled for the general chroma residual coding mode. These chroma QP offset values ​​are used to derive the chroma QP values ​​for blocks coded using the joint chroma residual coding mode. When the corresponding joint chroma coding mode (Mode 2 in Table 3) is enabled on the TU, this chroma QP offset is added to the luminance-derived chroma QP applied during the quantization and decoding of the corresponding TU. For other modes (Modes 1 and 3 in Table 3), the chroma QP is derived in the same way as the existing Cb or Cr blocks. The reconstruction process of the chroma residuals (resCb and resCr) from the transmitted transform blocks is shown in Table 3. When this mode is enabled, a single joint chroma residual block (resJointC[x][y] in Table 3) is signaled, and the residual block for Cb (resCb) and the residual block for Cr (resCr) are derived by taking into account the information of the sign values ​​tu_cbf_cb, tu_cbf_cr, and CSign specified in the slice header.

[0214] On the encoder side, the joint chroma component is derived as follows. Depending on the mode (listed in the table above), resJointC{1,2} is generated by the encoder as follows.

[0215] If the mode is equal to 2 (single residual with reconstruction Cb = C, Cr = CSign * C), the joint residual is determined according to the following.

[0216] resJointC[ x ][ y ] = ( resCb[ x ][ y ] + CSign * resCr[ x ][ y ] ) / 2.

[0217] Otherwise, if the mode is 1 (reconstruction Cb = C, Cr = (CSign * C) / 2), the joint residual is determined according to the following.

[0218] resJointC[ x ][ y ] = ( 4 * resCb[ x ][ y ] + 2 * CSign * resCr[ x ][ y ] ) / 5.

[0219] Otherwise, (mode is 3, i.e., single residual, reconstructed Cr = C, Cb = (CSign * C) / 2), the joint residual is determined according to the following.

[0220] resJointC[ x ][ y ] = ( 4 * resCr[ x ][ y ] + 2 * CSign * resCb[ x ][ y ] ) / 5.

[0221] Reconstruction of chroma residuals. The CSign value is the sign value (+1 or ―1) specified in the slice header, and resJointC [] [] is the transmitted residual. tu_cbf_cb tu_cbf_cr Reconstruction of Cb and Cr residuals mode 1 0 resCb[ x ][ y ] = resJointC[ x ][ y ] resCr[ x ][ y ] = ( CSign * resJointC[ x ][ y ] ) >> 1 1 1 1 resCb[ x ][ y ] = resJointC[ x ][ y ] resCr[ x ][ y ] = CSign * resJointC[ x ][ y ] 2 0 1 resCb[ x ][ y ] = ( CSign * resJointC[ x ][ y ] ) >> 1resCr[ x ][ y ] = resJointC[ x ][ y ] 3

[0222] Different QPs are utilized in the three modes above. In mode 2, the QP offset signaled in the PPS for JCCR-coded blocks is applied, whereas in the other two modes, it is not applied and instead the QP offset signaled in the PPS for JCCR-uncoded blocks is applied.

[0223] The corresponding specifications are as follows:

[0224] 8.7.1 Derivation process for quantization parameters

[0225] variable Qp Yis derived as follows:

[0226] Qp Y =( ( qP Y_PRED + CuQpDeltaVal + 64 + 2 * QpBdOffset Y )%( 64 + QpBdOffset Y ) ) - QpBdOffset Y (8-933)

[0227] Luma quantization parameter Qp' Y is derived as follows:

[0228] Qp' Y = Qp Y + QpBdOffset Y (8-934)

[0229] If ChromaArrayType is not 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, the following applies:

[0230] - When treeType is equal to DUAL_TREE_CHROMA, variable Qp Y Qp is the luminance quantization parameter of the luminance coding unit covering the luminance positions (xCb + cbWidth / 2, yCb + cbHeight / 2). Y It is set to be the same as.

[0231] - Variable qP Cb , qP Cr and qP CbCr It is derived as follows:

[0232] qPi Chroma = Clip3( -QpBdOffset C , 63, Qp Y ) (8-935)

[0233] qPi Cb = ChromaQpTable[ 0 ][ qPi Chroma ] (8-936)

[0234] qPi Cr= ChromaQpTable[ 1 ][ qPi Chroma ] (8-937)

[0235] qPi CbCr = ChromaQpTable[ 2 ][ qPi Chroma ] (8-938)

[0236] - Cb and Cr components, Qp' Cb and Qp' Cr , joint Cb-Cr coding Qp' CbCr The chroma quantization parameter for is derived as follows:

[0237] Qp' Cb =Clip3( -QpBdOffset C , 63, qP Cb + pps_cb_qp_offset + slice_cb_qp_offset +CuQpOffset Cb )

[0238] + QpBdOffset C (8-939)

[0239] Qp' Cr = Clip3( -QpBdOffset C , 63, qP Cr + pps_cr_qp_offset + slice_cr_qp_offset +CuQpOffset Cr )

[0240] + QpBdOffset C (8-940)

[0241] Qp' CbCr = Clip3( -QpBdOffset C , 63, qP CbCr + pps_cbcr_qp_offset + slice_cbcr_qp_offset +CuQpOffset CbCr ) + QpBdOffset C (8-941)

[0242] 8.7.3 Scaling process for transform coefficients

[0243] The input for this process is as follows:

[0244] - Luma position ( xTbY, yTbY ), specifying the top-left sample of the current luma transform block relative to the top-left luma sample of the current picture

[0245] - Variable nTbW that specifies the transform block width,

[0246] - Variable nTbH that specifies the height of the transform block,

[0247] - Variable cIdx that specifies the color component of the current block,

[0248] - The variable bitDepth that specifies the bit depth of the current color component.

[0249] The output of this process is an array d of scaled transform factors (nTbW) x(nTbH) with elements d[ x ][ y ].

[0250] The quantization parameter qP is derived as follows:

[0251] - If cIdx is 0 and transform_skip_flag[ xTbY ][ yTbY ] is 0, the following is applied:

[0252] qP = Qp' Y (8-950)

[0253] - Otherwise, if cIdx is 0 (and transform_skip_flag[ xTbY ][ yTbY ] is 1), the following applies:

[0254] qP = Max( QpPrimeTsMin, Qp' Y ) (8-951)

[0255] - Otherwise, if TucresMode [xTBy] [YTBy] is equal to 2, the following applies:

[0256] qP = Qp' CbCr (8-952)

[0257] - Otherwise, if cnt is 4, the following applies:

[0258] qP = Qp' Cb (8-953)

[0259] - Otherwise (cIdx is not 0), the following applies:

[0260] qP = Qp' Cr (8-954)

[0261] 2.7. Cross-component adaptive loop filter (CC-ALF)

[0262] FIG. 14a illustrates the arrangement of the CC-ALF for different loop filters. The CC-ALF operates by applying a linear diamond-shaped filter (Fig. 14b) to the luminance channel for each chroma component, expressed as follows.

[0263]

[0264] Here,

[0265] (x,y) is the position i of the chroma component being refined.

[0266] (x C ,y C ) is a luminance position based on (x,y).

[0267] S i is the filter support for Luma for Chroma component i.

[0268] c i (x0,y0) represents the filter coefficients.

[0269] c i (x0,y0) represents the filter coefficients. The main features of the CC-ALF process include the following:

[0270] - Luma position centered on the support area (x c ,y c ) is calculated based on the spatial scaling factor between the lumens plane and the chroma plane.

[0271] - All filter coefficients are transmitted from the APS and have an 8-bit dynamic range.

[0272] - APS can be referenced in the slice header.

[0273] - The CC-ALF coefficients used for each chroma component of the slice are also stored in a buffer corresponding to the temporal sublayer. The reuse of this set of temporal sublayer filter coefficients is facilitated by using slice-level flags.

[0274] - The application of the CC-ALF filter is controlled by a variable block size and signaled by a context coding flag received for each block of samples. Along with the CC-ALF enable flag, the block size is received at the slice level for each chroma component.

[0275] - Boundary padding for horizontal virtual boundaries uses repetition. The same type of padding as standard ALF is used for the remaining boundaries.

[0276] 3. Disadvantages of the existing implementation

[0277] DMVR and BIO do not include the original signal during motion vector refinement, which can lead to blocks being coded with inaccurate motion information. Additionally, while DMVR and BIO may use fractional motion vectors after refinement, screen video typically uses integer motion vectors; consequently, the current motion information is less accurate, resulting in degraded coding performance.

[0278] 1. There may be issues with the interaction between the chroma QP table and chroma deblocking; for example, the chroma QP table must be applied to individual QPs, but the weighted sum of QPs is not applied.

[0279] 2. The logic of the luma deblocking filtering process is complex in hardware design.

[0280] 3. The logic of boundary strength derivation is too complex for both software and hardware design.

[0281] 4. In the BS judgment process, JCCR is processed separately from the coded block to which JCCT is not applied. However, JCCR is merely a special method for coding residuals. Therefore, this design can introduce additional complexity without any clear advantage.

[0282] 5. In chroma edge determination, Qp Q and Qp P are each sample q 0,0 and p 0,0 Qp of a coding unit including a coding block including Y It is set to be identical to the value. However, in the quantization / dequantization process, the QP for a chroma sample is derived from the QP of the luminance block covering the corresponding luminance sample at the center position of the current chroma CU. When a dual tree is activated, the QP may differ due to different locations within the luminance block. Consequently, in the chroma deblocking process, an incorrect QP may be used for filter determination. This misalignment can lead to visual artifacts. Examples are shown in Figures 9a and 9b. Figure 9a illustrates the corresponding CTB partitioning for the luminance block, and Figure 9b illustrates the chroma CTB partitioning under a dual tree. CU c When determining the QP for the chroma block marked with 1, CU c The center position of 1 is derived first. Then, CU c The corresponding luminance sample at the center position of 1 is identified, and the corresponding luminance sample, i.e., CU Y The Luma QP associated with the Luma CU covering 3 is CU cIt is then used to derive the QP for 1. However, when making a filter decision for the three depicted samples (including the solid circles), the QP of the CU containing the corresponding three samples is selected. Thus, for the first, second, and third chroma samples (see Fig. 9(b)), respectively, the CU Y 2, CU Y 3, CU Y QPs of 4 are utilized. That is, chroma samples of the same CU can use different QPs for filter judgment, which can lead to incorrect judgments.

[0283] 6. Different picture-level QP offsets (i.e., pps_joint_cbcr_qp_offset) are applied to JCCR-coded blocks, which differ from the picture-level offsets for Cb / Cr (e.g., pps_cb_qp_offset and pps_cr_qp_offset) applied to non-JCCR-coded blocks. However, in the chroma deblocking filtering decision process, only offsets for non-JCCR coded blocks are utilized. Failure to consider the coded mode may result in incorrect filter judgments.

[0284] 7. TS and non-TS coded blocks use different QPs in the inverse quantization process, which can also be taken into account in the deblocking process.

[0285] 8. Different QPs are used in the scaling process (quantization / dequantization) for JCCR-coded blocks with different modes. Such a design is inconsistent.

[0286] 9. Chroma deblocking for Cb / Cr may not be resolved for parallel design.

[0287] 4. Exemplary techniques and examples

[0288] The detailed descriptions listed below should be considered as examples to illustrate general concepts. These embodiments should not be interpreted in a narrow sense. Additionally, these embodiments may be combined in any manner.

[0289] The methods described below can be applied to other decoder motion information derivation technologies in addition to the DMVR and BIO described below.

[0290] In the following example, MVM [i].x and MVM [i].y represent the horizontal and vertical components of the motion vector in the reference picture list i (i is 0 or 1) of the M (M is P or Q) side block. Abs represents an operation to calculate the absolute value of the input, and represents the logical operations AND and OR of "&&" and "||". Referring to FIG. 10, P may represent a sample on the P side, and Q may represent a sample on the Q side. The P-side and Q-side blocks may refer to the blocks indicated by dashed lines.

[0291] Regarding Chroma QP in Deblocking

[0292] 1. When a chroma QP table is used to derive parameters for controlling chroma deblocking (e.g., in a decision process for chroma block edges), a chroma QP offset can be applied after the chroma QP table is applied.

[0293] a. In one example, the chroma QP offset can be added to the value output by the chroma QP table.

[0294] b. Alternatively, the chroma QP offset may not be considered as an input to the chroma QP table.

[0295] c. In one example, the chroma QP offset may be a picture-level or other video unit-level (slice / tile / brick / subpicture) chroma quantization parameter offset (e.g., pps_cb_qp_offset, pps_cr_qp_offset in the specification).

[0296] 2. QP clipping may not be applied to the inputs of the chroma QP table.

[0297] 3. It is suggested that the deblocking process for chroma components can be based on chroma QPs mapped to each side (by the chroma QP table).

[0298] a. In one example, it is suggested that deblocking parameters for chroma (e.g., β and tC) can be based on QPs derived from the chroma QPs of each side.

[0299] b. In one example, the chroma deblocking parameter may depend on a chroma QP table value with QpP as the table index, where QpP is the P-side chroma QP value.

[0300] c. In one example, the chroma deblocking parameter may depend on a chroma QP table value with QpQ as the table index, where QpQ is the lumina QP value on the Q side.

[0301] 4. We propose that the deblocking process for chroma components can be based on QPs applied to quantization / de-quantization for chroma blocks.

[0302] a. In one example, the QP for the deblocking process can be the same as the QP in inverse quantization.

[0303] 5. It is proposed to consider picture / slice / tile / brick / subpicture level quantization parameter offsets used in different coding methods in the deblocking filter determination process.

[0304] a. In one example, the selection of picture / slice / tile / brick / subpicture level quantization parameter offsets for filter determination (e.g., chroma edge determination in a deblocking filtering process) may depend on the coded method for each side.

[0305] b. In one example, a filtering process that requires the use of quantization parameters for a chroma block (e.g., a chroma edge determination process) may vary depending on whether the block uses JCCR.

[0306] i. Alternatively, the picture / slice-level QP offset applied to the JCCR-coded block (e.g., pps_joint_cbcr_qp_offset) may also be considered in the deblocking filtering process.

[0307] ii. In one example, cQpPicOffset used to determine Tc and β settings may be set to pps_joint_cbcr_qp_offset instead of pps_cb_qp_offset or pps_cr_qp_offset under certain conditions.

[0308] 1. In one example, one of the blocks on the P or Q side uses JCCR.

[0309] 2. In one example, this is the case where both blocks on the P or Q side use JCCR.

[0310] iii. Alternatively, the filtering process may also depend on the mode of JCCR (e.g., whether the mode is 2).

[0311] 6. A chroma filtering process that needs to access the decoded information of a luminance block (e.g., a chroma edge determination process) can utilize information associated with the same luminance coding block that is used to derive the chroma QP in the inverse quantization / quantization process.

[0312] a. In one example, a chroma filtering process (e.g., a chroma edge determination process) that needs to utilize quantization parameters for a luminance block may utilize a luminance coding unit that covers the corresponding luminance sample at the center position of the current chroma CU.

[0313] b. Examples are illustrated in FIGS. 9a and 9b, where, CU Y The decoded information of 3 can be used for filtering judgment of the three chroma samples (1st, 2nd, and 3rd) of Fig. 9b.

[0314] 7. The chroma filtering process (e.g., chroma edge determination process) may depend on quantization parameters applied to the scaling process of the chroma block (e.g., quantization / dequantization).

[0315] a. In one example, the QP used to derive β and Tc may depend on the QP applied to the scaling process of the chroma block.

[0316] b. Alternatively, the QP used in the scaling process of the chroma block may also have taken into account the chroma CU level QP offset.

[0317] 8. Whether calling the above bullet depends on the sample to be filtered lies in the P or Q side block.

[0318] a. For example, whether to use information from a luminance coding block containing a luminance sample corresponding to the current chroma sample, or information from a luminance coding block containing a luminance sample corresponding to the center position of the chroma coding block containing the current chroma sample, may vary depending on the block position.

[0319] i. In one example, if the current chroma sample is in a block on the Q side, the QP information of the luminance coding block covering the luminance sample corresponding to the center position of the chroma coding block covering the current chroma sample may be used.

[0320] ii. In one example, if the current chroma sample is in a block on the P side, the QP information of the luminance coding block covering the corresponding luminance sample of the chroma sample may be used.

[0321] 9. The chroma QP used for deblocking may rely on information from the corresponding transform block.

[0322] 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.

[0323] i. In one example, the chroma QP for deblocking on the P side may depend on whether it is coded as a JCCR with a transform block applied on the P side.

[0324] 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 joint_cb_cr mode and whether the mode of JCCR is the same as 2.

[0325] b. In one example, the chroma QP for deblocking on the Q side may depend on the mode of the transform block on the Q side.

[0326] i. In one example, the chroma QP for deblocking on the Q-side may depend on whether it is coded as a JCCR with the Q-side transform block applied.

[0327] ii. In one example, the chroma QP for deblocking on the Q side is coded with a JCCR with a transform block applied on the Q side and may depend on whether the mode of the JCCR is the same as 2.

[0328] 10. The signaling of the chroma QP can be a coding unit.

[0329] a. In one example, if the coding unit size is larger than the maximum transform block size, i.e., maxTB, the chroma QP can be signaled at the CU level. Alternatively, it can be signaled at the TU level.

[0330] b. In one example, if the coding unit size is larger than the VPDU size, the chroma QP can be signaled at the CU level. Alternatively, it can be signaled at the TU level.

[0331] 11. Whether a block is in joint_cb_cr mode can be indicated at the coding unit level.

[0332] a. In one example, whether a transform block is in joint_cb_cr mode can inherit information from the coding unit containing the transform block.

[0333] 12. The chroma QP used for deblocking may vary depending on the value obtained by subtracting the QP offset due to bit depth from the chroma QP used for the scaling process.

[0334] a. In one example, the chroma QP used for deblocking on the P side is the JCCR chroma QP used for the scaling process, i.e., Qp' CbCr In this, when TuCResMode[ xTb ][ yTb ] is equal to 2, it is set to the value minus QpBdOffsetC, where (xTb, yTb) is the first sample on the P side, i.e., p 0,0 Represents transform blocking including

[0335] b. In one example, the chroma QP used for deblocking on the P side is the Cb chroma QP used for the scaling process, i.e., Qp' CbIn this, when TuCResMode[ xTb ][ yTb ] is equal to 2, it is set to the value minus QpBdOffsetC, where (xTb, yTb) is the first sample on the P side, i.e., p 0,0 Represents transform blocking including

[0336] c. In one example, the chroma QP used for deblocking on the P side is the Cr chroma QP used for the scaling process, i.e., Qp' Cr In this, when TuCResMode[ xTb ][ yTb ] is equal to 2, it is set to the value minus QpBdOffsetC, where (xTb, yTb) is the first sample on the P side, i.e., p 0,0 Represents transform blocking including

[0337] d. In one example, the chroma QP used for deblocking on the Q side is the JCCR chroma QP used for the scaling process, i.e., Qp' CbCr In this, when TuCResMode[ xTb ][ yTb ] is equal to 2, it is set to the value minus QpBdOffsetC, where (xTb, yTb) is the last sample on the Q side, i.e., p 0,0 Represents transform blocking including

[0338] e. In one example, the chroma QP used for deblocking on the Q side is set to be equal to the value obtained by subtracting QpBdOffsetC from the Cb chroma QP used for the scaling process, i.e., Qp'Cb, when TuCResMode[ xTb ][ yTb ] is equal to 2, where (xTb, yTb) represents transform blocking including the last sample on the Q side, i.e., q0,0.

[0339] 13. In one example, the chroma QP used for deblocking on the Q side is set to be equal to the value obtained by subtracting QpBdOffsetC from the Cr chroma QP used for the scaling process, i.e., Qp'Cr, when TuCResMode[ xTb ][ yTb ] is equal to 2, where (xTb, yTb) represents transform blocking including the last sample on the Q side, i.e., q0,0.

[0340] Regarding QP settings

[0341] 14. It is suggested to signal an indication to enable block-level chroma QP offset (e.g., slice_cu_chroma_qp_offset_enabled_flag) at the slice / tile / brick / subpicture level.

[0342] a. Alternatively, the signaling of such an indication can be signaled conditionally.

[0343] i. In one example, it can be signaled under the condition of the JCCR enable flag.

[0344] ii. In one example, it can be signaled at the picture level under the condition of the block level chroma QP offset enable flag.

[0345] iii. Alternatively, such an indication may be induced instead.

[0346] b. In one example, slice_cu_chroma_qp_offset_enabled_flag is true for the PPS flag of the chroma QP offset (e.g., slice_cu_chroma_qp_offset_enabled_flag).

[0347] c. In one example, slice_cu_chroma_qp_offset_enabled_flag is the PPS flag of the chroma QP offset (e.g., slice_cu_chroma_qp_offset_enabled_flag) is false.

[0348] d. In one example, whether to use a chroma QP offset for a block may be based on a flag for the chroma QP offset at the PPS level and / or slice level.

[0349] 15. The same QP derivation method is used in the scaling process (quantization / dequantization) for JCCR coding blocks of different modes.

[0350] a. In one example, for a JCCR with modes 1 and 3, the QP depends on the QP offset signaled at the picture / slice level (e.g., pps_cbcr_qp_offset, slice_cbcr_qp_offset).

[0351] Filtering procedure

[0352] 16. Deblocking for all color components except the first color component may follow the deblocking process for the first color component.

[0353] a. In one example, if the color format is 4:4:4, the deblocking process for the second and third components may follow the deblocking process for the first component.

[0354] b. In one example, if the color format in the RGB color space is 4:4:4, the deblocking process for the second and third components may follow the deblocking process for the first component.

[0355] c. In one example, if the color format is 4:2:2, the vertical deblocking process for the second and third components may follow the vertical deblocking process for the first component.

[0356] d. In the above example, the deblocking process may refer to the deblocking determination process and / or the deblocking filtering process.

[0357] 17. The method of calculating the gradient used in the deblocking filter process may vary depending on the coded mode information and / or quantization parameters.

[0358] a. In one example, the gradient calculation can only consider the gradient of the side where the samples on that side are not losslessly coded.

[0359] b. In one example, if both sides are lossless or nearly lossless coded (e.g., quantization parameters equal to 4), the gradient can be directly set to 0.

[0360] i. Alternatively, if both sides are lossless or nearly lossless coded (e.g., quantization parameter equal to 4), the boundary strength (e.g., BS) can be set to 0.

[0361] c. In one example, where samples on the P side are lossless coded and samples on the Q side are lossy coded, the gradient used for the deblocking on / off decision and / or the strong filter on / off decision may include only the gradient of the samples on the Q side and vice versa.

[0362] i. Alternatively, the gradient of one side can also be scaled to N.

[0363] 1. N is an integer (e.g., 2) and may vary depending on the following.

[0364] a. Video content (e.g., screen content or natural content)

[0365] b. Messages signaled from DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / LCU (Maximum Coding Unit) / CU (Coding Unit) / LCU Row / LCU Group / TU / PU Block / Messages signaled from Video Coding Unit

[0366] c. Location of CU / PU / TU / Block / Video Coding Units

[0367] d. Coded mode of the block containing samples along the edge

[0368] e. Transform matrix applied to the block containing the sample along the edge

[0369] f. Block dimensions / block shape of the current block and / or neighboring blocks

[0370] g. Color format indication (e.g., 4:2:0, 4:4:4, RGB, or YUV)

[0371] h. Coding tree structure (e.g., double tree or single tree)

[0372] i. viii. Slice / Tile Group Type and / or Picture Type

[0373] j. Color component (e.g., may be applied only to Cb or Cr)

[0374] k. Temporal hierarchy ID

[0375] l. Profile / Level / Hierarchy of Standards

[0376] m. Alternatively, N can be signaled to the decoder.

[0377] Regarding the derivation of boundary strength

[0378] 18. It is proposed to treat JCCR-coded blocks as non-JCCR-coded blocks in the boundary strength determination process.

[0379] a. In one example, the determination of the boundary strength (BS) may be independent of the verification of the use of JCCR for two blocks on the P and Q sides.

[0380] b. In one example, the boundary strength (BS) for a block can be determined regardless of whether the block is coded as JCCR.

[0381] 19. It is proposed to derive the boundary strength (BS) without comparing the number of reference pictures and / or MVs associated with the block on the P side with the reference pictures of the block on the Q side.

[0382] a. In one example, the deblocking filter can be disabled even if the two blocks have different reference pictures.

[0383] b. In one example, the deblocking filter may be disabled even if two blocks have different numbers of MVs (e.g., one is single-predicted and the other is double-predicted).

[0384] c. In one example, the value of BS can be set to 1 when the difference in motion vectors for one or all reference picture lists between the blocks on the P side and the Q side is greater than or equal to the threshold Th.

[0385] i. Alternatively, the value of BS may also be set to 0 when the difference in motion vectors for one or all reference picture lists between the blocks on the P side and the Q side is less than or equal to the threshold Th.

[0386] d. In one example, the difference between the motion vectors of two blocks greater than the threshold Th is ( 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 It can be defined as ) > Th).

[0387] ii. Alternatively, the difference between the motion vectors of two blocks greater than the threshold Th is ( 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 It can be defined as ) > Th).

[0388] iii. Alternatively, the difference in motion vectors between two blocks greater than the threshold Th can 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).

[0389] iv. Alternatively, the difference in motion vectors between two blocks greater than the threshold Th can 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).

[0390] e. In one example, a block that has no motion vector in a given list may be treated as having zero motion vector in that list.

[0391] f. In the example above, Th is an integer (e.g., 4, 8, or 16).

[0392] g. In the above example, Th may vary depending on the following.

[0393] v. Video content (e.g., screen content or natural content)

[0394] vi. DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / LCU (Maximum Coding Unit) / CU (Coding Unit) / LCU Row / Group of LCU / TU / PU Block / Messages Signaled from Video Coding Units

[0395] vii. Location of CU / PU / TU / Block / Video Coding Unit

[0396] viii. Coded mode of a block containing samples along the edge

[0397] ix. Transform matrix applied to the block containing samples along the edges

[0398] x. Block dimension of the current block and / or neighboring blocks

[0399] xi. Color format display (e.g., 4:2:0, 4:4:4, RGB, or YUV)

[0400] xii. Coding tree structure (e.g., double tree or single tree)

[0401] xiii. Slice / Tile Group Types and / or Picture Types

[0402] xiv. Color Component (e.g., may be applied only to Cb or Cr)

[0403] xv. Temporal hierarchy ID

[0404] xvi. Standard Profile / Level / Layers

[0405] xvii. Alternatively, Th can be signaled to the decoder.

[0406] h. The above example can be applied under specific conditions.

[0407] xviii. In one example, the condition is that blkP and blkQ are not coded in intra mode.

[0408] xix. In one example, the condition is blkP and blkQ has a coefficient of 0 for the luminance component.

[0409] xx. In one example, the condition is that blkP and blkQ are not coded in CIIP mode.

[0410] xxi. In one example, the condition is that blkP and blkQ are coded in the same prediction mode (e.g., IBC or Inter).

[0411] Regarding the Luma Deblocking Filtering Process

[0412] 20. Deblocking can use different QPs for TS-coded blocks and non-TS-coded blocks.

[0413] a. In one example, a QP for TS can be used in a TS-coded block, whereas a QP for non-TS can be used in a non-TS-coded block.

[0414] 21. A luminance filtering process (e.g., a luminance edge determination process) may depend on quantization parameters applied to the scaling process of a luminance block.

[0415] a. In one example, the QP used to derive beta and Tc may depend on the clipping range of the transform skip, as indicated by QpPrimeTsMin, for example.

[0416] 22. It is proposed to use the same gradient calculation for large block boundaries and small block boundaries.

[0417] a. In one example, the deblocking filter on / off decision described in Section 2.1.4 may also be applied to large block boundaries.

[0418] i. In one example, the threshold of judgment beta It can be modified for large block boundaries.

[0419] 1. In one example, beta It can depend on the quantization parameter.

[0420] 2. In one example, used for determining whether to turn the deblocking filter on / off for large block boundaries beta is for smaller block boundaries beta It can be smaller.

[0421] a. Alternatively, in one example, used for determining whether to turn the deblocking filter on / off for large block boundaries beta is for small block boundaries beta It can be bigger.

[0422] b. Alternatively, in one example, used for determining whether to turn the deblocking filter on / off for large block boundaries beta is for smaller block boundaries beta It can be the same as.

[0423] 3. In one example, beta is an integer and can be based on the following.

[0424] a. Video content (e.g., screen content or natural content)

[0425] b. Messages signaled from DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / LCU (Maximum Coding Unit) / CU (Coding Unit) / LCU Row / LCU Group / TU / PU Block / Messages signaled from Video Coding Unit

[0426] c. Location of CU / PU / TU / Block / Video Coding Units

[0427] d. Coded mode of the block containing samples along the edge

[0428] e. Transform matrix applied to the block containing the sample along the edge

[0429] f. Block dimensions of the current block and / or neighboring blocks

[0430] g. iii. Block shape of the current block and / or adjacent blocks

[0431] h. Display color format (e.g., 4:2:0, 4:4:4, RGB, or YUV)

[0432] i. Coding tree structure (e.g., double tree or single tree)

[0433] j. viii. Slice / Tile Group Types and / or Picture Types

[0434] k. Color component (e.g., may be applied only to Cb or Cr)

[0435] l. Temporal Hierarchy ID

[0436] m. Profile / Level / Hierarchy of Standards

[0437] n. Alternatively, beta It can be signaled to the decoder.

[0438] Regarding the scaling matrix (inverse quantization matrix)

[0439] 23. The value for a specific position of the quantization matrix can be set to a constant value.

[0440] a. In one example, the location may be the location (x, y), where x and y are two integer variables (e.g., x = y = 0) and (x, y) is the coordinate for TU / TB / PU / PB / CU / CB.

[0441] i. In one example, the location can be the location of the DC.

[0442] b. In one example, the constant value can be 16.

[0443] c. In one example, signaling of matrix values ​​may not be utilized for these locations.

[0444] 24. A constraint may be set that the average / weighted average of some positions of the quantization matrix may be constant.

[0445] a. In one example, the deblocking process can depend on a constant value.

[0446] b. In one example, constant values ​​can be displayed in the DPS / VPS / SPS / PPS / Slice / Picture / Tile / Brick headers.

[0447] 25. One or more indications may be signaled in the picture header to indicate the scaling matrix to be selected in the picture associated with the picture header.

[0448] Cross-Component Adaptive Loop Filter (CCALF) related

[0449] 26. CCLF can be applied before some loop filtering processes in the decoder.

[0450] a. In one example, CCLF can be applied in the decoder before the deblocking process.

[0451] b. In one example, CCLF can be applied before SAO in the decoder.

[0452] c. In one example, CCLF can be applied before ALF in the decoder.

[0453] d. Alternatively, the order of different filters (e.g., CCLF, ALF, SAO, deblocking filter) may not be fixed.

[0454] i. In one example, the call to CCLAF may be before the filtering process for one video unit or after the filtering process for another video unit.

[0455] ii. In one example, the video unit may be a CTU / CTB / slice / tile / brick / picture / sequence.

[0456] e. Alternatively, the indication of the order of different filters (e.g., CCALF, ALF, SAO, deblocking filter) can be signaled or induced on the fly.

[0457] i. Alternatively, the indication of a CCLF call can be signaled or induced on the fly.

[0458] f. Explicit (e.g., signaling from the encoder to the decoder) or implicit (e.g., derived from both the encoder and the decoder) indications for how to control CCALF may be separated for other color components (e.g., Cb and Cr).

[0459] g. Whether and / or the method of applying CCALF is a color format (e.g., RGB and YCbCr) and / or a color sampling format (e.g., 4:2:0, 4:2:2, and 4:4:4) and / or a color downsampling position or phase)

[0460] Regarding the Chroma QP Offset List

[0461] 27. The signaling and / or selection of the chroma QP offset list may vary depending on the coded prediction mode / picture type / slice or tile or brick type.

[0462] h. Chroma QP offset lists, e.g., cb_qp_offset_list[ i ], cr_qp_offset_list[ i ] and joint_cbcr_qp_offset_list[ i ], may vary depending on the coding mode.

[0463] i. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in intra mode.

[0464] j. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in inter mode.

[0465] k. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in palette mode.

[0466] l. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in IBC mode.

[0467] m. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in transform skip mode.

[0468] n. 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.

[0469] o. 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 lossless mode.

[0470] Regarding Chroma Deblocking at CTU Boundaries

[0471] 28. The method of selecting the QP to be utilized in the deblocking filter process (e.g., utilizing the corresponding luminance or chroma inverse quantization QP) may vary depending on the position of the sample relative to the CTU / CTB / VPDU boundary.

[0472] 29. The method of selecting the QP to be utilized in the deblocking filter process (e.g., utilizing the corresponding luminance or chroma dequantization QP) may vary depending 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).

[0473] 30. Deblocking for the edges of the CTU boundary can be based on the corresponding block's luma QP.

[0474] p. In one example, for a horizontal edge at the CTU boundary, deblocking can be based on the luminance QP of the corresponding block.

[0475] i. In one example, deblocking can be based on the luma QP of the corresponding block on the P side.

[0476] ii. In one example, deblocking can be based on the corresponding block's luma QP on the Q side.

[0477] q. In one example, for a vertical edge at a CTU boundary, deblocking can be based on the luminance QP of the corresponding block.

[0478] i. In one example, deblocking can be based on the luma QP of the corresponding block on the P side.

[0479] ii. In one example, deblocking can be based on the corresponding block's luma QP on the Q side.

[0480] r. In one example, for edges at the CTU boundary, deblocking can be based on the luminance QP on the P side and the chroma QP on the Q side.

[0481] s. In one example, for edges at the CTU boundary, deblocking can be based on the lumina QP on the Q side and the chroma QP on the P side.

[0482] t. In this bullet point, "CTU boundary" may refer to a specific CTU boundary, such as an upper CTU boundary or a lower CTU boundary.

[0483] 31. For horizontal edges at the CTU boundary, deblocking can be based on a function of chroma QP on the P side.

[0484] u. In one example, deblocking can be based on the averaging function of the chroma QP on the P side.

[0485] i. In one example, the function can be based on the average of the chroma QPs for each of the 8 luminance samples.

[0486] ii. In one example, the function can be based on the average of the chroma QPs for each of the 16 luminar samples.

[0487] iii. In one example, the function can be based on the average of the chroma QPs for each of the three lumina samples.

[0488] iv. In one example, the function can be based on the average of the chroma QPs for each of the 64 luminar samples.

[0489] v. In one example, the function can be based on the average of the chroma QPs for each CTU.

[0490] v. In one example, deblocking can be based on the maximum function of the chroma QP on the P side.

[0491] i. In one example, the function can be based on the maximum value of the chroma QP for each of the 8 luminance samples.

[0492] ii. In one example, the function can be based on the maximum value of the chroma QP for each of the 16 luminance samples.

[0493] iii. In one example, the function can be based on the maximum value of the chroma QP for each of the three luminance samples.

[0494] iv. In one example, the function can be based on the maximum value of the chroma QP for each of the 64 luminance samples.

[0495] v. In one example, the function can be based on the maximum value of the chroma QP for each CTU.

[0496] w. In one example, deblocking can be based on the minimum function of the chroma QP on the P side.

[0497] i. In one example, the function can be based on the minimum value of the chroma QP for each of the 8 luminance samples.

[0498] ii. In one example, the function can be based on the minimum value of the chroma QP for each of the 16 luminance samples.

[0499] iii. In one example, the function can be based on the minimum value of the chroma QP for each of the three luminance samples.

[0500] iv. In one example, the function can be based on the minimum value of the chroma QP for each of the 64 luminance samples.

[0501] v. In one example, the function can be based on the minimum value of the chroma QP for each CTU.

[0502] x. In one example, deblocking can be based on the subsampling function of the chroma QP on the P side.

[0503] i. In one example, the function can be based on the chroma QP of the k-th chroma sample for each of the 8 lumina samples.

[0504] 1. In one example, the k-th sample can be the first sample.

[0505] 2. In one example, the k-th sample can be the last sample.

[0506] 3. In one example, the k-th sample can be the third sample.

[0507] 4. In one example, the k-th sample can be the fourth sample.

[0508] ii. In one example, the function can be based on the chroma QP of the k-th chroma sample for each of the 16 luminance samples.

[0509] 1. In one example, the k-th sample can be the first sample.

[0510] 2. In one example, the k-th sample can be the last sample.

[0511] 3. In one example, the k-th sample can be the 7th sample.

[0512] 4. In one example, the k-th sample can be the 8th sample.

[0513] iii. In one example, the function can be based on the chroma QP of the k-th chroma sample for each of the three two chroma samples.

[0514] 1. In one example, the k-th sample can be the first sample.

[0515] 2. In one example, the k-th sample can be the last sample.

[0516] 3. In one example, the k-th sample can be the 15th sample.

[0517] 4. In one example, the k-th sample can be the 16th sample.

[0518] iv. In one example, the function can be based on the chroma QP of the k-th chroma sample for each of the 64 luminance samples.

[0519] 1. In one example, the k-th sample can be the first sample.

[0520] 2. In one example, the k-th sample can be the last sample.

[0521] 3. In one example, the k-th sample could be the 31st sample.

[0522] 4. In one example, the k-th sample could be the 32nd sample.

[0523] v. In one example, the function can be based on the chroma QP of the k-th chroma sample for each CTU.

[0524] y. Alternatively, the above items can be applied to the chroma QP on the Q-side for the deblocking process.

[0525] 32. There may be a constraint that the QP for a chroma component is equal to a chroma row segment of length 4*m starting at (4*m*x, 2y) for the top-left of the picture, where x and y are non-negative integers; and m is a positive integer.

[0526] z. In one example, m can be equal to 1.

[0527] aa. In one example, the width of the quantization group for the chroma component must not be less than 4*m.

[0528] 33. There may be a constraint that the QP for a chroma component can be the same for a chroma column segment of length 4*n starting at (2*x, 4*n*y) for the top-left of the picture, where x and y are non-negative integers; and n is a positive integer.

[0529] bb. In one example, n can be equal to 1.

[0530] cc. In one example, the height of the quantization group for the chroma component must not be less than 4*n.

[0531] Regarding the Luma Deblocking Filtering Process

[0532] 34. A first syntax element controlling the use of coding tool X may be signaled in the first video unit (e.g., picture header) according to a second syntax element signaled in the second video unit (e.g., SPS or PPS, or VPS).

[0533] a. In one example, the first syntax element is signaled only when the second syntax element indicates that coding tool X is activated.

[0534] b. In one example, X is Bi-Direction Optical Flow (BDOF).

[0535] c. In one example, X is the Prediction Refinement Optical Flow (PROF).

[0536] d. In one example, X is decoder-side motion vector refinement (DMVR).

[0537] e. In one example, the signaling of the use of coding tool X may be under the condition check of a slice type (e.g., P or B slice; non-I slice).

[0538] Regarding the Luma Deblocking Filtering Process

[0539] 35. The deblocking filter decision process for two chroma blocks can be integrated so that it is called only once, and the decision is applied to two chroma blocks.

[0540] b. In one example, the decision on whether to perform a deblocking filter may be the same for the Cb and Cr components.

[0541] c. In one example, if it is determined that a deblocking filter is applied, the determination of whether to perform a stronger deblocking filter may be the same for the Cb and Cr components.

[0542] d. In one example, as described in Section 2.2.7, the deblocking condition and the strong filter on / off condition may be checked only once. However, it may be modified to check the information of both chroma components.

[0543] i. In one example, the average of the gradients of the Cb and Cr components can be used in the above determination for both the Cb and Cr components.

[0544] ii. In one example, a stronger chroma filter can be performed only when the strong filter condition is satisfied for both Cb and Cr components.

[0545] 1. Alternatively, in one example, a chroma weak filter may be performed only when the strong filter condition does not satisfy at least one chroma component.

[0546] 8.5.6.3.1 General

[0547] 36. The method proposed above can be applied under specific conditions.

[0548] a. In one example, the condition is that the color format is 4:2:0 and / or 4:2:2.

[0549] i. Alternatively, for a 4:4:4 color format, the method of applying a deblocking filter to the two color chroma components can follow the current design.

[0550] b. Messages signaled from DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / LCU (Maximum Coding Unit) / CU (Coding Unit) / LCU Row / LCU Group / TU / PU Block / Messages signaled from Video Coding Unit

[0551] c. In one example, the usage of the above method may vary depending on the following.

[0552] ii. Video content (e.g., screen content or natural content)

[0553] iii. Messages signaled from DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / LCU (Maximum Coding Unit) / CU (Coding Unit) / LCU Row / LCU Group / TU / PU Block / Video Coding Unit

[0554] iv. Location of CU / PU / TU / Block / Video Coding Units

[0555] a. In one example, to filter samples along the CTU / CTB boundary (e.g., from the first K (e.g., K=4 / 8) to the top / left / right / bottom boundary), the existing design may be applied. For other samples, the proposed method (e.g., item 3 / 4) may be applied instead.

[0556] v. Coded mode of a block containing samples along the edge

[0557] vi. Trans matrix applied to the block containing samples along the edge

[0558] vii. Block dimensions of the current block and / or neighboring blocks

[0559] viii. Block shape of the current block and / or adjacent blocks

[0560] ix. Color format display (e.g., 4:2:0, 4:4:4, RGB, or YUV)

[0561] x. Coding tree structure (e.g., double tree or single tree)

[0562] xi. Slice / Tile Group Type and / or Picture Type

[0563] xii. Color component (e.g., may be applied only to Cb or Cr)

[0564] xiii. Temporal Hierarchy ID

[0565] xiv. Profiles / Levels / Layers of Standards

[0566] xv. Alternatively, m and / or n can be signaled to the decoder.

[0567] 5. Additional Examples

[0568] Newly added text is displayed in underlined bold italics. Deleted text is displayed as [[]].

[0569] 5.1. Example #1 for Chroma QP in Deblocking

[0570] 5.1. Example #1 for Chroma QP in Deblocking

[0571] 8.8.3.6 Edge filtering process for one direction

[0572] ...

[0573] Otherwise (cIdx is not 0), the filtering process for edges in the chroma coding block of the current coding unit specified by cIdx consists of the following ordered steps:

[0574] 1. The variable cQpPicOffset is derived as follows:

[0575] cQpPicOffset = cIdx = = 1 ? pps_cb_qp_offset : pps_cr_qp_offset (8-1065)

[0576] 8.8.3.6.3 Determination Process for Chroma Block Edges

[0577] ...

[0578] [[Variable Qp Q and Qp P are each sample q 0,0 and p 0,0 Qp of a coding unit including a coding block including Y It is set to be the same as the value.

[0579] variable Qp C is derived as follows:

[0580] [[qPi = Clip3( 0, 63, ( ( Qp Q + Qp P + 1 ) >> 1 ) + cQpPicOffset ) (8-1132)

[0581] Qp C = ChromaQpTable[cIdx - 1 ][qPi] (8-1133)]]

[0582] qPi = ( Qp Q + Qp P + 1 ) >> 1 (8-1132)

[0583] Qp C = ChromaQpTable[cIdx - 1][qPi] + cQpPicOffset (8-1133)

[0584] Note - The variable cQpPicOffset provides adjustments to the pps_cb_qp_offset or pps_cr_qp_offset values ​​depending on whether the filtered chroma component is a Cb component or a Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process provides adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset and (if cu_chroma_qp_offset_enabled_flag is 1) CuQpOffset Cb , CuQpOffset Cr , or CuQpOffset CbCr It does not include adjustments to the value of.

[0585] The value of the variable β' is determined as specified in Table 818 based on the quantization parameter Q derived as follows:

[0586] Q = Clip3( 0, 63, Qp C + ( slice_beta_offset_div2 << 1 ) ) (8-1134)

[0587] Here, slice_beta_offset_div2 is sample q 0,0 It is the value of the syntax element slice_beta_offset_div2 for the slice containing.

[0588] The variable β is derived as follows:

[0589] β = β' * ( 1 << ( BitDepth C - 8 ) ) (8-1135)

[0590] variable t C The value of ' is determined as specified in Table 818 based on the chroma quantization parameter Q derived as follows:

[0591] Q = Clip3( 0, 65, Qp C + 2 * ( bS - 1 ) + ( slice_tc_offset_div2 << 1 ) ) (8-1136)

[0592] Here, slice_tc_offset_div2 is the value of the syntax element slice_tc_offset_div2 for the slice containing sample q0,0.

[0593] variable t C is derived as follows:

[0594] t C = ( BitDepth C < 10 ) ? ( t C ' + 2 ) >> ( 10 - BitDepth C ) : t C ' * ( 1 << ( BitDepth C - 8 ) ) (8-1137)

[0595] 5.2. Example #2 for Boundary Strength Induction

[0596] 8.8.3.5 Derivation Process of Boundary Filtering Intensity

[0597] The input for this process is as follows:

[0598] - Picture Sample Array recPicture,

[0599] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0600] - Variable sbWidth that specifies the width of the current coding subblock,

[0601] - Variable sbHeight that specifies the height of the current coding subblock,

[0602] - A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0603] - Variable cIdx that specifies the color component of the current block.

[0604] - 2D (nCbW)x(nCbH) array edgeFlags.

[0605] The output of this process is a 2D (nCbW)x(nCbH) array bS that specifies the boundary filtering strength.

[0606] ...

[0607] xD for i = 0..xN i and yD with j = 0..yN j In the case of, the following applies:

[0608] - If edgeFlags[ xDi ][ yDj ] is equal to 0, the variable bS[ xDi ][ yDj ] is set to equal to 0.

[0609] - Otherwise, the following applies:

[0610] ...

[0611] - The variable bS[ xDi ][ yDj ] is derived as follows:

[0612] - If cIdx is 0 and samples p0 and q0 are both in a coding block where intra_bdpcm_flag is 1, bS[ xDi ][ yDj ] is set to 0.

[0613] - Otherwise, if sample p0 or q0 is in a coding block of a coding unit coded in intra-prediction mode, bS[ xDi ][ yDj ] is set to equal 2.

[0614] - Otherwise, if the block edge is also a transform block edge and sample p0 or q0 is in a coding block where ciip_flag is 1, bS[ xDi ][ yDj ] is set to 2.

[0615] - Otherwise, if the block edge is a transform block edge and the sample p0 or q0 is in a transform block containing one or more non-zero transform coefficient levels, bS[ xDi ][ yDj ] is set to equal 1.

[0616] - [[Otherwise, if the block edge is also a transform block edge, and cIdx is greater than 0 and sample p0 or q0 is in a transform unit where tu_joint_cbcr_residual_flag is 1, then bS[ xD i ][ yD j ] is set to 1.

[0617] - Otherwise, if the prediction mode of the coding subblock containing sample p0 is different from the prediction mode of the coding subblock containing sample q0 (i.e., one of the coding subblocks is coded in IBC prediction mode and the other is coded in Inter prediction mode), bS[ xD i ][ yD j ] is set to 1.

[0618] - Otherwise, if cIdx is 0 and one or more of the following conditions are true, bS[ xD i ][ yD j ] is set to be the same as 1:

[0619] - The absolute difference between the horizontal or vertical components of the list 0 motion vector used for the prediction of two coding subblocks is 8 or greater in 1 / 16 luminance units, or the absolute difference between the horizontal or vertical components of the list 1 motion vector used for the prediction of two coding subblocks is 8 or greater in 1 / 16 luminance units.

[0620] - [[The coding subblock containing sample p0 and the coding subblock containing sample q0 are both coded in IBC prediction mode, and the absolute difference between the horizontal or vertical components of the block vectors used for prediction of the two coding subblocks is 8 or greater in 1 / 16 luminous sample unit.

[0621] - For the prediction of a coding subblock containing sample p0, a different reference picture or a different number of motion vectors is used than for the prediction of a coding subblock containing sample q0.

[0622] Note 1 - The determination of whether the reference pictures used in two coding sublocks are the same or different is based solely on which picture is referenced, regardless of whether a prediction is formed using the index for reference picture list 0 or the index for the reference picture list, and also regardless of whether the index positions within the reference picture list are different.

[0623] Note 2 - The number of motion vectors used for prediction of the (xSb, ySb) coding subblock covering the top-left sample is equal to PredFlagL0[xSb][ySb] + PredFlagL1[xSb][ySb].

[0624] - One motion vector is used to predict the coding subblock containing sample p0 and one motion vector is used to predict the coding subblock containing sample q0, and the absolute difference between the horizontal or vertical components of the motion vectors used is 8 or greater in 1 / 16 luma sample units.

[0625] - Two motion vectors and two different reference pictures are used to predict a coding subblock containing sample p0, two motion vectors for the same two reference pictures are used to predict a coding subblock containing sample q0 and the absolute difference between the horizontal or vertical components, and the absolute difference between the horizontal or vertical components of the two motion vectors used to predict the two coding subblocks for the same reference picture is 8 or greater at 1 / 16 luma sample units.

[0626] - Two motion vectors for the same reference picture are used to predict the coding subblock containing sample p0, and two motion vectors for the same reference picture are used to predict the coding subblock containing sample q0, and all of the following conditions are true:

[0627] - The absolute difference between the horizontal or vertical components of the list 0 motion vector used for the prediction of two coding subblocks is 8 or greater in 1 / 16 luminance units, or the absolute difference between the horizontal or vertical components of the list 1 motion vector used for the prediction of two coding subblocks is 8 or greater in 1 / 16 luminance units.

[0628] - The absolute difference between the horizontal or vertical component of the list 0 motion vector used to predict the coding subblock containing sample p0 and the list 1 motion vector sampled q0 is 8 or greater in 1 / 16 luminous sample unit, or the absolute difference between the horizontal or vertical component of the list 1 motion vector used to predict the coding subblock containing sample p0 and the list 0 motion vector used to predict the coding subblock containing sample q0 is 8 or greater in 1 / 16 luminous sample unit.

[0629] - Otherwise, the variable bS[ xDi ][ yDj ] is set to 0.

[0630] 5.3. Example #3 for Boundary Strength Induction

[0631] 8.8.3.5 Derivation Process of Boundary Filtering Intensity

[0632] The input for this process is as follows:

[0633] - Picture Sample Array recPicture,

[0634] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0635] - Variable sbWidth that specifies the width of the current coding subblock,

[0636] - Variable sbHeight that specifies the height of the current coding subblock,

[0637] - A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0638] - Variable cIdx that specifies the color component of the current block.

[0639] - 2D (nCbW)x(nCbH) array edgeFlags.

[0640] The output of this process is a 2D (nCbW)x(nCbH) array bS that specifies the boundary filtering strength.

[0641] ...

[0642] xD for i = 0..xN i and yD with j = 0..yN j In the case of, the following applies:

[0643] - edgeFlags[ xD i ][ yD j If ] is equal to 0, variable bS[ xD i ][ yD j ] is set to be the same as 0.

[0644] - Otherwise, the following applies:

[0645] ...

[0646] - The variable bS[ xDi ][ yDj ] is derived as follows:

[0647] - If cIdx is 0 and samples p0 and q0 are both in a coding block where intra_bdpcm_flag is 1, bS[ xDi ][ yDj ] is set to 0.

[0648] - Otherwise, if sample p0 or q0 is in a coding block of a coding unit coded in intra-prediction mode, bS[ xDi ][ yDj ] is set to equal 2.

[0649] - Otherwise, if the block edge is also a transform block edge and sample p0 or q0 is in a coding block where ciip_flag is 1, bS[ xDi ][ yDj ] is set to 2.

[0650] - Otherwise, if the block edge is a transform block edge and the sample p0 or q0 is in a transform block containing one or more non-zero transform coefficient levels, bS[ xDi ][ yDj ] is set to equal 1.

[0651] - [[Otherwise, if the block edge is also a transform block edge, and cIdx is greater than 0 and sample p0 or q0 is in a transform unit where tu_joint_cbcr_residual_flag is 1, bS[ xDi ][ yDj ] is set to 1.]]

[0652] - Otherwise, if the prediction mode of the coding subblock containing sample p0 is different from the prediction mode of the coding subblock containing sample q0 (i.e., one of the coding subblocks is coded in IBC prediction mode and the other is coded in Inter prediction mode), bS[ xD i ][ yD j ] is set to 1.

[0653] - Otherwise, if cIdx is 0 and one or more of the following conditions are true, bS[ xD i ][ yD j ] is set to be the same as 1:

[0654] - Both the coding subblock containing sample p0 and the coding subblock containing sample q0 are coded in IBC prediction mode, and the absolute difference between the horizontal or vertical components of the block vectors used for prediction of the two coding subblocks is 8 or greater in 1 / 16 luminous sample units.

[0655] - For the prediction of a coding subblock containing sample p0, a different reference picture or a different number of motion vectors is used than for the prediction of a coding subblock containing sample q0.

[0656] Note 1 - The determination of whether the reference pictures used in two coding sublocks are the same or different is based solely on which picture is referenced, regardless of whether a prediction is formed using the index for reference picture list 0 or the index for the reference picture list, and also regardless of whether the index positions within the reference picture list are different.

[0657] Note 2 - The number of motion vectors used for prediction of the (xSb, ySb) coding subblock covering the top-left sample is equal to PredFlagL0[xSb][ySb] + PredFlagL1[xSb][ySb].

[0658] - One motion vector is used to predict the coding subblock containing sample p0 and one motion vector is used to predict the coding subblock containing sample q0, and the absolute difference between the horizontal or vertical components of the motion vectors used is 8 or greater in 1 / 16 luma sample units.

[0659] - Two motion vectors and two different reference pictures are used to predict a coding subblock containing sample p0, two motion vectors for the same two reference pictures are used to predict a coding subblock containing sample q0 and the absolute difference between the horizontal or vertical components, and the absolute difference between the horizontal or vertical components of the two motion vectors used to predict the two coding subblocks for the same reference picture is 8 or greater at 1 / 16 luma sample units.

[0660] - Two motion vectors for the same reference picture are used to predict the coding subblock containing sample p0, and two motion vectors for the same reference picture are used to predict the coding subblock containing sample q0, and all of the following conditions are true:

[0661] - The absolute difference between the horizontal or vertical components of the list 0 motion vector used for the prediction of two coding subblocks is 8 or greater in 1 / 16 luminance units, or the absolute difference between the horizontal or vertical components of the list 1 motion vector used for the prediction of two coding subblocks is 8 or greater in 1 / 16 luminance units.

[0662] - The absolute difference between the horizontal or vertical component of the list 0 motion vector used to predict the coding subblock containing sample p0 and the list 1 motion vector containing sample q0 is 8 or greater in 1 / 16 luminous sample unit, or the absolute difference between the horizontal or vertical component of the list 1 motion vector used to predict the coding subblock containing sample p0 and the list 0 motion vector used to predict the coding subblock containing sample q0 is 8 or greater in 1 / 16 luminous sample unit.

[0663] - Otherwise, the variable bS[ xDi ][ yDj ] is set to 0.

[0664] 5.4. Example #4 for the Luma Deblocking Filtering Process

[0665] 8.8.3.6.1 Determination process for Luma block edges

[0666] The input for this process is as follows:

[0667] - Picture Sample Array recPicture,

[0668] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0669] - Position specifying the top-left sample of the current block for the top-left sample of the current coding block ( xBl, yBl ),

[0670] - A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0671] - Variable bS that specifies the boundary filtering strength,

[0672] - Variable maxFilterLengthP specifying the maximum filter length,

[0673] - Variable maxFilterLengthQ that specifies the maximum filter length.

[0674] The output of this process is as follows:

[0675] - Variables dE, dEp, and dEq containing the judgment,

[0676] - Modified filter length variables maxFilterLengthP and maxFilterLengthQ,

[0677] - Variable t C .

[0678] ...

[0679] The following sequence steps are applied:

[0680] ...

[0681] 1. If sidePisLargeBlk or sideQisLargeBlk is greater than 0, the following applies:

[0682] a. Variables dp0L and dp3L are derived, and maxFilterLengthP is modified as follows:

[0683] - [[If sidePisLargeBlk is 1, the following applies:

[0684] dp0L = ( dp0 + Abs( p 5,0 - 2 * p 4,0 + p 3,0 ) + 1 ) >> 1 (8-1087)

[0685] dp3L = ( dp3 + Abs( p 5,3 - 2 * p 4,3 + p 3,3 ) + 1 ) >> 1(8-1088)

[0686] - Otherwise, the following applies:]]

[0687] dp0L = dp0 (8-1089)

[0688] dp3L = dp3 (8-1090)

[0689] [[maxFilterLengthP = 3 (8-1091)]]

[0690] maxFilterLengthP = sidePisLargeBlk ? maxFilterLengthP: 3

[0691] b. Variables dq0L and dq3L are derived as follows:

[0692] - [[If sideQisLargeBlk is 1, the following applies:

[0693] dq0L = ( dq0 + Abs( q 5,0 - 2 * q 4,0 + q 3,0 ) + 1 ) >> 1 (8-1092)

[0694] dq3L = ( dq3 + Abs( q 5,3 - 2 * q 4,3 + q3,3 ) + 1 ) >> 1 (8-1093)

[0695] - Otherwise, the following applies:]]

[0696] dq0L = dq0 (8-1094)

[0697] dq3L = dq3 (8-1095)

[0698] maxFilterLengthQ = sidePisLargeBlk ? maxFilterLengthQ: 3

[0699] ...

[0700] 2. The variables dE, dEp, and dEq are derived as follows:

[0701] ...

[0702] 5.5. Example #5 for the chroma deblocking filtering process

[0703] 8.8.3.6.3 Determination Process for Chroma Block Edges

[0704] This process is called only when ChromaArrayType is not 0.

[0705] The input for this process is as follows:

[0706] - Chroma Picture Sample Array recPicture,

[0707] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0708] - Chroma position ( xBl, yBl ), specifying the top-left sample of the current chroma block for the top-left sample of the current chroma coding block

[0709] - A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0710] - Variable cIdx specifying the color component index,

[0711] - Variable cQpPicOffset that specifies the picture-level chroma quantization parameter offset,

[0712] - Variable bS that specifies the boundary filtering strength,

[0713] - Variable maxFilterLengthCbCr.

[0714] The output of this process is as follows:

[0715] - Modified variable maxFilterLengthCbCr,

[0716] - Variable t C .

[0717] The variable maxK is derived as follows:

[0718] - If edgeType is equal to EDGE_VER, the following applies:

[0719] maxK = (SubHeightC = = 1) ? 3:1 (8-1124)

[0720] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[0721] maxK = ( SubWidthC = = 1 ) ? 3:1 (8-1125)

[0722] Value p for i = 0.. maxFilterLengthCbCr and k = 0..maxK i and q i is derived as follows:

[0723] - If edgeType is equal to EDGE_VER, the following applies:

[0724] q i,k = recPicture[xCb + xBl + i][yCb + yBl + k] (8-1126)

[0725] p i,k = recPicture[ xCb + xBl - i -1 ][ yCb + yBl + k ] (8-1127)

[0726] subSampleC = SubHeightC (8-1128)

[0727] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[0728] q i,k = recPicture[xCb + xBl + k][yCb + yBl + i] (8-1129)

[0729] p i,k = recPicture[xCb + xBl + k][yCb + yBl - i -1] (8-1130)

[0730] subSampleC = SubWidthC (8-1131)

[0731] If ChromaArrayType is not 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, the following applies:

[0732] - When treeType is equal to DUAL_TREE_CHROMA, variable Qp Y Qp is the luminance quantization parameter of the luminance coding unit covering the luminance positions (xCb + cbWidth / 2, yCb + cbHeight / 2). Y It is set to be the same as.

[0733] - Variable qP Cb , qP Cr and qP CbCr It is derived as follows:

[0734] qPi Chroma = Clip3( -QpBdOffset C , 63, Qp Y  ) (8-935)

[0735] qPi Cb = ChromaQpTable[ 0 ][ qPi Chroma  ] (8-936)

[0736] qPi Cr = ChromaQpTable[ 1 ][ qPi Chroma  ] (8-937)

[0737] qPi CbCr = ChromaQpTable[ 2 ][ qPi Chroma  ] (8-938)

[0738] - Cb and Cr components, Qp' Cb and Qp' Cr , joint Cb-Cr coding Qp' CbCr The chroma quantization parameter for is derived as follows:

[0739] Qp' Cb = Clip3( -QpBdOffset C , 63, qP Cb + pps_cb_qp_offset + slice_cb_qp_offset +CuQpOffset Cb  ) (8-939)

[0740] Qp' Cr = Clip3( -QpBdOffset C , 63, qP Cr + pps_cr_qp_offset + slice_cr_qp_offset +CuQpOffset Cr  ) (8-940)

[0741] Qp' CbCr = Clip3( -QpBdOffset C , 63, qP CbCr + pps_cbcr_qp_offset + slice_cbcr_qp_offset +CuQpOffset CbCr  ) (8-941)

[0742] variable Qp Q and Qp P are each sample q 0,0 and p 0 ,0 The corresponding Qp' of a coding unit including a coding block including Cb or Qp' Cr or Qp' CbCr It is set to be the same as the value.

[0743] variable Qp C is derived as follows:

[0744] Qp C = ( Qp Q + Qp P  + 1 )  >>  1  (8-1133)

[0745] The value of the variable β' is based on the quantization parameter Q derived as follows Table 818 Determined as specified in:

[0746] Q = Clip3( 0, 63, Qp C + ( slice_beta_offset_div2 << 1 ) ) (8-1134)

[0747] Here, slice_beta_offset_div2 is sample q0,0 It is the value of the syntax element slice_beta_offset_div2 for the slice containing.

[0748] The variable β is derived as follows:

[0749] β = β' * ( 1 << ( BitDepth C - 8 ) ) (8-1135)

[0750] variable t C The value of ' is determined as specified in Table 818 based on the chroma quantization parameter Q derived as follows:

[0751] Q = Clip3( 0, 65, Qp C + 2 * ( bS - 1 ) + ( slice_tc_offset_div2 << 1 ) ) (8-1136)

[0752] Here, slice_tc_offset_div2 is the value of the syntax element slice_tc_offset_div2 for the slice containing sample q0,0.

[0753] variable t C is derived as follows:

[0754] t C = ( BitDepth C < 10 ) ? ( t C ' + 2 ) >> ( 10 - BitDepth C ) : t C ' * ( 1 << ( BitDepth C - 8 ) ) (8-1137)

[0755] If maxFilterLengthCbCr is 1 and bS is not 2, maxFilterLengthCbCr is set to 0.

[0756] 5.6. Example #6 for Chroma QP in Deblocking

[0757] 8.8.3.6.3 Determination Process for Chroma Block Edges

[0758] This process is called only when ChromaArrayType is not 0.

[0759] The input for this process is as follows:

[0760] - Chroma Picture Sample Array recPicture,

[0761] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0762] - Chroma position ( xBl, yBl ), specifying the top-left sample of the current chroma block for the top-left sample of the current chroma coding block

[0763] - A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0764] - Variable cIdx specifying the color component index,

[0765] - Variable cQpPicOffset that specifies the picture-level chroma quantization parameter offset,

[0766] - Variable bS that specifies the boundary filtering strength,

[0767] - Variable maxFilterLengthCbCr.

[0768] The output of this process is as follows:

[0769] - Modified variable maxFilterLengthCbCr,

[0770] - Variable t C .

[0771] The variable maxK is derived as follows:

[0772] - If edgeType is equal to EDGE_VER, the following applies:

[0773] maxK = (SubHeightC = = 1) ? 3:1 (8-1124)

[0774] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[0775] maxK = ( SubWidthC = = 1 ) ? 3:1 (8-1125)

[0776] Value p for i = 0.. maxFilterLengthCbCr and k = 0..maxK i and q i is derived as follows:

[0777] - If edgeType is equal to EDGE_VER, the following applies:

[0778] q i,k = recPicture[xCb + xBl + i][yCb + yBl + k] (8-1126)

[0779] p i,k = recPicture[ xCb + xBl - i -1 ][ yCb + yBl + k ] (8-1127)

[0780] subSampleC = SubHeightC (8-1128)

[0781] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[0782] q i,k = recPicture[xCb + xBl + k][yCb + yBl + i] (8-1129)

[0783] p i,k = recPicture[xCb + xBl + k][yCb + yBl - i -1] (8-1130)

[0784] subSampleC = SubWidthC (8-1131)

[0785] [[Variable Qp Q and Qp P are each sample q 0,0 and p 0,0 Qp of a coding unit including a coding block including YIt is set to be the same as the value.

[0786] variable jccr_flag P and jccr_flag Q are each sample q 0,0 and p 0,0 It is set to be the same as the tu_joint_cbcr_residual_flag value of the coding unit containing the coding block containing it.

[0787] variable Qp C is derived as follows:

[0788] [[qPi = Clip3( 0, 63, ( ( Qp Q + Qp P + 1 ) >> 1 ) + cQpPicOffset ) (8-1132)]]

[0789] qPi = Clip3( 0, 63, ( ( Qp Q + (jccr_flag P ? pps_joint_cbcr_qp_offset : cQpPicOffset) + Qp P + (jccr_flag Q ? pps_joint_cbcr_qp_offset : cQpPicOffset) + 1 ) >> 1 ) )

[0790] Qp C = ChromaQpTable[cIdx - 1][qPi] (8-1133)

[0791] Note - The variable cQpPicOffset provides adjustments to the pps_cb_qp_offset or pps_cr_qp_offset values ​​depending on whether the filtered chroma component is a Cb component or a Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process provides adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset and (if cu_chroma_qp_offset_enabled_flag is 1) CuQpOffset Cb , CuQpOffset Cr , or CuQpOffset CbCr It does not include adjustments to the value of.

[0792] ...

[0793] 5.7. Example #7 for Chroma QP in Deblocking

[0794] 8.8.3.6.38.8.3.6.3 Determination Process for Chroma Block Edges

[0795] This process is called only when ChromaArrayType is not 0.

[0796] The input for this process is as follows:

[0797] - Chroma Picture Sample Array recPicture,

[0798] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0799] - ...

[0800] The output of this process is as follows:

[0801] - Modified variable maxFilterLengthCbCr,

[0802] - Variable t C .

[0803] The variable maxK is derived as follows:

[0804] - If edgeType is equal to EDGE_VER, the following applies:

[0805] maxK = (SubHeightC = = 1) ? 3:1 (8-1124)

[0806] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[0807] maxK = ( SubWidthC = = 1 ) ? 3:1 (8-1125)

[0808] Value p for i = 0.. maxFilterLengthCbCr and k = 0..maxK i and q i is derived as follows:

[0809] - If edgeType is equal to EDGE_VER, the following applies:

[0810] q i,k= recPicture[xCb + xBl + i][yCb + yBl + k] (8-1126)

[0811] p i,k = recPicture[ xCb + xBl - i -1 ][ yCb + yBl + k ] (8-1127)

[0812] subSampleC = SubHeightC (8-1128)

[0813] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[0814] q i,k = recPicture[xCb + xBl + k][yCb + yBl + i] (8-1129)

[0815] p i,k = recPicture[xCb + xBl + k][yCb + yBl - i -1] (8-1130)

[0816] subSampleC = SubWidthC (8-1131)

[0817] variable Qp Q and Qp P are each sample q 0,0 and p 0,0 Qp of a coding unit including a coding block including Y It is set to be the same as the value.

[0818] variable Qp Q is set to be equal to the luminance quantization parameter QpY of the luminance coding unit covering the luminance positions (xCb + cbWidth / 2, yCb + cbHeight / 2), and Here, cbWidth specifies the width of the current chroma coding block in the luminance sample, and cbHeight specifies the height of the current chroma coding block in the luminance sample.

[0819] variable Qp P is set to be equal to the luminance quantization parameter QpY of the luminance coding unit covering the luminance positions (xCb' + cbWidth' / 2, yCb' + cbHeight' / 2 ), and Here, (xCb ', yCb') is the top-left sample of the chroma coding block covering q0,0 for the top-left chroma sample of the current picture, cbWidth ' specifies the width of the current chroma coding block in the luminance sample, and cbHeight specifies the height of the current chroma coding block in the luminance sample.

[0820] variable Qp C is derived as follows:

[0821] qPi = Clip3( 0, 63, ( ( Qp Q + QpP + 1 ) >> 1 ) + cQpPicOffset ) (8-1132)

[0822] Qp C = ChromaQpTable[cIdx - 1][qPi] (8-1133)

[0823] Note - The variable cQpPicOffset provides adjustments to the pps_cb_qp_offset or pps_cr_qp_offset values ​​depending on whether the filtered chroma component is a Cb component or a Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process provides adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset and (if cu_chroma_qp_offset_enabled_flag is 1) CuQpOffset Cb , CuQpOffset Cr , or CuQpOffset CbCr It does not include adjustments to the value of.

[0824] The value of the variable β' is determined as specified in Table 8-18 based on the quantization parameter Q derived as follows:

[0825] Q = Clip3( 0, 63, Qp C + ( slice_beta_offset_div2 << 1 ) ) (8-1134)

[0826] Here, slice_beta_offset_div2 is sample q 0,0 It is the value of the syntax element slice_beta_offset_div2 for the slice containing.

[0827] The variable β is derived as follows:

[0828] β = β' * ( 1 << ( BitDepth C - 8 ) ) (8-1135)

[0829] variable t CThe value of ' is determined as specified in Table 8-18 based on the chroma quantization parameter Q derived as follows:

[0830] Q = Clip3( 0, 65, Qp C + 2 * ( bS - 1 ) + ( slice_tc_offset_div2 << 1 ) ) (8-1136)

[0831] Here, slice_tc_offset_div2 is the value of the syntax element slice_tc_offset_div2 for the slice containing sample q0,0.

[0832] 5.8. Example #8 for Chroma QP in Deblocking

[0833] When making a filter judgment for the three described samples (including the solid circle), the QP of the luminance CU covering the center position of the chroma CU containing the three samples is selected. Thus, for the first, second, and third chroma samples (shown in FIG. 11), only the QP of CUY3 is utilized, respectively.

[0834] In this way, the method of selecting the luminance CU for the chroma quantization / de-quantization process is consistent with that for the chroma filter determination process.

[0835] 5.9. Example #9 for QP used in JCCR coded blocks

[0836] 8.7.3 Scaling process for transform coefficients

[0837] The input for this process is as follows:

[0838] - Luma position ( xTbY, yTbY ), specifying the top-left sample of the current luma transform block relative to the top-left luma sample of the current picture

[0839] - Variable nTbW that specifies the transform block width,

[0840] - Variable nTbH that specifies the height of the transform block,

[0841] - Variable cIdx that specifies the color component of the current block,

[0842] - The variable bitDepth that specifies the bit depth of the current color component.

[0843] The output of this process is an array d of scaled transform factors (nTbW) x(nTbH) with elements d[ x ][ y ].

[0844] The quantization parameter qP is derived as follows:

[0845] - If cIdx is 0 and transform_skip_flag[ xTbY ][ yTbY ] is 0, the following is applied:

[0846] qP = Qp' Y (8-950)

[0847] - Otherwise, if cIdx is 0 (and transform_skip_flag[ xTbY ][ yTbY ] is 1), the following applies:

[0848] qP = Max( QpPrimeTsMin, Qp' Y ) (8-951)

[0849] - Otherwise, if TuCResMode[ xTbY ][ yTbY ] is not equal to 0[[equal to 2]], the following applies:

[0850] qP = Qp' CbCr (8-952)

[0851] - Otherwise, if cIdx is 1, the following applies:

[0852] qP = Qp' Cb (8-953)

[0853] - Otherwise (cIdx is equal to 2), the following applies:

[0854] qP = Qp' Cr (8-954)

[0855] 5.10 Example #10 for QP used in JCCR coded blocks

[0856] 8.8.3.2 Deblocking filter process for one direction

[0857] The input for this process is as follows:

[0858] - Variable treeType that specifies whether the Luma (DUAL_TREE_LUMA) or Chroma component (DUAL_TREE_CHROMA) is currently being processed,

[0859] - When treeType is the same as DUAL_TREE_LUMA, the reconstructed picture before deblocking, i.e., the array recPicture L ,

[0860] - When ChromaArrayType is not equal to 0 and treeType is equal to DUAL_TREE_CHROMA, array recPicture Cb and recPicture Cr ,

[0861] - A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0862] The output of this process is a reconstructed picture modified after deblocking, i.e.:

[0863] - recPictureL array when treeType is equal to DUAL_TREE_LUMA,

[0864] - When ChromaArrayType is not 0 and treeType is the same as DUAL_TREE_CHROMA, array recPicture Cb and recPicture Cr .

[0865] The variables firstCompIdx and lastCompIdx are derived as follows:

[0866] firstCompIdx = ( treeType = = DUAL_TREE_CHROMA ) ? 1:0 (8-1022)

[0867] lastCompIdx = ( treeType = = DUAL_TREE_LUMA | | ChromaArrayType = = 0 ) ? 0:2 (8-1023)

[0868] For each coding unit represented by the color component index cIdx from firstCompIdx to lastCompIdx, along with the coding block width nCbW, coding block height nCbH, and the top-left sample position of the coding block (xCb, yCb), and for each coding block per color component of the coding unit, edges are filtered in the following order when cIdx is equal to 0, or when cIdx is not 0 and edgeType is equal to EDGE_VER and xCb % 8 is 0, or when cIdx is not 0 and edgeType is EDGE_HOR and yCb % 8 is equal to 0:

[0869] ...

[0870] [[5. The picture sample array recPicture is derived as follows:

[0871] - If cIdx is equal to 0, recPicture is recPicture L It is set to be identical to the reconstructed luma picture sample array before deblocking.

[0872] - Otherwise, if cIdx is equal to 1, recPicture is set to be the same as the reconstructed chroma picture sample array before deblocking recPictureCb.

[0873] - Otherwise (cIdx is the same as 2), recPicture is recPicture Cr It is set to be identical to the reconstructed chroma picture sample array before deblocking.

[0874] 5. The picture sample array recPicture[i] for i = 0, 1, 2 is derived as follows:

[0875] recPicture[0] is set to be the same as the reconstructed picture sample array before deblocking recPictureL.

[0876] recPicture[1] is set to be the same as the reconstructed picture sample array before deblocking recPictureCb.

[0877] recPicture[2] is set to be the same as the reconstructed picture sample array before deblocking recPictureCr.

[0878] ...

[0879] If cIdx is 1, the following process applies:

[0880] The edge filtering process for one direction is called for the coding block specified in Section 8.8.3.6, with the variable edgeType, the variable cIdx, the reconstructed picture recPicture before deblocking, the position (xCb, yCb), the coding block width nCbW, the coding block height nCbH, and the arrays bS, maxFilterLengthPs, and maxFilterLengthQs as inputs, and the modified reconstructed picture recPicture as output.

[0881] 8.8.3.5 Derivation Process of Boundary Filtering Intensity

[0882] The input for this process is as follows:

[0883] - Picture Sample Array recPicture,

[0884] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0885] - Variable sbWidth that specifies the width of the current coding subblock,

[0886] - Variable sbHeight that specifies the height of the current coding subblock,

[0887] - A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0888] - Variable cIdx that specifies the color component of the current block.

[0889] - 2D (nCbW)x(nCbH) array edgeFlags.

[0890] The output of this process is a 2D (nCbW)x(nCbH) array bS that specifies the boundary filtering strength.

[0891] Variable xD i , yD j , xN and yN are derived as follows:

[0892] ...

[0893] xD for i = 0..xN i and yD with j = 0..yN j In the case of, the following applies:

[0894] - edgeFlags[ xD i ][ yD j If ] is equal to 0, variable bS[ xD i ][ yD j ] is set to be the same as 0.

[0895] - Otherwise, the following applies:

[0896] - Sample values ​​p0 and q0 are derived as follows:

[0897] - If edgeType is the same as EDGE_VER, p0 is recPicture [cIdx][ xCb + xD i - 1 ][ yCb + yD j It is set to be the same as ] and q0 is recPicture [cIdx] [ xCb + xD i ][ yCb + yD j It is set to be the same as ].

[0898] - Otherwise (edgeType is equal to EDGE_HOR), p0 is set to be equal to recPicture[cIdx] [ xCb + xDi ][ yCb + yDj - 1 ] and q0 is set to be equal to recPicture[cIdx] [ xCb + xDi ][ yCb + yDj ].

[0899] ..

[0900] 8.8.3.6 Edge filtering process for one direction

[0901] The input for this process is as follows:

[0902] - Variable edgeType specifying whether a vertical edge (EDGE_VER) or a horizontal edge (EDGE_HOR) is currently being processed,

[0903] - Variable cIdx specifying the current color component,

[0904] - The reconstructed picture before deblocking recPicture,

[0905] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0906] - Variable sbWidth that specifies the width of the current coding subblock,

[0907] - Variable sbHeight that specifies the height of the current coding subblock,

[0908] - Array bS specifying boundary strength,

[0909] - Array maxFilterLengthPs and maxFilterLengthQs.

[0910] The output of this process is recPicture i This is a reconstructed picture modified after deblocking.

[0911] ...

[0912] - Otherwise (cIdx is not 0), the filtering process for edges in the chroma coding block of the current coding unit specified by cIdx consists of the following ordered steps:

[0913] 1. The variable cQpPicOffset is derived as follows:

[0914] cQpPicOffset = cIdx = = 1 ? pps_cb_qp_offset : pps_cr_qp_offset (8-1065)

[0915] cQpPicOffset = ( pps_cb_qp_offset + pps_cr_qp_offset + 1 ) >> 1 (8-1065)

[0916] 2. If bS[ xDk ][ yDm ] for cIdx = 1 is equal to 1 or bS[ xDk ][ yDm ] for cIdx = 2 is equal to 1, then bS[ xDk ][ yDm ] for cIdx = 1 and 2 is modified to 1.

[0917] 3. The determination process for the chroma block edge specified in Section 8.8.3.6 is based on the chroma picture sample array recPicture, the location of the chroma coding block (xCb, yCb), (xD k , yD m ) position of the chroma block set identically to ), edge direction edgeType, variable cIdx, variable cQpPicOffset, boundary filtering intensity bS[ xD k ][ yD m ] and maxFilterLengthPs[ xD k ][ yD m Taking the variable maxFilterLengthCbCr, which is set identically to ] as input, and the modified variable maxFilterLengthCbCr and variable t C It is called with as output.

[0918] 4. When maxFilterLengthCbCr is greater than 0, the filtering process for the chroma block edges specified in Section 8.8.3.6.4 is performed on the chroma picture sample array recPicture, the location of the chroma coding block (xCb, yCb), (xD k , yD m The chroma position of the block set identically to ), edge direction edgeType, variable maxFilterLengthCbCr, and cIdx identical to 1 It is called with as input and the modified chroma picture sample array recPicture as output.

[0919] When maxFilterLengthCbCr is greater than 0, the filtering process for chroma block edges specified in Section 8.8.3.6.4 is performed on the chroma picture sample array recPicture, the location of the chroma coding block (xCb, yCb), (xD k , yD m It is called with inputs the chroma position (xBl, yBl) of the block set identically to ), the edge direction edgeType, the variable maxFilterLengthCbCr, and cIdx identical to 2, and outputs the modified chroma picture sample array recPicture.

[0920] 8.8.3.6.3 Determination Process for Chroma Block Edges

[0921] This process is called only when ChromaArrayType is not 0.

[0922] The input for this process is as follows:

[0923] - Chroma Picture Sample Array recPicture,

[0924] - Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0925] - Chroma position ( xBl, yBl ), specifying the top-left sample of the current chroma block for the top-left sample of the current chroma coding block

[0926] - A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0927] - [[Variable cIdx specifying the color component index,]]

[0928] - Variable cQpPicOffset that specifies the picture-level chroma quantization parameter offset,

[0929] - Variable bS that specifies the boundary filtering strength,

[0930] - Variable maxFilterLengthCbCr.

[0931] The output of this process is as follows:

[0932] - Modified variable maxFilterLengthCbCr,

[0933] - Variable t C .

[0934] The variable maxK is derived as follows:

[0935] - If edgeType is equal to EDGE_VER, the following applies:

[0936] maxK = (SubHeightC = = 1) ? 3:1 (8-1124)

[0937] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[0938] maxK = ( SubWidthC = = 1 ) ? 3:1 (8-1125)

[0939] Value p for c = 0..1, i = 0.. maxFilterLengthCbCr and k = 0..maxK i and q i is derived as follows:

[0940] - If edgeType is equal to EDGE_VER, the following applies:

[0941] q c, i,k = recPicture [ c ][ xCb + xBl + i ][ yCb + yBl + k ] (8-1126)

[0942] p c, i,k = recPicture [ c ] [ xCb + xBl - i -1 ][ yCb + yBl + k ] (8-1127)

[0943] subSampleC = SubHeightC (8-1128)

[0944] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[0945] q c ,i,k = recPicture [ c ] [ xCb + xBl + k ] [ yCb + yBl + i ] (8-1129)

[0946] p c, i,k = recPicture [ c ] [ xCb + xBl + k ] [ yCb + yBl - i -1 ] (8-1130)

[0947] subSampleC = SubWidthC (8-1131)

[0948] [[Variable Qp Q and Qp P are each sample q 0,0 and p 0,0 Qp of a coding unit including a coding block including Y It is set to be the same as the value.

[0949] variable Qp C is derived as follows:

[0950] qPi = Clip3( 0, 63, ( ( Qp Q + Qp P + 1 ) >> 1 ) + cQpPicOffset ) (8-1132)

[0951] QpC = ChromaQpTable[ cIdx - 1 ][ qPi ] + cQpPicOffset (8-1133)

[0952] QpC = (( ChromaQpTable[ 0 ][ qPi ] + ChromaQpTable[ 1 ][ qPi ] + 1 ) >>1 ) + cQpPicOffset (8-1133)

[0953] Note - The variable cQpPicOffset provides adjustments to the pps_cb_qp_offset or pps_cr_qp_offset values ​​depending on whether the filtered chroma component is a Cb component or a Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process provides adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset and (if cu_chroma_qp_offset_enabled_flag is 1) CuQpOffset Cb , CuQpOffset Cr , or CuQpOffset CbCr It does not include adjustments to the value of.

[0954] The value of the variable β' is determined as specified in Table 8-18 based on the quantization parameter Q derived as follows:

[0955] Q = Clip3( 0, 63, Qp C+ ( slice_beta_offset_div2 << 1 ) ) (8-1134)

[0956] Here, slice_beta_offset_div2 is sample q 0,0 It is the value of the syntax element slice_beta_offset_div2 for the slice containing.

[0957] The variable β is derived as follows:

[0958] β = β' * ( 1 << ( BitDepth C - 8 ) ) (8-1135)

[0959] variable t C The value of ' is determined as specified in Table 8-18 based on the chroma quantization parameter Q derived as follows:

[0960] Q = Clip3( 0, 65, Qp C + 2 * ( bS - 1 ) + ( slice_tc_offset_div2 << 1 ) ) (8-1136)

[0961] Here, slice_tc_offset_div2 is the value of the syntax element slice_tc_offset_div2 for the slice containing sample q0,0.

[0962] variable t C is derived as follows:

[0963] t C = ( BitDepth C < 10 ) ? ( t C ' + 2 ) >> ( 10 - BitDepth C ) :

[0964] t C ' * ( 1 << ( BitDepth C - 8 ) ) (8-1137)

[0965] If maxFilterLengthCbCr is 1 and bS is not 2, maxFilterLengthCbCr is set to 0.

[0966] If maxFilterLengthCbCr is 3, the following steps are applied:

[0967] 1. Variables n1, dpq0c, dpq1c, dpc, dqc, and dc for c = 0..1 are derived as follows:

[0968] n1 = ( subSampleC = = 2 ) ? 1:3 (8-1138)

[0969] dp0 c = Abs( p c ,2,0 - 2 * p c ,1,0 + p c ,0,0 ) (8-1139)

[0970] dp1c = Abs( pc,2,n1 - 2 * pc,1,n1 + pc,0,n1 ) (8-1140)

[0971] dq0 c = Abs( q c ,2,0 - 2 * q c ,1,0 + q c ,0,0 ) (8-1141)

[0972] dq1 c = Abs( q c ,2,n1 - 2 * q c ,1,n1 + q c ,0,n1 ) (8-1142)

[0973] dpq0 c = dp0 c + dq0 c (8-1143)

[0974] dpq1 c = dp1 c + dq1 c (8-1144)

[0975] dp c = dp0 c + dp1 c (8-1145)

[0976] dq c = dq0 c + dq1 c (8-1146)

[0977] d c = dpq0 c + dpq1 c (8-1147)

[0978] 2. The variable d is set to be the same as (d0 + d1 + 1) >> 1.

[0979] 3. Variables dSam0 and dSam1 are both set to 0.

[0980] 4. When d is less than β, the following sequential step applies:

[0981] a. The variable dpq is set to be equal to 2 * dpq0.

[0982] b. The variable dSam0 represents the sample value p for the sample location (xCb + xBl, yCb + yBl). 0.0 , p 3.0 , q 0.0 and q 3.0 , variables dpq, β, and t C It is derived by calling the decision process for the chroma sample as specified in Section 8.8.3.6.8 with as input, and the output is assigned to decision dSam0.

[0983] c. The variable dpq is set to be equal to 2 * dpq1.

[0984] d. The variable dSam1 is modified as follows:

[0985] - If edgeType is the same as EDGE_VER, for sample positions (xCb + xBl, yCb + yBl + n1), the determination process for the chroma sample specified in Section 8.8.3.6.8 is the sample value p 0,n1 , p3,n1 , q 0,n1 and q 3,n1 , variables dpq, β, and t C It is called with input, and the output is assigned to the judgment dSam1.

[0986] - Otherwise (edgeType is the same as EDGE_HOR), for sample positions (xCb + xBl + n1, yCb + yBl), the decision process for the chroma samples specified in Section 8.8.3.6.8 is sample value p 0,n1 , p 3,n1 , q 0,n1 and q 3,n1 , variables dpq, β, and t C It is called with input, and the output is assigned to the judgment dSam1.

[0987] 5. The variable maxFilterLengthCbCr is modified as follows:

[0988] - If dSam0 is 1 and dSam1 is 1, maxFilterLengthCbCr is set to 3.

[0989] - Otherwise, maxFilterLengthCbCr is set to 1.

[0990] 8.8.3.6.3 Filtering Process for Chroma Block Edges

[0991] This process is called only when ChromaArrayType is not 0.

[0992] The input for this process is as follows:

[0993] Chroma Picture Sample Array recPicture,

[0994] Luma position ( xCb, yCb ), specifying the top-left sample of the current coding block relative to the top-left luma sample of the current picture

[0995] Chroma position ( xBl, yBl ), specifying the top-left sample of the current chroma block for the top-left sample of the current chroma coding block

[0996] A variable edgeType that specifies whether vertical (EDGE_VER) or horizontal (EDGE_HOR) edges are filtered,

[0997] variable maxFilterLengthCbCr containing the maximum chroma filter length,

[0998] 6. variable cIdx, which specifies the color component index

[0999] - Variable tC.

[1000] The output of this process is the modified chroma picture sample array recPicture.

[1001] ...

[1002] Value p for i = 0..maxFilterLengthCbCr and k = 0..maxK i and q i is derived as follows:

[1003] - If edgeType is the same as EDGE_VER, the following applies:

[1004] q i,k = recPicture [cIdx] [ xCb + xBl + i ] [ yCb + yBl + k ] (8-1150)

[1005] p i,k = recPicture [cIdx] [xCb + xBl - i -1 ][yCb + yBl + k] (8-1151)

[1006] - Otherwise (edgeType is the same as EDGE_HOR), the following applies:

[1007] q i,k = recPicture [cIdx] [ xCb + xBl + k ] [ yCb + yBl + i ] (8-1152)

[1008] p i,k = recPicture [cIdx] [ xCb + xBl + k ] [ yCb + yBl - i -1 ] (8-1153)

[1009] Depending on the value of edgeType, the following applies:

[1010] - If edgeType is equal to EDGE_VER, for each sample position ( xCb + xBl, yCb + yBl + k ), k = 0..maxK, the following sequential steps are applied:

[1011] 1. The filtering process for the chroma samples specified in Section 8.8.3.6.9 is for sample values ​​p with variables maxFilterLengthCbCr and i = 0..maxFilterLengthCbCr. i,k , q i,k , locations (xCb + xBl - i - 1, yCb + yBl + k) and (xCb + xBl + i, yCb + yBl + k) where i = 0..maxFilterLengthCbCr - 1, and variable t C is taken as input, and filtered sample value p where i = 0..maxFilterLengthCbCr - 1 i ' and q i It is called with ' as output.

[1012] 2. Filtered sample value p where i = 0..maxFilterLengthCbCr - 1 i ' and q i ' replaces the corresponding sample inside the sample array recPicture as follows:

[1013] recPicture [cIdx] [ xCb + xBl + i ] [ yCb + yBl + k ] = q i (8-1154)

[1014] recPicture [cIdx] [ xCb + xBl - i -1 ][ yCb + yBl + k ] = p i (8-1155)

[1015] - Otherwise (edgeType is equal to EDGE_HOR), for each sample position (xCb + xBl + k, yCb + yBl), k = 0..maxK, the following sequential steps are applied:

[1016] 1. The filtering process for the chroma samples specified in Section 8.8.3.6.9 is for sample values ​​p with variables maxFilterLengthCbCr and i = 0..maxFilterLengthCbCr. i,k , q i,k , locations ( xCb + xBl + k, yCb + yBl - i - 1 ) and ( xCb + xBl + k, yCb + yBl + i ), and variable t C Taking as input, and filtered sample value p i ' and q i It is called with ' as output.

[1017] 2. Filtered sample value p i ' and q i ' replaces the corresponding sample inside the sample array recPicture as follows:

[1018] recPicture [cIdx] [ xCb + xBl + k ] [ yCb + yBl + i ] = q i (8-1156)

[1019] recPicture [cIdx] [ xCb + xBl + k ][ yCb + yBl - i -1 ] = p i '

[1020] 5.11 Example #11

[1021] 8.8.3.6.3 Determination Process for Chroma Block Edges

[1022] ...

[1023] [[Variable Qp Q and Qp P are each sample q 0,0 and p 0,0Qp of a coding unit including a coding block including Y It is set to be the same as the value.

[1024] variable Qp C is derived as follows:

[1025] qPi=Clip3( 0, 63, ( ( Qp Q + Qp P + 1 ) >> 1 ) + cQpPicOffset )(8-1132)

[1026] Qp C =ChromaQpTable[ cIdx - 1 ][ qPi ] (8-1133)]]

[1027] If ChromaArrayType is not 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, the following applies:

[1028] - When treeType is equal to DUAL_TREE_CHROMA, the variable QpY is set to be equal to the luminance quantization parameter QpY of the luminance coding unit covering the luminance location (xCb + cbWidth / 2, yCb + cbHeight / 2).

[1029] - The variables qPCb, qPCr, and qPCbCr are derived as follows:

[1030] qPiChroma = Clip3( -QpBdOffsetC, 63, QpY ) (8-935)

[1031] qPiCb = ChromaQpTable[ 0 ][ qPiChroma ] (8-936)

[1032] qPiCr = ChromaQpTable[ 1 ][ qPiChroma ] (8-937)

[1033] qPiCbCr = ChromaQpTable[ 2 ] [ qPiChroma ] (8-938)

[1034] - The chroma quantization parameters for the Cb and Cr components, Qp'Cb and Qp'Cr, and the co-Cb-Cr coding Qp'CbCr are derived as follows:

[1035] Qp'Cb = Clip3( -QpBdOffsetC, 63, qPCb + pps_cb_qp_offset + slice_cb_qp_offset +CuQpOffsetCb ) + QpBdOffsetC (8-939)

[1036] Qp'Cr = Clip3( -QpBdOffsetC, 63, qPCr + pps_cr_qp_offset + slice_cr_qp_offset +CuQpOffsetCr ) + QpBdOffsetC (8-940)

[1037] Qp'CbCr = Clip3( -QpBdOffsetC, 63, qPCbCr + pps_cbcr_qp_offset + slice_cbcr_qp_offset +CuQpOffsetCbCr ) + QpBdOffsetC (8-941)

[1038] Variables QpQ and QpP are set to be equal to the Qp'Cb value when cIdx is 1, the Qp'Cr value when cIdx is 2, or the Qp'CbCr value when tu_joint_cbcr_residual_flag is 1, of a coding unit containing a coding block containing samples q0,0 and p0,0, respectively.

[1039] The variable QpC is derived as follows:

[1040] QpC = (QpQ + QpP + 1) >> 1

[1041] 5.12 Example #12

[1042] 8.8.3.6.3 Determination Process for Chroma Block Edges

[1043] ...

[1044] [[Variable Qp Q and Qp P are each sample q 0,0 and p 0,0 Qp of a coding unit including a coding block including Y It is set to be the same as the value.

[1045] variable Qp C is derived as follows:

[1046] qPi = Clip3( 0, 63, ( ( Qp Q + Qp P + 1 ) >> 1 ) + cQpPicOffset ) (8-1132)

[1047] Qp C = ChromaQpTable[cIdx - 1][qPi] (8-1133)

[1048] Note - The variable cQpPicOffset provides adjustments to the pps_cb_qp_offset or pps_cr_qp_offset values ​​depending on whether the filtered chroma component is a Cb component or a Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process provides adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset and (if cu_chroma_qp_offset_enabled_flag is 1) CuQpOffset Cb , CuQpOffset Cr , or CuQpOffset CbCr It does not include adjustments to the value of.

[1049] variable Qp Q and Qp P is, sample q 0,0 and p 0,0 Qp' of the transform block (xTb, yTb) containing each, when TuCResMode[ xTb ][ yTb ] is 2 CbCr - QpBdOffset C , when cIdx is 1, Qp' Cb - QpBdOffsetC; and Qp'Cr - cIdx is set to be the same as QpBdOffsetC when cIdx is 2.

[1050] variable Qp C is derived as follows:

[1051] Qp C = ( Qp Q + Qp P  + 1 )  >>  1

[1052] 6. Example implementation of the disclosed technology

[1053] 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 implemented as 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(s) (1202) may be configured to implement one or more of the methods described herein. The memory (memory) (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 hardware circuitry and may be part or all of the processor (1202) (e.g., a graphics processor core GPU or other signal processing circuitry).

[1054] In this document, 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 a pixel representation of a video to a corresponding bitstream representation or vice versa. The bitstream representation of a current video block may correspond to bits that are co-located or spread out at different locations within the bitstream, for example, as defined by the syntax. For example, a macroblock may be encoded in terms of transformed and coded error residual values, and also using bits in the header and other fields of the bitstream.

[1055] It will be understood that the disclosed methods and techniques will be helpful for video encoder and / or decoder embodiments integrated within video processing devices, such as smartphones, laptops, desktops, and similar devices, by allowing the use of the techniques disclosed in this document.

[1056] FIG. 13 is a flowchart for a method (1300) of one example of video processing. The method (1300) includes, in 1310, a step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at the boundary of the video unit so that processing by the chroma QP table is performed for individual chroma QP values ​​when the chroma quantization parameter (QP) table is used to derive the parameters of the deblocking filter.

[1057] Various technologies and embodiments may be described using the following section-based format.

[1058] 1. Regarding video processing methods,

[1059] The method includes a step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at the boundary of the video unit such that processing by the chroma QP table is performed for individual chroma QP values ​​when the chroma quantization parameter (QP) table is used to derive the parameters of the deblocking filter.

[1060] 2. In the method of Section 1, the chroma QP offset is added to the individual chroma QP values ​​following processing by the chroma QP table.

[1061] 3. In either method of Section 1 or Section 2, the chroma QP offset is added to the value output by the chroma QP table.

[1062] 4. In either method of Section 1 or Section 2, the chroma QP offset is not considered as an input to the chroma QP table.

[1063] 5. In the method of Section 2, the chroma QP offset is at the picture level or video unit level.

[1064] 6. In video processing methods,

[1065] It includes a step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at the boundary of the video unit so that the chroma QP offset is used in the deblocking filter, and the chroma QP offset is at the picture / slice / tile / brick / sub-picture level.

[1066] 7. In the method of Section 6, the chroma QP offset used in the deblocking filter is associated with the coding method applied to the boundary of the video unit.

[1067] 8. In the method of Section 7, the coding method is the Joint Coding of Chrominance Residuals (JCCR) method.

[1068] 9. In video processing methods,

[1069] The method includes a step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at the boundary of the video unit so that the chroma QP offset is used in the deblocking filter, and wherein information regarding the same luma coding unit is used in the deblocking filter and is used to derive the chroma QP offset.

[1070] 10. In the method of Section 9, the same luma coding unit covers the luma sample corresponding to the center position of the video unit, and the video unit is a chroma coding unit.

[1071] 11. In the method of Section 9, the scaling process is applied to the video unit, and one or more parameters of the deblocking filter depend at least partially on the quantization / inverse quantization parameters of the scaling process.

[1072] 12. In the method of Section 11, the quantization / inverse quantization parameters of the scaling process include the chroma QP offset.

[1073] 13. In any one of the methods of paragraphs 9 through 12, the luminance sample of the video unit is the P side or the Q side.

[1074] 14. In the method of Section 13, information regarding the same luma coding unit depends on the relative position of the coding unit to the same luma coding unit.

[1075] 15. In video processing methods,

[1076] The method includes a step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at the boundary of the video unit so that a chroma QP offset is used in the deblocking filter, and a signal enabling the use of the chroma QP offset is signaled in the bitstream representation.

[1077] 16. In the method of Section 15, the indication is conditionally signaled in response to detecting one or more flags.

[1078] 17. In the method of Section 16, one or more flags are associated with the JCCR enable flag or the chroma QP offset enable flag.

[1079] 18. In the method of Section 15, the indication is signaled based on the induction.

[1080] 19. In video processing methods,

[1081] The method includes a step of performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at the boundary of the video unit such that a chroma QP offset is used in the deblocking filter, and the chroma QP offset used in the deblocking filter is the same as whether a JCCR coding method is applied at the boundary of the video unit or whether a method other than JCCR coding is applied at the boundary of the video unit.

[1082] 20. In video processing methods,

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

[1084] 21. In the method of Section 20, the deblocking filter is disabled under one or more conditions.

[1085] 22. In the method of Section 21, one or more conditions are associated with the magnitude or threshold of the motion vector (MV).

[1086] 23. In the method of Section 22, the threshold is: i. content of the video unit,

[1087] ii. DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Maximum Coding Unit (LCU) / Coding Unit (CU) / LCU Row / Group of LCU / TU / PU Block / Message Coding Unit signaled in video, iii. Location of CU / PU / TU / Block / Video Coding Unit, iv. Coded Block Mode with samples along the boundary, V. Transform Matrix applied to Video Unit with samples along the boundary, vi. Shape or dimensions of the video device, vii. Color format indication, viii. Coding tree structure, ix. Slice / Tile Group Type and / or Picture Type, x. Color Component, xi. Temporal Hierarchy ID, or xii. Associated with one or more of Profile / Level / Hierarchy.

[1088] 24. In the method of Section 20, different QP offsets are used for TS-coded video units and non-TS-coded video units.

[1089] 25. In the method of Section 20, the QP used in the luminance filtering step is related to the QP used in the scaling process of the luminance block.

[1090] 26. A video decoding device comprising a processor configured to implement the method cited in one or more of Sections 1 through 25.

[1091] 27. A video encoding device comprising a processor configured to implement the method cited in one or more of Sections 1 through 25.

[1092] 28. A computer program in which computer code is stored, wherein the code, when executed by a processor, causes the processor to implement the method cited in any one of Sections 1 through 25.

[1093] 29. Methods, devices, and systems described in this document.

[1094] FIG. 15 is a block diagram illustrating an example video coding system (100) that can utilize the technology of the present disclosure.

[1095] As illustrated 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.

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

[1097] The video source (112) may include a video capture device, an interface for receiving video data from a video content provider, a computer graphics system for generating video data, or a combination of such sources. The video data may include one or more pictures. A video encoder (114) encodes the video data of the video source (112) to generate a bitstream. The bitstream may include a sequence of bits that form a coded representation of the video data. The bitstream may include a coded picture 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 to a destination device (120) via the I / O interface (116) through a network (130a). The encoded video data may also be stored in a storage medium / server (130b) for access by the destination device (120).

[1098] The target device (120) may include an I / O interface (126), a video decoder (124), and a display device (122).

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

[1100] The video encoder (114) and video decoder (124) can operate according to video compression standards such as the High Efficiency Video Coding (HEVC) standard, the Multipurpose Video Coding (VVC) standard, and other current and / or additional standards.

[1101] FIG. 16 is a block diagram showing an example of a video encoder (200) that may be a video encoder (114) in the system (100) illustrated in FIG. 15.

[1102] A video encoder (200) may be configured to perform any or all of the techniques of the present disclosure. In the example of FIG. 16, the video encoder (200) includes a plurality of function components. The techniques described in the present disclosure may be shared among the various components of the video encoder (200). In some examples, a processor may be configured to perform any or all of the techniques described in the present disclosure.

[1103] The functional components of the video encoder (200) may include a partition unit (201), a mode select unit (203), a motion estimation unit (204), a motion compensation unit (205), and an intra prediction unit (206), a prediction unit (202), a residual generation unit (207), a transform unit (208), a quantization unit (209), an inverse quantization unit (210), an inverse transform unit (211), a reconstruction unit (212), a buffer (213), and an entropy encoding unit (214).

[1104] In another example, the video encoder (200) may include more or fewer or different functional components. For example, the prediction unit (202) may include an intra-block copy (IBC) unit. The IBC unit can perform a prediction in IBC mode if at least one reference picture is a picture containing the current video block.

[1105] Additionally, some components such as the motion estimation unit (204) and the motion correction unit (205) may be highly integrated, but in the example of FIG. 5, they are depicted as separated for the purpose of explanation.

[1106] The partition device (201) can partition a picture into one or more video blocks. The video encoder (200) and video decoder (300) can support various video block sizes.

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

[1108] To perform inter-prediction in the current video block, the motion estimation unit (204) can generate motion information for the current video block by comparing one or more reference frames in the buffer (213) with the current video block. The motion compensation unit (205) can determine a predicted video block for the current video block based on motion information from the buffer (213) other than the picture associated with the current video block and decoded picture samples.

[1109] The motion estimation unit (204) and the motion compensation unit (205) can perform different operations on the current video block depending on whether the current video block is in slice I, slice P, or slice B.

[1110] In some examples, the motion estimation unit (204) can perform uni-directional prediction for the current video block, and the motion estimation unit (204) can retrieve a reference picture from list 0 or list 1 for a reference video block for the current video block. Then, the motion estimation unit (204) can generate a reference index representing the reference picture from list 0 or list 1, which includes a reference video block and a motion vector representing the spatial displacement between the current video block and the reference video block. The motion estimation unit (204) can output the reference index, the predicted direction indicator, and the motion vector as motion information for the current video block. The motion compensation unit (205) can 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.

[1111] In another example, the motion estimation unit (204) can perform bi-directional prediction for the current video block, and the motion estimation unit (204) can retrieve a reference picture from list 0 for reference video blocks for the current video block, and also retrieve a reference picture from list 1 for other reference video blocks for the current video block. Then, the motion estimation unit (204) can generate a reference index representing the reference picture in list 0 and list 1, which includes a reference video block and a motion vector representing the spatial displacement between the reference video block and the current video block. The motion estimation unit (204) can output the reference index and motion vector of the current video block as motion information of the current video block. The motion correction unit (205) can 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.

[1112] In some examples, the motion estimation unit (204) can output a whole set of motion information for decoding processing of the decoder.

[1113] In some examples, the motion estimation unit (204) may not output a full set of motion information for the current video. Rather, the motion estimation unit (204) may signal motion information for the current video block by referring to motion information of other video blocks. 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 neighboring video blocks.

[1114] In one example, the motion estimation unit (204) may indicate a value to the video decoder (300) that the current video block has the same motion information as another video block in the syntax structure connected to the current video block.

[1115] In another example, the motion estimation unit (204) can identify the other video block and the motion vector difference (MVD) in the syntax structure associated with the current video block. The motion vector difference represents the difference between the motion vector of the current video block and the motion vector of the displayed video block. The video decoder (300) can use the motion vector of the displayed video block and the motion vector difference to determine the motion vector of the current video block.

[1116] As described above, the video encoder (200) can predictively signal motion vectors. Two examples of predictive signaling techniques that can be implemented by the video encoder (200) include advanced motion vector prediction (AMVP) and merged mode signaling.

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

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

[1119] In another example, there may be no residual data for the current video block, and for example, in skip mode, the residual generation unit (207) may not perform a subtraction operation.

[1120] The transform processing unit (208) can generate one or more transform factor video blocks for the current video block by applying one or more transforms to the residual video blocks connected to the current video block.

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

[1122] The inverse quantization unit (210) and the inverse transform unit (211) may each apply the inverse quantization unit and the inverse transform unit to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. The reconstruction unit (212) may generate a reconstructed video block associated with the current block to be stored in the buffer (213) by adding the reconstructed residual video block to the corresponding sample from one or more predicted video blocks generated by the prediction unit (202).

[1123] After the reconstruction unit (212) reconstructs the video block, a loop filtering operation is performed to reduce video block artifacts in the video block.

[1124] The entropy encoding unit (214) may receive data from other function components of the video encoder (200). When the entropy encoding unit (214) receives data, the entropy encoding unit (214) may perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream containing the entropy encoded data.

[1125] FIG. 17 is a block diagram showing an example of a video decoder (300) that may be a video decoder (114) in the system (100) illustrated in FIG. 15.

[1126] 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 the various components of the video decoder (300). In some examples, a processor may be configured to perform any or all of the techniques described in the present disclosure.

[1127] In the example of FIG. 17, 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 transformation unit (305), a reconstruction unit (306), and a buffer (307). In some examples, the video decoder (300) may perform a decoding pass that is generally reciprocal with the encoding pass described for the video encoder (200) (Fig. 16).

[1128] The entropy decoding unit (301) can retrieve an encoded bitstream. The encoded bitstream may contain entropy-coded video data (e.g., an encoded block of video data). The entropy decoding unit (301) can decode the entropy-coded video data, and from the entropy-decoded video data, the motion compensation unit (302) can determine motion information including motion vectors, motion vector precision, reference picture list index, and other motion information. The motion compensation unit (302) can determine this information by, for example, performing AMVP and merge modes.

[1129] The motion compensation unit (302) can generate a motion compensation block by performing interpolation based on an interpolation filter. An identifier for the interpolation filter used with sub-pixel precision can be included in the syntax element.

[1130] The motion compensation unit (302) can calculate interpolation values ​​for sub-integer pixels of a reference block using an interpolation filter used by the video encoder (20) while encoding a video block. The motion compensation unit (302) can determine the interpolation filter used by the video encoder (200) based on the received syntax information and generate a prediction block using the interpolation filter.

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

[1132] The intra prediction unit (303) may form prediction blocks from spatially adjacent blocks using, for example, an intra prediction mode received from the bitstream. The inverse quantization unit (303) inversely quantizes (e.g., de-quantizes) the quantized video block coefficients provided from the bitstream and decoded by the entropy decoding unit (301). The inverse transform unit (303) applies the inverse transform.

[1133] The reconstruction unit (306) can form a decoded block by summing the corresponding prediction block and residual block generated by the motion compensation unit (202) or the intra prediction unit (303). If desired, the decoded block may be filtered by applying a deblocking filter to remove blocking artifacts. The decoded video block is then stored in a buffer (307), and the buffer (307) provides a reference block for subsequent motion compensation.

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

[1135] The system (1800) may include a coding component (1804) capable of implementing various coding or encoding methods described in this document. The coding component (1804) may reduce the average bitrate of the video from the input (1802) to the output of the coding component (1804) to generate a coded representation of the video. Thus, coding technology is also referred to as video compression or video transcoding technology. The output of the coding component (1804) may be stored or transmitted via connected communication, as represented by the component (1806). The stored or transmitted bitstream (or coded) representation of the video received from the input (1802) may be used by the component (1808) to generate pixel values ​​or a displayable video transmitted to the display interface (1810). The process of generating a video viewable by a user from the bitstream representation is also referred to as video decompression. In addition, while specific video processing tasks are referred to as "coding" operations or tools, you will understand that coding tools or tasks are used in the encoder, and the corresponding decoding tools or tasks that return the coding results are performed by the decoder.

[1136] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), or DisplayPort. Examples of storage interfaces include SATA (Serial Advanced Technology Attached File), PCI, and IDE interfaces. The technology described in this document may be implemented in various electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.

[1137] FIG. 19 is a flowchart representation of a video processing method according to the present invention. The method (1900) includes, in operation (1910), a step of determining the applicability of a deblocking filter process to at least some samples at the edges of a chroma block based on a co-coding mode of chroma residuals for a chroma block for a conversion between a chroma block of a video and a bitstream representation of the video. The method (1900) includes, in operation (1920), a step of performing a conversion based on the determining step.

[1138] In some embodiments, the value representing the mode of co-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.

[1139] FIG. 20 is a flowchart representation of a video processing method according to the present invention. The method (2000) includes, in operation (2010), a step of determining chroma quantization parameters used in a deblocking filtering process applied to at least some samples at the edge of the current block based on information of a corresponding transform block of the current block for a conversion between the current block of the video and the bitstream representation of the video. The method (2000) includes, in operation (2020), a step of performing a conversion based on the determining step.

[1140] In some embodiments, chroma quantization parameters are used to deblock samples along a first side of the edge of the current block, and the chroma quantization parameters are based on the mode of the 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 to the left of the edge when the edge is a vertical boundary. In some embodiments, chroma quantization parameters are used to deblock samples along a second side of the edge of the current block, and the chroma quantization parameters are based on the 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 to the right of the edge when the edge is a vertical boundary.

[1141] In some embodiments, the chroma quantization parameter is determined based on whether the co-coding mode of the chroma residual is applied. In some embodiments, the chroma quantization parameter is determined based on whether the co-coding mode of the chroma residual is equal to 2.

[1142] FIG. 21 is a flowchart representation of a video processing method according to the present invention. The method (2100) includes, in operation (2110), the step of performing a conversion between a current block of video and a bitstream representation of video. During the conversion, a first chroma quantization parameter used in a deblocking filtering process applied to at least some samples along the edge of the current block is based on a second chroma quantization parameter used in a scaling process and a quantization parameter offset associated with bit depth.

[1143] In some embodiments, the first chroma quantization parameter is equal to the second quantization parameter used in the scaling process minus the quantization parameter offset associated with the bit depth. In some embodiments, the first chroma quantization parameter is used to deblock samples along the first side of the 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 to the left of the edge when the boundary is a vertical boundary. In some embodiments, the first chroma quantization parameter is used to deblock samples along the second side of the 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 to the right of the edge when the edge is a vertical boundary.

[1144] In some embodiments, the first chroma quantization parameter is the same as the second quantization parameter for the co-coding of chroma residuals used in the scaling process, excluding the quantization parameter offset associated with the bit depth. In some embodiments, the first chroma quantization parameter is the same as the second quantization parameter for the chroma Cb component used in the scaling process, excluding the quantization parameter offset associated with the bit depth. In some embodiments, the first chroma quantization parameter is the same as the second quantization parameter for the chroma Cr component used in the scaling process, excluding the quantization parameter offset associated with the bit depth.

[1145] FIG. 22 is a flowchart representation of a video processing method according to the present invention. The method (2200) includes, in operation (2210), a step of performing a conversion between a video and a bitstream representation of the video, the video comprising one or more coding units. The bitstream representation follows a format rule that specifies that chroma quantization parameters are included in the bitstream representation at the coding unit level or the transform unit level according to the format rule.

[1146] 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 greater than the 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 the 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 greater than the 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 the maximum transform block size. In some embodiments, the format rule further specifies that whether the co-coding of the chroma residual mode is applicable to the first coding unit among one or more coding units is indicated at the coding unit level. In some embodiments, the transform block within the first coding unit inherits information regarding whether the co-coding of the chroma residual mode is applicable at the first coding unit level.

[1147] FIG. 23 is a flowchart representation of a video processing method according to the present invention. The method (2300) includes, in operation (2310), the step of performing a conversion between a first block of video and a bitstream representation of video. The bitstream representation follows a format rule that specifies whether co-coding of a chroma residual mode is applicable to the block is indicated at the coding unit level of the bitstream representation.

[1148] In some embodiments, during conversion, the conversion block within the coding unit inherits information regarding whether co-coding of the chroma residual mode is applicable at the coding unit level.

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

[1150] Some embodiments of the disclosed technology include making a decision or determination to enable a video processing tool or mode. For example, when a video processing tool or mode is enabled, the encoder uses or implements the tool or mode in video block processing, but the resulting bitstream is not necessarily modified according to the use of the tool or mode. That is, the video processing tool or mode is used when the conversion from the video block to the bitstream representation of the video is enabled according to the decision or determination. In another example, when a video processing tool or mode is enabled, the decoder processes the bitstream knowing that the bitstream has been modified according to the video processing tool or mode. That is, the conversion from the bitstream representation of the video to the video block is performed using the video processing tool or mode enabled based on the decision or determination.

[1151] Some embodiments of the disclosed technology include 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 the tool or mode to convert a video block into a video block. In another example, when a video processing tool or mode is disabled, the decoder will process the bitstream with the knowledge that the bitstream has not been modified using an enabled video processing tool or mode based on the decision or determination.

[1152] The disclosures and other solutions, examples, embodiments, modules, and functional operations described in this document may be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including in this document and its structural equivalents or in combination of one or more of these. The disclosed and other embodiments may be implemented in one or more computer program products, that is, by encoding one or more modules of computer program instructions onto a computer-readable medium for execution or by controlling the operation of a data processing device. A computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of a material that affects machine-readable radio signals, or one or more combinations thereof. The term “data processing device” includes, for example, a programmable processor, a computer or a multiprocessor, or any device, device, and computer for processing data. This device may include code that creates an execution environment for a corresponding computer program (e.g., processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof). The propagated signal is an artificially generated signal, for example, an electrical, optical, or electromagnetic signal generated by a machine, which is created to encode information for transmission to a suitable receiver device.

[1153] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language, including compiled languages, and may be distributed in any form as a standalone program or as modules, components, subroutines, or other units suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in other programs or data (e.g., one or more scripts stored in a markup language document), a single file dedicated to the corresponding program, or multiple coordinated files (e.g., a file storing one or more modules, subprograms, or parts of code). A computer program may be distributed to be executed on a single computer or site, or on multiple computers distributed across multiple sites and interconnected by a communication network.

[1154] The processes and logic flows described in this document can be performed by one or more programmable processors to operate on input data and generate outputs to perform functions. Processes and logic flows can also be performed, and the device can be implemented as a special-purpose logic circuit, for example, a Field Programmable Gate Array (FPGA) or an Application-Specific Integrated Circuit (ASIC).

[1155] Processors suitable for the execution of computer programs include, for example, general-purpose and special-purpose microprocessors and one or more processors of all types of digital computers. Generally, processors receive instructions and data from read-only memory or random access memory, or both. An essential element of a computer is a processor for executing one or more memory devices for storing instructions and data. Generally, a computer also receives data from, or transmits data to, one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or includes or is operablely connected to both. However, a computer does not require these devices. Computer-readable media suitable for storing computer program instructions and data include semiconductor memory devices, for example, EPROM, EEPROM, and flash memory devices; magnetic disks, for example, internal hard disks or removable disks; magneto-optical disks; and all forms of non-volatile memory, media, and memory devices, including CD-ROM and DVD-ROM disks. Processors and memory may be supplemented or integrated by special-purpose logic circuits.

[1156] Although this patent document contains many details, they should not be interpreted as a limitation on the scope of any subject matter or what may be claimed, but rather as a description of features that may be specific to a particular embodiment of a particular technology. Specific features described in this patent document may be implemented in combination in a single embodiment in the context of separate embodiments. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any appropriate sub-combination. Furthermore, as foregoing, features may be described as acting in a specific combination and may even be initially claimed so, but one or more features from the claimed combination may, in some cases, be excluded from the combination, and the claimed combination may relate to a sub-combination or a variation of a sub-combination.

[1157] Likewise, although operations are depicted in the drawings in a specific order, it should not be understood that, in order to achieve a desired result, these operations must be performed in the specific order indicated or in a sequential order, or that all illustrated operations must be performed. Furthermore, in the embodiments described in this patent document, the separation of various system components should not be understood as requiring such separation in all embodiments.

[1158] Only a few implementations and examples are described, and other implementations, improvements, and variations may be made based on what is described and illustrated in this patent document.

Claims

Claim 1 A video processing method comprises the step of performing a conversion between a video comprising one or more coding units and a bitstream representation of said video, wherein the bitstream follows the first format rule specifying that for a chroma block of a first coding unit among the one or more coding units, a chroma quantization parameter is allowed to be included in said bitstream at the block level according to the first format rule, and the bitstream follows the second format rule specifying that for a second coding unit among the one or more coding units, a first filtering process is activated depending only on the color sampling format of said video being 4:2:0, 4:2:2, or 4:4:4, and the first filtering process is a cross-component adaptive loop filtering processor that uses the value of a luminance sample to refine each chroma component by applying a filtering operation to a luminance component and then using the output of the filtering operation for chroma refinement in a loop filtering process, and the luminance position of said luminance sample of said luminance component used in the first filtering process is determined based on said color sampling format. method. Claim 2 A method according to claim 1, wherein the first format rule specifies that, for the chroma block, the chroma quantization parameter is allowed to be included in the block level when the height or width of the coding unit is greater than a size threshold. Claim 3 In paragraph 2, the method wherein the block level is a coding unit level or a transform unit level. Claim 4 A method according to claim 1, wherein the first format rule further specifies whether a co-coding mode for chroma Cb residuals and chroma Cr residuals is applicable to the first coding unit, which is indicated at the block level. Claim 5 In paragraph 4, the method wherein the block level is a coding unit level or a transform unit level. Claim 6 In claim 4, the first chroma quantization parameter used in the deblocking filtering process is applied to at least some samples along the edge of the first coding unit based on the second chroma quantization parameter used in the scaling process and a quantization parameter offset associated with the bit depth of the video, and the scaling process comprises: a step of applying quantization to at least some coefficients representing the current block during encoding; or a step of applying inverse quantization to at least some coefficients from the bitstream during decoding. Claim 7 In claim 6, the first chroma quantization parameter is the same as the second chroma quantization parameter used in the scaling process minus the quantization parameter offset associated with the bit depth of the video. Claim 8 In claim 6, when the value of the first variable representing the co-coding mode for the chroma Cb residual and the chroma Cr residual is 2, the first chroma quantization parameter is the same as the second chroma quantization parameter for the co-coding mode for the chroma Cb residual and the chroma Cr residual used in the scaling process minus the quantization parameter offset associated with the bit depth of the video. Claim 9 A method according to any one of claims 1 to 8, wherein the conversion comprises the step of encoding the video into the bitstream. Claim 10 A method according to any one of claims 1 to 8, wherein the conversion includes the step of decoding the video from the bitstream. Claim 11 An apparatus for processing video data comprising a processor and a non-transient memory having instructions, wherein, when executed by the processor, the instructions cause the processor to: perform a conversion between a video comprising one or more coding units and a bitstream of said video, said bitstream follows the first format rule specifying that for a chroma block of a first coding unit among one or more coding units, a chroma quantization parameter is allowed to be included in said bitstream at the block level according to the first format rule, said bitstream follows the second format rule specifying that for a second coding unit among one or more coding units, a first filtering process is activated depending only on the color sampling format of said video being 4:2:0, 4:2:2, or 4:4:4, said bitstream follows the second format rule specifying that the color sampling format of said video depends only on 4:2:0, 4:2:2, or 4:4:4, said first filtering process is a cross-component adaptive loop filtering processor that uses the value of a luminance sample to refine each chroma component by applying a filtering operation to a luminance component and then using the output of said filtering operation for chroma refinement in a loop filtering process, said first A device in which the luminance position of the luminance sample of the luminance component used in the filtering process is determined based on the color sampling format. Claim 12 In a non-transient computer-readable storage medium storing instructions, said instructions cause a processor to: perform a conversion between a video comprising one or more coding units and a bitstream of said video; said bitstream follows a format rule that specifies that for a chroma block of a first coding unit among the one or more coding units, a chroma quantization parameter is allowed to be included in said bitstream at the block level according to a format rule; said bitstream follows a second format rule that specifies that for a second coding unit among the one or more coding units, a first filtering process is activated depending on only one of the color sampling format of said video being 4:2:0, 4:2:2, or 4:4:4; said first filtering process is a cross-component adaptive loop filtering processor that uses the values ​​of luminance samples to refine each chroma component by applying a filtering operation to a luminance component and then using the output of said filtering operation for chroma refinement in a loop filtering process; said luminance samples of said luminance components used in said first filtering process A non-transient computer-readable storage medium in which the luma location is determined based on the color sampling format above. Claim 13 A non-transient computer-readable recording medium storing a bitstream of a video generated by a method performed by a video processing device, wherein the method comprises: a step of performing a conversion between a video comprising one or more coding units and a bitstream representation of said video, said bitstream follows said first format rule specifying that for a chroma block of a first coding unit among one or more coding units, a chroma quantization parameter is allowed to be included in said bitstream at the block level according to said first format rule, said bitstream follows said second format rule specifying that for a second coding unit among one or more coding units, a first filtering process is activated depending only on the color sampling format of said video being 4:2:0, 4:2:2, or 4:4:4, said bitstream follows said second format rule specifying that a color sampling format of said video is 4:2:0, 4:2:2, or 4:4:4, said first filtering process is a cross-component adaptive loop filtering processor that uses the value of a luminance sample to refine each chroma component by applying a filtering operation to a luminance component and then using the output of said filtering operation for chroma refinement in a loop filtering process, said first filtering A non-transient computer-readable recording medium in which the luminance position of the luminance sample of the luminance component used in the process is determined based on the color sampling format. Claim 14 delete