Abstract:
A television program selection system and method for selecting television programs for viewing or recording utilizing a guide schedule list which is received from a cable or satellite broadcaster for example, and comprises characteristics such as topic-theme, relevancy, and broadcast time data. The user can select a time period and optionally in addition a selection mode, which corresponds to one of the alternative algorithms used to sort the programs in the schedule and generate a list of suggested television programs to be displayed for the user to select a program. The default selection mode can use a conventional selection algorithm, and the optional selection mode can eliminate all programs which have any characteristics having a zero weighting.

Description:
FIELD OF THE INVENTION  
         [0001]    This invention relates to apparatus and methods for assisting in the selection of television programs for viewing.  
         BACKGROUND OF THE INVENTION  
         [0002]    As the number of available television channels increases, traditional magazine and newspaper printed schedules become more difficult to publish and to use for identifying programs which may be of interest out of the thousands being broadcast over the next few days or so.  
           [0003]    Selecting a program to watch would be difficult even if all of the programs were to be listed in the traditional magazines or newspapers by category. Various web sites also provide television schedules, program information, and search tools, but they are also difficult to use and do not allow selection based on prior viewing history and habits.  
           [0004]    Wehmeyer, et al., U.S. Pat. No. 5,867,226, disclosed a television system in which information for programs which are to be transmitted in the future is transmitted in advance to form a channel guide listing, allowing searching for specific television programs which satisfy certain criteria concerning a user&#39;s viewing preferences and upon, successful conclusion of the search, a suggested program list is generated in order to predict for the viewer certain programs which may be of interest. The Wehmeyer, et al., apparatus stores historical information about the particular television shows which the user watches and uses it as search criteria, or the search criteria is editable by the viewer to further refine the searches.  
           [0005]    According to Wehmeyer, et al., a list of predictions of television programs which the viewer might find interesting can be generated from program guide data corresponding to future programs which is broadcast combined with data corresponding to programs previously watched using the apparatus. According to Wehmeyer, et al., whenever a program is watched for a given period of time, for example, 5 minutes or more, the system keeps a record and thereby the viewing habits and preferences can be determined, which allows the system to predict which upcoming programs should be of interest to the users of the apparatus.  
           [0006]    The Wehmeyer, et al., system is designed to predict programs which may be of interest regardless as to when the programs will be broadcast. The system may suggest a list of programs scheduled for broadcast at times which may be inconvenient to the viewer. Furthermore, the Wehmeyer, et al., system does not other capabilities which allow the user to have better control of the suggest feature.  
           [0007]    In addition, one satellite TV provider in the U.S. is DIRECTV, which offers access to more than 225 channels in digital-quality picture and sound. The DirecTV system broadcasts a program schedule of over 7000 programs to be broadcast over the next  14  days. The characteristics of programs are included in the program schedule as well as during the broadcast of the programs themselves, and those characteristics are received and processed by DirecTV receiving systems at the user or viewer level. Some examples of the characteristics in the DirecTV system are currently in the format Topic_Theme as follows:  
           [0008]    Movies_Action/Adventure  
           [0009]    Movies_Comedy  
           [0010]    Movies_Drama  
           [0011]    Movies_Fantasy  
           [0012]    Sports_Baseball  
           [0013]    Sports_Basketball  
           [0014]    Sports_Boxing  
           [0015]    Interests_Animals  
           [0016]    Interests_Arts  
           [0017]    Interests_Aviation  
           [0018]    Interests_Business/Financial  
           [0019]    Lifestyles_Cooking  
           [0020]    Lifestyles_Exercise/Fitness  
           [0021]    Lifestyles_Fashion/Style  
           [0022]    News_News (currently News is a pseudo theme and not a theme)  
           [0023]    Themes_Action/Adventure  
           [0024]    Themes_Comedy  
           [0025]    Themes_Current Affair  
           [0026]    Themes_Drama  
           [0027]    Show Types_Award Ceremony  
           [0028]    Show Types_Event  
           [0029]    Show Types_Game Show  
           [0030]    Show Types_Mini-Series  
           [0031]    Show Types_Movie  
           [0032]    Age Appropriates_Children  
           [0033]    Age Appropriates_Family  
           [0034]    Age Appropriates_Adult  
           [0035]    The DirecTV system assigns Topic numbers which are used in the broadcast information and the receivers and also a relevancy number which usually is from 1 to 10 for each Topic_Theme characteristic in each program. Some programs have multiple Topic_Theme characteristics, each with possibly different associated relevancy numbers.  
           [0036]    The DirecTV receiver system can accommodate up to a predetermined number of individual users for which user profiles are stored, for example ten. The guide data used by the system may be received from a satellite television communication system. The satellite amplifies and rebroadcasts this signal to a plurality of receivers located at the residences of consumers via transponders operating at specified frequencies and having given bandwidths. Such a system includes an uplink transmitting portion (earth to satellite), an earth-orbiting satellite receiving and transmitting unit, and a downlink portion (satellite to earth) including a receiver located at the user&#39;s residence. In a such a satellite system, the information necessary to select a given television program is not fixedly-programmed into each receiver but is rather is down-loaded from the satellite continually on each transponder. The television program selection information comprises a set of data known as a Advanced Program Guide (APG), which relates television program titles, their start and end times, a virtual channel number to be displayed to the user, and information allocating virtual channels to transponder frequencies and to a position in the time-multiplexed data stream transmitted by a particular transponder. In such a system, it is not possible to tune any channel until the first APG is received from the satellite, because the receiver (IRD, or Integrated Receiver Decoder) literally does not know where any channel is located, in terms of frequency and position (i.e. data time slot) within the data stream of any transponder.  
           [0037]    An APG is preferably transmitted on all transponders with the television program video and audio data, and is repeated periodically, for example, every 2 seconds. The APG, once received, is maintained in a memory unit in the receiver, and updated periodically, for example every 30 minutes. Retention of the APG allows instantaneous television program selection because the necessary selection data are always available. If the APG were to be discarded after using it to select a television program, then a delay of at least two seconds would be incurred while a new program guide was acquired, before any further television program selections could be performed.  
           [0038]    Once the channel transponder carrying a desired television program is tuned, the data packets containing the audio and video information for that program can be selected from the data stream received from the transponder by examining the data packets for the proper SCID (Service Component Identifier) 12 bit code. If the SCID of the currently received data packet matches the SCID of the desired television program as listed in the program guide, then the data packet is routed to the proper data processing sections of the receiver. If the SCID of a particular packet does not match the SCID of the desired television program as listed in the program guide, then that data packet is discarded.  
           [0039]    The current DirecTV receiver system measures five minute viewing time periods and the relevancy factors for Topic_Themes, and increments each Topic_Theme weight counter in the user&#39;s profile by the relevancy factor corresponding to a Topic_Theme in the program being viewed. The Topic_Theme counters are incremented by the relevancy factors for each five minute time period as the period elapses or expires. The counters store [number of 5 minute periods] X [relevancy] product for each Topic_Theme combination at a Topic_Theme cell for a unique user. The resultant weights in the counters in a user&#39;s profile are used to calculate relative weights of all the programs in the program schedule when the user requests a list of suggested programs at the user interface.  
         SUMMARY OF THE INVENTION  
         [0040]    The present invention comprises in one aspect a television system for suggesting scheduled television programs to a user which receives television program schedule data comprising broadcast time and characteristics of scheduled programs; receives characteristics data for a television program being viewed by a user; stores a table of characteristic weights for a user; periodically increments characteristic weights in the table based on the characteristics data for the television program being viewed by the user; has user interface means for selecting a future time period and for requesting a list of suggested television programs scheduled to be broadcast during the future time period; and processor means for generating the list of suggested television programs by sorting the schedule according the characteristics of scheduled programs, the table of characteristics weights for the user, and any future time period selection, optionally allowing the user to select between a first mode wherein programs having a characteristic having a zero weight in the user profile can be suggested, and a second mode wherein programs having a characteristic having a zero weight in the user profile can not be suggested.  
           [0041]    In another aspect, the invention comprises a method for sorting a television program schedule to assist a user in selecting a television program for viewing or recording based on characteristics of television programs previously watched by the viewer comprising the steps of receiving a schedule of television programs to be broadcast comprising scheduled broadcast time and characteristics of the programs; maintaining a user profile which comprises characteristics weights based on programs previously watched by the user; allowing the user to select a future time period; optionally allowing the user to select between a first mode wherein programs having a characteristic having a zero weight in the user profile can be suggested, and a second mode wherein programs having a characteristic having a zero weight in the user profile can not be suggested; and generating a list of suggested television programs within any the selected future time period based on characteristics of scheduled television programs and characteristic weights in the user profile, according to any selected mode.  
           [0042]    The present invention permits the user to select a broadcast time period and/or a suggestion mode. The system will learn the viewer&#39;s viewing habits automatically if the “learning” is enabled. The suggestion program list will be generated based on any time period and any suggestion mode the user selected, combined with the viewing habits data in that user&#39;s profile. The viewing habits data in a user profile is usually the result of incrementing characteristics weight counters in a user profile at the completion of each time period the user watches a program having those characteristics. Programs are usually broadcast with characteristic relevancy data, and program schedules are also usually broadcast with characteristic relevancy data.  
           [0043]    The apparatus can “learn” the viewer&#39;s viewing habits. This process utilizes characteristic data received in the broadcast along with each program which is watched, for example, Topic_Theme and relevancy, and number of time intervals, such as five minute intervals, the program is watched by a user. The system determines viewing trends which are user specific or, if no user is identified, are apparatus specific. The characteristic data can include time period, station, Topic or Theme, length of program, rating (adult, general, PG, for example), and any other characteristic data fields which are included with either broadcasts or with the program channel guide schedule.  
           [0044]    When a broadcast time period is selected, the user may select, for example, “next two hours,” “today,” “this week,” “next three days,” “next fourteen days,” for example.  
           [0045]    The user can save time period and/or preferred characteristic selections as a default for future searches.  
           [0046]    The user can select different mode to control the behavior of the suggestion. By selecting different mode, they can control to what extent a program matches his viewing habits will be suggested.  
           [0047]    When the user requests a list of suggested programs at the user interface, the system will check the program&#39;s showing time (i.e., either the starting time or the stopping time should fall into the selected time period), apply the appropriate weighting algorithm depending on the suggestion mode the user selected, sort the programs according to their weightings, and provide a suggestion list with a preset maximum number of programs. The list can be arranged in a weighting-descending order or in a time order.  
           [0048]    These programs are displayed in any of a variety of optional formats such as a scrollable list which includes one or more icons next to each program for use in selecting by the user a suggested program for future viewing, recording, and/or storing in a separate “intend to be viewed schedule.” 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0049]    [0049]FIG. 1 is an illustration of a screen display for user entry of a broadcast time period, frequency, and default setting, in accordance with an aspect of the invention.  
         [0050]    [0050]FIG. 2 is an illustration of a screen display for mode selection in accordance with an aspect of the invention.  
         [0051]    [0051]FIG. 3 is an illustration of a screen display for Topic_Theme editing in accordance with an aspect of the invention.  
         [0052]    [0052]FIG. 4 is a flowchart useful in understanding the invention.  
         [0053]    [0053]FIG. 5 is a flowchart useful in understanding the process of evaluating programs for each of a plurality of users.  
         [0054]    [0054]FIG. 6 is an illustration in block diagram form of apparatus suitable for use with the invention.  
         [0055]    [0055]FIG. 7 is another flowchart in accordance with the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0056]    [0056]FIG. 1 shows a user interface display where the user has selected “Suggestion Time” mode by highlighting the icon  1  on a television screen display, and has selected 8:00 p.m. as the start time  2 , 11:30 p.m. as the stop time  3 , and today  4  as the frequency, and then has served this broadcast time period as a default by highlighting the save as default icon  5 .  
         [0057]    [0057]FIG. 2 shows a viewer preference display where “Suggestion Mode” is selected  6 . The first optional mode is “Suggest Only Non-Zero weighted Category/Subcategory”  7 . By selecting this mode, only programs that their Category/Subcategory have a non-zero value in the viewing habit counter will be suggested.  
         [0058]    [0058]FIG. 2 also allows selection of “Suggest All Similar Programs”  8 , in which case, a program that it&#39;s Topic_Theme has zero value in the profile&#39;s counter could also appear on the suggestion list. The weighting algorithms are different for this two modes.  
         [0059]    [0059]FIG. 3 illustrates a Category/Subcategory editing screen wherein the user can check to determine which Themes have a zero weighting in that user&#39;s profile and thereby determine which Category/Subcategory(s) are being excluded from the weighting and suggestion function when “Suggest Only Non-Zero weighted Category/Subcatagory” is selected. For example, Western  9  and others are illustrated in FIG. 3 with a zero weighting.  
         [0060]    In another aspect according to the principles of the present invention, a user may select or highlight icon  301  to reset all the selected categories or subcategories of FIG. 3 to zero. This allows a user to easily reset the weighting without having to go through the whole list, one by one. Like wise, selection or highlighting of icon  302  allows the user to quickly set all weighting factors to 100%.  
         [0061]    [0061]FIG. 4 illustrates the logic wherein the system first gets all user&#39;s profile information  11 , extracts the user&#39;s preference information and the mode and time window filters  12 , applies the time window filter for the programs  13 , calculates all programs&#39; weightings in the database using a weighting algorithm according to the selected mode  14 , and then generates the suggestion list  15 .  
         [0062]    [0062]FIG. 5 illustrates the logic wherein the system starts  17  by getting all user&#39;s weights information from the user profiles  11 , gets a first program from the database  18 , and extracts the program&#39;s topic(s), theme(s), and relevancy(s) data  19 . If successful  20 , the next logical step is to evaluate this program for this user  21 , then successively for each additional user  23  until finished  22 , and successively for all programs in the database by finding the next program  25  and repeating the extraction of topic(s), etc., until all programs are calculated  24  and the routine is done  26 . Within the evaluation steps  21  and  23  are the steps of calculating the program&#39;s weighting using the weighting formula for the first and each successive user and inserting the program into the suggestion list for each user according to the program&#39;s calculated weighting.  
         [0063]    Icons in the list of suggested programs displayed the user interface can be used to select programs for future viewing or instant viewing, in which case the selected program can be automatically tuned by the system. Alternatively, the user can choose to have the selected program automatically recorded when it is broadcast and received by the user&#39;s television system. In the latter case the programming can be automated using the time and channel data received.  
         [0064]    The list can be scrollable and may be presented in time/date order or characteristic/relevancy order. Selected programs can be added to a “Plan to View” list which may also be scrollable.  
         [0065]    In the suggestion calculation, a program&#39;s weighting is determined by the formula Wp=(Rel1*Cth1+Rel2*Cth2+. . . +Reln*Cthn)+C2*(Ct1+Ct2+. . . +Ctn) wherein:  
         [0066]    Wp is the weight for that program;  
         [0067]    Cth1, Cth2 . . . Cthn are the values in the counters in the user profile for Topic_Themes that the program belongs to;  
         [0068]    Rel1, Rel2 . . . Reln are the corresponding relevancies assigned by DirecTV for the Topic_Themes in the program, p;  
         [0069]    Ct1, Ct2. . . Ctn are the average weights for the Topics in the program;  
         [0070]    Ct1=(Cth11+Cth12+. . . +Cth1 m)/m;  
         [0071]    Cth11 is the counter value for Topic1_Theme 1, Cth12 is the counter value for Topic1_Theme2, . . . Cth1 m is the counter value for Topic1_Theme m;  
         [0072]    m is the Theme number in the first Topic;  
         [0073]    Ctn=(Cthn1+Cthn2+. . . +Cthnp)/p;  
         [0074]    Cthn1 is the counter value for Topic n_Theme 1;  
         [0075]    Cthn2 is the counter value for Topic n_Theme 2, . . .  
         [0076]    Cthnp is the counter value for Topic n_Theme p;  
         [0077]    p is the Theme number in the nth Topic;  
         [0078]    and C2=0  
         [0079]    if the user selected mode is “Suggest Only Non-Zero weighted Category/Subcategory,” and at least one of the Topic_Theme counters which program belongs to has a zero value, then Wp=0; otherwise, if all Topic_Theme counters which the program belongs to have non-zero values, then C2=0;  
         [0080]    if the user selected mode is “Suggest All Similar Programs,” C2=1.  
         [0081]    [0081]FIG. 7 illustrates the logic wherein the system applies this weighting formula to a program on the condition that the program is within the user&#39;s time window as selected at the user interface. This routine for each program starts  17  by applying the user&#39;s time window  27  and if the program is within the user&#39;s time window  28 , the user&#39;s suggestion mode determines which calculation formula is applied. If mode one is selected  29 , then the first formula  30  is calculated. If mode one is not selected, then if any counter to which the program belongs has a zero value, the the alternate program weight calculation formula  32  is applied. If mode one is not selected and if no counter to which the program belongs has a zero value  31 , then the weight for that program is set 33 to 0. Then the program is evaluated  34  for that user&#39;s suggestion list according to its weight in a weight-descending order, wherein the list is generated and the routine is completed  35 . Mode one represents “Suggest Only Non-Zero Weighted Category/Sub-category” mode.  
         [0082]    As an example of how the formula works in a specific situation, suppose in the user&#39;s profile, Movie/Comedy counter has value  50 , Movie/Drama has value  120 , and all the other Movie/XX counters have zeros, including the counter for Movie_Science Fiction. In calculating the weighting for a program “The Puppet Masters,” the system extracts Topic_Theme and relevancy information for this program, which is Movie_Science Fiction,  10 . If the user-selected mode is “Suggest Only Non-Zero Weighted Category/Sub-category,” then the weight for that program, Wp=(10*0)+0*((50+120)/16)=0. Therefore, since The Puppet Masters has a zero weighting, when the list of suggested programs is requested in this mode, this program will not appear on the suggestion list.  
         [0083]    On the other hand, if the selected mode is “Suggest All Similar Programs,” which is the default mode, then the weight for the program “The Puppet Masters” would be calculated according to the formula as follows:  
         [0084]    Wp=(10*0)+1*((50+120)/16)=10.6, so it could appear on the suggestion list because the 10.6 value of this program since the suggested program list is generated in relative Wp order starting from the highest.  
         [0085]    In another example, assuming the same user, the program “Dirty Dingus Magee” has Topic_Theme:relevancies of Movie_Comedy: 10 , Movie_Western: 5 . If Suggest Only Non-Zero Weighted Category/Sub-Category is selected, the weight for this program is zero because the counter value for Movie_Western for this user is zero. However, if the Suggest All Similar Programs mode was selected by the user, then the weight would be calculated as follows:  
         Wp=10*50+(50+120)/16=510.6,  
         [0086]    and the program would be ranked according to this weight when the suggested programs list is generated.  
         [0087]    “Predictive agent list” or “viewed item list” may be generated as a screen display. Data is automatically stored in this predictive agent list by the apparatus of the invention, whenever a program is watched for a given period of time, for example, 5 or more minutes. In this way, a record is kept of the user&#39;s viewing habits so that the apparatus can be guided to make a prediction of which upcoming shows may be of interest to the viewer. The system will generate a list of programs similar to the ones previously viewed, but only within the selected broadcast time period as selected at the user interface displayed in FIG. 1. By selecting a different suggestion mode, the user can control how similar a program to his previous viewed programs will appear on the list. The option to limit the suggestion mechanism to a particular time period has the advantage reducing the burden on the system and results in quicker processing, as well as more relevant output since a viewer does not have to sort through programs to be broadcast at undesirable times. The mode selection gives the user a way to improve the program suggestion behavior. Some people like all Movies except Movie/Horror, so he can select “Suggest Only Non-Zero weighted Category/Subcategory” mode and let the Movie/Horror be Zero, so Movie/Horror kind of movie will never appear on the suggestion list.  
         [0088]    A brief description of system hardware, suitable for implementing the above-described invention, now follows. In FIG. 6, a transmitter  400 T processes a data signal from a source  401  (e.g., a television signal source) and transmits it to a satellite  400 S which receives and rebroadcasts the signal to a receiving antenna  400 A which applies the signal to a receiver  400 R. Transmitter  400 T includes an encoder  410 T, a modulator (i.e., modulator/forward error corrector (FEC))  420 T, and an uplink unit  430 T. Encoder  410 T compresses and encodes signals from source  401  according to a predetermined standard such as MPEG. MPEG is an international standard developed by the Moving Picture Expert Group of the International Standards Organization for coded representation of moving pictures and associated audio stored on digital storage medium. An encoded signal from unit  410 T is supplied to modulator/Forward Error Corrector (FEC)  420 T, which encodes the signal with error correction data, and Quaternary Phase Shift Key (QPSK) modulates the encoded signal onto a carrier.  
         [0089]    Uplink unit  430 T transmits the compressed and encoded signal to satellite  400 S, which broadcasts the signal to a selected geographic reception area. The signal from satellite  400 S is received by an antenna dish  400 A coupled to an input of a so-called set-top receiver  400 R (i.e., an interface device situated atop a television receiver). Receiver  400 R includes a demodulator (demodulator/Forward Error Correction (FEC) decoder)  410 R to demodulate the signal and to decode the error correction data, an IR receiver  412  for receiving IR remote control commands, a microprocessor  415 R, which operates interactively with demodulator/FEC unit  410 R, and a transport unit  420 R to transport the signal to an appropriate decoder  430 R within unit  400 R depending on the content of the signal, i.e., audio or video information. An NTSC Encoder  440 R encodes the decoded signal to a format suitable for use by signal processing circuits in a standard NTSC consumer VCR  402  and standard NTSC consumer television receiver  403 . Microprocessor (or microcontroller, or microcomputer)  415 R receives infrared (IR) control signals from remote control unit  450 R, and sends control information to VCR  402  via an IR link  418 R. Microprocessor  415 R also generates the on-screen display (OSD) signals needed for presenting the interactive sentence, or confirmation sentence, to the user. Microprocessor  415 R also receives and interprets cursor key X and Y information in order to control the highlighting of user choices in the on-screen displays.  
         [0090]    Although the invention was described with reference to a satellite television system, it is equally applicable to ground based television broadcast systems, both digital and analog or other video processing device having access to a program guide or the like. It is also applicable to other systems of assigning characteristics to television programs rather than the illustrated Topic_Theme system currently being used by DirecTV. Furthermore, the counter weight system could be different than the illustrated embodiment, as well as the formula used to calculate weights, Wp, for the programs in the program guide schedule.