IP Library Granted Patent US 8,087,051
Granted Patent B2
US 8,087,051 · App. 10/156,173 · Granted Dec 27, 2011

Database management system and method for electronic program guide and television channel lineup organization

Assignee: Thomson Licensing
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,087,051
App. No.
10/156,173
Granted
Dec 27, 2011
Kind
B2
Abstract

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.

Claims (45)

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.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2010
From: METABYTE NETWORKS, INC.
To: THOMSON LICENSING, S.A.S.
Reel/Frame 025239/0006 →
CORRECTIVE NOTICE RECORDATION Recorded Jul 24, 2006
From: GOGOI, AMAR; ISMAIL, LABEEB; GODBOLE, SANTOSH; MUSTAFA, YUNIS; LARIN, OLEG
To: METABYTE NETWORKS, INC.
Reel/Frame 018121/0651 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2002
From: GOGOI, AMAR; ISMAIL, LABEEB; GODBOLE, SANTOSH; MUSTAFA, YUNIS; LARIN, OLEG
To: METABYTE NETWORKS, INC.
Reel/Frame 017184/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2002
From: GOGOI, AMAR
To: METABYTE NETWORKS, INC.
Reel/Frame 012949/0344 →
Continuity (5)
Continuation In Part 09893192 · Jun 27, 2001
Provisional Application 60293763 · May 25, 2001
Provisional Application 60215450 · Jun 30, 2000
Provisional Application 60226437 · Aug 18, 2000
Related Publication 20020186296A1 · Dec 12, 2002