WO2024003191A1 - Procédé et dispositif de décodage, programme d'ordinateur et flux de données associés - Google Patents

Procédé et dispositif de décodage, programme d'ordinateur et flux de données associés Download PDF

Info

Publication number
WO2024003191A1
WO2024003191A1 PCT/EP2023/067734 EP2023067734W WO2024003191A1 WO 2024003191 A1 WO2024003191 A1 WO 2024003191A1 EP 2023067734 W EP2023067734 W EP 2023067734W WO 2024003191 A1 WO2024003191 A1 WO 2024003191A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data packet
neural network
artificial neural
packet
Prior art date
Application number
PCT/EP2023/067734
Other languages
English (en)
Inventor
Félix Henry
Gordon Clare
Mohsen ABDOLI
Original Assignee
Fondation B-Com
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 Fondation B-Com filed Critical Fondation B-Com
Publication of WO2024003191A1 publication Critical patent/WO2024003191A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit

Definitions

  • the present invention relates to the technical field of coding audio or video content.
  • It relates in particular to a decoding method and device, as well as an associated computer program and data stream.
  • the present invention proposes a method for decoding a data stream comprising data packets each comprising at least first data and second data, characterized in that it comprises the following steps:
  • the data making it possible to obtain the artificial neural network and the data decodable using this artificial neural network to reproduce the audio or video content are thus transported in respective data packets, which facilitates their identification and use at the time of decoding.
  • the first data packet, which contains the data making it possible to obtain the artificial neural network is in this regard specifically identified by means of the information indicative of the predetermined type of data packet.
  • the second data of the first data packet includes, for example, descriptive data of the artificial neural network; the processing step can then be a step of decoding the descriptive data to obtain parameters of the artificial neural network.
  • the first data packet may also include an identifier of the artificial neural network.
  • This identifier may be an element of a list of distinct identifiers associated respectively with distinct artificial neural networks.
  • the method may also comprise a step of receiving a third data packet whose first data includes information indicative of said predetermined type of packet, and comprising said identifier, and/or a step of reusing said artificial neural network obtained for decode second data included in a fourth data packet among said data packets.
  • the presence of the identifier in the third data packet indicates that this third data packet also contains data that can be used to obtain the artificial neural network defined in the first data packet, and this artificial neural network can therefore be reused without having to process the data from the third data packet again.
  • the second data packet may also include said identifier.
  • the identifier included in the first data packet and the identifier included in the second data packet are identical.
  • the identifier can make it possible in this case to indicate that it is the artificial neural network defined in the first data packet (which contains this identifier) which must be used to decode the data contained in the second data packet (which also contains the identifier in this case).
  • the method may include a step of receiving another data packet containing parameters relating to at least one image of said content; in this case, these parameters may include said identifier.
  • the neural network artificial images defined in the first data packet will then be used to decode the data making it possible to obtain said at least one image of the content.
  • the first data packet is, among the data packets whose first data includes information indicative of said predetermined type of packet, the last packet preceding the second data packet in the data flow.
  • the artificial neural network to be used for decoding the data of the second packet is thus that defined in the last packet received having the predetermined type.
  • the second data packet comprises a pointer to the first data packet.
  • the process can include the following steps:
  • the process may also comprise the following steps:
  • the pointer can designate for example a location in a part of the data stream relating to a sequence of images distinct from the sequence of images encoded at least in part by the second data of the second data packet.
  • the first data packet may include information indicative of the coding format of the second data of the first data packet.
  • the first data packet can start with a predefined marker and the second data packet can in this case also start with said predefined marker.
  • a marker identifies the start of the data packets.
  • the first data of a data packet are for example included in a header of this data packet, while the second data can then be included the payload data (in English "payload") of this data packet.
  • the invention also proposes a device for decoding a data stream comprising data packets each comprising at least first data and second data, characterized in that it comprises a processor configured or programmed to:
  • the invention also proposes a computer program comprising instructions executable by a processor and designed to implement a method as proposed above, when these instructions are executed by the processor.
  • the invention finally proposes a data flow comprising data packets each comprising at least first data and second data, characterized in that the data packets comprise:
  • FIG. 1 represents the main elements of a coding device
  • FIG. 2 schematically represents a first possible embodiment for a coding module of the coding device of Figure 1;
  • FIG. 3 schematically represents a second possible embodiment for the coding module of the coding device of Figure 1;
  • FIG. 10 represents the main elements of a decoding device
  • Figure 1 1 schematically represents a first possible embodiment for a decoding module of the decoding device of Figure 10;
  • FIG. 12 schematically represents a second possible embodiment for the decoding module of the decoding device of Figure 10;
  • FIG. 13 is a flowchart presenting steps of a decoding process
  • FIG. 14 is a flowchart showing steps of a possible method for decoding the data stream of Figure 5;
  • FIG. 15 is a flowchart showing steps of a possible method for decoding the data stream of Figure 6;
  • FIG. 16 is a flowchart showing steps of a possible method for decoding the data stream of Figure 7;
  • FIG. 17 is a flowchart showing steps of a possible method for decoding the data stream of Figure 8. It should be noted that, in these figures, the structural and/or functional elements common to the different variants may have the same references.
  • Figure 1 represents a coding device used in the context of the invention.
  • This coding device comprises a management module 2, a coding module 4, a flow formation module 6 and a flow transmission module 8.
  • Each of these modules can be produced in practice by a programmed processor (for example by means of instructions stored in a memory associated with the processor) to implement the functionalities described below for the module concerned (in this example, because execution by the processor of some of the aforementioned instructions). Furthermore, several modules can in practice be implemented using the same processor, for example due to the execution (by this processor) of several sets of instructions corresponding respectively to the different modules. Alternatively, one or the other of the modules can be produced using a specific application integrated circuit.
  • the management module 2 is configured to control the operation of the coding module 4, in particular to determine which coding process must be used to encode data B representative of audio or video content, as will be explained below.
  • the coding module 4 is configured to receive as input this data B representative of audio or video content and to generate at output, on the basis of at least part of the data B, a coded representation C of this content.
  • the size of the coded representation C (in number of bits) is normally less than the size of the corresponding data B (in number of bits).
  • the data B includes for example values respectively associated with pixels of an image (or a component of an image) of the video sequence.
  • the data B can thus be luminance values or chrominance values respectively associated with pixels of a component of an image of the video sequence concerned.
  • data B is data representative of a sound signal, for example in the WAV format (used for storing audio compact discs).
  • the coding module 4 uses at least one artificial neural network N, N'.
  • the data B representative of the audio or video content are applied as input to the artificial neural network N, which then generates as output a corresponding part of the coded representation C.
  • the data B applied as input to the artificial neural network N can represent a block of an image, or a block of a component of an image (for example a block of a luminance or chrominance component of this image, or a block of a color component of this image), or an image of a video sequence, or a component of an image of a video sequence (for example a luminance or chrominance component, or a color component), or even a series of images of the video sequence.
  • the neurons of the input layer each receive a pixel value of a component of an image, value represented by one of the data B.
  • the coding module 4 applies to the data B representative of the audio or video content a processing comprising several steps, at least one step of which is carried out by means of an artificial neural network N'.
  • a part Cj-i previously obtained from the coded representation is applied as input to the artificial neural network N', which makes it possible to generate predicted data at the output of the artificial neural network N' Pj which are subtracted from the current data Bj so as to obtain (at the output of the coding module 4) a part Cj of the coded representation corresponding to the current data Bj.
  • the reference 10 represents a delay module to illustrate the fact that at the instant of processing of the current data Bj to obtain the part Cj of the corresponding coded representation, it is a previously obtained part Cj-i of the coded representation which is applied as input to the artificial neural network N'.
  • the part Cj-i is for example previously obtained by processing (by the coding module 4) of data Bj-i relating to an image preceding the image represented by the current data Bj.
  • the previously obtained part used as input to the artificial neural network N' can be a coded representation part corresponding to at least one block of the image neighboring the block whose pixel values are represented by the current data Bj.
  • the management module 2 determines which coding process (that is to say what processing carried out by the coding module 4) must be used for the coding of a set of data B representative of the audio content or video.
  • the management module 2 thus determines in particular which artificial neural network N, N' must be used within the coding module 4.
  • the data set B for which the management module 2 determines the process (and in particular the artificial neural network N, N') to use depends on the application concerned.
  • This set of data B is for example the set of data B relating to a given image or the set of data B relating to a given sequence of images.
  • the management module 2 selects for example the artificial neural network N, N' to be used when coding the data set B from among a plurality of predefined artificial neural networks, for example in order to minimize a rate-distortion criterion (which takes into account the size of the encoded representation C and the distortion between the content represented by the data B and the content reconstructed on the basis of the encoded representation C).
  • a rate-distortion criterion which takes into account the size of the encoded representation C and the distortion between the content represented by the data B and the content reconstructed on the basis of the encoded representation C.
  • the management module 2 carries out a training step of the artificial neural network N, N' so as to optimize a given criterion (for example the aforementioned distortion rate criterion) during the processing of the data set B concerned, and commands the coding module 4 to use the artificial neural network thus trained for the generation of the coded representation C on the basis of the set of data B concerned.
  • a given criterion for example the aforementioned distortion rate criterion
  • the management module 2 can thus produce (intended in particular for the flow formation module 6) information i indicative of the artificial neural network to be used during the decoding of the coded representation C. Specifically, the management module 2 can provide a such information i for each part C of the coded representation associated with a set of data B as defined above.
  • the artificial neural network to be used for decoding the encoded representation C is distinct from the artificial neural network N.
  • the artificial neural network to be used for decoding the coded representation C is designed (that is to say in practice trained) so as to minimize the distortion of the data B during their successive passages through the network of artificial neurons N (to produce the coded representation C) and through the network of artificial neurons to be used for decoding, and/or to minimize the size of the coded representation C (in the sense of a rate-distortion criterion).
  • the management module 2 selects the artificial neural network N from a plurality of predefined artificial neural networks
  • the artificial neural network to be used for decoding is the one associated in a predefined manner with the artificial neural network N selected.
  • the information i can then designate (for example within a list of artificial neural networks) this network associated with the selected artificial neural network N.
  • this training step can allow the simultaneous training of the artificial neural network to be used for decoding.
  • the information i can then include descriptive data of the artificial neural network to be used for decoding (this descriptive data can include for example weights respectively associated with the neurons of this artificial neural network and determined during the training step ).
  • the flow training module 6 receives the coded representation C produced by the coding module 4 and the information i provided by the management module 2, and constructs a data flow F on the basis of these elements.
  • the training module of flow 6 can of course receive in practice other data from the coding module 4 and/or the management module 6.
  • the flow formation module 6 constructs the data flow F in the form of different data packets intended to be successively communicated (for example transmitted) to the decoding device.
  • These data packets are for example respectively units of the network abstraction layer (in English “NAL units” for “Network Abstraction Layer units”).
  • each data packet begins with a predefined marker M (that is to say formed of a predefined sequence, or predefined pattern, of bits). Any data packet therefore begins here with the same marker M, which makes it possible to identify the start of a data packet upon receipt of the stream. For example, we propose that the value corresponding to the marker M (that is to say the sequence of bits forming the marker M) be prohibited within the data stream F outside the start of the data packets.
  • Each data packet here further comprises a type identifier which designates the type of the data packet concerned from a predetermined set of possible types.
  • T1 a data packet carrying descriptive data from an artificial neural network (to be used for decoding), designated by a first type identifier, denoted T1 in the following;
  • a data packet carrying coded data representing audio or video content (that is to say here the coded representation C obtained by means of the coding module 4), designated by a second type identifier, denoted T2 in the following ;
  • T3 a data packet carrying parameters relating to the audio or video content, or to the decoding process to be used, designated by a third identifier, denoted T3 below;
  • T4 a data packet carrying coded data representing audio or video content, this coded data being however obtained by a separate coding process (and therefore requiring a separate decoding process) from the aforementioned coded data contained in the data packets of type T2, this latter type of data packet being designated by a fourth identifier denoted T4 below.
  • data packets containing a coded representation of the content data packets of types T2 and T4 in the example described here
  • data packets containing descriptive data from an artificial neural network for example data coded according to a given format and representing this artificial neural network
  • data packets containing parameters here data packets of type T3
  • the data packets containing descriptive data of an artificial neural network include:
  • an NNI identifier associated with the artificial neural network concerned (the NNI identifier being part of a predetermined set of identifiers respectively associated with different artificial neural networks);
  • an NNF format identifier indicating the format of the NNC descriptive data contained in the data packet
  • this NNC descriptive data forming second data for this data packet.
  • the T1 type identifier and possibly the NNI identifier and/or the NNF format identifier are for example included in a header of the data packet; the NNC descriptive data can then form the useful data (in English "payload") of the data packet.
  • the description (or coding) format of the NNC descriptive data may for example be the NNR format (MPEG-7 part 17), the NNEF format or the ONNX format.
  • the NNF format identifier may alternatively designate a format accepted by an artificial neural network manipulation tool, or even a format of an artificial neural network identifier among a predetermined set of artificial neural networks (the NNC data then including such an identifier).
  • the flow formation module 6 receives as already indicated (from the management module 2) l information i indicative of the decoding artificial neural network to be used for decoding part C.
  • the flow formation module 6 can thus determine on the basis of this information i which NNC descriptive data must be placed in a data packet of given type T1, as will emerge from the examples given below.
  • all data packets containing descriptive data of an artificial neural network that is to say here all data packets of type T1 comprising a given NNI identifier include identical NNC descriptive data.
  • the data packets containing a coded representation of the content include:
  • T2 or T4 the type being one of the types available for the coded representation of the content
  • an NNI identifier associated with an artificial neural network (according to the same association rule as mentioned above for T1 type data packets), this artificial neural network being the one to be used for decoding the encoded representation of the content contained in this data packet;
  • an NNL location identifier such as a file pointer which indicates the location in the data stream of a data packet containing descriptive data of the artificial neural network to be used for decoding the encoded representation of the content contained in this data package;
  • a remote description indicator DNN indicating whether a data packet containing descriptive data of the artificial neural network to be used is present in the part of the data flow relating to the current image sequence or in part of the data flow relating to an image sequence different from the current image sequence; - the coded representation of the content C concerned (which is a part of the coded representation generated by the coding module 4 and forms the second data for this data packet).
  • An image sequence here is a set of images that can be obtained by decoding part of the coded representation of the content (here video) without requiring access to another part of the coded representation of the content (here of the video).
  • the type identifier T2, T4 and possibly the identifier NNI and/or the location identifier NNL and/or the remote description indicator are for example included in a header of the data packet; the coded representation C can then form the payload data (in English "payload") of the data packet.
  • certain packets may have a particular type to identify an entry point into the data flow (here the type corresponding to the identifier T4 in the example described below).
  • the type corresponding to the identifier T4 in the example described below.
  • only packets of this type can contain an NNI identifier or an NNL location identifier.
  • the identifier NNI and/or the location identifier NNL and/or the remote description indicator DNN could be contained in a data packet carrying parameters relating to an image or a sequence of images (T3 type data packet in the example described here).
  • the flow formation module 6 constructs the data flow F so that any data packet containing a coded representation of the content (data packet of type T2 or T4) and a given NNI identifier is preceded ( in the data flow F) by a data packet of type T1 also containing this given NNI identifier (and thus descriptive data of the artificial neural network designated by this given NNI identifier).
  • the data stream comprises a data packet 12 of type T1 and a data packet 14 (later in the data stream relative to packet 12) of type T2.
  • the data packet 12 comprises the marker M, a type identifier having the value T1, an identifier NNI associated with a given artificial neural network, a format identifier NNF indicating the format of the descriptive data NNC (mentioned below) and these descriptive NNC data of the given artificial neural network.
  • the data packet 14 includes the marker M, a type identifier having the value T2, the identifier NNI associated with the given artificial neural network (identical to the identifier contained in the data packet 12) and part of the representation coded C generated by the coding module 4 and decodable using in particular the given artificial neural network.
  • the data stream includes in this order a data packet 16, a data packet 18 and a data packet 20. (Other data packets may be present in the data stream between the data packet 16 and data packet 18, and/or between data packet 18 and data packet 20.)
  • the data packet 16 includes the marker M, a type identifier having the value T1, an identifier NNI associated with a given artificial neural network, and NNC data descriptive of the given artificial neural network.
  • the data packet 18 comprises the marker M, a type identifier having the value T3 (corresponding as indicated above to a data packet containing parameters relating to a given image or a given sequence of images) and ( among these parameters) an NNI identifier associated with the given artificial neural network.
  • the data packet 20 comprises the marker M, a type identifier having the value T2 and part of the coded representation C generated by the coding module 4 and decodable using in particular the given artificial neural network.
  • the data stream includes a data packet 22 and, later in the data stream, a data packet 24.
  • the data packet 22 includes the marker M, a type identifier having the value T1, possibly an identifier NNI associated with a given artificial neural network, and NNC data descriptive of the given artificial neural network.
  • the data packet 24 includes the marker M, a type identifier having the value T2 and part of the coded representation C generated by the coding module 4 and decodable using in particular the given artificial neural network.
  • the data stream includes in this order a data packet 26, a data packet 28 and a data packet 30. (Other data packets may be present in the data stream between the data packet 26 and data packet 28, and/or between data packet 28 and data packet 30.)
  • the data packet 26 includes the marker M, a type identifier having the value T1, an identifier NNI associated with a given artificial neural network and NNC data descriptive of the given artificial neural network.
  • the data packet 28 includes the marker M, a type identifier having the value T4 (corresponding as already indicated to an entry point in the flow), the identifier NNI associated with the given artificial neural network (identical to the identifier contained in the data packet 26) and a part C of the coded representation generated by the coding module 4 and decodable using in particular the given artificial neural network.
  • the data packet 30 comprises the marker M, a type identifier having the value T2 and another part C' of the coded representation generated by the coding module 4 and decodable using in particular the given artificial neural network.
  • the data stream includes in this order a data packet 32, a data packet 34, a data packet 36 and a data packet 38. (Other data packets may be present in the data stream data between these different packets.)
  • the data packet 32 includes the marker M, a type identifier having the value T4 (corresponding as already indicated to an entry point in the flow), a remote description indicator DNN, a location identifier NNL and a part C of the coded representation generated by the coding module 4.
  • the data packet 34 includes the marker M, a type identifier having the value T2 and another part C' of the coded representation generated by the coding module 4.
  • the data packets 32 and 34 relate to the same sequence of images S, that is to say that the parts C, C' of the coded representation are part of a set of coded data allowing the decoding of a set of images without resorting to coded data located outside this set of coded data.
  • the data packet 36 includes the marker M, a type identifier having the value T1 and NNC data descriptive of an artificial neural network.
  • the data packet 38 includes the marker M, a type identifier having the value T2 and a part C” of the coded representation generated by the coding module 4.
  • Data packets 36 and 38 relate to the same sequence of images S' which is distinct from the sequence of images S.
  • the remote description indicator DNN contained in the data packet 32 indicates that the artificial neural network to be used for decoding part C (and part C') of the encoded representation is not described by data descriptive contents contained in the image sequence S, but outside this image sequence S (here in the image sequence S').
  • the data packet 32 thus includes the location identifier NNL already mentioned, which is here a pointer to the data packet 36 (located in the image sequence S').
  • Such a pointer can be for example:
  • this difference can be signed, that is to say have a positive value to indicate a number of bytes in one direction - within the data stream - or a negative value to indicate a number of bytes in the other direction);
  • the data stream includes in this order a data packet 40, a data packet 42, a data packet 44 and a data packet 46. (Other data packets may be present in the data stream data between these different packets.)
  • the data packet 40 includes the marker M, a type identifier having the value T1, an identifier NNI associated with a given artificial neural network and NNC data descriptive of the given artificial neural network.
  • the data packet 42 comprises the marker M, a type identifier having the value T2, the identifier NNI (identical to that contained in the data packet 40) and a part C of the coded representation generated by the coding module 4 and decodable using in particular the given artificial neural network.
  • the data packet 44 comprises the marker M, the type identifier having the value T1, the identifier NNI associated with the given artificial neural network and the NNC data descriptive of the given artificial neural network (this NNC data being identical to the data NNC contained in data packet 40).
  • the data packet 46 comprises the marker M, the type identifier having the value T2, the identifier NNI (identical to that contained in the data packets 40, 42 and 44) and another part C' of the coded representation generated by the coding module 4 and decodable using in particular the given artificial neural network.
  • Another data packet 44 of type T1 and containing the NNC data descriptive of the artificial neural network identified by the identifier NNI allows the decoding device to possibly read the data stream in an order different from that represented in Figure 9, for example to start reading the data stream at a different location from the data packet 40 (random access).
  • Other data packets identical to data packets 40, 44 can thus for example be present at regular intervals in the data flow.
  • the data stream F constructed by the data formation module 6 is transmitted on a communication channel (possibly after other processing steps, for example an entropic coding step) by the module d 'flow emission 8.
  • the data stream F could be stored (for example on a recording device, such as a hard disk, of the coding device) for subsequent reading and decoding (the coding device and the decoding device described below - after being for example in this case the same electronic device).
  • Figure 10 represents a decoding device according to the invention.
  • This decoding device comprises a stream reception module 50, a stream analysis module 52, a decoding module 54 and a configuration module 56.
  • Each of these modules can be produced in practice by a programmed processor (for example by means of instructions stored in a memory associated with the processor) to implement the functionalities described below for the module concerned (in this example, because execution by the processor of some of the aforementioned instructions). Furthermore, several modules can in practice be implemented using the same processor, for example due to the execution (by this processor) of several sets of instructions corresponding respectively to the different modules. Alternatively, one or the other of the modules can be produced using a specific application integrated circuit.
  • the flow reception module 50 receives (for example via a communication channel) a data flow such as the data flow F constructed by the flow formation module 6 and transmitted by the transmission module 8.
  • this data stream is read on a recording medium such as a hard disk.
  • the data stream F (received by the stream reception module 50 or read on a recording medium) is analyzed by the stream analysis module 52 as described below, which makes it possible to identify on the one hand data C, C', C” forming part of the coded representation of the content and on the other hand an artificial neural network to be used for decoding these data C, C', C”.
  • the configuration module 56 is then designed to configure the decoding module 54 so that the decoding module decodes the data C, C', C” using the identified artificial neural network, in order to produce data B' representative of the audio or video content, as will be explained below in the context of different examples.
  • the data C, C', C” (coded representation of the content) are applied as input to the artificial neural network identified N”, which then generates as output the data B' representative of the audio or video content.
  • the data B' produced at the output of the artificial neural network N correspond to the data B applied to the input of the artificial neural network N and can thus represent a block of an image, or a block of a component of an image (for example a block of a luminance or chrominance component of this image, or a block of a color component of this image), or an image of a video sequence, or a component of an image of a video sequence (for example a luminance or chrominance component, or a color component), or even a series of images from the video sequence.
  • At least some of the neurons of the output layer of the artificial neural network N” each produce a pixel value of a component of an image, a value forming one of the data B’.
  • the decoding module 54 applies to the data C, C', C” (denoted Cj in Figure 12) a processing comprising several stages, of which at least one stage is carried out by means of a network of artificial neurons N'.
  • part of the coded representation Cj-i previously received or read in the data stream is applied as input to the artificial neural network N', which makes it possible to generate output from the network of artificial neurons N' of the predicted data Pj which are combined (for example by addition) with the current part Cj of the coded representation so as to obtain (at the output of the decoding module 4) a part B'j of the data representative of the audio content or video.
  • the reference 60 represents a delay module to illustrate the fact that at the instant of processing the current part Cj of the coded representation to obtain the corresponding part B'j of the representative data, it is a previously received (or read) part Cj-i of the coded representation which is applied as input to the artificial neural network N'.
  • the part Cj-i is for example relative to a part B'j-i representative of an image preceding the image represented by the part B'j.
  • the part previously received or read, used as input to the artificial neural network N' can be a coded representation part corresponding to at least one block of the image neighboring the block whose pixel values are represented by the data B'j.
  • Figure 13 represents steps of an example method for decoding the data stream F.
  • This process begins with a step E2 in which the analysis module 52 identifies (in the data stream F) the start of a data packet 12, 14, 40, 42, 44, 46, here using the marker M by which begins any data packet.
  • the analysis module 54 can identify its type by reading (and possibly decoding) the type identifier T (or first data) of this data packet (step E4). , for example within the header of this data packet.
  • the analysis module 54 determines in step E6 whether the type indicated by the type identifier T is a predetermined type (here corresponding to type T 1). As already indicated, this predetermined type (designated here T1) is associated with data packets which contain data indicative of an artificial neural network.
  • step E6 In the event of a positive determination (arrow P) in step E6, the process continues to step E8. (This is particularly the case when processing data packets 12, 40, 44.)
  • step E6 the process continues in step E16.
  • the analysis module 52 reads in the data stream F (and possibly decodes) an identifier NNI which designates a particular artificial neural network (the identifier NNI being part of a predetermined set of identifiers respectively associated with different artificial neural networks).
  • the analysis module 52 determines in step E10 (possibly by cooperation with the configuration module 56) whether the artificial neural network designated by the identifier NNI is stored within the decoding device, for example following the prior receipt of a data packet which already contained data indicative of the artificial neural network (such as data packet 40).
  • step E10 In the event of a positive determination (arrow P) in step E10 (as is the case during the processing of the data packet 44 if the data packet 40 has been previously processed), the artificial neural network previously received and stored can be re-used (during a subsequent passage to step E22 described below) and it is therefore not necessary to continue processing the current data packet: the process then loops to step E2.
  • step E10 the process continues in step E12 for reading in the stream data F and decoding of NNC data (second data of the current data packet) indicative of the artificial neural network associated with the identifier NNI, possibly taking into account the coding format of these NNC data indicated where appropriate by the identifier of NNF format (case of data packet 12), in order to obtain (for example to construct) the artificial neural network.
  • NNC data second data of the current data packet
  • the indicative data NNC are descriptive data of the artificial neural network, which can be decoded (by the flow analysis module 52 or the configuration module 56) from so as to obtain parameters of the artificial neural network, these parameters allowing the configuration module 56 to configure the decoding module 54 so that this decoding module 54 implements in particular the artificial neural network (designated by NNI identifier).
  • the parameters of the artificial neural network obtained by decoding the NNC descriptive data are then stored in a memory of the monitoring device. decoding (for example a memory associated with the configuration module 56) in step E14 and the method loops in step E2 for processing a new data packet of the data stream F.
  • step E6 When it is determined in step E6 that the type of the current data packet does not correspond to the predetermined type T1, the process continues as already indicated in step E16 described now.
  • step E 16 the flow analysis module 52 determines whether the type T designated by the type identifier (or first data) of the current data packet 12, 14, 40, 42, 44, 46 is part types associated with data packets containing a coded representation of the content (which correspond here to types T2 and T4).
  • step E16 the process continues in step E18 for decoding of the data packet.
  • the data packet contains parameters relating to an image or a sequence of images (T3 type data packet in the example described here) and the decoding of the current data packet allows in this case to obtain parameters relating to an image to be decoded or to the current image sequence (being decoded).
  • the process then loops to step E2 for processing another data packet.
  • step E16 In the event of a positive determination (arrow P) in step E16, the process continues with a step E20 of reading (and possible decoding) of an identifier NNI in the data stream F.
  • This identifier NNI designates the neural network artificial to be used for decoding the coded representation C, C' contained in the current packet 14, 42, 46.
  • the parameters defining this artificial neural network were previously obtained by means of the data indicative of this artificial neural network contained in a previously received type T 1 data packet.
  • these parameters were previously decoded on the basis of the descriptive data NNC contained in a data packet of type T1 previously received (the data packet 12 in the case of Figure 4 and, in the case of Figure 9, data packet 40, or, if data packet 40 has not been read by the decoding device, data packet 44).
  • the parameters thus obtained (for example decoded) have also been stored as already explained in a memory of the decoding device (here a memory associated with the configuration device 56).
  • the configuration module 56 can then configure the decoding module 54 by means of the parameters of the artificial neural network designated by the identifier NNI read in the data stream in step E20 so that the decoding module 54 can perform decoding of a coded representation using this artificial neural network.
  • the flow analysis module 52 then extracts the coded representation C, C' (second data) from the current packet and transmits this coded representation C, C' to the decoding module 54 for decoding this coded representation C, C' (step E22) using the aforementioned artificial neural network (designated by the identifier NNI read in step E20) in order to obtain at the output of the decoding module 54 data B' representative of the audio or video content (these data being by example of the pixel values of at least part of an image or a component of an image).
  • Figure 14 presents steps of a possible method for decoding the data stream of Figure 5.
  • This method includes a step E30 of identification and analysis of the data packet 16 by the flow analysis module 52.
  • This step here includes the identification of the start of the data packet 16 by means of the marker M, the detection of the type identifier (first data) corresponding to the predetermined type T1 and the reading (in the data stream) of a NNI identifier associated with an artificial neural network and NNC data (second data) descriptive of the artificial neural network corresponding to the NNI identifier.
  • the method can then comprise a step E32 of decoding the NNC data in order to obtain parameters of the artificial neural network, and of storing the parameters obtained in a memory of the decoding device (for example a memory associated with the configuration module 56). .
  • Step E34 here comprises the identification of the start of the data packet 18 by means of the marker M, the detection of the type identifier which here indicates the type T3 corresponding to the data packets containing parameters relating to at least one image of the current image sequence, and reading (in the data stream) the parameters contained in the data packet 18, these parameters here comprising the identifier NNI.
  • the parameters contained in the T3 type data packet 18 can only concern the image being decoded (that is to say the image for which representative data will be obtained by the next decoding operation). decoding using the decoding module 54).
  • the presence of the identifier NNI in the data packet 18 indicates in this case that the artificial neural network associated with the identifier NNI will be used for the decoding of representative data C associated with the image being decoded (in order to 'obtain data B' relating to at least part of the image being decoded).
  • the parameters contained in the data packet 18 of type T3 can concern all the images of the sequence of images being decoded.
  • the presence of the identifier NNI in the data packet 18 indicates in this case that the artificial neural network associated with the identifier NNI will be used for the decoding of representative data C associated with the different images of the current image sequence ( in order to obtain data B' relating to at least part of one of the images of the current image sequence).
  • the configuration module 54 can then configure the decoding module 56 so that the decoding module 56 can decode representative data received in the data stream using the neural network artificial devices designated by the identifier NNI.
  • This configuration can in practice be carried out by reading the parameters of the artificial neural network from the aforementioned memory of the coding device (see step E32 below).
  • step E36 the flow analysis module 52 identifies and analyzes the data packet 20.
  • this data packet 20 is relating to an image to which the parameters contained in the aforementioned data packet 18 apply.
  • Step E36 here comprises the identification of the start of the data packet 20 by means of the marker M, the detection of the type identifier which here indicates the type T2 corresponding to the data packets containing a coded representation of the video, and reading part C of the coded representation (second data of data packet 20).
  • the method then comprises a step E38 of decoding part C of the representation coded by the decoding module 54 using the artificial neural network designated by the identifier NNI.
  • Figure 15 presents steps of a possible method for decoding the data stream of Figure 6.
  • This method includes a step E40 of identification and analysis of the data packet 22 by the flow analysis module 52.
  • This step here comprises the identification of the start of the data packet 22 by means of the marker M, the detection of the type identifier (first data) corresponding to the predetermined type T1 and the reading of NNC data (second data) descriptive of an artificial neural network.
  • Step E40 may also include reading and/or decoding an NNI identifier associated with this artificial neural network. As explained in other embodiments, this makes it possible, in the event of subsequent detection of a data packet of type T1 and comprising the same NNI identifier, to not have to decode the descriptive NNC data of the neural network again. artificial.
  • the method then comprises a step E42 of decoding the NNC data in order to obtain parameters of the artificial neural network, and of storing the parameters obtained in a memory of the decoding device (for example a memory associated with the configuration module 56).
  • a memory of the decoding device for example a memory associated with the configuration module 56.
  • the configuration module 54 can configure the decoding module 56 (using the parameters obtained as just mentioned) so that the decoding module 54 can decode the following representative data received in the data stream using the artificial neural network.
  • the method then comprises a step E44 of identification and analysis (by the flow analysis module 52) of the data packet 24.
  • a step E44 of identification and analysis by the flow analysis module 52 of the data packet 24.
  • Step E44 here comprises the identification of the start of the data packet 24 by means of the marker M, the detection of the type identifier which here indicates the type T2 corresponding to the data packets containing a coded representation of the video, and reading (in the data stream) a part C of the coded representation (second data of the data packet 24).
  • the method then comprises a step E46 of decoding part C of the representation coded by the decoding module 54 using the artificial neural network represented by the NNC data contained in the data packet 22.
  • the artificial neural network used for decoding the coded representation contained in a data packet 24 is defined (by indicative data, here NNC descriptive data, contained) in the last packet of type T1 data preceding this data packet 24.
  • Figure 16 presents steps of a possible method for decoding the data stream of Figure 7.
  • This method includes a step E50 of identification and analysis of the data packet 26 by the flow analysis module 52.
  • This step here comprises the identification of the start of the data packet 26 by means of the marker M, the detection of the type identifier (first data) corresponding to the predetermined type T1 and the reading in the flow of an identifier NNI associated with an artificial neural network and NNC data (second data) descriptive of the artificial neural network corresponding to the NNI identifier.
  • the method then comprises a step E52 of decoding the NNC data in order to obtain parameters of the artificial neural network, and of storing the parameters obtained in a memory of the decoding device (for example a memory associated with the configuration module 56).
  • step E54 the flow analysis module 52 identifies and analyzes the data packet 28.
  • Step E54 here comprises the identification of the start of the data packet 28 by means of the marker M, the detection of the type identifier which here indicates the type T4 corresponding to the data packets containing a coded representation of the content and identifying a entry point into the data stream, and reading (in the data stream) the NNI identifier and a first part C of the encoded representation of the content.
  • step E56 can then continue with a step E56 of decoding this first part C of the coded representation of the content, by the decoding module 54 and by means of the artificial neural network associated with this identifier NNI (as contained in the packet data 28).
  • step E56 may possibly include in practice a step of configuring the decoding module 54 by the configuration module 56 and by means of the parameters obtained (and stored) in step E52.
  • step E58 the flow analysis module 52 identifies and analyzes the data packet 30.
  • Step E58 here comprises the identification of the start of the data packet 30 by means of the marker M, the detection of the type identifier which here indicates the type T2 corresponding to data packets containing a coded representation of the content, and reading (in the data stream) a second part C' of the coded representation of the content.
  • NNI an identifier of the neural network to be used for decoding the data. coded representations of content.
  • the method can then continue with a step E60 of decoding this second part C' of the coded representation of the content, by the decoding module 54 and by means of the associated artificial neural network the identifier NNI contained in the data packet 28 designated as a possible entry point by the T4 type identifier contained in this data packet 28.
  • Figure 17 presents steps of a possible method for decoding the data stream of Figure 8. This method includes a step E70 of identification and analysis of the data packet 32 by the flow analysis module 52.
  • Step E70 here comprises the identification of the start of the data packet 32 by means of the marker M, the detection of the type identifier which here indicates the type T4 corresponding to the data packets containing a coded representation of the content and identifying a entry point into the data stream, and reading (in the data stream) the remote description indicator DNN, the location identifier NNL and a first part C of the encoded representation of the content.
  • the remote description indicator DNN has a value (for example the value 1) indicating that the artificial neural network to be used to decode the first part C is described outside the current sequence S; therefore, the flow analysis module 52 reads the location identifier NNL located posteriorly (here immediately after) the remote description indicator DNN in the data flow.
  • the flow analysis module 52 then scans the data stream according to the indications given by the location identifier NNL (for example by scanning the byte difference indicated by the location identifier NNL, or by jumping to the physical memory storage address indicated by the location identifier NNL) until reading and analyzing the data packet 36 (step E72).
  • This step E72 here comprises the identification of the start of the data packet 36 by means of the marker M, the detection of the type identifier (first data) corresponding to the predetermined type T1 and the reading in the data stream of NNC data ( second data) descriptive of an artificial neural network.
  • the method then comprises a step E74 of decoding the NNC data in order to obtain parameters of the artificial neural network, and of storing the parameters obtained in a memory of the decoding device (for example a memory associated with the configuration module 56).
  • step E76 of decoding the first part C of the coded representation of the content, by the decoding module 54 and by means of the aforementioned artificial neural network (decoded from the descriptive data NNC contained in the data packet 36).
  • step E76 may possibly include in practice a step of configuring the decoding module 54 by the configuration module 56 and by means of the parameters obtained (and stored) in step E74.
  • step E78 the flow analysis module 52 identifies and analyzes the data packet 34.
  • Step E78 here comprises the identification of the start of the data packet 34 by means of the marker M, the detection of the type identifier which here indicates the type T2 corresponding to data packets containing a coded representation of the content, and reading (in the data stream) a second part C' of the coded representation of the content.
  • NNI an identifier of the neural network to be used for decoding the data. coded representations of content.
  • the method can then continue with a step E80 of decoding this second part C' of the coded representation of the content, by the decoding module 54 and by means of the artificial neural network obtained as described above in steps E74 and 76 by means of the location identifier NNL contained in the T4 type data packet 32 preceding the present data packet 34.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Un flux de données comporte des paquets de données comprenant chacun au moins des premières données et des deuxièmes données. Un procédé de décodage de ce flux de données comprend les étapes suivantes : - identification, parmi lesdits paquets de données, d'un premier paquet de données (12) dont les premières données incluent une information (T1) indicative d'un type prédéterminé de paquet de données; - traitement des deuxièmes données (NNC) du premier paquet de données pour obtenir un réseau de neurones artificiels; - décodage des deuxièmes données (C) comprises dans un second paquet de données (14) parmi lesdits paquets de données, en utilisant au moins le réseau de neurones artificiels obtenu et de manière à produire des données représentatives d'un contenu audio ou vidéo. Un dispositif de décodage et un programme d'ordinateur associés sont également proposés.

Description

Procédé et dispositif de décodage, programme d’ordinateur et flux de données associés
Domaine technique de l'invention
La présente invention concerne le domaine technique du codage des contenus audio ou vidéo.
Elle concerne en particulier un procédé et un dispositif de décodage, ainsi qu’un programme d’ordinateur et un flux de données associés.
Etat de la technique
Il a été proposé d’utiliser des réseaux de neurones artificiels pour effectuer tout ou partie du décodage de données représentatives d’un contenu audio ou vidéo.
On connaît du document WO 2022/013 249 un procédé de décodage dans lequel on décode un indicateur pour déterminer si un réseau de neurones artificiels est codé dans le flux de données reçu ou fait partie d’un ensemble prédéterminé de réseaux de neurones artificiels, et dans lequel le réseau de neurones artificiels est ensuite utilisé pour décoder des données représentatives d’un contenu audio ou vidéo.
Présentation de l'invention
Dans ce contexte, la présente invention propose un procédé de décodage d’un flux de données comportant des paquets de données comprenant chacun au moins des premières données et des deuxièmes données, caractérisé en ce qu’il comprend les étapes suivantes :
- identification, parmi lesdits paquets de données, d’un premier paquet de données dont les premières données incluent une information indicative d’un type prédéterminé de paquet de données ;
- traitement des deuxièmes données du premier paquet de données pour obtenir un réseau de neurones artificiels ;
- décodage des deuxièmes données comprises dans un second paquet de données parmi lesdits paquets de données, en utilisant au moins le réseau de neurones artificiels obtenu et de manière à produire des données représentatives d’un contenu audio ou vidéo.
Les données permettant d’obtenir le réseau de neurones artificiels et les données décodables à l’aide de ce réseau de neurones artificiels pour reproduire le contenu audio ou vidéo sont ainsi transportées dans des paquets de données respectifs, ce qui facilite leur identification et leur utilisation au moment du décodage. Le premier paquet de données, qui contient les données permettant d’obtenir le réseau de neurones artificiels, est à cet égard spécifiquement identifié au moyen de l’information indicative du type prédéterminé de paquet de données.
Les deuxièmes données du premier paquet de données comprennent par exemple des données descriptives du réseau de neurones artificiels ; l’étape de traitement peut alors être une étape de décodage des données descriptives pour obtenir des paramètres du réseau de neurones artificiels.
Le premier paquet de données peut comprendre par ailleurs un identifiant du réseau de neurones artificiels. Cet identifiant peut être un élément d’une liste d’identifiants distincts associés respectivement à des réseaux de neurones artificiels distincts.
Le procédé peut comprendre par ailleurs une étape de réception d’un troisième paquet de données dont les premières données incluent une information indicative dudit type prédéterminé de paquet, et comprenant ledit identifiant, et/ou une étape de réutilisation dudit réseau de neurones artificiels obtenu pour décoder des deuxièmes données comprises dans un quatrième paquet de données parmi lesdits paquets de données. Ainsi, la présence de l’identifiant dans le troisième paquet de données indique que ce troisième paquet de données contient lui aussi des données utilisables pour obtenir le réseau de neurones artificiels défini dans le premier paquet de données, et ce réseau de neurones artificiels peut donc être réutilisé sans avoir à traiter à nouveau les données du troisième paquet de données.
Le second paquet de données peut lui aussi comprendre ledit identifiant. Autrement dit, l’identifiant compris dans le premier paquet de données et l’identifiant compris dans le second paquet de données sont identiques. L’identifiant peut permettre dans ce cas d’indiquer que c’est le réseau de neurones artificiels défini dans le premier paquet de données (qui contient cet identifiant) qui doit être utilisé pour décoder les données contenues dans le second paquet de données (qui contient également l’identifiant dans le cas présent).
D’autres possibilités sont toutefois envisageables pour indiquer le réseau de neurones à utiliser au décodage.
Le procédé peut comprendre une étape de réception d’un autre paquet de données contenant des paramètres relatifs à au moins une image dudit contenu ; ces paramètres peuvent dans ce cas comprendre ledit identifiant. Le réseau de neurones artificiels défini dans le premier paquet de données sera alors utilisé pour décoder les données permettant d’obtenir ladite au moins une image du contenu.
Selon un mode de réalisation envisageable, le premier paquet de données est, parmi les paquets de données dont les premières données incluent une information indicative dudit type prédéterminé de paquet, le dernier paquet précédant le second paquet de données dans le flux de données. Dans ce mode de réalisation, le réseau de neurones artificiels à utiliser pour le décodage des données du second paquet est ainsi celui défini dans le dernier paquet reçu ayant le type prédéterminé.
Selon une possibilité de réalisation, le second paquet de données comprend un pointeur vers le premier paquet de données.
Dans le même ordre d’idée, le procédé peut comprendre les étapes suivantes :
- lecture d’un drapeau dans le second paquet de données ;
- si le drapeau a une valeur prédéfinie, lecture, dans le second paquet de données, d’un pointeur vers le premier paquet de données.
Le procédé peut par ailleurs comprendre les étapes suivantes :
- réception d’un autre paquet de données contenant des paramètres relatifs à au moins une image dudit contenu
- lecture d’un drapeau parmi lesdits paramètres ;
- si le drapeau a une valeur prédéfinie, lecture, parmi lesdits paramètres, d’un pointeur vers le premier paquet de données.
Le pointeur peut désigner par exemple un emplacement dans une partie du flux de données relative à une séquence d’images distincte de la séquence d’images codée au moins en partie par les deuxièmes données du second paquet de données.
Par ailleurs, le premier paquet de données peut comprendre une information indicative du format de codage des deuxièmes données du premier paquet de données.
Le premier paquet de données peut débuter par un marqueur prédéfini et le second paquet de données peut dans ce cas lui également débuter par ledit marqueur prédéfini. Un tel marqueur identifie dans ce cas le début des paquets de données.
Les premières données d’un paquet de données sont par exemple comprises dans un en-tête de ce paquet de données, tandis que les deuxièmes données peuvent alors être comprises les données utiles (en anglais "payload") de ce paquet de données. L’invention propose également un dispositif de décodage d’un flux de données comportant des paquets de données comprenant chacun au moins des premières données et des deuxièmes données, caractérisé en ce qu’il comprend un processeur configuré ou programmé pour :
- identifier, parmi lesdits paquets de données, un premier paquet de données dont les premières données incluent une information indicative d’un type prédéterminé de paquet de données ;
- traiter les deuxièmes données du premier paquet de données pour obtenir un réseau de neurones artificiels ;
- décoder les deuxièmes données comprises dans un second paquet de données parmi lesdits paquets de données, en utilisant au moins le réseau de neurones artificiels obtenu et de manière à produire des données représentatives d’un contenu audio ou vidéo.
L’invention propose aussi un programme d’ordinateur comprenant des instructions exécutables par un processeur et conçues pour mettre en œuvre un procédé tel que proposé ci-dessus, lorsque ces instructions sont exécutées par le processeur.
L’invention propose enfin un flux de données comportant des paquets de données comprenant chacun au moins des premières données et des deuxièmes données, caractérisé en ce que les paquets de données comprennent :
- un premier paquet de données dont les premières données incluent une information indicative d’un type prédéterminé de paquet de données et dont les deuxièmes données définissent un réseau de neurones artificiels ;
- un second paquet de données dont les deuxièmes données sont décodables en utilisant au moins ledit réseau de neurones artificiels de manière à produire des données représentatives d’un contenu audio ou vidéo.
Comme expliqué plus haut, le premier paquet de données peut comprendre un identifiant ; le flux de données peut comprendre un autre paquet de données qui comprend ledit identifiant, dont les premières données comprennent ladite information indicative du type prédéterminé de paquet de données, et dont les deuxièmes données sont identiques aux deuxièmes données du premier paquet de données.
Bien entendu, les différentes caractéristiques, variantes et formes de réalisation de l'invention peuvent être associées les unes avec les autres selon diverses combinaisons dans la mesure où elles ne sont pas incompatibles ou exclusives les unes des autres.
Description détaillée de l'invention
De plus, diverses autres caractéristiques de l'invention ressortent de la description annexée effectuée en référence aux dessins qui illustrent des formes, non limitatives, de réalisation de l'invention et où :
- la figure 1 représente les éléments principaux d’un dispositif de codage ;
- la figure 2 représente schématiquement une première possibilité de réalisation pour un module de codage du dispositif de codage de la figure 1 ;
- la figure 3 représente schématiquement une seconde possibilité de réalisation pour le module de codage du dispositif de codage de la figure 1 ;
- la figure 4 représente un premier exemple de flux de données ;
- la figure 5 représente un second exemple de flux de données ;
- la figure 6 représente un troisième exemple de flux de données ;
- la figure 7 représente un quatrième exemple de flux de données ;
- la figure 8 représente un cinquième exemple de flux de données ;
- la figure 9 représente un sixième exemple de flux de données ;
- la figure 10 représente les éléments principaux d’un dispositif de décodage ;
- la figure 1 1 représente schématiquement une première possibilité de réalisation pour un module de décodage du dispositif de décodage de la figure 10 ;
- la figure 12 représente schématiquement une seconde possibilité de réalisation pour le module de décodage du dispositif de décodage de la figure 10 ;
- la figure 13 est un logigramme présentant des étapes d’un procédé de décodage ;
- la figure 14 est un logigramme montrant des étapes d’un procédé envisageable pour le décodage du flux de données de la figure 5 ;
- la figure 15 est un logigramme montrant des étapes d’un procédé envisageable pour le décodage du flux de données de la figure 6 ;
- la figure 16 est un logigramme montrant des étapes d’un procédé envisageable pour le décodage du flux de données de la figure 7 ; et
- la figure 17 est un logigramme montrant des étapes d’un procédé envisageable pour le décodage du flux de données de la figure 8. Il est à noter que, sur ces figures, les éléments structurels et/ou fonctionnels communs aux différentes variantes peuvent présenter les mêmes références.
La figure 1 représente un dispositif de codage utilisé dans le cadre de l’invention.
Ce dispositif de codage comprend un module de gestion 2, un module de codage 4, un module de formation de flux 6 et un module d'émission de flux 8.
Chacun de ces modules peut être réalisé en pratique par un processeur programmé (par exemple au moyen d’instructions mémorisées dans une mémoire associée au processeur) pour mettre en œuvre les fonctionnalités décrites ci-dessous pour le module concerné (dans cet exemple, du fait de l’exécution par le processeur de certaines des instructions précitées). Par ailleurs, plusieurs modules peuvent en pratique être mis en œuvre au moyen d’un même processeur, par exemple du fait de l’exécution (par ce processeur) de plusieurs ensembles d’instructions correspondant respectivement aux différents modules. En variante, l’un ou l’autre des modules peut être réalisé au moyen d’un circuit intégré à application spécifique.
Le module de gestion 2 est configuré pour commander le fonctionnement du module de codage 4, en particulier pour déterminer quel processus de codage doit être utilisé pour coder des données B représentatives d’un contenu audio ou vidéo, comme cela sera expliqué ci-après.
Le module de codage 4 est configuré pour recevoir en entrée ces données B représentatives d’un contenu audio ou vidéo et pour générer en sortie, sur la base d’au moins une partie des données B, une représentation codée C de ce contenu. La taille de la représentation codée C (en nombre de bits) est normalement inférieure à la taille des données B correspondantes (en nombre de bits).
Dans le cas d’un contenu vidéo, les données B comprennent par exemple des valeurs respectivement associées à des pixels d’une image (ou d’une composante d’une image) de la séquence vidéo. Les données B peuvent ainsi être des valeurs de luminance ou des valeurs de chrominance respectivement associées à des pixels d’une composante d’une image de la séquence vidéo concernée.
Dans le cas d’un contenu audio, les données B sont des données représentatives d’un signal sonore, par exemple selon le format WAV (utilisé pour le stockage des disques compacts audio).
Afin de produire la représentation codée C sur la base des données B, le module de codage 4 utilise au moins un réseau de neurones artificiels N, N’. Selon une première possibilité de réalisation illustrée en figure 2, les données B représentatives du contenu audio ou vidéo sont appliquées en entrée du réseau de neurones artificiels N, qui génère alors en sortie une partie correspondante de la représentation codée C.
Les données B appliquées en entrée du réseau de neurones artificiels N (c’est- à-dire appliquées à une couche d’entrée du réseau de neurones artificiels N) peuvent représenter un bloc d’une image, ou un bloc d’une composante d’une image (par exemple un bloc d’une composante de luminance ou de chrominance de cette image, ou un bloc d’une composante de couleur de cette image), ou une image d’une séquence vidéo, ou une composante d’une image d’une séquence vidéo (par exemple une composante de luminance ou de chrominance, ou une composante de couleur), ou encore une série d’images de la séquence vidéo.
On peut prévoir par exemple dans ce cas que certains au moins des neurones de la couche d’entrée reçoivent chacun une valeur de pixel d’une composante d’une image, valeur représentée par l’une des données B.
Selon une seconde possibilité de réalisation, le module de codage 4 applique aux données B représentatives du contenu audio ou vidéo un traitement comprenant plusieurs étapes, dont au moins une étape est réalisée au moyen d’un réseau de neurones artificiels N’.
Ainsi, comme illustré par exemple en figure 3, une partie Cj-i précédemment obtenue de la représentation codée est appliquée en entrée du réseau de neurones artificiels N’, ce qui permet de générer en sortie du réseau de neurones artificiels N’ des données prédites Pj qui sont soustraites aux données courantes Bj de manière à obtenir (en sortie du module de codage 4) une partie Cj de la représentation codée correspondant aux données courantes Bj.
Sur la figure 3, la référence 10 représente un module de retardement pour illustrer le fait qu’à l’instant de traitement des données courantes Bj pour obtenir la partie Cj de la représentation codée correspondante, c’est une partie préalablement obtenue Cj-i de la représentation codée qui est appliquée en entrée du réseau de neurones artificiels N’.
En pratique, la partie Cj-i est par exemple préalablement obtenue par traitement (par le module de codage 4) de données Bj-i relatives à une image précédant l’image représentée par les données courantes Bj. En variante, la partie préalablement obtenue utilisée en entrée du réseau de neurones artificiels N’ peut être une partie de représentation codée correspondant à au moins un bloc de l’image voisin du bloc dont les valeurs de pixel sont représentées par les données courantes Bj.
Lors du codage, le module de gestion 2 détermine quel processus de codage (c’est-à-dire quel traitement effectué par le module de codage 4) doit être utilisé pour le codage d’un ensemble de données B représentatives du contenu audio ou vidéo.
Le module de gestion 2 détermine ainsi notamment quel réseau de neurones artificiels N, N’ doit être utilisé au sein du module de codage 4.
L’ensemble de données B pour lequel le module de gestion 2 détermine le processus (et notamment le réseau de neurones artificiels N, N’) à utiliser dépend de l’application concernée. Cet ensemble de données B est par exemple l’ensemble des données B relatives à une image donnée ou l’ensemble des données B relatives à une séquence d’images donnée.
Le module de gestion 2 sélectionne par exemple le réseau de neurones artificiels N, N’ à utiliser lors du codage de l’ensemble de données B parmi une pluralité de réseaux de neurones artificiels prédéfinis, par exemple afin de minimiser un critère débit-distorsion (qui tient compte de la taille de la représentation codée C et de la distorsion entre le contenu représenté par les données B et le contenu reconstruit sur la base de la représentation codée C).
En variante, le module de gestion 2 procède à une étape d’entraînement du réseau de neurones artificiels N, N’ de manière à optimiser un critère donné (par exemple le critère débit distorsion susmentionné) lors du traitement de l’ensemble de données B concerné, et commande au module de codage 4 d’utiliser le réseau de neurones artificiels ainsi entraîné pour la génération de la représentation codée C sur la base de l’ensemble de données B concernées.
Le module de gestion 2 peut ainsi produire (à destination notamment du module de formation de flux 6) une information i indicative du réseau de neurones artificiels à utiliser lors du décodage de la représentation codée C. Précisément, le module de gestion 2 peut fournir une telle information i pour chaque partie C de la représentation codée associé à un ensemble de données B tel que défini ci-dessus.
Dans certains cas, le réseau de neurones artificiels à utiliser pour le décodage de la représentation codée C est distinct du réseau de neurones artificiels N. Par exemple, dans le cas de la figure 2 (où le réseau de neurones artificiels N reçoit en entrée les données B et produit en sortie la représentation codée C), le réseau de neurones artificiels à utiliser pour le décodage de la représentation codée C est conçu (c’est-à-dire en pratique entraîné) de sorte à minimiser la distorsion des données B lors leurs passages successifs à travers le réseau de neurones artificiels N (pour produire la représentation codée C) et à travers le réseau de neurones artificiels à utiliser pour le décodage, et/ou à minimiser la taille de la représentation codée C (au sens d’un critère débit-distorsion).
Dans le cas où le module de gestion 2 sélectionne le réseau de neurones artificiels N parmi une pluralité de réseaux de neurones artificiels prédéfinis, le réseau de neurones artificiels à utiliser pour le décodage est celui associé de manière prédéfinie au réseau de neurones artificiels N sélectionné. L’information i peut alors désigner (par exemple au sein d’une liste de réseau de neurones artificiels) ce réseau associé au réseau de neurones artificiels N sélectionné.
Dans le cas où le module de gestion 2 obtient le réseau de neurones artificiels N au moyen d’une étape d’entraînement, cette étape d’entraînement peut permettre l’entraînement simultané du réseau de neurones artificiels à utiliser pour le décodage. L’information i peut alors comprendre des données descriptives du réseau de neurones artificiels à utiliser pour le décodage (ces données descriptives pouvant comprendre par exemple des poids respectivement associés aux neurones de ce réseau de neurones artificiels et déterminés lors de l’étape d’entraînement).
Le module de formation de flux 6 reçoit la représentation codée C produite par le module de codage 4 et l’information i fournie par le module de gestion 2, et construit sur la base de ces éléments un flux de données F. Le module de formation de flux 6 peut bien entendu recevoir en pratique d’autres données du module de codage 4 et/ou du module de gestion 6.
Le module de formation de flux 6 construit le flux de données F sous forme de différents paquets de données destinés à être successivement communiqués (par exemple transmis) au dispositif de décodage. Ces paquets de données sont par exemple respectivement des unités de la couche d’abstraction réseau (en anglais "NAL units" pour " Network Abstraction Layer units").
Le module de formation de flux 6 construit les différents paquets de données conformément à ce qui est décrit ci-dessous. Dans l’exemple décrit ici, chaque paquet de données débute par un marqueur M prédéfini (c’est-à-dire formé d’une suite prédéfinie, ou motif prédéfini, de bits). Tout paquet de données débute donc ici par le même marqueur M, ce qui permet d’identifier le début d’un paquet de données à réception du flux. On propose par exemple que la valeur correspondant au marqueur M (c’est-à-dire la suite de bits formant le marquer M) soit interdite au sein du flux de données F en dehors du début des paquets de données.
En variante, on pourrait envisager d’autres moyens d’identification des paquets de données dans le flux de données F, par exemple une liste répertoriant les adresses des différents paquets de données dans le flux de données F.
Chaque paquet de données comprend ici en outre un identifiant de type qui désigne le type du paquet de données concerné parmi un ensemble prédéterminé de types possibles.
Dans les exemples décrits dans la suite, sont utilisés certains au moins des types de paquet de données suivants :
- un paquet de données portant des données descriptives d’un réseau de neurones artificiels (à utiliser pour le décodage), désigné par un premier identifiant de type, noté T1 dans la suite ;
- un paquet de données portant des données codées représentant un contenu audio ou vidéo (c’est-à-dire ici la représentation codée C obtenue au moyen du module de codage 4), désigné par un second identifiant de type, noté T2 dans la suite ;
- un paquet de données portant des paramètres relatifs au contenu audio ou vidéo, ou au processus de décodage à utiliser, désigné par un troisième identifiant, noté T3 dans la suite ;
- un paquet de données portant des données codées représentant un contenu audio ou vidéo, ces données codées étant toutefois obtenues par un processus de codage distinct (et nécessitant par conséquent un processus de décodage distinct) des données codées précitées contenues dans les paquets de données de type T2, ce dernier type de paquet de données étant désigné par un quatrième identifiant noté T4 dans la suite.
Il existe donc des paquets de données contenant une représentation codée du contenu (paquets de données de types T2 et T4 dans l’exemple décrit ici), des paquets de données contenant des données descriptives d’un réseau de neurones artificiels (par exemple des données codées selon un format donné et représentant ce réseau de neurones artificiels) - ici des paquets de données de type T1 , et des paquets de données contentant des paramètres (ici des paquets de données de type T3).
Dans le mode de réalisation décrit ici, les paquets de données contenant des données descriptives d’un réseau de neurones artificiels (paquets de données de type T1 ) comprennent :
- un marqueur M ;
- un identifiant de type (formant des premières données pour ce paquet de données), ici de valeur T1 ;
- à titre facultatif, un identifiant NNI associé au réseau de neurones artificiels concerné (l’identifiant NNI faisant partie d’un ensemble prédéterminé d’identifiants respectivement associés à différents réseaux de neurones artificiels) ;
- à titre facultatif, un identifiant de format NNF indiquant le format des données descriptives NNC contenues dans le paquet de données ;
- les données NNC descriptives du réseau de neurones artificiels concerné (ces données descriptives NNC formant des deuxièmes données pour ce paquet de données).
L’identifiant de type T1 et éventuellement l’identifiant NNI et/ou l’identifiant de format NNF sont par exemple compris dans un en-tête du paquet de données ; les données descriptives NNC peuvent alors former quant à elles les données utiles (en anglais "payload") du paquet de données.
Le format de description (ou de codage) des données descriptives NNC (identifié le cas échéant par l’identifiant de format NNF) peut être par exemple le format NNR (MPEG-7 partie 17), le format NNEF ou le format ONNX. L’identifiant de format NNF peut en variante désigner un format admis par un outil de manipulation de réseaux de neurones artificiels, ou encore un format d’un identifiant de réseau de neurones artificiels parmi un ensemble prédéterminé de réseaux de neurones artificiels (les données NNC comprenant alors un tel identifiant).
L’utilisation d’un identifiant de format NNF dans le paquet de données n’est pas nécessaire lorsque le format utilisé est convenu (prédéfini) par le dispositif de codage et le dispositif de décodage (ou, autrement dit, qu’un seul format est utilisé par le dispositif de décodage). Lorsqu’une partie C de la représentation codée a été produite par le module de codage 4 sur la base d’un ensemble de données B, le module de formation de flux 6 reçoit comme déjà indiqué (en provenance du module de gestion 2) l’information i indicative du réseau de neurones artificiels de décodage à utiliser pour le décodage de la partie C. Le module de formation de flux 6 peut ainsi déterminer sur la base de cette information i quelles données descriptives NNC doivent être placées dans un paquet de données de type T1 donné, comme cela ressortira des exemples donnés dans la suite.
Dans les modes de réalisation où un identifiant NNI est utilisé, on prévoit ici que tous les paquets de données contenant des données descriptives d’un réseau de neurones artificiels (c’est-à-dire ici tous les paquets de données de type T1 ) comprenant un identifiant NNI donné comprennent des données descriptives NNC identiques.
Dans l’exemple décrit ici, les paquets de données contenant une représentation codée du contenu (paquets de données de types T2 et T4) comprennent :
- un marqueur M ;
- un identifiant de type (formant des premières données pour ce paquet de données), ici de valeur T2 ou T4 (le type étant l’un des types disponibles pour la représentation codée du contenu) ;
- à titre facultatif, un identifiant NNI associé à un réseau de neurones artificiels (selon la même règle d’association que mentionné ci-dessus pour les paquets de données de type T1 ), ce réseau de neurones artificiels étant celui à utiliser pour le décodage de la représentation codée du contenu contenue dans le présent paquet de données ;
- à titre facultatif, un identifiant de localisation NNL tel qu’un pointeur de fichier qui indique la localisation dans le flux de données d’un paquet de données contenant des données descriptives du réseau de neurones artificiels à utiliser pour le décodage de la représentation codée du contenu contenue dans le présent paquet de données ;
- à titre facultatif, un indicateur de description distante DNN indiquant si un paquet de données contenant des données descriptives du réseau de neurones artificiels à utiliser est présent dans la partie du flux de données relative à la séquence d’images courante ou dans une partie du flux de données relative à une séquence d’image différente de la séquence d’image courante ; - la représentation codée du contenu C concernée (qui est une partie de la représentation codée générée par le module de codage 4 et forme les deuxièmes données pour ce paquet de données).
Une séquence d’image est ici un ensemble d’images qui peuvent être obtenues par décodage d’une partie de la représentation codée du contenu (ici de la vidéo) sans nécessiter un accès à une autre partie de la représentation codée du contenu (ici de la vidéo).
L’identifiant de type T2, T4 et éventuellement l’identifiant NNI et/ou l’identifiant de localisation NNL et/ou l’indicateur de description distante sont par exemple compris dans un en-tête du paquet de données ; la représentation codée C peut alors former les données utiles (en anglais "payload') du paquet de données.
Parmi les paquets de données contenant une représentation codée du contenu, certains paquets peuvent avoir un type particulier pour identifier un point d’entrée dans le flux de données (ici le type correspondant à l’identifiant T4 dans l’exemple décrit plus bas). Dans ce cas, on peut prévoir par exemple que seuls les paquets de ce type (correspondant à un point d’entrée) peuvent contenir un identifiant NNI ou un identifiant de localisation NNL.
Selon une variante envisageable, l’identifiant NNI et/ou l’identifiant de localisation NNL et/ou l’indicateur de description distante DNN pourrait être contenus dans un paquet de données portant des paramètres relatifs à une image ou à une séquence d’images (paquet de données de type T3 dans l’exemple décrit ici).
On peut par ailleurs prévoir que le module de formation de flux 6 construise le flux de données F de sorte que tout paquet de données contenant une représentation codée du contenu (paquet de données de type T2 ou T4) et un identifiant NNI donné soit précédé (dans le flux de données F) par un paquet de données de type T1 contenant également cet identifiant NNI donné (et ainsi des données descriptives du réseau de neurones artificiels désigné par cet identifiant NNI donné).
On décrit à présent en référence aux figures 4 à 9 différents exemples de flux de données envisageables. Le décodage de ces flux de données envisageables est décrit plus loin.
Un premier exemple de flux de données est représenté sur la figure 4. Dans cet exemple, le flux de données comprend un paquet de données 12 de type T1 et un paquet de données 14 (ultérieur dans le flux de données par rapport au paquet 12) de type T2.
Le paquet de données 12 comprend le marqueur M, un identifiant de type ayant la valeur T1 , un identifiant NNI associé à un réseau de neurones artificiels donné, un identifiant de format NNF indiquant le format des données descriptives NNC (mentionnées ci-après) et ces données NNC descriptives du réseau de neurones artificiels donné.
Le paquet de données 14 comprend le marqueur M, un identifiant de type ayant la valeur T2, l’identifiant NNI associé au réseau de neurones artificiels donné (identique à l’identifiant contenu dans le paquet de données 12) et une partie de la représentation codée C générée par le module de codage 4 et décodable en utilisant notamment le réseau de neurones artificiels donné.
Un second exemple de flux de données est représenté sur la figure 5.
Dans cet exemple, le flux de données comprend dans cet ordre un paquet de données 16, un paquet de données 18 et un paquet de données 20. (D’autres paquets de données peuvent être présents dans le flux de données entre le paquet de données 16 et le paquet de données 18, et/ou entre le paquet de données 18 et le paquet de données 20.)
Le paquet de données 16 comprend le marqueur M, un identifiant de type ayant la valeur T1 , un identifiant NNI associé à un réseau de neurones artificiels donné, et des données NNC descriptives du réseau de neurones artificiels donné.
Le paquet de données 18 comprend le marqueur M, un identifiant de type ayant la valeur T3 (correspondant comme indiqué ci-dessus à un paquet de données contenant des paramètres, relatifs à une image donnée ou à une séquence d’images donnée) et (parmi ces paramètres) un identifiant NNI associé au réseau de neurones artificiels donné.
Le paquet de données 20 comprend le marqueur M, un identifiant de type ayant la valeur T2 et une partie de la représentation codée C générée par le module de codage 4 et décodable en utilisant notamment le réseau de neurones artificiels donné.
Un troisième exemple de flux de données est représenté sur la figure 6.
Dans cet exemple, le flux de données comprend un paquet de données 22 et, ultérieurement dans le flux de données, un paquet de données 24. Le paquet de données 22 comprend le marqueur M, un identifiant de type ayant la valeur T1 , éventuellement un identifiant NNI associé à un réseau de neurones artificiels donné, et des données NNC descriptives du réseau de neurones artificiels donné.
Le paquet de données 24 comprend le marqueur M, un identifiant de type ayant la valeur T2 et une partie de la représentation codée C générée par le module de codage 4 et décodable en utilisant notamment le réseau de neurones artificiels donné.
Un quatrième exemple de flux de données est représenté sur la figure 7.
Dans cet exemple, le flux de données comprend dans cet ordre un paquet de données 26, un paquet de données 28 et un paquet de données 30. (D’autres paquets de données peuvent être présents dans le flux de données entre le paquet de données 26 et le paquet de données 28, et/ou entre le paquet de données 28 et le paquet de données 30.)
Le paquet de données 26 comprend le marqueur M, un identifiant de type ayant la valeur T1 , un identifiant NNI associé à un réseau de neurones artificiels donné et des données NNC descriptives du réseau de neurones artificiels donné.
Le paquet de données 28 comprend le marqueur M, un identifiant de type ayant la valeur T4 (correspondant comme déjà indiqué à un point d’entrée dans le flux), l’identifiant NNI associé au réseau de neurones artificiels donné (identique à l’identifiant contenu dans le paquet de données 26) et une partie C de la représentation codée générée par le module de codage 4 et décodable en utilisant notamment le réseau de neurones artificiels donné.
Le paquet de données 30 comprend le marqueur M, un identifiant de type ayant la valeur T2 et une autre partie C’ de la représentation codée générée par le module de codage 4 et décodable en utilisant notamment le réseau de neurones artificiels donné.
Un cinquième exemple de flux de données est représenté sur la figure 8.
Dans cet exemple, le flux de données comprend dans cet ordre un paquet de données 32, un paquet de données 34, un paquet de données 36 et un paquet de données 38. (D’autres paquets de données peuvent être présents dans le flux de données entre ces différents paquets.)
Le paquet de données 32 comprend le marqueur M, un identifiant de type ayant la valeur T4 (correspondant comme déjà indiqué à un point d’entrée dans le flux), un indicateur de description distante DNN, un identifiant de localisation NNL et une partie C de la représentation codée générée par le module de codage 4.
Le paquet de données 34 comprend le marqueur M, un identifiant de type ayant la valeur T2 et une autre partie C’ de la représentation codée générée par le module de codage 4.
Les paquets de données 32 et 34 sont relatifs à la même séquence d’images S, c’est-à-dire que les parties C, C’ de la représentation codée font partie d’un ensemble de données codées permettant le décodage d’un ensemble d’images sans avoir recours à des données codées situées en dehors de cet ensemble de données codées.
Le paquet de données 36 comprend le marqueur M, un identifiant de type ayant la valeur T1 et des données NNC descriptives d’un réseau de neurones artificiels.
Le paquet de données 38 comprend le marqueur M, un identifiant de type ayant la valeur T2 et une partie C” de la représentation codée générée par le module de codage 4.
Les paquets de données 36 et 38 sont relatifs à une même séquence d’images S’ qui est distincte de la séquence d’images S.
L’indicateur de description distante DNN contenu dans le paquet de données 32 indique que le réseau de neurones artificiels à utiliser pour le décodage de la partie C (et de la partie C’) de la représentation codée n’est pas décrit par des données descriptives contenues dans la séquence d’images S, mais en dehors de cette séquence d’image S (ici dans la séquence d’images S’).
Le paquet de données 32 comprend ainsi l’identifiant de localisation NNL déjà mentionné, qui est ici un pointeur vers le paquet de données 36 (situé dans la séquence d’images S’).
Un tel pointeur peut être par exemple :
- une différence en nombre d’octets par rapport à la localisation du paquet de données 32 (cette différence pouvant être signée, c’est-à-dire avoir une valeur positive pour indiquer un nombre d’octets dans un sens - au sein du flux de données - ou une valeur négative pour indiquer un nombre d’octets dans l’autre sens) ;
- une différence en nombre d’octets par rapport au début du fichier (ou, autrement dit, du flux de données) ;
- une adresse physique de stockage en mémoire (qui aurait été réécrite par le dispositif de décodage lors du traitement du flux de données lors du stockage du réseau de neurones artificiels, puis dans toutes les références NNL vers ce réseau de neurones artificiels au cours d'un prétraitement).
Un sixième exemple de flux de données est représenté sur la figure 9.
Dans cet exemple, le flux de données comprend dans cet ordre un paquet de données 40, un paquet de données 42, un paquet de données 44 et un paquet de données 46. (D’autres paquets de données peuvent être présents dans le flux de données entre ces différents paquets.)
Le paquet de données 40 comprend le marqueur M, un identifiant de type ayant la valeur T1 , un identifiant NNI associé à un réseau de neurones artificiels donné et des données NNC descriptives du réseau de neurones artificiels donné.
Le paquet de données 42 comprend le marqueur M, un identifiant de type ayant la valeur T2, l’identifiant NNI (identique à celui contenu dans le paquet de données 40) et une partie C de la représentation codée générée par le module de codage 4 et décodable en utilisant notamment le réseau de neurones artificiels donné.
Le paquet de données 44 comprend le marqueur M, l’identifiant de type ayant la valeur T1 , l’identifiant NNI associé au réseau de neurones artificiels donné et les données NNC descriptives du réseau de neurones artificiels donné (ces données NNC étant identiques aux données NNC contenues dans le paquet de données 40).
Le paquet de données 46 comprend le marqueur M, l’identifiant de type ayant la valeur T2, l’identifiant NNI (identique à celui contenu dans les paquets de données 40, 42 et 44) et une autre partie C’ de la représentation codée générée par le module de codage 4 et décodable en utilisant notamment le réseau de neurones artificiels donné.
L’utilisation d’un autre paquet de donnés 44 de type T1 et contenant les données NNC descriptives du réseau de neurones artificiels identifié par l’identifiant NNI permet au dispositif de décodage de lire éventuellement le flux de données dans un ordre différent de celui représenté en figure 9, par exemple de commencer la lecture du flux de données à un endroit différent du paquet de données 40 (accès aléatoire). D’autres paquets de données identiques aux paquets de données 40, 44 peuvent ainsi par exemple être présents à intervalles réguliers dans le flux de données.
Dans l’exemple décrit ici, le flux de données F construit par le module de formation de données 6 est émis sur un canal de communication (éventuellement après d’autres étapes de traitement, par exemple une étape de codage entropique) par le module d’émission de flux 8. En variante, le flux de données F pourrait être mémorisé (par exemple sur un dispositif d’enregistrement, tel qu’un disque dur, du dispositif de codage) pour lecture et décodage ultérieurs (le dispositif de codage et le dispositif de décodage décrits ci- après étant par exemple dans ce cas un même dispositif électronique).
La figure 10 représente un dispositif de décodage conforme à l’invention.
Ce dispositif de décodage comprend un module de réception de flux 50, un module d’analyse de flux 52, un module de décodage 54 et un module de configuration 56.
Chacun de ces modules peut être réalisé en pratique par un processeur programmé (par exemple au moyen d’instructions mémorisées dans une mémoire associée au processeur) pour mettre en œuvre les fonctionnalités décrites ci-dessous pour le module concerné (dans cet exemple, du fait de l’exécution par le processeur de certaines des instructions précitées). Par ailleurs, plusieurs modules peuvent en pratique être mis en œuvre au moyen d’un même processeur, par exemple du fait de l’exécution (par ce processeur) de plusieurs ensembles d’instructions correspondant respectivement aux différents modules. En variante, l’un ou l’autre des modules peut être réalisé au moyen d’un circuit intégré à application spécifique.
Le module de réception de flux 50 reçoit (par exemple via un canal de communication) un flux de données tel que le flux de données F construit par le module de formation de flux 6 et émis par le module d’émission 8.
Selon une variante déjà mentionnée, ce flux de données est lu sur un support d’enregistrement tel qu’un disque dur.
Le flux de données F (reçu par le module de réception de flux 50 ou lu sur un support d’enregistrement) est analysé par le module d’analyse de flux 52 comme décrit plus loin, ce qui permet d’identifier d’une part des données C, C’, C” formant une partie de la représentation codée du contenu et d’autre part un réseau de neurones artificiels à utiliser pour le décodage de ces données C, C’, C”.
Le module de configuration 56 est alors conçu pour configurer le module de décodage 54 de manière à ce que le module de décodage décode les données C, C’, C” en utilisant le réseau de neurones artificiels identifié, afin de produire des données B’ représentatives du contenu audio ou vidéo, comme cela sera expliqué dans la suite dans le cadre de différents exemples. Selon une première possibilité de réalisation du module de décodage 54 illustrée en figure 11 , les données C, C’, C” (représentation codée du contenu) sont appliquées en entrée du réseau de neurones artificiels identifié N”, qui génère alors en sortie les données B’ représentative du contenu audio ou vidéo.
Les données B’ produites en sortie du réseau de neurones artificiels N” correspondent aux données B appliquées en entrée du réseau de neurones artificiels N et peuvent ainsi représenter un bloc d’une image, ou un bloc d’une composante d’une image (par exemple un bloc d’une composante de luminance ou de chrominance de cette image, ou un bloc d’une composante de couleur de cette image), ou une image d’une séquence vidéo, ou une composante d’une image d’une séquence vidéo (par exemple une composante de luminance ou de chrominance, ou une composante de couleur), ou encore une série d’images de la séquence vidéo.
Dans ce cas, certains au moins des neurones de la couche de sortie du réseau de neurones artificiels N” produisent chacun une valeur de pixel d’une composante d’une image, valeur formant l’une des données B’.
Selon une seconde possibilité de réalisation, le module de décodage 54 applique aux données C, C’, C” (notées Cj sur la figure 12) un traitement comprenant plusieurs étapes, dont au moins une étape est réalisée au moyen d’un réseau de neurones artificiels N’.
Ainsi, comme illustré par exemple en figure 12, une partie de la représentation codée Cj-i précédemment reçue ou lue dans le flux de données est appliquée en entrée du réseau de neurones artificiels N’, ce qui permet de générer en sortie du réseau de neurones artificiels N’ des données prédites Pj qui sont combinées (par exemple par addition) à la partie courante Cj de la représentation codée de manière à obtenir (en sortie du module de décodage 4) une partie B’j des données représentatives du contenu audio ou vidéo.
On remarque que le réseau de neurones artificiels N’ utilisé pour le décodage (comme représenté en figure 12) est ici identique au réseau de neurones artificiels N’ utilisé pour le codage (voir la figure 3 décrite plus haut).
Sur la figure 12, la référence 60 représente un module de retardement pour illustrer le fait qu’à l’instant de traitement de la partie courante Cj de la représentation codée pour obtenir la partie correspondante B’j des données représentatives, c’est une partie préalablement reçue (ou lue) Cj-i de la représentation codée qui est appliquée en entrée du réseau de neurones artificiels N’.
En pratique, comme déjà indiqué pour le codage, la partie Cj-i est par exemple relative à une partie B’j-i représentative d’une image précédant l’image représentée par la partie B’j.
En variante, la partie préalablement reçue ou lue, utilisée en entrée du réseau de neurones artificiels N’, peut être une partie de représentation codée correspondant à au moins un bloc de l’image voisin du bloc dont les valeurs de pixel sont représentées par les données B’j.
La figure 13 représente des étapes d’un exemple de procédé de décodage du flux de données F.
Ce procédé de décodage est notamment utilisable pour les exemples de flux de données décrits ci-dessus et représentés sur les figures 4 et 9. On utilisera de ce fait les références numériques mentionnées sur les figures 4 et 9 pour illustrer la description de ce procédé de décodage.
Ce procédé débute par une étape E2 à laquelle le module d’analyse 52 identifie (dans le flux de données F) le début d’un paquet de données 12, 14, 40, 42, 44, 46, ici grâce au marqueur M par lequel commence tout paquet de données.
Une fois le début d’un paquet de données identifié, le module d’analyse 54 peut identifier son type par lecture (et éventuellement décodage) de l’identifiant de type T (ou premières données) de ce paquet de données (étape E4), par exemple au sein de l’en-tête de ce paquet de données.
Le module d’analyse 54 détermine alors à l’étape E6 si le type indiqué par l’identifiant de type T est un type prédéterminé (correspondant ici au type T 1 ). Comme déjà indiqué, ce type prédéterminé (désigné ici T1 ) est associé aux paquets de données qui contiennent des données indicatives d’un réseau de neurones artificiels.
En cas de détermination positive (flèche P) à l’étape E6, le procédé se poursuit à l’étape E8. (C’est le cas notamment lors du traitement des paquets de données 12, 40, 44.)
En cas de détermination négative (flèche N) l’étape E6, le procédé se poursuit à l’étape E16. (C’est le cas notamment lors du traitement des paquets de données 14, 42, 46.) A l’étape E8, le module d’analyse 52 lit dans le flux de données F (et décode éventuellement) un identifiant NNI qui désigne un réseau de neurones artificiels particulier (l’identifiant NNI faisant partie d’un ensemble prédéterminé d’identifiants respectivement associés à différents réseaux de neurones artificiels).
Le module d’analyse 52 détermine alors à l’étape E10 (éventuellement par coopération avec le module de configuration 56) si le réseau de neurones artificiels désigné par l’identifiant NNI est mémorisé au sein du dispositif de décodage, par exemple suite à la réception préalable d’un paquet de données qui contenait déjà des données indicatives du réseau de neurones artificiels (tel que le paquet de données 40).
En cas de détermination positive (flèche P) à l’étape E10 (comme c’est le cas lors du traitement du paquet de données 44 si le paquet de données 40 a été préalablement traité), le réseau de neurones artificiels préalablement reçu et mémorisé pourra être ré-utilisé (lors d’un passage ultérieur à l’étape E22 décrite ci- dessous) et il n’est donc pas nécessaire de poursuivre le traitement du paquet de données courant : le procédé boucle alors à l’étape E2.
En revanche, en cas de détermination négative (flèche N) à l’étape E10 (comme c’est le cas lors du traitement du paquet de données 12 ou 40), le procédé se poursuit à l’étape E12 pour lecture dans le flux de données F et décodage de données NNC (secondes données du paquet de données courant) indicatives du réseau de neurones artificiels associé à l’identifiant NNI, en tenant compte éventuellement du format de codage de ces données NNC indiqué le cas échéant par l’identifiant de format NNF (cas du paquet de données 12), afin d’obtenir (par exemple de construire) le réseau de neurones artificiels.
Comme déjà indiqué, dans les exemples des figures 4 et 9 notamment, les données indicatives NNC sont des données descriptives du réseau de neurones artificiels, qui peuvent être décodées (par le module d’analyse du flux 52 ou le module de configuration 56) de manière à obtenir des paramètres du réseau de neurones artificiels, ces paramètres permettant au module de configuration 56 de configurer le module de décodage 54 de manière à ce que ce module de décodage 54 mette en œuvre notamment le réseau de neurones artificiels (désigné par l’identifiant NNI).
Les paramètres du réseau de neurones artificiels obtenus par décodage des données descriptives NNC sont alors mémorisés dans une mémoire du dispositif de décodage (par exemple une mémoire associée au module de configuration 56) à l’étape E14 et le procédé boucle à l’étape E2 pour traitement d’un nouveau paquet de données du flux de données F.
Lorsqu’il est déterminé à l’étape E6 que le type du paquet de données courant ne correspond pas au type prédéterminé T1 , le procédé se poursuit comme déjà indiqué à l’étape E16 décrite à présent.
A l’étape E 16, le module d’analyse de flux 52 détermine si le type T désigné par l’identifiant de type (ou premières données) du paquet de données courant 12, 14, 40, 42, 44, 46 fait partie des types associés aux paquets de données contenant une représentation codée du contenu (qui correspondent ici aux types T2 et T4).
En cas de détermination négative (flèche N) à l’étape E16, le procédé se poursuit à l’étape E18 pour décodage du paquet de données. Il s’agit par exemple du cas où le paquet de données contient des paramètres relatifs à une image ou à une séquence d’images (paquet de données de type T3 dans l’exemple décrit ici) et le décodage du paquet de données courant permet dans ce cas d’obtenir des paramètres relatifs à une image à décoder ou à la séquence d’image courante (en cours de décodage).
Le procédé boucle ensuite à l’étape E2 pour traitement d’un autre paquet de données.
En cas de détermination positive (flèche P) à l’étape E16, le procédé se poursuit par une étape E20 de lecture (et décodage éventuel) d’un identifiant NNI dans le flux de données F. Cet identifiant NNI désigne le réseau de neurones artificiels à utiliser pour le décodage de la représentation codée C, C’ contenue dans le paquet courant 14, 42, 46.
Les paramètres définissant ce réseau de neurones artificiels ont été préalablement obtenus au moyen des données indicatives de ce réseau de neurones artificiels contenues dans un paquet de données de type T 1 préalablement reçu. Dans l’exemple décrit ici, ces paramètres ont été préalablement décodés sur la base des données descriptives NNC contenues dans un paquet de données de type T1 préalablement reçu (le paquet de données 12 dans le cas de la figure 4 et, dans le cas de la figure 9, le paquet de données 40, ou, si le paquet de données 40 n’a pas été lu par le dispositif de décodage, le paquet de données 44). Les paramètres ainsi obtenus (par exemple décodés) ont par ailleurs été mémorisés comme déjà expliqué dans une mémoire du dispositif de décodage (ici une mémoire associée au dispositif de configuration 56).
Le module de configuration 56 peut alors configurer le module de décodage 54 au moyen des paramètres du réseau de neurones artificiels désigné par l’identifiant NNI lu dans le flux de données à l’étape E20 de façon à ce que le module de décodage 54 puisse effectuer un décodage d’une représentation codée en utilisant ce réseau de neurones artificiels.
Le module d’analyse de flux 52 extrait alors la représentation codée C, C’ (deuxièmes données) du paquet courant et transmet cette représentation codée C, C’ au module de décodage 54 pour décodage de cette représentation codée C, C’ (étape E22) en utilisant le réseau de neurones artificiels précité (désigné par l’identifiant NNI lu à l’étape E20) afin d’obtenir en sortie du module de décodage 54 des données B’ représentatives du contenu audio ou vidéo (ces données étant par exemple des valeurs de pixels d’une partie au moins d’une image ou d’une composante d’une image).
La figure 14 présente des étapes d’un procédé envisageable pour le décodage du flux de données de la figure 5.
Ce procédé comprend une étape E30 d’identification et d’analyse du paquet de données 16 par le module d’analyse de flux 52.
Cette étape comprend ici l’identification du début du paquet de données 16 au moyen du marqueur M, la détection de l’identifiant de type (premières données) correspondant au type prédéterminé T1 et la lecture (dans le flux de données) d’un identifiant NNI associé à un réseau de neurones artificiels et de données NNC (deuxièmes données) descriptives du réseau de neurones artificiels correspondant à l’identifiant NNI.
Le procédé peut alors comprendre une étape E32 de décodage des données NNC afin d’obtenir des paramètres du réseau de neurones artificiels, et de mémorisation des paramètres obtenus dans une mémoire du dispositif de décodage (par exemple une mémoire associée au module de configuration 56).
Ultérieurement, lors de l’étape E34, le module d’analyse de flux 52 identifie et analyse le paquet de données 18. L’étape E34 comprend ici l’identification du début du paquet de données 18 au moyen du marqueur M, la détection de l’identifiant de type qui indique ici le type T3 correspondant aux paquets de données contenant des paramètres relatifs à au moins une image de la séquence d’image courante, et la lecture (dans le flux de données) des paramètres contenus dans le paquet de données 18, ces paramètres comprenant ici l’identifiant NNI.
Selon une possibilité de réalisation, les paramètres contenus dans le paquet de données 18 de type T3 peuvent concerner seulement l’image en cours de décodage (c’est-à-dire l’image dont des données représentatives seront obtenues par la prochaine opération de décodage au moyen du module de décodage 54).
La présence de l’identifiant NNI dans le paquet de données 18 indique dans ce cas que le réseau de neurones artificiels associé à l’identifiant NNI sera utilisé pour le décodage de données représentatives C associées à l’image en cours de décodage (afin d’obtenir des données B’ relatives à une partie au moins de l’image en cours de décodage).
Selon autre possibilité de réalisation, les paramètres contenus dans le paquet de données 18 de type T3 peuvent concerner toutes les images de la séquence d’images en cours de décodage.
La présence de l’identifiant NNI dans le paquet de données 18 indique dans ce cas que le réseau de neurones artificiels associé à l’identifiant NNI sera utilisé pour le décodage de données représentatives C associées aux différentes images de la séquence d’images courante (afin d’obtenir des données B’ relatives à une partie au moins de l’une des images de la séquence d’images courante).
Lors de l’étape E34, selon une possibilité de réalisation, le module de configuration 54 peut alors configurer le module de décodage 56 afin que le module de décodage 56 puisse décoder des données représentatives reçues dans le flux de données en utilisant le réseau de neurones artificiels désigné par l’identifiant NNI. Cette configuration peut en pratique être réalisée en lisant dans la mémoire précitée du dispositif de codage les paramètres du réseau de neurones artificiels (voir ci- dessous l’étape E32).
Ultérieurement, lors de l’étape E36, le module d’analyse de flux 52 identifie et analyse le paquet de données 20. On considère ici que ce paquet de données 20 est relatif à une image à laquelle s’appliquent les paramètres contenus dans le paquet de données 18 susmentionné.
L’étape E36 comprend ici l’identification du début du paquet de données 20 au moyen du marqueur M, la détection de l’identifiant de type qui indique ici le type T2 correspondant aux paquets de données contenant une représentation codée de la vidéo, et la lecture d’une partie C de la représentation codée (deuxièmes données du paquet de données 20).
Le procédé comprend alors une étape E38 de décodage de la partie C de la représentation codée par le module de décodage 54 en utilisant le réseau de neurones artificiels désigné par l’identifiant NNI.
La figure 15 présente des étapes d’un procédé envisageable pour le décodage du flux de données de la figure 6.
Ce procédé comprend une étape E40 d’identification et d’analyse du paquet de données 22 par le module d’analyse de flux 52.
Cette étape comprend ici l’identification du début du paquet de données 22 au moyen du marqueur M, la détection de l’identifiant de type (premières données) correspondant au type prédéterminé T1 et la lecture de données NNC (deuxièmes données) descriptives d’un réseau de neurones artificiels.
L’étape E40 peut comprendre également la lecture et/ou le décodage d’un identifiant NNI associé à ce réseau de neurones artificiels. Comme expliqué dans d’autres modes de réalisation, cela permet, en cas de détection ultérieur d’un paquet de données de type T1 et comprenant le même identifiant NNI, de ne pas avoir à décoder à nouveau les données NNC descriptives du réseau de neurones artificiels.
Le procédé comprend alors une étape E42 de décodage des données NNC afin d’obtenir des paramètres du réseau de neurones artificiels, et de mémorisation des paramètres obtenus dans une mémoire du dispositif de décodage (par exemple une mémoire associée au module de configuration 56). Comme indiqué ci-dessus, dans les modes de réalisation où un identifiant NNI est utilisé au sein du paquet de données 22 et qu’un précédent paquet de données de type T1 et portant cet identifiant NNI a déjà été traité, cette étape peut être omise.
Lors de l’étape E42, le module de configuration 54 peut configurer le module de décodage 56 (au moyen des paramètres obtenus comme il vient d’être mentionné) afin que le module de décodage 54 puisse décoder les données représentatives suivantes reçues dans le flux de données en utilisant le réseau de neurones artificiels.
Le procédé comprend ensuite une étape E44 d’identification et d’analyse (par le module d’analyse de flux 52) du paquet de données 24. On considère ici qu’aucun paquet de données de type T1 n’est compris entre le paquet de données 22 et le paquet de données 24.
L’étape E44 comprend ici l’identification du début du paquet de données 24 au moyen du marqueur M, la détection de l’identifiant de type qui indique ici le type T2 correspondant aux paquets de données contenant une représentation codée de la vidéo, et la lecture (dans le flux de données) d’une partie C de la représentation codée (deuxièmes données du paquet de données 24).
Le procédé comprend alors une étape E46 de décodage de la partie C de la représentation codée par le module de décodage 54 en utilisant le réseau de neurones artificiels représenté par les données NNC contenues dans le paquet de données 22.
Ainsi, dans le présent mode de réalisation, le réseau de neurones artificiels utilisé pour le décodage de la représentation codée contenue dans un paquet de données 24 est défini (par des données indicatives, ici des données descriptives NNC, contenues) dans le dernier paquet de données de type T1 précédant ce paquet de données 24.
La figure 16 présente des étapes d’un procédé envisageable pour le décodage du flux de données de la figure 7.
Ce procédé comprend une étape E50 d’identification et d’analyse du paquet de données 26 par le module d’analyse de flux 52.
Cette étape comprend ici l’identification du début du paquet de données 26 au moyen du marqueur M, la détection de l’identifiant de type (premières données) correspondant au type prédéterminé T1 et la lecture dans le flux d’un identifiant NNI associé à un réseau de neurones artificiels et de données NNC (deuxièmes données) descriptives du réseau de neurones artificiels correspondant à l’identifiant NNI.
Le procédé comprend alors une étape E52 de décodage des données NNC afin d’obtenir des paramètres du réseau de neurones artificiels, et de mémorisation des paramètres obtenus dans une mémoire du dispositif de décodage (par exemple une mémoire associée au module de configuration 56). Tl
Ultérieurement, lors de l’étape E54, le module d’analyse de flux 52 identifie et analyse le paquet de données 28.
L’étape E54 comprend ici l’identification du début du paquet de données 28 au moyen du marqueur M, la détection de l’identifiant de type qui indique ici le type T4 correspondant aux paquets de données contenant une représentation codée du contenu et identifiant un point d’entrée dans le flux de données, et la lecture (dans le flux de données) de l’identifiant NNI et d’une première partie C de la représentation codée du contenu.
Le procédé peut alors se poursuivre par une étape E56 de décodage de cette première partie C de la représentation codée du contenu, par le module de décodage 54 et au moyen du réseau de neurones artificiels associé à cet identifiant NNI (tel que contenu dans le paquet de données 28). Pour ce faire, l’étape E56 peut éventuellement comprendre en pratique une étape de configuration du module de décodage 54 par le module de configuration 56 et au moyen des paramètres obtenus (et mémorisés) à l’étape E52.
Ultérieurement, lors de l’étape E58, le module d’analyse de flux 52 identifie et analyse le paquet de données 30.
L’étape E58 comprend ici l’identification du début du paquet de données 30 au moyen du marqueur M, la détection de l’identifiant de type qui indique ici le type T2 correspondant à des paquets de données contenant une représentation codée du contenu, et la lecture (dans le flux de données) d’une seconde partie C’ de la représentation codée du contenu.
En effet, comme déjà indiqué, on prévoit dans ce mode de réalisation que seuls les paquets de données correspondant à un point d’entrée possible dans le flux de données contiennent un identifiant (ici NNI) du réseau de neurones à utiliser pour le décodage des représentations codées du contenu.
Le procédé peut alors se poursuivre par une étape E60 de décodage de cette seconde partie C’ de la représentation codée du contenu, par le module de décodage 54 et au moyen du réseau de neurones artificiels associé l’identifiant NNI contenu dans le paquet de données 28 désigné comme point d’entrée possible par l’identifiant de type T4 contenu dans ce paquet de données 28.
La figure 17 présente des étapes d’un procédé envisageable pour le décodage du flux de données de la figure 8. Ce procédé comprend une étape E70 d’identification et d’analyse du paquet de données 32 par le module d’analyse de flux 52.
L’étape E70 comprend ici l’identification du début du paquet de données 32 au moyen du marqueur M, la détection de l’identifiant de type qui indique ici le type T4 correspondant aux paquets de données contenant une représentation codée du contenu et identifiant un point d’entrée dans le flux de données, et la lecture (dans le flux de données) de l’indicateur de description distante DNN, de l’identifiant de localisation NNL et d’une première partie C de la représentation codée du contenu.
On considère ici en effet que l’indicateur de description distante DNN a une valeur (par exemple la valeur 1 ) indiquant que le réseau de neurones artificiels à utiliser pour décoder la première partie C est décrit en dehors de la séquence courante S ; de ce fait, le module d’analyse de flux 52 lit l’identifiant de localisation NNL situé postérieurement (ici immédiatement après) l’indicateur de description distante DNN dans le flux de données.
Le module d’analyse de flux 52 parcourt alors le flux de données d’après les indications données par l’identifiant de localisation NNL (par exemple par parcours de la différence d’octets indiquée par l’identifiant de localisation NNL, ou par saut à l’adresse physique de stockage en mémoire indiquée par l’identifiant de localisation NNL) jusqu’à lire et analyser le paquet de données 36 (étape E72).
Cette étape E72 comprend ici l’identification du début du paquet de données 36 au moyen du marqueur M, la détection de l’identifiant de type (premières données) correspondant au type prédéterminé T1 et la lecture dans le flux de données de données NNC (deuxièmes données) descriptives d’un réseau de neurones artificiels.
Le procédé comprend alors une étape E74 de décodage des données NNC afin d’obtenir des paramètres du réseau de neurones artificiels, et de mémorisation des paramètres obtenus dans une mémoire du dispositif de décodage (par exemple une mémoire associée au module de configuration 56).
Le procédé peut alors se poursuivre par une étape E76 de décodage de la première partie C de la représentation codée du contenu, par le module de décodage 54 et au moyen du réseau de neurones artificiels précité (décodé à partir des données descriptives NNC contenues dans le paquet de données 36). Pour ce faire, l’étape E76 peut éventuellement comprendre en pratique une étape de configuration du module de décodage 54 par le module de configuration 56 et au moyen des paramètres obtenus (et mémorisés) à l’étape E74.
Ultérieurement, lors de l’étape E78, le module d’analyse de flux 52 identifie et analyse le paquet de données 34.
L’étape E78 comprend ici l’identification du début du paquet de données 34 au moyen du marqueur M, la détection de l’identifiant de type qui indique ici le type T2 correspondant à des paquets de données contenant une représentation codée du contenu, et la lecture (dans le flux de données) d’une seconde partie C’ de la représentation codée du contenu.
En effet, comme déjà indiqué, on prévoit dans ce mode de réalisation que seuls les paquets de données correspondant à un point d’entrée possible dans le flux de données contiennent un identifiant (ici NNI) du réseau de neurones à utiliser pour le décodage des représentations codées du contenu.
Le procédé peut alors se poursuivre par une étape E80 de décodage de cette seconde partie C’ de la représentation codée du contenu, par le module de décodage 54 et au moyen du réseau de neurones artificiels obtenu comme décrit ci-dessus aux étapes E74 et 76 au moyen de l’identifiant de localisation NNL contenu dans le paquet de données 32 de type T4 précédent le présent paquet de données 34.
Le traitement éventuel ultérieur du paquet de données 38 (lors du décodage de la séquence S’) n’est pas décrit ici.

Claims

Revendications
1. Procédé de décodage d’un flux de données comportant des paquets de données comprenant chacun au moins des premières données et des deuxièmes données, caractérisé en ce qu’il comprend les étapes suivantes :
- identification (E4, E6 ; E30 ; E40 ; E50 ; E72), parmi lesdits paquets de données, d’un premier paquet de données (12 ; 16 ; 22 ; 26 ; 36 ; 40) dont les premières données incluent une information (T1 ) indicative d’un type prédéterminé de paquet de données ;
- traitement (E12 ; E32 ; E42 ; E52 ; E74) des deuxièmes données (NNC) du premier paquet de données pour obtenir un réseau de neurones artificiels ;
- décodage (E22 ; E38 ; E46 ; E56 ; E60 ; E76 ; E80) des deuxièmes données (C ; C’) comprises dans un second paquet de données (14 ; 20 ; 24 ; 28 ; 30 ; 32 ; 34 ; 42 ; 46) parmi lesdits paquets de données, en utilisant au moins le réseau de neurones artificiels obtenu et de manière à produire des données représentatives d’un contenu audio ou vidéo.
2. Procédé de décodage selon la revendication 1 , dans lequel les deuxièmes données du premier paquet de données comprennent des données descriptives (NNC) du réseau de neurones artificiels, et dans lequel l’étape de traitement est une étape de décodage des données descriptives (NNC) pour obtenir des paramètres du réseau de neurones artificiels.
3. Procédé de décodage selon la revendication 1 ou 2, dans lequel le premier paquet de données comprend un identifiant (NNI) du réseau de neurones artificiels.
4. Procédé de décodage selon la revendication 3, dans lequel l’identifiant (NNI) est un élément d’une liste d’identifiants distincts associés respectivement à des réseaux de neurones artificiels distincts.
5. Procédé de décodage selon la revendication 4, comprenant une étape de réception d’un troisième paquet de données (44) dont les premières données incluent une information (T1 ) indicative dudit type prédéterminé de paquet, et comprenant ledit identifiant (NNI), et une étape de réutilisation dudit réseau de neurones artificiels obtenu pour décoder des deuxièmes données (C’) comprises dans un quatrième paquet de données (46) parmi lesdits paquets de données.
6. Procédé de décodage selon l’une des revendications 3 à 5, dans lequel le second paquet de données comprend ledit identifiant (NNI).
7. Procédé de décodage selon l’une des revendications 4 à 6, comprenant une étape de réception d’un autre paquet de données (18) contenant des paramètres relatifs à au moins une image dudit contenu, dans lequel lesdits paramètres comprennent ledit identifiant (NNI).
8. Procédé de décodage selon l’une des revendications 1 à 5, dans lequel le premier paquet de données (22) est, parmi les paquets de données dont les premières données incluent une information (T1 ) indicative dudit type prédéterminé de paquet, le dernier paquet précédant le second paquet (24) de données dans le flux de données.
9. Procédé de décodage selon l’une des revendications 1 à 3, dans lequel le second paquet de données (32) comprend un pointeur (NNL) vers le premier paquet de données (36).
10. Procédé de décodage selon l’une des revendications 1 à 3, comprenant les étapes suivantes :
- lecture d’un drapeau (DNN) dans le second paquet de données (32) ;
- si le drapeau a une valeur prédéfinie, lecture, dans le second paquet de données (32), d’un pointeur (NNL) vers le premier paquet de données (36).
1 1 . Procédé de décodage selon l’une des revendications 1 à 3, comprenant les étapes suivantes :
- réception d’un autre paquet de données contenant des paramètres relatifs à au moins une image dudit contenu
- lecture d’un drapeau parmi lesdits paramètres ;
- si le drapeau a une valeur prédéfinie, lecture, parmi lesdits paramètres, d’un pointeur vers le premier paquet de données.
12. Procédé de décodage selon l’une des revendications 9 à 1 1 , dans lequel le pointeur (NNL) désigne un emplacement dans une partie du flux de données relative à une séquence d’images (S’) distincte de la séquence d’images (S) codée au moins en partie par les deuxièmes données (C) du second paquet de données (32).
13. Procédé de décodage selon l’une des revendications 1 à 1 1 , dans lequel le premier paquet de données comprend une information (NNF) indicative du format de codage des deuxièmes données (NNC) du premier paquet de données.
14. Dispositif de décodage d’un flux de données comportant des paquets de données comprenant chacun au moins des premières données et des deuxièmes données, caractérisé en ce qu’il comprend un processeur configuré ou programmé pour :
- identifier, parmi lesdits paquets de données, un premier paquet de données (12 ; 16 ; 22 ; 26 ; 36 ; 40) dont les premières données incluent une information (T1 ) indicative d’un type prédéterminé de paquet de données ;
- traiter les deuxièmes données (NNC) du premier paquet de données pour obtenir un réseau de neurones artificiels ;
- décoder les deuxièmes données (C ; C’) comprises dans un second paquet de données (14 ; 20 ; 24 ; 28 ; 30 ; 32 ; 34 ; 42 ; 46) parmi lesdits paquets de données, en utilisant au moins le réseau de neurones artificiels obtenu et de manière à produire des données représentatives d’un contenu audio ou vidéo.
15. Programme d’ordinateur comprend des instructions exécutables par un processeur et conçues pour mettre en œuvre un procédé selon l’une des revendications 1 à 13, lorsque ces instructions sont exécutées par le processeur.
16. Flux de données comportant des paquets de données comprenant chacun au moins des premières données et des deuxièmes données, caractérisé en ce que les paquets de données comprennent :
- un premier paquet de données (12 ; 16 ; 22 ; 26 ; 36 ; 40) dont les premières données incluent une information (T1 ) indicative d’un type prédéterminé de paquet de données et dont les deuxièmes données (NNC) définissent un réseau de neurones artificiels ;
- un second paquet de données (14 ; 20 ; 24 ; 28 ; 30 ; 32 ; 34 ; 42 ; 46) dont les deuxièmes données (C ; C’) sont décodables en utilisant au moins ledit réseau de neurones artificiels de manière à produire des données représentatives d’un contenu audio ou vidéo.
17. Flux de données selon la revendication 16, dans lequel le premier paquet de données (40) comprend un identifiant (NNI), et dans lequel le flux de données comprend un autre paquet de données (44) qui comprend ledit identifiant (NNI), dont les premières données comprennent ladite information (T1 ) indicative du type prédéterminé de paquet de données, et dont les deuxièmes données sont identiques aux deuxièmes données (NNC) du premier paquet de données (40).
PCT/EP2023/067734 2022-06-29 2023-06-28 Procédé et dispositif de décodage, programme d'ordinateur et flux de données associés WO2024003191A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2206565A FR3137518A1 (fr) 2022-06-29 2022-06-29 Procédé et dispositif de décodage, programme d’ordinateur et flux de données associés
FRFR2206565 2022-06-29

Publications (1)

Publication Number Publication Date
WO2024003191A1 true WO2024003191A1 (fr) 2024-01-04

Family

ID=83188529

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/067734 WO2024003191A1 (fr) 2022-06-29 2023-06-28 Procédé et dispositif de décodage, programme d'ordinateur et flux de données associés

Country Status (2)

Country Link
FR (1) FR3137518A1 (fr)
WO (1) WO2024003191A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022013249A2 (fr) 2020-07-17 2022-01-20 Fondation B-Com Procédé de décodage d'un flux de données, dispositif et flux de données associés
WO2022045401A1 (fr) * 2020-08-27 2022-03-03 한국전자기술연구원 Codeur et décodeur de flux binaire d'apprentissage profond, et procédé associé
WO2022079545A1 (fr) * 2020-10-13 2022-04-21 Nokia Technologies Oy Transport et signalisation de représentations de réseaux de neurones
WO2022167977A1 (fr) * 2021-02-05 2022-08-11 Nokia Technologies Oy Syntaxe de haut niveau de signalisation de réseaux neuronaux à l'intérieur d'un flux binaire multimédia

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022013249A2 (fr) 2020-07-17 2022-01-20 Fondation B-Com Procédé de décodage d'un flux de données, dispositif et flux de données associés
WO2022045401A1 (fr) * 2020-08-27 2022-03-03 한국전자기술연구원 Codeur et décodeur de flux binaire d'apprentissage profond, et procédé associé
WO2022079545A1 (fr) * 2020-10-13 2022-04-21 Nokia Technologies Oy Transport et signalisation de représentations de réseaux de neurones
WO2022167977A1 (fr) * 2021-02-05 2022-08-11 Nokia Technologies Oy Syntaxe de haut niveau de signalisation de réseaux neuronaux à l'intérieur d'un flux binaire multimédia

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHOI (TENCENT) B ET AL: "AHG9/AHG11: SEI message for carriage of neural network information for post filtering", no. JVET-U0091, 8 January 2021 (2021-01-08), XP030293216, Retrieved from the Internet <URL:https://jvet-experts.org/doc_end_user/documents/21_Teleconference/wg11/JVET-U0091-v3.zip JVET-U0091-v3.docx> [retrieved on 20210108] *

Also Published As

Publication number Publication date
FR3137518A1 (fr) 2024-01-05

Similar Documents

Publication Publication Date Title
EP0416985B1 (fr) Procédé de multiplexage d&#39;un signal sonore avec un signal vidéo analogique et système correspondant de distribution d&#39;images fixes sonorisées
FR2842378A1 (fr) Procede et dispositif de traitement d&#39;une requete ou de donnees numeriques compressees
FR2702914A1 (fr) Dispositif de codage de suites d&#39;images constituées d&#39;images de nature film et d&#39;images de nature vidéo, et dispositif de décodage correspondant.
FR3025925A1 (fr) Procede de controle de modes de presentation de sous-titres
FR2792150A1 (fr) Procedes et dispositis de codage et de decodage de signaux numeriques, et systemes les mettant en oeuvre
EP4183130A2 (fr) Decodage video utilisant un reseau de neurones
WO2024003191A1 (fr) Procédé et dispositif de décodage, programme d&#39;ordinateur et flux de données associés
FR3006845A1 (fr) Procede d&#39;identification de terminal dans un systeme de fourniture de contenus multimedia
EP3556102B1 (fr) Procede d&#39;enregistrement d&#39;un programme telediffuse a venir
EP1520378B1 (fr) Systeme et procede de gestion sur un terminal de l architect ure dediee a un reseau de communication
EP3479584B1 (fr) Procede de stockage d&#39;un contenu multimedia, procede de lecture associe et procede de gestion d&#39;un espace de stockage contenant un tel contenu
FR2816793A1 (fr) Dispositif de traitement d&#39;information multimedia
FR2613893A1 (fr) Procede de commutation de signaux numeriques asynchrones, et dispositif pour la mise en oeuvre de ce procede
EP2677708B1 (fr) Procédé de communication d&#39;un message audiovisuel, et système de communication
WO2022263297A1 (fr) Procédés et dispositifs de décodage d&#39;une partie au moins d&#39;un flux de données, programme d&#39;ordinateur et flux de données associés
CN114679606B (zh) 一种基于Burst特征的视频流量识别方法、系统、电子设备及存储介质
FR2771544A1 (fr) Procede de codage de la parole et terminaux pour la mise en oeuvre du procede
FR3137475A1 (fr) Procédé et dispositif d’estimation de l’authenticité d’un contenu audio ou vidéo et programme d’ordinateur associé
FR2988959A1 (fr) Procede de tatouage avec streaming adaptatif
WO2022069437A1 (fr) Procédé et dispositif électronique de décodage d&#39;un flux de données, programme d&#39;ordinateur et flux de données associés
WO2022013247A1 (fr) Decodage video parallelise utilisant un reseau de neurones
EP3476110B1 (fr) Procédé et dispositif de traitement d&#39;un objet multimédia
WO2021123563A1 (fr) Analyse d&#39;un contenu multimedia
EP1738571A1 (fr) Systeme de messagerie multimedia et poste telephonique comportant ce systeme
WO2022269181A1 (fr) Gestion d&#39;une audioconference audio et/ou video

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: 23736102

Country of ref document: EP

Kind code of ref document: A1