Method, device, medium and program product for video encoding

By using a fixed binary codeword set and an adaptive Rice parameter method in video encoding and decoding, the transformation coefficient and residual codec are improved, and the limitations of encoding and decoding efficiency and flexibility in the prior art are solved, and a higher degree of implementation is achieved compression efficiency and codec performance.

CN117528117BActive Publication Date: 2025-01-10BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202311450166.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-01-04
Filing Date
2022-01-04
Publication Date
2025-01-10
Estimated Expiration
2042-01-04

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies have limitations in improving encoding and decoding efficiency, especially in transform coefficients and residual encoding and decoding, which makes it difficult to achieve higher compression efficiency and flexibility.

Method used

A method is proposed to code certain syntax elements by using a fixed set of binary codewords in video encoding and decoding, such as using a fixed Rice parameter in residual encoding and decoding, or determining based on the encoded information of the current block Binary codeword set to improve the process of transform coefficients and residual encoding and decoding.

Benefits of technology

It improves the compression efficiency and flexibility of video encoding and decoding, enhances the encoding and decoding performance of transform skip mode and conventional transform mode, simplifies the Rice parameter derivation process, and improves the overall efficiency of encoding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117528117B_ABST
    Figure CN117528117B_ABST
Patent Text Reader

Abstract

A method, an apparatus, and a non-transitory computer-readable storage medium for video coding and decoding are provided. The method for video coding and decoding includes: generating a sequence parameter set SPS residual coding and decoding flag, the SPS residual coding and decoding flag indicating whether there is a syntax element used for transforming a skip residual coding and decoding syntax structure in a slice header SH syntax structure that references the SPS; when the syntax element exists in the SH syntax structure that references the SPS, setting the value of the SPS residual coding and decoding flag to be equal to 1; and when the syntax element does not exist in the SH syntax structure that references the SPS, setting the value of the SPS residual coding and decoding flag to be equal to 0.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese patent application No. 202280008946.5, which is a Chinese national phase application of international patent application PCT / US2022 / 011183 filed on January 4, 2022, and which claims priority to U.S. patent application No. 63 / 133,765 filed on January 4, 2021. Technical Field

[0002] The present disclosure relates to video coding and compression. More specifically, the present disclosure relates to improvements and simplifications of residual and coefficient coding for video coding. Background Art

[0003] Various video codec techniques can be used to compress video data. Video coding is performed according to one or more video codec standards. For example, video codec standards include Versatile Video Codec (VVC), Joint Exploration Test Model (JEM), High Efficiency Video Codec (H.265 / HEVC), Advanced Video Codec (H.264 / AVC), Moving Picture Experts Group (MPEG) codec, etc. Video coding is usually performed using prediction methods (e.g., inter-frame prediction, intra-frame prediction, etc.) that utilize redundancy present in video images or sequences. An important goal of video coding technology is to compress video data into a form that uses a lower bit rate while avoiding or minimizing video quality degradation. Summary of the invention

[0004] Examples of the present disclosure provide methods and apparatus for video encoding and decoding.

[0005] According to a first aspect of the present disclosure, a method for video coding is provided. The method may include: receiving, by a decoder, a sequence parameter set (SPS) residual coding flag, the SPS residual coding flag indicating whether there is an index sh_ts_residual_coding_rice_idx in a SH syntax structure that references the SPS; in response to determining that the value of the SPS residual coding flag is equal to 1, determining that sh_ts_residual_coding_rice_idx exists in a slice header (SH) syntax structure that references the SPS; and in response to determining that the value of the residual coding flag is equal to 0, determining that sh_ts_residual_coding_rice_idx does not exist in the SH syntax structure that references the SPS.

[0006] According to a second aspect of the present disclosure, a method for video coding and decoding is provided. The method may include: receiving a sequence parameter set (SPS) adaptive enable flag by a decoder, the SPS adaptive enable flag indicating whether to use an alternative rice parameter derivation for binarization of syntax abs_remaining and dec_abs_level; in response to determining that the value of the SPS adaptive enable flag is equal to 1, determining to use an alternative rice parameter derivation for binarization of syntax; and in response to determining that the value of the SPS adaptive enable flag is equal to 0, determining not to use the alternative rice parameter derivation for binarization of syntax.

[0007] According to a third aspect of the present disclosure, a method for video coding is provided. The method may include: receiving, by a decoder, a residual coding rice constraint flag to provide general constraint control for other flags; and in response to determining that the value of the residual coding rice constraint flag is equal to 1, determining that the value of the other flag is equal to 0.

[0008] It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not intended to restrict the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate examples consistent with the disclosure and, together with the description, serve to explain the principles of the disclosure.

[0010] Figure 1 is a block diagram of an encoder according to an example of the present disclosure.

[0011] Figure 2 is a block diagram of a decoder according to an example of the present disclosure.

[0012] Figure 3A is a diagram illustrating block partitioning in a multi-type tree structure according to an example of the present disclosure.

[0013] Figure 3B is a diagram illustrating block partitioning in a multi-type tree structure according to an example of the present disclosure.

[0014] Figure 3C is a diagram illustrating block partitioning in a multi-type tree structure according to an example of the present disclosure.

[0015] Figure 3D is a diagram illustrating block partitioning in a multi-type tree structure according to an example of the present disclosure.

[0016] Figure 3E is a diagram illustrating block partitioning in a multi-type tree structure according to an example of the present disclosure.

[0017] Figure 4is an illustration of a picture with 18×12 luma CTUs according to an example of the present disclosure.

[0018] Figure 5 is an illustration of a picture with 18×12 luma CTUs according to an example of the present disclosure.

[0019] Fig. 6A is a diagram of examples of ternary tree (TT) and binary tree (BT) partitions that are not allowed in a VTM according to examples of the present disclosure.

[0020] Figure 6B is a diagram of examples of TT and BT partitions that are not allowed in a VTM according to examples of the present disclosure.

[0021] Figure 6C is a diagram of examples of TT and BT partitions that are not allowed in a VTM according to examples of the present disclosure.

[0022] Fig.6D is a diagram of examples of TT and BT partitions that are not allowed in a VTM according to examples of the present disclosure.

[0023] Fig. 6E is a diagram of examples of TT and BT partitions that are not allowed in a VTM according to examples of the present disclosure.

[0024] Fig. 6F is a diagram of examples of TT and BT partitions that are not allowed in a VTM according to examples of the present disclosure.

[0025] Figure 6G is a diagram of examples of TT and BT partitions that are not allowed in a VTM according to examples of the present disclosure.

[0026] Figure 6H is a diagram of examples of TT and BT partitions that are not allowed in a VTM according to examples of the present disclosure.

[0027] Figure 7 is a diagram of a residual coding structure for a transform block according to an example of the present disclosure.

[0028] Figure 8 is a diagram of a residual codec structure for transforming a skip block according to an example of the present disclosure.

[0029] Fig. 9 is a diagram of two scalar quantizers according to an example of the present disclosure.

[0030] Fig. 10A is a diagram of state transitions according to an example of the present disclosure.

[0031] Fig. 10B is a diagram of quantizer selection according to an example of the present disclosure.

[0032] Fig.11 is an illustration of a template for selecting a probability model according to the present disclosure.

[0033] Fig.12 is a diagram of an example of a block encoded and decoded in palette mode according to the present disclosure.

[0034] Fig.13 is a diagram of using palette prediction values ​​to signal palette entries in accordance with the present disclosure.

[0035] Fig.14A is an illustration of a horizontal traversal scan according to the present disclosure.

[0036] Fig. 14B is an illustration of a vertical traversal scan according to the present disclosure.

[0037] Fig.15A is a diagram of a sub-block based index mapping scan of a palette according to the present disclosure.

[0038] Fig. 15B is a diagram of a sub-block based index mapping scan of a palette according to the present disclosure.

[0039] Fig.16 A method for encoding a video signal according to an example of the present disclosure.

[0040] Fig.17 A method for encoding a video signal according to an example of the present disclosure.

[0041] Fig.18 is a diagram illustrating a computing environment coupled with a user interface according to examples of the present disclosure.

[0042] Fig.19 A method for video encoding and decoding according to an example of the present disclosure is illustrated.

[0043] Fig. 20 A method for video encoding and decoding according to an example of the present disclosure is illustrated.

[0044] Fig.21 A method for video encoding and decoding according to an example of the present disclosure is illustrated. DETAILED DESCRIPTION

[0045] Reference will now be made in detail to example embodiments, examples of which are illustrated in the accompanying drawings. The following descriptions all refer to the accompanying drawings, in which, unless otherwise specified, the same reference numerals in different drawings represent the same or similar elements. The embodiments set forth in the following descriptions of example embodiments do not represent all embodiments consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with aspects related to the present disclosure recited in the appended claims.

[0046] The terms used in this disclosure are only for the purpose of describing specific embodiments and are not intended to limit the disclosure. As used in this disclosure and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and / or" used herein is intended to represent and include any or all possible combinations of one or more items in the associated enumerated items.

[0047] It should be understood that although the terms "first", "second", "third", etc. may be used herein to describe various information, such information should not be limited by these terms. These terms are merely used to distinguish one type of information from another type of information. For example, without departing from the scope of the present disclosure, the first information may be referred to as the second information; and similarly, the second information may also be referred to as the first information. As used herein, the term "if" may be understood to mean "when" or "at" or "in response to a judgment", depending on the context.

[0048] The first version of the HEVC standard was completed in October 2013, which provides about 50% bitrate savings or equivalent perceptual quality compared to the previous generation video codec standard H.264 / MPEG AVC. Although the HEVC standard provides significant codec improvements over its predecessor, there is evidence that codec efficiency better than HEVC can be achieved using additional codec tools. On this basis, both VCEG and MPEG began exploring new codec technologies to achieve future video codec standardization. ITU-T VECG and ISO / IEC MPEG established a Joint Video Exploration Team (JVET) in October 2015 to begin major research on advanced technologies that can significantly improve codec efficiency. JVET maintains a reference software called the Joint Exploration Model (JEM) by integrating multiple additional codec tools on the basis of the HEVC Test Model (HM).

[0049] In October 2017, ITU-T and ISO / IEC issued a joint request for proposals (CfP) on video compression with capabilities beyond HEVC. In April 2018, 23 CfP responses were received and evaluated at the 10th JVET meeting, demonstrating that compression efficiency was about 40% higher than HEVC. Based on such evaluation results, JVET launched a new project to develop a new generation of video codec standards called Versatile Video Codec (VVC). In the same month, a reference software code base called VVC Test Model (VTM) was established to demonstrate the reference implementation of the VVC standard.

[0050] Like HEVC, VVC is built on a block-based hybrid video codec framework.

[0051] Figure 1 An overall diagram of a block-based video encoder for VVC is shown. Specifically, Figure 1 A typical encoder 100 is shown. The encoder 100 has a video input 110, motion compensation 112, motion estimation 114, intra / inter mode decision 116, block prediction value 140, adder 128, transform 130, quantization 132, prediction related information 142, intra prediction 118, picture buffer 120, inverse quantization 134, inverse transform 136, adder 126, memory 124, loop filter 122, entropy coding 138, and bitstream 144.

[0052] In encoder 100, a video frame is partitioned into multiple video blocks for processing. For each given video block, a prediction is formed based on an inter-prediction method or an intra-prediction method.

[0053] The prediction residual representing the difference between the current video block (part of the video input 110) and its prediction value (part of the block prediction value 140) is sent from the adder 128 to the transform 130. The transform coefficients are then sent from the transform 130 to the quantization 132 for entropy reduction. The quantized coefficients are then fed to the entropy coding 138 to generate a compressed video bitstream. Figure 1 As shown, prediction related information 142 from intra / inter mode decision 116, such as video block partition information, motion vector (MV), reference picture index, and intra prediction mode, is also fed through entropy coding 138 and saved into a compressed bitstream 144. The compressed bitstream 144 comprises a video bitstream.

[0054] In the encoder 100, decoder related circuitry is also required to reconstruct pixels for prediction purposes. First, the prediction residual is reconstructed by inverse quantization 134 and inverse transformation 136. The reconstructed prediction residual is combined with the block prediction value 140 to generate the unfiltered reconstructed pixels of the current video block.

[0055] Spatial prediction (or "intra-prediction") uses pixels from samples of already coded neighboring blocks (called reference samples) in the same video frame as the current video block to predict the current video block.

[0056] Temporal prediction (also known as "inter prediction") uses reconstructed pixels from already coded video pictures to predict the current video block. Temporal prediction reduces temporal redundancy inherent in video signals. The temporal prediction signal for a given coding unit (CU) or coding block is typically signaled by one or more MVs indicating the amount and direction of motion between the current CU and its temporal reference. Further, if multiple reference pictures are supported, a reference picture index is additionally sent, which is used to identify which reference picture in the reference picture store the temporal prediction signal comes from.

[0057] Motion estimation 114 takes the video input 110 and the signal from the picture buffer 120 and outputs the motion estimation signal to motion compensation 112. Motion compensation 112 takes the video input 110, the signal from the picture buffer 120 and the motion estimation signal from motion estimation 114 and outputs the motion compensation signal to intra / inter mode decision 116.

[0058] After performing spatial prediction and / or temporal prediction, the intra / inter mode decision 116 in the encoder 100 selects the best prediction mode, for example based on a rate-distortion optimization method. The block prediction value 140 is then subtracted from the current video block, and the resulting prediction residual is decorrelated using a transform 130 and a quantization 132. The resulting quantized residual coefficients are dequantized by dequantization 134 and inversely transformed by an inverse transform 136 to form a reconstructed residual, which is then added back to the prediction block to form a reconstructed signal for the CU. Further loop filtering 122, such as a deblocking filter, sample adaptive offset (SAO), and / or an adaptive loop filter (ALF), may be applied to the reconstructed CU before the reconstructed CU is placed in the reference picture storage of the picture buffer 120 and used to encode and decode future video blocks. To form an output video bitstream 144, the encoding and decoding mode (inter or intra), prediction mode information, motion information, and quantized residual coefficients are sent to an entropy coding unit 138 for further compression and packaging to form a bitstream.

[0059] Figure 1A block diagram of a general block-based hybrid video coding system is given. The input video signal is processed block by block, which is called a coding unit (CU). In VTM-1.0, a CU can be up to 128×128 pixels. However, unlike HEVC, which partitions blocks based on quadtrees only, in VVC, a coding tree unit (CTU) is divided into multiple CUs to accommodate different local characteristics based on quad / bin / ternary trees. By definition, a coding tree block (CTB) is an N×N sample block of a certain N value, so that the division of components into CTBs is partitioning. A CTU includes a luma sample CTB, two corresponding chroma sample CTBs of a picture with three sample arrays, or a sample CTB of a monochrome picture or a sample CTB of a picture encoded and decoded using three separate color planes and a syntax structure for encoding and decoding the samples. In addition, the concept of multiple partition unit types in HEVC is removed, that is, the splitting of CU, prediction unit (PU) and transform unit (TU) no longer exists in VVC; instead, each CU is always used as a basic unit for both prediction and transformation without further partitioning. In the multi-type tree structure, a CTU is first partitioned by a quadtree structure. Then, each quadtree leaf node can be further partitioned by a binary tree structure and a ternary tree structure. Figure 3A , Figure 3B , Figure 3C , Figure 3D and Figure 3E As shown, there are five types of partitioning, four-way partitioning, horizontal two-way partitioning, vertical two-way partitioning, horizontal three-way partitioning, and vertical three-way partitioning.

[0060] Figure 3A A diagram illustrating block quad partitioning in a multi-type tree structure according to the present disclosure is shown.

[0061] Figure 3B A diagram illustrating vertical binary partitioning of blocks in a multi-type tree structure according to the present disclosure is shown.

[0062] Figure 3C A diagram illustrating block-level binary partitioning in a multi-type tree structure according to the present disclosure is shown.

[0063] Figure 3D A diagram illustrating vertical ternary partitioning of blocks in a multi-type tree structure according to the present disclosure is shown.

[0064] Figure 3E A diagram illustrating block-level ternary partitioning in a multi-type tree structure according to the present disclosure is shown.

[0065] exist Figure 1In the video code, spatial prediction and / or temporal prediction can be performed. Spatial prediction (or "intra-frame prediction") uses pixels from samples (called reference samples) of already coded adjacent blocks in the same video picture / strip to predict the current video block. Spatial prediction reduces the spatial redundancy inherent in the video signal. Temporal prediction (also known as "inter-frame prediction" or "motion compensated prediction") uses reconstructed pixels from already coded video images to predict the current video block. Temporal prediction reduces the temporal redundancy inherent in the video signal. The temporal prediction signal of a given CU is usually signaled by one or more motion vectors (MVs) indicating the amount and direction of motion between the current CU and its temporal reference. Similarly, if multiple reference pictures are supported, a reference picture index is additionally sent, which is used to identify which reference picture in the reference picture storage the temporal prediction signal comes from. After performing spatial and / or temporal prediction, the mode decision block in the encoder selects the best prediction mode, for example based on a rate-distortion optimization method. Then, the prediction block is subtracted from the current video block; and the prediction residual is decorrelated and quantized using a transform. The quantized residual coefficients are dequantized and inverse transformed to form a reconstructed residual, which is then added back to the prediction block to form the reconstructed signal of the CU. Further, loop filtering such as deblocking filter, sample adaptive offset (SAO) and adaptive loop filter (ALF) can be applied to the reconstructed CU before it is placed in the reference picture storage and used for encoding and decoding future video blocks. In order to form the output video bitstream, the coding mode (inter-frame or intra-frame), prediction mode information, motion information, and quantized residual coefficients are sent to the entropy coding unit for further compression and packaging to form a bitstream.

[0066] Figure 2 FIG. 1 shows a general block diagram of a video decoder for VVC. Specifically, Figure 2 A block diagram of a typical decoder 200 is shown. The decoder 200 has a bitstream 210, entropy decoding 212, inverse quantization 214, inverse transform 216, adder 218, intra / inter mode selection 220, intra prediction 222, memory 230, loop filter 228, motion compensation 224, picture buffer 226, prediction related information 234, and video output 232.

[0067] Decoder 200 is similar to that present in Figure 1The decoder 200 first decodes the incoming video bitstream 210 by entropy decoding 212 to obtain the quantization coefficient levels and prediction related information. Then, the quantization coefficient levels are processed by inverse quantization 214 and inverse transform 216 to obtain the reconstructed prediction residuals. The block prediction value mechanism implemented in the intra / inter mode selector 220 is configured to perform intra prediction 222 or motion compensation 224 based on the decoded prediction information. A set of unfiltered reconstructed pixels is obtained by summing the reconstructed prediction residuals from the inverse transform 216 with the prediction output generated by the block prediction value mechanism using a summer 218.

[0068] The reconstructed block may further pass through a loop filter 228 and then be stored in a picture buffer 226 used as a reference picture storage. The reconstructed video in the picture buffer 226 may be sent to drive a display device and used to predict future video blocks. When the loop filter 228 is turned on, a filtering operation is performed on these reconstructed pixels, thereby obtaining a final reconstructed video output 232.

[0069] Figure 2 A general block diagram of a block-based video decoder is given. The video bitstream is first entropy decoded at the entropy decoding unit. The codec mode and prediction information are sent to the spatial prediction unit (in the case of intra-frame coding) or the temporal prediction unit (in the case of inter-frame coding) to form a prediction block. The residual transform coefficients are sent to the dequantization unit and the inverse transform unit to reconstruct the residual block. The prediction block and the residual block are then added. The reconstructed block can be further loop filtered and then stored in the reference picture storage. The reconstructed video in the reference picture storage is then sent out to drive the display device and is used to predict future video blocks.

[0070] Generally, the basic intra prediction scheme applied in VVC remains the same as that of HEVC, except that several modules are further extended and / or improved, such as intra sub-partitioning (ISP) coding mode, extended intra prediction using wide-angle intra direction, position-dependent intra prediction combination (PDPC), and 4-tap intra interpolation.

[0071] Partitioning of pictures, tile groups, tiles, and CTUs in VVC

[0072] In VVC, a tile is defined as a rectangular CTU area within a specific tile column and a specific tile row in a picture. A tile group is a group of an integer number of tiles of a picture that are contained only in a single NAL unit. Basically, the concept of a tile group is the same as the slice defined in HEVC. For example, a picture is divided into tile groups and tiles. A tile is a series of CTUs covering a rectangular area of ​​a picture. A tile group contains multiple tiles of a picture. Two modes of tile groups are supported, namely, raster scan tile group mode and rectangular tile group mode. In raster scan tile group mode, a tile group contains a series of tiles in a tile raster scan of a picture. In rectangular tile group mode, a tile group contains multiple tiles of a picture, which together form a rectangular area of ​​a picture. Tiles within a rectangular tile group are arranged in the tile raster scan order of the tile group.

[0073] Figure 4 An example of raster scan tile group partitioning of a picture is shown, where the picture is divided into 12 tiles and 3 raster scan tile groups. Figure 4 It includes tiles 410, 412, 414, 416, and 418. Each tile has 18 CTUs. More specifically, Figure 4 A picture with 18×12 luma CTUs is shown, which is partitioned into 12 tiles and 3 tile groups (informative). The three tile groups are as follows: (1) the first tile group includes tiles 410 and 412, (2) the second tile group includes tiles 414, 416, 418, 420, and 422, and (3) the third tile group includes tiles 424, 426, 428, 430, and 432.

[0074] Figure 5 An example of rectangular tile group partitioning of a picture is shown, where the picture is divided into 24 tiles (6 tile columns and 4 tile rows) and 9 rectangular tile groups. Figure 5 Included are tiles 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, and 556. More specifically, Figure 5A picture with 18×12 luma CTUs is shown, which is partitioned into 24 tiles and 9 tile groups (informative). A tile group contains tiles, and a tile contains a CTU. The 9 rectangular tile groups include: (1) two tiles 510 and 512, (2) two tiles 514 and 516, (3) two tiles 518 and 520, (4) four tiles 522, 524, 534, and 536, (5) four tile groups 526, 528, 538, and 540, (6) four tiles 530, 532, 542, and 544, (7) two tiles 546 and 548, (8) two tiles 550 and 552, and (9) two tiles 554 and 556.

[0075] Large block size change for High-Frequency Zeroing in VVC

[0076] In VTM4, large block size transforms up to 64×64 are enabled, which is mainly applicable to higher resolution videos, such as 1080p and 4K sequences. For transform blocks with a size (width or height, or both width and height) equal to 64, the high-frequency transform coefficients are zeroed so that only low-frequency coefficients are retained. For example, for an M×N transform block (where M is the block width and N is the block height), when M is equal to 64, only the left 32 columns of transform coefficients are retained. Similarly, when N is equal to 64, only the top 32 rows of transform coefficients are retained. When transform skip mode is used for large blocks, the entire block is used without zeroing any values.

[0077] Virtual Pipeline Data Unit (VPDU) in VVC

[0078] A Virtual Pipeline Data Unit (VPDU) is defined as a non-overlapping unit in a picture. In a hardware decoder, consecutive VPDUs are processed simultaneously by multiple pipeline stages. In most pipeline stages, the VPDU size is roughly proportional to the buffer size, so it is important to keep the VPDU size small. In most hardware decoders, the VPDU size can be set to the maximum transform block (TB) size. However, in VVC, ternary tree (TT) and binary tree (BT) partitioning may cause the VPDU size to increase.

[0079] To keep the VPDU size to 64×64 luma samples, the following canonical partitioning restrictions (with syntax signaling modifications) are applied in VTM5:

[0080] For CUs with width or height or both width and height equal to 128, TT partitioning is not allowed.

[0081] For 128xN CUs with N≤64 (i.e., width equals 128 and height less than 128), horizontal BT is not allowed.

[0082] For N x 128 CUs with N ≤ 64 (i.e., height equals 128 and width less than 128), vertical BT is not allowed.

[0083] Fig. 6A , Figure 6B , Figure 6C , Fig.6D , Fig. 6E , Fig. 6F , Figure 6G and Figure 6H An example of TT and BT partitions that are not allowed in VTM is shown.

[0084] Transform coefficient encoding and decoding in VVC

[0085] The transform coefficient coding in VVC is similar to HEVC in that they both use non-overlapping coefficient groups (also called CGs or sub-blocks). However, there are also some differences between the two codecs. In HEVC, the size of each CG of the coefficient is fixed to 4×4. In VVC draft 6, the CG size becomes dependent on the size of the TB. Therefore, various available CG sizes (1×16, 2×8, 8×2, 2×4, 4×2, and 16×1) are provided in VVC. The CGs within a coding block and the transform coefficients within the CG are encoded and decoded according to a predefined scanning order.

[0086] In order to limit the maximum number of context coded bits per pixel, the area of ​​the TB and the type of video component (e.g., luminance component vs. chrominance component) are used to derive the maximum number of context coded bits (CCB) for the TB. The maximum number of context coded bits is equal to TB_zosize*1.75. Here, TB_zosize indicates the number of samples in the TB after the coefficients are zeroed. Note that coded_sub_block_flag is a flag indicating whether the CG contains non-zero coefficients and is not considered for CCB counting.

[0087] Zero-out is an operation performed on a transform block to force coefficients located in a specific area of ​​the transform block to be 0. For example, in the current VVC, the 64×64 transform has an associated zeroing operation. Therefore, the transform coefficients located outside the upper left 32×32 area within the 64×64 transform block are forced to 0. In fact, in the current VVC, for any transform block with a size greater than 32 along a dimension, a coefficient zeroing operation is performed along that dimension to force the coefficients located outside the upper left 32×32 area to be 0.

[0088] In the transform coefficient coding in VVC, the variable remBinsPass1 is first set to the maximum number of allowed context coding bits (MCCB). During the coding process, each time the context coding bits are signaled, the variable is decremented by one. When remBinsPass1 is greater than or equal to four, the coefficient is first signaled through the syntax elements such as sig_coeff_flag, abs_level_gt1_flag, par_level_flag, and abs_level_gt3_flag, all of which use context coding bits in the first pass. The rest of the level information of the coefficient is coded and decoded in the second pass using the Golomb-rice code and the bypass coded bits through the syntax element abs_remainder. When remBinsPass1 becomes less than 4 during the first coding pass, the current coefficient is not coded and decoded in the first pass, but is directly coded and decoded in the second pass using the Golomb-Rice code and the bypass coded bits through the syntax element dec_abs_level. The rice parameter derivation process for dec_abs_level[] is obtained as specified in Table 3. After encoding and decoding of all the above levels, the sign (sign_flag) of all scan positions with sig_coeff_flag equal to 1 is finally encoded and decoded as a bypass binary bit. Figure 7 remBinsPass1 is reset for each TB. The transition from using the context-encoded bits for sig_coeff_flag, abs_level_gt1_flag, par_level_flag, and abs_level_gt3_flag to using the bypass-encoded bits for the remaining coefficients occurs at most once per TB. For a coefficient subblock, if remBinsPass1 is less than 4 before encoding its first coefficient, the entire coefficient subblock is encoded using the bypass-encoded bits.

[0089] Figure 7 A diagram showing a residual codec structure for a transform block is shown.

[0090] The syntax for signaling abs_remainder and dec_abs_level is derived using a unified (same) rice parameter (RicePara). The only difference is that the base level baseLevel is set to 4 and 0 for the encoding and decoding of abs_remainder and dec_abs_level, respectively. The determination of the Rice parameter is based not only on the sum of the absolute levels of the five adjacent transform coefficients in the local template, but also on the corresponding base level, as shown below:

[0091] RicePara=RiceParTable[max(min(31,sumAbs–5*baseLevel),0)]

[0092] The syntax and related semantics of residual codec in the current VVC draft specification are illustrated in Table 1 and Table 2, respectively. How to read Table 1 is illustrated in the Appendix section of this disclosure, which can also be found in the VVC specification.

[0093] Table 1. Syntax of residual codec

[0094]

[0095]

[0096]

[0097]

[0098]

[0099]

[0100]

[0101]

[0102] Table 2. Semantics of residual codec

[0103]

[0104]

[0105]

[0106]

[0107] Table 3. Derivation process of Rice parameters for abs_remainder[] and dec_abs_level[]

[0108]

[0109] Table 4. Specification of cRiceParam based on locSumAbs

[0110] locSumAbs 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cRiceParam 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 locSumAbs 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 cRiceParam 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3

[0111] Residual Coding and Decoding of Transform Skip Mode in VVC

[0112] Unlike HEVC where a single residual codec scheme is designed for coding and decoding both transform coefficients and transform skip coefficients, in VVC, two separate residual codec schemes are used for transform coefficients and transform skip coefficients (ie, residuals), respectively.

[0113] In transform skip mode, the statistical properties of the residual signal are different from those of the transform coefficients and no energy compaction around low frequency components is observed. The residual codec is modified to take into account the different signal properties of the (spatial) transform skip residuals, which include:

[0114] There is no signal transmission of the final x / y position;

[0115] coded_sub_block_flag coded for each sub-block except the DC sub-block when all previous flags are equal to 0;

[0116] sig_coeff_flag context modeling with two adjacent coefficients;

[0117] par_level_flag that uses only one context model;

[0118] Additional greater than 5, 7, 9 flags;

[0119] Derivation of rice parameters for residual binarization modification;

[0120] The context modeling of the sign flag is determined based on the neighboring coefficient values ​​to the left and above, and the sign flag is parsed after sig_coeff_flag to keep all context-coded bins together.

[0121] like Figure 8 As shown, the syntax elements In the first pass, the residual samples are interleaved and then decoded in the second pass. bitplanes, and abs_remainder codec in the third pass.

[0122] Pass 1: sig_coeff_flag, coeff_sign_flag, abs_level_gt1_flag, par_level_flag

[0123] Pass 2: abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, abs_level_gt9_flag

[0124] Pass 3: abs_remainder

[0125] Figure 8 A diagram showing a residual codec structure for transform skip blocks.

[0126] The syntax and related semantics of residual coding for transform skip mode in the current VVC draft specification are illustrated in Table 5 and Table 2, respectively. How to read Table 5 is illustrated in the Appendix section of this disclosure, which can also be found in the VVC specification.

[0127] Table 5. Syntax for residual codec for transform skip mode

[0128]

[0129]

[0130]

[0131]

[0132] Quantification

[0133] In the current VVC, the maximum QP value is extended from 51 to 63, and the signaling of the initial QP is also changed accordingly. When encoding and decoding a non-zero value of slice_qp_delta, the initial value of SliceQpY can be modified at the slice segment level. For transform skip blocks, the minimum allowed quantization parameter (QP) is defined as 4, because the quantization step becomes 1 when QP equals 4.

[0134] In addition, the same HEVC scalar quantization is used with a new concept called dependent scalar quantization. Dependent scalar quantization refers to a method in which a set of allowable reconstruction values ​​of a transform coefficient depends on the value of the transform coefficient level before the current transform coefficient level in the reconstruction order. The main effect of this method is that the allowable reconstruction vectors are more densely packed in the N-dimensional vector space (N represents the number of transform coefficients in the transform block) compared to the traditional independent scalar quantization used in HEVC. This means that for a given average number of allowed reconstruction vectors per N-dimensional unit volume, the average distortion between the input vector and the nearest reconstruction vector is reduced. The method of dependent scalar quantization is implemented in the following way: (a) defining two scalar quantizers with different reconstruction levels, and (b) defining a process for switching between the two scalar quantizers.

[0135] The two scalar quantizers used are Fig. 9The quantizer used is not explicitly signaled in the bitstream. Instead, the quantizer used for the current transform coefficient is determined by the parity of the transform coefficient level that precedes the current transform coefficient in the encoding / reconstruction order.

[0136] Fig. 9 A diagram of two scalar quantizers used in the proposed dependency quantization method is shown.

[0137] like Fig. 10A and Fig. 10B As shown in FIG. 10 , the switching between the two scalar quantizers (Q0 and Q1) is implemented via a state machine with four quantizer states (QState). QState can take four different values: 0, 1, 2, 3. It is uniquely determined by the parity of the transform coefficient level that precedes the current transform coefficient in the encoding / decoding / reconstruction order. At the beginning of inverse quantization of the transform block, the state is set equal to 0. The transform coefficients are reconstructed in scanning order (i.e., in the same order as they were entropy decoded). After the current transform coefficient has been reconstructed, the state is updated as shown in FIG. 10 , where k represents the value of the transform coefficient level.

[0138] Fig. 10A A transition diagram illustrating the state transitions of the proposed dependency quantization is shown.

[0139] Fig. 10B A table illustrating quantizer selection for the proposed dependency quantization is shown.

[0140] Signaling of default and user defined scaling matrices is also supported. DEFAULT mode scaling matrices are all flat with all TB size elements equal to 16. IBC and intra codec modes currently share the same scaling matrix. Therefore, for the case of USER_DEFINED matrices, the number of MatrixType and MatrixType_DC are updated as follows:

[0141] MatrixType: 30 = 2 (2 for intra and IBC / inter) × 3 (Y / Cb / Cr components) × 5 (square TB size: luminance from 4×4 to 64×64, chrominance from 2×2 to 32×32).

[0142] (Intra-frame and IBC / Inter-frame are 2×Y component is 1)× (TB size: 16×16, 32×32, 64×64)+ (2 for intra and IBC / inter×2 for Cb / Cr components)×2 (TB size: 16×16, 32×32).

[0143] The DC values ​​are encoded and decoded separately for the following scaling matrices: 16×16, 32×32, and 64×64. For TBs of size less than 8×8, all elements in one scaling matrix are signaled. If the size of the TB is greater than or equal to 8×8, only 64 elements of one 8×8 scaling matrix are signaled as the base scaling matrix. To obtain square matrices of size greater than 8×8, the 8×8 base scaling matrix is ​​upsampled (by element replication) to the corresponding square size (i.e., 16×16, 32×32, 64×64). When zeroing is applied to the high frequency coefficients of the 64-point transform, the corresponding high frequencies of the scaling matrix are also zeroed. That is, if the width or height of the TB is greater than or equal to 32, only the coefficients of the left half or the upper half are retained, and the remaining coefficients are assigned zero. In addition, the number of elements signaled for the 64×64 scaling matrix is ​​also reduced from 8×8 to three 4×4 sub-matrices, because the 4×4 elements in the lower right corner are never used.

[0144] Context modeling for transform coefficient encoding and decoding

[0145] The choice of the probability model of the syntax element related to the absolute value of the transform coefficient level depends on the value of the absolute level in the local neighborhood or the absolute level of the partial reconstruction. The template used is Fig.11 Medium picture.

[0146] Fig.11 An illustration of a template used to select a probability model is shown. The black square specifies the current scan position, and the squares with an "x" represent the local neighborhood used.

[0147] The chosen probability model depends on the sum of the absolute levels (or partially reconstructed absolute levels) in the local neighborhood and the number of absolute levels greater than 0 in the local neighborhood (given by the number of sig_coeff_flags equal to 1). Context modeling and binarization depend on the following measure of the local neighborhood:

[0148] numSig: the number of non-zero levels in the local neighborhood;

[0149] sumAbs1: the sum of the absolute levels of the partial reconstructions after the first pass in the local neighborhood (absLevel1);

[0150] sumAbs: the sum of the absolute levels of reconstructions in the local neighborhood;

[0151] Diagonal position (d): The sum of the horizontal and vertical coordinates of the current scan position within the transform block.

[0152] Based on the values ​​of numSig, sumAbs1 and d, the probability model used to encode and decode sig_coeff_flag, abs_level_gt1_flag, par_level_flag and abs_level_gt3_flag is selected. The Rice parameters for binarizing abs_remainder and dec_abs_level are selected based on the values ​​of sumAbs and numSig.

[0153] In the current VVC, the reduced 32-point MTS (also called RMTS32) is based on skipping high-frequency coefficients and is used to reduce the computational complexity of 32-point DST-7 / DCT-8. And, it is accompanied by changes in coefficient coding, including all types of zeroing (i.e., the existing zeroing of high-frequency components in RMTS32 and DCT2). Specifically, the binarization of the last non-zero coefficient position coding is based on the reduced TU size, and the context model selection for the last non-zero coefficient position coding is determined by the original TU size. In addition, 60 context models are used to encode and decode the sig_coeff_flag of the transform coefficient. The selection of the context model index is based on the sum of the absolute levels of the maximum five previous partial reconstructions (called locSumAbsPass1) and the dependent quantization state QState, as shown below:

[0154] If cIdx is equal to 0, ctxInc is obtained as follows:

[0155] ctxInc=12*Max(0,QState–1)+

[0156] Min((locSumAbsPass1+1)>>1,3)+

[0157] (d<2?8:(d<5?4:0))

[0158] Otherwise (cIdx is greater than 0), ctxInc is obtained as follows:

[0159] ctxInc=36+8*Max(0,QState-1)+

[0160] Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)

[0161] Palette Mode

[0162] The basic idea behind the palette mode is that the samples in a CU are represented by a small set of representative color values. This set is called a palette. It is also possible to indicate color values ​​that are excluded from the palette by signaling the color values ​​as escape colors, for which the by values ​​of the three color components are directly signaled in the bitstream. Fig.12 Medium picture.

[0163] Fig.12 An example of a block encoded and decoded in palette mode is shown. Fig.12 Includes 1210 blocks and 1220 palettes encoded and decoded in palette mode.

[0164] exist Fig.12 In , the palette size is 4. The first 3 samples are reconstructed using palette entries 2, 0, and 3 respectively. The blue samples represent escape symbols. The CU level flag palette_escape_val_present_flag indicates whether there are any escape symbols in the CU. If there are escape symbols, the palette size is increased by one and the last index is used to indicate the escape symbol. Therefore, in Fig.12 , index 4 is assigned to the escape symbol.

[0165] In order to decode a palette-encoded block, the decoder needs to have the following information:

[0166] Palette table;

[0167] The palette index.

[0168] If the palette index corresponds to an escape symbol, additional overhead is signaled to indicate the corresponding color value of the sample.

[0169] Additionally, on the encoder side, it is necessary to get the appropriate palette to use with this CU.

[0170] For palette derivation for lossy codecs, a modified k-means clustering algorithm is used. The first sample of a block is added to the palette. Then, for each subsequent sample in the block, the sum of absolute differences (SAD) between the sample and each current palette color is calculated. If the distortion of each component is less than the palette entry threshold corresponding to the minimum SAD, the sample is added to the cluster belonging to the palette entry. Otherwise, the sample is added as a new palette entry. When the number of samples mapped to a cluster exceeds the threshold, the centroid of that cluster is updated and becomes the palette entry for that cluster.

[0171] In the next step, the clusters are sorted in descending order of usage. Then, the palette entry corresponding to each entry is updated. Typically, the centroid of the cluster is used as the palette entry. However, when the encoding and decoding cost of the palette entry is taken into account, a rate-distortion analysis is performed to analyze whether any entry from the palette prediction value is more suitable to replace the centroid for use as the updated palette entry. This process continues until all clusters have been processed or the maximum palette size is reached. Finally, if a cluster has only one sample point and the corresponding palette entry is not in the palette prediction value, the sample point is converted to an escape symbol. In addition, duplicate palette entries are removed and their clusters are merged.

[0172] After palette derivation, each sample in the block is assigned the index of the nearest (expressed in SAD) palette entry. The samples are then assigned to either 'INDEX' or 'COPY_ABOVE' mode. For each sample, either 'INDEX' or 'COPY_ABOVE' mode can be used. The encoding and decoding cost of the mode is then calculated. The mode with the lower cost is chosen.

[0173] For encoding and decoding of palette entries, a palette prediction value is maintained. The maximum size of the palette and the palette prediction value are signaled in the SPS. The palette prediction value is initialized at the beginning of each CTU row, each slice, and each tile.

[0174] For each entry in the palette prediction value, a reuse flag is signaled to indicate whether it is part of the current palette. Fig.13 Medium picture.

[0175] Fig.13 The use of palette prediction values ​​to signal palette entries is shown. Fig.13 Included is a previous palette 1310 and a current palette 1320 .

[0176] The reuse flag is sent using a run length codec of zero. After this, the number of new palette entries is signaled using an order-0 index-Golomb code. Finally, the component values ​​of the new palette entries are signaled.

[0177] like Fig.14A and Fig. 14B As shown, palette indices are encoded and decoded using horizontal traversal scan and vertical traversal scan. The scan order is explicitly signaled in the bitstream using palette_transpose_flag.

[0178] Fig.14A A horizontal traversal scan is shown.

[0179] Fig. 14B A vertical traversal scan is shown.

[0180] For the codec palette index, a palette mode based on line coefficient groups (CGs) is used, which divides the CU into multiple segments with 16 samples based on a traversal scan mode, such as Fig.15A and Fig. 15B As shown, where the index run, palette index value, and quantized color of the escape mode are encoded / parsed in sequence for each CG.

[0181] Fig.15A A sub-block based index map scan for a palette is shown.

[0182] Fig. 15B A sub-block based index map scan for a palette is shown.

[0183] The palette index is encoded and decoded using two main palette sampling modes: 'INDEX' and 'COPY_ABOVE'. As explained previously, the escape symbol is assigned an index equal to the maximum palette size. In 'COPY_ABOVE' mode, the palette index of the sample in the previous row is copied. In 'INDEX' mode, the palette index is explicitly signaled. The encoding order for encoding and decoding a palette run in each segment is as follows:

[0184] For each pixel, a binary bit of context coding run_copy_flag=0 is signaled, which indicates whether the mode of the pixel is the same as that of the previous pixel, that is, whether the previous scanned pixel and the current pixel both have the run type COPY_ABOVE or whether the previous scanned pixel and the current pixel both have the run type INDEX and the same index value. Otherwise, run_copy_flag=1 is signaled.

[0185] If the pixel has a different mode than the previous pixel, a context coded binary bit copy_above_palette_indices_flag indicating the run type of the pixel (i.e., INDEX or COPY_ABOVE) is signaled. If the sample is in the first row (horizontal traversal scan) or the first column (vertical traversal scan), the decoder does not have to resolve the run type because the INDEX mode is used by default. Similarly, if the previously resolved run type was COPY_ABOVE, the decoder does not have to resolve the run type.

[0186] After palette encoding and decoding for pixels in a segment, the index value (palette_idx_idc) and quantized escape color (palette_escape_val) of INDEX mode are bypassed for decoding.

[0187] Improvements in residual and coefficient encoding and decoding

[0188] In VVC, when encoding and decoding the transform coefficients, a unified (same) rice parameter (RicePara) is used to derive the syntax for signaling abs_remainder and dec_abs_level. The only difference is that for the encoding and decoding of abs_remainder and dec_abs_level, the base level baseLevel is set to 4 and 0 respectively. The determination of the Rice parameter is based not only on the sum of the absolute levels of the five adjacent transform coefficients in the local template, but also on the corresponding base level, as follows:

[0189] RicePara=RiceParTable[max(min(31,sumAbs–5*baseLevel),0)]

[0190] In other words, the binary codewords of the syntax elements abs_remainder and dec_abs_level are adaptively determined based on the level information of the neighboring coefficients. Since the codeword determination is performed for each sample point, it requires additional logic to handle the adaptation of the codeword to the coefficient encoding and decoding.

[0191] Similarly, when the residual block is encoded and decoded in transform skip mode, the binary codeword of the syntax element abs_remainder is adaptively determined according to the level information of adjacent residual samples.

[0192] Furthermore, when encoding or decoding syntax elements related to residual coding or transform coefficient coding, the selection of the probability model depends on the level information of adjacent levels, which requires additional logic and additional context models.

[0193] In the current design, the binarization of escaped samples is obtained by calling the third-order exponential Columbus binarization process. There is still room for further improvement in its performance.

[0194] In the current VVC, there are two different level mapping schemes, and they are applied to normal transform and transform skip respectively. Each level mapping scheme is associated with different conditions, mapping functions, and mapping positions. For blocks to which normal transform is applied, the level mapping scheme is used after the number of context-coded bits (CCB) exceeds the limit. The mapping position represented by ZeroPos[n] and the mapping result represented by AbsLevel[xC][yC] are obtained as specified in Table 2. For blocks to which transform skip is applied, another level mapping scheme is used before the number of context-coded bits (CCB) exceeds the limit. The mapping position represented by predCoeff and the mapping result represented by AbsLevel[xC][yC] are obtained as specified in Table 5. From a standardization perspective, this non-uniform design may not be optimal.

[0195] For profiles above 10 bits in HEVC, extended_precision_processing_flag equal to 1 specifies the use of extended dynamic range for coefficient parsing and inverse transform processing. It is reported that in the current VVC, residual coding or transform skip coding of transform coefficients above 10 bits is the cause of significant performance degradation. There is still room for further performance improvement.

[0196] Proposed method

[0197] In this disclosure, several methods are proposed to solve the problems mentioned in the improvement of residual and coefficient coding. Note that the following methods can be used alone or in combination.

[0198] According to a first aspect of the present disclosure, it is proposed to use a fixed set of binary codewords to encode and decode certain syntax elements (eg, abs_remainder) in residual coding and decoding. Different methods can be used to form binary codewords. Some exemplary methods are listed below.

[0199] First, the same procedure for determining the codeword for abs_remainder as used in current VVC is used, but a selected fixed rice parameter (eg, 1, 2, or 3) is always selected.

[0200] Second, fixed-length binarization.

[0201] Third, truncated Rice binarization.

[0202] Fourth, the truncated binary (TB) binarization process.

[0203] Fifth, the k-th order exponential Columbus binarization process (EGk).

[0204] Sixth, finite k-order exponential Columbus binarization.

[0205] According to a second aspect of the present disclosure, it is proposed to use a fixed set of codewords to encode and decode certain syntax elements (eg, abs_remainder and dec_abs_level) in transform coefficient encoding and decoding. Different methods can be used to form binary codewords. Some exemplary methods are listed below.

[0206] First, the same procedure for determining the codewords for abs_remainder and dec_abs_level as used in current VVC is used, but with a fixed rice parameter, e.g., 1, 2, or 3. The value of baseLevel may still be different for abs_remainder and dec_abs_level used in current VVC (e.g., baseLevel is set to 4 and 0 to encode and decode abs_remainder and dec_abs_level, respectively).

[0207] Second, the same procedure for determining the codewords for abs_remainder and dec_abs_level as used in current VVC is used, but with a fixed rice parameter, e.g., 1, 2, or 3. The values ​​of baseLevels for abs_remainder and dec_abs_level are chosen to be the same, e.g., both use 0 or both use 4.

[0208] Third, fixed-length binarization.

[0209] Fourth, truncated Rice binarization.

[0210] Fifth, the truncated binary (TB) binarization process.

[0211] Sixth, k-order exponential Columbus binarization process (EGk).

[0212] Seventh, finite k-order exponential Columbus binarization.

[0213] According to a third aspect of the present disclosure, it is proposed to use a single context for syntax elements related to residual coding or coefficient coding (e.g., ) for encoding and decoding, and the context selection based on adjacent decoding level information can be removed.

[0214] According to a fourth aspect of the present disclosure, it is proposed to use a variable set of binary codewords in residual coding and decoding to encode and decode certain syntax elements (e.g., abs_remainder), and to determine the selection of the binary codeword set according to certain encoded information of the current block, such as a quantization parameter (QP) associated with a TB / CB and / or a slice, a prediction mode of a CU (e.g., an IBC mode or an intra-frame or an inter-frame) and / or a slice type (e.g., an I slice, a P slice, or a B slice). Different methods may be used to obtain the variable set of binary codewords, and some exemplary methods are listed below.

[0215] First, the same process for determining the codeword of abs_remainder as used in current VVC is used, but with a different rice parameter.

[0216] Second, the k-th order exponential Columbus binarization process (EGk).

[0217] Third, finite k-order Exponential Columbus binarization.

[0218] Table 6. Rice parameter determination based on QP value

[0219]

[0220]

[0221] The same method explained in the fourth aspect is also applicable to transform efficient coding. According to the fifth aspect of the present disclosure, it is proposed to use a variable set of binary codewords in transform coefficient coding to encode and decode certain syntax elements (such as abs_remainder and dec_abs_level), and determine the selection of the binary codeword set based on certain encoded information of the current block, such as the quantization parameter (QP) associated with the TB / CB and / or the slice, the prediction mode of the CU (such as IBC mode or intra-frame or inter-frame) and / or the slice type (such as I slice, P slice or B slice). Again, different methods can be used to obtain the variable set of binary codewords, and some exemplary methods are listed below.

[0222] First, the same process for determining the codeword of abs_remainder as used in current VVC is used, but with a different rice parameter.

[0223] Second, the k-th order exponential Columbus binarization process (EGk).

[0224] Third, finite k-order Exponential Columbus binarization.

[0225] In the above methods, different rice parameters can be used to obtain different binary codeword sets. For a given residual sample block, the rice parameter used is determined according to the CU QP represented as QP CU instead of the neighboring level information. A specific example is shown in Table 6, where TH1 to TH4 are predefined thresholds satisfying (TH1 < TH2 < TH3 < TH4), and K0 to K4 are predefined rice parameters. It should be noted that the same logic can have different implementation manners in practice. For example, the same rice parameters can also be obtained from the QP value of the current CU using certain equations or look-up tables, as shown in Table 6.

[0226] According to a fifth aspect of the present disclosure, a parameter set and / or threshold associated with the codeword determination of syntax elements for transform coefficient coding and / or transform skip residual coding is signaled into the bitstream. When syntax elements are coded and decoded by an entropy codec (e.g., arithmetic coding), the determined codewords are used as binarized codewords.

[0227] Note that the parameter set and / or threshold can be a complete set or a subset of all parameters and thresholds associated with the codeword determination of syntax elements. The parameter set and / or threshold can be signaled at different levels in the video bitstream. For example, these parameter sets and / or thresholds can be signaled at the sequence level (e.g., sequence parameter set), picture level (e.g., picture parameter set and / or picture header), slice level (e.g., slice header), coding tree unit (CTU) level, or coding unit (CU) level.

[0228] In one example, the rice parameter for determining the codeword for coding the abs_remainder syntax in transform skip residual coding is signaled in the slice header, picture header, PPS, and / or SPS. When a CU is coded in the transform skip mode and the CU is associated with the above slice header, picture header, PPS, and / or SPS, etc., the signaled rice parameter is used to determine the codeword for coding the syntax abs_remainder.

[0229] According to a sixth aspect of the present disclosure, a parameter set and / or threshold associated with the codeword determination shown in the first and second aspects is used for syntax elements of transform coefficient coding and / or transform skip residual coding. And different sets can be used according to whether the current block contains luminance residuals / coefficients or chrominance residuals / coefficients. When syntax elements are coded and decoded by an entropy codec (e.g., arithmetic coding), the determined codewords are used as binarized codewords.

[0230] In one example, the abs_remainder codeword associated with the transform residual codec used in the current VVC is used for both luma blocks and chroma blocks, but luma blocks and chroma blocks use different fixed rice parameters (e.g., K1 for luma blocks and K2 for chroma blocks, where K1 and K2 are integers).

[0231] According to a seventh aspect of the present disclosure, parameter sets and / or thresholds associated with codeword determination of syntax elements for transform coefficient coding and / or transform skip residual coding are signaled into a bitstream. Different sets may be signaled for luminance blocks and chrominance blocks. When the syntax elements are encoded and decoded by an entropy codec (e.g., arithmetic coding), the determined codeword is used as a binarization codeword.

[0232] The same method explained in the above aspects also applies to escape value encoding and decoding in palette mode, for example, palette_escape_val.

[0233] According to an eighth aspect of the present disclosure, different k-order exponential Golomb binarizations may be used to obtain different sets of binary codewords for encoding and decoding escape values ​​in palette mode. In one example, for a given escape sample block, the exponential Golomb parameter used (i.e., the value of k) is based on the QP value of the block (expressed as QP CU ) is determined. The same example shown in Table 6 can be used when obtaining the value of parameter k based on a given QP value of the block. Although four different thresholds (from TH1 to TH4) are listed in this example, and the value of parameter k can be determined based on these thresholds and QP CU Five different k values ​​(from K0 to K4) are obtained, but it is worth mentioning that the number of thresholds is only for illustration purposes. In practice, different numbers of thresholds can be used to partition the entire QP value range into different numbers of QP value segments, and for each QP value segment, different k values ​​can be used to obtain the corresponding binary codeword to encode and decode the escape value of the block encoded and decoded in the palette mode. It is also worth noting that the same logic can have different implementations in practice. For example, certain equations or lookup tables can be used to obtain the same rice parameters.

[0234] According to a ninth aspect of the present disclosure, a parameter set and / or a threshold value associated with codeword determination of a syntax element of an escape sample is signaled into a bitstream. When the syntax element of the escape sample is encoded and decoded by an entropy codec (e.g., arithmetic codec), the determined codeword is used as a binarization codeword.

[0235] Note that the parameter sets and / or thresholds may be a complete set or a subset of all parameters and thresholds associated with codeword determination of syntax elements. The parameter sets and / or thresholds may be signaled at different levels in the video bitstream. For example, these parameter sets and / or thresholds may be signaled at a sequence level (e.g., a sequence parameter set), a picture level (e.g., a picture parameter set and / or a picture header), a slice level (e.g., a slice header), a coding tree unit (CTU) level, or a coding unit (CU) level.

[0236] In one example according to the present aspect, k-order exponential Golomb binarization is used to determine the codeword for encoding and decoding the palette_escape_val syntax in the palette mode, and the value of k is signaled to the decoder in the bitstream. The value of k can be signaled at different levels, for example, it can be signaled in a slice header, a picture header, a PPS and / or an SPS, etc. When the CU is encoded and decoded into the palette mode and the CU is associated with the above-mentioned slice header, a picture header, a PPS and / or an SPS, etc., the signaled exponential Golomb parameters are used to determine the codeword for encoding and decoding the syntax palette_escape_val.

[0237] Coordination of level mapping for transform skip mode and regular transform mode

[0238] According to the tenth aspect of the present disclosure, the same conditions for applying level mapping are used for both transform skip mode and normal transform mode. In one example, it is proposed to apply level mapping after the number of context coding and decoding bins (CCB) exceeds the limit of transform skip mode and normal transform mode. In another example, it is proposed to apply level mapping before the number of context coding and decoding bins (CCB) exceeds the limit of transform skip mode and normal transform mode.

[0239] According to an eleventh aspect of the present disclosure, the same method for deriving a mapping position in a level map is used for both a transform skip mode and a normal transform mode. In one example, it is proposed that the method for deriving a mapping position in a level map used in a transform skip mode is also applied to a normal transform mode. In another example, it is proposed that the method for deriving a mapping position in a level map used in a normal transform mode is also applied to a transform skip mode.

[0240] According to a twelfth aspect of the present disclosure, the same level mapping method is applied to both the transform skip mode and the normal transform mode. In one example, it is proposed that the level mapping function used in the transform skip mode is also applied to the normal transform mode. In another example, it is proposed that the level mapping function used in the normal transform mode is also applied to the transform skip mode.

[0241] Simplification of Rice parameter derivation in residual coding

[0242] According to the thirteenth aspect of the present disclosure, it is proposed to use simple logic (such as shift or division operation) instead of a lookup table for obtaining rice parameters when encoding and decoding the syntax elements of abs_remainder / dec_abs_level using Golomb-Rice code. According to the present disclosure, the lookup table specified in Table 4 can be removed. In one example, the Rice parameter cRiceParam is obtained as follows: cRiceParam = (locSumAbs>>n), where n is a positive number, such as 3. It is worth noting that in practice, other different logics can be used to achieve the same result, for example, a division operation is performed with a value equal to 2 to the power of n. An example of the corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in a strikethrough font.

[0243] Table 7. Rice parameter derivation process

[0244]

[0245]

[0246] According to a fourteenth aspect of the present disclosure, it is proposed that when encoding and decoding the syntax element of abs_remainder / dec_abs_level using Golomb-Rice code, fewer adjacent positions are used to obtain rice parameters. In one example, it is proposed that when encoding and decoding the syntax element of abs_remainder / dec_abs_level, only two adjacent positions are used to obtain rice parameters. The corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in a strikethrough font.

[0247] Table 8. Rice parameter derivation process

[0248]

[0249] In another example, it is proposed that when encoding and decoding the syntax element of abs_remainder / dec_abs_level, only one adjacent position is used to obtain the rice parameter. The corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in a strikethrough font.

[0250] Table 9. Rice parameter derivation process

[0251]

[0252] According to the fifteenth aspect of the present disclosure, it is proposed that when the syntax elements of abs_remainder / dec_abs_level are encoded and decoded using Golomb-Rice code, different logic is used to adjust the value of locSumAbs based on the value of baseLevel to derive the rice parameter. In one example, the additional scaling and offset operation is applied in the form of "(locSumAbs-baseLevel*5)*alpha+beta". When the alpha value is 1.5 and the beta value is 1, the corresponding decoding process based on the VVC draft is shown as follows, with the changed parts shown in bold and italic fonts, and the deleted content shown in a strikethrough font.

[0253] Table 10. Rice parameter derivation process

[0254]

[0255] According to the sixteenth aspect of the present disclosure, it is proposed to use Golomb-Rice code to remove the clipping operation used to obtain the rice parameter in the syntax element of abs_remainder / dec_abs_level. According to the present disclosure, an example of the decoding process on the VVC draft is shown below, the changed parts are shown in bold and italic fonts, and the deleted content is shown in a strikethrough font.

[0256] Table 11. Rice parameter derivation process

[0257]

[0258] According to the present disclosure, an example of a decoding process on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted contents shown in strikethrough fonts.

[0259] Table 12. Rice parameter derivation process

[0260]

[0261] According to the seventeenth aspect of the present disclosure, it is proposed that when the syntax element of abs_remainder / dec_abs_level is encoded and decoded using the Golomb-Rice code, the initial value of locSumAbs is changed from 0 to a non-zero integer to obtain a rice parameter. In an example, the initial value 1 is assigned to locSumAbs, and the corresponding decoding process based on the VVC draft is as follows, the changed part is shown in bold and italic fonts, and the deleted content is shown in a strikethrough font.

[0262] Table 13. Rice parameter derivation process

[0263]

[0264] According to the eighteenth aspect of the present disclosure, it is proposed that when encoding and decoding the syntax element of abs_remainder / dec_abs_level using Golomb-Rice code, the maximum value of the adjacent position level value is used instead of the sum value to obtain the rice parameter. An example of the corresponding decoding process based on the VVC draft is shown below, the changed part is shown in bold and italic fonts, and the deleted content is shown in a strikethrough font.

[0265] Table 14. Rice parameter derivation process

[0266]

[0267] According to the nineteenth aspect of the present disclosure, it is proposed that when encoding and decoding the syntax element of abs_remainder / dec_abs_level using Golomb-Rice code, a rice parameter is obtained based on the relative amplitude of each AbsLevel value at adjacent positions and the basic level value. In an example, the rice parameter is obtained based on how many AbsLevel values ​​at adjacent positions are greater than the basic level. An example of a corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in a strikethrough font.

[0268] Table 15. Rice parameter derivation process

[0269]

[0270]

[0271] In another example, the rice parameter is obtained based on the sum of the (AbsLevel-baseLevel) values ​​of adjacent positions where the AbsLevel value is greater than the base level. An example of a corresponding decoding process based on the VVC draft is shown below, with changes shown in bold and italic fonts, and deleted content shown in a strikethrough font.

[0272] Table 16. Rice parameter derivation process

[0273]

[0274]

[0275] According to the present disclosure, an example of a decoding process on the VVC draft is shown below, with changes shown in bold and italic fonts, and deleted content shown in strikethrough fonts.

[0276] Table 17. Rice parameter derivation process

[0277]

[0278]

[0279] Simplification of level map location derivation in residual coding

[0280] According to the twentieth aspect of the present disclosure, it is proposed to remove QState from the derivation of ZeroPos[n] so that ZeroPos[n] is obtained only from cRiceParam. An example of the corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in a strikethrough font.

[0281] Table 18. Rice parameter derivation process

[0282]

[0283]

[0284] According to the twenty-first aspect of the present disclosure, it is proposed to obtain ZeroPos[n] based on the value of locSumAbs. An example of the corresponding decoding process based on the VVC draft is shown below, where the changed parts are shown in bold and italic fonts, and the deleted contents are shown in a strikethrough font.

[0285] Table 19. Rice parameter derivation process

[0286]

[0287] According to the twenty-second aspect of the present disclosure, it is proposed to obtain ZeroPos[n] based on the value of AbsLevel of the adjacent position. In one example, ZeroPos[n] is obtained based on the maximum value of AbsLevel[xC+1][yC] and AbsLevel[xC][yC+1]. An example of the corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in a strikethrough font.

[0288] Table 20. Rice parameter derivation process

[0289]

[0290] According to the twenty-third aspect of the present disclosure, it is proposed to obtain cRiceParam and ZeroPos[n] based on the maximum value of all AbsLevel values ​​of adjacent positions. An example of the corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in a strikethrough font.

[0291] Table 21. Rice parameter derivation process

[0292]

[0293] The method explained in the above aspects is also applicable to obtaining predCoeff in residual coding of transform skip mode. In one example, the variable predCoeff is obtained as follows:

[0294] predCoeff=Max(absLeftCoeff,absAboveCoeff)+1

[0295] Residual encoding and decoding of transform coefficients

[0296] In the present disclosure, in order to solve the problems pointed out in the section "Improvements in residual and coefficient coding", methods are provided to simplify and / or further improve existing designs of residual coding. In general, the main features of the techniques proposed in the present disclosure are summarized as follows.

[0297] First, the derivation of rice parameters used in conventional residual codecs is adjusted based on the current design.

[0298] Second, the binary method used in conventional residual codecs is changed.

[0299] Third, the rice parameter derivation used in conventional residual codec is changed.

[0300] Derivation of Rice parameters in residual codec based on current designs

[0301] According to the twenty-fourth aspect of the present disclosure, a variable method of using rice parameters in residual coding and decoding is proposed to encode and decode certain syntax elements (such as abs_remainder / dec_abs_level), and the selection is determined according to certain encoded information of the current block (such as quantization parameters or coding bit depth associated with TB / CB and / or slice / profile) and / or according to a new flag associated with TB / CB / slice / picture / sequence level (such as extended_precision_processing_flag). Different methods can be used to obtain rice parameters, and some exemplary methods are listed below.

[0302] First, cRiceParam = (cRiceParam << a) + (cRiceParam >> b) + c, where a, b, and c are positive numbers, e.g., {a, b, c} = {1, 1, 0}. It should be noted that in practice, the same result can be achieved using other different logics. For example, multiplication operations can be performed using values equal to the nth power of 2.

[0303] Second, cRiceParam = (cRiceParam << a) + b, where a and b are positive numbers, e.g., {a, b} = {1, 1}. It should be noted that in practice, the same result can be achieved using other different logics. For example, multiplication operations can be performed using values equal to the nth power of 2.

[0304] Third, cRiceParam = (cRiceParam * a) + b, where a and b are positive numbers, e.g., {a, b} = {1.5, 0}. It should be noted that in practice, other different logics can be used to achieve the same result. For example, multiplication operations can be performed using values equal to the nth power of 2.

[0305] An example of the corresponding decoding process based on the VVC draft is shown below. The changed parts are shown in bold and italic fonts, and the deleted content is shown in strikethrough font. The changes to the VVC draft are shown in bold and italic fonts in Table 22. It should be noted that the same logic can have different implementation methods in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameter from the bit depth value of the current CU / Sequence.

[0306] Table 22. Rice Parameter Derivation Process

[0307]

[0308]

[0309] In another example, when the bit depth is greater than or equal to a predefined threshold (eg, 10, 11, 12, 13, 14, 15, or 16), the Rice parameter cRiceParam is obtained as follows: cRiceParam=(cRiceParam<<a)+(cRiceParam> >b)+c, where a, b and c are positive numbers, such as 1. The corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in strikethrough fonts. The changes to the VVC draft are shown in bold and italic fonts in Table 23. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters from the bit depth value of the current CU / Sequence.

[0310] Table 23. Rice parameter derivation process

[0311]

[0312]

[0313] Binary approach in residual coding for profiles exceeding 10 bits

[0314] According to the twenty-fifth aspect of the present disclosure, it is proposed to use a variable set of binary codewords in residual coding and decoding to encode and decode certain syntax elements (such as abs_remainder / dec_abs_level), and the selection is determined according to certain encoded information of the current block (such as a quantization parameter or coding bit depth associated with TB / CB and / or slice / profile) and / or according to a new flag associated with TB / CB / slice / picture / sequence level (such as extended_precision_processing_flag). Different methods can be used to obtain the variable set of binary codewords, and some exemplary methods are listed below.

[0315] First, use the same procedure as that used in the current VVC for determining the codeword of abs_remainder, but always adopt a fixed Rice parameter (e.g., 2, 3, 4, 5, 6, 7, or 8). According to some encoded / decoded information of the current block, such as the quantization parameter or the encoded / decoded bit depth associated with the TB / CB and / or the slice / profile, and / or according to the syntax elements associated with the TB / CB / slice / picture / sequence level, such as the rice_parameter_value, this fixed value may be different under different conditions. A specific example is shown in Table 24, where TH1 to TH4 are predefined thresholds satisfying (TH1 < TH2 < TH3 < TH4), and K0 to K4 are predefined Rice parameters. It should be noted that the same logic may have different implementation manners in practice. For example, certain equations or look-up tables can also be used to obtain the same Rice parameter from the bit depth value of the current CU / sequence, as shown in Table 24.

[0316] Second, fixed-length binarization.

[0317] Third, truncated Rice binarization.

[0318] Fourth, truncated binary (TB) binarization process.

[0319] Fifth, k-th order exponential Golomb binarization process (EGk).

[0320] Sixth, limited k-th order exponential Golomb binarization.

[0321] Table 24. Determination of Rice parameter based on bit depth

[0322]

[0323]

[0324] In one example, when the new flag (e.g., extended_precision_processing_flag) is equal to 1, the Rice parameter cRiceParam is fixed to n, where n is a positive number (e.g., 2, 3, 4, 5, 6, 7, or 8). The fixed value may be different under different conditions. An example of the corresponding decoding process based on the VVC draft is shown below, with the changed parts shown in bold and italic fonts, and the deleted content shown in strikethrough font. The changes to the VVC draft are shown in bold and italic fonts in Table 25.

[0325] Table 25. Rice parameter derivation process

[0326]

[0327] In another example, it is proposed that when a new flag (e.g., extended_precision_processing_flag) is equal to 1, only a fixed value is used for the rice parameter when encoding and decoding the syntax elements of abs_remainder / dec_abs_level. The corresponding decoding process based on the VVC draft is shown below, with the changes shown in bold and italic fonts, and the deleted content shown in a strikethrough font. The changes to the VVC draft are shown in bold and italic fonts in Table 26.

[0328] Table 26. Rice parameter derivation process

[0329]

[0330] In yet another example, when the bit depth is greater than or equal to a predefined threshold (e.g., 10, 11, 12, 13, 14, 15, or 16), the Rice parameter cRiceParam is fixed to n, where n is a positive number, e.g., 4, 5, 6, 7, or 8. The fixed value may be different under different conditions. An example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined threshold (e.g., 10, 11, 12, 13, 14, 15, or 16). Changes to the VVC draft are shown in bold and italic fonts in Table 27, and the changed parts are shown in bold and italic fonts, and the deleted content is shown in a strikethrough font.

[0331] Table 27. Rice parameter derivation process

[0332]

[0333]

[0334] In yet another example, it is proposed that when the bit depth is greater than a predefined threshold (e.g., 10, 11, 12, 13, 14, 15, or 16), only a fixed rice parameter value is used when encoding and decoding the syntax elements of abs_remainder / dec_abs_level. The corresponding decoding process based on the VVC draft is as follows, where TH is a predefined threshold (e.g., 10, 11, 12, 13, 14, 15, or 16), and the changed parts are shown in bold and italic fonts, and the deleted content is shown in a strikethrough font. Changes to the VVC draft are shown in bold and italic fonts in Table 28.

[0335] Table 28. Rice parameter derivation process

[0336]

[0337] Derivation of Rice parameters in residual coding

[0338] According to the twenty-sixth aspect of the present disclosure, a variable method of using rice parameters in residual coding and decoding is proposed to encode and decode certain syntax elements (such as abs_remainder / dec_abs_level), and according to certain coded information of the current block (such as quantization parameters or coding bit depth associated with TB / CB and / or slice / profile) and / or according to

[0339] A new flag (eg, extended_precision_processing_flag) associated with the TB / CB / slice / picture / sequence level determines the selection. Different methods can be used to obtain the rice parameter, some exemplary methods are listed below.

[0340] First, it is proposed to use a counter to obtain the rice parameter. The counter is determined based on the value of the coded coefficient and some coded information of the current block (e.g., component ID). In a specific example, riceParameter = counter / a, where a is a positive number, such as 4, and it maintains 2 counters (split by luma / chroma). These counters are reset to 0 at the beginning of each slice. Once decoded, if this is the first coefficient decoded in the sub-TU, the counter will be updated as follows:

[0341] if(coeffValue>=(3< <rice))counter++

[0342] if(((coeffValue<<1)<(1<<riceParameter))&&(counter> 0))counter--;

[0343] Second, it is proposed to add a shift operation to the derivation of rice parameters in VVC. The shift is determined according to the value of the coded coefficient. An example of the corresponding decoding process based on the VVC draft is shown below, where the shift is determined according to the counter of method 1, and the changed parts are shown in bold and italic fonts, and the deleted content is shown in a strikethrough font. Changes to the VVC draft are shown in bold and italic fonts in Table 29.

[0344] Table 29. Rice parameter derivation process

[0345]

[0346] First, it is proposed to add a shift operation to the derivation of rice parameters in VVC. The shift is determined according to certain coded information of the current block, for example, the codec bit depth associated with the TB / CB and / or slice profile (e.g., 14-bit profile or 16-bit profile). An example of the corresponding decoding process based on the VVC draft is shown below, where the shift is determined according to the counter of Method 1, and the changed parts are shown in bold and italic fonts and the deleted content is shown in a strikethrough font. Changes to the VVC draft are shown in bold and italic fonts in Table 30.

[0347] Table 30. Rice parameter derivation process

[0348]

[0349]

[0350] Transform skipping residual codec

[0351] According to the twenty-seventh aspect of the present disclosure, it is proposed to use a variable set of binary codewords in transform skip residual coding to encode and decode certain syntax elements (such as abs_remainder), and the selection is determined according to certain encoded information of the current block (such as a quantization parameter or coding bit depth associated with TB / CB and / or slice / profile) and / or according to a new flag associated with TB / CB / slice / picture / sequence level (such as extended_precision_processing_flag). Different methods can be used to obtain the variable set of binary codewords, and some exemplary methods are listed below.

[0352] First, use the same procedure for determining the码字 of abs_remainder as used in the current VVC, but always select a fixed rice parameter (e.g., 2, 3, 4, 5, 6, 7, or 8). Depending on certain encoded information of the current block, such as quantization parameter, frame type (e.g., I, P, or B), component ID (e.g., luminance or chrominance), color format (e.g., 420, 422, or 444), or the coding bit depth associated with TB / CB and / or slice / profile, and / or depending on syntax elements associated with the TB / CB / slice / picture / sequence level, such as rice_parameter_value, this fixed value may be different under different conditions. A specific example is shown in Table 7, where TH1 to TH4 are predefined thresholds satisfying (TH1 < TH2 < TH3 < TH4), and K0 to K4 are predefined rice parameters. It should be noted that the same logic can have different implementations in practice. For example, certain equations or look-up tables can also be used to obtain the same rice parameter from the bit depth value of the current CU / sequence, as shown in Table 7.

[0353] Second, fixed-length binarization.

[0354] Third, truncated Rice binarization.

[0355] Fourth, truncated binary (TB) binarization process.

[0356] Fifth, k-th order exponential Golomb binarization process (EGk).

[0357] Sixth, finite k-th order exponential Golomb binarization.

[0358] An example of the corresponding decoding process based on the VVC draft is shown below. The changes to the VVC draft are shown in bold and italic fonts in Table 31, and the deleted content is shown in strike-through font. It should be noted that the same logic can have different implementations in practice. For example, certain equations or look-up tables can also be used to obtain the same rice parameter.

[0359] Table 31. Rice Parameter Derivation Process

[0360]

[0361] In another example, it is proposed that when a new flag (e.g., extended_precision_processing_flag) is equal to 1, only a fixed value is used for the rice parameter when encoding and decoding the syntax element of abs_remainder. The corresponding decoding process based on the VVC draft is shown below, with the changes shown in bold and italic fonts, and the deleted content shown in a strikethrough font. The changes to the VVC draft are shown in bold and italic fonts in Table 32.

[0362] Table 32. Rice parameter derivation process

[0363]

[0364] In yet another example, when the new flag (e.g., extended_precision_processing_flag) is equal to 1, the Rice parameter cRiceParam is fixed to n, where n is a positive number (e.g., 2, 3, 4, 5, 6, 7, or 8). The fixed value may be different under different conditions. An example of a corresponding decoding process based on the VVC draft is shown below, with the changes shown in bold and italic fonts, and the deleted content shown in a strikethrough font. Changes to the VVC draft are shown in bold and italic fonts in Table 33.

[0365] Table 33. Rice parameter derivation process

[0366]

[0367] In yet another example, when the bit depth is greater than or equal to a predefined threshold (e.g., 10, 11, 12, 13, 14, 15, or 16), the Rice parameter cRiceParam is fixed to n, where n is a positive number, e.g., 4, 5, 6, 7, or 8. The fixed value may be different under different conditions. An example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined threshold (e.g., 10, 11, 12, 13, 14, 15, or 16), and the changed parts are shown in bold and italic fonts, and the deleted content is shown in a strikethrough font. Changes to the VVC draft are shown in bold and italic fonts in Table 34.

[0368] Table 34. Rice parameter derivation process

[0369]

[0370]

[0371] In yet another example, a control flag is signaled in the slice header to indicate whether signaling of Rice parameters for transform skip blocks is enabled or disabled. When the control flag is signaled as enabled, a syntax element is further signaled for each transform skip slice to indicate the Rice parameters for the slice. When the control flag is signaled as disabled (e.g., set equal to "0"), no further syntax elements are signaled at a lower level to indicate the Rice parameters for the transform skip slice, but default Rice parameters (e.g., 1) are used for all transform skip slices. An example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined value (e.g., 0, 1, 2), and the changes are shown in bold and italic fonts, and the deleted content is shown in a strikethrough font. Changes to the VVC draft are shown in bold and italic fonts in Table 35. It is worth noting that sh_ts_residual_coding_rice_index can be encoded and decoded in different ways and / or may have a maximum value. For example, u(n), using an n-bit unsigned integer, or f(n), using an n-bit (from left to right) fixed-pattern bit string written with the left bit first, can also be used to encode / decode the same syntax element.

[0372] Strip Header Syntax

[0373] Table 35. Syntax of residual codec

[0374]

[0375]

[0376] sh_ts_residual_coding_rice_flag is equal to 1 to specify that sh_ts_residual_coding_rice_index may exist in the current slice. sh_ts_residual_coding_rice_flag is equal to 0 to specify that sh_ts_residual_coding_rice_index does not exist in the current slice. When sh_ts_residual_coding_rice_flag is not present, the value of sh_ts_residual_coding_rice_flag is inferred to be equal to 0.

[0377] sh_ts_residual_coding_rice_index specifies the rice parameter used for the residual_ts_coding() syntax structure.

[0378] Table 36. Rice parameter derivation process

[0379]

[0380] In yet another example, a control flag is signaled in a sequence parameter set (or in a sequence parameter set range extension syntax) to indicate whether signaling of Rice parameters for a transform skip block is enabled or disabled. When the control flag is signaled as enabled, a syntax element is further signaled for each transform skip slice to indicate the Rice parameters for the slice. When the control flag is signaled as disabled (e.g., set to equal "0"), no further syntax elements are signaled at a lower level to indicate the Rice parameters for the transform skip slice, but a default Rice parameter (e.g., 1) is used for all transform skip slices. An example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic fonts in Table 37, and deleted content is shown in strikethrough fonts. It is worth noting that sh_ts_residual_coding_rice_idx can be encoded and decoded in different ways and / or may have a maximum value. For example, u(n), using an n-bit unsigned integer, or f(n), using an n-bit (from left to right) fixed-pattern bit string written with the left bit first, can also be used to encode / decode the same syntax element.

[0381] Sequence Parameter Set RBSP Syntax

[0382] Table 37. Syntax for residual codec

[0383]

[0384] equal to 1 specifies that sh_ts_residual_coding_rice_idx may be present in the SH syntax structure referencing the SPS. sps_ts_residual_coding_rice_present_in_sh_flag equal to 0 specifies that sh_ts_residual_coding_rice_idx is not present in the SH syntax structure referencing the SPS. When sps_ts_residual_coding_rice_present_in_sh_flag is not present, the value of sps_ts_residual_coding_rice_present_in_sh_flag is inferred to be equal to 0.

[0385] Strip Header Syntax

[0386] Table 38. Syntax for residual codec

[0387]

[0388]

[0389] Specifies the rice parameter to use for the residual_ts_coding() syntax structure.

[0390] Table 39. Rice parameter derivation process

[0391]

[0392] In yet another example, a syntax element is signaled for each transform skipped slice to indicate the Rice parameters for the slice. An example of a corresponding decoding process based on the VVC draft is illustrated below. Changes to the VVC draft are shown in bold and italic font in Table 40. It is worth noting that sh_ts_residual_coding_rice_idx can be encoded and decoded in different ways and / or may have a maximum value. For example, u(n), using an n-bit unsigned integer, or f(n), using a fixed pattern bit string of n bits (from left to right) written with the left bit first, can also be used to encode / decode the same syntax element.

[0393] Strip Header Syntax

[0394] Table 40. Syntax for residual codec

[0395]

[0396] Specifies the rice parameter used for the residual_ts_coding() syntax structure. When sh_ts_residual_coding_rice_idx is not present, the value of sh_ts_residual_coding_rice_idx is inferred to be equal to 0.

[0397] Table 41. Rice parameter derivation process

[0398]

[0399] In yet another example, a control flag is signaled in the picture parameter set range extension syntax to indicate whether signaling of Rice parameters for a transform skip block is enabled or disabled. When the control flag is signaled as enabled, a syntax element is further signaled to indicate the Rice parameters for the picture. When the control flag is signaled as disabled (e.g., set equal to "0"), no further syntax elements are signaled at a lower level to indicate the Rice parameters for the transform skip slice, but instead a default Rice parameter (e.g., 1) is used for all transform skip slices. An example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic fonts in Table 42. It is noteworthy that pps_ts_residual_coding_rice_idx can be encoded and decoded in different ways and / or may have a maximum value. For example, u(n), using an n-bit unsigned integer, or f(n), using an n-bit (from left to right) fixed-pattern bit string written with the left bit first, can also be used to encode / decode the same syntax element.

[0400] Picture Parameter Set Range Extension Syntax

[0401] Table 42. Syntax for residual codec

[0402]

[0403] =1 specifies that pps_ts_residual_coding_rice_index may be present in the current picture. pps_ts_residual_coding_rice_flag equal to 0 specifies that pps_ts_residual_coding_rice_idx is not present in the current picture. When pps_ts_residual_coding_rice_flag is not present, the value of pps_ts_residual_coding_rice_flag is inferred to be equal to 0.

[0404] Specifies the rice parameter to use for the residual_ts_coding() syntax structure.

[0405] Table 43. Rice parameter derivation process

[0406]

[0407]

[0408] In yet another example, it is proposed to encode and decode the syntax element abs_remainder using only changing rice parameters. The values ​​of the applied rice parameters can be determined based on certain encoded information of the current block, such as block size, quantization parameter, bit depth, transform type, etc. In a specific embodiment, it is proposed to adjust the rice parameters based on the codec bit depth and quantization parameter applicable to a CU. The corresponding decoding process based on the VVC draft is shown as follows, and the changes to the VVC draft are shown in bold and italic fonts in Table 44, and the deleted content is shown in a strikethrough font. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0409] Table 44. Rice parameter derivation process

[0410]

[0411]

[0412]

[0413] In yet another example, an example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined threshold (e.g., 33 or 34). Changes to the VVC draft are shown in bold and italic fonts in Table 45, and deleted content is shown in a strikethrough font. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0414] Table 45. Rice parameter derivation process

[0415]

[0416] In yet another example, an example of a corresponding decoding process based on the VVC draft is as follows, where TH A and TH B is a predefined threshold (e.g., TH A =8, TH B =33 or 34). Changes to the VVC draft are shown in bold and italic fonts in Table 46, and deleted content is shown in strikethrough fonts. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0417] Table 46. Rice parameter derivation process

[0418]

[0419]

[0420] In yet another example, it is proposed that when a new flag (e.g., extended_precision_processing_flag) is equal to 1, only the changed rice parameters are used to encode and decode the syntax elements of abs_remainder. The changed value can be determined based on certain encoded information of the current block, such as block size, quantization parameter, bit depth, transform type, etc. In a specific embodiment, it is proposed to adjust the rice parameters based on the codec bit depth and quantization parameter applicable to a CU. The corresponding decoding process based on the VVC draft is shown as follows. The changes to the VVC draft are shown in bold and italic fonts in Table 47. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0421] Table 47. Rice parameter derivation process

[0422]

[0423]

[0424] In yet another example, an example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined threshold (e.g., 18, 19). Changes to the VVC draft are shown in bold and italic fonts in Table 48. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0425] Table 48. Rice parameter derivation process

[0426]

[0427] In yet another example, an example of a corresponding decoding process based on the VVC draft is as follows, where TH A and TH B is a predefined threshold (e.g., TH A =8, TH B =18 or 19). The changes to the VVC draft are shown in bold and italic fonts in Table 49. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0428] Table 49. Rice parameter derivation process

[0429]

[0430]

[0431] Fig.16 A method for video encoding is shown. For example, the method can be applied to an encoder.

[0432] In step 1610, the encoder may receive a video input. For example, the video input may be a live stream.

[0433] In step 1612, the encoder may obtain a quantization parameter based on the video input. For example, the quantization parameter may be calculated by a quantization unit in the encoder.

[0434] In step 1614, the encoder may obtain a rice parameter based on at least one predefined threshold, the codec bit depth, and the quantization parameter. For example, the rice parameter is used to signal the syntax of abs_remainder and dec_abs_level.

[0435] In step 1616, the encoder may entropy encode the video bitstream based on the rice parameters. For example, the video bitstream may be entropy encoded to generate a compressed video bitstream.

[0436] In yet another example, it is proposed that when the bit depth is greater than 10, only fixed values ​​(e.g., 2, 3, 4, 5, 6, 7, or 8) are used for the rice parameter when encoding and decoding the syntax element of abs_remainder. Depending on certain encoded information of the current block (e.g., quantization parameter), the fixed value may be different under different conditions. An example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined threshold (e.g., 18, 19). Changes to the VVC draft are shown in bold and italic fonts in Table 50. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameter.

[0437] Table 50. Rice parameter derivation process

[0438]

[0439]

[0440] In yet another example, an example of a corresponding decoding process based on the VVC draft is as follows, where TH A and TH B is a predefined threshold (e.g., TH A =8, TH B=18 or 19). The changes to the VVC draft are shown in bold and italic fonts in Table 51. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0441] Table 51. Rice parameter derivation process

[0442]

[0443] In yet another example, an example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined threshold (e.g., 33 or 34). Changes to the VVC draft are shown in bold and italic fonts in Table 52. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0444] Table 52. Rice parameter derivation process

[0445]

[0446] In yet another example, an example of a corresponding decoding process based on the VVC draft is as follows, where TH A and TH B is a predefined threshold (e.g., TH A =8, TH B =33 or 34). The changes to the VVC draft are shown in bold and italic fonts in Table 53. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0447] Table 53. Rice parameter derivation process

[0448]

[0449]

[0450] It is worth mentioning that in the above diagram, the equations used to calculate specific rice parameters are only used as examples to illustrate the proposed ideas. For those who are familiar with modern video coding and decoding technology, other mapping functions (or equivalent mapping equations) are already applicable to the proposed ideas (i.e., determining the rice parameters of the transform skip mode based on the codec bits and the applied quantization parameters). At the same time, it should also be mentioned that in the current VVC design, the value of the applied quantization parameter is allowed to change at the coding block group level. Therefore, the proposed rice parameter adjustment scheme can flexibly adjust the rice parameters of the transform skip mode at the coding block group level.

[0451] Signaling information for conventional residual codec and transform skip residual codec

[0452] According to the twenty-eighth aspect of the present disclosure, it is proposed to use a signal to represent the rice parameters of the binary codewords for encoding and decoding certain syntax elements (such as abs_remainder in transform skip residual coding, and a shift parameter and an offset parameter for obtaining the rice parameter for abs_remainder / dec_abs_level in conventional residual coding), and determine whether to use a signal according to certain encoded information of the current block (such as a quantization parameter or a coding bit depth associated with the TB / CB and / or slice / profile) and / or according to a new flag associated with the TB / CB / slice / picture / sequence level (such as sps_residual_coding_info_present_in_sh_flag).

[0453] In one example, a control flag is signaled in the slice header to indicate whether signaling of Rice parameters for a transform skip block and signaling of shift parameters and / or offset parameters for deriving Rice parameters in the transform block is enabled or disabled. When the control flag is signaled as enabled, one syntax element is further signaled for each transform skip slice to indicate the Rice parameters for the slice, and two syntax elements are further signaled for each transform slice to indicate the shift parameters and / or offset parameters for deriving Rice parameters for the slice. When the control flag is signaled as disabled (e.g., set equal to "0"), no further syntax elements are signaled at a lower level to indicate Rice parameters for the transform skip slice, and instead default Rice parameters (e.g., 1) are used for all transform skip slices, and no further syntax elements are signaled at a lower level to indicate shift parameters and offset parameters for deriving Rice parameters for the transform slice, and instead default shift parameters and / or offset parameters (e.g., 0) are used for all transform slices. An example of the corresponding decoding process based on the VVC draft is shown below, where TH is a predefined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic fonts in Table 54. It is worth noting that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, and sh_ts_residual_coding_rice_index can be encoded and decoded in different ways and / or may have a maximum value. For example, u(n), using an n-bit unsigned integer, or f(n), using a fixed pattern bit string of n bits (from left to right) written with the left bit first, can also be used to encode / decode the same syntax element.

[0454] Fig.17 A method for video decoding is shown. For example, the method can be applied to an encoder.

[0455] In step 1710, an encoder may receive a video input.

[0456] In step 1712, the encoder may signal rice parameters for binary codewords of codec syntax elements. The codec syntax elements may include abs_remainder in transform skip residual codec.

[0457] In step 1714, the encoder may entropy encode the video bitstream based on the rice parameters and the video input.

[0458] Strip Header Syntax

[0459] Table 54. Syntax for residual codec

[0460]

[0461] Equal to 1 specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, and sh_residual_coding_rice_index may exist in the current slice. sh_residual_coding_rice_flag equal to 0 specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, and sh_residual_coding_rice_index do not exist in the current slice.

[0462] Specifies the shift parameter used in the Rice parameter derivation process for abs_remainder[] and dec_abs_level[]. When sh_residual_coding_rice_shift is not present, the value of sh_residual_coding_rice_shift is inferred to be equal to 0.

[0463] Specifies the offset parameter used in the Rice parameter derivation process for abs_remainder[] and dec_abs_level[]. When sh_residual_coding_rice_offset is not present, the value of sh_residual_coding_rice_offset is inferred to be equal to 0.

[0464] Specifies the rice parameter for the residual_ts_coding() syntax structure. When sh_ts_residual_coding_rice_index does not exist, the value of sh_ts_residual_coding_rice_index is inferred to be equal to 0.

[0465] Table 55. Rice parameter derivation process

[0466]

[0467]

[0468] Table 56. Rice parameter derivation process

[0469]

[0470]

[0471] In another example, a control flag is signaled in a sequence parameter set (or in a sequence parameter set range extension syntax) to indicate whether signaling of Rice parameters for a transform skip block and signaling of shift parameters and / or offset parameters for deriving the rice parameters in the transform block are enabled or disabled. When the control flag is signaled as enabled, one syntax element is further signaled for each transform skip slice to indicate the Rice parameters for the slice, and two syntax elements are further signaled for each transform slice to indicate the shift parameters and / or offset parameters for deriving the Rice parameters for the slice. When the control flag is signaled as disabled (e.g., set equal to "0"), no further syntax elements are signaled at a lower level to indicate the Rice parameters for the transform skip slice, and instead a default Rice parameter (e.g., 1) is used for all transform skip slices, and no further syntax elements are signaled at a lower level to indicate the shift parameters and / or offset parameters for deriving the Rice parameters for the transform slice, and instead a default shift parameter and / or offset parameter (e.g., 0) is used for all transform slices. An example of the corresponding decoding process based on the VVC draft is shown below, where TH is a predefined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic fonts in Table 57. It is worth noting that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, and sh_ts_residual_coding_rice_idx can be encoded and decoded in different ways and / or may have a maximum value. For example, u(n), using an n-bit unsigned integer, or f(n), using a fixed pattern bit string of n bits (from left to right) written with the left bit first, can also be used to encode / decode the same syntax element.

[0472] Sequence Parameter Set RBSP Syntax

[0473] Table 57. Syntax for residual codec

[0474]

[0475] equal to 1 specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, and sh_ts_residual_coding_rice_idx may be present in the SH syntax structures referencing the SPS. sps_residual_coding_info_present_in_sh_flag equal to 0 specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, and sh_ts_residual_coding_rice_idx are not present in the SH syntax structures referencing the SPS. When sps_residual_coding_info_present_in_sh_flag is not present, the value of sps_residual_coding_info_present_in_sh_flag is inferred to be equal to 0.

[0476] Strip Header Syntax

[0477] Table 58. Syntax for residual codec

[0478]

[0479] Specifies the shift parameter used in the Rice parameter derivation process for abs_remainder[] and dec_abs_level[]. When sh_residual_coding_rice_shift is not present, the value of sh_residual_coding_rice_shift is inferred to be equal to 0.

[0480] Specifies the offset parameter used in the Rice parameter derivation process for abs_remainder[] and dec_abs_level[]. When sh_residual_coding_rice_offset is not present, the value of sh_residual_coding_rice_offset is inferred to be equal to 0.

[0481] Specifies the rice parameter for the residual_ts_coding() syntax structure. When sh_ts_residual_coding_rice_index does not exist, the value of sh_ts_residual_coding_rice_index is inferred to be equal to 0.

[0482] Table 59. Rice parameter derivation process

[0483]

[0484] Table 60. Rice parameter derivation process

[0485]

[0486]

[0487] In yet another example, one syntax element is signaled for each transform skipped slice to indicate the Rice parameters for the slice, and two syntax elements are signaled for each transform slice to indicate the shift parameters and / or offset parameters used to obtain the Rice parameters for the slice. An example of a corresponding decoding process based on the VVC draft is illustrated below. Changes to the VVC draft are shown in bold and italic fonts in Table 61. It is worth noting that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, and sh_ts_residual_coding_rice_idx can be encoded and decoded in different ways and / or may have a maximum value. For example, u(n), using an n-bit unsigned integer, or f(n), using a fixed pattern bit string of n bits (from left to right) written with the left bit first, can also be used to encode / decode the same syntax element.

[0488] Strip Header Syntax

[0489] Table 61. Syntax for residual codec

[0490]

[0491] Specifies the rice parameter used for the residual_ts_coding() syntax structure. When sh_ts_residual_coding_rice_idx is not present, the value of sh_ts_residual_coding_rice_idx is inferred to be equal to 0.

[0492] Specifies the offset parameter used in the Rice parameter derivation process for abs_remainder[] and dec_abs_level[]. When sh_residual_coding_rice_offset is not present, the value of sh_residual_coding_rice_offset is inferred to be equal to 0.

[0493] Specifies the rice parameter for the residual_ts_coding() syntax structure. When sh_ts_residual_coding_rice_index does not exist, the value of sh_ts_residual_coding_rice_index is inferred to be equal to 0.

[0494] Table 62. Rice parameter derivation process

[0495]

[0496]

[0497] Table 63. Rice parameter derivation process

[0498]

[0499]

[0500] In yet another example, a control flag is signaled in the picture parameter set range extension syntax to indicate whether signaling of Rice parameters for a transform skip block and signaling of shift parameters and / or offset parameters for deriving the rice parameters in the transform block is enabled or disabled. When the control flag is signaled as enabled, one syntax element is further signaled to indicate Rice parameters for transform skip residual codec for the picture, and two syntax elements are further signaled for normal residual codec to indicate shift parameters and / or offset parameters for deriving Rice parameters for the picture. When the control flag is signaled as disabled (e.g., set equal to "0"), no further syntax elements are signaled at a lower level to indicate the Rice parameters for transform skip residual coding, but default Rice parameters (e.g., 1) are used for all transform skip residual coding, and no further syntax elements are signaled at a lower level to indicate the shift parameters and / or offset parameters used to obtain Rice parameters for normal residual coding, but default shift parameters and / or offset parameters (e.g., 0) are used for all normal residual coding. An example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic fonts in Table 64. It is worth noting that pps_residual_coding_rice_shift, pps_residual_coding_rice_offset, and pps_ts_residual_coding_rice_idx can be coded and decoded in different ways and / or may have maximum values. For example, u(n), using an n-bit unsigned integer, or f(n), using an n-bit (from left to right) fixed-pattern bit string written with the left bit first, can also be used to encode / decode the same syntax element.

[0501] Picture Parameter Set Range Extension Syntax

[0502] Table 64. Syntax for residual codec

[0503]

[0504]

[0505] =1 specifies that pps_residual_coding_rice_shift, pps_residual_coding_rice_offset, and pps_ts_residual_coding_rice_index may be present in the current picture. pps_residual_coding_info_flag equal to 0 specifies that pps_residual_coding_rice_shift, pps_residual_coding_rice_offset, and pps_ts_residual_coding_rice_idx are not present in the current picture. When pps_residual_coding_info_flag is not present, the value of pps_residual_coding_info_flag is inferred to be equal to 0.

[0506] Specifies the shift parameter used in the Rice parameter derivation process for abs_remainder[] and dec_abs_level[]. When pps_residual_coding_rice_shift is not present, the value of pps_residual_coding_rice_shift is inferred to be equal to 0.

[0507] Specifies the offset parameter used in the Rice parameter derivation process for abs_remainder[] and dec_abs_level[]. When pps_residual_coding_rice_offset is not present, the value of pps_residual_coding_rice_offset is inferred to be equal to 0.

[0508] Specifies the rice parameter to be used for the residual_ts_coding() syntax structure. When pps_ts_residual_coding_rice_index does not exist, the value of pps_ts_residual_coding_rice_index is inferred to be equal to 0.

[0509] Table 65. Rice parameter derivation process

[0510]

[0511]

[0512] Table 66. Rice parameter derivation process

[0513]

[0514]

[0515] According to the twenty-ninth aspect of the present disclosure, it is proposed to use different rice parameters to encode and decode certain syntax elements (such as abs_remainder in transform skip residual coding, shift parameters and offset parameters used to obtain rice parameters for abs_remainder / dec_abs_level in conventional residual coding), and determine which parameter to use based on certain encoded information of the current block (such as quantization parameters or coding bit depth associated with TB / CB and / or slice / profile) and / or based on a new flag associated with TB / CB / slice / picture / sequence level (such as sps_residual_coding_info_present_in_sh_flag).

[0516] In one example, a control flag is signaled in a slice header to indicate whether a derivation process of Rice parameters for a transform skip block and a derivation process of shift parameters and / or offset parameters for the Rice parameters in the transform block is enabled or disabled. When the control flag is signaled as enabled, the Rice parameters may be different under different conditions based on certain encoded information of the current block (e.g., quantization parameter and bit depth). And the shift parameters and / or offset parameters used to obtain the Rice parameters in the conventional residual codec may be different under different conditions based on certain encoded information of the current block (e.g., quantization parameter and bit depth). When the control flag is signaled as disabled (e.g., set to equal "0"), default Rice parameters (e.g., 1) are used for all transform skip slices, and default shift parameters and / or offset parameters (e.g., 0) are used for all transform slices. An example of a corresponding decoding process based on the VVC draft is shown below, where TH A and TH B is a predefined threshold (e.g., TH A =8, TH B =18 or 19). The changes to the VVC draft are shown in bold and italic fonts in Table 67. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0517] Strip Header Syntax

[0518] Table 67. Syntax for residual codec

[0519]

[0520] sh_residual_coding_rice_flag is equal to 0 and specifies that the bit-depth-dependent Rice parameter derivation process is not used in the current slice.

[0521] Table 68. Rice parameter derivation process

[0522]

[0523] Table 69. Rice parameter derivation process

[0524]

[0525]

[0526] In yet another example, an example of a corresponding decoding process based on the VVC draft is shown below, where TH is a predefined threshold (e.g., 18, 19). Changes to the VVC draft are shown in bold and italic fonts in Table 70. It is worth noting that the same logic can be implemented differently in practice. For example, certain equations or lookup tables can also be used to obtain the same rice parameters.

[0527] Table 70. Rice parameter derivation process

[0528]

[0529]

[0530] According to another aspect of the present disclosure, it is proposed to add constraints marked by the values ​​of the above-mentioned codec tools to provide the same general constraint control as other constraints in the general constraint information.

[0531] For example, Equal to 1 specifies that sh_ts_residual_coding_rice_idx may be present in the SH syntax structure referencing the SPS. =0 specifies that sh_ts_residual_coding_rice_idx does not exist in the SH syntax structure that references the SPS. According to the present disclosure, it is proposed to add a syntax element in the general constraint information syntax To provide the same general constraint control as other flags. The following diagram illustrates an example of the decoding process for the VVC draft. Changes to the VVC draft are highlighted.

[0532] Additions are highlighted in italic font.

[0533]

[0534] Fig.19 A method for video coding according to an example of the present disclosure is shown. For example, the method can be applied to a decoder. In step 1902, the decoder can receive a sequence parameter set (SPS) residual coding flag, the SPS residual coding flag indicating whether there is an index sh_ts_residual_coding_rice_idx in the SH syntax structure referencing the SPS.

[0535] In step 1904, in response to determining that the value of the SPS residual coding flag is equal to 1, the decoder may determine that sh_ts_residual_coding_rice_idx exists in a slice header (SH) syntax structure referencing the SPS.

[0536] In step 1906 , in response to determining that the value of the residual coding flag is equal to 0, the decoder may determine that sh_ts_residual_coding_rice_idx does not exist in the SH syntax structure referencing the SPS.

[0537] In another example, Equal to 1 specifies that pps_ts_residual_coding_rice_index may exist in the current picture. Equal to 0 specifies that there is no pps_ts_residual_coding_rice_idx in the current picture. According to the present disclosure, it is proposed to add a syntax element in the general constraint information syntax To provide the same general constraint control as other flags. The following diagram illustrates an example of the decoding process for the VVC draft. The changes to the VVC draft are highlighted. The added parts are highlighted in italic font.

[0538]

[0539] In yet another example, Equal to 1 indicates that the Rice parameters used for binarization of abs_remaining[] and dec_abs_level can be obtained by the formula.

[0540] The formula may include: RiceParam=RiceParam+shiftVal and shiftVal=(localSumAbs <Tx[0])?Rx[0]:((localSumAbs<Tx[1])?Rx[1]:((localSumAbs<Tx[2])?Rx[2]:((localSumAbs<Tx[3])?Rx[3]:Rx[4]))),

[0541] Wherein, the lists Tx[] and Rx[] are specified as follows: Tx[] = {32, 128, 512, 2048} >> (1523) Rx[] = {0, 2, 4, 6, 8}

[0542] Fig. 20 A method for video coding and decoding according to an example of the present disclosure is shown. For example, the method can be applied to a decoder. In step 2002, the decoder can receive a sequence parameter set (SPS) adaptive enable flag, the SPS adaptive enable flag indicating whether to use an alternative rice parameter derivation for binarization of syntax abs_remaining and dec_abs_level.

[0543] In step 2004, in response to determining that the value of the SPS adaptation enabled flag is equal to 1, the decoder may determine to use an alternative rice parameter derivation for binarization of the syntax.

[0544] In step 2006, in response to determining that the value of the SPS adaptation enabled flag is equal to 0, the decoder may determine not to use alternative rice parameter derivation for binarization of syntax.

[0545] According to the present disclosure, it is proposed to add a syntax element in the general constraint information syntax To provide the same general constraint control as other flags. The following diagram illustrates an example of the decoding process for the VVC draft. The changes to the VVC draft are highlighted. The added parts are highlighted in italic font.

[0546]

[0547] Fig.21 A method for video coding and decoding according to an example of the present disclosure is shown. For example, the method can be applied to a decoder. In step 2102, the decoder can receive a residual codec rice constraint flag to provide a general constraint control for other flags.

[0548] In step 2104 , in response to determining that the value of the residual coding rice constraint flag is equal to 1, the decoder may determine that the values ​​of other flags are equal to 0.

[0549] Since the proposed rice parameter adaptation scheme is only used for transform skip residual coding (TSRC), the proposed method can only take effect when TSRC is enabled. Accordingly, in one or more embodiments of the present disclosure, it is proposed to add a bitstream constraint requiring that when the transform skip mode is disabled from the general constraint information level, for example, when the value of gci_no_transform_skip_constraint_flag is set to one, the value of gci_no_rice_adaptation_constraint_flag is one.

[0550] The above method can be implemented using a device including one or more circuits, including an application specific integrated circuit (ASIC), a digital signal processor (DSP), a digital signal processing device (DSPD), a programmable logic device (PLD), a field programmable gate array (FPGA), a controller, a microcontroller, a microprocessor or other electronic components. The device can use these circuits in combination with other hardware or software components for performing the above method. Each module, submodule, unit or subunit disclosed above can be implemented at least in part using the one or more circuits.

[0551] Other examples of the present disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. This application is intended to cover any changes, uses or adaptations of the disclosure made in accordance with its general principles, including deviations from the present disclosure within known or customary practices in the art. It is intended that the specification and examples be considered exemplary only.

[0552] It should be understood that the present disclosure is not limited to the exact examples described above and shown in the accompanying drawings, and that various modifications and changes may be made without departing from the scope thereof.

[0553] Fig.18 A computing environment 1810 coupled to a user interface 1860 is shown. The computing environment 1810 may be part of a data processing server. The computing environment 1810 includes a processor 1820, a memory 1840, and an I / O interface 1850.

[0554] The processor 1820 generally controls the overall operation of the computing environment 1810, such as operations associated with display, data acquisition, data communication, and image processing. The processor 1820 may include one or more processors to execute instructions to perform all or some steps in the above method. Moreover, the processor 1820 may include one or more modules that facilitate the interaction between the processor 1820 and other components. The processor may be a central processing unit (CPU), a microprocessor, a single-chip microcomputer, a GPU, etc.

[0555] The memory 1840 is configured to store various types of data to support the operation of the computing environment 1810. The memory 1840 may include predetermined software 1842. Examples of such data include instructions for any application or method operating on the computing environment 1810, video data sets, image data, etc. The memory 1840 may be implemented using any type of volatile or non-volatile memory device or combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk, or optical disk.

[0556] The I / O interface 1850 provides an interface between the processor 1820 and peripheral interface modules such as a keyboard, a click wheel, buttons, etc. The buttons may include, but are not limited to, a home button, a start scan button, and a stop scan button. The I / O interface 1850 may be coupled to an encoder and a decoder.

[0557] In some embodiments, a non-transitory computer-readable storage medium is also provided, which includes a plurality of programs, which are included in the memory 1840 and can be executed by the processor 1820 in the computing environment 1810 to perform the above method. For example, the non-transitory computer-readable storage medium can be a ROM, RAM, CD-ROM, tape, floppy disk, optical data storage device, etc.

[0558] The non-transitory computer-readable storage medium stores a plurality of programs for execution by a computing device having one or more processors, wherein the plurality of programs, when executed by the one or more processors, causes the computing device to perform the above-mentioned motion prediction method.

[0559] In some embodiments, the computing environment 1810 may be implemented using one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), graphics processing units (GPUs), controllers, microcontrollers, microprocessors, or other electronic components to perform the above methods.

[0560] The description of the present disclosure has been presented for illustrative purposes and is not intended to be exhaustive or limited to the present disclosure. Many modifications, variations, and alternative embodiments will be apparent to those of ordinary skill in the art having the benefit of the teachings presented in the foregoing description and the associated drawings.

[0561] Examples are chosen and described in order to explain the principles of the present disclosure and to enable other persons skilled in the art to understand the various embodiments of the present disclosure and to best utilize the basic principles and various embodiments with various modifications suitable for the specific use contemplated. Therefore, it should be understood that the scope of the present disclosure should not be limited to the specific examples of the disclosed embodiments, and modifications and other embodiments are intended to be included within the scope of the present disclosure.

Claims

1. A method for video encoding, comprising: Generate a sequence parameter set SPS residual codec flag, wherein the SPS residual codec flag indicates whether there is a syntax element specifying a rice parameter used for transform skip residual codec syntax structure in a slice header SH syntax structure referencing the SPS; When the syntax element exists in the SH syntax structure referencing the SPS, setting the value of the SPS residual codec flag to 1; as well as When the syntax element does not exist in the SH syntax structure referencing the SPS, setting the value of the SPS residual codec flag to be equal to 0; When the value of the SPS residual codec flag is equal to 0, the value of the transform skip residual codec rice constraint flag is set to be equal to 1.

2. The method for video encoding according to claim 1, further comprising: Generate a picture parameter set PPS residual coding rice flag to indicate whether there is an index pps_ts_residual_coding_rice_index in the picture parameter set of the video, wherein the pps_ts_residual_coding_rice_index specifies a rice parameter for transforming a skip residual coding syntax structure; When the pps_ts_residual_coding_rice_index exists in the picture parameter set, setting the value of the PPS residual coding rice flag to 1; and When the pps_ts_residual_coding_rice_index does not exist in the picture parameter set, the value of the PPS residual coding rice flag is set to be equal to 0.

3. A method for video encoding, comprising: generating a sequence parameter set SPS adaptation enable flag, the SPS adaptation enable flag indicating whether to use an alternative rice parameter derivation for binarization of syntax abs_remaining and dec_abs_level, wherein the alternative rice parameter derivation includes adding a shift value to the rice parameter; When using the alternative rice parameter derivation for binarization of syntax, setting the value of the SPS adaptation enabled flag equal to 1; as well as When the alternative rice parameter derivation for binarization of syntax is not used, the value of the SPS adaptation enabling flag is set equal to 0.

4. The method for video encoding as claimed in claim 3, further comprising: Generate a picture parameter set PPS residual coding rice flag to indicate whether there is an index pps_ts_residual_coding_rice_index in the picture parameter set of the video, wherein the pps_ts_residual_coding_rice_index specifies a rice parameter for transforming a skip residual coding syntax structure; When the pps_ts_residual_coding_rice_index exists in the picture parameter set, setting the value of the PPS residual coding rice flag to 1; and When the pps_ts_residual_coding_rice_index does not exist in the picture parameter set, the value of the PPS residual coding rice flag is set to be equal to 0.

5. A method for video encoding, comprising: Generate a residual codec rice constraint flag to provide a general constraint control for at least one of the other flags, wherein the residual codec rice constraint flag includes at least one of the following flags: Transform skip residual codec rice constraint flag to provide common constraint control for one or more of SPS residual codec flag, PPS residual codec rice flag, The SPS residual codec flag indicates whether there is a syntax element specifying a rice parameter used for a transform skip residual codec syntax structure in the slice header SH syntax structure referencing the SPS, and the PPS residual codec rice flag indicates whether there is a syntax element specifying a rice parameter used for a transform skip residual codec syntax structure in the picture parameter set; and Residual codec rice adaptation constraint flag to provide general constraint control for SPS adaptation enable flag. The SPS adaptation enable flag indicates whether to use an alternative rice parameter derivation for binarization of syntax abs_remaining and dec_abs_level, wherein the alternative rice parameter derivation includes adding a shift value to the rice parameter.

6. The method for video encoding according to claim 5, wherein: The residual codec rice constraint flag is the transform skip residual codec rice constraint flag, and the method further includes: When the value of the SPS residual codec flag is equal to 0, the value of the transform skip residual codec rice constraint flag is set to be equal to 1.

7. The method for video encoding according to claim 5, wherein: The residual codec rice constraint flag is the transform skip residual codec rice constraint flag, and the method further includes: When the value of the PPS residual codec rice flag is equal to 0, the value of the transform skip residual codec rice constraint flag is set to be equal to 1.

8. The method for video encoding according to claim 5, wherein: The residual codec rice constraint flag is the residual codec rice adaptive constraint flag, and the method further includes: When the value of the SPS adaptive enabling flag is equal to 0, the value of the residual coding rice adaptive constraint flag is set to be equal to 1.

9. An apparatus for video encoding, comprising: one or more processors; as well as A memory configured to store instructions executable by the one or more processors; wherein, when executing the instructions, the one or more processors are configured to perform the method as described in any one of claims 1 to 8 to generate a video bitstream, and store the generated video bitstream in the memory.

10. A non-transitory computer-readable storage medium for video encoding, wherein the non-transitory computer-readable storage medium stores computer-executable instructions, which, when executed by one or more computer processors, cause the one or more computer processors to perform the encoding method according to any one of claims 1 to 8 to generate a video bitstream.

11. A computer program product, comprising instructions, wherein when the instructions are executed by a computing device, the computing device implements the encoding method according to any one of claims 1 to 8 to generate a video bit stream.

12. A computer-readable storage medium storing instructions which, when executed by a computing device having one or more processors, cause the one or more processors to perform the encoding method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Residual and coefficient coding for video coding

    CN116420353A