USING DOUBLE BUFFERING FOR SCREEN SHARING
First Claim
1. A system comprising:
- an intermediary computer;
the intermediary computer comprising a processor and a memory; and
a module on the intermediary computer configured to cause the processor to;
in response to receiving a communication from a host computer requesting a screen sharing session on the intermediary computer, establish the screen sharing session on the intermediary computer;
receive a communication from the host computer providing an encoded screen image comprising an encoded key frame;
decode the encoded key frame and store the decoded key frame in a first buffer on the intermediary computer;
receive a communication from the host computer providing an encoded screen image comprising a screen image update;
decode the encoded screen image update and apply the decoded screen image update to the stored key frame in the first buffer to create a near live host screen image;
receive a communication from at least one client computer of a plurality of client computers, the communication comprising a request for the at least one client computer to join the screen sharing session on the intermediary computer;
create for each client computer of the plurality of client computers sending a session join request to the intermediary computer, an instance of an encoder on the intermediary computer in a second buffer, the second buffer also comprising a latest version of a host screen image for each client computer of the plurality of client computers sending the session join request;
in response to receiving an update request from the at least one client computer, send an encoded differential screen image update to the at least one client computer, the encoded differential screen image update comprising a difference between the latest version of the host screen image for the at least one client computer and the near live host screen image in the first buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
Remote desktop sharing allows a user to access applications and data on a remote computer over a network. An intermediary computer can communicate with a host computer and one or more client computers to facilitate remote desktop sharing. The host can send the intermediary computer an encoded key frame and encoded updates. The intermediary computer can decode the host screen data, and apply subsequent updates to the decoded image so that the intermediary computer has a near live host screen image in a first buffer. A second buffer on the intermediary computer can store an instance of a screen encoder for each client computer that has joined the session and the most current host image that the client computer has. The encoder compares the near live screen image and the stored client computer host image to create an encoded differential screen image update to pass to the client computer.
-
Citations
20 Claims
-
1. A system comprising:
-
an intermediary computer; the intermediary computer comprising a processor and a memory; and a module on the intermediary computer configured to cause the processor to; in response to receiving a communication from a host computer requesting a screen sharing session on the intermediary computer, establish the screen sharing session on the intermediary computer; receive a communication from the host computer providing an encoded screen image comprising an encoded key frame; decode the encoded key frame and store the decoded key frame in a first buffer on the intermediary computer; receive a communication from the host computer providing an encoded screen image comprising a screen image update; decode the encoded screen image update and apply the decoded screen image update to the stored key frame in the first buffer to create a near live host screen image; receive a communication from at least one client computer of a plurality of client computers, the communication comprising a request for the at least one client computer to join the screen sharing session on the intermediary computer; create for each client computer of the plurality of client computers sending a session join request to the intermediary computer, an instance of an encoder on the intermediary computer in a second buffer, the second buffer also comprising a latest version of a host screen image for each client computer of the plurality of client computers sending the session join request; in response to receiving an update request from the at least one client computer, send an encoded differential screen image update to the at least one client computer, the encoded differential screen image update comprising a difference between the latest version of the host screen image for the at least one client computer and the near live host screen image in the first buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
in response to receiving a communication from a host computer requesting a screen sharing session on an intermediary computer, establishing the screen sharing session on the intermediary computer; receiving a communication from the host computer providing an encoded screen image comprising a encoded key frame; decoding the encoded key frame and storing the decoded key frame in a first buffer on the intermediary computer; receiving a communication from the host computer providing an encoded screen image comprising a differential screen image update; decoding the differential screen image update and applying the decoded differential screen image update to the stored key frame in the first buffer to create a near live host screen image in the first buffer; receiving a communication from at least one client computer of a plurality of client computers, requesting to join the screen sharing session on the intermediary computer; creating a second buffer on the intermediary computer; for each client computer of the plurality of client computers sending a session join request, creating an instance of an encoder on the intermediary computer in a second buffer, and storing a copy of a version of a host screen image in the second buffer for each client computer of the plurality of client computers sending the session join request; in response to receiving an update request from the at least one client computer, sending an encoded differential screen image update to the at least one client computer, the differential screen image update comprising a difference between the copy of a version of a host screen image for the at least one client computer and the near live host screen image stored in the first buffer. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable storage medium comprising computer-executable instructions which when executed cause at least one processor to:
-
in response to receiving a communication from a host computer requesting a screen sharing session on the intermediary computer, establish the screen sharing session on the intermediary computer; receive a communication from the host computer providing an encoded screen image comprising an encoded key frame; decode the encoded screen image and store the decoded key frame in a first buffer on the intermediary computer; receive a communication from the host computer providing an encoded screen image comprising a screen image update; decode the encoded screen image update and apply the decoded screen image update to the stored key frame in the first buffer to create a near live host screen image stored in the first buffer; receive a communication from at least one client computer of a plurality of client computers, the at least one computer requesting to join the screen sharing session on the intermediary computer; create for the at least one computer, an instance of an encoder on the intermediary computer in a second buffer, the second buffer also storing a version of a host screen image for the at least one client computer; in response to receiving an update request from the at least one client computer, send an encoded differential screen image update to the at least one client computer, the differential screen image update comprising a difference between the stored version of the host screen image and the near live host screen image in the first buffer. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification