JP-2026076317-A - Coefficient coding and decoding methods, encoders, decoders, and computer storage media
Abstract
[Problem] To provide a method for improving the throughput of coefficient coding and decoding, the speed of coding and decoding, and the compression efficiency in video coding and decoding scenarios with high bit depth, high bit rate, high quality, or lossless compression. [Solution] The method analyzes the bitstream to obtain video flag information. If the video flag information indicates that the video satisfies a predetermined condition, the bitstream is analyzed to obtain the position inversion flag information for the last non-zero coefficient and the coordinate information for the last non-zero coefficient. If the position inversion flag information for the last non-zero coefficient indicates that the position inversion of the last non-zero coefficient is to be used, the position of the last non-zero coefficient is determined by calculating the coordinate information for the last non-zero coefficient. According to a predetermined scan order, all coefficients prior to the position of the last non-zero coefficient are decoded to determine the coefficient of the current block. [Selection Diagram] Figure 9
Inventors
- ワン、ファン
- シエ、チーホアン
Assignees
- オッポ広東移動通信有限公司
Dates
- Publication Date
- 20260511
- Application Date
- 20260213
Claims (10)
- A coefficient decoding method applied to a decoder, The bitstream is analyzed to obtain sequence-level flags, and If the sequence-level flag indicates that the video satisfies a predetermined condition, the bitstream is analyzed to obtain the position inversion flag information for the last non-zero coefficient, The bitstream is analyzed to obtain the prefix information of the last non-zero horizontal coordinate, the prefix information of the last non-zero vertical coordinate, the suffix information of the last non-zero horizontal coordinate, and the suffix information of the last non-zero vertical coordinate. Identifying the last non-zero coefficient horizontal coordinate based on the prefix information of the last non-zero coefficient horizontal coordinate and the suffix information of the last non-zero coefficient horizontal coordinate, Identifying the last non-zero coefficient vertical coordinate based on the prefix information of the last non-zero coefficient vertical coordinate and the suffix information of the last non-zero coefficient vertical coordinate, Based on the horizontal coordinate of the last non-zero coefficient and the vertical coordinate of the last non-zero coefficient, the coordinate information of the last non-zero coefficient is identified. When the position inversion flag information for the last non-zero coefficient indicates that the current block should utilize the position inversion of the last non-zero coefficient, the position of the last non-zero coefficient is determined by calculating the coordinate information of the last non-zero coefficient, wherein the coordinate information of the last non-zero coefficient is the horizontal and vertical distance from the position of the last non-zero coefficient to the lower right corner of the current block. This includes decoding all coefficients prior to the position of the last non-zero coefficient according to a predetermined scan order to identify the coefficient of the current block, The last non-zero coefficient horizontal coordinate value is derived as follows: If last_sig_coeff_x_suffix does not exist, then LastSignificantCoeffX = last_sig_coeff_x_prefix, If last_sig_coeff_x_suffix exists, then LastSignificantCoeffX = (1 << ((last_sig_coeff_x_prefix >> 1) - 1)) * (2 + (last_sig_coeff_x_prefix & 1)) + last_sig_coeff_x_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffX = (1 << log2ZoTbWidth) - 1 - LastSignificantCoeffX, The value of the last non-zero coefficient vertical coordinate is derived as follows: If last_sig_coeff_y_suffix does not exist, then LastSignificantCoeffY = last_sig_coeff_y_prefix, If last_sig_coeff_y_suffix exists, then LastSignificantCoeffY = (1 << ((last_sig_coeff_y_prefix >> 1) - 1)) * (2 + (last_sig_coeff_y_prefix & 1)) + last_sig_coeff_y_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffY = (1 << log2ZoTbHeight) - 1 - LastSignificantCoeffY, LastSignificantCoeffX represents the value of the horizontal coordinate of the last non-zero coefficient, LastSignificantCoeffY represents the value of the vertical coordinate of the last non-zero coefficient, last_sig_coeff_x_prefix represents the prefix information of the horizontal coordinate of the last non-zero coefficient, and last_sig_coeff_y_prefix represents the vertical coordinate of the last non-zero coefficient. Represents the prefix information of the Cartesian coordinates, last_sig_coeff_x_suffix represents the suffix information of the horizontal coordinate of the last non-zero coefficient, last_sig_coeff_y_suffix represents the suffix information of the vertical coordinate of the last non-zero coefficient, and reverse_last_sig_coeff_flag represents the position reversal flag information of the last non-zero coefficient. A coefficient decoding method characterized by the following:
- The coefficient decoding method is, If the position inversion flag information for the last non-zero coefficient indicates that the current block does not utilize the position inversion for the last non-zero coefficient, Based on the coordinate information of the last non-zero coefficient, the position of the last non-zero coefficient is directly identified, The process further includes decoding all coefficients prior to the position of the last non-zero coefficient according to the predetermined scan order to identify the coefficient of the current block, The coefficient decoding method according to feature 1.
- The coefficient decoding method is, If the value of the sequence level flag is a first value, then the sequence level flag indicates that the video satisfies the predetermined condition, or The further includes identifying that if the value of the sequence level flag is a second value, the sequence level flag indicates that the video does not satisfy the predetermined condition, The coefficient decoding method according to feature 1.
- The aforementioned pre-set conditions include at least one of high bit depth, high quality, high bit rate, high frame rate, and lossless compression. The coefficient decoding method according to feature 3.
- The coefficient decoding method is, If the value of the position inversion flag information for the last non-zero coefficient is a first value, then the position inversion flag information for the last non-zero coefficient indicates that the current block should utilize the position inversion for the last non-zero coefficient, or The further includes specifying that if the value of the last non-zero coefficient position inversion flag information is a second value, the last non-zero coefficient position inversion flag information indicates that the current block does not utilize the last non-zero coefficient position inversion, The coefficient decoding method according to feature 1.
- A coefficient coding method applied to an encoder, Identifying the sequence level flag and the position of the last non-zero coefficient, If the sequence-level flag indicates that the video satisfies a predetermined condition, then the last non-zero coefficient position inversion flag information is identified, The coordinate information of the last non-zero coefficient is determined based on the position of the last non-zero coefficient and the position inversion flag information of the last non-zero coefficient, wherein if the position inversion flag information of the last non-zero coefficient indicates that the current block should utilize the position inversion of the last non-zero coefficient, the coordinate information of the last non-zero coefficient is determined as the horizontal and vertical distances from the position of the last non-zero coefficient to the lower right corner of the current block. Based on the coordinate information of the last non-zero coefficient, the prefix information of the horizontal coordinate of the last non-zero coefficient, the prefix information of the vertical coordinate of the last non-zero coefficient, the suffix information of the horizontal coordinate of the last non-zero coefficient, and the suffix information of the vertical coordinate of the last non-zero coefficient are identified. The process includes encoding all coefficients prior to the position of the last non-zero coefficient according to a pre-set scan order, and writing the bit information obtained by encoding, the sequence level flag, the prefix information of the horizontal coordinate of the last non-zero coefficient, the prefix information of the vertical coordinate of the last non-zero coefficient, the suffix information of the horizontal coordinate of the last non-zero coefficient, and the suffix information of the vertical coordinate of the last non-zero coefficient to a bitstream, The last non-zero coefficient horizontal coordinate value is derived as follows: If last_sig_coeff_x_suffix does not exist, then LastSignificantCoeffX = last_sig_coeff_x_prefix, If last_sig_coeff_x_suffix exists, then LastSignificantCoeffX = (1 << ((last_sig_coeff_x_prefix >> 1) - 1)) * (2 + (last_sig_coeff_x_prefix & 1)) + last_sig_coeff_x_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffX = (1 << log2ZoTbWidth) - 1 - LastSignificantCoeffX, The value of the last non-zero coefficient vertical coordinate is derived as follows: If last_sig_coeff_y_suffix does not exist, then LastSignificantCoeffY = last_sig_coeff_y_prefix, If last_sig_coeff_y_suffix exists, then LastSignificantCoeffY = (1 << ((last_sig_coeff_y_prefix >> 1) - 1)) * (2 + (last_sig_coeff_y_prefix & 1)) + last_sig_coeff_y_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffY = (1 << log2ZoTbHeight) - 1 - LastSignificantCoeffY, LastSignificantCoeffX represents the value of the horizontal coordinate of the last non-zero coefficient, LastSignificantCoeffY represents the value of the vertical coordinate of the last non-zero coefficient, last_sig_coeff_x_prefix represents the prefix information of the horizontal coordinate of the last non-zero coefficient, and last_sig_coeff_y_prefix represents the vertical coordinate of the last non-zero coefficient. Represents the prefix information of the Cartesian coordinates, last_sig_coeff_x_suffix represents the suffix information of the horizontal coordinate of the last non-zero coefficient, last_sig_coeff_y_suffix represents the suffix information of the vertical coordinate of the last non-zero coefficient, and reverse_last_sig_coeff_flag represents the position reversal flag information of the last non-zero coefficient. A coefficient coding method characterized by the following:
- Identifying the sequence level flags means that If the video satisfies the pre-set conditions, the value of the sequence level flag is identified as a first value, or If the video does not satisfy the pre-set conditions, the value of the sequence level flag is determined to be a second value, including: The coefficient coding method according to feature 6.
- A decoder comprising memory and a processor, The memory is configured to store computer programs, When the computer program is executed by the processor, the processor will: The bitstream is analyzed to obtain sequence-level flags, and If the sequence-level flag indicates that the video satisfies a predetermined condition, the bitstream is analyzed to obtain the position inversion flag information for the last non-zero coefficient, The bitstream is analyzed to obtain the prefix information of the last non-zero horizontal coordinate, the prefix information of the last non-zero vertical coordinate, the suffix information of the last non-zero horizontal coordinate, and the suffix information of the last non-zero vertical coordinate. Identifying the last non-zero coefficient horizontal coordinate based on the prefix information of the last non-zero coefficient horizontal coordinate and the suffix information of the last non-zero coefficient horizontal coordinate, Identifying the last non-zero coefficient vertical coordinate based on the prefix information of the last non-zero coefficient vertical coordinate and the suffix information of the last non-zero coefficient vertical coordinate, Based on the horizontal coordinate of the last non-zero coefficient and the vertical coordinate of the last non-zero coefficient, the coordinate information of the last non-zero coefficient is identified. When the position inversion flag information for the last non-zero coefficient indicates that the current block should utilize the position inversion of the last non-zero coefficient, the position of the last non-zero coefficient is determined by calculating the coordinate information of the last non-zero coefficient, wherein the coordinate information of the last non-zero coefficient is the horizontal and vertical distance from the position of the last non-zero coefficient to the lower right corner of the current block. Decode all coefficients prior to the position of the last non-zero coefficient according to a predetermined scan order to identify the coefficient of the current block, Make it run, The last non-zero coefficient horizontal coordinate value is derived as follows: If last_sig_coeff_x_suffix does not exist, then LastSignificantCoeffX = last_sig_coeff_x_prefix, If last_sig_coeff_x_suffix exists, then LastSignificantCoeffX = (1 << ((last_sig_coeff_x_prefix >> 1) - 1)) * (2 + (last_sig_coeff_x_prefix & 1)) + last_sig_coeff_x_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffX = (1 << log2ZoTbWidth) - 1 - LastSignificantCoeffX, The value of the last non-zero coefficient vertical coordinate is derived as follows: If last_sig_coeff_y_suffix does not exist, then LastSignificantCoeffY = last_sig_coeff_y_prefix, If last_sig_coeff_y_suffix exists, then LastSignificantCoeffY = (1 << ((last_sig_coeff_y_prefix >> 1) - 1)) * (2 + (last_sig_coeff_y_prefix & 1)) + last_sig_coeff_y_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffY = (1 << log2ZoTbHeight) - 1 - LastSignificantCoeffY, LastSignificantCoeffX represents the value of the horizontal coordinate of the last non-zero coefficient, LastSignificantCoeffY represents the value of the vertical coordinate of the last non-zero coefficient, last_sig_coeff_x_prefix represents the prefix information of the horizontal coordinate of the last non-zero coefficient, and last_sig_coeff_y_prefix represents the vertical coordinate of the last non-zero coefficient. Represents the prefix information of the Cartesian coordinates, last_sig_coeff_x_suffix represents the suffix information of the horizontal coordinate of the last non-zero coefficient, last_sig_coeff_y_suffix represents the suffix information of the vertical coordinate of the last non-zero coefficient, and reverse_last_sig_coeff_flag represents the position reversal flag information of the last non-zero coefficient. A decoder characterized by the following features.
- A encoder comprising memory and a processor, The memory is configured to store computer programs, When the computer program is executed by the processor, the processor will: Identifying the sequence level flag and the position of the last non-zero coefficient, If the sequence-level flag indicates that the video satisfies a predetermined condition, then the last non-zero coefficient position inversion flag information is identified, The coordinate information of the last non-zero coefficient is determined based on the position of the last non-zero coefficient and the position inversion flag information of the last non-zero coefficient, wherein if the position inversion flag information of the last non-zero coefficient indicates that the current block should utilize the position inversion of the last non-zero coefficient, the coordinate information of the last non-zero coefficient is determined as the horizontal and vertical distances from the position of the last non-zero coefficient to the lower right corner of the current block. Based on the coordinate information of the last non-zero coefficient, the prefix information of the horizontal coordinate of the last non-zero coefficient, the prefix information of the vertical coordinate of the last non-zero coefficient, the suffix information of the horizontal coordinate of the last non-zero coefficient, and the suffix information of the vertical coordinate of the last non-zero coefficient are identified. Encode all coefficients prior to the position of the last non-zero coefficient according to a pre-set scan order, write the bit information obtained by encoding, the sequence level flag, the prefix information of the horizontal coordinate of the last non-zero coefficient, the prefix information of the vertical coordinate of the last non-zero coefficient, the suffix information of the horizontal coordinate of the last non-zero coefficient, and the suffix information of the vertical coordinate of the last non-zero coefficient to the bitstream. Make it run, The last non-zero coefficient horizontal coordinate value is derived as follows: If last_sig_coeff_x_suffix does not exist, then LastSignificantCoeffX = last_sig_coeff_x_prefix, If last_sig_coeff_x_suffix exists, then LastSignificantCoeffX = (1 << ((last_sig_coeff_x_prefix >> 1) - 1)) * (2 + (last_sig_coeff_x_prefix & 1)) + last_sig_coeff_x_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffX = (1 << log2ZoTbWidth) - 1 - LastSignificantCoeffX, The value of the last non-zero coefficient vertical coordinate is derived as follows: If last_sig_coeff_y_suffix does not exist, then LastSignificantCoeffY = last_sig_coeff_y_prefix, If last_sig_coeff_y_suffix exists, then LastSignificantCoeffY = (1 << ((last_sig_coeff_y_prefix >> 1) - 1)) * (2 + (last_sig_coeff_y_prefix & 1)) + last_sig_coeff_y_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffY = (1 << log2ZoTbHeight) - 1 - LastSignificantCoeffY, LastSignificantCoeffX represents the value of the horizontal coordinate of the last non-zero coefficient, LastSignificantCoeffY represents the value of the vertical coordinate of the last non-zero coefficient, last_sig_coeff_x_prefix represents the prefix information of the horizontal coordinate of the last non-zero coefficient, and last_sig_coeff_y_prefix represents the vertical coordinate of the last non-zero coefficient. Represents the prefix information of the Cartesian coordinates, last_sig_coeff_x_suffix represents the suffix information of the horizontal coordinate of the last non-zero coefficient, last_sig_coeff_y_suffix represents the suffix information of the vertical coordinate of the last non-zero coefficient, and reverse_last_sig_coeff_flag represents the position reversal flag information of the last non-zero coefficient. An encoder characterized by the following features.
- A method for transmitting a bitstream, The bitstream is generated based on a coefficient coding method, The transmission of the aforementioned bitstream, Includes, The coefficient coding method is, Identifying the sequence level flag and the position of the last non-zero coefficient, If the sequence-level flag indicates that the video satisfies a predetermined condition, then the last non-zero coefficient position inversion flag information is identified, The coordinate information of the last non-zero coefficient is determined based on the position of the last non-zero coefficient and the position inversion flag information of the last non-zero coefficient, wherein if the position inversion flag information of the last non-zero coefficient indicates that the current block should utilize the position inversion of the last non-zero coefficient, the coordinate information of the last non-zero coefficient is determined as the horizontal and vertical distances from the position of the last non-zero coefficient to the lower right corner of the current block. Based on the coordinate information of the last non-zero coefficient, the prefix information of the horizontal coordinate of the last non-zero coefficient, the prefix information of the vertical coordinate of the last non-zero coefficient, the suffix information of the horizontal coordinate of the last non-zero coefficient, and the suffix information of the vertical coordinate of the last non-zero coefficient are identified. The process includes encoding all coefficients prior to the position of the last non-zero coefficient according to a pre-set scan order, and writing the bit information obtained by encoding, the sequence level flag, the prefix information of the horizontal coordinate of the last non-zero coefficient, the prefix information of the vertical coordinate of the last non-zero coefficient, the suffix information of the horizontal coordinate of the last non-zero coefficient, and the suffix information of the vertical coordinate of the last non-zero coefficient to the bitstream, The last non-zero coefficient horizontal coordinate value is derived as follows: If last_sig_coeff_x_suffix does not exist, then LastSignificantCoeffX = last_sig_coeff_x_prefix, If last_sig_coeff_x_suffix exists, then LastSignificantCoeffX = (1 << ((last_sig_coeff_x_prefix >> 1) - 1)) * (2 + (last_sig_coeff_x_prefix & 1)) + last_sig_coeff_x_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffX = (1 << log2ZoTbWidth) - 1 - LastSignificantCoeffX, The value of the last non-zero coefficient vertical coordinate is derived as follows: If last_sig_coeff_y_suffix does not exist, then LastSignificantCoeffY = last_sig_coeff_y_prefix, If last_sig_coeff_y_suffix exists, then LastSignificantCoeffY = (1 << ((last_sig_coeff_y_prefix >> 1) - 1)) * (2 + (last_sig_coeff_y_prefix & 1)) + last_sig_coeff_y_suffix, If the value of reverse_last_sig_coeff_flag is 1, then LastSignificantCoeffY = (1 << log2ZoTbHeight) - 1 - LastSignificantCoeffY, LastSignificantCoeffX represents the value of the horizontal coordinate of the last non-zero coefficient, LastSignificantCoeffY represents the value of the vertical coordinate of the last non-zero coefficient, last_sig_coeff_x_prefix represents the prefix information of the horizontal coordinate of the last non-zero coefficient, and last_sig_coeff_y_prefix represents the vertical coordinate of the last non-zero coefficient. Represents the prefix information of the Cartesian coordinates, last_sig_coeff_x_suffix represents the suffix information of the horizontal coordinate of the last non-zero coefficient, last_sig_coeff_y_suffix represents the suffix information of the vertical coordinate of the last non-zero coefficient, and reverse_last_sig_coeff_flag represents the position reversal flag information of the last non-zero coefficient. A method for transmitting a bitstream characterized by the following.
Description
The embodiments of this application relate to the field of video encoding and decoding, and more particularly to coefficient encoding and decoding methods, encoders, decoders, and computer storage media. As demands for higher video display quality increase, computer vision-related fields are gaining attention. In recent years, image processing technology has been successfully applied in various industries. In the video image encoding and decoding process, the encoding side transforms and quantizes the image data awaiting encoding, then compresses and encodes it using an entropy encoding unit. The bitstream generated by entropy encoding is then transmitted to the decoding side. The decoding side analyzes the bitstream, performs inverse quantization and inverse transformation, and then can reconstruct the original input image data. Currently, compared to low-bit-depth, low-quality, low-bitrate video encoding and decoding (which can be referred to as "normal video"), high-bit-depth, high-quality, high-bitrate video encoding and decoding (abbreviated as "high-bit-depth video") typically requires encoding and decoding a larger number of coefficients. Thus, high-bit-depth video, according to existing related schemes, can result in greater overhead, inefficiencies, and potentially impact encoding and decoding speed and throughput. Embodiments of this application provide a coefficient coding and decoding method, an encoder, a decoder, and a computer storage medium. This allows for improved throughput and decoding speed in high-bit-depth, high-bit-rate, high-quality, or lossless video coding and decoding scenarios, as well as improved compression efficiency. The technical invention of this embodiment can be realized as follows: In the first aspect, an embodiment of the present application provides a coefficient decoding method to be applied to a decoder. The method is The bitstream is analyzed to obtain video flag information, and If the video flag information indicates that the video satisfies pre-set conditions, the bitstream is parsed to obtain the position inversion flag information and the coordinate information of the last non-zero coefficient, If the position inversion flag information for the last non-zero coefficient indicates that the current block should utilize the position inversion of the last non-zero coefficient, then the position of the last non-zero coefficient is determined by calculating the coordinate information of the last non-zero coefficient. This includes decoding all coefficients prior to the position of the last non-zero coefficient according to a predetermined scan order to identify the coefficients of the current block. In a second aspect, embodiments of the present application provide a coefficient coding method applicable to an encoder. The method is: Identifying video flag information and the position of the last non-zero coefficient, When video flag information indicates that the video satisfies pre-set conditions, it identifies the last non-zero coefficient position inversion flag information, Based on the position of the last non-zero coefficient and the position inversion flag information of the last non-zero coefficient, the coordinate information of the last non-zero coefficient is identified, This includes encoding all coefficients prior to the position of the last non-zero coefficient according to a predetermined scan order, and writing the bit information obtained by encoding, video flag information, and the coordinate information of the last non-zero coefficient to the bitstream. In a third aspect, an embodiment of the present application provides an encoder comprising a first specific unit and an encoding unit. The first identifying unit is configured to identify video flag information and the position of the last non-zero coefficient, and to identify the position inversion flag information of the last non-zero coefficient if the video flag information indicates that the video satisfies a predetermined condition. The first identifying unit is further configured to identify the coordinate information of the last non-zero coefficient based on the position of the last non-zero coefficient and the position inversion flag information of the last non-zero coefficient. The encoding unit is configured to encode all coefficients prior to the position of the last non-zero coefficient according to a pre-set scan order, and to write the bit information obtained by encoding, video flag information, and the coordinate information of the last non-zero coefficient to the bitstream. In the fourth aspect, an embodiment of the present application provides an encoder comprising a first memory and a first processor. The first memory is configured to store computer programs that can be executed by the first processor. The first processor is configured to perform the method described in the second mode when executing a computer program. In the fifth aspect, an embodiment of the present applicati