DATA TRANSFER PROCEDURES
Patent Information
- Application Number
- DE602020051268
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-07-24
- Filing Date
- 2020-07-24
- Publication Date
- 2025-05-14
- Estimated Expiration
- 2040-07-24
Description
DOMAINE TECHNIQUE
[0001] The invention relates to the field of client-server architectures, the virtualization of operating systems and remote access protocols to operating systems and virtualized applications. ÉTAT DE LA TECHNIQUE
[0002] Today's smart electronic devices are generally made up of electronic components (processors, memories, communication interfaces, screen, external memories and sensors such as microphones, cameras, GPS...) and software, the main part of which is called the operating system, which allows applications to be run on these devices.
[0003] Examples of such devices include: modern mobile phones (smartphones), touchscreen tablets, desktop or laptop computers, game consoles, and television receiving terminals.
[0004] A significant part of the maintenance of these electronic devices is related to updating their operating system and applications, as well as the support necessary for their use (troubleshooting, training).
[0005] Indeed: the size of operating systems can reach several gigabytes (between 10 and 30 generally, especially in the case of consumer devices, which today provide access to the largest number of applications (including those providing access to services, including internet browsers).
[0006] The association of the operating system and one or more applications running on it consumes additional energy and memory beyond that required to install them.
[0007] These constraints require devices that use these operating systems to contain sufficient power and memory (volatile and non-volatile).
[0008] This power and memory capacity is necessary both to contain the operating system and certain applications, and to be able to run said applications with ever-increasing performance.
[0009] This escalation of power and memory poses many problems, particularly for manufacturers, industrialists, distributors of electronic devices or even application providers for these devices.
[0010] These problems are numerous and range from the manufacturing costs of electronic devices, a large part of which is linked to the costs of memory components and computing power, to energy consumption problems.
[0011] Users also face numerous challenges. These include the ongoing maintenance of their devices, the stress associated with the loss, theft, or damage of their equipment, and the complex management of energy autonomy and available disk space.
[0012] A potential solution emerged with the virtualization of applications, primarily video games, which run not on the user's computer but on a remote server. In this client-server configuration, the server transmits a video stream to the user's computer, which then acts as the client. The user's role is limited to displaying the application running remotely on the server. This type of solution requires significant bandwidth between the server and the client, even though the video stream can be compressed. It also demands substantial processing power and investment from the server, which must handle the execution, rendering, and encoding of the application or video game into a video format.
[0013] Furthermore, when the client wants to control the application or video game, they must send control commands to the computer server, which must execute them and then convert the rendering of the application or video game into a video stream. This stream must then be transmitted and decompressed by the computer terminal. This results in significant latency problems as well as rendering quality issues.
[0014] US patent application 2013 / 007221 A1 relates to a method for improving resource download techniques for applications to reduce download time.
[0015] And patent application FR 2 975 554 A1 presents a method of transmitting content to a terminal in which the content is adapted to the user receiving the content.
[0016] The present invention aims to solve at least some of these problems. SUMMARY
[0017] The present invention relates to a method of transmitting from at least one computer server to at least one computer terminal at least one data D having at least one first attribute A, said at least one computer server being in communication with said computer terminal, typically via a communication network that is at least partly wireless, said method comprising at least the following successive phases: i. At least one initialization phase comprising at least the following steps: a. Reception by said computer terminal of said data D sent by at least one computer server; b. Reception, from at least one computer server, by said computer terminal of a first state A(n) of said first attribute A, said first state A(n) being associated with a first time data designated first time T(n); c. Use, in particular display, by said computer terminal of said data D according to the first state A(n) of said first attribute A at first time T(n); d.Reception by said computer terminal: ▪ of a second state A(n+1) of said first attribute A corresponding to a second time T(n+1) from at least one computer server, ▪ Then, calculation by said computer terminal of a first evolution parameter E(n) of said first attribute A as a function of A(n) and A(n+1); or, ▪ of the first evolution parameter E(n) of said first attribute A from at least one computer server, ▪ Then, calculation by said computer terminal of the second state A(n+1) as a function of A(n) and E(n); ii.At least one evolution phase comprising at least the following steps: ▪ Use by said computer terminal of said data D according to the second state A(n+1) of said first attribute A at the second time T(n+1) ▪ Then, calculation by said computer terminal of a third state A(n+2) of said first attribute A corresponding to a third time T(n+3) as a function of A(n) and / or A(n+1), and E(n); ▪ Then, use by said computer terminal of said data D according to the third state A(n+2) of said first attribute A at the third time T(n+2).Or, ▪ Reception by said computer terminal of a second evolution parameter E(n+1) of said first attribute A from at least one computer server, E(n+1) being different from E(n); ▪ Then, Calculation by said computer terminal of a third state A(n+2) of said first attribute A corresponding to a third time T(n+2) as a function of A(n) and / or A(n+1), and E(n+1); ▪ Then, Use by said computer terminal of said data D according to the third state A(n+2) of said first attribute A at the third time T(n+2). Or, ▪ Reception by said computer terminal of a third state A(n+2) of said first attribute A at the third time T(n+2) from at least one computer server, A(n+2) being different from A(n+1); ▪ Then, use by said computer terminal of said data D according to the third state A(n+2) of said first attribute A at the third time T(n+2).▪ Then, preferably, calculation by said computer terminal of a third evolution parameter E(n+1) of said first attribute A as a function of A(n+1) and A(n+2); ▪ Then, preferably, calculation by said computer terminal of the fourth state A(n+3) of said first attribute A at the fourth time T(n+3) as a function of A(n+2) and E(n+1); ▪ Then, preferably, use by said computer terminal of said data D according to the fourth state A(n+3) of said first attribute A at the fourth time T(n+3).
[0018] Preferably the use by said computer terminal of said data D is taken from at least: a display of said data D via a display device, a storage of said data D via a storage device, an analysis of said data D via an analysis device.
[0019] Thus, the system proposed by the invention is a client-server architecture for virtualizing operating systems and applications intended for electronic devices and using a predictive method of data transmission and compression with reduced latency, optimizing network bandwidth requirements between the server and its clients (electronic devices).
[0020] The terminal only needs to receive one of the following: either a change parameter or a subsequent state. It then deduces all the intermediate states that follow an initial state. It can thus successively calculate all subsequent states. This calculation is interrupted when the terminal receives new information from the server that will cause it to modify the calculation of subsequent states. This new information can be a new change parameter or a new state of the attribute.
[0021] Thus, the present invention makes it possible to reduce the bandwidth consumption of the communication network between the computer terminal and the computer server. Indeed, the present invention makes it possible to reduce the amount of information to be transmitted compared to the prior art.
[0022] The present invention makes it possible to reduce transmission latency, because it can cancel it during the phases in which the terminal deduces successive states from previous states.
[0023] The present invention enables a reduction, or even an elimination, of latency through its ingenious data transmission method.
[0024] The present invention makes it possible to reduce the energy consumption of computer terminals since computer terminals have a much lower system resource requirement than the prior art.
[0025] By hosting the operating system and applications at the level of the computer server(s), the present invention makes it possible to reduce the need for memory space on the terminal compared to prior art solutions in which the operating system and applications are hosted on the terminal.
[0026] The present invention allows for the preservation of current application versions since these applications are executed on one or more computer servers, which is therefore transparent to the user terminal. The user terminal then appears only as a means of displaying and interacting with an application located on a computer server. The present invention thus facilitates the updating and maintenance of the operating system and applications.
[0027] Finally, the present invention allows for a very high quality of rendering compared to the prior art, given its clever method of data transmission reduced to a minimum, preferably while still allowing the terminal to accurately deduce the real states in many cases.
[0028] Indeed, beyond data compression, the present invention reduces the amount of data to be transmitted while maintaining rendering quality equivalent to current solutions. The present invention thus offers a particularly effective solution to the latency problems encountered with known application virtualization solutions.
[0029] The present invention also relates to a method of transmitting from at least one computer server to at least one computer terminal at least one data item D having at least one first attribute A, said at least one computer server being in communication with said computer terminal, said method comprising at least the following phases: i. At least one initialization phase comprising at least the following steps: a. Reception by said computer terminal and from at least one computer server of at least: ▪ said data D; ▪ a first state A(n) of said first attribute A corresponding to a first time T(n); b. Use by said computer terminal of said data D according to the first state A(n) of said first attribute A at the first time T(n); c. Reception by said computer terminal: ▪ of a second state A(n+1) of said first attribute A corresponding to a second time T(n+1) from at least one computer server, ▪ Then, calculation by said computer terminal of a first evolution parameter E(n) of said first attribute A as a function of A(n) and A(n+1); or, ▪ of the first evolution parameter E(n) of said first attribute A from at least one computer server, ▪ Then, calculation by said computer terminal of the second state A(n+1) as a function of A(n) and E(n); ii.At least one evolution phase comprising at least one iteration of the following steps: a. Use by said computer terminal of said data D according to the second state A(n+1) of said first attribute A at the second time T(n+1); b. Then, calculation by said computer terminal of a third state A(n+2) of said first attribute A corresponding to a third time T(n+2) as a function of A(n) and / or A(n+1) and E(n); c. Then, use by said computer terminal of said data D according to the third state A(n+2) of said first attribute A at the third time T(n+2). d.During the steps of the evolution phase, the first evolution parameter E(n) being modified into a second evolution parameter E(n+1), if: ▪ said computer terminal receives a second evolution parameter E(n+1) of said first attribute A from at least one computer server, E(n+1) being different from E(n); said calculation by said computer terminal of the third state A(n+2) corresponding to the third time T(n+2) being then a function of A(n) and / or A(n+1) and E(n+1); e.During the stages of the evolution phase, the second state A(n+1) being modified into a third state A(n+2), and the first evolution parameter E(n) being modified into a second evolution parameter E(n+1) if: ▪ said computer terminal receives from at least one computer server, a third state A(n+2) of said first attribute A corresponding to a third time T(n+2), the evolution phase then including the calculation of a second evolution parameter E(n+1) of said first attribute A, as a function of A(n+1) and A(n+2).
[0030] And preferably in which the use by said computer terminal of said data D is taken from at least: a display of said data D via a display device, a storage of said data D via a storage device, an analysis of said data D via an analysis device.
[0031] The present invention also relates to a computer program product, preferably recorded on a non-transient medium, comprising instructions which, when executed by at least one of a processor and a computer, executes the process according to the present invention.
[0032] The present invention also relates to an electronic circuit comprising a plurality of electronic components configured to execute a series of commands implementing the method according to the present invention.
[0033] The present invention also relates to a computer terminal comprising at least one electronic circuit according to the present invention.
[0034] The present invention also relates to a system comprising at least one computer terminal according to the present invention and at least one computer server, said computer terminal and said computer server being in communication with each other.
[0035] The present invention also relates to a computer program product, preferably recorded on a non-transient medium, comprising instructions which, when executed by at least one of a processor and a computer, cause at least one of the processor and the computer to send a series of commands to at least one electronic circuit according to the present invention.
[0036] The present invention relates to a system comprising a client-server architecture enabling the virtualization of operating systems and applications on remote servers, and making them accessible remotely to clients through a transmission method according to the present invention.
[0037] The present invention relates to a method for the optimized transmission of data flows between server and client.
[0038] Advantageously, the present invention makes it possible to reduce the size, manufacturing costs, power consumption and distribution and maintenance costs of consumer or professional electronic devices while improving the experience of their users (mobile phones, tablets, personal computers, television screens and decoders, game consoles, vehicle electronics, advertising screens, by way of non-exhaustive list).
[0039] Ingeniously, the present invention allows existing devices to benefit from its implementation. Indeed, the present invention is applicable to existing electronic devices. BRÈVE DESCRIPTION DES FIGURES
[0040] The aims, objects, features and advantages of the invention will become clearer from the detailed description of an embodiment thereof, which is illustrated by the following accompanying drawings in which: There figure 1 represents a system according to prior art. The figure 2 represents a system according to an embodiment of the present invention. The figure 3 represents a schematic algorithm of the transmission process according to an embodiment of the present invention. figure 4 represents a schematic view of the operation of a part of the transmission process according to an embodiment of the present invention. figure 5 represents an example of implementing the transmission method according to an embodiment of the present invention. figure 6 represents an example of implementing the transmission method according to an embodiment of the present invention. figure 7 represents an example of implementing the transmission method according to an embodiment of the present invention. figure 8 represents a diagram illustrating an initialization phase according to an embodiment of the present invention. figure 9 represents a diagram illustrating a phase of constant acceleration according to an embodiment of the present invention. figure 10 represents a diagram illustrating a phase of acceleration change according to an embodiment of the present invention. figure 11 represents a diagram illustrating an advantage provided by the present invention according to one embodiment. figure 12 represents a diagram illustrating an advantage provided by the present invention according to one embodiment. figure 13 represents a diagram illustrating an example of the application of the present invention according to one embodiment. figure 14 represents a diagram illustrating an example of the application of the present invention according to one embodiment. figure 15 represents a diagram illustrating an example of the application of the present invention according to one embodiment. figure 16 represents a diagram illustrating an example of the application of the present invention according to one embodiment. figure 17 represents a diagram illustrating an initialization phase in an example application of the present invention according to one embodiment. figure 18 represents a diagram illustrating a phase of constant acceleration in an example application of the present invention according to one embodiment. figure 19a represents a summary table of at least some of the steps in the process on the server side according to an embodiment of the present invention. figure 19b represents a summary table of at least some of the steps in the process on the terminal side according to an embodiment of the present invention. figure 19c represents the legend of figures 19a And 19baccording to an embodiment of the present invention.
[0041] The drawings are provided as examples and are not intended to limit the scope of the invention. They are schematic representations of the principle intended to facilitate understanding of the invention and are not necessarily to scale with practical applications. In particular, the dimensions are not representative of reality. DESCRIPTION DÉTAILLÉE
[0042] Before beginning a detailed review of embodiments of the invention, optional features that may be used in combination or alternatively are stated below.
[0043] According to one embodiment, the use by said computer terminal of said data D includes at least one step of displaying said data D, preferably said computer terminal including at least one display device configured to display said data D.
[0044] According to one embodiment, the use by said computer terminal of said data D includes at least one step of memorizing said data D, preferably said computer terminal including at least one memorization device configured to memorize said data D, preferably on a non-transient medium.
[0045] According to one embodiment, the use by said computer terminal of said data D includes at least one step of analyzing said data D, preferably said computer terminal including at least one analysis device configured to analyze said data D.
[0046] A terminal, or computer terminal, is an electronic device, also called an electronic apparatus or client. This terminal is capable of receiving data transmitted from, for example, a computer server. This terminal may include one of the following: a display device, a storage device, or an analysis device. The computer terminal is thus capable, preferably and according to a specific embodiment, of: displaying data and / or storing data and / or analyzing data.
[0047] According to one embodiment, said data is taken from at least: a pixel, a voxel, a numeric value, an object, an image, ...
[0048] According to one embodiment, said at least one first attribute A is taken from at least: a position, a speed, an acceleration, a color taken from a range of colors, a transparency coefficient, ...
[0049] According to one embodiment, the first state, the second state, and the third state are taken from at least: a numerical value, spatial coordinates, a velocity vector, an acceleration vector, a color taken from a range of colors, a transparency coefficient, ...
[0050] According to one embodiment, the evolution parameter is taken from at least: a speed, an acceleration, a trajectory, ...
[0051] According to one embodiment, the first evolution parameter E(n) is equal to (A(n+1)-A(n)) / (T(n+1)-T(n)), rather than the first derivative of (A(n+1)-A(n)) / (T(n+1)-T(n)) with respect to T.
[0052] According to one embodiment, the second state A(n+1) is equal to E(n)*(T(n+1)-T(n))+A(n), in preference to the integral of E(n)*(T(n+1)-T(n))+A(n), T going from T(n) to T(n+1).
[0053] According to one embodiment, the third state A(n+2) is equal to E(n+1)*(T(n+2)-T(n+1))+A(n+1), in preference to the integral of E(n+1)*(T(n+2)-T(n+1))+A(n+1), T going from T(n+1) to T(n+2).
[0054] According to one embodiment, the first evolution parameter E(n+1) is equal to (A(n+2)-A(n+1)) / (T(n+2)-T(n+1)), in preference to the first derivative of (A(n+2)-A(n+1)) / (T(n+2)-T(n+1)) with respect to T.
[0055] According to one embodiment, the third state A(n+2) is equal to E(n)*(T(n+2)-T(n))+A(n), in preference to the integral of E(n)*(T(n+2)-T(n))+A(n), T going from T(n) to T(n+2).
[0056] According to one embodiment, the first evolution parameter E(n+1) is equal to (A(n+2)-A(n)) / (T(n+2)-T(n)), rather than the first derivative of (A(n+2)-A(n)) / (T(n+2)-T(n)) with respect to T.
[0057] According to one embodiment, A(n+1) is between A(n) and A(n+2).
[0058] According to one embodiment, the step of receiving said computer terminal said data D1 from at least one computer server and the step of receiving said computer terminal a first state A(n) of said first attribute A corresponding to the first time T(n) from at least one computer server are carried out in one and the same step.
[0059] According to one embodiment, the present process includes a resynchronization phase comprising at least the following steps: i. Reception by said computer terminal of said data D1 from at least one computer server; ii. Reception by said computer terminal of a state A(n+m) of said first attribute A corresponding to a time T(n+m) from at least one computer server; iii. Use by said computer terminal 10 of said data D1 according to the state A(n+m) of said first attribute A at time T(n+m); iv. Reception by said computer terminal: ▪ of a state A(n+m+1) of said first attribute A corresponding to a time T(n+m+1) from at least one computer server, ▪ Then, calculation by said computer terminal of an evolution parameter E(n+m) of said first attribute A as a function of A(n+m) and A(n+m+1); or, ▪ of an evolution parameter E(n+m) of said first attribute A from at least one computer server, ▪ Then, calculation by said computer terminal of the state A(n+m+1) as a function of A(n+m) and E(n+m).
[0060] According to one embodiment, the process includes a compression phase of a plurality of data comprising at least the following steps: i. At least one initialization subphase comprising: a. A recording, on at least one memory location, of a first value corresponding to the first value of the data plurality, b. A recording, on at least one memory location, of a second value corresponding to the acceleration of the second value of the data plurality, ii. At least one constant acceleration subphase comprising: a. A tracking of the value of said acceleration or its change, b. A tracking of a number representing the number of positions during which said acceleration remains constant, the number of positions corresponding to the number of consecutive data items in the data plurality having constant acceleration, c. A recording, on at least one memory location, of a third value corresponding to said number of positions during which the acceleration remains constant. iii. At least one acceleration change phase comprising: a.b. Monitoring the value of the new acceleration or its variation. c. The next value is equal to the new acceleration or its variation relative to the previous acceleration value. e. Recording, on at least one memory location, a fourth value corresponding to said new acceleration.
[0061] In a classical system as represented in figure 1 using a computer terminal 10, for example a smartphone, the operating system 13a and the applications 13b are installed, often from a copy downloaded from at least one computer server 20 via a communication network such as the Internet, and are run locally on the computer terminal 10 by means of its processor 12.
[0062] This prior art computer terminal 10 comprises a display device 11, a processor 12, and a memory 13 storing, among other things, the operating system 13a, applications 13b, and the user's personal data 13c, for example. This computer terminal 10 also has a battery 14, a user interface 16, and a communication module 15, specifically for transmitting 32 and receiving 31 data to and from at least one computer server 20.
[0063] A display device is understood to mean any device capable of displaying data in one way or another; preferably, a display device within the meaning of the present invention is a computer screen, a television screen, or even a smart phone screen, otherwise known as a smartphone.
[0064] This computer terminal 10 is for example one of the following terminals: mobile phone, tablet, personal computer, television screen and decoder, game console, vehicle electronics, advertising screen.
[0065] This computer server 20, also derived from prior art, includes a processor 21, a memory 22 hosting installation files 22a and update files 22b, these files (22a, 22b) being intended to be downloaded from the computer server 20 to the computer terminal 10 for installation there.
[0066] Typically, the user will send a download request for an installation file 22a, for example, to the computer server 20. Then, the computer terminal 10 will download this file 22a, which generally represents a significant amount of data and therefore a considerable load on the communication network bandwidth of the computer terminal 10. Furthermore, the file 22a will then be saved to the memory 13 of the computer terminal 10 before being installed. It should be noted that all these steps also require a significant amount of power from the battery 14.
[0067] It is then easy to understand that in the prior art, the communication network is heavily exploited, as well as the memory space of the computer terminal 10 or even its battery 14.
[0068] There figure 2 illustrates a system according to an embodiment of the present invention.
[0069] According to the present invention, the computer terminal 10 comprises substantially the same elements as before, with the exception, among others, of the operating system 13a and the applications 13b, which are not stored in the memory 14 of the computer terminal 10. Indeed, the memory 14 of the computer terminal 10 now includes certain personal data 13c of the user and a client component 13d of the system. This client component 13d is configured to communicate, via the communication module 15, with a server component 22d of the system hosted by the computer server 20. This computer server 20 also includes the operating system 22e of the computer terminal 10 as well as the various applications 22f of the computer terminal 10. It should be noted that the computer server 20 may or may not host installation files 22a or update files 22b.However, according to one embodiment of the present invention, the majority of these files (22a, 22b) are intended for use by the computer server 20 itself and not for download by the computer terminal 10. The communication network between the computer terminal 10 and the computer server 20 can be of any type. For example, it may be a wireless network (usually referred to by the English term "wireless network") or at least partially wireless. Thus, it may, for example, include a wired component and a wireless component. Alternatively, it may be a wired network.
[0070] Thus, the computer server 20 can locally perform updates and install new applications. However, an installation file downloadable by the computer terminal 10 could be used to install, for example, the client component 13d of the system or to perform an update.
[0071] Thus, according to the present invention, the computer server 20 hosts and is capable of running one or more virtualized operating systems 22e and one or more applications 22f installed on it. It should be noted that the present invention allows the use of existing operating systems 22e or applications 22f. However, their implementation takes place locally on the computer server 20 and not on the computer terminal 10, unlike in the prior art.
[0072] Thus, the applications 22f installed on the computer server 20 access the various elements, modules, drivers, of the computer terminal 10 and its interfaces, preferably through virtual drivers offering, thanks to the virtualized Operating System 22e, the same software interfaces as that of the same Operating System 13a if it were installed locally on the computer terminal 10.
[0073] Thus, and advantageously, the 22f applications used do not need to be modified compared to those developed for prior art systems.
[0074] Preferably, access to the drivers of the computer terminal modules 10 is done through a flow of Commands and Data passing over a bidirectional (which can be the Internet or a private network) or unidirectional communication network (for example a satellite, Cable, or Terrestrial transmission).
[0075] Unlike prior art, the volume of data and commands transmitted is very low, as it does not involve entire applications, but only basic commands and data. The present invention thus reduces the bandwidth required for the operation of the computer terminal 10.
[0076] It should be noted that some virtualization solutions already exist, but suffer from numerous problems. Indeed, commonly in prior art, the computer server 20 runs an operating system and applications locally and receives commands from the computer terminal 10, executes them, and transmits the graphical rendering of these commands to the computer terminal 10 in the applications running in the virtualized operating system. This amounts to sending an image, each image representing the display the user would see if the operation were performed on their computer terminal 10. Therefore, the amount of information is substantial and requires a sufficiently large bandwidth.
[0077] Figuratively speaking, the display of the virtualized operating system and applications is moved to the computer terminal 10, which is then only used for sending commands to the computer server 20 and for displaying large amounts of data transmitted by the computer server 20.
[0078] We thus find so-called game streaming or video interface solutions from VMware, Microsoft, NVIDIA, Gamefly and other market players.
[0079] The proposed techniques are based on: i. either through the regular transmission of static images with compression levels and quality loss attempting to adapt to the bandwidth of the communication network, ii. or through systems that continuously render remote graphical interfaces on the computer server 20, then encode them into video format for transmission to the computer terminal 10; these systems are increasingly used today. These are the systems used by the most recognized game streaming solutions.
[0080] These techniques explain, on the one hand, the loss of quality of the remote rendering when the communication network is not very high speed, but also the latencies observed, because they add a complex processing stage at the level of computer servers which must first calculate a graphic rendering before transmitting it in video format, then a video decoding on the computer terminal 10.
[0081] All of these techniques therefore also generate increasing needs for computing and energy resources, and higher costs on computer servers, since they require both graphical interfaces and low-latency video encoders.
[0082] Here again, unlike the prior art, the present invention, according to one embodiment, does not transmit image or video frames from the computer server 20 to the computer terminal 10 for the display of these on the display device 11 of the computer terminal 10.
[0083] As explained later, the present invention makes it possible to adapt the flow rates of Commands and Data to consumer communication networks, and not only to very high speed and very high quality of service communication networks.
[0084] To achieve this, the invention proposes, in particular, a new method for transmitting data and commands.
[0085] Indeed, according to the present invention, the system requires significantly less bandwidth than that required by prior art solutions. The present invention can operate efficiently while offering very low latency, or even no latency, and rendering quality identical to that offered by the highest-performing current systems, all while using less bandwidth.
[0086] To enable this, the present invention relates to a method of transmitting data between the computer server 20 and the computer terminal 10. This method is applicable for the transmission of data from the computer terminal 10 to the computer server 20 and from the computer server 20 to the computer terminal 10, and more generally between electronic devices according to the applications implemented using the present invention.
[0087] Advantageously, starting the client part 13d of the system on the computer terminal 10, then remotely using the operating system 22e and the applications 22f hosted by the computer server 20 generates different command and data flows between computer server 20 and computer terminal 10 whose throughput is controlled and optimized.
[0088] Some parts of this command and data flow are already adapted to the capabilities of current consumer communication networks: i. Initialization exchanges between the client part 13d and the server part 22d of the computer server 20 at the start of the client part 13d or the server part 22d: this bandwidth requirement is low, it is similar to that commonly used for existing client-server systems (connection, identification or authentication, settings), ii. Remote consumption or transfers of Video, Audio or Photos or images: this bandwidth requirement is now accessible on consumer communication networks, iii. Interactions with keyboard interfaces, touch screens, sensors, card and fingerprint readers, GPS as non-exhaustive examples (interactions of the user or environment with the applications): these interfaces generally require relatively low bandwidth.
[0089] However, some of this flow as presented in prior art is not necessarily suitable: i. Remote access to the interactive interfaces of applications requires the computer server 20 to transmit a dedicated stream for the graphical display of these interactive interfaces via the dedicated graphics display driver of the computer terminal 10 (depending on the client, this may currently be OpenGL ES, OpenGL, Direct3D, or Vulkan, to name a few). This stream can become significant during the use of certain applications 22f rich in objects and animations, due to the substantial flow of commands and data required: several tens to hundreds of Mb / s are transmitted between the application 22f and the graphics display driver in some cases, such as when accessing modern video game applications.
[0090] The transmission method according to the present invention contributes to reducing this significant bandwidth requirement.
[0091] In order to adapt the bandwidth required for the flow, that is to say in order to adapt the flow rate, between the computer server 20 and the computer terminal 10 generated by the interactive interface of the remote applications 22f intended for the graphical interface drivers of the computer terminal 10, it is necessary to use a new transmission method, or even a compression method, this new transmission method includes, according to one embodiment, the use of acceleration variations of the values of the data to be transmitted allowing to display this interactive interface.
[0092] Indeed, interactive interfaces generally exhibit uniform movement in two or three spatial dimensions, as a good level of fluidity is usually desired by the user, and the data values that characterize them generally have uniformly accelerated variations. These values therefore often have a constant acceleration, except during changes in trajectory.
[0093] More precisely, transmitting at regular intervals T information giving the acceleration variations of the values of each of the data rather than the set of their exact values at any instant T(n) (as practiced by the applications of current devices with internal operating systems13a, i.e. installed locally on the user terminal 10) makes it possible to reduce the volume of commands sent, and even allows the computer terminal 10 to display a predictive state before receiving the commands and data of instant T(n+1) which always arrive a transmission time later.
[0094] To do this, the computer server module 20, dedicated to transmitting the commands for controlling the graphic display of the applications, must process them at any given time T(n) to deduce the variations in instantaneous accelerations of the values of the different data (positions of objects in 1, 2 or 3 spatial dimensions, transparency, brightness, fill texture, etc.) and transmit this information as quickly as possible to the computer terminal 10, which can then easily interpret them and recalculate the exact values of the data at time T(n), and in the case of constant acceleration predict the probable values at time T(n+1)).
[0095] The present invention thus relates to a data transmission method which reduces the amount of data to be transmitted without creating any loss of value and which reduces or eliminates the perception of latency thanks to its predictive capability.
[0096] Regarding the description of this process subsequently, we will introduce a series of definitions of several variables: i. D is a data point. It can be an object, a position, a coordinate, a pixel, a voxel, or more generally, any type of data. ii. A is an attribute of the data point D. For example, it can be a spatial or temporal coordinate, a position, a color chosen from a range of colors, transparency, a speed of movement, an acceleration, or more generally, any type of attribute that a data point can have. Note that a data point D can have several attributes: a first, a second, and so on. The first could, for example, be an acceleration and the second a color. iii. T(n) is the nth time interval.We will denote T = T(n+1) - T(n) as the period of data transmission from the computer server 20 to the computer terminal 10, specifically to the client component 13d (for example, 20ms in the case of smooth rendering at 50 frames per second, generally referred to as 50fps for 50 frames per second). It is defined by the computer server 20 and will be taken into account by the computer terminal 10, which will wait for new data every T periods, for example. iv. T0, T(n), T(n), T(n+1): correspond to the instants 0, 1, n, n+1, such that T elapses between two consecutive instants. v. A(n) is a precise state of the attribute A at the instant T(n). A(n) can for example be a precise position, a precise coordinate, a precise color taken from a range of colors, a precise transparency coefficient, more generally a precise value among any value that the attribute A can take. vi.E(n) corresponds to a parameter for the evolution from state A(n) to state A(n+1). E(n) is, for example, an evolution law that can be linear, exponential, or arbitrary. E(n) corresponds to a rule for the evolution of the attribute A from state A(n) to state A(n+1). vii. x corresponds to a one-dimensional data point whose value evolves over time and whose variations are to be transmitted from the computer server 20 to the computer terminal 10, preferably to the client part 13d. viii. x(0), x(1), x(n), x(n+1): correspond to the values of x at the beginning of times T(0), T(1), T(n), T(n+1), such that T(n+1) - T(n) elapses between two consecutive values of x. ix. v(0), v(1), v(n), v(n+1): correspond to the rates of variation of the value x at the beginnings of the instants T(0), T(1), T(n), T(n+1), such that T(n+1) - T(n) elapses between 2 consecutive values of v, x.a(0), a(n), a(n), a(n+1): correspond to the accelerations of the variation of the value of x at the beginnings of the times T(0), T(1), T(n), T(n+1), such that T(n+1) - T(n) elapses between 2 consecutive values of the acceleration, xi. xp(n+1), vp(n+1) and ap(n+1): correspond at time T(n) to the predicted values of x(n+1), v(n+1) and a(n+1) of time T(n+1), xii. xc(n+1), xc(n+1) and ac(n+1): correspond at time T(n+1) to the calculated (or corrected) values of x(n+1), v(n+1) and a(n+1) of time T(n+1), xiii. At time T(0), we consider that v(0) and a(0) are zero.
[0097] In the case where the data is in 2 or 3 dimensions, such as a position with coordinates x, y, z, this process applies equally to x, y, and z. Indeed, the same reasoning used for x will be applied to y and z.
[0098] There figure 3 represents an algorithm showing the different steps implemented by the present invention.
[0099] Thus, the transmission method 100, according to an embodiment of the present invention, comprises at least two phases and preferably at least three phases: i. An initialization phase 110; ii. An evolution phase 120; iii. An optional resynchronization phase 130.
[0100] Advantageously, the initialization phase 110 allows the data D to be identified at time T(0) with its attribute A and its state A(0).
[0101] Advantageously, the evolution phase 120 allows us to define how the state A(0) of the attribute A of the data D will evolve towards A(1) for example.
[0102] Preferably the resynchronization phase 130 allows, in the event of an accidental interruption of communication between the computer terminal 10 and the computer server 20, to continue the process of the present invention by resynchronizing the data D with its attribute A in the state A(n) at time T(n).
[0103] According to one embodiment, the initialization phase 110 comprises at least the following steps: i. Reception 111 by the computer terminal 10 of a data D from the computer server 20; ii. Reception 111 by the computer terminal 10 of a first state A(n) of a first attribute A of the data D corresponding to a first time T(n) from the computer server 20; iii. Use 112, for example display on the display device 11, by the computer terminal 10 of the data D according to the first state A(n) of the first attribute A at the first time T(n); iv.Then, computer terminal 10 receives: ▪ 113a a second state A(n+1) of the first attribute A corresponding to a second time T(n+1) from computer server 20, ▪ Then, computer terminal 10 calculates 114a a first evolution parameter E(n) of the first attribute A as a function of A(n) and A(n+1); or, ▪ 113b a first evolution parameter E(n) of the first attribute A from computer server 20, ▪ Then, computer terminal 10 calculates 114b a second state A(n+1) as a function of A(n) and E(n).
[0104] It should be noted that the initialization phase 110 comprises two possible branches. Indeed, in one case, the computer terminal 10 can receive 111 and 113a a first state A(n) of the attribute A and a second state A(n+1) of the attribute A, then automatically calculate 114a the evolution parameter E(n) allowing the attribute A to transition from A(n) to A(n+1) during a time T(n+1)-T(n). In this case, the computer terminal 10 will, for example, display the evolution of the data D between A(n) and A(n+1) locally without receiving any further information from the computer server 20.
[0105] In another case, the computer terminal 10 can receive 113b a first state A(n) of the attribute A and an evolution parameter E(n). Thus, the second state A(n+1) will be calculated 114b by the computer terminal 10 locally by applying the evolution parameter E(n) to the first state A(n) over a period T(n+1)-T(n). In this case as well, the computer terminal 10 receives no other information from the computer server 20 apart from an initial state A(n) and an evolution parameter of said state E(n) over the period T = T(n+1)-T(n).
[0106] In one embodiment, the data D may comprise a first attribute A and a second attribute B. For example, and without limitation, if the data D is a pixel, the first attribute A may be the spatial position of said pixel D, and the second attribute B may be the color of said pixel D. It should be noted that a color may lie between two other colors. For example, in a time stream, a color may vary, and thus at time T (between T-1 and T+1), the color may be different from that at time T-1 and from that at time T+1. Furthermore, a color may be encoded numerically, for example, on one or more numerical scales. A color may therefore be located between two other colors according to this or these numerical scales. Finally, a color may also be arranged within a range of colors, such as a range of colors classified according to their frequency or their optical wavelength.Thus, for example, a first color between a second and a third color can mean that the wavelength of the first color is between the wavelength of the second color and the wavelength of the third color.
[0107] According to one embodiment, the initialization phase 110 can be represented, for example, as follows for the branch including the reception 113a of the evolution parameter E(n): i. At the very beginning of the use of a remote application, at time T(0): a. x is at the value x0, as decided by an application 22f on the computer server 20, for example, b. the acceleration a(0) of x(0) cannot be calculated and is considered zero, c. the rate of change of x, called v(0), is considered zero, d. the computer server 20 transmits the real value of x, i.e., x(0), to the computer terminal 10, e. the computer terminal 10 receives the value x(0) one transmission instant later, f. the computer terminal 10 uses the value x(0), for example, it displays the point x at the coordinate x(0) via the display device 11, ii. At the following instant T(1): a. The value of x is x(1), as decided by the application 22f on the computer server 20, b. On the side of computer server 20, a speed v(1) can be calculated which is equal to (x(1)-x(0)) / (T(0)-(T1)), c.On the computer server 20 side, an acceleration a(1) can also be calculated which is equal to (v(1)-v(0)) / (T(0)-(T1)), d. The computer server 20 transmits the value a(1) to the computer terminal 10, e. The computer terminal 10 receives the value a(1) one instant later, f. The computer terminal 10 can calculate the value of x(1) = x(0) + 1 / 2.a(1)*T^2 g. The computer terminal 10 uses the value x(1), for example to display the point x at the coordinate x(1), via for example the display device 11.
[0108] This initialization phase 110 thus allows the computer terminal 10 to receive a data D having an attribute A in a state A(0) and to be able to display its evolution towards A(1) without continuously receiving a state of A but simply by knowing or deducing its evolution parameter E(1).
[0109] Thus, the figure 4 This perfectly illustrates the concept of the evolution of the state of an attribute. Indeed, in this figure, at time T(n), the data D presents an attribute A in state A(n).
[0110] By applying the evolution parameter E(n) received by the computer terminal 10 from the computer server or calculated by the computer terminal 10 on the basis of A(n) and A(n+1), at time T(n+1), the computer terminal 10 knows the state A(n+1) of the attribute A of the data D and the evolution followed by this state between time T(n) and time T(n+1).
[0111] Then, in the same way, the data D sees its attribute A change from state A(n+1) to A(n+2) according to the evolution parameter E(n+1) at time T(n+2).
[0112] According to one embodiment, evolution phase 120 comprises at least the following steps: ▪ Use 121a, for example display on the display device 11, by the computer terminal 10 of the data D according to the second state A(n+1) of the first attribute A at the second time T(n+1); ▪ Then, calculation 122a by the computer terminal 10 of a third state A(n+2) of the first attribute A corresponding to a third time T(n+3) as a function of A(n) and / or A(n+1) and E(n); ▪ Then, use 123a, for example display on the display device 11, by the computer terminal 10 of the data D according to the third state A(n+2) of the first attribute A at the third time T(n+2).Or, preferably, ▪ Reception 121b by the computer terminal 10 of a second evolution parameter E(n+1) of the first attribute A from the computer server 20, E(n+1) being different from E(n); ▪ Then, calculation 122b by the computer terminal 10 of a third state A(n+2) of the first attribute A corresponding to a third time T(n+2) as a function of A(n) and / or A(n+1) and E(n+1); ▪ Then, use 123b, for example display on the display device 11, by the computer terminal 10 of the data D according to the third state A(n+2) of the first attribute A at the third time T(n+2); Or, preferably, ▪ Reception 121c by said computer terminal of a third state A(n+2) of said first attribute A at the third time T(n+2) from at least one computer server 20, A(n+2) being different from A(n+1); ▪ Then, use 121c by said computer terminal 10 of said data D according to the third state A(n+2) of said first attribute A at the third time T(n+2).▪ Then, preferably, calculation 122c by said computer terminal 10 of a third evolution parameter E(n+1) of said first attribute A as a function of A(n+1) and A(n+2); ▪ Then, preferably, calculation 122c by said computer terminal 10 of the fourth state A(n+3) of said first attribute A at the fourth time T(n+3) as a function of A(n+2) and E(n+1); ▪ Then, preferably, use 123c by said computer terminal 10 of said data D according to the fourth state A(n+3) of said first attribute A at the fourth time T(n+3).
[0113] This evolution phase 120 comprises at least two branches and advantageously three branches. The first branch corresponds to a constant evolution of the state A(n+1) according to the evolution parameter E(n), the second branch corresponds to a modification of the evolution parameter E(n) of the state A(n+1), and the third branch corresponds to a modification of the evolution parameter E(n) following the reception of a new state A(n+2).
[0114] According to one embodiment, said first branch can be represented, for example, as follows when a phase of constant evolution, also called constant acceleration, occurs: i. This phase is common in the case of uniformly accelerated variations; the acceleration a(n) at time T(n) will be identical to the acceleration a(n-1) at time T(n-1). ii. At time T(n): a. The value of x is x(n), as determined by application 22f on computer server 20. b. On the side of computer server 20, an acceleration a(n) is calculated using the previous values, including x(n-1), which is equal to a(n) = v(n) - v(n-1) / (T(n) - T(n-1)), with v(n) = (x(n) - x(n-1)) / (T(n) - T(n-1)). c. In this phase, computer server 20 sees that a(n) is equal to a(n-1) previously transmitted at time T(n-1) to computer terminal 10. d. Computer server 20 does not transmit the value a(n) to computer terminal 10, e. At the same instant T(n), computer terminal 10 assumes that a(n)=a(n-1), f. Computer terminal 10 uses for x(n): the predicted value xp(n) with xp(n)=xc(n-1)+vc(n-1)*(T(n-1) - T(n))+1 / 2.ap(n)*T^2 where ap(n) = ac(n-1). g.a(n-1) is the last known value of the acceleration of x by the computer terminal 10, which could be either a correction value ac(n-1) received from the computer server 20, or a predictive value ap(n-1) according to this phase at T(n-1). h. The computer terminal 10 ultimately does not receive a new value of a(n) since it is not transmitted, as it is constant. i. The new predictive value ap(n+1) becomes ap(n), which is equal to a(n) and a(n-1) in this phase. This allows the calculation and use at time T(n+1) of the predictive value xp(n+1) as done with xp(n), which was also not transmitted by the computer server 20.
[0115] We will also have xp(n+1) = x(n+1).
[0116] The present invention thus makes it possible to reduce the amount of information transmitted to the bare minimum, i.e. a starting point and an ending point, or a starting point and an acceleration vector.
[0117] Generally, prior art proposes either transmitting a large amount of information from the computer server 20 or performing all calculations locally by hosting the operating system 13a and applications 13b on the computer terminal 10. The present invention takes advantage of the best of both worlds. On the one hand, it allows virtualization of the applications 22f and operating systems 22e with reduced and optimized information transmission, and with part of the calculation performed locally on the computer terminal 10 in order to reduce the required bandwidth while benefiting from virtualization technology.
[0118] According to one embodiment, the second branch can be represented, for example, as follows when a non-constant evolution phase occurs: i. During this phase, the new acceleration values of x must be transmitted to the computer terminal 10 so that it can deduce the new values of x. ii. At time T(n): a. We are in the case where the acceleration of x is different from the acceleration of x at time T(n-1), b. The value of x is x(n), as the application has now decided on the computer server 20, c. On the side of the computer server 20, an acceleration a(n) is calculated which is equal to a(n)=v(n)-v(n-1) / ((T(n) - T(n-1)))^2 with v(n) which could have been calculated by v(n)=(x(n)-x(n-1)) / (T(n) - T(n-1))), d. In this phase, the computer server 20 sees that a(n) is different from a(n-1), e. The computer server 20 transmits the value a(n) at time T(n) to the computer terminal 10, f.At the same instant T(n), the computer terminal 10 has not yet received the value a(n), it assumes that a(n)=a(n-1) and uses for x the predicted value xp(n) with xp(n)=xc(n-1)+vc(n-1)*(T(n) - T(n-1))+1 / 2.ap(n)*(T(n) - T(n-1))^2 with ap(n) = ap(n-1) and ac(n-1). g. a(n-1) is the last known value of the acceleration of x by the computer terminal 10 and which could either be a value a(n-1) received from the computer server 20, or a predicted value ap(n-1) according to this phase at T(n-1). h. One moment after transmission, computer terminal 10 receives the value a(n), which is ultimately different from a(n-1) in the case of this phase, and computer terminal 10 then calculates the new true value of x with xc(n)=xc(n-1)+vc(n-1)*(T(n) - T(n-1))+1 / 2.a(n)*(T(n) - T(n-1))^2 i. Computer terminal 10 then corrects the predicted value used xp(n) by the value xc(n), which is equal to x(n).The new predictive value ap(n+1) becomes a(n) to calculate the predictive value of x(n+1).
[0119] According to one embodiment, and without limitation, the third branch can be represented for example as follows when a non-constant evolution phase occurs: i. During this phase, the new values of x are transmitted to the computer terminal 10 so that it can deduce the new value of the acceleration a(n+1) of x at time T(n+1). ii. At time T(n): a. We are in the case where the next value x(n+1) of x at time T(n+1) is transmitted from the computer server 20 to the computer terminal 10, b. At time T(n), the value of x is x(n), c. On the computer server 20 side, a value x(n+1) corresponding to the value of x at time T(n+1) is transmitted, d. In this phase, the computer terminal 10 then calculates a new acceleration a(n+1) corresponding to the acceleration of x between x(n) at time T(n) and x(n+1) at time T(n+1), e. The acceleration a(n+1) is equal to a(n+1)=v(n+1)-v(n) / ((T(n+1) - T(n)))^2 with v(n+1) which could be calculated by v(n+1)=(x(n+1)-x(n)) / (T(n+1) - T(n))), f.Then, with this new calculated acceleration, the computer terminal 10 can calculate the next value of x, that is, xp(n+2) at time T(n+2), with xp(n+2) = x(n+1) + v(n+1) * (T(n+1) - T(n+2)) + 1 / 2 * ap(n+1) * T^2 where ap(n+1) = a(n+1).
[0120] This third branch thus corresponds to the reception of a new state of attribute A and the calculation of a new evolution parameter E allowing the user to reach said new state. This new evolution parameter then determines the other subsequent states unless a new state or a new evolution parameter is received by the computer terminal 10.
[0121] Here again, the present invention makes it possible to limit the amount of information transmitted so as to reduce the flow rate of command and data between the computer terminal 10 and the computer server 20 while maintaining high graphic rendering and very low latency, or even no latency.
[0122] According to one embodiment, when communication between the computer terminal 10 and the computer server 20 is interrupted accidentally, for example, a resynchronization phase 130 is implemented. Preferably, this resynchronization phase 130 includes at least the following steps: i. Reception 131 by the computer terminal 10 of the data D1 from the computer server 20; ii. Reception 131 by the computer terminal 10 of a state A(n+m) of said first attribute A corresponding to a time T(n+m) from the computer server 20; iii. Use 132, for example display on the display device 11, by the computer terminal 10 of the data D1 according to the state A(n+m) of the first attribute A at time T(n+m); iv. Reception by computer terminal 10: ▪ 133a of a state A(n+m+1) of the first attribute A corresponding to a time T(n+m+1) from computer server 20, ▪ Then, calculation 134a by computer terminal 10 of an evolution parameter E(n+m) of the first attribute A as a function of A(n+m) and A(n+m+1); or, ▪ 133b of an evolution parameter E(n+m) of the first attribute A from computer server 20, ▪ Then, calculation 134b by computer terminal 10 of the state A(n+m+1) as a function of A(n+m) and E(n+m).
[0123] This resynchronization phase 130 is inspired by the initialization phase 110 in order to reset the state of attribute A of data D when an interruption between the computer terminal 10 and the computer server 20 has occurred.
[0124] According to one embodiment, the resynchronization phase 130 can be represented as follows: i. This phase 130 is necessary when a loss of connection and / or reception is detected for several consecutive moments, depending on the desired quality of service; ii. This phase 130 is necessary when the client part 13d uses predictive values for long moments, or consecutive periods, such that the accuracy of the new predictive value becomes unacceptable, for example, if the accuracy used for the transmitted acceleration can generate an error greater than a predefined value; iii. This phase 130 is substantially identical to an initialization phase 110: a. The computer server 20 transmits the value x(n) at a time T(n), b. The computer server 20 transmits the value a(n+1) at time T(n+1).
[0125] Advantageously, in the case where the computer terminal 10 interacts with the computer server 20, it is possible to use the same transmission method in the direction computer terminal 10 to computer server 20 as in the direction computer server 20 to computer terminal 10, for example in the case of the transmission of control data for the graphical interface of an application used remotely via a smartphone, corresponding to the movements of the user's fingers moving on the touch screen.
[0126] Indeed, without limitation, and by way of example, the computer terminal 10 can be taken from at least: a smart phone called a smartphone, a desktop or laptop computer, a smartwatch or more generally any computer device.
[0127] Advantageously, and according to one embodiment, the computer terminal 10, not knowing in advance that there will be a change in acceleration, considers that it is in a phase of constant acceleration, because this is the most common during uniformly accelerated variations.
[0128] Preferably, when the computer terminal 10 does not receive data from the computer server 20 for a time greater than T = T(n) - T(n+1) since the last value received or predicted at time T(n), it uses the predictive value xp(n+1) from the beginning of time T(n+1) defined by the constant acceleration phase described above.
[0129] Preferably, when the computer terminal 10 receives a new acceleration value during time T(n+1), it uses this new value and replaces the predicted value xp(n+1) with this new corrected value xc(n+1) defined by the evolution phase, also called the acceleration change phase, previously described.
[0130] Advantageously, in the case of data undergoing uniformly accelerated variations most of the time, the present invention will be mainly located in phases of constant acceleration most of the time: the number of data to be sent will be considerably reduced (no new information to be transmitted to the computer terminal 10 during the phases of constant acceleration).
[0131] It is then in a phase of change of acceleration 120 of the variations of the values (corresponding to a change of trajectory when it comes to spatial coordinates for example), or of the initialization 110 or resynchronization 130 phases (during error management or loss of connection for example), that the computer server 20 will have to transmit new values of the data to the computer terminal 10.
[0132] Furthermore, since acceleration variations are relatively small when transmitting a model representing the movement of interfaces or graphical scenes of a digital representation of a real world, or with which a user can interact, it may be advisable to choose to transmit the acceleration variation between T(n+1) and T(n), i.e., a(n+1)-a(n-1), rather than a(n+1), to further reduce the amount of information transmitted and thus the bandwidth used between the computer terminal 10 and the computer server 20. This allows us to choose the minimum format defined by the maximum possible amplitude between two accelerations in the model to be transmitted. This choice can be automated based on the characteristics of the communication network used or manually adjusted by the user, for example.
[0133] The present invention makes it possible to offer a feeling of zero or very low transmission latency through the use of predictive values: at each instant T(n), the computer terminal 10 already knows predictive values of position, velocity, and / or acceleration of instant T(n+1): i.e. xp(n+1), vp(n+1), and ap(n+1).
[0134] Thus, in the case of uniformly varied data to be transmitted, the computer terminal 10 will be able to anticipate the probable values of the following moments and therefore allow, for example, the user of a remote application to interact with its graphical interface as soon as possible after its interaction command has been transmitted to the computer server 20.
[0135] This process can even simulate a zero transmission time as long as it is less than the defined period T(n+1) - T(n).
[0136] We will now illustrate the present invention through several illustrated examples. figure 5 à 7 .
[0137] There figure 5 represents the display device 11 of the computer terminal 10. The data D, here a pixel for example or a group of pixels, or even a voxel or a group of voxels, is represented at the point with coordinates x(n), y(n) at time T(n). In this situation, the attribute A of the data D can include the position of the data D on the display screen, thus A(n) = (x(n), y(n)).
[0138] According to a first embodiment, the computer terminal 10 receives the evolution parameter E(n) of the attribute A(n) so that it is able to determine A(n+1) without the computer server 20 transmitting any other information to it. Therefore, knowing E(n), the computer terminal 10 can calculate A(n+1) from A(n) by applying E(n) to it. Thus, E(n) allows it to obtain x(n+1) from x(n) and y(n+1) from y(n).
[0139] According to a second embodiment, the computer terminal 10 receives the state A(n+1) of the attribute A(n) so that it is able to determine E(n) without the computer server 20 transmitting any other information. Also, knowing A(n+1), and preferably, but not necessarily knowing, the generic evolution law, the computer terminal 10 can calculate E(n) from A(n) and A(n+1). Thus, the trajectory, that is, the set of coordinates (x,y), that the object D will follow between A(n) and A(n+1) will be calculated after deducting E(n). According to this embodiment, the starting point and the ending point are known; it only remains to determine the trajectory to follow, that is, E(n).
[0140] The generic evolution law is one or more rules for determining the evolution parameter E(n) from A(n) and A(n+1). Indeed, there are many paths to reach A(n+1) from A(n). These paths may follow a linear or non-linear progression, and could also be exponential, etc. Therefore, depending on the implementation, it is necessary to define at least one generic rule for the evolution law to be applied.
[0141] There figure 6 In one embodiment, this represents the display device 11 of a computer terminal 10. This display device 11 displays, at time T(n), a data point D in the form of a voxel, for example, whose attribute A is a spatial position and whose state A(n) of said attribute A at time T(n) corresponds to the coordinates x(n) and y(n). In one embodiment, the computer terminal 10 has received, in addition to the state A(n) for the data point D, a velocity vector v(n) enabling the computer terminal 10 to evaluate and thus predict the future positions of said voxel D, unless a counter-order is sent by the computer server 20, for example.
[0142] Also, at time T(n+1), the attribute A of the voxel D has the state A(n+1) = (x(n+1), y(n+1)). The voxel D is therefore located at coordinates x(n+1) and y(n+1) on the display device.
[0143] Preferably, the various positions between A(n) and A(n+1) were calculated and displayed on the basis of v(n) by the computer terminal 10. Here v(n) corresponds to the evolution parameter E(n).
[0144] According to the example illustrated by the figure 6 , at time T(n+1) for example, the computer terminal 10 receives an evolution parameter E(n+2) which therefore corrects the previous evolution parameter corresponding to v(n).
[0145] Thus, by applying the new evolution parameter E(n+2), voxel D changes its trajectory and no longer follows a uniform rectilinear path, but deviates according to the new information received. It follows that, in the absence of a new state for attribute A, voxel D will continue its movement according to the last evolution parameter received.
[0146] There figure 7 represents, according to one embodiment, an example of implementing the present invention. According to this example, the attribute A of the data D corresponds to the transparency level of the object D. Also, the state A(n) corresponds to a transparency coefficient of the object D at time T(n).
[0147] According to this example, the application of an evolution parameter E(n), for example, results in a modification of the state A(n) so that at time T(n+1), A(n+1) is different from A(n), and according to this example, is greater than A(n), so that the object D is therefore more transparent at time T(n+1) than at time T(n).
[0148] These examples are not exhaustive. The present invention can be applied to all types of data and all types of attributes. The analogy to position, velocity, and acceleration is for illustrative purposes only.
[0149] The present invention reduces the production cost and power consumption of terminals. Specifically, it reduces the memory and processing power requirements of current electronic devices, which, according to the invention, no longer need to store and run applications and operating systems locally. As previously mentioned, in the prior art, a significant portion of the non-volatile memory of electronic devices is used to store the operating system and installed applications. The present invention allows these to be relocated to one or more computer servers, thereby significantly reducing the memory requirements of the terminals.
[0150] This inevitably results in a drop in the manufacturing costs of new computer terminals based on the present invention, since the sizes of non-volatile and even sometimes volatile memories required for their operation will be reduced.
[0151] It also emerges that the present invention allows a reduction in the energy consumption of terminals since the majority of algorithmic processing is offloaded to one or more computer servers.
[0152] According to an advantageous embodiment, the present invention also relates to an electronic circuit configured to enable the implementation of the method described above. This electronic circuit can either be integrated into the manufacture of the terminals or added to existing terminals via any interface, for example, USB, Network, PCMCIA, but not limited to such interfaces.
[0153] According to one embodiment, the electronic circuit comprises at least one processor, at least one non-transient memory storing a computer program product comprising instructions executable by said at least one processor, said instructions being configured to execute at least part of the process according to the present invention.
[0154] Advantageously, this electronic circuit is intended to be integrated into a new type of processor, thus enabling high-performance hardware architectures optimized in terms of cost, size, and energy consumption.
[0155] The present invention also offers numerous advantages in terms of maintenance. Indeed, since the operating systems, applications, and services are hosted remotely on one or more computer servers, the terminals no longer need to update them and are no longer dependent on them. The computer server(s) handle all operating system and / or application updates. Cleverly, it is even possible to make all versions of an operating system available remotely.
[0156] According to one embodiment, the present invention makes it possible for any support entity to access the interaction between the computer server and the computer terminal, and even to take control of any computer terminal in place of its user thanks to its privileged server access. It is then easier for a support center to monitor the operation of terminals and to assist a user in using operating systems and applications remotely.
[0157] Ingeniously, the present invention eliminates the need for any application modification or adaptation. Thus, application providers need not make any effort to adapt their applications to the present invention. Furthermore, it reduces the need to test an application on all versions of operating systems used or on all terminals, or to force users to install a new operating system version on their computers. With the present invention, an application will function remotely on all terminals as long as it runs on a chosen version of the preferred operating system.
[0158] According to one embodiment, the present invention enables the implementation of high-quality, low-latency teleconferencing and / or broadcasting solutions.
[0159] According to one embodiment, the present invention makes it possible to create a high-quality, low-latency teleconferencing solution in which: i. Each computer terminal acts as both a client and a server. ii. Each computer terminal is equipped with an image capture system, preferably a video capture system, and advantageously a real-time 3D modeling system. This allows for the real-time representation of a person, their face, and the objects surrounding them using 3D digital objects, for example. iii. Each computer terminal transmits commands, data, animations, and updates to the 3D model representation via a communication network such as the Internet, using the method of the present invention.
[0160] According to another embodiment, the present invention enables the creation of a real-time, high-quality, low-latency event transmission solution. This is achieved using the same method as the previous videoconferencing solution, but in a unidirectional mode. Preferably, only one computer terminal acts as the server and serves a set of client terminals. In this case, only the server terminal needs to be equipped with the image, video, or 3D modeling capture system.
[0161] According to one embodiment, the present invention enables the development of better synchronized and higher-quality collaborative applications. While numerous collaborative applications, including multiplayer games, exist today, the fluidity and responsiveness of their interfaces are often poor. The present invention, however, makes it possible to develop and provide access to new, significantly improved collaborative applications. Indeed, all the contextual interfaces for the various users are centralized within the application running on the computer server and are generated simultaneously for all users who interact with each other and with these applications via their respective terminals.
[0162] According to one embodiment, the present invention also enables the implementation of solutions for compressing static data. The transmission method of the invention can be used for compressing static data, or even for storing static data, particularly if it represents a sequence of data whose values undergo generally uniformly accelerated variations.
[0163] According to one embodiment, the present invention relates to a data compression method. This data compression method can be implemented and operated independently of the transmission method described and claimed in this application.
[0164] In one embodiment, the temporality previously described by T(n) can be replaced by a spatial dimension P(n) defining the position of a static data point within a sequence of positions. This yields not the emission of data at certain T(n) points, but rather variations of static data values for certain P(n) points.
[0165] According to this example, the data compression process may include the following steps: i. The initialization phase includes: a. Recording a first value corresponding to the first value of the static data, b. Recording a second value corresponding to the acceleration of the second value of the static data. ii. The constant acceleration phases include: a. Monitoring the value of said acceleration or its change, b. Monitoring a number that represents the number of positions during which said acceleration remains constant, the number of positions corresponding to the number of consecutive static data points. c. Recording a third value corresponding to said number of positions during which the acceleration remains constant. iii. The acceleration change phases include: a. Monitoring the value of the new acceleration or its change, b. The next value is equal to the new acceleration or its change relative to the previous acceleration value, c.A recording of a fourth value corresponding to said new acceleration. d. According to one embodiment, the fourth value is equal to 1 if this phase is again followed by a phase of change of acceleration.
[0166] The recording(s) of the values are preferably performed by a storage device. This storage device includes a recording medium that is preferably non-transient. This storage device may, for example, be a hard drive, a USB flash drive, a memory card, a memory device, or more generally any medium capable of storing at least one piece of computer data. In this description, the term "storage device" refers to a memory device.
[0167] This data compression method described above can be implemented and operated independently of the transmission method described and claimed in this application.
[0168] This compression process, also called compression step or phase, allows encoding not the exact values of a data sequence, but only the relative variations of each value based on the previous one, for example.
[0169] This involves recording an initial numerical value, then subsequently encoding only the acceleration changes—that is, the changes in the rate of variation between each value, relative to the positions of those values. This yields a starting point followed by the parameters of a trajectory defining the other values to be compressed based on the starting point and their relative variations.
[0170] This is equivalent to only indicating changes of direction to a driver on a road and not indicating to him every meter that he must continue straight ahead, for example.
[0171] This compression process, or this compression step or phase, can thus be used in combination with the transmission process so as to transmit data only in a compressed form, for example.
[0172] According to one embodiment, this compression process can be used for backing up data in a compressed form.
[0173] According to one embodiment, the transmission method according to the present invention can be completed by a step of transmitting from the computer terminal or from a device in communication with the computer server a control data intended to modify the data D, preferably the attribute A of the data D, advantageously the state A(n) of the attribute A of the data D at time T(n), and / or the evolution parameter E(n) at time T(n).
[0174] Advantageously, this transmission step allows data to be sent to the computer server which may or may not affect the data received by the computer terminal, and this from the computer terminal and / or from any device in communication with said computer server.
[0175] This embodiment is particularly applicable to decoders not connected via an uplink to a computer server, such as television decoders that receive their display data from the computer server via a satellite network but are unable to transmit user instructions to the computer server. In this type of situation, the present invention allows the user to transmit data and / or instructions via, for example, a computer or a smartphone to the computer server independently of the computer terminal, which in this case is the television decoder, for example (but not limited to this).
[0176] We will now describe a method of implementation, compatible with the previous ones and illustrated through the figures 8 à 18 .
[0177] According to this embodiment, and as previously stated, in the case where the data is in 2 or 3 dimensions such as a position with coordinates x, y, z, the present invention can be applied to x, y and z.
[0178] In the case where the client, also called terminal 10, interacts with the computer server 20, the present invention can be used both for data transmission from the client 10 to the computer server 20 and in the reverse direction, i.e. from the computer server 20 to the client 10. For example, it may be the transmission of control data for the graphical interface of an application used remotely via a smartphone, corresponding to the movements of the user's fingers moving on the touch screen.
[0179] We will now describe, through the figures 8 , 9 , 10 , 19a , 19b And 19c, the phases of the transmission process according to an embodiment of the present invention.
[0180] Preferably, the transmission process comprises 4 types of phases according to an implementation method which will be described narratively in order to best explain its operation: i. An initialization phase (at T0, T1) as represented in figure 8 This phase includes at least the following steps: a. At the very beginning of the use of a remote application, at time T0 (234): ▪ x is at the value x0 (236) as defined (230) on the computer server 20, for example by the application, ▪ the acceleration a0 of x0 cannot be calculated and is considered zero, ▪ the rate of change of x called v0 is considered zero, ▪ the computer server 20 transmits (231) to the client 10 the real value of x, i.e. x0 (236), ▪ the client 10 receives (232) the value x0 (236) a transmission instant later (239), ▪ the client 10 uses (233) the value x0 (236), for example it displays the point x at the coordinate x0, b.At the next instant T1 (235): ▪ The value of x is x1 (237) as defined (230) on the computer server 20, for example by the application, ▪ On the computer server 20, it is possible to calculate a velocity v1 which is equal to (x1-x0) / T, T being the period (238), ▪ On the computer server 20, an acceleration a1 (238) is calculated which is equal to v1 / T, ▪ The computer server 20 transmits (231) the value a1 (238) to the client 10, ▪ The client 10 receives (232) the value a1 (238) one transmission instant later (239), ▪ The client 10 can calculate the value of x1 = x0 + 1 / 2.a1.T^2 ▪ The client 10 uses (233) the value x1 (237), for example for the purposes of displaying the point x at the coordinate x1, ii. One or more constant acceleration phases, as illustrated in . figure 9 , comprising at least the following steps: a. It will be noted that during these phases, which are the most common in the case of uniformly accelerated variations, the acceleration a(n) at time T(n) (241) will be identical to the acceleration a(n-1) at time T(n-1) (240). b. At time T(n) (241): ▪ The value of x is x(n) (244), as defined (230) on the computer server 20, for example by the application, ▪ On the side of the computer server 20, an acceleration a(n) is calculated using the previous values, including x(n-1) (243), which is equal to a(n)=v(n)-v(n-1) / T^2, in which v(n) could have been calculated by v(n)=(x(n)-x(n-1)) / T), ▪ In this phase, the computer server 20 sees that a(n) is equal to a(n-1) (246) previously transmitted (231) at T(n-1) (240), ▪ The computer server 20 does not transmit (231) the value a(n) to the client 10, ▪ At the same time T(n) (241), client 10 assumes that a(n)=a(n-1), ▪ Client 10 uses (233) for x: the predicted value xp(n) (247) with xp n = xc n -1 + vc n -1 * T + 1 / 2 * ap n * T 2 ou ap n = c -1 ; a(n-1) is the last known value of the acceleration of x by client 10, which could be either a value received by the computer server 20 ac(n-1) or a predicted value ap(n-1) depending on the phase of T(n-1). In this case, we will have xp(n) (247) = x(n) (244) up to approximation errors. ▪ Client 10 ultimately does not receive a new value of a(n) since it is not transmitted. The new predicted value ap(n+1) becomes ap(n), which is equal to a(n) and a(n-1) in this phase;
[0181] This phase allows us to calculate and use (233) at time T(n+1) (242) the predicted value xp(n+1) (248) as done with xp(n) (247), which was also not transmitted by the computer server 20. We will also have xp(n+1) (248) = x(n+1) (245) within approximation errors. i. One or more phases of acceleration change, as illustrated in figure 10 , including at least the following steps: a. During these phases, the new acceleration values of x must be transmitted to client 10 so that it can deduce the new values of xb. At time T(n) (241): ▪ We are in the case where the acceleration of x is different from the acceleration of x at time T(n-1) (240), ▪ The value of x is x(n) (250), as defined (230) on the computer server 20, for example by the application, ▪ On the side of the computer server 20, an acceleration a(n) (253) is calculated which is equal to a(n)=v(n)-v(n-1) / T^2 with v(n) which can be calculated by v(n)=(x(n)-x(n-1)) / T), ▪ In this phase, the computer server 20 sees that a(n) is different from a(n-1) (252), ▪ The computer server 20 transmits (231) the value a(n) (253) at time T(n) (241), ▪ At the same time T(n) (241), client 10 has not yet received the value a(n) (253), it assumes that a(n)=a(n-1) and uses (233) for x the predicted value xp(n) (254) with: xp n = xc n -1 + vc n -1 * T + 1 / 2 * ap n * T 2 avec ap n = c -1 ou ac n -1 ; a(n-1) is the last known value of the acceleration of x by client 10, which could either be a value received by the computer server 20 a(n-1) (252) or a predicted value ap(n-1) depending on the phase of T(n-1). According to the figure 10 , we schematically represent a situation where the computer server 20 would have sent a(n-1) (252) to the client 10, however this would not be the case if the instant T(n-1) (240) corresponded to a phase of constant acceleration; ▪ One instant of transmission later, the client 10 receives the value a(n) (253) which is finally different from a(n-1) in the case of this phase, and calculates the new true value of x with xc(n)=xc(n-1)+vc(n-1)*T+1 / 2*a(n)*T^2 (250) ▪ The client 10 then corrects (233) the predicted value used xp(n) (254) by the value xc(n) (250) which is equal to x(n).
[0182] The new predictive value ap(n+1) becomes a(n) to calculate the predictive value of xp(n+1) (255).
[0183] Also, on the side of the computer server (230), the value of x (251) at time T(n+1) (242) will or will not cause the transmission (231) of a new acceleration value of x, implying or not correcting the predictive value xp(n+1) (255) a transmission instant later. i. One or more resynchronization and / or error correction phases comprising at least the following steps: a. This phase is necessary when the computer server 20 and / or the client 10 detects a loss of connection and / or reception for one or more consecutive periods depending on the desired quality of service; b. This phase is necessary when the client 10 uses predictive values for long consecutive periods, such that the accuracy of the new predictive value becomes unacceptable; This may be the case, for example, if the accuracy used for the transmitted acceleration may generate an error greater than a predefined value or a threshold predetermined by the transmission configuration; c.This phase is essentially identical to an initialization phase: ▪ The computer server 20 transmits the value x(n) to the client 10 at time T(n), as when x0 was transmitted at time T0; ▪ The computer server 20 transmits the value a(n+1) to the client 10 at time T(n+1), as when a1 was transmitted at time T1.
[0184] We will now describe the operation of client 10 and the detection of phase changes according to an embodiment of the present invention compatible with the embodiments previously presented: i. Since customer 10 does not know in advance that there will be a change in acceleration, it considers itself to be in a phase of constant acceleration as previously described because this is the most common during uniformly accelerated variations; ii. If customer 10 does not receive anything for a time greater than T since the last value received or predicted in period T(n), it uses the predicted value xp(n+1) from the beginning of period T(n+1) defined by the phase of constant acceleration; iii. If customer 10 receives a new acceleration value during period T(n+1), it uses this new value and replaces the predicted value xp(n+1) with this new corrected value xc(n+1) defined by the phase of change in acceleration.
[0185] We will now illustrate the impacts on the data rate of a transmission implemented by the present invention: i. In the case of data undergoing uniformly accelerated variations most of the time, the system implementing the present invention is then in phases of constant acceleration most of the time: the amount of data to be sent is considerably reduced since there is no new information to transmit to the client 10 during the phases of constant acceleration; ii. It is only in a phase of change in the acceleration of the variations of the values, for example corresponding to a change of trajectory when it comes to coordinates, or in initialization or resynchronization phases, for example during error handling or loss of connection, that the computer server 20 transmits new values of the data to the client 10; iii. Advantageously, the useful size of the data to be transmitted is smaller in the general cases of prior art data transmission: a.For example, if the values or positions fit on 4 bytes, and the acceleration on 1 byte: the usable size is divided by 4; b. For example, if the values or positions fit on 4 bytes, and the acceleration on 2 bytes: the usable size is divided by 2. iv. Advantageously, since acceleration variations are relatively small when transmitting a model representing the movement of interfaces or graphical scenes of a digital representation of a real or virtual world, or even one with which a user can interact, the system can be configured to transmit the acceleration variation between T(n+1) and T(n), i.e. a(n+1)-a(n-1) rather than a(n+1) to minimize the amount of information to be transmitted, and thus to choose the minimum format defined by the maximum possible amplitude between two accelerations in the model to be transmitted.
[0186] We will now illustrate the impacts on latency and the perception of transmission times through the use of the present invention: i. The method according to the present invention makes it possible to offer a perception of zero or very low transmission latency through the use of predictive values: at each instant T(n), the client 10 already has predictive values for the values or positions, velocity, and acceleration of instant T(n+1): namely xp(n+1), vp(n+1), and ap(n+1). ii. Thus, in the case of uniformly varying data to be transmitted by the computer server 20, the client 10 can anticipate the probable values of subsequent instants and therefore allow, for example, the user of a remote application to interact with their graphical interface as soon as possible after their interaction command has been transmitted to the computer server 20 by the client 10. iii. The method according to the present invention can also simulate zero transmission time as long as it is less than the defined period T.
[0187] THE figures 19a , 19b And 19cillustrate, according to one embodiment, a chronological summary of at least some of the steps of the process according to the present invention. In particular, the figure 19a presents, according to one embodiment, the various states of the data as well as the commands transmitted to the client, also called the terminal, by the computer server as a function of the period T considered. Similarly, the figure 19b presents, according to one embodiment, the various commands received by the client from the computer server and the various actions performed according to the period T considered. figure 19c represents the legend corresponding to the figures 19a And 19b according to an embodiment of the present invention.
[0188] We will now illustrate some of the advantages offered by the present invention: i. Reduction of the cost and consumption of appliances in the short term, as illustrated in figure 11 a. The present invention reduces the memory and processing power requirements of current electronic devices (259), which then no longer need to store and execute locally, via a processor (258), an operating system, for example, and / or applications. Currently, a significant portion of the non-volatile memory in electronic devices is used to store the operating system and installed applications. Moving this memory to a separate location significantly reduces their memory requirements. Consequently, the manufacturing costs of new devices (260) based on the present invention are reduced since the size of the non-volatile (256) and sometimes even volatile (257) memory required for their manufacture is decreased. b. The present invention reduces the power consumption of electronic devices.Indeed, preferably, there is no operating system and / or applications running locally, nor any other applications running in the background on the electronic device as with current prior art devices. This therefore reduces the energy consumption of electrical devices using the present invention. ii. Second optimization of the cost of the devices, i.e., the clients 10, and the computer servers 20, as illustrated in [reference]. figure 12 a. The present invention may, according to one embodiment, require several addition and / or multiplication calculations in the case of the use of certain applications. Cleverly, the present invention also relates to an electronic circuit (261) that manages these calculations so as not to overload the main processors of the electronic devices with respect to the clients 10. This can also be applied on the server side of computers 20 according to one embodiment. This electronic circuit can either be integrated into the manufacture of the electronic devices (262, 263) or added to existing devices via an interface, for example USB, Network, PCMCIA, by way of non-exhaustive and non-limiting example. b.This dedicated electronic circuit can preferably be integrated into new processors (259), thus enabling high-performance hardware architectures optimized in terms of cost, size, and energy consumption. iii. Maintenance of electronic devices, i.e., clients 10, operating systems, and applications, is facilitated: a. Since the operating systems, applications, and services are remote, clients 10 no longer need to update them and are no longer dependent on them. The computer server 20 handles updating all operating systems or applications, making it possible to make all versions of an operating system available remotely to one or more clients 10; b.Advantageously, any technical support element can, for example, access the communications between the computer server 20 and the client 10, and even take control of any client 10 in place of its user thanks to its privileged access, known as "server access." It is then easier for a technical support center to monitor the operation of the clients 10, and, for example, to assist a user in using the operating systems and / or applications remotely. Furthermore, for the application provider, there is no effort required to adapt their application to the operating system or the client.Therefore, it is less necessary to test it on all versions of the operating systems used or on all electronic products; the supplier's application is, via the present invention, remotely functional for all devices, i.e., clients 10 also called terminal 10, provided that the application runs on a chosen version of the preferred operating system. iv. High-quality, low-latency teleconferencing or broadcasting application, as illustrated in [reference]. figure 13 et 14 a. In the prior art, systems exist today that offer the ability to model real-world scenes in 3D and in real time. By coupling these systems (264) with the present invention, and in particular with its transmission method, it is possible to create a high-quality, low-latency teleconferencing solution, as illustrated in figure 13 : ▪ According to one embodiment, each electronic device (265) acts as both a client 10 and a computer server 20, ▪ Each electronic device is equipped with a real-time 3D capture and modeling system (264): this allows for the real-time representation of a person, their face, and the objects surrounding them using 3D digital objects, ▪ Each electronic device transmits, via a communication network (213), commands, data (CMD / DATA), animations, and changes to the 3D model representation by means of the present invention; and / or a real-time retransmission solution for high-quality, low-latency events, as illustrated in figure 14 : ▪ Using the same method as the previous videoconferencing solution, but in a unidirectional mode. ▪ For example, only one transmitter (265) serving a set of 10 clients (266) is then equipped with the 3D capture and modeling system (264). v. Better synchronized and very high-quality collaborative applications, as illustrated in figure 15 a. Many collaborative applications, including multiplayer video games, exist today; however, the fluidity and responsiveness of their interfaces are often of poor quality; b. Thanks to the transmission method described by the present invention, it becomes possible to develop and provide access to new collaborative applications (267) of much higher quality. Indeed, all the contextual interfaces of the different users can be centralized in the application running on the computer server 20 (201) and generated simultaneously for all users who interact with these applications via their client electronic devices 10 (214). vi. Application to the compression of static data, as illustrated in figure 16 à 18 a. The present invention can be used for compressing data, preferably static data, and in particular if it represents a sequence of data whose values undergo generally uniformly accelerated variations; b. For this purpose, the time periods corresponding to the moments when data must or must not be transmitted, depending on the phase considered, are replaced in the process by the position of the data in the sequence of data to be compressed (268); The present invention thus makes it possible to compress a digital file to be compressed (268) into a compressed digital file (269); c. Then, the steps of the process according to the present invention must be applied so that the transmission process becomes a compression process by constructing a new compressed sequence (269) of said data. d. The initialization phase, as illustrated in figure 16 , is defined as follows: ▪ The first value of the file to be compressed (268) is kept (270) in the compressed file (269), ▪ The second value (272) of the compressed file is equal to the acceleration between the first value (270) and a second value (271) of the file to be compressed (268), e. The constant acceleration phases (274), as illustrated in figure 17 , are marked by: ▪ a constant acceleration phase identifier (275), ▪ followed by the value of the acceleration or its change (276), ▪ followed by a number representing the number of positions during which the acceleration remains constant (277). f. The acceleration change phases, as illustrated in figure 18 , are marked by: ▪ an acceleration change identifier (279) between the second value (271) of the file to be compressed and the third value (278) of the file to be compressed, ▪ followed by the value of the new acceleration or its variation (280), g. Resynchronization phases may not be necessary in this application case since it is not a transmission but rather a data compression.
[0189] The present invention thus makes it possible to compress data using the transmission method between a data source, which can be a non-transient medium for example or a real-time data collection source, and a storage device comprising a non-transient medium capable of storing the data transmitted via the transmission method of the present invention.
[0190] According to one embodiment, the present invention can also be used for data analysis. In particular, the present invention enables data shaping via a compression process, resulting in an enriched form suitable for specific analytical purposes.
[0191] According to one embodiment, the data transmitted by the method according to the present invention are analyzed by an analysis device. An analysis device may include at least one processor and at least one data storage medium. This analysis device is configured to perform one or more analyses based on the transmitted data. One of the advantages of the present invention is a reduced analysis time, as the analysis device can concentrate its system resources on analyzing relevant data within a dataset, or even on analyzing variations in this data, instead of the data itself. This analysis method can accelerate data processing time in numerous application areas.
[0192] The invention is not limited to the embodiments described above and extends to all embodiments covered by the claims. REFERENCES
[0193] 10 Computer terminal 11 Display device 12 Processor 13 Memory 13a Operating system 13b Applications 13c Personal data 13d Client section 14 Battery 15 Communication module 16 User interface 20 Computer server 21 Processor 22 Memory 22a Installation file 22b Update file 22c Personal data 22d Server section 22e Operating system 22f Applications 23 Communication module 31 Reception by the computer terminal 32 Transmission by the computer terminal 100 Transmission method 110 Initialization phase 111 Reception by said computer terminal of said data D and a first state A(n) of said first attribute A corresponding to a first time T(n) from at least one computer server 112 Use by said computer terminal of said data D according to the first state A(n) of said first attribute A at the first time T(n) 113a Reception by said computer terminal of a second state A(n+1) said113b First attribute A corresponding to a second time T(n+1) from at least one computer server 114a Receipt by said computer terminal of the first evolution parameter E(n) of said first attribute A from at least one computer server 114a Calculation by said computer terminal of a first evolution parameter E(n) of said first attribute A as a function of A(n) and A(n+1) 114b Calculation by said computer terminal of the second state A(n+1) as a function of A(n) and E(n) 120 Evolution phase 121a Use by said computer terminal of said data D according to the second state A(n+1) of said first attribute A at the second time T(n+1) 121b Receipt by said computer terminal of a second evolution parameter E(n+1) of said first attribute A from at least one computer server 121c Receipt by said computer terminal of a third state A(n+2) of said first attribute A at the third time T(n+2) from at least one computer server, A(n+2) beingdifferent from A(n+1); then use by said computer terminal of said data D according to the third state A(n+2) of said first attribute A at the third time T(n+2). 122a Calculation by said computer terminal of a third state A(n+2) of said first attribute A corresponding to a third time T(n+3) as a function of A(n) and / or A(n+1) and E(n) 122b Calculation by said computer terminal of a third state A(n+2) of said first attribute A corresponding to a third time T(n+2) as a function of A(n) and / or A(n+1) and E(n+1) 122c Calculation by said computer terminal of a third evolution parameter E(n+1) of said first attribute A as a function of A(n+1) and A(n+2); Then, calculation by said computer terminal of the fourth state A(n+3) of said first attribute A at the fourth time T(n+3) as a function of A(n+2) and E(n+1). 123a Use by said computer terminal of said data D according to the third state A(n+2) of said first attribute A at the third time T(n+2) 123bUse by said computer terminal of said data according to the third state A(n+2) of said first attribute A at the third time T(n+2) 123c Use by said computer terminal of said data D according to the fourth state A(n+3) of said first attribute A at the fourth time T(n+3). 130 Resynchronization phase 131 Receipt by said computer terminal of said data D1 and a state A(n+m) of said first attribute A corresponding to a time T(n+m) from at least one computer server 132 Use by said computer terminal of said data D1 according to the state A(n+m) of said first attribute A at time T(n+m) 133a Receipt by said computer terminal of a state A(n+m+1) of said first attribute A corresponding to a time T(n+m+1) from at least one computer server 133b Receipt by said computer terminal of an evolution parameter E(n+m) of said first attribute A from at least one computer server 134a Calculation by said computer terminal of aevolution parameter E(n+m) of said first attribute A as a function of A(n+m) and A(n+m+1) 134b Calculation by said computer terminal of the state A(n+m+1) as a function of A(n+m) and E(n+m).
Claims
1. A method (100) for transmitting, from at least one computing server (20) to at least one computing terminal (10), at least one piece of data D having at least one first attribute A, said at least one computing server (20) being in communication with said computing terminal (10), said method comprising at least the following phases: i. At least one initialisation phase (110) comprising at least the following steps of: a. Receiving (111), by said computing terminal (10) from at least one computing server (20), at least: ▪ said piece of data D; ▪ a first state A(n) of said first attribute A corresponding to a first time T(n); b. Using (112), by said computing terminal (10), said piece of data D according to the first state A(n) of said first attribute A at the first time T(n); c. Receiving, by said computing terminal (10): ▪ (113a) a second state A(n+1) of said first attribute A corresponding to a second time T(n+1) from at least one computing server (20), ▪ Then, calculating (114a), by said computing terminal (10), a first evolution parameter E(n) of said first attribute A as a function of A(n) and A(n+1) - or, ▪ (113b) the first evolution parameter E(n) of said first attribute A from at least one computing server (20), ▪ Then, calculating (114b), by said computing terminal (10), the second state A(n+1) as a function of A(n) and E(n); ii. At least one evolution phase (120) comprising several iterations of the following steps of: a. Using (121a), by said computing terminal (10), said piece of data D according to the second state A(n+1) of said first attribute A at the second time T(n+1); b. Then, calculating (122a), by said computing terminal (10), a third state A(n+2) of said first attribute A corresponding to a third time T(n+2) as a function of A(n) and / or A(n+1), and of E(n); c. Then, using (123a), by said computing terminal (10), said piece of data D according to the third state A(n+2) of said first attribute A at the third time T(n+2); During the steps of the evolution phase (120), the first evolution parameter E(n) being modified to a second evolution parameter E(n+1), if: ▪ said computing terminal (10) receives (121b) a second evolution parameter E(n+1) of said first attribute A from at least one computing server (20), E(n+1) being different from E(n); said calculating (122b), by said computing terminal (10), the third state A(n+2) corresponding to the third time T(n+2) being then as a function of A(n) and / or A(n+1), and of E(n+1); During the steps of the evolution phase (120), the second state A(n+1) being modified to a third state A(n+2), and the first evolution parameter E(n) being modified to a second evolution parameter E(n+1) if: ▪ said computing terminal (10) receives (121c), from the at least one computing server (20), a third state A(n+2) of said first attribute A corresponding to a third time T(n+2), the evolution phase (120) then comprising calculating (122c) a second evolution parameter E(n+1) of said first attribute A, as a function of A(n+1) and A(n+2). And wherein using (112, 121a, 123a), by said computing terminal (10), said piece of data D is taken from at least: displaying said piece of data D via a display device, storing said piece of data D via a memory device, analysing said piece of data D via an analysis device.
2. The method (100) according to the preceding claim, wherein using, by said computing terminal (10), said piece of data D comprises at least one step of displaying said piece of data D, preferably said computing terminal (10) comprising at least one display device (11) configured to display said piece of data D.
3. The method (100) according to any of the preceding claims, wherein using, by said computing terminal (10), said piece of data D comprises at least one step of storing said piece of data D, preferably said computing terminal (10) comprising at least one storage device configured to store said piece of data D, preferably on a non-transitory medium.
4. The method (100) according to the preceding claim, wherein using, by said computing terminal (10), said piece of data D comprises at least one step of analysing said piece of data D, preferably said computing terminal (10) comprising at least one analysis device configured to analyse said piece of data D.
5. The method (100) according to any of the preceding claims, wherein said piece of data is taken from at least: a pixel, a voxel, a numerical value, an object, an image.
6. The method (100) according to any of the preceding claims, wherein said at least one first attribute A is taken from at least: a position, a speed, an acceleration, a colour taken from a colour range, a transparency coefficient, and preferably wherein the evolution parameter is taken from at least: a speed, an acceleration, a trajectory.
7. The method (100) according to any of the preceding claims, wherein the first state, the second state, and the third state are taken from at least: a numerical value, spatial coordinates, a speed vector, an acceleration vector, a colour taken from a colour range, a transparency coefficient.
8. The method (100) according to any of the preceding claims, wherein the first evolution parameter E(n) is equal to (A(n+1)-A(n)) / (T(n+1)-T(n)), preferably to the first derivative of (A(n+1)-A(n)) / (T(n+1)-T(n)) relative to T.
9. The method (100) according to any of the preceding claims, wherein the second state A(n+1) is equal to E(n)*(T(n+1)-T(n))+A(n), preferably to the integral of E(n)*(T(n+1)-T(n))+A(n), T ranging from T(n) to T(n+1).
10. The method (100) according to any of the preceding claims, wherein the third state A(n+2) is equal to E(n+1)*(T(n+2)-T(n+1))+A(n+1), preferably to the integral of E(n+1)*(T(n+2)-T(n+1))+A(n+1), T ranging from T(n+1) to T(n+2), and preferably wherein the second evolution parameter E(n+1) is equal to (A(n+2)-A(n+1)) / (T(n+2)-T(n+1)), preferably to the first derivative of (A(n+2)-A(n+1)) / T(n+2)-T(n+1)) relative to T.
11. The method (100) according to any of claims 1 to 7, wherein the third state A(n+2) is equal to E(n)*(T(n+2)-T(n))+A(n), preferably to the integral of E(n)*(T(n+2)-T(n))+A(n), T ranging from T(n) to T(n+2), and preferably wherein the second evolution parameter E(n+1) is equal to (A(n+2)-A(n)) / (T(n+2)-T(n)), preferably to the first derivative of (A(n+2)-A(n)) / (T(n+2)-T(n)) relative to T.
12. The method (100) according to any of the preceding claims, wherein the step of receiving (111), by said computing terminal (10), said piece of data D from at least one computing server (20) and the step of receiving (111), by said computing terminal (10), a first state A(n) of said first attribute A corresponding to the first time T(n) from at least one computing server (20) are carried out in one and a single step.
13. The method (100) according to any of the preceding claims, comprising a resynchronisation phase (130) comprising at least the following steps of: i. Receiving (131), by said computing terminal (10), said piece of data D from at least one computing server (20); ii. Receiving (131), by said computing terminal (10), a state A(n+m) of said first attribute A corresponding to a time T(n+m) from at least one computing server (20); iii. Using (132), by said computing terminal (10), said piece of data D according to the state A(n+m) of said first attribute A at the time T(n+m); iv. Receiving, by said computing terminal (10): ▪ (133a) a state A(n+m+1) of said first attribute A corresponding to a time T(n+m+1) from at least one computing server (20), ▪ Then, calculating (134a), by said computing terminal (10), an evolution parameter E(n+m) of said first attribute A as a function of A(n+m) and A(n+m+1); - or, ▪ (133b) an evolution parameter E(n+m) of said first attribute A from at least one computing server (20), ▪ Then, calculating (134b), by said computing terminal (10), the state A(n+m+1) as a function of A(n+m) and E(n+m).
14. An electronic circuit comprising a plurality of electronic components configured to execute a series of commands implementing the method (100) according to any of the preceding claims.
15. A computing terminal (10) comprising at least one electronic circuit according to the preceding claim, the terminal comprising at least one user interface (16), at least one display device (11) and at least one communication module (15) with at least one computing server (20).
16. A computer program product, preferably recorded on a non-transitory medium, comprising instructions, which when performed by at least one of a processor and a computer, cause the at least one of the processor and the computer to execute the method according to any of claims 1 to 13.