WO2024121109A1 - Procédé et dispositif de codage et décodage d'images - Google Patents

Procédé et dispositif de codage et décodage d'images Download PDF

Info

Publication number
WO2024121109A1
WO2024121109A1 PCT/EP2023/084248 EP2023084248W WO2024121109A1 WO 2024121109 A1 WO2024121109 A1 WO 2024121109A1 EP 2023084248 W EP2023084248 W EP 2023084248W WO 2024121109 A1 WO2024121109 A1 WO 2024121109A1
Authority
WO
WIPO (PCT)
Prior art keywords
coding
group
characteristic
vector
neural network
Prior art date
Application number
PCT/EP2023/084248
Other languages
English (en)
Inventor
Felix Henry
Theo LADUNE
Pierrick Philippe
Gordon Clare
Original Assignee
Orange
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Publication of WO2024121109A1 publication Critical patent/WO2024121109A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0499Feedforward networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Definitions

  • the invention relates to the general field of coding of single or multidimensional signals. It concerns more particularly the compression of digital images.
  • Digital images are generally subject to source coding aimed at compressing them in order to limit the resources necessary for their transmission and/or storage.
  • coding standards such as, for still images, the JPEG family standards, and for animated images or video, the standards of the ITU/MPEG organizations (H.264/AVC, H.265/ HEVC, H.266/VVC, etc.) as well as their extensions (MVC, SVC, 3D-HEVC, etc.).
  • Encoding an image is generally carried out by dividing the image into several rectangular blocks, and encoding these blocks of pixels according to a given processing sequence.
  • the processing of a block typically includes a prediction of the pixels of the block carried out using previously encoded and then decoded pixels present in the image being encoded, in which case we speak of " Intra prediction”, or previously encoded images, in which case we speak of “Inter prediction”.
  • Autoencoders are learning algorithms based on artificial neural networks, which make it possible to construct a new representation of a data set.
  • the architecture of an autoencoder is made up of two parts: the encoder and the decoder.
  • the encoder is made up of a set of layers of neurons, which process the data in order to construct new so-called “encoded” representations, also called “latent representations”.
  • the decoder's neuron layers receive these representations and filter them in an attempt to reconstruct the original data. The differences between the reconstructed data and the initial data make it possible to measure the error made by the autoencoder.
  • the training consists of modifying the parameters of the autoencoder in order to reduce the reconstruction error measured on the different samples of the dataset.
  • the performance of such autoencoder-based systems comes at the cost of a considerable increase in memory footprint and complexity compared to conventional approaches as proposed by compression standards. They can have millions of parameters and can require up to a million MACs (multiply-accumulate) to decode a single pixel. This makes such decoders much more complex than conventional decoders, which could hinder the adoption of learning-based compression.
  • encoding means the operation which consists of representing a set of samples in a compact form carried for example by a digital binary stream.
  • decoding we mean the operation which consists of processing a digital binary stream to restore decoded samples.
  • sample of the signal, we mean a value taken from the signal. Sampling the signal produces a series of discrete values called samples.
  • the sample takes the pixel name which can for example be a color pixel traditionally represented by a triplet of values, for example (R, G, B) or (Y, U, V).
  • the position of the sample is identified by its coordinates on the abscissa (x) and ordinate (y) in the image.
  • signal comprising a plurality of samples we mean a signal of one (audio, sound), two (image) or more than two (stereoscopic, multiscopic image, image associated with a depth map, video, etc. .) dimensions. Depending on this dimensionality, the sample has one, two or more coordinates in the signal. In the case of an image signal, the position of the sample is identified by its coordinates on the abscissa (x) and ordinate (y).
  • characteristic maps we mean an abstract representation of the signal comprising a plurality of variable data, discrete or not, which are also called values, for example real or integer numbers. As is known, these maps are also referred to as “latent representation”.
  • transformation of characteristic maps we mean a mathematical operation which makes it possible to transform the values of a first map into the values of a second map.
  • a first card called the card of the first group, intended for coding, is arbitrary.
  • a second card called a transformed card, or card from the second group, is at the same resolution as the input signal, that is to say it has as many values as the input signal (resp. decode) has samples (N).
  • the transformation may include, for example, interpolation, oversampling, filtering, quantization, Fourier transform, etc.
  • data characteristic vector constructed from characteristic maps as a function of a position is meant a vector consisting of one or more elements, or data, preferably discrete, the data being constructed from the maps of characteristics at a position determined by that of the sample being processed in the signal.
  • This characteristic vector is the one that is applied to the input of the synthetic neural network.
  • such a vector can be constituted from a plurality of values taken from each of the characteristic maps at the same coordinate as the sample to be encoded.
  • such a vector can be constituted from a plurality of values taken from each of the characteristic maps at the same coordinates on the abscissa and on the ordinate as the sample to be encoded (resp. to be decoded). Once these values are taken from the feature maps, they can be processed to constitute the feature vector, before entering the synthesis neural network, for example by quantization, filtering, interpolation, etc.
  • neural network we mean a neural network such as a convolutional neural network, a multilayer perceptron, an LSTM (for “Long Short Term Memory” in English), etc.
  • parameter of the neural network we mean one of the values which characterizes the neural network, for example a weight associated with one of the neurons (filter coefficient, weighting, bias, value affecting the operation of non-linearity, etc.)
  • processing by a synthetic neural network we mean the application of a function expressed by a synthetic neural network to the input characteristic vector to produce an output vector representative of the sample to be encode (resp. decode).
  • This output vector may include one or more data representative of the sample.
  • performance measurement we mean a measurement between at least one value of a sample to be encoded and a decoded value of said sample.
  • the measurement can evaluate, for example, a distortion, or a perceptual error. It can be performed on a sample or a plurality of samples (for example, a current sample, or the current image, etc.).
  • the measurement may also include a measurement of the flow, in particular associated with the coding of the synthetic neural network and/or the coding of the characteristic maps of the first group.
  • the measurement can be a joint measurement between the flow and the distortion through their weighting. As is well known from the state of the art, the value of this measurement is generally minimized until a target value is reached.
  • construction step we mean a step which aims to construct the parameters representative of the image, before their effective coding.
  • the construction substeps can be iterated as necessary to obtain an acceptable performance measure.
  • the coding method constructs the coding parameters, from the input signal, for example an image, by training a so-called synthesis neural network on characteristic vectors associated with a position d 'a sample to code. These feature vectors are constructed from feature maps which may be at the resolution of the input signal, or at a lower resolution.
  • the parameters of the neural network and the values of the feature maps are updated according to a performance measure, for example of the flow-distortion type.
  • the actual coding of the parameters of the synthesis neural network and the values of the feature maps can be carried out and stored or transmitted to the destination of the decoder.
  • the training process makes it possible to refine the parameters of the synthetic neural network and/or the values of the feature maps until an adequate representation in terms of performance is obtained, for example a desired balance between the flow generated and the distortion suffered by the input signal.
  • the training of the values of the feature maps and the parameters of the synthetic neural network can be joint.
  • the coding method according to the invention makes it possible to effectively compress the signal.
  • the decoding method is simple since it suffices to decode the characteristic maps and the synthesis neural network to reconstruct a decoded version of the signal, for example an image.
  • the coding of the feature maps is made particularly efficient by taking into account the coding neighborhood, which makes it possible to exploit the redundancies present in the maps.
  • Such a synthetic neural network can advantageously be very simple in structure with few parameters.
  • decoding can be carried out sample by sample, progressively.
  • the coding method comprises the following sub-steps of coding said current value of one of said characteristic maps;
  • a prediction neural network defined by a set of parameters, to provide a prediction of said current value
  • the decoding method comprises the following sub-steps of decoding said current value, of one of said characteristic maps;
  • the feature maps are efficiently compressed by a prediction neural network capable of predicting a value of the map based on its neighborhood.
  • neighbor vector we mean a vector consisting of one or more elements, or data, constructed from feature maps at a position close to that of the current sample, which is also that of the current value in the characteristics map.
  • the neighboring position can indicate a value in the map currently being processed (for example, the neighboring value at the top left of the one being processed) or in another feature map (for example, the neighboring value at the same position in the previous map).
  • This neighborhood vector is the one that is applied to the input of the prediction neural network.
  • prediction we mean at least one piece of data making it possible to estimate a current value of the characteristic map, for example a probability, a statistical value, etc.
  • the prediction neural network trained on the image maps, is able to represent them effectively. It is also inexpensive to code.
  • the method comprises a step of transforming said first group of characteristic maps to obtain a second group of characteristic maps at the resolution of the input signal, the method being characterized in that said characteristic vector is constructed from said feature maps of the second group.
  • the characteristic maps are divided into two groups, one of which is reserved for the extraction of the characteristic vectors and the other for coding.
  • At least one of the characteristic maps of the first group is of lower resolution than that of the signal to be encoded (resp. decode) and the transformation operation includes oversampling.
  • the compression of the characteristic maps is more effective since at least one of the characteristic maps of the first group, to be encoded (resp. decode), has fewer values than if it were at the resolution of the signal.
  • one of the feature maps of the first group can be at 1/2 resolution, that is to say it has half as many values on the abscissa and on the ordinate as many samples as the input image has, i.e. in total 4 times fewer values than a feature map at the image resolution.
  • the characteristic map of the second group which corresponds to a transformation of this map of the first group is of identical resolution to that of the signal.
  • the transformation therefore comprises in this case at least one oversampling operation to obtain the same number of values in this transformed map as the input signal (resp. to be decoded) has samples.
  • At least one of said characteristic maps of the first group is of identical resolution to that of the signal to be encoded (resp. decode).
  • At least one of the characteristic maps allows significant fidelity and respect for the details of the initial resolution of the signal.
  • the transformation preserves in this case the number of values of the transformed feature map; it can be reduced to identity (no processing is carried out on the values of the map of the first group) or include a filtering operation, quantification, a Fourier transformation, etc.
  • quantification is essential for the proper functioning of the system if the characteristic maps include, for example, floating or real values. It is necessary to quantify them before coding them and/or providing them as input to the synthesis and/or prediction neural network. On the other hand, during decoding, inverse quantification is not necessary, depending on the embodiments.
  • the construction of said characteristic vector comprises a sub-step of extracting a value from said at least one characteristic map at a position identical to that of the current sample in the signal to be encoded (resp. decode) .
  • the characteristic vector is extracted from the characteristic maps, which can be any, and in particular at a resolution lower than that of the signal to be encoded (resp. decode), before undergoing processing.
  • Such treatment may example correspond to a quantification of the extracted data, or to a scaling, or to a filtering, etc.
  • quantification is essential for the proper functioning of the system if the characteristic maps include, for example, floating or real values. It is necessary to quantify them before coding them and/or providing them as input to the synthesis and/or prediction neural network.
  • inverse quantization is not necessary, depending on the embodiments.
  • the method includes a step of constructing a third group of feature maps and the feature vector is further constructed from said feature maps.
  • these additional cards of the third group constructed identically to the encoder and the decoder, are neither stored nor transmitted at the level of the encoder, nor decoded at the level of the decoder. They thus make it possible to benefit from additional data to improve compression without degrading the throughput. They can for example include coordinates, causal data available in the cards of the first or second group, data concerning other images already processed by the encoder or decoder, etc.
  • the invention also relates to a coding device and a decoding device.
  • the invention also relates to a computer program on a recording medium, this program being capable of being implemented in a computer or a control device conforming to the invention.
  • This program includes instructions adapted to the implementation of the corresponding process.
  • This program may use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable shape.
  • the invention also relates to an information medium or a recording medium readable by a computer, and comprising computer program instructions mentioned above.
  • Information or recording media can be any entity or device capable of storing programs.
  • the media may include a storage means, such as a ROM, for example a CD-ROM or a circuit ROM microelectronics, or even a means of magnetic recording, for example a floppy disk or a hard disk, a DNA sequence, or a flash memory.
  • the information or recording media can be transmissible media such as an electrical or optical signal, which can be conveyed via an electric or optical cable, by radio link, by wireless optical link or by other ways.
  • the program according to the invention can in particular be downloaded onto an Internet type network.
  • each information or recording medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of a method according to the invention.
  • Figure 1 schematically represents a coding device used in the context of the invention
  • Figure 2 schematically represents a decoding device used in the context of the invention
  • Figure 3 illustrates an example of a synthetic artificial neural network used in the context of the invention
  • Figure 4 illustrates an example of a prediction artificial neural network used in the context of the invention
  • Figure 5 is a flowchart representing an example of a coding method which can be implemented by the coding device of Figure 1;
  • Figure 6 illustrates a coding method used in one embodiment of the invention
  • FIG. 7 is a flowchart representing an example of a decoding method which can be implemented by the decoding device of Figure 2;
  • Figure 8 illustrates a decoding method used in one embodiment of the invention.
  • Figure 9 is a flowchart representing a method of coding characteristic maps which can be implemented by the coding device of Figure 1 and by the coding method of Figure 5.
  • Figure 10 is a flowchart representing a method of decoding characteristic maps which can be implemented by the decoding device of Figure 2 and by the decoding method of Figure 7.
  • Figure 11 illustrates a method of coding or decoding feature maps.
  • Figure 12 illustrates another method of coding or decoding feature maps.
  • Figure 1 schematically represents an ENC coding device.
  • This ENC coding device comprises a GEN module for generating characteristic maps, an FME module for generating additional characteristic maps, an SE transformation module, an XTR module for data extraction, a TT processing module and quantification, an MLP module corresponding to a synthetic artificial neural network, an NNC neural network coding module capable of coding the synthetic neural network and optionally the prediction neural network, an FMC card coding module of characteristics, an EVAL module for evaluating coding performance, an update module.
  • the ENC coding device can be implemented by means of an electronic device comprising a processor and a memory, not shown; each of the modules mentioned above can then be produced by the cooperation of the processor and computer program instructions stored in the aforementioned memory and designed to carry out the functionalities of the module concerned, in particular as described below, when these instructions are executed by the processor.
  • the ENC coding device of Figure 1 receives as input a succession of samples to be coded, denoted P n , for example a temporal succession of sound samples, or a set of image data denoted I (P n ).
  • the image signal I (P n ) can represent a two-dimensional image, or a plurality of two-dimensional images (video, color components, stereoscopic, multiscopic components, etc.).
  • Pn designates a sample n of the input signal comprising N samples.
  • the signal is a color image signal represented by means of at least one two-dimensional representation, such as a matrix of pixels, each pixel comprising a red (R), green (G), blue component (B), or, alternatively, a luminance component (Y) and at least one chrominance component (U,V).
  • the location of each pixel is defined by its abscissa and ordinate coordinates (x and y) in the image.
  • the image is in gray level represented by means of a two-dimensional representation, such as a matrix of pixels, each pixel comprising a gray level component, or luminance. In this case, the vector representative of the pixel is reduced to a single component.
  • the GEN module for generating characteristic maps is configured to generate a plurality of M characteristic maps denoted FMi.
  • the optional FME module can generate one or more additional cards, numbering F, which will be neither encoded nor transmitted, denoted FMEi.
  • the SE module performs a transformation of the first group of FMi feature maps to generate a second group of FMSi feature maps at the same resolution as the input signal.
  • This optional SE module can quantify the data extracted from this set of M FMi cards, or from the vector Z n constituted from these data.
  • the quantification of a value refers to the matching of this value with a member of a discrete set of possible code symbols.
  • the set of possible code symbols may consist of integer values, and the quantization system performs simple rounding from an actual value to an integer value.
  • quantification consists of multiplication by a given value then rounding.
  • the SE module performs a transformation of the values of at least one of the characteristic maps, for example oversampling, interpolation, filtering, etc. At the end of the transformation, a transformed feature map of the second group is of the same resolution as the images of the input sequence.
  • the characteristic maps which are coded can be of lower resolution than that of the images to be coded, while the maps of the second group, which are used to construct the characteristic vectors, are at the same resolution as the sequence of images, which facilitates the extraction of values.
  • the SE module is absent, in this case the values which will be used to construct the characteristic vector are extracted from the first group of characteristic maps.
  • the module of its coordinates in the input signal For example, if we seek to encode the sample P n at the coordinates (x n , y n ) of an input image, the XTR module extracts values from the maps at positions imposed by the coordinates ( xn , yn ).
  • the extracted values constitute the vector Z n .
  • Z n is a J-tuple, that is to say it contains J elements, or Zi data.
  • the vector Z n with index n refers to the characteristic vector of the pixel P' n .
  • the optional TT module processes the extracted values to generate the vector Z n .
  • the TT module can perform quantification of the data extracted from the set of feature maps. Processing may include other operations, such as filtering, scaling, etc.
  • the TT module can take into account the coordinates of the values in the resolution maps lower.
  • the MLP module is a synthetic neural network defined by K parameters Wk, capable of processing the vector Z n , or J-Uplet, as input, to generate as output a second vector representative of the sample P n at code.
  • the synthetic neural network is, according to one embodiment, an MLP, or Multi Layer Perceptron, made up of an input layer adapted to the input format (the J-tuple), optionally one or more hidden layer(s). (s), and an output layer adapted to the output format of the output vector, generally a vector comprising A elements.
  • A is equal to 3 and the output vector is the triplet (R, G, B) of the pixel P' n encoded then decoded.
  • the NNC module carries out the coding of the synthetic neural network, in particular its Wk parameters.
  • the NNC module carries out the coding of the prediction neural network, ARM, in particular of its Ob parameters.
  • the NNC module carries out a coding simulation, followed by 'a decoding, intended for the evaluation module. Subsequently, it carries out the effective coding of the parameters of the synthesis neural network Wk, and optionally the coding of the prediction neural network, ARM.
  • the coded parameters are denoted Wck and Ocb.
  • the coding simulation can be identical to the actual coding, or achieve an approximation of it.
  • the FMC module carries out the coding of the FMi cards, that is to say the values of the characteristic cards of the first group (excluding the additional FMEi cards, and the cards of the second group, optionally resulting from oversampling by the SE module).
  • the FMC module carries out a coding simulation, followed by 'a decoding, intended for the evaluation module. Subsequently, it carries out the actual coding of the values of the FMi cards.
  • the coded cards are denoted FMci.
  • the coding simulation can be identical to the actual coding, or produce an approximation of it.
  • the encoding module quantifies the latent representation of the values of the cards of the first group if necessary by using a quantifier to generate an ordered collection of quantized values. Then the coding module compresses the quantified data, using coding taking into account the neighborhood of a value to be coded from the feature map.
  • the FMC module may include a prediction neural network (ARM).
  • the EVAL module carries out an evaluation and minimization of coding performance.
  • the evaluation function is for example of the flow-distortion type.
  • the minimization can be carried out by gradient descent, or any other method within the reach of those skilled in the art.
  • the MAJ module updates the values of the FMi cards to be encoded, based on the results of the performance function.
  • Figure 2 schematically represents a DEC decoding device.
  • the DEC coding device of Figure 2 receives as input a first group of encoded data organized into M FMci characteristic maps (also called FM layers) and the encoded parameters Wck of the MLP' synthesis neural network, optionally the encoded parameters Ocb of the ARM' synthesis neural network.
  • M FMci characteristic maps also called FM layers
  • Wck the encoded parameters of the MLP' synthesis neural network
  • Ocb the encoded parameters of the ARM' synthesis neural network
  • This DEC decoding device comprises an NND module for decoding neural network(s) capable of decoding the MLP' synthesis neural network and optionally the ARM' prediction neural network, an FMD module for decoding the cards of characteristics, a data extraction module additional feature cards. According to one embodiment, it produces as output a decoded image, denoted I (Pd n ), comprising a plurality of decoded samples Pd n .
  • the cards decoded by the FMD module, numbering M, are denoted FMdi.
  • the parameters of the synthetic neural network (MLP’) decoded by the NND module are denoted Wdk.
  • the parameters of the prediction neural network (ARM’) decoded by the NND module are denoted Odb.
  • the FME' module of the decoder can also generate one or more additional cards, denoted FME'i, in the number of L, identical to the additional FMEi cards generated by the encoder.
  • the module SE' carries out a transformation of the first group of decoded FMdi characteristic maps to generate a second group of characteristic maps at the same resolution as the signal to be decoded, denoted FMS'i.
  • the module SE' optionally performs an inverse quantification corresponding to the quantification carried out at the encoder. Inverse quantification is not necessary if the quantizer Q of the encoder has simply rounded the real values submitted to it. Inverse quantification is also not necessary if the neural network is able to take into account quantification of its input data. Otherwise, the decoder carries out the inverse operation of the quantizer Q.
  • the module SE' carries out a transformation of the values of the characteristic maps, including for example oversampling, interpolation, filtering, etc., similar to that carried out by the encoder .
  • a transformed feature map of the second group is of the same resolution as the images of the sequence to be decoded.
  • the module SE' is absent, in this case the values which will be used to construct the characteristic vector are extracted from the first group of characteristic maps.
  • the module XTR' is identical to the module embodiments described previously), for a sample Pd n to be decoded, as a function of its coordinates in the signal to be decoded.
  • J M.
  • J M+L.
  • the extracted values constitute the vector Zd n .
  • Zd n is a J-tuple, that is to say it has J elements, or zdi data.
  • the optional module TT' processes the extracted values to generate the vector Zd n .
  • the TT' module can perform inverse quantification of the data extracted from the set of feature maps.
  • the processing may include other operations, such as filtering, scaling, etc., similar to those performed by the encoder.
  • the MLP' module is a so-called synthetic neural network, defined by K parameters Wdk, capable of processing the vector Zd n , or J-Uplet, as input, to generate as output a second vector representative of the sample P n to decode, generally a vector comprising A elements.
  • K 3 and the output vector is the triplet (R, G, B) of the decoded pixel Pd n .
  • the MLP' module is identical in structure to the MLP module, and its parameters are either identical if the coding of its parameters Wk is lossless, or different if the coding is carried out with losses.
  • the DEC decoding device can be implemented by means of an electronic device comprising a processor and a memory, not shown; each of the modules mentioned above can then be produced by the cooperation of the processor and computer program instructions stored in the aforementioned memory and designed to carry out the functionalities of the module concerned, in particular as described below, when these instructions are executed by the processor
  • Figure 3 illustrates an example of a synthetic artificial neural network used for coding and decoding in the context of embodiments of the invention.
  • the synthetic artificial neural network used for coding, MLP, and the synthetic artificial neural network used for decoding, MLP' are defined by an identical structure, comprising for example a plurality of layers of artificial neurons, and by a set of weights and activation functions associated respectively with the artificial neurons of the network concerned.
  • a vector representation of a current sample (a vector Z n or Zd n from the characteristic maps FMi/FMSi and FMEi to the encoder or FMdi/FMS'i and FME'i to the decoder) is applied as input (c 'that is to say on an input layer) of the MLP or MLP' synthesis artificial neural network.
  • the synthetic artificial neural network produces as output a vector, according to one embodiment, the color components (R, G, B) constituting a color pixel of an image.
  • the MLP synthesis artificial neural network is trained on the image, so as to minimize the differences between the input representation of the current image I (P n ) and its representation I (P' n ) as output, while also minimizing the amount of data to be encoded.
  • the EVAL module carries out a performance measurement in this sense.
  • the network parameters are encoded, either losslessly, in which case the MLP' neural network is identical to MLP, or lossy, in which case the MLP' network can be slightly different from MLP.
  • Figure 4 illustrates an example of a prediction artificial neural network used in coding (ARM) and decoding (ARM’) for feature maps, in the context of embodiments of the invention.
  • the prediction artificial neural network used for coding, ARM, and the prediction artificial neural network used for decoding, ARM' are defined by an identical structure, comprising for example a plurality of layers of artificial neurons, and by a set of weights and activation functions associated respectively with the artificial neurons of the network concerned.
  • a vector representation of a current neighborhood (a vector C n or Cd n from the characteristic maps FMi/FMSi and FMEi to the encoder or FMdi/FMS'i and FME'i to the decoder) is given as input (c 'that is to say on an input layer) of the prediction artificial neural network ARM (at coding) or ARM' (at decoding).
  • the prediction artificial neural network behaves as a function which outputs a prediction of the current value of the feature map being processed, which can be in the form of a prediction value or data of probability.
  • the network implements a function f ⁇ which provides an expected average and/or variance (pc) for the current value of the current value V n of the FMi card to be encoded.
  • pc expected average and/or variance
  • the network implements a function f ⁇ which provides an expected average and/or variance for the current value of the current value Vd n of the FMdi card to be decoded. These statistical values are used to carry out the entropic decoding of this value. For example, if the function produces an average, the current value is decoded by the entropy decoder and this average is added to the current value.
  • the current value is decoded by the decoder using entropic decoding adapted to the variance, for example by quantifying said variance into a predetermined set of variances and associating a type of entropy decoding at each quantized variance value.
  • the neural network can produce the expected probability (pr) of each possible value of the current sample.
  • the coding or Entropy decoding will be adapted to this probability (as it is known for Huffman or arithmetic entropy coding).
  • the ARM prediction artificial neural network is trained on the image, so as to minimize the quantity of data to be encoded.
  • the EVAL module carries out a performance measurement in this sense. It is recalled that the overall performance measurement concerns a minimization of the distortion between encoded and then decoded images I (P' n ) and the input images I (P n ), while minimizing the coding rate.
  • the feature maps are encoded without losses, via entropy coding. In this case, the coding of the feature maps influences the throughput, but not the distortion of the encoded images.
  • the coding of the feature maps influences the bit rate, but also the distortion.
  • the B parameters Ocb of the network are encoded, either without losses, in which case the neural network ARM' is identical to ARM, or with losses, in which case the network ARM' can be slightly different from ARM.
  • Figure 5 is a flowchart representing an example of a coding method which can be implemented by the coding device of Figure 1.
  • the signal is a two-dimensional image
  • each sample to be coded is therefore a pixel P n with coordinates (x n , y n ).
  • a first phase learning is carried out, in order to determine, for an input signal I (P n ), the values of the maps FMi and the parameters Wk and optionally Ob to optimize a function overall cost.
  • Learning is for example carried out by gradient descent, followed by updating the parameters of the MLP synthesis neural network, the values of the FMi characteristic maps, and optionally the ARM prediction neural network.
  • the cost function can be of the flow-distortion, or flow, or distortion, or perceptual type.
  • To measure the rate R it is necessary to simulate the coding of the FMi cards, then measure the associated coding rate (the size of the stream Bl).
  • the coding of the Wk and/or Ob parameters is not simulated because their influence is less significant than that of the characteristic maps.
  • the distortion D it is necessary to simulate the coding then the decoding of at least part of the image I, to obtain at least one pixel P' n resulting from a simulation of coding then decoding, then measure the difference between this part of the input image I (P n ) and a corresponding part of the image I (P' n ) encoded then decoded.
  • the cards FMi and the parameters Wk and possibly Ob are encoded to produce the coded values FMci and Wck (and possibly Ocb) before transmission or storage. They constitute the compressed representation of the input signal I (P n ).
  • a signal I (P n ) to be coded comprising a plurality of N samples P n , is provided as input to the method.
  • the M FMi cards of the first group are initialized. Subsequently, the parameters Wk of the MLP synthesis neural network and the values of the FMi maps, and possibly the parameters Ob of the prediction neural network must be optimized during the construction phase.
  • the FMi cards have the same resolution as the input signal I (P n ) and therefore each include the same number of values N as there are samples P n to code.
  • the FMi cards have a resolution less than or equal to that of the input signal I (P n ) and therefore include, for at least one of them, a number N' of values to be coded less than N.
  • the first FMi card is at the resolution of the images and each following card is at half the resolution of the previous one.
  • FMi cards have the same resolution, lower than that of the input signal I (P n ).
  • the FMi maps are transformed to provide a second group of transformed FMSi feature maps.
  • the feature vectors are preferably extracted from the transformed maps of the second group, and not directly from the maps of the first group.
  • the characteristic vectors are therefore extracted indirectly from the cards of the first group.
  • the cards in the second group are not coded, they are used only for the construction of characteristic vectors.
  • the FMi cards are initialized with predefined constant values.
  • the feature maps are initialized by a set of random real values.
  • one or more FMEi maps forming an additional group of L additional feature maps, are generated and added to the first group. They are used to construct the characteristic vector but are neither stored nor transmitted.
  • the FMi characteristic maps of the first group are subsequently updated, or refined, during a step E22, by the MAJ update module of the encoder during its learning.
  • the FMi cards of the first group are coded by the FMC module of the encoder.
  • this operation is a coding simulation.
  • this operation is an effective coding and the coded values constitute the flow Bl.
  • the simulation can be identical to the effective coding but it can also be different (for example, simplified).
  • a technique is used for predicting a characteristic map value by its neighborhood, as will be described for example in support of Figure 9.
  • the structure and parameters Ob of the prediction neural network are initialized for example during the first iteration of this step. These parameters are subsequently updated, or refined, during the construction phase, during subsequent iterations of the process.
  • the FMi cards are coded in order (FMi, FM2,..., FM4), and the variables of each card in a predefined order, for example lexicographical.
  • Each card undergoes entropic coding.
  • the entropy coding produces a compressed stream Bl whose flow rate is measured subsequently during a step E29.
  • the M cards of the first group FMi are transformed by the module SE to generate cards of the second group FMSi at the resolution of the images of the input sequence.
  • M FMSi cards are generated.
  • each FMi card is transformed into an FMSi card.
  • At least one FMi card has a resolution lower than that of the images of the sequence to be coded and the transformation operation includes oversampling so that the transformed FMSi card includes the same number of samples as the images of the sequence.
  • Oversampling consists of adding values to the FMSi maps to achieve the resolution of the images in the input sequence. It can be simple (by nearest neighbor replication) or include interpolation (linear, polynomial, filtering, etc.).
  • values are extracted by the module XTR from the transformed FMi or possibly FMSi cards, and optionally FMEi. additional. This extraction is carried out as a function of the coordinates (x n , y n ) of the sample P n of the input signal. It can also be carried out depending on the resolution of the map considered.
  • the characteristic vector Z n results directly from this extraction.
  • the characteristic vector Z n is constructed by the module TT from the values extracted from the FMi or FMSi cards and optionally FMEi for each sample P n of coordinates (x n , y n ) of the input signal.
  • the processing may include quantification of the values extracted from the FMi maps or from the vector Z n formed, if necessary.
  • the processing may include other operations, such as filtering, scaling, application of any function, preferably monotonic, etc.
  • Z n is a J-tuple (zi, Z2, . . ., zj), consisting of the values of the FMi or FMSi cards (and optionally FMEi) located at the coordinates (x n , y n ) of the current pixel P n , as will be illustrated in support of Figure 6.
  • Z n is a J-tuple constructed from values taken from the FMi maps (and optionally FMEi) at coordinates which may be different depending on the maps. For example, if the FMi (and/or FMEi) cards are at different resolutions because they have been downsampled, the coordinates are adapted (by scaling) to match the resolution of each map.
  • Z n is a J-tuple constructed from values taken from the FMi maps (and optionally FMEi) by applying processing to one or more values of the maps, for example filtering neighboring values of the targeted value in a map.
  • Z n is a J-tuple constructed from values taken from the FMi maps (and optionally FMEi) by applying processing to one or more values of the maps, for example filtering neighboring values of the targeted value in a map.
  • Z n is a J-tuple constructed from values taken from the FMi maps (and optionally FMEi) by applying processing to one or more values of the maps, for example filtering neighboring values of the targeted value in a map.
  • the vector Z n is processed by the MLP synthesis neural network to generate at output a vector representative of the sample P n to be coded, according to one embodiment the triplet (R, G, B) of the sample P' n (the sample P n encoded then decoded).
  • the structure and parameters Wk of the synthetic neural network are initialized for example during the first iteration of this step. These parameters are subsequently updated, or refined, during the construction phase, during subsequent iterations of the process.
  • the parameters of the synthesis neural network and/or the prediction neural network are initialized by predefined values known to give a satisfactory result (for example, following training on a corpus of images).
  • the parameters of the synthesis neural network and/or the prediction neural network are initialized by a set of random values.
  • the parameters Wk of the MLP synthesis neural network and the parameters Ob of the ARM prediction neural network are quantified and coded.
  • this operation is a coding simulation.
  • this operation is an effective coding and the coded values constitute stream B2.
  • the simulation can be identical to the actual coding but it can also be different (for example, simplified). Any known technique can be used for this purpose, for example the standard coding of neural networks proposed by the MPEG-7 part 17 standard, also called NNR (Neural Network Representation). Note that in this case, it is necessary to choose the amount of degradation that the coding brings to the weights Wket optionally Ob.
  • a performance measure is evaluated.
  • the coding simulation rates associated with the characteristic maps of the first group (simulation of the B1 flow by coding of the FMi maps) and optionally with the parameters of the neural network(s) (simulation of the flow B2 by coding parameters Wket optionally Ob) are measured.
  • the cost function is of the rate-distortion type, denoted (D+L*R), where D for example the quadratic error measured between the input signal and the decoded signal (or the error measured on a subset of the signal sample).
  • D is calculated from a perceptual function such as SSIM (for Structural SIMilarity), or MSSSIM (for Multi-scale Structural SIMilarity).
  • R is the simulated flow rate of flow B1; according to another embodiment, R is the total bit rate used to encode this image, that is to say the sum of the simulated bit rates of B 1 and B2.
  • L a parameter which adjusts the flow-distortion compromise.
  • Other cost functions are possible.
  • step E22 As long as the cost function has not reached its minimum, the performance measurement is not satisfactory, and the process is repeated from step E22.
  • This minimization can be carried out by a mechanism known as gradient descent with updating of the parameters during step E22 for the values of the characteristic maps and E23, E27 for the parameters of the network(s).
  • streams B 1 and B2 can be made up of it.
  • the actual coding of the updated parameters of the synthesis neural network (Wk) and the values of the feature maps (FMi) and optionally of the prediction neural network (Ob) is carried out at this step. to produce the encoded parameters Wck (optionally Ob) and FMci which constitute streams B1 and B2.
  • Streams B1 and B2 can be concatenated to produce a final stream.
  • the stream B2 of the coded parameters of the neural network(s) is (are) stored or transmitted before the stream B 1, in order to be able to be decoded before the stream B 1.
  • Figure 6 illustrates an coding method used in one embodiment of the invention.
  • the FMi cards generated are 4 in number. In a preferred mode, there are 7 in number.
  • the first FMi card has the same resolution as the image I (P n ), and therefore includes WxH variables, where W represents the width of the image in pixels, and H its height.
  • the second FM2 card is half resolution (in each dimension) of the FMi card.
  • Each additional map is half resolution of the previous map. This structure makes it possible to reduce the number of variables in the feature maps, which facilitates coding and learning while minimizing the coding cost.
  • the FM2 card is oversampled by the SE module by a factor of 2 in each dimension, according to a process illustrated in support of Figure 6.
  • the FM3 card is oversampled by a factor of 4 in each dimension, and the FM4 map with a factor of 8 in each dimension.
  • the FMSi layers are quantized by the SE module.
  • an additional FMEo card has been introduced, which will be neither coded nor transmitted.
  • This additional card typically includes data that can assist the MLP network in the task of signal reconstruction.
  • the cards added can be one or more from the following, non-limiting list:
  • [146] A map comprising a positional coding at each point (as described for example at the Internet address https://skosmos.loterre.fr/P66/fr/page/-K0D65X2X-X).
  • [147] A card representing an image distinct from the image currently being processed, capable of providing information on the image to be coded, for example the image previously processed if the current image is part of a series of images to code such as a video, a set of medical images, a multi-view representation, etc.
  • the vector Z n is a 4-tuple (Z1...Z4) consisting of the values extracted from the FMSi maps located at the coordinates (x n , y n ) of the current pixel P n .
  • the vector Z n consisting of the values extracted (quantified) from the FMSi maps is processed by the MLP synthesis neural network to generate a second vector as output, according to the example the output vector is the triplet (R, G, B) of the pixel P' n encoded then decoded.
  • the triplet is inserted into the decoded image I (P'n) at the positions (x n , y n ) of the color components (R', G', B').
  • the vector Z n is extracted directly from the FMi layers, at the positions recalculated according to the size of the maps, then the extracted values are optionally processed and quantified after extraction.
  • the vector Z n is a 5-tuple (Z0...Z4), the value zo being extracted from the additional map FMEO.
  • Figure 6 is a flowchart representing an example of a decoding method which can be implemented by the decoding device of Figure 2.
  • streams B1 and B2 are extracted from the encoded stream. They respectively contain the coded representations of the maps of the first group FMci and the Wck parameters, optionally the Ocb parameters.
  • the M FMdi cards are generated by decoding the FMci values.
  • decoding we use a technique for predicting a characteristic map value by its neighborhood, as will be described for example in support of Figure 10.
  • the FMdi cards are decoded in order (FMdi, FMd2,...
  • FMc FMc
  • a predefined order for example lexicographical.
  • the FMdi cards have the same resolution as the signal I (Pd n ) to be reconstructed, that is to say they have N values.
  • the FMdi cards are at a resolution less than or equal to that of the signal I (Pd n ) to be reconstructed.
  • one or more FME'i maps forming an additional group of L additional characteristic maps, are generated and complete the first group. They are not decoded but generated by the decoder in an identical manner to the generation of the encoder. They typically include data that can assist the MLP’ network in the task of reconstructing the signal.
  • FME'i maps described in support of Figure 6 for the encoder applies here.
  • step E33 the M cards of the first group FMdi are transformed by the module SE' to generate cards of the second group FMS'i at the resolution of the input images.
  • This step is similar to step E24 which was described for the encoder in support of Figure 5, and the embodiments apply. Notably :
  • M FMS’i maps are generated.
  • each FMdi card is transformed into an FMSi card.
  • At least one FMdi card has a resolution lower than that of the images of the image to be encoded and the transformation operation includes oversampling so that the transformed FMS'i card includes the same number of 'samples as the input image.
  • Oversampling consists of adding values to the FMS’i maps to reach the resolution of the input image. It can be simple (by nearest neighbor replication) or include interpolation (linear, polynomial, filtering, etc.)
  • the transformation can optionally include inverse quantification of the extracted values, if necessary. However, inverse quantification is not obligatory.
  • values are extracted by the module XTR' from the FMdi cards or possibly transformed FMS'i, and optionally additional FME'i. This extraction is carried out as a function of the coordinates (x n , y n ) of a sample P n of the input signal. It can also be carried out depending on the resolution of the map considered.
  • This step is similar to step E25 which has been described for the encoder in support of Figure 5, and the embodiments apply. Notably :
  • the characteristic vector Zd n results directly from this extraction.
  • Zd n is a J-tuple (zi, Z2, . . . , zj), consisting of the values of the cards FMdi or FMS'i (and optionally FME'i) located at coordinates (x n , y n ) of a current pixel Pd n , as will be illustrated in support of Figure 8.
  • a vector Zd n is constructed by the module TT' from the values extracted from the FMdi cards of the first group or the FMS'i cards from the second group and possibly FME 'i of the additional group, for each sample Pd n of coordinates (x n , y n ) to be decoded, as a function of the coordinates (x n , y n ).
  • This step is similar to step E26 which was described for the encoder in support of Figure 5 and the embodiments described apply.
  • the extraction may include inverse quantification of the extracted values or of the vector Zd n formed, if necessary.
  • the parameters Wdk of the MLP' synthesis neural network and possibly the parameters Odb of the prediction neural network are generated by decoding the values Wck and Ocb of the stream B2.
  • any known decoding technique corresponding to that of coding which was used by the coder can be used.
  • the MLP' synthesis neural network is similar to the MLP synthesis network, that is to say it has the same structure and includes the same parameters, up to coding, which can be produced with or without losses.
  • the ARM' prediction neural network if it is used to decode the feature maps, is similar to the ARM prediction network, that is to say it has the same structure and includes the same parameters, up to coding, which can be achieved with or without losses.
  • the stream B2 is decoded before the stream Bl, in order to be able to have the synthesis neural network MLP' and possibly the prediction neural network ARM' before starting to decode the samples.
  • the vector Zd n is processed by the synthesis neural network MLP' to generate at output a second vector representative of the sample Pd n to be decoded, according to one embodiment a triplet which is injected into the decoded image I (Pd n ) at the positions (x n , y n ) of the color components (Rd, Gd, Bd). This step is similar to step E27 which was described for the encoder in support of Figure 5.
  • Figure 8 illustrates a decoding method used in one embodiment of the invention.
  • the first FMdi card has the same resolution as image I, and therefore includes WxH variables, where W represents the width of the image in pixels, and H its height.
  • the second FMd2 card has half the resolution (in each dimension) of the FMdi card. Each additional map is half resolution of the previous map. This structure makes it possible to reduce the number of variables in the characteristic maps, which facilitates decoding while minimizing the coding cost.
  • the FMd2 card is oversampled by a factor of 2 in each dimension, according to any oversampling process within the reach of those skilled in the art.
  • the FMdi map is oversampled by a factor of 4 in each dimension, and the FMcL map by a factor of 8 in each dimension.
  • the FMS’i cards are of the same resolution as the image to be decoded, and therefore have WxH values, where W represents the width of the image in pixels, and H its height.
  • the vector Zd n is a 4-tuple (Z1...Z4) consisting of the values of the FMS'i maps located at the coordinates (x n , y n ) of the current pixel Pd n .
  • the vector Zd n is optionally dequantized then processed by the MLP' synthesis neural network to generate as output the triplet (R, G, B) representative of the sample Pd n to be decoded.
  • the triplet (R, G, B) is inserted into the decoded image I (Pd n ) at coordinates (x n , y n ) in the color components (Rd, Gd, Bd).
  • the vector Zd n is a 5-tuple.
  • Figure 9 is a flowchart representing a method of coding feature maps which can be implemented by the coding device of Figure 1 and by the coding method of Figure 5.
  • step E23 These steps constitute sub-steps of step E23 described previously in support of Figure 5. Their aim is to encode a current value V n of a characteristic map FMi of the first group currently being processing using neighborhood values.
  • a neighborhood vector (C n ) is established, comprising values close to the value V n .
  • these neighboring values can be located in the same card and/or in a different card from the plurality M of FMi cards.
  • these values are used to determine the context of an entropy encoder to encode the current value during a step E234.
  • This encoder can be a CAB AC (Context-adaptive binary arithmetic coding) type encoder. This type of coder is well known to those skilled in the art. It is notably used in the H.265/HEVC video compression standard. This is an arithmetic encoder with lossless compression. It decomposes all non-binary symbols into binary symbols. Then, for each bit, the encoder selects the most suitable probability model and uses context to optimize the probability estimate. This context can be defined by information from neighboring elements. Arithmetic coding is then applied to compress the resulting data.
  • CAB AC Context-adaptive binary arithmetic coding
  • the neighborhood vector to produce context information. For example, we can count the number of neighboring values other than zero, and associate a context with each number. Alternatively, we can make comparisons between several neighboring values, and associate a given context with an order configuration between neighboring values, for example by classifying neighboring values in ascending order, and associating a context with each possible order.
  • the neighborhood is used to predict, during a step E232, the current value from an autoregressive model.
  • an autoregressive model predicts a sample of a series by its past values.
  • the past values are constituted by the context, and the difference between the predicted variable and the actual value is quantified then entropically coded during step E234.
  • an ARM prediction neural network is used during step E233 to predict the statistical characteristics of the variable to be coded.
  • the neighborhood vector is given as input to the ARM network, to provide an output prediction of the current value.
  • the ARM network behaves like a function f ⁇ as described in support of Figure 4, which provides a set of statistical parameters (mean, variance, median, etc.) used to encode the value current entropically.
  • the role of this ARM module is to predict as best as possible the current value, for all the values V n to be coded from the FMi cards, in order to reduce the throughput necessary for coding the characteristic cards.
  • the ARM prediction neural network is used to produce the expected probability (pr) of the possible value of the current sample.
  • Entropy coding is adapted to this probability (as it is known for Huffman or arithmetic entropy coding).
  • each feature map is divided into blocks of predetermined size, and the coding of each block includes a transform (for example a DCT, Discrete, Cosine Transform, a Haar transform, etc.) , and the transformed values are encoded by entropy coding.
  • a transform for example a DCT, Discrete, Cosine Transform, a Haar transform, etc.
  • each feature map is divided into blocks of predetermined size, and each block is represented by a Lattice Vector Quantization type product code.
  • FIG. 10 is a flowchart representing a method of decoding characteristic maps which can be implemented by the decoding device of Figure 2 and by the decoding method of Figure 7
  • step E31 These steps constitute sub-steps of step E31 described previously in support of Figure 7. Their aim is to decode a current value Vd n of a characteristic map FMdi of the first group currently being processing using neighborhood values.
  • a neighborhood vector (Cd n ) is established, comprising values close to the value Vd n .
  • This step is similar to step E231 previously described and the same embodiments apply.
  • these values are used to determine the context of an entropy decoder to decode the current value during a step E314.
  • This decoding is similar to that which was used in the encoder, for example CABAC.
  • the use of the neighborhood to produce context information is similar to that chosen by the coder. For example, we can count the number of neighboring values other than zero, and associate a context with each number. Alternatively, we can carry out comparisons between several neighboring values, and associate a given context with an order configuration between the neighboring values, for example by classifying the neighboring values in ascending order, and by associating context with each possible order.
  • the neighborhood is used to predict during a step E312 the current value from an autoregressive model.
  • the past values are constituted by the context, and the difference between the predicted variable and the actual value is quantified then entropically coded during step E314.
  • an ARM' prediction neural network is used in step E313 to predict the statistical characteristics of the variable to be decoded.
  • the neighborhood vector is applied as input to the ARM' network, to provide an output prediction of the current value.
  • the ARM network behaves like a function f ⁇ as described in support of the Figure 4, defined by a set of statistical parameters (mean, variance, median, etc.) used to encode the current value entropically.
  • the prediction neural network ARM' is used to produce the expected probability (pr) of the possible value of the current sample. Entropy decoding is adapted to this probability (as it is known for Huffman or arithmetic entropy coding).
  • the ARM' network is identical to the ARM network if the coding has been carried out without loss.
  • each feature map is divided into blocks of predetermined size, and the decoding of each block includes the entropic decoding of values which then undergo an inverse transform (for example an inverse DCT, Discrete, Cosine Transform, an inverse Haar transform, etc.).
  • an inverse transform for example an inverse DCT, Discrete, Cosine Transform, an inverse Haar transform, etc.
  • each feature map is divided into blocks of predetermined size, and each block is decoded by a Lattice Vector Quantization type product code in order to produce the decoded block.
  • Figure 11 illustrates a method of coding or decoding feature maps according to one of the embodiments.
  • the coding (resp. decoding) of the current value V n (resp. Vd n ) located in coordinates (x n , y n ) in the current characteristic map FMi (i.e. say the one which is currently being encoded or simulated encoding) (resp. FMdi - that is to say the one which is being decoded) uses the contextual information from its own card and from the previous card FM2 ( resp. FMd2).
  • FMdi FMdi
  • Figure 12 illustrates another method of coding or decoding feature maps according to one of the embodiments
  • the coding (rep. decoding) of the current value V n (resp. Vd n ) located in coordinates (x n , y n ) in the current characteristic map FMi (resp. FMdi) uses the contextual information of its own card.
  • the values represented in gray are used to determine the neighborhood to encode (resp. decode) the current value.
  • These values which are all available to the encoder and the decoder, constitute the neighborhood vector C n (resp. Cd n ) of the value V n (resp. Vd n ) which can be used in one of the embodiments described previously in support of Figure 9 (resp. Figure 10).
  • the neighborhood vector is extracted by a module
  • CTX (resp. CTX') of the FMC coding module (resp. FMD), then it is applied to the input of the prediction neural network ARM (resp. ARM'), used to predict the statistical characteristics (p,o ) or the probability (pr) of the value to be encoded (resp. decode) by the entropic encoder CE (resp. DE).
  • ARM resp. ARM'

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention concerne un procédé et dispositif de codage et décodage d'un signal comprenant une pluralité d'échantillons Le procédé de décodage comporte les étapes suivantes : - décodage d'un premier groupe de cartes de caractéristiques représentatives du signal; - décodage d'un ensemble de paramètres représentatifs d'un réseau de neurones, dit de synthèse, - pour au moins un échantillon, dit échantillon courant, du signal à décoder, associé à une position dans le signal à décoder : - construction d'un vecteur caractéristique à partir des cartes de caractéristiques dudit premier groupe en fonction de ladite position dudit vecteur par le réseau de neurones de synthèse défini par les paramètres décodés pour fournir un vecteur représentatif d'une valeur décodée de l'échantillon courant. - décodage codage dudit premier groupe de cartes de caractéristiques comprenant, pour au moins une valeur, dite valeur courante, d'une desdites cartes de caractéristiques, un codage entropique de ladite valeur en fonction d'une valeur au moins de son voisinage.

Description

Description
Titre de l'invention : Procédé et dispositif de codage et décodage d’images.
Technique antérieure
[1] L’invention se rapporte au domaine général du codage de signaux mono ou multidimensionnels. Elle concerne plus particulièrement la compression des images numériques.
[2] Les images numériques font en général l’objet d’un codage source visant à les compresser afin de limiter les ressources nécessaires à leur transmission et/ou à leur stockage. Il existe de nombreux standards de codage, tels que, pour les images fixes, les standards de la famille JPEG, et pour les images animées, ou vidéo, les standards des organismes ITU/MPEG (H.264/AVC, H.265/HEVC, H.266/VVC, etc.) ainsi que leurs extensions (MVC, SVC, 3D- HEVC, etc.).
[3] L’encodage d’une image est généralement effectué en divisant l’image en plusieurs blocs rectangulaires, et en encodant ces blocs de pixels selon une séquence de traitement donnée. Dans les techniques existantes de compression vidéo, le traitement d’un bloc comprend typiquement une prédiction des pixels du bloc effectuée à l’aide de pixels précédemment codés puis décodés présents dans l’image en cours d’encodage, auquel cas on parle de « prédiction Intra », ou d’images précédemment codées, auquel cas on parle de « prédiction Inter ». Cette exploitation des redondances spatiales et/ou temporelles permet d’éviter de transmettre ou de stocker la valeur des pixels de chaque bloc de pixels, en représentant certains au moins des blocs par un résiduel représentant une différence entre les valeurs de prédiction des pixels du bloc et les valeurs réelles des pixels du bloc prédit.
[4] Les formats vidéo ne cessant d'évoluer pour compresser toujours davantage et s’adapter à la variété de formats attendus et des réseaux de communication, les possibilités de prédiction deviennent de plus en plus grandes et les algorithmes de codage et décodage classiques très complexes.
[5] En plus de ces approches classiques proposées par les normes de compression (JPEG, MPEG, ITU), les approches basées sur l’intelligence artificielle, et notamment neuronales, tendent à se développer. [6] Certaines de ces approches neuronales peuvent être vues comme une simple extension de la notion de compétition des techniques de compression susmentionnées, telles que la compétition de mode de prédiction et transformation en codage vidéo.
[7] D’autres approches utilisent le concept « d’auto-encodeur ». Les auto-encodeurs sont des algorithmes d’apprentissage à base de réseaux de neurones artificiels, qui permettent de construire une nouvelle représentation d’un jeu de données. L’architecture d’un auto-encodeur est constituée de deux parties : l’encodeur et le décodeur. L’encodeur est constitué par un ensemble de couches de neurones, qui traitent les données afin de construire de nouvelles représentations dites “encodées”, appelées aussi « représentations latentes ». À leur tour, les couches de neurones du décodeur reçoivent ces représentations et les filtrent afin d’essayer de reconstruire les données de départ. Les différences entre les données reconstruites et les données initiales permettent de mesurer l’erreur commise par l’auto-encodeur. L’entraînement consiste à modifier les paramètres de l’auto-encodeur afin de réduire l’erreur de reconstruction mesurée sur les différents échantillons du jeu de données. Les performances de tels systèmes à base d'auto-encodeur se font au prix d'une augmentation considérable de l'empreinte mémoire et de la complexité comparativement aux approches conventionnelles telles que proposées par les normes de compression. Ils peuvent avoir des millions de paramètres et peuvent nécessiter jusqu'à un million de MAC (multiplication-accumulation) pour décoder un seul pixel. Cela rend de tels décodeurs bien plus complexes que les décodeurs conventionnels, ce qui pourrait entraver l'adoption de la compression basée sur l'apprentissage.
[8] Plus récemment, une technique simple d’encodage d’image fondé sur un réseau de neurones a été décrite dans l’article « Compression with Implicit Neural representations » d’Emilien Dupont et al. (arXiv:2103.03123). La technique de codage proposée consiste à ajuster un réseau de neurones à une image, quantifier les poids du réseau et les transmettre. Au moment du décodage, le réseau de neurones est évalué à chaque position de pixel pour reconstruire l'image. Une telle technique reste cependant inefficace en termes de compression.
[9] Il existe donc un besoin pour une solution permettant de coder/compresser une image ou une séquence d’images de manière simple et efficace.
Exposé de l’invention
[10] L’invention vise un procédé de codage selon la revendication 1 et un procédé de décodage selon la revendication 8. [11] Au sens de l’invention, on entend par encodage, ou « codage », l’opération qui consiste à représenter un ensemble d’échantillons sous une forme compacte portée par exemple par un train binaire numérique. On entend par décodage l’opération qui consiste à traiter un train binaire numérique pour restituer des échantillons décodés.
[12] Par « échantillon » du signal, on entend une valeur prélevée dans le signal. L’échantillonnage du signal produit une suite de valeurs discrètes nommées échantillons. Dans le cas d’un signal d’image, l’échantillon prend le nom de pixel qui peut être par exemple un pixel couleur représenté traditionnellement par un triplet de valeurs, par exemple (R, G, B) ou (Y, U,V). La position de l’échantillon est repérée par ses coordonnées en abscisse (x) et ordonnée (y) dans l’image.
[13] Par « signal comprenant une pluralité d’échantillons » on entend un signal à une (audio, son), deux (image) ou plus de deux (image stéréoscopique, multiscopique, image associée à une carte de profondeur, vidéo, etc.) dimensions. En fonction de cette dimensionnalité, l’échantillon possède une, deux ou plusieurs coordonnées dans le signal. Dans le cas d’un signal d’image, la position de l’échantillon est repérée par ses coordonnées en abscisse (x) et ordonnée (y).
[14] Par « cartes de caractéristiques », on entend une représentation abstraite du signal comportant une pluralité de données variables, discrètes ou non, que l’on appelle aussi valeurs, par exemple des nombres réels ou entiers. De manière connue, ces cartes sont aussi désignées sous le terme de « représentation latente ».
[15] Par « transformation des cartes de caractéristiques », on entend une opération mathématique qui permet de transformer les valeurs d’une première carte en valeurs d’une seconde carte. Une première carte, dite carte du premier groupe, destinée au codage, est quelconque. Une seconde carte, dite carte transformée, ou carte du second groupe, est à la même résolution que le signal d’entrée, c’est-à-dire qu’elle comporte autant de valeurs que le signal d’entrée (resp. à décoder) comporte d’échantillons (N). La transformation peut comporter par exemple une interpolation, un suréchantillonnage, un filtrage, une quantification, une transformée de Fourier, etc.
[16] Par « vecteur caractéristique de données construit à partir des cartes de caractéristiques en fonction d’une position » on entend un vecteur constitué d’un ou plusieurs éléments, ou données, de préférence discrètes, les données étant construites à partir des cartes de caractéristiques à une position déterminée par celle de l’échantillon en cours de traitement dans le signal. Ce vecteur caractéristique est celui qui est appliqué à l’entrée du réseau de neurones de synthèse. Par exemple, dans le cas d’un signal audio monodimensionnel, un tel vecteur peut être constitué à partir d’une pluralité de valeurs prélevées dans chacune des cartes de caractéristiques à la même coordonnée que l’échantillon à coder. Dans le cas d’une image, un tel vecteur peut être constitué à partir d’une pluralité de valeurs prélevées dans chacune des cartes de caractéristiques aux mêmes coordonnées en abscisse et en ordonnée que l’échantillon à coder (resp. à décoder). Une fois que ces valeurs sont prélevées dans les cartes de caractéristiques, elles peuvent être traitées pour constituer le vecteur caractéristique, avant l’entrée dans le réseau de neurones de synthèse, par exemple par une quantification, un filtrage, une interpolation, etc.
[17] Par « réseau de neurones de synthèse», on entend un réseau neuronal tel un réseau neuronal convolutif, un perceptron multicouche, un LSTM (pour « Long Short Term Memory » en anglais), etc. Le réseau de neurones est défini par exemple par une pluralité de couches de neurones artificiels et par un ensemble de fonctions d'activation, de pondération et d’addition (par exemple, une couche peut calculer y = f (Ax+b), où y et b sont des vecteurs de dimension N, x un vecteur de dimension M, A est une matrice de dimension MxN, et f est la fonction d’activation).
[18] Par « paramètre du réseau de neurones », on entend une des valeurs qui caractérise le réseau de neurones, par un exemple un poids associé à l’un des neurones (coefficient de filtre, pondération, biais, valeur affectant le fonctionnement de la non-linéarité, etc.)
[19] Par « traitement par un réseau de neurones de synthèse », on entend l’application d’une fonction exprimée par un réseau de neurones de synthèse au vecteur caractéristique d’entrée pour produire un vecteur de sortie représentatif de l’échantillon à coder (resp. décoder). Ce vecteur de sortie peut comporter une ou plusieurs données représentatives de l’échantillon.
[20] Par « mesure de performance », on entend une mesure entre au moins une valeur d’un échantillon à coder et une valeur décodée dudit échantillon. La mesure peut évaluer par exemple une distorsion, ou une erreur perceptive. Elle peut être effectuée sur un échantillon ou une pluralité d’échantillons (par exemple, un échantillon courant, ou l’image courante, etc.). La mesure peut comporter aussi une mesure du débit, notamment associé au codage du réseau de neurones de synthèse et/ou au codage des cartes de caractéristiques du premier groupe. La mesure peut être une mesure conjointe entre le débit et la distorsion au travers de leur pondération. Comme il est bien connu de l’état de l’art, il est généralement procédé à une minimisation de la valeur de cette mesure jusqu’à atteindre une valeur cible.
[21] Par « étape de construction », on entend une étape qui vise à construire les paramètres représentatifs de l’image, avant leur codage effectif. Les sous-étapes de construction peuvent être réitérées autant que nécessaire pour obtenir une mesure de performance acceptable.
[22] De manière générale, on considère que les étapes d’un procédé de codage ou décodage ne doivent pas être interprétées comme étant liées à une notion de succession temporelle. Autrement dit, les étapes peuvent être effectuées dans un ordre différent de celui indiqué dans la revendication indépendante de codage ou de décodage, voire en parallèle.
[23] Le procédé de codage selon l’invention réalise une construction des paramètres de codage, à partir du signal d’entrée, par exemple une image, en entraînant un réseau de neurones dit de synthèse sur des vecteurs caractéristiques associés à une position d’un échantillon à coder. Ces vecteurs caractéristiques sont construits à partir de cartes de caractéristiques qui peuvent être à la résolution du signal d’entrée, ou à une résolution inférieure. Au cours de l’entraînement, ou construction, les paramètres du réseau de neurones et les valeurs des cartes de caractéristiques sont mis à jour en fonction d’une mesure de performance, par exemple de type débit-distorsion. Lorsque l’entraînement est terminé, c’est-à-dire que la mesure de performance obtenue est satisfaisante, le codage effectif des paramètres du réseau de neurones de synthèse et des valeurs des cartes de caractéristiques peut être effectué et mémorisé ou transmis à destination du décodeur.
[24] Avantageusement, le processus d’entraînement permet de raffiner les paramètres du réseau de neurones de synthèse et/ou les valeurs des cartes de caractéristiques jusqu’à obtenir une représentation adéquate en termes de performance, par exemple un équilibre souhaité entre le débit généré et la distorsion subie par le signal d’entrée. L’entraînement des valeurs des cartes de caractéristiques et des paramètres du réseau de neurones de synthèse peut être conjoint. Avantageusement, le procédé de codage selon l’invention permet de compresser efficacement le signal.
[25] Avantageusement, le procédé de décodage est simple puisqu'il suffit de décoder les cartes de caractéristiques et le réseau de neurones de synthèse pour reconstituer une version décodée du signal, par exemple une image. [26] Avantageusement, le codage des cartes de caractéristiques est rendu particulièrement efficace par la prise en compte du voisinage de codage, ce qui permet d’exploiter les redondances présentes dans les cartes.
[27] Un tel réseau de neurones de synthèse peut avantageusement être de structure très simple avec peu de paramètres.
[28] De surcroît, le décodage peut être effectué échantillon par échantillon, de manière progressive.
[29] Selon des modes de réalisation du procédé de codage ou de décodage :
[30] - Le procédé de codage comprend les sous-étapes suivantes de codage de ladite valeur courante d’une desdites cartes de caractéristiques;
- construction d’un vecteur de voisinage à partir desdites cartes de caractéristiques dudit premier groupe, et ;
- traitement dudit vecteur de voisinage par un réseau de neurones artificiels, dit réseau de neurones de prédiction, défini par un ensemble de paramètres, pour fournir une prédiction de ladite valeur courante;
- mise à jour d’au moins un paramètre dudit réseau de prédiction, en fonction de la mesure de performance de codage, codage dudit ensemble de paramètres du réseau de prédiction.
[31] Le procédé de décodage comprend les sous-étapes suivantes de décodage de ladite valeur courante, d’une desdites cartes de caractéristiques;
- décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones, dit réseau de neurones de prédiction ;
- construction d’un vecteur de voisinage à partir desdites cartes de caractéristiques dudit premier groupe, et ;
- traitement dudit vecteur par le réseau de neurones de prédiction, pour fournir une prédiction de ladite valeur courante;
[32] Avantageusement selon ce mode de codage ou décodage, les cartes de caractéristiques sont compressées efficacement par un réseau de neurones de prédiction apte à prédire une valeur de la carte en fonction de son voisinage. Par « vecteur de voisinage », on entend un vecteur constitué d’un ou plusieurs éléments, ou données, construites à partir des cartes de caractéristiques à une position voisine de celle de l’échantillon courant, qui est aussi celle de la valeur courante dans la carte de caractéristiques. La position voisine peut indiquer une valeur dans la carte en cours de traitement (par exemple, la valeur voisine en haut à gauche de celle en cours de traitement) ou dans une autre carte de caractéristiques (par exemple, la valeur voisine à la même position dans la carte précédente). Ce vecteur de voisinage est celui qui est appliqué à l’entrée du réseau de neurones de prédiction. Par « prédiction » on entend au moins une donnée permettant d’estimer une valeur courante de la carte de caractéristiques, par exemple une probabilité, une valeur statistique, etc. Le réseau de neurones de prédiction, entraîné sur les cartes de l’image, est apte à les représenter efficacement. Il est de surcroît peu coûteux à coder.
[33] Le procédé comporte une étape de transformation dudit premier groupe de cartes de caractéristiques pour obtenir un second groupe de cartes de caractéristiques à la résolution du signal d’entrée, le procédé étant caractérisé en ce que ledit vecteur caractéristique est construit à partir desdites cartes de caractéristiques du second groupe.
[34] Avantageusement selon ce mode, les cartes de caractéristiques sont divisées en deux groupes dont l’un est réservé à l’extraction des vecteurs caractéristiques et l’autre au codage. On peut ainsi dissocier les deux procédés dont la finalité est différente : les cartes du premier groupe, à coder (resp. décoder), doivent être compressées le plus efficacement possibles, alors que les cartes du second groupe doivent pouvoir faciliter le processus d’extraction et de construction du vecteur caractéristique.
[35] - Selon une variante, une au moins des cartes de caractéristiques du premier groupe est de résolution inférieure à celle du signal à coder (resp. décoder) et l’opération de transformation comporte un suréchantillonnage. Avantageusement selon ce mode, la compression des cartes de caractéristiques est plus efficace puisque l’une au moins des cartes de caractéristiques du premier groupe, à coder (resp. décoder), comporte moins de valeurs que si elle était à la résolution du signal. Par exemple, dans le cas d’une image numérique, l’une des cartes de caractéristiques du premier groupe peut être à la résolution 1/2, c’est-à-dire qu’elle comporte deux fois moins de valeurs en abscisse et en ordonnée que l’image d’entrée comporte d’échantillons, soit au total 4 fois moins de valeurs qu’une carte de caractéristiques à la résolution de l’image. En revanche, la carte de caractéristique du second groupe qui correspond à une transformation de cette carte du premier groupe est de résolution identique à celle du signal. La transformation comporte donc dans ce cas au moins une opération de suréchantillonnage pour obtenir le même nombre de valeurs dans cette carte transformée que le signal d’entrée (resp. à décoder) comporte d’échantillons. [36] - Une au moins desdites cartes de caractéristiques du premier groupe est de résolution identique à celle du signal à coder (resp. décoder).
[37] Avantageusement selon ce mode, l’une au moins des cartes de caractéristiques, à la même résolution que le signal d’entrée à coder (resp. à décoder) permet une fidélité importante et le respect des détails de la résolution initiale du signal. La transformation selon un mode de réalisation conserve dans ce cas le nombre de valeurs de la carte de caractéristiques transformée ; elle peut être réduite à l’identité (aucun traitement n’est effectué sur les valeurs de la carte du premier groupe) ou comporter une opération de filtrage, de quantification, une transformation de Fourier, etc.
[38] Lors de l’étape de codage, une quantification est indispensable au bon fonctionnement du système si les cartes de caractéristiques comportent par exemple des valeurs flottantes, ou réelles. Il est nécessaire de les quantifier avant de les coder et/ou de les fournir en entrée du réseau de neurones de synthèse et/ou de prédiction. Au décodage en revanche, la quantification inverse n’est pas nécessaire, selon les modes de réalisation.
[39] - La construction dudit vecteur caractéristique comporte une sous-étape d’extraction d’une valeur de ladite au moins une carte de caractéristiques à une position identique à celle de l’échantillon courant dans le signal à coder (resp. décoder).
[40] Avantageusement, il est possible d’extraire une valeur d’une carte de caractéristique du premier ou du second groupe, à la même position que l’échantillon dans le signal (signal d’entrée pour le codage, signal à décoder pour le décodage), pour constituer un élément du vecteur caractéristique. Ce procédé est simple à mettre en œuvre. Par exemple, si l’on dispose de J cartes de caractéristiques en entrée, de même résolution que le signal, une simple extraction des valeurs des cartes aux coordonnées de l’échantillon courant (à la même abscisse et la même coordonnée dans la carte de caractéristiques) permet de construire directement le vecteur caractéristique de J éléments.
[41] - La construction dudit vecteur caractéristique comporte les sous-étapes suivantes :
- extraction d’une pluralité de valeurs desdites cartes de caractéristiques dudit premier groupe en fonction de ladite position dudit échantillon courant ;
- traitement desdites valeurs extraites pour obtenir le vecteur caractéristique.
[42] Avantageusement selon ce mode, le vecteur caractéristique est extrait des cartes de caractéristiques, qui peuvent être quelconques, et notamment à une résolution inférieure à celle du signal à coder (resp. décoder), avant de subir un traitement. Un tel traitement peut par exemple correspondre à une quantification des données extraites, ou à une mise à l’échelle, ou à un filtrage, etc. Au codage, une quantification est indispensable au bon fonctionnement du système si les cartes de caractéristiques comportent par exemple des valeurs flottantes, ou réelles. Il est nécessaire de les quantifier avant de les coder et/ou de les fournir en entrée du réseau de neurones de synthèse et/ou de prédiction. Au décodage en revanche, la quantification inverse n’est pas nécessaire, selon les modes de réalisation.
[43] - Le procédé comporte une étape de construction d’un troisième groupe de cartes de caractéristiques et le vecteur caractéristique est en outre construit à partir desdites cartes de caractéristiques.
[44] Avantageusement, ces cartes supplémentaires du troisième groupe, construites de manière identique au codeur et au décodeur, ne sont ni stockées, ni transmises au niveau du codeur, ni décodées au niveau du décodeur. Elles permettent ainsi de bénéficier de données supplémentaires pour améliorer la compression sans dégrader le débit. Elles peuvent par exemple comprendre des coordonnées, des données causales disponibles dans les cartes du premier ou du second groupe, des données concernant d’autres images déjà traitées par le codeur ou décodeur, etc..
[45] Corrélativement, l’invention vise aussi un dispositif de codage et un dispositif de décodage.
[46] Les caractéristiques et avantages du procédé de codage ou décodage s’appliquent de la même façon au dispositif de codage ou décodage selon l’invention et vice versa.
[47] L’invention vise également un programme d’ordinateur sur un support d’enregistrement, ce programme étant susceptible d’être mis en œuvre dans un ordinateur ou un dispositif de contrôle conforme à l’invention. Ce programme comporte des instructions adaptées à la mise en œuvre du procédé correspondant. Ce programme peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.
[48] L’invention vise aussi un support d'information ou un support d’enregistrement lisible par un ordinateur, et comportant des instructions de programme d'ordinateur mentionné ci- dessus. Les supports d'information ou d’enregistrement peuvent être n'importe quel entité ou dispositif capable de stocker les programmes. Par exemple, les supports peuvent comporter un moyen de stockage, tel qu'une ROM, par exemple un CD-ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette ou un disque dur, une séquence d’ADN, ou une mémoire flash. D'autre part, les supports d'information ou d’enregistrement peuvent être des supports transmissibles tels qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par lien radio, par lien optique sans fil ou par d'autres moyens.
[49] Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
[50] Alternativement, chaque support d'informations ou d’ enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution d’un procédé conforme à l’invention.
Brève description des dessins
[51] D’autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif.
[Fig. 1] la figure 1 représente schématiquement un dispositif de codage utilisé dans le cadre de l’invention ;
[Fig. 2] la figure 2 représente schématiquement un dispositif de décodage utilisé dans le cadre de l’invention ;
[Fig. 3] la figure 3 illustre un exemple de réseau de neurones artificiels de synthèse utilisé dans le cadre de l’invention ;
[Fig. 4] La figure 4 illustre un exemple de réseau de neurones artificiels de prédiction utilisé dans le cadre de l’invention ;
[Fig. 5] la figure 5 est un logigramme représentant un exemple de procédé de codage qui peut être mis en œuvre par le dispositif de codage de la figure 1 ;
[Fig. 6] la figure 6 représente de manière illustrée un procédé de codage utilisé dans un mode de réalisation de l’invention ;
[Fig. 7] la figure 7 est un logigramme représentant un exemple de procédé de décodage qui peut être mis en œuvre par le dispositif de décodage de la figure 2 ; [Fig. 8] la figure 8 représente de manière illustrée un procédé de décodage utilisé dans un mode de réalisation de l’invention.
[Fig. 9] la figure 9 est un logigramme représentant une méthode de codage de cartes de caractéristiques qui peut être mis en œuvre par le dispositif de codage de la figure 1 et par le procédé de codage de la figure 5.
[Fig. 10] la figure 10 est un logigramme représentant une méthode de décodage de cartes de caractéristiques qui peut être mis en œuvre par le dispositif de décodage de la figure 2 et par le procédé de décodage de la figure 7.
[Fig. 11] la figure 11 représente de manière illustrée une méthode de codage ou de décodage de cartes de caractéristiques.
[Fig. 12] la figure 12 représente de manière illustrée une autre méthode de codage ou de décodage de cartes de caractéristiques.
Description des modes de réalisation
[52] La figure 1 représente schématiquement un dispositif de codage ENC.
[53] Ce dispositif de codage ENC comprend un module GEN de génération de cartes de caractéristiques, un module FME de génération de cartes de caractéristiques supplémentaires, un module SE de transformation, un module XTR d’extraction de données, un module TT de traitement et quantification, un module MLP correspondant à un réseau de neurones artificiels de synthèse, un module NNC de codage de réseau de neurones apte à coder le réseau de neurones de synthèse et optionnellement le réseau de neurones de prédiction, un module FMC de codage des cartes de caractéristiques, un module EVAL d’évaluation d’une performance de codage, un module MAJ de mise à jour.
[54] Le dispositif de codage ENC peut être mis en œuvre au moyen d’un dispositif électronique comprenant un processeur et une mémoire, non représentés ; chacun des modules mentionnés ci-dessus peut alors être réalisé par la coopération du processeur et d’instructions de programme d’ordinateur mémorisées dans la mémoire susmentionnée et conçues pour effectuer les fonctionnalités du module concerné, notamment comme décrit ci-dessous, lorsque ces instructions sont exécutées par le processeur.
[55] Le dispositif de codage ENC de la figure 1 reçoit en entrée une succession d’échantillons à coder, notés Pn, par exemple une succession temporelle d’échantillons sonores, ou un ensemble de données d’image noté I (Pn). Dans ce second cas, le signal d’image I (Pn) peut représenter une image bidimensionnelle, ou une pluralité d’images bidimensionnelles (vidéo, composantes de couleur, composantes stéréoscopiques, multiscopiques, etc.). Pn désigne un échantillon n du signal d’entrée comportant N échantillons. Dans un mode de réalisation, le signal est un signal d’image couleur représentée au moyen d’au moins une représentation bidimensionnelle, telle qu’une matrice de pixels, chaque pixel comportant une composante rouge (R), verte (G), bleue (B), ou, en variante, une composante de luminance (Y) et au moins une composante de chrominance (U,V). L'emplacement de chaque pixel est défini par ses coordonnées en abscisse et ordonnée (x et y) dans l'image. Dans un mode de réalisation, l’image est en niveau de gris représentée au moyen d’une représentation bidimensionnelle, telle qu’une matrice de pixels, chaque pixel comportant une composante de niveaux de gris, ou luminance. Dans ce cas, le vecteur représentatif du pixel est réduit à une seule composante.
[56] Comme cela sera décrit plus en détail plus loin en référence aux figures 3 à 7 :
[57] Le module GEN de génération de cartes de caractéristiques est configuré pour générer une pluralité de M cartes de caractéristiques notées FMi. Le module FME facultatif peut générer une ou plusieurs cartes supplémentaires, au nombre de F, qui ne seront ni codées ni transmises, notées FMEi.
[58] Dans un mode de réalisation, le module SE réalise une transformation du premier groupe de cartes de caractéristiques FMi pour générer un second groupe de cartes de caractéristiques FMSi à la même résolution que le signal d’entrée.
[59] Ee module SE, optionnel, peut réaliser une quantification des données extraites de cet ensemble de M cartes FMi, ou du vecteur Zn constitué à partir de ces données. On rappelle que la quantification d'une valeur fait référence à la mise en correspondance de cette valeur avec un membre d'un ensemble discret de symboles de code possibles. Par exemple, l'ensemble de symboles de code possibles peut être constitué de valeurs entières, et le système de quantification réalise un simple arrondi d’une valeur réelle à une valeur entière. Selon un autre exemple, la quantification consiste en une multiplication par une valeur donnée puis un arrondi. Puis le module SE effectue une transformation des valeurs d’au moins une des cartes de caractéristiques, par exemple un suréchantillonnage, une interpolation, un filtrage, etc. À l’issue de la transformation, une carte de caractéristiques transformée du second groupe est de même résolution que les images de la séquence d’entrée. Avantageusement selon ce mode, les cartes de caractéristiques qui sont codées peuvent être de résolution inférieure à celle des images à coder, alors que les cartes du second groupe, qui servent à la construction des vecteurs caractéristiques, sont à la même résolution que la séquence d’images, ce qui facilite l’extraction des valeurs.
[60] Dans un mode de réalisation, le module SE est absent, dans ce cas les valeurs qui serviront à construire le vecteur caractéristique sont extraites du premier groupe de cartes de caractéristiques.
[61] Le module XTR réalise une extraction de valeurs dans les cartes de caractéristiques FMi (et/ou FMSi et/ou FMEi, selon l’un des modes de réalisation décrits précédemment), pour un échantillon courant Pn à coder, en fonction de ses coordonnées dans le signal d’entrée. Par exemple, si l’on cherche à coder l’échantillon Pn aux coordonnées (xn, yn) d’une image d’entrée, le module XTR réalise une extraction de valeurs dans les cartes à des positions imposées par les coordonnées (xn, yn).
[62] Dans un mode de réalisation, les valeurs extraites constituent le vecteur Zn. Zn est un J- uplet, c’est-à-dire qu’il comporte J éléments, ou données Zi. Le vecteur Zn d’indice n réfère au vecteur caractéristique du pixel P’n.
[63] Dans un mode de réalisation, le module TT, optionnel, réalise un traitement des valeurs extraites, pour générer le vecteur Zn. Le module TT peut réaliser une quantification des données extraites de l’ensemble de cartes de caractéristiques. Le traitement peut comporter d’autres opérations, comme un filtrage, une mise à l’échelle, etc. En particulier, si le module SE n’est pas utilisé et si les cartes de caractéristiques du premier groupe sont à des résolutions inférieures à celle des images de la séquence, le module TT peut prendre en compte les coordonnées des valeurs dans les cartes de résolutions inférieures.
[64] On notera que l’un au moins des modules SE ou TT doit effectuer une quantification des cartes de caractéristiques.
[65] Le module MLP est un réseau de neurones de synthèse défini par K paramètres Wk, apte à traiter le vecteur Zn, ou J-Uplet, en entrée, pour générer en sortie un second vecteur représentatif de l’échantillon Pn à coder. Le réseau de neurones de synthèse est selon un mode de réalisation un MLP, ou Multi Layer Perceptron, constitué d’une couche d’entrée adaptée au format d’entrée (le J-uplet), optionnellement une ou plusieurs couche(s) cachée(s), et une couche de sortie adaptée au format de sortie du vecteur de sortie, de manière générale un vecteur comportant A éléments. Selon un mode de réalisation, A est égal à 3 et le vecteur de sortie est le triplet (R, G, B) du pixel P’n codé puis décodé. [66] Le module NNC réalise le codage du réseau de neurones de synthèse, notamment de ses paramètres Wk. Optionnellement, le module NNC réalise le codage du réseau de neurones de prédiction, ARM, notamment de ses paramètres Ob. Durant le processus d’entraînement, ou de construction, du codage, c’est-à-dire tant que l’étape d’évaluation d’une performance n’est pas satisfaisante, le module NNC réalise une simulation de codage, suivi d’un décodage, à destination du module d’évaluation. Par la suite, il effectue le codage effectif des paramètres du réseau de neurones de synthèse Wk, et optionnellement le codage du réseau de neurones de prédiction, ARM. Les paramètres codés sont notés Wck et Ocb. De manière connue, la simulation de codage peut être identique au codage effectif, ou en réaliser une approximation.
[67] Le module FMC réalise le codage des cartes FMi, c’est-à-dire des valeurs des cartes de caractéristiques du premier groupe (à l’exclusion des cartes supplémentaires FMEi, et des cartes du second groupe, résultant optionnellement d’un suréchantillonnage par le module SE). Durant le processus d’entraînement, ou de construction, du codage, c’est-à-dire tant que l’étape d’évaluation d’une performance n’est pas satisfaisante, le module FMC réalise une simulation de codage, suivi d’un décodage, à destination du module d’évaluation. Par la suite, il effectue le codage effectif des valeurs des cartes FMi. Les cartes codées sont notées FMci. De manière connue, la simulation de codage peut être identique au codage effectif, ou en réaliser une approximation. Le module de codage quantifie si nécessaire la représentation latente des valeurs des cartes du premier groupe en utilisant un quantificateur pour générer une collection ordonnée de valeurs quantifiées. Puis le module de codage compresse les données quantifiées, en utilisant un codage prenant en compte le voisinage d’une valeur à coder de la carte de caractéristiques. Comme il sera détaillé plus loin, le module FMC peut comprendre un réseau de neurones de prédiction (ARM).
[68] Le module EVAL réalise une évaluation et minimisation d’une performance de codage. La fonction d’évaluation est par exemple de type débit-distorsion. La minimisation peut être effectuée par une descente de gradient, ou tout autre procédé à la portée de l’homme du métier.
[69] Le module MAJ réalise une mise à jour des valeurs des cartes FMi à encoder, en fonction des résultats de la fonction de performance.
[70] La figure 2 représente schématiquement un dispositif de décodage DEC.
[71] Le dispositif de codage DEC de la figure 2 reçoit en entrée un premier groupe de données encodées organisées en M cartes de caractéristiques FMci (dites aussi couches FM) et les paramètres encodés Wck du réseau de neurones de synthèse MLP’, optionnellement les paramètres encodés Ocb du réseau de neurones de synthèse ARM’ .
[72] Ce dispositif de décodage DEC comprend un module NND de décodage de réseau(x) de neurones apte à décoder le réseau de neurones de synthèse MLP’ et optionnellement le réseau de neurones de prédiction ARM', un module FMD de décodage des cartes de caractéristiques, un module XTR’ d’extraction de données, un module SE’ de transformation inverse, un module TT’ de traitement et quantification inverse, un module MLP’ correspondant à un réseau de neurones de synthèse, un module FME’ de génération de cartes de caractéristiques supplémentaires. Selon un mode de réalisation, il produit en sortie une image décodée, notée I (Pdn), comportant une pluralité d’échantillons décodés Pdn.
[73] Les cartes décodées par le module FMD, au nombre de M, sont notées FMdi. Les paramètres du réseau de neurones de synthèse (MLP’) décodés par le module NND sont notés Wdk. Les paramètres du réseau de neurones de prédiction (ARM’) décodés par le module NND sont notés Odb.
[74] Le module FME’ du décodeur peut aussi générer une ou plusieurs cartes supplémentaires, notées FME’i, au nombre de L, identiques aux cartes supplémentaires FMEi générées par le codeur.
[75] Dans un mode de réalisation, le module SE’ réalise une transformation du premier groupe de cartes de caractéristiques FMdi décodées pour générer un second groupe de cartes de caractéristiques à la même résolution que le signal à décoder, notées FMS’i. Le module SE’ effectue optionnellement une quantification inverse correspondant à la quantification effectuée au codeur. La quantification inverse n’est pas nécessaire si le quantificateur Q du codeur a réalisé un simple arrondi des valeurs réelles qui lui sont soumises. La quantification inverse n’est pas nécessaire non plus si le réseau de neurones est apte à prendre en compte une quantification de ses données d’entrée. Sinon, le décodeur réalise l’opération inverse du quantificateur Q. Puis le module SE’ effectue une transformation des valeurs des cartes de caractéristiques, comprenant par exemple un suréchantillonnage, une interpolation, un filtrage, etc., similaire à celle effectuée par le codeur. A l’issue de la transformation, une carte de caractéristiques transformée du second groupe est de même résolution que les images de la séquence à décoder. [76] Dans un mode de réalisation, le module SE’ est absent, dans ce cas les valeurs qui serviront à construire le vecteur caractéristique sont extraites du premier groupe de cartes de caractéristiques.
[77] Le module XTR’ est identique au module XTR de la figure 1. Il réalise une extraction de valeurs des M cartes de caractéristiques FMdi, (et/ou FMS’i et/ou FME’i, selon l’un des modes de réalisation décrits précédemment), pour un échantillon Pdn à décoder, en fonction de ses coordonnées dans le signal à décoder. Dans un mode de réalisation, J=M. Dans un mode de réalisation, J=M+L.
[78] Dans un mode de réalisation, les valeurs extraites constituent le vecteur Zdn. Zdn est un J-uplet, c’est-à-dire qu’il comporte J éléments, ou données zdi.
[79] Dans un mode de réalisation, le module TT’ , optionnel, réalise un traitement des valeurs extraites, pour générer le vecteur Zdn. Le module TT’ peut réaliser une quantification inverse des données extraites de l’ensemble de cartes de caractéristiques. Le traitement peut comporter d’autres opérations, comme un fdtrage, une mise à l’échelle, etc., similaires à ceux effectués par le codeur.
[80] Le module MLP’ est un réseau de neurones dit de synthèse, défini par K paramètres Wdk, apte à traiter le vecteur Zdn, ou J-Uplet, en entrée, pour générer en sortie un second vecteur représentatif de l’échantillon Pn à décoder, de manière générale un vecteur comportant A éléments. Selon un mode de réalisation, K=3 et le vecteur de sortie est le triplet (R, G, B) du pixel Pdn décodé. Le module MLP’ est de structure identique au module MLP, et ses paramètres sont soit identiques si le codage de ses paramètres Wk est sans perte, soit différents si le codage est réalisé avec pertes.
[81] Lorsque tous les échantillons Pn du signal ent été décodés, on dispose d’un signal reconstruit I (Pdn), selon un exemple une image I comportant N échantillons décodés sous la forme de N vecteurs Pdn.
[82] Le dispositif de décodage DEC peut être mis en œuvre au moyen d’un dispositif électronique comprenant un processeur et une mémoire, non représentés ; chacun des modules mentionnés ci-dessus peut alors être réalisé par la coopération du processeur et d’instructions de programme d’ordinateur mémorisées dans la mémoire susmentionnée et conçues pour effectuer les fonctionnalités du module concerné, notamment comme décrit ci-dessous, lorsque ces instructions sont exécutées par le processeur [83] La figure 3 illustre un exemple de réseau de neurones artificiels de synthèse utilisé au codage et au décodage dans le cadre de modes de réalisation de l’invention.
[84] Le réseau de neurones artificiels de synthèse utilisé au codage, MLP, et le réseau de neurones artificiels de synthèse utilisé au décodage, MLP’, sont définis par une structure identique, comprenant par exemple une pluralité de couches de neurones artificiels, et par un ensemble de poids et fonctions d’activation associés respectivement aux neurones artificiels du réseau concerné.
[85] Une représentation vectorielle d’un échantillon courant (un vecteur Zn ou Zdn issu des cartes de caractéristiques FMi/FMSi et FMEi au codeur ou FMdi/FMS’i et FME’i au décodeur) est appliquée en entrée (c’est-à-dire sur une couche d’entrée) du réseau de neurones artificiels de synthèse MLP ou MLP’. Le réseau de neurones artificiels de synthèse produit en sortie un vecteur, selon un mode de réalisation les composantes de couleur (R, G, B) constitutives d’un pixel couleur d’une image.
[86] La concaténation de tous ces pixels reconstruits dans une image (2D, 3D) constitue l’image décodée, ou reconstruite.
[87] Au codeur, le réseau de neurones artificiels de synthèse MLP est entraîné sur l’image, de sorte à minimiser les différences entre la représentation en entrée de l’image courante I (Pn) et sa représentation I (P’n) en sortie, tout en minimisant également la quantité de données à encoder. Le module EVAL effectue une mesure de performance en ce sens.
[88] Une fois que l’entraînement du codeur est terminé, les paramètres du réseau sont encodés, soit sans pertes, auquel cas le réseau de neurones MLP’ est identique à MLP, soit avec pertes, auquel cas le réseau MLP’ peut être légèrement différent de MLP.
[89] La figure 4 illustre un exemple de réseau de neurones artificiels de prédiction utilisé au codage (ARM) et au décodage (ARM’) pour les cartes de caractéristiques, dans le cadre de modes de réalisation de l’invention.
[90] Le réseau de neurones artificiels de prédiction utilisé au codage, ARM, et le réseau de neurones artificiels de prédiction utilisé au décodage, ARM’, sont définis par une structure identique, comprenant par exemple une pluralité de couches de neurones artificiels, et par un ensemble de poids et fonctions d’activation associés respectivement aux neurones artificiels du réseau concerné.
[91] Une représentation vectorielle d’un voisinage courant (un vecteur Cn ou Cdn issu des cartes de caractéristiques FMi/FMSi et FMEi au codeur ou FMdi/FMS’i et FME’i au décodeur) est donnée en entrée (c’est-à-dire sur une couche d’entrée) du réseau de neurones artificiels de prédiction ARM (au codage) ou ARM’ (au décodage).
[92] Le réseau de neurones artificiels de prédiction se comporte comme une fonction qui produit en sortie une prédiction de la valeur courante de la carte de caractéristiques en cours de traitement, qui peut se présenter sous forme d’une valeur de prédiction ou de données de probabilité.
[93] Selon un mode de réalisation, au codeur, le réseau implémente une fonction f\ qui fournit une moyenne et/ou une variance (p.c) attendues pour la valeur courante de la valeur courante Vn de la carte FMi à coder. Ces valeurs statistiques sont utilisées pour réaliser le codage entropique de cette valeur. Par exemple, si la fonction produit une moyenne, cette moyenne est soustraite à la valeur courante et seule la différence est codée entropiquement, cette moyenne étant considérée comme une prédiction de la valeur courante. Alternativement, si la fonction produit une moyenne et une variance, la moyenne est soustraite de la valeur courante, et la différence est codée à l’aide d’un codage entropique adapté à la variance, par exemple en quantifiant ladite variance en un ensemble prédéterminé de variances et en associant un type de codage entropique à chaque valeur de variance quantifiée. Au décodeur, le réseau implémente une fonction f\ qui fournit une moyenne et/ou une variance attendues pour la valeur courante de la valeur courante Vdn de la carte FMdi à décoder. Ces valeurs statistiques sont utilisées pour réaliser le décodage entropique de cette valeur. Par exemple, si la fonction produit une moyenne, la valeur courante est décodée par le décodeur entropique et cette moyenne est additionnée à la valeur courante. Alternativement, si la fonction produit une moyenne et une variance, la valeur courante est décodée par le décodeur à l’aide d’un décodage entropique adapté à la variance, par exemple en quantifiant ladite variance en un ensemble prédéterminé de variances et en associant un type de décodage entropique à chaque valeur de variance quantifiée.
[94] Selon un autre mode de réalisation, le réseau de neurones peut produire la probabilité attendue (pr) de chaque valeur possible de l’échantillon courant. Dans ce cas, le codage ou décodage entropique sera adapté à cette probabilité (comme il est connu pour le codage entropique de Huffman ou arithmétique).
[95] Au codeur, le réseau de neurones artificiels de prédiction ARM est entraîné sur l’image, de sorte à minimiser la quantité de données à encoder. Le module EVAL effectue une mesure de performance en ce sens. On rappelle que la mesure de performance globale porte sur une minimisation de la distorsion entre des images codées puis décodées I (P’n) et les images d’entrée I (Pn), tout en minimisant le débit de codage. Selon un mode de réalisation, les cartes de caractéristiques sont encodées sans pertes, via un codage entropique. Dans ce cas, le codage des cartes de caractéristiques influe sur le débit, mais pas sur la distorsion des images codées. Selon un autre mode de réalisation, si les cartes de caractéristiques sont encodées avec pertes, le codage des cartes de caractéristiques influe sur le débit, mais aussi sur la distorsion.
[96] Une fois que l’entraînement est terminé, les B paramètres Ocb du réseau sont encodés, soit sans pertes, auquel cas le réseau de neurones ARM’ est identique à ARM, soit avec pertes, auquel cas le réseau ARM’ peut être légèrement différent de ARM.
[97] La figure 5 est un logigramme représentant un exemple de procédé de codage qui peut être mis en œuvre par le dispositif de codage de la figure 1.
[98] Selon ce mode de réalisation, le signal est une image bidimensionnelle, chaque échantillon à coder est donc un pixel Pn de coordonnées (xn, yn).
[99] L’encodage se déroule en deux phases principales :
[100] Dans une première phase, dite phase de construction, un apprentissage est réalisé, afin de déterminer, pour un signal d’entrée I (Pn), les valeurs des cartes FMi et des paramètres Wk et optionnellement Ob pour optimiser une fonction de coût globale. L’apprentissage est par exemple réalisé par une descente de gradient, suivie d’une mise à jour des paramètres du réseau de neurones de synthèse MLP, des valeurs des cartes de caractéristiques FMi, et optionnellement du réseau de neurones de prédiction ARM. Comme il est connu dans l’état de l’art, la fonction de coût peut être de type débit-distorsion, ou débit, ou distorsion, ou perceptuelle. Pour mesurer le débit R, il est nécessaire de simuler le codage des cartes FMi, puis de mesurer le débit de codage associé (la taille du flux Bl). Selon un mode de réalisation, on ne simule pas le codage des paramètres Wk et/ou Ob car leur influence est moins importante que celle des cartes de caractéristiques. Selon un mode de réalisation, on simule aussi le codage des paramètres Wk et/ou Ob et on mesure le débit associé (la taille du flux B2). Pour mesurer la distorsion D, il est nécessaire de simuler le codage puis le décodage d’une partie au moins de l'image I, pour obtenir au moins un pixel P’n résultant d’une simulation de codage puis de décodage, puis de mesurer l'écart entre cette partie de l'image I (Pn) en entrée et une partie correspondante de l'image I (P’n) codée puis décodée.
[101] Puis lors d’une deuxième phase, dite phase de codage, les cartes FMi et les paramètres Wk et éventuellement Ob sont encodés pour produire les valeurs codées FMci et Wck (et éventuellement Ocb) avant transmission ou stockage. Ils constituent la représentation compressée du signal d’entrée I (Pn).
[102] On va maintenant décrire les étapes d’un procédé selon un mode de réalisation de l’invention.
[103] Lors d’une étape E20, un signal I (Pn) à coder, comportant une pluralité de N échantillons Pn, est fourni en entrée du procédé.
[104] Lors d’une étape E21, les M cartes FMi du premier groupe sont initialisées. Par la suite, les paramètres Wk du réseau de neurones de synthèse MLP et les valeurs des cartes FMi, et éventuellement les paramètres Ob du réseau de neurones de prédiction doivent être optimisés durant la phase de construction.
[105] Selon un mode de réalisation, les cartes FMi sont de même résolution que le signal d’entrée I (Pn) et comportent donc chacune le même nombre de valeurs N qu’il y a d’échantillons Pn à coder.
[106] Selon un mode de réalisation, les cartes FMi sont de résolution inférieure ou égale à celle du signal d’entrée I (Pn) et comportent donc, pour au moins l’une d’entre elles, un nombre N’ de valeurs à coder inférieur à N. Selon une variante, la première carte FMi est à la résolution des images et chaque carte suivante est à une résolution moitié de la précédente.
[107] Selon un mode de réalisation, plusieurs cartes FMi sont de même résolution, inférieure à celle du signal d’entrée I (Pn).
[108] Selon un mode de réalisation, les cartes FMi sont transformées pour fournir un second groupe de cartes de caractéristiques transformées FMSi. Dans ce mode, les vecteurs caractéristiques sont extraits de préférence des cartes transformées du second groupe, et non directement des cartes du premier groupe. Dans ce mode, les vecteurs caractéristiques sont donc extraits indirectement des cartes du premier groupe. Les cartes du second groupe ne sont pas codées, elles servent uniquement à la construction des vecteurs caractéristiques.
[109] Selon un mode de réalisation, les cartes FMi sont initialisées par des valeurs constantes prédéfinies.
[110] Selon un autre mode de réalisation, les cartes de caractéristiques sont initialisées par un ensemble de valeurs réelles aléatoires.
[111] Selon un mode de réalisation, une ou plusieurs cartes FMEi, formant un groupe supplémentaire de L cartes de caractéristiques supplémentaires, sont générées, et ajoutées au premier groupe. Elles servent à la construction du vecteur caractéristique mais ne sont ni stockées ni transmises.
[112] Les cartes de caractéristiques FMi du premier groupe sont par la suite mises à jour, ou raffinées, lors d’une étape E22, par le module de mise à jour MAJ du codeur au cours de son apprentissage.
[113] Lors d’une étape E23, les cartes FMi du premier groupe sont codées par le module FMC du codeur. Durant la phase de construction, cette opération est une simulation de codage. Durant la phase de codage, cette opération est un codage effectif et les valeurs codées constituent le flux Bl. La simulation peut être identique au codage effectif mais elle peut aussi être différente (par exemple, simplifiée). Pour ce codage, on utilise une technique de prédiction d’une valeur de carte de caractéristiques par son voisinage, comme il sera décrit par exemple à l’appui de la figure 9. Dans un mode de réalisation, la structure et les paramètres Ob du réseau de neurones de prédiction sont initialisés par exemple lors de la première itération de cette étape. Ces paramètres sont par la suite mis à jour, ou raffinés, au cours de la phase de construction, lors des itérations ultérieures du procédé.
[114] Dans un mode de réalisation, les cartes FMi sont codées dans l’ordre (FMi, FM2,... , FM4), et les variables de chaque carte dans un ordre prédéfini, par exemple lexicographique. Chaque carte subit un codage entropique. Le codage entropique produit un flux compressé Bl dont le débit est mesuré ultérieurement au cours d’une étape E29.
[115] Lors d’une étape E24, selon un mode de réalisation, les M cartes du premier groupe FMi sont transformées par le module SE pour générer des cartes du second groupe FMSi à la résolution des images de la séquence d’entrée.
[116] Selon un mode de réalisation, M cartes FMSi sont générées. [117] Selon un mode de réalisation, chaque carte FMi est transformée en une carte FMSi.
[118] Selon un mode de réalisation, au moins une carte FMi est de résolution inférieure à celle des images de la séquence à coder et l’opération de transformation comporte un suréchantillonnage pour que la carte FMSi transformée comporte le même nombre d’échantillons que les images de la séquence. Le suréchantillonnage consiste à rajouter des valeurs dans les cartes FMSi pour atteindre la résolution des images de la séquence d’entrée. Il peut être simple (par réplication du plus proche voisin) ou comporter une interpolation (linéaire, polynomiale, par filtrage, etc.).
[119] Lors d’une étape E25, des valeurs sont extraites par le module XTR des cartes FMi ou éventuellement FMSi transformées, et optionnellement FMEi. supplémentaires. Cette extraction est réalisée en fonction des coordonnées (xn, yn) de l’échantillon Pn du signal d’entrée. Elle peut aussi être réalisée en fonction de la résolution de la carte considérée.
[120] Selon un mode de réalisation, le vecteur Zn caractéristique résulte directement de cette extraction.
[121] Les échantillons à coder sont par exemple traités par ordre séquentiel, de n=l à n=N.
[122] Selon un mode de réalisation, lors d’une étape E26, le vecteur Zn caractéristique est construit par le module TT à partir des valeurs extraites des cartes FMi ou FMSi et optionnellement FMEi pour chaque échantillon Pn de coordonnées (xn, yn) du signal d’entrée. Le traitement peut comporter une quantification des valeurs extraites des cartes FMi ou du vecteur Zn constitué, si nécessaire. Le traitement peut comporter d’autres opérations, comme un fdtrage, une mise à l’échelle, l’application d’une fonction quelconque, de préférence monotone, etc.
[123] Dans un mode de réalisation, Zn comporte autant de valeurs que de cartes FMi ou FMSi (et optionnellement FMEi) en entrée. Dans ce cas on a J=M (+L).
[124] Dans un mode de réalisation, Zn est un J-uplet (zi, Z2, . . . , zj), constitué des valeurs des cartes FMi ou FMSi (et optionnellement FMEi) situées aux coordonnées (xn, yn) du pixel courant Pn, comme il sera illustré à l’appui de la figure 6.
[125] Dans un mode de réalisation, Zn est un J-uplet construit à partir de valeurs prélevées dans les cartes FMi (et optionnellement FMEi) à des coordonnées qui peuvent être différentes selon les cartes. Par exemple, si les cartes FMi (et/ou FMEi) sont à des résolutions différentes parce qu’elles ont été sous-échantillonnées, les cordonnées sont adaptées (par une mise à l’échelle) pour correspondre à la résolution de chaque carte.
[126] Dans un mode de réalisation, Zn est un J-uplet construit à partir de valeurs prélevées dans les cartes FMi (et optionnellement FMEi) en appliquant le traitement à une ou plusieurs valeurs des cartes, par exemple un filtrage des valeurs voisines de la valeur ciblée dans une carte. Par exemple, pour un échantillon courant Pn dans une carte FMi qui se trouve à la même résolution que le signal d’entrée, on peut extraire les valeurs situées aux coordonnées (xn, yn), (xn-l, yn), (xn, yn-l) et (xn-l, yn-l) et appliquer un traitement à ces valeurs (filtrages, moyennage, interpolation, etc.) pour obtenir la valeur finale (z0 de l’élément i du vecteur Zn relative à cette carte FMi ou FMEi. Selon un autre exemple, dans une carte FMi qui se trouve à une résolution moitié du signal d’entrée, on peut considérer les valeurs situées aux coordonnées (xn/2, yn/2), (xn/2-1, yn/2), (xn/2, yn/2-l) et (xn/2-l, yn/2-l) et appliquer un traitement à ces valeurs (filtrages, moyennage, interpolation, etc.) pour obtenir la valeur finale (zi) de l’élément i du vecteur Zn relative à cette carte FMi ou FMEi.
[127] Lors d’une étape E27, le vecteur Zn est traité par le réseau de neurones de synthèse MLP pour générer en sortie un vecteur représentatif de l’échantillon Pn à coder, selon un mode de réalisation le triplet (R, G, B) de l’échantillon P’n (l’échantillon Pncodé puis décodé).
[128] La structure et les paramètres Wk du réseau de neurones de synthèse sont initialisés par exemple lors de la première itération de cette étape. Ces paramètres sont par la suite mis à jour, ou raffinés, au cours de la phase de construction, lors des itérations ultérieures du procédé.
[129] Selon un mode de réalisation, les paramètres du réseau de neurones de synthèse et/ou du réseau de neurones de prédiction sont initialisés par des valeurs prédéfinies connues pour donner un résultat satisfaisant (par exemple, à la suite d’un entraînement sur un corpus d’images).
[130] Selon un autre mode de réalisation, les paramètres du réseau de neurones de synthèse et/ou du réseau de neurones de prédiction sont initialisés par un ensemble de valeurs aléatoires.
[131] Lors d’une étape E28, les paramètres Wk du réseau de neurones de synthèse MLP et les paramètres Ob du réseau de neurones de prédiction ARM, s’il existe, sont quantifiés et codés. Durant la phase de construction, cette opération est une simulation de codage. Durant la phase de codage, cette opération est un codage effectif et les valeurs codées constituent le flux B2. La simulation peut être identique au codage effectif mais elle peut aussi être différente (par exemple, simplifiée). On peut utiliser à cette fin toute technique connue, par exemple la norme de codage de réseaux de neurones proposée par le standard MPEG-7 partie 17, aussi appelée NNR (Neural Network Representation). On notera que dans ce cas, il faut choisir la quantité de dégradation que le codage apporte aux poids Wket optionnellement Ob.
[132] Lors d’une étape E29, une mesure de performance est évaluée.
[133] À cet effet, les débits de simulation de codage associés aux cartes de caractéristiques du premier groupe (simulation du flux B1 par codage des cartes FMi) et optionnellement aux paramètres du (des) réseau(x) de neurones (simulation du flux B2 par codage des paramètres Wket optionnellement Ob) sont mesurés.
[134] Selon un mode de réalisation, la fonction de coût est de type débit-distorsion, notée (D+L*R), où D par exemple l’erreur quadratique mesurée entre le signal d’entrée et le signal décodé (ou l’erreur mesurée sur un sous-ensemble d’échantillon du signal). Selon un autre exemple, D est calculé à partir d’une fonction perceptive telle que le SSIM (pour Structural SIMilarity), ou MSSSIM (pour Multi-scale Structural SIMilarity). Selon un mode de réalisation, R est le débit simulé du flux B1 ; selon un autre mode de réalisation, R est le débit total utilisé pour coder cette image, c’est-à-dire la somme des débits simulés de B 1 et B2. L un paramètre qui règle le compromis débit-distorsion. D’autres fonctions de coût sont possibles.
[135] Tant que la fonction de coût n’a pas atteint son minimum, la mesure de performance n’est pas satisfaisante, et le procédé est réitéré à partir de l’étape E22. Cette minimisation peut être effectuée par un mécanisme connu comme une descente de gradient avec mise à jour des paramètres au cours de l’étape E22 pour les valeurs des cartes de caractéristiques et E23, E27 pour les paramètres du ou des réseau(x).
[136] Lors d’une étape EF, si la fonction de coût a atteint son minimum, l’entraînement s’arrête. Si une version codée correspondant à la dernière simulation des paramètres du réseau de neurones de synthèse (Wk) et des cartes de caractéristiques (FMi) est disponible, les flux B 1 et B2 peuvent en être constitués. Selon un autre mode de réalisation, le codage effectif les paramètres mis à jour du réseau de neurones de synthèse (Wk) et des valeurs des cartes de caractéristiques (FMi) et optionnellement du réseau de neurones de prédiction (Ob) est effectué à cette étape pour produire les paramètres encodés Wck (optionnellement Ob) et FMci qui constituent des flux B1 etB2. Les flux B1 et B2 peuvent être concaténés pour produire un flux final. Selon un mode de réalisation, le flux B2 des paramètres codés du (des) réseau(x) de neurones est (sont) stocké(s) ou transmis avant le flux B 1, afin de pouvoir être décodé(s) avant le flux B 1. La figure 6 représente de manière illustrée un procédé de codage utilisé dans un mode de réalisation de l’invention.
[137] Dans ce mode de réalisation, les cartes FMi générées sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7.
[138] La première carte FMi a la même résolution que l’image I (Pn), et comporte donc WxH variables, où W représente la largeur de l’image en pixels, et H sa hauteur. La seconde carte FM2 est de résolution moitié (dans chaque dimension) de la carte FMi. Chaque carte supplémentaire est de résolution moitié de la carte précédente. Cette structure permet de réduire le nombre de variables des cartes de caractéristiques ce qui facilite le codage et l’apprentissage tout en minimisant le coût de codage.
[139] La carte FM2 est suréchantillonnée par le module SE d’un facteur 2 dans chaque dimension, selon un procédé illustré à l’appui de la figure 6. La carte FM3 est suréchantillonnée d’un facteur 4 dans chaque dimension, et la carte FM4 d’un facteur 8 dans chaque dimension.
[140] Les cartes FMSi résultantes sont de même résolution que l’image I (Pn), et comportent donc chacune WxH valeurs, où W représente la largeur de l’image en pixels et H sa hauteur (N=WxH).
[141] Selon ce mode de réalisation, les couches FMSi sont quantifiées par le module SE.
[142] D’autres types de structure sont possibles, par exemple on peut utiliser un taux de réduction différent d’un demi entre les cartes (un quart, ou un tiers, etc.).
[143] Selon une variante présentée en pointillés, les cartes de caractéristiques sont au nombre de 5 : une carte supplémentaire FMEo a été introduite, qui ne sera ni codée ni transmise. Cette carte supplémentaire comporte typiquement des données qui peuvent assister le réseau MLP dans la tâche de reconstruction du signal. Ainsi, les cartes ajoutées peuvent être une ou plusieurs parmi la liste suivante, non limitative :
[144] - Une carte comportant en chaque point l’abscisse de ce point.
[145] - Une carte comportant en chaque point l’ordonnée de ce point.
[146] - Une carte comportant en chaque point un codage positionnel (comme décrit par exemple à l’adresse Internet https://skosmos.loterre.fr/P66/fr/page/-K0D65X2X-X). [147] - Une carte représentant une image distincte de l’image en cours de traitement, susceptible d’apporter des informations sur l’image à coder, par exemple l’image précédemment traitée si l’image courante fait partie d’une série d’images à coder comme une vidéo, un ensemble d’images médicales, une représentation multivues, etc.
[148] - Une carte représentant une carte de caractéristiques d’une image distincte de l’image en cours de traitement susceptible d’apporter des informations sur l’image à coder, par exemple une carte précédemment traitée si l’image courante fait partie d’une série d’images à coder comme une vidéo, un ensemble d’images médicales, une représentation multi-vues, etc.
[149] - Une carte comportant la valeur d’un échantillon déjà décodé de la même carte, par exemple l’échantillon précédent dans l’ordre de décodage.
[150] Dans ce mode de réalisation, le vecteur Zn est un 4-uplet (Z1...Z4) constitué des valeurs extraites des cartes FMSi situées aux coordonnées (xn, yn) du pixel courant Pn. Le vecteur Zn constitué des valeurs extraites (quantifiées) des cartes FMSi est traité par le réseau de neurones de synthèse MLP pour générer en sortie un second vecteur, selon l’exemple le vecteur de sortie est le triplet (R, G, B) du pixel P’n codé puis décodé. Le triplet est inséré dans l’image décodée I (P’n) aux positions (xn, yn) des composantes couleur (R’, G’, B’).
[151] Dans un autre mode de réalisation, non représenté, le vecteur Zn est extrait directement des couches FMi, aux positions recalculées en fonction de la taille des cartes, puis les valeurs extraites sont éventuellement traitées et quantifiées après extraction.
[152] Selon la variante présentée en pointillés, le vecteur Zn est un 5-uplet (Z0...Z4), la valeur zo étant extraite de la carte supplémentaire FMEo.
[153] La figure 6 est un logigramme représentant un exemple de procédé de décodage qui peut être mis en œuvre par le dispositif de décodage de la figure 2.
[154] Lors d’une étape E30, les flux B1 et B2 sont extraits du flux encodé. Ils contiennent respectivement les représentations codées des cartes du premier groupe FMci et des paramètres Wck, optionnellement des paramètres Ocb.
[155] Lors d’une étape E31, les M cartes FMdi sont générées par décodage des valeurs FMci. Pour ce décodage, on utilise une technique de prédiction d’une valeur de carte de caractéristiques par son voisinage, comme il sera décrit par exemple à l’appui de la figure 10. Tl
. Dans un mode de réalisation, les cartes FMdi sont décodées dans l’ordre (FMdi, FMd2,...
FMc ), et les valeurs de chaque carte dans un ordre prédéfini, par exemple lexicographique.
[156] Selon des modes de réalisation tels que décrits pour le codeur :
[157] - Les cartes FMdi sont de même résolution que le signal I (Pdn) à reconstituer, c’est-à- dire qu’elles comportent N valeurs.
[158] - Les cartes FMdi sont à une résolution inférieure ou égale à celle du signal I (Pdn) à reconstituer.
[159] - Plusieurs cartes FMdi sont de même résolution, inférieure à la résolution du signal.
[160] Lors d’une étape E32, selon un mode de réalisation, une ou plusieurs cartes FME’i, formant un groupe supplémentaire de L cartes de caractéristiques supplémentaires, sont générées et complètent le premier groupe. Elles ne sont pas décodées mais générées par le décodeur de manière identique à la génération du codeur. Elles comportent typiquement des données qui peuvent assister le réseau MLP’ dans la tâche de reconstruction du signal. La liste non limitative de cartes de caractéristiques supplémentaires possibles décrite à l’appui de la figure 6 pour le codeur s’applique ici.
[161] Lors d’une étape E33, selon un mode de réalisation, les M cartes du premier groupe FMdi sont transformées par le module SE’ pour générer des cartes du second groupe FMS’i à la résolution des images d’entrée. Cette étape est similaire à l’étape E24 qui a été décrite pour le codeur à l’appui de la figure 5, et les modes de réalisation s’appliquent. Notamment :
[162] Selon un mode de réalisation, M cartes FMS’i sont générées.
[163] Selon un mode de réalisation, chaque carte FMdi est transformée en une carte FMSi.
[164] Selon un mode de réalisation, au moins une carte FMdi est de résolution inférieure à celle des images de l’image à coder et l’opération de transformation comporte un suréchantillonnage pour que la carte FMS’i transformée comporte le même nombre d’échantillons que l’image d’entrée. Le suréchantillonnage consiste à rajouter des valeurs dans les cartes FMS’i pour atteindre la résolution de l’image d’entrée. Il peut être simple (par réplication du plus proche voisin) ou comporter une interpolation (linéaire, polynomiale, par filtrage, etc.)
[165] La transformation peut optionnellement comporter une quantification inverse des valeurs extraites, si nécessaire. Cependant la quantification inverse n’est pas obligatoire. [166] Lors d’une étape E34, des valeurs sont extraites par le module XTR’ des cartes FMdi ou éventuellement FMS’i transformées, et optionnellement FME’i supplémentaires. Cette extraction est réalisée en fonction des coordonnées (xn, yn) d’un échantillon Pn du signal d’entrée. Elle peut aussi être réalisée en fonction de la résolution de la carte considérée. Cette étape est similaire à l’étape E25 qui a été décrite pour le codeur à l’appui de la figure 5, et les modes de réalisation s’appliquent. Notamment :
[167] Selon un mode de réalisation, le vecteur Zdn caractéristique résulte directement de cette extraction.
[168] Dans un mode de réalisation, Zdn est un J-uplet (zi, Z2, . . . , zj), constitué des valeurs des cartes FMdi ou FMS’i (et optionnellement FME’i) situées aux coordonnées (xn, yn) d’un pixel courant Pdn, comme il sera illustré à l’appui de la figure 8.
[169] Les échantillons à décoder sont par exemple traités par ordre séquentiel, de n=l à n=N.
[170] Selon un mode de réalisation, lors d’une étape E35, un vecteur Zdn est construit par le module TT’ à partir des valeurs extraites des cartes FMdi du premier groupe ou des cartes FMS’i du second groupe et éventuellement FME’i du groupe supplémentaire, pour chaque échantillon Pdn de coordonnées (xn, yn) à décoder, en fonction des coordonnées (xn, yn). Cette étape est similaire à l’étape E26 qui a été décrite pour le codeur à l’appui de la figure 5 et les modes de réalisation décrits s’appliquent. L’extraction peut comporter une quantification inverse des valeurs extraites ou du vecteur Zdn constitué, si nécessaire.
[171] Lors d’une étape E36, les paramètres Wdk du réseau de neurones de synthèse MLP’ et éventuellement les paramètres Odb du réseau de neurones de prédiction sont générés par décodage des valeurs Wck et Ocb du flux B2. On peut utiliser à cette fin toute technique connue de décodage correspondant à celle de codage qui a été utilisée par le codeur. Le réseau de neurones de synthèse MLP’ est semblable au réseau de synthèse MLP, c’est-à-dire qu’il est de même structure et comporte les mêmes paramètres, au codage près, qui peut être réalisé avec ou sans pertes. De même, le réseau de neurones de prédiction ARM’, s’il est utilisé pour décoder les cartes de caractéristiques, est semblable au réseau de prédiction ARM, c’est-à-dire qu’il est de même structure et comporte les mêmes paramètres, au codage près, qui peut être réalisé avec ou sans pertes.
[172] Selon un mode de réalisation, le flux B2 est décodé avant le flux Bl, afin de pouvoir disposer du réseau de neurones de synthèse MLP’ et éventuellement du réseau de neurones de prédiction ARM’ avant de commencer à décoder les échantillons. [173] Lors d’une étape E37, le vecteur Zdn est traité par le réseau de neurones de synthèse MLP' pour générer en sortie un second vecteur représentatif de l’échantillon Pdn à décoder, selon un mode de réalisation un triplet qui est injecté dans l’image décodée I (Pdn) aux positions (xn, yn) des composantes couleur (Rd, Gd, Bd). Cette étape est similaire à l’étape E27 qui a été décrite pour le codeur à l’appui de la figure 5.
[174] Lorsque tous les échantillons du signal ont été traités, le signal décodé correspondant par exemple à l’image I (Pdn) est disponible.
[175] La figure 8 représente de manière illustrée un procédé de décodage utilisé dans un mode de réalisation de l’invention.
[176] Dans ce mode de réalisation, les cartes décodées FMdi sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7.
[177] Dans ce mode de réalisation, la première carte FMdi a la même résolution que l’image I, et comporte donc WxH variables, où W représente la largeur de l’image en pixels, et H sa hauteur. La seconde carte FMd2 est de résolution moitié (dans chaque dimension) de la carte FMdi. Chaque carte supplémentaire est de résolution moitié de la carte précédente. Cette structure permet de réduire le nombre de variables des cartes de caractéristiques ce qui facilite le décodage tout en minimisant le coût de codage.
[178] La carte FMd2 est suréchantillonnée d’un facteur 2 dans chaque dimension, selon tout procédé de suréchantillonnage à la portée de l'homme du métier. La carte FMdi est suréchantillonnée d’un facteur 4 dans chaque dimension, et la carte FMcL d’un facteur 8 dans chaque dimension.
[179] Les cartes FMS’i sont de même résolution que l’image à décoder, et comportent donc WxH valeurs, où W représente la largeur de l’image en pixels, et H sa hauteur.
[180] Dans ce mode de réalisation, le vecteur Zdn est un 4-uplet (Z1...Z4) constitué des valeurs des cartes FMS’i situées aux coordonnées (xn, yn) du pixel courant Pdn. Le vecteur Zdn est optionnellement déquantifié puis traité par le réseau de neurones de synthèse MLP’ pour générer en sortie le triplet (R, G, B) représentatif de l’échantillon Pdn à décoder. Le triplet (R, G, B) est inséré dans l’image décodée I (Pdn) aux coordonnées (xn, yn) dans les composantes couleur (Rd, Gd, Bd). [181] Selon une variante présentée en pointillés, les cartes sont au nombre de 5 : une carte supplémentaire FME’o a été introduite. Dans ce mode de réalisation, le vecteur Zdn est un 5- uplet.
[182] La figure 9 est un logigramme représentant une méthode de codage de cartes de caractéristiques qui peut être mis en œuvre par le dispositif de codage de la figure 1 et par le procédé de codage de la figure 5.
[183] Ces étapes constituent des sous-étapes de l’étape E23 décrite précédemment à l’appui de la figure 5. Elles ont pour but de coder une valeur courante Vn d’une carte de caractéristiques FMi du premier groupe en cours de traitement en utilisant des valeurs du voisinage.
[184] Lors d’une sous-étape E231, un vecteur de voisinage (Cn) est établi, comprenant des valeurs voisines de la valeur Vn. Comme il sera illustré ultérieurement à l’appui des figures 11 et 12, ces valeurs voisines peuvent être situées dans la même carte ou/et dans une carte différente de la pluralité M de cartes FMi. Ce vecteur de voisinage est constitué d’un nombre C de valeurs, ou données, correspondant à des valeurs de voisinage (par exemple, C=10). Ces valeurs doivent être connues du codeur et du décodeur, elles doivent donc se situer dans un voisinage causal de la valeur Vn.
[185] Selon un premier mode de réalisation, ces valeurs sont utilisées pour déterminer le contexte d’un codeur entropique pour coder la valeur courante lors d’une étape E234. Ce codeur peut être un codeur de type CAB AC (Context- adaptive binary arithmetic coding). Ce type de codeur est bien connu de l’homme du métier. Il est notamment utilisé dans la norme de compression vidéo H.265/HEVC. Il s'agit d'un codeur arithmétique dont la compression est sans perte. Il décompose tous les symboles non-binaires en symboles binaires. Puis, pour chaque bit, le codeur sélectionne le modèle de probabilité le plus adapté et utilise un contexte pour optimiser l'estimation de la probabilité. Ce contexte peut être défini par des informations des éléments voisins. Un codage arithmétique est ensuite appliqué pour compresser les données résultantes. Comme il est connu de l’homme du métier, il y a plusieurs façons d’utiliser le vecteur de voisinage pour produire une information de contexte. Par exemple, on peut compter le nombre de valeurs voisines différentes de zéro, et associer un contexte à chaque nombre. Alternativement, on peut effectuer des comparaisons entre plusieurs valeurs voisines, et associer un contexte donné à une configuration d’ordre entre les valeurs voisines, par exemple en classant les valeurs voisines par ordre croissant, et en associant un contexte à chaque ordre possible.
[186] Dans un deuxième mode de réalisation, le voisinage est utilisé pour prédire, au cours d’une étape E232, la valeur courante à partir d’un modèle autorégressif. On rappelle qu’un modèle autorégressif prédit un échantillon d’une série par ses valeurs passées. Dans ce mode, les valeurs passées sont constituées par le contexte, et la différence entre la variable prédite et la valeur réelle est quantifiée puis codée de manière entropique au cours de l’étape E234.
[187] Dans un troisième mode réalisation, comme illustré à l’appui de la figure 12, un réseau de neurones de prédiction ARM est utilisé au cours de l’étape E233 pour prédire les caractéristiques statistiques de la variable à coder. Le vecteur de voisinage est donné en entrée du réseau ARM, pour fournir en sortie une prédiction de la valeur courante. Selon un mode de réalisation, le réseau ARM se comporte comme une fonction f\ telle que décrite à l’appui de la figure 4, qui fournit un ensemble de paramètres statistiques (moyenne, variance, médiane, etc.) utilisées pour coder la valeur courante de manière entropique. Le rôle de ce module ARM est de prédire au mieux la valeur courante, pour l’ensemble des valeurs Vn à coder des cartes FMi, afin de réduire le débit nécessaire au codage des cartes de caractéristiques. Selon un autre mode de réalisation, le réseau de neurones de prédiction ARM est utilisé pour produire la probabilité (pr) attendue de la valeur possible de l’échantillon courant. Le codage entropique est adapté à cette probabilité (comme il est connu pour le codage entropique de Huffman ou arithmétique).
[188] Dans un quatrième mode de réalisation, chaque carte de caractéristiques est divisée en blocs de taille prédéterminée, et le codage de chaque bloc comporte une transformée (par exemple une DCT, Discrete, Cosine Transform, une transformée de Haar, etc.), et les valeurs transformées sont codées par un codage entropique.
[189] Dans un cinquième mode de réalisation, chaque carte de caractéristiques est divisée en blocs de taille prédéterminée, et chaque bloc est représenté par un code produit de type Lattice Vector Quantization.
[190] A l’issue du procédé, la valeur codée courante Vcn de la carte FMi en cours de traitement est codée. [191] La figure 10 est un logigramme représentant une méthode de décodage de cartes de caractéristiques qui peut être mis en œuvre par le dispositif de décodage de la figure 2 et par le procédé de décodage de la figure 7
[192] Ces étapes constituent des sous-étapes de l’étape E31 décrite précédemment à l’appui de la figure 7. Elles ont pour but de décoder une valeur courante Vdn d’une carte de caractéristiques FMdi du premier groupe en cours de traitement en utilisant des valeurs du voisinage.
[193] Lors d’une sous-étape E311, un vecteur de voisinage (Cdn) est établi, comprenant des valeurs voisines de la valeur Vdn. Cette étape est similaire à m’ étape E231 précédemment décrite et les mêmes modes de réalisation s’appliquent. Ce vecteur de voisinage est constitué d’un nombre C de valeurs, ou données, correspondant à des valeurs de voisinage (par exemple, C=10) situées dans la même carte ou/et dans une carte différente de la pluralité M de cartes FMdi. Ces valeurs se situant dans un voisinage causal de la valeur Vdn sont connues du décodeur.
[194] Selon un premier mode de réalisation, ces valeurs sont utilisées pour déterminer le contexte d’un décodeur entropique pour décoder la valeur courante lors d’une étape E314. Ce décodage est similaire à celui qui a été utilisé au codeur, par exemple CABAC. L’utilisation du voisinage pour produire une information de contexte est similaire à celle qui a été choisie au codeur. Par exemple, on peut compter le nombre de valeurs voisines différentes de zéro, et associer un contexte à chaque nombre. Alternativement, on peut effectuer des comparaisons entre plusieurs valeurs voisines, et associer un contexte donné à une configuration d’ ordre entre les valeurs voisines, par exemple en classant les valeurs voisines par ordre croissant, et en associant à contexte à chaque ordre possible.
[195] Dans un deuxième mode de réalisation, le voisinage est utilisé pour prédire au cours d’une étape E312 la valeur courante à partir d’un modèle autorégressif. Dans ce mode, les valeurs passées sont constituées par le contexte, et la différence entre la variable prédite et la valeur réelle est quantifiée puis codée de manière entropique au cours de l’étape E314.
[196] Dans un troisième mode réalisation, comme illustré à l’appui de la figure 12, un réseau de neurones de prédiction ARM’ est utilisé à l’étape E313 pour prédire les caractéristiques statistiques de la variable à décoder. Le vecteur de voisinage est appliqué en entrée du réseau ARM’, pour fournir en sortie une prédiction de la valeur courante. Selon un mode de réalisation, le réseau ARM se comporte comme une fonction f\ telle que décrite à l’appui de la figure 4, définie par un ensemble de paramètres statistiques (moyenne, variance, médiane, etc.) utilisées pour coder la valeur courante de manière entropique. Selon un autre mode de réalisation, le réseau de neurones de prédiction ARM’ est utilisé pour produire la probabilité (pr) attendue de la valeur possible de l’échantillon courant. Le décodage entropique est adapté à cette probabilité (comme il est connu pour le codage entropique de Huffman ou arithmétique). Le réseau ARM’ est identique au réseau ARM si le codage a été effectué sans perte.
[197] Dans un quatrième mode de réalisation, chaque carte de caractéristiques est divisée en blocs de taille prédéterminée, et le décodage de chaque bloc comporte le décodage entropique de valeurs qui subissent ensuite une transformée inverse (par exemple une DCT inverse, Discrete, Cosine Transform, une transformée de Haar inverse, etc.).
[198] Dans un cinquième mode de réalisation, chaque carte de caractéristiques est divisée en blocs de taille prédéterminée, et chaque bloc est décodé par un code produit de type Lattice Vector Quantization afin de produire le bloc décodé.
[199] A l’issue du procédé, la valeur décodée courante Vdn de la carte FMdi en cours de traitement est décodée.
[200] la figure 11 représente de manière illustrée une méthode de codage ou de décodage de cartes de caractéristiques selon l’un des modes de réalisation.
[201] Dans cette illustration, le codage (resp. décodage) de la valeur courante Vn (resp. Vdn) située en coordonnées (xn, yn) dans la carte de caractéristiques courante FMi (c’est-à-dire celle qui est en cours de codage ou de simulation de codage) (resp. FMdi - c’est-à-dire celle qui est en cours de décodage) utilise l’information contextuelle de sa propre carte et de la carte précédente FM2 (resp. FMd2). Les valeurs situées aux coordonnées (xn, yn-l), (xn, yn-2), (xn-l, yn-l), (xn-l, yn) ,(xn-l, yn+l) ,(xn-2, yn) dans la couche FMi (resp. FMdi), et les variables situées aux coordonnées (xn-l, yn-l), (xn-l, yn), (xn-l, yn+l), (xn, yn-l), (xn, yn), (xn, yn+l), (xn+l, yn- 1), (xn+l, yn), (xn+l, yn+l) dans la couche FM2 (resp. FMd2) sont utilisées pour déterminer le voisinage pour coder (resp. décoder) la valeur courante. Ces valeurs, qui sont toutes disponibles au codeur et au décodeur, constituent le vecteur de voisinage Cn (resp. Cdn) de la variable Vn (resp. Vdn) qui peut être utilisé dans l’un des modes de réalisation décrit précédemment à l’appui de la figure 9 (resp. figure 10). [202] La figure 12 représente de manière illustrée une autre méthode de codage ou de décodage de cartes de caractéristiques selon l’un des modes de réalisation
[203] Dans cette illustration, le codage (rep. décodage) de la valeur courante Vn (resp. Vdn) située en coordonnées (xn, yn) dans la carte de caractéristiques courante FMi (resp. FMdi) utilise l’information contextuelle de sa propre carte. Les valeurs représentées en gris sont utilisées pour déterminer le voisinage pour coder (resp. décoder) la valeur courante. Ces valeurs, qui sont toutes disponibles au codeur et au décodeur, constituent le vecteur de voisinage Cn (resp. Cdn) de la valeur Vn (resp. Vdn) qui peut être utilisé dans l’un des modes de réalisation décrit précédemment à l’appui de la figure 9 (resp. figure 10). [204] Dans le mode de réalisation illustré, le vecteur de voisinage est extrait par un module
CTX (resp. CTX’) du module de codage FMC (resp. FMD), puis il est appliqué à l’entrée du réseau de neurones de prédiction ARM (resp. ARM’), utilisé pour prédire les caractéristiques statistiques (p,o) ou la probabilité (pr) de la valeur à coder (resp. décoder) par le codeur entropique CE (resp. DE).

Claims

Revendications
[Revendication 1] Procédé de codage d’un signal (I (Pn)) comprenant une pluralité d’échantillons (Pn) à coder comportant les étapes suivantes :
- une étape de construction, comportant les sous-étapes de :
- construction (E21, E22) d’un premier groupe de cartes de caractéristiques (FMi) représentatives du signal (FMi) ;
- pour au moins un échantillon, dit échantillon courant (Pn), du signal à coder, associé à une position (xn, yn) dans le signal à coder :
- construction (E25) d’un vecteur caractéristique (Zn) à partir desdites cartes de caractéristiques (FMi) dudit premier groupe, en fonction de ladite position (xn, yn) dudit échantillon courant (Pn) ;
- traitement (E27) dudit vecteur caractéristique (Zn) par un réseau de neurones artificiels, dit réseau de neurones de synthèse, (MLP) défini par un ensemble de paramètres (Wk), pour fournir un vecteur (P’n) représentatif d’une valeur décodée de l’échantillon courant ;
- mise à jour (E22, E27) d'au moins une valeur d’une desdites cartes de caractéristiques dudit premier groupe et/ou d’au moins un paramètre dudit réseau, en fonction d’une mesure de performance de codage,
- une étape de codage (E23, E27, EF) dudit premier groupe de cartes de caractéristiques (FMi) comprenant, pour au moins une valeur, dite valeur courante (Vn), d’une desdites cartes de caractéristiques, un codage entropique de ladite valeur en fonction d’une valeur au moins de son voisinage ;
- une étape de codage dudit ensemble de paramètres (Wk) dudit réseau de neurones de synthèse.
[Revendication 2] Procédé de codage selon la revendication 1, caractérisé en ce que l’étape de codage de ladite valeur courante (Vn) d’une desdites cartes de caractéristiques comprend les sous-étapes suivantes :
- construction (E231) d’un vecteur de voisinage (Cn) à partir desdites cartes de caractéristiques (FMi) dudit premier groupe ;
- traitement (E233) dudit vecteur de voisinage (Cn) par un réseau de neurones artificiels, dit réseau de neurones de prédiction (ARM), défini par un ensemble de paramètres (Ob), pour fournir une prédiction de ladite valeur courante (Vn);
- mise à jour (E22, E23, E28) d’au moins un paramètre dudit réseau de prédiction, en fonction de la mesure de performance de codage,
- une étape de codage dudit ensemble de paramètres (Ob) dudit réseau de prédiction.
[Revendication 3] Procédé de codage d’une séquence d’images selon la revendication 1 ou 2, caractérisé en ce qu’il comporte une étape de transformation (E24) dudit premier groupe de carte de caractéristiques (FMi) pour obtenir un second groupe de cartes de caractéristiques (FMSi) à la résolution des images de la séquence d’entrée ; et en ce que ledit vecteur caractéristique (Zn) est construit à partir desdites cartes de caractéristiques transformées (FMSi) du second groupe obtenues à partir desdites cartes de caractéristiques (FMi) dudit premier groupe.
[Revendication 4] Procédé de codage selon la revendication 3, caractérisé en ce qu’une au moins desdites cartes de caractéristiques du premier groupe (FMi) est de résolution inférieure à celle du signal à coder et en ce que l’opération de transformation comporte un suréchantillonnage.
[Revendication 5] Procédé de codage selon la revendication 1, caractérisé en ce que la construction dudit vecteur caractéristique (Zn) comporte les sous-étapes suivantes :
- extraction d’une pluralité de valeurs desdites cartes de caractéristiques dudit premier groupe (FMi) en fonction de ladite position (xn, yn) dudit échantillon courant (Pn) ;
- traitement desdites valeurs extraites pour obtenir le vecteur caractéristique.
[Revendication 6] Procédé de codage selon l’une des revendications précédentes, caractérisé en ce qu’il comporte une étape de construction (E21, E22) d’un groupe supplémentaire de cartes de caractéristiques (FMEi), et en ce que le vecteur caractéristique est en outre construit à partir desdites cartes de caractéristiques du groupe supplémentaire.
[Revendication 7] Procédé de décodage d’un signal comprenant une pluralité d’échantillons (Pdn) à décoder comportant les étapes suivantes :
- décodage (E31) d’un premier groupe de cartes de caractéristiques (FMdi) représentatives du signal comprenant, pour au moins une valeur, dite valeur courante (Vn), d’une desdites cartes de caractéristiques, un décodage entropique de ladite valeur en fonction d’une valeur au moins de son voisinage ;
- décodage (E35) d’un ensemble de paramètres (Wdk) représentatifs d’un réseau de neurones (MLP’), dit réseau de neurones de synthèse ; - pour au moins un échantillon, dit échantillon courant (Pdn), du signal à décoder, associé à une position (xn, yn) dans le signal à décoder :
- construction (E34) d’un vecteur caractéristique (Zdn) à partir des cartes de caractéristiques dudit premier groupe (FMdi), en fonction de ladite position (xn, yn) dudit échantillon courant , et :
- traitement (E37) dudit vecteur (Zdn) par le réseau de neurones de synthèse (MLP’) défini par les paramètres décodés (Wdk) pour fournir un vecteur représentatif d’une valeur décodée de l’échantillon courant (Pdn).
[Revendication 8] Procédé de décodage selon la revendication 7, caractérisé en ce que l’étape de décodage de ladite valeur courante (Vn), d’une desdites cartes de caractéristiques comprend les sous-étapes suivantes ;
- décodage (E36) d’un ensemble de paramètres (Odk) représentatifs d’un réseau de neurones, dit réseau de neurones de prédiction (ARM’) ;
- construction (E311) d’un vecteur de voisinage (Cn) à partir desdites cartes de caractéristiques (FM0 dudit premier groupe ;
- traitement (E313) dudit vecteur de voisinage (Cn) par le réseau de neurones de prédiction (ARM’), pour fournir une prédiction de ladite valeur courante (Vn).
[Revendication 9] Procédé de décodage selon la revendication 7 ou 8, caractérisé en ce qu’il comporte une étape de transformation (E33) dudit premier groupe de cartes de caractéristiques décodées (FMdi) pour obtenir un second groupe de cartes de caractéristiques (FMS’i) à la résolution du signal d’entrée ; et en ce que ledit vecteur caractéristique (Zdn) est construit à partir desdites cartes de caractéristiques transformées (FMS’i) du second groupe obtenues à partir desdites cartes de caractéristiques décodées (FMdi) dudit premier groupe.
[Revendication 10] Procédé de décodage selon la revendication 9, caractérisé en ce qu’une au moins desdites cartes de caractéristiques du premier groupe (FMdi) est de résolution inférieure à celle du signal à décoder et en ce que l’opération de transformation comporte un suréchantillonnage.
[Revendication 11] Procédé de décodage selon l’une des revendications 7 à 10, caractérisé en ce que la construction dudit vecteur (Zdn) caractéristique comporte une sous- étape d’extraction (E34) d’une valeur de ladite au moins une carte de caractéristiques (FMdi, FME’i) à une position identique (xn, yn) à celle de l’échantillon courant (Pdn) dans le signal à décoder.
[Revendication 12] Procédé de décodage selon la revendication 7, caractérisé en ce que la construction dudit vecteur caractéristique (Zdn) comporte les sous-étapes suivantes :
- extraction d’une pluralité de valeurs desdites cartes de caractéristiques dudit premier groupe (FMdi) en fonction de ladite position (xn, yn) dudit échantillon courant (Pn) ;
- traitement (E35, TT’) desdites valeurs extraites pour obtenir le vecteur caractéristique.
[Revendication 13] Procédé de décodage selon l’une des revendications 7 à 12, caractérisé en ce qu’il comporte une étape de construction (E32) d’un groupe supplémentaire de cartes de caractéristiques (FME’i) et en ce que le vecteur caractéristique est en outre construit à partir desdites cartes de caractéristiques du groupe supplémentaire.
[Revendication 14] Dispositif de codage d’un signal (I (Pn)) comprenant une pluralité d’échantillons (Pn) à coder caractérisé en ce que ledit dispositif est configuré pour mettre en œuvre :
- construction (GEN, MAJ) d’un premier groupe de cartes de caractéristiques (FMi) représentatives du signal (FMi) ;
- pour au moins un échantillon, dit échantillon courant (Pn), du signal à coder, associé à une position (xn, yn) dans le signal à coder :
- construction (XTR) d’un vecteur caractéristique (Zn) à partir desdites cartes de caractéristiques (FMi) dudit premier groupe, en fonction de ladite position (xn, yn) dudit échantillon courant (Pn ;
- traitement (MLP) dudit vecteur caractéristique (Zn) par un réseau de neurones artificiels, dit réseau de neurones de synthèse, (MLP) défini par un ensemble de paramètres (Wk), pour fournir un vecteur (Sn) représentatif d’une valeur décodée (P’n) de l’échantillon courant ;
- mise à jour (MAJ, NNC) d'au moins une valeur d’une desdites cartes de caractéristiques dudit premier groupe et/ou d’au moins un paramètre dudit réseau de synthèse, en fonction d’une mesure de performance de codage,
- une étape de codage (FMC) dudit premier groupe de cartes de caractéristiques (FMi) comprenant, pour au moins une valeur, dite valeur courante (Vn), d’une desdites cartes de caractéristiques, un codage entropique de ladite valeur en fonction d’une valeur au moins de son voisinage ; - une étape de codage (NNC) dudit ensemble de paramètres (Wk) dudit réseau de neurones de synthèse.
[Revendication 15] Dispositif de décodage d’un signal comprenant une pluralité d’échantillons (Pdn) à décoder caractérisé en ce que ledit dispositif est configuré pour mettre en œuvre :
- décodage (FMD) d’un premier groupe de cartes de caractéristiques (FMdi) représentatives du signal comprenant, pour au moins une valeur, dite valeur courante (Vn), d’une desdites cartes de caractéristiques, un décodage entropique de ladite valeur en fonction d’une valeur au moins de son voisinage ;
- décodage (NND) d’un ensemble de paramètres (Wdk) représentatifs d’un réseau de neurones (MLP’), dit réseau de neurones de synthèse ;
- pour au moins un échantillon, dit échantillon courant (Pdn), du signal à décoder, associé à une position (xn, yn) dans le signal à décoder :
- construction (XTR’) d’un vecteur caractéristique (Zdn) à partir des cartes de caractéristiques dudit premier groupe (FMdi), en fonction de ladite position (xn, yn) dudit échantillon courant ;
- traitement (MLP’) dudit vecteur caractéristique (Zdn) par le réseau de neurones de synthèse (MLP’) défini par les paramètres décodés (Wdk) pour fournir un vecteur représentatif d’une valeur décodée de l’échantillon courant (Pdn).
[Revendication 16] Programme d’ordinateur comportant des instructions pour l’exécution des étapes d'un procédé de codage ou de décodage selon la revendication 1 ou 7 lorsque ledit programme est exécuté par un ordinateur.
PCT/EP2023/084248 2022-12-09 2023-12-05 Procédé et dispositif de codage et décodage d'images WO2024121109A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2213095A FR3143245A1 (fr) 2022-12-09 2022-12-09 Procédé et dispositif de codage et décodage d’images.
FRFR2213095 2022-12-09

Publications (1)

Publication Number Publication Date
WO2024121109A1 true WO2024121109A1 (fr) 2024-06-13

Family

ID=86331875

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/084248 WO2024121109A1 (fr) 2022-12-09 2023-12-05 Procédé et dispositif de codage et décodage d'images

Country Status (2)

Country Link
FR (1) FR3143245A1 (fr)
WO (1) WO2024121109A1 (fr)

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
D'EMILIEN DUPONT ET AL.: "COmpression with Implicit Neural représentations", ARXIV:2103.03123
SUBIN KIM ET AL: "Scalable Neural Video Representations with Learnable Positional Features", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 13 October 2022 (2022-10-13), XP091342999 *
TH\'EO LADUNE ET AL: "COOL-CHIC: Coordinate-based Low Complexity Hierarchical Image Codec", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 11 December 2022 (2022-12-11), XP091392072 *
WENTAO SHANGGUAN ET AL: "Learning Cross-Video Neural Representations for High-Quality Frame Interpolation", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 28 February 2022 (2022-02-28), XP091166479 *
YUAN ZHONGZHENG ET AL: "Block-based Learned Image Coding with Convolutional Autoencoder and Intra-Prediction Aided Entropy Coding", 2021 PICTURE CODING SYMPOSIUM (PCS), 1 June 2021 (2021-06-01), pages 1 - 5, XP055837685, ISBN: 978-1-6654-2545-2, DOI: 10.1109/PCS50896.2021.9477503 *
YUAN ZHONGZHENG: "Block-based Image Coding with Autoencoder and Border Information", 20 May 2020 (2020-05-20), pages 1 - 34, XP055938495, Retrieved from the Internet <URL:https://s18798.pcdn.co/videolab/wp-content/uploads/sites/10258/2020/10/Zhongzheng_Yuan_Thesis_Final_Submitted.pdf> [retrieved on 20220705] *

Also Published As

Publication number Publication date
FR3143245A1 (fr) 2024-06-14

Similar Documents

Publication Publication Date Title
EP3061246A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP2932714B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR2755818A1 (fr) Codage de signal numerique par decomposition en sous-bandes de frequence et quantification vectorielle a etats finis
EP3075155B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3198876B1 (fr) Génération et codage d&#39;images intégrales résiduelles
FR2958489A1 (fr) Procede de codage et procede de reconstruction d&#39;un bloc d&#39;une sequence d&#39;images
FR2825224A1 (fr) Procede et dispositif de compression et ou d&#39;indexation d&#39;images numeriques
EP3632103B1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
WO2024121109A1 (fr) Procédé et dispositif de codage et décodage d&#39;images
WO2019015884A1 (fr) Procede de decodage d&#39;une image, procede de codage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
WO2024121108A1 (fr) Procédé et dispositif de codage et décodage d&#39;images.
WO2024121107A1 (fr) Procédé et dispositif de codage et décodage d&#39;images.
WO2024121110A1 (fr) Procédé et dispositif de codage et décodage de séquences d&#39;images
FR2935864A1 (fr) Procede de codage par blocs d&#39;une image matricielle de pixels, programme d&#39;ordinateur et dispositif de capture d&#39;images correspondants
EP3520416B1 (fr) Procédé de codage d&#39;une image, procédé de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associés
EP1812903A1 (fr) Procede de codage d&#39;images codees par ondelettes a controle de debit, dispositif de codage et programme d&#39;ordinateur correspondants
EP3409016A1 (fr) Procédé de codage et décodage de données, dispositif de codage et décodage de données et programmes d&#39;ordinateur correspondants
FR2907989A1 (fr) Procede et dispositif d&#39;optimisation de la compression d&#39;un flux video
EP3259909B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP3491825A1 (fr) Procédé de décodage d&#39;une image, procédé de codage, dispositifs, équipement terminal et programmes d&#39;ordinateurs associés
EP4295575A1 (fr) Determination d&#39;un mode de codage d&#39;image
WO2016097556A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, terminal d&#39;utilisateur et programmes d&#39;ordinateurs associes
FR3033114A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants
FR2776411A1 (fr) Procede et dispositif de codage et decodage de donnees, notamment de sequences d&#39;images numeriques
FR2905539A1 (fr) Procede et dispositif de codage de signaux numeriques multidimensionnels