System for optimizing graphics operations

US9691118B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9691118-B2
Application numberUS-201414185656-A
CountryUS
Kind codeB2
Filing dateFeb 20, 2014
Priority dateApr 16, 2004
Publication dateJun 27, 2017
Grant dateJun 27, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Disclosed is a system for producing images including techniques for reducing the memory and processing power required for such operations. The system provides techniques for programmatically representing a graphics problem. The system further provides techniques for reducing and optimizing graphics problems for rendering with consideration of the system resources, such as the availability of a compatible GPU.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of applying two effects to a frame of a display stream, comprising: using a first graphics processing resource to apply a first effect to a first frame of a display stream, wherein applying the first effect comprises providing a new value for at least one pixel of the first frame based upon sampling of multiple other pixels of the first frame; using the first graphics processing resource to apply a second effect to a second frame of the display stream, the application of the second effect occurring immediately after the application of the first effect, wherein applying the second effect comprises at least one of altering the color of one or more pixels, combining aspects of multiple frames, and providing a new value for a least one pixel based upon sampling of multiple other pixels; and using a second graphics processing resource to apply a third effect to the first frame, wherein the application of the third effect occurs after the application of the first effect and involves combining the first frame with a third frame, wherein applying the second effect to the second frame by the first graphics processing resource occurs approximately during the time the second graphics processing resource is applying the third effect to the first frame. 2. The method of claim 1 , wherein one of the first graphics processing resource and the second graphics processing resource is a CPU, and the other is a GPU. 3. The method of claim 1 , wherein at least one of the first graphics processing resource and the second graphics processing recourse is a CPU emulating a GPU. 4. The method of claim 1 , wherein the first effect is applied by running a fragment program on a first GPU. 5. The method of claim 1 , wherein at least one of the first effect and the second effect is selected through an application programming interface. 6. The method of claim 5 , wherein the application programming interface receives a selection of at least one of the first effect and the second effect from a software program other than a user application program. 7. A computer system comprising a plurality of processors, wherein the plurality of processors are programmed to: use a first processor to apply a first effect to a first frame of a display stream, wherein applying the first effect comprises providing a new value for at least one pixel of the first frame based upon sampling of multiple other pixels of the first frame; use the first processor to apply a second effect to a second frame of the display stream, the application of the second effect occurring immediately after the application of the first effect, wherein applying the second effect comprises at least one of altering the color of one or more pixels, combining aspects of multiple frames, and providing a new value for at least one pixel of the second frame based upon sampling of multiple other pixels of the second frame; and use a second processor to apply a third effect to the first frame, wherein the application of the third effect occurs after the application of the first effect and involves combining the first frame with a third frame, wherein applying the second effect to the second frame by the first processor occurs approximately during the time the second processor is applying the third effect to the first frame. 8. The computer system of claim 7 , wherein one of the first processor and the second processor is a CPU, and the other is a GPU. 9. The computer system of claim 7 , wherein at least one of the first processor and the second processor is a CPU emulating a GPU. 10. The computer system of claim 7 , wherein the first effect is applied by running a fragment program on a first GPU. 11. The computer system of claim 7 , wherein at least one of the first effect and the second effect is selected through an application programming interface. 12. The computer system of claim 11 , wherein the application programming interface receives a selection of at least one of the first effect and the second effect from a software program other than a user application program. 13. A non-transitory program storage device, readable by one or more processors and comprising instructions stored thereon to cause one or more processors to: use a first processor to apply a first effect to a first frame of a display stream, wherein applying the first effect comprises providing a new value for at least one pixel of the first frame based upon sampling of multiple other pixels of the first frame; use the first processor to apply a second effect to a second frame of the display stream, wherein applying the second effect comprises at least one of altering the color of one or more pixels, combining aspects of multiple frames, and providing a new value for a least one pixel of the second frame based upon sampling of multiple other pixels of the second frame; and use a second processor to apply a third effect to the first frame, wherein the application of the third effect occurs after the application of the first effect and involves combining the first frame with a third frame, wherein the instructions further cause the one or more processors to apply the second effect to the second frame by the first processor approximately during the time the second processor is applying the third effect to the first frame. 14. The non-transitory program storage device of claim 13 , wherein one of the first processor and the second processor is a CPU, and the other is a GPU. 15. The non-transitory program storage device of claim 13 , wherein at least one of the first processor and the second processor is a CPU emulating a GPU. 16. The non-transitory program storage device of claim 13 , wherein the first effect is applied by running a fragment program on a first GPU. 17. The non-transitory program storage device of claim 13 , wherein at least one of the first effect and the second effect is selected through an application programming interface. 18. The non-transitory program storage device of claim 17 , wherein the application programming interface receives a selection of at least one of the first effect and the second effect from a software program other than a user application program. 19. The non-transitory program storage device of claim 17 , wherein the application programming interface provides multiple filters for altering the color or one or more pixels of a frame. 20. The non-transitory program storage devices of claim 17 , wherein the application program interface provides filters for each of: altering the color of one or more pixels; combining aspects of multiple frames; and providing a new value for a least one pixel of a frame based upon sampling of multiple other pixels of the same frame. 21. The non-transitory program storage devices of claim 13 , wherein the first effect is selected through an application programming interface.

Assignees

Inventors

Classifications

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • comprising an array of processing units with common control, e.g. single instruction multiple data processors (G06F15/82 takes precedence {; for correlation function computation G06F17/15}) · CPC title

  • Architectures of general purpose stored program computers (with program plugboard G06F15/08; multicomputers G06F15/16) · CPC title

  • characterised by the way in which colour is displayed {(details of colour display specific for CRTs G09G1/28; specific for flat matrix panels other than liquid crystal displays G09G3/2003; specific for liquid crystal displays G09G3/3607)} · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9691118B2 cover?
Disclosed is a system for producing images including techniques for reducing the memory and processing power required for such operations. The system provides techniques for programmatically representing a graphics problem. The system further provides techniques for reducing and optimizing graphics problems for rendering with consideration of the system resources, such as the availability of a …
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 27 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).