Operating system independent method and apparatus for graphical remote access
First Claim
1. A method for transmitting video graphics data, comprising:
- a processor dividing a screen into a number of blocks, the blocks having contents;
the processor periodically reading, from a buffer, the contents of each one of the blocks over a number of passes, wherein each pass reads a different set of blocks, each block within the set being read in its entirety, the set comprising a fraction of all the blocks;
the processor computing a unique value for a first block based on the contents;
the processor comparing the unique value for the first block to a previously computed unique value corresponding to the first block; and
the processor transmitting the contents of the first block if the unique value for the first block is different from the previously computed unique value corresponding to the first block.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for updating video graphics changes of a managed server to a remote console independent of an operating system. The screen (e.g. frame buffer) of the managed server is divided into a number of blocks. Each block is periodically monitored for changes by calculating a hash code and storing the code in a hash code table. When the hash code changes, the block is transmitted to the remote console. Color condensing may be performed on the color values of the block before the hash codes are calculated and before transmission. Compression is performed on each block and across blocks to reduce bandwidth requirements on transmission. Periodically, the configuration of a video graphics controller and a pointing device of the managed server are checked for changes, such as changes to resolution, color depth and mouse movement. If changes are found, the changes are transmitted to the remote console. The method and apparatus may be performed by a separate processor as part of a remote management board, a “virtual” processor by causing the processor of the managed server to enter a system management mode, or a combination of the two.
9 Citations
35 Claims
-
1. A method for transmitting video graphics data, comprising:
-
a processor dividing a screen into a number of blocks, the blocks having contents; the processor periodically reading, from a buffer, the contents of each one of the blocks over a number of passes, wherein each pass reads a different set of blocks, each block within the set being read in its entirety, the set comprising a fraction of all the blocks; the processor computing a unique value for a first block based on the contents; the processor comparing the unique value for the first block to a previously computed unique value corresponding to the first block; and the processor transmitting the contents of the first block if the unique value for the first block is different from the previously computed unique value corresponding to the first block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of transmitting video graphics data, comprising:
-
a processor dividing a screen into a number of blocks; the processor reading, from a buffer, a first block and at least one subsequent block wherein all the blocks are read over a number of passes and wherein each pass reads a different set of blocks, each block within the set being read in its entirety, the set comprising a fraction of all the blocks; the processor comparing the first block to a subsequent block; the processor developing a repeat command based on how many subsequent blocks equal the first block; and the processor transmitting the first block and the repeat command. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A method of transmitting video graphics data, comprising;
-
a processor dividing a screen into a number of blocks; the processor reading, from a buffer, a first block of the screen; the processor compressing the first block; the processor reading, from a buffer, a second block of the screen, wherein all the blocks are read over a number of passes and each pass reads a different set of blocks, each block within the set being read in its entirety, the set comprising a fraction of all the blocks; the processor comparing the first block to the second block; the processor compressing the second block with the first block if the first and second blocks are not equal; and the processor transmitting the compressed blocks. - View Dependent Claims (21, 22)
-
-
23. A computer system for communicating with a remote console, comprising:
-
a video graphics controller having a frame buffer; a communication device; and a processor coupled to the video graphics controller and the communications device, the processor configured to; divide the frame buffer into a number of blocks; periodically read the frame buffer and determine whether any of the blocks have changed since a previous reading, wherein the processor reads all of the blocks over a number of passes and wherein each pass reads a different set of blocks, each block within the set being read in its entirety, the set comprising a fraction of all the blocks; and transmit changed blocks to the remote console via the communications device. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer system for communicating with a remote console, comprising:
-
a video graphics controller having a frame buffer; a monitor connectable to the video graphics controller; a communication device; and a processor coupled to the video graphics controller and the communications device, the processor configured to; divide the frame buffer into a number of blocks; periodically read the frame buffer and determine whether any of the blocks have changed since a previous reading, wherein each of the blocks are read over a number of passes and wherein each pass reads a different set of blocks, each block within the set being read in its entirety, the set comprising a fraction of all the blocks; and transmit changed blocks to the remote console via the communications device.
-
-
35. An apparatus for updating video graphics data for a remote console, comprising:
-
means for dividing a frame buffer into a series of blocks; means for reading one of the blocks, wherein each of the blocks are read over a number of passes and wherein each pass reads a different set of blocks, each block within the set being read in its entirety, the set comprising a fraction of all the blocks; means for computing a hash code for the block; means for comparing the hash code to a previously computed hash code for the block; and means for transmitting the block if the hash codes are not equal.
-
Specification