DIRECTIONAL NAVIGATION WITHIN A GRAPHICAL USER INTERFACE

Abstract: In a graphical user interface, preferably for use with a television (101) and set top box (115), menu navigation is achieved through use of a directional input. From the directional input and a current position, a fitness measure is derived for each menu option (102-111). From the fitness measure, a processing device guesses a target menu location. The directional input typically will come from a remote with buttons indicating directions, including diagonal directions.

Description: Directional navigation within a graphical user interface RELATED APPLICATIONS The following related applications are incorporated herein by reference: > U.S. Patent Application Serial Number 09/160,490 filed 9/25/98 (attorney docket PHA 23,500) by Adrian Turner et al, entitled "Customized Upgrading of Internet Devices Based on User Profile"; and > U.S. Patent Application Serial number 09/189,535 filed 11/10/98 (attorney docket PHA 23,527) by Yevgeniy Shteyn, entitled "Upgrading of Synergistic Aspects of Home Networks." BACKGROUND OF THE INVENTION Field of the invention The invention relates to the field of graphical user interfaces (GUI) and in particular to directional navigation within such interfaces. Related art Particularly in the field of set top boxes for television-based Internet access, such as Internet TV, directional navigation within GUI's has been problematic. The menus for such systems are sometimes displayed as boxes or positions to select on the television screen. Typically, the user is navigating with a remote rather than a mouse or track ball. Typically the remote has rather primitive directional capabilities, such as buttons with arrows indicating up, down, right, and left, please see e.g. PCT application WO 98/43381, Fig. 3. Sometimes the interpretation of these arrows by the set top box is buggy, with a directional command giving the user some direction other than what the user expected. SUMMARY OF THE INVENTION It is an object of the invention to make directional navigation within a GUI more flexible and accurate. The invention provides use of a data processing method or apparatus which receives a user input specifying a vector; determines a fitness of a plurality of menu elements based on a current position, the vector, and the plurality of menu elements; and supplies a target menu element based on the fitness. BRIEF DESCRIPTION OF THE DRAWING The invention will now be described, by way of non-limiting example, with reference to the following figure(s). Fig. 1 shows a data processing system for use with the invention. Fig. 2 shows a remote control device for use with the invention. Fig. 3 shows a menu. Fig. 4 shows an equation DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Fig. 1 shows a schematic of a menu for use in a television based Internet access interface. A television screen 101 displays a plurality of menu items 102-111. Each menu item is associated with a multipixel region or target area on the display. The menu items may be arranged in a regular table, or they may have an irregular arrangement. The menu items are typically displayed as boxes, positions, or fields on the screen. The boxes may all have the same size, or they may have different sizes depending on the needs of the application. For the purpose of this application the terms "menu item", "menu element" and "menu option" are used indifferently. The television screen is connected with a processor 115, which may be a set top box, or an internal processor. The processor is coupled with a device 116 for receiving input from a remote. The device 116 may be a remote IR (infrared) sensor. Fig. 1 is only illustrative of one type of data processing system which might make use of the concepts of the invention. Other types of data processing systems such as PCs with various types of displays might also use the concepts of the invention; however, generally these systems will be without a continuous type of position selection apparatus, such as a mouse, and instead have rather limited directional input apparatus, such as cursor keys. Fig. 2 shows a remote for use with the interface of Fig. 1. The remote has a number of buttons for function specification. The buttons include SmartConnect™ 201, help 204, picture-in-picture (PIP) 203, back 202, menu 201, options 206, and power 212. In addition, there are conventional up and down buttons 207 and 208 for channel and volume control. Navigation is achieved at 209, with a nine button arrangement. Buttons 211.1-211.8 represent motion vectors according to the following table: For the purpose of this application, the term "vector" can refer to 1) an ordered n-tuple of numbers; 2) a specification of length and direction; or 3) merely a direction, according to the needs of the particular application. The term "directional input" is used analogously with vector. In response to a motion vector specification by the user, the GUI will highlight or otherwise indicate one of the menu options on Fig. 1. Button 210 is an "OK" button, which allows a user to select an item that is indicated on the screen. The remote of Fig. 2 might be used with a menu where the options were displayed like petals of an eight petal flower, where each button would specify a petal, per Fig. 3. In Fig. 3, the petals correspond to options as follows: 301 is home; 302 is settings; 303 is mail; 304 is help; 305 is television, and 306 is Internet. Those of ordinary skill in the art can devise other options to correspond to the petals, or flowers and remotes with more or less petals. The correspondence between the buttons and the petals might then be hardwired into the display . Those of ordinary skill in the art might design other remotes for specifying motion within the menu of Fig. 1. Most commonly, the remote will take directional inputs from buttons, keys, disks or other touch sensitive actuators. The remote might also have some pressure sensitivity so that if the button were pushed harder it would indicate a greater length of vector. With an irregular distribution of menu options, as shown in Fig.l, the question becomes which menu option to indicate in response to a given vector specification. According to the invention, a data processor must "guess" which menu option to highlight in response to the vector. According to one embodiment, when the user inputs a direction, given the current element and the set of destination elements, a fitness value is calculated for every destination element; the destination element with the best fitness value is made the new current element. The fitness value of a given destination element is calculated as follows. A negative fitness value will discard the destination element as a possible destination: 1) If the direction is straight up or straight down: a) if there is sufficient horizontal overlap between current and destination element, the fitness value is the square of the vertical distance; b) if there is insufficient horizontal overlap between current and destination element, the fitness value is negative 2) if the direction is straight left or straight right: 1) if there is sufficient vertical overlap between current and destination element, the fitness value is the square of the horizontal distance 2) if there is insufficient vertical overlap between current and destination element, the fitness value is negative 3) if the direction is diagonal: a) if there is sufficient horizontal and vertical overlap between current and destination element, the fitness value is the square of the vertical distance plus the square of the horizontal distance b) if there is insufficient horizontal or vertical overlap between current and destination element, the fitness value is negative According to this embodiment, the best fitness value is the smallest non-negative fitness value. Those of ordinary skill in the art might devise other ways of determining fitness. In the procedure listed above, insufficient overlap may be defined as follows, though those of ordinary skill in the art might well devise other methods. In the following, pseudo-code for defining sufficiency or insufficiency of overlap appears in a different type face. The notation "B.right" means the right border of element B; "A.left" means the left border of element A; and so forth. 1) sufficiency of horizontal overlap for straight up or straight down navigation between a current element A and a destination element B is defined as: overlap = sufficient; if (B.right > A. right) { if ((B.right - A. right > A. right - B.left) and (B.left - A.left > A. right - B.left)) overlap = insufficient; } if (B.left < A.left) { if ((A.left - B.left > B.right - A.left) and (A. right - B.right > B.right - A.left)) overlap = insufficient; } In other words, overlap will be considered sufficient unless i) a) the right border of B is farther right than the right border of A, and b) the difference between the positions of the right borders of A and B is greater than the difference between the positions of the right border of A and the left border of B, and c) the difference between the positions of the left borders of A and B is greater than the difference between the positions of the right border of A and the left border of B; OR ii) a) the left border of B is further left than the left border of A, and b) the difference in positions of the left borders of A and B is greater than the difference in positions of the right border of B and the left border of A, and c) the difference in positions of the right borders of A and B is greater than the difference in positions of the right border of B and the left border of A. 2) sufficiency of vertical overlap for straight right or straight left navigation between a current element A and a destination element B is defined as: overlap = sufficient; if (B. bottom > A. bottom) { if ((B. bottom - A. bottom > A. bottom - B.top) and (B.top - A. top > A. bottom - B.top)) overlap = insufficient; } if (B.top < A. top) { if ((A. top - B.top > B. bottom - A. top) and (A. bottom - B. bottom > B. bottom - A. top)) overlap = insufficient; } In other words, overlap is sufficient unless i) a) the bottom border of B is higher than the bottom border of A, and b) the difference in positions of the bottom borders of B and A is greater than the difference in positions between the bottom border of A and the top border of B, and c) the difference in positions of the top borders of A and B is greater than the difference in position between the bottom border of A and the top border of B, OR ϋ) a) the top border of B is lower than the top border of A, and b) the difference in position between the top borders of A and B is greater than the difference in position between the bottom border of B and the top border of A, and c) the difference in position between the bottom borders of A and B is greater than the difference in position between the bottom border of B and the top border of A. 3) for diagonal navigation the overlap between a current element A and a destination element B is insufficient if B does not extent at least halfway vertically and horizontally into the quadrant defined by the direction of the diagonal navigation: • the quadrant to the top right of A for a top right navigation • the quadrant to the top left of A for a top left navigation • the quadrant to the bottom right of A for a bottom right navigation • the quadrant to the bottom left of A for a bottom left navigation. Thus the term "sufficient overlap" does not mean that two menu option regions actually overlap, but rather that they fit within a overlap definition, such as that above. Those of ordinary skill in the art may devise other ways of "guessing" which menu option is possible. For instance, a fitness value ((x,y),(x p ,y p ),(a,b)) may be determined in accordance with the equation of Fig. 4, where the screen elements representing menu positions are relatively small in proportion to the size of the screen. Again the fitness is used to determine an optimal target location. If two target locations have the same fitness value, one must be chosen. In the equation of Fig. 4, > (x,y is currently highlighted point, > (Xp,Vp) is the location of a point p, > p is in the range [0,m), > m is the number of "reachable"points, > (a,b) is a vector indicating a direction a user wishes to jump, d is a value from [l,- ) that determines an influence of distance (x,y) to (x p , y p ) in the value of fitness. Another way of expressing the equation of Fig. 4 is to say that fitness ((x,y),(x p ,y p ),(a,b)) equals the square of the cosine between vectors (x p -x,y p -y) and (a,b) divided by some power of the length of vector (x p -x,y p -y). Alternatively, if (a,b) is normalized to length 1, the length of (a,b) can be removed from the fitness function. It may also be beneficial to raise the cosine to some other power than 2. In the foregoing, two types of fitness measures have been considered. Those of ordinary skill in the art might conceive of others. Typically, a fitness measure should consider factors such as the direction and distance between a candidate target position and a current position. The use of the cosine, or inner product, in a formula like that of Fig. 4, is a way of taking into account the similarity or difference in direction between (a,b) and (x p - χ,y P -y)- In addition, the size of the region occupied by a menu option might be considered. This size becomes a more significant factor if the region becomes larger. Thus, if the direction specified by the user points at only a tiny corner of the region, then possibly the entire region is not a very fit target position, and a more distant one might be more appropriate. One might want to consider how closely the directional input points to a center of gravity of the region. One could consider the fitness of all points within the region and perform some sort of integration in order to determine the fitness of the entire region. The first specified fitness measurement, above, uses region boundaries as a way of taking into account the regional extent of the menu option without performing such an integration. > One system in which the invention may be used is the Philips Pronto. More systems and remotes where the invention may be used are described in the following US patent applications which are incorporated herein by reference: > U.S. Serial No. 09/062,364 (Attorney docket PHA 23,387) filed 4/17/98 for Jan van Ee and Sung Choi for GRAPHICAL USER INTERFACE TOUCH SCREEN WITH AUTO ZOOM FEATURE. > U.S. Serial No. 09/128,839 (Attorney docket PHA 23,469) filed 8/4/98 for Jan van Ee for REMOTE CONTROL HAS ANIMATED GUI. > U.S. Serial No.09/129,300 (Attorney docket PHA 23,470) filed 8/5/98 for Jan van Ee for GUI OF REMOTE CONTROL FACILITATES USER-FRIENDLY EDITING OF MACROS. > U.S. Serial No. 09/271,200 (attorney docket PHA 23,607) filed 3/17/99 for Jan van Ee for FULLY FUNCTIONAL REMOTE CONTROL EDITOR AND EMULATOR. > U.S. Serial No. 09/311,128 (attorney docket PHA 23,501) filed 5/13/99 for Joost Kemink for INTERNET-BASED SERVICE FOR UPDATING A PROGRAMMABLE CONTROL DEVICE From reading the present disclosure, other modifications will be apparent to persons skilled in the art. Such modifications may involve other features which are already known in the design, manufacture and use of graphical user interfaces and remote controls for use with display screen devices, which modifications may be used instead of or in addition to features already described herein. Although claims have been formulated in this application to particular combinations of features, it should be understood that the scope of the disclosure of the present application also includes any novel feature or novel combination of features disclosed herein either explicitly or implicitly or any generalization thereof, whether or not it mitigates any or all of the same technical problems as does the present invention. The applicants hereby give notice that new claims may be formulated to such features during the prosecution of the present application or any further application derived therefrom. The word "comprising", "comprise", or "comprises" as used herein should not be viewed as excluding additional elements. The singular article "a" or "an" as used herein should not be viewed as excluding a plurality of elements.

Claims: CLAIMS: 1. A data processing system, comprising a) a display device (101); b) a graphical user interface including a plurality of menu elements (102-111, 30T-306) associated with positions on the display device (101); and c) a processor (15) adapted to perform the following operations i) receiving a user input specifying a vector, ii) determining a respective fitness for each of the plurality of menu options based on current position, the vector, and the plurality of menu elements, and iii) supplying a target menu element, which is that one having a most optimal fitness. 2. The system of claim 1 , wherein the fitnesses are determined according to a procedure that takes into account a difference in direction between the vector and the difference between the current position and a given one of the plurality of menu elements. 3. The system of claim 1 , wherein the fitnesses are determined according to a procedure that takes into account a distance between the current position and a given one of the plurality of menu elements. 4. The system of claim 1 , wherein the fitnesses are determined according to a procedure that takes into account a regional extent of a given one of the plurality of menu elements. 5. The system of claim 1, wherein the vector is selected from a set of eight vectors {straight up, straight down, straight left, straight right, diagonally up and to the right, diagonally up and to the left, diagonally down and to the right, diagonally down and to the left}. 6. The system of claim 1 , wherein the operations comprise determining a fitness of each of the plurality of menu options according to the following criteria: i) If the direction is straight up or straight down: A) if there is sufficient horizontal overlap between current and destination element, the fitness value is the square of the vertical distance; and B) if there is insufficient horizontal overlap between current and destination element, the fitness value is negative; ii) if the direction is straight left or straight right: A) if there is sufficient vertical overlap between current and destination element, the fitness value is the square of the horizontal distance; and B) if there is insufficient vertical overlap between current and destination element, the fitness value is negative; and iii) if the direction is diagonal: A) if there is sufficient horizontal and vertical overlap between current and destination element, the fitness value is the square of the vertical distance plus the square of the horizontal distance; and B) if there is insufficient horizontal or vertical overlap between current and destination element, the fitness value is negative; and > supplying the target menu element as that one having a most optimal fitness. 7. The system of claim 6, wherein I) sufficiency of horizontal overlap for straight up or straight down navigation between a current element A and a destination element B is defined as: a) the right border of B is farther right than the right border of A, and b) the difference between the positions of the right borders of A and B is greater than the difference between the positions of the right border of A and the left border of B, and c) the difference between the positions of the left borders of A and B is greater than the difference between the positions of the right border of A and the left border of B; OR ϋ) a) the left border of B is further left than the left border of A, and b) the difference in positions of the left borders of A and B is greater than the difference in positions of the right border of B and the left border of A, and c) the difference in positions of the right borders of A and B is greater than the difference in positions of the right border of B and the left border of A. II) sufficiency of vertical overlap for straight right or straight left navigation between a current element A and a destination element B is defined as: i) a) the bottom border of B is higher than the bottom border of A, and b) the difference in positions of the bottom borders of B and A is greater than the difference in positions between the bottom border of A and the top border of B, and c) the difference in positions of the top borders of A and B is greater than the difference in position between the bottom border of A and the top border of B, OR ϋ) a) the top border of B is lower than the top border of A, and b) the difference in position between the top borders of A and B is greater than the difference in position between the bottom border of B and the top border of A, and c) the difference in position between the bottom borders of A and B is greater than the difference in position between the bottom border of B and the top border of A. III) for diagonal navigation the overlap between a current element A and a destination element B is insufficient if B does not extent at least halfway vertically and horizontally into the quadrant defined by the direction of the diagonal navigation: • the quadrant to the top right of A for a top right navigation; • the quadrant to the top left of A for a top left navigation; • the quadrant to the bottom right of A for a bottom right navigation; • the quadrant to the bottom left of A for a bottom left navigation. 8. The system of claim 1 , wherein fitness is determined according to the following equation: ((x - x) *a + (y -y) * *bV) 2 if((x O - x) *a + (y -y) * b) > 0 ((x - x) 2 +(y -y) 2 ) d * (a 2 + b 2 ) (( χ ,y),( χ p,y P ),(a,b)) = - 1 otherwise where > (x,y) is a currently highlighted point, (x p ,y p ) is the location of a point p, p is in the range [0,m), > m is the number of "reachable" points, (a,b) is a vector indicating a direction a user wishes to jump, > d is a value from [1, → ) that determines an influence of distance (x,y) to (x p ,y p ) in the value of fitness. 9. A medium, readable by a digital data processing system, embodying software for performing the following operations: a) receiving a directional input from a user; b) determining a current menu position; c) determining a respective fitness of each of a plurality of menu elements (102-111, 301- 306) based on the directional input and the current menu position; and d) selecting a target menu element from the plurality of elements based on the fitness. 10. A data processing system comprising a) a display (101); b) means (116) for receiving a directional input; c) a data processor (115) configured to perform the following operations: i) providing a GUI on the display (101), which GUI includes a menu that includes a plurality of menu elements (102-111, 301-306), each menu element being associated with a respective multipixel target area selectable through controlling position of a displayed position indicator, selection being achieved through one or more discrete jumps from one element to another element, other positions on the GUI not being accessible and the multipixel regions not being randomly accessible; ii) receiving, via the means (116) for receiving, the directional input for use with the menu, which directional input specifies a direction other than straight up, straight down, straight left, and straight right; and iii) guessing a target menu element from amongst the plurality, based on the directional input. 11. The system of claim 10 wherein the display is a television screen, the means (116) for receiving is an IR remote sensor, and the processor (115) is disposed within a set top box. 12. The system of claim 10, wherein the system is adapted to receive the directional input and a plurality of additional directional inputs in a sequence; > each additional directional input may be selected from a set including straight up, straight down, straight left, straight right, diagonally up and to the right, diagonally up and to the left, diagonally down and to the right, and diagonally down and to the left; > the guessing operation comprises: α ) determining a fitness of each of the plurality of menu elements according to the following criteria: i) if the directional input is straight up or straight down: A) if there is sufficient horizontal overlap between current and destination element, the fitness value is the square of the vertical distance; and B) if there is insufficient horizontal overlap between current and destination element, the fitness value is negative; ii) if the direction is straight left or straight right: A) if there is sufficient vertical overlap between current and destination element, the fitness value is the square of the horizontal distance; and B) if there is insufficient vertical overlap between current and destination element, the fitness value is negative; iii) if the direction is diagonal: A) if there is sufficient horizontal and vertical overlap between current and destination element, the fitness value is the square of the vertical distance plus the square of the horizontal distance; and B) if there is insufficient horizontal or vertical overlap between current and destination element, the fitness value is negative; and β) supplying the target menu element as that one having a most optimal fitness. 13. A remote for use in a data processing system, the system including a) a display device (101); b) a graphical user interface including a plurality of menu elements (102-111, 301-306) associated with positions on the display device; and c) a processor (115) adapted to perform the following operations: i) receiving a user input specifying a vector, ii) determining a respective fitness of each of the plurality of menu elements based on a current position, the vector, and the plurality of menu elements, and iii) supplying the target menu element, which is that one having a most optimal fitness, the remote comprising eight directional buttons (2161-2168) as hard keys. 14. A data processing method comprising: a) receiving a user input specifying a vector; b) determining a respective fitness of each of a plurality of menu elements (102-111, 301- 306) displayed on a display device (101) according to a graphical user interface that associates a respective position on the display with each menu element, said determining being based on a current position, the vector, and the plurality of menu options; and c) supplying a target menu option based on the fitnesses. 15. A data processing method comprising a) providing a GUI on a display (101), which GUI includes a menu that includes a plurality of menu elements ( 102- 111 ), each menu element being associated with a respective multipixel target area selectable through controlling position of a displayed position indicator, selection being achieved through one or more discreet jumps form one element to another element, other positions on the GUI not being accessible and the multipixel regions not being randomly accessible; b) receiving a directional input from a user for use with the menu, which directional input specifies a direction other than straight up, straight down, straight left, and straight right; and c) guessing a target menu element from amongst the plurality, based on the directional input.

Inventors: CUIJPERS MAURICE, VAN EE JAN, CUIJPERS, MAURICE, VAN EE, JAN
Applicants: KONINKL PHILIPS ELECTRONICS NV, KONINKLIJKE PHILIPS ELECTRONICS N.V.
Application year: 2000
Main classification: G06F3
IPC codes: G06F3, G06F9, G08B13, G08B25, H04L29, H04N5, H04N7