Method and apparatus for encoding or decoding data representing image data

A neural network-based encoding and decoding method with a global and non-linear transformation pipeline addresses the inefficiencies of existing algorithms in compressing screen content images, enhancing the quality of textual and pictorial regions.

WO2025153191A1PCT designated stage expired Publication Date: 2025-07-24HUAWEI TECH CO LTD +1

Patent Information

Application Number
PCT/EP2024/051297
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-19
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

Existing image compression algorithms optimized for natural images fail to effectively compress screen content images, leading to significant degradation in textual and pictorial regions, such as unreadable text in computer-generated content.

Method used

A method involving a global transformation followed by a non-linear transformation using a neural network pipeline for encoding and decoding image data, where the order of processing is preserved in both encoding and decoding, with optional bypass mechanisms based on image content.

Benefits of technology

Improves the efficiency of image compression for screen content images by maintaining perceptual quality, especially in textual and pictorial regions, while allowing for flexible processing based on image content.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024051297_24072025_PF_FP_ABST
    Figure EP2024051297_24072025_PF_FP_ABST
Patent Text Reader

Abstract

In some example, a method for generating an input tensor representing image data to be encoded by an encoder comprises processing the image data using a selected global transformation to generate a first tensor comprising transformed image data, processing the first tensor by one or more layers of a selected neural network, to generate the input tensor, wherein the input tensor comprises a pre-processed tensor representation of the image data, providing at least one of: a set of configuration parameters for the selected global transformation, a first index representing the selected global transformation, and a second index representing the selected neural network to a decoder, and providing the input tensor for an encoder configured to generate a bitstream representing coded image data.
Need to check novelty before this filing date? Find Prior Art

Description

[0001]METHOD AND APPARATUS FOR ENCODING OR DECODING DATA REPRESENTING IMAGE DATA TECHNICAL FIELDEmbodiments of the present disclosure generally relate to the field of encoding and decoding data based on a neuralnetwork architecture. In particular, some embodiments relate to methods and apparatuses for such encoding anddecoding images and / or videos from a bitstream using a plurality of processing layers.BACKGROUND Image and / or video coding (e.g., encoding and decoding) is used in a wide range of applications. For example broadcastdigital TV, transmission over internet and mobile networks, real-time conversational applications such as video chat,video conferencing, and so on. In such applications, data representing an image and / or a video can be compressed. Forexample, an image shared between participants of a video conference can be compressed in order to, e.g., reduce delaysin sharing of the image.Lossy, or irreversible, image compression algorithms that use inexact approximations and / or partial data to represent animage need to address the trade-off between compression and perceptual quality. The notion of perceptual quality is,however, different for natural images and so-called screen content, which can comprise a composite image includingtextual and pictorial regions such as, e.g., text, graphics, and illustrations (e.g., a slide of a presentation, a spreadsheet, acomputer desktop image, etc.), where distortion results in varying degrees of degradation. With the rapid development and popularization of smartphones and cloud computing, computer-generated screen content images (SCIs) are important mediums that represent large amounts of information. Compression algorithms which aretherefore typically optimized for natural images often fail with screen content. For example, a slight defect might notbe visible on an image of a sunset, but might make a figure caption of an SCI unreadable. In learned image compression (AI-codec), the gap in compression performance of natural and screen content is especiallyvisible, even if the codec is already trained both with natural and screen content related data.SUMMARY The present disclosure provides methods and apparatuses to improve image compression, such as lossy compression ofscreen content images comprising composite images including at least one of textual and pictorial regions.The foregoing and other objects are achieved by the subject matter of the independent claims. Further implementation forms are apparent from the dependent claims, the description and the figures. Particular embodiments are outlined in the attached independent claims, with other embodiments in the dependent claims.According to a first aspect, the present disclosure relates to a method for generating an input tensor representing imagedata to be encoded by an encoder, the method comprising processing the image data using a selected globaltransformation to generate a first tensor comprising transformed image data, processing the first tensor by one or morelayers of a selected neural network, to generate the input tensor, wherein the input tensor comprises a pre-processedtensor representation of the image data, providing at least one of: a set of configuration parameters for the selected globaltransformation, a first index representing the selected global transformation, and a second index representing the selectedneural network to a decoder, and providing the input tensor for an encoder configured to generate a bitstream representingcoded image data.A transformation space is therefore introduced in which a typical codec (e.g., an autoencoder) has better efficiency inscreen content image compression. Specifically, a preprocessing mechanism comprises processing image data using aglobal transformation which is a non-spatial transformation that is deterministic (i.e., output depends only on input),which can comprise a linear transformation for example, followed by processing using a non-linear transformation whichis a spatial transformation, which can be a NN-based transformation for example. According to an example, the orderof processing (e.g., global followed by non-linear) is preserved in a decoding operation as well. That is, during encoding,image data is pre-processed in a pipeline in which an order of processing comprises a global transformation followed bya non-linear transformation. When decoding an encoded image, data is processed using, e.g., a global transformation followed by a non-linear transformation. That is, the order of processing in a decoding pipeline is preserved and followsthe same order as that of the encoding pipeline, i.e., post-processing involves processing encoded image data using aninverse version of the global transformation, where available, followed by a non-linear transformation that is symmetricwith the non-linear transformation used in encoding. In an example, the NNs for encoding and decoding are symmetric, the same size, with the same number of channels and the same number of layers. However, they can be trained separately and use separate sets of weights.In an example, a global transformation can comprise a linear transformation which depends on an input value of a singlepixel of an image, whereas a non-linear transformation can comprise a learnable transformation which can depend onvalues of pixels in, e.g., a local neighbourhood of an image.In a possible implementation of the first aspect, the first tensor and a latent representation of the first tensor can becombined by adding together respective components from the first tensor and the latent representation of the first tensor, whereby to generate the pre-processed tensor representation of the image data. The first tensor can comprise a transformed version of an image to be compressed. For example, the first tensor can represent a forward transformation on the image, in which image data representing the image to be compressed has been transformed using a selected global transformation, such as a linear transformation. In an implementation of the first aspect, the global transformation can comprise a colour space transformation configured to modify a colour space of the image data. The global transformation can comprise a resolution transformation configured to modify a resolution of the image data. The global transformation can comprise a desaturation transformation configured to decrease a colour saturation value of one or more colour channels of the image data. The global transformation can comprise an alpha blending transformation configured to blend the image data with one or more background image data sets. An alpha blending coefficient can be selected in a range from 0 to 1. In example, an alpha blending coefficient of 0.8 can be used. At least one of the one or more background image data sets can comprise a grayscale or desaturated version of the image data. The global transformation can comprise a linear global transformation. The global transformation can comprise a transformation which is identical for each pixel of an image represented by the image data. According to an example, the first tensor can be processed using a convolution kernel to generate a first intermediate latent tensor comprising an increased number of channels for the image data, and the first intermediate latent tensor can be processed using a depth-wise convolution kernel to generate a second intermediate latent tensor, and the second intermediate latent tensor can be processed using a convolution kernel to generate the input tensor. Application of the global transformation and processing of the first tensor by the one or more layers of the selected neural network can be bypassed in response to a determination of the content of the image data. In an example, a neural network for a non- linear transformation can comprise a mobile inverted bottleneck convolutional (MBConv) based neural network. That is, an on / off signal (e.g., 0 for off, 1 for on, etc.) can be provided to indicate whether image data should be pre-processed using the linear / non-linear combination of transformations described herein or not. A decoder can similarlybypass decoding of coded data using a linear / non-linear combination of transformations in the presence of an ‘off’ signal indicating that post-processing should be bypassed. Accordingly, in an example, data representing an indication that the application of the global transformation and processing of the first tensor by the one or more layers of the selected neuralnetwork in response to a determination of the content of the image data is bypassed can be provided to a decoder.According to a second aspect, the present disclosure relates to a method for encoding an input tensor representing imagedata, whereby to generate coded image data, the method comprising providing an input tensor generated according tothe method of the first aspect, and encoding the input tensor to generate a bitstream representing the coded image data.For example, the input tensor can be provided to an image encoder in order to generate coded image data.According to a third aspect, the present disclosure relates to a preprocessor structure for an encoder configured to encodean input tensor representing image data, the preprocessor structure comprising processing circuitry configured to processthe image data using a selected global transformation to generate a first tensor comprising transformed image data, process the first tensor by one or more layers of a selected neural network, to generate the input tensor, wherein the input tensor comprises a pre-processed tensor representation of the image data, provide at least one of: a set of configuration parameters for the selected global transformation, a first index representing the selected global transformation, and asecond index representing the selected neural network to a decoder, and provide the input tensor for an encoderconfigured to generate coded image data. In an implementation of the third aspect, the preprocessor structure can be provided as part of an image capture and / or processing pipeline in a mobile device, such as a smartphone for example. Image data can relate to screen content images.According to a fourth aspect, the present disclosure relates to a method for decoding a bitstream representing codedimage data, the method comprising receiving at least one of: a set of configuration parameters for a selected globaltransformation, a first index representing the selected global transformation, and a second index representing a selected neural network at a decoder, decoding the bitstream using the decoder to generate an initial representation of decoded image data, processing the initial representation of decoded image data using an inverse global transformation selected on the basis of the first index, wherein the inverse global transformation is configured on the basis of the set of configuration parameters, whereby to generate an output tensor comprising a pre-processed tensor representation of theimage data, and process the output tensor by one or more layers of a neural network to generate output image data. In an implementation of the fourth aspect, the decoder can receive, from a encoder as described herein, an index representing a bypass on / off signal. That is, this index is acquired in the decoder, from an encoder, along with indicesrelating to selected linear and / or non-linear transformations, and transformation parameters for linear and / or non-lineartransformations.The decoder can decode a reconstruction for the original image that was encoded by an encoder. This can include post-processing as described herein if the bypass on / off signal / index is ‘on’, indicating postprocessing should take place (as opposed to ‘off’, indicating that no postprocessing should take place as no preprocessing occurred). In an example, the neural network can be selected on the basis of the second index. The neural network selected for orby the decoder on the basis of the second index can be symmetric or counterpart version of the neural network used byan encoder in a preprocessing stage. The inverse global transformation can comprise a colour space transformation configured to modify a colour space of the initial representation of decoded image data. The inverse global transformation can comprise a resolution transformation configured to modify a resolution of the initial representation of decoded image data. The inverse global transformation can comprise a saturation transformation configured to increase a colour saturation value of one or morecolour channels of the initial representation of decoded image data. The inverse global transformation can comprise asub-alpha blending transformation configured to generate the difference of the initial representation of decoded image data with one or more background image data sets. A sub-alpha blending coefficient can comprise the multiplicative inverse of the alpha blending coefficient used in the forward transformation, i.e. in the encoder / preprocessing stage for a global transformation. For example, a sub-alphablending coefficient can be 1.25 when an alpha blending coefficient of 0.8 is used in preprocessing.The output tensor can be processed using a convolution kernel to generate a first intermediate latent tensor comprising an increased number of channels for the image data, and the first intermediate latent tensor can be processed using adepth-wise convolution kernel to generate a second intermediate latent tensor, and the second intermediate latent tensorcan be processed using a convolution kernel to generate the output image data. In an example, the application of the inverse global transformation and processing of the output tensor by the one ormore layers of the selected neural network can be bypassed on the basis of data received from an encoder, such as anindex representing a bypass on / off signal for example. The global transformation can comprise a linear global transformation and / or the inverse global transformation can comprise an inverse linear global transformation. The global transformation can comprise a transformation which is identical for each pixel of an image represented by the image data and / or the inverse global transformation can comprise an inverse transformation which is identical for each pixel of an image represented by the image data.According to a fifth aspect, the present disclosure relates to a method for decoding a bitstream representing coded imagedata to generate output image data, the method comprising, providing a bitstream representing coded image data, anddecoding the bitstream representing coded image data according to the fourth aspect, whereby to generate the output image data. The bitstream can comprise a bitstream generated according to the method of the first aspect.According to a sixth aspect, the present disclosure relates to a postprocessor structure for a decoder configured to decodea bitstream representing coded image data, the postprocessor structure comprising processing circuitry configured toreceive at least one of: a set of configuration parameters for a selected global transformation, a first index representingthe selected global transformation, and a second index representing a selected neural network from an encoder, receivean initial representation of decoded image data comprising a pre-processed tensor representation of image data, processthe initial representation of decoded image data using an inverse global transformation selected on the basis of the first index, wherein the inverse global transformation is configured on the basis of the set of configuration parameters,whereby to generate an initial representation of decoded image data, and process the initial representation of decodedimage data by one or more layers of a neural network to generate output image data. The postprocessor structure cancomprise processing circuitry configured to select and / or configure the neural network on the basis of the second index.According to a seventh aspect, the present disclosure relates to a computer program stored on a non-transitory medium and including code instructions, which, when executed on more or more processors, cause the one or more processors to execute the method of the first aspect and / or the fourth aspect. The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination.Encoding and / or decoding and / or preprocessing and / or postprocessing may be implemented by hardware, or may beimplemented by hardware executing corresponding software. The method according to the first aspect of the present disclosure may be performed by the preprocessor structure according to the third aspect of the present disclosure. Further features and implementations of the method according to the first aspect of the present disclosure can correspond to respective features and implementations of the preprocessorstructure according to the third aspect of the present disclosure. The advantages of the method according to the firstaspect can be the same as those for the corresponding implementation of the preprocessor structure according to the third aspect.The method according to the fourth aspect of the present disclosure may be performed by the postprocessor structureaccording to the sixth aspect of the present disclosure. Further features and implementations of the method according tothe fourth aspect of the present disclosure can correspond to respective features and implementations of thepostprocessor structure according to the sixth aspect of the present disclosure. The advantages of the method accordingto the fourth aspect can be the same as those for the corresponding implementation of the postprocessor structureaccording to the sixth aspect.Details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS In the following embodiments of the present disclosure are described in more detail with reference to the attached figures and drawings, in whichFig. 1 is a schematic drawing illustrating channels processed by layers of a neural network;Fig. 2 is a schematic drawing illustrating an autoencoder type of a neural network;Fig. 3A is a schematic drawing illustrating an exemplary network architecture for encoder and decoder sideincluding a hyperprior model;Fig. 3B is a schematic drawing illustrating a general network architecture for encoder side including a hyperpriormodel;Fig. 3C is a schematic drawing illustrating a general network architecture for decoder side including a hyperpriormodel;Fig. 4 is a schematic drawing illustrating an exemplary network architecture for encoder and decoder sideincluding a hyperprior model;Fig. 5 is a block diagram illustrating a structure of an encoder, according to an example;Fig. 6 is a block diagram illustrating a global transformation, according to an example;Fig. 7 is a block diagram illustrating a neural network implementation, according to an example;Fig.8 is a block diagram illustrating a structure of a decoder, according to an example;Fig. 9 is a block diagram showing an example of a coding system configured to implement embodiments of thepresent disclosure;Fig. 10 is a block diagram showing another example of a coding system configured to implement embodimentsof the present disclosure;Fig. 11 is a block diagram illustrating an example of an encoding apparatus or a decoding apparatus configuredto implement embodiments of the present disclosure;Fig. 12 is a block diagram illustrating an apparatus that may be used as either or both of the source device andthe destination device of Fig. 9, according to an example; andFig. 13 is a block diagram illustrating a coding configured to implement embodiments of the present disclosure.Like reference numbers and designations in different drawings may indicate similar elements.DETAILED DESCRIPTION OF THE EMBODIMENTS In the following description, reference is made to the accompanying figures, which form part of the disclosure, and whichshow, by way of illustration, specific aspects of embodiments of the present disclosure or specific aspects in whichembodiments of the present disclosure may be used. It is understood that embodiments of the present disclosure may be used in other aspects and comprise structural or logical changes not depicted in the figures. The following detaileddescription, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by theappended claims. For instance, it is understood that a disclosure in connection with a described method may also hold true for a corresponding device or system configured to perform the method and vice versa. For example, if one or a plurality of specific method steps are described, a corresponding device may include one or a plurality of units, e.g. functional units, to perform the described one or plurality of method steps (e.g. one unit performing the one or plurality of steps, or a plurality of units each performing one or more of the plurality of steps), even if such one or more units are not explicitly described or illustrated in the figures. On the other hand, for example, if a specific apparatus is described based on one or a plurality of units, e.g. functional units, a corresponding method may include one step to perform the functionality ofthe one or plurality of units (e.g. one step performing the functionality of the one or plurality of units, or a plurality ofsteps each performing the functionality of one or more of the plurality of units), even if such one or plurality of steps are not explicitly described or illustrated in the figures. Further, it is understood that the features of the various exemplary embodiments and / or aspects described herein may be combined with each other, unless specifically noted otherwise.In the following, an overview over some of the used technical terms and framework within which the embodiments ofthe present disclosure may be employed is provided.Artificial neural networks Artificial neural networks (ANN) or connectionist systems are computing systems vaguely inspired by the biological neural networks that constitute animal brains. Such systems "learn" to perform tasks by considering examples, generally without being programmed with task-specific rules. For example, in image recognition, they might learn to identify images that contain cats by analyzing example images that have been manually labeled as "cat" or "no cat" and using the results to identify cats in other images. They do this without any prior knowledge of cats, for example, that they have fur, tails, whiskers and cat-like faces. Instead, they automatically generate identifying characteristics from the examples that they process. An ANN is based on a collection of connected units or nodes called artificial neurons, which loosely model the neurons in a biological brain. Each connection, like the synapses in a biological brain, can transmit a signal to other neurons. An artificial neuron that receives a signal then processes it and can signal neurons connected to it.In ANN implementations, the "signal" at a connection is a real number, and the output of each neuron is computed bysome non-linear function of the sum of its inputs. The connections are called edges. Neurons and edges typically have a weight that adjusts as learning proceeds. The weight increases or decreases the strength of the signal at a connection. Neurons may have a threshold such that a signal is sent only if the aggregate signal crosses that threshold. Typically, neurons are aggregated into layers. Different layers may perform different transformations on their inputs. Signals travel from the first layer (the input layer), to the last layer (the output layer), possibly after traversing the layers multiple times. The original goal of the ANN approach was to solve problems in the same way that a human brain would. Over time, attention moved to performing specific tasks, leading to deviations from biology. ANNs have been used on a variety of tasks, including computer vision, speech recognition, machine translation, social network filtering, playing board and video games, medical diagnosis, and even in activities that have traditionally been considered as reserved to humans, like painting. The name “convolutional neural network” (CNN) indicates that the network employs a mathematical operation called convolution. Convolution is a specialized kind of linear operation. Convolutional networks are neural networks that use convolution in place of a general matrix multiplication in at least one of their layers. Fig.1 schematically illustrates a general concept of processing by a neural network such as the CNN. A convolutional neural network consists of an input and an output layer, as well as multiple hidden layers. Input layer is the layer to which the input (such as a portion 11 of an input image as shown in Fig.1) is provided for processing. The hidden layers of a CNN typically consist of a series of convolutional layers that convolve with a multiplication or other dot product.The result of a layer is one or more feature maps (illustrated by empty solid-line rectangles), sometimes also referred toas channels. There may be a resampling (such as subsampling) involved in some or all of the layers. As a consequence,the feature maps may become smaller, as illustrated in Fig.1. It is noted that a convolution with a stride may also reduce the size (resample) an input feature map. The activation function in a CNN is usually a ReLU (Rectified Linear Unit)layer or Leaky ReLU, and is subsequently followed by additional convolutions such as pooling layers, fully connectedlayers and normalization layers, referred to as hidden layers because their inputs and outputs are masked by the activation function and final convolution. Though the layers are colloquially referred to as convolutions, this is only by convention. Mathematically, it is technically a sliding dot product or cross-correlation. This has significance for the indices in the matrix, in that it affects how the weight is determined at a specific index point. When programming a CNN for processing images, as shown in Fig. 1, the input is a tensor with shape (number of images) x (image width) x (image height) x (image depth). It should be known that the image depth can be constituted by channels of an image. After passing through a convolutional layer, the image becomes abstracted to a feature map, with shape (number of images) x (feature map width) x (feature map height) x (feature map channels). A convolutionallayer within a neural network can have the following attributes: Convolutional kernels defined by a width and height(hyper-parameters), the number of input channels and output channels (hyper-parameter), the depth of the convolution filter (the input channels), which can be equal to the number channels (depth) of the input feature map. Convolutional neural networks are biologically inspired variants of multilayer perceptrons that are specifically designed to emulate the behavior of a visual cortex. These models mitigate the challenges posed by the MLP architecture by exploiting the strong spatially local correlation present in natural images. The convolutional layer is the core building block of a CNN. The layer's parameters consist of a set of learnable filters (the above-mentioned kernels), which have a small receptive field, but extend through the full depth of the input volume. During the forward pass, each filter is convolved across the width and height of the input volume, computing the dot product between the entries of the filter and the input and producing a 2-dimensional activation map of that filter. As a result, the network learns filters that activate when it detects some specific type of feature at some spatial position in the input. Stacking the activation maps for all filters along the depth dimension forms the full output volume of the convolution layer. Every entry in the output volume can thus also be interpreted as an output of a neuron that looks at a small region in the input and shares parameters with neurons in the same activation map. A feature map, or activation map, is the output activations for a given filter. Feature map and activation has same meaning. In some papers it is called an activation map because it is a mapping that corresponds to the activation of different parts of the image, and also a feature map because it is also a mapping of where a certain kind of feature is found in the image. A high activation means that a certain feature was found. Another important concept of CNNs is pooling, which is a form of non-linear down-sampling. There are several non- linear functions to implement pooling among which max pooling is the most common. It partitions the input image into a set of non-overlapping rectangles and, for each such sub-region, outputs the maximum. Intuitively, the exact location of a feature is less important than its rough location relative to other features. This is the idea behind the use of pooling in convolutional neural networks. The pooling layer serves to progressively reduce the spatial size of the representation, to reduce the number of parameters, memory footprint and amount of computation in the network, and hence to also control overfitting. It is common to periodically insert a pooling layer between successive convolutional layers in a CNN architecture. The pooling operation provides another form of translation invariance. The pooling layer operates independently on every depth slice of the input and resizes it spatially. The most common form is a pooling layer with filters of size 2×2 applied with a stride of 2 at every depth slice in the input by 2 along both width and height, discarding 75% of the activations. In this case, every max operation is over 4 numbers. The depthdimension remains unchanged. In addition to max pooling, pooling units can use other functions, such as average poolingor ℓ2-norm pooling. Average pooling was often used historically but has recently fallen out of favour compared to max pooling, which often performs better in practice. Due to the aggressive reduction in the size of the representation, there is a recent trend towards using smaller filters or discarding pooling layers altogether. "Region of Interest" pooling (also known as ROI pooling) is a variant of max pooling, in which output size is fixed and input rectangle is a parameter. Pooling is an important component of convolutional neural networks for object detection based on Fast R-CNN architecture. The above-mentioned ReLU is the abbreviation of rectified linear unit, which applies the non-saturating activation function. It effectively removes negative values from an activation map by setting them to zero. It increases the nonlinear properties of the decision function and of the overall network without affecting the receptive fields of the convolution layer. Other functions are also used to increase nonlinearity, for example the saturating hyperbolic tangent and the sigmoid function. ReLU is often preferred to other functions because it trains the neural network several times faster without a significant penalty to generalization accuracy.Leaky Rectified Linear Unit, or Leaky ReLU, is a type of activation function based on a ReLU, but it has a small slopefor negative values instead of a flat slope. The slope coefficient is determined before training, i.e. it is not learnt during training. This type of activation function is popular in tasks where it suffers from sparse gradients, for example training generative adversarial networks. Leaky ReLU applies the element-wise function: LeakyReLU(x)=max(0,x)+negative_slope∗min(0,x), or LeakyReLU Among them, parameters:negative_slope – Controls the angle of the negative slope. Default: 1e-2inplace – can optionally do the operation in-place. Default: False.After several convolutional and max pooling layers, the high-level reasoning in the neural network is done via fullyconnected layers. Neurons in a fully connected layer have connections to all activations in the previous layer, as seen in regular (non-convolutional) artificial neural networks. Their activations can thus be computed as an affine transformation, with matrix multiplication followed by a bias offset (vector addition of a learned or fixed bias term). The "loss layer" (including calculating of a loss function) specifies how training penalizes the deviation between the predicted (output) and true labels and is normally the final layer of a neural network. Various loss functions appropriate for different tasks may be used. Softmax loss is used for predicting a single class of K mutually exclusive classes. Sigmoid cross-entropy loss is used for predicting K independent probability values in [0, 1]. Euclidean loss is used for regressing to real-valued labels.In summary, Fig. 1 shows the data flow in a typical convolutional neural network. First, the input image is passed throughconvolutional layers and becomes abstracted to a feature map comprising several channels, corresponding to a number of filters in a set of learnable filters of this layer. Then, the feature map is subsampled using e.g. a pooling layer, whichreduces the dimension of each channel in the feature map. Next, the data comes to another convolutional layer, whichmay have different numbers of output channels. As was mentioned above, the number of input channels and outputchannels are hyper-parameters of the layer. To establish connectivity of the network, those parameters need to besynchronized between two connected layers, such that the number of input channels for the current layers should beequal to the number of output channels of the previous layer. For the first layer which processes input data, e.g. an image,the number of input channels is normally equal to the number of channels of data representation, for instance 3 channelsfor RGB or YUV representation of images or video, or 1 channel for grayscale image or video representation. Thechannels obtained by one or more convolutional layers (and possibly resampling layer(s)) may be passed to an output layer. Such output layer may be a convolutional or resampling in some implementations. In an exemplary and non- limiting implementation, the output layer is a fully connected layer. Autoencoders and unsupervised learning An autoencoder is a type of artificial neural network used to learn efficient data codings in an unsupervised manner. A schematic drawing thereof is shown in Fig. 2. The autoencoder includes an encoder side 210 with an input x inputtedinto an input layer of an encoder subnetwork 220 and a decoder side 250 with output x’ outputted from a decodersubnetwork 260. The aim of an autoencoder is to learn a representation (encoding) 230 for a set of data x, typically fordimensionality reduction, by training the network 220, 260 to ignore signal “noise”. Along with the reduction (encoder)side subnetwork 220, a reconstructing (decoder) side subnetwork 260 is learnt, where the autoencoder tries to generatefrom the reduced encoding 230 a representation x’ as close as possible to its original input x, hence its name. In thesimplest case, given one hidden layer, the encoder stage of an autoencoder takes the input ^ and maps it to ℎ:ℎ = ^(^^ + ^).This image ℎ is usually referred to as code 230, latent variables, or latent representation. Here, ^ is an element-wiseactivation function such as a sigmoid function or a rectified linear unit. ^ is a weight matrix ^ is a bias vector. Weightsand biases are usually initialized randomly, and then updated iteratively during training through Backpropagation. After that, the decoder stage of the autoencoder maps h to the reconstruction ^^of the same shape as ^: ^′ = ^′(^^ℎ′ + ^′)where ^′, ^^ and ^′ for the decoder may be unrelated to the corresponding ^, ^ and ^ for the encoder.ℒ(^, ^, ^) = ^^^(^^(ℎ|^)||^^(ℎ)) − ^^^^ℎ^^^(^^^ ^^(^|ℎ))Here, ^^^stands for the Kullback–Leibler divergence. The prior over the latent variables is usually set to be the centeredisotropic multivariate Gaussian ^^(ℎ) = ^(0, ^). Commonly, the shape of the variational and the likelihooddistributions are chosen such that they are factorized Gaussians: ^^(ℎ|^) = ^(^(^), ^^(^)^)^^(^|ℎ) = ^(^(ℎ), ^^(ℎ)^) Recent progress in artificial neural networks area and especially in convolutional neural networks enables researchers’ interest of applying neural networks based technologies to the task of image and video compression. For example, End- to-end Optimized Image Compression has been proposed, which uses a network based on a variational autoencoder. Accordingly, data compression is considered as a fundamental and well-studied problem in engineering, and is commonly formulated with the goal of designing codes for a given discrete data ensemble with minimal entropy. The solution relies heavily on knowledge of the probabilistic structure of the data, and thus the problem is closely related to probabilistic source modeling. However, since all practical codes must have finite entropy, continuous-valued data (such as vectors of image pixel intensities) must be quantized to a finite set of discrete values, which introduces an error. In this context, known as the lossy compression problem, one must trade off two competing costs: the entropy of the discretized representation (rate) and the error arising from the quantization (distortion), which, as described above, can be particularly problematic in the context of SCIs. Different compression applications, such as data storage or transmission over limited-capacity channels, demand different rate–distortion trade-offs. Joint optimization of rate and distortion is difficult. Without further constraints, the general problem of optimal quantization in high-dimensional spaces is intractable. For this reason, most existing image compression methods operate by linearly transforming the data vector into a suitable continuous-valued representation, quantizing its elements independently, and then encoding the resulting discrete representation using a lossless entropy code. This scheme is called transform coding due to the central role of the transformation. For example, JPEG uses a discrete cosine transform on blocks of pixels, and JPEG 2000 uses a multi-scale orthogonalwavelet decomposition. Typically, the three components of transform coding methods – transform, quantizer, andentropy code – are separately optimized (often through manual parameter adjustment). Modern video compressionstandards like HEVC, VVC and EVC also use transformed representation to code residual signal after prediction. The several transforms are used for that purpose such as discrete cosine and sine transforms (DCT, DST), as well as low frequency non-separable manually optimized transforms (LFNST). Variational image compression Variable Auto-Encoder (VAE) framework can be considered as a nonlinear transforming coding model. Thetransforming process can be mainly divided into four parts. This is exemplified in Fig. 3A showing a VAE framework.The transforming process can be mainly divided into four parts: Fig. 3A exemplifies the VAE framework. In Fig. 3A,the encoder 101 maps an input image x into a latent representation (denoted by y) via the function y = f (x). This latent representation may also be referred to as a part of or a point within a “latent space” in the following. The function f() is a transformation function that converts the input signal x into a more compressible representation y. The quantizer 102transforms the latent representation y into the quantized latent representation ^ with (discrete) values by ^ = ^(^), withQ representing the quantizer function. The entropy model, or the hyper encoder / decoder (also known as hyperprior) 103estimates the distribution of the quantized latent representation ^^ to get the minimum rate achievable with a losslessentropy source coding. The latent space can be understood as a representation of compressed data in which similar data points are closer together in the latent space. Latent space is useful for learning data features and for finding simpler representations of data foranalysis. The quantized latent representation T, ^^ and the side information ^̂ of the hyperprior 3 are included into abitstream 2 (are binarized) using arithmetic coding (AE). Furthermore, a decoder 104 is provided that transforms thequantized latent representation to the reconstructed image ^, ^ = ^(^). The signal ^ is the estimation of the input imagex. It is desirable that x is as close to ^ as possible, in other words the reconstruction quality is as high as possible.However, the higher the similarity between ^ and x, the higher the amount of side information necessary to betransmitted. The side information includes bitstream1 and bitstream2 shown in Fig. 3A, which are generated by the encoder and transmitted to the decoder. Normally, the higher the amount of side information, the higher the reconstruction quality. However, a high amount of side information means that the compression ratio is low. Therefore,one purpose of the system described in Fig.3A is to balance the reconstruction quality and the amount of side informationconveyed in the bitstream.In Fig. 3A the component AE 105 is the Arithmetic Encoding module, which converts samples of the quantized latentrepresentation ^^ and the side information ^̂ into a binary representation bitstream 1. The samples of ^^ and ^̂ might forexample comprise integer or floating point numbers. One purpose of the arithmetic encoding module is to convert (via the process of binarization) the sample values into a string of binary digits (which is then included in the bitstream that may comprise further portions corresponding to the encoded image or further side information). The arithmetic decoding (AD) 106 is the process of reverting the binarization process, where binary digits are convertedback to sample values. The arithmetic decoding is provided by the arithmetic decoding module 106.It is noted that the present disclosure is not limited to this particular framework. Moreover, the present disclosure is notrestricted to image or video compression, and can be applied to object detection, image generation, and recognition systems as well.In Fig. 3A there are two sub networks concatenated to each other. A subnetwork in this context is a logical divisionbetween the parts of the total network. For example, in Fig. 3A the modules 101, 102, 104, 105 and 106 are called the “Encoder / Decoder” subnetwork. The “Encoder / Decoder” subnetwork is responsible for encoding (generating) anddecoding (parsing) of the first bitstream “bitstream1”. The second network in Fig.3A comprises modules 103, 108, 109,110 and 107 and is called “hyper encoder / decoder” subnetwork. The second subnetwork is responsible for generatingthe second bitstream “bitstream2”. The purposes of the two subnetworks are different. The first subnetwork is responsible for:^ the transformation 101 of the input image x into its latent representation y (which is easier to compress that x),^ quantizing 102 the latent representation y into a quantized latent representation ^^,^ compressing the quantized latent representation ^^ using the AE by the arithmetic encoding module 105 to obtainbitstream “bitstream 1”,”.^ parsing the bitstream 1 via AD using the arithmetic decoding module 106, and^ reconstructing 104 the reconstructed image (^) using the parsed data.The purpose of the second subnetwork is to obtain statistical properties (e.g. mean value, variance and correlations between samples of bitstream 1) of the samples of “bitstream1”, such that the compressing of bitstream 1 by first subnetwork is more efficient. The second subnetwork generates a second bitstream “bitstream2”, which comprises the said information (e.g. mean value, variance and correlations between samples of bitstream1). The second network includes an encoding part which comprises transforming 103 of the quantized latent representation^ into side information z, quantizing the side information z into quantized side information ^̂, and encoding (e.g.binarizing) 109 the quantized side information ^̂ into bitstream2. In this example, the binarization is performed by anarithmetic encoding (AE). A decoding part of the second network includes arithmetic decoding (AD) 110, whichtransforms the input bitstream2 into decoded quantized side information ^̂′. The ^̂′ might be identical to ^̂, since thearithmetic encoding end decoding operations are lossless compression methods. The decoded quantized side information^̂′ is then transformed 107 into decoded side information ^^′. ^^′ represents the statistical properties of ^^ (e.g. mean valueof samples of ^^, or the variance of sample values or like). The decoded latent representation ^^′ is then provided to theabove-mentioned Arithmetic Encoder 105 and Arithmetic Decoder 106 to control the probability model of ^^.The Fig. 3A describes an example of VAE (variational auto encoder), details of which might be different in differentimplementations. For example in a specific implementation additional components might be present to more efficiently obtain the statistical properties of the samples of bitstream 1. In one such implementation a context modeler might be present, which targets extracting cross-correlation information of the bitstream 1. The statistical information provided by the second subnetwork might be used by AE (arithmetic encoder) 105 and AD (arithmetic decoder) 106 components.Fig. 3A depicts the encoder and decoder in a single figure. As is clear to those skilled in the art, the encoder and thedecoder may be, and very often are, embedded in mutually different devices.Fig. 3B depicts the encoder and Fig. 3C depicts the decoder components of the VAE framework in isolation. As input,the encoder receives, according to some embodiments, a picture. The input picture may include one or more channels, such as color channels or other kind of channels, e.g. depth channel or motion information channel, or the like. The output of the encoder (as shown in Fig.3B) is a bitstream1 and a bitstream2. The bitstream1 is the output of the first sub- network of the encoder and the bitstream2 is the output of the second subnetwork of the encoder.Similarly, in Fig. 3C, the two bitstreams, bitstream 1 and bitstream 2, are received as input and ^ , which is thereconstructed (decoded) image, is generated at the output. As indicated above, the VAE can be split into different logicalunits that perform different actions. This is exemplified in Figs. 3B and 3C so that Fig. 3B depicts components thatparticipate in the encoding of a signal, such as an image or video, and provided encoded information. This encodedinformation is then received by the decoder components depicted in Fig. 3C for decoding, for example. It is noted thatthe components of the encoder and decoder denoted with numerals 12x and 14x may correspond in their function to thecomponents referred to above in Fig. 3A and denoted with numerals 10x.Specifically, as is seen in Fig.3B, the encoder comprises the encoder 121 that transforms an input x into a signal y whichis then provided to the quantizer 122. The quantizer 122 provides information, ^^, to the arithmetic encoding module 125and the hyper encoder 123. The hyper encoder 123 provides the bitstream 2 already discussed above to the hyper decoder127 that in turn provides the information to the arithmetic encoding module 105 (125).The output of the arithmetic encoding module is the bitstream 1. The bitstream 1 and the bitstream 2 are the output ofthe encoding of the signal, which are then provided (transmitted) to the decoding process. Although the unit 101 (121)is called “encoder”, it is also possible to call the complete subnetwork described in Fig.3B as “encoder”. The process ofencoding in general means the unit (module) that converts an input to an encoded (e.g., compressed) output. It can beseen from Fig.3B, that the unit 121 can be actually considered as a core of the whole subnetwork, since it performs the conversion of the input x into y, which is the compressed version of the x. The compression in the encoder 121 may beachieved by, e.g., applying a neural network, or in general any processing network with one or more layers. In such aprocessing network, the compression may be performed by cascaded processing including downsampling, which reducesa size and / or number of channels of the input. Thus, the encoder may be referred to, e.g., as a neural network (NN) basedencoder, or the like. The remaining parts in the figure (quantization unit, hyper encoder, hyper decoder, arithmetic encoder / decoder) are allparts that either improve the efficiency of the encoding process or are responsible for converting the compressed outputy into a series of bits (bitstream). Quantization may be provided to further compress the output of the NN encoder 121 by a lossy compression. The AE 125 in combination with the hyper encoder 123 and hyper decoder 127 used to configurethe AE 125 may perform binarization, which may further compress the quantized signal by a lossless compression.Therefore, it is also possible to call the whole subnetwork in Fig. 3B an “encoder”.A majority of Deep Learning (DL) based image / video compression systems reduce dimensionality of the signal before converting the signal into binary digits (bits). In the VAE framework for example, the encoder, which is a non-linear transform, maps the input image x into y, where y has a smaller width and height than x. Since the y has a smaller width and height, hence a smaller size, the (size of the) dimension of the signal is reduced, and, hence, it is easier to compress the signal y. It is noted that in general, the encoder does not necessarily need to reduce the size in both (or in general all) dimensions. Rather, some exemplary implementations may provide an encoder which reduces size only in one (or in general a subset of) dimension.In J. Balle, L. Valero Laparra, and E. P. Simoncelli (2015). “Density Modeling of Images Using a GeneralizedNormalization Transformation”, In: arXiv e-prints, Presented at the 4th Int. Conf. for Learning Representations, 2016 (referred to in the following as “Balle”) the authors proposed a framework for end-to-end optimization of an image compression model based on nonlinear transforms. The authors optimize for Mean Squared Error (MSE), but use a moreflexible transforms built from cascades of linear convolutions and nonlinearities. Specifically, authors use a generalizeddivisive normalization (GDN) joint nonlinearity that is inspired by models of neurons in biological visual systems, and has proven effective in Gaussianizing image densities. This cascaded transformation is followed by uniform scalar quantization (i.e., each element is rounded to the nearest integer), which effectively implements a parametric form of vector quantization on the original image space. The compressed image is reconstructed from these quantized values using an approximate parametric nonlinear inverse transform.Such an example of the VAE framework is shown in Fig. 4, and it utilizes 6 downsampling layers (401 to 406). Thenetwork architecture includes a hyperprior model. The left side (ga, gs) shows an image autoencoder architecture, the right side (ha, hs) corresponds to the autoencoder implementing the hyperprior. The factorized-prior model uses the identical architecture for the analysis and synthesis transforms ga and gs. Q represents quantization, and AE, AD represent arithmetic encoder and arithmetic decoder, respectively. The encoder subjects the input image x to ga, yielding the responses y (latent representation) with spatially varying standard deviations. The encoding ga includes a plurality of convolution layers with subsampling and, as an activation function, generalized divisive normalization (GDN). The responses are fed into ha, summarizing the distribution of standard deviations in z. z is then quantized, compressed,and transmitted as side information. The encoder then uses the quantized vector ^̂ to estimate ^^, the spatial distributionof standard deviations which is used for obtaining probability values (or frequency values) for arithmetic coding (AE),and uses it to compress and transmit the quantized image representation ^^ (or latent representation). The decoder firstrecovers ^̂ from the compressed signal. It then uses hs to obtain ^^, which provides it with the correct probability estimatesto successfully recover ^^ as well. It then feeds ^^ into gs to obtain the reconstructed image. In Fig. 4, there is also shown the decoder comprising upsampling layers 407 to 412. A further layer 420 is provided between the upsampling layers 411 and 410 in the processing order of an input that is implemented as a convolutional layer but does not provide an upsampling to the input received. A corresponding convolutional layer 430 is also shown for the decoder. Such layers can be provided in NNs for performing operations on the input that do not alter the size of the input but change specific characteristics. However, it is not necessary that such a layer is provided.When seen in the processing order of bitstream 2 through the decoder, the upsampling layers are run through in reverseorder, i.e., from upsampling layer 412 to upsampling layer 407. Each upsampling layer is shown here to provide anupsampling with an upsampling ratio of 2, which is indicated by the ↑. It is, of course, not necessarily the case that all upsampling layers have the same upsampling ratio and also other upsampling ratios like 3, 4, 8 or the like may be used. The layers 407 to 412 are implemented as convolutional layers (conv). Specifically, as they may be intended to provide an operation on the input that is reverse to that of the encoder, the upsampling layers may apply a deconvolution operation to the input received so that its size is increased by a factor corresponding to the upsampling ratio. However, the present disclosure is not generally limited to deconvolution and the upsampling may be performed in any other manner such as by bilinear interpolation between two neighboring samples, or by nearest neighbor sample copying, or the like. In the first subnetwork, some convolutional layers (401 to 403) are followed by generalized divisive normalization (GDN) at the encoder side and by the inverse GDN (IGDN) at the decoder side. In the second subnetwork, the activation function applied is ReLU. It is noted that the present disclosure is not limited to such implementation and in general, other activation functions may be used instead of GDN or ReLU. In the present specification, a ‘parameter’ is a value used in an operation process of each layer forming a neural network, and for example, may include a weight used when an input value is applied to a certain operation expression. Here, the parameter may be expressed in a matrix form. The parameter is a value set as a result of training, and may be updatedthrough separate training data when necessary.As described above, compression algorithms are typically optimized for natural images and as such they can often failwith SCIs. That is, such compression techniques can introduce distortions into a compressed image resulting in varyingdegrees of degradation that can, e.g., render certain parts of an SCI unreadable or incomprehensible.In classical screen content coding for compressing SCIs, one technique that is adapted in HEVC is Intra Block Copy, asdescribed in, for example, X. Xu et al., "Intra Block Copy in HEVC Screen Content Coding Extensions", IEEE Journalon Emerging and Selected Topics in Circuits and Systems, vol. 6, no. 4, pp. 409-419, Dec. 2016, doi: 10.1109 / JETCAS.2016.2597645.During encoding, the algorithm searches for similar blocks in a reconstructed copy of the original frame of the SCI. Thesearch area is limited such that the reconstructed blocks need to be decoded before a current block in a Decoder. If suchblocks are found, then instead of coding the current block, the Encoder codes a displacement vector pointing towards thediscovered block. The Decoder can use this vector to copy an already decoded block for the reconstruction of currentblock. Another classical screen content coding approach is Palette Mode Coding as described in, for example, W. Pu et al., "Palette Mode Coding in HEVC Screen Content Coding Extension," in IEEE Journal on Emerging and Selected Topics in Circuits and Systems, vol.6, no.4, pp.420-432, Dec.2016, doi: 10.1109 / JETCAS.2016.2605661.This technique aims to exploit the repeating colours in SCIs by coding them in tables. First, a table corresponding to thepossible colours in each block is created. Then, with the help of this table, the pixel colours are mapped with indexes. Finally, instead of coding the image block as is, the Encoder sends the indexes alongside the table to save some bitrate.However, the classical image compression algorithms typically rely on hand-crafted feature extraction. This means theymust rely on assumptions about the data which may not always hold. These approaches are also limited in theirperformance since it is not feasible to determine every pattern in data and create a filter to exploit it for better compressiongains. On the other hand, learned image compression algorithms can create more efficient representations for images thanks to the abundance of data and end-to-end training techniques developed over the years. However, once they are deployed,it is very hard to update these models for new kinds of data without breaking compatibility with existing files.Additionally, the Screen Content data is underrepresented in most learning-based compression datasets, resulting in bad performance for SCIs. Finally, the model architectures in learning-based compression algorithms are not suited to fully exploit the redundancy and patch similarity of SCIs. Even if the SC images are introduced in the training sets of learning based codecs, they have hard time to generalize over them together since the image distributions are very different for SC and natural images. This results in very poor performance for both classes of data. Finally, there are hybrid approaches such as training a ComCNN and RecCNN around a classical codec or incorporating neural networks to speed up Coding Unit prediction. However, these approaches are highly complex by nature. Since most modules in these systems contain non-differentiable operations, such as rounding, selecting, or sampling they are not suitable for end-to-end training which can easily achieve higher coding performance by optimizing every module together. Moreover, the downscaling of the original input is not a good approach for Screen Content images where theedges are sharp and / or thin, which are destroyed during interpolation to lower resolution.According to an example, two NN modules (CR and RS) can be employed to assist with the compression of screencontent data. The implementation of the two NN modules mentioned can improve compression quality over existingtechniques. The former module can be used to augment an image comprising an SCI in terms of compressibility, whereasthe latter module can be used to revert those augmentations and some compression noise to recover a close approximation of the original input. Forward and inverse linear transformations can be used before these modules so that the internal structures of SCIs can be exploited in order to produce smaller bitstreams. In an example, parameters of the forward and linear transformations can be computed from the image and / or fixed beforehand, allowing more flexibility duringcompression. The pipeline provides the option to turn the additional filters on or off, so images do not suffer anyperformance drop compared to the baseline image encoders and image decoders. According to an example, the CR and RS modules, which are described in more detail below, can be provided at thesame logical positions in an encoder / decoder architecture. At an encoder side, a global linear transformation can beapplied to generate linearly transformed image data before further processing using the CR module. At a decoder side,an inverse global linear transformation can be applied before further processing using the RS module.A method and system according to an example can utilise a differentiable image codec as baseline, thereby meaning thatthe implementation is end-to-end trainable. As such, there need be no reliance on approximations to find optimalparameters. Instead, large available datasets can be used to ameliorate the compression performance of the baseline codec for SCIs. Moreover, the methods and systems provided are adaptable to use cases of other kinds of images because the modules are easily replaceable. Furthermore, by using a fixed image codec, compatibility with existinginfrastructures for the codec is ensured.Figure 5 is a schematic representation of an encoder, according to an example. The encoder 500 as illustrated in figure5 can be used to implement a method for encoding an input tensor representing image data 501, whereby to generatecoded image data 503. The input data 501 can be provided to an on / off decision module 505 that determines whether toimplement an enhanced encoding process of the encoder 500 and which is configured to generate data 507 representingan ‘on / off’ flag that can be used to indicate whether the process of the enhanced encoding according to an exampleshould be used.The On / Off decision module 505 can make a decision based on the input image data 501. If the decision is negative,enhanced encoding can be bypassed (509) and an underlying baseline codec implemented using image encoder module527 can be used to compress the image data. That is, if the decision is negative, image data 501 can bypass otherprocessing and is input directly to image encoder module 527, which outputs coded image data 503 in the form of an output bitstream. When a decision by the On / Off decision module 505 is positive, enhanced encoding can be activated. That is, the inputimage data 501 can be passed (509) to other modules of the encoder 500 for processing, as will be described in moredetail below.A decision made by the On / Off decision module 505 may be made by running the system once for each decision andcomparing the coding performance between them. Alternatively, On / Off decision module 505 can comprise NN basedor classical classifier to check if a given image, provided by the input image data 501, is, e.g., a SCI or if it benefits from activating additional modules on top of the baseline codec. In an example, the On / Off decision module 505 can be implemented with a heuristic algorithm. The output signal 507 of the On / Off decision module 505 can be transmitted to or otherwise provided to a decoder.If the on signal is produced by the On / Off decision module 505, the input image data 501 is provided to a TransformSelection Module 513. This module 513 generates transformation parameters 517 and a transformation index 519 for aforward transform module 515 of the encoder 500. The forward transform module 515 also takes as input the inputimage data 501 in order to apply a selected linear transformation thereto. Transform Selection Module 513 takes theinput image data 501 as an input and determines what transform should be applied by the forward transform module 515.In an example, this decision may or may not be based on image or patch statistics determined from the input image data501. For example, transform selection module 513 can process the input image data 501 to determine whether itcorresponds to an SCI.The Transform Selection Module 513 can compare options from a list of alternative transformations according to theirpredicted or actual performance. An optimal transformation can be provided for different image types. For example, aparticular linear transformation can be associated with SCIs and can be selected as a combination of such a lineartransformation with subsequent processing, as described below, can result in an optimally encoded image.Once an optimal transformation is chosen, its index 519 is output and can be transmitted to a decoder. If the chosentransformation requires additional parameters 517 such as a colour transformation matrix, a downscale ratio or alphablending coefficient for example, these may be computed and additionally transmitted to the decoder. Alternatively, thetransformations may use a fixed set of parameters, which need not be transmitted to a decoder (i.e., the decoder can bepre-configured with such information). According to an example, forward transform module 515 can be used to process the input image data 501 using a selected global linear transformation to generate a first tensor comprising linearly transformed image data. In an example, aselected global linear transformation can comprise a colour space transformation where, for example, a 3 x 3transformation matrix can be learned, produced by Principal Component Analysis (PCA), or taken from a known transformation such as “RGB to HSV” or “RGB to YUV”. Another class of transformation from which a global lineartransformation may be selected can change the resolution of some or all channels of the image represented by the inputimage data 501. Alternatively, the selected global linear transformation can comprise an alpha blending mixing of theoriginal image represented by the input image data 501 and the transformed image. The chosen transformation may bea combination of one or multiple such transformations in any order which can be specified with the transformation parameters. In an example, the selected global linear transformation can comprise a transformation in which the originalimage represented by the input image data 501 is converted from colour, e.g., RGB, to Grayscale colour and mixed withthe original image using alpha blending. In an example, an alpha blending coefficient can be around 0.8. This specifictransformation combination is referred to as a desaturation transformation.Figure 6 is a schematic representation of a global linear transformation of the forward transform module of figure 5,according to an example. In the example of figure 6, the input 601 comprises the input image data 501. The input 601is fed to a grayscale transformation module 603. The grayscale transformation module 603 transforms the input imagedata 501 from its colorspace to grayscale, e.g., from RGB, YCbCr, HSV or LAB etc. to grayscale. For example, thegamma compression function can be removed via gamma expansion (linearization) to transform the input image data501 to a linear RGB colorspace, so that an appropriate weighted sum can be applied to the linear color components tocalculate a linear luminance Ylinear. A predefined alpha value, such as 0.8 for example, can be used to weight 605 eachchannel of the input image data 501. The grayscale components of the input image data 501, determined using the grayscale transformation module 603, are weighted 607 by a factor of 1 minus the alpha value, and the results of the two weightings (to the original input image data and the grayscale transformation) are combined 609 to generate a first tensor520 comprising linearly transformed image data, which, referring to figure 5, is passed to CR module 521. As notedabove, an index 519, representing a selected linear transformation, is output and transmitted to a decoder. If the selectedtransformation requires additional parameters 517 such as a colour transformation matrix, a downscale ratio or alphablending coefficient (e.g., 0.8 as described with reference to figure 6) for example, these may be computed andadditionally transmitted to the decoder.According to an example, CR module 521 comprises a NN that is configured to process the first tensor 520 comprisingthe linearly transformed image data to generate a second tensor 522 comprising a pre-processed tensor representation ofthe input image data 501. The second tensor can comprise an input tensor for an image encoder 527. In an example, theinput tensor can be provided as input for an image encoder 527 configured to generate a bitstream representing codedimage data. That is, the input tensor can be provided as input for an image encoder 527 configured to encode image data.In an example, the CR module 521 can comprise a NN including at least one convolutional layer. In an implementation,the NN, or part thereof, can comprise an inverted residual structure. A specific implementation for a NN of the CRmodule 521 can be predefined or determined on the basis of the input image data 501. That is, in an example, CRselection module 523 can take the input image data 501 as an input. The CR selection module 523 can use the inputimage data 501 to determine what NN should be implemented or applied in CR module 521. In an example, this decisionmay or may not be based on image or patch statistics and / or in relation to a selected linear transform as determined bythe transform selection module 513. The CR selection module 523 can compare options from a list of alternative NN implementations according to their predicted or actual performance. Once an optimal NN implementation is selected,its index 525 can be output and transmitted to a decoder. The index 525 can be provided to the CR module 521 in orderto enable a selected NN to be implemented. In an example, NN implementations can use a set of predefined parameters,which need not be transmitted to a decoder so long as the decoder is aware of which NN to implement from the index525. According to an example, CR module 521 comprises a NN configured to compute a more compressible version ofthe transformed image represented by the first tensor 520.Figure 7 is a schematic representation of a NN architecture, according to an example. In the example of figure 7, a NNarchitecture implemented by CR module 521 is depicted. An input image 701, i.e., the first tensor 520 comprisinglinearly transformed input image data 501, is provided to the CR module 521. In the example of figure 7, the first tensor520 comprises a three channel image that is 256 x 256 pixels in dimension. The NN architecture of figure 7 downsamplesthe first tensor 520 representing image 701 and increases the number of channels with a convolutional layer 703. A setof Mobile Inverted Residual Bottleneck Convolution (MBConv) layers 705 are used to process the result of this layer703. The set of layers 705 form an inverted residual block that maps a relatively narrow input layer 703 to a wider innerlayer, which in turns maps onto a narrow output layer. The output of layers 705 is passed through another convolution707 to reduce the number of channels to 12, the output of which can then be reshaped 709 to produce the same shapeoutput as the input 701. The original input 701 and this intermediate result 710, which comprises an image-likedisplacement tensor, are added together 711 to form the final output 713 of the CR module 521. That is, the image data701 (i.e., the first tensor 520) and the image-like displacement tensor derived from the first tensor 710 comprising imagedata from the output of layer 709 can be added together (711), i.e., respective components are added whereby to generatea pre-processed tensor representation 713 of the input image data 501. The final output 713 of the CR module 521 thuscomprises pre-processed tensor representation of the input image data 501 in the form of second tensor 522. The numberof layers and the number of intermediary channels can differ depending on the design needs.CR module 521 thus essentially generates a compact representation of the input image data 501 defining a second tensor522 which comprises a pre-processed tensor representation of the input image data 501. The output of the CR module521, i.e., second tensor 522, can be passed to an Image Encoder module 527 that can be used to encode the pre-processedtensor representation (522) of the image data (501) to generate coded image data 503. That is, the image encoder module527 converts the second tensor 522 to a bitstream comprising coded image data 503.According to an example, the combination of the forwards transform module 515 and CR module 521 effectively form a preprocessor structure for an image encoder 527 configured to encode an input tensor representing image data. Sucha preprocessor structure can be implemented using processing circuitry configured to process the input image data 501using a selected global transformation, using module 515, to generate the first tensor 520 comprising transformed imagedata. The first tensor 520 can then be processed by one or more layers of a selected NN in CR module 521 in order togenerate an input tensor (i.e., second tensor 522), which can be provided as input for the image encoder module 527,which is configured to generate coded image data. In an example, at least one of: a set of configuration parameters forthe selected global transformation, a first index representing the selected global transformation, and a second indexrepresenting the selected neural network to a decoder can be provided.The image encoder module 527 may be the encoder part of a learned image codec with frozen weights, for example.Note that, as described above, if the On / Off Switch signal 507 was off, then the encoder 500 skips the TransformSelection Module 513 and the CR selection module 523, as well as the Forward Transformation Module 515 and the CRModule 521. In this case, the original image 501 is fed to the Image Encoder module 527 instead of the compactrepresentation of the second tensor 522. The Bitstream 503 can be transmitted to a decoder side.Figure 8 is a schematic representation of a decoder, according to an example. In the example of figure 8, after theBitstream 503, On / Off Switch signal 507, Transformation Index 519, Transformation Parameters 517 and CR / RStransform index 525 are acquired, the decoder 800 may decode a reconstruction for the original image 501. That is,decoder 800 can decode the bitstream 503 via the Image Decoder 801 to reconstruct the compact representation versionof the original image. Then, depending on the On / Off Switch signal 507, the rest of the modules of the decoder 800may be skipped and the output of the image decoder 810 output directly 803. In case the On / Off Switch signal 507 ison, the process is continued with the other modules of the decoder 800. That is, the Transformation Index 519,Transformation Parameters 517 and CR / RS transform index 525 are consumed by the Inverse Transformation SelectionModule 805. This module (805) selects an appropriate inverse transformation depending on what was used in the encoderside. The inverse transformations can be exact in the case of transformations such as Colour Space conversions or alpha blending. However, the exact inverse transformations are non-existent for some kinds of information losing lineartransformations such as down sampling or a weighted mix of linear transformations. In such cases, a Moore – PenroseInverse of the forward linear transformation can be implemented. However, other kinds of inverse transformations are possible. The selected transformation is passed to the Inverse Transformation Module 807 so that it can be applied on thereconstructed compact representation. In an example, a Desaturation Transformation with alpha coefficient 1.25 can beused. The Desaturation Transformation is its own inverse with an alpha coefficient as the multiplicative inverse of theone in the forward transformation module 515.After the inverse transformation is applied, the RS Module 809 is used to reconstruct the original input image data fromthe inverse transformed representation. As its counterpart in the encoder 500, this module (809) uses a NN, selectedusing the inverse CR / RS selection module 811 on the basis of the transform index 525 to produce the final output 803.The architecture of a NN of the RS module 809 according to an example can be a symmetric inverse version of the NN used in the CS module 521. That is, the NN in the CS module 521 and the RS module 809 can be of the same size, with the same number of channels and same number of layers. However, they can be trained separately and use separate sets of weights. The output of RS module 809 is returned as the decoder side reconstruction of the original image. According to an example, the combination of the inverse transform module 807 and RS module 809 effectively form apostprocessor structure for an image decoder 801 configured to decode an input tensor representing image data. Such apostprocessor structure can be implemented using processing circuitry configured to receive at least one of: a set ofconfiguration parameters for a selected global transformation, a first index representing the selected globaltransformation, and a second index representing a selected neural network from an encoder, and receive an initialrepresentation of decoded image data comprising a pre-processed tensor representation of image data. The initialrepresentation of decoded image data (e.g., a first tensor 520) can be processed using an inverse global transformationselected on the basis of the first index, and the inverse global transformation can be configured on the basis of the set ofconfiguration parameters, whereby to generate an initial representation of decoded image data. The initial representationof decoded image data can be processed by one or more layers of a NN of the RS module 809 to generate output imagedata 803.The corresponding system which may deploy the above-mentioned encoder-decoder processing chain is illustrated,according to an example, in Fig. 9. Fig. 9 is a schematic block diagram illustrating an example coding system, e.g., avideo, image, audio, and / or other coding system (or short coding system) that may utilize techniques of this presentapplication. Video or image encoder 20 (or short encoder 20) and video or image decoder 30 (or short decoder 30) ofvideo or image coding system 10 represent examples of devices that may be configured to perform techniques inaccordance with various examples described in the present application. For example, the video and / or image coding and decoding may employ neural network such which may be distributed and which may apply the above-mentioned bitstream parsing and / or bitstream generation to convey feature maps between distributed computation nodes (two or more). As shown in Fig. 9, the coding system 10 comprises a source device 12 configured to provide, over a communicationchannel 13, encoded picture or image data 21 to, for example, a destination device 14 for decoding the encoded pictureor image data.The source device 12 comprises an encoder 20, such as that described above with reference to figure 5 for example, andmay additionally, i.e., optionally, comprise a picture source 16, a pre-processor (or pre-processing unit) 18, e.g. a picturepre-processor 18, and a communication interface or communication unit 22. The picture source 16 may comprise or be any kind of picture capturing device, for example a camera for capturing a real-world picture, and / or any kind of a picture generating device, for example a computer-graphics processor for generating a computer animated picture, or any kind of other device for obtaining and / or providing a real-world picture, a computer generated picture (e.g. a screen content, a virtual reality (VR) picture) and / or any combination thereof (e.g. an augmented reality (AR) picture). The picture source may be any kind of memory or storage storing any of the aforementioned pictures. In distinction to the pre-processor 18 and the processing performed by the pre-processing unit 18, the picture or picture data 17 may also be referred to as raw picture or raw picture data 17. Pre-processor 18 is configured to receive the (raw) picture data 17 and to perform pre-processing on the picture data 17 to obtain a pre-processed picture 19 or pre-processed picture data 19. Pre-processing performed by the pre-processor 18 may, e.g., comprise trimming, color format conversion (e.g. from RGB to YCbCr), color correction, or de-noising. It can be understood that the pre-processing unit 18 may be optional component. It is noted that the pre-processing may also employ a neural network (such as described above with reference to any of Figs.1 to 8). The encoder 20 is configured to receive the pre-processed picture data 19 and provide encoded picture data 21. Communication interface 22 of the source device 12 may be configured to receive the encoded picture data 21 and to transmit the encoded picture data 21 (or any further processed version thereof) over communication channel 13 to another device, e.g. the destination device 14 or any other device, for storage or direct reconstruction.The destination device 14 comprises a decoder 30 (e.g., a video or image decoder 30, such as that described above withreference to figure 8 for example), and may additionally, i.e. optionally, comprise a communication interface or communication unit 28, a post-processor 32 (or post-processing unit 32) and a display device 34. The communication interface 28 of the destination device 14 is configured receive the encoded picture data 21 (or any further processed version thereof), e.g. directly from the source device 12 or from any other source, e.g. a storage device, e.g. an encoded picture data storage device, and provide the encoded picture data 21 to the decoder 30.The communication interface 22 and the communication interface 28 may be configured to transmit or receive theencoded picture data 21 or encoded data 13 via a direct communication link between the source device 12 and the destination device 14, e.g. a direct wired or wireless connection, or via any kind of network, e.g. a wired or wireless network or any combination thereof, or any kind of private and public network, or any kind of combination thereof. The communication interface 22 may be, e.g., configured to package the encoded picture data 21 into an appropriate format, e.g. packets, and / or process the encoded picture data using any kind of transmission encoding or processing for transmission over a communication link or communication network.The communication interface 28, forming the counterpart of the communication interface 22, may be, e.g., configuredto receive the transmitted data and process the transmission data using any kind of corresponding transmission decodingor processing and / or de-packaging to obtain the encoded picture data 21.Both, communication interface 22 and communication interface 28 may be configured as unidirectional communicationinterfaces as indicated by the arrow for the communication channel 13 in Fig. 9 pointing from the source device 12 tothe destination device 14, or bi-directional communication interfaces, and may be configured, e.g. to send and receive messages, e.g. to set up a connection, to acknowledge and exchange any other information related to the communication link and / or data transmission, e.g. encoded picture data transmission. The decoder 30 is configured to receive the encoded picture data 21 and provide decoded picture data 31 or a decoded picture 31. The post-processor 32 of destination device 14 is configured to post-process the decoded picture data 31 (also called reconstructed picture data), e.g. the decoded picture 31, to obtain post-processed picture data 33, e.g. a post-processed picture 33. The post-processing performed by the post-processing unit 32 may comprise, e.g. color format conversion (e.g. from YCbCr to RGB), color correction, trimming, or re-sampling, or any other processing, e.g. for preparing thedecoded picture data 31 for display, e.g. by display device 34. Such post-processing (and also pre-processing notedabove with reference to source device 12) may be in addition to any pre- or post-processing described with reference tofigures 5 to 8, for example.The display device 34 of the destination device 14 is configured to receive the post-processed picture data 33 for displaying the picture, e.g. to a user or viewer. The display device 34 may be or comprise any kind of display for representing the reconstructed picture, e.g. an integrated or external display or monitor. The displays may, e.g. comprise liquid crystal displays (LCD), organic light emitting diodes (OLED) displays, plasma displays, projectors , micro LED displays, liquid crystal on silicon (LCoS), digital light processor (DLP) or any kind of other display.Although Fig. 9 depicts the source device 12 and the destination device 14 as separate devices, embodiments of devicesmay also comprise both or both functionalities, the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality. In such embodiments the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality may be implemented using the same hardware and / or software or by separate hardware and / or software or any combination thereof. As will be apparent for the skilled person based on the description, the existence and (exact) split of functionalities ofthe different units or functionalities within the source device 12 and / or destination device 14 as shown in Fig. 9 mayvary depending on the actual device and application.The encoder 20 (e.g., a video or image encoder 20) or the decoder 30 (e.g., a video or image decoder 30) or both encoder20 and decoder 30 may be implemented via processing circuitry as shown in Fig.10, such as one or more microprocessors,digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, video coding dedicated or any combinations thereof. The encoder 20 may beimplemented via processing circuitry 46 to embody the various modules including the neural network or its parts. Thedecoder 30 may be implemented via processing circuitry 46 to embody any coding system or subsystem described herein.The processing circuitry may be configured to perform the various operations as discussed later. If the techniques areimplemented partially in software, a device may store instructions for the software in a suitable, non-transitory computer-readable storage medium and may execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Either of video encoder 20 and video decoder 30 may be integrated as part of a combined encoder / decoder (CODEC) in a single device, for example, as shown in Fig.10. Source device 12 and destination device 14 may comprise any of a wide range of devices, including any kind of handheldor stationary devices, e.g. notebook or laptop computers, mobile phones, smart phones, tablets or tablet computers,cameras, desktop computers, set-top boxes, televisions, display devices, digital media players, video gaming consoles, video streaming devices(such as content services servers or content delivery servers), broadcast receiver device, broadcast transmitter device, or the like and may use no or any kind of operating system. In some cases, the source device 12 and the destination device 14 may be equipped for wireless communication. Thus, the source device 12 and the destination device 14 may be wireless communication devices.In some cases, video coding system 10 illustrated in Fig. 9 is merely an example and the techniques of the presentapplication may apply to video coding settings (e.g., video encoding or video decoding) that do not necessarily include any data communication between the encoding and decoding devices. In other examples, data is retrieved from a local memory, streamed over a network, or the like. A video encoding device may encode and store data to memory, and / or a video decoding device may retrieve and decode data from memory. In some examples, the encoding and decoding is performed by devices that do not communicate with one another, but simply encode data to memory and / or retrieve and decode data from memory.Fig.11 is a schematic diagram of a coding device 8000 according to an embodiment of the disclosure. The coding device8000 is suitable for implementing the disclosed embodiments as described herein. In an embodiment, the coding device8000 may be a decoder such as decoder 30 of Figs. 9 or 10 or an encoder such as encoder 20 of Figs. 9 or 10.The video coding device 8000 comprises ingress ports 8010 (or input ports 8010) and receiver units (Rx) 8020 for receiving data; a processor, logic unit, or central processing unit (CPU) 8030 to process the data; transmitter units (Tx) 8040 and egress ports 8050 (or output ports 8050) for transmitting the data; and a memory 8060 for storing the data. The coding device 8000 may also comprise optical-to-electrical (OE) components and electrical-to-optical (EO) components coupled to the ingress ports 8010, the receiver units 8020, the transmitter units 8040, and the egress ports 8050 for egress or ingress of optical or electrical signals. The processor 8030 is implemented by hardware and software. The processor 8030 may be implemented as one or more CPU chips, cores (e.g., as a multi-core processor), FPGAs, ASICs, and DSPs. The processor 8030 is in communication with the ingress ports 8010, receiver units 8020, transmitter units 8040, egress ports 8050, and memory 8060. The processor 8030 comprises a neural network based codec 8070. The neural network based codec 8070 implements the disclosed embodiments described above. For instance, the neural network based codec 8070 implements, processes, prepares, or provides the various coding operations. The inclusion of the neural network based codec 8070 therefore provides a substantial improvement to the functionality of the video coding device 8000 and effects a transformation of the video coding device 8000 to a different state. Alternatively, the neural network based codec 8070 is implemented as instructions stored in the memory 8060 and executed by the processor 8030. The memory 8060 may comprise one or more disks, tape drives, and solid-state drives and may be used as an over-flow data storage device, to store programs when such programs are selected for execution, and to store instructions and data that are read during program execution. The memory 8060 may be, for example, volatile and / or non-volatile and may be a read-only memory (ROM), random access memory (RAM), ternary content-addressable memory (TCAM), and / or static random-access memory (SRAM).Fig. 12 is a simplified block diagram of an apparatus that may be used as either or both of the source device 12 and thedestination device 14 from Fig. 9 according to an exemplary embodiment.A processor 9002 in the apparatus 9000 can be a central processing unit. Alternatively, the processor 9002 can be anyother type of device, or multiple devices, capable of manipulating or processing information now-existing or hereafter developed. Although the disclosed implementations can be practiced with a single processor as shown, e.g., the processor 9002, advantages in speed and efficiency can be achieved using more than one processor. A memory 9004 in the apparatus 9000 can be a read only memory (ROM) device or a random access memory (RAM) device in an implementation. Any other suitable type of storage device can be used as the memory 9004. The memory 9004 can include code and data 9006 that is accessed by the processor 9002 using a bus 9012. The memory 9004 can further include an operating system 9008 and application programs 9010, the application programs 9010 including at least one program that permits the processor 9002 to perform the methods described herein. For example, the application programs 9010 can include applications 1 through N, which further include a video coding application that performs the methods described here. The apparatus 9000 can also include one or more output devices, such as a display 9018. The display 9018 may be, in one example, a touch sensitive display that combines a display with a touch sensitive element that is operable to sense touch inputs. The display 9018 can be coupled to the processor 9002 via the bus 9012. Although depicted here as a single bus, the bus 9012 of the apparatus 9000 can be composed of multiple buses. Further, a secondary storage can be directly coupled to the other components of the apparatus 9000 or can be accessed via a network and can comprise a single integrated unit such as a memory card or multiple units such as multiple memory cards. The apparatus 9000 can thus be implemented in a wide variety of configurations.Fig. 13 is a block diagram of a coding system 10000 according to an embodiment of the disclosure.A platform 10002 in the system 10000 can be could sever or local sever. Alternatively, the platform 10002 can be anyother type of device, or multiple devices, capable of calculation, storing, transcoding, encryption, rendering, decodingor encoding. Although the disclosed implementations can be practiced with a single platform as shown, e.g., the platform10002, advantages in speed and efficiency can be achieved using more than one platform.A content delivery network (CDN) 10004 in the system 10000 can be a group of geographically distributed servers.Alternatively, the CDN 10004 can be any other type of device, or multiple devices, capable of data buffering, scheduling, dissemination or speed up the delivery of web content by bringing it closer to where users are. Although the disclosed implementations can be practiced with a single CDN as shown, e.g., the CDN 10004, advantages in speed and efficiency can be achieved using more than one CDN.A terminal 10006 in the apparatus 10000 can be a mobile phone, computer, television, laptop, camera. Alternatively, theterminal 10006 can be any other type of device, or multiple devices, capable of displaying video or image.It should be noted that RGB and YUV are common color spaces. Conversion between RGB and YUV may be performedaccording to an equation specified in standards such as CCIR 601 and BT.709.References herein to picture and / or video should be taken to include reference to an image or images, such as an SCIimage for example. That is, a video for example can comprise multiple images, such as multiple SCI images. 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 embodiments described above should not be understood as requiring such separation in all embodiments, 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. Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achievedesirable results. As one example, the processes depicted in the accompanying figures do not necessarily require theparticular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.

Claims

CLAIMS1. A method for generating an input tensor representing image data to be encoded by an encoder, the method comprising:processing the image data using a selected global transformation to generate a first tensor comprising transformed image data; processing the first tensor by one or more layers of a selected neural network, to generate the input tensor,wherein the input tensor comprises a pre-processed tensor representation of the image data;providing at least one of: a set of configuration parameters for the selected global transformation, a first indexrepresenting the selected global transformation, and a second index representing the selected neural network to a decoder;and providing the input tensor for an encoder configured to generate a bitstream representing coded image data.

2. The method of claim 1, further comprising: combining the first tensor and a latent representation of the first tensor by adding together respectivecomponents from the first tensor and the latent representation of the first tensor, whereby to generate the pre-processedtensor representation of the image data.

3. The method of claim 1 or 2, further comprising:selecting a global transformation on the basis of at least one of: the content of the image data, and the content of a portion of the image data.

4. The method of any preceding claim, wherein the global transformation comprises a colour space transformation configured to modify a colour space of the image data.

5. The method of any preceding claim, wherein the global transformation comprises a resolution transformation configured to modify a resolution of the image data.

6. The method of any preceding claim, wherein the global transformation comprises a desaturation transformationconfigured to decrease a colour saturation value of one or more colour channels of the image data.

7. The method of any preceding claim, wherein the global transformation comprises an alpha blending transformation configured to blend the image data with one or more background image data sets.

8. The method of claim 7, wherein at least one of the one or more background image data sets comprises a grayscale or desaturated version of the image data.

9. The method of any preceding claim, wherein the global transformation comprises a linear global transformation.

10. The method of any preceding claim, wherein the global transformation comprises a transformation which is identicalfor each pixel of an image represented by the image data.

11. The method of any preceding claim, further comprising:processing the first tensor using a convolution kernel to generate a first intermediate latent tensor comprising an increased number of channels for the image data; processing the first intermediate latent tensor using a depth-wise convolution kernel to generate a second intermediate latent tensor; and processing the second intermediate latent tensor using a convolution kernel to generate the input tensor.

12. The method of any preceding claim, further comprising:bypassing the application of the global transformation and processing of the first tensor by the one or more layers ofthe selected neural network in response to a determination of the content of the image data.

13. The method of claim 12, further comprising:providing, to a decoder, data representing an indication that the application of the global transformation andprocessing of the first tensor by the one or more layers of the selected neural network in response to a determination ofthe content of the image data is bypassed.

14. A method for encoding an input tensor representing image data, whereby to generate coded image data, the methodcomprising: providing an input tensor generated according to the method of any preceding claim; and encoding the input tensor to generate a bitstream representing the coded image data.

15. A preprocessor structure for an encoder configured to encode an input tensor representing image data, thepreprocessor structure comprising processing circuitry configured to:process the image data using a selected global transformation to generate a first tensor comprising transformed image data; process the first tensor by one or more layers of a selected neural network, to generate the input tensor, whereinthe input tensor comprises a pre-processed tensor representation of the image data;provide at least one of: a set of configuration parameters for the selected global transformation, a first indexrepresenting the selected global transformation, and a second index representing the selected neural network to a decoder;and provide the input tensor for an encoder configured to generate coded image data.

16. A method for decoding a bitstream representing coded image data, the method comprising:receiving at least one of: a set of configuration parameters for a selected global transformation, a first indexrepresenting the selected global transformation, and a second index representing a selected neural network at a decoder;decoding the bitstream using the decoder to generate an initial representation of decoded image data; processing the initial representation of decoded image data using an inverse global transformation selected onthe basis of the first index, wherein the inverse global transformation is configured on the basis of the set of configurationparameters, whereby to generate an output tensor comprising a pre-processed tensor representation of the image data;and process the output tensor by one or more layers of a neural network to generate output image data.

17. The method of claim 16, wherein the neural network is selected on the basis of the second index.

18. The method of claim 16 or 17, wherein the inverse global transformation comprises a colour space transformationconfigured to modify a colour space of the initial representation of decoded image data.

19. The method of any of claims 16 to 18, wherein the inverse global transformation comprises a resolutiontransformation configured to modify a resolution of the initial representation of decoded image data.

20. The method of any of claims 16 to 19, wherein the inverse global transformation comprises a saturationtransformation configured to increase a colour saturation value of one or more colour channels of the initial representation of decoded image data.

21. The method of any of claims 16 to 20, wherein the inverse global transformation comprises a sub-alpha blendingtransformation configured to generate the difference of the initial representation of decoded image data with one or morebackground image data sets.

22. The method of any of claims 16 to 21, further comprising:processing the output tensor using a convolution kernel to generate a first intermediate latent tensor comprising an increased number of channels for the image data; processing the first intermediate latent tensor using a depth-wise convolution kernel to generate a second intermediate latent tensor; and processing the second intermediate latent tensor using a convolution kernel to generate the output image data.

23. The method of any of claims 16 to 22, further comprising:bypassing the application of the inverse global transformation and processing of the output tensor by the one or morelayers of the selected neural network on the basis of data received from an encoder.

24. The method of any of claims 16 to 23, wherein the global transformation comprises a linear global transformationand / or wherein the inverse global transformation comprises an inverse linear global transformation.

25. The method of any of claims 16 to 24, wherein the global transformation comprises a transformation which isidentical for each pixel of an image represented by the image data and / or wherein the inverse global transformationcomprises an inverse transformation which is identical for each pixel of an image represented by the image data.

26. A method for decoding a bitstream representing coded image data to generate output image data, the methodcomprising: providing a bitstream representing coded image data; anddecoding the bitstream representing coded image data according to the method of any of claims 16 to 25 togenerate the output image data.

27. The method of claim 26, wherein the bitstream comprises a bitstream generated according to the method of any ofclaims 1 to 14.

28. A postprocessor structure for a decoder configured to decode a bitstream representing coded image data, thepostprocessor structure comprising processing circuitry configured to:receive at least one of: a set of configuration parameters for a selected global transformation, a first indexrepresenting the selected global transformation, and a second index representing a selected neural network from anencoder; receive an initial representation of decoded image data comprising a pre-processed tensor representation of imagedata; process the initial representation of decoded image data using an inverse global transformation selected on thebasis of the first index, wherein the inverse global transformation is configured on the basis of the set of configurationparameters, whereby to generate an initial representation of decoded image data; andprocess the initial representation of decoded image data by one or more layers of a neural network to generateoutput image data.

29. The postprocessor structure of claim 28, the postprocessor structure comprising processing circuitry configured to:select and / or configure the neural network on the basis of the second index.

30. A computer program stored on a non-transitory medium and including code instructions, which, when executed onmore or more processors, cause the one or more processors to execute the method of any of claims 1 to 14 or 16 to 27.

Citation Information

Patent Citations

  • Machine learning based image adjustment

    US20210360179A1

  • Neural Network-Based Video Compression with Spatial-Temporal Adaptation

    US20220394240A1

  • Video Frame Compression Method, Video Frame Decompression Method, and Apparatus

    US20230281881A1

Cited By

  • Tensor dimension recombination method and device for tensor processing unit, and chip

    CN121542216A

  • Medical image diagnosis method and device and computing equipment

    CN122134724A

  • Crop growth vigor assessment method and system based on theoretical growth potential

    CN122223560A