CA2470131C - Time-adaptive control of television viewing functionality - Google Patents

Time-adaptive control of television viewing functionality Download PDF

Info

Publication number
CA2470131C
CA2470131C CA2470131A CA2470131A CA2470131C CA 2470131 C CA2470131 C CA 2470131C CA 2470131 A CA2470131 A CA 2470131A CA 2470131 A CA2470131 A CA 2470131A CA 2470131 C CA2470131 C CA 2470131C
Authority
CA
Canada
Prior art keywords
television
time period
user
service
preference
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA2470131A
Other languages
French (fr)
Other versions
CA2470131A1 (en
Inventor
Arturo A. Rodriguez
Geoffrey G. Hammett
Robert O. Banker
John Eric West
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Scientific Atlanta LLC
Original Assignee
Scientific Atlanta LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Scientific Atlanta LLC filed Critical Scientific Atlanta LLC
Publication of CA2470131A1 publication Critical patent/CA2470131A1/en
Application granted granted Critical
Publication of CA2470131C publication Critical patent/CA2470131C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • H04N21/4542Blocking scenes or portions of the received content, e.g. censoring scenes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • H04N21/4545Input to filtering algorithms, e.g. filtering a region of the image
    • H04N21/45457Input to filtering algorithms, e.g. filtering a region of the image applied to a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4755End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for defining user preferences, e.g. favourite actors or genre
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection

Abstract

A method for providing television functionality includes defining a time period (910), associating a user preference with the time period, providing a first result in accordance with the user preference (910) if a request for television functionality is received during the defined time period, and providing a second result if the request for the television functionality is received outside the defined time period (920).

Description

TIME-ADAPTIVE CONTROL OF TELEVISION VIEWING FUNCTIONALITY
FIELD OF THE INVENTION
This invention relates in general to television systems, and more particularly, to functionality provided by set-top boxes.
BACKGROUND OF THE INVENTION
Subscriber television systems are now capable of providing many services in addition to analog broadcast video. In implementing enhanced programming, the home communication terminal ("HCT"), otherwise known as the settop box, has become an important computing device for accessing various video services. In addition to supporting traditional analog broadcast video functionality, digital HCTs (or "DHCTs") now also support an increasing number of two-way digital services such as video-on-demand.
A DHCT is typically connected to a cable or satellite television network and includes hardware and software for providing various services and functionality.
Preferably, some of the software executed by a DHCT is downloaded and/or updated via the cable television network. The ability to download software provides flexibility in adding or updating applications executed by the DHCT. Each DHCT also typically includes a processor, communication components and memory, and is connected to a television. While many conventional DHCTs are stand-alone devices that are externally connected to a television, a DHCT and/or its functionality may be integrated into a television or personal computer, as will be appreciated by those of ordinary skill in the art.

One problem with typical DHCTs is that they are not very responsive to an individual user's demands. For example, in television systems that provide hundreds of services, locating desired television programs can require many keystrokes by the viewer and can consume significant amounts of time. Furthermore, different users may have different preferences regarding the information that may be presented via an electronic program guide (EPG), and these preferences may vary from time to time.
Therefore, it should be appreciated that there is a need for improved systems and methods that address these and/or other problems associated with providing desirable television functionality.
SUMMARY OF THE INVENTION
The invention relates to a method of providing television functionality by a digital home conununication terminal. The method comprises in response to a a first user input. defining a first time period; associating a first user preference with the time period. the user preference being represented by at least one first parameter; storing data in memory of the digital home communication terminal associating the at least one first parameter for the first user preference and the first time period:
storing in the memory of the digital home communication terminal a determined score corresponding to frequency of use of the first parameter for the first user preference and the first time period. The first user preference corresponds to selected enablement or disablement, during the first time period and according to the at least one first parameter of at least one first television function selected from: recording of the television service; purchase of a television service: tuning to a TV channel: implementing a sales transaction:
and presenting a list of video recordings. The method further comprising response to a second user input during the first time period, accessing the data in said memory associating the first user preference and the first time period;
determining from the access data which of the first television functions are enabled during the first time period responsive to the at least one first parameter; presenting an interactive program guide that provides information corresponding to first television fiinctions that were selectively enabled for the first time period and that does not provides information corresponding to first television functions that were selectively disabled for the first time period; receiving as a digital home communication service, a request for . ,r --a desired first television function that is displayed in the interactive program guide for the first time period; and selectively enabling the desired first television function during the first time period.
The invention further provides a digital home communication terminal for providing television functionality which comprises computer program code responsive to a first user input and configured to define the plurality of contiguous user-defined time periods including a first time period, a second time period and a third time period, the second time period being between the first and second time periods. The computer program code is also configured to store first data in a memory of the digital home communications terminal, identifying whether a television function corresponding to a first parameter is enabled or disabled during the first time period, wherein the first parameter corresponds to at least one of a television channel characteristic, a television program characteristic, and a television service characteristic;
and to store in the memory of the digital home communication home terminal a determined score corresponding to frequency of use of the first parameter for the first time period. The computer program code is also confirgued to store second data in said memory, identifying whether a television function corresponding to a second parameter is enabled or disabled during the second time period, wherein the second parameter corresponds to at least one of the television channel characteristic, a television program characteristic, and a television service characteristic. The computer a program code is responsive to a second user input during the first time period and configured to access the first data from the memory, determine from the first data which of the first television functions are enabled or disabled during the first time period, presenting an interactive program guide that provides information corresponding to the enabled first television functions, but does not provide information corresponding to the disabled first television functions; receiving by the digital home communication terminal a request for a desired first television function that is displayed in the interactive program guide for the first time period; and selectively enable the desired first television function to be provided during the first time period.
2a BRIEF DESCRIPTION OF THE DRAWINGS
The invention can be better understood with reference to the following drawings.
The components in the drawings are not necessarily drawn to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. In the drawings, like reference numerals designate corresponding parts throughout the several views.
FIG. 1 is a high-level block diagram depicting a non-limiting example of a subscriber television system.
FIG. 2 is a high-level block diagram depicting selected components of the DHCT

and headend depicted in FIG. 1.
FIG. 3 is a block diagram illustrating a non-limiting example of selected components stored in system memory depicted in FIG. 2.
FIG. 4 depicts a non-limiting example of a remote control device that is used to provide user input to the DHCT.
FIG. 5 depicts a non-limiting example of an IPG screen that illustrates a program guide arrangement in a time format.
2b , FIG. 6 depicts a non-limiting example of a general settings screen that may be presented to a viewer in response to the activation of the settings key depicted in FIG. 4.
FIG. 7 depicts a non-limiting example of an IPG configuration screen that may be presented to a viewer in response to the selection of the program guide option via the general settings screen depicted in FIG. 6.
FIG. 8 depicts a non-limiting example of a service type selection screen that may be presented to a viewer after the selection of the service type option depicted in FIG. 7.
FIG. 9 depicts a non-limiting example of a timing preference screen that may be presented to a viewer in response to viewer selection of one or more new television setting(s) such as for example, an IPG or a service instance type setting.
FIG. 10 depicts a non-limiting example of a time factor screen that may be presented to a viewer in response to the selection of an option via the timing preference screen depicted in FIG. 9.
FIG. 11 depicts a non-limiting example of a beginning month selection screen that may be presented to a viewer in response to the selection of the multiple time factors option or the date option depicted in FIG. 10.
FIG. 12 depicts a non-limiting example of a beginning date selection screen that may be presented to a viewer in response to the selection of a beginning month option via the beginning month selection screen depicted in FIG. 11.
FIG. 13 depicts a non-limiting example of an ending month selection screen that may be presented to a viewer in response to the selection of a beginning date option via the beginning date selection screen depicted in FIG. 12.
FIG. 14 depicts a non-limiting example of an ending date selection screen that may be presented to a viewer in response to the selection of an ending month option via the ending month selection screen depicted in FIG. 11.
FIG. 15 depicts a non-limiting example of a continuity of settings screen that may be presented to a viewer in response to the selection of an ending date option via the ending date selection screen depicted in FIG. 14.
FIG. 16 depicts a non-limiting example of a day selection screen that may be presented to a viewer in response to the selection of the day-of-week option depicted in FIG. 10 or of a continuity of settings option via the continuity of settings screen depicted in FIG. 15.
FIG. 17 depicts a non-limiting example of an hour selection screen that may be presented to a viewer in response to the selection of the time-of-day option depicted in to FIG. 10 or a day option via the day selection screen depicted in FIG.
16.
FIG. 18 depicts a non-limiting example of a service instance type selection screen that may be presented to a viewer in response to the selection of the service instance type option depicted in FIG. 7.
FIG. 19 depicts a non-limiting example of a sport type selection screen that may be presented to a viewer in response to the selection of a sports option shown in FIG. 18.
FIG. 20 depicts a non-limiting example of a service selection screen that may be presented to a viewer in response to the selection of the service identity option depicted in FIG. 7.
FIG. 21 is a flow chart depicting a non-limiting example of an IPG routine for providing an IPG that meets viewer specifications.
FIG. 22 depicts a non-limiting example of a remote control configuration screen that may be presented to a viewer in response to the selection of the remote control option depicted in FIG. 6.

FIG. 23 depicts a non-limiting example of a service navigation configuration screen that may be presented to a viewer in response to the selection of one of the remote control configuration options, and depicted in FIG. 22.
FIG. 24 is a flow chart depicting a non-limiting example of a service navigation routine for providing a service that meets viewer specifications.
FIG. 25 depicts a non-limiting example of a parental control configuration screen that may be presented to a viewer in response to the selection of the parental control option depicted in FIG. 6.
FIG. 26 depicts a non-limiting example of a block screen that may be presented to a viewer in response to the selection of the block option depicted in FIG. 25.
FIG. 27 is a flow chart depicting a non-limiting example of a service navigation routine for blocking a television service.
FIG. 28 is a flow chart depicting a non-limiting example of a DHCT activation routine for activating a DHCT depicted in FIG. 2.
FIG. 29A depicts a non-limiting example of a layout for a preference entry screen.
FIG. 29B depicts a non-limiting example of a preference entry screen that may be used by a viewer to provide viewer preferences regarding certain types of programs during various time periods.
FIG. 29C depicts a non-limiting example of a preference entry screen that illustrates one possible approach for indicating viewer preferences.
FIG. 30A is a block diagram depicting a non-limiting example of a preference tracking database.
FIG. 30B is a block diagram depicting a non-limiting example of a preference tracking database where the viewing parameters represent television services and the time periods represent time periods during a day.
FIG. 30C is a block diagram depicting a non-limiting example of a preference tracking database where the viewing parameters represent types of television services and the time periods represent days of the week.
FIG. 30D is a block diagram depicting a non-limiting example of a preference tracking database where the viewing parameters represent television instances and the time periods represent months.
FIG. 30E is a block diagram depicting a non-limiting example of a preference tracking database where the viewing parameters represent types of television instances and the time periods represent days of the week.
FIG. 31 is a flow chart depicting a non-limiting example of a viewer preference tracking routine that can be used to track a viewer's viewing preferences.
FIG. 32 is a flow chart depicting steps taken in providing a viewer with an IPG in response to user input.
FIG. 33 is a flow chart depicting steps taken in providing a viewer with a different service in response to user input.
FIG. 34 is a flow chart depicting steps taken in providing a viewer with a PVR
list in response to user input.
FIG. 35 is a flow chart depicting a non-limiting example of steps taken by the DHCT in recording a television service based on user preferences.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The preferred embodiments of the present invention now will be described more fully hereinafter with reference to the accompanying drawings. These embodiments are examples, among others, of systems and methods of the present invention.
Therefore, the present invention, which may be embodied in many different forms, should not be construed as limited to the embodiments set forth herein.
FIG. 1 is a block diagram depicting a non-limiting example of a subscriber television system (STS) 100. In this example, the STS 100 includes a headend 110 and a that are coupled via a network 130. The DHCT 200 is typically situated at a user's residence or place of business and may be a stand-alone unit or integrated into another device such as, for example, the display device 140 or a personal computer (not shown). The receives signals (video, audio and/or other data) from the headend 110 through the network 130 and provides any reverse information to the headend 110 through the network 130. The network 130 may be any suitable means for communicating television services data including, for example, a cable television network or a satellite television network, among others. The headend 110 may include one or more server devices (not shown) for providing video, audio, and textual data to client devices such as DHCT 200. The headend 110 and the DHCT 200 cooperate to provide a user with television functionality including, for example, television programs, an interactive program guide (IPG), and/or video-on-demand (VOD) presentations. The television services are provided via the display device 140 which is typically a television set. However, the display device 140 may also be any other device capable of displaying video images including, for example, a computer monitor.
A
television service may also be provided, in part or in full, via audio speakers.
FIG. 2 is a high-level block diagram depicting selected components of the DHCT
200 and headend 110 depicted in FIG. 1. The DHCT 200 and headend 110 described herein are merely illustrative and should not be construed as implying any limitations upon the scope of the present invention. For example, an embodiment of the invention may be implemented using a DHCT comprising additional, fewer, and/or different components.
Furthermore, an embodiment of the invention may also be implemented using a satellite receiver or an analog set-top box.
The DHCT 200 preferably includes a communications interface 220 for receiving signals (video, audio and/or other data) from the headend 110. The DHCT 200 further includes at least one processor 240 for controlling operations of the DHCT
200, an output system 280 for driving the display device 140, and a tuner system 250 for tuning to a particular television service to be displayed and for sending and receiving various types of data or media to/from the headend 110. The tuner system 250 includes, in one implementation, an out-of-band tuner and transmitter for bi-directional data communication using, for example, quadrature phase shift keying (QPSK), and a quadrature amplitude modulation (QAM) tuner for receiving broadcast television signals and data. A
receiver 260 receives externally-generated user inputs or commands from an input device such as, for example, a remote control device.
The DHCT 200 also includes a personal video recorder (PVR) module 290 for recording television instances. The PVR module 290 may incorporate electronic, magnetic, optical, and/or other types of storage media for storing the recorded television instances.
The DHCT 200 may also include an analog video decoder to decode and digitize the video and audio associated with a broadcast analog channel. The PVR module 290 may include a compression engine to compress the data of a decoded and digitized analog channel prior to storage. Although shown as residing within the DHCT 200, the PVR module 290 may alternatively be located outside the DHCT 200.
The DHCT 200 may include one or more wireless or wired interfaces (not shown), also called ports, for receiving and/or transmitting data to other devices.
For instance, the DHCT 200 may feature a USB (Universal Serial pus), an Ethernet port (for connection to a computer), an IEEE-1394 connection (for connecting to consumer electronics equipment), a serial port, a parallel port, a radio frequency (RF) interface, and/or an infra-red (IR) interface. In this manner, user inputs may, for example, be provided via a computer, via buttons or keys located on the exterior of the DHCT 200, via a hand-held remote control device, and/or via a keyboard that includes user-actuated keys, etc.
With additional reference to FIG. 2, FIG. 3 is a block diagram illustrating selected components stored in the system memory 300 of the DHCT 200. The system memory described herein is merely illustrative and should not be construed as implying any limitations upon the scope of the present invention. In one implementation, system memory 300 includes flash memory 302 and dynamic random access memory (DRAM) for storing various applications, modules and data for execution and use by the processor 240. Basic functionality of the DHCT 200 is provided by an operating system 340 that is primarily stored in flash memory 302. The operating system 340 includes at least one resource manager 350 that provides an interface to and coordination of resources of the DHCT 200 such as, for example, computing resources.
One or more programmed software applications, herein referred to as applications, are executed by utilizing the computing resources in the DHCT 200.
Applications stored in flash memory 302 or DRAM 304 are executed by processor 240 under the auspices of the operating system 340. Data required as input by an application is stored in DRAM 304 or flash memory 302 and read by processor 240 as needed during the course of the application's execution. Input data may be data stored in DRAM 304 by a secondary application or other source, either internal or external to the DHCT 200, or possibly anticipated by the application and thus created with the application at the time it was generated as a software application, in which case it is stored in flash memory 302. Data generated by an application is stored in DRAM 304 by processor 240 during the course of the application's execution.
An application referred to as navigator 360 is also resident in flash memory 302 for providing a navigation framework for services provided by the DHCT 200. The navigator 360 registers for and in some cases reserves certain user inputs related to navigational keys such as channel up/down, last channel, favorite channel, etc. The client applications may be resident in flash memory 302 or downloaded into DRAM 304.
The flash memory 302 also contains a platform library 310. The platform library 310 is a collection of utilities useful to applications, such as a timer manager, a compression manager, an HTML parser, a database manager, a widget toolkit, a string manager, and other utilities (not shown). These utilities are accessed by applications via application programming interfaces (APIs) as necessary so that each application does not have to contain these utilities. Two components of the platform library 310 that are shown in FIG. 3 are a window manager 330 and a service application manager (SAM) client 320.
The window manager 330 provides a mechanism for implementing the sharing of the screen regions and user input. The window manager 330 is also responsible for, as directed by one or more applications, implementing the creation, display, and allocation of the limited DHCT 200 screen resources. Window manager 330 allows multiple applications to share the screen by assigning ownership of screen regions, or windows. Window manager 330 communicates with resource manager 350 to coordinate available resources (such as display memory) among different resource-consuming processes. Such processes may be directly or indirectly invoked by one or more applications. The window manager 330 also maintains, among other things, a user input registry 365 in DRAM 304 so that when a user enters a key or a command via a remote control device or another input device such as a keyboard or mouse, the user input registry 365 may be accessed to determine which of various applications running on the DHCT 200 should receive data corresponding to the input key and in which order. As an application is executed, it registers a request to receive certain user input keys or commands. When the user presses a key corresponding to one of the commands on the remote control device, the command is received by the receiver 260 and relayed to the processor 240. The processor 240 dispatches the event to the operating system 340 where it is forwarded to the window manager 330. The window manager then accesses the user input registry 365 and routes data corresponding to the incoming command to the appropriate application.
The SAM client 320 is a client component of a client-server pair of components, with the server component being located on the headend 110 (FIG. 1). A SAM
database 322 in DRAM 304 includes a data structure of services that are created and updated by the headend 110. Many television services can be defined using the same application component, with different parameters. Television services include, without limitation and in accordance with one implementation, the presentation of television broadcast programs, video-on-demand (VOD), music or other audio data, and interactive program guides (IPG).
In general, the identification of a service includes the identification of an executable application that provides the service along with a set of application-dependent parameters that indicate to the application the service to be provided. As a non-limiting example, a service of presenting a television instance could be executed with a set of parameters to view HBO or with a separate set of parameters to view CNN. Each association of the application component (tune video) and one parameter component (HBO or CNN) represents a particular service that has a unique service I.D.

Application clients can be downloaded into DRAM 304 at the request of the SAM
client 320, typically in response to a request by the user or in response to a message from the headend. In this non-limiting example, DRAM 304 contains a PVR application 355, an interactive program guide (IPG) application 370, a video-on-demand (VOD) application 380, and a preference engine application 390. It should be clear to one with ordinary skill in the art that these applications are not limiting and merely serve as examples for this present embodiment of the invention. Furthermore, one or more DRAM based applications may, as an alternative embodiment, be resident in flash memory 302. These applications, and others provided by a subscriber television system operator, are software entities for providing services to the user.
The preference engine 390 monitors a user's or household's television viewing preferences by keeping track of viewing parameters corresponding to services that the DHCT 200 presents. A viewing parameter may be a television service, a type of television service, a television instance, or a type of television instance, among others. A
viewing parameter may also be a service instance's assigned rating such as the rating signifying the intended audience. As used herein, a service instance is a service presentation such as, for example, a television program (or episode) or a VOD
movie. In one embodiment, by retrieving information from DRAM 304 and from an internal timer 393, a preference engine 390 keeps track of viewing parameters in relation to the time of day, i.e. the "clock time." The preference engine 390 stores information in according to the tracking procedures it performs. In another embodiment, the preference engine 390 also keeps track of viewing parameters in relation to the time of week, e.g., Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, Weekday (Monday-Friday), or Weekend (Saturday and Sunday). In yet another embodiment, the preference engine 390 also keeps track of viewing parameters in relation to the time of year (e.g., calendar date). By keeping track of the extent to which various television services, types of television services, service instances, and types of service instances are presented in relation to time of day, time of week, and/or time of the year, the preference engine 390 facilitates the provision of improved television services to the user. Such improved services may include, for example, the provision of customized IPGs, service navigation, and service instance recording.
In one embodiment, the preference engine 390 keeps track of viewing parameters through the use of one or more preference tracking databases 391. Although referred to as a "database", a preference tracking database 391 may comprise data structures that are not stored in a database format. A preference tracking database 391 contains data that reflect the extent to which a DHCT 200 presents various television services during one or more time periods. In one embodiment, a preference tracking database 391 keeps track of the duration and/or frequency that a DHCT 200 presents services having certain viewing parameters. For example, a preference tracking database 391 may contain scores that are correlated to the duration and/or frequency that a DHCT 200 presents services having certain viewing parameters. One or more preference look-up tables 392 may be created in memory based on data collected in connection with a user or household's viewing preferences. Such data may be based on, for example, a preference tracking database 391 or user input that expressly indicates user preferences. In one embodiment, the preference look-up tables 392 are created by the preference engine 390 and contain viewing parameters that are associated with respective time periods. The viewing parameters may be television services, types of television services, service instances, types of service instances, service instance ratings, and/or respective content parameters, among others. A content parameter may be used to explicitly specify the presence of violence, offensive language, and sexual content in a service instance, for example.

These parameters may be retrieved from IPG database 375 stored in DRAM 304, and may be part of a service instance's information. Each time period may represent a time of day, a time of week, a time of year, or a combination thereof (e.g., 1:00 p.m.
to 2:00 p.m.
on Sunday in January). In one embodiment, a preference look-up table 392 contains a plurality of rows where each row corresponds to a respective daily time period. In one possible implementation, each row corresponds to a half-hour time period. In another possible implementation, a plurality of preference look-up tables 392 corresponding to a plurality of respective weekdays are used. For example, one preference look-up table 392 may be used for each of the seven days of the week. Alternatively, one preference look-up table 392 may be used for a group of days such as Monday through Friday, another for weekend days, such as Saturday and Sunday, and yet another for holidays.
In an alternative embodiment, look-up tables may be created by a user during a configuration or customization procedure without the assistance of preference engine 390.
The preference engine may function autonomously thereafter or until the subscriber conducts another configuration or customization procedure. In yet another embodiment, a preference engine 390 is not included in the DHCT 200.
A person with ordinary skill in the art will understand that there are many different methods of arranging and storing data. A preference look-up table 392 is not necessarily stored in a table format; it is, however, presented here in a table format for illustrative purposes. The following table represents a non-limiting example of some of the information that may be contained in a preference look-up table 392 in accordance with one embodiment of the invention.
Table 1, Example of preference look-up table for types of service instances 1:00 a.m. to 2:00 a.m. MOVIES
2:00 a.m. to 3:00 a.m. MOVIES

3:00 a.m. to 4:00 a.m. MOVIES
4:00 a.m. to 5:00 a.m. MOVIES
5:00 am. to 6:00 a.m. MOVIES
6:00 a.m. to 7:00 a.m. NEWS
7:00 a.m. to 8:00 a.m. NEWS
8:00 a.m. to 9:00 a.m. CARTOONS
9:00 a.m. to 10:00 a.m. CARTOONS
10:00 a.m. to 11:00 a.m. CARTOONS
11:00 a.m. to 12:00 p.m. CARTOONS
12:00 p.m. to 1:00 p.m. SOAP-OPERAS
1:00 p.m. to 2:00 p.m. SOAP-OPERAS
2:00 p.m. to 3:00 p.m. SOAP-OPERAS
3:00 p.m. to 4:00 p.m. TALK-SHOWS
4:00 p.m. to 5:00 p.m. TALK-SHOWS
5:00 p.m. to 6:00 p.m. TALK-SHOWS
6:00 p.m. to 7:00 p.m. NEWS
7:00 p.m. to 8:00 p.m. SIT-COMS
8:00 p.m. to 9:00 p.m. SIT-COMS
9:00 p.m. to 10:00 p.m. SPORTS
10:00 p.m. to 11:00 p.m. SPORTS
11:00 p.m. to 12:00 a.m. MOVIES
12:00 a.m. to 1:00 a.m. MOVIES
In the example shown in table 1, each time period is associated with a type of service instance. In an alternative embodiment, each time period in a preference look-up table 392 may be associated with multiple viewing parameters that are ranked based on a score corresponding to a user's or household's viewing time and/or viewing frequency of services having such viewing parameters. In an alternative embodiment in which the subscriber customizes viewing preferences for specific time periods, each preference look-up table 392 may be associated with one or more TV services, but where each service is only associated with one look-up table.
Each entry in a look-up table associated with a period of time may comprise multiple preferences or specifications for that entry. The number of viewing parameters may differ from a first entry to a second entry. Each entry can have an independent number of viewing parameters associated with it. As a non-limiting example, the flexibility to associate any number of viewing parameters in each entry is provisioned by implementing a link-list structure for its set of viewing parameters.
Multiple preference look-up tables 392 may be used for looking up different combinations of viewing parameters and time periods. For example another preference look-up table 392 may be used to look up television service preferences based on the day of the week. Alternatively, a separate look-up table contains information for locating a look-up table corresponding to a respective day of the week. In an alternative embodiment a multidimensional preference look-up table 392, possibly implemented with link lists as described above, may be used to look up multiple types of viewing parameters associated with multiple types of time periods.
In one implementation, applications executing on the DUCT 200 work with the navigator 360 by abiding by several guidelines. First, an application utilizes the SAM
client 320 for the provision, activation, and suspension of services. Second, an application shares DHCT 200 resources with other applications and abides by the resource management policies of the SAM client 320, the operating system 340, and the DHCT 200. Third, an application conforms to situations where shared resources are only accessible via the navigator 360. Fourth, when an application loses service authorization while providing a service, the application suspends the service via the SAM
client 320 (the navigator 360 will reactivate an individual service application when it later becomes authorized). Finally, an application client is designed to not have access to certain user input keys reserved by the navigator 360 (e.g., power, channel +/-, volume +/-, etc.).
Data and software used in providing a DHCT service to a user may be stored in one or more of the following memory resources: a data storage device located at a headend, a data storage device located at a customer premises, a non-volatile memory internal to the DHCT 200, and/or a hard drive internal to the DHCT 200. For example, an executable program or algorithm corresponding to an operating system (OS) component, or to a client platform component, or to a client application (e.g., IPG
application 370), or to respective parts thereof, may reside in and/or execute out of DRAM 304 and/or flash memory 302, or may reside in a local storage device connected to DHCT 200 and may be transferred into DRAM 304 for execution. Likewise, data input for an executable program or algorithm may reside in DRAM 304 or in flash memory 302, or may reside in a local storage device connected to the DHCT 200 and may be transferred into DRAM
304 for use by an executable program or algorithm. In addition, data output by an executable program or algorithm may be written into DRAM 304 by the executable program or algorithm and may be transferred to flash memory 302 or to a local storage device for storage purposes. It should be noted, however, that the present invention is not limited by where or how any data and/or applications are stored or retrieved.
The IPG application 370 has a data gathering mechanism, or daemon 377, running continuously as a background task to receive IPG data intended to reside in the DRAM
304. IPG daemon 377 receives IPG data corresponding to a time-window and stores such IPG data for a pre-specified period of time in the DRAM 304. This mechanism can be employed at power-up and/or during periodic updates that, for instance, occur at pre-determined times (such as midnight). The IPG data updates can also occur upon change to the data on an IPG server 111 and subsequent notification to the client that new data is available.
Transmission of data packets containing a time specification from the headend 110 helps the DHCT 200 to synchronize its clock and keep track of time and intervals. In one implementation, a timer in the DHCT 200 can count down to a time that initiates processor 240 to signal the IPG daemon 377 background task to retrieve transmitted IPG
data. DHCT 200 can receive IPG data, for instance, as a BFS file transmitted via a BFS
server 112 either as an in-band or out-of-band transmission, or both. Hence, an IPG
server 111 in communication with the BFS server 112 can package an IPG
database into files and transfer them to the BFS server 112 for downstream transmission.
IPG data typically spans service instance information for a complete service line-up, be it hundreds or possibly thousands of services, for a pre-specified time-window (e.g., 14 or 30 days). An individual service (e.g., NBC, Video-On-Demand, Email) is typically associated with each service. Since the duration of service instances vary, for example, typically from 30 minutes to 210 minutes, a service could possibly offer 48 service instances per day, as an example.
As a non-limiting example, IPG data comprises data organized into database records or other data structures. The IPG data records comprise fields containing information such as service instance titles, service instance descriptions, service instance content descriptions, service instance genre, service instance release years, casts or performers lists, ratings information, play duration, and/or links to additional respective service instance related information such as service instance previews and critic's reviews and comments. In another embodiment, service instance information may include a price for a service rendering a service instance as well as an effective window of time and/or calendar days in which the service is purchasable.
The IPG database 375 contains information for the presentation of available service instances at the current time and for subsequent periods throughout a time-window into the future designated to be supported by IPG application 370. Part of the IPG data may be retained at the IPG server 111 for on-demand requests by a DHCT.
Such is the case for Service Instance Long Descriptions that would require excessive DHCT 200 memory for storage, especially in light of the large number of service to instances provided by a large service line-up over multiple days. The remainder of the IPG data is intended to reside in the DHCT 200 and is broadcast via one or more downstream data services, possibly one or more in-band transmission channels or out-of-band (00B) transmission channels.
A user's request for a service instance information (e.g., a program's Long Description) stored in an IPG server 111 at the headend 110 generates a signal that is transmitted from the DHCT 200 to the IPG Server 111. The IPG server 111 transmits the requested service instance information via one or more downstream data services and the DHCT 200 conveniently downloads the information through its communications interface 220.
As time progresses, the IPG database 375 is updated due to one of various possible reasons such as: service instance data becomes obsolete as an IPG
time-window "shifts" in pre-specified time-increments into the future; TV stations or other services (e.g., digital music services) may alter their service instance offering due to one of many possible reasons (e.g., NBC Overrides a scheduled program to transmit a President's State of the Union address); or a change in the service line-up.
*Trade-mark 1. 9 IPG application 370 functionality includes database management capabilities in which database records can be stored in DRAM 304 or some other storage device.
The IPG server 111 in communication with IPG application 370 effects updates to the IPG
database 375 stored in DRAM 304 on a regular or periodic basis. IPG
application 370 receives information on the IPG database 375 transmitted by IPG server 111 through the communications interface 220 and invokes its database management functionality to store received IPG database 375 in a section of DRAM 304. The IPG application 370 is preferably a programmed software application executed by utilizing the computer resources in the DHCT 200. An executable program is stored in DRAM 304 and executed by processor 240 under the auspices of the real-time operating system. Thus, data required as input by the IPG application 370 is stored in DRAM 304 and read by processor 240 from DRAM 304 as need be during the course of the application's execution. IPG application 370 reads IPG database records and processes them into displayable representations as part of a graphical user interface (GUI) presentation displayed on the display device 140.
In one embodiment, configuration manager 397 working in communication with general settings application 396 allows a user to select and customize the user's control of TV functionality, including displayable information retrieved from IPG
database 375, for one or more time periods. In this way the user can customize the extent of TV
functionality and/or of IPG information displayed to the user's liking. A user can customize TV
functionality and/or displayable IPG information to adaptively change over time. The customization of time-adaptive functionality can be indefinite until a user overrides an existing selection in the future or until a period of time expires according to the user's customization. In one embodiment in which preference engine 390 exists and is allowed to function, the user's customization may be altered in the future by preference engine 390.

Customizable information further includes the configuration and layout of an IPG
screen for different time periods in addition to the IPG information.
Displayable IPG
information for each of a plurality of time periods can be customized by service identity, service instance type, service type, service instance rating, and/or service instance content, Each of the above mentioned applications and functions mentioned throughout preferably comprise executable instructions for implementing logical functions and can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, portable compact disc read-only memory (CDROM) (optical). Note that the computer-readable medium could even be paper or another suitable medium upon which an application is printed, as the application can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner, and then stored in a computer memory.
FIG. 4 depicts a non-limiting example of a remote control device 400 that may be used to provide user input to the DHCT 200. The remote control device 400 described herein is merely illustrative and should not be construed as implying any limitations upon the scope of the present invention. Four arrow keys 410 are provided including an up arrow key 411, a down arrow key 412, a left arrow key 413, and a right arrow key 414.
The arrow keys 410 can be used to scroll through on-screen options and/or to highlight an on-screen option, whereas the select key 420 may be used to select a currently highlighted option. The guide key 480 may be used to access a television program guide such as, for example, IPG 500 (FIG. 5). The function of the "A" key 471, the "B" key 472, and the "C" key 473 varies depending on the screen being presented to a user at the time of the key's activation. For example, in one embodiment of the present invention, the "A" key 471 can be used to confirm a selection, the "B" key 472 can be used to return to a previously displayed screen, and the "C" key 473 can be used to cancel a request. Other remote control elements function as follows: a PVR key 495 may be used to request a list of video recordings that are stored in the PVR module 290 (FIG. 2); a remote control status switch 490 may be used to determine whether the DHCT 200 will operate in a preference adaptive mode whereby DHCT functionality is responsive to predetermined user preferences, as will be described in greater detail below; the favorites key may be used to request a list of favorite television services; the settings key 460 may be used to request a general settings screen such as, for example, general settings screen 600 (FIG.
6); and the cable power key 401 may be used to activate the DHCT 200.
In an alternative embodiment, different and/or additional methods of providing user input may be used including, for example, a remote control device having different keys and/or key layouts, a keyboard device, a voice activated input system, a touch-screen display, etc. The invention described herein is not limited by the type of device used to provide user input. As a non-limiting example, the functionality of the arrow keys 410 may be provided via a disc-shaped key (not-shown) whereby locations on the disc-shaped key correspond to respective directions on a display screen.
With additional reference to FIGS. 1-4 throughout the remaining figure descriptions, FIG. 5 depicts a non-limiting example of an IPG screen 500 that illustrates an initial program guide arrangement in a time format. IPG screen 500 may be presented by the DHCT 200 (FIG. 2) in response to user input that is provided via, for example, the activation of the guide key 480 (FIG. 4). The top left portion of IPG screen 500 is a detailed focus area 510 that includes detailed television service information (e.g., television channel number, television channel name (ABC), program name, program description, duration, any episode information or rating, etc.) for a service instance displayed in the highlighted service instance area 520 in a main service instance display area 560. The fields in the detailed focus area 510 are populated with information read from IPG database 375 in DRAM 304 by IPG client application 370.
A television service which the DHCT 200 is currently providing (which is typically the service instance occupying the full screen before the user is presented with IPG screen 500) is displayed in a video area 530. Immediately below the video area 530 is an information banner 540 depicting the television service which the DHCT
200 is currently providing (e.g., channel 5), the current day and date (e.g., Thursday, January 18), and the current time (e.g., 5:00 p.m.). The date and timing information are retrieved from internal clock information stored in system memory 300. The displayed TV
service information is retrieved from IPG database 375 stored in DRAM 304.
The main service instance display area 560 contains a listing of television instance titles corresponding to television instances that are or will be available for viewing during the time periods listed under the time area 570 and that correspond to respective television services identified in television service area 580. Service instance information displayed via IPG screen 500 is read from IPG database 375 in DRAM 304 by IPG
client 370 to populate respective fields in the displayed presentation. The television service area 580 includes a vertical list of television services organized sequentially from top to bottom by increasing television service number (except for the lowest numbered television service which is typically listed immediately below the highest numbered television service). In one embodiment, the arrow buttons 410 can be used to scroll through the main service instance display area 560 and to highlight a desired service. As a user scrolls in time across a calendar day boundary, the day and date indications displayed in various areas are automatically updated. The corresponding displayed IPG
fields are also updated by retrieving their respective information from IPG
database 375.
Though other implementations are contemplated within the scope of the present invention, when the IPG application is first activated by the user, the lowest numbered television service listing in the television service lineup is typically centered in the television service area 580. In this non-limiting example, the lowest numbered television service in this television service list displayed in the television service area 580 is ABC , which is shown as television channel 2. Continuing with this non-limiting example, the left-most time column in the main service instance display area 560 is set to include titles of service instances scheduled to be broadcast about two hours into the future with the middle title in the column being highlighted and corresponding to a service instance on the lowest numbered television service. Therefore, in this example, the service instance ABC News 520, which will be on ABC (television channel 2), is centered in the highlighted service instance area 520. It should be noted that the current service instance shown in video area 530 and referenced in information banner 540, corresponds to a currently tuned television service, which in this example is television channel 5, and not to the highlighted service instance on television channel 2.
The bottom area 550 of IPG screen 500 indicates the selected day for which service instance data is being displayed as well as information about the current functions of the "A", "B", and "C" keys on the remote control 400. In this example, the "A", "B", and "C" keys function as follows: the A key 471 can be used to access a browse-by list for requesting an IPG screen that contains a subset of television instances falling under a user selected browse-by category such as, for example, comedy, drama, action/adventure, sports, etc., as typically provisioned by service instance information stored in IPG
database 375; the B key 472 can be used to request an IPG screen containing service instance listings for a user selected date; and the C key 473 can be used to initiate a process for re-configuring the content of an initial IPG screen.
In an alternative embodiment of the present invention, an IPG may have fewer, greater, or different components. For example, in one embodiment an IPG may not include the detailed focus area 510, the video area 530, the information banner 540, and/or the bottom area 550. In yet another embodiment, an IPG may have time listings that are arranged vertically and television service listings that are arranged horizontally.
One of ordinary skill in the art will understand that various IPG
configurations are possible within the scope of the present invention, either indefinitely or by time periods as customized by a subscriber during a configuration procedure.

FIG. 6 depicts a non-limiting example of a general settings screen 600 that may be presented to a user in response to the activation of the settings key 460 (FIG. 4). General settings menu 610 includes a remote control option 620, a program guide option 630, and a parental control option 640. The general settings options 620, 630, and 640 may be used to configure a remote control, a program guide and a parental control feature, respectively. Information section 690 provides information about the currently highlighted option which in this example is the program guide option 630. As in other examples below, a user may use the arrow keys 410 to highlight a desired option and the select key 420 in order to select a currently highlighted option. In an alternative embodiment, a general settings screen may contain different and/or additional options such as, for example, an option to select a second audio program (SAP).
FIG. 7 depicts a non-limiting example of an IPG configuration screen 700 that may be presented to a user in response to the selection of the program guide option 630 (FIG. 6). IPG configuration menu 710 includes a program type option 720, a channel type option 730, and a channel identity option 740. The IPG configuration options 720, 730, and 740 may be used to configure the television service listings in an IPG based on selected service instance types, television service types, and television service identities, respectively. In another embodiment, an IPG configuration screen 700 may contain different and/or additional options such as, for example, an option to configure the time listings that are to be presented in an initial IPG screen. An initial IPG
screen is an IPG
screen that is presented to a user in response to user input that is received by the DHCT
200 while the user is not being presented with an IPG. User input requesting an IPG may be provided by activating for example, the guide key 480. In one embodiment, time periods in an initial IPG screen include one corresponding to the current time as well as subsequent consecutive periods in the future. The user can configure the IPG
not to show any information for certain time periods in an initial IPG screen and/or other IPG screens.
FIG. 8 depicts a non-limiting example of a television channel type selection screen 800 that may be presented to a user in response to the selection of the channel type option 730 (FIG. 7). In one embodiment, a channel type refers to a service that typically features only a certain type of service instance (e.g., sports channel) and/or that has a certain characteristic (e.g., broadcast channel). In an alternative embodiment, a channel type corresponds to a type of service instance active at a particular time period in a service, as identified by a "program type" field in a program's information in IPG
database 375.
Television channel type menu 810 includes a broadcast option 820, a sports option 830, and an adult option 840. The channel type options 820, 830, and 840 may be used to determine the television service listings in an initial IPG screen. A user may use the arrow keys 410 (FIG. 4) in order to access additional options by scrolling up or down the television channel type menu. In another embodiment of the invention, a television channel type selection screen 800 may contain different and/or additional channel type options such as, for example, music, news, shopping, foreign, etc. A channel type option that is selected from the television channel type menu is added to an active selection list 850. After the user completes the selection process, the user can provide additional input via the remote control 400 confirming his selections. Such input may be provided via, for example, the "A" key 471 (FIG. 4).
FIG. 9 depicts a non-limiting example of a timing preference screen 900 that may be presented to a user in response to the selection of one or more new television setting(s) such as, for example, a channel type option from the channel type menu 810 (FIG. 8).
The timing preference screen 900 includes timing preference options 910 and 920; the first option 910 may be selected by the user if the user wants the newly selected television setting(s) to be implemented only during certain time periods; the second option 920 may be selected by the user if the user wants the newly selected television setting(s) to be implemented for an indefinite period of time.
FIG. 10 depicts a non-limiting example of a time basis screen 1000 that may be presented to a user in response to the selection of the first option 910 from the timing preference screen 900 (FIG. 9). A time basis menu 1010 includes time basis options 1011-1014 for determining a time basis for implementing the newly selected television setting(s). In this example, time bases options include time of day 1011, day of the week 1012, date 1013, and multiple time bases 1014. An instruction section 1090 provides instructions to the user in connection with the current screen. In this example, the instruction section 1090 states "SELECT THE TIME BASIS TO BE USED IN
DETERMINING WHEN THE NEW TV SETTINGS WILL BE IMPLEMENTED."
FIG. 11 depicts a non-limiting example of a beginning month selection screen 1100 that may be presented to a user in response to the selection of the multiple time bases option 1014 or the date option 1013 from the time basis screen 1000 (FIG. 10). A
beginning month menu 1110 includes month selections 1111-1115 that may be used to select a month during which the newly selected television setting(s) are to take effect. A
user can scroll up or down the beginning month menu in order to view or select additional month options (not shown). In another embodiment, the beginning month menu may initially display additional and/or different month options such as, for example, options corresponding to the months of January through April, October through December, or January through December.
FIG. 12 depicts a non-limiting example of a beginning date selection screen that may be presented to a user in response to the selection of a beginning month option via the beginning month selection screen 1100 (FIG. 11). A beginning date selection grid 1210 includes date selections that may be used to select a date during which the newly selected television setting(s) are to take effect. A user can activate the arrow keys 410 in order to highlight a desired date, and can then select the highlighted date by activating the select key 420. In an alternative embodiment, the user may specify a date by entering a corresponding number via, for example, the number pad 450 on the remote control device 400 (FIG. 4).
FIG. 13 depicts a non-limiting example of an ending month selection screen that may be presented to a user in response to the selection of a beginning date option via the beginning date selection screen 1200 (FIG. 12). An ending month menu 1310 includes month selections 1311-1315 that may be used to select a month during which the newly selected television setting(s) are to expire. A user can scroll up or down the ending month menu in order to view or select additional month options (not shown). In another embodiment, the ending month menu 1310 may initially display additional and/or different month options such as, for example, options corresponding to the months of January through April, respectively.
FIG. 14 depicts a non-limiting example of an ending date selection screen 1400 that may be presented to a user in response to the selection of an ending month option via the ending month selection screen 1100 (FIG. 11). An ending date selection grid 1410 includes date selections that may be used to select a date during which the newly selected television setting(s) are to take effect. A user can activate the arrow keys 410 in order to highlight a desired date, and can then select the highlighted date by activating the select key 420. In an alternative embodiment, the user may specify a date by entering a corresponding number via, for example, the number pad 450 on the remote control device 400 (FIG. 4).

FIG. 15 depicts a non-limiting example of a continuity of settings screen 1500 that may be presented to a user in response to the selection of an ending date option via the ending date selection screen 1400 (FIG. 14). The continuity of settings screen provides a user with an option of implementing the newly selected television settings on a yearly basis during an interval that covers a period that corresponds to the period selected via the month and date selection screens 1100-1400 depicted in FIGS. 11-14, respectively. For example, if the user selects the time period August 17-January 18 via the selections screens 1100-1400, then the user can select the second option 1520 in order to request that the newly selected television settings be implemented during current and subsequent August 17-January 18 time periods.
FIG. 16 depicts a non-limiting example of a day selection screen 1600 that may be presented to a user in response to the selection of the day-of-week option 1012 (FIG. 10) or of a continuity of settings option via the continuity of settings screen 1500 (FIG. 15).
A day selection menu 1610 includes day options 1611-1617 that may be used to select the day or days during which the newly selected television setting(s) are to be implemented.
In this example, the user may request that the newly selected television settings be implemented on holidays, on weekdays (Monday through Friday), on weekends (Saturday and Sunday), or on all 7 days of the week by selecting option 1611, 1612, 1613, or 1614 respectively. Alternatively, the user may request that the newly selected television settings be implemented on a selected day by selecting a corresponding day option (e.g., option 1615 for Monday). A user can scroll up or down the day selection menu in order to view or select additional day options (not shown). In another embodiment, the day selection menu 1610 may display fewer, additional and/or different options such as, for example, an option corresponding to holidays and weekends.

FIG. 17 depicts a non-limiting example of an hour selection screen 1700 that may be presented to a user in response to the selection of the time-of-day option 1011 (FIG.
10) or a day option via the day selection screen 1600 (FIG. 16). A starting time selection field 1710 and an ending time selection field 1720 may be used to specify a starting time and an ending time, respectively, for a time period during which the newly selected television setting(s) are to be implemented. In one embodiment, a user can use the right and left arrow keys 413 & 414 in order to highlight a selection field, the up and down arrow keys 411 & 412 in order to designate a desired time, and the select key 420 in order to select the desired time as shown in the highlighted selection field. In an alternative embodiment, a user can use the number pad 450 (FIG. 4) in order to designate starting and ending times.
FIG. 18 depicts a non-limiting example of a program type selection screen 1800 that may be presented to a user in response to the selection of the program type option 720 (FIG. 7). Program type menu 1810 includes a comedy option 1820, a sports option 1830, and an adult option 1840. The program type options 1820, 1830, and 1840 may be used to determine the type of service instances listed in an initial IPG
screen. A user may use the arrow keys 410 (FIG. 4) in order to access additional options by scrolling up or down the program type menu. In another embodiment, a program type selection screen 1800 may contain different and/or additional program type options such as, for example, news, drama, soap opera etc. A program type option that is selected from the program type menu is added to an active selection list 1850. After the user completes the selection process, the user can provide additional input via the remote control 400 confirming his selections. In this example, such input may be provided via the "A" key 471 (FIG. 4).
FIG. 19 depicts a non-limiting example of a sport type selection screen 1900 that may be presented to a user in response to the selection of the sports option 1830 (FIG.

18). A sport type selection menu 1910 includes sport type options 1911-1913 that may be used to determine the service instance listings in an initial IPG screen. In one embodiment, only television instances corresponding to one or more sport type options selected by the user are subsequently presented in an initial IPG screen. A
user may use the arrow keys 410 (FIG. 4) in order to access additional options by scrolling up or down the sport type selection menu 1910. In this example, the sport type selection menu 1910 includes golf 1911, college basketball 1912, college football 1913, all sports 1914, NFL*
(National Football League) 1915, MLB (Major Baseball League) 1916, and NBA*
(National Basketball Association) 1917. In another embodiment, a sport type selection menu 1910 may contain different and/or additional sport type options such as, for example, college baseball, tennis, NHL*(National Hockey League), etc. A sport type option that is selected from the sport type menu is added to an active selection list 1990.
FIG. 20 depicts a non-limiting example of a channel selection screen 2000 that may be presented to a user in response to the selection of the channel identity option 740 (FIG. 7). Television channel menu 2010 includes channel options that may be used to determine the television service listings in an initial IPG screen. A user may use the arrow keys 410 (FIG. 4) in order to access additional options by scrolling up or down the television channel menu. In another embodiment, a channel selection menu 2010 may contain different and/or additional channel options such as, for example, VOD, PPV, MSNBC:BBC:ESPN2:etc. A channel option that is selected from the television channel menu 2010 is added to an active selection list 2050. After the user adds the desired channel options to the active selection list 2050, the user can confirm his selection by, for example, activating the "A" key 471 (FIG. 4). A channel option may allow a selected service and its IPG information to be included in the IPG presentation, to be enabled for selectable "TV control" functionality, and/or for its IPG information to be displayed by *Trade-mark other applications, indefinitely or until modified again by the user.
Furthermore, a channel option allows a service to be enabled for one or more selected time periods, regardless of service instance content and service instance attributes during the respective time periods selected by the subscriber.
Examples of selectable TV control functionality that can be enabled indefinitely or during selected time periods include tuning to a specific service, providing an IPG
screen, recording a service, and purchasing products or services via a television service.
Other TV control functionality may include functionality of remote control keys for selected time periods or enabling and disabling respective remote control keys.
As a non-limiting example of a selectable "TV control" functionality using a channel option, a subscriber may select an option for limiting the tuning to a television service (e.g., Nickelodeon)* to only certain time periods (e.g., during 7:00 to 8:00 a.m., Monday through Fridays, and from 8:00 a.m. to 9:00 p.m. on Saturdays and Sundays).
The subscriber may also opt via the channel option to allow the IPG
information in IPG
database 375 pertaining to the respective television service to always be accessible via IPG application 370. Furthermore, the subscriber may enable, as a selectable "TV
control" fitnctionality using the channel option, the initiation of a recording of a service instance of the respective television service via an IPG screen, regardless of whether the respective television service is enabled during the period that the service instance is transmitted. The recording of a television service may be initiated responsive to the activation of the record key 435 when the service or corresponding service instance is highlighted in an IPG screen.
Each TV control functionality and DHCT application may be responsive to activation information stored in a look-up table dedicated to the respective functionality or application. Programmed software executing in processor 240, such as operating *Trade-mark system 340, SAM client 320 or navigator 360, that enact a TV control functionality or invoke an application to execute on processor 240, access activation information from the corresponding look-up table prior to the activation of the functionality or application.
According to the accessed information corresponding to the TV control functionality or application, activation of a functionality or application is implemented if a current time entry in the respective look-up table authorizes such activation.
Each time entry in a look-up table may comprise multiple specification fields associated with each respective time period that describe the scope of a subscriber's customization for that time period. Thus, in addition to a field in the look-up table specifying an indication whether an application or TV control functionality is "enabled"
or "disabled" for activation purposes, additional fields associated with a time period may specify other information that limits a sub-functionality or data presentation in association with the respective time period. The limits for the allowed sub-functionality or data presentation in a time period may be identified based on what is authorized and/or what is not authorized.
The additional fields associated with an "enabled" time period specify the limits on sub-functionality or data that can be displayed during that respective time period.
However, regardless of whether a functionality or application is disabled for a first time period, a look-up table may comprise additional information that specifies limits for data to be retrieved and/or displayed during a second time interval for which an application is "enabled". As a non-limiting example, the IPG application 370 may be enabled for certain time periods for which it can retrieve information from IPG database 375.
Therefore, during an enabled time period, IPG application 370 can be activated by the subscriber to display information for time periods in which the IPG
application itself is disabled as an application.

In one embodiment, an authorization look-up table 394 contains an entry that specifies a "yes" or "no" flag for determining whether each respective executable application or TV control functionality is authorized to adapt to user preferences. The user preferences may be determined by the preference engine 390 and/or as a result of a user configuration performed during a customization procedure.
FIG. 21 is a flow chart depicting a non-limiting example of an IPG routine for providing an IPG that meets user specifications. The routine 2100 may be part of IPG
application 370 (FIG. 3) and may be initiated in response to the DHCT 200 (FIG. 2) receiving user input requesting an IPG. The user input may be provided via the activation of a designated remote control key such as, for example, the guide key 480.
After the routine 2100 is initiated in step 2101, the routine 2100 determines in step 2102 whether the IPG application 370 is authorized to adapt to user preferences. If the IPG
application 370 is not authorized to adapt to user preferences, then the IPG application 370 provides the user with an IPG having default characteristics as indicated in step 2103, and the routine 2100 terminates as indicated in step 2106. However, if the IPG
application 370 is authorized to adapt to user preferences, then the IPG application 370 provides the user with an IPG that is adapted to user preferences, as indicated in step 2105, and the routine 2100 terminates as indicated in step 2106. The IPG application 370 may use a preference look-up table 392 to obtain a specification for the subset of service instance information in IPG database 375 that is enabled for access and display for the current time period in accordance with user preferences. When user input causes IPG application 370 to display IPG data corresponding to time periods other than the current time period, IPG

application 370 displays information for those other time periods according to the limits in their respective specification in a preference lookup table 392.

FIG. 22 depicts a non-limiting example of a remote control configuration screen 2200 that may be presented to a user in response to the selection of the remote control option 620 (FIG. 6). Remote control configuration menu 2210 includes a first option 2220 for configuring the functionality of the favorites key 430, a second option 2230 for configuring the functionality of the channel +/- key 440, and a third option 2240 for configuring the functionality of the favorites key 430 and the channel +/- key 440. In an alternative embodiment, a user may be provided with additional and/or different options for configuring aspects of the remote control device 400. Such additional and/or different options may include, for example, an option for enabling or disabling the record key 435 (Figure 4).
FIG. 23 depicts a non-limiting example of a channel navigation configuration screen 2300 that may be presented to a user in response to the selection of the channel +/-key option 2230 (FIG. 22). Channel navigation configuration menu 2310 includes a program type option 2320, a channel type option 2330, and a channel identity option 2340. The service navigation configuration options 2320, 2330, and 2340 may be selected to configure the operation of the channel +/- key 440 (FIG. 4) based on user selected service instance types, television service types, and television service identities, respectively. In one embodiment, the selection screens that are presented in response to the selection of option 2320, 2330, or 2340 are similar to selection screens 1800 (FIG.
18), 800 (FIG. 8), and 2000 (FIG. 20), respectively. In this manner a user may configure the operation of the channel +/- key 440 such that only certain television services, types of television services, or types of service instances are presented to the user in response to the activation of the channel +/- key 440. In another embodiment, a service navigation configuration screen 2300 may contain different and/or additional options such as, for example, an option to configure the operation of the channel +/- key 440 based on a user's television viewing habits. Settings for determining the operation of the channel +/-key 440 may be implemented continuously or only during certain time periods as determined by user input such as, for example, as provided via the screens depicted in FIGS. 9-17.
FIG. 24 is a flow chart depicting a non-limiting example of a service navigation routine 2400 for providing a television service that meets user specifications. The routine 2400 may be part of the navigator application 360 (FIG. 3) and may be initiated in response to the DHCT 200 (FIG. 2) receiving user input requesting another television service. The user input may be provided via the activation of a service navigation key such as, for example, the channel +/- key 440 (FIG. 4). After the routine 2400 is initiated in step 2401, the routine 2400 determines in step 2402 if user specifications for service navigation during the current time period are stored in memory as explained above. If such user specifications are not stored in memory, then the routine 2400 initiates in step 2403 the provision of the next available sequential television service (up or down depending on the user's request), and the routine terminates in step 2404. If, however, user specifications for the current time period are stored in memory, then the routine initiates in step 2405 the provision of a television service in accordance with the user specifications, and then terminates in step 2406. The user specifications for service navigation may have been solicited via, for example, one or more of the screens depicted in FIGS. 9-20, 22, and 23, and may include information that directly or indirectly identifies television services that are to be provided in response to the activation of a service navigation key during user defined time periods.
FIG. 25 depicts a non-limiting example of a parental control configuration screen 2500 that may be presented to a user in response to the selection of the parental control option 640 (FIG. 6). Remote control configuration menu 2510 includes a first option 2520 for preventing unauthorized use of the DHCT 200, and a second option 2530 for blocking certain television services from being presented to unauthorized users.
Unauthorized use of the DHCT 200 may be implemented by requiring that a valid personal identification number (PIN) be entered by a user every time that the is turned on. Similarly, access to blocked television services may only be provided in response to an entry of a valid PIN. In another embodiment, authorized users may be identified in another manner such as, for example, via the entry of a valid password or via speech or fingerprint recognition. Parental control settings may be implemented continuously or only during certain time periods as determined by user input such as, for example, as provided via the screens depicted in FIGS. 9-17.
FIG. 26 depicts a non-limiting example of a block service screen 2600 that may be presented to a user in response to the selection of the block service option 2530 (FIG. 25).
Block service menu 2610 includes a program type option 2620, a channel type option 2630, and a channel identity option 2640. The block service options 2620, 2630, and 2640 may be used to configure the DHCT 200 to block selected service instance types, television service types, and television service identities, respectively. In one embodiment, the selection screens that are presented in response to the selection of option 2620, 2630, or 2640 are similar to selection screens 1800 (FIG. 18), 800 (FIG.
8), and 2000 (FIG. 20), respectively. In this manner, a user may block certain television services based on their service instance content, their type, or their identity. The block service screen 2600 may, in another embodiment, contain different and/or additional options such as, for example, an option to block all television services or an option to block television services carrying a certain service instant. Service blocking settings may be implemented continuously or only during certain time periods as determined by user input such as, for example, as provided via the screens depicted in FIGS. 9-17.

FIG. 27 is a flow chart depicting a non-limiting example of a service navigation routine 2700 for blocking a television service. The routine 2700 may be part of the navigator application 360 (FIG. 3) and may be initiated in response to the (FIG. 2) receiving user input requesting a certain television service. The user input requesting a certain television service may be provided via, for example, the number pad 450, or via the selection of a television service that is listed in an IPG.
After the routine 2700 is initiated in step 2701, the routine 2700 determines in step 2702 if the requested television service is blocked during the current time period. A television service may be blocked in response to receiving user input requesting that one or more television services be blocked during one or more time periods. Such user input may be provided via, for example, one or more of the screens depicted in FIGS. 8-20, 25, and 26, and may include information that directly or indirectly identifies television services that are to be blocked or excluded. A television service may be indirectly identified based on its type or based on the service instance or type of service instance that it is providing.
If the requested television service is not blocked, then the routine initiates in step 2703 the provision of the requested television service to the user and terminates in step 2704. If, however, the television service is blocked, then the routine initiates the presentation of a personal identification number (PIN) entry screen to the user. The PIN
entry screen may prompt the user to enter the required PIN by stating, for example, "Please enter your PIN in order to have access to this television service."
The routine 2700 then determines in step 2706 if the PIN entered by the user is valid by comparing the entered PIN with a PIN previously stored in memory. If the PIN entered by the user is invalid, then the routine 2700 initiates in step 2707 the provision of a message notifying the user that the entered PIN is invalid and then terminates in step 2708. If, however, the PIN entered by the user is valid, then the routine 2700 initiates in step 2709 the provision of the requested television service to the user and terminates in step 2708.
In one embodiment, a PIN entry screen is only presented during time periods in which a requested service is not blocked. During a time period in which a service is blocked, the service is not presented to a user. In yet another embodiment, service instance information associated with a blocked service is disabled from being accessed from IPG
database 375 and consequently from being presented to a user.
FIG. 28 is a flow chart depicting a non-limiting example of a DHCT activation routine 2800 for activating a DHCT 200 (FIG. 2). The routine 2800 may be part of the operating system 340 (FIG. 3) and may be initiated in response to the DHCT 200 (FIG. 2) receiving user input requesting that the DHCT 200 be activated. The user input requesting activation of the DHCT may be provided via, for example, a power button 401. After the routine 2800 is initiated in step 2801, the routine 2800 determines in step 2802 if the DHCT 200 is scheduled to be inactive during the current time period. A
DHCT 200 may be scheduled to be inactive in response to user input that may have been provided via, for example, one or more of the screens depicted in FIGS. 9-17 and 25.
If the DHCT 200 is not scheduled to be inactive, then the routine 2800 initiates in step 2803 the activation of the DHCT 200 thereby allowing user access to one or more television services. The routine 2800 then terminates in step 2804. If, however, the DHCT 200 is scheduled to be inactive, then the routine initiates the presentation of a personal identification number (PIN) entry screen to the user. The routine 2800 then determines in step 2806 if a PIN entered by the user is valid by comparing the entered PIN with a PIN previously stored in memory. If the PIN entered by the user is invalid, then the routine 2800 initiates in step 2807 the provision of a message notifying the user that the entered PIN is invalid and then terminates in step 2808. If, however, the PIN

entered by the user is valid, then the routine 2800 initiates in step 2809 the activation of the DHCT 200 and terminates in step 2808.
FIG. 29A depicts a non-limiting example of a layout for a preference entry screen 2900. The preference entry screen 2900 may be used to input user preferences for selected time periods, and includes a day indication area 2901, a time area 2902, a viewing parameter area 2904, and a preference entry area 2906. The day indication area 2901 is for displaying the day or group of days that the preference entry screen 2900 applies to. For example, the day indication area 2901 may be used to display one of the following days or group of days: Monday, Tuesday, Wednesday, Thursday, Friday, _ Saturday, Sunday, Monday through Friday, Saturday & Sunday. The time area 2902 includes time slots 2903. Each time slot is for displaying a time period that is part of the day(s) indicated in day indication area 2901. Each time slot may cover, for example, a half-hour period, a one hour period, a two hour period, a three hour period, a four hour period, a twelve hour period, etc. The viewing parameter area 2904 contains a list of viewing parameters such as for example, television services, television service types, service instances, or service instance types. Examples of television services include, among others, ABC, NBC, CBS, CNN, and ESPN, etc. Examples of television service types include, among others, broadcast, sports, news, shopping, adult, foreign, pay-per-view (PPV), video-on-demand (VOD), etc. Examples of service instances include, among others, the television programs Friends, Frasier, Will & Grace, and Headline News (HLN), etc. Examples of service instance types include, among others, sit-corn, news program, football game, etc. Preference entry area 2906 includes preference entry fields 2907 for entering user preferences. A user may enter a user preference by using, for example, the remote control 400. An optional instruction area 2909 may be used to provide instructions on using the preference entry screen 2900.

FIG. 29B depicts a non-limiting example of a preference entry screen 2910 that may be used to input user preferences regarding certain types of service instances during various time periods. In this example, the viewing parameter area 2904 lists the following types of service instances: News, sports, cartoons, sit-corn, movie, music video, adult, talk show, and soap opera. The time area 2902 lists the following time slots 2903:
9:00 a.m. to 12 p.m., 12:00 p.m. to 3:00 p.m., 3:00 p.m. to 6:00 p.m., 6:00 p.m. to 9:00 p.m., and 9:00 p.m. to 12 a.m. In an alternative embodiment, each time slot 2903 may cover a shorter or a longer time period. In yet another embodiment, time slots in a preference entry screen may cover time periods of varying duration. For example, a time slot covering a time period when users are more likely to watch television (e.g., 8:00 p.m.
to 8:30 p.m.) might have a shorter duration (half-an hour) than a time slot covering a time period when users are less likely to watch television (e.g., a single time slot covering the time period between 2:00 a.m. and 6:00 a.m.).
The day indication area 2901 indicates that the preference entry screen 2910 applies for Monday through Friday. The preference entry area 2906 includes a highlighted preference entry field 2911 which may be used to enter a user's preference concerning the corresponding viewing parameter and time slot. A user may toggle the state of a highlighted preference entry field or may designate a different entry field as the highlighted entry field by activating designated buttons on the remote control 400. For example the user may activate the select button 420 to toggle the state of a highlighted entry field and may activate one of the arrow buttons 410 to highlight a different field.
FIG. 29C depicts a non-limiting example of a preference entry screen 2920 that illustrates one possible approach for indicating user preferences. In this example, the preference entry area 2906 includes a promote entry 2921 and a block entry 2922 that reflect user input. The promote entry 2921 indicates that the user's preference is to promote talk show programs 2923 during the 9:00 a.m. to 12:00 p.m. time slot 2924. The block entry 2922 indicates that the user's preference is to block cartoon programs 2925 during the 9:00 a.m. to 12:00 p.m. time slot 2924. In this manner, the user can specify what is to be included and excluded for certain time periods. A television service may be promoted in several ways. For example, a television service may be promoted via an IPG
by being listed ahead of other television services and/or by being more conspicuously displayed. A television service may also be promoted by being presented to a user either "automatically" or in response to the DHCT 200 receiving user input (e.g., corresponding to CH +/- key 440) requesting a television service.
As indicated above, a user may use the remote control device 400 to highlight any preference entry field in the preference entry area 2906, and to then change the highlighted entry field. Of course, many alternative approaches for receiving user preferences may be used including, for example, receiving text input via a keyboard requesting that the DHCT 200 block or promote a certain viewing parameter during a certain time period. The text input may state, for example, "block cartoons from 9 a.m. to 12 p.m." The DHCT 200 may then interpret and implement the request based on predefined standards.
FIG. 30A is a block diagram depicting a non-limiting example of a preference tracking database 3000. The preference tracking database 3000 is stored in (FIG. 3) and comprises data entries 3006 corresponding to respective viewing parameters 3004 and to respective time periods 3002. For example, data entry 3007 is a preference score that corresponds to viewing parameter 3008 and to time period 3009.
Viewing parameters 3004 may represent, for example, television services, television service types, service instances, service instance types, service instance ratings, or other service instance information attributes. Each of time periods 3002 may represent, for example, a time period during a day (e.g., 1:00 p.m. to 2:00 p.m.), a clay or days of the week (e.g., Monday), a day of the year (e.g., January 1), or a month (e.g., January).
Therefore, in one possible embodiment, the preference engine 390 may use multiple preference tracking databases, where each table keeps track of one type of viewing parameter in relation to one type of time period. In an alternative embodiment, a tracking table may keep track of two or more types of viewing parameters in relation to two or more types of time periods.
FIG. 30B is a block diagram depicting a non-limiting example of a preference tracking database 3010 where the viewing parameters 3004 represent television services and the time periods 3002 represent time periods during a day. Television services in this example include the television channels ABC, CBS, CNN, NBC, PBS, FOX, MTV, ESPN2, and ESPN. Although not shown in FIG. 30B, preference tracking database may include additional and/or different television services. In an alternative embodiment, television services may be tracked based on their television service numbers or based on some other service identification name or number. The time periods 3002 in this example represent hourly time periods such as 1 p.m. to 2 p.m. 3015, 2 p.m. to 3 p.m.
3016, and 3 p.m. to 4 p.m. 3017. In an alternative embodiment, each of the time periods 3002 may represent a fraction of an hour or a time period greater than an hour. The data entries 3006 comprises scores that represent a duration and/or frequency that a television service is provided to during the time periods 3002. The scores 3011, 3012, and 3013, for example, correspond to time periods 3015, 3016, and 3017, respectively, and to the television service ESPN 3014. In a hypothetical situation, a user is provided with a Green Bay Packers NFL football game on the ESPN television service 3014 between 1 p.m. and 4 p.m. on a Sunday afternoon in the month of January. Based on this hypothetical situation, the preference engine 390 would increment each of the scores 3011, 3012, and 3013 by a certain value that depends on the scoring system being used. In one embodiment, the preference engine 390 increments a score by a value that is equal to the time that the DHCT 200 provides a service having a respective viewing parameter.
Therefore, in such an embodiment, the scores 3011, 3012, and 3013 may each be incremented by a value equal to 1 point where each point corresponds to one hour. In an alternative embodiment, scores are incremented by values that are proportional or correlated to the times and/or frequency that the DHCT 200 provides a service having respective viewing parameters. A person with ordinary skill in the art would recognize that there are many equivalent methods of tracking the extent to which a DHCT
provides services having certain viewing parameters.
FIG. 30C is a block diagram depicting a non-limiting example of a preference tracking database 3020 where the viewing parameters 3004 represent types of television services and the time periods 3002 represent days of the week. The types of television services in this example include broadcast, premium, movie, music, foreign, shopping, children's, adult, and sports. Although not shown in FIG. 30B, preference tracking database 3020 may keep track of additional and/or different types of television services such as for example, weather and news services. Each of the time periods 3002 in this example represents a day of the week (e.g., Sunday, Monday, etc.). In an alternative embodiment, each of the time periods 3002 may represent a combination of days such as, for example, Monday through Friday or Saturday and Sunday. Continuing with the hypothetical example discussed in reference to FIG. 30B where the DHCT 200 presents an NFL game, the score 3021 may be incremented by 3 points to account for the DHCT
200 being tuned to a sports television service for 3 hours on a Sunday.
FIG. 30D is a block diagram depicting a non-limiting example of a preference tracking database 3030 where the viewing parameters 3004 represent television instances and the time periods 3002 represent months. The television instances represented in this example include the television programs ABC News, Dateline, Friends, Frasier, Cheers, Headline News, ER, Days of Our Lives, and Green Bay Packers (football games).
Although not shown in FIG. 30B, preference tracking database 3030 may keep track of additional and/or different television instances such as for example, The Cosby Show, The Love Boat, MASH, etc. Each of the time periods 3002 in this example represents a month of the year (e.g., January, February, etc.). Continuing with the hypothetical example discussed in reference to FIG. 30B where the DHCT 200 presents a Green Bay Packers NFL game, the score 3031 may be incremented by 3 points to account for the DHCT 200 being tuned to a sports service for 3 hours in January.
FIG. 30E is a block diagram depicting a non-limiting example of a preference tracking database 3040 where the viewing parameters 3004 represent types of television instances and the time periods 3002 represent days of the week. The types of television instances represented in this non-limiting example include sit-coms, soap operas, documentaries, NBA games, news, movies, cartoons, MLB games, and NFL games.
Although not shown in FIG. 30B, preference tracking database 3040 may keep track of additional and/or different types of television instances such as, for example, PGA games, NHL games, religious programs, adult programs, etc. Each of the time periods 3002 in this example represents a day of the week (e.g., Sunday, Monday, etc.).
Continuing with the hypothetical example discussed in reference to FIG. 30B where the DHCT 200 presents a Green Bay Packers NFL game, the score 3041 may be incremented by 3 points to account for the DHCT 200 being tuned to an NFL game for 3 hours on a Sunday.
Although the preference tracking databases depicted in FIGS. 30B through 30E
track certain combinations of viewing parameters 3004 and time periods 3002, additional preference tracking databases that track different combinations of viewing parameters 3004 and time periods 3002 may also be used. Other combinations of tracked parameters include, for example, types of television instances that are tracked in relation to the time of day. In an alternative embodiment a multidimensional preference tracking database may be used to keep track of multiple types of viewing parameters and multiple types of time periods. Each entry in a multidimensional table may identify one or more of the following information related to the video signal tuned to by a DHCT: the television instance, the type of television instance, the television service, the type of television service, service instance rating, service instance content attributes, the time period that the DHCT provides a television service instance, the time period that the DHCT
provides a television service, the time of day, the day of the week, the date, and the calendar month.
For example, continuing with the hypothetical example discussed in FIGS. 30B-where the DHCT 200 presents an NFL game, a corresponding entry in a multidimensional table might contain the following information: Green Bay Packers, NFL, ESPN, sports, Sunday, 1 p.m. to 4 p.m., and January. The information in a multidimensional table may be processed to determine user preferences regarding various viewing parameters and viewing periods.
In one embodiment, an overall score for a plurality of tracked parameters and multi-dimensional tracked associations may be obtained by processing the individual scores as a weighted linear combination of scores for the tracked viewing parameters and/or associations. Likewise, a weighted non-linear combination of the tracked viewing parameters and associations can be implemented. Furthermore, the weights associated with each tracked parameter and/or associations in the combining of scores into an overall score may be found through a training procedure and thereafter refined throughout the course of time by the employment of statistical classification methods or statistical analysis methods. Artificial intelligence technology such as inference engines, syntactical analysis, and/or fuzzy set theory concepts may also be employed in the initial estimate of the weights and their refinements for the purpose of introducing non-linearity and/or for the purpose of discarding or including parameters in the computation of an overall score during certain time periods.
FIG. 31 is a flow chart depicting a non-limiting example of a user preference tracking routine 3100 that can be used to track a user's viewing preferences.
The routine 3100 may be part of the preference engine 390 (FIG. 3) and may be initiated in response to the DHCT 200 (FIG. 2) providing a television service. After the routine 3100 is initiated in step 3101, the routine initiates a timer in step 3102, as provisioned by the timer 393 (FIG. 3). The timer is used to keep track of the length of time that a user is provided with a particular television service or instance. The routine 3100 then determines in step 3103 if the DHCT 200 is still providing the same service instance that it was providing at the time that the timer was last initiated. If the DHCT
200 is still providing the same service instance, then the routine 3100 determines in step 3104 if a timeline that separates tracking periods has been crossed. If a timeline has not been crossed, then the routine returns to step 3103.
If the routine 3100 determines in step 3104 that a timeline has been crossed or determines in step 3103 that the DHCT 200 is not still providing the same service instance, then in step 3106 the routine 3100 reads the timer that was initiated in step 3102.
The routine then increments a value in one or more preference tracking databases corresponding to a viewing parameter of a service instance that the DHCT 200 was providing at the time that the timer was initiated.
The value in the preference tracking database(s) may be incremented by an amount equal, proportional, or correlated to the time period reflected by the timer at the time that the timer is stopped. In one embodiment, a value in a preference tracking database is only incremented if the time period reflected by the timer exceeds a certain threshold. In another embodiment, a value in a preference tracking database is not incremented unless the DHCT 200 had received user input within a certain time window.
Requiring user input within a certain time window ensures that the preference tracking database is not incremented when the DHCT 200 is providing a television instance that no one is watching.
After the routine increments a value in a preference tracking database in step 3107, the routine determines in step 3108 if the DHCT 200 is providing a television instance. If the DHCT 200 is not providing a television instance, then the routine terminates in step 3109. If, however, the DHCT 200 is providing a television instance, then the routine 3100 returns to step 3102.
FIG. 32 is a flow chart depicting steps taken in providing a user with an IPG
in response to user input. The user input may be provided via the activation of a remote control key such as, for example, the guide key 480. After the DHCT 200 receives user input requesting an IPG, as indicated in block 3201, the IPG application 370 (FIG. 3) in step 3202 uses a preference look-up table 392 (FIG. 3) to determine which television service listings to include in an IPG. Then, in step 3203, the navigator provides the user with an IPG that contains television service listings that are in accordance with a preference look-up table 392.
As a non-limiting example, if the DHCT 200 receives user input at 8:15 p.m.
requesting an IPG, then the IPG application 370 may use the preference look-up table shown in Table 1 to determine that during the current time period the user's likely preference is sit-corn programs, and as a result provides the user with an IPG
that either only lists television services currently carrying a sit-corn program or with an IPG where the television service listings are sorted such that television services currently carrying a sit-corn program are promoted. A television service may be promoted in an IPG
by being listed ahead of other television services and/or by being more conspicuously displayed.
After a user is provided with an IPG, the user may then request to see a desired service instance by selecting it via, for example, a remote control device.
In an alternative embodiment, the IPG application 370 may take into account user preferences for the entire time period covered by IPG listings and may thus promote service listings corresponding to services that correspond to a preferred viewing parameter during any portion of such time period. For example, if the time period covered by an IPG requested by a user is 8:00 p.m. to 9:30 p.m., then the IPG
may use a look-up table to determine user preferences for 8:00 p.m. to 9:30 p.m. The IPG
may then provide the user with service listings that meet preferred viewing parameter(s) corresponding to 8:00 p.m. to 9:30 p.m. based on a preference look-up table 392 or a preference tracking database 391.
In one embodiment, a switch 490 may be used to dictate that user preferences will be used in determining which television service listings to include in an IPG.
If a user provides user input requesting an IPG when the switch 490 is in a first position (e.g., up), then the IPG application 370 would provide the user with a default IPG that does not take into account user preferences. If, however, a user provides user input requesting an IPG
when the switch 490 is in a second position (e.g., down), then the IPG
application 370 would provide the user with an IPG that takes into account user preferences.
FIG. 33 is a flow chart depicting steps taken in providing a user, in response to user input, with a television service that is different from the currently featured television service. The user input may be provided via the activation of a service navigation key such as, for example, the channel +/- key 440 (FIG. 4). After the DHCT 200 receives user input requesting a different television service, as indicated in block 3301, the navigator application 360 in step 3302 uses a preference look-up table 392 to determine which television service to provide to the user. Then, in step 3303, the navigator provides the user with a television service that is in accordance with the preference look-up table.
As a non-limiting example, if the DHCT 200 receives user input corresponding to the channel +/- key 440 at 8:15 p.m., then the navigator application 360 may use the preference look-up table shown in Table 1 to determine that during the current time period the user's likely preference is sit-com programs, and as a result may provide the user with a television service that is currently carrying a sit-corn program.
If multiple television services meet a criterion in a preference look-up table, then one of these services may be selected based on one or more additional criteria such as, for example, service number.
In one embodiment, a switch 490 may be used to dictate whether the navigator application 360 will use a preference look-up table 392 in determining which television service to provide to the user. If the DHCT 200 receives user input corresponding to the channel +/- key 440 when the switch is in a first position, then the navigator application 360 would provide the user with the next television service "up" or "down"
from the currently tuned television service. If, however, the DHCT 200 receives user input corresponding to the channel +/- key 440 when the switch is in a second position, then the navigator application 360 would provide the user with a television service based on information from a preference look-up table.
In another embodiment of the invention, steps 3302 and 3303 are implemented without the occurrence of step 3301. In this embodiment, the DHCT 200 provides a user with a television service "automatically," and not in response to a specific request for the television service. For example, after a first service instance is provided to a user, the DHCT 200 may automatically tune to a second service instance that is in accordance with a predetermined user preference.

FIG. 34 is a flow chart depicting steps taken in providing a user with a PVR
list in response to user input. The user input may be provided via the activation of a remote control key such as, for example, the PVR key 495. After the DHCT 200 receives user input requesting a PVR list, as indicated in block 3401, the PVR application 355 in step 3402 uses a preference look-up table 392 to determine which recording listings to include in a PVR list. Then, in step 3403, the navigator provides the user with a PVR
list that contains recording listings that are in accordance with the preference look-up table.
As a non-limiting example, if the DHCT 200 receives user input at 8:15 p.m.
requesting a PVR list, then the PVR application 355 may use the preference look-up table shown in Table 1 to determine that during the current time period the user's likely preference is sit-corn programs, and, as a result, provides the user with a PVR list that either only lists recordings comprising a sit-corn program or with a PVR list where the recording listings are sorted such that recordings comprising a sit-com program are promoted. A recording may be promoted in a PVR list by being listed ahead of other recordings and/or by being more conspicuously displayed. After a user is provided with a PVR list, the user may then request to see a desired recording by selecting the corresponding listing in the PVR list. The following is an example of a PVR
list that only lists recordings comprising a sit-com program:
Table 2, Example of a PVR list that only lists sit-corn recordings Title Recording Time Friends 60 minutes Will & Grace 30 Minutes Just Shoot Me 30 Minutes Cheers 30 Minutes Three Sisters 30 Minutes Frasier 30 Minutes Wings 30 Minutes Mork and Mindy 30 Minutes Benson 30 Minutes In one embodiment, a switch 490 may be used to dictate whether the PVR
application 355 will use a preference look-up table 392 in determining which recordings to include in a PVR list. If a user provides user input requesting a PVR list when the switch 490 is in a first position, then the PVR application 355 would provide the user with a PVR list that does not take into account user preferences. If, however, a user provides user input requesting a PVR list when the switch 490 is in a second position, then the PVR application 355 would provide the user with a PVR list that takes into account user preferences based on, for example, a preference look-up table 392.
FIG. 35 is a flow chart depicting a non-limiting example of steps taken by the DHCT 200 in recording a television service based on user preferences. Each of these steps 3501-3503 may be implemented by the PVR application 355, by the preference engine 390, or by some other designated application. In a preferred embodiment, steps 3501-3503 are implemented by the PVR application 355. In step 3501, the PVR
application selects one or more preferred viewing parameters that are associated with a certain time period. The preferred viewing parameters may be selected based on data from a preference tracking database 391 or from a preference look-up table 392 (FIG. 3).
In step 3502, the PVR application 355 selects a television service that corresponds to one or more preferred viewing parameter(s). In one embodiment, the PVR application selects a television service that corresponds to the greatest number of preferred viewing parameters that are associated with the certain time period. For example, if the preferred viewing parameters corresponding to an 8:00 p.m. to 8:30 p.m. time period are sit-corn (service instance type), Friends (service instance), and NBC (service), and if NBC is scheduled to be broadcasting Friends during that time period, then NBC, which is consistent with all three viewing parameters during the time period, would be selected over other television services that may be carrying Friends or some other sit-corn program during such time period. In step 3503, the PVR application records or schedules the recording of the selected television service during the certain time period.
In one embodiment, preference-related data that are used in determining user preferences are stored in DRAM 304 of the DHCT 200. Such data may include parameters associated with the customization of viewing information specified by a subscriber during a customization procedure, look-up tables that may be generated pursuant to such parameters, parameters associated with and/or supporting the execution of the preference engine 390, preference look-up tables 392, and preference tracking databases 391. In addition, some or all of this data may also be stored in either read-write non-volatile memory of DHCT 200 (e.g., flash memory 302) and/or in an application server at the headend 110 to facilitate recovery of the data during a power outage or a reboot operation. If DHCT 200 has a local storage device, either internally or externally connected via a communication port or local storage interface, it can be used to store this data rather than employing an application server at headend 110.
Regardless of where preference-related data is stored, a subset of the preference-related data may be stored in read-write non-volatile memory of DHCT 200 by configuration manager 397. The subset of preference related data may be used to determine whether configuration or preference information exists for each respective TV
control functionality and/or application in the event that DHCT 200 experiences a power outage period. The subset of preference-related data may also include an indication as to whether any configured preferences exist (which may be indicated by a single bit of non-volatile memory), and information such as a directory path or user identification for where preference-related data can be retrieved.
It should be emphasized that the above-described embodiments of the present invention, particularly any "preferred embodiments", are merely possible examples, among others, of the implementations, setting forth a clear understanding of the principles of the invention. Many modifications may be made to the above-described embodiments of the invention without departing substantially from the principles of the invention. All such modifications are intended to be included herein within the scope of the disclosure and present invention and protected by the following claims.

Claims (29)

1. A method of providing television functionality by a digital home communication terminal, comprising:
responsive to a first user input:
defining a first time period;
associating a first user preference with the time period, the user preference being represented by at least one first parameter;
storing data in memory of the digital home communication terminal associating the at least one first parameter for the first user preference and the first time period;
storing in the memory of the digital home communication terminal a determined score corresponding to frequency of use of the first parameter for the first user preference and the first time period;
the first user preference corresponds to selective enablement or disablement, during the first time period and according to the at least one first parameter, of at least one first television function selected from: recording of a television service; purchase of a television service; tuning to a TV channel; implementing a sales transaction; and presenting a list of video recordings;
and the method further comprises:
responsive to a second user input during the first time period:
accessing the data in said memory associating the first user preference and the first time period;
determining from the access data which of the first television functions are enabled during the first time period responsive to the at least one first parameter;
presenting an interactive program guide that provides information corresponding to first television functions that were selectively enabled for the first time period, and that does not provide information corresponding to first television functions that were selectively disabled for the first time period;
receiving at the digital home communication service a request for a desired first television function that is displayed in the interactive program guide for the first time period; and selectively enabling the desired first television function during the first time period.
2. The method of claim 1, wherein the first user input is received outside the first time period.
3. The method of claim 1, wherein the at least one first parameter corresponds to a type of television service.
4. The method of claim 1, wherein the at least one first parameter identifies a television service.
5. The method of claim 1, wherein the data in respect of the first time period is stored in the memory of the digital home communication terminal for a plurality of days.
6. The method of claim 1, wherein a time period is used in a recurring schedule.
7. The method of claim 6, wherein the recurring schedule comprises daily time periods.
8. The method of claim 1, wherein the at least one first parameter is selected from one or more of: a program type; a channel type; a channel identity; a television service type; a service instance; a service instance type; and a service instance rating.
9. The method of claim 1, wherein the user preference is selected by a user from a list of user preferences.
10. The method of claim 1, wherein the time period is defined by a user selected start clock-time and a user selected end clock-time.
11. The method of claim 10, wherein the user selected start time and the user selected end time are two separate selections.
12. The method of claim 1, wherein a preference database is used to keep tuck of the first user preference.
13. The method of claim 12, wherein the preference database further keeps track of a second user preference for a second time period, the second user preference represented by at least one second parameter for selective enablement or disablement, during the second time period, of at least one second television function selected from: recording of a television service;
purchase of a television service; limiting scope of information provided by an interactive program guide; tuning to a TV channel; implementing a sales transaction; and presenting a list of video recordings.
14. The method of claim 13, wherein the first and second television functions are different
15. The method of claim 13, further comprising the step of:
responsive to a third user input during the second lime period:
accessing the data in said memory associating the second user preference and the second time period;
determining firm the access data which of the second television functions are enabled during the second time period responsive to the at least one second parameter;
presenting an interactive program guide that provides information corresponding to second television functions that were selectively enabled for the second time period, and that does not provide information corresponding to second television functions that were selectively disabled for the second time period;

receiving at the digital home communication service a request for a desired second television function that is displayed in the interactive program guide for the second time; and selectively enabling the desired second television function during the second time period.
16. The method of claim 1, wherein the first television function is a recording operation.
17. The method of claim 16, wherein a first parameter of the at least one parameter corresponds to a television service and a second parameter of the at least one parameter corresponds to enabling a recording operation.
18. The method of claim 1, wherein the first television function is a purchase of a television service.
19. The method of claim 1, wherein the first television function is implementing a sales transaction.
20. The method of claim 1, wherein the first television function corresponds to a user input key.
21. A digital home communication terminal for providing television functionality characterized by:
computer program product having computer readable memory tangibly embodying computer readable code responsive to a first user input and configured to:
define a plurality of contiguous user-defined time periods including a first time period, a second time period and a third time period, the second time period being between the first and third time periods, store first data in a memory of the digital home communication terminal identifying whether a television function corresponding to a first parameter is enabled or disabled during the first time period, wherein the first parameter corresponds to at least one of a television channel characteristic, a television program characteristic, and a television service characteristic, and store in the memory of the digital home communication terminal a determined score corresponding to frequency of use of the first parameter for the first time period;
store second data in said memory, identifying whether a television function corresponding to a second parameter is enabled or disabled during the second time period, wherein the second parameter corresponds to at least one of a television channel characteristic, a television program characteristic, and a television service characteristic; and computer program product having computer readable memory tangibly embodying computer readable code responsive to a second user input during the first time period and configured to:
access the first data from the memory, determine from the first data which of the first television functions are enabled or disabled during the first time period, presenting an interactive program guide that provides information corresponding to the enabled first television functions but does not provide information corresponding to the disabled first television functions;
receiving by the digital home communication terminal a request for a desired first television function that is displayed in the interactive program guide for the first time period; and selectively enable the desired first television function to be provided during the first time period.
22. The terminal of claim 21, wherein said computer program code responsive to the second user input is further responsive to receiving by the digital home communication terminal a request for providing during the second time period a second television function corresponding to the first parameter, to access the second data from the memory, determine from the second data whether the second television function is enabled or disabled during the second time period, selectively enable the second television function to be provided during the second time period responsive to determining from the second data that the second television function is enabled, and selectively prevent the second television function from being provided responsive to determining from the second data that the second television function is disabled.
23. The terminal of claim 21, wherein the first television function comprises providing television program information.
24. The terminal of claim 21, wherein the first television function comprises recording a television service.
25. The terminal of claim 21, wherein the first television function comprises tuning to a television channel.
26. The terminal of claim 21, wherein the first and second television functions are different
27. The terminal of claim 21, wherein the first television function is disabled during the second time period and enabled during the first time period.
28. The terminal of claim 27, wherein the first television fUnction is enabled during the third time interval.
29. The terminal of claim 21, wherein the first time period is used in a recurring daily schedule.
CA2470131A 2001-12-11 2002-12-10 Time-adaptive control of television viewing functionality Expired - Fee Related CA2470131C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/015,270 US7120922B2 (en) 2001-12-11 2001-12-11 Time-adaptive control of television viewing functionality
US10/015,270 2001-12-11
PCT/US2002/039378 WO2003051054A1 (en) 2001-12-11 2002-12-10 Time-adaptive control of television viewing functionality

Publications (2)

Publication Number Publication Date
CA2470131A1 CA2470131A1 (en) 2003-06-19
CA2470131C true CA2470131C (en) 2013-08-06

Family

ID=21770472

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2470131A Expired - Fee Related CA2470131C (en) 2001-12-11 2002-12-10 Time-adaptive control of television viewing functionality

Country Status (4)

Country Link
US (3) US7120922B2 (en)
EP (1) EP1466478A4 (en)
CA (1) CA2470131C (en)
WO (1) WO2003051054A1 (en)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6323911B1 (en) * 1995-10-02 2001-11-27 Starsight Telecast, Inc. System and method for using television schedule information
AU6675098A (en) 1997-02-28 1998-09-18 Starsight Telecast Incorporated Television control interface with electronic guide
KR200200505Y1 (en) * 2000-05-17 2000-10-16 송창빈 Limiting device of electronic machinery
US20030110500A1 (en) * 2001-12-06 2003-06-12 Rodriguez Arturo A. Prediction-based adaptative control of television viewing functionality
US7120922B2 (en) * 2001-12-11 2006-10-10 Scientific-Atlanta, Inc. Time-adaptive control of television viewing functionality
US8387093B2 (en) 2002-08-23 2013-02-26 Microsoft Corporation Media recommendations based on negative feedback
PL356280A1 (en) * 2002-09-25 2004-04-05 Advanced Digital Broadcast Polska Spółka z o.o. Method of channel selection upon switching the tv set on
US7757251B2 (en) * 2003-03-18 2010-07-13 Time Warner Interactive Video Group Inc. Technique for providing program guide data through a communications network delivering programming content
DE10336731A1 (en) * 2003-08-11 2005-03-17 Siemens Ag Radio operating system and method for operating a radio system
US20050060754A1 (en) * 2003-09-17 2005-03-17 Wegener Communications, Inc. Apparatus and method for distributed control of media dissemination
JP2005094343A (en) * 2003-09-17 2005-04-07 Funai Electric Co Ltd Data recording and reproducing device
US7904924B1 (en) * 2003-10-31 2011-03-08 Microsoft Corporation Video-on-demand recommendations based on previously viewed television programs
US20050158038A1 (en) * 2004-01-20 2005-07-21 International Business Machines Corporation Lowering the quality level of a selected program
KR101002838B1 (en) * 2004-02-05 2010-12-21 엘지전자 주식회사 An image display device and method for working contents of the same
US8578420B2 (en) * 2004-05-05 2013-11-05 Ati Technologies Ulc Method and apparatus for automated display of video programming guide information
US20050273815A1 (en) * 2004-06-04 2005-12-08 Ati Technologies Inc. Method and apparatus for the display of electronic program guide information
US20050278742A1 (en) * 2004-06-09 2005-12-15 Ati Technologies, Inc. Method and apparatus for the display of a viewing events list
US20130073725A1 (en) * 2004-06-16 2013-03-21 Unwired Planet, Inc. System and method for automated content distribution
KR20070045363A (en) * 2004-09-02 2007-05-02 코닌클리케 필립스 일렉트로닉스 엔.브이. Method and appartus for building an electronic program guide based on channel profiles
KR100621583B1 (en) * 2004-09-09 2006-09-19 삼성전자주식회사 Digital broadcasting receiving device and program guide providing method using digital broadcasting receiving device
US20060117349A1 (en) * 2004-11-29 2006-06-01 Ruhl Timothy J Providing a personalized programming guide
CN101171837A (en) * 2005-03-02 2008-04-30 皇家飞利浦电子股份有限公司 System and method for limiting access to multimedia programming
JP4925604B2 (en) * 2005-05-06 2012-05-09 ソニー株式会社 Display control apparatus and method, and program
WO2006123318A2 (en) * 2005-05-20 2006-11-23 Koninklijke Philips Electronics, N.V. System and method for limiting access to multimedia programming
US7620964B2 (en) * 2005-12-26 2009-11-17 Mitsubishi Electric Corporation Recommended program search device and recommended program search method
US20070157270A1 (en) * 2005-12-28 2007-07-05 Lee Sean S Receiving apparatus using non-volatile memory and method of operating the same
US20070283409A1 (en) * 2006-06-05 2007-12-06 Robert Golden Technique for effectively providing and presenting data concerning entertainment program viewing patterns of users through a communications network
US8656431B2 (en) * 2006-07-10 2014-02-18 Mark A. Cavicchia Global interactive program guide application and device
KR101287976B1 (en) * 2006-09-11 2013-07-18 삼성전자주식회사 Method for mediating autostart of data application and video play apparatus thereof
US8897622B2 (en) 2006-11-20 2014-11-25 Comcast Cable Holdings, Llc Media recording element
US20080205846A1 (en) * 2007-02-26 2008-08-28 Lee Eric H Method and System for Presenting Information Relating to Recorded Content
US20080320520A1 (en) * 2007-06-21 2008-12-25 Beadle Edward R System and method for biometric identification using portable interface device for content presentation system
US20080320519A1 (en) * 2007-06-21 2008-12-25 Beadle Edward R System and method for networking data collection devices for content presentation systems
US8782703B2 (en) * 2007-06-21 2014-07-15 Imagine Communications Corp. System and method for picture-in-picture assisted time-adaptive surfing for a content presentation system
US9094717B2 (en) * 2007-06-21 2015-07-28 Imagine Communications Corp. System and method for creating and using a smart electronic programming guide
US8806534B2 (en) * 2007-06-21 2014-08-12 Imagine Communications Corp. System and method for creating and using a smart channel tuner list
US9319726B2 (en) * 2007-06-21 2016-04-19 Imagine Communications Corp. System and method for a passively-adaptive preferred channel list
EP2034640A1 (en) * 2007-09-07 2009-03-11 Advanced Digital Broadcast S.A. Method for scheduling content items and television system with aided content selection
US20090089251A1 (en) * 2007-10-02 2009-04-02 Michael James Johnston Multimodal interface for searching multimedia content
JP2009111863A (en) * 2007-10-31 2009-05-21 Toshiba Corp Program guide display device, program guide display method, and broadcast receiver
US9258527B2 (en) * 2007-10-31 2016-02-09 Echostar Technologies L.L.C. Handling of information generated within a receiver of a broadcast communication system
KR101474735B1 (en) * 2008-06-30 2014-12-30 삼성전자주식회사 Broadcasting receiving apparatus and operating method thereof
US9578105B2 (en) * 2008-12-17 2017-02-21 Verizon Patent And Licensing Inc. Device optimized transmission and reception for multi-mode, multi-media communications
US9113108B2 (en) * 2009-12-18 2015-08-18 Rovi Guides, Inc. Systems and methods for navigating program listings simultaneously displayed with a program in a media guidance application
US8732763B2 (en) * 2010-04-01 2014-05-20 Disney Enterprises, Inc. Navigation and discovery of video on demand content via tv schedule on handheld devices
US20120089999A1 (en) * 2010-10-12 2012-04-12 Eldon Technology Limited Metadata Origination Verification
US8533767B1 (en) * 2011-03-02 2013-09-10 The Directv Group, Inc. Method and system for prioritizing content in a delivery queue of a content delivery system
KR20150051815A (en) * 2013-11-05 2015-05-13 삼성전자주식회사 the broadcast receiving apparatus and the method for turning channel thereof
CN105096790B (en) * 2014-04-24 2018-10-09 敦泰电子有限公司 Driving circuit, driving method, display device and electronic equipment
US9942609B2 (en) * 2014-11-13 2018-04-10 Comcast Cable Communications, Llc Personalized content recommendations based on consumption periodicity
USD779527S1 (en) * 2015-04-17 2017-02-21 Layer3 TV, Inc. Display screen or portion thereof with graphical user interface
USD806103S1 (en) * 2016-05-23 2017-12-26 Netflix, Inc. Display screen or portion thereof with graphical user interface with preview window and peek row
WO2023166483A1 (en) * 2022-03-04 2023-09-07 Promethean Limited Graphical user interface generation and content delivery systems and methods

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508815A (en) * 1981-12-14 1996-04-16 Smart Vcr Limited Partnership Schedule display system for video recorder programming
US4908713A (en) * 1981-12-14 1990-03-13 Levine Michael R VCR Programmer
US4963994A (en) * 1981-12-14 1990-10-16 Levine Michael R VCR programmer
US4751578A (en) * 1985-05-28 1988-06-14 David P. Gordon System for electronically controllably viewing on a television updateable television programming information
US4706121B1 (en) * 1985-07-12 1993-12-14 Insight Telecast, Inc. Tv schedule system and process
US4977455B1 (en) * 1988-07-15 1993-04-13 System and process for vcr scheduling
US5253066C1 (en) * 1989-06-01 2001-05-22 United Video Properties Inc Tv recording and viewing control system
US5038211A (en) * 1989-07-05 1991-08-06 The Superguide Corporation Method and apparatus for transmitting and receiving television program information
US5353121A (en) * 1989-10-30 1994-10-04 Starsight Telecast, Inc. Television schedule system
US5293357A (en) * 1990-09-10 1994-03-08 The Superguide Corporation Method and apparatus for controlling a television program recording device
ES2366191T3 (en) * 1990-09-10 2011-10-18 Starsight Telecast, Inc. USER INTERFACE FOR TELEVISION PROGRAMMING SYSTEM.
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
JP3328951B2 (en) * 1992-02-07 2002-09-30 ソニー株式会社 TV receiver and tuning method
US5436653A (en) * 1992-04-30 1995-07-25 The Arbitron Company Method and system for recognition of broadcast segments
US9286294B2 (en) * 1992-12-09 2016-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content suggestion engine
US5659350A (en) * 1992-12-09 1997-08-19 Discovery Communications, Inc. Operations center for a television program packaging and delivery system
US6275268B1 (en) * 1993-09-09 2001-08-14 United Video Properties, Inc. Electronic television program guide with remote product ordering
US5541638A (en) * 1994-06-28 1996-07-30 At&T Corp. User programmable entertainment method and apparatus
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5880768A (en) * 1995-04-06 1999-03-09 Prevue Networks, Inc. Interactive program guide systems and processes
US6388714B1 (en) * 1995-10-02 2002-05-14 Starsight Telecast Inc Interactive computer system for providing television schedule information
GB9616406D0 (en) * 1996-08-05 1996-09-25 British Sky Broadcasting Ltd Improvements in receivers for television signals
US5945988A (en) * 1996-06-06 1999-08-31 Intel Corporation Method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system
AU716998B2 (en) * 1996-06-17 2000-03-16 Rovi Guides, Inc. Television schedule system with enhanced features
US6037933A (en) * 1996-11-13 2000-03-14 Samsung Electronics Co., Ltd. TV graphical user interface for providing user access to preset time periods of TV program information
US5801747A (en) * 1996-11-15 1998-09-01 Hyundai Electronics America Method and apparatus for creating a television viewer profile
US6177931B1 (en) * 1996-12-19 2001-01-23 Index Systems, Inc. Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling information
WO1998028906A2 (en) * 1996-12-20 1998-07-02 Princeton Video Image, Inc. Set top device for targeted electronic insertion of indicia into video
IL121230A (en) * 1997-07-03 2004-05-12 Nds Ltd Intelligent electronic program guide
BRPI9812104B1 (en) * 1997-07-21 2016-12-27 Guide E Inc method for navigating an interactive program guide
US6243142B1 (en) * 1997-10-17 2001-06-05 Sony Corporation Method and apparatus for displaying time and program status in an electronic program guide
US6005597A (en) * 1997-10-27 1999-12-21 Disney Enterprises, Inc. Method and apparatus for program selection
US8352984B2 (en) * 1998-06-12 2013-01-08 Thomson Licensing System and method for generating and managing user preference information for scheduled and stored television programs
JP2000013708A (en) * 1998-06-26 2000-01-14 Hitachi Ltd Program selection aiding device
US6584153B1 (en) * 1998-07-23 2003-06-24 Diva Systems Corporation Data structure and methods for providing an interactive program guide
US6732370B1 (en) * 1998-11-30 2004-05-04 Diva Systems Corporation Service provider side interactive program guide encoder
US6601238B2 (en) 1998-12-22 2003-07-29 Thomson Licensing S.A. Providing a link to programs in a program guide
US6614843B1 (en) * 1999-04-15 2003-09-02 Diva Systems Corporation Stream indexing for delivery of interactive program guide
US7950032B1 (en) 1999-12-30 2011-05-24 Thomson Licensing Ratings control system with temporary override capability
AU2001234456A1 (en) * 2000-01-13 2001-07-24 Erinmedia, Inc. Privacy compliant multiple dataset correlation system
TW516314B (en) * 2000-05-23 2003-01-01 United Video Properties Inc Interactive television application with watch lists
US7581237B1 (en) * 2000-10-30 2009-08-25 Pace Plc Method and apparatus for generating television program recommendations based on prior queries
US20020129367A1 (en) * 2001-03-02 2002-09-12 Koninklijke Philips Electronics N.V. Method and apparatus for personalized presentation of television/internet contents
US20020133821A1 (en) * 2001-03-08 2002-09-19 Koninklijke Philips Electronics N.V. Activity schedule controls personalized electronic content guide
JP4428877B2 (en) * 2001-04-03 2010-03-10 キヤノン株式会社 Display control device
US7716704B2 (en) * 2001-06-12 2010-05-11 Thomson Licensing Television program selection apparatus and method
US7055165B2 (en) * 2001-06-15 2006-05-30 Intel Corporation Method and apparatus for periodically delivering an optimal batch broadcast schedule based on distributed client feedback
US8677416B2 (en) * 2001-07-17 2014-03-18 Ati Technologies, Inc. Method, system and software for display of multiple media channels
US20030110500A1 (en) * 2001-12-06 2003-06-12 Rodriguez Arturo A. Prediction-based adaptative control of television viewing functionality
US7120922B2 (en) * 2001-12-11 2006-10-10 Scientific-Atlanta, Inc. Time-adaptive control of television viewing functionality

Also Published As

Publication number Publication date
US20030110491A1 (en) 2003-06-12
US7120922B2 (en) 2006-10-10
US20070006273A1 (en) 2007-01-04
EP1466478A4 (en) 2005-12-14
CA2470131A1 (en) 2003-06-19
WO2003051054A1 (en) 2003-06-19
US20090158351A1 (en) 2009-06-18
EP1466478A1 (en) 2004-10-13

Similar Documents

Publication Publication Date Title
CA2470131C (en) Time-adaptive control of television viewing functionality
US20030110500A1 (en) Prediction-based adaptative control of television viewing functionality
EP2070315B1 (en) Systems and methods for a modular media guidance dashboard application
US9565389B2 (en) Systems and methods for recording overlapping media content during scheduling conflicts
AU772939B2 (en) Display of television program information using dynamically-adjusted scroll rate
CA2514585C (en) Interactive television systems with digital video recording and adjustable reminders
KR100685503B1 (en) Multiple interactive electronic program guide system and methods
US20020057336A1 (en) Interactive program guide configuration system
EP2323389A1 (en) Systems and methods for creating aggregations of episodes of series programming in order
US20090158334A1 (en) Characterization of Advertisements into Selectable Subcategories
CA2780557C (en) Systems and methods for navigating program listings in a media guidance application

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20171211