Joint coding of chroma residuals and filtering in video processing
Patent Information
- Application Number
- JP2023203628
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-10-14
- Filing Date
- 2023-12-01
- Publication Date
- 2025-03-04
- Estimated Expiration
- 2040-10-13
Smart Images

Figure 0007639106000034 
Figure 0007639106000035 
Figure 0007639106000036
Abstract
Description
[Technical field]
[0001] This patent document relates to video coding techniques, devices and systems. [Background technology]
[0002] Currently, efforts are ongoing to improve the performance of current video codec technologies in order to provide video encoding and decoding schemes that provide better compression ratios or that allow for less complex or parallel implementations. Industry experts have proposed several new video coding tools in recent years, and tests are currently underway to determine their effectiveness. Summary of the Invention
[0003] Devices, systems, and methods related to digital video coding, and in particular to motion vector management, are described. The methods described may be applied to existing video coding standards (e.g., High Efficiency Video Coding (HEVC) or Versatile Video Coding) and future video coding standards or video codecs.
[0004] In one exemplary aspect, the disclosed techniques may be used to provide a method of video processing that includes determining applicability of a deblocking filter process for at least some samples at edges of a chroma block based on a mode of joint coding of a chroma residual of the chroma block for conversion between a chroma block of a video and a bitstream representation of the video. The method also includes performing the conversion based on the determination.
[0005] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including determining, for conversion between a current block of video and a bitstream representation of the video, a chroma quantization parameter to be used in a deblocking filter process applied to at least some samples at edges of the current block based on information of a corresponding transform block of the current block, the method also including performing the conversion based on the determination.
[0006] In another representative aspect, the disclosed techniques may be used to provide a method of video processing that includes performing a conversion between a current block of video and a bitstream representation of the video, where a first chroma quantization parameter used in a deblocking filter process that is applied to at least some samples along edges of the current block during the conversion is based on a second chroma quantization parameter used in the scaling process and a quantization parameter offset associated with the bit depth.
[0007] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including performing a conversion between a video including one or more coding units and a bitstream representation of the video according to a format rule that specifies that chroma quantization parameters are included in the bitstream representation at a coding unit level or a transform unit level according to the format rule.
[0008] In another representative aspect, the disclosed techniques may be used to provide a method of video processing that includes performing a conversion between a block of video and a bitstream representation of the video, the bitstream representation following format rules that specify whether a mode of chroma residual joint coding is applicable to the block is indicated at a coding unit level in the bitstream representation.
[0009] In another representative aspect, the disclosed techniques may be used to provide a method of video processing that includes performing a conversion between a video unit and a coded representation of the video unit, where during the conversion, a deblocking filter is used at boundaries of the video units, whereby processing through a chroma quantization parameter (QP) table is performed on individual chroma QP values, where the chroma QP is used to derive parameters of the deblocking filter.
[0010] In other representative aspects, the disclosed techniques may be used to provide other methods of video processing, including performing a conversion between video units and bitstream representations of the video units, where during the conversion, a deblocking filter is used at boundaries of the video units, whereby a chroma QP offset is used in the deblocking filter, where the chroma QP offset is at the picture / slice / tile / brick / subpicture level.
[0011] In other representative aspects, the disclosed techniques can be used to provide other methods of video processing that include performing a conversion between video units and bitstream representations of the video units, where during the conversion a deblocking filter is used at boundaries of the video units, whereby chroma QP offsets are used in the deblocking filter, and information related to the same luma coding unit is used in the deblocking filter and to derive the chroma QP offsets.
[0012] In other representative aspects, the disclosed techniques may be used to provide other methods of video processing, including performing a conversion between a video unit and a bitstream representation of the video unit, where during the conversion, a deblocking filter is used at boundaries of the video units, whereby a chroma QP offset is used in the deblocking filter, and an indication enabling utilization of the chroma QP offset is signaled in the bitstream representation.
[0013] In other representative aspects, the disclosed techniques may be used to provide other methods of video processing, including performing a conversion between a video unit and a bitstream representation of the video unit, where during the conversion a deblocking filter is used at video unit boundaries, whereby a chroma QP offset is used in the deblocking filter, and the chroma QP offset used in the deblocking filter is the same whether a JCCR coding method is applied at the video unit boundaries or whether a method different from the JCCR coding method is applied at the video unit boundaries.
[0014] In another representative aspect, the disclosed techniques may be used to provide another method of video processing, including performing a conversion between a video unit and a bitstream representation of the video unit, where during the conversion, a deblocking filter is used at boundaries of the video units, whereby a chroma QP offset is used in the deblocking filter, and 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 a P-side boundary to a reference picture of the video unit at a Q-side boundary.
[0015] Further, in a representative aspect, an apparatus in a video system is disclosed having a processor and a temporary memory having instructions that, when executed by the processor, cause the processor to implement any one or more of the disclosed methods.
[0016] Further, in a representative aspect, a video decoding device is disclosed having a processor configured to implement any one or more of the disclosed methods.
[0017] In another representative aspect, a video encoding device is disclosed having a processor configured to implement any one or more of the disclosed methods.
[0018] Also disclosed is a computer program product stored on a non-transitory computer readable medium, the computer program product including program code for performing any one or more of the disclosed methods.
[0019] These and other aspects and features of the disclosed technology are described in further detail in the drawings, specification and claims. [Brief description of the drawings]
[0020] [Figure 1] 1 illustrates an example of an overall processing flow of a deblocking filter process. [Diagram 2] An example of a flow chart for Bs calculation is shown below. [Diagram 3] An example of reference information for Bs calculation at CTU boundaries is shown below. [Figure 4] 1 shows examples of pixels involved in filter on / off decision and strong / weak filter selection. [Diagram 5] 1 shows an example of the overall processing flow of a deblocking filter process in VVC. [Figure 6] 1 illustrates an example of a luma deblocking filter process in VVC. [Figure 7] 1 shows an example of a chroma deblocking filter process in VVC. [Figure 8] 13 shows an example of filter length determination for sub-PU boundaries. [Figure 9A] An example of the center position of a chroma block is shown. [Figure 9B] Another example of the center position of the chroma block is shown. [Figure 10] Examples of blocking on the P side and Q side are shown below. [Figure 11] 13 shows an example of the use of decoded information of a luma block. [Figure 12] FIG. 2 is a block diagram of an example hardware platform for implementing the visual media decoding or encoding techniques described herein. [Figure 13] 1 shows a flowchart of an example of a method for video coding. [Figure 14A] An example of the placement of CC-ALF with respect to another loop filter (diamond shaped filter) is shown. [Figure 14B] An example of CC-ALF placement is shown for a diamond-shaped filter. [Figure 15] 1 is a block diagram illustrating an example video coding system. [Figure 16] FIG. 2 is a block diagram illustrating an encoder in accordance with some embodiments of the present disclosure. [Figure 17] FIG. 2 is a block diagram illustrating a decoder in accordance with some embodiments of the present disclosure. [Figure 18] FIG. 1 is a block diagram of an example video processing system in which the disclosed techniques may be implemented. [Figure 19] 1 is a flowchart representation of a method of video processing in accordance with the present technology. [Figure 20] 4 is a flowchart representation of another method of video processing in accordance with the present technology. [Figure 21] 4 is a flowchart representation of another method of video processing in accordance with the present technology. [Figure 22] 4 is a flowchart representation of another method of video processing in accordance with the present technology. [Figure 23] 11 is a flowchart representation of yet another method of video processing in accordance with the present technology. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0021] [1.Video coding in HEVC / H.265] Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, ISO / IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced H.262 / MPEG-2 Video, H264 / MPEG-4 Advanced Video Coding (AVC), and H.265 / HEVC standards. Since H.262, video coding standards have been based on a hybrid video coding structure where temporal prediction plus transform coding is used. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, many new methods have been adopted by JVET and put into reference software called the Joint Exploration Model (JEM). In April 2018, the JVET was formed between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) to study the VVC standard, which aims to achieve a 50% bitrate reduction compared to HEVC.
[0022] [2.1 Deblocking scheme in HEVC] The deblocking filter process is performed for each CU in the same order as the deblocking process. First, the vertical edges are filtered (horizontal filtering), then the horizontal edges are filtered (vertical filtering). Filtering is applied to 8x8 block boundaries that are determined to be filtered for both luma and chroma components. 4x4 block boundaries are not processed to reduce complexity.
[0023] Figure 1 shows the overall processing flow of the deblocking filter process. The boundary can have three filtering statuses: no filtering, weak filtering, and strong filtering. Each filtering decision is determined by the boundary strength Bs and the thresholds β and tC Based on.
[0024] Three kinds of boundaries can participate in the filtering process: CU boundaries, TU boundaries, and PU boundaries. CU boundaries are the outer edges of a CU and always participate in filtering because they are always TU or PU boundaries as well. When the PU shape is 2N×N (N>4) and the RQT depth is equal to 1, the TU boundaries in the 8×8 block grid and the PU boundaries between each PU in a CU participate in filtering. One exception is that when a PU boundary is within a TU, it is not filtered.
[0025] [2.2.1 Calculation of boundary strength] Generally speaking, the boundary strength (Bs) reflects how strong filtering is needed at the boundary: if Bs is large, strong filtering should be considered.
[0026] Let P and Q be defined as the blocks involved in filtering. P represents the blocks located on the left side (for vertical edges) or on the top (for horizontal edges) of the boundary, and Q represents the blocks located on the right side (for vertical edges) or on the top (for horizontal edges) of the boundary. Figure 2 shows how Bs is calculated based on the intra-coding mode, the presence of non-zero transform coefficients and motion information, reference pictures, the number of motion vectors, and the motion vector differentials.
[0027] Bs is computed in 4x4 blocks, but remapped to an 8x8 grid: the maximum of the two values of Bs corresponding to the eight pixels that make up a line in the 4x4 grid is selected as Bs for the boundary in the 8x8 grid.
[0028] To reduce line buffer memory requirements, for CTU boundaries only, information in every third block (4x4 grid) on the left or top side is reused as shown in FIG.
[0029] [2.1.2 β and t C Decision The thresholds β and t involved in the filter on / off decision, strong and weak filter selection, and weak filtering process. C is the luma quantization parameter of the P and Q blocks, QP P and QP Q are derived based on β and t C The Q used to derive is: Q=((QP P +QP Q +1)>>1)
[0030] The variable β is derived based on Q as shown in Table 1. If Bs is greater than 1, the variable t C is specified as shown in Table 1 using Clip3(0,55,Q+2) as input. Otherwise (Bs is less than or equal to 1), the variable t C is specified as in Table 1 using Q as input. [Table 1]
[0031] [2.1.3. Filter on / off decision for 4 lines] The filter on / off decision is made for the four lines as a unit. Figure 4 shows the pixels involved in the filter on / off decision. The six pixels in the two red boxes of the first four lines are used to decide filter on / off for the four lines. The six pixels in the two red boxes of the second four lines are used to decide filter on / off for the second four lines.
[0032] If dp0+dq0+dp3+dq3<β, filtering for the first four lines is turned on and a strong / weak filter selection process is applied. The variables are derived as follows: dp0=|p 2,0-2×p 1,0 +p 0,0 | dp3=|p 2,3 -2×p 1,3 +p 0,3 | dp4=|p 2,4 -2×p 1,4 +p 0,4 | dp7=|p 2,7 -2×p 1,7 +p 0,7 | dq0=|q 2,0 -2×q 1,0 +q 0,0 | dq3=|q 2,3 -2×q 1,3 +q 0,3 | dq4=|q 2,4 -2×q 1,4 +q 0,4 | dq7=|q 2,7 -2×q 1,7 +q 0,7 |
[0033] If the condition is not satisfied, no filtering is performed on the first four lines. Furthermore, if the condition is satisfied, dEp1 and dEp2 are derived for the weak filtering process. The variable dE is set equal to 1. If dp0+dp3<(β+(β>>1))>>3, then the variable dEp1 is set equal to 1. If dq0+dq3<(β+(β>>1))>>3, then dEq1 is set equal to 1.
[0034] For the second four lines, decisions are made in the same manner as above.
[0035] [2.1.4. Strong / Weak filter selection for 4 lines] After the first four lines are determined to be filtered on in filter on / off decision, if two of the conditions are satisfied, the strong filter is used for filtering the first four lines; otherwise, the weak filter is used for filtering. The pixels involved are the same as those used in filter on / off decision as shown in Figure 4. 1) 2×(dp0+dq0)<(β>>2), |p30-p00|+|q00-q30|<(β>>3) and |p00-q00|<(5×t C +1)>>1 2)2×(dp3+dq3)<(β>>2),|p33-p03|+|q03-q33|<(β>>3) and |p03-q03|<(5×t C +1)>>1
[0036] In the same way, if the following two conditions are met, the strong filter is used for filtering the second four lines, otherwise the weak filter is used for filtering. 1) 2×(dp4+dq4)<(β>>2), |p30-p04|+|q04-q34|<(β>>3) and |p04-q04|<(5×t C +1)>>1 2)2×(dp7+dq7)<(β>>2),|p37-p07|+|q07-q37|<(β>>3) and |p07-q07|<(5×t C +1)>>1
[0037] [2.1.4.1. Strong filtering] For strong filtering, the filtered pixel value is obtained by the following formula: Note that for each of the P and Q blocks, three pixels are modified using four pixels as input. p0'=(p2+2×p1+2×p0+2×q0+q1+4)>>3 q0'=(p1+2×p0+2×q0+2×q1+q2+4)>>3 p1'=(p2+p1+p0+q0+2)>>2 q1'=(p0+q0+q1+q2+2)>>2 p2'=(2×p3+3×p2+p1+p0+q0+4)>>3 q2'=(p0+q0+q1+3×q2+2×q3+4)>>3
[0038] [2.1.4.2. Weak filtering] Let Δ be defined as: Δ=(9×(q0-p0)-3×(q1-p1)+8)>>4 abs(Δ) is t C When it is smaller than ×10, Δ=Clip3(-t C ,t C ,Δ) p0'=Clip1 Y (p0+Δ) q0'=Clip1 Y (q0-Δ) If dEp1 is equal to 1, Δp=Clip3(-(t C >>1),t C >>1,(((p2+p0+1)>>1)-p1+Δ)>>1) p1'=Clip1 Y (p1+Δp) If dEp1 is equal to 1, Δq=Clip3(-(t C >>1),t C >>1,(((q2+q0+1)>>1)-q1-Δ)>>1) q1'=Clip1 Y (q1+Δq)
[0039] Note that for each of the P and Q blocks, a maximum of two pixels are modified using three pixels as input.
[0040] [2.1.4.3. Chroma filtering] Bs for chroma filtering is inherited from luma. If Bs>1 or if there are coded chroma coefficients, chroma filtering is performed. There are no other filtering decisions and only one filter is applied for chroma. No filter selection process for chroma is used. The filtered sample values p0' and q0' are derived as follows: Δ=Clip3(-t C ,t C ,((((q0-p0)<<2)+p1-q1+4)>>3)) p0'=Clip1 C (p0+Δ) q0'=Clip1 C (q0-Δ)
[0041] [2.2 Deblocking scheme in VVC] In VTM6, the deblocking filter processes are almost identical to those in HEVC, with the following changes: A) The filter strength of the deblocking filter depends on the averaged luma level of the reconstructed samples. B) Extending and adapting the deblocking tC table to 10-bit video C) Blocking with a 4x4 grid for luma D) Stronger deblocking filter for luma E) Stronger deblocking filter for chroma F) Deblocking filter for subblock boundaries G) Deblocking decision adapted to smaller differences in motion
[0042] FIG. 5 illustrates a flow chart of the deblocking filter process in VVC for a coding unit.
[0043] [2.2.1. Filter strength depending on reconstructed average luma] In HEVC, the filter strength of the deblocking filter is determined by the averaged quantization parameter qP L The variables β and t C In VTM6, the deblocking filter is controlled by qP according to the reconstructed Sanulno Luma level when the SPS flag of this method is true. L We control the strength of the deblocking filter by adding an offset to . The reconstructed luma level LL is derived as follows: LL=((p 0,0 +p 0,3 +q 0,0 +q 0,3 )>>2) / (1< <bitDepth) (3-1) At this time, the sample value p i,k and q i,k (i=0 3, k=0 and 3) can be derived. Then, LL is used to determine the offset qpOffset based on the threshold signaled in the SPS. Then, qP L is used to derive β and tC: qP L =((Qp Q +Qp P +1)>>1)+qpOffset (3-2) At this time, Qp Q and Qp P are sample q, respectively. 0,0 and p 0,0 represents the quantization parameter of the coding unit including the quantization parameter . In the current VVC, this method is only applied to the luma deblocking process.
[0044] [2.2.2. 4x4 Deblocking Grid for Luma] HEVC uses an 8x8 deblocking grid for both luma and chroma. In VTM6, deblocking on a 4x4 grid for luma boundaries was introduced to address blocking artifacts from rectangular transform geometry. Parallel-friendly luma deblocking on a 4x4 grid is achieved by limiting the number of deblocked samples to one sample on each side of a vertical luma boundary that is 4 or less in width, or one sample on each piece of a horizontal luma boundary that is 4 or less in height.
[0045] [2.2.3. Deriving boundary strength for luma] The detailed boundary strength derivation can be found in Table 2. The conditions in Table 2 are checked in order. [Table 2]
[0046] [2.2.4. Stronger deblocking filter for luma] The proposal uses a bilinear filter when samples on either side of the boundary belong to large blocks, defined as those with width >= 32 for vertical edges and height >= 32 for horizontal edges.
[0047] The bilinear filters are listed below.
[0048] The block boundary samples p i for i=0 to Sp-1 and q j for j=0 to Sq-1 (p and q j follow the definitions in HEVC Deblocking above) are then replaced by linear interpolation as follows: -p i '=(f i ×Middle s,t +(64-f i )×P s +32)>>6), p i ±t C PD i Clipped to -q j '=(g j ×Middle s,t +(64-g j )×Q s +32)>>6), q j ±t C PD j Clipped to At this time, t C PD i and t C PD j The term is the position-dependent clipping described in Section 2.2.5, and g j , f i , Middle s,t , P s and Q s is given by: [Table 3]
[0049] [2.2.5. Deblocking Control for Luma] The deblocking decision process is described in this subsection.
[0050] The wider and stronger luma filter is the filter that is used only if condition 1, condition 2, and condition 3 are all true.
[0051] Condition 1 is the "large block condition." This condition detects whether the P-side and Q-side samples belong to a large block. This is represented by the variables bSidePisLargeBlk and bSideQisLargeBlk, respectively. bSidePisLargeBlk and bSideQisLargeBlk are defined as follows: bSidePisLargeBlk=((belongs to a CU whose edge type is vertical and whose p0 has width >= 32)||(belongs to a CU whose edge type is horizontal and whose p0 has height >= 32))?TRUE:FALSE bSideQisLargeBlk=((belongs to a CU whose edge type is vertical and whose q0 has width >= 32)||(belongs to a CU whose edge type is horizontal and whose q0 has height >= 32))?TRUE:FALSE
[0052] Based on bSidePisLargeBlk and bSideQisLargeBlk, condition 1 is defined as follows: Condition 1 = (bSidePisLargeBlk || bSideQisLargeBlk)?TRUE:FALSE
[0053] Then, if condition 1 is true, condition 2 will be checked as well. First, the following variables are derived: - dp0, dp3, dq0, dq3 are derived first, as seen in HEVC - if(p side is 32 or more) dp0=(dp0+Abs(p 5,0 -2×p 4,0 +p 3,0 )+1)>>1 dp3=(dp3+Abs(p 5,3 -2×p 4,3 +p 3,3 )+1)>>1 - if(q side is 32 or more) dq0=(dq0+Abs(q 5,0 -2×q 4,0 +q 3,0 )+1)>>1 dq3=(dq3+Abs(q 5,3 -2×q 4,3 +q 3,3 )+1)>>1 - dpq0, dpq3, dp, dq, d are then derived as seen in HEVC.
[0054] Condition 2 is then defined as follows: Condition 2=(d<β)?TRUE:FALSE In this case, as shown in Section 2.1.4, d = dp0 + dq0 + dp3 + dq3.
[0055] If conditions 1 and 2 are valid, it is further checked whether any of the blocks use sub-blocks:
number
[0056] Finally, if both conditions 1 and 2 are valid, the proposed deblocking method will check condition 3 (large block strong filter condition), which is defined as follows. For the strong filter condition of condition 3, the following variables are derived: - dpq is derived as seen in HEVC - sp3=Abs(p3-p0) derived as seen in HEVC - if(p side is 32 or more) if(Sp==5) sp3=(sp3+Abs(p5-p3)+1)>>1 else sp3=(sp3+Abs(p77-p3)+1)>>1 - sq33=Abs(q0-q3) derived as seen in HEVC - if(q side is 32 or more) if(Sp==5) sq3=(sq3+Abs(q5-q3)+1)>>1 else sq3=(sq3+Abs(q7-q3)+1)>>1
[0057] As seen in HEVC, StrongFilterCondition = (dpq is smaller than (β>>2), sp3+sq3 is smaller than (3×β>>5), and Abs(p0-q0) is smaller than (5×t C +1)>>Less than 1)?TRUE:FALSE.
[0058] FIG. 6 illustrates a flow chart of the luma deblocking filter process.
[0059] [Strong deblocking filter for chroma] The following strong deblocking filter for chroma is defined: p2'=(3×p3+2×p2+p1+p0+q0+4)>>3 p1'=(2×p3+p2+2×p1+p0+q0+q1+4)>>3 p0'=(p3+p2+p1+2×p0+q0+q1+q2+4)>>3
[0060] The proposed chroma filter performs deblocking on a 4x4 chroma sample grid.
[0061] [2.2.7. Deblocking Control for Chroma] The above chroma filters perform deblocking on an 8x8 chroma sample grid. A chroma strong filter is used on both sides of the block boundary, where the chroma filter is selected when both sides of the chroma edge are 8 or more (units of chroma samples) and the following decisions in three conditions are satisfied: The first condition is related to large block and boundary strength decisions. The second and third conditions are essentially the same as for the HEVC luma decision, which are the on / off decision and the strong filter decision, respectively.
[0062] FIG. 7 illustrates a flow chart of the chroma deblocking filter process.
[0063] [2.2.8. Position-dependent clipping] The proposal also introduces a position-dependent clipping tcPD applied to the output samples of the luma filtering process, which includes a strong and long filter that modifies 7, 5 and 3 samples at the boundaries. Assuming a quantization error distribution, it is proposed to increase the clipping value of samples that are expected to have higher quantization noise and therefore higher deviations of the reconstructed sample values from the true sample values.
[0064] For each P or Q boundary filtered by the proposed asymmetric filter, depending on the outcome of the decision-making process described in 2.2, a position-dependent threshold table is selected from the Tc7 and Tc3 tables, which are fed to the decoder as side information: Tc7={6,5,4,3,2,1,1}; Tc3={6,4,2}; tcPD=(SP==3)?Tc3:Tc7; tcQD=(SQ==3)?Tc3:Tc7;
[0065] When the P or Q boundaries are filtered using short symmetric filters, a lower order position-dependent threshold is applied: Tc3={3,2,1};
[0066] Following the definition of the thresholds, the filtered sample values of p'i and q'j are clipped according to the clipping values of tcP and tcQ: p” i =Clip3(p' i +tcP i ,p' i -tcP i ,p' i ); q” j =Clip3(q' j +tcQ j ,q' j -tcQ j ,q' j ); In this case, p' i and q' j is the filtered sample value, and p” i and q” j is the output sample value after clipping, and tcP i and tcQ j is the clipping threshold derived from the VVC tc parameter, tcPD and tcQD. The Clip3 term is the clipping function defined in VVC.
[0067] [2.2.9. Sub-block deblocking adjustment] To enable parallel-friendly deblocking using both the long filter and sub-block deblocking, the long filter is limited to modify at most five samples on the side that uses sub-block deblocking (AFFINE or ATMVP), as indicated by the luma control for the long filter. Additionally, the sub-block deblocking is adjusted such that sub-block boundaries on an 8×8 grid close to a CU or implicit TU boundary are limited to modify at most two samples on each side.
[0068] The following applies to sub-block boundaries that are not aligned with CU boundaries:
number
[0069] If an edge equal to 0 corresponds to a CU boundary, an edge equal to 2 or equal to orthogonalLength-2 corresponds to a sub-block boundary of 8 samples from the CU boundary, etc. Implicit TU is true when an implicit division of TUs is used. Figure 8 shows a flowchart of the decision process for TU boundaries and sub-PU boundaries.
[0070] Horizontal boundary filtering is limited to Sp=3 for luma, Sp=1 and Sq=1 for chroma when the horizontal boundary aligns with a CTU boundary.
[0071] 2.2.10. Deblocking decisions adapted to smaller differences in motion HEVC enables deblocking of prediction unit boundaries when the difference in at least one motion vector component between blocks on each side of the boundary is equal to or greater than a threshold of one sample. In VTM6, a half-luma sample threshold is introduced to also enable removal of blocking artifacts resulting from boundaries between inter prediction units where the motion vector difference is small.
[0072] [2.3. Combined Inter and Intra Prediction (CIIP)] In VTM6, if a CU is coded in merge mode, if the CU contains at least 64 luma samples (i.e., CU width × CU height is 64 or more), and if both the CU width and CU height are less than 128 luma samples, an additional flag is signaled to indicate whether Combined Inter / Intra Prediction (CIIP) mode is currently applied to the CU. As the name suggests, CIIP prediction combines the inter prediction signal with the intra prediction signal. The inter prediction signal P in CIIP mode inter is derived using the same inter prediction process as applied in the normal merge mode, resulting in an intra prediction signal P intra is derived according to the normal intra prediction process in planar mode. The intra prediction signal and the inter prediction signal are then combined using a weighted average, where the weight values are calculated according to the coding modes of the upper and left neighboring blocks as follows: - Set isIntraTop to 1 if the upper neighboring block is available and is intra-coded, otherwise set isIntraTop to 0. - Set isIntraLeft to 1 if the left neighboring block is available and is intra-coded, set isIntraLeft to 0 otherwise. - If (isIntraLeft+isIntraTop) is equal to 2, then wt is set to 3. - Otherwise, if (isIntraLeft+isIntraTop) is equal to 1, then wt is set to 2. - Otherwise, set wt to 1.
[0073] The CIIP forecast is formed as follows:
number
[0074] [2.4. Chroma QP table design in VTM6.0] In some embodiments, a chroma QP table is used. In some embodiments, a signaling mechanism is used for the chroma QP table, which ensures that it is flexible to give the encoder the opportunity to optimize the table for SDR and HDR content. It supports signaling tables separately for Cb and Cr components. The proposed mechanism signals the chroma QP table as a piece-wise linear function.
[0075] [2.5. Conversion Skip (TS)] As seen in HEVC, the residual of a block may be coded by transform skip mode. To avoid redundancy in syntax coding, the transform skip flag is not signaled unless the CU-level MTS_CU_flag is equal to zero. The block size information of the transform skip is the same as that of MTS in JEM4. It indicates that the transform skip is applicable for a CU if the width and height of the block are less than or equal to 32. Note that the implicit MTS transform is set to DCT2 if LFNST or MIP is currently activated for the CU. Also, the implicit MTS may still be enabled if MTS is enabled for an inter-coded block.
[0076] Furthermore, for a transform skip block, the maximum allowed quantization parameter (QP) is defined as 6×(internalBitDepth−inputBitDepth)+4.
[0077] [2.6. Joint Coding of Chroma Residuals (JCCR)] In some embodiments, the chroma residual is jointly coded. The use (activation) of the joint chroma coding mode is indicated by a TU-level flag tu_joint_cbcr_residual_flag, and the selected mode is implicitly indicated by the chroma CBF. The flag tu_joint_cbcr_residual_flag is present if either or both chroma CBFs for the TU are equal to 1. In the PPS and slice header, a chroma QP offset value is signaled for the joint chroma residual coding mode to distinguish it from the regular chroma QP offset signaled for the regular chroma residual coding mode. These chroma QP offset values are used to derive a chroma QP value for blocks coded using the joint chroma residual coding mode. If the corresponding joint chroma coding mode (mode 2 in Table 3) is active for a TU, this chroma QP offset is added to the applied luma-derived chroma QP during quantization and decoding of that TU. For other modes (modes 1 and 3 in Table 3), the chroma QP is derived in the same way as for conventional Cb or Cr blocks. The reconstruction process of chroma residuals (resCb and resCr) from transmitted transform blocks is shown in Table 3. When this mode is activated, one single joint chroma residual block (resJointC[x][y] in Table 3) is signaled, and the residual block of Cb (resCb) and the residual block of Cr (resCr) are derived taking into account information such as tu_cbf_cb, tu_cbf_cr, and Csign (which is the sign value specified in the slice header).
[0078] At the encoder side, the joint chrominance components are derived as described below. Depending on the mode (listed in the table above), resJointC{1,2} is generated by the encoder as follows: ● When the mode is equal to 2 (single residual with reconstruction Cb=Cr, Cr=CSign×C), the joint residual is resJointC[x][y]=(resCb[x][y]+CSign×resCr[x][y]) / 2 is determined in accordance with ● Otherwise, if the mode is equal to 1 (single residual with reconstruction Cb=Cr, Cr=(CSign×C) / 2), the joint residual is resJointC[x][y]=(4×resCb[x][y]+2×CSign×resCr[x][y]) / 5 is determined in accordance with In all other cases (mode equal to 3, i.e., a single residual with reconstruction Cb=Cr, Cb=(CSign×C) / 2), the joint residual is resJointC[x][y]=(4×resCr[x][y]+2×CSign×resCb[x][y]) / 5 is determined in accordance with [Table 4]
[0079] Different QPs are used for the above three modes: for mode 2, the QP offset signaled in the PPS for JCCR coded blocks is applied, while for the remaining two modes, it is not applied and instead the QP offset signaled in the PPS for non-JCCR coded blocks is applied.
[0080] The corresponding specifications are as follows: [Table 5] TIFF0007639106000009.tif51156
[0081] [2.7. Cross-component adaptive loop filter (CC-ALF)] Figure 14A shows the placement of the CC-ALF (Cross-Component Adaptive Loop Filter) with respect to the other loop filters. The CC-ALF works by applying a linear diamond-shaped filter (Figure 14B) to the luma channel for each chroma component. This can be expressed as follows:
number
[0082] Key features of CC-ALF include: - Luma position at the center of the support region (x C ,y C ) is calculated based on the spatial scaling factor between the luma and chroma planes. - All filter coefficients are transmitted in the APS and have an 8-bit dynamic range. - The APS may be referenced in the slice header. - The CC-ALF coefficients used for each chroma component of a slice are also stored in a buffer corresponding to the temporal sublayer. Reuse of these sets of temporal sublayer filter coefficients is facilitated using a slice-level flag. - The application of the CC-ALF filter is controlled in variable blocks and is informed by a context-coded flag received for each block of samples. The block size is received at slice level per chroma component along with the CC-ALF enable flag. - Border padding for the horizontal virtual border uses repetition, for the remaining borders the same type of padding is used as in regular ALF.
[0083] 3. Shortcomings of Existing Implementations DMVR and BIO do not use the original signal during motion vector refinement, which may result in coding blocks with inaccurate motion information. Also, DMVR and BIO sometimes use fractional motion vectors after motion refinement, while screen video usually has integer motion vectors, which makes the current motion information more inaccurate and worsens coding performance.
[0084] 1. The interaction between chroma QP tables and chroma deblocking can be problematic. For example, the chroma QP table should be applied to individual QPs and not to a weighted sum of QPs. 2. The logic of the luma deblocking filtering process is complicated in hardware design. 3. The logic of derivation of boundary strength is too complicated in both software and hardware design. 4. In the BS decision process, JCCR is treated separately from blocks coded without applying JCCT. However, JCCR is just a special way of coding the residual. Therefore, such a design may introduce additional complexity without any clear advantage. 5. Chroma Edge design, Qp Q and Qp P is the sample q 0,0 and p 0,0 Qp of coding units including coding blocks each including YIn the quantization / dequantization process, however, the QP of a chroma sample is derived from the QP of the luma block that covers the corresponding luma sample at the center position of the current chroma CU. Different positions of the luma block may result in different QPs when the dual tree is enabled. Thus, in the chroma deblocking process, an inappropriate QP may be used for the filter decision. Such misalignment may result in visual artifacts. An example is shown in Fig. 9A-B. Fig. 9A shows the corresponding CTB partitioning of a luma block, and Fig. 9B shows the chroma CTB partitioning under the dual tree. CU C When determining the QP for a chroma block represented by 1, C The center position of CU 1 is derived first. Then, C The corresponding luma sample at the center position of 1 is identified, and the luma CU that covers the corresponding luma sample, i.e., CU Y The luma QP associated with 3 is then C However, when making filter decisions for the three samples shown (solid circles), the QP of the CU that covers the corresponding three samples is selected. Thus, for the first, second, and third chroma samples (see FIG. 9B), the QP of the CU Y 2. CU Y 3, and C.U. Y A QP of 4 is utilized, respectively, i.e., chroma samples within the same CU may use different QPs for the filter decision, which may result in an inappropriate decision. 6. A different picture level QP offset (i.e., pps_joint_cbcr_qp_offset) is applied to JCCR coded blocks, which is different from the Cb / Cr picture level offsets (e.g., pps_cb_qp_offset and pps_cr_qp_offset) applied to non-JCCR coded blocks. However, only the offsets of non-JCCR coded blocks are utilized in the chroma deblocking filter decision process. Lack of consideration of the coded mode may result in erroneous filter decisions. 7. TS coded and non-TS coded blocks use different QPs in the inverse quantization process, which may also be taken into account in the deblocking process. 8. Different QPs are used in the scaling process (quantization / dequantization) for JCCR coded blocks with different modes. Such a design is inconsistent. 9. Chroma deblocking of Cb / Cr can be integrated for parallel design.
[0085] 4. Example Techniques and Embodiments The detailed embodiments described below should be regarded as examples for illustrating the general concept. These embodiments should not be construed in a narrow sense. Moreover, these embodiments can be combined in any manner.
[0086] The methods described below may be applicable to other decoder motion information derivations in addition to DMVR and BIO, which are described below.
[0087] 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 (M is P or Q) side. Abs represents the operation of obtaining the absolute value of the input, and "&&" and "||" represent the logical operations AND and OR. With reference to Figure 10, P may represent a sample on the P side, and Q may represent a sample on the Q side. The blocks on the P side and the Q side may represent the blocks marked by dashed lines.
[0088] Regarding Chroma QP in Deblocking 1. When a chroma QP table is used to derive parameters that control chroma deblocking (eg, in the chroma block edge determination process), the chroma QP offset may be applied after applying the chroma QP table. In one example, a chroma QP offset may be added to the value calculated by the chroma QP table. b. Alternatively, the chroma QP offset may not be considered an input to the chroma QP table. c. In one example, the chroma QP offset may be a picture-level or other video unit-level (slice / tile / brick / subpicture) chroma quantization parameter offset (eg, pps_cb_qp_offset and pps_cr_qp_offset herein). 2. QP clipping may not be applied to the input of the chroma QP offset. 3. It is proposed that the deblocking process of the chroma components can be based on a mapped chroma QP (by a chroma QP table) on each side. In one example, chroma deblocking parameters (e.g., β and t C It is proposed that ) may be based on a QP derived from the luma QP on each side. b. In one example, the chroma deblocking parameters may depend on a chroma QP table value using QpP as a table index, where QpP is the luma QP value on the P side. c. In one example, the chroma deblocking parameters may depend on a chroma QP table value using QpQ as a table index, where QpQ is the luma QP value on the Q side. 4. It is proposed that the deblocking process of the chroma components may be based on the QP applied to the quantization / dequantization of the chroma blocks. In one example, the QP of the deblocking process is equal to the QP of the inverse quantization. 5. It is proposed to consider picture / slice / tile / brick / sub-picture level quantization parameter offsets used for different coding methods in the deblocking filter decision process. In one example, the selection of picture / slice / tile / brick / sub-picture level quantization parameter offsets for filter decisions (eg, chroma edge decisions in a deblocking filter process) may depend on the per-side coding method. b. In one example, a filtering process (eg, a chroma edge determination process) that needs to use the quantization parameters of a chroma block may depend on whether the block uses JCCR. i. Alternatively, in addition, the picture / slice level QP offset (eg, pps_joint_cbcr_qp_offset) applied to JCCR coded blocks may be further considered in the deblocking filter process. ii. In one example, T C and cQpPicOffset, which is used to determine the setting of β, may be set to pps_joint_cbcr_qp_offset instead of pps_cb_qp_offset or pps_cr_qp_offset in certain conditions: 1. In one example, if any block on the P or Q side uses JCCR. 2. In one example, both blocks on the P or Q side use JCCR. iii. Alternatively, the filtering process may also depend on the mode of the JCCR (eg, whether the mode is equal to 2 or not). 6. Chroma filtering processes that need access to decoded information of luma blocks (e.g., chroma edge decision processes) may utilize information related to the same luma coding blocks used to derive chroma QPs in the quantization / dequantization processes. a. In one example, a chroma filtering process (eg, a chroma edge determination process) that needs to use the quantization parameters of a luma block may utilize the luma coding unit that covers the corresponding luma sample at the center position of the current chroma CU. b. An example is shown in Figure 9A-B. CT Y The three decoded pieces of information can be used for filtering decisions of the three chroma samples (first, second and third) of FIG. 9B. 7. The chroma filtering process (eg, chroma edge determination process) may depend on the quantization parameter applied to the chroma block scaling process (eg, quantization / dequantization). In one example, β and T C The QP used to derive Ĥ may depend on the QP applied to the scaling process of the chroma block. b. Alternatively, the QP used in the scaling process of a chroma block may also take into account a chroma CU-level QP offset. 8. Whether the above bullet should be invoked may depend on whether the sample being filtered is in a block that is on the P or Q side. a. For example, whether to use information of a luma coding unit that covers a corresponding luma sample of a current chroma sample or information of a luma coding block that covers a corresponding luma sample at a center position of the chroma coding block that covers the current chroma sample may depend on the block position. i. In one example, if the current chroma sample is within a block on the Q side, the QP information of the luma coding block covering the corresponding luma sample at the center position of the chroma coding block covering the current chroma sample may be used. ii. In one example, if the current chroma sample is within a block on the P side, the QP information of the luma coding block that covers the chroma sample's corresponding luma sample may be used. 9. The chroma QP used for deblocking may depend on the information of the corresponding transform block. In one example, the chroma QP for deblocking on the P-side may depend on the mode of the transform block on the P-side. i. In one example, the chroma QP for deblocking on the P-side may depend on whether the transform blocks on the P-side are coded with JCCR. ii. In one example, the chroma QP for deblocking on the P-side may depend on whether the transform blocks on the P-side are coded in joint_cb_cr mode and the mode of JCCR is equal to 2. b. In one example, the chroma QP for deblocking at the Q-side may depend on the transform blocks at the Q-side. i. In one example, the chroma QP for deblocking at the Q-side may depend on whether the transform blocks at the Q-side are coded using JCCR. ii. In one example, the chroma QP for deblocking at the Q-side may depend on whether the transform blocks at the Q-side are coded by applying JCCR and the mode of JCCR is equal to 2. 10. Chroma QP signaling may be in the coding unit. In one example, if the coding unit size is larger than the maximum transform block size, i.e., maxTB, the chroma QP may be signaled at the CU level. Alternatively, it may be signaled at the TU level. In one example, when the coding unit size is larger than the size of the VPDU, the chroma QP may be signaled at the CU level. Alternatively, it may be signaled at the TU level. 11. Whether a block is a joint_cb_cr mode block may be indicated at the coding unit level. a. In one example, whether a transform block is a joint_cb_cr mode block may be inherited from information of the coding unit that contains the transform block. 12. The chroma QP used in deblocking may depend on the chroma QP used in the scaling process minus a QP offset due to bit depth. In one example, the chroma QP used for deblocking on the P side is the JCCR chroma QP used in the scaling process, i.e., Qp' when TuCResMode[xTb][yTb] is equal to 2. CbCr, In this case, (xTb, yTb) is the first sample on the P side, that is, p 0,0 represents a transform blocking including b. In one example, the chroma QP used for deblocking on the P side is the Cb chroma QP used in the scaling process, i.e., Qp' when TuCResMode[xTb][yTb] is equal to 2. Cb, In this case, (xTb, yTb) is the first sample on the P side, that is, p 0,0 represents a transform blocking including c. In one example, the chroma QP used for deblocking on the P side is the Cr chroma QP used in the scaling process, i.e., Qp' when TuCResMode[xTb][yTb] is equal to 2. Cr, In this case, (xTb, yTb) is the first sample on the P side, that is, p 0,0 represents a transform blocking including d. In one example, the chroma QP used for deblocking on the Q side is the JCCR chroma QP used in the scaling process, i.e., Qp' when TuCResMode[xTb][yTb] is equal to 2. CbCr, is set to the value obtained by subtracting QpBdOffsetC from xTb. In this case, (xTb, yTb) is the last sample on the Q side, i.e., q 0,0 represents a transform blocking including e. In one example, the chroma QP used for deblocking on the Q side is the Cb chroma QP used in the scaling process, i.e., Qp' when TuCResMode[xTb][yTb] is equal to 2. Cb, is set to the value obtained by subtracting QpBdOffsetC from xTb. In this case, (xTb, yTb) is the last sample on the Q side, i.e., q 0,0 represents a transform blocking including 13. In one example, the chroma QP used for deblocking on the Q side is the Cr chroma QP used in the scaling process, i.e., Qp' when TuCResMode[xTb][yTb] is equal to 2. Cr, is set to the value obtained by subtracting QpBdOffsetC from xTb. In this case, (xTb, yTb) is the last sample on the Q side, i.e., q 0,0 represents a transform blocking including
[0089] Regarding QP settings 14. It is proposed to signal an indication to enable block-level chroma QP offsets at slice / tile / brick / subpicture level (e.g., slice_cu_chroma_qp_offset_enabled_flag). Alternatively, the signaling of such an indication may be conditionally notified. i. In one example, it may be notified under the condition of the JCCR enable flag. ii. In one example, it may be signaled under the condition of a block-level chroma QP offset enable flag at the picture level. iii. Alternatively, such indications may be derived instead. b. In one example, slice_cu_chroma_qp_offset_enabled may be signaled only if the PPS flag for the chroma QP offset (eg, pps_cu_chroma_qp_offset_enabled_flag) is true. c. In one example, slice_cu_chroma_qp_offset_enabled_flag may be inferred to be false only if the PPS flag for the chroma QP offset (e.g., pps_cu_chroma_qp_offset_enabled_flag) is false. d. In one example, whether to use a chroma QP offset for a block may be based on a chroma QP offset flag at the PPS level and / or slice level. 15. The same QP derivation method is used in the scaling process (quantization / dequantization) for blocks JCCR coded in different modes. In one example, for JCCR with modes 1 and 3, the QP depends on the QP offset (e.g., pps_cbcr_qp_offset, slice_cbcr_qp_offset) signaled at the picture / slice level.
[0090] Filtering Procedure 16. Deblocking for all color components except the first color component may follow the deblocking process of the first color component. 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. b. In one example, if 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. c. In one example, when the color format is 4:2:2, the deblocking process of the second and third components may follow the vertical deblocking process of the first component. d. In the above examples, the deblocking process may refer to a deblocking decision process and / or a deblocking filtering process. 17. The method for calculating the gradients used in the deblocking filter process may depend on the coded mode information and / or the quantization parameters. In one example, the slope calculation may only consider the slope of the side, where the samples on that side are not losslessly coded. b. In one example, if both sides are lossless or near-lossless coded (eg, the quantization parameter is equal to 4), the slope may be set directly to 0. Alternatively, if both sides are lossless or near-lossless coded (eg, the quantization parameter is equal to 4), then the boundary strength (eg, BS) may be set to 0. c. In one example, if samples at the P side are losslessly coded and samples at the Q side are lossy coded, the gradients used in the deblocking on / off decision and / or the strong filter on / off decision may only include the gradients of samples at the Q side, and vice versa. i. Alternatively, the slope of one side may also be scaled by N. 1. N is an integer (e.g., 2) and may depend on: a. Video content (e.g., screen content or natural content) b. Messages reported in DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Largest Coding Unit (LCU) / Coding Unit (CU) / LCU Row / Group of LCU / TU / PU Block / Video Coding Unit c. CU / PU / TU / Block / Video Coding Unit Location d. Coding mode for blocks containing samples along edges e. The transformation matrix applied to the block containing the edge samples. f. Block dimensions / block shape of the current block and / or its adjacent blocks g. Indication of color format (e.g. 4:2:0, 4:4:4, RGB or YUV) h. Coding tree structure (e.g., dual tree or single tree) i. Slice / Tile Group Type and / or Picture Type j. Color components (e.g., may only apply to Cb or Cr) k.Time Layer ID l. Standard profile / level / tier m. Alternatively, N may be signaled to the decoder.
[0091] On the derivation of boundary strength 18. It is proposed to treat JCCR coded blocks as non-JCCR coded blocks in the boundary strength determination process. In one example, the determination of boundary strength (BS) may be independent of the validation of the use of JCCR for two blocks on the P and Q sides. b. In one example, the boundary strength (BS) of a block may be determined regardless of whether the block is JCCR coded or not. 19. It is proposed to derive the boundary strength (BS) without comparing the number of reference pictures and / or MVs associated with a block on the P side with the reference pictures of the block on the Q side. In one example, the deblocking filter may be disabled even if two blocks have different reference pictures. b. In one example, the deblocking filter may be disabled even if two blocks have different numbers of MVs (eg, one is mono-predicted and the other is bi-predicted). c. In one example, the value of BS may be set to 1 if one or all reference picture motion vector differences between blocks at the P side and the Q side are greater than or equal to a threshold Th. i. Alternatively, the value of BS may also be set to 0 if one or all reference picture motion vector differentials between blocks at the P side and the Q side are less than or equal to a threshold Th. d. In one example, the difference between the motion vectors of two blocks is greater than a threshold Th may be defined as (Abs(MVP[0].x-MVQ[0].x)>Th||Abs(MVP[0].y-MVQ[0].y)>Th||Abs(MVP[1].x-MVQ[1].x)>Th||Abs(MVP[1].y-MVQ[1].y)>Th). ii. Alternatively, the difference between the motion vectors of two blocks is greater than a 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). iii. Alternatively, in one example, the difference between the motion vectors of two blocks is greater than a threshold Th may be defined as (Abs(MVP[0].x-MVQ[0].x)>Th||Abs(MVP[0].y-MVQ[0].y)>Th&& Abs(MVP[1].x-MVQ[1].x)>Th||Abs(MVP[1].y-MVQ[1].y)>Th). iv. Alternatively, in one example, the difference between the motion vectors of two blocks is greater than a threshold Th may be defined as (Abs(MVP[0].x-MVQ[0].x)>Th&& Abs(MVP[0].y-MVQ[0].y)>Th||Abs(MVP[1].x-MVQ[1].x)>Th&& Abs(MVP[1].y-MVQ[1].y)>Th). e. In one example, a block that does not have a motion vector in a given list may be treated as having a zero motion vector in that list. f. In the above example, Th is an integer (e.g., 4, 8, or 16). g. In the above example, Th may depend on: v. Video content (e.g., screen content or natural content) vi. Messages reported in DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Largest Coding Unit (LCU) / Coding Unit (CU) / LCU Row / Group of LCU / TU / PU Block / Video Coding Unit vii. CU / PU / TU / Block / Video Coding Unit Location viii. Coding modes for blocks containing edge samples ix. The transformation matrix applied to the block containing the edge samples x. Block dimensions / block shape of the current block and / or its adjacent blocks xi. Indicate color format (e.g. 4:2:0, 4:4:4, RGB or YUV) xii. Coding tree structure (e.g., dual tree or single tree) xiii. Slice / Tile Group Type and / or Picture Type xiv. Color components (e.g., may only apply to Cb or Cr) xv. Time Layer ID xvi. Standard Profiles / Levels / Tiers xvii. Alternatively, Th may be signalled to the decoder. h. The above examples may apply under certain conditions. xviii. In one example, the condition is that blkP and blkQ are not coded in intra mode. xix. In one example, the condition is that blkP and blkQ have zero coefficients for the luma component. xx. In one example, the condition is that blkP and blkQ are not coded in CPPI mode. xxi. In one example, a condition is that blkP and blkQ are coded in the same prediction mode (eg, IBC or inter).
[0092] Regarding the luma deblocking filtering process 20. Deblocking may use different QPs for TS and non-TS coded blocks. a. In one example, a TS QP may be used for TS coded blocks, while a non-TS QP may be used for non-TS coded blocks. 21. The luma filtering process (eg, the luma edge determination process) may depend on the quantization parameter applied to the luma block scaling process. In one example, β and T C The QP used to derive QpOrimeTsMin may depend on the clipping range of the transform skip, for example as indicated by QpOrimeTsMin. 22. It is proposed that the same slope calculation be used for the larger and smaller block boundaries. In one example, the deblocking filter on / off decision described in Section 2.1.4 may also be applied for large block boundaries. i. In one example, the threshold β in the decision may be changed for large block boundaries. 1. In one example, β may depend on the quantization parameter. 2. In one example, the β used for the deblocking filter on / off decision for large block boundaries will be smaller than that for smaller block boundaries. a. Alternatively, in one example, the β used in the deblocking filter on / off decision for large block boundaries is larger than that for smaller block boundaries. b. Alternatively, in one example, the β used in the deblocking filter on / off decision for the larger block boundaries is made equal to that for the smaller block boundaries. 3. In one example, β is an integer and may be based on the following: a. Video content (e.g., screen content or natural content) b. Messages reported in DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Largest Coding Unit (LCU) / Coding Unit (CU) / LCU Row / Group of LCU / TU / PU Block / Video Coding Unit c. CU / PU / TU / Block / Video Coding Unit Location d. Coding mode for blocks containing samples along edges e. The transformation matrix applied to the block containing the edge samples. f. Block dimensions of the current block and / or its adjacent blocks g. Block shapes of the current block and / or its adjacent blocks h. Indication of color format (e.g. 4:2:0, 4:4:4, RGB or YUV) i. Coding tree structure (e.g., dual tree or single tree) j. Slice / tile group type and / or picture type k. Color components (e.g., may only apply to Cb or Cr) l.Time Layer ID m. Standard Profile / Level / Tier Alternatively, β may be signaled to the decoder.
[0093] Regarding the scaling matrix (inverse quantization matrix) 23. Values for particular positions in the quantization matrix may be set to constants. a. In one example, the location may be a (x,y) location, where x and y are two integer variables (e.g., x=y=0) and (x,y) are coordinates relative to TU / TB / PU / PB / CU / CB. i. In one example, the location may be the location of a DC. b. In one example, the constant value may be 16. c. In one example, for these locations, signaling of matrix values may not be utilized. 24. A constraint may be gusseted that the mean / weighted average of some positions in the quantization matrix may be a constant. In one example, the deblocking process may depend on a constant value. b. In one example, the constant value may be indicated in the DPS / VPS / SPS / PPS / slice / picture / tile / brick header. 25. One or more indications may be signaled in a picture header to signal the scaling matrix selected for the picture associated with the picture header.
[0094] On common component adaptive loop filters (CCALF) 26. A Cross Component Adaptive Loop Filter (CCALF) may be applied before any loop filtering process in the decoder. In one example, CCALF may be applied before the deblocking process at the decoder. b. In one example, CCALF may be applied before SAO at the decoder. c. In one example, CCALF may be applied before ALF at the decoder. d. Alternatively, the order of the different filters (eg, CCALF, ALF, SAO, deblocking filter) may not be fixed. i. In one example, the invocation of CCALF may be before one filtering process for one video unit or after another filtering process for another video unit. ii. In one example, a video unit may be a CTU / CTB / slice / tile / brick / picture / sequence. e. Alternatively, an indication of the order of different filters (e.g., CCALF, ALF, SAO, deblocking filters) may be signaled or derived on the fly. i. Alternatively, the indication to activate the CCALF may be signaled or derived on-the-fly. f. Explicit instructions (e.g., notification from the encoder to the decoder) or implicit instructions (e.g., derivation at both the encoder and decoder) of how to control CCALF may be separated for different color components (e.g., Cb and Cr). g. Whether and / or how CCALF should be applied may depend on the color format (e.g., RGB and YCbCr) and / or the color sampling format (e.g., 4:2:0, 4:2:2, and 4:4:4) and / or the color downsampling position or phase.
[0095] Regarding Chroma QP Offset List 27. Signaling and / or selection of chroma QP offset list may depend on coded prediction mode / picture type / slice or tile or brick type. h. Chroma QP offset lists, eg, cb_qp_offset_list[i], cr_qp_offset_list[i], and joint_cbcr_qp_offset_list[i], may be different for different coding modes. i. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in intra mode. j. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in inter mode. k. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in palette mode. l. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in IBC mode. m. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in return skip mode. n. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in BDPCM mode. o. In one example, whether and how to apply the chroma QP offset list may depend on whether the current block is coded in transform_quant_skip or lossless mode.
[0096] Regarding chroma deblocking at CTU boundaries 28. The method of selecting the QP used in the deblocking filter process (eg, using the corresponding luma or chroma dequantized QP) may depend on the location of the sample relative to the CTU / CTB / VPDU boundary. 29. The method of selecting the QP to be utilized in the deblocking filter process (e.g., using the corresponding luma or chroma dequantized QP) may depend on the color format (e.g., RGB or YCbCr) and / or the color sampling format (e.g., 4:2:0, 4:2:2, and 4:4:4) and / or the color downsampling position or phase. 30. For edges at CTU boundaries, deblocking may be based on the luma QP of the corresponding block. p. In one example, for horizontal edges at CTU boundaries, deblocking may be based on the luma QP of the corresponding block. i. In one example, the deblocking may be based on the luma QP of the corresponding block on the P side. ii. In one example, the deblocking may be based on the luma QP of the corresponding block on the Q side. q. In one example, for vertical edges at CTU boundaries, deblocking may be based on the luma QP of the corresponding block. i. In one example, the deblocking may be based on the luma QP of the corresponding block on the P side. ii. In one example, the deblocking may be based on the luma QP of the corresponding block on the Q side. r. In one example, for edges at CTU boundaries, deblocking may be based on luma QP on the P side and chroma QP on the Q side. s. In one example, for edges at CTU boundaries, deblocking may be based on luma QP on the Q side and chroma QP on the P side. t. In this bulletin, "CTU boundary" may refer to a specific CTU boundary, such as an upper CTU boundary or a lower CTU boundary. 31. For horizontal edges at CTU boundaries, deblocking may be based on a function of chroma QP on the P side. u. In one example, deblocking may be based on an average function of chroma QP on the P side. i. In one example, the function may be based on the average of the chroma QP for every 8 luma samples. ii. In one example, the function may be based on the average of the chroma QP for every 16 luma samples. iii. In one example, the function may be based on the average of the chroma QP for every 32 luma samples. iv. In one example, the function may be based on the average of the chroma QP for every 64 luma samples. v. In one example, the function may be based on an average of the chroma QP per CTU. v. In one example, deblocking may be based on a maximum function of chroma QP on the P side. i. In one example, the function may be based on the maximum value of chroma QP for every 8 luma samples. ii. In one example, the function may be based on the maximum value of chroma QP per 16 luma samples. iii. In one example, the function may be based on the maximum value of chroma QP per 32 luma samples. iv. In one example, the function may be based on the maximum value of chroma QP per 64 luma samples. v. In one example, the function may be based on a maximum value of chroma QP per CTU. In one example, the deblocking may be based on a minimum function of the chroma QP on the P side. i. In one example, the function may be based on the minimum of chroma QP for every 8 luma samples. ii. In one example, the function may be based on the minimum of chroma QP per 16 luma samples. iii. In one example, the function may be based on the minimum of chroma QP per 32 luma samples. iv. In one example, the function may be based on the minimum of chroma QP per 64 luma samples. v. In one example, the function may be based on a minimum value of chroma QP per CTU. x. In one example, deblocking may be based on a subsampling function of the chroma QP on the P side. i. In one example, the function may be based on the chroma QP of the kth chroma sample for every 8 luma samples. 1. In one example, the kth sample may be the first sample. 2. In one example, the kth sample may be the last sample. 3. In one example, the kth sample may be the third sample. 4. In one example, the kth sample may be the 4th sample. ii. In one example, the function may be based on the chroma QP of the kth chroma sample every 16 luma samples. 1. In one example, the kth sample may be the first sample. 2. In one example, the kth sample may be the last sample. 3. In one example, the kth sample may be the 7th sample. 4. In one example, the kth sample may be the 8th sample. iii. In one example, the function may be based on the chroma QP of the kth chroma sample every 32 luma samples. 1. In one example, the kth sample may be the first sample. 2. In one example, the kth sample may be the last sample. 3. In one example, the kth sample may be the 15th sample. 4. In one example, the kth sample may be the 16th sample. iv. In one example, the function may be based on the chroma QP of the kth chroma sample every 64 luma samples. 1. In one example, the kth sample may be the first sample. 2. In one example, the kth sample may be the last sample. 3. In one example, the kth sample may be the 31st sample. 4. In one example, the kth sample may be the 32nd sample. v. In one example, the function may be based on the chroma QP of the kth chroma sample for each CTU. y. Alternatively, the above items may be applied to the chroma QP on the Q side for the deblocking process. 32. It may be constrained that the QP of a chroma component may be the same for a chroma row segment having length 4×m starting at (4×m×x, 2y) relative to the top-left of the picture, where x and y are non-negative integers and m is a positive integer. z. In one example, m may be equal to 1. In one example, the width of the quantization group of chroma components should be greater than or equal to 4xm. 33. It may be constrained that the QP of a chroma component may be the same for a chroma column segment having length 4×n starting at (2×x, 4×n×y) relative to the top-left of the picture, where x and y are non-negative integers and n is a positive integer. bb. In one example, n may be equal to 1. cc. In one example, the height of the quantization group of a chroma component should be greater than or equal to 4xn.
[0097] Regarding the chroma deblocking filtering process 34. A first syntax element that controls the use of coding tool X may be signaled in a first video unit (e.g., a picture header) depending on a second syntax element signaled in a second video unit (e.g., an SPS or PPS, or a VPS). In one example, a first syntax element is signaled only if a second syntax element indicates that coding tool X is enabled. b. In one example, X is a Bi-Directional Optical Flow (BDOF). c. In one example, X is the Prediction Refinement Optical Flow (PROF). d. In one example, X is the Decode-side Motion Vector Refinement (DMVR). e. In one example, notification of use of coding tool X may be under a condition check of slice type (eg, P or B slice, non-I slice).
[0098] Regarding the chroma deblocking filtering process 35. The deblocking filter decision processes for the two chroma blocks may be merged together to be called only once, and the decision is applied to the two chroma blocks. b. In one example, the decision of whether to run a deblocking filter may be the same for the Cb and Cr components. c. In one example, if it is determined that a deblocking filter is applied, the decision of whether to perform a stronger deblocking filter may be the same for the Cb and Cr components. d. In one example, the deblocking condition and the strong filter on / off condition described in Section 2.2.7 may be checked only once, but it may be modified to check the information of both chroma components. i. In one example, the average of the slopes of the Cb and Cr components may be used in the above determination for both the Cb and Cr components. ii. In one example, a stronger filter of chroma may be performed only if the strong filter condition is satisfied for both the Cb and Cr components. 1. Alternatively, in one example, the chroma weak filter may be performed only if the strong filter condition is not satisfied for at least one chroma component.
[0099] Summary 36. The above suggested methods may be applied under certain conditions. In one example, the condition is that the color format is 4:2:0 and / or 4:2:2. i. Alternatively, further, for 4:4:4 color format, the method of applying the deblocking filter to the two color chroma components may follow the current design. b. In one example, the indication of use of the above method may be signaled at a sequence / picture / slice / tile / brick / video region level, such as SPS / PPS / picture header / slice header. c. In one example, the use of the above method may depend on: i. Video content (e.g., screen content or natural content) ii. Messages reported in DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Largest Coding Unit (LCU) / Coding Unit (CU) / LCU Row / Group of LCU / TU / PU Block / Video Coding Unit iii. CU / PU / TU / Block / Video Coding Unit Location In one example, the existing design may be applied to filter samples along the CTU / CTB boundaries (e.g., the first K at the top / left / right / bottom boundaries (e.g., K=4 / 8)), while for other samples, the proposed method (e.g., Burette 3 / 4) may be applied instead. v. Coding mode for blocks containing samples along edges vi. The transformation matrix applied to the block containing the samples along the edge vii. Block dimensions of the current block and / or its adjacent blocks viii. Block shape of the current block and / or its adjacent blocks ix. Indication of color format (e.g., 4:2:0, 4:4:4, RGB or YUV) x. Coding tree structure (e.g., dual tree or single tree) xi. Slice / Tile Group Type and / or Picture Type xii. Color components (e.g., may only apply to Cb or Cr) xiii. Time Layer ID xiv. Standard Profiles / Levels / Tiers xv. Alternatively, m and / or n may be signalled to the decoder.
[0100] [5. Additional embodiments] Newly added text is shown in bold italics and underlined. Deleted text is marked with [[]].
[0101] [5.1. Implementation #1 regarding chroma QP in deblocking] [Table 6]
[0102] [5.2. Embodiment #2 regarding derivation of boundary strength] [Table 7] TIFF0007639106000013.tif254141TIFF0007639106000014.tif24150
[0103] [5.3. Embodiment #3 regarding derivation of boundary strength] [Table 8] TIFF0007639106000016.tif254146
[0104] [5.4. Embodiment #4 Concerning the Luma Deblocking Filtering Process] [Table 9]
[0105] [5.5. Chroma Deblocking Filtering Process Embodiment #5] [Table 10] TIFF0007639106000019.tif195165
[0106] [5.6. Chroma QP in Deblocking #6] [Table 11] TIFF0007639106000021.tif41155
[0107] [5.7. Implementation #7 regarding chroma QP in deblocking] [Table 12] TIFF0007639106000023.tif101158
[0108] [5.8. Implementation #8 of Chroma QP in Deblocking] When making a filter decision for the three samples shown (solid circles), the QP of the luma CU that covers the center position of the chroma CU containing the three samples is selected. Thus, for the first, second and third chroma samples (see FIG. 11), respectively, Y Only 3 QPs are used.
[0109] In this way, the method of selecting luma CUs for the chroma quantization / dequantization process is aligned with that for the chroma filter decision process.
[0110] [5.9. Implementation #9 regarding QP used for JCCR coded blocks] [Table 13]
[0111] [5.10. Implementation #10 regarding QP used for JCCR coded blocks] [Table 14] TIFF0007639106000026.tif254160TIFF0007639106000027.tif254159TIFF0007639106000028.tif25415 3TIFF0007639106000029.tif254158TIFF0007639106000030.tif254153TIFF0007639106000031.tif56154
[0112] [5.11 Embodiment #11] [Table 15]
[0113] [5.12 Embodiment #12] [Table 16]
[0114] [6. Examples of the Disclosed Technology] FIG. 12 is a block diagram of a video processing device 1200. The device 1200 may be used to implement one or more of the methods described herein. The device 1200 may be embodied in a smartphone, a tablet, a computer, an Internet of Things (IoT) receiver, etc. The device 1200 may include one or more processors 1202, one or more memories 1204, and video processing hardware 1206. The processor 1202 may be configured to implement one or more of the methods described herein. The memory(s) 1204 may be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 1206 may be used to implement some of the techniques described herein in a hardware circuit. In some embodiments, the video processing hardware 1206 may be partially or completely part of the processor 1202 (e.g., a graphics processor core GPU or other signal processing circuitry).
[0115] As used herein, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion from a pixel representation of a video to a corresponding bitstream representation, or vice versa. The bitstream representation of a current video block may correspond to bits that are either in the same position or spread across different locations in the bitstream, e.g., as defined by a syntax. For example, a macroblock may be encoded with respect to a transformed and coded error residual value, as well as with bits in the header and other fields in the bitstream.
[0116] It will be appreciated that the disclosed methods and techniques benefit video encoder and / or decoder implementations embedded within video processing devices such as smartphones, laptops, desktops, and similar devices, by allowing the use of the techniques disclosed herein.
[0117] 13 is a flow chart of an example method of video processing 1300. The method includes, at 1310, performing a conversion between a video unit and a bitstream representation of the video unit, where during the conversion, a deblocking filter is used on video unit boundaries, such that when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, processing by the chroma QP table is performed on individual chroma QP values.
[0118] Some embodiments may be described in the following bulleted format:
[0119] (Appendix 1) 1. A method of video processing, comprising: converting between a video unit and a bitstream representation of the video unit; During the transformation, a deblocking filter is applied to boundaries of the video units, such that when a chroma quantization parameter (QP) table is used to derive parameters of the deblocking filter, processing by the chroma QP table is performed on individual chroma QP values. method.
[0120] (Appendix 2) a chroma QP offset is added to the individual chroma QP values following processing through the chroma QP table; The method described in Appendix 1.
[0121] (Appendix 3) A chroma QP offset is added to the value output by the chroma QP table. 3. The method according to claim 1 or 2.
[0122] (Appendix 4) Chroma QP offsets are not considered as inputs to the chroma QP table. 3. The method according to claim 1 or 2.
[0123] (Appendix 5) the chroma QP offset is at a picture level or at a video unit level; The method of claim 2.
[0124] (Appendix 6) 1. A method of video processing, comprising: converting between a video unit and a bitstream representation of the video unit; During the transform, a deblocking filter is applied to boundaries of the video unit, such that a chroma QP offset is used in the deblocking filter; The chroma QP offset is at picture / slice / tile / brick / subpicture level; method.
[0125] (Appendix 7) the chroma QP offset used in the deblocking filter is related to a coding method applied to the video unit boundary; The method described in Appendix 6.
[0126] (Appendix 8) The coding method is a Joint Coding of Chrominance Residuals (JCCR) method. The method described in Appendix 7.
[0127] (Appendix 9) 1. A method of video processing, comprising: converting between a video unit and a bitstream representation of the video unit; During the transform, a deblocking filter is applied to boundaries of the video unit, such that a chroma QP offset is used in the deblocking filter; Information about the same luma coding unit is used in the deblocking filter and to derive the chroma QP offsets. method.
[0128] (Appendix 10) the same luma coding unit covers corresponding luma samples at a center position of the video unit, and the video unit is a chroma coding unit; 10. The method according to claim 9.
[0129] (Appendix 11) A scaling process is applied to the video unit; one or more parameters of the deblocking filter depend at least in part on a quantization / dequantization parameter of the scaling process; 10. The method according to claim 9.
[0130] (Appendix 12) the quantization / dequantization parameters of the scaling process include the chroma QP offset; 12. The method according to claim 11.
[0131] (Appendix 13) the luma samples in the video unit are in the P-side or the Q-side; 13. The method according to any one of claims 9 to 12.
[0132] (Appendix 14) the information about the same luma coding unit depends on a relative position of a coding unit with respect to the same luma coding unit. 14. The method according to claim 13.
[0133] (Appendix 15) 1. A method of video processing, comprising: converting between a video unit and a bitstream representation of the video unit; During the transformation, a deblocking filter is applied to the boundaries of the video units, such that a chroma QP offset is used in the deblocking filter. The indication to enable utilization of the chroma QP offset is signaled in the bitstream representation. method.
[0134] (Appendix 16) the indication is conditionally signaled in response to removing one or more flags. 16. The method according to claim 15.
[0135] (Appendix 17) The one or more flags relate to a JCCR enable flag or a chroma QP offset enable flag. 17. The method according to claim 16.
[0136] (Appendix 18) The instruction is notified based on a derivation. 16. The method according to claim 15.
[0137] (Appendix 19) 1. A method of video processing, comprising: converting between a video unit and a bitstream representation of the video unit; During the transform, a deblocking filter is applied to boundaries of the video unit, such that a chroma QP offset is used in the deblocking filter; the chroma QP offsets used in the deblocking filter are the same whether a JCCR coding method is applied to the video unit boundary or whether a method different from the JCCR coding method is applied to the video unit boundary. method.
[0138] (Appendix 20) 1. A method of video processing, comprising: converting between a video unit and a bitstream representation of the video unit; During the transform, a deblocking filter is applied to boundaries of the video unit, such that a chroma QP offset is used in the deblocking filter; The 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 a P-side boundary with a number of reference pictures and / or motion vectors (MVs) associated with the video unit at a Q-side. method.
[0139] (Appendix 21) The deblocking filter is disabled under one or more conditions. 21. The method according to claim 20.
[0140] (Appendix 22) The one or more conditions relate to a motion vector (MV) magnitude or threshold. 21. The method according to claim 20.
[0141] (Appendix 23) The threshold value is i. the content of said video unit; ii. Messages signaled in DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Largest Coding Unit (LCU) / Coding Unit (CU) / LCU Row / Group of LCU / TU / PU Block / Video Coding Unit; iii. CU / PU / TU / Block / Video Coding Unit location; iv. A coding mode for a block containing samples along said boundary; v. a transformation matrix applied to the video unit that includes samples along the boundary; vi. The shape or dimensions of the video unit; vii. Color format instructions; viii. Coding tree structure; ix. Slice / tile group type and / or picture type; x. Color components, xi. Temporal Layer ID, or xii Standard Profiles / Levels / Tiers Related to at least one of 23. The method according to claim 22.
[0142] (Appendix 24) Different QP offsets are used for TS coded video units and non-TS coded video units; 21. The method according to claim 20.
[0143] (Appendix 25) The QP used in the luma filtering step is related to the QP used in the luma block scaling process. 21. The method according to claim 20.
[0144] (Appendix 26) 26. A video decoding device having a processor configured to implement a method according to one or more of claims 1 to 25.
[0145] (Appendix 27) 26. A video encoding device having a processor configured to implement a method according to one or more of claims 1 to 25.
[0146] (Appendix 28) A computer program product storing computer code, comprising: The computer code, when executed by a processor, causes the processor to implement a method according to any one of claims 1 to 25. Computer program products.
[0147] (Appendix 29) A method, apparatus, or system as described herein.
[0148] FIG. 15 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of this disclosure.
[0149] 15, video coding system 100 may include source device 110 and destination device 120. Source device 110 generates encoded video data and may be referred to as a video encoding device. Destination device 120 can decode the encoded video data generated by source device 110 and may be referred to as a video decoding device.
[0150] The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.
[0151] The video source 112 may include a source such as a video capture device, an interface that receives video data from a video content provider, and / or a computer graphics system that generates video data, or a combination of such sources. The video data may have one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a sequence of bits that form a coded representation of the video data. The bitstream may include a coded picture and associated data. A coded picture is a coded representation of a picture. The associated data may include a sequence parameter set, a picture parameter set, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The coded video data may be transmitted directly over the network 130a to the destination device 120 via the I / O interface 116. The coded video data may also be stored in a storage medium / server 130b for access by the destination device 120.
[0152] The destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .
[0153] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to a user. The display device 122 may be integrated with the destination device 120 or may be external to the destination device 120 and configured to interface with an external display device.
[0154] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVC) standard, and other current and / or future standards.
[0155] FIG. 16 is a block diagram illustrating an example of a video encoder 200, which may be the video encoder 114 of the system 100 illustrated in FIG.
[0156] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 16, video encoder 200 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0157] Functional components of the video encoder 200 may include a partition unit 201, a prediction unit 202, which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy encoding unit 214.
[0158] In other examples, video encoder 200 may include more, fewer, or different functional components. In an example, prediction unit 202 may include an Intra Block Copy (IBC) unit. The IBC unit may perform prediction in an IBC mode, where at least one reference picture is the picture in which the current video block is located.
[0159] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are depicted separately in the example of FIG. 16 for purposes of illustration.
[0160] Partition unit 201 may partition a picture into one or more video blocks. Video encoder 200 and video decoder 300 may support a variety of video block sizes.
[0161] The mode selection unit 203 may select one of intra or inter coding modes, for example based on an error result, and provide the resulting intra or inter coded block to a residual generation unit 207 that generates residual block data, and to a reconstruction unit 212 that reconstructs 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) mode, in which prediction is based on an inter prediction signal and an intra prediction signal. The mode selection unit 203 may also select a resolution (e.g., sub-pixel or integer pixel precision) for the motion vector of the block in the case of inter prediction.
[0162] To perform inter prediction on the current video block, motion estimation unit 204 may generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 may determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture associated with the current video block.
[0163] Motion estimation unit 204 and motion compensation unit 205 may perform different operations for the current video block depending on whether the current video block is an I slice, a P slice, or a B slice, for example.
[0164] In some examples, motion estimation unit 204 may perform unidirectional prediction for the current video block, and motion estimation unit 204 may look for a reference video block for the current video block from a reference picture in list 0 or list 1. Motion estimation unit 204 may then generate a reference index indicating a reference picture in list 0 or list 1 that contains the reference video block, and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as motion information for the current video block. Motion compensation unit 205 may generate a predicted video block for the current block based on the reference video block indicated by the motion information of the current video block.
[0165] In another example, motion estimation unit 204 may perform bidirectional prediction for the current video block, and motion estimation unit 204 may look for a reference video block for the current video block from a reference picture in list 0 and may look for another reference video block for the current video block from a reference picture in list 1. Motion estimation unit 204 may then generate a reference index indicating the reference pictures in list 0 and list 1 that contain the reference video blocks, and a motion vector indicating the spatial displacement between the reference video block and the current video block. Motion estimation unit 204 may output the reference index and the motion vector of the current video block as motion information of the current video block. Motion compensation unit 205 may generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.
[0166] In some examples, the motion estimation unit 204 may output a full set of motion information for the decoding process of the decoder.
[0167] In some examples, motion estimation unit 204 may not output a full set of motion information for the current video. Rather, motion estimation unit 204 may reference motion information of other video blocks to inform 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 a neighboring video block.
[0168] In one example, motion estimation unit 204 may indicate in a syntax structure associated with the current video block a value that indicates to video decoder 300 that the current video block has the same motion information as other video blocks.
[0169] In another example, motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates a difference between the motion vector of the current video block and the motion vector of the identified video block. Video decoder 300 may use the motion vector and the motion vector difference of the identified video block to determine the motion vector of the current video block.
[0170] As described above, video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by video encoder 200 include Advanced Motion Vector Prediction (AMVP) and merge mode signaling.
[0171] Intra prediction unit 206 may perform intra prediction on the current video block. When intra prediction unit 206 performs intra prediction on the current video block, intra prediction unit 206 may generate predictive data for the current video block based on decoded samples of other video blocks in the same picture. The predictive data for the current video block may include a predicted video block and various syntax elements.
[0172] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., as 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 may include residual video blocks that correspond to different sample components of the samples in the current video block.
[0173] In other examples, for example, in skip mode, residual data for the current video block may not be present and residual generation unit 207 may not perform the subtraction operation.
[0174] Transform processing unit 208 may generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to a residual video block associated with the current video block.
[0175] 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.
[0176] Inverse quantization unit 210 and inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. Reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more predicted video blocks generated by prediction unit 202 to generate a reconstructed video block related to the current block for storage in buffer 213.
[0177] After reconstruction unit 212 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.
[0178] The entropy encoding unit 214 may receive data from other functional components of the video encoder 200. When the entropy encoding unit 214 receives data, the entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy encoded data and generate a bitstream that includes the entropy encoded data.
[0179] FIG. 17 is a block diagram illustrating an example of a video decoder 300, which may be the video decoder 124 of the system 100 illustrated in FIG.
[0180] The video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 17, the video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared among various components of the video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0181] 10, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. The video decoder 300 may, in some examples, perform a decoding pass that is generally inverse to the encoding pass described with respect to the video encoder 200 (FIG. 16).
[0182] The entropy decoding unit 301 may retrieve an encoded bitstream. The encoded bitstream may include entropy coded video data (e.g., coded blocks of video data). The entropy decoding unit 301 may decode the entropy coded video data, and from the entropy decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list index, and other motion information. The motion compensation unit 302 may determine such information, for example, by implementing AMVP and merge mode.
[0183] The motion compensation unit 302 may optionally perform interpolation based on an interpolation filter to generate the motion compensated block. An identifier for the interpolation filter used with sub-pixel precision may be included in the syntax element.
[0184] Motion compensation unit 302 may use the interpolation filters used by video encoder 200 during encoding of the video block to calculate interpolated values for sub-integer pixels of the reference block. Motion compensation unit 302 may determine the interpolation filters used by video encoder 200 according to received syntax information and use the interpolation filters to generate the predictive block.
[0185] The motion compensation unit 302 may use some of the syntax information to determine the size of the blocks used to code the frames and / or slices of the coded video sequence, partition information describing how each macroblock of a picture of the coded video sequence is partitioned, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the coded video sequence.
[0186] The intra prediction unit 303 may use, for example, an intra prediction mode received in the bitstream to form a prediction block from spatially neighboring blocks. The inverse quantization unit 304 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 305 applies an inverse transform.
[0187] Reconstruction unit 306 may add a corresponding prediction block generated by motion compensation unit 302 or intra prediction unit 303 to the residual block to form a decoded block. If desired, a deblocking filter may also be applied to filter the decoded block to remove blockiness artifacts. The decoded video block is then stored in buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction, as well as generating the decoded video for presentation on a display device.
[0188] FIG. 18 is a block diagram illustrating an example video processing system 1800 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 1800. System 1800 may include an input 1802 that receives video content. The video content may be received in raw or uncompressed format, e.g., 8 or 10 bit multi-component pixel values, or may be in a compressed or encoded format. Input 1802 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, passive optical networks (PON), and the like, and wireless interfaces such as Wi-Fi or cellular networks.
[0189] System 1800 may include a coding component 1804 that may implement various coding or encoding methods described herein. Coding component 1804 may reduce the average bit rate of the video from input 1802 to an output of coding component 1804 to generate a coded representation of the video. Coding techniques are therefore sometimes referred to as video compression or video transcoding techniques. The output of coding component 1804 may be stored or transmitted via a connected communication, as represented by component 1806. The stored or communicated bitstream (or coded) representation of the video received at input 1802 may be used by component 1808 to generate pixel values or displayable video that is sent to display interface 1810. The process of generating a user-viewable video from the bitstream representation is sometimes referred to as video decompression. Furthermore, it will be understood that while certain video processing operations are referred to as "coding" operations or tools, such coding tools or operations are used in an encoder and corresponding decoding tools or operations that transpose the results of the coding will be performed by a decoder.
[0190] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High-Definition Multimedia Interface (HDMI®) or Displayport®, etc. Examples of storage interfaces include Serial Advanced Technology Attachment (SATA), PCI, IDE interfaces, etc. The techniques described herein 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.
[0191] 19 is a flowchart representation of a method 1900 for video processing in accordance with the present technology. The method 1900 includes, at operation 1910, determining applicability of a deblocking filter process for at least some samples at edges of a chroma block based on a mode of joint coding of a chroma residual of the chroma block for conversion between a chroma block of a video and a bitstream representation of the video. The method 1900 also includes, at operation 1920, performing the conversion based on the determination.
[0192] In some embodiments, the value indicating the mode of joint coding of the chroma residual is equal to 2. In some embodiments, the deblocking filter process further uses one or more quantization parameter offsets at a video unit level, where the video unit includes a picture, a slice, a tile, a brick, or a subpicture.
[0193] 20 is a flowchart representation of a method 2000 for video processing in accordance with the present technology. The method 2000 includes, at operation 2110, determining a chroma quantization parameter to be used in a deblocking filter process to be applied to at least some samples at edges of the current block for conversion between a current block of video and a bitstream representation of the video based on information of a corresponding transform block of the current block. The method 2000 also includes, at operation 2120, performing the conversion based on the determination.
[0194] In some embodiments, a chroma quantization parameter is used to deblock samples along a first side of an edge of the current block, the chroma quantization parameter being based on the mode of the transform block on the first side. In some embodiments, the first side is referred to as the P-side, which includes samples that are above the edge if the edge is a horizontal boundary, or samples that are to the left of the edge if the edge is a vertical boundary. In some embodiments, a chroma quantization parameter is used to deblock samples along a second side of the edge of the current block, the chroma quantization parameter being based on the mode of the transform block on the second side. In some embodiments, the second side is referred to as the Q-side, which includes samples that are below the edge if the edge is a horizontal boundary, or samples that are to the right of the edge if the edge is a vertical boundary.
[0195] In some embodiments, the chroma quantization parameter is determined based on whether a mode of joint coding of chroma residuals is applied. In some embodiments, the chroma quantization parameter is determined based on whether a mode of joint coding of chroma residuals is equal to 2.
[0196] 21 is a flowchart representation of a method 2100 for video processing in accordance with the present technology. The method 2100 includes, at operation 2110, performing a conversion between a current block of video and a bitstream representation of the video. During the conversion, a first chroma quantization parameter used in a deblocking filter process applied to at least some samples along edges of the current block is based on a second chroma quantization parameter used in the scaling process and a bit-depth related quantization parameter offset.
[0197] In some embodiments, the first chroma quantization parameter is equal to the second chroma quantization parameter used in the scaling process minus a bit depth related quantization parameter offset. In some embodiments, the first chroma quantization parameter is used to deblock samples along a first side of an edge of the current block. In some embodiments, the first side is referred to as the P side, which includes samples that are above the edge if the edge is a horizontal boundary, or samples that are to the left of the edge if the edge is a vertical boundary. In some embodiments, the first chroma quantization parameter is used to deblock samples along a second side of the edge of the current block. In some embodiments, the second side is referred to as the Q side, which includes samples that are below the edge if the edge is a horizontal boundary, or samples that are to the right of the edge if the edge is a vertical boundary.
[0198] In some embodiments, the first chroma quantization parameter is equal to a second chroma quantization parameter for joint coding of chroma residuals used in the scaling process minus a bit-depth related quantization parameter offset. In some embodiments, the first chroma quantization parameter is equal to a second chroma quantization parameter for a chroma Cb component used in the scaling process minus a bit-depth related quantization parameter offset. In some embodiments, the first chroma quantization parameter is equal to a second chroma quantization parameter for a chroma Cr component used in the scaling process minus a bit-depth related quantization parameter offset.
[0199] 22 is a flowchart representation of a method 2200 of video processing in accordance with the present technology. The method 2200 includes, at operation 2210, performing a conversion between a video including one or more coding units and a bitstream representation of the video. The bitstream representation complies with format rules that specify that chroma quantization parameters are included in the bitstream representation at a coding unit level or a transform unit level in accordance with the format rules.
[0200] In some embodiments, the formatting rules specify that the chroma quantization parameters are included at a coding unit level if the size of the coding unit is greater than a virtual pipeline data unit. In some embodiments, the formatting rules specify that the chroma quantization parameters are included at a transform unit level if the size of the coding unit is equal to or greater than a virtual pipeline data unit. In some embodiments, the formatting rules specify that the chroma quantization parameters are included at a coding unit level if the size of the coding unit is greater than a maximum transform block size. In some embodiments, the formatting rules specify that the chroma quantization parameters are included at a transform unit level if the size of the coding unit is equal to or greater than the maximum transform block size. In some embodiments, the formatting rules further specify that whether a chroma residual joint coding mode is applied to a first coding unit of the one or more coding units is indicated at a coding unit level. In some embodiments, a transform block in the first coding unit inherits information about whether a chroma residual joint coding mode is applicable at a level of the first coding unit.
[0201] 23 is a flowchart representation of a method 2300 of video processing in accordance with the present technology. The method 2300 includes, at operation 2310, performing a conversion between a block of video and a bitstream representation of the video. The bitstream representation follows format rules that specify whether a mode of chroma residual joint coding is applicable to a block is indicated at a coding unit level in the bitstream representation.
[0202] In some embodiments, during transformation, transform blocks within a coding unit inherit information about whether a mode of joint coding of the chroma residual is applicable at the level of the coding unit.
[0203] In some embodiments, the conversion includes encoding the video into a bitstream representation. In some embodiments, the conversion includes decoding the bitstream representation into the video.
[0204] Some embodiments of the disclosed techniques include making a decision or determination to enable a video processing tool or mode. In an example, if a video processing tool or mode is enabled, the encoder will use or implement that tool or mode in processing blocks of video, but may not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, conversion of blocks of video to a bitstream representation of video will use the video processing tool or mode if the tool or mode is enabled based on the decision or determination. In another example, if a video processing tool or mode is enabled, the decoder will process the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, conversion of a bitstream representation of video to blocks of video will be performed using the video processing tool or mode enabled based on the decision or determination.
[0205] Some embodiments of the disclosed techniques include making a decision or determination to disable a video processing tool or mode. In an example, when a video processing tool or mode is disabled, an encoder will not use that tool or mode in converting blocks of video to a bitstream representation of the video. In another example, when a video processing tool or mode is disabled, a decoder will process the bitstream with the video processing tool or mode that was disabled based on the decision or determination, knowing that the bitstream has not been altered.
[0206] The disclosed and other solutions, examples, embodiments, modules and functional operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in a combination of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded in a computer-readable medium for execution by or control of the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or one or more combinations thereof. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. An apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, such as code that constitutes the processor hardware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. A propagated signal is an artificially generated signal, for example a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to an appropriate receiver device.
[0207] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a single file dedicated to the program in question, or in multiple coordinated files (e.g., a file storing one or more modules, subprograms, or portions of code), in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0208] The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and an apparatus may be implemented as, special purpose logic circuitry, such as a field programmable gate array (FPGA) or application specific integrated circuit (ASIC).
[0209] Processors suitable for executing computer programs include, by way of example, both general purpose and special purpose microprocessors, as well as any one or more processors of any kind of digital computer. Generally, a processor will read instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices, such as magnetic, optical magnetic disks, or optical disks, for storing data, or be operatively coupled to receive data from or transfer data to, or both, such one or more mass storage devices. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include, by way of example, all forms of non-volatile memory, media, and memory devices, including semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; optical magnetic disks; and CD ROM and DVD-ROM disks. The processor and memory may be augmented by, or incorporated in, dedicated logic circuitry.
[0210] Although the specification contains numerous details, they should not be construed as limitations on the scope of any subject matter or what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of a particular technology. Certain features described herein in the context of separate embodiments may also be implemented in combination with a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as operating in a particular combination, and even initially claimed as such, one or more features from a claimed combination may in some cases be deleted from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0211] Similarly, although operations may be depicted in the figures in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown, or in a sequential order, or that all of the depicted operations be performed, to achieve desired results. Further, the separation of various system components in the embodiments described herein should not be understood as requiring such separation in all embodiments.
[0212] Only a few implementations and examples have been described; other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.
[0213] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application is a divisional application of Japanese Patent Application No. 2022-522384 based on International Patent Application No. PCT / US2020 / 055329 filed on October 13, 2020, claiming priority and benefit of International Patent Application No. PCT / CN2019 / 111115 filed on October 14, 2019. All of the above patent applications are incorporated herein by reference in their entirety.
Claims
1. 1. A method for processing video data, comprising the steps of: determining a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of a current coding unit of a video during conversion between the current coding unit and a bitstream of the video based on a second chroma quantization parameter used in a scaling process and a bit depth related quantization parameter offset; performing said conversion based on said determination; having The scaling process comprises: applying quantization to at least one coefficient representing the current coding unit during encoding; or applying inverse quantization to at least one coefficient from said bitstream during decoding. having the bitstream follows a format rule that specifies that if a height or width of the current coding unit is greater than a size of a virtual pipeline data unit, then one or more quantization parameters related to the second chroma quantization parameter are allowed to be included in the bitstream at a block level; The format rule further defines that whether a joint coding mode of a chroma Cb residual and a chroma Cr residual is applicable to the current coding unit is indicated at a transform unit level. method.
2. the first chroma quantization parameter is equal to the second chroma quantization parameter used in the scaling process minus the quantization parameter offset related to the bit depth; the first chroma quantization parameter is used to deblock samples along a first side of the edge of the current coding unit, the first side being called the P-side, the P-side including samples located above the edge if the edge is a horizontal boundary, or samples located to the left of the edge if the edge is a vertical boundary; or the first chroma quantization parameter is used to deblock samples along a second side of the edge of the current coding unit, the second side being called a Q-side, the Q-side including samples that are below the edge if the edge is a horizontal boundary, or to the right of the edge if the edge is a vertical boundary. The method of claim 1.
3. when a value of a first variable indicating a mode of joint coding of chroma-Cb residual and chroma-Cr residual is equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the mode of joint coding of chroma-Cb residual and chroma-Cr residual used in the scaling process minus the quantization parameter offset related to the bit depth; The method according to claim 1 or 2.
4. The second chroma quantization parameter of the P side is Clip3(-QpBdOffset C , 63, qP CbCr (P)+pps_cbcr_qp_offset(P)+slice_cbcr_qp_offset(P)+CuQpOffset CbCr (P))+QpBdOffset C and the second chroma quantization parameter of the Q side is equal to Clip3(-QpBdOffset C , 63, qP CbCr (Q)+pps_cbcr_qp_offset(Q)+slice_cbcr_qp_offset(Q)+CuQpOffset CbCr (Q))+QpBdOffset C and the first chroma quantization parameter for the P side is equal to Clip3(-QpBdOffset C , 63, qP CbCr (P)+pps_cbcr_qp_offset(P)+slice_cbcr_qp_offset(P)+CuQpOffset CbCr (P)), and the first chroma quantization parameter of the Q side is equal to Clip3(-QpBdOffset C , 63, qP CbCr (Q)+pps_cbcr_qp_offset(Q)+slice_cbcr_qp_offset(Q)+CuQpOffset CbCr (Q)), qP CbCr (P) and qP CbCr pps_cbcr_qp_offset(P) and pps_cbcr_qp_offset(Q) are the chroma quantization parameter offsets at the picture level; slice_cbcr_qp_offset(P) and slice_cbcr_qp_offset(Q) are the chroma quantization parameter offsets at the slice level; CuQpOffset CbCr (P) and CuQpOffset CbCr (Q) is the chroma quantization parameter offset at the block level, QpBdOffset C is the quantization parameter offset relative to the bit depth, The method according to claim 3.
5. The deblocking variables β and t C the second variable used to derive is equal to (the first chroma quantization parameter of the P side+the first chroma quantization parameter of the Q side+1)>>1, The method according to claim 4.
6. when the value of the first variable indicating the mode of joint coding of chroma Cb residual and chroma Cr residual is not equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for a first chroma Cb component used in the scaling process minus the quantization parameter offset related to the bit depth, or the first chroma quantization parameter is equal to the second chroma quantization parameter for a second chroma Cr component used in the scaling process minus the quantization parameter offset related to the bit depth.
6. The method according to any one of claims 3 to 5.
7. the second chroma quantization parameter used in the scaling process is derived based on at least a chroma quantization parameter offset at a picture level, a slice level, and a block level.
7. The method according to any one of claims 1 to 6.
8. the video having one or more coding units; the format rules specify that, for a chroma block of the current coding unit of the one or more coding units, chroma quantization parameters are allowed to be included in the bitstream at a block level in accordance with the format rules.
8. The method according to any one of claims 1 to 7.
9. The block level is a coding unit level or a transform unit level. The method according to claim 8.
10. a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit is based on a second chroma quantization parameter used in a scaling process and a bit depth related quantization parameter offset; the first chroma quantization parameter is equal to the second chroma quantization parameter used in the scaling process minus the quantization parameter offset related to the bit depth; when a value of a first variable indicating the joint coding mode for chroma-Cb residual and chroma-Cr residual is equal to 2, the first chroma quantization parameter is equal to the second chroma quantization parameter for the joint coding mode for chroma-Cb residual and chroma-Cr residual used in the scaling process minus the quantization parameter offset related to the bit depth; 10. The method according to claim 8 or 9.
11. said converting including encoding said video into said bitstream; 11. The method according to any one of claims 1 to 10.
12. the converting includes decoding the video from the bitstream.
11. The method according to any one of claims 1 to 10.
13. 1. An apparatus for processing video data, comprising: a processor and a non-transitory memory having instructions; The instructions, when executed by the processor, cause the processor to: determining a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of a current coding unit of a video during conversion between the current coding unit and a bitstream of the video based on a second chroma quantization parameter used in a scaling process and a bit depth related quantization parameter offset; performing said conversion based on said determination; Run the command, The scaling process comprises: applying quantization to at least one coefficient representing the current coding unit during encoding; or applying inverse quantization to at least one coefficient from said bitstream during decoding. having the bitstream follows a format rule that specifies that if a height or width of the current coding unit is greater than a size of a virtual pipeline data unit, then one or more quantization parameters related to the second chroma quantization parameter are allowed to be included in the bitstream at a block level; The format rule further defines that whether a joint coding mode of a chroma Cb residual and a chroma Cr residual is applicable to the current coding unit is indicated at a transform unit level. Device.
14. A non-transitory computer-readable storage medium storing instructions, comprising: The instructions cause a processor to: determining a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of a current coding unit of a video during conversion between the current coding unit and a bitstream of the video based on a second chroma quantization parameter used in a scaling process and a bit depth related quantization parameter offset; performing said conversion based on said determination; Run the command, The scaling process comprises: applying quantization to at least one coefficient representing the current coding unit during encoding; or applying inverse quantization to at least one coefficient from said bitstream during decoding. having the bitstream follows a format rule that specifies that if a height or width of the current coding unit is greater than a size of a virtual pipeline data unit, then one or more quantization parameters related to the second chroma quantization parameter are allowed to be included in the bitstream at a block level; The format rule further defines that whether a joint coding mode of a chroma Cb residual and a chroma Cr residual is applicable to the current coding unit is indicated at a transform unit level. A non-transitory computer-readable storage medium.
15. 1. A method for storing a video bitstream, comprising: determining, for a current coding unit of the video, a first chroma quantization parameter used in a deblocking filter process applied to at least one sample along an edge of the current coding unit based on a second chroma quantization parameter used in a scaling process and a bit depth related quantization parameter offset; generating the bitstream based on the determination; storing the bitstream on a non-transitory computer-readable recording medium; having The scaling process comprises: applying quantization to at least one coefficient representing the current coding unit during encoding; or applying inverse quantization to at least one coefficient from said bitstream during decoding. having the bitstream follows a format rule that specifies that if a height or width of the current coding unit is greater than a size of a virtual pipeline data unit, then one or more quantization parameters related to the second chroma quantization parameter are allowed to be included in the bitstream at a block level; The format rule further defines that whether a joint coding mode of a chroma Cb residual and a chroma Cr residual is applicable to the current coding unit is indicated at a transform unit level. method.
Citation Information
Cited By
Signaling of quantization parameters in video coding
US12666024B2