IP Library Granted Patent US 9,081,536
Granted Patent B2
US 9,081,536 · App. 14/513,167 · Granted Jul 14, 2015

Performance enhancement in virtual desktop infrastructure (VDI)

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,081,536
App. No.
14/513,167
Granted
Jul 14, 2015
Kind
B2
Abstract

In one embodiment, a method displays images from a remote desktop of a desktop GUI on a client device. The method receives a plurality of image blocks for a frame update of an image of the desktop GUI being displayed on the client device. The remote desktop is being run on a host. The client device determines that one or more missing image blocks have not been received for the frame update and determines if the frame update should be performed without the one or more missing image blocks. If the frame update of the desktop GUI should be performed without the one or more missing image blocks, the client device performs the frame update of the desktop GUI using the plurality of image blocks without using the one or more missing image blocks.

Claims (66)

1. A computing device comprising:

one or more processors; and

storage medium storing a sequence of instructions that are executed by the one or more processors to:

receive, over a network from a remote host server, a plurality of packets containing image information for a frame update of a graphical user interface (GUI) to be displayed by the computing device;

detect that one or more packets in the plurality of packets were lost during transmission of the plurality of packets from the remote host server;

determine whether the frame update corresponds to a sequence of frames of a fleeting duration; and

in response to determining that the frame update corresponds to the sequence of frames of the fleeting duration, render the frame update that is missing at least a portion of the image information contained in the one or more packets that were lost during the transmission.

2. The computing device of claim 1 , wherein rendering the frame update that is missing at least a portion of the image information contained in the one or more packets that were lost further comprises at least one of:

extrapolating the missing image information from the received image information contained in the received plurality of packets;

inserting image information into the frame update to reduce noticeability of the missing image information; or

leaving image information from a previous frame unchanged during the frame update.

3. The computing device of claim 1 , wherein detecting that the one or more packets were lost further comprises:

waiting for a predetermined period of time to determine whether the one or more packets were delayed or lost; and

determining that the one or more packets were lost after the predetermined period of time has passed.

4. The computing device of claim 1 , wherein detecting that the one or more packets were lost further comprises:

reading one or more sequence identifiers contained in the plurality of packets; and

determining that the one or more packets were lost based on the sequence identifiers.

5. The computing device of claim 1 , wherein render the frame update that is missing at least a portion of the image information further comprises:

determining whether amount of the missing image information is below a threshold; and

rendering the frame update without the missing image information if the amount of the missing information is below the threshold.

6. The computing device of claim 5 , wherein determining whether the frame update corresponds to the sequence of frames of the fleeting duration further comprises:

pausing the rendering of the frame update and requesting the missing image information from the remote host server if the amount of the missing information is above the threshold.

7. The computing device of claim 1 , wherein determining whether the frame update corresponds to the sequence of frames of the fleeting duration further comprises:

determining that the frame update is part of a sequence of high frequency screen updates wherein a frame that is to be updated by the frame update is likely to be replaced by a subsequent frame update within a predetermined period of time.

8. A computer implemented method for performing a frame update of a graphical user interface (GUI), the method comprising:

receiving, over a network from a remote host server, a plurality of packets containing image information for the frame update of the graphical user interface (GUI) to be displayed by a client device;

detecting that one or more packets in the plurality of packets were lost during transmission of the plurality of packets from the remote host server;

determining whether the frame update corresponds to a sequence of frames of a fleeting duration; and

in response to determining that the frame update corresponds to the sequence of frames of the fleeting duration, rendering the frame update that is missing at least a portion of the image information contained in the one or more packets that were lost during the transmission.

9. The computer implemented method of claim 8 , wherein rendering the frame update that is missing at least a portion of the image information contained in the one or more packets that were lost further comprises at least one of:

extrapolating the missing image information from the received image information contained in the received plurality of packets;

inserting image information into the frame update to reduce noticeability of the missing image information; or

leaving image information from a previous frame unchanged during the frame update.

10. The computer implemented method of claim 8 , wherein detecting that the one or more packets were lost further comprises:

waiting for a predetermined period of time to determine whether the one or more packets were delayed or lost; and

determining that the one or more packets were lost after the predetermined period of time has passed.

11. The computer implemented method of claim 8 , wherein detecting that the one or more packets were lost further comprises:

reading one or more sequence identifiers contained in the plurality of packets; and

determining that the one or more packets were lost based on the sequence identifiers.

12. The computer implemented method of claim 8 , wherein render the frame update that is missing at least a portion of the image information further comprises:

determining whether amount of the missing image information is below a threshold; and

rendering the frame update without the missing image information if the amount of the missing information is below the threshold.

13. The computer implemented method of claim 12 , wherein determining whether the frame update corresponds to the sequence of frames of the fleeting duration further comprises:

pausing the rendering of the frame update and requesting the missing image information from the remote host server if the amount of the missing information is above the threshold.

14. The computer implemented method of claim 8 , wherein determining whether the frame update corresponds to the sequence of frames of the fleeting duration further comprises:

determining that the frame update is part of a sequence of high frequency screen updates wherein a frame that is to be updated by the frame update is likely to be replaced by a subsequent frame update within a predetermined period of time.

15. A non-transitory computer readable storage medium storing a set of instructions executed by one or more processors to cause the one or more processors to perform a set of operations, comprising:

receiving, over a network from a remote host server, a plurality of packets containing image information for the frame update of the graphical user interface (GUI) to be displayed by a client device;

detecting that one or more packets in the plurality of packets were lost during transmission of the plurality of packets from the remote host server;

determining whether the frame update corresponds to a sequence of frames of a fleeting duration; and

in response to determining that the frame update corresponds to the sequence of frames of the fleeting duration, rendering the frame update that is missing at least a portion of the image information contained in the one or more packets that were lost during the transmission.

16. The non-transitory computer readable storage medium of claim 15 , wherein rendering the frame update that is missing at least a portion of the image information contained in the one or more packets that were lost further comprises at least one of:

extrapolating the missing image information from the received image information contained in the received plurality of packets;

inserting image information into the frame update to reduce noticeability of the missing image information; or

leaving image information from a previous frame unchanged during the frame update.

17. The non-transitory computer readable storage medium of claim 15 , wherein detecting that the one or more packets were lost further comprises:

waiting for a predetermined period of time to determine whether the one or more packets were delayed or lost; and

determining that the one or more packets were lost after the predetermined period of time has passed.

18. The non-transitory computer readable storage medium of claim 15 , wherein detecting that the one or more packets were lost further comprises:

reading one or more sequence identifiers contained in the plurality of packets; and

determining that the one or more packets were lost based on the sequence identifiers.

19. The non-transitory computer readable storage medium of claim 15 , wherein render the frame update that is missing at least a portion of the image information further comprises:

determining whether amount of the missing image information is below a threshold; and

rendering the frame update without the missing image information if the amount of the missing information is below the threshold.

20. The non-transitory computer readable storage medium of claim 15 , wherein determining whether the frame update corresponds to the sequence of frames of the fleeting duration further comprises:

determining that the frame update is part of a sequence of high frequency screen updates wherein a frame that is to be updated by the frame update is likely to be replaced by a subsequent frame update within a predetermined period of time.

Assignments (3)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →