IP Library Granted Patent US 9,414,087
Granted Patent B2
US 9,414,087 · App. 14/261,144 · Granted Aug 9, 2016

Compression of light field images

Inventors: Kurt Akeley (Saratoga, CA); Brendan Bevensee (Mountain View, CA); Colvin Pitts (Snohomish, WA); Timothy James Knight (Sunnyvale, CA); Carl Warren Craddock (San Francisco, CA); Chia-Kai Liang (San Jose, CA)
Assignee: Lytro, Inc.
H04N19/60G02B27/0075H04N19/172H04N19/182H04N19/186
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,414,087
App. No.
14/261,144
Granted
Aug 9, 2016
Kind
B2
Abstract

RAW images and/or light field images may be compressed through the use of specialized techniques. The color depth of a light field image may be reduced through the use of a bit reduction algorithm such as a K-means algorithm. The image may then be retiled to group pixels of similar intensities and/or colors. The retiled image may be padded with extra pixel rows and/or pixel columns as needed, and compressed through the use of an image compression algorithm. The compressed image may be assembled with metadata pertinent to the manner in which compression was done to form a compressed image file. The compressed image file may be decompressed by following the compression method in reverse.

Claims (123)

1. A method for compressing an image projected from light field data acquired through a microlens array, the method comprising:

retrieving an image projected from light field data, wherein the image comprises a plurality of pixel clusters, each of which encodes a portion of the light field data corresponding to a microlens of the microlens array;

at a processor, reducing a color depth of the image by reducing the color depth of the image from twelve bits to eight bits;

at the processor, retiling the image to generate a retiled image comprising a plurality of retiled pixel clusters, each of which comprises a pixel from each of the pixel clusters; and

at the processor, applying an image compression algorithm to the retiled image to generate a compressed image;

wherein reducing the color depth of the image enhances performance of the image compression algorithm.

2. The method of claim 1 , wherein retiling the image comprises providing the retiled image with a reduced spatial variation in pixel intensity to enhance performance of the image compression algorithm.

3. The method of claim 2 , wherein the image is obtained from a Bayer filtered capture device such that each of the pixel clusters comprises a plurality of red pixels, a plurality of green pixels, and a plurality of blue pixels, wherein retiling the image comprises:

grouping the red pixels of different pixel clusters together;

grouping the green pixels of different pixel clusters together; and

grouping the blue pixels of different pixel clusters together.

4. The method of claim 2 , wherein each of the pixel clusters comprises pixels arranged in rows and columns to define a grid pattern, wherein railing the image comprises generating the retiled image such that there is a one-to-one correspondence between the pixels of each pixel cluster and the retiled pixel clusters of the retiled image so that the retiled pixel clusters have the grid pattern.

5. The method of claim 2 , wherein applying the image compression algorithm to the retiled image comprises applying a JPEG compression algorithm to the retiled image.

6. The method of claim 1 , further comprising:

at a processor, retiling the compressed image to generate a reverted image comprising a plurality of reverted pixel clusters, each of which comprises a pixel from each of the retiled pixel clusters;

wherein each of the reverted pixel clusters encodes a portion of the light field data corresponding to a microlens of the microlens array.

7. A method for compressing an image projected from light field data acquired through a microlens array, the method comprising:

retrieving an image projected from light field data, wherein the image comprises a plurality of pixel clusters, each of which encodes a portion of the light field data corresponding to a microlens of the microlens array;

at a processor, retiling the image to generate a retiled image comprising a plurality of retiled pixel clusters, each of which comprises a pixel from each of the pixel clusters;

at the processor, applying an image compression algorithm to the retiled image to generate a compressed image; and

at the processor, applying a K-means bit reduction algorithm to at least one selection from the group consisting of:

the image;

the retiled image; and

the compressed image.

8. The method of claim 7 , wherein retiling the image comprises providing the retiled image with a reduced spatial variation in pixel intensity to enhance performance of the image compression algorithm.

9. The method of claim 8 , wherein the image is obtained from a Bayer filtered capture device such that each of the pixel clusters comprises a plurality of red pixels, a plurality of green pixels, and a plurality of blue pixels, wherein retiling the image comprises:

grouping the red pixels of different pixel clusters together;

grouping the green pixels of different pixel clusters together; and

grouping the blue pixels of different pixel clusters together.

10. The method of claim 8 , wherein each of the pixel clusters comprises pixels arranged in rows and columns to define a grid pattern, wherein retiling the image comprises generating the retiled image such that there is a one-to-one correspondence between the pixels of each pixel cluster and the retiled pixel clusters of the retiled image so that the retiled pixel clusters have the grid pattern.

11. The method of claim 8 , wherein applying the image compression algorithm to the retiled image comprises applying a JPEG compression algorithm to the retiled image.

12. The method of claim 7 , further comprising:

at a processor, retiling the compressed image to generate a reverted image comprising a plurality of reverted pixel clusters, each of which comprises a pixel from each of the retiled pixel clusters;

wherein each of the reverted pixel clusters encodes a portion of the light field data corresponding to a microlens of the microlens array.

13. A method for compressing an image projected from light field data acquired through a microlens array, the method comprising:

retrieving an image projected from light field data, wherein the image comprises a plurality of pixel clusters, each of which encodes a portion of the light field data corresponding to a microlens of the microlens array;

at a processor, retiling the image to generate a retiled image comprising a plurality of retiled pixel clusters, each of which comprises a pixel from each of the pixel clusters;

padding the retiled image by adding a selection from the group consisting of:

a pixel column adjacent to a pixel edge column of the retiled image, wherein the pixel column is substantially identical to the pixel edge column; and

a pixel row adjacent to a pixel edge row of the retiled image, wherein the pixel row is substantially identical to the pixel edge row; and

at the processor, applying an image compression algorithm to the retiled image to generate a compressed image;

wherein padding the retiled image enhances performance of the image compression algorithm.

14. The method of claim 13 , wherein railing the image comprises providing the reified image with a reduced spatial variation in pixel intensity to enhance performance of the image compression algorithm.

15. The method of claim 14 , wherein the image is obtained from a Bayer filtered capture device such that each of the pixel clusters comprises a plurality of red pixels, a plurality of green pixels, and a plurality of blue pixels, wherein retiling the image comprises:

grouping the red pixels of different pixel clusters together;

grouping the green pixels of different pixel clusters together; and

grouping the blue pixels of different pixel clusters together.

16. The method of claim 14 , wherein each of the pixel clusters comprises pixels arranged in rows and columns to define a grid pattern, wherein retiling the image comprises generating the retiled image such that there is a one-to-one correspondence between the pixels of each pixel cluster and the retiled pixel clusters of the retiled image so that the retiled pixel clusters have the grid pattern.

17. The method of claim 14 , wherein applying the image compression algorithm to the retiled image comprises applying a JPEG compression algorithm to the retiled image.

18. The method of claim 13 , further comprising:

at a processor, retiling the compressed image to generate a reverted image comprising a plurality of reverted pixel clusters, each of which comprises a pixel from each of the retiled pixel clusters;

wherein each of the reverted pixel clusters encodes a portion of the light field data corresponding to a microlens of the microlens array.

19. A method for compressing an image projected from light field data acquired through a microlens array, the method comprising:

retrieving an image projected from light field data, wherein the image comprises a plurality of pixel clusters, each of which encodes a portion of the light field data corresponding to a microlens of the microlens array;

at a processor, retiling the image to generate a retiled image comprising a plurality of retiled pixel clusters, each of which comprises a pixel from each of the pixel clusters;

at the processor, applying an image compression algorithm to the retiled image to generate a compressed image; and

after application of the image compression algorithm to the retiled image, appending metadata to the compressed image, wherein the metadata comprises at least one selection from the group consisting of:

a mapping of pixels from the pixel clusters to the retiled pixel clusters;

color depth reduction parameters indicating how color depth reduction was performed on a selection from the group consisting of the image, the retiled image, and the compressed image; and

padding parameters indicating how pixels were added to the retiled image.

20. The method of claim 19 , wherein retiling the image comprises providing the retiled image with a reduced spatial variation in pixel intensity to enhance performance of the image compression algorithm.

21. The method of claim 20 , wherein the image is obtained from a Bayer filtered capture device such that each of the pixel clusters comprises a plurality of red pixels, a plurality of green pixels, and a plurality of blue pixels, wherein retiling the image comprises:

grouping the red pixels of different pixel clusters together;

grouping the green pixels of different pixel clusters together; and

grouping the blue pixels of different pixel clusters together.

22. The method of claim 20 , wherein each of the pixel clusters comprises pixels arranged in rows and columns to define a grid pattern, wherein retiling the image comprises generating the retiled image such that there is a one-to-one correspondence between the pixels of each pixel cluster and the retiled pixel clusters of the retiled image so that the retiled pixel clusters have the grid pattern.

23. The method of claim 20 , wherein applying the image compression algorithm to the retiled image comprises applying a JPEG compression algorithm to the retiled image.

24. The method of claim 19 , further comprising:

at a processor, retiling the compressed image to generate a reverted image comprising a plurality of reverted pixel clusters, each of which comprises a pixel from each of the retiled pixel clusters;

wherein each of the reverted pixel clusters encodes a portion of the light field data corresponding to a microlens of the microlens array.

25. A non-transitory computer-readable medium for compressing an image projected from light field data acquired through a microlens array, comprising instructions stored thereon, that when executed by a processor, perform the steps of:

retrieving an image projected from light field data, wherein the image comprises a plurality of pixel clusters, each of which encodes a portion of the light field data corresponding to a microlens of the microlens array;

retiling the image to generate a retiled image comprising a plurality of retiled pixel clusters, each of which comprises a pixel from each of the pixel clusters; and

applying an image compression algorithm to the retiled image to generate a compressed image;

applying a K-means bit reduction algorithm to at least one selection from the group consisting of:

the image;

the retiled image; and

the compressed image.

26. The non-transitory computer-readable medium of claim 25 , wherein retiling the image comprises providing the retiled image with a reduced spatial variation in pixel intensity to enhance performance of the image compression algorithm.

27. The non-transitory computer-readable medium of claim 25 , further comprising instructions stored thereon, that when executed by a processor, perform the step of:

retiling the compressed image to generate a reverted image comprising a plurality of reverted pixel clusters, each of which comprises a pixel from each of the retiled pixel clusters;

wherein each of the reverted pixel clusters encodes a portion of the light field data corresponding to a microlens of the microlens array.

28. A non-transitory computer-readable medium for compressing an image projected from light field data acquired through a microlens array, comprising instructions stored thereon, that when executed by a processor, perform the steps of:

retrieving an image projected from light field data, wherein the image comprises a plurality of pixel clusters, each of which encodes a portion of the light field data corresponding to a microlens of the microlens array;

retiling the image to generate a retiled image comprising a plurality of retiled pixel clusters, each of which comprises a pixel from each of the pixel clusters;

padding the retiled image by adding a selection from the group consisting of:

a pixel column adjacent to a pixel edge column of the retiled image, wherein the pixel column is substantially identical to the pixel edge column; and

a pixel row adjacent to a pixel edge row of the retiled image, wherein the pixel row is substantially identical to the pixel edge row; and

applying an image compression algorithm to the retiled image to generate a compressed image;

wherein padding the retiled image enhances performance of the image compression algorithm.

29. The non-transitory computer-readable medium of claim 28 , wherein retiling the image comprises providing the retiled image with a reduced spatial variation in pixel intensity to enhance performance of the image compression algorithm.

30. The non-transitory computer-readable medium of claim 28 , further comprising instructions stored thereon, that when executed by a processor, perform the step of:

retiling the compressed image to generate a reverted image comprising a plurality of reverted pixel clusters, each of which comprises a pixel from each of the retiled pixel clusters;

wherein each of the reverted pixel clusters encodes a portion of the light field data corresponding to a microlens of the microlens array.

31. A system for compressing an image projected from light field data acquired through a microlens array, the system comprising:

a storage device, configured to store an image; and

a processor, communicatively coupled to the storage device, configured to:

retrieve an image from the storage device, the image being projected from light field data, wherein the image comprises a plurality of pixel clusters, each of which encodes a portion of the light field data corresponding to a microlens of the microlens array;

retile the image to generate a retiled image comprising a plurality of retiled pixel clusters, each of which comprises a pixel from each of the pixel clusters;

apply an image compression algorithm to the retiled image to generate a compressed image; and

apply a K-means bit reduction algorithm to at least one selection from the group consisting of

the image;

the retiled image; and

the compressed image.

32. The system of claim 31 , wherein the processor is further configured to retile the image by providing the retiled image with a reduced spatial variation in pixel intensity to enhance performance of the image compression algorithm.

33. The system of claim 31 , wherein the processor is further configured to:

retile the compressed image to generate a reverted image comprising a plurality of reverted pixel clusters, each of which comprises a pixel from each of the retiled pixel clusters;

wherein each of the reverted pixel clusters encodes a portion of the light field data corresponding to a microlens of the microlens array.

34. A system for compressing an image projected from light field data acquired through a microlens array, the system comprising:

a storage device, configured to store an image; and

a processor, communicatively coupled to the storage device, configured to:

retrieve an image from the storage device, the image being projected from light field data, wherein the image comprises a plurality of pixel clusters, each of which encodes a portion of the light field data corresponding to a microlens of the microlens array;

retile the image to generate a retiled image comprising a plurality of retiled pixel clusters, each of which comprises a pixel from each of the pixel clusters;

pad the retiled image by adding a selection from the group consisting of:

a pixel column adjacent to a pixel edge column of the retiled image, wherein the pixel column is substantially identical to the pixel edge column; and

a pixel row adjacent to a pixel edge row of the retiled image,

wherein the pixel row is substantially identical to the pixel edge row; and

apply an image compression algorithm to the retiled image to generate a compressed image;

wherein padding the retiled image enhances performance of the image compression algorithm.

35. The system of claim 34 , wherein the processor is further configured to retile the image by providing the retiled image with a reduced spatial variation in pixel intensity to enhance performance of the image compression algorithm.

36. The system of claim 34 , wherein the processor is further configured to:

retile the compressed image to generate a reverted image comprising a plurality of reverted pixel clusters, each of which comprises a pixel from each of the retiled pixel clusters;

wherein each of the reverted pixel clusters encodes a portion of the light field data corresponding to a microlens of the microlens array.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2019
From: LYTRO, INC.
To: GOOGLE LLC
Reel/Frame 050009/0829 →
SECURITY INTEREST Recorded Jul 23, 2015
From: LYTRO, INC. (GRANTOR)
To: TRIPLEPOINT CAPITAL LLC (GRANTEE)
Reel/Frame 036167/0081 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2014
From: AKELEY, KURT; BEVENSEE, BRENDAN; PITTS, COLVIN; KNIGHT, TIMOTHY JAMES; CRADDOCK, CARL WARREN; LIANG, CHIA-KAI
To: LYTRO, INC.
Reel/Frame 032752/0122 →
Continuity (1)
Related Publication 20150312593A1 · Oct 29, 2015