Display screen duplication system and method
First Claim
1. A method of transmitting display data from a first display to a second display, comprising:
- segmenting the first display into predefined blocks, each block containing a plurality of pixels;
calculating and storing first values, each representing all of the pixels in a corresponding block;
calculating second values, each representing all of the pixels in the corresponding block, after passage of time during which the pixels may have changed; and
transmitting changed blocks from the first display to the second display when the first and second values for the changed blocks are unequal.
1 Assignment
0 Petitions
Accused Products
Abstract
Duplicate copies of all or a portion of a display screen may be maintained at two or more computer systems with efficient use of memory, processor and bandwidth resources. The display screens are segmented into a two-dimensional matrix of blocks. A value, such as a CRC, is computed for each of the blocks and stored with a pointer to the corresponding block of the display screen. Changes in the display screen are detected by repeatedly calculating the values and comparing with previously stored values for the corresponding block. When the values are different, the pointers are temporarily stored until a predetermined period of time or all the blocks have been checked. When at least one of these criteria is met, adjacent blocks are transmitted as a group, preferably using compression.
-
Citations
28 Claims
-
1. A method of transmitting display data from a first display to a second display, comprising:
-
segmenting the first display into predefined blocks, each block containing a plurality of pixels; calculating and storing first values, each representing all of the pixels in a corresponding block; calculating second values, each representing all of the pixels in the corresponding block, after passage of time during which the pixels may have changed; and transmitting changed blocks from the first display to the second display when the first and second values for the changed blocks are unequal. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method of maintaining a copy of a first display at a second display, comprising:
-
calculating and storing first values and identifiers in a grid list, each of the first values representing a plurality of pixels in one of a plurality of blocks into which the first display is segmented; executing a first thread to repeatedly calculate second values of the blocks having corresponding identifiers in the grid list, each of the second values representing a plurality of pixels in the one of the blocks after passage of time during which the pixels may have changed, compare the second values with the first values stored in the grid list, remove the identifiers of changed blocks from the grid list and store the identifiers and the second values of the changed blocks in a changed block list when differences between the first and second values of the changed blocks are detected, and move the identifiers and the second values of the changed blocks from a return list to the grid list after data has been sent to the second display to update the copy of the first display to include the changed blocks; and executing a second thread to repeatedly remove the identifiers from the changed block list, read the contents of the changed blocks from a display memory of the first display, based on the identifiers removed from the changed block list, to obtain the contents of the changed blocks for transmission, transmit the data corresponding to the changed blocks to the second display, and store the identifiers and the second values of the changed blocks in the return list after the data is transmitted to the second display. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A system for maintaining a copy of a first display at a second display, comprising:
-
a storage unit to store first values and identifiers in a grid list, each of the first values representing a plurality of pixels in one of a plurality of blocks into which the first display is segmented; a processor coupled to said storage unit and controlled by a multithreaded operating system to repeatedly calculate by a first thread the first values and, after passage of time during which the pixels may have changed, second values of the blocks having corresponding identifiers in the grid list, each of the second values representing a plurality of pixels in the one of the blocks, compare by the first thread the second values with the first values stored in the grid list, remove by the first thread the identifiers of changed blocks from the grid list and store the identifiers and the second values of the changed blocks in a changed block list when differences between the first and second values of the changed blocks are detected, move by the first thread the identifiers and the second values of the changed blocks from a return list to the grid list after data has been sent to the second display to update the copy of the first display to include the changed blocks, remove by a second thread the identifiers from the changed block list, read by the second thread the contents of the changed blocks from a display memory of the first display based on the identifiers removed from the changed block list to obtain the contents of the changed blocks for transmission, and store by the second thread the identifiers and the second values of the changed blocks in the return list after the data is sent to the second display; and a communication device, coupled to said processor, to transmit the data corresponding to the changed blocks to the second display.
-
-
28. A system for maintaining a copy of a first display screen on a second display screen, comprising:
-
a first display unit to display the first display screen; a first display memory, coupled to said first display unit and segmented into blocks, to display contents of said first display memory as the first display screen; a first storage unit to store first values, each representing a plurality of pixels in one of the blocks of the display memory; a first processor, coupled to said first display memory and said first storage unit, to repeatedly calculate, after passage of time during which the pixels may have changed, second values, each representing a plurality of pixels in the one of the blocks of the display memory and to compare the first and second values; a transmission line, coupled to said first processor, to transmit data representing changed blocks when the first and second values for the changed blocks are unequal; a second display memory to store the contents of the blocks of said first display memory; a second processor, coupled to said transmission line and said second display memory, to receive the data representing the changed blocks and to update the contents of the blocks of said first display memory based on the data received via said transmission line; and a second display unit to display the second display screen based on contents of said second display memory.
-
Specification