Abstract:
A system controller, preferably implemented as a cloud service, enables the synchronization of display devices located at geographically remote locations relative to one another. A display and control devices are provided at each of a plurality of sites, with one or both of the devices being capable displaying the transmitted show. The control device enables the system controller to determine local relative delays in the show and to control the temporal reproduction of said transmitted show by said display device so as to achieve a substantially synchronized reproduction of the show at each of the sites.

Description:
[0001]    This application claims the benefit of U.S. Provisional Application Nos. 61/621,462 and 61/621,464, all filed Apr. 6, 2012. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention: 
         [0003]    The present invention is generally related to the remote distribution and playback of television programs and, in particular, to mechanisms for synchronizing playback on display devices that are geographically remote from one another. 
         [0004]    2. Description of the Related Art: 
         [0005]    The world of television is about to change. For 70 years, the television box has been completely disconnected from the rest of the household. With the advent of wireless networks, connected set-top-box and tablets, our old television is now about to be integrated in our daily life. 
         [0006]    For example, we can watch a movie and check information about that actor on an iPad sitting on our laps. The so-called “second screen” can augment the vision of the show we are watching, allowing us to enjoy it even more. 
         [0007]    Watching a show on television with an iPad connected to the world allows for a completely new scenario, where television can become (or return to being) social. We all get together for a great game, to watch it with friends in front of the television. However, in most cases we are unable or unwilling to travel, but we still would love to chat about a show with our friends, live, while the show is on television. With the support of a second-screen device, this is finally possible: we can communicate with all the people watching the same show we are watching, just because they have an iPad on their laps too. 
         [0008]    The opportunity is incredible, because making television social means changing the way we watch television. Once you give a user this capability, there is no turning back. There is nothing more depressing than watching television alone. Once you are able to share the experience with friends—even if they are far away—you will never go back: watching television alone is going to be a thing of the past. 
         [0009]    This scenario opens up a new opportunity for advertisers, who are investing $200B every year to show commercials on a box, without knowing if the consumer is actually watching the show, or what she likes, or giving her any ability to interact with the ad. With a second screen, the advertiser will be able to target the user and deliver ads that become interactive, not on the television, but on the second screen: I see a commercial about a tennis shoe on television, and I have the ability to buy it on the tablet. This is the holy grail of advertising. 
         [0010]    There is one major issue to deliver such a new experience, and it is due to the fact that shows are not synchronized across televisions. Because of difference in terrestrial broadcasting vs. cable broadcasting vs. satellite broadcasting the show I am watching on my television might be a few seconds late, compared on the one you are watching on your television. Delays are also added by digital compression for High-Definition or by set-top-boxes. 
         [0011]    Watching an out-of-sync show while talking with your friends could completely kill the experience. If we are watching a game and one of the users is “ahead” of the others by a few seconds, she will know the result of any action in advance, thus ruining the pleasure of the game to everyone else. 
       SUMMARY OF THE INVENTION 
       [0012]    Thus, a general purpose of the present invention is to provide an effective mechanism for synchronizing the reproduction of a program on multiple display devices, such as television systems, that are geographically remote from one another. 
         [0013]    This is achieved in the present invention by providing a system controller, preferably implemented as a cloud service, enables the synchronization of display devices located at geographically remote locations relative to one another. A display and control devices are provided at each of a plurality of sites, with one or both of the devices being capable displaying the transmitted show. The control device enables the system controller to determine local relative delays in the show and to control the temporal reproduction of said transmitted show by said display device so as to achieve a substantially synchronized reproduction of the show at each of the sites. 
         [0014]    An advantage of the present invention is that the reproduction of the program is substantially synchronized between the several participating remote display locations. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]      FIG. 1  is a general block diagram illustrating a preferred embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0016]    The present invention provides a system and methods of substantially synchronizing the reproduction of a program on mutually geographically remote display devices, including in particular, television systems. In the following detailed description of the invention like reference numerals are used to designate like parts depicted in one ore more of the figures. 
         [0017]    The exemplary scenario for an implementation of a preferred embodiment of the present invention involves two principal actors at each site:
       1) a television display system in the general viewing vicinity of one or more viewers; and   2) an auxiliary-screen, such as a mobile device or tablet device, typically held or in close reach of the television viewer(s) and that is suitable for establishing or supporting a conversation, or chat session, between the several remote sites.       
 
         [0020]    A third actor that is shared virtually between the several remote sites is a cloud service implemented in accordance with a preferred embodiment of the present invention. The cloud service controls the interaction between the participants in the chat. This preferred embodiment is depicted  FIG. 1 . 
         [0021]    The scenario might also include a set-top-box, which is a device attached to the television set, which could interact directly to the second screen. This scenario is quite common, in particular with older not-connected television sets: the set-top-box is the device connected to the network, delivering the content to the television set based on instructions coming from the second screen. 
         [0022]    An alternate embodiment may dispense with the second screen device, where the application is installed directly on the television set or on the set-top-box. In this case, the cloud service would be interacting directly with the television set or the set-top-box. 
         [0023]    There are two principal steps necessary to solve the delay issue:
       1) Understanding the delay between the various televisions, in order to know which television is ahead of which and by how many milliseconds; and   2) Fixing the delay, synchronizing all the television to show the same picture at the same time.       
 
         [0026]    In accordance with the present invention, any of several methods may be used to understand the delay between the various television sets. These methods include:
       1) audio fingerprinting;   2) video fingerprinting; and   3) using defined application-program interfaces (APIs) offered by the manufacturers or integrators of set-top-boxes or connected televisions.       
 
         [0030]    A possible fourth method will include some combination of some of the methods above, depending on the capabilities of the devices used by the viewers/users. 
         [0031]    The audio fingerprinting method assumes the ability of the second screen device to listen to the audio coming from the television. Starting from a command coming from the cloud service, to which all the second screens are connected (triggered by the user or automatically by the system), all the second screens will record a few seconds of audio of the show that is being presented on television. The second screens will then send the audio segment to the cloud service, which will confront the segments and compute the delay of every segment compared to the others. The algorithm will use fingerprinting technologies to align the various segments and derive the order of those. 
         [0032]    The cloud service might already have the full recording of the show, or be recording it live. This would allow a more precise analysis of the delays, for example to determine if one of the television is actually tuned on a different show. The result of the computation, in a case where three viewer/users are watching a single show (User 1 , User 2 , User 3 ) might be as follows:
       User 1 : delay of 500 milliseconds   User 2 : delay of 0 milliseconds (the user “ahead” of everyone else)   User 3 : delay of 4500 milliseconds (the user with the largest delay, or “last”)       
 
         [0036]    The video fingerprinting method assumes the ability of the second screen device to record the video on the television, through, for example, an external camera. Starting from a command coming from the cloud service, to which all the second screens are connected (triggered by the user or automatically by the system), the users will be alerted to point the camera of the device towards the television. 
         [0037]    The second screens will record a few seconds of video of the show that is being presented on television. The second screens will then send the video segment to the cloud service, which will compare the segments and compute the delay of every segment relative to the others. The algorithm will use fingerprinting technologies to align the various segments and derive the order of those. 
         [0038]    Again, the cloud service might already have the full recording of the show, or be recording it live. This would allow a more precise analysis of the delays, for example to determine if one of the television is actually tuned on a different show. The result of the computation, in a case where three users are watching a single show (User 1 , User 2 , User 3 ) might be as follows:
       User 1 : delay of 500 milliseconds   User 2 : delay of 0 milliseconds (the user “ahead” of everyone else)   User 3 : delay of 4500 milliseconds (the user with the largest delay, or “last”)       
 
         [0042]    Where some or all of the televisions and/or set-top-boxes provide an API available on the network of the second screen, by establishing an appropriate channel of communications through the second screen or possibly directly, the cloud service can access the television or set-top-box to obtain a timestamp reflecting the local time of reproduction of the program. Starting from a command coming from the cloud service, to which all the second screens are connected (triggered by the user or automatically by the system), all the second screens will query their televisions (or set-top-boxes) and retrieve the timestamp of the show. The timestamps will then be sent to the cloud service to be analyzed. For example, in case of three users watching a single show (User 1 , User 2 , User 3 ) the analysis may show:
       User 1 : timestamp of 1,500 milliseconds from the beginning of the show   User 2 : timestamp of 1,000 milliseconds from the beginning of the show   User 3 : timestamp of 5,500 milliseconds from the beginning of the show       
 
         [0046]    The cloud service will then compute the delay, comparing the timestamps, thus arriving at the following conclusion in this example:
       User 1 : delay of 500 milliseconds   User 2 : delay of 0 milliseconds (the user “ahead” of everyone else)   User 3 : delay of 4500 milliseconds (the user with the largest delay, or “last”)       
 
         [0050]    A final method as potentially used in a preferred embodiment of the present invention involves the use of some combination of the three methods explained above. This method could be useful in situations where some of the second screen devices are not capable of recording audio from the television sets, or some of the devices are not capable of recording video from the television set, or some of the television sets are not capable of providing a timestamp. 
         [0051]    In such case, a combination of timestamp and audio/video fingerprinting will be performed at the cloud service level, to extract the delay—as in the three methods described before. 
         [0052]    To correct for the delay as however identified above, the cloud service will operate to temporarily pause the television sets which are ahead of the others, to align the program to the television set which is “last”. This method assumes that the television sets can be paused, due to the availability of a pause button on the remote control, device or set-top-box, via user intervention or API. The cloud service will send to each second screen device a command to pause for the amount of time necessary to align all television sets to the “last” user. Thus, for example:
       User 1  is 4,000 milliseconds ahead of User  3     User 2  is 4,500 milliseconds ahead of User  3     User 3  is the “last” user       
 
         [0056]    Therefore, the cloud service will instruct the second screen of User 1  to pause the television for 4 seconds and the second screen of User 2  to pause the television for 4.5 seconds. At the end of the operation, all televisions will be in sync. The success of the operation can be verified by re-doing the delay analysis explained before: after a sync is performed, all the televisions should have delay substantially equal to zero. 
         [0057]    The second screen could manage to pause the television sets (or set-top-boxes) in two ways: via an API call to the television set (or set-top-box); or by visualizing a message on screen to instruct the user to manually pause the television set for a determined amount of time (for example, visualizing a countdown). 
         [0058]    Once a synchronization of all the devices is completed, there is still the possibility that—during the show—the television sets will get “out-of-sync”. For example, one or more of the sites may be receiving the program from an independent source, thus leading to the possibility of drift. This scenario forces a re-sync of the devices, to make sure all the shows are aligned. 
         [0059]    A re-synchronization is preferably triggered by a scheduled check by the cloud service, based on a time interval which will be computed by the cloud synchronizer (the time between checks will be doubled compared to the previous check, if at the previous check the televisions remain in sync, and reset to the minimum after a check which shows that the televisions are not in sync. Alternately, or in addition, a user may issue a synchronization check command, if user realizes or suspects that the show they are watching is out of sync with the one the other users are watching. The check to understand if the different television sets are still in sync or not is going to be performed using one of the methods described above. Ideally the check will be completely transparent for the users, therefore preferably excluding the video fingerprinting option. 
         [0060]    Once the televisions are in sync, one of the user (the “owner of the living room” or host: the user who may have invited all the other users to watch the show) will be able to control the television sets of all the other users. In a preferred embodiment of the present invention, the host may at any time pause the show locally with the effect that the show on the other television sets is paused as well. The host may also, at any time, forward or rewinds the show, the show on the other television sets are forwarded or rewound as well. When the host plays the show again, the show starts again on the other television sets. 
         [0061]    In an alternate embodiment of the present invention, a user at any site may act as the host and operate the other televisions in concert with their local television set. 
         [0062]    Preferably, the method used to remotely command the other television set makes a similar use of the television and set-top-box APIs. This scenario assumes the capability of all of the televisions (or set-top-boxes) to provide an API available on the network of the second screen, providing the ability for a device to pause, play, forward or rewind the television. 
         [0063]    The second screen of the host, after the host acts on the device to pause/rewind/forward/play the show, will communicate to the cloud service, which will issue the same command to the other devices. Because of network delays, there is the possibility that the television sets will get out-of-sync during the procedure. To solve this problem, after every command the procedure to synchronize all the televisions is preferably triggered (using the set-top-box APIs). 
         [0064]    Thus, a system and methods for synchronizing the control and playback of a show to multiple, geographically remote display devices has been described. 
         [0065]    In view of the above description of the preferred embodiments of the present invention, many modifications and variations of the disclosed embodiments will be readily appreciated by those of skill in the art. It is therefore to be understood that, within the scope of the appended claims, the invention may be practiced otherwise than as specifically described above.