SYSTEM AND METHOD FOR SYNCHRONIZED DATA PLAYBACK AND AIRCRAFT

20230396813 · 2023-12-07

    Inventors

    Cpc classification

    International classification

    Abstract

    A system for synchronized data playback comprising at least one offset calculation device; and a plurality of clients; wherein the plurality of clients are each synchronized to a shared reference timeframe, each of the plurality of clients is configured to receive a common set of timestamped data frames, the offset calculation device is configured to determine a synchronized playback time for each of the common set of timestamped data frames with respect to the shared reference timeframe; and each of the plurality of clients is configured to playback each of the common set of timestamped data frames at the respective determined playback time.

    Claims

    1. A system for synchronized data playback comprising: at least one offset calculation device; and a plurality of clients; wherein the plurality of clients are each synchronized to a shared reference timeframe, wherein each of the plurality of clients is configured to receive a common set of timestamped data frames, wherein the offset calculation device is configured to determine a synchronized playback time for each of the common set of timestamped data frames with respect to the shared reference timeframe; and wherein each of the plurality of clients is configured to playback each of the common set of timestamped data frames at the respective determined playback time.

    2. The system according to claim 1, further comprising a reference clock configured to provide the shared reference timeframe to each of the plurality of clients.

    3. The system according to claim 1, further comprising a server configured to provide the common set of timestamped data frames to each of the plurality of clients.

    4. The system according to claim 3, wherein the server comprises at least one offset calculation device.

    5. The system according to claim 1, wherein each of the plurality of clients comprises one of the at least one offset calculation device.

    6. The system according to claim 1, wherein each of the plurality of clients comprises a synchronization buffer configured to store at least one of the common set of data frames until the respective determined playback time.

    7. The system according to claim 1, further comprising a plurality of decoders, wherein each of the plurality of decoders is associated with one of the plurality of clients, and wherein each of the plurality of clients is configured to control a speed at which the decoder associated with each respective client processes the common set of data frames.

    8. A method for synchronized data playback, comprising the steps of: providing a shared synchronized timeframe to a plurality of clients; receiving a common set of timestamped data frames at each of the plurality of clients; determining a synchronized playback time for each of the timestamped data with respect to the shared synchronized timeframe by an offset calculation device; playing back each of the common set of timestamped data frames at the determined synchronized playback time by each of the plurality of clients.

    9. The method according to claim 8, wherein the shared synchronized timeframe is provided by a reference clock.

    10. The method according to claim 8, wherein the common set of timestamped data frames are provided to each of the plurality of clients by a server.

    11. The method according to claim 10, wherein the server comprises at least one offset calculation device.

    12. The method according to claim 8, wherein each of the plurality of clients comprises one of the at least one offset calculation device.

    13. The method according to claim 8, further comprising a storing of at least one of the common set of data frames until the respective determined playback time in a synchronization buffer of each of the plurality of clients.

    14. The method according to claim 8, further comprising each of the plurality of clients controlling a speed at which a decoder associated with each respective client processes the common set of data frames.

    15. An aircraft comprising a system according to claim 1.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0020] The present invention is explained in more detail below with reference to the embodiments shown in the schematic figures.

    [0021] FIG. 1 shows a schematic illustration of an embodiment of a system for synchronized data playback;

    [0022] FIG. 2 shows a schematic illustration of a further embodiment of a system for synchronized data playback;

    [0023] FIG. 3 shows a schematic illustration of a further embodiment of a system for synchronized data playback; and

    [0024] FIG. 4 shows a schematic flow diagram of an embodiment of a method for synchronized data playback.

    [0025] The accompanying figures are intended to provide a further understanding of embodiments of the invention. They illustrate embodiments and, in connection with the description, serve to explain principles and concepts of the invention. Other embodiments and many of the advantages mentioned will be apparent with reference to the drawings. The elements of the drawings are not necessarily shown to scale with respect to each other.

    [0026] In the figures of the drawings, identical elements, features and components that have the same function and the same effect are each given the same reference signs, unless otherwise specified.

    DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

    [0027] FIG. 1 shows a system 100 for synchronized data playback. The system 100 comprises an offset calculation device 110 and two clients 120a and 120b.

    [0028] The clients 120a and 120b are each synchronized to a shared reference timeframe. The clients 120a and 120b are further configured to receive a common set of timestamped data frames. The offset calculation device 110 is configured to determine a synchronized playback time for each of the common set of timestamped data frames with respect to the shared reference timeframe. The clients 120a and 120b are further configured to playback each of the common set of timestamped data frames at the respective determined playback time.

    [0029] One way of determining the synchronized playback time is to calculate an offset between the timeframe in which the data frames are stamped and the synchronized timeframe and then to set a time delay for the data playback which is equal to or greater than the offset between the two timeframes. This offset between the two timeframes can be calculated if both a relative clock drift, which can arise if the respective clocks run at different speeds, and an offset at an initial point in time are known. If there is no relative clock drift, this offset remains constant for all frames. If a relative clock drift exists, it can be necessary to determine an individual offset for each data frame.

    [0030] FIG. 2 shows a system 100 for synchronized data playback. The system 100 comprises a reference clock 130, a server 140, and a client 120, which represents a plurality of functionally identical clients, which are not shown for clarity reasons. The client 120 comprises an offset calculation device 110.

    [0031] The features of the system 100 shown in FIG. 2 function essentially the same as the features of the system 100 shown in FIG. 1. Furthermore, the reference clock 130 is configured to provide the shared reference timeframe to each of the plurality of clients 120, and the server 140 is configured to provide the common set of timestamped data frames to each of the plurality of clients 120.

    [0032] As shown in FIG. 2, the reference clock 130 can be arranged externally to both the server 140 and the plurality of clients 120. Alternatively, the server 140 could comprise the reference clock 130. In such a case, the data needed to synchronize the timeframes of the plurality of clients 120 can be transmitted separately from or together with the set of common data frames. In another alternative embodiment, the plurality of clients 120 could establish the synchronized time frame through communication between each other.

    [0033] The server 140 might comprise an encoder for transforming a data stream, which could be either a live feed or stored on a storage medium, into the common set of timestamped data frames. Alternatively, the common set of timestamped data frames might be provided to the server 140, which then distributes the set to each of the plurality of clients 120. The server 140 might comprise a storage medium to store the original data stream and/or the common set of timestamped data frames.

    [0034] FIG. 3 shows a system 100 for synchronized data playback. The system 100 comprises a server 140, a client 120, which represents a plurality of functionally identical clients, and a decoder 150, which represents a plurality of functionally identical decoders. The server 140 comprises an offset calculation device 110. The client 120 comprises a synchronization buffer 121.

    [0035] The synchronization buffer 121 is configured to store at least one of the common set of data frames until the respective determined playback time. The decoder 150 is associated with the client 120, and the client is configured to control a speed at which the decoder 150 processes the common set of data frames.

    [0036] The client 120 passes the common set of data frames along to the decoder 150 for further processing in such a way that the data frames are played back at the determined synchronized playback time.

    [0037] Through increasing or decreasing the speed at which the decoder 150 processes the data frames and/or by discarding data frames from the synchronization buffer 121 instead of passing them along to the decoder 150, synchronicity between clients can be restored if one or more of the plurality of clients 120 start lagging behind the others.

    [0038] In an alternative embodiment, the client 120 may comprise the decoder 150. In a different alternative embodiment, the system 100 might not comprise a decoder 150, but the client 120 might be associated with a decoder of a different device, and be able to control the decoder in the way described above.

    [0039] FIG. 4 shows a schematic flow diagram of a method M for synchronized data playback. In a method step M1, a shared synchronized timeframe is provided to a plurality of clients. In a further method step M2, a common set of timestamped data frames is received at each of the plurality of clients. In a further method step M3, a synchronized playback time for each of the timestamped data with respect to the shared synchronized timeframe is determined by an offset calculation device. In a further method step M4, each of the common set of timestamped data frames is played back at the determined synchronized playback time by each of the plurality of clients.

    [0040] FIG. 4 further shows two optional method steps. In one optional method step M5, at least one of the common sets of data frames is stored in a synchronization buffer of each of the plurality of clients until the respective determined playback time. In a further optional method step M6, a speed at which a decoder associated with each respective client processes the common set of data frames is controlled by the respective client.

    [0041] Throughout the application, reference has been made to a common set of timestamped data frames. It should be understood that for the present invention to be performed, it is not actually necessary that each and every one of the common set of data frames be timestamped. It can suffice that at least one of the data frames be timestamped, if the relation between the data frames allows for the time associated with each data frame in the timeframe of the timestamps to be determined, e.g., if the data frames are numbered and the time duration for each data frame is known. In this way, it can suffice to timestamp a single, initial data frame, to timestamp data frames at set intervals, or even to timestamp random data frames. All these scenarios are explicitly part of the present invention.

    [0042] Throughout the application, reference has been made to “a common set of data frames”. In general, this can be understood to mean that every client receives the exact same data frames. However, as has been mentioned, there may be cases where different clients receive different data frames, which should nevertheless be played back in synchronicity, i.e., such that the total sum of all frames played back by all clients leads to the desired outcome. Such cases are to be explicitly incorporated into the present invention and in these cases the term “common set of data frames” is to be understood that all the frames received by all clients come from a common set, even though different clients may receive different data frames.

    [0043] While at least one exemplary embodiment of the present invention(s) is disclosed herein, it should be understood that modifications, substitutions and alternatives may be apparent to one of ordinary skill in the art and can be made without departing from the scope of this disclosure. This disclosure is intended to cover any adaptations or variations of the exemplary embodiment(s). In addition, in this disclosure, the terms “comprise” or “comprising” do not exclude other elements or steps, the terms “a” or “one” do not exclude a plural number, and the term “or” means either or both. Furthermore, characteristics or steps which have been described may also be used in combination with other characteristics or steps and in any order unless the disclosure or context suggests otherwise. This disclosure hereby incorporates by reference the complete disclosure of any patent or application from which it claims benefit or priority.

    LIST OF REFERENCE SIGNS

    [0044] 100 system [0045] 110 offset calculation device [0046] 120 client [0047] 120a client [0048] 120b client [0049] 121 synchronization buffer [0050] 130 reference clock [0051] 140 server [0052] 150 decoder [0053] M method [0054] M1 step of providing a shared reference timeframe [0055] M2 step of receiving data frames [0056] M3 step of determining synchronized playback time [0057] M4 step of playing back data frames [0058] M5 step of storing data frames [0059] M6 step of controlling speed of data processing