Channel lineup information in a television system is efficiently managed with an internal electronic program guide manager (IEM). The IEM creates and maintains an internal electronic program guide (EPG) information database for a user program preference determination engine (PDE), which is resident in a STB, DTV or PVR. The internal EPG data are for use by software agents of the PDE only. The external EPG is used for a graphical user interface display. First, external channel lineup information is received from an external program guide; from that, internal channel lineup information is generated that contains less information than the external channel lineup information, yet sufficient information to render the internal channel lineup information useful in the internal database management system; and the internal channel lineup information is updated upon receiving notification of a change to the external channel lineup information.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of managing channel lineup information in a television system, the method comprising: receiving an external program guide offered by a television program provider external to the television system, the external program guide including external channel lineup information; generating internal channel lineup information locally in the television system from the external channel lineup information, where all of the internal channel lineup information combined contains information less than all of the combined external channel lineup information; using the internal channel lineup information for internal processing of a database management system; and updating the internal channel lineup information upon receiving notification of a change to the external channel lineup information, by repeating the receiving and the generating steps, and wherein: a data structure of the external channel lineup information includes more variables than a data structure of the internal channel lineup information; name text strings of channels in the external program guide are replaced with indexes in the internal channel lineup information; the internal channel lineup information includes the data structure and a plurality of string tables including the indexes; and the plurality of string tables comprises: a plurality of data elements, each data element containing a string and a reference count of the string, wherein the reference count is a number of attempts made to put the string into one of the string tables; an array of pointers to the data elements, the array of pointers sorted alphabetically according to the string associated with the data element to which each pointer is directed; and a data pointer directed to the array of sorted pointers.
2. The method according to claim 1 , further comprising downloading the external channel lineup information from an external electronic program guide formatted in standard electronic program guide (EPG) data structure, and formatting and indexing the internal channel lineup information for processing use in an internal preference determination engine (PDE).
3. The method according to claim 2 , further comprising structuring the internal channel lineup information by indexing individual available channels to a channel identifier (chID) and a channel name index (chName-index).
4. The method according to claim 3 , wherein the internal channel lineup information comprises a time field and a flag field indicating a time until which or after which the respective channel is valid.
5. The method according to claim 4 , wherein the internal channel lineup information comprises: a first list indexing the external channel lineup information received from the external program guide; a second, hierarchically lower, list indexing a subscription channel lineup; and a third, hierarchically lowest, list indexing a list of most-watched channels and subscription channels.
6. The method according to claim 5 , wherein the third, hierarchically lowest, list is automatically updated based on watched channels and subscription channels.
7. The method according to claim 5 , wherein updating comprises: processing a channel lineup change algorithm in which each channel available in an updated external channel lineup is searched in the internal channel lineup information; and if a given channel identifier is not found, adding the respective channel to the internal channel lineup information.
8. The method according to claim 7 , further comprising removing channel identifiers of those channels from the internal channel lineup information that no longer appear in the updated external channel lineup.
9. The method according to claim 7 , wherein the channel lineup change algorithm is configured to add new service items of the updated external channel lineup, to close service items and remove closed service items from the internal channel lineup information, and to reallocate a given service to a different channel in the internal channel lineup information.
10. The method according to claim 7 , wherein the channel lineup change algorithm is programmed to avoid duplicate entries in the internal channel lineup information and to avoid removing given entries from the internal channel lineup information by indexing the entries with a reference counter indicating a number of attempted entries of a given service.
11. The method of claim 1 , wherein the data structure of the external channel lineup information includes more fields than the data structure of the internal channel lineup information.
12. The method of claim 1 , wherein the internal channel lineup information is based on user preference and updated with most watched channel information from a user.
13. The method of claim 1 , wherein the internal channel lineup information is not used for displaying program guide listings.
14. The method of claim 1 , wherein the data structure of the internal channel lineup information includes: a channel identification field, a time of channel update field, a channel name index field, a process field and a channel availability field.
15. The method of claim 1 , wherein generating the internal channel lineup information further comprises: importing a new string value to one of the plurality of string tables by storing said new string value in a data element and inserting a pointer into said array of sorted pointers using a binary insert algorithm.
16. A system for managing channel lineup information in a digital television system, comprising: an input for receiving an external electronic program guide including television program content and related external channel lineup information with channel names and data items suitable for a graphical user interface; a local internal electronic program guide processor programmed to generate from the external channel lineup information, internal channel lineup information with indexed data items including the internal channel lineup information with reduced data structure variables and less information as compared with the external channel lineup information, the internal channel lineup information configured for use in internal processing of an internal preference determination engine (PDE), where all of the internal channel lineup information combined contains information less than all of the combined external channel lineup information; and an update agent programmed to update the internal channel lineup information upon learning of a change to the external channel lineup information, and wherein: name text strings of channels in the external program guide are replaced with indexes in the internal channel lineup information; the internal channel lineup information includes a plurality of string tables including the indexes; and the plurality of string tables comprises: a plurality of data elements, each data element containing a string and a reference count of the string, wherein the reference count is a number of attempts made to put the string into one of the string tables; an array of pointers to the data elements, the array of pointers sorted alphabetically according to the string associated with the data element to which each pointer is directed; and a data pointer directed to the array of sorted pointers.
17. The system according to claim 16 , wherein the update agent is further programmed to process a service-to-channel change management algorithm.
18. The system according to claim 17 , wherein the digital television system comprises a television broadcast receiving system, and wherein the television broadcast receiving system comprises the internal preference determination engine PDE utilizing a database containing program information and viewing history of at least one user of the digital television system.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
May 28, 2002
December 27, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.