IP Library › Granted Patent US 9,182,934
Granted Patent B2
US 9,182,934 · App. 14/032,481 · Granted Nov 10, 2015

Method and apparatus for generating an output surface from one or more input surfaces in data processing systems

Inventors: Daren Croxford (Cambridge, GB); Tom Cooksey (Cambridge, GB); Lars Ericsson (Cambridge, GB)
Assignee: ARM Limited
G06F3/14G06F3/017
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,182,934
App. No.
14/032,481
Granted
Nov 10, 2015
Kind
B2
Abstract

In a data processing system, an output surface, such as frame to be displayed, is generated as a plurality of respective regions with each respective region of the output surface being generated from a respective region or regions of one or more input surfaces. When a new version of the output surface is to be generated 80 , for each region of the output surface it is determined which region or regions of the input surface or surfaces contribute to the region of the output surface 84 and then checked whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated 85 . If there has been a change in the contributing region or regions of the input surface or surfaces since the previous version of the region in the output surface was generated 86 , the region of the output surface is regenerated 87.

Claims (68)

1. A method of generating an output surface from one or more input surfaces in a data processing system, the method comprising:

generating the output surface as a plurality of respective regions that together form the output surface, each respective region of the output surface being generated from a respective region or regions of one or more input surfaces; and

when a new version of the output surface is to be generated, for at least one region of the output surface:

(i) determining which region or regions of the input surface or surfaces contribute to the region of the output surface;

(ii) checking whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated; and

(iii) if there has been a change in the contributing region or regions of the input surface or surfaces since the previous version of the region in the output surface was generated, regenerating the region of the output surface,

wherein there are two or more input surfaces and the method comprises performing steps (i) and (ii) for each input surface, and if there has been a change in the contributing region or regions of any of the input surfaces since the previous version of the output surface region was generated, regenerating the region of the output surface, and

wherein the data processing system is a compositing window system, and the input surfaces each comprise respective input windows that are to be composited into an output window.

2. A method as claimed in claim 1 , comprising performing steps (i) to (iii) for each region of the output surface.

3. A method as claimed in claim 1 , wherein step (i) includes:

determining which region or regions of an input surface will be visible in the output surface region.

4. A method as claimed in claim 1 , comprising determining which region or regions of the input surface or surfaces contribute to a region of the output surface based on the process that is to be used to generate the output surface from the input surface or surfaces.

5. A method as claimed in claim 1 , comprising determining which region or regions of the input surface or surfaces contribute to a region of the output surface based on a stored record indicating which region or regions of the input surface or surfaces contribute to the region of the output surface.

6. A method as claimed in claim 1 , wherein step (ii) comprises checking whether a signature or signatures representing the content of the contributing input surface region or regions have changed since the previous version of the output surface region was generated.

7. A method as claimed in claim 1 , wherein step (iii) comprises generating and storing a signature or signatures representing the content of the output surface region that has been regenerated.

8. A method as claimed in claim 1 , wherein if the number of input surface regions that contribute to the output surface region exceeds a threshold number, step (ii) comprises checking whether a signature or signatures representing the content of the contributing input surface or surfaces have changed since the previous version of the output surface region was generated.

9. A method as claimed in claim 1 , comprising if the number of input surface regions that contribute to the output surface region exceeds a threshold number, regenerating the region of the output surface without performing steps (ii) and (iii) for the output surface region.

10. A method as claimed in claim 1 , comprising, when a new version of the output surface is to be generated:

first determining if any of the input surfaces that are to be used to generate the output surface have been transformed since the previous version of the output surface was generated; and

if any of the input surfaces that will be used to generate the output surface has been transformed since the previous version of the output surface was generated, regenerating all of the regions of the output surface; or

if none of the input surfaces that will be used to generate the output surface has been transformed since the previous version of the output surface was generated, performing steps (i), (ii) and (iii) for at least one region of the output surface.

11. A method as claimed in claim 1 , comprising, when a new version of the output surface is to be generated:

first determining if any of the input surfaces that are to be used to generate the output surface have been transformed since the previous version of the output surface was generated; and

if any of the input surfaces that will be used to generate the output surface has been transformed since the previous version of the output surface was generated, determining which region or regions or the output surface will be altered as a consequence of the transformed input surface or surfaces, and regenerating that region or those regions of the output surface; or

if none of the input surfaces that will be used to generate the output surface has been transformed since the previous version of the output surface was generated, performing steps (i), (ii) and (iii) for at least one region of the output surface.

12. A method as claimed in claim 1 , further comprising checking whether an input surface has been updated since the output surface was last regenerated and, only performing steps (i)-(iii) for that input surface if the input surface had been updated since the output surface was last regenerated.

13. An apparatus for generating an output surface from one or more input surfaces in a data processing system, the apparatus comprising:

memory that stores one or more input surfaces to be used to generate an output surface; and

processing circuitry configured to generate an output surface as a plurality of respective regions that together form the output surface, each respective region of the output surface being generated from a respective region or regions of one or more of the input surfaces; wherein:

the processing circuitry is further configured to, when a new version of the output surface is to be generated:

for at least one region of the output surface, determine which region or regions of the input surface or surfaces contribute to the region of the output surface;

check whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated; and

if there has been a change in the contributing region or regions of the input surface or surfaces since the previous version of the region in the output surface was generated, regenerate the region of the output surface,

wherein:

there are two or more input surfaces;

the processing circuitry is configured to:

determine which region or regions of the input surface or surfaces contribute to the region of the output surface; and

check whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated;

for each input surface, the processing circuitry is configured to:

regenerate the region of the output surface if there has been a change in the contributing region or regions of any of the input surfaces since the previous version of the output surface was generated,

the data processing system is a compositing window system, and the input surfaces each comprise respective input windows that are to be composited into an output window.

14. An apparatus as claimed in claim 13 , wherein the processing circuitry is configured to:

determine which region or regions of the input surface or surfaces contribute to the region of the output surface;

check whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated; and

if there has been a change in the contributing region or regions of the input surface or surfaces since the previous version of the region in the output surface was generated, regenerate the region of the output surface;

for each region of the output surface.

15. An apparatus as claimed in claim 13 , wherein the processing circuitry determining which region or regions of the input surface or surfaces contribute to the region of the output surface includes determining which region or regions of an input surface will be visible in the output surface region.

16. An apparatus as claimed in claim 13 , wherein the processing circuitry is configured to determine which region or regions of the input surface or surfaces contribute to a region of the output surface based on the process that is to be used to generate the output surface from the input surface or surfaces.

17. An apparatus as claimed in claim 13 , wherein the processing circuitry is configured to determine which region or regions of the input surface or surfaces contribute to a region of the output surface based on a stored record indicating which region or regions of the input surface or surfaces contribute to the region of the output surface.

18. An apparatus as claimed in claim 13 , wherein the processing circuitry is configured to check whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated by checking whether a signature or signatures representing the content of the contributing input surface region or regions have changed since the previous version of the output surface region was generated.

19. An apparatus as claimed in claim 13 , wherein the processing circuitry is configured to, if the number of input surface regions that contribute to the output surface region exceeds a threshold number, check whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated by checking whether a signature or signatures representing the content of the contributing input surface or surfaces have changed since the previous version of the output surface region was generated.

20. An apparatus as claimed in claim 13 , wherein the processing circuitry is configured to, if the number of input surface regions that contribute to the output surface region exceeds a threshold number, regenerate the region of the output surface without checking whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated.

21. An apparatus as claimed in claim 13 , wherein the processing circuitry is configured to:

when a new version of the output surface is to be generated, first determine if any of the input surfaces that are to be used to generate the output surface have been transformed since the previous version of the output surface was generated;

and to:

if any of the input surfaces that will be used to generate the output surface has been transformed since the previous version of the output surface was generated, regenerate all of the regions of the output surface; or

if none of the input surfaces that will be used to generate the output surface has been transformed since the previous version of the output surface was generated, for at least one region of the output surface:

determine which region or regions of the input surface or surfaces contribute to the region of the output surface;

check whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated; and

if there has been a change in the contributing region or regions of the input surface or surfaces since the previous version of the region in the output surface was generated, regenerate the region of the output surface.

22. A non-transitory, computer readable storage medium storing computer software code which, when executed on a processor, performs a method of generating an output surface from one or more input surfaces in a data processing system, the method comprising:

generating the output surface as a plurality of respective regions that together form the output surface, each respective region of the output surface being generated from a respective region or regions of one or more input surfaces; and

when a new version of the output surface is to be generated, for at least one region of the output surface:

(i) determining which region or regions of the input surface or surfaces contribute to the region of the output surface;

(ii) checking whether the contributing region or regions of the input surface or surfaces have changed since the previous version of the output surface region was generated; and

(iii) if there has been a change in the contributing region or regions of the input surface or surfaces since the previous version of the region in the output surface was generated, regenerating the region of the output surface,

wherein there are two or more input surfaces and the method comprises performing steps (i) and (ii) for each input surface, and if there has been a change in the contributing region or regions of any of the input surfaces since the previous version of the output surface region was generated, regenerating the region of the output surface, and

wherein the data processing system is a compositing window system, and the input surfaces each comprise respective input windows that are to be composited into an output window.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2013
From: CROXFORD, DAREN; COOKSEY, TOM; ERICSSON, LARS
To: ARM LIMITED
Reel/Frame 031354/0317 →
Continuity (1)
Related Publication 20150084982A1 · Mar 26, 2015