Image coding
By adjusting the parameters in the image encoding representation and optimizing the encoding process using the objective function and gradient backpropagation, the problem of the universality of machine learning image compression methods is solved, and the image compression efficiency and encoding/decoding efficiency are improved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2021-06-11
- Publication Date
- 2026-04-17
AI Technical Summary
Existing machine learning-based image compression methods lack general optimization methods, making it difficult to achieve efficient encoding and decoding for different images, thus affecting the performance and versatility of the models.
By obtaining the encoded representation of the target image, the parameters in the encoded representation are adjusted using the objective function. The adjustment amount is determined based on gradient backpropagation and threshold comparison. The encoded representation is optimized to generate the target bitstream. The encoding and decoding process is optimized by combining the entropy model.
It achieves adaptive optimization for different images, improves image compression efficiency and encoding/decoding efficiency, and reduces network transmission and storage costs.
Smart Images

Figure CN115474045B_ABST
Abstract
Description
Background Technology
[0001] Image compression is one of the most important and fundamental topics in signal processing and computer vision. With the increasing use of high-quality multimedia content, there is a growing demand for improving image compression efficiency to reduce transmission bandwidth or storage costs.
[0002] In recent years, machine learning-based image compression methods have gained increasing attention and achieved compression performance close to that of traditional methods. However, unlike traditional encoding and decoding schemes, there is currently a lack of general optimization methods for machine learning-based image compression to achieve efficient encoding and decoding of different images. Summary of the Invention
[0003] According to the implementation of this disclosure, an image encoding and decoding scheme is provided. In this encoding scheme, an encoded representation of the target image is obtained, and a target function associated with the decoder is further determined based on the encoded representation. Further, a set of adjustment amounts for the set of parameters is determined based on a comparison of the degree of change of the target function with a set of parameters and a threshold value, and the set of parameters in the encoded representation is adjusted based on the set of adjustment amounts to obtain an adjusted encoded representation. Further, a target bitstream of the target image is obtained based on the adjusted encoded representation. Thus, a more efficient image encoding can be achieved.
[0004] The summary section is provided for the purpose of presenting the identification of the concept in a simplified form, which will be further described in the detailed embodiments below. The summary section is not intended to identify key or principal features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Attached Figure Description
[0005] Figure 1 A block diagram is shown of a computing environment in which multiple implementations of the present disclosure can be implemented;
[0006] Figure 2 A flowchart illustrating the image encoding process according to some implementations of this disclosure is shown;
[0007] Figure 3 Schematic diagrams of image encoding according to some implementations of this disclosure are shown; and
[0008] Figure 4 A schematic diagram of an entropy model according to some implementations of this disclosure is shown;
[0009] Figure 5 A schematic diagram comparing the performance of some implementations of the encoding scheme according to this disclosure with other schemes is shown;
[0010] Figure 6A flowchart illustrating the image decoding process according to some implementations of this disclosure is shown; and
[0011] Figure 7 A block diagram of an example computing device according to some implementations of this disclosure is shown.
[0012] In these accompanying figures, the same or similar reference symbols are used to indicate the same or similar elements. Detailed Implementation
[0013] This disclosure will now be discussed with reference to several example implementations. It should be understood that these implementations are discussed only to enable those skilled in the art to better understand and thus implement this disclosure, and not to imply any limitation on the scope of the subject matter.
[0014] As used herein, the term "comprising" and its variations are to be interpreted as open-ended terms meaning "including but not limited to". The term "based on" is to be interpreted as "at least partially based on". The terms "an implementation" and "an implementation" are to be interpreted as "at least one implementation". The term "another implementation" is to be interpreted as "at least one other implementation". The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0015] As discussed above, with the widespread application of high-quality multimedia content in all aspects of people's lives, there is a growing expectation to improve the efficiency of image encoding and decoding, thereby reducing the costs of network transmission and storage.
[0016] With the development of artificial intelligence technology, image encoding and decoding technologies based on machine learning have received increasing attention. People can encode and decode images by training encoders and decoders. Currently, much research focuses on how to design network architectures to achieve efficient image compression. However, encoders obtained through such optimization often struggle to perform efficient compression for different images, which significantly impacts the model's performance and versatility.
[0017] According to an implementation of this disclosure, an image encoding and decoding scheme is provided. In the encoding scheme, an encoded representation of a target image is obtained, which may include the values of a set of parameters corresponding to the target image. For example, such an encoded representation can be obtained by processing the target image using a trained machine learning-based encoder.
[0018] Furthermore, an objective function associated with the decoder can be determined based on this encoded representation, which is used to decode the bitstream corresponding to the encoded representation. For example, such a decoder could be the decoding portion of a machine learning-based codec.
[0019] The objective function is further used to adjust the encoded representation. Specifically, a set of adjustment amounts for the set of parameters can be determined based on a comparison of the degree of change of the objective function with respect to a threshold. This degree of change is also referred to as the gradient of the parameters. By comparing the gradients of different parameters with the threshold gradient, embodiments of this disclosure can achieve adaptive parameter adjustment.
[0020] Furthermore, the set of parameters is adjusted based on this set of adjustment amounts to obtain the adjusted encoded representation, and the target bitstream of the target image can be obtained further.
[0021] Therefore, embodiments of this disclosure can directly optimize the encoded representation using an objective function, thereby achieving adaptive optimization for different images. Furthermore, by determining the adjustment amount of each parameter based on a threshold gradient, embodiments of this disclosure can also take into account the characteristics of the quantization operations to be performed on the encoded representation, thereby improving compression efficiency.
[0022] The basic principles and several example implementations of this disclosure are illustrated below with reference to the accompanying drawings.
[0023] Example Environment
[0024] Figure 1 A block diagram of an environment 100 in which multiple implementations of the present disclosure can be implemented is shown. It should be understood that... Figure 1 The environment 100 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the implementation described in this disclosure.
[0025] like Figure 1 As shown, encoder 110 can acquire target image 105 and convert target image 105 into a corresponding bitstream 115. In some implementations, target image 105 may be an image captured by any type of image capture device used for capturing real-world images, etc. Alternatively, target image 105 may also be an image generated by any type of image generation device.
[0026] It should be understood that in the field of image coding, the terms "picture," "frame," or "image" can be used synonymously. Image coding (or often simply called encoding) comprises two parts: image encoding and image decoding. Image encoding is performed on the source side and typically involves processing (e.g., compressing) the raw video image to reduce the amount of data required to represent it (thus enabling more efficient storage and / or transmission). Image decoding is performed on the destination side and typically involves inverse processing relative to the encoder to reconstruct the image. The encoding and decoding parts are also collectively referred to as codec (encoding and decoding, CODEC).
[0027] like Figure 1 As shown, decoding device 120 can receive bitstream 115 and obtain decoded image 125 through decoding. In some implementations, encoding device 110 and decoding device 120 can be different devices, and bitstream 115 can be sent from encoding device 110 to decoding device 120, for example, via communication transmission. Such bitstream 115 can be encapsulated into a suitable format such as a message, and / or use any type of transport encoding or processing for transmission on a communication link or communication network.
[0028] although Figure 1 The encoding device 110 and decoding device 120 are shown as independent devices, but device embodiments may also include both encoding device 110 and decoding device 120 or corresponding functions simultaneously. In these embodiments, encoding device 110 or corresponding functions and decoding device 120 or corresponding functions may be implemented using the same hardware and / or software or by separate hardware and / or software or any combination thereof.
[0029] The processes of image encoding and image decoding will be described in detail below.
[0030] Encoding process
[0031] Figure 2 A flowchart of an image encoding process 200 according to some implementations of this disclosure is shown. Process 200 can, for example, be performed by... Figure 1 The encoding device 110 in the middle is used to implement this.
[0032] like Figure 2 As shown, at 202, the encoding device 110 acquires an encoded representation of the target image 105, which includes the values of a set of parameters corresponding to the target image 105.
[0033] In some implementations, the encoded representation can be an initial encoded representation obtained through appropriate encoding techniques. For example, the encoded representation can be a latent representation obtained using any appropriately trained machine learning-based encoder. As another example, the encoded representation can also be generated in other ways; for example, such an encoded representation can also be a set of random encoded representations.
[0034] Figure 3 A schematic diagram 300 illustrating image encoding according to some implementations of this disclosure is shown. For example... Figure 3 As shown, the target image 105 (represented as x) can be provided to a machine learning-based encoder 302, which can convert the target image 105 into a first coded representation y.
[0035] For example, the first encoded representation y can be represented as:
[0036] y = g a (x|φ g (1)
[0037] Where g a (·) represents the analysis and transformation process of encoder 302, φ g This represents the parameters of encoder 302.
[0038] In some implementations, the first encoded representation y may include data corresponding to different regions in the target image 105. For example, the target image 105 may be input to the encoder 302 to obtain a corresponding set of parameter values. For example, the target image 105 may be 1024*768 pixels in size, and the encoder 302 may generate 64*48*128 parameter values based on the target image 105, where 128 represents the dimension of the data. In this way, each set of 128-dimensional data may correspond to a 16*16 pixel image patch in the target image 105. It should be understood that the above number of parameters is only an example and is not intended to limit the present disclosure.
[0039] like Figure 3 As shown, in some implementations, the first coded representation y can be further provided to the hyperencoder 314 to obtain a second coded representation z. The second coded representation z can be used to indicate the distribution characteristics of the first coded representation y. Such distribution characteristics can, for example, be used to indicate the spatial dependencies between different elements of the first coded representation y.
[0040] For example, the second encoding representation z can be represented as:
[0041] z = h a (y|φ h (2)
[0042] Among them, h a (·) represents the transformation process of the super encoder 314, φ h This represents the parameters of the super encoder 314.
[0043] For details on the implementation of the super encoder 314 and the super decoder 326, which will be introduced below, please refer to the article "Variational Image Compression with a Scale Hyperprior" (JohannesBalle, D.Minnen, S.Singh, SJHwang, N.Johnston, "Variational Image Compression with a Scale Hyperprior", Intl.Conf. on Learning Representations (ICLR), pp.1-23, 2018). They will not be elaborated here.
[0044] At 204, encoding device 110 determines an objective function associated with a decoder based on the encoded representation, the decoder being used to decode the bitstream corresponding to the encoded representation. In some implementations, the decoder may correspond to the machine learning-based encoder discussed above, to implement a decoding process corresponding to that encoder.
[0045] by Figure 3 As an example, during the encoding process, the first encoded representation y is provided to the quantization unit 304 to perform quantization and obtain the quantized result y. q The data is then encoded into bitstream 308 by arithmetic encoder 306. Correspondingly, during decoding, bitstream 308 can be decoded into bitstream 308 by arithmetic decoder 310. And transformed by the dequantization unit 312 to Decoder 330 can be based on the dequantized result To obtain the decoded image 332 (represented as This allows for decoding.
[0046] In some implementations, when the encoded representation also includes a second encoded representation z, during the encoding process, the second encoded representation z can similarly be converted into a bitstream 320 via quantization unit 316 and arithmetic encoder 318. Correspondingly, during the decoding process, the bitstream 320 can obtain the dequantized result via arithmetic decoder 322 and dequantization process 324. The input values are then processed by the superdecoder 326 onto the model 328 to determine the entropy coding parameters for the arithmetic encoder 306 and the arithmetic decoder 310. In some examples, such entropy coding parameters may include parameters indicating the mean and parameters indicating the variance.
[0047] In some implementations, the objective function (also known as the loss function) associated with the decoder can be determined based on at least one of the following: the expected size of the bitstream generated from the encoded representation and the difference between the decoded image generated from the bitstream and the target image. Specifically, in Figure 3 In the example, the objective function associated with the decoder can be determined as:
[0048]
[0049] in Used to indicate the coding rate corresponding to the first coded representation y, which is also related to the size of the bitstream 308; Used to indicate the coding rate of the second coded representation z, which is also associated with the size of the bitstream 320; This indicates the difference between the target image 305 and the decoded image 332 generated by bitstreams 308 and 320. and represents the estimates of the number of bits required to encode y and z, respectively; λ represents the weighting coefficient.
[0050] It should be understood that the objective function (3) aims to improve the compression ratio of the code while reducing the distortion of the decoded image. In addition, a balance between reducing image distortion and improving the compression ratio can be achieved by adjusting the value of λ.
[0051] Continue to refer to Figure 2 In 206, the encoding device 110 determines a set of adjustment amounts for a set of parameters based on a comparison between the degree of change of the objective function with respect to a set of parameters and the degree of change of the threshold.
[0052] In some implementations, the encoding device 110 can calculate the gradient value of the objective function with respect to each parameter in a set of parameters through gradient feedback, that is, the degree of change of the objective function with respect to each parameter.
[0053] During the forward pass, the quantization process performed by quantization unit 304 is implemented through the rounding process shown in formula (4):
[0054] y q =Q(y)=[y-μ], (4)
[0055] Where [·] represents rounding. To achieve gradient backpropagation, during the gradient backpropagation process, formula (4) is replaced by an identity to calculate the gradient, as shown in formula (5):
[0056]
[0057] Taking the first encoded representation y as an example, the gradient of the objective function with respect to each parameter in the first encoded representation y can be calculated based on gradient backpropagation.
[0058] Because the quantization process uses rounding operations as described in formula (4), on the one hand, this means that adjusting a parameter with a small step size may not affect the encoding result. For example, if the value of a parameter is adjusted from 1.11 to 1.12, it will always be equal to 1 after rounding, so an adjustment with a step size of 0.01 will not cause any change.
[0059] On the other hand, even small adjustments can have a significant impact on the encoding results. For example, if the value of a parameter is adjusted from 1.49 to 1.50, it will be quantized as 1 before the adjustment but as 2 after the adjustment, which may lead to a decrease in encoding efficiency.
[0060] To avoid the problems that may arise from a uniform step size, in some implementations, the encoding device 110 may further compare the gradient of each parameter with the threshold gradient, and determine the adjustment amount of each parameter in the iteration only based on the comparison result.
[0061] In some implementations, if the gradient of the first parameter in a set of parameters is less than or equal to the threshold gradient, that is, the objective function changes less than the threshold degree with the first parameter, then the encoding device 110 can determine the adjustment amount of the first parameter to be zero in this iteration.
[0062] In this way, for parameters with small gradients, the encoding device 110 can stop adjusting the value of the parameter during iteration, thus avoiding the problem of reduced encoding efficiency due to small adjustments.
[0063] In some implementations, if the gradient of the second parameter in a set of parameters is greater than the threshold gradient, that is, the objective function changes with the second parameter to a degree greater than or equal to the threshold degree, then the encoding device 110 can determine the adjustment amount of the second parameter based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
[0064] In this way, for parameters with large gradients, the encoding device 110 can adaptively determine the step size of parameter adjustment based on the magnitude of the gradient during iteration, thereby accelerating the iterative convergence process.
[0065] In some implementations, the encoding device 110 may determine the maximum degree of change among a set of degrees of change and determine an adjustment amount based on the ratio of a second degree of change to the maximum degree of change, such that the adjustment amount is proportional to the ratio of the second degree of change to the maximum degree of change.
[0066] For example, the encoding device 110 can determine the maximum gradient among a set of parameters and set the adjustment amount of the parameter corresponding to the maximum gradient in each iteration as a predetermined step size. Subsequently, the programming device 110 can determine the product of the ratio of the gradient of other parameters to the maximum gradient and the predetermined step size, and determine the result of the product as the step size by which the other parameters are adjusted.
[0067] In some implementations, the threshold gradient used for comparison can be determined based on the product of the maximum gradient in the set of gradients associated with the set of parameters and a predetermined coefficient. Alternatively, the threshold gradient can also be a predetermined gradient value.
[0068] It should be understood that the magnitude of the degree of change discussed above is intended to represent the magnitude of the absolute value of the degree of change, that is, the magnitude of the absolute value of the gradient, without considering its sign.
[0069] For example, taking the first encoding representation y as an example, it can be represented by formula (6) in the iterative adjustment process:
[0070]
[0071] Where y′ t Indicates y t The gradient, t represents the number of iterations, α represents the predetermined adjustment step size, β represents the predetermined coefficient used to determine the threshold gradient, |y′ t | max Indicates y t The maximum value among the absolute values of the gradient.
[0072] Based on formula (6), for parameters whose ratio of absolute gradient value to absolute maximum gradient value is greater than β, the adjustment step size is the product of this ratio and the predetermined step size α; for parameters whose ratio of absolute gradient value to absolute maximum gradient value is less than or equal to β, they will not be adjusted in this iteration, that is, the adjustment amount is zero.
[0073] At 208, encoding device 110 adjusts a set of parameters based on a set of adjustment amounts to obtain an adjusted encoded representation. Figure 3 As an example, encoding device 110 may adjust the first encoded representation y according to formula (6) discussed above to obtain the adjusted first encoded representation.
[0074] In some implementations, for the second coded representation z, the encoding device 110 can use a super encoder to process the adjusted first coded representation in order to regenerate a new second coded representation.
[0075] In some implementations, the second coded representation z can also be optimized together with the first coded representation y. That is, the encoding device 110 can use the first coded representation y and the second coded representation z as parameters to be optimized, and optimize them together based on the objective function (3).
[0076] During the collaborative optimization process, the encoding device 110 may, for example, determine the step size by which the parameters in the second coded representation z are adjusted in each iteration according to the process discussed in step 206, without using the super encoder to regenerate a new second coded representation.
[0077] In other implementations, given that the bitstream 320 corresponding to the second encoded representation z has relatively few bits, the second encoded representation z may, for example, not be adjusted.
[0078] In some implementations, the encoding device 110 may iteratively adjust the first coded representation y and / or the second coded representation z according to the process discussed above until a convergence condition is met. Such a convergence condition may, for example, be that the change in the objective function after a predetermined number of iterations is less than a predetermined threshold.
[0079] Continue to refer to Figure 2 In box 210, encoding device 110 obtains the target bitstream of the target image based on the adjusted encoding representation.
[0080] In some implementations, after optimizing the encoded representation, the encoding device 110 may, for example, use a quantization unit and an arithmetic encoder to obtain the target bitstream of the target image.
[0081] by Figure 3 As an example, the encoding device 110 can use the quantization unit 304 and the arithmetic encoder 306 to convert the adjusted first encoded representation y into a bitstream; in addition, the encoding device 110 can also use the quantization unit 316 and the arithmetic encoder 318 to convert the adjusted second encoded representation z into a bitstream.
[0082] As discussed above, the entropy model 328 needs to determine the entropy coding parameters related to the mean μ and the variance σ to guide the encoding process of the arithmetic encoder 306 and the decoding process of the arithmetic decoder 310.
[0083] In some traditional approaches, the entropy model 328 requires the use of context parameters to determine both the mean and variance; however, this increases the complexity of the model and breaks the parallelism of the encoding side.
[0084] Figure 4 A schematic diagram 400 of some implementations of the entropy model according to this disclosure is shown. For example... Figure 4As shown, the entropy model 328 includes a variance estimator 420 and a mean estimator 430. Unlike traditional entropy models, the mean estimator 430 does not rely on the output of the context model 410 when determining the mean μ.
[0085] Specifically, Figure 4 The calculation process of the entropy model shown can be represented as follows:
[0086] z = h a (y|φ h )
[0087]
[0088] Where h a (·) and h s (·) represent the processing procedures of the super encoder 314 and the super decoder 326, respectively. h and θ h These represent the model parameters of the super encoder 314 and the super decoder 326, respectively; f(·) represents the processing procedure of the context model 410, i1 to i n This represents an index of a set of associated positions that are linked to a given position where the current bitstream needs to be generated; e μ (·) and e σ (·) represent the processing steps of the mean estimator 430 and the variance estimator 420, respectively. and These represent the model parameters for the mean estimator 430 and the variance estimator 420, respectively. It should be understood that i1 to i... n The associated positions referred to are other positions preceding the current position based on the decoding order.
[0089] According to the formula As can be seen, the mean estimator 430 no longer relies on the results of the context model 410 when calculating the mean. Based on this, embodiments of this disclosure support the parallelization of the encoding process at different locations.
[0090] In some implementations, auxiliary information can be encoded in the target bitstream to optimize the encoding and decoding process. For example... Figure 3 As shown, the auxiliary information selection unit 336 can be used to determine the auxiliary information in the bitstream 338 to be encoded.
[0091] In some implementations, auxiliary information may include first auxiliary information to indicate the quantization parameters used to quantize the encoded representation. For example... Figure 3 As shown, the auxiliary information selection unit can determine the quantization step size q and provide it to the quantization unit 304 and the dequantization unit 312 to perform the corresponding quantization and dequantization.
[0092] Typically, in machine learning-based encoding / decoding models, the quantization step size is always fixed at 1, which affects the compression ratio. By including a quantization step size q in the bitstream, the quantization steps performed by the quantization unit 304 can be represented as:
[0093]
[0094] In this way, the compression rate can be further improved.
[0095] Accordingly, during gradient backpropagation, the corresponding gradient calculation process (5) can be updated as follows:
[0096]
[0097] In some implementations, the encoding device 110 can determine the optimal quantization step size for the target image 105 by searching a candidate set of quantization step sizes q. Alternatively, the quantization step size q can also be manually configured, for example, as a configuration parameter of the encoder.
[0098] In some implementations, the auxiliary information may also include second auxiliary information to indicate the post-processing parameter m indicating the post-processing to be performed on the decoded image generated from the target bitstream. For example... Figure 3 As shown, the auxiliary information selection unit can also determine the post-processing parameter m and provide the post-processing parameter m to the post-processing unit 334 to execute the corresponding post-processing procedure. The processing procedure of the post-processing unit 334 can be represented, for example, as follows:
[0099]
[0100] in This indicates the process executed by the post-processing unit 334.
[0101] Similar to the process of determining the quantization step size q, the encoding device 110 can determine the post-processing parameters m applicable to the target image 105 through a candidate set of post-processing parameters. Alternatively, considering that in a machine learning-based encoding and decoding scheme, the encoding side can perform encoding and decoding operations simultaneously, the encoding device 110 can also calculate the post-processing parameters m based on the difference between the input image 105 and the decoded image 332.
[0102] As an example, the post-processing parameter m may indicate the noise level of the decoded image 332, and the post-processing procedure performed by the post-processing unit 334 may be a denoising process. When the noise level is high, the post-processing unit 334 may perform a higher-intensity denoising process; conversely, when the noise level is low, the post-processing unit 334 may perform a lower-intensity denoising process. It should be understood that other appropriate post-processing parameters may also be encoded as auxiliary information.
[0103] Based on this approach, embodiments of this disclosure can also encode auxiliary information in the bitstream, thereby helping the decoding side to perform corresponding optimizations, thus helping to improve the efficiency of encoding and decoding and optimize the quality of the decoded image.
[0104] Figure 5 A further schematic diagram 500 illustrates a performance comparison between some implementations of the encoding scheme according to this disclosure and other schemes. For example... Figure 5 As shown in the diagram 500, the horizontal axis represents bpp (bits per pixel), and the vertical axis represents PSNR (Peak Signal to Noise Ratio). From Figure 5 As can be seen, the scheme disclosed herein has a significantly better compression ratio than the VVC scheme and the scheme proposed in the article "Learned image compression with discretized Gaussian mixture likelihoods and attention modules".
[0105] Decoding process
[0106] Figure 6 A flowchart of an image decoding process 600 according to some implementations of this disclosure is shown. Process 600 may, for example, be performed by... Figure 1 The decoding device 120 in the middle is used to achieve this.
[0107] like Figure 6 As shown, in box 602, the decoding device 120 receives the target bitstream corresponding to the target image. The specific generation process of the target bitstream has been described in detail above and will not be repeated here. In box 604, the decoding device 120 decodes the image from the target bitstream.
[0108] In some implementations, the decoding device 120 also decodes auxiliary information from the target bitstream. In some implementations, the auxiliary information includes first auxiliary information as discussed above, indicating quantization parameters used to quantize the coded representation.
[0109] In some implementations, after decoding the quantization parameters from the target bitstream, the decoding device 120 can send the quantization parameters to the dequantization unit to perform the corresponding dequantization operation.
[0110] In some implementations, the auxiliary information includes second auxiliary information as discussed above, to indicate post-processing parameters for post-processing the decoded image generated from the target bitstream.
[0111] In some implementations, after decoding the post-processing parameters from the target bitstream, the decoding device 120 can send the post-processing parameters to the post-processing unit to perform post-processing operations on the decoded image.
[0112] Example device
[0113] Figure 7 A schematic block diagram of an example device 700 that can be used to implement embodiments of the present disclosure is shown. Device 700 can be used to implement... Figure 1 The encoding device 110 and / or decoding device 120. It should be understood that... Figure 7 The device 700 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the implementation described in this disclosure. Figure 1 As shown, the components of device 700 may include, but are not limited to, one or more processors or processing units 710, memory 720, storage device 730, one or more communication units 740, one or more input devices 750, and one or more output devices 760.
[0114] In some implementations, device 700 can be implemented as various user terminals or service terminals. Service terminals can be servers, large computing devices, etc., provided by various service providers. User terminals can be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, multimedia computers, multimedia tablets, internet nodes, communicators, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices, or any combination thereof. It is also foreseeable that device 700 can support any type of user-facing interface (such as "wearable" circuitry).
[0115] Processing unit 710 can be a physical or virtual processor and is capable of performing various processes according to programs stored in memory 720. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of device 700. Processing unit 710 may also be referred to as a central processing unit (CPU), microprocessor, controller, or microcontroller.
[0116] Device 700 typically includes multiple computer storage media. Such media can be any available media accessible to device 700, including but not limited to volatile and non-volatile media, removable and non-removable media. Memory 720 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. Memory 720 may include one or more encoding / decoding modules 725, which are configured to perform encoding / decoding functions of the various implementations described herein. Encoding / decoding modules 725 can be accessed and operated by processing unit 710 to implement the corresponding functions. Storage device 730 can be a removable or non-removable medium and may include machine-readable media capable of storing information and / or data and accessible within device 700.
[0117] The functionality of the components of device 700 can be implemented using a single computing cluster or multiple computing machines capable of communicating via communication connections. Therefore, device 700 can operate in a networked environment using logical connections to one or more other servers, personal computers (PCs), or other general network nodes. Device 700 can also communicate as needed via communication unit 740 with one or more external devices (not shown), such as database 770, other storage devices, servers, display devices, etc., with one or more devices that enable user interaction with device 700, or with any device that enables device 700 to communicate with one or more other computing devices (e.g., network interface card, modem, etc.). Such communication can be performed via input / output (I / O) interfaces (not shown).
[0118] Input device 750 can be one or more various input devices, such as a mouse, keyboard, trackball, voice input device, camera, etc. Output device 760 can be one or more output devices, such as a monitor, speaker, printer, etc.
[0119] Example implementation
[0120] The following are some example implementations of this disclosure.
[0121] In a first aspect, this disclosure provides an image encoding method. The method includes: acquiring an encoded representation of a target image, the encoded representation including values of a set of parameters corresponding to the target image; determining, based on the encoded representation, a target function associated with a decoder, the decoder being used to decode a bitstream corresponding to the encoded representation; determining a set of adjustment amounts for the set of parameters based on a comparison of the target function with a set of variations of the set of parameters and a threshold value; adjusting the set of parameters based on the set of adjustment amounts to obtain an adjusted encoded representation; and obtaining a target bitstream of the target image based on the adjusted encoded representation.
[0122] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes less than or equal to a threshold, setting the adjustment amount of the first parameter to zero.
[0123] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes by a second degree greater than a threshold, determining the adjustment amount of the second parameter based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
[0124] In some implementations, determining the adjustment amount based on the second degree of change includes:
[0125] Determine the maximum degree of change in a set of degrees of change; and based on the ratio of the second degree of change to the maximum degree of change, determine an adjustment amount such that the adjustment amount is proportional to the ratio.
[0126] In some implementations, the threshold level is determined based on the product of the maximum degree of change among a set of degree of change and a predetermined coefficient.
[0127] In some implementations, the encoded representation includes a first encoded representation, which is generated by processing the target image using an encoder.
[0128] In some implementations, the encoding representation also includes a second encoding representation, which is generated based on the first encoding representation to indicate the distribution characteristics of the first encoding representation.
[0129] In some implementations, the encoded representation includes multiple partial encoded representations corresponding to multiple locations in the target image, and generating the target bitstream includes: for a given location among the multiple locations, determining a first entropy encoding parameter based on a second encoded representation to indicate the mean, the first entropy encoding parameter being independent of context parameters used to indicate the encoded representation of a set of associated locations among the multiple locations associated with the given location; and generating a partial bitstream of the target bitstream corresponding to the given location based at least on the first entropy encoding parameter.
[0130] In some implementations, generating a portion of the target bitstream corresponding to a given position based at least on the first entropy coding parameters includes: determining the second entropy coding parameters used to indicate variance based on the second coding representation and context parameters; and generating the portion of the target bitstream corresponding to the given position based on the first entropy coding parameters and the second entropy coding parameters.
[0131] In some implementations, the target bitstream is encoded with at least one of the following: first auxiliary information indicating quantization parameters used to quantize the coded representation, or second auxiliary information indicating post-processing parameters for post-processing the decoded image generated from the target bitstream.
[0132] In some implementations, adjusting a set of parameters based on a set of adjustment amounts includes iteratively adjusting the encoded representation until the convergence condition associated with the objective function is met.
[0133] In a second aspect, this disclosure provides a method for image decoding. The method includes: receiving a target bitstream corresponding to a target image; and decoding the image from the target bitstream, wherein the target bitstream is generated based on the following process: obtaining an encoded representation of the target image, the encoded representation including values of a set of parameters corresponding to the target image; determining, based on the encoded representation, a target function associated with a decoder, the decoder being used to decode the bitstream corresponding to the encoded representation; determining a set of adjustment amounts for the set of parameters based on a comparison of the target function with a set of degrees of change of the set of parameters and a threshold degree; adjusting the set of parameters based on the set of adjustment amounts to obtain an adjusted encoded representation; and obtaining a target bitstream of the target image based on the adjusted encoded representation.
[0134] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes less than or equal to a threshold, setting the adjustment amount of the first parameter to zero.
[0135] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes by a second degree greater than a threshold, determining the adjustment amount of the second parameter based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
[0136] In some implementations, determining the adjustment amount based on the second degree of change includes:
[0137] Determine the maximum degree of change in a set of degrees of change; and based on the ratio of the second degree of change to the maximum degree of change, determine an adjustment amount such that the adjustment amount is proportional to the ratio.
[0138] In some implementations, the threshold level is determined based on the product of the maximum degree of change among a set of degree of change and a predetermined coefficient.
[0139] In some implementations, the encoded representation includes a first encoded representation, which is generated by processing the target image using an encoder.
[0140] In some implementations, the encoding representation also includes a second encoding representation, which is generated based on the first encoding representation to indicate the distribution characteristics of the first encoding representation.
[0141] In some implementations, the encoded representation includes multiple partial encoded representations corresponding to multiple locations in the target image, and generating the target bitstream includes: for a given location among the multiple locations, determining a first entropy encoding parameter based on a second encoded representation to indicate the mean, the first entropy encoding parameter being independent of context parameters used to indicate the encoded representation of a set of associated locations among the multiple locations associated with the given location; and generating a partial bitstream of the target bitstream corresponding to the given location based at least on the first entropy encoding parameter.
[0142] In some implementations, generating a portion of the target bitstream corresponding to a given position based at least on the first entropy coding parameters includes: determining the second entropy coding parameters used to indicate variance based on the second coding representation and context parameters; and generating the portion of the target bitstream corresponding to the given position based on the first entropy coding parameters and the second entropy coding parameters.
[0143] In some implementations, the target bitstream is encoded with at least one of the following: first auxiliary information indicating quantization parameters used to quantize the coded representation, or second auxiliary information indicating post-processing parameters for post-processing the decoded image generated from the target bitstream.
[0144] In some implementations, adjusting a set of parameters based on a set of adjustment amounts includes iteratively adjusting the encoded representation until the convergence condition associated with the objective function is met.
[0145] In a third aspect, this disclosure provides an apparatus. The apparatus includes a processing unit; and a memory coupled to the processing unit and containing instructions stored thereon, which, when executed by the processing unit, cause the apparatus to perform the following actions: acquiring an encoded representation of a target image, the encoded representation including values of a set of parameters corresponding to the target image; determining, based on the encoded representation, a target function associated with a decoder, the decoder being used to decode a bitstream corresponding to the encoded representation; determining a set of adjustment amounts for the set of parameters based on a comparison of the target function with a set of variations of the set of parameters to a threshold level; adjusting the set of parameters based on the set of adjustment amounts to obtain an adjusted encoded representation; and obtaining a target bitstream of the target image based on the adjusted encoded representation.
[0146] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes less than or equal to a threshold, setting the adjustment amount of the first parameter to zero.
[0147] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes by a second degree greater than a threshold, determining the adjustment amount of the second parameter based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
[0148] In some implementations, determining the adjustment amount based on the second degree of change includes:
[0149] Determine the maximum degree of change in a set of degrees of change; and based on the ratio of the second degree of change to the maximum degree of change, determine an adjustment amount such that the adjustment amount is proportional to the ratio.
[0150] In some implementations, the threshold level is determined based on the product of the maximum degree of change among a set of degree of change and a predetermined coefficient.
[0151] In some implementations, the encoded representation includes a first encoded representation, which is generated by processing the target image using an encoder.
[0152] In some implementations, the encoding representation also includes a second encoding representation, which is generated based on the first encoding representation to indicate the distribution characteristics of the first encoding representation.
[0153] In some implementations, the encoded representation includes multiple partial encoded representations corresponding to multiple locations in the target image, and generating the target bitstream includes: for a given location among the multiple locations, determining a first entropy encoding parameter based on a second encoded representation to indicate the mean, the first entropy encoding parameter being independent of context parameters used to indicate the encoded representation of a set of associated locations among the multiple locations associated with the given location; and generating a partial bitstream of the target bitstream corresponding to the given location based at least on the first entropy encoding parameter.
[0154] In some implementations, generating a portion of the target bitstream corresponding to a given position based at least on the first entropy coding parameters includes: determining the second entropy coding parameters used to indicate variance based on the second coding representation and context parameters; and generating the portion of the target bitstream corresponding to the given position based on the first entropy coding parameters and the second entropy coding parameters.
[0155] In some implementations, the target bitstream is encoded with at least one of the following: first auxiliary information indicating quantization parameters used to quantize the coded representation, or second auxiliary information indicating post-processing parameters for post-processing the decoded image generated from the target bitstream.
[0156] In some implementations, adjusting a set of parameters based on a set of adjustment amounts includes iteratively adjusting the encoded representation until the convergence condition associated with the objective function is met.
[0157] In a fourth aspect, this disclosure provides an apparatus. The apparatus includes a processing unit; and a memory coupled to the processing unit and containing instructions stored thereon, which, when executed by the processing unit, cause the apparatus to perform the following actions: receiving a target bitstream corresponding to a target image; and decoding the image from the target bitstream, wherein the target bitstream is generated based on the following process: acquiring an encoded representation of the target image, the encoded representation including values of a set of parameters corresponding to the target image; determining, based on the encoded representation, a target function associated with a decoder for decoding the bitstream corresponding to the encoded representation; determining a set of adjustment amounts for the set of parameters based on a comparison of the target function with a set of variations of the set of parameters to a threshold level; adjusting the set of parameters based on the set of adjustment amounts to obtain an adjusted encoded representation; and obtaining a target bitstream of the target image based on the adjusted encoded representation.
[0158] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes less than or equal to a threshold, setting the adjustment amount of the first parameter to zero.
[0159] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes by a second degree greater than a threshold, determining the adjustment amount of the second parameter based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
[0160] In some implementations, determining the adjustment amount based on the second degree of change includes:
[0161] Determine the maximum degree of change in a set of degrees of change; and based on the ratio of the second degree of change to the maximum degree of change, determine an adjustment amount such that the adjustment amount is proportional to the ratio.
[0162] In some implementations, the threshold level is determined based on the product of the maximum degree of change among a set of degree of change and a predetermined coefficient.
[0163] In some implementations, the encoded representation includes a first encoded representation, which is generated by processing the target image using an encoder.
[0164] In some implementations, the encoding representation also includes a second encoding representation, which is generated based on the first encoding representation to indicate the distribution characteristics of the first encoding representation.
[0165] In some implementations, the encoded representation includes multiple partial encoded representations corresponding to multiple locations in the target image, and generating the target bitstream includes: for a given location among the multiple locations, determining a first entropy encoding parameter based on a second encoded representation to indicate the mean, the first entropy encoding parameter being independent of context parameters used to indicate the encoded representation of a set of associated locations among the multiple locations associated with the given location; and generating a partial bitstream of the target bitstream corresponding to the given location based at least on the first entropy encoding parameter.
[0166] In some implementations, generating a portion of the target bitstream corresponding to a given position based at least on the first entropy coding parameters includes: determining the second entropy coding parameters used to indicate variance based on the second coding representation and context parameters; and generating the portion of the target bitstream corresponding to the given position based on the first entropy coding parameters and the second entropy coding parameters.
[0167] In some implementations, the target bitstream is encoded with at least one of the following: first auxiliary information indicating quantization parameters used to quantize the coded representation, or second auxiliary information indicating post-processing parameters for post-processing the decoded image generated from the target bitstream.
[0168] In some implementations, adjusting a set of parameters based on a set of adjustment amounts includes iteratively adjusting the encoded representation until the convergence condition associated with the objective function is met.
[0169] In a fifth aspect, a computer program product is provided. This computer program product is tangibly stored in a non-transient computer storage medium and includes machine-executable instructions, which, when executed by a device, cause the device to perform the following actions: acquiring an encoded representation of a target image, the encoded representation including values of a set of parameters corresponding to the target image; determining, based on the encoded representation, a target function associated with a decoder, the decoder being used to decode a bitstream corresponding to the encoded representation; determining a set of adjustment amounts for the set of parameters based on a comparison of the target function with a set of variations of the set of parameters to a threshold level; adjusting the set of parameters based on the set of adjustment amounts to obtain an adjusted encoded representation; and obtaining a target bitstream of the target image based on the adjusted encoded representation.
[0170] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes less than or equal to a threshold, setting the adjustment amount of the first parameter to zero.
[0171] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes by a second degree greater than a threshold, determining the adjustment amount of the second parameter based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
[0172] In some implementations, determining the adjustment amount based on the second degree of change includes:
[0173] Determine the maximum degree of change in a set of degrees of change; and based on the ratio of the second degree of change to the maximum degree of change, determine an adjustment amount such that the adjustment amount is proportional to the ratio.
[0174] In some implementations, the threshold level is determined based on the product of the maximum degree of change among a set of degree of change and a predetermined coefficient.
[0175] In some implementations, the encoded representation includes a first encoded representation, which is generated by processing the target image using an encoder.
[0176] In some implementations, the encoding representation also includes a second encoding representation, which is generated based on the first encoding representation to indicate the distribution characteristics of the first encoding representation.
[0177] In some implementations, the encoded representation includes multiple partial encoded representations corresponding to multiple locations in the target image, and generating the target bitstream includes: for a given location among the multiple locations, determining a first entropy encoding parameter based on a second encoded representation to indicate the mean, the first entropy encoding parameter being independent of context parameters used to indicate the encoded representation of a set of associated locations among the multiple locations associated with the given location; and generating a partial bitstream of the target bitstream corresponding to the given location based at least on the first entropy encoding parameter.
[0178] In some implementations, generating a portion of the target bitstream corresponding to a given position based at least on the first entropy coding parameters includes: determining the second entropy coding parameters used to indicate variance based on the second coding representation and context parameters; and generating the portion of the target bitstream corresponding to the given position based on the first entropy coding parameters and the second entropy coding parameters.
[0179] In some implementations, the target bitstream is encoded with at least one of the following: first auxiliary information indicating quantization parameters used to quantize the coded representation, or second auxiliary information indicating post-processing parameters for post-processing the decoded image generated from the target bitstream.
[0180] In some implementations, adjusting a set of parameters based on a set of adjustment amounts includes iteratively adjusting the encoded representation until the convergence condition associated with the objective function is met.
[0181] In a sixth aspect, a computer program product is provided. The computer program product is tangibly stored in a non-transient computer storage medium and includes machine-executable instructions, which, when executed by a device, cause the device to perform the following actions: receiving a target bitstream corresponding to a target image; and decoding the image from the target bitstream, wherein the target bitstream is generated based on the following process: obtaining an encoded representation of the target image, the encoded representation including values of a set of parameters corresponding to the target image; determining, based on the encoded representation, a target function associated with a decoder for decoding the bitstream corresponding to the encoded representation; determining a set of adjustment amounts for the set of parameters based on a comparison of the target function with a set of degrees of variation of the set of parameters to a threshold degree; adjusting the set of parameters based on the set of adjustment amounts to obtain an adjusted encoded representation; and obtaining a target bitstream of the target image based on the adjusted encoded representation.
[0182] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes less than or equal to a threshold, setting the adjustment amount of the first parameter to zero.
[0183] In some implementations, determining the adjustment amount of the parameter includes: in response to determining that the objective function changes by a second degree greater than a threshold, determining the adjustment amount of the second parameter based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
[0184] In some implementations, determining the adjustment amount based on the second degree of change includes:
[0185] Determine the maximum degree of change in a set of degrees of change; and based on the ratio of the second degree of change to the maximum degree of change, determine an adjustment amount such that the adjustment amount is proportional to the ratio.
[0186] In some implementations, the threshold level is determined based on the product of the maximum degree of change among a set of degree of change and a predetermined coefficient.
[0187] In some implementations, the encoded representation includes a first encoded representation, which is generated by processing the target image using an encoder.
[0188] In some implementations, the encoding representation also includes a second encoding representation, which is generated based on the first encoding representation to indicate the distribution characteristics of the first encoding representation.
[0189] In some implementations, the encoded representation includes multiple partial encoded representations corresponding to multiple locations in the target image, and generating the target bitstream includes: for a given location among the multiple locations, determining a first entropy encoding parameter based on a second encoded representation to indicate the mean, the first entropy encoding parameter being independent of context parameters used to indicate the encoded representation of a set of associated locations among the multiple locations associated with the given location; and generating a partial bitstream of the target bitstream corresponding to the given location based at least on the first entropy encoding parameter.
[0190] In some implementations, generating a portion of the target bitstream corresponding to a given position based at least on the first entropy coding parameters includes: determining the second entropy coding parameters used to indicate variance based on the second coding representation and context parameters; and generating the portion of the target bitstream corresponding to the given position based on the first entropy coding parameters and the second entropy coding parameters.
[0191] In some implementations, the target bitstream is encoded with at least one of the following: first auxiliary information indicating quantization parameters used to quantize the coded representation, or second auxiliary information indicating post-processing parameters for post-processing the decoded image generated from the target bitstream.
[0192] In some implementations, adjusting a set of parameter representations based on a set of adjustment amounts includes iteratively adjusting the encoded representation until the convergence condition associated with the objective function is met.
[0193] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.
[0194] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0195] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0196] Furthermore, although the operations are described in a specific order, this should be understood as requiring that such operations be performed in the specific order shown or in sequential order, or requiring that all illustrated operations be performed to achieve the desired result. In certain environments, multitasking and parallel processing may be advantageous. Similarly, although several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of a single implementation may also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation may also be implemented individually or in any suitable sub-combination in multiple implementations.
[0197] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative examples of implementing the claims.
Claims
1. An image encoding method, comprising: An encoded representation of a target image is obtained, the encoded representation including the values of a set of parameters corresponding to the target image, wherein the encoded representation is obtained by processing the target image through a trained machine learning-based encoder; Based on the encoded representation, an objective function is determined for a decoder used to decode a bitstream corresponding to the encoded representation, wherein the objective function is determined based on at least one of the following: the expected size of the bitstream generated based on the encoded representation, or the difference between the decoded image generated based on the bitstream and the target image; Based on a comparison between the degree of change of the objective function with respect to a set of parameters and a threshold level, a set of adjustment amounts for the set of parameters is determined. The set of parameters is adjusted based on the set of adjustment amounts to obtain an adjusted encoded representation; and Based on the adjusted encoded representation, the target bitstream of the target image is obtained; The adjustment amount for determining the parameter includes: In response to determining that the objective function changes less than or equal to the threshold degree with respect to the first parameter in the set of parameters, the adjustment amount of the first parameter is determined to be zero.
2. The method of claim 1, wherein determining the adjustment amount of the parameter further comprises: In response to determining that the objective function changes by a second degree as a second parameter in the set of parameters by a degree greater than the threshold, an adjustment amount for the second parameter is determined based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
3. The method of claim 2, wherein determining the adjustment amount based on the second degree of change comprises: Determine the maximum degree of change within the set of degrees of change; as well as The adjustment amount is determined based on the ratio of the second degree of change to the maximum degree of change, such that the adjustment amount is proportional to the ratio.
4. The method according to any one of claims 1-3, wherein the threshold degree is determined based on the product of the maximum degree of change among the set of degree of change and a predetermined coefficient.
5. The method of claim 1, wherein the encoded representation includes a first encoded representation, the first encoded representation being generated by processing the target image using an encoder.
6. The method of claim 5, wherein the encoded representation further comprises a second encoded representation, the second encoded representation being generated based on the first encoded representation to indicate the distribution characteristics of the first encoded representation.
7. The method of claim 6, wherein the encoded representation includes multiple partial encoded representations corresponding to multiple locations in the target image, and generating the target bitstream includes: For a given position among the plurality of positions, Based on the second encoding representation, a first entropy encoding parameter is determined to indicate the mean. The first entropy encoding parameter is independent of the context parameter, which is used to indicate the encoding representation of a set of associated positions among the plurality of positions that are associated with a given position. as well as Based at least on the first entropy encoding parameters, a portion of the target bitstream corresponding to the given position is generated.
8. The method of claim 7, wherein generating the portion of the bitstream corresponding to the given position in the target bitstream based at least on the first entropy coding parameters comprises: Based on the second encoded representation and the context parameters, a second entropy encoding parameter for indicating variance is determined; as well as Based on the first entropy encoding parameters and the second entropy encoding parameters, the portion of the target bitstream corresponding to the given position is generated.
9. The method of claim 1, wherein the target bitstream is encoded with at least one of the following: First auxiliary information, indicating quantization parameters used to quantize the encoded representation, or The second auxiliary information indicates the post-processing parameters for post-processing the decoded image generated from the target bitstream.
10. The method of claim 1, wherein adjusting the set of parameters based on the set of adjustment amounts comprises: The encoded representation is iteratively adjusted until the convergence condition associated with the objective function is met.
11. An image decoding method, comprising: Receive the target bitstream corresponding to the target image; as well as Decode the image from the target bitstream. The target bitstream is generated based on the following process: Obtain an encoded representation of the target image, the encoded representation including the values of a set of parameters corresponding to the target image, wherein the encoded representation is obtained by processing the target image through a trained machine learning-based encoder; Based on the encoded representation, an objective function is determined for a decoder used to decode a bitstream corresponding to the encoded representation, wherein the objective function is determined based on at least one of the following: the expected size of the bitstream generated based on the encoded representation, or the difference between the decoded image generated based on the bitstream and the target image; Based on a comparison between the degree of change of the objective function with respect to a set of parameters and a threshold level, a set of adjustment amounts for the set of parameters is determined. The set of parameters is adjusted based on the set of adjustment amounts to obtain an adjusted encoded representation; and Based on the adjusted encoded representation, the target bitstream of the target image is obtained; The adjustment amount for determining the parameter includes: In response to determining that the objective function changes less than or equal to the threshold degree with respect to the first parameter in the set of parameters, the adjustment amount of the first parameter is determined to be zero.
12. An apparatus comprising: Processing unit; as well as A memory, coupled to the processing unit and containing instructions stored thereon, which, when executed by the processing unit, cause the device to perform the following actions: An encoded representation of a target image is obtained, the encoded representation including the values of a set of parameters corresponding to the target image, wherein the encoded representation is obtained by processing the target image through a trained machine learning-based encoder; Based on the encoded representation, an objective function is determined for a decoder used to decode a bitstream corresponding to the encoded representation, wherein the objective function is determined based on at least one of the following: the expected size of the bitstream generated based on the encoded representation, or the difference between the decoded image generated based on the bitstream and the target image; Based on a comparison between the degree of change of the objective function with respect to a set of parameters and a threshold level, a set of adjustment amounts for the set of parameters is determined. The set of parameters is adjusted based on the set of adjustment amounts to obtain an adjusted encoded representation; and Based on the adjusted encoded representation, the target bitstream of the target image is obtained; The adjustment amount for determining the parameter includes: In response to determining that the objective function changes less than or equal to the threshold degree with respect to the first parameter in the set of parameters, the adjustment amount of the first parameter is determined to be zero.
13. The device of claim 12, wherein determining the adjustment amount of the parameter further includes: In response to determining that the objective function changes by a second degree as a second parameter in the set of parameters by a degree greater than the threshold, an adjustment amount for the second parameter is determined based on the second degree of change, such that the adjustment amount is proportional to the second degree of change.
14. The device of claim 13, wherein determining the adjustment amount based on the second degree of change comprises: Determine the maximum degree of change within the set of degrees of change; as well as The adjustment amount is determined based on the ratio of the second degree of change to the maximum degree of change, such that the adjustment amount is proportional to the ratio.
15. The device according to any one of claims 12-14, wherein the threshold degree is determined based on the product of the maximum degree of change among the set of degree of change and a predetermined coefficient.
16. The apparatus of claim 12, wherein the encoded representation includes a first encoded representation generated by processing the target image using an encoder.
17. The device of claim 16, wherein the encoding representation further comprises a second encoding representation generated based on the first encoding representation to indicate the distribution characteristics of the first encoding representation.
18. The apparatus of claim 17, wherein the encoded representation comprises a plurality of partial encoded representations corresponding to a plurality of locations in the target image, and generating the target bitstream comprises: For a given position among the plurality of positions, Based on the second encoding representation, a first entropy encoding parameter is determined to indicate the mean. The first entropy encoding parameter is independent of the context parameter, which is used to indicate the encoding representation of a set of associated positions among the plurality of positions that are associated with a given position. as well as Based at least on the first entropy encoding parameters, a portion of the target bitstream corresponding to the given position is generated.
19. The apparatus of claim 18, wherein generating the portion of the target bitstream corresponding to the given position based at least on the first entropy coding parameters comprises: Based on the second encoded representation and the context parameters, a second entropy encoding parameter for indicating variance is determined; as well as Based on the first entropy encoding parameters and the second entropy encoding parameters, the portion of the target bitstream corresponding to the given position is generated.
20. The apparatus of claim 12, wherein the target bitstream is encoded with at least one of the following: First auxiliary information, indicating quantization parameters used to quantize the encoded representation, or The second auxiliary information indicates the post-processing parameters for post-processing the decoded image generated from the target bitstream.
21. The device of claim 12, wherein adjusting the set of parameters based on the set of adjustment amounts comprises: The encoded representation is iteratively adjusted until the convergence condition associated with the objective function is met.
22. An apparatus comprising: Processing unit; as well as A memory, coupled to the processing unit and containing instructions stored thereon, which, when executed by the processing unit, cause the device to perform the following actions: Receive the target bitstream corresponding to the target image; and Decode the image from the target bitstream. The target bitstream is generated based on the following process: Obtain an encoded representation of the target image, the encoded representation including the values of a set of parameters corresponding to the target image, wherein the encoded representation is obtained by processing the target image through a trained machine learning-based encoder; Based on the encoded representation, an objective function is determined for a decoder used to decode a bitstream corresponding to the encoded representation, wherein the objective function is determined based on at least one of the following: the expected size of the bitstream generated based on the encoded representation, or the difference between the decoded image generated based on the bitstream and the target image; Based on a comparison between the degree of change of the objective function with respect to a set of parameters and a threshold level, a set of adjustment amounts for the set of parameters is determined. The set of parameters is adjusted based on the set of adjustment amounts to obtain an adjusted encoded representation; and Based on the adjusted encoded representation, the target bitstream of the target image is obtained; The adjustment amount for determining the parameter includes: In response to determining that the objective function changes less than or equal to the threshold degree with respect to the first parameter in the set of parameters, the adjustment amount of the first parameter is determined to be zero.
23. A computer program product tangibly stored in a non-transient computer storage medium and comprising machine-executable instructions that, when executed by a device, cause the device to perform the method according to any one of claims 1-11.
Citation Information
Patent Citations
Motion estimation method and device
CN108419082A
Method and device for image coding / decoding
CN111247797A
Data processing method, computer system and storage medium
CN111353592A
Video image coding and decoding method and device, electronic equipment and storage medium
CN112866697A