Method for generating an application for processing at least one multimedia stream, and associated device and computer program

EP4630914A1Pending Publication Date: 2025-10-15ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
EP2023818368
Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-12-09
Filing Date
2023-12-04
Publication Date
2025-10-15

AI Technical Summary

Technical Problem

Computer vision applications lack modularity and resource efficiency due to monolithic coding, leading to unsatisfactory quality of service when processing multimedia streams, as they require rewriting of application code for changes in functions and often instantiate functional blocks on under-resourced computing nodes.

Method used

A method for generating multimedia stream processing applications by selecting elementary processing functions and providing configuration files that allow instantiation on suitable computing nodes, enabling flexible ordering and resource allocation, with parameters specifying network addresses, ports, and identifiers for data collection and processing.

Benefits of technology

This approach enhances the flexibility and resource utilization of low-code/no-code techniques, allowing elementary processing functions to be instantiated on nodes with adequate resources, improving the quality of service and reducing the need for code rewriting, while enabling data pooling between multimedia stream processing applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 1.1
    Figure 1.1
Patent Text Reader

Abstract

The invention relates to a solution for generating an application for processing a multimedia stream comprising an assembly of elementary processing functions, these elementary processing functions being instantiated on computing nodes. A configuration file is supplied to each elementary processing function in order to produce this assembly. In this way, such a method makes it possible to benefit from the advantages of so-called "low-code" or "no-code" techniques, while affording the possibility of selecting elementary functions instantiated on suitable computing nodes.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] DESCRIPTION

[0002] Method for generating an application for processing at least one multimedia stream, associated device and computer program

[0003] Field of invention

[0004] The field of the invention is that of so-called computer vision applications whose purpose is to process multimedia streams. More specifically, the invention relates to computer vision applications assembled in a graphical or “low code” manner.

[0005] Prior art and its drawbacks

[0006] Traditionally, computer vision applications rely on computer code written by computer language specialists. These codes allow functions, also coded, to be called, applying one or more processes to images constituting the multimedia stream to be processed.

[0007] However, such applications lack modularity because they are coded in a monolithic manner, with the functions called being integrated within the application code itself. Thus, any change to one of these functions may require a partial or complete rewrite of the application code.

[0008] With the development of so-called digital technologies, the need for application development has increased. To meet this growing need, application generation techniques requiring little or no computer coding skills have been developed. Such techniques are referred to as "low code" or "no code."

[0009] Such techniques consist of writing computer codes corresponding to elementary processing functions. Thus, each elementary processing function corresponds to a functional block, for example a "facial recognition" block, an "image resizing" block, etc.

[0010] A person wishing to generate a specific application, such as a computer vision application, selects several functional blocks belonging to a library of elementary processing functions made available to him, and assembles them in an orderly manner in order to generate the application allowing the expected processing to be obtained.

[0011] Since the various elementary processing functions are developed independently of each other, a modification impacting one of them has no impact on the other elementary processing functions constituting the application, which reduces the need to rewrite the application code.

[0012] A disadvantage of these solutions is that the different functional blocks offered by a low-code or no-code application generation service provider are instantiated on the same computing node. However, depending on the processing performed by the different functional blocks on the images constituting the multimedia stream, the computing node on which these functional blocks are instantiated may not have the resources necessary to properly execute certain elementary processing functions. In such a case, the computer vision application does not offer a satisfactory quality of service.

[0013] There is therefore a need for a technique for generating an application for processing a multimedia stream which does not have all or part of the aforementioned drawbacks. Presentation of the invention

[0014] The invention meets this need by proposing a method for generating an application for processing at least one multimedia stream, said application comprising an assembly of elementary processing functions.

[0015] Such a method is particular in that it is implemented by an application generation module comprising the following steps:

[0016] - selection of elementary processing functions intended to be assembled to generate said processing application, an elementary processing function being instantiated on a computing node executing said elementary function,

[0017] - for a given selected elementary processing function, association of a configuration file comprising at least one parameter relating to at least one first elementary processing function generating data intended to be processed by said given elementary processing function.

[0018] Such a solution cleverly relies on providing, in a configuration file, parameters allowing a given elementary processing function to identify one or more other elementary processing functions from which to obtain data to be processed.

[0019] Providing these parameters makes it possible to instantiate these elementary processing functions on separate compute nodes. Each elementary processing function can be instantiated on a compute node that has the resources that meet its needs. In the remainder of the document, a compute node is understood to mean any equipment or device that has the resources necessary to execute an elementary processing function. Thus, a compute node can be a camera, a display device such as a screen or a smartphone, a virtual machine, a compute node in a Kubernetes-type cluster of nodes, a server, a personal computer, a processor or CPU (for "Central Processing Unit"), a graphics card or GPU (for "Graphical Processing Unit"), etc.

[0020] Such a configuration file can be generated automatically by the generation module, for example when the parameters relating to an elementary processing function are associated with it in the function block library. Thus, the simple selection of the elementary processing functions to be assembled triggers the generation of the corresponding configuration files.

[0021] The configuration file can also be generated by a user of the generation module for each elementary processing function. Such an implementation allows greater flexibility in the ordering of elementary processing functions between them since the user has the possibility to choose which are the inputs for a given elementary processing function instead of being constrained by the information provided by the function block library.

[0022] Thus, such a method makes it possible to benefit from the advantages of so-called "low code" or "no code" techniques while offering the possibility of selecting elementary functions instantiated on suitable computing nodes. Such a method also makes it possible to share elementary processing functions between several distinct multimedia stream processing applications.

[0023] The parameter relating to said first elementary processing function provided by the configuration file includes, among other things: - a network address of said computing node on which said first elementary processing function is instantiated,

[0024] - a port of said computing node on which said first elementary processing function is instantiated through which the data generated by said first elementary processing function are intended to be provided,

[0025] - an identifier of said first elementary processing function.

[0026] Such information allows the given elementary processing function to identify the relevant computing node and to be able to collect the appropriate data from it.

[0027] This information is also easily identifiable and understandable for a user who can then easily enter it himself into a configuration file.

[0028] More particularly, the parameter relating to said first elementary processing function constitutes an argument of said given selected elementary processing function.

[0029] The configuration file further includes, for said given selected elementary processing function:

[0030] - an identifier of at least one module for providing said data generated by said given selected elementary processing function.

[0031] Such a supply module belongs to the group further comprising:

[0032] - a port of said computing node on which said given selected elementary processing function is instantiated,

[0033] - a display module for said multimedia stream,

[0034] - a memory.

[0035] Depending on the position of the given elementary processing function in the assembly of elementary processing functions constituting the application, the data generated by its execution are intended to be either provided as input to another elementary processing function which will apply additional processing to them, or provided to display and / or storage modules. Such display and / or storage modules may be embedded in the computing node.

[0036] The invention also relates to a method for processing at least one multimedia stream by a processing application comprising an assembly of elementary processing functions, an elementary processing function being instantiated on a computing node executing said elementary function.

[0037] Such a processing method is particular in that it is implemented by a computing node and that it comprises a step of: obtaining data contained in said multimedia stream to be processed, - processing, by said elementary processing function instantiated on said node, of said data obtained,

[0038] - generation of metadata associated with said processed data, provision of said processed data and said generated metadata.

[0039] More particularly, the data obtained are provided by at least one elementary processing function identified in a configuration file of said elementary processing function instantiated on said node. Indeed, as explained above, the different elementary processing functions constituting the application are provided with a configuration file comprising the information allowing a given elementary processing function to identify the computing node from which to collect the data that it must process. This information, being arguments of the given elementary processing function, is provided to it during the generation of the application. Thus, from the first execution of the application, each elementary processing function is able to collect the data that it must process.

[0040] In some cases, the obtained data is acquired by the computing node itself.

[0041] This is the case, for example, when the computing node is embedded in a camera that captures a scene.

[0042] The data obtained may be accompanied by metadata associated with them, said metadata also having been generated by the elementary processing function identified in the configuration file of said elementary processing function instantiated on said node.

[0043] This metadata may contain information about the processing previously performed on the images in the media stream.

[0044] In the same way, the metadata generated by said elementary processing function instantiated on said node belong to the group further comprising:

[0045] - coordinates of a camera having acquired the content of the multimedia stream,

[0046] - an identifier of said camera,

[0047] - coordinates of at least one motion vector calculated for at least one image constituting the multimedia stream,

[0048] - at least one identifier of at least one object detected in at least one image constituting the multimedia stream.

[0049] This metadata is included in a data field of said at least one stream, relating to at least one still image to be processed.

[0050] Metadata is included, for example, in an AAPn or COM field of the JPEG format or in one of the iTXt, tEXt and zTXt fields of the PNG format.

[0051] Thus, there is no need to generate new messages to transmit this additional data. This facilitates the implementation of the present invention in already existing systems.

[0052] The invention also relates to a module for generating an application for processing at least one multimedia stream, said application comprising an assembly of elementary processing functions.

[0053] Such an application generation module includes means for:

[0054] - selecting elementary processing functions intended to be assembled to generate said processing application, an elementary processing function being instantiated on a computing node executing said elementary function,

[0055] - for a given selected elementary processing function, associate a configuration file comprising at least one parameter relating to at least a first elementary processing function generating data intended to be processed by said given elementary processing function.

[0056] The invention also relates to a computing node on which at least one elementary processing function included in an application for processing a multimedia stream is instantiated.

[0057] Such a computing node performs said elementary function and comprises at least one processor configured to:

[0058] - obtain data contained in said multimedia stream to be processed,

[0059] - process, by means of said elementary processing function instantiated on said node, said data obtained,

[0060] - generate metadata associated with said processed data,

[0061] - provide said processed data and said generated metadata.

[0062] The invention finally relates to computer program products comprising program code instructions for implementing the methods as described above, when executed by a processor.

[0063] The invention also relates to a computer-readable recording medium on which computer programs are recorded comprising program code instructions for executing the steps of the methods according to the invention as described above.

[0064] Such a recording medium may be any entity or device capable of storing programs. For example, the medium may include a storage medium, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a USB key or a hard disk.

[0065] On the other hand, such a recording medium may be a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means, so that the computer programs contained therein are remotely executable. The programs according to the invention may in particular be downloaded over a network, for example the Internet.

[0066] Alternatively, the recording medium may be an integrated circuit in which the programs are incorporated, the circuit being adapted to execute or to be used in the execution of the methods which are the subject of the invention mentioned above.

[0067] List of figures

[0068] Other aims, characteristics and advantages of the invention will appear more clearly on reading the following description, given as a simple illustrative, and non-limiting, example, in relation to the figures, among which:

[0069] Figure 1: This figure represents a system in which the present invention is implemented,

[0070] Figure 2: This figure represents the different steps implemented to generate an application for processing a multimedia stream,

[0071] Figure 3: This figure represents a first example of assembly of elementary processing functions, Figure 4: This figure represents a second example of assembly of elementary processing functions,

[0072] Figure 5: this figure represents the different steps implemented to process a multimedia stream by means of a processing application represented in figure 3 and obtained according to the method described with reference to figure 2,

[0073] Figure 6: This figure represents a generation module according to one embodiment of the invention. A generation module is capable of implementing the method for generating an application for processing a multimedia stream according to Figure 2.

[0074] Detailed description of embodiments of the invention

[0075] The general principle of the invention is based on the generation of an application for processing a multimedia stream comprising an assembly of elementary processing functions, these elementary processing functions being instantiated on computing nodes. A configuration file is provided to each elementary processing function in order to carry out this assembly.

[0076] Thus, such a process makes it possible to benefit from the advantages of so-called “low code” or “no code” techniques while offering the possibility of selecting elementary functions instantiated on suitable computing nodes.

[0077] A system in which the present invention is implemented is now presented in relation to Figure 1.

[0078] Such a system is a distributed system in which a plurality of computing nodes communicate with each other to process a multimedia stream.

[0079] The system thus represented comprises, for example, a generation module 10 of an application for processing a multimedia stream. Such a generation module 10 is for example embedded in a server or in a virtual machine operated by a multimedia stream processing service provider.

[0080] Such a generation module 10 comprises a library 12 of FTE elementary processing functions, or functional blocks. Such FTE elementary processing functions are, for example, a function for acquiring images representative of a scene, a function for resizing an image, a colorimetry function, an object detection function, a function for displaying multimedia content or storing multimedia content, etc. Each of these FTE elementary processing functions is instantiated on a computing node 11-i having the resources necessary for executing the instantiated FTE elementary processing function. A single computing node can instantiate several FTE elementary processing functions. For example, a computing node can be any equipment or device having the resources necessary for executing an elementary processing function.So, a compute node can be a camera, a display device such as a screen or a smartphone, a virtual machine, a compute node of a Kubernetes-type cluster of nodes, a server, a personal computer, a CPU, a GPU, etc.

[0081] Although four computing nodes 11-1 to 11-4 are shown in Figure 1, the number of computing nodes involved in the implementation of the present solution depends on the number of FTE elementary processing functions assembled to constitute the application for processing a multimedia stream. In the present solution, three types of FTE elementary processing functions are considered. A first type of elementary processing functions is called FTES source, a second type is called FTEO operation and a third type is called FTEP sink.

[0082] An FTES source function is an elementary processing function having no input but at least one output.

[0083] When an elementary processing function has no input, this means that the data it processes is not supplied by another elementary processing function but is obtained by another means. An FTES source function is, for example, a function for decoding images acquired by a camera or a demosaicing function. An FTES source function can also read the data it must process from memory.

[0084] An output of an elementary processing function is, for example, a port of the 11-i compute node on which it is instantiated and through which the data generated by the elementary processing function is provided (or made accessible).

[0085] An FTEO operation function is an intermediate processing function having one or more inputs and one or more outputs. Such an FTEO operation function obtains data to be processed on each of its inputs from an output of another source or operation FTE elementary processing function and makes the data it has generated accessible on each of its outputs.

[0086] Finally, an FTEP well function is an elementary processing function having no output but at least one input.

[0087] When an elementary processing function has no output, it means that the data it has processed is not provided to another elementary processing function but is presented to an end user. An FTEP sink function is, for example, a display device or a data storage module.

[0088] A multimedia stream processing application is an assembly of at least one FTES source function and at least one FTEP sink function. Such an application may also include at least one FTEO operation function.

[0089] Figure 2 represents the different steps implemented to generate an application for processing a multimedia stream.

[0090] In a step E1, the generation module 10 selects, from the library 12, at least one FTES source function, in the example described this is the source function “Camera”, at least one FTEO operation function, in the example described two operation functions are selected: a first “Resize” operation function which resizes the size of the images and a second “YOLO” operation function (for “You Only Look Once” in English) which detects objects in an image, and at least one FTEP “Viz” sink function which makes it possible to display the result of the various treatments applied on a screen. Of course, other elementary processing functions can be selected and assembled in order to generate an application for processing a multimedia stream.

[0091] An end user can interact with the generation 10 module by means of a human-machine interface (not shown in the figures) such as a touch screen or a screen-keyboard pair in order to transmit to the generation 10 module instructions making it possible to select the different elementary FTE functions to be assembled. Once the different elementary FTE processing functions have been selected, the latter are assembled in order to generate the application for processing a multimedia stream.

[0092] For this, an FC configuration file is provided to each of the selected FTE elementary processing functions.

[0093] Such a configuration file FC is generated during a step E2. In a first embodiment, a configuration file FC can be generated automatically by the generation module 10, for example when the parameters relating to an elementary processing function are associated with the latter in the library 12. Thus, the selection and the ordering between them of the elementary processing functions FTE to be assembled triggers the generation of the corresponding configuration file(s).

[0094] In a second embodiment, the FC configuration file can also be generated by the user of the generation module 10. Such an implementation allows greater flexibility in the ordering of the elementary processing functions between them since the user has the possibility of choosing which are the inputs for a given elementary processing function instead of being constrained by the information provided by the library 12.

[0095] For an FTES source function, such an FC configuration file includes at least one identifier of at least one output or supply module on which the data processed or generated by the FTES source function is intended to be made accessible.

[0096] Such an identifier is, for example, a port / path pair, where "port" corresponds to a port number of the compute node on which the FTE function is instantiated and "path" is a parameter identifying the FTE elementary processing function that made the data accessible. The "port" parameter is particularly useful when the same compute node instantiates several FTE elementary processing functions.

[0097] For an FTEO operation function, such an FC configuration file comprises at least one identifier of at least one input and at least one identifier of at least one output on which the data processed or generated by the FTEO operation function is intended to be provided.

[0098] More particularly, such an FC configuration file comprises for each input of the FTEO operation function a network address of a computing node on which at least one FTS source function and / or at least one other operation function are instantiated, these elementary processing functions providing data to be processed to the FTEO operation function, a port of the computing nodes concerned on which these FTES source functions and / or these FTEO operation functions provide the generated data and an identifier of these FTES source functions and / or these FTEO operation functions.

[0099] The FC configuration file also includes at least one identifier of at least one output on which the data processed or generated by the FTEO operation function is intended to be provided.

[0100] Finally, for an FTEP sink function, such a FC configuration file comprises for each input of the FTEP sink function a network address of a computing node on which at least one FTS source function and / or at least one operation function are instantiated, these elementary processing functions providing data to be processed to the FTEP sink function, a port of the computing nodes concerned on which these FTES source functions and / or these FTEO operation functions provide the generated data and an identifier of these FTES source functions and / or these FTEO operation functions. Once the configuration files have been generated, the latter are transmitted in a step E3 to the various selected FTE elementary processing functions.

[0101] Figure 3 represents a first example of an assembly of elementary FTE processing functions. Such an assembly comprises an FTES source function “Camera” configured to decode the images acquired by a camera. This source function has a single output. Such a source function is for example instantiated on a CPU type 11-1 computing node.

[0102] The assembly then includes a first operation function "Resize" which resizes the images acquired by the camera. The "Resize" function has an input which collects the data provided by the "Camera" function and a single output. Such an operation function is for example instantiated on a CPU type 11-2 computing node.

[0103] The assembly includes a second operation function "YOLO" that detects and identifies objects present in the images acquired by the camera. The "YOLO" function has a single input that collects the data provided by the "Resize" function and a single output. Such an operation function is for example instantiated on a GPU-based 11-3 compute node.

[0104] Finally, the assembly includes an FTEP sink function "Viz" that displays the images acquired by the camera on a screen. The "Viz" function has a single input that collects the data provided by the "YOLO" function and does not include any output. Such a sink function is for example instantiated on a CPU-type 11-4 compute node.

[0105] Referring to the assembly described in Figure 3, the FC1 configuration file of the “Camera” function includes the following data:

[0106] / Camera -port=8080, where / Camera is the identifier of the source function, and -port=8080 is the identifier of the supply module on which the data processed by the sink function is made accessible.

[0107] The FC2 configuration file for the "Resize" function includes the following data:

[0108] / Resize 192.168.0.1 : 8080 / cam -port=8080, where / Resize is the identifier of the first operation function, 192.168.0.1 is the network address of the 11-1 compute node on which the "Camera" function is instantiated and 8080 / cam the port / path pair of the compute node on which the "Camera" function is instantiated and on which the data processed by the "Camera" function is provided, and -port=8080 the identifier of the provisioning module on which the data processed by the "Resize" function is made accessible.

[0109] The FC3 configuration file for the “YOLO” function includes the following data:

[0110] / YOLO 192.168.5.1 : 8080 / rsz -port=8080, where / YOLO is the identifier of the second operation function, 192.168.5.1 is the network address of the 11-2 compute node on which the "Resize" function is instantiated and 8080 / rsz the port / path pair of the compute node on which the "Resize" function is instantiated and on which the data processed by the "Resize" function is provided, and -port=8080 the identifier of the provisioning module on which the data processed by the "YOLO" function is made accessible.

[0111] Finally, the FC4 configuration file for the “Viz” function includes the following data:

[0112] / Viz 192.168.10.1 : 8080 / objs, where / Viz is the identifier of the second sink function, 192.168.10.1 is the network address of the 11-3 compute node on which the “YOLO” function is instantiated and 8080 / objs the port / path pair of the compute node on which the “YOLO” function is instantiated and on which the data processed by the “YOLO” function is provided.

[0113] Once in possession of its FC configuration file, each FTE elementary processing function knows from which computing node to obtain the data it must process and on which access module it must make its own data accessible.

[0114] Figure 4 represents a second example of an assembly of elementary FTE processing functions. Such an assembly comprises an FTES source function “Camera” configured to decode the images acquired by a camera. This source function has a single output. Such a source function is for example instantiated on a CPU type 11-1 computing node.

[0115] The assembly then includes a first operation function "Resize" which resizes the images acquired by the camera. The "Resize" function has an input which collects the data provided by the "Camera" function and two outputs. Such an operation function is for example instantiated on a CPU type 11-2 compute node.

[0116] The assembly includes a second operation function "YOLO" that detects and identifies objects present in the images acquired by the camera. The "YOLO" function has a single input that collects the data provided by the "Resize" function and a single output. Such an operation function is for example instantiated on a GPU-based 11-3 compute node.

[0117] The assembly includes a third operation function "Face" which detects, for example, faces present in the images acquired by the camera. The "Face" function has a single input which collects the data provided by the "Resize" function and a single output. Such an operation function is for example instantiated on a GPU-type 11-5 compute node.

[0118] Finally, the assembly includes an FTEP sink function “Viz” that displays the images acquired by the camera on a screen. The “Viz” function has two inputs, a first input that collects the data provided by the “YOLO” function and a second input that collects the data provided by the “Face” function and contains no output. Such a sink function is for example instantiated on a CPU-type 11-4 compute node.

[0119] Referring to the assembly described in Figure 4, the FC1 configuration file of the “Camera” function includes the following data:

[0120] / Camera -port=8080, where / Camera is the identifier of the source function, and -port=8080 is the identifier of the supply module on which the data processed by the sink function is made accessible.

[0121] The FC2 configuration file for the "Resize" function includes the following data:

[0122] / Resize 192.168.0.1 : 8080 / cam -port=8080, where / Resize is the identifier of the first operation function, 192.168.0.1 is the network address of the 11-1 compute node on which the "Camera" function is instantiated and 8080 / cam the port / path pair of the compute node on which the "Camera" function is instantiated and on which the data processed by the "Camera" function is provided, and -port=8080 the identifier of the provisioning module on which the data processed by the "Resize" function is made accessible.

[0123] The FC3 configuration file of the “YOLO” function includes the following data: / YOLO 192.168.5.1 : 8080 / rsz -port=8080, where / YOLO is the identifier of the second operation function, 192.168.5.1 is the network address of the 11-2 computing node on which the “Resize” function is instantiated and 8080 / rsz the port / path pair of the computing node on which the “Resize” function is instantiated and on which the data processed by the “Resize” function is provided, and -port=8080 the identifier of the provisioning module on which the data processed by the “YOLO” function is made accessible.

[0124] The FC5 configuration file for the “Face” function includes the following data:

[0125] / Face 192.168.5.1 : 8080 / rsz -port=8080, where / Face is the identifier of the second operation function, 192.168.5.1 is the network address of the 11-2 compute node on which the "Resize" function is instantiated and 8080 / rsz the port / path pair of the compute node on which the "Resize" function is instantiated and on which the data processed by the "Resize" function is provided, and -port=8080 the identifier of the provisioning module on which the data processed by the "Face" function is made accessible.

[0126] Finally, the FC4 configuration file for the “Viz” function includes the following data:

[0127] / Viz 192.168.10.1: 8080 / objs,

[0128] / Viz 192.168.15.1 :8080 / fcs where / Viz is the identifier of the second sink function, 192.168.10.1 is the network address of the compute node 11-3 on which the “YOLO” function is instantiated and 8080 / objs the port / path pair of the compute node on which the “YOLO” function is instantiated and on which the data processed by the “YOLO” function is provided, and 192.168.15.1 is the network address of the compute node 11-5 on which the “Face” function is instantiated and 8080 / fcs the port / path pair of the compute node on which the “Face” function is instantiated and on which the data processed by the “Face” function is provided.

[0129] Once in possession of its FC configuration file, each FTE elementary processing function knows from which computing node to obtain the data it must process and on which supply module it must make its own data accessible.

[0130] The data included in these different FC configuration files are considered as arguments to the FTE elementary processing functions which are provided to them as a preamble to their execution.

[0131] Figure 5 represents the different steps implemented to process a multimedia stream using the processing application represented in Figure 3 and obtained according to the method described with reference to Figure 2.

[0132] In a Gl step, a source function, here the “Camera” function, acquires images of a scene which it decodes during a G2 step.

[0133] The "Camera" function also generates metadata related to the decoded images. Such metadata are, for example, a camera identifier, a camera resolution, a timestamp of the captured images, a geolocation of the captured images, etc. Such metadata is included, for example, in the AAPn (for "Application Specific") field or the COM (for "Comment") field of the JPEG (for "Joint Photography Experts Group") format in which the images are encoded. Other still image processing formats and their corresponding data fields can of course be used, such as, for example, the PNG format with, among others, the iTXt, tEXt and zTXt fields, etc. In accordance with what is indicated in the FC configuration file, the "Camera" function provides the decoded images and their metadata on port 8080 of the compute node 11-1 on which the "Camera" function is instantiated in a G3 step.

[0134] During a G4 step, the “Resize” function obtains, in accordance with the information included in its FC1 configuration file, the data provided by the “Camera” function.

[0135] Using the information included in the metadata accompanying the obtained data, the "Resize" function processes the latter in a G5 step. The "Resize" function also generates metadata relating to the resized images, this metadata can still include the information generated by the "Camera" function, such as timestamp information for example.

[0136] As stated in the FC1 configuration file, the "Resize" function provides the resized images and their metadata on port 8080 of the 11-2 compute node on which the "Resize" function is instantiated in a G6 step.

[0137] During a G7 step, the “YOLO” function obtains, in accordance with the information included in its FC2 configuration file, the data provided by the “Resize” function.

[0138] Using the information included in the metadata accompanying the obtained data, the “YOLO” function processes the latter during a G8 step. The “YOLO” function also generates metadata relating to the objects identified in the resized images, this metadata can still include the information generated by the “Camera” function and the “Resize” function, such as timestamp information for example, as well as information relating to the identified objects such as their name, their position in the image, etc.

[0139] As stated in the FC2 configuration file, the “YOLO” function provides the resized images and their metadata on port 8080 of the 11-3 compute node on which the “YOLO” function is instantiated in a G9 step.

[0140] During a G10 step, the “Viz” function obtains, in accordance with the information included in its FC configuration file, the data provided by the “YOLO” function.

[0141] Using the information included in the metadata accompanying the obtained data, the "Viz" function processes the latter in a Gll step and the images thus processed are displayed on a screen.

[0142] Figure 6 represents a generation module 10 according to one embodiment of the invention. A generation module 10 is capable of implementing the method for generating an application for processing a multimedia stream according to Figure 2.

[0143] A generation 10 module may comprise at least one hardware processor 61, a storage unit 62, at least one interface 63, and at least one human-machine interface 64 which are connected to each other via a bus 65. Of course, the constituent elements of the generation 10 module may be connected by means of a connection other than a bus.

[0144] The processor 61 controls the operations of the generation module 10. The storage unit 62 stores at least one program for implementing the method according to an embodiment of the invention to be executed by the processor 61, and various data, such as parameters used for calculations performed by the processor 61, intermediate data of calculations performed by the processor 61, etc. The processor 61 may be formed by any known and suitable hardware or software, or by a combination of hardware and software. For example, the processor 61 may be formed by dedicated hardware such as a processing circuit, or by a programmable processing unit such as a central processing unit (Central Processing Unit) which executes a program stored in a memory thereof.

[0145] The storage unit 62 may be formed by any suitable means capable of storing the program(s) and data in a computer-readable manner. Examples of the storage unit 62 include non-transitory computer-readable storage media such as semiconductor memory devices, and magnetic, optical, or magneto-optical recording media loaded into a read-write unit.

[0146] Interface 63 provides a connection between the Generation 10 module and all 11-i compute nodes in the system.

[0147] The human-machine interface 64 may be a touch screen or a set comprising a keyboard, a mouse and a screen.

Claims

CLAIMS 1. Method for generating an application for processing at least one multimedia stream, said application comprising an assembly of elementary processing functions, said method being implemented by an application generation module and comprising the following steps: - selection of elementary processing functions intended to be assembled to generate said processing application, an elementary processing function being instantiated on a computing node executing said elementary function, - for a given selected elementary processing function, association of a configuration file comprising at least one parameter relating to at least one first elementary processing function generating data intended to be processed by said given elementary processing function.

2. Method for generating a processing application according to claim 1 wherein said parameter relating to said first elementary processing function comprises: - a network address of said computing node on which said first elementary processing function is instantiated, - a port of said computing node on which said first elementary processing function is instantiated, through which the data generated by said first elementary processing function are intended to be provided, - an identifier of said first elementary processing function.

3. Method for generating a processing application according to claim 2 wherein said parameter relating to said first elementary processing function is an argument of said given selected elementary processing function.

4. Method for generating a processing application according to claims 1 to 3 wherein said configuration file further comprises, for said given selected elementary processing function: - an identifier of at least one module for providing said data generated by said given selected elementary processing function.

5. Method for generating a processing application according to claim 4 wherein said identifier is an argument of said given selected elementary processing function.

6. Method for generating a processing application according to claim 4 or claim 5 in which said module belongs to the group comprising: - a port of said computing node on which said given selected elementary processing function is instantiated, - a display module for said multimedia stream, - a memory.

7. Method for processing at least one multimedia stream by a processing application comprising an assembly of elementary processing functions, an elementary processing function being instantiated on a computing node executing said elementary function, said method being implemented by a computing node and comprising the following: - obtaining data contained in said multimedia stream to be processed, - processing, by said elementary processing function instantiated on said node, of said data obtained. - generation of metadata associated with said processed data. - provision of said processed data and said generated metadata.

8. Method for processing at least one multimedia stream according to claim 7 in which the data obtained are provided by at least one elementary processing function identified in a configuration file of said elementary processing function instantiated on said node.

9. Method for processing at least one multimedia stream according to claim 8 in which the computing node obtains metadata associated with said obtained data, said metadata having also been generated by the elementary processing function identified in the configuration file of said elementary processing function instantiated on said node.

10. Method for processing at least one multimedia stream according to claim 7 in which the data obtained are acquired by said computing node.

11. Method for processing at least one multimedia stream according to any one of claims 7 to 10 in which the metadata generated by said elementary processing function instantiated on said node belong to the group comprising: - coordinates of a camera having acquired content from the multimedia stream, - an identifier of said camera, - coordinates of at least one motion vector calculated for at least one image contained in the multimedia stream, - at least one identifier of at least one object detected in at least one image contained in the multimedia stream.

12. Method for processing at least one multimedia stream according to any one of claims 7 to 11 in which the metadata are included in a data field of said at least one stream, relating to at least one still image to be processed.

13. Module for generating an application for processing at least one multimedia stream, said application comprising an assembly of elementary processing functions, said application generation module comprising means for: - selecting elementary processing functions intended to be assembled to generate said processing application, an elementary processing function being instantiated on a computing node executing said elementary function, - for a given selected elementary processing function, associate a configuration file comprising at least one parameter relating to at least a first elementary processing function generating data intended to be processed by said given elementary processing function.

14. Computing node on which at least one elementary processing function included in an application for processing a multimedia stream is instantiated, said computing node executing said elementary function and comprising at least one processor configured to: - obtain data contained in said multimedia stream to be processed, - process, by means of said elementary processing function instantiated on said node, said data obtained, - generate metadata associated with said processed data, - provide said processed data and said generated metadata.