Next Patent: View navigation and magnification of a hand-held device with a display
Next Patent: View navigation and magnification of a hand-held device with a display
Plaque It!
Sponsored by: Flash of Genius |
[0001] The invention relates in general to a method of pointing on a display.
[0002] Many current operating systems require a pointing and clicking device, such as a mouse. These systems, or applications executing under them, typically two cursors, a text cursor and a pointing cursor. The text cursor is controlled by a keyboard and to some extent by the mouse and the pointing cursor is controlled by the mouse. Although working with a mouse is considered by many users easy and operator-friendly, some users find using the mouse uncomfortable.
[0003] Furthermore, in switching back and forth between the keyboard and the mouse, a user must continuously change his hand positions between a touch-typing position and a mouse holding (pointing) position. Generally, this slows down the user's work, as the user may be required to move his gaze direction to locate the mouse, move his hand a significant distance and then move the hand back to the keyboard.
[0004] An additional problem with mouse-type pointing devices is an apparent increased risk of RSI (repeated stress injuries). One solution is to minimize mouse use by providing “short-cut” keys. However, such keys may be numerous, different for different applications and require a significant learning period.
[0005] An additional concern is the needs of handicapped people. The operation of two different devices, a keyboard-equivalent device and a mouse-equivalent device may be too demanding for many handicapped users.
[0006] With the spread of embedded computers and mobile devices, there has been a rise in the number of devices that do not include a mouse but do include a graphical display. In such devices, there is generally a need for a convenient method of graphical pointing.
[0007] U.S. Pat. No. 5,485,614 to Kocis, “Computer with Pointing Device Mapped into Keyboard,” whose disclosure is incorporated herein by reference, describes a computer architecture in which a keyboard is used to control both the text cursor and the pointing cursor. In essence, the pointing cursor is controlled by the arrow keys of the keyboard together with one or more other keys. The arrow keys thus direct the cursor in a specific direction (up, down, diagonal to top left, etc.) relative to the current position of the pointing cursor. This method requires, on the average, many keystrokes for each cursor movement and therefore may be time-consuming and tiring. This type of control is relative control, in which the keyboard commands move the cursor relative to its previous position. In contrast, in a touch screen, the control is by absolute addressing—the cursor is moved to the location pointed to by touching the screen.
[0008] U.S. Pat. No. 5,019,806 to Raskin et al., “Method and Apparatus for Control of an Electronic Display,” whose disclosure is incorporated herein by reference, describes a method of designating a text region on a display of a text based application. Raskin et al. use a first and a second designation keys coupled to a processing unit which searches for a pattern entered into a keyboard while one of the designation keys is activated. The processing unit searches the display and the memory for the pattern, and brings the cursor to it. Raskin's system is useful only when it is desired to bring the cursor to a point that can be described by keystrokes. Furthermore, Raskin's method is concerned with designating regions within one application, controlled by the keyboard. A display may contain several applications. Finally, Raskin's method is concerned with bringing the cursor to specific points within a document, whether they currently appear on the display screen or not.
[0009] An aspect of some exemplary embodiments of this invention relates to assigning address codes to a plurality of points on a display screen, and accessing the points using the assigned codes. In an exemplary embodiment of the invention, the codes are screen-oriented and not application oriented, in that the same interface is used for all and any applications, and even if there are several application windows open simultaneously. However, in some implementations, the codes and/or other features of the invention may be limited to a single window or a single application. In an exemplary embodiment of the invention, the address codes relate to the visible part of the screen and not hidden parts, for example unscrolled portions of windows. Optionally, but not necessarily, the address codes are direct access codes that refer to an absolute, rather than relative position. In an exemplary embodiment of the invention, at least 10, 20, 40, 100 or even 200 or more different locations on the screen can be addressed by different addresses.
[0010] In some exemplary embodiments of the invention, the codes are assigned responsive to the current contents of the display. In an exemplary embodiment, in display areas that comprise text, each character of that text serves as a temporary-text code, or address, for the screen area on which it is displayed. In some embodiments of the invention, the characters are not limited to printable ASCII characters. Possibly, a mapping between addresses and display elements or icons is provided, for example to allow window manipulation using the display addressing scheme.
[0011] Optionally, the codes are assigned responsive to partial address entry by a user, for example, all screen locations that include the partial address are tagged with suitable codes.
[0012] Alternatively or additionally, the codes are assigned without relation to the contents of the display. Optionally, the screen is divided into a plurality of areas, which are assigned area-designation codes. The area designation codes are optionally fixed throughout a work session, but may change upon a user's request. Optionally, an iterative approach is used, in which a user progressively fines tunes the screen position.
[0013] Optionally, the codes comprise one or more alphanumeric characters and symbols for which a standard ASCII conversion is available and especially optionally characters which are easily and/or conveniently generated using a standard keyboard. Alternatively, a color code, or gray-level code, for which a special ASCII (or keystroke) conversion may be developed, is used. In an exemplary embodiment of the invention, the screen mapping matches the geometric layout of the keyboard, for example a QWERTY or a Dvorak layout. Alternatively, an intuitive layout, such as ordered alphabetic, may be used.
[0014] Alternatively or additionally, the address codes are entered using non-keyboard means, such as using a pen or using voice entry.
[0015] In an exemplary embodiment of the invention, the present invention is used for providing graphical pointing capability for devices that have a limited or no such capabilities, or in which a designated pointing device cannot be used for a significant portion of time. Two exemplary classes of such devices are thin client devices and embedded devices. Specific examples of such devices are set-top boxes and digital TVs, cellular telephones, palm-communicators, organizers, motor vehicles and computer-embedded appliances.
[0016] An aspect of some exemplary embodiments of the invention relates to a method of absolute control of a cursor position, optionally using a keyboard. In an exemplary embodiment of the invention, the cursor is moved directly to a point of interest, without requiring an iterative process of control by the user coupled with visual feedback from the screen to determine if the correct motion has occurred. As used herein, a point of interest is a screen object that can be manipulated, for example a button or a screen object that can be selected, for example text. In an exemplary embodiment of the invention, the desirability of a symbol as a point of interest is determined in a hierarchical manner, for example, any symbol is more interesting than a blank background and icon symbols are more interesting. In an exemplary embodiment of the invention, the interest level of a point is determined by analyzing its screen appearance, for example color (e.g., many browsers use different colors for active links), text contents (e.g., the word “go” or “http:/”) indicate activity, image contents (e.g., a particular feature of an image) and/or geometry (e.g., icons). In an exemplary embodiment of the invention, a dictionary of useful keywords and geometric shapes is used by the program. In an exemplary embodiment of the invention, geometric pattern matching or feature extraction, rather than bit-for-bit matching are used to detect symbols of interest.
[0017] An aspect of some exemplary embodiments of this invention relates to providing a method for correlating keys strokes of a standard computer keyboard (or voice input) with address codes of the display screen. An operational mode is thus provided in which striking a key or a key combination means: “Refer to this address on the display screen.”
[0018] Optionally, where a temporary-text code is used, typing a portion of text means: “Refer to the area of this text on the display.” For example, typing “SUMMARY OF THE INVENTION” will mean: “Refer to the title to this section, on the display.” Alternatively, where an area-designation code is used, each with a correlated key or key combination, striking the proper keys will reference the desired area For example, when a color code is used, striking Ctrl B may move the pointing cursor to a blue area, and striking Ctrl Y may move the pointing cursor to a yellow area. Optionally, when there are a plurality of areas (or points of interest) with the same address code, entering the code moves the cursor to the next area having the address. Alternatively to entering text using a keyboard, other means may be used, for example speech input or handwriting input means.
[0019] An aspect of some exemplary embodiments of this invention relates to providing methods for fine tuning the addressing using a limited number of codes. Alternatively, these methods may be used to reduce the scope of search for a point to which a cursor movement command refers or needs to refer to in a subsequent step. In an exemplary embodiment of the invention, the fine tuning is by automatically determining a point of interest in the addressed area and optionally providing a user with means to jump between such points of interest. Alternatively or additionally, the fine tuning is by sub-addressing the first addressed area. Alternatively or additionally, the fine-tuning is by applying a different addressing scheme, possibly even a relative cursor control scheme in that area In an exemplary embodiment of the invention, the addressed area is enlarged on the screen for repeated iterations, so that the screen area associated with each code can be made as small as desired down to the size of one pixel.
[0020] In an exemplary embodiment of the invention, when a partial address is entered, an index is generated that lists all the possible completions or matches to the address. For example, typing “s” will index all the words starting (or finishing) with an “s”. Each such word may be tagged, on screen, for example, with an index term, for example one of the digits, letters or other keyboard character. Typing that character will bounce the cursor to the indexed word. Optionally, in this and/or in other embodiments, the partial address and/or the index are entered using a voice modality.
[0021] An aspect of some exemplary embodiments of the invention relates to displaying an address map on a screen. In an exemplary embodiment of the invention, the map is shown as an overlay that does not hide large blocks of display. Optionally, thin characters and/or lines are used for the map. Alternatively or additionally, the characters are displayed in a manner which minimally corrupts the underlying display, for example using embossing. In an exemplary embodiment of the invention, the address map comprises a division of the display and one or more characters for each section. Optionally, the subdivision lines and/or the exact address location are shown.
[0022] Alternatively or additionally, the map comprises tags for objects that can selected by further keystrokes.
[0023] An aspect of some exemplary embodiments of the invention relates to using absolute addressing techniques in conjunction with gaze tracking and/or voice input. In an exemplary embodiment of the invention, these methods are used to limit the area to which an absolute addressing command can refer to. Alternatively or additionally, a speech recognition circuit may be used to input the address for an absolute addressing scheme. Alternatively, these alternative pointing methods may be used to provide a gross pointing resolution, while keyboard methods as described herein are used for fine tuning the pointing. Alternatively, the keyboard entry methods are used to limit the interpretation of the alternate pointing methods, for example, limiting a determined gaze direction to match the direction to certain symbols or text words.
[0024] An aspect of some exemplary embodiments of the invention relates to a method of embedding information in a displayed image, in which the information is encoded in low significant bits of the image. In an exemplary embodiment of the invention, this information comprises a description of the image content. Optionally, several descriptions for different image parts, with coordinates for each such image part, are provided. Alternatively or additionally, the information comprises an encoding of the text content of the image, so it can be read out without resorting to OCR techniques.
[0025] An aspect of some embodiments of the invention relates to utilizing a knowledge of the screen contents, in order to facilitate screen navigation. In an exemplary embodiment of the invention, a single set of “short-cuts” are defined between applications, by assigning fixed addresses for various icons, keywords, menu items, window controls and/or other display objects. Thus, when a user enters the address for the “print” icon, the same address can apply irrespective of which application window is open. Indexing and/or other methods of selecting between multiple matching screen locations may be used to select one of several displayed print icons.
[0026] Alternatively or additionally, by defining a dictionary of “interesting” screen objects, navigation, relative or absolute, can be facilitated. In one example, the courser keys jump from one “interesting” object to the next, based on its screen location, independently of the actual applications windows. In one example, a set of “interesting objects” includes keywords, icons, desktop icons, window controls and menu bar items. The ability to thus navigate may be based on a knowledge of what is on the screen and/or on an analysis of screen contents. In another example, a mouse pointer can be modified to “stick” only to interesting objects. In a mouse example, each mouse motion, or duration of motion, or above-threshold amount of motion is translated into one step in the mouse motion direction.
[0027] Optionally, the granularity of navigation and/or selection is dependent on the screen content, for example, in an area of text, selection is per character, in a graphic area, selection is per graphic item, with text words being selected as whole units. The content of an area may be determined, for example, if over a certain percentage of display objects in that area are of a certain type and/or based on the percentage of screen coverage.
[0028] There is thus provided in accordance with an exemplary embodiment of the invention, method of indicating by a user of a screen location, on a system having a screen displaying content, comprising:
[0029] entering at least a partial screen address, defining an absolute position on said screen, wherein said screen address can indicate substantially any location on said screen;
[0030] determining a screen location corresponding to said at least a partial address; and
[0031] pointing, by the system, to the screen location indicated by the at least a partial screen address. Optionally, entering comprises typing on a keyboard. Alternatively, entering comprises typing on a keypad lacking individual keys for letters.
[0032] Alternatively or additionally, entering comprises entry by voice. Optionally, said voice entry comprises annunciation of characters.
[0033] In an exemplary embodiment of the invention, entering comprises entry by pen input.
[0034] In an exemplary embodiment of the invention, determining comprises matching said at least a partial location to an address of said screen location.
[0035] In an exemplary embodiment of the invention, determining comprises analyzing a content at said screen location to determine an address of said screen location. Optionally, said determining is performed prior to said entry. Alternatively, said determining is performed after said entry.
[0036] In an exemplary embodiment of the invention, each screen location has a fixed address, independent of content displayed on said screen. Alternatively, each screen location has a temporary screen address, is related to a content displayed at said location. Optionally, said temporary address comprises a description of said content. Alternatively or additionally, said address comprises a message embedded in said content.
[0037] In an exemplary embodiment of the invention, analyzing comprises analyzing at least one image displayed on said screen, for matching a substance of said image to said at least partial screen address. Alternatively or additionally, analyzing comprises analyzing text displayed on said screen, for matching said text to said at least a partial screen address. Alternatively or additionally, analyzing comprises analyzing at least one graphical object displayed on said screen, for matching said at least one graphical object to said at least partial screen address. Alternatively or additionally, analyzing comprises analyzing an indication associated with at least one graphical objects displayed on said screen, for matching said at least one graphical object to said at least partial screen address.
[0038] In an exemplary embodiment of the invention, said at least partial screen address is independent of the existence of one or more applications whose execution is displayed on said screen. Alternatively, said at least partial screen address is dependent on the existence of one or more applications whose execution is displayed on said screen.
[0039] In an exemplary embodiment of the invention, determining comprises fine-tuning said location responsive to user input after a first location determination. Optionally, said fine-tuning comprises:
[0040] associating an index tag with each of a plurality of potential screen locations; and
[0041] receiving a user input indicating which of the indexed screen location to select. Optionally, said plurality of potential screen locations includes a content of graphical objects that the screen addresses relate to.
[0042] Alternatively or additionally, said fine tuning comprises receiving a relative motion indication from said user. Alternatively or additionally, said fine tuning comprises receiving an absolute motion indication from said user. Alternatively or additionally, said fine tuning comprises providing a higher resolution screen address mapping than used for said entry. Alternatively or additionally, said fine tuning comprises receiving a user entry using an input modality other than used for said entry. Optionally, said entry input modality and said other input modality comprise speech input and keyboard entry.
[0043] In an exemplary embodiment of the invention, said fine tuning comprises using a different addressing method than used for said determining prior to said fine tuning.
[0044] In an exemplary embodiment of the invention, determining comprises fine tuning said location responsive to a content of said screen at said location. Optionally, said fine-tuning comprises determining at least one point of interest on said screen responsive to said at least partial address.
[0045] In an exemplary embodiment of the invention, said at least partial screen address is a single character. Alternatively, said at least partial screen address comprises at least two characters.
[0046] In an exemplary embodiment of the invention, said at least partial screen address comprises a first part corresponding to a first screen subdivision direction and a second part corresponding to a second screen subdivision direction.
[0047] In an exemplary embodiment of the invention, said at least partial screen address comprises a complete screen address.
[0048] In an exemplary embodiment of the invention, said at least partial screen address comprises only a part of a screen address.
[0049] In an exemplary embodiment of the invention, said determining stops at a first found screen address that matches said at least partial address.
[0050] In an exemplary embodiment of the invention, a complete screen address is unique for said screen.
[0051] In an exemplary embodiment of the invention, said determining automatically selects from a plurality of matches to the at least partial address.
[0052] In an exemplary embodiment of the invention, said method comprises manually selecting from a plurality of matches to the at least partial address.
[0053] In an exemplary embodiment of the invention, said method comprises providing a dictionary containing an indication associating at least one of an addressing possibility and an addressing priority of screen objects. Optionally, said screen objects include text words. Alternatively or additionally, said screen objects include icons. Alternatively or additionally, said screen objects include graphic objects.
[0054] In an exemplary embodiment of the invention, said dictionary defines a limited subset of screen objects as being addressable. Alternatively or additionally, said dictionary is personalized for a user.
[0055] In an exemplary embodiment of the invention, said method comprises displaying an indication of a mapping of screen addresses to screen locations on said screen. Optionally, said indication comprises a grid. Alternatively or additionally, said indication comprises a plurality of tags. Alternatively or additionally, said indication comprises a keyboard image.
[0056] In an exemplary embodiment of the invention, said indication is displayed using a gray-level shading. Alternatively or additionally, said indication is displayed using a color shading. Alternatively or additionally, said indication is displayed by modulating said screen content. Optionally, said modulating comprises inverting. Alternatively or additionally, said modulating comprises embossing.
[0057] In an exemplary embodiment of the invention, said displaying is momentary.
[0058] In an exemplary embodiment of the invention, said system comprises one of a desktop computer, an embedded computer, a laptop computer, a handheld computer, a wearable computer, a vehicular computer, a cellular telephone, a personal digital assistant, a set-top box and a media display device.
[0059] In an exemplary embodiment of the invention, said pointing comprises bouncing a text cursor. Alternatively or additionally, said pointing comprises bouncing a selection cursor.
[0060] In an exemplary embodiment of the invention, said method comprises receiving an entry from said user corresponding to a desired mouse action.
[0061] In an exemplary embodiment of the invention, said determining is limited to a part of the screen. Optionally, said part of a screen comprises a window.
[0062] In an exemplary embodiment of the invention, said determining comprises determining on an entire screen.
[0063] In an exemplary embodiment of the invention, said determining comprises determining in across windows of different applications on said screen.
[0064] In an exemplary embodiment of the invention, said screen addresses indicate said locations at a high spatial resolution.
[0065] In an exemplary embodiment of the invention, said screen addresses indicate said locations at a low spatial resolution.
[0066] In an exemplary embodiment of the invention, said screen addresses indicate said locations at a varying spatial resolution.
[0067] There is also provide din accordance with an exemplary embodiment of the invention, a method of navigating on a screen displaying a plurality of display elements, relating to a plurality of different applications, comprising:
[0068] defining a subset of said display elements to be relevant, including subset display elements from at least two unrelated applications;
[0069] receiving a user input indicating a relative motion, said input indicating a count and a direction; and
[0070] responsive to said user input, automatically selecting a subset display element of said subset that is distanced the inputted count of subset elements in the inputted direction; and
[0071] pointing to said selected display element.
[0072] There is also provided in accordance with an exemplar embodiment of the invention, a method of navigating on a screen displaying a plurality of display elements, relating to a plurality of different applications, comprising:
[0073] defining a subset of said display elements to be relevant, including subset display elements from at least two unrelated applications;
[0074] receiving a user input an absolute position, which is adjacent to some of said plurality of display elements; and
[0075] responsive to said user input, automatically selecting at least one subset display element of said subset included in said some of said plurality; and
[0076] pointing to said selected display element.
[0077] Optionally, defining comprises providing a dictionary of associations between display elements and addressability. Optionally, said dictionary is personalized for a user.
[0078] In an exemplary embodiment of the invention, said user input is provided using a mouse. Alternatively or additionally, said user input is provided using a cursor key. Alternatively or additionally, said user input is provided using a speech input.
[0079] In an exemplary embodiment of the invention, said method comprises determining a granularity of said selecting responsive to screen content around said display element.
[0080] Non-limiting exemplary embodiments of the invention will be described in following description of exemplary embodiments, read in conjunction with the accompanying figures. Identical structures, elements or parts that appear in more than one of the figures are labeled with a same or similar numeral in all the figures in which they appear.
[0081]
[0082]
[0083] FIGS.
[0084]
[0085]
[0086] FIGS.
[0087] Reference is now made to
[0088] It should be noted that two cursors are usually provided, a selection cursor
[0089] In the typing mode keyboard
[0090] keys
[0091] keys
[0092] keys
[0093] keys
[0094] In an exemplary embodiment of the invention, in the pointing-clicking mode, keys
[0095] In exemplary embodiments of the invention, any of keys
[0096] In some application software, some keys and/or key-combinations may already be defined to have a function. Optionally, this function is not overridden by the mapping software. One method of avoiding overriding is by defining a prefix key combination required to enter a non-standard keyboard mode. Alternatively or additionally, the assignment of keys for toggling and/or for the pointing mode takes into account common shortcut keys. Alternatively or additionally, a user may redefine key-functions so as to avoid conflict between application and the mapping software. Optionally a configuration utility is provided, for example for use during the installation of the software.
[0097] In some exemplary embodiments of the invention, certain key assignments of function keys
[0098] In an exemplary embodiment of the invention, the pointing clicking mode provides a direct addressing scheme, rather than, or in addition to a relative addressing scheme (such as provided using a mouse). Thus, the mouse cursor (and/or the text cursor) is optionally moved to a new location, rather than shifted in a certain direction by the keyboard. In some cases, fine tuning of the cursor location will be achieved using relative techniques, such as arrow keys.
[0099] In an exemplary embodiment of the invention, one or both of the following addressing schemes are provided:
[0100] a. a temporary-text mode, in which key-presses are used to bounce the cursor to matching text on the display, and
[0101] b. an area-designation mode, in which each screen area is mapped to a specific key or keys.
[0102] c. an indexing mode in which points of interest on the screen are tagged with an index, for example, responsive to the entry of a partial address (of any type).
[0103] In an exemplary embodiment of the invention, one of the modes is designated a default mode which the mapping software uses to translates the key strokes. Alternatively or additionally, a user may define using a certain key stroke (or key strokes) which mode to enter. Alternatively or additionally, the last used mode may be defined as a default. Possibly, one of the key combinations is used to open an interaction window in which a user can define the default and/or the current behavior of the mapping software.
[0104] In an exemplary embodiment of the invention, in the temporary-text mode, when the user enters a string of text using one or more keystrokes, cursor
[0105] Alternatively or additionally, to bouncing text cursor
[0106] The cursor may begin moved as soon as the user starts typing keys. Alternatively, the bouncing may wait until there is a pause in typing. In an exemplary embodiment of the invention, as the user types more keys, the cursor is moved to the nearest sequence which matches all the typed keys. Optionally, the user ends the string with a special key, for example, key
[0107] Optionally, as a default case, the computer assumes that keystroke entries apply a new string. When the user wishes to extend a previous string (from a previous pointing or after a certain delay), the user indicates this by a special keystroke, for example, a key
[0108] In some exemplary embodiments of the invention, a third option “Next string” is also available, either by a special keystroke, for example, a key
[0109] Optionally, when scanning the display screen for a string, the computer begins scanning from the top left corner, and scans first across, a line of text, then down one character. Alternatively, especially where a language that is written from left to right is used, the computer begins scanning from the top right corner. Alternatively, the computer begins scanning from the top left corner, and scans down a line of text, then to the right one character. Alternatively or additionally, the scanning starts from the current text location. Possibly, the scanning is spiral. Alternatively, any other order of scanning maybe used.
[0110] In an exemplary embodiment of the invention, the search is case sensitive. Alternatively, the search is case insensitive. Possibly, a special key is provided to indicate a language of the text to be matched. Alternatively, the language may be determined from the computer settings and/or based on the displayed text and/or characters. Optionally, non-ASCII characters and/or icons may be represented using keystroke combinations. These features may also be controlled using user defaults. Optionally, the keyboard mapping changes, responsive to the language mode the computer or window are in and/or responsive to the major language displayed on the screen.
[0111] Accessing an icon may follow the regular rules, as applied to the associated text. Alternatively, the user may limit his addresses to those referring to icons, window controls, menu items and/or other screen display object subsets, for example, by entering the address with an indication (e.g., a special key stroke or the key sequence “icon”) that it is an icon address. In an exemplary embodiment, a trio of keys, such as “print screen”, “scroll lock” and “pause” represent the icons in the upper right corner of a window in a Windows
[0112] Optionally, a display may be provided to show the keystrokes entered by the user. Alternatively or additionally, text editing keys, such as “backspace” may be used to “edit” the entered keystrokes and thus modify the screen address represented by them. A standard key, such as “esc” may be provided to cancel the current mode and/or the last entry and/or sub-mode change (e.g., screen enlargement).
[0113] In an exemplary embodiment of the invention, address codes for the area-designation mode are provided by the software. In an exemplary embodiment of the invention, the keyboard layout is mapped to the screen or to a portion thereof, so that each key corresponds to one or more screen areas. It is noted that the keyboard has more columns than rows. In an exemplary embodiment of the invention, the keyboard is mapped to a third of the display. In an exemplary embodiment of the invention, the user can select, for example using a certain key stroke or based on the user's previous position, which screen portion is being addressed. Alternatively or additionally, the mapping moves on the screen, for example, once for each keystroke.
[0114] In an exemplary embodiment of the invention, a map of the keyboard is overlaid on the screen to indicate the address codes to a user. The over-laying may be immediate when entering the mode, after a delay or possibly, responsive to a particular key stroke. Alternatively or additionally, other address designations, such as a grid designation, may be used, in which case the address indications may be relegated to the sides of the screen.
[0115] In an exemplary embodiment of the invention, the characters are embossed on the display, so that they minimally interfere with reading the display. Alternatively, other display methods, such as inverse-video, may be used. In different embodiments different character sizes, fonts and styles may be used. In particular, an outline character may be used.
[0116] Reference is now made to FIGS.
[0117]
[0118] In an exemplary embodiment of the invention, the screen division matches the physical keyboard layout, for example a QWERTY or a Dvorak layout, however, this is not essential. In some embodiments, the layout is vertically repeated, as the aspect ratio and/or spatial resolution of the keyboard does not match that of a screen. A special key may be provided for selecting which part of the screen is mapped by the keyboard. Alternatively or additionally, the layout is horizontally repeated. Optionally the screen division is in a grid shape, however, the screen division may also be non-grid, for example, exactly matching the keyboard geometry. This may require a user to select the model of keyboard that he uses, from a list during a configuration stage.
[0119] It is noted that geometric shapes other than rectangles and/or other numbers of rectangles may be used. The aspect ratio of the rectangles may be the same as the screen or it may be different. The reference point may be marked or unmarked. In some cases, more than one character is needed to reference each rectangle.
[0120] The same or different sets of characters may be used for the two axes. If different ones are used, the address designation may be entered in any order and even corrected by typing a new key. Grid lines may be shown or not. Various combinations of the above methods and/or other addressing methods may also be used.
[0121] In an exemplary embodiment of the invention, the addressing grid conforms to the location of objects of interest on the screen, for example, icons on a desktop, menus and window controls. This may include shifting of the grid, distorting the grid and/or varying the resolution of the grid for different parts of the screen. Alternatively or additionally, only objects of interest are tagged, with addresses that can be shown on the screen.
[0122] When a column or row is selected, the entire selected row or column may be marked. Similarly, when a cell is selected, the cell may be marked and/or highlighted.
[0123] In some cases, no screen display of the mapping is needed, as a user may remember the screen mapping and/or use the feedback from the cursor movement to correct his pointing activity.
[0124] As can be appreciated, the pointing resolution using keyboard-mapping may be insufficient for certain uses. In an exemplary embodiment of the invention, various mechanisms are provided for fine-tuning the pointing. Alternatively or additionally, the pointing location is automatically corrected to a portion of the addressed area, based on the content of the area.
[0125] Reference is now made to
[0126] In some embodiments, the grid is made finer alternatively or additionally to actually enlarging a portion of the screen. Optionally, a finer grid and/or an enlargement “pop-up” when a partial address is entered and no selection is made.
[0127] In one example, if the user wishes to change a font size, he will strike the “3” key to reach the font size box, whereupon the cursor will bounce to the rectangle designated by “3”, to the “size” window, which is the most relevant area for text input. Thus, a zooming step is possibly not required. Alternatively, rectangle “3” (and/or nearby rectangles) is enlarged to fill the whole of screen
[0128] Typically, the useful elements are those that can be activated, such as buttons and other user interface objects or those that can be selected, such as text and/or graphic lines. In an exemplary embodiment of the invention, the interest level of a symbol or image portion is determined by analyzing the display presentation of the symbol, for example text (e.g., as compared to a dictionary of keywords), color shape and/or combinations thereof.
[0129] Upon reaching the desired point, a user may emulate a click (or double-click) with a left mouse key, for example, using a key
[0130] As noted above, the mapping software may include a “sticky point” feature in which an address location is automatically fine tuned to the nearest item which might be manipulated by a mouse, for example an icon, a link or a button. Shifting between several relevant items may be achieved, for example using a key such as “Tab”. In an exemplary embodiment of the invention, the identification of the items is by analysis of the screen frame-buffer memory or by tracking the operation of functions that draw or write to the screen. Optionally, a hierarchy of importance between such items is defined, to assist in automatically selecting the most relevant object. Alternatively or additionally, tabs or other mechanisms are provided for jumping between displayed objects, for example words.
[0131] In an exemplary embodiment of the invention, the set of objects that can be selected between is defined by a dictionary. In one example, a direct address is limited to words that appear in a dictionary. Such a dictionary may be global, per application or operating system and/or provided by a user.
[0132] Another optional feature is the identification of text in images, for defining temporary text address codes for an image or portions thereof. In an exemplary embodiment of the invention, if a text string is not found, or possibly even if one match is found, image portions of the screen are analyzed to determine their text content, to allow a user to bounce the cursor to them. Such “embedded” text is common, for example in Internet images and in icons. Many methods of OCR are known in the art and may be used to detect such embedded text. In an exemplary embodiment of the invention, a degraded OCR is used, which only matches the image to the search string and does not attempt to extract the complete text string if it appears not to match the search string.
[0133] Alternatively, in an exemplary embodiment of the invention, the image may include therein an encoding of its content. In one example, such encoding is achieved by modifying the LSB bits of the image, for example 2 bits in a 24 bit image. The encoding may include, for example, the text content of the image or description of objects shown in the image. Optionally, the description includes coordinates and/or extents of the objects. Thus, the required information is available in the frame buffer. In one example, an image including a horse may include an embedding of the text “horse”. If a user types “horse”, the cursor will move to the image of the horse. Such embedding of information may be used for uses other than cursor control, for example for selecting from a menu which includes a textual description of the images or for generating such a menu. Alternatively or additionally, object recognition techniques may be used to generate the embedded text, or, similar to the OCR techniques described herein, to allow matching a text input to the image. Alternatively, a user may enter a description of screen objects, such as “hexagon” or “angle”, and screen objects matching these descriptions will be recognized by the cursor movement software, for example by tracking graphical drawing commands or by using feature recognition software.
[0134] The following is a summary of an exemplary assignment of functions to keys in accordance with an exemplary embodiment of the invention. However, the invention does not require all these key assignments or even the functionality of the keys. In some embodiments, only some of the functions are provided and/or different key-assignments are used.
[0135] 1. toggle key “CHANGE OPERATION MODE” toggles between the typing mode and the pointing clicking mode—key
[0136] 2. “LEFT-MOUSE CLICK”—key
[0137] 3. “HIGHLIGHT CLICK”, to highlight an area between a previous left-mouse click and a current cursor position—key
[0138] 4. “RIGHT-MOUSE CLICK”—key
[0139] 5. “AREA-DESIGNATION-POINTING-MODE” tells the computer to point by area-designation—key
[0140] 6. a “RETURN-TO-TEMPORARY—TEXT-POINTING-MODE”, a key
[0141] 7. an “AREA-DESIGNATION” key —any of keys
[0142] 8. “ENLARGE SCREEN” key—key
[0143] 9. “CONTINUE STRING” key—key
[0144] 10. a “STRING CHARACTER”—any of keys
[0145] 11. “END STRING” key —key
[0146] 12. “NEXT STRING” key —key
[0147] 13. “SHORTCUT-ASSIGNMENT” key —key
[0148] 14. “HELP” key —key
[0149] Optionally, a keyboard overlay or key caps (or stickers) in a set, are provided to mark the new functions of the keys. Alternatively or additionally, additional designated keys may be provided, for example in new keyboards or in laptop computers. Optionally, keys for specific activities may be arranged in a manner that mimics their screen appearance, for example, keys for controlling a window in the operating system Windows95, are arranged in a trio, in the order of “minimize”, “change size” and “close window”. A nearby key may be marked “move”. The keys may be so marked, as well.
[0150] Alternatively, keys with changing displays (on them or near them), for example miniature LCD or LED displays are used to show the instant or possible function of the key.
[0151] Let us follow an example, in which a user has just checked his e-mail, as illustrated in
[0152] Step 1: Key
[0153] Step 2: “xyz” (a string) followed by key
[0154] The computer will bounce the cursor to box
[0155] Step 3: Key
[0156] The computer will bounce the cursor to box
[0157] Reference is now made to FIGS.
[0158] In general, the described process checks if the key is to be treated other than in a standard (prior art fashion), checks if the key is used to modify the mapping software behavior (and changes it) and then determines the address indicated by the key (and suitably moves the cursor). In some cases, the process is re-entered by a user applying a multi-key sequence. Optionally, the software remembers, at least for a certain minimum time, the state it was in after the last key was typed, to facilitate multi-key sequences.
[0159] First, a keystroke is entered (
[0160] Step
[0161] If the computer is in typing mode (
[0162] If the computer is not in typing mode, key is analyzed to determine if it is meant to modify the functionality of the mapping software or if it is an address code for the mapping software to use.
[0163] Step
[0164] In an exemplary embodiment of the invention, when this key, or its associated key, ENLARGE SCREEN, are not struck, the computer assumes that the temporary-text pointing mode should be used. Alternatively or additionally, when the enlarge screen key is struck, the mode is switched to area designation mode. Thus, the operational mode can follow the modifying keys of that mode.
[0165] If the key emulates a left mouse click (
[0166] If a right click is emulated (
[0167] If the key represents a highlight (or select) function (
[0168] Also, a “drag” key and/or other keys that emulate mouse functions such as known in the art of mouse emulation, may be provided. Correct entry by a user of area addressing codes may be important, for example, if the entered keys are meant to emulate an area-selection function or a drag function of a mouse.
[0169] If the software is in temporary-text pointing mode (
[0170] In temporary text mode, if the key means “NEXT STRING?” (
[0171] If the key means “BEGIN STRING?” (
[0172] If the key means “CONTINUE STRING?” (
[0173] If the key is a printable character or one that represents a screen element (
[0174] If the key means “END STRING?” (
[0175] Optionally, if the string is not found, the computer will print a message to this effect (
[0176] Returning to step (
[0177] If the key is an address for a screen area (
[0178] If the key means “ENLARGE SCREEN?” (
[0179] Optionally, if a key is undefined, the computer will print a message to that effect (
[0180] In some exemplary embodiments, several keys may be struck one after the other, as one step, and the computer will check all these keys and perform the tasks associated with them, before waiting for another keystroke.
[0181] In some exemplary embodiments of the invention, the user may fine-tune a cursor position, for example using the arrow keys. Optionally, these keys move the cursor one character position, or a fixed number of pixels with each keystroke. Alternatively, the step sizes increase and/or decrease automatically, for example as a function of the time between presses or as a function of the count of the correction. In another example, on a tool bar, a tab will move the cursor to the next symbol, a backspace will move the cursor to a previous symbol, and an up or down arrow key will move the cursor to the upper or lower tool bar. Alternatively or additionally, the mapping methods described herein may apply to a toolbar or a set of toolbars, for example, each letter corresponding to a linear position along the toolbar.
[0182] In an exemplary embodiment of the invention, an indexing mode is provided. When indexing, a partial address (or even no address) are used to generate index-entries for all the relevant objects to be selected. The user can select a particular one of the relevant objects by entering its index value. In one example, typing “s” will select all the words starting (or ending, or containing) “s”, as relevant objects. Each such word may be assigned an index, for example a single digit or character or a numerical code. In an exemplary embodiment of the invention, digits and function keys are used as index entries. Typing the index code will bounce the cursor to the particular word.
[0183] Optionally, keys that may comprise a rest of an address (e.g., letters or digits, depending on the screen contents), do not form index entries. Alternatively, in some applications, multiple pressings of a same key can be expected, so that key is not used as an index entry.
[0184] When the number of index entries is not sufficient, a “next key” as described above, or the original partial address, may be typed to prompt marking the next set of relevant words. As noted above, the set of relevant words may be limited to words (or graphical objects) that appear in a dictionary. Such a dictionary may include individual examples as well as groups (e.g., “all icons” or “all bold words”). Optionally, the sets of words and/or indexing within words are selected in order of relevance, rather than in order of screen appearance.
[0185] In an exemplary embodiment of the invention, the intentions of a user may be guessed, or at least prioritized. In one example, an open menu, a modal dialog box or a single word on the screen will suggest that any entry probably refers to that object.
[0186] In an exemplary embodiment of the invention, indexing can also be used for selecting an icon. In an exemplary embodiment of the invention, a text string is associated with an icon, for example the text “start” is associated with the windows “start” icon. When indexing is generated, also that icon may be marked. Such associating may also be used for other addressing schemes.
[0187] In an exemplary embodiment of the invention, non-addressed items are also marked with an index, for example, window controls such as scroll bars or other items that a user is likely to want to access.
[0188] In an exemplary embodiment of the invention, the pointing mode may be a permanent mode, a temporary mode or a hybrid mode, for example one that allows both typing and pointing. In an exemplary embodiment of the invention, the following is a description of methods of carrying out typical user interface interactions, using a pointing mode.
[0189] Direct Pointing. Pressing a key button for 0.3-0.5 sec results in indication a beep. If the key is released, indexing tags appear (at words starting with the key letter). Otherwise, a normal repeat sequence of the key is initiated. Pressing one of indexing tags results in cursor movement to the location of the tag, after which the tags disappear. In a voice version (described in more detail below): saying “point at” or “jump”, followed by the first letter of a word or the whole word.
[0190] Relational Cursor Movement. One of two modes of cursor movement is selected by a toggle key (Alt or Ctrl):
[0191] a. Navigation between objects.
[0192] b. Movement in pixel or character steps.
[0193] When in one of these modes, pressing the toggle key simultaneously with arrow key results in cursor movement in the opposite mode. Voice version: saying “change mode”.
[0194] Left/Right click, Double-click. In a laptop keyboard can use the dedicated “mouse buttons”. In a regular keyboard can use any two (configurable) buttons. Voice version: saying “left click”, “right click”.
[0195] Scroll (mouse wheel), Auto Scroll (x-button). Right double click enters auto scroll mouse mode (an indicating cursor appears). Manual scroll (mouse wheel) is activated by pressing Alt and arrow key simultaneously. Voice version: saying, “auto scroll”.
[0196] Drag-and-Drop (including window move/resize, drag/drop of selected areas). When the cursor is on an object or on a selected area, prolonged press of the left mouse button results in displaying a “virtual keyboard” layout on the screen and beginning of “drag” operation. The user may then either press cursor keys, or press one of the tags, both resulting in dragging the object to the desired destination. Also, the user may choose direct pointing in order to reach the destination. When the user releases the left mouse button, he performs the “drop” part of the action, and tags disappear. Voice version: saying “drag” selects the object and displays the virtual keyboard, as described above. Saying “drop”, drops the object.
[0197] Area/object(s) selection can be performed similarly to the drag and drop operation.
[0198] In an exemplary embodiment of the invention, a word is defined as in standard word processors. Alternatively or additionally, a word may be defined as any sequence of characters, with font style changes and/or spaces indicating a change in the word. In an exemplary embodiment of the invention, a user can select whether the operation will reach a word start, end, center, select the word or be any other position relative to the word. Such selection may be, for example, by default definition, automatic, based on a system assumption or manually, by using a suitable key stroke(s).
[0199] In some exemplary embodiments of the invention, when there is a text cursor on the screen, in addition to the pointing cursor, the text cursor remains in place, while the pointing cursor is bounced to a new location by the keyboard. Alternatively, the two cursors are bounced together. Alternatively, the text cursor joins the pointing cursor upon a left-mouse click. Alternatively, the user may specify whether to bounce the text cursor or leave it in tact.
[0200] In some exemplary embodiments of the invention, a user may request an interactive mode of operation. Only three key assignments are made: toggle switch between the typing mode and the pointing clicking mode, for example, key
[0201] In some exemplary embodiments of the invention, toggle key
[0202] In some exemplary embodiments of the invention, when using the area-designation pointing mode, only a portion of the screen area is addressed. Alternatively or additionally, the resolution of addressing is different for different parts of the screen, for example responsive to their content, frequency of access and/or their distance from the current cursor position.
[0203] The mapping software may be provided for many graphical operating systems, for example MS WINDOWS, X11, Mac-OS, and OS/2. In an exemplary embodiment of the invention, a single interface is provided for many such systems, to allow a user to be. comfortable with many such systems.
[0204] The above-described mapping software can be integrated with a computer in various ways. In an exemplary embodiment of the invention, especially suitable for MS windows, the mapping software is implemented as a keyboard driver. Alternatively or additionally, the mapping software is implemented as a mouse driver. Possibly, the mouse can continue working in parallel with the mapping software, however, in some cases, a user may desire to disable the mouse. Possibly, the mapping software captures window draw functions, as is known in the art, so as to keep track of the display. Alternatively or additionally, the mapping software reads the required information directly from the frame-buffer. Alternatively, the mapping software may be integrated into the operating system, possibly as a patch. In laptop computers, for example, the mapping software may be implemented on a hardware level, so as to generate suitable mouse and keyboard signals to the motherboard.
[0205] In an exemplary embodiment of the invention, the mapping software comprises operating system dependent and operating system independent modules. In an exemplary embodiment of the invention, the operating system independent modules include modules for managing the interaction with the user, for matching addresses to content and for modifying and for retrieving screen content. Operating system dependent modules can include, for example, the specific interfaces to the keyboard (or other input device) and the screen, and a module for interacting with the operating system for determining what is being drawn on the screen.
[0206] In an exemplary embodiment of the invention, a user can designate, for example by keystroke or based on mouse focus, a window to which to limit the mapping and positioning. Alternatively or additionally, different maps and/or map resolutions may be provided for each window. In an exemplary embodiment of the invention, the mapping covers the entire window, including menus and/or window controls. Although the pointing function is preferably provided at the operating system level, so that it can be independent of application specifics, in some embodiments of the invention, the pointing may be provided at an application level, at least for some of the features described herein.
[0207] In an alternative embodiment, a smart keyboard is provided that receives an indication of the screen contents and locally processes keystrokes using this indication to determine a position for a cursor. In one example, the indication comprises a stream of text content of the frame buffer transmitted by RS232 from the computer (or other device, such as a TV) to the keyboard. The processing may be as described above.
[0208] The above invention has been described mainly with reference to standard PC keyboards, however, it may be applied to devices with no standard keyboards especially such devices with a limited or no graphical pointing ability or in which a mouse or other dedicated pointing device is inconvenient to use, for example, laptops, PDAs, devices with folding keyboards, Java machines, set-top boxes (e.g., using a remote control), digital TVs and cellular telephones. In such devices, other selections of keys and mapping of keys may be provided for.
[0209] In an exemplary embodiment of the invention, the keyboard is limited with respect to the number of available keys (or distinct recognizable sounds, in a speech entry system or a DTMF system). In an exemplary embodiment of the invention, a recursive grid-type mapping is used, as described above. Alternatively or additionally, each key can represent multiple characters, for example, “2” can be any one of {2, a, b, c}. In an exemplary embodiment of the invention, these other possibilities are not used for generating an index, to allow for multiple entry of the same key, to select a letter. Alternatively or additionally, each key entry is assumed to represent the entire set, so, for example, all words starting with one of {2, a, b, c} are selected for indexing or mapping, when the “2” key is pressed. This is a type of pattern matching which is indicated above as a possibility in address entry. It is expected that, in general, any original ambiguity between possibilities will be narrowed down to a small number as the user enters more characters.
[0210] In addition, the above methods of cursor motion control may be used as to fine tune cursor commands entered by other means, such a pointing devices, eye-gaze devices, touch screens and/or speech commands. Alternatively or additionally, these alternate input means may be used to fine-tune a cursor position entered as described herein.
[0211] Further, it is noted that alternatively to using a keyboard to enter text, other means, such as speech and pen entry means may be used. An additional benefit of pen entry is the ability to draw geometrical shapes that correspond to screen portions. Optionally, such input entry is used to navigate over the entire screen, rather than within a particular application. However, in an exemplary embodiment of the invention, once a particular window has been selected, a within-window or within application navigation scheme may be used, possibly even for hidden parts of the window.
[0212] With regard to speech entry, in some embodiments of the invention a lower quality speech entry system is used. In one example, all that is necessary is to recognize letters and digits, for example for use in direct or indirect addressing. Alternatively or additionally, speech may be used for mode switching. Alternatively or additionally, a voice mouse mode is used for relative motion of the cursor.
[0213] In an exemplary embodiment of the invention, when a speech pattern is received, a template matching method is used to recognize the speech content. However, matching is only to templates of words that are on the screen, so there is less matching actions to be performed and a greater latitude in the speech signal can be allowed. Possibly, only constants are matched.
[0214] In a combined mode, the index and/or a partial address are entered in one input modality, for example voice or keyboard, and the rest is entered in another modality, for example keyboard or speech.
[0215] In an exemplary embodiment of the invention, matching templates for the screen contents, or a list of templates to use, are provided prior to the entry by the user, for example, with the display page (e.g., an Internet), or them being calculated as the display is generated.
[0216] A particular application which can utilize speech control is a virtual reality application, in which the user's display comprises goggle that display a virtual world or an overlay. The “mapping” can optionally be provided using the display goggles. In a cellular telephone application, or in an application where a cable TV set top box (or other display device) is programmed via telephone connection, voice and DTMF can utilize the existing microphone.
[0217] In an exemplary embodiment of the invention, the above methods of text recognition on a computer screen are used to automatically alert a user or perform some other task responsive to text appearing on a display. In one example, such a software can be used as a censor to blacken a screen if sexually explicit language appears on the screen. In another example, a user that is inundated by the data flowing through the screen can be assured that when a desired key word appears, it position will be marked and he will be alerted.
[0218] The above description has focused on pointing using a cursor. However, in some embodiments of the invention, the system being interfaced with does not use a cursor. The above method scan, however, be applied to such a system, if the pointing method (e.g., direct addressing) is used to indicate a location to the system internal functions. Once the location is noted by the system, it maybe used to affect control of the system, for example by selecting an icon.
[0219] It should be appreciated that the above-described embodiments contain many features, not all of which need be practiced in all embodiments of the invention. Rather, various embodiments of the invention will utilize only some of the above described techniques, features or methods and/or combinations thereof. Further in addition, various modifications will be readily apparent to and may be readily accomplished by persons skilled in the art without departing from the spirit and the scope of the above teachings.
[0220] The present invention has been described in terms of exemplary, non-limiting embodiments thereof. It should be understood that features described with respect to one embodiment may be used with other embodiments and that not all embodiments of the invention have all of the features shown in a particular figure. Although some exemplary embodiments may have been described only as method, the scope of the invention includes software and/or hardware required to perform the methods, typically a personal computer. Additionally, the scope of the invention includes diskettes, CDs and/or other computer storage media including thereon representations of software suitable for carrying out at least one embodiment of the present invention. In particular, the scope of the invention is not defined by the exemplary embodiments but by the following claims. When used in the following claims, the terms “comprises”, “comprising”, “includes”, “including” or the like mean “including but not limited to”.