Embodiments of the present invention are generally directed toward methods and systems for administering ITV and creating an enhanced TV viewing experience. Although well suited for use with a television or similar type of display apparatus in conjunction with a STB, those skilled in the art can appreciated that embodiments of the present invention may also be implemented in conjunction with a simple television set not including a STB. Moreover, the systems and methods described in the present disclosure may be implemented in any media that may be enhanced through the use of events including, but not limited to, triggers that are synchronized to user-perceptible segments in a broadcast or other type of content.
As used herein “viewer” and “user” are used synonymously to refer to any person or thing that is currently making use of and/or interacting with the enhanced television system.
Referring now to
The processor 120 may be implemented as a microprocessor or similar type of processing chip. The processor 120 may complete executable instructions or routines stored in a portion of memory 116. Alternatively, the processor 120 may be implemented in the form of an application specific integrated circuit (ASIC) that is operable to perform predefined functions based on predetermined inputs. The processor 120 generally functions to run programming code including operating system software, and one or more applications implementing various functions performed by the STB 108.
The memory 116 may be implemented as a volatile or non-volatile memory, or combinations thereof. For example, the memory 116 may comprise a temporary or long-term storage of data or processor instructions. The memory 116 may be used in connection with the presentation of enhanced content to a viewer. The memory 116 may comprise solid-state memory resident, removable or remote in nature, such as DRAM, SDRAM, ROM, and EEPROM.
The memory 116 may contain one or more applications for execution by the STB 108. Examples of such applications include, without limitation, the polling application 118 and the gaming application 122. Other examples of applications that may reside in memory 116 may include a shopping application, an advertising application, and so on. All of the data necessary to execute the applications 118, 122 may reside entirely on the STB 108. The head end 104 may update the applications 118, 122 periodically. To update the applications 118, 122, the head end 104 may determine that the display apparatus 140 is currently inactive and that the necessary bandwidth for a download of data to the memory 116 is available. The head end 104 may also transmit application 118, 122 updates to the STB 108 through the VBI at a slower rate.
Alternatively, some or all of the application data, including input data for the application 118, 122, may reside on a server associated with the broadcast head end 104. In one embodiment, execution of an application 118, 122 may require requesting and receiving application data from the head end 104 with the broadcast.
In another embodiment, the execution of the application 118, 122 may occur at the head end 104. Accordingly, control signals may be transmitted from the STB 108 to the head end 104 and results of the execution of the application may be transmitted to the STB 108 from the head end 104.
The memory 116 may further include a data storage area 123. The capacity of the data storage area 123 may vary depending upon the amount of data that is stored at the STB 108. The size of the data storage area 123 may be larger to accommodate the local execution of an application 118, 122 and to store additional content such as interactive advertisements, applications, music, recorded shows, and the like.
The user input 124 may comprise a receiver for communicating with the viewer control interface 128. The user input 124 may also comprise a keyboard, mouse, a conventional wired or wireless remote control such as TV remote control, a universal remote control, or the like such that the user can navigate content presented to him/her in a similar manner to navigating content on a computer. The viewer control interface 128 may also be used to interact with the applications 118, 122 in accordance with embodiments of the present invention.
The device interface 126 generally provides a communication interface between the STB 108 and portable hardware devices. The portable hardware devices can retrieve data stored on memory 116 and retain such data in their own memory. The device interface 126 can include any type of known device interface such as a Universal Serial Bus (USB) port. Any external hardware device may be equipped to connect to the STB 108 via the device interface 126 and communicate with the STB 108 using known protocols. The device interface 126 may also include any other type of known interface technology such as serial ports and/or parallel ports.
The STB 108 is operable to communicate with the broadcast head end 104 via the transceiver 112. The transceiver 112 is essentially the interface to the head end 104 for the STB 108. The transceiver 112 may comprise a coaxial cable connection, a USB port or other type of serial port, a modem, an Ethernet adapter, a satellite adapter, or the like. Content received at the transceiver 112 is communicated to the processor 120 and/or the memory 116. Content that may be transmitted to the STB 108 includes, but is not limited to, live broadcasts from cable, satellite, or radio waves, songs, application data, application results, recorded video and static images, computer rendered images, specialized advertisements, triggers, and the like. Typically, applications 118, 122, computer rendered images, and specialized advertisements are stored in the memory 116 when they are received at the transceiver 112. The content is typically stored in a particular address of the memory such that it can be easily retrieved at a later time. In normal operation, content or application 118, 122 updates are sent to the STB 108 during idle periods (i.e., when the user is not viewing a live broadcast). However, content can also be sent to the STB 108 during a live broadcast through one or more VBIs as packets of information that can be stored in memory 116 while the live broadcast is being displayed. The packets of information can then be stored in memory 116 (e.g., a buffer memory) and reconstructed by the processor 120.
A trigger usually contains an address, pointer, or some other sort of reference to the stored content or a live broadcast. When a user activates a trigger during a broadcast, the processor 120 uses the address of stored content associated with the trigger to retrieve the content from memory 116 or from a server associated with the head end 104. In the event that the content associated with the trigger is a live broadcast, then the trigger references the channel where the live broadcast can be found. Subsequently, the content can be displayed to a user via the display apparatus 140. Thus, multiple pre-stored contents can be maintained in the memory 116 for later display at the appropriate time or a user can navigate multiple live contents via triggers.
Generally, a trigger is transmitted along with a broadcast and both are displayed to a user via the display apparatus 140. A user is able to select the displayed trigger by pressing the select button 132 on the viewer control interface 128. The command to view content associated with the displayed trigger is received at the user input 124. The processor 120 registers the request, determines the address of the stored content in memory 116, and retrieves the associated content from the memory 116. Alternatively, the processor 120 registers the request and determines the address of the live broadcast content on another channel. Thereafter, the requested content is transmitted to the display apparatus 140 for presentation to the user.
A trigger can be transmitted with a broadcast, a live advertisement, and/or an interactive advertisement (e.g., a short form or long form advertisement). The trigger is used to begin interaction with one or more of the applications 118, 122 stored in memory 116 and/or on a server associated with the head end 104. The trigger may be displayed with content associated with a given application. For example, if the content being transmitted from the broadcast head end 104 is a football game or advertisement, then a trigger for a football related application, for instance a fantasy football gaming application, may be transmitted with such content. When selected, the trigger provides an indication that the given application 118, 122 should be retrieved and presented to the user.
In an alternative embodiment, content may not be stored in long-term storage portion of memory 116. Rather, the content may be transmitted along with the broadcast and the associated trigger. The application associated with the trigger may be stored in a memory buffer such that if the user activates the trigger associated with the application, the application (or an access to the application) can be displayed from the buffer. Otherwise, the application is purged from memory to make room for new applications. As can be appreciated, a combination of long-term and short-term memory may be utilized to store applications and other content associated with a trigger.
In accordance with at least some embodiments of the present invention, content associated with the trigger may be live content on a different channel. The trigger presented to the user may include a question asking the user if he/she would like to change channels. When the trigger is actuated, a portion of the display apparatus 140 is changed from the original channel to the new channel associated with the trigger. Furthermore, the original channel may continue to be displayed to the user in a smaller portion of the display apparatus 140.
In the event the user decides that he/she does not wish to engage the application 118, 122 associated with a particular trigger, the resume button 136 on the viewer control interface 128 may be activated to go back to the content that was previously being viewed. Thus, if the user was previously watching a television show when the trigger was activated, he/she may simply press the resume button 136 and the processor 120 will stop displaying the selected application and will resume displaying the previous content. Likewise, the user may navigate through different interactive applications 118, 122 and live broadcast content using the arrows 134 in conjunction with the select 132 and resume 136 buttons.
Referring now to
The second portion 208 may further include a high level navigation bar 212 that allows a user to easily navigate through high levels of the interactive application. For example, the high level navigation bar 212 may include a back selector 216, a home selector 220, and an exit selector 224. When the back selector 216 is selected, the content within the second portion 208 may return to content that immediately preceded the current content. The selection of the home selector 220 may change both the first and/or second portions 204 and 208 respectively back to their default (e.g., home) content. If the exit selector 224 is selected, then any content associated with the trigger, such as the applications 118, 122, may be removed from the display device 140 in exchange for a live broadcast. More specifically, transmission of an application and/or application data may be discontinued upon engaging the exit selector 224.
The second portion 208 can also include a number of triggers for interacting with the polling application 118. The triggers that may be provided on the polling application 118 options screen include, but are not limited to, a number of different polls selector triggers (e.g., TV show poll trigger 228, current event poll trigger 232, sports poll trigger 236, and movies poll trigger 240), other polls trigger 244, current poll trigger 248, and a poll results trigger 252. One or more of the polls selector triggers may be associated with the content currently being broadcast and displayed in the first portion 204. For example, if the broadcast is a show about the president of the United States, then a current events poll 232 may ask whether the user approves of the President's work. As another example, if the broadcast is a show where viewers are asked to cast their vote and their vote determines what show participants will stay and go, then the TV show poll 228 may ask the viewer to decide if the participant should remain on the show or not. In this way, the results of the poll almost immediately determine the outcome of the TV show.
The other poll trigger 244 may lead to another poll options screen where various other types of polls not shown on the first poll options screen reside. The current poll trigger 248 may lead to a highlighted poll of the day. The current poll trigger 248 may also be the trigger associated with the poll related to the broadcast. In one embodiment, the current poll trigger 248 comprises an address to a lookup table that identifies the type of content being broadcast and further identifies any poll related to the broadcast content. The lookup table may be stored in memory 116, in a server associated with the head end 104, or may be transmitted along with the broadcast. In this embodiment, the poll that is retrieved by selecting the current poll 248 changes as the broadcast content changes.
As can be seen in
In accordance with one embodiment, the head end 104 may transmit the poll results either continuously or periodically as raw data. The raw data may be used as input for the polling application 118, which renders the results display 256. Accordingly, the user may be able to manipulate how the polling application 118 displays the data (e.g., the chart type, chart dimensions, scale, etc.) since the polling application 118 is stored locally and the transmission from the head end 104 is raw data. The poll results 256 may be displayed in a number of different forms such as in a table format, as a pie chart, line chart, bar chart, or any other viewable chart.
In accordance with an alternative embodiment, the poll results 256 may be generated into a predetermined results format and transmitted to all viewers in the same format. In this embodiment, the polling application 118 may only be needed to interface with the head end 104 where the application is being executed. More specifically, the polling application 118 may be used to transmit a poll answer or a request for poll results and may not be necessary for manipulation of raw data.
In accordance with embodiments of the present invention, various poll questions may be generated and given to a user during the course of a broadcast. The poll questions may be updated to reflect what is occurring in the broadcast. For example, if the broadcast is a football game, then questions at the beginning of the game may include, “Who will win this game?” and “How many points will be scored?” Whereas questions in middle of the game may include, “Will team X score a touchdown on this drive?” and “Will the next play be a passing play or a running play?” The poll questions may further be incorporated into a gaming type application whereby the STB 108 or a server associated with the head end 104 may track each user's answers and declare a winner at the end of the broadcast.
The second portion 408 may include a navigation bar 412 similar to the navigation bar 212 provided in the polling application 118. The navigation bar 412 may include a back selector 416, a home selector 420, and an exit selector 424. The functions associated with each selector 416, 420, and 424 are similar to the functions of the selectors in the navigation bar 212 provided in the polling application 118.
The second portion 408 may also include a number of triggers for interacting with the gaming application 122. The triggers that may be provided on the gaming application 118 options screen include, but are not limited to, a how to play trigger 428, a play now trigger 432, and a more game options trigger 436. The how to play trigger 428 is associated with an instructions page. As can be seen in
Referring now to
One unique aspect of the present invention is that the gaming application may not only be related to the broadcast but that it may be synchronized with the broadcast. For example, as events occur in the broadcast data may be transmitted to update the game interface 456 thereby making the viewing of the broadcast an interactive experience. The interaction with the broadcast may be common to all viewers or may be unique to each viewer depending upon preferences of the user. One example of how the viewing experience may be unique to each user is in the case of a fantasy baseball game where each user may have a different team of players and therefore each user's screen is updated to reflect the user's team performance. Of course, the user may also be provided with information related to the performance of another user's team.
When the user is done with a particular game, for example when another user has called bingo, then the user may engage the new game trigger 452 to begin a new game and possibly join another set of users. Of course, the user may be able to play a game as a single user or against a computer-simulated user. There is no requirement that the user engage in a gaming application 122 where multiple users are needed. When the new game trigger 452 is engaged, the game interface 456 may be reset and a signal may be transmitted to the head end 104 indicating that a new game is desired.
With reference to
The user can select the trigger and go interactive with the associated application 118, 122 (step 808). To select the trigger, the user may engage the select button 132 on the viewer control interface 128. If the user does not wish to interact with an interactive application, then the user is not required to select the displayed trigger. However, once the user selects the trigger, the application 118, 122 associated with the trigger is identified (step 812). The trigger typically comprises an in-memory address, either on the STB 108 or on a server associated with the head end 104. When the trigger is selected, the processor 120 searches the associated address and determines the location of the application 118, 122 (step 816). The application 118, 122 may actually be stored in the address from the trigger. Alternatively, the address from the trigger may contain information for either locating the application 118, 122 from local memory 116 or for requesting the application 118, 122 from the head end 104. Thus, the processor 120 determines whether the application 118, 122 is stored locally or remotely based on information provided by the trigger (step 820).
In the event that the application 118, 122 is stored locally, then the processor 120 retrieves the application 118, 122 from local memory 116 (step 824). As a part of retrieving the application 118, 122 from local memory 116, the processor 120 will generate an initial display for the user but will also determine what further data is necessary to populate the display. In other words, the processor 120 will identify what type of data is required to fully execute the selected application 118, 122.
After the application 118, 122 has been retrieved, the processor 120 will generate and send a request for data to the head end 104 or time to the appropriate data broadcast stream (i.e., collect data from another TV channel) (step 828). The request for data may be a specific request for data or may be an indication that a particular application 118, 122 has been activated and all data related to the activated application 118, 122 is required. Upon receiving the request for data, a server associated with the head end 104 will begin transmitting the data to the STB 108. The STB 108 receives the transmitted data and forwards the data to the processor 120 (step 832). The processor 120 then applies the data to the selected application and completes the display for the user (step 836). One advantage of maintaining the application 118, 122 locally is that bandwidth is only required to transmit raw data to the STB 108 instead of results of executing the application at the head end 104.
The raw data is transmitted to the STB 108 where the execution of the application is performed. This allows the user to view a broadcast simultaneously while executing an application. Furthermore, a user has the discretion to decide how the application 118, 122 presents the data since the execution is performed locally. As data is updated at the head end 104 it is transmitted to the STB 108 such that the application can be updated to reflect the changed data. More specifically, the head end 104 may automatically collect votes, polls, game results, and so on and send that data via a live data stream to the STB 108. The processor 120 can incorporate the received data into the broadcast and present the application while simultaneously presenting the broadcast (step 840). This further allows the option of engaging in an application 118, 122 that is synchronized to the broadcast, thereby enhancing the broadcast viewing experience as perceived by the user. As a part of executing the application 118, 122 at the STB 108, user input may be sent back to the head end 104 via a return channel system. The user input may be used to update polls or games and provide other information to the head end 104 such as user information.
Of course, in an alternative embodiment, memory 116 space may be limited, and therefore some applications 118, 122 may be stored in association with the head end 104 to preserve memory 116 space. Referring back to step 820, if it is determined that the application is not stored locally, then the processor 120 issues a request for the application and application data from the head end 104 or tunes to the appropriate broadcast stream if the broadcasts stream contains the desired application (step 844). Upon receiving the request, it is determined whether the application 118, 122 will be uploaded to the STB 108 memory 116 or whether the application 118, 122 will be executed at the head end 104 and results of the execution of the application 118, 122 will be transmitted to the STB 108 (step 848). If the application 118, 122 is to be uploaded to the STB 108, then the head end 104 begins transmitting the application 118, 122 in packets along with the broadcast (e.g., in the VBI of the broadcast) until the application 118, 122 is successfully uploaded by the STB 108 (step 852). Or the receiver can tune to the appropriate broadcast data stream to access the required application. Thereafter, the method can continue with the application 118, 122 stored locally in step 824.
However, if the application 118, 122 is not going to be uploaded, then the application data is applied directly to the application 118, 122 at the head end 104 (step 856). Thereafter, the head end 104 sends results of the application with the application data inserted therein to the STB 108 where it is received (step 860). There is substantially more data transmitted when the application data is applied at the head end 104 as compared to just transmitting the application data. Therefore, the transmission of the entire application may require more time than simply transmitting raw data, which means that the user or the application 118, 122 will have to be more tolerant to delays. Once the application is received at the STB 108, the application is executed and presented to the user along with the broadcast (step 840).
After the processor 120 retrieves the poll questions, a poll is created according to the polling application 118 and presented to the user (step 916). The poll questions may be presented to the user in multiple-choice format or as a user fillable entry space. The user can than answer the poll question by selecting one of the multiple-choice answers or by entering an answer. In one embodiment, multiple-choice answers are provided that contain triggers to other locations of memory. Accordingly, the next screen that is displayed to the user may depend upon the answer/trigger that is selected.
When the answer is selected, the processor 120 transmits the user's answer to the head end 104 or the appropriate return channel system associated with a given channel rather than the head end 104 in general (step 924). The answer may be transmitted via a return channel, via a separate IP network, or some other known medium. The head end 104 receives the user's answer and calculates the poll results including the user's answer with all other received answer (step 928). Based on the results, the head end 104 generates raw data reflecting the poll results (step 932). The poll results data may be in a report format or raw data in a spreadsheet format. The raw data can then be transmitted back to the STB 108 associated with the user that just selected the answer (step 936). Additionally, the updated results may be transmitted to all other users currently participating in the same poll. This way all users are updated when another user enters their answer to the poll question.
After the user's STB 108 receives the updated poll results, the polling application 118 applies the poll results to the polling application and presents the poll results 256 to the user or updates the poll results 256 for the user if the user was already viewing the poll results (step 940). The poll results 256 may be displayed along with the broadcast. This feature is useful especially in circumstances where the poll is synchronized with the broadcast and poll questions are updated continually based on what is occurring in the broadcast.
With the game data uploaded, the user can begin the game (step 1020). The user is then able to play the game from the STB 108, while the broadcast is displayed. The game may also be synchronized with the broadcast from the head end 104 (step 1024). The synchronization of the broadcast and the application is made possible by the simultaneous transmission of game data as it is updated along with the broadcast signal.
The user is allowed to play the game until the game is complete or the user is finished playing the game (step 1028). When it is finally determined that the user is done with the game, then the game results are sent to the head end or associated return channel system that then delivers the appropriate data to the head end system 104 or to the return channel system (step 1032). Of course, the STB 108 may have been sending data to the head end 104 while the game was being played so that the game data could be updated for all other users. The game results may be transmitted via a return channel.
A server associated with the head end 104 collects the game results from all users that were participating in the game and compiles the game results (step 1036). The compilation of the game results may determine which user was the winner of the game and other game statistics.
After the game results have been compiled, the game results are transmitted back to the STB 108 of the user, applied to the game application 122, and displayed to the user (step 1040). This allows the user to receive feedback on their performance in the game both individually as well as compared to other users that were playing the game.
Once the game results have been displayed to the user, it is determined whether the user wants to participate in another game (step 1044). This question may be answered affirmatively if the user selects the new game trigger 452. Alternatively, the user may elect not to participate in another game and may therefore select the home selector trigger 420. In the event that the user wants to play another game, the method returns to step 1016 and new game data is uploaded to the STB 108. However, if the user does not wish to play any further games, then the method ends (step 1048).
As can be appreciated by one of skill in the art, participation in an application 118, 122 may be free of charge. Alternatively, there may be a cost associated with using an application 118, 122. The charges may be incurred periodically as a part of the television service provider's bill or they may be incurred on a pay-per-use basis.
The foregoing discussion of the invention has been presented for purposes of illustration and description. Furthermore, the description is not intended to limit the invention to the form disclosed herein. Consequently, variations and modifications commensurate with the above teachings, within the skill and knowledge of the relevant art, are within the scope of the present invention. The embodiments described hereinabove are further intended to explain the best modes presently known of practicing the invention and to enable others skilled in the art to utilize the invention in such, or in other embodiments, and with the various modifications required by their particular application or use of the invention. It is intended that the appended claims be construed to include alternative embodiments to the extent permitted by the prior art.
This application is a Continuation-in-Part of U.S. patent application Ser. No. 11/425,652 filed Jun. 21, 2006 and U.S. patent application Ser. No. 11/552,047 filed Oct. 23, 2006, both applications being incorporated herein by reference in their entirety.
| Number | Date | Country | |
|---|---|---|---|
| Parent | 11425652 | Jun 2006 | US |
| Child | 11622426 | US | |
| Parent | 11552047 | Oct 2006 | US |
| Child | 11425652 | US |