Cross-component adaptive loop filtering for video coding

By managing motion vectors in video encoding and decoding technology, the problem of insufficient compression ratio and complexity in the prior art is solved, and more efficient video processing and codec performance is achieved.

CN114946185BActive Publication Date: 2025-03-25DOUYIN CO LTD

Patent Information

Application Number
CN202080091580.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-01-01
Filing Date
2020-12-31
Publication Date
2025-03-25
Estimated Expiration
2040-12-31

AI Technical Summary

Technical Problem

The existing video encoding and codec technology has shortcomings in compression ratio and complexity, making it difficult to effectively manage motion vectors, resulting in poor codec performance.

Method used

A method of managing motion vectors is proposed, and the encoding and decoding process of video is optimized by performing conversion between the video unit and the bitstream of the video, regularizing the activation of cross-component adaptive loop filtering (CC-ALF) and adaptive loop filtering (ALF) modes.

Benefits of technology

By optimizing the management of motion vectors, the compression ratio of video encoding and decoding is improved and the complexity is reduced, achieving more efficient video processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114946185B_ABST
    Figure CN114946185B_ABST
Patent Text Reader

Abstract

A method for video processing comprises: performing conversion between a video unit of a video and a bitstream of the video according to a rule, wherein the rule specifies indicating in a bitstream in a mutually independent manner whether a cross-component adaptive loop filtering (CC‑ALF) mode and an adaptive loop filtering (ALF) mode are enabled to encode and decode the video unit.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] In accordance with the applicable provisions of the Patent Law and / or the Paris Convention, this application is based on International Patent Application No. PCT / US2020 / 067651 filed on December 31, 2020, and promptly claims priority to and the benefits of International Patent Application No. PCT / CN2020 / 070001 filed on January 1, 2020. For all legal purposes, the entire disclosure of the above application is incorporated herein by reference as part of the disclosure of this application. Technical Field

[0003] This patent document relates to video encoding technology, devices and systems. Background Art

[0004] Currently, efforts are being made to improve the performance of current video codec technologies to provide better compression ratios or to provide video encoding and decoding schemes that allow for lower complexity or parallel implementations. Several new video codec tools have recently been proposed by industry experts and are currently being tested to determine their effectiveness. Summary of the invention

[0005] Devices, systems and methods related to digital video coding and decoding are described, and in particular, to the management of motion vectors. The described methods can be applied to existing video coding standards (e.g., High Efficiency Video Codec (HEVC) or Universal Video Codec) and future video coding standards or video codecs.

[0006] In one representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes performing conversion between a video unit of a video and a bitstream of the video according to a rule, wherein the rule specifies indicating in a bitstream in a mutually independent manner whether to enable a cross-component adaptive loop filtering (CC-ALF) mode and an adaptive loop filtering (ALF) mode to encode and decode the video unit.

[0007] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes performing conversion between a video unit of a chroma component of a video and a bitstream of the video, wherein the bitstream conforms to the format rule, wherein the format rule specifies that the bitstream includes a syntax element only when the value of the chroma array type is not equal to zero or the color format of the video is not 4:0:0, the syntax element indicating whether cross-component filtering of the chroma component is enabled for all slices associated with a picture header.

[0008] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes performing a conversion between a video unit and a codec representation of the video unit, wherein during the conversion, deblocking filtering is used on a boundary of the video unit so that when a chroma quantization parameter (QP) table is used to derive parameters for the deblocking filtering, processing is performed on individual chroma QP values ​​through the chroma QP table.

[0009] In another representative aspect, the disclosed technology can be used to provide another method for video processing, the method comprising performing a conversion between a video unit and a codec representation of the video unit, wherein during the conversion, deblocking filtering is used on a boundary of the video unit, such that a chroma QP offset is used in the deblocking filtering, wherein the chroma QP offset is at a picture / slice / tile / brick / sub-picture level.

[0010] In another representative aspect, the disclosed technology can be used to provide another method for video processing, the method comprising performing a conversion between a video unit and a codec representation of the video unit, wherein during the conversion, deblocking filtering is used on a boundary of the video unit, so that a chroma QP offset is used in the deblocking filtering, wherein information related to the same luma codec unit is used in the deblocking filtering and used to derive the chroma QP offset.

[0011] In another representative aspect, the disclosed technology can be used to provide another method for video processing. The method includes performing a conversion between a video unit and a codec representation of the video unit, wherein during the conversion, deblocking filtering is used on a boundary of the video unit so that a chroma QP offset is used in the deblocking filtering, wherein an indication of enabling the use of the chroma QP offset is signaled in the codec representation.

[0012] In another representative aspect, the disclosed technology can be used to provide another method for video processing. The method includes performing a conversion between a video unit and a codec representation of the video unit, wherein during the conversion, a deblocking filter is used on a boundary of the video unit so that a chroma QP offset is used in the deblocking filter, wherein the chroma QP offset used in the deblocking filter is the same as the JCCR codec method applied on the boundary of the video unit or a method different from the JCCR codec method is applied on the boundary of the video unit.

[0013] In another representative aspect, the disclosed technology can be used to provide another method for video processing. The method includes performing a conversion between a video unit and a codec representation of the video unit, wherein during the conversion, a deblocking filter is used on a boundary of the video unit so that a chroma QP offset is used in the deblocking filter, wherein a boundary strength (BS) of the deblocking filter is calculated without comparing a reference picture and / or a number of motion vectors (MVs) associated with the video unit at the P-side boundary with a reference picture of the video unit at the Q-side boundary.

[0014] In another example aspect, another video processing method is disclosed. The method includes, for a conversion between a video unit of a component of a video and a codec representation of the video, determining a size of a quantization group of the video unit based on a constraint rule that the specified size must be greater than K, where K is a positive number; and performing the conversion based on the determination.

[0015] In another example aspect, another video processing method is disclosed. The method includes performing conversion between a video unit of a video and a bitstream of the video according to a rule, wherein the rule specifies whether the bitstream includes at least one of a control flag for a chroma block-based delta pulse codec modulation (BDPCM) mode, a palette mode, or an adaptive color transform (ACT) mode based on a value of a chroma array type of the video.

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

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

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

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

[0020] The above and other aspects and features of the disclosed technology are described in more detail in the drawings, the description and the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] Figure 1 An example of the overall processing flow of the deblocking filtering process is shown.

[0022] Figure 2An example of a flowchart of Bs calculation is shown.

[0023] Figure 3 An example of reference information used for Bs calculation at a CTU boundary is shown.

[0024] Figure 4 Examples of pixels involved in filtering on / off decisions and strong / weak filtering selection are shown.

[0025] Figure 5 An example of the overall processing flow of the deblocking filtering process in VVC is shown.

[0026] Figure 6 An example of the luma deblocking filtering process in VVC is shown.

[0027] Figure 7 An example showing the chroma deblocking filtering process in VVC

[0028] Figure 8 An example of filter length determination for sub-PU boundaries is shown.

[0029] Fig. 9A and Fig. 9B Examples of center positions of chroma blocks are shown.

[0030] Fig.10 Examples of blocks on the P side and the Q side are shown.

[0031] Fig.11 An example of using decoded information of a luma block is shown.

[0032] Fig.12 is a block diagram of an example of a hardware platform for implementing the visual media decoding or visual media encoding techniques described in this document.

[0033] Fig.13 A flow chart of an example method for video encoding and decoding is shown.

[0034] Fig.14A An example of the placement of the CC-ALF relative to other loop filtering is shown.

[0035] Fig. 14B An example of placement of CC-ALF relative to diamond filtering is shown.

[0036] Fig.15 An example flow chart of an Adaptive Color Transform (ACT) process is shown.

[0037] Fig.16 An example flow chart of an advanced deblocking control mechanism is shown.

[0038] Fig.17An example flow chart of an advanced deblocking control mechanism is shown.

[0039] Fig.18 is a block diagram illustrating a video encoding and decoding system according to some embodiments of the present disclosure.

[0040] Fig.19 is a block diagram illustrating an encoder according to some embodiments of the present disclosure.

[0041] Fig. 20 is a block diagram illustrating a decoder according to some embodiments of the present disclosure.

[0042] Fig.21 is a block diagram of an example video processing system in which the disclosed techniques may be implemented.

[0043] Figure 22-Figure 24 is a flow chart of an example method of video processing. DETAILED DESCRIPTION

[0044] 1.HEVC / H.265 video codec

[0045] Video codec standards have evolved primarily through the development of the well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, ISO / IEC produced MPEG-1 and MPEG-4 Video, and the two organizations worked together to produce the H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Codec (AVC) and H.265 / HEVC standards. Since H.262, video codec standards have been based on a hybrid video codec structure that utilizes temporal prediction plus transform codecs. To explore future video codec technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new approaches and applied them to reference software called the Joint Exploration Model (JEM). In April 2018, a Joint Video Experts Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to work on the VVC standard with the goal of reducing bitrate by 50% compared to HEVC.

[0046] 2.1. Deblocking Scheme in HEVC

[0047] The deblocking filtering process is performed on each CU in the same order as the decoding process. Vertical edges are filtered first (horizontal filtering), and then horizontal edges are filtered (vertical filtering). For both luminance and chrominance components, filtering is applied to determine the 8×8 block boundaries to be filtered. In order to reduce complexity, 4×4 block boundaries are not processed.

[0048] Figure 1 The overall processing flow of the deblocking filtering process is shown. The boundary can have three filtering states: no filtering, weak filtering, and strong filtering. Each filtering decision is based on the boundary strength Bs and the thresholds β and t C .

[0049] There are three kinds of boundaries that may be involved in the filtering process: CU boundaries, TU boundaries, and PU boundaries. CU boundaries, which are the outer edges of a CU, are always included in the filtering because CU boundaries are always either TU boundaries or PU boundaries. When the PU shape is 2NxN (N>4) and the RQT depth is equal to 1, the TU boundaries at the 8×8 block grid and the PU boundaries between each PU inside the CU are included in the filtering. An exception is that when the PU boundary is inside a TU, the boundary will not be filtered.

[0050] 2.1.1. Boundary strength calculation

[0051] Generally speaking, the boundary strength (Bs) reflects how strong filtering is needed at the boundary. If Bs is large, strong filtering should be considered.

[0052] Let P and Q be defined as the blocks included in the filtering, where P denotes blocks located to the left (vertical edge case) or above (horizontal edge case) of the boundary, and Q denotes blocks located to the right (vertical edge case) or above (horizontal edge case) of the boundary. Figure 2 It is shown how to calculate the Bs value based on the intra coding mode, the presence of non-zero transform coefficients and motion information, the reference picture, the number of motion vectors, and the motion vector difference.

[0053] Bs is calculated on a 4x4 block basis, but it is remapped to an 8x8 grid. The maximum of the two values ​​of Bs corresponding to 8 pixels consisting of a row in the 4x4 grid is selected as the Bs of the boundary in the 8x8 grid.

[0054] To reduce the line buffer memory requirements, only for CTU boundaries, such as Figure 3 As shown, the information in every other block (4×4 grid) on the left or above is reused.

[0055] 2.1.2.β and tC determination

[0056] Luma quantization parameter QP based on P and Q blocks respectively P and QP Q To derive the filter on / off decision, strong and weak filter selection, and the thresholds β and t involved in the weak filtering process C . Used to derive β and t C The Q is calculated as follows.

[0057] Q=((QP P +QPQ +1)>>1).

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

[0059] Table 1 Derivation of threshold variables β and t from input Q C

[0060] 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 <![CDATA[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 <![CDATA[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 <![CDATA[t C ]]> 5 5 6 6 7 8 9 9 10 10 11 11 12 12 13 13 14 14

[0061] 2.1.3. Filter on / off decision for 4 lines

[0062] Filter on / off decisions are done for four-line units. Figure 4 The pixels involved in the filter on / off decision are shown. The 6 pixels in the two red boxes of the first four rows are used to determine the filter on / off for the 4 rows. The 6 pixels in the two red boxes of the second 4 rows are used to determine the filter on / off for the second 4 rows.

[0063] If dp0+dq0+dp3+dq3<β, then filtering is turned on for the first four rows and the strong / weak filter selection process is applied. Each variable is derived as follows.

[0064] 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 |,

[0065] dp7=|p 2,7 –2*p 1,7 +p 0,7 |

[0066] 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 |,

[0067] dq7=|q2,7 –2*q 1,7 +q 0,7 |

[0068] If the condition is not met, no filtering is done for the first 4 rows. Otherwise, if the condition is met, dE, dEp1, and dEp2 are derived for the weak filtering process. The variable dE is set equal to 1. If dp0+dp3<(β+(β>>1))>>3, then the variable dEp1 is set equal to 1. If dq0+dq3<(β+(β>>1))>>3, then the variable dEq1 is set equal to 1.

[0069] For the second four rows, make decisions in the same way as above.

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

[0071] After the first four lines are determined to be filtered on in the filter on / off decision, if the following two conditions are met, the first four lines are filtered using strong filtering. Otherwise, weak filtering is used for filtering. The pixels involved are Figure 4 The pixels shown for the filter on / off decision are the same.

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

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

[0074] Similarly, if the following two conditions are met, the second 4 lines are filtered using strong filtering. Otherwise, weak filtering is used for filtering.

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

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

[0077] 2.1.4.1. Strong filtering

[0078] For strong filtering, the filtered pixel value is obtained by the following equation: It should be noted that three pixels are modified using four pixels as input to each P and Q block, respectively.

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

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

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

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

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

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

[0085] 2.1.4.2. Weak filtering

[0086] Δ is defined as follows.

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

[0088] When abs(Δ) is less than tC*10,

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

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

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

[0092] If dEp1 is equal to 1,

[0093] Δp=Clip3(-(t C >>1),t C >>1,(((p2+p0+1)>>1)–p1+Δ)>>1)

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

[0095] If dEq1 is equal to 1,

[0096] Δq=Clip3(-(t C >>1),tC >>1,(((q2+q0+1)>>1)–q1–Δ)>>1)

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

[0098] It should be noted that three pixels are used as input to each P and Q block, respectively, to modify a maximum of two pixels.

[0099] 2.1.4.3. Chroma filtering

[0100] Chroma filtering Bs is inherited from luma. Chroma filtering is performed if Bs>1 or if codec chroma coefficients exist. No other filtering is determined. And 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.

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

[0102] p0'=Clip1 C (p0+α)

[0103] q0'=Clip1 C (q0-α)

[0104] 2.2 Deblocking Scheme in VVC

[0105] In VTM6, the deblocking filtering process is basically the same as in HEVC. However, the following modifications are added.

[0106] a) The filtering strength of the deblocking filter depends on the average brightness level of the reconstructed samples.

[0107] b) Extension and adaptation of deblocking tC table for 10-bit video

[0108] c) 4x4 grid deblocking for brightness

[0109] d) Stronger deblocking filter for luminance

[0110] e) Stronger deblocking filter for chroma

[0111] f) Deblocking filter for sub-block boundaries

[0112] g) Deblocking decisions that adapt to small differences in motion

[0113] Figure 5 Depicted is a flow chart of a deblocking filtering process in VVC for a codec unit.

[0114] 2.2.1. Filter strength depending on the reconstructed average brightness

[0115] In HEVC, the filtering strength of the deblocking filter is determined by the average quantization parameter qP L Derived variables β and t C In VTM6, the deblocking filter is applied to qP according to the brightness level of the reconstructed sample. L An offset is added to control the strength of the deblocking filter (if the SPS flag of this method is true). The reconstructed luminance level LL is derived as follows:

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

[0117] Among them, for i = 0..3 and k = 0 and 3, the sample value p i,k and q i,k The derivation of is shown in ______. Then LL is used to determine the offset qpOffset based on the threshold signaled in SPS. After this, qP is derived as follows L To derive β and t C .

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

[0119] where Qp Q and Qp P Respectively represent the sample points q 0,0 and p 0,0 The quantization parameter of the codec unit. In the current VVC, this method is only applied to the luma deblocking process.

[0120] 2.2.2. 4x4 deblocking grid for brightness

[0121] HEVC uses an 8×8 deblocking grid for both luma and chroma. In VTM6, a 4x4 grid deblocking for luma boundaries was introduced to handle blocking artifacts from rectangular transform shapes. Parallel-friendly luma deblocking on the 4×4 grid is achieved by limiting the number of samples to be deblocked to 1 sample per side of a vertical luma boundary (where the width of a side is 4 or less) or 1 sample per side of a horizontal luma boundary (where the height of a side is 4 or less).

[0122] 2.2.3. Derivation of Boundary Strength for Luminance

[0123] The detailed boundary strength derivation can be found in Table 2. The conditions in Table 2 are checked sequentially.

[0124] Table 2 Derivation of boundary strength

[0125]

[0126]

[0127] 2.2.4. Stronger deblocking filter for luminance

[0128] When samples on either side of the boundary belong to a large block, the proposal uses bilinear filtering. Samples belonging to a large block are defined when the width of the vertical edge is >= 32 and when the height of the horizontal edge is >= 32.

[0129] Bilinear filtering is listed below.

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

[0131] –p i ′=(fi i *Middke s,t +(64-f i )*P s +32)>>6), cut to p i ±tcPD i

[0132] –q j ′=(g j *Middle s,t +(64-g j )*Q s +32)>>6), cut to q j ±tcPD j

[0133] Among them, tcPD i and tcPD j The term is the position-dependent shear described in Section 2.2.5, and g j 、f i 、Middle s,t , P s and Q s Given as follows:

[0134]

[0135]

[0136]

[0137] 2.2.5. Deblocking control for brightness

[0138] In this subsection the deblocking decision process is described.

[0139] Wider-stronger luminance filtering is used only when Condition1, Condition2, and Condition3 are all true.

[0140] Condition 1 is the "large block condition". This condition detects whether the samples on the P side and the Q side belong to a large block, which is represented by the variables bSidePisLargeBlk and bSideQisLargeBlk respectively.

[0141] bSidePisLargeBlk and bSideQisLargeBlk are defined as follows.

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

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

[0144] Based on bSidePisLargeBlk and bSideQisLargeBlk, Condition1 is defined as follows.

[0145] Condition1=(bsidepislageblk||bsidepislageblk)? TRUE:FALSE

[0146] Next, if Condition1 is true, Condition2 will be further checked. First, the following variables are derived:

[0147] First, derive dp0, dp3, dq0, dq3 as in HEVC

[0148] if (p side is greater than or equal to 32)

[0149] dp0=(dp0+Abs(p5,02*P4,0+p3,0)+1)>>1

[0150] dp3=(dp3+Abs(p5,32*P4,3+p3,3)+1)>>1

[0151] if (q side is greater than or equal to 32)

[0152] dq0=(dq0+Abs(q5,02*Q4,0+q3,0)+1)>>1

[0153] dq3=(dq3+Abs(q5,32*Q4,3+q3,3)+1)>>1

[0154] Then dpq0, dpq3, dp, dq, d are derived as in HEVC.

[0155] Then Condition2 is defined as follows.

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

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

[0158] If Condition1 and Condition2 are valid, then check if any block uses subblocks:

[0159] if (bsidepislageblk)

[0160] if (modeBlockP == SUBBLOCKMODE)

[0161] Sp=5

[0162] otherwise

[0163] Sp=7

[0164] otherwise

[0165] Sp=3

[0166] if (bSideQisLargeBlk)

[0167] if (mode block Q == SUBBLOCKMODE)

[0168] Sq=5

[0169] otherwise

[0170] Sq=7

[0171] otherwise

[0172] Sq=3

[0173] Finally, if both Condition1 and Condition2 are valid, the proposed deblocking method will check Condition3 (large block strong filtering condition), which is defined as follows.

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

[0175] As in HEVC derivation of dpq.

[0176] sp3 = Abs(p3-p0), as derived in HEVC

[0177] if (p side is greater than or equal to 32)

[0178] If (Sp == 5)

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

[0180] otherwise

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

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

[0183] if (q side is greater than or equal to 32)

[0184] If (Sq == 5)

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

[0186] otherwise

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

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

[0189] Figure 6 A flow chart describing the luma deblocking filtering process.

[0190] 2.2.6. Strong deblocking filtering for chroma

[0191] The following strong deblocking filter for chroma is defined:

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

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

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

[0195] The proposed chroma filtering performs deblocking on a 4×4 chroma sample grid.

[0196] 2.2.7. Deblocking Control for Chroma

[0197] The above chroma filtering performs deblocking on an 8×8 chroma sample grid. Chroma strong filtering is used on both sides of the block boundary. Here, chroma filtering is selected when both sides of the chroma edge are greater than or equal to 8 (in units of chroma samples), and the following decision with three conditions is met. The first is a decision for determining boundary strength and large blocks. The second and third are basically the same as for HEVC luma decisions, which are an on / off decision and a strong filtering decision, respectively.

[0198] Figure 7 Depicts a flow chart of the chroma deblocking filtering process.

[0199] 2.2.8. Position-dependent shearing

[0200] The proposal also introduces position-dependent clipping tcPD, which is applied to the output samples of the luminance filtering process including strong and long filtering of 7, 5 and 3 samples at the modification boundaries. Assuming a quantization error distribution, the proposal increases the clipping value for samples that are expected to have higher quantization noise and thus are expected to have larger deviations of the reconstructed sample values ​​from the true sample values.

[0201] For each P or Q boundary filtered with the proposed asymmetric filtering, depending on the outcome of the decision process described in Section 2.2, a position-dependent threshold table is selected from the Tc7 and Tc3 tables, which is provided to the decoder as side information:

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

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

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

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

[0206] For P or Q edges filtered with a short symmetric filter, a lower magnitude position-dependent threshold is applied:

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

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

[0209] p" i =clip3(p' i +tcP i ,p' i –tcP i ,p' i );

[0210] q" j =clip3(q' j +tcQ j ,q' j –tcQ j ,q' j );

[0211] where p' i and q' i is the sample value after filtering, 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 parameters and tcPD and tcQD. The term clip3 is the clipping function as specified in VVC.

[0212] 2.2.9. Sub-block deblocking adjustment

[0213] In order to implement parallel friendly deblocking using both long filtering and sub-block deblocking, long filtering is restricted to modifying at most 5 samples on one side using sub-block deblocking (AFFINE or ATMVP), as shown in the luma control for long filtering. In addition, sub-block deblocking is adjusted so that sub-block boundaries on the 8×8 grid close to CU or implicit TU boundaries are restricted to modifying at most two samples on each side.

[0214] The following applies to sub-block boundaries that are not aligned with CU boundaries.

[0215]

[0216] Where edges equal to 0 correspond to CU boundaries, edges equal to 2 or equal to orthogonalLength-2 correspond to sub-block boundaries 8 samples from the CU boundary, etc. Where implicit-TU is true if implicit partitioning of TUs is used. Figure 8 A flowchart showing the process of determining TU boundaries and sub-PU boundaries is shown.

[0217] When the horizontal boundary is aligned with the CTU boundary, the filtering of the horizontal boundary is limited to Sp=3 for luma, Sp=1 and Sq=1 for chroma.

[0218] 2.2.10. Deblocking Decisions Adapting to Small Differences in Motion

[0219] HEVC enables deblocking of prediction unit boundaries when the difference in at least one motion vector component between blocks on respective sides of the boundary is equal to or greater than a threshold of 1 sample. In VTM6, a threshold of half luma samples was introduced to allow elimination of blocking artifacts originating from boundaries between inter-prediction units with small differences in motion vectors.

[0220] 2.3. Combined Inter and Intra Prediction (CIIP)

[0221] In VTM6, when a CU is encoded and decoded in Merge mode, if the CU contains at least 64 luma samples (i.e., the CU width multiplied by the CU height is equal to or greater than 64), and if both the CU width and the CU height are less than 128 luma 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 implies, CIIP prediction combines the inter prediction signal with the intra prediction signal. The inter prediction signal P in CIIP mode is derived using the same inter prediction process applied to the regular merge mode. inter ; and the intra-frame prediction signal P intra is derived after the regular intra prediction process using planar mode. Then, the intra and inter prediction signals are combined using a weighted average, where the calculation weights depend on the codec mode of the top and left neighboring blocks, as shown below:

[0222] – If the top area is available and is intra-coded, set isIntraTop to 1, otherwise set isIntraTop to 0;

[0223] – If the left field is available and is intra-coded, set isIntraLeft to 1, otherwise set isIntraLeft to 0;

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

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

[0226] – Otherwise, set wt to 1.

[0227] The CIIP forecast is formed as follows:

[0228] P CIIP =((4-wt)*P inter +wt*P intra +2)>>2

[0229] 2.4. Chroma QP Table Design in VTM-6.0

[0230] The chroma QP table design presented in JVET-O0650 is adopted by VVC. It proposes a signaling mechanism for the chroma QP table that enables flexibility to provide the encoder with the opportunity to optimize the table for SDR and HDR content. It supports separate signaling tables for Cb and Cr components. The proposed mechanism signals the chroma QP table as a piecewise linear function.

[0231] 2.5. Transform Skip (TS)

[0232] As in HEVC, the residual of a block can be encoded and decoded with transform skip mode. To avoid redundancy in syntax encoding and decoding, the transform skip flag is not signaled when the CU level MTS_CU_flag is not equal to zero. The block size restrictions for transform skip are the same as the size restrictions for MTS in JEM4, which indicates that transform skip applies to the CU when both the block width and height are equal to or less than 32. Note that when LFNST or MIP is activated for the current CU, the implicit MTS transform is set to DCT2. In addition, when MTS is enabled for an inter-coded block, implicit MTS can still be enabled.

[0233] Furthermore, for transform skip blocks, the minimum allowed quantization parameter (QP) is defined as 6*(internalBitDepth−inputBitDepth)+4.

[0234] 2.6. Joint Coding and Decoding of Chroma Residual (JCCR)

[0235] VVC Draft 6 supports a mode in which the chroma residual is jointly encoded and decoded. The use (activation) of the joint chroma coding mode is indicated by the TU level flag tu_joint_cbcr_residual_flag, and the selected mode is implicitly indicated by the chroma CBF. If one or both chroma CBFs of the TU are equal to 1, the flag tu_joint_cbcr_residual_flag is present. In the PPS and slice headers, the chroma QP offset value is signaled for the joint chroma residual coding mode to distinguish it from the usual chroma QP offset value signaled for the usual chroma residual coding mode. These chroma QP offset values ​​are used to derive the chroma QP values ​​for those blocks encoded and decoded using the joint chroma residual coding mode. When the corresponding joint chroma coding mode (mode 2 in Table 3) is active in a TU, the chroma QP offset is added to the chroma QP derived from the applied luminance during quantization and decoding of the TU. For other modes (modes 1 and 3 in Table 3), the chroma QP is derived in the same way as for the traditional Cb or Cr blocks. Table 3 describes the reconstruction process of the chroma residuals (resCb and resCr) from the transmitted transform blocks. When this mode is activated, a single joint chroma residual block (resJointC[x][y] in Table 3) is signaled, and the Cb residual block (resCb) and the Cr residual block (resCr) are derived considering information such as tu_cbf_cb, tu_cbf_cr and CSign (which is the symbol value specified in the slice header).

[0236] At the encoder side, the joint chroma components are derived as follows. Depending on the mode (as listed in the table above), the encoder generates resJointC{1,2} as follows:

[0237] If mode is equal to 2 (with reconstructed single residual Cb=C, Cr=CSign*C), then the joint residual is determined according to

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

[0239] Otherwise, if mode is equal to 1 (with reconstructed single residual Cb=C, Cr=(CSign*C) / 2), then the joint residual is determined according to

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

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

[0242] resJointC[x][y] = (4*resCr[x][y] + 2*CSign*resCb[x][y]) / 5. Table 3 Reconstruction of chroma residual. The value CSign is the symbol value (+1 or -1) specified in the slice header, and resJointC[][] is the transmitted residual.

[0243]

[0244] The above three modes utilize different QPs. For mode 2, the QP offset signaled in the PPS for JCCR codec blocks is applied, while for the other two modes, this offset is not applied, but the QP offset signaled in the PPS for non-JCCR codec blocks is applied.

[0245] The corresponding specifications are as follows:

[0246] 8.7.1 Derivation process of quantization parameters

[0247] Variable Qp Y The derivation is as follows:

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

[0249] Luma quantization parameter Qp′ Y The derivation is as follows:

[0250] Qp′ Y =Qp Y +QpBdOffset Y (8-934)

[0251] When ChromaArrayType is not equal to 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, the following conditions apply:

[0252] – When treeType is equal to DUAL_TREE_CHROMA, the variable Qp Y Set to the luma quantization parameter Qp of the luma codec unit covering the luma position (xCb+cbWidth / 2,yCb+cbHeight / 2) Y .

[0253] – Variable qP Cb ,qP Cr and qPCbCr The derivation is as follows:

[0254] Q Chroma =Clip3(-QpBdOffset C ,63,Qp Y )

[0255] (8-935)

[0256] Q Cb =ChromaQpTable[0][qPi Chroma ]

[0257] (8-936)

[0258] Q Cr =ChromaQpTable[1][qPi Chroma ]

[0259] (8-937)

[0260] Q CbCr =ChromaQpTable[2][qPi Chroma ]

[0261] (8-938)

[0262] – For the chromaticity quantization parameters of Cb and Cr components, Qp′ Cb and Qp′ Cr And joint Cb-Cr codec Qp′ CbCr The derivation is as follows:

[0263] Qp′ Cb =Clip3(-QpBdOffset C ,63,qP Cb +pps_cb_qp_offset+slice_cb_qp_

[0264] offset+CuQpOffset Cb )

[0265] +QpBdOffset C (8-939)

[0266] Qp′ Cr =Clip3(-QpBdOffset C ,63,qP Cr +pps_cr_qp_offset+slice_cr_qp_off

[0267] set+CuQpOffset Cr )

[0268] +QpBdOffset C (8-940)

[0269] Qp′ CbCr =Clip3(-QpBdOffset C ,63,qP CbCr +pps_cbcr_qp_offset+slice_cbcr

[0270] _qp_offset+CuQpOffset CbCr )

[0271] +QpBdOffset C (8-941)

[0272] 8.7.3 Scaling of Transform Coefficients

[0273] The inputs to this process are:

[0274] – Luma position (xTbY, yTbY), specifies the top left sample of the current luma transform block relative to the top left luma sample of the current picture,

[0275] – variable nTbW, specifies the transform block width,

[0276] – variable nTbH, specifies the transform block height,

[0277] – Variable cIdx, specifies the color component of the current block,

[0278] –The variable bitDepth specifies the bit depth of the current color component.

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

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

[0281] – If cIdx is equal to 0 and transform_skip_flag[xTbY][yTbY] is equal to 0, the following applies:

[0282] qP=Qp′ Y (8-950)

[0283] – Otherwise, if cIdx is equal to 0 (and transform_skip_flag[xTbY][yTbY] is equal to 1), the following applies:

[0284] qP=Max(QpPrimeTsMin,Qp′Y ) (8-951)

[0285] – Otherwise, if TuCResMode[xTbY][yTbY] is equal to 2, the following applies:

[0286] qP=Qp′ CbCr (8-952)

[0287] – Otherwise, if cIdx is equal to 1, the following applies:

[0288] qP=Qp′ Cb (8-953)

[0289] – Otherwise (cIdx equals 2), the following applies:

[0290] qP=Qp′ Cr (8-954)

[0291] 2.7. Cross-Component Adaptive Loop Filtering (CC-ALF)

[0292] Down Fig.14A Figure 2 shows the placement of CC-ALF relative to other loop filters. CC-ALF works by applying a linear diamond filter ( Fig. 14B ) to operate, expressed as

[0293]

[0294] in

[0295] (x,y) is the position of the refined chroma component i

[0296] (x C ,y C ) is the brightness position based on (x,y)

[0297] S i is the filtering support for chroma component i in brightness

[0298] c i (x0,y0) represents the filter coefficient

[0299] Key characteristics of the CC-ALF process include:

[0300] The support area is centered around its luminance position (x C ,y C ) is calculated based on the spatial scaling factor between the luma and chroma planes.

[0301] All filter coefficients are transmitted in APS and have 8-bit dynamic range.

[0302] APS can be referenced in the slice header.

[0303] The CC-ALF coefficients for each chroma component of a slice are also stored in the buffer corresponding to the temporal sub-layer. The use of a slice level flag facilitates the reuse of these temporal sub-layer filter coefficient sets.

[0304] The application of CC-ALF filtering is controlled by a variable block size and is signaled by a context codec flag received for each sample block. The block size is received at the slice level along with a CC-ALF enable flag for each chroma component.

[0305] The border filling of the horizontal virtual borders utilizes repetition. For the remaining borders, the same type of filling as the regular ALF is used.

[0306] 2.8 Derivation process of quantization parameters

[0307] The QP is derived based on the neighborhood QP and the decoded delta QP. The text related to QP derivation in JVET-P2001-vE is given below.

[0308] The inputs to this process are:

[0309] – Luma position (xCb, yCb), specifies the top left luminance sample of the current codec block relative to the top left luminance sample of the current picture,

[0310] – The variable cbWidth specifies the width of the current codec block in luminance samples.

[0311] – The variable cbHeight specifies the height of the current codec block in luminance samples.

[0312] – The variable treeType specifies whether a single tree (SINGLE_TREE) or a dual tree is used to split the codec tree nodes, and when using a dual tree, whether the luma (DUAL_TREE_LUMA) or chroma components (DUAL_TREE_CHROMA) are currently processed.

[0313] In this process, the luma quantization parameter Qp′Y and the chroma quantization parameters Qp′Cb, Qp′Cr and Qp′CbCr are derived.

[0314] The luma position (xQg, yQg) specifies the top left luma sample of the current quantization group relative to the top left luma sample of the current picture. The horizontal and vertical positions xQg and yQg are set equal to CuQgTopLeftX and CuQgTopLeftY respectively.

[0315] Note –: The current quantization group is a rectangular area inside the codec tree block that shares the same qPY_PRED. Its width and height are equal to the width and height of the codec tree node whose top left luma sample position is assigned to variables CuQgTopLeftX and CuQgTopLeftY.

[0316] When treeType is equal to SINGLE_TREE or DUAL_TREE_LUMA, the predicted luma quantization parameter qPY_PRED is derived by the following sequential steps:

[0317] 1. The variable qPY_PREV is derived as follows:

[0318] – qPY_PREV is set equal to SliceQpY if one or more of the following conditions are true:

[0319] – The current quantization group is the first quantization group in the slice.

[0320] – The current quantization group is the first quantization group in the slice.

[0321] – The current quantization group is the first quantization group in the CTB row of the slice, and entropy_coding_sync_enabled_flag is equal to 1.

[0322] – Otherwise, qPY_PREV is set equal to the luma quantization parameter QpY of the last luma codec unit of the previous quantization group in decoding order.

[0323] 2. Invoke the derivation process for the availability of neighboring blocks specified in Section 6.4.4, setting the position (xCurr, yCurr) equal to (xCb, yCb), the neighboring position (xNbY, yNbY) equal to (xQg-1, yQg), checkPredModeY equal to FALSE, and cIdx equal to 0 as input, and assign the output to availableA. The variable qPY_A is derived as follows:

[0324] – qPY_A is set equal to qPY_PREV if one or more of the following conditions are true:

[0325] –availableA is equal to FALSE.

[0326] – The CTB containing the luma codec block covering the luma position (xQg-1, yQg) is not equal to the CTB containing the current luma codec block at (xCb, yCb), i.e., all of the following conditions are true:

[0327] –(xQg-1)>>CtbLog2SizeY is not equal to (xCb)>>CtbLog2SizeY

[0328] –(yQg)>>CtbLog2SizeY is not equal to (yCb)>>CtbLog2SizeY

[0329] – Otherwise, qPY_A is set to the luma quantization parameter QpY of the codec unit containing the luma codec block covering (xQg-1, yQg).

[0330] 3. Invoke the neighborhood block availability derivation process specified in Section 6.4.4, setting the position (xCurr, yCurr) equal to (xCb, yCb), the neighborhood position (xNbY, yNbY) equal to (xQg, yQg–1), checkPredModeY equal to FALSE, and cIdx equal to 0 as input, and assign the output to availableB. The variable qPY_B is derived as follows:

[0331] – qPY_B is set equal to qPY_PREV if one or more of the following conditions are true:

[0332] –availableB is equal to FALSE.

[0333] – The CTB containing the luma codec block covering luma position (xQg, yQg–1) is not equal to the CTB containing the current luma codec block at (xCb, yCb), i.e., all of the following conditions are true:

[0334] – (xQg)>>CtbLog2SizeY is not equal to (xCb)>>CtbLog2SizeY

[0335] –(yQg-1)>>CtbLog2SizeY is not equal to (yCb)>>CtbLog2SizeY

[0336] – Otherwise, qPY_B is set equal to the luma quantization parameter QpY of the codec unit containing the luma codec block covering (xQg, yQg 1).

[0337] 4. The predicted brightness quantization parameter qPY_PRED is derived as follows:

[0338] – qPY_PRED is set equal to the inclusive coverage (xQg, yQg) if all of the following conditions are met

[0339] –1) Luma quantization parameter QpY of the codec unit of the luma codec block:

[0340] –availableB is equal to TRUE.

[0341] – The current quantization group is the first quantization group of the CTB row in the slice.

[0342] – Otherwise, qPY_PRED is derived as follows:

[0343] qPY_PRED=(qPY_A+qPY_B+1)>>1 (1115)

[0344] The variable QpY is derived as follows:

[0345] QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffset)%(64+QpBdOffset))-QpBdOffset (1116)

[0346] The luminance quantization parameter Qp′Y is derived as follows:

[0347] Qp′Y=QpY+QpBdOffset (1117)

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

[0349] – When treeType is equal to DUAL_TREE_CHROMA, the variable QpY is set equal to the luma quantization parameter QpY of the luma codec unit covering the luma position (xCb+cbWidth / 2,yCb+cbHeight / 2).

[0350] –The variables qPCb, qPCr and qPCbCr are derived as follows:

[0351] qPChroma=Clip3(-QpBdOffset,63,QpY) (1118)

[0352] qPCb=ChromaQpTable[0][qPChroma] (1119)

[0353] qPCr=ChromaQpTable[1][qPChroma] (1120)

[0354] qPCbCr=ChromaQpTable[2][qPChroma] (1121)

[0355] – For the chrominance quantization parameters of Cb and Cr components, Qp′Cb and Qp′Cr and the joint Cb-Cr codec Qp′CbCr are derived as follows:

[0356] Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+

[0357] slice_cb_qp_offset+CuQpOffsetCb)

[0358] +QpBdOffset (1122)

[0359] Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)

[0360] +QpBdOffset (1123)

[0361] Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset (1124)

[0362] 2.9 Adaptive Color Transform (ACT)

[0363] Fig.15 The decoding flow chart of the application ACT is shown. Figure 1 As shown, the color space conversion is performed in the residual domain. Specifically, an additional decoding module, namely inverse ACT, is introduced after the inverse transform to convert the residual from the YCgCo domain back to the original domain.

[0364] In VVC, unless the maximum transform size is less than the width or height of a codec unit (CU), a CU leaf node is also used as the unit of transform processing. Therefore, in the proposed implementation, the ACT flag is signaled for a CU to select the color space for encoding and decoding its residual. In addition, following the HEVC ACT design, for inter and IBC CUs, ACT is only enabled when there is at least one non-zero coefficient in the CU. For intra CUs, ACT is enabled only when the chroma component selects the same intra prediction mode of the luminance component (i.e., DM mode).

[0365] The core transform for color space conversion remains the same as for HEVC. Specifically, the following forward and inverse YCgCo color transform matrices are applied as described below.

[0366]

[0367] Furthermore, to compensate for the change in dynamic range of the residual signal before and after color transformation, a QP adjustment of (-5, -5, -3) is applied to the transformed residual.

[0368] On the other hand, Fig.15 As shown, the forward and inverse color transforms require access to the residuals of all three components. Correspondingly, in the proposed implementation, ACT is disabled in the following two scenarios, in which not all residuals of the three components are available.

[0369] 1. Split tree partitioning: When split tree is applied, the luma and chroma samples within a CTU are divided by different structures. This results in the CU in the luma tree containing only the luma component, and the CU in the chroma tree containing only two chroma components.

[0370] Intra-frame sub-partition prediction (ISP): ISP sub-partitioning is only applied to luma, while chroma signals are encoded and decoded without partitioning. In the current ISP design, except for the last ISP sub-partitioning, other sub-partitioning only contains luma components.

[0371] 2.10 Advanced Deblocking Control in VVC Draft 7

[0372] The control mechanism is as follows Fig.16 shown.

[0373] 2.11 Cross-Component Adaptive Loop Filter (CC-ALF)

[0374] Fig.14A Figure 2 shows the placement of CC-ALF relative to other loop filters. CC-ALF works by applying a linear diamond filter ( Fig. 14B ) to operate, expressed as

[0375]

[0376] in

[0377] (x,y) is the position of the refined chroma component i

[0378] (x C ,y C ) is the brightness position based on (x,y)

[0379] S i is the filtering support for chroma component i in brightness

[0380] c i (x0,y0) represents the filter coefficient (2-3)

[0381] The support region is centered around the brightness position (x C ,y C ) is calculated based on the spatial scaling factor between the luminance and chrominance planes. All filter coefficients are transmitted in the APS and have an 8-bit dynamic range. The APS can be referenced in the slice header. The CC-ALF coefficients for each chrominance component of the slice are also stored in the buffer corresponding to the time domain sublayer. The use of slice level flags facilitates the reuse of these time domain sublayer filter coefficient sets. The application of CC-ALF filtering is controlled on variable block sizes (i.e. 16×16, 32×32, 64×64, 128×128) and is signaled by the context codec flag received for each sample block. The block size and CC-ALF enable flag are received at the slice level for each chrominance component. The boundary filling of the horizontal virtual boundaries utilizes repetition. For the remaining boundaries, the same type of padding as conventional ALF is used.

[0382] 2.11.1 Syntax Design of CC-ALF in JVET-Q0058

[0383] 7.3.2.6 Picture Header RBSP Syntax

[0384]

[0385]

[0386]

[0387] 7.3.2.16 Adaptive Loop Filter Data Syntax

[0388]

[0389]

[0390] 7.3.7 Strip Header Syntax

[0391]

[0392]

[0393] pic_cross_component_alf_cb_enabled_flag is equal to 1, specifying that cross-component Cb filtering is enabled for all slices associated with the PH and can be applied to Cb color components in the slice.

[0394] pic_cross_component_alf_cb_enabled_flag is equal to 0, specifying that cross-component Cb filtering may be disabled for one, more, or all slices associated with the PH. When not present, pic_cross_component_alf_cb_enabled_flag is inferred to be equal to 0.

[0395] pic_cross_component_alf_cb_aps_id specifies the adaptation_parameter_set_id of the ALF APS referenced by the Cb color component of the slice associated with the PH.

[0396] The value of alf_cross_component_cb_filter_signal_flag shall be equal to 1 for APS NAL units with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to pic_cross_component_alf_cb_aps_id.

[0397] pic_cross_component_cb_filters_signalled_minus1 plus 1 specifies the number of cross-component Cb filtering. The value of pic_cross_component_cb_filters_signalled_minus1 should be in the range of 0 to 3.

[0398] When pic_cross_component_alf_cb_enabled_flag is equal to 1, a bitstream conformance requirement is that pic_cross_component_cb_filters_signalled_minus1 shall be less than or equal to the alf_cross_component_cb_filters_signalled_minus1 value in the referenced ALF APS referred to by pic_cross_component_alf_cb_aps_id.

[0399] pic_cross_component_alf_cr_enabled_flag equal to 1 indicates that cross-component Cr filtering is enabled for all slices associated with the PH and can be applied to Cr color components in the slices.

[0400] pic_cross_component_alf_cr_enabled_flag equal to 0 indicates that cross-component Cr filtering may be disabled for one, more, or all slices associated with the PH. When not present, pic_cross_component_alf_cr_enabled_flag is inferred to be equal to 0.

[0401] pic_cross_component_alf_cr_aps_id specifies the adaptation_parameter_set_id of the ALF APS referenced by the Cr color component of the slice associated with the PH.

[0402] The value of alf_cross_component_cr_filter_signal_flag shall be equal to 1 for APS NAL units with aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to pic_cross_component_alf_cr_aps_id.

[0403] pic_cross_component_cr_filters_signalled_minus1 plus 1 specifies the number of cross-component Cr filtering. The value of pic_cross_component_cr_filters_signalled_minus1 should be in the range of 0 to 3.

[0404] When pic_cross_component_alf_cr_enabled_flag is equal to 1, a bitstream conformance requirement is that pic_cross_component_cr_filters_signalled_minus1 shall be less than or equal to the alf_cross_component_cr_filters_signalled_minus1 value in the referenced ALF APS referred to by pic_cross_component_alf_cr_aps_id.

[0405] alf_cross_component_cb_filter_signal_flag equal to 1 specifies that cross-component Cb filtering is signaled. alf_cross_component_cb_filter_signal_flag equal to 0 specifies that cross-component Cb filtering is not signaled. When ChromaArrayType is equal to 0, alf_cross_component_cb_filter_signal_flag shall be equal to 0.

[0406] alf_cross_component_cb_filters_signalled_minus1 plus 1 specifies the number of cross-component Cb filters signaled in the current ALF APS.

[0407] The value of alf_cross_component_cb_filters_signaled_minus1 should be in the range of 0 to 3.

[0408] alf_cross_component_cb_coeff_plus32[k][j] minus 32 specifies the value of the j-th coefficient of the k-th cross-component Cb filter set being signaled. When alf_cross_component_cb_coeff_plus32[k][j] is not present, it is inferred to be equal to 32.

[0409] has elements for j=0..7

[0410] CcAlfApsCoeff Cb The k-th cross-component Cb filter coefficient CcAlfApsCoeff signaled by [adaptation_parameter_set_id][k][j] Cb [adaptation_parameter_set_id][k] is derived as follows:

[0411] CcAlfApsCoeff Cb [adaptation_parameter_set_id][k][j]=alf_cross_component_cb_coeff_plus32[k][j]-32 (7-51)

[0412] alf_cross_component_cr_filter_signal_flag equal to 1 specifies that cross-component Cr filtering is signaled. alf_cross_component_cr_filter_signal_flag equal to 0 specifies that cross-component Cr filtering is not signaled. When ChromaArrayType is equal to 0, alf_cross_component_cr_filter_signal_flag shall be equal to 0.

[0413] alf_cross_component_cr_filters_signalled_minus1 plus 1 specifies the number of cross-component Cr filters signaled in the current ALF APS.

[0414] The value of alf_cross_component_cr_filters_signalled_minus1 should be in the range of 0 to 3.

[0415] alf_cross_component_cr_coeff_plus32[k][j] minus 32 specifies the value of the jth coefficient of the kth cross-component Cr filter set to be signaled.

[0416] When alf_cross_component_cr_coeff_abs[k][j] is not present, it is inferred to be equal to 32.

[0417] has elements for j=0..7

[0418] CcAlfApsCoeff Cr The k-th cross-component Cr filter coefficient CcAlfApsCoeff signaled by [adaptation_parameter_set_id][k][j] Cr [adaptation_parameter_set_id][k] is derived as follows:

[0419] CcAlfApsCoeff Cr [adaptation_parameter_set_id][k][j]=alf_cross_component_cr_coeff_plus32[k][j]–32 (7-52)

[0420] 3. Disadvantages of existing implementations

[0421] DMVR and BIO do not involve the original signal during the refinement of motion vectors, which may cause the codec block to have inaccurate motion information. In addition, DMVR and BIO sometimes use fractional motion vectors after motion refinement, while screen video usually has integer motion vectors, which makes the current motion information more inaccurate and makes the codec performance worse.

[0422] 1. The interaction between chroma QP table and chroma deblocking may be problematic, for example, the chroma QP table should be applied to individual QPs rather than the weighted sum of QPs.

[0423] 2. The logic of the luminance deblocking filtering process is complex for hardware design.

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

[0425] 4. In the BS decision process, JCCR is treated separately from those blocks to which JCCT codec is not applied. However, JCCR is just a special way of coding the residual. Therefore, this design may bring additional complexity without obvious benefits.

[0426] 5. In chromaticity edge determination, Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 Qp of the codec unit of the codec block Y However, during quantization / dequantization, the QP of a chroma sample is derived from the QP of the luma block covering the center position of the current chroma CU. When dual-tree is enabled, different positions of the luma block may result in different QPs. Therefore, during chroma deblocking, the wrong QP may be used for filtering decisions. This misalignment may cause visual artifacts. Fig. 9A and 9B of Figure 9A-9B An example is shown. Figure 9A-9B Middle, left ( Fig. 9A ) is the corresponding CTB partition for the luma block, and the right side ( Fig. 9B ) is the chroma CTB split under the dual tree. When it is determined by CU c 1 represents the QP of the chroma block, first derive CU c 1. Then, identify CU c 1, and the corresponding luminance sample at the center position of the luminance CU (i.e., CU Y 3) The associated luma QP is then used to derive the CU cHowever, when filtering decisions are made for the three samples depicted (with solid circles), the QP of the CU covering the corresponding 3 samples is selected. Thus, for the first, second, and third chroma samples (e.g. Fig. 9B As shown), respectively using CU Y 2. CU Y 3. CU Y That is, chroma samples in the same CU may use different QPs for filtering decisions, which may lead to wrong decisions.

[0427] 6. Different picture-level QP offsets (i.e., pps_joint_cbcr_qp_offset) are applied to JCCR codec blocks, which are different from the picture-level offsets (e.g., pps_cb_qp_offset and pps_cr_qp_offset) of Cb / Cr applied to non-JCCR codec blocks. However, in the chroma deblocking filter decision process, only those offsets of non-JCCR codec blocks are utilized. Not considering the codec mode may lead to wrong filtering decisions.

[0428] 7. TS and non-TS codec blocks use different QPs during dequantization, which may also be taken into account during deblocking.

[0429] 8. For JCCR codec blocks with different modes, different QPs are used in the scaling process (quantization / dequantization). Such a design is not consistent.

[0430] 9. Chroma deblocking of Cb / Cr may not be suitable for parallel design.

[0431] 10. The chroma QP in deblocking is derived based on the QP used in the chroma dequantization process (eg, qP), however, qP should be clipped or reduced by 5 for TS and ACT blocks when it is used in the deblocking process.

[0432] 11. When both BDPCM and ACT are enabled, the prediction process of the three components may be different.

[0433] 12. Signaling of CC-ALF enabled / disabled for chroma components in the picture header. However, if the color format is 4:0:0, such information does not need to be signaled, but is signaled in the current VVC specification.

[0434] 13. For chroma BDPCM, ACT and palette modes, the SPS control flags are signaled under the conditional check of chroma_format_idc equal to 3. This means that even if separate plane codecs are used for 4:4:4 color format, even if the picture is treated as monochrome, those flags still need to be signaled. The relevant syntax elements are defined as follows:

[0435] 7.3.2.3 Sequence parameter set RBSP syntax

[0436]

[0437]

[0438] 4. Example Techniques and Implementations

[0439] The detailed embodiments described below should be considered as examples for explaining the general concept. These embodiments should not be interpreted narrowly. In addition, these embodiments can be combined in any way.

[0440] The proposed methods described below can be applied to deblocking filtering. Alternatively, they can be applied to other types of in-loop filtering, for example, those that rely on quantization parameters.

[0441] In addition to DMVR and BIO mentioned below, the method described below can also be applied to other decoder motion information derivation techniques.

[0442] 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 block on the M side (M is P or Q). Abs represents an operation of obtaining the absolute value of the input, and "&&" and "||" represent logical operations AND and OR. Fig.10 , P may represent a sample point of the P side, and Q may represent a sample point of the Q side. Blocks of the P side and the Q side may represent blocks marked by dotted lines.

[0443] About Chroma QP in Deblocking

[0444] 1. When the chroma QP table is used to derive parameters that control chroma deblocking (e.g., in the determination of chroma block edges), the chroma QP offset can be applied after applying the chroma QP table.

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

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

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

[0448] 2. QP clipping may not be applied to the input of the chroma QP table.

[0449] 3. It is proposed that the deblocking process of chroma components can be based on the mapped chroma QP on each side (through the chroma QP table).

[0450] a. In one example, it is proposed that the deblocking parameters (eg, β and tC) for chroma can be based on the QP derived from the luma QP on each side.

[0451] b. In one example, chroma deblocking parameters may depend on the chroma QP table value with QpP as the table index, where QpP is the luma QP value on the P side.

[0452] c. In one example, chroma deblocking parameters may depend on the chroma QP table value with QpQ as the table index, where QpQ is the luma QP value on the Q side.

[0453] 4. It is proposed that the deblocking process of the chroma components can be based on the QP applied to the quantization / dequantization of the chroma blocks.

[0454] a. In one example, the QP for the deblocking process may be equal to the QP in dequantization.

[0455] b. In one example, the QP selection for the deblocking process may depend on the usage indication of the TS and / or ACT blocks.

[0456] i. In one example, the QP for the deblocking process can be derived by Max(QpPrimeTsMin, qP)-(cu_act_enabled_flag[xTbY][yTbY]?N:0), where QpPrimeTsMin is the minimum QP of the TS block and cu_act_enabled_flag is the usage flag of ACT.

[0457] 1. In one example, qP can be Qp′ given in Section 2.8 Cb or Qp′ Cr .

[0458] ii. In one example, the QP for the deblocking process can be derived by Max(QpPrimeTsMin,qP-(cu_act_enabled_flag[xTbY][yTbY]?N:0)), where QpPrimeTsMin is the minimum QP of the TS block and cu_act_enabled_flag is the usage flag of ACT.

[0459] 1. In one example, qP can be Qp′ given in Section 2.8 Cb or Qp′ Cr .

[0460] iii. In the above examples, N can be set to the same or different values ​​for each color component.

[0461] 1. In one example, N may be set to 5 for Cb / B / G / U / components, and / or N may be set to 3 for Cr / R / B / V components.

[0462] c. In one example, the QP of a block used in the deblocking process may be derived by the process described in Section 2.8, where the delta QP (eg, CuQpDeltaVal) is equal to 0.

[0463] i. In one example, the above derivation may be applied only when the codec block flag (cbf) of the block is equal to 0.

[0464] d. In one example, the above examples can be applied to luma and / or chroma blocks.

[0465] e. In one example, the QP of the first block used in the deblocking process may be set equal to the QP stored and used to predict the second block.

[0466] i. In one example, for a block with all zero coefficients, the associated QP used in the deblocking process may be set equal to the QP stored and used to predict the second block.

[0467] 5. It is proposed to consider the picture / slice / tile / brick / sub-picture level quantization parameter offsets for different codecs in the deblocking filter decision process.

[0468] a. In one example, the selection of picture / slice / tile / brick / sub-picture level quantization parameter offsets for filtering decisions (eg, chroma edge decisions during deblocking filtering) may depend on the codec method on each side.

[0469] b. In one example, a filtering process that requires the use of quantization parameters for a chroma block (eg, a chroma edge decision process) may depend on whether the block uses JCCR.

[0470] i. Alternatively, in addition, the picture / slice level QP offset (eg, pps_joint_cbcr_qp_offset) applied to the JCCR codec block can be further considered in the deblocking filtering process.

[0471] ii. In one example, under certain conditions, cQpPicOffset used to decide Tc and β settings can be set to pps_joint_cbcr_qp_offset instead of pps_cb_qp_offset or pps_cr_qp_offset:

[0472] 1. In one example, when any block in the P or Q side uses JCCR.

[0473] 2. In one example, when both blocks in the P or Q side use JCCR.

[0474] iii. Alternatively, or in addition, the filtering process may depend on the mode of the JCCR (eg, whether the mode is equal to 2).

[0475] 6. Chroma filtering processes that require access to decoded information of luma blocks (e.g., chroma edge decision processes) can utilize information associated with the same luma codec block that is used to derive the chroma QP in the dequantization / quantization process.

[0476] a. In one example, a chroma filtering process (e.g.

[0477] For example, the chroma edge determination process may utilize the luma codec unit corresponding to the luma sample point covering the center position of the current chroma CU.

[0478] b. Figure 9A-9B The CU Y 3 The decoded information can be used Fig. 9B Example of filtering decisions for the three chroma samples (first, second, and third) in FIG.

[0479] 7. The chroma filtering process (eg, chroma edge determination process) may depend on the quantization parameters of the scaling process (eg, quantization / dequantization) applied to the chroma blocks.

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

[0481] b. Alternatively, in addition, the QP for the scaling process of chroma blocks may already take into account the chroma CU level QP offset.

[0482] 8. Whether to call the above bullet points may depend on whether the samples to be filtered are in the block on the P or Q side.

[0483] a. For example, whether to use the information of the luma codec block covering the corresponding luma sample of the current chroma sample, or to use the information of the luma codec block covering the corresponding luma sample at the center position of the chroma codec block covering the current chroma sample, may depend on the block position.

[0484] i. In one example, if the current chroma sample is in a block on the Q side, the QP information of the luma codec block covering the corresponding luma sample at the center position of the chroma codec block covering the current chroma sample may be used.

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

[0486] 9. The chroma QP used in deblocking may depend on the information of the corresponding transform block.

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

[0488] i. In one example, the chroma QP for deblocking on the P side may depend on whether the transform block on the P side is decoded with JCCR codec applied.

[0489] 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 encoded in joint_cb_cr mode with JCCR mode equal to 2.

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

[0491] i. In one example, the chroma QP for deblocking on the Q side may depend on whether the transform blocks on the Q side are decoded with JCCR codec applied.

[0492] ii. In one example, the chroma QP for deblocking on the Q side may depend on whether the transform block on the Q side is encoded with JCCR applied and JCCR mode equal to 2.

[0493] 10. The signaling notification of chroma QP can be in the codec unit.

[0494] a. In one example, when the codec unit size is larger than the maximum transform block size (ie, maxTB), the chroma QP can be signaled in the CU level. Alternatively, it can be signaled in the TU level.

[0495] b. In one example, when the codec unit size is larger than the size of the VPDU, the chroma QP can be signaled in the CU level. Alternatively, it can be signaled in the TU level.

[0496] 11. It is possible to indicate at the codec level whether a block is in joint_cb_cr mode.

[0497] a. In one example, whether a transform block is in joint_cb_cr mode may inherit the information of the codec unit containing the transform block.

[0498] 12. The chroma QP used in deblocking may depend on the chroma QP used during scaling minus the QP offset due to bit depth.

[0499] a. In one example, when TuCResMode[xTb][yTb] is equal to 2, the chroma QP used in deblocking on the P side is set to the JCCR chroma QP used during scaling (i.e., Qp′ CbCr ) minus QpBdOffsetC, where (xTb, yTb) represents the transform block containing the first sample point on the P side, i.e., p 0,0 .

[0500] b. In one example, when TuCResMode[xTb][yTb] is equal to 2, the chroma QP used in deblocking on the P side is set to the Cb chroma QP used during scaling (i.e., Qp′ Cb ) minus QpBdOffsetC, where (xTb, yTb) represents the transform block containing the first sample point on the P side, i.e., p 0,0 .

[0501] c. In one example, when TuCResMode[xTb][yTb] is equal to 2, the chroma QP used in deblocking on the P side is set to the Cr chroma QP used during scaling (i.e., Qp′ Cr ) minus QpBdOffsetC, where (xTb, yTb) represents the transform block containing the first sample point on the P side, i.e., p 0,0 .

[0502] d. In one example, when TuCResMode[xTb][yTb] is equal to 2, the chroma QP used in deblocking on the Q side is set to the JCCR chroma QP used during scaling (i.e., Qp′ CbCr ) minus QpBdOffsetC, where (xTb, yTb) represents the transform block containing the last sample point on the Q side, i.e., q 0,0 .

[0503] e. In one example, when TuCResMode[xTb][yTb] is equal to 2, the chroma QP used in deblocking on the Q side is set to the Cb chroma QP used during scaling (i.e., Qp′ Cb ) minus QpBdOffsetC, where (xTb, yTb) represents the transform block containing the last sample point on the Q side, i.e., q 0,0 .

[0504] f. In one example, when TuCResMode[xTb][yTb] is equal to 2, the chroma QP used in deblocking on the Q side is set to the Cr chroma QP used during scaling (i.e., Qp′ Cr ) minus QpBdOffsetC, where (xTb, yTb) represents the transform block containing the last sample point on the Q side, i.e., q0,0 .

[0505] 13. Different color components can have different deblocking strength controls.

[0506] a. In one example, each component may have its pps_beta_offset_div2, pps_tc_offset_div2 and / or pic_beta_offset_div2, pic_tc_offset_div2 and / or slice_beta_offset_div2, slice_tc_offset_div2.

[0507] b. In one example, for joint_cb_cr mode, different sets of beta_offset_div2, tc_offset_div2 may be applied in PPS and / or picture header and / or slice header.

[0508] 14. To account for offsets at different levels, deblocking control offsets can be accumulated instead of using an overwrite mechanism.

[0509] a. In one example, pps_beta_offset_div2 and / or pic_beta_offset_div2 and / or slice_beta_offset_div2 may be accumulated to obtain a slice-level deblocking offset.

[0510] b. In one example, pps_tc_offset_div2 and / or pic_tc_offset_div2 and / or slice_tc_offset_div2 may be accumulated to obtain a slice-level deblocking offset.

[0511] About QP Settings

[0512] 15. It is proposed to signal the indication of enabling block-level chroma QP offset at slice / slice / brick / sub-picture level (e.g., slice_cu_chroma_qp_offset_enabled_flag).

[0513] a. Alternatively, such indication may be signaled conditionally.

[0514] i. In one example, it can be signaled conditionally with the JCCR enabled flag.

[0515] ii. In one example, it may be signaled conditional on the block level chroma QP offset enable flag in the picture level.

[0516] iii. Alternatively, such indication may alternatively be derived.

[0517] b. In one example, slice_cu_chroma_qp_offset_enabled_flag may be signaled only when the PPS flag for chroma QP offset (eg, slice_cu_chroma_qp_offset_enabled_flag) is true.

[0518] c. In one example, slice_cu_chroma_qp_offset_enabled_flag may be inferred to be false only when the PPS flag for the chroma QP offset (eg, slice_cu_chroma_qp_offset_enabled_flag) is false.

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

[0520] 16. For JCCR codec blocks with different modes, the same QP derivation method is used in the scaling process (quantization / dequantization).

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

[0522] …

[0523] Filtering Procedure

[0524] 17. Deblocking of all color components except the first color component may follow the deblocking process of the first color component.

[0525] a. In one example, when the color format is 4:4:4, the deblocking process of the second and third components can follow the deblocking process of the first component.

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

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

[0528] d. In the above examples, the deblocking process may refer to a deblocking decision process and / or a deblocking filtering process.

[0529] 18. How to calculate the gradient used in the deblocking filtering process may depend on the codec mode information and / or the quantization parameter.

[0530] a. In one example, the gradient calculation may only consider the gradient on one side, where the samples on this side are not losslessly encoded.

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

[0532] i. Alternatively, if both sides are lossless or nearly lossless codecs (eg, quantization parameter equal to 4), the boundary strength (eg, BS) may be set to 0. i.

[0533] c. In one example, if the samples on the P side are lossless coded and the samples on the Q side are lossy coded, the gradients used in the deblocking on / off decision and / or the strong filtering on / off decision may only include the gradients of the samples on the Q side, and vice versa.

[0534] i. Additionally, alternatively, the gradient on one side can be scaled by N.

[0535] 1. N is an integer (e.g. 2) and can depend on

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

[0537] b. Messages signaled in DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Slice Group Header / Largest Codec Unit (LCU) / Codec Unit (CU) / LCU Line / LCU Group / TU / PU Block / Video Codec Unit

[0538] c. Location of CU / PU / TU / block / video codec unit

[0539] d. Codec mode for blocks containing samples along edges

[0540] e. The transformation matrix applied to the block containing the samples along the edge

[0541] f. Block dimensions / block shapes of the current block and / or its neighboring blocks

[0542] g. Indication of the color format (such as 4:2:0, 4:4:4, RGB, or YUV)

[0543] h. Codec tree structure (such as dual tree or single tree)

[0544] i. Slice / slice group type and / or picture type

[0545] j. Color components (e.g., may only apply to Cb or Cr)

[0546] k. Time domain layer ID

[0547] l. Standard profiles / levels / layers

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

[0549] On the derivation of boundary strength

[0550] 19. It is proposed to treat JCCR codec blocks as those non-JCCR codec blocks in the boundary strength decision process.

[0551] a. In one example, the determination of boundary strength (BS) can be independent of the examination of JCCR usage of both blocks on the P side and the Q side.

[0552] b. In one example, the boundary strength (BS) of a block may be determined regardless of whether the block is encoded with JCCR.

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

[0554] a. In one example, deblocking filtering may be disabled even when two blocks have different reference pictures.

[0555] b. In one example, deblocking filtering may be disabled even when two blocks have different numbers of MVs (eg, one is uni-directionally predicted and the other is bi-directionally predicted).

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

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

[0558] d. In one example, the difference between the motion vectors of two blocks greater than a threshold value 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)

[0559] i. Alternatively, the difference between the motion vectors of two blocks greater than a threshold value 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)

[0560] ii. Alternatively, in one example, the difference between the motion vectors of two blocks greater than a threshold value Th may be defined as (Abs(MVP[0].x-MVQ[0].x)>Th||Abs(MVP[0].y-MVQ[0].y)>Th)&&(Abs(MVP[1].x-MVQ[1].x)>Th)||Abs(MVP[1].y-MVQ[1].y)>Th)

[0561] iii. Alternatively, in one example, the difference between the motion vectors of two blocks greater than a threshold value Th may be defined as (Abs(MVP[0].x-MVQ[0].x)>Th&&Abs(MVP[0].y-MVQ[0].y)>Th)||(Abs(MVP[1].x-MVQ[1].x)>Th)&&Abs(MVP[1].y-MVQ[1].y)>Th)

[0562] e. In one example, a block that does not have a motion vector in a given list may be considered to have a zero motion vector in that list.

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

[0564] g. In the above example, Th may depend on

[0565] i. Video content (e.g. screen content or natural content)

[0566] ii. Messages signaled in DPS / SPS / VPS / PPS / APS / Picture header / Slice header / Slice group header / Largest codec unit (LCU) / Codec unit (CU) / LCU row / LCU group / TU / PU block / Video codec unit

[0567] iii. Location of CU / PU / TU / block / video codec unit

[0568] iv. Codec mode for blocks containing samples along edges

[0569] v. The transformation matrix applied to the block containing the samples along the edge

[0570] vi. Block dimensions / block shapes of the current block and / or its neighboring blocks

[0571] vii. Indication of the color format (e.g., 4:2:0, 4:4:4, RGB, or YUV)

[0572] viii. Codec tree structure (such as dual tree or single tree)

[0573] ix. Slice / slice group type and / or picture type

[0574] x. Color component (e.g., may only apply to Cb or Cr)

[0575] xi. Time domain layer ID

[0576] xii. Standard Profiles / Classes / Hierarchies

[0577] xiii. Alternatively, Th may be signaled to the decoder.

[0578] h. The above examples may apply under certain conditions.

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

[0580] ii. In one example, the condition is that blkP and blkQ have zero coefficients on the luma component.

[0581] iii. In one example, the condition is that blkP and blkQ are not encoded or decoded in CIIP mode.

[0582] iv. In one example, the condition is that blkP and blkQ are encoded or decoded in the same prediction mode (eg, IBC or inter).

[0583] About the Luminance Deblocking Filter Process

[0584] 21. Deblocking can use different QPs for TS codec blocks and non-TS codec blocks.

[0585] a. In one example, TS QP can be used on TS codec blocks, while non-TS QP can be used on non-TS codec blocks.

[0586] 22. The luma filtering process (eg, the luma edge determination process) may depend on the quantization parameters of the scaling process applied to the luma block.

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

[0588] 23. It is proposed to use the same gradient calculation for large block boundaries and smaller block boundaries.

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

[0590] i. In one example, the threshold beta in the decision can be modified for chunk boundaries.

[0591] 1. In one example, beta may depend on a quantization parameter.

[0592] 2. In one example, the beta for the deblocking filter on / off decision for large block boundaries may be smaller than that for smaller block boundaries.

[0593] a. Alternatively, in one example, the beta for the deblocking filter on / off decision for large block boundaries may be larger than the beta for smaller block boundaries.

[0594] b. Alternatively, in one example, the beta for the deblocking filter on / off decision for large block boundaries may be equal to the beta for smaller block boundaries.

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

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

[0597] b. Messages signaled in DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Slice Group Header / Largest Codec Unit (LCU) / Codec Unit (CU) / LCU Line / LCU Group / TU / PU Block / Video Codec Unit

[0598] c. Location of CU / PU / TU / block / video codec unit

[0599] d. Codec mode for blocks containing samples along edges

[0600] e. The transformation matrix applied to the block containing the samples along the edge

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

[0602] g. Block shape of the current block and / or its neighboring blocks

[0603] h. Indication of the color format (such as 4:2:0, 4:4:4, RGB, or YUV)

[0604] i. Codec tree structure (such as dual tree or single tree)

[0605] j. Strip / slice group type and / or picture type

[0606] k. Color component (e.g., may only apply to Cb or Cr)

[0607] l. Time domain layer ID

[0608] m. Standard profile / level / layer

[0609] n. Alternatively, beta signaling can be used to notify the decoder.

[0610] About the scaling matrix (dequantization matrix)

[0611] 24. The values ​​of specific positions of the quantization matrix can be set to constants.

[0612] a. In one example, the position may be a position of (x, y), where x and y are two integer variables (eg, x=y=0), and (x, y) are coordinates relative to TU / TB / PU / PB / CU / CB.

[0613] i. In one example, the location may be the location of the DC.

[0614] b. In one example, the constant value may be 16.

[0615] c. In one example, for those positions, signaling of matrix values ​​may not be utilized.

[0616] 25. A constraint can be set: the average / weighted average of some positions of the quantization matrix can be a constant.

[0617] a. In one example, the deblocking process may depend on a constant value.

[0618] b. In one example, the constant value may be indicated in the DPS / VPS / SPS / PPS / strip / picture / slice / brick header.

[0619] 26. One or more indications may be signaled in a picture header to signal a scaling matrix to be selected in a picture associated with the picture header.

[0620] About Cross-Component Adaptive Loop Filtering (CCALF)

[0621] 27.CCALF can be applied before certain loop filtering processes of the decoder

[0622] a. In one example, CCALF can be applied before the deblocking process of the decoder.

[0623] b. In one example, CCALF may be applied before SAO at the decoder.

[0624] c. In one example, CCALF may be applied before the ALF at the decoder.

[0625] d. Alternatively, the order of different filters (eg, CCALF, ALF, SAO, deblocking filter) may not be fixed.

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

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

[0628] e. Alternatively, the indication of the order of different filtering (eg, CCALF, ALF, SAO, deblocking filtering) may be signaled or derived on the fly.

[0629] i. Alternatively, the indication to invoke CCALF may be signaled or derived on the fly.

[0630] f. Explicit (eg, signaling from encoder to decoder) or implicit (eg, derived at both encoder and decoder) indications on how to control CCALF can be decoupled for different color components (eg, Cb and Cr).

[0631] g. Whether and / or how CCALF is applied may depend on the color format (such as RGB and YCbCr) and / or the color sampling format (such as 4:2:0, 4:2:2 and 4:4:4, and / or the color downsampling position or phase)

[0632] About Chroma QP Offset List

[0633] 28. Signaling and / or selection of chroma QP offset list may depend on codec prediction mode / picture type /

[0634] Strip or sheet or brick type.

[0635] a. For different codec modes, the chroma QP offset lists, such as cb_qp_offset_list[i], cr_qp_offset_list[i], and joint_cbcr_qp_offset_list[i], can be different.

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

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

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

[0639] e. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is encoded or decoded in IBC mode.

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

[0641] g. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is encoded in BDPCM mode.

[0642] h. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is encoded in transform_quant_skip or lossless mode.

[0643] Chroma Deblocking on CTU Boundaries

[0644] 29. How to choose the QP to use during deblocking filtering (e.g., using the QP of the corresponding luma or chroma dequantization) may depend on the location of the sample relative to the CTU / CTB / VPDU boundary.

[0645] 30. How to select the QP to be used during the deblocking filtering process (e.g., using the QP corresponding to luma or chroma dequantization) may depend on the color format (e.g., RGB and YCbCr) and / or the color sampling format (e.g., 4:2:0, 4:2:2, and 4:4:4), and / or the color downsampling position or phase.

[0646] 31. For edges at CTU boundaries, deblocking can be based on the luma QP of the corresponding block.

[0647] a. In one example, for horizontal edges at CTU boundaries, deblocking can be based on the luma QP of the corresponding block.

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

[0649] ii. In one example, deblocking may be based on the luma QP of the corresponding block on the Q side.

[0650] b. In one example, for vertical edges at CTU boundaries, deblocking can be based on the luma QP of the corresponding block.

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

[0652] ii. In one example, deblocking may be based on the luma QP of the corresponding block on the Q side.

[0653] c. In one example, for edges at CTU boundaries, deblocking can be based on luma QP on the P side and chroma QP on the Q side.

[0654] d. In one example, for edges at CTU boundaries, deblocking can be based on luma QP on the Q side and chroma QP on the P side.

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

[0656] 32. For horizontal edges at CTU boundaries, deblocking can be based on a function of the chroma QP on the P side.

[0657] a. In one example, deblocking can be based on an average function of the chroma QP on the P side.

[0658] i. In one example, the function may be based on the average of the chroma QPs for every 8 luma samples.

[0659] ii. In one example, the function may be based on the average of the chroma QPs for every 16 luma samples.

[0660] iii. In one example, the function may be based on the average of the chroma QPs for every 32 luma samples.

[0661] iv. In one example, the function may be based on the average of the chroma QPs for every 64 luma samples.

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

[0663] b. In one example, deblocking may be based on a maximum function of the chroma QP on the P side.

[0664] i. In one example, the function may be based on the maximum value of the chroma QP for every 8 luma samples.

[0665] ii. In one example, the function may be based on the maximum value of the chroma QP for every 16 luma samples.

[0666] iii. In one example, the function may be based on the maximum value of the chroma QP for every 32 luma samples.

[0667] iv. In one example, the function may be based on the maximum value of the chroma QP for every 64 luma samples.

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

[0669] c. In one example, deblocking may be based on a minimum function of the chroma QP on the P side.

[0670] i. In one example, the function may be based on the minimum value of the chroma QP for every 8 luma samples.

[0671] ii. In one example, the function may be based on the minimum value of the chroma QP for every 16 luma samples.

[0672] iii. In one example, the function may be based on the minimum value of the chroma QP for every 32 luma samples.

[0673] iv. In one example, the function may be based on the minimum value of the chroma QP for every 64 luma samples.

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

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

[0676] i. In one example, the function may be based on the chroma QP of the kth chroma sample for every 8 luma samples.

[0677] 1. In one example, the kth sample point may be the first sample point.

[0678] 2. In one example, the kth sample point may be the last sample point.

[0679] 3. In one example, the kth sample point may be the third sample point.

[0680] 4. In one example, the kth sample point may be the fourth sample point.

[0681] ii. In one example, the function may be based on the chroma QP of the kth chroma sample for every 16 luma samples.

[0682] 1. In one example, the kth sample point may be the first sample point.

[0683] 2. In one example, the kth sample point may be the last sample point.

[0684] 3. In one example, the kth sample point may be the 7th sample point.

[0685] 4. In one example, the kth sample point may be the 8th sample point.

[0686] iii. In one example, the function may be based on the chroma QP of the kth chroma sample for every 32 luma samples.

[0687] 1. In one example, the kth sample point may be the first sample point.

[0688] 2. In one example, the kth sample point may be the last sample point.

[0689] 3. In one example, the kth sample point may be the 15th sample point.

[0690] 4. In one example, the kth sample point may be the 16th sample point.

[0691] iv. In one example, the function may be based on the chroma QP of the kth chroma sample for every 64 luma samples.

[0692] 1. In one example, the kth sample point may be the first sample point.

[0693] 2. In one example, the kth sample point may be the last sample point.

[0694] 3. In one example, the kth sample point may be the 31st sample point.

[0695] 4. In one example, the kth sample point may be the 32nd sample point.

[0696] v. In one example, the function may be based on the chroma QP of the kth chroma sample of each CTU.

[0697] e. Alternatively, the above items can be applied to the chroma QP on the Q side for the deblocking process. 33. The quantization group of the chroma component can be constrained to be larger than a certain size.

[0698] a. In one example, the width of the quantization group of the chroma component may be constrained to be greater than a certain value K.

[0699] i. In one example, K is equal to 4.

[0700] 34. The quantization group of the luminance component can be constrained to be larger than a certain size.

[0701] a. In one example, the width of the quantization group of the luma component may be constrained to be greater than a certain value K.

[0702] i. In one example, K is equal to 8.

[0703] 35. The QP of the chroma component can be constrained to be the same for a chroma row segment of length 4*m starting from (4*m*x, 2y) relative to the top left of the picture, where x and y are non-negative integers; and m is a positive integer.

[0704] a. In one example, m may be equal to 1.

[0705] b. In one example, the width of the quantization group of the chroma component must be no less than 4*m

[0706] 36. The QP of the chroma component can be constrained to be the same for a chroma column segment of length 4*n starting from (2*x, 4*n*y) relative to the top left of the picture, where x and y are non-negative integers; and m is a positive integer.

[0707] a. In one example, n may be equal to 1.

[0708] b. In one example, the height of the quantization group of the chroma components must be no less than 4*n.

[0709] About the Chroma Deblocking Filtering Process

[0710] 37. A first syntax element controlling the usage of codec tool X may be signaled in a first video unit (eg a picture header) depending on a second syntax element signaled in a second video unit (eg an SPS or a PPS or a VPS).

[0711] a. In one example, the first syntax element is signaled only when the second syntax element indicates that codec tool X is enabled.

[0712] b. In one example, X is bidirectional optical flow (BDOF).

[0713] c. In one example, X is the predicted refined optical flow (PROF).

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

[0715] e. In one example, the use of codec tool X may be signaled under a conditional check of the slice type (eg, P or B slice; non-I slice).

[0716] About the Chroma Deblocking Filtering Process

[0717] 38. The deblocking filter decision process for two chroma blocks can be unified to be called only once, and the decision is applied to both chroma blocks.

[0718] a. In one example, the decision whether to perform deblocking filtering may be the same for Cb and Cr components.

[0719] b. In one example, if it is determined that deblocking filtering is to be applied, the decision whether to perform stronger deblocking filtering may be the same for the Cb and Cr components.

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

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

[0722] ii. In one example, chroma stronger filtering is performed only when both Cb and Cr components satisfy the strong filtering condition.

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

[0724] About ACT

[0725] 39. Whether the deblocking QP is equal to the dequantization QP may depend on whether ACT is applied.

[0726] a. In one example, when ACT is applied to a block, the deblocking QP value may depend on the QP value before the ACT QP adjustment.

[0727] b. In one example, when ACT is not applied to a block, the deblocking QP value may always be equal to the dequantization QP value.

[0728] c. In one example, when neither ACT nor TS is applied to a block, the deblocking QP value may always be equal to the dequantization QP value.

[0729] 40.ACT and BDPCM can be applied exclusively at the block level.

[0730] a. In one example, when ACT is applied to a block, luminance BDPCM should not be applied to the block.

[0731] b. In one example, when ACT is applied to a block, chroma BDPCM should not be applied to the block.

[0732] c. In one example, when ACT is applied to a block, neither luma nor chroma BDPCM should be applied to the block.

[0733] d. In one example, when luma and / or chroma BDPCM is applied to a block, ACT should not be applied to the block.

[0734] 41. Whether to enable can be inferred based on the use of ACT (e.g., cu_act_enabled_flag)

[0735] BDPCM mode.

[0736] a. In one example, the inferred value of the chroma BDPCM mode may be defined as (cu_act_enabled_flag&&intra_bdpcm_luma_flag&&sps_bdpcm_chroma_enabled_flag?true:false).

[0737] b. In one example, if sps_bdpcm_chroma_enabled_flag is false, then intra_bdpcm_luma_flag may be inferred to be false if it is not signaled and cu_act_enabled_flag is true.

[0738] c. In one example, when intra_bdpcm_luma_flag is true and sps_bdpcm_chroma_enabled_flag is false, cu_act_enabled_flag may be inferred to be false.

[0739] d. In one example, when cu_act_enabled_flag is true and sps_bdpcm_chroma_enabled_flag is false, intra_bdpcm_luma_flag may be inferred to be false.

[0740] CC-ALF related

[0741] 42. ChromaArrayType in the specification.

[0742] a. In one example, whether cross-component Cb filtering is enabled for all slices associated with the picture header and can be applied to Cb color components in the slice (e.g., pic_cross_component_alf_cb_enabled_flag), such as with the condition "if (ChromaArrayType!=0)" or the color format is not 4:0:0 (e.g., chroma_format_idc!=0).

[0743] b. In one example, whether cross-component Cr filtering is enabled for all slices associated with the picture header and can be applied to Cr color components in the slice (e.g., pic_cross_component_alf_cr_enabled_flag) can be conditionally signaled, such as with "if (ChromaArrayType!=0)" or the color format is not 4:0:0 (e.g., chroma_format_idc!=0).

[0744] 43. ALF and CC-ALF can be controlled separately.

[0745] a. In one example, a first syntax element may be used to signal whether CC-ALF is enabled for a video processing unit.

[0746] i. In one example, it can be signaled at the sequence / video / picture level (eg, in SPS) independently from the ALF enabled flag (eg, sps_alf_enabled_flag).

[0747] 1. Alternatively, it can also be signaled under conditional check of enabling ALF.

[0748] ii. Alternatively, furthermore, the first syntax element may be signaled under conditional checks of color format and / or separate plane codec and / or ChromaArrayType in the specification.

[0749] b. Alternatively, in addition, a second syntax element may be further signaled in the picture header / PPS / slice header, e.g., pic_ccalf_enabled_present_flag, to specify whether CC-ALF related syntax elements (e.g., pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_cb_filters_signalled_minus1, pic_cross_component_alf_cr_enabled_flag, pic_cross_component_alf_cr_aps_id, and pic_cross_component_cr_filters_signalled_minus1) are present in the picture header.

[0750] i. Alternatively, when the ALF enabled flag (eg, sps_alf_enabled_flag) is true, the second syntax element may be signaled.

[0751] c. In one example, the CC-

[0752] Syntax elements in ALF-related PPS or PH or slice header:

[0753] i.ChromaArrayType!=0 or the color format is not 4:0:0.

[0754] ii. Signaling in higher level video units (eg SPS) to enable CC-ALF.

[0755] d. In one example, the syntax elements in the PPS or PH or slice header related to CC-ALF are signaled when one of the following conditions is true:

[0756] i.ChromaArrayType!=0 or the color format is not 4:0:0.

[0757] ii. Signaling in higher level video units (eg SPS) to enable CC-ALF.

[0758] About Advanced Syntax

[0759] 44. The control flags for the chroma BDPCM mode (e.g., sps_bdpcm_chroma_enabled_flag), palette mode (e.g., sps_palette_enabled_flag), and / or ACT mode (e.g., sps_act_enabled_flag) may be signaled based at least on the value of the chroma array type (e.g., ChromaArrayType).

[0760] a. In one example, sps_bdpcm_chroma_enabled_flag may be signaled only when sps_bdpcm_enabled_flag is true && ChromaArrayType is equal to 3.

[0761] b. In one example, sps_palette_enabled_flag may be signaled only when ChromaArrayType is equal to 3.

[0762] c. In one example, sps_act_enabled_flag may be signaled only when ChromaArrayType is equal to 3.

[0763] d. In one example, when ChromaArrayType is not equal to 3, sps_bdpcm_chroma_enabled_flag may not be signaled.

[0764] e. In one example, when ChromaArrayType is not equal to 3, sps_palette_enabled_flag may not be signaled.

[0765] f. In one example, when ChromaArrayType is not equal to 3, sps_act_enabled_flag may not be signaled.

[0766] g. In one example, when ChromaArrayType is not equal to 3, the conforming bitstream shall satisfy that sps_bdpcm_chroma_enabled_flag shall be set equal to 0.

[0767] h. In one example, when ChromaArrayType is not equal to 3, the conforming bitstream shall satisfy that sps_palette_enabled_flag shall be set equal to 0.

[0768] i. In one example, when ChromaArrayType is not equal to 3, the conforming bitstream shall satisfy that sps_act_enabled_flag shall be set equal to 0.

[0769] General implementation concepts

[0770] 45. The method proposed above can be applied under certain conditions.

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

[0772] i. Alternatively, also for 4:4:4 color format, how to apply deblocking filtering to the two color chroma components can follow the current design.

[0773] b. In one example, the indication of the use of the above method may be signaled in the sequence / picture / slice / tile / video region level (eg, SPS / PPS / picture header / slice header).

[0774] c. In one example, the use of the above method may depend on

[0775] i. Video content (e.g. screen content or natural content)

[0776] ii. Messages signaled in DPS / SPS / VPS / PPS / APS / Picture header / Slice header / Slice group header / Largest codec unit (LCU) / Codec unit (CU) / LCU row / LCU group / TU / PU block / Video codec unit

[0777] iii. Location of CU / PU / TU / block / video codec unit

[0778] a. In one example, to filter samples along CTU / CTB boundaries (e.g., the first K (e.g., K=4 / 8) to the top / left / right / bottom boundaries), the existing design can be applied. For other samples, the proposed method can be applied instead (e.g., the 3rd / 4th point).

[0779] iv. Codec mode for blocks containing samples along edges

[0780] v. The transformation matrix applied to the block containing the samples along the edge

[0781] vi. Block dimensions of the current block and / or its neighboring blocks

[0782] vii. Block shape of the current block and / or its neighboring blocks

[0783] viii. Indication of the color format (e.g., 4:2:0, 4:4:4, RGB, or YUV)

[0784] ix. Codec tree structure (such as dual tree or single tree)

[0785] x. Strip / slice group type and / or picture type

[0786] xi. Color component (e.g., may apply only to Cb or Cr)

[0787] xii. Temporal layer ID

[0788] xiii. Standard Profiles / Levels / Hierarchies

[0789] xiv. Alternatively, m and / or n may be signaled to the decoder.

[0790] 5. Additional Embodiments

[0791] These examples are based on JVET-02001-vE. Newly added text is shown in underlined bold italics. Deleted text is marked with underlined bold text.

[0792] 5.1. Example #1: Chroma QP in Deblocking

[0793] 8.8.3.6 Edge filtering process in one direction

[0794] …

[0795] Otherwise (cIdx is not equal to 0), the filtering process for the edge in the chroma codec block of the current codec unit specified by cIdx comprises the following sequential steps:

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

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

[0798] 8.8.3.6.3 Chroma block edge determination process

[0799] …

[0800] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 Qp of the codec unit of the codec block Y value.

[0801] Variable Qp C The derivation is as follows:

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

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

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

[0805] Q C =ChromaQpTable[cIdx-1][qPi]+cQpPicOffset (8-1133)

[0806] NOTE – The variable cQpPicOffset provides an adjustment to the value of pps_cb_qp_offset or pps_cr_qp_offset, depending on whether the filtered chroma component is a Cb or Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process does not include adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset, nor does it include (when cu_chroma_qp_offset_enabled_flag is equal to 1) adjustments to CuQpOffset Cb 、CuQpOffset Cr or CuQpOffset CbCr Adjustment of the value.

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

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

[0809] Where slice_beta_offset_div2 contains the sample point q 0,0 The value of the syntax element slice_beta_offset_div2 for the slice.

[0810] The variable β is derived as follows:

[0811] β=β′*(1<<(BitDepth C -8)) (8-1135)

[0812] Variable t C The value of ′ is determined based on the chromaticity quantization parameter Q as specified in Table 8-18 derived as follows:

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

[0814] Among them, slice_tc_offset_div2 contains sample point q 0,0 The value of the syntax element slice_tc_offset_div2 of the slice.

[0815] Variable t C The derivation is as follows:

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

[0817] 5.2. Example #2 on boundary strength derivation

[0818] 8.8.3.5 Derivation of Boundary Filter Strength

[0819] The inputs to this process are:

[0820] – Picture sample array recPicture,

[0821] – Position (xCb, yCb), specifies the top left sample of the current codec block relative to the top left sample of the current picture,

[0822] –Variable nCbW, specifies the current codec block width,

[0823] –Variable nCbH, specifies the current codec block height,

[0824] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0825] – Variable cIdx specifies the color component of the current codec block.

[0826] – 2D (nCbW) x (nCbH) array of edgeFlags.

[0827] The output of this process is a two-dimensional (nCbW) x (nCbH) array bS that specifies the boundary filter strength.

[0828] …

[0829] For i = 0..xN, j = 0..yN, xD i and yD j , the following apply:

[0830] – If edgeFlags[xD i ][yD j ] is equal to 0, then the variable bS[xD i ][yD j ] is set equal to 0. – Otherwise, the following applies:

[0831] …

[0832] –Variable bS[xD i ][yD j ] is derived as follows:

[0833] – If cIdx is equal to 0, and samples p0 and q0 are both in a codec block with intra_bdpcm_flag equal to 1, then bS[xD i ][yD j ] is set to equal 0.

[0834] – Otherwise, if the sample p0 or q0 is in the codec block of a codec unit coded in intra prediction mode, then bS[xD i ][yD j ] is set to equal 2.

[0835] – Otherwise, if the block edge is also a transform block edge, and sample p0 or q0 is in a codec block with ciip_flag equal to 1, then bS[xD i ][yD j ] is set to equal 2.

[0836] – Otherwise, if the block edge is also a transform block edge, and sample p0 or q0 is in a transform block containing one or more non-zero transform coefficient levels, then bS[xD i ][yD j ] is set to be equal to 1.

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

[0838] – Otherwise, if the prediction mode of the coded subblock containing sample p0 is different from the prediction mode of the coded subblock containing sample q0 (i.e., one of the coded subblocks is coded in IBC prediction mode and the other in inter prediction mode), then bS[xD i ][yD j ] is set to be equal to 1.

[0839] – Otherwise, if cIdx is equal to 0 and one or more of the following conditions are met, then

[0840] xD i ][yD j ] is set to 1:

[0841] – The absolute value between the horizontal or vertical components of the list 0 motion vectors used in the prediction of two codec sub-blocks. List 1 motion vectors used in prediction of two coded subblocks with a difference of 1 / 16 luma samples greater than or equal to 8 The absolute difference between the horizontal or vertical components of the luminance sample is greater than or equal to 8 in units of 1 / 16 luminance samples.

[0842] – The codec sub-block containing sample p0 and the codec sub-block containing sample q0 are both coded and decoded in IBC prediction mode. The absolute difference between the horizontal or vertical components of the block vectors used in the prediction of the two codec sub-blocks is 1 / 16. The degree sample point unit is greater than or equal to 8.

[0843] – The prediction of the codec sub-block containing sample p0 is compared with the prediction of the codec sub-block containing sample q0. Use a different reference picture or a different number of motion vectors.

[0844] Note 1 - Determining whether the reference pictures used for two codec sub-blocks are the same or different is based only on which picture, regardless of whether the index to reference picture list 0 or the index to reference picture list 1 is used to form the prediction, It also does not take into account whether the index position in the reference picture list is different.

[0845] NOTE 2 - The number of motion vectors used for the codec sub-block prediction of the top left sample coverage (xSb, ySb) is equal to PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb].

[0846] – One motion vector is used to predict the codec subblock containing sample p0, and one motion vector is used to predict The absolute difference between the horizontal or vertical components of the motion vectors used is 1 / 16. The unit of brightness samples is greater than or equal to 8.

[0847] – Two motion vectors and two different reference pictures are used to predict the sample point p 0 The codec sub-blocks are the same The two motion vectors of the two reference pictures are used to predict the codec sub-block containing the sample q0, and in the same reference picture The absolute difference between the horizontal or vertical components of the two motion vectors used in the prediction of the two codec sub-blocks is 1 / 16 The unit of brightness samples is greater than or equal to 8.

[0848] – Two motion vectors of the same reference picture are used to predict the codec sub-block containing sample p0. The two motion vectors of the slice are used to predict the sample points q 0, and both of the following conditions are true:

[0849] – The absolute value between the horizontal or vertical components of the list 0 motion vectors used in the prediction of two codec sub-blocks. List 1 motion vectors used in prediction of two coded subblocks with a difference of 1 / 16 luma samples greater than or equal to 8 The absolute difference between the horizontal or vertical components of the luminance sample is greater than or equal to 8 in units of 1 / 16 luminance samples.

[0850] – The list 0 motion vector used in the prediction of the coded subblock containing sample p0 is the same as the list 0 motion vector used in the prediction of the coded subblock containing sample q0. The absolute difference between the horizontal or vertical components of the List 1 motion vectors used in the prediction of the codec sub-block is expressed as 1 / 16 luma samples. The number of points is greater than or equal to 8, or the list 1 motion vector used in the prediction of the codec sub-block containing sample p0 is the same as The absolute value between the horizontal or vertical components of the list 0 motion vector used in the prediction of the coded subblock containing sample q0 The difference is greater than or equal to 8 in units of 1 / 16 brightness samples.

[0851] – Otherwise, the variable bS[xD i ][yD j ] is set to equal 0.

[0852] 5.3. Example #3: Derivation of Boundary Strength

[0853] 8.8.3.6 Derivation of Boundary Filter Strength

[0854] The inputs to this process are:

[0855] – Picture sample array recPicture,

[0856] – Position (xCb, yCb), specifies the top left sample of the current codec block relative to the top left sample of the current picture,

[0857] –Variable nCbW, specifies the current codec block width,

[0858] –Variable nCbH, specifies the current codec block height,

[0859] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0860] – Variable cIdx specifies the color component of the current codec block.

[0861] – 2D (nCbW) x (nCbH) array of edgeFlags.

[0862] The output of this process is a two-dimensional (nCbW) x (nCbH) array bS that specifies the boundary filter strength.

[0863] …

[0864] For i = 0..xN, j = 0..yN, xD i and yD j , the following apply:

[0865] – If edgeFlags[xDi ][yD j ] is equal to 0, then the variable bS[xD i ][yD j ] is set equal to 0. – Otherwise, the following applies:

[0866] …

[0867] –Variable bS[xD i ][yD j ] is derived as follows:

[0868] – If cIdx is equal to 0, and samples p0 and q0 are both in a codec block with intra_bdpcm_flag equal to 1, then bS[xD i ][yD j ] is set to equal 0.

[0869] – Otherwise, if the sample p0 or q0 is in the codec block of a codec unit coded in intra prediction mode, then bS[xD i ][yD j ] is set to equal 2.

[0870] – Otherwise, if the block edge is also a transform block edge, and sample p0 or q0 is in a codec block with ciip_flag equal to 1, then bS[xD i ][yD j ] is set to equal 2.

[0871] – Otherwise, if the block edge is also a transform block edge, and sample p0 or q0 is in a transform block containing one or more non-zero transform coefficient levels, then bS[xD i ][yD j ] is set to be equal to 1.

[0872] – Otherwise, if the block edge is also a transform block edge, cIdx is greater than 0, and sample p0 or q0 has tu_joint_ In the transform unit where cbcr_residual_flag is equal to 1, bS[xD i ][yD j ] is set to be equal to 1.

[0873] – Otherwise, if the prediction mode of the coded subblock containing sample p0 is different from the prediction mode of the coded subblock containing sample q0 (i.e., one of the coded subblocks is coded in IBC prediction mode and the other in inter prediction mode), then bS[xD i ][yD j ] is set to be equal to 1.

[0874] – Otherwise, if cIdx is equal to 0 and one or more of the following conditions are met, then bS[xD i ][yD j ] is set to 1:

[0875] – The coded sub-block containing sample p0 and the coded sub-block 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 in the prediction of the two coded sub-blocks is greater than or equal to 8 in units of 1 / 16 luma samples.

[0876] – For the prediction of the codec sub-block containing sample p0, a different reference picture or a different number of motion vectors is used compared to the prediction of the codec sub-block containing sample q0.

[0877] NOTE 1 - Determining whether the reference pictures used for two codec sub-blocks are the same or different is based solely on which pictures are referenced, regardless of whether an index into reference picture list 0 or an index into reference picture list 1 is used to form the prediction, or whether the index positions within the reference picture lists are different.

[0878] NOTE 2 – The number of motion vectors used for the codec sub-block prediction of the top left sample cover (xSb, ySb) is equal to PredFlagL0[xSb][ySb] + PredFlagL1[xSb][ySb].

[0879] – One motion vector is used to predict the codec sub-block containing sample p0, and one motion vector is used to predict the codec sub-block containing sample q0, and the absolute difference between the horizontal or vertical components of the motion vectors used is greater than or equal to 8 in units of 1 / 16 luma samples.

[0880] – Two motion vectors and two different reference pictures are used to predict the codec sub-block containing sample p0, two motion vectors of the same two reference pictures are used to predict the codec sub-block containing sample q0, and the absolute difference between the horizontal or vertical components of the two motion vectors used in the prediction of the two codec sub-blocks of the same reference picture is greater than or equal to 8 in units of 1 / 16 luma samples.

[0881] – Two motion vectors from the same reference picture are used to predict the codec sub-block containing sample p0, and two motion vectors from the same reference picture are used to predict the codec sub-block containing sample q0, and both of the following conditions are true:

[0882] – The absolute difference between the horizontal or vertical components of the list 0 motion vectors used in the prediction of the two codec sub-blocks is greater than or equal to 8 in units of 1 / 16 luma samples, or the absolute difference between the horizontal or vertical components of the list 1 motion vectors used in the prediction of the two codec sub-blocks is greater than or equal to 8 in units of 1 / 16 luma samples.

[0883] – the absolute difference between the horizontal or vertical component of the list 0 motion vector used in the prediction of the codec sub-block containing sample p0 and the list 1 motion vector used in the prediction of the codec sub-block containing sample q0 is greater than or equal to 8 in units of 1 / 16 luma samples, or the absolute difference between the horizontal or vertical component of the list 1 motion vector used in the prediction of the codec sub-block containing sample p0 and the list 0 motion vector used in the prediction of the codec sub-block containing sample q0 is greater than or equal to 8 in units of 1 / 16 luma samples.

[0884] – Otherwise, the variable bS[xD i ][yD j ] is set to equal 0.

[0885] 5.4. Example #4: Luminance Deblocking Filtering Process

[0886] 8.8.3.6.1 Luminance block edge determination process

[0887] The input to this process is:

[0888] – Picture sample array recPicture,

[0889] – Position (xCb, yCb), specifies the top left sample of the current codec block relative to the top left sample of the current picture,

[0890] – Position (xBl, yBl), specifies the top left sample of the current block relative to the top left sample of the current codec block,

[0891] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0892] – variable bS, specifies the boundary filter strength,

[0893] – Variable maxFilterLengthP, specifies the maximum filter length,

[0894] –Variable maxFilterLengthQ, specifies the maximum filter length.

[0895] The output of this process is:

[0896] – The variables dE, dEp and dEq contain the determination,

[0897] – Modified filter length variables maxFilterLengthP and maxFilterLengthQ,

[0898] – Variable t C .

[0899] …

[0900] Apply the following sequential steps: ...

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

[0902] 1. Derive variables dp0L and dp3L, and modify maxFilterLengthP as follows:

[0903] – If sidePisLargeBlk is equal to 1, the following applies:

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

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

[0906] – Otherwise, the following applies:

[0907] dp0L=dp0 (8-1089)

[0908] dp3L=dp3 (8-1090)

[0909] maxFilterLengthP = 3 (8-1091)

[0910] maxFilterLengthP=sidePisLargeBlk? maxFilterLengthP:3

[0911] 2. The variables dq0L and dq3L are derived as follows:

[0912] – If sideQisLargeBlk is equal to 1, the following applies:

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

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

[0915] (8-1093)

[0916] – Otherwise, the following applies:

[0917] dq0L=dq0 (8-1094)

[0918] dq3L=dq3 (8-1095)

[0919] maxFilterLengthQ=sidePisLargeBlk? maxFilterLengthQ:3

[0920] …

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

[0922] …

[0923] 5.5. Example #5: Chroma Deblocking Filtering Process

[0924] 8.8.3.6.3 Chroma block edge determination process

[0925] This procedure is called only if ChromaArrayType is not equal to 0.

[0926] The inputs to this process are:

[0927] – Chroma picture sample array recPicture,

[0928] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[0929] – Chroma position (xBl, yBl), specifies the top left sample of the current chroma block relative to the top left sample of the current chroma codec block,

[0930] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0931] – Variable cIdx, specifies the color component index,

[0932] – Variable cQpPicOffset, specifies the picture-level chroma quantization parameter offset,

[0933] – variable bS, specifies the boundary filter strength,

[0934] –Variable maxFilterLengthCbCr.

[0935] The output of this process is

[0936] – Modified variable maxFilterLengthCbCr,

[0937] – Variable t C .

[0938] The variable maxK is derived as follows:

[0939] – If edgeType is equal to EDGE_VER, the following applies:

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

[0941] – Otherwise (edgeType equals EDGE_HOR), the following applies:

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

[0943] For i = 0..maxFilterLengthCbCr and k = 0..maxK, the value p i and q i The derivation is as follows:

[0944] – If edgeType is equal to EDGE_VER, the following applies:

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

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

[0947] subSampleC=SubHeightC (8-1128)

[0948] – Otherwise (edgeType equals EDGE_HOR), the following applies:

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

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

[0951] subSampleC=SubWidthC (8-1131)

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

[0953] – When treeType is equal to DUAL_TREE_CHROMA, the variable Qp Y Set equal to the overlay brightness position (xCb + The brightness quantization parameter Qp of the brightness codec unit of cbWidth / 2,yCb+cbHeight / 2) Y .

[0954] – Variable qP Cb ,qP Cr and qP CbCr The derivation is as follows:

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

[0956] what? Cb =ChromaQpTable[0][qPi Chroma ] (8-936)

[0957] what? Cr =ChromaQpTable[1][qPi Chroma ] (8-937)

[0958] what? CbCr =ChromaQpTable[2][qPi Chroma ] (8-938)

[0959] – For the colorimetric quantization parameters of Cb and Cr components, Qp′ Cb and Qp′ Cr And joint Cb-Cr codec Qp′ CbCr Derivation as follows:

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

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

[0962] Qp′ CbCr =Clip3(-QpBdOffset C ,63,qP CbCr +pps_cbcr_qp_offset+slice_cbcr_qp_ offset+CuQpOffset CbCr ) (8-941)

[0963] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 The codec block of the codec unit Corresponding to Qp′ Cb or Qp′ Cr or Qp′ CbCr value.

[0964] Variable Qp C The derivation is as follows:

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

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

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

[0968] Where slice_beta_offset_div2 contains the sample point q 0,0 The syntax elements of the strip

[0969] The value of slice_beta_offset_div2.

[0970] The variable β is derived as follows:

[0971] β=β′*(1<<(BitDepth C -8)) (8-1135)

[0972] Variable t C The value of ′ is determined based on the chromaticity quantization parameter Q as specified in Table 8-18 derived as follows:

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

[0974] (8-1136)

[0975] Among them, slice_tc_offset_div2 contains sample point q 0,0 The syntax elements of the strip

[0976] The value of slice_tc_offset_div2.

[0977] Variable t C The derivation is as follows:

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

[0979] When maxFilterLengthCbCr is equal to 1 and bS is not equal to 2, maxFilterLengthCbCr is set equal to 0.

[0980] 5.6. Example #6: Chroma QP in Deblocking

[0981] 8.8.3.6.3 Chroma block edge determination process

[0982] This procedure is called only if ChromaArrayType is not equal to 0.

[0983] The inputs to this process are:

[0984] – Chroma picture sample array recPicture,

[0985] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[0986] – Chroma position (xBl, yBl), specifies the top left sample of the current chroma block relative to the top left sample of the current chroma codec block,

[0987] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0988] – Variable cIdx, specifies the color component index,

[0989] – Variable cQpPicOffset, specifies the picture-level chroma quantization parameter offset,

[0990] – variable bS, specifies the boundary filter strength,

[0991] –Variable maxFilterLengthCbCr.

[0992] The output of this process is

[0993] – Modified variable maxFilterLengthCbCr,

[0994] – Variable t C .

[0995] The variable maxK is derived as follows:

[0996] – If edgeType is equal to EDGE_VER, the following applies:

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

[0998] – Otherwise (edgeType equals EDGE_HOR), the following applies:

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

[1000] For i = 0..maxFilterLengthCbCr and k = 0..maxK, the value p i and q i The derivation is as follows:

[1001] – If edgeType is equal to EDGE_VER, the following applies:

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

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

[1004] subSampleC=SubHeightC (8-1128)

[1005] – Otherwise (edgeType equals EDGE_HOR), the following applies:

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

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

[1008] subSampleC=SubWidthC (8-1131)

[1009] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 Qp of the codec unit of the codec block Y value.

[1010] Variable jccr_flag P and jccr_flag Q Set to be equal to including the sample point q 0,0 and p 0,0 Codec block The tu_joint_cbcr_residual_flag value of the codec unit.

[1011] Variable Qp C The derivation is as follows:

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

[1013] qPi=Clip3(0,63,((Qp Q +(jccr_flagP?pps_joint_cbcr_qp_offset:

[1014] cQpPicOffset)+QpP+(jccr_flagQ?pps_joint_cbcr_qp_offset:cQpPicOffset)

[1015] +1)>>1))

[1016] Q C =ChromaQpTable[cIdx-1][qPi] (8-1133)

[1017] NOTE – The variable cQpPicOffset provides an adjustment to the value of pps_cb_qp_offset or pps_cr_qp_offset, depending on whether the filtered chroma component is a Cb or Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process does not include adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset, nor does it include (when cu_chroma_qp_offset_enabled_flag is equal to 1) adjustments to CuQpOffset Cb 、CuQpOffset Cr or CuQpOffset CbCr Adjustment of the value.

[1018] …

[1019] 5.7. Example #7: Chroma QP in Deblocking

[1020] 8.8.3.6.3 Chroma block edge determination process

[1021] This procedure is called only if ChromaArrayType is not equal to 0.

[1022] The inputs to this process are:

[1023] – Chroma picture sample array recPicture,

[1024] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[1025] –

[1026] …

[1027] The output of this process is

[1028] – Modified variable maxFilterLengthCbCr,

[1029] – Variable t C .

[1030] The variable maxK is derived as follows:

[1031] – If edgeType is equal to EDGE_VER, the following applies:

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

[1033] – Otherwise (edgeType equals EDGE_HOR), the following applies:

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

[1035] For i = 0..maxFilterLengthCbCr and k = 0..maxK, the value p i and q i The derivation is as follows:

[1036] – If edgeType is equal to EDGE_VER, the following applies:

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

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

[1039] subSampleC=SubHeightC (8-1128)

[1040] – Otherwise (edgeType equals EDGE_HOR), the following applies:

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

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

[1043] subSampleC=SubWidthC (8-1131)

[1044] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 The codec block of the codec unit Q Y value.

[1045] Variable Qp Q Set equal to Override Brightness Position

[1046] The brightness quantization parameter Qp of the brightness codec unit of (xCb+cbWidth / 2,yCb+cbHeight / 2) Y ,in cbWidth specifies the width of the current chroma codec block in luma samples, and cbHeight specifies the width of the current chroma codec block in luma samples. Height of the front chroma codec block.

[1047] Variable Qp P Set equal to Override Brightness Position

[1048] The brightness quantization parameter Qp of the brightness codec unit of (xCb'+cbWidth' / 2,yCb'+cbHeight' / 2) Y , Where (xCb', yCb') covers q relative to the top left chrominance sample of the current image 0,0 The top left sample of the chroma codec block, cbWidth' specifies the width of the current chroma codec block in luma samples, and cbHeight specifies the width of the current chroma codec block in luma samples. The height of the codec block.

[1049] Variable Qp C The derivation is as follows:

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

[1051] Q C =ChromaQpTable[cIdx-1][qPi] (8-1133)

[1052] NOTE – The variable cQpPicOffset provides an adjustment to the value of pps_cb_qp_offset or pps_cr_qp_offset, depending on whether the filtered chroma component is a Cb or Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process does not include adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset, nor does it include (when cu_chroma_qp_offset_enabled_flag is equal to 1) adjustments to CuQpOffset Cb 、CuQpOffset Cr or CuQpOffsetCbCr Adjustment of the value.

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

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

[1055] Where slice_beta_offset_div2 contains the sample point q 0,0 The syntax elements of the strip

[1056] The value of slice_beta_offset_div2.

[1057] The variable β is derived as follows:

[1058] β=β′*(1<<(BitDepth C -8)) (8-1135)

[1059] Variable t C The value of ′ is determined based on the chromaticity quantization parameter Q as specified in Table 8-18 derived as follows:

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

[1061] (8-1136)

[1062] Among them, slice_tc_offset_div2 contains sample point q 0,0 The syntax elements of the strip

[1063] The value of slice_tc_offset_div2.

[1064] 5.8. Example #8: Chroma QP in Deblocking

[1065] When making filtering decisions for the three samples depicted (with solid circles), the QP of the luma CU covering the center position of the chroma CU that includes the three samples is selected. Fig.11 As shown), only CU Y QP of 3.

[1066] In this way, how to select the luma CU for the chroma quantization / dequantization process matches the one for the chroma filtering decision process.

[1067] 5.9. Example #9 QP for JCCR Codec Blocks

[1068] 8.7.3 Scaling of Transform Coefficients

[1069] The inputs to this process are:

[1070] – Luma position (xTbY, yTbY), specifies the top left sample of the current luma transform block relative to the top left luma sample of the current picture,

[1071] – variable nTbW, specifies the transform block width,

[1072] – variable nTbH, specifies the transform block height,

[1073] – Variable cIdx, specifies the color component of the current block,

[1074] –The variable bitDepth specifies the bit depth of the current color component.

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

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

[1077] – If cIdx is equal to 0 and transform_skip_flag[xTbY][yTbY] is equal to 0, the following applies:

[1078] qP=Qp′ Y (8-950)

[1079] – Otherwise, if cIdx is equal to 0 (and transform_skip_flag[xTbY][yTbY] is equal to 1), the following applies:

[1080] qP=Max(QpPrimeTsMin,Qp′ Y ) (8-951)

[1081] – Otherwise, if TuCResMode[xTbY][yTbY] Not equal to 0 equal to 2 , then the following applies:

[1082] qP=Qp′ CbCr (8-952)

[1083] – Otherwise, if cIdx is equal to 1, the following applies:

[1084] qP=Qp′ Cb (8-953)

[1085] – Otherwise (cIdx equals 2), the following applies:

[1086] qP=Qp′ Cr (8-954)

[1087] 5.10. Example #10 Regarding QP for JCCR Codec Blocks

[1088] 8.8.3.2 Deblocking Filtering Process in One Direction

[1089] The inputs to this process are:

[1090] – The variable treeType specifies whether the current processing is the luminance component (DUAL_TREE_LUMA) or the chrominance component (DUAL_TREE_CHROMA),

[1091] –When treeType is equal to DUAL_TREE_LUMA, the reconstructed picture before the block is removed, that is, the array recPicture L ,

[1092] – When ChromaArrayType is not equal to 0 and treeType is equal to DUAL_TREE_CHROMA, the array recPicture Cb and recPicture Cr ,

[1093] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges.

[1094] The output of this process is the modified reconstructed image after deblocking, namely:

[1095] – When treeType is equal to DUAL_TREE_LUMA, the array recPicture L ,

[1096] – When ChromaArrayType is not equal to 0 and treeType is equal to DUAL_TREE_CHROMA, the array recPicture Cb and recPicture Cr .

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

[1098] firstCompIdx=(treeType==DUAL_TREE_CHROMA)? 1:0

[1099] (8-1022)

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

[1101] For each codec unit and each codec block per color component of the codec unit indicated by color component index cIdx (ranging from firstCompIdx to lastCompIdx, inclusive), with codec block width nCbW, codec block height nCbH, and position (xCb, yCb) of the top left sample of the codec block, when cIdx is equal to 0, or when cIdx is not equal to 0 and edgeType is equal to EDGE_VER and xCb%8 is equal to 0, or when cIdx is not equal to 0 and edgeType is equal to EDGE_HOR and yCb%8 is equal to 0, filter edges by the following sequential steps:

[1102] …

[1103] 5. The image sample array recPicture is derived as follows:

[1104] – If cIdx is equal to 0, recPicture is set equal to the reconstructed luminance image before deblocking recPictureL Sample point array.

[1105] – Otherwise, if cIdx is equal to 1, recPicture is set equal to the deblocked recPicture Cb Previous Refactoring Chroma picture sample array.

[1106] – Otherwise (cIdx is equal to 2), recPicture is set equal to the deblocked recPicture Cr Previous reconstruction chromaticity Picture sample array.

[1107] 5. For i=0, 1, 2, the picture sample array recPicture[i] is derived as follows:

[1108] – recPicture[0] is set equal to the reconstructed picture sample matrix before deblocking recPictureL List.

[1109] – recPicture[1] is set equal to the reconstructed picture sample array before deblocking recPictureCb.

[1110] – recPicture[2] is set equal to the reconstructed picture sample array before deblocking recPictureCr

[1111] …

[1112] If cIdx is equal to 1, the following process applies:

[1113] The one-directional edge filtering process is called for the codec block, with the variable edgeType as specified in clause 8.8.3.6, the variable cIdx, the reconstructed picture before deblocking recPicture, the position (xCb, yCb), the codec block width nCbW, the codec block height nCbH and the arrays bS, maxFilterLengthPs and maxFilterLengthQs as input, and the modified reconstructed picture recPicture as output.

[1114] 8.8.3.5 Derivation of Boundary Filter Strength

[1115] The inputs to this process are:

[1116] – Picture sample array recPicture,

[1117] – Position (xCb, yCb), specifies the top left sample of the current codec block relative to the top left sample of the current picture,

[1118] –Variable nCbW, specifies the current codec block width,

[1119] –Variable nCbH, specifies the current codec block height,

[1120] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[1121] – Variable cIdx specifies the color component of the current codec block.

[1122] – 2D (nCbW) x (nCbH) array of edgeFlags.

[1123] The output of this process is a two-dimensional (nCbW) x (nCbH) array bS that specifies the boundary filter strength.

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

[1125] …

[1126] For i = 0..xN, j = 0..yN, xD i and yD j , the following apply:

[1127] – If edgeFlags[xD i ][yD j ] is equal to 0, then the variable bS[xD i ][yD j ] is set equal to 0. – Otherwise, the following applies:

[1128] – The sample point values ​​p0 and q0 are derived as follows:

[1129] – If edgeType equals EDGE_VER, p0 is set equal to recPicture [cIdx][ xCb i -1][yCb+yD j ], and q0 is set equal to recPicture [cIdx] [xCb+xD i ][yCb+yD j ].

[1130] – Otherwise (edgeType equals EDGE_HOR), p0 is set equal to recPicture [cIdx] [xCb+xD i ][yCb+yD j -1], and q0 is set equal to recPicture [cIdx] [xCb+xD i ][yCb+yD j ]. ..

[1131] 8.8.3.6 Edge filtering process in one direction

[1132] The inputs to this process are:

[1133] – The variable edgeType specifies whether the current processing is a vertical edge (EDGE_VER) or a horizontal edge (EDGE_HOR),

[1134] – Variable cIdx, specifies the current color component,

[1135] – Reconstructed picture before removing the block recPicture,

[1136] – Position (xCb, yCb), specifies the top left sample of the current codec block relative to the top left sample of the current picture,

[1137] –Variable nCbW, specifies the current codec block width,

[1138] –Variable nCbH, specifies the current codec block height,

[1139] – array bS specifies the boundary strength,

[1140] – Arrays maxFilterLengthPs and maxFilterLengthQs.

[1141] The output of this process is the deblocked recPicturei The reconstructed image after the modification.

[1142] …

[1143] – Otherwise (cIdx is not equal to 0), the filtering process for the edge in the chroma codec block of the current codec unit specified by cIdx comprises the following sequential steps:

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

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

[1146] cQpPicOffset=(pps_cb_qp_offset+pps_cr_qp_offset+1)>>1

[1147] (8-1065)

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

[1149] 3. Invoke the chroma block edge determination process specified in clause 8.8.3.6.3, where the chroma picture sample array recPicture, the position of the chroma codec block (xCb, yCb), is set equal to (xD k ,yD m ) of the chroma block position (xBl, yBl), edge direction edgeType, Variable cIdx , variable cQpPicOffset, boundary filter strength bS[xD k ][yD m ] and set equal to maxFilterLengthPs[xD k ][yD m ] variable maxFilterLengthCbCr as input, and modify the variable maxFilterLengthCbCr and variable t C as output.

[1150] 4. When maxFilterLengthCbCr is greater than 0, the filtering process for the chroma block edge specified in clause 8.8.3.6.4 is called, where the chroma picture sample array recPicture, the position of the chroma codec block (xCb, yCb), is set equal to (xD k ,yD m ) block's chrominance position (xBl, yBl), edge direction edgeType, variable maxFilterLengthCbCr and cIdx equal to 1 as input , and the variable t C as input, and the modified chrominance picture sample array recPicture as output.

[1151] When maxFilterLengthCbCr is greater than 0, the filter for the chroma block edges specified in clause 8.8.3.6.4 is invoked. Wave process, in which the chroma picture sample array recPicture, the position of the chroma codec block (xCb, yCb), is set equal to The chrominance position (xBl, yBl) of the block (xDk, yDm), the edge direction edgeType, the variable maxFilterLengthCbCr and cIdx equal to 2 as input, and variable tC as input, and the modified chrominance picture sample array recPicture as Output.

[1152] 8.8.3.6.3 Chroma block edge determination process

[1153] This procedure is called only if ChromaArrayType is not equal to 0.

[1154] The inputs to this process are:

[1155] – Chroma picture sample array recPicture,

[1156] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[1157] – Chroma position (xBl, yBl), specifies the top left sample of the current chroma block relative to the top left sample of the current chroma codec block,

[1158] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[1159] – The variable cIdx specifies the color component index.

[1160] – Variable cQpPicOffset, specifies the picture-level chroma quantization parameter offset,

[1161] – variable bS, specifies the boundary filter strength,

[1162] –Variable maxFilterLengthCbCr.

[1163] The output of this process is

[1164] – Modified variable maxFilterLengthCbCr,

[1165] – Variable t C .

[1166] The variable maxK is derived as follows:

[1167] – If edgeType is equal to EDGE_VER, the following applies:

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

[1169] – Otherwise (edgeType equals EDGE_HOR), the following applies:

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

[1171] for c=0..1 , i = 0..maxFilterLengthCbCr and k = 0..maxK, value p i and q i The derivation is as follows:

[1172] – If edgeType is equal to EDGE_VER, the following applies:

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

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

[1175] subSampleC=SubHeightC (8-1128)

[1176] – Otherwise (edgeType equals EDGE_HOR), the following applies:

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

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

[1179] subSampleC=SubWidthC (8-1131)

[1180] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 Qp of the codec unit of the codec block Y value.

[1181] Variable Qp C The derivation is as follows:

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

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

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

[1185] NOTE – The variable cQpPicOffset provides an adjustment to the value of pps_cb_qp_offset or pps_cr_qp_offset, depending on whether the filtered chroma component is a Cb or Cr component. However, to avoid the need to change the amount of adjustment within the picture, the filtering process does not include adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset, nor does it include (when cu_chroma_qp_offset_enabled_flag is equal to 1) adjustments to CuQpOffset Cb 、CuQpOffset Cr or CuQpOffset CbCr Adjustment of the value.

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

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

[1188] Where slice_beta_offset_div2 contains the sample point q 0,0 The syntax elements of the strip

[1189] The value of slice_beta_offset_div2.

[1190] The variable β is derived as follows:

[1191] β=β′*(1<<(BitDepth C -8)) (8-1135)

[1192] Variable t C The value of ′ is determined based on the chromaticity quantization parameter Q as specified in Table 8-18 derived as follows:

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

[1194] (8-1136)

[1195] Among them, slice_tc_offset_div2 contains sample point q 0,0 The value of the syntax element slice_tc_offset_div2 of the slice.

[1196] Variable t C The derivation is as follows:

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

[1198] When maxFilterLengthCbCr is equal to 1 and bS is not equal to 2, maxFilterLengthCbCr is set equal to 0.

[1199] When maxFilterLengthCbCr is equal to 3, the following sequential steps apply:

[1200] 1. For c = 0..1, Variables n1, dpq0 c 、dpq1 c 、dp c 、dq c and d c , which is derived as follows:

[1201] n1=(subSampleC==2)? 1:3 (8-1138)

[1202] dp0 c =Abs(p c ,2,0 -2*p c ,1,0 +p c ,0,0 ) (8-1139)

[1203] dp1 c =Abs(p c ,2,n1 -2*p c,1,n1 +p c ,0,n1 ) (8-1140)

[1204] dq0 c =Abs(q c ,2,0 -2*q c ,1,0 +q c ,0,0 ) (8-1141)

[1205] dq1 c =Abs(q c ,2,n1 -2*q c ,1,n1 +q c ,0,n1 ) (8-1142)

[1206] dpq0 c =dp0 c +dq0 c (8-1143)

[1207] dpq1 c =dp1 c +dq1 c (8-1144)

[1208] dp c =dp0 c +dp1 c (8-1145)

[1209] dq c =dq0 c +dq1 c (8-1146)

[1210] d c =dpq0 c +dpq1 c (8-1147)

[1211] 2. The variable d is set equal to (d0+d1+1)>>1

[1212] 3. The variables dSam0 and dSam1 are both set equal to 0.

[1213] 4. When d is less than β, apply the following sequential steps:

[1214] a. The variable dpq is set equal to 2*dpq0.

[1215] b. The variable dSam0 is derived by invoking the chrominance sample determination process specified in clause 8.8.3.6.8 for the sample position (xCb+xBl, yCb+yBl), where the sample value is p 0,0 、p 3,0 ,q 0,0 and q 3,0 , variables dpq, β and tC are taken as input, and the output is assigned to the decision dSam0.

[1216] c. The variable dpq is set equal to 2*dpq1.

[1217] d. The variable dSam1 is modified as follows:

[1218] – If edgeType is equal to EDGE_VER, for the sample position (xCb+xBl,yCb+yBl+n1), the chroma sample determination process specified in clause 8.8.3.6.8 is invoked, where the sample value p 0,n1 、p 3,n1 ,q 0,n1 and q 3,n1 , variables dpq, β and t C as input, and the output is assigned to the decision dSam1.

[1219] – Otherwise (edgeType equals EDGE_HOR), f or the sample position (xCb+xBl+n1,yCb+yBl), the chroma sample decision process specified in clause 8.8.3.6.8 is invoked, where the sample value p 0,n1 、p 3,n1 ,q 0,n1 and q 3,n1 , variables dpq, β and t C as input, and the output is assigned to the decision dSam1.

[1220] 5. The variable maxFilterLengthCbCr is modified as follows:

[1221] – If dSam0 is equal to 1 and dSam1 is equal to 1, then maxFilterLengthCbCr is set equal to 3.

[1222] – Otherwise, maxFilterLengthCbCr is set equal to 1.

[1223] 8.8.3.6.4 Filtering of chroma block edges

[1224] This procedure is called only if ChromaArrayType is not equal to 0.

[1225] The inputs to this process are:

[1226] – Chroma picture sample array recPicture,

[1227] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[1228] – Chroma position (xBl, yBl), specifies the top left sample of the current chroma block relative to the top left sample of the current chroma codec block,

[1229] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges

[1230] – The variable maxFilterLengthCbCr contains the maximum chroma filter length,

[1231] 6. Variable cIdx specifies the color component index ,

[1232] –Variable tC.

[1233] The output of this process is the modified chrominance picture sample array recPicture.

[1234] …

[1235] For i = 0..maxFilterLengthCbCr and k = 0..maxK, the values ​​pi and qi are derived as follows:

[1236] – If edgeType is equal to EDGE_VER, the following applies:

[1237] q i,k =recPicture [cIdx] [xCb+xBl+i][yCb+yBl+k] (8-1150)

[1238] p i,k =recPicture [cIdx] [xCb+xBl-i-1][yCb+yBl+k] (8-1151)

[1239] – Otherwise (edgeType equals EDGE_HOR), the following applies:

[1240] q i,k =recPicture [cIdx] [xCb+xBl+k][yCb+yBl+i] (8-1152)

[1241] p i,k =recPicture [cIdx][xCb+xBl+k][yCb+yBl-i-1] (8-1153)

[1242] Depending on the value of edgeType, the following applies:

[1243] – If edgeType is equal to EDGE_VER, for each sample position (xCb+xBl,yCb+yBl+k), k=0..maxK, apply the following sequential steps:

[1244] 1. Invoke the filtering process for chroma samples as specified in clause 8.8.3.6.9, with the variable maxFilterLengthCbCr, the sample value p for i = 0..maxFilterLengthCbCr i ,k,q i,k , for positions (xCb+xBl-i-1, yCb+yBl+k) and (xCb+xBl+i, yCb+yBl+k) where i=0..maxFilterLengthCbCr-1, and the variable t C As input, and for i=0..maxFilterLengthCbCr-1 the filtered sample value p i ′ and q i ’ as output.

[1245] 2. For i = 0..maxFilterLengthCbCr-1, the filtered sample value p i ′ and q i 'Replace the corresponding sample points in the sample array recPicture as follows:

[1246] recPicture [cIdx] [xCb+xBl+i][yCb+yBl+k]=q i ' (8-1154)

[1247] recPicture [cIdx] [xCb+xBl-i-1][yCb+yBl+k]=p i ' (8-1155)

[1248] – Otherwise (edgeType equals EDGE_HOR), for each sample position (xCb+xBl+k, yCb+yBl), k=0..maxK, apply the following sequential steps:

[1249] 1. Invoke the filtering process for chroma samples as specified in clause 8.8.3.6.9, with the variable maxFilterLengthCbCr, the sample value p for i = 0..maxFilterLengthCbCr i,k ,q i,k , positions (xCb+xBl+k,yCb+yBl-i-1) and (xCb+xBl+k,yCb+yBl+i) and variable t C As input, and the filtered sample value p i ′ and q i ’ as output.

[1250] 2. Sample value p after filtering i ′ and q i 'Replace the corresponding sample points in the sample array recPicture as follows:

[1251] recPicture [cIdx] [xCb+xBl+k][yCb+yBl+i]=q i ' (8-1156)

[1252] recPicture [cIdx] [xCb+xBl+k][yCb+yBl-i-1]=p i '

[1253] 5.11. Example #11

[1254] 8.8.3.6.3 Chroma block edge determination process

[1255] …

[1256] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 The codec block of the codec unit Q Y value.

[1257] Variable Qp C The derivation is as follows:

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

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

[1260] When ChromaArrayType is not equal to 0 and treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA , the application is as follows:

[1261] – When treeType is equal to DUAL_TREE_CHROMA, the variable QpY is set equal to the overlay brightness position (xCb+ cbWidth / 2,yCb+cbHeight / 2) of the luminance codec unit.

[1262] – The variables qPCb, qPCr, and qPCbCr are derived as follows:

[1263] qPiChroma=Clip3(-QpBdOffsetC,63,QpY)

[1264] (8-935)

[1265] qPiCb=ChromaQpTable[0][qPiChroma]

[1266] (8-936)

[1267] qPiCr=ChromaQpTable[1][qPiChroma]

[1268] (8-937)

[1269] qPiCbCr=ChromaQpTable[2][qPiChroma]

[1270] (8-938)

[1271] – For the chrominance quantization parameters of Cb and Cr components, Qp′Cb and Qp′Cr and joint Cb-Cr codec Qp′CbCr The derivation is as follows:

[1272] Qp′Cb=Clip3(-QpBdOffsetC,63,qPCb+pps_cb_qp_offset+slice_cb_q

[1273] p_offset+CuQpOffsetCb)

[1274] +QpBdOffsetC (8-939)

[1275] Qp′Cr=Clip3(-QpBdOffsetC,63,qPCr+pps_cr_qp_offset+slice_cr_qp_

[1276] offset+CuQpOffsetCr)

[1277] +QpBdOffsetC (8-940)

[1278] Qp′CbCr=Clip3(-QpBdOffsetC,63,qPCbCr+pps_cbcr_qp_offset+slice

[1279] _cbcr_qp_offset+CuQpOffsetCbCr)

[1280] +QpBdOffsetC (8-941)

[1281] The variables QpQ and QpP are set equal to the sample points q 0,0 and p 0,0 The codec unit of the codec block The Qp'Cb value when cIdx is equal to 1, or the Qp'Cr value of the codec unit when cIdx is equal to 2, or the Qp'Cr value of the codec unit when tu_joint_ When cbcr_residual_flag is equal to 1, the Qp'CbCr of this codec unit.

[1282] The variable QpC is derived as follows:

[1283] QpC=(QpQ+QpP+1)>>1

[1284] 5.12 Example #12

[1285] 8.8.3.6.3 Chroma block edge determination process

[1286] …

[1287] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 The codec block of the codec unit Q Y value.

[1288] Variable Qp C The derivation is as follows:

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

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

[1291] Note - The variable cQpPicOffset is pps_cb_qp_ according to whether the filtered chroma component is a Cb or Cr component. offset or pps_cr_qp_offset value to provide the adjustment. However, to avoid the need to change the adjustment amount within the picture, the filter This process does not include adjustments to the values ​​of slice_cb_qp_offset or slice_cr_qp_offset, nor does it include (when cu_ chroma_qp_offset_enabled_flag is equal to 1) for CuQpOffset Cb 、CuQpOffset Cr or CuQpOffset CbCr Adjustment of the value.

[1292] Variable Qp Q and Qp P Set to be equal to the sample points q 0,0 and p 0,0 When the transform block (xTb, yTb) When TuCResMode[xTb][yTb] is equal to 2, Qp′ CbCr -QpBdOffsetC; when cIdx is equal to 1, the transform block (xTb, yTb) Qp′ Cb -QpBdOffsetC; when cIdx is equal to 2, the Qp′ of the transform block (xTb, yTb) Cr –QpBdOffsetC.

[1293] The variable QpC is derived as follows:

[1294] QpC=(QpQ+QpP+1)>>1

[1295] …

[1296] 5.13 Example #13

[1297] This example is based on JVET-P2001-vE. Newly added text is highlighted with underlined bold italic text. Deleted text is marked with underlined bold text.

[1298] The process of determining the edge of a chromaticity block

[1299] This procedure is called only if ChromaArrayType is not equal to 0.

[1300] The inputs to this process are:

[1301] – Chroma picture sample array recPicture,

[1302] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[1303] – Chroma position (xBl, yBl), specifies the top left sample of the current chroma block relative to the top left sample of the current chroma codec block,

[1304] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[1305] – Variable cIdx, specifies the color component index,

[1306] – variable bS, specifies the boundary filter strength,

[1307] – Variable maxFilterLengthP, specifies the maximum filter length,

[1308] –Variable maxFilterLengthQ, specifies the maximum filter length.

[1309] The output of this process is

[1310] – Modified filter length variables maxFilterLengthP and maxFilterLengthQ,

[1311] – Variable t C .

[1312] …

[1313] Variable Qp P The derivation is as follows:

[1314] – Luminance position (xTb P ,xT P ) is set to the inclusive sample p relative to the top left luminance sample of the image 0,0 The top left luminance sample position of the transform block.

[1315] – If TuCResMode[xTbP][yTbP] is equal to 2, then Qp P Set equal to the included sample point

[1316] p 0,0 Qp′ of the transform block CbCr .

[1317] – Otherwise, if cIdx is equal to 1 and transform_skip_flag[xTb P ][yTb P ][cIdx] is equal to 1, then Qp P Set equal to the sample point p 0,0 Max(QpPrimeTsMin,Qp′) of the transform block Cb ).

[1318] – Otherwise, if cIdx is equal to 1, transform_skip_flag[xTb P ][yTb P ][cIdx] is equal to 0, then Qp P Set equal to the sample point p 0,0 Qp′ of the transform block Cb .

[1319] – Otherwise, Qp P Set equal to the sample point p 0,0 Qp′ of the transform block Cr .

[1320] – If cu_act_enabled_flag[xTb P ][yTb P ] equal 1 , then Qp P Set equal to Qp P -5 .

[1321] Variable Qp Q The derivation is as follows:

[1322] – Luminance position (xTb Q ,xT Q ) is set to the included sample q relative to the top left luminance sample of the image 0,0 The top left luminance sample position of the transform block.

[1323] – If TuCResMode[xTb Q ][yTb Q ] is equal to 2, then Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block CbCr .

[1324] – Otherwise, if cIdx is equal to 1 and transform_skip_flag[xTb Q ][yTb Q ][cIdx] is equal to 1, then Qp Q Set equal to the sample point p 0,0 Max(QpPrimeTsMin,Qp′) of the transform block Cr ).

[1325] – Otherwise, if cIdx is equal to 1, transform_skip_flag[xTb P ][yTb P ][cIdx] is equal to 0, then Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block Cb .

[1326] – Otherwise, Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block Cr .

[1327] – If cu_act_enabled_flag[xTb Q ][yTb Q ] is equal to 1, then Qp Q Set equal to Qp Q -5.

[1328] – Variable Qp C The derivation is as follows:

[1329] Q C =(Qp Q -QpBdOffset+Qp P -QpBdOffset+1)>>1 (1321)

[1330] …

[1331] 5.14 Example #14

[1332] This example is based on JVET-P2001-vE. Newly added text is highlighted in grey. Deleted text is marked with underlined bold text.

[1333] The process of determining the edge of a chromaticity block

[1334] This procedure is called only if ChromaArrayType is not equal to 0.

[1335] The inputs to this process are:

[1336] – Chroma picture sample array recPicture,

[1337] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[1338] – Chroma position (xBl, yBl), specifies the top left sample of the current chroma block relative to the top left sample of the current chroma codec block,

[1339] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[1340] – Variable cIdx, specifies the color component index,

[1341] – variable bS, specifies the boundary filter strength,

[1342] – Variable maxFilterLengthP, specifies the maximum filter length,

[1343] –Variable maxFilterLengthQ, specifies the maximum filter length.

[1344] The output of this process is

[1345] – Modified filter length variables maxFilterLengthP and maxFilterLengthQ,

[1346] – Variable t C .

[1347] …

[1348] Variable Qp P The derivation is as follows:

[1349] – Luminance position (xTb P ,xT P ) is set to the inclusive sample p relative to the top left luminance sample of the image 0,0 The top left luminance sample position of the transform block.

[1350] – If TuCResMode[xTbP][yTbP] is equal to 2, then Qp P Set equal to the sample point p 0,0 Qp′ of the transform block CbCr .

[1351] – Otherwise, if cIdx is equal to 1 and transform_skip_flag[xTb P ][yTb P ][cIdx] is equal to 1, then Qp P Set equal to the sample point p 0,0 Max(QpPrimeTsMin,Qp′) of the transform block Cb ).

[1352] – Otherwise, if cIdx is equal to 1, transform_skip_flag[xTb P ][yTb P ][cIdx] is equal to 0, then QpP Set equal to the sample point p 0,0 Qp′ of the transform block Cb .

[1353] – Otherwise, Qp P Set equal to the sample point p 0,0 Qp′ of the transform block Cr .

[1354] – If cu_act_enabled_flag[xTb P ][yTb P ] is equal to 1, then Qp P Set equal to Qp P -5 .

[1355] Variable Qp Q The derivation is as follows:

[1356] – Luminance position (xTb Q ,xT Q ) is set to the included sample q relative to the top left luminance sample of the image 0,0 The top left luminance sample position of the transform block.

[1357] – If TuCResMode[xTb Q ][yTb Q ] is equal to 2, then Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block CbCr .

[1358] – Otherwise, if cIdx is equal to 1 and transform_skip_flag[xTb Q ][yTb Q ][cIdx] is equal to 1, then Qp Q Set equal to the sample point p 0,0 Max(QpPrimeTsMin,Qp′) of the transform block Cr ).

[1359] – Otherwise, if cIdx is equal to 1, transform_skip_flag[xTb P ][yTb P ][cIdx] is equal to 0, then Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block Cb .

[1360] – Otherwise, Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block Cr .

[1361] – If cu_act_enabled_flag[xTb Q ][yTb Q ] is equal to 1, then Qp Q Set equal to Qp Q -3 .

[1362] – Variable Qp C The derivation is as follows:

[1363] Q C =(Qp Q -QpBdOffset+Qp P -QpBdOffset+1)>>1 (1321)

[1364] …

[1365] 5.15 Example #15

[1366] Down Fig.17 The proposed control logic is shown.

[1367] 7.3.2.6 Picture Header RBSP Syntax

[1368]

[1369]

[1370] 7.3.7.1 Generic Strip Header Syntax

[1371]

[1372] 5.16 Example #16

[1373] 7.3.2.4 Picture parameter set RBSP syntax

[1374]

[1375] 5 7.3.2.6 Picture header RBSP syntax

[1376]

[1377]

[1378] 7.3.7.1 Generic Strip Header Syntax

[1379]

[1380] 7.4.3.4 Picture parameter set RBSP semantics

[1381] pps_cb_beta_offset_div2 and pps_cb_tc_offset_div2 specify the default deblocking parameter offsets (divided by 2) applied to the beta and tc components of the slices referencing the PPS, unless the default deblocking parameter offsets are overridden by the deblocking parameter offsets present in the slice header of the slices referencing the PPS. The values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 shall both be in the range of -6 to 6, inclusive. When not present, the values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 are inferred to be equal to 0.

[1382] pps_cr_beta_offset_div2 and pps_cr_tc_offset_div2 specify the default deblocking parameter offsets (divided by 2) applied to the beta and tC of the Cr components of the slices referencing the PPS, unless the default deblocking parameter offsets are overridden by the deblocking parameter offsets present in the slice header of the slices referencing the PPS. The values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 shall both be in the range of -6 to 6, inclusive. When not present, the values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 are inferred to be equal to 0.

[1383] 7.4.3.6 Image Header

[1384] pic_cb_beta_offset_div2 and pic_cb_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) applied to the beta and tc components of the slice associated with the PH. The values ​​of pic_beta_offset_div2 and pic_tc_offset_div2 shall be in the range -6 to 6, inclusive. When not present, the values ​​of pic_beta_offset_div2 and pic_tc_offset_div2 are inferred to be equal to pps_beta_offset_div2 and pps_tc_offset_div2, respectively.

[1385] pic_cr_beta_offset_div2 and pic_cr_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) applied to the beta and tc components of the slice associated with the PH. The values ​​of pic_beta_offset_div2 and pic_tc_offset_div2 shall be in the range -6 to 6, inclusive. When not present, the values ​​of pic_beta_offset_div2 and pic_tc_offset_div2 are inferred to be equal to pps_beta_offset_div2 and pps_tc_offset_div2, respectively.

[1386] 7.4.8.1 Generic Strip Header Semantics

[1387] slice_cb_beta_offset_div2 and slice_cb_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) applied to the Cb component of the current slice for beta and tc. The values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 shall both be in the range -6 to 6, inclusive. When not present, the values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 are inferred to be equal to pic_beta_offset_div2 and pic_tc_offset_div2, respectively.

[1388] slice_cr_beta_offset_div2 and slice_cr_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) applied to the Cb component of the current slice. The values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 shall both be in the range -6 to 6, inclusive. When not present, the values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 are inferred to be equal to pic_beta_offset_div2 and pic_tc_offset_div2, respectively.

[1389] 8.8.3.6.3 Chroma block edge determination process

[1390] …

[1391] The value of the variable β′ is determined as specified in Table 41 based on the quantization parameter Q derived as follows:

[1392] Q=Clip3(0,63,Qp C +(slice_beta_offset_div2<<1)) (1322)

[1393] ■ If cIdx is equal to 1

[1394] Q=Clip3(0,63,Qp C +(slice_cb_beta_offset_div2<<1))

[1395] ■ otherwise

[1396] Q=Clip3(0,63,Qp C +(slice_cr_beta_offset_div2<<1))

[1397] Where slice_beta_offset_div2 contains the sample point q 0,0 The syntax elements of the strip

[1398] The value of slice_beta_offset_div2.

[1399] The variable β is derived as follows:

[1400] β=β′*(1<<(BitDepth-8)) (1323)

[1401] Variable t C The value of ' is determined as specified in Table 41 based on the chromaticity quantization parameter Q derived as follows:

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

[1404] ■ If cIdx is equal to 1

[1405] Q=Clip3(0,65,Qp C +2*(bS-1)+(slice_cb_tc_offset_div2<<1))

[1406] ■ otherwise

[1407] Q=Clip3(0,65,Qp C +2*(bS-1)+(slice_cr_tc_offset_div2<<1))

[1408] …

[1409] 5.17 Example #17

[1410] This example is based on Example #15.

[1411] 7.3.2.4 Picture parameter set RBSP syntax

[1412]

[1413]

[1414] 7.3.7.1 Generic Strip Header Syntax

[1415]

[1416] 7.4.3.4 Picture parameter set RBSP semantics

[1417] pps_cb_beta_offset_div2 and pps_cb_tc_offset_div2 specify the default deblocking parameter offsets (divided by 2) applied to the beta and tc components of the slices referencing the PPS, unless the default deblocking parameter offsets are overridden by the deblocking parameter offsets present in the slice header of the slices referencing the pps. The values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 shall both be in the range of -6 to 6, inclusive. When not present, the values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 are inferred to be equal to 0.

[1418] pps_cr_beta_offset_div2 and pps_cr_tc_offset_div2 specify the default deblocking parameter offsets (divided by 2) applied to the beta and tC of the Cr components of the slices referencing the PPS, unless the default deblocking parameter offsets are overridden by the deblocking parameter offsets present in the slice header of the slices referencing the PPS. The values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 shall both be in the range of -6 to 6, inclusive. When not present, the values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 are inferred to be equal to 0.

[1419] 7.4.8.1 Generic Strip Header Semantics

[1420] slice_cb_beta_offset_div2 and slice_cb_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) applied to the Cb component of the current slice for beta and tc. The values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 shall both be in the range -6 to 6, inclusive. When not present, the values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 are inferred to be equal to pps_beta_offset_div2 and pps_tc_offset_div2, respectively.

[1421] slice_cr_beta_offset_div2 and slice_cr_tc_offset_div2 specify the deblocking parameter offsets (divided by 2) applied to the Cb component of the current slice for beta and tc. The values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 shall both be in the range -6 to 6, inclusive. When not present, the values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 are inferred to be equal to pps_beta_offset_div2 and pps_tc_offset_div2, respectively.

[1422] 8.8.3.6.3 Chroma block edge determination process

[1423] …

[1424] The value of the variable β′ is determined as specified in Table 41 based on the quantization parameter Q derived as follows:

[1425] Q=Clip3(0,63,Qp C +(slice_beta_offset_div2<<1)) (1322)

[1426] ■ If cIdx is equal to 1

[1427] Q=Clip3(0,63,Qp C +(slice_cb_beta_offset_div2<<1))

[1428] ■ otherwise

[1429] Q=Clip3(0,63,Qp C +(slice_cr_beta_offset_div2<<1))

[1430] Where slice_beta_offset_div2 contains the sample point q 0,0 The syntax elements of the strip

[1431] The value of slice_beta_offset_div2.

[1432] The variable β is derived as follows:

[1433] β=β′*(1<<(BitDepth-8)) (1323)

[1434] Variable t C The value of ' is determined as specified in Table 41 based on the chromaticity quantization parameter Q derived as follows:

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

[1437] ■ If cIdx is equal to 1

[1438] Q=Clip3(0,65,Qp C +2*(bS-1)+(slice_cb_tc_offset_div2<<1))

[1439] ■ otherwise

[1440] Q=Clip3(0,65,Qp C +2*(bS-1)+(slice_cr_tc_offset_div2<<1))

[1441] …

[1442] 5.18 Example #18

[1443] This example is based on Example #17.

[1444] 7.4.3.4 Picture parameter set RBSP semantics

[1445] pps_cb_beta_offset_div2 and pps_cb_tc_offset_div2 specify the default deblocking parameter offsets (divided by 2) applied to the Cb component of the current PPS for beta and tc. The values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 shall both be in the range of -6 to 6, inclusive. When not present, the values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 are inferred to be equal to 0.

[1446] pps_cr_beta_offset_div2 and pps_cr_tc_offset_div2 specify the default deblocking parameter offsets (divided by 2) applied to the β and tC of the Cr component of the current PPS. The values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 should both be in the range of -6 to 6, inclusive. When not present, the values ​​of pps_beta_offset_div2 and pps_tc_offset_div2 are inferred to be equal to 0.

[1447] 7.4.8.1 Generic Strip Header Semantics

[1448] slice_cb_beta_offset_div2 and slice_cb_tc_offset_div2 specify the deblocking parameter offset (divided by 2) of beta and tc applied to the Cb component of the current slice. The values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 should both be in the range -6 to 6, inclusive.

[1449] slice_cr_beta_offset_div2 and slice_cr_tc_offset_div2 specify the deblocking parameter offset (divided by 2) of beta and tc applied to the Cb component of the current slice. The values ​​of slice_beta_offset_div2 and slice_tc_offset_div2 should both be in the range -6 to 6, inclusive.

[1450] 8.8.3.6.1 Luminance block edge determination process

[1451] …

[1452] The value of the variable β′ is determined as specified in Table 41 based on the quantization parameter Q derived as follows:

[1453] Q=Clip3(0,63,qP+(slice_beta_offset_div2<<1)) (1262)

[1454] Q=Clip3(0,63,qP+((pps_beta_offset_div2+

[1455] slice_beta_offset_div2)<<1)) (1262)

[1456] Where slice_beta_offset_div2 contains the sample point q 0,0 The value of the syntax element slice_beta_offset_div2 for the slice.

[1457] The variable β is derived as follows:

[1458] β=β′*(1<<(BitDepth-8)) (1263)

[1459] Variable t C The value of ' is determined as specified in Table 41 based on the quantization parameter Q derived as follows:

[1460] Q=Clip3(0,65,qP+2*(bS-1)+(slice_tc_offset_div2<<1)) (1264)

[1462] Q=Clip3(0,65,qP+2*(bS-1)+((pps_tc_offset_div2+

[1463] slice_tc_offset_div2)<<1)) (1264)

[1464] …

[1465] 8.8.3.6.3 Chroma block edge determination process

[1466] …

[1467] The value of the variable β′ is determined as specified in Table 41 based on the quantization parameter Q derived as follows:

[1468] Q=Clip3(0,63,Qp C +(slice_beta_offset_div2<<1)) (1322)

[1469] ■ If cIdx is equal to 1

[1470] Q=Clip3(0,63,Qp C +((pps_cb_beta_offset_div2+

[1471] slice_cb_beta_offset_div2)<<1))

[1472] ■ otherwise

[1473] Q=Clip3(0,63,Qp C +((pps_cr_beta_offset_div2

[1474] +slice_cr_beta_offset_div2)<<1))

[1475] Where slice_beta_offset_div2 contains the sample point q 0,0 The value of the syntax element slice_beta_offset_div2 for the slice.

[1476] The variable β is derived as follows:

[1477] β=β′*(1<<(BitDepth-8))(1323)

[1478] The value of the variable tC' is determined as specified in Table 41 based on the quantization parameter Q derived as follows:

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

[1481] ■ If cIdx is equal to 1

[1482] Q=Clip3(0,65,Qp C +2*(bS-1)+((pps_cb_tc_offset_div2

[1483] +slice_cb_tc_offset_div2)<<1))

[1484] α otherwise

[1485] Q=Clip3(0,65,Qp C +2*(bS-1)+((pps_cr_tc_offset_div2

[1486] +slice_cr_tc_offset_div2)<<1))

[1487] …

[1488] 5.19 Example #19

[1489] This embodiment is related to ACT.

[1490] intra_bdpcm_chroma_flag equal to 1 specifies that BDPCM is applied to the current chroma codec block at position (x0, y0), i.e., transform is skipped and the intra chroma prediction mode is specified by intra_bdpcm_chroma_dir_flag. intra_bdpcm_chroma_flag equal to 0 specifies that BDPCM is not applied to the current chroma codec block at position (x0, y0).

[1491] When intra_bdpcm_chroma_flag is not present, It is inferred to be equal to 0. It is inferred to be equal to sps_bdpcm_ chroma_enabled_fla&&cu_act_enabled_flag&&intra_bdpcm_luma_flag.

[1492] For x = x0..x0+cbWidth-1, y = y0..y0+cbHeight-1 and cIdx = 1..2, the variable BdpcmFlag[x][y][cIdx] is set equal to intra_bdpcm_chroma_flag.

[1493] intra_bdpcm_chroma_dir_flag equal to 0 indicates that the BDPCM prediction direction is horizontal. intra_bdpcm_chroma_dir_flag equal to 1 specifies that the BDPCM prediction direction is vertical.

[1494] When intra_bdpcm_chroma_dir_flag is not present, it is inferred to be equal to (cu_act_enabled_flag? intra_bdpcm_luma_dir_flag: 0).

[1495] For x = x0..x0+cbWidth-1, y = y0..y0+cbHeight-1 and cIdx = 1..2, the variable BdpcmDir[x][y][cIdx] is set equal to intra_bdpcm_chroma_dir_flag.

[1496] 5.20 Example #20

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

[1498] 8.8.3.6.1 Luminance block edge determination process

[1499] The inputs to this process are:

[1500] – Picture sample array recPicture,

[1501] – Position (xCb, yCb), specifies the top left sample of the current codec block relative to the top left sample of the current picture,

[1502] – Position (xBl, yBl), specifies the top left sample of the current block relative to the top left sample of the current codec block,

[1503] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[1504] – variable bS, specifies the boundary filter strength,

[1505] – Variable maxFilterLengthP, specifies the maximum filter length,

[1506] –Variable maxFilterLengthQ, specifies the maximum filter length.

[1507] The output of this process is:

[1508] – The variables dE, dEp and dEq contain the determination,

[1509] – Modified filter length variables maxFilterLengthP and maxFilterLengthQ,

[1510] – Variable t C .

[1511] …

[1512] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 The codec block of the codec unit QpY value.

[1513] Variable Qp Q The derivation is as follows.

[1514] Q Q Set to include sample point q 0,0 Qp of the codec unit of the codec block Q value.

[1515] If it contains sample point q 0,0 The transform_skip_flag of the codec block is equal to 1,

[1516] Qp Q =Max(QpPrimeTsMin,Qp Q +QpBdOffset)-QpBdOffset

[1517] Q p Set to include sample points p 0,0 Qp of the codec unit of the codec block Y value.

[1518] If it contains sample point p 0,0 The transform_skip_flag of the codec block is equal to 1,

[1519] Qp p =Max(QpPrimeTsMin,Qp p +QpBdOffset)-QpBdOffset

[1520] …

[1521] 8.8.3.6.3 Chroma block edge determination process

[1522] This procedure is called only if ChromaArrayType is not equal to 0.

[1523] The inputs to this process are:

[1524] – Chroma picture sample array recPicture,

[1525] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[1526] – Chroma position (xBl, yBl), specifies the top left sample of the current chroma block relative to the top left sample of the current chroma codec block,

[1527] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[1528] – Variable cIdx, specifies the color component index,

[1529] – variable bS, specifies the boundary filter strength,

[1530] – Variable maxFilterLengthP, specifies the maximum filter length,

[1531] –Variable maxFilterLengthQ, specifies the maximum filter length.

[1532] The output of this process is

[1533] – Modified filter length variables maxFilterLengthP and maxFilterLengthQ,

[1534] – Variable t C .

[1535] …

[1536] Variable Qp P The derivation is as follows:

[1537] – Luminance position (xTb P ,xT P ) is set to the inclusive sample p relative to the top left luminance sample of the image 0,0 The top left luminance sample position of the transform block.

[1538] – If TuCResMode[xTbP][yTbP] is equal to 2, then Qp P Set equal to the sample point p 0,0 Qp′ of the transform block CbCr .

[1539] – Otherwise, if cIdx is equal to 1, then Qp P Set equal to the sample point p 0,0 Qp′ of the transform block Cb .

[1540] – Otherwise, Qp P Set equal to the sample point p 0,0 Qp′ of the transform block Cr .

[1541] Variable Qp P Modify as follows:

[1542] Qp P =Max(transform_skip_flag[xTb P ][yTb P ][cIdx]?QpPrimeTsMin:0,Qp P )

[1543] Variable Qp Q The derivation is as follows:

[1544] – Luminance position (xTb Q ,xT Q ) is set to the included sample q relative to the top left luminance sample of the image 0,0 The top left luminance sample position of the transform block.

[1545] – If TuCResMode[xTb Q ][yTb Q ] is equal to 2, then QpQ Set equal to the sample point q 0,0 Qp′ of the transform block CbCr .

[1546] – Otherwise, if cIdx is equal to 1, then Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block Cb .

[1547] – Otherwise, Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block Cr .

[1548] Variable Qp Q Modify as follows:

[1549] Qp Q =Max(transform_skip_flag[xTb Q ][yTb Q ][cIdx]?QpPrimeTsMin:0,Qp Q )

[1550] – Variable Qp C The derivation is as follows:

[1551] Q C =(Qp Q -QpBdOffset+Qp P -QpBdOffset+1)>>1 (1321)

[1552] 5.21 Example #21

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

[1554] 8.8.3.6.1 Luminance block edge determination process

[1555] The inputs to this process are:

[1556] – Picture sample array recPicture,

[1557] – Position (xCb, yCb), specifies the top left sample of the current codec block relative to the top left sample of the current picture,

[1558] – Position (xBl, yBl), specifies the top left sample of the current block relative to the top left sample of the current codec block,

[1559] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[1560] – variable bS, specifies the boundary filter strength,

[1561] – Variable maxFilterLengthP, specifies the maximum filter length,

[1562] –Variable maxFilterLengthQ, specifies the maximum filter length.

[1563] The output of this process is:

[1564] – The variables dE, dEp and dEq contain the determination,

[1565] – Modified filter length variables maxFilterLengthP and maxFilterLengthQ,

[1566] – Variable t C .

[1567] …

[1568] Variable Qp Q and Qp P Set to be equal to including the sample point q 0,0 and p 0,0 Qp of the codec unit of the codec block Y value.

[1569] If it contains sample point q 0,0 If the transform_skip_flag of the codec unit is equal to 1, then Qp Q was modified to:

[1570] Qp Q =Max(QpPrimeTsMin,Qp Q +QpBdOffset)-QpBdOffset

[1571] If it contains sample point p 0,0 If the transform_skip_flag of the codec unit is equal to 1, then Qp P was modified to:

[1572] Qp p =Max(QpPrimeTsMin,Qp p +QpBdOffset)-QpBdOffset

[1573] …

[1574] 8.8.3.6.3 Chroma block edge determination process

[1575] This procedure is called only if ChromaArrayType is not equal to 0.

[1576] The inputs to this process are:

[1577] – Chroma picture sample array recPicture,

[1578] – Chroma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left chroma sample of the current picture,

[1579] – Chroma position (xBl, yBl), specifies the top left sample of the current chroma block relative to the top left sample of the current chroma codec block,

[1580] – The variable edgeType specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[1581] – Variable cIdx, specifies the color component index,

[1582] – variable bS, specifies the boundary filter strength,

[1583] – Variable maxFilterLengthP, specifies the maximum filter length,

[1584] –Variable maxFilterLengthQ, specifies the maximum filter length.

[1585] The output of this process is

[1586] – Modified filter length variables maxFilterLengthP and maxFilterLengthQ,

[1587] – Variable t C .

[1588] …

[1589] Variable Qp P The derivation is as follows:

[1590] – Luminance position (xTb P ,xT P ) is set to the inclusive sample p relative to the top left luminance sample of the image 0,0 The top left luminance sample position of the transform block.

[1591] – If TuCResMode[xTbP][yTbP] is equal to 2, then Qp P Set equal to the sample point p 0,0 Qp′CbCr of the transformed block.

[1592] – Otherwise, if cIdx is equal to 1, then Qp P Set equal to the sample point p 0,0 Qp′ of the transform block Cb .

[1593] – Otherwise, Qp P Set equal to the sample point p 0,0 Qp′ of the transform block Cr .

[1594] If transform_skip_flag[xTb P ][yTb P ][cIdx] is equal to 1, then the variable Qp P Modify as follows:

[1595] Qp P =Max(QpPrimeTsMin,Qp P )

[1596] Variable Qp Q The derivation is as follows:

[1597] – Luminance position (xTb Q ,xT Q) is set to the included sample q relative to the top left luminance sample of the image 0,0 The top left luminance sample position of the transform block.

[1598] – If TuCResMode[xTb Q ][yTb Q ] is equal to 2, then Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block CbCr .

[1599] – Otherwise, if cIdx is equal to 1, then Qp Q Set equal to the sample point p 0,0 Qp′ of the transform block Cb . – Otherwise, Qp Q Set equal to the sample point q 0,0 Qp′ of the transform block Cr .

[1600] If transform_skip_flag[xTb Q ][yTb Q ][cIdx] is equal to 1, then the variable Qp Q Modify as follows:

[1601] Qp Q =Max(QpPrimeTsMin,Qp Q )

[1602] – Variable Qp C The derivation is as follows:

[1603] Q C =(Qp Q -QpBdOffset+Qp P -QpBdOffset+1)>>1 (1321)

[1604] 5.22 Example #22

[1605] This embodiment relates to CC-ALF. Newly added text above the draft provided by JVET-Q0058 is highlighted in underlined bold italic text. In this embodiment, the signaling of CC-ALF related information is in the condition of ChromaArraryType. Conducted under inspection .

[1606] 7.3.2.6 Picture Header RBSP Syntax

[1607]

[1608]

[1609] Alternatively, the newly added "ChromaArrayType!=0" can be replaced with "chroma_format_idc!=0"

[1610] 5.23 Example #23

[1611] This embodiment relates to CC-ALF. Newly added text above the draft provided by JVET-Q0058 is highlighted in underlined bold italic text.

[1612] 7.3.2.3 Sequence parameter set RBSP syntax

[1613]

[1614]

[1615] Semantics

[1616] sps_ccalf_enabled_flag equal to 0 specifies that cross-component adaptive loop filtering is disabled.

[1617] sps_ccalf_enabled_flag equal to 1 specifies that cross-component adaptive loop filtering is enabled.

[1618] Alternatively, the following may apply:

[1619]

[1620] Alternatively, the following may apply:

[1621]

[1622] Alternatively, the following may apply:

[1623]

[1624] Semantics

[1625] sps_ccalf_enabled_flag equal to 0 specifies that cross-component adaptive loop filtering is disabled.

[1626] sps_ccalf_enabled_flag equal to 1 specifies that cross-component adaptive loop filtering is enabled. , is inferred to be 0.

[1627] 7.3.3.2 General Constraint Information Syntax

[1628]

[1629] no_ccalf_constraint_flag equal to 1 specifies that sps_ccalf_enabled_flag should be equal to 0.

[1630] no_ccalf_constraint_flag equal to 0 does not impose such a constraint.

[1631] 7.3.2.6 Picture Header RBSP Syntax

[1632]

[1633]

[1634]

[1635] Alternatively, the following may apply:

[1636]

[1637]

[1638] Alternatively, the following may apply:

[1639]

[1640]

[1641] pic_ccalf_enabled_present_flag is equal to 1 to specify the presence of PH

[1642] pic_ccalf_enabled_flag、pic_cross_component_alf_CB_enabled_flag、

[1643] pic_cross_component_alf_cb_aps_id、

[1644] pic_cross_component_cb_filters_signalled_minus1、

[1645] pic_cross_component_alf_cr_enabled_flag、

[1646] pic_cross_component_alf_cr_aps_id and

[1647] pic_cross_component_cr_filters_signalled_minus1.

[1648] pic_alf_enabled_present_flag is equal to 0 to specify that it does not exist in PH

[1649] pic_cross_component_alf_cb_enabled_flag、

[1650] pic_cross_component_alf_cb_aps_id、

[1651] pic_cross_component_cb_filters_signalled_minus1、

[1652] pic_cross_component_alf_cr_enabled_flag、

[1653] pic_cross_component_alf_cr_aps_id and

[1654] pic_cross_component_cr_filters_signalled_minus1. When not present

[1655] When pic_alf_enabled_present_flag is set, it is inferred to be equal to 0.

[1656] 5.24 Example #24

[1657] This embodiment relates to a high-level grammar and is based on JVET-P2001-vE. Newly added text is highlighted with underlined bold italic text. Deleted text is marked with underlined bold text.

[1658] 7.3.2.3 Sequence parameter set RBSP syntax

[1659]

[1660] 5.1 Example #25

[1661] This embodiment relates to a high-level grammar and is based on JVET-P2001-vE. Newly added text is highlighted with underlined bold italic text. Deleted text is marked with underlined bold text.

[1662] sps_bdpcm_chroma_enabled_flag equal to 1 specifies that intra_bdpcm_chroma_flag may be present in the codec unit syntax of an intra codec unit. sps_bdpcm_chroma_enabled_flag equal to 0 specifies that intra_bdpcm_chroma_flag is not present in the codec unit syntax of an intra codec unit. When not present, the value of sps_bdpcm_chroma_enabled_flag is inferred to be equal to 0.

[1663] When ChromaArrayType is not equal to 3, sps_bdpcm_chroma_enabled_flag shall be equal to 0.

[1664] sps_palette_enabled_flag equal to 1 specifies that pred_mode_plt_flag may be present in the codec unit syntax. sps_palette_enabled_flag equal to 0 specifies that pred_mode_plt_flag is not present in the codec unit syntax. When sps_palette_enabled_flag is not present, it is inferred to be equal to 0.

[1665] When ChromaArrayType is not equal to 3, sps_palette_enabled_flag shall be equal to 0.

[1666] sps_act_enabled_flag equal to 1 specifies that adaptive color transform can be used, and cu_act_enabled_flag may be present in the codec unit syntax. sps_act_enabled_flag equal to 0 specifies that adaptive color transform is not used, and cu_act_enabled_flag is not present in the codec unit syntax. When sps_act_enabled_flag is not present, it is inferred to be equal to 0.

[1667] When ChromaArrayType is not equal to 3, sps_act_enabled_flag shall be equal to 0.

[1668] 6. Example Implementations of the Disclosed Technology

[1669] Fig.121 is a block diagram of a video processing device 1200. Device 1200 may be used to implement one or more methods described herein. Device 1200 may be embodied in a smart phone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. Device 1200 may include one or more processors 1202, one or more memories 1204, and video processing hardware 1206. (Multiple) processors 1202 may be configured to implement one or more methods described in this document. Memory (multiple memories) 1204 may be used to store data and code for implementing the methods and techniques described herein. Video processing hardware 1206 may be used to implement some of the techniques described in this document in hardware circuits, and may be partially or completely part of processor 1202 (e.g., a graphics processor core GPU or other signal processing circuit).

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

[1671] It will be appreciated that the disclosed methods and techniques will benefit video encoder and / or decoder embodiments incorporated into video processing devices such as smartphones, laptops, desktop computers, and similar devices by enabling use of the techniques disclosed in this document.

[1672] Fig.13 13 is a flow chart of an example method 1300 of video processing. The method 1300 includes, at 1310, performing a conversion between a video unit and a codec representation of the video unit, wherein during the conversion, deblocking filtering is used on a boundary of the video unit such that when a chroma quantization parameter (QP) table is used to derive parameters for the deblocking filtering, processing is performed on individual chroma QP values ​​through the chroma QP table.

[1673] Fig.18 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of this disclosure.

[1674] like Fig.18 As shown, the video codec system 100 may include a source device 110 and a destination device 120. The source device 110 generates encoded video data, which may be referred to as a video encoding device. The destination device 120 may decode the encoded video data generated by the source device 110, which may be referred to as a video decoding device.

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

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

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

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

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

[1680] Fig.19 is to show that it can be Fig.18 A block diagram of an example of a video encoder 200 is shown for video encoder 114 in system 100 .

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

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

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

[1684] Furthermore, some components (e.g., motion estimation unit 204 and motion compensation unit 205) may be highly integrated but are not shown for explanation purposes. Fig.19 In the example, they are shown separately.

[1685] The segmentation unit 201 may segment a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support multiple video block sizes.

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

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

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

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

[1690] In other examples, the motion estimation unit 204 may perform bidirectional prediction on the current video block, and the motion estimation unit 204 may search for a reference video block of the current video block in the reference pictures in list 0, and may also search for another reference video block of the current video block in the reference pictures in list 1. The motion estimation unit 204 may then generate a reference index and a motion vector, the reference index indicating the reference pictures in list 0 and list 1 containing the reference video block, and the motion vector indicating the spatial displacement between the reference video block and the current video block. The motion estimation unit 204 may output the reference index and the motion vector of the current video block as the motion information of the current video block. The motion compensation unit 205 may generate a predicted video block of the current video block based on the reference video block indicated by the motion information of the current video block.

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

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

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

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

[1695] As described above, the video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merge mode signaling.

[1696] The intra prediction unit 206 may perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 may generate 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 a predicted video block and a variety of syntax elements.

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

[1698] In other examples, the current video block may not have residual data for the current video block (eg, in skip mode), and the residual generation unit 207 may not perform a subtraction operation.

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

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

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

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

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

[1704] Some embodiments of the disclosed technology include making a decision or determination to enable a video processing tool or mode. In an example, when a video processing tool or mode is enabled, the encoder will use or implement the tool or mode in the processing of a video block, but may not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, when a video processing tool or mode is enabled based on a decision or determination, the conversion from a video block to a video bitstream will use the video processing tool or mode. In another example, when a video processing tool or mode is enabled, the decoder will process the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, the conversion from a video bitstream to a video block will be performed using the video processing tool or mode enabled based on the decision or determination.

[1705] Fig. 20 is to show that it can be Fig.18 A block diagram of an example of a video decoder 300 in the system 100 is shown.

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

[1707] exist Fig. 20 In the example of FIG. 3 , the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306 and a buffer 307. The video decoder 300 may perform the same operations as those generally performed for the video encoder 200 ( Fig.19 ) is a decoding channel that is the inverse of the encoding channel described.

[1708] The entropy decoding unit 301 may retrieve an encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded video data blocks). The entropy decoding unit 301 may decode the entropy-encoded video data, and the motion compensation unit 302 may determine motion information from the entropy-decoded video data, including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 302 may determine this information, for example, by performing AMVP and Merge modes.

[1709] The motion compensation unit 302 may generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier of an interpolation filter to be used with sub-pixel precision may be included in the syntax element.

[1710] Motion compensation unit 302 may calculate interpolated values ​​of sub-integer pixels of a reference block using interpolation filtering as used by video encoder 20 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filtering used by video encoder 200 based on received syntax information and use the interpolation filtering to generate a prediction block.

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

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

[1713] The reconstruction unit 306 may add the residual block to the corresponding prediction block generated by the motion compensation unit 302 or the intra prediction unit 303 to form a decoded block. If necessary, a deblocking filter may also be applied to filter the decoded block in order to remove block artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation / intra prediction and also generates a decoded video for presentation on a display device.

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

[1715] System 1900 may include a codec component 1904, which may implement various codecs or encoding methods described in this document. Codec component 1904 may reduce the average bit rate of the video from input 1902 to the output of codec component 1904 to generate a bitstream representation of the video. Therefore, codec technology is sometimes referred to as video compression or video transcoding technology. As represented by component 1906, the output of codec component 1904 may be stored or transmitted via the connected communication. Component 1908 may use the storage or communication bitstream (or codec) representation of the video received at input 1902 to generate pixel values ​​or displayable video sent to display interface 1910. The process of generating user-viewable video from bitstream is sometimes referred to as video decompression. In addition, although some video processing operations are referred to as "codec" operations or tools, it should be understood that coding tools or operations are used at the encoder, and the operation of corresponding decoding tools or inverted coding results will be performed by the decoder.

[1716] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or Display Port, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, IDE interfaces, etc. The techniques described in this document may be implemented in various electronic devices, such as mobile phones, laptop computers, smart phones, or other devices capable of performing digital data processing and / or video display.

[1717] Fig. 22 22 is a flow chart of an example method 2200 of video processing. Operation 2202 includes performing conversion between a video unit of a video and a bitstream of the video according to a rule, wherein the rule specifies indicating in a bitstream in a mutually independent manner whether a cross-component adaptive loop filtering (CC-ALF) mode and an adaptive loop filtering (ALF) mode are enabled to encode and decode the video unit.

[1718] In some embodiments of the method 2200, when the ALF mode is enabled for the video unit, a color space conversion is performed on the residual value of the video unit. In some embodiments of the method 2200, when the CC-ALF tool is enabled for the video unit, the sample values ​​of the video unit of the video component are filtered with the sample values ​​of another video component of the video. In some embodiments of the method 2200, the rule specifies that a first syntax element selectively included in the bitstream indicates whether the CC-ALF mode is enabled for the video unit. In some embodiments of the method 2200, the first syntax element is indicated at a sequence level or a video level or a picture level associated with the video unit, and the first syntax element is different from another syntax element included in the bitstream indicating whether the ALF mode is enabled for the video unit. In some embodiments of the method 2200, the first syntax element is included in the bitstream based on the ALF mode enabled for the video unit.

[1719] In some embodiments of the method 2200, the first syntax element is included in the bitstream if a codec condition is met, wherein the codec condition includes: the type of color format of the video, or whether separate plane codec is enabled for conversion, or the sampling structure of the chroma component of the video. In some embodiments of the method 2200, the rule specifies that the bitstream includes a second syntax element, which indicates whether one or more syntax elements related to the CC-ALF mode are present in a picture header, and wherein the second syntax element is included in a picture header or a picture parameter set (PPS) or a slice header. In some embodiments of the method 2200, the rule specifies that the bitstream includes the second syntax element based on the ALF mode enabled for the video unit.

[1720] In some embodiments of the method 2200, the ALF is a Wiener filter with adjacent samples as input. In some embodiments of the method 2200, the rule specifies that when the value of the chroma array time is not equal to zero or the color format of the video is not 4:0:0, and the bitstream includes a first syntax element indicating that the CC-ALF mode is enabled for the video unit (where the first syntax element is indicated for a video level of the video that is higher than the video level of the video unit), the bitstream includes a syntax element in a picture header or a picture parameter set (PPS) related to the CC-ALF mode. In some embodiments of the method 2200, the rule specifies that when the value of the chroma array time is not equal to zero or the color format of the video is not 4:0:0, or the bitstream includes a first syntax element indicating that the CC-ALF mode is enabled for the video unit (where the first syntax element is indicated for a video level of the video that is higher than the video level of the video unit), the bitstream includes a syntax element in a picture header or a picture parameter set (PPS) or a slice header related to the CC-ALF mode. In some embodiments of the method 2200, the video level includes a sequence parameter set (SPS).

[1721] Fig.23 23 is a flow chart of an example method 2300 of video processing. Operation 2302 includes performing conversion between a video unit of a chroma component of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies that the bitstream includes a syntax element indicating whether cross-component filtering of chroma components is enabled for all slices associated with a picture header only when a value of a chroma array type is not equal to zero or a color format of the video is not 4:0:0.

[1722] In some embodiments of method 2300, the chroma component includes a Cb chroma component. In some embodiments of method 2300, the chroma component includes a Cr chroma component. In some embodiments of methods 2200-2300, the video unit includes a codec unit (CU), a prediction unit (PU), or a transform unit (TU). In some embodiments of methods 2200-2300, performing the conversion includes encoding the video into a bitstream. In some embodiments of methods 2200-2300, performing the conversion includes decoding the video from the bitstream. In some embodiments, the video decoding device includes a processor configured to implement the techniques of the embodiments related to methods 2200-2300. In some embodiments, a video encoding device includes a processor configured to implement the techniques of the embodiments related to methods 2200-2300. In some embodiments, a computer program product having computer instructions stored thereon, the instructions, when executed by a processor, cause the processor to implement the techniques of the embodiments related to methods 2200-2300. In some embodiments, a computer-readable medium storing a bitstream generated according to the techniques of the embodiments related to methods 2200-2300. In some embodiments, a video processing device for storing a bitstream is provided, wherein the video processing device is configured to implement the techniques of the embodiments related to methods 2200 - 2300 .

[1723] Fig.24 24 is a flow chart of an example method 2400 for video processing. Operation 2402 includes performing conversion between a video unit of a video and a bitstream of the video according to a rule, wherein the rule specifies whether the bitstream includes at least one of a control flag for a chroma block-based delta pulse codec modulation (BDPCM) mode, a palette mode, or an adaptive color transform (ACT) mode based on a value of a chroma array type of the video.

[1724] Some embodiments may be described using the following clause-based format. The first set of clauses illustrates example embodiments of the techniques discussed in the previous sections.

[1725] 1. A video processing method, comprising: performing conversion between a video unit and a codec representation of the video unit, wherein during the conversion, deblocking filtering is used on the boundary of the video unit so that when a chroma quantization parameter (QP) table is used to derive parameters for the deblocking filtering, processing is performed on individual chroma QP values ​​through the chroma QP table.

[1726] 2. A method as described in clause 1, wherein the chroma QP offset is added to the individual chroma QP values ​​after processing through the chroma QP table.

[1727] 3. A method according to any of clauses 1-2, wherein a chroma QP offset is added to a value output by a chroma QP table.

[1728] 4. A method according to any of clauses 1-2, wherein chroma QP offsets are not considered as input to the chroma QP table.

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

[1730] 6. A video processing method, comprising: performing conversion between a video unit and a codec representation of the video unit, wherein, during the conversion, a deblocking filter is used on the boundary of the video unit so that a chroma QP offset is used in the deblocking filter, wherein the chroma QP offset is at a picture / strip / slice / brick / sub-picture level.

[1731] 7. The method of clause 6, wherein the chroma QP offset used in deblocking filtering is associated with a codec method applied on a boundary of a video unit.

[1732] 8. The method according to clause 7, wherein the coding method is a Joint Coding and Decoding of Chroma Residual (JCCR) method.

[1733] 9. A video processing method, comprising: performing a conversion between a video unit and a codec representation of the video unit, wherein, during the conversion, a deblocking filter is used on the boundary of the video unit so that a chroma QP offset is used in the deblocking filter, wherein information related to the same luma codec unit is used in the deblocking filter and is used to derive the chroma QP offset.

[1734] 10. The method of clause 9, wherein the same luma codec unit covers corresponding luma samples at a center position of a video unit, wherein the video unit is a chroma codec unit.

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

[1736] 12. A method according to clause 11, wherein the quantization / dequantization parameters of the scaling process include chroma QP offsets.

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

[1738] 14. A method according to clause 13, wherein the information relating to the same luma codec unit depends on the relative position of the codec unit with respect to the same luma codec unit.

[1739] 15. A video processing method, comprising: performing a conversion between a video unit and a codec representation of the video unit, wherein, during the conversion, deblocking filtering is used on the boundary of the video unit so that a chroma QP offset is used in the deblocking filtering, wherein an indication of enabling the use of the chroma QP offset is signaled in the codec representation.

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

[1741] 17. A method as described in clause 16, wherein the one or more flags are related to a JCCR enable flag or a chroma QP offset enable flag.

[1742] 18. The method of clause 15, wherein the indication is signaled based on a derivation.

[1743] 19. A video processing method, comprising: performing conversion between a video unit and a codec representation of the video unit, wherein, during the conversion, a deblocking filter is used on the boundary of the video unit so that a chroma QP offset is used in the deblocking filter, wherein the chroma QP offset used in the deblocking filter is the same as whether a JCCR codec method is applied on the boundary of the video unit or a method different from the JCCR codec method is applied on the boundary of the video unit.

[1744] 20. A video processing method, comprising: performing a conversion between a video unit and a codec representation of the video unit, wherein, during the conversion, a deblocking filter is used on a boundary of the video unit so that a chroma QP offset is used in the deblocking filter, wherein a boundary strength (BS) of the deblocking filter is calculated without comparing a reference picture and / or a plurality of motion vectors (MVs) associated with the video unit at the P-side boundary with a reference picture and / or a plurality of motion vectors (MVs) associated with the video unit at the Q-side.

[1745] 21. The method of clause 20, wherein deblocking filtering is disabled under one or more conditions.

[1746] 22. A method according to clause 21, wherein the one or more conditions are associated with a magnitude or a threshold of a motion vector (MV).

[1747] 23. A method according to clause 22, wherein the threshold is associated with at least one of the following: i. the content of the video unit, ii. a message signaled in a DPS / SPS / VPS / PPS / APS / picture header / slice header / slice group header / largest codec unit (LCU) / codec unit (CU) / LCU row / LCU group / TU / PU block / video codec unit, iii. the position of the CU / PU / TU / block / video codec unit, iv. the codec mode of blocks with samples along the boundaries, v. the transform matrix applied to the video unit with samples along the boundaries, vi. the shape or dimension of the video unit, vii. an indication of the color format, viii. the codec tree structure, ix. the slice / slice group type and / or the picture type, x. the color component, xi. the temporal layer ID or xii. the profile / level / layer of the standard.

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

[1749] 25. The method of clause 20, wherein the QP used in the luma filtering step is related to the QP used in the scaling process of the luma blocks.

[1750] The following items are preferably implemented by some embodiments. Additional features are shown in the list in the previous section, such as items 31-32.

[1751] 26. A video processing method, comprising: for conversion between a video unit of a component of a video and a codec representation of the video, determining the size of a quantization group of the video unit based on a constraint rule that the specified size must be greater than K, where K is a positive number; and performing the conversion based on the determination.

[1752] 27. The method of clause 26, wherein the components are chrominance components and K=4.

[1753] 28. The method of clause 26, wherein the component is a luma component and K=8.

[1754] 29. A method as described in any of clauses 1-28, wherein the converting comprises encoding the video into a codec representation.

[1755] 30. A method as described in any of clauses 1-28, wherein the converting comprises parsing and decoding a codec representation to generate a video.

[1756] 31. A video decoding apparatus comprising a processor configured to implement one or more of the methods described in clauses 1 to 30.

[1757] 32. A video encoding apparatus comprising a processor configured to implement one or more of the methods described in clauses 1 to 30.

[1758] The second set of items illustrates example embodiments of the techniques discussed in the previous sections (items 42-43).

[1759] 1. A method for video processing, comprising: performing conversion between a video unit of a video and a bitstream of the video according to a rule, wherein the rule specifies indicating in the bitstream in a mutually independent manner whether a cross-component adaptive loop filtering (CC-ALF) mode and / or an adaptive loop filtering (ALF) mode is enabled for a codec video unit.

[1760] 2. The method of clause 1, wherein when the CC-ALF tool is enabled for a video unit, sample values ​​of the video unit of the video component are filtered using sample values ​​of another video component of the video.

[1761] 3. A method according to any of clauses 1 to 2, wherein the rule specifies that a first syntax element selectively included in the bitstream indicates whether CC-ALF mode is enabled for a video unit.

[1762] 4. A method according to clause 3, wherein the first syntax element is indicated at a sequence level or a video level or a picture level associated with the video unit, and wherein the first syntax element is different from another syntax element included in the bitstream that indicates whether the ALF mode is enabled for the video unit.

[1763] 5. A method as described in clause 3, wherein the first syntax element is included in the bitstream based on an ALF mode enabled for the video unit.

[1764] 6. A method according to clause 3, wherein the first syntax element is included in the bitstream if a codec condition is met, wherein the codec condition includes: the type of color format of the video, or whether separate plane codec is enabled for conversion, or the sampling structure of the chroma component of the video.

[1765] 7. A method according to any one of clauses 1 to 2, wherein the rule specifies that the bitstream includes a second syntax element indicating whether one or more syntax elements related to the CC-ALF mode are present in a picture header, and wherein the second syntax element is included in a picture header or a picture parameter set (PPS) or a slice header.

[1766] 8. A method according to clause 7, wherein the one or more syntax elements include at least one of the following: a third syntax element indicating a CC-ALF mode that enables Cb color components for a picture; a fourth syntax element indicating an adaptive parameter set (APS) id of an ALF APS referenced by the Cb color components of a slice in a picture containing a video unit; a fifth syntax element indicating the number of cross-component Cb filters; a sixth syntax element indicating a CC-ALF mode that enables Cr color components for a picture; a seventh syntax element indicating the APS id of an ALF APS referenced by the Cr color components of a slice in a picture; or an eighth syntax element indicating the number of cross-component Cr filters.

[1767] 9. The method of clause 7, wherein the rule specifies that the bitstream includes the second syntax element based on an ALF mode enabled for the video unit.

[1768] 10. A method according to any of clauses 1-9, wherein the ALF is a Wiener filter with neighbourhood samples as input.

[1769] 11. A method according to any one of clauses 1 to 3, wherein the rule specifies that the bitstream includes syntax elements in a picture header or a picture parameter set (PPS) related to a CC-ALF mode based on a chroma format sampling structure that is not monochrome and / or a ninth syntax element indicating that the CC-ALF mode is enabled at a higher level of the video than the level of the video unit.

[1770] 12. A method according to any one of clauses 1 to 3, wherein the rule specifies that when the value of the chroma array type is not equal to zero or the color format of the video is not 4:0:0, and the bitstream includes a first syntax element indicating that the CC-ALF mode is enabled for a video unit, the bitstream includes a syntax element in a picture header or a picture parameter set (PPS) related to the CC-ALF mode, wherein the first syntax element is indicated for a higher level of the video than the level of the video unit.

[1771] 13. A method according to any one of clauses 1 to 3, wherein the rule specifies that when the value of the chroma array type is not equal to zero or the color format of the video is not 4:0:0, or the bitstream contains a first syntax element indicating that the CC-ALF mode is enabled for a video unit, the bitstream includes a syntax element in a picture header or a picture parameter set (PPS) or a slice header related to the CC-ALF mode, wherein the first syntax element is indicated for a level of the video higher than the level of the video unit.

[1772] 14. A method according to any of clauses 11 to 12, wherein the video level comprises a sequence parameter set (SPS).

[1773] 15. A video processing method, comprising: performing conversion between a video unit of a chroma component of a video and a bitstream of the video; wherein the bitstream conforms to a format rule, wherein the format rule specifies that the bitstream contains a syntax element indicating whether cross-component filtering of chroma components is enabled for all slices associated with a picture header only when the value of the chroma array type is not equal to zero or the color format of the video is not 4:0:0.

[1774] 16. The method of clause 15, wherein the chrominance component comprises a Cb chrominance component.

[1775] 17. The method of clause 15, wherein the chrominance component comprises a Cr chrominance component.

[1776] 18. A method according to any of clauses 1 to 17, wherein the video unit comprises a coding unit (CU), a prediction unit (PU) or a transform unit (TU).

[1777] 19. A method according to any of clauses 1 to 18, wherein performing the conversion comprises encoding the video into a bitstream.

[1778] 20. The method of any one of clauses 1 to 18, wherein performing the conversion comprises encoding the video into a bitstream, and the method further comprises storing the bitstream in a non-transitory computer-readable recording medium.

[1779] 21. A method according to any of clauses 1 to 18, wherein performing the conversion comprises decoding the video from a bitstream.

[1780] 22. A method for storing a video bitstream, comprising: generating a video bitstream from a video unit of a video according to a rule, and storing the bitstream in a non-temporary computer-readable recording medium; wherein the rule specifies indicating in the bitstream in a mutually independent manner whether to enable a cross-component adaptive loop filtering (CC-ALF) mode and an adaptive loop filtering (ALF) mode to encode and decode the video unit.

[1781] 23. A video decoding device comprising a processor configured to implement one or more of the methods described in clauses 1 to 22.

[1782] 24. A video encoding apparatus comprising a processor configured to implement one or more of the methods described in clauses 1 to 22.

[1783] 25. A computer program product having stored thereon computer instructions which, when executed by a processor, cause the processor to implement the method of any one of clauses 1 to 22.

[1784] 26. A non-transitory computer-readable storage medium storing a bitstream generated by the method according to any one of clauses 1 to 22.

[1785] 27. A non-transitory computer-readable storage medium storing instructions that cause a processor to implement the method of any one of clauses 1 to 22.

[1786] The third group of items illustrates example embodiments of the techniques discussed in the previous sections (eg, item 44).

[1787] 1. A video processing method, comprising: performing conversion between a video unit of a video and a bitstream of the video according to a rule, wherein the rule specifies whether the bitstream includes at least one of a control flag of a chroma block-based incremental pulse codec modulation (BDPCM) mode, a palette mode, or an adaptive color transform (ACT) mode based on a value of a chroma array type of the video.

[1788] 2. A method according to clause 1, wherein the value of the chroma array type describes the sampling of the chroma component.

[1789] 3. A method according to clause 1, wherein the first syntax element indicating the chroma array type is included in a sequence parameter set of the bitstream.

[1790] 4. A method according to clause 2, wherein the value of the chroma array type is set to 3 when the chroma components are not downsampled.

[1791] 5. A method as described in clause 1, wherein at least one of the control flags of chroma BDPCM mode, palette mode or ACT mode is included in a sequence parameter set of the bitstream.

[1792] 6. A method as described in clause 1, wherein the rule specifies that the bitstream includes a control flag for chroma BDPCM mode only if i) the control flag for chroma BDPCM mode is true and ii) the chroma array type is equal to 3.

[1793] 7. A method according to clause 1, wherein the rule specifies that the bitstream includes a control flag for the palette mode only when the chroma array type is equal to 3.

[1794] 8. A method according to clause 1, wherein the rule specifies that the bitstream includes a control flag for ACT mode only when the chroma array type is equal to 3.

[1795] 9. The method of clause 1, wherein the rule specifies that when the chroma array type is not equal to 3, the bitstream omits a control flag for the chroma BDPCM mode.

[1796] 10. A method according to clause 1, wherein the rule specifies that when the chroma array type is not equal to 3, the bitstream omits the control flag for the palette mode.

[1797] 11. The method of clause 1, wherein the rule specifies that when the chroma array type is not equal to 3, the control flag for the ACT mode is excluded from the bitstream.

[1798] 12. The method of clause 1, wherein the rule further specifies that when the chroma array type is not equal to 3, the control flag that the conforming bitstream satisfies the chroma BDPCM mode is set equal to 0.

[1799] 13. A method according to clause 1, wherein the rule further specifies that when the chroma array type is not equal to 3, the control flag that the conforming bitstream satisfies the palette mode is set equal to 0.

[1800] 14. The method of clause 1, wherein the rule further specifies that when the chroma array type is not equal to 3, the control flag of the ACT mode is set equal to 0.

[1801] 15. A method according to any one of clauses 1 to 14, wherein the converting comprises encoding the video into a bitstream.

[1802] 16. A method according to any of clauses 1 to 14, wherein the converting comprises decoding the video from a bitstream.

[1803] 17. A method of storing a video bitstream, comprising the method of any one of clauses 1 to 16, and further comprising storing the bitstream to a non-transitory computer-readable recording medium.

[1804] 18. A video processing device comprising a processor configured to implement the method of any one or more of clauses 1 to 16.

[1805] 19. A computer readable medium storing program code which, when executed, causes a processor to implement the method of any one or more of clauses 1 to 16.

[1806] 20. A computer readable medium storing a codec representation or bitstream generated according to any of the above methods.

[1807] 21. A video processing apparatus for storing a bitstream representation, wherein the video processing apparatus is configured to implement the method of any one or more of clauses 1 to 20.

[1808] In some embodiments, a technical solution including a method, an apparatus, and a bit stream generated according to the above-mentioned method or system for video processing is implemented.

[1809] The disclosed and other technical solutions, examples, embodiments, modules and functional operations described in this document can be implemented in digital electronic circuits, or in computer software, firmware or hardware including the structures disclosed herein and their structural equivalents, or in a combination of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium, for being run by a data processing device or controlling the operation of the data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a material combination that implements a machine-readable propagation signal, or a combination of one or more of them. The term "data processing device" includes all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer or multiple processors or computers. In addition to hardware, the device may include code that creates an operating environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagation signal is an artificially generated signal, for example, a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device.

[1810] 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 or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language file), in a single file dedicated to the program in question, or in multiple cooperating files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed to run on one computer or on multiple computers located in one location or distributed across multiple locations and interconnected by a communications network.

[1811] The processes and logic flows described in this document can be performed by one or more programmable processors running one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuitry, and the apparatus can also be implemented as special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[1812] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operatively coupled to one or more mass storage devices to receive data from them or transfer data to one or more mass storage devices, or both. However, a computer does not necessarily have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as in-frame hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and memory may be supplemented or incorporated into a dedicated logic circuit.

[1813] Although this patent document contains many details, they should not be interpreted as limitations on any subject matter or the scope of the claims, but rather as descriptions of features unique to particular embodiments of particular technologies. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either alone or in any suitable subcombination. In addition, although features may be described above as working in certain combinations, and even initially claimed to be so, in some cases, one or more features in the claim combination may be removed from the combination, and the claim combination may be directed to a subcombination or a variation of a subcombination.

[1814] Likewise, although operations are described in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order or order shown, or that all illustrated operations be performed, in order to achieve the desired results. Furthermore, the separation of various system components in the embodiments of this patent document should not be understood as requiring such separation in all embodiments.

[1815] Only a few implementations and examples are described, and other implementations, enhancements, and variations can be made based on what is described and shown in this patent document.

Claims

1. A method for processing video data, comprising: performing conversion between video units of a video and a bitstream of said video according to a rule, wherein the rule specifies that whether a cross-component adaptive loop filtering (CC-ALF) mode is enabled for the video unit and whether an adaptive loop filtering (ALF) mode is enabled for the video unit is controlled by different syntax elements in a sequence parameter set (SPS) of the bitstream; and The first syntax element indicates whether the CC-ALF mode is enabled, the second syntax element indicates whether the ALF mode is enabled, and whether the first syntax element exists in the SPS depends on the value of the second syntax element and the type of the color format of the video.

2. The method of claim 1 , wherein the rule specifies that the first syntax element is present in the SPS if the value of the second syntax element is true, the value of the second syntax element being true indicating that the ALF mode is enabled and the type of the color format is not 4:0:

0. 3 . The method of claim 1 , wherein one or more syntax elements related to the CC-ALF mode are conditionally present in a picture header or a slice header.

4. The method of claim 3, wherein the one or more syntax elements include at least one of: A third syntax element indicating that the CC-ALF mode for the Cb color component is enabled for a slice or a picture, a fourth syntax element indicating an adaptation parameter set (APS) id of an ALF APS referenced by the Cb color component of the one or more slices in the picture, a fifth syntax element indicating that the CC-ALF mode for the Cr color component is enabled for the slice or the picture, and The sixth syntax element indicates the APS id of the ALFAPS referenced by the Cr color components of the one or more slices in the picture.

5. The method of claim 3, wherein the rule specifies that the one or more syntax elements are present in the picture header or the slice header if at least two of the following conditions are met: The color format of the video is not 4:0:0, and The first syntax element present in the SPS indicates that the CC-ALF mode is enabled. 6 . The method of claim 3 , wherein the rule specifies that, in response to a color format of the video being of type 4:0:0, the one or more syntax elements are excluded from the picture header and the slice header.

7. The method of claim 3, wherein the rule provides that, in response to the first syntax element present in the SPS indicating disabling of the CC-ALF mode, the one or more syntax elements are excluded from the picture header and the slice header.

8. The method of any one of claims 1-7, wherein the converting comprises encoding the video into the bitstream.

9. The method of any one of claims 1-7, wherein the converting comprises decoding the video from the bitstream.

10. The method according to claim 1, further comprising: performing conversion between video units of chrominance components of a video and a bitstream of said video; wherein the bitstream complies with the format rules, wherein the format rules specify that the bitstream includes a syntax element indicating whether cross-component filtering of chroma components is enabled for all slices associated with a picture header only if: The value of the chroma array type is not equal to zero, or The color format of the video is not 4:0:

0. The method of claim 10 , wherein the chrominance component comprises a Cb chrominance component.

12. The method of claim 10, wherein the chrominance component comprises a Cr chrominance component.

13. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to: performing conversion between video units of a video and a bitstream of said video according to a rule, wherein the rule specifies that whether a cross-component adaptive loop filtering (CC-ALF) mode is enabled for the video unit and whether an adaptive loop filtering (ALF) mode is enabled for the video unit is controlled by different syntax elements in a sequence parameter set (SPS) of the bitstream; and The first syntax element indicates whether the CC-ALF mode is enabled, the second syntax element indicates whether the ALF mode is enabled, and whether the first syntax element exists in the SPS depends on the value of the second syntax element and the type of the color format of the video.

14. The apparatus of claim 13, wherein the rule provides that, if the value of the second syntax element is true, the first syntax element is present in the SPS, the value of the second syntax element being true indicating that the ALF mode is enabled and the type of the color format is not 4:0:

0.

15. The apparatus of claim 13, wherein one or more syntax elements related to the CC-ALF mode are conditionally present in a picture header or a slice header; and The one or more syntax elements include at least one of the following: A third syntax element indicating that the CC-ALF mode for the Cb color component is enabled for a slice or a picture, a fourth syntax element indicating an adaptation parameter set (APS) id of an ALF APS referenced by the Cb color component of the one or more slices in the picture, a fifth syntax element indicating that the CC-ALF mode for the Cr color component is enabled for the slice or the picture, and The sixth syntax element indicates the APS id of the ALFAPS referenced by the Cr color components of the one or more slices in the picture.

16. The apparatus of claim 15, wherein the rule provides that the one or more syntax elements are present in the picture header or the slice header if at least two of the following conditions are met: the type of the color format of the video is not 4:0:0, and the first syntax element present in the SPS indicates that the CC-ALF mode is enabled; wherein the rule specifies that excluding the one or more syntax elements from the picture header and the slice header is responsive to the type of the color format of the video being 4:0:0; and The rule specifies that, in response to the first syntax element present in the SPS indicating disabling of the CC-ALF mode, the one or more syntax elements are excluded from the picture header and the slice header.

17. A non-transitory computer-readable storage medium storing instructions, the instructions causing a processor to: performing conversion between video units of a video and a bitstream of said video according to a rule, wherein the rule specifies that whether a cross-component adaptive loop filtering (CC-ALF) mode is enabled for the video unit and whether an adaptive loop filtering (ALF) mode is enabled for the video unit is controlled by different syntax elements in a sequence parameter set (SPS) of the bitstream; and The first syntax element indicates whether the CC-ALF mode is enabled, the second syntax element indicates whether the ALF mode is enabled, and whether the first syntax element exists in the SPS depends on the value of the second syntax element and the type of the color format of the video.

18. The non-transitory computer-readable storage medium of claim 17, wherein the rule provides that, if the value of the second syntax element is true, the first syntax element is present in the SPS, the value of the second syntax element being true indicating that the ALF mode is enabled and the type of the color format is not 4:0:

0.

19. The non-transitory computer-readable storage medium of claim 17, wherein one or more syntax elements related to the CC-ALF mode are conditionally present in a picture header or a slice header; and The one or more syntax elements include at least one of the following: A third syntax element indicating that the CC-ALF mode for the Cb color component is enabled for a slice or a picture, a fourth syntax element indicating an adaptation parameter set (APS) id of an ALF APS referenced by the Cb color component of the one or more slices in the picture, a fifth syntax element indicating that the CC-ALF mode for the Cr color component is enabled for the slice or the picture, and The sixth syntax element indicates the APS id of the ALFAPS referenced by the Cr color components of the one or more slices in the picture.

20. The non-transitory computer-readable storage medium of claim 19, wherein the rule provides that the one or more syntax elements are present in the picture header or the slice header if at least two of the following conditions are met: the type of the color format of the video is not 4:0:0, and the first syntax element present in the SPS indicates that the CC-ALF mode is enabled; The rule specifies that, in response to the type of the color format of the video being 4:0:0, the one or more syntax elements are excluded from the picture header and the slice header; and The rule specifies that, in response to the first syntax element present in the SPS indicating disabling of the CC-ALF mode, the one or more syntax elements are excluded from the picture header and the slice header.

21. A non-transitory computer-readable recording medium storing a bit stream of a video generated by a method executed by a video processing device, wherein the method comprises: Generate a bitstream of a video unit of a video according to a rule, wherein the rule specifies that whether a cross-component adaptive loop filtering (CC-ALF) mode is enabled for the video unit and whether an adaptive loop filtering (ALF) mode is enabled for the video unit is controlled by different syntax elements in a sequence parameter set (SPS) of the bitstream; and The first syntax element indicates whether the CC-ALF mode is enabled, the second syntax element indicates whether the ALF mode is enabled, and whether the first syntax element exists in the SPS depends on the value of the second syntax element and the type of the color format of the video.

22. The non-transitory computer-readable recording medium of claim 21, wherein the rule provides that, in the case where the value of the second syntax element is true, the first syntax element is present in the SPS, the value of the second syntax element being true indicating that the ALF mode is enabled and the type of the color format is not 4:0:0; wherein one or more syntax elements related to the CC-ALF mode are conditionally present in a picture header or a slice header; and The one or more syntax elements include at least one of the following: A third syntax element indicating that the CC-ALF mode for the Cb color component is enabled for a slice or a picture, a fourth syntax element indicating an adaptation parameter set (APS) id of an ALF APS referenced by the Cb color component of the one or more slices in the picture, a fifth syntax element indicating that the CC-ALF mode for the Cr color component is enabled for the slice or the picture, and The sixth syntax element indicates the APS id of the ALFAPS referenced by the Cr color components of the one or more slices in the picture.

23. The non-transitory computer-readable recording medium of claim 22, wherein the rule provides that the one or more syntax elements are present in the picture header or the slice header if at least two of the following conditions are met: the type of the color format of the video is not 4:0:0, and the first syntax element present in the SPS indicates that the CC-ALF mode is enabled; The rule specifies that, in response to the type of the color format of the video being 4:0:0, the one or more syntax elements are excluded from the picture header and the slice header; and The rule specifies that, in response to the first syntax element present in the SPS indicating disabling of the CC-ALF mode, the one or more syntax elements are excluded from the picture header and the slice header.

24. A method for storing a bit stream of a video, comprising: generating a bitstream of a video unit of a video according to a rule; as well as storing the bitstream in a non-transitory computer-readable recording medium, wherein the rule specifies that whether a cross-component adaptive loop filtering (CC-ALF) mode is enabled for the video unit and whether an adaptive loop filtering (ALF) mode is enabled for the video unit is controlled by different syntax elements in a sequence parameter set (SPS) of the bitstream; and The first syntax element indicates whether the CC-ALF mode is enabled, the second syntax element indicates whether the ALF mode is enabled, and whether the first syntax element exists in the SPS depends on the value of the second syntax element and the type of the color format of the video.

25. A video processing method, comprising: performing conversion between video units of a video and a bitstream of said video according to a rule, wherein the rule specifies indicating in a bitstream in a mutually independent manner whether a cross-component adaptive loop filtering (CC-ALF) mode and / or an adaptive loop filtering (ALF) mode is enabled to encode and decode the video unit; The rule specifies that a first syntax element selectively included in the bitstream indicates whether a CC-ALF mode is enabled for the video unit; wherein the first syntax element is included in the bitstream based on the ALF mode enabled for the video unit.

26. The method of claim 25, wherein when a CC-ALF tool is enabled for the video unit, sample values ​​of the video unit of a video component are filtered with sample values ​​of another video component of the video.

27. The method according to claim 25, wherein the first syntax element is indicated at a sequence level or a video level or a picture level associated with the video unit, and The first syntax element is different from another syntax element included in a bitstream, the other syntax element indicating whether ALF mode is enabled for the video unit.

28. The method according to claim 25, wherein: When a coding and decoding condition is met, the first syntax element is included in the bitstream, wherein the coding and decoding condition includes: the color format type of the video, or whether to enable separate plane codecs for the conversion, or The sampling structure of the chroma components of the video.

29. The method according to claim 25 or 26, wherein the rule specifies that the bitstream contains a second syntax element, the second syntax element indicating whether one or more syntax elements related to the CC-ALF mode are present in the picture header, and The second syntax element is included in a picture header or a picture parameter set (PPS) or a slice header.

30. The method of claim 29, wherein the one or more syntax elements include at least one of: The third syntax element indicates that the CC-ALF mode of the Cb color component is enabled for the picture. A fourth syntax element indicating an adaptation parameter set (APS) id of the ALFAPS referenced by the Cb color component of the slice in the picture containing the video unit, The fifth syntax element indicates the number of cross-component Cb filters, The sixth syntax element indicates that the CC-ALF mode of the Cr color component is enabled for the picture. The seventh syntax element indicates the APS id of the ALF APS referenced by the Cr color component of the slice in the picture, or The eighth syntax element indicates the number of cross-component Cr filters.

31. The method according to claim 29, Wherein the rule specifies that a bitstream includes the second syntax element based on an ALF mode enabled for the video unit.

32. The method according to claim 25, wherein the ALF is a Wiener filter with neighborhood samples as input.

33. The method according to claim 25, The rule specifies that the bitstream includes a syntax element in a picture header or a picture parameter set (PPS) related to a CC-ALF mode based on a chroma format sampling structure that is not monochrome and / or a ninth syntax element indicating that the CC-ALF mode is enabled in a higher level of the video than the level of the video unit.

34. The method according to claim 25, The rule specifies that the bitstream includes syntax elements in a picture header or a picture parameter set (PPS) related to CC-ALF mode if: The value of the chroma array type is not equal to zero, or the color format of the video is not 4:0:0, and The bitstream includes a first syntax element indicating that a CC-ALF mode is enabled for the video unit, wherein the first syntax element is indicated for a higher level of the video than a level of the video unit.

35. The method according to claim 33 or 34, wherein: The video level includes a sequence parameter set (SPS).

36. The method according to claim 25, The rules specify that the bitstream includes syntax elements in a picture header or a picture parameter set (PPS) or a slice header related to CC-ALF mode when: The value of the chroma array type is not equal to zero, or the color format of the video is not 4:0:0, or The bitstream includes a first syntax element indicating that a CC-ALF mode is enabled for the video unit, wherein the first syntax element is indicated for a level of the video that is higher than a level of the video unit.

37. The method of claim 25, wherein the video unit comprises a coding unit (CU), a prediction unit (PU), or a transform unit (TU).

38. The method of claim 25, wherein: The performing conversion includes encoding the video into a bitstream.

39. The method of claim 25, wherein: The performing conversion includes encoding the video into a bitstream, and the method further includes storing the bitstream in a non-transitory computer-readable recording medium.

40. The method of claim 25, wherein: The performing the conversion includes decoding the video from a bitstream.

Citation Information

Patent Citations

  • Cross-component filter

    CN109691102A

  • Method and Apparatus for Palette Index Coding in Video and Image Compression

    US20180091829A1

Cited By

  • Signaling of quantization parameters in video coding

    US12666024B2