This invention relates to Electronic Program Guides (EPGs).
Advances in technology have afforded television viewers and radio listeners with a plethora of programming. To that end, providers of television and radio content typically provide their consumers with electronic program guides (EPGs) and interactive program guides with continuously updated menus displaying scheduling information for current and upcoming programming. Some EPGs, such as ITV also feature backward scrolling to enable user to catch up on content.
In most instances, the set-top box serves (STB) as the mechanism via which a viewer will tune (i.e., select) content provided by a cable television or satellite television provider or other network service operator. To identify available content to the viewer, the STB will retrieve an EPG from a back end server maintained by the network service operator. Alternatively, the STB can obtain the EPG by decoding coded information in a Transport Stream (TS) received from the network service operator. The STB will archive the EPG onto a hard disk or the like during a process known as EPG installation, which can prove lengthy. In practice, the network service operator will frequently update the EPG based on changes in programming and channel assignments. Thus, the STB needs to update the EPG in the background to provide users with the most-current EPG.
Tablet computers, such as the Apple iPad®, as well as other portable devices such as smart phones, can interact with a home gateway or STB within a home network to provide a second screen for displaying information, typically in the form of metadata associated with content undergoing display on a primary display device such as a television set. The interaction of such tablet computers and smart phones with the STB can include functions such as channel zapping, volume adjustment, content tuning, relevant and complementary information navigation, and viewing. To avoid redundant network request from tablet computer or smart phone to the back-end server, caching of the EPG becomes necessary. Such caching allows local retrieval of the EPG, which enables smooth browsing of channels, programs, and schedule information.
Existing EPG caching methods focus on how to archive EPG in the manner of XML file format into hard disk, and how to read and write the files according to the file names, and then parse the XML file to get specific information. The shortcomings of this kind of solution include the following:
1. XML files consume a large volume of redundant storage space to store the element names, attributes names, tags, etc.;
2. Saving all channels, programs, and schedule information in a single XML file can prove very difficult. Storing such information into separate XML files requires redundant file I/O and redundant time to load all XML files in a specific directory.
Using a JavaScript Object Notation (JSON) message format instead of the XML format will yield a limited savings in time and storage capacity. However, the JSON message format is text based and still needs some tags to indicate the key and value pair. Serializing the EPG data into binary format on local disk can yield some improvement but still requires in organizing separate different programs into different files, so the indexing and navigation remain time consuming and inefficient.
Thus, a need exists for a technique for caching an EPG on a portable device, which overcomes the aforementioned difficulties.
Briefly, in accordance with a preferred embodiment of the present principles, a method for caching an electronic program guide on a portable device commences by downloading channel information and program information to the portable from a local cache when the local cache contains relevant information. However, if the local cache lacks such information, the portable device downloads the channel information and program information from a server. The portable devices then builds a channel index and a program index from the downloaded channel information and program information, respectively to establish the electronic program guide on the portable device.
The back end system 12 typically includes at least one server 16 coupled to the network 14 for providing information from at least one database 18. The information can include content, in the form of audio-visual files represent movies or television programming for example. Further, the information can channel information and program information utilized by devices in the home network to create an electronic program guide. Although
The home network 10 includes a home gateway 20, which provides a primary interface between the network 14 and other devices in the home network, such as for example a set-top box (STB) 22 for selecting content (e.g., television programming) for display on a television set 24. Although
The home network 10 can include one or more portable devices, illustratively depicted by portable device 26 which can take the form of a table computer such as an Apple iPad® for example having one or more processors (not shown). In practice, the portable device 26 communicates with the home gateway 20 over a wireless link, such as a Wi-Fi link provided by the gateway or a wireless router (not shown) connected thereto. The ability of the portable device 26 to communicate with the gateway 20 allows the tablet computer to interact with the STB 22. In this way, the portable device 26 can perform include functions such as channel zapping, volume adjustment, content tuning, relevant and complementary information navigation, and viewing.
In order for a user to utilize the portable device 26 to perform functions such as channel tuning for example, the portable device should possess the ability to display an electronic program guide similar to the electronic program guide typically provided by the STB 22. In order to display an EPG, the STB 22 can retrieve an EPG from the back end system through the home gateway 20. Alternatively, the STB can obtain the by decoding coded information in a Transport Stream (TS) contain contents received from back end system 12 through the home gateway 20. The STB 22 will archive the EPG onto a hard disk or the like (not shown). In practice, the network service operator will frequently update the EPG based on changes in programming and channel assignments.
Current techniques for caching an EPG on a portable device generally require the portable device directly download the necessary information directly from the back end system 12 each time the portable device needs to update itself. The more portable devices that exist within the home network 10, the greater the demand on the back end system, thereby increasing traffic on the network 14.
In accordance with the present principles, caching of an EPG on the portable device, 26 advantageously occurs by having the portable device execute set of program instructions, as described hereinafter. The set of program instructions, when executed by the portable device 26 cause the device to first query the set-top box 22 of FIG. for “relevant” EPG information first and if such information exists at the STB, then the portable device will download the data therefrom. However, if the STB 22 lacks such information, then the portable device 26 will download the information from the back end system 12. The term “relevant” refers to EPG information (typically channel and program information) recently updated within a certain interval. In practice, the back end system 12 of
In response to the query from the portable device 26, the local cache (e.g., the STB 22) will respond with its status, i.e., whether the local cache current contains relevant EPG information. Assuming the local cache has relevant EPG information; the portable device 26 will download such information from the local cache and store such relevant EPG information typically on a hard drive or other storage mechanism within the portable device. If the local cache does not possess relevant EPG information, e.g., the cached EPG information is no longer current, then the portable device 26 will download the EPG information from the backend server 12 of
The block 38 in
In practice, the EPG information can exceed 100 mega bytes in size so caching (i.e., downloading) the EPG information in a single request becomes impractical. For that reason, the portable device 26 executes the steps in block 38 to successively read the EPG information. In practice, the portable device 26 will execute a first loop 40 to successively read channel information, from either the local cache or the back end system 12 as previously described, and then download the channel information for storage on the portable device. After downloading and storing the channel information, the portable device 26 will build a channel index. The portable device 26 will execute a second loop 42 to successively read program information and then download the program information for storage on the portable device. After downloading and storing the channel information, the portable device 26 will build a program index. From the channel index and the program index, the portable device 26 will create an EPG during step 43 for display in response to a request for an EPG graphical user interface from a user.
Each channel includes at least one, and preferable, a plurality of programs, each having its own schedule. The start and stop time constitute important properties for each program schedule. The following comprises exemplary C-language program code for calculating the time blocks of program schedules:
An exemplary set of programming instructions in the C-programming language for retrieving EPG data appears below. When executed by a processor (not shown) within the portable device 26 of
The data structures “ChannelIndex” and “ProgramIndex” play important roles in the EPG guide portion shown in
The foregoing describes a technique for archiving Electronic Program Guide (EPG) information on a portable device.
This application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application Ser. No. 61/521,971, filed Aug. 10, 2011, the teachings of which are incorporated herein.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US12/44565 | 6/28/2012 | WO | 00 | 1/6/2014 |
Number | Date | Country | |
---|---|---|---|
61521971 | Aug 2011 | US |