Residual and coefficient coding for video coding
By implementing specific flag determinations, alternative Rice parameter derivations, and dependent scalar quantization, the method enhances video coding efficiency and compression performance in video coding standards like HEVC and VVC.
Patent Information
- Application Number
- JP2025104879
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-01-04
- Filing Date
- 2025-06-20
- Publication Date
- 2025-09-17
AI Technical Summary
Existing video coding standards like HEVC and VVC face challenges in achieving optimal compression efficiency and bitrate reduction while maintaining video quality, particularly in handling residual and coefficient coding.
The method involves determining the presence or absence of specific flags in the syntax structure for residual coding and using alternative Rice parameter derivations for binarization, along with separate coding methods for transform coefficients and skip coefficients, and employing dependent scalar quantization to enhance compression efficiency.
This approach improves video coding efficiency by optimizing residual and coefficient coding, leading to better compression performance and reduced bitrates without compromising video quality.
Smart Images

Figure 2025134888000001_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to Provisional Application No. 63 / 133,765, filed January 4, 2021, the entire contents of which are incorporated herein by reference for all purposes.
[0002] This disclosure relates to video coding and compression. More particularly, this disclosure relates to improving and simplifying residual and coefficient coding for video coding. [Background technology]
[0003]
[0003] Various video coding techniques may be used to compress video data. Video coding is performed according to one or more video coding standards. For example, video coding standards include Versatile Video Coding (VVC), Joint Search and Test Model (JEM), High Efficiency Video Coding (H.265 / HEVC), Advanced Video Coding (H.264 / AVC), Moving Picture Experts Group (MPEG) coding, etc. Video coding generally utilizes prediction methods (e.g., inter-prediction, intra-prediction, etc.) that exploit redundancy present in a video image or sequence. An important goal of video coding techniques is to compress video data into a format that uses a lower bitrate while avoiding or minimizing degradation of video quality. Summary of the Invention
[0004]
[0004] Examples of this disclosure provide methods and apparatus for video coding.
[0005] According to a first aspect of the present disclosure, a method for video coding is provided, which may include receiving, by a decoder, a sequence parameter set (SPS) residual coding flag indicating whether an index sh_ts_residual_coding_rice_idx is present in an SH syntax structure that references the SPS, determining, in response to determining that the value of the SPS residual coding flag is equal to 1, that sh_ts_residual_coding_rice_idx is present in a slice head (SH) syntax structure that references the SPS, and determining, in response to determining that the value of the residual coding flag is equal to 0, that sh_ts_residual_coding_rice_idx is not present in the SH syntax structure that references the SPS.
[0006] According to a second 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) adaptable flag indicating whether an alternative Rice parameter derivation for binarization of syntaxes abs_remaining and dec_abs_level is used, determining, in response to determining that the value of the SPS adaptable flag is equal to 1, that the alternative Rice parameter derivation for binarization of the syntax is used, and determining, in response to determining that the value of the SPS adaptable flag is equal to 0, that the alternative Rice parameter derivation for binarization of the syntax is not used.
[0007] According to a third aspect of the present disclosure, there is provided a method for video coding, the method comprising: The method may include receiving a residual coding Rice constraint flag, and in response to determining that the value of the residual coding Rice constraint flag is equal to one, determining that the values of other flags are equal to zero.
[0008]
[0008] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not intended to be restrictive of the present disclosure.
[0009]
[0009] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate examples consistent with the present disclosure and, together with the description, serve to explain the principles of the disclosure. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a block diagram of an encoder according to an example of the present disclosure. [Figure 2]
[0011] FIG. 2 is a block diagram of a decoder according to an example of the present disclosure. [Figure 3A]
[0012] FIG. 10 illustrates block division in a multi-tree structure according to an example of the present disclosure. [Figure 3B]
[0013] FIG. 10 illustrates block division in a multi-tree structure according to an example of the present disclosure. [Figure 3C]
[0014] FIG. 10 illustrates block division in a multi-tree structure according to an example of the present disclosure. [Figure 3D]
[0015] FIG. 10 illustrates block division in a multi-tree structure according to an example of the present disclosure. [Figure 3E]
[0016] FIG. 10 illustrates block division in a multi-tree structure according to an example of the present disclosure. [Figure 4]
[0017] FIG. 1 illustrates a picture having 18×12 luma CTUs according to an example of the present disclosure. [Figure 5]
[0018] FIG. 1 is a diagram of a picture having 18×12 luma CTUs according to an example of the present disclosure. [Figure 6A]
[0019] FIG. 1 illustrates an example of disallowed ternary tree (TT) and binary tree (BT) splits in a VTM, according to an example of the present disclosure. [Figure 6B]
[0020] FIG. 1 illustrates an example of disallowed TT and BT splits in a VTM according to an example of the present disclosure. [Figure 6C]
[0021] FIG. 1 illustrates an example of disallowed TT and BT splits in a VTM according to an example of the present disclosure. [Figure 6D]
[0022] FIG. 1 illustrates an example of disallowed TT and BT splits in a VTM according to an example of the present disclosure. [Figure 6E]
[0023] FIG. 1 illustrates an example of disallowed TT and BT splits in a VTM according to an example of the present disclosure. [Figure 6F]
[0024] FIG. 1 illustrates an example of disallowed TT and BT splits in a VTM according to an example of the present disclosure. [Figure 6G]
[0025] FIG. 1 illustrates an example of disallowed TT and BT splits in a VTM according to an example of the present disclosure. [Figure 6H]
[0026] FIG. 1 illustrates an example of disallowed TT and BT splits in a VTM according to an example of the present disclosure. [Figure 7]
[0027] FIG. 1 illustrates a residual coding structure for a transform block according to an example of the present disclosure. [Figure 8]
[0028] FIG. 10 illustrates a residual coding structure for a transform skip block according to an example of the present disclosure. [Figure 9]
[0029] FIG. 2 illustrates two scalar quantizers according to an example of the present disclosure. [Figure 10A]
[0030] FIG. 10 illustrates a state transition according to an example of the present disclosure. [Figure 10B]
[0031] FIG. 10 illustrates quantizer selection according to an example of the present disclosure. [Figure 11]
[0032] FIG. 1 is a diagram of a template used to select a probabilistic model, according to the present disclosure. [Figure 12]
[0033] FIG. 2 illustrates an example of a block coded in palette mode, in accordance with the present disclosure. [Figure 13]
[0034] FIG. 1 illustrates the use of a palette predictor to transmit palette entries in accordance with the present disclosure. [Figure 14A]
[0035] FIG. 1 illustrates a horizontal traverse scan according to the present disclosure. [Figure 14B]
[0036] FIG. 1 illustrates a vertical traverse scan according to the present disclosure. [Figure 15A]
[0037] FIG. 10 illustrates a sub-block-based index map for scanning a palette in accordance with the present disclosure. [Figure 15B]
[0038] FIG. 10 illustrates a sub-block-based index map for scanning a palette in accordance with the present disclosure. [Figure 16]
[0039] FIG. 1 is a diagram of a method for encoding a video signal according to an example of the present disclosure. [Figure 17]
[0040] FIG. 1 is a diagram of a method for encoding a video signal according to an example of the present disclosure. [Figure 18]
[0041] FIG. 1 illustrates a computing environment coupled with a user interface according to an example of the present disclosure. [Figure 19]
[0042] FIG. 1 illustrates a method for video coding according to an example of the present disclosure. [Figure 20]
[0043] FIG. 1 illustrates a method for video coding according to an example of the present disclosure. [Figure 21]
[0044] FIG. 1 illustrates a method for video coding according to an example of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0011]
[0045] Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. The following description refers to the accompanying drawings, in which like numbers in different drawings represent the same or similar elements unless otherwise stated. The implementations described in the following description of exemplary embodiments do not represent all implementations consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with aspects related to the present disclosure as set forth in the appended claims.
[0012]
[0046] The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of 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 dictates otherwise. It is also to be understood that the term "and / or," as used herein, means and is intended to mean and include any and all possible combinations of one or more of the associated listed items.
[0013]
[0047] Terms such as "first," "second," and "third" may be used herein to describe various pieces of information, but it should be understood that the information should not be limited by these terms. These terms are used only to distinguish one category of information from another. For example, first information could also be referred to as second information without departing from the scope of this disclosure. Similarly, second information could also be referred to as first information. The term "when" as used herein may be understood to mean "when," "in the event of," or "at the discretion of," depending on the context.
[0014]
[0048] The first version of the HEVC standard was completed in October 2013, offering approximately 50% bitrate savings or equivalent perceptual quality compared to the previous generation video coding standard H.264 / MPEG AVC. While the HEVC standard offers significant coding improvements over previous standards, there is evidence that better coding efficiency than HEVC can be achieved with additional coding tools. Based on this, both ITU-TVECG and MPEG began work on exploring new coding techniques for future video coding standardization, and in October 2015, the Joint Video Exploration Team (JVET) was formed by ITU-TVECG and ISO / IEC MPEG to explore potential new coding techniques that could enable significant improvements in coding efficiency. The JVET initiated significant research into advanced technologies. One reference software, called the Joint Exploration Model (JEM), was maintained by the JVET by integrating some additional coding tools on top of the HEVC Test Model (HM).
[0015]
[0049] In October 2017, ITU-T and ISO / IEC issued a joint call for proposals (CfP) for video compression with capabilities beyond HEVC. In April 2018, 23 CfP responses were received and evaluated at the 10th JVET meeting, demonstrating approximately 40% improvement in compression efficiency over HEVC. Based on these evaluation results, JVET launched a new project to develop a new generation of video coding standard named Versatile Video Coding (VVC). In the same month, a reference software code base called the VVC Test Model (VTM) was established to demonstrate a reference implementation of the VVC standard.
[0016]
[0050] Like HEVC, VVC is built on a block-based hybrid video coding framework.
[0017]
[0051] Figure 1 shows a general diagram of a block-based video encoder for VVC. Specifically, Figure 1 shows a typical encoder 100. The encoder 100 has a video input 110, motion compensation 112, motion estimation 114, intra / inter mode decision 116, block predictor 140, summer 128, transform 130, quantization 132, prediction-related information 142, intra prediction 118, picture buffer 120, inverse quantization 134, inverse transform 136, summer 126, memory 124, in-loop filter 122, entropy coding 138, and bitstream 144.
[0018]
[0052] In encoder 100, a video frame is divided into video blocks for processing. For a given video block, a prediction is formed based on either an inter-prediction or an intra-prediction approach.
[0019]
[0053] A prediction residual, which represents the difference between a current video block that is part of video input 110 and its predictor that is part of block predictor 140, is sent from summer 128 to transform 130. The transform coefficients are then sent from transform 130 to quantization 132 for entropy reduction. The quantized coefficients are then provided to entropy coding 138 to generate a compressed video bitstream. As shown in FIG. 1 , prediction-related information 142 from intra / inter mode decision 116, such as video block partition information, motion vectors (MVs), reference picture indexes, and intra prediction modes, is also provided through entropy coding 138 and stored in compressed bitstream 144. Compressed bitstream 144 comprises the video bitstream.
[0020]
[0054] The encoder 100 also requires decoder-related circuitry to reconstruct pixels for prediction purposes. A prediction residual is reconstructed through inverse quantization 134 and inverse transform 136. This reconstructed prediction residual is combined with a block predictor 140 to generate unfiltered reconstructed pixels for the current video block.
[0021]
[0055] Spatial prediction (or "intra prediction") predicts the current video block using pixels from samples (called reference samples) of already coded neighboring blocks in the same video frame as the current video block.
[0022]
[0056] Temporal prediction (also called "inter prediction") uses pixels reconstructed from already coded video pictures to predict the current video block. Temporal prediction reduces the temporal redundancy inherent in video signals. The temporal prediction signal for a coded block is typically carried by one or more MVs indicating the amount and direction of motion between the current CU and its temporal reference. Furthermore, if multiple reference pictures are supported, one reference picture index is additionally transmitted, which is used to identify which reference picture in the reference picture storage the temporal prediction signal comes from.
[0023]
[0057] Motion estimation 114 takes signals from video input 110 and picture buffer 120 and outputs a motion estimation signal to motion compensation 112. Motion compensation 112 takes signals from video input 110, picture buffer 120, and a motion estimation signal from motion estimation 114 and outputs a motion compensation signal to intra / inter mode decision 116.
[0024]
[0058] After spatial and / or temporal prediction is performed, intra / inter mode decision 116 within encoder 100 selects the best prediction mode based, for example, on a nominal distortion optimization method. Block predictor 140 is then subtracted from the current video block, and the resulting prediction residual is decorrelated using transform 130 and quantization 132. The resulting quantized residual coefficients are inversely quantized by inverse quantization 134 and inversely transformed by 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 in-loop filtering 122, such as a deblocking filter, sample adaptive offset (SAO), and / or adaptive in-loop filter (ALF), can be applied to the reconstructed CU before it is placed into reference picture storage in picture buffer 120 and used to encode future video blocks. To form the output video bitstream 144, the coding mode (inter or intra), prediction mode information, motion information, and quantized residual coefficients are all sent to the entropy coding unit 138, which further compresses and packs them to form the bitstream.
[0025]
[0059] Figure 1 shows a block diagram of a typical block-based hybrid video coding system. The input video signal is processed block by block (called a coding unit (CU)). In VTM-1.0, a CU can be up to 128 x 128 pixels. However, unlike HEVC, which partitions blocks solely based on a quaternary tree, VVC partitions a single coding tree unit (CTU) into CUs based on quaternary, binary, and ternary trees to accommodate various local characteristics. By definition, a coding tree block (CTB) is an N x N block of samples for some value of N, where the partitioning of components into CTBs constitutes a partition. A CTU includes a CTB for luma samples, two corresponding CTBs for chroma samples in a picture with a three-sample array, or a CTB for samples in a picture coded using the three separate color planes and syntax structure used for coding monochrome pictures or samples. Furthermore, the concept of multiple partition unit types in HEVC is removed. That is, the separation of CUs, prediction units (PUs), and transform units (TUs) no longer exists in VVC. Instead, each CU is always used as the basic unit for both prediction and transformation without further division. In the multi-tree structure, a CTU is first divided into quaternary tree structures. Then, each quaternary tree leaf node can be further divided into binary and ternary tree structures. As shown in Figures 3A, 3B, 3C, 3D, and 3E, there are five division types: quaternary, horizontally divided, vertically divided, horizontally divided, and vertically divided.
[0026]
[0060] FIG. 3A shows a diagram illustrating a quadrant of a block in a multi-tree structure according to the present disclosure.
[0027]
[0061] FIG. 3B shows a diagram illustrating block vertical bisection in a multi-tree structure according to the present disclosure.
[0028]
[0062] FIG. 3C shows a diagram illustrating horizontal bisection of blocks in a multi-tree structure according to the present disclosure.
[0029]
[0063] FIG. 3D shows a diagram illustrating a vertical 3-division of blocks in a multi-tree structure according to the present disclosure.
[0030]
[0064] FIG. 3E shows a diagram illustrating a horizontal 3-partitioning of blocks in a multi-tree structure according to the present disclosure.
[0031]
[0065] In FIG. 1, spatial prediction and / or temporal prediction can be performed. Spatial prediction (or "intra prediction") predicts the current video block using pixels from samples (called reference samples) of previously coded neighboring blocks in the same video picture / slice. Spatial prediction mitigates spatial redundancy inherent in video signals. Temporal prediction (also called "inter prediction" or "motion-compensated prediction") predicts the current video block using pixels reconstructed from previously coded video pictures. Temporal prediction mitigates temporal redundancy inherent in video signals. The temporal prediction signal for a particular CU is typically conveyed by one or more motion vectors (MVs), which indicate the amount and direction of motion between the current CU and its temporal references. If multiple reference pictures are supported, an additional reference picture index is transmitted, which is used to identify which reference picture in the reference picture store the temporal prediction signal comes from. After spatial and / or temporal prediction, a mode decision block in the encoder selects the optimal prediction mode, for example, based on a nominal distortion optimization method. The predicted block is then subtracted from the current video block. The prediction residual is decorrelated and quantized using a transform. The quantized residual coefficients are inverse quantized and inverse transformed to form a reconstructed residual, which is then added back to the prediction block to form the reconstructed signal for the CU. Further in-loop filtering, such as a deblocking filter, sample adaptive offset (SAO), and adaptive in-loop filtering (ALF), can be applied to the reconstructed CU before it is placed in the reference picture store and used to encode future video blocks. To form the output video bitstream, the coding mode (inter or intra), prediction mode information, motion information, and the quantized residual coefficients are all sent to an entropy coding unit for further compression and packing to form the bitstream.
[0032]
[0066] Figure 2 shows a general block diagram of a video decoder for VVC. Specifically, Figure 2 shows a block diagram of an exemplary decoder 200. The decoder 200 includes a bitstream 210, entropy decoding 212, inverse quantization 214, inverse transform 216, adder 218, intra / inter mode selection 220, intra prediction 222, memory 230, in-loop filter 228, motion compensation 224, picture buffer 226, prediction-related information 234, and video output 232.
[0033]
[0067] The decoder 200 is similar to the reconstruction-related section present in the encoder 100 of Figure 1. In the decoder 200, an input video bitstream 210 is first decoded through entropy decoding 212 to derive quantized coefficient levels and prediction-related information. The quantized coefficient levels are then processed through inverse quantization 214 and inverse transform 216 to obtain a reconstructed prediction residual. A block prediction mechanism implemented in an intra / inter mode selector 220 is configured to perform either 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 residual from the inverse transform 216 with the prediction output generated by the block prediction mechanism using an adder 218. can be.
[0034]
[0068] The reconstructed blocks may further pass through an in-loop filter 228 before being stored in a picture buffer 226, which serves as a reference picture store. The reconstructed video in the picture buffer 226 may not only be transmitted to drive a display device, but may also be used to predict future video blocks. When the in-loop filter 228 is turned on, a filtering operation is performed on these reconstructed pixels to derive the final reconstructed video output 232.
[0035]
[0069] Figure 2 shows a general block diagram of a block-based video decoder. The video bitstream is first entropy decoded by an entropy decoding unit. The coding mode and prediction information are sent to a spatial prediction unit (in the case of intra coding) or a temporal prediction unit (in the case of inter coding) to form a prediction block. The residual transform coefficients are sent to an inverse quantization unit and an inverse transform unit to reconstruct a residual block. Next, the prediction block and the residual block are added together. The reconstructed block may further pass through in-loop filtering before being stored in the reference picture buffer. The reconstructed video in the reference picture buffer is not only sent to drive a display device but also used to predict future video blocks.
[0036]
[0070] Generally, the basic intra prediction method applied to VVC remains the same as that of HEVC, except that some modules are further extended and / or improved. For example, it includes intra sub-partition (ISP) coding mode, extended intra prediction by wide-angle intra direction, position-dependent intra prediction combination (PDPC), and 4-tap intra interpolation, etc.
[0037]
[0071] <Partitioning of Pictures, Tile Groups, Tiles, and CTUs in VVC>
[0038]
[0072] In VVC, a tile is defined as a rectangular region of CTUs within a particular tile column and a particular tile row in a picture. A tile group is a group of an integer number of tiles of a picture that are exclusively contained in a single NAL unit. Essentially, the concept of a tile group is the same as that of a slice defined in HEVC. For example, a picture is divided into tile groups and tiles. A tile is a set of CTUs that covers a rectangular region of the picture. A tile group contains multiple tiles of a picture. Two modes of tile groups are supported: raster scan tile group mode and rectangular tile group mode. In raster scan tile group mode, a tile group contains a set of tiles within the tile raster scan of a picture. In rectangular tile group mode, a tile group contains multiple tiles of a picture that collectively form a rectangular region of the picture. The tiles in a rectangular tile group are in the order of the tile raster scan of the tile group.
[0039]
[0073] FIG. 4 shows an example of raster scan tile group division of a picture, where the picture is divided into 12 tiles and three raster scan tile groups. FIG. 4 includes tiles 410, 412, 414, 416, and 418. Each tile has 18 CTUs. More specifically, FIG. 4 shows a picture containing 18x12 luma CTUs divided into 12 tiles and three tile groups (for reference). 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.
[0040]
[0074] Figure 5 shows an example of dividing a picture into rectangular tile groups. The picture is divided into 24 tiles (6 tile columns and 4 tile rows) and 9 rectangular tile groups. Figure 5 includes 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 5 shows a picture having an 18×12 luminance CTU divided into 24 tiles and 9 tile groups (reference). Tile groups contain tiles, and tiles contain CTUs. The nine 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, 540, (6) four tiles 530, 532, 542, 544, (7) two tiles 546, 548, (8) two tiles 550, 552, (9) two tiles 554 and 556.
[0041]
[0075] <Conversion of Large Block Sizes with High-Frequency Zero-Out in VVC>
[0042]
[0076] In VTM4, conversion of large block sizes up to 64×64 is possible, which is mainly useful for higher-resolution videos, such as 1080p and 4K sequences. Since the high-frequency conversion coefficients of the conversion block with a size (width or height, or both width and height) equal to 64 are set to zero, only the low-frequency coefficients are retained. For example, in the case of an M×N conversion block where the block width is M and the block height is N, when M is equal to 64, only the left 32 columns of the conversion coefficients are retained. Similarly, when N is equal to 64, only the upper 32 rows of the conversion coefficients are retained. When the conversion skip mode is used for a large block, the entire block is used without setting the values to zero.
[0043]
[0077] <Virtual Pipeline Data Unit (VPDU) in VVC>
[0044]
[0078] The virtual pipeline data unit (VPDU) is defined as a non-overlapping unit in the picture. In a hardware decoder, consecutive VPDUs are processed simultaneously by multiple pipeline stages. Since the VPDU size is approximately proportional to the buffer size of most pipeline stages, 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, the VPDU size can increase due to the division of the ternary tree (TT) and the binary tree (BT).
[0045]
[0079] To maintain the VPDU size as 64×64 luminance (luma) samples, the following regular splitting restrictions (with changes in syntax transmission) are applied to VTM5.
[0046]
[0080] TT splitting is not permitted for a CU where either the width or the height, or both the width and the height, are equal to 128.
[0047]
[0081] For a 128×N CU where N≦64 (i.e., the width is equal to 128 and the height is less than 128), horizontal BT is not permitted.
[0048]
[0082] For an N×128 CU where N≦64 (i.e., the height is equal to 128 and the width is less than 128), vertical BT is not permitted.
[0049]
[0083] Figures 6A, 6B, 6C, 6D, 6E, 6F, 6G, and 6H show examples of TT and BT splittings not permitted in VTM.
[0050]
[0084] <Coding of Transform Coefficients in VVC>
[0051]
[0085] Transform coefficient coding in VVC is similar to HEVC in the sense that both use non-overlapping coefficient groups (CGs, also called sub-blocks). However, there are some differences between them. In HEVC, the size of each CG for a coefficient is fixed at 4x4. In VVC Draft 6, the CG size becomes dependent on the TB size. As a result, various CG sizes (1x16, 2x8, 8x2, 2x4, 4x2, and 16x1) are available in VVC. CGs within a coding block and transform coefficients within a CG are coded according to a predefined scan order.
[0052]
[0086] To limit the maximum number of context coding bins per pixel, the area of the TB and the type of video component (e.g., luma component and chroma component) are used to derive the maximum number of context coding bins (CCBs) for the TB. The maximum number of context coded bins is equal to TB_zosize * 1.75, where TB_zosize indicates the number of samples in the TB after coefficient zeroing out. Note that coded_sub_block_flag is a flag indicating whether the CG contains non-zero coefficients and is not taken into account in the CCB count.
[0053]
[0087] Coefficient zeroing is an operation performed on a transform block to force coefficients located in a specific region of the transform block to zero. For example, in current VVC, a zeroing operation is associated with the 64x64 transform. As a result, all transform coefficients located outside the top-left 32x32 region within the 64x64 transform block are forced to zero. In fact, in current VVC, for transform blocks whose size along a particular dimension exceeds 32, a coefficient zeroing operation is performed along that dimension to force coefficients located beyond the top-left 32x32 region to zero.
[0054]
[0088] In transform coefficient coding in VVC, the variable remBinsPassl is initially set to the maximum number of allowed context-coded bins (MCCBs). During the encoding process, the variable is decremented by one for each context-coded bin transmitted. While remBinsPassl is 4 or greater, coefficients are first transmitted through the sig_coeff_flag, abs_level_gtl_flag, par_level_flag, and abs_level_gt3_flag syntax elements, all using context-coded bins in the first pass. The remainder of the coefficient's level information is coded in the second pass using Golomb-Rice coding and bypass-coded bins with the abs_remainder syntax element. If remBinsPassl becomes less than 4 during first-pass encoding, the current coefficient is not coded in the first pass, but is directly coded in the second pass using Golomb-Rice coding and bypass-coded bins with the dec_abs_level syntax element. The Rice parameter derivation process for [] is derived as specified in Table 3. After all the above level coding, the codes (sign flags) of all scan positions where sig_coeff_flag is equal to 1 are finally coded as bypass bins. Such a process is shown in Figure 7. remBinsPassl is reset for each TB. The transition from using context-coded bins for sig_coeff_flag, abs_level_gtl_flag, par_level_flag, and abs_level_gt3_flag to using bypass-coded bins for the remaining coefficients occurs at most once per TB. For a coefficient sub-block, if remBinsPassl is less than 4 before coding the first coefficient, the entire coefficient sub-block is coded using bypass-coded bins.
[0055]
[0089] FIG. 7 shows the residual coding structure of a transform block.
[0056]
[0090] The same Rice parameter derivation is used to convey the syntax of abs_remainder and dec_abs_level. The only difference is that the base level is set to 4 and 0 for the coding of abs_remainder and dec_abs_level, respectively. The Rice parameter is determined 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:
[0057]
[0091] RicePara=RiceParTable[max(min(31,sumAbs-5*baseLevel),0)]
[0058]
[0092] The syntax and associated semantics for residual coding in the current VVC draft specification are shown in Table 1 and Table 2, respectively. How to read Table 1 is provided in the appendix section of this disclosure and is also described in the VVC specification.
[0059] [Table 1-1] [Table 1-2] [Table 1-3] [Table 1-4] [Table 1-5] [Table 1-6] [Table 1-7]
[0060]
Table 2-1
Table 2-2
Table 2-3
Table 2-4
[0061] [[ID=三十二]]
Table 3
[0062]
Table 4
[0063]
[0093] <Residual Coding for Transform Skip Mode in VVC>
[0064]
[0094] [[ID=五十三]]Unlike HEVC where a single residual coding method is designed to encode both transform coefficients and transform skip coefficients, in VVC, two separate residual coding methods are used for transform coefficients and transform skip coefficients (i.e., residuals), respectively.
[0065]
[0095] In the transform skip mode, the statistical characteristics of the residual signal are different from those of the transform coefficients, and no energy compression around the low-frequency components is observed. The residual coding is modified considering various signal characteristics of the following (spatial) transform skip residuals.
[0066]
[0096] There is no transmission of the last x / y position.
[0067]
[0097] coded_sub_block_flag coded for all sub-blocks except the DC sub-block if all previous flags are equal to 0.
[0068]
[0098] sig_coeff_flag context modeling using two adjacent coefficients.
[0069]
[0099] par_level_flag to use only one context model.
[0070]
[0100] Additional flags beyond 5, 7, 9.
[0071]
[0101] Modified Rice parameter derivation for residual binarization.
[0072]
[0102] The context modeling of the sign flag is based on the left and top neighboring coefficient values. The sign flag is parsed after sig_coeff_flag to keep all context coding bins together.
[0073]
[0103] As shown in Figure 8, the syntax elements sig_coeff_flag, coe The ff_sign_flag, abs_level_gtl_flag, par_level_flag are coded in an interleaved manner for each residual sample in the first pass, followed by the abs_level_gtX_flag bitplane in the second pass, and the abs_remainder coding in the third pass.
[0074]
[0104] Path 1: sig_coeff_flag, coeff_sign_flag, abs_level_gtl_flag, par_level_flag
[0075]
[0105] Pass 2: abs_level_gt3_flag, abs_level_gt 5_flag, abs_level_gt7_flag, abs_level_gt9_flag
[0076]
[0106] Pass 3: abs_remainder
[0077]
[0107] FIG. 8 shows the residual coding structure of a transform skip block.
[0078]
[0108] Transform skip mode residual coding in the current VVC draft specification The syntax and associated semantics are shown in Table 5 and Table 2, respectively. How to read Table 5 is provided in the appendix section of this disclosure and is also described in the VVC specification.
[0079] [Table 5-1] [Table 5-2] [Table 5-3] [Table 5-4] [Table 5-5]
[0080]
[0109] <Quantization>
[0081]
[0110] In the current VVC, the maximum QP value is extended from 51 to 63, and the initial The transmission of QP has been changed. The initial value of SliceQpY can be changed at the slice segment layer when a non-zero value of slice_qp_delta is coded. For transform skip blocks, the minimum allowed quantization parameter (QP) is defined as 4, since when QP is equal to 4, the quantization step size is 1.
[0082]
[0111] Furthermore, the same HEVC scalar quantization is now implemented using a new technique called dependent scalar quantization. Dependent scalar quantization is used in conjunction with a different concept. Dependent scalar quantization refers to an approach in which the set of allowable reconstructed values of a transform coefficient depends on the values of the transform coefficient levels preceding the current transform coefficient level in the reconstruction order. The main effect of this approach is that allowable reconstructed vectors are more densely packed in an N-dimensional vector space (N represents the number of transform coefficients in a transform block) compared to the traditional independent scalar quantization used in HEVC. That is, for a constant average number of allowable reconstructed vectors per N-dimensional unit volume, the average distortion between the input vector and the nearest reconstructed vector decreases. The dependent scalar quantization approach is realized by (a) defining two scalar quantizers with different reconstruction levels and (b) defining a process for switching between the two scalar quantizers.
[0083]
[0112] The two scalar quantizers used, denoted Q0 and Q1, are shown in Figure 9. The position of the available reconstruction levels is uniquely specified by the quantization step size Δ. The scalar quantizer used (Q0 or Q1) is not explicitly transmitted 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 coding / reconstruction order.
[0084]
[0113] Figure 9 shows the two scalar quantizations used in the proposed dependent quantization approach. A diagram of the vessel is shown.
[0085]
[0114] As shown in Figures 10A and 10B, two scalar quantizers (Q0 and Switching between Q1 and Q2 is achieved via a state machine with four quantizer states (QState). QState can take on four different values: 0, 1, 2, and 3. It is uniquely determined by the parity of the transform coefficient level preceding the current transform coefficient in the encoding / reconstruction order. At the start of inverse quantization of a transform block, the state is set to 0. The transform coefficients are reconstructed in scan order (i.e., in the same order as entropy decoding). After the current transform coefficient is reconstructed, the state is updated as shown in Figure 10, where k denotes the value of the transform coefficient level.
[0086]
[0115] FIG. 10A shows a transition diagram illustrating the state transitions of the proposed dependent quantization.
[0087]
[0116] FIG. 10B shows a table illustrating the selection of quantizers for the proposed dependent quantization.
[0088]
[0117] Support for transmitting default and user-defined scaling matrices is also provided. All scaling matrices in DEFAULT mode are flat, with elements equal to 16 for all TB sizes. IBC and intra coding modes currently share the same scaling matrices. Therefore, for USER_DEFINED matrices, the MatrixType and MatrixType_DC numbers are updated as follows:
[0089]
[0118] MatrixType:30=2 (2 for Intra & IBC / Inter) x3 (Y / Cb / Cr components) x 5 (square TB size: 4x4 to 64x64 for luma, 2x2 to 32x32 for chroma).
[0090]
[0119] MatrixType_DC:14=2(Intra & IBC / Inter 2x 1) x 3 for Y component (TB size: 16 x 16, 32 x 32, 64 x 64) + 4 (2 for Intra & IBC / Inter x 2 for Cb / Cr component) x 2 (TB size: 16 x 16, 32 x 32).
[0091]
[0120] The DC values are scaled using the following scaling matrices: 16x16, 32x32, and 64x6 Each scaling matrix is coded separately for each 4. For TBs smaller than 8x8, all elements of one scaling matrix are transmitted. For TBs larger than 8x8, only 64 elements of one 8x8 scaling matrix are transmitted as the base scaling matrix. To obtain square matrices larger than 8x8, the 8x8 base scaling matrix is upsampled (by element duplication) to the corresponding square size (i.e., 16x16, 32x32, 64x64). When zeroing out the high-frequency coefficients of a 64-point transform is applied, the corresponding high-frequency coefficients in the scaling matrix are also zeroed out. That is, if the width or height of the TB is 32 or larger, only the left or upper half of the coefficients are retained, and the remaining coefficients are assigned zeros. Furthermore, because the bottom-right 4x4 element is never used, the number of transmitted elements for a 64x64 scaling matrix is also reduced from 8x8 to three 4x4 submatrices.
[0092]
[0121] <Context Modeling for Transform Coefficient Coding>
[0093]
[0122] The selection of the probability model for the syntax element related to the absolute value of the transform coefficient level is It depends on the values of the absolute level or partially reconstructed absolute level in the local neighborhood. The template used is shown in Figure 11.
[0094]
[0123] FIG. 11 shows a diagram of the template used to select the probabilistic model. The black square specifies the current scan position, and the square with an "x" represents the local neighborhood used.
[0095]
[0124] The selected probability model determines the absolute level (or partial reconstruction) within the local neighborhood. The context modeling and binarization depends on the following measures for the local neighborhood:
[0096]
[0125] numSig: The number of non-zero levels in the local neighborhood.
[0097]
[0126] sumAbs1: Partially reconstructed data after the first pass in the local neighborhood The sum of absolute levels (absLevel1).
[0098]
[0127] sumAbs: The sum of the reconstructed absolute levels in the local neighborhood.
[0099]
[0128] Diagonal position (d): The horizontal and vertical coordinates of the current scan position within the transformation block. Sum of.
[0100]
[0129] Based on the values of numSig, sumAbs1, and d, sig_coef The probability model for encoding f_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.
[0101]
[0130] In the current VVC, the reduced 32-point MTS (also called RMTS32) , which is based on skipping high-frequency coefficients and is used to reduce the computational complexity of 32-point DST-7 / DCT-8. This also involves modifying coefficient coding, including all types of zero-out (i.e., the existing zero-out for high-frequency components in RMTS32 and DCT2). Specifically, binarization of the last non-zero coefficient position coding is coded based on the reduced TU size, and the selection of the context model for the last non-zero coefficient position coding is determined by the original TU size. Furthermore, 60 context models are used to code the sig_coeff_flag of the transform coefficients. The context model index selection is based on the sum of up to five pre-partially reconstructed absolute levels, called locSumAbsPass1, and the dependent quantization state QState, as follows:
[0102]
[0131] If cldx is equal to 0, ctxlnc is derived as follows: ctxlnc=12*Max(0, QState-1)+ Min((locSumAbsPassl+1)>>1,3)+ (d<2?8:(d<5?4:0))
[0103]
[0132] Otherwise (cldx is greater than 0), ctxlnc is derived as follows: To be: ctxlnc=36+8*Max(0,QState-1)+ Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)
[0104]
[0133] <Palette mode>
[0105]
[0134] The basic idea behind palette mode is that the samples in a CU are representative The idea is that a color can be represented by a small set of color values. This set is called the palette. It is also possible to indicate color values that are excluded from the palette by transmitting the values of the three color components as escape colors transmitted directly in the bitstream. This is shown in Figure 12.
[0106]
[0135] Figure 12 shows an example of a block coded in palette mode. It contains 1210 blocks coded in Red mode and a palette of 1220.
[0107]
[0136] In Figure 12, the palette size is 4. The first three samples are Uses palette entries 2, 0, and 3, respectively, for composition. Blue samples represent escape symbols. CU level flag palette_escape_val_present _flag indicates whether an escape symbol is present in the CU. If an escape symbol is present, the palette size is increased by 1 and the last index is used to indicate the escape symbol. Thus, in Figure 12, index 4 is assigned to the escape symbol.
[0108]
[0137] To decode a palette-coded block, the decoder needs to know the following information: It is necessary.
[0138] Pallet table
[0139] Pallet Index
[0109]
[0140] If the palette index corresponds to an escape symbol, the corresponding Additional overhead is transmitted to indicate the color value.
[0110]
[0141] Additionally, the encoder derives the appropriate palette to be used for that CU. It is necessary.
[0111]
[0142] Modified k-means clustering to derive palettes for lossy coding A mapping algorithm is used: the first sample of a block is added to the palette. Then, for each subsequent sample from the block, the sum of absolute differences (SAD) between the sample and each of the current palette colors is calculated. If the distortion of each component is less than the threshold for the palette entry corresponding to the smallest SAD, the sample is added to the cluster belonging to that 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.
[0112]
[0143] In the next step, the clusters are sorted in descending order of usage. The palette entry corresponding to each sample is updated. Typically, the centroid of the cluster is used as the palette entry. However, considering the cost of encoding palette entries, a rate-distortion analysis is performed to analyze whether an entry from the palette predictor is suitable for use as the updated palette entry instead of the centroid. This process continues until all clusters have been processed or the maximum palette size is reached. Finally, if a cluster has only one sample and no corresponding palette entry in the palette predictor, the sample is converted to an escape symbol. Furthermore, duplicate palette entries are removed and the clusters are merged.
[0113]
[0144] After palette derivation, each sample in the block is assigned the closest palette (in the SAD). The index of the bit entry is assigned. The sample is then assigned to either "INDEX" or "COPY_ABOVE" mode. For each sample that can have either "INDEX" or "COPY_ABOVE" mode, the cost of encoding the mode is then calculated. The mode with the lowest cost is selected.
[0114]
[0145] For encoding of palette entries, a palette predictor is maintained. The maximum size of and the palette predictor are transmitted in the SPS. The palette predictor is initialized at the beginning of each CTU row, each slice, and each tile.
[0115]
[0146] For each entry in the palette predictor, check whether it is part of the current palette. A reuse flag is transmitted to indicate whether the data is to be reused or not. This is shown in Figure 13.
[0116]
[0147] FIG. 13 illustrates the use of a palette predictor to transmit palette entries. FIG. 13 includes a previous palette 1310 and a current palette 1320 .
[0117]
[0148] The reuse flag is transmitted using run-length encoding of zeros. The number of the new palette entry is transmitted using an Exponential-Golomb code of degree 0. Finally, the component values of the new palette entry are transmitted.
[0118]
[0149] The pallet index is horizontally and vertically aligned as shown in Figures 14A and 14B. They are coded using a direct traverse scan, and the scan order is explicitly signaled in the bitstream using palette_transpose_flag.
[0119]
[0150] FIG. 14A shows a horizontal traverse scan.
[0120]
[0151] FIG. 14B shows a vertical traverse scan.
[0121]
[0152] To encode the palette index, a line coefficient group (CG) base The palette mode of the escape mode is used, which divides the CU into multiple segments with 16 samples based on the traverse scan mode, as shown in Figures 15A and 15B, and the index run, palette index value, and quantized color of the escape mode are coded / analyzed sequentially for each CG.
[0122]
[0153] Figure 15A shows a sub-block based index map for scanning the palette. Indicates a group.
[0123]
[0154] Figure 15B shows a sub-block based index map for scanning the palette. Indicates a group.
[0124]
[0155] The palette index has two main palette sample modes: The escaped symbols are coded using "COPY_ABOVE" and "COPY_X". As explained before, the escaped symbols are assigned an index equal to the maximum palette size. In "COPY_ABOVE" mode, the palette index of the sample in the row above is copied. In "INDEX" mode, the palette index is transmitted explicitly. The coding order of the palette run coding for each segment is as follows:
[0125]
[0156] For each pixel, one context coding bin run_copy_fl ag=0 is transmitted to indicate whether the pixel is in the same mode as the previous pixel, i.e., if the previously scanned pixel and the current pixel are both of run type COPY_ABOVE, or if the previously scanned pixel and the current pixel are both of run type INDEX and have the same index value. Otherwise, run_copy_flag=1 is transmitted.
[0126]
[0157] If the pixel and the previous pixel are of different modes, one context code The copy_above_palett_indices_flag is transmitted to indicate the run type of the pixel, i.e., INDEX or COPY_ABOVE. By default, INDEX mode is used, so the decoder does not need to analyze the run type if the sample is in the first row (horizontal traverse scan) or the first column (vertical traverse scan). Also, the decoder does not need to analyze the run type if the previously analyzed run type was COPY_ABOVE. After palette run coding of pixels in one segment, the index value (palette_idx_idc) in INDEX mode and the quantized escape color (palette_escape_val) are bypass coded.
[0127]
[0158] Improved residual and coefficient coding
[0128]
[0159] In VVC, when encoding transform coefficients, a unified (same) Rice parameter is used. The RicePara derivation is used to convey the syntax of abs_remainder and dec_abs_level. The only difference is that the base level is set to 4 and 0 for the coding of abs_remainder and dec_abs_level, respectively. The Rice parameter is determined based on the sum of the absolute levels of the five adjacent transform coefficients in the local template as well as the corresponding base level, as follows:
[0129]
[0160] RicePara=RiceParTable[max(min(31,su mAbs-5*baseLevel),0)]
[0130]
[0161] In other words, the syntax elements abs_remainder and dec_ The binary codeword for abs_level is adaptively determined according to the level information of the neighboring coefficients. Because this codeword determination is performed sample by sample, additional logic is required to handle the adaptation of this codeword to the coefficient coding.
[0131]
[0162] Similarly, when encoding a residual block under transform skip mode, the syntax The binary codeword of the abs_remainder element is adaptively determined according to the level information of the neighboring residual samples.
[0132]
[0163] Additionally, syntax related to residual coding or transform coefficient coding When encoding a sequence element, the choice of probability model depends on the level information of the adjacent level, which requires additional logic and additional context models.
[0133]
[0164] In the current design, the binarization of escape samples is performed using a third-order Exp-Golom It is derived by invoking the b binarization process, whose performance can be further improved.
[0134]
[0165] Currently, two different level mapping methods are available in VVC: The level mapping schemes are applied to the normal transform and the transform skip, respectively. Each level mapping scheme is associated with a different condition, mapping function, and mapping position. For blocks to which the normal transform is applied, the level mapping scheme is used after the number of context coding bins (CCBs) exceeds the limit. The mapping position, denoted by ZeroPosf[n], and the mapping result, denoted by AbsLevel[xC][yC], are derived as specified in Table 2. For blocks to which the transform skip is applied, another level mapping scheme is used before the number of context coding bins (CCBs) exceeds the limit. The mapping position, denoted by predCoeff, and the mapping result, denoted by AbsLevel[xC][yC], are derived as specified in Table 5. Such a non-uniform design may not be optimal from a standardization perspective.
[0135]
[0166] For HEVC profiles with more than 10 bits, ext equals 1. The ended_precision_processing_flag specifies that extended dynamic range is used for coefficient analysis and inverse transform processing. In the current version of VVC, residual coding or transform skip coding of transform coefficients with more than 10 bits has been reported to cause significant performance degradation, and there is room for further improvement in performance.
[0136]
[0167] <Proposed method>
[0137]
[0168] In this disclosure, we address the issues discussed in the Improving Residual and Coefficient Coding section. To address this, several methods are proposed: Note that the following methods can be applied independently or in combination.
[0138]
[0169] According to a first aspect of the present disclosure, a specific syntax for residual coding is used. It is proposed to use a fixed set of binary codewords to encode an element, e.g., abs_remainder. The binary codewords can be formed using a variety of methods. Some exemplary methods are listed below:
[0139]
[0170] First, the sign of abs_remainder is the same as that used in the current VVC. Any procedure for determining words is used, but always with a fixed Rice parameter selected (e.g., 1, 2, or 3).
[0140]
[0171] Second, fixed-length binarization.
[0141]
[0172] Third, truncated Rice binarization.
[0142]
[0173] Fourth, the truncated binary (TB) binarization process.
[0143]
[0174] Fifth, k-th order Exp-Golomb binarization process (EGk).
[0144]
[0175] Sixth, limited k-th order Exp-Golomb binarization.
[0145]
[0176] According to a second aspect of the present disclosure, in transform coefficient coding, a syntax It is proposed to use a fixed set of codewords to encode the dec_abs_level elements, e.g., abs_remainder and dec_abs_level. Binary codewords can be formed using a variety of methods. Some exemplary methods are listed below:
[0146]
[0177] First, the same abs_remainder and abs_remainder functions used in VVC today are used. The same procedure for determining the codewords for abs_remainder and dec_abs_level is used, but with a fixed Rice parameter, e.g., 1, 2, or 3. As currently used in VVC, the value of baseLevel can still be different for abs_remainder and dec_abs_level (e.g., when encoding abs_remainder and dec_abs_level, baseLevel is set to 4 and 0, respectively).
[0147]
[0178] Second, the same abs_remainder and The same procedure for determining the codewords for abs_remainder and dec_abs_level 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.
[0148]
[0179] Third, fixed-length binarization.
[0149]
[0180] Fourth, truncated Rice binarization.
[0150]
[0181] Fifth, the truncated binary (TB) binarization process.
[0151]
[0182] Sixth, the kth-order Exp-Golomb binarization process (EGk).
[0152]
[0183] Seventh restricted k-th order Exp-Golomb binarization
[0153]
[0184] According to a third aspect of the present disclosure, residual coding or coefficient coding (e.g., For example, it is proposed to use a single context for encoding syntax elements related to abs_level_gtx_flag), and context selection based on neighboring decoding level information can be eliminated.
[0154]
[0185] According to a fourth aspect of the present disclosure, in residual coding, a specific syntax It is proposed to use a variable set of binary codewords to encode abs_remainder, for example, and the selection of the set of binary codewords is determined according to specific coding information of the current block, such as TB / CB and / or slice, a quantization parameter (QP) associated with the prediction mode of the CU (e.g., IBC mode or intra or inter) and / or slice type (e.g., I slice, P slice, or B slice). Various methods can be used to derive the variable set of binary codewords. Some exemplary methods are shown below.
[0155]
[0186] First, the sign of abs_remainder is different from that used in the current VVC. The same procedure for determining the words is used, but the Rice parameters are different.
[0156]
[0187] Second, k-th order Exp-Golomb binarization process (EGk)
[0157]
[0188] Third, restricted k-th order Exp-Golomb binarization
[0158] [Table 6]
[0159]
[0189] The same method described in the fourth aspect applies to transform-efficient coding. It is possible. According to the fifth aspect of the present disclosure, in transform coefficient coding, it is proposed to use a variable set of binary codewords to encode specific syntax elements, such as abs_remainder and dec_abs_level. The selection of the set of binary codewords is determined according to specific coding information of the current block, such as TB / CB and / or slice, the prediction mode of the CU (e.g., IBC mode or intra or inter), and / or the quantization parameter (QP) associated with the slice type (e.g., I slice, P slice, or B slice). Here too, various methods are used to derive the variable set of binary codewords. Some exemplary methods are shown below.
[0160]
[0190] First, the same procedure as that used in the current VVC for determining the codeword of abs_remainder is used, but the Rice parameter is different.
[0161]
[0161]
[0191] Second, the k-th order Exp-Golomb binary quantization process (EGk).
[0162]
[0192] Third, the limited k-th order Exp-Golomb binary quantization.
[0163]
[0193] In these above methods, different sets of binary codewords can be derived using different Rice parameters. For a specific block of residual samples, the Rice parameter used is determined according to the CU QP shown as QP, rather than the adjacent level information. A specific example is shown in Table 6. Here, TH1 to TH4 are predetermined thresholds satisfying (TH1 < TH2 < TH3 < TH4), and K0 to K4 are predetermined Rice parameters. It is worthy of note that in fact, the same logic can be implemented in different ways. For example, the same Rice parameter can also be derived from the QP value of the current CU using a specific equation or a look-up table, as shown in Table 6.
[0164]
[0194] According to a fifth aspect of the present disclosure, a method for transform coefficient coding and / or transform scaling is provided. A set of parameters and / or thresholds related to codeword decisions for syntax elements of the loop residual coding are transmitted in the bitstream, and the determined codewords are used as binarized codewords when encoding the syntax elements through an entropy coder, e.g., arithmetic coding.
[0165]
[0195] A set of parameters and / or thresholds may be used to determine the codeword of a syntax element. Note that there may be a complete set of all relevant parameters and thresholds, or a subset. The set of parameters and / or thresholds may be transmitted at various levels within the video bitstream, for example, 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.
[0166]
[0196] In one example, abs_remainde in transform skip residual coding The Rice parameters used to determine the codeword for encoding the syntax of r are transmitted in the slice header, picture header, PPS, and / or SPS. The Rice parameters for transmission are used to determine the codeword for encoding the syntax abs_remainder when the CU is encoded as a transform skip mode and the CU is associated with the slice header, picture header, PPS, and / or SPS described above.
[0167]
[0197] According to a sixth aspect of the present disclosure, the code word determination shown in the first and second aspects may be The associated set of parameters and / or thresholds is used for the syntax element for transform coefficient coding and / or transform skip residual coding, and different sets can be used depending on whether the current block contains luma or chroma residual / coefficients. The determined codeword is used as the binarization codeword when encoding the syntax element through an entropy coder, e.g., arithmetic coding.
[0168]
[0198] One example is the transform residual coding used in current VVC. The abs_remainder codeword is used for both luma and chroma blocks, but different fixed Rice parameters are used by luma and chroma blocks, respectively (e.g., K1 for luma blocks and K2 for chroma blocks, where K1 and K2 are integers).
[0169]
[0199] According to a seventh aspect of the present disclosure, a transform coefficient coding and / or transform skill coding method is provided. A set of parameters and / or thresholds related to codeword decisions for syntax elements of the sparse residual coding are transmitted in the bitstream. A different set can be transmitted for . The determined codeword is used as the binarization codeword when encoding the syntax element through an entropy coder, e.g., arithmetic coding. The same method described in the above embodiment can also be applied to escape value encoding in palette mode, e.g., palette_escape_val.
[0170]
[0200] According to an eighth aspect of the present disclosure, an escape value in palette mode is encoded. Different k-th order Exp-Golomb binarizations can be used to derive different sets of binary codewords for the escape samples. In one example, for a given block of escape samples, the Exp-Golomb parameter used, i.e., the value of k, depends on the QP CUThe same example shown in Table 6 can be used to derive the value of the parameter k based on the given QP value of the block. In this example, four different thresholds (TH1 to TH4) are listed, and the relationship between these thresholds and the QP CU It is worth noting that, although five different k values (K0 to K4) are derived based on
[0000] , the number of thresholds is for illustrative purposes only. In practice, a different number of thresholds can be used to divide the entire QP value range into a different number of QP value segments, and for each QP value segment, a different k value can be used to derive a corresponding binary codeword for encoding the escape value of a block coded in palette mode. It is also worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameter can be derived using a specific equation or lookup table.
[0171]
[0201] According to a ninth aspect of the present disclosure, a code for a syntax element of an escape sample A set of parameters and / or thresholds related to the word decision are transmitted in the bitstream, and the determined codeword is used as the binarized codeword when encoding the syntax element of the escape sample through an entropy coder, e.g., arithmetic coding.
[0172]
[0202] A set of parameters and / or thresholds may be used to determine the codeword of a syntax element. Note that there may be a complete set of all relevant parameters and thresholds, or a subset. The set of parameters and / or thresholds may be transmitted at various levels within the video bitstream, for example, 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.
[0173]
[0203] In one example according to this embodiment, k-th order Exp-Golomb binarization is used to The Exp-Golomb parameter k is used to determine the codeword for encoding the syntax palette_escape_val in the palette mode, and the value of k is transmitted to the decoder in the bitstream. The value of k may be transmitted at different levels, for example, in the slice header, picture header, PPS, and / or SPS. The transmitted Exp-Golomb parameter is used to determine the codeword for encoding the syntax palette_escape_val when the CU is coded in the palette mode and the CU is associated with the aforementioned slice header, picture header, PPS, and / or SPS.
[0174]
[0204] <Level mapping harmony between conversion skip mode and normal conversion mode>
[0175]
[0205] According to a tenth aspect of the present disclosure, the same conditions for applying level mapping is 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 bins (CCBs) exceeds the limit for both transform skip mode and normal transform mode. In another example, it is proposed to apply level mapping before the number of context coding bins (CCBs) exceeds the limit for both transform skip mode and normal transform mode. It has been proposed to apply rule mapping.
[0176]
[0206] According to an eleventh aspect of the present disclosure, a mapping position in the level mapping is The same method of derivation is used for both transform skip mode and normal transform mode. In one example, it is proposed that the method of derivation of mapping positions in level mapping used in transform skip mode is also applied to normal transform mode. In another example, it is proposed that the method of derivation of mapping positions in level mapping used in normal transform mode is also applied to transform skip mode.
[0177]
[0207] According to a twelfth aspect of the present disclosure, a same-level mapping method is In one example, it is proposed that the level mapping function used in the transform skip mode also be applied to the normal transform mode. In another example, it is proposed that the level mapping function used in the normal transform mode also be applied to the transform skip mode.
[0178]
[0208] <Simplifying Rice Parameter Derivation in Residual Coding>
[0179]
[0209] According to a thirteenth aspect of the present disclosure, a Golomb-Rice code is used to When encoding the bs_remainder / dec_abs_level syntax elements, it is proposed to use simple logic, such as shift and division operations, instead of a lookup table to derive the Rice parameter. According to the current disclosure, the lookup table specified in Table 4 may be deleted. In one example, the Rice parameter cRiceParam is derived as cRiceParam = (locSumAbs>>n), where n is a positive number, e.g., 3. It is worth noting that in practice, other different logic, such as a division operation by a value equal to the nth power of 2, can be used to achieve the same result. An example of the corresponding decoding process based on the VVC draft is shown below. Changes are indicated in bold and italic font, and deleted content is indicated in strikethrough font.
[0180] [Table 7]
[0181]
[0210] According to a fourteenth aspect of the present disclosure, a Golomb-Rice code is used to It is proposed to use fewer adjacent positions for the derivation of the Rice parameters when encoding the bs_remainder / dec_abs_level syntax element. In one example, it is proposed to use only two adjacent positions for the derivation of the Rice parameters when encoding the abs_remainder / dec_abs_level syntax element. The corresponding decoding process based on the VVC draft is shown below, with changes in bold and italic font and deleted content in strikethrough font.
[0182] [Table 8]
[0183]
[0211] Another example is the abs_remainder / dec_abs_level system. It is proposed to use only one adjacent position for the derivation of the Rice parameters when encoding syntax elements. The corresponding decoding process based on the VVC draft is shown below. Changes are shown in bold and italic font, and deleted content is shown in strikethrough font.
[0184] [Table 9]
[0185]
[0212] According to a fifteenth aspect of the present disclosure, a Golomb-Rice code is used to When encoding the bs_remainder / dec_abs_level syntax elements, it is proposed to use a different logic to adjust the value of locSumAbs based on the value of baseLevel to derive the Rice parameters. In one example, an additional scale and offset operation is applied in the form of "(locSumAbs-baseLevel*5)*alpha+beta". If the value of alpha is 1.5 and the value of beta is 1, the corresponding decoding process based on the VVC draft is shown as follows: Changes are shown in bold italic font, and deleted content is shown in strikethrough font.
[0186] [Table 10]
[0187]
[0213] According to a sixteenth aspect of the present disclosure, a Golomb-Rice code is used to It is proposed to remove the clipping operation for the derivation of the Rice parameters in the syntax elements of abs_remainder / dec_abs_level. According to the current disclosure, an example of the decoding process of the VVC draft is shown below, with changes indicated in bold and italic font and deleted content indicated in strikethrough font:
[0188] [Table 11]
[0189]
[0214] According to this disclosure, an example of the decoding process of the VVC draft is shown below: ,Changes are shown in bold and italic font, and deleted content is shown in strikethrough font.
[0190] [Table 12]
[0191]
[0215] According to a seventeenth aspect of the present disclosure, a Golomb-Rice code is used to For the derivation of Rice parameters when encoding the bs_remainder / dec_abs_level syntax elements, it is proposed to change the initial value of locSumAbs from 0 to a non-zero integer. In one example, an initial value of 1 is assigned to locSumAbs, and the corresponding decoding process based on the VVC draft is shown below. Changes are shown in bold italic font, and deleted content is shown in strikethrough font.
[0192] [Table 13]
[0193]
[0216] According to an eighteenth aspect of the present disclosure, a Golomb-Rice code is used to It is proposed to use the maximum value of adjacent position level values instead of the sum of them to derive the Rice parameter when encoding the bs_remainder / dec_abs_level syntax element. An example of the corresponding decoding process based on the VVC draft is shown below. Changes are indicated in bold and italic font, and deleted content is indicated in strikethrough font.
[0194] [Table 14]
[0195]
[0217] According to a nineteenth aspect of the present disclosure, a Golomb-Rice code is used to When encoding the bs_remainder / dec_abs_level syntax element, it is proposed to derive the Rice parameter based on the relative amplitude of each AbsLevel value and the base level value at adjacent positions. In one example, the Rice parameter is derived based on how many of the AbsLevel values at adjacent positions are greater than the base level. An example of the corresponding decoding process based on the VVC draft is shown below. Changes are indicated in bold and italic font, and deleted content is indicated in strikethrough font. There are.
[0196] [Table 15]
[0197]
[0218] In another example, the Rice parameter is set to 0 if the AbsLevel value is greater than the base level. It is derived based on the sum of the (AbsLevel-baseLevel) values of the neighboring positions. An example of the corresponding decoding process based on the VVC draft is shown below, with changes indicated in bold and italic font and deleted content indicated in strikethrough font.
[0198] [Table 16]
[0199]
[0219] According to this disclosure, an example of the decoding process of the VVC draft is shown below: ,Changes are shown in bold and italic font, and deleted content is shown in strikethrough font.
[0200] [Table 17]
[0201]
[0220] <Simplifying the derivation of level mapping positions in residual coding>
[0202]
[0221] According to a twentieth aspect of the present disclosure, the derivation of ZeroPos[n] leads to the derivation of QStat It is proposed to remove e, so that ZeroPos[n] is derived only from cRiceParam. An example of the corresponding decoding process based on the VVC draft is shown below, where changes are shown in bold and italic font and deleted content is shown in strikethrough font.
[0203] [Table 18]
[0204]
[0222] According to a twenty-first aspect of the present disclosure, a method for determining whether a locSumAbs value is Zero or It is proposed to derive Pos[n]. An example of the corresponding decoding process based on the VVC draft is shown below, where changes are shown in bold and italic font and deleted content is shown in strikethrough font.
[0205] [Table 19]
[0206]
[0223] According to a 22nd aspect of the present disclosure, based on the AbsLevel values of adjacent positions, It is proposed to derive ZeroPos[n] based on the maximum of AbsLevelf[xC+1][yC] and AbsLevelf[xC][yC+1]. An example of the corresponding decoding process based on the VVC draft is shown below. Changes are shown in bold and italic font, and deleted content is shown in strikethrough font.
[0207] [Table 20]
[0208]
[0224] According to a 23rd aspect of the present disclosure, all AbsLevel values at adjacent positions Derive both cRiceParam and ZeroPos[n] based on the maximum value of An example of the corresponding decoding process based on the VVC draft is shown below, with changes indicated in bold and italic font and deleted content indicated in strikethrough font.
[0209] [Table 21]
[0210]
[0225] The same method as described in the above embodiment can be used for transform skip mode residual coding. This can also be applied to deriving predCoeff in the f is derived as follows:
[0211]
[0226] predCoeff=Max(absLeftCoeff,absAbove Coeff)+1
[0212]
[0227] <Residual Coding of Transform Coefficients>
[0213]
[0228] In this disclosure, the "Improved Residual and Coefficient Coding" section points out To address the problem, a method is provided to simplify and / or further improve the existing design of residual coding. In general, the main features of the technology proposed in this disclosure are summarized as follows:
[0214]
[0229] First, based on the current design, the linear regression used under normal residual coding Adjust the derivation of the is parameter.
[0215]
[0230] Second, we modify the binary method used under regular residual coding.
[0216]
[0231] Third, we modify the Rice parameter derivation used under normal residual coding. Change.
[0217]
[0232] <Deriving Rice parameters in residual coding based on the current design>
[0218]
[0233] According to a twenty-fourth aspect of the present disclosure, in residual coding, a specific syntax It is proposed to use a variable method of Rice parameter derivation to code the dec_abs_level elements, e.g., abs_remainder / dec_abs_level, where the selection is determined according to the specific coding information of the current block, e.g., the quantization parameter or 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, e.g., extended_precision_processing_flag. Various methods can be used to derive the Rice parameters. Some exemplary methods are listed below:
[0219]
[0234] First, cRiceParam=(cRiceParam< <a)+(cRi ceParam>>b)+c, where a, b and c are positive numbers, e.g., {a,b,c}={1,1,0}. It is worth noting that in practice, other different logic can be used to achieve the same result, e.g., multiplication operation by a value equal to the nth power of 2.
[0220]
[0235] Second, cRiceParam=(cRiceParam< <a)+b、ここ where a and b are positive numbers, e.g., {a,b}={1,1}. It is worth noting that in practice, other different logic can be used to achieve the same result, e.g., multiplication by a value equal to the nth power of 2.
[0221]
[0236] Third, cRiceParam=(cRiceParam*a)+b, where a and b are positive numbers, e.g., {a,b}={1.5,0}. It is worth noting that in practice, other different logic can be used to achieve the same result, e.g., multiplication by a value equal to the nth power of 2.
[0222]
[0237] An example of the corresponding decoding process based on the VVC draft is shown below, with changes in bold: Changes to the VVC draft are shown in bold and italic font in Table 22. It is worth noting that the same logic can be implemented in different ways, for example, using a specific equation or lookup table to derive the same Rice parameter from the BitDepth value of the current CU / sequence.
[0223] [Table 22-1] [Table 22-2]
[0224]
[0238] In another example, BitDepth is a predetermined threshold (e.g., 10, 11, 12, 1 3, 14, 15, or 16), the rice parameter cRiceParam is derived as follows: cRiceParam=(cRiceParam<<a))+(cRiceParam> >b)+c, where a, b, and c are positive numbers, e.g., 1. The corresponding decoding process based on the VVC draft is shown below. Changes are shown in bold and italic font, and deleted content is shown in strikethrough font. The changes to the VVC draft are shown in bold and italic font in Table 23. It is worth noting that in practice, the same logic can be implemented in different ways. For example, a specific equation or lookup table can be used to derive the same Rice parameters from the BitDepth value of the current CU / sequence.
[0225] [Table 23-1] [Table 23-2]
[0226]
[0239] <Binarization method for residual coding of profiles exceeding 10 bits>
[0227]
[0240] According to a twenty-fifth aspect of the present disclosure, in residual coding, a specific syntax It is proposed to use a variable set of binary codewords to code the block components, e.g., abs_remainder / dec_abs_level, with the selection being determined according to specific coding information of the current block, e.g., quantization parameters or coding bit depth associated with TB / CB and / or slice / profile, and / or according to new flags associated with TB / CB / slice / picture / sequence level, e.g., extended_precision_processing_flag. Various methods can be used to derive the variable set of binary codewords. Some exemplary methods are given below:
[0228]
[0241] First, the codewords used in the current VVC and abs_remainder The same procedure for determination is used, but a fixed Rice parameter (e.g., 2, 3, 4, 5, 6, 7 or 8) is always selected. The fixed value can be different under different conditions according to the quantization parameter or the encoded bit depth associated with the specific encoding information of the current block, e.g., TB / CB and / or the slice / profile, and / or according to the syntax elements associated with the TB / CB / slice / picture / sequence level, e.g., rice_parameter_value. A specific example is shown in Table 24. Here, TH1 to TH4 are predetermined thresholds satisfying (TH1 < TH2 < TH3 < TH4), and K0 to K4 are predetermined Rice parameters. It is worth noting that the same logic can actually be implemented in different ways. For example, a specific equation or a look-up table can be used to derive the same Rice parameter from the BitDepth value of the current CU / sequence as shown in Table 24.
[0229]
[0242] Second, fixed-length binarization.
[0230]
[0243] Third, truncated Rice binarization.
[0231]
[0244] Fourth, truncated binary (TB) binarization process.
[0232]
[0245] Fifth, k-th Exp-Golomb binarization process (EGk).
[0233]
[0246] Sixth, limited k-th Exp-Golomb binarization
[0234]
Table 24
[0235]
[0247] In one example, a new flag, e.g., extended_precision_p If 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 vary depending on conditions. An example of the corresponding decoding process based on the VVC draft is shown below. Changes are shown in bold and italic font, and deleted content is shown in strikethrough font. Changes to the VVC draft are shown in bold and italic font in Table 25. It is shown in italic font.
[0236] [Table 25]
[0237]
[0248] Another example is the addition of new flags, e.g. extended_precision_ If processing_flag is equal to 1, it is proposed to use only one fixed value for the Rice parameter when encoding the abs_remainder / dec_abs_level syntax elements. The corresponding decoding process based on the VVC draft is shown below. Changes are shown in bold and italic font, and deleted content is shown in strikethrough font. Changes to the VVC draft are shown in bold and italic font in Table 26.
[0238] [Table 26]
[0239]
[0249] In yet another example, BitDepth may be greater than or equal to a predetermined threshold (e.g., 10, 11, 1 If the Rice parameter cRiceParam is greater than or equal to n (e.g., 2, 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 vary depending on conditions. An example of the corresponding decoding process based on the VVC draft is shown below: where TH is a predetermined threshold (e.g., 10, 11, 12, 13, 14, 15, or 16). Changes to the VVC draft are shown in bold and italics in Table 27, where changes are shown in bold and italics and deleted content is shown in strikethrough.
[0240] [Table 27]
[0241]
[0250] In yet another example, BitDepth may be greater than or equal to a predetermined threshold (e.g., 10, 11, 1 If TH is greater than 10, 11, 12, 13, 14, 15, or 16, it is proposed to use only one fixed value for the Rice parameter when encoding the abs_remainder / dec_abs_level syntax element. The corresponding decoding process based on the VVC draft is shown below, where TH is a predetermined threshold (e.g., 10, 11, 12, 13, 14, 15, or 16), and changes are shown in bold and italic font, while deleted content is shown in strikethrough font. Changes to the VVC draft are shown in bold and italic font in Table 28.
[0242] [Table 28]
[0243]
[0251] <Deriving Rice parameters in residual coding>
[0244]
[0252] According to a 26th aspect of the present disclosure, in residual coding, a specific syntax It is proposed to use variable methods of Rice parameter derivation to code the dec_abs_level elements, e.g., abs_remainder / dec_abs_level, where the selection is determined according to the specific coding information of the current block, e.g., the quantization parameter or 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, e.g., extended_precision_processing_flag. Various methods can be used to derive the Rice parameters. Some exemplary methods are given below:
[0245]
[0253] First, it is proposed to derive the Rice parameter using counters. The counter is determined according to the value of the coded coefficient and the specific coded information of the current block, such as the component ID. One specific example is riceParameter=counter / a, where a is a positive number (e.g., 4), and maintains two counters (divided by luma / chroma). These counters are reset to 0 at the beginning of each slice. When coded, if this is the first coefficient coded within a sub-TU, the counters are updated as follows: if(coeffValue>=(3< <rice))counter++ if(((coeffValue<<1)<(1<<riceParameter))&&(counter> 0))counter--;
[0246]
[0254] Second, adding a shift operation in the derivation of the Rice parameter in VVC It is proposed to do so. The shift is determined according to the value of the coding coefficient. An example of the corresponding decoding process based on the VVC draft is shown below. The shift is determined according to the counters of Method 1, with changes shown in bold and italic font and deleted content shown in strikethrough font. The changes to the VVC draft are shown in bold and italic font in Table 29.
[0247] [Table 29]
[0248]
[0255] First, we add a shift operation to the derivation of the Rice parameter in VVC. It is proposed that the shifting is done by taking into account the specific coding information of the current block, e.g., TB / CB and / or according to the coding bit depth associated with the 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. The shift is determined according to the counters in Method 1, with changes shown in bold and italic font and deleted content shown in strikethrough font. The changes to the VVC draft are shown in bold and italic font in Table 30.
[0249] [Table 30]
[0250]
[0256] Residual coding for transform skipping
[0251]
[0257] According to a twenty-seventh aspect of the present disclosure, in the residual coding of the transform skip, It is proposed to use a variable set of binary codewords to code certain syntax elements, e.g., abs_remainder, with the selection being determined according to specific coding information of the current block, e.g., the quantization parameter or 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, e.g., extended_precision_processing_flag. Various methods can be used to derive the variable set of binary codewords. Some exemplary methods are given below:
[0252]
[0258] First, the same procedure as that used in the current VVC for determining the sign word of abs_remainder is used, but a fixed Rice parameter (e.g., 2, 3, 4, 5, 6, 7, or 8) is always selected. The fixed value may vary under different conditions according to specific encoding information of the current block, such as quantization parameter, frame type (e.g., I, P, or B), component ID (e.g., luminance or chrominance difference), color format (e.g., 420, 422, or 444), or the encoded bit depth associated with TB / CB and / or slice / profile, and / or according to syntax elements associated with TB / CB / slice / picture / sequence level, such as rice_parameter_value. Specific examples are shown in Table 7. Here, TH1 to TH4 are predetermined thresholds satisfying (TH1 < TH2 < TH3 < TH4), and K0 to K4 are predetermined Rice parameters. In fact, it is worth noting that the same logic can be implemented in different ways. For example, the same Rice parameter can also be derived from the BitDepth value of the current CU / sequence as shown in Table 7 using a specific equation or look-up table.
[0253]
[0259] Second, fixed-length binarization.
[0254]
[0260] Third, truncated Rice binarization.
[0255]
[0261] Fourth, truncated binary (TB) binarization process.
[0256]
[0262] Fifth, k-th Exp-Golomb binarization process (EGk).
[0257]
[0263] Sixth, limited k-th Exp-Golomb binarization
[0258]
[0264] Examples of the corresponding decoding processes based on the VVC draft are shown below. The VVC dra Changes to the software are shown in bold and italic font in Table 31, while deleted content is shown in strikethrough font. It is worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameters could be derived using a specific equation or lookup table.
[0259] [Table 31]
[0260]
[0265] Another example is the addition of new flags, e.g. extended_precision_ If processing_flag is equal to 1, it is proposed to use only one fixed value for the Rice parameter when encoding the abs_remainder syntax element. The corresponding decoding process based on the VVC draft is shown below. Changes are shown in bold and italic font, and deleted content is shown in strikethrough font. Changes to the VVC draft are shown in bold and italic font in Table 32.
[0261] [Table 32]
[0262]
[0266] In yet another example, new flags, such as extended_precision If on_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 differ depending on the conditions. An example of the corresponding decoding process based on the VVC draft is shown below. The changes are shown in bold and italic font, and the deleted content is Changes to the VVC draft are shown in bold and italic font in Table 33.
[0263] [Table 33]
[0264]
[0267] In yet another example, BitDepth may be greater than or equal to a predetermined threshold (e.g., 10, 11, 1 If the threshold value is greater than or equal to n (e.g., 2, 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 vary depending on the conditions. An example of the corresponding decoding process based on the VVC draft is shown below, where TH is a predetermined threshold value (e.g., 10, 11, 12, 13, 14, 15, or 16), and changes are indicated in bold and italic font, while deleted content is indicated in strikethrough font. Changes to the VVC draft are shown in bold and italic font in Table 34.
[0265] [Table 34]
[0266]
[0268] In yet another example, transmitting Rice parameters in transform skip blocks is useful. One control flag is transmitted in the slice header to indicate whether the Rice parameter is enabled or disabled. When the control flag is transmitted as enabled, one syntax element is further transmitted for each transform skip slice to indicate the Rice parameter for that slice. When the control flag is transmitted as disabled (e.g., set to "0"), no further syntax elements are transmitted at lower levels to indicate the Rice parameter for the transform skip slice, and the default Rice parameter (e.g., 1) is used for all transform skip slices. An example of the corresponding decoding process based on the VVC draft is shown below. Here, TH is a predetermined value (e.g., 0, 1, 2), changes are indicated in bold and italic font, and deleted content is indicated in strikethrough font. Changes to the VVC draft are shown in bold and italic font in Table 35. It is worth noting that sh_ts_residual_coding_rice_index can be coded in various ways and / or may have a maximum value. For example, u(n), an unsigned integer using n bits, or f(n), a fixed-pattern bit string using n bits written left bit first (left to right), can also be used to encode / decode the same syntax element.
[0267]
[0269] <Slice header syntax>
[0268] [Table 35]
[0269]
[0270] sh_ts_residual_coding_rice_fla equal to 1 g specifies that sh_ts_residual_coding_rice_index may be present in the current slice, and sh_ts_residual_coding_rice_flag equal to 0 specifies that sh_ts_residual_coding_rice_index is not present in the current slice. If 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. sh_ts_residual_coding_rice_index specifies the rice parameter used in the residual_ts_coding() syntax structure.
[0270] [Table 36]
[0271]
[0271] In yet another example, one control flag may be added to the sequence parameter set (or The sh_ts_residual_coding_rice_idx is transmitted within the Sequence Parameter Set Range Extension Syntax to indicate whether transmission of Rice parameters for transform skip blocks is enabled or disabled. When the control flag is transmitted as enabled, one syntax element is further transmitted for each transform skip slice to indicate the Rice parameter for that slice. When the control flag is transmitted as disabled (e.g., set to "0"), no further syntax elements are transmitted at lower levels to indicate the Rice parameters for transform skip slices, and a default Rice parameter (e.g., 1) is used for all transform skip slices. An example of the corresponding decoding process based on the VVC draft is shown below: where TH is a predetermined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic font in Table 37, and deleted content is shown in strikethrough font. It is worth noting that sh_ts_residual_coding_rice_idx can be coded in various ways and / or may have a maximum value. For example, u(n), an unsigned integer using n bits, or f(n), a fixed-pattern bit string using n bits written left bit first (left to right), can also be used to encode / decode the same syntax element.
[0272]
[0272] <Sequence parameter set RBSP syntax>
[0273] [Table 37]
[0274]
[0273] sps_ts_residual_coding_rice_pr equal to 1 esent_in_sh_flag specifies that sh_ts_residual_coding_rice_idx may be present in SH syntax structures that reference an 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 SH syntax structures that reference an SPS. If 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.
[0275]
[0274] <Slice header syntax>
[0276] [Table 38]
[0277]
[0275] sh_ts_residual_coding_rice_idx is res Specifies the Rice parameters used in the idual_ts_coding() syntax construct.
[0278] [Table 39]
[0279]
[0276] In yet another example, one syntax element for each transform skip slice: is transmitted to indicate the Rice parameters for that slice. An example of the corresponding decoding process based on the VVC draft is shown 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 coded in different ways and / or can have a maximum value. For example, u(n), an unsigned integer using n bits, or f(n), a fixed-pattern bit string using n bits written left bit first (left to right), can also be used to encode / decode the same syntax element.
[0280]
[0277] <Slice header syntax>
[0281] [Table 40]
[0282]
[0278] sh_ts_residual_coding_rice_idx is res Specifies the rice parameter used for the residual_ts_coding() syntax structure. If 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.
[0283] [Table 41]
[0284]
[0279] In yet another example, whether transmission of Rice parameters for a transform skip block is valid or not One control flag is transmitted in the picture parameter set range extension syntax to indicate whether the picture parameter set is disabled. If the control flag is transmitted as enabled, one additional syntax element is transmitted to indicate the Rice parameter for that picture. If the control flag is transmitted as disabled (e.g., set to "0"), no further syntax elements are transmitted at lower levels to indicate the Rice parameter for the transform skip slices, and the default Rice parameter (e.g., 1) is used for all transform skip slices. An example of the corresponding decoding process based on the VVC draft is shown below. Here, TH is a pre-defined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic font in Table 42. It is worth noting that pps_ts_residual_coding_rice_idx can be coded in various ways and / or may have a maximum value. For example, u(n), an unsigned integer using n bits, or f(n), a fixed-pattern bit string using n bits written left bit first (left to right), can also be used to code / decode the same syntax element.
[0285]
[0280] <Picture parameter set range extension syntax>
[0286] [Table 42]
[0287]
[0281] pps_ts_residual_coding_rice_fl equal to 1 ag specifies that pps_ts_residual_coding_rice_index may be present in the current picture, and pps_ts_residual_coding_rice_flag equal to 0 specifies that pps_ts_residual_coding_rice_idx is not present in the current picture. If 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.
[0288]
[0282] pps_ts_residual_coding_rice_idx is re Specifies the Rice parameters used in the sidual_ts_coding() syntax construct.
[0289] [Table 43]
[0290]
[0283] In yet another example, the syntax element abs_remainder is encoded as It is proposed to use only variable Rice parameters. The value of the applied Rice parameter may be determined according to the specific coding information of the current block, such as the block size, quantization parameter, bit depth, transform type, etc. In one specific embodiment, it is proposed to adjust the Rice parameter based on the coding bit depth and the quantization parameter applied to one CU. The corresponding decoding process based on the VVC draft is shown below. Changes to the VVC draft are indicated in bold and italic font in Table 44, and deleted content is indicated in strikethrough font. It is worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameter can be derived using a specific equation or lookup table.
[0291] [Table 44-1] [Table 44-2] [Table 44-3]
[0292]
[0284] In yet another example, the corresponding decoding process based on the VVC draft is as follows: where TH is a predetermined threshold (e.g., 33 or 34). Changes to the VVC draft are shown in bold and italic font in Table 45, while deleted content is shown in strikethrough font. It is worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameters could be derived using a specific equation or lookup table.
[0293] [Table 45]
[0294]
[0285] In yet another example, the corresponding decoding process based on the VVC draft is as follows: As shown, TH A and T.H. B is a predetermined threshold (e.g., TH A =8,TH B = 33 or 34). Changes to the VVC draft are shown in bold and italic font in Table 46, while deleted content is shown in strikethrough font. It is worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameters can be derived using a specific equation or lookup table.
[0295] [Table 46]
[0296]
[0286] In yet another example, a new flag, e.g., extended_precision If on_processing_flag is equal to 1, it is proposed to use only variable Rice parameters for encoding the syntax element of abs_remainder. The varying value may be determined according to the specific coding information of the current block, such as the block size, quantization parameter, bit depth, transform type, etc. In one particular embodiment, Rice is used based on the coding bit depth and the quantization parameter applied to one CU. It is proposed to adjust the Rice parameters. The corresponding decoding process based on the VVC draft is shown below. The changes to the VVC draft are shown in bold and italic font in Table 47. It is worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameters can be derived using a specific equation or lookup table.
[0297] [Table 47-1] [Table 47-2]
[0298]
[0287] In yet another example, the corresponding decoding process based on the VVC draft is as follows: where TH is a predetermined threshold (e.g., 18, 19). Changes to the VVC draft are shown in bold and italic font in Table 48. It is worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameters could be derived using a specific equation or lookup table.
[0299] [Table 48]
[0300]
[0288] In yet another example, the corresponding decoding process based on the VVC draft is as follows: As shown, TH A and T.H. B is a predetermined threshold (e.g., TH A =8,TH B = 18 or 19). Changes to the VVC draft are shown in bold and italic font in Table 49. It is worth noting that in practice the same logic can be implemented in different ways. For example, the same Rice parameters can be derived using specific equations or lookup tables.
[0301] [Table 49]
[0302]
[0289] Figure 16 shows a video coding method, which can be applied to, for example, an encoder. It is possible.
[0303]
[0290] In step 1610, the encoder can receive a video input. For example, the video input can be a live stream.
[0304]
[0291] In step 1612, the encoder calculates the quantization parameters based on the video input. The quantization parameter may be calculated, for example, by a quantization unit in the encoder.
[0305]
[0292] In step 1614, the encoder determines whether at least one predetermined threshold, The Rice parameters can be derived based on the bit depth and the quantization parameters. For example, the Rice parameters are used to convey the abs_remainder and dec_abs_level syntax.
[0306]
[0293] In step 1616, the encoder calculates the video bit rate based on the Rice parameters. For example, a video bitstream may be entropy encoded to generate a compressed video bitstream.
[0307] In yet another example, if BitDepth is greater than 10, then abs_rem It is proposed to use only fixed values (e.g., 2, 3, 4, 5, 6, 7, or 8) for the Rice parameter when encoding the ⎯ ...
[0308] [Table 50]
[0309]
[0295] In yet another example, the corresponding decoding process based on the VVC draft is as follows: As shown, TH A and T.H. B is a predetermined threshold (e.g., TH A =8,TH B = 18 or 19). Changes to the VVC draft are shown in bold and italic font in Table 51. It is worth noting that in practice the same logic can be implemented in different ways. For example, the same Rice parameters can be derived using specific equations or lookup tables.
[0310] [Table 51]
[0311]
[0296] In yet another example, the corresponding decoding process based on the VVC draft is as follows: where TH is a predetermined threshold (e.g., 33 or 34). Changes to the VVC draft are shown in bold and italic font in Table 52. It is worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameters could be derived using a specific equation or lookup table.
[0312] [Table 52]
[0313]
[0297] In yet another example, the corresponding decoding process based on the VVC draft is as follows: As shown, TH A and T.H. B is a predetermined threshold (e.g., TH A =8,TH B = 33 or 34). Changes to the VVC draft are shown in bold and italic font in Table 53. It is worth noting that in practice the same logic can be implemented in different ways. For example, the same Rice parameters can be derived using specific equations or lookup tables.
[0314] [Table 53]
[0315] In the diagram above, the equation used to calculate a particular Rice parameter is It is worth mentioning that the above mapping function (or equivalent mapping equation) is used only as an example to explain the proposed idea. For those skilled in the art of modern video coding technology, other mapping functions (or equivalent mapping equations) can already be applied to the proposed idea (i.e., determining the Rice parameter for the transform skip mode based on the coded bits and the applied quantization parameter). Meanwhile, it should also be mentioned that in the current VVC design, the value of the applied quantization parameter can be changed at the coded block group level. Therefore, the proposed Rice parameter adjustment scheme can provide flexible adaptation of the Rice parameter for the transform skip mode at the coded block group level.
[0316]
[0299] <Transmission for regular residual coding and transform-skip residual coding> Info>
[0317]
[0300] According to a twenty-eighth aspect of the present disclosure, in regular residual coding, transmitting the Rice parameters of the binary codeword to encode the syntax elements, e.g., abs_remainder for transform skip residual coding, shift parameters and offset parameters for deriving the Rice parameters used for abs_remainder / dec_abs_level, and according to the specific coding information of the current block, e.g., quantization parameters or coding bit depth associated with TB / CB and / or slice / profile, and / or new flags associated with TB / CB / slice / picture / sequence level, e.g., sps_residual It is proposed to determine whether to transmit the signal according to the _coding_info_present_in_sh_flag.
[0318]
[0301] In one example, one control flag is the Rice parameter of the transform skip block. The control flag is transmitted in the slice header to indicate whether the transmission of the Rice parameter for the transform block and the shift and / or offset parameters for deriving the Rice parameter for the transform block are enabled or disabled. When the control flag is transmitted as enabled, one syntax element is further transmitted for each transform skip slice to indicate the Rice parameter for that slice, and two syntax elements are further transmitted for each transform slice to indicate the shift and / or offset parameters for deriving the Rice parameter for that slice. When the control flag is transmitted as disabled (e.g., set to "0"), no further syntax elements are transmitted at lower levels to indicate the Rice parameter for the transform skip slice, and a default Rice parameter (e.g., 1) is used for all transform skip slices; no further syntax elements are signaled at lower levels to indicate the shift and offset parameters for deriving the Rice parameter for the transform slice, and a default shift and / or offset parameter (e.g., 0) is used for all transform slices. An example of a corresponding decoding process based on the VVC draft is shown below. Here, TH is a predetermined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic font 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 coded differently and / or have maximum values. For example, u(n), an unsigned integer using n bits, or f(n), a fixed-pattern bit string using n bits written left bit first (left to right), can also be used and will encode / decode the same syntax element.
[0319]
[0302] Figure 17 shows a method for video decoding, which may be applied to, for example, an encoder. It is possible.
[0320]
[0303] At step 1710, the encoder may receive video input.
[0321]
[0304] In step 1712, the encoder selects two The Rice parameter of the value codeword can be transmitted. The coding syntax elements can include abs_remainder for transform skip residual coding.
[0322]
[0305] In step 1714, the encoder calculates the Rice parameter based on the video input. Based on this, the video bitstream can be entropy coded.
[0323]
[0306] <Slice header syntax>
[0324] [Table 54]
[0325]
[0307] sh_residual_coding_rice_flag equal to 1 means Specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, sh_residual_coding_rice_index may be present in the current slice, and sh_residual_coding_rice_flag equal to 0 specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, sh_residual_coding_rice_index are not present in the current slice.
[0326]
[0308] sh_residual_coding_rice_shift is abs_ Specifies the shift parameter used in the Rice parameter derivation process for remainder[ ] and dec_abs_level[ ]. If sh_residual_coding_rice_shift is not present, the value of sh_residual_coding_rice_shift is inferred to be equal to 0.
[0327]
[0309] sh_residual_coding_rice_offset is abs Specifies the offset parameter used in the Rice parameter derivation process for _remainder[ ] and dec_abs_level[ ]. If sh_residual_coding_rice_offset is not present, the value of sh_residual_coding_rice_offset is inferred to be equal to 0.
[0328]
[0310] sh_ts_residual_coding_rice_index is r Rice parameters used in the esidual_ts_coding() syntax construct. If sh_ts_residual_coding_rice_index is not present, the value of sh_ts_residual_coding_rice_index is inferred to be equal to 0.
[0329] [Table 55]
[0330] [Table 56]
[0331]
[0311] In another example, one control flag may be used to set the sequence parameter set (or sequence parameter set). The control flag is transmitted in the Transform Parameter Set Range Extension Syntax (see section 1.1.1.1) to indicate whether transmission of Rice parameters for transform skip blocks and transmission of shift parameters and / or offset parameters for deriving Rice parameters within transform blocks are enabled or disabled. When the control flag is transmitted as enabled, one syntax element is further transmitted for each transform skip slice to indicate the Rice parameters for that slice, and two syntax elements are further transmitted for each transform slice to indicate the shift parameters and / or offset parameters for deriving the Rice parameters for that slice. When the control flag is transmitted as disabled (e.g., set to “0”), no further syntax elements are transmitted at lower levels to indicate Rice parameters for transform skip slices, and default Rice parameters (e.g., 1) are used for all transform skip slices; no further syntax elements are signaled at lower levels to indicate shift parameters and / or offset parameters for deriving Rice parameters for transform 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 is a predetermined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic font 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 coded differently and / or have maximum values. For example, u(n), an unsigned integer using n bits, or f(n), a fixed-pattern bit string using n bits written left bit first (left to right), can also be used to code / decode the same syntax elements.
[0332]
[0312] <Sequence parameter set RBSP syntax>
[0333] [Table 57]
[0334]
[0313] sps_residual_coding_info_prese equal to 1 nt_in_sh_flag specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, sh_ts_residual_coding_rice_idx may be present in SH syntax structures that refer to an SPS, and sps_residual_coding_info_present_in_sh_flag equal to 0 specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, sh_ts_residual_coding_rice_idx may be present in SH syntax structures that refer to an SPS. Specifies that sh_residual_coding_rice_shift, sh_residual_coding_rice_offset, and sh_ts_residual_coding_rice_idx are not present in the syntax structure. If 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.
[0335]
[0314] <Slice header syntax>
[0336] [Table 58]
[0337]
[0315] sh_residual_coding_rice_shift is abs_ Specifies the shift parameter used in the Rice parameter derivation process for readinder[ ] and dec_abs_level[ ]. If sh_residual_coding_rice_shift is not present, the value of sh_residual_coding_rice_shift is inferred to be equal to 0.
[0338]
[0316] sh_residual_coding_rice_offset is abs Specifies the offset parameter used in the Rice parameter derivation process for _remainder[ ] and dec_abs_level[ ]. If sh_residual_coding_rice_offset is not present, the value of sh_residual_coding_rice_offset is inferred to be equal to 0.
[0339]
[0317] sh_ts_residual_coding_rice_idx is res Specifies the rice parameter used in the residual_ts_coding() syntax construct. If sh_ts_residual_coding_rice_index is not present, the value of sh_ts_residual_coding_rice_index is inferred to be equal to 0.
[0340] [Table 59]
[0341] [Table 60]
[0342]
[0318] In yet another example, one syntax element is used for each transform skip slice. sh_ts_residual_coding_rice_idx is transmitted as sh_residual_coding_rice_shift to indicate the Rice parameters for that slice, and two syntax elements are transmitted for each transformed slice to indicate the shift and / or offset parameters for deriving the Rice parameters for that slice. An example of the corresponding decoding process based on the VVC draft is shown below. Changes to the VVC draft are shown in bold and italic font in Table 61. It is worth noting that sh_ts_residual_coding_rice_idx can be coded in different ways and / or have maximum values. For example, u(n), an unsigned integer using n bits, or f(n), a fixed-pattern bit string using n bits written left bit first (left to right), can also be used to encode / decode the same syntax elements.
[0343]
[0319] <Slice header syntax>
[0344] [Table 61]
[0345]
[0320] sh_ts_residual_coding_rice_idx is res Specifies the rice parameter used for the residual_ts_coding() syntax structure. If 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.
[0346]
[0321] sh_residual_coding_rice_offset is abs Specifies the offset parameter used in the Rice parameter derivation process for _remainder[ ] and dec_abs_level[ ]. If sh_residual_coding_rice_offset is not present, the value of sh_residual_coding_rice_offset is inferred to be equal to 0.
[0347]
[0322] sh_ts_residual_coding_rice_idx is res Specifies the rice parameter used in the residual_ts_coding() syntax construct. If sh_ts_residual_coding_rice_index is not present, the value of sh_ts_residual_coding_rice_index is inferred to be equal to 0.
[0348] [Table 62]
[0349] [Table 63]
[0350]
[0323] In yet another example, one control flag may be used to specify the picture parameter set range extension. The Rice parameter of the transform skip block is transmitted in the extended syntax. This flag indicates whether transmission of shift and / or offset parameters for deriving Rice parameters within a picture is enabled or disabled. When the control flag is transmitted as enabled, one syntax element is further transmitted to indicate Rice parameters for transform skip residual coding of the picture, and two syntax elements are further transmitted for regular residual coding to indicate shift and / or offset parameters for deriving Rice parameters for the picture. When the control flag is transmitted as disabled (e.g., set to “0”), no further syntax elements are transmitted at lower levels to indicate Rice parameters for transform skip residual coding, and default Rice parameters (e.g., 1) are used for all transform skip residual coding. Furthermore, no further syntax elements are transmitted at lower levels to indicate shift and / or offset parameters for deriving Rice parameters for regular residual coding, and default shift and / or offset parameters (e.g., 0) are used for all regular residual coding. An example of a corresponding decoding process based on the VVC draft is shown below. Here, TH is a predetermined value (e.g., 0, 1, 2). Changes to the VVC draft are shown in bold and italic font 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 differently and / or have maximum values. For example, u(n), an unsigned integer using n bits, or f(n), a fixed-pattern bit string using n bits and written left-to-right, can also be used to code / decode the same syntax element.
[0351]
[0324] <Picture parameter set range extension syntax>
[0352] [Table 64]
[0353]
[0325] pps_residual_coding_info_flag equal to 1 , pps_residual_coding_rice_shift, pps_residual_coding_rice_offset, pps_ts_residual_coding_rice_index may be present in the current picture, and An equal pps_residual_coding_info_flag 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. If pps_residual_coding_info_flag is not present, the value of pps_residual_coding_info_flag is inferred to be equal to 0.
[0354]
[0326] pps_residual_coding_rice_shift is abs Specifies the shift parameter used in the Rice parameter derivation process for _remainder[ ] and dec_abs_level[ ]. If pps_residual_coding_rice_shift is not present, the value of pps_residual_coding_rice_shift is inferred to be equal to 0.
[0355]
[0327] pps_residual_coding_rice_offset is ab Specifies the offset parameter used in the Rice parameter derivation process for s_remainder[ ] and dec_abs_level[ ]. If pps_residual_coding_rice_offset is not present, the value of pps_residual_coding_rice_offset is inferred to be equal to 0.
[0356]
[0328] pps_ts_residual_coding_rice_idx is re Specifies the rice parameter used in the residual_ts_coding() syntax structure. If pps_ts_residual_coding_rice_index is not present, the value of pps_ts_residual_coding_rice_index is inferred to be equal to 0.
[0357] [Table 65]
[0358] [Table 66]
[0359]
[0329] According to a twenty-ninth aspect of the present disclosure, in regular residual coding, It is proposed to use different Rice parameters for coding syntax elements, e.g., abs_remainder for transform skip residual coding, shift parameters and offset parameters for deriving the Rice parameters used for abs_remainder / dec_abs_level, and to decide which one to use according to specific coding information of the current block, e.g., 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, e.g., sps_residual_coding_info>resent_in_sh_flag.
[0360]
[0330] In one example, one control flag is transmitted in the slice header and The control flag indicates whether the derivation process of the Rice parameter of the block and the derivation process of the shift parameter and / or offset parameter of the Rice parameter of the transform block are enabled or disabled. When the control flag is transmitted as enabled, the Rice parameter may vary under different conditions according to the specific coding information of the current block, such as the quantization parameter and bit depth. And the shift parameter and / or offset parameter for Rice parameter derivation in regular residual coding may vary under different conditions according to the specific coding information of the current block, such as the quantization parameter and bit depth. When the control flag is transmitted as disabled (e.g., set to "0"), the default Rice parameter (e.g., 1) is used for all transform skip slices, and the default shift parameter and / or offset parameter (e.g., 0) is used for all transform slices. An example of a corresponding decoding process based on the VVC draft is shown below. Here, TH A and T.H. B is a predetermined threshold (e.g., TH A =8,TH B = 18 or 19). Changes to the VVC draft are shown in bold and italic font in Table 67. It is worth noting that in practice the same logic can be implemented in different ways. For example, the same Rice parameters can be derived using specific equations or lookup tables.
[0361]
[0331] <Slice header syntax>
[0362] [Table 67]
[0363]
[0332] sh_residual_coding_rice_flag equal to 1 means Specifies that the bit-depth dependent Rice parameter derivation process is used for the current slice, and sh_residual_coding_rice_flag equal to 0 specifies that the bit-depth dependent Rice parameter derivation process is not used for the current slice.
[0364] [Table 68]
[0365] [Table 69-1] [Table 69-2]
[0366]
[0333] In yet another example, the corresponding decoding process based on the VVC draft is as follows: where TH is a predetermined threshold (e.g., 18, 19). Changes to the VVC draft are shown in bold and italic font in Table 70. It is worth noting that in practice, the same logic can be implemented in different ways. For example, the same Rice parameters could be derived using a specific equation or lookup table.
[0367] [Table 70-1] [Table 70-2]
[0368]
[0334] According to another aspect of the present disclosure, the values of these above coding tools are generally It is proposed to add a flagging constraint that provides the same general constraint control as others in the general constraint information.
[0369]
[0335] For example, sps_ts_residual_coding_ric equal to 1 sps_ts_residual_coding_rice_present_in_sh_flag specifies that sh_ts_residual_coding_rice_idx may be present in SH syntax structures that reference an 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 SH syntax structures that reference an SPS. According to this disclosure, it is proposed to add the syntax element gci_no_ts_residual_coding_rice_constraint_flag to the general constraint information syntax to provide the same general constraint control as the other flags. An example of the decoding process in the VVC draft is shown below. Changes to the VVC draft are highlighted. Added parts are highlighted in italics.
[0370] [Table 71]
[0371]
[0336] Figure 19 illustrates a method for video coding according to an example of this disclosure. The method can be applied to, for example, a decoder. In step 1902, the decoder can receive a sequence parameter set (SPS) residual coding flag indicating whether an index sh_ts_residual_coding_rice_idx is present in an SH syntax structure that references an SPS.
[0372]
[0337] In step 1904, if it is determined that the value of the SPS residual coding flag is equal to 1, In response to the determination, the decoder may determine that sh_ts_residual_coding_rice_idx is present in a slice head (SH) syntax structure that references the SPS.
[0373]
[0338] In step 1906, in response to determining that the value of the residual coding flag is equal to 0, In response, the decoder can determine that there is no sh_ts_residual_coding_rice_idx in the SH syntax structure that references the SPS.
[0374]
[0339] In another example, pps_ts_residual_coding_rice_f When lag is equal to 1, it specifies that pps_ts_residual_coding_rice_index may be present in the current picture, and when pps_ts_residual_coding_rice_flag is equal to 0, it specifies that pps_ts_residual_coding_rice_idx is not present in the current picture. According to this disclosure, it is proposed to add the syntax element gci_no_ts_residual_coding_rice_constraint_flag to the general constraint information syntax to provide the same general constraint control as other flags. An example of the decoding process of the VVC draft is shown below. The changes to the VVC draft are highlighted. The added parts are highlighted in italics.
[0375] [Table 72]
[0376] In yet another example, sps_rice_adaptation_e equal to 1 enabled_flag is abs_remaining[ ] and dec_abs_ It is shown that the Rice parameters for level binarization can be derived by the formula:
[0377]
[0341] The formula includes 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]))) may be included, and the lists Tx[] and Rx[] are specified as follows: Tx = {32, 128, 512, 2048}>>(1523) Rx[] = {0, 2, 4, 6, 8}
[0378]
[0342] FIG. 20 shows a method for video coding according to an example of the present disclosure. This method can be applied to, for example, a decoder. In step 2002, the decoder can receive a sequence parameter set (SPS) adaptable flag indicating whether alternative Rice parameter derivation for binarization of the syntax abs_remaining and dec_abs_level is used.
[0379]
[0343] In step 2004, in response to the determination that the value of the SPS adaptable flag is equal to 1, the decoder can determine that alternative Rice parameter derivation for binarization of the syntax is used.
[0380]
[0344] In step 2006, in response to the determination that the value of the SPS adaptable flag is equal to 0, the decoder can determine that alternative Rice parameter derivation for binarization of the syntax is not used.
[0381]
[0345] According to the present disclosure, in order to provide the same general constraint control as other flags, it is proposed to add the syntax element gci_no_rice_adaptation_constraint_flag to the general constraint information syntax. An example of the decoding process of the VVC draft is shown below. The changes to the VVC draft are highlighted. The added parts are highlighted in italics.
[0382] [Table 73]
[0383]
[0346] Figure 21 illustrates a method for video coding according to an example of this disclosure. The method can be applied to, for example, a decoder. In step 2102, the decoder can receive a residual coding Rice constraint flag to provide general constraint control over other flags.
[0384]
[0347] In step 2104, if the value of the residual coding Rice constraint flag is equal to 1, In response to determining , the decoder may determine that the value of the other flag is equal to 0.
[0385] The proposed Rice parameter adaptation method is based on transform skip residual coding (TS RC), the proposed method may only be effective when TSRC is enabled. Similarly, one or more embodiments of the present disclosure propose to add one bti stream constraint that requires the value of gci_no_rice_adaptation_constraint_flag to be 1 when transform skip mode is disabled from the general constraint information level, e.g., when the value of gci_no_transform_skip_constraint_flag is set to 1.
[0386]
[0349] The above method can be implemented using an apparatus that includes one or more circuits. This may include 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 apparatus may use circuitry in combination with other hardware or software components to perform the methods described above. Each module, sub-module, unit, or sub-unit disclosed above may be at least partially implemented using one or more circuits.
[0387]
[0350] Other examples of the present disclosure are provided in light of the specification and practice of the present disclosure disclosed herein. It will be apparent to those skilled in the art upon review of the present disclosure. This application is intended to cover any variations, uses, or adaptations of the present disclosure in accordance with its general principles, including such departures from the present disclosure as come within known or customary practice in the art. It is intended that the specification and examples be considered as illustrative only.
[0388] It will 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 can be made without departing from the scope of the present disclosure.
[0389] FIG. 18 illustrates a computing device coupled with a user interface 1860. 18 illustrates an environment 1810. 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.
[0390]
[0352] The processor 1820 typically performs display, data acquisition, data communication, and image processing functions. The processor 1820 controls the overall operation of the computing environment 1810, such as operations related to the processing of the data. The processor 1820 may include one or more processors that execute instructions to perform all or a portion of the steps in the methods described above. Additionally, the processor 1820 may include one or more modules that facilitate interaction between the processor 1820 and other components. The processor may be a central processing unit (CPU), a microprocessor, a single-chip machine, a GPU, etc.
[0391]
[0353] Memory 1840 is used to support the operation of computing environment 1810. The memory 1840 is configured to store various types of data for purposes of storing the various types of data. 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 by using any type of volatile or non-volatile memory device, 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 or optical disk, or a combination thereof.
[0392]
[0354] The I / O interface 1850 connects the processor 1820 to the keyboard, The I / O interface 1850 provides an interface between the peripheral interface module and peripheral devices such as a click wheel, buttons, etc. The buttons include, but are not limited to, a home button, a start scan button, and a stop scan button. The I / O interface 1850 can be coupled to an encoder and a decoder.
[0393] In some embodiments, a computing device for performing the above method is provided. A non-transitory computer-readable storage medium containing a plurality of programs, such as contained in memory 1840, executable by processor 1820 in environment 1810 is also provided. For example, the non-transitory computer-readable storage medium may be a ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc.
[0394]
[0356] A non-transitory computer-readable storage medium having one or more processors The computer-implemented method further includes storing a plurality of programs for execution by a computing device, the plurality of programs, when executed by the one or more processors, causing the computing device to perform the motion estimation method described above.
[0395] In some embodiments, the computing environment 1810 performs the above method. 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 may be implemented using other electronic components.
[0396]
[0358] The description in this disclosure is presented for illustrative purposes only and is not intended to be exhaustive. It is not intended to be limiting or limiting to the present disclosure. Many modifications, variations and alternative implementations will become apparent to one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings.
[0397]
[0359] The examples illustrate the principles of the present disclosure and allow others skilled in the art to readily understand the principles of the present disclosure in various implementations. The underlying principles and various implementations have been chosen and described to provide an understanding of the present disclosure and to maximize their use with various modifications as suited to the particular application contemplated. Therefore, it should be understood that the scope of the disclosure is not limited to the particular examples of implementations disclosed, and that modifications and other implementations are also intended to be included within the scope of the disclosure.
Claims
1. 1. A method for video coding, comprising: receiving, by the decoder, a sequence parameter set (SPS) residual coding flag indicating whether an index sh_ts_residual_coding_rice_idx is present in an SH syntax structure that references an SPS; in response to determining that the value of the SPS residual coding flag is equal to 1, determining that the sh_ts_residual_coding_rice_idx is present in the slice head (SH) syntax structure that references the SPS; in response to determining that the value of the residual coding flag is equal to 0, determining that the sh_ts_residual_coding_rice_idx is not present in the SH syntax structure that references the SPS; A method comprising:
2. receiving, by the decoder, a Picture Parameter Set (PPS) residual coding Rice flag indicating whether an index pps_ts_residual_coding_rice_index is present in a current picture of the video; determining, in response to determining that the value of the PPS residual coding Rice flag is equal to 1, that the pps_ts_residual_coding_rice_index is present in the current picture; determining, in response to determining that the value of the PPS residual coding flag is equal to 0, that the pps_ts_residual_coding_rice_index is not present in the current picture; The method for video coding of claim 1 further comprising:
3. 1. A method for video coding, comprising: receiving, by the decoder, a sequence parameter set (SPS) adaptability flag indicating whether an alternative Rice parameter derivation for binarization of syntaxes abs_remaining and dec_abs_level is used; determining, in response to determining that the value of the SPS adaptable flag is equal to one, that the alternative Rice parameter derivation for syntax binarization is to be used; determining, in response to determining that the value of the SPS adaptable flag is equal to 0, that the alternative Rice parameter derivation for syntax binarization is not to be used; A method comprising:
4. receiving, by the decoder, a Picture Parameter Set (PPS) residual coding Rice flag indicating whether an index pps_ts_residual_coding_rice_index is present in a current picture of the video; determining, in response to determining that the value of the PPS residual coding Rice flag is equal to 1, that the pps_ts_residual_coding_rice_index is present in the current picture; determining, in response to determining that the value of the PPS residual coding flag is equal to 0, that the pps_ts_residual_coding_rice_index is not present in the current picture; The method for video coding of claim 3 further comprising:
5. 1. A method for video coding, comprising: receiving, by a decoder, a residual coding Rice constraint flag to provide general constraint control over other flags; 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; A method comprising:
6. The method for video coding of claim 5 , further comprising the step of determining, in response to determining that the value of the residual coding Rice constraint flag is equal to one, a value of an SPS residual coding flag is equal to zero.
7. 6. The method for video coding of claim 5, further comprising: determining, in response to determining that the value of the transform skip residual coding Rice constraint flag is equal to one, that the value of an SPS transform skip residual coding Rice presence flag is equal to zero.
8. 6. The method for video coding of claim 5, further comprising: determining, in response to determining that the value of the normal residual coding Rice constraint flag is equal to one, that a value of an SPS normal residual coding extension flag is equal to zero.
9. 6. The method for video coding of claim 5, further comprising the step of determining, in response to determining that the value of the residual coding Rice adaptation constraint flag is equal to one, a value of an SPS residual coding adaptation flag is equal to zero.
10. 6. The method for video coding of claim 5, further comprising the step of determining, in response to determining that the value of the residual coding Rice constraint flag is equal to one, that the value of a PPS residual coding Rice flag is equal to zero.
11. The method for video coding of claim 5 , further comprising the step of determining, in response to determining that the value of the residual coding Rice constraint flag is equal to one, a value of an SPS adaptable flag is equal to zero.
12. 1. An apparatus for video coding, comprising: one or more processors; a memory configured to store instructions executable by the one or more processors; 12. An apparatus, wherein the one or more processors, upon execution of the instructions, are configured to perform the method of any of claims 1 to 11.
13. A non-transitory computer-readable storage medium for video coding storing computer-executable instructions that, when executed by one or more computer processors, cause the one or more computer processors to perform the method of any of claims 1 to 11.