Method of sharing a desktop with attendees of a real-time collaboration
First Claim
1. A method of sharing a presenter'"'"'s desktop with a collaboration attendee, comprising:
- logically dividing the presenter'"'"'s desktop into a plurality of clusters;
for each cluster, periodically computing a checksum on pixel values in the cluster;
if a checksum for a first cluster differs from a previously computed checksum for the first cluster;
associating one or more attributes with the first cluster, wherein the one or more attributes further include a ratio between a number of pixels in the first cluster that are of a first color and a number of pixels in the first cluster that are of a second color, and wherein a first of said attributes comprises a number of colors of pixels in the first cluster;
identifying a graphical object in the first cluster;
constructing an object primitive block describing the graphical object; and
constructing an action primitive block configured to reproduce the graphical object; and
transmitting said object primitive block and said action primitive block to the collaboration attendee to facilitate reproduction of the graphical object on a client of the attendee.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of facilitating the reproduction of a presenter'"'"'s desktop for attendees of a real-time collaboration. A bound portion of the desktop (the portion shared with the attendees) is logically divided into clusters. When the content of a cluster changes, the cluster is analyzed and one or more objects describing the content may be identified. Each object that is not already cached is cached and assigned a cache ID. Each object in the cluster is described in an object primitive to be sent to the attendees. Actions for reproducing the object on the attendees'"'"' clients are sent as action primitives. The object and action primitives allow the content of the presenter'"'"'s desktop to be sent incrementally instead of sending the entire desktop.
177 Citations
21 Claims
-
1. A method of sharing a presenter'"'"'s desktop with a collaboration attendee, comprising:
-
logically dividing the presenter'"'"'s desktop into a plurality of clusters; for each cluster, periodically computing a checksum on pixel values in the cluster; if a checksum for a first cluster differs from a previously computed checksum for the first cluster; associating one or more attributes with the first cluster, wherein the one or more attributes further include a ratio between a number of pixels in the first cluster that are of a first color and a number of pixels in the first cluster that are of a second color, and wherein a first of said attributes comprises a number of colors of pixels in the first cluster; identifying a graphical object in the first cluster; constructing an object primitive block describing the graphical object; and constructing an action primitive block configured to reproduce the graphical object; and transmitting said object primitive block and said action primitive block to the collaboration attendee to facilitate reproduction of the graphical object on a client of the attendee. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of sharing a presenter'"'"'s desktop with a collaboration attendee, the method comprising:
-
logically dividing the presenter'"'"'s desktop into a plurality of clusters; for each cluster, periodically computing a checksum on pixel values in the cluster; if a checksum for a first cluster differs from a previously computed checksum for the first cluster; associating one or more attributes with the first cluster, wherein the one or more attributes further include a ratio between a number of pixels in the first cluster that are of a first color and a number of pixels in the first cluster that are of a second color, and wherein a first of said attributes comprises a number of colors of pixels in the first cluster; identifying a graphical object in the first cluster; constructing an object primitive block describing the graphical object; and constructing an action primitive block configured to reproduce the graphical object; and transmitting said object primitive block and said action primitive block to the collaboration attendee to facilitate reproduction of the graphical object on a client of the attendee.
-
-
17. A method of sharing a presenter'"'"'s desktop with real-time collaborators, comprising:
-
logically dividing a presenter'"'"'s desktop into a plurality of clusters, wherein a portion of the presenter'"'"'s desktop is shared with one or more collaborators in a real-time collaboration; for each cluster; computing a checksum on content of the presenter'"'"'s desktop displayed in said cluster; and comparing said checksum to a stored checksum calculated on previous content of the presenter'"'"'s desktop displayed in said cluster; for each cluster in which said computed checksum differs from said stored checksum; assigning a set of attributes describing said cluster; scanning said cluster for changes between said previous contents of the presenter'"'"'s desktop and said contents of the presenter'"'"'s desktop; and merging a plurality of said clusters in which said computed checksum differs from said stored checksum, wherein said merged clusters have one or more identical assigned attributes; and transmitting said changes toward the collaborators as incremental updates to the presenter'"'"'s desktop. - View Dependent Claims (18, 19, 20)
-
-
21. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of sharing a presenter'"'"'s desktop with real-time collaborators, the method comprising:
-
logically dividing a presenter'"'"'s desktop into a plurality of clusters, wherein a portion of the presenter'"'"'s desktop is shared with one or more collaborators in a real-time collaboration; for each cluster; computing a checksum on content of the presenter'"'"'s desktop displayed in said cluster; and comparing said checksum to a stored checksum calculated on previous content of the presenter'"'"'s desktop displayed in said cluster; for each cluster in which said computed checksum differs from said stored checksum;
assigning a set of attributes describing said cluster;
scanning said cluster for changes between said previous contents of the presenter'"'"'s desktop and said contents of the presenter'"'"'s desktop; and
merging a plurality of said clusters in which said computed checksum differs from said stored checksum, wherein said merged clusters have one or more identical assigned attributes; andtransmitting said changes toward the collaborators as incremental updates to the presenter'"'"'s desktop.
-
Specification