United States Patent5687331
Volk , ; et al.November 11, 1997

Title

Method and system for displaying an animated focus item

Abstract

A viewer interface is disclosed for use in an interactive television network operative for providing an animated focus item in association with a control item to indicate that the control item is in a state responsive to commands from a user input device. An "animation" is any form of highlighting that is non-static, including but not limited to flashing, varying illumination, varying size, varying shape, varying position, varying color, varying display components, a moving and/or changing cartoon type image, a video image, a sound track, or a combination of these elements. Selection of the control item to receive focus and selection of options presented by control items having focus are accomplished by viewer interaction with the remote control unit, and such selections do not require a keyboard or mouse to indicate the viewer's desire to change the focus from one control item to another or to select an option. The user interface is also suitable for use in a general computing environment as well as in an interactive television environment.


Inventors:Volk; Patrick M. (Kirkland, WA), Robin; Michael Breed  (Redmond, WA), Thorne, III; Edwin  (Seattle, WA), Kapell; JoGene  (Bellevue, WA)
Assignee:Microsoft Corporation (Redmond, WA)
Appl. No.:510965
Filed:August 3, 1995

Current U.S. Class:715/840 715/861 715/962 715/977 715/823 
Field of Search:395/159,333,334,339,349,327,977,962

U.S. Patent Documents
5479602December 1995Baecker et al.
5491795February 1996Beaudet et al.
5524195June 1996Clanton, III et al.
5555496September 1996Tackbary et al.
5564004October 1996Grossman et al.
Primary Examiner: Bayerl; Raymond J.
Assistant Examiner: Katbab; A.
Attorney, Agent or Firm:Jones & Askew, LLP

Claims


What is claimed is:
1. In a computer system including a memory, a display screen, and a user input device, a method for communicating to a user that a control item displayed on the display screen is in a state responsive to signals from said user input device, comprising the steps of:
displaying a first control item on the display screen;
determining that the first control item is to have the focus;
displaying a first focus item on the display screen in association with the first control item;
displaying a second control item on the display screen:
receiving a command to change the focus to the second control item;
determining a path on the display screen from the first control item to the second control item;
discontinuing the display of the first focus item in association with the first control item;
generating a transitory focus item for display along the path;
displaying the transitory focus item on the display screen moving along the path from the first control item to the second control item;
discontinuing the display of the transitory focus item; and
displaying a second focus item on the display screen in association with the second control item.

2. The method of claim 1, wherein the step of displaying the first focus item further comprises animating the focus item.

3. The method of claim 1, further comprising the step of emitting a sound in association with the display of the first focus item on the display screen.

4. The method of claim 1, wherein the step of displaying the first focus item comprises altering the appearance of the first control item.

5. The method of claim 1, wherein the step of displaying the first focus item comprises displaying an image within the area defined by the boundaries of the first control item.

6. The method of claim 1, wherein the step of displaying the first focus item comprises displaying an image in an area of the display screen adjacent to the area in which the first control item is displayed.

7. The method of claim 1, wherein the step of displaying the first focus item comprises displaying an image partially in the area defined by the boundaries of the first control item and partially outside the area defined by the boundaries of the first control item.

8. The method of claim 1, wherein the transitory focus item is animated.

9. The method of claim 1, further comprising the step of emitting a sound in association with the display of the transitory focus item on the display screen.

10. The method of claim 1, wherein the command is a signal from the user input device caused by the action of the user.

11. The method of claim 10, wherein the step of receiving a user command comprises the steps of:
displaying a cursor on the display screen;
manipulating the position of the cursor on the display screen in response to a signal from the user input device caused by the action of the user;
comparing the position of the second control item on the display screen and the position of the cursor on the display screen; and
determining whether the cursor is in a focus zone associated with the second control item.

12. The method of claim 11, further comprising the step of determining whether the second control item is enabled for receiving focus.

13. The method of claim 1, further comprising the steps of:
calling an interface supported by a control object associated with said first control item, and
specifying parameters utilized by the control object to cause the control object to provide configuration defining information relating to the first control item.

14. The method of claim 13, wherein the configuration defining information includes the size and shape of the first control item on the display screen.

15. The method of claim 13, wherein the configuration defining information includes the location of the first control item on the display screen.

16. The method of claim 13, wherein the configuration defining information includes information identifying an animation to be displayed in association with the first control item.

17. The method of claim 13, wherein the configuration defining information includes information indicating that the transitory focus item should be displayed.

18. The method of claim 13, wherein the second control item is a manifestation of at least one control object operative for receiving commands and causing the second control item to be displayed on the display screen in response to a predefined command.

19. A computer system operative for communicating to a user that a control item is in a state responsive to user commands, comprising:
a user input device for providing said user commands;
a memory;
a display screen for displaying said control item; and
a processing unit operative for:
determining that the first control item is to have the focus;
displaying a first focus item on the display screen in association with the first control item;
displaying a second control item on the display screen;
receiving a command to change the focus to the second control item;
determining a path on the display screen from the first control item to the second control item;
discontinuing the display of the first focus item in association with the first control item;
generating a transitory focus item for display along the path;
displaying the transitory focus item on the display screen moving along the path from the first control item to the second control item;
discontinuing the display of the transitory focus item; and
displaying a second focus item on the display screen in association with the second control item.

20. The system of claim 19, wherein the first focus item is non static.

21. The system of claim 19, wherein said processing unit is further operative for emitting a sound in association with the display of the first focus item on said display screen.

22. The system of claim 19, wherein said processing unit is further operative for altering the appearance of the first control item in connection with displaying the first focus item.

23. The system of claim 19, wherein the first focus item comprises an image displayed within an area defined by the boundaries of the first control item.

24. The system of claim 19, wherein the first focus item comprises an image displayed in an area of the display screen adjacent to the area in which the first control item is displayed.

25. The system of claim 19, wherein the first focus item comprises an image partially in the area defined by the boundaries of the first control item and partially outside the area defined by the boundaries of the first control item.

26. The system of claim 19, wherein said transitory focus item is non static.

27. The system of claim 19, wherein said processing unit is further operative for emitting a sound in association with the display of said transitory focus item on said display screen.

28. The system of claim 19, wherein said command is a signal from said user input device caused by the action of the user.

29. The system of claim 28, wherein said processing unit is further operative for:
displaying a cursor on said display screen;
manipulating the position of the cursor on said display screen in response to a signal from said user input device caused by the action of the user;
comparing the position of said second control item on said display screen and the position of the cursor on said display screen; and
determining whether the cursor is in a focus zone associated with said second control item.

30. The system of claim 29, wherein said processing unit is further operative for determining whether said second control item is enabled for receiving focus.

31. The system of claim 19, wherein said processing unit is further operative for:
calling an interface supported by a control object associated with said first control item, and
specifying parameters utilized by said control object to cause said control object to provide configuration defining information relating to the first control item.

32. The system of claim 31, wherein said configuration defining information includes the size and shape of the first control item on said display screen.

33. The system of claim 31, wherein said configuration defining information includes the location of the first control item on the display screen.

34. The system of claim 31, wherein said configuration defining information includes information identifying an animation to be displayed in association with the first control item.

35. The system of claim 31, wherein said configuration defining information includes information indicating that the transitory focus item should be displayed.

36. The system of claim 31, wherein the second control item is a manifestation of at least one control object operative for receiving commands and causing the second control item to be displayed on said display screen in response to a predefined command.

37. In an interactive television system for bi-directional communication including a headend system, a memory, a display screen, and a user input device, a method for communicating to a user that a control item is in a state responsive to signals from the user input device for causing a communication to be transmitted from a user to the headend system and for manipulating the state of the control item, comprising the steps of:
displaying on the display screen a television program transmitted by the headend system;
displaying on the display screen a control item having a configuration;
receiving from the headend system configuration defining information relating to the television program;
generating a focus item that has a configuration based on the configuration of the control item and on the configuration defining information relating to the television program; and
displaying the focus item on the display screen simultaneously and in association with the control item.

38. The method of claim 37, wherein the focus item is non static.

39. The method of claim 37, further comprising the step of emitting a sound in association with the display of the focus item on the display screen.

40. The method of claim 37, wherein the step of displaying the focus item comprises altering the appearance of the control item.

41. The method of claim 37, wherein the step of displaying the focus item comprises displaying an image within the area defined by the boundaries of the control item.

42. The method of claim 37, wherein the step of displaying the focus item comprises displaying an image in an area of the display screen adjacent to the area in which the control item is displayed.

43. The method of claim 37, wherein the step of displaying the focus item comprises displaying an image partially in the area defined by the boundaries of the control item and partially outside the area defined by the boundaries of the control item.

44. The method of claim 37, wherein the control item is a first control item and the focus item is a first focus item, and further comprising the steps of:
displaying on the display screen a second control item transmitted by the headend system;
receiving a command;
in response to the command:
discontinuing the display of the first focus item in association with the first control item;
determining that the second control item should receive focus;
generating a second focus item that has a configuration based on the configuration defining information relating to the television; and
displaying the second focus item on the display screen in association with the second control item.

45. The method of 44, further comprising the steps of:
determining a path on the display screen from the first control item to the second control item;
generating a transitory focus item for display along the path; and
displaying the transitory focus item on the display screen.

46. The method of claim 45, wherein the transitory focus item is non static and has a configuration based on the configuration defining information relating to the television program.

47. The method of claim 45, further comprising the step of emitting a sound in association with the display of the transitory focus item on the display screen.

48. The method of claim 44, wherein the command is a directional command from the user input device caused by the action of the user.

49. The method of claim 48, wherein the step of receiving a directional command comprises the steps of:
displaying a cursor on the display screen;
manipulating the position of the cursor on the display screen in response to a signal from the user input device caused by the action of the user;
comparing the position of the second control item on the display screen and the position of the cursor on the display screen; and
determining whether the cursor is in a focus zone associated with the second control item.

50. The method of claim 49, further comprising the step of determining whether the second control item is enabled for receiving focus.

51. The method of claim 44 further comprising the steps of:
calling an interface supported by a control object associated with the control item, and
specifying parameters utilized by the control object to cause the control object to provide control item defining information relating to attributes of the control item.

52. The method of claim 44, wherein the control item defining information includes the size and shape of the control item on the display screen.

53. The method of claim 44, wherein the control item defining information includes the location of the control item on the display screen.

54. The method of claim 44, wherein the control item defining information includes information identifying an animation to be displayed in association with the control item.

55. The method of claim 44, wherein the control item defining information includes information indicating that a transitory focus item should be displayed.

56. The method of claim 44, wherein the control item is a manifestation of at least one control object operative for receiving commands and causing the control item to be displayed on the display screen in response to a predefined command.

57. The method of claim 37, further comprising the step of:
receiving a signal from the user input device caused by the action of the user; and
in response to the signal, transmitting a message associated with the control item to the headend system.

58. The method of claim 57, wherein the focus item is non static.

59. The method of claim 57, further comprising the step of emitting a sound in association with the display of the focus item on the display screen.

60. The method of claim 57, wherein the step of displaying the focus item comprises altering the appearance of the control item.

61. The method of claim 57, wherein the step of displaying the focus item comprises displaying an image within the area defined by the boundaries of the control item.

62. The method of claim 57, wherein the step of displaying the focus item comprises displaying an image in an area of the display screen adjacent to the area in which the control item is displayed.

63. The method of claim 57, wherein the step of displaying the focus item comprises displaying an image partially in the area defined by the boundaries of the control item and partially outside the area defined by the boundaries of the control item.

64. The method of claim 57, wherein the control item is a first control item and the focus item is a first focus item, and further comprising the steps of:
displaying on the display screen a second control item transmitted by the headend system;
receiving a command;
in response to the command:
discontinuing the display of the first focus item in association with the first control item;
determining that the second control item should receive focus;
generating a second focus item that has a configuration based on the configuration defining information relating to the television; and
displaying the second focus item on the display screen in association with the second control item.

65. The method of 64, further comprising the steps of:
determining a path on the display screen from the first control item to the second control item;
generating a transitory focus item for display along the path; and
displaying the transitory focus item on the display screen.

66. The method of claim 65, wherein the transitory focus item is non static.

67. The method of claim 65, further comprising the step of emitting a sound in association with the display of the transitory focus item on the display screen.

68. The method of claim 64, wherein the command is a directional command from the user input device caused by the action of the user.

69. The method of claim 68, wherein the step of receiving a directional command comprises the steps of:
displaying a cursor on the display screen;
manipulating the position of the cursor on the display screen in response to a signal from the user input device caused by the action of the user;
comparing the position of the second control item on the display screen and the position of the cursor on the display screen; and
determining whether the cursor is in a focus zone associated with the second control item.

70. The method of claim 69, further comprising the step of determining whether the second control item is enabled for receiving focus.

71. The method of claim 64 further comprising the steps of:
calling an interface supported by a control object associated with the control item, and
specifying parameters utilized by the control object to cause the control object to provide control item defining information relating to attributes of the control item.

72. The method of claim 64, wherein the control item defining information includes the size and shape of the control item on the display screen.

73. The method of claim 64, wherein the control item defining information includes the location of the control item on the display screen.

74. The method of claim 64, wherein the control item defining information includes information identifying an animation to be displayed in association with the control item.

75. The method of claim 64, wherein the c control item defining information includes information indicating that a transitory focus item should be displayed.

76. The method of claim 64, wherein the control item is a manifestation of at least one control object operative for receiving commands and causing the control item to be displayed on the display screen in response to a predefined command.

77. In an interactive television system for bi-directional communication including a headend system, a memory, a display screen, and a user input device, a method for communicating to a user that a control item is in a state responsive to signals from the user input device for causing a communication to be transmitted from a user to the headend system and for manipulating the state of the control item, comprising the steps of:
displaying on the display screen a television program transmitted by the headend system;
displaying on the display screen first and second control items, each having a configuration;
receiving from the headend system configuration defining information relating to the television program;
generating a first focus item with a configuration based on the configuration of the first control item and on the configuration defining information relating to the television program;
displaying on the display screen the first focus item simultaneously and in association with the first control item;
displaying on the display screen at least one cursor under the control of the user via the user input device;
manipulating the position of the cursor on the display screen in response a signal from the user input device caused by the action of the user;
in response to a predetermined relation between the position of the second control item on the display screen and the position of the cursor on the display screen:
discontinuing the display of the first focus item;
generating a second focus item with a configuration based on the configuration of the second control item and on the configuration defining information relating to the television program; and
displaying on the display screen the second focus item simultaneously and in association with the second control item.

Description

TECHNICAL FIELD

The present invention relates to a graphical viewer interface for an interactive medium of communication. More particularly, the present invention relates to a method in an interactive television system for using animation to indicate that a particular control item among a plurality of control items displayed on a graphical viewer interface is currently in a state responsive to commands from a user input device.

BACKGROUND OF THE INVENTION

Cable television systems, sometimes referred to as community-antenna television (CATV) systems, are broadband communications networks of coaxial cable and optical fiber that distribute video, audio, and data signals to the homes or businesses of subscribers. In a typical CATV system, a single advantageously located antenna array feeding a cable network supplies each individual subscriber with a usable television signal.

CATV networks have experienced enormous growth and expansion in the United States, particularly in urban areas. It is estimated that CATV networks currently pass near and are accessible to approximately 90% of the population in the United States, with approximately 60-65% of all households actually being connected to such communications networks. While cable systems originally had very simple architectures and provided a limited number of different television signals, the increase in the number of television broadcasters, owners, and services over the last several decades has resulted in much more complex modern cable distribution systems.

A typical CATV system for the delivery of television programming to subscribers comprises three main elements: a headend, a distribution system, and subscriber drops.

The "headend" is a signal reception and processing center that collects, organizes, and distributes signals. The headend receives satellite-delivered video and audio programming, over-the-air broadcast television station signals, and network feeds delivered by terrestrial microwave and other communication systems. In addition, headends may inject local broadcast programming into the package of signals sent to subscribers, such as commercials and live programs created in a television studio.

The "distribution system" carries the signals from the headend to a number of distribution points in a community and, in turn, distributes these signals to individual neighborhoods for delivery to subscribers. A modern distribution system typically comprises a combination of coaxial cable and optical fibers, with trunk amplifiers periodically spaced to compensate for attenuation of the signals along the line.

"Subscriber drops" are taps in the distribution system that feed individual coaxial cable lines into subscribers' television sets or subscriber set-top terminals, often referred to as "subscriber premises equipment" or "customer premises equipment" ("CPE").

CATV distribution systems were originally designed to distribute television signals in the "downstream" direction only, i.e., from a central headend location to multiple subscriber locations, also referred to as the "forward" path. For downstream transmissions, typical CATV systems provide a series of video channels, each 6 MHz in bandwidth, which are frequency division multiplexed across the forward band, in the 50 MHz to 550 MHz region of the frequency spectrum. As optical fiber more deeply penetrates the service areas with hybrid optical fiber/coaxial cable (HFC) configurations, the bandwidth of the coaxial cable portion is expected to increase to over 1 GHz, thereby increasing the number of available channels for potential services.

The advent of pay-per-view services and other interactive television applications has fueled the development of bi-directional or "two-way" cable systems that also provide for the transmission of signals from the subscriber locations back to the headend via an "upstream" direction or a "reverse" path. By upgrading CATV systems employing relatively limited bandwidth coaxial cable with broadband distribution networks having HFC configurations, multiple service operators (MSOs) can use the additional channels gained by this wider bandwidth network to provide many new subscriber services. This ever-expanding deployment of fiber optic technology supports the implementation of an "interactive network" to allow a subscriber to obtain desired services or programming at a time and date specified by the subscriber. Indeed, it is feasible that this interactive network will have sufficient bandwidth to supply hundreds of channels of programming information, thereby leading to an explosion of program options available to subscribers. Potential subscriber services supported by this interactive network include Movies on Demand (MOD) or Video on Demand (VOD), interactive computing, shopping, entertainment, and other related services.

The delivery of a variety of interactive services via a broadband network distribution system raises the critical issue of defining an efficient mechanism for presenting both operation and program-related information to an audience of possible consumers representing diverse technological backgrounds and interests. From an ergonomic perspective, this "viewer interface" for such an interactive network should appeal to a "typical" viewer of standard broadcast television programs and should be easy for this imagined person to understand and to use. Because computer users reflect only a portion of the overall audience for interactive services, it is desirable that the features of this viewer interface be based upon the assumption that the typical viewer is not familiar with user interface customs that are otherwise acceptable and understood by the computer literate community. In addition, the functions of the viewer interface should be controllable with a control device familiar to this typical television viewer, such as a handheld remote control. This viewer interface also should be readily readable from an acceptable viewing distance that typically separates the viewer from a television screen.

The typical television viewer is accustomed to viewing sophisticated graphics within broadcast programs that are produced with complex and expensive production equipment. It is desirable for the viewer interface of an interactive television network to support similar graphical features, including visual objects having a 3-dimensional appearance, image transition effects such as wipes, dissolves, and tumbles, and a variety of colors and fonts. This viewer interface also preferably supports active animation of displayed objects to entertain the viewer and to focus the viewer's attention upon a particular interface object for controlling a service or feature. The viewer interface also should be sufficiently flexible in appearance to allow a service provider to design and implement objects having unique appearances for different applications, thereby permitting a viewer to distinguish these applications.

From a technical perspective, the delivery of video signals for presentation by a conventional television screen is limited by the display screen variations in the numerous models of televisions and the limitations inherent in the National Television Systems Committee (NTSC) standards for formatting video signals. The NTSC has established title and video safety standards to define a space within the television screen for readable text and images. The area of the television screen that is considered to support the most reliable presentation of text or title information, which is known as the "safe title" area, is approximately the center 80% of the horizontal and vertical space of a television screen. Likewise, the area of the television screen that is considered to support the most reliable presentation of moving images, which is known as the "safe action" area, is approximately the center 90% of the horizontal and vertical space of a television screen.

Because these NTSC standards suggest that the video performance of even modern televisions suffers from horizontal and vertical drift problems, the viewer interface for an interactive television network should support the video safety standards to ensure that objects intended for display are actually fully presented to the viewer. However, it will be appreciated that this implementation also effectively reduces "usable screen space" or display resolution for the user interface. This is dramatically different from the computer environment where the entire screen of a computer monitor can predictably be used to present static and dynamic objects to a user.

The design of the viewer interface for an interactive television network also must consider the well known phenomenon of "flicker" arising from the scanning of vertical and horizontal scan lines in a television screen. It would be desirable for the items displayed on a viewer interface for the interactive television network to be drawn with lines having a pixel width of more than one pixel to reduce flicker and to support a more readable presentation of the displayed items.

Unlike traditional television which is a unidirectional broadcast transmission medium, interactive television is a bidirectional communication medium. Interactive television combines traditional television technology with traditional computer technology and introduces new material specific to the interactive television environment. Interactive television may superimpose upon a traditional television display a number of "control items" that present selectable options to the viewer. Selection and subsequent execution of a control item by a viewer may cause an "action command" to be transmitted from the viewer to the headend. For example, a viewer may order goods, select programming, or respond to an interactive program through execution of control items.

Viewers of interactive television systems may be of varying degrees of sophistication. In particular, some viewers may have little or no computer background and may be unfamiliar with traditional computer graphical user interfaces. Therefore, in order to be effective, a graphical viewer interface for an interactive television system must be capable of communicating useful information to a viewer who is otherwise unfamiliar with computer protocols or the interactive television system itself. Typically, a viewer may be sitting several feet or even several yards away from the television screen and will have only a remote control for communicating with the interactive television system. The remote control may have significantly less communication capability than a traditional keyboard and mouse system used on conventional computer systems. Therefore, a graphical viewer interface for an interactive television system must provide a relatively simple, easy to read display within the capabilities of NTSC display devices, and a highly effective means of communicating control information to the viewer. Basically, an average viewer with minimal computer skills should be able to view the interactive television screen and understand from the information presented thereon how to use the system.

Graphical user interface systems for conventional computer systems have been in wide spread use for several years. Conventional graphical user interface systems utilize a variety of visual devices to display selectable options and executable commands to the user. For example, button displays such as "open" and "close" are in wide use, as are icons for selecting and initiating application programs. A user typically navigates a cursor on a screen display using a keyboard or a mouse, and selects a control item by placing the cursor in the same area on the screen as the control item, and then entering a predefined command such as a keyboard stroke or click of a mouse button. In many conventional systems, a "single click" of the mouse button selects a control item or menu item. A selected button is often indicated by placing a highlighting ring around the perimeter of the selected item, or changing the display of the item itself. When selected, a control item is in a state responsive to commands from the user input device. For example, the function associated with a selected item will typically be executed if a subsequent command is entered, typically a "double click" of the mouse button.

A selected control item responsive to input is said to have the "focus." As noted, the display of a control item that has the focus is typically altered, for example by highlighting the display of the item or surrounding the selected control item by a border to indicate to the viewer that the selected control item has the focus. Thus, the viewer can tell by looking at the display which one control item among a plurality of control items displayed on the screen has the focus.

For example, on a traditional computer with several applications running simultaneously, each application may appear as a frame with the selected frame in the foreground and the unselected frames in the background. In this context, the frame in the foreground has the focus and is capable of receiving input from the keyboard or mouse. Using a typical mouse system as an example, a user may point to an exposed portion of a background frame and click the mouse button once causing the background frame to move into the foreground and become the application with the focus. In this context, the focus is indicated by placing the application with the focus in the foreground, placing all non focused objects in the background, and typically displaying the background applications in a muted format.

A somewhat different method of indicating the focus is typically used when the user is selecting among icons in a traditional computer environment. When a user places the cursor over a particular icon and single-clicks the mouse button, the view of the icon usually changes indicating that the particular icon has the focus. A user may then double click or depress the "enter" key in order to invoke the application associated with the icon. In this context, the focus is usually indicated by changing the view of the icon with the focus.

Thus, in one conventional computer embodiment, the user must take some action, such as single-clicking the mouse button, in addition to navigating the pointer or cursor in order to change the focus. In another conventional computer embodiment, the focus automatically follows the cursor without the user having to enter a command such as a single click. In this embodiment, the focus automatically follows the cursor, moving among control items in response to relocation of the cursor.

Graphical user interface systems for traditional computer systems have a number of shortcomings when considered in the context of an interactive television system graphical viewer interface. In a traditional computer environment, the entire screen is available for providing information to the user, whereas there is a limited portion of the screen that can be used in an interactive television environment. In addition, the user of a traditional computer usually sits very close to the screen, perhaps only a foot or two away, and therefore can read relatively small print on the computer screen. By contrast, viewers in an interactive television environment may sit much further away, perhaps several feet or yards. Moreover, users of traditional computer systems are typically computer literate and willing to resort to a user manual to gain more information on how to use the system. Interactive television viewers, on the other hand, may be much less sophisticated in the use of computer systems and far less likely to resort to the use of a manual to determine how to use the system.

Therefore, a viewer of an interactive television system may require more explicit indications of a prompt and more explicit indications of how to respond. Accordingly, the meaning of control items displayed on the screen in an interactive television environment must be patently clear to the viewer based on the appearance of the control items alone.

To accommodate the needs of an interactive television system, it would be advantageous if a graphical viewer interface for an interactive television system embodied an improved means for conveying basic control related information to the viewer. In particular, it would be advantageous in an interactive television environment to have a more visible and more easily understood method for indicating the focus.

There are a number of other shortcomings associated with traditional computer graphical user interface techniques for controlling and displaying the focus in the context of an interactive television environment. First, a keyboard or mouse is typically required to navigate the cursor and perform the single-click and double-click functions necessary to change the focus and invoke items with the focus in traditional computer graphical user interface systems. In an interactive television environment, the viewer will typically not have a mouse or keyboard but will only have a remote control unit which typically will support only a limited set of commands, such as a directional navigation thumbpad and an action key. Therefore, the single-click method of indicating a viewer's desire to change the focus will typically not be available in an interactive television environment.

Second, the methods of indicating which control item has the focus in a traditional computer environment may be insufficiently communicative in an interactive television environment. Simply bringing items from the background to the foreground, or using a focus ring or illumination, may not be sufficient to impart focus related information to the viewer of an interactive television system where the background may appear very busy, which may be the case when a movie, television program, or video game is playing.

Third, programmers of applications running on traditional computer systems do not have a particularly strong motivation to attract a user's attention to a particular control item. In comparison, focus items in an interactive television environment may be called on to serve a promotional or advertisement related function. Similarly, application programmers of interactive television programs may want to customize the viewer interface in accordance with the theme of the underlying program. For example, a music program may use an animated musical instrument as a focus item, and a sports program may use an animated athlete as a focus item. Therefore, the method of indicating the focus in an interactive television environment will be improved over traditional computer graphical user interface focus methods if the focus items can be easily animated in accordance with the theme of the underlying program with a promotional motivation. In particular, it would be advantageous if sponsors or authors of individual application programs could customize the focus item that is displayed during a particular application or portion thereof.

In summary, for an interactive television environment, there is a need for a viewer interface having simplified viewer interface controls that are optimized for the television environment in both appearance and behavior. The viewer interface should be entertaining and have the look of a television program. The controls of the viewer interface are preferably operable with a handheld control device, such as a remote control. The viewer interface should support NTSC video safety standards to ensure that items intended for display are actually presented to the viewer in a manner that is easily readable on a variety of conventional television sets.

Moreover, there is a need in a graphical viewer interface for an interactive television environment for a more flexible, more communicative means of indicating which among a plurality of control items displayed on a screen has the focus, a need for a focus control mechanism that does not rely on a mouse or keyboard, and a need for a focus item that is easily programmable and amenable to serving customized promotional and advertising functions. In addition, there is a need for a focus item that is easily viewed and understood from the range of distances at which users will view interactive television systems.

SUMMARY OF THE INVENTION

The present invention addresses these issues by providing a viewer interface designed for use in the environment of an interactive television network and by providing an animated focus item. As used herein, an "animation" means any form of highlight that is non-static, including but not limited to flashing, varying illumination, varying size, varying shape, varying display components, a moving cartoon type image, a video image, a sound track, or a combination of more than one of these elements. For example, an animated focus item may be a moving cartoon figure, a flashing ring, a sequence of illumination levels, a video image, an audio enunciation, or any combination of these elements. Control over the focus is accomplished by viewer interaction with the remote control unit and does not require a keyboard or mouse to indicate the viewer's desire to change the focus from one control item to another.

The preferred embodiment of the present invention is directed to a graphical viewer interface for an interactive television system that can deliver a variety of services, including entertainment, information, and transaction services, to consumers via an interactive broadband network. This viewer interface is typically presented via a conventional television including a display screen and audio speaker. The viewer interface may superimpose over a conventional television video display one or more control items representing control objects having various control functions associated with the operation of the interactive system. For example, the viewer interface may display on the display screen visual representations of buttons, "spin dials" (i.e. scrollable lists), or grids containing selectable items. The control items may be custom designed by an application programmer and may vary in size, shape, and location on the display screen during the course of an interactive session.

A focus item is a visual or audio indicator used to indicate to the viewer which control item, among a plurality of control items displayed on the screen, is currently "selected" and responsive to user commands. The viewer may navigate the focus amongst the various control items by manipulating a handheld remote control. For example, if three buttons are displayed on the screen for ordering items on a pizza--"mushrooms", "peppers", and "pepperoni"--the viewer may order "pepperoni" by navigating the focus to the button representing "pepperoni" and then depressing an action command button on the remote control.

The present invention provides a system for highlighting the currently selected control item by associating an animated focus item with the selected control item. The animation may be in many different forms. For example, animation may be in the form of altering the view of the control item or associating a separate focus item with the selected control item. A separate focus item may be in many different forms, such as a ring around the control item or a cartoon type display. Such a cartoon display may additionally comprise several frames displayed in succession to depict movement. The cartoon display may also include video and audio components, possibly synchronized to other aspects of the animated focus item. A focus item may be custom designed by an application programmer. For example, during a football game the focus item may be a cartoon football player that appears to run up to and jump on a control item. During a music program, the focus item may be a musical instrument that appears to play a sound that is played over the audio speaker. During a detective program, the focus item may be a flashlight that appears to illuminate the perimeter or interior of a control item.

According to the present invention, a focus item's size, position, and appearance may be automatically adjusted in response to the control item with which it is associated. For example, if the focus item is a flashlight that is used to illuminate the perimeter of a control object, the display of the illumination may automatically adjust to the size and shape of different control items as the viewer navigates the focus amongst a plurality of control items with varying sizes and shapes. The focus item may also appear to interact with control items of varying size. For example, a focus item may be displayed as a rain cloud that appears to rain on and fill a control item with water. A transitory focus item may appear to travel from one control item to another to indicate a change in focus. For example, a focus item may appear as a car that speeds from one control item to another in response to changes in the control item having the focus. The appearance of the focus item in these contexts may be automatically adjusted in response to the size, position, and appearance of the control item(s) with which it is associated.

Generally described, the present invention is a method and system for a graphical viewer interface for use in a computer system including a memory, a display screen, and a user input device. The inventive system includes a method for communicating to a user that a control item displayed on the display screen is in a state responsive to signals from the user input device. The system displays the control item on the display screen, determines that the control item is to be responsive to signals from the user input device, retrieves from memory configuration defining information relating to attributes of the control item, generates a focus item having a configuration based on the configuration defining information relating to the control item, and displays the focus item on the display screen in association with the control item.

More specifically, the present invention allows an animated focus item to be presented to the viewer, such as a focus item including a non-static display on the display screen. Similarly, the inventive system allows a sound to be emitted in association with the display of the focus item on the display screen. The focus item may include an image within the area defined by the boundaries of the control item, may include an image in an area of the display screen adjacent to the area in which the control item is displayed, or may include a combination thereof.

According to another aspect of the present invention, two or more control items may be displayed on the display screen with a first focus item displayed in association with a first control item. In response to a user command, the first focus item is discontinued, a second control item that should receive the focus is determined, configuration defining information relating to attributes of the second control item is retrieved from memory, and a second focus item that has a configuration based on the configuration defining information relating to the second control item is displayed in association with the second control item. The configuration defining information may pertain to the size and shape of the control item on the display screen and may also pertain to the location of the control item on the display screen. The configuration defining information may also include information identifying an animation to be displayed in association with the control item or the focus item.

According to another aspect of the present invention, a path on the display screen may be determined from a first control item having the focus to the second control item that is to receive the focus. A transitory focus item is generated and displayed on the display screen as moving along the path from the first control item to the second control item. Configuration defining information associated with the first or second control item may include information indicating that a transitory focus item should be displayed and may also include information identifying an animation to be displayed in association with the transitory focus item. Similarly, the configuration defining information may include information indicating that a sound is to be emitted in association with the display of the transitory focus item on the display screen.

According to another aspect of the present invention, a cursor is displayed on the display screen. The position of the cursor is manipulated on the display screen in response to a signal from the user input device caused by the action of the user, and the position of the control items on the display screen and the position of the cursor on the display screen are compared. If the cursor is in a focus zone associated with a control item and if the control item is enabled for receiving the focus, configuration defining information relating to attributes of the control item is retrieved from memory and used to configure a focus item displayed in association with the control item.

According to another aspect of the present invention, the step of retrieving the configuration defining information includes calling an interface supported by a control object associated with the control item and calling specifying parameters utilized by the control object to cause the control object to provide the configuration defining information.

Accordingly, it is an object of the present invention to provide a graphical viewer interface having simplified viewer interface controls that are optimized for the interactive television environment in both appearance and behavior.

It is another objective of the present invention to provide a graphical viewer interface having the look of a television program.

It is another objective of the present invention to provide a graphical viewer interface having controls that are operable with a handheld control device, such as a remote control.

It is another objective of the present invention to provide a graphical viewer interface that supports NTSC video safety standards to ensure that items intended for display are actually presented to the viewer in a manner that is easily readable on a variety of conventional television sets.

It is another objective of the present invention to provide a graphical viewer interface for the interactive television environment that presents a plurality of control items and a focus item to a viewer wherein the focus item indicates which among a plurality of control items displayed on a screen has the focus.

It is another objective of the present invention to provide a graphical viewer interface for the interactive television environment including an animated focus item.

It is another objective of the present invention to provide a graphical viewer interface for the interactive television environment that is flexible and easily programmed to define the appearance of control and focus items displayed to the viewer.

It is another objective of the present invention to provide a graphical viewer interface for the interactive television environment that is easily programmable and amenable to serving customized promotional and advertising functions.

It is another objective of the present invention to provide a graphical viewer interface for the interactive television environment including a focus item that is easily viewed and understood from the range of distances at which users will view interactive television systems.

These and other objects, features, and advantages of the present invention may be more clearly understood and appreciated from a review of the following detailed description and the appended drawings and claims.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

FIG. 1 is a block schematic diagram of an interactive television system for which the present invention is suitable.

FIG. 2 illustrates the equipment located at the viewer's end of the system illustrated in FIG. 1.

FIG. 3, consisting of FIGS. 3A-3B, includes illustrative screen displays of a graphical viewer interface including control items and a focus item used in the interactive television system shown in FIG. 1.

FIG. 4 is a schematic drawing of a user input device used in connection with the interactive television system of FIG. 1, namely, a remote control unit.

FIG. 5, consisting of FIGS. 5A-5D, is a schematic drawing which illustrates an animated focus item as seen during interaction with the interactive television system of FIG. 1.

FIG. 6, consisting of FIGS. 6A-6H, is a schematic drawing which illustrates a transitory focus item as seen during interaction with the interactive television system of FIG. 1.

FIG. 7 is a block diagram of the components of the interactive television system that control the appearance and behavior of control and focus items.

FIG. 8, consisting of FIGS. 8A-8D, is a schematic drawing which illustrates exemplary control items utilized in the interactive television system shown in FIG. 1.

FIG. 9, consisting of FIGS. 9A and 9B, is a flow diagram illustrating the overall functional operation of the focus in a graphical viewer interface for the interactive television system shown in FIG. 1.

FIG. 10 is a flow diagram illustrating a routine for registering and displaying items on a display screen.

FIG. 11 is a flow diagram illustrating a routine for determining focus selection of a control item.

FIG. 12, consisting of FIGS. 12A and 12B, is a flow diagram illustrating a routine for updating the screen display.

FIG. 13 is a flow diagram illustrating a routine for interrogating a control object.

FIG. 14 is a flow diagram illustrating a routine for displaying a focus item associated with a control object.

FIG. 15 is a flow diagram illustrating a routine for animating a focus item .

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Prior to discussing the preferred embodiments of the present invention, a few definitions of terms utilized herein are provided for convenience of the reader:

Definitions

As used herein, an "animation" means any form of highlight that is non-static, including but not limited to flashing, varying illumination, varying size, varying shape, varying display components, a moving cartoon type image, a video image, or a sound track, or a combination of these elements. Pursuant to the preferred embodiment of the present invention, program developers will have flexibility to incorporate a wide range of custom designed animations into focus items. Therefore, the meaning of animation as used herein is intended to be given a broad meaning that includes means of animation that may not be expressly described herein.

As used herein, an "object" refers to a software element comprising an associated set of function members and data members accessible through a set of predefined interface commands. An object may comprise function members and data members that cause a visual or audio display to manifest on an output device. For example, an object may include bit maps and instructions that cause an animated cartoon figure to move across a television screen together with a synchronized sound track playing over a speaker.

As used herein, a "control object" is an object capable of being selected and receiving and responding to viewer commands. Typically, the selection and execution of a control item by a viewer causes a command to be generated and transmitted to another object or device. For example, in a video on demand context, a control object executed by a viewer may cause a command to be transmitted from the set-top to the headend causing the selected movie to be transmitted to the set-top terminal from the headend. In other contexts, such as in a video game context, control objects may generate and transmit commands that are acted upon entirely within the set-top terminal and equipment connected on the viewer end of the set-top terminal.

As used herein, a "control item" is an aspect of a control object that is perceptible to a user, such as a screen display or a sound track. Thus, when a viewer "executes a control item" displayed on the screen, for example by pointing to the control item and pressing an action key, function members of the associated control object may be activated which cause the appropriate response to occur.

As used herein, a "control element" is an object that is used, singularly or in combination, to embody or instantiate control items. A control element is typically a building block, such as a frame, picture, or text element, from which a more complicated control item may be constructed.

As used herein, the term "focus" means in a state responsive to commands from a user input device. A control object has the focus when it has been selected.

As used herein, a "focus object" is an object, separate from a control object, that causes a display to be presented to the viewer to indicate that a particular control object is selected. For example, a focus object may alter the view of the selected control object or associate a separate focus item with the selected control object.

As used herein, a "focus item" is an aspect of a focus object that is perceptible to a user, such as a screen display or a sound track. For example, in a video on demand context, three control objects embodied as visual button control items displayed on the display screen may be displayed to a viewer wherein each button represents a movie that the viewer may select for viewing. A focus item may also be displayed to highlight a particular one of the buttons to indicate to the viewer that the particular movie associated with the highlighted button will be chosen if the viewer communicates an action command. A viewer may navigate the focus object, as indicated by the focus item, between the various control objects by manipulating the controls on the remote control unit. A focus item may be present as an aspect of a control item or as a separate item.

As used herein, a "focus element" is an object that is used, singularly or in combination, to embody or instantiate focus items. A focus element is typically a building block, such as a frame, picture, or sound element, from which a more complicated focus item may be constructed.

As used herein, a "sprite" is a small (relative to the total display area), generally rectangular prestored bit map or image that is mixed with the rest of a displayed image at the video level. Sprites are generally hardware-based, involving circuitry or software methods operative to efficiently retrieve the sprite image from a predetermined memory location and mix it with other video forming the displayed image. The location of the sprite at any time relative to the displayed image is specified in data storage registers. Altering the values in the registers via software methods causes the sprite to move. The sprites may hide portions of the displayed image at each pixel (e.g. by providing appropriate opaque alpha values for the pixels in the sprite) or may be partially blended with the pixel values of the displayed image. Sprites are often used to implement cursors and generate animations by moving a sprite around, either on top of a background image, or on top of or under other displayed images or sprites. Sprites are also often used to generate animations by displaying a succession of related sprites depicting movement.

Given the above definitions, it will be appreciated that a focus item may be composed of one or more sprites. A focus item may also be the result of a parent focus object containing one or more of a standard set of focus elements. A focus element is an object in its own right that may contain data members possibly comprising one or more sprites and function members that may cause images and/or sprites to be presented to a viewer. It will therefore also be appreciated that to cause a focus item to be displayed, a focus object may call one or more focus elements which in turn activate one or more sprites or perform other drawing activities, which cause the display of the focus item to appear on the screen. In this manner, a visual focus item can generally be thought of as being constructed by a number of focus elements, which are contained by a focus object. Similarly, a visual control item can generally be thought of as being constructed by a number of control elements, which are contained by a control object.

Introduction

The preferred embodiment of the present invention is directed to a graphical viewer interface for an interactive television system that can deliver a variety of services, including entertainment, information, and transaction services, to consumers via an interactive broadband network. This viewer interface, which is typically presented via an output device, such as a television or monitor screen, can include one or more control items representing control objects having various control functions associated with the operation of the interactive system. For example, the viewer interface can include control items representing available program options.

The present invention provides a system for "highlighting" the currently selected control item by associating an animated "focus item" with the selected control item. The animation may be in many different forms. For example, animation may be in the form of altering the view of the control item or associating a separate focus item with the selected control item. A separate focus item may be in many different forms, such as a ring around the control item or a cartoon type display comprising several frames displayed in succession to depict movement, and may also include video and audio components, possibly synchronized to other aspects of the animated focus item.

The present invention is preferably embodied in an object-oriented graphical viewer interface for an interactive television system targeted at the home consumer environment. The use of an object-oriented viewer interface enables rich interactive capability and high quality graphics production.

In one aspect of the preferred embodiment, control and focus objects are transmitted from the headend to the set-top box where they interface with other objects and the physical components at the viewer end of the interactive television system. In this manner, the application program determines which control items will be displayed on a viewer's television screen and how those control items will appear and behave. Similarly, a focus object may be transmitted from the headend to the set-top box where it causes a focus item to be presented to the user. Thus, application programs implemented at the headend provide a programmable vehicle for customizing the display of control and focus items at the viewer end of the interactive television system.

Although the preferred embodiment will be generally described as an interactive television system for delivering desired television programs and related information, those skilled in the art will recognize that the present invention also can be used to support the delivery of other forms of programming information, including radio, broadcast print, audio, games, computer software, including program modules such as application programs and operating systems, and other combinations of audio, video, and/or computer software. Accordingly, it will be understood that programming information generally includes information transmitted electronically to entertain, instruct, educate, or inform the recipient as well as program modules for supporting these services.

Likewise, those skilled in the art will also appreciate that the present invention can be extended to communicating control information within the general purpose computing environment. Specifically, the present invention supports user interfaces for displaying control information with general purpose computer systems, including desktop computers, portable computers, and handheld computers, including personal digital administrators.

Turning first to the nomenclature of the specification, the detailed description which follows is presented largely in terms of processes and symbolic representations of operations by conventional computer components, including a central processing unit (CPU) associated with a general purpose computer system, memory storage devices for the CPU, and connected pixel-oriented display devices. These operations include the manipulation of data bits by the CPU and the maintenance of these bits within data structures resident in one or more of the memory storage devices. Such data structures impose a physical organization upon the collection of data bits stored within computer memory and represent specific electrical or magnetic elements. These symbolic representations are the means used by those skilled in the art of computer programming and computer construction to most effectively convey teachings and discoveries to others skilled in the art.

For the purposes of this discussion, a process is generally conceived to be a sequence of computer-executed steps leading to a desired result. These steps generally require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic, or optical signals capable of being stored, transferred, combined, compared, or otherwise manipulated. It is conventional for those skilled in the art to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, records, files, or the like. It should be kept in mind, however, that these and similar terms should be associated with appropriate physical quantities for computer operations, and that these terms are merely conventional labels applied to physical quantities that exist within and during operation of the computer.

It should also be understood that manipulations within the computer are often referred to in terms such as adding, comparing, moving, etc. which are often associated with manual operations performed by a human operator. The operations described herein are machine operations performed in conjunction with a human operator or user that interacts with the computer. The machines used for performing the operation of the present invention, as will be understood, include general purpose digital computers or other similar computing devices.

In addition, it should be understood that the programs, processes, methods, etc. described herein are not related or limited to any particular computer or apparatus. Rather, various types of general purpose machines may be used with programs constructed in accordance with the teachings described herein. Similarly, it may prove advantageous to construct specialized apparatus to perform the method steps described herein by way of dedicated computer systems with hard-wired logic or programs stored in nonvolatile memory, such as read only memory.

Interactive Television Operating Environment

Turning now to the drawings, in which like numerals indicate like elements throughout the several FIGS., FIG. 1 illustrates the operating environment for an interactive television network, a preferred embodiment of the present invention. Referring to FIG. 1, the interactive television network 10 includes a headend system 12 for delivering programming information to and receiving instructions from a consumer system 14 via a "two-way" distribution network 16. The headend system 12 is the control center for collecting, organizing, and distributing the signals for all interactive network operations and the source for all programming information. The distribution network 16 transports signals carrying programming information and instructions between the headend system 12 and the consumer system 14. The distribution network 16 may include a world-wide public asynchronous transfer mode (ATM) compatible network with links to the Internet, third party service providers, and other wired and wireless communications networks. The consumer system 14 includes the equipment required for a consumer to receive programming information directly at his or her office or residence and to transmit requests and instructions to the headend system 12.

The headend system 12 can include a set of headend servers 20, including a continuous media server (CMS) system 22, and one or more administrative servers 24 to support various network functions, and a control network 26 linking these headend servers. The headend servers 20 can execute program modules, including service and application program software, to support the transmission of programming information and the reception of requests for such programming information.

It will be appreciated that the headend servers 20 are not necessarily located in one physical location but can be linked by wired and/or wireless communications paths supplied by the control network. The control network 26 can be a local area network, a wide area network, or a combination of both types of networks. For the preferred embodiment, the control network 26 is implemented as an ATM-based network for routing digital data between the headend servers 20 and the distribution network
16.

The CMS system 22 is a server-based file storage and delivery system that can manage on-demand access to stored digitized data. On-demand access of digitized data is a particularly desirable characteristic of the CMS system 22 if the interactive network supports the delivery of Video on Demand (VOD) or Movies on Demand (MOD) services. The preferred CMS system 22 can supply digital data streams at a constant rate to numerous consumers of the consumer system 14.

The CMS system 22 includes one or more storage servers 28, which operate to retrieve and to transmit the digitized data as required by clients of the CMS system, i.e., the equipment of the consumer system 14. The digitized data, which typically comprises programming information, is maintained on one or more memory storage devices 30 connected to the storage servers 28. Each memory storage device 30 can be implemented as a SCSI hard disk drive, an optical storage system, or any other similar mass storage media. By spreading the data management operations across a group of storage servers and memory storage devices, user load can be balanced with the limited disk, network, and input/output (I/O) resources of the headend system. This also supports fault tolerance by replicating digitized data within the CMS system 22 to survive the failure of a storage server or a memory storage device.

To support the tasks of updating or revising programming information stored on a memory storage device 30 of the CMS system 22, a computer workstation 32 and a remote server 34 can be connected to the control network 26 via a communications link
36. This communications link allows a program distributor or supplier, which typically operates at a location remote from the CMS system 22, to transmit programming information for storage by one or more of the memory storage devices 30 and for eventual distribution to consumers via the headend system 12. The communications link 36 can be implemented by either a wireless or wired communications system. For example, the communications link 36 can be constructed as a microwave link, a leased line link, a fiber optic link, a wire link, or as a conventional telephone link.

The administrative servers 24 of the headend system 12 can support a variety of services and applications associated with the interactive television network 10, including network security, monitoring, object storage, financial transactions, data management, and other administrative functions. The administrative servers 24 also handle the interactive service requests or instructions transmitted via the consumer system 14 by consumers. For an application involving a large base of consumers, an administrative server 24 is preferably dedicated to a particular service or function. For example, one or more servers can handle all consumer authorization requirements, and other servers can handle network management services and so forth. These administrative servers preferably support the Simple Network Management Protocol (SNMP) to enable end-to-end network administration and monitoring.

The headend system 12 also can support the distribution of programming information and other services via an analog distribution system 38 that is coupled to the distribution network 16. This distribution of analog formatted signals can be handled by a separate headend system associated with a community antenna television (CATV) system. The headend of the CATV system typically supports satellite-delivered video and audio programs, over-the-air broadcast television station signals, and broadcast network signal feeds delivered by microwave and other communications systems.

The distribution network 16 is a two-way communications network that connects the headend system 12 to various community distribution points of the consumer system 14 and, in turn, to individual neighborhood nodes for delivery to consumers of services supplied by the interactive television network 10. The distribution network 16 comprises one or more downstream channels supporting transmissions from the headend system to the consumer system and one or more upstream channels for carrying transmissions from the consumer system to the headend system. This bidirectional communications network supports delivery of programming information via the headend system 12 to each consumer and the delivery of requests for programming information by a consumer to the headend system 12. The distribution network 16 can be implemented by a microwave distribution system, a telephone system, coaxial cables, optical fibers, or any combination of these delivery systems. However, the preferred distribution network is implemented by a combination of hybrid optical fiber/coaxial cable (HFC) and optical fiber-to-the-curb (FTTC).

Those persons skilled in the art will appreciate that the programming information delivered over the distribution network 16 typically comprises signals representing video, audio, or other programming contents. Programming information can be delivered in digital format, analog format, or a combination of both analog and digital formats. For the preferred embodiment, television-related programming is delivered as a stream of digital video and/or audio signals in a compressed digital data stream, including conventional MPEG-1 and MPEG-2 compressed video streams. Likewise, requests or instructions issued by consumers via the consumer system 14 are preferably formatted as digital signals.

The CMS system 22 and the administrative servers 24 are connected to the distribution network 16 via an ATM switching system 40. The ATM switching system 40 supports network switching requirements for delivery by the headend system 12 of digital data streams carrying multimedia content and the handling of interactive service requests from consumers.

Because the interactive television network 10 is a two-way communications system, the ATM switching system 40 preferably connects to the distribution network 16 via modulation/demodulation devices. The downstream channels of the distribution network 16 can be connected to the ATM switching system 40 via digital modulators 42, and the reverse channels of the distribution network 16 are connected to reverse channel receivers 44.

Each consumer within a neighborhood node of the consumer system 14 is connected to the distribution network 16 via a subscriber drop cable 46, which is typically part of a local cable network administered by a multiple service operator (MSO). The drop cable 46 is typically a coaxial cable or optical fiber connected to a set-top terminal 48 or set-top box located at the consumer's location. This combination of the drop cable 46 and the set-top terminal 48 operates as a "tap" into the distribution network 16 and allows the consumer (1) to receive program modules and programming information distributed by the headend system 12 and (2) to transmit requests or instructions to the headend system 12. For example, the set-top terminal 48
can accept and convert signals carrying programming information in a format compatible for presentation by an output device 50, such as a television or a computer system. This output device 50, which can be connected to the set-top terminal via a conductive path 52 such as coaxial cable, preferably includes a receiver and a display or monitor for receiving and displaying programs and program-related information. Those skilled in the art will understand that the output device 50 can be implemented as a combination of separate components, such as a receiver and a monitor, or as a single component, such as a conventional television or a general purpose computer system.

Selected operating functions of the set-top terminal 48 can be controlled by an input device 54 capable of supplying input data to the set-top terminal 48. The input device 54 can be used to transmit command signals to the set-top terminal 48
and to input character-based data, such as text, for processing by the set-top terminal 48. For example, the input device 54 can be used to control the position of a display object presented by the output device or to enter text for conducting a service-related transaction supported by the interactive television network 10. The input device 54 can be implemented as one or more devices for inputting data, including a handheld control, a keyboard, a mouse device, a game control, a joystick, a pen or stylus, a trackball, or a track pad. For the preferred embodiment, the input device 54 is implemented as a handheld remote control capable of transmitting infrared signals carrying commands for controlling the operation of the set-top terminal 48. The remote control can include a keypad having distinct keys to control direction (up, down, left, right), to control relative changes in volume or channel (increase or decrease), and to control absolute changes to channel value via a numeric key pad.

The Set-Top Terminal

FIG. 2 illustrates the basic components of the set-top terminal 48. Turning now to FIGS. 1 and 2, the primary components for the set-top terminal 48 include a network receiver 56, a network transmitter 58, a remote control receiver 60, a central processing unit (CPU) 62, and memory 64. These components are connected by a system bus 70, which can carry control, address, and data signals. The network receiver 56 conducts tuning operations for receiving a selected channel of the interactive network 10 and decoding operations for decoding compressed digitized data supplied via the interactive network 10. For example, the set-top terminal 48 can include MPEG decoding capability for converting the compressed digitized data into standard National Television Standard Committee (NTSC) video signals for reception by a conventional television. The network transmitter 58 transmits requests for programming information and related instructions for processing by the headend system 12. The network receiver 56 and the network transmitter 58 can be connected to the distribution network 16 via the drop cable 46. The remote control receiver 60, which is preferably implemented as an infrared receiving device, can decode signals carrying the commands issued by the input device 50, such as a remote control 80.

The CPU 62, which is connected to the network receiver and transmitter 56 and 58 as well as to the remote control receiver 60, controls the operations of the set-top terminal 48 and supports the rendering of graphical images of the user interface. The CPU 62 is typically implemented by at least one microprocessor, such as the model 80486 or the "PENTIUM" microprocessor manufactured by Intel Corporation, Santa Clara, Calif. The CPU 62 communicates, by means of control, address, and data signals, with the remaining components of the set-top terminal 48 through the system bus 70. The CPU 62 operates in conjunction with the operating system 66 to retrieve, process, store, and display data. It will be appreciated that the processing functions of the CPU 62 may be divided among two or more microprocessors to support the presentation of a graphics-intensive user interface. For example, a microprocessor may be dedicated to control operations associated with the bi-directional communications with the headend system 12, and another microprocessor may be dedicated to the generation of graphics.

The memory 64, which is connected to the CPU 62, is useful for storing one or more program modules and data associated with set-top terminal operations. Program modules stored in the memory 64 can include an operating system 66 and one or more application programs 68. The memory 64 can be implemented as a combination of dynamic memory, such as random access memory (RAM), and static memory, such as read only memory (ROM).

The operating system 66 comprises a set of computer programs that control the internal functions of the set-top terminal and support the execution of other program modules, including application programs 68. The preferred operating system 66
supports a graphics-based presentation of program-related information, including control items that visually represent control functions of the operating system and other program modules. A control item is any visual image representing a control object that can be manipulated by the user to perform an operation. The operating system 66 can receive and interpret input data received from the input device 54 via the remote control receiver 60. It will be appreciated that a user can "select" and "launch" control items by the use of the input device 54 in a manner similar to the computer arts.

For the preferred set-top terminal 48, the memory includes a ROM containing at least a portion of program module representing "boot code" 72 for initializing the operations of the set-top terminal 48. Upon power-up of the set-top terminal 48, the boot code 72 initiates a request for the headend system 12 to download certain program modules, including the operating system 66 and one or more application programs 68. The program modules can be stored within the memory 64 of the set-top terminal
48. This downloading process allows the headend system 12 to easily update the program modules used in set-top terminals 48 throughout the interactive network 10. For example, the application programs 68 may reside within the set-top terminal 48 only during actual use of the features of these programs; otherwise, these application programs reside at the headend system 12. Thus, it will be appreciated that the preferred set-top terminal 48 relies heavily upon data storage mechanisms located at the headend system 12 rather than on data storage mechanisms within the set-top terminal 48 itself.

The set-top terminal 48 can be connected to a peripheral device via input/output (I/O) ports 74. The I/O ports 74 support the connection of the system bus 70 to a connected peripheral device. For example, the output device 50 can be connected to the I/O ports 74 via a conductor 52. Likewise, an input device 54, such as a game control 90, can be connected to the I/O ports 74. In contrast to the remote control 80, which communicates with the remote control receiver 60 via a wireless communications link, other types of input devices 54 are typically connected to the I/O ports 74 via a cable. Nevertheless, those skilled in the art will appreciate that input devices 54 can communicate with the set-top terminal 48 by use of either wireless or wired communications links.

Generally, when a user first powers-up a set-top terminal 48, the set-top terminal 48 contacts the headend system 12 and requests the downloading of certain program modules, including the operating system 66. In response to loading these program modules, the preferred embodiment of the set-top terminal 48 may enter a stand-by mode to limit power consumption. In this stand-by mode, the set-top terminal can communicate with the headend system and can respond to administrative requests transmitted by the headend system 12. In the event that a user tunes to an interactive channel (typically by pressing the appropriate function key of the remote control), the set-top terminal 48 changes modes and enters the active mode. In the active mode, the set-top terminal 48 communicates with the headend system 12 to process the instructions transmitted by the remote control. For example, the set-top terminal 48 responds to a command requesting programming information by forwarding this request to the headend system 12 via the drop cable 46 and the distribution network 16. The headend system 12 responds by retrieving selected programming information from the CMS system 22 and transmitting the selected programming information via the return path provided by the distribution network 16 and the drop cable 46. The set-top terminal 48 then supplies this programming information in the proper format for presentation by the display.

The set-top terminal 48 preferably supports sprites in the following graphics modes: 24 bit, 24 bit with 8 bits of alpha, 8 bit palletized, 8 bits with alpha, and 16 bit (lower priority). The default palette consists of NTSC safe colors. Graphic modes can be mixed on the same screen (e.g., 24 and 8 bit). There are 256 levels of transparency (alpha) that can be defined per pixel in the alpha modes. A control or focus object can use any of the specified modes for bit maps that they can contain with one mode per sprite (display region). In 8-bit palletized mode, the preferred embodiment is a single default palette that is selected to be compatible with the NTSC display. This eliminates palette flashing problems and improves performance.

Single scan lines flicker on a television display, and small patterns have artifacts and jitter. Most computer icons are made of single-pixel lines and tiny patterns that do not transfer well to television. The graphics in the interactive television environment are designed to avoid these problems. By default, the borders around control and focus elements and lines are drawn at a minimum of two pixels to avoid flicker problems. Hardware filtering also helps minimize flicker problems.

Set-top terminal 48 preferably includes set-top hardware filters that can be used on a full screen or on any portion of a screen. To specify an area on the screen, the application sets the filter property for the sprite. Filters are specified on a per-sprite basis and must encompass the entire sprite. The top-most sprite defines whether filtering is enabled or not for the region covered by the sprite. If a sprite with filtering and transparent areas overlaps a sprite without transparency, then the bottom sprite is filtered in the overlapping regions that are transparent in the top sprite.

A small set of three to four default fonts is built into the interactive television graphical user interface system. The system fonts provided are "TRUETYPE" fonts to allow for maximum flexibility. Applications can also download additional fonts if needed. Hardware filtering applied to frames containing text smoothes font edges for better readability. Alpha channel blending is optionally available as an additional smoothing option. Font requirements are driven by the application needs and the amount of available storage space.

The set-top terminal 48 preferably supports three digital and one analog stream of video. The digital streams can be any division of one 640 by 480 screen. A control object may incorporate a video display by calling (i.e., interfacing with) a predefined audio/video (A/V) element. An A/V control element can be displayed in a layer with other windows of video or graphics on other layers either above or below the A/V control item layer. The shape of the video window for a control item can be skewed, compressed, or enlarged. All A/V elements can have 30 frames per second (fps). A color is specified to enable graphics or other video images to be placed over a video image. Alpha can be layered on top of an A/V element to simulate fades or to layer translucent or opaque color over video.

The set-top terminal 48 preferably supports one analog and one digital stream of stereo audio. The audio streams can be mixed together and synchronized. Digital audio can be provided by a stream or from memory. The digital formats supported preferably include: MPEG, WAV, and MIDI.

The set-top terminal 48 preferably also supports standard television effects for transitions that can be applied to any control item or its contents. Effects such as wipes, dissolves, and tumbles are supported for both video and graphics. Video effects can apply from one stream to another and from one stream to solid color such as black.

Viewer Navigation

Referring to FIG. 2, a viewer manipulates the cursor and the control and focus items displayed on the screen through commands via the input device 54, preferably a handheld remote control. While manipulating the remote control, the viewer is preferably observing the screen 95 of the output device 50, preferably a television, which is displaying a graphical viewer interface 100. Sound elements may also be used in association with the graphical viewer interface.

Referring to FIG. 3, a viewer may be presented via the graphical viewer interface 100 with a plurality of control items, 102, 103, and 104. FIG. 3A shows "non-modal" control items 102 and 103 that are simple buttons, and "modal" control item 104
that is a "spin dial." A non-modal control item, such as a button, is used to execute a single action. A modal control item, such as a spin dial, has an internal selection that can be changed by the viewer. As shown in FIG. 3A, control items may vary in size and shape. Moreover, control items may be animated and may be custom designed by application programmers.

The viewer must know which object is going to be acted upon when a viewer transmits an action command. Focus indicates which control item is selected. Focus may be indicated by altering the view of the selected control item or by associating a separate focus item with the selected control item. Referring to FIG. 3A, focus ring 105 displayed in association with control item 102 indicates that control item 102 has the focus (i.e., is selected). Similarly, referring to FIG. 3B, focus ring 105' displayed in association with control item 104 indicates that control item 104 has the focus. A focus item can be animated by a color or luminance change, size change, or other visual or audio component. Animating the focus greatly increases the visibility.

Once a control item is selected, the viewer can then act on that control item. If the control item is a non-modal control item such as a button, a viewer can transmit an action command to the button which causes the execution of the action associated with the button. If the control item is modal with a selection of actions associated with it, the viewer can manipulate and select the contents of the control item. Once the control item displays the desired action, the viewer can execute the selection.

A viewer must be able to manipulate the graphical viewer interface 100 using input device 54, typically a handheld remote control, in order to make and communicate selections to the interactive television system 10. According to the preferred embodiment of the present invention, there is a core set of control functions provided on remote control unit 80. These controls are the most commonly used and are least suited to be on-screen. The remote control 80 is the viewer's physical interface into the interactive television system. To provide maximum flexibility, there are several types of remote control units 80 that are supported by the set-top terminal 48.

A remote control comprising only the core set of controls is referred to as a "primary remote," and will be described in detail. The primary remote is the main remote control unit allowing a viewer to interact with the interactive television system 10, and is sufficient for conducting basic interaction with the system including viewer selection and execution of options presented by control items. An example of primary remote control 80 is shown in FIG. 4. The primary remote control 80 is not intended for high-action game use; its purpose is single-viewer, day-to-day usage.

Although the primary remote control 80 is the primary input device, various input devices are supported by the preferred embodiment of the present invention including TV style game controllers, mouse, and keyboard. The wired game controllers are designed for two-handed and optionally two-player action use. Wireless game controls may be optionally provided. A keyboard can be supported for personal mail, searching, and other text applications. For example, a standard set-top terminal 48 can support a small keyboard designed to be used in a seated position.

A primary remote control 80 includes at least the elements described below in connection with FIG. 4. Power key 112 turns on power for the television 50 and set-top terminal 48. Thumbpad 114 is a directional pad intended for manipulation by a viewer's thumb used to maneuver a pointer, such as a cursor or a focus item, around the screen. Action key 116 communicates an action command desired by a viewer, typically the execution of a function associated with a selected control item. "A" key
118 activates a program module-defined function. "B" key 120 activates a program module-defined function. Menu key 122 brings up a navigator to assist the viewer in manipulating the pointer. Help key 124 displays context-sensitive information/help. Channel selector 126 moves the channel selection up or down. Volume selector 128 increases or decreases volume level of the television. Number pad 130 includes number keys 0-9. Mute switch 132 turns off or restores all audio. Help switch 134
initiates or discontinues an on-screen help function. Additional remote control functions are also supported by the preferred embodiment and may be included on a remote control unit. Such additional functions may include a TV/VCR switch, a "jump to last channel" switch, and "transport controls" including play, stop, pause, fast forward, and rewind.

A cursor is an on-screen graphical pointer used to show the viewer where the viewer is pointing. According to the preferred embodiment of the present invention, the cursor for the interactive television viewer interface 100 is larger than a traditional computer cursor, supports multiple colors, and can be animated. Application programs can also define a custom cursor. For example, a music video application could display a microphone for a cursor.

The preferred device for navigating a pointer such as a cursor or a focus item on the screen is the thumbpad 114 on remote control 80. The thumbpad allows a viewer to navigate a pointer, such as a cursor or focus item. The basic requirement of a viewer navigation interface is to give the viewer the ability to jump or "tab" a focus item between control items and/or to "roam" a cursor around on the screen causing a focus item to follow the cursor in a manner that can be readily understood by the viewer.

A primary remote control 80 preferably operates in one of two modes, a "roam mode" or a "tab mode." The set-top terminal 48 preferably supports cursor movement in sixteen different directions in the roam mode and eight directions in the tab mode. The thumbpad preferably has a force-sensing capability which can be used to roam or scroll through a list quickly or slowly depending on the amount of pressure placed on the thumbpad. The force-sensing capability applies when roaming within an image and when scrolling through a list of items.

When in the tab mode, the focus jumps directly from one control item to another in response to navigational commands from the viewer. The viewer communicates navigational commands using the thumbpad 114 on the primary remote. Tab mode operation and a simple form of focus animation are illustrated by FIG. 5. At FIG. 5A, focus item 110 is shown in association with control item 102. As shown in FIGS. 5A, 5B and 5C, the focus item may be animated by sequentially varying the display between the positions illustrated by focus items 110, 110' and 110". Those skilled in the art will appreciate that many forms of animation are possible, all of which are within the scope of the present invention. At FIG. 5D, the focus item 110b has been relocated to a position where it indicates that control item 103 has been selected by the viewer. Referring back to FIG. 4, in the tab mode, the transition from FIG. 5C to FIG. 5D occurs in direct response to a viewer thumbpad 114 command. No cursor manipulation is required or provided.

The tab model requires a relatively simple screen layout with a relatively small number of control items. To keep a viewer from having to tab through too many control items to make a selection, and for particular applications or games that may use hidden or nonobvious controls, the roam mode is provided as an alternative navigation mode.

The roam navigation mode uses a cursor on the screen to indicate a location that is being pointed to on the screen. A focus item optionally follows the location of the cursor. FIG. 6 illustrates the operation of the roam mode. Referring to FIGS. 4 and 6, the viewer manipulates the cursor 120 via the thumbpad control 114 on the primary remote control 80. The action key 116 on the remote control typically causes the execution of a function associated with the selected control item. The roam mode is useful for applications where the viewer can choose from a variety of options that may not necessarily appear as discrete control items or have a separate focus item.

Referring again to FIG. 6, when navigation is in the roam mode, each control item may have an unseen focus zone 130 around it, which makes it easier for the viewer to select a control item. If the cursor is moved inside a focus zone, then the associated control item is automatically selected. The focus zone can be made any size or turned off if desired. When roaming, the cursor is typically constrained to the visible area of the screen thus preventing a novice viewer from roaming off the screen and "losing" the cursor.

Referring now to FIG. 4 and the transition from FIG. 6A to FIG. 6B, the relocation of the cursor 120' on the television screen occurs in response to user commands via thumbpad 114 on primary remote control 80. FIG. 6A shows focus item 110 in association with control item 102, indicating that control item 102 currently has the focus. At FIG. 6C, a viewer has navigated the cursor 120" to a position that intersects a focus zone 130c associated with spin dial 104, indicating that the viewer has selected spin dial 104 to receive the focus. As shown in FIG. 6D, this causes the focus item 110 associated with control item 102 to be disconnected, and a new focus item to appear at position 110c where it indicates that spin dial 104 is currently selected. Those skilled in the art will appreciate that focus item 110c could differ from focus item 110 in appearance or animation.

To aid a user in following a selection change, an animated focus transition item may be displayed on the screen. FIG. 6 shows an example of an animated focus transition item 140 wherein the sequence displayed to the viewer would not transition directly from FIG. 6C to FIG. 6D but would first sequence through the steps illustrated by FIGS. 6E through 6H. At FIG. 6E focus item 110 is discontinued, and focus transition item 140 appears. An animation may be associated with the focus transition item 140. As shown in FIG. 6F, the focus transition item has been relocated to position 140b as it moves along a focus transition path 142 between the control item 102 previously holding the focus and the control item 104 receiving the focus. At FIG.
6G, the focus transition item has moved to position 140c which is close to control item 104. At this point, as shown in FIG. 6H, the focus transition item 140 is discontinued, and the focus item 110c appears in association with control item 104.

Those skilled in the art will appreciate that many forms of animation in association with focus transition items are possible, all of which are within the scope of the present invention. For example, a video display of a small automobile could be displayed along with an associated sound track.

Graphical Viewer Interface Structure

Referring to FIG. 2, the set-top terminal 48 supports a graphical viewer interface 100 for the interactive television system 10. Graphical user interfaces for conventional computer systems are well known in the desktop computer environment. There are a number of differences between a conventional graphical user interface and an interactive television graphical viewer interface according to the preferred embodiment of the present invention. For example, the interactive television graphical viewer interface does not include the following traditional elements of a desktop computer base graphical user interface: system menus, menu bars, multiple document interface, iconized windows, system user interface for changing window size or position, dynamic data exchange, advanced object linking and embedding features (e.g., compound documents), a clipboard, or double-click input capabilities.

In an interactive television graphical viewer interface 100 according to the preferred embodiment of the present invention, all control and focus objects operate in an object-oriented computer system. Simplified viewer interface control items are designed specifically for the interactive television environment in both appearance and behavior. An easy to use primary remote control 80 is the primary input device. Flicker and crawl effects are minimized with hardware filtering, minimum two pixel-width lines, low-contrast pallet, and judicious graphic design including three dimensional depictions.

According to the preferred embodiment, all services available through the interactive television system 10 are programmed via interfaces on objects. To modify the default properties, get status, or otherwise communicate with an object, the application uses a pointer to a known interface offered by the object and calls the desired methods on that interface. A number of standard objects are provided for use by application programs. For example, standard focus objects, standard control objects, such as buttons, spin dials, and text elements, and sprites are standard objects that may be programmed via interfaces.

An application programmer can customize control and focus items to create a unique look. Operation of a control object can be changed to some extent, but to ensure consistency among different applications, the fundamental operation of each control object is predetermined. All control and focus objects use standard object-oriented programming interfaces and are built from a set of base element objects. An individual control object or focus object can support animation, sound, and video elements. For example, a sequence of sprites may be displayed in a predetermined order to create a cartoon-like animation.

A standard set of element objects are provided to application programmers that are intended to provide fundamental building blocks for applications. Control and focus elements generally contain the basic elements from which control and focus items may be constructed, such as frames, picture and text elements, and containers for custom designed audio and video elements. In addition, application writers have the flexibility to add new control and focus objects and elements to incorporate new designs and effects into applications.

The interactive television graphical viewer interface system 100 may be implemented by adding additional properties to an operating system such as "WINDOWS". Alternatively, graphical viewer interface system 100 may be implemented using an object hierarchy in which a parent is a container object that holds one or more other objects. A child is an object contained within another. Children, in turn, may contain objects, which also contain other children. Those skilled in the art will appreciate the containership principles of object-oriented programming techniques.

Control and focus objects have properties that determine the behavior and appearance of control and focus items. All control and focus objects share a container interface that includes the capability of adding objects (i.e., all control and focus objects can serve as containers). Any object can be contained by an another object in the hierarchy. However, to participate as a container, objects must support the container interface. Objects that are not containers can only be contained as a final leaf in the hierarchy tree. Children are tracked via pointers to their patents. The ability to work with and do anything useful with objects that are not containers depends on their interfaces being known by a parent object. If an object that is not a container is added to the hierarchy, it is stored, included in enumerations, and released upon release of the parent, but the object is otherwise ignored.

Although elements are objects in their own right, control and focus elements can be thought of as building blocks for more complex control and focus objects. Those skilled in the art will appreciate that elements, as standard objects with predefined properties, can be used to build more complex objects using the containership capability of object-oriented programming techniques. Compound objects can be used and contained in the same fashion as simple ones. Elements not only supply the routine visual components of control and focus objects such as frames and text elements but provide containers for custom designed effects such as animation, sound, or data handling. With this approach, object appearance, and to some extent functionality, is augmented by adding an object to a container object. This approach also provides the flexibility of altering a standard control or focus object's appearance by substituting custom or nonstandard objects in place of the standard ones.

Control and focus objects include or interface with element objects to produce active animation, sound, and video support, as well as advanced graphical effects such as fades and wipes. The display of screen items associated with control and focus objects may be via sprites only, i.e., rather than a frame buffer there are multiple sprite-based display buffers operating simultaneously, each of which may be of any desired size. Child control elements rendered as separate sprites are not constrained to their parent's display area. For memory efficiency, a frame buffer can be combined with individual sprites that are used when appropriate for displaying animation effects.

Except for parentless top-level frames, each object in the hierarchy has one and only one parent but can contain multiple children. The hierarchy is distributed; that is, it is maintained by the objects themselves. An object serving as a container maintains a list of pointers to its child objects in display order, referred to herein as the "relative Z order". In addition, every contained object also stores a pointer to its parent object. Thus, given an interface pointer on any object, the object tree can be traversed in either direction (up or down), by either operating system or application code.

As discussed above, a control object is a parent container that may contain a number of child objects. In this manner, control items may be layered or nested within other control items. According to one aspect of the preferred embodiment, a parent control object controls the navigation mode of its children control objects. Thus, when a parent control item has the focus, navigation among child control items contained in the parent is set by the parent's navigation mode. With this capability, it is possible to mix navigation modes for different uses. For example, a screen display may contain an roam image that the viewer interacts with in the roam mode. Outside this image, but within the same screen display, there may be buttons that can be navigated to in the tab mode once the viewer roams outside the image. Tabbing back to the roam image reactivates roam mode. Thus, a control object may constrain navigation for items inside itself.

Block Diagram

FIG. 7 is a block diagram of the components of the preferred embodiment of the present invention that relate to the control of the behavior and appearance of control and focus items. Each element shown in FIG. 7 is discussed below with the exception of the remote control unit which was discussed above under the heading "Viewer Navigation."

Program Modules

Referring to FIG. 7, program modules 202 are operating system or application code. Program modules interface with the focus manager 206 to control how the navigation controls behave during the application. Referring to FIG. 2, operating system and application programmers design program modules that include focus and control objects and elements that are transmitted from the headend 12 to the set-top terminal 48 where they control the appearance and behavior of graphical viewer interface 100. Program modules may provide custom designed objects and may alter the behavior and appearance of standard objects. For example, program modules may interface with the focus manager causing restricted cursor movement, for example, to four directions (up, down, left, right) or eight directions of movement (by adding +/-45 degree angles). Typically, application program modules determine the appearance and behavior of control and focus items displayed to the viewer. Application program modules also usually set the mode of navigation including the number of directions allowed in tab mode by communicating with the focus manager, and provide an initial focus location upon application start up.

Remote Control Driver

Referring to FIGS. 2 and 7, the remote control driver 204 handles all input from the user input device 54. The driver supports the primary remote control 80 and any of the additional input devices such as a keyboard or game controller. The remote control driver receives input from the remote control and sends the appropriate events and vector data to the focus manager 206.

Recall that the focus manager operates in two modes, roam and tab, that are typically set by application program modules. Referring now to FIG. 4, in roam mode the focus manager moves the cursor in response to pressure sensitive direction navigation actions from the force sensor on thumbpad 114. In tab mode the direction vectors are translated to discrete directions to move the focus. Any magnitude value associated with the vector from the force sensor on thumbpad 114 is ignored. By default, no cursor is displayed in tab mode, though it can be turned on, if desired, by an application program module to function as a type of additional focus item.

The Focus Manager

The focus manager 206 is a system module that decides which control object has the focus and supports on-screen viewer navigation between the control items displayed on the screen. Referring to FIGS. 4 and 7, the focus manager determines which control item displayed on the screen is selected based on viewer input from the remote control 80. The focus manager provides an interface for the remote control driver 204, which receives input from the remote control. In addition, program modules 202
may interface with the focus manager to register with the focus manager information defining the appearance of focus items, the location of control items displayed on the screen, whether control items are modal or non-modal, and the initial location of the focus.

Control objects that are to be enabled (i.e., can hold the focus) must register with the focus manager 206 when they are enabled and must unregister with the focus manager when disabled or destroyed. Based on the resulting list of eligible controls and their current position on the display screen, the focus manager computes which registered control object should gain focus on any eligible focus change