US2005246433A1PendingUtilityA1
Method and apparatus for facilitating control of a target computer by a remote computer
Est. expiryJan 9, 2024(expired)· nominal 20-yr term from priority
G06F 3/038G09G 2310/04G06F 3/023G09G 2370/24G09G 5/008G06F 3/1462
41
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A method of capturing video from a target computer to update a remote computer's video with the video output of the target computer. The new video frame comprises a series of new frame pixels to be captured The method comprises (A) receiving for comparison a new frame pixel from the series; then (B) comparing the new frame pixel to a corresponding reference frame pixel; then (C) if the final new frame pixel has not been captured, repeating steps A and B for the next new frame pixel in the series.
Claims
exact text as granted — not AI-modified1 . A method of capturing a new video frame from a target computer to permit the updating of a remote computer with the video output of the target computer, wherein said new video frame comprises a series of new frame pixels to be captured, which series includes an initial new frame pixel to be captured and a final new frame pixel to be captured, the new frame pixels to be captured being represented in a video signal from the target computer, the method comprising the steps of, beginning with the initial new frame pixel: (A) receiving for comparison a new frame pixel from the series; then (B) comparing the new frame pixel to a corresponding reference frame pixel; then (C) if the final new frame pixel has not been captured, repeating steps A and B for the next new frame pixel in the series.
2 . The method of claim 1 , wherein said step B comprises the steps of determining if said new frame pixel is different from said corresponding reference frame pixel, and, if said new frame pixel is different from said corresponding reference frame pixel, flagging a new frame update unit corresponding to said new frame pixel if said corresponding new frame update unit has not already been flagged.
3 . The method of claim 1 , the method comprising the step of converting each new frame pixel from analog to digital before said new frame pixel is received.
4 . The method of claim 2 , wherein said new frame update unit comprises a tile representing a plurality of pixels.
5 . The method of claim 4 , wherein the tile represents an area of sixteen by sixteen pixels.
6 . The method of claim 1 , wherein said step B includes the step of reading the corresponding reference frame pixel from a reference buffer, the reading being timed to permit comparison of the new frame pixel to the corresponding reference frame pixel.
7 . The method of claim 1 , wherein said step A further comprises the step of storing the new frame pixel in a new frame storage location, wherein the storing step is timed to permit comparison between the new frame pixel and the corresponding reference frame pixel.
8 . A method of capturing a sequence of new video frames, the method comprising performing the method of claim 1 on each new video frame in the sequence.
9 . A method of capturing a sequence of new video frames, the method comprising performing the method of claim 2 on each new video frame in the sequence.
10 . A method of capturing a sequence of new video frames, the method comprising performing the method of claim 6 on each new video frame in the sequence.
11 . A method of capturing a sequence of new video frames, the method comprising performing the method of claim 7 on each new video frame in the sequence.
12 . A system for capturing a new video frame from a target computer to permit the updating of a remote computer displaying the video output of the target computer, wherein the new video frame comprises a series of new frame pixels to be captured, which series includes an initial new frame pixel to be captured and a final new frame pixel to be captured, the system comprising a comparison module and a memory module operatively connected to said comparison module, the comparison module being configured to receive for comparison the initial new frame pixel from said target computer; then, compare the initial new frame pixel to a corresponding reference frame pixel and save the initial new video frame pixel in the memory module; then, if the final new frame pixel has not been captured, repeat said receiving, comparing and saving steps in respect of the next new frame pixel in the series.
13 . The system of claim 12 , wherein the memory module contains a reference video frame comprising reference frame pixels, and wherein said comparison module is programmed to read said reference frame pixels from said memory module wherein the reading is timed to permit the comparing of said new frame pixels to said corresponding reference frame pixels.
14 . The system of claim 12 , wherein said system further includes an analog to digital converter, operatively connected to said comparison module, for converting said new video frame from analog to digital.
15 . The system of claim 12 , wherein the comparison module comprises a programmable gate array.
16 . The system of claim 15 , wherein the memory module comprises synchronous dynamic random access memory.
17 . The system of claim 12 , wherein the comparison module is programmed to compare said new frame pixel to a corresponding reference frame pixel by (1) determining if said new frame pixel is different from said corresponding reference frame pixel; and (2) if said new frame pixel is different from said corresponding reference frame pixel, flagging a new frame update unit corresponding to said new frame pixel if said corresponding new frame update unit has not already been flagged.
18 . The system of claim 17 , wherein said new frame update unit comprises a tile representing a plurality of pixels.
19 . The system of claim 18 , wherein the tile represents an area of 16 pixels by sixteen pixels.
20 . A method of providing updated video from a target computer for updating a remote computer, the method comprising the steps of:
(A) performing the method of comparing as claimed in claim 2; (B) searching for flags indicating flagged new frame update units; and (C) moving flagged new frame update units to a reference frame output location for eventual transmission to the remote computer;
21 . The method of claim 20 , wherein said new frame update unit comprises a tile representing a plurality of pixels.
22 . The method of claim 20 , wherein the method further comprises the step of generating an interrupt request to a CPU in response to finding one or more flags in step B, whereby the CPU is alerted to the presence of flagged new frame update units.
23 . The method of claim 20 , wherein said step C further includes the step of moving to said reference frame output location, for eventual transmission to the remote computer, screen location data for each said flagged new frame update unit.
24 . The method of claim 23 , wherein the method further comprises the step of generating average colour data associated which each said new frame update unit, and wherein said step C further includes the step of moving, to said reference frame output location, said average colour data, whereby the average colour data can be made available at the remote computer for scaling purposes.
25 . The method of claim 23 , wherein said method further comprises the step of determining, for each flagged new frame update unit, if the new frame update unit is of a single colour, and wherein said step C further comprises the step of setting a single colour flag if the flagged new frame update unit is of a single colour;
whereby bandwidth usage in respect of single colour frames can be reduced by transmitting to the remote computer only the single colour and the screen location of the single colour frame.
26 . A method of determining whether to reacquire a video signal from a target computer, wherein the video signal of the target computer is being compared with reference video, and update data is being generated from the comparison for transmission to a remote computer, the method comprising the steps of:
(A) monitoring a first condition indicating information about a resolution of the video signal; (B) monitoring a second condition indicating information about the resolution of the video signal; (C) if the second condition changes so as to indicate a change in the resolution, but the first condition does not change so as to indicate a change in the resolution, suspending comparison and update data generation and continuing to monitor the first condition to determine whether to reacquire the video signal; and (D) if the second condition continues to indicate a change in the resolution, and the first condition changes so as to indicate a change in the resolution, determining that the video signal will be reacquired.
27 . The method of claim 26 , wherein the method further comprises the step of resuming comparison and update data generation if the second condition recovers from its change and the first condition continues to indicate no change in resolution.
28 . A method as claimed in claim 27 , wherein said first condition comprises a raw H-sync signal associated with the video signal.
29 . A method as claimed in claim 28 , wherein said second condition comprises a regenerated H-sync signal associated with said comparison and data generation of said video signal information.
30 . A method as claimed in claim 29 wherein said second condition comprises a regenerated H-sync signal created by an analog-to-digital converter that is converting said video signal to a digital signal for comparison and update data generation.
31 . The method of claim 29 further comprising the step of resuming comparison and update data generation if the regenerated H-sync recovers from its change and the raw H-sync continues to indicate no change in resolution.
32 . A method as claimed in claims 31 , the method further comprising the step of: if neither the resuming step nor said step D has been performed within a predetermined time, determining that the video signal will be reacquired.
33 . The method of claim 32 , wherein the predetermined time is 5 seconds.
34 . A method of reacquiring a video signal from a target computer, wherein the video signal of the target computer is being compared with reference video, and update data generated from the comparison for transmission to a remote computer, the method comprising the steps of (1) performing the method of determining as claimed in claim 27; and (2) initiating and completing reacquisition of the video signal.
35 . A method of updating video from a target computer on a remote computer, the method comprising the steps of:
(I) comparing a video frame from the target computer to reference video; (ii) generating data in the comparing step for use in updating the remote computer; (iii) reacquiring the video signal by performing the method of claim 31; (iv) when the video signal has been reacquired, resuming said comparing and generating steps.
36 . A digital KVM system comprising:
an analog-to-digital converter for digitizing an incoming video signal to produce a series of new frame pixel digital values; a difference calculator for calculating the difference between each new frame pixel digital value and a corresponding reference frame pixel digital value, the difference calculator comprising a field programmable gate array.
37 . The digital KVM system of claim 36 , wherein the system further comprises an update data generator for generating video update data to be transmitted to a remote computer.
38 . The digital KVM system of claim 37 , wherein the update data generator comprises the field programmable gate array.
39 . A method for improving the promptness with which movement of a mouse at a remote computer is shown on the screen of the remote computer, wherein the mouse is used to create inputs to a target computer via a digital KVM, and the screen of the remote computer is updated by the digital KVM to display the video from the video signal of the target computer, the method comprising the steps of:
maintaining a representation of an initial position of the mouse; receiving at the KVM an indication that the mouse has moved; in response to the indication, interrupting a preprogrammed updating sequence of the KVM and updating the video of the remote computer to reflect the mouse movement; and resuming the preprogrammed sequence.
40 . The method of claim 39 , further comprising the step of changing the representation to reflect a new position resulting from movement of the mouse.
41 . The method of claim 39 , wherein the receiving step comprises the step of receiving at the KVM indication, associated with the video signal, that the mouse has moved.
42 . A system for regulating the transmission of video update units to M remote computers, M being a whole number greater than or equal to one, wherein video frame information is being received from a target computer and video update units being generated in response thereto, and wherein each remote computer is being updated with the update units via a corresponding communication channel having a corresponding speed, the system comprising:
an update unit generator and an update unit output location for holding for transmission pending update units generated by the update unit generator; a scanner associated with each channel, each said scanner being configured to cause transmission of the pending update units from the output location according to a preprogrammed sequence, each scanner having an operating speed that is coordinated with the speed of the corresponding channel; the update unit generator, output location and scanners being configured such that, if a pending update unit is superseded by a new version of the pending update unit prior to being transmitted, the new version will be transmitted and the version of the pending update unit that was superseded will not be transmitted.
43 . The system of claim 42 , wherein the output location is configured to hold only a most recent version of each pending update unit, and not superseded pending update units.
44 . The system of claim 43 , wherein each update unit comprises a tile corresponding to a region of video screen pixels.
45 . The system of claim 44 , wherein the system further includes output location individual tilestamps, the output location individual tilestamps being associated with said output location, with an output location individual tilestamp corresponding to each tile, the system further including output location row tilestamps corresponding to each row of tiles, said output location row tilestamps being associated with the output location and corresponding to each row of tiles, the output location being configured such that the output location individual tilestamps are each incremented each time the corresponding tile is transferred to the output location for transmission.
46 . The system of claim 45 , wherein each output location row tilestamp is configured to be incremented so as to indicate when a tile in the corresponding row has changed.
47 . The system of claim 46 , wherein each output location row tilestamp is incremented so as to comprise the tilestamp of the most recently changed tile in the corresponding row.
48 . The system of claim 45 , the system further including a tilestamp storage location associated with each scanner and its corresponding remote computer, each scanner tilestamp storage location including a storage location individual tilestamp associated with each tile and a storage location row tilestamp associated with each row of tiles, each scanner and corresponding tilestamp storage location being configured such that the preprogrammed sequence comprises:
(A) scanning each storage location row tilestamp; (B) comparing each storage location row tilestamp to the corresponding output location row tilestamp; (C) if the storage location row tilestamp differs from the corresponding output location row tilestamp, determining that the corresponding row contains at least one tile to be transmitted; (D) scanning the storage location individual tilestamps corresponding to tiles within the corresponding row, comparing them to the corresponding output location individual tilestamps, transmitting each tile for which a difference is found between the corresponding storage location tilestamp and the corresponding output location tilestamp, incrementing the corresponding storage location tilestamp to make it equal in value to the corresponding output location individual tilestamp, and resuming the sequence at step A.
49 . A device for permitting control of a target computer by a remote computer, wherein the device is operatively connectable to the remote computer so as to receive remote computer mouse and keyboard signals and transmit video update data to the remote computer, the device further being operatively connectable to the target computer so as to provide the remote computer keyboard and mouse signals as control inputs to the target computer and so as to receive a target computer video signal for generation of video update data, the device including a virtual memory disk, the virtual floppy disk comprising a memory space associated with the device, the device being configured to permit a user of the remote computer to mount the device to the remote computer, transfer data to the virtual memory disk, and unmount the virtual memory disk, the device further being configured to permit the user, by controlling the target computer through the remote computer, to mount the virtual memory disk to the target computer, transfer the data to the target computer, and unmount the virtual memory disk from the target computer.
50 . The device of claim 49 , wherein the memory space is configured so as to mimic the size and memory format a bootable floppy disk, and so as to permit the target computer to reboot from the memory space.
51 . The device of claim 50 , wherein the device is configured to permit an image of the bootable floppy disk to be downloaded into the memory space, such that each byte from the bootable floppy disk is saved at the corresponding byte location of the virtual memory disk.
52 . The device of claim 50 , wherein the device is configured so as to connect the virtual memory disk to the target computer via a USB connection.
53 . The device of claim 49 , wherein the virtual memory disk comprises a virtual CDROM residing on a server operatively connected to the device.
54 . The device of claim 53 , wherein the device and virtual CDROM are configured to present a bootable CDROM to the target computer.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.