Using offsets with the adaptive color transform codec
By optimizing the interactive application of ACT and BDPCM in video encoding and decoding, adjusting quantization parameters and signaling, and improving the palette mode, the problems of low ACT mode efficiency, negative quantization parameters, limited flexibility of palette mode and insufficient lossless codec support are solved, and more efficient video encoding and decoding effects are achieved.
Patent Information
- Application Number
- CN202180008254.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-05
- Filing Date
- 2021-01-05
- Publication Date
- 2025-08-08
- Estimated Expiration
- 2041-01-05
AI Technical Summary
In the existing video encoding and decoding technology, the ACT mode is inefficient in use, the quantization parameters may become negative, signaling does not depend on block size, the flexibility of the palette mode is limited, the binarization of escaped samples does not depend on quantization parameters, the synergy between the chroma BDPCM mode and the brightness BDPCM mode is insufficient, and ACT does not support lossless encoding and decoding.
By inferring or signaling to inform the use of chroma BDPCM mode when ACT is enabled on the block, adjusting quantization parameters, cutting QP values, supporting block size-dependent signaling, optimizing palette mode and binarization methods for escaping samples, implementing the interactive application of ACT and BDPCM, and supporting lossless encoding and decoding.
It improves the encoding and decoding efficiency of the ACT mode, avoids negative quantization parameters, enhances the flexibility of the palette mode, improves the binarization of escaped samples, realizes the coordinated optimization of ACT and BDPCM, and supports lossless encoding and decoding.
Smart Images

Figure CN115152220B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is an application entering the Chinese national phase based on International Patent Application No. PCT / CN2021 / 070282 filed on January 5, 2021, which claims priority from International Patent Application No. PCT / CN2020 / 070368 filed on January 5, 2020. The entire disclosure of the above application is incorporated by reference as part of the disclosure of this application. Technical Field
[0003] This patent document relates to picture encoding and decoding as well as video encoding and decoding. Background Art
[0004] Digital video accounts for the largest use of bandwidth on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video usage is expected to continue to grow. Summary of the Invention
[0005] This document discloses systems, methods, and apparatus for video encoding and decoding using, among other codec tools, the Adaptive Color Transform (ACT) mode.
[0006] In one exemplary aspect, a video processing method is disclosed, comprising, for conversion between a current video block of a video and a bitstream of the video, determining an allowed maximum size and / or allowed minimum size of an ACT mode for encoding or decoding the current video block; and performing the conversion based on the determination.
[0007] In another example aspect, a video processing method is disclosed. The method includes, for conversion between a current video block of a video and a bitstream of the video, determining a maximum allowable palette size and / or a minimum allowable predictor size for a palette mode used to encode or decode the current video block; and performing the conversion based on the determination, wherein the maximum allowable palette size and / or the minimum allowable predictor size are based on codec characteristics of the current video block.
[0008] In yet another example aspect, a video processing method is disclosed. The method includes performing a conversion between a current video block of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the current video block is encoded and decoded using a palette mode codec tool, and wherein the format rule specifies that parameters associated with binarization of escape symbols of the current video block in the bitstream are based on codec information of the current video block.
[0009] In yet another example aspect, a video processing method is disclosed. The method includes, for conversion between a video including a block and a bitstream of the video, determining that a size of the block is greater than a maximum allowable size of an ACT mode; and performing conversion based on the determination, wherein, in response to the size of the block being greater than the maximum allowable size of the ACT mode, the block is split into a plurality of sub-blocks, and wherein each of the plurality of sub-blocks shares a same prediction mode, and the ACT mode is enabled at the sub-block level.
[0010] In yet another example aspect, a video processing method is disclosed. The method includes performing conversion between a current video block of a video and a bitstream of the video, wherein the bitstream conforms to a format rule that specifies whether to signal an indication of use of an ACT mode on the current video block in the bitstream is based on at least one of a dimension of the current video block or a maximum allowed size of the ACT mode.
[0011] In yet another example aspect, a video processing method is disclosed. The method includes performing a conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in a sequence parameter set (SPS) specifies disabling an ACT mode for the current video unit.
[0012] In yet another example aspect, a video processing method is disclosed. The method includes performing a conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling a block-based delta pulse codec modulation (BDPCM) mode for the current video unit.
[0013] In yet another example aspect, a video processing method is disclosed. The method includes performing conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling a BDPCM mode for chroma components of the current video unit.
[0014] In yet another example aspect, a video processing method is disclosed. The method includes performing a conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling a palette for the current video unit.
[0015] In yet another example aspect, a video processing method is disclosed. The method includes performing a conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling a reference picture resampling (RPR) mode for the current video unit.
[0016] In yet another example aspect, a video processing method is disclosed that includes performing a conversion between a current video block of a video and a bitstream of the video according to a rule that specifies applying an additional quantization parameter offset when an ACT mode is enabled for the current video block.
[0017] In yet another example aspect, a video processing method is disclosed. The method includes performing a conversion between a current video block of a video and a bitstream representation of the video according to a rule, wherein the current video block is encoded or decoded using a joint CbCr codec mode, wherein a YCgCo color transform or a YCgCo inverse color transform is applied to the current video block, and wherein the rule specifies that since the current video block is encoded or decoded using the joint CbCr codec mode in which the YCgCo color transform is used, a quantization parameter offset value different from -5 is used in a picture header (PH) or a picture parameter set (PPS) associated with the current video block.
[0018] In yet another example aspect, a video processing method is disclosed. The method includes performing a conversion between a current video block of a video and a bitstream representation of the video according to a rule, wherein the current video block is encoded or decoded using a joint CbCr codec mode, wherein a YCgCo-R color transform or an inverse YCgCo-R color transform is applied to the current video block, and wherein the rule provides that a quantization parameter offset value different from a predetermined offset is used in a pH or PPS associated with the current video block due to the current video block being encoded or decoded using the joint CbCr codec mode in which the YCgCo-R color transform is used.
[0019] In yet another exemplary aspect, a video encoder apparatus is disclosed. The video encoder includes a processor configured to implement the above method.
[0020] In yet another exemplary aspect, a video decoder apparatus is disclosed. The video decoder includes a processor configured to implement the above method.
[0021] In yet another exemplary aspect, a non-transitory computer-readable medium having stored thereon code is disclosed. The code is in the form of processor-executable code embodying one of the methods described herein.
[0022] These and other features are described throughout this disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1 The screen content codec (SCC) decoder flow of the loop ACT is shown.
[0024] Figure 2 The decoding process using ACT is shown.
[0025] Figure 3 An example of a block encoded and decoded in palette mode is shown.
[0026] Figure 4 An example of signaling palette entries using palette prediction values is shown.
[0027] Figure 5 Examples of horizontal traversal scanning and vertical traversal scanning are shown.
[0028] Figure 6 Shows an example of encoding and decoding of palette indexes.
[0029] Figure 7 is a block diagram illustrating an example video processing system in which various embodiments disclosed herein may be implemented.
[0030] Figure 8 is a block diagram of an example hardware platform for video processing.
[0031] Figure 9 is a block diagram illustrating a video encoding and decoding system according to some embodiments of the present disclosure.
[0032] Figure 10 is a block diagram illustrating an encoder according to some embodiments of the present disclosure.
[0033] Figure 11 is a block diagram illustrating a decoder according to some embodiments of the present disclosure.
[0034] Figure 12-24 A flow chart illustrating an example method of video processing is shown. DETAILED DESCRIPTION
[0035] The section headings used in this disclosure are for ease of understanding and do not limit the techniques and embodiments disclosed in each section to only that section. Furthermore, the use of H.266 terminology in some descriptions is for ease of understanding and is not intended to limit the scope of the disclosed techniques. Therefore, the techniques described herein are also applicable to other video codec protocols and designs.
[0036] 1. Summary
[0037] This patent document relates to image / video codec technology. Specifically, it relates to adaptive color transforms in image / video codecs. The patent application may be applied to standards currently under development, such as universal video codecs. The patent application may also be applicable to future video codec standards or video codecs.
[0038] 2. Brief Description
[0039] Video codec standards have evolved primarily through the development of standards within the renowned International Telecommunication Union (ITU) Telecommunication Standardization Sector (ITU-T) and the International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC). ITU-T produced H.261 and H.263, ISO / IEC produced Moving Picture Experts Group (MPEG)-1 and MPEG-4 Visual, and the two organizations jointly produced the H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Codec (AVC), and H.265 / High Efficiency Video Codec (HEVC) standards. Since H.262, video codec standards have been based on a hybrid video codec architecture that utilizes temporal prediction plus transform coding. To explore future video codec technologies beyond HEVC, the Video Codec Experts Group (VCEG) and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new approaches and incorporated them into reference software known as the Joint Exploration Model (JEM). In April 2018, JVET was established between VCEG (Q6 / 16) and ISO / IEC JTC1SC29 / WG11 (MPEG) to work on the VVC standard with the goal of reducing the bit rate by 50% compared to HEVC.
[0040] The latest version of the VVC draft, Generic Video Codec (Draft 7), can be found at: http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 16_Geneva / wg11 / JVET-P2001-v14.zip
[0041] The latest VVC reference software VTM can be found at: https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-7.0
[0042] 2.1. Adaptive Color Transform (ACT) in HEVC-SCC
[0043] At the 18th JCT-VC conference (June 30-July 9, 2014, Sapporo, Japan), ACT was adopted into the HEVC SCC test model 2. ACT performs in-loop color space conversion in the prediction residual domain using color transformation matrices based on the YCoCg and YCoCg-R color spaces. ACT is adaptively turned on or off at the codec unit (CU) level using the flag cu_residual_act_flag. ACT can be combined with cross component prediction (CCP), which is another inter-component decorrelation method already supported in HEVC. When both are enabled, ACT is performed after CCP at the decoder, as in Figure 1 shown.
[0044] 2.1.1. Color Space Conversion in ACT
[0045] The color space conversion in ACT is based on the YCoCg-R transform. Both lossy and lossless codecs (cu_transquant_bypass_flag = 0 or 1) use the same inverse transform, but in the case of lossy codecs, an additional 1-bit left shift is applied to the Co and Cg components. Specifically, the following color space transforms are used for forward and backward conversion for lossy and lossless codecs:
[0046] Forward transform for lossy codec (non-normative):
[0047]
[0048] Forward transform for lossless codec (non-normative):
[0049] Co=RB
[0050] t=B+(Co>>1)
[0051] Cg=(Gt)
[0052] Y=t+(Cg>>1)
[0053] Backward transform (canonical):
[0054]
[0055] t=Y-(Cg>>1)
[0056] G=Cg+t
[0057] B=t-(Co>>1)
[0058] R=Co+b
[0059] The forward color transform is unnormalized, where its norm for Y and Cg is roughly equal to , and for Co is roughly equal to To compensate for the non-normalized nature of the forward transform, incremental QPs of (-5, -3, -5) are applied to (Y, Co, Cg), respectively. In other words, for a given "normal" QP for a CU, if ACT is turned on, the quantization parameters are set to equal (QP-5, QP-3, QP-5) for (Y, Co, Cg), 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. Clipping to 0 is applied to the adjusted QP values to ensure that they will not become negative. Note that this QP adjustment only applies to lossy codecs, since quantization is not performed in lossless codecs (cu_transquant_bypass_flag=1). In SCM 4, PPS / slice-level signaling of additional QP offset values was introduced. When adaptive color transform is applied, these QP offset values can be used for the CU instead of (-5, -3, -5).
[0060] When the input bit depths of the color components are different, an appropriate left shift is applied during ACT to align the sample bit depth to the maximum bit depth, and an appropriate right shift is applied after ACT to restore the original sample bit depth.
[0061] ACT in VVC
[0062] Figure 2 FIG4 shows a decoding flow chart of VVC using ACT. Figure 2 As shown in Figure 2, color space conversion is performed in the residual domain. Specifically, an additional decoding module, namely inverse ACT, is introduced after the inverse transform to convert the residual from the YCgCo domain back to the original domain.
[0063] In VVC, a CU leaf node is also used as a unit of transform processing unless the maximum transform size is less than the width or height of a CU. Therefore, in the proposed implementation, the ACT flag is signaled for a CU to select the color space to encode and decode its residual. In addition, after the HEVCACT design, for inter-frame CUs and intra-frame block copy (IBC) CUs, ACT is enabled only when there is at least one non-zero coefficient in the CU. For intra-frame CUs, ACT is enabled only when the chroma component selects the same intra-frame prediction mode as the luminance component, that is, the DM mode.
[0064] The core transform used for color space conversion is consistent with the core transform used for HEVC. In addition, similar to the ACT design in HEVC, a QP adjustment of (-5, -5, -3) is applied to the transform residual to compensate for the dynamic range change of the residual signal before and after the color conversion.
[0065] On the other hand, the forward and inverse color transforms require access to the residuals of all three components. Accordingly, in the proposed implementation, ACT is disabled in the following two cases, where the residuals of the three components are not all available.
[0066] 1. Split tree partitioning: When a split tree is applied, the luma samples and chroma samples within a codec tree unit (CTU) are partitioned according to different structures. This results in the CU in the luma tree containing only the luma component, while the CU in the chroma tree contains only two chroma components.
[0067] 2. Intra-frame sub-partition prediction (ISP): ISP sub-partitioning is only applied to luma, while chroma signals are encoded and decoded without partitioning. In the current ISP design, except for the last ISP sub-partition, other sub-partitions only contain luma components.
[0068] The text of the codec unit in the VVC draft is as follows.
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077] cu_act_enabled_flag equal to 1 specifies that the residual of the current codec unit is encoded and decoded in the YCgCo color space. cu_act_enabled_flag equal to 0 specifies that the residual of the current codec unit is encoded and decoded in the original color space. When cu_act_enabled_flag is not present, it is inferred to be equal to 0.
[0078] 2.3. Transform Skip Mode in VVC
[0079] As in HEVC, the residual of a block can be encoded and decoded using the transform skip mode, which completely skips the transform process of the block. In addition, for transform skip blocks, the minimum allowed quantization parameter (QP) signaled in the SPS is used, which is set to 6*(internalBitDepth inputBitDepth)+4 in VTM7.0.
[0080] 2.4. Block-based delta pulse codec modulation (BDPCM)
[0081] In JVET-M0413, a BDPCM was proposed to efficiently encode and decode screen content, which was then adopted into VVC.
[0082] The prediction directions used in BDPCM can be vertical prediction mode and horizontal prediction mode. Intra-frame prediction is performed on the entire block by copying samples in the prediction direction (horizontal or vertical prediction) similar to intra-frame prediction. The residual is quantized and the delta between the quantized residual and its predicted value (horizontal or vertical) quantized value is encoded and decoded. This can be described as follows: for a block of size M (rows) × N (columns), after performing intra-frame prediction horizontally (copying the left neighbor pixel values across the prediction block row by row) or vertically (copying the top neighbor row to every row in the prediction block) using unfiltered samples from the upper or left block boundary samples, let r i,j ,0≤i≤M-1,0≤j≤N-1 is the prediction residual. Let Q(r i,j ), 0≤i≤M-1,0≤j≤N-1 represents the residual r i,j The quantized version of , where the residual is the difference between the original block and the predicted block value. Then BDPCM is applied to the quantized residual samples to obtain a sample with elements The modified M×N array When signaling vertical BDPCM:
[0083]
[0084] For horizontal prediction, similar rules apply and the residual quantization samples are obtained as follows:
[0085]
[0086] Residual quantization samples is sent to the decoder.
[0087] At the decoder side, the above calculation is inverted to produce Q(r i,j ),0≤i≤M-1,0≤j≤N-1.
[0088] For the vertical prediction case,
[0089]
[0090] For the horizontal case,
[0091]
[0092] The inverse quantized residual Q -1 (Q(r i,j )) is added to the intra block prediction value to produce the reconstructed sample value.
[0093] The main advantage of this approach is that the inverse BDPCM can be done dynamically during coefficient parsing, just adding the prediction values as coefficients, or it can be performed after parsing.
[0094] In VTM7.0, BDPCM can also be applied to chroma blocks, and chroma BDPCM has a separate flag and BDPCM direction different from luma BDPCM mode.
[0095] 2.5. Scaling process of transform coefficients
[0096] The text related to the scaling process of transform coefficients in JVET-P2001-vE is given as follows.
[0097] The inputs to this process are:
[0098] Specifies the luminance position (xTbY, yTbY) of the luminance sample of the current luminance transform block relative to the luminance sample of the current picture.
[0099] The variable nTbW specifies the transform block width,
[0100] The variable nTbH specifies the transform block height,
[0101] The variable predMode specifies the prediction mode of the codec unit.
[0102] The variable cIdx specifies the color component of the current block.
[0103] The output of this process is an (nTbW) x (nTbH) array d of scaled transform coefficients with elements d[x][y].
[0104] The quantization parameter qP is derived as follows:
[0105] If cIdx is equal to 0, the following applies:
[0106] qP=QP'Y (1129)
[0107] Otherwise, if TuCResMode[xTbY][yTbY] is equal to 2, the following applies:
[0108] qP=QP'CbCr (1130)
[0109] Otherwise, if cIdx is equal to 1, the following applies:
[0110] qP=QP'Cb (1131)
[0111] Otherwise (cIdx equals 2), the following applies:
[0112] qP=QP'Cr (1132)
[0113] Modify the quantization parameter qP and derive the variables rectNonTsFlag and bdShift as follows:
[0114] If transform_skip_flag[xTbY][yTbY][cIdx] is equal to 0, the following applies:
[0115] qP=qP-(cu_act_enabled_flag[xTbY][yTbY]?5:0) (1133)
[0116] rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1)? 1:0 (1134)
[0117]
[0118] Otherwise (transform_skip_flag[xTbY][yTbY][cIdx] is equal to 1), the following applies:
[0119] qP=Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?5:0)(1136)
[0120] rectNonTsFlag=0 (1137)
[0121] bdShift=10 (1138)
[0122] The variable bdOffset is derived as follows:
[0123] bdOffset=(1<<bdShift)> >1 (1139)
[0124] The list levelScale[][] is defined as levelScale[j][k] = {{40, 45, 51, 57, 64, 72}, {57, 64, 72, 80, 90, 102}}, where j = 0..1, k = 0..5.
[0125] The (nTbW)×(nTbH) array dz is set equal to the (nTbW)×(nTbH) array TransCoeffLevel[xTbY][yTbY][cIdx].
[0126] For the derivation of the scaled transform coefficients d[x][y] (where x=0..nTbW-1, y=0..nTbH-1), the following applies:
[0127] The intermediate scaling factors m[x][y] are derived as follows:
[0128] m[x][y] is set equal to 16 if one or more of the following conditions are true:
[0129] sps_scaling_list_enabled_flag is equal to 0.
[0130] pic_scaling_list_present_flag is equal to 0.
[0131] transform_skip_flag[xTbY][yTbY][cIdx] is equal to 1.
[0132] scaling_matrix_for_lfnst_disabled_flag is equal to 1, and lfnst_idx[xTbY][yTbY] is not equal to 0.
[0133] Otherwise, the following applies:
[0134] The variable id is derived based on predMode, cIdx, nTbW, and nTbH as specified in Table 36, and the variable log2MatrixSize is derived as follows:
[0135] log2MatrixSize=(id<2)? 1: (id<8)? 2:3 (1140)
[0136] The scaling factor m[x][y] is derived as follows:
[0137] m[x][y]=ScalingMatrixRec[id][i][j]
[0138] where i=(x<<log2MatrixSize)> >Log2(nTbW),
[0139] j=(y<<log2MatrixSize)> >Log2(nTbH)(1141)
[0140] If id is greater than 13 and both x and y are equal to 0, m[0][0] is further modified as follows:
[0141] m[0][0]=ScalingMatrixDCRec[id-14] (1142)
[0142] NOTE: Quantization matrix elements m[x][y] may be reset to zero when any of the following conditions are true:
[0143] x is greater than 32
[0144] y is greater than 32
[0145] The decoded tu is not encoded or decoded by the default transform mode (ie, the transform type is not equal to 0) and x is greater than 16
[0146] The decoded tu is not encoded or decoded by the default transform mode (ie, the transform type is not equal to 0), and y is greater than 16
[0147] The scaling factor ls[x][y] is derived as follows:
[0148] If pic_dep_quant_enabled_flag is equal to 1 and transform_skip_flag[xTbY][yTbY][cIdx] is equal to 0, the following applies:
[0149] ls[x][y]=(m[x][y]*levelScale[rectNonTsFlag][(qP+1)%6])<<((qP+1) / 6)(1143)
[0150] Otherwise (pic_dep_quant_enabled_flag is equal to 0 or transform_skip_flag[xTbY][yTbY][cIdx] is equal to 1), the following applies:
[0151] ls[x][y]=(m[x][y]*levelScale[rectNonTsFlag][qP%6])<<(qP / 6)(1144)
[0152] When BdpcmFlag[xTbY][yYbY][cIdx] is equal to 1, modify dz[x][y] as follows:
[0153] If BdpcmDir[xTbY][yYbY][cIdx] is equal to 0 and x is greater than 0, the following applies:
[0154] dz[x][y]=Clip3(CoeffMin,CoeffMax,dz[x-1][y]+dz[x][y]) (1145)
[0155] Otherwise, if BdpcmDir[xTbY][yTbY][cIdx] is equal to 1 and y is greater than 0, the following applies:
[0156] dz[x][y]=Clip3(CoeffMin,CoeffMax,dz[x][y-1]+dz[x][y]) (1146)
[0157] The value dnc[x][y] is derived as follows:
[0158] dnc[x][y]=(dz[x][y]*ls[x][y]+bdOffset)>>bdShift (1147)
[0159] The scaling transform coefficients d[x][y] are derived as follows:
[0160] d[x][y]=Clip3(CoeffMin,CoeffMax,dnc[x][y]) (1148)
[0161] Table 36 - Definition of scaling matrix identifier variable id according to predMode, cIdx, nTbW and nTbH
[0162]
[0163] 2.6. Palette Mode
[0164] 2.6.1. Concept of Palette Mode
[0165] The basic idea behind palette mode is that pixels in a CU are represented by a small set of representative color values. This set is called the palette. And it is also possible to indicate samples outside the palette by signaling an escape symbol after the (possibly quantized) component value. Such pixels are called escape pixels. Figure 3 As shown. Figure 3As shown, for each pixel having three color components (luminance and two chrominance components), an index into a palette is established, and the block can be reconstructed based on the established values in the palette.
[0166] 2.6.2. Encoding and decoding of palette entries
[0167] For encoding and decoding of palette entries, the palette prediction values are retained. The maximum size of the palette as well as the palette prediction values are signaled in the SPS. In HEVC-SCC, palette_predictor_initializer_present_flag is introduced in the PPS. When this flag is 1, the entries for initializing the palette prediction values are signaled in the bitstream. The palette prediction values are initialized at the beginning of each CTU row, each slice and each slice. Depending on the value of palette_predictor_initializer_present_flag, the palette prediction values are reset to 0 or initialized using the palette prediction value initializer entry signaled in the PPS. In HEVC-SCC, a palette prediction value initializer of size 0 is enabled to allow palette prediction value initialization to be explicitly disabled at the PPS level.
[0168] For each entry in the palette prediction, a reuse flag is signaled to indicate whether it is part of the current palette. Figure 4 The reuse flag is sent using run-length encoding of zero. After that, the number of new palette entries is signaled using the 0th order exponential Golomb (EG) code (ie, EG-0). Finally, the component values of the new palette entries are signaled.
[0169] 2.6.3. Palette Index Encoding and Decoding
[0170] use Figure 5 The palette index is encoded and decoded as shown for horizontal and vertical traversal scans. The scan order is explicitly signaled in the bitstream using palette_transpose_flag. For the rest of this subsection, the scan is assumed to be horizontal.
[0171] The palette index is encoded and decoded using two palette sampling modes: "COPY_LEFT" and "COPY_ABOVE". In "COPY_LEFT" mode, the palette index is assigned to the decoded index. In "COPY_ABOVE" mode, the palette index of the sample in the row above is copied. For both "COPY_LEFT" and "COPY_ABOVE" modes, a run value is signaled that specifies the number of subsequent samples that are also encoded and decoded using the same mode.
[0172] In palette mode, the index value of the escape symbol is the number of palette entries. Also, when the escape symbol is part of a run in "COPY_LEFT" or "COPY_ABOVE" mode, the escape component value is signaled for each escape symbol. The palette index is encoded and decoded as follows: Figure 6 shown.
[0173] This syntax sequence is done as follows. First, the number of index values for the CU is signaled. Then the actual index values for the entire CU are signaled using truncated binary codec. Both the number of indices and the index values are encoded and decoded in bypass mode. This groups the index-related bypass bins together. Then, the palette sampling mode (if necessary) and the run length are signaled in an interleaved manner. Finally, the component escape values corresponding to the escape symbols for the entire CU are grouped together and encoded and decoded in bypass mode. The binarization of the escape symbols is EG for the third-order codec, i.e. EG-3.
[0174] An additional syntax element, last_run_type_flag, is signaled after the index value. This syntax element, combined with the number of indices, eliminates the need to signal the run value corresponding to the last run in the block.
[0175] In HEVC-SCC, palette mode is also enabled for 4:2:2, 4:2:0 and monochrome chroma formats. The signaling of palette entries and palette indices is almost the same for all chroma formats. In case of non-monochrome formats, each palette entry consists of 3 components. For monochrome formats, each palette entry consists of a single component. For subsampled chroma direction, chroma samples are associated with luma sample indices that are divisible by 2. After reconstructing the palette index of the CU, only the first component of the palette entry is used if the sample has only a single component associated with it. The only difference in the signaling is in the escape component values. For each escape symbol, the number of escape component values signaled may be different, depending on the number of components associated with that symbol.
[0176] 2.6.4. Palettes in Dual Trees
[0177] In VVC, a dual-tree codec structure is used to encode and decode intra-frame slices, so the luma component and the two chroma components may have different palettes and palette indices. In addition, the two chroma components share the same palette and palette index.
[0178] 2.6.5. Line-based CG palette mode
[0179] The line-based CG palette mode is adopted in VVC. In this method, each CU of the palette mode is divided into multiple fragments of m samples based on the traversal scan mode (m=16 in this test). The encoding order of the palette run-length coding in each fragment is as follows: for each pixel, a context-coded binary bit run_copy_flag=0 is signaled to indicate whether the pixel has the same mode as the previous pixel, that is, if the previously scanned pixel and the current pixel are both run-type COPY_ABOVE, or if the previously scanned pixel and the current pixel are both run-type INDEX and the same index value. Otherwise, run_copy_flag=1 is signaled. If the mode of the pixel is different from that of the previous pixel, a context-coded binary bit copy_above_palette_indices_flag is signaled to indicate the run type of the pixel, that is, INDEX or COPY_ABOVE. As with palette mode in VTM6.0, the decoder does not have to parse the run type if the sample is in the first row (horizontal traversal scan) or the first column (vertical traversal scan) since INDEX mode is used by default. In addition, the decoder does not have to parse the run type if the previously parsed run type is COPY_ABOVE. After palette run-length encoding and decoding of pixels in a fragment, the index values (for INDEX mode) and quantization escape colors are bypassed and grouped separately from the encoding / parsing of context-coded bins to improve throughput within each line CG. Since the index values are now encoded / parsed after run-length encoding and decoding, rather than before palette run-length encoding and decoding as in VTM, the encoder does not have to signal the number of index values num_palette_indices_minus1 and the last run type copy_above_indices_for_final_run_flag.
[0180] 3. Technical Problems Solved by the Embodiments and Solutions Described in This Article
[0181] In the current design, ACT and luma BDPCM modes can be enabled for a block. However, chroma BDPCM mode is always disabled for blocks coded using ACT mode. Therefore, prediction signals may be derived differently for luma and chroma blocks in the same codec unit, which may be less efficient.
[0182] When ACT is enabled, the quantization parameter (QP) of a block can become negative.
[0183] The current design of ACT does not support lossless codecs.
[0184] The signaling of the use of ACT does not depend on the block size.
[0185] The maximum palette size and maximum predicted value size are fixed numbers, which may limit the flexibility of the palette mode.
[0186] The outlier samples use a third-order Exponential-Golomb (EG) as a binarization method, but the binarization of the outlier samples does not depend on a quantization parameter (QP).
[0187] 4. Technical Solutions
[0188] The technical solutions described below should be considered as examples to explain the general concept. These technical solutions should not be interpreted narrowly. In addition, these technical solutions can be combined in any way.
[0189] 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 from the three color components. The term "BDPCM" is not limited to designs in VVC, but it may refer to techniques that use different prediction signal generation methods to encode and decode the residual.
[0190] Interactions between ACT and BDPCM (items 1-4)
[0191] 1. Whether chroma BDPCM mode is enabled may depend on the use of ACT and / or luma BDPCM mode.
[0192] a. In one example, when ACT is enabled on a block, the indication of the use of the chroma BDPCM mode (eg, intra_bdpcm_chroma_flag) may be inferred as the indication of the use of the luma BDPCM mode (eg, intra_bdpcm_luma_flag).
[0193] i. In one example, the inferred value for chroma BDPCM mode is defined as (enable ACT and luma BDPCM mode? true:false).
[0194] 1. In one example, when intra_bdpcm_luma_flag is false, intra_bdpcm_chroma_flag may be set equal to false.
[0195] a. Alternatively, when intra_bdpcm_luma_flag is true, intra_bdpcm_chroma_flag may be set equal to true.
[0196] ii. Alternatively, in one example, if the indication of use of luma BDPCM mode and ACT for the block is true, then the indication of use of chroma BDPCM mode may be inferred to be true.
[0197] b. Alternatively, it may be possible to conditionally check whether the use of ACT for a block is signaled, e.g. using the same BDPCM prediction direction for luma and chroma samples in the block.
[0198] i. Alternatively, in addition, after using the BDPCM mode, an indication of the use of ACT is signaled.
[0199] 2. When ACT is enabled on a block, the indication of the prediction direction for the chroma BDPCM mode (eg intra_bdpcm_chroma_dir_flag) may be inferred as the indication of the used prediction direction for the luma BDPCM mode (eg intra_bdpcm_luma_dir_flag).
[0200] a. In one example, the inferred value of intra_bdpcm_chroma_dir_flag is defined as (ACT enabled? intra_bdpcm_luma_dir_flag: 0).
[0201] i. In one example, if the indication of the prediction direction for the luma BDPCM mode is horizontal, the indication of the prediction direction for the chroma BDPCM mode may be inferred to be horizontal.
[0202] ii. Alternatively, in one example, if the indication of the prediction direction for the luma BDPCM mode is vertical, then the indication of the prediction direction for the chroma BDPCM mode may be inferred to be vertical.
[0203] 3. ACT and BDPCM modes can be applied mutually exclusively.
[0204] a. In one example, when ACT mode is enabled on a block, BDPCM mode can be disabled on the block.
[0205] i. Alternatively, in addition, the indication of use of the ACT mode may be signaled after the indication of use of the BDPCM mode is signaled.
[0206] ii. Alternatively, furthermore, the indication of use of BDPCM mode may not be signaled and inferred to be false (0).
[0207] b. In one example, when BDPCM mode is enabled on a block, ACT mode can be disabled on the block.
[0208] i. Alternatively, in addition, the indication of use of the ACT mode may be signaled after the indication of use of the BDPCM mode is signaled.
[0209] ii. Alternatively, furthermore, the indication of the use of ACT mode may not be signaled and inferred to be false (0).
[0210] c. In one example, the BDPCM mode in the above example may represent a luma BDPCM mode and / or a chroma BDPCM mode.
[0211] 4. Inverse ACT may be applied before inverse BDPCM at the decoder.
[0212] a. In one example, ACT can be applied even when luma BDPCM and chroma BDPCM have different prediction modes.
[0213] b. Alternatively, at the encoder, forward ACT can be applied after BDPCM.
[0214] QP settings when ACT is enabled (item 5)
[0215] 5. It is proposed to trim QP when ACT is enabled.
[0216] a. In one example, the clipping 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.
[0217] i. In one example, l can be set equal to 0.
[0218] ii. In one example, h may be set equal to 63.
[0219] b. In one example, QP can be the qP given in Section 2.5.
[0220] c. In one example, clipping can be performed after QP adjustment in ACT mode.
[0221] d. In one example, when transform skip is applied, / may be set equal to the minimum allowed QP for transform skip mode.
[0222] Related palette modes (items 6-7)
[0223] 6. The values of the maximum allowed palette size and / or the maximum allowed predictor size may depend on codec characteristics. Assume that S1 is the maximum palette size (or palette predictor size) associated with a first codec characteristic; and S2 is the maximum palette size (or palette predictor size) associated with a second codec characteristic.
[0224] a. In one example, the codec characteristic may be a color component.
[0225] i. In one example, the maximum allowed palette size and / or maximum allowed prediction value size may have different values for different color components.
[0226] ii. In one example, the value of the maximum allowable palette size and / or the maximum allowable prediction value size of a first color component (e.g., Y in YCbCr, G in RGB) may be different from the values of the maximum allowable palette size and / or the maximum allowable prediction value size of the other two color components (e.g., Cb and Cr in YCbCr, B and R in RGB) excluding the first color component.
[0227] b. In one example, the codec characteristic may be a quantization parameter (QP).
[0228] i. In one example, if QP1 is greater than QP2, then S1 and / or S2 of QP1 should be less than S1 and / or S2 of QP2.
[0229] ii. In one example, the QP may be a slice-level QP or a block-level QP.
[0230] c. In one example, S2 may be greater than or equal to S1.
[0231] d. For the first codec feature and the second codec feature, the indication of the maximum palette size / palette prediction value size may be signaled separately or inferred from one to the other.
[0232] i. In one example, S1 may be signaled and S2 may be derived based on S1.
[0233] 1. In one example, S2 can be inferred to be S1n.
[0234] 2. In one example, S2 can be inferred as S1>>n.
[0235] 3. In one example, S2 can be inferred to be floor(S1 / n), where floor(x) represents the largest integer not greater than x.
[0236] e. In one example, S1 and / or S2 may be signaled at a high level (eg, SPS / PPS / PH / slice header) and adjusted at a low level (eg, CU / block).
[0237] i. How to adjust S1 and / or S2 may depend on codec information.
[0238] 1. How to adjust S1 and / or S2 may depend on the current QP.
[0239] a. In one example, if the current QP increases, S1 and / or S2 should be decreased.
[0240] 2. How to adjust S1 and / or S2 may depend on the block dimension.
[0241] a. In one example, if the current block size increases, S1 and / or S2 should increase.
[0242] f. S1 and / or S2 may depend on whether LMCS is used.
[0243] 7. Parameters associated with the binarization method of the escaped samples / pixels may depend on codec information, such as the quantization parameter (QP).
[0244] a. In one example, an EG binarization method may be used, and the order of the EG binarization, represented by k, may depend on codec information.
[0245] i. In one example, when the current QP increases, k can be decreased.
[0246] ACT Mode Signaling Notification (Items 8-10)
[0247] 8. An indication of the maximum and / or minimum allowed ACT size may be signaled at the sequence / video / slice / slice / sub-picture / tile / other video processing unit level or derived based on codec information.
[0248] a. In one example, they can be signaled in the SPS / PPS / picture header / slice header.
[0249] b. In one example, they can be signaled conditionally, such as based on enabled ACTs.
[0250] c. In one example, N levels of maximum and / or minimum allowed ACT sizes may be signaled / defined, eg, N=2.
[0251] i. In one example, the maximum and / or minimum allowed ACT size may be set to K0 or K1 (eg, K0 = 64, K1 = 32).
[0252] ii. Alternatively, in addition, an indication of the level may be signaled, for example, when N=2, a flag may be signaled.
[0253] d. In one example, the difference between the maximum and / or minimum allowed ACT size and the maximum and / or minimum allowed transform (or transform skip) size (eg, for luma components) may be signaled.
[0254] e. In one example, the maximum and / or minimum allowed ACT size (eg, for luma components) may be derived from the maximum and / or minimum allowed (or transform skipped) size.
[0255] f. Alternatively, whether and / or how the indication of ACT usage and other side information related to the ACT is signaled may also depend on the maximum and / or minimum values allowed.
[0256] 9. When a block is larger than the maximum allowed ACT size (or the maximum allowed transform size), the block can be automatically divided into multiple sub-blocks, where all sub-blocks share the same prediction mode (e.g., all sub-blocks are intra-coded) and ACT can be enabled at the sub-block level instead of the block level.
[0257] 10. An indication of the use of ACT mode may be conditionally signaled based on block dimensions (e.g., block width and / or block height, block width multiplied by height, ratio between block width and block height, maximum / minimum values of block width and block height) and / or maximum allowed ACT size.
[0258] a. In one example, an indication of the use of ACT mode may be signaled when certain conditions are met (eg, based on block dimensions).
[0259] i. In one example, the condition is whether the current block width is less than or equal to m and / or the current block height is less than or equal to n.
[0260] ii. In one example, the condition is whether the current block width multiplied by the height is less than or not greater than m.
[0261] iii. In one example, the condition is whether the current block width multiplied by the height is greater than or not less than m.
[0262] b. Alternatively, in one example, when certain conditions (e.g., based on block dimensions) are not met
[0263] When , the indication of the use of ACT mode may not be signaled.
[0264] i. In one example, the condition is whether the current block width is greater than m and / or the current block height is greater than n.
[0265] ii. In one example, the condition is whether the current block width multiplied by the height is less than or not greater than m.
[0266] iii. In one example, the condition is whether the current block width multiplied by the height is greater than or not less than m.
[0267] iv. Alternatively, furthermore, the indication of use of ACT mode may be inferred to be 0.
[0268] c. In the above examples, the variables m, n can be predefined (eg, 4, 64, 128), or signaled, or derived on the fly.
[0269] i. In one example, m and / or n may be derived based on decoded information in the SPS / PPS / APS / CTU row / CTU group / CU / block.
[0270] 1. In one example, m and / or n may be set equal to the maximum allowed transform size (eg, MaxTbSizeY).
[0271] Signaling of constraint flags in the general constraint information syntax (items 11-16)
[0272] The following constraint flags may be signaled in video units other than SPS. For example, they may be signaled in the generic constraint information syntax specified in JVET-P2001-vE.
[0273] 11. It is proposed to use a constraint flag to specify whether the SPS ACT enabled flag (eg, sps_act_enabled_flag) should be equal to 0.
[0274] a. In one example, this flag can be represented as no_act_constraint_flag
[0275] i. When this flag is equal to 1, the SPS ACT enabled flag (eg, sps_act_enabled_flag) shall be equal to 0.
[0276] ii. When this flag is equal to 0, it does not impose this constraint.
[0277] 12. It is proposed to use a constraint flag to specify whether the SPS BDPCM enabled flag (eg, sps_bdpcm_enabled_flag) should be equal to 0.
[0278] a. In one example, this flag may be denoted as no_bdpcm_constraint_flag.
[0279] i. When this flag is equal to 1, the SPS BDPCM enabled flag (eg, sps_bdpcm_enabled_flag) shall be equal to 0.
[0280] ii. When this flag is equal to 0, it does not impose this constraint.
[0281] 13. It is proposed to use a constraint flag to specify whether the SPS chroma BDPCM enabled flag (eg, sps_bdpcm_chroma_enabled_flag) should be equal to 0.
[0282] a. In one example, this flag may be denoted as no_bdpcm_chroma_constraint_flag.
[0283] i. When this flag is equal to 1, the SPS chroma BDPCM enabled flag (e.g., sps_bdpcm_chroma_enabled_flag) shall be equal to 0.
[0284] ii. When this flag is equal to 0, it does not impose this constraint.
[0285] 14. It is proposed to use a constraint flag to specify whether the SPS palette enabled flag (eg, sps_palette_enabled_flag) should be equal to 0.
[0286] a. In one example, this flag may be denoted as no_palette_constraint_flag.
[0287] i. When this flag is equal to 1, the SPS palette enabled flag (e.g., sps_palette_enabled_flag) should be equal to 0.
[0288] ii. When this flag is equal to 0, it does not impose this constraint.
[0289] 15. It is proposed to use a constraint flag to specify whether the SPS RPR enable flag (eg, ref_pic_resampling_enabled_flag) should be equal to 0.
[0290] a. In one example, this flag may be denoted as no_ref_pic_resampling_constraint_flag.
[0291] i. When this flag is equal to 1, the SPS RPR enable flag (eg, ref_pic_resampling_enabled_flag) shall be equal to 0.
[0292] ii. When this flag is equal to 0, it does not impose this constraint.
[0293] 16. In the above examples (bullets 11-15), such a constraint flag may be signaled conditionally, for example, depending on the chroma format (eg, chroma_format_idc) and / or individual plane codecs or ChromaArrayType.
[0294] ACT QP offset (items 17-19)
[0295] 17. It is proposed that when applying ACT to a block, the ACT offset may be applied after applying other chroma offsets (eg, chroma offsets in the PPS and / or picture header (PH) and / or slice header (SH)).
[0296] 18. It is proposed to set PPS and / or PH offset other than -5 for JCbCr mode 2 when applying YCgCo color transform on blocks.
[0297] a. In one example, the offset can be a number other than -5.
[0298] b. In one example, the offset may be indicated in the PPS (eg, as pps_act_cbcr_qp_offset_plus6), and the offset may be set to pps_act_cbcr_qp_offset_plus6-6.
[0299] c. In one example, the offset may be indicated in the PPS (eg, as pps_act_cbcr_qp_offset_plus7), and the offset may be set to pps_act_cbcr_qp_offset_plus7-7.
[0300] 19. It is proposed to set PPS and / or PH offset other than 1 for JCbCr mode 2 when applying YCgCo-R on a block.
[0301] a. In one example, the offset may be a number other than -1.
[0302] b. In one example, the offset may be indicated in the PPS (eg, as pps_act_cbcr_qp_offset), and the offset may be set to pps_act_cbcr_qp_offset.
[0303] c. In one example, the offset may be indicated in the PPS (eg, as pps_act_cbcr_qp_offset_plus1), and the offset may be set to pps_act_cbcr_qp_offset_plus1-1.
[0304] General Examples (Items 20-21)
[0305] 20. In the above examples, S1, S2, l, h, m, n and / or k are integers and may depend on a. the message signaled in DPS / SPS / VPS / PPS / APS / picture header / slice header / slice group header / largest codec unit (LCU) / codec unit (CU) / LCU row / LCU group / TU / PU block / video codec unit
[0306] b. Location of CU / PU / TU / block / video codec unit
[0307] c. Codec mode for blocks containing samples along edges
[0308] d. Transformation matrix applied to blocks containing samples along edges
[0309] e. Block dimensions / block shapes of the current block and / or its neighboring blocks
[0310] f. Color format indication (e.g. 4:2:0, 4:4:4, RGB, or YUV)
[0311] g. Codec tree structure (e.g. dual tree or single tree)
[0312] h. Slice / slice group type and / or picture type
[0313] i. Color component (e.g., may only apply to Cb or Cr)
[0314] j. Time domain layer ID
[0315] k. Standard grade / level / tier
[0316] 1. Alternatively, S1, S2, l, h, m, n and / or k can be signaled to the decoder.
[0317] 21. The above proposed method can be applied under certain conditions.
[0318] a. In one example, the condition is that the color format is 4:2:0 and / or 4:2:2.
[0319] b. In one example, the indication of the use of the above method can be signaled in the sequence / picture / slice / slice / tile / video region level (eg SPS / PPS / picture header / slice header).
[0320] c. In one example, the use of the above method may depend on
[0321] i. Video content (e.g., screen content or natural content)
[0322] ii. Messages signaled in DPS / SPS / VPS / PPS / APS / picture header / slice header / slice group header / LCU / CU / LCU line / LCU group / TU / PU block / video codec unit
[0323] iii. Location of CU / PU / TU / block / video codec unit
[0324] iv. Codec mode for blocks containing samples along edges
[0325] v. The transformation matrix applied to the block containing the samples along the edge
[0326] vi. Block dimensions of the current block and / or its neighboring blocks
[0327] vii. Block shape of the current block and / or its neighboring blocks
[0328] viii. Color format indication (e.g., 4:2:0, 4:4:4, RGB, or YUV)
[0329] ix. Codec tree structure (e.g., dual tree or single tree)
[0330] x. Slice / slice group type and / or picture type
[0331] xi. Color components (e.g., may apply only to Cb or Cr)
[0332] xii. Time domain layer ID
[0333] xiii. Standard grades / levels / tiers
[0334] xiv. Alternatively, m and / or n may be signaled to the decoder.
[0335] 5. Examples
[0336] The examples are based on JVET-P2001-vE. Newly added text is used Bold, italic, underlined text Highlighted. Deleted text is marked with italic text.
[0337] 5.1 Example #1
[0338] This embodiment involves interaction between ACT and BDPCM modes.
[0339]
[0340]
[0341] 5.2. Example #2
[0342] This embodiment involves interaction between ACT and BDPCM modes.
[0343] Equal to 1 specifies that BDPCM is applied to the current chroma codec block at position (x0, y0), i.e., transform is skipped, and the intra chroma prediction mode is specified by intra_bdpcm_chroma_dir_flag. Intra_bdpcm_chroma_flag equal to 0 specifies that BDPCM is not applied to the current chroma codec block at position (x0, y0).
[0344] When intra_bdpcm_chroma_flag is not present and When false, it is inferred to be equal to 0.
[0345]
[0346] For x0..x0+cbWidth-1, y=y0..y0+cbHeight-1, and cIdx=1..2, the variable BdpcmFlag[x][y][cIdx] is set equal to intra_bdpcm_chroma_flag.
[0347] Equal to 0 specifies that the BDPCM prediction direction is horizontal. intra_bdpcm_chroma_dir_flag equal to 1 specifies that the BDPCM prediction direction is vertical.
[0348] The variable BdpcmDir[x][y][cIdx] is set equal to intra_bdpcm_chroma_dir_flag (x=x0..x0+cbWidth-1, y=y0..y0+cbHeight-1 and cIdx=1..2).
[0349] 5.3. Example #3
[0350] This embodiment is related to QP setting.
[0351] 8.7.3 Scaling of Transform Coefficients
[0352] The inputs to this process are:
[0353] Specifies the luminance position (xTbY, yTbY) of the upper left luminance sample of the current luminance transform block relative to the upper left luminance sample of the current picture.
[0354] The variable nTbW specifies the transform block width,
[0355] The variable nTbH specifies the transform block height,
[0356] The variable predMode specifies the prediction mode of the codec unit.
[0357] The variable cIdx specifies the color component of the current block.
[0358] The output of this process is an (nTbW) x (nTbH) array d of scaled transform coefficients with elements d[x][y].
[0359] …
[0360] The quantization parameter qP is modified, and the variables rectNonTsFlag and bdShift are derived as follows:
[0361] If transform_skip_flag[xTbY][yTbY][cIdx] is equal to 0, the following applies:
[0362] qP=qP-(cu_act_enabled_flag[xTbY][yTbY]?5:0) (1133)
[0363]
[0364] rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1)? 1:0(1134)
[0365]
[0366] Otherwise (transform_skip_flag[xTbY][yTbY][cIdx] is equal to 1), the following applies:
[0367]
[0368]
[0369] rectNonTsFlag=0 (1137)
[0370] bdShift=10 (1138)
[0371] …
[0372] 5.4. Example #4
[0373] 8.7.1 Derivation Process of Quantization Parameters
[0374] …
[0375] The chrominance quantization parameters for the Cb and Cr components, Qp'Cb and Qp'Cr, and the joint Cb-Cr codec Qp'CbCr are derived as follows:
[0376] Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset (1122)
[0377] Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset (1123)
[0378] Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset (1124)
[0379] 5.5. Example #5
[0380] 7.3.9.5 Codec unit syntax
[0381]
[0382] K0 and K1 are set equal to 32.
[0383] 5.6. Example #6
[0384] 7.3.9.5 Codec unit syntax
[0385]
[0386] Figure 7 is a block diagram illustrating an example video processing system 700 in which various embodiments disclosed herein may be implemented. Various implementations may include some or all of the components of system 700. System 700 may include an input 702 for receiving video content. The video content may be received in a raw or uncompressed format, such as 8 or 10-bit multi-component pixel values, or may be received in a compressed or encoded format. Input 702 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces, such as Ethernet, a passive optical network (PON), etc., and wireless interfaces, such as Wi-Fi or a cellular interface.
[0387] System 700 may include a codec component 704 that implements various codecs or encoding methods described in this document. The codec component 704 can reduce the average bit rate of the video from input 702 to the output of the codec component 704 to generate a codec representation of the video. Therefore, codec embodiments are sometimes referred to as video compression or video transcoding embodiments. The output of the codec component 704 can be stored or transmitted via the communication connected to the component 706. The stored or transmitted bitstream (or codec) representation of the video received at the input 702 can be used by component 708 to generate pixel values or displayable video sent to the display interface 710. The process of generating user-visible video from the bitstream representation is sometimes referred to as video decompression. In addition, although some video processing operations are referred to as "codec" operations or tools, it will be understood that the encoding tools or operations are used at the encoder, and the corresponding decoding tools or operations that reverse the encoding results will be performed by the decoder.
[0388] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB), High-Definition Multimedia Interface (HDMI), or DisplayPort, etc. Examples of storage interfaces include Serial Advanced Technology Attachment (SATA), Peripheral Component Interconnect (PCI), Integrated Drive Electronics (IDE) interface, etc. The embodiments described in this document may be embodied in various electronic devices, such as mobile phones, laptop computers, smartphones, or other devices capable of performing digital data processing and / or video display.
[0389] Figure 8 800 is a block diagram of a video processing device 800. The device 800 can be used to implement one or more methods described herein. The device 800 can be embodied in a smartphone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. The device 800 may include one or more processors 802, one or more memories 804, and video processing hardware 806. The processor 802 can be configured to implement one or more methods described in this document. The one or more memories 804 can be used to store data and code for implementing the methods and embodiments described herein. The video processing hardware 806 can be used to implement some embodiments described in this disclosure in hardware circuits. In some embodiments, the hardware 806 can be partially or entirely located in the processor 802 (e.g., a graphics processor).
[0390] Figure 9 is a block diagram illustrating an example video encoding and decoding system 100 in which embodiments of the present disclosure may be utilized. Figure 9As shown, video codec system 100 may include source device 110 and destination device 120. Source device 110 generates encoded video data, which may be referred to as a video encoding device. Destination device 120 may decode the encoded video data generated by source device 110, which may be referred to as a video decoding device. Source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.
[0391] The video source 112 may include a source such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of these sources. The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a sequence of bits that form a codec representation of the video data. The bitstream may include a codec picture and associated data. The codec picture is a codec representation of the picture. The associated data may include a sequence parameter set, a picture parameter set, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The encoded video data may be sent directly to the destination device 120 via the network 130a via the I / O interface 116. The encoded video data may also be stored on a storage medium / server 130b for access by the destination device 120.
[0392] Destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .
[0393] I / O interface 126 may include a receiver and / or a modem. I / O interface 126 may obtain encoded video data from source device 110 or storage medium / server 130b. Video decoder 124 may decode the encoded video data. Display device 122 may display the decoded video data to a user. Display device 122 may be integrated with destination device 120 or may be external to destination device 120, with destination device 120 configured to interface with an external display device.
[0394] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the HEVC standard, the Versatile Video Codec (VVM) standard, and other current and / or emerging standards.
[0395] Figure 10 is a block diagram illustrating an example of a video encoder 200, which may be Figure 9 The video encoder 114 in the system 100 is shown.
[0396] The video encoder 200 may be configured to perform any or all of the embodiments of the present disclosure. Figure 10 In the example of FIG, the video encoder 200 includes multiple functional components. The embodiments described in this disclosure 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 embodiments described in this disclosure.
[0397] The functional components of the video encoder 200 may include a segmentation unit 201, a prediction unit 202 which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205 and an intra-frame prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213 and an entropy coding unit 214.
[0398] 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 IBC unit. The IBC unit may perform prediction in an IBC mode, where at least one reference picture is a picture in which the current video block is located.
[0399] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but for the purpose of explanation, are not shown in FIG. Figure 10 are represented separately in the examples.
[0400] The partitioning unit 201 may partition a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.
[0401] The mode selection unit 203 can, for example, select one of the coding modes, intra or inter, based on the error result, and provide the resulting intra or inter coded block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 to reconstruct the coded block for use as a reference picture. In some examples, the mode selection unit 203 can select a combination of intra prediction and inter prediction (CIIP) modes, where the prediction is based on an inter prediction signal and an intra prediction signal. The mode selection unit 203 can also select a resolution of motion vectors for the block in the case of inter prediction (e.g., sub-pixel or integer pixel precision).
[0402] To perform inter-frame prediction on the current video block, the motion estimation unit 204 may generate motion information for the current video block by comparing the current video block with one or more reference frames from the buffer 213. The motion compensation unit 205 may determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from the buffer 213 (except the picture associated with the current video block).
[0403] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block, eg, depending on whether the current video block is in an I slice, a P slice, or a B slice.
[0404] In some examples, motion estimation unit 204 may perform unidirectional prediction on the current video block, and motion estimation unit 204 may search for a reference video block for the current video block in the reference pictures in list 0 or list 1. Motion estimation unit 204 may then generate a reference index indicating the reference picture 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 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 for the current video block.
[0405] In other examples, the motion estimation unit 204 may perform bidirectional prediction on the current video block. The motion estimation unit 204 may search for a reference video block for the current video block in the reference pictures in list 0 and may also search for another reference video block for the current video block in the reference pictures in list 1. The motion estimation unit 204 may then generate a reference index indicating the reference pictures in list 0 and list 1 containing the reference video block, and a motion vector indicating the spatial displacement between the reference video block and the current video block. The motion estimation unit 204 may output the reference index and motion vector for the current video block as motion information for the current video block. The 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.
[0406] In some examples, motion estimation unit 204 may output a complete set of motion information for use in the decoding process of the decoder.
[0407] In some examples, motion estimation unit 204 may not output a complete set of motion information for the current video. Instead, motion estimation unit 204 may reference motion information of another video block to signal the motion information for the current video block. For example, motion estimation unit 204 may determine that the motion information for the current video block is sufficiently similar to the motion information for a neighboring video block.
[0408] In one example, motion estimation unit 204 may indicate a value in a syntax structure associated with the current video block that indicates to video decoder 300 that the current video block has the same motion information as another video block.
[0409] In another example, the motion estimation unit 204 can identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. The video decoder 300 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.
[0410] As discussed above, the video encoder 200 may predictively signal motion vectors.Two examples of predictive signaling embodiments that may be implemented by the video encoder 200 include advanced motion vector prediction (AMVP) and merge mode signaling.
[0411] The intra-frame prediction unit 206 can perform intra-frame prediction on the current video block. When the intra-frame prediction unit 206 performs intra-frame prediction on the current video block, the intra-frame prediction unit 206 can generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block may include a predicted video block and various syntax elements.
[0412] The residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the predicted video block of the current video block from the current video block. The residual data for the current video block may include residual video blocks corresponding to different sample components of the samples in the current video block.
[0413] In other examples, such as in skip mode, there may be no residual data for the current video block, and the residual generation unit 207 may not perform a subtraction operation.
[0414] Transform processing unit 208 may generate one or more transform coefficient video blocks for a current video block by applying one or more transforms to a residual video block associated with the current video block.
[0415] 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.
[0416] The inverse quantization unit 210 and the 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. The reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more predicted video blocks generated by the prediction unit 202 to generate a reconstructed video block associated with the current block for storage in the buffer 213.
[0417] After the reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video block artifacts in the video block.
[0418] The entropy coding unit 214 may receive data from other functional components of the video encoder 200. When the entropy coding unit 214 receives the data, the entropy coding unit 214 may perform one or more entropy coding operations to generate entropy-coded data and output a bitstream including the entropy-coded data.
[0419] Figure 11 is a block diagram illustrating an example of a video decoder 300, which may be Figure 9 The video decoder 114 in the system 100 is shown.
[0420] The video decoder 300 may be configured to perform any or all of the embodiments of the present disclosure. Figure 11 In the example of FIG, the video decoder 300 includes multiple functional components. The embodiments described in this disclosure can be shared between the various components of the video decoder 300. In some examples, the processor can be configured to perform any or all of the embodiments described in this disclosure.
[0421] exist Figure 11 In the example of FIG. 3 , the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform operations generally similar to those described with respect to the video encoder 200 ( Figure 10 ) is the reverse of the encoding process described in .
[0422] The entropy decoding unit 301 can retrieve a coded bitstream. The coded bitstream can include entropy-coded video data (e.g., coded blocks of video data). The entropy decoding unit 301 can decode the entropy-coded video data, and the motion compensation unit 302 can determine motion information from the entropy-decoded video data, which includes motion vectors, motion vector precision, reference picture list index, and other motion information. For example, the motion compensation unit 302 can determine this information by performing AMVP and merge modes.
[0423] The motion compensation unit 302 may generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier of the interpolation filter used with sub-pixel precision may be included in a syntax element.
[0424] The motion compensation unit 302 may calculate interpolated values of sub-integer pixels of the reference block using the interpolation filter used by the video encoder 20 during encoding of the video block. The motion compensation unit 302 may determine the interpolation filter used by the video encoder 200 based on received syntax information and use the interpolation filter to generate a prediction block.
[0425] The motion compensation unit 302 may use some syntax information to determine the size of blocks used to encode frames and / or slices of the coded video sequence, partitioning information describing how each macroblock of a picture of the coded video sequence is partitioned, a mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-frame coded block, and other information used to decode the coded video sequence.
[0426] The intra prediction unit 303 can form a prediction block based on spatially neighboring blocks using, for example, an intra prediction mode received in the bitstream. The inverse quantization unit 303 inversely quantizes (i.e., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 applies an inverse transform.
[0427] The reconstruction unit 306 can sum the residual block with the corresponding prediction block generated by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If necessary, a deblocking filter can also be applied to filter the decoded block to remove blocking artifacts. The decoded video block is then stored in the buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction and also produces decoded video for presentation on a display device.
[0428] Figure 12-24 An example method for implementing the above technical solution is shown, for example, Figure 7-11 The embodiment shown in .
[0429] Figure 12 A flow chart of an example method 1200 of video processing is shown. At operation 1210, the method 1200 includes determining an allowed maximum size and / or allowed minimum size for an ACT mode for encoding and decoding a current video block of a video for conversion between the current video block and a bitstream of the video.
[0430] At operation 1220 , method 1200 includes performing a conversion based on the determination.
[0431] Figure 13A flow chart of an example method 1300 for video processing is shown. At operation 1310, the method 1300 includes determining, for conversion between a current video block of a video and a bitstream of the video, a maximum allowable palette size and / or a minimum allowable predictor size for a palette mode used to encode or decode the current video block, the maximum allowable palette size and / or the minimum allowable predictor size being based on codec characteristics of the current video block.
[0432] At operation 1320 , method 1300 includes performing a conversion based on the determination.
[0433] Figure 14 A flow chart of an example method 1400 for video processing is shown. At operation 1410, the method 1400 includes performing a conversion between a current video block of a video and a bitstream of the video, the current video block being encoded and decoded using a palette mode codec, and the bitstream conforming to a format rule that specifies that parameters associated with binarization of escape symbols for the current video block in the bitstream are based on codec information for the current video block.
[0434] Figure 15 A flow chart of an example method 1500 for video processing is shown. At operation 1510, the method 1500 includes, for conversion between a video including a block and a bitstream of the video, determining that a size of the block is greater than a maximum allowed size for an ACT mode.
[0435] At operation 1520 , method 1500 includes performing conversion based on the determination, and in response to the size of the block being greater than a maximum allowed size of the ACT mode, the block is partitioned into a plurality of sub-blocks, each of the plurality of sub-blocks shares the same prediction mode, and the ACT mode is enabled at a sub-block level.
[0436] Figure 16 A flow chart of an example method 1600 for video processing is shown. At operation 1610, the method 1600 includes performing a conversion between a current video block of a video and a bitstream of the video, the bitstream conforming to a format rule that specifies whether to signal in the bitstream whether an indication of use of an ACT mode for the current video block is based on at least one of a dimension of the current video block or a maximum allowed size for the ACT mode.
[0437] Figure 17 A flow chart of an example method 1700 for video processing is shown. At operation 1710, the method 1700 includes performing a conversion between a current video unit of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying whether a first flag is included in the bitstream, and the first flag indicates whether a second flag in a sequence parameter set (SPS) specifies that an ACT mode for the current video unit is disabled.
[0438] Figure 18 A flow chart of an example method 1800 for video processing is shown. At operation 1810, the method 1800 includes performing a conversion between a current video unit of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying whether a first flag is included in the bitstream, and the first flag indicating whether a second flag in an SPS specifies that a BDPCM mode for the current video unit is disabled.
[0439] Figure 19 A flow chart of an example method 1900 for video processing is shown. At operation 1910, the method 1900 includes performing a conversion between a current video unit of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying whether a first flag is included in the bitstream, and the first flag indicates whether a second flag in an SPS specifies that a BDPCM mode for a chroma component of the current video unit is disabled.
[0440] Figure 20 A flow chart of an example method 2000 for video processing is shown. At operation 2010, the method 2000 includes performing a conversion between a current video unit of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying whether a first flag is included in the bitstream, and the first flag indicating whether a second flag in an SPS specifies that a palette for the current video unit is disabled.
[0441] Figure 21 A flow chart of an example method 2100 for video processing is shown. At operation 2110, the method 2100 includes performing a conversion between a current video unit of a video and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying whether a first flag is included in the bitstream, and the first flag indicating whether a second flag in an SPS specifies that an RPR mode for the current video unit is disabled.
[0442] Figure 22 A flow chart of an example method 2200 of video processing is shown. At operation 2210, the method 2200 includes performing a conversion between a current video block of a video and a bitstream of the video according to a rule that specifies applying an additional quantization parameter offset when ACT mode is enabled for the current video block.
[0443] Figure 23A flow chart of an example method 2300 for video processing is shown. At operation 2310, the method 2300 includes performing a conversion between a current video block of a video and a bitstream representation of the video according to a rule, the current video block being encoded or decoded using a joint CbCr codec mode in which a YCgCo color transform or an inverse YCgCo color transform is applied to the current video block, and the rule specifying that a quantization parameter offset value different from -5 be used in a PH or PPS associated with the current video block because the current video block is encoded or decoded using the joint CbCr codec mode in which a YCgCo color transform is used.
[0444] Figure 24 A flow chart of an example method 2400 for video processing is shown. At operation 2410, the method 2400 includes performing a conversion between a current video block of a video and a bitstream representation of the video according to a rule, the current video block being coded using a joint CbCr codec mode in which a YCgCo-R color transform or an inverse YCgCo-R color transform is applied to the current video block, and the rule specifying that a quantization parameter offset value different from a predetermined offset be used in a PH or PPS associated with the current video block because the current video block is coded using the joint CbCr codec mode in which the YCgCo-R color transform is used.
[0445] A list of preferred solutions for some embodiments is provided below.
[0446] A1. A video processing method, comprising determining an allowed maximum size and / or allowed minimum size of an ACT mode for encoding and decoding a current video block for conversion between a current video block of a video and a bitstream of the video; and performing conversion based on the determination.
[0447] A2. The method according to solution A1, wherein the allowed maximum size or the allowed minimum size of the ACT mode is based on the allowed maximum size or the allowed minimum size of the transform block or the transform skip block of the color component.
[0448] A3. The method according to solution A2, wherein the color component is a luminance component.
[0449] A4. The method according to solution A1, wherein the indication of the ACT mode is signaled in the bitstream based on an allowed maximum size or an allowed minimum size.
[0450] A5. The method according to solution A1, wherein the side information related to the ACT mode is signaled in the bitstream based on an allowed maximum size or an allowed minimum size.
[0451] A6. The method according to solution A1, wherein the maximum allowed size or the minimum allowed size is signaled in the SPS, PPS, picture header or slice header.
[0452] A7. The method according to solution A1, wherein when ACT mode is enabled, the maximum allowed size or the minimum allowed size is signaled in the bitstream.
[0453] A8. The method according to solution A1, wherein the maximum allowed size is K0 and the minimum allowed size is K1, and wherein K0 and K1 are positive integers.
[0454] A9. Method according to solution A8, wherein K0=64 and K1=32.
[0455] A10. Method according to solution A1, wherein the difference between the allowed maximum size or the allowed minimum size of an ACT codec block and the corresponding size of a transform block or a transform skip block is signaled in the bitstream.
[0456] A11. A video processing method, comprising determining a maximum allowable palette size and / or a minimum allowable prediction value size for a palette mode used to encode and decode a current video block of a video for conversion between a current video block of the video and a bitstream of the video; and performing the conversion based on the determination, wherein the maximum allowable palette size and / or the minimum allowable prediction value size are based on the encoding and decoding characteristics of the current video block.
[0457] A12. The method of solution A11, wherein the codec characteristic is a color component of the video, and wherein the maximum allowed palette size is different for different color components.
[0458] A13. The method according to solution A11, wherein the codec characteristic is a quantization parameter.
[0459] A14. A method according to solution A11, wherein S1 is the maximum allowable palette size or the minimum allowable prediction value size associated with the first codec characteristic, and S2 is the maximum allowable palette size or the minimum allowable prediction value size associated with the second codec characteristic, and wherein S1 and S2 are positive integers.
[0460] A15. The method of solution A14, wherein S2 is greater than or equal to S1.
[0461] A16. The method according to solution A14, wherein S1 and S2 are signaled separately in the bitstream.
[0462] A17. The method according to solution A14, wherein S1 is signaled in the bitstream, and wherein S2 is inferred or derived from S1.
[0463] A18. The method according to solution A17, wherein S2 = S1 - n, where n is a non-zero integer.
[0464] A19. The method according to solution A14, wherein S1 and S2 are signaled at a first level and adjusted at a second level lower than the first level.
[0465] A20. The method according to solution A19, wherein the first level is sequence level, picture level or slice level, and wherein the second level is codec level or block level.
[0466] A21. The method of solution A14, wherein S1 and S2 are based on whether luma mapping with chroma scaling (LMCS) is applied to the current video block.
[0467] A22. A video processing method, comprising performing a conversion between a current video block of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the current video block is encoded and decoded using a palette mode codec tool, and wherein the format rule specifies that parameters associated with binarization of escape symbols of the current video block in the bitstream are based on codec information of the current video block.
[0468] A23. The method of solution A22, wherein the codec information comprises one or more quantization parameters.
[0469] A24. The method according to solution A22, wherein the binarization uses an exponential Golomb binarization method of order k, wherein k is a non-negative integer based on codec information.
[0470] A25. A video processing method, comprising determining, for conversion between a video comprising the block and a bitstream of the video, that a size of the block is greater than a maximum allowable size of an ACT mode; and performing conversion based on the determination, wherein, in response to the size of the block being greater than the maximum allowable size of the ACT mode, the block is partitioned into a plurality of sub-blocks, and wherein each of the plurality of sub-blocks shares the same prediction mode, and the ACT mode is enabled at the sub-block level.
[0471] A26. A video processing method comprising performing a conversion between a current video block of a video and a bitstream of the video, wherein the bitstream conforms to a format rule that specifies whether to signal in the bitstream an indication of using an ACT mode on the current video block based on at least one of a dimension of the current video block or a maximum allowed size of the ACT mode.
[0472] A27. The method of solution A26, wherein the signaling indication is due to a width of the current video block being less than or equal to m or a height of the current video block being less than or equal to n, where m and n are positive integers.
[0473] A28. The method of solution A26, wherein the indication is signaled because the product of the width of the current video block and the height of the current video block is less than or equal to m, where m is a positive integer.
[0474] A29. The method of solution A26, wherein there is no signaling indication due to the width of the current video block being greater than m or the height of the current video block being greater than n, where m and n are positive integers.
[0475] A30. A method according to any of solutions A27 to A29, wherein m is predefined.
[0476] A31. A method according to any one of solutions A27 to A29, wherein m is derived based on a decoded message in an SPS, PPS, Adaptive Parameter Set (APS), CTU row, CTU group, CU or block.
[0477] A32. The method of solution A26, wherein the indication is not signaled and is inferred to be zero.
[0478] Another list of preferred solutions for some embodiments is provided next.
[0479] B1. A video processing method, comprising performing conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling an ACT mode for the current video unit.
[0480] B2. The method according to solution B1, wherein the first flag includes common constraint information of one or more pictures in the output layer set of the video.
[0481] B3. Method according to solution B1 or B2, wherein the first flag is no_act_constraint_flag, and wherein the second flag is sps_act_enabled_flag.
[0482] B4. The method according to any of the solutions B1 to B3, wherein the second flag is equal to zero due to the first flag being equal to one.
[0483] B5. Method according to any of the solutions B1 to B3, wherein the second flag equal to zero specifies that the ACT mode is disabled for the current video unit.
[0484] B6. The method according to any of the solutions B1 to B3, wherein the second flag can be equal to zero or one due to the first flag being equal to zero.
[0485] B7. A video processing method, comprising performing conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling BDPCM mode for the current video unit.
[0486] B8. The method of solution B7, wherein the first flag comprises common constraint information for one or more pictures in the output layer set of the video.
[0487] B9. The method according to solution B7 or B8, wherein the first flag is no_bdpcm_constraint_flag, and wherein the second flag is sps_bdpcm_enabled_flag.
[0488] B10. The method according to any of the solutions B7 to B9, wherein, since the first flag is equal to one, the second flag is equal to zero.
[0489] B11. The method according to any of solutions B7 to B9, wherein the second flag equal to zero specifies that BDPCM mode is disabled for the current video unit.
[0490] B12. The method of any of solutions B7 to B9, wherein, since the first flag is equal to zero, the second flag can be equal to zero or one.
[0491] B13. A video processing method, comprising performing conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling a BDPCM mode for a chroma component of the current video unit.
[0492] B14. The method according to solution B13, wherein the first flag comprises common constraint information for one or more pictures in the output layer set of the video.
[0493] B15. Method according to solution B13 or B14, wherein the first flag is no_bdpcm_chroma_constraint_flag, and wherein the second flag is sps_bdpcm_chroma_enabled_flag.
[0494] B16. The method according to any of the solutions B13 to B15, wherein, since the first flag is equal to one, the second flag is equal to zero.
[0495] B17. Method according to any of solutions B13 to B15, wherein the second flag equal to zero specifies that BDPCM mode is disabled for the chroma components of the current video unit.
[0496] B18. The method according to any of the solutions B13 to B15, wherein, since the first flag is equal to zero, the second flag can be equal to zero or one.
[0497] B19. A video processing method, comprising performing a conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling a palette mode for the current video unit.
[0498] B20. The method of solution B19, wherein the first flag comprises common constraint information for one or more pictures in the output layer set of the video.
[0499] B21. Method according to solution B19 or B20, wherein the first flag is no_palette_constraint_flag, and wherein the second flag is sps_palette_enabled_flag.
[0500] B22. The method according to any of the solutions B19 to B21, wherein, since the first flag is equal to one, the second flag is equal to zero.
[0501] B23. The method of any of solutions B19 to B21, wherein the second flag equal to zero specifies that palette mode is disabled for the current video unit.
[0502] B24. A method according to any of solutions B19 to B21, wherein, since the first flag is equal to zero, the second flag can be equal to zero or one.
[0503] B25. A video processing method, comprising performing conversion between a current video unit of a video and a bitstream of the video, wherein the bitstream conforms to a format rule, wherein the format rule specifies whether a first flag is included in the bitstream, and wherein the first flag indicates whether a second flag in an SPS specifies disabling an RPR mode for the current video unit.
[0504] B26. The method of solution B25, wherein the first flag comprises common constraint information for one or more pictures in the output layer set of the video.
[0505] B27. Method according to solution B25 or B26, wherein the first flag is no_ref_pic_resampling_constraint_flag, and wherein the second flag is ref_pic_resampling_enabled_flag.
[0506] B28. A method according to any of solutions B25 to B27, wherein, since the first flag is equal to one, the second flag is equal to zero.
[0507] B29. Method according to any of the solutions B25 to B27, wherein the second flag equal to zero specifies that the RPR mode is disabled for the current video unit.
[0508] B30. A method according to any of solutions B25 to B27, wherein, since the first flag is equal to zero, the second flag can be equal to zero or one.
[0509] B31. The method according to any of the solutions B1 to B30, wherein the format rule further specifies whether to signal the first flag in the bitstream is based on a condition.
[0510] B32. The method of solution B31, wherein the condition is the type of chroma format of the video.
[0511] Next, another list of preferred solutions for some embodiments is provided.
[0512] C1. A video processing method, comprising performing conversion between a current video block of a video and a bitstream of the video according to a rule, the rule specifying application of an additional quantization parameter offset when an ACT mode is enabled for the current video block.
[0513] C2. Method according to solution C1, wherein the additional quantization parameter offset is applied after applying the one or more chroma offsets.
[0514] C3. Method according to solution C2, wherein one or more chroma offsets are specified in the PPS, PH or slice header SH.
[0515] C4. A video processing method, comprising performing a conversion between a current video block of a video and a bitstream representation of the video according to a rule, wherein the current video block is encoded or decoded using a joint CbCr codec mode, wherein a YCgCo color transform or a YCgCo inverse color transform is applied to the current video block, and wherein the rule specifies that since the current video block is encoded or decoded using the joint CbCr codec mode in which the YCgCo color transform is used, a quantization parameter offset value different from -5 is used in a PH or PPS associated with the current video block.
[0516] C5. The method of solution C4, wherein the joint CbCr mode includes JCbCr mode 2.
[0517] C6. A video processing method, comprising performing a conversion between a current video block of a video and a bitstream representation of the video according to a rule, wherein the current video block is encoded and decoded using a joint CbCr codec mode, wherein a YCgCo-R color transform or a YCgCo-R inverse color transform is applied to the current video block, and wherein the rule stipulates that: since the current video block is encoded and decoded using the joint CbCr codec mode in which the YCgCo-R color transform is used, a quantization parameter offset value different from a predetermined offset is used in a PH or PPS associated with the current video block.
[0518] C7. The method of solution C6, wherein the joint CbCr mode includes JCbCr mode 2.
[0519] C8. The method according to solution C6 or C7, wherein the predetermined offset is 1.
[0520] C9. The method according to solution C6 or C7, wherein the predetermined offset is -1.
[0521] Next, another list of preferred solutions for some embodiments is provided.
[0522] P1. A video processing method, comprising determining whether to enable a chroma block-based delta pulse codec modulation (BDPCM) mode for a video block of a video based on whether an adaptive color transform (ACT) mode and / or a luminance BDPCM mode is enabled for the video block; and performing conversion between a video block and a bitstream representation of the video based on the determination.
[0523] P2. The method of solution P1, wherein signaling of a first value of a first flag associated with enabling chroma BDPCM mode is determined based on signaling of ACT mode enabled for the video block and signaling of a second value of a second flag associated with use of luma BDPCM mode.
[0524] P3. The method according to solution P2, wherein the first value of the first flag has a false value in response to the ACT mode being enabled and the second value of the second flag having a false value.
[0525] P4. Method according to solution P2, wherein the first value of the first flag has a true value in response to the second value of the second flag having a true value.
[0526] P5. Method according to solution P1, wherein the signaling of the ACT mode of the video block is conditionally based on the same BDPCM prediction direction for luma samples and chroma samples of the video block.
[0527] P6. Method according to solution P5, wherein the signaling of the ACT mode is indicated after the signaling of the chroma BDPCM mode and the luma BDPCM mode.
[0528] P7. Method according to solution P1, wherein, in response to use of the ACT mode being enabled, the first value indicating the first prediction direction of the chroma BDPCM mode is derived from the second value indicating the second prediction direction of the luma BDPCM mode.
[0529] P8. Method according to solution P7, wherein the first value indicating the first prediction direction of the chroma BDPCM mode is the same as the second value indicating the second prediction direction of the luma BDPCM mode.
[0530] P9. Method according to solution P8, wherein the first prediction direction of the chroma BDPCM mode and the second prediction direction of the luma BDPCM mode are in a horizontal direction.
[0531] P10. Method according to solution P8, wherein the first prediction direction of the chroma BDPCM mode and the second prediction direction of the luma BDPCM mode are in a vertical direction.
[0532] P11. The method according to solution P1, wherein, in response to usage of the ACT mode being disabled, the first value indicating the first prediction direction of the chroma BDPCM mode is zero.
[0533] P12. A video processing method, comprising determining whether to enable BDPCM mode for a video block of a video based on whether use of ACT mode for the video block is enabled; and performing conversion between the video block and a bitstream representation of the video based on the determination.
[0534] P13. The method of solution P12, wherein, in response to enabling ACT mode for the video chunk, BDPCM mode is disabled for the video chunk.
[0535] P14. Method according to solution P13, wherein the first flag indicating the BDPCM mode is signaled after the second flag indicating the ACT mode.
[0536] P15. The method according to solution P13, wherein a flag indicating BDPCM mode is not signaled, wherein the flag is determined to be a false value or zero.
[0537] P16. The method of solution P12, wherein, in response to enabling BDPCM mode for the video chunk, disabling ACT mode for the video chunk.
[0538] P17. Method according to solution P16, wherein the first flag indicating BDPCM mode is signaled before the second flag indicating ACT mode.
[0539] P18. The method according to solution P16, wherein a flag indicating an ACT mode is not signaled, wherein the flag is determined to be a false value or zero.
[0540] P19. The method according to any one of solutions P12 to P18, wherein the BDPCM mode comprises a luma BDPCM mode and / or a chroma BDPCM mode.
[0541] P20. Method according to solution P1, wherein the ACT mode is applied when the chroma BDPCM mode and the luma BDPCM mode are associated with different prediction modes.
[0542] P21. Method according to solution P20, wherein the forward ACT mode is applied after the chroma BDPCM mode or the luma BDPCM mode.
[0543] P22. The method of any of solutions P1 to P21, wherein, in response to ACT mode being enabled, a quantization parameter (QP) of the video block is clipped.
[0544] P23. The method according to solution P22, wherein the clipping function for clipping the QP is 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.
[0545] P24. According to the method of solution P23, where l is equal to zero.
[0546] P25. The method according to solution P23, where h is equal to 63.
[0547] P26. The method according to solution P22, wherein the QP of the video block is tailored after the QP is adjusted for ACT mode.
[0548] P27. The method of solution P23, wherein, in response to transform skip being applied to the video block, l is equal to the minimum allowed QP for the transform skip mode.
[0549] P28. The method according to any of the solutions P23 to P26, wherein l, h, m, n and / or k are integers that depend on (i) a message signaled in the DPS / SPS / VPS / PPS / APS / picture header / slice header / slice group header / LCU / CU / LCU line / LCU group / TU / PU block / video codec unit, (ii) the position of the CU / PU / TU / block / video codec unit, (iii) the codec mode of the block containing samples along the edge, ( iv) the transform matrix applied to the block containing samples along the edge, (v) the block size / block shape of the current block and / or its neighboring blocks, (vi) an indication of the color format (e.g., 4:2:0, 4:4:4, RGB, or YUV), (vii) the codec tree structure (e.g., dual tree or single tree), (viii) the slice / slice group type and / or picture type, (ix) the color component (e.g., can only be applied to Cb or Cr), (x) the temporal layer ID, or (xi) the profile / level / tier of the standard.
[0550] P29. A method according to any of the solutions P23 to P26, wherein l, h, m, n and / or k are signaled to the decoder.
[0551] P30. The method according to solution P30, wherein the color format is 4:2:0 or 4:2:2.
[0552] P31. Method according to any of the solutions P1 to P30, wherein the indication of ACT mode or BDPCM mode or chroma BDPCM mode or luma BDPCM mode is signaled at sequence, picture, slice, slice, tile or video area level.
[0553] The following technical solutions are applicable to any of the above solutions.
[0554] O1. A method according to any of the preceding solutions, wherein converting comprises decoding the video according to a bitstream representation.
[0555] O2. A method according to any of the preceding solutions, wherein converting comprises encoding the video into a bitstream representation.
[0556] O3. The method according to any preceding claim, wherein converting comprises generating a bitstream from the current video unit, and the method further comprises storing the bitstream in a non-transitory computer-readable recording medium.
[0557] O4. A method of storing a bit stream representing a video to a computer-readable recording medium, comprising generating a bit stream from a video according to the method described in any preceding claim; and writing the bit stream to the computer-readable recording medium.
[0558] O5. A video processing device comprising a processor configured to implement the method recited in any preceding claim.
[0559] O6. A computer-readable medium having instructions stored thereon, which, when executed, cause a processor to implement the method recited in any preceding claim.
[0560] O7. A computer-readable medium storing a bitstream representation generated according to any preceding claim.
[0561] O8. A video processing device for storing a bitstream representation, wherein the video processing device is configured to implement the method recited in any preceding claim.
[0562] O9. A bitstream generated using the method described herein, the bitstream being stored on a computer-readable medium.
[0563] In this document, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion from a pixel representation of a video to a corresponding bitstream representation, or vice versa. For example, the bitstream representation of a current video block may correspond to bits that are co-located or dispersed across different locations within the bitstream, as defined by the syntax. For example, a macroblock may be encoded based on error residual values from transforms and codecs, and may also be encoded using bits in the header and other fields in the bitstream.
[0564] The disclosed and other solutions, examples, embodiments, modules, and functional operations described in this document may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware (including the structures disclosed in this document and their structural equivalents), or in a combination of one or more thereof. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by a data processing device or to control its operation. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a storage device, a composition of matter that effects a machine-readable propagated signal, or one or more combinations thereof. The term "data processing device" encompasses all devices, apparatus, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, a device may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. A propagated signal is an artificially generated signal, such as a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to a suitable receiver device.
[0565] A computer program (also referred to 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 may be stored in a file portion that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or code portions). A computer program may be deployed to execute on a single computer or on multiple computers located at a single site or distributed across multiple sites and interconnected by a communications network.
[0566] The processes and logic flows described in this document can 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 can also be performed by, and devices can also be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0567] Processors suitable for executing computer programs include, for example, general-purpose and special-purpose microprocessors, as well as any one or more processors of any type of digital computer. Typically, a processor will receive instructions and data from read-only memory or 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. Typically, a computer will also include one or more mass storage devices (e.g., magnetic, magneto-optical, or optical disks) for storing data, or be operatively coupled to receive data from or transfer data to, or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media, and storage devices, including, for example, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and compact disk read-only memory (CD-ROM) and digital versatile disk read-only memory (DVD-ROM) disks. The processor and memory may be supplemented by or incorporated into dedicated logic circuitry.
[0568] Although this disclosure contains many details, these details should not be interpreted as limitations on the scope of any subject matter or content that may be claimed, but rather as descriptions of features that may be specific to a particular embodiment. Certain features described in this disclosure in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable subcombination. Furthermore, although features may be described above as functioning in certain combinations, and even initially declared as such, in some cases one or more features may be deleted from the declared combination, and a declared combination may refer to a subcombination or a variant of a subcombination.
[0569] Similarly, while operations may be depicted in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, in order to achieve desired results. Furthermore, the separation of various system components in the embodiments described in this disclosure should not be understood as requiring such separation in all embodiments.
[0570] Only a few implementations and examples are described, and other implementations, enhancements, and variations can be made based on what is described and illustrated in this disclosure.
Claims
1. A method for processing video data, comprising: performing conversion between a current video block of a video and a bitstream of the video according to a rule, the rule providing that an additional quantization parameter offset is further applied to an intermediate quantization parameter, wherein the additional quantization parameter offset is determined based on whether an adaptive color transform mode is applied to the current video block, wherein, in the adaptive color conversion mode, for encoding operation, the visual signal is converted from the first color domain to the second color domain, or for decoding operation, the visual signal is converted from the second color domain to the first color domain, wherein the intermediate quantization parameter is derived from one or more chroma offsets specified in a picture parameter set (PPS) and a slice header (SH), and The rule further specifies whether a first flag is included in the bitstream, wherein the first flag includes first general constraint information of one or more pictures in the output layer set of the video, wherein the first flag indicates whether a second flag in a sequence parameter set (SPS) is equal to zero, and the second flag being equal to zero specifies disabling the adaptive color transform mode of the current video block.
2. The method according to claim 1, wherein The intermediate quantization parameter for the Cb component is defined as: Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+ sh_cb_qp_offset+CuQpOffsetCb)+QpBdOffset, Wherein qPCb represents the original quantization parameter of the Cb component, QpBdOffset represents the quantization parameter offset based on the bit depth, pps_cb_qp_offset is the chroma offset specified in the PPS for the Cb component, sh_cb_qp_offset is the chroma offset specified in the SH for the Cb component, CuQpOffsetCb represents the variable derived from the PPS for the Cb component, and Clip3 is the clipping function.
3. The method according to claim 1, wherein The intermediate quantization parameter for the Cr component is defined as: Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+ sh_cr_qp_offset+CuQpOffsetCr)+QpBdOffset, Wherein qPCr represents the original quantization parameter of the Cr component, QpBdOffset represents the quantization parameter offset based on the bit depth, pps_cr_qp_offset is the chroma offset specified in the PPS for the Cr component, sh_cr_qp_offset is the chroma offset specified in the SH for the Cr component, CuQpOffsetCr represents the variable derived from the PPS for the Cr component, and Clip3 is the clipping function.
4. The method according to claim 1, wherein The intermediate quantization parameter for the joint CbCr component is defined as: Qp'CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+sh_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset, Where qPCbCr represents the original quantization parameter of the joint CbCr component, QpBdOffset represents the bit depth-based quantization parameter offset, pps_joint_cbcr_qp_offset is the chroma offset specified in the PPS for the joint CbCr component, sh_joint_cbcr_qp_offset is the chroma offset specified in the SH for the joint CbCr component, CuQpOffsetCbCr represents the variable derived from the PPS for the joint CbCr component, and Clip3 is the clipping function. 5 . The method of claim 4 , wherein the rule further stipulates that the additional quantization parameter offset is not equal to −5 due to encoding and decoding the current video block using a joint CbCr codec mode.
6. The method according to claim 5, wherein: The mode index of the joint CbCr coding mode is equal to 2.
7. The method according to claim 6, wherein: The adaptive color transform mode is applied to the current video block.
8. The method according to claim 1, wherein The current video block is encoded and decoded using a joint CbCr codec mode in which a YCgCo color transform or a YCgCo inverse color transform is applied to the current video block, and The rule further stipulates that since the current video block is encoded and decoded using the joint CbCr codec mode, wherein the YCgCo color transform is used in the joint CbCr codec mode, a quantization parameter offset value different from -5 is used in a picture header (PH) or a picture parameter set (PPS) associated with the current video block.
9. The method according to claim 8, wherein The joint CbCr mode includes a JCbCr mode with an index equal to 2.
10. The method according to claim 1, wherein The current video block is encoded and decoded using a joint CbCr codec mode in which a YCgCo-R color transform or an inverse YCgCo-R color transform is applied to the current video block, and The rule further stipulates that since the current video block is encoded and decoded using the joint CbCr codec mode, wherein the YCgCo-R color transform is used in the joint CbCr codec mode, a quantization parameter offset value different from a predetermined offset is used in a picture header (PH) or a picture parameter set (PPS) associated with the current video block.
11. The method according to claim 10, wherein: The joint CbCr mode includes a JCbCr mode with an index equal to 2.
12. The method according to claim 10, wherein: The predetermined offset is 1.
13. The method according to claim 10, wherein: The predetermined offset is -1.
14. The method according to claim 1, wherein The converting includes encoding the video into the bitstream.
15. The method according to claim 1, wherein The converting includes decoding the video from the bitstream.
16. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein: The instructions, when executed by the processor, cause the processor to: performing conversion between a current video block of a video and a bitstream of the video according to a rule, the rule providing that an additional quantization parameter offset is further applied to an intermediate quantization parameter, wherein the additional quantization parameter offset is determined based on whether an adaptive color transform mode is applied to the current video block, wherein, in the adaptive color conversion mode, for encoding operation, the visual signal is converted from the first color domain to the second color domain, or for decoding operation, the visual signal is converted from the second color domain to the first color domain, wherein the intermediate quantization parameter is derived from one or more chroma offsets specified in a picture parameter set (PPS) and a slice header (SH), and The rule further specifies whether a first flag is included in the bitstream, wherein the first flag includes first general constraint information of one or more pictures in the output layer set of the video, wherein the first flag indicates whether a second flag in a sequence parameter set (SPS) is equal to zero, and the second flag being equal to zero specifies disabling the adaptive color transform mode of the current video block.
17. The device according to claim 16, wherein The intermediate quantization parameter for the Cb component is defined as: Qp′Cb=Clip3(−QpBdOffset, 63, qPCb+pps_cb_qp_offset+sh_cb_qp_offset+CuQpOffsetCb)+QpBdOffset, where qPCb represents the original quantization parameter of the Cb component, and QpBdOffset represents the quantization parameter offset based on the bit depth. pps_cb_qp_offset is the chroma offset specified in the PPS for the Cb component, sh_cb_qp_offset is the chroma offset specified in SH for the Cb component, CuQpOffsetCb represents a variable derived from PPS for the Cb component, and Clip3 is a clipping function, Among them, the intermediate quantization parameter for the intermediate quantization parameter of the Cr component is defined as: Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+ sh_cr_qp_offset+CuQpOffsetCr)+QpBdOffset, where qPCr represents the original quantization parameter of the Cr component, QpBdOffset represents the quantization parameter offset based on the bit depth, pps_cr_qp_offset is the chroma offset specified in the PPS for the Cr component, sh_cr_qp_offset is the chroma offset specified in the SH for the Cr component, CuQpOffsetCr represents a variable derived from the PPS for the Cr component, Clip3 is a clipping function, and Among them, the intermediate quantization parameter for the intermediate quantization parameter of the joint CbCr component is defined as: Qp′CbCr=Clip3(−QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+sh_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset, where qPCbCr represents the original quantization parameter of the joint CbCr component, QpBdOffset represents the bit depth-based quantization parameter offset, pps_joint_cbcr_qp_offset is the chroma offset specified in the PPS for the joint CbCr component, sh_joint_cbcr_qp_offset is the chroma offset specified in the SH for the joint CbCr component, CuQpOffsetCbCr represents the variable derived from the PPS for the joint CbCr component, and Clip3 is the clipping function.
18. The apparatus of claim 16, wherein the rule further provides that the additional quantization parameter offset is not equal to -5 due to encoding the current video block using a joint CbCr codec mode, and wherein The mode index of the joint CbCr coding mode is equal to 2.
19. The device according to claim 16, wherein The adaptive color transform mode is applied to the current video block.
20. A non-transitory computer-readable storage medium storing instructions that cause a processor to: performing conversion between a current video block of a video and a bitstream of the video according to a rule, the rule providing that an additional quantization parameter offset is further applied to an intermediate quantization parameter, wherein the additional quantization parameter offset is determined based on whether an adaptive color transform mode is applied to the current video block, in, In the adaptive color conversion mode, for encoding operations, a visual signal is converted from a first color domain to a second color domain, or for decoding operations, the visual signal is converted from the second color domain to the first color domain, and wherein the intermediate quantization parameter is derived from one or more chroma offsets specified in a picture parameter set (PPS) and a slice header (SH), and The rule further specifies whether a first flag is included in the bitstream, wherein the first flag includes first general constraint information of one or more pictures in the output layer set of the video, wherein the first flag indicates whether a second flag in a sequence parameter set (SPS) is equal to zero, and the second flag being equal to zero specifies disabling the adaptive color transform mode of the current video block.
21. The non-transitory computer-readable storage medium of claim 20, wherein: The intermediate quantization parameter for the Cb component is defined as: Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+ sh_cb_qp_offset+CuQpOffsetCb)+QpBdOffset, where qPCb represents the original quantization parameter of the Cb component, and QpBdOffset represents the quantization parameter offset based on the bit depth, pps_cb_qp_offset is the chroma offset specified in the PPS for the Cb component, sh_cb_qp_offset is the chroma offset specified in SH for the Cb component, CuQpOffsetCb represents a variable derived from PPS for the Cb component, and Clip3 is a clipping function, Among them, the intermediate quantization parameter for the intermediate quantization parameter of the Cr component is defined as: Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+ sh_cr_qp_offset+CuQpOffsetCr)+QpBdOffset, where qPCr represents the original quantization parameter of the Cr component, QpBdOffset represents the quantization parameter offset based on the bit depth, pps_cr_qp_offset is the chroma offset specified in the PPS for the Cr component, sh_cr_qp_offset is the chroma offset specified in SH for the Cr component, CuQpOffsetCr represents a variable derived from PPS for the Cr component, Clip3 is a clipping function, and Among them, the intermediate quantization parameter for the intermediate quantization parameter of the joint CbCr component is defined as: Qp′CbCr=Clip3(−QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+sh_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset, where qPCbCr represents the original quantization parameter of the joint CbCr component, QpBdOffset represents the bit depth-based quantization parameter offset, pps_joint_cbcr_qp_offset is the chroma offset specified in the PPS for the joint CbCr component, sh_joint_cbcr_qp_offset is the chroma offset specified in the SH for the joint CbCr component, CuQpOffsetCbCr represents the variable derived from the PPS for the joint CbCr component, and Clip3 is the clipping function.
22. The non-transitory computer-readable storage medium of claim 20, wherein the rule further provides that the additional quantization parameter offset is not equal to -5 due to encoding the current video block using a joint CbCr codec mode, and wherein The mode index of the joint CbCr coding mode is equal to 2.
23. The non-transitory computer-readable storage medium of claim 20, wherein: The adaptive color transform mode is applied to the current video block.
24. A non-transitory computer-readable storage medium storing a bitstream of a video, the bitstream being generated by a method performed by a video processing device, wherein: The method comprises: generating a bitstream for a current video block of a video according to a rule, the rule providing that an additional quantization parameter offset is further applied to an intermediate quantization parameter, wherein the additional quantization parameter offset is determined based on whether an adaptive color transform mode is applied to the current video block, wherein, in the adaptive color conversion mode, for encoding operations, a visual signal is converted from a first color domain to a second color domain, or for decoding operations, the visual signal is converted from the second color domain to the first color domain, and wherein the intermediate quantization parameter is derived from one or more chroma offsets specified in a picture parameter set (PPS) and a slice header (SH), and The rule further specifies whether a first flag is included in the bitstream, wherein the first flag includes first general constraint information of one or more pictures in the output layer set of the video, wherein the first flag indicates whether a second flag in a sequence parameter set (SPS) is equal to zero, and the second flag being equal to zero specifies disabling the adaptive color transform mode of the current video block.
25. The non-transitory computer-readable storage medium of claim 24, wherein: The intermediate quantization parameter for the Cb component is defined as: Qp′Cb=Clip3(−QpBdOffset, 63, qPCb+pps_cb_qp_offset+sh_cb_qp_offset+CuQpOffsetCb)+QpBdOffset, where qPCb represents the original quantization parameter of the Cb component, and QpBdOffset represents the quantization parameter offset based on the bit depth. pps_cb_qp_offset is the chroma offset specified in the PPS for the Cb component, sh_cb_qp_offset is the chroma offset specified in SH for the Cb component, CuQpOffsetCb represents a variable derived from PPS for the Cb component, and Clip3 is a clipping function, Among them, the intermediate quantization parameter for the intermediate quantization parameter of the Cr component is defined as: Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+ sh_cr_qp_offset+CuQpOffsetCr)+QpBdOffset, where qPCr represents the original quantization parameter of the Cr component, QpBdOffset represents the quantization parameter offset based on the bit depth, pps_cr_qp_offset is the chroma offset specified in the PPS for the Cr component, sh_cr_qp_offset is the chroma offset specified in SH for the Cr component, CuQpOffsetCr represents a variable derived from PPS for the Cr component, Clip3 is a clipping function, and Among them, the intermediate quantization parameter for the intermediate quantization parameter of the joint CbCr component is defined as: Qp′CbCr=Clip3(−QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+sh_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset, where qPCbCr represents the original quantization parameter of the joint CbCr component, QpBdOffset represents the bit depth-based quantization parameter offset, pps_joint_cbcr_qp_offset is the chroma offset specified in the PPS for the joint CbCr component, sh_joint_cbcr_qp_offset is the chroma offset specified in the SH for the joint CbCr component, CuQpOffsetCbCr represents the variable derived from the PPS for the joint CbCr component, and Clip3 is the clipping function.
26. The non-transitory computer-readable storage medium of claim 24, wherein the rule further provides that the additional quantization parameter offset is not equal to -5 due to encoding the current video block using a joint CbCr codec mode, in, The mode index of the joint CbCr codec mode is equal to 2, and The adaptive color transform mode is applied to the current video block.
27. A method for storing a bitstream of a video, comprising: generating a bitstream for a current video block of a video according to a rule, the rule providing that an additional quantization parameter offset is further applied to an intermediate quantization parameter, wherein the additional quantization parameter offset is determined based on whether an adaptive color transform mode is applied to the current video block, storing the bitstream in a non-transitory computer-readable storage medium, wherein, in the adaptive color conversion mode, for encoding operations, a visual signal is converted from a first color domain to a second color domain, or for decoding operations, the visual signal is converted from the second color domain to the first color domain, and wherein the intermediate quantization parameter is derived from one or more chroma offsets specified in a picture parameter set (PPS) and a slice header (SH), and The rule further specifies whether a first flag is included in the bitstream, wherein the first flag includes first general constraint information of one or more pictures in the output layer set of the video, wherein the first flag indicates whether a second flag in a sequence parameter set (SPS) is equal to zero, and the second flag being equal to zero specifies disabling the adaptive color transform mode of the current video block.
28. A video processing method, comprising: performing conversion between a current video block of a video and a bitstream of the video according to rules that specify applying an additional quantization parameter offset when an adaptive color transform (ACT) mode is enabled for the current video block, and The rule further specifies whether a first flag is included in the bitstream, wherein the first flag includes first general constraint information of one or more pictures in the output layer set of the video, wherein the first flag indicates whether a second flag in a sequence parameter set (SPS) is equal to zero, and the second flag being equal to zero specifies disabling the adaptive color transform mode of the current video block.
29. The method according to claim 28, wherein The additional quantization parameter offset is applied after applying one or more chroma offsets.
30. The method according to claim 29, wherein The one or more chroma offsets are specified in a picture parameter set (PPS), a picture header (PH), or a slice header (SH).
31. The method according to any one of claims 28 to 30, wherein The converting includes decoding the video from the bitstream.
32. The method according to any one of claims 28 to 30, wherein The converting includes encoding the video into the bitstream.
33. The method according to any one of claims 28 to 30, wherein: The converting comprises generating the bitstream from the current video block, and wherein the method further comprises: The bitstream is stored in a non-transitory computer-readable storage medium.
34. A method of storing a bitstream representing a video to a computer-readable storage medium, comprising: Generating a bitstream from a video according to a method according to any one of claims 28 to 30; as well as The bitstream is written to the computer-readable storage medium.
35. A video processing apparatus comprising a processor configured to implement the method according to any one of claims 28 to 34.
36. A computer readable medium having stored thereon instructions which, when executed, cause a processor to implement the method of one of claims 28 to 34.
37. A computer readable medium storing the bitstream generated according to any one of claims 28 to 34.
38. A video processing device for storing a bit stream, wherein: The video processing device is configured to implement the method of any one of claims 28 to 34.
Citation Information
Patent Citations
Qp derivation and offset for adaptive color transform in video coding
CN107079150A
QP derivation and offset for adaptive color transform in video coding
US20160100168A1