Remoting desktop displays using move regions
First Claim
1. A computer-implemented process, performed at a server computer, comprising:
- rendering, in memory of the server computer, a desktop composition tree representing display data for a desktop display including at least one surface for an application and a desktop;
processing the desktop composition tree to identify changes in the desktop composition tree resulting in changes in the display data for the desktop display from a first frame to a next frame in a sequence of frames produced for the desktop display over time;
storing the identified changes in a plurality of move arrays, including at least one move array for the at least one surface and a move array for the desktop, the plurality of move arrays storing any move operation involving movement of a region from one position in the desktop display to another position in the desktop display, and further storing dirty regions for the at least one surface and dirty regions for the desktop;
generating, in the memory of the server computer, based on the identified changes, information describing moved regions of the desktop display and move parameters, including for each moved region an indication of a respective moved region and respective parameters of a move operation applied to the respective moved region, the respective parameters including information indicative of an offset of the respective moved region between the first frame and the next frame, and information describing dirty regions of the desktop display, including changed image data for the desktop display other than in the moved regions, by merging the at least one move array for the at least one surface and the move array for the desktop, including merging the dirty regions for the at least one surface and the dirty regions for the desktop; and
sending over a computer network to a remote display device, as display data for the the next frame, the information describing the moved regions of the desktop display and the move parameters, without image data of the desktop display for the moved regions, and the information describing the dirty regions of the desktop display, including the changed image data for the desktop display other than in the moved regions.
2 Assignments
0 Petitions
Accused Products
Abstract
A desktop display over a remote connection is updated by detecting, at their origin, changes in the desktop that reflect movement of an image, such as window scrolls, window moves and other movements of regions. For every frame of the desktop that is composed, moves can be detected. The offsets and regions of these moves are transformed into desktop space. A list of moves and other information about changed regions in the desktop display provide both an indication of moved image regions and move parameters, and image data that has otherwise changed. The moved image regions are moved at the destination by applying the move parameters, without transferring image data for the moved region to the remote device, while the remaining changed portion of the desktop is copied over the connection to the remote device.
20 Citations
16 Claims
-
1. A computer-implemented process, performed at a server computer, comprising:
-
rendering, in memory of the server computer, a desktop composition tree representing display data for a desktop display including at least one surface for an application and a desktop; processing the desktop composition tree to identify changes in the desktop composition tree resulting in changes in the display data for the desktop display from a first frame to a next frame in a sequence of frames produced for the desktop display over time; storing the identified changes in a plurality of move arrays, including at least one move array for the at least one surface and a move array for the desktop, the plurality of move arrays storing any move operation involving movement of a region from one position in the desktop display to another position in the desktop display, and further storing dirty regions for the at least one surface and dirty regions for the desktop; generating, in the memory of the server computer, based on the identified changes, information describing moved regions of the desktop display and move parameters, including for each moved region an indication of a respective moved region and respective parameters of a move operation applied to the respective moved region, the respective parameters including information indicative of an offset of the respective moved region between the first frame and the next frame, and information describing dirty regions of the desktop display, including changed image data for the desktop display other than in the moved regions, by merging the at least one move array for the at least one surface and the move array for the desktop, including merging the dirty regions for the at least one surface and the dirty regions for the desktop; and sending over a computer network to a remote display device, as display data for the the next frame, the information describing the moved regions of the desktop display and the move parameters, without image data of the desktop display for the moved regions, and the information describing the dirty regions of the desktop display, including the changed image data for the desktop display other than in the moved regions. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A server computer comprising:
-
a processor and memory; a computer storage medium and computer program instructions stored on the computer storage medium which, when processed by the processor, instruct the processor to perform a process comprising; rendering, in the memory, a desktop composition tree representing display data for a desktop display including at least one surface for an application and a desktop; processing the desktop composition tree to identify changes in the desktop composition tree resulting in changes in the display data for the desktop display from a first frame to a next frame in a sequence of frames produced for the desktop display over time; storing, in the memory, the identified changes in a plurality of move arrays, including at least one move array for the at least one surface and a move array for the desktop, the plurality of move arrays storing any move operation involving movement of a region from one position in the desktop display to another position in the desktop display, and further storing dirty regions for the at least one surface and dirty regions for the desktop; generating, in the memory, based on the identified changes, information describing moved regions of the desktop display and move parameters, including for each moved region an indication of a respective moved region and respective parameters of a move operation applied to the respective moved region, the respective parameters including information indicative of an offset of the respective moved region between the first frame and the next frame, and information describing dirty regions of the desktop display, including changed image data of the desktop display other than in the moved regions, by merging the at least one move array for the at least one surface and the move array for the desktop, including merging the dirty regions for the at least one surface and the dirty regions for the desktop; and sending over a computer network to a remote display device, as display data for the the next frame, the information describing the moved regions of the desktop display and the move parameters, without image data of the desktop display for the moved regions, and the information describing the dirty regions of the desktop display, including the changed image data of the desktop display other than in the moved regions. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computing machine including a processor and a computer storage medium storing computer program instructions, the computing machine, when the computer program instructions are processed by the processor, comprising:
-
a desktop rendering engine having an input for receiving a desktop composition tree including information describing a composition of one or more surfaces for one or more applications and a desktop for a desktop display, and an output providing a sequence of frames as a rendered desktop display over time; wherein the desktop rendering engine is configured to process the desktop composition tree to identify changes in the desktop composition tree resulting in changes in the display data for the desktop display from a first frame to a next frame in a sequence of frames produced for the desktop display over time, and to store the identified changes in a plurality of move arrays, including at least one move array for the at least one surface and a move array for the desktop, the plurality of move arrays storing any move operation involving movement of a region from one position in the desktop display to another position in the desktop display, and further storing dirty regions for the at least one surface and dirty regions for the desktop; wherein the desktop rendering engine is configured to generate, based on the detected changes, information describing moved regions within the rendered desktop display and move parameters, including for each moved region an indication of a respective moved region and respective parameters of a move operation applied to the respective moved region, the respective parameters including information indicative of an offset of the respective moved region between the first frame and the next frame, and to generate information describing dirty regions of the desktop display including changed image data for the desktop display other than in the moved regions by merging the at least one move array for the at least one surface and the move array for the desktop, including merging the dirty regions for the at least one surface and the dirty regions for the desktop; and a remoting server that sends over a computer network to a remote display device, as display data for the next frame, the information describing the moved regions within the rendered desktop display and the move parameters, without image data of the rendered desktop display for the moved regions, and the information describing the dirty regions of the desktop display including the changed image data for the desktop display other than in the moved regions. - View Dependent Claims (15, 16)
-
Specification