Encoding and decoding method and electronic device
The adaptive entropy coding method addresses artifact introduction in end-to-end picture coding by dynamically selecting entropy coding or skipping based on feature value differences, enhancing image quality and efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-01
- Publication Date
- 2026-03-05
AI Technical Summary
Existing end-to-end picture coding processes introduce artifacts due to the skipping of entropy encoding and decoding, which degrades the quality of reconstructed images.
An encoding and decoding method that adaptively determines whether to perform entropy coding or skip entropy coding based on the difference between original and reconstructed feature values, using a flag to indicate the decision, thereby avoiding artifacts in the reconstructed picture.
The method effectively prevents the introduction of artifacts in reconstructed images by optimizing entropy coding decisions, improving coding efficiency and reducing bit rate overhead.
Smart Images

Figure 2026507751000001_ABST
Abstract
Description
[Technical Field]
[0001]
[0003] Technical Field TECHNICAL FIELD Embodiments of the present application relate to the field of encoding and decoding, and in particular to encoding and decoding methods and electronic devices. [Background technology]
[0002]
[0004] Artificial Intelligence (AI) image compression algorithms are implemented based on deep learning and have better compression effects than traditional image compression techniques (such as the Joint Photographic Experts Group (JPEG) or Better Portable Graphics (BPG)). End-to-end picture coding solutions based on deep learning are widely used.
[0003]
[0005] Currently, in the existing end-to-end picture coding process, the codec skips entropy encoding and decoding, which results in artifacts. To There is a possibility of introducing it. Summary of the Invention
[0004]
[0006] In view of this, the present application provides an encoding and decoding method and an electronic device, which can effectively avoid introducing artifacts into a reconstructed picture.
[0005]
[0007] According to a first aspect, an embodiment of the present application provides an encoding method, the method comprising: obtaining a to-be-encoded picture; extracting a feature map of the picture to be coded and determining probability estimates for regions to be coded in the feature map; determining whether to perform adaptive entropy skip coding on the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after the adaptive entropy skip coding on the region to be coded; If yes, perform entropy coding on at least one sub-block in the coding target region based on the probability estimation result of the coding target region, or skip entropy coding on at least one sub-block, and set a flag corresponding to the coding target region to a first value; or If no, performing an entropy coding process on the coding target region based on the probability estimation result of the coding target region, and setting a flag corresponding to the coding target region to a second value; and Encoding the flag.
[0006]
[0008] If the difference between the original feature values of the region to be coded and the reconstructed feature values of the region to be coded, which are determined after the adaptive entropy coding skip process is performed on the region to be coded, is small, this indicates that performing the adaptive entropy coding skip process on the region to be coded will not introduce artifacts into the reconstructed picture of the region to be coded. In this case, the adaptive entropy coding skip process may be performed on the region to be coded. If the difference between the original feature values of the region to be coded and the reconstructed feature values of the region to be coded, which are determined after the adaptive entropy coding skip process is performed on the region to be coded, is large, this indicates that performing the adaptive entropy coding skip process on the region to be coded will introduce artifacts into the reconstructed picture of the region to be coded. In this case, the adaptive entropy coding skip process may be performed on the region to be coded. This can effectively avoid introducing artifacts into the reconstructed picture.
[0007]
[0009] Furthermore, a flag is introduced to indicate whether adaptive entropy encoding skip processing is performed for the region to be coded, and the flag is written into the bitstream. In this way, the flag can be transmitted to the decoder, so that the decoder knows whether to perform adaptive entropy decoding skip processing for the corresponding region to be coded.
[0008]
[0010] For example, a feature map of a picture to be coded can be extracted by using a feature extraction module. The feature extraction module may be implemented based on a neural network. For example, the feature extraction module may be implemented based on a convolutional neural network (CNN). A CNN may be a neural network including a convolutional layer, which may further include network layers such as an activation layer (such as ReLU or PreLU), a pooling layer, a batch normalization layer (BN layer), or a fully connected layer. Conventional convolutional neural networks include LeNet, AlexNet, VGGNet, ResNet, and the like. For example, a basic CNN may include a backbone network. reference and head network Ku The composite CNN may include a backbone network, a neck network, nine, and head network Ku The network included in the CNN is not limited in this application. For example, the feature extraction module may be realized by a combination of multi-layer convolution stacking and a nonlinear mapping activation function.
[0009]
[0011] For example, feature matching Pu is , which is three-dimensional data output by convolutional layers, activation layers, pooling layers, batch normalization layers, and the like in a convolutional neural network. The three dimensions are called width, height, and channel, respectively. For example, a feature map may contain W*H*C feature points, each with a corresponding feature value. For example, the feature values may be floating-point numbers, where W, H, and C are all positive integers.
[0010]
[0012] For example, the feature maps used for the entropy coding process and the adaptive entropy coding skip process may be quantized feature maps.
[0011]
[0013] For example, the feature map may be divided into multiple cubes by using w1×h1×c1 as the basic unit (where w1 is 1 to W). Within range and h1 is an integer between 1 and H. Within range is an integer between 1 and C Within range (c1 is an integer in the range 0 to 100). When c1=1, one cube means one block. One cube may be used as one encoding target area.
[0012]
[0014] In a possible scheme, the probability estimate for each feature point may be a probability P.
[0013]
[0015] In a possible manner, if the probability estimation module performs Gaussian distribution estimation, the probability estimation result may include Gaussian distribution parameters: mean μ and variance σ.
[0014]
[0016] For example, a region to be coded may include multiple feature points, and at least one feature point may be grouped into one sub-block. Thus, a region to be coded may include multiple sub-blocks, and each sub-block may include at least one feature point. The adaptive entropy coding skip process may: perform entropy coding on at least one sub-block in the region to be coded, or skip entropy coding on at least one sub-block, based on the probability estimation result of the region to be coded. In this way, the adaptive entropy coding skip process may be performed on the region to be coded by using a sub-block as the smallest unit, thereby improving coding efficiency and reducing bit rate overhead.
[0015]
[0017] For example, if a sub-block contains one feature point, the adaptive entropy coding skip process may be to: perform entropy coding on at least one feature point in the target region based on the probability estimation result of the target region; or skip entropy coding on at least one feature point. In this way, the target region may be coded using the feature point as the smallest unit. This can improve the reconstruction quality compared to coding the target region using a sub-block as the smallest unit.
[0016]
[0018] In a possible method, "setting a flag corresponding to the region to be coded to a first value" may be performed first, then "coding the flag" is performed, and then "performing an entropy coding process on at least one sub-block in the region to be coded, or skipping the entropy coding process on at least one sub-block, based on the probability estimation result of the region to be coded."
[0017]
[0019] In a possible method, "performing an entropy coding process on at least one sub-block in the region to be coded based on the probability estimation result of the region to be coded, or skipping the entropy coding process on at least one sub-block" may be performed first, then "setting a flag corresponding to the region to be coded to a first value" is performed, and then "encoding the flag" is performed.
[0018]
[0020] In a possible method, "setting a flag corresponding to the region to be coded to a second value" may be performed first, then "coding the flag" is performed, and then "performing an entropy coding process on the region to be coded based on the probability estimation result of the region to be coded" is performed.
[0019]
[0021] In a possible method, "performing an entropy coding process on the region to be coded based on the probability estimation result of the region to be coded" may be performed first, then "setting a flag corresponding to the region to be coded to a second value" is performed, and then "coding the flag" is performed.
[0020]
[0022] In other words, the present application does not limit the order in which the flag is coded and the entropy coding process or the adaptive entropy coding skip process is performed on the coding target region.
[0021]
[0023] For example, after an entropy coding process or an adaptive entropy coding skip process is performed, a bitstream of the region to be coded may be obtained; the bitstreams of all the regions to be coded in the feature map can form the bitstream of the picture to be coded; and the flag can be written into the bitstream as a new syntax element.
[0022]
[0024] For example, flags may be coded to obtain a bitstream of flags; the bitstreams of all regions to be coded in a feature map and the corresponding flag bitstreams can form the bitstream of the picture to be coded.
[0023]
[0025] It should be understood that there may be multiple flag encoding schemes, and this is not a limitation in this application.
[0024]
[0026] For example, the flag may be represented by a skip flag, a flag, or a cube flag.
[0025]
[0027] For example, the first value may be set as desired, for example, to 1. The second value may be set as desired, for example, to 0. The first value is different from the second value.
[0026]
[0028] According to a first aspect, the step of encoding the flag comprises: determining a value probability of a flag based on a probability estimation result of the coding target region, the value probability of the flag being a probability that the flag is a first value or a probability that the flag is a second value; and Encoding the flag based on the value probability of the flag.
[0027]
[0029] For example, flags may alternatively be written to the bitstream after binarization of the flags, and coding flags based on their value probabilities can reduce bitrate overhead compared to writing flags to the bitstream after binarization of the flags.
[0028]
[0030] In this way, the flag is coded by using a probability estimation result that can be obtained by both the encoder and the decoder, so that the decoder decodes the bitstream to obtain the flag.
[0029]
[0031] According to the first aspect or any one of the aforementioned implementations of the first aspect, the step of determining whether to perform adaptive entropy coding skip processing on the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after the adaptive entropy coding skip processing is performed on the region to be coded, includes: determining the error between the reconstructed feature values and the original feature values; and If the error is greater than an error threshold, determining to perform an adaptive entropy coding skip process on the region to be coded; or If the error is equal to or less than the error threshold, the method includes determining not to perform adaptive entropy coding skip processing on the region to be coded.
[0030]
[0032] For example, the original feature values of the region to be coded may include original feature values of multiple feature points included in the region to be coded, and the reconstructed feature values of the region to be coded may include reconstructed feature values of multiple feature points included in the region to be coded.
[0031]
[0033] For example, whether to perform adaptive entropy coding skip processing on the region to be coded may be determined based on the error between the reconstructed feature values and the original feature values of the region to be coded. For example, the error may be compared with an error threshold Thr. The error threshold Thr may be set based on the maximum error between the reconstructed feature values and the original feature values of the region to be coded when no artifacts occur in the reconstructed picture of the region to be coded. This is not a limitation of the present application. If the error between the reconstructed feature values and the original feature values of the region to be coded is greater than the error threshold Thr, this indicates that performing adaptive entropy coding skip processing on the region to be coded will introduce artifacts into the reconstructed picture of the region to be coded. In this case, adaptive entropy coding skip processing may not be performed on the region to be coded. If the error between the reconstructed feature values and the original feature values of the region to be coded is equal to or less than the error threshold Thr, it may be determined that performing adaptive entropy coding skip processing on the region to be coded will not introduce artifacts into the reconstructed picture of the region to be coded. In this case, adaptive entropy coding skip processing may be performed on the region to be coded.
[0032]
[0034] According to the first aspect or any one of the aforementioned implementations of the first aspect, the region to be coded includes a plurality of sub-blocks, and the probability estimation result of the region to be coded includes probability estimation results of the plurality of sub-blocks; The step of determining the value probability of the flag based on the probability estimation results of the region to be coded includes the step of determining the value probability of the flag based on the sum of the probability estimation results of a plurality of sub-blocks within the region to be coded.
[0033]
[0035] For example, when the probability estimation result is a Gaussian distribution parameter, the Gaussian distribution parameters of all feature points included in all sub-blocks within the encoding target region may be accumulated to obtain the Gaussian distribution parameter of the flag. The average of the flag is μ i = Σμ, and the variance of the flag is σ f = Σσ. Then, the probability of the Gaussian distribution having the average μ f and the variance σ f in the interval [-0.5, 0.5] is used as the probability that the flag is the first value.
[0034]
[0036] According to the first aspect or any one of the foregoing implementations of the first aspect, the encoding target region includes a plurality of sub-blocks, the sub-blocks include at least one feature point, and the probability estimation result of the encoding target region includes the probability estimation results of a plurality of feature points; The step of determining the value probability of the flag based on the probability estimation result of the encoding target region is: including the step of determining the value probability of the flag based on the number of feature points for which entropy encoding processing is skipped in the encoding target region and the total number of feature points in the encoding target region, The number of feature points for which entropy encoding processing is skipped in the encoding target region is determined based on the probability estimation result of the number of a plurality of feature points included in the encoding target region.
[0035]
[0037] In a possible manner, when the probability that the value y ^ [w][h][c] of the feature point is the original feature value k1 is T0 or more, the feature point y ^ [w][h][c] is determined as a feature point for which entropy encoding processing is skipped.
[0036]
[0038] In a possible manner, when the Gaussian distribution parameter of the feature point y ^ [w][h][c] satisfies abs(μ - k1) + σ < T1, the feature point y ^ [w][h][c] is determined as a feature point for which entropy encoding processing is skipped.
[0037]
[0039] In a possible manner, when the probability estimation result of the sub-block satisfies a pre-set condition, the feature point y within the sub-block ^ [w][h][c] is determined as a feature point for which entropy encoding processing is skipped.
[0038]
[0040] In a possible method, the pre-set condition may be that the probability P of the sub-block is T2 or more. The probability P of the sub-block may be the average of the probabilities P of all the feature points within the sub-block, or may be the maximum value or the minimum value of the probabilities P of all the feature points within the sub-block. This is not limited in the present application. T2 may be a pre-set threshold value. T2 may be any value between 0 and 1. For example, T2 may be 0.99, 0.98, 0.97, or 0.95. This is not limited in the present application. In a possible manner, T2 may be equal to T0. In a possible manner, T2 may not be equal to T0.
[0039]
[0041] In a possible manner, when the probability estimation result is a Gaussian distribution parameter, the pre-set condition may be that the Gaussian distribution parameter of the sub-block satisfies abs(μ - k1)+σ < T3. In a possible manner, the average μ of the sub-block may be the average of the averages μ of all the feature points within the sub-block, and the variance σ of the sub-block may be Sub the average of the variances σ of all the feature points within the block. In a possible manner, the average μ of the sub-block may be the maximum value or the minimum value of the averages μ of all the feature points within the sub-block, and the variance σ of the sub-block may be Sub the maximum value or the minimum value of the variances σ of all the feature points within the block. T3 may be a pre-set threshold value. T3 may be any value between 0 and 1. For example, T3 may be 0.2, 0.3, or 0.4. This is not limited in the present application. In a possible method, T3 may be equal to T1. In a possible manner, T3 may not be equal to T1.
[0040]
[0042] According to the first aspect or any one of the aforementioned implementations of the first aspect, the coding target area includes a plurality of sub-blocks, the probability estimation result of the coding target area includes probability estimation results of the plurality of sub-blocks, the sub-block includes at least one feature point, and the probability estimation result of the sub-block includes a probability estimation result of the feature point included in the sub-block; The step of performing an entropy coding process on at least one sub-block in the coding target region or skipping the entropy coding process on at least one sub-block based on the probability estimation result of the coding target region includes: For the first sub-block in a multiple sub-block: If the probability estimation result of the first sub-block satisfies a preset condition, skip the entropy coding process for all feature points in the first sub-block; or If the probability estimation result of the first sub-block does not satisfy a predetermined condition, the method includes a step of performing an entropy coding process on all feature points in the first sub-block based on the probability estimation results of all feature points in the first sub-block.
[0041]
[0043] According to a second aspect, an embodiment of the present application provides a decoding method, the method comprising: First, receiving a bitstream; Then, determining a probability estimation result of the region to be decoded in the feature map corresponding to the bitstream, and decoding the bitstream to obtain a flag corresponding to the region to be decoded; If the flag is a first value, perform an entropy decoding process on at least one sub-block in the region to be decoded, or set the feature values of the feature points in the at least one sub-block to specific values based on the probability estimation result of the region to be decoded; or If the flag is a second value, performing an entropy decoding process on the decoding target region based on the probability estimation result of the decoding target region, and obtaining feature values of feature points in the decoding target region; and The method includes performing reconstruction based on feature values of feature points in the feature map to obtain a reconstructed picture. The flag is set by the encoder based on whether adaptive entropy encoding skip processing will introduce artifacts into the reconstructed picture, so that the decoder determines whether adaptive entropy decoding skip processing or entropy decoding processing will be performed on the region to be decoded based on the flag in the decoding process. This can avoid introducing artifacts into the reconstructed picture obtained through decoding.
[0042]
[0044] According to a second aspect, the step of decoding the bitstream to obtain a flag corresponding to a region to be decoded includes: determining a value probability of a flag based on the probability estimation result of the decoding target region, wherein the value probability of the flag is the probability that the flag is a first value or the probability that the flag is a second value; and The method includes decoding the bitstream to obtain a flag corresponding to the region to be decoded based on the value probability of the flag.
[0043]
[0045] According to the second aspect or any one of the above-mentioned implementations of the second aspect, the region to be decoded includes a plurality of sub-blocks, and the probability estimation result of the region to be decoded includes the probability estimation result of the plurality of sub-blocks; The step of determining the value probability of the flag based on the probability estimation results of the region to be decoded includes the step of determining the value probability of the flag based on the sum of the probability estimation results of a plurality of sub-blocks within the region to be decoded.
[0044]
[0046] According to the second aspect or any one of the above-mentioned implementations of the second aspect, the decoding target area includes a plurality of sub-blocks, each sub-block includes at least one feature point, and the probability estimation result of the decoding target area includes probability estimation results of the plurality of feature points; The step of determining the value probability of the flag based on the probability estimation result of the region to be decoded includes: determining the number of feature points for which entropy decoding processing has been skipped in the decoding target region based on the probability estimation results of the plurality of feature points included in the decoding target region; and The method includes a step of determining a value probability of the flag based on the number of feature points for which the entropy decoding process has been skipped in the region to be decoded and the total number of feature points in the region to be decoded.
[0045]
[0047] According to the second aspect or any one of the aforementioned implementations of the second aspect, the region to be decoded includes a plurality of sub-blocks, the probability estimation result of the region to be decoded includes the probability estimation results of the plurality of sub-blocks, the sub-block includes at least one feature point, and the probability estimation result of the sub-block includes the probability estimation result of the feature point included in the sub-block; The step of performing an entropy decoding process on at least one sub-block in the decoding target region or setting the feature values of the feature points in the at least one sub-block to a specific value based on the probability estimation result of the decoding target region, and obtaining the feature values of the feature points in the decoding target region, includes: For the first sub-block in a multiple sub-block: If the probability estimation result of the first sub-block satisfies a predetermined condition, set the feature values of all feature points in the first sub-block to a specific value; or If the probability estimation result of the first sub-block does not satisfy a predetermined condition, the method includes a step of performing an entropy decoding process on all feature points in the first sub-block based on the probability estimation result of all feature points in the first sub-block, and obtaining feature values of all feature points in the first sub-block.
[0046]
[0048] The second aspect or any one implementation of the second aspect corresponds to the first aspect or any one implementation of the first aspect, respectively. For technical effects corresponding to the second aspect and any one implementation of the second aspect, please refer to the technical effects corresponding to the first aspect and any one implementation of the first aspect. Details will not be described again here.
[0047]
[0049] According to a third aspect, the present application further provides an encoding method, the encoding method comprising: First, a step of obtaining a picture to be coded; Then extracting a feature map of the picture to be coded and determining a probability estimate of a region to be coded in the feature map; determining whether to skip the entropy coding process for the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after the entropy coding process for the region to be coded has been skipped; If yes, skip the entropy coding process for the region to be coded and set the flag corresponding to the region to be coded to a first value; or If no, performing an entropy coding process on the coding target region based on the probability estimation result of the coding target region, and setting a flag corresponding to the coding target region to a second value; determining a value probability of a flag based on a probability estimation result of the coding target region, the value probability of the flag being a probability that the flag is a first value or a probability that the flag is a second value; and Encoding the flag based on the value probability of the flag.
[0048]
[0050] If the difference between the original feature values of the region to be coded and the reconstructed feature values of the region to be coded that are determined after the entropy coding process for the region to be coded is skipped is small, this indicates that skipping the entropy coding process for the region to be coded will not introduce artifacts into the reconstructed picture for the region to be coded. In this case, the entropy coding process for the region to be coded may be skipped. If the difference between the original feature values of the region to be coded and the reconstructed feature values of the region to be coded that are determined after the entropy coding process for the region to be coded is skipped is large, this indicates that skipping the entropy coding process for the region to be coded will introduce artifacts into the reconstructed picture for the region to be coded. In this case, the entropy coding process for the region to be coded may be skipped. This can effectively avoid introducing artifacts into the reconstructed picture.
[0049]
[0051] Furthermore, skipping the entropy coding process for the entire coding target region can improve the efficiency of the entropy coding skip process, thereby improving the coding efficiency.
[0050]
[0052] Furthermore, encoding flags based on their value probabilities can reduce bitrate overhead compared to writing flags into the bitstream after binarizing them. Flags are encoded using probability estimation results that can be obtained by both the encoder and the decoder, so that the decoder obtains the flags by decoding the bitstream.
[0051]
[0053] According to the third aspect or any one of the aforementioned implementations of the third aspect, the step of determining whether to skip the entropy coding process for the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded that are determined after the entropy coding process for the region to be coded is skipped includes: determining the error between the reconstructed feature values and the original feature values; and If the error is greater than an error threshold, determining to skip the entropy coding process for the region to be coded; or If the error is equal to or less than the error threshold, determining not to skip the entropy coding process for the region to be coded.
[0052]
[0054] According to the third aspect or any one of the aforementioned implementations of the third aspect, the encoding target region includes a plurality of feature points, and the probability estimation result of the encoding target region includes a probability estimation result of the plurality of feature points in the encoding target region; The step of determining the value probability of the flag based on the probability estimation result of the region to be coded includes the step of determining the value probability of the flag based on the sum of the probability estimation results of a plurality of feature points within the region to be coded.
[0053]
[0055] According to the third aspect or any one of the aforementioned implementations of the third aspect, the encoding target region includes a plurality of feature points, and the probability estimation result of the encoding target region includes a probability estimation result of the plurality of feature points in the encoding target region; The step of determining the value probability of the flag based on the probability estimation result of the region to be coded includes: determining the number of feature points in the encoding target region for which entropy encoding processing has been skipped based on the probability estimation result of the encoding target region; and The method includes a step of determining a value probability of the flag based on the number of feature points for which the entropy coding process has been skipped in the coding target region and the total number of feature points in the coding target region.
[0054]
[0056] According to the third aspect or any one of the above-mentioned implementations of the third aspect, the step of determining the number of feature points for which the entropy coding process is skipped in the coding target region based on the probability estimation result of the coding target region includes: The method includes a step of using the number of feature points in the region to be coded, whose probability estimation results satisfy a predetermined condition, as the number of feature points in the region to be coded that will be skipped in the entropy coding process.
[0055]
[0057] The third aspect or any one implementation of the third aspect corresponds to the first aspect or any one implementation of the first aspect, respectively. For technical effects corresponding to the third aspect and any one implementation of the third aspect, please refer to the technical effects corresponding to the first aspect and any one implementation of the first aspect. Details will not be described again here.
[0056]
[0058] According to a fourth aspect, the present application provides a decoding method, the method comprising: First, receiving a bitstream; Then, determining a probability estimate of a region to be decoded in a feature map corresponding to the bitstream; determining a value probability of a flag corresponding to the region to be decoded based on the probability estimation result of the region to be decoded, where the value probability of the flag is a probability that the flag is a first value or a probability that the flag is a second value; decoding the bitstream to obtain flags based on the value probabilities of the flags; If the flag is a first value, set the feature value of the feature point in the decoding target region to a specific value; or If the flag is a second value, performing an entropy decoding process on the decoding target region based on the probability estimation result of the decoding target region to obtain feature values of feature points in the decoding target region; and Performing a reconstruction based on feature values of the feature points in the feature map to obtain a reconstructed picture.
[0057]
[0059] According to a fourth aspect, the decoding target region includes a plurality of feature points, and the probability estimation result of the decoding target region includes a probability estimation result of the plurality of feature points in the decoding target region; The step of determining the value probability of a flag corresponding to the region to be decoded based on the probability estimation result of the region to be decoded includes: determining the value probability of the flag based on the sum of the probability estimation results of a plurality of feature points within the region to be decoded.
[0058]
[0060] According to the fourth aspect or any one of the aforementioned implementations of the fourth aspect, the decoding target region includes a plurality of feature points, and the probability estimation result of the decoding target region includes a probability estimation result of a plurality of feature points in the encoding target region; The step of determining a value probability of a flag corresponding to the region to be decoded based on the probability estimation result of the region to be decoded includes: determining the number of feature points for which entropy decoding processing has been skipped in the decoding target region based on the probability estimation result of the decoding target region; and The method includes a step of determining a value probability of the flag based on the number of feature points for which the entropy decoding process has been skipped in the region to be decoded and the total number of feature points in the region to be decoded.
[0059]
[0061] According to the fourth aspect or any one of the above-mentioned implementations of the fourth aspect, the step of determining the number of feature points for which the entropy decoding process is skipped in the decoding target region based on the probability estimation result of the decoding target region includes: The method includes a step of using the number of feature points in the region to be coded, whose probability estimation results satisfy a predetermined condition, as the number of feature points in the region to be coded that will be skipped in the entropy coding process.
[0060]
[0062] The fourth aspect or any one implementation of the fourth aspect corresponds to the first aspect or any one implementation of the first aspect, respectively. For technical effects corresponding to the fourth aspect and any one implementation of the fourth aspect, please refer to the technical effects corresponding to the first aspect and any one implementation of the first aspect. Details will not be described again here.
[0061]
[0063] According to a fifth aspect, an embodiment of the present application further provides an encoder, the encoder comprising: an acquisition module configured to acquire a picture to be encoded; a feature extraction module configured to extract a feature map of the picture to be encoded; a probability estimation module configured to determine a probability estimation result for a region to be coded in the feature map; an entropy coding module configured to determine whether to perform adaptive entropy coding skip processing on the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after the adaptive entropy coding skip processing has been performed on the region to be coded; If yes, perform entropy coding on at least one sub-block in the coding target region based on the probability estimation result of the coding target region, or skip entropy coding on at least one sub-block, and set a flag corresponding to the coding target region to a first value; or If no, perform entropy coding on the coding target region based on the probability estimation result of the coding target region, and set the flag corresponding to the coding target region to a second value; and An entropy coding module is included that encodes the flag.
[0062]
[0064] It should be understood that the encoder may further perform the steps in the first aspect and any one of the implementations of the first aspect.
[0063]
[0065] The fifth aspect or any one implementation of the fifth aspect corresponds to the first aspect or any one implementation of the first aspect, respectively. For technical effects corresponding to the fifth aspect and any one implementation of the fifth aspect, please refer to the technical effects corresponding to the first aspect and any one implementation of the first aspect. Details will not be described again here.
[0064]
[0066] According to a sixth aspect, an embodiment of the present application provides a decoder, the decoder comprising: a receiving module configured to receive the bitstream; an entropy decoding module configured to determine a probability estimation result of a region to be decoded in a feature map corresponding to the bitstream, and decode the bitstream to obtain a flag corresponding to the region to be decoded; If the flag is a first value, perform entropy decoding on at least one sub-block in the region to be decoded, or set the feature values of the feature points in the at least one sub-block to a specific value based on the probability estimation result of the region to be decoded, to obtain the feature values of the feature points in the region to be decoded; or an entropy decoding module that, if the flag is a second value, performs an entropy decoding process on the decoding target region based on the probability estimation result of the decoding target region, and obtains feature values of feature points in the decoding target region; and and a feature decoding module configured to perform reconstruction based on feature values of the feature points in the feature map to obtain a reconstructed picture.
[0065]
[0067] It should be understood that the decoder may further perform the steps in the second aspect and any one implementation of the second aspect.
[0066]
[0068] The sixth aspect or any one implementation of the sixth aspect corresponds to the first aspect or any one implementation of the first aspect, respectively. For technical effects corresponding to the sixth aspect and any one implementation of the sixth aspect, please refer to the technical effects corresponding to the first aspect and any one implementation of the first aspect. Details will not be described again here.
[0067]
[0069] According to a seventh aspect, the present application further provides an encoder, the encoder comprising: an acquisition module configured to acquire a picture to be encoded; a feature extraction module configured to extract a feature map of the picture to be encoded; a probability estimation module configured to determine a probability estimation result for a region to be coded in the feature map; an entropy coding module configured to determine whether to skip an entropy coding process for a region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after the entropy coding process for the region to be coded is skipped; If yes, skip the entropy coding process for the region to be coded and set the flag corresponding to the region to be coded to a first value; or If no, perform entropy coding on the coding target region based on the probability estimation result of the coding target region, and set the flag corresponding to the coding target region to a second value; determining a value probability of a flag based on the probability estimation result of the coding target region, the value probability being the probability that the flag is a first value or the probability that the flag is a second value; and An entropy coding module is included that codes the flags based on their value probabilities.
[0068]
[0070] It should be understood that the encoder may further perform the steps in the third aspect and any one implementation of the third aspect.
[0069]
[0071] The seventh aspect or any one implementation of the seventh aspect corresponds to the first aspect or any one implementation of the first aspect, respectively. For technical effects corresponding to the seventh aspect and any one implementation of the seventh aspect, please refer to the technical effects corresponding to the first aspect and any one implementation of the first aspect. Details will not be described again here.
[0070]
[0072] According to an eighth aspect, the present application further provides a decoder, the decoder comprising: a receiving module configured to receive the bitstream; determining a probability estimate of a region to be decoded in a feature map corresponding to the bitstream; Determine a probability value of a flag corresponding to the decoding target region, based on the probability estimation result of the decoding target region, the probability value being the probability that the flag is a first value or the probability that the flag is a second value; Decoding the bitstream to obtain flags based on the value probabilities of the flags; If the flag is a first value, set the feature value of the feature point in the decoding target region to a specific value; or If the flag is a second value, performing an entropy decoding process on the decoding target region based on the probability estimation result of the decoding target region to obtain feature values of feature points in the decoding target region; and An entropy decoding module configured to perform reconstruction based on feature values of feature points in the feature map to obtain a reconstructed picture.
[0071]
[0073] It should be understood that the decoder may further perform the steps in the fourth aspect and any one implementation of the fourth aspect.
[0072]
[0074] The eighth aspect or any one implementation of the eighth aspect corresponds to the first aspect or any one implementation of the first aspect, respectively. For technical effects corresponding to the eighth aspect and any one implementation of the eighth aspect, please refer to the technical effects corresponding to the first aspect and any one implementation of the first aspect. Details will not be described again here.
[0073]
[0075] According to a ninth aspect, an embodiment of the present application provides an electronic device including a memory and a processor, the memory being coupled to the processor, the memory storing program instructions that, when executed by the processor, enable the electronic device to perform steps of the first aspect (or the third aspect) or any possible implementation of the first aspect (or the third aspect).
[0074]
[0076] The ninth aspect and any one implementation of the ninth aspect correspond to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect), respectively. For technical effects corresponding to the ninth aspect and any implementation of the ninth aspect, please refer to the technical effects corresponding to the first aspect (or the third aspect) and any implementation of the first aspect (or the third aspect). Details will not be described again here.
[0075]
[0077] According to a tenth aspect, an embodiment of the present application provides an electronic device including a memory and a processor, the memory being coupled to the processor, the memory storing program instructions that, when executed by the processor, enable the electronic device to perform steps of the second aspect (or the fourth aspect) or any possible implementation of the second aspect (or the fourth aspect).
[0076]
[0078] The tenth aspect and any one implementation of the tenth aspect correspond to the second aspect (or the fourth aspect) and any one implementation of the second aspect (or the fourth aspect), respectively. For technical effects corresponding to the tenth aspect and any one implementation of the tenth aspect, please refer to the technical effects corresponding to the second aspect (or the fourth aspect) and any one implementation of the second aspect (or the fourth aspect). Details will not be described again here.
[0077]
[0079] According to an eleventh aspect, an embodiment of the present application provides a chip including one or more interface circuits and one or more processors, wherein the one or more processors receive or transmit data via the one or more interface circuits, and execute computer instructions that enable an electronic device to perform the steps of the first aspect (or the third aspect) or any possible implementation of the first aspect (or the third aspect).
[0078]
[0080] The eleventh aspect and any one implementation of the eleventh aspect correspond to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect), respectively. For technical effects corresponding to the eleventh aspect and any one implementation of the eleventh aspect, please refer to the technical effects corresponding to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect). Details will not be described again here.
[0079]
[0081] According to a twelfth aspect, an embodiment of the present application provides a chip including one or more interface circuits and one or more processors, the one or more processors receiving or transmitting data via the one or more interface circuits, and executing computer instructions by the one or more processors enabling an electronic device to perform the steps of the second aspect (or the fourth aspect) or any possible implementation of the second aspect (or the fourth aspect).
[0080]
[0082] The twelfth aspect and any one implementation of the twelfth aspect correspond to the second aspect (or the fourth aspect) and any one implementation of the second aspect (or the fourth aspect), respectively. For technical effects corresponding to the twelfth aspect and any one implementation of the twelfth aspect, please refer to the technical effects corresponding to the second aspect (or the fourth aspect) and any one implementation of the second aspect (or the fourth aspect). Details will not be described again here.
[0081]
[0083] According to a thirteenth aspect, an embodiment of the present application provides a computer-readable storage medium storing a computer program that, when executed on a computer or processor, enables the computer or processor to perform the steps of the first aspect (or the third aspect) or any possible implementation of the first aspect (or the third aspect).
[0082]
[0084] The thirteenth aspect and any one implementation of the thirteenth aspect correspond to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect), respectively. For technical effects corresponding to the thirteenth aspect and any one implementation of the thirteenth aspect, please refer to the technical effects corresponding to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect). Details will not be described again here.
[0083]
[0085] According to a fourteenth aspect, an embodiment of the present application provides a computer-readable storage medium storing a computer program which, when executed on a computer or processor, enables the computer or processor to perform the steps of the second aspect (or the fourth aspect) or any possible implementation of the second aspect (or the fourth aspect).
[0084]
[0086] The fourteenth aspect and any one implementation of the fourteenth aspect correspond to the second aspect (or the fourth aspect) and any one implementation of the second aspect (or the fourth aspect), respectively. For technical effects corresponding to the fourteenth aspect and any one implementation of the fourteenth aspect, please refer to the technical effects corresponding to the second aspect (or the fourth aspect) and any one implementation of the second aspect (or the fourth aspect). Details will not be described again here.
[0085]
[0087] According to a fifteenth aspect, an embodiment of the present application provides a computer program product, the computer program product comprising computer instructions that, when executed by a computer or processor, enable the computer or processor to perform the steps of the first aspect (or the third aspect) or any possible implementation of the first aspect (or the third aspect).
[0086]
[0088] The fifteenth aspect and any one implementation of the fifteenth aspect correspond to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect), respectively. For technical effects corresponding to the fifteenth aspect and any one implementation of the fifteenth aspect, please refer to the technical effects corresponding to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect). Details will not be described again here.
[0087]
[0089] According to a sixteenth aspect, an embodiment of the present application provides a computer program product, the computer program product comprising computer instructions that, when executed by a computer or processor, enable the computer or processor to perform the steps of the second aspect (or the fourth aspect) or any possible implementation of the second aspect (or the fourth aspect).
[0088]
[0090] The sixteenth aspect and any one implementation of the sixteenth aspect correspond to the second aspect (or the fourth aspect) and any one implementation of the second aspect (or the fourth aspect), respectively. For technical effects corresponding to the sixteenth aspect and any one implementation of the sixteenth aspect, please refer to the technical effects corresponding to the second aspect (or the fourth aspect) and any one implementation of the second aspect (or the fourth aspect). Details will not be described again here.
[0089]
[0091] According to a seventeenth aspect, an embodiment of the present application provides a bitstream storage device. The device includes a receiver and at least one storage medium. The receiver is configured to receive a bitstream. The at least one storage medium is configured to store the bitstream. The bitstream is generated according to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect).
[0090]
[0092] The seventeenth aspect and any one implementation of the seventeenth aspect correspond to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect), respectively. For technical effects corresponding to the seventeenth aspect and any one implementation of the seventeenth aspect, please refer to the technical effects corresponding to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect). Details will not be described again here.
[0091]
[0093] According to an eighteenth aspect, an embodiment of the present application provides a bitstream transmission device. The device includes a transmitter and at least one storage medium. The at least one storage medium is configured to store a bitstream. The bitstream is generated according to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect). The transmitter retrieves the bitstream from the storage medium and transmits it via a transmission medium. device The bitstream is configured to be transmitted to a side device.
[0092]
[0094] The eighteenth aspect and any one implementation of the eighteenth aspect correspond to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect), respectively. For technical effects corresponding to the eighteenth aspect and any one implementation of the eighteenth aspect, please refer to the technical effects corresponding to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect). Details will not be described again here.
[0093]
[0095] According to a nineteenth aspect, an embodiment of the present application provides a bitstream distribution system, the system including: at least one storage medium configured to store at least one bitstream, the at least one bitstream being generated according to the first aspect (or the third aspect) and any one implementation of the first aspect (or the third aspect); and a bitstream distribution system configured to retrieve a target bitstream from the at least one storage medium and distribute the target bitstream to the at least one storage medium. device and a streaming media device configured to transmit to a destination device, the streaming media device including a content server or a content distribution server.
[0094]
[0096] The 19th aspect and any one implementation of the 19th aspect correspond to the 1st aspect (or the 3rd aspect) and any one implementation of the 1st aspect (or the 3rd aspect), respectively. For technical effects corresponding to the 19th aspect and any one implementation of the 19th aspect, please refer to the technical effects corresponding to the 1st aspect (or the 3rd aspect) and any one implementation of the 19th aspect. Details will not be described again here. [Brief explanation of the drawings]
[0095] [Figure 1a]
[0097] FIG. 1a is a diagram of an exemplary application scenario. [Figure 1b]
[0098] FIG. 1b is a diagram of an exemplary application scenario. [Figure 1c]
[0099] Figure 1c is a diagram of an exemplary end-to-end picture compression process. [Figure 2]
[0100] FIG. 2 is a diagram of an exemplary encoding process. [Figure 3]
[0101] FIG. 3 is a diagram of an exemplary decoding process. [Figure 4]
[0102] Figure 4 is a diagram of an exemplary end-to-end picture compression process. [Figure 5a]
[0103] FIG. 5a is a diagram of an exemplary encoding process. [Figure 5b]
[0104] FIG. 5b is a diagram of an exemplary structure of a side information extraction module. [Figure 5c]
[0105] FIG. 5c is a diagram of an exemplary structure of a probability estimation module. [Figure 6]
[0106] FIG. 6 is a diagram of an exemplary decoding process. [Figure 7]
[0107] Figure 7 is a diagram of an exemplary end-to-end picture compression process. [Figure 8]
[0108] FIG. 8 is a diagram of an exemplary encoding process. [Figure 9]
[0109] FIG. 9 is a diagram of an exemplary decoding process. [Figure 10]
[0110] Figure 10 is a diagram of an exemplary machine vision task based on encoding and decoding. [Figure 11]
[0111] FIG. 11 is a diagram of an exemplary structure of the device. DETAILED DESCRIPTION OF THE INVENTION
[0096]
[0112] Hereinafter, the technical solutions in the embodiments of the present application will be clearly and fully described with reference to the accompanying drawings in the embodiments of the present application. It is clear that the described embodiments are only a part of the embodiments of the present application, and not all of them. All other embodiments obtained by those skilled in the art based on the embodiments of the present application without creative efforts shall fall within the protection scope of the present application.
[0097]
[0113] The term "and / or" in this specification merely describes an association relationship between related objects and represents three possible relationships. For example, A and / or B can represent three cases: only A exists, both A and B exist, and only B exists.
[0098]
[0114] In the specification and claims of the embodiments of this application, the terms "first," "second," and similar terms are intended to distinguish between different objects, but do not indicate a particular order of those objects. For example, "first target object," "second target object," and the like are used to distinguish between different target objects, but are not used to describe a particular order of the target objects.
[0099]
[0115] In the embodiments of the present application, words such as "example" or "for example" indicate an example, instance, or illustration. Any embodiment or design solution described in the embodiments of the present application as an "example" or "for example" should not be construed as being preferred or having more advantages over another embodiment or design solution. Rather, the use of words such as "example" or "for example" is intended to present the relevant concept in a particular way.
[0100]
[0116] In describing the embodiments of the present application, "plurality" means two or more unless otherwise specified. For example, a plurality of processing units means two or more processing units, and a plurality of systems means two or more systems.
[0101]
[0117] 1A is a diagram of an exemplary application scenario. The application scenarios in FIG. 1A are various video service scenarios based on video encoding and decoding, such as a video conferencing scenario, a video call scenario, an online education scenario, a remote tutor scenario, a low-latency live streaming scenario, a cloud gaming scenario, a wireless screen projection scenario, and a wireless extended screen scenario. This is not limited to the embodiments of the present application.
[0102]
[0118] As shown in FIG. 1a, for example, the first device may be a video ·Capture· Modules (e.g., cameras), Capture The first device may include a pre-processing module, an encoding module (or encoder), and a transmission module. For example, the encoding module may be a software module or a hardware module. This is not limited to the embodiments of the present application. It should be understood that FIG. 1a is merely an example of the first device. In some other embodiments of the present application, the first device has more modules than those shown in FIG. 1a. This is not limited to the embodiments of the present application.
[0103]
[0119] As shown in FIG. 1a, for example, the second device may include a display module, a decoding module (or decoder), and a receiving module. For example, the decoding module may be a software module or a hardware module. This is not limited to the embodiments of the present application. It should be understood that FIG. 1a is merely an example of the second device. In some other embodiments of the present application, the second device has more modules than those shown in FIG. 1a. This is not limited to the embodiments of the present application.
[0104]
[0120] Further, as shown in FIG. 1a, for example, the camera of the first device may capture original video data. Capture And then, Capture The process of transmitting the original video data to a second device for display is as follows: ·Capture· The module stores the original video data Capture Then, the original video data Capture Input to the preprocessing module. CaptureThe preprocessing module performs a series of preprocessing operations on the original video data and outputs the preprocessed original video data to the encoding module. The encoding module then encodes the preprocessed original video data to obtain a bitstream (the bitstream may also be called a bitstream or a codestream) and outputs the bitstream obtained through encoding to the transmitting module. The transmitting module then transmits the bitstream to a second device. Thereafter, a receiving module of the second device receives the bitstream and then outputs the bitstream to the decoding module. The decoding module then decodes the bitstream to obtain reconstructed video data and outputs the reconstructed video data to the display module. The display module renders and displays the reconstructed video data.
[0105]
[0121] For example, the first device may include, but is not limited to, a server, a personal computer (PC), a notebook computer, a tablet computer, a mobile phone, and a wristwatch.
[0106]
[0122] For example, the second device may include, but is not limited to, a PC, a notebook computer, a tablet computer, a mobile phone, and a wristwatch.
[0107]
[0123] For example, in a video conferencing scenario, the first device may be a PC or notebook computer and the second device may be a PC or notebook computer.
[0108]
[0124] For example, in an online education scenario, the first device may be a PC or notebook computer and the second device may be a tablet computer.
[0109]
[0125] For example, in a cloud gaming scenario, the first device may be a server and the second device may be a tablet computer, a PC, a notebook computer, or a mobile phone.
[0110]
[0126] It should be understood that the present application may alternatively be applied to picture encoding and decoding scenarios, which is not a limitation of the present application.
[0111]
[0127] It should be understood that the transmitting module of the first device may alternatively transmit the bitstream directly to the receiving module of the second device without a network, which is not a limitation in this application.
[0112]
[0128] It should be understood that the bitstream obtained through encoding may alternatively be stored directly.
[0113]
[0129] FIG. 1b is a diagram of an exemplary application scenario. The application scenario in FIG. 1b is a machine vision task (computer vision task) based on video (or picture) encoding and decoding. Machine vision tasks include, but are not limited to, object classification, recognition, segmentation, and the like, which are not limited in this application.
[0114]
[0130] For the first device in Fig. 1b, please refer to the description of the first device in Fig. 1a, and the details will not be described again here.
[0115]
[0131] For example, as shown in Figure 1b, the second device may include a receiving module, a decoding module (or decoder), and a machine vision task module configured to perform a machine vision task.
[0116]
[0132] Further, as shown in FIG. 1b, for example, the camera of the first device may capture the original video data. Capture And then, Capture The process of sending the original video data to a second device to perform a machine vision task is as follows: ·Capture· The module stores the original video data Capture Then, the original video data Capture Input to the preprocessing module. Capture The preprocessing module performs a series of preprocessing operations on the original video data and outputs the preprocessed original video data to the encoding module. The encoding module then encodes the preprocessed original video data to obtain a bitstream (which may also be referred to as a bitstream or a codestream) and outputs the bitstream obtained through encoding to the transmitting module. The transmitting module then transmits the bitstream to a second device. The receiving module of the second device then receives the bitstream and then outputs the bitstream to a decoding module. The decoding module then decodes the bitstream and outputs features obtained in the decoding process to a machine vision task module. The machine vision task module then performs a machine vision task based on the features obtained in the decoding process to obtain a machine vision task result.
[0117]
[0133] For example, the first device may include, but is not limited to, a server, a personal computer (PC), a notebook computer, a tablet computer, a mobile phone, and a wristwatch.
[0118]
[0134] For example, the second device may include, but is not limited to, a PC, a notebook computer, a tablet computer, a mobile phone, and a wristwatch.
[0119]
[0135] It should be understood that the transmitting module of the first device may alternatively transmit the bitstream directly to the receiving module of the second device without a network, which is not a limitation in this application.
[0120]
[0136] It should be understood that the present application may alternatively be applied to other service scenarios based on video (or picture) encoding and decoding, which is not limited in the present application.
[0121]
[0137] Figure 1c is a diagram of an exemplary end-to-end picture compression process.
[0122]
[0138] As shown in Figure 1c, for example, the encoder may include a feature extraction module, a feature quantization module, a probability estimation module, and an entropy coding module. It should be understood that the encoder may alternatively include more or fewer modules than those shown in Figure 1c. This is not a limitation of the present application.
[0123]
[0139] For example, the feature extraction module may be configured to perform feature extraction. For example, the feature quantization module may be configured to perform quantization. For example, the entropy coding module may be configured to perform an entropy coding process (e.g., Huffman Coding (HC), Arithmetic Coding (AC), and Asymmetric Numeric System (ANS)). For example, the probability estimation module may be configured to perform probability estimation.
[0124]
[0140] As shown in Figure 1c, for example, the decoder may include a feature decoding module, a feature dequantization module, a probability estimation module, and an entropy decoding module. It should be understood that the decoder may alternatively include more or fewer modules than those shown in Figure 1c. This is not a limitation in the present application. The feature dequantization module is an optional module.
[0125]
[0141] For example, the entropy decoding module may be configured to perform an entropy decoding process. For example, the feature inverse quantization module may be configured to perform inverse quantization. For example, the feature decoding module may be configured to perform feature decoding to obtain a reconstructed picture. For example, the probability estimation module may be configured to perform probability estimation.
[0126]
[0142] Figure 2 is a diagram of an exemplary encoding process. Figure 2 shows the encoding process based on Figures 1a and 1c. In the embodiment of Figure 2, an example of encoding one picture is used for explanation. The picture may be an independent picture or may be one frame in a video, which is not limited in this application. Steps S201 to S209 are all steps in the encoding process of the encoder.
[0127]
[0143] S201: A picture to be coded is obtained.
[0128]
[0144] S202: Extract a feature map of the picture to be coded.
[0129]
[0145] For example, after the encoder obtains a picture to be coded, a feature extraction module may extract features of the picture to be coded to obtain a feature map of the picture to be coded.
[0130]
[0146] For example, the feature extraction module may be implemented based on a neural network. For example, the feature extraction module may be implemented based on a convolutional neural network (CNN). A CNN may be a neural network including a convolutional layer, and the neural network may further include network layers such as an activation layer (such as ReLU or PreLU), a pooling layer, a batch normalization layer (BN layer), or a fully connected layer. Conventional convolutional neural networks include LeNet, AlexNet, VGGNet, ResNet, and the like. For example, a basic CNN may include a backbone network and a head network; a compound CNN includes a backbone network, a neck network, and a head network. The networks included in a CNN are not limited in this application.
[0131]
[0147] For example, the feature extraction module may be implemented by a combination of multi-layer convolutional stacking and a non-linear mapping activation function.
[0132]
[0148] For example, a feature map is three-dimensional data output by a convolutional layer, activation layer, pooling layer, or batch normalization layer in a convolutional neural network, where the three dimensions are called width, height, and channel, respectively. For example, a feature map contains W*H*C feature points, each with a corresponding feature value. For example, the feature values may be floating-point numbers, where W, H, and C are all positive integers.
[0133]
[0149] Then, the feature quantization module can quantize the feature maps. It should be noted that the feature maps in S203 to S209 may be quantized feature maps.
[0134]
[0150] For example, the feature map may be divided into multiple regions; then, each region is sequentially determined as one encoding target region; then, S203 to S209 are performed on the encoding target region to encode the encoding target region. Hereinafter, one encoding target region is used as an example for explanation. The encoding target region may be a two-dimensional region or a three-dimensional region. The encoding target region may include one or more feature points. This is not limited in the present application.
[0135]
[0151] S203: Determine the probability estimation result of the region to be coded in the feature map.
[0136]
[0152] For example, the probability estimation module may perform probability estimation for each feature point in the feature map to determine a probability estimation result for each feature point in the feature map, thereby obtaining a probability estimation result for the region to be coded in the feature map. The probability estimation result for the region to be coded may include the probability estimation results of all feature points in the region to be coded. The probability estimation process will be described later.
[0137]
[0153] S204: Determine whether to perform adaptive entropy coding skip processing on the region to be coded, based on the original feature values of the region to be coded and the reconstructed feature values of the region to be coded that are determined after adaptive entropy coding skip processing is performed on the region to be coded.
[0138]
[0154] For example, when adaptive entropy coding skip processing is performed on the region to be coded, first, the reconstructed feature values of the region to be coded are determined; then, the reconstructed feature values of the region to be coded are compared with the original feature values to determine whether to perform adaptive entropy coding skip processing on the region to be coded.
[0139]
[0155] For example, it is possible to determine whether artifacts will be introduced after adaptive entropy skip coding is performed on the region to be coded through a comparison between the reconstructed feature values and the original feature values of the region to be coded. If it is determined based on the result of the comparison between the reconstructed feature values and the original feature values of the region to be coded that artifacts will be introduced after adaptive entropy skip coding is performed on the region to be coded, adaptive entropy skip coding may not be performed on the region to be coded. In this case, S207, S208, and S209 may be performed. If it is determined based on the result of the comparison between the reconstructed feature values and the original feature values of the region to be coded that artifacts will not be introduced after adaptive entropy skip coding is performed on the region to be coded, adaptive entropy skip coding may be performed on the region to be coded. In this case, S205, S206, and S209 may be performed. A specific determination method will be described later. This can avoid introducing artifacts into the reconstructed picture.
[0140]
[0156] The original feature values of the region to be coded may include original feature values of multiple feature points included in the region to be coded, and the reconstructed feature values of the region to be coded may include reconstructed feature values of multiple feature points included in the region to be coded.
[0141]
[0157] S205: Based on the probability estimation result of the coding target region, perform entropy coding processing on at least one sub-block in the coding target region, or skip entropy coding processing on at least one sub-block.
[0142]
[0158] For example, the region to be coded may include multiple feature points, and at least one feature point may be grouped into one sub-block. In this manner, the region to be coded may be divided into multiple sub-blocks, and each sub-block may include at least one feature point. The probability estimation result for the region to be coded may include the probability estimation results for multiple sub-blocks, and the probability estimation result for each sub-block may include the probability estimation results for the feature points included in the sub-block. For example, the adaptive entropy coding skip process may: perform entropy coding on at least one sub-block in the region to be coded, or skip entropy coding on at least one sub-block, based on the probability estimation result for the region to be coded. In this manner, the adaptive entropy coding skip process may be performed on the region to be coded by using a sub-block as the smallest unit, thereby improving coding efficiency and reducing bit rate overhead.
[0143]
[0159] Specifically, for each sub-block, it is determined whether to skip the entropy coding process for the sub-block based on the probability estimation result of the sub-block; if it is determined not to skip the entropy coding process for the sub-block, entropy coding process is performed on the feature values of the feature points in the sub-block based on the probability estimation result of the feature points in the sub-block; or if it is determined to skip the entropy coding process for the sub-block, entropy coding process is skipped for all feature points in the sub-block; after the entropy coding process for all feature points in the sub-block is skipped, the feature values of all feature points in the sub-block are set to a specific value (to facilitate the determination of a reconstructed picture of the area to be coded).
[0144]
[0160] It should be understood that if a sub-block contains only one feature point, the adaptive entropy coding skip process is performed by using the feature point as the smallest unit. In this case, the adaptive entropy coding skip process may be: performing entropy coding on at least one feature point in the coding target region based on a probability estimation result of the coding target region, or skipping entropy coding on at least one feature point. In this way, the coding target region can be coded by using the feature point as the smallest unit. This can improve the reconstruction quality compared to coding the coding target region by using a sub-block as the smallest unit.
[0145]
[0161] S206: A flag corresponding to the encoding target region is set to a first value.
[0146]
[0162] For example, if it is determined to perform adaptive entropy decoding skip processing on a region to be coded in a feature map, a flag (which may be represented by, for example, a skip flag, a flag, or a cube flag) corresponding to the region to be coded may be set to a first value; then, S209 is executed, i.e., the flag is coded. In this manner, the flag may be transmitted to the decoder, so that the decoder knows whether to perform adaptive entropy decoding skip processing on the corresponding region to be coded. The first value may be set as needed, for example, to 1.
[0147]
[0163] Based on the probability estimation result of the region to be coded, after adaptive entropy coding skip processing is performed on the region to be coded, it is possible to obtain a bitstream of the region to be coded (i.e., a bitstream obtained through adaptive entropy coding skip processing).
[0148]
[0164] 2, it should be noted that S209 is executed after S206, and S205 is executed after S209. It should be understood that in the present application, alternatively, S205 may be executed first, then S206, and then S209. In other words, the present application does not limit the order of encoding the flag and performing the adaptive entropy encoding skip process on the encoding target region. In the present application, an example in which S209 is executed after S206 and S205 is executed after S209 is used for explanation.
[0149]
[0165] S207: Based on the probability estimation result of the coding target region, entropy coding processing is performed on the coding target region.
[0150]
[0166] For example, if it is determined not to perform adaptive entropy coding skip processing on the encoding target region in the feature map, entropy coding processing is performed on each feature point of the encoding target region based on the probability estimation result of each feature point of the encoding target region, to obtain a bitstream of the encoding target region (i.e., a bitstream obtained through the entropy coding processing).
[0151]
[0167] S208: The flag corresponding to the encoding target region is set to a second value.
[0152]
[0168] For example, if it is determined that adaptive entropy coding skip processing is not to be performed on the region to be coded in the feature map, the flag may be set to a second value; then, S209 is executed, i.e., the flag is coded. In this way, the flag can be transmitted to the decoder, so that the decoder knows whether to perform adaptive entropy decoding skip processing on the corresponding region to be coded. The second value may be set as needed, for example, to 0.
[0153]
[0169] It should be noted that the first value and the second value are different.
[0154]
[0170] 2, it should be noted that S209 is executed after S208, and S207 is executed after S209. It should be understood that in the present application, alternatively, S207 may be executed first, then S208, and then S209. In other words, the present application does not limit the order of encoding the flag and performing the entropy encoding process on the encoding target region. In the present application, an example in which S209 is executed after S208 and S207 is executed after S209 is used for explanation.
[0155]
[0171] S209: The flag is encoded.
[0156]
[0172] In a possible scheme, the flag may be encapsulated as a syntax element within the bitstream generated through the entropy coding skip process or the bitstream generated through the entropy coding process.
[0157]
[0173] In a possible manner, the flags can be coded to obtain a bitstream of flags; the bitstreams of all the regions to be coded in the feature map and the corresponding flag bitstreams can form the bitstream of the picture to be coded.
[0158]
[0174] It should be understood that there may be multiple flag encoding schemes, which is not a limitation in this application and will be discussed in more detail below.
[0159]
[0175] For example, S204 to S209 may be performed by an entropy encoding module.
[0160]
[0176] For example, after all the regions to be coded in the feature map are coded according to S203 to S209, the bitstream of the picture to be coded may be obtained.
[0161]
[0177] For example, the present application provides a bitstream storage device. The device includes a receiver and at least one storage medium. The receiver includes: figure 2. A digital video signal processing device configured to receive a bitstream generated according to the encoding method in claim 2; and at least one storage medium configured to store the bitstream.
[0162]
[0178] For example, the present application provides a bitstream transmission device, which includes a transmitter and at least one storage medium. The at least one storage medium includes: figurea transmitter configured to retrieve the bitstream from the storage medium and transmit the bitstream through a transmission medium; device The device is configured to transmit the received signal to the destination device.
[0163]
[0179] For example, the present application provides a bitstream distribution system, which: figure at least one storage medium configured to store at least one bitstream generated according to the encoding method in claim 2; and device and a streaming media device configured to transmit the content to a destination device, the streaming media device including a content server or a content distribution server.
[0164]
[0180] 3 is a diagram of an exemplary decoding process. FIG. 3 shows a decoding process based on FIGS. 1a and 1c. The decoding process of FIG. 3 corresponds to the encoding process of FIG.
[0165]
[0181] S301: Receive a bitstream.
[0166]
[0182] For example, a feature map corresponding to a bitstream may be divided into multiple regions; then, each region is determined in turn as a region to be decoded; then, S302 to S306 are performed on the region to be decoded to decode the region to be decoded. Hereinafter, one region to be decoded is used as an example for explanation. The region to be decoded may be a two-dimensional region or a three-dimensional region. The region to be decoded may include one or more feature points. It should be understood that the feature map is divided into multiple regions in a consistent manner in the decoding process and the encoding process.
[0167]
[0183] S302: Determine a probability estimation result for a region to be decoded in a feature map corresponding to the bitstream.
[0168]
[0184] For example, the probability estimation module may perform probability estimation for each feature point in the feature map to determine a probability estimation result for each feature point in the feature map, thereby obtaining a probability estimation result for the region to be decoded in the feature map, which may include the probability estimation results of all feature points in the region to be decoded.
[0169]
[0185] It should be understood that the process of S302 corresponds to the process of S203, and the details will be explained later.
[0170]
[0186] S303: The bitstream is decoded to obtain a flag corresponding to the region to be decoded.
[0171]
[0187] For example, the decoder can decode the bitstream to obtain the flag corresponding to the region to be decoded.
[0172]
[0188] It should be noted that, in a possible manner, S302 may be executed first, and then S303 may be executed. In this case, S303 may be implemented by: decoding the bitstream and obtaining a flag corresponding to the region to be decoded based on the probability estimation result of the region to be decoded. In a possible manner, S302 and S303 may be executed in parallel. In this case, S303 may be implemented by: reading a flag corresponding to the region to be decoded from the bitstream. Specifically, The order of S302 and S303 is as follows: It is determined according to a flag encoding method, the details of which will be explained later.
[0173]
[0189] S304: If the flag is a first value, perform entropy decoding processing on at least one sub-block of the area to be decoded, or set the feature value of the feature point of at least one sub-block to a specific value based on the probability estimation result of the area to be decoded, and obtain the feature value of the feature point of the area to be decoded.
[0174]
[0190] For example, if the flag corresponding to the region to be decoded is a first value, the encoder may determine that it has performed adaptive entropy encoding skip processing on the region to be decoded. Therefore, the decoder can perform adaptive entropy decoding skip processing on the region to be decoded based on the probability estimation result of the region to be decoded, and obtain feature values of feature points in the region to be decoded.
[0175]
[0191] For example, the adaptive entropy decoding skip process may be: performing an entropy decoding process on at least one sub-block of the area to be decoded, or setting the feature value of the feature point of at least one sub-block to a specific value based on the probability estimation result of the area to be decoded, and obtaining the feature value of the feature point of the area to be decoded.
[0176]
[0192] Specifically, the region to be decoded may include multiple feature points, and at least one feature point may be grouped into one sub-block. Thus, the region to be decoded may be divided into multiple sub-blocks, and each sub-block may include at least one feature point. The probability estimation result for the region to be decoded may include the probability estimation results for multiple sub-blocks, and the probability estimation result for each sub-block may include the probability estimation results for all feature points included in the sub-block. For each sub-block, a decision is made based on the probability estimation result for the sub-block as to whether to skip the entropy decoding process for the sub-block; if it is determined not to skip the entropy decoding process for the sub-block, an entropy decoding process may be performed on all feature points in the sub-block based on the probability estimation result for the sub-block to obtain feature values for all feature points in the sub-block; or, if it is determined to skip the entropy decoding process for the sub-block, the entropy decoding process for the feature point may be skipped, and the feature values of all feature points in the sub-block may be set to a specific value. In this way, an adaptive entropy decoding skip process may be performed on the region to be decoded by using a sub-block as the smallest unit, thereby improving the decoding efficiency.
[0177]
[0193] It should be understood that if a sub-block contains only one feature point, the adaptive entropy decoding skip process is performed by using the feature point as the smallest unit. In this case, the adaptive entropy decoding skip process may be: performing an entropy decoding process on at least one feature point in the region to be decoded based on the probability estimation result of the region to be decoded, or skipping the entropy decoding process on at least one feature point. In this way, the region to be decoded can be decoded by using the feature point as the smallest unit. Compared to decoding the region to be decoded by using a sub-block as the smallest unit, this can improve the reconstruction quality.
[0178]
[0194] S305: If the flag is the second value, entropy decoding is performed on the decoding target region based on the probability estimation result of the decoding target region, to obtain feature values of feature points in the decoding target region.
[0179]
[0195] For example, if the flag corresponding to the region to be decoded is a second value, the encoder may determine that it has performed an entropy encoding process on the region to be decoded. Therefore, the decoder may perform an entropy decoding process on each feature point in the region to be decoded based on the probability estimation result of each feature point in the region to be decoded, to obtain a feature value of each feature point in the region to be decoded.
[0180]
[0196] For example, S302 to S305 may be performed by an entropy decoding module.
[0181]
[0197] S306: Perform reconstruction based on the feature values of the feature points in the feature map to generate a reconstructed picture.
[0182]
[0198] In this way, after S302 to S305 are performed for all decoding target regions in the feature map, the feature values of all feature points in the feature map may be obtained. Then, the feature dequantization module can dequantize the feature values of all feature points in the feature map; then, the feature decoding module can perform reconstruction based on the dequantized feature values of all feature points in the feature map to obtain a reconstructed picture.
[0183]
[0199] For example, the feature decoding module may be implemented based on a neural network, e.g., the feature decoding module may be implemented based on a convolutional neural network.
[0184]
[0200] The encoding and decoding processes are described in detail below.
[0185]
[0201] Figure 4 is a diagram of an exemplary end-to-end picture compression process.
[0186]
[0202] For example, the encoding process may include feature extraction, quantization, side information extraction, probability estimation, and arithmetic coding, as shown in Figure 4. The feature extraction of Figure 4 may be performed by the feature extraction module of Figure 1c; the quantization of Figure 4 may be performed by the feature quantization module of Figure 1c; the probability estimation of Figure 4 may be performed by the probability estimation module of the encoder of Figure 1c; and the arithmetic coding of Figure 4 may be performed by the entropy coding module of Figure 1c.
[0187]
[0203] For example, the encoder may further include a side information extraction module configured to perform side information extraction.
[0188]
[0204] As shown in Figure 4, for example, the feature map y is obtained after the feature extraction module performs feature extraction on the picture to be coded. ^ is obtained after the feature map y is quantized by the feature quantization module. Furthermore, after the side information extraction module performs side information extraction on the feature map y, the side information z ^ is obtained and output to the probability estimation module, which then calculates the side information z ^ , and the probability estimation result of the feature map y (i.e., the feature map y ^ Then, the entropy coding module obtains the feature map y ^ Based on the probability estimation results of the feature maps, the bit stream can be obtained (see Figure 5 for details). a (See the explanation in
[0189]
[0205] For example, the side information extraction module may alternatively extract the feature map y ^Perform side information extraction on the side information z ^ This is not a limitation in the present application.
[0190]
[0206] For example, side information z ^ After the side information z ^ may further be written into the bitstream so that the probability estimation module of the decoder performs the probability estimation.
[0191]
[0207] For example, the decoding process may include arithmetic decoding, probability estimation, and picture reconstruction, as shown in Figure 4. The arithmetic decoding of Figure 4 may be performed by the entropy decoding module of Figure 1c; the picture reconstruction of Figure 4 may be performed by the feature decoding module of Figure 1c; and the probability estimation of Figure 4 may be performed by the probability estimation module of the decoder of Figure 1c.
[0192]
[0208] As shown in FIG. 4, for example, a decoder may parse the bitstream to extract side information z ^ Get the side information z ^ Perform probability estimation based on the feature map y ^ Then, the probability estimate of the feature map y ^ Based on the probability estimation results, arithmetic decoding is performed to obtain the feature map y ^ Then, we obtain the feature map y ^ A picture reconstruction is performed based on the ,to obtain a reconstructed picture.
[0193]
[0209] The encoding and decoding processes will now be described in detail with reference to FIG.
[0194]
[0210] 5a is a diagram of an exemplary encoding process. FIG. 5a shows an encoding process based on FIG.
[0195]
[0211] S501: A picture to be coded is obtained.
[0196]
[0212] S502: A feature map of the picture to be coded is extracted.
[0197]
[0213] For example, the feature map extracted by the feature extraction module for the picture to be coded may be referred to as feature map y.
[0198]
[0214] S503: Extract side information of the feature map.
[0199]
[0215] In a possible manner, the feature map y can be input to a side information extraction module, which extracts side information of each feature point y[w][h][c] in the feature map y to obtain side information ẑ, where w ranges from 1 to W. Within range and h is an integer from 1 to H. Within range where c is an integer between 1 and C. Within range is an integer.
[0200]
[0216] In one possible approach, the feature map y is first quantized to produce the feature map y ^ is obtained; then the feature map y ^ is input to the side information extraction module, which extracts the feature map y ^ Each feature point y in ^ Extract the side information of [w][h][c] and add the side information z ^ Get.
[0201]
[0217] Figure 5b illustrates an exemplary structure of a side information extraction module. As shown in Figure 5b, the side information extraction module may be a neural network and may include an abs (absolute value function), a Conv (convolution) layer, and a ReLU (activation) layer. Conv N×3×3 / 1 indicates that the convolution kernel size of the convolution layer is N×3×3 and the convolution stride is 1. Conv N×5×5 / 2 indicates that the convolution kernel size of the convolution layer is N×5×5 and the convolution stride is 2.
[0202]
[0218] It should be understood that Figure 5b is merely an example of a side information extraction module. The side information extraction module in the present application may include more or fewer network layers / activation layers than those shown in Figure 5b. This is not a limitation of the present application. Furthermore, the convolution kernel size and convolution stride of the convolution layer are not limited in the present application. Furthermore, the side information extraction module in the present application may further include another network layer. This is also not a limitation of the present application.
[0203]
[0219] S504: Probability estimation is performed based on the side information to determine the probability estimation result of the region to be coded in the feature map.
[0204]
[0220] For example, the probability estimation module estimates the feature map y based on the side information of each feature point y[w][h][c] in the feature map y. ^ The probability estimation is performed for each feature point y[w][h][c] in the feature map y to obtain the probability estimation result for each feature point y[w][h][c] in the feature map y, and further obtain the probability estimation result for the region to be coded.
[0205]
[0221] In a possible scheme, the probability estimate for each feature point may be a probability P.
[0206]
[0222] In a possible manner, if the probability estimation module performs Gaussian distribution estimation, the probability estimation result may include Gaussian distribution parameters: mean μ and variance σ.
[0207]
[0223] 5c is a diagram of an exemplary structure of the probability estimation module. As shown in FIG. 5c, for example, the probability estimation module may be a neural network and may include a Conv (convolutional) layer and a ReLU (activation) layer. Conv 2M×3×3 / 1 indicates that the convolutional kernel size of the convolutional layer is 2M×3×3 and the convolutional stride is 1. Conv N×5×5 / 2 indicates that the convolutional kernel size of the convolutional layer is N×5×5 and the convolutional stride is 2.
[0208]
[0224] For example, the feature map y ^ may be divided into multiple cubes with w1×h1×c1 as the basic unit (w1 is 1 to W) Within range and h1 is an integer between 1 and H. Within range and c1 is an integer between 1 and C. Within range If c1=1, one cube means one block.
[0209]
[0225] In the following, an example in which one coding target region is one cube is used for explanation. For each cube, it is determined whether to perform adaptive entropy coding skip processing on the cube based on the cube's probability estimation result. Please refer to the following description of S505 and S506.
[0210]
[0226] S505: After the adaptive entropy coding skip process is performed on the coding target region, reconstructed feature values of feature points in the coding target region are determined.
[0211]
[0227] In a possible scheme, one feature point y in the cube ^ Regarding [w][h][c], the feature point y ^ It is determined whether the probability P that the value of [w][h][c] is the original feature value (which can be represented by k1) is greater than or equal to T0; Feature point y ^If the probability that the value of [w][h][c] is k1 is T0 or more, a specific value (which can be represented by k2) is the feature point y ^ is used as the reconstructed feature value of [w][h][c]; or feature point y ^ If the probability that the value of [w][h][c] is k1 is less than T0, the feature point y ^ the original feature value of [w][h][c] is the feature point y ^ may be used as the reconstructed feature value of [w][h][c].
[0212]
[0228] In a possible way, when the probability estimation is Gaussian distribution estimation, the probability estimation result is the Gaussian distribution parameters: mean μ and variance σ, and for one feature point y within the cube ^ regarding [w][h][c], the feature point y ^ determines whether the Gaussian distribution parameters of [w][h][c] satisfy the following condition: abs(μ - k1)+σ < T1; the feature point y ^ when the Gaussian distribution parameters of [w][h][c] satisfy abs(μ - k1)+σ < T1, k2 may be used as ^ the reconstructed feature value of [w][h][c]; or the feature point y ^ when the Gaussian distribution parameters of [w][h][c] do not satisfy abs(μ - k1)+σ < T1, y ^ the original feature value of [w][h][c] may be used as ^ the reconstructed feature value of [w][h][c].
[0213]
[0229] For example, T0 and T1 are preset threshold values, and T0 and T1 may each be any value between 0 and 1. This is not limited in this application. For example, T0 is 0.99, 0.98, 0.97, or 0.95. For example, T1 is 0.2, 0.3, or 0.4. Also, k_2 may be any value, specifically, it is set as needed, for example, 0, 1, 2, or 3. This is not limited in this application.
[0214]
[0230] In this way, reconstructed feature values for each feature point in the cube may be obtained.
[0215]
[0231] S506: Determine whether to perform adaptive entropy coding skip processing on the encoding target region based on the reconstructed feature values and the original feature values of the encoding target region.
[0216]
[0232] Then, an error between the reconstructed feature values of the cube and the original feature values may be calculated. Based on the error, it is determined whether to perform adaptive entropy coding skip processing on the cube. For example, the minimum mean square error (MES) between the reconstructed feature values of the feature points in the cube and the original feature values may be calculated as the error.
[0217]
[0233] For example, if the error between the reconstructed feature values and the original feature values of the cube is greater than Thr (a preset error threshold), it may be determined that performing the adaptive entropy coding skip process on the region to be coded will introduce artifacts. In this case, the adaptive entropy coding skip process may not be performed on the cube, and S510, S511, and S509 may be executed. If the error between the original feature values and the reconstructed feature values of the cube is less than or equal to Thr, it may be determined that performing the adaptive entropy coding skip process on the region to be coded will not introduce artifacts. In this case, the adaptive entropy coding skip process may be performed on the cube, and S508, S511, and Sk (including S507a and S507b) may be executed.
[0218]
[0234] The original feature values of the cube may include original feature values of the feature points included in the cube, and the reconstructed feature values of the cube may include reconstructed feature values of the feature points included in the cube.
[0219]
[0235] S507: Based on the probability estimation result of the coding target region, perform entropy coding processing on at least one sub-block in the coding target region, or skip entropy coding processing on at least one sub-block.
[0220]
[0236] S507 may include S507a and S507b.
[0221]
[0237] For example, the region to be coded may be divided into a plurality of sub-blocks; then, step S507a or S507b is performed on the first sub-block among the plurality of sub-blocks included in the region to be coded (each sub-block in the region to be coded may be determined as the first sub-block in turn).
[0222]
[0238] S507a: If the probability estimation result of the first sub-block satisfies a preset condition, skip the entropy coding process for all feature points in the first sub-block.
[0223]
[0239] S507b: If the probability estimation result of the first sub-block does not satisfy a preset condition, perform entropy coding processing on all feature points in the first sub-block based on the probability estimation results of all feature points in the first sub-block.
[0224]
[0240] For example, if the probability estimation result of the first sub-block satisfies a pre-set condition, the entropy coding process for all feature points in the first sub-block may be skipped, while the feature values of all feature points in the first sub-block may be further set to a specific value k2 to facilitate subsequent picture reconstruction in the encoder.
[0225]
[0241] In a possible scheme, the pre-set condition may be that the probability P of a sub-block is greater than or equal to T2.
[0226]
[0242] When the sub-block contains a plurality of feature points, the probability P of the sub-block may be the average of the probabilities P of all the feature points in the sub-block, or may be the maximum or minimum value of the probabilities P of all the feature points in the sub-block. This is not limited in this application. When the sub-block contains only one feature point, the probability P of the sub-block is the probability P of the one feature point included in the sub-block.
[0227]
[0243] T2 may be a preset threshold value. T2 may be any value between 0 and 1. For example, T2 is 0.99, 0.98, 0.97, or 0.95. This is not limited in this application. In a possible method, T2 may be equal to T0. In a possible method, T2 may not be equal to T0.
[0228]
[0244] In a possible manner, when the probability estimation result is a Gaussian distribution parameter, the preset condition may be that the Gaussian distribution parameter of the sub-block satisfies abs(μ - k1)+σ < T3.
[0229]
[0245] For example, when the sub-block contains a plurality of feature points, the average μ of the sub-block may be the average of the averages μ of all the feature points in the sub-block, and the variance σ of the sub-block may be Sub the average of the variances σ of all the feature points in the block. In a possible manner, the average μ of the sub-block may be the maximum or minimum value of the averages μ of all the feature points in the sub-block, and the variance σ of the sub-block may be the maximum or minimum value of the variances σ of all the feature points in the sub-block. For example, when the sub-block contains only one feature point, the average μ of the sub-block may be the average μ of the one feature point included in the sub-block, and the variance σ of the sub-block may be the variance σ of the one feature point included in the sub-block.
[0230]
[0246] T3 may be a preset threshold value. T3 may be any value between 0 and 1. For example, T3 may be 0.2, 0.3, or 0.4. This is not limited in the present application. In a possible manner, T3 may be equal to T1. In a possible manner, T3 may not be equal to T1.
[0231]
[0247] In a possible scheme, the encoder and decoder may agree in advance on the preset conditions to be used and the thresholds (T2 or T3) to be used in the preset conditions, so that the encoder does not need to write T2 or T3 into the bitstream.
[0232]
[0248] In a possible manner, the encoder may pre-construct a threshold candidate list (which may include T2 and T3) and synchronize the threshold candidate list with the decoder. Each threshold in the threshold candidate list corresponds to an index number, and the length of the threshold candidate list may be set to N, where N is an integer equal to or greater than 1. The manner of constructing the threshold candidate list is not limited in this application. The encoder may write the index numbers of the thresholds in the candidate list into the bitstream for transmission to the decoder. Specifically, the index numbers are stored in the sequence header. Da, Picture Head Da, slice ·header , or may be stored in supplemental enhancement information (SEI) and transmitted to the decoder. It should be understood that the encoder may alternatively write the index number into the bitstream by using another method, which is not a limitation in the present case.
[0233]
[0249] In one possible scheme, the encoder may set a threshold (which may include T2 or T3) based on the picture complexity. In this way, the encoder can write the threshold (T2 or T3) used under a preset condition into the bitstream. Specifically, the threshold is written into the bitstream, for example, the threshold is written in the sequence header, picture header, slice header, etc. ·header , or can be stored in the SEI and transmitted to the decoder. It should be understood that the encoder may alternatively write the index number into the bitstream by using another method, which is not a limitation in the present case.
[0234]
[0250] S508: The flag corresponding to the encoding target region is set to a first value.
[0235]
[0251] S509: Entropy coding is performed on the coding target region based on the probability estimation result of the coding target region.
[0236]
[0252] S510: The flag corresponding to the encoding target region is set to a second value.
[0237]
[0253] S511: The flag is encoded.
[0238]
[0254] For example, a possible way to encode the flag may be: binarize the flag and then write the flag into the bitstream. It should be understood that if the first value and the second value are binary values, the flag may also be written directly into the bitstream.
[0239]
[0255] For example, a possible way to encode a flag may be to determine a value probability of the flag based on the probability estimation result of the region to be encoded; and then encode the flag based on the value probability of the flag, where the value probability of the flag is the probability that the flag is a first value or the probability that the flag is a second value.
[0240]
[0256] For example, a possible method for determining the value probability of a flag based on the probability estimation results of the region to be coded may be to determine the value probability of the flag based on the sum of the probability estimation results of multiple sub-blocks in the region to be coded.
[0241]
[0257] In a possible manner, if the probability estimation result is a Gaussian distribution parameter, the Gaussian distribution parameter of the flag may be obtained by accumulating the Gaussian distribution parameters of all feature points in all sub-blocks in the region to be coded. The mean of the flag is μ f =Σμ, and the variance of the flag is σ f =Σσ. The average μ in the interval [-0.5, 0.5] f and variance σ f The probability of a Gaussian distribution with ∑ i = 1 p ...
[0242]
[0258] In one possible scheme, the sum of the probabilities P of all feature points in all sub-blocks in the region to be coded is calculated; then, based on this sum, an average probability is calculated and used as the probability that the flag is at the first value.
[0243]
[0259] For example, a possible method for determining the value probability of the flag based on the probability estimation result of the region to be coded may be: determining the value probability of the flag based on the number of feature points for which the entropy coding process is skipped in the region to be coded and the total number of feature points in the region to be coded, where the number of feature points for which the entropy coding process is skipped in the region to be coded is determined based on the probability estimation result of the multiple feature points included in the region to be coded.
[0244]
[0260] In a possible manner, the number of feature points for which the entropy coding process is skipped in the coding target region may be determined in the process of performing S505, i.e., the value y of the feature points ^ If the probability P that [w][h][c] is k1 is greater than or equal to T0, then the feature point y ^[w][h][c] is determined as a feature point for which entropy encoding processing is skipped.
[0245]
[0261] In a possible manner, the number of feature points for which entropy encoding processing is skipped in the encoding target region may be determined in the process of executing S505, that is, for feature point y ^ when the Gaussian distribution parameters of [w][h][c] satisfy abs(μ - k1)+σ < T1, feature point y ^ [w][h][c] is determined as a feature point for which entropy encoding processing is skipped.
[0246]
[0262] In a possible manner, the number of feature points for which entropy encoding processing is skipped in the encoding target region may be determined in the process of executing S507, that is, when the probability estimation result of the sub-block satisfies the preset condition, the feature point y within the sub-block ^ [w][h][c] is determined as a feature point for which entropy encoding processing is skipped.
[0247]
[0263] For example, the ratio of the number of feature points for which entropy encoding processing is skipped in the encoding target region to the total number of feature points in the encoding target region may be calculated, and that ratio is used as the probability that the flag is the first value.
[0248]
[0264] For example, after S505 to S511 are each completed for each encoding target region, it may be determined whether the encoding target region is the last region in the feature map. If yes, the procedure ends and the bit stream of the encoding target picture is obtained. If no, return to S505.
[0249]
[0265] For example, after S505, S506, S507a, S508, and S510 are completed for each coding target region, it may be determined whether the coding target region is the last region in the feature map. If yes, S507b, S509, and S511 are performed for all coding target regions to obtain a bitstream of the coding target picture. If no, return to S505. In other words, flag coding and entropy coding processes are finally performed for all coding target regions. In this case, the flag coding method may be as follows:
[0250]
[0266] For example, in S511, a possible implementation of performing flag encoding for all regions to be encoded may be: after flag binarization, group and encode the flags corresponding to all regions to be encoded (where the flags of k regions to be encoded (i.e., k cubes) are grouped into one group for encoding); and write the flags to the bitstream.
[0251]
[0267] An example where k is 8 is used for illustration. If the eight flags in the group are each the first value, the group flag is set to the third value (e.g., the third value is 0), and the third value is written to the bitstream; otherwise, the group flag is set to the fourth value (the fourth value is different from the third value, e.g., the fourth value is 1), and the fourth value is written to the bitstream, and the binary values of the eight flags in the group are written to the bitstream. The corresponding syntax table after the flags corresponding to all the regions to be coded are coded is shown in Table 1. Table 1 is a syntax table of the flags corresponding to all the regions to be coded.
[0252]
[0268] As shown in Table 1, number_of_cube_flag_group represents the number of groups after all regions are grouped; group_flag represents the group flag; cube_flag represents the flag corresponding to the region to be coded (i.e., the flags in S206, S208, S209, S303, S304, S305, S508, S510, and S511); number_of_elements_in_group represents the number of flags in the last group; and uf(1) represents the corresponding symbol to be written to the bitstream.
[0253] Table 1
[0254] [Table 1]
[0255]
[0269] For example, in S511, a possible implementation of performing flag coding for all coding target regions may be: write the flag into the bitstream after flag binarization. It should be understood that if the first value and the second value are binary values, the flag may be written into the bitstream directly.
[0256]
[0270] For example, in S511, a possible implementation of performing flag encoding for all encoding target regions may be to determine a value probability of a flag based on the probability estimation result of the encoding target region; and then encode the flag based on the value probability of the flag. The value probability of the flag is the probability that the flag is a first value or a probability that the flag is a second value.
[0257]
[0271] Figure 6 is a diagram of an exemplary decoding process. Figure 6 shows a decoding process based on Figure 4. The decoding process of Figure 6 corresponds to the encoding process of Figure 5a.
[0258]
[0272] S601: A bitstream is received.
[0259]
[0273] S602: Decode the bitstream to obtain side information of the feature map, and determine a probability estimation result for the region to be decoded in the feature map based on the side information of the feature map.
[0260]
[0274] For example, the encoder generates a feature map y ^ Side information ^ can be converted into a bitstream, so that the decoder performs an entropy decoding process on the bitstream to decode the bitstream and obtain the feature map y ^ Side information ^ and then the feature map y ^ Side information ^ , and determine the probability estimation result of the feature map, and further obtain the probability estimation result of the decoding target region in the feature map. This process is similar to the process of the encoder in S504, and the details will not be described again here.
[0261]
[0275] S603: The bitstream is decoded, and a flag corresponding to the area to be decoded is obtained.
[0262]
[0276] For example, if the encoder writes flags to the bitstream after flag binarization, the decoder may read the flags corresponding to the region to be decoded directly from the bitstream.
[0263]
[0277] For example, if the encoder groups and encodes flags corresponding to all regions to be coded and writes the flags to the bitstream after binarization, the decoder can read flags corresponding to regions to be decoded by decoding based on the syntax table of flags corresponding to all regions to be coded shown in Table 1. First, the group flag value is read; if the group flag value is the third value, it may be determined that all k flags in the group are the first value, i.e., the flags of k regions to be decoded (i.e., k cubes) are the first value; or if the group flag value is the fourth value, the k flags in the group are read from the bitstream during decoding. Here, k is the same as that in the encoder. For example, k in the encoder is 8, and k in the decoder is also 8.
[0264]
[0278] For example, if the encoder encodes a flag based on the value probability of the flag, the decoder can first determine the value probability of the flag based on the probability estimation result of the area to be decoded determined in S602, and then decode the bitstream and obtain the flag corresponding to the area to be decoded based on the value probability of the flag.
[0265]
[0279] For example, the encoder and decoder may pre-agree on a scheme for determining the value probabilities of the flags.
[0266]
[0280] When the encoder determines the value probability of the flag based on the sum of the probability estimation results of multiple feature points in the region to be coded, the decoder can determine the value probability of the flag based on the sum of the probability estimation results of multiple feature points in the region to be decoded. For details, see the description of S511 above. The details will not be described again here.
[0267]
[0281] When the encoder determines the value probability of a flag based on the number of feature points where entropy encoding processing is skipped in the encoding target area and the total number of feature points in the encoding target area, the decoder determines the number of feature points where entropy decoding processing is skipped in the decoding target area based on the probability estimation result of the decoding target area; it is possible to determine the value probability of the flag based on the number of feature points where entropy decoding processing is skipped in the decoding target area and the total number of feature points in the decoding target area.
[0268]
[0282] For example, the encoder and the decoder may previously agree on a method for determining the feature points where entropy decoding processing is skipped (or entropy encoding processing is skipped) in the decoding target area (or encoding target area). When the encoder determines the feature point y ^ [w][h][c] with a probability P of the value being k1 being T0 or more as a feature point where entropy encoding processing is skipped, the decoder determines the feature point y ^ [w][h][c] with a probability P of the value being k1 being T0 or more as a feature point where entropy decoding processing can be skipped. When the encoder determines the feature point y ^ [w][h][c] with the Gaussian distribution parameter satisfying abs(μ - k1)+σ < T1 as a feature point where entropy encoding processing is skipped, the decoder determines the feature point y ^ [w][h][c] with the Gaussian distribution parameter satisfying abs(μ - k1)+σ < T1 as a feature point where entropy decoding processing can be skipped. When the encoder determines the feature point y ^ [w][h][c] included in the sub - block whose probability estimation result satisfies the preset condition as a feature point where entropy encoding processing is skipped, the decoder determines the feature point y ^ [w][h][c] included in the sub - block whose probability estimation result satisfies the preset condition as a feature point where entropy decoding processing can be skipped.
[0269]
[0283] S604: If the flag is a first value, perform entropy decoding processing on at least one sub-block in the area to be decoded based on the probability estimation result of the area to be decoded, or set the feature value of the feature point in at least one sub-block to a specific value, thereby obtaining the feature value of the feature point in the area to be decoded.
[0270]
[0284] S604 may include S604a and S604b.
[0271]
[0285] For example, if the flag has a first value, the decoder may perform step S604a or S604b on a first sub-block among a plurality of sub-blocks included in the region to be decoded.
[0272]
[0286] S604a: If the probability estimation result of the first sub-block satisfies a preset condition, skip the entropy decoding process for all feature points in the first sub-block, and set the feature values of all feature points in the first sub-block to a specific value k2.
[0273]
[0287] S604b: If the probability estimation result of the first sub-block does not satisfy a preset condition, perform entropy decoding processing on all feature points in the first sub-block based on the probability estimation results of all feature points in the first sub-block.
[0274]
[0288] The decoder may determine whether the probability estimation result of the first sub-block satisfies a predetermined condition based on T2 or T3 read from the bitstream. Alternatively, the decoder may search the threshold candidate list for T2 or T3 based on the index number read from the bitstream, and then determine whether the probability estimation result of the first sub-block satisfies a predetermined condition. Of course, the decoder may alternatively determine whether the probability estimation result of the first sub-block satisfies a predetermined condition based on a pre-agreed T2 or T3.
[0275]
[0289] S605: If the flag is the second value, entropy decoding is performed on the decoding target region based on the probability estimation result of the decoding target region, to obtain the feature values of the feature points in the decoding target region.
[0276]
[0290] S606: Perform reconstruction based on the feature values of the feature points in the feature map to obtain a reconstructed picture.
[0277]
[0291] For example, for S605 and S606, please refer to the above description of S305 and S306, and the details will not be described again here.
[0278]
[0292] For example, the feature decoding module may be implemented based on a neural network of any structure, such as a fully connected neural network, a convolutional neural network, or a cyclic neural network. Optionally, the neural network may adopt a multi-layer deep neural network structure to achieve better estimation results.
[0279]
[0293] In this way, a transmission flag is coded at the cube level to specify whether to perform the entropy coding and decoding skip process based on the probability estimation result for the current cube, thereby avoiding the case where performing the skip algorithm based on the probability estimation result would generate artifacts.
[0280]
[0294] In the encoding process of a possible scheme, when the probability estimation result is a Gaussian distribution parameter, after obtaining the feature map y and the probability estimation result of the feature map y, the predictor of each feature point y[w][h][c] in the feature map y is set to the corresponding mean μ. In this way, the feature map v may be obtained. Then, the feature map r may be obtained by calculating the residual between the feature values of the corresponding feature points in the feature map y and the feature map v. Then, the feature map r is quantized to obtain the feature map r. ^ Then, the entropy coding process for S505 to S511 is performed to obtain the feature map r ^ Correspondingly, in the decoding process, after S604 and S605 are performed, the feature map r ^ The feature values of the feature points in the feature map r are then obtained. ^ Each feature point in r ^ The predictors of [w][h][c] are set to the corresponding mean μ. In this way, a feature map v may be obtained. Then, the feature map v and the feature map r ^ The feature values of the corresponding feature points in the feature map y ^ may be obtained, and then S606 is executed.
[0281]
[0295] The feature map used in the entropy coding process is the feature map y ^ or feature map r ^ Whether or not this is the case is not limited in the present application.
[0282]
[0296] 7 is a diagram of an exemplary end-to-end picture compression process. Figure 7 illustrates an end-to-end picture compression process based on Figure 4. The probability estimates in Figure 7 are Gaussian distribution estimates. In Figure 7, context information may be used to optimize the Gaussian distribution parameter μ.
[0283]
[0297] As shown in FIG. 7, for example, the encoding process may include feature extraction, quantization, side information extraction, probability estimation, first predictor estimation, second predictor estimation, context information extraction, and arithmetic coding.
[0284]
[0298] For example, the encoder may further include a context module (configured to perform context information extraction in the encoding process of FIG. 7), a predictor estimation module (configured to perform first predictor estimation in the encoding process of FIG. 7), and a prediction module (configured to perform second predictor estimation in the encoding process of FIG. 7). The probability estimation module and the predictor estimation module may be combined as a whole, which is not a limitation in the present application.
[0285]
[0299] 7, for example, a feature map y is obtained after a feature extraction module performs feature extraction on a picture to be coded. Then, a side information extraction module performs side information extraction on the feature map y, and then side information z ^ The auxiliary information z may be obtained by extracting auxiliary information from the feature map y using an auxiliary information extraction module, and then quantizing the auxiliary information z to obtain the auxiliary information TIFF2026507751000021.tif42), which is output to the probability estimation module. The probability estimation module uses the side information z ^ to obtain the Gaussian distribution parameters σ[w][h][c] for each feature point y[w][h][c] in the feature map y. Furthermore, the predictor estimation module uses the side information z ^The context module performs a first predictor estimation on the features G obtained by performing context information extraction based on the context module and the feature map F, and outputs the feature map F to the prediction module. The prediction module then performs a second predictor estimation on the features G obtained by performing context information extraction based on the context module and the feature map F, and outputs the Gaussian distribution parameters μ[w][h][c] for each feature point y[w][h][c]. For one feature point, the context module performs context information extraction based on the reconstructed feature values of the encoded feature points spatially adjacent to the feature point.
[0286]
[0300] For example, the predictor for each feature point y[w][h][c] in feature map y may be set to the corresponding mean μ[w][h][c]. In this way, a feature map v can be obtained. Then, the residual of the feature values of corresponding feature points in feature map y and feature map v can be calculated to obtain a feature map r. Feature map r can be quantized to obtain a feature map r. ^ Furthermore, in the reconstruction process, the feature map r ^ and the feature values of the corresponding feature points in the feature map v are added to obtain the feature map y ^ The feature map y ^ Encoded feature points y in ^ The feature values of [w][h][c] are the reconstructed feature values of the encoded feature points. Obviously, the Gaussian distribution parameters of feature map y are (μ,σ). The feature map r satisfies the Gaussian distribution with mean 0 and variance σ, i.e., the Gaussian distribution parameters of feature map r are (0,σ).
[0287]
[0301] Then, the entropy coding module performs arithmetic coding on the feature map r̂ based on the probability estimation result of the feature map r̂ (see Figure 5 for details). a , see the description of , to obtain bitstream 1; and perform arithmetic coding on the side information ẑ to obtain bitstream 2. Both bitstream 1 and bitstream 2 are part of the bitstream of the picture to be coded.
[0288]
[0302] As shown in FIG. 7, for example, the decoding process may include arithmetic decoding, probability estimation, first predictor estimation, second predictor estimation, context information extraction, and picture reconstruction.
[0289]
[0303] For example, the decoder may further include a context module (configured to perform context information extraction in the decoding process of FIG. 7), a predictor estimation module (configured to perform first predictor estimation in the decoding process of FIG. 7), and a prediction module (configured to perform second predictor estimation in the decoding process of FIG. 7). The probability estimation module and the predictor estimation module may be combined as a whole, which is not a limitation in the present application.
[0290]
[0304] As shown in FIG. 7, for example, the decoder performs arithmetic decoding on bitstream 2 and parses bitstream 2 to obtain side information z ^ and perform Gaussian estimation based on the side information to obtain the feature map r ^ Each feature point in r ^ [w][h][c]. Furthermore, the predictor estimation module obtains the Gaussian distribution parameters σ[w][h][c] of [w][h][c]. ^ The prediction module performs a first predictor estimation on the features G obtained by performing context information extraction based on the context module and the feature map F, and outputs a feature map F to the prediction module. Then, the prediction module performs a second predictor estimation on the features G obtained by performing context information extraction based on the context module and the feature map F, and outputs a feature map F to the prediction module. ^ It outputs Gaussian distribution parameters μ[w][h][c] of [w][h][c]. For one feature point, the context module performs context information extraction based on the reconstructed feature values of decoded feature points spatially neighboring the feature point.
[0291]
[0305] For example, arithmetic decoding is done on the feature map r ^ Each feature point in r ^Based on the Gaussian distribution parameters σ[w][h][c] of [w][h][c], it is performed on bitstream 1 and analyzes bitstream 1 to obtain feature map r ^ Then, we obtain the feature map r ^ Each feature point r ^ The predictors of [w][h][c] may be set to the corresponding mean μ[w][h][c]. In this way, a feature map v may be obtained. Then, a feature map r ^ and the feature values of the corresponding feature points in the feature map v are added together to form the feature map y ^ The feature map y ^ The decoded feature points in y ^ The feature values of [w][h][c] are the reconstructed feature values of the decoded feature points.
[0292]
[0306] Feature Mapr ^ For the entropy encoding process and entropy decoding process for , please refer to the description of the embodiment in Figure 5a and Figure 6. The details will not be described again here.
[0293]
[0307] It should be understood that the context module is an optional module. If the encoder (decoder) does not include the context module, the encoder (decoder) can use the predictor estimation module to estimate the side information z ^ Perform predictor estimation for each feature point y ^ Outputs the Gaussian distribution parameters μ[w][h][c] of [w][h][c].
[0294]
[0308] It should be understood that the side information extraction module is an optional module. If the encoder (decoder) does not include the side information extraction module, the encoder (decoder) will call the context module to perform context information extraction, and then the probability estimation module will perform probability estimation based on the context information to determine the probability estimation result.
[0295]
[0309] Figure 8 is a diagram of an exemplary encoding process. Figure 8 shows an encoding process based on Figures 1a and 1c. 8 In this embodiment, the example of encoding one picture is used for explanation. The picture may be an independent picture or a frame in a video, which is not limited in this application.
[0296]
[0310] S801: A picture to be coded is obtained.
[0297]
[0311] S802: A feature map of the picture to be coded is extracted.
[0298]
[0312] S803: Determine the probability estimation result of the region to be coded in the feature map.
[0299]
[0313] For example, for S801 to S803, please refer to the above description of S201 to S203.
[0300]
[0314] For example, the probability estimates for the regions to be coded in the feature map may be determined based on context information and / or side information.
[0301]
[0315] For example, the feature map y^ or the feature map r^ can be divided into multiple cubes by using w1×h1×c1 as the basic unit (where w1 is 1 to W). Within range and h1 is an integer between 1 and H. Within range and c1 is an integer between 1 and C. Within range If c1=1, one cube means one block.
[0302]
[0316] In the following, an example in which one encoding target region is one cube will be used for explanation.
[0303]
[0317] S804: Determine whether to skip the entropy coding process for the region to be coded, based on the original feature values of the region to be coded and the reconstructed feature values of the region to be coded determined after the entropy coding process for the region to be coded is skipped.
[0304]
[0318] For example, if the entropy coding process for the region to be coded is to be skipped, first, the reconstructed feature values of the region to be coded are determined; then, the reconstructed feature values of the region to be coded are compared with the original feature values to determine whether to skip the entropy coding process for the region to be coded.
[0305]
[0319] For example, through a comparison between the reconstructed feature values and the original feature values of the region to be coded, it may be determined whether artifacts will be introduced after the entropy coding process for the region to be coded is skipped. If it is determined based on the result of the comparison between the reconstructed feature values and the original feature values of the region to be coded that artifacts will be introduced after the entropy coding process for the region to be coded is skipped, the entropy coding process for the region to be coded may not be skipped. In this case, S808, S809, S810, and S807 may be performed. If it is determined based on the result of the comparison between the reconstructed feature values and the original feature values of the region to be coded that artifacts will not be introduced after the entropy coding process for the region to be coded is skipped, the entropy coding process for the region to be coded may be skipped. In this case, S806, S809, S810, and S805 may be performed. This is Encoder is the entropy sign Encoded Skip Pu place When adaptively determining the process, it is possible to avoid introducing artifacts.
[0306]
[0320] The original feature values of the region to be coded may include original feature values of multiple feature points included in the region to be coded, and the reconstructed feature values of the region to be coded may include reconstructed feature values of multiple feature points included in the region to be coded.
[0307]
[0321] Specifically, the reconstructed feature values of all feature points y^[w][h][c] in the cube may be set to a specific value k2. Then, the error between the original feature values of the cube and the reconstructed feature values may be calculated. Then, based on the error, it is determined whether to skip the entropy encoding process for the cube. For example, the minimum mean square error (MES) between the original feature values of the feature points in the cube and the reconstructed feature values may be calculated as the error.
[0308]
[0322] For example, if the error between the original feature value and the reconstructed feature value of the cube is greater than Thr (a preset error threshold), it may be determined that the entropy encoding process for the cube does not need to be skipped, and S807 may be executed; alternatively, if the error between the original feature value and the reconstructed feature value of the cube is equal to or less than Thr, it may be determined that the entropy encoding process for the cube may be skipped, and S805 may be executed.
[0309]
[0323] S805: The entropy coding process for the coding target region is skipped.
[0310]
[0324] For example, if the entropy coding process for all feature points in the region to be coded is skipped, the feature values of all feature points in the region to be coded may be set to a specific value k2 to facilitate subsequent picture reconstruction in the encoder.
[0311]
[0325] S806: The flag corresponding to the encoding target region is set to a first value.
[0312]
[0326] 8, it should be noted that S809 and S810 are executed after S806, and S805 is executed after S809 and S810. It should be understood that in the present application, alternatively, S805 may be executed first, then S806 may be executed, and then S809 and S810 may be executed. In other words, the present application does not limit the order of encoding the flag and skipping the entropy encoding process for the encoding target region.
[0313]
[0327] S807: Based on the probability estimation result of the coding target region, entropy coding processing is performed on the coding target region.
[0314]
[0328] S808: The flag corresponding to the encoding target region is set to a second value.
[0315]
[0329] For example, for S805 to S808, please refer to the description in the above embodiment, and the details will not be described again here.
[0316]
[0330] 8, it should be noted that S809 and S810 are executed after S808, and S807 is executed after S809 and S810. It should be understood that in the present application, alternatively, S807 may be executed first, then S808 may be executed, and then S809 and S810 may be executed. In other words, the present application does not limit the order of encoding the flag and performing the entropy encoding process on the encoding target region.
[0317]
[0331] S809: Based on the probability estimation result of the encoding target area, determine the value probability of a flag corresponding to the encoding target area, where the value probability of the flag is the probability that the flag is a first value or the probability that the flag is a second value.
[0318]
[0332] For example, in a possible method of S809, the value probability of the flag may be determined based on the sum of the probability estimation results of multiple feature points in the encoding target area. For details, please refer to the description in the previous embodiment. The details will not be described again here.
[0319]
[0333] For example, in a possible manner of S809, the number of feature points for which the entropy coding process is skipped in the coding target region may be determined based on the probability estimation result of the coding target region; the value probability of the flag is determined based on the number of feature points for which the entropy coding process is skipped in the coding target region and the total number of feature points in the coding target region. For details, please refer to the description in the previous embodiment. The details will not be described again here.
[0320]
[0334] S810: Encode the flag based on the value probability of the flag.
[0321]
[0335] For example, see the above description of S810, and the details will not be described again here.
[0322]
[0336] 9 is a diagram of an exemplary decoding process. FIG. 9 shows a decoding process based on FIG. 1a and FIG. 1c. The decoding process of FIG. 9 corresponds to the encoding process of FIG.
[0323]
[0337] S901: Obtain a bitstream.
[0324]
[0338] S902: Determine a probability estimation result for a region to be decoded in a feature map corresponding to the bitstream.
[0325]
[0339] S903: Based on the probability estimation result of the area to be decoded, determine a value probability of a flag corresponding to the area to be decoded, where the value probability of the flag is the probability that the flag is a first value or the probability that the flag is a second value.
[0326]
[0340] For example, in the implementation of S903, the number of feature points for which the entropy decoding process is skipped in the decoding target area may be determined based on the probability estimation result of the decoding target area; the value probability of the flag is determined based on the number of feature points for which the entropy decoding process is skipped in the decoding target area and the total number of feature points in the decoding target area. For details, please refer to the above description. The details will not be described again here.
[0327]
[0341] For example, in the implementation of S903, the value probability of the flag may be determined based on the sum of the probability estimation results of multiple feature points in the decoding target area. For details, please refer to the above description. The details will not be described again here.
[0328]
[0342] S904: The bitstream is decoded, and a flag corresponding to the region to be decoded is obtained based on the value probability of the flag.
[0329]
[0343] S905: If the flag is the first value, the feature value of the feature point in the decoding target region is set to a specific value.
[0330]
[0344] S906: If the flag has the second value, entropy decoding is performed on the decoding target region based on the probability estimation result of the decoding target region, and the feature values of the feature points in the decoding target region are obtained.
[0331]
[0345] After S905 and S906 are performed for all decoding target regions in the feature map, the feature map y ^ If the feature values of all feature points in the feature map r are obtained, S907 may be performed directly; ^ When the feature values of all feature points in the feature map r are obtained, ^ The predictors of all feature points in may be set to the mean μ to obtain a feature map v; then, the feature map r ^ The feature values of all feature points in the feature map v are added together to form the feature map y ^is obtained, and then S907 is executed.
[0332]
[0346] S907: Perform reconstruction based on the feature values of the feature points in the feature map to obtain a reconstructed picture.
[0333]
[0347] Figure 10 is a diagram of an example machine vision task based on encoding and decoding. Figure 10 is based on Figure 1b.
[0334]
[0348] For the encoding process and entropy decoding process in Fig. 10, please refer to the description in the previous embodiment. ^ After being obtained by entropy decoding, the feature map y ^ Machine vision tasks are performed based on this, such as classification, target recognition, semantic segmentation, and the like.
[0335]
[0349] For example, the present application provides an encoder, which: an acquisition module configured to acquire a picture to be encoded; a feature extraction module configured to extract a feature map of the picture to be encoded; a probability estimation module configured to determine a probability estimation result for a region to be coded in the feature map; an entropy coding module configured to determine whether to perform adaptive entropy coding skip processing on the region to be coded based on original feature values of the region to be coded and reconstructed feature values determined after the adaptive entropy coding skip processing is performed on the region to be coded; If yes, perform entropy coding on at least one sub-block in the coding target region based on the probability estimation result of the coding target region, or skip entropy coding on at least one sub-block, and set a flag corresponding to the coding target region to a first value; or If no, perform entropy coding on the coding target region based on the probability estimation result of the coding target region, and set the flag corresponding to the coding target region to a second value; and It may include an entropy coding module that encodes the flag.
[0336]
[0350] It should be understood that the encoder in this application may further perform steps in the encoding process of Figures 2 and 5a.
[0337]
[0351] For example, the present application provides a decoder, which: a receiving module configured to receive the bitstream; an entropy decoding module configured to determine a probability estimation result of a region to be decoded in a feature map corresponding to the bitstream, and decode the bitstream to obtain a flag corresponding to the region to be decoded; If the flag is a first value, perform entropy decoding on at least one sub-block in the region to be decoded, or set the feature values of the feature points in the at least one sub-block to a specific value based on the probability estimation result of the region to be decoded, to obtain the feature values of the feature points in the region to be decoded; or an entropy decoding module that, if the flag is a second value, performs an entropy decoding process on the decoding target region based on the probability estimation result of the decoding target region, and obtains feature values of feature points in the decoding target region; and The feature decoding module may be configured to perform reconstruction based on feature values of feature points in the feature map to obtain a reconstructed picture.
[0338]
[0352] It should be understood that the decoder in this application may further perform steps in the decoding process in FIGS.
[0339]
[0353] For example, the present application provides an encoder, which: an acquisition module configured to acquire a picture to be encoded; a feature extraction module configured to extract a feature map of the picture to be encoded; a probability estimation module configured to determine a probability estimation result for a region to be coded in the feature map; an entropy encoding module configured to determine whether to skip the entropy encoding process for the region to be encoded based on original feature values of the region to be encoded and reconstructed feature values determined after the entropy encoding process for the region to be encoded is skipped; If yes, skip the entropy coding process for the region to be coded and set the flag corresponding to the region to be coded to a first value; or If no, perform entropy coding on the coding target region based on the probability estimation result of the coding target region, and set the flag corresponding to the coding target region to a second value; determining a value probability of a flag, the value probability being the probability that the flag is a first value or the probability that the flag is a second value, based on the probability estimation result of the coding target region; and It may include an entropy coding module that codes the flags based on their value probabilities.
[0340]
[0354] It should be understood that the encoder in this application may further perform steps in the encoding process in FIG.
[0341]
[0355] For example, the present application provides a decoder, which: a receiving module configured to receive the bitstream; determining a probability estimate of a region to be decoded in a feature map corresponding to the bitstream; Determine a probability value of a flag corresponding to the decoding target region, based on the probability estimation result of the decoding target region, the probability value being the probability that the flag is a first value or the probability that the flag is a second value; Decoding the bitstream to obtain flags based on the value probabilities of the flags; If the flag is a first value, set the feature value of the feature point in the decoding target region to a specific value; or If the flag is a second value, performing an entropy decoding process on the decoding target region based on the probability estimation result of the decoding target region to obtain feature values of feature points in the decoding target region; and The feature map may include an entropy decoding module configured to perform reconstruction based on feature values of feature points in the feature map to obtain a reconstructed picture.
[0342]
[0356] It should be understood that the decoder in this application may further perform steps in the decoding process in FIG.
[0343]
[0357] 11 is a block diagram of an apparatus 1100 according to an embodiment of the present application. The apparatus 1100 may include a processor 1101 and a transceiver / transceiver pins 1102. Optionally, the apparatus 1100 may further include a memory 1103.
[0344]
[0358] The components of the device 1100 are coupled to one another via a bus 1104. In addition to a data bus, the bus 1104 further includes a power bus, a control bus, and a status signal bus. However, for clarity of explanation, the various buses will be referred to as the bus 1104 in the figures.
[0345]
[0359] Optionally, the memory 1103 may be configured to store instructions for the aforementioned method embodiments. The processor 1101 may be configured to: execute the instructions in the memory 1103, control the receive pin to receive signals, and control the transmit pin to send signals.
[0346]
[0360] The apparatus 1100 may be an electronic device or a chip of an electronic device in the above method embodiments.
[0347]
[0361] For example, the electronic device may be a terminal device or a server.
[0348]
[0362] All relevant contents of the steps in the above method embodiments can be cited in the functional descriptions of the corresponding functional modules, and the details will not be described again here.
[0349]
[0363] An embodiment of the present application further provides a chip including one or more interface circuits and one or more processors. The one or more processors receive or transmit data via the one or more interface circuits. When the one or more processors execute computer instructions, the electronic device can perform the associated method steps described above to implement the encoding and decoding method in the above embodiment. The interface circuits are transceivers / transceiver pins 1102.
[0350]
[0364] An embodiment further provides a computer-readable storage medium, which stores computer instructions that, when executed on an electronic device, enable the electronic device to perform the relevant method steps described above to implement the encoding and decoding method in the embodiment described above.
[0351]
[0365] The embodiments further provide a computer program product, which includes computer instructions, which, when executed by a computer or a processor, cause the computer to perform the relevant steps described above to implement the encoding and decoding method in the embodiments.
[0352]
[0366] Furthermore, an embodiment of the present application further provides an apparatus. The apparatus may specifically be a chip, a component, or a module. The apparatus may include a processor and a memory connected to each other. The memory is configured to store computer-executable instructions. When the apparatus operates, the processor executes the computer-executable instructions stored in the memory to enable the chip to perform the encoding and decoding method in the aforementioned method embodiment.
[0353]
[0367] The electronic device, computer-readable storage medium, computer program product, or chip provided in the embodiments is configured to perform the corresponding method provided above. Therefore, for the beneficial effects that can be achieved, please refer to the beneficial effects of the corresponding method provided above. Details will not be described here.
[0354]
[0368] Based on the description of the above implementation forms, those skilled in the art will understand that the above division into functional modules is used as an illustrative example for convenient and concise description. In actual application, the above functions may be allocated to different functional modules or implemented as needed, that is, the internal structure of the device is divided into various functional modules to implement all or part of the above functions.
[0355]
[0369] In some embodiments provided in the present application, it should be understood that the disclosed devices and methods may be implemented in other ways. For example, the described device embodiments are merely examples. For example, the division into modules or units is merely a logical division of function, and other divisions may be used in actual implementation. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not implemented. Furthermore, the shown or described mutual couplings or direct couplings or communication connections may be implemented via some interface. Indirect couplings or communication connections between devices or units may be implemented in electronic, mechanical, or other forms.
[0356]
[0370] The units described as separate parts may or may not be physically separate, and the parts shown as units may be one or more physical units, i.e., located in one place or distributed in different places. Some or all of the units can be selected based on actual requirements to achieve the objectives of the solutions of the embodiments.
[0357]
[0371] Furthermore, the functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit, and the integrated unit may be implemented in the form of hardware or in the form of a software functional unit.
[0358]
[0372] Any content in multiple embodiments of the present application and any content in the same embodiment may be freely combined. Any combination of the aforementioned content is within the scope of the present application.
[0359]
[0373] When an integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, the integrated unit may be stored in a readable storage medium. Based on this understanding, the technical solutions of the embodiments of the present application may essentially, or the part that contributes to the prior art, or all or part of the technical solutions may be implemented in the form of a software product. The software product is stored in a storage medium and includes some instructions for instructing a device (which may be a single-chip microcomputer, a chip, or the like) or a processor to perform all or part of the steps of the method described in the embodiments of the present application. The aforementioned storage medium includes any medium capable of storing program code, such as a USB flash drive, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0360]
[0374] The above describes the embodiments of the present application in relation to the accompanying drawings. However, the present application is not limited to the specific implementation forms described above. The specific implementations described above are merely examples, not limitations. As suggested by the present application, those skilled in the art may further make modifications without departing from the purpose of the present application and the scope of protection of the claims, and all such modifications shall fall within the scope of protection of the present application.
[0361]
[0375] The method or algorithm steps described in combination with the contents disclosed in the embodiments of the present application may be implemented by hardware or by a processor executing software instructions. The software instructions may include corresponding software modules. The software modules may be stored in random access memory (RAM), flash memory, read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, a hard disk, a removable hard disk, a compact disk read-only memory (CD-ROM), or any other form of storage medium known in the art. For example, the storage medium may be coupled to the processor such that the processor can read information from and write information to the storage medium. Of course, the storage medium may be a component of the processor. The processor and the storage medium may be located in an ASIC.
[0362]
[0376] Those skilled in the art will recognize that the functions described in the embodiments of the present application in one or more of the foregoing examples may be implemented by hardware, software, firmware, or any combination thereof. If the functions are implemented by software, they may be stored on or transmitted as one or more instructions or code in a computer-readable medium. Computer-readable media include computer-readable storage media and communication media. Communication media include any medium that allows a computer program to be transmitted from one place to another. Storage media may be any available medium accessible to a general-purpose or special-purpose computer.
[0363]
[0377] The above describes the embodiments of the present application in relation to the accompanying drawings. However, the present application is not limited to the specific implementation forms described above. The specific implementations described above are merely examples, not limitations. As suggested by the present application, those skilled in the art may further make modifications without departing from the purpose of the present application and the scope of protection of the claims, and all such modifications shall fall within the scope of protection of the present application.
Claims
1. 1. A method of encoding comprising: obtaining a picture to be encoded; extracting a feature map of the picture to be coded and determining probability estimates of regions to be coded in the feature map; determining whether to perform adaptive entropy skip coding on the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after adaptive entropy skip coding has been performed on the region to be coded; When performing the adaptive entropy coding skip process, perform entropy coding on at least one sub-block in the coding target region based on the probability estimation result of the coding target region, or skip entropy coding on the at least one sub-block, and set a flag corresponding to the coding target region to a first value; or if the adaptive entropy coding skip process is not to be performed, performing an entropy coding process on the coding target region based on the probability estimation result of the coding target region, and setting a flag corresponding to the coding target region to a second value; and encoding the flag; A method comprising:
2. 2. The method of claim 1, wherein the step of encoding the flag comprises: determining a value probability of the flag based on the probability estimation result of the encoding target region, wherein the value probability of the flag is the probability that the flag is the first value or the probability that the flag is the second value; and encoding the flag based on a value probability of the flag; A method comprising:
3. 3. The method according to claim 1, wherein the step of determining whether to perform adaptive entropy skip coding on the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after adaptive entropy skip coding is performed on the region to be coded, comprises: determining an error between the reconstructed feature values and the original feature values; and determining to perform an adaptive entropy coding skip process on the region to be coded if the error is greater than an error threshold; or determining not to perform adaptive entropy coding skip processing on the encoding target region if the error is equal to or less than an error threshold; A method comprising:
4. 3. The method according to claim 2, wherein the region to be coded includes a plurality of sub-blocks, and the probability estimation results for the region to be coded include probability estimation results for the plurality of sub-blocks; A method in which the step of determining a value probability of the flag based on the probability estimation result of the region to be coded includes the step of determining a value probability of the flag based on a sum of probability estimation results of the plurality of sub-blocks within the region to be coded.
5. 3. The method according to claim 2, wherein the region to be coded includes a plurality of sub-blocks, each of the sub-blocks includes at least one feature point, and the probability estimation result for the region to be coded includes probability estimation results for a plurality of feature points; The step of determining a value probability of the flag based on the probability estimation result of the region to be coded includes: determining a value probability of the flag based on the number of feature points for which entropy coding processing has been skipped in the coding target region and the total number of feature points in the coding target region; The method of claim 1, wherein the number of feature points for which entropy coding processing is skipped in the encoding target region is determined based on a probability estimation result of the number of feature points included in the encoding target region.
6. 6. The method according to claim 1, wherein the region to be coded includes a plurality of sub-blocks, the probability estimation result of the region to be coded includes the probability estimation results of the plurality of sub-blocks, the sub-blocks include at least one feature point, and the probability estimation result of the sub-block includes the probability estimation result of the feature point included in the sub-block; The step of performing an entropy coding process on at least one sub-block in the coding target region or skipping the entropy coding process on the at least one sub-block based on the probability estimation result of the coding target region includes: For a first sub-block in the plurality of sub-blocks: If the probability estimation result of the first sub-block satisfies a preset condition, skipping the entropy coding process for all feature points in the first sub-block; or if the probability estimation result of the first sub-block does not satisfy a preset condition, performing an entropy coding process on all feature points in the first sub-block based on the probability estimation results of all feature points in the first sub-block.
7. 1. A method of decoding comprising: receiving a bitstream; determining a probability estimation result of a region to be decoded in a feature map corresponding to the bitstream, and decoding the bitstream to obtain a flag corresponding to the region to be decoded; If the flag is a first value, perform an entropy decoding process on at least one sub-block in the region to be decoded, or set the feature values of the feature points in the at least one sub-block to a specific value based on the probability estimation result of the region to be decoded, to obtain the feature values of the feature points in the region to be decoded; or When the flag is a second value, performing an entropy decoding process on the decoding target region based on a probability estimation result of the decoding target region, and obtaining feature values of feature points in the decoding target region; and performing reconstruction based on feature values of feature points in the feature map to obtain a reconstructed picture; A method comprising:
8. 10. The method according to claim 7, wherein the step of decoding the bitstream to obtain a flag corresponding to the region to be decoded comprises: determining a value probability of the flag based on the probability estimation result of the decoding target region, wherein the value probability of the flag is the probability that the flag is the first value or the probability that the flag is the second value; and decoding the bitstream to obtain the flag corresponding to the region to be decoded based on the value probability of the flag; A method comprising:
9. 8. The method of claim 7, wherein the region to be decoded includes a plurality of sub-blocks, and the probability estimation results for the region to be decoded include probability estimation results for the plurality of sub-blocks; The method, wherein the step of determining the value probability of the flag based on the probability estimation result of the area to be decoded includes the step of determining the value probability of the flag based on the sum of probability estimation results of the plurality of sub-blocks within the area to be decoded.
10. 8. The method of claim 7, wherein the region to be decoded includes a plurality of sub-blocks, each of the sub-blocks includes at least one feature point, and the probability estimation result for the region to be decoded includes probability estimation results for a plurality of feature points; The step of determining a value probability of the flag based on the probability estimation result of the region to be decoded includes: determining the number of feature points for which entropy decoding processing has been skipped in the decoding target region based on the probability estimation results of the plurality of feature points included in the decoding target region; and determining a value probability of the flag based on the number of feature points for which entropy decoding processing has been skipped in the region to be decoded and the total number of feature points in the region to be decoded.
11. 11. The method according to claim 7, wherein the region to be decoded includes a plurality of sub-blocks, the probability estimation result of the region to be decoded includes the probability estimation results of the plurality of sub-blocks, the sub-blocks include at least one feature point, and the probability estimation result of the sub-block includes the probability estimation result of the feature point included in the sub-block; The step of performing an entropy decoding process on at least one sub-block in the decoding target area or setting feature values of feature points in the at least one sub-block to a specific value based on the probability estimation result of the decoding target area, and obtaining feature values of feature points in the decoding target area, includes: For a first sub-block in the plurality of sub-blocks: If the probability estimation result of the first sub-block satisfies a preset condition, setting the feature values of all feature points in the first sub-block to a specific value; or if the probability estimation result of the first sub-block does not satisfy a preset condition, performing an entropy decoding process on all feature points in the first sub-block based on the probability estimation result of all feature points in the first sub-block, and obtaining feature values of all feature points in the first sub-block.
12. 1. A method of encoding comprising: obtaining a picture to be encoded; extracting a feature map of the picture to be coded and determining probability estimates of regions to be coded in the feature map; determining whether to skip the entropy coding process for the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after the entropy coding process for the region to be coded has been skipped; If the entropy coding process is skipped, the entropy coding process is skipped for the coding target region, and a flag corresponding to the coding target region is set to a first value; or if the entropy coding process is not skipped, performing an entropy coding process on the coding target region based on the probability estimation result of the coding target region, and setting a flag corresponding to the coding target region to a second value; determining a value probability of the flag based on a probability estimation result of the encoding target region, the value probability of the flag being the probability that the flag is the first value or the probability that the flag is the second value; and encoding the flag based on a value probability of the flag; A method comprising:
13. 13. The method of claim 12, wherein the step of determining whether to skip the entropy coding process for the region to be coded based on the original feature values of the region to be coded and the reconstructed feature values of the region to be coded, which are determined after the entropy coding process for the region to be coded is skipped, comprises: determining an error between the reconstructed feature values and the original feature values; and determining to skip the entropy coding process for the region to be coded if the error is greater than an error threshold; or determining not to skip entropy coding processing for the region to be coded if the error is equal to or less than an error threshold; A method comprising:
14. 14. The method according to claim 12 or 13, wherein the region to be coded includes a plurality of feature points, and the probability estimation result for the region to be coded includes a probability estimation result for a plurality of feature points in the region to be coded; The method, wherein the step of determining a value probability of the flag based on the probability estimation result of the region to be encoded includes the step of determining a value probability of the flag based on a sum of probability estimation results of the plurality of feature points within the region to be encoded.
15. 14. The method according to claim 12 or 13, wherein the region to be coded includes a plurality of feature points, and the probability estimation result for the region to be coded includes a probability estimation result for a plurality of feature points in the region to be coded; The step of determining a value probability of the flag based on the probability estimation result of the region to be coded includes: determining the number of feature points for which entropy coding processing has been skipped in the encoding target region based on the probability estimation result of the encoding target region; and determining a value probability of the flag based on the number of feature points for which entropy coding processing has been skipped in the coding target region and the total number of feature points in the coding target region; A method comprising:
16. 16. The method according to claim 15, wherein the step of determining the number of feature points for which entropy coding processing is skipped in the encoding target region based on the probability estimation result of the encoding target region comprises: a step of using the number of feature points whose probability estimation results satisfy a predetermined condition in the encoding target region as the number of feature points for which entropy encoding processing is to be skipped in the encoding target region; A method comprising:
17. 1. A method of decoding comprising: receiving a bitstream; determining a probability estimate of a region to be decoded in a feature map corresponding to the bitstream; determining a value probability of a flag corresponding to the region to be decoded based on the probability estimation result of the region to be decoded, wherein the value probability of the flag is a probability that the flag has a first value or a probability that the flag has a second value; decoding the bitstream to obtain the flag based on the value probability of the flag; If the flag is the first value, setting the feature value of the feature point in the decoding target region to a specific value; or If the flag is the second value, performing an entropy decoding process on the decoding target region based on the probability estimation result of the decoding target region to obtain feature values of feature points in the decoding target region; and performing reconstruction based on feature values of feature points in the feature map to obtain a reconstructed picture; A method comprising:
18. 18. The method of claim 17, wherein the region to be decoded includes a plurality of feature points, and the probability estimation result for the region to be decoded includes a probability estimation result for a plurality of feature points in the region to be decoded; The method, wherein the step of determining the value probability of the flag corresponding to the region to be decoded based on the probability estimation result of the region to be decoded includes the step of determining the value probability of the flag based on the sum of probability estimation results of the multiple feature points within the region to be decoded.
19. 19. The method according to claim 17 or 18, wherein the region to be decoded includes a plurality of feature points, and the probability estimation result for the region to be decoded includes a probability estimation result for a plurality of feature points in the region to be decoded; The step of determining a value probability of the flag corresponding to the region to be decoded based on the probability estimation result of the region to be decoded includes: determining the number of feature points for which entropy decoding processing has been skipped in the decoding target region based on the probability estimation result of the decoding target region; and determining a value probability of the flag based on the number of feature points for which entropy decoding processing has been skipped in the region to be decoded and the total number of feature points in the region to be decoded.
20. 20. The method of claim 19, wherein the step of determining the number of feature points for which entropy decoding processing is skipped in the region to be decoded based on the probability estimation result of the region to be decoded comprises: a step of using the number of feature points whose probability estimation results satisfy a predetermined condition in the region to be decoded as the number of feature points for which entropy encoding processing is to be skipped in the region to be decoded; A method comprising:
21. An encoder comprising: an acquisition module configured to acquire a picture to be encoded; a feature extraction module configured to extract a feature map of the picture to be encoded; a probability estimation module configured to determine a probability estimation result for a region to be coded in the feature map; and determining whether to perform adaptive entropy skip coding on the region to be coded based on original feature values of the region to be coded and reconstructed feature values of the region to be coded, the reconstructed feature values being determined after adaptive entropy skip coding has been performed on the region to be coded; When performing the adaptive entropy coding skip process, perform entropy coding on at least one sub-block in the coding target region based on the probability estimation result of the coding target region, or skip entropy coding on the at least one sub-block, and set a flag corresponding to the coding target region to a first value; or If the adaptive entropy coding skip process is not to be performed, then performing an entropy coding process on the coding target region based on the probability estimation result of the coding target region, and setting a flag corresponding to the coding target region to a second value; an entropy decoding module configured to encode the flag; Encoder including.
22. A decoder comprising: a receiving module configured to receive the bitstream; determining a probability estimation result of a region to be decoded in a feature map corresponding to the bitstream, and decoding the bitstream to obtain a flag corresponding to the region to be decoded; If the flag is a first value, perform an entropy decoding process on at least one sub-block in the region to be decoded, or set the feature values of the feature points in the at least one sub-block to a specific value based on the probability estimation result of the region to be decoded, to obtain the feature values of the feature points in the region to be decoded; or an entropy decoding module configured to, when the flag is a second value, perform an entropy decoding process on the decoding target region based on a probability estimation result of the decoding target region, and obtain feature values of feature points in the decoding target region; and a feature decoding module configured to perform reconstruction based on feature values of feature points in the feature map to obtain a reconstructed picture; A decoder containing
23. An encoder comprising: an acquisition module configured to acquire a picture to be encoded; a feature extraction module configured to extract a feature map of the picture to be encoded; a probability estimation module configured to determine a probability estimation result for a region to be coded in the feature map; determining whether to skip the entropy coding process for the target region to be coded based on the original feature values of the target region to be coded and the reconstructed feature values of the target region to be coded, the reconstructed feature values being determined after the entropy coding process for the target region to be coded has been skipped; If the entropy coding process is skipped, the entropy coding process is skipped for the coding target region, and a flag corresponding to the coding target region is set to a first value; or If the entropy coding process is not skipped, then performing an entropy coding process on the coding target region based on the probability estimation result of the coding target region, and setting a flag corresponding to the coding target region to a second value; determining a value probability of the flag, the value probability being the probability that the flag is the first value or the probability that the flag is the second value, based on the probability estimation result of the encoding target region; an entropy coding module configured to code the flag based on a value probability of the flag; Encoder including.
24. A decoder comprising: a receiving module configured to receive the bitstream; determining a probability estimate of a region to be decoded in a feature map corresponding to the bitstream; determining a value probability of a flag corresponding to the decoding target region, the value probability being a probability that the flag has a first value or a probability that the flag has a second value, based on the probability estimation result of the decoding target region; decoding the bitstream to obtain the flag based on the value probability of the flag; If the flag is the first value, setting the feature value of the feature point in the decoding target region to a specific value; or an entropy decoding module configured, when the flag is the second value, to perform an entropy decoding process on the decoding target region based on a probability estimation result of the decoding target region to obtain feature values of feature points in the decoding target region; and a feature decoding module configured to perform reconstruction based on feature values of feature points in the feature map to obtain a reconstructed picture; A decoder containing
25. 1. An electronic device comprising: a memory and a processor, the memory coupled to the processor; An electronic device, wherein the memory stores program instructions that, when executed by the processor, enable the electronic device to perform the encoding method of any one of claims 1 to 6 or the encoding method of any one of claims 12 to 16.
26. 1. An electronic device comprising: a memory and a processor, the memory coupled to the processor; An electronic device, wherein the memory stores program instructions that, when executed by the processor, enable the electronic device to perform the decoding method of any one of claims 7 to 11 or the decoding method of any one of claims 17 to 20.
27. A chip comprising one or more interface circuits and one or more processors, the one or more processors receiving or transmitting data via the one or more interface circuits, the one or more processors executing computer instructions enabling an electronic device to perform the encoding method of any one of claims 1 to 6 or any one of claims 12 to 16.
28. A chip comprising one or more interface circuits and one or more processors, the one or more processors receiving or transmitting data via the one or more interface circuits, the one or more processors executing computer instructions enabling an electronic device to perform the decoding method of any one of claims 7 to 11 or the decoding method of any one of claims 17 to 20.
29. 21. A computer readable storage medium storing a computer program which, when executed on a computer or processor, enables the computer or processor to carry out a method according to any one of claims 1 to 20.
30. 21. A computer program product comprising computer instructions which, when executed by a computer or processor, cause the steps of the method of any one of claims 1 to 20 to be performed.
31. a bitstream storage device including a receiver and at least one storage medium; the receiver configured to receive a bitstream; the at least one storage medium configured to store the bitstream; 17. An apparatus, wherein the bitstream is generated according to the encoding method of any one of claims 1 to 6, or according to the encoding method of any one of claims 12 to 16.
32. A bitstream transmission device, comprising: a transmitter and at least one storage medium; the at least one storage medium configured to store the bitstream; the bitstream has been generated according to a coding method according to any one of claims 1 to 6 or according to a coding method according to any one of claims 12 to 16; The apparatus, wherein the transmitter is configured to retrieve the bitstream from the storage medium and transmit the bitstream to an end-side device over a transmission medium.
33. 1. A bitstream distribution system comprising: At least one storage medium adapted to store at least one bitstream, said at least one bitstream being generated according to the encoding method of any one of claims 1 to 6 or according to the encoding method of any one of claims 12 to 16; and a streaming media device configured to retrieve a target bitstream from the at least one storage medium and transmit the target bitstream to a terminal-side device, the streaming media device including a content server or a content distribution server; A system including: