IP Library Granted Patent US 9,824,465
Granted Patent B2
US 9,824,465 · App. 14/920,789 · Granted Nov 21, 2017

Texture repository for image processing applications

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,824,465
App. No.
14/920,789
Granted
Nov 21, 2017
Kind
B2
Abstract

A texture repository is provided for use with an image manipulation application. The texture repository provides a canvas to the image manipulation application for use with an image filter. The texture repository may provide an existing canvas matching the request from the image filter, or the texture repository may generate a new canvas for the request. The generated canvas may be procedurally generated to match the request, or the generated canvas may be resized from an existing canvas stored in a non-volatile storage or a cache.

Claims (83)

1. A computer-implemented method comprising:

accessing a plurality of images;

identifying a filter to apply to the images;

scaling a set of images obtained from the plurality of images to a thumbnail resolution;

requesting one or more thumbnail canvases from a texture repository, the thumbnail canvas request associated with the filter and the thumbnail resolution, the texture repository configured to generate a canvas responsive to the filter and thumbnail resolution when the filter and thumbnail resolution does not exist in a stored plurality of canvases, wherein requesting the one or more thumbnail canvases from the texture repository comprises:

generating, at an image manipulation application, a first request for a first thumbnail canvas to be applied to a first thumbnail image, the first request specifying a first target resolution corresponding to a first resolution of the first thumbnail image and a first target texture identifier, and

subsequent to the first request, generating, at the image manipulation application, a second request for a second thumbnail canvas to be applied to a second thumbnail image, the second request specifying a second target resolution corresponding to a second resolution of the second thumbnail image and a second target texture identifier, the first target resolution equal to the second target resolution;

filtering the scaled set of images using the filter by applying the one or more thumbnail canvases to the scaled set of images;

providing a user the filtered set of images using a display;

selecting a filtered thumbnail image from the filtered set of images responsive to a user input;

identifying the image in the plurality of images associated with the selected filtered thumbnail image;

requesting a full size canvas from the texture repository, the full size canvas request associated with the filter and a resolution associated with the identified image size; and

filtering the identified image using the image filter by applying the full size canvas to the identified image.

2. The computer-implemented method of claim 1 , wherein the texture repository is further configured to generate a canvas by transforming an existing canvas associated with the filter.

3. The computer-implemented method of claim 1 , wherein the texture repository is further configured to generate a canvas by procedurally generating a canvas associated with the filter.

4. The computer-implemented method of claim 1 , wherein the thumbnail canvas is invariant with respect to image content of the scaled set of images to which the thumbnail canvas is applied.

5. The computer-implemented method of claim 1 , wherein the texture repository comprises a cache and a non-volatile memory, and the method further comprises:

if the generated canvas does not exist among the stored plurality of canvases:

determining whether to store the generated canvas to the texture repository, and

storing the generated canvas to the texture repository responsive to the determining.

6. The method of claim 1 , further comprising:

if the generated canvas does not exist among the stored plurality of canvases:

determining a measure of processor resources and a measure of memory resources available on a portable computing device, when the canvas is requested,

determining whether to store the generated canvas to the texture repository based on the measure of processor resources and the measure of memory resources available on the computing device, and

responsive to determining that the generated canvas be stored on the computing device, storing the generated canvas in the texture repository.

7. The method of claim 6 , further comprising:

determining whether to save the generated canvas in a cache or in a non-volatile memory based on a measure of processor resources and the measure of memory resources available on the computing device; and

storing the generated canvas to one of the cache or the non-volatile memory based on the determining.

8. The computer-implemented method of claim 1 , wherein filtering the scaled set of images comprises:

applying the first thumbnail canvas to the first thumbnail image of the scaled set of images; and

applying the second thumbnail canvas to the second thumbnail image of the scaled set of images,

wherein the first image content of the first thumbnail image is distinct from the second image content of the second thumbnail image and the first target texture identifier and the second target texture identifier correspond to a same numerical index, the same numerical index corresponding to a single predefined overlay effect.

9. A computer system comprising:

a processor configured to execute instructions; and

a non-transitory memory coupled to the processor, the memory having encoded thereon instructions that, when executed by the processor, cause the processor to:

access a plurality of images;

identify a filter to apply to the images;

scale a set of images obtained from the plurality of images to a thumbnail resolution;

request one or more thumbnail canvases from a texture repository, the thumbnail canvas request associated with the filter and the thumbnail resolution, the texture repository configured to generate a canvas responsive to the filter and thumbnail resolution when the filter and thumbnail resolution does not exist in a stored plurality of canvases, wherein requesting the one or more thumbnail canvases from the texture repository comprises:

generating, at an image manipulation application, a first request for a first thumbnail canvas to be applied to a first thumbnail image, the first request specifying a first target resolution corresponding to a first resolution of the first thumbnail image and a first target texture identifier, and

subsequent to the first request, generating, at the image manipulation application, a second request for a second thumbnail canvas to be applied to a second thumbnail image, the second request specifying a second target resolution corresponding to a second resolution of the second thumbnail image and a second target texture identifier, the first target resolution equal to the second target resolution;

filter the scaled set of images using the filter by applying the one or more thumbnail canvases to the scaled set of images;

provide a user the filtered set of images using a display;

select a filtered thumbnail image from the filtered set of images responsive to a user input;

identify the image in the plurality of images associated with the selected filtered thumbnail image;

request a full size canvas from the texture repository, the full size canvas request associated with the filter and a resolution associated with the identified image size; and

filter the identified image using the image filter by applying the full size canvas to the identified image.

10. The computer system of claim 9 , wherein the texture repository is further configured to generate a canvas by transforming an existing canvas associated with the filter.

11. The computer system of claim 9 , wherein the texture repository is further configured to generate a canvas by procedurally generating a canvas associated with the filter.

12. The computer system of claim 9 , wherein the thumbnail canvas is invariant with respect to image content of the scaled set of images to which the texture is applied.

13. The computer system of claim 9 , wherein the texture repository comprises a cache and a non-volatile memory, and the instructions further cause the processor to:

if the generated canvas does not exist among the stored plurality of canvases:

determine whether to store the generated canvas to the texture repository, and

store the generated canvas to the texture repository responsive to the determining.

14. The computer system of claim 9 , wherein the instructions further cause the processor to:

if the generated canvas does not exist among the stored plurality of canvases:

determine a measure of processor resources and a measure of memory resources available on a portable computing device, when the canvas is requested,

determine whether to store the generated canvas to the texture repository based on the measure of processor resources and the measure of memory resources available on the computing device, and

responsive to determining that the generated canvas be stored on the computing device, store the generated canvas in the texture repository.

15. The computer system of claim 14 , wherein the instructions further cause the processor to:

determine whether to save the generated canvas in a cache or in a non-volatile memory based on a measure of processor resources and the measure of memory resources available on the computing device; and

store the generated canvas to one of the cache or the non-volatile memory based on the determining.

16. A computer program product comprising a non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to:

access a plurality of images;

identify a filter to apply to the images;

scale a set of images obtained from the plurality of images to a thumbnail resolution;

request one or more thumbnail canvases from a texture repository, the thumbnail canvas request associated with the filter and the thumbnail resolution, the texture repository configured to generate a canvas responsive to the filter and thumbnail resolution when the filter and thumbnail resolution does not exist in a stored plurality of canvases, wherein requesting the one or more thumbnail canvases from the texture repository comprises:

generating, at an image manipulation application, a first request for a first thumbnail canvas to be applied to a first thumbnail image, the first request specifying a first target resolution corresponding to a first resolution of the first thumbnail image and a first target texture identifier, and

subsequent to the first request, generating, at the image manipulation application, a second request for a second thumbnail canvas to be applied to a second thumbnail image, the second request specifying a second target resolution corresponding to a second resolution of the second thumbnail image and a second target texture identifier, the first target resolution equal to the second target resolution;

filter the scaled set of images using the filter by applying the one or more thumbnail canvases to the scaled set of images;

provide a user the filtered set of images using a display;

select a filtered thumbnail image from the filtered set of images responsive to a user input;

identify the image in the plurality of images associated with the selected filtered thumbnail image;

request a full size canvas from the texture repository, the full size canvas request associated with the filter and a resolution associated with the identified image size; and

filter the identified image using the image filter by applying the full size canvas to the identified image.

17. The computer program product of claim 16 , wherein the texture repository is further configured to generate a canvas by transforming an existing canvas associated with the filter.

18. The computer program product of claim 16 , wherein the texture repository is further configured to generate a canvas by procedurally generating a canvas associated with the filter.

19. The computer program product of claim 16 , wherein the thumbnail canvas is invariant with respect to image content of the scaled set of images to which the texture is applied.

20. The computer program product of claim 16 , wherein the instructions further cause the processor to:

if the generated canvas does not exist among the stored plurality of canvases:

determine a measure of processor resources and a measure of memory resources available on a portable computing device, when the canvas is requested,

determine whether to store the generated canvas to the texture repository based on the measure of processor resources and the measure of memory resources available on the computing device, and

responsive to determining that the generated canvas be stored on the computing device, store the generated canvas in the texture repository.

Assignments (1)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →