IP Library Granted Patent US 9,183,582
Granted Patent B2
US 9,183,582 · App. 13/601,941 · Granted Nov 10, 2015

Tiling process for digital image retrieval

Inventors: Robert Irven Beaver, III (San Francisco, CA); Leslie Young Harvill (Half Moon Bay, CA); Richard Harold Bean (Cupertino, CA)
Assignee: Zazzle Inc.
G06Q30/0621G06Q30/0643G06T19/00H04N1/0019H04N1/00161H04N1/3871H04N1/3875G06T2200/16G06T2210/36Y10S707/948Y10S707/962
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,183,582
App. No.
13/601,941
Granted
Nov 10, 2015
Kind
B2
Abstract

Techniques for digital image retrieval are described. In an embodiment a system stores a plurality of tiles for a plurality of versions of a particular image. Each respective image of the plurality of versions has a different resolution. Each respective tile of the plurality of tiles comprises a bounded region of the respective version of the particular image. Based on a display resolution where a portion of the particular image will be visible, the system determines a final image resolution for the particular image. The system fetches one or more tiles of the respective version of the particular image that has the final resolution. The one or more tiles include the portion of the particular image that will be displayed. The system applies the one or more tiles to a model and renders the model.

Claims (41)

1. A method comprising:

storing, in volatile or non-volatile storage, a plurality of tiles for each respective version of a plurality of versions of a particular image;

wherein each respective version of the plurality of versions has a different image resolution;

wherein each respective tile of the plurality of tiles comprises a bounded region of the respective version of the particular image;

in response to a request to render the particular image for a particular model:

determining a first image resolution based on a display resolution where a portion of the particular image will be displayed;

applying a scaling factor to the first image resolution to compute a second image resolution that is higher than the first image resolution;

after applying the scaling factor to the first image resolution to compute the second image resolution, rounding the second image resolution to a third image resolution that is available from the plurality of versions of the particular image and that is higher than the second image resolution;

after rounding the second image resolution to the third image resolution, fetching, from the plurality of tiles stored in volatile or non-volatile storage, one or more tiles that contain the portion of the particular image that will be displayed and that comprise one or more bounded regions of the respective version of the particular image matching the third image resolution;

applying the one or more tiles to the particular model;

rendering a final image from the one or more tiles as applied to the particular model;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 further comprising: receiving a first version of the particular image having a first image resolution; generating, from the first version of the particular image, a plurality of derivative versions of the particular image; wherein each derivative image has a lower image resolution than the first image resolution; wherein the plurality of versions of the image include the derivative versions of the particular image.

3. The method of claim 1 , wherein the bounded region is a rectangle.

4. The method of claim 3 , further comprising: identifying a visible rectangle in a coordinate space of the particular image; wherein the visible rectangle completely contains the portion of the image that will be visible; inflating the visible rectangle to include all tiles that overlap the visible rectangle and that are for the respective version of the particular image that has tiles with the third image resolution; wherein the fetched one or more tiles are the tiles that overlap the visible rectangle.

5. The method of claim 1 , wherein the plurality of tiles are stored in compressed format; the method further comprising decompressing the one or more tiles.

6. The method of claim 1 , wherein determining the first image resolution based on the display resolution where a portion of the particular image will be displayed comprises: determining a quantity of pixels associated with displaying the portion of the particular image; and wherein applying the scaling factor to the first image resolution comprises applying the scaling factor to the quantity of pixels to identify a minimum image resolution; wherein rounding the second image resolution to the third image resolution comprises rounding the minimum image resolution to a next higher image resolution available from the plurality of versions of the particular image; wherein the one or more tiles are selected from a version of the particular image having the next higher resolution.

7. The method of claim 6 , wherein the scaling factor approximates the Nyquist limit.

8. The method of claim 1 , wherein the model is a three-dimensional (3D) model having a particular geometry; wherein applying the one or more tiles to the model comprises computing a 3D transformation for the particular geometry to generate a transformed geometry based on the one or more tiles; mapping the one or more tiles to the transformed geometry.

9. The method of claim 8 , wherein the transformed geometry excludes portions of the particular geometry that map to tiles that are not fetched from the plurality of tiles; wherein rendering the final image comprises rendering the final image according to the transformed geometry.

10. The method of claim 8 , wherein the model is a 3D model of a customizable product.

11. One or more non-transitory computer-readable media storing instructions, which, when executed by one or more processors, cause one or more computing devices to perform operations comprising:

storing, in volatile or non-volatile storage, a plurality of tiles for each respective version of a plurality of versions of a particular image;

wherein each respective version of the plurality of versions has a different image resolution;

wherein each respective tile of the plurality of tiles comprises a bounded region of the respective version of the particular image;

in response to a request to render the particular image for a particular model:

determining a first image resolution based on a display resolution where a portion of the particular image will be displayed;

applying a scaling factor to the first image resolution to compute a second image resolution that is higher than the first image resolution;

after applying the scaling factor to the first image resolution to compute the second image resolution, rounding the second image resolution to a third image resolution that is available from the plurality of versions of the particular image and that is higher than the second image resolution;

after rounding the second image resolution to the third image resolution, fetching, from the plurality of tiles stored in volatile or non-volatile storage, one or more tiles that contain the portion of the particular image that will be displayed and that comprise one or more bounded regions of the respective version of the particular image matching the third image resolution;

applying the one or more tiles to the particular model;

rendering a final image from the one or more tiles as applied to the particular model.

12. The non-transitory computer readable media of claim 11 further storing instructions that cause the one or more computing devices to perform operations comprising: receiving a first version of the particular image having a first image resolution; generating, from the first version of the particular image, a plurality of derivative versions of the particular image; wherein each derivative image has a lower image resolution than the first image resolution; wherein the plurality of versions of the image include the derivative versions of the particular image.

13. The non-transitory computer readable media of claim 11 , wherein the bounded region is a rectangle.

14. The non-transitory computer readable media of claim 13 , further storing instructions that cause the one or more computing devices to perform operations comprising: identifying a visible rectangle in a coordinate space of the particular image; wherein the visible rectangle completely contains the portion of the image that will be visible; inflating the visible rectangle to include all tiles that overlap the visible rectangle and that are for the respective version of the particular image that has tiles with the third image resolution; wherein the fetched one or more tiles are the tiles that overlap the visible rectangle.

15. The non-transitory computer readable media of claim 11 , wherein the plurality of tiles are stored in compressed format; the instructions further comprising instructions for decompressing the one or more tiles.

16. The non-transitory computer readable media of claim 11 , wherein instructions for determining the first image resolution based on the display resolution where a portion of the particular image will be displayed comprise instructions for: determining a quantity of pixels associated with displaying the portion of the particular image; and wherein instructions for applying the scaling factor to the first image resolution comprises instructions for applying the scaling factor to the quantity of pixels to identify a minimum image resolution; wherein instructions for rounding the second image resolution to the third image resolution comprise instructions for rounding the minimum image resolution to a next higher image resolution available from the plurality of versions of the particular image; wherein the one or more tiles are selected from a version of the particular image having the next higher image resolution.

17. The non-transitory computer readable media of claim 16 , wherein the scaling factor approximates the Nyquist limit.

18. The non-transitory computer readable media of claim 11 , wherein the model is a three-dimensional (3D) model having a particular geometry; wherein instructions for applying the one or more tiles to the model comprise instructions for computing a 3D transformation for the particular geometry to generate a transformed geometry based on the one or more tiles; mapping the one or more tiles to the transformed geometry.

19. The non-transitory computer readable media of claim 18 , wherein the transformed geometry excludes portions of the particular geometry that map to tiles that are not fetched from the plurality of tiles; wherein rendering the final image comprises rendering the final image according to the transformed geometry.

20. The non-transitory computer readable media of claim 18 , wherein the model is a 3D model of a customizable product.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2014
From: ZAZZLE.COM, INC.
To: ZAZZLE INC.
Reel/Frame 032366/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2012
From: BEAVER, RICHARD IRVEN, III; HARVILL, LESLIE YOUNG; BEAN, RICHARD HAROLD
To: ZAZZLE.COM, INC.
Reel/Frame 029299/0394 →
Continuity (2)
Provisional Application 61529883 · Aug 31, 2011
Related Publication 20130057549A1 · Mar 7, 2013