IP Library Granted Patent US 8,643,674
Granted Patent B2
US 8,643,674 · App. 13/943,595 · Granted Feb 4, 2014

Rendering changed portions of composited images

Inventors: Arthur Anthonie Van Hoff (Menlo Park, CA); Geoffrey W Chatterton (Santa Clara, CA)
Assignee: Dell Products L.P.
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 8,643,674
App. No.
13/943,595
Filed
Jul 16, 2013
Granted
Feb 4, 2014
Kind
B2
Art Unit
2616
USPC
345/629
Abstract

Rendering graphics on a display of a device. In a portable or wireless device, a list of instructions needed to refresh or generate a frame is first created. The created instructions are then parsed or optimized to remove instructions that result in unnecessary processing instructions. The optimized list is then executed. During generation of a given frame, a view hierarchy is traversed to identify damaged portions of a display. The damaged portions are not copied to the frame. Also, information that has not changed is likewise not usually copied. Damage from the previous frame less damage from the current frame is copied to the appropriate buffer. The instructions are optimized to render only the portion of the frame that is necessary. Portions of the display that are not visible are not traversed in the view hierarchy and are not considered until visible on the display.

Claims (50)

1. A method, performed by a computer system comprising one or more processors, for minimizing the processing required for rendering frames of an image on a display of a device, the method comprising:

accessing, by the computer system, a view hierarchy comprised of a plurality of hierarchically arranged nodes, each node defining a portion of content from which frames can be generated for display on the device;

traversing, by the computer system, the view hierarchy to render a subsequent frame by:

(1) identifying a first set of nodes in the view hierarchy that define a portion of content in a previous frame that will remain unchanged in a subsequent frame, and copying the unchanged portions from the previous frame to a buffer in which the subsequent frame is being composited; and

(2) identifying a second set of nodes in the view hierarchy that define a portion of content in a previous frame that will be changed in the subsequent frame, and generating a list of instructions using the second set of nodes that, when executed, will generate the changed portions in the subsequent frame;

determining, by the computer system, that at least one of the instructions in the list of instructions is at least partially redundant to at least one other instruction in the list of instructions;

prior to executing the list of instructions, optimizing, by the computer system, the list of instructions by removing at least one instruction that is at least partially redundant;

executing, by the computer system, the optimized list of instructions to generate the changed portions of the subsequent frame in the buffer; and

accessing, by the computer system, the buffer to output the subsequent frame for display on the device.

2. The method of claim 1 , wherein traversing the view hierarchy further comprises:

identifying a third set of nodes that define a portion of content that will not be visible in the subsequent frame; and

bypassing the processing of the third set of nodes while rendering the subsequent frame.

3. The method of claim 1 , wherein optimizing the list of instructions further comprises altering at least one instruction.

4. The method of claim 1 , wherein copying the unchanged portions from the previous frame comprises copying the unchanged portions from a second buffer in which the previous frame is stored.

5. The method of claim 1 , wherein copying the unchanged portions from the previous frame comprises copying the unchanged portions from one or more other buffers in which the unchanged portions are stored.

6. The method of claim 1 , wherein identifying the second set of nodes comprises identifying that a frame number is associated with each node in the second set of nodes.

7. The method of claim 6 , wherein the frame number defines the last frame prior to the changed portions being changed.

8. The method of claim 1 , wherein the previous frame is displayed immediately prior to the subsequent frame.

9. The method of claim 1 , wherein one or more other frames are displayed between the previous frame and the subsequent frame.

10. One or more non-transitory computer storage media storing computer executable instructions which when executed by one or more processors of a computer system perform a method for minimizing the processing required for rendering frames of an image on a display of a device, the method comprising:

accessing a view hierarchy comprised of a plurality of hierarchically arranged nodes, each node defining a portion of content from which frames can be generated for display on the device;

traversing the view hierarchy to render a subsequent frame by:

(1) identifying a first set of nodes in the view hierarchy that define a portion of content in a previous frame that will remain unchanged in a subsequent frame, and copying the unchanged portions from the previous frame to a buffer in which the subsequent frame is being composited; and

(2) identifying a second set of nodes in the view hierarchy that define a portion of content in a previous frame that will be changed in the subsequent frame, and generating a list of instructions using the second set of nodes that, when executed, will generate the changed portions in the subsequent frame;

determining that at least one of the instructions in the list of instructions is at least partially redundant to at least one other instruction in the list of instructions;

prior to executing the list of instructions, optimizing the list of instructions by removing at least one instruction that is at least partially redundant;

executing the optimized list of instructions to generate the changed portions of the subsequent frame in the buffer; and

accessing the buffer to output the subsequent frame for display on the device.

11. The computer storage media of claim 10 , wherein traversing the view hierarchy further comprises:

identifying a third set of nodes that define a portion of content that will not be visible in the subsequent frame; and

bypassing the processing of the third set of nodes while rendering the subsequent frame.

12. The computer storage media of claim 10 , wherein optimizing the list of instructions further comprises altering at least one instruction.

13. The computer storage media of claim 10 , wherein copying the unchanged portions from the previous frame comprises copying the unchanged portions from a second buffer in which the previous frame is stored.

14. The computer storage media of claim 10 , wherein copying the unchanged portions from the previous frame comprises copying the unchanged portions from one or more other buffers in which the unchanged portions are stored.

15. The computer storage media of claim 10 , wherein identifying the second set of nodes comprises identifying that a frame number is associated with each node in the second set of nodes.

16. The computer storage media of claim 15 , wherein the frame number defines the last frame prior to the changed portions being changed.

17. The computer storage media of claim 10 , wherein the previous frame is displayed immediately prior to the subsequent frame.

18. The computer storage media of claim 10 , wherein one or more other frames are displayed between the previous frame and the subsequent frame.

19. A computing device comprising:

one or more processors; and

memory storing computer executable instructions which when executed perform a method for minimizing the processing required for rendering frames of an image on the computing device, the method comprising:

accessing a view hierarchy comprised of a plurality of hierarchically arranged nodes, each node defining a portion of content from which frames can be generated for display on the device;

traversing the view hierarchy to render a subsequent frame by:

(1) identifying a first set of nodes in the view hierarchy that define a portion of content in a previous frame that will remain unchanged in a subsequent frame, and copying the unchanged portions from the previous frame to a buffer in which the subsequent frame is being composited; and

(2) identifying a second set of nodes in the view hierarchy that define a portion of content in a previous frame that will be changed in the subsequent frame, and generating a list of instructions using the second set of nodes that, when executed, will generate the changed portions in the subsequent frame;

determining that at least one of the instructions in the list of instructions is at least partially redundant to at least one other instruction in the list of instructions;

prior to executing the list of instructions, optimizing the list of instructions by removing at least one instruction that is at least partially redundant;

executing the optimized list of instructions to generate the changed portions of the subsequent frame in the buffer; and

accessing the buffer to output the subsequent frame for display on the device.

20. The computing device of claim 19 , wherein copying the unchanged portions from the previous frame comprises copying the unchanged portions from a second buffer in which the previous frame is stored.

Assignments (16)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2015
From: VAN HOFF, ARTHUR ANTHONIE; CHATTERTON, GEOFFREY W.
To: ZING SYSTEMS, INC.
Reel/Frame 036005/0533 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
MERGER Recorded Sep 3, 2013
From: ZING SYSTEMS, INC.
To: DELL PRODUCTS L.P.
Reel/Frame 031125/0184 →
Continuity (4)
Continuation 13181560 · Jul 13, 2011
Continuation 11733024 · Apr 9, 2007
Provisional Application 60790391 · Apr 7, 2006
Related Publication 20130300763A1 · Nov 14, 2013