Method, device and medium for visual data processing

JP2025507068APending Publication Date: 2025-03-13DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024553169
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-09
Filing Date
2023-03-09
Publication Date
2025-03-13

Smart Images

  • Figure 2025507068000001_ABST
    Figure 2025507068000001_ABST
Patent Text Reader

Abstract

An embodiment of the present disclosure provides a solution for visual data processing. A method for visual data processing is proposed, which includes performing a quantization process on a dataset including at least one of input visual data of a neural network model used for conversion or parameters of the neural network model for conversion between visual data and a bitstream of visual data, and performing a conversion based on the quantization process.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] FIELD OF THE DISCLOSURE Embodiments of the present disclosure relate generally to visual data processing techniques, and more particularly to quantization, scaling, and neural network models for visual data processing. [Background technology]

[0002] Image / video compression is an essential technology for reducing the cost of image / video transmission and storage, either losslessly or lossily. Image / video compression technologies can be divided into two categories: traditional video coding methods and neural network-based video compression methods. Traditional video coding methods employ transform-based solutions, and researchers exploit the statistical dependencies of latent variables (e.g., wavelet coefficients) by carefully hand-designing entropy codes that model the dependencies in the quantization regime. There are two types of neural network-based video compression: neural network-based coding tools and end-to-end neural network-based video compression. The former is incorporated into existing traditional video codecs as a coding tool and simply functions as a part of the framework, while the latter is an independent framework developed based on neural networks without relying on traditional video codecs. In general, it is expected that the coding efficiency of image / video coding will be further improved. Summary of the Invention

[0003] SUMMARY OF THE DISCLOSURE Embodiments of the present disclosure provide a solution for visual data processing.

[0004] In a first aspect, a method for visual data processing is proposed, for conversion between visual data and a bitstream of visual data, comprising: performing a quantization operation on a dataset including at least one of input visual data of a neural network model used for the conversion or parameters of the neural network model, and performing a conversion based on the quantization operation.

[0005] The method according to the first aspect of the present disclosure converts data such as floating-point visual data into fixed-point data. In this way, the neural network model can perform fixed-point calculations, providing consistent accuracy across different devices. Therefore, the coding efficiency and coding effect can be improved.

[0006] In a second aspect, another method for visual data processing is proposed, for conversion between visual data and a bitstream of visual data, the method comprising: performing a scaling operation on a dataset including at least one of input visual data of a neural network model used for conversion, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model, and performing a conversion based on the scaling operation.

[0007] By implementing the scaling process according to the second aspect of the present disclosure, the overflow problem occurring during the multiplication and accumulation of convolution can be avoided, and thus the quantization loss can be reduced, and the coding efficiency and coding effect can be improved.

[0008] In a third aspect, another method for visual data processing is proposed, which includes using a neural network model to perform conversion between visual data and a bit stream of visual data, and the neural network model is characterized by at least one of the following: the number of channels of a layer of the neural network model is less than a threshold number of channels, the neural network model uses rectified linear units (ReLUs), the number of layers of the neural network model is less than a threshold number of layers, the neural network model uses group convolution or group transpose convolution, or the kernel size of the neural network model is less than a threshold kernel size.

[0009] According to the method according to the third aspect of the present disclosure, an interoperability-friendly model can be used in visual data coding, thus improving device interoperability, and thus improving coding efficiency and coding effect.

[0010] In a fourth aspect, an apparatus for visual data processing is proposed, the apparatus comprising a processor and a non-transitory memory having instructions thereon, the instructions storing instructions that, when executed by the processor, cause the processor to perform a method according to the first, second or third aspect of the present disclosure.

[0011] In a fifth aspect, a non-transitory computer readable storage medium is proposed, the non-transitory computer readable storage medium storing instructions for causing a processor to perform the method according to the first, second or third aspect of the present disclosure.

[0012] In a sixth aspect, another non-transitory computer-readable recording medium is proposed, which stores a bitstream of visual data generated by a method performed by an apparatus for visual data processing, the method comprising: performing a quantization process on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, or parameters of the neural network model, and generating the bitstream based on the quantization process.

[0013] In a seventh aspect, a method for storing a bitstream of visual data is proposed, the method comprising: performing a quantization process on a dataset comprising at least one of input visual data of a neural network model used to generate the bitstream, or parameters of the neural network model, generating the bitstream based on the quantization process, and storing the bitstream on a non-transitory computer-readable recording medium.

[0014] In an eighth aspect, another non-transitory computer-readable recording medium is proposed, which stores a bitstream of visual data generated by a method performed by an apparatus for visual data processing, the method comprising: performing a scaling operation on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model, and generating the bitstream based on the scaling operation.

[0015] In a ninth aspect, a method for storing a bitstream of visual data is proposed, the method comprising: performing a scaling operation on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model, generating the bitstream based on the scaling operation, and storing the bitstream on a non-transitory computer-readable recording medium.

[0016] In a tenth aspect, another non-transitory computer-readable recording medium is proposed, which stores a bitstream of visual data generated by a method executed by an apparatus for visual data processing, the method including generating the bitstream using a neural network model, the neural network model being characterized by at least one of: a number of channels of a layer of the neural network model is less than a threshold number of channels, the neural network model uses rectified linear units (ReLUs), the number of layers of the neural network model is less than a threshold number of layers, the neural network model uses group convolution or group transpose convolution, or the kernel size of the neural network model is less than a threshold kernel size.

[0017] In an eleventh aspect, a method for storing a bitstream of visual data is proposed, the method comprising: generating the bitstream using a neural network model; and storing the bitstream in a non-transitory computer-readable recording medium, the neural network model being characterized by at least one of the following: a number of channels of a layer of the neural network model is less than a threshold number of channels; the neural network model uses rectified linear units (ReLU); the number of layers of the neural network model is less than a threshold number of layers; the neural network model uses group convolution or group transpose convolution; or the kernel size of the neural network model is less than a threshold kernel size.

[0018] This Summary is provided to introduce in a simplified form some concepts that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. [Brief description of the drawings]

[0019] The above and other objects, features, and advantages of exemplary embodiments of the present disclosure will become more apparent through the following detailed description taken in conjunction with the accompanying drawings, in which like reference numerals generally refer to like components.

[0020] [Figure 1] 1 shows a block diagram illustrating an example visual data encoding system according to some embodiments of the present disclosure.

[0021] [Diagram 2] A typical transform coding method is shown below.

[0022] [Diagram 3] 1 shows an image from the Kodak dataset and different representations of that image.

[0023] [Figure 4] We present an autoencoder network architecture that implements a hyperprior model.

[0024] [Diagram 5] A block diagram of a composite model is shown.

[0025] [Figure 6] 1 shows the encoding process of a composite model.

[0026] [Figure 7] 4 shows a decoding process for a composite model.

[0027] [Figure 8A] 8A and 8B show examples of undecodable results on different devices.

[0028] [Figure 8B] 8A and 8B show examples of undecodable results on different devices.

[0029] [Figure 9] 1 illustrates an example of a device interoperability friendly design in a hyper-prior distributed network according to an embodiment of the present disclosure.

[0030] [Figure 10] 1 illustrates another example of a device interoperability friendly design in a super prior distribution network according to an embodiment of the present disclosure.

[0031] [Figure 11] 1 shows a flowchart of a method for visual data processing according to an embodiment of the present disclosure.

[0032] [Figure 12] 1 illustrates a flowchart of another method for visual data processing according to an embodiment of the present disclosure.

[0033] [Figure 13] 1 illustrates a flowchart of another method for visual data processing according to an embodiment of the present disclosure.

[0034] [Figure 14] FIG. 1 illustrates a block diagram of a computing device in which various embodiments of the present disclosure may be implemented.

[0035] Throughout the drawings, the same or similar reference numbers typically refer to the same or similar elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0036] Next, the principles of the present disclosure will be described with reference to some embodiments. It should be understood that these embodiments are described for illustrative purposes only, to help those skilled in the art understand and practice the present disclosure, and do not imply any limitation on the scope of the present disclosure. The disclosure described herein can be implemented in various forms other than those described below.

[0037] In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs.

[0038] References in this disclosure to "one embodiment," "an embodiment," "an exemplary embodiment," and the like indicate that the described embodiment may include a particular feature, structure, or characteristic, but not all embodiments need to include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an exemplary embodiment, it is submitted that it is within the knowledge of one of ordinary skill in the art to affect such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly described.

[0039] In this specification, terms such as "first" and "second" may be used to describe various elements, but it should be understood that these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, a first element can be referred to as a second element, and similarly, a second element can be referred to as a first element, without departing from the scope of the exemplary embodiments. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.

[0040] The terms used herein are for the purpose of describing particular embodiments only and are not intended to limit the exemplary embodiments. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context clearly indicates otherwise. It is further understood that as used herein, the terms "comprises," "comprising," "has," "having," "includes," and / or "including" specify the presence of stated features, elements, and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.

[0041] Example Environment 1 is a block diagram illustrating an example visual data encoding system 100 that may utilize the techniques of this disclosure. As shown, the visual data encoding system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a data encoding device or a visual data encoding device, and the destination device 120 may also be referred to as a data decoding device or a visual data decoding device. In operation, the source device 110 may be configured to generate encoded visual data, and the destination device 120 may be configured to decode the encoded visual data generated by the source device 110. The source device 110 may include a data source 112, a data encoder 114, and an input / output (I / O) interface 116.

[0042] Data sources 112 may include sources such as data capture devices, examples of which include, but are not limited to, an interface for receiving data from a data provider, a computer graphics system for generating data, and / or combinations thereof.

[0043] The data may include one or more pictures, or one or more images, of a video. The data encoder 114 encodes data from the data source 112 to generate a bitstream. The bitstream may include a bit sequence that forms an encoded representation of the data. The bitstream may include an encoded picture and associated data. An encoded picture is an encoded representation of a picture. The associated data may include a sequence parameter set, a picture parameter set, and other syntax structures. The I / O interface 116 may include a modulator / demodulator and / or a transmitter. The encoded data may be transmitted directly to the destination device 120 via the I / O interface 116 through the network 130A. The encoded data may also be stored in a storage medium / server 130B for access by the destination device 120.

[0044] The destination device 120 may include an I / O interface 126, a data decoder 124, and a display device 122. The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain the encoded data from the source device 110 or the storage medium / server 130B. The data decoder 124 may decode the encoded data. The display device 122 may display the decoded data to a user. The display device 122 may be integrated with the destination device 120 or may be external to the destination device 120 configured to interface with an external display device.

[0045] The data encoder 114 and the data decoder 124 may operate according to a data encoding standard, such as a video encoding standard or a still image encoding standard, and other current and / or additional standards.

[0046] Some exemplary embodiments of the present disclosure are described in detail below. It should be understood that section headings are used in this specification for ease of understanding and are not intended to limit the embodiments disclosed in a section to that section alone. Furthermore, although some embodiments are described with reference to Versatile Video Coding or other specific data codecs, the disclosed techniques are also applicable to other encoding techniques. Furthermore, although some embodiments describe an encoding step in detail, it should be understood that the corresponding step of decoding that undoes the encoding is performed by a decoder. Furthermore, the term data processing encompasses data encoding or compression, data decoding or decompression, and data transcoding, where data is represented from one compressed format to another compressed format or at a different compressed bit rate.

[0047] 1. Overview The present disclosure relates to end-to-end image compression techniques. In particular, it relates to some techniques for achieving device interoperability. It can be used in the entropy coding part to ensure that the reconstruction from the entropy coding is consistent on different devices. It can also be used to achieve device interoperability in learning-based video compression. It may also be applied to neural network methods combined with traditional video coding standards to ensure the consistency of results between GPUs / CPUs.

[0048] 2. Abbreviations ANN Artificial Neural Network CPU Central Processing Unit E2E End-to-End GPU Graphics Processing Unit JPEG Joint Photographic Experts Group MPEG Moving Picture Experts Group VCEG Video Coding Experts Group VTM VVC test model VVC Versatile Video Coding

[0049] 3. Introduction Image / video compression is an essential technology for reducing the cost of image / video transmission and storage, either losslessly or lossily. Image / video compression technologies can be divided into two categories: traditional video coding methods and neural network-based video compression methods. Traditional video coding methods employ transform-based solutions, and researchers exploit the statistical dependencies of latent variables (e.g., DCT and wavelet coefficients) by carefully hand-designing entropy codes that model the dependencies in the quantization regime. There are two types of neural network-based video compression: neural network-based coding tools and end-to-end neural network-based video compression. The former is incorporated into existing traditional video codecs as a coding tool and simply functions as a part of the framework, while the latter is an independent framework developed based on neural networks without relying on traditional video codecs.

[0050] 3.1. Traditional Image / Video Compression Traditional image compression standards such as JPEG, BPG, and VVC employ a hybrid framework to compress input images. These standards utilize a combination of prediction, transformation, quantization, and entropy coding to reduce redundancy within an image. Through decades of development, traditional codecs have improved compression efficiency by nearly 50% every decade, even though some modules are hand-engineered. To accommodate the increasing visual content, a series of traditional image coding standards have been developed. The international standardization organization ISO / IEC has two expert groups, JPEG (Joint Photographic Experts Group) and MPEG (Moving Picture Experts Group), and ITU-T also has VCEG (Video Coding Experts Group) that aims to standardize image coding technology. The influential image coding standards issued by these organizations include JPEG, JPEG2000, H.264 / AVC, and H.265 / HEVC. After H.265 / HEVC, the Joint Video Experts Team (JVET), formed by MPEG and VCEG, has been working on a new video coding standard, Versatile Video Coding (VVC). The first version of VVC was released in July 2020. VVC has been reported to achieve an average 50% bitrate reduction at the same visual quality compared to HEVC.

[0051] 3.2. Neural network-based compression method Benefiting from the great progress achieved by artificial neural networks (ANNs) in the last five years, learning-based solutions for media coding have given rise to a new branch of image compression. In this branch, ANNs are utilized as modules to replace some functions in traditional codecs or to completely replace traditional codecs end-to-end. One of the advantages of such deep networks is considered to be that they allow processing data at multiple levels of abstraction and transforming data into different kinds of representations. It should be noted that these representations are not designed manually, but on the contrary, deep networks including processing layers are learned from vast amounts of data using common machine learning procedures. Deep learning seems to be particularly useful for processing native unstructured data such as acoustic and visual signals, since it eliminates the need for manual representations, but processing such data has been a long-standing challenge in the field of artificial intelligence. After several years of development, ANN-based tools have shown a certain performance improvement over traditional codecs. Even with regard to end-to-end ANN-based image compression, it has achieved better performance than the state-of-the-art traditional codec, VTM. However, it is still immature and there is a lot of room to improve compression performance.

[0052] 3.3. Learning-based image compression Existing neural networks for image compression methods can be divided into two categories: pixel probability modeling and autoencoders. The former belong to predictive coding strategies, while the latter are transform-based solutions. Sometimes, these two methods are combined in the literature.

[0053] 3.3.1. Pixel Probability Modeling According to Shannon's information theory, the optimal method for lossless coding can reach the minimum code rate -log2p(x), where p(x) is the probability of symbol x. Many lossless coding methods have been developed in the literature, among which arithmetic coding is considered to be one of the optimal methods. Given a probability distribution p(x), arithmetic coding ensures that the code rate is as close as possible to the theoretical limit of -log2p(x) without considering the rounding error. Therefore, the remaining problem is how to determine the probability, which is very difficult for natural images / videos due to the curse of dimensionality. According to the predictive coding strategy, one way to model p(x) is to predict pixel probabilities one by one in raster scan order based on previous observations, where x is the image. p(x)=p(x1)p(x2|x1)…p(x i |x1,…,x i-1 )…p(x m×n |x1,…,x m×n-1 ) (1) where m and n are the height and width of the image, respectively. The previous observations are also known as the context of the current pixel. When the image is large, it is difficult to estimate the conditional probability, so a convenient way is to bound the scope of the context. p(x)=p(x1)p(x2|x1)…p(x i |x i-k ,…,x i-1 )…p(x m×n |x m×n-k ,…,x m×n-1 ) (2) where k is a predefined constant that controls the scope of the context. It should be noted that this condition may also take into account the sample values ​​of other color components. For example, when encoding RGB color components, the R sample depends on the previously encoded pixel (including R / G / B samples), the current G sample is encoded according to the previously encoded pixel and the current R sample, and when encoding the current B sample, the previously encoded pixel and the current R and G samples may also be taken into account.

[0054] Neural networks were originally introduced for computer vision tasks and have proven to be effective in regression and classification problems. Therefore, we use a neural network to train a set of vectors of images from a set of contexts x1, x2, …, x i-1 Given p(x i ) is proposed. In the neural autoregressive distribution estimator, we take a binary image, i.e., x i A pixel probability is proposed for ∈{-1,+1}. The Neural Autoregressive Distribution Estimator (NADE) is designed for pixel probability modeling and is a feedforward network with a single hidden layer. A similar work has been proposed in which the feedforward network also has connections that skip the hidden layer and parameters are shared. Experiments are performed on the binarized MNIST dataset. NADE is extended to a real-valued model RNADE, which estimates the probability p(x i |x1,…,x i-1 ) is derived from a mixture of Gaussians. Their feedforward network also has a single hidden layer, but the hidden layer is resized to avoid saturation and uses rectified linear units (ReLU) instead of sigmoids. NADE and RNADE improve on this by rearranging the pixel order and using deeper neural networks.

[0055] Designing advanced neural networks plays a key role in improving pixel probability modeling. A multidimensional long short-term memory (LSTM) is proposed, where LSTM is coupled with conditional Gaussian scale mixtures for probability modeling. LSTM is a special type of recurrent neural network (RNN) that has proven to be suitable for modeling sequential data. A spatial variant of LSTM is later used for images. Several different neural networks have been studied, including RNNs and CNNs, namely PixelRNN and PixelCNN, respectively. In PixelRNN, two variants of LSTM, called row LSTM and diagonal BiLSTM, are proposed, the latter of which is specifically designed for images. PixelRNN incorporates residual connections that help in training deep neural networks with up to 12 layers. In PixelCNN, masked convolutions are used to fit the shape of the context. Compared with previous works, PixelRNN and PixelCNN are more specialized for natural images: they consider pixels as discrete values ​​(e.g., 0, 1, ..., 255) and predict multinomial distributions over the discrete values; they handle color images in RGB color space; and they work well on the large-scale image dataset ImageNet. To improve PixelCNN, GatedPixelCNN has been proposed, which achieves comparable performance to PixelRNN while significantly reducing the complexity. PixelCNN++ proposes the following improvements over PixelCNN: it uses discrete logistic mixture likelihood instead of 256-way multinomial distribution, uses downsampling to capture structures at multiple resolutions, introduces additional shortcut connections to speed up training, employs dropout for regularization, and combines RGB into one pixel. PixelSNAIL, which combines casual convolution and self-attention, has been proposed. Most of the above methods directly model the probability distribution in the pixel region. Other researchers try to model the probability distribution as a conditional model based on explicit or latent representations, that is, it may be estimated by the following equation:

[0056]

number

[0057] Autoencoder Autoencoders originate from the well-known work of using neural networks to reduce the dimensionality of data. The method is trained for dimensionality reduction and consists of two parts: encoding and decoding. The encoding part converts a high-dimensional input signal into a lower-dimensional representation, typically with a smaller spatial size but a larger number of channels. The decoding part tries to recover the high-dimensional input from the lower-dimensional representation. Autoencoders allow automatic learning of representations, eliminating the need for hand-crafted feature creation, which is also considered one of the most important advantages of neural networks.

[0058] FIG. 2 shows a typical transform coding scheme 200. An original image x is transformed into a latent representation y by a parsing network g. a The latent representation y is then quantized and compressed into bits. The number of bits R is used to measure the coding rate. The quantized latent representation

[0059] (outside 1) TIFF2025507068000003.tif12161 (hereinafter referred to as "y^") is a composite network g s The reconstructed image x^ is obtained by inverse transformation using the function g p It is calculated by converting x and x^ in

[0060] Applying autoencoder networks to lossy image compression is intuitive. It only requires encoding the latent representation learned from a well-trained neural network. However, adapting autoencoders to image compression is not straightforward, because the original autoencoder is not optimized for compression, so directly using a trained autoencoder is not efficient. In addition, there are other major challenges: First, the low-dimensional representation must be quantized before being encoded, but quantization is non-differentiable, which is necessary in backpropagation when training a neural network. Second, the objectives are different in compression scenarios, since both distortion and rate must be considered. Rate estimation is difficult. Third, a practical image coding scheme needs to support variable rates, scalability, encoding / decoding speed, and interoperability. In response to these challenges, many researchers are actively contributing to the field.

[0061] In Fig. 2, the prototype of an autoencoder for image compression can be viewed as a transform coding strategy. The original image x is fed to an analytic network y=g a (x), where y is the latent representation to be quantized and encoded. The synthesis network inverse transforms the quantized latent representation ŷ to obtain the reconstructed image x̂=g s The framework obtains the rate-distortion loss function, i.e.

[0062] (outside 2) It is trained on TIFF2025507068000004.tif12161, where D is the distortion between x and x^, R is the rate calculated or estimated from the quantized representation y^, and λ is the Lagrange multiplier. It should be noted that D can be calculated in either the pixel domain or the perceptual domain. All existing research results follow this prototype, differing only in the network structure and loss function.

[0063] In terms of network structure, RNN and CNN are the most widely used architectures. In the RNN-related category, a general framework for variable-rate image compression using RNNs has been proposed. Binary quantization is used to generate codes and does not consider the rate during training. This framework certainly provides scalable coding capabilities, and RNNs with convolutional and deconvolutional layers have been reported to perform adequately. To compress binary codes, an improved version is proposed that upgrades the encoder with a neural network similar to PixelRNN. Its performance is reported to be better than JPEG on the Kodak image dataset using the MS-SSIM evaluation metric. They further improve the RNN-based solution by introducing hidden state priming. In addition, a SSIM weighting loss function is also designed to enable a spatially adaptive bitrate mechanism. They use MS-SSIM as the evaluation metric and achieve better results than BPG on the Kodak image dataset. They support spatially adaptive bitrate by training a stop-code tolerant RNN.

[0064] A general framework for rate-distortion optimized image compression is proposed. They generate integer codes using multilevel quantization and consider the rate during training, i.e., the loss is the rate-distortion joint cost, which can be MSE or other. They add random uniform noise to stimulate the quantization during training, and use the differential entropy of the noise code as a proxy for the rate. They use Generalized Divided Normalization (GDN) as the network structure, which consists of linear mapping and nonlinear parametric normalization. The effectiveness of GDN in image coding is verified. An improved version is proposed that uses three convolutional layers as the forward transform, followed by a downsampling layer and a GDN layer, respectively. Correspondingly, they use three inverse GDN layers, followed by an upsampling layer and a convolutional layer, respectively, to stimulate the inverse transform. An arithmetic coding method is also invented to compress the integer codes. Its performance is reported to be better than JPEG and JPEG2000 in terms of MSE on the Kodak dataset. They further improve this method by inventing a scale hyper-prior for the autoencoder. Subnet h a Let the latent representation y be z=h a (y), and z is quantized and transmitted as side information. Thus, the inverse transformation is s This is achieved by this subnetwork s attempt to decode the quantized side information ẑ into the standard deviation of the quantized ŷ, which is further used during the arithmetic coding of ŷ. On the Kodak image set, their method performs slightly worse than BPG in terms of PSNR. They further exploit the structure of the residual space by introducing an autoregressive model to estimate both the standard deviation and the mean. They further remove the redundancy in the residuals using a Gaussian mixture model. The reported performance is comparable on the Kodak image set, using PSNR as the evaluation metric.

[0065] 3.3.3. Hyperprior models In the transform coding approach to image compression, the encoder subnetwork (Section 3.3.2) is a parametric analysis transform g a (x,φ g) to convert an image vector x into a latent representation y, which is then quantized to form ŷ. Because ŷ is a discrete value, it can be losslessly compressed using entropy coding techniques such as arithmetic coding and transmitted as a bit sequence.

[0066] Figure 3 shows an example diagram 300 illustrating an image from the Kodak dataset and different representations of that image. Left: an image from the Kodak dataset. Center left: a visualization of the latent representation y of that image. Center right: the standard deviation σ of that latent. Right: the latent y after introducing a hyper-prior (hyper-encoder and decoder) network.

[0067] As is evident from the center-left and center-right images in Figure 3, there is a large spatial dependence between the elements of ŷ. In particular, their scales (center-right image) appear to be spatially coupled. To capture the spatial dependence and further reduce the redundancy, an additional set of random variables ẑ is introduced. Figure 4 shows a network architecture 400 of an autoencoder that implements the hyper-prior model. In this case, the image compression network is depicted in Figure 4.

[0068] In Figure 4, the left hand of the model is the encoder g a and decoder g s (explained in Section 2.3.2). The right hand side is an additional hyperencoder h a and Hyper Decoder h s In this architecture, the encoder converts an input image x into a a to obtain a response y with a spatially varying standard deviation. This response y is expressed as h a , which sums up the standard deviation distribution in z. z is then quantized (ẑ), compressed, and transmitted as side information. The encoder uses the quantized vector ẑ to estimate the spatial distribution σ of the standard deviation, and uses it to compress and transmit the quantized image representation ŷ. The decoder first recovers ẑ from the compressed signal. Then h s Using this, we can obtain σ, which gives a correct probability estimate and successfully recovers y^. Then, we can use g sand obtain the reconstructed image.

[0069] When a hyperencoder and hyperdecoder are added to an image compression network, the spatial redundancy of the quantized latent y^ is reduced. The right-most image in Figure 3 corresponds to the quantized latent when a hyperencoder / decoder is used. Compared to the center-right image, the spatial redundancy has been significantly reduced due to the lower correlation of samples in the quantized latent.

[0070] FIG. 4 shows a network architecture 400 of an autoencoder that implements a hyper-prior model. The left side shows the image autoencoder network, and the right side corresponds to the hyper-prior subnetwork. a and g a Q stands for quantization, and AE and AD stand for arithmetic encoder and arithmetic decoder, respectively. The hyper-prior model is a hyper-encoder (h a ) and Hyper Decoder (h s The hyper-prior model generates a quantized hyper-latent (ẑ), which contains information about the probability distribution of samples of the quantized latent ŷ. ẑ is included in the bitstream and transmitted to the receiver (decoder) together with ŷ.

[0071] 3.3.4. Context Model While the hyperprior model improves modeling the probability distribution of the quantized latent ŷ, further improvements can be obtained by utilizing an autoregressive model that predicts the quantized latent from its causal context (the context model).

[0072] FIG. 5 shows a block diagram 500 of the combined model. The combined model jointly optimizes an autoregressive component that estimates the probability distribution of the latents from their causal context (context model) along with a hyperprior and an underlying autoencoder. The real-valued latent representation is quantized (Q) to create a quantized latent (ŷ) and a quantized hyper-latent (ẑ), which are compressed into a bitstream by an arithmetic encoder (AE) and decompressed by an arithmetic decoder (AD). The highlighted regions correspond to the components executed by the receiver (i.e., decoder) to recover the image from the compressed bitstream.

[0073] The term autoregressive means that the output of a process is later used as the input to that process. For example, a context model sub-network generates one latent sample, which is later used as the input to get the next sample.

[0074] A joint architecture is utilized in which both the hyper-prior model sub-networks (hyper-encoder and hyper-decoder) and the context model sub-network are utilized. The hyper-prior and the context model are combined to learn a probabilistic model for the quantized latent ŷ, which is then used for entropy coding. As shown in Figure 5, the outputs of the context sub-network and the hyper-decoder sub-network are combined by a sub-network called entropy parameter which generates the mean μ and scale (or variance) σ parameters for the Gaussian probability model. The Gaussian probability model is then used to encode the samples of the quantized latent into a bitstream with the help of an arithmetic encoder (AE) module. At the decoder, the Gaussian probability model is used to obtain the quantized latent ŷ from the bitstream by the arithmetic decoder (AD) module. Typically, but not limited to, the latent samples are modeled as a Gaussian distribution or a Gaussian mixture model. According to Figure 5, the context model and the hyper-prior are jointly used to estimate the probability distribution of the latent samples. Since a Gaussian distribution can be defined by a mean and a variance (also known as sigma or scale), the joint model is used to estimate the mean and variance (denoted as μ and σ).

[0075] 3.3.5. Coding process using autoregressive hyperprior joint model Figure 5 corresponds to the state-of-the-art compression method of joint autoregression and hierarchical prior distribution for learning-based image compression. In this section and the next section, we explain the encoding and decoding processes, respectively.

[0076] Figure 6 illustrates the encoding process 600 of the combined model. Figure 6 illustrates the encoding process. An input image is first processed by the encoder sub-network. The encoder converts the input image into a transformed representation called latent, denoted by y. y is input to a quantizer block, denoted by Q, to obtain a quantized latent (ŷ). ŷ is converted into a bitstream (bits1) using an arithmetic coding module (denoted by AE). The arithmetic coding block converts each sample of ŷ sequentially one by one into a bitstream (bits1).

[0077] The hyperencoder, context, hyperdecoder and entropy parameter sub-network modules are used to estimate the probability distribution of samples of the quantized latent y^. The latent y is input to the hyperencoder, which outputs a hyperlatent (denoted by z). The hyperlatent is quantized (z^) and a second bitstream (bits2) is generated using the arithmetic coding (AE) module. The factorized entropy module generates a probability distribution that is used to encode the quantized hyperlatent into a bitstream. The quantized hyperlatent contains information about the probability distribution of the quantized latent (y^).

[0078] The entropy parameter sub-network generates an estimate of the probability distribution used to encode the quantized latent y^. The information generated by the entropy parameters typically includes the mean μ and scale (or variance) σ parameters that are used jointly to obtain a Gaussian probability distribution. The Gaussian distribution of a random variable x is given by

[0079] (Outside 3) It is defined as follows: TIFF2025507068000005.tif18161, where the parameter μ is the mean or expectation (and median and mode) of the distribution, and the parameter σ is its standard deviation (or variance, scale). To define a Gaussian distribution, the mean and variance need to be determined. The entropy parameter module is used to estimate the mean and variance values.

[0080] The sub-network hyperdecoder generates part of the information used by the entropy parameter sub-network, and the other part of the information is generated by an autoregressive module called the context module. The context module generates information about the probability distribution of the samples of the quantized latent using samples already coded by the arithmetic coding (AE) module. The quantized latent y^ is usually a matrix consisting of a number of samples. The samples can be indicated using indices like y^[i,j,] or y^[i,j] depending on the dimension of the matrix y^. The samples y^[i,j] are usually coded one by one by the AE using a raster scan order, in which the rows of the matrix are processed from top to bottom and the samples within a row are processed from left to right. In such a case (when the AE codes the samples into the bitstream using a raster scan order), the context module generates information related to the sample y^[i,j] in the raster scan order using the previously coded samples. The information generated by the context module and the hyperdecoder is combined by the entropy parameter module to generate a probability distribution that is used to encode the quantized latent ŷ into a bitstream (bits1).

[0081] Finally, as a result of the encoding process, the first bitstream and the second bitstream are transmitted to the decoder. It should be noted that other names can also be used for the above modules.

[0082] In the above explanation, all the elements in Fig. 6 are collectively called encoders. Also, the analysis transformation that converts an input image into a latent representation is called an encoder (or autoencoder).

[0083] 3.3.6. Decoding using the joint autoregressive hyperprior model Figure 7 shows a combined model decoding process 700. Figure 7 separately illustrates the decoding process corresponding to the joint autoregressive and hierarchical priors for trained image compression.

[0084] In the decoding process, the decoder first receives the first bitstream (bits1) and the second bitstream (bits2) generated by the corresponding encoders. bits2 is first decoded by an arithmetic decoding (AD) module using the probability distribution generated by the factorized entropy sub-network. The factorized entropy module typically generates the probability distribution using a predefined template, e.g., a predefined mean and variance value in the case of a Gaussian distribution. The output of the arithmetic decoding process of bits2 is the quantized hyper-latent ẑ. The AD process goes back to the AE process applied in the encoder. The AE and AD processes are lossless, meaning that the quantized hyper-latent ẑ generated by the encoder can be reconstructed as is in the decoder.

[0085] After obtaining z^, it is processed by the hyperdecoder, whose output is sent to the entropy parameter module. The three sub-networks employed in the decoder, context, hyperdecoder, and entropy parameters, are identical to those in the encoder. Thus, the decoder obtains the exact same probability distribution, which is essential for losslessly reconstructing the quantized latent y^. As a result, the decoder obtains the same quantized latent y^ obtained in the encoder. After the probability distribution (e.g., mean and variance parameters) is obtained by the entropy parameter sub-network, the arithmetic decoding module decodes the samples of the quantized latent one by one from the bitstream bits1. From a practical point of view, the autoregressive model (context model) is inherently serial, and therefore cannot be accelerated using techniques such as parallelization.

[0086] Finally, the fully reconstructed quantized latent ŷ is input to a synthesis transform (denoted as decoder in Fig. 7) module to obtain a reconstructed image. In the above description, all elements shown in Fig. 7 are collectively called the decoder. Also, the synthesis transform that transforms the quantized latent into the reconstructed image is called the decoder (or autodecoder).

[0087] 3.4. Neural Network Based Video Compression As with traditional video coding techniques, neural image compression serves as the basis for intra-compression in neural network-based video compression, so the development of neural network-based video compression techniques is later than that of neural network-based image compression, but it requires much more effort to solve the challenges due to its complexity. Since 2017, a few researchers have been working on neural network-based video compression methods. Compared with image compression, video compression requires efficient methods to remove redundancy between pictures. And inter-picture prediction is a key step in these studies. Motion estimation and compensation have been widely adopted but have not been implemented by trained neural networks until recently.

[0088] Research on neural network-based video compression can be divided into two categories, depending on the scenarios they target: random access and low latency. For random access, the need exists to be able to start decoding at any point in the sequence, and typically involves splitting the entire sequence into multiple separate segments, each of which can be decoded independently. For low latency, the goal is to reduce the decoding time, and typically involves simply using a frame that is earlier in time as a reference frame to decode a later frame.

[0089] 3.4.1. Low Latency A video compression scheme using trained neural networks is proposed. First, a video sequence frame is divided into blocks, and each block can choose one of two available modes: intra-coding or inter-coding. If intra-coding is selected, the block is compressed with an associated autoencoder. If inter-coding is selected, motion estimation and compensation are performed in a traditional manner, and the trained neural network is used for residual compression. The output of the autoencoder is directly quantized and coded by the Huffman method. Another neural network-based video coding method is proposed using PixelMotionCNN. Frames are compressed in time order, and each frame is divided into blocks that are compressed in raster-scan order. Each frame is first extrapolated with the two previous reconstructed frames. When a block is compressed, the extrapolated frame is fed to PixelMotionCNN along with the context of the current block to derive a latent representation. The residual is then compressed by a variable-rate image method. This method has a performance comparable to H.264.

[0090] A real-sense end-to-end neural network-based video compression framework is proposed, in which all modules are implemented with neural networks. The scheme accepts the current frame and a pre-reconstructed frame as input, and derives the optical flow as motion information using a pre-trained neural network. The motion information is warped with the reference frame, and then the neural network generates a motion-compensated frame. The residual and motion information are compressed with two separate neural autoencoders. The whole framework is trained with a single rate-distortion loss function. It achieves better performance than H.264.

[0091] An advanced neural network-based video compression method is proposed, which inherits and extends the traditional video coding method using neural networks and has the following key features: 1) it uses only one autoencoder to compress the motion information and residuals, 2) it performs motion compensation with multiple frames and multiple optical flows, and 3) it learns the online state and propagates it to the next frame over time. The method achieves better performance than the HEVC reference software in MS-SSIM.

[0092] Based on the end-to-end deep video compression framework, an extended end-to-end neural network-based video compression framework is proposed. In this solution, multiple frames are used as references. This can provide a more accurate prediction of the current frame by using multiple reference frames and associated motion information. Furthermore, motion field prediction is employed to remove motion redundancy along the time channel. A post-processing network is also introduced in this work to remove reconstruction artifacts due to pre-processing. Its performance outperforms the end-to-end deep video compression framework and H.265 by a notable margin in both PSNR and MS-SSIM.

[0093] Based on an end-to-end deep video compression framework, a scale-space flow is proposed to replace the commonly used optical flow by adding a scale parameter, and it is reported to achieve better performance than H.264.

[0094] A multi-resolution representation of optical flow based on an end-to-end deep video compression framework is proposed. Specifically, a motion estimation network generates multiple optical flows with different resolutions, and the network learns to select one under a loss function. The performance is slightly improved compared to the end-to-end deep video compression framework and is superior to H.265.

[0095] Random Access A neural network-based video compression method with frame interpolation is proposed. Key frames are first compressed with a neural image compressor, and the remaining frames are compressed in a hierarchical order. The method performs motion compensation in the perceptual domain, i.e., derives feature maps at multiple spatial scales of the original frames, and uses motion to warp the feature maps, which are then used in the image compressor. The method is reported to be equivalent to H.264. An interpolation-based video compression method is proposed, in which the interpolation model combines motion information compression and image synthesis, using the same autoencoder for both the image and the residual.

[0096] A neural network-based video compression method based on a variational autoencoder with a deterministic encoder is proposed. Specifically, the neural network model consists of an autoencoder and an autoregressive prior. Unlike traditional methods, this method accepts a group of pictures (GOP) as input and incorporates a 3D autoregressive prior by considering temporal correlation when encoding the latent representation. It provides comparable performance to H.265.

[0097] 4. Problems As shown in Figure 6 and Figure 7, all the calculations are combined with neural networks and calculated in floating-point system, which may cause the following problems: 1. In floating-point systems, the precision of calculations changes dynamically depending on the value range of the variables. The same calculation will always produce slightly different results on different devices, which is a disaster for entropy coding, since even a small change will make the entropy coding undecodable. Figures 8A and 8B show examples of this undecodable result. Figures 8A and 8B show examples of non-decodable results on different devices: Figure 8A shows a reconstructed image encoded and decoded on the same GPU device, and Figure 8B shows a reconstructed image encoded on the GPU and decoded on the CPU. From Figures 8A and 8B, we can see that with slight differences between GPU and CPU, the reconstruction from entropy coding becomes increasingly different, making end-to-end image compression difficult in practice.

[0098] 2. Fixed-point calculations help to solve the accuracy problem, but the multiplication and accumulation operations inside the convolutional layers make it prone to overflow errors during calculations inside the neural network.

[0099] 3. Furthermore, the conversion between floating-point and fixed-point calculations introduces information loss in both the input and the neural network, leading to poor compression performance.

[0100] 4. Existing neural network structures for end-to-end image compression mainly focus on compression performance without considering device interoperability. Therefore, it is also necessary to design interoperability-friendly neural networks.

[0101] 5. Detailed solutions In order to solve the above problems and some other problems not mentioned, methods are disclosed as summarized below. These embodiments should be considered as examples to illustrate the general concept and should not be interpreted narrowly. Moreover, these embodiments can be applied individually or combined in any way.

[0102] The techniques described herein provide a solution to achieve device interoperability in end-to-end image compression. Neural network quantization is applied to convert floating-point systems to fixed-point. Meanwhile, scaling solutions can also be utilized to avoid overflow problems occurring during convolution multiplication and accumulation and reduce quantization loss. Furthermore, considering device interoperability, an interoperability-friendly neural network design is also provided. In summary, / / represents integer division, and the present disclosure includes the following items:

[0103] 1) To solve the first problem, quantization may be applied to realize the conversion between floating point and fixed point.

[0104] In one example, the input data and / or the convolution / transpose convolution layers and / or the activation functions are quantized to achieve the transformation.

[0105] For example, both the input and the convolution / transpose convolution layers of the network are quantized to achieve the transformation, and the activation functions can be kept in floating point.

[0106] b. In one example, when quantizing a convolution / transpose convolution layer, only the weights of the convolution / transpose convolution layer are quantized, and the biases of the convolution / transpose convolution layer remain floating point.

[0107] i. Alternatively, both the weights and biases of the convolutional layer are quantized.

[0108] c. In one example, a recurrent neural network is quantized to implement the transformation.

[0109] 2) To solve the second problem, one may limit the maximum or absolute value of the input data V and / or the maximum or absolute value of the network weights W, where B represents the maximum bits used in the fixed-point calculation, and one or more of the following approaches are disclosed:

[0110] In one example, the maximum value may be determined by the bits used for fixed-point calculations and the shape of the convolution / transpose convolution layers, where M, N, K H ,K W represent the number of input channels, the number of output channels, the kernel height, and the kernel width, respectively. One or more of the following methods may be used to determine V and W: i. In one example, V and W are determined by: V×W=2 B-1 / ((M×N×K H ×K W )) a) In one example, V and W are the same and can be calculated as follows:

[0111]

number

[0112] ii. Alternatively, V and W may be determined by: log2V+log2W=B-ceil(log2(M×N×K H ×K W ))-1 a) In one example, V and W are the same and can be calculated as follows:

[0113]

number

[0114] iii. In one example, V and W are the maximum absolute values ​​Max C Determined by: V×W=2 B-1 / Max c a) In one example, V and W are the same and can be calculated as follows: V=W=2 B-2 / Max c b) Alternatively, the ratio of V to W is proportional to the statistical mean of different input data.

[0115] b. In one example, one or more of the following methods may be used: i. In one example, V and W are determined by: V×W=2 B-1 a) In one example, V and W are the same and can be calculated as follows:

[0116] V=W=2 (B-1) / / 2 b) Alternatively, the ratio of V to W is proportional to the statistical mean of different input data.

[0117] ii. Alternatively, V and W may be determined by: log2V+log2W=B-1 a) In one example, V and W are the same and can be calculated as follows:

[0118] V=W=2 (B-1) / / 2 b) Alternatively, the ratio of V to W is proportional to the statistical mean of different input data.

[0119] c. In one example, all layers within a network use the same W. The minimum W of the network is used.

[0120] d. In one example, every layer has its own W.

[0121] e. In one example, the input data is clipped to within log2V bits.

[0122] i. For example, it may be clipped to be [0,V-1].

[0123] ii. For example, it may be clipped to be [-V / 2, V / 2-1].

[0124] f. In one example, the network weights are clipped to be within log2W bits.

[0125] i. For example, it may be clipped to be [0,W-1].

[0126] ii. For example, it may be clipped to be [-W / 2,W / 2-1].

[0127] 3) To solve the third problem, in E2E image / video coding, scaling may be applied to the input data and / or weighting values ​​and / or intermediate data and / or output data of the network.

[0128] a. Scaling may be applied before or after quantization.

[0129] b. In one example, the network weights must be scaled, the input data may be scaled, and the output / intermediate results may be rescaled.

[0130] i. In one example, scaling and / or quantization is performed at each layer inside the network, and rescaling is then used at the output of each layer to recover the data.

[0131] ii. In one example, scaling and / or quantization is performed on the entire neural network and only the inputs of the network are scaled. Rescaling is used on the outputs of the network.

[0132] iii. In one example, a convolution / transpose convolution layer may be combined with a following activation layer to perform scaling and rescaling. In this case, the input of the convolution / transpose convolution may be scaled, and the output of the activation layer is restored by rescaling.

[0133] c. In one example, the maximum absolute value of the weights is utilized to determine a scaling factor for the convolution / transpose convolution weights.

[0134] i. In one example, the maximum absolute value w of the convolution / transpose convolution layer is calculated and the scaling factor is given by: s w =2 W / / w ii. Alternatively, each output channel uses a different scaling factor, so that the convolution / transpose convolution kernels W for the same channel output i A group of may share the same scaling factor. And the maximum absolute value w i Next, we calculate the scaling factor s wi can be formulated as follows:

[0135]

number

[0136] d. In one example, the biases of the convolution / transpose convolution layers are not quantized and the biases may be added at the output after the rescaling operation.

[0137] e. In one example, the biases are also quantized with the same scaling factor as the convolution / transpose convolution weights.

[0138] f. In one example, a small data set may be used to observe changes in values ​​within the network to obtain scaling factors for the input data.

[0139] i. In one example, after the observation process, the maximum absolute value v of the real data is obtained and a scaling factor s of the data is calculated. d can be formulated as follows: s d =V / v ii. Using different datasets, obtain different scaling factors for different images in one example.

[0140] a) In one example, a flag may need to be transmitted in the bitstream to clarify which set of scaling factors to use.

[0141] b) In one example, the scaling factors can be selected by latent information or an additional network.

[0142] iii. In one example, the observation step may be performed on a large data set to obtain accurate results.

[0143] g. In one example, during the encoding stage, the maximum value v of the actual data is used directly to calculate the scaling factor, in which case the scaling factor is image independent.

[0144] i. In one example, this scaling factor information is stored in the bitstream so that the scaling factor can be derived during the decoding process.

[0145] ii. In one example, to obtain the scaling factor in the decoding process, the scaling factor can be obtained using latent information.

[0146] h. Alternatively, the weights C of the convolution / transpose convolution layers can be scaled by a scaling factor and quantized.

[0147] C i ^=round(C i ×s wi ) Here, C iC denotes the group of convolution kernel weights used to obtain the result of the i-th channel. i ^ denotes the corresponding quantized weight.

[0148] i. In one example, the input data D is scaled and quantized by a scaling factor: D^=round(D×s d ) Here, D represents the quantized input data.

[0149] j. In one example, the scaled data is processed by a clipping operation:

[0150]

number

[0151] k. Alternatively, the scaled data may be processed by a clipping operation:

[0152]

number

[0153] l. In one example, the output of the quantized layer may be rescaled for inverse quantization.

[0154] i. In one example, the rescaling operation of a convolution / transpose convolution layer can be formulated as follows: O^=O / (s w ×s d ) Here, O represents the output of the layer and O^ represents the rescaled output.

[0155] ii. In one example, the rescaling of the activation layer can be formulated as follows: O^=O / s d

[0156] 4) To solve the fourth problem, an interoperability friendly neural network design is also provided.

[0157] In one example, a group convolution / transposed convolution may be utilized to replace a current convolution / transposed convolution.

[0158] b. In one example, reducing the number of layers to reduce the propagation of quantization losses.

[0159] c. In one example, reduce the number of kernel sizes.

[0160] d. In one example, reducing the number of channels in a layer.

[0161] e. In one example, ReLU may be used to replace LeakyReLU.

[0162] f. In one example, the number of layers should be reduced.

[0163] g. In one example, similar compression performance may be achieved by splitting a larger kernel into multiple kernels.

[0164] 5) These device interoperability designs can be used to learn about image and video compression.

[0165] In one example, these device interoperability designs can be used for entropy coding to ensure that the bitstream is decodable on any device.

[0166] b. In one example, these device interoperability designs can be utilized in the analysis and synthesis portion to ensure that the reconfiguration is exactly the same on different devices.

[0167] 6) These device interoperability designs can be used in research combining traditional image and video compression technologies with neural network technologies.

[0168] In one example, these device interoperability designs can be used as neural network-based conversion modules used in traditional codecs, ensuring that the conversion results are the same on different devices and avoiding error propagation.

[0169] b. In one example, these device interoperability designs can be used as neural network-based prediction modules used in traditional codecs to ensure that the prediction results are the same on different devices and avoid error propagation.

[0170] c. In one example, this device interoperability design can be utilized for in-loop filters to ensure that results are the same on different devices and avoid error propagation.

[0171] 7) All information disclosed herein may be signaled from the encoder to the decoder, such as information regarding quantization or scaling in a learning-based codec system.

[0172] Alternatively, the information may be adaptively derived by the decoder.

[0173] b. In one example, the information may be signaled / derived at a sequence level / picture level / slice level / block level.

[0174] i. In one example, the scaling factor may be signaled.

[0175] ii. In one example, the maximum value of the weight may be signaled.

[0176] iii. Alternatively, the maximum value of the input data may be signaled.

[0177] 8) All processes disclosed herein, such as those related to quantization or scaling in a learning-based codec system, may depend on the coding information.

[0178] a. The coding information may include color format or color components, picture / slice / block dimensions, or any indication signaled from the encoder to the decoder.

[0179] 6. Embodiments In this embodiment, an example is described of how the designed scaling and quantization method solves the problem of device interoperability, and how the designed network can help maintain performance after device interoperability.

[0180] 6.1. Fixed-point implementation of entropy coding To realize fixed-point calculation in entropy coding, the maximum value and weight of the input data need to be determined respectively. The algorithm description described in this document is one possible solution for the proposed method. In this solution, the convolution structure may be first analyzed to determine the maximum possible magnification ratio of the intermediate result compared to the input value during the convolution calculation process. One possible calculation is M×N×K H ×K W Then, the relationship between the upper limit of the input data and the upper limit of the convolution weights can be determined by: log2V=log2W=(B-ceil(log2(M×N×K H ×K W ))-1) / / 2 Next, the scaling coefficients used before quantization need to be determined. In this embodiment, binary scaling is used to perform the scaling. The scaling of the convolution weights may be performed on a per-channel basis. Kernels used on the same output channel share the same scaling coefficient. The maximum absolute value w of these kernels may be applied as a criterion, and thus the scaling coefficients of these kernels can be calculated as follows:

[0181]

number

[0182] An observation step is used to obtain the maximum absolute value of the input data. Different data are used as inputs to the neural network. The maximum absolute value of the inputs at each layer may then be stored. A scaling factor for the data may then be calculated by: s dt =V / v t Here, s dt means the scaling coefficient of the input data of the t-th layer, and v t means the maximum value of the input data of the t-th layer. After obtaining the scaling coefficients of the input data, we can calculate the scaling of the data accordingly: D t ^=round(D t ×s dt ) Here, D t represents the input data of the t-th layer, and D t^ represents the quantized input data.

[0183] To convert the output back to its unquantized version, a rescaling may be applied. Specifically, the rescaling operation can be formulated as follows: O i ^=O i / (s wi ×s dt ) Here, O i represents the quantized output of the i-th layer, and O i ^ denotes the corresponding rescaling result.

[0184] In the activation layers, only the input values ​​need to be scaled. The observation stage is also used in these layers, and the data may be quantized as in the convolutional layer operations. In this embodiment, scaling and quantization is performed layer by layer, and the quantized output of each layer is rescaled to a floating-point tensor.

[0185] 6.2. Designing Neural Networks for Friendly Device Interoperability 9 illustrates an example of a device interoperability friendly design 900 in a hyper-prior network according to an embodiment of the present disclosure. FIG. 9 illustrates one possible structure of a hyper-prior decoder to reduce performance loss in achieving device interoperability. In the example of Fig. 9, group convolution / transpose convolution is utilized to replace the original convolution, while only ReLU activation function is selected to avoid the complexity of quantization of the activation part. Fig. 10 shows another possible structure of the hyper-prior decoder.

[0186] FIG. 10 illustrates another example of a device interoperability friendly design 1000 in a hyper-priori distributed network according to an embodiment of the present disclosure. FIG. 10 shows another example of a device interoperability friendly design in a super-prior distribution network. Group convolution is also utilized in Figure 10. On the other hand, a convolution layer with a large kernel may be split into two convolution layers with smaller kernel sizes.

[0187] In the following, details regarding the quantization process, scaling process, and neural network model for visual data processing of the embodiments of the present disclosure are described. As used herein, the term "data" or "visual data" may refer to an image, a frame in a video, a picture in a video, a video, or any other data suitable for being encoded.

[0188] As mentioned above, the precision of calculations changes dynamically depending on the value range of variables. The same calculation will always produce slightly different results on different devices, which is a disaster for entropy coding. Fixed-point calculations can help solve this precision problem. However, since multiplication and accumulation operations are performed inside the convolution layer, it is prone to overflow errors during calculations inside the neural network. Moreover, the conversion between floating-point and fixed-point calculations will result in information loss in both the input and the neural network, leading to poor compression performance.

[0189] In order to solve the above problems and some other problems not mentioned, a data processing solution is disclosed as described below. The embodiments of the present disclosure should be considered as examples to explain the general concept and should not be interpreted narrowly. Moreover, these embodiments can be applied individually or combined in any way.

[0190] 11 shows a flowchart of a method 1100 for visual data processing according to an embodiment of the present disclosure. The method 1100 is implemented for conversion between visual data and a bitstream of visual data.

[0191] In block 1110, a quantization process is performed on a dataset that includes at least one of the input visual data of the neural network model used for the transformation or the parameters of the neural network model. In some embodiments, a fixed-point representation of the dataset is obtained by performing a quantization process on a floating-point representation of the dataset. As used herein, the transformation between floating-point and fixed-point may also be referred to as a "quantization transformation." For example, the input data, and / or the convolution layer or the transposed convolution layer, and / or the activation function are quantized to achieve the quantization transformation.

[0192] At block 1120, a transformation is performed based on the quantization process. In some embodiments, the transformation includes encoding the visual data into a bitstream. Alternatively or additionally, in some embodiments, the transformation includes decoding the visual data from the bitstream.

[0193] In the method 1100, a quantization process may be applied to realize the conversion between floating point and fixed point. By converting the floating point data to fixed point data, the neural network model can perform fixed point calculations, which can provide the same accuracy on different devices, thus improving the coding efficiency and coding effect.

[0194] In some embodiments, the parameters of the neural network model include at least one of a first parameter associated with a convolutional layer or a transposed convolutional layer of the neural network model, or a second parameter associated with an activation metric of the neural network model. That is, to achieve the transformation, both the input and the convolutional layer or the transposed convolutional layer of the network are quantized. The activation function can be maintained in floating point.

[0195] In some embodiments, the dataset includes the input visual data and the first parameters without the floating-point second parameters, i.e., both the input and the convolutional or transposed convolutional layers of the network are quantized, and the activation functions implement a quantized transformation that holds in floating point.

[0196] In some embodiments, the first parameters include weights of a convolutional layer or a transposed convolutional layer of the neural network model. In some embodiments, the first parameters do not include biases of the convolutional layer or the transposed convolutional layer in floating point. For example, the biases of the convolutional layer or the transposed convolutional layer may be floating point. That is, when quantizing the convolutional / transposed convolutional layer, only the weights of the convolutional / transposed convolutional layer are quantized, and the biases of the convolutional / transposed convolutional layer remain floating point.

[0197] In some embodiments, the first data includes weights and biases of a convolutional layer or a transposed convolutional layer of the neural network model, i.e., both the weights and biases of the convolutional layer are quantized.

[0198] In some embodiments, performing the quantization process includes applying the quantization process to a neural network model. In some embodiments, the neural network model includes a recurrent neural network. For example, the recurrent neural network is quantized to implement the transformation.

[0199] In some embodiments, performing the quantization process includes determining at least one threshold for the dataset and determining a fixed-point representation of the dataset by performing the quantization process based on the at least one threshold.

[0200] In some embodiments, the at least one threshold value includes at least one of a first threshold value of a value or absolute value of input visual data of the neural network model, or a second threshold value of a value or absolute value of a weight of the neural network model.

[0201] In some embodiments, determining the at least one threshold includes determining the at least one threshold based on a maximum number of bits used in the fixed-point arithmetic and a shape of a convolutional layer or a transposed convolutional layer of the neural network model.

[0202] In some embodiments, at least one threshold is V×W=2 B-1 / ((M×N×K H ×K W )) based on a first metric, where V represents a first threshold of at least one threshold for input visual data of the neural network model, W represents a second threshold of at least one threshold for weights of the neural network model, B represents a maximum number of bits, M represents a number of input channels of the neural network model, N represents a number of output channels of the neural network model, and K H represents the kernel height of the neural network model, and K W represents the width of the kernel.

[0203] In some embodiments, the first and second thresholds are further determined by determining a ratio between the first and second thresholds based on a statistical average of the input visual data, and determining the first and second thresholds based on the ratio and the first metric.

[0204] In some embodiments, the first and second thresholds are:

[0205]

number

[0206] In some embodiments, at least one threshold is log2V+log2W=B-ceil(log2(M×N×K H ×K W ))-1, where V represents a first threshold of the at least one threshold for the input visual data of the neural network model, W represents a second threshold of the at least one threshold for the weights of the neural network model, B represents a maximum number of bits, M represents a number of input channels of the neural network model, N represents a number of output channels of the neural network model, and K H represents the kernel height of the neural network model, and K W represents the width of the kernel, and ceil() represents the ceiling metric.

[0207] In some embodiments, the first and second thresholds are further determined by determining a ratio between the first and second thresholds based on a statistical average value of the input visual data, and determining the first and second thresholds based on the ratio and the second metric.

[0208] In some embodiments, the first and second thresholds are:

[0209]

number

[0210] In some embodiments, determining the at least one threshold value includes determining multiple threshold values ​​for weights of multiple layers of the neural network model.

[0211] In some embodiments, determining the at least one threshold value includes determining a minimum threshold value among a plurality of threshold values, and determining the minimum threshold value as a threshold value for weights of a plurality of layers of the neural network model.

[0212] In some embodiments, performing the quantization process includes determining a fixed-point representation of the data set by clipping the data set based on at least one threshold.

[0213] In some embodiments, determining a fixed-point representation of the dataset includes determining a fixed-point representation of input visual data for the neural network model by clipping the input visual data based on a maximum number of bits.

[0214] In some embodiments, the maximum number of bits is log2V bits, where V represents a first of at least one threshold for the input visual data, and the input visual data is clipped to be within one of a first range of zero to V-1, or a second range of -V / 2 to V / 2-1.

[0215] In some embodiments, determining a fixed-point representation of the dataset includes determining a fixed-point representation of weights of the neural network model by clipping the weights based on a maximum number of bits.

[0216] In some embodiments, the maximum number of bits is log2W bits, where W represents a second of the at least one threshold for the weights, and the weights are clipped to be in one of a third range from zero to W-1, or a fourth range from -W / 2 to W / 2-1.

[0217] In some embodiments, determining the at least one threshold value includes determining the at least one threshold value based on a maximum absolute value of the data during a convolution operation of the neural network model.

[0218] In some embodiments, at least one threshold is V×W=2 B-1 / Max cwhere V represents a first threshold of the at least one threshold for the input visual data of the neural network model, W represents a second threshold of the at least one threshold for the weight of the neural network model, B represents a maximum number of bits used in the fixed-point arithmetic of the neural network model, and Max c represents the maximum absolute value during the convolution operation.

[0219] In some embodiments, the first and second thresholds are further determined by determining a ratio between the first and second thresholds based on a statistical average value of the input visual data, and determining the first and second thresholds based on the ratio and a third metric.

[0220] In some embodiments, the first and second thresholds are V=W=2 B-2 / Max c is determined by.

[0221] In some embodiments, at least one threshold is V×W=2 B-1 where V represents a first threshold of the at least one threshold for the input visual data of the neural network model, W represents a second threshold of the at least one threshold for the weights of the neural network model, and B represents a maximum number of bits used in fixed-point arithmetic of the neural network model.

[0222] In some embodiments, the first and second thresholds are further determined by determining a ratio between the first and second thresholds based on a statistical average of the input visual data, and determining the first and second thresholds based on the ratio and a fourth metric.

[0223] In some embodiments, the first and second thresholds are V=W=2 (B-1) / / 2 is determined by.

[0224] In some embodiments, the at least one threshold is determined based on the fifth metric as log2V+log2W=B-1, where V represents a first threshold of the at least one threshold for the input visual data of the neural network model, W represents a second threshold of the at least one threshold for the weights of the neural network model, and B represents a maximum number of bits used in fixed-point arithmetic of the neural network model.

[0225] In some embodiments, the first and second thresholds are further determined by determining a ratio between the first and second thresholds based on a statistical average of the input visual data, and determining the first and second thresholds based on the ratio and a fifth metric.

[0226] In some embodiments, the first and second thresholds are V=W=2 (B-1) / / 2 is determined by.

[0227] According to a further embodiment of the present disclosure, a non-transitory computer-readable recording medium is provided, which stores a bitstream of visual data generated by a method performed by an apparatus for visual data processing, according to which a quantization process is performed on a data set including at least one of input visual data of a neural network model used to generate the bitstream, or parameters of the neural network model. The bitstream is generated based on the quantization process.

[0228] According to a further embodiment of the present disclosure, there is provided a method for storing a bitstream of visual data, in which a quantization process is performed on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, or parameters of the neural network model, and the bitstream is generated based on the quantization process. The bitstream is stored on a non-transitory computer-readable recording medium.

[0229] 12 illustrates a flowchart of a method 1200 for visual data processing according to an embodiment of the present disclosure. The method 1200 is implemented for conversion between visual data and a bitstream of visual data.

[0230] In block 1210, a scaling operation is performed on a dataset including at least one of input visual data of the neural network model, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model used for the transformation.

[0231] At block 1220, a transformation is performed based on the scaling operation. In some embodiments, the transformation includes encoding the visual data into a bitstream. Alternatively or additionally, in some embodiments, the transformation includes decoding the visual data from the bitstream.

[0232] The method 1200 enables the scaling process, so that the overflow problem occurring during the multiplication and accumulation of the convolution can be avoided, and thus the quantization loss can be reduced, and the coding efficiency and coding effect can be improved.

[0233] In some embodiments, the conversion comprises an end-to-end image or video encoding process.

[0234] In some embodiments, the parameters of the neural network model include weights of the neural network model, i.e. scaling may be applied to the input data and / or weighting values ​​and / or intermediate data and / or output visual data of the network in E2E image / video encoding.

[0235] In some embodiments, the scaling process is performed before or after the quantization process, i.e., scaling may be used before or after quantization.

[0236] In some embodiments, performing a scaling operation on the visual data includes at least one of performing a scaling operation on input visual data of the neural network model or performing a scaling operation on weights of the neural network model. In some embodiments, the method 1200 further includes performing a rescaling operation on output visual data of the neural network model.

[0237] In some embodiments, at least one of a scaling operation or a quantization operation is applied to the neural network model.

[0238] In some embodiments, performing a scaling operation on the visual data includes performing a scaling operation on input visual data of the neural network model. In some exemplary embodiments, the method 1200 further includes performing a rescaling operation on output visual data of the neural network model. That is, scaling and / or quantization is performed on the entire neural network and only the input of the network is scaled. Rescaling is used on the output of the network.

[0239] In some embodiments, at least one of a scaling operation and a quantization operation is applied to each layer of the neural network model.

[0240] In some embodiments, the method 1200 further includes performing a rescaling process on the output visual data of each layer of the neural network model.

[0241] In some embodiments, performing a scaling operation on the visual data includes performing a scaling operation on input visual data of a convolutional layer or a transposed convolutional layer of the neural network model. In some embodiments, the method 1200 further includes performing a rescaling operation on output visual data of an activation layer of the neural network model.

[0242] In some embodiments, the method 1200 further includes determining at least one scaling coefficient of a scaling operation applied to the at least one weight based on a maximum absolute value of the at least one weight of the at least one convolutional layer or transposed convolutional layer of the neural network model.

[0243] In some embodiments, at least one scaling factor is s w =2 W / / w is determined using the metric, where s w represents a scaling factor, W represents a threshold value for at least one weight, and w represents a maximum absolute value for at least one weight.

[0244] In some embodiments, the at least one scaling factor comprises multiple scaling factors for multiple channels of the neural network model, and a convolution kernel or a transposed convolution kernel for one of the multiple channels is associated with a respective scaling factor of the multiple scaling factors.

[0245] In some embodiments, the at least one scaling factor is determined based on the following metrics: wi =2 Wi / / wi , where s wirepresents the scaling factor of at least one convolution kernel or transposed convolution kernel associated with the i-th channel of the neural network model, where i is an integer, and W i represents the threshold value of at least one weight of at least one convolution kernel or transposed convolution kernel associated with the i-th channel, and w i represents the maximum absolute value of at least one weight.

[0246] In some embodiments, the method 1200 further includes performing a rescaling operation on the output visual data of the neural network model, and adding biases of the convolutional layer or the transposed convolutional layer of the neural network model to the rescaled output visual data without quantizing the biases.

[0247] In some embodiments, the method 1200 further includes performing a quantization operation on biases of a convolutional layer or a transposed convolutional layer of the neural network model based on the scaling factor, where the scaling factor is applied to weights of the convolutional layer or the transposed convolutional layer.

[0248] In some embodiments, the method 1200 further includes determining value change information of the reference dataset, the value change information indicating a change of the reference dataset within the neural network model, and determining a scaling factor for a scaling operation to be applied to the input visual data of the neural network model based on the value change information. The reference dataset may be any suitable training or reference dataset for training the neural network model. The reference dataset may include visual data such as images, pictures, frames, videos, etc.

[0249] In some embodiments, the number of samples in the reference dataset is less than a threshold, i.e., a small reference dataset may be used to observe value changes within the network to obtain scaling factors for the input visual data.

[0250] In some embodiments, the value change information comprises a maximum absolute value of the input visual data, and the scaling factor is s d = V / v, where s d represents a scaling factor, V represents a threshold value of the input visual data, and v represents the maximum absolute value of the input visual data.

[0251] In some embodiments, the number of samples in the reference data set is equal to or greater than the threshold number, i.e., the step of observing the value change information may be performed on a large reference data set in order to obtain accurate results.

[0252] In some embodiments, the method 1200 further includes obtaining a plurality of reference data sets, determining a plurality of value change information of the plurality of reference data sets in the neural network model, and determining a plurality of scaling coefficients for a scaling process for the plurality of visual data sets based on the plurality of value change information. For example, the plurality of scaling coefficients may be used for a plurality of images or a plurality of frames of a video.

[0253] In some embodiments, the method 1200 further includes including a scaling factor flag in the bitstream, the scaling factor flag indicating one of a plurality of scaling factors to be applied in the scaling process.

[0254] In some embodiments, the method 1200 further includes selecting a scaling factor from a plurality of scaling factors to be applied in the scaling process based on additional model or latent information of the neural network model.

[0255] In some embodiments, at least one weight C of a convolutional layer or a transposed convolutional layer of the neural network model is C i ^=round(C i ×s wi ), where Ci represents the group of convolution kernel weights associated with the i-th channel of the neural network model, where i is an integer, and s wi represents the scaling factor for the group of convolution kernel weights associated with the i-th channel, and C i ^ represents a group of quantized weights and round() represents a rounding operation.

[0256] In some embodiments, the input visual data for the neural network model is calculated as D̂=round(D×s d ), where D represents the input visual data, and s d represents the scaling factor, D^ represents the quantized input visual data, and round() represents the rounding operation.

[0257] In some embodiments, the method 1200 further includes performing a clipping operation on the scaled input visual data.

[0258]

number

[0259]

number

[0260] (outside 4) TIFF2025507068000016.tif8115 (hereinafter referred to as “D ~ ") represents the scaled input visual data after clipping, and clip(A,B,C) represents the clipping operation to clamp the elements of A to the range from B to C.

[0261] In some embodiments, the method 1200 further includes performing a dequantization process by rescaling the output visual data of the quantized layer of the neural network model.

[0262] In some embodiments, the output visual data is rescaled using: Ô=O / (s w ×s d ), where O represents the output visual data of the convolution layer or transposed convolution layer of the neural network model, and s w represents the scaling factor of the weights of the convolutional layer or transposed convolutional layer, and s d represents the scaling factor of the input visual data of the neural network model, and O^ represents the rescaled output visual data.

[0263] In some embodiments, the output visual data is rescaled using: Ô=O / s d Here, O represents the output visual data of the activation layer of the neural network model, and s d represents the scaling factor of the input visual data of the neural network model, and O^ represents the rescaled output visual data.

[0264] In some embodiments, the method 1200 further includes determining a scaling factor for the scaling operation based on a maximum value of the visual data during the encoding operation.

[0265] In some embodiments, the scaling factor is independent of the visual data, for example, the scaling factor may be image-independent, picture-independent, frame-independent, or video-independent.

[0266] In some embodiments, the method 1200 further includes including scaling factor information for the determined scaling factor in the bitstream, and determining, based on the scaling factor information, further scaling factors to be used in the decoding process.

[0267] In some embodiments, determining the further scaling factor comprises determining the further scaling factor for use in the decoding process based on latent information of the neural network model.

[0268] In some embodiments, the neural network model includes a recurrent neural network.

[0269] According to a further embodiment of the present disclosure, there is provided a non-transitory computer-readable recording medium storing a bitstream of visual data generated by a method performed by an apparatus for visual data processing, the method including performing a scaling operation on a data set including at least one of input visual data of a neural network model, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model used to generate the bitstream, the bitstream being generated based on the scaling operation.

[0270] According to yet another embodiment of the present disclosure, there is provided a method for storing a data bitstream of visual data, the method comprising: performing a scaling operation on a data set including at least one of input visual data of a neural network model, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model used to generate the bitstream, the bitstream being generated based on the scaling operation, the bitstream being stored on a non-transitory computer-readable recording medium.

[0271] 13 illustrates a flowchart of a method 1300 for visual data processing according to an embodiment of the present disclosure. The method 1300 is implemented for conversion between visual data and a bitstream of visual data.

[0272] At block 1310, a neural network model is used to perform a conversion between the visual data and a bitstream of visual data. The neural network model is highly interoperable. In some embodiments, the conversion includes encoding the visual data into the bitstream. Alternatively or additionally, in some embodiments, the conversion includes decoding the visual data from the bitstream.

[0273] The neural network model is characterized in that the number of channels of the layers of the neural network model is less than a threshold number of channels, i.e., the number of channels of the layers is reduced.

[0274] Alternatively or additionally, the neural network model is characterized by using rectified linear units (ReLU). For example, the neural network model may use ReLU instead of leaky ReLU. In other words, ReLU may be used to replace LeakyReLU.

[0275] Alternatively or additionally, the neural network model is characterized in that the number of layers of the neural network model is less than a threshold number of layers, e.g., the number of layers should be reduced.

[0276] Alternatively or additionally, the neural network model is characterized by the use of group convolutions or group transposed convolutions, for example, group convolutions / transposed convolutions may be utilized to replace current convolutions / transposed convolutions.

[0277] Alternatively or additionally, the neural network model is characterized in that a kernel size of the neural network model is smaller than a threshold kernel size, e.g., by reducing the number of kernel sizes.

[0278] As used herein, a neural network model that features at least one of the above characteristics may be referred to as an "interoperability friendly" model or an "interoperability friendly" neural network model. A device that uses such a neural network model may be referred to as a device having an interoperability design.

[0279] By utilizing an interoperability-friendly neural network model or an interoperability-friendly neural network design in visual data processing, it is possible to improve device interoperability and improve coding efficiency and coding effect.

[0280] In some embodiments, the propagation of the quantization loss associated with the neural network model is less than an additional loss associated with an additional model having an additional number of layers, the additional number exceeding a threshold number of layers, in other words, the number of layers is reduced to reduce the propagation of the quantization loss.

[0281] In some embodiments, the kernel of the neural network model is split into multiple kernels with kernel sizes less than a threshold kernel size, e.g., a larger kernel may be split into multiple kernels to achieve similar compression performance.

[0282] In some embodiments, the neural network models are used in trained image and video compression, i.e., these device interoperability designs can be used for trained image and video compression.

[0283] In some embodiments, neural network models are used for entropy coding during the transform, for example, these device interoperability designs can be used for entropy coding to ensure that the bitstream is decodable on any device.

[0284] In some embodiments, neural network models are used in the analysis and synthesis portion for the transformation. In one example, these device interoperability designs can be utilized in the analysis and synthesis portion to ensure that the reconstruction is exactly the same on different devices.

[0285] In some embodiments, the neural network model is used in combination with additional encoding tools. In one example, the additional encoding tools include at least one of image compression tools, video compression tools, or neural network techniques. In other words, these device interoperability designs can be used in combination with traditional image and video compression and neural network techniques.

[0286] In some embodiments, the neural network model is used as a neural network-based conversion module during conversion. For example, these device interoperability designs can be used as neural network-based conversion modules used in conventional codecs to ensure that the conversion results are the same on different devices and to avoid error propagation.

[0287] In some embodiments, the neural network model is used as a neural network-based prediction module during conversion, i.e., these device interoperability designs can be used as the neural network-based prediction module used in conventional codecs to ensure that the prediction results are the same on different devices and avoid error propagation.

[0288] In some embodiments, the neural network model is used in an in-loop filter during conversion. For example, this device interoperability design can be utilized in an in-loop filter to ensure that results are the same on different devices and to avoid error propagation.

[0289] According to a further embodiment of the present disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of visual data generated by a method executed by an apparatus for visual data processing. In the method, the bitstream is generated using a neural network model. The neural network model is characterized by at least one of the following: a number of channels of a layer of the neural network model is less than a threshold number of channels, the neural network model uses a rectified linear unit (ReLU), the number of layers of the neural network model is less than a threshold number of layers, the neural network model uses a group convolution or a group transpose convolution, or the kernel size of the neural network model is less than a threshold kernel size.

[0290] According to yet another embodiment of the present disclosure, there is provided a method for storing a bitstream of visual data, wherein the bitstream is generated using a neural network model. The bitstream is stored in a non-transitory computer-readable recording medium. The neural network model is characterized by at least one of: a number of channels of a layer of the neural network model is less than a threshold number of channels; the neural network model uses rectified linear units (ReLUs); a number of layers of the neural network model is less than a threshold number of layers; the neural network model uses group convolutions or group transpose convolutions; or a kernel size of the neural network model is less than a threshold kernel size.

[0291] In some embodiments, method 1100, method 1200, and / or method 1300 further includes including information regarding the learning-based encoding during the transform in the bitstream.

[0292] Alternatively or additionally, in some embodiments, method 1100, method 1200, and / or method 1300 may further include determining, by a decoder associated with the transform, information related to the learning-based encoding.

[0293] In some embodiments, the information is associated with a quantization or scaling operation for the transformation.

[0294] In some embodiments, the information is included at one of a sequence level, a picture level, a slice level, or a block level.

[0295] In some embodiments, the information includes at least one of a scaling factor of a scaling process for the transformation, a first threshold of input visual data for the neural network model, or a second threshold of weights for the neural network model.

[0296] In some embodiments, the process of using learning-based coding for transformation relies on the coding information.

[0297] In some embodiments, the processing includes at least one of a quantization process or a scaling process.

[0298] In some embodiments, the encoding information includes at least one of a color format, color components, picture dimensions, slice dimensions, block dimensions, or a representation in the bitstream.

[0299] Embodiments of the present disclosure can be described in terms of the following clauses, the features of which can be combined in any reasonable manner.

[0300] Item 1. A method for processing visual data, comprising: performing a quantization process on a dataset including at least one of input visual data of a neural network model used for the conversion or parameters of the neural network model, for converting between visual data and a bitstream of the visual data; and performing the conversion based on the quantization process.

[0301] Clause 2. The method of clause 1, wherein performing the quantization process includes performing the quantization process on a floating-point representation of the dataset to obtain a fixed-point representation of the dataset.

[0302] Clause 3. The method of clause 1 or 2, wherein the parameters of the neural network model include at least one of a first parameter associated with a convolutional layer or a transposed convolutional layer of the neural network model, or a second parameter associated with an activation metric of the neural network model.

[0303] Clause 4. The method of clause 3, wherein the dataset includes the input visual data and the first parameters, but does not include the second parameters that are floating point.

[0304] Clause 5. The method of clause 3 or 4, wherein the first parameters include weights of the convolutional layer or the transposed convolutional layer of the neural network model.

[0305] Clause 6. The method of clause 5, wherein the first parameter does not include a bias of the floating point convolution layer or the transposed convolution layer.

[0306] Clause 7. The method of clause 3, wherein the first parameters include weights and biases of the convolutional layer or the transposed convolutional layer of the neural network model.

[0307] Clause 8. The method of any one of clauses 1 to 7, wherein the neural network model comprises a recurrent neural network.

[0308] Clause 9. A method according to any one of clauses 1 to 8, wherein performing the quantization process comprises determining at least one threshold value for the data set, and determining a fixed-point representation of the data set by performing the quantization process based on the at least one threshold value.

[0309] Clause 10. The method of clause 9, wherein the at least one threshold includes at least one of a first threshold of a value or absolute value of the input visual data of the neural network model, or a second threshold of a value or absolute value of a weight of the neural network model.

[0310] Clause 11. The method of clause 9 or 10, wherein determining the at least one threshold value includes determining the at least one threshold value based on a maximum number of bits used in fixed-point arithmetic and a shape of a convolutional layer or a transposed convolutional layer of the neural network model.

[0311] Clause 12. The at least one threshold is determined based on a first metric as follows: V×W=2 B-1 / (M×N×K H ×K W )), where V represents a first one of the at least one threshold for the input visual data of the neural network model, W represents a second one of the at least one threshold for the weights of the neural network model, B represents the maximum number of bits, M represents the number of input channels of the neural network model, N represents the number of output channels of the neural network model, and K H represents the kernel height of the neural network model, and K W 12. The method of claim 11, wherein: denotes a width of the kernel.

[0312] Clause 13. The method of clause 12, wherein the first and second thresholds are further determined by: determining a ratio between the first threshold and the second threshold based on a statistical average value of the input visual data; and determining the first and second thresholds based on the ratio and the first metric.

[0313] Item 14. The first and second thresholds are:

[0314] (outside 5) 13. The method according to claim 12, as determined by TIFF2025507068000017.tif13115.

[0315] Clause 15. The at least one threshold is determined based on a second metric as follows: log2V+log2W=B-ceil(log2(M×N×K H ×K W ))-1, where V represents a first one of the at least one threshold for the input visual data of the neural network model, W represents a second one of the at least one threshold for the weights of the neural network model, B represents the maximum number of bits, M represents the number of input channels of the neural network model, N represents the number of output channels of the neural network model, and K H represents the kernel height of the neural network model, and K W 12. The method of claim 11, wherein: denotes a width of the kernel, and ceil() denotes a ceiling metric.

[0316] Clause 16. The method of clause 15, wherein the first and second thresholds are further determined by: determining a ratio between the first and second thresholds based on a statistical average value of the input visual data; and determining the first and second thresholds based on the ratio and the second metric.

[0317] Item 17. The first and second thresholds are:

[0318] (outside 6) 16. The method of claim 15, wherein the pixel size is determined using TIFF2025507068000018.tif11115, where / / represents an integer division operation.

[0319] Clause 18. The method of any one of clauses 9 to 17, wherein determining the at least one threshold value includes determining multiple threshold values ​​for weights of multiple layers of the neural network model.

[0320] Clause 19. The method of clause 18, wherein determining the at least one threshold value includes determining a minimum threshold value among the plurality of threshold values, and determining the minimum threshold value as a threshold value for weights of the plurality of layers of the neural network model.

[0321] Clause 20. A method according to any one of clauses 9 to 19, wherein performing the quantization process comprises determining a fixed-point representation of the data set by clipping the data set based on the at least one threshold.

[0322] Clause 21. The method of clause 20, wherein determining the fixed-point representation of the dataset includes determining the fixed-point representation of the input visual data for the neural network model by clipping the input visual data based on a maximum number of bits.

[0323] Clause 22. The method of clause 21, wherein the maximum number of bits is log2V bits, V represents a first one of the at least one threshold for the input visual data, and the input visual data is clipped to be within one of a first range from zero to V-1 or a second range from -V / 2 to V / 2-1.

[0324] Clause 23. The method of clause 20, wherein determining the fixed-point representation of the dataset includes determining the fixed-point representation of the weights of the neural network model by clipping weights based on a maximum number of bits.

[0325] Clause 24. The method of clause 23, wherein the maximum number of bits is log2W bits, W represents a second one of the at least one threshold for the weights, and the weights are clipped to be within one of a third range from zero to W-1 or a fourth range from W / 2 to W / 2-1.

[0326] Clause 25. The method of clause 9 or 10, wherein determining the at least one threshold value includes determining the at least one threshold value based on a maximum absolute value of data during a convolution operation of the neural network model.

[0327] Clause 26. The at least one threshold is determined based on a third metric as follows: V×W=2 B-1 / Max c , where V represents a first threshold of the at least one threshold for the input visual data of the neural network model, W represents a second threshold of the at least one threshold for the weights of the neural network model, B represents a maximum number of bits used in fixed-point arithmetic of the neural network model, and Max c 26. The method of clause 25, wherein: denotes the maximum absolute value during the convolution operation.

[0328] Clause 27. The method of clause 26, wherein the first and second thresholds are further determined by: determining a ratio between the first and second thresholds based on a statistical average value of the input visual data; and determining the first and second thresholds based on the ratio and the third metric.

[0329] Item 28. The first and second thresholds are V=W=2 B-2 / Maxc 28. The method of claim 27, wherein the

[0330] Clause 29. The at least one threshold is determined based on a fourth metric as follows: V×W=2 B-1 11. The method of claim 9 or 10, wherein V represents a first one of the at least one threshold for the input visual data of the neural network model, W represents a second one of the at least one threshold for the weights of the neural network model, and B represents a maximum number of bits used in fixed-point arithmetic of the neural network model.

[0331] Clause 30. The method of clause 29, wherein the first and second thresholds are further determined by: determining a ratio between the first and second thresholds based on a statistical average value of the input visual data; and determining the first and second thresholds based on the ratio and the fourth metric.

[0332] Clause 31. The method of clause 9 or 10, wherein the at least one threshold is determined based on a fifth metric as follows: log2V+log2W=B-1, where V represents a first one of the at least one thresholds for the input visual data of the neural network model, W represents a second one of the at least one thresholds for the weights of the neural network model, and B represents a maximum number of bits used in fixed-point arithmetic of the neural network model.

[0333] Clause 32. The method of clause 31, wherein the first and second thresholds are further determined by determining a ratio between the first and second thresholds based on a statistical average value of the input visual data, and determining the first and second thresholds based on the ratio and the fifth metric.

[0334] Item 33. The first and second thresholds are V=W=2 (B-1) / / 232. The method of claim 29 or 31, wherein / / represents an integer division operation.

[0335] Clause 34. A method for processing visual data, comprising: performing a scaling operation on a dataset including at least one of input visual data of a neural network model used in the conversion, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model, for conversion between visual data and a bitstream of the visual data; and performing the conversion based on the scaling operation.

[0336] Clause 35. The method of clause 34, wherein the parameters of the neural network model include weights of the neural network model.

[0337] Clause 36. The method of clause 34 or 35, wherein the transformation comprises an end-to-end image or video encoding process.

[0338] Clause 37. The method according to any one of clauses 34 to 36, wherein the scaling process is performed before or after a quantization process.

[0339] Clause 38. A method according to any one of clauses 34 to 37, wherein performing the scaling operation includes performing the scaling operation on the input visual data of the neural network model and performing the scaling operation on weights of the neural network model, the method further including performing a rescaling operation on the output visual data of the neural network model.

[0340] Clause 39. The method according to any one of clauses 34 to 38, wherein at least one of the scaling process or the quantization process is applied to the neural network model.

[0341] Clause 40. The method of clause 39, wherein performing the scaling operation includes performing the scaling operation on the input visual data of the neural network model, the method further including performing a rescaling operation on the output visual data of the neural network model.

[0342] Clause 41. A method according to any one of clauses 34 to 38, wherein at least one of the scaling process or the quantization process is applied to each layer of the neural network model.

[0343] Clause 42. The method of clause 41, further comprising performing a rescaling process on the output visual data of each layer of the neural network model.

[0344] Clause 43. The method according to any one of clauses 34 to 38, wherein performing the scaling process includes performing the scaling process on input visual data of a convolutional layer or a transposed convolutional layer of the neural network model, and the method further includes performing a rescaling process on output visual data of an activation layer of the neural network model.

[0345] Clause 44. The method of any one of clauses 34 to 43, further comprising determining at least one scaling coefficient of the scaling operation applied to at least one weight of at least one convolutional layer or transposed convolutional layer of the neural network model based on a maximum absolute value of the at least one weight.

[0346] Clause 45. The at least one scaling factor is determined based on the following metric: s w =2 W / / w , where s w 45. The method of clause 44, wherein: w represents the scaling factor; W represents a threshold value for the at least one weight; w represents the maximum absolute value of the at least one weight; and / / represents an integer division operation.

[0347] Clause 46. The method of clause 44, wherein the at least one scaling factor comprises a plurality of scaling factors for a plurality of channels of the neural network model, and a convolution kernel or a transposed convolution kernel of one of the plurality of channels is associated with a respective scaling factor of the plurality of scaling factors.

[0348] Clause 47. The at least one scaling factor is determined based on the following metric: s wi =2 Wi / / wi , where s wi represents a scaling factor of the at least one convolution kernel or transposed convolution kernel associated with the i-th channel of the neural network model, where i is an integer, and W i represents a threshold value of the at least one weight of the at least one convolution kernel or transposed convolution kernel associated with the i-th channel, and w i 47. The method of clause 46, wherein / / represents the maximum absolute value of the at least one weight and / / represents an integer division operation.

[0349] Clause 48. The method of any one of clauses 34 to 47, further comprising: performing a rescaling operation on the output visual data of the neural network model; and adding biases of a convolutional layer or a transposed convolutional layer of the neural network model to the rescaled output visual data without quantizing the biases.

[0350] Clause 49. The method according to any one of clauses 34 to 47, further comprising performing a quantization process on biases of a convolutional layer or a transposed convolutional layer of the neural network model based on a scaling coefficient, the scaling coefficient being applied to weights of the convolutional layer or the transposed convolutional layer.

[0351] Clause 50. The method of any one of clauses 34 to 49, further comprising: determining value change information of a reference data set, the value change information indicating a change in the reference data set within the neural network model; and determining a scaling coefficient for the scaling process to be applied to input visual data of the neural network model based on the value change information.

[0352] Clause 51. The method of clause 50, wherein the number of samples in the reference dataset is less than a threshold number.

[0353] Clause 52. The value change information includes a maximum absolute value of the input visual data, and the scaling factor is determined using the following formula: s d = V / v, where s d 52. A method according to claim 50 or 51, wherein V represents the scaling factor, V represents a threshold value of the input visual data, and v represents the maximum absolute value of the input visual data.

[0354] Clause 53. The method of clause 50, wherein the number of samples in the reference dataset is equal to or greater than a threshold number.

[0355] Clause 54. The method of any one of clauses 34 to 49, further comprising: acquiring a plurality of reference datasets; determining a plurality of value change information of the plurality of reference datasets in the neural network model; and determining a plurality of scaling coefficients for a scaling process for a plurality of visual datasets based on the plurality of value change information.

[0356] Clause 55. The method of clause 54, further comprising including a scaling factor flag in the bitstream, the scaling factor flag indicating one of the plurality of scaling factors to be applied in the scaling process.

[0357] Clause 56. The method of clause 54, further comprising selecting a scaling coefficient from the plurality of scaling coefficients to be applied in the scaling process based on additional model or latent information of the neural network model.

[0358] Clause 57. At least one weight C of the convolution layer or transposed convolution layer of the neural network model is scaled and quantized based on the following formula: C i ^=round(C i ×s wi ), where C i represents a group of convolution kernel weights associated with the i-th channel of the neural network model, where i is an integer, and s wi represents the scaling factor of the group of convolution kernel weights associated with the i-th channel, and C i 57. The method according to any one of clauses 34 to 56, wherein ^ represents a group of quantized weights and round() represents a rounding operation.

[0359] Clause 58. The input visual data of the neural network model is scaled and quantized according to the following formula: D̂=round(D×s d ), where D represents the input visual data, and s d 58. The method according to any one of clauses 34 to 57, wherein {circumflex over (D)} denotes the scaling factor, D^ denotes the quantized input visual data, and round() denotes a rounding operation.

[0360] Clause 59. The method of any one of clauses 34 to 58, further comprising performing a clipping operation on the scaled input visual data.

[0361] Item 60. The clipping operation is ~ =clip(D^,0,V-1) or D ~ =clip(D̂, -V / 2, V / 2-1), where D̂ represents the scaled input visual data, V represents a threshold for the input visual data, and D~ 59. The method of claim 59, wherein A represents the scaled input visual data after clipping, and clip(A,B,C) represents a clipping operation for clamping elements in A to the range from B to C.

[0362] Clause 61. The method of any one of clauses 34 to 60, further comprising performing an inverse quantization process by rescaling output visual data of the quantized layer of the neural network model.

[0363] Item 62. The output visual data is rescaled using the formula: O^=O / (s w ×s d ), where O represents the output visual data of the convolution layer or transposed convolution layer of the neural network model, and s w represents the scaling factor of the weights of the convolution layer or the transposed convolution layer, and s d 62. The method of claim 61, wherein O represents a scaling factor for input visual data of the neural network model, and O represents the rescaled output visual data.

[0364] Item 63. The output visual data is rescaled using the formula: O^=O / s d , where O represents the output visual data of the activation layer of the neural network model, and s d 62. The method of claim 61, wherein O represents a scaling factor for the input visual data of the neural network model, and O represents the rescaled output visual data.

[0365] Clause 64. The method of any one of clauses 34 to 63, further comprising determining a scaling factor for the scaling process based on a maximum value of visual data during the encoding process.

[0366] Clause 65. The method of clause 64, wherein the scaling factor is independent of the visual data.

[0367] Clause 66. The method of clause 64 or 65, further comprising including scaling factor information for the determined scaling factor in the bitstream, and determining further scaling factors for use in the decoding process based on the scaling factor information.

[0368] Clause 67. The method of clause 64 or 65, wherein determining the further scaling factor comprises determining a further scaling factor to be used in the decoding process based on latent information of the neural network model.

[0369] Clause 68. The method of any one of clauses 34 to 67, wherein the neural network model includes a recurrent neural network.

[0370] Clause 69. A method for visual data processing, comprising using a neural network model to perform conversion between visual data and a bit stream of the visual data, the neural network model having at least one of the following characteristics: a number of channels of a layer of the neural network model is less than a threshold number of channels; the neural network model uses rectified linear units (ReLUs); the number of layers of the neural network model is less than a threshold number of layers; the neural network model uses group convolutions or group transpose convolutions; or a kernel size of the neural network model is less than a threshold kernel size.

[0371] Clause 70. The method of clause 69, wherein the kernel of the neural network model is divided into a plurality of kernels having kernel sizes smaller than the threshold kernel size.

[0372] Clause 71. The method of clause 69 or 70, wherein the neural network model is used in trained image and video compression.

[0373] Clause 72. A method according to any one of clauses 69 to 71, wherein the neural network model is used for entropy coding during the transformation.

[0374] Clause 73. A method according to any one of clauses 69 to 72, wherein the neural network model is used in the analysis and synthesis portion of the transformation.

[0375] Clause 74. The method of any one of clauses 69 to 73, wherein the neural network model is used in combination with further coding tools.

[0376] Clause 75. The method of clause 74, wherein the further encoding tool includes at least one of an image compression tool, a video compression tool, or a neural network tool.

[0377] Clause 76. A method according to any one of clauses 69 to 75, wherein the neural network model is used as at least one of a neural network-based transformation module during the transformation, a neural network-based prediction module during the transformation, or an in-loop filter during the transformation.

[0378] Clause 77. The method of any one of clauses 1 to 76, further comprising including in the bitstream information regarding learning-based coding during the transformation.

[0379] Clause 78. The method of any one of clauses 1 to 77, further comprising determining information relating to learning-based coding by a decoder associated with the transform.

[0380] Clause 79. The method of clause 77 or 78, wherein the information relates to a quantization or scaling process for the transformation.

[0381] Clause 80. The method of any one of clauses 76 to 79, wherein the information is included at one of a sequence level, a picture level, a slice level, or a block level.

[0382] Clause 81. The method of any one of clauses 76 to 80, wherein the information includes at least one of a scaling coefficient of a scaling process for the conversion, a first threshold of input visual data of the neural network model, or a second threshold of weights of the neural network model.

[0383] Clause 82. A method according to any one of clauses 1 to 81, wherein the process of using learning-based coding for the transformation depends on coding information.

[0384] Clause 83. The method of clause 82, wherein the processing includes at least one of a quantization process or a scaling process.

[0385] Clause 84. The method of clause 82 or clause 83, wherein the coding information includes at least one of a color format, a color component, a picture dimension, a slice dimension, a block dimension or an indication within the bitstream.

[0386] Clause 85. The method of any one of clauses 1 to 84, wherein the transforming includes encoding the visual data into the bitstream.

[0387] Clause 86. The method of any one of clauses 1 to 84, wherein the converting includes decoding the visual data from the bitstream.

[0388] Clause 87. An apparatus for processing data comprising a processor and a non-transitory memory having instructions thereon, the instructions, when executed by the processor, causing the processor to perform a method according to any one of clauses 1 to 86.

[0389] Clause 88. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any one of clauses 1 to 86.

[0390] Clause 89. A non-transitory computer-readable recording medium storing a bitstream of data generated by a method performed by an apparatus for data processing, the method including: performing a quantization process on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, or parameters of the neural network model; and generating the bitstream based on the quantization process.

[0391] Clause 90. A method for storing a bitstream of data, comprising: performing a quantization process on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, or parameters of the neural network model; generating the bitstream based on the quantization process; and storing the bitstream on a non-transitory computer-readable recording medium.

[0392] Clause 91. A non-transitory computer-readable recording medium storing a bitstream of data generated by a method performed by an apparatus for data processing, the method including: performing a scaling operation on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model; and generating the bitstream based on the scaling operation.

[0393] Clause 92. A method for storing a bitstream of data, comprising: performing a scaling operation on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model; generating the bitstream based on the scaling operation; and storing the bitstream on a non-transitory computer-readable recording medium.

[0394] Clause 93. A non-transitory computer-readable recording medium storing a bitstream of data generated by a method performed by an apparatus for data processing, the method including generating the bitstream using a neural network model, the neural network model having at least one of the following characteristics: a number of channels in a layer of the neural network model is less than a threshold number of channels; the neural network model uses rectified linear units (ReLUs); the number of layers of the neural network model is less than a threshold number of layers; the neural network model uses group convolutions or group transpose convolutions; or a kernel size of the neural network model is less than a threshold kernel size.

[0395] Clause 94. A method of storing a bitstream of data, comprising: generating the bitstream using a neural network model; and storing the bitstream on a non-transitory computer-readable recording medium, wherein the neural network model has at least one of the following characteristics: a number of channels in a layer of the neural network model is less than a threshold number of channels; the neural network model uses rectified linear units (ReLUs); the number of layers of the neural network model is less than a threshold number of layers; the neural network model uses group convolutions or group transpose convolutions; or a kernel size of the neural network model is less than a threshold kernel size.

[0396] Exemplary Devices 14 illustrates a block diagram of a computing device 1400 in which various embodiments of the disclosure may be implemented. The computing device 1400 may be implemented as or included in the source device 110 (or data encoder 114) or the destination device 120 (or data decoder 124).

[0397] It should be understood that the computing device 1400 shown in FIG. 14 is for illustrative purposes only and is not intended to suggest any limitation on the functionality and scope of the embodiments of the present disclosure.

[0398] 14, the computing device 1400 includes a general-purpose computing device 1400. The computing device 1400 may include at least one or more processors or processing units 1410, a memory 1420, a storage unit 1430, one or more communication units 1440, one or more input devices 1450, and one or more output devices 1460.

[0399] In some embodiments, the computing device 1400 may be implemented as any user terminal or server terminal having computing capabilities. The server terminal may be a server provided by a service provider, a large-scale computing device, etc. The user terminal may be, for example, any type of mobile, fixed, or portable terminal, including a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio broadcast receiver, an electronic book device, a gaming device, or any combination thereof, further including accessories and peripherals of these devices, or any combination thereof. It is contemplated that the computing device 1400 may support any type of interface to a user, such as "wearable" circuitry.

[0400] The processing unit 1410 may be a physical or virtual processor and may perform various processes based on programs stored in the memory 1420. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing capabilities of the computing device 1400. The processing unit 1410 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.

[0401] Computing device 1400 typically includes a variety of computer storage media. Such media may be any media accessible by computing device 1400, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 1420 may be volatile memory (e.g., registers, cache, Random Access Memory (RAM)), non-volatile memory (Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), or flash memory, etc.), or any combination thereof. Storage unit 1430 may be any removable or non-removable media, and may include machine-readable media, such as memory, flash memory drives, magnetic disks, or other media that may be used to store information and / or visual data and that are accessible within computing device 1400.

[0402] Computing device 1400 may further include other removable / non-removable, volatile / non-volatile memory media. Although not shown in FIG. 14, it is possible to provide a magnetic disk drive for reading from and / or writing to a removable, non-volatile magnetic disk, and an optical disk drive for reading from and / or writing to a removable, non-volatile optical disk. In such a case, each drive may be connected to a bus (not shown) via one or more data media interfaces.

[0403] The communication unit 1440 communicates with further computing devices via a communication medium. Furthermore, the functionality of the components in the computing device 1400 may be implemented by a single computing cluster or multiple computing machines that can communicate via a communication connection. Thus, the computing device 1400 may operate in a networked environment using logical connections with one or more other servers, networked personal computers (PCs), or even more general network nodes.

[0404] The input device(s) 1450 may be one or more of a variety of input devices such as a mouse, a keyboard, a tracking ball, a voice input device, etc. The output device(s) 1460 may be one or more of a variety of output devices such as a display, a speaker, a printer, etc. The communication unit 1440 allows the computing device 1400 to further communicate with one or more external devices (not shown), such as a storage device and a display device, with one or more devices that allow a user to interact with the computing device 1400, or with any device (such as a network card, a modem, etc.) that allows the computing device 1400 to communicate with one or more other computing devices as needed. Such communication may occur via an input / output (I / O) interface (not shown).

[0405] In some embodiments, instead of being integrated into a single device, some or all of the components of computing device 1400 may be located in a cloud computing architecture. In a cloud computing architecture, the components may be provided remotely and may cooperate to implement the functionality described in this disclosure. In some embodiments, cloud computing provides computing, software, data access, and storage services without the end user needing to be aware of the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services over a wide area network (such as the Internet) using appropriate protocols. For example, a cloud computing provider provides applications accessible through a web browser or other computing components over the wide area network. The software or components of the cloud computing architecture and corresponding data may be stored on a server located in a remote location. The computing resources of the cloud computing environment may be consolidated or distributed at locations in a remote data center. The cloud computing infrastructure may act as a single access point for users, but provide services through a shared data center. Thus, a cloud computing architecture may be used to provide the components and functionality described herein from a remote service provider. Alternatively, they may be provided from a traditional server or installed directly or otherwise on a client device.

[0406] The computing device 1400 may be used to perform visual data encoding / decoding in embodiments of the present disclosure. The memory 1420 may include one or more visual data encoding modules 1425 having one or more program instructions. These modules are accessible and executable by the processing unit 1410 to perform the functions of the various embodiments described herein.

[0407] In an example embodiment performing visual data encoding, the input device 1450 may receive visual data as input 1470 to be encoded. The visual data may be processed, for example, by the visual data encoding module 1425 to generate an encoded bitstream. The encoded bitstream may be provided as output 1480 via the output device 1460.

[0408] In an example embodiment performing visual data decoding, input device 1450 may receive an encoded bitstream as input 1470. The encoded bitstream may be processed, for example, by visual data encoding module 1425 to generate decoded visual data. The decoded visual data may be provided as output 1480 via output device 1460.

[0409] Although the present disclosure has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present application as defined by the appended claims. Such variations are intended to be covered by the scope of the present application. Thus, the foregoing description of the embodiments of the present application is not intended to be limiting.

Claims

1. performing a quantization process on a dataset including at least one of input visual data of a neural network model used in the conversion or parameters of the neural network model for conversion between visual data and a bitstream of the visual data; performing the transformation based on the quantization process; and 16. A method for visual data processing, comprising:

2. The performing of the quantization process includes: The method of claim 1 , comprising obtaining a fixed-point representation of the data set by performing the quantization process on a floating-point representation of the data set.

3. The parameters of the neural network model are: A first parameter associated with a convolutional layer or a transposed convolutional layer of the neural network model; or a second parameter related to an activation metric of the neural network model; The method according to claim 1 or 2, comprising at least one of the following:

4. The method of claim 3 , wherein the data set includes the input visual data and the first parameters, and does not include the second parameters that are floating point.

5. The method according to claim 3 or 4, wherein the first parameters include weights of the convolutional layer or the transposed convolutional layer of the neural network model.

6. The method of claim 5 , wherein the first parameters do not include biases of the floating point convolution layer or the transposed convolution layer.

7. The method of claim 3 , wherein the first parameters include weights and biases of the convolutional layer or the transposed convolutional layer of the neural network model.

8. The method of any one of claims 1 to 7, wherein the neural network model comprises a recurrent neural network.

9. The performing of the quantization process includes: determining at least one threshold value for the data set; determining a fixed-point representation of the data set by performing the quantization process based on the at least one threshold; The method according to any one of claims 1 to 8, comprising:

10. The at least one threshold value is a first threshold value of the value or absolute value of the input visual data of the neural network model; or a second threshold value or absolute value of the weights of the neural network model; The method of claim 9 , comprising at least one of:

11. Determining the at least one threshold value comprises:

11. The method of claim 9 or 10, comprising determining the at least one threshold based on a maximum number of bits used in fixed-point arithmetic and a shape of a convolutional layer or a transposed convolutional layer of the neural network model.

12. The at least one threshold is determined based on a first metric as follows: V×W=2 B-1 / (M×N×K H ×K W ) where V represents a first one of the at least one thresholds for the input visual data of the neural network model, W represents a second one of the at least one thresholds for the weights of the neural network model, B represents the maximum number of bits, M represents the number of input channels of the neural network model, N represents the number of output channels of the neural network model, and K H represents the kernel height of the neural network model, and K W The method of claim 11 , wherein: denotes a width of the kernel.

13. The first and second thresholds may further include: determining a ratio between the first threshold and the second threshold based on a statistical average of the input visual data; determining the first and second thresholds based on the ratio and the first metric; The method of claim 12, wherein the

14. The first and second threshold values ​​are [0010] The method of claim 12, wherein the

15. The at least one threshold is determined based on a second metric as follows: log 2 V+log 2 W=B-ceil(log 2 (M×N×K H ×K W ))-1 where V represents a first one of the at least one thresholds for the input visual data of the neural network model, W represents a second one of the at least one thresholds for the weights of the neural network model, B represents the maximum number of bits, M represents the number of input channels of the neural network model, N represents the number of output channels of the neural network model, and K H represents the kernel height of the neural network model, and K W The method of claim 11 , wherein: denotes a width of the kernel, and ceil() denotes a ceiling metric.

16. The first and second thresholds may further include: determining a ratio between the first threshold and the second threshold based on a statistical average of the input visual data; determining the first and second thresholds based on the ratio and the second metric; The method of claim 15, wherein the value is determined by

17. The first and second threshold values ​​are [0025] 16. The method of claim 15, wherein the step is determined using, / / represents an integer division operation.

18. Determining the at least one threshold value comprises: A method according to any one of claims 9 to 17, comprising determining a plurality of thresholds for weights of a plurality of layers of the neural network model.

19. Determining the at least one threshold value comprises: determining a minimum threshold value of the plurality of threshold values; determining the minimum threshold as a threshold for weights of the layers of the neural network model; 20. The method of claim 18, comprising:

20. The performing of the quantization process includes: A method according to any one of claims 9 to 19, comprising determining a fixed-point representation of the data set by clipping the data set based on the at least one threshold.

21. Determining the fixed point representation of the data set comprises:

21. The method of claim 20, comprising determining the fixed-point representation of the input visual data for the neural network model by clipping the input visual data based on a maximum number of bits.

22. The maximum number of bits is log 2 V bits, where V represents a first one of the at least one threshold for the input visual data; 22. The method of claim 21, wherein the input visual data is clipped to be in one of a first range from zero to V-1 or a second range from -V / 2 to V / 2-1.

23. Determining the fixed point representation of the data set comprises:

21. The method of claim 20, comprising determining the fixed-point representation of the weights of the neural network model by clipping weights based on a maximum number of bits.

24. The maximum number of bits is log 2 W bits, where W represents a second one of the at least one threshold for the weight; 24. The method of claim 23, wherein the weights are clipped to be in one of a third range from zero to W-1 or a fourth range from W / 2 to W / 2-1.

25. Determining the at least one threshold value comprises:

11. The method of claim 9 or 10, comprising determining the at least one threshold based on a maximum absolute value of data during a convolution operation of the neural network model.

26. The at least one threshold is determined based on a third metric as follows: V×W=2 B-1 / Max c where V represents a first threshold of the at least one threshold for the input visual data of the neural network model, W represents a second threshold of the at least one threshold for the weight of the neural network model, B represents a maximum number of bits used in fixed-point arithmetic of the neural network model, and Max c 26. The method of claim 25, wherein: represents the maximum absolute value during the convolution operation.

27. The first and second thresholds may further include: determining a ratio between the first threshold and the second threshold based on a statistical average of the input visual data; determining the first and second thresholds based on the ratio and the third metric; 27. The method of claim 26, wherein the value is determined by:

28. The first and second thresholds are V=W=2 B-2 / Max c 28. The method of claim 27, wherein the

29. The at least one threshold is determined based on a fourth metric as follows: V×W=2 B-1 11. The method of claim 9 or 10, wherein V represents a first one of the at least one threshold for the input visual data of the neural network model, W represents a second one of the at least one threshold for the weights of the neural network model, and B represents a maximum number of bits used in fixed-point arithmetic of the neural network model.

30. The first and second thresholds may further include: determining a ratio between the first threshold and the second threshold based on a statistical average of the input visual data; determining the first and second thresholds based on the ratio and the fourth metric; 30. The method of claim 29, wherein the

31. The at least one threshold is determined based on a fifth metric as follows: log 2 V+log 2 W=B-1 11. The method of claim 9 or 10, wherein V represents a first one of the at least one threshold for the input visual data of the neural network model, W represents a second one of the at least one threshold for the weights of the neural network model, and B represents a maximum number of bits used in fixed-point arithmetic of the neural network model.

32. The first and second thresholds may further include: determining a ratio between the first threshold and the second threshold based on a statistical average of the input visual data; determining the first and second thresholds based on the ratio and the fifth metric; The method of claim 31 , wherein the

33. The first and second thresholds are V=W=2 (B-1)//2 32. The method of claim 29 or 31, wherein:

34. performing a scaling operation on a dataset including at least one of input visual data of a neural network model used in the conversion, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model, for conversion between visual data and a bitstream of the visual data; performing the conversion based on the scaling process; and 16. A method for visual data processing, comprising:

35. The method of claim 34 , wherein the parameters of the neural network model include weights of the neural network model.

36. 36. The method of claim 34 or 35, wherein the transformation comprises an end-to-end image or video encoding process.

37. A method according to any one of claims 34 to 36, wherein the scaling operation is performed before or after a quantization operation.

38. The performing of the scaling process includes: performing said scaling operation on said input visual data of said neural network model; performing said scaling operation on weights of said neural network model; The method according to any one of claims 34 to 37, wherein the method further comprises performing a rescaling operation on the output visual data of the neural network model.

39. A method according to any one of claims 34 to 38, wherein at least one of a scaling operation or a quantization operation is applied to the neural network model.

40. The performing of the scaling process includes: performing said scaling operation on said input visual data of said neural network model; 40. The method of claim 39, further comprising performing a rescaling operation on the output visual data of the neural network model.

41. A method according to any one of claims 34 to 38, wherein at least one of the scaling and quantization operations is applied to each layer of the neural network model.

42. 42. The method of claim 41, further comprising performing a rescaling process on the output visual data of each layer of the neural network model.

43. The performing of the scaling process includes: performing the scaling process on input visual data of a convolutional layer or a transposed convolutional layer of the neural network model; The method according to any one of claims 34 to 38, wherein the method further comprises performing a rescaling operation on output visual data of an activation layer of the neural network model.

44. 44. The method of claim 34, further comprising determining at least one scaling coefficient of the scaling operation applied to at least one weight of at least one convolutional layer or transposed convolutional layer of the neural network model based on a maximum absolute value of the at least one weight.

45. The at least one scaling factor is determined based on the following metric: s w =2 W//w Here, s w 45. The method of claim 44, wherein: represents the scaling factor; W represents a threshold value for the at least one weight; w represents the maximum absolute value for the at least one weight; and / / represents an integer division operation.

46. 45. The method of claim 44, wherein the at least one scaling factor comprises a plurality of scaling factors for a plurality of channels of the neural network model, and a convolution kernel or a transposed convolution kernel of a channel of the plurality of channels is associated with a respective scaling factor of the plurality of scaling factors.

47. The at least one scaling factor is determined based on the following metric: s wi =2 Wi//wi Here, s wi represents a scaling factor of the at least one convolution kernel or transposed convolution kernel associated with the i-th channel of the neural network model, where i is an integer, and W i represents a threshold value of the at least one weight of the at least one convolution kernel or transposed convolution kernel associated with the i-th channel; w i 47. The method of claim 46, wherein: / / denotes an integer division operation.

48. performing a rescaling operation on the output visual data of the neural network model; adding biases of a convolutional layer or a transposed convolutional layer of the neural network model to the rescaled output visual data without quantizing the biases; The method of any one of claims 34 to 47, further comprising:

49. The method according to any one of claims 34 to 47, further comprising performing a quantization process on biases of a convolutional layer or a transposed convolutional layer of the neural network model based on a scaling factor, the scaling factor being applied to weights of the convolutional layer or the transposed convolutional layer.

50. determining value change information for a reference data set, the value change information indicative of a change in the reference data set within the neural network model; determining a scaling factor for the scaling process to be applied to the input visual data of the neural network model based on the value change information; The method of any one of claims 34 to 49, further comprising:

51. 51. The method of claim 50, wherein the number of samples in the reference data set is less than a threshold number.

52. The value change information comprises a maximum absolute value of the input visual data, and the scaling factor is determined using the formula: s d =V / v Here, s d 52. A method according to claim 50 or 51, wherein V represents the scaling factor, V represents a threshold value of the input visual data, and v represents the maximum absolute value of the input visual data.

53. 51. The method of claim 50, wherein the number of samples in the reference data set is equal to or greater than a threshold number.

54. Obtaining a plurality of reference data sets; determining a plurality of value change information of the plurality of reference data sets within the neural network model; determining a plurality of scaling coefficients for a scaling process for a plurality of visual data sets based on the plurality of value change information; The method of any one of claims 34 to 49, further comprising:

55. 55. The method of claim 54, further comprising including a scaling factor flag in the bitstream, the scaling factor flag indicating one of the plurality of scaling factors to be applied in the scaling process.

56. 55. The method of claim 54, further comprising selecting a scaling factor from the plurality of scaling factors to be applied in the scaling process based on additional model or latent information of the neural network model.

57. At least one weight C of a convolutional layer or a transposed convolutional layer of the neural network model is scaled and quantized based on the following formula: [0030] Here, C i represents a group of convolution kernel weights associated with the i-th channel of the neural network model, where i is an integer, and s wi represents a scaling factor for the group of convolution kernel weights associated with the i-th channel, (Outside 1) 【number】 The method of any one of claims 34 to 56, wherein denotes a group of quantized weights and round() denotes a rounding operation.

58. The input visual data of the neural network model is scaled and quantized according to the following formula: [0045] where D represents the input visual data, and s d represents the scaling factor, (Outside 2) 【number】 The method of any one of claims 34 to 57, wherein: denotes the quantized input visual data, and round() denotes a rounding operation.

59. The method of any one of claims 34 to 58, further comprising performing a clipping operation on the scaled input visual data.

60. The clipping operation is [0050] One of the Where: (Outer 3) 【number】 represents the scaled input visual data, V represents a threshold for the input visual data, (outer 4) 【number】 60. The method of claim 59, wherein A represents the scaled input visual data after clipping, and clip(A,B,C) represents a clipping operation to clamp elements in A to the range from B to C.

61. The method of any one of claims 34 to 60, further comprising performing an inverse quantization process by rescaling output visual data of a quantized layer of the neural network model.

62. The output visual data is rescaled using the formula: [006] where O represents the output visual data of the convolution layer or transposed convolution layer of the neural network model, and s w represents a scaling factor for the weights of the convolution layer or the transposed convolution layer, and s d represents a scaling factor for the input visual data of the neural network model; (outside 5) 【number】 62. The method of claim 61 , wherein: x represents the rescaled output visual data.

63. The output visual data is rescaled using the formula: [0070] where O represents the output visual data of the activation layer of the neural network model, and s d represents a scaling factor for the input visual data of the neural network model; (outer 6) 【number】 62. The method of claim 61 , wherein: x represents the rescaled output visual data.

64. A method according to any one of claims 34 to 63, further comprising determining a scaling factor for said scaling process based on a maximum value of visual data during an encoding process.

65. 65. The method of claim 64, wherein the scaling factor is independent of the visual data.

66. including scaling factor information for the determined scaling factor in the bitstream; and determining further scaling factors for use in a decoding process based on the scaling factor information; 66. The method of claim 64 or 65, further comprising:

67. Determining the further scaling factor comprises:

66. A method according to claim 64 or 65, comprising determining further scaling factors for use in the decoding process based on latent information of the neural network model.

68. The method of any one of claims 34 to 67, wherein the neural network model comprises a recurrent neural network.

69. using a neural network model to perform a conversion between visual data and a bitstream of said visual data; The neural network model is the number of channels of the layer of the neural network model is less than a threshold number of channels; the neural network model uses rectified linear units (ReLUs); the number of layers of the neural network model is smaller than a threshold number of layers; the neural network model uses group convolutions or group transposed convolutions; or the kernel size of the neural network model is smaller than a threshold kernel size; 13. A method for visual data processing, comprising at least one of the following features:

70. 70. The method of claim 69, wherein the kernel of the neural network model is divided into multiple kernels having kernel sizes smaller than the threshold kernel size.

71. 71. The method of claim 69 or 70, wherein the neural network model is used in trained image and video compression.

72. A method according to any one of claims 69 to 71, wherein the neural network model is used for entropy coding during the transformation.

73. A method according to any one of claims 69 to 72, wherein the neural network model is used in the analysis and synthesis part of the transformation.

74. A method according to any one of claims 69 to 73, wherein the neural network model is used in combination with further coding tools.

75. 75. The method of claim 74, wherein the further encoding tool comprises at least one of an image compression tool, a video compression tool, or a neural network tool.

76. The neural network model is A neural network based transformation module during said transformation; a neural network-based prediction module during said transformation; or an in-loop filter during said transformation; The method according to any one of claims 69 to 75, wherein at least one of

77. The method of any one of claims 1 to 76, further comprising including in the bitstream information regarding learning-based coding during the transform.

78. A method according to any preceding claim, further comprising determining information relating to learning-based coding by a decoder associated with said transform.

79. 80. A method according to claim 77 or 78, wherein the information relates to a quantisation or scaling operation for the transformation.

80. A method according to any one of claims 76 to 79, wherein the information is included at one of a sequence level, a picture level, a slice level or a block level.

81. The information is A scaling factor for a scaling process for said transformation; a first threshold of the input visual data of the neural network model; or a second threshold value for the weights of the neural network model; The method according to any one of claims 76 to 80, comprising at least one of the following:

82. The method according to any one of claims 1 to 81, wherein the process of using learning-based coding for the transformation depends on coding information.

83. 83. The method of claim 82, wherein the processing includes at least one of a quantization process or a scaling process.

84. 84. The method of claim 82 or 83, wherein the coding information comprises at least one of a color format, a color component, a picture dimension, a slice dimension, a block dimension or an indication within the bitstream.

85. A method according to any preceding claim, wherein the transforming comprises encoding the visual data into the bitstream.

86. A method according to any preceding claim, wherein the converting comprises decoding the visual data from the bitstream.

87. Apparatus for data processing comprising a processor and a non-transitory memory having instructions thereon, the instructions, when executed by the processor, causing the processor to perform a method according to any one of claims 1 to 86.

88. A non-transitory computer readable storage medium storing instructions that cause a processor to perform the method of any one of claims 1 to 86.

89. A non-transitory computer-readable recording medium storing a bitstream of data generated by a method executed by an apparatus for data processing, the method comprising: performing a quantization process on a dataset comprising at least one of input visual data of a neural network model used to generate the bitstream, or parameters of the neural network model; generating the bitstream based on the quantization process; A non-transitory computer-readable recording medium comprising:

90. 1. A method for storing a bitstream of data, comprising the steps of: performing a quantization process on a dataset comprising at least one of input visual data of a neural network model used to generate the bitstream, or parameters of the neural network model; generating the bitstream based on the quantization process; storing the bitstream on a non-transitory computer readable recording medium; 23. A method for storing a bitstream of data, comprising:

91. A non-transitory computer-readable recording medium storing a bitstream of data generated by a method executed by an apparatus for data processing, the method comprising: performing a scaling operation on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model; generating the bitstream based on the scaling process; A non-transitory computer-readable recording medium comprising:

92. 1. A method for storing a bitstream of data, comprising the steps of: performing a scaling operation on a dataset including at least one of input visual data of a neural network model used to generate the bitstream, parameters of the neural network model, intermediate visual data of the neural network model, or output visual data of the neural network model; generating the bitstream based on the scaling process; storing the bitstream on a non-transitory computer readable recording medium; 23. A method for storing a bitstream of data, comprising:

93. A non-transitory computer-readable recording medium storing a bitstream of data generated by a method executed by an apparatus for data processing, the method comprising: generating said bitstream using a neural network model; The neural network model is the number of channels of the layer of the neural network model is less than a threshold number of channels; the neural network model uses rectified linear units (ReLUs); the number of layers of the neural network model is smaller than a threshold number of layers; the neural network model uses group convolutions or group transposed convolutions; or the kernel size of the neural network model is smaller than a threshold kernel size; A non-transitory computer readable storage medium having at least one of the following characteristics.

94. 1. A method for storing a bitstream of data, comprising the steps of: generating said bitstream using a neural network model; storing the bitstream on a non-transitory computer-readable recording medium; The neural network model is the number of channels of the layer of the neural network model is less than a threshold number of channels; the neural network model uses rectified linear units (ReLUs); the number of layers of the neural network model is smaller than a threshold number of layers; the neural network model uses group convolutions or group transposed convolutions; or the kernel size of the neural network model is smaller than a threshold kernel size; 1. A method for storing a bitstream of data, the method having at least one of the following characteristics: