Context Encoding for Transform Skip Mode

JP7640659B2Active Publication Date: 2025-03-05BYTEDANCE INC
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
JP2023207743
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-04-19
Filing Date
2023-12-08
Publication Date
2025-03-05
Estimated Expiration
2040-04-17

Smart Images

  • Figure 0007640659000016
    Figure 0007640659000016
  • Figure 0007640659000017
    Figure 0007640659000017
  • Figure 0007640659000018
    Figure 0007640659000018
Patent Text Reader

Abstract

To provide a device, a system, and a method for coefficient coding in a transform skip mode.SOLUTION: A method for video processing includes: determining, for encoding one or more video blocks in a video region of visual media data into a bitstream representation of the visual media data, a maximum allowed dimension up to which a current video block of the one or more video blocks is allowed to be encoded by using a transform skip mode such that a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying a transform; and including a syntax element indicative of the maximum allowed dimension in the bitstream representation.SELECTED DRAWING: Figure 9A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS Books This application claims priority to and the benefit of International Patent Application No. PCT / CN2019 / 083366, filed April 19, 2019. main Stretch This is a divisional application of Japanese Patent Application No. PCT / US2020 / 028808 filed on April 17, 2020. The entire disclosure of the above application is three By lighting Here It is incorporated herein by reference.

[0002] TECHNICAL FIELD This specification relates to video and image encoding and decoding techniques, systems, and apparatus. [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] Devices, systems, and methods are described that relate to digital video coding, and in particular, to coefficient coding in transform skip mode for video coding. The described methods can be applied to both existing video coding standards (e.g., High Efficiency Video Coding (HEVC)) and future video coding standards (e.g., Versatile Video Coding (VCC)) or codecs.

[0005] In one exemplary aspect, a method for visual media processing is disclosed, the method comprising: determining a maximum allowed dimension in which a current video block of the one or more video blocks in a video domain of visual media data can be encoded using a transform skip mode such that a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying a transform; and including in the bitstream representation a syntax element indicating the maximum allowed dimension for encoding one or more video blocks in a video domain of visual media data into a bitstream representation of the visual media data.

[0006] In another exemplary aspect, a visual media processing method is disclosed that includes parsing a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating a maximum allowed dimension in which a current video block of the one or more video blocks may be encoded using a transform skip mode that represents in the bitstream representation a residual of a prediction error between the current video block and a reference video block without applying a transform, and generating a decoded video region from the bitstream representation by decoding the one or more video blocks according to the maximum allowed dimension.

[0007] In yet another example aspect, a method of visual media processing is disclosed, the method including determining to encode a current video block of visual media data using a transform skip mode, and performing a conversion between the current video block and a bitstream representation of the visual media data based on the determination, wherein during the conversion, the current video block is divided into a plurality of coefficient groups, and a signaling of a coded block flag for at least one of the plurality of coefficient groups is eliminated in the bitstream representation, and in the transform skip mode, a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying a conversion.

[0008] In yet another example aspect, a method of visual media processing is disclosed, the method including determining to encode a current video block of visual media data using a transform skip mode and converting between the current video block and a bitstream representation of the visual media data based on the determination, wherein during the conversion, the current video block is divided into a plurality of coefficient groups, in the transform skip mode, residuals of prediction errors between the current video block and a reference video block are represented in the bitstream representation without applying a transform, and further wherein during the conversion, a coefficient scan order of the plurality of coefficient groups is determined based at least in part on an indication in the bitstream representation.

[0009] In yet another example aspect, a method of visual media processing is disclosed that includes using a transform skip mode for encoding a current video block in a video domain of visual media data into a bitstream representation of the visual media data, in which a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying a transform, and selecting a context of a code flag of the current video block according to code flags of one or more neighboring video blocks in a coefficient group associated with the current video block based on dividing the current video block into a plurality of coefficient groups.

[0010] In yet another exemplary aspect, a method of visual media processing is disclosed that includes parsing a bitstream representation of visual media data having a video region having a current video block to identify a context of a code flag used in a transform skip mode in which a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation without applying a transform, and generating a decoded video region from the bitstream representation such that the context of the code flag follows code flags of one or more neighboring video blocks in a coefficient group associated with the current video block based on dividing the current video block into a plurality of coefficient groups.

[0011] In yet another example aspect, a method of visual media processing is disclosed that includes determining a location of a current coefficient associated with a current video block of visual media data when the current video block is divided into multiple coefficient locations, deriving a context for a sign flag of the current coefficient based on a sign flag of at least one or more neighboring coefficients, and generating a sign flag of the current coefficient based on the context, where the sign flag of the current coefficient is used in a transform skip mode to encode the current video block without applying a transform.

[0012] In yet another example aspect, a method of visual media processing is disclosed that includes determining, for encoding one or more video blocks in a video domain of visual media data into a bitstream representation of the visual media data based on satisfying at least one rule that a chroma transform skip mode is applicable to a current video block, where in a chroma transform skip mode a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform, and including in the bitstream representation a syntax element indicating a chroma transform skip mode.

[0013] In yet another example aspect, a method of visual media processing is disclosed that includes parsing syntax elements from a bitstream representation of visual media data having a video region having one or more video blocks in which at least one rule associated with application of a chroma transform skip mode is satisfied, where in the transform skip mode a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform, and generating a decoded video region from the bitstream representation by decoding the one or more video blocks.

[0014] In yet another example aspect, a method of visual media processing is disclosed for encoding one or more video blocks in a video domain of visual media data into a bitstream representation of the visual media data, the method comprising making a decision regarding selective application of a transform skip mode to a current video block based on a condition, and including in the bitstream representation a syntax element indicating the condition, where in the transform skip mode a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform.

[0015] In yet another example aspect, a method of visual media processing is disclosed that includes parsing a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating a condition for using a transform skip mode in which a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation without applying a transform, and generating a decoded video region from the bitstream representation by decoding the one or more video blocks in accordance with the condition.

[0016] In yet another exemplary aspect, a method of visual media processing is disclosed, comprising: making a decision regarding selective application of a Quantized Residual Block Differential Pulse-Code Modulation (QR-BDPCM) technique based on an indication of a transform skip mode in the bitstream representation for encoding one or more video blocks in a video domain of visual media data into a bitstream representation of the visual media data, where in the transform skip mode a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform, and in the QR-BDPCM technique a residual of a horizontal and / or vertical prediction error is quantized and entropy coded, and including an indication of the selective application of the QR-BDPCM technique in the bitstream representation.

[0017] In yet another exemplary aspect, a method of visual media processing is disclosed, the method including parsing a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating selective application of a Quantized Residual Block Differential Pulse-Code Modulation (QR-BDPCM) technique based on an indication of a transform skip mode in the bitstream representation, in which in the transform skip mode a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform, in which in the QR-BDPCM technique the residual of the horizontal and / or vertical prediction error is quantized and entropy coded, and generating a decoded video region from the bitstream representation by decoding the one or more video blocks according to a maximum allowed dimension.

[0018] In yet another example aspect, a method of visual media processing is disclosed that includes making a decision regarding selective application of a separate or dual tree based on a condition to encode one or more video blocks in a video domain of visual media data into a bitstream representation of the visual media data, and including in the bitstream representation a syntax element indicating the selective application of the separate or dual tree.

[0019] In yet another exemplary aspect, a method of visual media processing is disclosed that includes parsing a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating a conditionally based or inferred selective application of separate or dual trees, and generating a decoded video region from the bitstream representation by decoding the one or more video blocks according to the syntax element.

[0020] In yet another exemplary aspect, a video encoder or decoder device is disclosed that comprises a processor configured to implement the above-described method.

[0021] In another exemplary aspect, a computer-readable program medium is disclosed, the medium storing code implementing processor-executable instructions for implementing one of the disclosed methods.

[0022] These and other aspects are further described herein. [Brief description of the drawings]

[0023] [Figure 1] FIG. 1 shows an example of intra block copy. [Diagram 2] FIG. 2 shows an example of a block coded in palette mode. [Diagram 3] FIG. 3 shows an example of using a palette predictor to signal a palette entry. [Figure 4] FIG. 4 shows an example of horizontal and vertical traverse scans. [Diagram 5] FIG. 5 shows an example of coding of the palette index. [Figure 6] FIG. 6 shows an example of a multi-type tree splitting mode. [Figure 7] FIG. 7 shows an example of samples used to derive parameters in a CCLM (Cross-Component Linear Model) prediction mode. [Figure 8] FIG. 8 shows an example architecture for luma mapping with chroma scaling. [Figure 9A] FIG. 9A is a flow chart illustrating an example of a video processing method. [Figure 9B] FIG. 9B is a flow chart illustrating an example of a video processing method. [Figure 9C] FIG. 9C is a flow chart illustrating an example of a video processing method. [Figure 9D] FIG. 9D is a flow chart illustrating an example of a video processing method. [Figure 9E] FIG. 9E is a flow chart illustrating an example of a video processing method. [Figure 10] FIG. 10 is a block diagram illustrating an example of a hardware platform for implementing the visual media decoding or visual media encoding techniques described in this patent specification. [Figure 11] FIG. 11 is a block diagram illustrating an example video processing system in which the disclosed techniques can be implemented. [Figure 12] FIG. 12 is a flow chart illustrating an example of a visual media processing method. [Figure 13] FIG. 13 is a flow chart illustrating an example of a visual media processing method. [Figure 14] FIG. 14 is a flow chart illustrating an example of a visual media processing method. [Figure 15]FIG. 15 is a flow chart illustrating an example of a visual media processing method. [Figure 16] FIG. 16 is a flow chart illustrating an example of a visual media processing method. [Figure 17] FIG. 17 is a flow chart illustrating an example of a visual media processing method. [Figure 18] FIG. 18 is a flow chart illustrating an example of a visual media processing method. [Figure 19] FIG. 19 is a flow chart illustrating an example of a visual media processing method. [Figure 20] FIG. 20 is a flow chart illustrating an example of a visual media processing method. [Figure 21] FIG. 21 is a flow chart illustrating an example of a visual media processing method. [Figure 22] FIG. 22 is a flow chart illustrating an example of a visual media processing method. [Diagram 23] FIG. 23 is a flow chart illustrating an example of a visual media processing method. [Figure 24] FIG. 24 is a flow chart illustrating an example of a visual media processing method. [Diagram 25] FIG. 25 is a flow chart illustrating an example of a visual media processing method. [Figure 26] FIG. 26 is a flow chart illustrating an example of a visual media processing method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0024] This specification provides various techniques that can be used by a decoder of an image or video bitstream to improve the quality of the decompressed or decoded digital video or image. For simplicity, the term "video" is used herein to include both a series of pictures (conventionally called video) and individual images. Furthermore, a video encoder may implement these techniques during the encoding process to reconstruct the decoded frames that are used for further encoding.

[0025] Section headings are used herein for ease of understanding and are not intended to limit embodiments disclosed in one section to only that section, and thus embodiments in one section may be combined with embodiments in other sections.

[0026] 1. Summary of the Invention

[0027] The present application relates to video encoding / decoding techniques. In particular, the present application relates to coefficient coding in transform skip mode in video encoding. The present invention may be applied to existing video encoding standards such as HEVC, or may be applied to finalize standards (Versatile Video Coding). The present invention may also be applicable to future video encoding standards or video codecs.

[0028] 2. Initial consultations

[0029] Video coding standards have evolved mainly 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 [1,2]. Since H.262, video coding standards have been based on hybrid video coding structures in which temporal prediction and transform coding are utilized. In order to explore future video coding technologies beyond HEVC, in 2015, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET). 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.

[0030] The latest version of the VVC draft, namely Versatile Video Coding (Draft 4), can be found at:

[0031] http: / / phenix.it-sudparis.eu / jvet / doc_end_user / current_document.php?id=5755

[0032] The latest reference software for VVC, called VTM, can be found at:

[0033] https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-4.0

[0034] Intra-block copy

[0035] IBC (Intra Block Copy), also known as Current Picture Referencing, is adopted in HEVC Screen Coding extensions (HEVC-SCC) and the current VVC Test Model (VTM-4.0). IBC extends the concept of motion compensation from inter-frame coding to intra-frame coding. As shown in Figure 1, the current block is predicted by a reference block in the same picture when IBC is applied. Before encoding or decoding the current block, samples in the reference block must already be reconstructed. IBC is not very efficient for most camera-captured sequences, but it shows significant coding gain for screen content. The reason is that there are many repeating patterns, such as icons and characters, in screen content pictures. IBC can effectively remove redundancy between these repeating patterns. In HEVC-SCC, an inter-coding coding unit (CU) can apply IBC if it selects the current picture as its reference picture. In this case, MV is renamed to BV (Block Vector), and BV always has integer pixel accuracy. To conform to the Main Profile HEVC, the current picture is marked as a "long-term" reference picture in the Decoded Picture Buffer (DPB), just as intra-view reference pictures are also marked as "long-term" reference pictures in multiple view / 3D video coding standards.

[0036] After the BV finds its reference block, it can generate a prediction by copying the reference block. The residual can be obtained by subtracting the reference pixels from the original signal. Then, transforms and quantization can be applied as in other coding modes.

[0037] However, if the reference block is outside the picture, or overlaps with the current block, or is outside the reconstructed region, or is outside the valid region limited by some constraint, some or all of the pixel values ​​are undefined. Basically, there are two solutions to deal with such problems. One is to not allow such situations, e.g. bitstream conformance. The other is to apply padding to these undefined pixel values. The following sub-sections explain the solutions in detail.

[0038] IBC in HEVC Screen Content Coding Extensions

[0039] In the screen content coding extensions of HEVC, when a block uses the current picture as a reference, it should be ensured that the entire reference block is within the available reconstructed region, as indicated in the specification text below.

[0040] The variables offsetX and offsetY are derived as follows: offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0) (8-106) offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0) (8-107)

[0041] It is a bitstream compatibility requirement that if the reference picture is the current picture, the luma motion vector mvLX should obey the following constraints: - The derivation process for z scan order block availability as specified in Section 6.4.1, when called with input (xCurr, yCurr) set equal to (xCb, yCb) and nearby luminance location (xNbY, yNbY) set equal to (xPb + (mvLX[0] >> 2) - offsetX, yPb + (mvLX[1] >> 2) - offsetY), the output is true. - The derivation process for z scan order block availability as specified in Section 6.4.1, when called with input (xCurr,yCurr) set equal to (xCb.yCb) and nearby luminance location (xNbY,yNbY) set equal to (xPb+(mvLX[0]>>2)+nPbW-1+offsetX,yPb+(mvLX[1]>>2)+nPbH-1+offsetY), the output is true. -One or both of the following conditions are true: - The value of (mvLX[0]>>2)+nPbW+xB1+offsetX is less than or equal to 0. The value of -(mvLX[1]>>2)+nPbH+yB1+offsetY is less than or equal to 0. -The following conditions are true: (xPb+(mvL[0]>>2)+nPbSw-1+offsetX) / CtbSizeY-xCurr / CtbSizeY<=yCurr / CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY) / CtbSizeY (8-108)

[0042] In this way, cases where the reference block overlaps with the current block or where the reference block is outside the picture do not occur. There is no need to pad the reference block or the predicted block.

[0043] IBC in the VVC test model

[0044] In the current VVC test model, i.e., VTM-4.0 design, the entire reference block should have the current CTU (Coding Tree Unit) and does not overlap with the current block. Therefore, there is no need to pad the reference or prediction block. The IBC flag is coded as the prediction mode of the current CU. Thus, there are a total of three prediction modes for each CU: MODE_INTRA, MODE_INTER, and MODE_IBC.

[0045] IBC Merge Mode

[0046] In IBC merge mode, indices that point to entries in the IBC merge candidate list are parsed from the bitstream. The construction of the IBC merge list can be summarized according to the following sequence of steps:

[0047] Step 1: Derive spatial candidates

[0048] Step 2: Inserting HMVP candidates

[0049] Step 3: Inserting pairwise average candidates

[0050] In the derivation of spatial merge candidates, up to four merge candidates are selected from the candidates at positions A1, B1, B0, A0 and B2. The order of derivation is A1, B1, B0, A0, B2. Position B2 is considered only if any PU at positions A1, B1, B0, A0 is not available (e.g., because it belongs to another slice or tile) or is not coded in IBC mode. After adding the candidate at position A1 and inserting the remaining candidates, a redundancy check is performed to ensure that candidates with the same motion information are excluded from the list, so as to improve coding efficiency.

[0051] If after inserting the spatial candidates, the IBC merge list size is still less than the maximum IBC merge list size, then an IBC candidate from the HMVP table may be inserted. Upon insertion of an HMVP candidate, a redundancy check is performed.

[0052] Finally, the pairwise average candidates are inserted into the IBC merge list.

[0053] If the reference block identified by a merge candidate is outside the picture, or overlaps with the current block, or is outside the reconstructed region, or is outside the valid region limited by some constraint, the merge candidate is called an invalid merge candidate.

[0054] Note that invalid merge candidates may be inserted into the IBC merge list.

[0055] IBC AMVP mode

[0056] In IBC AMVP mode, an AMVP index that points to an entry in an IBC AMVP list is parsed from the bitstream. The construction of the IBC AMVP list can be summarized according to the following sequence of steps:

[0057] Step 1: Derive spatial candidates

[0058] Check A0, A1 until a usable candidate is found.

[0059] Check B0, B1, B2 until an available candidate is found.

[0060] Step 2: Inserting HMVP candidates

[0061] Step 3: Inserting zero candidates

[0062] If after inserting the spatial candidates, the IBC AMVP list size is still less than the maximum IBC AMVP list size, then the IBC candidates from the HMVP table may be inserted.

[0063] Finally, the zero candidate is inserted into the IBC AMVP list.

[0064] AMVR (Adaptive Motion Vector Resolution)

[0065] In HEVC, when use_integer_mv_flag is 0 in the slice header, the MVD (Motion Vector Difference) (between the motion vector and the predicted motion vector of the CU) is signaled in units of 1 / 4 luma samples. In VVC, a CU-level AMVR (Adaptive Motion Vector Resolution) scheme is introduced. AMVR allows the MVD of a CU to be coded with different precisions. Based on the mode for the current CU (normal AMVP mode or affine AVMP mode), the MVD of the current CU can be adaptively selected as follows: -Normal AMVP mode: 1 / 4 luma samples, integer luma samples, or 4 luma samples. -Affine AMVP mode: 1 / 4 luma samples, integer luma samples, or 1 / 16 Luminance samples.

[0066] If the current CU has at least one non-zero MVD component, the CU-level MVD resolution indication is conditionally signaled. If all MVD components (i.e., both horizontal and vertical MVDs in reference list L0 and reference list L1) are zero, a 1 / 4 luma sample MVD resolution is inferred.

[0067] For a CU with at least one non-zero MVD component, a first flag is signaled to indicate whether 1 / 4 luma sample MV precision is used for the CU. If the first flag is 0, no further signaling is required and 1 / 4 luma sample MVD precision is used for the current CU. Otherwise, a second flag is signaled to indicate whether integer luma sample or 4 luma sample MVD precision is used for normal AMVP CUs. The same second flag is used to indicate whether integer luma sample or 1 / 16 luma sample MVD precision is used for affine AMVP CUs. To ensure that the reconstructed MV has the intended precision (1 / 4 luma sample, integer luma sample, or 4 luma sample), the motion vector prediction module for the CU is rounded to the same precision as the MVD before being added to the MVD. The motion vector predictor rounds towards zero (i.e., negative motion vector predictors are rounded towards positive infinity, and positive motion vector predictors are rounded towards negative infinity).

[0068] The encoder uses the RD check to determine the resolution of the motion vectors for the current CU. To avoid always performing the CU-level RD check three times for each MVD resolution, in VTM4, the RD check for MVD precisions other than quarter-luminance samples is only conditionally invoked. For normal AVMP mode, the RD costs of quarter-luminance samples MVD precision and integer luma samples MVD precision are first calculated. Then, the RD cost of integer luma samples MVD precision and the RD cost of quarter-luminance samples MVD precision are compared to determine whether the RD cost of 4 luma samples MVD precision needs to be further checked. If the RD cost of quarter-luminance samples MVD precision is much smaller than the RD cost of integer luma samples MVD precision, the RD check of 4 luma samples MVD precision is omitted. For Affine AMVP mode, if Affine Inter mode is not selected after checking the rate-distortion cost of Affine Merge / Skip mode, Merge / Skip mode, 1 / 4 luma sampling MVD precision normal AMVP mode, and 1 / 4 luma sampling MVD precision affine AMVP mode, 1 / 16 luma sampling MV precision, 1 pixel MV precision affine inter mode are not checked. Furthermore, the affine parameters obtained in 1 / 4 luma sample MV precision affine inter mode are used as the search starting point for 1 / 16 luma sample and 1 / 4 luma sample MV precision affine inter modes.

[0069] Palette Mode

[0070] The basic idea behind the palette mode is to represent the samples in a CU by a small set of representative color values. This set is called the palette. It is also possible to indicate samples that are outside the palette by signaling an escape symbol followed by a (possibly quantized) component value. This is shown in Figure 2.

[0071] Palette mode in HEVC-SCC (Screen Content Coding) extension

[0072] In the palette mode in HEVC-SCC, a prediction scheme is used to code the palette and index map.

[0073] Coding Palette Entries

[0074] A palette predictor is maintained to code the 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, either reset palette_predictor to 0 or initialize the palette predictor using the palette predictor initialization entry signaled in the PPS. In HEVC-SCC, a palette predictor initialization of size 0 is enabled to specifically disable palette predictor initialization at the PPS level.

[0075] 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 3. The reuse flag is transmitted using run-length coding of zeros. After this, the number of new palette entries is signaled using an exponential-Golomb code of order 0. Finally, the component values ​​for the new palette entries are signaled.

[0076] Pallet index coding

[0077] The palette index is coded using horizontal and vertical transverse scans as shown in Figure 4. 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.

[0078] The palette index is coded using the two main palette sample modes, "INDEX" and "COPY_ABOVE". As mentioned before, the escape symbol is also signaled as "INDEX" mode and is assigned an index equal to the maximum palette size. This mode is signaled using flags except for the top row or if the previous mode was "COPY_ABOVE". In "COPY_ABOVE" mode, the palette index of the sample in the row above is copied. In "INDEX" mode, the palette index is signaled explicitly. For both "INDEX" and "COPY_ABOVE" modes, a run value is signaled that specifies the number of subsequent samples to be coded using the same mode. An escape component value is signaled for each escape symbol if the escape symbol is part of a run in "INDEX" or "COPY_ABOVE" modes. The coding of the palette index is shown in Figure 5.

[0079] This syntax sequence is performed as follows: First, the number of index values ​​for a CU is signaled. This is followed by the actual index value of the entire CU being signaled 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 is signaled in an interleaved manner. Finally, component escape values ​​corresponding to escape samples for the entire CU are grouped together and coded in bypass mode.

[0080] After signaling the index value, an additional syntax element, last_run_type_flag, is signaled, which in conjunction with the number of indexes, removes the need to signal the run value corresponding to the last run in the block.

[0081] 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 direction, chroma samples are associated with luma sample indices that are divisible by two. After reconstructing the palette index of 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 sample, the number of escape component values ​​signaled may differ depending on the number of components associated with that sample.

[0082] Coefficient coding in transform skip mode

[0083] In JVET-M0464 and JVET-N0280, some improvements are proposed for coefficient coding in Transform Skip (TS) mode to adapt the residual coding to the statistics and signal characteristics of the transform skip level.

[0084] The proposed variations are given below.

[0085] No significant previous scan position : Since the residual signal reflects the spatial residual after prediction and no energy compaction is performed on the TS by the transform, the bottom right corner of the transform block is no longer followed by zero or insignificant levels with a higher probability. Therefore, in this case, the last significant scan position signal transmission is omitted.

[0086] Sub-block CBF : In the absence of a last significant scan position signal, the sub-block CBF signal with coded_sub_block_flag for TS needs to be modified as follows: o Due to quantization, the aforementioned non-significant sequences may still occur locally within a transform block, therefore the last significant scan position is removed and coded_sub_block_flag is coded for all sub-blocks as explained before. ○ The coded_sub_block_flag of the subblock covering the DC frequency position (top left subblock) presents a special case. In VVC draft 3, the coded_sub_block_flag of this subblock is never signaled and is always inferred to be equal to 1. If the last significant scan position is located in another subblock, it means that there is at least one significant level outside the DC subblock. As a result, the DC subblock may contain only zero / non-significant levels, although the coded_sub_block_flag of this subblock is inferred to be equal to 1. In the absence of last scan position information in the TS, the coded_sub_block_flag of each subblock is signaled. This includes the coded_sub_block_flag of the DC subblock, except if all other coded_sub_block_flag syntax elements are already equal to 0. In this case, the DC coded_sub_block_flag is inferred to be equal to 1 (inferDcSbCbf=1). Since there must be at least one significant level in this DC sub-block, if all other sig_coeff_flag syntax elements in this DC sub-block are equal to 0, then the sig_coeff_flag syntax element in the first position at (0,0) is not signaled and is derived to be equal to 1 (inferSbDcSigCoefflag=1). ○ The context modeling of coded_sub_block_flag is changed: the context model index is calculated as the sum of the coded_sub_block_flag to the left of the current sub-block and the coded_sub_block_flag above, instead of the logical OR of both.

[0087] sig_coeff_flag Context modeling : The local template in the sig_coeff_flag context model is modified to include only the left neighbor (NB0) and the upper neighbor (NB1) of the current scan position. The context model offset is just the number of significant neighbor positions sig_coeff_flag[NB0]+sig_coeff_flag[NB1]. So we preclude selecting different context sets depending on the diagonal d in the current transform block. As a result, we have three context models and a single context model set for coding sig_coeff_flag.

[0088] abs_level_gt1_flag and par_level_flag context modeling A single context model is used for abs_level_gt1_flag and par_level_flag.

[0089] abs_remainderCoding : The empirical distribution of the transform skip residual absolute levels typically still fits the Laplacian or geometric distribution, but there is a larger instability than for the transform coefficient absolute levels. Specifically, the residual absolute levels have higher variance within successive realization windows. This motivates the following modifications of the binarization and context modeling of the abs_remainder construct: By using higher cutoff values ​​in binarization, i.e. sig_coeff_flag, abs_level_gt1_flag, par_level_flag, and abs_level_gt3 to Rice code in abs_remainder, a dedicated context model for each bin position, a higher compression efficiency is obtained. Increasing the cutoff results in more "greater than X" flags, e.g. abs_level_gt5_flag, abs_level_gt7_flag, etc., until the cutoff is reached. The cutoff itself is fixed at 5 (numGtFlags=5). ○ The template for Rice parameter derivation is modified, i.e. only the left and upper neighborhoods of the current scan position are considered similar to the local template for sig_coeff_flag context modeling.

[0090] coeff_sign_flag Context Modeling : Due to instability in the sequence of codes and the fact that prediction residuals are often biased, codes may be coded using a context model even if the overall empirical distribution is nearly uniform. A single dedicated context model is used to code the code, and the code is parsed after sig_coeff_flag to group all context coding bins together.

[0091] QR-BDPCM(Quantized Residual Block Differential Pulse Code Modulation)

[0092] In JVET-M0413, Quantized Residual Block Differential Pulse Code Modulation (QR-BDPCM) is proposed for efficiently encoding screen content.

[0093] The prediction directions used in QR-BDPCM can be vertical and horizontal prediction modes. Intra prediction predicts the whole block by copying samples in the prediction direction (horizontal or vertical prediction) similar to intra prediction. The residual is quantized and the difference between the quantized residual and the quantized value of its predictor (horizontal or vertical) is coded. 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 are the prediction residuals 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 with ~ The vertical BDPCM is signaled as follows:

[0094]

number

[0095] For horizontal prediction, a similar rule applies and the residual quantized samples are given by:

[0096]

number

[0097] Residual quantized sample r ~ i,j is sent to the decoder.

[0098] At the decoder, the above calculation is reversed to obtain Q(r i,j ), 0≦i≦M-1, 0≦j≦N-1. For vertical prediction,

[0099]

number

[0100] For the horizontal direction,

[0101]

number

[0102] The dequantized residual Q -1 (Q(r i,j ) is added to the intrablock prediction to generate a reconstructed sample value.

[0103] The main advantage of this scheme is that the inverse DPCM can be done on the fly by simply adding a predictor during coefficient parsing, or it can be done after parsing.

[0104] The proposed text changes for QR-BDPCM are shown below.

[0105] 7.3.6.5 Coding Unit Syntax

[0106] [Table 1]

[0107] [Table 2]

[0108] bdpcm_flag[x0][y0] equal to 1 specifies that bdpcm_dir_flag is present in the coding unit that contains the luminance coding block at position (x0, y0). If bdpcm_dir_flag[x0][y0] is 0, it specifies that the prediction direction used in the bdpcm block is horizontal, otherwise it specifies that it is vertical.

[0109] Partition Structure

[0110] Splitting CTUs using a tree structure

[0111] In HEVC, CTUs are partitioned into CUs using a quad-tree structure called a coding tree to adapt to various local features. The decision of whether to code a picture region using inter-picture (temporal) prediction or intra-picture (spatial) prediction is made at the leaf CU level. Each leaf CU can be further partitioned into one, two or four PUs depending on the PU partition type. Inside one PU, the same prediction process is applied and related information is sent to the decoder on a PU-by-PU basis. After obtaining the residual block by applying the prediction process based on the PU partition type, the leaf CU can be partitioned into TUs (Transform Units) according to another quad-tree structure similar to the coding tree for CUs. One of the important features of the HEVC structure is that it has a multiple partition concept including CUs, PUs and TUs.

[0112] In VVC, a quadtree with nested multi-type trees using binary and ternary split segmentation structures replaces the concept of multiple partition unit types. That is, it eliminates the separation of CU, PU, ​​and TU concepts, except when necessary for CUs with sizes that are too large for the maximum transform length, and supports more flexibility for CU partition shapes. In the coding tree structure, a CU can have either a square or a rectangle. First, a coding tree unit (CTU) is split by a quadtree structure. Then, the leaf nodes of the quadtree can be further partitioned by a multi-type tree structure. As shown in FIG. 6, there are four split types of the multi-type tree structure: vertical binary split (SPLIT_BT_VER), horizontal binary split (SPLIT_BT_HOR), vertical ternary split (SPLIT_TT_VER), and horizontal ternary split (SPLIT_TT_HOR). The leaf nodes of the multi-type tree are called CUs (Coding Units), and this segmentation is used for prediction and transformation processing without further division, unless the CU is too large to be the maximum transform length. This means that in most cases, CUs, PUs, and TUs have the same block size in a quadtree with a nested multi-type tree coding block structure. The exception to this occurs when the maximum supported transform length is smaller than the width or height of the color components of the CU. Also, the luma and chroma components have separate partition structures on the I-tile.

[0113] Cross-component linear model prediction

[0114] To reduce cross-component redundancy, the CCLM (Cross-Component Linear Model) prediction mode is used in VTM4, where chroma samples are predicted based on reconstructed luma samples of the same CU by using a linear model as follows:

[0115]

number

[0116] Here, pred C (i,j) represents the predicted chroma sample in CU, and rec L (i,j) represents the downsampled reconstructed luma sample of the same CU. The linear model parameters α and β are derived from the relationship between luma and chroma values ​​from two samples, the luma sample with the smallest sample value and the luma sample with the largest sample value, and their corresponding chroma samples in the set of downsampled neighboring luma samples. The linear model parameters α and β are calculated according to the following formula:

[0117]

number

[0118] Here, Y a and X a represents the luminance and chroma values ​​of the luminance sample with the maximum luminance sample value. And X b and Y b Let x, y, and z respectively represent the luma and chroma values ​​of the luma sample with the smallest luma sample. Figure 7 shows an example of the left and top samples and the location of the samples of the current block for CCLM mode.

[0119] LMCS(Luma Mapping with Chroma Scaling)

[0120] In VTM4, a coding tool called LMCS (Luma Mapping with Chroma Scaling) is added as a new processing block before the loop filter. LMCS has two main components: 1) in-loop mapping of luma components based on an adaptive piecewise linear model, and 2) for chroma components, luma-dependent chroma residual scaling is applied. Figure 8 shows the LMCS architecture from the decoder's perspective. The shaded blocks in Figure 8 indicate where processing is applied in the mapped domain, including inverse quantization, inverse transform, luma intra prediction, and summation of luma prediction with luma residual. The unshaded blocks in Figure 8 indicate where processing is applied in the original (i.e., unmapped) domain, including deblocking, loop filters such as ALF, SAO, motion compensation prediction, chroma intra prediction, summation of chroma prediction with chroma residual, and storage of the decoded picture as a reference picture. The light yellow shaded blocks in Figure 8 are the new LMCS functional blocks, including forward and inverse mapping of luma signals and luma-dependent chroma scaling processing. Like most other tools in VVC, LMCS can be enabled / disabled at the sequence level using the SPS flag.

[0121] 3. Examples of problems to be solved by the embodiments

[0122] Although the coefficient coding in JVET-N0280 can realize coding advantages in screen content coding, the coefficient coding and transform skip (TS) mode may still have some drawbacks. (1) In TS mode the maximum allowed width or height is controlled by one common value in the PPS, which may have limited flexibility. (2) Every coding group (CG) needs to signal the cbf flag for TS mode, which may increase the overhead cost. (3) The coefficient scanning order does not take into account intra-prediction modes. (4) The sign flag coding uses only one context. (5) Transform skip on chroma components is not supported. (6) The transform skip flag applies to all prediction modes, which increases overhead cost and coding complexity.

[0123] 4. Example of embodiment

[0124] The following detailed inventions should be considered as examples to illustrate the general concept. These inventions should not be construed in a narrow sense. Moreover, these inventions can be combined in any manner.

[0125] 1. Both maximum allowed width and maximum allowed height indication for transform skip may be signaled in SPS / VPS / PPS / picture header / slice header / tile group header / LCU row / group of LCU. a. In one example, the maximum allowed width and maximum allowed height for transform skip may be indicated by different messages signaled in the SPS / VPS / PPS / picture header / slice header / tile group header / LCU row / group of LCUs. b. In one example, the maximum allowed width and / or maximum allowed height may be first signaled in the SPS / PPS and then updated in the picture header / slice header / tile group header / LCU row / group of LCUs.

[0126] 2. A TS coding block is divided into multiple coefficient groups (CGs), and signaling of the coding block flag (Cbf) flag of at least one CG may be omitted. In one example, signaling of the Cbf flags for all CGs may be omitted, eg, for TS coding blocks. b. In one example, for TS mode, the omitted cbf flag of the CG may be inferred to be 1. c. In one example, omitting some or all of the Cbf flags for a CG may depend on the coding mode. i. In one example, for TS coding intra blocks, all Cbf flag signaling for CG is omitted. d. In one example, the omitted Cbf flags of a CG may be inferred based on the following: i. Messages signalled in SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU ii.CG position iii. Block dimensions of the current block and / or its neighboring blocks iv. Block shapes of the current block and / or its neighboring blocks v. The most probable mode of the current block and / or its neighboring blocks vi. Prediction mode (intra / inter) of blocks neighboring the current block vii. Intra prediction modes of neighboring blocks of the current block viii. Motion vectors of neighboring blocks of the current block ix. Indication of QR-BDPCM mode of blocks adjacent to the current block x. The current quantization parameters of the current block and / or its neighboring blocks xi. Color format indication (e.g. 4:2:0, 4:4:4) xii. Single / dual coding tree structure xiii. Slice / Tile Group Type and / or Picture Type

[0127] 3. The coefficient scanning order in a TS coding block may depend on messages signaled in the SPS / VPS / PPS / picture header / slice header / tile group header / LCU row / group of LCUs / LCU / CU. Alternatively, when TS is used, the CG and / or coefficient scanning order may depend on the intra prediction mode. i. In one example, if the intra prediction mode is horizontally dominant, the scan order may be vertical. 1. In one example, if the intra-prediction mode index is in the range of 2 to 34, the scan order may be vertical. 2. In one example, if the intra-prediction mode index is in the range of 2 to 33, the scan order may be vertical. ii. In one example, if the intra prediction mode is vertically dominant, the scan order may be vertical. 1. In one example, if the intra-prediction mode index is in the range of 34 to 66, the scan order may be vertical. 2. In one example, if the intra-prediction mode index is in the range of 35 to 66, the scan order may be vertical. iii. In one example, if the intra prediction mode is vertically dominant, the scan order may be horizontal. 1. In one example, if the intra-prediction mode index is in the range of 34 to 66, the scan order may be vertical. 2. In one example, if the intra-prediction mode index is in the range of 35 to 66, the scan order may be vertical. iv. In one example, if the intra prediction mode is horizontally dominant, the scan order may be horizontal. 1. In one example, if the intra-prediction mode index is in the range of 2 to 34, the scan order may be vertical. 2. In one example, if the intra-prediction mode index is in the range of 2 to 33, the scan order may be vertical.

[0128] 4. It is proposed that the sign flag coding context may depend on the neighboring information in the coefficient block for TS mode. In one example, the context for encoding the current code flag may depend on the value of the neighboring code flag for TS mode. i. In one example, the context for encoding the current sign flag may depend on the value of the sign flag of the left and / or top neighbors. 1. In one example, the context of the current sign flag may be derived as C=(L+A), where C is the context id, L is the sign flag of its left neighbor, and A is the sign flag of its top neighbor. 2. In one example, the context of the current sign flag may be derived as C=(L+A*2), where C is the context id, L is the sign flag of its left neighbor, and A is the sign flag of its top neighbor. 3. In one example, the context of the current sign flag may be derived as C=(L*2+A), where C is the context id, L is the sign flag of its left neighbor, and A is the sign flag of its upper neighbor. ii. In one example, the context for encoding the current sign flag may depend on the values ​​of the sign flags of the left neighbor, the above neighbor, and the top-left neighbor. iii. In one example, the context for encoding the current sign flag may depend on the values ​​of the sign flags of the left neighbour, the above neighbour, the top-left neighbour, and the top-right neighbour. b. In one example, the context for encoding the current sign flag may depend on the position of the coefficient. In one example, the context of the sign flag may be different in different positions. ii. In one example, the context of the sign flag may depend on x+y, where x and y are the horizontal and vertical positions of the position. iii. In one example, the context of the sign flag may depend on min(x,y), where x and y are the horizontal and vertical positions of the position. iv. In one example, the context of the sign flag may depend on max(x,y), where x and y are the horizontal and vertical positions of the position.

[0129] 5. It is proposed that chroma transform skip mode may be supported. In one example, use of chroma transform skip mode may be based on a message signaled in the SPS / VPS / PPS / picture header / slice header / tile group header / LCU row / group of LCUs / LCU / CU / video data unit. b. Alternatively, the use of chroma transform skip mode may be based on decoded information of one or more representative previously encoded blocks in the same or other color components. In one example, if the indication of the TS flag of the representative block is false, the indication of the chroma TS flag may be inferred to be false. Alternatively, if the indication of the TS flag of the representative block is true, the indication of the chroma TS flag may be inferred to be true. ii. In one example, the representative block may be a luma block or a chroma block. iii. In one example, the representative block may be any block within the arranged luminance blocks. iv. In one example, the representative block may be one of the neighboring chroma blocks of the current chroma block. v. In one example, the representative block may be a block covering the corresponding luma sample of the central chroma sample in the current chroma block. vi. In one example, the representative block may be the block covering the corresponding luma sample of the bottom-right chroma sample in the current chroma block.

[0130] 6. Whether and / or how transform skip mode is applied may depend on messages signaled in the SPS / VPS / PPS / picture header / slice header / tile group header / LCU row / group of LCUs / LCU / CU / video data unit. In one example, the indication of when and / or how to apply transform skip mode may depend on: i. Block dimensions of the current block and / or its neighboring blocks ii. Block shapes of the current block and / or its neighboring blocks iii. The most probable mode of the current block and / or its neighboring blocks. iv. Prediction mode (intra / inter) of the blocks neighboring the current block v. Intra prediction modes of neighboring blocks of the current block vi. Motion vectors of neighboring blocks of the current block vii. Indication of QR-BDPCM mode of blocks neighboring the current block viii. Current quantization parameters of the current block and / or its neighboring blocks ix. Color format indication (e.g. 4:2:0, 4:4:4) x. Single / dual coding tree structure xi. Slice / Tile Group Type and / or Picture Type xii. Time layer ID b. In one example, transform skip mode may be applied when the prediction mode is IBC mode and the block width and / or block height is smaller / larger / equal to a threshold. In one example, the threshold may be set to 4, 8, 16 or 32. ii. In one example, the threshold may be signaled in the bitstream. iii. In one example, the threshold may be based on: 1. Messages signaled in SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU 2. Block dimensions of the current block and / or its neighboring blocks 3. Block shapes of the current block and / or its neighboring blocks 4. The most probable mode of the current block and / or its neighboring blocks 5. Prediction mode of neighboring blocks of the current block (intra / inter) 6. Intra prediction modes of neighboring blocks of the current block 7. Motion vectors of blocks adjacent to the current block 8. Indication of QR-BDPCM mode of blocks adjacent to the current block 9. The current quantization parameters of the current block and / or its neighboring blocks 10. Color format indication (e.g. 4:2:0, 4:4:4) 11. Single / dual coding tree structure 12. Slice / Tile Group Type and / or Picture Type 13. Time layer ID

[0131] 7. Whether to signal a TS mode indication may depend on the decoded / derived intra prediction mode. a. Alternatively, it may further depend on the allowed intra-prediction modes / directions used in the QR-BDPCM coding block and the use of QR-BDPCM. b. For a decoded or derived intra-prediction mode, if it is part of the allowed set of intra-prediction modes / directions used in the QR-BDPCM coding block, signaling of the TS flag may be omitted. i. In one example, if QR-BDPCM is allowed to encode one slice / picture / tile / brick, then in the QR-BDPCM process, vertical and horizontal modes are the two allowed modes, and the decoded / derived intra mode is either vertical or horizontal mode, and no TS mode indication is signaled. c. In one example, if the QR-BDPCM mode indication (eg, bdpcm_flag) is 1, transform skip mode may be inferred to be enabled. d. The above method may be applied based on: i. Messages signalled in SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU ii. Block dimensions of the current block and / or its neighboring blocks iii. The block shape of the current block and / or its neighboring blocks iv. The most probable mode of the current block and / or its neighboring blocks v. Prediction mode of neighboring blocks of the current block (intra / inter) vi. Intra prediction modes of neighboring blocks of the current block vii. Motion vectors of neighboring blocks of the current block viii. Indication of QR-BDPCM mode of blocks neighboring the current block ix. Current quantization parameters of the current block and / or its neighboring blocks x. Color format indication (e.g. 4:2:0, 4:4:4) xi. Single / dual coding tree structure xii. Slice / Tile Group Type and / or Picture Type xiii. Time Layer ID

[0132] 8. Whether and / or how QR-BDPCM is applied may depend on the TS mode indication. In one example, the indication of whether to apply QR-BDPCM may be signaled at the transform unit (TU) level instead of being signaled at the CU. i. In one example, an indication of whether to apply QR-BDPCM may be signaled after a TS mode indication is applied to the TU. b. In one example, QR-BDPCM is treated as a special case of TS mode. If a block is coded in TS mode, another flag may be further signaled to indicate whether QR-BDPCM mode or conventional TS mode is applied. If it is coded in QR-BDPCM, the prediction direction used in QR-BDPCM may be further signaled. ii. Alternatively, if a block is coded in TS mode, another flag may be further signaled to indicate which type of QR-BDPCM (e.g., QR-BDPCM based on horizontal / vertical prediction direction) or traditional TS mode is applied. c. In one example, based on the indication of the TS mode, an indication of whether to apply QR-BDPCM may be inferred. In one example, an indication of whether to apply QR-BDPCM to a luma block and / or a chroma block may be inferred to be true if an indication of whether to apply a transform skip flag to the same block is true. Alternatively, an indication of whether to apply QR-BDPCM to the same block may be inferred to be true if an indication of whether to apply a transform skip flag to a luma block and / or a chroma block is true. In one example, an indication of whether to apply QR-BDPCM to a luma block and / or a chroma block may be inferred to be false if an indication of whether to apply a transform skip flag to the same block is false. Alternatively, an indication of whether to apply QR-BDPCM to the same block may be inferred to be false if an indication of whether to apply a transform skip flag to a luma block and / or a chroma block is false.

[0133] 9. Whether and / or how to apply single / dual tree may depend on messages signaled in SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCUs / LCU / CU / Video Data Unit. a. In one example, the indication of whether to apply one single / dual tree may depend on whether the current slice / tile / LCU / LCU row / group of LCUs / video data unit is determined as screen content. i. Furthermore, in one example, whether a slice / tile / LCU / row of LCU / group of LCUs / video data unit is determined as screen content may depend on: 1. SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU / Video Data Unit Signaled Message / Flag 2. Block dimensions of the current CTU and / or its neighboring CTUs 3. Block shape of the current CTU and / or its neighboring CTUs 4. The current quantization parameters of the current CTU and / or the current quantization parameters of its neighboring CTUs. 5. Color format indication (e.g. 4:2:0, 4:4:4) 6. Single / dual coding tree structure type of previous slice / tile / LCU / LCU row / group of LCUs / video data unit 7. Slice / Tile Group Type and / or Picture Type 8. Time layer ID b. In one example, the indication of whether to apply single / dual tree may be inferred, which may depend on the following: Messages signalled in i.SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU / Video Data Unit ii. Hash hit rate for IBC / Inter modes on previously coded image / tile / slice / reconstructed regions iii. Block dimensions of the current CTU and / or its neighbouring CTUs; iv. Block shape of the current CTU and / or its nearby CTUs v. Current quantization parameters of the current CTU and / or its neighboring CTUs vi. Color format indication (e.g. 4:2:0, 4:4:4) vii. Single / dual coding tree structure type of previous slice / tile / LCU / LCU row / group of LCU / video data unit viii. Slice / Tile Group Type and / or Picture Type ix.Time layer ID c. In one example, the indication of whether to apply CCLM and / or LMCS may depend on the type of single / dual coding tree structure. i. In one example, if a single / dual tree is used, the CCLM and / or LMCS indication may be inferred to be false. d. In one example, the indication of whether to apply single / dual tree (i.e., CTU-level adaptation of single tree or dual tree) may depend on whether an indication to enable dual tree (e.g., qtbtt_dual_tree_intra_flag) is true. i. Alternatively, furthermore, if dual trees are not enabled for a sequence / slice / tile / brick (e.g., qtbtt_dual_tree_intra_flag is false), the indication of whether to apply single / dual tree at the lower level (e.g., CTU) may be inferred to be false. 1. Alternatively, if dual tree is enabled (e.g., qtbtt_dual_tree_intra_flag is true), an indication of whether to apply single / dual tree to video units smaller than a sequence / slice / tile / brick may be signaled. e. In one example, the indication of whether to apply single / dual tree (i.e., CTU-level adaptation of single tree or dual tree) may depend on whether a flag at a level higher than the CTU level (e.g., sps_asdt_flag and / or slice_asdt_flag) is true. i. Alternatively, further, if a flag at a level higher than the CTU level (e.g., sps_asdt_flag and / or slice_asdt_flag) is false, the indication of whether to apply single / dual tree (i.e., CTU-level adaptation of single tree or dual tree) may be inferred to be false. f. The above method can be applied to the single tree split case, or to the type of single / dual coding tree structure.

[0134] 10. Whether to enable IBC may depend on the type of coding tree structure. a. In one example, for a given coding tree structure type (eg, dual tree), indication of IBC mode and / or signaling of block vectors used in IBC mode may be omitted and inferred. b. In one example, an indication of IBC mode may be inferred to be false if a dual coding tree structure type is applied. c. In one example, if a dual coding tree structure type is applied, the IBC mode indication of the luma block may be inferred to be false. d. In one example, if a dual coding tree structure type is applied, the IBC mode indication for the chroma block may be inferred to be false. e. In one example, an indication of IBC mode may be inferred based on the following: Messages signalled in i.SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU / Video Data Unit ii. Hash hit rate of IBC / Inter modes on previously coded images / tiles / slices / reconstructed regions iii. Block dimensions of the current CTU and / or its neighbouring CTUs; iv. Block shape of the current CTU and / or its nearby CTUs v. Current quantization parameters of the current CTU and / or its neighboring CTUs vi. Color format indication (e.g. 4:2:0, 4:4:4) vii. Previous slice / tile / LCU / LCU row / group of LCUs / video data unit coding tree structure type viii. Slice / Tile Group Type and / or Picture Type ix.Time layer ID

[0135] 11. Whether to enable CCLM may depend on the type of coding tree structure. a. In one example, for a given coding tree structure type (eg, dual tree), signaling of CCLM mode indications and / or other syntax related to CCLM mode may be omitted and inferred. b. In one example, if a dual coding tree structure type is applied, the indication of CCLM mode may be inferred to be false. c. In one example, when a dual coding tree structure type is applied, the indication of CCLM mode may be inferred based on the following: Messages signalled in i.SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU / Video Data Unit ii. Hash hit rate of IBC / Inter modes on previously coded images / tiles / slices / reconstructed regions iii. Block dimensions of the current CTU and / or its neighbouring CTUs; iv. Block shape of the current CTU and / or its nearby CTUs v. Current quantization parameters of the current CTU and / or its neighboring CTUs vi. Color format indication (e.g. 4:2:0, 4:4:4) vii. Coding tree structure type of previous slice / tile / LCU / LCU row / group of LCUs / video data unit viii. Slice / Tile Group Type and / or Picture Type ix.Time layer ID

[0136] 12. Whether to enable LMCS for the chroma component may depend on the type of coding tree structure. a. In one example, for a given coding tree structure type (e.g., dual tree), signaling of LMCS indications for chroma components and / or other syntax related to LMCS modes may be omitted and inferred. b. In one example, if a dual coding tree structure type is applied, the LMCS indication for the chroma component may be inferred to be false. c. In one example, the LMCS indication for the chroma component may be inferred based on the following when a dual coding tree structure type is applied: Messages signalled in i.SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU / Video Data Unit ii. Hash hit rate of IBC / Inter modes on previously coded images / tiles / slices / reconstructed regions iii. Block dimensions of the current CTU and / or its neighbouring CTUs; iv. Block shape of the current CTU and / or its nearby CTUs v. Current quantization parameters of the current CTU and / or its neighboring CTUs vi. Color format indication (e.g. 4:2:0, 4:4:4) vii. Coding tree structure type of previous slice / tile / LCU / LCU row / group of LCUs / video data unit viii. Slice / Tile Group Type and / or Picture Type ix.Time layer ID

[0137] 13. The structure of the coding tree may depend on whether IBC is used or not. In one example, the dual tree structure and the IBC method may not be enabled simultaneously at the sequence / picture / tile / brick / CTU / VPDU / 32x32 block / 64x32 block / 32x64 block level. b. Alternatively, and further in one example, if the IBC method is enabled, the dual tree structure may be disabled at the sequence / picture / tile / brick / CTU / VPDU / 32x32 block / 64x32 block / 32x64 block level. c. In one example, if IBC is used in a region, the chroma coding tree structure may be aligned to the luma coding tree structure. i. In one example, the region may be a sequence / picture / tile / brick / CTU / VPDU / 32x32 block / 64x32 block / 32x64 block. ii. In one example, when splitting aligned luma blocks into sub-blocks, chroma blocks may also be split into sub-blocks if splitting is allowed. iii. In one example, whether and how a chroma block is split may be inferred from the coding structure of its aligned luma block. iv. In one example, when inferring a chroma coding tree structure from a luma coding tree structure, a signal for encoding the chroma coding tree structure may be omitted. v. In one example, a flag may be used to indicate whether the chroma coding structure can be inferred from the luma coding structure. The signaling of the flag may depend on: 1. Messages signalled in SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU / Video Data Unit 2. Hash hit rate for IBC / Inter modes on previously coded images / tiles / slices / reconstructed regions 3. Block dimensions of the current CTU and / or its neighboring CTUs 4. Block shape of the current CTU and / or its neighboring CTUs 5. The current quantization parameters of the current CTU and / or its neighboring CTUs. 6. Color format indication (e.g. 4:2:0, 4:4:4) 7. Previous slice / tile / LCU / LCU row / group of LCUs / video data unit coding tree structure type 8. Slice / Tile Group Type and / or Picture Type 9. Time layer ID

[0138] 14. Whether the palette coding mode is enabled may depend on the coding tree structure type. In one example, for a given coding tree structure type (eg, dual tree), the signaling of an indication of palette coding mode may be omitted and inferred. b. In one example, if a dual coding tree structure type is applied, the indication of palette coding mode may be inferred to be false. c. In one example, if a dual coding tree structure type is applied, the palette coding mode indication of the luma block may be inferred to be false. d. In one example, if a dual coding tree structure type is applied, the palette coding mode indication of the chroma block may be inferred to be false. e. In one example, an indication of the palette coding mode may be inferred based on the following: Messages signalled in i.SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU / Video Data Unit ii. Hash hit rate of IBC / Inter modes on previously coded images / tiles / slices / reconstructed regions iii. Block dimensions of the current CTU and / or its neighbouring CTUs; iv. Block shape of the current CTU and / or its nearby CTUs v. Current quantization parameters of the current CTU and / or its neighboring CTUs vi. Color format indication (e.g. 4:2:0, 4:4:4) vii. Previous slice / tile / LCU / LCU row / group of LCUs / video data unit coding tree structure type viii. Slice / Tile Group Type and / or Picture Type ix.Time layer ID

[0139] 15. The structure of the coding tree may depend on whether or not a palette coding mode is used. In one example, if a palette coding mode is used in a region, the chroma coding tree structure may be aligned to the luma coding tree structure. i. In one example, the region may be a sequence / picture / tile / brick / CTU / VPDU / 32x32 block / 64x32 block. ii. In one example, when splitting aligned luma blocks into sub-blocks, chroma blocks may be split into sub-blocks if splitting is allowed. iii. In one example, whether and how a chroma block is split may be inferred from the coding structure of its aligned luma block. iv. In one example, when inferring a chroma coding tree structure from a luma coding tree structure, the signal encoding the chroma coding tree structure may be omitted. v. In one example, a flag may be used to indicate whether the chroma coding structure can be inferred from the luma coding structure. The signaling of the flag may depend on: 1. Messages signalled in SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCU / LCU / CU / Video Data Unit 2. Hash hit rate for IBC / Inter modes on previously coded images / tiles / slices / reconstructed regions 3. Block dimensions of the current CTU and / or its neighboring CTUs 4. Block shape of the current CTU and / or its neighboring CTUs 5. The current quantization parameters of the current CTU and / or its neighboring CTUs. 6. Color format indication (e.g. 4:2:0, 4:4:4) 7. Previous slice / tile / LCU / LCU row / group of LCUs / video data unit coding tree structure type 8. Slice / Tile Group Type and / or Picture Type 9. Time layer ID

[0140] 16. Motion / block vectors for sub-blocks / samples in a chroma IBC coded block may be derived from the first available IBC coded sub-region within the aligned luma block. In one example, a scan order, such as a raster scan order, of sub-regions within an ordered luminance block may be defined. b. In one example, a sub-region may be defined as a smallest coding unit / smallest transform unit. c. In one example, the motion / block vectors of all samples in chroma IBC mode may be derived based on the motion vector of the top-left most sample in the aligned luma block coded in IBC or inter mode.

[0141] 17. In chroma IBC mode, motion / block vectors may be signaled. In one example, the difference between a motion vector and a motion vector predictor may be signaled. i. In one example, a motion vector predictor may be derived based on motion vectors of aligned luma blocks, neighboring luma blocks of the aligned luma blocks, and neighboring chroma blocks of the current chroma block. 1. In one example, a motion / block vector predictor may be derived based on the motion vector of the top-left sample in the aligned luma block. 2. In one example, a motion / block vector predictor may be derived based on the motion vector of a sample having a center position in an aligned luminance block. 3. In one example, a motion / block vector predictor may be derived based on the motion vector of the top-left most sample coded in IBC or inter mode in the aligned luma block. ii. In one example, a motion vector predictor associated with one sub-region of the luma component may be scaled before being used as a predictor. iii. In one example, the block vectors may be derived from the motion vectors / block vectors of nearby (adjacent or non-adjacent) chroma blocks. b. In one example, a block vector candidate list may be constructed and an index into this list may be signaled. i. In one example, the candidate list may include motion vectors / block vectors from the aligned luma blocks, neighboring luma blocks of the aligned luma blocks, and neighboring chroma blocks. c. In one example, the indication of the AMVR flag may be inferred. i. In one example, the AMVR flag indication may be inferred to be false (0) for blocks coded in chroma IBC mode. ii. In one example, an indication of motion vector differentials may be estimated with integer precision for blocks coded in chroma IBC mode. d. In one example, in chroma IBC mode, a separate HMVP table may be used. i. In one example, the sizes of the chroma HMVP table and the luma HMVP table may be different. e. In one example, whether to signal a block / motion vector in chroma IBC mode may be based on the following: i. Whether all sub-regions in the aligned luminance block are coded in IBC mode. 1. If yes, then the block vectors of the chroma blocks do not need to be signaled. If not, then the block vectors of the chroma blocks may be signaled. ii. Whether all sub-regions within the aligned luminance block are coded in IBC mode and all associated block vectors are valid. 1. If yes, then the block vectors of the chroma blocks do not need to be signaled. If not, then the block vectors of the chroma blocks may be signaled. iii. Messages signalled in SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / Group of LCUs / LCU / CU / Video Data Unit iv. Hash hit rate of IBC / Inter modes in the previously coded image / tile / slice / reconstructed region v. Block dimensions of the current CTU and / or its neighboring CTUs vi. Block shape of the current CTU and / or its neighboring CTUs vii. The current quantization parameters of the current CTU and / or its neighboring CTUs viii. Color format indication (e.g., 4:2:0, 4:4:4) ix. Previous slice / tile / LCU / LCU row / group of LCUs / video data unit coding tree structure type x. Slice / Tile Group Type and / or Picture Type xi. Time layer ID

[0142] 18. Single tree and separation / dual tree selection / signaling may be at a level below CTU / CTB. In one example, single tree and split / dual tree selection / signaling may be at the VPDU level. b. In one example, single tree and split / dual tree selection / signaling may be at the level where explicit split tree signaling begins.

[0143] The above examples may be included in the methods described below, such as methods 900, 910, 920, 930, 940, which may be implemented in a video decoder or a video encoder.

[0144] An exemplary method for video processing includes performing a conversion between a current video block and a bitstream representation of a video having the current video block, the conversion selectively using a transform skip mode for the conversion based on an index included in the bitstream representation, and using the transform skip mode, a residual of a prediction error of the current video block is represented in the bitstream representation without applying the conversion.

[0145] In some embodiments, the indicators are the maximum allowed width and height in transform skip mode.

[0146] In some embodiments, the maximum allowed width and maximum allowed height are signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile header, a Largest Coding Unit (LCU) row or a group of LCUs.

[0147] In some embodiments, the maximum allowed width and the maximum allowed height are signaled in different messages.

[0148] In some embodiments, the maximum allowed width and height are signaled in a Sequence Parameter Set (SPS) or Picture Parameter Set (PPS), and updated values ​​of the maximum allowed width and height are signaled in a picture header, slice header, tile group header, Largest Coding Unit (LCU) row or group of LCUs.

[0149] 9A shows another flow chart of an example video processing method. The method 900 includes, at step 902, determining whether to encode the current video block using transform skip mode.

[0150] The method 900 includes, at step 904, performing a conversion between the current video block and a bitstream representation of the video that includes the current video block based on the determination.

[0151] In some embodiments, the current video block is divided into a plurality of coefficient groups, and the bitstream representation omits coding block flag signaling for at least one of the plurality of coefficient groups, hi one example, the bitstream representation omits coding block flag signaling for each of the plurality of coefficient groups.

[0152] In some embodiments, coded block flags omitted in signaling in the bitstream representation are inferred based on one or more of the following: (1) messages signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU), a LCU row, a group of LCUs, or a Coding Unit (CU), (2) a position of at least one coefficient group of a plurality of coefficient groups, (3) block dimensions of the current video block or at least one neighboring block of the current video block, (4) a block shape of the current video block or at least one neighboring block, (5) a most probable mode of the current video block or at least one neighboring block, (6) a prediction mode of at least one neighboring block, (7) an intra prediction mode of at least one neighboring block, (8) one or more motion vectors of at least one neighboring block, or (9) a Quantized Residual Block Differential Pulse-Code (QR-BDPCM) of at least one neighboring block. (10) an indication of a current quantization parameter (QP) of the current video block or at least one neighboring block; (11) an indication of a color format of the current video block; or (12) a separate or dual coding tree structure associated with the current video block; or (13) a slice type, tile group type, or picture type of the current video block.

[0153] In some embodiments, the current video block is divided into multiple coefficient groups, and the method 900 further includes determining a coefficient scanning order for the multiple coefficient groups. In one example, the coefficient scanning order is based on messages signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU), a row of LCUs, a group of LCUs, or a Coding Unit (CU).

[0154] In some embodiments, the coefficient groups or coefficient scan order is based on an intra-prediction mode of the current video block. In one example, the coefficient scan order is vertical and the intra-prediction mode is horizontally dominant. In another example, the coefficient scan order is horizontal and the intra-prediction mode is horizontally dominant. For example, the index of the intra-prediction mode ranges from 2 to 33, or from 2 to 34.

[0155] In some embodiments, the coefficient groups or coefficient scan order are based on an intra-prediction mode of the current video block. In one example, the coefficient scan order is vertical and the intra-prediction mode is vertically dominant. In another example, the coefficient scan order is horizontal and the intra-prediction mode is vertically dominant. For example, the intra-prediction mode index ranges from 34 to 66, or from 35 to 66.

[0156] In some embodiments, the context of the sign flag is based on neighboring information in the coefficient block associated with the current video block. In one example, the context of the sign flag is further based on the position of the coefficient in the coefficient block. In another example, the context of the sign flag is based on (x+y), min(x,y), or max(x,y), where x and y are the horizontal and vertical values ​​of the position of the coefficient, respectively.

[0157] 9B illustrates yet another flow chart of an exemplary video processing method.The method 910 includes, at step 912, determining that a chroma transform skip mode is applicable to the current video block.

[0158] The method 910 includes, at step 914, performing a conversion between the current video block and a bitstream representation of the video that includes the current video block based on the determination.

[0159] In some embodiments, the determination is based on a message signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU), an LCU row, a group of LCUs, a Coding Unit (CU), or a video data unit.

[0160] In some embodiments, the determination is based on decoded information from one or more representative video blocks that are decoded before performing the transform, and the samples in each of the one or more representative video blocks and the current video block are based on common color information. In one example, the one or more representative video blocks include a luma block or a chroma block. In another example, the one or more representative video blocks include a block in the aligned luma block.

[0161] 9C shows yet another flowchart of an exemplary video processing method. The method 920 includes, at step 922, making a decision regarding selective application of a transform skip mode to the current video block based on a condition while transforming between the current video block and a bitstream representation of a video having the current video block.

[0162] The method 920 includes, at step 924, performing a transformation based on the determination.

[0163] In some embodiments, the condition is based on a message signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU), an LCU row, a group of LCUs, a Coding Unit (CU), or a video data unit.

[0164] In some embodiments, the condition is based on one or more of the following: (1) a block dimension of the current video block or at least one neighboring block of the current video block, (2) a block shape of the current video block or at least one neighboring block, (3) a most probable mode of the current video block or at least one neighboring block, (4) a prediction mode of the at least one neighboring block, (5) an intra prediction mode of the at least one neighboring block, (6) an indication of one or more motion vectors of the at least one neighboring block, (7) an indication of a Quantized Residual Block Differential Pulse-Code Modulation (QR-BDPCM) mode of the at least one neighboring block, (8) a current Quantization Parameter (QP) of the current video block or at least one neighboring block, (9) an indication of a color format of the current video block, (10) a separate or dual coding tree structure associated with the current video block, (11) a slice type, tile group, or picture type of the current video block, or (12) a temporal layer identification (ID).

[0165] In some embodiments, a transform skip mode application is performed, the prediction mode of the current video block is an Inter Block Copy (IBC) mode, and the width or height of the current video block is compared to a threshold. In one example, the threshold is signaled in the bitstream representation. In another example, the threshold is set to 4, 8, 16, or 32.

[0166] In yet another example, the threshold is based on one or more of the following: (1) a sequence parameter set (SPS), a video parameter set (VPS), a picture parameter set (PPS), a picture header, a slice header, a tile group header, a largest coding unit (LCU), an LCU row, a group of LCUs, or a message signaled to a coding unit (CU); (2) a temporal layer identification (ID); (3) a block dimension of the current video block or at least one neighboring block of the current video block; (4) a block shape of the current video block or at least one neighboring block; (5) a most probable mode of the current video block or at least one neighboring block; (6) a prediction mode of the at least one neighboring block; (7) an intra prediction mode of the at least one neighboring block; (8) one or more motion vectors of the at least one neighboring block; (9) an indication of a quantized residual block differential pulse-code modulation (QR-BDPCM) mode of the at least one neighboring block; and (10) a current quantization probability (QP) of the current video block or at least one neighboring block. Parameter), (11) an indication of the color format of the current video block, (12) a separate or dual coding tree structure associated with the current video block, or (13) a slice type, tile group type, or picture type of the current video block.

[0167] 9D shows yet another flow chart of an exemplary video processing method. The method 930 includes, at step 932, making a decision regarding selective application of Quantized Residual Block Differential Pulse-Code Modulation (QR-BDPCM) during conversion between the current video block and a bitstream representation of a video having the current video block based on an indication of a conversion skip mode in the bitstream representation.

[0168] The method 930 includes, at step 934, performing a conversion based on the determination.

[0169] In some embodiments, the transform skip mode indication is signaled at the transform unit (TU) level.

[0170] 9E shows yet another flow chart of an exemplary video processing method. The method 940 includes, at step 942, making a decision regarding selective application of separate or dual trees based on a condition during conversion between a current video block and a bitstream representation of a video having the current video block.

[0171] The method 940 includes, at step 944, performing a conversion based on the determination.

[0172] In some embodiments, the condition is based on a message signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Parameter Set (LCU), an LCU row, a group of LCUs, a Coding Unit (CU), or a video data unit.

[0173] In some embodiments, the condition is based on determining whether a slice, tile, Largest Coding Unit (LCU), LCU row, group of LCUs, or video data unit that has the current video block is screen content. In one example, the determination is based on one or more of the following: (1) a sequence parameter set (SPS), video parameter set (VPS), picture parameter set (PPS), picture header, slice header, tile group header, LCU, LCU row, group of LCUs, coding unit (CU), or message signaled in a video data unit; (2) block dimensions of the current video block or at least one neighboring block of the current video block; (3) block shape of the current video block or at least one neighboring block; (4) a current quantization parameter (QP) of the current video block or at least one neighboring block; (5) an indication of the color format of the current video block; (6) a separate or dual coding tree structure associated with the current video block; (7) a slice type, tile group type, or picture type of the current video block; or (8) a temporal layer identification (ID).

[0174] FIG. 10 is a block diagram of a video processing device 1000. The device 1000 may be used to implement one or more of the methods described herein. The device 1000 may be implemented by a smartphone, a tablet, a computer, an Internet of Things (IoT) receiver, etc. The device 1000 may include one or more processors 1002, one or more memories 1004, and video processing hardware 1006. The one or more processors 1002 may be configured to implement one or more methods described herein (including, but not limited to, methods 900, 910, 920, 930, and 940). The one or more memories 1004 may be used to store data and codes used to implement the methods and techniques described herein. The video processing hardware 1006 may be used to implement the techniques described herein in a hardware circuit.

[0175] In some embodiments, the video encoding method may be performed using an apparatus implemented on a hardware platform, such as that described with reference to FIG.

[0176] In some embodiments, for example as described in items 5 and 10 above, a method of video processing includes determining whether an intra block copy mode is applicable for conversion between a current video block of a video and a bitstream representation based on a type of coding tree structure corresponding to the current video block, and performing the conversion based on the determination.

[0177] In the above method, the bitstream representation excludes an indication of the intra block copy mode, in other words, the bitstream does not carry an explicit signaling of the IBC mode.

[0178] In the above method, it is determined that the type of the coding tree structure is a dual coding tree structure, and the intra block copy mode is not applicable.

[0179] FIG. 11 is a block diagram illustrating an example video processing system 1100 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of the system 1100. The system 1100 may include an input unit 1102 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. The input 1102 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, Passive Optical Network (PON), and wireless interfaces such as Wi-Fi or cellular interfaces.

[0180] The system 1100 may include an encoding component 1104 that may implement various encoding or encoding methods described herein. The encoding component 1104 may reduce the average bit rate of the video from the input 1102 to the output of the encoding component 1104, generating an encoded representation of the video. This encoding technique is therefore referred to as a video compression or video transcoding technique. The output of the encoding component 1104 may be stored or transmitted via a connected communication, as represented by component 1106. The stored or communicated bitstream (or encoded) representation of the video received at the input 1102 may be used by component 1108 to generate pixel values ​​or displayable video that are sent to the display interface 1110. The process of generating a user-viewable video from the bitstream representation may be referred to as video decompression. Additionally, although certain video processing operations are referred to as “encoding” operations or tools, it will be understood that the encoding tools or operations are used at the encoder and that corresponding decoding tools or operations that reverse the results of the encoding are performed by the decoder.

[0181] Examples of peripheral bus interface units or display interface units 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.

[0182] 12 is a flowchart illustrating an example of a process for visual media encoding. The steps of this flowchart are described in relation to example embodiment 1 described in section 4 herein. In step 1202, the process determines a maximum allowed dimension in which a current video block of the one or more video blocks in a video domain of the visual media data can be encoded using a transform skip mode such that a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying a transform. In step 1204, the process includes a syntax element indicating the maximum allowed dimension in the bitstream representation.

[0183] 13 is a flow chart illustrating an example of a method for visual media decoding. The steps of this flow chart are described in relation to example embodiment 1 described in section 4 herein. In step 1302, the process parses a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating a maximum allowed size in which a current video block of one or more blocks of the video region can be encoded using a transform skip mode that represents in the bitstream representation a residual of a prediction error between the current video block and a reference video block without applying a transform. In step 1304, the process generates a decoded video region from the bitstream representation by decoding the one or more video blocks according to the maximum allowed size.

[0184] 14 is a flowchart illustrating an example of a method for visual media processing. The steps of this flowchart are described in conjunction with example embodiment 2 described in section 4 herein. In step 1402, the process determines whether to encode a current video block of visual media data using a transform skip mode. In step 1404, the process performs a conversion between the current video block of the visual media data and a bitstream representation based on the determination, during which the current video block is divided into a plurality of coefficient groups and a coded block flag signaling for at least one of the plurality of coefficient groups is removed from the bitstream representation, and in the transform skip mode, represents a residual of a prediction error between the current video block and a reference video block in the bitstream representation without applying a transform.

[0185] 15 is a flowchart illustrating an example of a method for visual media processing. The steps of this flowchart are described in conjunction with exemplary embodiment 3 described in section 4 herein. In step 1502, the process determines whether to encode a current video block of visual media data using a transform skip mode. In step 1504, the process performs a conversion between the current video block of the visual media data and a bitstream representation based on the determination, during the conversion, the current video block is divided into a plurality of coefficient groups, in the transform skip mode, residuals of prediction errors between the current video block and the reference video blocks are represented in the bitstream representation without applying a transform, and further during the conversion, a coefficient scan order of the plurality of coefficient groups is determined based at least in part on the representation in the bitstream representation.

[0186] 16 is a flowchart illustrating an example of a method for visual media processing. The steps of this flowchart are described in relation to example embodiment 4 described in section 4 herein. In step 1602, the process uses a transform skip mode to represent a residual of a prediction error between the current video block and a reference video block in the bitstream representation without applying a transform, to encode a current video block in a video domain of the visual media data into a bitstream representation of the visual media data. In step 1604, the process selects a context of a code flag of the current video block according to the code flags of one or more neighboring video blocks in the coefficient group associated with the current video block based on dividing the current video block into a plurality of coefficient groups.

[0187] 17 is a flow chart illustrating an example of a method for visual media processing. The steps of this flow chart are described in conjunction with example embodiment 4 described in section 4 herein. In step 1702, the process parses a bitstream representation of visual media data having a video region with a current video block to identify a context of a sign flag used in a transform skip mode in which a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying a transform. In step 1704, the process generates a decoded video region from the bitstream representation such that the context of the sign flag follows the sign flags of one or more neighboring video blocks in the coefficient group associated with the current video block based on dividing the current video block into a plurality of coefficient groups.

[0188] 18 is a flow chart illustrating an example method of visual media processing. In step 1802, the process determines a location of a current coefficient associated with a current video block of visual media data if the current video block is divided into multiple coefficient locations. In step 1804, the process derives a context for a sign flag of the current coefficient based on the sign flags of one or more neighboring coefficients. In step 1806, the process generates a sign flag for the current coefficient based on the context, the sign flag for the current coefficient being used in a transform skip mode in which the current video block is coded without applying a transform.

[0189] 19 is a flowchart illustrating an example of a method for visual media encoding. The steps of this flowchart are described in relation to example embodiment 5 described in section 4 herein. In step 1902, the process determines, for encoding one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data based on satisfying at least one rule that a chroma transform skip mode is applicable to a current video block, where in the chroma transform skip mode, a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform. In step 1904, the process includes a syntax element indicating the chroma transform skip mode in the bitstream representation.

[0190] 20 is a flow chart illustrating an example of a method for visual media decoding. The steps of this flow chart are described in conjunction with example embodiment 5 described in section 4 herein. In step 2002, the process parses syntax elements from a bitstream representation of visual media data having a video region having one or more video blocks for which at least one rule associated with application of a chroma transform skip mode is satisfied, and represents in the bitstream representation of the visual media data a residual of a prediction error between a current video block and a reference video block without applying a transform in the chroma transform skip mode. In step 2004, the process generates a decoded video region from the bitstream representation by decoding the one or more video blocks.

[0191] 21 is a flowchart illustrating an example of a method for visual media encoding. The steps of this flowchart are described in relation to example embodiment 6 described in section 4 herein. In step 2102, the process makes a decision regarding selective application of a transform skip mode to a current video block based on a condition for encoding one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data. In step 2104, the process includes in the bitstream representation a syntax element indicating the condition, where in the transform skip mode, a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform.

[0192] 22 is a flow chart illustrating an example method of visual media encoding. The steps of this flow chart are described in relation to example embodiment 6 described in section 4 herein. In step 2202, the process parses a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating a condition for using a transform skip mode to represent in the bitstream representation a residual of a prediction error between a current video block and a reference video block without applying a transform. In step 2204, the process generates a decoded video region from the bitstream representation by decoding the one or more video blocks in accordance with the condition.

[0193] FIG. 23 is a flow chart illustrating an example of a method of visual media encoding. The steps of this flow chart are described in relation to example embodiment 8 described in section 4 herein. In step 2302, the process makes a decision regarding selective application of a Quantized Residual Block Differential Pulse-Code Modulation (QR-BDPCM) technique based on an indication of a transform skip mode in the bitstream representation to encode one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data, where in the transform skip mode, a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform, and in the QR-BDPCM technique, a residual of a horizontal and / or vertical prediction error is quantized and entropy coded. In step 2304, the process includes an indication of the selective application of the QR-BDPCM technique in the bitstream representation.

[0194] FIG. 24 is a flow chart illustrating an example of a method for visual media decoding. The steps of this flow chart are described in conjunction with example embodiment 8 described in section 4 herein. In step 2402, the process parses a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating selective application of a Quantized Residual Block Differential Pulse-Code Modulation (QR-BDPCM) technique based on an indication of a transform skip mode in the bitstream representation, in which in the transform skip mode, a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform, and in the QR-BDPCM technique, the residual of the horizontal and / or vertical prediction error is quantized and entropy coded. In step 2404, the process generates a decoded video region from the bitstream representation by decoding one or more video blocks according to a maximum allowed dimension.

[0195] 25 is a flowchart illustrating an example of a method for visual media encoding. The steps of this flowchart are described in relation to example embodiment 9 described in section 4 herein. In step 2502, the process makes a decision regarding selective application of a separate or dual tree based on a condition to encode one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data. In step 2504, the process includes a syntax element indicating the selective application of a separate or dual tree into the bitstream representation.

[0196] 26 is a flow chart illustrating an example of a method for visual media decoding. The steps of this flow chart are described in relation to example embodiment 9 in section 4 herein. In step 2602, the process parses a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating selective application of a conditionally or inferred separate or dual tree. In step 2604, the process generates a decoded video region from the bitstream representation by decoding the one or more video blocks according to the syntax element.

[0197] Some embodiments of the present specification are presented in an item-based format.

[0198] A1. A method of visual media encoding, comprising:

[0199] determining a maximum allowable dimension in which a current video block of the one or more video blocks in a video domain of the visual media data can be encoded using a transform skip mode such that a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying a transform, for encoding the one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data;

[0200] Including a syntax element that indicates the maximum allowable dimensions in the bitstream representation.

[0201] A2. A method of visual media decoding, comprising:

[0202] parsing a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating a maximum allowable size for which a residual of a prediction error between a current video block and a reference video block can be encoded for a current video block of the one or more blocks of the video region using a transform skip mode represented in the bitstream representation without applying a transform;

[0203] Producing a decoded video region from the bitstream representation by decoding one or more video blocks according to the maximum allowed dimensions.

[0204] A3. The method according to any one of items A1 to A2, wherein the maximum allowable dimensions include a maximum allowable width and a maximum allowable height associated with the conversion skip mode.

[0205] A4. The method according to item A3, wherein the maximum allowed width and height are signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU) row, or a group of LCUs.

[0206] A5. The method according to any of items A1 to A3, wherein the maximum allowed width and the maximum allowed height are signaled in different messages in the bitstream representation.

[0207] A6. A method according to any of items A1 to A2, wherein initial values ​​of the maximum allowable width and maximum allowable height are signaled in a Sequence Parameter Set (SPS) or Picture Parameter Set (PPS), and further wherein updated values ​​of the maximum allowable width and maximum allowable height are signaled in a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU) row or a group of LCUs.

[0208] A7. The method of any of items A2-A6, wherein generating the decoded video region includes decoding one or more video blocks without using transform skip mode.

[0209] A8. The method of any of items A2-A6, wherein generating the decoded video region includes decoding one or more video blocks based on use of a transform skip mode.

[0210] A9. A method of visual media processing, comprising:

[0211] Determining that a current video block of visual media data is encoded using a transform skip mode;

[0212] Based on the determination, performing a conversion between a current video block of visual media data and a bitstream representation, wherein during the conversion, the current video block is divided into a plurality of coefficient groups, and signaling of a coding block flag for at least one of the plurality of coefficient groups is eliminated in the bitstream representation, and in a conversion skip mode, a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying the conversion.

[0213] A10. The method of claim A9, wherein signaling a coded block flag for each of a plurality of coefficient groups is excluded in the bitstream representation.

[0214] A11. The method according to any of items A9 to A10, wherein the coded block flags for the excluded coefficient groups in the bitstream representation are inferred as fixed values.

[0215] A12. The method according to item A11, wherein the fixed value is 1.

[0216] A13. The method according to any one of items A9 to A12, further comprising:

[0217] Making a determination to selectively enable or disable signaling of coded block flags for a plurality of coefficient groups based on a prediction mode of a current video block.

[0218] A14. The method of claim A13, in which signaling coded block flags for multiple coefficient groups is excluded from the bitstream representation if the prediction mode is an intra prediction mode.

[0219] A15. The method of any of items A9-A14, wherein the coded block flags that are excluded from signaling in the bitstream representation are inferred based on one or more of the following:

[0220] (1) SPS (Sequence Parameter Set), VPS (Video Parameter Set), PPS (Picture Parameter Set), picture header, slice header, tile group header, LCU (Largest Coding Unit), LCU row, group of LCUs, or CU (Coding Unit). A message signaled in the ping Unit,

[0221] (2) the position of at least one of the plurality of coefficient groups;

[0222] (3) a block dimension of the current video block or at least one neighboring block of the current video block;

[0223] (4) a block shape of the current video block or at least one neighboring block;

[0224] (5) a most probable mode of the current image block or at least one neighboring block;

[0225] (6) a prediction mode of at least one neighboring block;

[0226] (7) an intra-prediction mode of at least one neighboring block;

[0227] (8) one or more motion vectors of at least one neighboring block;

[0228] (9) an indication of the QR-BDPCM (Quantized Residual Block Differential Pulse-Code Modulation) mode of at least one neighboring block;

[0229] (10) a current Quantization Parameter (QP) for the current video block or at least one neighboring block;

[0230] (11) an indication of the color format of the current image block;

[0231] (12) a separate or dual coding tree structure associated with the current video block;

[0232] (13) The slice type, tile group type, or picture type of the current video block.

[0233] A16. A method of visual media processing, further comprising:

[0234] Determining that a current video block of visual media data is to be encoded using a transform skip mode;

[0235] Performing a conversion between a current video block of visual media data and a bitstream representation based on the determination, wherein during the conversion, the current video block is divided into a plurality of coefficient groups, and in a transform skip mode, a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying the conversion, and further, during the conversion, a coefficient scanning order of the plurality of coefficient groups is determined based at least in part on an instruction in the bitstream representation.

[0236] A17. The method described in item A16, wherein the coefficient scanning order is based on a message signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, an LCU first coding unit, an LCU row, a group of LCUs, or a coding unit (CU).

[0237] A18. The method of claim A17, wherein in a transform skip mode, the multiple coefficient groups or coefficient scanning order is based on an intra-prediction mode of the current video block.

[0238] A19. The method according to item A18, wherein the coefficient scanning order is vertical and the intra prediction mode is dominated horizontally.

[0239] A20. The method according to item A18, wherein the coefficient scanning order is horizontal and the intra prediction mode is horizontally dominated.

[0240] A21. The method according to any one or more of items A19 to A20, wherein the index of the intra prediction mode is in the range of 2 to 33 or 2 to 34.

[0241] A22. The method according to item A18, wherein the coefficient scanning order is vertical and the intra prediction mode is dominated in the vertical direction.

[0242] A23. The method according to item A18, wherein the coefficient scanning order is horizontal and the intra prediction mode is dominated vertically.

[0243] A24. The method according to any one of items A22 to A23, wherein the index of the intra prediction mode is in the range of 34 to 66 or 35 to 66.

[0244] A25. The method of any of items A9-A24, wherein the conversion includes generating a bitstream representation from the current video block.

[0245] A65. The method of any one or more of items A9-A24, wherein the transforming includes generating pixel values ​​of the current video block from the bitstream representation.

[0246] C1. A method of visual media encoding, comprising:

[0247] determining, for encoding one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data, based on satisfying at least one rule that a chroma transform skip mode is applicable to a current video block, where in the chroma transform skip mode, a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform;

[0248] Including a syntax element indicating chroma transform skip mode in the bitstream representation.

[0249] C2. A method of visual media decoding, comprising:

[0250] parsing syntax elements from a bitstream representation of visual media data having a video region having one or more video blocks that satisfy at least one rule associated with application of a chroma transform skip mode, where in the chroma transform skip mode a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform;

[0251] Generating a decoded video region from a bitstream representation by decoding one or more video blocks.

[0252] C3. A method according to any of items C1 to C2, wherein the determination is based on a message signalled in a Sequence Parameter Set (SPS), Video Parameter Set (VPS), Picture Parameter Set (PPS), picture header, slice header, tile group header, Largest Coding Unit (LCU), LCU row, group of LCUs, Coding Unit (CU), or video data unit associated with a bitstream representation of the visual media data.

[0253] C4. A method according to any one of items C2 to C3, wherein the determination is based on decoded information from one or more representative video blocks decoded before transformation, and the samples in each of the one or more representative video blocks and the current video block are based on a common color component.

[0254] C5. The method of claim C4, wherein the one or more representative image blocks comprise luma blocks or chroma blocks.

[0255] C6. The method of claim C4, wherein the one or more representative image blocks have blocks within the aligned luminance blocks.

[0256] C7. The method of claim C4, wherein the current image block is a current chroma block, and the one or more representative image blocks include neighboring chroma blocks of the current chroma block.

[0257] C8. The method of claim C4, wherein the current image block is a current chroma block, and the one or more representative image blocks have blocks that cover corresponding luma samples of a central chroma sample in the current chroma block.

[0258] C9. The method of claim C4, wherein the current image block is a current chroma block, and the one or more representative image blocks have blocks that cover corresponding luma samples of a bottom right chroma sample in the current chroma block.

[0259] D1. A method of visual media encoding, comprising:

[0260] making a decision regarding selective application of a transform skip mode to a current video block based on a condition for encoding one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data;

[0261] Including a syntax element in the bitstream representation indicating a condition, where in transform skip mode, a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform.

[0262] D2. A method of visual media decoding, comprising:

[0263] parsing a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating a condition for use of a transform skip mode to represent in the bitstream representation a residual of a prediction error between a current video block and a reference video block without applying a transform;

[0264] Generating a decoded video region from the bitstream representation by conditionally decoding one or more video blocks.

[0265] D3. The method according to item D1, wherein the syntax element is signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU), an LCU row, a group of LCUs, a Coding Unit (CU), or a video data unit.

[0266] D4. The method according to any of items D1 to D3, wherein the condition is based on one or more of the following:

[0267] (1) a block dimension of the current video block or at least one neighboring block of the current video block;

[0268] (2) a block shape of the current video block or at least one neighboring block;

[0269] (3) the most probable mode of the current video block or at least one neighboring block;

[0270] (4) a prediction mode of at least one neighboring block;

[0271] (5) the intra prediction mode of at least one neighboring block;

[0272] (6) one or more motion vectors of at least one neighboring block;

[0273] (7) an indication of the QR-BDPCM (Quantized Residual Block Differential Pulse-Code Modulation) mode of at least one neighboring block;

[0274] (8) a current Quantization Parameter (QP) for the current video block or at least one neighboring block;

[0275] (9) an indication of the color format of the current image block;

[0276] (10) a separate, or dual, coding tree structure associated with the current video block;

[0277] (11) The slice type, tile group type, or picture type of the current video block;

[0278] (12) Time layer identification (ID).

[0279] D5. The method according to item D4, wherein if the prediction mode of the current video block is an Inter Block Copy (IBC) mode, a transform skip mode is applied, and further, the width or height of the current video block meets a threshold.

[0280] D6. The method of item D5, wherein the threshold is signaled in the bitstream representation.

[0281] D7. The method of claim D6, wherein the threshold value is 4, 8, 16, or 32.

[0282] D8. The method of any of items D5-D7, wherein the threshold is based on one or more of the following:

[0283] (1) a message signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU), an LCU row, a group of LCUs, or a Coding Unit (CU);

[0284] (2) Time layer identification (ID),

[0285] (3) a block dimension of the current video block or at least one neighboring block of the current video block;

[0286] (4) a block shape of the current video block or at least one neighboring block;

[0287] (5) a most probable mode of the current image block or at least one neighboring block;

[0288] (6) a prediction mode of at least one neighboring block;

[0289] (7) an intra-prediction mode of at least one neighboring block;

[0290] (8) one or more motion vectors of at least one neighboring block;

[0291] (9) an indication of the QR-BDPCM (Quantized Residual Block Differential Pulse-Code Modulation) mode of at least one neighboring block;

[0292] (10) a current Quantization Parameter (QP) for the current video block or at least one neighboring block;

[0293] (11) an indication of the color format of the current image block;

[0294] (12) a separate or dual coding tree structure associated with the current video block;

[0295] (13) The slice type, tile group type, or picture type of the current video block.

[0296] E1. A method of visual media encoding, comprising:

[0297] making a decision regarding selective application of a Quantized Residual Block Differential Pulse-Code Modulation (QR-BDPCM) technique based on an indication of a transform skip mode in the bitstream representation for encoding one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data, where in the transform skip mode, a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform, and in the QR-BDPCM technique, a residual of a horizontal and / or vertical prediction error is quantized and entropy coded;

[0298] Including in the bitstream representation an indication of the selective application of the QR-BDPCM technique.

[0299] E2. A method of decoding visual media, comprising:

[0300] parsing a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element representing a selective application of a Quantized Residual Block Differential Pulse-Code Modulation (QR-BDPCM) technique based on an indication of a transform skip mode in the bitstream representation, where in the transform skip mode a residual of a prediction error between a current video block and a reference video block is represented in the bitstream representation of the visual media data without applying a transform, and in the QR-BDPCM technique a residual of a horizontal and / or vertical prediction error is quantized and entropy coded;

[0301] Generating a decoded video region from the bitstream representation by decoding one or more video blocks according to maximum allowed dimensions.

[0302] E3. The method of any of items E1-E2, wherein the transform skip mode indication is signaled at a transform unit (TU) level associated with the current video block.

[0303] E4. The method of any of items E1-E3, wherein in the bitstream representation, a syntax element indicating the application of the QR-BDPCM technique to the current video block is included after the transform skip mode indication.

[0304] E5. The method according to item E4, wherein a first flag in the bitstream representation is used to indicate a transform skip mode, and a second flag in the bitstream representation is used to indicate selective application of the QR-BDPCM technique.

[0305] E6. The method described in item E5, wherein the third flag is used to indicate application of a type of QR-BDPCM technique based on a horizontal prediction direction, and the fourth flag is used to indicate application of a type of QR-BDPCM technique based on a vertical prediction direction.

[0306] E7. The method of claim E5, wherein the value of the second flag is inferred from the value of the first flag.

[0307] E8. The method of item E5, wherein the value of the first flag is not signaled but is inferred from the value of the second flag.

[0308] E9. The method of item E8, wherein if the value of the second flag is true, then the value of the first flag is not signaled and is inferred to be true.

[0309] E10. The method of item E7, wherein the first flag and the second flag are Boolean values, further comprising:

[0310] If the value of the first flag is determined to be Boolean true, then the value of the second flag is inferred as Boolean true.

[0311] E11. The method of item E7, wherein the first flag and the second flag are Boolean values, further comprising:

[0312] If the value of the first flag is determined to be Boolean false, then inferring the value of the second flag as Boolean false.

[0313] F1. A method of visual media encoding, comprising:

[0314] making a decision regarding selective application of the separate or dual trees based on a condition to encode one or more video blocks in a video domain of the visual media data into a bitstream representation of the visual media data;

[0315] The bitstream representation includes syntax elements that indicate the selective application of separate or dual trees.

[0316] F2. A method of visual media decoding, comprising:

[0317] Parsing a syntax element from a bitstream representation of visual media data having a video region having one or more video blocks, the syntax element indicating selective application of separate or dual trees based on or inferred from a condition;

[0318] Generating a decoded video region from the bitstream representation by decoding one or more video blocks in accordance with the syntax elements.

[0319] F3. A method according to any of items F1 to F2, wherein the condition is based on a message signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU), an LCU row, a group of LCUs, a Coding Unit (CU), or a video data unit.

[0320] F4. The method of any of items F1-F2, wherein the condition is based on a determination of whether the slice, tile, LCU (Largest Coding Unit), LCU row, group of LCUs, or video data unit that has the current video block is screen content.

[0321] F5. The method of claim F3, wherein the conditions include one or more of the following:

[0322] (1) A message signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice header, a tile group header, an LCU, an LCU row, a group of LCUs, a Coding Unit (CU), or a video data unit;

[0323] (2) a block dimension of the current video block or at least one neighboring block of the current video block;

[0324] (3) a block shape of the current video block or at least one neighboring block;

[0325] (4) a current Quantization Parameter (QP) for the current video block or at least one neighboring block;

[0326] (5) an indication of the color format of the current image block;

[0327] (6) a separate, or dual, coding tree structure associated with the current video block;

[0328] (7) The slice type, tile group type, or picture type of the current video block;

[0329] (8) Time layer identification (ID).

[0330] F6. A video encoder apparatus having a processor configured to implement the method according to any one of items A1 to F5.

[0331] F7. A video decoder device having a processor configured to implement the method according to any one of items A1 to F5.

[0332] F8. A computer readable medium having code stored thereon, the code embodying processor executable instructions for performing the method of any of items A1-F5.

[0333] B1. A method of visual media encoding, comprising:

[0334] encoding a current video block in a video domain of the visual media data into a bitstream representation of the visual media data using a transform skip mode in which a residual of a prediction error between the current video block and a reference video block is represented in the bitstream representation without applying a transform;

[0335] Selecting a context of a code flag of the current video block according to the code flags of one or more neighboring video blocks in the coefficient group associated with the current video block based on dividing the current video block into a plurality of coefficient groups.

[0336] B2. A method of visual media decoding, comprising:

[0337] parsing a bitstream representation of visual media data having a video region with a current video block to identify a context of a code flag used in a transform skip mode that represents in the bitstream representation a residual of a prediction error between the current video block and a reference video block without applying a transform;

[0338] Generating a decoded video region from the bitstream representation such that a context of a code flag follows the code flags of one or more neighboring video blocks in the coefficient group associated with the current video block based on dividing the current video block into multiple coefficient groups.

[0339] B3. The method of any of items B1-B2, wherein the one or more neighboring video blocks of the current video block include a left neighbor, and / or a top neighbor, and / or a top-left neighbor, and / or a top-right neighbor.

[0340] B4. The method of any of items B1-B3, wherein a relationship between a context of the code flag of the current video block and the code flags of one or more neighboring video blocks is expressed as follows:

[0341] C=(L+A), where C is the context id of the code flag context of the current video block, L is the code flag of the left neighbor of the current video block, and A is the code flag of the above neighbor of the current video block.

[0342] B5. The method of any of items B1-B3, wherein a relationship between a context of the code flag of the current video block and the code flags of one or more neighboring video blocks is expressed as follows:

[0343] C=(L+A*2), where C is the context id of the code flag context of the current video block, L is the code flag of the left neighbor of the current video block, and A is the code flag of the above neighbor of the current video block.

[0344] B6. The method of any of items B1-B3, wherein a relationship between a context of the code flag of the current video block and the code flags of one or more neighboring video blocks is expressed as follows:

[0345] C=(L*2+A), where C is the context id of the code flag context of the current video block, L is the code flag of the left neighbor of the current video block, and A is the code flag of the above neighbor of the current video block.

[0346] B7. The method of any of items B1-B3, wherein the context of the sign flag of the current video block is based on the sign flags of one or more neighboring video blocks according to the following rules:

[0347] If the sign flags of a pair of neighboring video blocks are both negative, the rule specifies to select the first context of the sign flag.

[0348] B8. A visual media processing method, comprising:

[0349] determining a location of a current coefficient associated with the current video block of the visual media data if the current video block is divided into a plurality of coefficient locations;

[0350] deriving a sign flag context for a current coefficient based at least on the sign flags of one or more neighboring coefficients;

[0351] Generating a sign flag for the current coefficient based on the context, where the sign flag is used in a transform skip mode in which the current video block is coded without applying a transform.

[0352] B9. The method of claim B8, wherein the one or more neighboring coefficients of the current image block include a left neighbor and / or an above neighbor.

[0353] B10. The method of item B8, wherein the context of the sign flag of the current coefficient is further based on the position of the current coefficient.

[0354] B11. The method of claim B8, wherein the visual media processing comprises decoding a current video block from a bitstream representation.

[0355] B12. The method of claim B8, wherein the visual media processing comprises encoding the current video block into a bitstream representation.

[0356] B13. The method of any of items B1-B3 or B8-B12, wherein the context of the sign flag of the current video block is based on the sign flags of one or more neighboring video blocks according to the following rules:

[0357] If the sign flag of only one of a pair of neighboring video blocks is negative, the rule specifies to select the second context of the sign flag.

[0358] B14. The method of any of items B1-B3 or B8-B12, wherein the context of the sign flag of the current video block is based on the sign flags of one or more neighboring video blocks according to the following rules:

[0359] If the sign flags of a pair of neighboring video blocks are both positive, the rule specifies to select the third context of the sign flags.

[0360] B15. The method of any of items B1-B3 or B8-B12, wherein the context of the sign flag of the current video block is further based on a position of the coefficient group among the multiple coefficient groups.

[0361] B16. The method of item B10, wherein the context of the sign flag is based on at least one of (x+y), min(x,y), or max(x,y), where x and y are horizontal and vertical values, respectively, of the position of the coefficient group.

[0362] B17. A video encoder device comprising a processing device configured to implement the method according to any one of items B1 to B16.

[0363] B18. A video decoder device having a processor configured to carry out the methods described in any one or more of items B1 to B16.

[0364] B19. A computer readable medium having code stored thereon, the code embodying processor executable instructions for performing the method of any of items B1-B19.

[0365] As used herein, the term "video processing" or "visual media processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion of 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 defined by a syntax. For example, a macroblock may be coded in terms of transformed and coded error residual values, and using bits in the header and other fields in the bitstream.

[0366] While specific embodiments of the disclosed technology have been described above for purposes of illustration, it will be understood that various modifications may be made without departing from the scope of the invention. Accordingly, the disclosed technology is not to be limited except as by the appended claims.

[0367] Implementations of the subject matter and functional operations described in this patent specification may be implemented in various systems, digital electronic circuits, or computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in one or more combinations thereof. Implementations of the subject matter described herein may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible, non-transportable computer-readable medium for execution by or for controlling the operation of a data processing device. 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 a combination of one or more of these. The term "data processing unit" or "data processing device" includes all apparatus, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. An apparatus may include, in addition to hardware, code that creates an environment for the execution of a computer program, such as code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations of these.

[0368] 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 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 cooperating files (e.g., a file that stores one or more modules, subprograms, or portions of code). 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 communications network.

[0369] 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 devices may be implemented as, special purpose logic circuits, such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC).

[0370] 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 storage devices for storing instructions and data. Typically, a computer may include one or more mass storage devices, e.g., 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 types of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, flash memory devices, and the like. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0371] This specification, together with the drawings, are for illustrative purposes only, and illustrative is intended to mean example. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Additionally, the use of "or" is intended to include "and / or" unless the context clearly indicates otherwise.

[0372] Although this patent specification contains many details, these should not be construed as limiting the scope of any invention or the scope of the claims, but rather as descriptions of features that may be specific to certain embodiments of a particular invention. Certain features described in this patent specification 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.

[0373] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring that such operations be performed in the particular order or sequential order shown, or that all of the operations shown be performed, to achieve desired results, nor should the separation of various system components in the examples described in this patent specification be understood as requiring such separation in all embodiments.

[0374] Only some implementations and examples have been described; other embodiments, extensions and variations are possible based on what is described and illustrated in this patent specification.

[0375] 5. Additional Embodiments of the Disclosed Technology

[0376] 5.1 Dual Tree Related Implementations

[0377] The biggest changes from the draft provided in JVET-N1001-v7 are highlighted in bold, underlined, italicized text. Capitalized, bold font appearing below and elsewhere in this specification indicates text that may be deleted from the VVC standard.

[0378] 5.1.1 Embodiment #1

[0379] [Table 3]

[0380] 5.1.2 Embodiment #2

[0381] 7.3.2.3 Sequence Parameter Set RBSP Syntax

[0382] [Table 4]

[0383] 5.1.3 Embodiment #3

[0384] 7.3.5 Slice Header Syntax 7.3.5.1 General slice segment header syntax

[0385] [Table 5]

[0386] sps_asdt_flag=1 specifies that the suggested method can be enabled in the current sequence. If it is equal to 0, it specifies that the suggested method cannot be enabled in the current sequence. If sps_ASDT_flag is not present, it is inferred to be equal to 0. slice_asdt_flag=1 specifies that the suggested method can be enabled in the current slice. If it is equal to 0, it specifies that the suggested method cannot be enabled in the current slice. If slice_ASDT_flag is not present, it is inferred to be equal to 0.

[0387] 7.3.7.2 Coding Tree Unit Syntax

[0388] [Table 6]

[0389] ctu_dual_tree_intra_flag=1 specifies that the current CTU employs a dual-tree coding structure. If it is equal to 0, it specifies that the current CTU employs a single-tree coding structure. If ctu_dual_tree_intra_flag is not present, it is inferred to be equal to 0.

[0390] 5.1.4 Embodiment #4

[0391] 7.3.5 Slice Header Syntax 7.3.5.1 General slice segment header syntax

[0392] [Table 7]

[0393] sps_asdt_flag=1 specifies that the suggested method can be enabled in the current sequence. If it is equal to 0, it specifies that the suggested method cannot be enabled in the current sequence. If sps_ASDT_flag is not present, it is inferred to be equal to 0. slice_asdt_flag=1 specifies that the suggested method can be enabled in the current slice. If it is equal to 0, it specifies that the suggested method cannot be enabled in the current slice. If slice_ASDT_flag is not present, it is inferred to be equal to 0.

[0394] 7.3.7.2 Coding Tree Unit Syntax

[0395] [Table 8]

[0396] ctu_dual_tree_intra_flag=1 specifies that the current CTU employs a dual tree coding structure. If it is equal to 0, it specifies that the current CTU employs a single tree coding structure. If ctu_dual_tree_intra_flag is not present, it is inferred to be equal to 0.

[0397] 5.2 IBC Related Embodiments

[0398] 7.3.7.5 Coding unit syntax

[0399] [Table 9]

[0400] 8.6 Decoding process for coding units coded in IBC prediction mode 8.6.1 General Decoding Process for Units Coded in IBC Prediction Mode

[0401] The inputs to this process are: a luminance position (xCb, yCb) that defines the top-left sample of the current coding block relative to the top-left luminance sample of the current picture, a variable cbWidth that specifies the width of the current coding block in luma samples, a variable cbHeight that specifies the height of the current coding block in luma samples, A variable treeType that specifies whether a single or dual tree is used, and, if a dual tree is used, whether the current tree corresponds to the luma or chroma component.

[0402] The output of this processing is the modified reconstructed picture before in-loop filtering.

[0403] The derivation process for the quantization parameters specified in section 8.7.1 is invoked with inputs the luma position (xCb, yCb), the width of the current coding block in luma samples cbWidth, the height of the current coding block in luma samples cbHeight, and the variable treeTypw.

[0404] The decoding process for encoding a unit encoded in ibc prediction mode consists of the following ordered steps:

[0405] 1. The motion vector components for the current coding unit are derived as follows: 1. If TREETYPE is equal to SINGLE_TREE or DUAL_TREE_LUMA, the following applies: The derivation process for the motion vector components specified in Section -8.6.2.1 is invoked with the luma coding position (xCb, yCb), the luma coding block width cbWidth, and the luma coding block height cbHeight as input, and the luma motion vector mvL[0][0] as output. -If TreeType is equal to SINGLE_TREE, the chroma motion vector derivation process in section 8.6.2.5 is called with the luma motion vector mvL[0][0] as input and the chroma motion vector mvC[0][0] as output. The number of luma coding sub-blocks in the horizontal direction numSbX and in the vertical direction numSbY are both set to 1. 1. Or, if TREETYPE is equal to DUAL_TREE_CHROMA, the following applies: The number of luma-coding sub-blocks in the horizontal direction NUMSBX and the vertical direction NUMSBY is derived as follows: NUMSBX=(CBWIDTH>>2) (8-871) NUMSBY=(CBHEIGHT>>2) (8-872) - The chroma motion vector MVC[XSBIDX][YSBIDX] is derived as follows, where XSBIDX=0..NUMSBX-1, YSBIDX=0..NUMSBY-1: - The luminance motion vector MVL[XSBIDX][YSBIDX] is derived as follows: The position (XCUY, YCUY) of the aligned luminance coding unit is derived as follows: XCUY=XCB+XSBIDX*4 (8-873) YCUY=YCB+YSBIDX*4 (8-874) -When CUPREDMODE[XCUY][YCUY] is equal to MODE_INTRA, the following applies: MVL[XSBIDX][YSBIDX][0]=0 (8-875) MVL[XSBIDX][YSBIDX][1]=0 (8-876) PREDFLAGL0[XSBIDX][YSBIDX]=0 (8-877) PREDFLAGL1[XSBIDX][YSBIDX]=0 (8-878) - Otherwise (CUPREDMODE[XCUY][YCUY] equals MODE_IBC), the following applies: MVL[XSBIDX][YSBIDX][0]=MVL0[XCUY][YCUY][0] (8-879) MVL[XSBIDX][YSBIDX][1]=MVL0[XCUY][YCUY][1] (8-880) PREDFLAGL0[XSBIDX][YSBIDX]=1 (8-881) PREDFLAGL1[XSBIDX][YSBIDX]=0 (8-882) The chroma motion vector derivation process in Section -8.6.2.5 is invoked with MVL[XSBIDX][YSBIDX] as input and MVC[XSBIDX][YSBIDX] as output. It is a bitstream conformance requirement that the chroma motion vectors MVC[XSBIDX][YSBIDX] obey the following constraints: - When the block availability derivation process [ED.(BB): Neighborhood block availability check process TBD] specified in section 6.4.X is called with the current chroma position (XCURR,YCURR) set equal to (XCB / SUBWIDTHC,YCB / SUBHEIGHTC) and the neighboring chroma positions (XCB / SUBWIDTHC + (MVC[XSBIDX][YSBIDX][0] >> 5),YCB / SUBHEIGHTC + (MVC[XSBIDX][YSBIDX][1] >> 5)), the output is true. - When the block availability derivation process [ED.(BB): Neighborhood block availability check process TBD] specified in section 6.4.X is called with the current chroma position (XCURR,YCURR) set equal to (XCB / SUBWIDTHC,YCB / SUBHEIGHTC) and the neighboring chroma positions (XCB / SUBWIDTHC+(MVC[XSBIDX][YSBIDX][0]>>5)+CBWIDTH / SUBWIDTHC-1,YCB / SUBHEIGHTC+(MVC[XSBIDX][YSBIDX][1]>>5)+CBHEIGHT / SUBHEIGHTC-1), the output is true. -One or both of the following conditions are true: - (MVC[XSBIDX][YSBIDX][0]>>5) + XSBIDX * 2 + 2 is less than or equal to 0. - (MVC[XSBIDX][YSBIDX][0]>>5) + XSBIDX * 2 + 2 is less than or equal to 0.

[0406] 2. The predicted samples for the current coding unit are derived as follows: If TREETYPE is equal to SINGLE_TREE or DUAL_TREE_LUMA, the predicted samples for the current coding unit are derived as follows: The decoding process for the ibc block as specified in subclause 8.6.3.1 takes as input the position of the luma coding block (xCb, yCb), the width of the luma coding block cbWidth, the height of the luma coding block cbHeight, the number of luma coding sub-blocks in the horizontal direction numSbX and the vertical direction numSbY, and the luma motion vector mvL[xSbIdx][ySbIdx], where xSbIdx=0..numSbX-1, SbIdx=0..numSbY-1, and the variable cIdx set equal to 0, and returns the (cbWidth)×(cbHeight) array of predicted luma samples predSamples L It is called with ibc predicted samples (predSamples) as output. Alternatively, if treeType is equal to SINGLE_TREE or DUAL_TREE_CHROMA, the predicted samples for the current coding unit are derived as follows: The decoding process for the ibc block as specified in subclause 8.6.3.1 takes as input the position of the luma coding block (xCb, yCb), the width of the luma coding block cbWidth, the height of the luma coding block cbHeight, the number of luma coding sub-blocks in the horizontal direction numSbX and the vertical direction numSbY, and the chroma motion vector mvC[xSbIdx][ySbIdx], where xSbIdx=0..numSbX-1, ySbIdx=0..numSbY-1, and the variable cIdx set equal to 1, and returns a (cbWidth / 2) × (cbHeight / 2) array of predicted chroma samples for the chroma component Cb, predSamples Cb It is called with ibc predicted samples (predSamples) as output. The decoding process for the ibc block as specified in subclause 8.6.3.1 takes as input the position of the luma coding block (xCb, yCb), the width of the luma coding block cbWidth, the height of the luma coding block cbHeight, the number of luma coding sub-blocks in the horizontal direction numSbX and the vertical direction numSbY, xSbIdx=0..numSbX-1, ySbIdx=0..numSbY-1, and the chroma motion vector mvC[xSbIdx][ySbIdx] with the variable cIdx set equal to 2, and returns a (cbWidth / 2) × (cbHeight / 2) array of predicted chroma samples for the chroma component Cr. Cr It is called with ibc predicted samples (predSamples) as output.

[0407] 3. The variables NumSbX[xCb][yCb] and NumSbY[xCb][yCb] are set equal to numSbX and numSbY, respectively.

[0408] 4. The residual samples for the current coding unit are derived as follows: -When TREETYPE is equal to SINGLE_TREE or TREETYPE is equal to DUAL_TREE_LUMA, the decoding process for the residual signal of the coding block coded in the inter prediction mode specified in Section 8.5.8 is performed by using the position (xTb0, yTb0) set equal to the luminance position (xCb, yCb), the width nTbW set equal to the luminance coding block width cbWidth, the height nTbH set equal to the luminance coding block height cbHeight, and the variable cldxset set equal to 0 as input, and the array resSamples L is called with the output: -When treeType is equal to SINGLE_TREE or TREETYPE is equal to DUAL_TREE_CHROMA, the decoding process for the residual signal of the coding block coded in the inter prediction mode specified in Section 8.5.8 is performed with the position (xTb0, yTb0) set equal to the chroma position (xCb / 2, yCb / 2), the width nTbW set equal to the chroma coding block width cbWidth / 2, the height nTbH set equal to the chroma coding block height cbHeight / 2, and the variable cldxset set equal to 1 as input, and the array resSamples Cb is called with the output: -When treeType is equal to SINGLE_TREE or TREETYPE is equal to DUAL_TREE_CHROMA, the decoding process for the residual signal of the coding block coded in the inter prediction mode specified in Section 8.5.8 is performed using the position (xTb0, yTb0) set equal to the chroma position (xCb / 2, yCb / 2), the width nTbW set equal to the chroma coding block width cbWidth / 2, the height nTbH set equal to the chroma coding block height cbHeight / 2, and the variable cldxset set equal to 2 as input, and the array resSamples Cr is called with the output:

[0409] 5. The reconstructed samples of the current coding unit are derived as follows: -If treeType is equal to SINGLE_TREE or TREETYPE is equal to DUAL_TREE_LUMA, the picture reconstruction process for color components specified in clause 8.7.5 shall include the block position (xB, yB) set equal to (xCb, yCb), the block width bWidth set equal to cbWidth, the block height bHeight set equal to cbHeight, the variables cIdx, predSamples set equal to 0, L Set the (cbWidth) x (cbHeight) arrays predSamples and resSamples equal to LIt is called with input resSamples, a (cbWidth) x (cbHeight) array set equal to -If treeType is equal to SINGLE_TREE or TREETYPE is equal to DUAL_TREE_CHROMA, the picture reconstruction process for color components specified in clause 8.7.5 shall consist of the block position (xB, yB) set equal to (xCb / 2, yCb / 2), the block width bWidth set equal to cbWidth / 2, the block height bHeight set equal to cbHeight / 2, the variables cIdx, predSamples set equal to 1, Cb The (cbWidth / 2) by (cbHeight / 2) arrays predSamples and resSamples are set equal to Cb and the output is the modified reconstructed picture before in-loop filtering. -If treeType is equal to SINGLE_TREE or TREETYPE is equal to DUAL_TREE_CHROMA, the picture reconstruction process for color components specified in clause 8.7.5 shall consist of the block position (xB, yB) set equal to (xCb / 2, yCb / 2), the block width bWidth set equal to cbWidth / 2, the block height bHeight set equal to cbHeight / 2, the variables cIdx, predSamples set equal to 2, Cr The (cbWidth / 2) by (cbHeight / 2) arrays predSamples and resSamples are set equal to Cr and the output is the modified reconstructed picture before in-loop filtering.

Claims

1. A method for processing video media data, comprising: For conversion between a current video block in an image domain of a video and a bitstream of the video, determine whether to enable or disable a cross-component linear model prediction mode for the current video block based on whether the current video block is in a dual tree structure in which a luma component and at least one chroma component have tree structures of separate partitions, wherein in response to the cross-component linear model prediction mode being enabled for the current video block, chroma samples of the current video block are predicted based on reconstructed luma samples of the image domain using a linear model; performing the conversion based on said determining; and The method according to claim 1,

2. The method described in claim 1, wherein whether the dual tree structure is permitted is based on a first syntax element in a sequence parameter set indicating whether the dual tree structure is permitted.

3. The method of claim 1, wherein whether or not the dual tree structure is permitted is based on the color format of the image.

4. The current video block is a chroma block, and transform skip mode is enabled for the chroma block; The method of claim 1 , wherein in the transform skip mode, transform or inverse transform processing is skipped on a prediction residual between the current video block and a reference video block.

5. The method of claim 1, wherein the transform skip mode is applied to the current video block in response to a differential coding mode being applied to the current video block; 5. The method of claim 4, wherein in the differential coding mode, a difference between a quantized residual derived in an intra prediction mode of the current video block and a prediction of the quantized residual is included in the bitstream.

6. The method of claim 5, wherein the increment of the sign flag context for a current coefficient of the current image block is based on the position of the current coefficient.

7. The method of claim 5, wherein signaling of a second syntax element included in the bitstream indicating whether the transform skip mode is applied to the current video block is based on a coding tree structure of the current video block.

8. The method of claim 1, wherein the conversion includes encoding the video into the bitstream.

9. The method of claim 1, wherein the conversion includes decoding the video from the bitstream.

10. 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: For conversion between a current video block in an image domain of a video and a bitstream of the video, determine whether to enable or disable a cross-component linear model prediction mode for the current video block based on whether the current video block is in a dual tree structure in which a luma component and at least one chroma component have tree structures of separate partitions, wherein in response to the cross-component linear model prediction mode being enabled for the current video block, chroma samples of the current video block are predicted based on reconstructed luma samples of the image domain using a linear model; performing the conversion based on said determining; and A device that performs the above.

11. A processor comprising: For conversion between a current video block in an image domain of a video and a bitstream of the video, determine whether to enable or disable a cross-component linear model prediction mode for the current video block based on whether the current video block is in a dual tree structure in which a luma component and at least one chroma component have tree structures of separate partitions, wherein in response to the cross-component linear model prediction mode being enabled for the current video block, chroma samples of the current video block are predicted based on reconstructed luma samples of the image domain using a linear model; performing the conversion based on said determining; and A non-transitory computer-readable storage medium storing instructions for executing the method.

12. A method for storing a video bitstream, comprising the steps of: For conversion between a current video block in an image domain of a video and a bitstream of the video, determine whether to enable or disable a cross-component linear model prediction mode for the current video block based on whether the current video block is in a dual tree structure in which a luma component and at least one chroma component have tree structures of separate partitions, wherein in response to the cross-component linear model prediction mode being enabled for the current video block, chroma samples of the current video block are predicted based on reconstructed luma samples of the image domain using a linear model; generating the bitstream for the video based on said determining; and storing the bitstream on a non-transitory computer readable recording medium; The method according to claim 1,

Citation Information

Cited By

  • Context coding for transform skip mode

    US12634431B2