WO2026003293A1 - Procédé et dispositif de codage et décodage d'un signal - Google Patents

Procédé et dispositif de codage et décodage d'un signal

Info

Publication number
WO2026003293A1
WO2026003293A1 PCT/EP2025/068302 EP2025068302W WO2026003293A1 WO 2026003293 A1 WO2026003293 A1 WO 2026003293A1 EP 2025068302 W EP2025068302 W EP 2025068302W WO 2026003293 A1 WO2026003293 A1 WO 2026003293A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoding
point
zone
neighborhood
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/EP2025/068302
Other languages
English (en)
Inventor
Félix Henry
Pierrick Philippe
Theo LADUNE
Gordon Clare
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
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 SA filed Critical Orange SA
Publication of WO2026003293A1 publication Critical patent/WO2026003293A1/fr
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00—Image coding
    • G06T9/002—Image coding using neural networks
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
    • H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction

Definitions

  • TITLE Method and device for encoding and decoding a signal
  • the invention relates to the general field of coding one-dimensional or multidimensional signals. It relates more particularly to the compression of digital images or videos.
  • Digital videos are generally encoded using source code to compress them and reduce the resources required for transmission and/or storage.
  • image encoding is typically performed by predicting pixels using previously encoded and decoded pixels present in the image being encoded—in which case it is called “intra-prediction”—or previously encoded images—in which case it is called “inter-prediction.”
  • Some neural network approaches use an input signal, such as an image, to train a synthetic neural network on characteristic vectors associated with a specific position in a sample of the input signal to be encoded. These characteristic vectors are constructed from feature maps, which can be at the same resolution as the input signal or at a lower resolution.
  • the neural network parameters and the feature map values are updated based on a performance metric, such as bitrate-distortion.
  • a performance metric such as bitrate-distortion
  • the invention relates to a method for encoding a signal comprising at least two zones, comprising the following steps for a zone comprising a plurality of samples to be encoded:
  • the current sample for at least one sample, called the current sample, of said area, associated with a point in said at least one feature map, the coding of a data associated with said point, called the current value, comprising:
  • encoding refers to the operation of representing one or more values or a set of samples in a compact form, for example, using a digital binary stream.
  • Decoding refers to the operation of processing a digital binary stream to recover one or more decoded values or samples.
  • sample of the signal refers to a value taken from the signal. Sampling the signal produces a sequence of discrete values called samples.
  • the sample is called a pixel, which can be, for example, a color pixel traditionally represented by a triplet of values, such as (R, G, B) or (Y, U, V).
  • the position of the sample is identified by its x-coordinate (abscissa) and y-coordinate (ordinate) in the image.
  • a “signal comprising a plurality of samples” refers to a signal with one (audio, sound), two (image), or more than two (stereoscopic, multiscopic, depth-mapped, video, etc.) dimensions. Depending on its dimensionality, the sample has one, two, or more coordinates within the signal. In the case of an image signal, the sample's position is identified by its x-coordinate (abscissa) and y-coordinate (ordinate).
  • signal zone we mean a set of signal samples.
  • a zone might correspond to a succession of units representing silences, noises, phonemes, words, etc.
  • a zone might correspond to a set of pixels, grouped according to criteria such as intensity, spatial distribution, etc. For example, a segmentation operation can identify two different zones within the image signal, one corresponding to the background and the other to the foreground.
  • feature maps or equivalently by “latent value 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.
  • characteristic data vector constructed from feature maps based on a position we mean a vector consisting of one or more elements, or data, preferably discrete, the data being constructed from feature maps at a position determined by that of the sample being processed in the signal.
  • This characteristic vector is the one applied to the input of the synthesis neural network.
  • a vector can be constructed from a plurality of values taken from each of the feature maps at the same coordinate as the sample to be encoded or in a neighborhood thereof.
  • such a vector can be constructed from a plurality of values taken from each of the feature maps at the same x and y coordinates as the sample to be encoded (or decoded) or in a neighborhood thereof. Once these values are taken from the feature maps, they can be processed to construct the feature vector before being fed into the synthesis neural network, for example by quantization, filtering, interpolation, etc.
  • neural network By “synthetic neural network”, we mean a neural network such as a convolutional neural network, a multilayer perceptron, an LSTM (for "Long Short Term Memory”), etc.
  • neural network parameter we mean one of the values that characterizes the neural network, for example a weight associated with one of the neurons (filter coefficient, weighting, bias, value affecting the functioning of non-linearity, etc.)
  • a “performance measure” is defined as a measurement between at least one value of a sample to be encoded and a decoded value of that sample.
  • the measure might assess, for example, distortion or perceptual error. It can be performed on one or more samples (e.g., a running sample, the current image, etc.).
  • the measure may also include a measurement of throughput, particularly associated with the encoding of the synthetic neural network and/or the encoding of the feature maps in the first group.
  • the measure may be a combined measurement of throughput and distortion through their weighting. As is well known in the state of the art, the value of this measure is generally minimized until a target value is reached.
  • the steps of a coding or decoding process are not considered to be linked to a notion of temporal succession.
  • the steps can be carried out in a different order than that indicated in the independent claim of encoding or decoding, or even in parallel.
  • the coding method according to the invention encodes a region of a signal from a representation of that signal in the form of feature maps. These feature maps are segmented into characteristic regions corresponding to areas of the signal, the values of which are subsequently entropically encoded independently of one another. Thus, it is possible to obtain a coded representation of a region of the original signal that can subsequently be decoded independently of any other part of that signal.
  • the decoding process (and symmetrically the encoding process) may further include one or more of the following optional features, taken individually or in any technically possible combination.
  • the coding also includes a coding (resp. decoding) step of a set of parameters representative of said synthetic neural network.
  • the encoding includes an encoding (resp. decoding) step of segmentation information to determine, in said at least one feature map, a feature area corresponding to said area.
  • Segmentation information refers to any information that identifies the different areas that require specific synthesis during decoding (or encoding). For example, in the case of an image signal, segmentation information indicates a division of the image into a plurality of regular areas of identical size and shape: the image can be divided into rectangular areas with horizontal and vertical boundaries, or into areas corresponding to samples (or blocks) processed in a lexicographical order. In this case, the segmentation information can indicate the beginning and/or end of the set. As another example, a region can be of arbitrary size and shape. In this case, the segmentation information can indicate the shape and size of the region, in the form of a segmentation mask.
  • the neighborhood of said point is independent of said evaluation of the proximity criterion.
  • the neighborhood of said point is selected based on said evaluation of the proximity criterion.
  • a component of the neighborhood vector is associated with a point of said neighborhood, the value of said component being equal to the value of said associated point if said associated point is a point of said characteristic zone, and to a replacement value otherwise.
  • the replacement value is dependent on the points of said characteristic zone or the points associated with said neighborhood belonging to said characteristic zone.
  • the replacement value does not depend on the points of said characteristic area.
  • the neighborhood of said point is selected based on said point.
  • the construction of the neighborhood vector includes: the identification of the points of said neighborhood belonging to said characteristic zone, called identified points, the initialization of the number of components of said neighborhood vector to the number of identified points, and the assignment of the value of each identified point to a different component of said neighborhood vector.
  • the criterion of proximity of said point in relation to a boundary of an area is a distance.
  • the neighborhood vector is used to determine a context for the entropic decoding of said current value.
  • the entropic decoding of said current value includes a step of predicting said current value as a function of said neighborhood vector.
  • the decoding of said current value of one of said latent value maps includes: the decoding of a set of parameters representative of a neural network, called a prediction neural network, and the processing of said neighborhood vector by the prediction neural network, to provide a prediction of said current value.
  • the invention also relates to a signal coding device comprising at least two zones, said coding device comprising a processor coupled to a memory in which are recorded instructions configured to implement for an area of said signal comprising a plurality of samples to be coded: the construction of at least one feature map representative of said area, for at least one sample, called current sample, of said area, associated with a point in said at least one feature map, the coding of a data associated with said point, called current value, comprising: o the evaluation of a proximity criterion of said point with respect to a boundary of said area, o the construction of a neighborhood vector of said point as a function of said proximity criterion, and o an entropic coding of said current value as a function of said neighborhood vector, the updating of at least one value of said feature map, as a function of a coding performance measure, the coding of said feature map representative of said area.
  • the invention also relates to a device for decoding a data stream representative of a signal segmented into zones, the device comprising a processor coupled to a memory in which are stored instructions configured to implement the following steps, for a zone: the decoding of at least one feature map representative of said zone, the decoding comprising, for at least one point of said map: o the evaluation of a proximity criterion of said point with respect to a boundary of said zone, o the construction of a neighborhood vector of said point as a function of said proximity criterion, and o an entropic decoding of a data associated with the point, called current value, from the neighborhood vector, the application of a neural network to said at least one decoded feature map.
  • the characteristics and advantages of the coding or decoding process apply in the same way to the coding or decoding device according to the invention and vice versa.
  • the invention also relates to a computer program on a recording medium, this program being capable of being implemented in a computer or an encoding or decoding device according to the invention.
  • This program includes instructions adapted to the implementation of the corresponding method.
  • This program may use any programming language and be in the form of source code, object code, or code intermediate between source and object code, such as in a partially compiled form, or in any other desirable form.
  • the invention also relates to a computer-readable information or recording medium containing the aforementioned computer program instructions.
  • the information or recording medium can be any entity or device capable of storing programs.
  • the medium may include a storage means, such as a ROM (e.g., a CD-ROM or a microelectronic circuit ROM), or a magnetic recording means, such as a floppy disk or hard drive, a DNA sequence, or flash memory.
  • the information or recording medium may be a transmissible medium, such as an electrical or optical signal, which can be transmitted via an electrical or optical cable, by radio link, by wireless optical link, or by other means.
  • the program according to the invention can in particular be downloaded onto an Internet-type network.
  • each information or recording medium can 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 process according to the invention.
  • Figure 1 schematically represents an coding device according to a first embodiment of the invention
  • Figure 2 schematically represents a decoding device according to the first embodiment 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 an artificial predictive neural network used in the context of the invention
  • Figure 5 is a flowchart representing an example of an coding method that can be implemented by the coding device of Figure 1
  • Figure 6 illustrates a coding method used in an embodiment of the invention
  • Figure 7 is a flowchart representing an example of a decoding method that can be implemented by the decoding device of Figure 2
  • Figure 8 illustrates a decoding method used in an embodiment of the invention
  • Figure 9 is a flowchart representing a method for coding feature maps that 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 flowchart representing a
  • Figures 11 and 12 illustrate the formation of a neighborhood vector used in a feature map encoding or decoding method.
  • Figure 13 illustrates a first variant of neighborhood vector formation.
  • Figure 14 illustrates a second variant of neighborhood vector formation.
  • Figure 15 illustrates a third variant of neighborhood vector formation.
  • Figure 16 illustrates a fourth variant of neighborhood vector formation.
  • Figure 1 schematically represents, according to a first embodiment, an ENC coding device for at least one region of a signal (I(P n )).
  • the signal I(P n ) is segmented into a set of J regions, and all regions are coded independently. Alternatively, only one region or just a few regions can be coded independently.
  • This ENC coding device includes a SEG segmentation module, an SEGC encoding module for the segmentation provided by the SEG segmentation module, and a module GEN for generating feature maps, an SE transformation module, an XTR data extraction module, a TT processing and quantification module, an NNSYN 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 feature map coding module, an EVAL coding performance evaluation module, and an MAJ 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 realized by the cooperation of the processor and computer program instructions stored in the aforementioned memory and designed to perform the functionalities of the module concerned, in particular as described below, when these instructions are executed by the processor.
  • the ENC coding device in Figure 1 receives as input a signal consisting of a succession of samples to be encoded, denoted P ⁇ sub> n ⁇ /sub> , for example, a temporal sequence of sound samples, or a set of image data denoted I(P ⁇ sub>n ⁇ /sub> ).
  • the image signal I(P ⁇ sub>n ⁇ /sub> ) can represent a two-dimensional image, or a plurality of two-dimensional images (video, color components, stereoscopic components, multiscopic components, etc.).
  • P ⁇ sub>n ⁇ /sub> 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 pixel matrix, each pixel having a red (R), green (G), blue (B) component, or, alternatively, a luminance (Y) component and at least one chrominance (U, V) component.
  • each pixel is defined by its x and y coordinates in the image.
  • the image is in greyscale represented by means of a two-dimensional representation, such as a pixel matrix, each pixel having a greyscale component, or luminance.
  • the SEG module performs a segmentation Sg of the sequence of samples to be encoded Pn into J (greater than or equal to 2) zones Zo 1.
  • This segmentation operation allows the samples to be grouped into different homogeneous sets based on one or more predefined criteria. For example, in the case of a temporal sequence of sound samples, the segmentation operation yields sequences of units corresponding to silences, noises, phonemes, words, etc. Similarly, in the case of an image signal I(Pn), the segmentation operation allows the pixels Pn of the image signal to be grouped into J. Homogeneous zones are defined according to criteria, notably intensity or spatial ones.
  • segmentation Sg is represented as a set of J masks MZo 1, each allowing the identification of a zone Zo ⁇ , each mask being associated with a value different from that associated with the other masks.
  • the SEGC module performs lossless encoding of the segmentation information Sg.
  • This encoding can be achieved by encoding the segmentation map corresponding to the J MZo J masks (for example, using the JPEG-LS algorithm defined by the international standard ISO/IEC 14495-1), or alternatively, by independently encoding each MZo' mask, or in yet another alternative, by independently encoding the contours of the J MZo J masks, or in yet another alternative, by encoding a size or position data for an area, for example, a rectangle.
  • the encoded segmentation is denoted Sgc.
  • the NNC module performs a simulation of coding, followed by decoding, of the parameters of the NNSYN neural network for the evaluation module.
  • the GEN feature map generation module is configured to generate a plurality of M feature maps, denoted LM!.
  • the optional SE module can perform quantization of the data extracted from this set of M FM! cards.
  • quantizing a value refers to mapping that value to a member of a discrete set of possible code symbols.
  • the set of possible code symbols might consist of integers, and the quantization system would simply round a real value to an integer.
  • quantization could involve multiplying by a given value and then rounding.
  • the SE module then performs a transformation of the values in at least one of the feature cards, such as oversampling, interpolation, filtering, etc. After the transformation, a transformed feature card from the second group has the same resolution as the images in the input sequence.
  • the encoded feature cards can have a lower resolution than the images being encoded, while the cards in the second group, which used for constructing characteristic vectors, are at the same resolution as the image sequence, which facilitates the extraction of values.
  • the SE module is absent; in this case, the values that will be used to construct the characteristic vector are extracted from the first group of characteristic maps.
  • the XTR module performs value extraction from the FMSi (or FM!, depending on one of the previously described embodiments) feature maps for a current sample Pn to be encoded, based on its coordinates in the input signal. For example, if we want to encode sample Pn at the coordinates ( xn , yn ) of an input image, the XTR module performs value extraction from the maps at positions dictated by the coordinates ( xn , yn ).
  • the extracted values constitute the vector Z ⁇ sub>n ⁇ /sub> .
  • Z ⁇ sub>n ⁇ /sub> is an L-tuple, meaning it contains L elements, or data Zi.
  • L>M meaning that several values are extracted for at least one feature map FM ⁇ sub>i ⁇ /sub>.
  • the dimension L of the vector depends on the topology of the NNSYN synthesis neural network and, more specifically, on the topology of the input layer of this NNSYN synthesis neural network.
  • the vector Z n of 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 ⁇ sub>n ⁇ /sub> .
  • the TT module can quantify the data extracted from the set of feature maps. This processing may include other operations, such as filtering, scaling, etc.
  • the TT module can take into account the coordinates of the values in the lower-resolution maps.
  • At least one of the SE or TT modules must perform a quantification of the feature maps.
  • the NNSYN module is a synthetic neural network defined by K parameters Wk, capable of processing the input vector Zn , or L-tuple, to generate as output a second vector representing the sample Pn to be encoded.
  • the synthetic neural network is formed by an MLP, or Multi-Layer Perceptron, consisting of an input layer adapted to the input format (the L-tuple), optionally one or more hidden layers, and an output layer adapted to the output format of the output vector, generally a vector containing A elements.
  • A is equal to 3 and the output vector is the triplet (R, G, B) of the pixel P'n encoded and then decoded.
  • the NNC module performs the coding of the synthesis neural network, specifically its parameters Wk.
  • the NNC module also performs the coding of the prediction neural network, ARM, specifically its parameters Ob.
  • the NNC module performs a coding simulation, followed by decoding, for the evaluation module. Subsequently, it performs the actual coding of the synthesis neural network parameters 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 it can approximate it.
  • the FMC module performs the encoding of the FM maps, that is, the values of the characteristic maps in the first group (excluding the maps in the second group, which may optionally result from oversampling by the SE module).
  • the FMC module performs a coding simulation, followed by decoding, for the evaluation module. Subsequently, it performs the actual encoding of the FM map values.
  • the FMC module determines, by taking into account the Sg segmentation performed by the SEG module, an SgL segmentation of each of the FM! feature maps into J ZoL zones.
  • the FMC module uses the Sg segmentation defined in the domain of the signal to be encoded to obtain a segmentation in the latent domain of the FM! feature maps. Obtaining this segmentation in the latent domain depends on the transformation transform used to go from the domain of the signal to be encoded to the latent domain. Therefore, the SgL segmentation in the latent domain results from a calculation that simultaneously considers the location of the Sg segmentation zones in the signal to be encoded and the transformation transform.
  • the segmentation in the latent domain is identical to the segmentation in the domain of the signal to be encoded.
  • the boundary between two regions of the segmentation in the domain of this latent latent lies between the points in the latent domain whose colocalized samples, i.e., corresponding samples in the signal to be encoded, belong to two different regions of the Sg segmentation.
  • Each of the The FM-'' maps are represented as a set of J ZoLj zones, each ZoLj zone corresponding in the FM! map to region j of the SgL segmentation. The values of the FM!
  • each of the J ZoLj zones is encoded successively, for example, in the order of their indexing .
  • the encoding of a ZoL zone involves the successive encoding, for each FMi map, of the point values of the ZoLj zone in the FMi map.
  • each ZoL zone is encoded independently of the other zones.
  • the encoded data of each encoded zone Zol,', in each of the FMi feature maps are denoted FMcJ.
  • Each Zol,' zone undergoes entropy encoding.
  • the encoding of the M FMi maps corresponds to the independent encoding of the J zones of the M FMi maps.
  • the coding simulation can be identical to the actual coding, or it can approximate it.
  • the coding module quantizes, if necessary, the latent representation of the values in the first group of maps using a quantizer to generate an ordered collection of quantized values.
  • the coding module then compresses the quantized data, using a coding method that takes into account the neighborhood of a value to be coded in the feature map.
  • the FMC module can include a predictive neural network (PNN).
  • the EVAL module performs an evaluation and minimization of coding performance.
  • the evaluation function is, for example, of the rate-distortion type. Minimization can be performed by gradient descent, or any other method within the grasp of a person skilled in the art.
  • the MAJ module performs an update of the values of the FMi cards and/or the parameters of the neural network(s) to be encoded, according to the results of the performance function.
  • This DEC decoding device includes an NND module for decoding neural network(s) capable of decoding the NNSYN' synthesis neural network and optionally the ARM' prediction neural network, a SEGD module for decoding segmentation, an FMD module for decoding feature maps, an XTR' module for data extraction, an SE' module for inverse transformation, and a TT' module for inverse processing and quantization.
  • the DEC decoding device produces at output a decoded image including at least the decoded area, denoted Zod J (Pd n ), comprising a plurality of decoded samples Pd n .
  • the parameters of the NNSYN’ synthesis neural network decoded by the NND module are denoted Wdk.
  • the parameters of the ARM’ prediction neural network decoded by the NND module are denoted Odb.
  • the SEGD module optionally decodes segmentation information, for example the MZo ⁇ mask from Sgc encoded data.
  • the segmentation map corresponding to the J MZo 1 masks is decoded and the MZo J mask is extracted from the segmentation map.
  • the MZo J mask is decoded directly when it has been previously encoded in Sgc-encoded data independently of other masks.
  • the decoder If the segmentation information is not decoded, it can be inferred by the decoder (for example, because it is static, or because the decoder knows the size of the rectangular areas corresponding to the tiles or the number of blocks in the slices, etc.)
  • the FMD module constructs M decoded FMdJ maps using the MZo 1 mask and the FMcJ encoded data. From the MZo 1 mask in the signal domain to be decoded, the FMD module determines the corresponding ZoL J zone in the latent domain, then the FMD module decodes the FMcJ data to obtain the point values of this ZoL J zone in each of the FMdJ maps.
  • the SE' module transforms the first set of decoded FMdJ characteristic charts to generate a second set of characteristic charts with the same resolution as the signal to be decoded, denoted FMS'J.
  • the SE' module optionally performs inverse quantization corresponding to the quantization performed by the encoder. Inverse quantization is not necessary if the encoder's quantizer Q has simply rounded the real values submitted to it. This is also unnecessary if the neural network is capable of handling quantization of its input data. Otherwise, the decoder performs the inverse operation of the quantizer Q. Then, the SE' module performs a transformation of the feature map values, including, for example, oversampling, interpolation, filtering, etc., similar to that performed by the encoder. After the transformation, a transformed feature map from the second group has the same resolution as the images in the sequence to be decoded.
  • the extracted values constitute the vector Zd n .
  • Zd n is an L-tuple, that is, it contains L elements, or zd data,
  • the NNSYN' module is a so-called synthetic neural network, defined by K parameters Wdk, capable of processing the input vector Zd n , or L-tuple, to generate as output a second vector representing the sample Pd n to be decoded, generally a vector containing A elements.
  • K 3 and the output vector is the triplet (R, G, B) of the decoded pixel Pdn.
  • the NNSYN' module has the same structure as the NNSYN module, and its parameters are either identical if the encoding of its parameters Wk is lossy, or different if the encoding is lossy.
  • the DEC decoding device can successively be implemented to decode all Zod J areas in order to reconstruct all the samples to be decoded of the signal, i.e. of the image I(Pd n ).
  • the DEC decoding device can be implemented using an electronic device comprising a processor and memory, not shown. Each of the modules mentioned above can then be implemented through the cooperation of the processor and computer program instructions stored in the aforementioned memory and designed to perform the functionalities of the module in question, particularly as described below, when these instructions are executed by the processor.
  • the DEC device can also include multiple processors, with each processor dedicated to the parallel decoding of image areas.
  • Figure 3 illustrates an example of a synthetic artificial neural network used for encoding and decoding in one embodiment of the invention.
  • the synthetic artificial neural network used for encoding, NNSYN, and the synthetic artificial neural network used for decoding, NNSYN’ are defined by an identical structure, including 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 Zn or Zdn derived from the FMi/FMSi feature maps in the encoder or FMdJ/FMS'J in the decoder) is applied as input (i.e., to an input layer) to the NNSYN or NNSYN' synthetic artificial neural network.
  • the synthetic artificial neural network outputs a vector, according to one embodiment, representing the color components (R, G, B) constituting a color pixel of an image or an area of an image.
  • the NNSYN synthetic artificial neural network is trained on the entire image, minimizing the differences between the input representation of the current image I(P n ) and its output representation I(P' n ), while also minimizing the amount of data to be encoded.
  • the EVAL module performs a performance measurement in this regard.
  • the network parameters are encoded, either losslessly, in which case the NNSYN’ neural network is identical to NNSYN, or lossily, in which case the NNSYN’ network may be slightly different from NNSYN.
  • Figure 4 illustrates an example of an artificial predictive neural network used for encoding (ARM) and decoding (ARM') for feature maps, within the framework of embodiments of the invention.
  • the artificial neural network for prediction used in encoding, ARM, and the artificial neural network for prediction used in decoding, ARM' are defined by an identical structure, including 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 FM! feature maps at the encoder or FMdJ at the decoder) is given as input (i.e. on an input layer) of the artificial neural network for prediction ARM (at encoding) or ARM' (at decoding).
  • the artificial predictive neural network behaves like a function that outputs a prediction of the current value of the feature map being processed, which can be in the form of a predicted value or probability data.
  • the network implements a function f ⁇ sub>v ⁇ /sub> that provides an expected mean and/or variance (p,o) for the current value V ⁇ sub>n ⁇ /sub> of the FM ⁇ sub>J ⁇ /sub> card to be encoded.
  • p,o expected mean and/or variance
  • the network implements a function f ⁇ sub> v ⁇ /sub> that provides an expected mean and/or variance for the current value V ⁇ sub>d ⁇ /sub> of the FM ⁇ sub> J ⁇ /sub> card to be decoded. These statistical values are used to perform entropic decoding of the function's value.
  • the current value is decoded by the entropic decoder, and this mean is added to the current value.
  • the function produces a mean and a variance
  • the current value is decoded by the decoder using an entropic decoding method tailored to the variance, for example, by quantifying the variance into a predetermined set of variances and associating a type of entropic decoding with each quantized variance value.
  • the neural network can produce the expected probability (pr) of each possible value in the current sample.
  • the encoding or decoding entropic will be adapted to this probability (as is known for Huffman entropic coding or arithmetic).
  • the ARM predictive artificial neural network is trained on the entire image to minimize the size (in bytes or bits) of the encoded data.
  • the EVAL module performs a performance measurement in this regard. Recall that the overall performance measurement focuses on minimizing the distortion between encoded and then decoded images I( P'n ) and the input images I( Pn ), while simultaneously minimizing the encoding rate.
  • the feature maps are losslessly encoded using entropy coding.
  • the encoding of the feature maps affects the data rate but not the distortion of the encoded images.
  • the encoding affects both the data rate and the distortion.
  • the B parameters Ocb of the network are encoded, either losslessly, in which case the neural network ARM’ is identical to ARM, or lossily, in which case the network ARM’ may be slightly different from ARM.
  • Figure 5 is a flowchart representing an example of a coding process that can be implemented by the coding device of Figure 1 when the NNSYN synthesis neural network is the one shown in Figure 3.
  • the signal is a two-dimensional image
  • each sample to be coded is therefore a pixel P n with coordinates (x n , y n ).
  • the encoding process takes place in three main phases:
  • a first phase called the segmentation phase
  • the segmentation phase the segmentation Sg of the input signal I(P n ) into J (greater than or equal to 2) zones Zo J is carried out.
  • the image is divided into J regular zones, for example, of identical size and shape (except possibly at the edges of the image).
  • the image can be divided into rectangular zones with horizontal and vertical boundaries.
  • Such a division corresponds to the concept of "tiles" implemented by encoding standards such as H.264/AVC, H.265/HEVC, and H.266/VVC.
  • the segmentation information allows these rectangular zones to be identified, for example, by specifying their vertical and horizontal dimensions.
  • the image is divided into J zones corresponding to samples (or blocks) traversed in a lexicographical order.
  • Such a division corresponds to the concept of "slices" implemented by coding standards such as H.264/AVC, H.265/HEVC and H.266/VVC.
  • Segmentation information allows these areas to be identified, for example by indicating a number of blocks.
  • the image is divided into semantic zones, such as a background and a foreground. This can be done manually by an operator. Segmentation can also be automatic or semi-automatic, depending on the segmentation algorithm used. It's important to note that there are no restrictions related to the type of segmentation algorithm used.
  • the segmentation information allows these zones to be identified, for example, through a segmentation mask.
  • such a division into zones allows, during the subsequent decoding of the I(Pdn) signal, to parallelize the decoding of the zones to be decoded Zod J by distributing the decoding load equally on each of the decoders and/or processors.
  • a learning process is performed to determine, for an input signal I(P ⁇ sub>n ⁇ /sub> ), the values of the LM! maps and the parameters W ⁇ sub>k ⁇ /sub> and optionally Ob to optimize an overall cost function.
  • the learning is performed, for example, by gradient descent, followed by updating the parameters of the synthesis neural network NNSYN, the values of the feature maps FM, and optionally the prediction neural network ARM.
  • the cost function can be of the rate-distortion type, or rate-distortion, or perceptual.
  • the encoding of the parameters Wk and/or Ob is not simulated because their influence is less significant than that of the feature maps.
  • the encoding of the parameters Wk and/or Ob is also simulated, and the associated data rate (the size of the B1 stream) is measured.
  • the encoding phase the data from each zone ZoL J ri and optionally the segmentation Sg, the parameters Wk and possibly Ob are encoded to produce the encoded values Sgc, FMc and Wck (and possibly Ocb) before transmission or storage.
  • Sgc, FMc and Wck and possibly Ocb
  • a signal I(P n ) to be coded comprising a plurality of N samples P n , is provided as input to the process.
  • the segmentation Sg of the input signal I(P n ) into J (greater than or equal to 2) Zo 1 zones is performed.
  • step E22 the M FM! maps of the first group. Subsequently, the Wk parameters of the NNSYN synthesis neural network and the values of the FM! maps, and possibly the Ob parameters 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 have the same number of values N as there are samples P n to be coded.
  • 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 has the resolution of the images and each subsequent card has 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 set 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 maps of the second group are not coded; they are used solely for constructing the feature vectors.
  • FMi cards are initialized with predefined constant values.
  • the feature maps are initialized by a set of random real values.
  • the FMi feature maps of the first group are subsequently updated, or refined, during an E23 step, by the encoder's MAJ update module during its learning.
  • step E24 the J zones ZoL of the FM! maps in the first group are determined and encoded by the FMC module of the encoder.
  • this operation is a coding simulation.
  • this operation is the actual encoding, and the encoded values constitute the B2 stream.
  • the simulation can be identical to the actual encoding, but it can also be different (for example, simplified).
  • This encoding uses a technique for predicting a feature map value based on its neighborhood, as will be described, for example, with reference to Figure 9.
  • the structure and Ob parameters 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, in later iterations of the process.
  • the J zones ZoL J of the FM1 maps are encoded in the indexing order of the J zones and in a predefined order of the associated feature maps (i.e., FM1, FM2, FM3, FM4, FM5, ...) and the values of each map, for example, lexicographical.
  • Each zone ZoL J of the FM1 maps undergoes entropic coding.
  • Entropic coding of all ZoL zones of all FMi maps produces a compressed B2 stream whose throughput is subsequently measured during an E29 step.
  • the M cards of the first group FMi are transformed by the SE module 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 map has a lower resolution than the images in the sequence to be encoded
  • the transformation operation includes oversampling so that the transformed FMSi map has the same number of samples as the images in the sequence.
  • Oversampling consists of adding values to the FMSi maps to achieve the resolution of the input sequence images. It can be simple (by nearest neighbor replication) or involve interpolation (linear, polynomial, filtered, etc.).
  • step E26 values are extracted by the XTR module from the transformed FM! or possibly FMSi cards. This extraction is performed based on the coordinates (x ⁇ sub>n ⁇ /sub> , y ⁇ sub> n ⁇ /sub> ) of the sample P ⁇ sub>n ⁇ /sub> of the input signal. It can also be performed based on the resolution of the card in question. According to one embodiment, the characteristic vector Z n results directly from this extraction.
  • the characteristic vector Z ⁇ sub>n ⁇ /sub> is constructed by the TT module from the values extracted from the FM! or FMSi maps for each sample P ⁇ sub>n ⁇ /sub> with coordinates (x ⁇ sub>n ⁇ /sub>, y ⁇ sub>n ⁇ /sub> ) of the input signal.
  • the processing may include quantization of the values extracted from the FM! maps or of the resulting vector Z ⁇ sub> n ⁇ /sub>, if necessary.
  • the processing may also include other operations, such as filtering, scaling, the application of any function, preferably monotonic, etc.
  • Z n is an M-tuple (zi, Z2,. . . , ZM), consisting of the values of the FMi or FMSi maps located at the coordinates (x n , y n ) of the current pixel P n , as will be illustrated in support of Figure 6.
  • Z ⁇ sub>n ⁇ /sub> is an M-tuple constructed from values taken from the FMi maps at coordinates that may differ between maps. For example, if the FMi maps have different resolutions because they have been undersampled, the coordinates are adjusted (by scaling) to match the resolution of each map.
  • the vector Z n is processed by the NNSYN synthesis neural network to generate as output a vector representative of the sample P n to be coded, according to an embodiment the triplet (R, G, B) of the sample P' n (the sample P n coded then decoded).
  • the structure and Wk parameters of the synthesis neural network are initialized, for example, during the first iteration of this step. These parameters are subsequently updated, or refined, during the construction phase, in later 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 Wk parameters of the NNSYN synthesis neural network and the Ob parameters of the ARM prediction neural network are quantized and coded.
  • this operation is a coding simulation.
  • this operation is the actual coding, and the coded values constitute the B1 stream.
  • 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 neural network coding standard proposed by MPEG-7 Part 17, also called NNR (Neural Network Representation). Note that in this case, the amount of degradation that the coding introduces to the weights Wket, optionally Ob, must be chosen.
  • a performance measure is evaluated.
  • the coding simulation rates associated with the feature maps of the first group (simulation of the B2 flow by coding the J FM J zones of the FM maps,) and optionally with the parameters of the neural network(s) (simulation of the B1 flow by coding the Wket parameters optionally Ob) are measured.
  • the cost function is of the rate-distortion type, denoted (D+L*R), where D, for example, is the root mean square error measured between the input signal and the decoded signal (or the error measured on a subset of the signal samples).
  • D is calculated from a perceptual function such as SSIM (for Structural SIMilarity) or MSSSIM (for Multi-scale Structural SIMilarity).
  • R is the simulated rate of stream B1; in another embodiment, R is the total rate used to encode this image, i.e., the sum of the simulated rates of B1 and B2.
  • L is a parameter that controls the rate-distortion trade-off. Other cost functions are possible.
  • step E23 the performance measurement is not satisfactory, and the process is repeated from step E23.
  • This minimization can be performed by a mechanism known as gradient descent with parameter updates during step E23 for the feature map values and E26/E27 for the network(s) parameters.
  • the cost function if the cost function has reached its minimum, or if a maximum number of iterations of the cost function minimization algorithm has been reached, training stops. If a coded version corresponding to the last simulation of the parameters of the synthesis neural network Wk and the feature maps FMj is available, the B1 and B2 streams can be composed of it.
  • the actual coding involves updating the parameters of the synthesis neural network Wk and the values of the feature maps FMj and optionally the prediction neural network Obj. is performed at this stage to produce the encoded parameters Wck (optionally Ob) and FMc which constitute streams B1 and B2. Furthermore, during this stage, the encoding of the Sg segmentation is performed to produce an encoded segmentation of the J masks MZoc J which constitutes stream B3.
  • the B2 stream comprises sub-streams corresponding to each area of the feature maps.
  • This location information can be: a stream pointer (which indicates the address of the beginning of each sub-stream in the overall stream), or a marker (a series of bits, otherwise prohibited, which allows traversing the stream to find the beginning of each sub-stream), or any other means of identifying a sub-part of an encoded stream.
  • the B1 and B2 streams can be multiplexed and/or concatenated to produce a final stream.
  • the B3 stream of the coded segmentation and the B1 stream of the coded parameters of the neural network(s) are stored or transmitted before the B2 stream, so that they can be decoded before the B2 stream.
  • Figure 6 illustrates a coding method used in one embodiment of the invention.
  • the first FMi map has the same resolution as the I(P n ) image, and therefore contains WxH variables, where W represents the image width in pixels, and H its height.
  • the second FM2 map has half the resolution (in each dimension) of the FMi map. Each additional map has half the resolution of the previous one. This structure reduces the number of variables in the feature maps, which simplifies coding and learning while minimizing coding costs.
  • the FM2 map is oversampled by the SE module by a factor of 2 in each dimension, according to a procedure illustrated in Figure 6.
  • the FM3 map is oversampled by a factor of 4 in each dimension, and the FM4 map by a factor of 8 in each dimension.
  • the vector Z ⁇ sub>n ⁇ /sub> is a 4-tuple (Z ⁇ sub>1 ⁇ /sub>...Z ⁇ sub>4 ⁇ /sub>) consisting of the values extracted from the FMSi maps located at the coordinates (x ⁇ sub>n ⁇ /sub> , y ⁇ sub> n ⁇ /sub> ) of the current pixel P ⁇ sub>n ⁇ /sub> .
  • the vector Z ⁇ sub>n ⁇ /sub> composed of the extracted (quantized) values from the FMSi maps, is processed by the NNSYN synthesis neural network to generate a second output vector.
  • the output vector is the triplet (R, G, B) of the encoded and then decoded pixel P' ⁇ sub> n ⁇ /sub>.
  • the triplet is inserted into the decoded image I(P' ⁇ sub> n ⁇ /sub> ) at the positions (x ⁇ sub>n ⁇ /sub>, y ⁇ sub>n ⁇ /sub> ) of the color components (R', G', B').
  • Figure 7 is a logic diagram representing an example of a decoding process for a Zod J area that can be implemented by the DEC decoding device of Figure 2 when the synthesis neural network NNSYN' is, for example, the one shown in Figure 3.
  • the B1 stream, a portion of the B2 stream (corresponding to the feature maps of the Zod J zone), and the B3 stream are extracted from the encoded stream. They contain, respectively, Wck parameters, optionally Ocb parameters, an Sgc segmentation, and FMc-encoded representations of the M maps from the first group representing the Zod J zone to be decoded.
  • an MZo 1 segmentation mask is generated by decoding the values of the encoded segmentation information, or if this information is not encoded, obtained from decoder parameters (size or known position of slices or tiles, etc.).
  • the M FMdJ maps are generated by decoding the FMcJ values.
  • This decoding uses the MZo 1 mask and a technique for predicting a feature map value based on its neighborhood, as will be described, for example, with reference to Figure 10.
  • the FMdJ maps are decoded in an order, for example, lexicographically (FMdJ . FMdJ 2 ,... FMdJ M ), and the values of each map are decoded in a predefined order, for example, row by row and then column by column, taking into account the MZcJ mask.
  • the FMdJ cards have a resolution less than or equal to that of the Zod J (Pdn) signal to be reconstructed.
  • M FMS'Jsont cards are generated.
  • each FMdJ card is transformed into an FMS'J card.
  • At least one FMdJ map has a lower resolution than the images of the image to be encoded
  • the transformation operation includes oversampling so that the transformed FMS'J map has the same number of samples as the input image.
  • Oversampling consists of adding values to the FMS'J maps to achieve the resolution of the input image. It can be simple (by nearest neighbor replication) or involve interpolation (linear, polynomial, by fracturing, etc.).
  • the transformation may optionally include inverse quantization of the extracted values, if necessary. However, inverse quantization is not mandatory.
  • a vector Zd n is constructed by the TT' module from the extracted values of the FMdJ maps of the first group or the FMS'J maps of the second 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 E27, which was described for the encoder in support of Figure 5, and the described embodiments apply.
  • the extraction may include inverse quantization of the extracted values or of the resulting vector Zd n , if necessary.
  • the Wdk parameters of the NNSYN’ synthesis neural network and, optionally, the Odb parameters of the prediction neural network are generated by decoding the Wck and Ocb values of the B1 stream.
  • Any known decoding technique corresponding to the encoding technique used by the encoder can be used for this purpose.
  • the NNSYN’ synthesis neural network is similar to the NNSYN synthesis network, meaning it has the same structure and parameters, except for the encoding, which can be performed with or without loss.
  • the ARM’ prediction neural network if used to decode feature maps, is similar to the ARM prediction network, meaning it has the same structure and parameters, except for the encoding, which can be performed with or without loss.
  • stream B1 is decoded before streams B2 and B3, so that the synthesis neural network NNSYN’ and possibly the prediction neural network ARM’ are available before decoding the samples.
  • stream B3 is decoded before stream B2 so that the mask of the region to be decoded is available before decoding the samples.
  • step F27 the vector Zd n is processed by the NNSYN 1 synthesis neural network to generate a second vector representing the sample Pd n to be decoded.
  • This second vector a triplet, is injected into the image of the decoded area Zod J (Pd n ) at the positions (x n , y n ) of the color components (Rd, Gd, Bd).
  • This step is similar to step E28, which was described for the encoder in Figure 5.
  • the decoded signal corresponding to the Zod J (Pdn) area is available.
  • the decoding of one area of the image has been described.
  • the decoding of a second area can be carried out successively or in parallel, since the areas are encoded independently of each other. If the zones are decoded in parallel, it is necessary to have information indicating the precise position of the sub-streams (latent data) corresponding to the different zones (for example, sub-stream pointers). Conversely, if the zones are decoded sequentially, one can move from one sub-stream to another to decode the zones one after the other, without any specific indication.
  • Figure 8 illustrates a method for decoding a Zod J zone used in an embodiment of the invention.
  • the decoded FMdJ maps are representative only of the Zod J area. In other words, only the data from the ZoL J area (corresponding in the latent domain to the Zod J area) have been decoded.
  • the first FMd ⁇ card has the same resolution as image I , and therefore contains WxH variables, where W represents the image width in pixels, and H its height.
  • the second FMd J2 card has half the resolution (in each dimension) of the FMd ⁇ card.
  • Each additional card has half the resolution of the previous card. This structure reduces the number of variables in the feature cards, which facilitates decoding while minimizing the encoding cost.
  • the FMdJ map is oversampled by a factor of 2 in each dimension, using any oversampling method available to a person skilled in the art.
  • the FMdJ3 map is oversampled by a factor of 4 in each dimension, and the FMd ⁇ map by a factor of 8 in each dimension.
  • the FMS'J cards have the same resolution as the image to be decoded, and therefore include 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'J maps located at the coordinates (x n , y n ) of the current pixel Pd n .
  • the vector Zd n is optionally dequantized and then processed by the NNSYN' 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).
  • Figure 9 is a flowchart representing a method for coding feature maps which can be implemented by the coding device of Figure 1 and by the coding process of Figure 5.
  • steps E24 are sub-steps of step E24 described previously in support of Figure 5. They aim to encode a current value V n of a ZoL J zone of an FM! feature map of the first group being processed using values from a neighborhood of the current value V n .
  • a neighborhood vector C ⁇ sub>n ⁇ /sub> is established, comprising values close to the value V ⁇ sub> n ⁇ /sub>.
  • these neighboring values can be located in the same map and/or in a different map from the plurality M of FM maps!
  • These values must be known to the encoder and the decoder; therefore, they must lie in a causal neighborhood of the value V ⁇ sub>n ⁇ /sub> .
  • these values are used to determine the context of an entropy encoder to encode the current value during an E244 step.
  • This encoder can be a CAB AC (Context-Adaptive Binary Arithmetic Coding) encoder.
  • CAB AC Context-Adaptive Binary Arithmetic Coding
  • This type of encoder is well known to those skilled in the art. It is notably used in the H.265/HEVC video compression standard. It 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 a context to optimize the probability estimation. This context can be defined by information from neighboring elements. Adaptive or non-adaptive arithmetic coding is then applied to compress the resulting data.
  • the neighborhood vector to generate context information. For example, one can count the number of neighboring values that are not zero and associate a context with each number. Alternatively, one can perform comparisons between several neighboring values and associate a given context with a configuration of order between the neighboring values, for example by ranking the neighboring values in ascending order and associating a context with each possible order.
  • a predictive neural network is used in step E243 to predict the statistical characteristics of the variable to be coded.
  • the neighborhood vector is given as input to the ARM, which provides a prediction of the current value as output.
  • the ARM behaves as a function fv, as described in Figure 4, which provides a set of statistical parameters (mean, variance, median, etc.) used to entropically code the current value.
  • the role of this ARM module is to predict the current value as accurately as possible for the set of values Vn to be coded in the ZoLJ area of the FM maps, in order to reduce the throughput required for encoding the feature maps.
  • the predictive neural network is used to produce the expected probability (pr) of the possible value of the current sample. Entropic coding is adapted to this probability (as is known for Huffman or arithmetic entropic coding).
  • the current coded value Vc n of the FM card being processed is coded.
  • Figure 10 is a flowchart representing a method for decoding feature cards that can be implemented by the decoding device in Figure 2 and by the decoding process in Figure 7.
  • steps F22 are sub-steps of step F22 described previously in support of figure 7. They aim to decode a current value Vd n of a point of a feature map FMdJ of the first group being processed using neighborhood values.
  • a neighborhood vector Cd n is established, comprising values close to the value Vd n.
  • This step is similar to the previously described step E241, and the same embodiments apply.
  • These values being in a causal neighborhood of the value Vd n, are known to the decoder. According to a first embodiment, these values are used to determine the context of an entropy decoder for decoding the current value during an F224 step.
  • This decoding is similar to that used in the encoder, for example, CABAC.
  • the use of the neighborhood to produce context information is similar to that chosen for the encoder. For example, one can count the number of non-zero neighboring values and associate a context with each number. Alternatively, one can perform comparisons between several neighboring values and associate a given context with an ordering configuration among the neighboring values, for example, by sorting the neighboring values in ascending order and associating a context with each possible order.
  • the neighborhood is used to predict the current value from an autoregressive model during step F222.
  • the past values are constituted by the context, and the difference between the predicted variable and the actual value is decoded and then entropically dequantized during step F224.
  • a predictive neural network ARM' is used in step F223 to predict the statistical characteristics of the variable to be decoded.
  • the neighborhood vector is applied as input to the ARM' network, providing output with a prediction of the current value.
  • the ARM network behaves as a function fv, as described in Figure 4, defined by a set of statistical parameters (mean, variance, median, etc.) used to entropically decode the current value.
  • the predictive neural network ARM' is used to produce the expected probability (pr) of the possible value of the current sample. Entropic decoding is tailored to this probability (as is known for Huffman or arithmetic entropic coding).
  • the ARM' network is identical to the ARM network if its coding has been performed without loss. At the end of the process, the current decoded value Vd n of the FMdJ card being processed is decoded.
  • Figures 11 and 12 illustrate a method for encoding or decoding feature maps according to one of the embodiments
  • the encoding (rep. decoding) of the current value Vn (resp. Vdn ) located at a current point with coordinates ( xn , yn ) in the characteristic zone ZoLJ of the current feature map FM! (resp. FMdJ) uses the contextual information of this current map.
  • This contextual information is represented by a neighborhood of the current point Vn .
  • the neighborhood used includes 8 points belonging to a causal neighborhood of the current point associated with a 3x3 square mask.
  • This contextual information is, however, conditioned by the characteristic zone ZoL J in the current map. More precisely, the contextual information depends on the location of the current point relative to the boundary of the ZoL J zone. This location is obtained by evaluating a proximity criterion Cp(V n ) (resp. Cp(Vd n )) of the current point relative to a boundary of the characteristic zone.
  • the proximity criterion Cp(V n ) is the Euclidean distance between the current point and the boundary of the ZoL J zone.
  • the proximity criterion Cp(V n ) (resp.
  • Cp(Vd n )) could be a Manhattan, Minkowski, or Chebyshev distance.
  • the distance can simply be measured in pixels, for example, by counting the number of pixels along the two directions of a coordinate system associated with the current map between the current point and the boundary of the ZoL J zone.
  • the proximity criterion Cp(V n ) can also be a quasi-distance or a gap or any other relevant measure indicating the proximity of the current point to the boundary of the ZoL J zone.
  • the proximity criterion Cp(V n ) (resp. Cp(Vd n )) is greater than a threshold S (for example predefined) and the values of the neighborhood points in the current map FM! (resp. FMdJ) are used to encode (resp. decode) the current value V n (resp. Vd n ).
  • the proximity criterion Cp( Vn ) (resp. Cp( Vdn )) is less than this threshold S.
  • the neighborhood vector Cn (resp. Cdn) is defined component by component. The value of a component of the neighborhood vector Cn (resp. Cdn ) is equal to the value of the associated neighborhood point in the current map if that point belongs to the ZoL J zone, and to a replacement value otherwise.
  • Figure 11 illustrates the first case while Figure 12 illustrates the second case.
  • the values of the points shown in grey are part of the ZoL J zone and are used to determine components of the neighborhood vector C n .
  • the values of the points shown in white do not belong to the ZoL J zone but to another ZoL x zone and, since they cannot be used to define the neighborhood vector C n , are replaced by a replacement value Rp.
  • the replacement value is a constant, for example equal to the average value of the point values in the ZoL J area in the current map or to a predetermined constant value.
  • the replacement value is calculated based on the value of the neighborhood points belonging to the ZoL J zone.
  • a set of replacement values is calculated based on the values of neighborhood points belonging to the ZoL J zone.
  • a neural network can be implemented to calculate a given number of replacement values based on the neighborhood points of the ZoL J zone.
  • the definition of the neighborhood of the current point and the dimension of the neighborhood vector C ⁇ sub> n ⁇ /sub> are independent of the proximity criterion C ⁇ sub>p ⁇ /sub> (V ⁇ sub>n ⁇ /sub>) (resp. C ⁇ sub>p ⁇ /sub>(V ⁇ sub>dn ⁇ /sub>)).
  • this form of the neighborhood and/or the dimension of the neighborhood vector C ⁇ sub> n ⁇ /sub> may depend on the proximity criterion C ⁇ sub> p ⁇ /sub>(V ⁇ sub> n ⁇ /sub> ) (resp. C ⁇ sub>p ⁇ /sub>(V ⁇ sub>dn ⁇ /sub>)).
  • Figure 14 presents an example where the definition of the neighborhood is independent of the proximity criterion Cp(V n ) (resp. Cp(Vd n )) but where the dimension of the neighborhood vector C n depends on this proximity criterion Cp(V n ) (resp. Cp(Vd n )).
  • the neighborhood vector C n is determined as explained with reference to Figure 11.
  • the neighborhood vector C n is determined as follows: the number of points Np in the causal neighborhood of the current point belonging to the characteristic zone ZoL J is calculated and the neighborhood vector V n is defined as a vector of dimension Np, and the value of each point in the neighborhood of the current point belonging to the zone ZoL J is associated, according to an order for example predefined, with a different component of the neighborhood vector C n .
  • the contextual information represented by the neighborhood of the current point is independent of the proximity criterion Cp n .
  • the definition of the neighborhood of the current point can depend on the proximity criterion Cp n .

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

L'invention concerne un procédé de codage d'un signal comportant au moins deux zones et comportant les étapes suivantes pour une zone (Zoj) comprenant une pluralité d'échantillons (Pn) à coder, la construction (E22) d'au moins une carte de caractéristiques représentative de ladite zone; pour au moins un échantillon, dit échantillon courant (Pn), de ladite zone (Zoj), associé à un point dans ladite au moins une carte de caractéristiques, le codage d'une donnée associée audit point, dite valeur courante (Vn), comprenant l'évaluation (F221) d'un critère de proximité dudit point par rapport à une frontière de ladite zone, la construction (F221) d'un vecteur de voisinage (Cn) dudit point en fonction dudit critère de proximité, et un codage entropique (F223, F224) de ladite valeur courante en fonction dudit vecteur de voisinage (Cn); la mise à jour (E23, E26, E27) d'au moins une valeur de ladite carte de caractéristiques, en fonction d'une mesure de performance de codage, et le codage de ladite carte de caractéristiques (FMci j ) représentative de ladite zone.

Description

Description
TITRE : Procédé et dispositif de codage et décodage d’un signal
Technique antérieure
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 ou des vidéos numériques.
Les vidéos 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 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.). Dans ces approches, l’encodage d’une image est généralement effectué par une prédiction des pixels à 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 ».
En plus de ces approches classiques, les approches basées sur l’intelligence artificielle, et notamment neuronales, tendent à se développer.
Certaines approches neuronales réalisent, à partir du signal d’entrée, par exemple une image, l’entraînement d’un réseau de neurones dit de synthèse sur des vecteurs caractéristiques associés à une position d’un échantillon du signal d’entrée à 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. Le décodage du signal codé s’effectue alors en appliquent le réseau de neurones de synthèse sur les cartes de caractéristiques.
Un inconvénient des approches classiques et des approches neuronales précédemment décrites est qu'elles ne permettent pas de créer des zones indépendamment décodables dans le signal codé ce qui limite non seulement les capacités d’interaction avec le contenu sémantique du signal codé mais également la possibilité de limiter la mémoire nécessaire au niveau du décodeur ou de paralléliser le décodage de ce signal codé.
Il existe donc un besoin pour une solution permettant d’améliorer les approches classiques et neuronales précédemment décrites.
Résumé de l’invention
L’invention vise un procédé de codage d’un signal comportant au moins deux zones, comportant les étapes suivantes pour une zone comprenant une pluralité d’échantillons à coder :
- la construction d’au moins une carte de caractéristiques représentative de ladite zone,
- pour au moins un échantillon, dit échantillon courant, de la ladite zone, associé à un point dans ladite au moins une carte de caractéristiques , le codage d’une donnée associée audit point, dite valeur courante, comprenant :
- l’évaluation d'un critère de proximité dudit point par rapport à une frontière associée à ladite zone,
- la construction d’un vecteur de voisinage dudit point en fonction dudit critère de proximité, et
- un codage entropique de ladite valeur courante à partir dudit vecteur de voisinage,
- la mise à jour d'au moins une valeur de ladite carte de caractéristiques, en fonction d’une mesure de performance de codage,
- le codage de ladite carte de caractéristiques représentative de ladite zone.
L’invention vise aussi un procédé de décodage d’un flux de données représentatif d’un signal segmenté en zones, ledit procédé de décodage comportant les étapes suivantes, pour une zone:
- le décodage d’au moins une carte de caractéristiques représentative de ladite zone, le décodage comprenant, pour au moins un point de ladite carte :
- l’évaluation d'un critère de proximité dudit point par rapport à une frontière associée à ladite zone,
- la construction d’un vecteur, dit vecteur de voisinage dudit point, en fonction dudit critère de proximité, et
- un décodage entropique d’une donnée associée au point, dite valeur courante, en fonction dudit vecteur de voisinage,
- l’application d’un réseau de neurones à ladite au moins une carte de caractéristique décodée. Au sens de l’invention, on entend par encodage, ou « codage », l’opération qui consiste à représenter une ou plusieurs valeurs ou 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 une ou plusieurs valeurs ou des échantillons décodés.
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.
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).
Par « zone du signal », on entend un ensemble d’échantillons du signal. Par exemple, dans le cas d’un signal sonore, une zone peut correspondre à une succession d’unités correspondant à des silences, des bruits, des phonèmes, des mots, etc. De même, dans le cas d’un signal d’image, une zone peut correspondre à un ensemble de pixels, regroupés selon des critères d'intensité, ou spatiaux, etc. Par exemple, une opération de segmentation peut permettre d’identifier dans le signal d’image deux zones différentes correspond l’une à l’arrière-plan de l’image et l’autre au premier plan de l’image.
Par « cartes de caractéristiques » (« feature maps » en anglais) ou de façon équivalente par « cartes de valeurs latentes », 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.
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 ou dans un voisinage de celui-ci. 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) ou dans un voisinage de celui-ci. 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.
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).
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.)
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.
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.
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.
Le procédé de codage selon l’invention réalise le codage d’une zone d’un signal à partir d’une représentation de ce signal sous forme de cartes de caractéristiques. Ces cartes de caractéristiques sont segmentées en zones caractéristiques correspondant aux zones du signal dont les valeurs sont ultérieurement codées de façon entropique les unes indépendamment des autres. Ainsi, il est possible d’obtenir une représentation codée d’une zone du signal d’origine qui peut être ultérieurement décodée indépendamment de tout autre partie de ce signal.
Le procédé de décodage (et de façon symétrique le procédé de codage) peut en outre comporter une ou plusieurs des caractéristiques optionnelles suivantes, prises isolément ou bien selon n’importe quelle combinaison techniquement possible.
Selon une première caractéristique, le codage (resp. décodage) comporte en outre une étape de codage (resp. décodage) d’un ensemble de paramètres représentatifs dudit réseau de neurones de synthèse.
Selon une autre caractéristique, le codage (resp. décodage) comporte une étape de codage (resp. décodage) d’une information de segmentation pour déterminer, dans ladite au moins une carte de caractéristiques, une zone caractéristique correspondant à ladite zone.
Par « information de segmentation » on entend toute information permettant d'identifier les différentes zones qui doivent faire l'objet d'une synthèse spécifique au décodage (resp. codage). Par exemple, dans le cas d’un signal d’image, l'information de segmentation indique une division de l'image en une pluralité de zones régulières, de taille et de forme identiques : l’image peut être divisée en zones rectangulaires dont les frontières sont horizontales et verticales, ou divisée en zones correspondant à des échantillons (ou des blocs) parcourus dans un ordre lexicographique. Dans ce cas, l'information de segmentation peut indiquer le début et/ou la fin de l'ensemble. Selon un autre exemple, une région peut être de taille et forme arbitraire. Dans ce cas, l'information de segmentation peut indiquer la forme et la taille de la région, sous la forme d’un masque de segmentation.
Selon une autre caractéristique le voisinage dudit point est indépendant de ladite évaluation du critère de proximité.
Selon une autre caractéristique, le voisinage dudit point est sélectionné en fonction de ladite évaluation du critère de proximité.
Selon une autre caractéristique, lors de la construction du vecteur de voisinage, une composante du vecteur de voisinage est associée à un point dudit voisinage, la valeur de ladite composante étant égale à la valeur dudit point associé si ledit point associé est un point de ladite zone caractéristique, et à une valeur de remplacement, sinon.
Selon une autre caractéristique, la valeur de remplacement est dépendante des points de ladite zone caractéristique ou des points associés audit voisinage appartenant à ladite zone caractéristique.
Selon une autre caractéristique, la valeur de remplacement ne dépend pas des points de ladite zone caractéristique.
Selon une autre caractéristique, le voisinage dudit point est sélectionné en fonction dudit point.
Selon une autre caractéristique, la construction du vecteur de voisinage comprend : l’identification des points dudit voisinage appartenant à ladite zone caractéristique, dit points identifiés, l’initialisation du nombre de composantes dudit vecteur de voisinage au nombre de points identifiés, et l’affectation de la valeur de chaque point identifié à une composante différente dudit vecteur de voisinage.
Selon une autre caractéristique, le critère de proximité dudit point par rapport à une frontière d’une zone est une distance.
Selon une autre caractéristique, le vecteur de voisinage est utilisé pour déterminer un contexte du décodage entropique de ladite valeur courante.
Selon une autre caractéristique, le décodage entropique de ladite valeur courante comprend une étape de prédiction de ladite valeur courante en fonction dudit vecteur de voisinage.
Selon une autre caractéristique, le décodage de ladite valeur courante d’une desdites cartes de valeurs latentes comprend : le décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones, dit réseau de neurones de prédiction, et le traitement dudit vecteur de voisinage par le réseau de neurones de prédiction, pour fournir une prédiction de ladite valeur courante.
Corrélativement, l’invention vise aussi un dispositif de codage d’un signal comportant au moins deux zones, ledit dispositif de codage comprenant un processeur couplé à une mémoire dans laquelle sont enregistrées des instructions configurées pour mettre en œuvre pour une zone dudit signal comprenant une pluralité d’échantillons à coder : la construction d’au moins une carte de caractéristiques représentative de ladite zone, pour au moins un échantillon, dit échantillon courant, de ladite zone, associé à un point dans ladite au moins une carte de caractéristiques, le codage d’une donnée associée audit point, dite valeur courante, comprenant : o l’évaluation d'un critère de proximité dudit point par rapport à une frontière de ladite zone, o la construction d’un vecteur de voisinage dudit point en fonction dudit critère de proximité, et o un codage entropique de ladite valeur courante en fonction dudit vecteur de voisinage, la mise à jour d'au moins une valeur de ladite carte de caractéristiques, en fonction d’une mesure de performance de codage, le codage de ladite carte de caractéristiques représentative de ladite zone.
L’invention concerne aussi un dispositif de de décodage d’un flux de données représentatif d’un signal segmenté en zones, le dispositif comprenant un processeur couplé à une mémoire dans laquelle sont enregistrées des instructions configurées pour mettre en œuvre les étapes suivantes, pour une zone: le décodage d’au moins une carte de caractéristiques représentative de ladite zone, le décodage comprenant, pour au moins un point de ladite carte : o l’évaluation d'un critère de proximité dudit point par rapport à une frontière de ladite zone, o la construction d’un vecteur de voisinage dudit point en fonction dudit critère de proximité, et o un décodage entropique d’une donnée associée au point, dite valeur courante, à partir du vecteur de voisinage, l’application d’un réseau de neurones à ladite au moins une carte de caractéristique décodée.
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. 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 codage ou de décodage 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.
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 fd ou par d’autres moyens.
Le programme selon l’invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, chaque support d’information 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 figures
L’invention sera mieux comprise à l’aide de la description qui va suivre, donnée uniquement à titre d’exemple et faite en se référant aux dessins annexés dans lesquels : la figure 1 représente schématiquement un dispositif de codage selon un premier mode de réalisation de l’invention, la figure 2 représente schématiquement un dispositif de décodage selon le premier mode de réalisation de l’invention, la figure 3 illustre un exemple de réseau de neurones artificiels de synthèse utilisé dans le cadre de l’invention, la figure 4 illustre un exemple de réseau de neurones artificiels de prédiction utilisé dans le cadre de l’invention, 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 , 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, 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, 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, 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, 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. la figure 11 et la figure 12 représentent de manière illustrée la formation d’un vecteur de voisinage utilisé dans une méthode de codage ou de décodage de cartes de caractéristiques. la figure 13 illustre une première variante de formation du vecteur de voisinage. la figure 14 illustre une deuxième variante de formation du vecteur de voisinage. la figure 15 illustre une troisième variante de formation du vecteur de voisinage. la figure 16 illustre une quatrième variante de formation du vecteur de voisinage.
Description détaillée de l’invention
La figure 1 représente schématiquement, selon un premier mode de réalisation, un dispositif de codage ENC d’au moins une zone d’un signal (I(Pn)). Dans l’exemple décrit ici, le signal I(Pn) est segmenté en un ensemble de J zones et toutes les zones sont codées de façon indépendantes. Bien évidemment, en variante, seule une zone ou seulement quelques zones peuvent être codées de façon indépendante.
Ce dispositif de codage ENC comprend un module de segmentation SEG, un module d’encodage SEGC de la segmentation fournie par le module de segmentation SEG, un module GEN de génération de cartes de caractéristiques, un module SE de transformation, un module XTR d’extraction de données, un module TT de traitement et quantification, un module NNSYN 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.
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.
Le dispositif de codage ENC de la figure 1 reçoit en entrée un signal formée d’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.
Le module SEG réalise une segmentation Sg de la succession d’échantillons à coder Pn en J (supérieur ou égal à 2) zones Zo1. Cette opération de segmentation permet de rassembler les échantillons en J différents ensembles homogènes en fonction d’un ou plusieurs critères prédéfinis. Par exemple, dans le cas d’une succession temporelle d’échantillons sonores, l’opération de segmentation permet d’obtenir des successions d’unités correspondant à des silences, des bruits, des phonèmes, des mots, etc. De même, dans le cas d’un signal d’image I(Pn), l’opération de segmentation permet de rassembler les pixels Pn du signal d’image en J zones homogènes suivant des critères, notamment d'intensité ou spatiaux. Par exemple, l’opération de segmentation peux permettre d’identifier dans le signal d’image I(Pn) deux zones différentes (J=2) correspond l’une à l’arrière-plan de l’image et l’autre au premier plan de l’image. D’autres exemples de segmentation seront présentés ultérieurement en référence à la figure. La segmentation Sg est par exemple représentée comme un ensemble de J masques MZo1 permettant chacun d’identifier une zone Zo\ chacun des masques étant associé à une valeur différente de celle associée aux autres masques.
Optionnellement, le module SEGC réalise le codage sans perte de l’information de segmentation Sg. Ce codage peut être réalisé en codant la carte de segmentation correspondant aux J masques MZoJ (par exemple en utilisant l’algorithme JPEG-LS défini par la norme internationale ISO/CEI 14495-1) ou en variante en codant indépendamment chaque masque MZo', ou dans encore une autre variante, en codant indépendamment les contours des J masques MZoJ, ou dans encore une autre variante en codant une donnée de taille ou de position d’une zone, par exemple rectangulaire. La segmentation codée est notée Sgc.
Le module NNC réalise une simulation de codage, suivi d’un décodage, des paramètres du réseau de neurones NNSYN à destination du module d’évaluation.
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 LM!.
Dans un mode de réalisation, le module SE réalise une transformation du premier groupe de cartes de caractéristiques FM! pour générer un second groupe de cartes de caractéristiques FMSi à la même résolution que le signal d’entrée.
Le module SE, optionnel, peut réaliser une quantification des données extraites de cet ensemble de M cartes FM!. 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.
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.
Le module XTR réalise une extraction de valeurs dans les cartes de caractéristiques FMSi (ou FM! 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).
Dans un mode de réalisation, les valeurs extraites constituent le vecteur Zn. Zn est un L-uplet, c’est-à-dire qu’il comporte L éléments, ou données Zi. Par exemple, dans un mode de réalisation, L=M, c’est-à-dire par exemple qu’une seule valeur est extraite pour chaque carte de caractéristiques FM!. Dans un autre mode de réalisation, L>M, c’est-à-dire par exemple que plusieurs valeurs sont extraites pour au moins une carte de caractéristiques FMi. La dimension L du vecteur dépend de la topologie du réseau de neurones de synthèse NNSYN et plus particulièrement de la topologie de la couche d’entrée de ce réseau de neurones de synthèse NNSYN.
Le vecteur Zn d’indice n réfère au vecteur caractéristique du pixel P’n.
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.
On notera que l’un au moins des modules SE ou TT doit effectuer une quantification des cartes de caractéristiques.
Le module NNSYN est un réseau de neurones de synthèse défini par K paramètres Wk, apte à traiter le vecteur Zn, ou L-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 formé d’un MLP, ou Multi Layer Perceptron, constitué d’une couche d’entrée adaptée au format d’entrée (le L-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é.
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.
Le module FMC réalise le codage des cartes FM c’est-à-dire des valeurs des cartes de caractéristiques du premier groupe (à l’exclusion 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 FM,.
Le module FMC détermine, en prenant en compte la segmentation Sg réalisée par le module SEG, une segmentation SgL de chacune des cartes de caractéristiques FM! en J zones ZoL . Ainsi, le module FMC utilise la segmentation Sg définie dans le domaine du signal à coder pour obtenir une segmentation dans le domaine latent des cartes de caractéristiques FM!. L’obtention de cette segmentation dans le domaine latent dépend de la transformée de passage permettant de passer du domaine du signal à coder au domaine latent. Ainsi, la segmentation SgL dans les latentes est issue d’un calcul prenant en compte simultanément la localisation des zones de la segmentation Sg dans le signal à coder et la transformée de passage. Par exemple, si les latentes et le signal à coder ont la même résolution, alors la segmentation dans le domaine latent est identique à la segmentation dans le domaine du signal à coder. Selon un autre exemple, si une latente à une résolution inférieure à celle du signal à coder, alors la frontière entre deux zones de la segmentation dans le domaine de cette latente se situe entre les points dans le domaine latent dont les échantillons colocalisés, i.e. correspondant dans le signal à coder appartiennent à deux zones différentes de la segmentation Sg. Chacune des cartes FM-"' est représentée sous la forme d’un ensemble de J zones ZoLj, chacune des zones ZoLJj correspondant dans la carte FM! à la région j de la segmentation SgL. Le codage des valeurs des cartes FM! est réalisé en prenant en compte la segmentation SgL. Plus précisément, chacune des J zones ZoLJ r i est codée successivement, par exemple dans l’ordre de leur indexation. Le codage d’une zone ZoL comprend le codage successif pour chaque carte FMi des valeurs des points de la zone ZoL’j dans la carte FMi. Ainsi chacune des zones ZoL est codée indépendamment des autres zones. Les données codées de chaque zone codée Zol,' , dans chacune des cartes de caractéristiques FMi sont notées FMcJ. Chaque zone Zol,' , subit un codage entropique. Ainsi, le codage des M cartes FMi correspond au codage indépendant des J zones des M cartes FMi.
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).
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.
Le module MAJ réalise une mise à jour des valeurs des cartes FMi et/ou des paramètres du ou des réseaux de neurones à encoder, en fonction des résultats de la fonction de performance.
La figure 2 représente schématiquement un dispositif de décodage DEC d’une zone à décoder ZodJ d’un signal, dite zone à décoder, ladite zone à décoder ZodJ comprenant une pluralité d’échantillons Pdn à décoder.
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 NNSYN’ et optionnellement le réseau de neurones de prédiction ARM', un module SEGD de décodage de la segmentation, 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. Le dispositif de décodage DEC produit en sortie une image décodée comprenant au moins la zone décodée, notée ZodJ (Pdn), comportant une pluralité d’échantillons décodés Pdn.
Le dispositif de décodage DEC de la figure 2 reçoit en entrée la segmentation encodée Sgc et un groupe de données encodées FMcJ.
Le dispositif de décodage DEC de la figure 2 reçoit également en entrée les paramètres encodés Wck du réseau de neurones de synthèse NNSYN’ et optionnellement les paramètres encodés Ocb du réseau de neurones de synthèse ARM’.
Les paramètres du réseau de neurones de synthèse NNSYN’ 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.
Le module SEGD décode optionnellement l’information de segmentation, par exemple le masque MZo\ à partir des données encodées Sgc.
Selon des modes de réalisation tels que décrits pour le codeur :
La carte de segmentation correspondant aux J masques MZo1 est décodée et le masque MZoJ est extrait de la carte de segmentation.
Le masque MZoJ est décodé directement lorsqu’il a été précédemment encodé dans les données encodées Sgc indépendamment des autres masques.
Si l’information de segmentation n’est pas décodée, elle peut être inférée par le décodeur (par exemple, parce qu’elle est statique, ou parce que le décodeur connaît la taille des zones rectangulaires correspondant aux tiles ou au nombre de blocs des slices, etc.)
Le module FMD construit M cartes décodées FMdJ en utilisant le masque MZo1 et les données encodées FMcJ. A partir du masque MZo1 dans le domaine du signal à décoder, le module FMD détermine la zone ZoLJ correspondante dans le domaine latent, puis le module FMD décode les données FMcJ pour obtenir les valeurs des points de cette zone ZoLJ dans chacune des cartes FMdJ.
Dans un mode de réalisation, le module SE’ réalise une transformation du premier groupe de cartes de caractéristiques FMdJ 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 ou FMS'J. 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. À 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.
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.
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 FMdJ (ou FMS'J 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, les valeurs extraites constituent le vecteur Zdn. Zdn est un L- uplet, c’est-à-dire qu’il comporte L éléments, ou données zd,
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 filtrage, une mise à l’échelle, etc., similaires à ceux effectués par le codeur.
Le module NNSYN’ est un réseau de neurones dit de synthèse, défini par K paramètres Wdk, apte à traiter le vecteur Zdn, ou L-Uplet, en entrée, pour générer en sortie un second vecteur représentatif de l’échantillon Pdn à 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 NNSYN’ est de structure identique au module NNSYN, et ses paramètres sont soit identiques si le codage de ses paramètres Wk, soit différents si le codage est réalisé avec pertes.
Lorsque tous les échantillons Pdn du signal ont été décodés, on dispose d’un signal reconstruit ZodJ(Pdn) de la zone ZoJ.
Par ailleurs, le dispositif de décodage DEC peut successivement être mis en œuvre pour décoder toute les zones ZodJ afin de reconstituer tous les échantillons à décoder du signal, i.e. de l’image I(Pdn). 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. Le dispositif DEC peut aussi comporter une pluralité de processeurs, les processeurs étant dédiés au décodage parallèle des zones de l'image.
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 d’un mode de réalisation de l’invention.
Le réseau de neurones artificiels de synthèse utilisé au codage, NNSYN, et le réseau de neurones artificiels de synthèse utilisé au décodage, NNSYN’, 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é.
Une représentation vectorielle d’un échantillon courant (un vecteur Zn ou Zdn issu des cartes de caractéristiques FMi/FMSi au codeur ou FMdJ /FMS'J 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 NNSYN ou NNSYN’. 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 ou d’une zone d’une image.
La concaténation de tous ces pixels reconstruits dans une image constitue l’image ou la zone de l’image décodée, ou reconstruite.
Au codeur, le réseau de neurones artificiels de synthèse NNSYN est entraîné sur l’image entière, 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.
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 NNSYN’ est identique à NNSYN, soit avec pertes, auquel cas le réseau NNSYN’ peut être légèrement différent de NNSYN.
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. 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é.
Une représentation vectorielle d’un voisinage courant (un vecteur Cn ou Cdn issu des cartes de caractéristiques FM! au codeur ou FMdJ 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).
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é.
Selon un mode de réalisation, au codeur, le réseau implémente une fonction fv qui fournit une moyenne et/ou une variance (p,o) attendues pour la valeur courante de la valeur courante Vn de la carte FM! à 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 fv qui fournit une moyenne et/ou une variance attendues pour la valeur courante de la valeur courante Vdn de la carte FMdJ à 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.
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).
Au codeur, le réseau de neurones artificiels de prédiction ARM est entraîné sur l’ensemble de l’image, de sorte à minimiser la taille (en nombre d’octets ou de bits) des données encodées. 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 à la fois sur le débit et la distorsion.
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.
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 lorsque le réseau de neurone de synthèse NNSYN est celui présenté à la figure 3.
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).
L’encodage se déroule en trois phases principales :
Dans une première phase, dite phase de segmentation, la segmentation Sg du signal d’entrée I(Pn) en J (supérieur ou égal à 2) zones ZoJ est réalisée.
Selon un premier exemple de segmentation, l’image est divisée en J zones régulières, par exemple de taille et de forme identiques (sauf éventuellement sur les bords de l’image). Par exemple, l’image peut être divisée en zones rectangulaires dont les frontières sont horizontales et verticales. Une telle division correspond au concept de « tiles » mis en œuvre par les standards de codage tels que H.264/AVC, H.265/HEVC et H.266/VVC. L’information de segmentation permet d’identifier ces zones rectangulaires, par exemple en indiquant une taille verticale et horizontale.
Selon un deuxième exemple de segmentation, l’image est divisée en J zones correspondant à des échantillons (ou des blocs) parcourus dans un ordre lexicographique. Une telle division correspond au concept de « slices » mis en œuvre par les standards de codage tels que H.264/AVC, H.265/HEVC et H.266/VVC. L’information de segmentation permet d’identifier ces zones, par exemple en indiquant un nombre de blocs.
Selon un troisième exemple de segmentation, l’image est divisée en zones sémantiques, par exemple un arrière-plan et un premier plan. Pour ce faire, une définition manuelle peut être réalisée par un opérateur. La segmentation peut également être automatique ou semi- automatique selon l’algorithme de segmentation utilisée. Il est à noter qu’il n’existe aucune restriction liée au type d’algorithme de segmentation utilisé. L’information de segmentation permet d’identifier ces zones, par exemple via un masque de segmentation.
Avantageusement, une telle division en zones permet lors du décodage ultérieur du signal I(Pdn) de paralléliser le décodage des zones à décoder ZodJ en répartissant équitablement la charge de décodage sur chacun des décodeurs et/ou processeurs.
Dans une deuxième 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 LM! 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 NNSYN, des valeurs des cartes de caractéristiques FM 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 J zones ZoLJ des cartes FM-"', puis de mesurer le débit de codage associé (la taille du flux B2). 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 B 1). 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.
Puis lors d’une troisième phase, dite phase de codage, les données de chaque zone ZoLJ r iet optionnellement la segmentation Sg, les paramètres Wk et éventuellement Ob sont encodés pour produire les valeurs codées Sgc, FMc et Wck (et éventuellement Ocb) avant transmission ou stockage. Ils constituent la représentation compressée du signal d’entrée I(Pn), ce signal compressé pouvant être décodé zone par zone. On va maintenant décrire les étapes d’un procédé de codage selon un mode de réalisation de l’invention.
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é.
Lors d’une étape E21, la segmentation Sg du signal d’entrée I(Pn) en J (supérieur ou égal à 2) zones Zo1 est réalisée.
Lors d’une étape E22, les M cartes FM! du premier groupe. Par la suite, les paramètres Wk du réseau de neurones de synthèse NNSYN et les valeurs des cartes FM!, et éventuellement les paramètres Ob du réseau de neurones de prédiction doivent être optimisés durant la phase de construction.
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.
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.
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).
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. Les cartes du second groupe ne sont pas codées, elles servent uniquement à la construction des vecteurs caractéristiques.
Selon un mode de réalisation, les cartes FMi sont initialisées par des valeurs constantes prédéfinies.
Selon un autre mode de réalisation, les cartes de caractéristiques sont initialisées par un ensemble de valeurs réelles aléatoires.
Les cartes de caractéristiques FMi du premier groupe sont par la suite mises à jour, ou raffinées, lors d’une étape E23, par le module de mise à jour MAJ du codeur au cours de son apprentissage. Lors d’une étape E24, les J zones ZoL des cartes FM! du premier groupe sont déterminées et 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 B2. 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é.
Dans un mode de réalisation, les J zone ZoLJ des carte FM! sont codées dans l’ordre d’indexation des J zones et dans un ordre prédéfini des cartes de caractéristiques associées (i.e. , FMjb FM^, FM|, FM4, FM^,...) et des valeurs de chaque carte par exemple lexicographique. Chaque zones ZoLJ des cartes FMi subit un codage entropique.
Le codage entropique de l’ensemble des zones ZoL de l’ensemble des cartes FMi produit un flux compressé B2 dont le débit est mesuré ultérieurement au cours d’une étape E29.
Lors d’une étape E25, 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.
Selon un mode de réalisation, M cartes FMSi sont générées.
Selon un mode de réalisation, chaque carte FMi est transformée en une carte FMSi.
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.).
Lors d’une étape E26, des valeurs sont extraites par le module XTR des cartes FM! ou éventuellement FMSi transformées 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. Selon un mode de réalisation, le vecteur Zn caractéristique résulte directement de cette extraction.
Les échantillons à coder sont par exemple traités par ordre séquentiel, de n=l à n=N.
Selon un mode de réalisation, lors d’une étape E27, le vecteur Zn caractéristique est construit par le module TT à partir des valeurs extraites des cartes FM! ou FMSi 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 FM! ou du vecteur Zn constitué, si nécessaire. Le traitement peut comporter d’autres opérations, comme un filtrage, une mise à l’échelle, l’application d’une fonction quelconque, de préférence monotone, etc.
Dans un mode de réalisation, Zn est un M-uplet (zi, Z2,. . . , ZM), constitué des valeurs des cartes FMi ou FMSi situées aux coordonnées (xn, yn) du pixel courant Pn, comme il sera illustré à l’appui de la figure 6.
Dans un mode de réalisation, Zn est un M-uplet construit à partir de valeurs prélevées dans les cartes FMi à des coordonnées qui peuvent être différentes selon les cartes. Par exemple, si les cartes FMi 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.
Lors d’une étape E28, le vecteur Zn est traité par le réseau de neurones de synthèse NNSYN 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é).
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é.
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).
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.
Lors d’une étape E29, les paramètres Wk du réseau de neurones de synthèse NNSYN 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 B 1. 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.
Lors d’une étape E30, une mesure de performance est évaluée.
À cet effet, les débits de simulation de codage associés aux cartes de caractéristiques du premier groupe (simulation du flux B2 par codage des J zones FM J des cartes FM,) et optionnellement aux paramètres du (des) réseau(x) de neurones (simulation du flux B 1 par codage des paramètres Wket optionnellement Ob) sont mesurés.
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 B 1 ; 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.
Tant que la fonction de coût n’a pas atteint son minimum, ou qu’un nombre maximum d’itérations de l’algorithme de minimisation de la fonction de coût a été atteint, la mesure de performance n’est pas satisfaisante, et le procédé est réitéré à partir de l’étape E23. 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 E23 pour les valeurs des cartes de caractéristiques et E26/E27 pour les paramètres du ou des réseau(x).
Lors d’une étape EF, si la fonction de coût a atteint son minimum, ou qu’un nombre maximum d’itérations de l’algorithme de minimisation de la fonction de coût a été atteint, 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 FMj est disponible, les flux B1 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 FM! 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 FMc qui constituent des flux B 1 etB2. Par ailleurs, lors de cette étape, le codage de la segmentation Sg est effectuée pour produire une segmentation encodée des J masques MZocJ qui constitue le flux B3.
Le flux B2 comprend des sous-flux correspondant à chaque zone des cartes de caractéristiques. Lors du codage de chaque zone de latente, il est possible, dans un mode préféré de réalisation, de mettre à un endroit identifiable du flux une information de localisation des sous-flux dans le flux global. Cette information de localisation peut être : un pointeur de flux (qui indique l’adresse du début de chaque sous-flux dans le flux global), ou un marqueur (une série de bits interdite par ailleurs, qui permet de parcourir le flux pour trouver le début de chaque sous-flux), ou tout autre moyen permettant d’identifier une sous-partie d’un flux codé.
Les flux B1 et B2 peuvent être multiplexés et/ou concaténés pour produire un flux final. Selon un mode de réalisation, le flux B3 de la segmentation codée et le flux B 1 des paramètres codés du (des) réseau(x) de neurones sont stockés ou transmis avant le flux B2, afin de pouvoir être décodé(s) avant le flux B2.
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.
Dans ce mode de réalisation, les cartes FM! générées sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7.
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.
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. La carte FMi n’est pas affectée par le sur échantillonnage. (FMSi=FMi). 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).
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.).
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 NNSYN 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’).
Dans un autre mode de réalisation, non représenté, le vecteur Znest 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.
La figure 7 est un logigramme représentant un exemple de procédé de décodage d’une zone à décoder ZodJ qui peut être mis en œuvre par le dispositif de décodage DEC de la figure 2 lorsque le réseau de neurone de synthèse NNSYN’ est par exemple celui présenté à la figure 3.
Lors d’une étape F20, le flux B 1, une partie du flux B2 (celle correspondante aux cartes de caractéristiques de la zone ZodJ) et le flux B3 sont extraits du flux encodé. Ils contiennent respectivement des paramètres Wck, optionnellement des paramètres Ocb, une segmentation Sgc et des représentations codées FMc des M cartes du premier groupe représentatives de la zone à décoder ZodJ.
Lors d’une étape F21, un masque de segmentation MZo1 est généré par décodage des valeurs de l’information de segmentation encodée, ou si cette information n’est pas encodée, obtenue à partir de paramètres du décodeur (taille ou position connue des slices ou des tiles, etc.).
Lors d’une étape F22, les M cartes FMdJ sont générées par décodage des valeurs FMcJ. Pour ce décodage, on utilise le masque MZo1 et 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. Dans un mode de réalisation, les cartes FMdJsont décodées dans un ordre, par exemple lexicographique, (FM d^ . FMdJ 2,... FMdJ M) et les valeurs de chaque carte dans un ordre prédéfini, par exemple en ligne puis en colonne, en prenant en compte le masque MZcL
Selon des modes de réalisation tels que décrits pour le codeur : Les cartes FMdJ sont de même résolution que le signal ZodJ(Pdn) à reconstituer, c’est- à-dire qu’elles comportent N=WxH valeurs.
Les cartes FMdJ sont à une résolution inférieure ou égale à celle du signal ZodJ(Pdn) à reconstituer.
Plusieurs cartes FMdJsont de même résolution, inférieure à la résolution du signal.
Lors d’une étape F23, selon un mode de réalisation, les M cartes du premier groupe FMdJ sont transformées par le module SE’ pour générer des cartes du second groupe FMS'J à la résolution des images d’entré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 :
Selon un mode de réalisation, M cartes FMS'Jsont générées.
Selon un mode de réalisation, chaque carte FMdJ est transformée en une carte FMS'J.
Selon un mode de réalisation, au moins une carte FMdJ 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'J 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'J 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 fdtrage, etc.)
La transformation peut optionnellement comporter une quantification inverse des valeurs extraites, si nécessaire. Cependant la quantification inverse n’est pas obligatoire.
Lors d’une étape F24, des valeurs sont extraites par le module XTR’ des cartes FMdJ ou éventuellement FMS'J transformées 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 E26 qui a été décrite pour le codeur à l’appui de la figure 5, et les modes de réalisation s’appliquent. Notamment :
Dans un mode de réalisation, Zdn est un M-uplet (zi, Z2,. . . , ZM), constitué des valeurs des cartes FMdJ ou FMS'J situées aux coordonnées (xn, yn) d’un pixel courant Pdn, comme il sera illustré à l’appui de la figure 8.
Les échantillons à décoder sont par exemple traités par ordre séquentiel, relativement au masque MZoJ. Selon un mode de réalisation, lors d’une étape F35, un vecteur Zdn est construit par le module TT’ à partir des valeurs extraites des cartes FMdJ du premier groupe ou des cartes FMS'J du second groupe, pour chaque échantillon Pdn de coordonnées (xn, yn) à décoder, en fonction des coordonnées (xn, yn). Cette étape est similaire à l’étape E27 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.
Lors d’une étape F26, les paramètres Wdk du réseau de neurones de synthèse NNSYN’ 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 B 1. 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 NNSYN’ est semblable au réseau de synthèse NNSYN, 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.
Selon un mode de réalisation, le flux B 1 est décodé avant les flux B2 et B3, afin de pouvoir disposer du réseau de neurones de synthèse NNSYN’ et éventuellement du réseau de neurones de prédiction ARM’ avant de commencer à décoder les échantillons. De même, le flux B3 est décodé avant le flux B2 afin de disposer du masque de la zone à décoder avant de commencer à décoder les échantillons.
Lors d’une étape F27, le vecteur Zdn est traité par le réseau de neurones de synthèse NNSYN1 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 de la zone décodée ZodJ(Pdn) aux positions (xn, yn) des composantes couleur (Rd, Gd, Bd). Cette étape est similaire à l’étape E28 qui a été décrite pour le codeur à l’appui de la figure 5.
Lorsque tous les échantillons du signal ont été traités, le signal décodé correspondant à la zone ZodJ (Pdn), est disponible.
Il a été décrit le décodage d'une zone de l'image. Le décodage d'une seconde zone peut être réalisé successivement ou en parallèle, puisque les zones sont codées indépendamment les unes des autres. Si les zones sont décodées en parallèle, il est nécessaire de disposer d'informations indiquant la position précises des sous-flux (de donnés latentes) correspondant aux différentes zones (par exemple des pointeurs de sous-flux). En revanche si les zones sont décodées séquentiellement, on peut passer d'un sous-flux à un autre pour décoder les zones les unes après les autres, sans indication spécifique.
La figure 8 représente de manière illustrée un procédé de décodage d’une zone ZodJ utilisé dans un mode de réalisation de l’invention.
Dans ce mode de réalisation, les cartes décodées FMdJ sont au nombre de 4. Dans un mode préféré, elles sont au nombre de 7.
Dans ce mode de réalisation, les cartes décodées FMdJ sont représentatives seulement de la zone ZodJ. En d’autres termes, seulement les données de la zone ZoLJ (correspondant dans le domaine latent à la zone ZodJ) ont été décodées.
Dans ce mode de réalisation, la première carte FMd^ 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 FMdJ 2 est de résolution moitié (dans chaque dimension) de la carte FMd^. 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.
La carte FMdJ 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 FMdJ 3 est suréchantillonnée d’un facteur 4 dans chaque dimension, et la carte FMd^ d’un facteur 8 dans chaque dimension.
Les cartes FMS'J 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.
Dans ce mode de réalisation, le vecteur Zdn est un 4-uplet (Z1...Z4) constitué des valeurs des cartes FMS'J 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 NNSYN’ 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). 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.
Ces étapes constituent des sous-étapes de l’étape E24 décrite précédemment à l’appui de la figure 5. Elles ont pour but de coder une valeur courante Vn d’une zone ZoLJ d’une carte de caractéristiques FM! du premier groupe en cours de traitement en utilisant des valeurs d’un voisinage de la valeur courante Vn.
Lors d’une sous-étape E241, 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 à 16, 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 FM! Ce vecteur de voisinage est constitué d’un nombre C de valeurs (par exemple, C=4, C=8, C=9 ou C=11 dans les exemples des figures 11 à 16), ou données, correspondant à des valeurs de voisinage de la valeur courante Vn lorsque ces valeurs de voisinage appartiennent à la zone ZoLJ ou à des valeurs de remplacement sinon. Ces valeurs doivent être connues du codeur et du décodeur, elles doivent donc se situer dans un voisinage causal de la valeur Vn.
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 E244. 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 adaptatif ou non 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.
Dans un deuxième mode de réalisation, le voisinage est utilisé pour prédire, au cours d’une étape E242, 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 E244.
Dans un troisième mode réalisation, comme illustré à l’appui des figures 11 à 16, un réseau de neurones de prédiction ARM est utilisé au cours de l’étape E243 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 fv 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 de la zone ZoLJ des cartes FM,. 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).
A l’issue du procédé, la valeur codée courante Vcn de la carte FM! en cours de traitement est codée.
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
Ces étapes constituent des sous-étapes de l’étape F22 décrite précédemment à l’appui de la figure 7. Elles ont pour but de décoder une valeur courante Vdnd’un point d’une carte de caractéristiques FMdJ du premier groupe en cours de traitement en utilisant des valeurs du voisinage.
Lors d’une sous-étape F221, un vecteur de voisinage Cdn est établi, comprenant des valeurs voisines de la valeur Vdn Cette étape est similaire à l’étape E241 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=4, C=8, C=9 ou C=11 dans les exemples des figures 11 à 16) situées dans la même carte ou/et dans une carte différente de la pluralité M de cartes FMdJ. Ces valeurs se situant dans un voisinage causal de la valeur Vdn sont connues du décodeur. 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 F224. 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.
Dans un deuxième mode de réalisation, le voisinage est utilisé pour prédire au cours d’une étape F222 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 décodée puis déquantifiée de manière entropique au cours de l’étape F224.
Dans un troisième mode réalisation, comme illustré à l’appui des figures 11 à 16, un réseau de neurones de prédiction ARM’ est utilisé à l’étape F223 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 fv 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 dé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 son codage a été effectué sans perte. A l’issue du procédé, la valeur décodée courante Vdnde la carte FMdJ en cours de traitement est décodée.
La figure 11 et la figure 12 représentent 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
Dans cette illustration, le codage (rep. décodage) de la valeur courante Vn (resp. Vdn) située en un point courant de coordonnées (xn, yn) dans la zone caractéristique ZoLJ de la carte de caractéristiques courante FM! (resp. FMdJ) utilise l’information contextuelle de cette carte courante. Cette information contextuelle est représenté par un voisinage du point courante Vn. Dans l’exemple présenté ici, le voisinage utilisé comprend 8 points appartenant à un voisinage causal du point courant associé à un masque carré de taille 3x3.
Cette information contextuelle est toutefois conditionnée par la zone caractéristiique ZoLJ dans la carte courante. Plus précisément, l’information contextuelle dépend de la localisation du point courant par rapport à la frontière de la zone ZoLJ. Cette localisation est obtenue par évaluation d'un critère de proximité Cp(Vn) (resp. Cp(Vdn)) du point courant par rapport à une frontière de la zone caractéristique. Dans l’exemple décrit ici, le critère de proximité Cp(Vn) (resp. Cp(Vdn)) est la distance euclidienne entre le point courant et la frontière de zone ZoLJ. En variante, le critère de proximité Cp(Vn) (resp. Cp(Vdn)) peut être une distance de Manhattan, de Minkowski ou de Tchebychev. Dans une autre variante, la distance peut être simplement mesurée en nombre de pixels, par exemple en comptant le nombre de pixels suivant les deux directions d’un repère associés à la carte courante entre le point courant et la frontière de la zone ZoLJ. Dans encore une autre variante, le critère de proximité Cp(Vn) (resp. Cp(Vdn)) peut-être également une quasi-distance ou un écart ou tout autre mesure pertinente indiquant la proximité du point courant à la frontière de la zone ZoLJ.
Deux cas sont alors à distinguer :
Dans le premier cas, le critère de proximité Cp(Vn) (resp. Cp(Vdn)) est supérieur à un seuil S (par exemple prédéfini) et les valeurs des point du voisinage dans la carte courante FM! (resp. FMdJ) sont utilisées pour coder (resp. décoder) la valeur courante Vn (resp. Vdn).
Dans le deuxième cas, le critère de proximité Cp(Vn) (resp. Cp(Vdn)) est inférieur à ce seuil S. Dans ce cas le vecteur de voisinage Cn (resp. Cdn) est défini composante par composante. La valeur d’une composante du vecteur de voisinage Cn (resp. Cdn) est égale à la valeur du point associé du voisinage dans la carte courante si ce point appartient à la zone ZoLJ et à une valeur de remplacement sinon.
La figure 11 illustre le premier cas tandis que la figure 12 illustre le deuxième cas.
Dans la figure 12, les valeurs des points représentées en gris font partie de la zone ZoLJ et sont utilisées pour déterminer des composantes du vecteur de voisinage Cn. Les valeurs des points représentées en blanc n’appartiennent pas à la zone ZoLJ mais à une autre zone ZoLx et ne pouvant être utilisées pour définir le vecteur de voisinage Cn, elles sont remplacées par une valeur de remplacement Rp. Dans un mode de réalisation, tel que celui décrit à la figure 12, la valeur de remplacement est une constante, par exemple égale à la valeur moyenne des valeurs des points de la zone ZoLJ dans la carte courante ou à une valeur constante prédéterminée.
Dans un autre mode de réalisation représenté à la figure 13, la valeur de remplacement est calculée en fonction de la valeur des points du voisinage appartenant à la zone ZoLJ.
Dans un autre mode de réalisation, un ensemble de valeurs de remplacement est calculé en fonction de la valeur des points du voisinage appartenant à la zone ZoLJ. Un réseau de neurone peut être mis en œuvre pour calculer un nombre donné de valeurs de remplacement en fonction des points du voisinage de la zone ZoLJ.
Dans les modes de réalisation précédent, la définition du voisinage du point courant et la dimension du vecteur de voisinage Cn sont indépendantes du critère de proximité Cp(Vn) (resp. Cp(Vdn)). Dans un autre mode de réalisation, cette forme du voisinage et/ou la dimension du vecteur de voisinage Cn peuvent dépendre du critère de proximité Cp(Vn) (resp. Cp(Vdn)).
La figure 14 présente un exemple ou la définition du voisinage est indépendante du critère de proximité Cp(Vn) (resp. Cp(Vdn)) mais ou la dimension du vecteur de voisinage Cn dépend de ce critère de proximité Cp(Vn) (resp. Cp(Vdn)).
Ainsi, lorsque le critère de proximité Cp(Vn) (resp. Cp(Vdn)) est supérieur au seuil S, le vecteur de voisinage Cn est déterminée comme cela a été expliqué en référence à la figure 11.
Par contre, lorsque le critère de proximité Cp(Vn) (resp. Cp(Vdn)) est inférieur au seuil S, le vecteur de voisinage Cn est déterminé de la façon suivante : le nombre de points Np du voisinage causal du point courant appartenant à la zone caractéristique ZoLJ est calculé et le vecteur de voisinage Vn est défini comme un vecteur de dimension Np, et la valeur de chaque point du voisinage du point courant appartenant à la zone ZoLJ est associée, selon un ordre par exemple prédéfini, à une composante différente du vecteur de voisinage Cn.
Par ailleurs, dans les modes de réalisation précédents, l’information contextuelle représentée par le voisinage du point courant est indépendant du critère de proximité Cpn. En variante et comme cela est représenté à la figure 15, la définition du voisinage du point courant peut dépendre du critère de proximité Cpn.
Deux cas sont de nouveau à distinguer : Dans le premier cas, le critère de proximité Cp(Vn) (resp. Cp(Vdn)) est supérieur au seuil S et les valeurs de voisinage de la carte courante FM! (resp. FMdJ) appartenant à un premier voisinage (identique à celui défini précédemment en lien avec la figure 11) sont utilisées pour coder (resp. décoder) la valeur courante Vn (resp. Vdn).
Dans le deuxième cas, le critère de proximité Cp(Vn) (resp. Cp(Vdn)) est inférieur à ce seuil S. Dans ce cas, un deuxième voisinage du point courant est utilisé. Dans l’exemple présenté à la figure 15, le voisinage utilisé est un voisinage causal comprenant 10 points inclus dans un masque de taille 4x3 du point courant. Le vecteur de voisinage Cn (resp. Cdn) du point courant est alors défini composante par composante. La valeur d’une composante du vecteur de voisinage Cn (resp. Cdn) est égale à la valeur du point associé du deuxième voisinage si ce point appartient à la zone ZoLJ et à une valeur de remplacement sinon.
Une fois déterminé, le vecteur de voisinage Cn est utilisé pour coder (resp. décoder) la valeur courante dans l’un des modes de réalisation décrit précédemment à l’appui de la figure 9 (resp. figure 10). la figure 16 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.
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. FMd^ - 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+1), (Xn+l, yn-2), (xn+l, yn-l), (xn+l, yn), (xn+l, yn+l) dans la couche FMi (resp. FMdJ , et la valeur située aux coordonnées (xn, yn) dans la couche FM2 (resp.
FMd2) sont utilisées pour déterminer le voisinage pour coder (resp. décoder) la valeur courante.
Cette information contextuelle est conditionnée par la zone ZoLJ dans la carte courante et dans la carte précédente. L’information contextuelle dépend de la localisation de la valeur courante Vn (resp. Vdn) par rapport à la frontière de la zone ZoLJ dans la carte courante et dans la carte précédente. Le vecteur de voisinage est déterminé différemment selon l'évaluation du critère de proximité Cp(Vn) (resp. Cp(Vdn)). Si le critère de proximité Cp(Vn) (resp. Cp(Vdn)) est supérieur à un seuil S, les valeurs de voisinage de la carte courante et de la carte précédente sont utilisées pour coder (resp. décoder) la valeur courante. Dans le cas contraire, le vecteur de voisinage Cn (resp. Cdn) de la valeur Vn (resp. Vdn) est défini composante par composante. La valeur d’une composante du vecteur de voisinage Cn (resp. Cdn) est égale à la valeur du point associé de la carte courante ou de la carte précédente si ce point appartient à la zone ZoLj et à une valeur de remplacement sinon.
La figure 16 illustre ce dernier cas dans le cas de 9 points d’un voisinage causal inclus dans un masque de taille 3x3 dans la carte courante et d’un pixel dans la carte précédente. Les valeurs représentées en gris font partie de la zone ZoLJ et sont utilisées pour déterminer des composantes du vecteur de voisinage Cn. Les valeurs représentées en blanc n’appartiennent pas à la zone ZoLJ mais à la zone ZoLx et ne pouvant être utilisées pour définir le vecteur de voisinage Cn, elles sont remplacées par une valeur de remplacement Rp.
Une fois déterminé, le vecteur de voisinage Cn est utilisé pour coder (resp. décoder) la valeur courante dans l’un des modes de réalisation décrit précédemment à l’appui de la figure 9 (resp. figure 10).
Dans les modes de réalisation illustrés aux figures 11 à 16, le vecteur de voisinage Cn 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).
On notera par ailleurs que l’invention n’est pas limitée aux modes de réalisation décrits précédemment. Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées aux modes de réalisation décrits ci-dessus, à la lumière de l'enseignement qui vient de lui être divulgué.
Par exemple, les réseaux de neurones de synthèse NNSYN/NNSYN’ peuvent être des réseaux de neurones récurrents.
Dans un autre exemple, les réseaux de neurones de synthèses peuvent être constitués d’un ou plusieurs réseau(x) de neurones convolutif(s), suivi d’un MLP et suivi encore d’un ou plusieurs réseau(x) de neurones convolutif(s), chacun des réseaux de neurones convolutifs étant associé à un noyau de convolution de taille prédéfinie, par exemple de taille 3x3. Dans ces exemples, l’obtention des vecteurs Zn/Zdn est adaptée à la topologie des réseaux de neurones de synthèse NNSYN/NNSYN’, c’est-à-dire que plusieurs valeurs sont extraites dans au moins une carte de caractéristiques FM,. En d’autres termes, Zn est un L-uplet avec L>M, construit à partir de valeurs prélevées dans les cartes FM! à des coordonnées voisines de celles du pixel courant, par exemple sur le support du noyau du filtre de convolution d’un des réseaux de neurones convolutifs.
Dans la présentation détaillée de l’invention qui est faite précédemment, les termes utilisés ne doivent pas être interprétés comme limitant l’invention aux modes de réalisation exposés dans la présente description, mais doivent être interprétés pour y inclure tous les équivalents dont la prévision est à la portée de l'homme de l'art en appliquant ses connaissances générales à la mise en œuvre de l'enseignement qui vient de lui être divulgué.
Selon un mode de réalisation particulier, l’invention vise un procédé de codage d’un signal comportant au moins deux zones, comportant les étapes suivantes pour une zone à coder dudit signal comprenant une pluralité d’échantillons à coder : la construction d’un groupe de cartes de valeurs latentes représentatives du signal, l’obtention d’une segmentation dudit groupe de cartes de valeurs latentes en au moins deux zones caractéristiques, l’une des au moins deux zones caractéristiques, dite zone caractéristique associée, étant associé à ladite zone à coder, pour au moins un échantillon, dit échantillon courant, de la zone à coder, associé à une position dans le signal à coder et à un point de la zone caractéristique associée, dit point associé :
• la construction d’un vecteur caractéristique à partir desdites cartes de valeurs latentes dudit groupe, en fonction de ladite position dudit échantillon courant,
• l’application dudit vecteur caractéristique à l’entrée d’un réseau de neurones artificiels, dit réseau de neurones de synthèse, défini par un ensemble de paramètres, pour obtenir, en sortie dudit réseau de neurone de synthèse, un vecteur représentatif d’une valeur décodée de l’échantillon courant,
• le codage d’une valeur, dite valeur courante dudit point associé, ledit codage de la valeur courante comprenant l’évaluation d'un critère de proximité dudit point associé par rapport à une frontière de ladite zone caractéristique, la construction d’un vecteur de voisinage dudit point associé à partir d’un voisinage dudit point associé dans lesdites cartes de valeurs latentes dudit groupe et de l’évaluation dudit critère de proximité, et un codage entropique de ladite valeur courante en fonction dudit vecteur de voisinage, et
• la mise à jour d'au moins une valeur d’une desdites cartes de valeurs latentes dudit groupe et/ou d’au moins un paramètre dudit réseau de neurones de synthèse, en fonction d’une mesure de performance de codage, le codage d’un groupe de cartes de valeurs latentes représentatives de ladite zone à coder dudit signal, et le codage dudit ensemble de paramètres dudit réseau de neurones de synthèse.
Selon un mode de réalisation particulier, l’invention vise aussi un procédé de décodage d’une zone, dite zone à décoder, d’un signal comportant au moins deux zones, ladite zone à décoder comprenant une pluralité d’échantillons à décoder, ledit procédé de décodage comportant les étapes suivantes : le décodage d’un groupe de cartes de valeurs latentes représentatives de ladite zone à décoder dudit signal, ledit décodage comprenant
• la détermination dans lesdites cartes de valeurs latentes dudit groupe d’une zone caractéristique correspondant à ladite zone à décoder dudit signal,
• pour au moins une valeur, dite valeur courante, d’un point de ladite zone caractéristique, l’évaluation d'un critère de proximité dudit point par rapport à une frontière de ladite zone caractéristique, la construction d’un vecteur de voisinage dudit point à partir d’un voisinage dudit point dans lesdites cartes de valeurs latentes dudit groupe et de l’évaluation dudit critère de proximité, et un décodage entropique de ladite valeur courante en fonction dudit vecteur de voisinage, le décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones, dit réseau de neurones de synthèse, et le traitement dudit groupe de cartes de valeurs latentes par le réseau de neurones de synthèse. Le procédé de décodage (et de façon symétrique le procédé de codage) peut en outre comporter une ou plusieurs des caractéristiques optionnelles suivantes, prises isolément ou bien selon n’importe quelle combinaison techniquement possible : le voisinage dudit point est indépendant de ladite évaluation du critère de proximité. Selon une autre caractéristique, le voisinage dudit point est sélectionné en fonction de ladite évaluation du critère de proximité lors de la construction du vecteur de voisinage, une composante du vecteur de voisinage est associée à un point dudit voisinage, la valeur de ladite composante étant égale à la valeur dudit point associé si ledit point associé est un point de ladite zone caractéristique et à une valeur de remplacement, sinon. la valeur de remplacement est dépendante des points de ladite zone caractéristique ou des points associés audit voisinage appartenant à ladite zone caractéristique. la valeur de remplacement ne dépend pas des points de ladite zone caractéristique. le voisinage dudit point est sélectionné en fonction dudit point. la construction du vecteur de voisinage comprend : l’identification des points dudit voisinage appartenant à ladite zone caractéristique, dit points identifiés, l’initialisation du nombre de composantes dudit vecteur de voisinage au nombre de points identifiés, et l’affectation de la valeur de chaque point identifié à une composante différente dudit vecteur de voisinage. le critère de proximité dudit point par rapport à une frontière de ladite zone caractéristique est une distance. le procédé de décodage comprend en outre une étape d’obtention d’une segmentation dudit signal en au moins deux zones et ladite zone caractéristique est déterminée à partir de ladite segmentation dudit signal. le procédé de décodage comprend en outre une étape d’obtention d’un masque de ladite zone à décoder dans ledit signal et ladite zone caractéristique est déterminée à partir dudit masque. le vecteur de voisinage est utilisé pour déterminer un contexte du décodage entropique de ladite valeur courante. le décodage entropique de ladite valeur courante comprend une étape de prédiction de ladite valeur courante en fonction dudit vecteur de voisinage. le décodage de ladite valeur courante d’une desdites cartes de valeurs latentes comprend : - le décodage d’un ensemble de paramètres représentatifs d’un réseau de neurones, dit réseau de neurones de prédiction, et le traitement dudit vecteur de voisinage par le réseau de neurones de prédiction, pour fournir une prédiction de ladite valeur courante.

Claims

Revendications
1. Procédé de codage d’un signal (I(Pn)) comportant au moins deux zones, comportant les étapes suivantes pour une zone (Zo1) comprenant une pluralité d’échantillons (Pn) à coder : la construction (E22) d’au moins une carte de caractéristiques représentative de ladite zone, pour au moins un échantillon de ladite zone (/o’), dit échantillon courant (Pn), associé à un point dans ladite au moins une carte de caractéristiques, le codage d’une donnée associée audit point, dite valeur courante (Vn), comprenant : o l’évaluation (F221) d'un critère de proximité dudit point par rapport à une frontière associée à ladite zone, o la construction (F221) d’un vecteur de voisinage (Cn) dudit point en fonction dudit critère de proximité, et o un codage entropique (F223, F224) de ladite valeur courante à partir dudit vecteur de voisinage (Cn), la mise à jour (E23, E26, E27) d'au moins une valeur de ladite carte de caractéristiques, en fonction d’une mesure de performance de codage, le codage de ladite carte de caractéristiques (FMcJ) représentative de ladite zone.
2. Procédé de décodage d’un flux de données représentatif d’un signal segmenté en zones, ledit procédé de décodage comportant les étapes suivantes, pour une zone (ZodJ ): le décodage d’au moins une carte de caractéristiques (FMdJ) représentative de ladite zone (ZodJ), le décodage comprenant, pour au moins un point de ladite carte (FMdj) :
• l’évaluation d'un critère de proximité dudit point par rapport à une frontière associée à ladite zone,
• la construction (F221) d’un vecteur (Cn), dit vecteur de voisinage dudit point, en fonction dudit critère de proximité, et
• un décodage entropique (F224) d’une donnée associée au point, dite valeur courante (Vn), à partir dudit vecteur de voisinage (Cn), l’application d’un réseau de neurones (NNSYN’) à ladite au moins une carte de caractéristique décodée.
3. Procédé de décodage selon la revendication 2 comportant en outre une étape de décodage (F26) d’un ensemble de paramètres (Wdk) représentatifs dudit réseau de neurones de synthèse (NNSYN’).
4. Procédé de décodage selon la revendication 2 comportant en outre une étape de décodage (F26) d’une information de segmentation pour déterminer (F21), dans ladite au moins une carte de caractéristiques (FMdJ ), une zone caractéristique (ZoLJ) correspondant à ladite zone (ZodJ).
5. Procédé de décodage selon la revendication 2 dans lequel le voisinage dudit point est indépendant de ladite évaluation du critère de proximité.
6. Procédé de décodage selon la revendication 2 dans lequel le voisinage dudit point est sélectionné en fonction de ladite évaluation du critère de proximité
7. Procédé de décodage selon l’une quelconque des revendications 4 à 6 dans lequel, lors de la construction du vecteur de voisinage, une composante du vecteur de voisinage est associée à un point dudit voisinage, la valeur de ladite composante étant égale à la valeur dudit point associé si ledit point associé est un point de ladite zone caractéristique (ZoLJ), et à une valeur de remplacement, sinon.
8. Procédé de décodage selon la revendication précédente dans lequel ladite valeur de remplacement est dépendante des points de ladite zone caractéristique (ZoLJ) ou des points associés audit voisinage appartenant à ladite zone caractéristique (ZoLJ).
9. Procédé de décodage selon la revendication 7 dans lequel ladite valeur de remplacement ne dépend pas des points de ladite zone caractéristique (ZoLJ).
10. Procédé de décodage selon l’une quelconque des revendications 4 à 9 dans lequel la construction du vecteur de voisinage (Cn) comprend : l’identification des points dudit voisinage appartenant à ladite zone caractéristique (ZoLJ), dit points identifiés, l’initialisation du nombre de composantes dudit vecteur de voisinage (Cn) au nombre de points identifiés, et l’affectation de la valeur de chaque point identifié à une composante différente dudit vecteur de voisinage (Cn).
11. Procédé de décodage selon l’une quelconque des revendications 2 à 10 dans lequel ledit critère de proximité dudit point par rapport à une frontière d’une zone est une distance.
12. Procédé de décodage selon l’une quelconque des revendications 2 à 11 dans lequel ledit vecteur de voisinage (Cn) est utilisé pour déterminer un contexte du décodage entropique de ladite valeur courante (Vn).
13. Procédé de décodage selon l’une quelconque des revendications 2 à 12 dans lequel ledit décodage entropique de ladite valeur courante (Vn) comprend une étape de prédiction de ladite valeur courante en fonction dudit vecteur de voisinage (Cn).
14. Procédé de décodage selon l’une quelconque des revendications 2 à 13, caractérisé en ce que le décodage de ladite valeur courante (Vn) d’une desdites cartes de caractéristiques comprend : le décodage d’un ensemble de paramètres (Odk) représentatifs d’un réseau de neurones, dit réseau de neurones de prédiction (ARM’), et le traitement 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).
15. Dispositif de codage (ENC) d’un signal (I(Pn)) comportant au moins deux zones, caractérisé en ce que ledit dispositif de codage comprend un processeur couplé à une mémoire dans laquelle sont enregistrées des instructions configurées pour mettre en œuvre pour une zone (Zo1) dudit signal comprenant une pluralité d’échantillons (Pn) à coder : la construction (E22) d’au moins une carte de caractéristiques représentative de ladite zone, pour au moins un échantillon, dit échantillon courant (Pn), de ladite zone (/o’), associé à un point dans ladite au moins une carte de caractéristiques, le codage d’une donnée associée audit point, dite valeur courante (Vn), comprenant :
• l’évaluation (F221) d'un critère de proximité dudit point par rapport à une frontière de ladite zone,
• la construction (F221) d’un vecteur de voisinage (Cn) dudit point en fonction dudit critère de proximité, et • un codage entropique (F223, F224) de ladite valeur courante en fonction dudit vecteur de voisinage (Cn), la mise à jour (E23, E26, E27) d'au moins une valeur de ladite carte de caractéristiques, en fonction d’une mesure de performance de codage, le codage de ladite carte de caractéristiques (FMc ) représentative de ladite zone.
16. Dispositif de décodage d’un flux de données représentatif d’un signal segmenté en zones, le dispositif comprenant un processeur couplé à une mémoire dans laquelle sont enregistrées des instructions configurées pour mettre en œuvre les étapes suivantes, pour une zone (ZodJ ): le décodage d’au moins une carte de caractéristiques (FMdJ) représentative de ladite zone (ZodJ), le décodage comprenant, pour au moins un point de ladite carte (FMdj) :
• l’évaluation d'un critère de proximité dudit point par rapport à une frontière de ladite zone,
• la construction (F221) d’un vecteur de voisinage (Cn) dudit point en fonction dudit critère de proximité, et
• un décodage entropique (F224) d’une donnée associée au point, dite valeur courante (Vn), à partir du vecteur de voisinage (Cn), l’application d’un réseau de neurones (NNSYN’) à ladite au moins une carte de caractéristique décodée.
17. Programme d’ordinateur comportant des instructions pour l’exécution des étapes d'un procédé de codage selon la revendication 1 ou de décodage selon l’une quelconque des revendications 2 à 14 lorsque ledit programme est exécuté par un ordinateur.
PCT/EP2025/068302 2024-06-27 2025-06-27 Procédé et dispositif de codage et décodage d'un signal Pending WO2026003293A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2406992 2024-06-27
FR2406992A FR3164087A1 (fr) 2024-06-27 2024-06-27 Procédé et dispositif de codage et décodage d’images

Publications (1)

Publication Number Publication Date
WO2026003293A1 true WO2026003293A1 (fr) 2026-01-02

Family

ID=92710853

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2025/068302 Pending WO2026003293A1 (fr) 2024-06-27 2025-06-27 Procédé et dispositif de codage et décodage d'un signal

Country Status (2)

Country Link
FR (1) FR3164087A1 (fr)
WO (1) WO2026003293A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2984839B1 (fr) * 2013-04-08 2020-05-27 GE Video Compression, LLC Concept de codage permettant un codage multi-vues/de couche efficace
FR3143245A1 (fr) * 2022-12-09 2024-06-14 Orange Procédé et dispositif de codage et décodage d’images.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2984839B1 (fr) * 2013-04-08 2020-05-27 GE Video Compression, LLC Concept de codage permettant un codage multi-vues/de couche efficace
FR3143245A1 (fr) * 2022-12-09 2024-06-14 Orange Procédé et dispositif de codage et décodage d’images.

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEGUAY THOMAS ET AL: "Cool-chic video: Learned video coding with 800 parameters", 2024 DATA COMPRESSION CONFERENCE (DCC), IEEE, 19 March 2024 (2024-03-19), pages 23 - 32, XP034607827, DOI: 10.1109/DCC58796.2024.00010 *
LI BINGLIN ET AL: "Variable-Rate Deep Image Compression With Vision Transformers", vol. 10, 9 May 2022 (2022-05-09), pages 50323 - 50334, XP093016117, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/ielx7/6287639/9668973/09770776.pdf?tp=&arnumber=9770776&isnumber=9668973&ref=aHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2Fic3RyYWN0L2RvY3VtZW50Lzk3NzA3NzY=> DOI: 10.1109/ACCESS.2022.3173256 *

Also Published As

Publication number Publication date
FR3164087A1 (fr) 2026-01-02

Similar Documents

Publication Publication Date Title
FR3143245A1 (fr) Procédé et dispositif de codage et décodage d’images.
WO2024240496A1 (fr) Procédé et dispositif de codage et décodage d&#39;images
FR3026261A1 (fr) Procede de codage et de decodage d&#39;images integrales, dispositif de codage et de decodage d&#39;images integrales et programmes d&#39;ordinateur correspondants
WO2019015884A1 (fr) Procede de decodage d&#39;une image, procede de codage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
WO2017129880A1 (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
FR3164087A1 (fr) Procédé et dispositif de codage et décodage d’images
WO2026003294A1 (fr) Procédé et dispositif de codage et décodage d&#39;un signal
WO2026003354A1 (fr) Procédé et dispositif de codage et décodage d&#39;un signal
FR3164088A1 (fr) Procédé et dispositif de codage et décodage d’images
WO2024260629A1 (fr) Procédé et dispositif de codage et décodage de séquences d&#39;images
WO2024260628A1 (fr) Procédé et dispositif de codage et décodage de séquences d&#39;images
FR3143248A1 (fr) Procédé et dispositif de codage et décodage d’images.
FR3143246A1 (fr) Procédé et dispositif de codage et décodage d’images.
FR3143247A1 (fr) Procédé et dispositif de codage et décodage de séquences d’images.
WO2025056651A1 (fr) Procédé et dispositif de codage et décodage de séquences d&#39;images
FR3167811A3 (fr) Procédé et dispositif de codage et décodage d’images
FR3167810A3 (fr) Procédé et dispositif de codage et décodage d’images
WO2026087142A1 (fr) Procédé et dispositif de codage et décodage d&#39;images
FR3167813A3 (fr) Procédé et dispositif de codage et décodage d’images
FR3167812A3 (fr) Procédé et dispositif de codage et décodage d’images
WO2025120066A1 (fr) Procédé et dispositif de codage et décodage contextuel de séquences d&#39;images
WO2024240497A1 (fr) Procédé et dispositif de codage et décodage d&#39;images.
FR3153177A1 (fr) Procédé et dispositif de codage et décodage d’images.
WO2025261758A1 (fr) Procédés de codage et de décodage, dispositifs et programme d&#39;ordinateur correspondants
WO2006056720A1 (fr) Compression video par modification de quantification par zones d&#39;images

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25737220

Country of ref document: EP

Kind code of ref document: A1