`US008365221B2
`
`c12) United States Patent
`Schlarb et al.
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 8,365,221 B2
`Jan.29,2013
`
`(54) SELECTIVE SEARCH AND DISPLAY FOR
`CATEGORIZED CHANNELS IN A
`SUBSCRIBER TELEVISION SYSTEM
`
`(76)
`
`Inventors: John M. Schlarb, Alpharetta, GA (US);
`Arturo A. Rodriguez, Norcross, GA
`(US)
`
`6,005,631 A
`6,163,345 A
`6,243,145 Bl
`6,367,078 Bl*
`6,445,306 Bl *
`6,445,754 Bl
`6,760,537 B2 *
`8,321,891
`2009/0119714 Al
`
`12/1999 Anderson et al.
`12/2000 Noguchi et al.
`6/2001 Schlarb et al. ................ 348/906
`4/2002 Lasky ............................. 725/52
`9/2002 Trovato et al. ........... 340/825.24
`9/2002 Itoi
`7/2004 Mankovitz ...................... 386/83
`11/2012 Schlarb et al.
`5/2009 Schlarb et al. .................. 725/47
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 248 days.
`
`EP
`WO
`
`FOREIGN PATENT DOCUMENTS
`0 790 738 A2
`8/1997
`WO 97/49242
`12/1997
`OTHER PUBLICATIONS
`
`(21) Appl. No.: 12/351,256
`
`(22) Filed:
`
`Jan.9,2009
`
`(65)
`
`Prior Publication Data
`
`US 2009/0119713 Al
`
`May 7, 2009
`
`Related U.S. Application Data
`
`Division of application No. 09/709,167, filed on Nov.
`10, 2000, which
`is a continuation-in-part of
`application No. 09/071,602, filed on May 1, 1998, now
`Pat. No. 6,243,145.
`
`Int. Cl.
`G06F 3/00
`(2006.01)
`G06F 13/00
`(2006.01)
`H04N 5/445
`(2006.01)
`U.S. Cl. ................ 725/45; 725/40; 725/44; 725/46;
`725/47; 725/52; 725/56; 725/61
`Field of Classification Search .................... 725/40,
`725/44-47,52, 56, 61
`See application file for complete search history.
`
`References Cited
`
`(60)
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`U.S. PATENT DOCUMENTS
`5,353,121 A *
`10/1994 Young et al ..................... 725/52
`5,532,754 A *
`7/1996 Young et al ..................... 725/47
`5,585,865 A *
`12/1996 Amano et al ................... 725/14
`5,589,892 A *
`12/1996 Knee et al. ...................... 725/43
`5,619,249 A
`4/1997 Billock et al.
`5,673,089 A *
`9/ 1997 Yuen et al. ...................... 725/38
`
`U.S.
`
`U.S. Official Action mailed Jan. 7, 2009 Ill
`09/709,167.
`U.S. Official Action mailed Aug. 11, 2009 in U.S.
`09/709,167.
`U.S. Official Action mailed Jan. 22, 2010 in U.S.
`09/709,167.
`U.S. Official Action mailed Mar. 4, 2010 in U.S.
`12/351,254.
`U.S. Official Action mailed Aug. 26, 2010 in U.S.
`12/351,254, 13 pages.
`
`Appl.
`
`No.
`
`Appl.
`
`No.
`
`Appl.
`
`No.
`
`Appl.
`
`No.
`
`Appl.
`
`No.
`
`* cited by examiner
`Primary Examiner -
`Jason Salce
`(74) Attorney, Agent, or Firm - Merchant & Gould
`ABSTRACT
`(57)
`In a subscriber television system, assigning categories to a
`channel as an entity reduces the searching requirements asso(cid:173)
`ciated with searching a database of thousands of individual
`program records, identifying the channel on which an iden(cid:173)
`tified program will be displayed, and then sorting the resultant
`information. The channel information is searched for the
`assigned category information and the associated program
`information for just those channels is retrieved. This reduces
`the processor requirements for searching the thousands of
`records in the program records database. With the reduced
`processor requirements and the increased efficiency of infor(cid:173)
`mation organization for searching, a single machine state
`change is possible between viewing full screen video and a
`browse banner or between viewing full screen program infor(cid:173)
`mation and video with a browse banner.
`20 Claims, 9 Drawing Sheets
`
`CHANNEL INFO
`
`CATEGORY INFO
`
`TERMINAL
`
`120
`
`Twitter Exhibit 1042
`Twitter, Inc. v. BlackBerry Ltd.
`Page 00001
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 1 of 9
`
`US 8,365,221 B2
`
`125
`
`110
`
`130
`
`100
`
`FIG. 1
`
`TERMINAL
`
`120
`
`TERMINAL
`
`120
`
`215
`
`220
`
`TRANSMITTER
`
`CLOCK
`
`RECEIVER
`
`240
`
`205
`
`DATA
`PORT
`
`PROCESSOR 1 - - - - - - - - - - - - t i . DISPLA y
`
`235
`
`250
`
`225
`
`MEMORY
`
`COMMANDS
`
`GUIDE INFO
`- - - - -· -- - - - ·- -· -
`CHANNEL INFO
`
`CATEGORY INFO
`
`TERMINAL
`
`120
`
`FIG. 2
`
`Page 00002
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 2 of 9
`
`US 8,365,221 B2
`
`305
`
`(
`
`310
`
`305
`
`(
`
`310
`
`235
`
`235
`
`TUNED
`PROGRAM
`VIDEO
`
`CHANNEL
`INFO
`
`PROGRAM
`TIME
`
`PROGRAM
`NAME
`
`315
`
`325
`
`320
`FIG. 3
`
`6
`<l BROWSE C>
`'v
`
`330
`
`TUNED
`PROGRAM
`VIDEO
`
`52 ESPN
`
`4:00PM
`
`SPORTS
`NEWS
`
`l:,.
`<l BROWSE I>
`'v
`
`315
`
`325
`
`320
`FIG. 4
`
`330
`
`Page 00003
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 3 of 9
`
`US 8,365,221 B2
`
`305
`
`TUNED
`PROGRAM
`VIDEO
`
`( 52WPBX
`
`310
`
`4:00PM
`
`CITY COUNCIL
`MEETING
`
`b.
`<I BROWSE(>
`'iJ
`
`315
`
`320
`
`325
`
`330
`
`FIG. 5
`
`TUNED
`PROGRAM
`VIDEO
`
`(410
`
`\
`
`CATEGORY INFO
`
`CHANNEL
`INFO
`
`PROGRAM
`TIME
`
`PROGRAM
`NAME
`
`11
`<l BROWSE t>
`V
`
`FIG. 6
`
`~
`
`30 5
`
`405
`
`(
`(
`
`310
`
`Page 00004
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 4 of 9
`
`US 8,365,221 B2
`
`TUNED
`PROGRAM
`VIDEO
`
`(410
`
`\
`
`CATEGORY:ALL
`
`52 ESPN
`
`4:00PM
`
`SPORTS
`NEWS
`
`t,.
`<l BROWSE t>
`'v
`
`FIG. 7
`
`TUNED
`PROGRAM
`VIDEO
`
`(410
`
`\
`CATEGORY: SPORTS
`
`52 ESPN
`
`4:00PM
`
`SPORTS
`NEWS
`
`A
`<J BROWSE C>
`'v
`
`FIG. 8
`
`(
`
`405
`
`(
`
`310
`
`(
`(
`
`405
`
`310
`
`Page 00005
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 5 of 9
`
`US 8,365,221 B2
`
`TUNED
`PROGRAM
`VIDEO
`
`( 97 FITNESS
`
`CHANEL
`
`310
`
`4:00 PM
`
`A
`AEROBICS <l BROWSE l>
`CHAMPIONSHIP
`
`FIG. 9
`
`"
`
`420
`
`ON/
`OFF
`
`PROGRAM
`
`PAGE
`UP
`
`PAGE
`DOWN
`
`FIG. 10
`
`465
`
`0
`
`2
`
`4
`
`6
`
`8
`
`1
`
`3
`
`5
`
`7
`
`9
`
`Page 00006
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 6 of 9
`
`US 8,365,221 B2
`
`FIG. 11A
`
`RECEIVE COMMAND
`FROM RECEIVER
`
`505
`
`515
`
`PERFORM OTHER
`PROCESSING
`
`NO
`
`DRIVE OIPLA Y WITH BROWSE
`BANNER. INCLUDE CURRENT
`CHANNEL INFO .• PROGRAM
`TlME, ANO PROGRAM NAME
`
`CD
`
`,... -
`
`525
`
`RECEIVE NEXT COMMAND
`FROM RECEIVER
`
`535
`
`YES
`
`DRIVE DISPLAY TO CHANGE TIME IN
`INDICATED DIRECTION AND TO UPDATE
`PROGRAM NAME ACCORDINGLY
`
`©
`
`Page 00007
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 7 of 9
`
`US 8,365,221 B2
`
`FIG. 118
`
`565
`
`DRIVE DISPLAY TO
`SCROLL TO NEXT
`CATEGORY, WHICH
`BECOMES SELECTED
`CATEGORY
`
`DRIVE DISPLAY TO PRESENT
`CATEGORY BANNER,
`INCLUDING CURRENTLY
`SELECTED CATEGORY
`
`555
`
`550
`
`NO
`
`YES
`
`545
`
`DRIVE DISPLAY TO INCREMENT/
`DECREMENT CHANNEL INFO. AND
`PROGRAM NAME WITHIN SELECTED
`CATEGORY
`
`Page 00008
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 8 of 9
`
`US 8,365,221 B2
`
`RECEIVE COMMAND FROM RECEIVER
`
`FIG. 12
`
`605
`
`615
`
`PERFORM OTHER
`PROCESSING
`
`62
`
`PERFORM OTHER
`PROGRAMMING
`
`DRIVE DISPLAY TO LIST ALL CHANNELS
`INCWOEO IN CURRENTLY SELECTED
`CATEGORY
`
`RECEIVE NEXT COMMAND
`
`UPDATE MEMORY
`TO ADD/REMOVE
`SELECTED
`CHANNEL FROM
`CURRENT
`CATEGORY
`
`DRIVE DlSPLAY TO REMOVE SELECTED
`~EL FROM OlSPLAYED LIST
`
`DRIVE DtSPlAV TO AOO saecTED
`CHN4Na TO OISPI.AYB) LIST
`
`Page 00009
`
`
`
`U.S. Patent
`
`Jan.29,2013
`
`Sheet 9 of 9
`
`US 8,365,221 B2
`
`930
`
`Category
`Banner
`
`920
`
`Browse
`Banner
`
`910
`
`Watch
`TV
`
`Program
`Guide
`
`940
`
`FIG. 13
`
`Page 00010
`
`
`
`US 8,365,221 B2
`
`1
`SELECTIVE SEARCH AND DISPLAY FOR
`CATEGORIZED CHANNELS IN A
`SUBSCRIBER TELEVISION SYSTEM
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`The present application is a divisional of U.S. patent appli(cid:173)
`cation Ser. No. 09/709,167, Schlarb et al., entitled Method
`and Apparatus for Browsing Television Program Information
`by Categories Assigned to Channels, filed 10 Nov. 2000,
`which is a continuation-in-part ofU.S. patent application Ser.
`No. 09/071,602, Schlarb et al., entitled Method and Appara(cid:173)
`tus for Browsing Television Channel Information by Cat(cid:173)
`egory, filed 1 May 1998, both of which are incorporated
`herein by reference in their entirety.
`
`FIELD OF THE INVENTION
`
`This invention relates generally to controlling the display
`of program guide information in a subscriber television sys(cid:173)
`tem, and more specifically to organizing the program infor(cid:173)
`mation by categories assigned to the television channels.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`2
`browser displays program information in a portion of the
`display screen, while continuing to display video in the
`remainder of the display screen. With a browser a subscriber
`can linearly scan program information by time and channel
`5 while continuing to view the video of the program on the
`currently tuned channel.
`In systems that offer a relatively small number of television
`channels, the subscriber can easily scan the available pro(cid:173)
`grams one-by-one in order of channel number. However,
`many systems can provide hundreds or even thousands of
`channels. In such systems, scanning program information by
`channel number one-by-one can require hundreds or thou(cid:173)
`sands ofkeystrokes and can consume a tremendous amount of
`time. Furthermore, locating a particular channel can be quite
`difficult if the subscriber does not already know the channel
`15 number of the channel for which he or she is searching.
`Current methods of organizing the program information
`include providing, or allowing the subscriber to select, sub(cid:173)
`sets of the program information to be displayed and viewed.
`Channels can be assigned to a "Favorite" category and then
`20 only program information for the selected channels will be
`displayed. Subscribers can select to only view program infor(cid:173)
`mation for programs with a particular attribute. To provide a
`user with a listing of all of the individual programs on a
`selected channel or with a certain attribute requires searching
`25 all of the individual records in the database to find the pro(cid:173)
`gram records that contain the desired attribute. For example,
`to provide a subscriber with a listing of every program with a
`"G" rating would require searching every program record in
`the database for the "G" ratings attribute. Searching an entire
`30 program information database requires the settop terminal's
`microprocessor to execute a lot of processor cycles. This can
`produce a noticeable latency or slowed response to the sub(cid:173)
`scriber because of the number of processor cycles required to
`completely search the entire program information database,
`35 organize the results, and then display the results. In systems
`with browsers, this can have even more of an impact as the
`same processor may be processing the video and searching
`the program information database simultaneously. Searching
`a database of program records is further complicated by the
`40 fact that a program record can include a variable number of
`fields with variable sizes. Searching through variable sized
`records requires more processor cycles than searching fixed
`size records.
`Systems have been developed with a multiple modes or
`45 machine states to help control the processing cycle require(cid:173)
`ments on the processor. A machine state describes the current
`operating state of a component that is capable of functioning
`in multiple states to perform different tasks. For example, a
`menu mode is a separate machine state from a view video
`50 mode. This allows the processor to use the processor cycles
`required for searching the program information database
`without being required to simultaneously process video. The
`search results can be stored. After switching modes, the
`search results can be retrieved in the view video mode to
`55 support browsing program information while viewing video
`without requiring a simultaneous search of the program infor(cid:173)
`mation database. The menu mode still requires searching the
`entire program information database and the subscriber must
`switch between modes to select and update the sub-set of
`60 program information that they desire to view.
`What is needed is an improved way to organize and search
`program information in a subscriber television system.
`
`Subscriber television systems transmit to system subscrib-
`ers a plurality of signals, including television prograrmning
`and other services. Subscriber television systems typically
`include a headend for organizing and processing the signals
`and then transmitting the signals via a communication
`medium to subscriber equipment that tunes to television
`channels for displaying television programming to the sub(cid:173)
`scriber. The signals to the subscriber can be transmitted, for
`instance, over coaxial cables, fiber optic cables, a hybrid
`fiber-coax, or a satellite. Signals to a subscriber can be pro(cid:173)
`vided directly to a cable-ready television, a cable-ready vid(cid:173)
`eocassette recorder (VCR), or a set top terminal connected to
`a television or other display device, such as a computer.
`Many subscriber television systems provide television pro(cid:173)
`gram information describing the programs and times the pro(cid:173)
`grams will be shown. The program information is organized
`into individual program records, one for each program, and
`these records are maintained in a program information data(cid:173)
`base. The database is typically stored in the subscriber equip(cid:173)
`ment to allow the subscriber to quickly and easily access the
`program information. There is an individual record for every
`program to be shown on every channel during a specific time
`period for which the information is provided. The time period
`is based on the memory available to store the database and
`may include days or months of program information. The
`program records describe a multitude of attributes for each
`and every program. The attributes for each individual pro(cid:173)
`gram can include the program name, a description of the
`program, content rating (G, PG, R, etc.), viewing times, and
`one or more related content categories for the program ( e.g.,
`Sports, Movies, Family, etc.).
`This program information is typically organized for pre(cid:173)
`sentation purposes into a program guide format that presents
`the program information for the programs by the time when,
`and channel on which, they will be displayed. This allows the
`subscriber to scan the available programs and decide which of
`the available programs to watch. For example, a program
`guide can be scrolled through in numerical order by television
`channel, presenting the program information for the pro- 65
`grams available on each channel. Another method of viewing
`the program information is with the use of a browser. A
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram ofa subscriber television system.
`FIG. 2 is a simplified block diagram of a set top terminal.
`
`Page 00011
`
`
`
`US 8,365,221 B2
`
`3
`FIGS. 3-9 are illustrations of various browser screens that
`can be generated for display.
`FIG. 10 is a top view of a transmitter, such as a remote
`control, that can be used by a subscriber to transmit com(cid:173)
`mands to the set top terminal.
`FIG. 11 is a flowchart illustrating a method of operating a
`processor included in the set top terminal.
`FIG.12 is a flowchart illustrating a programming operation
`of the processor for adding and deleting category assign(cid:173)
`ments.
`FIG. 13 is a state diagram illustrating the machine state
`changes of the processor included in the set top terminal.
`
`DETAILED DESCRIPTION
`
`The present invention is directed to a simple and efficient
`method and apparatus for improving the way program infor(cid:173)
`mation is searched and organized in a subscriber television
`system. Assigning categories to channels provides simple
`organization of, and efficient access to, the program informa(cid:173)
`tion. Searching for program information is done on the rela(cid:173)
`tively small number of program records in the database
`related to the channel to which a chosen category has been
`assigned. This is compared to searching the huge number of
`program records for every program on every channel for
`hours, days, weeks, or months associated with current meth(cid:173)
`ods.
`Current methods assign categories to individual programs
`and in some cases allow channels to be assigned to categories.
`To display program information for a subset of the programs
`requires searching the entire database of program records for
`program records that have the desired category or attribute.
`Searching is often done in a menu text-type mode without
`video display so that the processor resources are freed from
`controlling and processing video and can be used to search the
`database in a timely manner. The menu mode methods, after
`finding and organizing the desired information, then switch
`back to a video display mode and recall the resultant search
`information from a short-term memory for display in a
`browse banner.
`The present invention's increased efficiency and reduced
`processor requirements allow the simultaneous display of
`video and the searching for and displaying of the program(cid:173)
`ming information for channels to which a desired category
`has been assigned.
`An embodiment of the present invention includes a channel
`table with one entry per channel. Each channel's entry in the
`channel table is indexed by employing the channel number.
`Each entry in the channel table provides an efficient repre(cid:173)
`sentation of one or more categories assigned to the respective 50
`channel. Tables for each individual channel category can be
`constructed in advance by searching the channel table for a
`category and storing the resulting list of related channels to
`which that category has been assigned. In addition, updating
`a channel table associated with the changing, deleting, 55
`renaming, or adding of categories assigned to a channel is
`simpler than updating an entire program record database. A
`terminal of the present invention stores and uses the table and
`associates the categories assigned to the channels to simply
`and efficiently control the searching and display of the pro- 60
`gram information. Organizing the program records of the
`program information database by channel provides additional
`searching efficiencies. For example, a first search of the chan(cid:173)
`nel table for channels that have been assigned a category and
`then searching the program records associated with the result- 65
`ant channels requires fewer processor cycles than a search of
`the thousands of program records in the entire database.
`
`5
`
`4
`In one embodiment of the present invention, the channel
`table is designed with fixed-sized entries. The entries can be
`organized with entries for adjacent channels stored contigu(cid:173)
`ously. The processor can retrieve large contiguous sections of
`the channel table, possibly the entire table. This maximizes
`the efficiency of the processor executing a search.
`In another embodiment, searching the channel information
`of the present invention, as opposed to the entire database,
`allows a single machine state transition from a machine state
`10 that functions to display full screen video to a machine state
`that includes browsing program information in a browse ban(cid:173)
`ner that is displayed with the video. A machine state describes
`the current operating state of a component that is capable of
`functioning in multiple states to perform different tasks.
`15 Other prior methods required an intermediate "Flip" state to
`allow for the searching and loading of the program records
`database between the state of viewing the full-screen video
`and the browsing state. With the simultaneous searching and
`video display of the present invention, there is no requirement
`20 to change to an intermediate machine state between a
`machine state of searching program information and a
`machine state of viewing video.
`In another embodiment, displaying a category banner is
`also invoked as a single machine state transition. A category
`25 banner can indicate the current category, display a listing of
`the categories, and allow the subscriber to select and change
`categories. With categories assigned to channels, fewer pro(cid:173)
`cessor cycles are required to perform a search for related
`program information. This enables the simultaneous display
`30 of video. In addition, switching the display from program
`information related to a first category to that related to a
`second category can be done based on searching the channel
`information, such as a channel table or a previously stored
`table of category related channels to which the second cat-
`35 egory has been assigned. The efficiency and reduced search
`requirements of the present invention allow the switching of
`categories while in a view video machine state, without
`changing to a menu mode machine state. A subscriber can
`easily select another category and view that program infor-
`40 mation without switching out of the view video mode to a
`menu mode, selecting another category, and then switching
`back to the view video mode.
`The channel table of the present invention can be used in
`conjunction with the existing methods of content searching a
`45 program record database. The search can be narrowed via the
`use of the channel table to only program records associated
`with channels to which an associated category has been
`assigned in advance. This reduces the processor resources
`required for searching. The combination would search only
`the program records associated with the channels assigned
`the associated category, not the entire program record data-
`base.
`The present invention is best understood within the context
`of a subscriber television system. Referring now to drawings
`in which like numerals represent like elements throughout the
`several figures, a subscriber television system and additional
`exemplary embodiments of the present invention will be
`described.
`FIG. 1 is a simplified block diagram of a subscriber tele(cid:173)
`vision system 100 including a headend 105 for organizing
`television signals and transmitting the signals over the system
`100. The transmitted signals can, for instance, be radio fre(cid:173)
`quency (RF) signals, although they are more preferably opti(cid:173)
`cal signals that are transmitted over a communication
`medium such as fiber optic cable 125. When optical signals
`are transmitted by the headend 105, one or more nodes 110
`may be included in the system 100 for converting the optical
`
`Page 00012
`
`
`
`US 8,365,221 B2
`
`5
`signals to RF signals that are thereafter routed over other
`media, such as coaxial cables 130. Taps 115 are provided
`within the cable system 100 for splitting the RF signal off to
`subscriber equipment, such as set top terminals 120, cable(cid:173)
`ready televisions, video cassette recorders (VCRs), or com(cid:173)
`puters.
`Referring next to FIG. 2, a simplified block diagram of the
`terminal 120 also known as a Home Communications Termi(cid:173)
`nal (HCT). Those skilled in the art will recognize that the
`simplified block diagram of FIG. 2 is a generalization of the
`elements, functions, and inner connections of a subscriber
`terminal and is used only to illustrate the present invention
`within the general concepts of a subscriber terminal. For
`example, the processor 210 of FIG. 2 could include multiple
`decoders and a central processing unit (CPU), with the CPU
`including an arithmetic logic unit (ALU), a data cache, and an
`instructions cache. The present invention functions with a
`wide variety of processor combinations and design choices
`well known to those skilled in the art. The terminal 120 is
`typically situated within the residence or business of the
`subscriber. It may be integrated into a device that has a display
`235, such as a television set, or it may be a stand-alone unit
`that couples to an external display 235, such as a display
`included in a computer or a television, and that processes
`television signals for presentation to a subscriber on the dis- 25
`play 235. The terminal 120 preferably comprises a data port
`205 for receiving the RF signals, which can include video,
`audio, and data information, from the tap 115 (FIG.1) and for
`providing any reverse information to the tap 115 for trans(cid:173)
`mission back to the headend 105. As mentioned above, the 30
`terminal 120 includes a processor 210 for controlling opera(cid:173)
`tions of the terminal 120, decoding the incoming signals, and
`for driving the display 235. The terminal 120 further includes
`a clock 215 for providing timing functions, and a tuner 225 for
`tuning into a particular television channel to be displayed. 35
`Advanced terminals may include multiple tuners. Addition(cid:173)
`ally, the terminal 120 includes a receiver 220 for receiving
`externally generated information, such as user inputs or com(cid:173)
`mands from other devices.User inputs could, for example, be
`provided via a wired or wireless controller or transmitter 240, 40
`such as buttons or keys located on the exterior of the terminal
`120, on a keyboard, or on a handheld remote control device
`that includes user-actuated buttons.
`A memory 250 coupled to the processor 210 stores opera(cid:173)
`tional parameters and executable programs, such as com(cid:173)
`mands that are recognized by the processor 210. The memory
`250 could be a single memory type, such as a non-volatile
`random access memory (NVRAM) or a random access
`memory (RAM), or combination of different memory ele(cid:173)
`ments, such as an NVRAM and a read-only memory (ROM).
`The memory 250 stores program information that can, for
`instance, be downloaded over the system 100 (FIG. 1) to the
`terminal 120. The program information includes program
`guide information that is displayed to the subscriber in the
`format of a program guide including a listing of channels,
`programs for viewing on the channels, and times during
`which the programs are shown. The program information
`includes a database of program records for each individual
`program that could be viewed during a certain time period.
`A program record is comprised of a plurality of fields, with 60
`fixed-sized fields and variable-sized fields. Fixed-sized fields
`include four-digit display time fields. The variable sized fields
`include program description fields that include a limited
`amount of text to describe a news program and a large amount
`of text to describe a movie. In addition, the number of fields in
`each program record can be different and thus the overall
`number of bytes for each record is typically different. The
`
`6
`program records includes information, such as the channel
`number, channel icons, and identification information (e.g.,
`ESPN, Disney, WXIA, etc.).
`According to an embodiment of the present invention, the
`5 program information additionally includes channel informa(cid:173)
`tion that indicates the categories assigned to the channels. By
`way of example, categories could include ALL, assigned to
`all available channels; SPORTS, assigned to sports and fit(cid:173)
`ness channels; FAMILY, assigned to channels that provide
`10 family oriented progranmiing; ADULT, assigned to channels
`providing adult programming; FOOD, assigned to channels
`that provide programs on cooking, food, and restaurants;
`LOCAL, assigned to the channels that originate in the geo(cid:173)
`graphic region of the subscriber television system 100; and
`15 any other categories that could be ofinterest to the subscriber.
`A FAVORITES category and categories that the subscriber
`names could also be provided in systems 100 that permit the
`subscriber to assign categories to subscriber selected chan(cid:173)
`nels. Furthermore, channels could have more than one cat-
`20 egory assigned to them, e.g., a channel originating in the local
`geographic region of the system 100 could be assigned the
`categories of LOCAL, SPORTS, NEWS, FAMILY, and
`ENTERTAINMENT. Channels that have several different
`types of programming on them and can be assigned multiple
`categories for the different types of programming they
`include. Multiple and more precise categories can be imple-
`mented, such as refining the SPORTS category into GOLF,
`BASEBALL, BASKETBALL, and FOOTBALL categories.
`FOOTBALL could be further refined into PROFESSIONAL
`FOOTBALL and COLLEGE FOOTBALL categories. The
`binary number representing the categories assigned to a chan(cid:173)
`nel can be adjusted to provide the number of bytes required to
`support the number of categories the system operator desig(cid:173)
`nates.
`Typically, the terminal 120 periodically downloads pro(cid:173)
`gram information through a communications or network
`interface, such as data port 205, into memory 250 from the
`headend 105 (FIG.1). The program information including at
`least programs and times by channel and channel informa(cid:173)
`tion. Other methods of delivering the program information
`can also be used, such as systems with the program informa-
`tion stored at headend 105 or the program information can be
`downloaded from a transportable data source, from a com(cid:173)
`puter network such as an Ethernet network or token ring, or
`45 from a telephone line connected to the terminal. It will be
`appreciated that the amount of this information that can be
`downloaded and the time between downloads vary according
`to the memory and storage capacity of the terminal and
`according to the system 100 requirements, such as channel
`50 bandwidth and channel line-up. When, for instance, the sub(cid:173)
`scriber television system 100 provides access to hundreds or
`thousands of cable television channels, program information,
`including the programs, times, and the categories assigned to
`each channel, may be downloaded more often than when the
`55 system 100 provides fewer channels. There may be more
`frequent downloads of portions of the information, such as
`the channel table associating the categories assigned to each
`channel to the channels. The terminal 120 can also receive
`updated program information as needed, such as when the
`cable channel lineup is changed or when the category offer(cid:173)
`ings or the categories assigned to a channel change. One of
`ordinary skill in the art will understand that various compo(cid:173)
`nents of the program information, such as user assigned cat(cid:173)
`egory information, could be stored either in the memory 250
`65 or the headend 105.
`Storage and transmission of the channel related category
`information can be accomplished in a variety of ways. By way
`
`Page 00013
`
`
`
`US 8,365,221 B2
`
`7
`of example, a channel table can be stored in memory 250 to
`minimize the amount of memory required and to facilitate
`efficient access to the categories assigned to the channels.
`Each category can be assigned a particular bit location in a
`fixed-size field comprising multiple bits, with each bit repre-
`senting a distinctive category. Each field's binary number
`represents, by a" 1" bit, the categories assigned to a respective
`channel. A byte of an n-byte category field could have cat(cid:173)
`egory assignments for the individual bits as follows:
`
`TABLE 1
`
`Cate o bitrna
`
`Bit mask (binary)
`
`Category
`
`00000001
`00000010
`00000100
`00001000
`00010000
`00100000
`01000000
`10000000
`
`Pay-per-view
`Local
`Movies
`News
`Sports
`Family
`Religious
`Mom's Channels
`
`According to the above table, a channel that has a respec(cid:173)
`tive field in the channel table represented in the memory 250
`as "10110100" would be included in the categories of
`MOM'S CHANNELS, FAMILY, SPORTS, and MOVIES. A
`channel table associating the channel numbers to their respec(cid:173)
`tive binary numbers can be stored as channel information in
`the memory 250. The processor 210 can search the channel
`table and quickly determine the channels that have been
`assigned a selected category. The processor 210 can then
`organize the results of the search and cause the display to the
`subscriber of the program information for all channels to
`which a selected category has been assigned. In systems that
`allow the user to add or delete category assignments, the
`processor 210 can easily update the channel table to reflect
`any changes. In addition, renaming a category or changing a
`category title could be accomplished by updating the category
`name in the memory 250 associated with displaying the cat(cid:173)
`egory title associated with a particular bit location. In a sys(cid:173)
`tem 100 that allows the subscriber to name or rename catego(cid:173)
`ries, the ability to change just the category title of a category
`in a channel table simplifies the requirements of providing
`this service to the subscriber without overloading the proces(cid:173)
`sor.
`In one embodiment, a single bit of the category field asso(cid:173)
`ciated with a channel is employed as a flag to track subscriber
`operations that result in the modification of the category
`assignments. System updates to the channe