IP Library Granted Patent US 9,264,704
Granted Patent B2
US 9,264,704 · App. 13/931,938 · Granted Feb 16, 2016

Frame image quality as display quality benchmark for remote desktop

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,264,704
App. No.
13/931,938
Granted
Feb 16, 2016
Kind
B2
Abstract

A method is provided to measure an overall image quality score for a remote desktop on a first computer and accessed from a second computer. The method includes playing a video timestamp on the remote desktop at the first computer where the video timestamp includes unique timestamps, screen capturing first computer frames of the remote desktop at the first computer and second computer frames of the remote desktop at the second computer at the same time, determining a frame image quality score for each second computer frame by comparing the client screen to a corresponding baseline first computer frame, and determining the overall image quality score for the remote desktop from frame image quality scores of the second computer frames.

Claims (96)

1. A method to measure an overall image quality score for a remote desktop on a first computer and accessed from a second computer, the method comprising:

playing a video timestamp on the remote desktop at the first computer, the video timestamp comprising unique timestamps;

screen capturing first computer frames of the remote desktop at the first computer and second computer frames of the remote desktop at the second computer at the same time;

determining a frame image quality score for each second computer frame by comparing the client screen to a corresponding baseline first computer frame; and

determining the overall image quality score for the remote desktop from frame image quality scores of the second computer frames.

2. The method of claim 1 , wherein the determining a frame image quality score for each second computer frame comprises:

selecting a target first computer frame that has a same timestamp as the second computer frame;

when the target first computer frame is equal to a previous first computer frame and a next first computer frame in the first computer frames, selecting the target first computer frame as the baseline first computer frame;

when the target first computer frame is not equal to the previous first computer frame and the target first computer frame is not equal to the next first computer frame:

determining three frame image quality scores by comparing the second computer frame to the target first computer frame, the previous first computer frame, and the next first computer frame; and

selecting a first computer frame that returns a highest of the three frame image quality scores as the baseline first computer frame; and

when the target first computer frame is equal to one of the previous first computer frame and the next first computer frame:

determining two frame image quality scores by comparing the second computer frame against the previous first computer frame and the next first computer frame; and

selecting a first computer frame that returns a higher of the two frame image quality scores as the baseline first computer frame.

3. The method of claim 1 , wherein the determining a frame image quality score for each second computer frame comprises:

dividing at least an area on the second computer frame and a corresponding area on the baseline first computer frame into blocks;

determining a block similarity score for each block in the second computer frame by comparing the block in the second computer frame against a corresponding block in the baseline first computer frame; and

setting the frame image quality score equal to a weighted average of blocks similarity scores.

4. The method of claim 3 , wherein blocks having similarity scores less than a threshold are given greater weight.

5. The method of claim 3 , wherein the determining a similarity score for each block comprises:

determining a peak signal-to-noise ratio (PSNR) score of the block compared to the corresponding block;

determining a structural similarity (SSIM) score of the block compared to the corresponding block;

when the PSNR score is less than or equal to a first threshold and the SSIM score is greater than or equal to a second threshold, setting the block similarity score based only on the PSNR score; and

else setting the block similarity score based only on the SSIM score.

6. The method of claim 3 , wherein the area is selected randomly from frame to frame.

7. The method of claim 1 , wherein the determining a frame image quality score for each second computer frame comprises:

dividing at least an area on the second computer frame and a corresponding area on the baseline first computer frame into blocks;

determining a block similarity score for each block in the second computer frame by comparing the block in the second computer frame against a corresponding block in the baseline first computer frame;

determining bad blocks in the area on the second computer frame that have block similarity scores less than a threshold;

determining a density of bad blocks in a neighborhood around each bad block;

setting the frame image quality score equal to a weighted average of block similarity scores; and

reducing the frame image quality score based on a maximum density of bad blocks from densities of bad blocks.

8. The method of claim 7 , wherein the determining a density of bad blocks in a neighborhood around each bad block comprises:

determining a number of bad blocks in the neighborhood centered about the bad black; and

setting the density of bad blocks equal to a ratio of the number of bad blocks and an window area.

9. The method of claim 1 , wherein the determining the overall image quality score for the remote desktop from frame image quality scores of the second computer frames comprises:

for each second computer frame:

detecting noisiest blocks in the second computer frame, in a previous second computer frame from the second computer frames, and a next second computer frame from the second computer frames;

determining if the noisiest blocks match;

when the noisiest blocks match, incrementing a continuous bad block parameter by one;

setting the overall image quality score equal to a weighted average of the frame image quality scores; and

reducing the overall image quality score based on the continuous bad block parameter.

10. The method of claim 1 , wherein screen capturing the remote desktop at the first computer and the second computer at are synchronized through a virtual channel between the first computer and the second computer.

11. The method of claim 1 , wherein the timestamp video is played at a first rate, the screen capturing at the first computer is at a second rate faster than the first rate, the remote desktop is transmitted at a third rate from the first computer to the second computer, and the screen capturing at the second computer is at a fourth rate faster than the third rate.

12. A remote desktop system, comprising:

a first computer;

a virtual machine on the first computer, the virtual machine presenting a remote desktop;

a benchmark server application on the virtual machine, the benchmark server application being configured to:

play a video timestamp on the remote desktop at the first computer, the video timestamp comprising unique timestamps;

screen capture first computer frames of the remote desktop at the first computer at a same time second computer frames are captured of the remote desktop at a second computer;

determine a frame image quality score for each second computer frame by comparing the client screen to a corresponding baseline first computer frame; and

determine the overall image quality score for the remote desktop from frame image quality scores of the second computer frames.

13. The remote desktop system of claim 12 , further comprising:

the second computer; and

a benchmark client application on the second computer, the benchmark client application being configured to:

screen capture second computer frames of the remote desktop at the second computer at the same time as screen capture of the first computer frames of the remote desktop at the first computer; and

save the second computer frames in a shared folder with the virtual machine.

14. The remote desktop system of claim 12 , wherein the determining a frame image quality score for each second computer frame comprises:

selecting a target first computer frame that has a same timestamp as the second computer frame;

when the target first computer frame is equal to a previous first computer frame and a next first computer frame in the first computer frames, selecting the target first computer frame as the baseline first computer frame;

when the target first computer frame is not equal to the previous first computer frame and the target first computer frame is not equal to the next first computer frame:

determining three frame image quality scores by comparing the second computer frame to the target first computer frame, the previous first computer frame, and the next first computer frame; and

selecting a first computer frame that returns a highest of the three frame image quality scores as the baseline first computer frame; and

when the target first computer frame is equal to one of the previous first computer frame and the next first computer frame:

determining two frame image quality scores by comparing the second computer frame against the previous first computer frame and the next first computer frame; and

selecting a first computer frame that returns a higher of the two frame image quality scores as the baseline first computer frame.

15. The remote desktop system of claim 12 , wherein the determine a frame image quality score for each second computer frame comprises:

dividing at least an area on the second computer frame and a corresponding area on the baseline first computer frame into blocks;

determining a block similarity score for each block in the second computer frame by comparing the block in the second computer frame against a corresponding block in the baseline first computer frame; and

setting the frame image quality score equal to a weighted average of blocks similarity scores.

16. The remote desktop system of claim 15 , wherein blocks having similarity scores less than a threshold are given greater weight.

17. The remote desktop system of claim 15 , wherein the determining a similarity score for each block comprises:

determining a peak signal-to-noise ratio (PSNR) score of the block compared to the corresponding block;

determining a structural similarity (SSIM) score of the block compared to the corresponding block;

when the PSNR score is less than or equal to a first threshold and the SSIM score is greater than or equal to a second threshold, setting the block similarity score based only on the PSNR score; and

else setting the block similarity score based only on the SSIM score.

18. The remote desktop system of claim 15 , wherein the area is selected randomly from frame to frame.

19. The remote desktop system of claim 12 , wherein the determine a frame image quality score for each second computer frame comprises:

dividing at least an area on the second computer frame and a corresponding area on the baseline first computer frame into blocks;

determining a block similarity score for each block in the second computer frame by comparing the block in the second computer frame against a corresponding block in the baseline first computer frame;

determining bad blocks in the area on the second computer frame that have block similarity scores less than a threshold;

determining a density of bad blocks in a neighborhood around each bad block;

setting the frame image quality score equal to a weighted average of block similarity scores; and

reducing the frame image quality score based on a maximum density of bad blocks from densities of bad blocks.

20. The remote desktop system of claim 19 , wherein the determining a density of bad blocks in a neighborhood around each bad block comprises:

determining a number of bad blocks in the neighborhood centered about the bad black; and

setting the density of bad blocks equal to a ratio of the number of bad blocks and an window area.

21. The remote desktop system of claim 12 , wherein the determine the overall image quality score for the remote desktop from frame image quality scores of the second computer frames comprises:

for each second computer frame:

detecting noisiest blocks in the second computer frame, in a previous second computer frame from the second computer frames, and a next second computer frame from the second computer frames;

determining if the noisiest blocks match;

when the noisiest blocks match, incrementing a continuous bad block parameter by one;

setting the overall image quality score equal to a weighted average of the frame image quality scores; and

reducing the overall image quality score based on the continuous bad block parameter.

22. The remote desktop system of claim 12 , wherein the screen capture the remote desktop at the first computer and the second computer at are synchronized through a virtual channel between the first computer and the second computer.

23. The remote desktop system of claim 12 , wherein the timestamp video is played at a first rate, the screen capturing at the first computer is at a second rate faster than the first rate, the remote desktop is transmitted at a third rate from the first computer to the second computer, and the screen capturing at the second computer is at a fourth rate faster than the third rate.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2013
From: GONG, YUE; WU, YANNI; CHEN, MENG; LIU, YANG; GE, NING
To: VMWARE, INC.
Reel/Frame 030716/0250 →