Interaction between adaptive color transform and quantization parameters

By conditionally enabling or disabling the chroma BDPCM mode in ACT mode and adjusting the quantization parameter (QP), the problems of low encoding/decoding efficiency and negative quantization parameters in ACT mode are solved, achieving more efficient lossless encoding/decoding.

CN115004707BActive Publication Date: 2026-03-24DOUYIN VISION CO LTD +1
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-21
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

In existing technologies, when ACT mode and luminance BDPCM mode are enabled, chrominance BDPCM mode is disabled, resulting in low encoding and decoding efficiency; in ACT mode, the quantization parameter (QP) may become negative and lossless encoding and decoding is not supported.

Method used

Lossless encoding and decoding is supported by conditionally enabling or disabling the chroma BDPCM mode in ACT mode, adjusting the quantization parameter (QP) to avoid negative values, and applying inverse ACT at the decoder.

Benefits of technology

It improves encoding and decoding efficiency, avoids negative quantization parameters, supports lossless encoding and decoding, and enhances the flexibility and efficiency of the codec.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115004707B_ABST
    Figure CN115004707B_ABST
Patent Text Reader

Abstract

Methods, systems, and devices are described for implementing adaptive color transform (ACT) and block-based delta pulse code modulation (BDPCM) during image / video encoding or decoding. An example method of video processing includes, for a conversion between a current video unit of a video that is a chroma video unit and a bitstream representation of the video, determining, based on a rule, whether a block-based delta pulse code modulation (BDPCM) mode is available, and performing the conversion based on the determination, where the rule is based on whether an adaptive color transform (ACT) mode is used to code the current video unit and / or whether the BDPCM mode is used to code a luma video unit corresponding to the current video unit.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority and interest in international patent application PCT / CN2019 / 126472, filed on December 19, 2019, in accordance with the patent law and / or rules applicable under the Paris Convention. For all purposes required by law, the entire disclosure of the aforementioned application is incorporated herein by reference as part of the disclosure of this application. Technical Field

[0003] The patent document relates to image and video encoding and decoding. Background Technology

[0004] Digital video consumes the largest share of bandwidth in the internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video is expected to continue to grow. Summary of the Invention

[0005] This document discloses techniques that can be used by video encoders and decoders to perform adaptive color transformation (ACT) and block-based incremental pulse codec modulation (BDPCM) during image / video encoding or decoding.

[0006] In terms of examples, a method for video processing is disclosed. This method includes performing a conversion between a video comprising a current video unit and a bitstream representation of that video, according to a rule specifying that an Adaptive Color Transformation (ACT) mode and a Block-Based Incremental Pulse Codec Modulation (BDPCM) mode can be used to encode and decode the current video unit in a mutually exclusive manner.

[0007] In another example, a method for video processing is disclosed. The method includes: for a conversion between a current video unit, which is a chroma video unit, and a bitstream representation of the video, determining, based on rules, whether a block-based incremental pulse codec modulation (BDPCM) mode is available; and performing the conversion based on this determination, wherein the rules are based on whether an adaptive color transformation (ACT) mode is used to encode / decode the current video unit and / or whether a BDPCM mode is used to encode / decode a luminance video unit corresponding to the current video unit.

[0008] In yet another example aspect, a method of video processing is disclosed. The method includes performing a conversion between a video comprising a current video unit that is a chroma video unit and a bitstream representation of the video, wherein the current video unit is coded using an adaptive color transform (ACT) mode and a block-based delta pulse code modulation (BDPCM) mode, wherein the bitstream representation conforms to a format rule, wherein the format rule specifies that an indication of a BDPCM prediction direction of a chroma component of the current video unit is determined by a BDPCM prediction direction of a corresponding luma video unit coded in the BDPCM mode, and wherein signaling of the indication is absent in the bitstream representation.

[0009] In yet another example aspect, a method of video processing is disclosed. The method includes performing a conversion between a video comprising a current video unit and a bitstream representation of the video according to a rule, wherein the rule specifies that during encoding, an adaptive color transform (ACT) mode is applied to the current video unit after a block-based delta pulse code modulation (BDPCM) mode is applied to the current video unit, or during decoding, the ACT mode is applied to the current video unit before the BDPCM mode is applied to the current video unit.

[0010] In yet another example aspect, a method of video processing is disclosed. The method includes, for a conversion between a video comprising a current video unit and a bitstream representation of the video, determining that, for the conversion, an adaptive color transform (ACT) mode is enabled, and based on the determination, performing the conversion by performing a clip operation on a quantization parameter (QP) associated with the current video unit.

[0011] In yet another example aspect, a video encoder apparatus is disclosed. The video encoder includes a processor configured to implement a method recited above.

[0012] In yet another example aspect, a video decoder apparatus is disclosed. The video decoder includes a processor configured to implement a method recited above.

[0013] In yet another example aspect, a non-transitory computer-readable medium having code stored thereon is disclosed. The code embodies one of the methods described herein in the form of processor-executable code.

[0014] These and other features will be described in this document. BRIEF DESCRIPTION OF DRAWINGS

[0015] Figure 1 An example screen content coding (SCC) decoder flow of loop adaptive color transform (ACT) in a video decoder is shown.

[0016] Figure 2An example decoding process utilizing ACT is shown.

[0017] Figure 3 is a block diagram illustrating an example video processing system in which various techniques disclosed herein can be implemented.

[0018] Figure 4 is a block diagram of an example hardware platform for video processing.

[0019] Figure 5 is a block diagram illustrating an example video coding system in which some embodiments of the disclosure can be implemented.

[0020] Figure 6 is a block diagram illustrating an example of an encoder in which some embodiments of the disclosure can be implemented.

[0021] Figure 7 is a block diagram illustrating an example of a decoder in which some embodiments of the disclosure can be implemented.

[0022] Figures 8 to 12 is a flowchart illustrating an example method of video processing. DETAILED DESCRIPTION

[0023] The use of section headings in this document is for ease of understanding and does not limit the applicability of techniques and embodiments disclosed in each section to only the section. Also, the use of H.266 terminology in some descriptions is merely for ease of understanding and is not intended to limit the scope of the disclosed techniques. Thus, the techniques described herein are applicable to other video codec protocols and designs as well.

[0024] 1. SUMMARY

[0025] This patent document relates to image / video coding techniques. In particular, it relates to adaptive color transform in image / video coding. It can be applied to standards under development, such as Versatile Video Coding. It is also applicable to future video coding standards or video codecs.

[0026] 2. BRIEF DESCRIPTION

[0027] Video coding standards have evolved mainly through the development of the well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, ISO / IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced the H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Coding (AVC) and H.265 / HEVC standards. Since H.262, the video coding standards are based on the hybrid video coding structure, where temporal prediction plus transform coding is utilized. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was founded by VCEG and MPEG jointly in 2015. Since then, many new methods have been adopted by JVET and put into the reference software named Joint Exploration Model (JEM). In April 2018, the Joint Video Team (JVT) was formed by VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) to work on the VVC standard with the goal to compress video at 50% bitrate reduction compared to HEVC.

[0028] The latest version of the VVC draft, namely Versatile Video Coding (Draft 7) can be found at the following URL: http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 16_Geneva / wgl l / JVET-P2001-vl4.zip.

[0029] The latest reference software of VVC is named VTM, which can be found at the following URL: https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-7.0.

[0030] 2.1. Adaptive color transform (ACT) in HEVC SCC

[0031] Adaptive color transform (ACT) was adopted into the HEVC Screen Content Coding (SCC) test model 2 at the 18th JCT-VC meeting (Sapporo, Japan, 30 June - 9 July 2014). ACT performs in-loop color-space conversion in the prediction residual domain using color transform matrices based on YCoCg and YCoCg-R color spaces. ACT is adaptively turned on or off at CU level using a flag cu_residual_act_flag. ACT can be combined with cross-component prediction (CCP), another inter-component decorrelation method already supported by HEVC. When both are enabled, ACT is performed after the decoder CCP, as shown in Figure 1 ​

[0032] 2.1.1. Color space conversion in ACT

[0033] Color space conversion in ACT is based on the YCoCg-R transform. Lossy and lossless coding (cu_transquant_bypass_flag = 0 or 1) use the same inverse transform, but in the case of lossy coding, the Co and Cg components are appended with a left shift by 1 bit. Specifically, the following color space transform is used for the forward and inverse conversion for lossy and lossless coding:

[0034] Forward transform for lossy coding (non-normative):

[0035]

[0036] Inverse transform for lossless coding (non-normative):

[0037] Co = R - B

[0038] t = B + (Co » 1)

[0039] Cg = (G - t)

[0040] Y = t + (Cg » 1)

[0041] Inverse transform (normative):

[0042] if (lossy) {

[0043] Co = Co « 1

[0044] Cg = Cg « 1

[0045] }

[0046] t = Y - (Cg » 1)

[0047] G = Cg + t

[0048] B = t - (Co » 1)

[0049] R = Co + b

[0050] The forward color transform is non-normalized, whose norm is approximately equal to for Y and Cg To compensate for the non-normalized nature of the forward transform, a delta QP (deltaQP) of (-5,-3,-5) is applied to (Y, Co, Cg) respectively. In other words, for a given "normal" QP of a CU, if ACT is on, the quantization parameters of (Y, Co, Cg) are set to (QP-5, QP-3, QP-5) respectively. The adjusted quantization parameters only affect the quantization and inverse quantization of the residual in the CU. For deblocking, the "normal" QP value is still used. A clipping to 0 will be applied to the adjusted QP values to ensure they do not become negative. Note that this QP adjustment only applies to lossy coding, as lossless coding does not perform quantization (cu_transquant_bypass_flag = 1). In SCM 4, PPS / slice level signaling of additional QP offset values is introduced. These QP offset values can be used instead of (-5,-3,-5) for a CU when applying adaptive color transform.

[0051] When the input bit-depths of the color components are different, appropriate left shifts are applied during ACT to align the sample bit-depths to the maximum bit-depth, and appropriate right shifts are applied after ACT to restore the original sample bit-depths.

[0052] 2.2. ACT in VVC

[0053] Figure 2 A decoding flowchart of VVC applying ACT is shown. As Figure 2 shown, the color space conversion is done in the residual domain. Specifically, an additional decoding module, i.e., inverse ACT, is introduced after inverse transform to convert the residual from YCgCo domain back to the original domain.

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

[0055] The core transform for color space conversion is kept the same as that for HEVC. Furthermore, following the same design as HEVC's ACT, to compensate for the dynamic range change of the residual signal before and after the color transform, a QP adjustment of (-5, -5, -3) is applied to the transformed residual.

[0056] On the other hand, forward and inverse color transforms require access to all three components of the residuals. Accordingly, in the proposed implementation, ACT is disabled in the two scenarios where all residuals of the three components are not available.

[0057] 1. Separated tree partitioning: When a separated tree is applied, the luma and chroma samples within one CTU are partitioned by different structures. This results in CUs in the luma tree containing only luma components and CUs in the chroma tree containing only two chroma components.

[0058] 2. Intra sub-partition prediction (ISP): ISP sub-partitioning is only applied to luma, while chroma signals are coded without partitioning. In the current ISP design, except for the last ISP sub-partition, other sub-partitions contain only luma components.

[0059] The text of the coding unit in the VVC draft is shown below.

[0060]

[0061]

[0062]

[0063]

[0064]

[0065]

[0066]

[0067] cu_act_enabled_flag equal to 1 specifies that the residuals of the current coding unit are coded in the YC g C o color space. cu_act_enabled_flag equal to 0 specifies that the residuals of the current coding unit are coded in the original color space. When cu_act_enabled_flag is not present, it is inferred to be equal to 0.

[0068] 2.3. In VVC transform skip mode

[0069] As in HEVC, the residuals of a block can be coded with transform skip mode, which completely skips the transform process of the block. Furthermore, for transform skip blocks, the minimum allowed quantization parameter (QP) signaled in the SPS is used, which is set to equal 6*(internalBitDepth - inputBitDepth) + 4 in VTM7.0.

[0070] 2.4. Block-based Incremental Pulse Codec Modulation (BDPCM)

[0071] In JVET-M0413, block-based incremental pulse code modulation (BDPCM) was proposed to efficiently encode screen content, and then it was adopted in VVC.

[0072] The prediction direction used in BDPCM can be either vertical or horizontal prediction mode. Similar to intra-frame prediction, intra-frame prediction is performed on the entire block by copying samples along the prediction direction (horizontal or vertical prediction). The residual is quantized, and the increment between the quantized residual and the value quantized by its predictor (horizontal or vertical) is encoded and decoded. This can be described as follows: For a block of size M (rows) × N (columns), let r i,j ,0≤i≤M-1,0≤j≤N-1 is the prediction residual after performing intra-frame prediction using unfiltered samples from the top or left block boundaries, either horizontally (copying left neighbor pixel values ​​line by line across the predicted block) or vertically (copying top neighbor lines to each line in the predicted block). Let Q(r) be the prediction residual. i,j ), 0≤i≤M-1, 0≤j≤N-1 represent residuals r i,j The quantized version is then used, where the residual is the difference between the original block and the predicted block value. The block DPCM is then applied to the quantized residual samples to produce a result with element-wise... Modified M×N array When vertical BDPCM signaling is notified:

[0073]

[0074] For horizontal forecasting, similar rules apply, and the residual quantization samples are obtained by the following formula.

[0075]

[0076] Samples of residual quantization It is sent to the decoder.

[0077] On the decoder side, the above calculation is reversed to produce Q(r). i,j ), 0≤i≤M-1, 0≤j≤N-1.

[0078] For vertical prediction cases

[0079]

[0080] Regarding the horizontal situation

[0081]

[0082] Inverse quantization residual Q -1 (Q(ri,j The values ​​are added to the intra-block prediction values ​​to produce the reconstructed sample values.

[0083] The main advantage of this approach is that inverse BDPCM can be performed on the fly during coefficient resolution, either by adding a predictor while resolving the coefficients or by performing it after resolution.

[0084] In VTM 7.0, BDPCM can also be applied to the chroma module. Chroma BDPCM has its own independent flag and BDPCM direction, which is different from the luminance BDPCM mode.

[0085] 2.5. Scaling process of transformation coefficients

[0086] The following text relates to the scaling process of the transform coefficients in JVET-P2001-vE.

[0087] The inputs to this process include:

[0088] – Specifies the brightness position (xTbY, yTbY) of the top left sample of the current brightness transform block relative to the top left brightness sample of the current image.

[0089] – The variable nTbW specifies the width of the transform block.

[0090] – The variable nTbH specifies the height of the transform block.

[0091] – The variable predMode specifies the prediction mode of the codec unit.

[0092] – Specifies the variable cIdx for the color components of the current block.

[0093] The output of this process is an array d of (nTbW)x(nTbH) with scaled transformation coefficients of element d[x][y].

[0094] The quantization parameter qP is exported as follows:

[0095] – If cIdx equals 0, then the following applies:

[0096] qP=Qp′ Y (1129)

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

[0098] qP=Qp′ CbCr (1130)

[0099] Otherwise, if cIdx equals 1, the following applies:

[0100] qP=Qp′Cb (1131)

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

[0102] qP=Qp′ Cr (1132)

[0103] The quantization parameter qP is modified, and the variables rectNonTsFlag and bdShift are exported as follows:

[0104] – If transform_skip_flag[xTbY][yTbY][cIdx] equals 0, then the following applies:

[0105] qP=qP-(cu_act_enabled_flag[xTbY][yTbY]?5:0)(1133)

[0106] rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1)? 1:0(1134)

[0107] bdShift=BitDepth+rectNonTsFlag+ (1135)

[0108] ((Log2(nTbW)+Log2(nTbH)) / 2)-5+pic_dep_quant_enabled_flag

[0109] Otherwise (transform_skip_flag[xTbY][yTbY][cIdx] equals 1), the following applies:

[0110] qP=Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?5:0) (1136)

[0112] rectNonTsFlag = 0 (1137)

[0113] bdShift = 10 (1138)

[0114] The variable bdOffset is exported as follows:

[0115] bdOffset = (1 <<bdShift)> >1 (1139)

[0116] The list levelScale[][] is specified as levelScale[j][k] = {{40,45,51,57,64,72},{57,64,72,80,90,102}}, where j = 0..1, k = 0..5.

[0117] The array dz of (nTbW)x(nTbH) is set to be equal to the array TransCoeffLevel[xTbY][yTbY][cIdx].

[0118] To derive the scaling transformation coefficients d[x][y], where x = 0..nTbW⁻¹ and y = 0..nTbH⁻¹, the following applies:

[0119] – The intermediate scaling factor m[x][y] is derived as follows:

[0120] – m[x][y] is set to 16 if one or more of the following conditions are true:

[0121] –sps_scaling_list_enabled_flag equals 0.

[0122] –pic_scaling_list_present_flag equals 0.

[0123] –transform_skip_flag[xTbY][yTbY][cIdx] equals 1.

[0124] –scaling_matrix_for_lfnst_disabled_flag equals 1, and lfnst_idx[xTbY][yTbY] is not equal to 0.

[0125] Otherwise, the following applies:

[0126] – The variable id is based on predMode, cIdx, nTbW, and nTbH, as described in Table 36, and the variable log2MatrixSize is derived as follows:

[0127] log2MatrixSize=(id<2)? 1:(id<8)? 2:3(1140)

[0128] The scaling factor m[x][y] is exported as follows:

[0129] m[x][y]=ScalingMatrixRec[id][i][j]

[0130] Where i = (x <<log2MatrixSize)> >Log2(nTbW),

[0131] j = (y <<log2MatrixSize)> Log2(nTbH) (1141)

[0132] – If id is greater than 13, and x and y are both equal to 0, then m[0][0] is further modified as follows:

[0133] m[0][0]=ScalingMatrixDCRec[id-14] (1142)

[0134] Note – The quantization matrix element m[x][y] can be zeroed when any of the following conditions are true.

[0135] -x is greater than 32

[0136] -y is greater than 32

[0137] – The decoded tu was not encoded or decoded using the default transform mode (i.e., the transform type is not equal to 0), and x is greater than 16.

[0138] – The decoded tu was not encoded / decoded using the default transform mode (i.e., the transform type is not equal to 0), and y is greater than 16.

[0139] The scaling factor ls[x][y] is exported as follows:

[0140] – If pic_dep_quant_enabled_flag equals 1 and transform_skip_flag[xTbY][yTbY][cIdx] equals 0, then the following applies:

[0141] ls[x][y]=(m[x][y]*levelScale[rectNonTsFlag][(qP+1)%6])<<((qP+1) / 6)(1143)

[0142] – Otherwise (pic_dep_quant_enabled_flag equals 0 or transform_skip_flag[xTbY][yTbY][cIdx] equals 1), the following applies:

[0143] ls[x][y]=(m[x][y]*levelScale[rectNonTsFlag][qP%6])<<(qP / 6)(1144)

[0144] – When BdpcmFlag[xTbY][yYbY][cIdx] equals 1, dz[x][y] is modified as follows:

[0145] – If BdpcmDir[xTbY][yYbY][cIdx] equals 0 and x is greater than 0, then the following applies:

[0146] dz[x][y]=Clip3(CoeffMin,CoeffMax,dz[x-1][y]+dz[x][y]) (1145)

[0148] Otherwise, if BdpcmDir[xTbY][yTbY][cIdx] equals 1 and y is greater than 0, then the following applies:

[0149] dz[x][y]=Clip3(CoeffMin,CoeffMax,dz[x][y-1]+dz[x][y]) (1146)

[0150] The value dnc[x][y] is derived as follows:

[0151] dnc[x][y]=(dz[x][y]*ls[x][y]+bdOffset)>>bdShift(1147)

[0152] The scaling transformation coefficients d[x][y] are derived as follows:

[0153] d[x][y]=Clip3(CoeffMin,CoeffMax,dnc[x][y])(1148)

[0154] Table 36 – Specifying the scaling matrix identifier variable id based on predMode, cIdx, nTbW, and nTbH

[0155]

[0156] 3. Technical problems solved by the embodiments and solutions described herein

[0157] 1. In the current design, ACT and luminance BDPCM modes can be enabled for a block.

[0158] However, for blocks encoded and decoded using ACT mode, the chroma BDPCM mode is always disabled.

[0159] Therefore, prediction signals can be derived differently for the luminance and chrominance blocks in the same encoding / decoding unit, which may be inefficient.

[0160] 2. When ACT is enabled, the block's quantization parameter (QP) may become negative.

[0161] 3. The current design of ACT does not support lossless encoding and decoding.

[0162] 4. Examples of technical solutions

[0163] The technical solutions described below should be considered as examples to illustrate general concepts. These technical solutions should not be interpreted in a narrow way. Furthermore, these technical solutions can be combined in any way.

[0164] In the following description, the term "block" can refer to a video region, such as a codec unit (CU), prediction unit (PU), or transform unit (TU), which can contain samples of the three color components. The term "BDPCM" is not limited to VVC design, but can represent a technique for encoding and decoding residuals using different prediction signal generation methods.

[0165] Example embodiments of interaction between ACT and BDPCM

[0166] 1. Whether to enable the chroma BDPCM mode may depend on the use of ACT and / or luminance BDPCM modes.

[0167] a. In one example, when ACT is enabled on a block, an indication of the use of the chroma BDPCM mode (e.g., intra_bdpcm_chroma_flag) can be inferred as an indication of the use of the luma BDPCM mode (e.g., intra_bdpcm_luma_flag).

[0168] i. In one example, the inferred value for the chroma BDPCM mode is defined as (ACT and luminance BDPCM modes enabled? True: False).

[0169] 1. In one example, when intra_bdpcm_luma_flag is false, intra_bdpcm_chroma_flag can be set to be equal to false.

[0170] a. Alternatively, when intra_bdpcm_luma_flag is true, intra_bdpcm_chroma_flag can be set to true.

[0171] ii. Alternatively, in one example, if the indication of the use of the block's luminance BDPCM mode and ACT is true, then the indication of the use of the chrominance BDPCM mode can be inferred to be true.

[0172] b. Alternatively, it is possible to conditionally check whether signaling instructions apply ACT to the block, such as using the same BDPCM prediction direction for luminance and chrominance samples in the block.

[0173] i. Alternatively, after using BDPCM mode, signaling notifies ACT of the instructions used.

[0174] 2. When ACT is enabled on a block, the indication of the prediction direction of the chroma BDPCM mode (e.g., intra_bdpcm_chroma_dir_flag) can be inferred as the indication of the prediction direction of the luma BDPCM mode (e.g., intra_bdpcm_luma_dir_flag).

[0175] a. In one example, the inferred value of intra_bdpcm_chroma_dir_flag is defined as (ACT enabled? intra_bdpcm_luma_dir_flag:0).

[0176] i. In one example, if the prediction direction indicator of the luminance BDPCM mode is horizontal, then the prediction direction indicator of the chrominance BDPCM mode can be inferred to be horizontal.

[0177] ii. Alternatively, in one example, if the prediction direction indicator of the luminance BDPCM mode is vertical, then the prediction direction indicator of the chrominance BDPCM mode can be inferred to be vertical.

[0178] 3. ACT and BDPCM modes can be used exclusively.

[0179] a. In one example, when ACT mode is enabled on a block, BDPCM mode can be disabled on the block.

[0180] i. Alternatively, the indication for the use of BDPCM mode may be signaled after the signaling notification of the indication for the use of ACT mode.

[0181] ii. Alternatively, the indication of the use of the BDPCM mode may not be signaled and may be inferred as false (0).

[0182] b. In one example, when BDPCM mode is enabled on a block, ACT mode can be disabled on the block.

[0183] i. Alternatively, the indication for the use of ACT mode may be signaled after the signaling notification of the indication for the use of BDPCM mode.

[0184] ii. Alternatively, the indication of the use of ACT mode may not be signaled and may be inferred as false (0).

[0185] c. In one example, the BDPCM mode in the above examples may represent the luminance BDPCM mode and / or the chrominance BDPCM mode.

[0186] 4. At the decoder, a reverse ACT can be applied before the reverse BDPCM.

[0187] a. In one example, ACT can be applied even when the luminance and chrominance BDPCMs have different prediction modes.

[0188] b. Alternatively, at the encoder, a positive ACT can be applied after BDPCM.

[0189] Example embodiments of QP settings when ACT is enabled

[0190] 5. Propose pruning QP when ACT is enabled.

[0191] a. In one example, the pruning function can be defined as (l, h, x), where l is the lowest possible value of the input x, and h is the highest possible value of the input x.

[0192] i. In one example, l can be set to equal to 0.

[0193] ii. In one example, h can be set to equal 63.

[0194] b. In one example, QP can be the qP given in Section 2.5.

[0195] c. In one example, clipping can be performed after QP adjustments in ACT mode.

[0196] d. In one example, when transform skipping is applied, l can be set to be equal to the minimum allowed QP of the transform skipping mode.

[0197] General techniques (items 6-7 )

[0198] 6. In the above example, l, h, m, n, and / or k are integers and may depend on

[0199] i. Signaling notification messages in DPS / SPS / VPS / PPS / APS / Picture Header / Strip Header / Piece Group Header / Maximum Codec Unit (LCU) / Codec Unit (CU) / LCU Line / LCU Group / TU / PU Block / Video Codec Unit

[0200] ii. Location of CU / PU / TU / block / video codec unit

[0201] iii. Encoding and decoding modes for blocks containing samples along the edges

[0202] iv. The transformation matrix applied to a block containing samples along its edges

[0203] v. Block dimensions / block shape of the current block and / or its neighboring blocks

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

[0205] vii. Encoding and decoding tree structures (such as dual-tree or single-tree)

[0206] viii. Strip / Piece Type and / or Image Type

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

[0208] x. Time-domain layer ID

[0209] xi. Standard profile / level / tier

[0210] xii. Alternatively, a, b, m, n and / or k can signal to the decoder.

[0211] 7. The methods proposed above can be applied under certain conditions.

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

[0213] b. In one example, the signaling instruction for the use of the above method can be communicated at the sequence / picture / strip / piece / tile / video region level (such as SPS / PPS / picture header / strip header).

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

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

[0216] ii. Signaling notification messages in DPS / SPS / VPS / PPS / APS / Picture header / Strip header / Piece group header / Maximum Codec Unit (LCU) / Codec Unit (CU) / LCU line / LCU group / TU / PU block / Video codec unit

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

[0218] iv. Encoding and decoding modes for blocks containing samples along the edges

[0219] v. A transformation matrix applied to a block containing samples along its edges.

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

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

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

[0223] ix. Encoding / decoding tree structures (such as dual-tree or single-tree)

[0224] x. Strip / group type and / or image type

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

[0226] xii. Temporal layer ID

[0227] xiii. Standard grade / level / level

[0228] xiv. Alternatively, m and / or n can signal to the decoder.

[0229] 5. Examples

[0230] These embodiments are based on JVET-P2001-vE. Newly added text is highlighted in bold italics. Deleted text is marked in italics.

[0231] 5.1. Example #1

[0232] This embodiment involves the interaction between ACT and BDPCM modes.

[0233]

[0234]

[0235] 5.2. Example #2

[0236] This embodiment involves the interaction between ACT and BDPCM modes.

[0237] An intra_bdpcm_chroma_flag value of 1 indicates that BDPCM is applied to the current chroma codec block at position (x0, y0), meaning the transform is skipped. The intra-frame chroma prediction mode is specified by intra_bdpcm_chroma_dir_flag. An intra_bdpcm_chroma_flag value of 0 indicates that BDPCM is not applied to the current chroma codec block at position (x0, y0).

[0238] When intra_bdpcm_chroma_flag does not exist and cu_act_enabled_flag (and cu_act_enabled_flag) is false, it is inferred to be equal to 0.

[0239] When intra_bdpcm_chroma_flag does not exist and cu_act_enabled_flag is true, it is inferred to be equal to intra_bdpcm_luma_flag.

[0240] For x = x0..x0+cbWidth–1, y = y0..y0+cbHeight-1 and cIdx = 1..2, the variable BdpcmFlag[x][y][cIdx] is set to equal intra_bdpcm_chroma_flag.

[0241] An intra_bdpcm_chroma_dir_flag value of 0 specifies that the BDPCM prediction direction is horizontal. An intra_bdpcm_chroma_dir_flag value of 1 specifies that the BDPCM prediction direction is vertical. When cu_act_enabled_flag is true, intra_bdpcm_chroma_dir_flag is set to be equal to intra_bdpcm_luma_dir_flag.

[0242] For x = x0..x0 + cbWidth-1, y = y0..y0 + cbHeight-1 and cIdx = 1..2, the variable BdpcmDir[x][y][cIdx] is set to equal intra_bdpcm_chroma_dir_flag.

[0243] 5.3. Example #3

[0244] This embodiment involves QP settings.

[0245] 8.7.3 Scaling process of transformation coefficients

[0246] The inputs to this process include:

[0247] – Specifies the brightness position (xTbY, yTbY) of the top left sample of the current brightness transform block relative to the top left brightness sample of the current image.

[0248] – The variable nTbW specifies the width of the transform block.

[0249] – The variable nTbH specifies the height of the transform block.

[0250] – The variable predMode specifies the prediction mode of the codec unit.

[0251] – Specifies the variable cIdx for the color components of the current block.

[0252] The output of this process is an array d of (nTbW)x(nTbH) with scaled transformation coefficients of element d[x][y].

[0253]

[0254] The quantization parameter qP is modified, and the variables rectNonTsFlag and bdShift are exported as follows:

[0255] – If transform_skip_flag[xTbY][yTbY][cIdx] equals 0, then the following applies:

[0256] qP=qP-(cu_act_enabled_flag[xTbY][yTbY]?5:0) (1133)

[0257] qP = Clip3(0, 63, qP)

[0258] rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1)? 1:0 (1134)

[0259] bdShift=BitDepth+rectNonTsFlag+ (1135)

[0260] ((Log2(nTbW)+Log2(nTbH)) / 2)-5+pic_dep_quant_enabled_flag

[0261] Otherwise (transform_skip_flag[xTbY][yTbY][cIdx] equals 1), the following applies:

[0262] qP=Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?5:0)(1136)

[0263] qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_flag[xTbY][yTbY]?5:0))

[0264] rectNonTsFlag = 0 (1137)

[0265] bdShift = 10 (1138)

[0266]

[0267] Figure 3 This is a block diagram illustrating an example video processing system 3000, in which various techniques disclosed herein can be implemented. Various implementations may include some or all of the components of system 3000. System 3000 may include an input 3002 for receiving video content. The video content may be received in a raw or uncompressed format, such as 8 or 10-bit multi-component pixel values, or it may be in a compressed or encoded format. Input 3002 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 Networking (PON), etc., and wireless interfaces such as Wi-Fi or cellular interfaces.

[0268] System 3000 may include codec component 3004, which can implement the various encoding or encoding methods described in this document. Codec component 3004 can reduce the average bit rate of the video from input 3002 to the output of codec component 3004 to produce a codec representation of the video. Therefore, codec techniques are sometimes referred to as video compression or video codec techniques. As indicated by component 3006, the output of codec component 3004 can be stored or transmitted via connected communication. Component 3008 can use the stored or transmitted bitstream (or codec) representation of the video received at input 3002 to generate pixel values ​​or displayable video sent to display interface 3010. The process of generating user-visible video from the bitstream representation is sometimes referred to as video decompression. Furthermore, although some video processing operations are referred to as “encoding” operations or tools, it should be understood that encoding tools or operations are used at the encoder, and the corresponding decoding tools or operations, which are the reverse of the encoding result, will be performed by the decoder.

[0269] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), or DisplayPort. Examples of storage interfaces include SATA (Serial Advanced Technology Accessory), PCI, IDE, etc. The technologies described in this document can be implemented in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.

[0270] Figure 4This is a block diagram of a video processing apparatus 4000. Apparatus 4000 can be used to implement one or more methods described herein. Apparatus 4000 can be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. Apparatus 4000 may include one or more processors 4002, one or more memories 4004, and video processing hardware 4006. The processors (one or more) 4002 can be configured to implement the methods described herein (e.g., in...). Figures 8 to 12 The methods described herein may be used in one or more ways. One or more memories 4004 may be used to store data and code for implementing the methods and techniques described herein. Video processing hardware 4006 may be used to implement some of the techniques described herein in hardware circuitry.

[0271] Figure 5 This is a block diagram illustrating an example video encoding / decoding system 100 from which the technology of the present invention can be utilized. (See diagram for example.) Figure 5 As shown, the video encoding / decoding system 100 may include a source device 110 and a destination device 120. The source device 110 generates encoded video data, which may be referred to as a video encoding device. The destination device 120 decodes the encoded video data generated by the source device 110, and the destination device 120 may be referred to as a video decoding device. The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0272] Video source 112 may include sources such as video capture devices, interfaces for receiving video data from video content providers, and / or computer graphics systems for generating video data, or combinations of these sources. Video data may include one or more pictures. Video encoder 114 encodes the video data from video source 112 to generate a bitstream. The bitstream may include a sequence of bits forming an encoded representation of the video data. The bitstream may include encoded pictures and associated data. The encoded pictures are encoded representations of the pictures. The associated data may include sequence parameter sets, picture parameter sets, and other syntax structures. I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. Encoded video data may be transmitted directly to destination device 120 via network 130a through I / O interface 116. Encoded video data may also be stored on storage media / server 130b for access by destination device 120.

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

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

[0275] The video encoder 114 and the video decoder 124 can operate according to video compression standards such as High Efficiency Video Codec (HEVC), Universal Video Codec (VVM), and other current and / or further standards.

[0276] Figure 6 This is a block diagram illustrating an example of a video encoder 200, which may be... Figure 5 The video encoder 114 in the system 100 shown.

[0277] The video encoder 200 is configured to perform any or all of the techniques of this invention. Figure 6 In the example, the video encoder 200 includes multiple functional components. The techniques described in this invention can be shared among the various components of the video encoder 200. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.

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

[0279] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit can perform prediction in IBC mode, where at least one reference picture is the picture containing the current video block.

[0280] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, can be highly integrated, but for illustrative purposes, in Figure 6 The examples are shown separately.

[0281] The segmentation unit 201 can segment an image into one or more video blocks. The video encoder 200 and the video decoder 300 can support various video block sizes.

[0282] The mode selection unit 203 can select one of the encoding / decoding modes (e.g., intra-frame or inter-frame) based on the error result, and provide the resulting intra-frame or inter-frame encoded / decoded block to the residual generation unit 207 to generate residual block data, and provide it to the reconstruction unit 212 to reconstruct the coded block as a reference picture. In some examples, the mode selection unit 203 can select a combination of intra-frame and inter-frame prediction (CIIP) modes, where the prediction is based on the inter-frame prediction signal and the intra-frame prediction signal. In the case of inter-frame prediction, the mode selection unit 203 can also select the resolution of the motion vector for the block (e.g., sub-pixel or integer pixel precision).

[0283] To perform inter-frame prediction on the current video block, motion estimation unit 204 can 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 can determine the predicted video block for the current video block based on motion information from images other than those associated with the current video block from buffer 213 and decoded samples.

[0284] The motion estimation unit 204 and the motion compensation unit 205 can perform different operations on the current video block, for example, depending on whether the current video block is in an I-band, P-band, or B-band.

[0285] In some examples, motion estimation unit 204 can perform unidirectional prediction on the current video block, and can search for a reference video block for the current video block in the reference images of list 0 or list 1. Motion estimation unit 204 can then generate a reference index indicating the reference image in list 0 or list 1 containing the reference video block and a motion vector indicating the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 can 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.

[0286] In other examples, motion estimation unit 204 can perform bidirectional prediction on the current video block. Motion estimation unit 204 can search for a reference video block for the current video block in the reference images in list 0, and can also search for another reference video block for the current video block in the reference images in list 1. Motion estimation unit 204 can then generate reference indices indicating the reference images in lists 0 and 1 containing the reference video blocks, and motion vectors indicating the spatial displacement between the reference video blocks and the current video block. Motion estimation unit 204 can output the reference index and motion vector of the current video block as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video blocks indicated by the motion information of the current video block.

[0287] In some examples, the motion estimation unit 204 can output complete motion information for the decoder's decoding processing.

[0288] In some examples, motion estimation unit 204 may not output the complete set of motion information for the current video. Instead, motion estimation unit 204 may signal the motion information of the current video block by referencing the motion information of another 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 neighboring video blocks.

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

[0290] In another example, motion estimation unit 204 may identify another video block and motion vector difference (MVD) in the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 can use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0291] As described above, the video encoder 200 can predictively signal motion vectors. Two examples of predictive signaling notification techniques that can be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merged Pattern Signaling Notification.

[0292] Intra-prediction unit 206 can perform intra-prediction on the current video block. When intra-prediction unit 206 performs intra-prediction on the current video block, it can generate prediction data for the current video block based on the decoded samples of other video blocks in the same frame. The prediction data for the current video block can include the predicted video block and various syntax elements.

[0293] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a negative sign) one or more predicted video blocks from the current video block. The residual data for the current video block may include residual video blocks corresponding to different sample components of the samples in the current video block.

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

[0295] The transform processing unit 208 can generate one or more transform coefficient video blocks of the current video block by applying one or more transforms to the residual video blocks associated with the current video block.

[0296] After the transform processing unit 208 generates a transform coefficient video block associated with the current video block, the quantization unit 209 can 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.

[0297] Inverse quantization unit 210 and inverse transform unit 211 can apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct the residual video block from the transform coefficient video block. Reconstruction unit 212 can add the reconstructed residual video block to the corresponding samples of one or more predicted video blocks generated by prediction unit 202 to generate a reconstructed video block associated with the current block, which is then stored in buffer 213.

[0298] After the video block is reconstructed by the reconstruction unit 212, a loop filtering operation can be performed to reduce video block artifacts in the video block.

[0299] Entropy encoding unit 214 can receive data from other functional components of video encoder 200. When entropy encoding unit 214 receives data, it can perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.

[0300] Figure 7 This is a block diagram illustrating an example of a video decoder 300, which may be... Figure 5 The video decoder 114 in the system 100 shown.

[0301] The video decoder 300 can be configured to perform any or all of the techniques of this invention. Figure 7 In the example, the video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.

[0302] exist Figure 7 In the example, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform functions typically associated with the video encoder 200. Figure 6 The decoding process is the inverse of the encoding process described.

[0303] The entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may include entropy-coded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 can decode the entropy-coded video data, and from the entropy-coded video data, the motion compensation unit 302 can determine motion information, including motion vectors, motion vector precision, reference image list index, and other motion information. The motion compensation unit 302 can determine this information, for example, by performing AMVP and merging modes.

[0304] The motion compensation unit 302 can generate blocks of motion compensation, possibly performing interpolation based on an interpolation filter. The syntax elements can include identifiers of the interpolation filters to be used with sub-pixel precision.

[0305] The motion compensation unit 302 can use interpolation filters, such as those used by the video encoder 200 during the encoding of a video block, to calculate the interpolated values ​​of sub-integer pixels of the reference block. The motion compensation unit 302 can determine the interpolation filter used by the video encoder 200 based on the received syntax information and use the interpolation filter to generate the prediction block.

[0306] The motion compensation unit 302 may use some syntax information to determine the size of the blocks of (one or more) frames and / or (one or more) stripes of the video sequence used for encoding, segmentation information describing how each macroblock of the picture of the encoded video sequence is segmented, a mode indicating how each segment is encoded, one or more reference frames (and a list of reference frames) for each inter-frame encoded block, and other information for decoding the encoded video sequence.

[0307] Intra-prediction unit 303 can use, for example, an intra-prediction mode received in the bitstream to form prediction blocks from spatially adjacent blocks. Inverse quantization unit 303 inverse quantizes (i.e., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 303 applies an inverse transform.

[0308] The reconstruction unit 306 can add the residual block to the corresponding prediction block generated by the motion compensation unit 202 or the intra-frame prediction unit 303 to form a decoded block. If necessary, a deblocking filter can also be applied to filter the decoded block to remove block artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation / intra-frame prediction and also generates the decoded video for presentation on the display device.

[0309] Figures 8 to 12 It shows that it can be done in, for example Figures 3 to 7 The embodiments shown are example methods for implementing the above-described technical solution.

[0310] Figure 8 A flowchart of an example method 800 for video processing is shown. Method 800 includes, in operation 810, performing a conversion between the video of the current video unit and its bitstream representation, according to a rule that specifies an adaptive color transformation (ACT) mode and a block-based incremental pulse codec modulation (BDPCM) mode that can be used to encode and decode the current video unit in a mutually exclusive manner.

[0311] Figure 9 A flowchart of an example method 900 for video processing is shown. Method 900 includes, in operation 910, determining whether a BDPCM mode is available for the conversion between a current video unit as a chroma video unit and a bitstream representation of the video, based on rules specifying whether an adaptive color transformation (ACT) mode is used to encode and decode the current video unit and / or whether a block-based incremental pulse codec modulation (BDPCM) mode is used to encode and decode the luma video unit corresponding to the current video unit.

[0312] Method 900 includes, in operation 920, performing the conversion based on the determination.

[0313] Figure 10 A flowchart of an example method 1000 for video processing is shown. Method 1000 includes, at operation 1010, performing a conversion between a video of a current video unit, which is a chroma video unit, and a bitstream representation of the video. The current video unit is encoded using an Adaptive Color Transform (ACT) mode and a block-based incremental pulse codec modulation (BDPCM) mode, and the bitstream representation conforms to a format rule specifying that an indication of the BDPCM prediction direction of the chroma component of the current video unit is determined by the BDPCM prediction direction of the corresponding luma video unit encoded in the BDPCM mode, and that a signaling notification specifying the indication is not present in the bitstream representation.

[0314] Figure 11A flowchart of an example method 1100 for video processing is shown. Method 1100 includes, in operation 1110, performing a conversion between the video and a bitstream representation of the current video unit according to a rule specifying that, during encoding, an adaptive color transformation (ACT) mode is applied to the current video unit after a block-based incremental pulse codec modulation (BDPCM) mode is applied to the current video unit, or during decoding, an ACT mode is applied to the current video unit before a BDPCM mode is applied to the current video unit.

[0315] Figure 12 A flowchart of an example method 1200 for video processing is shown. Method 1200 includes, in operation 1210, determining that an adaptive color transformation (ACT) mode is enabled for a conversion between a video comprising the current video unit and a bitstream representation of the video.

[0316] Method 1200 includes, in operation 1220, performing the transformation based on the determination by performing a cropping operation on the quantization parameters (QP) associated with the current video unit.

[0317] The following is a first list of preferred solutions for some embodiments.

[0318] A1. A video processing method comprising performing a conversion between a video including a current video unit and a bitstream representation of the video according to a rule, wherein the rule specifies that an Adaptive Color Transformation (ACT) mode and a Block-Based Incremental Pulse Codec Modulation (BDPCM) mode can be used to encode and decode the current video unit in a mutually exclusive manner.

[0319] A2. The method of solution A1, wherein ACT mode is enabled for the current video unit and BDPCM mode is disabled for the current video unit.

[0320] A3. The method of solution A2, wherein, for the luminance component of the video, after the indication of use of ACT mode in the bitstream representation, signaling is given an indication of use of BDPCM mode.

[0321] A4. The method of solution A2, wherein, for the chroma components of the video, an indication of the use of BDPCM mode is excluded from the bitstream representation, and wherein the indication is inferred to be false.

[0322] A5. The method of solution A1, wherein BDPCM mode is enabled for the current video unit and ACT mode is disabled for the current video unit.

[0323] A6. The method of solution A5, wherein after the indication of use of BDPCM mode in the bitstream representation, signaling is given an indication of use of ACT mode.

[0324] A7. The method of solution A5, wherein the indication used by the ACT mode is excluded from the bitstream representation, and wherein the indication is inferred to be false.

[0325] A8. A method of any one of solutions A5 to A7, wherein the BDPCM mode corresponds to the BDPCM mode used for the luminance component of the video.

[0326] A9. A method of any one of solutions A5 to A7, wherein the BDPCM mode corresponds to the BDPCM mode for the chroma component of the video.

[0327] A10. A video processing method comprising: for a conversion between a current video unit, which is a chroma video unit, and a bitstream representation of the video, determining, based on rules, whether a block-based incremental pulse codec modulation (BDPCM) mode is available, and performing the conversion based on the determination, wherein the rules are based on whether an adaptive color transformation (ACT) mode is used to encode / decode the current video unit and / or whether a BDPCM mode is used to encode / decode a luminance video unit corresponding to the current video unit.

[0328] A11. The method of solution A10, wherein the ACT mode is enabled, and wherein the use of the BDPCM mode for the chromaticity component is inferred to be the same as the use of the BDPCM mode for the luminance component.

[0329] A12. The method of solution A10, wherein the indication of the use of ACT mode in the bitstream representation is based on the BDPCM prediction direction for the luminance and chrominance components.

[0330] A13. A video processing method comprising performing a conversion between a video comprising a current video unit as a chroma video unit and a bitstream representation of the video, wherein the current video unit is encoded and decoded using an Adaptive Color Transform (ACT) mode and a block-based incremental pulse codec modulation (BDPCM) mode, wherein the bitstream representation conforms to a format rule, wherein the format rule specifies that an indication of the BDPCM prediction direction of the chroma component of the current video unit is determined by the BDPCM prediction direction of the corresponding luma video unit encoded and decoded in the BDPCM mode, and wherein signaling notification of the indication is not present in the bitstream representation.

[0331] A14. The method of solution A13, wherein when it is determined that ACT mode is enabled for the current video unit, the indication of the use of the BDPCM prediction direction for the chroma component of the current video unit is inferred to be zero.

[0332] A15. A video processing method comprising performing a conversion between a video including a current video unit and a bitstream representation of the video according to a rule, wherein the rule specifies that during encoding, after a block-based incremental pulse codec modulation (BDPCM) mode is applied to the current video unit, an adaptive color transformation (ACT) mode is applied to the current video unit, or during decoding, before a BDPCM mode is applied to the current video unit.

[0333] A16. The method of solution A15, wherein a first prediction mode of the BDPCM mode for the chroma component of the video codec unit is different from a second prediction mode of the BDPCM mode for the luminance component of the video.

[0334] A17. The method of any one of solutions A1 to A16, wherein the video unit includes a codec unit (CU), a prediction unit (PU), or a transform unit (TU).

[0335] A18. The method of any one of solutions A1 to A17, wherein the conversion includes decoding video from a bitstream representation.

[0336] A19. The method of any one of solutions A1 to A17, wherein the conversion includes encoding the video into a bitstream representation.

[0337] A20. A video processing apparatus, including a processor configured to implement the method described in any one or more of solutions A1 to A19.

[0338] A21. A computer-readable medium having instructions stored thereon, which, when executed, cause a processor to implement the method described in any one or more of solutions A1 to A19.

[0339] A22. A computer-readable medium storing a bitstream representation generated according to any one of solutions A1 to A19.

[0340] A23. A video processing apparatus for storing a bitstream representation, wherein the video processing apparatus is configured to implement the method described in any one or more of solutions A1 to A19.

[0341] A second list of preferred solutions for some embodiments is provided below.

[0342] B1. A video processing method comprising: determining, for a conversion between a video including a current video unit and a bitstream representation of the video, that an adaptive color transformation (ACT) mode is enabled for the conversion; and, based on the determination, performing the conversion by performing a cropping operation on quantization parameters (QP) associated with the current video unit.

[0343] B2. Solution B1's method, where the clipping operation uses a clipping function defined as follows:

[0344]

[0345] Where x is the input independent variable, l is the minimum output value of the pruning function, and h is the maximum output value of the pruning function, and l, h, and x are integers.

[0346] B3. The method of solution B2, where l = 0.

[0347] B4. The method of solution B2, where h = 63.

[0348] B5. The method of solution B2, where l is equal to the minimum allowed QP based on the transform skip mode of the current video unit encoded and decoded using transform skip mode.

[0349] B6. The method of solution B1, wherein a trimming operation is performed after the QP adjustment operation for ACT mode.

[0350] B7. The method of any one of solutions B2 to B5, wherein l and h are based on at least one of the following: (a) a signaling notification message in a decoder parameter set (DPS), sequence parameter set (SPS), video parameter set (VPS), picture parameter set (PPS), adaptive parameter set (APS), picture header, strip header, slice header, maximum codec unit (LCU), codec unit (CU), LCU row, LCU group, transform unit (TU), prediction unit (PU) block or video codec unit; (b) the location of CU, PU, ​​TU, block or video codec unit; (c) the encoding and decoding mode of one or more blocks including at least one sample along the edge; (d) one or more transform matrices applied to one or more blocks; (e) the dimension or shape of the current video unit and / or neighboring video units; (f) an indication of the color format; (g) a codec tree structure; (h) strip type, slice type and / or picture type; (i) the color components of the video; (j) the temporal layer identifier (ID); and (k) a standard profile, level or hierarchy.

[0351] B8. The method of any of solutions B1 to B7, wherein the cropping operation is also based on the video's color format being 4:2:0 or 4:4:4.

[0352] B9. The method of any one of solutions B1 to B7, wherein the clipping operation is performed based on an instruction to use the clipping operation notified in the sequence parameter set (SPS), picture parameter set (PPS), picture header, or strip header.

[0353] B10. A method of any one of solutions B1 to B7, wherein the clipping operation is performed based on at least one of the following: (a) video content, (b) signaling notification in a decoder parameter set (DPS), sequence parameter set (SPS), video parameter set (VPS), picture parameter set (PPS), adaptive parameter set (APS), picture header, strip header, slice header, maximum codec unit (LCU), codec unit (CU), LCU line, LCU group, transform unit (TU), prediction unit (PU) block, or video codec unit. The message includes (c) the location of the CU, PU, ​​TU, block, or video codec unit, (d) the codec mode of one or more blocks including at least one sample along the edge, (e) one or more transform matrices applied to one or more blocks, (f) the dimension or shape of the current video unit and / or neighboring video units, (g) the color format indication, (h) the codec tree structure, (i) the stripe type, slice group type, and / or picture type, (j) the color components of the video, (k) the temporal layer identifier (ID), and (l) the standard profile, level, or hierarchy.

[0354] B11. A method of any one of solutions B1 to B10, wherein the video unit includes a codec unit (CU), a prediction unit (PU), or a transform unit (TU).

[0355] B12. A method of any one of solutions B1 to B11, wherein the conversion includes decoding video from a bitstream representation.

[0356] B13. The method of any one of solutions B1 to B11, wherein the conversion includes encoding the video into a bitstream representation.

[0357] B14. A video processing apparatus comprising a processor configured to implement the method described in any one or more of solutions B1 to B13.

[0358] B15. A computer-readable medium having instructions stored thereon, which, when executed, cause a processor to implement the method described in any one or more of solutions B1 to B13.

[0359] B16. A computer-readable medium storing a bitstream representation generated according to any one of solutions B1 to B13.

[0360] B17. A video processing apparatus for storing a bitstream representation, wherein the video processing apparatus is configured to implement the method of any one or more of solutions B1 to B13.

[0361] In this document, the term "video processing" can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm can be applied during the conversion from the pixel representation of a video to the corresponding bitstream representation, and vice versa. As defined in the syntax, the bitstream representation of the current video block can, for example, correspond to bits that are co-located or scattered at different locations within the bitstream. For example, a macroblock can be encoded based on the transformed and encoded / decoded error residuals, and also using bits from the header and other fields in the bitstream.

[0362] The disclosed and other solutions, examples, embodiments, modules, and functional operations described herein can be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by or 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 storage device, a combination of materials that implement machine-readable propagating signals, or a combination of one or more of them. The term "data processing apparatus" includes all means, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus may include code that creates an execution environment for the computer program in question, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. Propagating signals are artificially generated signals, such as machine-generated electrical, optical, or electromagnetic signals, which are generated to encode information for transmission to a suitable receiving device.

[0363] Computer programs (also known as programs, software, software applications, scripts, or code) can be written in any programming language, including compiled or interpreted languages, and can be deployed in any form, including as standalone programs or as modules, components, subroutines, or other units suited to a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored as a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple collaborative files (e.g., a file storing one or more modules, subroutines, or code sections). Computer programs can be deployed to execute on a single computer or on multiple computers located in one place or distributed across multiple locations and interconnected via a communication network.

[0364] The processes and logic flows described herein can be executed by one or more programmable processors that execute one or more computer programs to perform functions by manipulating input data and generating outputs. The processes and logic flows can also be executed by dedicated logic circuits, and the devices can be implemented as dedicated logic circuits, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits).

[0365] For example, processors suitable for executing computer programs include general-purpose and special-purpose microprocessors, as well as any one or more processors in any kind of digital computer. Typically, the processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for executing instructions and one or more storage devices for storing instructions and data. Typically, a computer will also include, or be operatively coupled to, one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, to receive data from or transfer data to, or both. However, a computer does not need to have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor storage devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROMs and DVD-ROMs. The processor and memory may be supplemented or incorporated therein by dedicated logic circuitry.

[0366] While this patent document contains numerous details, these details should not be construed as limiting the scope of any subject matter or claimed content, but rather as descriptions of features characteristic of specific embodiments of a particular technology. Certain features described in the context of independent embodiments in this patent document may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments. Furthermore, although features may be described above as functioning in certain combinations, and even initially claimed in this way, one or more features from a claimed combination may be removed from that combination in some cases, and the claimed combination may be for sub-combinations or variations thereof.

[0367] Similarly, although operations are described in a specific order in the accompanying drawings, this should not be construed as requiring these operations to be performed in the specific order or sequence shown, or requiring all illustrated operations to be performed to obtain the desired result. Furthermore, the separation of various system components in the embodiments described in this patent document should not be construed as requiring such separation in all embodiments.

[0368] Only some implementation methods and examples are described, and other implementation methods, enhancements and variations can be made based on the content described and shown in this patent document.

Claims

1. A video processing method, comprising: For the conversion between the video of the current video unit and the bitstream of the video, it is determined that the adaptive color transformation (ACT) mode is enabled for the conversion; as well as Based on the determination, the conversion is performed by performing a clipping operation on the quantization parameter QP associated with the current video unit; The limiting operation uses a limiting function defined as follows: , Where x is the input independent variable, l is the minimum output value of the limiting function, and h is the maximum output value of the limiting function, and l, h, and x are integers. The QP of the current video unit encoded using the transform skip mode is based on the minimum allowed QP of the transform skip mode and whether the current video unit has the ACT mode enabled. The minimum allowed QP for the transformation skip mode is equal to 6*(internalBitDepth –inputBitDepth) + 4.

2. The method according to claim 1, wherein l = 0.

3. The method according to claim 1, wherein h = 63.

4. The method of claim 1, wherein the limiting operation is performed after the QP adjustment operation in the ACT mode.

5. The method according to any one of claims 1 to 3, wherein the values ​​of l and h are based on at least one of the following: (a) Messages notified by signaling in the decoder parameter set (DPS), sequence parameter set (SPS), video parameter set (VPS), picture parameter set (PPS), adaptive parameter set (APS), picture header, strip header, slice header, maximum codec unit (LCU), codec unit (CU), LCU line, LCU group, transform unit (TU), prediction unit (PU) block, or video codec unit. (b) The location of CU, PU, ​​TU, block or video codec unit. (c) Encoding / decoding modes including one or more blocks of at least one sample point along the edge, (d) One or more transformation matrices applied to the one or more blocks. (e) The dimensions or shape of the current video unit and / or neighboring video units. (f) Indication of color format, (g) Encoder-decoder tree structure, (h) Strip type, slice type, and / or image type, (i) The color components of the video. (j) Time-domain layer identifier ID, and (k) Standard grade, level or level.

6. The method according to any one of claims 1 to 4, wherein, The clipping operation is also performed based on the fact that the video's color format is 4:2:0 or 4:4:

4.

7. The method according to any one of claims 1 to 4, wherein the clipping operation is performed further based on an instruction in a signaling notification in a sequence parameter set SPS, a picture parameter set PPS, a picture header, or a strip header, the instruction indicating the use of the clipping operation.

8. The method according to any one of claims 1 to 4, wherein, Whether to perform the aforementioned limiting operation is also based on at least one of the following: (a) Video content, wherein the video content is screen content or natural content. (b) Messages notified by signaling in the decoder parameter set (DPS), sequence parameter set (SPS), video parameter set (VPS), picture parameter set (PPS), adaptive parameter set (APS), picture header, strip header, slice header, maximum codec unit (LCU), codec unit (CU), LCU line, LCU group, transform unit (TU), prediction unit (PU) block, or video codec unit. (c) The location of CU, PU, ​​TU, block or video codec unit, (d) Encoding / decoding modes including one or more blocks with at least one sample point along the edge. (e) One or more transformation matrices applied to the one or more blocks, (f) The dimensions or shape of the current video unit and / or neighboring video units. (g) Indication of color format, (h) Encoder / decoder tree structure, (i) Strip type, slice type and / or image type, (j) The color components of the video, (k) Temporal layer identifier ID, and (l) Standard grade, level or level.

9. The method according to any one of claims 1 to 4, wherein the current video unit comprises a codec unit CU, a prediction unit PU, or a transform unit TU.

10. The method according to any one of claims 1 to 4, wherein the conversion comprises decoding the video from the bitstream.

11. The method according to any one of claims 1 to 4, wherein the conversion comprises encoding the video into the bitstream.

12. A video processing apparatus comprising a processor configured to implement the method of any one of claims 1 to 11.

13. A computer-readable medium having instructions stored thereon, which, when executed, cause a processor to perform the method of any one of claims 1 to 11.

14. A method for storing a video bitstream, comprising: Enable Adaptive Color Transform (ACT) mode for the video including the current video unit; as well as Based on the determination, the bitstream is generated by performing a clipping operation on the quantization parameter QP associated with the current video unit; The bitstream is stored in a non-transitory computer-readable recording medium; The limiting operation uses a limiting function defined as follows: , Where x is the input independent variable, l is the minimum output value of the limiting function, and h is the maximum output value of the limiting function, and l, h, and x are integers. The QP of the current video unit encoded using the transform skip mode is based on the minimum allowed QP of the transform skip mode and whether the current video unit has the ACT mode enabled. The minimum allowed QP for the transformation skip mode is equal to 6*(internalBitDepth –inputBitDepth) + 4.

Citation Information

Patent Citations

  • Adjustments to encoding and decoding when switching color spaces

    CN105960802A

  • Qp derivation and offset for adaptive color transform in video coding

    CN106797465A

  • Qp derivation and offset for adaptive color transform in video coding

    CN107079150A

  • Method of adaptive motion vetor resolution for video coding

    CN107079164A

  • Scaling in color transform

    WO2016049894A1