Remote display of an image by transmitting compressed video frames representing back-ground and overlay portions thereof
First Claim
1. A method of operating a computer, comprising the steps of:
- instantiating application programs each being associated with a corresponding one of control objects appearing on a dialog video image to be subsequently displayed on a display device coupled to a communications medium connected to said computer;
transmitting over said communications medium a sequence of at least one compressed video frame collectively representing an unhighlighted version of said dialog video image, the transmitted video frames being encoded according to a compression algorithm that is capable of describing a single image by an independent video frame and also capable of describing the differences between a pair of images by a change video frame;
transmitting over said communications medium a change video frame representing changes to be made to said unhighlighted dialog video image in order to highlight an initial one of the control objects appearing thereon;
awaiting the receipt of a keystroke identifier from said communications medium;
executing the following navigation steps if the received keystroke identifier represents one of a set of navigation commands to be carried out by said computer;
(i) transmitting over said communications medium a change frame representing changes to the displayed dialog image that are necessary to unhighlight the control object that is currently highlighted;
(ii) selecting another of said control objects for highlighting as directed by said one navigation command; and
(iii) transmitting over said communications medium a change frame representing changes to said dialog image that are necessary to highlight the selected control object; and
invoking the application program associated with the currently-highlighted control object if said keystroke identifier represents a select command to be carried out by said computer.
2 Assignments
0 Petitions
Accused Products
Abstract
An interactive video system employs Motion Picture Expert Group (MPEG) video compression to transfer images from a remote server to a television. The images correspond to dialog frames in a graphical user interface. During an authoring process, the dialog frames are created by first creating a background image and then adding foreground elements, such as buttons. A set of MPEG video frames is created by encoding the resulting images according to the MPEG algorithm. The MPEG video frames are delivered to the television in sequence, where an MPEG decoder uses them to reconstruct the dialog images that are subsequently displayed. The system also contains an object-oriented database that maintains the necessary MPEG file ordering and also carries out menu navigation commands received from the user. The object classes include NODE, BRANCH, and DISPLAY. NODE objects correspond to dialog frames, and BRANCH objects correspond to user-selectable features such as buttons. DISPLAY objects correspond to either complete or partial images, as described in corresponding MPEG files. Data and function elements within the objects allow the system to track the user'"'"'s navigation commands, and to highlight and unhighlight selectable features as navigation proceeds in order to provide visual feedback to the user.
286 Citations
22 Claims
-
1. A method of operating a computer, comprising the steps of:
-
instantiating application programs each being associated with a corresponding one of control objects appearing on a dialog video image to be subsequently displayed on a display device coupled to a communications medium connected to said computer; transmitting over said communications medium a sequence of at least one compressed video frame collectively representing an unhighlighted version of said dialog video image, the transmitted video frames being encoded according to a compression algorithm that is capable of describing a single image by an independent video frame and also capable of describing the differences between a pair of images by a change video frame; transmitting over said communications medium a change video frame representing changes to be made to said unhighlighted dialog video image in order to highlight an initial one of the control objects appearing thereon; awaiting the receipt of a keystroke identifier from said communications medium; executing the following navigation steps if the received keystroke identifier represents one of a set of navigation commands to be carried out by said computer; (i) transmitting over said communications medium a change frame representing changes to the displayed dialog image that are necessary to unhighlight the control object that is currently highlighted; (ii) selecting another of said control objects for highlighting as directed by said one navigation command; and (iii) transmitting over said communications medium a change frame representing changes to said dialog image that are necessary to highlight the selected control object; and invoking the application program associated with the currently-highlighted control object if said keystroke identifier represents a select command to be carried out by said computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of operating a computer, comprising the steps of:
-
1) instantiating application programs each being associated with a corresponding one of control objects appearing on a dialog video image to be subsequently displayed on a display device coupled to a communications medium connected to said computer; 2) instantiating a node object associated with said dialog video image and having the following attributes; a) an initial frame pointer to point to a display object to be subsequently instantiated that is associated with said node object and also with said dialog video image; b) a focus pointer to point to a selected one of branch objects to be subsequently instantiated that are associated with said node object and respectively associated with corresponding ones of said control objects; c) an initial focus data element to serve as the initial value of said focus pointer; and d) an initialize function to carry out the following steps upon execution; i) transmitting over a communications medium connected to said computer a set of at least one video files stored on said computer whose file name is contained within the display object pointed to by said initial frame pointer, said set of video files representing an unhighlighted version of said dialog video image; ii) initializing said focus pointer with said initial focus data element; and iii) executing a hilight function of an initial branch object pointed to by said initial focus data element in order to highlight a corresponding initial control object; 3) instantiating said branch objects, each having the following attributes; a) a hilight display object pointer to point to a hilight display object to be subsequently instantiated that is associated with the branch object being instantiated and with the corresponding control object; b) an unhilight display object pointer to point to a unhilight display object to be subsequently instantiated that is associated with the branch object being instantiated and with the corresponding control object; c) a hilight function to carry out the following steps upon execution; i) transmitting over said communications medium a video file stored on said computer whose file name is contained within said hilight display object, the transmitted video file representing a corresponding version of said dialog video image in which the control object associated with the branch object being instantiated is highlighted; d) an unhilight function to carry out the following steps upon execution; i) transmitting over said communications medium a video file stored on said computer whose file name is contained within said unhilight display object, the transmitted video file representing a corresponding version of said dialog video image in which the control object associated with the branch object being instantiated is unhighlighted; and e) a select function to invoke upon execution the one of said application programs that is associated with both the branch object being instantiated and the corresponding control object appearing on said dialog video image; 4) incorporating navigational attributes among said node object and said branch objects upon instantiation thereof, said navigational attributes including at least one navigation function to carry out the following steps upon execution; executing said unhilight function of the branch object pointed to by said focus pointer; changing said focus pointer to point to a different one of said branch objects as directed by the one of a set of navigation commands that is represented by a keystroke identifier whose receipt from said communications medium has resulted in the execution of the navigation function; and executing said hilight function of the branch object pointed to by said focus pointer after it has been changed; 5) instantiating all of said display objects associated with said node object and branch objects, each display object having the following attributes; a) a video file name of an associated video file stored on said computer associated with a corresponding one of said unhighlighted and highlighted versions of said dialog video image; 6) executing said initialize function of said node object; 7) awaiting the receipt of a keystroke identifier from said communications medium; 8) executing said navigation function upon receipt of a keystroke identifier representing one of said set of navigation commands; and 9) executing the select function of the branch object pointed to by said focus pointer upon receipt of a keystroke identifier representing said select command. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of operating a computer, comprising the steps of:
-
1) instantiating application programs each being associated with a corresponding one of control objects appearing on a dialog video image to be subsequently displayed on a display device coupled to a communications medium connected to said computer; 2) instantiating a node object associated with said dialog video image and having the following attributes; a) an initial overlay sequence pointer to point to an ordered list of display objects to be subsequently instantiated that are associated with said node object and also with said dialog video image; b) an initial text pointer to point to a text object to be subsequently instantiated that is associated with said node object and also with said dialog video image; c) a focus pointer to point to a selected one of branch objects to be subsequently instantiated that are associated with said node object and respectively associated with corresponding ones of said control objects; d) an initial focus data element to serve as the initial value of said focus pointer; e) an initialize function to carry out the following steps upon execution; i) sequentially transmitting over a communications medium connected to said computer a set of Motion Picture Expert Group (MPEG) files stored on said computer whose respective file names are contained within corresponding ones of the ordered list of display objects pointed to by said initial overlay sequence pointer, said set of MPEG files representing an unhighlighted version of said dialog video image; ii) executing a hilight function of an initial one of said branch objects pointed to by said initial focus data element; iii) transmitting over said communications medium all of the data elements contained in the text object pointed to by said initial text pointer; and iv) initializing said focus pointer with said initial focus data element; and f) a find-- branch function to carry out the following steps upon execution; i) comparing a response code received from said communications medium with each of distinct predetermined response codes, each of said predetermined response codes being contained in a corresponding one of said branch objects; ii) executing an unhilight function contained in the branch object whose response code matches the received response code; iii) changing said focus pointer so that it points to the branch object containing the matching response code; and iv) executing a hilight function of the branch object pointed to by said focus pointer after said changing step has been executed; 3) instantiating said branch objects, each having the following attributes; a) a hilight display object pointer to point to a hilight display object to be subsequently instantiated that is associated with the branch object being instantiated and with the corresponding control object; b) an unhilight display object pointer to point to a unhilight display object to be subsequently instantiated that is associated with the branch object being instantiated and with the corresponding control object; c) a response code to be used by said find-- branch function; d) up, down, left, and right branch pointers to point respectively to corresponding up, down, left, and right ones of said branch objects that are correspondingly spatially related to the branch object being instantiated; e) a destination node pointer to point to a child node object to be subsequently instantiated if its activation is intended to result from activation of the branch object being instantiated, and to otherwise contain a null value; f) a hilight function to carry out the following steps upon execution; i) transmitting over said communications medium an MPEG file stored on said computer whose file name is contained within said hilight display object, the transmitted MPEG file representing a corresponding version of said dialog video image in which the control object associated with the branch object being instantiated is highlighted; and ii) transmitting over said communications medium all of the data elements contained in a text object to be pointed to upon its subsequent instantiation by a text pointer contained within said hilight display object; g) an unhilight function to carry out the following steps upon execution; i) transmitting over said communications medium an MPEG file stored on said computer whose file name is contained within said unhilight display object, the transmitted MPEG file representing a corresponding version of said dialog video image in which the control object associated with the branch object being instantiated is unhighlighted; and ii) transmitting over said communications medium a text string consisting of character blanks to be used to erase any text associated with said branch object that was displayed as a result of executing said hilight function; h) an application-- call function to call upon execution one of said application programs that is associated with the branch object being instantiated; i) a select function to carry out the following steps upon execution; i) executing the initialize function of the child node object pointed to by said destination pointer if said destination pointer does not contain said null value; and ii) executing said application-- call function if said destination pointer contains said null value; j) up, down, left, and right arrow functions to respectively carry out the following steps upon execution; i) executing the unhilight function of the branch object being instantiated; ii) changing the value of said focus pointer of said node object to the value of the corresponding one of said up, down, left, and right branch pointers; and iii) executing the hilight function of the branch object pointed to by said focus pointer after said changing step has been executed; 4) instantiating all of said display objects associated with said node object and branch objects, each display object having the following attributes; a) a Motion Picture Experts Group (MPEG) file name of an associated MPEG-format file associated with a corresponding one of said unhighlighted and highlighted versions of said dialog video image; b) a previous display object pointer to point to a display object immediately preceding the display object being instantiated in a sequence of display objects; c) a next display object pointer to point to a display object immediately following the display object being instantiated in said sequence of display objects; and d) a text pointer to point to a text object to be subsequently instantiated that is associated with the display object being instantiated; 5) instantiating all of said text objects associated with said node object and display objects, each text object having the following attributes; a) a text string associated with the text object being instantiated; b) a color value to indicate a color in which said text string is to be displayed; c) X and Y coordinates to respectively indicate horizontal and vertical components of a screen position where said text string is to be displayed; d) a font value to indicate a font in which said text string is to be displayed; and e) a size value to indicate a size in which said text string is to be displayed; 6) executing said initialize function of said node object; 7) awaiting the receipt of a keystroke identifier from said communications medium; 8) executing the select function of the branch object pointed to by said focus pointer if said keystroke identifier indicates that a "select" key has been pressed; 9) executing the corresponding one of said up, down, left and right functions of the branch object pointed to by said focus pointer if said keystroke identifier indicates that a corresponding one of "up", "down", "left" and "right" keys has been pressed; 10) executing said find-- branch function if said keystroke identifier is a response code; and 11) repeating the preceding four steps until the receipt of a keystroke identifier results in the execution of the application-- call function in one of said branch objects.
-
Specification