The present invention relates generally to interactive TV. More particularly, the present invention relates to a method and system for delivering enhanced, interactive content in a live, or recorded, television broadcast stream.
Traditionally, watching a television program has been a passive experience. For example, with a traditional television broadcast program, the viewer watches the television program without responding or initiating any action in return. In contrast, “surfing” the Internet and playing video games are interactive endeavors. With the Internet and video games, the viewer is an active participant and the outcome is often dependent upon action taken by the viewer.
The television industry has been increasingly investing in ways to make the television viewing experience more interactive, similar to surfing the World Wide Web, or playing a video game. Today, interactive television (iTV) is currently available in varying forms. One variety of iTV is commonly referred to as enhanced TV, or eTV. Enhanced TV broadcasting provides interactive content linked to video programming. For example, with enhanced TV broadcasting, a user may be able to 1) request information related to products that are being advertised, 2) access additional information related to programs being viewed, such as player and/or team statistics during a live sporting event, and/or 3) interact with a television broadcast program, such as a game show.
There are a multitude of problems related to managing and delivering content for enhanced TV.
In various embodiments the present invention provides methods and systems in which an eTV application (e.g., a voting and/or polling application) for a program to be broadcast over a distribution network, a corresponding playlist for the eTV application and a programming schedule for the distribution network are delivered to a server in advance of the broadcast time of the program and using Internet protocol (IP). The playlist specifies a list of events to be loaded by an application engine resident on a client device when executing the eTV application. The events of the playlist include identifiers that enable the eTV application to synchronize application trigger events to program events associated with the program.
Prior to broadcast of the program and according to the programming schedule, a playlist directory, the eTV application and the playlist are distributed to client devices by uploading from the server to an out-of-band data carousel, or by an IP multicast distribution mechanism. The application and playlist are accessible by the client device via the out-of-band carousel or IP multicast independently from a broadcast stream including packets which make up the program.
At the client device the playlist directory, the eTV application and the playlist are received form the out-of-band carousel or IP multicast connection, and, so long as the client device is tuned to the broadcast of the program associated with the eTV application, the application engine processes the events as specified in the playlist (e.g., at specified times and/or as specified according to certain time codes).
In various embodiments, the eTV application may be an XML file, for example including application layout information, application logic, image resources, and/or program-specific information. Likewise, the programming schedule may be an XML file describing a program market, date, time, channel and application identifier for the eTV application. Prior to being uploaded, the programming schedule and/or the eTV application may be validated.
The playlist may include a list of application events scheduled to occur during broadcast of the program. One such event may cause the application engine of the client device to display information. Alternatively, or in addition, one such event of the playlist may cause the application engine of the client device to prompt a viewer to make a selection. The playlist may be made up of XML data. Timing of playlist events may be adjusted in response to synchronization information received at the server.
In some embodiments of the present invention, viewer input associated with one of the events of the playlist may be communicated from the client device to the server. Such viewer input may include a selection from a list.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings, in which like references indicate similar elements, and in which:
A method and system for delivering enhanced TV content are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details. The following terms are used throughout the document in connection with this description of the present invention:
Application Data is a collection of text and binary files. Application data is used to invoke specific application functions via the client-side application engine, such as drawing routines, etc. The application data also includes business rules, and OSD (on screen display) images.
Application Engine The eTV application client is the application engine that runs eTV applications. It is resident on the set-top device and is always running—in either background or foreground mode. In either mode the application client is capable of monitoring a schedule to compare against the current channel and STB time and launch eTV applications based on that schedule. It therefore does not require broadcast stream application signaling (such as AIT) for launching applications. The application client makes use of delivered text and binary files.
Application Signaling describes the mechanism by which an application, such as an eTV application related to a broadcast program, is launched.
eTV Schedule A schedule comprising entries for time, channel, and app to load.
Program Synchronization describes the mechanism by which program events, such as events in a broadcast program, are synchronized with events in an application related to the broadcast. Program synchronization includes carriage of signaling events in streams related to the broadcast that provide timing information for the program.
Playlist A playlist is a list of triggers (or events) that are loaded by a set-top box (or other client) application independently from the broadcast stream of the service (except for an optional case where the broadcast stream is used solely as a file delivery mechanism). The individual elements of the list may have program time codes or other identifiers that enable the application to synchronize application trigger events to program events associated with the broadcast program. The application requires program synchronization support to synchronize playlist events with program events.
Playlist Directory A playlist directory is an aggregation of eTV schedules for the current period into a single data file.
Trigger A trigger is an event that may cause a change in the behavior of an eTV application that registers interest in such events. Triggers may come from many sources, for example, the broadcast stream or IP connection, or may be generated from other data (such as the system clock). The trigger may include a reference to time, which may be absolute (UTC), or relative to some other event, relative to the NPT (normal play time) of a media stream. It also can carry some semantically significant payload in order to affect changes in an application based on information not available at the time an application was written. There are two types of triggers:
Utilizing one embodiment of the present invention, a cable TV provider may provide a wide variety of enhanced TV applications, such as voting and polling applications, in conjunction with broadcast programming. One embodiment of the present invention may be compatible with a wide variety of existing system components, such as middleware, eTV content publishing software, and other software and hardware platforms, including Liberate 3.4, MSTV 1.9 and Guideworks “JV1.” Consequently, the present invention is advantageous over previous systems and methods in part because it may be implemented at a low-cost, and with minimal complexity. In many cases, the present invention may be implemented without unnecessary investment in additional hardware and software. Moreover, the present invention may be implemented to use some of the same client and server software applications already in use to deploy other strategic applications, including virtual channels, video on demand services, information services, local content, advertising and promotions, as well as others.
Although the present invention may be implemented to deploy a wide variety of enhanced TV content and applications, the present invention may be particularly useful for deploying polling and voting applications. For example, one embodiment of the invention will make possible a wide variety of polling and voting applications to be used in conjunction with reality TV shows, sporting events, awards shows, news programs, talk shows, and other broadcast programs. For example, when used in conjunction with a reality TV program, a voting application may prompt viewers to vote for a favorite contestant or to decide on a contest winner. Alternatively, a polling application may allow viewers of a sporting event to vote for the most valuable player of a particular game, or view player or game statistics during a live broadcast of the sporting event.
As will be described in greater detail below, one embodiment of the invention utilizes a client-side application engine executing on a set top box (STB) to present, or display, enhanced TV content. In one embodiment, the enhanced TV content is delivered as a “playlist” to the STB via an out-of-band (OOB) data carousel. For example, the playlist may include a list of application events that are scheduled to take place within the application during certain portions of the corresponding broadcast program. For example, an event in the playlist may cause the client-side application engine to display information, or prompt the user to make a selection, at a particular point in time during a particular broadcast program. The present invention differs from existing solutions in that the client-side application engine exists, and executes, on the STB while only application data is delivered to the STB via a data carousel.
According to one embodiment of the invention, an enhanced TV application may include, but not necessarily be limited to the following components:
Application XML and Resources—The client-side application engine may receive XML data consistent with one or more XML schemas. For example, the XML schemas may define the application data requirements and resources for a particular application. Accordingly, the XML data may include programming and application data such as: the application layout, application logic, image resources, and/or episodic or program specific data.
Episode or Program Specific Playlist—The episode or program specific playlist generally will include application data related to the specific broadcast program. For example, the episode or program specific playlist may include, but not be limited to a schedule of events, which are to be executed, or displayed, during the broadcast program associated with the particular playlist. In one embodiment, the playlist may be formatted and delivered as XML data.
Playlist Directory—The playlist directory includes a schedule of all possible episode or program specific playlists for a particular system over a given time period. For example, the schedule may include scheduling information about the individual playlists, scheduling information for the particular broadcast programs to which each playlist is associated, including the particular time, or time range, for which a broadcast program may potentially be active, and therefore a playlist valid.
STB clock—The STB clock is an internal system clock utilized as a reference clock, for example, to synchronize playlists, or playlist events, with their corresponding broadcast programs. For example, the schedule of events in a playlist may include references to the STB clock in order to properly synchronize the playlist events with their corresponding broadcast programs.
Application Data Delivery Mechanism—In one embodiment, the application delivery mechanism is the means by which the application, episode or program specific playlists, playlist directory, and synchronization messages are delivered to the STB. For example, in one embodiment, the application delivery mechanism is an out-of-band data broadcast carousel server located in the cable headend.
Application Engine—The application engine is a client-side application that executes on the STB. In one embodiment, the application engine executes (e.g., reads and interprets) application data received via the application data distribution mechanism (e.g., the data carousel). In addition, in one embodiment, the application engine may include a “playlist listener” that periodically (e.g., every minute) checks the playlist directory file on the data carousel for discovery of program specific playlists that may be valid.
Referring again to
In one embodiment, an eTV application may include one or more files of XML data, including, but not limited to application and resource data, and playlist data. In addition, according to one embodiment, the application and its associated playlist may be delivered and may be updated at any time prior to the broadcast of the program to which the application is associated. Furthermore, in one embodiment of the invention, the application and playlist are delivered over a conventional network, for example, using a network based on standard networking protocols, such as the Internet Protocol (IP) suite. In addition, in one embodiment of the invention, the eTV application server 16 may perform a validation operation on the eTV application data, for example, to ensure that all the necessary data for the application has been provided and to ensure that the data has been properly formatted
In one embodiment of the invention, a network server 22 operated by the broadcast network may deliver a broadcast program schedule to the eTV application server 16 for one or more broadcast programs and/or corresponding eTV applications. For example, the broadcast network server 22, or some other computing device operated by the broadcast network, may communicate program scheduling information to the eTV application server 16 over a network. For example, in one embodiment of the invention, the scheduling information may be an XML file including data related to the market, date/time, channel call letters and application identifier for each eTV application. Again, the broadcast network server 22 may communicate with the eTV application server 16 via standard networking protocols, such as IP. The eTV application server 16 may analyze and organize the program scheduling information received from one or more broadcast networks in order to build, or develop, a playlist directory.
According to one embodiment of the invention, based on the received programming schedules, the eTV application server 16 at the cable headend inserts the necessary data making up the application (e.g., application and resource data, program specific playlist, and playlist directory) into an out-of-band data carousel 14. The data carousel 14 broadcasts the data, which is received at the input/output interface 24 of the STB 12.
In one embodiment of the invention, the STB 12 executes a client-side application engine 20, which loads the eTV application data from the data carousel 14. For example, based on the playlist directory, if and when the viewer tunes a program having an associated eTV application, the client-side application engine 20 will “execute” events from the program specific playlist. In one embodiment of the invention, the client-side application engine 20 “executes” the events from the program specific playlist by coordinating playlist events with the STB clock.
According to one embodiment of the invention, when a user responds to a playlist event, for example, by making a selection from a list, or menu, of choices displayed on the TV display, the information may be communicated back to the eTV application server utilizing a 2-way return channel. For example, a 2-way return channel may be used to communicate 2-way request and response packets between the STB and the eTV application server 16.
In one embodiment of the invention, the broadcast network may administer control messages (e.g., synchronization messages) to uniformly adjust the program scheduling information. For example, the broadcast network server 22 may communicate synchronization messages (e.g., via an IP network) to the eTV application server 16 to adjust programming schedules. The eTV application server 16 may receive the synchronization messages, adjust the playlist directory or program specific playlist information accordingly, and then broadcast the adjusted information via the out-of-band data carousel 14. This may be required, for example, if a regularly scheduled program is necessarily interrupted by a breaking news event. Accordingly, when the eTV application server 16 adjusts the playlist directory information, or the program specific playlist, events are correctly “executed” at the proper time. Similarly, control messages (e.g., synchronization messages) may be communicated to the eTV application server 16 to support live programming events 26 (e.g., sporting events), or market dependent behavior, such as for example, the ability for major ABC affiliates in the mountain time-zone to set the mountain minute.
The following table (TABLE 1) illustrates the various end-to-end delivery mechanisms utilized in one embodiment of the present invention:
Similarly, the following table (TABLE 2) provides a brief explanation of the control signals used in one embodiment of the invention:
At operation 34, the application data is communicated, or delivered, to an eTV application server located at a cable headend. For example, the application and playlist may be delivered using Internet Protocols (IP) to an eTV application server. In one embodiment, the application data is first delivered to a centralized eTV application server, which may validate, regionalize and distribute the eTV application data to individual eTV application servers located at different cable headends, in advance of the program broadcast. Furthermore, in one embodiment, application data, playlists, and/or other data content may be updated at any time before the broadcast program.
At operation 36, the broadcast network communicates broadcast program scheduling information for an eTV application to the eTV application server at the cable headend. For example, in one embodiment, the network delivers the eTV schedule to a centralized eTV application server. The eTV schedule may be an XML file that describes the market, date/time, channel call letters and application identifier for each eTV application. The application resources and eTV schedule may be validated by the centralized eTV application server before redistribution across the cable network to the individual eTV application servers located at cable headends. Next, at operation 38, each headend eTV application server may include the scheduled program entries into the playlist directory prior to broadcast, and ensure that the playlist directory, application and its resources, and the playlist are available on the data carousel prior to the scheduled broadcast time.
In one embodiment, the eTV client-side application engine includes a “playlist listener” which, at operation 40, checks the playlist directory file on the carousel at a configurable frequency (e.g., every minute) for discovery of playlists that may be valid. When the valid window for a playlist occurs and the viewer is on the required broadcast channel at full screen viewing, the client-side application engine will auto-launch the playlist events, or alternatively display an “invitation” to engage the user in the interactivity of the playlist application. In one embodiment of the invention, the application and episode specific playlist are retrieved from the out-of-band broadcast data carousel to avoid any tune-away behaviors. Once the playlist application is active, the eTV client-side application engine is able to begin processing trigger events specified in the playlist file. In one embodiment, the scheduled execution time of each event is essentially an offset from the absolute scheduled start time of the broadcast program, and is usually specified in SMPTE time codes familiar to content producers.
Thus, a method is provided with reference to specific exemplary embodiments. It will be evident that various modifications and changes may be made to theses embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
The present application claims the priority benefit and is a NONPROVISIONAL of U.S. Provisional Patent Application 60/630,510 filed Nov. 22, 2004, incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60630510 | Nov 2004 | US |