DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0023] FIG. 1 is a general block diagram of a television distribution system 10 which incorporates elements for facilitating the generation and transmission of script pages, background screens and other information to a plurality of system users, and is illustrative of one type of system with which the concepts of the present invention may be employed. The television distribution system is illustrated as being a CATV system, although it will be understood that it can also be any other type of television distribution system, such as a satellite based system, for example. It should also be noted that the system 10 is illustrated in general form since many of its detailed elements are not necessary for an understanding of the present invention.
[0024] The television distribution system 10 includes a network or cable headend 12 and an RF cable television distribution network 14 for interfacing the headend 12 to a plurality of set top converter boxes or terminal devices 16 . The television distribution network 14 includes a QAM modulator 14 a , a C6U RF modulator 14 b , an on out-of-band modulator 14 c , a RF combiner 14 d and a transmitter 14 e . A plurality of transmission links 17 interconnects the set top converter boxes (set tops) 16 with the distribution network 14 . Each of the links 17 is illustrated as being bidirectional with a plurality of downstream channels 18 and one or more upstream channels 19 . However, it should be understood that the upstream channel 19 is not necessary for some embodiments of the present invention as will be discussed in greater detail later.
[0025] The cable headend 12 receives video programming from remote sources (not shown), and transmits the video programming and other information through the distribution network 14 to the set tops 16 . Typically, the video programming is received from the remote source in either an analog format, or a digitally compressed or encoded format, such as MPEG 1 or MPEG 2.
[0026] A local server 20 is located in the headend 12 which performs the necessary formatting of program guide or other information to facilitate transmission of the same to the set tops 16 . The server 20 contains a script generator 21 for generating various scripts of data known as script pages. Preferably, the script pages are generated in HTML or HTML-like format. It will be understood, however, that any scripting language such as JAVA, XML or CGI, may be utilized. The information contained in the script pages 21 can be of any type, such as program listing information, directory information identifying relationships between related script pages, Internet-based information, instructional information, etc.
[0027] The server 20 also preferably includes a background screen generator 22 for generating a background screen to be transmitted separately from the script pages. The background screen is preferably formed as a video stream to allow motion in the screen. However, it will be understood that the background screen could be a still picture as well, in which case it can be formatted in any suitable image format, such as a bit map, for example. The video stream is preferably passed to a digital encoder 23 , which may be an MPEG 1 or MPEG 2 encoder, for example, which encodes the background screen before transmission through the distribution network 14 to the set tops 16 . The encoder 23 is employed to reduce the bandwidth necessary to transmit the background screen.
[0028] The program listing or other information provided to the script generator 21 may be obtained locally from a database 24 , or from remote sources, such as through the Internet, or other communications media. In the preferred embodiment where the data concerns programming information, such data may be obtained from the local operators, from the programming sources, from third parties that provide programming information, or any combination thereof. It is preferred, however, that the programming data be obtained from a remote, central server 24 a that gathers all of the information from the various sources, and creates program listings for one or multiple headends.
[0029] The script generator 21 utilizes the received information to create the appropriate scripts, including providing tags known as packet identifiers (PIDs), which identify each script page and formats the script page such that it will properly overlay the background screen. In addition to generating script pages, the script generator 21 also creates databases and one or more data directories which track the relationship between the various script pages, as well as the means of transmission for each script page. This provides for quick retrieval of the proper script page when requested. When a viewer requests programming information, the data directories are utilized to properly configure the script pages and to determine the identification of and location of related script pages that can be accessed from a current page through activation of various function keys (e.g., PAGE UP, PAGE DOWN, SELECT, ENTER, and left, right, up and down arrows) on a keyboard or remote controller as will be discussed in greater detail later. In effect, each PID acts as a virtual channel that can be accessed by the set tops 16 as will be discussed in greater detail later. The script generator 21 thus creates a channel mapping directory that correlates each of the script pages with one of the virtual channels. In this manner, when a page is retrieved from the broadcast datastream, that page also contains all of the information pertaining to all other pages related to or referenced by that page so that these other pages can be pre-cached to facilitate rapid access. As an example, if a viewer scrolls down to the last selection on a page, and presses the down arrow key on their remote controller, this feature enables the next page of programming information to be quickly retrieved and displayed.
[0030] Preferably, the generated script pages are passed to a memory 25 where the script pages are stored so that they can be accessed and broadcast on a continual basis to the set tops 16 . To facilitate broadcast of the stored script pages, one or more carousel applications 26 are provided which access the pages and feed them to a multiplexer 27 . The multiplexer 27 multiplexes the script pages and MPEG video background screen into a sequential packetized datastream in which the data for each page is repeated in a carousel manner. The multiplexed datastream is thereby transmitted through the distribution network 14 in the PIDs of one or more digital broadcast channels. In an alternative embodiment, a second, optional multiplexer 28 is also provided which enables multiplexing of additional sources of information, e.g., digital television sources, Internet, etc., with the programming guide script pages and background screens. This arrangement makes more efficient use of the digital channel on which the programming guide script page and background screen PIDs are broadcast. In an alternative embodiment, one or more of the script pages may be downloaded to the set tops 16 in response to requests received therefrom on the upstream channels 19 so that the script pages need not be continually broadcast. However, broadcasting is preferred to minimize page request response time.
[0031] It should be understood that the foregoing script page generator architecture represents but one manner in which the present invention could be implemented, and the present invention is not limited to such an implementation. For example, as one possible alternative to the foregoing arrangement, the local server 20 can be Web based, so that the script pages containing the programming information can be accessible at a Web site on the Internet. In this arrangement, the cable headend 12 would have access to the Internet, and the script pages would preferably be accessed therefrom, and downloaded through the distribution network 14 to the set top boxes 16 , on a channel dedicated to Internet based information, for example. Thus, if a viewer is “surfing” the Internet, they can easily access the site for the programming guide.
[0032] Each of the set top boxes 16 is interfaced via a terminal processor 29 and associated communication links 30 (e.g., cables, infrared wireless links, etc.) to a television or monitor 31 , and one or more input devices, such as a wireless keyboard 32 and a remote controller 33 . Each of the input devices includes a plurality of selection keys 32 a and 33 a , respectively, for sending commands to the set top 16 and/or cable headend 12 . A receiver 34 and a transmitter 34 a are provided in the set top 16 to facilitate communication with the headend 12 .
[0033] As each set top box 16 receives the digitally encoded or compressed background screen data from the distribution network 14 , it is passed through a decoder 35 which restores the background screen to its original form for display on the television or monitor 31 . The decoder 35 is of the same format as the encoder 23 , such as MPEG 1 or MPEG 2, for example. The set top 16 also includes a memory 36 for storage of the script pages and directory or channel mapping information, as well as the background screen in the event that the background screen is not a broadcast video stream. The memory 36 may be employed to pre-cache script pages in advance of them being requested to improve response time as discussed elsewhere. The terminal processor 29 runs a script application that responds to the inputs of the viewer by accessing the appropriate PIDs and pages therein from the broadcast stream. The script application and other pertinent information is preferably downloaded from the headend 12 by the out-of-band modulator 14 c through one of the downstream channels 18 that is employed for out-of-band signaling. It should also be noted that the channel mapping or directory information can also be downloaded using the out-of-band modulator 14 c in an alternative embodiment of the invention.
[0034] Referring to FIG. 2, a sample background screen 50 for display on a television monitor is illustrated. As discussed previously, the background screen 50 is preferably an MPEG 1 or MPEG 2 video stream that is broadcast on a designated PID of a digital channel, and may contain various features, such as animation. The background screen 50 illustrated in FIG. 2 contains various areas 52 , 53 , 54 , 56 a , 56 b , 57 , 58 a , and 58 b for example, where script data may overlay the background screen 50 .
[0035] In the preferred embodiment of the present invention, the script pages transmitted through the distribution network 14 contain television programming information. As previously discussed, the television programming information provided to the script generator 21 may be provided locally, remotely or through a third party source. This programming information typically contains channel information and television programming information. The channel information preferably contains each channel's call letters, each channel's assigned number within the particular television distribution system, network affiliation, and a characterization of the channel (e.g., Sports, News, Weather, Movies etc. . . . ). The television programming information preferably contains information regarding the titles of the various programs shown on each of the available channels, the start time and run time of each program, a description of each program, ratings of the programs, advisories pertaining to the programs (e.g., Adult Language, Nudity . . . ), and whether closed captioning and the like for the program is available. It will be understood that other programming characteristics may also be provided with respect to the television programming information.
[0036] Upon receiving the television programming information, the script generator 21 processes the information to generate various script pages. In the preferred embodiment, the script generator 21 processes the programming information to generate script pages of programming information for various time intervals of each day. Preferably, the script generator 21 generates updated script pages on a periodic basis, e.g., every half hour, to save bandwidth such that the script pages cover a sliding time window to continuously provide a set amount of look-ahead time, e.g., 8 hours. Preferably, the script pages are formatted to properly overly the background screen.
[0037] The script pages may be formatted such that each script page will contain programming information only for a fixed period of time (e.g., one-half hour, or one hour). It will be understood that the script pages may be generated for any period of time, and that the present invention is not limited to displaying programming information for any particular time interval. Preferably, each script page will contain programming information for only a fixed number of television channels (e.g. 10 channels) so all of the channels and programming information contained in one script page will be displayed within the viewing area of the television monitor 31 . Because television distribution systems may provide hundreds of channels for its subscribers, the script generator 21 will generate groups of script pages containing programming information for the various channels in the same time interval. For example, if the television distribution system 10 offers 150 channels, the script generator 21 may generate 15 script pages of programming information, where each script page contains programming information for 10 channels.
[0038] FIGS. 3 - 8 are illustrations showing various examples of the types of script pages that may be displayed in the preferred embodiment. In FIG. 3, a script data page 60 containing television programming information is illustrated overlaying a background screen 62 . The script data page 60 preferably contains channel information 64 , program titles 66 , program descriptions and related information 68 (alternatively can be used for other information, such as advertising), current date and time 70 , time interval of the programming information 72 , and category of television programming 74 . The script pages are formatted by the script generator 21 so the programming information overlays the various empty spaces of the background screen 62 .
[0039] Preferably, the channel information 64 in the present invention will be listed by channel number and station call letters, but may be listed by some other channel characteristics as well. For the time interval 72 of each script, television program titles will be displayed in some logical relationship to each program's corresponding station for that time interval. As illustrated, the program titles 66 are displayed directly to the right of the associated channel information 64 .
[0040] The script page generator 21 is not limited to generating script pages based only on channel number and time. The script page generator 21 may also generate script pages for other programming characteristics such that multiple groups of script pages are generated. For example, script pages may be generated by channel characteristics, such as creating script pages for sports channels, movie channels and news channels. In addition, the script page generator may also generate script pages which contain a listing of all programs with certain characteristics that may be displayed at a given time. For example, one or more script pages may be generated which contain a listing of all movies, sports programs or music programs being shown at a given time. Examples of movie and sports category script pages 78 and 80 are shown in FIGS. 7 and 8 , respectively. Preferably, the categories include “ALL” (program listings of all available channels), “MOVIES” (program listings of all movies), “SPORTS” (program listings of all sports programs), “CHILDREN” (program listings of all children's programs) “MUSIC” (program listings of all music related programs), and “PPV” (program listings of all pay-per-view programs). It will be understood that the present invention is not limited to the categories of programs listed above, and that other categories of programs may be utilized.
[0041] A viewer may review program listings for a particular category of programming information by navigating to and highlighting the category box 74 and pressing the designated select key, as described above. By pressing the designated select key, the category and associated programming and channel information is changed. This is accomplished by obtaining the first script page for the new category for that time interval. By continuing to press the designated select key, the user may scroll through the various categories and related programming and channel information associated with the category displayed in the category box 74 .
[0042] As yet another alternative, the script pages can be individualized for each set top 16 , or for each viewer for a given set top 16 . For example, each person in a household may have a list of favorite channels for which they wish to receive script pages containing programming information dedicated to only those channels. The set top box 16 , the headend 12 or a combination of the two can contain the necessary programming to allow the individual viewers to program their own list of favorite channels so that each viewer has the option to receive programming information for only those channels if they desire.
[0043] Another method of implementing favorite channels is to store in non-volatile memory in the set top 16 user preference variables that are meaningful only to the scripts. If the scripting language allows scripts to set these variables and to affect the display images shown according to these variables, scripts could be implemented that allow the user to set up favorite channels and to display program listings for those favorite channels. The advantage of this approach relative to the typical approach of hard-coded favorite channel management within the set top 16 is the flexibility of user interface—the favorite channels user interface could be customized by the cable operator, different for kids or for senior citizens, etc.
[0044] To access programming information, a viewer presses a designated one of the key 32 a or 33 a on the input device 32 or 33 . Preferably, the designated key to activate the programming information will bear some logical relationship to the desired task, such as pressing a “G” key or a “Guide” key on the input device 32 or 33 . It will be understood that any key or combination of keys may be used to activate the programming information. Activation of the key or keys preferably causes the set top 16 to be tuned to a designated channel on which the background MPEG screen and script pages are broadcast.
[0045] Upon activation of the program guide, an initial “default” script page will be retrieved by the set top 16 and displayed. This page can of course be any desired page, such as a “best bets” page that lists recommended programming for the present or upcoming time interval, or the first page of channel lisitings for the current time interval, such as the script page 60 in FIG. 3 . When the user exits and then re-enters the program guide, this default page will once again be initially displayed. Alternatively, the last script page that was viewed during the previous program guide session can be stored in the memory 36 , and accessed upon return to the program guide by the viewer.
[0046] As discussed previously, it is also preferable that related script pages be pre-cached in the memory 36 of the set top 16 to allow the viewer to retrieve and display programming information quickly. Examples of related script pages that may be cached may include script pages containing programming information for the prior or next time interval, or for a prior or next group of channels. The script pages may be pre-cached prior to the viewer even actuating the guide key, and may be periodically updated.
[0047] Referring again to FIG. 3 , assume that upon activation of the program guide, the script page 60 for a given time period, e.g., the current or next half hour, will be retrieved and displayed as an overlay on the background screen 62 such that the script data will be displayed over the various areas of the background screen 62 . In the example shown in FIG. 3 , the current time is 3:26 p.m., and the script page 60 contains programming information for the first series of channels during the next time interval (3:30 p.m.) 72 since the current time interval is almost over, and a viewer is unlikely to desire programming information for the current time interval. It is therefore preferable that information for the next time interval be displayed once a preset amount of time in the current interval has passed. For example, this could occur after 22 minutes have passed in a 30 minute time interval. Once the program guide is activated, the script pages containing programming information for the next series of channels in the current (or next) time interval are preferably cached in the memory 36 of the set top 16 , as well as the script pages containing programming information for the next succeeding time interval (4:00) or several time intervals are also cached in the memory 36 .
[0048] When a viewer navigates through the displayed information, a single rectangular box 76 preferably highlights both the channel information and the program title so that the viewer may select the program for further information or viewing. The method of highlighting the channel information and program title may take many forms, including, but not limited to, drawing a dark or light border around the information, placing an image overlaying the information, shading the information or changing the color of the information. It also will be understood by those skilled in the art that highlighting information is not limited to a visual display, but highlighting may also include playing of audio signals or messages, or a combination of visual and audio signals or messages.
[0049] A user may navigate through a displayed script page by pressing a designated key or keys on the input device 32 or 33 . Preferably, the specific key or keys bear some logical relationship to the desired task, such as the right arrow key when pressed navigates to the information located to the right of the currently highlighted information; the left arrow key when pressed will navigate to the information located to the left of the currently highlighted information; the up arrow key will navigate to the information above the currently highlighted information; and the down arrow key will navigate to the information below the currently highlighted information. It will be understood by those of ordinary skill in the art that any key or combination of keys may be used to navigate in a certain manner.
[0050] When one of the directional keys is pressed, the highlighted rectangle 76 will highlight the information in the direction of the pressed directional key. Thus, by pressing the down arrow key on the input device 32 or 33 , the highlight 76 will move down to the next line of programming information. In the event that program description information is contained in the area 68 , the information contained in the program description area 68 will change as the user navigates from one program and channel information listing to another, so that the displayed information 68 pertains to the highlighted program.
[0051] The present invention also permits a viewer to tune to the channel that is contained in the currently highlighted area 76 . More particularly, when a viewer presses a select or enter key on the input device 32 or 33 when a program and channel information is highlighted, the tuner in the set top 16 will tune to the selected channel on which the highlighted program is broadcast. Preferably, the tuner will tune to the selected channel even though the user may be viewing programming information for a future time interval.
[0052] A user may also tune to a channel by pressing the CHANNEL UP or CHANNEL DOWN key on the input device 32 or 33 , which will deactivate the programming information and tune to the channel one channel up or one channel down, as the case may be, from the channel tuned to when the programming information was activated.
[0053] FIG. 5 shows a script page 82 in the example covering the highest channel numbers. In this example, the highlighter is on the highest channel, channel 97 . If the viewer actuated the down arrow key on their remote control, the script page 60 for the first group of channels will be recalled as illustrated in FIG. 3 , and the first channel, channel 2 , will be highlighted. Similarly, if the viewer next presses the right arrow key, a script page 84 for the next time period, in this example 4:00 PM, will be displayed as illustrated in FIG. 6 .
[0054] Although in the most preferred embodiment, the viewer actuates the arrow keys on the input device 32 or 33 to navigate to other script pages, FIG. 2 shows an alternative embodiment in which the script page contains a group of four arrows 86 , 88 , 90 and 92 which the user may navigate to by pressing the appropriate key on the input device 32 or 33 , in a similar manner as previously discussed. When the viewer navigates to one of the arrows 86 - 92 displayed on the screen and the arrow is highlighted, the viewer may obtain program listing information associated with that particular arrow by pressing the designated “Select” or “Enter” key on the input device 32 or 33 . For example, if a viewer has navigated to and highlighted the right arrow 88 on the displayed screen, pressing the designated select key will display the script page containing programming information for the next time interval. Similarly, the viewer may obtain programming information on the next series of channels within the same time interval by highlighting the down arrow 90 and pressing the designated select key. Navigating between script pages in the present invention can also be accomplished in still further ways. For example, a viewer may also view a script page containing the previous or subsequent group of channels by pressing the PAGE UP or PAGE DOWN key, respectively, on the input device 32 or 33 .
[0055] It will be understood that the scope of the invention is not limited to the embodiments described above, and that the above and numerous additional variations and modifications could me made thereto without departing from the scope of the invention as set forth in the following claims.