General constraint information for video coding
By integrating Adaptive Color Transform (ACT) mode with other coding tools and dynamically adjusting settings based on coding characteristics, the solution addresses inefficiencies in video processing, enhancing encoding and decoding efficiency and reducing bandwidth demands.
Patent Information
- Application Number
- JP2023200159
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-01-05
- Filing Date
- 2023-11-27
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2041-01-05
AI Technical Summary
Current video encoding and decoding technologies face challenges in efficiently managing bandwidth demand for digital video, particularly as the number of connected devices increases. Existing systems struggle with adaptive color transformation, reversible coding, and flexible palette mode settings, leading to inefficiencies in video processing.
The implementation of Adaptive Color Transform (ACT) mode in conjunction with other coding tools, such as palette modes, allows for dynamic size adjustments and conditional signaling based on coding characteristics. This approach enables more efficient conversion between video blocks and bitstreams, optimizing video processing by adapting to different block sizes and coding requirements.
The proposed solution enhances video encoding and decoding efficiency by dynamically managing ACT mode and palette settings, thereby reducing bandwidth requirements and improving processing efficiency across various video block sizes and coding conditions.
Smart Images

Figure 0007654762000021 
Figure 0007654762000022 
Figure 0007654762000023
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS Books This application claims priority to and the benefit of International Patent Application No. PCT / CN2020 / 070368, filed on January 5, 2020. main Stretch This is a divisional application of Japanese Patent Application No. PCT / CN2021 / 070279 filed on January 5, 2021. The entire disclosure of the above application is three By lighting Here It is incorporated herein by reference.
[0002] This patent specification relates to image and video encoding and decoding. [Background technology]
[0003] Digital video accounts for the largest bandwidth usage on the Internet and other digital communications networks, and the bandwidth demands for digital video use are expected to continue to grow as the number of connected user devices capable of receiving and displaying video increases. Summary of the Invention
[0004] This specification discloses systems, methods and devices for video encoding and decoding using Adaptive Color Transform (ACT) modes, in addition to other coding tools.
[0005] In one exemplary aspect, a method of video processing is disclosed that includes determining a maximum and / or minimum allowed size for a current video block of a video for conversion between the current video block and a bitstream of the video for an Adaptive Color Transform (ACT) mode used to code the current video block, and performing the conversion based on the determination.
[0006] In another exemplary aspect, a method of video processing is disclosed that includes determining a maximum allowed palette size and / or a minimum allowed predictor size for a palette mode used to code a current video block of a video for conversion between the current video block and a bitstream of the video, and performing the conversion based on the determination, where the maximum allowed palette size and / or the minimum allowed predictor size is based on coding characteristics of the current video block.
[0007] In yet another exemplary aspect, a method of video processing is disclosed that 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, the current video block being coded using a palette mode coding tool, and the format rule specifying that a parameter associated with binarization of an escape symbol for the current video block in the bitstream is based on coded information of the current video block.
[0008] In yet another exemplary aspect, a method of video processing is disclosed, the method including: determining that a size of a block is larger than a maximum allowed size of an Adaptive Color Transform (ACT) mode for conversion between a video including the block and a bitstream of the video, and performing the conversion based on the determination, and in response to the size of the block being larger than the maximum allowed size of the ACT mode, splitting the block into a number of sub-blocks, each of the sub-blocks sharing the same prediction mode, and enabling the ACT mode at a sub-block level.
[0009] In yet another exemplary aspect, a method of video processing is disclosed that includes converting between a current video block of a video and a bitstream of the video, the bitstream conforming to a format rule that specifies whether an indication of use of an Adaptive Color Transform (ACT) mode for the current video block is signaled in the bitstream is based on at least one of a dimension of the current video block or a maximum allowed size for the ACT mode.
[0010] In yet another exemplary aspect, a method of video processing is disclosed that includes converting between a current video unit of a video and a bitstream of the video, the bitstream conforming to a format rule that specifies whether the bitstream includes a first flag that indicates whether a second flag in a Sequence Parameter Set (SPS) specifies that an Adaptive Color Transform (ACT) mode is disabled for the current video unit.
[0011] In yet another exemplary aspect, a method of video processing is disclosed that includes converting between a current video unit of a video and a bitstream of the video, the bitstream conforming to a format rule that specifies whether the bitstream includes a first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that a Block-based Delta Pulse Code Modulation (BDPCM) mode is disabled for the current video unit.
[0012] In yet another exemplary aspect, a method of video processing is disclosed that 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 that specifies whether the bitstream includes a first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that a Block-based Delta Pulse Code Modulation (BDPCM) mode is disabled for a chroma component of the current video unit.
[0013] In yet another exemplary aspect, a method of video processing is disclosed that 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 that specifies whether the bitstream includes a first flag that indicates whether a second flag in a Sequence Parameter Set (SPS) specifies that a palette is invalid for the current video unit.
[0014] In yet another exemplary aspect, a method of video processing is disclosed that 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 that specifies whether the bitstream includes a first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that a Reference Picture Resampling (RPR) mode is disabled for the current video unit.
[0015] In yet another exemplary aspect, a method of video processing is disclosed that includes performing a 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 enabling an Adaptive Color Transform (ACT) mode for the current video block.
[0016] In yet another exemplary aspect, a method of video processing is disclosed that 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 coding mode that applies a YCgCo color transform or an inverse YCgCo color transform to the current video block, and specifying using a quantization parameter offset value different from −5 in a Picture Header (PH) or a Picture Parameter Set (PPS) associated with the current video block due to the current video block being coded using the joint CbCr coding mode that uses the YCgCo color transform.
[0017] In yet another exemplary aspect, a method of video processing is disclosed that 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 coding mode that applies a YCgCo-R color transform or an inverse YCgCo-R color transform to the current video block, and specifying that the current video block uses a quantization parameter offset value that differs from a predefined offset in a Picture Header (PH) or a Picture Parameter Set (PPS) associated with the current video block due to being coded using the joint CbCr coding mode that uses the YCgCo-R color transform.
[0018] In yet another exemplary aspect, a video encoder apparatus is disclosed, the video encoder comprising a processor configured to implement the above-described method.
[0019] In yet another exemplary aspect, a video decoder apparatus is disclosed, the video decoder comprising a processor configured to implement the above-described method.
[0020] In yet another exemplary aspect, a non-transitory computer readable medium is disclosed having code stored thereon, the code performing one of the methods described herein in the form of processor executable code.
[0021] These and other features are described throughout this document. [Brief description of the drawings]
[0022] [Figure 1] FIG. 1 shows the flow of an in-loop ACT (Adaptive Color Transform) SCC (Screen Content Coding) decoder. [Diagram 2] FIG. 2 shows the decoding process by ACT. [Diagram 3] FIG. 3 shows an example of a block coded in palette mode. [Figure 4] FIG. 4 shows an example of the use of a palette predictor to signal a palette entry. [Diagram 5] FIG. 5 shows an example of horizontal and vertical traverse scans. [Figure 6] FIG. 6 shows an example of coding of the palette index. [Figure 7] FIG. 7 is a block diagram illustrating an example video processing system in which various techniques disclosed herein may be implemented. [Figure 8] FIG. 8 is a block diagram illustrating an example of a hardware platform used for video processing. [Figure 9]FIG. 9 is a block diagram illustrating a video coding system according to some embodiments of the disclosure. [Figure 10] FIG. 10 is a block diagram illustrating an encoder according to some embodiments of the present invention. [Figure 11] FIG. 11 is a block diagram illustrating a decoder according to some embodiments of the present invention. [Figure 12] FIG. 12 is a flow chart illustrating an example of a video processing method. [Figure 13] FIG. 13 is a flow chart illustrating an example of a video processing method. [Figure 14] FIG. 14 is a flow chart illustrating an example of a video processing method. [Figure 15] FIG. 15 is a flow chart illustrating an example of a video processing method. [Figure 16] FIG. 16 is a flow chart illustrating an example of a video processing method. [Figure 17] FIG. 17 is a flow chart illustrating an example of a video processing method. [Figure 18] FIG. 18 is a flow chart illustrating an example of a video processing method. [Figure 19] FIG. 19 is a flow chart illustrating an example of a video processing method. [Figure 20] FIG. 20 is a flow chart illustrating an example of a video processing method. [Figure 21] FIG. 21 is a flow chart illustrating an example of a video processing method. [Figure 22] FIG. 22 is a flow chart illustrating an example of a video processing method. [Diagram 23] FIG. 23 is a flow chart illustrating an example of a video processing method. [Figure 24] FIG. 24 is a flow chart illustrating an example of a video processing method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0023] Section headings are used herein for ease of understanding and are not intended to limit the applicability of the technology and embodiments described in each section to that section alone. Additionally, the term H.266 is used in certain descriptions for ease of understanding only and is not intended to limit the scope of the disclosed technology. Thus, the technology described herein is applicable to other video codec protocols and designs.
[0024] 1. Summary of the Invention
[0025] This specification relates to image / video coding techniques. In particular, it relates to adaptive color transformation in image / video coding. This may be applied to standards under development, such as Versatile Video Coding. The present invention is also applicable to future video coding standards or video codecs.
[0026] 2. Short Description
[0027] Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T created H.261 and H.263, ISO / IEC created MPEG-1 and MPEG-4 Visual, and the two organizations jointly created H.262 / MPEG-2 Video, H.264 / MPEG-4 AVC (Advanced Video Coding), and H.265 / HEVC standards. Since H.262, video coding standards have been based on hybrid video coding structures where temporal prediction and transform coding are utilized. In 2015, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) to explore future video coding technologies beyond HEVC. Since then, many new methods have been adopted by JVET and incorporated into reference software called JEM (Joint Exploration Mode). In April 2018, the Joint Video Expert Team (JVET) was established between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG), and is working on formulating the VVC standard with the goal of reducing the bitrate by 50% compared to HEVC.
[0028] The latest version of the VVC draft, i.e. Versatile Video Coding (Draft 7), can be obtained at http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 16_Geneva / wg11 / JVET-P2001-v14.zip.
[0029] The latest reference software for VVC, called VTM, can be found here: https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-7.0
[0030] 2.1.ACT (Adaptive colour transform) in HEVC-SCC
[0031] At the 18th JCT-VC General Meeting (June 30-July 9, 2014, Sapporo, Japan), ACT (Adaptive Colour Transform) was adopted for HEVC SCC (Screen Content Coding) Test Model 2. ACT performs in-loop colour space transformation in the prediction residual domain using colour transformation matrices based on YCoCg and YCoCg-R colour spaces. ACT is adaptively turned on or off at the CU level using the flag cu_residual_act_flag. ACT can be combined with CCP (Cross Component Prediction), another inter-component decorrelation method already supported in HEVC. If both are enabled, ACT is performed after CCP in the decoder, as shown in Figure 1.
[0032] 2.1.1. Color Space Conversion in ACT
[0033] Color space transformation in ACT is based on YCoCg-R transformation. Both lossy and lossless coding (cu_transquant_bypass_flag=0 or 1) use the same inverse transform, but for lossy coding an additional 1-bit left shift is applied to the Co and Cg components. Specifically, the following color space transformation is used for forward and backward transformations for lossy and lossless coding: Forward transform for lossy coding (non-standard):
[0034]
number
[0035] Forward transform for lossless coding (non-standard):
[0036]
number
[0037] Rearward conversion (standard):
[0038]
number
[0039] The forward color transform is not normalized, and its criteria are approximately equal to √6 / 4 for Y and Cg, and √2 / 2 for Co. To compensate for the non-normalized nature of the forward transform, we apply delta QPs of (-5,-3,-5) for (Y,Co,Cg), respectively. In other words, for a given "normal" QP for a CU, when ACT is turned on, the quantization parameters are set equal to (QP-5,QP-3,QP-5) for (Y,Co,Cg), respectively. The adjusted quantization parameters only affect the residual quantization and dequantization in the CU. For deblocking, the "normal" QP value is still used. To prevent the adjusted QP value from becoming negative, we apply clipping to the QP value to 0. Note that this QP adjustment is only applicable to lossless coding, since no quantization is performed in lossy coding (cu_transquant_bypass_flag=1). In SCM4, PPS / slice level signaling of additional QP offset values is introduced. These QP offset values may be used instead of (-5, -3, -5) for CUs when adaptive color transform is applied.
[0040] If 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 to restore the original sample bit depth after ACT.
[0041] 2.2.ACT in VVC
[0042] Figure 2 shows the decoding flow chart of VVC where ACT is applied. As shown in Figure 2, the color space conversion is performed in the residual domain. Specifically, we introduce one additional decoding module, namely inverse ACT, after the inverse conversion to convert the residual from the YCgCo domain back to the original domain.
[0043] In VVC, one CU (Coding Unit) leaf node is also used as the unit of transform processing, as long as the maximum transform size is not smaller than the width or height of one CU. Therefore, in the proposed implementation example, the ACT flag is signaled for one CU to select the color space for coding its residual. Furthermore, following the HEVC ACT design, for inter and IBC CU, ACT is enabled only if there is at least one non-zero coefficient in the CU. For intra CU, ACT is enabled only if the chroma components select the intra prediction mode of the same luma component, i.e., DM mode.
[0044] The core transform used for color space conversion is kept the same as that used in HEVC, and 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 color conversion.
[0045] On the other hand, the forward and inverse color transforms need access to the residuals of all three components. Correspondingly, in the proposed implementation, ACT is disabled in the following two scenarios where the residuals of all three components are not available: 1. Separate 3 partitions: When applying separate trees, we partition the luma and chroma samples in one CTU with different structures, so that a CU in the luma tree only contains a luma component, and a CU in the chroma tree only contains two chroma components. 2. ISP (Intra Sub-partition Prediction): ISP sub-partitions are only applied to luma while chroma signals are coded without splitting. In the current ISP design, except for the last ISP sub-partition, the other sub-partitions only contain luma components.
[0046] The text of the coding unit in the VVC draft is shown below.
[0047] [Table 1]
[0048] [Table 2]
[0049] [Table 3]
[0050] [Table 4]
[0051] [Table 5]
[0052] [Table 6]
[0053] [Table 7]
[0054] [Table 8]
[0055] [Table 9]
[0056] cu_act_enabled_flag equal to 1 indicates that the residual of the current coding unit is g C ocu_act_enabled_flag equal to 0 specifies that the residual of the current coding unit is coded in the original color space. If cu_act_enabled_flag is not present, it is inferred to be equal to 0.
[0057] 2.3. Transform Skip Mode in VVC
[0058] As in HEVC, the residual of a block can be coded using a transform skip mode that skips the transform processing for the block entirely, and for transform skipped blocks, the minimum allowed Quantization Parameter (QP) signaled in the SPS is used, which in VTM7.0 is set equal to 6*(internalBitDepth-inputBitDepth)+4.
[0059] 2.4.BDPCM(Block-based Delta Pulse Code Modulation)
[0060] In JVET-M0413, Block-based Delta Pulse Modulation (BDPCM) was proposed for efficient coding of screen content and was subsequently adopted in VVC.
[0061] The prediction direction used in BDPCM can be vertical and horizontal prediction modes. Intra prediction predicts the whole block by copying samples to the prediction direction (horizontal or vertical prediction) similar to intra prediction. It quantizes the residual and encodes the delta between the quantized residual and its predictor (horizontal or vertical) quantized value. This can be explained as follows: For a block of size M (rows) × N (columns), r i,j, 0≦i≦M-1, 0≦j≦N-1 be the prediction residual after intra prediction in the horizontal direction (copying the pixel values of the left neighbor to the prediction block line by line) or vertical direction (copying the upper neighbor to each line in the prediction block) using unfiltered samples from the boundary samples of the upper or left block. i,j ), 0≦i≦M-1, 0≦j≦N-1 is the residual r i,j where the residual is the difference between the original block and the predicted block values. Then, block DPCM is applied to the quantized residual samples, resulting in the element r ~ i,j A modified M×N array R ~ When the vertical BDPCM is signaled,
[0062]
number
[0063] For horizontal prediction, a similar rule applies and the residual quantized samples are given by:
[0064]
number
[0065] Residual quantized sample r ~ i,j is sent to the decoder.
[0066] At the decoder, the above calculation is reversed to obtain Q(r i,j ), 0≦i≦M-1, 0≦j≦N-1.
[0067] For vertical prediction
[0068]
number
[0069] In the horizontal direction
[0070]
number
[0071] The dequantized residual Q -1 (Q(r i,j )) to the intrablock prediction to generate a reconstructed sample value.
[0072] The main advantage of this scheme is that the backward BDPCM can be done on the fly while parsing the coefficients, and only requires adding the predictor while parsing the coefficients, or it can be done after parsing.
[0073] In VTM7.0, BDPCM may also be applied to chroma blocks, and the chroma BDPCM has a separate flag and BDPCM direction from the luma BDPCM mode.
[0074] 2.5. Scaling of conversion coefficients
[0075] The text on scaling of transform coefficients in JVET-P2001-vE is prepared as follows:
[0076] The inputs to this process are: A luma position (xTbY, yTbY) that specifies the top-left sample of the current luma transform block relative to the top-left luma sample of the current picture. - the variable nTbW, which defines the width of the transformation block; - the variable nTbH, which defines the height of the transformation block; a variable predMode that specifies the prediction mode of the coding unit; - The variable cIdx that defines the color components of the current block.
[0077] The output of this process is a (nTbW) x (nTbH) array d of scaled transform coefficients with elements d[x][y].
[0078] The quantization parameter qP is derived as follows. If -cIdx is equal to 0, the following applies: qP=Qp' Y (1129) - Alternatively, if TuCResMode[xTbY][yTbY] is 2, the following applies: qP=Qp' CbCr (1130) - Alternatively, if cIdx is 1, the following applies: qP=Qp' Cb (1131) - Otherwise (cIdx=2), the following applies: qP=Qp' Cr (1132)
[0079] The quantization parameter qP is modified and the variables rectNonTsFlag and bdShift are derived as follows: When -transform_skip_flag[xTbY][yTbY][cIdx] is 0, the following applies: qP=qP-(cu_act_enabled_flag[xTbY][yTbY]?5:0) (1133) rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1)?1:0 (1134) bdShift=BitDepth+rectNonTsFlag+((Log2(nTbW)+Log2(nTbH)) / 2)-5+pic_dep_quant_enabled_flag (1135) - Otherwise (if transform_skip_flag[xTbY][yTbY][cIdx] is 1), the following applies: qP=Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?5:0) (1136) rectNonTsFlag=0 (1137) bdShift=10 (1138)
[0080] The variable bdOffset is derived as follows. bdOffset=(1<<bdShift)> >1 (1139)
[0081] The list levelScale[][] is specified as levelScale[j]={40,45,51,57,64,72},{57,64,72,80,90,102}, where j=0..1, k=0..5.
[0082] The (nTbW) x (nTbH) array dz is set equal to the (nTbW) x (nTbH) array TransCoeffLevel[xTbY][yTbY][cIdx].
[0083] For x=0..nTbW-1, y=0..nTbH-1, to derive the scaled transform coefficients d[x][y] the following applies: The intermediate magnification m[x][y] is derived as follows: - If one or more of the following conditions are true, then m[x][y] is set equal to 16: -sps_scaling_list_enabled_flag equals 0. -pic_scaling_list_present_flag equals 0. -transform_skip_flag[xTbY][yTbY][cIdx] equals 1. -scaling_matrix_for_lfnst_disabled_flag is equal to 1 and lfnst_idx[xTbY][yTbY] is not equal to 0. - If not, the following applies: - Derive the variable id based on predMode, cIdx, nTbW, nTbH as specified in Table 36, and derive the variable log2MatrixSize as follows: log2MatrixSize=(id<2)?1:(id<8)?2:3(1 140) -The magnification m[x][y] is derived as follows: m[x][y]=ScalingMatrixRec[id][i][j] i=(x<<log2MatrixSize)> > Log2(nTbW), j=(y<<log2MatrixSize)> >Log2(nTbH) (1141) If -id is greater than 13 and both x and y are 0, then m[0][0] is further modified as follows: m[0][0]=ScalingMatrixDCRec[id-14] (1142)
[0084] NOTE − A quantization matrix element m[x][y] is allowed to be zero if any of the following conditions are true: -x is greater than 32. -y is greater than 32. The decoded tu is not coded with the default transform mode (i.e., the transform type is not 0) and x is greater than 16. The decoded tu is not coded with the default transform mode (i.e., the transform type is not 0) and y is greater than 16. -The magnification ls[x][y] is derived as follows: - when pic_dep_quant_enabled_flag is equal to 1 and transform_skip_flag[xTbY][yTbY][cIdx] is 0, the following applies: ls[x][y]=(m[x][y]*levelScale[rectNonTsFlag][(qP+1)%6])<<((qP+1) / 6) (1143) - Otherwise (pic_dep_quant_enabled_flag is equal to 0 or transform_skip_flag[xTbY][yTbY][cIdx] is equal to 1), the following applies: ls[x][y]=(m[x][y]*levelScale[rectNonTsFlag][qP%6])<<(qP / 6) (1144) -If BdpcmFlag[xTbY][yYbY][cIdx] is equal to 1, dz[x][y] is modified as follows: -If BdpcmDir[xTbY][yYbY][cIdx] is equal to 0 and x is greater than 0, the following applies: dz[x][y]=Clip3(CoeffMin,CoeffMax,dz[x-1][y]+dz[x][y]) (1145) -or- if BdpcmDir[xTbY][yTbY][cIdx] is equal to 1 and y is greater than 0, then the following applies: dz[x][y]=Clip3(CoeffMin,CoeffMax,dz[x][y-1]+dz[x][y]) (1146) The values dnc[x][y] are derived as follows: dnc[x][y]=(dz[x][y]*ls[x][y]+bdOffset)>>bdShift (1147) The scaled transform coefficients d[x][y] are derived as follows: d[x][y]=Clip3(CoeffMin,CoeffMax,dnc[x][y]) (1148)
[0085] Table 36 - Definition of the scaling matrix identification variable id according to predMode, cIdx, nTbW, and nTbH
[0086] [Table 10]
[0087] 2.6.Palette Mode 2.6.1. Palette Mode Concept
[0088] The basic idea behind the palette mode is to represent the pixels in a CU by a small set of representative color values. This set is called the palette. It is also possible to indicate samples outside the palette by signaling an escape symbol followed by a (possibly quantized) component value. Such pixels are called escape pixels. The palette mode is illustrated in Figure 3. As shown in Figure 3, for each pixel with three color components (luminance, and two chrominance components), an index into the palette can be created and the block can be reconstructed based on the values created in the palette.
[0089] 2.6.2. Coding Palette Entries
[0090] A palette predictor is maintained for coding of palette entries. In the SPS, the maximum size of the palette and the palette predictor are signaled. In HEVC-SCC, palette_predictor_initializer_present_flag is introduced in the PPS. If this flag is 1, an entry to initialize the palette predictor is signaled in the bitstream. The palette predictor is initialized at the beginning of each CTU row, each slice, and each tile. Depending on the value of palette_predictor_initializer_present_flag, we either reset palette_predictor to 0 or initialize the palette predictor using the palette predictor initialization entry signaled in the PPS. In HEVC-SCC, we enabled a palette predictor initializer of size 0 to specifically disable palette predictor initialization at the PPS level.
[0091] For each entry in the palette predictor, a reuse flag is signaled to indicate whether it is part of the current palette or not. This is shown in Figure 4. The reuse flag is transmitted using a run-length coding of zeros. After this, the number of the new palette entry is signaled using an Exponential Golomb (EG) code of degree 0, i.e. EG-0. Finally, the component values of the new palette entry are signaled.
[0092] 2.6.3. Palette Index Coding
[0093] The palette index is coded using horizontal and vertical transverse scans as shown in Figure 5. The palette_transpose_flag is used to explicitly signal the scan order in the bitstream. In the following subsections, we assume the scan is horizontal.
[0094] The palette index is coded using two palette sample modes: "COPY_LEFT" and "COPY_ABOVE". In "COPY_LEFT" mode, the palette index is assigned to the decoded index. In "COPY_ABOVE" mode, we copy the palette index of the sample in the row above. For both "COPY_LEFT" and "COPY_ABOVE" modes, we signal a run value that specifies the number of subsequent samples that are coded using the same mode.
[0095] In palette mode, the value of the index for the escape symbol is the number of palette entries, and the escape component value is signaled for each escape symbol if the escape symbol is part of a run in "COPY_LEFT" or "COPY_ABOVE" modes. The coding of the palette index is shown in Figure 6.
[0096] This syntax sequence is performed as follows: First, the number of index values for a CU is signaled. This is followed by signaling the actual index value for the entire CU using truncated binary coding. In bypass mode, both the number of indexes and the index value are coded. This results in index-related bypass bins being grouped together. Next, palette sample mode (if required) and execution are signaled in an interleaved manner. Finally, the component escape values corresponding to the escape symbol for the entire CU are grouped together and coded in bypass mode. The binarization of the escape symbol is of the third order, i.e., EG coding of EG-3.
[0097] After signaling the index value, an additional syntax element, last_run_type_flag, is signaled, which, in conjunction with the number of indexes, eliminates the need to signal the run value corresponding to the last run in the block.
[0098] 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 indexes is almost the same for all chroma formats. For non-monochrome formats, each palette entry consists of three components. For monochrome formats, each palette entry consists of a single component. For subsampled chroma directions, chroma samples are associated with luma sample indices that are divisible by two. After reconstructing the palette index for a CU, if a sample has only a single component associated with it, only the first component of the palette entry is used. The only difference in signaling is the escape component value. For each escape symbol, the number of escape component values signaled may vary depending on the number of components associated with that symbol.
[0099] 2.6.4. Palettes in Dual Trees
[0100] In VVC, a dual-tree coding structure is used for coding intra-slice, so that the luma component and two chroma components may have different palettes and palette indices, and the two chroma components share the same palette and palette indices.
[0101] 2.6.5. Line-based CG Palette Mode
[0102] A line-based CG palette mode is adopted for VVC. In this method, each CU in the palette mode is divided into multiple segments of m samples (m=16 in this test) based on the cross-scan mode. The coding order of palette run coding in each segment is as follows: For each pixel, one context-coded bin run_copy_flag=0 is signaled to indicate whether this pixel is in the same mode as the previous pixel, i.e., whether the previous scanned pixel and the current pixel are both of run type COPY_ABOVE, or whether the previous scanned pixel and the current pixel are both of run type INDEX and have the same index value. Otherwise, run_copy_flag=1 is signaled. If the pixel and the previous pixel are in different modes, one context-coded bin copy_above_palette_indices_flag is signaled to indicate the run type of the pixel, i.e., INDEX or COPY_ABOVE. Similar to palette mode in VTM6.0, the decoder does not need to parse the run type if the sample is in the first row (horizontal cross scan) or first column (vertical cross scan) since INDEX mode is used by default. Also, the decoder does not need to parse the run type if the previously parsed run type is COPY_ABOVE. After palette run coding of pixels in one segment, the index values (in the case of INDEX mode) and quantized escape colors are grouped separately from the encoding / parsing of bypass-coded and context-coded bins to improve throughput within each line CG. In this case, the encoder does not need to signal the number of index values, num_palette_indices_minus1, and the final run type, copy_above_indices_for_final_run_flag, since the index values are coded / parsed after the run coding instead of processed before the palette run coding as in VTM.
[0103] 3. Technical Problems Solved by the Embodiments and Solutions Disclosed herein
[0104] In the current design, ACT and luma BDPCM modes can be enabled for a block, but chroma BDPCM mode is always disabled for blocks coded in ACT mode, so predictions may be derived differently for luma and chroma blocks in the same coding unit, which may be less efficient.
[0105] When ACT is enabled, the quantization parameter (QP) of a block can be a negative number.
[0106] The current design of ACT does not support lossless coding.
[0107] Signaling the use of ACT is independent of block size.
[0108] The maximum palette size and maximum predictor size are fixed numbers, which may limit the flexibility of the palette mode.
[0109] The escape samples use third-order Exponential-Golomb (EG) as the binarization method, but the binarization of the escape samples does not depend on the Quantization Parameter (QP).
[0110] 4.Technical solution
[0111] The technical solutions detailed below should be considered as examples to illustrate the general concept. These technical solutions should not be interpreted in a narrow sense. Moreover, these technical solutions can be combined in any way.
[0112] In the following description, the term "block" may refer to image domains, such as CU (Coding Unit), PU (Prediction Unit), and TU (Transform Unit), which may include samples in three color components. The term "BDPCM" is not limited to the design in VVC, but may refer to techniques for coding residuals using different prediction signal generation methods.
[0113] Interaction between ACT and BDPCM (items 1-4) 1. Whether or not to enable chroma BDPCM mode may depend on the use of ACT and / or luma BDPCM mode. a. In one example, if ACT is enabled for a block, an indication of the use of chroma BDPCM mode (eg, intra_bdpcm_chroma_flag) may be inferred to be an indication of the use of luma BDPCM mode (eg, intra_bdpcm_luma_flag). i. In one example, the guess value for chroma BDPCM mode is defined as (ACT and luma BDPCM mode enabled? true:false). 1. In one example, intra_bdpcm_chroma_flag may be set equal to false if intra_bdpcm_luma_flag is false. Alternatively, if intra_bdpcm_luma_flag is true, then intra_bdpcm_chroma_flag may be set equal to true. ii. Alternatively, in one example, if an indication to use luma BDPCM mode and ACT for a block is true, then an indication to use chroma BDPCM mode may be inferred to be true. b. Alternatively, signaling the use of ACT for a block may be conditionally checked, eg, using the same BDPCM prediction direction for both luma and chroma samples in this block. i. Further alternatively, after use of the BDPCM mode, an indication to use ACT is signaled.
[0114] 2. If ACT is enabled for a block, the prediction direction indication for the chroma BDPCM mode (eg, intra_bdpcm_chroma_dir_flag) may be inferred to be the prediction direction indication for the use of the luma BDPCM mode (eg, intra_bdpcm_luma_dir_flag). a. In one example, the inferred value of intra_bdpcm_chroma_dir_flag is defined as (ACT enabled? intra_bdpcm_luma_dir_flag: 0). i. In one example, if the prediction direction instruction for the luma BDPCM mode is horizontal, then the prediction direction instruction for the chroma BDPCM mode may be inferred to be horizontal. ii. Alternatively, in one example, if the prediction direction instruction for the luma BDPCM mode is vertical, then the prediction direction instruction for the chroma BDPCM mode may be inferred to be vertical.
[0115] 3. ACT and BDPCM modes may be applied exclusively. In one example, if ACT mode is enabled in a block, BDPCM mode may be disabled in this block. i. Further alternatively, the indication to use the BDPCM mode may be signaled after signaling the indication to use the ACT mode. ii. Further alternatively, an indication of use of BDPCM mode may not be signaled and may be assumed to be false (0). b. In one example, if BDPCM mode is enabled in a block, ACT mode may be disabled in this block. i. Further alternatively, an indication to use the ACT mode may be signaled after signaling an indication to use the BDPCM mode. ii. Further alternatively, an indication of use of the ACT mode may not be signaled and may be assumed to be false (0). c. In one example, the BDPCM mode in the above example may represent a luma BDPCM mode and / or a chroma BDPCM mode.
[0116] 4. At the decoder, inverse ACT may be applied before inverse BDPCM. In one example, ACT can be applied even when luma and chroma BDPCM have different prediction modes. b. Alternatively, forward ACT may be applied after BDPCM in the encoder.
[0117] QP setting when ACT is enabled (item 5) 5.If ACT is enabled, it is suggested to clip QP. In one example, a clipping function may 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. i. In one example, l may be set equal to 0. ii. In one example, h may be set equal to 63. b. In one example, QP may be qP as described in Section 2.5. c. In one example, clipping may be performed after QP adjustment in ACT mode. d. In one example, if transform skip is applied, l may be set equal to the minimum allowed QP for transform skip mode.
[0118] Palette mode related (items 6-7) 6. The value of the maximum allowed palette size and / or maximum allowed predictor size may depend on the coding characteristic: Let S1 be the maximum palette size (or palette predictor size) associated with a first coding characteristic, and S2 be the maximum palette size (or palette predictor size) associated with a second coding characteristic. In one example, the coding characteristics are color components. i. In one example, the maximum allowable palette size and / or the maximum allowable predictor size for different color components may have different values. ii. In one example, the value of the maximum allowed palette size and / or the maximum allowed predictor size of a first color component (e.g., Y in YCbCr, G in RGB) may be different from the values of the other two color components other than the first color component (e.g., Cb and Cr in YCbCr, B, R in RGB). b. In one example, the coding characteristic may be a quantization parameter (QP). i. In one example, if QP1 is greater than QP2, then S1 and / or S2 for QP1 is less than S1 and / or S2 for QP2. ii. In one example, the QP may be a slice-level QP or a block-level QP. c. In one example, S2 may be greater than or equal to S1. d. An indication of maximum palette size / palette predictor size may be signaled separately for the first coding feature and the second coding feature or may be inferred from one to the other. i. In one example, S1 may be signaled and S2 may be derived based on S1. 1. In one example, S2 may infer S1-n. 2. In one example, S2 may infer that S1>>n. 3. In one example, S2 may be estimated as floor(S1 / n), where floor(x) represents the largest integer less than or equal to x. e. In one example, S1 and / or S2 may be signaled at a higher level (eg, SPS / PPS / PH / slice header) and coordinated at a lower level (eg, CU / block). How to adjust i.S1 and / or S2 may depend on the coded information. 1. How to adjust S1 and / or S2 may depend on the current QP. In one example, increasing the current QP decreases S1 and / or S2. 2. The method of adjusting S1 and / or S2 may depend on the block dimensions. In one example, if the size of the current block increases, increase S1 and / or S2. f. S1 and / or S2 may depend on whether an LMCS is used.
[0119] 7. Parameters associated with the binarization method for the escape sample / pixel may depend on the coded information, e.g., the quantization parameter (QP). In one example, an EG binarization method may be used, and the order of EG binarization, represented as k, may depend on the coded information. i. In one example, if the current QP increases, k may be decreased.
[0120] ACT mode signal notification (items 8-10) 8. An indication of maximum and / or minimum allowed ACT size may be signaled at the sequence / picture / slice / tile / subpicture / brick / other video processing unit level or may be derived based on coded information. In one example, they may be signaled in the SPS / PPS / picture header / slice header. b. In one example, they may be conditionally signaled, such as in response to ACT being enabled. c. In one example, N levels of maximum and / or minimum allowed ACT size may be signaled / defined, such as, for example, N=2. i. In one example, the maximum and / or minimum allowed ACT size may be set to either K0 or K1 (eg, K0=64, K1=32). ii. Additionally, alternatively, an indication of the level may be signaled, for example, if N=2, a flag may be signaled. d. In one example, an indication of 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 the luma component) may be signaled. e. In one example, the maximum and / or minimum allowed ACT size may be derived from the maximum and / or minimum allowed (or transform skip) size (eg, for the luma component). f. Further alternatively, whether and / or how to signal an indication of ACT usage and other side information regarding ACT may depend on the maximum and / or minimum allowed values.
[0121] 9. If a block is larger than the maximum allowed ACT size (or the maximum allowed transform size), the block may be automatically split into multiple sub-blocks, all of which share the same prediction mode (e.g., all of which are intra-coded), and ACT may be enabled at the sub-block level instead of the block level.
[0122] 10. The indication to use ACT mode may be conditionally signaled based on block dimensions (e.g., block width and / or height, block width x height, ratio of block width to height, maximum / minimum block width and height) and / or maximum allowed ACT size. In one example, an indication to use ACT mode may be signaled when certain conditions, depending on the block dimensions, are met, for example. i. In one example, the condition is whether the width of the current block is less than or equal to m and / or the height of the current block is less than or equal to n. ii. In one example, the condition is whether the width x height of the current block is less than m or less than or equal to m. iii. In one example, the condition is whether the width x height of the current block is greater than m or greater than or equal to m. b. Alternatively, in one example, an indication to use the ACT mode may not be signaled if certain conditions depending on the block dimensions, for example, are not met. i. In one example, the condition is whether the width of the current block is greater than m and / or whether the height of the current block is greater than n. ii. In one example, the condition is whether the width x height of the current block is less than m or less than or equal to m. iii. In one example, the condition is whether the width x height of the current block is greater than m or greater than or equal to m. iv. Further alternatively, the indication of use of ACT mode may be inferred to be 0. c. In the above example, the variables m, n may be predefined (eg, 4, 64, 128), or may be signaled, or may be derived on the fly. i. In one example, m and / or n may be derived based on decoded messages in a CTU / CU / block of an SPS / PPS / APS / CTU row / CTU group. 1. In one example, m and / or n may be set equal to the maximum allowed transform size (eg, MaxTbSizeY).
[0123] Signaling constraint flags in the general constraint information syntax (items 11-16) Note that the following constraint flags may be signaled in video units other than the SPS, for example they may be signaled in the general constraint information syntax specified in JVET-P2001-vE.
[0124] 11. It is proposed to have a constraint flag to specify whether the SPS ACT enabled flag (eg, sps_act_enabled_flag) is 0 or not. In one example, this flag may be represented as no_act_constraint_flag. i. If this flag is equal to 1, the SPS ACT enabled flag (eg, sps_act_enabled_flag) is equal to 0. ii. If this flag is equal to 0, no such constraint is imposed.
[0125] 12. It is proposed to have a constraint flag to specify whether the SPS BDPCM enabled flag (eg, sps_bdpcm_enabled_flag) is 0 or not. In one example, this flag may be represented as no_bdpcm_constraint_flag. i. If this flag is equal to 1, then the SPS BDPCM enabled flag (e.g., sps_bdpcm_enabled_flag) is equal to 0. ii. If this flag is equal to 0, no such constraint is imposed.
[0126] 13. It is proposed to have a constraint flag to specify whether the SPS chroma BDPCM enabled flag (eg, sps_bdpcm_chroma_enabled_flag) is 0 or not. In one example, this flag may be represented as no_bdpcm_chroma_constraint_flag. i. If this flag is equal to 1, the SPS chroma BDPCM enabled flag (e.g., sps_bdpcm_chroma_enabled_flag) is equal to 0. ii. If this flag is equal to 0, no such constraint is imposed.
[0127] 14. It is proposed to have a constraint flag to specify whether the SPS palette enabled flag (eg, sps_palette_enabled_flag) is 0 or not. In one example, this flag may be represented as no_palette_constraint_flag. i. If this flag is 1, the SPS palette enabled flag (e.g., sp_palette_enabled_flag) is equal to 0. ii. If this flag is equal to 0, no such constraint is imposed.
[0128] 15. It is proposed to have a constraint flag to specify whether the SPS RPR enabled flag (eg, ref_pic_resampling_enabled_flag) is 0 or not. In one example, this flag may be represented as no_ref_pic_resampling_constraint_flag. i. If this flag is equal to 1, the SPS RPR enable flag (eg, ref_pic_resampling_enabled_flag) is 0. ii. If this flag is equal to 0, no such constraint is imposed.
[0129] 16. In the above examples (bullet circles 11-15), such constraint flags may be conditionally signaled, for example depending on the chroma format (eg, chroma_format_idc) and / or separate plane coding or ChromaArrayType.
[0130] ACT QP Offset (items 17-19) 17. When ACT is applied to a block, it is suggested that the ACT offset may be applied after applying other chroma offsets (e.g., those in the PPS and / or Picture Header (PH) and / or Slice Header (SH)).
[0131] 18. When applying YCgCo color transformation to a block, for JCbCr mode 2 it is suggested to have a PPS offset and / or PH offset other than -5. In one example, the offset may be other than -5. 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 as pps_act_cbcr_qp_offset_plus6-6. 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 as pps_act_cbcr_qp_offset_plus7-7.
[0132] 19. When applying YCgCo-R to one block, it is proposed to have a PPS offset and / or PH offset other than 1 for JCbCr mode 2. In one example, the offset may be other than -1. 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 as pps_act_cbcr_qp_offset. 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 as pps_act_cbcr_qp_offset_plus1-1.
[0133] General Technology (items 20-21) 20. In the above example, S 1, S 2, l, h, m, n and / or k are integers and may depend on: a. In one example, the default mode may be signaled in a DPS / SPS / VPS / PPS / APS / picture header / slice header / tile group header / LCU (Largest Coding Unit) / CU (Coding Unit) / LCU row / LCU group / TU / PU block / video coding unit. b. CU / PU / TU / Block / Video Coding Unit Location c. Coded mode of the block containing samples along the edge d. The transformation matrix applied to the block containing the samples along the edge e. Block dimensions / block shapes of the current block and / or its neighboring blocks f. Display color format (e.g. 4:2:0, 4:4:4, RGB, YUV, etc.) g. Coding tree structure (e.g., dual tree or single tree) h. Slice / tile group type and / or picture type i. Color components (e.g., may only apply to Cb or Cr) j. Time layer ID k. Standard Profiles / Levels / Tiers l. Alternatively, S 1, S 2, l, h, m, n and / or k may be signaled to the decoder.
[0134] 21. The above suggested methods may be applied under certain conditions. In one example, the condition is that the color format is 4:2:0 and / or 4:2:2. b. In one example, the indication to use the above method may be signaled at the sequence / picture / slice / tile / brick / image area level, such as SPS / PPS / picture header / slice header. c. In one example, use of the above method may depend on: i. Video content (e.g., screen content or natural content) ii. In one example, the default mode may be signaled in DPS / SPS / VPS / PPS / APS / picture header / slice header / tile group header / LCU (Largest Coding Unit) / CU (Coding Unit) / LCU row / LCU group / TU / PU block / video coding unit. iii. CU / PU / TU / Block / Video Coding Unit Location iv. The coded mode of the block containing the samples along the edge v. The transformation matrix applied to the block containing the samples along the edge vi. Block dimensions of the current block and / or its neighboring blocks vii. Block shapes of the current block and / or its neighboring blocks viii. Display color format (e.g. 4:2:0, 4:4:4, RGB, YUV, etc.) ix. Coding tree structure (e.g., dual tree or single tree) x. Slice / tile group type and / or picture type xi. Color components (e.g., may only apply to Cb or Cr) xii. Time layer ID xiii. Standard Profiles / Levels / Tiers xiv. Alternatively, m and / or n may be signaled to the decoder.
[0135] 5. Embodiment
[0136] This embodiment is based on JVET-P2001-vE. The newly added text is: Bold italic underlined text The deleted text is highlighted in italic text.
[0137] 5.1.Embodiment #1
[0138] This embodiment relates to the interaction between the ACT and BDPCM modes.
[0139] [Table 11]
[0140] 5.2.Embodiment 2
[0141] This embodiment relates to the interaction between the ACT and BDPCM modes.
[0142] intra_bdpcm_chroma_flag equal to 1 specifies that BDPCM is applied to the current chroma coding block at position (x0, y0), i.e., the 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 coding block at position (x0, y0).
[0143] intra_bdpcm_chroma_flag is not present, cu_act_enabled_flag is false If so, it is inferred to be equal to 0. If intra_bdpcm_chroma_flag is not present and cu_act_enabled_flag is true, it is inferred to be equal to intra_bdpcm_luma_flag.
[0144] The variable BdpcmFlag[x][y][cIdx] is set equal to intra_bdpcm_chroma_flag, for x=x0..x0+cbWidth-1, y=y0..y0+cbHeight-1, and cIdx=1..2.
[0145] intra_bdpcm_chroma_dir_flag 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. If cu_act_enabled_flag is true, intra_bdpcm_chroma_dir_flag is set equal to intra_bdpcm_luma_dir_flag.
[0146] The variable BdpcmDir[x][y][cIdx] is set equal to intra_bdpcm_chroma_dir_flag, where x=x0..x0+cbWidth-1, y=y0..y0+cbHeight-1, and cIdx=1..2.
[0147] 5.3.Embodiment #3
[0148] This embodiment relates to QP setting.
[0149] 8.7.3. Scaling of Conversion Coefficients
[0150] The inputs to this process are: A luma position (xTbY, yTbY) that specifies the top-left sample of the current luma transform block relative to the top-left luma sample of the current picture. - the variable nTbW, which defines the width of the transformation block; - the variable nTbH, which defines the height of the transformation block; a variable predMode that specifies the prediction mode of the coding unit; - The variable cIdx that defines the color components of the current block.
[0151] The output of this process is a (nTbW) x (nTbH) array d of scaled transform coefficients with elements d[x][y]. …
[0152] The quantization parameter qP is modified and the variables rectNonTsFlag and bdShift are derived as follows: -When transform_skip_flag[xTbY][yTbY][cIdx] is equal to 0, the following applies: qP=qP-(cu_act_enabled_flag[xTbY][yTbY]?5:0) (1133) qP=Clip3(0,63,qP) rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1)?1:0 (1134) bdShift=BitDepth+rectNonTsFlag+((Log2(nTbW)+Log2(nTbH)) / 2)-5+pic_dep_quant_enabled_flag (1135) - Otherwise (transform_skip_flag[xTbY][yTbY][cIdx] is equal to 1), the following applies: qP=Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?5:0) (1136) qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_flag[xTbY][yTbY]?5:0)) rectNonTsFlag=0 (1137) bdShift=10 (1138) …
[0153] 5.4.Embodiment #4 8.7.1 Quantization parameter derivation process … The chroma quantization parameters for the Cb and Cr components, Qp'Cb and Qp'Cr, and the joint Cb-Cr coding Qp'CbCr are derived as follows: Qp'Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset (1122) Qp'Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset (1123) Qp'CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset (1124)
[0154] 5.5.Embodiment #5 7.3.9.5. Coding Unit Syntax
[0155] [Table 12]
[0156] K0 and K1 are set equal to 32.
[0157] 5.6.Embodiment #6 7.3.9.5. Coding Unit Syntax
[0158] [Table 13]
[0159] 7 is a block diagram illustrating an example video processing system 1700 in which various techniques 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, e.g., 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, PON (Passive Optical Network), and wireless interfaces such as Wi-Fi or cellular interfaces.
[0160] System 700 may include a coding component 704 that may implement various coding or encoding methods described herein. Coding component 704 may reduce the average bit rate of the video from input 702 to the output of coding component 704, generating a coded representation of the video. Thus, coding techniques may be referred to as video compression or video transcoding techniques. The output of coding component 704 may be stored or transmitted via a connected communication, as represented by component 706. The bitstream (or coded) representation of the video received at input 702, stored or communicated may be used by component 708 to generate pixel values or displayable video that are sent to display interface 710. The process of generating video viewable by a user from the bitstream representation may be referred to as video unfolding. Additionally, although certain video processing operations are referred to as "coding" operations or tools, it will be understood that the coding tools or operations are performed by an encoder and corresponding decoding tools or operations that reverse the results of the coding are performed by a decoder.
[0161] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or DisplayPort, etc. Examples of storage interfaces include Serial Advanced Technology Attachment (SATA), PCI, IDE interfaces, etc. The techniques described herein may be implemented in various electronic devices such as mobile phones, laptops, smartphones, or other devices capable of digital data processing and / or video display.
[0162] FIG. 8 is a block diagram of a video processing device 800. The device 800 may be used to implement one or more of the methods described herein. The device 800 may be implemented by a smartphone, a tablet, 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 one or more processors 802 may be configured to implement one or more methods described herein (e.g., as described in FIG. 5A and FIG. 5B). The one or more memories 804 may be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 806 may be used to implement the techniques described herein in a hardware circuit. In some embodiments, the hardware 806 may be included partially or entirely within the processor 802, e.g., a graphics processor.
[0163] FIG. 9 is a block diagram illustrating an example video coding system 100 that may utilize techniques of this disclosure. As shown in FIG. 9, video coding system 100 may include a source device 110 and a destination device 120. Source device 110 generates encoded video data and may be referred to as a video encoding device. Destination device 120 may decode the encoded video data generated by source device 110 and 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.
[0164] 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 and generates a bitstream. The bitstream may include a sequence of bits that form a coded representation of the video data. The bitstream may include a coded picture and associated data. A coded picture is a coded representation of a picture. The associated data may include sequence parameter sets, picture parameter sets, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The coded video data may be transmitted directly to the destination device 120 via the I / O interface 116 over the network 130a. The coded video data may be stored in a storage medium / server 130b for access by the destination device 120.
[0165] Destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .
[0166] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain the encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to a user. The display device 122 may be integrated with the destination device 120 or may be external to the destination device 120 configured to interface with an external display device.
[0167] Video encoder 114 and video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVM) standard, and other current and / or future standards.
[0168] FIG. 10 is a block diagram illustrating an example of a video encoder 200, which may be the video encoder 114 in the system 100 shown in FIG.
[0169] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 10, video encoder 200 comprises multiple functional components. Techniques described in this disclosure may be shared among various components of video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0170] Functional components of the video encoder 200 may include a partitioning unit 201, a prediction unit 202, which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.
[0171] In other examples, video encoder 200 may include more, fewer, or different functional components. In one example, prediction unit 202 may include an Intra Block Copy (IBC) unit that can perform prediction in an IBC mode where at least one reference picture is the picture in which the current video block is located.
[0172] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are depicted separately in the example of FIG. 10 for purposes of illustration.
[0173] The division unit 201 may divide a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support a variety of video block sizes.
[0174] The mode selection unit 203 may, for example, select one of the coding modes, either intra or inter, based on the error result, and provide the resulting intra or inter coding block to the residual generation unit 207 to generate residual block data and to the reconstruction unit 212 to reconstruct the coding block for use as a reference picture. In some examples, the mode selection unit 203 may select a Combination of Intra and Inter Prediction (CIIP) mode, which performs prediction based on an inter prediction signal and an intra prediction signal. In the case of inter prediction, the mode selection unit 203 may select the resolution of the motion vector for the block (e.g., sub-pixel or integer pixel precision).
[0175] To perform inter prediction on the current video block, motion estimation unit 204 may generate motion information for the current video block by comparing the current video block to one or more reference frames from buffer 213. Motion compensation unit 205 may determine a prediction video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture associated with the current video block.
[0176] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block based on, for example, whether the current video block is an I slice, a P slice, or a B slice.
[0177] In some examples, motion estimation unit 204 may perform unidirectional prediction on the current video block, and motion estimation unit 204 may search reference pictures in list 0 or list 1 for a reference video block for the current video block. Motion estimation unit 204 may then generate a reference index indicating a reference picture in list 0 or list 1, including the reference video block and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 may generate a prediction video block for the current block based on the reference video block indicated by the motion information of the current video block.
[0178] In another example, motion estimation unit 204 may bidirectionally predict the current video block, and motion estimation unit 204 may search for a reference video block for the current video block among the reference pictures in list 0 and may search for another reference video block for the current video block among the reference pictures in list 1. Motion estimation unit 204 may then generate a reference index indicating the reference pictures in list 0 and list 1 that contain the reference video block, and a motion vector indicating a spatial displacement between the reference video block and the current video block. Motion estimation unit 204 may output the reference index and the motion vector of the current video block as motion information of the current video block. Motion compensation unit 205 may generate a prediction video block for the current video block based on the reference video block indicated by the motion information of the current video block.
[0179] In some examples, the motion estimation unit 204 may output a full set of motion information for the decoding process of the decoder.
[0180] In some examples, motion estimation unit 204 may not output a full set of motion information for the current picture. Rather, motion estimation unit 204 may signal motion information for the current video block by reference to motion information of another video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.
[0181] In one example, motion estimation unit 204 may indicate, in a syntax structure associated with the current video block, a value that indicates to video decoder 300 that the current video block has the same motion information as another video block.
[0182] In another example, motion estimation unit 204 may identify another video block and a Motion Vector Difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates a difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 may determine the motion vector of the current video block using the motion vector of the indicated video block and the motion vector difference.
[0183] As mentioned above, video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by video encoder 200 include Advanced Motion Vector Prediction (AMVP) and merge mode signaling.
[0184] Intra prediction unit 206 may perform intra prediction on the current video block. If intra prediction unit 206 intra predicts the current video block, intra prediction unit 206 may generate predictive data for the current video block based on decoded samples of other video blocks in the same picture. The predictive data for the current video block may include a predicted video block and various syntax elements.
[0185] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., as indicated by a minus sign) the predicted video block of the current video block from the current video block. The residual data for the current video block may include residual video blocks that correspond to different sample components of the samples in the current video block.
[0186] In other examples, such as in skip mode, there may be no residual data for the current video block, and residual generation unit 207 may not perform the subtraction operation.
[0187] Transform processing unit 208 may generate one or more transform coefficient image blocks for the current video block by applying one or more transforms to a residual video block associated with the current video block.
[0188] After transform processing unit 208 generates a transform coefficient image block associated with the current video block, quantization unit 209 may quantize the transform coefficient image block associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block.
[0189] Inverse quantization unit 210 and inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient image block to reconstruct a residual video block from the transform coefficient image block. Reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by prediction unit 202 to generate a reconstructed video block associated with the current block for storage in buffer 213.
[0190] After reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video blocking artifacts in the video block.
[0191] Entropy encoding unit 214 may receive data from other functional components of video encoder 200. Upon receiving the data, entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy encoded data, and output a bitstream including the entropy encoded data.
[0192] FIG. 11 is a block diagram of an example video decoder 300, which may be the video decoder 114 in the system 100 shown in FIG.
[0193] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 11, video decoder 300 includes multiple functional components. Techniques described in this disclosure may be shared among various components of video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.
[0194] 11, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306, as well as a buffer 307. The video decoder 300 may, in some examples, perform a decoding path that is generally the reverse of the encoding path described with respect to the video encoder 200 (FIG. 10).
[0195] The entropy decoding unit 301 retrieves an encoded bitstream. The encoded bitstream may include entropy encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 decodes the entropy encoded video data, and from the entropy decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list index, and other motion information. The motion compensation unit 302 may determine such information by, for example, implementing AMVP and merge mode.
[0196] The motion compensation unit 302 may generate motion compensated blocks and, in some cases, perform interpolation based on an interpolation filter. An identifier for the interpolation filter used with sub-pixel precision may be included in the syntax element.
[0197] Motion compensation unit 302 may calculate interpolated values for sub-integer pixels of the reference block using an interpolation filter as used by video encoder 200 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filter used by video encoder 200 based on the received syntax information and use the interpolation filter to generate the predictive block.
[0198] The motion compensation unit 302 may use syntax information to determine the size of blocks used to code frames and / or slices of the coded video sequence, partitioning information describing how each macroblock of a picture of the coded video sequence is divided, a mode indicating how each division is coded, one or more reference frames (and reference frame lists) for each inter-coded block, and some other information to decode the coded video sequence.
[0199] The intra prediction unit 303 may form a prediction block from spatially adjacent blocks, for example, using an intra prediction mode received in the bitstream. The inverse quantization unit 303 inverse quantizes (i.e., reverse quantizes) 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.
[0200] Reconstruction unit 306 may sum the residual block with a corresponding prediction block generated by motion compensation unit 202 or intra prediction unit 303 to form a decoded block. If desired, a deblocking filter may be applied to filter the decoded block to remove blocking artifacts. The decoded video block is stored in buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction and also generates decoded video for display on a display device.
[0201] 12-24 show an exemplary manner in which the above-mentioned technical solution can be implemented, for example, this embodiment is shown in FIG. 7-11.
[0202] 12 shows a flow chart illustrating an example of a method 1200 of video processing. The method 1200 includes, at act 1210, determining a maximum allowed size and / or a minimum allowed size for an Adaptive Color Transform (ACT) mode used to code a current video block for conversion between the current video block of a video and a bitstream of the video.
[0203] The method 1200 includes, at operation 1220, performing a transformation based on the determination.
[0204] 13 shows a flow chart illustrating an example of a method 1300 of video processing. The method 1300 includes, at act 1310, determining a maximum allowed palette size and / or a minimum allowed predictor size for a palette mode used to code a current video block for conversion between a current video block of a video and a bitstream of the video, where the maximum allowed palette size and / or the minimum allowed predictor size are based on coding characteristics of the current video block.
[0205] The method 1300 includes, at operation 1320, performing a transformation based on the determination.
[0206] 14 shows a flow chart illustrating an example of a method 1400 of video processing. The method 1400 includes, at operation 1410, performing a conversion between a current video block of a video and a bitstream of the video, where the current video block is coded using a palette mode coding tool and the bitstream complies with a format rule that specifies that parameters associated with binarization of escape symbols for the current video block in the bitstream are based on the coded information of the current video block.
[0207] 15 shows a flow chart illustrating an example of a method 1500 for video processing. The method 1500 includes, at operation 1510, determining that a size of a block is larger than a maximum allowed size in an Adaptive Color Transform (ACT) mode for conversion between a video including the block and a video bitstream.
[0208] The method 1500 includes, at operation 1520, performing a transformation based on the determination, and in response to the size of the block being larger than the maximum allowed size for the ACT mode, dividing the block into a number of sub-blocks, each of the multiple sub-blocks sharing the same prediction mode, and the ACT mode being enabled at the sub-block level.
[0209] 16 shows a flow chart illustrating an example of a method 1600 of video processing. The method 1600 includes, at operation 1610, performing a conversion between a current video block of a video and a bitstream of the video, where the bitstream complies with a format rule that specifies whether an indication of the use of an Adaptive Color Transform (ACT) mode for the current video block is signaled in the bitstream is based on at least one of a dimension of the current video block or a maximum allowed size for the ACT mode.
[0210] 17 shows a flow chart illustrating an example of a method 1700 of video processing. The method 1700 includes, at operation 1710, performing a conversion between a current video unit of a video and a bitstream of the video, where the bitstream complies with a format rule that specifies whether the bitstream includes a first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that an Adaptive Color Transform (ACT) mode is disabled for the current video unit.
[0211] 18 shows a flow chart illustrating an example of a method 1800 of video processing. The method 1800 includes, at operation 1810, performing a conversion between a current video unit of a video and a bitstream of the video, the bitstream conforming to a format rule that specifies whether the bitstream includes a first flag, the first flag being a second flag in a Sequence Parameter Set (SPS) that indicates that the current video unit is a bitstream of the video. Indicates whether Block-based Delta Pulse Code Modulation (BDPCM) mode is specified to be disabled for the unit.
[0212] 19 shows a flow chart illustrating an example of a method 1900 of video processing. The method 1900 includes, at operation 1910, performing a conversion between a video unit of a current video and a video bitstream, where the bitstream complies with a format rule that specifies whether the bitstream includes a first flag, the first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies disabling a Block-based Delta Pulse Code Modulation (BDPCM) mode for a chroma component of the current video unit.
[0213] 20 shows a flow chart illustrating an example of a method 2000 of video processing. The method 2000 includes, at operation 2010, performing a conversion between a current video unit of a video and a bitstream of the video, where the bitstream complies with a format rule that specifies whether the bitstream includes a first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies palette override for the current video unit.
[0214] 21 shows a flow chart illustrating an example of a method 2100 of video processing. The method 2100 includes, at operation 2110, performing a conversion between a current video unit of a video and a bitstream of the video, where the bitstream complies with a format rule that specifies whether the bitstream includes a first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that Reference Picture Resampling (RPR) mode is disabled for the current video unit.
[0215] 22 shows a flow chart illustrating an example of a method 2200 of video processing. The method 2200 includes, at operation 2210, performing a 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 if an Adaptive Color Transform (ACT) mode is enabled for the current video block.
[0216] 23 shows a flow chart illustrating an example of a method 2300 of video processing. The method 2300 includes, at operation 2310, performing a conversion between a current video block of a video and a bitstream representation of the video according to a rule, where the current video block is coded using a joint CbCr coding mode that applies a YCgCo color transform or an inverse YCgCo color transform to the current video block, and the rule specifies using a quantization parameter offset value different from -5 in a Picture Header (PH) or Picture Parameter Set (PPS) associated with the current video block because the current video block is coded using a joint CbCr coding mode that uses a YCgCo color transform.
[0217] 24 shows a flow chart illustrating an example of a method 2400 of video processing. The method 2400 includes, at operation 2410, performing a conversion between a current video block of a video and a bitstream representation of the video according to a rule, where the current video block is coded using a joint CbCr coding mode that applies a YCgCo-R color transform or an inverse YCgCo-R color transform to the current video block, and the rule specifies using a quantization parameter offset value that differs from a predetermined offset in a Picture Header (PH) or a Picture Parameter Set (PPS) associated with the current video block because the current video block is coded using a joint CbCr coding mode that uses a YCgCo-R color transform.
[0218] Next, preferred solutions are listed in some embodiments.
[0219] A1. A method of video processing, comprising: determining a maximum allowed size and / or a minimum allowed size for an Adaptive Color Transform (ACT) mode used to code a current video block of a video for conversion between the current video block and a bitstream of the video; and performing the conversion based on the determination.
[0220] A2. The method according to solution A1, wherein the maximum or minimum allowed size for the ACT mode is based on a maximum or minimum allowed size for a transform block or a transform skip block for a color component.
[0221] A3. The method according to solution A2, wherein the color component is a luminance component.
[0222] A4. The method according to solution A1, signaling an indication of ACT mode in the bitstream based on the maximum allowed size or the minimum allowed size.
[0223] A5. The method according to solution A1, signaling side information in a bitstream for the ACT mode based on the maximum allowed size or the minimum allowed size.
[0224] A6. The method according to solution A1, wherein the maximum allowed size or the minimum allowed size is signaled in a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a picture header, or a slice header.
[0225] A7. The method according to Solution A1, wherein the maximum allowed size or the minimum allowed size is signaled in the bitstream if the ACT mode is enabled.
[0226] A8. The method according to Solution A1, wherein the maximum allowable size is K0 and the minimum allowable size is K1, where K0 and K1 are positive integers.
[0227] A9. The method according to solution A8, wherein K0=64 and K1=32.
[0228] A10. The method according to solution A1, wherein a difference between the maximum or minimum allowed size for an ACT coded block and the corresponding size for a transform block or transform skip block is signalled in the bitstream.
[0229] A11. A method of video processing comprising: determining a maximum allowable palette size and / or a minimum allowable predictor size for a palette mode used to code a current video block of a 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 predictor size are based on coding characteristics of the current video block.
[0230] A12. The method according to solution A11, wherein the coding characteristics are color components of the image, and the maximum allowed palette size is different for different color components.
[0231] A13. The method according to Solution A11, wherein the coding characteristic is a quantization parameter.
[0232] A14. The method according to solution A11, wherein S1 is the maximum allowable palette size or the minimum allowable predictor size associated with a first coding characteristic, and S2 is the maximum allowable palette size or the minimum allowable predictor size associated with a second coding characteristic, and S1 and S2 are positive integers.
[0233] A15. The method according to solution A14, wherein S2 is greater than or equal to S1.
[0234] A16. The method according to solution A14, wherein S1 and S2 are signaled separately in the bitstream.
[0235] A17. The method according to solution A14, wherein S1 is signaled in the bitstream and S2 is inferred or derived from S1.
[0236] A18. The method according to solution A17, wherein S2=S1-n, where n is a non-zero integer.
[0237] A19. The method according to solution A14, wherein S1 and S2 are signaled at said first level and adjusted to a second level lower than the first level.
[0238] A20. The method according to Solution A19, wherein the first level is a sequence level, a picture level, or a slice level, and the second level is a coding unit level or a block level.
[0239] A21. The method according to solution A14, wherein S1 and S2 are based on whether luminance mapping using Luma Mapping with Chroma Scaling (LMCS) is applied to the current image block.
[0240] A22. A method of video processing comprising: performing a conversion between a current video block of a video and a bitstream of the video, the bitstream conforming to a format rule, the current video block being coded using a palette mode coding tool, and the format rule specifying that parameters associated with binarization of an escape symbol for the current video block in the bitstream are based on coded information of the current video block.
[0241] A23. The method according to solution A22, wherein the coded information includes one or more quantization parameters.
[0242] A24. The method according to solution A22, wherein the binarization uses an Exponential-Golomb binarization method having degree k, where k is a non-negative integer based on the coded information.
[0243] A25. A method of video processing comprising: determining that a size of the block is larger than a maximum allowed size of an Adaptive Color Transform (ACT) mode for conversion between a video including the block and a bitstream of the video; and performing the conversion based on the determination; and in response to the size of the block being larger than the maximum allowed size of the ACT mode, dividing the block into a plurality of sub-blocks, each of the plurality of sub-blocks sharing the same prediction mode, and the ACT mode being enabled at the sub-block level.
[0244] A26. A method of video processing comprising performing a conversion between a current video block of a video and a bitstream of the video, the bitstream conforming to a format rule specifying that whether an indication of the use of an Adaptive Color Transform (ACT) mode for the current video block is signaled in the bitstream is based on at least one of a dimension of the current video block or a maximum allowed size for the ACT mode.
[0245] A27. The method according to Solution A26, wherein the indication is signaled by a width of the current image block being less than or equal to m or a height of the current image block being less than or equal to n, where m and n are positive integers.
[0246] A28. The method of Solution A26, wherein the indication is signaled due to a product of a width of the current image block and a height of the current image block being less than or equal to m, where m is a positive integer.
[0247] A29. The method of solution A26, wherein the indication is not signaled due to the width of the current image block being greater than m or the height of the current image block being greater than n, where m and n are positive integers.
[0248] The method according to any of Solutions A27 to A29, wherein A30.m is predefined.
[0249] A31. A method according to any of Solutions A27 to A29, deriving m based on a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), an Adaptation Parameter Set (APS), a Coding Tree Unit (CTU) row, a CTU group, a Coding Unit (CU), or a decoded message in the block.
[0250] A32. The method according to solution A26, wherein said indication is not signaled and is inferred to be zero.
[0251] Next, we list alternative solutions that are preferred in some embodiments.
[0252] B1. A method of video processing comprising: 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 the bitstream includes a first flag, the first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that an Adaptive Parameter Set (ACT) mode is disabled for the current video unit.
[0253] B2. The method of Solution B1, wherein the first flag includes general constraint information for one or more pictures in a set of output layers of the video.
[0254] B3. The method according to any one of Solutions B1 and B2, wherein the first flag is no_act_constraint_flag and the second flag is sps_act_enabled_flag.
[0255] B4. The method according to any of Solutions B1 to B3, wherein the second flag is equal to 0 due to the first flag being equal to 1.
[0256] The method according to any one of Solutions B1 to B3, wherein the second flag equal to B5.0 specifies that the ACT mode is disabled for the current video unit.
[0257] B6. The method according to any of Solutions B1 to B3, wherein the second flag can be equal to either 0 or 1 due to the first flag being equal to 1.
[0258] B7. A method of video processing comprising: 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 the bitstream includes a first flag, the first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that a Block-based Delta Pulse Code Modulation (BDPCM) mode is disabled for the current video unit.
[0259] B8. The method of Solution B7, wherein the first flag includes general constraint information for one or more pictures in a set of output layers of the video.
[0260] B9. The method according to any one of Solutions B7 to B8, wherein the first flag is no_bdpcm_constraint_flag and the second flag is sps_bdpcm_enabled_flag.
[0261] B10. The method according to any of Solutions B7 to B9, wherein the second flag is equal to 0 due to the first flag being equal to 1.
[0262] The method according to any one of Solutions B7 to B9, wherein the second flag equal to B11.0 specifies that BDPCM mode is disabled for the current video unit.
[0263] B12. The method according to any of Solutions B7 to B9, wherein the second flag can be equal to either 0 or 1 due to the first flag being equal to 1.
[0264] B13. A method of video processing comprising: 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 the bitstream includes a first flag, the first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that a Block-based Delta Pulse Code Modulation (BDPCM) mode is disabled for a chroma component of the current video unit.
[0265] B14. The method of Solution B13, wherein the first flag includes general constraint information for one or more pictures in a set of output layers of the video.
[0266] B15. The method according to any one of solutions B13 to B14, wherein the first flag is no_bdpcm_chroma_constraint_flag and the second flag is sps_bdpcm_chroma_enabled_flag.
[0267] B16. The method according to any of Solutions B13 to B15, wherein the second flag is equal to 0 due to the first flag being equal to 1.
[0268] The method according to any of Solutions B13 to B15, wherein the second flag equal to B17.0 specifies that the BDPCM mode is disabled for the chroma component of the current video unit.
[0269] B18. The method according to any of Solutions B13 to B15, wherein the second flag can be equal to either 0 or 1 due to the first flag being equal to 1.
[0270] B19. A method of video processing comprising: 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 the bitstream includes a first flag, the first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that palette mode is disabled for the current video unit.
[0271] B20. The method of Solution B19, wherein the first flag includes general constraint information for one or more pictures in a set of output layers of the video.
[0272] B21. The method according to any one of solutions B19 to B20, wherein the first flag is no_palette_constraint_flag and the second flag is sps_palette_enabled_flag.
[0273] B22. The method according to any of Solutions B19 to B21, wherein the second flag is equal to 0 due to the first flag being equal to 1.
[0274] The method according to any one of Solutions B19 to B21, wherein the second flag equal to B23.0 specifies that the palette mode is invalid for the current video unit.
[0275] B24. The method according to any of Solutions B19 to B21, wherein the second flag can be equal to either 0 or 1 due to the first flag being equal to 1.
[0276] B25. A method for processing video, comprising: 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 the bitstream includes a first flag, the first flag indicating whether a second flag in a Sequence Parameter Set (SPS) specifies that Reference Picture Resampling (RPR) mode is disabled for the current video unit.
[0277] B26. The method of Solution B25, wherein the first flag includes general constraint information for one or more pictures in a set of output layers of the video.
[0278] B27. The method according to any one of solutions B25 to B26, wherein the first flag is no_ref_pic_resampling_constraint_flag and the second flag is ref_pic_resampling_enabled_flag.
[0279] B28. The method according to any of Solutions B25 to B27, wherein the second flag is equal to 0 due to the first flag being equal to 1.
[0280] The method according to any of Solutions B25 to B27, wherein the second flag equal to B29.0 specifies that the RPR mode is disabled for the current video unit.
[0281] B30. The method according to any of Solutions B25 to B27, wherein the second flag can be equal to either 0 or 1 due to the first flag being equal to 0.
[0282] B31. The method according to any of Solutions B1 to B30, wherein the formatting rules further specify that whether the first flag is signaled in the bitstream is conditional.
[0283] B32. The method according to Solution B31, wherein the condition is the type of chroma format of the image.
[0284] Next, further solutions that are preferred in some embodiments are listed.
[0285] C1. A method of video processing comprising: performing a conversion between a current video block of a video and a bitstream of the video according to rules specifying that an additional quantization parameter offset is applied when an Adaptive Color Transform (ACT) mode is enabled for the current video block.
[0286] C2. The method according to solution C1, wherein the additional quantization parameter offset is applied after one or more chroma offsets are applied.
[0287] C3. The method according to solution C2, wherein the one or more chroma offsets are specified in a Picture Parameter Set (PPS), a Picture Header (PH), or a Slice Header (SH).
[0288] C4. A method of video processing comprising: performing a conversion between a current video block of a video and a bitstream representation of the video in accordance with rules, the current video block being coded using a joint CbCr coding mode that applies a YCgCo color transform or a YCgCo inverse color transform to the current video block, the rules specifying using a quantization parameter offset value different from -5 in a Picture Header (PH) or a Picture Parameter Set (PPS) associated with the current video block due to the current video block being coded using the joint CbCr coding mode that uses the YCgCo color transform.
[0289] C5. The method according to solution C4, wherein the joint CbCr mode comprises JCbCr mode 2.
[0290] C6. A method of video processing comprising: performing a conversion between a current video block of a video and a bitstream representation of the video in accordance with rules, the current video block being coded using a joint CbCr coding mode that applies a YCgCo-R color transform or an inverse YCgCo-R color transform to the current video block, the rules specifying using a quantization parameter offset value in a Picture Header (PH) or a Picture Parameter Set (PPS) associated with the current video block that differs from a predetermined offset due to the current video block being coded using the joint CbCr coding mode that uses the YCgCo-R color transform.
[0291] C7. The method according to solution C6, wherein the joint CbCr mode comprises JCbCr mode 2.
[0292] C8. The method according to any one of solutions C6 to C7, wherein the predetermined offset is 1.
[0293] C9. The method according to any one of Solutions C6 to C7, wherein the predetermined offset is −1.
[0294] Next, further solutions that are preferred in some embodiments are listed.
[0295] A method of video processing comprising: making a decision whether to enable a BDPCM mode for a video block of a video based on whether it is valid to use P1.ACT (Adaptive Color Transform) mode and / or luma Block-based Delta Pulse Code Modulation (BDPCM) mode for the video block; and performing a conversion between the video block and a bitstream representation of the video in accordance with the decision.
[0296] P2. The method of solution P1, determining a signaling of a first value of a first flag associated with enabling the chroma BDPCM mode based on a signaling of the ACT mode being enabled for the video block and a signaling of a second value of a second flag associated with the use of the luma BDPCM mode.
[0297] P3. The method of solution P2, wherein in response to the ACT mode being enabled, the first value of the first flag becomes a false value and the second value of the second flag becomes a false value.
[0298] P4. The method of solution P2, wherein in response to the second value of the second flag being a true value, the first value of the first flag is a true value.
[0299] P5. The method according to solution P1, wherein the ACT mode signaling for the video block is conditionally based on the same BDPCM prediction direction as used for luma and chroma samples of the video block.
[0300] P6. The 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.
[0301] P7. The method according to solution P1, wherein in response to the use of the ACT mode being enabled, a first value indicating a first prediction direction of the chroma BDPCM mode is derived from a second value indicating a second prediction direction of the luma BDPCM mode.
[0302] P8. The method of 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.
[0303] P9. The 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 horizontal.
[0304] P10. The 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 vertical.
[0305] P11. The method according to solution P1, wherein in response to use of the ACT mode being disabled, the first value indicating the first prediction direction of the chroma BDPCM mode is 0.
[0306] A method of video processing comprising: making a decision whether to enable a Block-based Delta Pulse Code Modulation (BDPCM) mode for a video block of a video based on whether it is valid to use an Adaptive Color Transform (P12.ACT) mode for the video block; and performing a conversion between the video block and a bitstream representation of the video in accordance with the decision.
[0307] P13. The method according to solution P12, wherein in response to the ACT mode being enabled for the video block, the BDPCM mode is disabled for the video block.
[0308] P14. The method according to solution P13, wherein a first flag indicating the BDPCM mode is signaled after a second flag indicating the ACT mode.
[0309] P15. The method according to solution P13, wherein the flag indicating the BDPCM mode is not signaled and the flag is determined to be a false value or 0.
[0310] P16. The method according to solution P12, wherein in response to the BDPCM mode being enabled for the video block, the ACT mode is disabled for the video block.
[0311] P17. The method according to solution P16, wherein a first flag indicating the BDPCM mode is signaled before a second flag indicating the ACT mode.
[0312] P18. The method according to solution P16, wherein the flag indicating the ACT mode is not signaled and the flag is determined to be a false value or 0.
[0313] P19. The method according to any of Solutions P12 to P18, wherein the BDPCM mode includes a luma BDPCM mode and / or a chroma BDPCM mode.
[0314] P20. The method according to solution P1, wherein the ACT mode is applied if the chroma BDPCM mode and the luma BDPCM mode are associated with different prediction modes.
[0315] P21. The method according to solution P20, wherein a forward ACT mode is applied after the chroma BDPCM mode or the luma BDPCM mode.
[0316] P22. The method of any of Solutions P1-P21, clipping a Quantization Parameter (QP) for the video block in response to the ACT mode being enabled.
[0317] P23. The method according to solution P22, wherein a clipping function for clipping the QP is defined as (l,h,x), where l is the minimum possible value of input x and h is the maximum possible value of input x.
[0318] P24.l is equal to 0, the method described in solution P23.
[0319] Method according to solution P23, where P25.h is equal to 63.
[0320] P26. The method of solution P22, clipping the QP of the video block after adjusting the QP for the ACT mode.
[0321] P27. The method of solution P23, wherein in response to transform skip being applied to the video block, l is equal to a minimum allowed QP for transform skip mode.
[0322] P28.l, h, m, n, and / or k are (i) the DPS / SPS / VPS / PPS / APS / picture header / slice header / tile group header / LCU (Largest Coding Unit) / CU (Coding (ii) a message signaled in CU / PU / TU / block / video coding unit; (iii) a coded mode of the block containing the sample along the edge; (iv) a transformation matrix to be applied to blocks containing samples along the edge; (v) block dimensions / block shapes 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, YUV, etc.); (vii) a coding tree structure (e.g., dual tree or single tree); (viii) a slice / tile group type and / or a picture type; (ix) a color component (e.g., may only apply to Cb or Cr); (x) a temporal layer ID; or (xi) an integer number depending on the profile / level / layer of a standard.
[0323] P29. The method according to any of solutions P23 to P26, wherein l, h, m, n and / or k are signaled to the decoder.
[0324] P30. The method according to solution P30, wherein the color format is 4:2:0 or 4:2:2.
[0325] P31. The method according to any of Solutions P1-P30, wherein the indication of the ACT mode, the BDPCM mode, the chroma BDPCM mode, or the luma BDPCM mode is signaled at a sequence, picture, slice, tile, brick, or video area level.
[0326] The following technical solutions are applicable to any of the above solutions.
[0327] O1. A method according to any of the preceding solutions, wherein the conversion comprises decoding the video from the bitstream representation.
[0328] O2. A method according to any of the preceding solutions, wherein the conversion comprises encoding the video into the bitstream representation.
[0329] O3. A method according to any preceding claim, wherein the converting includes generating the bitstream from a current video unit, the method further including storing the bitstream in a non-transitory computer-readable recording medium.
[0330] O4. A method for storing a bitstream representing a video on a computer-readable recording medium, the method comprising generating a bitstream from a video in accordance with a method of the preceding claims and writing the bitstream to the computer-readable recording medium.
[0331] O5. A video processing device comprising a processor configured to implement a method according to any preceding claim.
[0332] O6. A computer readable medium having instructions stored thereon which, when executed, cause a processor to perform a method as recited in the preceding claims.
[0333] O7. A computer readable medium storing said bitstream representation generated as claimed in any of the preceding claims.
[0334] O8. A video processing device for storing a bitstream representation, said video processing device being configured to implement a method according to the preceding claims.
[0335] O9. A bitstream generated using the methods described herein and stored on a computer readable medium.
[0336] As used herein, the term "video processing" can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion from a pixel representation of a video to a corresponding bitstream representation, or vice versa. The bitstream representation of a current video block may correspond to bits that are spread to the same or different locations in the bitstream, e.g., as specified by a syntax. For example, one macroblock may be encoded in terms of transformed and coded error residual values, and using bits in the header and other fields in the bitstream.
[0337] Implementations of the disclosed and other solutions, examples, embodiments, modules, and functional operations described herein, including the structures disclosed herein and their structural equivalents, may be implemented in digital electronic circuitry, or computer software, firmware, or hardware, or in one or more combinations 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 implementation by or for controlling the operation of a data processing apparatus. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that provides a machine-readable propagated signal, or one or more combinations thereof. The term "data processing apparatus" may refer to, for example, a programmable processor, a computer, or a multi-function peripheral. "A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to an appropriate receiving device."
[0338] A computer program (also called 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 recorded as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), may be stored in a single file dedicated to the program, or may be stored in multiple coordinating files (e.g., a file that stores one or more modules, subprograms, or code portions). A computer program can be deployed to run on one computer located at one site, or on multiple computers distributed across multiple sites and interconnected by a communication network.
[0339] The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and an apparatus may be implemented as, special purpose logic circuitry, such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC).
[0340] Processors suitable for executing computer programs include, for example, both general purpose and special purpose microprocessors, as well as any one or more processors of any kind of digital computer. Typically, a processor receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer may include one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or may be operatively coupled to receive data from or transfer data to these mass storage devices. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, EPROMs, EEPROMs, flash storage devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and semiconductor storage devices such as CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0341] Although this patent specification contains many details, these should not be construed as limiting the scope of any subject matter or the scope of the claims, but rather as descriptions of features that may be specific to particular embodiments of a particular technology. Certain features described in this patent document in the context of separate embodiments may be implemented in combination in one example. Conversely, various features described in the context of one example may be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination and initially claimed as such, one or more features from a claimed combination may, in some cases, be extracted from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0342] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring such operations to be performed in the particular order or sequential order shown, or that all of the operations shown be performed, to achieve a desired result. Additionally, the separation of various system components in the examples described in the patent document should not be understood as requiring such separation in all embodiments. Only some implementations and examples have been described, and other embodiments, extensions and variations are possible based on the content described and illustrated in this patent document.
Claims
1. 1. A method for processing video data, comprising the steps of: performing a conversion between a current video unit of a video and a bitstream of said video based on a format rule that specifies that an additional quantization parameter offset is further applied to the intermedia quantization parameter; the additional quantization parameter offset is determined based on whether to apply a color transformation mode for the current video unit; In the color conversion mode, a visual signal is converted from a first color domain to a second color domain in the case of an encoding operation, or the visual signal is converted from the second color domain to the first color domain in the case of a decoding operation; The method, wherein the intermedia quantization parameters are derived from one or more chroma offsets specified in a Picture Parameter Set (PPS) and a Slice Header (SH).
2. The intermedia quantization parameter for the Cb component is Qp'Cb=Clip3(-QpBdOffset, 63, qPCb+pps_cb_qp_offset+sh_cb_qp_offset+CuQpOffsetCb)+QpBdOffset is defined as The qPCb indicates an original quantization parameter for the Cb component, QpBdOffset indicates a bit-depth-based quantization parameter offset; pps_cb_qp_offset indicates the chroma offset defined in the PPS for the Cb component, sh_cb_qp_offset indicates the chroma offset defined in SH for the Cb component, CuQpOffsetCb indicates a variable derived in the PPS for the Cb component, The method of claim 1 , wherein Clip3 denotes a clipping function.
3. The intermedia quantization parameter for the Cr component is Qp'Cr=Clip3(-QpBdOffset, 63, qPCr+pps_cr_qp_offset+sh_cr_qp_offset+CuQpOffsetCr)+QpBdOffset is defined as The qPCr indicates an original quantization parameter for the Cr component, QpBdOffset indicates a bit-depth-based quantization parameter offset; pps_cr_qp_offset indicates the chroma offset defined in the PPS for the Cr component, sh_cr_qp_offset indicates the chroma offset defined in SH for the Cr component, CuQpOffsetCr indicates a variable derived in the PPS for the Cr component; The method of claim 1 or 2, wherein Clip3 denotes a clipping function.
4. The inter media quantization parameters for the joint CbCr components are Qp'CbCr=Clip3(-QpBdOffset, 63, qPCbCr+pps_joint_cbcr_qp_o ffset+sh_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset is defined as the qPCbCr denotes an original quantization parameter for the joint CbCr components; QpBdOffset indicates a bit-depth-based quantization parameter offset; pps_joint_cbcr_qp_offset indicates the chroma offset specified in PPS for the joint CbCr component, sh_joint_cbcr_qp_offset indicates the chroma offset defined in SH for the joint CbCr component, CuQpOffsetCbCr denotes a variable derived in the PPS for the joint CbCr component; The method of claim 1 , wherein Clip3 denotes a clipping function.
5. 5. The method of claim 4, wherein the format rules further specify that the additional quantization parameter offset is not equal to −5 due to the current video unit being coded using a joint CbCr coding mode.
6. The method of claim 5 , wherein a mode index of the joint CbCr coding mode is equal to 2.
7. The method of claim 6 , wherein the color transformation mode is applied to the current image unit.
8. The format rules further define whether a first flag is included in the bitstream, the first flag having general constraint information for one or more pictures in a set of output layers of the video; the first flag indicates whether a second flag in a Sequence Parameter Set (SPS) of the bitstream specifies that a resampling mode for the current video unit is disabled; 2. The method of claim 1, wherein in response to the resampling mode being disabled, the current picture and the reference picture share the same position offset contained in the Picture Parameter Set (PPS), and the position offset is used to calculate a scaling factor.
9. The first flag is indicated as no_ref_pic_resampling_constraint_flag, The method of claim 8 , wherein the second flag is denoted as ref_pic_resampling_enabled_flag.
10. the second flag is equal to 0 due to the first flag being equal to 1; The method of claim 8 or 9, wherein the second flag equal to 0 specifies that the resampling mode is invalid for the current video unit.
11. The format rules further define whether a third flag is included in the bitstream; the third flag comprises second general constraint information for the one or more pictures in the set of output layers of the video; The method of claim 8 , wherein the third flag indicates whether a fourth flag of the SPS specifies that a pulse code conversion mode for the current video unit is disabled.
12. The third flag is indicated as no_bdpcm_constraint_flag, The method of claim 11 , wherein the fourth flag is denoted as sps_bdpcm_enabled_flag.
13. the fourth flag is equal to 0 due to the third flag being equal to 1; 13. The method according to claim 11 or 12, wherein the fourth flag equal to 0 defines that the pulse code conversion mode is disabled for the current image unit.
14. 14. The method of claim 11, wherein the third flag indicates whether a fifth flag of the SPS specifies that the pulse coding mode for a chroma component of the current video unit is disabled.
15. The format rules further define whether a sixth flag is included in the bitstream; the sixth flag comprises third general constraint information for the one or more pictures in the set of output layers of the video; 15. The method of claim 8, wherein the sixth flag indicates whether a seventh flag of the SPS specifies that a palette mode for the current video unit is invalid.
16. The sixth flag is indicated as no_palette_constraint_flag, The method of claim 15 , wherein the seventh flag is denoted as sps_palette_enabled_flag.
17. the seventh flag is equal to 0 due to the sixth flag being equal to 1; 17. The method of claim 15 or 16, wherein the seventh flag equal to 0 specifies that the palette mode is invalid for the current video unit.
18. The format rules further define whether an eighth flag is included in the bitstream; the eighth flag comprises fourth general constraint information for the one or more pictures in the set of output layers of the video; 18. The method of claim 8, wherein the eighth flag indicates whether a ninth flag of the SPS specifies that the color transformation mode for the current video unit is invalid.
19. The eighth flag is indicated as no_act_constraint_flag, 20. The method of claim 18, wherein the ninth flag is denoted as sps_act_enabled_flag.
20. the ninth flag is equal to 0 due to the eighth flag being equal to 1; 20. The method of claim 18 or 19, wherein the ninth flag equal to 0 specifies that the color transformation mode is invalid for the current video unit.
21. 21. The method of claim 8, wherein the formatting rules further comprise: the first flag being conditionally signaled in the bitstream.
22. 22. The method of claim 1, wherein the converting comprises encoding the video into the bitstream.
23. 22. The method of claim 1, wherein the converting comprises decoding the video from the bitstream.
24. 1. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions, comprising: The instructions, when executed by the processor, cause the processor to: performing a conversion between a current video unit of a video and a bitstream of said video based on a format rule that specifies that an additional quantization parameter offset is further applied to the intermedia quantization parameter; the additional quantization parameter offset is determined based on whether to apply a color transformation mode for the current video unit; In the color conversion mode, a visual signal is converted from a first color domain to a second color domain in the case of an encoding operation, or the visual signal is converted from the second color domain to the first color domain in the case of a decoding operation; The apparatus, wherein the intermedia quantization parameters are derived from one or more chroma offsets specified in a Picture Parameter Set (PPS) and a Slice Header (SH).
25. On the computer, performing a conversion between a current video unit of a video and a bitstream of said video based on a format rule that specifies that an additional quantization parameter offset is further applied to the intermedia quantization parameter; the additional quantization parameter offset is determined based on whether to apply a color transformation mode for the current video unit; In the color conversion mode, a visual signal is converted from a first color domain to a second color domain in the case of an encoding operation, or the visual signal is converted from the second color domain to the first color domain in the case of a decoding operation; The intermedia quantization parameters are derived from one or more chroma offsets defined in a Picture Parameter Set (PPS) and a Slice Header (SH).
26. A method for storing a video bitstream, comprising the steps of: The method comprises: generating a bitstream for a current video unit of the video based on a format rule that specifies that an additional quantization parameter offset is further applied to the intermedia quantization parameter; the additional quantization parameter offset is determined based on whether to apply a color transformation mode for the current video unit; storing the bitstream on a non-transitory computer readable recording medium; In the color conversion mode, a visual signal is converted from a first color domain to a second color domain in the case of an encoding operation, or the visual signal is converted from the second color domain to the first color domain in the case of a decoding operation; The method, wherein the intermedia quantization parameters are derived from one or more chroma offsets specified in a Picture Parameter Set (PPS) and a Slice Header (SH).
Citation Information
Patent Citations
Video signal processing method and apparatus
JP2022542851A
Implicit signaling of adaptive resolution management based on frame type
JP2022544164A
Dynamic image coding device and dynamic image decoding device
JP2023011955A
Image encoding / decoding method and device using color space conversion, and bitstream transmission method
JP2023500644A
Implicit signaling of adaptive resolution management based on frame type
US20210044820A1
Cited By
Use of offsets with adaptive colour transform coding tool
US12477130B2