Quantization parameter of chroma deblocking filter

By selectively applying deblocking filtering and adding chromatic quantization parameter offsets in video encoding and decoding, the problem of difficult balance between compression ratio and complexity in the prior art video encoding and decoding is solved, and more efficient video processing performance is achieved.

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

Patent Information

Application Number
CN202080064322.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-09-14
Filing Date
2020-09-14
Publication Date
2025-03-25
Estimated Expiration
2040-09-14

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies are difficult to find a balance between compression ratio and complexity, and motion vector management is inefficient.

Method used

A video processing method is proposed to determine the parameters of the deblocking filtering process by selectively applying the deblocking filtering process in the conversion between the block and bitstream representation of the chromaticity component of the video and adding a chromaticity quantization parameter (QP) offset.

Benefits of technology

It improves the compression ratio and performance of video encoding and decoding, reduces complexity, and enhances the efficiency of motion vector management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114402611B_ABST
    Figure CN114402611B_ABST
Patent Text Reader

Abstract

An example method of video processing includes: for a block of chrominance components of a video and a conversion between a bitstream representation of the video, determining whether or how to apply filtering processing to an edge of the block based on first quantization information of a first video region including samples on one side of the edge and / or second quantization information of a second video region including samples on the other side of the edge according to a rule, wherein the rule is based on a codec mode applicable to the block for encoding or decoding samples on one side of the edge or samples on the other side. The rule specifies using a plurality of QP offsets at different video unit levels to determine the first quantization information or the second quantization information. The method also includes performing the conversion based on the determination.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application is an application entering the Chinese national phase of international patent application PCT / US2020 / 050644 filed on September 14, 2020, which claims priority to international patent application No. PCT / CN2019 / 105831 filed on September 14, 2019. The entire disclosure of the above application is incorporated by reference as part of the disclosure of this application. Technical Field

[0003] This patent document relates to video encoding and decoding technology, equipment 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 in particular, devices, systems and methods related to motion vector management are described. The described methods can be applied to existing video codec standards (e.g., High Efficiency Video Codec (HEVC) or Universal Video Codec) and future video codec standards or video codecs.

[0006] In one representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes performing a conversion between a block of chroma components of a video and a bitstream representation of the video. During the conversion, a deblocking filter process is selectively applied to samples along block edges, and a chroma quantization parameter (QP) offset is added to an output from a chroma QP table to determine parameters of the deblocking filter process.

[0007] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes, for conversion between a block of a chrominance component of a video and a bitstream representation of the video, determining whether or how to apply filtering to an edge of the block based on a rule based on first quantization information of a first video region including samples on one side of the edge and / or second quantization information of a second video region including samples on the other side of the edge. The rule is based on a codec mode applicable to the block in order to encode or decode samples on one side of the edge or samples on the other side. The rule specifies using multiple QP offsets at different video unit levels to determine the first quantization information or the second quantization information. The method also includes performing the conversion based on the determination.

[0008] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes determining whether to enable use of a chroma quantization parameter (QP) offset for a current block of video and a bitstream representation of the video based on a syntax element of a level of a video unit. The video unit includes the current block of video and a second block.

[0009] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes performing a conversion between a video including a first chroma component and a second chroma component and a bitstream representation of the video. According to a rule, a residual of a first chroma block of the first chroma component and a second chroma block of the second chroma component are jointly encoded and decoded in the bitstream representation using a codec mode. The rule specifies that the manner in which a quantization parameter (QP) is derived for the conversion is independent of the codec mode.

[0010] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes performing a conversion between a first block of a video and a bitstream representation of the video. The video has a color format with multiple color components, and the first block is associated with a first color component of the video. During the conversion, a deblocking filter process is applied to at least some samples along an edge of the first block. The method also includes performing a subsequent conversion between blocks associated with the remaining color components of the video and the bitstream representation of the video. During the subsequent conversion, a deblocking filter process is applied to at least some samples along an edge of each block in the same manner as the conversion of the first block.

[0011] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes determining a boundary strength of a boundary between two blocks of the video for conversion between a video and a bitstream representation of the video. The boundary strength is determined regardless of whether any of the two blocks is encoded or decoded in a joint coding and decoding of chroma residual (JCCR) mode. The method also includes performing the conversion based on the determination.

[0012] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes determining a boundary strength of a boundary between a first block and a second block for conversion between a video and a bitstream representation of the video. The determination is performed without comparing information of the first block with corresponding information of the second block. The information includes a reference picture and / or a number of motion vectors of the corresponding block, and the boundary strength is used to determine whether a deblocking filtering process is applicable to the boundary. The method also includes performing the conversion based on the determination.

[0013] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes determining, for a conversion between a video block of a video and a bitstream representation of the video, a quantization parameter (QP) for applying a deblocking filter to the video block according to a rule. The rule specifies that in the case where the video block is encoded and decoded using a transform skip (TS) mode, a first QP is used for the determination, in which the residual of the video block is encoded and decoded in the bitstream representation by skipping the application of the transform. In the case where the video block is encoded and decoded using a non-transform skip mode, a second QP different from the first QP is used for the determination, in which the residual of the video block is encoded and decoded in the bitstream representation after applying the transform. The method also includes performing the conversion based on the determination.

[0014] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes, for conversion between a video block of a video and a bitstream representation of the video, determining, according to a rule, a gradient for determining the applicability of a deblocking filter process to at least some samples of an edge of the video block. The rule specifies that the manner in which the gradient is determined is independent of the size of the video block. The method also includes performing the conversion based on the determination.

[0015] In another representative aspect, the disclosed technology can be used to provide a method of video processing. The method includes performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used on a boundary of the video unit, so that when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, processing of the chroma QP table is performed on each chroma QP value.

[0016] In another representative aspect, the disclosed technology can be used to provide another video processing method. The method includes performing a conversion between a video unit and a bitstream 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 is at a picture / slice / slice / tile / sub-picture level.

[0017] In another representative aspect, the disclosed technology can be used to provide another video processing method. The method includes performing a conversion between a video unit and a bitstream 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 information associated with the same luma codec unit is used in the deblocking filter and to derive the chroma QP offset.

[0018] In another representative aspect, the disclosed technology can be used to provide another video processing method. The method includes performing a conversion between a video unit and a bitstream 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 an indication of enabling the use of the chroma QP offset is signaled in the bitstream representation.

[0019] In another representative aspect, the disclosed technology can be used to provide another video processing method. The method includes performing a conversion between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used at a boundary of the video unit 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 regardless of whether a JCCR codec method is applied at the boundary of the video unit or a method different from the JCCR codec method is applied at the boundary of the video unit.

[0020] In another representative aspect, the disclosed technology can be used to provide another video processing method. The method includes performing a conversion between a video unit and a bitstream 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 number of reference pictures and / or 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.

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

[0022] Furthermore, in one representative aspect, a video decoding device includes a processor configured to implement any one or more of the disclosed methods.

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

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

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

[0026] Figure 1 An example of the overall processing flow of the blocking deblocking filter process is shown.

[0027] Figure 2 An example of a flow chart for Bs calculation is shown.

[0028] Figure 3 An example of reference information for Bs calculation at CTU boundaries is shown.

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

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

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

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

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

[0034] Fig. 9A An example of the center position of the chroma block is shown.

[0035] Fig. 9B Another example of the center location of the chroma blocks is shown.

[0036] Fig.10 Examples of blocks at the P-side and the Q-side are shown.

[0037] Fig.11 An example of the use of the decoding information of the luma block is shown.

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

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

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

[0041] Fig.15 is a flowchart representation of a method of video processing according to the present technology.

[0042] Fig.16 is a flowchart of another video processing method according to the present technology.

[0043] Fig.17 is a flowchart of another video processing method according to the present technology.

[0044] Fig.18 is a flowchart of another video processing method according to the present technology.

[0045] Fig.19 is a flowchart of another video processing method according to the present technology.

[0046] Fig. 20 is a flowchart of another video processing method according to the present technology.

[0047] Fig.21 is a flowchart of another video processing method according to the present technology.

[0048] Fig. 22 is a flowchart of another video processing method according to the present technology.

[0049] Fig.23 is a flowchart of another video processing method according to the present technology.

[0050] Fig.24 is a block diagram showing an example video encoding and decoding system.

[0051] Fig.25 is a block diagram showing an encoder according to some embodiments of the present disclosure.

[0052] Fig.26 is a block diagram showing a decoder according to some embodiments of the present disclosure. DETAILED DESCRIPTION

[0053] 1. Video Codec in HEVC / H.265

[0054] 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 jointly produced 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 codec. To explore future video codec technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, many new approaches have been adopted by JVET and put into reference software called the Joint Exploration Model (JEM). In April 2018, VCEG (Q6 / 16) and ISO / IEC JTC1SC29 / WG11 (MPEG) established the Joint Video Experts Team (JVET) to work on the VVC standard with the goal of reducing the bit rate by 50% compared to HEVC.

[0055] 2.1. Deblocking Scheme in HEVC

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

[0057] Figure 1 The overall processing flow of the deblocking filter 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, as well as the threshold β and tC.

[0058] There are three kinds of boundaries that may be involved in the filtering process: CU boundaries, TU boundaries, and PU boundaries. CU boundaries are the outer edges of the CU and are always involved in filtering because CU boundaries are always also 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 involved in filtering. An exception is that when the PU boundary is inside a TU, the boundary will not be filtered.

[0059] 2.1.1. Boundary strength calculation

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

[0061] Define P and Q as the blocks involved in filtering, where P represents the blocks located to the left (vertical edge case) or above (horizontal edge case) of the boundary, and Q represents the 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.

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

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

[0064] 2.1.2.β and tC Decision

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

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

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

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

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

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

[0071] Filter on / off decisions are made on a four-line basis. Figure 4The pixels involved in the filter on / off decision are shown. The 6 pixels in the two red blocks of the first four rows are used to determine the filter on / off for the 4 rows. The 6 pixels in the two red blocks of the last 4 rows are used to determine the filter on / off for the last 4 rows.

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

[0073] dp0=|p 2,0 –2*p 1,0 +p 0,0 |,dp3=|p 2,3 –2*p 1,3 +p 0,3 |,dp4=|p 2,4 –2*p 1,4 +p 0,4 |,dp7=|p 2,7 –2*p 1,7 +p 0,7 |

[0074] dq0=|q 2,0 –2*q 1,0 +q 0,0 |,dq3=|q 2,3 –2*q 1,3 +q 0,3 |,dq4=|q 2,4 –2*q 1,4 +q 0,4 |,dq7=|q 2,7 –2*q 1,7 +q 0,7 |

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

[0076] For the next four rows, decisions are made in the same way as above.

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

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

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

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

[0081] Similarly, if the following two conditions are met, the last 4 rows are filtered using a strong filter. Otherwise, a weak filter is used for filtering.

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

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

[0084] 2.1.4.1. Strong filtering

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

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

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

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

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

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

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

[0092] 2.1.4.2. Weak filtering

[0093] Let us define Δ as follows.

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

[0095] When abs(Δ) is less than t C *10:00,

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

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

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

[0099] If dEp1 is equal to 1,

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

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

[0102] If dEq1 is equal to 1,

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

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

[0105] It is worth noting that for each P and Q block, three pixels are used as input to modify a maximum of two pixels, respectively.

[0106] 2.1.4.3. Chroma filtering

[0107] Chroma filtering's Bs is inherited from luma. If Bs>1 or there are coded chroma coefficients, chroma filtering is performed. No other filtering decisions are made. 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.

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

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

[0110] q0'=Clip1 C (q0-Δ).

[0111] 2.2 Deblocking Scheme in VVC

[0112] In VTM6, the deblocking filtering process is mostly the same as HEVC. However, the following modifications are added.

[0113] A) The filter strength of the deblocking filter depends on the average brightness level of the reconstructed samples.

[0114] B) Deblocking tC table extension and adaptation to 10-bit video.

[0115] C) 4×4 grid deblocking of luminance.

[0116] D) Stronger luminance deblocking filter.

[0117] E) Stronger chroma deblocking filter.

[0118] F) Deblocking filter at sub-block boundaries.

[0119] G) Deblocking decisions that adapt to small motion differences.

[0120] Figure 5 Depicts a flow chart of the deblocking filter process for a codec unit in VVC.

[0121] 2.2.1. Filter strength depending on the reconstructed mean brightness

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

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

[0124] Among them, the sample value p i,k and qi,k , where i = 0..3 and k = 0 and 3 can be derived. Then, LL is used to decide the qpOffset offset based on the threshold signaled in SPS. Afterwards, qP is derived using L To derive β and t C .

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

[0126] 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 applicable to the luminance deblocking process.

[0127] 2.2.2. 4×4 deblocking grid for luminance

[0128] HEVC uses an 8×8 deblocking grid for luma and chroma. In VTM6, a 4×4 grid deblocking of 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 on each side of a vertical luma boundary (where one side is 4 or less in width) or 1 sample on each side of a horizontal luma boundary (where one side is 4 or less in height).

[0129] 2.2.3. Derivation of brightness boundary intensity

[0130] The detailed boundary strength derivation is shown in Table 2. The conditions in Table 2 are checked sequentially.

[0131] Table 2 Boundary strength export

[0132]

[0133]

[0134]

[0135] 2.2.4. Stronger Luminance Deblocking Filter

[0136] The proposal uses a bilinear filter when the samples on either side of the boundary belong to a large block. Samples belonging to a large block are defined as having a vertical edge width >= 32 and a horizontal edge height >= 32.

[0137] The bilinear filter is shown below.

[0138] The block boundary samples pi from i=0 to Sp-1 and qi from j=0 to Sq-1 (pi and qi follow the definition in HEVC deblocking above) are then replaced by linear interpolation as shown below:

[0139] -p i ′=(f i *Middle s,t +(64-f i )*P s +32)>>6), crop to p i ±tcPD i

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

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

[0142]

[0143]

[0144] 2.2.5. Luminance Deblocking Control

[0145] This subsection introduces the deblocking decision process.

[0146] The wider-stronger brightness filter is a filter that is used only when conditions 1, 2, and 3 are all true.

[0147] Condition 1 is the "large block condition". This condition detects whether the samples on the P side and Q side belong to large blocks, which are represented by the variables bSidePisLargeBlk and bSideQisLargeBlk, respectively. The definitions of bSidePisLargeBlk and bSideQisLargeBlk are as follows.

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

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

[0150] Based on bSidePisLargeBlk and bSideQisLargeBlk, condition 1 is defined as follows.

[0151] Condition 1 = (bSidePisLargeBlk || bSidePisLargeBlk)? True: False

[0152] Next, if condition 1 is true, condition 2 will be checked further. First, the following variables are exported:

[0153] dp0, dp3, dq0, dq3 are first exported as in HEVC

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

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

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

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

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

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

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

[0161] Then condition 2 is defined as follows.

[0162] Condition 2 = (d < β)? True: False

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

[0164] If condition 1 and condition 2 are valid, then check if any block uses subblocks:

[0165]

[0166]

[0167] Finally, if both conditions 1 and 2 are valid, the proposed deblocking method will check condition 3 (large block strong filtering condition), which is defined as follows.

[0168] In condition 3, StrongFilterCondition, the following variables are exported:

[0169] dpq, which is derived as in HEVC.

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

[0171]

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

[0173]

[0174] As in HEVC export, StrongFilterCondition = (dpq less than (β>>2), sp3+sq3 less than (3*β>>5), Abs(p0-q0) less than (5*tC+1)>>1)? True: False

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

[0176] 2.2.6. Strong deblocking filter for chroma

[0177] The following strong deblocking filters for chroma are defined:

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

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

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

[0181] The proposed chroma filter performs deblocking on a 4×4 chroma sample grid.

[0182] 2.2.7. Chroma Deblocking Control

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

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

[0185] 2.2.8. Position-dependent clipping

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

[0187] According to the results of the decision process described in Section 2.2, for each P or Q boundary filtered with the proposed asymmetric filter, a table of position-dependent thresholds is selected from the Tc7 and Tc3 tables and provided to the decoder as side information:

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

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

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

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

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

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

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

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

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

[0197] 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 and tcQ i is the clipping threshold derived from the VVC tc parameters and tcPD and tcQD. The term clip3 is the same clipping function as specified in VVC.

[0198] 2.2.9. Sub-block deblocking adjustment

[0199] To achieve parallel-friendly deblocking using long filters and sub-block deblocking, the long filter is restricted to modifying at most 5 samples on the side where sub-block deblocking is used, as shown in the luma control for the long filter. 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.

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

[0201]

[0202] Where edges equal to 0 correspond to CU boundaries, edges equal to 2 or equal to orthogonalLength-2 correspond to subblock boundaries 8 samples from a CU boundary, etc. ImplicitTU 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.

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

[0204] 2.2.10. Deblocking Decisions Adapted to Small Motion Differences

[0205] HEVC is able to deblock prediction unit boundaries when the difference in at least one motion vector component between blocks on each side of the boundary is equal to or greater than a threshold of 1 sample. In VTM6, a threshold of half-luminance samples was introduced to eliminate deblocking artifacts originating from boundaries between inter-prediction units with small motion vector differences.

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

[0207] 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 normal intra prediction process in planar mode. The intra and inter prediction signals are then combined using a weighted average, where the weights are calculated based on the codec modes of the top and left neighboring blocks, as follows:

[0208] – If the top neighbor is available and is intra-coded, set IsinatraTop to 1, otherwise set IsinatraTop to 0;

[0209] – If the neighboring block on the left is available and is intra-coded, set IsitraLeft to 1, otherwise set IsitraLeft to 0;

[0210] – If (IsitraLeft+IsitraLeft) is equal to 2, then wt is set to 3;

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

[0212] – Otherwise, set wt to 1.

[0213] The CIIP forecast is formed as follows:

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

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

[0216] In some embodiments, a chroma QP table is used. In some embodiments, a signaling mechanism is used for the chroma QP table, which enables flexibility to provide the encoder with the opportunity to optimize the table for SDR and HDR content. It supports signaling the table separately for Cb and Cr components. The proposed mechanism signals the chroma QP table as a piecewise linear function.

[0217] 2.5. Transform Skip (TS)

[0218] As in HEVC, the residual of a block can be encoded or 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 0. The block size restrictions for transform skip are the same as MTS in JEM4, which indicates that transform skip is applicable to the CU when both 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 inter-coded blocks, implicit MTS can still be enabled.

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

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

[0221] In some embodiments, the chroma residual is jointly coded. The use (activation) of the joint chroma coding mode is indicated by the TU level flag tu_joint_cbcr_residual_flag, and the selected mode is implicitly indicated by the chroma CBF. If one or both chroma CBFs of the TU are equal to 1, the flag tu_joint_cbcr_residual_flag g is present. In the PPS and slice headers, the chroma QP offset values ​​are signaled for the joint chroma residual coding mode to distinguish them from the usual chroma QP offset values ​​signaled for the conventional chroma residual coding mode. These chroma QP offset values ​​are used to derive chroma QP values ​​for those blocks coded 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 applied luminance-derived chroma QP during quantization and decoding of the TU. For other modes (modes 1 and 3 in Table 3 Table 3 Reconstruction of chroma residual. The value CSign is a symbol value (+1 or –1) that is specified in the slice header and resJointC[][] is the transmitted residual.), the chroma QP is derived in the same way as for conventional Cb or Cr blocks. Table 3 depicts the process of reconstructing the chroma residual from the transmitted transform block. When this mode is activated, a single joint chroma residual block (resJointC[x][y] in Table 3) is signaled and the residual block for Cb (resCb) and the residual block for Cr (resCr) are derived taking into account information such as tu_cbf_cb, tu_cbf_cr and CSign, where CSign is a symbol value specified in the slice header.

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

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

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

[0225] Otherwise, if mode is equal to 1 (reconstructing a single residual with Cb=C, Cr=(CSign*C) / 2), the joint residual is determined according to the following formula

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

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

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

[0229] Table 3 Reconstruction of the chroma residual. The value CSign is the sign value (+1 or –1) which is specified in the slice header, and resJointC[][] is the transmitted residual.

[0230]

[0231] The above three modes use different QPs. For mode 2, the QP offset signaled in the PPS of the JCCR-coded blocks is applied, while for the other two modes, it is not applied, but the QP offset signaled in the PPS of the non-JCCR-coded blocks is applied.

[0232] The corresponding specifications are as follows:

[0233] 8.7.1 Quantization Parameter Derivation Process

[0234] Variable Qp Y The export is as follows:

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

[0236] Luma quantization parameter Qp′ Y The export is as follows:

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

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

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

[0240] – Variable qP Cb ,qP Cr and qP CbCr The export is as follows:

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

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

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

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

[0245] – Chroma quantization parameters Qp′ of Cb and Cr components Cb and Qp′ Cr And joint Cb-Cr codec Qp′ CbCr The export is as follows:

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

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

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

[0249] 8.7.3 Scaling of Transform Coefficients

[0250] The input to this process is:

[0251] –Specify the luminance position (xTbY, yTbY) of the upper left corner sample of the current luminance transform block relative to the luminance sample of the upper left corner of the current picture,

[0252] – variable nTbW that specifies the transform block width,

[0253] – variable nTbH that specifies the transform block height,

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

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

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

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

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

[0259] P=Qp′ Y (8-950)

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

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

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

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

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

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

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

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

[0268] 3. Disadvantages of existing implementation methods

[0269] During the refinement of motion vectors, DMVR and BIO do not involve the original signal, 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.

[0270] 1. There may be problems with the interaction between the chroma QP table and chroma deblocking, for example, the chroma QP table should be applied to individual QPs rather than the weighted sum of QPs.

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

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

[0273] 4. In the BS decision process, JCCR is processed separately from those blocks that do not apply JCCT codec. However, JCCR is just a special way to encode and decode the residual. Therefore, this design may bring additional complexity without obvious benefits.

[0274] 5. In chroma edge decision, Qp Q and Qp P is set equal to the Qp of the codec unit Y value, the codec unit includes sample points q 0,0 and p 0,0Codec block. However, during quantization / dequantization, the QP of the chroma sample is derived from the QP of the luminance block of the corresponding luminance sample covering the center position of the current chroma CU. When dual tree is enabled, different positions of the luminance block may result in different QPs. Therefore, during chroma deblocking, the wrong QP may be used for filter decisions. This misalignment may cause visual artifacts. An example is shown in Figure 9, including Figure 9(a) and Figure 9(b). In Figure 9, the left side (Figure 9(a)) is the corresponding CTB partition of the luminance block, and the right side (Figure 9(b)) is the chroma CTB partition under the dual tree. When determining the chroma block (with CU c 1 indicates) QP, first derive CU c 1. Then, CU c 1 is identified, and the luma QP associated with the luma CU covering the corresponding luma sample, ie, CU Y 3 is then used to derive CU c 1. However, when making filtering decisions for the three samples depicted (with solid circles), the QP of the CU covering the corresponding three samples is selected. Therefore, for the first, second, and third chroma samples (as shown in Figure 9(b)), the QP of the CU is used, respectively. Y 2. CU Y 3 and CU Y That is, chroma samples in the same CU may use different QPs for filter decisions, which may lead to wrong decisions.

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

[0276] 7. TS and non-TS coded blocks use different QPs during dequantization, which can also be considered in the deblocking process.

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

[0278] 4. Example Techniques and Implementations

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

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

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

[0282] About Chroma QP in Deblocking

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

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

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

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

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

[0288] 3. It is proposed to consider the picture / slice / tile / tile / sub-picture level quantization parameter offset for different codecs in the deblocking filter decision process.

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

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

[0291] i. Alternatively, in addition, the picture / slice level QP offset (eg, pps_joint_cbcr_qp_offset) applied to the JCCR coded blocks may be further considered in the deblocking filtering process.

[0292] 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:

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

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

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

[0296] a. In one example, a chroma filtering process (eg, a chroma edge decision process) that requires the use of a quantization parameter of a luma block may utilize a luma codec unit that covers the corresponding luma sample at the center position of the current chroma CU.

[0297] b. An example is depicted in Figure 9, where CU Y The decoded information of 3 can be used for filtering decisions of the three chroma samples (first, second and third) in Figure 9(b).

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

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

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

[0301] 6. Whether to call the above bullet may depend on whether the samples to be filtered are in a block on the P side or the Q side.

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

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

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

[0305] About QP Environment

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

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

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

[0309] ii. In one example, it can be signaled conditional on the block level chroma QP offset enable flag at the picture level.

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

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

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

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

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

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

[0316] Filtering Procedure

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

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

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

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

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

[0322] About Boundary Strength Export

[0323] 10. It is proposed to treat JCCR-coded blocks as those of non-JCCR-coded blocks in the boundary strength decision process.

[0324] 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 and Q sides.

[0325] a. In one example, the boundary strength of a block may be determined regardless of whether the block is encoded with JCCR.

[0326] 11. It is proposed to derive the boundary strength without comparing the number of reference pictures and / or MVs associated with a block on the P side with the number of reference pictures / or MVs of a block on the Q side.

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

[0328] c. In one example, the deblocking filter 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).

[0329] d. 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.

[0330] i. Alternatively, in addition, 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.

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

[0332] i. Alternatively, the difference between the motion vectors of two blocks greater than the threshold Th can be defined as (Abs(MVP[0].x-MVQ[0].x)>Th&&Abs(MVP[0].y-MVQ[0].y)>Th&&Abs(MVP[1].x-MVQ[1].x)>Th)&&Abs(MVP[1].y-MVQ[1].y)>Th)

[0333] 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)

[0334] 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)

[0335] f. In one example, a block that does not have a motion vector in a given list may be treated as having a zero motion vector in that list.

[0336] g. In the above examples, Th is an integer (eg, 4, 8, or 16).

[0337] h. In the above example, Th can depend on

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

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

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

[0341] iv. Encoding and decoding mode for blocks containing samples along the edge

[0342] v. The transformation matrix applied to the blocks containing samples along the edge

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

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

[0345] viii. Encoding tree structure (such as dual tree or single tree)

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

[0347] x. Color component (e.g., only Cb or Cr)

[0348] xi. Time domain layer ID

[0349] xii. Standard Profiles / Classes / Tiers

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

[0351] i. The above examples may apply under certain conditions.

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

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

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

[0355] iv. In one example, the condition is that blkP and blkQ are coded with the same prediction mode (eg, IBC or Inter).

[0356] About the Luma Deblocking Filtering Process

[0357] 12. Deblocking can use different QPs for TS-coded blocks and non-TS-coded blocks.

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

[0359] 13. The luma filtering process (eg, the luma edge decision process) may depend on the quantization parameters of the scaling process applied to the luma block.

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

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

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

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

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

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

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

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

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

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

[0370] b. 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

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

[0372] d. Codec mode for blocks containing samples along the edge

[0373] e. The transformation matrix applied to the blocks containing samples along the edge

[0374] f. The block size of the current block and / or its neighboring blocks

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

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

[0377] i. Coding tree structure (such as dual tree or single tree)

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

[0379] k. Color component (e.g., only applies to Cb or Cr)

[0380] l. Time domain layer ID

[0381] m. Standard profile / level / tier

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

[0383] General

[0384] 15. The above proposed method can be applied under certain conditions.

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

[0386] i. Alternatively, in addition, for a 4:4:4 color format, how to apply the deblocking filter to the two color chroma components can follow the current design.

[0387] b. In one example, the indication of the use of the above method can be signaled at the sequence / picture / slice / slice / tile / video region level, such as in SPS / PPS / picture header / slice header.

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

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

[0390] iii. 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

[0391] iv. Location of CU / PU / TU / block / video codec unit

[0392] v. Codec mode for blocks containing samples along the edge

[0393] vi. Transformation matrix applied to blocks containing samples along the edge

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

[0395] viii. Block shape of the current block and / or its neighboring blocks

[0396] ix. Indication of color format (such as 4:2:0, 4:4:4, RGB or YUV)

[0397] x. Encoding tree structure (such as double tree or single tree)

[0398] xi. Strip / slice group type and / or picture type

[0399] xii. Color components (e.g., only for Cb or Cr)

[0400] xiii. Temporal layer ID

[0401] xiv. Standard profiles / levels / tiers

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

[0403] 5. Additional Embodiments

[0404] Newly added text is shown in bold underlined italics. Deleted text is marked with [[ ]].

[0405] 5.1. Example 1 about chroma QP in deblocking

[0406] 8.8.3.6 Edge filtering process in one direction

[0407] …

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

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

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

[0411] 8.8.3.6.3 Chroma block edge decision process

[0412] …

[0413] Variable Qp Q and Qp P is set equal to the Qp of the codec unit Y value, the codec unit includes sample points q 0,0 and p 0,0 The encoding block.

[0414] Variable Qp C The export is as follows:

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

[0416] Q C =ChromaQpTable[cIdx-1][qPi] (8-1133)]]

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

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

[0419] Note – The variable cQpPicOffset adjusts the value of pps_cb_qp_offset or pps_cr_qp_offset depending on whether the filtered chroma component is a cb component or a cr component. However, in order to avoid changing the amount of adjustment within the picture, the filtering process does not include adjustments to the slice_cb_qp_offset or slice_cr_qp_offset values, nor does it include adjustments to CuQpOffset Cb 、CuQpOffset Cr or CuQpOffset CbCrAdjustment of the value (when cu_chroma_qp_offset_enabled_flag is equal to 1).

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

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

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

[0423] The variable β is derived as follows:

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

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

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

[0427] Where slice_tc_offset_div2 contains sample point q 0,0 The value of the syntax element slice_tc_offset_div2 of the slice.

[0428] Variable t C The export is as follows:

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

[0430] 5.2. Example 2 of Boundary Strength Derivation

[0431] 8.8.3.5 Derivation process of boundary filter strength

[0432] Inputs to this process include:

[0433] – Picture sample array recPicture,

[0434] –Specify the position of the upper left corner sample of the current codec block relative to the upper left corner sample of the current picture (xCb, yCb),

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

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

[0437] – a variable edge type that specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0438] – Variable cIdx that specifies the color component of the current codec block,

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

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

[0441] …

[0442] For xDi with i = 0..xN and yDj with j = 0..yN, the following applies:

[0443] – If edgeFlags[xD i ][yD j ] is equal to 0, then the variable bS[xD i ][yD j ] is set to equal 0.

[0444] – Otherwise, the following applies:

[0445] …

[0446] –Variable bS[xD i ][yD j ] is exported as follows:

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

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

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

[0450] – 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.

[0451] – 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.

[0452] – 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 equal to 1.

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

[0454]

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

[0456] – 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.

[0457] Note 1 - The determination of 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 the index of reference picture list 0 or the index of reference picture list 1 is used to form the prediction, or whether the index positions within the reference picture lists are different.

[0458] NOTE 2 – The number of motion vectors used to predict the coded sub-block (xSb, ySb) with top left sample coverage is equal to PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb].

[0459] – 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.

[0460] – Two motion vectors and two different reference pictures are used to predict the codec sub-block containing sample p0, and 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 predicting the two codec sub-blocks of the same reference picture is greater than or equal to 8 in units of 1 / 16 luma samples.

[0461] – 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:

[0462] – The absolute difference between the horizontal or vertical components of the list 0 motion vectors used to predict 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 to predict the two codec sub-blocks is greater than or equal to 8 in units of 1 / 16 luma samples.

[0463] – 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. ]]

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

[0465] 5.3. Example 3 of boundary strength derivation

[0466] 8.8.3.5 Derivation process of boundary filter strength

[0467] Inputs to this process include:

[0468] – Picture sample array recPicture,

[0469] –Specify the position of the upper left corner sample of the current codec block relative to the upper left corner sample of the current picture (xCb, yCb),

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

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

[0472] – a variable edge type that specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0473] – Variable cIdx that specifies the color component of the current codec block,

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

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

[0476] …

[0477] For xDi with i = 0..xN and yDj with j = 0..yN, the following applies:

[0478] – If edgeFlags[xD i ][yD j ] is equal to 0, then the variable bS[xD i ][yD j ] is set to equal 0.

[0479] – Otherwise, the following applies:

[0480] …

[0481] –Variable bS[xD i ][yD j ] is exported as follows:

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

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

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

[0485] – 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.

[0486] –[[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 equal to 1. ]]

[0487] – 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 equal to 1.

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

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

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

[0491] NOTE 1 - The determination of 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 from reference picture list 0 or an index from reference picture list 1 is used to form the prediction, or whether the index positions within the reference picture lists are different.

[0492] NOTE 2 - The number of motion vectors used to predict the coded sub-block (xSb, ySb) with top-left sample coverage is equal to PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb].

[0493] – 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.

[0494] – Two motion vectors and two different reference pictures are used to predict the codec sub-block containing sample p0, and 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 predicting the two codec sub-blocks of the same reference picture is greater than or equal to 8 in units of 1 / 16 luma samples.

[0495] – 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:

[0496] – The absolute difference between the horizontal or vertical components of the list 0 motion vectors used to predict 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 to predict the two codec sub-blocks is greater than or equal to 8 in units of 1 / 16 luma samples.

[0497] – 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.

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

[0499] 5.4. Example 4 of Luminance Deblocking Filtering Process

[0500] 8.8.3.6.1 Luminance block edge decision process

[0501] Inputs to this process include:

[0502] – Picture sample array recPicture,

[0503] –Specify the position of the upper left corner sample of the current codec block relative to the upper left corner sample of the current picture (xCb, yCb),

[0504] –Specify the position of the upper left corner sample of the current block relative to the upper left corner sample of the current codec block (xBl, yBl),

[0505] – a variable edge type that specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0506] – variable bS that specifies the strength of the boundary filter,

[0507] – The variable maxFilterLengthP that specifies the maximum filter length,

[0508] – The variable maxFilterLengthQ specifies the maximum filter length.

[0509] The output of this process is:

[0510] – variables dE, dEp and dEq containing the decision,

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

[0512] – Variable t C .

[0513] …

[0514] The following sequential steps apply: ...

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

[0516] a. The variables dp0L and dp3L are exported, and maxFilterLengthP is modified as follows:

[0517] –[[If sidePisLargeBlk is equal to 1, then the following formula applies:

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

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

[0520] – Otherwise, the following applies:]]

[0521] dp0L=dp0 (8-1089)

[0522] dp3L=dp3 (8-1090)

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

[0524]

[0525] b. The variables dq0L and dq3L are derived as follows:

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

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

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

[0529] – Otherwise, the following applies:]]

[0530] dq0L=dq0 (8-1094)

[0531] dq3L=dq3 (8-1095)

[0532]

[0533] …

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

[0535] …

[0536] 5.5. Example 5 of Chroma Deblocking Filtering Process

[0537] 8.8.3.6.3 Chroma block edge decision process

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

[0539] Inputs to this process include:

[0540] – Chroma picture sampling array recPicture,

[0541] –Specifies the chroma position (xCb, yCb) of the upper left corner sample of the current chroma codec block relative to the upper left corner chroma sample of the current picture,

[0542] –Specify the chroma position (xBl, yBl) of the upper left corner sample of the current chroma block relative to the upper left corner sample of the current chroma codec block,

[0543] – a variable edge type that specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0544] – Variable cIdx that specifies the color component index,

[0545] – The variable cQpPicOffset that specifies the picture-level chroma quantization parameter offset,

[0546] – variable bS that specifies the strength of the boundary filter,

[0547] –Variable maxFilterLengthCbCr.

[0548] The output of this process is

[0549] – The modified variable maxFilterLengthCbCr,

[0550] – Variable t C .

[0551] The variable maxK is derived as follows:

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

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

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

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

[0556] The value p of i=0..maxFilterLengthCbCr and k=0..maxK i and q i The export is as follows:

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

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

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

[0560] subSampleC=SubHeightC (8-1128)

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

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

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

[0564] subSampleC=SubWidthC (8-1131)

[0565]

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

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

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

[0569] The variable β is derived as follows:

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

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

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

[0573] Where slice_tc_offset_div2 contains sample point q 0,0 The value of the syntax element slice_tc_offset_div2 of the slice.

[0574] Variable t C The export is as follows:

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

[0576] When maxFilterLengthCbCr is equal to 1 and bS is not equal to 2, maxFilterLengthCbCr is set equal to 0.

[0577] 5.6. Example #6 of Chroma QP in Deblocking

[0578] 8.8.3.6.3 Chroma block edge decision process

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

[0580] Inputs to this process include:

[0581] – Chroma picture sampling array recPicture,

[0582] –Specifies the chroma position (xCb, yCb) of the upper left corner sample of the current chroma codec block relative to the upper left corner chroma sample of the current picture,

[0583] –Specify the chroma position (xBl, yBl) of the upper left corner sample of the current chroma block relative to the upper left corner sample of the current chroma codec block,

[0584] – a variable edge type that specifies whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges,

[0585] – Variable cIdx that specifies the color component index,

[0586] – The variable cQpPicOffset that specifies the picture-level chroma quantization parameter offset,

[0587] – variable bS that specifies the strength of the boundary filter,

[0588] –Variable maxFilterLengthCbCr.

[0589] The output of this process is

[0590] – The modified variable maxFilterLengthCbCr,

[0591] – Variable t C .

[0592] The variable maxK is derived as follows:

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

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

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

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

[0597] The value p of i=0..maxFilterLengthCbCr and k=0..maxK i and q i The export is as follows:

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

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

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

[0601] subSampleC=SubHeightC (8-1128)

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

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

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

[0605] subSampleC=SubWidthC (8-1131)

[0606] Variable Qp Q and Qp P is set equal to the Qp of the codec unit Y value, the codec unit includes sample points q 0,0 and p 0,0 The encoding block.

[0607]

[0608] Variable Qp C The export is as follows:

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

[0610]

[0611] Q C =ChromaQpTable[cIdx-1][qPi] (8-1133)

[0612] Note – The variable cQpPicOffset adjusts the value of pps_cb_qp_offset or pps_cr_qp_offset depending on whether the filtered chroma component is a Cb component or a Cr component. However, in order to avoid changing 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 adjustments to CuQpOffset Cb 、CuQpOffset Cr or CuQpOffset CbCr Adjustment of the value of (when cu_chroma_qp_offset_enabled_flag is equal to 1).

[0613] …

[0614] 5.7. Example 7 of Chroma QP in Deblocking

[0615] 8.8.3.6.3 Chroma block edge decision process

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

[0617] Inputs to this process include:

[0618] – Chroma picture sampling array recPicture,

[0619] –Specifies the chroma position (xCb, yCb) of the upper left corner sample of the current chroma codec block relative to the upper left corner chroma sample of the current picture,

[0620] –…

[0621] The output of this process is

[0622] – The modified variable maxFilterLengthCbCr,

[0623] – Variable t C .

[0624] The variable maxK is derived as follows:

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

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

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

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

[0629] The value p when i=0..maxFilterLengthCbCr and k=0..maxK i and q i The export is as follows:

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

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

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

[0633] subSampleC=SubHeightC (8-1128)

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

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

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

[0637] subSampleC=SubWidthC (8-1131)

[0638] [[Variable Qp Q and Qp P is set equal to the Qp of the codec unit Y value, the codec unit includes sample points q 0,0 and p 0,0 The encoding block. ]]

[0639]

[0640] Variable Qp C The export is as follows:

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

[0642] Q C =ChromaQpTable[cIdx-1][qPi] (8-1133)

[0643] Note – The variable cQpPicOffset adjusts the value of pps_cb_qp_offset or pps_cr_qp_offset depending on whether the filtered chroma component is a Cb component or a Cr component. However, in order to avoid changing 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 adjustments to CuQpOffset Cb 、CuQpOffset Cr or CuQpOffset CbCr Adjustment of the value of (when cu_chroma_qp_offset_enabled_flag is equal to 1).

[0644] The value of the variable β′ is determined according to the quantization parameter Q as specified in Table 8-18, and the quantization parameter Q is derived as follows:

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

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

[0647] The variable β is derived as follows:

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

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

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

[0651] Where slice_tc_offset_div2 contains sample point q0,0 The value of the syntax element slice_tc_offset_div2 of the slice.

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

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

[0654] In this way, how the luma CU is selected for the chroma quantization / dequantization process is aligned with the luma coefficients used for the chroma filter decision process.

[0655] 5.9. Example #9 about QP of blocks for JCCR codec

[0656] 8.7.3 Scaling of Transform Coefficients

[0657] Inputs to this process include:

[0658] –Specifies the luminance position (xTbY, yTbY) of the upper left corner sample of the current luminance transform block relative to the top luminance sample of the current picture,

[0659] – variable nTbW that specifies the transform block width,

[0660] – variable nTbH that specifies the transform block height,

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

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

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

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

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

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

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

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

[0669] – Otherwise, if TuCResMode[xTbY][yTbY] [[equals 2]], then the following applies:

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

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

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

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

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

[0675] 6. Example Implementations of the Disclosed Technology

[0676] Fig.12 1 is a block diagram of a video processing device 1200. Device 1200 can be used to implement one or more methods described herein. Device 1200 can be embodied in a smartphone, 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. Processor 1202 can be configured to implement one or more methods described in this document. Memory (multiple memories) 1204 can be used to store data and code for implementing the methods and techniques described herein. Video processing hardware 1206 can be used to implement some of the techniques described in this document in hardware circuits, and can be partially or completely part of processor 1202 (e.g., a graphics processor core GPU or other signal processing circuit).

[0677] In this document, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion from a pixel representation of a video to a corresponding bitstream representation, or vice versa. The bitstream representation of the current video block may, for example, correspond to bits located at different positions within the bitstream or spread over different positions 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 may also use bits in the header and other fields in the bitstream.

[0678] It will be appreciated that the disclosed methods and techniques will benefit video encoder and / or decoder embodiments incorporated into video processing apparatus such as smartphones, laptops, desktop computers, and similar devices by enabling use of the techniques disclosed in this document.

[0679] 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 bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used on a boundary of the video unit such that when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, processing of the chroma QP table is performed on individual chroma QP values.

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

[0681] 1. A video processing method, comprising:

[0682] A conversion is performed between video units and bitstream representations of the video units, wherein during the conversion, a deblocking filter is used on a boundary of the video unit such that when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, processing of the chroma QP table is performed on individual chroma QP values.

[0683] 2. The method of clause 1, wherein after chroma QP table processing, a chroma QP offset is added to each chroma QP value.

[0684] 3. The method of any of clauses 1-2, wherein the chroma QP offset is added to the value output by the chroma QP table.

[0685] 4. The method of any of clauses 1-2, wherein the chroma QP offset is not considered as an input to the chroma QP table.

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

[0687] 6. A video processing method, comprising:

[0688] A conversion is performed between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used on a boundary of the video unit such that a chroma QP offset is used in the deblocking filter, wherein the chroma QP offset is at a picture / slice / slice / tile / sub-picture level.

[0689] 7. The method of clause 6, wherein the chroma QP offset used in the deblocking filter is associated with a codec method applied on a boundary of a video unit.

[0690] 8. The method of clause 7, wherein the coding and decoding method is a joint coding and decoding of chroma residual (JCCR) method.

[0691] 9. A video processing method, comprising:

[0692] A conversion is performed between video units and bitstream representations of the video units, wherein during the conversion, a deblocking filter is used on a boundary of the video units such that a chroma QP offset is used in the deblocking filter, wherein information associated with the same luma codec unit is used in the deblocking filter and for deriving the chroma QP offset.

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

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

[0695] 12. The method of clause 11, wherein the quantization / dequantization parameters of the scaling process include chroma QP offsets.

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

[0697] 14. A method according to clause 13, wherein the information related to the same luma codec unit depends on the relative position of the codec unit with respect to the same luma codec unit.

[0698] 15. A video processing method, comprising:

[0699] A conversion is performed between a video unit and a bitstream representation of the video unit, wherein during the conversion a deblocking filter is used on a boundary of the video unit such that a chroma QP offset is used in the deblocking filter, wherein an indication enabling use of the chroma QP offset is signaled in the bitstream representation.

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

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

[0702] 18. The method of clause 15, wherein the indication is signaled based on a derivation.

[0703] 19. A video processing method, comprising:

[0704] A conversion is performed between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used on a boundary of the video unit such 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 a boundary of the video unit or a method different from the JCCR codec method is applied on a boundary of the video unit.

[0705] 20. A video processing method, comprising:

[0706] A conversion is performed between a video unit and a bitstream representation of the video unit, wherein during the conversion, a deblocking filter is used on a boundary of the video unit such 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 number of reference pictures and / or motion vectors (MVs) associated with the video unit at the P-side boundary with a number of reference pictures and / or motion vectors (MVs) associated with the video unit at the Q-side.

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

[0708] 22. A method according to clause 21, wherein one or more conditions are associated with: a magnitude or a threshold of a motion vector (MV).

[0709] 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 / group of LCUs / TU / PU block / video codec unit, iii. the location of the CU / PU / TU / block / video codec unit, iv. the codec mode of blocks having samples along the boundaries, v. the transform matrix applied to the video unit having 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 components, xi. the temporal layer ID, or xii. the profile / level / layer of the standard.

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

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

[0712] 26. A video decoding apparatus comprising a processor configured to implement the method of one or more of clauses 1 to 25.

[0713] 27. A video encoding device comprising a processor configured to implement the method of one or more of clauses 1 to 25.

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

[0715] 29. The method, apparatus or system described in this document.

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

[0717] System 1400 may include a codec component 1404, which may implement various encoding or encoding methods described in this document. Codec component 1404 may reduce the average bit rate of the video from input 1402 to the output of codec component 1404 to generate a bitstream representation of the video. Therefore, codec technology is sometimes referred to as video compression or video code conversion technology. The output of codec component 1404 may be stored or transmitted via a connected communication (as represented by component 1406). Component 1408 may use the stored or transmitted bitstream (or coded) representation of the video received at input 1402 to generate pixel values ​​or displayable video sent to display interface 1410. The process of generating user-visible video from bitstream representation 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 codec tools or operations are used at encoders, and the corresponding decoding tools or operations of the results of inverted codecs will be performed by decoders.

[0718] 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 technology described in this document may be embodied in various electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.

[0719] Fig.15 1 is a flowchart representation of a video processing method 1500 according to the present technology. The method 1500 includes, at operation 1510, performing a conversion between a block of chroma components of a video and a bitstream representation of the video. During the conversion, a deblocking filter process is applied to at least some samples along the edges of the block, and a chroma quantization parameter (QP) offset is added to the output from the chroma QP table to determine parameters of the deblocking filter process.

[0720] In some embodiments, the chroma QP offset is indicated by a syntax element at least at a picture level or a video unit level in a bitstream representation. In some embodiments, a video unit comprises a slice, a slice, a tile, a sub-picture, or a block. In some embodiments, the chroma QP offset comprises at least pps_cb_qp_offset and / or pps_cr_qp_offset. In some embodiments, the QP clipping process is disabled for inputs to the chroma QP table. In some embodiments, the chroma components comprise Cr components of the video. In some embodiments, the chroma components comprise Cb components of the video.

[0721] Fig.161 is a flowchart representation of a video processing method 1600 according to the present technology. The method 1600 includes, at operation 1610, for conversion between a block of chrominance components of a video and a bitstream representation of the video, determining whether or how to apply filtering processing to an edge of the block based on first quantization information of a first video region including samples on one side of the edge and / or second quantization information of a second video region including samples on the other side of the edge according to a rule. The rule is based on a codec mode applicable to the block for encoding samples on one side of the edge or samples on the other side. The rule specifies using multiple QP offsets at different video unit levels to determine the first quantization information or the second quantization information. The method 1600 also includes, at operation 1620, performing the conversion based on the determination.

[0722] In some embodiments, the different video unit levels include at least a picture level, a slice level, a tile level, or a sub-picture level. In some embodiments, the multiple QP offsets include offsets for a Cb component of the video. In some embodiments, the multiple QP offsets include offsets for a Cr component of the video.

[0723] In some embodiments, the rule provides that the selection of the plurality of QP offsets is based on a codec mode. In some embodiments, the codec mode comprises a joint coding of chroma residual (JCCR) codec mode. In some embodiments, when the block is coded in the JCCR codec mode, the plurality of QP offsets comprises at least a picture level QP offset or a slice level QP offset. In some embodiments, when at least one of the first video region or the second video region is coded using the JCCR codec mode, the plurality of QP offsets used to determine the thresholds β and tC of the filtering process comprises a QP offset value of the JCCR codec mode.

[0724] In some embodiments, information of the corresponding block of the luma component is used to determine the first quantization information of the first video region or the second quantization information of the second video region. In some embodiments, to filter the current chroma sample in the block of the chroma component, information of the luma codec unit covering the luma sample corresponding to the current chroma sample is used to determine the first quantization information of the first video region or the second quantization information of the second video region.

[0725] In some embodiments, whether or how to apply the filtering process is based on a scaling process applicable to the block. In some embodiments, the first quantization information of the first video region or the second quantization information of the second video region used to determine the threshold β and tC is based on the quantization information used in the scaling process. In some embodiments, one or more codec level QP offsets are used to determine the quantization information used in the scaling process.

[0726] In some embodiments, the applicability of the method is based on whether the block is on one side of the edge or on the other side of the edge. In some embodiments, whether the information of the corresponding block of the luminance component is used for the filtering process is based on the position of the block. In some embodiments, in the case where the block is on the other side of the edge, the information of the corresponding block of the luminance component is used for the filtering process. In some embodiments, in the case where the block is on one side of the edge, the information of the corresponding block of the luminance component is used for the filtering process.

[0727] Fig.17 17 is a flowchart representation of a video processing method 1700 according to the present technology. The method 1700 includes, at operation 1710, for conversion between a current block of video and a bitstream representation of the video, determining whether to enable use of a chroma quantization parameter (QP) offset for the current block based on a syntax element of a level of a video unit. The video unit includes the current block of video and a second block. The method 1700 also includes, at operation 1720, performing the conversion based on the determination.

[0728] In some embodiments, the video unit comprises a slice. In some embodiments, the video unit further comprises a slice, a tile, or a sub-picture.

[0729] In some embodiments, the syntax element is conditionally included in the bitstream representation at the level of the video unit. In some embodiments, the syntax element is conditionally included in the bitstream representation based on whether a joint coding mode of a chroma residual is enabled. In some embodiments, the syntax element is included in the bitstream representation at the level of the video unit based on a second syntax element at the picture level indicating the use of a chroma quantization parameter (QP) offset at the block level. In some embodiments, the syntax element is omitted in the bitstream representation, and the use of a chroma quantization parameter (QP) offset at the block level is determined to be prohibited if the second syntax element at the picture level indicates that the use of a chroma quantization parameter (QP) offset at the block level is prohibited. In some embodiments, the use of a chroma quantization parameter (QP) offset for a current block is determined based on the syntax element at the slice level and the second syntax element at the picture level.

[0730] Fig.18 is a flowchart representation of a video processing method 1800 according to the present technology. The method 1800 includes, at operation 1810, performing a conversion between a video including a first chroma component and a second chroma component and a bitstream representation of the video. According to a rule, a residual of a first chroma block of the first chroma component and a second chroma block of the second chroma component are jointly encoded and decoded in the bitstream representation using a codec mode. The rule specifies that a quantization parameter (QP) for the conversion is derived in a manner independent of the codec mode. In some embodiments, the QP for the conversion is derived based on a QP offset signaled at a picture level or a slice level in the bitstream representation.

[0731] Fig.19 1 is a flowchart representation of a video processing method 1900 according to the present technology. The method 1900 includes, at operation 1910, performing a conversion between a first block of a video and a bitstream representation of the video. The video has a color format with multiple color components, and the first block is associated with a first color component of the video. During the conversion, a deblocking filtering process is applied to at least some samples along an edge of the first block. The method 1900 includes, at operation 1920, performing a subsequent conversion between blocks associated with remaining color components of the video and the bitstream representation of the video. During the subsequent conversion, a deblocking filtering process is applied to at least some samples along an edge of each block in the same manner as the conversion of the first block.

[0732] In some embodiments, the color format is 4:4:4. In some embodiments, the color format is 4:4:4 in a red-green-blue (RGB) color space. In some embodiments, the color format is 4:2:2 and the deblocking filtering process is applied in a vertical direction. In some embodiments, the deblocking filtering process includes a decision process and / or a filtering process.

[0733] Fig. 20 2 is a flowchart representation of a video processing method 2000 according to the present technology. The method 2000 includes, at operation 2010, determining a boundary strength of a boundary between two blocks of the video for conversion between a video and a bitstream representation of the video. The boundary strength is determined regardless of whether either of the two blocks is encoded or decoded in a joint coding and decoding of chroma residual (JCCR) mode. The method 2000 includes, at operation 2020, performing the conversion based on the determination.

[0734] In some embodiments, where one of the two blocks is coded in JCCR mode, the block is considered to be coded in non-JCCR mode for determining boundary strength. In some embodiments, boundary strength is determined independently of the use of JCCR for the two blocks.

[0735] Fig.21 21 is a flowchart representation of a video processing method 2100 according to the present technology. The method 2100 includes, at operation 2110, for a conversion between a video and a bitstream representation of the video, determining a boundary strength of a boundary between a first block and a second block. The determination is performed without comparing information of the first block with corresponding information of the second block. The information includes a reference picture and / or a number of motion vectors of the corresponding block, and the boundary strength is used to determine whether a deblocking filtering process is applicable to the boundary. The method 2100 also includes, at operation 2120, performing a conversion based on the determination.

[0736] In some embodiments, the boundary strength indicates that the deblocking filtering process is disabled if the reference picture of the first block is different from the reference picture of the second block. In some embodiments, the boundary strength indicates that the deblocking filtering process is disabled if the number of motion vectors of the first block is different from the number of motion vectors of the second block.

[0737] In some embodiments, the boundary strength is set to 1 when the difference between one or more motion vectors of the first block and one or more motion vectors of the second block is greater than or equal to a threshold value, and the threshold value is an integer. In some embodiments, the one or more motion vectors of the first block are represented as MVP[0] and MVP[1], and the one or more motion vectors of the second block are represented as MVQ[0] and MVQ[1]. In the case of (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), the difference is greater than or equal to the threshold value Th. In some embodiments, when (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), the difference is greater than or equal to the threshold value Th. In some embodiments, when (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), the difference is greater than or equal to the threshold value Th. In some embodiments, in the case where (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), the difference is greater than or equal to a threshold value Th. In some embodiments, in the case where the difference between the motion vector of the first block and the motion vector of the second block is less than or equal to a threshold value, the boundary strength is set to 0, and the threshold value is an integer. In some embodiments, the threshold value is 4, 8, or 16. In some embodiments, the threshold value is based on characteristics of the video.

[0738] In some embodiments, the applicability of the method is determined based on a condition. In some embodiments, the method is applicable when the first block and the second block are not encoded or decoded using an intra prediction mode. In some embodiments, the method is applicable when the first block and the second block have zero coefficients for the luminance component. In some embodiments, the method is applicable when the first block and the second block are not encoded or decoded using a combined inter and intra prediction mode. In some embodiments, the method is applicable when the first block and the second block are encoded or decoded using the same prediction mode, which is an intra-block copy prediction mode or an inter prediction mode.

[0739] Fig. 22 is a flowchart representation of a video processing method 2200 according to the present technology. The method 2200 includes, at operation 2210, for a conversion between a video block of a video and a bitstream representation of the video, determining a quantization parameter (QP) for applying a deblocking filter to the video block according to a rule. The rule provides that in the case where the video block is encoded and decoded using a transform skip (TS) mode, a residual of the video block is encoded and decoded in the bitstream representation by skipping the application of a transform. In the case where the video block is encoded and decoded using a non-transform skip mode, a second QP different from the first QP is used for the determination, in the non-transform skip mode, the residual of the video block is encoded and decoded in the bitstream representation after applying the transform. The method 2200 also includes, at operation 2220, performing the conversion based on the determination.

[0740] In some embodiments, for conversion of luma blocks, the filtering process applied to luma blocks is based on the QP of the scaling process applied to luma blocks. In some embodiments, the QP used to determine whether the filtering process is applicable to luma blocks is determined based on the clipping range of the TS mode.

[0741] Fig.23 23 is a flowchart representation of a video processing method 2300 according to the present technology. The method 2300 includes, at operation 2310, for a conversion between a video block of a video and a bitstream representation of the video, determining, according to a rule, a gradient for determining the applicability of a deblocking filter process to at least some samples of an edge of the video block. The rule specifies that the manner in which the gradient is determined is independent of the size of the video block. The method 2300 also includes, at operation 2320, performing the conversion based on the determination.

[0742] In some embodiments, a threshold for determining whether to enable a deblocking filter process is adjusted for blocks with different border sizes, the threshold being an integer. In some embodiments, the threshold is based on a quantization parameter determined for the deblocking filter process. In some embodiments, the threshold for blocks with large borders is less than a second threshold for blocks with small borders. In some embodiments, the threshold for blocks with large borders is greater than the second threshold for blocks with small borders. In some embodiments, the threshold for blocks with large borders is equal to the second threshold for blocks with small borders. In some embodiments, the threshold is based on characteristics of the video.

[0743] In some embodiments, the applicability of one or more of the above methods is based on the characteristics of the video. In some embodiments, the characteristics of the video include the content of the video. In some embodiments, the characteristics of the video include information signaled in a decoder parameter set, a slice parameter set, a video parameter set, a picture parameter set, an adaptation parameter set, a picture header, a slice header, a slice group header, a maximum codec unit (LCU), a codec unit, an LCU row, a group of LCUs, a transform unit, a picture unit, or a video codec unit in a bitstream representation. In some embodiments, the characteristics of the video include the position of the codec unit, the picture unit, the transform unit, the block, or the video codec unit in the video. In some embodiments, the characteristics of the video include the codec mode of the block, which includes at least some samples along the edge. In some embodiments, the characteristics of the video include a transformation matrix, which is applied to a block including at least some samples along the edge. In some embodiments, the characteristics of the current block or the adjacent blocks of the current block include the dimensions of the current block or the dimensions of the adjacent blocks of the current block. In some embodiments, the characteristics of the current block or the adjacent blocks of the current block include the shape of the current block or the shape of the adjacent blocks of the current block. In some embodiments, the characteristics of the video include an indication of the color format of the video. In some embodiments, the characteristics of the video include a coding tree structure applicable to the video. In some embodiments, the characteristics of the video include a stripe type, a piece group type, or a picture type of the video. In some embodiments, the characteristics of the video include a color component of the video. In some embodiments, the characteristics of the video include a temporal layer identifier of the video. In some embodiments, the characteristics of the video include a profile, level, or hierarchy of a video standard.

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

[0745] Fig.24 is a block diagram illustrating an example video codec system 100 that may utilize the techniques of this disclosure.

[0746] like Fig.24As 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, and the source device 110 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, and the source device 110 may be referred to as a video decoding device.

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

[0748] 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 coded representation of the video data. The bit stream may include coded pictures and associated data. The coded pictures are coded representations of the pictures. The associated data may include sequence parameter sets, picture parameter sets, and other grammatical structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The coded video data may be directly transmitted to the destination device 120 via the network 130a via the I / O interface 116. The coded video data may also be stored on a storage medium / server 130b for access by the destination device 120.

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

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

[0751] 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 (VVC) standard, and other current and / or future standards.

[0752] Fig.25 is a block diagram showing an example of a video encoder 200, which may be Fig.24 The video encoder 114 in the system 100 is shown.

[0753] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. Fig.25 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.

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

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

[0756] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but for the purpose of explanation, they are described in detail in the following sections. Figure 5 are represented separately in the examples.

[0757] The partitioning unit 201 may partition a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.

[0758] The mode selection unit 203 may select one of the coding modes (intra or inter) based on the error result, for example, 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).

[0759] 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 from the buffer 213 other than the picture associated with the current video block and the decoded samples.

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

[0761] In some examples, the motion estimation unit 204 may perform uni-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 containing the reference video block in list 0 or list 1 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.

[0762] In other examples, the motion estimation unit 204 may perform bi-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 indicating the reference pictures in list 0 and list 1 containing the reference video block and a motion vector indicating a 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.

[0763] In some examples, motion estimation unit 204 may output a complete set of motion information for use in a decoding process by a decoder.

[0764] 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 the motion information of the current video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of an adjacent video block.

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

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

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

[0768] 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 various syntax elements.

[0769] The residual generation unit 207 can generate residual data for the current video block by subtracting (eg, indicated by a minus sign) the predicted video block of the current video block from the current video block. The residual data for the current video block can include residual video blocks corresponding to different sample components of samples in the current video block.

[0770] In other examples, such as in skip mode, the current video block may not have residual data for the current video block, and the residual generation unit 207 may not perform a subtraction operation.

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

[0772] After transform processing 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.

[0773] 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 predicted 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.

[0774] After the reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video deblocking artifacts in the video block.

[0775] The entropy coding unit 214 may receive data from other functional components of the video encoder 200. When the entropy coding unit 214 receives data, the entropy coding unit 214 may perform one or more entropy coding operations to generate entropy-coded data and output a bitstream including the entropy-coded data.

[0776] Fig.26 is a block diagram showing an example of a video decoder 300, which may be Fig.24 The video decoder 114 in the system 100 is shown.

[0777] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. Fig.26 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.

[0778] exist Fig.26 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, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 may perform an encoding process generally similar to that described with respect to the video encoder 200 (e.g., Fig.25 )The reverse decoding process.

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

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

[0781] The motion compensation unit 302 may calculate interpolation of sub-integer pixels of the reference block using the interpolation filter used by the video encoder 20 during encoding of the video block. The motion compensation unit 302 may determine the interpolation filter used by the video encoder 200 according to received syntax information and use the interpolation filter to generate a prediction block.

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

[0783] 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 303 inverse 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 303 applies an inverse transform.

[0784] The reconstruction unit 306 may add the residual block to the corresponding prediction block generated by the motion compensation unit 202 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 to remove blocking artifacts. The decoded video block is then stored in a buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction and also produces decoded video for presentation on a display device.

[0785] 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 will 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 bitstream representation of a video will use the video processing tool or mode. In another example, when a video processing tool or mode is enabled, a decoder will process the bitstream in the case where the bitstream has been modified based on the knowledge of the video processing tool or mode. That is, the conversion from the bitstream representation of a video to a video block will be performed using the video processing tool or mode enabled based on the decision or determination.

[0786] Some embodiments of the disclosed technology include making a decision or determination to disable a video processing tool or mode. In an example, when the video processing tool or mode is disabled, the encoder will not use the tool or mode in the conversion of video blocks to a bitstream representation of the video. In another example, when the video processing tool or mode is disabled, the decoder will process the bitstream without the knowledge that the bitstream is modified based on the decision or determination that the video processing tool or mode is enabled.

[0787] The disclosed and other solutions, examples, embodiments, modules and functional operations described in this document may be implemented in digital electronic circuits, or in computer software, firmware or hardware, including the structures disclosed in this document and their structural equivalents, or in a combination of one or more of them. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium, for execution by a data processing device or for controlling the operation of the data processing device. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a material combination of a signal that implements a machine-readable propagation, 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 execution 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 propagated signal is an artificially generated signal, such as a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device.

[0788] 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 use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed to execute on a single computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.

[0789] The processes and logic flows described in this document may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by special purpose logic circuitry, and the apparatus may also be implemented as special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0790] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more processors of any type 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, the computer will also include or be operably coupled to one or more large-capacity storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, to receive data from or transfer data to, or both. However, the computer does not need to have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; CD ROMs; and DVD-ROM disks. The processor and memory may be supplemented or incorporated in them by dedicated logic circuits.

[0791] Although this patent document contains many details, these details should not be interpreted as limitations on any subject matter or the scope of the claimed protection, but rather as descriptions of features that may be specific to a particular embodiment of a particular technology. Certain features described in the context of a separate embodiment in this patent document may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable sub-combination. In addition, although features may be described above as working in certain combinations, and even initially claimed as such, in some cases, one or more features from the claimed combination may be deleted from the combination, and the claimed combination may point to a variant of a sub-combination or a sub-combination.

[0792] Similarly, while operations are described in a particular order in the drawings, this should not be understood as requiring that the 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 described in this patent document should not be understood as requiring such separation in all embodiments.

[0793] Only a few implementations and examples are described, and other implementations, enhancements, and variations can be made based on what is described and illustrated in this patent document.

Claims

1. A method for processing video data, comprising: For conversion between a chroma block of a video and a bitstream of the video, determining whether or how to apply a deblocking filtering process to the boundary of the chroma block based on at least one of first quantization information of a first video region including samples on one side of the boundary of the chroma block or second quantization information of a second video region including samples on the other side of the boundary according to a rule, wherein the variables β and t used in the deblocking filtering process C Based on quantization information being determined, the quantization information being determined without applying a clipping operation to the first quantization information and the second quantization information; and performing the converting based on the determining; The rule stipulates that the first quantization information and the second quantization information are determined as follows: Determine third quantization information of a first corresponding luminance block for determining the first quantization information, and fourth quantization information of a second corresponding luminance block for determining the second quantization information, wherein, in a case where the first tree type of the first video area is a dual tree, the first corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the first video area, or in a case where the second tree type of the second video area is a dual tree, the second corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the second video area; Determine the first variable qP based on the third quantization information input1 , and determine a second variable qP based on the fourth quantization information input2 ; Based on using the first variable qP input1 The first table mapping operation as input determines the third variable qP output1 , and based on using the second variable qP input2 The second table mapping operation as input determines the fourth variable qP output2 ; Based on a first codec mode of the first video region, a first plurality of quantization parameter QP offsets at different video unit levels are added to the third variable qP output1 to determine fifth quantization information, and based on a second encoding and decoding mode of the second video region, by adding a second plurality of QP offsets at different video unit levels to the fourth variable qP output2 to determine sixth quantization information, wherein the first plurality of QP offsets are based on whether the first coding mode is a coding mode of chroma residual joint coding and decoding, and the second plurality of QP offsets are based on whether the second coding mode is a coding mode of the chroma residual joint coding and decoding; and The first quantization information is determined based on applying a first clipping operation to the fifth quantization information, and the second quantization information is determined based on applying a second clipping operation to the sixth quantization information, wherein a lower limit of the first clipping operation and the second clipping operation is -QpBdOffset, and an upper limit of the first clipping operation and the second clipping operation is 63, and wherein QpBdOffset indicates a quantization parameter bit depth offset.

2. The method according to claim 1, wherein: The different video unit levels include at least a picture level and a slice level.

3. The method according to claim 1, wherein: In a case where the first video area is encoded and decoded in the chroma residual joint encoding and decoding codec mode, the first plurality of QP offsets include a first picture-level chroma residual joint encoding and decoding QP offset for a luma quantization parameter and a first slice-level chroma residual joint encoding and decoding QP offset for the luma quantization parameter; and When the second video area is encoded and decoded in the coding and decoding mode of the chroma residual joint coding and decoding, the second multiple QP offsets include a second picture-level chroma residual joint coding and decoding QP offset for the luma quantization parameter and a second slice-level chroma residual joint coding and decoding QP offset for the luma quantization parameter.

4. The method according to claim 1, wherein: The first corresponding luma block is the same luma block used to derive the chroma QP during dequantization or quantization of the first video region; or The second corresponding luma block is the same luma block used to derive the chroma QP during dequantization or quantization of the second video region.

5. The method according to claim 1, wherein: The different video unit levels include at least a picture level, a slice level, a slice level, a tile level or a sub-picture level.

6. The method according to claim 1, wherein: The first plurality of QP offsets or the second plurality of QP offsets include offsets for a Cb component of the video.

7. The method according to claim 1, wherein: The first plurality of QP offsets or the second plurality of QP offsets include offsets for a Cr component of the video.

8. The method according to claim 1, wherein: The rule provides that selection of the first plurality of QP offsets or the second plurality of QP offsets is based on the first codec mode or the second codec mode.

9. The method according to claim 8, wherein: When the block is encoded and decoded in the coding mode of the chroma residual joint coding, the first plurality of QP offsets or the second plurality of QP offsets include at least a picture level QP offset or a slice level QP offset.

10. The method according to claim 8, wherein: In the case where at least one of the first video area or the second video area is encoded and decoded using the chroma residual joint coding mode, the variables β and t used to determine the deblocking filtering process C The first plurality of QP offsets or the second plurality of QP offsets include QP offset values ​​of the coding mode of the chroma residual joint coding.

11. The method according to claim 1, wherein: Whether or how to apply the deblocking filtering process is based on the scaling process applied to the chroma blocks.

12. The method according to claim 11, wherein: Used to determine the variables β and t C The first quantization information of the first video area or the second quantization information of the second video area is based on the quantization information used in the scaling process.

13. The method according to claim 11, wherein: One or more codec level QP offsets are used to determine quantization information used in the scaling process.

14. The method according to claim 1, wherein: The applicability of the method is based on whether the chrominance block is on one side of the boundary or on the other side of the boundary.

15. The method according to claim 14, wherein: Whether the third quantization information of the first corresponding luminance block or the fourth quantization information of the second corresponding luminance block is used for the deblocking filtering process is based on the position of the chrominance block.

16. The method according to claim 15, wherein: In case the chroma block is on the other side of the boundary, the third quantization information of the first corresponding luminance block or the fourth quantization information of the second corresponding luminance block is used for the deblocking filtering process.

17. The method according to claim 15, wherein: In case that the chrominance block is on one side of the boundary, the third quantization information of the first corresponding luminance block or the fourth quantization information of the second corresponding luminance block is used for the deblocking filtering process.

18. The method according to any one of claims 1 to 17, wherein: The converting includes encoding the video into the bitstream.

19. The method according to any one of claims 1 to 17, wherein: The converting includes decoding the video from the bitstream.

20. 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: For conversion between a chroma block of a video and a bitstream of the video, determining whether or how to apply a deblocking filtering process to the boundary of the chroma block based on at least one of first quantization information of a first video region including samples on one side of the boundary of the chroma block or second quantization information of a second video region including samples on the other side of the boundary according to a rule, wherein the variables β and t used in the deblocking filtering process C Based on quantization information being determined, the quantization information being determined without applying a clipping operation to the first quantization information and the second quantization information; and performing the converting based on the determining; The rule stipulates that the first quantization information and the second quantization information are determined as follows: Determine third quantization information of a first corresponding luminance block for determining the first quantization information, and fourth quantization information of a second corresponding luminance block for determining the second quantization information, wherein, in a case where the first tree type of the first video area is a dual tree, the first corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the first video area, or in a case where the second tree type of the second video area is a dual tree, the second corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the second video area; Determine the first variable qP based on the third quantization information input1 , and determine a second variable qP based on the fourth quantization information input2 ; Based on using the first variable qP input1 The first table mapping operation as input determines the third variable qP output1 , and based on using the second variable qP input2 The second table mapping operation as input determines the fourth variable qP output2 ; Based on a first codec mode of the first video region, a first plurality of quantization parameter QP offsets at different video unit levels are added to the third variable qP output1 to determine fifth quantization information, and based on a second encoding and decoding mode of the second video region, by adding a second plurality of QP offsets at different video unit levels to the fourth variable qP output2 to determine sixth quantization information, wherein the first plurality of QP offsets are based on whether the first coding mode is a coding mode of chroma residual joint coding and decoding, and the second plurality of QP offsets are based on whether the second coding mode is a coding mode of the chroma residual joint coding and decoding; and The first quantization information is determined based on applying a first clipping operation to the fifth quantization information, and the second quantization information is determined based on applying a second clipping operation to the sixth quantization information, wherein a lower limit of the first clipping operation and the second clipping operation is -QpBdOffset, and an upper limit of the first clipping operation and the second clipping operation is 63, and wherein QpBdOffset indicates a quantization parameter bit depth offset.

21. The device according to claim 20, wherein: The different video unit levels include at least a picture level and a slice level.

22. The device according to claim 20, wherein: In a case where the first video area is encoded and decoded in the chroma residual joint encoding and decoding codec mode, the first plurality of QP offsets include a first picture-level chroma residual joint encoding and decoding QP offset for a luma quantization parameter and a first slice-level chroma residual joint encoding and decoding QP offset for the luma quantization parameter; and Among them, when the second video area is encoded and decoded in the coding and decoding mode of the chroma residual joint coding and decoding, the second multiple QP offsets include a second picture-level chroma residual joint coding and decoding QP offset for the luminance quantization parameter and a second stripe-level chroma residual joint coding and decoding QP offset for the luminance quantization parameter.

23. The device according to claim 20, wherein: The first corresponding luma block is the same luma block used to derive the chroma QP during dequantization or quantization of the first video region; or The second corresponding luma block is the same luma block used to derive the chroma QP during dequantization or quantization of the second video region.

24. A non-transitory computer-readable storage medium storing instructions that cause a processor to: For conversion between a chroma block of a video and a bitstream of the video, determining whether or how to apply a deblocking filtering process to the boundary of the chroma block based on at least one of first quantization information of a first video region including samples on one side of the boundary of the chroma block or second quantization information of a second video region including samples on the other side of the boundary according to a rule, wherein The variables β and t used in the deblocking filtering process C Based on quantization information being determined, the quantization information is determined without applying a clipping operation to the first quantization information and the second quantization information; as well as performing the converting based on the determining; The rule stipulates that the first quantization information and the second quantization information are determined as follows: Determine third quantization information of a first corresponding luminance block for determining the first quantization information, and fourth quantization information of a second corresponding luminance block for determining the second quantization information, wherein, in a case where the first tree type of the first video area is a dual tree, the first corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the first video area, or in a case where the second tree type of the second video area is a dual tree, the second corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the second video area; Determine the first variable qP based on the third quantization information input1 , and determine a second variable qP based on the fourth quantization information input2 ; Based on using the first variable qP input1 The first table mapping operation as input determines the third variable qP output1 , and based on using the second variable qP input2 The second table mapping operation as input determines the fourth variable qP output2 ; Based on a first codec mode of the first video region, a first plurality of quantization parameter QP offsets at different video unit levels are added to the third variable qP output1 to determine fifth quantization information, and based on a second encoding and decoding mode of the second video region, by adding a second plurality of QP offsets at different video unit levels to the fourth variable qP output2 to determine sixth quantization information, wherein the first plurality of QP offsets are based on whether the first coding mode is a coding mode of chroma residual joint coding and decoding, and the second plurality of QP offsets are based on whether the second coding mode is a coding mode of the chroma residual joint coding and decoding; and The first quantization information is determined based on applying a first clipping operation to the fifth quantization information, and the second quantization information is determined based on applying a second clipping operation to the sixth quantization information, wherein a lower limit of the first clipping operation and the second clipping operation is -QpBdOffset, and an upper limit of the first clipping operation and the second clipping operation is 63, and wherein QpBdOffset indicates a quantization parameter bit depth offset.

25. The non-transitory computer-readable storage medium of claim 24, wherein: The different video unit levels include at least a picture level and a slice level; Wherein, when the first video area is encoded and decoded in the coding and decoding mode of the chroma residual joint coding and decoding, the first plurality of QP offsets include a first picture-level chroma residual joint coding and decoding QP offset for a luma quantization parameter and a first slice-level chroma residual joint coding and decoding QP offset for the luma quantization parameter; and Among them, when the second video area is encoded and decoded in the coding and decoding mode of the chroma residual joint coding and decoding, the second multiple QP offsets include a second picture-level chroma residual joint coding and decoding QP offset for the luminance quantization parameter and a second stripe-level chroma residual joint coding and decoding QP offset for the luminance quantization parameter.

26. The non-transitory computer-readable storage medium of claim 24, wherein: The first corresponding luma block is the same luma block used to derive the chroma QP during dequantization or quantization of the first video region; or The second corresponding luma block is the same luma block used to derive the chroma QP during dequantization or quantization of the second video region.

27. A non-transitory computer-readable recording medium storing a bit stream of a video, the bit stream being generated by a method performed by a video processing device, wherein: The method comprises: For a chroma block of a video and a bitstream of the video, determining whether or how to apply a deblocking filtering process to the boundary of the chroma block based on at least one of first quantization information of a first video region including samples on one side of the boundary of the chroma block or second quantization information of a second video region including samples on the other side of the boundary according to a rule, wherein the variables β and t used in the deblocking filtering process C Based on quantization information being determined, the quantization information being determined without applying a clipping operation to the first quantization information and the second quantization information; and generating the bitstream based on the determination; The rule stipulates that the first quantization information and the second quantization information are determined as follows: Determine third quantization information of a first corresponding luminance block for determining the first quantization information, and fourth quantization information of a second corresponding luminance block for determining the second quantization information, wherein, in a case where the first tree type of the first video area is a dual tree, the first corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the first video area, or in a case where the second tree type of the second video area is a dual tree, the second corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the second video area; Determine the first variable qP based on the third quantization information input1 , and determine a second variable qP based on the fourth quantization information input2 ; Based on using the first variable qP input1 The first table mapping operation as input determines the third variable qP output1 , and based on using the second variable qP input2 The second table mapping operation as input determines the fourth variable qP output2 ; Based on a first codec mode of the first video region, a first plurality of quantization parameter QP offsets at different video unit levels are added to the third variable qP output1 to determine fifth quantization information, and based on a second encoding and decoding mode of the second video region, by adding a second plurality of QP offsets at different video unit levels to the fourth variable qP output2 to determine sixth quantization information, wherein the first plurality of QP offsets are based on whether the first coding mode is a coding mode of chroma residual joint coding and decoding, and the second plurality of QP offsets are based on whether the second coding mode is a coding mode of the chroma residual joint coding and decoding; and The first quantization information is determined based on applying a first clipping operation to the fifth quantization information, and the second quantization information is determined based on applying a second clipping operation to the sixth quantization information, wherein a lower limit of the first clipping operation and the second clipping operation is -QpBdOffset, and an upper limit of the first clipping operation and the second clipping operation is 63, and wherein QpBdOffset indicates a quantization parameter bit depth offset.

28. The non-transitory computer-readable recording medium according to claim 27, wherein: The different video unit levels include at least a picture level and a slice level; Wherein, when the first video area is encoded and decoded in the coding and decoding mode of the chroma residual joint coding and decoding, the first plurality of QP offsets include a first picture-level chroma residual joint coding and decoding QP offset for a luma quantization parameter and a first slice-level chroma residual joint coding and decoding QP offset for the luma quantization parameter; and Among them, when the second video area is encoded and decoded in the coding and decoding mode of the chroma residual joint coding and decoding, the second multiple QP offsets include a second picture-level chroma residual joint coding and decoding QP offset for the luminance quantization parameter and a second stripe-level chroma residual joint coding and decoding QP offset for the luminance quantization parameter.

29. The non-transitory computer-readable recording medium according to claim 27, wherein: The first corresponding luma block is the same luma block used to derive the chroma QP during dequantization or quantization of the first video region; or The second corresponding luma block is the same luma block used to derive the chroma QP during dequantization or quantization of the second video region.

30. A method for storing a bit stream of a video, comprising: For a chroma block of a video and a bitstream of the video, determining whether or how to apply a deblocking filtering process to the boundary of the chroma block based on at least one of first quantization information of a first video region including samples on one side of the boundary of the chroma block or second quantization information of a second video region including samples on the other side of the boundary according to a rule, wherein the variables β and t used in the deblocking filtering process C Based on quantization information being determined, the quantization information is determined without applying a clipping operation to the first quantization information and the second quantization information; generating the bitstream based on the determination; and storing the bitstream in a non-transitory computer-readable recording medium; The rule stipulates that the first quantization information and the second quantization information are determined as follows: determining third quantization information of a first corresponding luminance block used to determine the first quantization information, and fourth quantization information for determining a second corresponding luminance block of the second quantization information, wherein, when the first tree type of the first video region is a dual tree, the first corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the first video region, or when the second tree type of the second video region is a dual tree, the second corresponding luminance block is a luminance codec block covering luminance samples corresponding to a center position of the second video region; Determine the first variable qP based on the third quantization information input1 , and determine a second variable qP based on the fourth quantization information input2 ; Based on using the first variable qP input1 The first table mapping operation as input determines the third variable qP output1 , and based on using the second variable qP input2 The second table mapping operation as input determines the fourth variable qP output2 ; Based on a first codec mode of the first video region, a first plurality of quantization parameter QP offsets at different video unit levels are added to the third variable qP output1 to determine fifth quantization information, and based on a second encoding and decoding mode of the second video region, by adding a second plurality of QP offsets at different video unit levels to the fourth variable qP output2 to determine sixth quantization information, wherein the first plurality of QP offsets are based on whether the first coding mode is a coding mode of chroma residual joint coding and decoding, and the second plurality of QP offsets are based on whether the second coding mode is a coding mode of the chroma residual joint coding and decoding; and The first quantization information is determined based on applying a first clipping operation to the fifth quantization information, and the second quantization information is determined based on applying a second clipping operation to the sixth quantization information, wherein a lower limit of the first clipping operation and the second clipping operation is -QpBdOffset, and an upper limit of the first clipping operation and the second clipping operation is 63, and wherein QpBdOffset indicates a quantization parameter bit depth offset.

31. A video processing device, comprising a processor configured to implement the method according to any one of claims 5-19 and 30.

32. A computer readable medium having codes stored thereon, which, when executed by a processor, cause the processor to implement the method of any one of claims 5-19, 30.

33. A computer-readable medium storing a bitstream generated according to the method of any one of claims 2 to 19 executed by a video processing device.

Citation Information

Patent Citations

  • Chroma slice-level qp offset and deblocking

    CN104205836A

  • Chroma slice level QP offset and deblocking

    JP2015512600A

Cited By

  • Signaling of quantization parameters in video coding

    US12666024B2