IP Library Granted Patent US 9,442,904
Granted Patent B2
US 9,442,904 · App. 13/725,127 · Granted Sep 13, 2016

Systems and methods for applying a residual error image

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,442,904
App. No.
13/725,127
Granted
Sep 13, 2016
Kind
B2
Abstract

Systems and methods described herein enable a residual error image to be added and rendered in an existing HTML canvas using native primitives. A current image and a residual error image containing pixel value differences between the current image and an updated image are received. A positive residual error image and a negative error image are generated from the residual error image. The positive residual error image is added to the current image to generate a partially updated image, and the partially updated image is xored to generate an inverse image. The negative residual error image is added to the inverse image to generate an updated inverse image, and xoring the inverse image to revert the inverse image to generate the updated image.

Claims (79)

1. A method for updating an image, the method comprising:

receiving a current image and a residual error image, the residual error image containing pixel value differences between the current image and an updated image;

generating a positive residual error image from the residual error image, the positive residual error image having a zero in place of each corresponding pixel value in the residual error image that is negative and a corresponding positive value of each corresponding pixel value in the residual error image that is positive;

generating a negative residual error image from the residual error image, the negative residual error image having a zero in place of each corresponding pixel value in the residual error image that is positive and a corresponding absolute value of each corresponding pixel value in the residual error image that is negative;

adding the positive residual error image to the current image to generate a partially updated image;

xoring the partially updated image to generate an inverse image;

adding the negative residual error image to the inverse image to generate an updated inverse image; and

xoring the inverse image to revert the inverse image to generate the updated image.

2. The method of claim 1 , wherein a client receives the generated positive residual image and the generated negative residual image from a server, and wherein the client adds the positive error image and the negative error image to the current image to generate the updated image.

3. The method of claim 1 , further comprising:

generating, from the residual error image, an absolute value residual image that includes an absolute value of the pixel value differences between the current image and the updated image; and

receiving a Portable Network Graphics (PNG) image with a 1-bit mask such that positive error pixel values and negative error pixel values from the absolute value residual image can be deconstructed from the generated image.

4. A method of claim 3 , wherein a server generates the absolute value residual image, and wherein a client receives the absolute value residual image and the PNG image from the server.

5. A method of claim 4 , wherein the client generates the positive residual error image and the negative residual error image from the deconstructed absolute value residual image.

6. A method of claim 5 , wherein the client adds the generated positive error image and the generated negative error image to the current image to generate the updated image.

7. A non-transitory computer readable storage medium having stored therein a computer program for updating an image, wherein a computer system executing the computer program carries out the steps of:

receiving a current image and a residual error image, the residual error image containing pixel value differences between the current image and an updated image;

generating a positive residual error image from the residual error image, the positive residual error image having a zero in place of each corresponding pixel value in the residual error image that is negative, and a corresponding positive value of each corresponding pixel value in the residual error image that is positive;

generating a negative residual error image from the residual error image, the negative residual error image having a zero in place of each corresponding pixel value in the residual error image that is positive, and a corresponding absolute value of each corresponding pixel value in the residual error image that is negative;

adding the positive residual error image to the current image to generate a partially updated image;

xoring the partially updated image to generate an inverse image;

adding the negative residual error image to the inverse image to generate an updated inverse image; and

xoring the inverse image to revert the inverse image to generate the updated image.

8. The non-transitory computer readable storage medium of claim 7 , wherein a client receives the generated positive residual image and the generated negative residual image from a server, and wherein the client adds the positive error image and the negative error image to the current image to generate the updated image.

9. The non-transitory computer readable storage medium of claim 7 , wherein the computer system executing the computer program further carries out the steps of:

generating, from the residual error image, an absolute value residual image that includes an absolute value of the pixel value differences between the current image and the updated image; and

receiving a Portable Network Graphics (PNG) image with a 1-bit mask such that positive error pixel values and negative error pixel values from the absolute value residual image can be deconstructed from the generated image.

10. The non-transitory computer readable storage medium of claim 9 , wherein a server generates the absolute value residual image, and wherein a client receives the absolute value residual image and the PNG image from the server.

11. The non-transitory computer readable storage medium of claim 10 , wherein the client generates the positive residual error image and the negative residual error image from the deconstructed absolute value residual image.

12. The non-transitory computer readable storage medium of claim 11 , wherein the client adds the generated positive error image and the generated negative error image to the current image to generate the updated image.

13. A system for updating an image, the system comprising:

a server configured to:

receive a current image and a residual error image, the residual error image containing pixel value differences between the current image and an updated image;

generate a positive residual error image from the residual error image, the positive residual error image having a zero in place of each corresponding pixel value in the residual error image that is negative, and a corresponding positive value of each corresponding pixel value in the residual error image that is positive; and

generate a negative residual error image from the residual error image, the negative residual error image having a zero in place of each corresponding pixel value in the residual error image that is positive, and a corresponding absolute value of each corresponding pixel value in the residual error image that is negative; and

a client in communication with the server, the client configured to:

receive the positive residual error image and the negative residual error image;

add the positive residual error image to the current image to generate a partially updated image;

xor the partially updated image to generate an inverse image;

add the negative residual error image to the inverse image to generate an updated inverse image; and

xor the inverse image to revert the inverse image to generate the updated image.

14. The system of claim 13 , wherein the server is further configured to generate the residual error image.

15. The system of claim 14 , wherein generating the residual error image comprises:

accessing a reference frame of a video;

separating the reference frame into a plurality of macro-blocks of pixels;

determining which of the reference frame macro-blocks substantially match a macro-block from another frame of the video; and

generating the residual error image by subtracting pixel values in each of the reference frame macro-blocks from pixel values in corresponding substantially matching macro-blocks.

16. The system of claim 15 , wherein generating the residual error image further comprises:

for each of the reference macro-blocks that substantially matches a macro-block from another frame of the video:

subtracting pixel values in the reference frame macro-block from pixel values in a corresponding matching macro-block;

receiving negative error pixel values and positive error pixel values as a result of the subtracting; and

generating the residual error image that includes the positive error pixel values and the negative error pixel values.

17. A system for updating an image, the system comprising:

a server configured to:

receive a current image;

access a residual error image, the residual error image containing pixel value differences between the current image and an updated image; and

generate, from the residual error image, an absolute value residual image that includes an absolute value of the pixel value differences between the current image and the updated image; and

a client in communication with the server, the client configured to:

receive the absolute value residual image;

receive a Portable Network Graphics (PNG) image with a 1-bit mask;

deconstruct the absolute value residual image using the PNG image;

identify the positive error pixel values and the negative error pixel values from the deconstructed absolute value residual image;

generate a positive residual error image from the positive error pixel values, the positive residual error image having a zero in place of each corresponding pixel value in the residual error image that is negative, and a corresponding positive value of each corresponding pixel value in the residual error image that is positive;

generate a negative residual error image from the negative error pixel values, the negative residual error image having a zero in place of each corresponding pixel value in the residual error image that is positive, and a corresponding absolute value of each corresponding pixel value in the residual error image that is negative;

add the positive residual error image to the current image to generate a partially updated image;

xor the partially updated image to generate an inverse image;

add the negative residual error image to the inverse image to generate an updated inverse image; and

xor the inverse image to revert the inverse image to generate the updated image.

18. The system of claim 17 , wherein the server is further configured to generate the residual error image.

19. The system of claim 18 , wherein generating the residual error image comprises:

accessing a reference frame of a video;

separating the reference frame into a plurality of macro-blocks of pixels;

determining which of the reference frame macro-blocks substantially match a macro-block from another frame of the video; and

generating the residual error image by subtracting pixel values in each of the reference frame macro-blocks from pixel values in corresponding substantially matching macro-blocks.

20. The system of claim 19 , wherein generating the residual error image further comprises:

for each of the reference macro-blocks that substantially matches a macro-block from another frame of the video:

subtracting pixel values in the reference frame macro-block from pixel values in a corresponding matching macro-block;

receiving negative error pixel values and positive error pixel values as a result of the subtracting; and

generating the residual error image that includes the positive error pixel values and the negative error pixel values.

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 Dec 21, 2012
From: CLARK, JONATHAN
To: VMWARE, INC.
Reel/Frame 029521/0392 →