WO2025242587A1 - Method and data processing system for lossy image or video encoding, transmission and decoding - Google Patents
Method and data processing system for lossy image or video encoding, transmission and decodingInfo
- Publication number
- WO2025242587A1 WO2025242587A1 PCT/EP2025/063653 EP2025063653W WO2025242587A1 WO 2025242587 A1 WO2025242587 A1 WO 2025242587A1 EP 2025063653 W EP2025063653 W EP 2025063653W WO 2025242587 A1 WO2025242587 A1 WO 2025242587A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- target
- neural network
- image
- input image
- compression rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/096—Transfer learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
Definitions
- This invention relates to a method and system for lossy image or video encoding, transmission and decoding, a method, apparatus, computer program and computer readable storage medium for lossy image or video encoding and transmission, and a method, apparatus, computer program and computer readable storage medium for lossy image or video receipt and decoding.
- the compression of image and video content can be lossless or lossy compression.
- lossless compression the image or video is compressed such that all of the original information in the content can be recovered on decompression.
- lossless compression there is a limit to the reduction in data quantity that can be achieved.
- lossy compression some information is lost from the image or video during the compression process.
- Known compression techniques attempt to minimise the apparent loss of information by the removal of information that results in changes to the decompressed image or video that is not particularly noticeable to the human visual system.
- JPEG, JPEG2000, AVC, HEVC and AVI are examples of compression processes for image and/or video files.
- known lossy image compression techniques use the spatial correlations between pixels in images to remove redundant information during compression.
- inter-frame redundancy One technique using inter-frame redundancy that is widely used in standard video compression algorithms involves the categorization of video frames into three types: I-frames, P-frames, and B-frames.
- I-frames or intra-coded frames, serve as the foundation of the video sequence. These frames are self-contained, each one encoding a complete image without reference to any other frame. In terms of compression, I-frames are least compressed among all frame types, thus carrying the most data. However, their independence provides several benefits, including being the starting point for decompression and enabling random access, crucial for functionalities like fast-forwarding or rewinding the video.
- P-frames, or predictive frames utilize temporal redundancy in video sequences to achieve greater compression.
- a P-frame represents the difference between itself and the closest preceding I- or P-frame.
- the process known as motion compensation, identifies and encodes only the changes that have occurred, thereby significantly reducing the amount of data transmitted. Nonetheless, P-frames are dependent on previous frames for decoding. Consequently, any error during the encoding or transmission process may propagate to subsequent frames, impacting the overall video quality.
- B-frames or bidirectionally predictive frames, represent the highest level of compression. Unlike P-frames, B-frames use both the preceding and following frames as references in their encoding process.
- B-frames By predicting motion both forwards and backwards in time, B-frames encode only the differences that cannot be accurately anticipated from the previous and next frames, leading to substantial data reduction. Although this bidirectional prediction makes B-frames more complex to generate and decode, it does not propagate decoding errors since they are not used as references for other frames.
- Artificial intelligence (AI) based compression techniques achieve compression and decompression of images and videos through the use of trained neural networks in the compression and decompression process. Typically, during training of the neutral networks, the difference between the original image and video and the compressed and decompressed image and video is analyzed and the parameters of the neural networks are modified to reduce this difference while minimizing the data required to transmit the content.
- AI based compression methods may achieve poor compression results in terms of the appearance of the compressed image or video or the amount of information required to be transmitted.
- An example of an AI based image compression process comprising a hyper-network is described in Ballé, Johannes, et al. “Variational image compression with a scale hyperprior.” arXiv preprint arXiv:1802.01436 (2016), which is hereby incorporated by reference.
- An example of an AI based video compression approach is shown in Agustsson, E., Minnen, D., Johnston, N., Balle, J., Hwang, S. J., and Toderici, G. (2020), Scale-space flow for end-to-end optimized video compression.
- a method of training one or more neural networks comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image; u pdating the parameters of the first neural network and the second neural network based on the evaluated function; and repeating the above steps using a first set of input images to produce a first trained neural network and a second trained neural network; wherein the method comprises regularising a term of the function using one or more regularisation parameters based on a target compression rate and/or a target distortion amount.
- said regularising comprises: updating the one or more regularisation parameters using a difference between a target distortion amount and an observed distortion amount indicative of a difference between the input image and the output image.
- said regularising comprises, after a number of said steps: updating the target distortion amount using a difference between a target compression rate and an observed compression rate.
- said observed compression rate is obtained from encoding one or more images of a second set of input images using the first neural network.
- said regularising comprises: updating the regularisation parameter using a difference between a target compression rate and an observed compression rate of the input image after said encoding.
- said regularising comprises, after a number of said steps: updating the target compression rate using a difference between a target distortion amount and an observed distortion amount indicative of a difference between the input image and the output image.
- using the difference between the target distortion amount and the observed distortion amount comprises: applying a proportional–integral control loop function to the target distortion amount and the observed distortion amount, whereby the target distortion amount comprises a set point variable of the proportional–integral control loop function and the observed distortion amount comprises a process variable of the proportional-integral control loop.
- using the difference between the target compression rate and the observed target compression rate comprises: applying a proportional–integral control loop function to the target compression rate and the observed compression rate, whereby the target compression rate comprises a set point variable of the proportional–integral control loop function and the observed compression rate comprises a process variable of the proportional-integral control loop.
- said regularising comprises, after a number of said steps: updating the target distortion amount or target compression rate using a difference between an observed metric and a target metric associated with the first neural network or second neural network.
- the observed compression rate is estimated by encoding one or more images of a second set of input images using the first neural network, and estimating a compression rate of the one or more images after said encoding.
- the observed compression rate is estimated by encoding one or more images of a plurality of sets of input images using the first neural network, and estimating a compression rate of the one or more images after said encoding.
- said controlling by the first proportional-integral controller comprises updating ⁇ and wherein said controlling by the second proportional-integral controller comprises updating the target distortion amount.
- updating the target distortion amount by the second proportional-integral control loop is performed less frequently than the updating of ⁇ .
- mapping an output of the second proportional-integral control loop to a target distortion amount comprises a maximum value and a minimum value, and wherein the method comprises: mapping the maximum value and the minimum value to a maximum target distortion amount and a minimum target distortion amount; and interpolating intermediate target distortion amounts from the maximum target distortion amount and the minimum target distortion amount.
- the method comprises updating the set point of the first proportional-integral control loop using one of the intermediate target distortion amounts.
- method of training one or more neural networks comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image; u pdating the parameters of the first neural network and the second neural network based on the evaluated function; and repeating the above steps using a first set of input images to produce a first trained neural network and a second trained neural network; wherein the method comprises regularising a term of the function using one or more regularisation parameters based on a first target training metric; and updating the first target training metric based on a second target training metric.
- the first target training metric comprises a target distortion amount
- the second target training metric comprises a target compression rate
- the second target training metric comprises a plurality of target compression rates
- the one or more regularisation parameters comprises a plurality of values, each value associated with a different target compression rate
- the second target training metric comprises a plurality of target compression rates
- the one or more regularisation parameters comprises a plurality of values, each value associated with a different image of the first set of input images.
- the first set of input images comprises an I-frame and one or more P- and/or B-frames
- the second target training metric comprises a plurality of target compression rates
- the one or more regularisation parameters comprises a plurality of values, each value associated with an I-frame, a P-frame or a B-frame.
- a method for lossy image or video encoding, transmission and decoding comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; t ransmitting the latent representation to a second computer system; decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the first neural network and the second neural network are trained according to any of the above methods.
- a method for lossy image or video encoding and transmission comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; and transmitting the latent representation; wherein the first neural network is trained according to any of the above methods.
- a method for lossy image or video receipt and decoding comprising the steps of: receiving a latent representation transmitted by a first computer system at a second computer system, the latent representation corresponding to an input image; and decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the second neural network is trained according to any of the above methods.
- a data processing system configured to perform the method of any one of the above methods.
- a data processing apparatus configured to perform any one of the above methods
- a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out any one of the above methods.
- a computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out any one of the above methods.
- a method of training one or more neural networks comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image and based on a difference between an observed compression rate and a target compression rate of the input image, the target compression rate sampled from a range of target compression rates; u pdating the parameters of the first neural network and the second neural network based on the evaluated function; repeating, using a set of input images, the receiving, encoding, decoding, evaluating and updating steps a first number of times; changing the range of target compression rates; and repeating, using the set of input images, the
- changing the range of target compression rates comprises increasing a maximum of the range and lowering a minimum of the range.
- the method comprises sampling the target compression rate from a distribution of target compression rates in the range of target compression rates.
- the method comprises biasing said sampling towards an upper end and/or lower end of the distribution of target compression rates.
- said biasing is performed after changing the range of target compression rates.
- the method comprises regularising a term of the function using one or more regularisation parameters based on the target compression rate and/or a target distortion amount indicative of the difference between the output image and the input image.
- the method comprises updating the one or more regularisation parameters using a difference between an observed distortion amount and the target distortion amount.
- the method comprises updating the target distortion amount using the difference between the observed compression rate and the target compression rate.
- said changing the range of target compression rates is based on the difference between the observed compression rate and a target compression rate.
- the method comprises performing said changing the range of target compression rates when the difference between the observed compression rate and the target compression rate falls below a threshold for a predetermined number of consecutive training steps.
- changing the range of target compression rates comprises increasing a maximum of the range from 3 Mbps to 6 Mbps, and lowering a minimum of the range from 1 Mbps to 0.1 Mbps.
- the method further comprises: encoding the input image using a third neural network to produce a latent representation; decoding the latent representation using a fourth neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image and based on a difference between an observed compression rate and a target compression rate of the input image, the target compression rate sampled from a second range of target compression rates; updating the parameters of the third neural network and the fourth neural network based on the evaluated function; repeating, using a set of input images, the receiving, encoding, decoding, evaluating and updating steps a first number of times; changing the second range of target compression rates; repeating, using the set of input images, the receiving, encoding, decoding, evaluating and updating steps a second number of times to produce a third trained neural network and a fourth trained neural network; using the first and second trained neural networks to perform lossy video compression at a first level of an adaptive bitrate ladder;
- a method for lossy image or video encoding, transmission and decoding comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; t ransmitting the latent representation to a second computer system; decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the first neural network and the second neural network are trained according to any of the above methods.
- a method for lossy image or video encoding and transmission comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; and transmitting the latent representation; wherein the first neural network is trained according to any of the above methods.
- a method for lossy image or video receipt and decoding comprising the steps of: receiving a latent representation transmitted by a first computer system at a second computer system, the latent representation corresponding to an input image; and decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the second neural network is trained according to any of the above methods.
- a data processing system configured to perform the method of any one of the above methods.
- a data processing apparatus configured to perform any one of the above methods
- a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out any one of the above methods.
- a computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out any one of the above methods.
- Figure 2 illustrates a further example of an image or video compression, transmission and decompression pipeline including a hyper-network.
- Figure 3 illustrates an example of a video compression, transmission and decompression pipeline.
- Figure 4 illustrates an example of a video compression, transmission and decompression system.
- Figure 5 illustrates an example of a control loop implementation for use with training a video compression, transmission and decompression system.
- Figure 6 illustrates an example distortion against rate curve.
- Figure 7 illustrates an example distortion against rate curve.
- Figure 8 illustrates an example of a control loop implementation for use with training a video compression, transmission and decompression system.
- DETAILED DESCRIPTION OF THE DRAWINGS Compression processes may be applied to any form of information to reduce the amount of data, or file size, required to store that information.
- Image and video information is an example of information that may be compressed.
- the file size required to store the information, particularly during a compression process when referring to the compressed file, may be referred to as the rate.
- compression can be lossless or lossy. In both forms of compression, the file size is reduced. However, in lossless compression, no information is lost when the information is compressed and subsequently decompressed. This means that the original file storing the information is fully reconstructed during the decompression process. In contrast to this, in lossy compression information may be lost in the compression and decompression process and the reconstructed file may differ from the original file.
- Image and video files containing image and video data are common targets for compression. In a compression process involving an image, the input image may be represented as ⁇ .
- the distortion function may comprise a trained neural network.
- the rate and distortion of a lossy compression process are related. An increase in the rate may result in a decrease in the distortion, and a decrease in the rate may result in an increase in the distortion. Changes to the distortion may affect the rate in a corresponding manner.
- a relation between these quantities for a given compression technique may be defined by a rate-distortion equation.
- AI based compression processes may involve the use of neural networks.
- a neural network is an operation that can be performed on an input to produce an output.
- a neural network may be made up of a plurality of layers.
- the first layer of the network receives the input.
- One or more operations may be performed on the input by the layer to produce an output of the first layer.
- the output of the first layer is then passed to the next layer of the network which may perform one or more operations in a similar way.
- the output of the final layer is the output of the neural network.
- Each layer of the neural network may be divided into nodes.
- Each node may receive at least part of the input from the previous layer and provide an output to one or more nodes in a subsequent layer.
- Each node of a layer may perform the one or more operations of the layer on at least part of the input to the layer. For example, a node may receive an input from one or more nodes of the previous layer.
- the one or more operations may include a convolution, a weight, a bias and an activation function.
- Convolution operations are used in convolutional neural networks. When a convolution operation is present, the convolution may be performed across the entire input to a layer. Alternatively, the convolution may be performed on at least part of the input to the layer.
- Each of the one or more operations is defined by one or more parameters that are associated with each operation.
- the weight operation may be defined by a weight matrix defining the weight to be applied to each input from each node in the previous layer to each node in the present layer.
- each of the values in the weight matrix is a parameter of the neural network.
- the convolution may be defined by a convolution matrix, also known as a kernel.
- one or more of the values in the convolution matrix may be a parameter of the neural network.
- the activation function may also be defined by values which may be parameters of the neural network.
- the parameters of the network may be varied during training of the network.
- Other features of the neural network may be predetermined and therefore not varied during training of the network. For example, the number of layers of the network, the number of nodes of the network, the one or more operations performed in each layer and the connections between the layers may be predetermined and therefore fixed before the training process takes place. These features that are predetermined may be referred to as the hyperparameters of the network. These features are sometimes referred to as the architecture of the network.
- a training set of inputs may be used for which the expected output, sometimes referred to as the ground truth, is known.
- the initial parameters of the neural network are randomized and the first training input is provided to the network.
- the output of the network is compared to the expected output, and based on a difference between the output and the expected output the parameters of the network are varied such that the difference between the output of the network and the expected output is reduced.
- This process is then repeated for a plurality of training inputs to train the network.
- the difference between the output of the network and the expected output may be defined by a loss function.
- the result of the loss function may be calculated using the difference between the output of the network and the expected output to determine the gradient of the loss function.
- Back-propagation of the gradient descent of the loss function may be used to update the parameters of the neural network using the gradients ⁇ / ⁇ of the loss function.
- a plurality of neural networks in a system may be trained simultaneously through back-propagation of the gradient of the loss function to each network.
- this type of system where simultaneous training with back-propagation through each element or the whole network architecture may be referred to as end-to-end, learned image or video compression.
- an end-to-end learned system learns itself during training what combination of parameters best achieves the goal of minimising the loss function.
- training means the process of optimizing an artificial intelligence or machine learning model, based on a given set of data. This involves iteratively adjusting the parameters of the model to minimize the discrepancy between the model’s predictions and the actual data, represented by the above-described rate-distortion loss function.
- the training process may comprise multiple epochs. An epoch refers to one complete pass of the entire training dataset through the machine learning algorithm.
- the model’s parameters are updated in an effort to minimize the loss function. It is envisaged that multiple epochs may be used to train a model, with the exact number depending on various factors including the complexity of the model and the diversity of the training data.
- the training data may be divided into smaller subsets known as batches.
- the size of a batch referred to as the batch size, may influence the training process.
- a smaller batch size can lead to more frequent updates to the model’s parameters, potentially leading to faster convergence to the optimal solution, but at the cost of increased computational resources.
- a larger batch size involves fewer updates, which can be more computationally efficient but might converge slower or even fail to converge to the optimal solution.
- the learnable parameters are updated by a specified amount each time, determined by the learning rate.
- the learning rate is a hyperparameter that decides how much the parameters are adjusted during the training process. A smaller learning rate implies smaller steps in the parameter space and a potentially more accurate solution, but it may require more epochs to reach that solution. On the other hand, a larger learning rate can expedite the training process but may risk overshooting the optimal solution or causing the training process to diverge.
- the training described herein may involve use of a validation set, which is a portion of the data not used in the initial training, which is used to evaluate the model’s performance and to prevent overfitting. Overfitting occurs when a model learns the training data too well, to the point that it fails to generalize to unseen data.
- Regularization techniques such as dropout or L1/L2 regularization, can also be used to mitigate overfitting.
- training a machine learning model is an iterative process that may comprise selection and tuning of various parameters and hyperparameters.
- the specific details, such as hyper parameters and so on, of the training process may vary and it is envisaged that producing a trained model in this way may achieved in a number of different ways with different epochs, batch sizes, learning rates, regularisations, and so on, the details of which are not essential to enabling the advantages and effects of the present disclosure, except where stated otherwise.
- an “untrained” neural network is considered be “trained” is envisaged to be case specific and depend on, for example, on a number of epochs, a plateauing of any further learning, or some other metric and is not considered to be essential in achieving the advantages described herein. More details of an end-to-end, learned compression process will now be described. It will be appreciated that in some cases, end-to-end, learned compression processes may be combined with one or more components that are handcrafted or trained separately. In the case of AI based image or video compression, the loss function may be defined by the rate distortion equation.
- ⁇ may be referred to as a lagrange multiplier.
- the langrange multiplier provides as weight for a particular term of the loss function in relation to each other term and can be used to control which terms of the loss function are favoured when training the network.
- a training set of input images may be used.
- An example training set of input images is the KODAK image set (for example at www.cs.albany.edu/ xypan/research/snr/Kodak.html).
- An example training set of input images is the IMAX image set.
- An example training set of input images is the Imagenet dataset (for example at www.image-net.org/download).
- An example training set of input images is the CLIC Training Dataset P (“professional”) and M (“mobile”) (for example at http://challenge.compression.cc/tasks/).
- An example of an AI based compression, transmission and decompression process 100 is shown in Figure 1.
- an input image 5 is provided.
- the input image 5 is provided to a trained neural network 110 characterized by a function ⁇ acting as an encoder.
- the encoder neural network 110 produces an output based on the input image. This output is referred to as a latent representation of the input image 5.
- the latent representation is quantised in a quantisation process 140 characterised by the operation ⁇ , resulting in a quantized latent.
- the quantisation process transforms the continuous latent representation into a discrete quantized latent.
- An example of a quantization process is a rounding function.
- the quantized latent is entropy encoded in an entropy encoding process 150 to produce a bitstream 130.
- the entropy encoding process may be for example, range or arithmetic encoding.
- the bitstream 130 may be transmitted across a communication network.
- the bitstream is entropy decoded in an entropy decoding process 160.
- the quantized latent is provided to another trained neural network 120 characterized by a function ⁇ acting as a decoder, which decodes the quantized latent.
- the trained neural network 120 produces an output based on the quantized latent.
- the output may be the output image of the AI based compression process 100.
- the encoder-decoder system may be referred to as an autoencoder.
- Entropy encoding processes such as range or arithmetic encoding are typically able to losslessly compress given input data up to close to the fundamental entropy limit of that data, as determined by the total entropy of the distribution of that data.
- one way in which end-to-end, learned compression can minimise the rate loss term of the rate-distortion loss function and thereby increase compression effectiveness is to learn autoencoder parameter values that produce low entropy latent representation distributions.
- Producing latent representations distributed with as low an entropy as possible allows entropy encoding to compress the latent distributions as close to or to the fundamental entropy limit for that distribution. The lower the entropy of the distribution, the more entropy encoding can losslessly compress it and the lower the amount of data in the corresponding bitstream.
- this learning may comprise learning optimal location and scale parameters of the gaussian or Laplacian distributions, in other cases, it allows the learning of more flexible latent representation distributions which can further help to achieve the minimising of the rate-distortion loss function in ways that are not intuitive or possible to do with handcrafted features. Examples of these and other advantages are described in WO2021/220008A1, which is incorporated in its entirety by reference. Something which is closely linked to the entropy encoding of the latent distribution and which accordingly also has an effect on the effectiveness of compression of end-to-end learned approaches is the quantisation step.
- a rounding function may be used to quantise a latent representation distribution into bins of given sizes, a rounding function is not differentiable everywhere. Rather, a rounding function is effectively one or more step functions whose gradient is either zero (at the top of the steps) or infinity (at the boundary between steps). Back propagating a gradient of a loss function through a rounding function is challenging. Instead, during training, quantisation by rounding function is replaced by one or more other approaches. For example, the functions of a noise quantisation model are differentiable everywhere and accordingly do allow backpropagation of the gradient of the loss function through the quantisation parts of the end-to-end, learned system.
- a straight-through estimator (STE) quantisation model or one other quantisation models may be used. It is also envisaged that different quantisation models may be used for during evaluation of different term of the loss function. For example, noise quantisation may used to evaluate the rate or entropy loss term of the rate-distortion loss function while STE quantisation may be used to evaluate the distortion term.
- noise quantisation may be used to evaluate the rate or entropy loss term of the rate-distortion loss function
- STE quantisation may be used to evaluate the distortion term.
- end-to-end learning of the quantisation process achieves a similar effect. That is, learnable quantisation parameters provide the architecture with a further degree of freedom to achieve the goal of minimising the loss function.
- parameters corresponding to quantisation bin sizes may be learned which is likely to result in an improved rate-distortion loss outcome compared to approaches using hand-crafted quantisation bin sizes.
- rate-distortion loss function constantly has to balance a rate loss term against a distortion loss term, it has been found that the more degrees of freedom the system has during training, the better the architecture is at achieving optimal rate and distortion trade off.
- the system described above may be distributed across multiple locations and/or devices.
- the encoder 110 may be located on a device such as a laptop computer, desktop computer, smart phone or server.
- the decoder 120 may be located on a separate device which may be referred to as a recipient device.
- the system used to encode, transmit and decode the input image 5 to obtain the output image 6 may be referred to as a compression pipeline.
- the AI based compression process may further comprise a hyper-network 105 for the transmission of meta-information that improves the compression process.
- the hyper-network 105 comprises a trained neural network 115 acting as a hyper-encoder ⁇ h ⁇ and a trained neural network 125 acting as a hyper-decoder ⁇ h ⁇ .
- An example of such a is shown in Figure 2. Components of the system not further discussed may be assumed to be the same as discussed above.
- the neural network 115 acting as a hyper-decoder receives the latent that is the output of the encoder 110.
- the hyper-encoder 115 produces an output based on the latent representation that may be referred to as a hyper-latent representation.
- the hyper-latent is then quantized in a quantization process 145 characterised by ⁇ h to produce a quantized hyper-latent.
- the quantization process 145 characterised by ⁇ h may be the same as the quantisation process 140 characterised by ⁇ discussed above.
- the quantized hyper-latent is then entropy encoded in an entropy encoding process 155 to produce a bitstream 135.
- the bitstream 135 may be entropy decoded in an entropy decoding process 165 to retrieve the quantized hyper-latent.
- the quantized hyper-latent is then used as an input to trained neural network 125 acting as a hyper-decoder.
- the output of the hyper-decoder may not be an approximation of the input to the hyper-decoder 115.
- the output of the hyper-decoder is used to provide parameters for use in the entropy encoding process 150 and entropy decoding process 160 in the main compression process 100.
- the output of the hyper-decoder 125 can include one or more of the mean, standard deviation, variance or any other parameter used to describe a probability model for the entropy encoding process 150 and entropy decoding process 160 of the latent representation.
- the residual value may be determined by subtracting the mean value of the distribution of latents or hyper-latents from each latent or hyper latent.
- the residual values may also be normalised.
- a training set of input images may be used as described above.
- the parameters of both the encoder 110 and the decoder 120 may be simultaneously updated in each training step.
- the parameters of both the hyper-encoder 115 and the hyper-decoder 125 may additionally be simultaneously updated in each training step.
- the training process may further include a generative adversarial network (GAN).
- GAN generative adversarial network
- an additional neutral network acting as a discriminator is included in the system.
- the discriminator receives an input and outputs a score based on the input providing an indication of whether the discriminator considers the input to be ground truth or fake.
- the indicator may be a score, with a high score associated with a ground truth input and a low score associated with a fake input.
- a loss function is used that maximizes the difference in the output indication between an input ground truth and input fake.
- the output image 6 may be provided to the discriminator.
- the output of the discriminator may then be used in the loss function of the compression process as a measure of the distortion of the compression process.
- the discriminator may receive both the input image 5 and the output image 6 and the difference in output indication may then be used in the loss function of the compression process as a measure of the distortion of the compression process.
- Training of the neural network acting as a discriminator and the other neutral networks in the compression process may be performed simultaneously.
- the discriminator neural network is removed from the system and the output of the compression pipeline is the output image 6. Incorporation of a GAN into the training process may cause the decoder 120 to perform hallucination.
- Hallucination is the process of adding information in the output image 6 that was not present in the input image 5.
- hallucination may add fine detail to the output image 6 that was not present in the input image 5 or received by the decoder 120.
- the hallucination performed may be based on information in the quantized latent received by decoder 120. Details of a video compression process will now be described. As discussed above, a video is made up of a series of images arranged in sequential order. AI based compression process 100 described above may be applied multiple times to perform compression, transmission and decompression of a video. For example, each frame of the video may be compressed, transmitted and decompressed individually. The received frames may then be grouped to obtain the original video.
- the frames in a video may be labelled based on the information from other frames that is used to decode the frame in a video compression, transmission and decompression process.
- frames which are decoded using no information from other frames may be referred to as I-frames.
- Frames which are decoded using information from past frames may be referred to as P-frames.
- Frames which are decoded using information from past frames and future frames may be referred to as B-frames.
- Frames may not be encoded and/or decoded in the order that they appear in the video. For example, a frame at a later time step in the video may be decoded before a frame at an earlier time.
- the images represented by each frame of a video may be related.
- a number of frames in a video may show the same scene.
- a number of different parts of the scene may be shown in more than one of the frames.
- objects or people in a scene may be shown in more than one of the frames.
- the background of the scene may also be shown in more than one of the frames. If an object or the perspective is in motion in the video, the position of the object or background in one frame may change relative to the position of the object or background in another frame.
- the transformation of a part of the image from a first position in a first frame to a second position in a second frame may be referred to as flow, warping or motion compensation.
- the flow may be represented by a vector.
- One or more flows that represent the transformation of at least part of one frame to another frame may be referred to as a flow map.
- An example AI based video compression, transmission, and decompression process 200 is shown in Figure 3.
- the process 200 shown in Figure 3 is divided into an I-frame part 201 for decompressing I-frames, and a P-frame part 202 for decompressing P-frames. It will be understood that these divisions into different parts are arbitrary and the process 200 may be also be considered as a single, end-to-end pipeline.
- I-frames do not rely on information from other frames so the I-frame part 201 corresponds to the compression, transmission, and decompression process illustrated in Figures 1 or 2.
- an input image ⁇ 0 is passed into an encoder neural network 203 producing a latent representation which is quantised and entropy encoded into a bitstream 204.
- the bitstream 204 is then entropy decoded and passed into a decoder neural network 205 to reproduce a reconstructed image ⁇ 0 which in this case is an I-frame.
- the decoding step may be performed both locally at the same location as where the input image compression occurs as well as at the location where the decompression occurs. This allows the reconstructed image ⁇ 0 to be available for later use by components of both the encoding and decoding sides of the pipeline.
- P-frames (and B-frames) do rely on information from other frames. Accordingly, the P-frame part 202 at the encoding side of the pipeline takes as input not only the input image ⁇ that is to be compressed (corresponding to a frame of a video stream at position t), but also one or more previously reconstructed images ⁇ 1 from an earlier frame t-1.
- the flow module part 206 comprises an autoencoder such as that of the autoencoder systems of Figures 1 and 2 but where the encoder neural network 207 has been trained to produce a latent representation of a flow map from inputs ⁇ 1 and ⁇ , which is indicative of inter-frame movement of pixels or pixel groups between ⁇ 1 and ⁇ .
- the latent representation of the flow map is quantised and entropy encoded to compress it and then transmitted as a bitstream 208.
- the bitstream is entropy decoded and passed to a decoder neural network 209 to produce a reconstructed flow map ⁇ .
- the reconstructed flow map ⁇ is applied to the previously reconstructed image ⁇ 1 to generate a warped image ⁇ 1, ⁇ .
- the warped image ⁇ 1, ⁇ is a prediction of how the previously reconstructed image ⁇ 1 might have changed between frame positions t-1 and t, based on the output flow map produced by the flow module part 206 autoencoder system from the inputs of ⁇ and ⁇ 1.
- the reconstructed flow map ⁇ and corresponding warped image ⁇ 1, ⁇ may be produced both on the encode side and the decode side of the pipeline so they are available for use by other components of the pipeline on both the encode and decode sides.
- both the image being compressed ⁇ and the ⁇ 1, ⁇ are passed into a residual module part 210 of the pipeline.
- the residual map ⁇ is applied (e.g. combined by addition, subtraction or a different operation) to the warped image to produce a reconstructed image ⁇ which is a reconstruction of image ⁇ and accordingly corresponds to a P-frame at position t in a sequence of frames of a video stream. It will be appreciated that the reconstructed image ⁇ can then be used to process the next frame. That is, it can be used to compress, transmit and decompress ⁇ +1, and so on until an entire video stream or chunk of a video stream has been processed.
- the residual autoencoder may be trained to reconstruct the frame ⁇ directly from the entropy decoded bitstream by removing the connection between ⁇ 1, ⁇ and the output of the residual block 210, thereby eliminating any direct combination step with the warped previously decoded image to speed up inference.
- the flow information is intuitively understood to be indirectly captured within the residual information, which the residual decoder is able to learn to use to directly reconstruct the output image ⁇ .
- the residual autoencoder may be trained to reconstruct the frame ⁇ directly from the entropy decoded bitstream in combination with some representation of flow injected into one or more layers of the residual decoder.
- the bitstream may also contain hyper and hyper-hyper parameters, their latent quantised, entropy encoded latent representations and so on, of those networks as applicable.
- the above approach may generally also be extended to B-frames, for example as is described in Pourreza, R., and Cohen, T. (2021). Extending neural p-frame codecs for b-frame coding. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 6680-6689).
- the above-described flow and residual based approach is highly effective at reducing the amount of data that needs to be transmitted because, as long as at least one reconstructed frame (e.g.
- FIG. 4 shows an example of an AI image or video compression process such as that described above in connection with Figures 1-3 implemented in a video streaming system 400.
- the system 400 comprises a first device 401 and a second device 402.
- the first and second devices 401, 402 may be user devices such as smartphones, tablets, AR/VR headsets or other portable devices.
- the system 400 of Figure 4 performs inference on a CPU of the first and second devices respectively.
- the CPU of first and second devices 401, 402 may comprise a Qualcomm Snapdragon CPU.
- the first device 401 comprises a media capture device 403, such as a camera, arranged to capture a plurality of images, referred to hereafter as a video stream 404, of a scene 404.
- the video stream 404 is passed to a pre-processing module 406 which splits the video stream into blocks of frames, various frames of which will be designated as I-frames, P-frames, and/or B-frames.
- the blocks of frames are then compressed by an AI-compression module 407 comprising the encode side of the AI-based video compression pipeline of Figure 3.
- the output of the AI-compression module is accordingly a bitstream 408a which is transmitted from the first device 401, for example via a communications channel, for example over one or more of a WiFi, 3G, 4G or 5G channel, which may comprise internet or cloud-based 409 communications.
- the second device 402 receives the communicated bitstream 408b which is passed to an AI-decompression module 410 comprising the decode side of the AI-based video compression pipeline of Figure 3.
- the output of the AI-decompression module 402 is the reconstructed I-frames, P-frames and/or B-frames which are passed to a post-processing module 411 where they can prepared, for example passed into a buffer, in preparation for streaming 412 to and rendering on a display device 413 of the second device 402.
- a post-processing module 411 where they can prepared, for example passed into a buffer, in preparation for streaming 412 to and rendering on a display device 413 of the second device 402.
- the system 400 of Figure 4 may be used for live video streaming at 30fps of a 1080p video stream, which means a cumulative latency of both the encode and decode side is below substantially 50ms, for example substantially 30ms or less. Achieving this level of runtime performance with only CPU compute on user devices presents challenges which are not addressed by known methods and systems or in the wider AI-compression literature.
- execution of different parts of the compression pipeline during inference may be optimized by adjusting the order in which operations are performed using one or more known CPU scheduling methods.
- Efficient scheduling can allow for operations to be performed in parallel, thereby reducing the total execution time.
- efficient management of memory resources may be implemented, including optimising caching methods such as storing frequently-accessed data in faster memory locations, and memory reuse, which minimizes memory allocation and deallocation operations.
- L ⁇ ( ⁇ ) + ⁇ ( ⁇ , ⁇ )
- ⁇ is the one or more regularisation parameters
- ⁇ ( ⁇ , ⁇ ) is a distortion loss term based on an observed difference between the input image ⁇ and the output image ⁇
- ⁇ ( ⁇ ) is a rate loss term based on an observed compression rate of the input image ⁇ after encoding has been performed, for example the compression rate may be determined by a length of a bitstream, a bits per pixel rate or any other compression metric, each of which is indicative of how small a file size an input image or images has been compressed to.
- the regularisation parameter ⁇ may be a scalar, however as inputs to the AI-based compression pipelines are typically in the form of tensors (e.g. images having height and width dimensions, and one or more channel dimensions), and because the inputs may be associated with different frame types of a sequence (e.g. an I-frame and/or a P- or B-frame), the regularisation parameter ⁇ may instead comprise a plurality of values such that a different value of ⁇ may be applied depending on the inputs on which the loss is based at any given training step.
- the regularisation parameter ⁇ may be a matrix or tensor or other data structure which can facilitate this.
- GOP group of pictures
- a known type of control loop is a proportional-integral controller.
- Proportional-integral controllers force the system it is being applied to to correct errors or differences between a target and an observed value of a process variable based on both the current value of the error and the accumulation of past errors, providing a balance between rapid response (due to the proportional action) and elimination of residual offset (due to the integral action).
- a generalisation of a proportional-integral controller is a proportional-integral-derivative controller which also takes into account a derivative of the error. Whilst we refer generally to a proportional-integral controller herein. The same concepts may be applied and implemented equally well with a proportional-integral-derivative controller.
- the present inventors have found that applying a proportional-integral controller (or indeed a proportional-integral-derivative controller) to a rate-distortion loss function during training of an AI-based compression pipeline, and specifically to the value or values of the regularisation parameter ⁇ allows for fine-level control and tuning of the neural networks during training to force them to converge to weights that produce a target compression rate (or distortion rate) as applicable.
- the PI or indeed PID controller may comprise an optimizer-based controller. That is, e(t) value may be passed through an optimiser, e.g. an Adam optimiser, SGD optimiser or some other optimiser, before the value of ⁇ is updated.
- an optimiser e.g. an Adam optimiser, SGD optimiser or some other optimiser
- the control loop adjusts the regularisation parameter(s) ⁇ such that, for the next training step, the optimiser function after backpropagation will adjust the weights to focus more on improving image reconstruction accuracy over compression rates. This process is repeated for the next training step, and next training step, and so on.
- the distortion value ⁇ (e.g. an MSE value) between an input image ⁇ and an output image ⁇ is measured and compared to a target MSE value ⁇ to produce an error.
- the cumulative error (i.e. the integral) is updated based on the calculated error, and the error and cumulative error are scaled by ⁇ and ⁇ respectively to calculate a control signal value ⁇ ( ⁇ ) for that training step ⁇ .
- the control signal value ⁇ ( ⁇ ) is then applied to ⁇ e.g. by multiplication or some other operation to modify the values of ⁇ for the next training step, thereby modifying the regularisation in the loss function and changing how emphasis of rate versus distortion in the next training step ⁇ + ⁇ .
- ⁇ may comprise a plurality of values.
- ⁇ ⁇ ⁇ ⁇ ( ⁇ , ⁇ ⁇ , ⁇ , ⁇ ⁇ ) W hereby ⁇ ⁇ may be considered some data structure such as a tensor or matrix or array such as: 0 1 ⁇ ⁇ ⁇ ⁇ ⁇ 1 ⁇ 00 ⁇ 01 ⁇ ⁇ ⁇ ⁇ 0, ⁇ 1 ⁇ 10 ⁇ 11 ⁇ ⁇ ⁇ ⁇ 1, ⁇ 1 .. . . . ... . . . ⁇ 1,0 ⁇ 1,1 ⁇ ⁇ ⁇ ⁇ 1, ⁇ 1
- each of the individual values of ⁇ ⁇ may be updated by the control signal ⁇ ( ⁇ ) produced by the control loop.
- the target MSE ⁇ and observed MSE ⁇ may be calculated respectively for each target compression rate T (index ⁇ ), as well as for each frame index or frame type of a sequence of frames (index ⁇ ).
- T target compression rate
- index ⁇ frame index or frame type of a sequence of frames
- ⁇ may take the following form: 0 1 ⁇ ⁇ ⁇ ⁇ ⁇ 1 ⁇ 00 ⁇ 01 ⁇ ⁇ ⁇ ⁇ 0, ⁇ 1 P-frame ⁇ 10 ⁇ 11 ⁇ ⁇ ⁇ ⁇ 1, ⁇ 1 B-frame ⁇ 20 ⁇ 21 ⁇ ⁇ ⁇ ⁇ 2, ⁇ 1
- the weights are then updated by an optimiser function and we then apply the control loop to update the array of ⁇ values for the next training step.
- our regularisation adapts according to the output of the control loop, which in turn is based on how close or how far the observed MSE is from the target MSE.
- the control loop defined above is based solely on the target distortion amount (e.g. a target MSE value). Setting the target distortion amount ( ⁇ , ⁇ ⁇ )is a non-trivial problem.
- the control loop will cause the neural network’s weights to converge to some values that can output images with our desired, target distortion amounts (e.g. a predetermined MSE value) but we have no control over what rate at which the network compresses so as to achieve the target distortion.
- target distortion amounts e.g. a predetermined MSE value
- a low distortion amount may correspond to a small amount of compression (referred to hereinafter as a "high" compression rate or “low” compression ratio) whereby a high quality image reconstruction uses more bits
- a high distortion amount may correspond to a higher amount of compression (referred to hereinafter as a “low” compression rate or “high” compression ratio) whereby a low quality image reconstruction uses fewer bits
- the exact compression rates can vary significantly and are very difficult to guess solely from setting a target distortion amount.
- the present disclosure introduces a second control loop.
- this second control loop does not target the rate or distortion loss by direct control of ⁇ . Instead, it indirectly influences ⁇ by controlling the the target distortion amounts ( ⁇ , ⁇ ⁇ ) used inside of the first control loop.
- the first control loop can be considered a regularisation controller
- the second control loop can be considered a meta-parameter controller that updates the set point of the first control loop.
- this second control loop is directly tied to the target compression rates, as will be described below. This second control loop thus introduces the (indirect) link between the values of ⁇ and the target compression rates.
- the control loop function ⁇ may have the same form as the first control loop ⁇ described above.
- ⁇ may comprise a PI controller or some other control loop function.
- ⁇ 0... ⁇ may be parameters spline system or parameters to a radial basis function approximation on the space of all MSE targets.
- the mapping may be done explicitly by hard-coding the mapping manually, or by associating the meta-parameter associated with the lowest bitrate target ⁇ 0 with the highest MSE target ⁇ 0, ⁇ , and the highest bitrate target ⁇ with the lowest MSE target ⁇ , ⁇ , and then interpolating where the intermediate target bitrates would have corresponding highest and lowest MSE targets.
- This interpolation may be performed by a predefined interpolation function.
- the highest and lowest MSE target values may be determined a priori either experimentally, or by setting values that are close to maximum and minimum values that AI-based compression pipelines are able to achieve in the wider literature.
- the distortion term in the above-described loss functions may be some distortion ⁇ 1 while the regularisation term ⁇ that regularises the distortion ⁇ 1 may itself be based on a different distortion ⁇ 2 based on distortion target ⁇ by way of operation of the controllers as described above.
- the spacing between the MSE targets may be some distortion ⁇ 1 while the regularisation term ⁇ that regularises the distortion ⁇ 1 may itself be based on a different distortion ⁇ 2 based on distortion target ⁇ by way of operation of the controllers as described above.
- the association of metaparameters and MSE targets on the dataset being used by the controllers to estimate bitrate (referred to hereinafter as a holdout dataset and described in more detail below) is structured so there’s an abstraction between the metaparameters ⁇ 0, ... ⁇ and the MSE targets ⁇ 0, ... ⁇ .
- a suitable model for the rate-distortion function for example a linear model or a hyperbolic model or some other parameterised model
- the inter-level spacing of the holdout dataset bitrates can be controlled directly by appropriately setting the spacing of the MSE targets.
- the model is having a challenging time learning a low-bitrate level structure with a log-linear spacing model, then this can be switched to linear after some number of training steps or responsive to some trigger, and vice versa, to try to improve the model’s ability to learn a given bitrate level structure.
- a typical highest MSE score may be e.g. 110 (a unitless value) and a typical lowest MSE score may be e.g.
- the observed bitrate values ⁇ , ⁇ are calculated from a validation dataset that is separate from and not contaminated with either the training dataset or any other validation dataset used during training. This validation dataset is referred to above as a holdout dataset.
- the target bitrate values ⁇ , ⁇ may correspond to some user-specified bitrates that may correspond to a the bitrates of a desired bitrate ladder or some other user-determined values and may be set manually by the user, for example in a config file. Described below is an example training schedule implementing the above steps: First, we initialise ⁇ ⁇ , ⁇ , ⁇ ⁇ , and ⁇ with starting values, interpolate ⁇ to the ⁇ , ⁇ ⁇ values, and example a set of 24 video each comprising a number of frames.
- the meta parameters may be updated more frequently, for example every 4-5 steps, but that the forward pass is not run on the entire holdout dataset, but only on one randomly selected video sequence.
- This approach results in more continuous control of the meta parameters and can reduce the compute bottleneck of running a large number of forward passes at once if the second control loop is only run after a larger number of steps e.g. 250.
- This approach may be facilitated by an Adam optimiser or other optimiser to produce an effect akin to amortisation of the updates over several iterations whereby the momentum helps to smooth the noise inherent to single-sample updates.
- the above training schedule numbers of steps are exemplary only and other numbers of steps are also envisaged.
- Figure 5 illustratively shows an implementation 500 of the use of first and second control loops to control regularisation of the rate distortion loss function when training the neural networks of an AI-based compression pipeline.
- the regularisation parameter ⁇ ⁇ is illustrated as an array 501 of different values for different compression rate levels T-1 and frame indices across a sequence of frames from 0 to G-1. As described above, these values are updated by a controller 502, for example a PI controller that uses a target distortion amount (e.g. MSE score or some other distortion metric) as a set point and an observed distortion amount as the process variable.
- the target distortion amounts 503, e.g. MSE targets are linked by a mapping 504 to a set of meta parameters 505.
- the values of the meta parameters 505 are set by a meta controller 506 which, as with the controller 502 may be a PI controller that uses a target compression rate as a set point and an observed compression rate on some validation data set as a process variable.
- the first control loop 502 and the second control loop 506 may be incorporated into existing training code or software through a targeting interface 507 that is able to access, for example, the holdout data set and other parameters and values generated during training, such as observed MSE scores and so on.
- the above approaches to loss function regularisation using first and second control loops may be generalised to more than just the use of the distortion amount and compression rate as training metrics on which the control loops operate.
- One example may be, for example, using a flow metric (e.g. an average flow amount output by the flow module in Figure 3).
- a control loop that uses a difference between a target flow and an observed flow amount may be estimated in a PI controller to either directly regularise the flow loss term using ⁇ or some other regularisation parameter, or to indirectly control one or more of these regularisation parameters using the same meta controller approach as described above.
- controllers may be used to achieve automated smoothness (Lipschitz) control over one or more discriminators present in an adversarial training setup.
- Rate range widening A bitrate ladder is a set of different video quality levels, each defined by a specific combination of resolution and bitrate, that is used in adaptive streaming.
- a bitrate ladder includes multiple tiers, with each step representing a different combination of resolution (e.g., 144p, 360p, 720p, 1080p, etc.) and bitrate (e.g. measured in kilobits per second, kbps, or megabits per second, Mbps). For instance, in a bitrate ladder, a lower tier might offer 360p resolution at 500 kbps, while a higher tier might offer 1080p resolution at 5 Mbps.
- Adaptive bitrate streaming (ABR) algorithms use this ladder to seamlessly switch between these levels based on the user’s internet bandwidth and device capabilities.
- Bitrate ladders in traditional compression accordingly rely on different encoding an input video stream using different encoder and/or decoder settings to achieve some desired set of steps on the bitrate ladder.
- a plurality of sets of networks of the pipeline (each set being "a model") may be trained, where each set of networks may converge towards being operationally effective at a given bitrate range, for example 0.1-1 Mbps, 1-3 Mbps, 3-6Mbps, 6+ Mbps and so on.
- the plurality of models may be brought and used together in the same way that encoding and decoding using different settings is used to create a bitrate ladder in traditional compression.
- the networks of AI-based compression pipelines struggle to generalise to wide bitrate ranges but have no difficulty on narrow bitrate ranges. Accordingly, one approach may be to train a plurality of said performant narrow bitrate range models and to construct a bitrate ladder form them, accepting the undesirable consequence that there may be burdensome memory and power limitations that prevent deployment of the pipeline on resource constrained devices. Alternatively, a solution to this problem may be found which allowing a single model to perform effectively across a wide bitrate range, and facilitating deployment of AI-based compression pipelines on resource constrained devices. The present concept is directed to such a solution.
- FIG. 6 illustrates a toy example distortion against rate curve 600 (in this case a Video Multimethod Assessment Fusion VMAF score) against rate in Mbps of three separately trained models 601, 502, 603.
- each model comprises the networks of an AI-based compression pipeline, such as that of Figure 3, trained by using a narrow range of rate distortion trade offs (e.g. a different regularisation parameters ⁇ in the rate distortion loss function is selected for each step or steps of training, for example as described above in connection with regularisation controllers).
- a narrow range of rate distortion trade offs e.g. a different regularisation parameters ⁇ in the rate distortion loss function is selected for each step or steps of training, for example as described above in connection with regularisation controllers.
- a dotted lined 604 which is indicative of an ideal targeted rate distortion relationship or envelope that a given adaptive bitrate streaming algorithm targets. That is, an adaptive bitrate streaming algorithm may switch between the available models based on a given connection speed to stay as close to the dotted line 604 as possible for optimum end user viewing quality of the video stream.
- the first model 601 may be used whenever the available connection speed is 0.1-1 Mbps
- the second model 602 may be used when the available connection speed is 1-3 Mbps
- the third model 603 may be used whenever the available connection speed is 3-6 Mbps.
- this toy example implementation requires three separate models, each having its own networks weights and other parameters and thus significantly increasing the resource footprint needed to run the implementation.
- Figure 7 illustrates a similar toy example distortion against rate curve 700 with an optimal rate distortion trade off line 704 of an arbitrary adaptive bitrate streaming algorithm.
- a single trained model 702 which initially had a 1-3 Mbps effective operational bitrate range has been subject to bitrate range widening 706 to 0.1-6 Mbps resulting in a new model 705 that approximately tracks the ideal adaptive bitrate streaming algorithm envelope 704 from its lowest point to its highest point.
- the widened single model 705 is accordingly able to produce the desired behaviour of an adaptive bitrate streaming alogrithm without the need to rely on multiple underlying models to approximate the ideal distortion rate envelope 704.
- widening the bitrate range of the a given model from an initially trained narrower range results in the effective operational bitrate range that that model is able to work within to be extended.
- a narrow range model on the other hand does not know how to use these lower bitrate or higher bitrate ranges. That is, even if the frame might be more efficiently compressible to even smaller bit rate levels, a narrowly trained model is not able to take advantage of that possibility because of its narrow training.
- One non-limiting, exemplary implementation of the concept of rate range widening may make use of the above-described regularisation controllers methodology. This is illustrated in Figure 8.
- FIG 8 illustratively shows an implementation 800 of the use of first and second control loops to control regularisation of the rate distortion loss function when training the neural networks of an AI-based compression pipeline.
- the regularisation parameter ⁇ ⁇ is illustrated as an array 801 of different values for different compression rate levels T-1 frame indices across a sequence of frames from 0 to G-1. As described above, these values are updated by a controller 802, for example a PI controller that uses a target distortion amount (e.g. MSE score or some other distortion metric) as a set point and an observed distortion amount as the process variable.
- the target distortion amounts 803, e.g. MSE targets are linked by a mapping 804 to a set of meta parameters 805.
- the values of the meta parameters 805 are set by a meta controller 806 which, as with the controller 802 may be a PI controller that uses a target compression rate as a set point and an observed compression rate on some validation data set as a process variable.
- the first control loop 802 and the second control loop 806 may be incorporated into existing training code or software through a targeting interface 807 that is able to access, for example, the holdout data set and other parameters and values generated during training, such as observed MSE scores and so on.
- the above-described process is performed with a first set of MSE targets between ⁇ 0, ⁇ , ⁇ and ⁇ , ⁇ , ⁇ with associated metaparameters ⁇ 0 and ⁇ which will result a model (i.e. AI-based compression pipeline such as that of Figure 3) having some initial bitrate range at which it is able to operate effectively at. For the sake of example, let’s say this initial bitrate range is 1-3 Mbps.
- the minimum and maximum MSE targets become widened 808 to ⁇ ′ , ⁇ ′ by widening the metaparameters ⁇ ′ an ′ 0 , ⁇ , ⁇ ⁇ , ⁇ , ⁇ 0 d ⁇ ⁇ that control where the MSE targets settle.
- the above-described process is repeated but now with the MSE targets settled at wider values through the widening of the metaparameters. This results in a new array of ⁇ ′ ⁇ , ⁇ based on the widened targets.
- the model’s bitrange range is widened. If we consider the toy example, the widened bitrate range may now be 0.1-6 Mbps. Without the narrow bitrate range pretraining, the model weights typically struggle to converge to a performant set of weights. That is, if training is started with a wide set of targets from the beginning, training is substantially unsuccessful and the resulting models do not come close to a desired distortion rate performance of an ideal envelope such as 604 or 704 illustrated in Figures 6 and 7.
- An exemplary implementation of the above steps including pre-training and rate widening is illustrated in the pseudocode in algorithm 2 below.
- the network architecture of ⁇ is defined, for as shown in Figure 3.
- the network parameters ⁇ are randomly initialised and then the training loop is started.
- the total ⁇ will be calculated by combining a term ⁇ and a rate term ⁇ , and any other loss terms (not shown).
- the backwards pass is then performed to compute gradients based on the loss, and the parameters ⁇ are optimised using the optimiser, such as stochastic gradient descent SGD, or some other known optimiser.
- the MSE target range [ ⁇ 0, ⁇ , ⁇ , ⁇ , ⁇ , ⁇ ] is widened by widening the metaparameter target range [ ⁇ 0, ⁇ ] resulting in [ ⁇ ′ ′ 0 , ⁇ , ⁇ , ⁇ ⁇ , ⁇ , ⁇ ] and [ ⁇ ′ 0, ⁇ ′ ⁇ ].
- the above steps are then repeated for the second number of or epochs ⁇ 2.
- This widening of the regularisation controller target ranges has the effect of widening the target compression rate range that the training directed to, effectively increasing the maximum and lowering the minimum of the range of bitrates that the model is trying to hit during training.
- the model As training progresses, the model’s effective bitrate range increases, getting as close to the widened target compression rate range as the training allows it to get.
- a validation loss can be calculated.
- the learning rate, batch size, and or number of epochs may be optimised during training, for example using a learning rate scheduler or some other hyperparameter optimisation method. More generally, the hyperparameters may be optimised experimentally. Note that the first number of training steps or epochs ⁇ 1 (i.e.
- when to extend the rate range during training may be specified in an initial, empirically determined training schedule based on a hyper parameter sweep. Alternatively it may be dynamically determined based on an estimated difference between the observed compression rate and a target compression rate for a training input image in a current training step or in aggregate from a number of previous training steps whereby this difference is indicative of how well the pre-training is progressing. If the difference is still above a threshold, it indicates pre-training at the narrow rate range still has work to do. Once the difference drops below the threshold, pre-training may be considered complete and the rate range can be extended for the second number of training steps. A number of further optional modifications may be made to the above-described methodology to further increase its effectiveness.
- the first of these is controlling the sampling of the target levels in the regularisation controller during the bitrate widening training.
- a single target level ⁇ (0, ..., ⁇ ) will be selected for that forward pass.
- the forward pass might be performed with the MSE target at ⁇ 0
- the next forward pass might be performed with an MSE target at ⁇ 3
- the next forward pass might be performed with an MSE target at ⁇ 1 and so on.
- This approach means the networks are exposed to the different bitrate range targets within between the minimums and the maximums of the MSE target range [ ⁇ 0, ⁇ , ⁇ , ⁇ , ⁇ , ⁇ ] and associated metaparameter target range [ ⁇ 0, ⁇ ].
- MSE target range [ ⁇ 0, ⁇ , ⁇ , ⁇ , ⁇ , ⁇ ⁇ ]
- associated metaparameter target range [ ⁇ 0, ⁇ ].
- the target level sampling can be biased towards the lower target levels comnpared to the highest levels.
- bitrate widening training may focus on lower bitrate ranges to improve overall perfomance compared to uniform target level sampling over the full bitrate range.
- ⁇ and the associated bitrate ranges are illustrative only and it will be appreciated that any number of levels and associated bitrate ranges are envisaged and may be based on, for example, a desired ideal distortion rate curve shape such as those illustrated in Figures 6 and 7.
- a further optional modification to the above-described methods is the introduction of dynamic changing of the regularisation controller targets for a given target compression rate range based on how well (or not well) training is going. For example, consider a static training schedule that trains first with a narrow target compression rate range for a predetermined number of first training steps, then widens the target compression rate range , and then continues training with the widened target compression rate range. It can be difficult to determine how many training steps are appropriate to produce a pre-trained narrow bitrate range model. This exercise may involve a large number of hyper parameter sweeps and other experimentation to determine a suitable training schedule.
- a dynamic target compression rate range method may be introduced that sets the minimum and maximum of the target compression rate range every training step or every plurality of steps based on one or more training metrics estimated during training. For example, the weights before the start of narrow bitrate range training are unlikely to be able to consistently compress the input training videos to the target bitrate ranges as no training has yet occurred.
- the difference between the target compression rate sampled from the narrow target range for that training step and the observed compression rate at this point of training is likely to be very high.
- the networks of the model learn to operate effectivley at the target narrow bitrate range and the difference between the target compression rate and the observed compression rate in each step and in aggregate across training steps (e.g. in a rolling average) drops. This drop is indicative of the model learning to operate effectively at the target bitrate range and indicative that the model may be receptive to bitrate range widening without causing a drop in performance.
- This relationship can be harnessed to dynamically control or adjust the minimum and maximum of the target compression rate range by lowering the minimum and increasing the maximum of the range as the difference between the observed compression rate and the target compression rate drops, while increasing the minimum and lowering the maximum of the range as the difference increases.
- the size of any adjustment may be based on the size of the difference at a given training step or across multiple training steps, for example proportional to the size of the difference.
- This dynamic controlling of the target compression rate range effectively operates as a controller on top of the above-described regularisation controller, dynamically adjusting when the range endpoints to control how fast or slow the bitrate widening part of training occurs. This in turn may reduce the burden of training by removing the number of hyperparameter sweeps performed to determine an optimal training schedule.
- a single model can be subject to bitrate range widening training to cover the entire range of an ideal distortion rate curve.
- bitrate range widening training for very large bitrate ranges, for example from 0.1 Mbps to 10+ Mbps, it may still be challenging to train a single model to operate effectively across the entire range.
- an adaptive bitrate ladder may be constructed using a plurality of models that have each been subject to bitrate range widening training and that together approximately track a desired ideal path in a distortion rate curve such as that of Figure 6 and 7.
- each model comprises its own set of neural networks and is trained separately with different initial compression rate target ranges and different widened compression rate target ranges.
- the two (or more) models may be combined into an adaptive bitrate ladder using any suitable adaptive bitrate algorithm. That is, the first model may be used to perform lossy video compression at a first level of the adaptive bitrate ladder and the second model may be used to perform lossy video compression at a second level of the adaptive bitrate ladder.
- This approach allows even very large bitrate ranges to be covered with relatively fewer models, for example two, three, four, or five models, than would otherwise be possible without using bitrate range widening during training.
- bitrate range widening may be used together with the regularisation controller concept or in a standalone manner wherein bitrate range widening may be performed in a different way. That is, the regularisation controller implementation of bitrate range widening is intended to be illustrative only and other implementations are also envisaged. For example, bitrate range widening may also be implemented using an empirically determined, hard coded regularisation parameter (e.g. ⁇ in a rate distortion loss function) update schedule applied during training. Whilst such an approach is inferior to a regularisation controller implementation, it is provided as an example to illustrate that other ways to implement bitrate range widening are envisaged and viable, and that the regularisation controller implementation provided above is not intended to be limiting.
- regularisation controller implementation e.g. ⁇ in a rate distortion loss function
- the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non transitory program carrier for execution by, or to control the operation of, data processing apparatus.
- the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus.
- the computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.
- the computer storage medium is not, however, a propagated signal.
- data processing apparatus encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
- the apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- the apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
- a computer program (which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program may, but need not, correspond to a file in a file system.
- the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- Computers suitable for the execution of a computer program include, by way of example, can be based on general or special purpose microprocessors or both, or any other kind of central processing unit.
- a central processing unit will receive instructions and data from a read only memory or a random access memory or both.
- the essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- a computer need not have such devices.
- a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a VR headset, a game console, a Global Positioning System (GPS) receiver, a server, a mobile phones, a tablet computer, a notebook computer, a music player, an e-book reader, a laptop or desktop computer, a PDAs, a smart phone, or other stationary or portable devices, that includes one or more processors and computer readable media, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.
- PDA personal digital assistant
- GPS Global Positioning System
- Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks.
- semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
- magnetic disks e.g., internal hard disks or removable disks
- magneto optical disks e.g., CD ROM and DVD-ROM disks.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components.
- the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
- LAN local area network
- WAN wide area network
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. While this specification contains many specific implementation details, these should be construed as descriptions of features that may be specific to particular examples of particular inventions. Certain features that are described in this specification in the context of separate examples can also be implemented in combination in a single example. Conversely, various features that are described in the context of a single example can also be implemented in multiple examples separately or in any suitable sub-combination.
- controller and meta controller are used herein in the singular, it will be appreciated that these may comprise multiple control loops and so accordingly be controllers or meta controllers, each able to control one or more values of the array of ⁇ or ⁇ values individually but together providing the singular controller functionality.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Probability & Statistics with Applications (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
A method of training one or more neural networks, the one or more neural networks being for use in lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image; updating the parameters of the first neural network and the second neural network based on the evaluated function; and wherein the method comprises regularising a term of the function using one or more regularisation parameters based on a target compression rate and/or a target distortion amount.
Description
Method and data processing system for lossy image or video encoding, transmission and decoding BACKGROUND This invention relates to a method and system for lossy image or video encoding, transmission and decoding, a method, apparatus, computer program and computer readable storage medium for lossy image or video encoding and transmission, and a method, apparatus, computer program and computer readable storage medium for lossy image or video receipt and decoding. There is increasing demand from users of communications networks for images and video content. Demand is increasing not just for the number of images viewed, and for the playing time of video; demand is also increasing for higher resolution content. This places increasing demand on communications networks and increases their energy use because of the larger amount of data being transmitted. To reduce the impact of these issues, image and video content is compressed for transmission across the network. The compression of image and video content can be lossless or lossy compression. In lossless compression, the image or video is compressed such that all of the original information in the content can be recovered on decompression. However, when using lossless compression there is a limit to the reduction in data quantity that can be achieved. In lossy compression, some information is lost from the image or video during the compression process. Known compression techniques attempt to minimise the apparent loss of information by the removal of information that results in changes to the decompressed image or video that
is not particularly noticeable to the human visual system. JPEG, JPEG2000, AVC, HEVC and AVI are examples of compression processes for image and/or video files. In general terms, known lossy image compression techniques use the spatial correlations between pixels in images to remove redundant information during compression. For example, in an image of a blue sky, if a given pixel is blue, there is a high likelihood that the neighbouring pixels, and their neighbouring pixels, and so on, are also blue. There is accordingly no need to retain all the raw pixel data. Instead, we can retain only a subset of the pixels which take up fewer bits and infer the pixel values of the other pixels using information derived from spatial correlations. A similar approach is applied in known lossy video compression techniques. That is, spatial correlations between pixels allow the removal of redundant information during compression. However, in video compression, there is further information redundancy in the form of temporal correlations. For example, in a video of an aircraft flying across a blue-sky background, most of the pixels of the blue sky do not change at all between frames of the video. The most of the blue sky pixel data for the frame at position t = 0 in the video is identical to that at position t = 10. Storing this identical, temporally correlated, information is inefficient. Instead, only the blue sky pixel data for a subset of the frames is stored and the rest are inferred from information derived from temporal correlations. In the realm of lossy video compression in particular, the removal of redundant temporally correlated information in a video sequence is known inter-frame redundancy.
One technique using inter-frame redundancy that is widely used in standard video compression algorithms involves the categorization of video frames into three types: I-frames, P-frames, and B-frames. Each frame type carries distinct properties concerning their encoding and decoding process, playing different roles in achieving high compression ratios while maintaining acceptable visual quality. I-frames, or intra-coded frames, serve as the foundation of the video sequence. These frames are self-contained, each one encoding a complete image without reference to any other frame. In terms of compression, I-frames are least compressed among all frame types, thus carrying the most data. However, their independence provides several benefits, including being the starting point for decompression and enabling random access, crucial for functionalities like fast-forwarding or rewinding the video. P-frames, or predictive frames, utilize temporal redundancy in video sequences to achieve greater compression. Instead of encoding an entire image like an I-frame, a P-frame represents the difference between itself and the closest preceding I- or P-frame. The process, known as motion compensation, identifies and encodes only the changes that have occurred, thereby significantly reducing the amount of data transmitted. Nonetheless, P-frames are dependent on previous frames for decoding. Consequently, any error during the encoding or transmission process may propagate to subsequent frames, impacting the overall video quality. B-frames, or bidirectionally predictive frames, represent the highest level of compression. Unlike P-frames, B-frames use both the preceding and following frames as references in their encoding process. By predicting motion both forwards and backwards in time, B-frames
encode only the differences that cannot be accurately anticipated from the previous and next frames, leading to substantial data reduction. Although this bidirectional prediction makes B-frames more complex to generate and decode, it does not propagate decoding errors since they are not used as references for other frames. Artificial intelligence (AI) based compression techniques achieve compression and decompression of images and videos through the use of trained neural networks in the compression and decompression process. Typically, during training of the neutral networks, the difference between the original image and video and the compressed and decompressed image and video is analyzed and the parameters of the neural networks are modified to reduce this difference while minimizing the data required to transmit the content. However, AI based compression methods may achieve poor compression results in terms of the appearance of the compressed image or video or the amount of information required to be transmitted. An example of an AI based image compression process comprising a hyper-network is described in Ballé, Johannes, et al. “Variational image compression with a scale hyperprior.” arXiv preprint arXiv:1802.01436 (2018), which is hereby incorporated by reference. An example of an AI based video compression approach is shown in Agustsson, E., Minnen, D., Johnston, N., Balle, J., Hwang, S. J., and Toderici, G. (2020), Scale-space flow for end-to-end optimized video compression. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 8503-8512), which is hereby incorporated by reference. A further example of an AI based video compression approach is shown in Mentzer, F., Agustsson, E., Ballé, J., Minnen, D., Johnston, N., and Toderici, G. (2022, November). Neural
video compression using gans for detail synthesis and propagation. In Computer Vision–ECCV 2022: 17th European Conference, Tel Aviv, Israel, October 23–27, 2022, Proceedings, Part XXVI (pp. 562-578), which is hereby incorporated by reference. SUMMARY According to an aspect, there is provided a method of training one or more neural networks, the one or more neural networks being for use in lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image; updating the parameters of the first neural network and the second neural network based on the evaluated function; and repeating the above steps using a first set of input images to produce a first trained neural network and a second trained neural network; wherein the method comprises regularising a term of the function using one or more regularisation parameters based on a target compression rate and/or a target distortion amount.
Optionally, said regularising comprises: updating the one or more regularisation parameters using a difference between a target distortion amount and an observed distortion amount indicative of a difference between the input image and the output image. Optionally, said regularising comprises, after a number of said steps: updating the target distortion amount using a difference between a target compression rate and an observed compression rate. Optionally, said observed compression rate is obtained from encoding one or more images of a second set of input images using the first neural network. Optionally, said regularising comprises: updating the regularisation parameter using a difference between a target compression rate and an observed compression rate of the input image after said encoding. Optionally, said regularising comprises, after a number of said steps: updating the target compression rate using a difference between a target distortion amount and an observed distortion amount indicative of a difference between the input image and the output image. Optionally, using the difference between the target distortion amount and the observed distortion amount comprises: applying a proportional–integral control loop function to the target distortion amount
and the observed distortion amount, whereby the target distortion amount comprises a set point variable of the proportional–integral control loop function and the observed distortion amount comprises a process variable of the proportional-integral control loop. Optionally, using the difference between the target compression rate and the observed target compression rate comprises: applying a proportional–integral control loop function to the target compression rate and the observed compression rate, whereby the target compression rate comprises a set point variable of the proportional–integral control loop function and the observed compression rate comprises a process variable of the proportional-integral control loop. Optionally, said regularising comprises, after a number of said steps: updating the target distortion amount or target compression rate using a difference between an observed metric and a target metric associated with the first neural network or second neural network. Optionally, the function is defined by a rate distortion equation L: L = ^^(^^) + ^^^^ (^^, ^^) where ^^ is said one or more regularisation parameters, ^^ (^^, ^^) is a distortion loss term based on an observed difference between the input image ^^ and the output image ^^, and ^^(^^) is a rate loss term based on an observed compression rate of the input image ^^ after said encoding; wherein the method comprises controlling ^^ with a first proportional-integral control loop having a set point comprising a target distortion amount and a process variable comprising an observed distortion amount; and
wherein the method comprises controlling the target distortion amount with a second proportional-integral control loop having a set point comprising a target compression rate and a process variable comprising an observed compression rate. Optionally, the observed compression rate is estimated by encoding one or more images of a second set of input images using the first neural network, and estimating a compression rate of the one or more images after said encoding. Optionally, the observed compression rate is estimated by encoding one or more images of a plurality of sets of input images using the first neural network, and estimating a compression rate of the one or more images after said encoding. Optionally, said controlling by the first proportional-integral controller comprises updating ^^ and wherein said controlling by the second proportional-integral controller comprises updating the target distortion amount. Optionally, updating the target distortion amount by the second proportional-integral control loop is performed less frequently than the updating of ^^. Optionally, mapping an output of the second proportional-integral control loop to a target distortion amount. Optionally, the output of the second proportional-integral control loop comprises a maximum value and a minimum value, and wherein the method comprises: mapping the maximum value and the minimum value to a maximum target distortion
amount and a minimum target distortion amount; and interpolating intermediate target distortion amounts from the maximum target distortion amount and the minimum target distortion amount. Optionally, the method comprises updating the set point of the first proportional-integral control loop using one of the intermediate target distortion amounts. According to an aspect of the present disclosure, there is provided method of training one or more neural networks, the one or more neural networks being for use in lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image; updating the parameters of the first neural network and the second neural network based on the evaluated function; and repeating the above steps using a first set of input images to produce a first trained neural network and a second trained neural network; wherein the method comprises regularising a term of the function using one or more regularisation parameters based on a first target training metric; and updating the first target training metric based on a second target training metric.
Optionally, the first target training metric comprises a target distortion amount, and wherein the second target training metric comprises a target compression rate. Optionally, the second target training metric comprises a plurality of target compression rates, and wherein the one or more regularisation parameters comprises a plurality of values, each value associated with a different target compression rate. Optionally, the second target training metric comprises a plurality of target compression rates, and wherein the one or more regularisation parameters comprises a plurality of values, each value associated with a different image of the first set of input images. Optionally, the first set of input images comprises an I-frame and one or more P- and/or B-frames, wherein the second target training metric comprises a plurality of target compression rates, and wherein the one or more regularisation parameters comprises a plurality of values, each value associated with an I-frame, a P-frame or a B-frame. According to an aspect of the present disclosure, there is provided a method for lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; transmitting the latent representation to a second computer system; decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image;
wherein the first neural network and the second neural network are trained according to any of the above methods. According to an aspect of the present disclosure, there is provided a method for lossy image or video encoding and transmission, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; and transmitting the latent representation; wherein the first neural network is trained according to any of the above methods. According to an aspect of the present disclosure, there is provided a method for lossy image or video receipt and decoding, the method comprising the steps of: receiving a latent representation transmitted by a first computer system at a second computer system, the latent representation corresponding to an input image; and decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the second neural network is trained according to any of the above methods. According to an aspect of the present disclosure, there is provided a data processing system configured to perform the method of any one of the above methods. According to an aspect of the present disclosure, there is provided a data processing apparatus configured to perform any one of the above methods
According to an aspect of the present disclosure, there is provided a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out any one of the above methods. According to an aspect of the present disclosure, there is provided a computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out any one of the above methods. According to an aspect of the present disclosure, there is provided a method of training one or more neural networks, the one or more neural networks being for use in lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image and based on a difference between an observed compression rate and a target compression rate of the input image, the target compression rate sampled from a range of target compression rates; updating the parameters of the first neural network and the second neural network based on the evaluated function; repeating, using a set of input images, the receiving, encoding, decoding, evaluating and updating steps a first number of times;
changing the range of target compression rates; and repeating, using the set of input images, the receiving, encoding, decoding, evaluating and updating steps a second number of times to produce a first trained neural network and a second trained neural network. Optionally, changing the range of target compression rates comprises increasing a maximum of the range and lowering a minimum of the range. Optionally, the method comprises sampling the target compression rate from a distribution of target compression rates in the range of target compression rates. Optionally, the method comprises biasing said sampling towards an upper end and/or lower end of the distribution of target compression rates. Optionally, said biasing is performed after changing the range of target compression rates. Optionally, the method comprises regularising a term of the function using one or more regularisation parameters based on the target compression rate and/or a target distortion amount indicative of the difference between the output image and the input image. Optionally, the method comprises updating the one or more regularisation parameters using a difference between an observed distortion amount and the target distortion amount. Optionally, the method comprises updating the target distortion amount using the difference between the observed compression rate and the target compression rate.
Optionally, said changing the range of target compression rates is based on the difference between the observed compression rate and a target compression rate. Optionally, the method comprises performing said changing the range of target compression rates when the difference between the observed compression rate and the target compression rate falls below a threshold for a predetermined number of consecutive training steps. Optionally, changing the range of target compression rates comprises increasing a maximum of the range from 3 Mbps to 6 Mbps, and lowering a minimum of the range from 1 Mbps to 0.1 Mbps. Optionally, the method further comprises: encoding the input image using a third neural network to produce a latent representation; decoding the latent representation using a fourth neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image and based on a difference between an observed compression rate and a target compression rate of the input image, the target compression rate sampled from a second range of target compression rates; updating the parameters of the third neural network and the fourth neural network based on the evaluated function; repeating, using a set of input images, the receiving, encoding, decoding, evaluating and updating steps a first number of times; changing the second range of target compression rates;
repeating, using the set of input images, the receiving, encoding, decoding, evaluating and updating steps a second number of times to produce a third trained neural network and a fourth trained neural network; using the first and second trained neural networks to perform lossy video compression at a first level of an adaptive bitrate ladder; and using the third and fourth trained neural networks to perform lossy video compression at a second level of the adaptive bitrate ladder. According to an aspect of the present disclosure, there is provided a method for lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; transmitting the latent representation to a second computer system; decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the first neural network and the second neural network are trained according to any of the above methods. According to an aspect of the present disclosure, there is provided a method for lossy image or video encoding and transmission, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent
representation; and transmitting the latent representation; wherein the first neural network is trained according to any of the above methods. According to an aspect of the present disclosure, there is provided a method for lossy image or video receipt and decoding, the method comprising the steps of: receiving a latent representation transmitted by a first computer system at a second computer system, the latent representation corresponding to an input image; and decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the second neural network is trained according to any of the above methods. According to an aspect of the present disclosure, there is provided a data processing system configured to perform the method of any one of the above methods. According to an aspect of the present disclosure, there is provided a data processing apparatus configured to perform any one of the above methods According to an aspect of the present disclosure, there is provided a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out any one of the above methods.
According to an aspect of the present disclosure, there is provided a computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out any one of the above methods. BRIEF DESCRIPTION OF THE DRAWINGS Aspects of the invention will now be described by way of examples, with reference to the following figures in which: Figure 1 illustrates an example of an image or video compression, transmission and decom- pression pipeline. Figure 2 illustrates a further example of an image or video compression, transmission and decompression pipeline including a hyper-network. Figure 3 illustrates an example of a video compression, transmission and decompression pipeline. Figure 4 illustrates an example of a video compression, transmission and decompression system. Figure 5 illustrates an example of a control loop implementation for use with training a video compression, transmission and decompression system. Figure 6 illustrates an example distortion against rate curve.
Figure 7 illustrates an example distortion against rate curve. Figure 8 illustrates an example of a control loop implementation for use with training a video compression, transmission and decompression system. DETAILED DESCRIPTION OF THE DRAWINGS Compression processes may be applied to any form of information to reduce the amount of data, or file size, required to store that information. Image and video information is an example of information that may be compressed. The file size required to store the information, particularly during a compression process when referring to the compressed file, may be referred to as the rate. In general, compression can be lossless or lossy. In both forms of compression, the file size is reduced. However, in lossless compression, no information is lost when the information is compressed and subsequently decompressed. This means that the original file storing the information is fully reconstructed during the decompression process. In contrast to this, in lossy compression information may be lost in the compression and decompression process and the reconstructed file may differ from the original file. Image and video files containing image and video data are common targets for compression. In a compression process involving an image, the input image may be represented as ^^. The data representing the image may be stored in a tensor of dimensions ^^ × ^^ × ^^, where ^^ represents the height of the image, ^^ represents the width of the image and ^^ represents the number of channels of the image. Each ^^ × ^^ data point of the image represents a pixel value of the image at the corresponding location. Each channel ^^ of the image represents a different
component of the image for each pixel which are combined when the image file is displayed by a device. For example, an image file may have 3 channels with the channels representing the red, green and blue component of the image respectively. In this case, the image information is stored in the RGB colour space, which may also be referred to as a model or a format. Other examples of colour spaces or formats include the CMKY and the YCbCr colour models. However, the channels of an image file are not limited to storing colour information and other information may be represented in the channels. As a video may be considered a series of images in sequence, any compression process that may be applied to an image may also be applied to a video. Each image making up a video may be referred to as a frame of the video. The output image may differ from the input image and may be represented by ^^. The difference between the input image and the output image may be referred to as distortion or a difference in image quality. The distortion can be measured using any distortion function which receives the input image and the output image and provides an output which represents the difference between input image and the output image in a numerical way. An example of such a method is using the mean square error (MSE) between the pixels of the input image and the output image, but there are many other ways of measuring distortion, as will be known to the person skilled in the art. The distortion function may comprise a trained neural network. Typically, the rate and distortion of a lossy compression process are related. An increase in the rate may result in a decrease in the distortion, and a decrease in the rate may result in an increase in the distortion. Changes to the distortion may affect the rate in a corresponding
manner. A relation between these quantities for a given compression technique may be defined by a rate-distortion equation. AI based compression processes may involve the use of neural networks. A neural network is an operation that can be performed on an input to produce an output. A neural network may be made up of a plurality of layers. The first layer of the network receives the input. One or more operations may be performed on the input by the layer to produce an output of the first layer. The output of the first layer is then passed to the next layer of the network which may perform one or more operations in a similar way. The output of the final layer is the output of the neural network. Each layer of the neural network may be divided into nodes. Each node may receive at least part of the input from the previous layer and provide an output to one or more nodes in a subsequent layer. Each node of a layer may perform the one or more operations of the layer on at least part of the input to the layer. For example, a node may receive an input from one or more nodes of the previous layer. The one or more operations may include a convolution, a weight, a bias and an activation function. Convolution operations are used in convolutional neural networks. When a convolution operation is present, the convolution may be performed across the entire input to a layer. Alternatively, the convolution may be performed on at least part of the input to the layer. Each of the one or more operations is defined by one or more parameters that are associated with each operation. For example, the weight operation may be defined by a weight matrix defining the weight to be applied to each input from each node in the previous layer to each
node in the present layer. In this example, each of the values in the weight matrix is a parameter of the neural network. The convolution may be defined by a convolution matrix, also known as a kernel. In this example, one or more of the values in the convolution matrix may be a parameter of the neural network. The activation function may also be defined by values which may be parameters of the neural network. The parameters of the network may be varied during training of the network. Other features of the neural network may be predetermined and therefore not varied during training of the network. For example, the number of layers of the network, the number of nodes of the network, the one or more operations performed in each layer and the connections between the layers may be predetermined and therefore fixed before the training process takes place. These features that are predetermined may be referred to as the hyperparameters of the network. These features are sometimes referred to as the architecture of the network. To train the neural network, a training set of inputs may be used for which the expected output, sometimes referred to as the ground truth, is known. The initial parameters of the neural network are randomized and the first training input is provided to the network. The output of the network is compared to the expected output, and based on a difference between the output and the expected output the parameters of the network are varied such that the difference between the output of the network and the expected output is reduced. This process is then repeated for a plurality of training inputs to train the network. The difference between the output of the network and the expected output may be defined by a loss function. The result of the loss function may be calculated using the difference between the output of the network
and the expected output to determine the gradient of the loss function. Back-propagation of the gradient descent of the loss function may be used to update the parameters of the neural network using the gradients ^^^^/^^^^ of the loss function. A plurality of neural networks in a system may be trained simultaneously through back-propagation of the gradient of the loss function to each network. In the context of image or video compression, this type of system, where simultaneous training with back-propagation through each element or the whole network architecture may be referred to as end-to-end, learned image or video compression. Unlike in traditional compression algorithms that use primarily handcrafted, manually constructed steps, an end-to-end learned system learns itself during training what combination of parameters best achieves the goal of minimising the loss function. This approach is advantageous compared to systems that are not end-to-end learned because an end-to-end system has a greater flexibility to learn weights and parameters that might be counter-intuitive to someone handcrafting features. It will be appreciated that the term "training" or "learning" as used herein means the process of optimizing an artificial intelligence or machine learning model, based on a given set of data. This involves iteratively adjusting the parameters of the model to minimize the discrepancy between the model’s predictions and the actual data, represented by the above-described rate-distortion loss function. The training process may comprise multiple epochs. An epoch refers to one complete pass of the entire training dataset through the machine learning algorithm. During an epoch, the model’s parameters are updated in an effort to minimize the loss function. It is envisaged that
multiple epochs may be used to train a model, with the exact number depending on various factors including the complexity of the model and the diversity of the training data. Within each epoch, the training data may be divided into smaller subsets known as batches. The size of a batch, referred to as the batch size, may influence the training process. A smaller batch size can lead to more frequent updates to the model’s parameters, potentially leading to faster convergence to the optimal solution, but at the cost of increased computational resources. Conversely, a larger batch size involves fewer updates, which can be more computationally efficient but might converge slower or even fail to converge to the optimal solution. The learnable parameters are updated by a specified amount each time, determined by the learning rate. The learning rate is a hyperparameter that decides how much the parameters are adjusted during the training process. A smaller learning rate implies smaller steps in the parameter space and a potentially more accurate solution, but it may require more epochs to reach that solution. On the other hand, a larger learning rate can expedite the training process but may risk overshooting the optimal solution or causing the training process to diverge. The training described herein may involve use of a validation set, which is a portion of the data not used in the initial training, which is used to evaluate the model’s performance and to prevent overfitting. Overfitting occurs when a model learns the training data too well, to the point that it fails to generalize to unseen data. Regularization techniques, such as dropout or L1/L2 regularization, can also be used to mitigate overfitting.
It will be appreciated that training a machine learning model is an iterative process that may comprise selection and tuning of various parameters and hyperparameters. As will be appreciated, the specific details, such as hyper parameters and so on, of the training process may vary and it is envisaged that producing a trained model in this way may achieved in a number of different ways with different epochs, batch sizes, learning rates, regularisations, and so on, the details of which are not essential to enabling the advantages and effects of the present disclosure, except where stated otherwise. The point at which an “untrained” neural network is considered be “trained” is envisaged to be case specific and depend on, for example, on a number of epochs, a plateauing of any further learning, or some other metric and is not considered to be essential in achieving the advantages described herein. More details of an end-to-end, learned compression process will now be described. It will be appreciated that in some cases, end-to-end, learned compression processes may be combined with one or more components that are handcrafted or trained separately. In the case of AI based image or video compression, the loss function may be defined by the rate distortion equation. The rate distortion equation may be represented by ^^^^^^^^ = ^^ + ^^ ∗ ^^, where ^^ is the distortion function, ^^ is a weighting factor, and ^^ is the rate loss. ^^ may be referred to as a lagrange multiplier. The langrange multiplier provides as weight for a particular term of the loss function in relation to each other term and can be used to control which terms of the loss function are favoured when training the network. In the case of AI based image or video compression, a training set of input images may be used. An example training set of input images is the KODAK image set (for example
at www.cs.albany.edu/ xypan/research/snr/Kodak.html). An example training set of input images is the IMAX image set. An example training set of input images is the Imagenet dataset (for example at www.image-net.org/download). An example training set of input images is the CLIC Training Dataset P (“professional”) and M (“mobile”) (for example at http://challenge.compression.cc/tasks/). An example of an AI based compression, transmission and decompression process 100 is shown in Figure 1. As a first step in the AI based compression process, an input image 5 is provided. The input image 5 is provided to a trained neural network 110 characterized by a function ^^^^ acting as an encoder. The encoder neural network 110 produces an output based on the input image. This output is referred to as a latent representation of the input image 5. In a second step, the latent representation is quantised in a quantisation process 140 characterised by the operation ^^, resulting in a quantized latent. The quantisation process transforms the continuous latent representation into a discrete quantized latent. An example of a quantization process is a rounding function. In a third step, the quantized latent is entropy encoded in an entropy encoding process 150 to produce a bitstream 130. The entropy encoding process may be for example, range or arithmetic encoding. In a fourth step, the bitstream 130 may be transmitted across a communication network. In a fifth step, the bitstream is entropy decoded in an entropy decoding process 160. The quantized latent is provided to another trained neural network 120 characterized by a function ^^^^ acting as a decoder, which decodes the quantized latent. The trained neural network 120
produces an output based on the quantized latent. The output may be the output image of the AI based compression process 100. The encoder-decoder system may be referred to as an autoencoder. Entropy encoding processes such as range or arithmetic encoding are typically able to losslessly compress given input data up to close to the fundamental entropy limit of that data, as determined by the total entropy of the distribution of that data. Accordingly, one way in which end-to-end, learned compression can minimise the rate loss term of the rate-distortion loss function and thereby increase compression effectiveness is to learn autoencoder parameter values that produce low entropy latent representation distributions. Producing latent representations distributed with as low an entropy as possible allows entropy encoding to compress the latent distributions as close to or to the fundamental entropy limit for that distribution. The lower the entropy of the distribution, the more entropy encoding can losslessly compress it and the lower the amount of data in the corresponding bitstream. In some cases where the latent representation is distributed according to a gaussian or Laplacian distribution, this learning may comprise learning optimal location and scale parameters of the gaussian or Laplacian distributions, in other cases, it allows the learning of more flexible latent representation distributions which can further help to achieve the minimising of the rate-distortion loss function in ways that are not intuitive or possible to do with handcrafted features. Examples of these and other advantages are described in WO2021/220008A1, which is incorporated in its entirety by reference.
Something which is closely linked to the entropy encoding of the latent distribution and which accordingly also has an effect on the effectiveness of compression of end-to-end learned approaches is the quantisation step. During inference, a rounding function may be used to quantise a latent representation distribution into bins of given sizes, a rounding function is not differentiable everywhere. Rather, a rounding function is effectively one or more step functions whose gradient is either zero (at the top of the steps) or infinity (at the boundary between steps). Back propagating a gradient of a loss function through a rounding function is challenging. Instead, during training, quantisation by rounding function is replaced by one or more other approaches. For example, the functions of a noise quantisation model are differentiable everywhere and accordingly do allow backpropagation of the gradient of the loss function through the quantisation parts of the end-to-end, learned system. Alternatively, a straight-through estimator (STE) quantisation model or one other quantisation models may be used. It is also envisaged that different quantisation models may be used for during evaluation of different term of the loss function. For example, noise quantisation may used to evaluate the rate or entropy loss term of the rate-distortion loss function while STE quantisation may be used to evaluate the distortion term. In a similar manner to how learning parameters top produce certain distributions of the latent representation facilitates achieving better rate loss term minimisation, end-to-end learning of the quantisation process achieves a similar effect. That is, learnable quantisation parameters provide the architecture with a further degree of freedom to achieve the goal of minimising the loss function. For example, parameters corresponding to quantisation bin sizes may be learned
which is likely to result in an improved rate-distortion loss outcome compared to approaches using hand-crafted quantisation bin sizes. Further, as the rate-distortion loss function constantly has to balance a rate loss term against a distortion loss term, it has been found that the more degrees of freedom the system has during training, the better the architecture is at achieving optimal rate and distortion trade off. The system described above may be distributed across multiple locations and/or devices. For example, the encoder 110 may be located on a device such as a laptop computer, desktop computer, smart phone or server. The decoder 120 may be located on a separate device which may be referred to as a recipient device. The system used to encode, transmit and decode the input image 5 to obtain the output image 6 may be referred to as a compression pipeline. The AI based compression process may further comprise a hyper-network 105 for the transmission of meta-information that improves the compression process. The hyper-network 105 comprises a trained neural network 115 acting as a hyper-encoder ^^ ℎ ^^ and a trained neural network 125 acting as a hyper-decoder ^^ℎ ^^. An example of such a
is shown in Figure 2. Components of the system not further discussed may be assumed to be the same as discussed above. The neural network 115 acting as a hyper-decoder receives the latent that is the output of the encoder 110. The hyper-encoder 115 produces an output based on the latent representation that may be referred to as a hyper-latent representation. The hyper-latent is then quantized in a quantization process 145 characterised by ^^ℎ to produce a quantized hyper-latent. The quantization process 145 characterised by ^^ℎ may be the same as the quantisation process 140 characterised by ^^ discussed above.
In a similar manner as discussed above for the quantized latent, the quantized hyper-latent is then entropy encoded in an entropy encoding process 155 to produce a bitstream 135. The bitstream 135 may be entropy decoded in an entropy decoding process 165 to retrieve the quantized hyper-latent. The quantized hyper-latent is then used as an input to trained neural network 125 acting as a hyper-decoder. However, in contrast to the compression pipeline 100, the output of the hyper-decoder may not be an approximation of the input to the hyper-decoder 115. Instead, the output of the hyper-decoder is used to provide parameters for use in the entropy encoding process 150 and entropy decoding process 160 in the main compression process 100. For example, the output of the hyper-decoder 125 can include one or more of the mean, standard deviation, variance or any other parameter used to describe a probability model for the entropy encoding process 150 and entropy decoding process 160 of the latent representation. In the example shown in Figure 2, only a single entropy decoding process 165 and hyper-decoder 125 is shown for simplicity. However, in practice, as the decompression process usually takes place on a separate device, duplicates of these processes will be present on the device used for encoding to provide the parameters to be used in the entropy encoding process 150. Further transformations may be applied to at least one of the latent and the hyper-latent at any stage in the AI based compression process 100. For example, at least one of the latent and the hyper latent may be converted to a residual value before the entropy encoding process 150,155 is performed. The residual value may be determined by subtracting the mean value of the distribution of latents or hyper-latents from each latent or hyper latent. The residual values may also be normalised.
To perform training of the AI based compression process described above, a training set of input images may be used as described above. During the training process, the parameters of both the encoder 110 and the decoder 120 may be simultaneously updated in each training step. If a hyper-network 105 is also present, the parameters of both the hyper-encoder 115 and the hyper-decoder 125 may additionally be simultaneously updated in each training step. The training process may further include a generative adversarial network (GAN). When applied to an AI based compression process, in addition to the compression pipeline described above, an additional neutral network acting as a discriminator is included in the system. The discriminator receives an input and outputs a score based on the input providing an indication of whether the discriminator considers the input to be ground truth or fake. For example, the indicator may be a score, with a high score associated with a ground truth input and a low score associated with a fake input. For training of a discriminator, a loss function is used that maximizes the difference in the output indication between an input ground truth and input fake. When a GAN is incorporated into the training of the compression process, the output image 6 may be provided to the discriminator. The output of the discriminator may then be used in the loss function of the compression process as a measure of the distortion of the compression process. Alternatively, the discriminator may receive both the input image 5 and the output image 6 and the difference in output indication may then be used in the loss function of the compression process as a measure of the distortion of the compression process. Training of the neural network acting as a discriminator and the other neutral networks in the compression process may be performed simultaneously. During use of the trained compression pipeline
for the compression and transmission of images or video, the discriminator neural network is removed from the system and the output of the compression pipeline is the output image 6. Incorporation of a GAN into the training process may cause the decoder 120 to perform hallucination. Hallucination is the process of adding information in the output image 6 that was not present in the input image 5. In an example, hallucination may add fine detail to the output image 6 that was not present in the input image 5 or received by the decoder 120. The hallucination performed may be based on information in the quantized latent received by decoder 120. Details of a video compression process will now be described. As discussed above, a video is made up of a series of images arranged in sequential order. AI based compression process 100 described above may be applied multiple times to perform compression, transmission and decompression of a video. For example, each frame of the video may be compressed, transmitted and decompressed individually. The received frames may then be grouped to obtain the original video. The frames in a video may be labelled based on the information from other frames that is used to decode the frame in a video compression, transmission and decompression process. As described above, frames which are decoded using no information from other frames may be referred to as I-frames. Frames which are decoded using information from past frames may be referred to as P-frames. Frames which are decoded using information from past frames and future frames may be referred to as B-frames. Frames may not be encoded and/or decoded in
the order that they appear in the video. For example, a frame at a later time step in the video may be decoded before a frame at an earlier time. The images represented by each frame of a video may be related. For example, a number of frames in a video may show the same scene. In this case, a number of different parts of the scene may be shown in more than one of the frames. For example, objects or people in a scene may be shown in more than one of the frames. The background of the scene may also be shown in more than one of the frames. If an object or the perspective is in motion in the video, the position of the object or background in one frame may change relative to the position of the object or background in another frame. The transformation of a part of the image from a first position in a first frame to a second position in a second frame may be referred to as flow, warping or motion compensation. The flow may be represented by a vector. One or more flows that represent the transformation of at least part of one frame to another frame may be referred to as a flow map. An example AI based video compression, transmission, and decompression process 200 is shown in Figure 3. The process 200 shown in Figure 3 is divided into an I-frame part 201 for decompressing I-frames, and a P-frame part 202 for decompressing P-frames. It will be understood that these divisions into different parts are arbitrary and the process 200 may be also be considered as a single, end-to-end pipeline. As described above, I-frames do not rely on information from other frames so the I-frame part 201 corresponds to the compression, transmission, and decompression process illustrated in Figures 1 or 2. The specific details will not be repeated here but, in summary, an input image
^^0 is passed into an encoder neural network 203 producing a latent representation which is quantised and entropy encoded into a bitstream 204. The subscript 0 in ^^0 indicates the input image corresponds to a frame of a video stream at position t = 0. This may be the first frame of an entire video stream or the first frame of a chunk of a video stream made up of, for example, an I-frame and a plurality of subsequent P-frames and/or B-frames. The bitstream 204 is then entropy decoded and passed into a decoder neural network 205 to reproduce a reconstructed image ^^0 which in this case is an I-frame. The decoding step may be performed both locally at the same location as where the input image compression occurs as well as at the location where the decompression occurs. This allows the reconstructed image ^^0 to be available for later use by components of both the encoding and decoding sides of the pipeline. In contrast to I-frames, P-frames (and B-frames) do rely on information from other frames. Accordingly, the P-frame part 202 at the encoding side of the pipeline takes as input not only the input image ^^^^ that is to be compressed (corresponding to a frame of a video stream at position t), but also one or more previously reconstructed images ^^^^−1 from an earlier frame t-1. As described above, the previously reconstructed ^^^^−1 is available at both the encode and decode side of the pipeline and can accordingly be used for various purposes at both the encode and decode sides. At the encode side, previously reconstructed images may be used for generating a flow maps containing information indicative of inter-frame movement of pixels between frames. In the example of Figure 3, both the image being compressed ^^^^ and the previously reconstructed image from an earlier frame ^^^^−1 are passed into a flow module part 206 of the pipeline. The
flow module part 206 comprises an autoencoder such as that of the autoencoder systems of Figures 1 and 2 but where the encoder neural network 207 has been trained to produce a latent representation of a flow map from inputs ^^^^−1 and ^^^^ , which is indicative of inter-frame movement of pixels or pixel groups between ^^^^−1 and ^^^^ . The latent representation of the flow map is quantised and entropy encoded to compress it and then transmitted as a bitstream 208. On the decode side, the bitstream is entropy decoded and passed to a decoder neural network 209 to produce a reconstructed flow map ^^ . The reconstructed flow map ^^ is applied to the previously reconstructed image ^^^^−1 to generate a warped image ^^^^−1,^^. It is envisaged that any suitable warping technique may be used, for example bi-linear or tri-linear warping, as is described in Agustsson, E., Minnen, D., Johnston, N., Balle, J., Hwang, S. J., and Toderici, G. (2020), Scale-space flow for end-to-end optimized video compression. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 8503-8512), which is hereby incorporated by reference. It is further envisaged that a scale-space flow approach as described in the above paper may also optionally be used. The warped image ^^^^−1,^^ is a prediction of how the previously reconstructed image ^^^^−1 might have changed between frame positions t-1 and t, based on the output flow map produced by the flow module part 206 autoencoder system from the inputs of ^^^^ and ^^^^−1. As with the I-frame, the reconstructed flow map ^^ and corresponding warped image ^^^^−1,^^ may be produced both on the encode side and the decode side of the pipeline so they are available for use by other components of the pipeline on both the encode and decode sides.
In the example of Figure 3, both the image being compressed ^^^^ and the ^^^^−1,^^ are passed into a residual module part 210 of the pipeline. The residual module part 210 comprises an autoencoder system such as that of the autoencoder systems of Figures 1 and 2 but where the encoder neural network 211 has been trained to produce a latent representation of a residual map indicative of differences between the input mage ^^^^ and the warped image ^^^^−1,^^. The latent representation of the residual map is then quantised and entropy encoded into a bitstream 212 and transmitted. The bitstream 212 is then entropy decoded and passed into a decoder neural network 213 which reconstructs a residual map ^^ from the decoded latent representation. Alternatively, a residual map may first be pre-calculated between ^^^^ and the ^^^^−1,^^ and the pre-calculated residual map may be passed into an autoencoder for compression only. This hand-crafted residual map approach is computationally simpler, but reduces the degrees of freedom with which the architecture may learn weights and parameters to achieve its goal during training of minimising the rate-distortion loss function. Finally, on the decode side, the residual map ^^ is applied (e.g. combined by addition, subtraction or a different operation) to the warped image to produce a reconstructed image ^^^^ which is a reconstruction of image ^^^^ and accordingly corresponds to a P-frame at position t in a sequence of frames of a video stream. It will be appreciated that the reconstructed image ^^^^ can then be used to process the next frame. That is, it can be used to compress, transmit and decompress ^^^^+1, and so on until an entire video stream or chunk of a video stream has been processed. Alternatively, the residual autoencoder may be trained to reconstruct the frame ^^^^ directly from the entropy decoded bitstream by removing the connection between ^^^^−1,^^ and the output
of the residual block 210, thereby eliminating any direct combination step with the warped previously decoded image to speed up inference. In this case, the flow information is intuitively understood to be indirectly captured within the residual information, which the residual decoder is able to learn to use to directly reconstruct the output image ^^^^ . Alternatively, the residual autoencoder may be trained to reconstruct the frame ^^^^ directly from the entropy decoded bitstream in combination with some representation of flow injected into one or more layers of the residual decoder. In this case, the flow information is intuitively understood to be indirectly captured within the injected information, which the residual decoder is able to learn to use while decoding the latent representation of flow information to directly reconstruct the output image ^^^^ . Thus, for a block of video frames comprising an I-frame and ^^ subsequent P-frames, the bitstream may contain (i) a quantised, entropy encoded latent representation of the I-frame image, and (ii) a quantised, entropy encoded latent representation of a flow map and residual map of each P-frame image. For completeness, whilst not illustrated in Figure 3, any of the autoencoder systems of Figure 3 may comprise hyper and hyper-hyper networks such as those described in connection with Figure 2. Accordingly, the bitstream may also contain hyper and hyper-hyper parameters, their latent quantised, entropy encoded latent representations and so on, of those networks as applicable. Finally, the above approach may generally also be extended to B-frames, for example as is described in Pourreza, R., and Cohen, T. (2021). Extending neural p-frame codecs for b-frame
coding. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 6680-6689). The above-described flow and residual based approach is highly effective at reducing the amount of data that needs to be transmitted because, as long as at least one reconstructed frame (e.g. I-frame ^^^^−1) is available, the encode side only needs to compress and transmit a flow map and a residual map (and any hyper or hyper-hyper parameter information, as applicable) to reconstruct a subsequent frame. Figure 4 shows an example of an AI image or video compression process such as that described above in connection with Figures 1-3 implemented in a video streaming system 400. The system 400 comprises a first device 401 and a second device 402. The first and second devices 401, 402 may be user devices such as smartphones, tablets, AR/VR headsets or other portable devices. In contrast to known systems which primarily perform inference on GPUs such as Nvidia A100, Geforce 3090, Gefore 4090 GPU cards, the system 400 of Figure 4 performs inference on a CPU of the first and second devices respectively. That is, compute for performing both encoding and decoding are performed by the respective CPUs of the first and second devices 401, 402. This places very different power usage, memory and runtime constraints on the implementation of the above methods than when implementing AI-based compression methods on GPUs. In one example, the CPU of first and second devices 401, 402 may comprise a Qualcomm Snapdragon CPU. The first device 401 comprises a media capture device 403, such as a camera, arranged to capture a plurality of images, referred to hereafter as a video stream 404, of a scene 404. The
video stream 404 is passed to a pre-processing module 406 which splits the video stream into blocks of frames, various frames of which will be designated as I-frames, P-frames, and/or B-frames. The blocks of frames are then compressed by an AI-compression module 407 comprising the encode side of the AI-based video compression pipeline of Figure 3. The output of the AI-compression module is accordingly a bitstream 408a which is transmitted from the first device 401, for example via a communications channel, for example over one or more of a WiFi, 3G, 4G or 5G channel, which may comprise internet or cloud-based 409 communications. The second device 402 receives the communicated bitstream 408b which is passed to an AI-decompression module 410 comprising the decode side of the AI-based video compression pipeline of Figure 3. The output of the AI-decompression module 402 is the reconstructed I-frames, P-frames and/or B-frames which are passed to a post-processing module 411 where they can prepared, for example passed into a buffer, in preparation for streaming 412 to and rendering on a display device 413 of the second device 402. It is envisaged that the system 400 of Figure 4 may be used for live video streaming at 30fps of a 1080p video stream, which means a cumulative latency of both the encode and decode side is below substantially 50ms, for example substantially 30ms or less. Achieving this level of runtime performance with only CPU compute on user devices presents challenges which are not addressed by known methods and systems or in the wider AI-compression literature. For example, execution of different parts of the compression pipeline during inference may be optimized by adjusting the order in which operations are performed using one or
more known CPU scheduling methods. Efficient scheduling can allow for operations to be performed in parallel, thereby reducing the total execution time. It is also envisaged that efficient management of memory resources may be implemented, including optimising caching methods such as storing frequently-accessed data in faster memory locations, and memory reuse, which minimizes memory allocation and deallocation operations. A number of concepts related to the AI compression processes and/or their implementation in a hardware system discussed above will now be described. Although each concept is described separately, one or more of the concepts described below may be applied in an AI based compression process as described above. Concept 1: Regularisation Controllers Training an AI-based compression pipeline to be able to compress input images to specific compression rates is a challenging problem. A reason for this is that the interaction between the compression rate and distortion in AI-based compression pipelines is unpredictable. This means it is not easy to know a priori for a given training run what the final rate distortion curve will look like, or indeed if the networks will be able to compress input images down to a bitrate that a user will find useful. For example, in some cases a training run may produce networks that can achieve state of the art reconstruction accuracy and very low distortion but cannot achieve high compression ratios (low compression rates). Other times, a training run may produce networks that produce very small compression ratios (high compression rate) but very poor image reconstruction accuracy. There are currently no reliable methods to control
the desired bitrate range of the functioning model at inference. A workaround is to do multiple training runs or select multiple training checkpoints and manually select the weights that are able to compress images down to rates that are closest to the rates that are desired for a given distortion. This manual approach is hugely time consuming and error prone. The present disclosure is directed to solving this problem by introducing a novel control mechanism during training. First, some additional context will be introduced. As described above, training of the neural networks of an AI-based compression pipeline relies on a rate distortion loss function or objective function. One or more terms of this loss function L may be regularisd by one or more regularisation parameters: L = ^^(^^) + ^^^^ (^^, ^^) where ^^ is the one or more regularisation parameters, ^^ (^^, ^^) is a distortion loss term based on an observed difference between the input image ^^ and the output image ^^, and ^^(^^) is a rate loss term based on an observed compression rate of the input image ^^ after encoding has been performed, for example the compression rate may be determined by a length of a bitstream, a bits per pixel rate or any other compression metric, each of which is indicative of how small a file size an input image or images has been compressed to. The regularisation parameter ^^ may be a scalar, however as inputs to the AI-based compression pipelines are typically in the form of tensors (e.g. images having height and width dimensions, and one or more channel dimensions), and because the inputs may be associated with different
frame types of a sequence (e.g. an I-frame and/or a P- or B-frame), the regularisation parameter ^^ may instead comprise a plurality of values such that a different value of ^^ may be applied depending on the inputs on which the loss is based at any given training step. Thus the regularisation parameter ^^ may be a matrix or tensor or other data structure which can facilitate this. By constructing ^^ as a plurality of values, it introduces far greater control over how the loss function is being regularised for different inputs and input types. In this case the loss L may be defined for a whole group of pictures (GOP) (e.g. L(^^^^^^) = ∑ ^^ L^^ ( ^^ ^^^^^^^^^^) whereby ^^ = (^^^^ (^^))^^)) which contrasts with the loss being associated with a
frame (e.g. L( ^^ ^^^^^^^^) whereby ^^ = ^^(^^)). Second, the concept of a control loop in the context of a rate distortion loss function is introduced. Control loops may be used in dynamic systems to force one or more process variables in a system to converge to some set point. A known type of control loop is a proportional-integral controller. A proportional-integral controller may be defined by: ∫ ^^(^^) = ^^^^ · ^^(^^) + ^^^^ ^^(^^) ^^^^ where ^^^^ is a proportional gain, ^^^^ is an integral gain, ^^(^^) is a control signal or control parameter and ^^(^^) is difference or error between a process variable and a set point at time ^^. Proportional-integral controllers force the system it is being applied to to correct errors or differences between a target and an observed value of a process variable based on both the current value of the error and the accumulation of past errors, providing a balance between
rapid response (due to the proportional action) and elimination of residual offset (due to the integral action). A generalisation of a proportional-integral controller is a proportional-integral-derivative controller which also takes into account a derivative of the error. Whilst we refer generally to a proportional-integral controller herein. The same concepts may be applied and implemented equally well with a proportional-integral-derivative controller. The present inventors have found that applying a proportional-integral controller (or indeed a proportional-integral-derivative controller) to a rate-distortion loss function during training of an AI-based compression pipeline, and specifically to the value or values of the regularisation parameter ^^ allows for fine-level control and tuning of the neural networks during training to force them to converge to weights that produce a target compression rate (or distortion rate) as applicable. At a high level, this can be understood as controlling how much the rate is contributing to the loss versus how much the distortion is contributing to the loss at each training step (or after some predetermined number of training steps if less granular control is desired) by dynamically updating ^^ as training progresses. More generally, it is envisaged that the PI or indeed PID controller may comprise an optimizer-based controller. That is, e(t) value may be passed through an optimiser, e.g. an Adam optimiser, SGD optimiser or some other optimiser, before the value of ^^ is updated. Thus, if after the application of an optimiser function during training the updated weights cause too much of an increase in a distortion loss resulting in neural networks that can produce very high compression rates but poor image reconstruction accuracy, the control loop adjusts
the regularisation parameter(s) ^^ such that, for the next training step, the optimiser function after backpropagation will adjust the weights to focus more on improving image reconstruction accuracy over compression rates. This process is repeated for the next training step, and next training step, and so on. The manner in which the control loop adjusts ^^ can be understood using the pseudocode algorithm below: Algorithm 1 PI Controller for Adjusting to Target MSE Initialize ^^^^ , ^^^^ , ^^^^ Initialize control signal ^^(0) ← 0 Initialize cumulative error ^^ ← 0 Initialize time step ^^ ← 0 while system is running do Measure ^^observed (^^) Calculate error: ^^(^^) = ^^target − ^^observed (^^) Update cumulative error: ^^ ← ^^ + ^^(^^) · ^^^^ Compute control signal: ^^(^^) = ^^^^ · ^^(^^) + ^^^^ · ^^ Apply control signal ^^(^^) to regularisation parameter ^^ ^^ ← ^^ + ^^^^ end while
That is, for a given training step at time ^^, the distortion value ^^^^^^^^^^^^^^^^^^ (e.g. an MSE value)
between an input image ^^ and an output image ^^ is measured and compared to a target MSE
value ^^^^^^^^^^^^^^ to produce an error. The cumulative error (i.e. the integral) is updated based on
the calculated error, and the error and cumulative error are scaled by ^^^^ and ^^^^ respectively to
calculate a control signal value ^^(^^) for that training step ^^. The control signal value ^^(^^) is
then applied to ^^ e.g. by multiplication or some other operation to modify the values of ^^ for
the next training step, thereby modifying the regularisation in the loss function and changing
how emphasis of rate versus distortion in the next training step ^^ + ^^^^.
Note that this pseudocode does not explicitly distinguish between the multiple values of the matrix or tensor of ^^ but, as described above, ^^ may comprise a plurality of values. For example, there may be different MSE targets ^^^^^^^^^^^^^^ and observed MSE values ^^^^^^^^^^^^^^^^^^ for different frames or frame types of a sequence of frames G as well as for different compression rate targets T (for example T = 0 may correspond to a low bit rate, and T = 10 may correspond to a high bit rate, and the values in between may correspond to intermediate target bit rates). In practice, we may thus define: ^^^^ ^^ ← ^^(^^^^^^^^^^^^^^^^^^,^^ ^^ , ^^^^^^^^^^^^^^,^^ ^^ )
Whereby ^^^^ ^^ may be considered some data structure such as a tensor or matrix or array such as: 0 1 · · · ^^ − 1 ^^00 ^^01 · · · ^^0,^^−1 ^^10 ^^11 · · · ^^1,^^−1 ... ... ... ...
^^^^−1,0 ^^^^−1,1 · · · ^^^^−1,^^−1 During training, each of the individual values of ^^^^ ^^ , or some subset thereof, may be updated by the control signal ^^(^^) produced by the control loop. Accordingly, the target MSE ^^^^^^^^^^^^^^ and observed MSE ^^^^^^^^^^^^^^^^^^ may be calculated respectively for each target compression rate T (index ^^), as well as for each frame index or frame type of a sequence of frames (index ^^). One advantage of this approach is that using a different ^^ value for different frames of a sequence
allows the regularisation of the loss to adapt to increases in distortion that are typically observed across a sequence of frames of a video during training. This can be intuitively understood as being caused by P-frames (that re-use information from an I-frame) being less and less accurate the further away they are in a sequence from the I-frame that contained the most information. In the example where we use different ^^ values for different frame types, ^^ may take the following form: 0 1 · · · ^^ − 1
^^00 ^^01 · · · ^^0,^^−1 P-frame ^^10 ^^11 · · · ^^1,^^−1 B-frame ^^20 ^^21 · · · ^^2,^^−1 Thus, applying the above to the rate distortion loss function, we get: L^^ ^^ (^^^^, ^^^^ ^^ ) := ^^(^^^^) + ^^^^ ^^^^ (^^^^, ^^^^ ^^ )
where ^^ and ^^ denote one of the respective values of ^^ such as target compression rate level, frame, or frame index and so on. Consider the following toy example with three compression target rates: low quality where T = 0, medium quality where T = 1 and high quality T = 2. We also assume we have two different frame types: I-frames and P-frames. In this toy example, we are training three sets of weights,
each set associated with one of the compression target rates low quality, medium quality or high quality. Our ^^ in this example may accordingly be an array of 2x3 values, namely: (I-frame, P- frame)x(T=0, T=1, T=2). During each training step we, we check what kind of frame the MSE values are being calculated from (I-frame or P-frame), and then, for each set of weights, we apply one of the three ^^ values to the loss terms when calculating the loss. The weights are then updated by an optimiser function and we then apply the control loop to update the array of ^^ values for the next training step. In this way, as we train, our regularisation adapts according to the output of the control loop, which in turn is based on how close or how far the observed MSE is from the target MSE. However, whilst the above approach lets us target a specific distortion amount, there is not yet a link between the values of ^^ as they are updated and the compression rates. That is, the control loop defined above is based solely on the target distortion amount (e.g. a target MSE value). Setting the target distortion amount (^^^^^^^^^^^^^^,^^ ^^ )is a non-trivial problem.
If we naively guess what the ^^^^^^^^^^^^^^,^^ ^^ values should be, we end up with the same problem of not knowing a priori where our compression rates will settle as training progresses. That is, the control loop will cause the neural network’s weights to converge to some values that can output images with our desired, target distortion amounts (e.g. a predetermined MSE value) but we have no control over what rate at which the network compresses so as to achieve the target distortion. Whilst a low distortion amount may correspond to a small amount of compression (referred to hereinafter as a "high" compression rate or "low" compression ratio)
whereby a high quality image reconstruction uses more bits, and a high distortion amount may correspond to a higher amount of compression (referred to hereinafter as a "low" compression rate or "high" compression ratio) whereby a low quality image reconstruction uses fewer bits, the exact compression rates can vary significantly and are very difficult to guess solely from setting a target distortion amount. To solve this problem, the present disclosure introduces a second control loop. However, this second control loop does not target the rate or distortion loss by direct control of ^^. Instead, it indirectly influences ^^ by controlling the the target distortion amounts (^^^^^^^^^^^^^^,^^ ^^ ) used inside of the first control loop. That is, the first control loop can be considered a regularisation controller, whereas the second control loop can be considered a meta-parameter controller that updates the set point of the first control loop. Unlike the first control loop, this second control loop is directly tied to the target compression rates, as will be described below. This second control loop thus introduces the (indirect) link between the values of ^^ and the target compression rates. As specified above we control the values of ^^ using the control loop function ^^(^^), which is based on a difference between an observed MSE score ^^^^^^^^^^^^^^^^^^,^^ ^^ and a target MSE score ^^^^^^^^^^^^^^,^^ ^^ : ^^^^ ^^ ← ^^(^^^^^^^^^^^^^^^^^^,^^ ^^ , ^^^^^^^^^^^^^^,^^ ^^ )
To control the target MSE scores, we now introduce second control loop function and one or more meta parameters ^^0, ^^1 ,^^2, ..., ^^^^ for each target compression bitrate ^^^^^^^^^^^^^^^^,^^ we want to train for: ^^^^ ← ^^(^^^^^^^^^^^^^^^^^^^^,^^ , ^^^^^^^^^^^^^^^^,^^ ) where ^^ is a control loop function, ^^^^^^^^^^^^^^^^^^^^,^^ is an observed compression rate (bitrate) of a validation dataset, and ^^^^^^^^^^^^^^^^,^^ is a target compression rate. The control loop function ^^ may have the same form as the first control loop ^^ described above. For example ^^ may comprise a PI controller or some other control loop function. The parameters ^^ℓ produced by ^^ are mapped to the distortion target values. For example, any mapping from {0...^^} of (^^ℓ)^^ ℓ=0 to {1...^^} × {1...^^} could be appropriate. For example, ^^0...^^^^ may be parameters
spline system or parameters to a radial basis function approximation on the space of all MSE targets. For example, the mapping may be done explicitly by hard-coding the mapping manually, or by associating the meta-parameter associated with the lowest bitrate target ^^0 with the highest MSE target ^^0, ^^ , and the highest bitrate target ^^^^ with the lowest MSE target ^^^^, ^^ , and then interpolating where the intermediate target bitrates would have corresponding highest and lowest MSE targets. This interpolation may be performed by a predefined interpolation function. The highest and lowest MSE target values may be determined a priori either experimentally, or by setting values that are close to maximum and minimum values that AI-based compression pipelines are able to achieve in the wider literature. In this way, we only need to identify the end point MSE target values, associate these with our endpoint meta parameters ^^0 and ^^^^ , and interpolate the intermediate
MSE target values from these endpoints. More generally, it is noted that this idea can be expanded whereby the MSE targets or more general distortion targets need not be the same as those used in the rate distortion loss estimation. For example, the distortion term in the above-described loss functions may be some distortion ^^1 while the regularisation term ^^ that regularises the distortion ^^1 may itself be based on a different distortion ^^2 based on distortion target ^^^^^^^^^^^^^^ by way of operation of the controllers as described above. In a further generalisation, consider the spacing between the MSE targets. As described above, the association of metaparameters and MSE targets on the dataset being used by the controllers to estimate bitrate (referred to hereinafter as a holdout dataset and described in more detail below) is structured so there’s an abstraction between the metaparameters ^^0, ... ^^^^ and the MSE targets ^^0, ... ^^^^ . This means that under a suitable model for the rate-distortion function (for example a linear model or a hyperbolic model or some other parameterised model) the inter-level spacing of the holdout dataset bitrates (and therefore generalisation bitrates) can be controlled directly by appropriately setting the spacing of the MSE targets. e.g., if you want the bitrate spacing to be linear (i.e., ^^^^^^^^^^^^^^^^^^^^,^^ - ^^^^^^^^^^^^^^^^^^^^,^^−1 is constant for all k) then you can directly compute the required spacing of the T MSE targets; if you want it to be log-linear (i.e., ^^^^^^^^^^^^^^^^^^^^,^^/^^^^^^^^^^^^^^^^^^^^,^^−1 is constant for all k) then you can directly compute the required spacing of the T MSE targets. This results in a training strategy wherein sampling among the T levels during training thus prioritises bitrates equally, or log-equally or equally according to whatever parameterised model is being used.
The result of this is that it allows for the bitrate level-sampling strategy to be adapted depending on whether your model has an "easier time" learning low-bitrate structure or high-bitrate structure. This additional linking mechanism of the setting of the model spacing by some parametrised model is permitted directly by holdout dataset targeting using regularisation controllers, in conjunction with the design of a suitable rate–distortion model (i.e. that connects distortion targets to holdout dataset rate via meta-parameters). It is also envisaged that, during training, spacing type (e.g. log-linear or linear or some other parameterised model) may be switched on the fly. For example, if the model is having a challenging time learning a low-bitrate level structure with a log-linear spacing model, then this can be switched to linear after some number of training steps or responsive to some trigger, and vice versa, to try to improve the model’s ability to learn a given bitrate level structure. Taking all of the above into account, consider the following toy example: we have a highest bitrate target k = 9 and a lowest bitrate target k = 0, each with associated meta parameters ^^9 and ^^0, and we want to train a set of networks to a total of 10 different levels between and the highest and lowest bitrate targets. A typical highest MSE score may be e.g. 110 (a unitless value) and a typical lowest MSE score may be e.g. 45 (another unitless value). We create a mapping between these and the highest and lowest meta parameter scores whereby whatever value ^^9 converges to, this will be mapped to 110, and whatever value ^^0 converges to, this will be mapped to 45. We can then interpolate the MSE scores of total of 10 different levels, each associated with a ^^ value between the two endpoints.
Next, we start training the network using the rate distortion loss in the same way as set out above, that is, we estimate our loss L = ^^(^^) + ∑ ^^ ^^ ^^^^ ^^^^ (^^, ^^)
and, at each weight update step, we update the weights of the network using an optimiser. After each step or a first predetermined number of steps, we run the first control loop to update ^^^^ ^^ for the next step or number of steps: ^^^^ ^^ ← ^^(^^^^^^^^^^^^^^^^^^,^^ ^^ , ^^^^^^^^^^^^^^,^^ ^^ )
Next, after a second predetermined number of steps, we run the second control loop to update the values of ^^^^^^^^^^^^^^,^^ ^^ : ^^^^ ← ^^(^^^^^^^^^^^^^^^^^^^^,^^ , ^^^^^^^^^^^^^^^^,^^ )
We then continue training for the next second predetermined number of steps in the same manner as described above, until we run the second control loop again to update the values of ^^^^^^^^^^^^^^,^^ ^^ again and so on. The observed bitrate values ^^^^^^^^^^^^^^^^^^^^,^^ are calculated from a validation dataset that is separate from and not contaminated with either the training dataset or any other validation dataset used during training. This validation dataset is referred to above as a holdout dataset. The target bitrate values ^^^^^^^^^^^^^^^^,^^ may correspond to some user-specified bitrates that may correspond to
a the bitrates of a desired bitrate ladder or some other user-determined values and may be set manually by the user, for example in a config file. Described below is an example training schedule implementing the above steps: First, we initialise ^^^^ ^^ , ^^^^^^^^^^^^^^,^^ ^^ , and ^^^^ with starting values, interpolate ^^^^ to the ^^^^^^^^^^^^^^,^^ ^^ values, and
example a set of 24 video
each comprising a number of frames. Second, we run 250 training steps using the these initial values, running the first control loop after each training step to update the values of ^^^^ ^^ based on the observed MSE scores against the target MSE scores. After 250 training steps, we run a forward pass using the weights at step 250 for each of the 24 video sequences and for each one calculate a compression rate (e.g. bpp or some other bitrate metric). These are then averaged to produce the observed bitrate ^^^^^^^^^^^^^^^^^^^^,^^ . Third, we run the second control loop using the estimated ^^^^^^^^^^^^^^^^^^^^,^^ to produce a set of updated meta parameters ^^^^ . We then use our mapping to map the updated meta parameters to new MSE target values
^^ , and set these as the new set point in the first control loop. Fourth, we continue training for the next 250 steps using the updated ^^^^^^^^^^^^^^,^^ ^^ values. After 250 steps we repeat the second and third steps, and so on. In this way, by dynamically updating the set point of the first control loop, based on a desired compression rate target, we directly provide a link between the regularisation in the loss
function with both the target compression rate and the distortion amount, thereby facilitating a "fire and forget" process of training whereby we only need to specify the desired bit rate targets or even just the end points of the range we want and the network will learn to produce networks that can achieve the desired targets. Thus the problem of needing to "guess" what MSE scores will likely correspond to certain bitrates a priori is solved. In an alternative implementation of the above steps, it is also envisaged that the meta parameters may be updated more frequently, for example every 4-5 steps, but that the forward pass is not run on the entire holdout dataset, but only on one randomly selected video sequence. This approach results in more continuous control of the meta parameters and can reduce the compute bottleneck of running a large number of forward passes at once if the second control loop is only run after a larger number of steps e.g. 250. This approach may be facilitated by an Adam optimiser or other optimiser to produce an effect akin to amortisation of the updates over several iterations whereby the momentum helps to smooth the noise inherent to single-sample updates. It will also be appreciated that the above training schedule numbers of steps are exemplary only and other numbers of steps are also envisaged. Figure 5 illustratively shows an implementation 500 of the use of first and second control loops to control regularisation of the rate distortion loss function when training the neural networks of an AI-based compression pipeline. The regularisation parameter ^^^^ ^^ is illustrated as an array 501 of different values for different compression rate levels T-1 and frame indices across a sequence of frames from 0 to G-1. As described above, these values are updated by
a controller 502, for example a PI controller that uses a target distortion amount (e.g. MSE score or some other distortion metric) as a set point and an observed distortion amount as the process variable. The target distortion amounts 503, e.g. MSE targets, are linked by a mapping 504 to a set of meta parameters 505. This may be on a one-for-one basis, or by way of interpolation using the highest and lowest values in the MSE target and meta-parameter ranges as the end points. The values of the meta parameters 505 are set by a meta controller 506 which, as with the controller 502 may be a PI controller that uses a target compression rate as a set point and an observed compression rate on some validation data set as a process variable. Finally, the first control loop 502 and the second control loop 506 may be incorporated into existing training code or software through a targeting interface 507 that is able to access, for example, the holdout data set and other parameters and values generated during training, such as observed MSE scores and so on. It will be appreciated that the above approaches to loss function regularisation using first and second control loops may be generalised to more than just the use of the distortion amount and compression rate as training metrics on which the control loops operate. Thus, for example, there may be other values or metrics that are calculated during training on which the control loops may operate and thus on which the loss function may be regularised. One example may be, for example, using a flow metric (e.g. an average flow amount output by the flow module in Figure 3). Whereby if there is a flow term in the loss function and this term starts to grow
or shrink, a control loop that uses a difference between a target flow and an observed flow amount may be estimated in a PI controller to either directly regularise the flow loss term using ^^ or some other regularisation parameter, or to indirectly control one or more of these regularisation parameters using the same meta controller approach as described above. For example, controllers may be used to achieve automated smoothness (Lipschitz) control over one or more discriminators present in an adversarial training setup. Concept 2: Rate range widening A bitrate ladder is a set of different video quality levels, each defined by a specific combination of resolution and bitrate, that is used in adaptive streaming. These levels are created to ensure that viewers with different network conditions can stream video content smoothly, without buffering, by dynamically adjusting to the highest possible quality their connection can support. A bitrate ladder includes multiple tiers, with each step representing a different combination of resolution (e.g., 144p, 360p, 720p, 1080p, etc.) and bitrate (e.g. measured in kilobits per second, kbps, or megabits per second, Mbps). For instance, in a bitrate ladder, a lower tier might offer 360p resolution at 500 kbps, while a higher tier might offer 1080p resolution at 5 Mbps. Adaptive bitrate streaming (ABR) algorithms use this ladder to seamlessly switch between these levels based on the user’s internet bandwidth and device capabilities. Bitrate ladders in traditional compression accordingly rely on different encoding an input video stream using different encoder and/or decoder settings to achieve some desired set of steps on the bitrate ladder.
In AI-based compression, a plurality of sets of networks of the pipeline (each set being "a model") may be trained, where each set of networks may converge towards being operationally effective at a given bitrate range, for example 0.1-1 Mbps, 1-3 Mbps, 3-6Mbps, 6+ Mbps and so on. To create a bitrate ladder, the plurality of models may be brought and used together in the same way that encoding and decoding using different settings is used to create a bitrate ladder in traditional compression. However, this approach may be problematic in AI-based compression because each model may have a not insignificant memory footprint and power consumption requirements. If a bitrate ladder is implemented using the plurality of models, the memory footprint and power consumption may quickly become prohibitive for use on many devices. It is accordingly advantageous to train a single model that is operationally effective across a much wider bitrate range than those described above, for example 0.1-9+ Mbps or 0.5-6 Mbps to facilitate the implementation of functionality corresponding to a bitrate ladder but using fewer models, for example one model, to reduce memory footprint and power consumption and allow encoding and decoding to be run on resource constrained devices. However, the inventors have found that targeting wider bitrate ranges during the training of AI-based compression pipelines, for example by exposing the model to different rate distortion trade offs that correspond to a wide range of bitrates for example using the above-described regularsiation controller approach, or any other rate-distortion trade off control method, results in a model that performs uniformly badly across the whole range. That is, models trained to target wide bitrate ranges generally achieve poor distortion scores for a given bit rate i.e.
poor bits per pixel performance across the entire, wide bitrate range despite that being the primary target of training. Conversely, exposing the model to a narrow range of rate distortion trade offs (i.e. targeting narrower bitrate ranges such as 1-3 Mbps) during training has no such issues and the models are able to perform well within the targeted narrower range. In very general terms, the networks of AI-based compression pipelines struggle to generalise to wide bitrate ranges but have no difficulty on narrow bitrate ranges. Accordingly, one approach may be to train a plurality of said performant narrow bitrate range models and to construct a bitrate ladder form them, accepting the undesirable consequence that there may be burdensome memory and power limitations that prevent deployment of the pipeline on resource constrained devices. Alternatively, a solution to this problem may be found which allowing a single model to perform effectively across a wide bitrate range, and facilitating deployment of AI-based compression pipelines on resource constrained devices. The present concept is directed to such a solution. More specifically, the inventors have found that whilst a randomly initialised model struggles to learn to be performant across a wide bitrate range, a model that has already been subject to training targeting a narrow bitrate range and is performant on that narrow range can have the bitrate range at which it is performant widened by further training where the (already narrowly trained) model is exposed to a wider range of bitrate ranges than it was exposed to in the initial training. At a very general level, a narrowly trained model can be coaxed into becoming performant at a wider bitrate range where a freshly initialised model struggles to learn at all.
Figure 6 illustrates a toy example distortion against rate curve 600 (in this case a Video Multimethod Assessment Fusion VMAF score) against rate in Mbps of three separately trained models 601, 502, 603. That is, each model comprises the networks of an AI-based compression pipeline, such as that of Figure 3, trained by using a narrow range of rate distortion trade offs (e.g. a different regularisation parameters ^^ in the rate distortion loss function is selected for each step or steps of training, for example as described above in connection with regularisation controllers). Also shown on Figure 6 is a dotted lined 604 which is indicative of an ideal targeted rate distortion relationship or envelope that a given adaptive bitrate streaming algorithm targets. That is, an adaptive bitrate streaming algorithm may switch between the available models based on a given connection speed to stay as close to the dotted line 604 as possible for optimum end user viewing quality of the video stream. Combining the individual models 601, 602, 603 very roughly tracks the dotted line 604 and accordingly provides an implementation of a bitrate ladder for adaptive bitrate streaming using AI-based compression. In this case, the first model 601 may be used whenever the available connection speed is 0.1-1 Mbps, the second model 602 may be used when the available connection speed is 1-3 Mbps, and the third model 603 may be used whenever the available connection speed is 3-6 Mbps. However, as described above, this toy example implementation requires three separate models, each having its own networks weights and other parameters and thus significantly increasing the resource footprint needed to run the implementation. Figure 7 illustrates a similar toy example distortion against rate curve 700 with an optimal rate distortion trade off line 704 of an arbitrary adaptive bitrate streaming algorithm. However,
in Figure 7, a single trained model 702 which initially had a 1-3 Mbps effective operational bitrate range has been subject to bitrate range widening 706 to 0.1-6 Mbps resulting in a new model 705 that approximately tracks the ideal adaptive bitrate streaming algorithm envelope 704 from its lowest point to its highest point. The widened single model 705 is accordingly able to produce the desired behaviour of an adaptive bitrate streaming alogrithm without the need to rely on multiple underlying models to approximate the ideal distortion rate envelope 704. In very general terms, widening the bitrate range of the a given model from an initially trained narrower range results in the effective operational bitrate range that that model is able to work within to be extended. That means that the model is able to assign fewer bits to easily compressible frames while also being free to use many more bits should doing so be useful for compressing more complex frames without causing a large spike in distortion. A narrow range model on the other hand does not know how to use these lower bitrate or higher bitrate ranges. That is, even if the frame might be more efficiently compressible to even smaller bit rate levels, a narrowly trained model is not able to take advantage of that possibility because of its narrow training. One non-limiting, exemplary implementation of the concept of rate range widening may make use of the above-described regularisation controllers methodology. This is illustrated in Figure 8. Figure 8 illustratively shows an implementation 800 of the use of first and second control loops to control regularisation of the rate distortion loss function when training the neural networks of an AI-based compression pipeline. The regularisation parameter ^^^^ ^^ is illustrated as an array 801 of different values for different compression rate levels T-1
frame indices across a sequence of frames from 0 to G-1. As described above, these values are updated by
a controller 802, for example a PI controller that uses a target distortion amount (e.g. MSE score or some other distortion metric) as a set point and an observed distortion amount as the process variable. The target distortion amounts 803, e.g. MSE targets, are linked by a mapping 804 to a set of meta parameters 805. This may be on a one-for-one basis, or by way of interpolation using the highest and lowest values in the MSE target and meta-parameter ranges as the end points. The values of the meta parameters 805 are set by a meta controller 806 which, as with the controller 802 may be a PI controller that uses a target compression rate as a set point and an observed compression rate on some validation data set as a process variable. Finally, the first control loop 802 and the second control loop 806 may be incorporated into existing training code or software through a targeting interface 807 that is able to access, for example, the holdout data set and other parameters and values generated during training, such as observed MSE scores and so on. For a predetermined number of first training steps the above-described process is performed with a first set of MSE targets between ^^0,^^, ^^ and ^^^^,^^, ^^ with associated metaparameters ^^0 and ^^^^ which will result a model (i.e.
AI-based compression pipeline such as that of Figure 3) having some initial bitrate range at which it is able to operate effectively at. For the sake of example, let’s say this initial bitrate range is 1-3 Mbps.
After these predetermined number of first training steps, the minimum and maximum MSE targets become widened 808 to ^^′ , ^^′ by widening the metaparameters ^^′ an ′ 0,^^, ^^ ^^,^^, ^^ 0 d ^^ ^^ that control where the MSE targets settle. For a predetermined number of
training steps, the above-described process is repeated but now with the MSE targets settled at wider values through the widening of the metaparameters. This results in a new array of ^^′ ^^, ^^ based on the widened targets. Because the weights of the networks are already pretrained in the first training steps, the continued training with the widened MSE targets and metaparameters is effective the model’s bitrange range is widened. If we consider the toy example, the widened bitrate range may now be 0.1-6 Mbps. Without the narrow bitrate range pretraining, the model weights typically struggle to converge to a performant set of weights. That is, if training is started with a wide set of targets from the beginning, training is substantially unsuccessful and the resulting models do not come close to a desired distortion rate performance of an ideal envelope such as 604 or 704 illustrated in Figures 6 and 7. An exemplary implementation of the above steps including pre-training and rate widening is illustrated in the pseudocode in algorithm 2 below.
Algorithm 2 Training with bitrate range widening Inputs: Training dataset X, learning rate ^^, regularization parameter ^^, number of narrow bitrate range epochs ^^1, number of wider bitrate range epochs ^^2, network architecture ^^^^ , regularisation controllers with MSE target range [^^0,^^, ^^ , ^^^^,^^, ^^ ], metaparameter target range [^^0, ^^^^] Initialize network parameters ^^ for epoch = 1 to ^^1 do for each batch in X do While running regularisation controller with [^^0,^^, ^^ , ^^^^,^^, ^^ ] controlled by [^^0, ^^^^] to estimate ^^ for a selected level, select level ∈ (0, .., ^^) and perform
pass to compute predictions ^^^^ = ^^^^ (^^^^−1, ^^^^ ) Compute Loss = ^^ + ^^^^ Backward pass to compute gradients ∇^^Loss Update parameters with optimizer O: ^^ ← O(^^, ∇^^Loss, ^^) end for end for Change regularisation controller range to [^^′ ′ ′ ′ 0,^^, ^^ , ^^ ^^,^^, ^^] and [^^0, ^^ ^^] for epoch = 1 to ^^2 do for each batch in X do While running regularisation controller with [^^′ 0,^^, ^^ , ^^′ ^^,^^, ^^] and [^^′ 0, ^^′ ^^] to estimate ^^ for a selected level, select level ∈ (0, .., ^^) and perform forward pass to compute predictions ^^^^ = ^^^^ (^^^^−1, ^^^^ ) Compute Loss = ^^ + ^^^^ Backward pass to compute gradients ∇^^Loss Update parameters with optimizer O: ^^ ← O(^^, ∇^^Loss, ^^) end for end for Optionally evaluate on validation set
That is, a training data set X, a learning rate ^^, regularisation parameter ^^, a first number of training steps or epochs ^^1 for the initial narrow bitrate range, and a second number of training steps or epochs ^^2 for the bitrate range widening is selected. The network architecture of ^^^^ is defined, for
as shown in Figure 3. The network parameters ^^ are randomly initialised and then the training loop is started. For each batch in the training data X, perform a forward pass through ^^^^ while the regularsiation controller such as that of Figure 5 and/or 8 is running with the initial MSE target range [^^0,^^, ^^ , ^^^^,^^, ^^ ] controlled by the metaparameter target range [^^0, ^^^^] to estimate a ^^^^, ^^ for the pass. The total ^^^^^^^^ will be calculated by combining a term ^^ and a rate term ^^, and any other loss terms (not shown). The backwards pass is then performed to compute gradients based on the loss, and the parameters ^^ are optimised using the optimiser, such as stochastic gradient descent SGD, or some other known optimiser. After the first number of training steps or epochs ^^1, the MSE target range [^^0,^^, ^^ , ^^^^,^^, ^^ ] is widened by widening the metaparameter target range [^^0, ^^^^ ] resulting in [^^′ ′ 0,^^, ^^ , ^^ ^^,^^, ^^] and [^^′ 0, ^^′ ^^]. The above steps are then repeated for the second number of
or epochs ^^2. This widening of the regularisation controller target ranges has the effect of widening the target compression rate range that the training directed to, effectively increasing the maximum and lowering the minimum of the range of bitrates that the model is trying to hit during training. As training progresses, the model’s effective bitrate range increases, getting as close to the widened target compression rate range as the training allows it to get. Optionally, a validation loss can be calculated. The learning rate, batch size, and or number of epochs may be optimised during training, for example using a learning rate scheduler or
some other hyperparameter optimisation method. More generally, the hyperparameters may be optimised experimentally. Note that the first number of training steps or epochs ^^1 (i.e. when to extend the rate range during training) may be specified in an initial, empirically determined training schedule based on a hyper parameter sweep. Alternatively it may be dynamically determined based on an estimated difference between the observed compression rate and a target compression rate for a training input image in a current training step or in aggregate from a number of previous training steps whereby this difference is indicative of how well the pre-training is progressing. If the difference is still above a threshold, it indicates pre-training at the narrow rate range still has work to do. Once the difference drops below the threshold, pre-training may be considered complete and the rate range can be extended for the second number of training steps. A number of further optional modifications may be made to the above-described methodology to further increase its effectiveness. The first of these is controlling the sampling of the target levels in the regularisation controller during the bitrate widening training. In very general terms, for each forward pass of training, a single target level ∈ (0, ..., ^^) will be selected for that forward pass. For example, in training step 1, the forward pass might be performed with the MSE target at ^^0, the next forward pass might be performed with an MSE target at ^^3, the next forward pass might be performed with an MSE target at ^^1 and so on. This approach means the networks are exposed to the different bitrate range targets within between the minimums and the maximums of the MSE target range [^^0,^^, ^^ , ^^^^,^^, ^^ ] and associated metaparameter target range [^^0, ^^^^]. This selection (or sampling) of
be from a uniform distribution of that for each forward pass, the selection of each level is as equally likely as any other
level. But it may also be more explicitly controlled whereby the distribution of the levels being sampled from may be biased towards a lower, middle, or higher end of MSE target range [^^0,^^, ^^ , ^^^^,^^, ^^ ] and associated metaparameter target range [^^0, ^^^^ ].
More specifically, the inventors have unexpectedly found that, during bitrate range widening, models struggle to learn to become performant at the lower bitrate ranges. That is, the bitrate range widening is harder to achieve in the lower bitrate range direction than it is for the higher bitrate range direction widening. To solve this problem, the target level sampling can be biased towards the lower target levels comnpared to the highest levels. In one illustrative example, the inventors have found that a distribution in which 90% or more of the forward passes are performed at ^^ = 0, ^^ = 1, or ^^ = 2 (where ^^ ∈ (0, ..., 7)) results in bitrate range widening from 1-3 Mbps to 0.1-6 Mbps with stable training and good performance across the whole range after training even though this biasing means the higher target levels (^^ > 2) are rarely (<10% of the time) sampled in forward passes and the network is accordingly rarely even exposed to these higher target levels. In more general terms, it is hypothesised that good performance at the lower bitrate ranges is a harder task to learn but once learned, that good performance ability appears to transfer well into the higher bitrate ranges for "free". It is accordingly envisaged that bitrate widening training may focus on lower bitrate ranges to improve overall perfomance compared to uniform target level sampling over the full bitrate range. Note that the different levels as defined by ^^ and the associated bitrate ranges are illustrative only and it will be appreciated that any number of levels and associated bitrate ranges are envisaged and may be based on, for example, a desired ideal distortion rate curve shape such as those illustrated in Figures 6 and 7.
A further optional modification to the above-described methods is the introduction of dynamic changing of the regularisation controller targets for a given target compression rate range based on how well (or not well) training is going. For example, consider a static training schedule that trains first with a narrow target compression rate range for a predetermined number of first training steps, then widens the target compression rate range , and then continues training with the widened target compression rate range. It can be difficult to determine how many training steps are appropriate to produce a pre-trained narrow bitrate range model. This exercise may involve a large number of hyper parameter sweeps and other experimentation to determine a suitable training schedule. If the number of training steps at the narrow range are too few and the pre-trained narrow bitrate range model is not performant at the targetd narrow range, the subsequent widening of the bitrate range model is likely also not performant at the widened range. To reduce the burden of manually determining when to switch from narrow training to bitrate range widening in a given training schedule, a dynamic target compression rate range method may be introduced that sets the minimum and maximum of the target compression rate range every training step or every plurality of steps based on one or more training metrics estimated during training. For example, the weights before the start of narrow bitrate range training are unlikely to be able to consistently compress the input training videos to the target bitrate ranges as no training has yet occurred. The difference between the target compression rate sampled from the narrow target range for that training step and the observed compression rate at this point of training is likely to be very high. As training progresses, the networks of the model learn to operate effectivley at the target narrow bitrate range and the difference between the target compression
rate and the observed compression rate in each step and in aggregate across training steps (e.g. in a rolling average) drops. This drop is indicative of the model learning to operate effectively at the target bitrate range and indicative that the model may be receptive to bitrate range widening without causing a drop in performance. This relationship can be harnessed to dynamically control or adjust the minimum and maximum of the target compression rate range by lowering the minimum and increasing the maximum of the range as the difference between the observed compression rate and the target compression rate drops, while increasing the minimum and lowering the maximum of the range as the difference increases. The size of any adjustment may be based on the size of the difference at a given training step or across multiple training steps, for example proportional to the size of the difference. This dynamic controlling of the target compression rate range effectively operates as a controller on top of the above-described regularisation controller, dynamically adjusting when the range endpoints to control how fast or slow the bitrate widening part of training occurs. This in turn may reduce the burden of training by removing the number of hyperparameter sweeps performed to determine an optimal training schedule. In more general terms, this modification has the effect of converting a training schedule with discrete, hardcoded compression rate range target changes into a continuous, gradually changing training schedule that updates the range of target compression rates after each training step or after each plurality of steps. The training may then continue in this way until some end condition is met, for example, when the overall loss or specific loss term has converged, or after some predetermined overall number of training steps. Whilst a difference between an observed compression rate and a target compression rate are used as an example training metric, it is also envisaged that other metrics may be used to
control the target compression rate range minimum and maximum inlcuding but not limited to a difference between input and output image, a rate of change of the overall loss or specific loss terms (indicating a loss curve is plateauing), and so on. It will further be appreciated that, in an ideal scenario, a single model can be subject to bitrate range widening training to cover the entire range of an ideal distortion rate curve. However, for very large bitrate ranges, for example from 0.1 Mbps to 10+ Mbps, it may still be challenging to train a single model to operate effectively across the entire range. In this case, it is envisaged that an adaptive bitrate ladder may be constructed using a plurality of models that have each been subject to bitrate range widening training and that together approximately track a desired ideal path in a distortion rate curve such as that of Figure 6 and 7. In this case each model comprises its own set of neural networks and is trained separately with different initial compression rate target ranges and different widened compression rate target ranges. In this case it is envisaged that, after widening the targets, the lowered minimum of the range of the higher bitrate model will approximately match the increased maximum of the range of the lower bitrate model so that the two (or more) models may be combined into an adaptive bitrate ladder using any suitable adaptive bitrate algorithm. That is, the first model may be used to perform lossy video compression at a first level of the adaptive bitrate ladder and the second model may be used to perform lossy video compression at a second level of the adaptive bitrate ladder. This approach allows even very large bitrate ranges to be covered with relatively fewer models, for example two, three, four, or five models, than would otherwise be possible without using bitrate range widening during training.
It will also be appreciated from the description above that the presently described concept of bitrate range widening may be used together with the regularisation controller concept or in a standalone manner wherein bitrate range widening may be performed in a different way. That is, the regularisation controller implementation of bitrate range widening is intended to be illustrative only and other implementations are also envisaged. For example, bitrate range widening may also be implemented using an empirically determined, hard coded regularisation parameter (e.g. ^^ in a rate distortion loss function) update schedule applied during training. Whilst such an approach is inferior to a regularisation controller implementation, it is provided as an example to illustrate that other ways to implement bitrate range widening are envisaged and viable, and that the regularisation controller implementation provided above is not intended to be limiting. The subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non transitory program carrier for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be a machine-readable
storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. The computer storage medium is not, however, a propagated signal. The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A computer program (which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub programs, or portions of code. A computer program can be deployed to be executed on one computer or on multiple
computers that are located at one site or distributed across multiple sites and interconnected by a communication network. The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). Computers suitable for the execution of a computer program include, by way of example, can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a VR headset, a game console, a Global Positioning System (GPS) receiver, a server, a mobile phones, a tablet computer, a notebook computer, a music player, an e-book reader, a laptop or desktop computer, a PDAs, a smart phone, or other stationary or portable
devices, that includes one or more processors and computer readable media, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry. The subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet. The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
While this specification contains many specific implementation details, these should be construed as descriptions of features that may be specific to particular examples of particular inventions. Certain features that are described in this specification in the context of separate examples can also be implemented in combination in a single example. Conversely, various features that are described in the context of a single example can also be implemented in multiple examples separately or in any suitable sub-combination. Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the examples described above should not be understood as requiring such separation in all examples, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. Finally, it will be appreciated that whilst the term controller and meta controller are used herein in the singular, it will be appreciated that these may comprise multiple control loops and so accordingly be controllers or meta controllers, each able to control one or more values of the array of ^^ or ^^ values individually but together providing the singular controller functionality.
Claims
3. The method of claim 2, wherein said regularising comprises, after a number of said steps:
updating the target distortion amount using a difference between a target compression
rate and an observed compression rate.
4. The method of claim 3, wherein said observed compression rate is obtained from encoding
one or more images of a second set of input images using the first neural network.
5. The method of claim 1, wherein said regularising comprises:
updating the regularisation parameter using a difference between a target compression
rate and an observed compression rate of the input image after said encoding.
6. The method of claim 5, wherein said regularising comprises, after a number of said steps:
updating the target compression rate using a difference between a target distortion amount
and an observed distortion amount indicative of a difference between the input image and the
output image.
7. The method of claim 2 or 6, wherein using the difference between the target distortion
amount and the observed distortion amount comprises:
applying a proportional–integral control loop function to the target distortion amount
and the observed distortion amount, whereby the target distortion amount comprises a set
point variable of the proportional–integral control loop function and the observed distortion
amount comprises a process variable of the proportional-integral control loop.
8. The method of any of claims 3 to 5, wherein using the difference between the target compression rate and the observed target compression rate comprises: applying a proportional–integral control loop function to the target compression rate and the observed compression rate, whereby the target compression rate comprises a set point variable of the proportional–integral control loop function and the observed compression rate comprises a process variable of the proportional-integral control loop. 9. The method of claim 2 or 5, wherein said regularising comprises, after a number of said steps: updating the target distortion amount or target compression rate using a difference between an observed metric and a target metric associated with the first neural network or second neural network. 10. The method of any of claims 1 to 9, wherein the function is defined by a rate distortion equation L: L = ^^(^^) + ^^^^ (^^, ^^) where ^^ is said one or more regularisation parameters, ^^ (^^, ^^) is a distortion loss term based on an observed difference between the input image ^^ and the output image ^^, and ^^(^^) is a rate loss term based on an observed compression rate of the input image ^^ after said encoding; wherein the method comprises controlling ^^ with a first proportional-integral control loop having a set point comprising a target distortion amount and a process variable comprising an observed distortion amount; and
wherein the method comprises controlling the target distortion amount with a second proportional-integral control loop having a set point comprising a target compression rate and a process variable comprising an observed compression rate. 11. The method of claim 10, wherein the observed compression rate is estimated by encoding one or more images of a second set of input images using the first neural network, and estimating a compression rate of the one or more images after said encoding. 12. The method of claim 10 or 11, wherein the observed compression rate is estimated by encoding one or more images of a plurality of sets of input images using the first neural network, and estimating a compression rate of the one or more images after said encoding. 13. The method of any of claims 10 to 12, wherein said controlling by the first proportional- integral controller comprises updating^^ and wherein said controlling by the second proportional- integral controller comprises updating the target distortion amount. 14. The method of claim 13 wherein updating the target distortion amount by the second proportional-integral control loop is performed less frequently than the updating of ^^. 15. The method of claim 13 or 14, mapping an output of the second proportional-integral control loop to a target distortion amount. 16. The method of any of claims 13 to 15, wherein the output of the second proportional-integral control loop comprises a maximum value and a minimum value, and wherein the method comprises:
mapping the maximum value and the minimum value to a maximum target distortion amount and a minimum target distortion amount; and interpolating intermediate target distortion amounts from the maximum target distortion amount and the minimum target distortion amount. 17. The method of claim 16, comprising updating the set point of the first proportional-integral control loop using one of the intermediate target distortion amounts. 18. A method of training one or more neural networks, the one or more neural networks being for use in lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image; updating the parameters of the first neural network and the second neural network based on the evaluated function; and repeating the above steps using a first set of input images to produce a first trained neural network and a second trained neural network; wherein the method comprises regularising a term of the function using one or more
regularisation parameters based on a first target training metric; and updating the first target training metric based on a second target training metric. 19. The method of claim 18, wherein the first target training metric comprises a target distortion amount, and wherein the second target training metric comprises a target compression rate. 20. The method of claim 19, wherein the second target training metric comprises a plurality of target compression rates, and wherein the one or more regularisation parameters comprises a plurality of values, each value associated with a different target compression rate. 21. The method of claim 19 or 20, wherein the second target training metric comprises a plurality of target compression rates, and wherein the one or more regularisation parameters comprises a plurality of values, each value associated with a different image of the first set of input images. 22. The method of claim 18, 19 or 20, wherein the first set of input images comprises an I-frame and one or more P- and/or B-frames, wherein the second target training metric comprises a plurality of target compression rates, and wherein the one or more regularisation parameters comprises a plurality of values, each value associated with an I-frame, a P-frame or a B-frame. 23. A method for lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent
representation; transmitting the latent representation to a second computer system; decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the first neural network and the second neural network are trained according to any of the methods of claims 1 to 19. 24. A method for lossy image or video encoding and transmission, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; and transmitting the latent representation; wherein the first neural network is trained according to any of the methods of claims 1 to 19. 25. A method for lossy image or video receipt and decoding, the method comprising the steps of: receiving a latent representation transmitted by a first computer system at a second computer system, the latent representation corresponding to an input image; and decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image;
wherein the second neural network is trained according to any of the methods of claims 1 to 22. 26. A data processing system configured to perform the method of any one of claims 1 to 25. 27. A data processing apparatus configured to perform the method of claims 1 to 25. 28. A computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method of claims 1 to 25. 29. A computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of claims 1 to 25. 30. A method of training one or more neural networks, the one or more neural networks being for use in lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first neural network to produce a latent representation; decoding the latent representation using a second neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image and based on a difference between an observed compression rate and a target compression rate of the input image, the target compression rate sampled from a range of target compression rates;
updating the parameters of the first neural network and the second neural network based on the evaluated function; repeating, using a set of input images, the receiving, encoding, decoding, evaluating and updating steps a first number of times; changing the range of target compression rates; and repeating, using the set of input images, the receiving, encoding, decoding, evaluating and updating steps a second number of times to produce a first trained neural network and a second trained neural network. 31. The method of claim 30, wherein changing the range of target compression rates comprises increasing a maximum of the range and lowering a minimum of the range. 32. The method of any of claims 30 to 31, comprising sampling the target compression rate from a distribution of target compression rates in the range of target compression rates. 33. The method of claim 32, comprising biasing said sampling towards an upper end and/or lower end of the distribution of target compression rates. 34. The method of claim 33, wherein said biasing is performed after changing the range of target compression rates. 35. The method of any of claims 30 to 34, comprising regularising a term of the function using one or more regularisation parameters based on the target compression rate and/or a target distortion amount indicative of the difference between the output image and the input image.
36. The method of claim 35, comprising updating the one or more regularisation parameters using a difference between an observed distortion amount and the target distortion amount. 37. The method of claim 36, comprising updating the target distortion amount using the difference between the observed compression rate and the target compression rate. 38. The method of any of claims 30 to 37, wherein said changing the range of target compression rates is based on the difference between the observed compression rate and a target compression rate. 39. The method of claim 38, comprising performing said changing the range of target compression rates when the difference between the observed compression rate and the target compression rate falls below a threshold for a predetermined number of consecutive training steps. 40. The method of any of claims 30 to 39, wherein changing the range of target compression rates comprises increasing a maximum of the range from 3 Mbps to 6 Mbps, and lowering a minimum of the range from 1 Mbps to 0.1 Mbps. 41. The method of any of claims 30-40, comprising: encoding the input image using a third neural network to produce a latent representation; decoding the latent representation using a fourth neural network to produce an output image, wherein the output image is an approximation of the input image; evaluating a function based on a difference between the output image and the input image
and based on a difference between an observed compression rate and a target compression rate of the input image, the target compression rate sampled from a second range of target compression rates; updating the parameters of the third neural network and the fourth neural network based on the evaluated function; repeating, using a set of input images, the receiving, encoding, decoding, evaluating and updating steps a first number of times; changing the second range of target compression rates; repeating, using the set of input images, the receiving, encoding, decoding, evaluating and updating steps a second number of times to produce a third trained neural network and a fourth trained neural network; using the first and second trained neural networks to perform lossy video compression at a first level of an adaptive bitrate ladder; and using the third and fourth trained neural networks for performing lossy video compression at a second level of the adaptive bitrate ladder. 42. A method for lossy image or video encoding, transmission and decoding, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; transmitting the latent representation to a second computer system; decoding the latent representation using a second trained neural network to produce an
output image, wherein the output image is an approximation of the input image; wherein the first neural network and the second neural network are trained according to any of the methods of claims 30 to 41. 43. A method for lossy image or video encoding and transmission, the method comprising the steps of: receiving an input image at a first computer system; encoding the input image using a first trained neural network to produce a latent representation; and transmitting the latent representation; wherein the first neural network is trained according to any of the methods of claims 30 to 41. 44. A method for lossy image or video receipt and decoding, the method comprising the steps of: receiving a latent representation transmitted by a first computer system at a second computer system, the latent representation corresponding to an input image; and decoding the latent representation using a second trained neural network to produce an output image, wherein the output image is an approximation of the input image; wherein the second neural network is trained according to any of the methods of claims 30 to 41. 45. A data processing system configured to perform the method of any one of claims 30 to 44.
46. A data processing apparatus configured to perform the method of claims 30 to 44.
47. A computer program comprising instructions which, when the program is executed by a
computer, cause the computer to carry out the method of claims 30 to 44.
48. A computer-readable storage medium comprising instructions which, when executed by a
computer, cause the computer to carry out the method of claims 30 to 44.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GBGB2407153.2A GB202407153D0 (en) | 2024-05-20 | 2024-05-20 | Method and data processing system for lossy image or video encoding, transmission and decoding |
| GB2407153.2 | 2024-05-20 | ||
| GB2415553.3 | 2024-10-22 | ||
| GBGB2415553.3A GB202415553D0 (en) | 2024-10-22 | 2024-10-22 | Method and data processing system for lossy image or video encoding, transmission and decoding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025242587A1 true WO2025242587A1 (en) | 2025-11-27 |
Family
ID=95983442
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2025/063653 Pending WO2025242587A1 (en) | 2024-05-20 | 2025-05-19 | Method and data processing system for lossy image or video encoding, transmission and decoding |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025242587A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021220008A1 (en) | 2020-04-29 | 2021-11-04 | Deep Render Ltd | Image compression and decoding, video compression and decoding: methods and systems |
| US11606560B2 (en) * | 2020-10-23 | 2023-03-14 | Deep Render Ltd. | Image encoding and decoding, video encoding and decoding: methods, systems and training methods |
-
2025
- 2025-05-19 WO PCT/EP2025/063653 patent/WO2025242587A1/en active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021220008A1 (en) | 2020-04-29 | 2021-11-04 | Deep Render Ltd | Image compression and decoding, video compression and decoding: methods and systems |
| US11606560B2 (en) * | 2020-10-23 | 2023-03-14 | Deep Render Ltd. | Image encoding and decoding, video encoding and decoding: methods, systems and training methods |
Non-Patent Citations (8)
| Title |
|---|
| AGUSTSSON EIRIKUR ET AL: "Scale-Space Flow for End-to-End Optimized Video Compression", 2020 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), IEEE, 13 June 2020 (2020-06-13), pages 8500 - 8509, XP033805553, [retrieved on 20200803], DOI: 10.1109/CVPR42600.2020.00853 * |
| AGUSTSSON, E.MINNEN, D.JOHNSTON, N.BALLE, J.HWANG, S. J.TODERICI, G.: "Scale-space flow for end-to-end optimized video compression", IN PROCEEDINGS OF THE IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION, 2020, pages 8503 - 8512 |
| BALLÉ, JOHANNES ET AL.: "Variational image compression with a scale hyperprior", ARXIV PREPRINT ARXIV: 1802.01436, 2018 |
| JIA CHUANMIN ET AL: "Rate Distortion Characteristic Modeling for Neural Image Compression", 2022 DATA COMPRESSION CONFERENCE (DCC), IEEE, 22 March 2022 (2022-03-22), pages 202 - 211, XP034143721, [retrieved on 20220704], DOI: 10.1109/DCC52660.2022.00028 * |
| JOHANNES BALL\'E ET AL: "End-to-end Optimized Image Compression", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 3 March 2017 (2017-03-03), XP081707958 * |
| MENTZER, F.AGUSTSSON, E.BALLE, J.MINNEN, D.JOHNSTON, N.TODERICI, G.: "Neural video compression using gans for detail synthesis and propagation", IN COMPUTER VISION-ECCV 2022: 17TH EUROPEAN CONFERENCE, 23 October 2022 (2022-10-23), pages 562 - 578 |
| POURREZA, R.COHEN, T.: "Extending neural p-frame codecs for b-frame coding", IN PROCEEDINGS OF THE IEEE/CVF INTERNATIONAL CONFERENCE ON COMPUTER VISION, 2021, pages 6680 - 6689 |
| XUE NAIFU ET AL: "Lambda-Domain Rate Control for Neural Image Compression", PROCEEDINGS OF THE 15TH ACM WEB SCIENCE CONFERENCE 2023, ACMPUB27, NEW YORK, NY, USA, 6 December 2023 (2023-12-06), pages 1 - 7, XP059418490, ISBN: 979-8-4007-0206-8, DOI: 10.1145/3595916.3626372 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12137230B2 (en) | Method and apparatus for applying deep learning techniques in video coding, restoration and video quality analysis (VQA) | |
| US10666962B2 (en) | Training end-to-end video processes | |
| US12108050B2 (en) | Method, an apparatus and a computer program product for video encoding and video decoding | |
| US12026924B1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| US20220245449A1 (en) | Method for training a single non-symmetric decoder for learning-based codecs | |
| EP4666579A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| WO2024140849A1 (en) | Method, apparatus, and medium for visual data processing | |
| CN121792738A (en) | Method for encoding video data | |
| WO2024020403A1 (en) | Method, apparatus, and medium for visual data processing | |
| WO2025082896A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding using image comparisons and machine learning | |
| WO2025073564A1 (en) | Method and data processing system for lossy image or video compression | |
| Chen et al. | Vesper: Learning to Manage Uncertainty in Video Streaming | |
| CN119110090A (en) | Image compression model training method, image compression method and device | |
| WO2025172429A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| WO2025168485A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| WO2026082860A2 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| EP4721406A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| WO2025210218A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| WO2025162929A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| WO2025088034A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| WO2025196024A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| WO2025061586A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding | |
| Jadhav | Variable rate video compression using a hybrid recurrent convolutional learning framework | |
| WO2024193708A1 (en) | Method, apparatus, and medium for visual data processing | |
| WO2025252644A1 (en) | Method and data processing system for lossy image or video encoding, transmission and decoding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25730006 Country of ref document: EP Kind code of ref document: A1 |